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}"); } }
$x = $imap->mailGet($i, $mime_id); $wo->note .= quoted_printable_decode($x); break; default: die("Unknown Encoding: {$part['mime-encoding']}\n"); } break; default: die("Unknown Type: {$part['mime-type']}\n"); } } } else { // Just a Single Text Part $wo['note'] = $imap->mailGet($i); } $wo->save(); echo "WO: #{$wo['id']} {$wo['requester']}\n"; // {$wo->note}\n"; $imap->mailWipe($i); } $imap->mailFlush(); exit; function mail_part_list($stat, $depth = null) { if ($depth === null) { $depth = null; } $count = 1; // echo "Depth: $depth\n"; if (empty($stat['parts'])) { return false;