function action_order() { session_start(); $model = $_SESSION['basket']; $login = $_SESSION["login"]; if (!is_null($_SESSION["login"])) { $account = AccountService::GetByName($login, true); $order = OrderHelper::PopulateOrderFromBasketViewModel($model, $account->account_id); $order = OrderService::Create($order); $products = $model->products; for ($i = 0; $i < count($products); $i++) { for ($j = 0; $j < $model->counts[$i]; $j++) { $orderlist = new OrderList(); $orderlist->order_id = $order->order_id; $orderlist->product_id = $products[$i]->Id; OrderListService::Create($orderlist); } } $_SESSION['basket'] = null; EmailService::SendNewOrderMessage($account, $order->order_id, $model->SumPrice()); $data = $order->order_id; $this->view->generate('Order_view.php', 'template_view.php', $data); } else { header('Location: /Account/login'); } }
public function action_item() { PermissionHelper::Verification('Editor'); $status_id = $_GET['id']; $model = OrderHelper::PopulateOrderDetailViewModelList(OrderService::GetByStatusId($status_id)); $this->view->generate('/Order/item_view.php', 'template_view.php', $model); }
public static function PopulateOrderViewModelList($orders) { for ($i = 0; $i < count($orders); $i++) { $model[$i] = OrderHelper::PopulateOrderViewModel($orders[$i]); } return $model; }
function action_order() { session_start(); $login = $_SESSION["login"]; if (!is_null($login)) { $model = OrderHelper::PopulateOrderDetailViewModelList(OrderService::GetByAccountId(AccountService::GetByName($login, true)->account_id)); $this->view->generate('/Account/order_view.php', 'template_view.php', $model); } else { header("Location: /Product/"); } }
<?php echo Yii::t('OrderModule.order', 'Orders'); ?> <small><?php echo Yii::t('OrderModule.order', 'manage'); ?> </small> </h1> </div> <?php $this->widget('yupe\\widgets\\CustomGridView', ['id' => 'order-grid', 'type' => 'condensed', 'dataProvider' => $model->search(), 'filter' => $model, 'datePickers' => ['Order_date'], 'afterAjaxUpdate' => 'reinstallDatePicker', 'columns' => [['name' => 'id', 'htmlOptions' => ['width' => '90px'], 'type' => 'raw', 'value' => function ($data) { return CHtml::link($data->id, ["/order/orderBackend/update", "id" => $data->id]); }], ['name' => 'date', 'type' => 'html', 'filter' => $this->widget('booster.widgets.TbDatePicker', ['model' => $model, 'attribute' => 'date', 'options' => ['format' => 'yyyy-mm-dd'], 'htmlOptions' => ['class' => 'form-control']], true), 'value' => function ($data) { return CHtml::link(Yii::app()->getDateFormatter()->formatDateTime($data->date, 'medium'), ["/order/orderBackend/update", "id" => $data->id]); }], ['name' => 'name', 'type' => 'raw', 'value' => function ($data) { return isset($data->client) ? CHtml::link($data->client->getFullName(), ['/order/clientBackend/view', 'id' => $data->user_id]) : $data->name; }, 'htmlOptions' => ['width' => '400px']], ['name' => 'total_price', 'value' => function ($data) { return Yii::app()->getNumberFormatter()->formatCurrency($data->total_price, Yii::app()->getModule('store')->currency); }], ['class' => 'yupe\\widgets\\EditableStatusColumn', 'name' => 'status_id', 'url' => $this->createUrl('/order/orderBackend/inline'), 'source' => OrderHelper::statusList(), 'options' => OrderHelper::labelList()], ['name' => 'payment_method_id', 'value' => function ($data) { return $data->payment ? $data->payment->name : '---'; }, 'filter' => CHtml::listData(Payment::model()->findAll(), 'id', 'name')], ['class' => 'yupe\\widgets\\EditableStatusColumn', 'name' => 'paid', 'url' => $this->createUrl('/order/orderBackend/inline'), 'source' => $model->getPaidStatusList(), 'options' => [Order::PAID_STATUS_NOT_PAID => ['class' => 'label-danger'], Order::PAID_STATUS_PAID => ['class' => 'label-success']]], ['name' => 'delivery_id', 'header' => Yii::t('OrderModule.order', 'Delivery'), 'filter' => CHtml::listData(Delivery::model()->findAll(), 'id', 'name'), 'value' => function (Order $data) { return $data->delivery->name; }], ['name' => 'manager_id', 'type' => 'raw', 'filter' => CHtml::listData(User::model()->findAll('access_level = :level', [':level' => User::ACCESS_LEVEL_ADMIN]), 'id', 'fullName'), 'value' => function ($data) { return isset($data->manager) ? \yupe\helpers\YText::shortName($data->manager->getFullName()) : null; }], ['class' => 'yupe\\widgets\\CustomButtonColumn', 'buttons' => ['update' => ['visible' => function ($row, Order $order) { return $order->checkManager(Yii::app()->getUser()); }], 'delete' => ['visible' => function ($row, Order $order) { return $order->checkManager(Yii::app()->getUser()); }]]]]]);
/** * @return array */ public function rules() { return [['name', 'required'], ['name, color', 'filter', 'filter' => 'trim'], ['color', 'default', 'value' => null], ['color', 'in', 'range' => array_keys(OrderHelper::colorNames())], ['is_system', 'boolean'], ['id, name', 'safe', 'on' => 'search']]; }
: <?php echo $ordersCount; ?> </span> </h4> </div> <div id="<?php echo $this->getId(); ?> " class="panel-collapse collapse"> <div class="panel-body"> <div class="row"> <div class="col-sm-12"> <?php $this->widget('bootstrap.widgets.TbExtendedGridView', ['id' => 'orders-grid', 'type' => 'striped condensed', 'dataProvider' => $dataProvider, 'template' => '{items}', 'htmlOptions' => ['class' => false], 'columns' => [['name' => 'id', 'htmlOptions' => ['width' => '90px'], 'type' => 'raw', 'value' => function ($data) { return CHtml::link(Yii::t('OrderModule.order', 'Order #') . $data->id, ["/order/orderBackend/update", "id" => $data->id]); }], ['name' => 'date', 'value' => function ($data) { return CHtml::link(Yii::app()->getDateFormatter()->formatDateTime($data->date, 'medium'), array("/order/orderBackend/update", "id" => $data->id)); }, 'type' => 'raw'], ['name' => 'name', 'htmlOptions' => ['width' => '400px']], ['name' => 'total_price', 'value' => function ($data) { return Yii::app()->getNumberFormatter()->formatCurrency($data->total_price, Yii::app()->getModule('store')->currency); }], ['class' => 'yupe\\widgets\\EditableStatusColumn', 'name' => 'status_id', 'url' => $this->controller->createUrl('/order/orderBackend/inline'), 'source' => OrderHelper::statusList(), 'options' => OrderHelper::labelList()], ['class' => 'yupe\\widgets\\EditableStatusColumn', 'name' => 'paid', 'url' => $this->controller->createUrl('/order/orderBackend/inline'), 'source' => Order::model()->getPaidStatusList(), 'options' => [Order::PAID_STATUS_NOT_PAID => ['class' => 'label-danger'], Order::PAID_STATUS_PAID => ['class' => 'label-success']]]]]); ?> </div> </div> </div> </div> </div> </div> <?php $this->endWidget();
/** * Validates the Order * * <p>Validates the order information based on the paymentmethod and country used</p> * <p>For example Afterpay, it will check the zipcodes and it makes sure that the billing and shipping address are in the same country</p> * * @param obj $paymentObj * @throws \Exception */ public function validateOrder($paymentObj) { switch (strtoupper($paymentObj->getPaymentMethod())) { case 'AFTERPAY': if ($this->_data['shippingAddress']->country !== $this->_data['billingAddress']->country) { throw new \Exception('Billing and Shipping country must be equal in order to use Afterpay.'); } if (!OrderHelper::validateZipCode($this->_data['shippingAddress']->zipCode, $this->_data['shippingAddress']->country)) { throw new \Exception('Zipcode format for shipping address is incorrect.'); } if (!OrderHelper::validateZipCode($this->_data['billingAddress']->zipCode, $this->_data['billingAddress']->country)) { throw new \Exception('Zipcode format for billing address is incorrect.'); } if (!OrderHelper::validatePhonenumber($this->_data['consumer']->phone)) { throw new \Exception('Phonenumber is incorrect.'); } break; } }
echo Yii::t('OrderModule.order', 'are required'); ?> </div> <?php echo $form->errorSummary($model); ?> <div class="row"> <div class="col-sm-4"> <?php echo $form->textFieldGroup($model, 'name'); ?> </div> <div class="col-sm-1"> <?php echo $form->dropDownListGroup($model, 'color', ['widgetOptions' => ['data' => OrderHelper::colorNames(), 'htmlOptions' => ['empty' => '', 'id' => 'colorselector', 'options' => OrderHelper::colorValues()]]]); ?> </div> </div> <?php $this->widget('bootstrap.widgets.TbButton', ['buttonType' => 'submit', 'context' => 'primary', 'label' => $model->getIsNewRecord() ? Yii::t('OrderModule.order', 'Add status and continue') : Yii::t('OrderModule.order', 'Save status and continue')]); ?> <?php $this->widget('bootstrap.widgets.TbButton', ['buttonType' => 'submit', 'htmlOptions' => ['name' => 'submit-type', 'value' => 'index'], 'label' => $model->getIsNewRecord() ? Yii::t('OrderModule.order', 'Add status and close') : Yii::t('OrderModule.order', 'Save status and close')]); ?> <?php $this->endWidget();
<?php $this->widget('bootstrap.widgets.TbDetailView', ['data' => $model, 'attributes' => [['name' => 'full_name', 'value' => $model->getFullName()], 'nick_name', 'email', ['label' => Yii::t('OrderModule.order', 'Orders'), 'value' => CHtml::link($model->getOrderNumber(), ['/order/orderBackend/index', 'Order[user_id]' => $model->id]), 'type' => 'html'], 'birth_date', 'phone', ['label' => Yii::t('OrderModule.order', 'Money'), 'value' => '<span class="label label-success">' . Yii::app()->numberFormatter->formatCurrency($model->getOrderSum(), Yii::app()->getModule('store')->currency) . "</span>", 'type' => 'html'], 'location', 'site', 'about', ['name' => 'gender', 'value' => $model->getGender()], ['name' => 'status', 'value' => $model->getStatus()], ['name' => 'email_confirm', 'value' => $model->getEmailConfirmStatus()], ['name' => 'visit_time', 'value' => Yii::app()->getDateFormatter()->formatDateTime($model->visit_time)], ['name' => 'create_time', 'value' => Yii::app()->getDateFormatter()->formatDateTime($model->create_time)], ['name' => 'update_time', 'value' => Yii::app()->getDateFormatter()->formatDateTime($model->update_time)]]]); ?> </div> <div class="col-sm-8"> <div class="row"> <div class="col-sm-12"> <?php $this->widget('bootstrap.widgets.TbExtendedGridView', ['id' => 'order-grid', 'type' => 'condensed', 'dataProvider' => $orders, 'template' => '{items}{pager}', 'columns' => [['name' => 'id', 'htmlOptions' => ['width' => '90px'], 'type' => 'raw', 'value' => function ($data) { return CHtml::link($data->id, ["/order/orderBackend/update", "id" => $data->id]); }], ['name' => 'date', 'type' => 'html', 'filter' => $this->widget('booster.widgets.TbDatePicker', ['model' => $order, 'attribute' => 'date', 'options' => ['format' => 'yyyy-mm-dd'], 'htmlOptions' => ['class' => 'form-control']], true), 'value' => function ($data) { return CHtml::link(Yii::app()->getDateFormatter()->formatDateTime($data->date, 'short', false), ["/order/orderBackend/update", "id" => $data->id]); }], ['name' => 'total_price', 'value' => function ($data) { return Yii::app()->getNumberFormatter()->formatCurrency($data->total_price, Yii::app()->getModule('store')->currency); }], ['class' => 'yupe\\widgets\\EditableStatusColumn', 'name' => 'status_id', 'url' => $this->createUrl('/order/orderBackend/inline'), 'source' => OrderHelper::statusList(), 'options' => OrderHelper::labelList()], ['class' => 'yupe\\widgets\\EditableStatusColumn', 'name' => 'paid', 'url' => $this->createUrl('/order/orderBackend/inline'), 'source' => $order->getPaidStatusList(), 'options' => [Order::PAID_STATUS_NOT_PAID => ['class' => 'label-danger'], Order::PAID_STATUS_PAID => ['class' => 'label-success']]], ['name' => 'delivery_id', 'header' => Yii::t('OrderModule.order', 'Delivery'), 'filter' => CHtml::listData(Delivery::model()->findAll(), 'id', 'name'), 'value' => function ($data) { return $data->delivery->name; }]]]); ?> </div> </div> <div class="row"> <div class="col-sm-12"> <?php if (Yii::app()->hasModule('comment')) { ?> <?php $this->widget('application.modules.comment.widgets.CommentsWidget', ['view' => 'application.modules.order.views.orderBackend.comments', 'redirectTo' => Yii::app()->createUrl('/order/clientBackend/view', ['id' => $model->id]), 'model' => $model]); ?> <?php }
echo Yii::t('OrderModule.order', 'are required'); ?> </div> <?php echo $form->errorSummary($model); ?> <div class="row"> <div class="col-sm-12"> <div class="row"> <div class="col-sm-3"> <?php echo $form->labelEx($model, 'status_id'); ?> <?php $this->widget('bootstrap.widgets.TbSelect2', ['model' => $model, 'attribute' => 'status_id', 'data' => OrderHelper::statusList(), 'options' => ['placeholder' => Yii::t('OrderModule.order', 'Status'), 'width' => '100%']]); ?> </div> <div class="col-sm-3"> <?php echo $form->datePickerGroup($model, 'date', ['widgetOptions' => ['options' => ['format' => 'dd.mm.yyyy', 'weekStart' => 1, 'autoclose' => true], 'htmlOptions' => ['id' => 'orderDate']], 'prepend' => '<i class="fa fa-calendar"></i>']); ?> </div> <div class="col-sm-3"> <?php echo $form->labelEx($model, 'user_id'); ?> <?php $this->widget('bootstrap.widgets.TbSelect2', ['model' => $model, 'attribute' => 'user_id', 'asDropDownList' => false, 'options' => ['minimumInputLength' => 2, 'placeholder' => Yii::t('OrderModule.order', 'Select client'), 'width' => '100%', 'allowClear' => true, 'ajax' => ['url' => Yii::app()->getController()->createUrl('/order/orderBackend/ajaxClientSearch'), 'dataType' => 'json', 'data' => 'js:function(term, page) { return {q: term }; }', 'results' => 'js:function(data) { return {results: data}; }'], 'formatResult' => 'js:productFormatResult', 'formatSelection' => 'js:productFormatSelection', 'initSelection' => $model->client ? 'js:function(element,callback){callback({name:"' . $model->client->getFullName() . '"})}' : false], 'htmlOptions' => ['id' => 'client-select']]); ?> </div>