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(); } }