Source for file Order.class.php
Documentation is available at Order.class.php
* @copyright ColoCall 2006
//require_once('core/framework/DBWorker.class.php');
//require_once('core/framework/User.class.php');
//require_once('core/modules/shop/components/Basket.class.php');
//require_once('core/modules/shop/components/OrderStatus.class.php');
* Предназначен для формирования заказа пользователем
* Устанавливает пользователя
public function setUser(User $user) {
* Возвращает пользователя
public function create(array $userData) {
$data['u_id'] = $this->user->getID();
$data['os_id'] = OrderStatus::getInstance()->getInitial();
$data['order_created'] = date('Y-m-d H:i:s');
$data['order_detail'] = serialize($this->basket->getFormattedContents());
$data['user_detail'] = serialize($userData);
$data['order_delivery_comment'] = $userData['order_delivery_comment'];
* Отправка уведомления о заказе
* Возвращает текст письма отправляемого пользователю при отправке заказа
* Вынесено в отдельный метод для облегчения переписывания с потомках
//$data['order_id'], $data['u_name'], $data['u_fullname'], $data['order_delivery_comment'], $basketHTML
$mail->addTo($data['u_name']);
$mail->setSubject($this->translate('TXT_ORDER_CLIENT_SUBJECT'));
if ($this->getUser()->getValue('u_password') === true) {
$body = $this->translate('TXT_ORDER_CLIENT_MAIL_BODY');
$data['u_password'] = $this->getUser()->getValue('u_password');
$body = $this->translate('TXT_ORDER_NEW_CLIENT_MAIL_BODY');
$mail->setText($body, $data);
* Возвращает текст письма администратору
foreach ($managerEmails as $email) {
$mail->setSubject($this->translate('TXT_ORDER_MANAGER_SUBJECT'));
$body = sprintf($this->translate('TXT_ORDER_MANAGER_MAIL_BODY'), $data['order_id'], $data['u_name'], $data['u_fullname'], $data['order_delivery_comment'], $basketHTML);
* Возвращает содержимое корзины в HTML
//$discounts = Discounts::getInstance();
$contents = $this->getBasket()->getFormattedContents();
$basketHTML = '<table border="1">';
$basketHTML .= '<thead><tr>';
$basketHTML .= '<td>'. $this->translate('FIELD_PRODUCT_NAME'). "</td>\t<td>". $this->translate('FIELD_BASKET_COUNT'). "</td>\t<td>". $this->translate('FIELD_PRODUCT_PRICE'). "</td>\t<td>". $this->translate('FIELD_PRODUCT_SUMM'). "</td>\n";
$basketHTML .= '</tr></thead><tbody>';
foreach ($contents as $key => $productInfo) {
$basketHTML .= '<td>'. $productInfo['product_name'] . ' '. $productInfo['product_code'] . "</td>\t";
$basketHTML .= '<td>'. $productInfo['basket_count'] . "</td>\t";
$basketHTML .= '<td>'. $productInfo['product_price'] . "</td>\t";
$basketHTML .= '<th>'. $productInfo['product_summ'] . "</th>\t";
$basketHTML .= "</tr>\n";
$summ += $productInfo['product_summ'];
$basketHTML .= '</tbody>';
$basketHTML .= '<tfoot>';
$basketHTML .= '<tr><td colspan="3">'. $this->translate('TXT_BASKET_SUMM'). "</td>\t<td>". $converter->format($summ, $converter->getIDByAbbr('HRN')). '</td></tr>';
/*if ($discounts->getDiscountForGroup() > 0) {
$basketHTML .= '<tr><td colspan="3">'.$this->translate('TXT_BASKET_SUMM_WITH_DISCOUNT').' '.$discounts->getDiscountForGroup().'%</td><td>'.number_format($discounts->calculateCost($summ), 2, '.', ' ').'</td></tr>';
$basketHTML .= '</tfoot>';
$basketHTML .= '</table>';
|