public function quote_approved($id = null)
 {
     $this->autoRender = FALSE;
     App::import('Model', 'QuoteManager.QuoteStatus');
     $QuoteStatus = new QuoteStatus();
     App::import('Model', 'QuoteManager.Quote');
     $Quote = new Quote();
     $Q_model = new Quote();
     $quote['Quote']['id'] = $id;
     $quote['Quote']['status'] = 'Approve';
     $Q_data = $Q_model->find("first", array("conditions" => array("Quote.id" => $id)));
     if (empty($Q_data['Quote']['est_shipping'])) {
         if ($Q_data['Quote']['delivery'] == '4 - 8 Weeks Delivery') {
             $add_days = 56;
             $today = $Q_data['Quote']['quote_created_date'];
             $esd_date = date('d/m/Y', strtotime($today) + 24 * 3600 * $add_days);
         }
         if ($Q_data['Quote']['delivery'] == '5 - 10 Weeks Delivery') {
             $add_days = 70;
             $today = $Q_data['Quote']['quote_created_date'];
             $esd_date = date('d/m/Y', strtotime($today) + 24 * 3600 * $add_days);
         }
         $quote['Quote']['est_shipping'] = $esd_date;
     }
     $Quote->save($quote);
     $quote_status['QuoteStatus']['status'] = 'Approve';
     $quote_status['QuoteStatus']['quote_id'] = $id;
     $quote_info = $Quote->find("first", array("conditions" => array("Quote.id" => $id)));
     $workorder['WorkOrder']['quote_id'] = $quote_info['Quote']['id'];
     $workorder['WorkOrder']['project_id'] = $quote_info['Quote']['project_id'];
     $workorder['WorkOrder']['customer_id'] = $quote_info['Quote']['customer_id'];
     $workorder['WorkOrder']['status'] = 'New';
     $quote_number_explode = explode("-", $quote_info['Quote']['quote_number']);
     $workorder['WorkOrder']['work_order_number'] = $quote_number_explode[0];
     $workorder['WorkOrder']['skid_number'] = $quote_info['Quote']['skid_number'];
     $workorder['WorkOrder']['skid_weight'] = $quote_info['Quote']['skid_weight'];
     App::import("Model", "WorkOrderManager.WorkOrder");
     $wo = new WorkOrder();
     $wo->save($workorder);
     App::import("Model", "PurchaseOrderManager.PurchaseOrder");
     App::import("Model", "PurchaseOrderManager.PurchaseOrderItem");
     App::import("Model", "Inventory.Supplier");
     App::import('Model', 'PurchaseOrderManager.GeneralSetting');
     $supplier = array();
     foreach ($quote_info['CabinetOrderItem'] as $quote_item) {
         $item_info = $this->findQuoteItem($quote_item['item_id']);
         $supplier_required = $this->findQuoteItemDept($item_info['Item']['item_department_id']);
         if ($supplier_required['ItemDepartment']['supplier_required'] == 1) {
             $supplier[$item_info['Item']['supplier_id']][] = $item_info;
         }
     }
     $total_amount = 0;
     foreach ($supplier as $key => $value) {
         if (empty($Q_data['Quote']['est_shipping'])) {
             $est_date_quote = $quote['Quote']['est_shipping'];
         } else {
             $est_date_quote = $quote_info['Quote']['est_shipping'];
         }
         $purchaseorder = new PurchaseOrder();
         $sp_model = new Supplier();
         $sp_data = $sp_model->find("first", array("conditions" => array("Supplier.id" => $id)));
         $general_model = new GeneralSetting();
         $location_data = $general_model->find("first", array("conditions" => array("GeneralSetting.name" => 'Default')));
         $po['supplier_id'] = $key;
         $po['work_order_id'] = $wo->id;
         $po_number = explode("-", $quote_info['Quote']['quote_number']);
         $po['purchase_order_num'] = $po_number[0];
         $po['quote_id'] = $quote_info['Quote']['id'];
         $po['shipment_date'] = $est_date_quote;
         $po['payment_type'] = 'On Account';
         $po['issued_on'] = date('d/m/Y');
         $po['issued_by'] = $this->loginUser['id'];
         $po['term'] = $sp_data['Supplier']['terms'];
         $po['location_name'] = $location_data['GeneralSetting']['name'];
         $po['name_ship_to'] = $location_data['GeneralSetting']['name_address'];
         $po['address'] = $location_data['GeneralSetting']['address'];
         $po['city'] = $location_data['GeneralSetting']['city'];
         $po['province'] = $location_data['GeneralSetting']['province'];
         $po['postal_code'] = $location_data['GeneralSetting']['postal_code'];
         $po['country'] = $location_data['GeneralSetting']['country'];
         foreach ($value as $v) {
             foreach ($quote_info['CabinetOrderItem'] as $req_info) {
                 if ($req_info['item_id'] == $v['Item']['id']) {
                     $quantity = $req_info['quantity'];
                     $total_amount = $total_amount + $quantity * $v['Item']['price'];
                 }
             }
         }
         App::import("Model", "PurchaseOrderManager.GeneralSetting");
         $g_setting = new GeneralSetting();
         $gst_rate = $g_setting->find("first", array("conditions" => array("GeneralSetting.type" => 'gst')));
         $pst_rate = $g_setting->find("first", array("conditions" => array("GeneralSetting.type" => 'pst')));
         $gst_amount = $gst_rate['GeneralSetting']['value'] / 100 * $total_amount;
         $pst_amount = $pst_rate['GeneralSetting']['value'] / 100 * $total_amount;
         $total_amount = $total_amount + $gst_amount + $pst_amount;
         $po['total_amount'] = $total_amount;
         $purchaseorder->save($po);
         $index = 0;
         $purchaseorderitem = new PurchaseOrderItem();
         foreach ($value as $v) {
             foreach ($quote_info['CabinetOrderItem'] as $req_info) {
                 if ($req_info['item_id'] == $v['Item']['id']) {
                     $po_item[$index]['quantity'] = $req_info['quantity'];
                     $po_item[$index]['code'] = $req_info['code'];
                     $po_item[$index]['cabinet_id'] = $req_info['cabinet_id'];
                     $po_item[$index]['door_id'] = $req_info['door_id'];
                 }
             }
             $po_item[$index]['item_id'] = $v['Item']['id'];
             $po_item[$index]['purchase_order_id'] = $purchaseorder->id;
             $index++;
         }
         $purchaseorderitem->saveAll($po_item);
     }
     //		foreach($quote_info['CabinetOrderItem'] as $quote_item){
     //			$purchaseorder = new PurchaseOrder();
     //			$item_info = $this->findQuoteItem($quote_item['item_id']);
     //			$supplier_required = $this->findQuoteItemDept($item_info['Item']['item_department_id']);
     //			if(!empty($supplier_required['ItemDepartment']['supplier_required'])){
     //				$supplier[$item_info['Item']['supplier_id']][] = $item_info;
     //				$po['supplier_id'] = $item_info['Item']['supplier_id'];
     //				$po['work_order_id'] = $wo->id;
     //				$po['purchase_order_num'] = $quote_info['Quote']['quote_number'];
     //				$po['quote_id'] = $quote_info['Quote']['id'];
     //				$po['shipment_date'] = date("Y-m-d");
     //				$po['expiry_date'] = date("Y-m-d");
     //				$po['cc_num'] = 'Test CC Number';
     //				$po['name_cc'] = 'Test CC Name';
     //				$po['payment_type'] = 'On Account';
     //				//$purchaseorder->save($po);
     //
     //				$index = 0;
     //				foreach($quote_info['CabinetOrderItem'] as $qitem){
     //					$purchaseorderitem = new PurchaseOrderItem();
     //					$item_info = $this->findQuoteItem($qitem['item_id']);
     //					$supplier_required = $this->findQuoteItemDept($item_info['Item']['item_department_id']);
     //					if(!empty($supplier_required['ItemDepartment']['supplier_required'])){
     //						$po_item[$index]['item_id'] = $item_info['Item']['id'];
     //						$po_item[$index]['code'] = $item_info['Item']['id']."|item";
     //						$po_item[$index]['purchase_order_id'] = $purchaseorder->id;
     //						$index++;
     //					}
     //				}
     //				//$purchaseorderitem->saveAll($po_item);
     //			}
     //		}exit;
     //exit;
     if ($QuoteStatus->save($quote_status)) {
         $this->redirect("http://{$_SERVER['SERVER_NAME']}{$this->webroot}work_order_manager/work_orders/detail/{$wo->id}");
     }
 }