Esempio n. 1
0
 public function getData($order_id)
 {
     $result = array();
     $data = $this->fetchAll("order_id = " . $order_id)->toArray();
     $item = new Erp_Model_Sale_Receiveitemsordersale();
     foreach ($data as $d) {
         $active = $d['active'] == 1 ? true : false;
         $price_tax = $d['price_tax'] == 1 ? true : false;
         $qty_send = $item->getQty('order', $d['id']);
         // 交货(负数)
         array_push($result, array('items_id' => $d['id'], 'items_type' => $d['type'], 'items_order_id' => $d['order_id'], 'items_active' => $active, 'items_code' => $d['code'], 'items_name' => $d['name'], 'items_description' => $d['description'], 'items_qty' => $d['qty'], 'items_qty_send' => $qty_send, 'items_unit' => $d['unit'], 'items_price' => $d['price'], 'items_price_tax' => $price_tax, 'items_total' => $d['total'], 'items_request_date' => $d['request_date'], 'items_customer_code' => $d['customer_code'], 'items_customer_description' => $d['customer_description'], 'items_remark' => $d['remark']));
     }
     return $result;
 }
Esempio n. 2
0
 public function getOrderItemsList($key = null, $customer_id = null)
 {
     $sql = $this->select()->setIntegrityCheck(false)->from(array('t1' => $this->_name), array('order_sales_id' => 'sales_id', 'order_customer_id' => 'customer_id', 'order_date', 'order_number' => 'number', 'order_remark' => 'remark', 'order_currency' => 'currency', 'order_type_id' => 'type_id'))->joinLeft(array('t2' => $this->_dbprefix . 'user'), "t1.create_user = t2.id", array())->joinLeft(array('t3' => $this->_dbprefix . 'employee'), "t2.employee_id = t3.id", array('creater' => 'cname'))->joinLeft(array('t4' => $this->_dbprefix . 'user'), "t1.update_user = t4.id", array())->joinLeft(array('t5' => $this->_dbprefix . 'employee'), "t4.employee_id = t5.id", array('updater' => 'cname'))->joinLeft(array('t7' => $this->_dbprefix . 'erp_sale_type'), "t1.type_id = t7.id", array('order_type_name' => 'name'))->joinLeft(array('t8' => $this->_dbprefix . 'erp_sale_order_items'), "t1.id = t8.order_id", array('id', 'order_id', 'request_date', 'code', 'code_internal', 'name', 'description', 'customer_code', 'customer_description', 'remark', 'price', 'qty', 'unit'))->joinLeft(array('t9' => $this->_dbprefix . 'bpartner'), "t1.customer_id = t9.id", array('order_customer_code' => 'code', 'order_customer_name' => new Zend_Db_Expr("case when t9.cname != '' then t9.cname else t9.ename end")))->joinLeft(array('t10' => $this->_dbprefix . 'bpartner_contact'), "t1.customer_contact_id = t10.id", array('order_customer_contact' => new Zend_Db_Expr("concat(t10.name, ' [', t10.tel, ']')")))->where("t8.code != '' and t1.state = 2 and t1.active = 1");
     if ($key) {
         $sql->where("t1.number like '%" . $key . "%' \n                    or t1.remark like '%" . $key . "%' \n                    or t3.cname like '%" . $key . "%' \n                    or t3.ename like '%" . $key . "%' \n                    or t7.name like '%" . $key . "%' \n                    or t8.code like '%" . $key . "%' \n                    or t8.customer_code like '%" . $key . "%' \n                    or t8.name like '%" . $key . "%' \n                    or t8.description like '%" . $key . "%' \n                    or t8.customer_description like '%" . $key . "%'");
     }
     if ($customer_id) {
         $sql->where("t1.customer_id = " . $customer_id);
     }
     /* echo $sql;
        exit; */
     $data = $this->fetchAll($sql)->toArray();
     $items_send = new Erp_Model_Sale_Receiveitemsordersale();
     $sales = new Erp_Model_Sale_Sales();
     for ($i = 0; $i < count($data); $i++) {
         // 获取已下单数量
         $data[$i]['qty_send'] = $items_send->getQty('order', $data[$i]['id']);
         // 交货(负数)
         $data[$i]['qty_left'] = $data[$i]['qty'] - $data[$i]['qty_send'];
         $data[$i]['qty_send'] = 0;
         $salesData = $sales->getData($data[$i]['order_sales_id']);
         $data[$i]['order_sales_name'] = isset($salesData['cname']) ? $salesData['cname'] : '';
         $data[$i]['description'] = str_replace("'", "\\'", $data[$i]['description']);
     }
     return $data;
 }