public function detailPurchaseOrderAction() { if ($this->getRequest()->getParam('id')) { $id = $this->getRequest()->getParam('id') ? $this->getRequest()->getParam('id') : '0'; $user = $this->GetuserInfoAction(); if ($user["level"] != 1 and $user["level"] != 2) { $gb = new Application_Model_DbTable_DbGlobal(); $exist = $gb->userPurchaseOrderExist($id, $user["location_id"]); if ($exist == "") { $this->_redirect("purchase/index/index"); } } $orderModel = new purchase_Model_DbTable_DbPurchaseOrder(); //get purchase info 23/8/13 $orderItemDetail = $orderModel->purchaseInfo($id); $this->view->order_info = $orderItemDetail; //get qty on purchase order 23/8/13 $orderDetail = $orderModel->getPurchaseID($id); $this->view->orderItemDetail = $orderDetail; } }
public function rePurchaseOrder($data) { try { $db = $this->getAdapter(); $db->beginTransaction(); $db_global = new Application_Model_DbTable_DbGlobal(); $session_user = new Zend_Session_Namespace('auth'); $userName = $session_user->user_name; $GetUserId = $session_user->user_id; $id_order_update = $data['id']; print_r($id_order_update); // Select all qty in tb_product and tb_purchase_order_item for compare product exist or not for update qty to old qty $sql_recieve = new purchase_Model_DbTable_DbPurchaseOrder(); $result = $sql_recieve->recieved_info($id_order_update); $sqls = "SELECT * FROM tb_setting WHERE `code`=16"; $ro = $db_global->getGlobalDbRow($sqls); $RO = $ro["key_value"]; $date = new Zend_Date(); $recieve_no = $RO . $date->get('hh-mm-ss'); $sql_recieve_order = "SELECT `recieve_id`,`recieve_type`,order_id,`vendor_id`,`location_id`,`disc_value`,paid,`all_total`,`balance`\n\t\t\t\t\t\t\t\tFROM tb_recieve_order WHERE order_id = {$id_order_update}"; $result_recieve = $db_global->getGlobalDbRow($sql_recieve_order); //print_r($result_recieve);exit(); if ($result_recieve) { $db->getProfiler()->setEnabled(true); $receive = array("is_active" => 0, "user_recieve" => $GetUserId); $this->_name = "tb_recieve_order"; $where = $this->getAdapter()->quoteInto("recieve_id=?", $result_recieve["recieve_id"]); $recieve_id = $this->update($receive, $where); //unset($receive); Zend_Debug::dump($db->getProfiler()->getLastQueryProfile()->getQuery()); Zend_Debug::dump($db->getProfiler()->getLastQueryProfile()->getQueryParams()); $db->getProfiler()->setEnabled(false); } $db->getProfiler()->setEnabled(true); $info_purchase_order = array("status" => 3, "paid" => 0, "balance" => $data['all_total']); $this->_name = "tb_purchase_order"; $where = $this->getAdapter()->quoteInto("order_id=?", $id_order_update); $this->update($info_purchase_order, $where); //$db_global->updateRecord($info_purchase_order,$id_order_update,"order_id","tb_purchase_order"); Zend_Debug::dump($db->getProfiler()->getLastQueryProfile()->getQuery()); Zend_Debug::dump($db->getProfiler()->getLastQueryProfile()->getQueryParams()); $db->getProfiler()->setEnabled(false); $sql_itm = "SELECT\n\t\t\t\t(SELECT p.pro_id FROM tb_product AS p WHERE p.pro_id = po.`pro_id`) AS pro_id\n\t\t\t\t\t\n\t\t\t\t,(SELECT p.qty_onorder FROM tb_product AS p WHERE p.pro_id = po.`pro_id`) AS qty_onorder\n\t\t\n\t\t\t\t,(SELECT p.qty_onhand \tFROM tb_product AS p WHERE p.pro_id = po.`pro_id`) AS qty_onhand\n\t\t\n\t\t\t\t,(SELECT p.qty_available \tFROM tb_product AS p WHERE p.pro_id = po.`pro_id`) AS qty_available\n\t\t\t\t\t\n\t\t\t\t, SUM(po.`qty_order`) AS qty_order FROM\n\t\n\t\t\ttb_purchase_order_item AS po WHERE po.order_id = {$id_order_update} GROUP BY po.pro_id"; $rows_order = $db_global->getGlobalDb($sql_itm); if ($rows_order) { foreach ($rows_order as $row) { $row_get = $db_global->porductLocationExist($row["pro_id"], $data["old_location"]); $qty_onhand = $row["qty_onhand"] - $row["qty_order"]; $qty_available = $row["qty_available"] - $row["qty_order"]; $qty = $row_get["qty"] - $row["qty_order"]; $qty_available_prolo = $row_get["qty_avaliable"] - $row["qty_order"]; if ($qty_onhand <= 0 or $qty <= 0) { Application_Form_FrmMessage::message("The Main Stock or Location Stock is Not enough "); exit; } else { $db->getProfiler()->setEnabled(true); $update_product = array("qty_onhand" => $qty_onhand, "qty_available" => $qty_available, "qty_onorder" => $row["qty_onorder"] + $row["qty_order"]); $this->_name = "tb_product"; $where = $this->getAdapter()->quoteInto("pro_id=?", $row["pro_id"]); $this->update($update_product, $where); unset($update_product); Zend_Debug::dump($db->getProfiler()->getLastQueryProfile()->getQuery()); Zend_Debug::dump($db->getProfiler()->getLastQueryProfile()->getQueryParams()); $db->getProfiler()->setEnabled(false); $db->getProfiler()->setEnabled(true); $update_prolocation = array("qty" => $qty, "qty_avaliable" => $qty_available_prolo, "qty_onorder" => $row_get["qty_onorder"] + $row["qty_order"]); $this->_name = "tb_prolocation"; $where = $this->getAdapter()->quoteInto("ProLocationID=?", $row_get["ProLocationID"]); $this->update($update_prolocation, $where); Zend_Debug::dump($db->getProfiler()->getLastQueryProfile()->getQuery()); Zend_Debug::dump($db->getProfiler()->getLastQueryProfile()->getQueryParams()); $db->getProfiler()->setEnabled(false); } } } /// update $ids = explode(',', $data['identities']); foreach ($ids as $i) { if (@$data["pricefree_" . $i]) { $is_free = 1; } else { $is_free = 0; } // Insert New purchase order item in old order_id $db->getProfiler()->setEnabled(true); $data_history[$i] = array('order' => $id_order_update, 'pro_id' => $data['item_id_' . $i], 'type' => 1, 'customer_id' => $data['v_name'], 'status' => $data["status"], 'order_total' => $data['total' . $i], 'qty' => $data['qty' . $i], 'status' => 4, 'unit_price' => $data['price' . $i], 'sub_total' => $data['total' . $i], 'last_update_date' => new Zend_Date()); $db->insert("tb_purchase_order_history", $data_history[$i]); unset($data_history[$i]); Zend_Debug::dump($db->getProfiler()->getLastQueryProfile()->getQuery()); Zend_Debug::dump($db->getProfiler()->getLastQueryProfile()->getQueryParams()); $db->getProfiler()->setEnabled(false); } $db->commit(); } catch (Exception $e) { $db->rollBack(); $e->getMessage(); } }
public function updateVendorCancellOrder($data) { try { $db = $this->getAdapter(); $db->beginTransaction(); $db_global = new Application_Model_DbTable_DbGlobal(); $session_user = new Zend_Session_Namespace('auth'); $userName = $session_user->user_name; $GetUserId = $session_user->user_id; //for update order by id\ $id_order_update = $data['id']; //update info of order in tb_purchase order // if($data["status"]==6){ // } $info_purchase_order = array("vendor_id" => $data['v_name'], "LocationId" => $data["LocationId"], "order" => $data['txt_order'], "date_order" => $data['order_date'], "status" => $data["status"], "remark" => $data['remark'], "user_mod" => $GetUserId, "timestamp" => new Zend_Date(), "paid" => $data['paid'], "all_total" => $data['totalAmoun'], "balance" => $data['remain']); $db_global->updateRecord($info_purchase_order, $id_order_update, "order_id", "tb_purchase_order"); unset($info_purchase_order); // Insert recieved order $recieved_id = $data["recieve_id"]; $ids = explode(',', $data['identity']); $sql_recieve = new purchase_Model_DbTable_DbPurchaseOrder(); $result = $sql_recieve->recieved_info($id_order_update); $prifix = "SELECT * FROM tb_setting WHERE `code` =16"; $ro = $db_global->getGlobalDbRow($prifix); $RO = $ro["key_value"]; $date = new Zend_Date(); $recieve_no = $RO . $date->get('hh-mm-ss'); if ($result) { //if($data["oldStatus"]==5 or $data["oldStatus"]==4){ if ($data["status"] == 5 or $data["status"] == 4) { $data_recieved_order = array("recieve_type" => 1, "order_id" => $id_order_update, "order_no" => $data["txt_order"], "vendor_id" => $data['v_name'], "location_id" => $data["LocationId"], "date_recieve" => new Zend_Date(), "status" => $data['status'], "is_active" => 1, "paid" => $data['paid'], "all_total" => $data['totalAmoun'], "balance" => $data['remain'], "user_recieve" => $GetUserId); $recieved_order = $db_global->updateRecord($data_recieved_order, $recieved_id, "recieve_id", "tb_recieve_order"); unset($data_recieved_order); } else { $data_recieved_order = array("recieve_type" => 1, "order_id" => $id_order_update, "order_no" => $data["txt_order"], "vendor_id" => $data['v_name'], "location_id" => $data["LocationId"], "date_recieve" => new Zend_Date(), "status" => $data['status'], "is_active" => 0, "paid" => $data['paid'], "all_total" => $data['totalAmoun'], "balance" => $data['remain'], "user_recieve" => $GetUserId); $recieved_order = $db_global->updateRecord($data_recieved_order, $recieved_id, "recieve_id", "tb_recieve_order"); unset($data_recieved_order); } //} $sqls = "DELETE FROM tb_recieve_order_item WHERE recieve_id IN ({$recieved_id})"; $db_global->deleteRecords($sqls); unset($sqls); foreach ($ids as $i) { $recieved_item[$i] = array("recieve_id" => $recieved_id, "pro_id" => $data['item_id_' . $i], "order_id" => $id_order_update, "qty_order" => $data['qty' . $i], "qty_recieve" => $data['qty' . $i], "price" => $data['price' . $i], "total_before" => $data['total' . $i], "sub_total" => $data['total' . $i]); $db->insert("tb_recieve_order_item", $recieved_item[$i]); unset($recieved_item[$i]); } } else { $sql = "SELECT * FROM tb_setting WHERE `code`=16"; $ro = $db_global->getGlobalDbRow($sql); $RO = $ro["key_value"]; $date = new Zend_Date(); $recieve_no = $RO . $date->get('hh-mm-ss'); if ($data["status"] == 5 or $data["status"] == 4) { $data_recieved_order = array("recieve_type" => 1, "order_id" => $id_order_update, "recieve_no" => $recieve_no, "order_no" => $data["txt_order"], "vendor_id" => $data['v_name'], "location_id" => $data["LocationId"], "order_date" => new Zend_Date(), "date_recieve" => new Zend_Date(), "status" => $data['status'], "is_active" => 1, "paid" => $data['paid'], "all_total" => $data['totalAmoun'], "balance" => $data['remain'], "user_recieve" => $GetUserId); $recieved_order = $db_global->addRecord($data_recieved_order, "tb_recieve_order"); unset($data_recieved_order); foreach ($ids as $i) { $recieved_item[$i] = array("recieve_id" => $recieved_order, "pro_id" => $data['item_id_' . $i], "order_id" => $id_order_update, "qty_order" => $data['qty' . $i], "qty_recieve" => $data['qty' . $i], "price" => $data['price' . $i], "total_before" => $data['total' . $i], "sub_total" => $data['total' . $i]); $db->insert("tb_recieve_order_item", $recieved_item[$i]); unset($recieved_item[$i]); } } } // end update info of order in tb_purchase order // Delete old purchase order item before insert new purchase order item in old order_id $sql = "DELETE FROM tb_purchase_order_item WHERE order_id IN ({$id_order_update})"; $db_global->deleteRecords($sql); unset($sql); $sql_history = "DELETE FROM tb_purchase_order_history WHERE `order` IN ({$id_order_update})"; $db_global->deleteRecords($sql_history); unset($sql_history); /// update $ids = explode(',', $data['identity']); //add order in tb_inventory must update code again 9/8/13 //print_r($ids);exit(); foreach ($ids as $i) { // Insert recieved order item $data_item[$i] = array('order_id' => $id_order_update, 'pro_id' => $data['item_id_' . $i], 'qty_order' => $data['qty' . $i], 'price' => $data['price' . $i], 'sub_total' => $data['total' . $i], 'total_befor' => $data['total' . $i], 'remark' => $data['remark_' . $i]); //print_r($data_item); echo "<br />";echo "<br />"; $db->insert("tb_purchase_order_item", $data_item[$i]); unset($data_item[$i]); $data_history[$i] = array('order' => $id_order_update, 'pro_id' => $data['item_id_' . $i], 'type' => 1, 'customer_id' => $data['v_name'], 'status' => $data["status"], 'order_total' => $data['total' . $i], 'qty' => $data['qty' . $i], 'unit_price' => $data['price' . $i], 'sub_total' => $data['total' . $i], 'date' => $data["old_history_date"], 'last_update_date' => new Zend_Date()); //print_r($data_history);exit(); $db->insert("tb_purchase_order_history", $data_history[$i]); unset($data_history[$i]); $locationid = $data['LocationId']; $itemId = $data['item_id_' . $i]; $qtyrecord = $data['qty' . $i]; //qty on 1 record // Update stock in tb_product $rows = $db_global->productLocationInventory($itemId, $locationid); //to check product location //print_r($rows); exit(); if ($rows) { $getrecord_id = $rows["ProLocationID"]; if ($data["status"] == 5 or $data["status"] == 4) { $itemOnHand = array('qty_onhand' => $rows["qty_onhand"] + $qtyrecord, 'qty_available' => $rows["qty_available"] + $qtyrecord, 'last_mod_date' => new Zend_date()); $db_global->updateRecord($itemOnHand, $itemId, "pro_id", "tb_product"); unset($itemOnHand); } else { $itemOnHand = array('qty_onorder' => $rows["pqty_onorder"] + $qtyrecord, 'last_mod_date' => new Zend_date()); $db_global->updateRecord($itemOnHand, $itemId, "pro_id", "tb_product"); unset($itemOnHand); } //End update total stock // Update product Location if ($data["status"] == 5 or $data["status"] == 4) { $updatedata = array('qty' => $rows['qty'] + $qtyrecord, 'last_mod_date' => new Zend_date()); $db_global->updateRecord($updatedata, $getrecord_id, "ProLocationID", "tb_prolocation"); unset($updatedata); } else { $updatedata = array('qty_onorder' => $rows['qty_onorder'] + $qtyrecord, 'last_mod_date' => new Zend_date()); $db_global->updateRecord($updatedata, $getrecord_id, "ProLocationID", "tb_prolocation"); unset($updatedata); } //End update stock product location //update stock record } else { //insert stock ; $rows_pro_exit = $db_global->productLocation($itemId, $locationid); // check product location exist // if product exist Update qty in tb_prolocation if ($rows_pro_exit) { if ($data["status"] == 5 or $data["status"] == 4) { $updatedata = array('qty' => $rows['qty'] + $qtyrecord, 'last_mod_date' => new Zend_date()); $itemid = $db_global->updateRecord($updatedata, $rows_pro_exit['ProLocationID'], "ProLocationID", "tb_prolocation"); unset($updatedata); } else { $updatedata = array('qty_onorder' => $rows['qty_onorder'] + $qtyrecord, 'last_mod_date' => new Zend_date()); $itemid = $db_global->updateRecord($updatedata, $rows_pro_exit['ProLocationID'], "ProLocationID", "tb_prolocation"); unset($updatedata); } // End if product exist Update qty in tb_prolocation } else { // If product not exist insert New product in tb_prolocation $insertdata = array('pro_id' => $itemId, 'LocationId' => $locationid, 'last_usermod' => $GetUserId, 'qty' => $qtyrecord, 'last_mod_date' => new Zend_Date()); //update stock product location $db->insert("tb_prolocation", $insertdata); unset($insertdata); } // End If product not exist insert New product in tb_prolocation $rowitem = $db_global->InventoryExist($itemId); //to check product exist // If productt exist update product in tb_product if ($rowitem) { if ($data["status"] == 5 or $data["status"] == 4) { $itemOnHand = array('qty_onhand' => $rows["qty_onhand"] + $qtyrecord, 'qty_available' => $rows["qty_available"] + $qtyrecord, 'last_mod_date' => new Zend_date()); $itemid = $db_global->updateRecord($itemOnHand, $itemId, "pro_id", "tb_product"); unset($itemOnHand); } else { $itemOnHand = array('qty_onorder' => $rows["qty_onrder"] + $qtyrecord, 'last_mod_date' => new Zend_date()); $itemid = $db_global->updateRecord($itemOnHand, $itemId, "pro_id", "tb_product"); unset($itemOnHand); } //update total stock // $itemid=$db_global->updateRecord($itemOnHand,$itemId,"pro_id","tb_product"); // unset($itemOnHand); // If productt exist update product in tb_product } else { // If product not exist insert new product in tb_product $dataInventory = array('pro_id' => $itemId, 'qty_onhand' => $qtyrecord, 'qty_available' => $qtyrecord, 'last_mod_date' => new Zend_date()); $db->insert("tb_product", $dataInventory); unset($dataInventory); //update stock product location } } } $db->commit(); } catch (Exception $e) { $db->rollBack(); $e->getMessage(); //echo $theCauseOfErrorOnlyDoNotRedirectToError; //exit(); } }
public function advanceAction() { $db = new Application_Model_DbTable_DbGlobal(); $id = $this->getRequest()->getParam('id') ? $this->getRequest()->getParam('id') : '0'; // $r = new purchase_Model_DbTable_DbPurchaseVendor(); // $r->updatePurcaheToInProgress($id); if ($this->getRequest()->isPost()) { $data = $this->getRequest()->getPost(); //print_r($data); if (isset($data["payment"]) == "UPDATE") { $update_purchase = new purchase_Model_DbTable_DbAdvance(); $get_result = $update_purchase->updatePurchaseOrder($data); } elseif (isset($data["recieve_paid"])) { $recieve_paid = new purchase_Model_DbTable_DbAdvance(); $result = $recieve_paid->receivePaidOrder($data); Application_Form_FrmMessage::message("Product have been recieved Success!!"); Application_Form_FrmMessage::redirectUrl("/purchase/advance/advance/id/" . $id); } elseif (isset($data["reorder"])) { $reorder = new purchase_Model_DbTable_DbAdvance(); $update_reoder = $reorder->rePurchaseOrder($data); Application_Form_FrmMessage::message("Product have been reoder Success!!"); } } ///link left not yet get from DbpurchaseOrder // $session_vendor_info = new Zend_Session_Namespace('vendor_info'); // $rows= $session_vendor_info->vendorinfo; // print_r($rows);exit(); $purchase = new purchase_Model_DbTable_DbPurchaseOrder(); $rows = $purchase->purchaseInfo($id); $formStock = new Application_Form_purchase(); $formpurchase_info = $formStock->productOrder($rows); Application_Model_Decorator::removeAllDecorator($formpurchase_info); // omit default zend html tag $this->view->form_purchase = $formpurchase_info; $this->view->status = $rows["status"]; //get item of this order // $orderModel = new purchase_Model_DbTable_DbPurchaseOrder(); // $orderDetail = $orderModel->getPurchaseID($id); // $this->view->rowsOrder = $orderDetail; $session_record_order = new Zend_Session_Namespace('record_order'); //create in update purchase order in page indexcontroller action update $orderDetail = $session_record_order->orderDetail; $this->view->rowsOrder = $orderDetail; $sql = "SELECT si.order_id,CONCAT(p.item_name,' (',p.item_code,' )') AS item_name,p.qty_perunit ,p.pro_id,si.remark as pi_remark,si.qty_order,si.price,si.total_befor,si.disc_type,\n\t\tsi.disc_value,si.is_free,si.sub_total,s.discount_value,s.`remark`,s.`discount_value`,s.`paid`,s.net_total,s.`all_total`,s.`balance`\n\t\tFROM tb_purchase_order_item AS si,tb_product AS p ,tb_purchase_order AS s\n\t\t WHERE p.pro_id = si.pro_id AND si.order_id = s.order_id AND si.order_id={$id}"; $result = $db->getGlobalDb($sql); $this->view->orderItem = $result; // if($rows['status']==4){ // Application_Form_FrmMessage::message("You Can't Access Advance! Order Is Payment Already"); // //$this->_redirect("/purchase/index/detail-purchase-order/id/".$id); // } //for get item receive qty order $qty_receive = new purchase_Model_DbTable_DbPurchaseAdvance(); $row_receive = $qty_receive->getProductReceived($id); //print_r($row_receive); $this->view->rowsreceived = $row_receive; // item option in select $items = new Application_Model_GlobalClass(); $itemRows = $items->getProductOption(); $this->view->itemsOption = $itemRows; $items = new Application_Model_GlobalClass(); $itemRows = $items->getProductOption(); $this->view->items = $itemRows; //get control $formControl = new Application_Form_FrmAction(null); $formViewControl = $formControl->AllAction(null); Application_Model_Decorator::removeAllDecorator($formViewControl); $this->view->control = $formViewControl; //for add product; $formpopup = new Application_Form_FrmPopup(null); $formproduct = $formpopup->popuProduct(null); Application_Model_Decorator::removeAllDecorator($formproduct); $this->view->form = $formproduct; //for add vendor $formStockAdd = $formpopup->popupVendor(null); Application_Model_Decorator::removeAllDecorator($formStockAdd); $this->view->form_vendor = $formStockAdd; //for add location $formAdd = $formpopup->popuLocation(null); Application_Model_Decorator::removeAllDecorator($formAdd); $this->view->form_addstock = $formAdd; // item option in select // $items = new Application_Model_GlobalClass(); // $itemRows = $items->getProductOption(); // $this->view->itemsOption = $itemRows; }
public function updateReturnItemAction() { $session_stock = new Zend_Session_Namespace('stock'); $id = $this->getRequest()->getParam('id') ? $this->getRequest()->getParam('id') : '0'; if ($this->getRequest()->isPost()) { $data = $this->getRequest()->getPost(); if ($data['Save']) { $update_return = new purchase_Model_DbTable_DbReturnItem(); $update_return->updateReturnItem($data); } } $purchase = new purchase_Model_DbTable_DbPurchaseOrder(); $rows = $purchase->purchaseInfo($id); $db = new Application_Model_DbTable_DbGlobal(); $returnModel = new purchase_Model_DbTable_DbSQLReturnItem(); $row_info = $returnModel->returnInfo($id); $get_form = new Application_Form_FrmReturnItem(); $session_stock = new Zend_Session_Namespace('stock'); $frm_return = $get_form->returnItemForm($row_info); Application_Model_Decorator::removeAllDecorator($frm_return); $this->view->form_return = $frm_return; //get qty of return item $getReturnItem = $returnModel->getReturnItem($id); $this->view->returnItemDetail = $getReturnItem; //get return item $getOption = new Application_Model_GlobalClass(); $locationRows = $getOption->getLocationOption(); $this->view->locationOption = $locationRows; $itemRows = $getOption->getProductOption(); $this->view->productOption = $itemRows; $formControl = new Application_Form_FrmAction(null); $formViewControl = $formControl->AllAction(null); Application_Model_Decorator::removeAllDecorator($formViewControl); $this->view->control = $formViewControl; //for add product; $formpopup = new Application_Form_FrmPopup(null); $formproduct = $formpopup->popuProduct(null); Application_Model_Decorator::removeAllDecorator($formproduct); $this->view->form_add_product = $formproduct; //for add vendor $formvendor = $formpopup->popupVendor(null); Application_Model_Decorator::removeAllDecorator($formvendor); $this->view->form_vendor = $formvendor; //for add location $formAdd = $formpopup->popuLocation(null); Application_Model_Decorator::removeAllDecorator($formAdd); $this->view->form_addstock = $formAdd; //for link advane $this->view->getorder_id = $id; }
public function RecievedPurchaseOrder($data) { try { $db = $this->getAdapter(); $db->beginTransaction(); $db_global = new Application_Model_DbTable_DbGlobal(); $session_user = new Zend_Session_Namespace('auth'); $userName = $session_user->user_name; $GetUserId = $session_user->user_id; $_order_no = $data["order_no"]; $_order_id = $data["order_id"]; $ids = explode(',', $data['identity']); //print_r($row);//exit(); if ($data['invoice_no'] == "") { $date = new Zend_Date(); $recieved_num = "RO" . $date->get('hh-mm-ss'); } else { $recieved_num = $data['invoice_no']; } $sql_itm = "SELECT\n\t\t\t\t(SELECT p.pro_id FROM tb_product AS p WHERE p.pro_id = po.`pro_id`) AS pro_id\n\t\t\t\t\t\n\t\t\t\t,(SELECT p.qty_onorder FROM tb_product AS p WHERE p.pro_id = po.`pro_id`) AS qty_onorder\n\t\t\t\t\n\t\t\t\t,(SELECT p.qty_onhand \tFROM tb_product AS p WHERE p.pro_id = po.`pro_id`) AS qty_onhand\n\t\t\t\t\n\t\t\t\t,(SELECT p.qty_available \tFROM tb_product AS p WHERE p.pro_id = po.`pro_id`) AS qty_available\n\t\t\t\t\t\n\t\t\t\t, SUM(po.`qty_order`) AS qty_order FROM\n\t\t\t\t\n\t\t\t\ttb_purchase_order_item AS po WHERE po.order_id = {$_order_no} GROUP BY po.pro_id"; $result = $db_global->getGlobalDb($sql_itm); if ($result) { foreach ($result as $row_pro) { $row_get = $db_global->porductLocationExist($row_pro["pro_id"], $data["LocationId"]); //print_r($row_get); if ($row_get) { $update_prolo_stock = array("qty_onorder" => $row_get["qty_onorder"] - $row_pro["qty_order"], "last_usermod" => $GetUserId, "last_mod_date" => new Zend_Date()); $update_data = $db_global->updateRecord($update_prolo_stock, $row_get["ProLocationID"], "ProLocationID", "tb_prolocation"); unset($update_prolo_stock); } $update_product_stock = array("qty_onorder" => $row_pro["qty_onorder"] - $row_pro["qty_order"], "last_mod_date" => new Zend_Date()); $sqls = $db_global->updateRecord($update_product_stock, $row_pro["pro_id"], "pro_id", "tb_product"); unset($update_product_stock); } } unset($result); try { $info_purchase_order = array("vendor_id" => $data['v_name'], "LocationId" => $data["LocationId"], "status" => 5, "remark" => $data['remark'], "user_mod" => $GetUserId, "timestamp" => new Zend_Date(), "paid" => $data['paid'], "all_total" => $data['totalAmoun'], "balance" => $data['remain']); $db_global->updateRecord($info_purchase_order, $_order_no, "order_id", "tb_purchase_order"); unset($info_purchase_order); } catch (Exception $e) { echo $e->getMessage(); } $sql_recieve = new purchase_Model_DbTable_DbPurchaseOrder(); $result_recieve = $sql_recieve->recieved_info($_order_no); $recieved_id = $result_recieve["recieve_id"]; if ($result_recieve) { $data_recieved_order = array("recieve_type" => 1, "vendor_id" => $data['v_name'], "location_id" => $data["LocationId"], "date_recieve" => new Zend_Date(), "status" => 5, "is_active" => 1, "paid" => $data['paid'], "all_total" => $data['totalAmoun'], "balance" => $data['remain'], "user_recieve" => $GetUserId); $recieved_order = $db_global->updateRecord($data_recieved_order, $result_recieve["recieve_id"], "recieve_id", "tb_recieve_order"); unset($data_recieved_order); $sqls = "DELETE FROM tb_recieve_order_item WHERE recieve_id IN ({$recieved_id})"; $db_global->deleteRecords($sqls); unset($sqls); foreach ($ids as $i) { $recieved_item[$i] = array("recieve_id" => $recieved_id, "pro_id" => $data['item_id_' . $i], "order_id" => $_order_no, "qty_order" => $data['qty' . $i], "qty_recieve" => $data['qty' . $i], "price" => $data['price' . $i], "total_before" => $data['total' . $i], "sub_total" => $data['total' . $i]); $db->insert("tb_recieve_order_item", $recieved_item[$i]); unset($recieved_item[$i]); } } else { $recieve_order = array("recieve_no" => $recieved_num, "order_id" => $_order_no, "order_no" => $data['order_num'], "vendor_id" => $data["v_name"], "recieve_type" => 1, "location_id" => $data["LocationId"], "order_date" => $data["order_date"], "date_recieve" => new Zend_Date(), "status" => 5, "is_active" => 1, "paid" => $data["paid"], "all_total" => $data["remain"], "user_recieve" => $GetUserId); $this->_name = "tb_recieve_order"; $recieved_order = $this->insert($recieve_order); unset($recieve_order); foreach ($ids as $i) { $recieved_item[$i] = array("recieve_id" => $recieved_order, "pro_id" => $data['item_id_' . $i], "order_id" => $_order_no, "qty_order" => $data['qty' . $i], "qty_recieve" => $data['qty' . $i], "price" => $data['price' . $i], "total_before" => $data['total' . $i], "sub_total" => $data['total' . $i]); $db->insert("tb_recieve_order_item", $recieved_item[$i]); unset($recieved_item[$i]); } } $sql = "DELETE FROM tb_purchase_order_item WHERE order_id IN ({$_order_no})"; $db_global->deleteRecords($sql); unset($sql); $sql_history = "DELETE FROM tb_purchase_order_history WHERE `order` IN ({$_order_no})"; $db_global->deleteRecords($sql_history); unset($sql_history); foreach ($ids as $i) { // Insert New purchase order item in old order_id $data_item[$i] = array('order_id' => $_order_no, 'pro_id' => $data['item_id_' . $i], 'qty_order' => $data['qty' . $i], 'price' => $data['price' . $i], 'sub_total' => $data['total' . $i], 'total_befor' => $data['total' . $i], 'remark' => $data['remark_' . $i]); //print_r($data_item); echo "<br />";echo "<br />"; $db->insert("tb_purchase_order_item", $data_item[$i]); unset($data_item[$i]); $data_history[$i] = array('order' => $_order_no, 'pro_id' => $data['item_id_' . $i], 'type' => 1, 'customer_id' => $data['v_name'], 'status' => 5, 'order_total' => $data['total' . $i], 'qty' => $data['qty' . $i], 'unit_price' => $data['price' . $i], 'sub_total' => $data['total' . $i], 'date' => $data["order_date"], 'last_update_date' => new Zend_Date()); //print_r($data_history);exit(); $db->insert("tb_purchase_order_history", $data_history[$i]); unset($data_history[$i]); $locationid = $data['LocationId']; $itemId = $data['item_id_' . $i]; $qtyrecord = $data['qty' . $i]; //qty on 1 record // Update stock in tb_product $rows = $db_global->productLocationInventory($itemId, $locationid); //to check product location if ($rows) { $getrecord_id = $rows["ProLocationID"]; $itemOnHand = array('qty_onhand' => $rows["qty_onhand"] + $qtyrecord, 'qty_available' => $rows["qty_available"] + $qtyrecord, 'last_mod_date' => new Zend_date()); $db_global->updateRecord($itemOnHand, $itemId, "pro_id", "tb_product"); unset($itemOnHand); $updatedata = array('qty' => $rows['qty'] + $qtyrecord, 'last_mod_date' => new Zend_date()); $db_global->updateRecord($updatedata, $getrecord_id, "ProLocationID", "tb_prolocation"); } else { //insert stock ; $rows_pro_exit = $db_global->productLocation($itemId, $locationid); // check product location exist if ($rows_pro_exit) { $updatedata = array('qty' => $rows['qty'] + $qtyrecord, 'last_mod_date' => new Zend_date()); $itemid = $db_global->updateRecord($updatedata, $rows_pro_exit['ProLocationID'], "ProLocationID", "tb_prolocation"); unset($updatedata); } else { // If product not exist insert New product in tb_prolocation $insertdata = array('pro_id' => $itemId, 'LocationId' => $locationid, 'last_usermod' => $GetUserId, 'qty' => $qtyrecord, 'last_mod_date' => new Zend_Date()); //update stock product location $db->insert("tb_prolocation", $insertdata); unset($insertdata); } // End If product not exist insert New product in tb_prolocation $rowitem = $db_global->InventoryExist($itemId); //to check product exist // If productt exist update product in tb_product if ($rowitem) { $itemOnHand = array('qty_onhand' => $rows["qty_onhand"] + $qtyrecord, 'qty_available' => $rows["qty_available"] + $qtyrecord, 'last_mod_date' => new Zend_date()); $itemid = $db_global->updateRecord($itemOnHand, $itemId, "pro_id", "tb_product"); unset($itemOnHand); } else { // If product not exist insert new product in tb_product $dataInventory = array('pro_id' => $itemId, 'qty_onhand' => $qtyrecord, 'qty_available' => $qtyrecord, 'last_mod_date' => new Zend_date()); $db->insert("tb_product", $dataInventory); unset($dataInventory); //update stock product location } } } $db->commit(); } catch (Exception $e) { echo $e->getMessage(); exit; $db->rollBack(); } }