public function getData($condition, $receive_id = null, $type = '采购收货') { $sql = $this->select()->setIntegrityCheck(false)->from(array('t1' => $this->_name))->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'))->where("t1.type = '" . $type . "'"); if ($receive_id) { $sql->where("t1.id = " . $receive_id); return $this->fetchRow($sql)->toArray(); } else { if ($condition['date_from']) { $sql->where("t1.create_time >= '" . $condition['date_from'] . " 00:00:00'"); } if ($condition['date_to']) { $sql->where("t1.create_time <= '" . $condition['date_to'] . " 23:59:59'"); } if ($condition['key']) { $sql->where("t1.number like '%" . $condition['key'] . "%' \n or t1.description like '%" . $condition['key'] . "%' \n or t1.remark like '%" . $condition['key'] . "%'"); // or t8.name like '%".$condition['key']."%' } $total = $this->fetchAll($sql)->count(); $sql->order(array('t1.number desc', 't1.create_time desc')); if ($condition['type'] != 'csv') { $sql->limitPage($condition['page'], $condition['limit']); } $data = $this->fetchAll($sql)->toArray(); $receive_items = new Erp_Model_Purchse_Receiveitems(); for ($i = 0; $i < count($data); $i++) { $data[$i]['create_time'] = strtotime($data[$i]['create_time']); $data[$i]['update_time'] = strtotime($data[$i]['update_time']); $orderInfo = $receive_items->getOrderNumbersByReceiveId($data[$i]['id'], $type); $data[$i]['order_number'] = implode(',', $orderInfo['order_number']); if ($type == '采购收货') { $suppliers = array(); foreach ($orderInfo['supplier'] as $s) { if (!in_array($s, $suppliers)) { array_push($suppliers, $s); } } $data[$i]['supplier'] = implode(',', $suppliers); } else { $customers = array(); foreach ($orderInfo['customer'] as $c) { if (!in_array($c, $customers)) { array_push($customers, $c); } } $data[$i]['customer'] = implode(',', $customers); } } if ($condition['type'] == 'csv') { $data_csv = array(); $showAmount = false; if (Application_Model_User::checkPermissionByRoleName('系统管理员') || Application_Model_User::checkPermissionByRoleName('财务人员') || ($type = '采购收货' || ($type = '采购退货' || ($type = '调拨'))) && Application_Model_User::checkPermissionByRoleName('采购人员') || ($type = '销售交货' && Application_Model_User::checkPermissionByRoleName('销售人员'))) { $showAmount = true; } if ($showAmount) { if (isset($condition['action_type']) && $condition['action_type'] == '采购收货') { $title = array('cnt' => '#', 'number' => '收货单号', 'order_number' => '采购订单', 'total' => '金额', 'supplier' => '供应商', 'date' => '收货日期', 'description' => '描述', 'remark' => '备注', 'creater' => '收货人', 'create_time' => '收货时间'); } else { if (isset($condition['action_type']) && $condition['action_type'] == '销售交货') { $title = array('cnt' => '#', 'number' => '交货单号', 'order_number' => '销售订单', 'total' => '金额', 'customer' => '客户', 'date' => '交货日期', 'description' => '描述', 'remark' => '备注', 'creater' => '交货人', 'create_time' => '交货时间'); } else { $title = array('cnt' => '#', 'transaction_type' => '库存交易类别', 'number' => '单据号', 'date' => '单据日期', 'total' => '金额', 'description' => '描述', 'remark' => '备注', 'creater' => '制单人', 'create_time' => '制单时间'); } } } else { if (isset($condition['action_type']) && $condition['action_type'] == '采购收货') { $title = array('cnt' => '#', 'number' => '收货单号', 'order_number' => '采购订单', 'supplier' => '供应商', 'date' => '收货日期', 'description' => '描述', 'remark' => '备注', 'creater' => '收货人', 'create_time' => '收货时间'); } else { if (isset($condition['action_type']) && $condition['action_type'] == '销售交货') { $title = array('cnt' => '#', 'number' => '交货单号', 'order_number' => '销售订单', 'customer' => '客户', 'date' => '交货日期', 'description' => '描述', 'remark' => '备注', 'creater' => '交货人', 'create_time' => '交货时间'); } else { $title = array('cnt' => '#', 'transaction_type' => '库存交易类别', 'number' => '单据号', 'date' => '单据日期', 'description' => '描述', 'remark' => '备注', 'creater' => '制单人', 'create_time' => '制单时间'); } } } array_push($data_csv, $title); $i = 0; foreach ($data as $d) { $i++; if ($showAmount) { if (isset($condition['action_type']) && $condition['action_type'] == '采购收货') { $info = array('cnt' => $i, 'number' => $d['number'], 'order_number' => $d['order_number'], 'total' => $d['total'], 'supplier' => $d['supplier'], 'date' => $d['date'], 'description' => $d['description'], 'remark' => $d['remark'], 'creater' => $d['creater'], 'create_time' => date('Y-m-d H:i:s', $d['create_time'])); } else { if (isset($condition['action_type']) && $condition['action_type'] == '销售交货') { $info = array('cnt' => $i, 'number' => $d['number'], 'order_number' => $d['order_number'], 'total' => $d['total'], 'customer' => $d['customer'], 'date' => $d['date'], 'description' => $d['description'], 'remark' => $d['remark'], 'creater' => $d['creater'], 'create_time' => date('Y-m-d H:i:s', $d['create_time'])); } else { $info = array('cnt' => $i, 'transaction_type' => $d['transaction_type'], 'number' => $d['number'], 'date' => $d['date'], 'total' => $d['total'], 'description' => $d['description'], 'remark' => $d['remark'], 'creater' => $d['creater'], 'create_time' => date('Y-m-d H:i:s', $d['create_time'])); } } } else { if (isset($condition['action_type']) && $condition['action_type'] == '采购收货') { $info = array('cnt' => $i, 'number' => $d['number'], 'order_number' => $d['order_number'], 'supplier' => $d['supplier'], 'date' => $d['date'], 'description' => $d['description'], 'remark' => $d['remark'], 'creater' => $d['creater'], 'create_time' => date('Y-m-d H:i:s', $d['create_time'])); } else { if (isset($condition['action_type']) && $condition['action_type'] == '销售交货') { $info = array('cnt' => $i, 'number' => $d['number'], 'order_number' => $d['order_number'], 'customer' => $d['customer'], 'date' => $d['date'], 'description' => $d['description'], 'remark' => $d['remark'], 'creater' => $d['creater'], 'create_time' => date('Y-m-d H:i:s', $d['create_time'])); } else { $info = array('cnt' => $i, 'transaction_type' => $d['transaction_type'], 'number' => $d['number'], 'date' => $d['date'], 'description' => $d['description'], 'remark' => $d['remark'], 'creater' => $d['creater'], 'create_time' => date('Y-m-d H:i:s', $d['create_time'])); } } } array_push($data_csv, $info); } return $data_csv; } return array('total' => $total, 'rows' => $data); } }