Beispiel #1
0
 public function correctInStockQty($receive_id = null, $date_from = null, $date_to = null)
 {
     $orderItemReqModel = new Erp_Model_Purchse_Orderitemsreq();
     $reqReceiveModel = new Erp_Model_Purchse_Reqitemsreceived();
     $data = $this->getInStockItemsInfo($receive_id, $date_from, $date_to);
     foreach ($data as $d) {
         if ($d['order_item_id'] != '') {
             $req_info = $orderItemReqModel->getOrderItemReqInfo($d['order_item_id']);
             $receive_qty = $d['qty'];
             // 冲抵申请项数量(按申请时间顺序)
             foreach ($req_info as $info) {
                 $req_receive_qty = 0;
                 if ($receive_qty > 0) {
                     if ($info['qty'] >= $receive_qty) {
                         // 当前收货可只够冲抵当前申请项数量
                         $req_receive_qty = $receive_qty;
                         $receive_qty = 0;
                     } else {
                         // 当前收货冲抵当前申请项后还有剩余可用于冲抵其它关联申请
                         $req_receive_qty = $info['qty'];
                         $receive_qty = $receive_qty - $info['qty'];
                     }
                 }
                 // 当前申请项有收货数量冲抵
                 if ($req_receive_qty > 0) {
                     if ($reqReceiveModel->fetchAll("req_item_id = " . $info['req_item_id'] . " and receive_item_id = " . $d['receive_item_id'])->count() == 0) {
                         $req_receive_data = array('order_item_id' => $d['order_item_id'], 'req_item_id' => $info['req_item_id'], 'receive_item_id' => $d['receive_item_id'], 'order_number' => $d['order_number'], 'req_number' => $info['req_number'], 'receive_number' => $d['number'], 'order_time' => $d['order_time'], 'req_time' => $info['req_time'], 'receive_time' => $d['create_time'], 'qty' => $req_receive_qty);
                         $reqReceiveModel->insert($req_receive_data);
                     }
                 }
             }
         }
     }
 }
Beispiel #2
0
 public function getData($order_id)
 {
     $result = array();
     $data = $this->fetchAll("order_id = " . $order_id)->toArray();
     $item = new Erp_Model_Purchse_Receiveitemsorder();
     $reqItem = new Erp_Model_Purchse_Orderitemsreq();
     foreach ($data as $d) {
         $active = $d['active'] == 1 ? true : false;
         $qty_receive = $item->getQty('order', $d['id']);
         $itemReqInfo = $reqItem->getOrderItemReqInfo($d['id']);
         $req_item_ids = array();
         $req_qtys = array();
         foreach ($itemReqInfo as $info) {
             array_push($req_item_ids, $info['req_item_id']);
             array_push($req_qtys, $info['qty']);
         }
         $items_req_item_id = implode(',', $req_item_ids);
         $items_req_qty = implode(',', $req_qtys);
         array_push($result, array('items_id' => $d['id'], 'items_order_id' => $d['order_id'], 'items_req_number' => $d['req_number'], 'items_active' => $active, 'items_code' => $d['code'], 'items_name' => $d['name'], 'items_description' => $d['description'], 'items_supplier_code' => $d['supplier_code'], 'items_supplier_codename' => $d['supplier_codename'], 'items_supplier_description' => $d['supplier_description'], 'items_warehouse_code' => $d['warehouse_code'], 'items_qty' => $d['qty'], 'items_qty_receive' => $qty_receive, 'items_unit' => $d['unit'], 'items_price' => $d['price'], 'items_total' => $d['total'], 'items_request_date' => $d['request_date'], 'items_dept_id' => $d['dept_id'], 'items_project_info' => $d['project_info'], 'items_req_item_id' => $items_req_item_id, 'items_req_qty' => $items_req_qty, 'items_remark' => $d['remark']));
     }
     return $result;
 }