public function indexAction() { $this->view->customerAdmin = 0; if (Application_Model_User::checkPermissionByRoleName('客户管理员') || Application_Model_User::checkPermissionByRoleName('系统管理员')) { $this->view->customerAdmin = 1; } }
public function indexAction() { $user_session = new Zend_Session_Namespace('user'); $this->view->defaultCurrency = ''; $this->view->bpartnerAdminDisabled = 1; $this->view->supplierAdmin = 0; $this->view->customerAdmin = 0; $this->view->editDisable = 1; $this->view->user_id = 0; if (isset($user_session->user_info)) { $this->view->user_id = $user_session->user_info['user_id']; if (Application_Model_User::checkPermissionByRoleName('业务伙伴管理员')) { $this->view->bpartnerAdminDisabled = 0; $this->view->editDisable = 0; } if (Application_Model_User::checkPermissionByRoleName('供应商管理员') || Application_Model_User::checkPermissionByRoleName('系统管理员')) { $this->view->supplierAdmin = 1; $this->view->editDisable = 0; } if (Application_Model_User::checkPermissionByRoleName('客户管理员') || Application_Model_User::checkPermissionByRoleName('系统管理员')) { $this->view->customerAdmin = 1; $this->view->editDisable = 0; } } $currency = new Erp_Model_Setting_Currency(); $this->view->defaultCurrency = $currency->getDefaultCurrency(); }
public function indexAction() { $user_session = new Zend_Session_Namespace('user'); $this->view->salesDisable = 1; $this->view->pmDisable = 1; $this->view->adminDisable = 1; $this->view->user_id = 0; if (isset($user_session->user_info)) { $this->view->user_id = $user_session->user_info['user_id']; if ($user_session->user_info['isSuperAdmin']) { $this->view->salesDisable = 0; $this->view->pmDisable = 0; $this->view->adminDisable = 0; } else { if (Application_Model_User::checkPermissionByRoleName('产品中心-市场') || Application_Model_User::checkPermissionByRoleName('产品中心-工程师')) { $this->view->salesDisable = 0; } if (Application_Model_User::checkPermissionByRoleName('产品中心-PM')) { $this->view->adminDisable = 0; $this->view->salesDisable = 0; $this->view->pmDisable = 0; } /* if(Application_Model_User::checkPermissionByRoleName('产品中心-审核')){ $this->view->reviewDisable = 0; } */ if (Application_Model_User::checkPermissionByRoleName('系统管理员')) { $this->view->salesDisable = 0; $this->view->pmDisable = 0; $this->view->adminDisable = 0; } } } }
public function indexAction() { $user_session = new Zend_Session_Namespace('user'); $this->view->user_id = 0; $this->view->accessViewTotal = 0; if (isset($user_session->user_info)) { $this->view->user_id = $user_session->user_info['user_id']; if (Application_Model_User::checkPermissionByRoleName('系统管理员') || Application_Model_User::checkPermissionByRoleName('财务人员')) { $this->view->accessViewTotal = 1; } } }
public function indexAction() { $user_session = new Zend_Session_Namespace('user'); $user_id = $user_session->user_info['user_id']; $user_number = $user_session->user_info['user_number']; if (isset($user_session->user_info)) { $this->view->user_id = $user_id; if (Application_Model_User::checkPermissionByRoleName('系统管理员')) { $this->view->admin = 1; } } // 获取默认日期范围(最近3个月) $time = time(); $this->view->default_date_from = date('Y-m-01', strtotime(date('Y', $time) . '-' . (date('m', $time) - 1) . '-01')); $this->view->default_date_to = date('Y-m-t', strtotime(date('Y', $time) . '-' . (date('m', $time) + 1) . '-01')); }
public function indexAction() { $user_session = new Zend_Session_Namespace('user'); $this->view->hraAdmin = 0; $this->view->user_id = 0; if (isset($user_session->user_info)) { $this->view->user_id = $user_session->user_info['user_id']; if ($user_session->user_info['isSuperAdmin']) { $this->view->hraAdmin = 1; } else { if (Application_Model_User::checkPermissionByRoleName('系统管理员') || Application_Model_User::checkPermissionByRoleName('人事主管')) { $this->view->hraAdmin = 1; } } } }
public function getData($condition) { $where = "t1.apply_time >= '" . $condition['date_from'] . " 00:00:00' and t1.apply_time <= '" . $condition['date_to'] . " 23:59:59'"; if ($condition['key'] != '') { $where .= " and (t3.cname like '%" . $condition['key'] . "%' or t3.ename like '%" . $condition['key'] . "%' or t3.number like '%" . $condition['key'] . "%')"; } $sql = $this->select()->setIntegrityCheck(false)->from(array('t1' => $this->_name))->joinLeft(array('t2' => $this->_dbprefix . 'seal'), "t1.seal_id = t2.id", array('seal_name' => 'name'))->joinLeft(array('t3' => $this->_dbprefix . 'user'), "t1.apply_user = t3.id", array())->joinLeft(array('t4' => $this->_dbprefix . 'employee'), "t4.id = t3.employee_id", array('apply_user_name' => 'cname'))->joinLeft(array('t5' => $this->_dbprefix . 'user'), "t1.review_user = t5.id", array())->joinLeft(array('t6' => $this->_dbprefix . 'employee'), "t6.id = t5.employee_id", array('review_user_name' => 'cname'))->order(array('t1.review_state', 't1.apply_time desc')); if (!Application_Model_User::checkPermissionByRoleName('印章管理员') && !Application_Model_User::checkPermissionByRoleName('系统管理员')) { $user_session = new Zend_Session_Namespace('user'); $user_id = $user_session->user_info['user_id']; $sql->where("apply_user = "******" or review_user = " . $user_id); } $total = $this->fetchAll($sql)->count(); if ($condition['option'] != 'csv') { $sql->limitPage($condition['page'], $condition['limit']); } $data = $this->fetchAll($sql)->toArray(); for ($i = 0; $i < count($data); $i++) { switch ($data[$i]['state']) { case 1: $data[$i]['state'] = '新申请'; break; case 2: $data[$i]['state'] = '批准'; break; case 3: $data[$i]['state'] = '拒绝'; break; default: $data[$i]['state'] = '无'; break; } } if ($condition['option'] == 'csv') { $data_csv = array(); $title = array('cnt' => '#', 'state' => '状态', 'seal_name' => '印章', 'apply_reason' => '事由', 'review_user' => '审核人', 'review_time' => '审核时间', 'review_opinion' => '审核意见', 'apply_user' => '申请人', 'apply_time' => '申请时间', 'remark' => '备注'); array_push($data_csv, $title); $i = 0; foreach ($data as $d) { $i++; $info = array('cnt' => $i, 'state' => $d['state'], 'seal_name' => $d['seal_name'], 'apply_reason' => $d['apply_reason'], 'review_user' => $d['review_user'], 'review_time' => $d['review_time'], 'review_opinion' => $d['review_opinion'], 'apply_user' => $d['apply_user'], 'apply_time' => $d['apply_time'], 'remark' => $d['remark']); array_push($data_csv, $info); } return $data_csv; } return array('total' => $total, 'rows' => $data); }
public function indexAction() { $user_session = new Zend_Session_Namespace('user'); $this->view->typeEditDisable = 1; $this->view->accessViewOrder = 0; $this->view->user_id = 0; if (isset($user_session->user_info)) { $this->view->user_id = $user_session->user_info['user_id']; if (Application_Model_User::checkPermissionByRoleName('系统管理员') || Application_Model_User::checkPermissionByRoleName('供应商管理员')) { $this->view->typeEditDisable = 0; $this->view->accessViewOrder = 1; } else { if (Application_Model_User::checkPermissionByRoleName('采购订单明细查看')) { $this->view->accessViewOrder = 1; } } } }
public function indexAction() { $user_session = new Zend_Session_Namespace('user'); $this->view->canReplyPlan = 0; $this->view->canReplySales = 0; $this->view->user_id = 0; if (isset($user_session->user_info)) { $this->view->user_id = $user_session->user_info['user_id']; if (Application_Model_User::checkPermissionByRoleName('系统管理员')) { $this->view->canReplyPlan = 1; $this->view->canReplySales = 1; } if (Application_Model_User::checkPermissionByRoleName('计划人员')) { $this->view->canReplyPlan = 1; } if (Application_Model_User::checkPermissionByRoleName('销售人员')) { $this->view->canReplySales = 1; } } }
/** * 获取BOM列表 */ public function getMy($type, $where, $myId, $start, $limit) { // 该我审批的 $sql3 = $this->select()->setIntegrityCheck(false)->from(array('t1' => $this->_name))->join(array('t2' => $this->_dbprefix . 'review'), "t1.id = t2.file_id and t2.finish_flg = 0 and (t2.type = 'updbom' or t2.type = 'devbom' or t2.type = 'ecobom')", array())->joinLeft(array('t3' => $this->_dbprefix . 'employee'), "t1.create_user = t3.id", array('creater' => 'cname'))->joinLeft(array('t4' => $this->_dbprefix . 'codemaster'), "t4.code = t1.reason_type and t4.type=6", array('reason_type_name' => 'text'))->where("t1.state = 'Reviewing' and (t2.actual_user is null or !(FIND_IN_SET({$myId},t2.actual_user))) and (FIND_IN_SET({$myId}, t2.plan_user))")->where($where); $ids = $this->getMyReviewing($myId); if ($ids) { $sql3->where("t2.id in ({$ids})"); } // 我申请的 $sql1 = $this->select()->setIntegrityCheck(false)->from(array('t1' => $this->_name))->joinLeft(array('t3' => $this->_dbprefix . 'employee'), "t1.create_user = t3.id", array('creater' => 'cname'))->joinLeft(array('t4' => $this->_dbprefix . 'codemaster'), "t4.code = t1.reason_type and t4.type=6", array('reason_type_name' => 'text'))->where($where); if (!Application_Model_User::checkPermissionByRoleName('文件管理员') && !Application_Model_User::checkPermissionByRoleName('物料管理员') && !Application_Model_User::checkPermissionByRoleName('系统管理员')) { $sql1 = $sql1->where("(t1.state = 'Reviewing' or t1.state = 'Return' or t1.state = 'Draft' or t1.state = 'Active') and t1.create_user = {$myId}"); } else { $sql1 = $sql1->where("(t1.state = 'Reviewing' or t1.state = 'Return' or t1.state = 'Active') or (t1.state = 'Draft' and t1.create_user = {$myId})"); } // 我审批过的 $sql2 = $this->select()->setIntegrityCheck(false)->from(array('t1' => $this->_name))->joinLeft(array('t3' => $this->_dbprefix . 'employee'), "t1.create_user = t3.id", array('creater' => 'cname'))->joinLeft(array('t4' => $this->_dbprefix . 'codemaster'), "t4.code = t1.reason_type and t4.type=6", array('reason_type_name' => 'text'))->where("t1.state = 'Reviewing' or t1.state = 'Return' or t1.state = 'Active'")->where($where); $ids = $this->getMyReviewed($myId); if ($ids) { $sql2->where("t1.id in ({$ids})"); } if ($type == 1) { $sqlArray = array($sql1); } else { if ($type == 2) { $sqlArray = array($sql2); } else { if ($type == 3) { $sqlArray = array($sql3); } else { $sqlArray = array($sql3, $sql1, $sql2); } } } $selectUnion = $this->select()->union($sqlArray, Zend_Db_Select::SQL_UNION)->order('state DESC')->order('update_time desc')->limit($limit, $start); $data = $this->fetchAll($selectUnion)->toArray(); return $data; }
public function indexAction() { $user_session = new Zend_Session_Namespace('user'); $this->view->bpartnerAdminDisabled = 1; $this->view->supplierAdmin = 0; $this->view->customerAdmin = 0; $this->view->supplierView = 0; $this->view->customerView = 0; $this->view->user_id = 0; if (isset($user_session->user_info)) { $this->view->user_id = $user_session->user_info['user_id']; if ($user_session->user_info['isSuperAdmin']) { $this->view->bpartnerAdminDisabled = 0; $this->view->supplierAdmin = 1; $this->view->customerAdmin = 1; $this->view->supplierView = 1; $this->view->customerView = 1; } else { if (Application_Model_User::checkPermissionByRoleName('业务伙伴管理员')) { $this->view->bpartnerAdminDisabled = 0; $this->view->supplierView = 1; $this->view->customerView = 1; } if (Application_Model_User::checkPermissionByRoleName('业务伙伴-查看-供应商')) { $this->view->supplierView = 1; } if (Application_Model_User::checkPermissionByRoleName('业务伙伴-查看-客户')) { $this->view->customerView = 1; } if (Application_Model_User::checkPermissionByRoleName('供应商管理员') || Application_Model_User::checkPermissionByRoleName('系统管理员')) { $this->view->supplierAdmin = 1; } if (Application_Model_User::checkPermissionByRoleName('客户管理员') || Application_Model_User::checkPermissionByRoleName('系统管理员')) { $this->view->customerAdmin = 1; } } } }
public function indexAction() { $user_session = new Zend_Session_Namespace('user'); $user_id = $user_session->user_info['user_id']; $user_number = $user_session->user_info['user_number']; $this->view->hraAdmin = 0; $this->view->user_id = 0; $request = $this->getRequest()->getParams(); $this->view->active_tab = isset($request['active_tab']) ? $request['active_tab'] : 0; if (isset($user_session->user_info)) { $this->view->user_id = $user_id; if ($user_session->user_info['isSuperAdmin']) { $this->view->hraAdmin = 1; } else { if (Application_Model_User::checkPermissionByRoleName('系统管理员') || Application_Model_User::checkPermissionByRoleName('人事主管')) { $this->view->hraAdmin = 1; } } } $user = new Application_Model_User(); $member = new Admin_Model_Member(); // 获取部门主管 $manager = $user->getManagerUser($user_session->user_info['user_id']); $this->view->default_manager_id = $manager[0]['id']; // 获取总经理 /* $leader = $member->getMemberWithNoManagerByName('总经理'); $this->view->default_leader_id = $leader[0]['user_id']; */ // 获取公司领导 /* $leader = $user->getLeaderList(); $this->view->default_leader_id = $leader[0]['id']; */ // 获取当前用户剩余假期 $this->view->vacation_qty_left = $this->getVacaionLeftQty($user_id); // 获取默认日期范围(最近3个月) $time = time(); $this->view->default_date_from = date('Y-m-01', strtotime(date('Y', $time) . '-' . (date('m', $time) - 1) . '-01')); $this->view->default_date_to = date('Y-m-t', strtotime(date('Y', $time) . '-' . (date('m', $time) + 1) . '-01')); }
public function getMyCount($type, $where, $myId) { $sql3 = $this->select()->setIntegrityCheck(false)->from(array('t1' => $this->_name))->join(array('t2' => $this->_dbprefix . 'review'), "t1.id = t2.file_id and t2.finish_flg = 0 and t2.type = 'bom'", array())->joinLeft(array('t3' => $this->_dbprefix . 'employee'), "t1.create_user = t3.id", array('creater' => 'cname'))->where("t1.state != 'Deleted'")->where($where); $ids = $this->getMyReviewing($myId); if ($ids) { $sql3->where("t2.id in ({$ids})"); } $sql1 = $this->select()->setIntegrityCheck(false)->from(array('t1' => $this->_name))->joinLeft(array('t3' => $this->_dbprefix . 'employee'), "t1.create_user = t3.id", array('creater' => 'cname'))->where($where); if (!Application_Model_User::checkPermissionByRoleName('BOM管理员') && !Application_Model_User::checkPermissionByRoleName('系统管理员')) { $sql1 = $sql1->where("(t1.state = 'Reviewing' or t1.state = 'Return' or t1.state = 'Draft' or t1.state = 'Active') and t1.create_user = {$myId}"); } else { $sql1 = $sql1->where("(t1.state = 'Reviewing' or t1.state = 'Return' or t1.state = 'Active') or (t1.state = 'Draft' and t1.create_user = {$myId})"); } $sql2 = $this->select()->setIntegrityCheck(false)->from(array('t1' => $this->_name))->joinLeft(array('t3' => $this->_dbprefix . 'employee'), "t1.create_user = t3.id", array('creater' => 'cname'))->where("t1.state != 'Deleted'")->where($where); $ids = $this->getMyReviewed($myId); if ($ids) { $sql2->where("t1.id in ({$ids})"); } if ($type == 1) { $sqlArray = array($sql1); } else { if ($type == 2) { $sqlArray = array($sql2); } else { if ($type == 3) { $sqlArray = array($sql3); } else { $sqlArray = array($sql1, $sql2, $sql3); } } } $selectUnion = $this->select()->union($sqlArray, Zend_Db_Select::SQL_UNION)->order('state DESC')->order('update_time desc'); $data = $this->fetchAll($selectUnion)->count(); return $data; }
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); } }
/** * @abstract 审核 * @return null */ public function reviewAction() { // 返回值数组 $result = array('success' => true, 'result' => true, 'info' => '审批成功'); $request = $this->getRequest()->getParams(); $now = date('Y-m-d H:i:s'); $user_session = new Zend_Session_Namespace('user'); $user = $user_session->user_info['employee_id']; $val = (object) $request; $materiel = new Product_Model_Materiel(); $record = new Dcc_Model_Record(); $review = new Dcc_Model_Review(); $employee = new Hra_Model_Employee(); $id = $val->id; $remark = $val->remark1; $pass = $val->review_result; $publish = false; if (isset($val->code) && $val->code != '') { $code = $val->code; // 检查code是否重复 if ($materiel->fetchAll("id != {$id} and code = '" . $code . "'")->count() > 0) { $result['result'] = false; $result['info'] = "代码“" . $code . "”已经存在"; echo Zend_Json::encode($result); exit; } } if (isset($val->ids) && $val->ids && strpos($val->ids, ',') !== false) { // 多个 $ids = explode(',', $val->ids); } else { $ids = array($id); } $newCodes = array(); foreach ($ids as $id) { // 获取物料信息 $materielData = $materiel->getOne($id); if (!$materielData) { $result['result'] = false; $result['info'] = "数据状态已改变"; echo Zend_Json::encode($result); exit; } $review_id = $materielData->review_id; // 获取当前审核情况 // 如果record记录被删除或状态已改变,报错 $reviewWhere = "id = {$review_id}"; $reviewRows = $review->getList($reviewWhere, "materiel"); if (count($reviewRows) == 0) { $result['result'] = false; $result['info'] = "非法数据"; echo Zend_Json::encode($result); exit; } $reviewRow = $reviewRows[0]; if ($reviewRow['finish_flg'] != 0) { $result['result'] = false; $result['info'] = "数据状态已改变"; echo Zend_Json::encode($result); exit; } // 处理记录 $recordData = array("type" => "materiel", "table_name" => "oa_product_materiel", "table_id" => $id, "handle_user" => $user, "handle_time" => $now, "action" => "审批", "result" => $pass == 1 ? "批准" : ($pass == 2 ? "拒绝" : "转审"), "ip" => $_SERVER['REMOTE_ADDR'], "remark" => $remark); // 增加记录 $record->insert($recordData); // 通过方式 $method = $reviewRow['method']; if ($pass == 1) { if ($method == 2) { // 任何一人处理即通过 $finish_flg = 1; $actual_user = $user; $finish_time = $now; } else { // 所有人都需要审核,检查是否所有人都已经审核 $plan_user = $reviewRow['plan_user']; $actual_user = $reviewRow['actual_user']; $actual_user = !$actual_user ? $user : $actual_user . "," . $user; // 检查计划审核人和实际审核人是否一致 $planA = explode(',', $plan_user); $actualA = explode(',', $actual_user); $passFlg = true; foreach ($planA as $u) { if ($u && !in_array($u, $actualA)) { $passFlg = false; } } if ($passFlg) { $finish_flg = 1; $finish_time = $now; } else { $finish_flg = 0; $finish_time = null; } } // 审核情况 $reviewData = array("actual_user" => $actual_user, "finish_time" => $finish_time, "finish_flg" => $finish_flg); } else { if ($pass == 3) { // 转审 $finish_flg = 0; if ($method == 2) { // 处理方式为任意时,一个人转审之后其他人员也删除 $plan_user = str_replace('E', '', $val->transfer_id); } else { // 更改审核情况中的审核人 $plan_users = explode(',', $reviewRow['plan_user']); // 审核人不在审核人列表中,并且是管理员,则替换所有人 if (!in_array($user, $plan_users) && (Application_Model_User::checkPermissionByRoleName('物料管理员') || Application_Model_User::checkPermissionByRoleName('系统管理员'))) { $plan_users = array(str_replace('E', '', $val->transfer_id)); } else { for ($i = 0; $i < count($plan_users); $i++) { if ($plan_users[$i] == $user) { $plan_users[$i] = str_replace('E', '', $val->transfer_id); break; } } } $plan_user = implode(',', $plan_users); } // 审核情况 $reviewData = array("plan_user" => $plan_user, "method" => 1); } else { // 退回 $actual_user = null; $finish_time = null; $finish_flg = 0; // 退回选项 $return = $reviewRow['return']; if ($return == 2) { // 退到初始状态 // 需更新的审核记录: 所有 $reviewWhere = "type = 'materiel' and file_id = {$id}"; // 审核情况更新数据 $reviewData = array("actual_user" => $actual_user, "finish_time" => $finish_time, "finish_flg" => $finish_flg); // 文件状态不更新 } else { if ($return == 4) { // 退到本阶段开始 // 需更新的审核记录 $reviewWhere = "type = 'materiel' and finish_flg = 0 and file_id = {$id}"; // 审核情况更新数据 $reviewData = array("actual_user" => $actual_user, "finish_time" => $finish_time, "finish_flg" => $finish_flg); // 文件状态不更新 } else { if ($return == 3) { // 退到上一阶段 // 需更新的审核记录:最后一个finish_flg为1的数据和第一个finish_flg为0的数据 $last_1 = $first_0 = 0; foreach ($reviewRows as $r) { if ($r['finish_flg'] == 1) { $last_1 = $r['id']; } if ($r['finish_flg'] == 0 && $first_0 == null) { $first_0 = $r['id']; } } $reviewWhere = "id = {$last_1} or id = {$first_0}"; // 审核情况更新数据 $reviewData = array("actual_user" => $actual_user, "finish_time" => $finish_time, "finish_flg" => $finish_flg); // 文件状态不更新 } else { $fileWhere = "id = {$id}"; // 更新文件状态为退回 $mData = array("state" => "Return"); // 退到初始状态 // 更新所有record的finish_flg为0 $reviewWhere = "type = 'materiel' and file_id = {$id}"; // 审核情况 $reviewData = array("actual_user" => $actual_user, "finish_time" => $finish_time, "finish_flg" => $finish_flg); } } } } } // 如果所有record的记录的finish_flg 都为1,则发布 if ($finish_flg == 1 && $review->fetchAll("type = 'materiel' and finish_flg = 0 and file_id = {$id}")->count() == 1) { $publish = true; if (!isset($code) || !$code) { // 自动生成物料编码 $code = $this->getCode($materielData->type, $materielData->project_no); if (!$code) { $result['result'] = false; $result['info'] = "生成物料编码失败"; echo Zend_Json::encode($result); exit; } else { if (count($ids) > 1) { $newCodes[] = $code; $result['info'] = "审批成功"; } else { $result['info'] = "审批成功,系统分配物料号:{$code}"; } } } $mData = array("state" => "Active", "code" => $code, "archive_time" => $now); $fileWhere = "id = {$id}"; // 如果有ds等文件,这些文件也设置为已归档 $data_file_id = $materielData->data_file_id; $tsr_id = $materielData->tsr_id; $first_report_id = $materielData->first_report_id; if ($data_file_id || $tsr_id || $first_report_id) { $uploadUpdWhere = " archive = 0 and (1=0 "; if ($data_file_id) { $uploadUpdWhere .= " or id = " . $data_file_id; } if ($tsr_id) { $uploadUpdWhere .= " or id = " . $tsr_id; } if ($first_report_id) { $uploadUpdWhere .= " or id = " . $first_report_id; } $uploadUpdWhere .= ")"; $uploadUpdData = array('archive' => 1, 'archive_time' => $now); } } try { // 更新审核情况 $review->update($reviewData, $reviewWhere); // 更新文件 if (isset($fileWhere)) { $materiel->update($mData, $fileWhere); } // 更新上传文件 if (isset($uploadUpdData)) { $upload = new Dcc_Model_Upload(); $upload->update($uploadUpdData, $uploadUpdWhere); } $this->operate("物料评审"); } catch (Exception $e) { $result['result'] = false; $result['info'] = $e->getMessage(); echo Zend_Json::encode($result); exit; } // 邮件任务 // 文件提交者或更新人 $owner = $materielData['create_user']; $dev = false; $type = "物料申请"; // 发邮件的情况: // 1、单站审核结束 $finish_flg = 1 && $publish = false if ($finish_flg == 1 && !$publish) { $subject = $type . "审批"; // $to = 下一站审核人 $current = $review->getFirstNoReview("materiel", $id); $to = $employee->getInfosByOneLine($current['plan_user']); // $cc = $employee->getInfosByOneLine($owner); $cc = $cc['email']; $content = "你有一个" . $type . "需要审批,请登录系统查看详情!"; } // 2、所有审核结束 $publish = true if ($publish) { $subject = $type . "发布"; $to = $employee->getInfosByOneLine($owner); $cc = $employee->getInfosByOneLine($record->getEmployeeIds($materielData['id'], 'materiel')); $cc = $cc['email']; $config = new Zend_Config_Ini(CONFIGS_PATH . '/application.ini', 'production'); if (isset($config) && isset($config->email->apply->publish)) { $to_plus = $config->email->apply->publish; if ($to_plus) { if ($cc) { $cc .= "," . $to_plus; } else { $cc = $to_plus; } } } // $cc = ""; $his = "<p><b>审核记录:</b><br>" . str_replace(',', '<br>', $record->getHis($materielData['id'], 'materiel')) . "</p>"; $content = "你申请的" . $type . "已通过审批。<p><b>物料编码:</b>" . $code . "</p><p><b>类别:</b>" . $this->getTypeByConnect($materielData['type'], '') . "</p><p><b>名称:</b>" . $materielData['name'] . "</p><p><b>描述:</b>" . $materielData['description'] . "</p><p><b>申请人:</b>" . $materielData['creater'] . "</p><p><b>申请时间:</b>" . $materielData['create_time'] . "</p>" . $his . "<p>请登录系统查看详情!</p>"; } // 3、退回 isset($return) if (isset($return)) { $subject = $type . "退回"; $to = $employee->getInfosByOneLine($owner); $cc = ""; // 原审核人 if ($reviewRow['plan_user']) { $orgUser = $reviewRow['plan_user']; $cc = $employee->getInfosByOneLine($orgUser); $cc = $cc['email']; } $content = "你申请的" . $type . "已被退回,<p><b>退回原因:</b>" . $remark . "</p>,请登录系统查看详情!"; } // 4、转审 $pass == 3 if ($pass == 3) { $subject = $type . "转审"; $toUser = str_replace('E', '', $val->transfer_id); $to = $employee->getInfosByOneLine($toUser); // 原审核人 if ($reviewRow['plan_user']) { $orgUser = $reviewRow['plan_user']; $owner .= "," . $orgUser; } $cc = $employee->getInfosByOneLine($owner); $cc = $cc['email']; $content = "有新的" . $type . "被转移到你处审批,请登录系统查看详情!"; } if (isset($subject)) { $mailData = array('type' => $type, 'subject' => $subject, 'to' => $to['email'], 'cc' => $cc, 'content' => $content, 'send_time' => $now, 'add_date' => $now); $mail = new Application_Model_Log_Mail(); try { $mailId = $mail->insert($mailData); } catch (Exception $e) { $result['result'] = false; $result['info'] = $e->getMessage(); echo Zend_Json::encode($result); exit; } if ($mailId) { $mail->send($mailId); } } $code = null; } if (count($newCodes) > 0) { $result['info'] .= ',系统分配物料号分别为:' . implode(',', $newCodes); } echo Zend_Json::encode($result); exit; }
/** * 获取文件编码及文件信息 */ public function getfilesbyidAction() { // 获取参数 $request = $this->getRequest()->getParams(); $id = $request['id']; $user_session = new Zend_Session_Namespace('user'); $user = $user_session->user_info['employee_id']; $myDept = $user_session->user_info['dept_id']; $nowDate = date('Y-m-d'); $files = new Dcc_Model_Files(); $record = new Dcc_Model_Record(); $upload = new Dcc_Model_Upload(); $codeModel = new Dcc_Model_Code(); $share = new Dcc_Model_Share(); $review = new Dcc_Model_Review(); $modelUser = new Application_Model_User(); $data = $files->getDataById($id); // [id, code, ver, file_id, file_name, file_path, file_view_path] $result = array(); $row0 = $data[0]; $names = explode(',', $row0['name']); $codes = explode(',', $row0['code']); $vers = explode(',', $row0['ver']); $description = explode('|', $row0['description']); $project_info = explode(',', $row0['project_info']); $final_codes = array(); $final_vers = array(); $final_names = array(); $final_descs = array(); $final_projs = array(); $k = 0; for ($i = 0; $i < count($names); $i++) { $sub_names = explode('|', $names[$i]); $final_codes[$k] = $codes[$i]; $final_vers[$k] = $vers[$i]; if (isset($description[$i]) && $description[$i]) { $final_descs[$k] = $description[$i]; } else { $final_descs[$k] = ""; } if (isset($project_info[$i]) && $project_info[$i]) { $final_projs[$k] = $project_info[$i]; } else { $final_projs[$k] = ""; } $final_names[$k] = $sub_names[0]; $k++; for ($j = 1; $j < count($sub_names); $j++) { $final_codes[$k] = $codes[$i]; $final_vers[$k] = $vers[$i]; $final_names[$k] = $sub_names[$j]; if (isset($description[$i]) && $description[$i]) { $final_descs[$k] = $description[$i]; } else { $final_descs[$k] = ""; } if (isset($project_info[$i]) && $project_info[$i]) { $final_projs[$k] = $project_info[$i]; } else { $final_projs[$k] = ""; } $k++; } } $catalog = new Product_Model_Catalog(); for ($i = 0; $i < count($data); $i++) { $paths = $this->getPathByName($data, trim($final_names[$i])); $row = $data[$i]; $result[$i]['id'] = $row['id']; $result[$i]['state'] = $row['state']; if ($final_descs[$i]) { $result[$i]['description'] = $final_descs[$i]; } else { // 获取描述 $descData = $codeModel->getJoinList("code = '{$final_codes[$i]}'", array(), array('description', 'project_no')); if (count($descData) > 0) { $result[$i]['description'] = $descData[0]['description']; if (!$final_projs[$i]) { $final_projs[$i] = $descData[0]['project_no']; } } } $result[$i]['project_no'] = $final_projs[$i]; if ($final_projs[$i]) { $projData = $catalog->getById($final_projs[$i]); if ($projData && $projData['model_internal']) { $result[$i]['project_name'] = $projData['model_internal']; } } $result[$i]['code'] = $final_codes[$i]; $result[$i]['ver'] = $final_vers[$i]; $result[$i]['file_id'] = $paths[0]; $result[$i]['file_name'] = $final_names[$i]; $result[$i]['file_path'] = $paths[1]; $result[$i]['file_view_path'] = $paths[2]; // 权限检查 // 有权限的情况:1、本人上传的文件 2、本人提交的文件评审 3、本人参与审核的文件评审 4、共享给我的 5、将要审核的审核人 6、文件管理员、BOM管理员、物料管理员 // 首先检查文件是否存在 $result[$i]['exists'] = true; if (!file_exists($paths[1])) { $result[$i]['exists'] = false; } $role = false; if ($modelUser->checkPermissionByRoleName('物料管理员') || $modelUser->checkPermissionByRoleName('文件管理员') || $modelUser->checkPermissionByRoleName('系统管理员') || $modelUser->checkPermissionByRoleName('BOM管理员')) { $role = true; } else { if ($row0['create_user'] == $user || $row0['update_user'] == $user) { $role = true; } else { if ($record->fetchAll("table_id = {$id} and handle_user = {$user} and table_name = 'oa_doc_files' and action = '审批'")->count() > 0) { $role = true; } else { if ($upload->fetchAll("id = " . $row['id'] . " and (create_user = {$user} or update_user = {$user})")->count() > 0) { $role = true; } else { if ($share->fetchAll("shared_id = " . $row['id'] . " and type = 'upload' and share_time_begin <= '{$nowDate}' and share_time_end >= '{$nowDate}' and (FIND_IN_SET({$user}, share_user) or FIND_IN_SET({$myDept}, share_dept))")->count() > 0) { $role = true; } else { if ($review->fetchAll("file_id = {$id} and FIND_IN_SET({$user}, plan_user) and type = 'files'")->count() > 0) { $role = true; } } } } } } $result[$i]['role'] = $role; } echo Zend_Json::encode($result); exit; }
public function getOrderStatistics($condition = array()) { $sql = $this->select()->setIntegrityCheck(false)->from(array('t1' => $this->_name), array('order_state' => new Zend_Db_Expr("case when t1.state = 0 then '审核中' when t1.state = 1 then '拒绝' else '批准' end"), 'order_create_time' => 'create_time', 'order_release_time' => 'release_time', 'order_sales_id' => 'sales_id', 'order_customer_id' => 'customer_id', 'order_date', 'order_status', 'order_id' => 'id', '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('delivery_date', 'delivery_date_remark', 'active', 'id', 'type', 'order_id', 'request_date', 'code', 'code_internal', 'name', 'description', 'customer_code', 'customer_description', 'product_type', 'product_series', 'remark', 'price', 'total', 'total', 'price_tax', 'qty', 'product_type', 'product_series', 'sales_remark', '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_address_code = t10.area_code", array('order_customer_contact' => new Zend_Db_Expr("concat(t10.area_code, ' [', t10.name, ']')")))->where("t1.active = 1")->group("t8.id")->order(array('t1.number desc', 't1.create_time desc')); // 状态 if ($condition['state'] != null) { $sql->where("t1.state = " . $condition['state']); } // 日前从 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['type']) { $type = json_decode($condition['type']); if (count($type)) { $type_con = "t1.type_id = " . $type[0]; for ($i = 1; $i < count($type); $i++) { $type_con .= " or t1.type_id = " . $type[$i]; } $sql->where($type_con); } } if ($condition['sales']) { $sales = json_decode($condition['sales']); if (count($sales)) { $sales_con = "t1.sales_id = " . $sales[0]; for ($i = 1; $i < count($sales); $i++) { $sales_con .= " or t1.sales_id = " . $sales[$i]; } $sql->where($sales_con); } } if ($condition['key']) { $sql->where("t9.code like '%" . $condition['key'] . "%' \n or t9.cname like '%" . $condition['key'] . "%' \n or t9.ename like '%" . $condition['key'] . "%' \n or t3.cname like '%" . $condition['key'] . "%' \n or t3.ename like '%" . $condition['key'] . "%' \n or t1.number like '%" . $condition['key'] . "%' \n or t1.remark like '%" . $condition['key'] . "%' \n or t3.cname like '%" . $condition['key'] . "%' \n or t3.ename like '%" . $condition['key'] . "%' \n or t7.name like '%" . $condition['key'] . "%' \n or t8.code like '%" . $condition['key'] . "%' \n or t8.name like '%" . $condition['key'] . "%' \n or t8.description like '%" . $condition['key'] . "%'"); } $total = $this->fetchAll($sql)->count(); /* echo $sql; exit; */ if ($condition['option'] != 'csv') { $sql->limitPage($condition['page'], $condition['limit']); } $data = $this->fetchAll($sql)->toArray(); //echo '<pre>';print_r($data);exit; $item = new Erp_Model_Sale_Receiveitemsordersale(); // 交货 $items_invoice = new Erp_Model_Sale_Invoiceitems(); $sales = new Erp_Model_Sale_Sales(); $operateModel = new Application_Model_Log_Operate(); for ($i = 0; $i < count($data); $i++) { $data[$i]['delivery_date_first'] = ''; // 交期回复日志 if ($data[$i]['delivery_date'] != '' || $data[$i]['delivery_date_remark'] != '') { $logInfo = array(); $log = $operateModel->getLogByOperateAndTargetId('销售交期回复', $data[$i]['id']); $j = 0; foreach ($log as $l) { $content = Zend_Json::decode($l['content']); $logText = $content['time'] . ' [' . $content['delivery_date'] . '] [' . $content['delivery_date_remark'] . '] ' . $content['user']; array_push($logInfo, $logText); if ($j == count($log) - 1) { $data[$i]['delivery_date_first'] = $content['delivery_date']; } $j++; } $data[$i]['delivery_reply_log'] = implode(',', $logInfo); } $data[$i]['order_customer'] = $data[$i]['order_customer_code'] . $data[$i]['order_customer_name']; $data[$i]['qty_send'] = 0; $data[$i]['send_info'] = ''; if ($data[$i]['id']) { if ($data[$i]['code'] != '') { // 已交货:从销售交货 $receiveData = $item->getOrderItemSendQty($data[$i]['id']); $sendInfoArr = array(); foreach ($receiveData as $r) { $data[$i]['qty_send'] += $r['qty']; // 交货(负数) array_push($sendInfoArr, $r['number'] . ' [' . $r['qty'] . '] [' . $r['time'] . ']'); } $data[$i]['send_info'] = implode(',', $sendInfoArr); } else { // 已交货非物料:从销售发票 $data[$i]['qty_send'] = $items_invoice->getQty($data[$i]['id'], 1); } } $data[$i]['qty_left'] = $data[$i]['qty'] - $data[$i]['qty_send']; $salesData = $sales->getData($data[$i]['order_sales_id']); $data[$i]['order_sales_name'] = isset($salesData['cname']) ? $salesData['cname'] : ''; } //echo '<pre>';print_r($data);exit; if ($condition['option'] == 'csv') { $data_csv = array(); $showPrice = false; if (Application_Model_User::checkPermissionByRoleName('系统管理员') || Application_Model_User::checkPermissionByRoleName('销售人员') || Application_Model_User::checkPermissionByRoleName('财务人员')) { $showPrice = true; } if ($showPrice) { $title = array('cnt' => '#', 'active' => '启用', 'order_number' => '订单号', 'order_state' => '审核状态', 'order_status' => '订单状态', 'price' => '价格', 'total' => '金额', 'type' => '类别', 'code' => '产品型号', 'code_internal' => '内部型号', 'order_sales_name' => '销售员', 'order_type_name' => '订单类别', 'order_customer_code' => '客户代码', 'order_customer_name' => '客户名称', 'name' => '名称', 'description' => '描述', 'customer_code' => '客户产品型号', 'customer_description' => '客户产品描述', 'product_type' => '产品类别', 'product_series' => '产品系列', 'qty' => '订单数量', 'qty_send' => '交货数量', 'send_info' => '交货信息', 'qty_left' => '未交货数量', 'request_date' => '需求交期', 'delivery_date_first' => '预计交期(首次)', 'delivery_date' => '预计交期(最终)', 'delivery_date_remark' => '交期备注', 'order_customer_contact' => '客户收件人地址简码', 'remark' => '备注', 'order_create_date' => '下单日期', 'order_create_time' => '下单时间', 'order_release_date' => '批准日期', 'order_release_time' => '批准时间'); } else { $title = array('cnt' => '#', 'active' => '启用', 'order_number' => '订单号', 'order_state' => '审核状态', 'order_status' => '订单状态', 'type' => '类别', 'code' => '产品型号', 'code_internal' => '内部型号', 'order_sales_name' => '销售员', 'order_type_name' => '订单类别', 'order_customer_code' => '客户代码', 'order_customer_name' => '客户名称', 'name' => '名称', 'description' => '描述', 'customer_code' => '客户产品型号', 'customer_description' => '客户产品描述', 'product_type' => '产品类别', 'product_series' => '产品系列', 'qty' => '订单数量', 'qty_send' => '交货数量', 'send_info' => '交货信息', 'qty_left' => '未交货数量', 'request_date' => '需求交期', 'delivery_date_first' => '预计交期(首次)', 'delivery_date' => '预计交期(最终)', 'delivery_date_remark' => '交期备注', 'order_customer_contact' => '客户收件人地址简码', 'remark' => '备注', 'order_create_date' => '下单日期', 'order_create_time' => '下单时间', 'order_release_date' => '批准日期', 'order_release_time' => '批准时间'); } array_push($data_csv, $title); $i = 0; foreach ($data as $d) { $i++; if ($showPrice) { $info = array('cnt' => $i, 'active' => $d['active'] == 1 ? '是' : '否', 'order_number' => $d['order_number'], 'order_state' => $d['order_state'], 'order_status' => $d['order_status'], 'price' => $d['price'], 'total' => $d['total'], 'type' => $d['type'] == 'catalog' ? '产品' : '物料', 'code' => $d['code'], 'code_internal' => $d['code_internal'], 'order_sales_name' => $d['order_sales_name'], 'order_type_name' => $d['order_type_name'], 'order_customer_code' => $d['order_customer_code'], 'order_customer_name' => $d['order_customer_name'], 'name' => $d['name'], 'description' => $d['description'], 'customer_code' => $d['customer_code'], 'customer_description' => $d['customer_description'], 'product_type' => $d['product_type'], 'product_series' => $d['product_series'], 'qty' => $d['qty'], 'qty_send' => $d['qty_send'], 'send_info' => $d['send_info'], 'qty_left' => $d['qty_left'], 'request_date' => $d['request_date'], 'delivery_date_first' => $d['delivery_date_first'], 'delivery_date' => $d['delivery_date'], 'delivery_date_remark' => $d['delivery_date_remark'], 'order_customer_contact' => $d['order_customer_contact'], 'remark' => $d['remark'], 'order_create_date' => $d['order_create_time'] != '' ? date('Y-m-d', strtotime($d['order_create_time'])) : '', 'order_create_time' => $d['order_create_time'] != '' ? date('H:i:s', strtotime($d['order_create_time'])) : '', 'order_release_date' => $d['order_release_time'] != '' ? date('Y-m-d', strtotime($d['order_release_time'])) : '', 'order_release_time' => $d['order_release_time'] != '' ? date('H:i:s', strtotime($d['order_release_time'])) : ''); } else { $info = array('cnt' => $i, 'active' => $d['active'] == 1 ? '是' : '否', 'order_number' => $d['order_number'], 'order_state' => $d['order_state'], 'order_status' => $d['order_status'], 'type' => $d['type'] == 'catalog' ? '产品' : '物料', 'code' => $d['code'], 'code_internal' => $d['code_internal'], 'order_sales_name' => $d['order_sales_name'], 'order_type_name' => $d['order_type_name'], 'order_customer_code' => $d['order_customer_code'], 'order_customer_name' => $d['order_customer_name'], 'name' => $d['name'], 'description' => $d['description'], 'customer_code' => $d['customer_code'], 'customer_description' => $d['customer_description'], 'product_type' => $d['product_type'], 'product_series' => $d['product_series'], 'qty' => $d['qty'], 'qty_send' => $d['qty_send'], 'send_info' => $d['send_info'], 'qty_left' => $d['qty_left'], 'request_date' => $d['request_date'], 'delivery_date_first' => $d['delivery_date_first'], 'delivery_date' => $d['delivery_date'], 'delivery_date_remark' => $d['delivery_date_remark'], 'order_customer_contact' => $d['order_customer_contact'], 'remark' => $d['remark'], 'order_create_date' => $d['order_create_time'] != '' ? date('Y-m-d', strtotime($d['order_create_time'])) : '', 'order_create_time' => $d['order_create_time'] != '' ? date('H:i:s', strtotime($d['order_create_time'])) : '', 'order_release_date' => $d['order_release_time'] != '' ? date('Y-m-d', strtotime($d['order_release_time'])) : '', 'order_release_time' => $d['order_release_time'] != '' ? date('H:i:s', strtotime($d['order_release_time'])) : ''); } array_push($data_csv, $info); } return $data_csv; } return array('total' => $total, 'rows' => $data); }
/** * @abstract 审核文件 * @return null */ public function reviewAction() { // 返回值数组 $result = array('success' => true, 'result' => true, 'info' => '审批成功'); $request = $this->getRequest()->getParams(); $now = date('Y-m-d H:i:s'); $user_session = new Zend_Session_Namespace('user'); $user = $user_session->user_info['employee_id']; $val = (object) $request; $files = new Dcc_Model_Files(); $record = new Dcc_Model_Record(); $review = new Dcc_Model_Review(); $formval = new Admin_Model_Formval(); $employee = new Hra_Model_Employee(); $upgrade = new Dcc_Model_Upgrade(); $id = $val->id; $remark = $val->remark; $pass = $val->review_result; $review_id = $val->review_id; $publish = false; // 获取文件信息 $filesData = $files->getOne($id); // 获取当前审核情况 // 如果record记录被删除或状态已改变,报错 $reviewWhere = "id = {$review_id}"; $reviewRows = $review->getList($reviewWhere, "files"); if (count($reviewRows) == 0) { $result['result'] = false; $result['info'] = "非法数据"; echo Zend_Json::encode($result); exit; } $reviewRow = $reviewRows[0]; if ($reviewRow['finish_flg'] != 0) { $result['result'] = false; $result['info'] = "数据状态已改变"; echo Zend_Json::encode($result); exit; } // 处理记录 $recordData = array("type" => "files", "table_name" => "oa_doc_files", "table_id" => $id, "handle_user" => $user, "handle_time" => $now, "action" => "审批", "result" => $pass == 1 ? "批准" : ($pass == 2 ? "拒绝" : "转审"), "ip" => $_SERVER['REMOTE_ADDR'], "remark" => $remark); // 增加记录 $record->insert($recordData); // 通过方式 $method = $reviewRow['method']; if ($pass == 1) { if ($method == 2) { // 任何一人处理即通过 $finish_flg = 1; $actual_user = $user; $finish_time = $now; } else { // 所有人都需要审核,检查是否所有人都已经审核 $plan_user = $reviewRow['plan_user']; $actual_user = $reviewRow['actual_user']; $actual_user = !$actual_user ? $user : $actual_user . "," . $user; // 检查计划审核人和实际审核人是否一致 // $plan_dept = $reviewRow['plan_dept']; // if ($plan_dept) { // // 获取部门所有人员 // $tmpUser = $employee->getAdapter()->query("select group_concat(id) as ids from oa_employee where dept_id in ( " . $plan_dept . ")")->fetchObject(); // if ($tmpUser->ids) { // if ($plan_user) // $plan_user .= ","; // $plan_user .= $tmpUser->ids; // } // } $planA = explode(',', $plan_user); $actualA = explode(',', $actual_user); $passFlg = true; foreach ($planA as $u) { if ($u && !in_array($u, $actualA)) { $passFlg = false; } } if ($passFlg) { $finish_flg = 1; $finish_time = $now; } else { $finish_flg = 0; $finish_time = null; } } // 审核情况 $reviewData = array("actual_user" => $actual_user, "finish_time" => $finish_time, "finish_flg" => $finish_flg); } else { if ($pass == 3) { // 转审 $finish_flg = 0; if ($method == 2) { // 处理方式为任意时,一个人转审之后其他人员也删除 $plan_user = str_replace('E', '', $val->transfer_id); } else { // 更改审核情况中的审核人 $plan_users = explode(',', $reviewRow['plan_user']); // 审核人不在审核人列表中,并且是管理员,则替换所有人 if (!in_array($user, $plan_users) && (Application_Model_User::checkPermissionByRoleName('文件管理员') || Application_Model_User::checkPermissionByRoleName('系统管理员'))) { $plan_users = array(str_replace('E', '', $val->transfer_id)); } else { for ($i = 0; $i < count($plan_users); $i++) { if ($plan_users[$i] == $user) { $plan_users[$i] = str_replace('E', '', $val->transfer_id); break; } } } $plan_user = implode(',', $plan_users); } // 审核情况 $reviewData = array("plan_user" => $plan_user, "method" => 1); } else { // 退回 $actual_user = null; $finish_time = null; $finish_flg = 0; // 退回选项 $return = $reviewRow['return']; if ($return == 2) { // 退到初始状态 // 需更新的审核记录: 所有 $reviewWhere = "type = 'files' and file_id = {$id}"; // 审核情况更新数据 $reviewData = array("actual_user" => $actual_user, "finish_time" => $finish_time, "finish_flg" => $finish_flg); // 文件状态不更新 } else { if ($return == 4) { // 退到本阶段开始 // 需更新的审核记录 $reviewWhere = "type = 'files' and finish_flg = 0 and file_id = {$id}"; // 审核情况更新数据 $reviewData = array("actual_user" => $actual_user, "finish_time" => $finish_time, "finish_flg" => $finish_flg); // 文件状态不更新 } else { if ($return == 3) { // 退到上一阶段 // 需更新的审核记录:最后一个finish_flg为1的数据和第一个finish_flg为0的数据 $last_1 = $first_0 = 0; foreach ($reviewRows as $r) { if ($r['finish_flg'] == 1) { $last_1 = $r['id']; } if ($r['finish_flg'] == 0 && $first_0 == null) { $first_0 = $r['id']; } } $reviewWhere = "id = {$last_1} or id = {$first_0}"; // 审核情况更新数据 $reviewData = array("actual_user" => $actual_user, "finish_time" => $finish_time, "finish_flg" => $finish_flg); // 文件状态不更新 } else { $fileWhere = "id = {$id}"; // 更新文件状态为退回 $fileData = array("state" => "Return"); // 退到初始状态 // 更新所有record的finish_flg为0 $reviewWhere = "type = 'files' and file_id = {$id}"; // 审核情况 $reviewData = array("actual_user" => $actual_user, "finish_time" => $finish_time, "finish_flg" => $finish_flg); } } } } } $filesRow = $files->getOne($reviewRow['file_id']); // 判断是否需要更新文件 // 如果所有record的记录的finish_flg 都为1,则发布 if ($finish_flg == 1 && $review->fetchAll("type = 'files' and finish_flg = 0 and file_id = {$id}")->count() == 1) { $publish = true; $obsolute = false; // 如果是多个文件同时归档,需拆分 if (strpos($filesRow['code'], ',') !== false) { $codes = explode(',', $filesRow['code']); $names = explode(',', $filesRow['name']); $file_ids = explode(',', $filesRow['file_ids']); $vers = explode(',', $filesRow['ver']); $description = explode('|', $filesRow['description']); $project_info = explode(',', $filesRow['project_info']); $ids = array(); $k = 0; for ($i = 0; $i < count($names); $i++) { $ids[] = ""; $length = substr_count($names[$i], '|'); for ($j = 0; $j <= $length; $j++) { if (isset($ids[$i]) && $ids[$i]) { $ids[$i] .= ','; } $ids[$i] .= $file_ids[$k++]; } } for ($i = 0; $i < count($codes); $i++) { // 更新第一条 if ($i == 0) { $data = array("state" => "Active", "code" => $codes[$i], "name" => $names[$i], "file_ids" => $ids[$i], "ver" => $vers[$i], "description" => $description[$i], "project_info" => $project_info[$i], "archive_time" => $now); try { $files->update($data, "id = {$id}"); // 如果是升版,登录升版信息 if ($vers[$i] > 1.0) { $upgradeTmpData = array("project_no" => $project_info[$i], "description" => $description[$i]); $upgrade->update($upgradeTmpData, "file_id=" . $id); } } catch (Exception $e) { $result['result'] = false; $result['info'] = $e->getMessage(); echo Zend_Json::encode($result); exit; } } else { $data = array("state" => "Active", "code" => $codes[$i], "ver" => $vers[$i], "tag" => $filesRow['tag'], "name" => $names[$i], "file_ids" => $ids[$i], "description" => $description[$i], "project_info" => $project_info[$i], "remark" => $filesRow['remark'], "create_time" => $filesRow['create_time'], "update_time" => $filesRow['update_time'], "create_user" => $filesRow['create_user'], "update_user" => $filesRow['update_user'], "archive_time" => $now, "add_flg" => $filesRow['add_flg']); try { $sid = $files->insert($data); // 拆分智能表单数据 if ($sid) { $sids[] = $sid; $whereMenu = "oa_doc_files_" . $id; $menus = $formval->getListByMenu($whereMenu); foreach ($menus as $menu) { $menuData = array("attrid" => $menu['attrid'], "value" => $menu['value'], "menu" => "oa_doc_files_" . $sid); $formval->insert($menuData); } // 如果是升版,登录升版信息 if ($vers[$i] > 1.0) { $obsolute = true; $upgradeRow = $upgrade->fetchAll("file_id = {$id}")->toArray(); foreach ($upgradeRow as $row) { $upgradeTmpData = array("file_id" => $sid, "reason" => $row['reason'], "reason_type" => $row['reason_type'], "project_no" => $project_info[$i], "description" => $description[$i], "create_user" => $row['create_user'], "create_time" => $row['create_time'], "update_user" => $row['update_user'], "update_time" => $row['update_time']); $upgrade->insert($upgradeTmpData); } } $recordRow = $record->fetchAll("type='files' and table_name='oa_doc_files' and table_id={$id}")->toArray(); foreach ($recordRow as $row) { // 增加记录 $recordTmpData = array("type" => $row['type'], "table_name" => $row['table_name'], "table_id" => $sid, "handle_user" => $row['handle_user'], "handle_time" => $row['handle_time'], "action" => $row['action'], "result" => $row['result'], "ip" => $row['ip'], "remark" => $row['remark']); $record->insert($recordTmpData); } } } catch (Exception $e) { $result['result'] = false; $result['info'] = $e->getMessage(); echo Zend_Json::encode($result); exit; } } } } $fileData = array("state" => "Active", "archive_time" => $now); $fileWhere = "id = {$id}"; // 更新文件状态为已归档 $uploadData = array("archive" => 1, "archive_time" => $now); $upload = new Dcc_Model_Upload(); // 获取上传文件id $ids = $filesRow['file_ids']; $uploadWhere = "id in ({$ids})"; $upload->update($uploadData, $uploadWhere); // 更新旧版文件的状态为已作废 if (strpos($filesData['ver'], '1.0') === false || $obsolute) { if (isset($sids) && count($sids) > 0) { $obsoluteWhere = " id not in (" . implode(',', $sids) . ") and FIND_IN_SET(code, '" . $filesRow['code'] . "')"; } else { $obsoluteWhere = " FIND_IN_SET(code, '" . $filesRow['code'] . "')"; } $obsoluteData = array("state" => "Obsolete"); } } try { // 更新审核情况 $review->update($reviewData, $reviewWhere); if (isset($obsoluteData) && isset($obsoluteWhere)) { $files->update($obsoluteData, $obsoluteWhere); } // 更新文件 if (isset($fileWhere)) { $files->update($fileData, $fileWhere); } $this->operate("文件审批"); } catch (Exception $e) { $result['result'] = false; $result['info'] = $e->getMessage(); echo Zend_Json::encode($result); exit; } // 邮件任务 // 文件提交者或更新人 $owner = $filesData['create_user']; if ($filesData['create_user'] != $filesData['update_user']) { $owner .= "," . $filesData['update_user']; } $dev = false; $type = "新文件"; if (stripos($filesData['ver'], '1.0') === false) { $dev = true; $type = "升版文件"; } $content = "<p><b>文件号:</b>" . $filesData['code'] . "</p><p><b>版本:</b>" . $filesData['ver'] . "</p><p><b>文件描述:</b>" . $filesData['description'] . "</p><p><b>备注:</b>" . $filesData['remark'] . "</p><p><b>申请人:</b>" . $filesData['creater'] . "</p><p><b>申请时间:</b>" . $filesData['create_time'] . "</p><p>请登录系统查看详情!</p>"; // 发邮件的情况: // 1、单站审核结束 $finish_flg = 1 && $publish = false if ($finish_flg == 1 && !$publish) { $subject = $type . "审批"; // $to = 下一站审核人 $current = $review->getFirstNoReview("files", $id); $to = $employee->getInfosByOneLine($current['plan_user']); // $cc = $employee->getInfosByOneLine($owner); $cc = $cc['email']; //$cc = ""; $content = "你有一个" . $type . "需要审批," . $content; } // 2、所有审核结束 $publish = true if ($publish) { $subject = $type . "发布"; $to = $employee->getInfosByOneLine($owner); $cc = $employee->getInfosByOneLine($record->getEmployeeIds($filesData['id'], 'files')); $cc = $cc['email']; // $cc = ""; $content .= "<p><b>审核记录:</b><br>" . str_replace(',', '<br>', $record->getHis($filesData['id'], 'files', 'oa_doc_files')) . "</p>"; $content = "你申请的" . $type . "已通过审批," . $content; } // 3、退回 isset($return) if (isset($return)) { $subject = $type . "退回"; $to = $employee->getInfosByOneLine($owner); $cc = ""; // 原审核人 if ($reviewRow['plan_user']) { $orgUser = $reviewRow['plan_user']; $cc = $employee->getInfosByOneLine($orgUser); $cc = $cc['email']; } $content = "你申请的" . $type . "已被退回,<p><b>退回原因:</b>" . $remark . "</p>" . $content; } // 4、转审 $pass == 3 if ($pass == 3) { $subject = $type . "转审"; $toUser = str_replace('E', '', $val->transfer_id); $to = $employee->getInfosByOneLine($toUser); // 原审核人 if ($reviewRow['plan_user']) { $orgUser = $reviewRow['plan_user']; $owner .= "," . $orgUser; } $cc = $employee->getInfosByOneLine($owner); $cc = $cc['email']; // $cc = ""; $content = "有新的" . $type . "被转移到你处审批:" . $content; } if (isset($subject)) { $mailData = array('type' => $type, 'subject' => $subject, 'to' => $to['email'], 'cc' => $cc, 'content' => $content, 'send_time' => $now, 'add_date' => $now); $mail = new Application_Model_Log_Mail(); try { $mailId = $mail->insert($mailData); } catch (Exception $e) { $result['result'] = false; $result['info'] = $e->getMessage(); echo Zend_Json::encode($result); exit; } if ($mailId) { $mail->send($mailId); } } echo Zend_Json::encode($result); exit; }
public function getList($condition = array()) { $data = array(); $where = "t2.active = 1 and (t1.number like '%" . $condition['key'] . "%' or t2.cname like '%" . $condition['key'] . "%' or t2.ename like '%" . $condition['key'] . "%')"; $sql = $this->select()->setIntegrityCheck(false)->from(array('t1' => $this->_name))->joinLeft(array('t2' => $this->_dbprefix . 'employee'), "t2.number = t1.number", array('employee_id' => 't2.id', 'cname', 'ename', 'entry_date', 'regularization_date'))->joinLeft(array('t3' => $this->_dbprefix . 'employee_dept'), "t3.id = t2.dept_id", array('dept' => 'name'))->joinLeft(array('t4' => $this->_dbprefix . 'user'), "t1.create_user = t4.id", array())->joinLeft(array('t5' => $this->_dbprefix . 'employee'), "t4.employee_id = t5.id", array('creater' => 'cname'))->joinLeft(array('t6' => $this->_dbprefix . 'user'), "t1.update_user = t6.id", array())->joinLeft(array('t7' => $this->_dbprefix . 'employee'), "t6.employee_id = t7.id", array('updater' => 'cname'))->joinLeft(array('t8' => $this->_dbprefix . 'employee_type'), 't8.id = t2.employment_type', array('employee_type' => 'name'))->where($where)->order(array("t1.number", "t1.in_year_qty desc")); if (!Application_Model_User::checkPermissionByRoleName('系统管理员') && !Application_Model_User::checkPermissionByRoleName('人事管理员')) { $user_session = new Zend_Session_Namespace('user'); $user_number = $user_session->user_info['user_number']; $sql->where("t1.number = '" . $user_number . "'"); $sql->limit(1); } $data = $this->fetchAll($sql)->toArray(); $dataTmp = array(); $numberArr = array(); for ($i = 0; $i < count($data); $i++) { if (!in_array($data[$i]['number'], $numberArr)) { array_push($numberArr, $data[$i]['number']); $data[$i]['create_time'] = strtotime($data[$i]['create_time']); $data[$i]['update_time'] = strtotime($data[$i]['update_time']); if ($data[$i]['qty'] > 0) { $limit = array(); if (strtotime($data[$i]['entry_date']) >= strtotime('2014-10-08')) { $limit = $this->getLimitToDayQty($data[$i]['entry_date'], $data[$i]['in_year_qty']); } else { $limit = $this->getLimitToDayQty($data[$i]['regularization_date'], $data[$i]['in_year_qty']); } $data[$i]['limit_to_qty'] = $limit['qty']; $data[$i]['limit_to_date'] = $limit['date']; } else { $data[$i]['limit_to_qty'] = ''; } $data[$i]['qty_left'] = $data[$i]['qty'] - $data[$i]['qty_used']; array_push($dataTmp, $data[$i]); } } $data = $dataTmp; if ($condition['type'] == 'csv') { $data_csv = array(); $title = array('cnt' => '#', 'number' => '工号', 'dept' => '部门', 'cname' => '中文名', 'ename' => '英文名', 'regularization_date' => '转正日期', 'in_year_qty' => '入司年数', 'qty' => '年假天数', 'qty_used' => '已使用天数', 'qty_left' => '剩余天数', 'limit_to_qty' => '有效期限', 'remark' => '备注', 'create_user' => '创建人', 'create_time' => '创建时间', 'update_user' => '更新人', 'update_time' => '更新时间'); array_push($data_csv, $title); $i = 0; foreach ($data as $d) { $i++; $info = array('cnt' => $i, 'number' => $d['number'], 'dept' => $d['dept'], 'cname' => $d['cname'], 'ename' => $d['ename'], 'regularization_date' => $d['regularization_date'], 'in_year_qty' => $d['in_year_qty'], 'qty' => $d['qty'], 'qty_used' => $d['qty_used'], 'qty_left' => $d['qty_left'], 'limit_to_qty' => $d['limit_to_qty'], 'remark' => $d['remark'], 'create_user' => $d['create_user'], 'create_time' => date('Y-m-d H:i:s', $d['create_time']), 'update_user' => $d['update_user'], 'update_time' => date('Y-m-d H:i:s', $d['update_time'])); array_push($data_csv, $info); } return $data_csv; } return $data; }
public function getOrderStatistics($condition = array()) { $sql = $this->select()->setIntegrityCheck(false)->from(array('t1' => $this->_name), array('order_price_tax' => 'price_tax', 'order_state' => new Zend_Db_Expr("case when t1.state = 0 then '审核中' when t1.state = 1 then '拒绝' else '批准' end"), 'order_create_time' => 'create_time', 'order_release_time' => 'release_time', 'order_buyer_id' => 'buyer_id', 'order_supplier_id' => 'supplier_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_pur_type'), "t1.type_id = t7.id", array('order_type_name' => 'name'))->joinLeft(array('t8' => $this->_dbprefix . 'erp_pur_order_items'), "t1.id = t8.order_id", array('delivery_date', 'delivery_date_remark', 'active', 'id', 'order_id', 'request_date', 'code', 'name', 'description', 'remark', 'supplier_code', 'supplier_codename', 'supplier_description', 'warehouse_code', 'price', 'qty', 'unit', 'project_info', 'req_number'))->joinLeft(array('t9' => $this->_dbprefix . 'bpartner'), "t1.supplier_id = t9.id", array('order_supplier_code' => 'code', 'order_supplier_name' => new Zend_Db_Expr("case when t9.cname != '' then t9.cname else t9.ename end")))->joinLeft(array('t10' => $this->_dbprefix . 'bpartner_contact'), "t1.supplier_contact_id = t10.id", array('order_supplier_contact' => new Zend_Db_Expr("concat(t10.name, ' [', t10.tel, ']')")))->joinLeft(array('t11' => $this->_dbprefix . 'erp_pur_order_items_req'), "t11.order_item_id = t8.id", array('req_item_ids' => new Zend_Db_Expr("group_concat(t11.req_item_id)")))->joinLeft(array('t12' => $this->_dbprefix . 'erp_pur_req_items'), "t12.id = t11.req_item_id", array('qty_req' => new Zend_Db_Expr('sum(t12.qty)'), 'order_req_num', 'customer_address', 'customer_aggrement'))->where("t1.active = 1")->group("t8.id")->order(array('t1.number desc', 't1.create_time desc')); // 状态 if ($condition['state'] != null) { $sql->where("t1.state = " . $condition['state']); } // 日前从 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['type']) { $type = json_decode($condition['type']); if (count($type)) { $type_con = "t1.type_id = " . $type[0]; for ($i = 1; $i < count($type); $i++) { $type_con .= " or t1.type_id = " . $type[$i]; } $sql->where($type_con); } } // 需求部门 if ($condition['dept']) { $dept = json_decode($condition['dept']); if (count($dept)) { $dept_con = "t8.dept_id = " . $dept[0]; for ($i = 1; $i < count($dept); $i++) { $dept_con .= " or t8.dept_id = " . $dept[$i]; } $sql->where($dept_con); } } // 采购员 if ($condition['buyer']) { $buyer = json_decode($condition['buyer']); if (count($buyer)) { $buyer_con = "t1.buyer_id = " . $buyer[0]; for ($i = 1; $i < count($buyer); $i++) { $buyer_con .= " or t1.buyer_id = " . $buyer[$i]; } $sql->where($buyer_con); } } if ($condition['key']) { $sql->where("t9.code like '%" . $condition['key'] . "%' or t9.cname like '%" . $condition['key'] . "%' or t9.ename like '%" . $condition['key'] . "%' or t3.cname like '%" . $condition['key'] . "%' or t3.ename like '%" . $condition['key'] . "%' or t1.number like '%" . $condition['key'] . "%' or t1.remark like '%" . $condition['key'] . "%' or t3.cname like '%" . $condition['key'] . "%' or t3.ename like '%" . $condition['key'] . "%' or t7.name like '%" . $condition['key'] . "%' or t8.code like '%" . $condition['key'] . "%' or t8.name like '%" . $condition['key'] . "%' or t8.description like '%" . $condition['key'] . "%'"); } $total = $this->fetchAll($sql)->count(); /* echo $sql; exit; */ if ($condition['option'] != 'csv') { $sql->limitPage($condition['page'], $condition['limit']); } $data = $this->fetchAll($sql)->toArray(); //echo '<pre>';print_r($data);exit; $items_receive = new Erp_Model_Purchse_Receiveitemsorder(); $items_invoice = new Erp_Model_Purchse_Invoiceitems(); $buyer = new Erp_Model_Purchse_Buyer(); $req = new Erp_Model_Purchse_Req(); $operateModel = new Application_Model_Log_Operate(); $receiveModel = new Erp_Model_Purchse_Reqitemsreceived(); for ($i = 0; $i < count($data); $i++) { // 入库日志 $in_stock_info = $receiveModel->getReceivedInfo('order', $data[$i]['id']); $data[$i]['in_stock_qty'] = $in_stock_info['qty']; $data[$i]['in_stock_info'] = implode(',', $in_stock_info['info']); // 交期回复日志 if ($data[$i]['delivery_date'] != '' || $data[$i]['delivery_date_remark'] != '') { $logInfo = array(); $log = $operateModel->getLogByOperateAndTargetId('采购交期回复', $data[$i]['id']); foreach ($log as $l) { $content = Zend_Json::decode($l['content']); $logText = $content['time'] . ' [' . $content['delivery_date'] . '] [' . $content['delivery_date_remark'] . '] ' . $content['user']; array_push($logInfo, $logText); } $data[$i]['delivery_reply_log'] = implode(',', $logInfo); } // 获取采购申请数量(合并下单的申请分拆显示) $data[$i]['req_info'] = ''; if ($data[$i]['req_item_ids'] != '') { $item_ids = explode(',', $data[$i]['req_item_ids']); $req_item_data = $req->getReqQty($item_ids); $reqInfoArr = array(); foreach ($req_item_data as $req_info) { array_push($reqInfoArr, $req_info['number'] . ' [' . $req_info['qty'] . '] [' . $req_info['time'] . ']'); } $data[$i]['req_info'] = implode(',', $reqInfoArr); } $data[$i]['order_supplier'] = $data[$i]['order_supplier_code'] . $data[$i]['order_supplier_name']; $data[$i]['qty_receive'] = 0; $data[$i]['receive_info'] = ''; if ($data[$i]['id']) { if ($data[$i]['code'] != '') { // 已收货物料:从采购收货 $receiveData = $items_receive->getOrderItemReceivedQty($data[$i]['id']); $receiveInfoArr = array(); foreach ($receiveData as $r) { $data[$i]['qty_receive'] += $r['qty']; array_push($receiveInfoArr, $r['number'] . ' [' . $r['qty'] . '] [' . $r['time'] . ']'); } $data[$i]['receive_info'] = implode(',', $receiveInfoArr); } else { // 已收货非物料:从采购发票 $data[$i]['qty_receive'] = $items_invoice->getQty($data[$i]['id'], 1); } } $data[$i]['qty_left'] = $data[$i]['qty'] - $data[$i]['qty_receive']; $buyerData = $buyer->getData($data[$i]['order_buyer_id']); $data[$i]['order_buyer_name'] = isset($buyerData['cname']) ? $buyerData['cname'] : ''; } if ($condition['option'] == 'csv') { $data_csv = array(); $showPrice = false; if (Application_Model_User::checkPermissionByRoleName('系统管理员') || Application_Model_User::checkPermissionByRoleName('采购人员') || Application_Model_User::checkPermissionByRoleName('财务人员')) { $showPrice = true; } if ($showPrice) { $title = array('cnt' => '#', 'active' => '启用', 'order_number' => '订单号', 'order_state' => '订单状态', 'order_date' => '订单日期', 'order_buyer_name' => '采购员', 'order_type_name' => '类别', 'order_supplier_code' => '供应商代码', 'order_supplier_name' => '供应商名称', 'code' => '物料号', 'price' => '价格', 'order_price_tax' => '含税', 'qty' => '订单数量', 'qty_req' => '申请数量', 'qty_receive' => '到货数量', 'receive_info' => '到货信息', 'in_stock_qty' => '入库数量', 'in_stock_info' => '入库信息', 'qty_left' => '未到货数量', 'request_date' => '需求交期', 'delivery_date' => '预计交期', 'delivery_date_remark' => '交期备注', 'order_req_num' => '订货产品出库申请号', 'customer_address' => '客户收件人地址简码', 'customer_aggrement' => '客户合同号', 'name' => '名称', 'description' => '描述', 'req_info' => '申购单号', 'remark' => '备注', 'order_create_date' => '下单日期', 'order_create_time' => '下单时间', 'order_release_date' => '批准日期', 'order_release_time' => '批准时间'); } else { $title = array('cnt' => '#', 'active' => '启用', 'order_number' => '订单号', 'order_state' => '订单状态', 'order_date' => '订单日期', 'order_buyer_name' => '采购员', 'order_type_name' => '类别', 'order_supplier_code' => '供应商代码', 'order_supplier_name' => '供应商名称', 'code' => '物料号', 'qty' => '订单数量', 'qty_req' => '申请数量', 'qty_receive' => '到货数量', 'receive_info' => '到货信息', 'in_stock_qty' => '入库数量', 'in_stock_info' => '入库信息', 'qty_left' => '未到货数量', 'request_date' => '需求交期', 'delivery_date' => '预计交期', 'delivery_date_remark' => '交期备注', 'order_req_num' => '订货产品出库申请号', 'customer_address' => '客户收件人地址简码', 'customer_aggrement' => '客户合同号', 'name' => '名称', 'description' => '描述', 'req_info' => '申购单号', 'remark' => '备注', 'order_create_date' => '下单日期', 'order_create_time' => '下单时间', 'order_release_date' => '批准日期', 'order_release_time' => '批准时间'); } array_push($data_csv, $title); $i = 0; foreach ($data as $d) { $i++; if ($showPrice) { $info = array('cnt' => $i, 'active' => $d['active'] == 1 ? '是' : '否', 'order_number' => $d['order_number'], 'order_state' => $d['order_state'], 'order_date' => $d['order_date'], 'order_buyer_name' => $d['order_buyer_name'], 'order_type_name' => $d['order_type_name'], 'order_supplier_code' => $d['order_supplier_code'], 'order_supplier_name' => $d['order_supplier_name'], 'code' => $d['code'], 'price' => $d['price'], 'order_price_tax' => $d['order_price_tax'] == 1 ? '是' : '否', 'qty' => $d['qty'], 'qty_req' => $d['qty_req'], 'qty_receive' => $d['qty_receive'], 'receive_info' => $d['receive_info'], 'in_stock_qty' => $d['in_stock_qty'], 'in_stock_info' => $d['in_stock_info'], 'qty_left' => $d['qty_left'], 'request_date' => $d['request_date'], 'delivery_date' => $d['delivery_date'], 'delivery_date_remark' => $d['delivery_date_remark'], 'order_req_num' => $d['order_req_num'], 'customer_address' => $d['customer_address'], 'customer_aggrement' => $d['customer_aggrement'], 'name' => $d['name'], 'description' => $d['description'], 'req_info' => $d['req_info'], 'remark' => $d['remark'], 'order_create_date' => $d['order_create_time'] != '' ? date('Y-m-d', strtotime($d['order_create_time'])) : '', 'order_create_time' => $d['order_create_time'] != '' ? date('H:i:s', strtotime($d['order_create_time'])) : '', 'order_release_date' => $d['order_release_time'] != '' ? date('Y-m-d', strtotime($d['order_release_time'])) : '', 'order_release_time' => $d['order_release_time'] != '' ? date('H:i:s', strtotime($d['order_release_time'])) : ''); } else { $info = array('cnt' => $i, 'active' => $d['active'] == 1 ? '是' : '否', 'order_number' => $d['order_number'], 'order_state' => $d['order_state'], 'order_date' => $d['order_date'], 'order_buyer_name' => $d['order_buyer_name'], 'order_type_name' => $d['order_type_name'], 'order_supplier_code' => $d['order_supplier_code'], 'order_supplier_name' => $d['order_supplier_name'], 'code' => $d['code'], 'qty' => $d['qty'], 'qty_req' => $d['qty_req'], 'qty_receive' => $d['qty_receive'], 'receive_info' => $d['receive_info'], 'in_stock_qty' => $d['in_stock_qty'], 'in_stock_qty' => $d['in_stock_info'], 'qty_left' => $d['qty_left'], 'request_date' => $d['request_date'], 'delivery_date' => $d['delivery_date'], 'delivery_date_remark' => $d['delivery_date_remark'], 'order_req_num' => $d['order_req_num'], 'customer_address' => $d['customer_address'], 'customer_aggrement' => $d['customer_aggrement'], 'name' => $d['name'], 'description' => $d['description'], 'req_info' => $d['req_info'], 'remark' => $d['remark'], 'order_create_date' => $d['order_create_time'] != '' ? date('Y-m-d', strtotime($d['order_create_time'])) : '', 'order_create_time' => $d['order_create_time'] != '' ? date('H:i:s', strtotime($d['order_create_time'])) : '', 'order_release_date' => $d['order_release_time'] != '' ? date('Y-m-d', strtotime($d['order_release_time'])) : '', 'order_release_time' => $d['order_release_time'] != '' ? date('H:i:s', strtotime($d['order_release_time'])) : ''); } array_push($data_csv, $info); } return $data_csv; } return array('total' => $total, 'rows' => $data); }