コード例 #1
0
 public function editAction()
 {
     try {
         $ordersMapper = new Application_Model_OrdersMapper();
         $orderItemsMapper = new Application_Model_OrderItemsMapper();
         $request = $this->getRequest();
         $order_id = $request->getParam("id");
         $this->view->order_id = $order_id;
         $orders = $ordersMapper->getOrderById($order_id);
         $this->view->orders = $orders;
         if ($orders) {
             if ($request->isPost()) {
                 $request_type = $request->getParam("request_type", false);
                 if ($request_type) {
                     if ($request_type == "update_order_info") {
                         $user_name = $request->getParam("user_name");
                         $user_address = $request->getParam("user_address");
                         $user_number = $request->getParam("user_number");
                         $delivery_type = $request->getParam("delivery_type");
                         $service_id = $request->getParam("service_id");
                         $errors = array();
                         if (empty($user_name)) {
                             $errors[] = "Username is empty";
                         }
                         if (empty($user_number)) {
                             $errors[] = "Phone number is empty";
                         }
                         if (empty($user_address)) {
                             $errors[] = "Address is empty";
                         }
                         if (empty($delivery_type)) {
                             $errors[] = "Delivering Type is not selected";
                         }
                         if (empty($service_id)) {
                             $errors[] = "Service is not selected";
                         }
                         if (count($errors) == 0) {
                             $orders->__set("user_fname", $user_name);
                             $orders->__set("user_phn_number", $user_number);
                             $orders->__set("user_address", $user_address);
                             $orders->__set("delivery_type", $delivery_type);
                             $orders->__set("service", $service_id);
                             if ($ordersMapper->updateOrder($orders)) {
                                 $this->view->hasMessage = true;
                                 $this->view->messageType = "success";
                                 $this->view->message = "Successfully update order info";
                             } else {
                                 $this->view->hasMessage = true;
                                 $this->view->messageType = "dnager";
                                 $this->view->message = "Error while updating the order info";
                             }
                         } else {
                             $errorString = "";
                             foreach ($errors as $error) {
                                 $errorString .= $error . "<br/>";
                             }
                             $this->view->hasMessage = true;
                             $this->view->messageType = "danger";
                             $this->view->message = $errorString;
                         }
                     } elseif ($request_type == "update_qty") {
                         $total_price = 0;
                         $order_item_id = $request->getParam("order_item_id");
                         $qty = $request->getParam("qty");
                         $order_item = $orderItemsMapper->getOrderItemById($order_item_id);
                         if ($order_item) {
                             if ($qty) {
                                 $unit_price = $order_item->__get("unit_price");
                                 $new_price = $qty * $unit_price;
                                 $new_qty = $qty;
                                 $order_item->__set("quantity", $qty);
                                 $order_item->__set("total_price", $new_price);
                                 if ($orderItemsMapper->updateOrderItem($order_item)) {
                                     $orderItems = $orderItemsMapper->getOrderItemByOrderId($order_id);
                                     foreach ($orderItems as $item) {
                                         $total_price += $item->__get("total_price");
                                     }
                                     $orders->__set("order_total", $total_price);
                                     $ordersMapper->updateOrder($orders);
                                     $this->view->hasMessage = true;
                                     $this->view->messageType = "success";
                                     $this->view->message = "Successfully update Item quantity";
                                 } else {
                                     $this->view->hasMessage = true;
                                     $this->view->messageType = "success";
                                     $this->view->message = "error while updating qty";
                                 }
                             }
                         }
                     } elseif ($request_type == "delete") {
                         $item_id = $request->getParam("item_id");
                         $order_item = $orderItemsMapper->getOrderItemById($item_id);
                         $price = $order_item->__get("total_price");
                         $order_total = $orders->__get("order_total");
                         if ($orderItemsMapper->deleteOrderItemById($item_id)) {
                             $new_price = $order_total - $price;
                             $orders->__set("order_total", $new_price);
                             $ordersMapper->updateOrder($orders);
                             $this->view->hasMessage = true;
                             $this->view->messageType = "success";
                             $this->view->message = "Successfully deleted item";
                         } else {
                             $this->view->hasMessage = true;
                             $this->view->messageType = "success";
                             $this->view->message = "Error while deleting";
                         }
                     } elseif ($request_type == "order_item_add") {
                         $total_price = 0;
                         $category_id = $request->getParam("category_id");
                         $service_id = $request->getParam("service_id");
                         $item_id = $request->getParam("item_id");
                         $quantity = $request->getParam("quantity");
                         $itemPriceMapper = new Application_Model_ItemPriceMapper();
                         $orderItems = new Application_Model_OrderItems();
                         $errors = array();
                         if ($category_id == "none") {
                             $errors[] = "Please Select a category";
                         }
                         if ($service_id == "none") {
                             $errors[] = "Please Select a service";
                         }
                         if ($item_id == "none") {
                             $errors[] = "Please Select a item";
                         }
                         if (empty($quantity)) {
                             $errors[] = "Please enter quantity";
                         }
                         if (count($errors) == 0) {
                             $itemPrice = $itemPriceMapper->getItemPriceByItemId($item_id);
                             $item_price = $itemPrice->__get("price");
                             $price = $item_price * $quantity;
                             $orderItems->__set("order_id", $order_id);
                             $orderItems->__set("item_id", $item_id);
                             $orderItems->__set("quantity", $quantity);
                             $orderItems->__set("unit_price", $item_price);
                             $orderItems->__set("total_price", $price);
                             if ($orderItemsMapper->addNewOrderItem($orderItems)) {
                                 $orderItems = $orderItemsMapper->getOrderItemByOrderId($order_id);
                                 foreach ($orderItems as $item) {
                                     $total_price += $item->__get("total_price");
                                 }
                                 $orders->__set("order_total", $total_price);
                                 $ordersMapper->updateOrder($orders);
                                 $this->view->hasMessage = true;
                                 $this->view->messageType = "success";
                                 $this->view->message = "Successfully add";
                             } else {
                                 $this->view->hasMessage = true;
                                 $this->view->messageType = "danger";
                                 $this->view->message = "Error while add";
                             }
                         } else {
                             $errorString = "";
                             foreach ($errors as $error) {
                                 $errorString .= $error . "<br/>";
                             }
                             $this->view->hasMessage = true;
                             $this->view->messageType = "danger";
                             $this->view->message = $errorString;
                         }
                     }
                 }
             }
         }
         $orderItems = $orderItemsMapper->getOrderItemByOrderId($order_id);
         $this->view->orderItems = $orderItems;
         $this->authorised = true;
     } catch (Exception $ex) {
         $this->authorised = false;
         $this->view->hasMessage = true;
         $this->view->messageType = "danger";
         $this->view->message = $ex->getMessage();
     }
 }