示例#1
0
 public function statisticsAction()
 {
     $request = $this->getRequest()->getParams();
     $option = isset($request['option']) ? $request['option'] : 'data';
     if ($option == 'data') {
         $doc_type = isset($request['doc_type']) && $request['doc_type'] != '' ? $request['doc_type'] : null;
         $transaction_type = isset($request['transaction_type']) && $request['transaction_type'] != '' ? $request['transaction_type'] : null;
     } else {
         $doc_type = isset($request['doc_type']) && $request['doc_type'] != '' ? json_encode(explode(',', $request['doc_type'])) : null;
         $transaction_type = isset($request['transaction_type']) && $request['transaction_type'] != '' ? json_encode(explode(',', $request['transaction_type'])) : null;
     }
     $warehouse_type = isset($request['warehouse_type']) && $request['warehouse_type'] != 'null' ? $request['warehouse_type'] : null;
     $warehouse = isset($request['warehouse']) && $request['warehouse'] != 'null' ? $request['warehouse'] : null;
     $key = isset($request['key']) ? $request['key'] : '';
     $date_from = isset($request['date_from']) ? $request['date_from'] : date('Y-m-01');
     $date_to = isset($request['date_to']) ? $request['date_to'] : date('Y-m-t');
     $page = isset($request['page']) ? $request['page'] : 1;
     $limit = isset($request['limit']) ? $request['limit'] : 0;
     $stock = new Erp_Model_Stock_Stock();
     // 查询条件
     $condition = array('warehouse_type' => $warehouse_type, 'warehouse' => $warehouse, 'doc_type' => $doc_type, 'transaction_type' => $transaction_type, 'key' => $key, 'date_from' => $date_from, 'date_to' => $date_to, 'page' => $page, 'limit' => $limit, 'type' => $option);
     $data = $stock->getStatisticsData($condition);
     if ($option == 'csv') {
         $this->view->layout()->disableLayout();
         $this->_helper->viewRenderer->setNoRender(true);
         $h = new Application_Model_Helpers();
         $h->exportCsv($data, '库存交易统计');
     } else {
         echo Zend_Json::encode($data);
     }
     exit;
 }
示例#2
0
 public function getData($condition = array(), $invoice_id = null)
 {
     $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'))->joinLeft(array('t9' => $this->_dbprefix . 'bpartner'), "t1.supplier_id = t9.id", array('supplier_code' => 'code', 'supplier_ename' => new Zend_Db_Expr("case when t9.ename = '' then t9.cname else t9.ename end"), 'supplier_cname' => 'cname', 'supplier_bank_type' => 'bank_type', 'supplier_bank_account' => 'bank_account', 'supplier_tax_id' => 'tax_id', 'supplier_tax_num' => 'tax_num', 'supplier_bank_payment_days' => 'bank_payment_days'));
     if ($invoice_id) {
         $sql->where("t1.id = " . $invoice_id);
         return $this->fetchRow($sql)->toArray();
     } else {
         $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['key']) {
             $sql->where("t9.code like '%" . $condition['key'] . "%' or t9.cname like '%" . $condition['key'] . "%' or t9.ename like '%" . $condition['key'] . "%' or t1.number like '%" . $condition['key'] . "%' or t1.description like '%" . $condition['key'] . "%' or t1.remark like '%" . $condition['key'] . "%'");
             // or t8.name like '%".$condition['key']."%'
         }
         $total = $this->fetchAll($sql)->count();
         $sql->order(array('t1.state', 't1.number desc', 't1.create_time desc'))->limitPage($condition['page'], $condition['limit']);
         $data = $this->fetchAll($sql)->toArray();
         $review = new Dcc_Model_Review();
         $help = new Application_Model_Helpers();
         $user_session = new Zend_Session_Namespace('user');
         $employee_id = $user_session->user_info['employee_id'];
         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']);
             $data[$i]['release_time'] = strtotime($data[$i]['release_time']);
             $data[$i]['state'] = intval($data[$i]['state']);
             $data[$i]['review_state'] = "";
             $data[$i]['review_info_tip'] = $data[$i]['review_info'];
             $data[$i]['review_info'] = str_replace('<br>', ' > ', $data[$i]['review_info']);
             $data[$i]['reviewer'] = '';
             // 当状态不为拒绝时才能获取,否则会报错
             if ($data[$i]['state'] != 1) {
                 // 获取审核情况
                 $review_state = $help->getReviewState('purchse_invoice_add', $data[$i]['id']);
                 /* echo '<pre>';
                    print_r($review_state);
                    exit; */
                 $data[$i]['reviewer'] = implode(',', $help->getEmployeeNameByIdArr($review_state['reviewer']));
                 $data[$i]['review_state'] = $review_state['info'];
                 $data[$i]['can_review'] = in_array($employee_id, $review_state['reviewer']) && !in_array($employee_id, $review_state['reviewer_finished']) ? 1 : 0;
                 $data[$i]['current_step'] = $review_state['step_chk']['current_step'];
                 $data[$i]['last_step'] = $review_state['step_chk']['last_step'];
                 $data[$i]['to_finish'] = $review_state['step_chk']['to_finish'];
                 $data[$i]['next_step'] = $review_state['step_chk']['next_step'];
             }
             if ($help->chkIsReviewer('purchse_invoice_add', $data[$i]['id'], $employee_id)) {
                 $data[$i]['is_reviewer'] = 1;
             } else {
                 $data[$i]['is_reviewer'] = 0;
             }
         }
         return array('total' => $total, 'rows' => $data);
     }
 }
示例#3
0
文件: Price.php 项目: xindalu/evolve
 public function getData($conditions, $price_id = null)
 {
     $data = array();
     $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'))->joinLeft(array('t6' => $this->_dbprefix . 'bpartner'), "t1.customer_id = t6.id", array('customer_name' => new Zend_Db_Expr("case when t6.cname = '' then t6.ename else t6.cname end"), 'customer_code' => 'code'))->joinLeft(array('t7' => $this->_dbprefix . 'erp_setting_tax'), "t1.tax_id = t7.id", array('tax_name' => 'name'))->where("t1.deleted = 0");
     if ($conditions['key']) {
         $sql->where("t1.number LIKE '%" . $conditions['key'] . "%' OR t6.code LIKE '%" . $conditions['key'] . "%' OR t6.cname LIKE '%" . $conditions['key'] . "%' OR t6.ename LIKE '%" . $conditions['key'] . "%' OR t3.cname LIKE '%" . $conditions['key'] . "%' OR t3.ename LIKE '%" . $conditions['key'] . "%'");
     }
     if ($price_id) {
         $sql->where("t1.id = " . $price_id);
         return $this->fetchRow($sql)->toArray();
     } else {
         $sql->where("state = " . $conditions['state']);
         if ($conditions['date_from']) {
             $sql->where("price_date >= '" . $conditions['date_from'] . " 00:00:00'");
         }
         if ($conditions['date_to']) {
             $sql->where("price_date <= '" . $conditions['date_to'] . " 23:59:59'");
         }
         $data = $this->fetchAll($sql)->toArray();
         $review = new Dcc_Model_Review();
         $help = new Application_Model_Helpers();
         $user_session = new Zend_Session_Namespace('user');
         $employee_id = $user_session->user_info['employee_id'];
         for ($i = 0; $i < count($data); $i++) {
             // 当状态不为拒绝时才能获取,否则会报错
             if ($data[$i]['state'] != 1) {
                 // 获取审核情况
                 $review_state = $help->getReviewState('sale_price_add', $data[$i]['id']);
                 $data[$i]['reviewer'] = implode(',', $help->getEmployeeNameByIdArr($review_state['reviewer']));
                 $data[$i]['review_state'] = $review_state['info'];
                 $data[$i]['can_review'] = in_array($employee_id, $review_state['reviewer']) && !in_array($employee_id, $review_state['reviewer_finished']) ? 1 : 0;
                 $data[$i]['current_step'] = $review_state['step_chk']['current_step'];
                 $data[$i]['last_step'] = $review_state['step_chk']['last_step'];
                 $data[$i]['to_finish'] = $review_state['step_chk']['to_finish'];
                 $data[$i]['next_step'] = $review_state['step_chk']['next_step'];
             }
             if ($help->chkIsReviewer('sale_price_add', $data[$i]['id'], $employee_id)) {
                 $data[$i]['is_reviewer'] = 1;
             } else {
                 $data[$i]['is_reviewer'] = 0;
             }
         }
     }
     return $data;
 }
示例#4
0
 public function searchAction()
 {
     $request = $this->getRequest()->getParams();
     $option = isset($request['option']) ? $request['option'] : 'data';
     $stock = new Erp_Model_Stock_Stock();
     // 查询条件
     $condition = array('key' => isset($request['key']) ? $request['key'] : '', 'page' => isset($request['page']) ? $request['page'] : 1, 'limit' => isset($request['limit']) ? $request['limit'] : 0, 'type' => $option);
     $data = $stock->getSearchData($condition);
     if ($option == 'csv') {
         $this->view->layout()->disableLayout();
         $this->_helper->viewRenderer->setNoRender(true);
         $h = new Application_Model_Helpers();
         $h->exportCsv($data, '库存数据');
     } else {
         echo Zend_Json::encode($data);
     }
     exit;
 }
示例#5
0
 public function getorderAction()
 {
     // 请求参数
     $request = $this->getRequest()->getParams();
     $option = isset($request['option']) ? $request['option'] : 'data';
     $condition = array('key' => isset($request['key']) ? $request['key'] : '', 'state' => isset($request['state']) && is_numeric($request['state']) ? $request['state'] : null, 'status' => isset($request['status']) && is_numeric($request['status']) ? $request['status'] : null, 'date_from' => isset($request['date_from']) ? $request['date_from'] : null, 'date_to' => isset($request['date_to']) ? $request['date_to'] : null, 'type' => isset($request['type']) && $request['type'] != 'null' ? $request['type'] : null, 'sales' => isset($request['sales']) && $request['sales'] != 'null' ? $request['sales'] : null, 'page' => isset($request['page']) ? $request['page'] : 1, 'limit' => isset($request['limit']) ? $request['limit'] : 0, 'option' => $option);
     $order = new Erp_Model_Sale_Order();
     $data = $order->getOrderStatistics($condition);
     if ($option == 'csv') {
         $this->view->layout()->disableLayout();
         $this->_helper->viewRenderer->setNoRender(true);
         $h = new Application_Model_Helpers();
         $h->exportCsv($data, '销售订单统计');
     } else {
         echo Zend_Json::encode($data);
     }
     exit;
 }
示例#6
0
 public function getwarehouseAction()
 {
     // 请求参数
     $request = $this->getRequest()->getParams();
     $option = isset($request['option']) ? $request['option'] : 'list';
     $condition = array('key' => isset($request['key']) && $request['key'] != '' ? $request['key'] : null, 'type_id' => isset($request['type_id']) && $request['type_id'] != 'null' ? $request['type_id'] : null, 'page' => isset($request['page']) ? $request['page'] : 1, 'limit' => isset($request['limit']) ? $request['limit'] : 0, 'type' => $option);
     $warehouse = new Erp_Model_Warehouse_Warehouse();
     $data = $warehouse->getData($condition);
     if ($option == 'csv') {
         $this->view->layout()->disableLayout();
         $this->_helper->viewRenderer->setNoRender(true);
         $h = new Application_Model_Helpers();
         $h->exportCsv($data, '仓库列表');
     } else {
         echo Zend_Json::encode($data);
     }
     exit;
 }
示例#7
0
 public function getdataAction()
 {
     // 请求参数
     $request = $this->getRequest()->getParams();
     $option = isset($request['option']) ? $request['option'] : null;
     $condition = array('key' => isset($request['key']) ? $request['key'] : '', 'type' => isset($request['type']) ? $request['type'] : '', 'date_from' => isset($request['date_from']) ? $request['date_from'] : date('Y-m-01'), 'date_to' => isset($request['date_to']) ? $request['date_to'] : date('Y-m-t'), 'page' => isset($request['page']) ? $request['page'] : 1, 'limit' => isset($request['limit']) ? $request['limit'] : 0, 'option' => $option);
     $operate = new Application_Model_Log_Mail();
     $data = $operate->getData($condition);
     if ($option == 'csv') {
         $this->view->layout()->disableLayout();
         $this->_helper->viewRenderer->setNoRender(true);
         $h = new Application_Model_Helpers();
         $h->exportCsv($data);
     } else {
         echo Zend_Json::encode($data);
     }
     exit;
 }
示例#8
0
 public function getreturnAction()
 {
     // 请求参数
     $request = $this->getRequest()->getParams();
     $option = isset($request['option']) ? $request['option'] : 'data';
     $receive = new Erp_Model_Stock_Receive();
     // 查询条件
     $condition = array('key' => isset($request['key']) ? $request['key'] : '', 'date_from' => isset($request['date_from']) ? $request['date_from'] : null, 'date_to' => isset($request['date_to']) ? $request['date_to'] : null, 'page' => isset($request['page']) ? $request['page'] : 1, 'limit' => isset($request['limit']) ? $request['limit'] : 0, 'type' => $option);
     $data = $receive->getData($condition, null, '采购退货');
     if ($option == 'csv') {
         $this->view->layout()->disableLayout();
         $this->_helper->viewRenderer->setNoRender(true);
         $h = new Application_Model_Helpers();
         $h->exportCsv($data, '采购退货');
     } else {
         echo Zend_Json::encode($data);
     }
     exit;
 }
示例#9
0
 public function getreqAction()
 {
     // 请求参数
     $request = $this->getRequest()->getParams();
     $option = isset($request['option']) ? $request['option'] : 'data';
     $condition = array('key' => isset($request['key']) ? $request['key'] : '', 'state' => isset($request['state']) && is_numeric($request['state']) ? $request['state'] : null, 'applier' => isset($request['applier']) ? $request['applier'] : null, 'date_from' => isset($request['date_from']) ? $request['date_from'] : null, 'date_to' => isset($request['date_to']) ? $request['date_to'] : null, 'complete' => isset($request['complete']) && $request['complete'] != 'null' ? $request['complete'] : 1, 'type' => isset($request['type']) && $request['type'] != 'null' ? $request['type'] : null, 'dept' => isset($request['dept']) && $request['dept'] != 'null' ? $request['dept'] : null, 'page' => isset($request['page']) ? $request['page'] : 1, 'limit' => isset($request['limit']) ? $request['limit'] : 0, 'option' => $option);
     $reqItems = new Erp_Model_Purchse_Req();
     $data = $reqItems->getReqStatistics($condition);
     //echo '<pre>';print_r($data);exit;
     if ($option == 'csv') {
         $this->view->layout()->disableLayout();
         $this->_helper->viewRenderer->setNoRender(true);
         $h = new Application_Model_Helpers();
         $h->exportCsv($data, '采购申请统计');
     } else {
         echo Zend_Json::encode($data);
     }
     exit;
 }
示例#10
0
 public function getpricelistAction()
 {
     // 请求参数
     $request = $this->getRequest()->getParams();
     $option = isset($request['option']) ? $request['option'] : 'list';
     $condition = array('key' => isset($request['key']) && $request['key'] != '' ? $request['key'] : null, 'partner_type' => isset($request['partner_type']) && $request['partner_type'] != 'null' ? $request['partner_type'] : null, 'supplier_id' => isset($request['supplier_id']) && $request['supplier_id'] != 'null' ? $request['supplier_id'] : null, 'page' => isset($request['page']) ? $request['page'] : 1, 'limit' => isset($request['limit']) ? $request['limit'] : 0, 'type' => $option);
     //echo '<pre>';print_r($condition);exit;
     if ($condition['partner_type'] != null) {
         $pricelist = new Erp_Model_Warehouse_Pricelist();
         $data = $pricelist->getData($condition);
         if ($option == 'csv') {
             $this->view->layout()->disableLayout();
             $this->_helper->viewRenderer->setNoRender(true);
             $h = new Application_Model_Helpers();
             $h->exportCsv($data, '价格清单');
         } else {
             echo Zend_Json::encode($data);
         }
     }
     exit;
 }
示例#11
0
    /**
     * 保存采购申请表体
     */
    public function edititemsAction()
    {
        // 返回值数组
        $result = array('success' => true, 'info' => '编辑成功');
        $request = $this->getRequest()->getParams();
        $type = isset($request['operate']) ? $request['operate'] : '';
        // 操作类别
        $typeArr = array('new' => '新建', 'edit' => '修改', 'transfer' => '变更');
        $now = date('Y-m-d H:i:s');
        $user_session = new Zend_Session_Namespace('user');
        $user_id = $user_session->user_info['user_id'];
        $json = json_decode($request['json']);
        $order_id = $json->order_id;
        $transfer_id = $json->transfer_id;
        $order_id = $json->order_id;
        $json_items = $json->items;
        $items_updated = $json_items->updated;
        $items_inserted = $json_items->inserted;
        $items_deleted = $json_items->deleted;
        $items = new Erp_Model_Purchse_Orderitems();
        $itemsreq = new Erp_Model_Purchse_Orderitemsreq();
        $transfer_items = new Erp_Model_Purchse_Transferorderitems();
        // 更新
        if (count($items_updated) > 0) {
            foreach ($items_updated as $val) {
                $active = $val->items_active ? 1 : 0;
                $total = round($val->items_qty * $val->items_price, 4);
                $data = array('active' => $active, 'req_number' => $val->items_req_number, 'code' => $val->items_code, 'name' => $val->items_name, 'description' => $val->items_description, 'supplier_code' => $val->items_supplier_code, 'supplier_codename' => $val->items_supplier_codename, 'supplier_description' => $val->items_supplier_description, 'qty' => $val->items_qty, 'unit' => $val->items_unit, 'price' => $val->items_price, 'total' => $total, 'warehouse_code' => $val->items_warehouse_code, 'request_date' => $val->items_request_date, 'dept_id' => $val->items_dept_id, 'project_info' => $val->items_project_info, 'remark' => $val->items_remark);
                try {
                    if ($type == 'transfer') {
                        $data['req_item_id'] = $val->items_req_item_id;
                        $data['order_id'] = $order_id;
                        $data['transfer_id'] = $transfer_id;
                        $data['order_item_id'] = $val->items_id;
                        $data['transfer_type'] = 'update';
                        $transfer_items->insert($data);
                    } else {
                        $data['update_user'] = $user_id;
                        $data['update_time'] = $now;
                        $items->update($data, "id = " . $val->items_id);
                        // 保存分拆订单项信息
                        $this->saveSplitItem('update', $val->items_id, $val->items_req_item_id, $val->items_qty, $val->items_code, $active);
                    }
                } catch (Exception $e) {
                    $result['success'] = false;
                    $result['info'] = $e->getMessage();
                    echo Zend_Json::encode($result);
                    exit;
                }
            }
        }
        // 插入
        if (count($items_inserted) > 0) {
            foreach ($items_inserted as $val) {
                $active = $val->items_active ? 1 : 0;
                $total = round($val->items_qty * $val->items_price, 4);
                $data = array('order_id' => $order_id, 'active' => $active, 'req_number' => $val->items_req_number, 'code' => $val->items_code, 'name' => $val->items_name, 'description' => $val->items_description, 'supplier_code' => $val->items_supplier_code, 'supplier_codename' => $val->items_supplier_codename, 'supplier_description' => $val->items_supplier_description, 'qty' => $val->items_qty, 'unit' => $val->items_unit, 'price' => $val->items_price, 'total' => $total, 'warehouse_code' => $val->items_warehouse_code, 'request_date' => $val->items_request_date, 'dept_id' => $val->items_dept_id, 'project_info' => $val->items_project_info, 'remark' => $val->items_remark);
                try {
                    if ($type == 'transfer') {
                        $data['transfer_id'] = $transfer_id;
                        $data['order_item_id'] = $val->items_id;
                        $data['req_item_id'] = $val->items_req_item_id;
                        $data['req_qty'] = $val->items_req_qty;
                        $data['transfer_type'] = 'add';
                        $transfer_items->insert($data);
                    } else {
                        $data['create_user'] = $user_id;
                        $data['create_time'] = $now;
                        $data['update_user'] = $user_id;
                        $data['update_time'] = $now;
                        $order_item_id = $items->insert($data);
                        $this->saveSplitItem('insert', $order_item_id, $val->items_req_item_id, $val->items_req_qty, $val->items_code);
                    }
                } catch (Exception $e) {
                    $result['success'] = false;
                    $result['info'] = $e->getMessage();
                    echo Zend_Json::encode($result);
                    exit;
                }
            }
        }
        // 删除
        if (count($items_deleted) > 0) {
            foreach ($items_deleted as $val) {
                try {
                    if ($type == 'transfer') {
                        $active = $val->items_active ? 1 : 0;
                        $line_total = round($val->items_qty * $val->items_price, 4);
                        $data = array('active' => $active, 'transfer_type' => 'delete', 'transfer_id' => $transfer_id, 'order_item_id' => $val->items_id, 'req_number' => $val->items_req_number, 'code' => $val->items_code, 'name' => $val->items_name, 'description' => $val->items_description, 'supplier_code' => $val->items_supplier_code, 'supplier_codename' => $val->items_supplier_codename, 'supplier_description' => $val->items_supplier_description, 'qty' => $val->items_qty, 'unit' => $val->items_unit, 'price' => $val->items_price, 'total' => $total, 'warehouse_code' => $val->items_warehouse_code, 'request_date' => $val->items_request_date, 'dept_id' => $val->items_dept_id, 'project_info' => $val->items_project_info, 'remark' => $val->items_remark);
                        $transfer_items->insert($data);
                    } else {
                        $items->delete("id = " . $val->items_id);
                        // 清除订单项对应的申请项数据
                        $itemsreq->delete("order_item_id = " . $val->items_id);
                        $this->saveSplitItem('delete', $val->items_id, $val->items_req_item_id, $val->items_req_qty, $val->items_code);
                    }
                } catch (Exception $e) {
                    $result['success'] = false;
                    $result['info'] = $e->getMessage();
                    echo Zend_Json::encode($result);
                    exit;
                }
            }
        }
        // 更新订单项状态
        $activeItemsRes = $items->fetchAll("active = 1 and order_id = " . $order_id);
        if ($activeItemsRes->count() > 0) {
            $activeItems = $activeItemsRes->toArray();
            for ($j = 0; $j < count($activeItems); $j++) {
                $itemsreq->update(array('active' => 1), "order_item_id = " . $activeItems[$j]['id']);
            }
        }
        // 更新采购申请总计
        if ($type != 'transfer') {
            $items->refreshOrderTotal($order_id);
        }
        $order = new Erp_Model_Purchse_Order();
        $order_data = $order->getData(null, $order_id);
        // 保存成功,进入审批流程
        if ($result['success']) {
            // 根据流程ID获取阶段信息
            $flow = new Admin_Model_Flow();
            $flowData = $flow->fetchRow("id = " . $order_data['order_flow_id'])->toArray();
            // 获取审核阶段
            $step = new Admin_Model_Step();
            $stepIds = $flowData['step_ids'];
            $stepArr = explode(',', $stepIds);
            $review = new Dcc_Model_Review();
            $review->delete("type = 'purchse_order_add' and file_id = " . $order_id);
            $mailTo = null;
            $i = 0;
            $help = new Application_Model_Helpers();
            // 根据阶段信息初始化审批流程,并向第一阶段审核人发送邮件
            foreach ($stepArr as $s) {
                $stepData = $step->fetchRow("id = " . $s)->toArray();
                $step_user = $stepData['user'] != '' ? $stepData['user'] : null;
                $step_role = $stepData['dept'] != '' ? $stepData['dept'] : null;
                $employeeArr = $help->getReviewEmployee($step_user, $step_role);
                $employeeIdArr = $employeeArr['id'];
                $employeeIds = implode(',', $employeeIdArr);
                $reviewData = array('type' => 'purchse_order_add', 'file_id' => $order_id, 'step_name' => $stepData['step_name'], 'plan_user' => $employeeIds, 'plan_dept' => $step_role, 'method' => $stepData['method'], 'return' => $stepData['return']);
                $review->insert($reviewData);
                // 第一阶段发送邮件通知
                if ($i == 0) {
                    $mailTo = $employeeIdArr;
                }
                $i++;
            }
            if ($mailTo) {
                // 获取币种信息
                $currency = new Erp_Model_Setting_Currency();
                $currencyInfo = $currency->getInfoByCode($order_data['currency']);
                $total = $order_data['total'];
                if ($order_data['currency_rate'] != 1) {
                    $total = $order_data['forein_total'];
                }
                $mailContent = '<div>新建采购订单,请登录系统查看:</div>
                            <div>
                            <p><b>订单号:</b>' . $order_data['number'] . '</p>
                            <p><b>采购员:</b>' . $user_session->user_info['user_name'] . '</p>
                            <p><b>类别:</b>' . $order_data['type'] . '</p>
                            <p><b>金额:</b><a style="color: #467500;font-weight: bold;">' . $currencyInfo['symbol'] . $total . '</a></p>
                            <p><b>描述:</b>' . $order_data['description'] . '</p>
                            <p><b>备注:</b>' . $order_data['remark'] . '</p>
                            <p><b>申请时间:</b>' . $order_data['create_time'] . '</p>
                            <p><b>更新时间:</b>' . $order_data['update_time'] . '</p>
                            </div><hr>';
                $transferContent = '';
                if ($type == 'transfer') {
                    $transferContent .= '<div><style type="text/css">
table.gridtable {
	font-family: verdana,arial,sans-serif;
	font-size:12px;
	color:#333333;
	border-width: 1px;
	border-color: #666666;
	border-collapse: collapse;
}
table.gridtable th {
	border-width: 1px;
	padding: 8px;
	border-style: solid;
	border-color: #666666;
	background-color: #dedede;
}
table.gridtable td {
	border-width: 1px;
	padding: 8px;
	border-style: solid;
	border-color: #666666;
	background-color: #ffffff;
}
.delete{
	text-decoration: line-through;
	color: #FF0000;
}
.update{
	font-weight: bold;
	color: #000093;
}
.inactive{
	font-weight: bold;
	color: #999999;
}
</style><table class="gridtable">
                			<tr>
                			<th>#</th>
                			<th>操作类别</th>
                			<th>启用</th>
                			<th>物料号</th>
                			<th>名称</th>
                			<th>描述</th>
                			<th>数量</th>
                			<th>已收货</th>
                			<th>需求日期</th>
                			<th>项目信息</th>
                			<th>备注</th>
                			</tr>';
                    $i = 1;
                    foreach ($items_inserted as $val) {
                        $active = $val->items_active ? '是' : '否';
                        $transferContent .= '<tr>
                			<td>' . $i . '</td>
                			<td>新增</td>
                			<td>' . $active . '</td>
                			<td>' . $val->items_code . '</td>
                			<td>' . $val->items_name . '</td>
                			<td>' . $val->items_description . '</td>
                			<td>' . $val->items_qty . '</td>
                			<td>0</td>
                			<td>' . date('Y-m-d', strtotime($val->items_request_date)) . '</td>
                			<td>' . $val->items_project_info . '</td>
                			<td>' . $val->items_remark . '</td>
                			</tr>';
                        $i++;
                    }
                    foreach ($items_updated as $val) {
                        $tr = '<tr>';
                        if (!$val->items_active) {
                            $tr = '<tr class="inactive">';
                        } else {
                            $tr = '<tr class="update">';
                        }
                        $active = $val->items_active ? '是' : '否';
                        $transferContent .= $tr . '
                			<td>' . $i . '</td>
                			<td>更新</td>
                			<td>' . $active . '</td>
                			<td>' . $val->items_code . '</td>
                			<td>' . $val->items_name . '</td>
                			<td>' . $val->items_description . '</td>
                			<td>' . $val->items_qty . '</td>
                			<td>' . $val->items_qty_receive . '</td>
                			<td>' . $val->items_request_date . '</td>
                			<td>' . $val->items_project_info . '</td>
                			<td>' . $val->items_remark . '</td>
                			</tr>';
                        $i++;
                    }
                    foreach ($items_deleted as $val) {
                        $active = $val->items_active ? '是' : '否';
                        $transferContent .= '<tr class="delete">
                			<td>' . $i . '</td>
                			<td>删除</td>
                			<td>' . $active . '</td>
                			<td>' . $val->items_code . '</td>
                			<td>' . $val->items_name . '</td>
                			<td>' . $val->items_description . '</td>
                			<td>' . $val->items_qty . '</td>
                			<td>0</td>
                			<td>' . $val->items_request_date . '</td>
                			<td>' . $val->items_project_info . '</td>
                			<td>' . $val->items_remark . '</td>
                			</tr>';
                        $i++;
                    }
                    $transferContent .= '</table></div>';
                }
                $mailData = array('type' => '消息', 'subject' => '采购订单-' . $typeArr[$type], 'cc' => $user_session->user_info['user_email'], 'content' => $mailContent . $transferContent, 'add_date' => $now);
                if ($transferContent != '') {
                    $transfer = new Erp_Model_Purchse_Transfer();
                    $transfer->update(array('transfer_content' => $transferContent), "id = " . $transfer_id);
                }
                $result = $help->sendMailToStep($mailTo, $mailData);
            }
        }
        echo Zend_Json::encode($result);
        exit;
    }
示例#12
0
 public function getData($condition = array())
 {
     $sql = $this->select()->setIntegrityCheck(false)->from(array('t1' => $this->_name))->joinLeft(array('t2' => $this->_dbprefix . 'product_catalog_type'), "t1.type_id = t2.id", array('type_name' => 'name'))->joinLeft(array('t3' => $this->_dbprefix . 'product_catalog_stage'), "t1.stage_id = t3.id", array('stage_name' => 'name'))->joinLeft(array('t4' => $this->_dbprefix . 'product_catalog_series'), "t1.series_id = t4.id", array('series_name' => 'name'))->joinLeft(array('t5' => $this->_dbprefix . 'product_catalog_developmode'), "t1.developmode_id = t5.id", array('developmode_name' => 'name'))->joinLeft(array('t6' => $this->_dbprefix . 'user'), "t1.create_user = t6.id", array())->joinLeft(array('t7' => $this->_dbprefix . 'employee'), "t6.employee_id = t7.id", array('creater' => 'cname'))->joinLeft(array('t8' => $this->_dbprefix . 'user'), "t1.auditor_id = t8.id", array())->joinLeft(array('t9' => $this->_dbprefix . 'employee'), "t8.employee_id = t9.id", array('auditor' => 'cname'))->where("t1.active = " . $condition['active'])->order(array('t1.review', 't1.create_time desc'));
     if ($condition['display_deleted'] == 0) {
         $sql->where("t1.`delete` = 0");
     }
     if ($condition['key']) {
         $sql->where("t1.model_standard like '%" . $condition['key'] . "%' or t1.model_internal like '%" . $condition['key'] . "%' or t1.code like '%" . $condition['key'] . "%' or t1.description like '%" . $condition['key'] . "%' or t1.code_customer like '%" . $condition['key'] . "%'");
     }
     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_id'] && $condition['type_id'] != 'undefined') {
         $sql->where("t1.type_id = " . $condition['type_id']);
     }
     if ($condition['series_id'] != 'undefined' && $condition['series_id']) {
         $sql->where("t1.series_id = " . $condition['series_id']);
     }
     if ($condition['stage_id']) {
         $sql->where("t1.stage_id = " . $condition['stage_id']);
     }
     if (isset($condition['have_code']) && $condition['have_code'] === '0') {
         $sql->where("t1.code = '' or t1.code is null");
     } else {
         if (isset($condition['have_code']) && $condition['have_code'] === '1') {
             $sql->where("t1.code != '' and t1.code is not null");
         }
     }
     if ($condition['developmode_id'] && $condition['developmode_id'] != 'null') {
         $sql->where("t1.developmode_id = " . $condition['developmode_id']);
     }
     if ($condition['create_user'] && $condition['create_user'] != 'null') {
         $sql->where("t1.create_user = "******"t1.auditor_id = " . $condition['auditor_id']);
     }
     if ($condition['evt_date']) {
         $sql->where("t1.evt_date = '" . $condition['evt_date'] . "'");
     }
     if ($condition['dvt_date']) {
         $sql->where("t1.date_dvt = '" . $condition['dvt_date'] . "'");
     }
     if ($condition['dvt_date']) {
         $sql->where("t1.date_dvt = '" . $condition['dvt_date'] . "'");
     }
     if ($condition['qa1_date']) {
         $sql->where("t1.qa1_date = '" . $condition['qa1_date'] . "'");
     }
     if ($condition['qa2_date']) {
         $sql->where("t1.qa2_date = '" . $condition['qa2_date'] . "'");
     }
     if ($condition['mass_production_date']) {
         $sql->where("t1.mass_production_date = '" . $condition['mass_production_date'] . "'");
     }
     /* echo $sql;
        exit; */
     $total = $this->fetchAll($sql)->count();
     if ($condition['type'] == 'data') {
         $sql->limitPage($condition['page'], $condition['limit']);
     }
     $data = $this->fetchAll($sql)->toArray();
     $user_session = new Zend_Session_Namespace('user');
     $employee_id = $user_session->user_info['employee_id'];
     $h = new Application_Model_Helpers();
     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']);
         $data[$i]['auditor_time'] = strtotime($data[$i]['auditor_time']);
         $data[$i]['active'] = $data[$i]['active'] == 1 ? true : false;
         $data[$i]['review_info'] = isset($data[$i]['review_info']) ? $data[$i]['review_info'] : '';
         $data[$i]['description'] = $h->deletehtml($data[$i]['description']);
         $data[$i]['remark'] = $h->deletehtml($data[$i]['remark']);
         $data[$i]['review_info_tip'] = $data[$i]['review_info'];
         $data[$i]['review_info'] = str_replace('<br>', ' > ', $data[$i]['review_info']);
         if ($data[$i]['review'] == 0) {
             $review_state = $h->getReviewState('product_add', $data[$i]['id']);
             $data[$i]['reviewer'] = implode(',', $h->getEmployeeNameByIdArr($review_state['reviewer']));
             //echo $data[$i]['reviewer'];exit;
             $data[$i]['can_review'] = in_array($employee_id, $review_state['reviewer']) && !in_array($employee_id, $review_state['reviewer_finished']) ? 1 : 0;
         }
     }
     if ($condition['type'] == 'csv') {
         $data_csv = array();
         $title = array('cnt' => '#', 'type_name' => '产品分类', 'series_name' => '产品系列', 'model_internal' => '内部型号', 'review' => '审核状态', 'model_standard' => '标准型号', 'code' => '产品代码', 'code_old' => '旧产品代码', 'description' => '产品描述', 'code_customer' => '客户代码', 'model_customer' => '客户型号', 'description_customer' => '客户产品描述', 'developmode_name' => '产品开发模式', 'stage_name' => '产品阶段', 'evt_date' => 'EVT通过日期', 'date_dvt' => 'DVT通过日期', 'qa1_date' => 'QA1通过日期', 'qa2_date' => 'QA2通过日期', 'mass_production_date' => '量产日期', 'remark' => '备注', 'creater' => '创建人', 'create_time' => '创建时间', 'auditor' => '审核人', 'auditor_time' => '审核时间');
         array_push($data_csv, $title);
         $i = 0;
         foreach ($data as $d) {
             $i++;
             if ($d['review'] == 0) {
                 $d['review'] = '未审核';
             } else {
                 if ($d['review'] == 1) {
                     $d['review'] = '拒绝';
                 } else {
                     if ($d['review'] == 2) {
                         $d['review'] = '已审核';
                     }
                 }
             }
             $info = array('cnt' => $i, 'type_name' => $d['type_name'], 'series_name' => $d['series_name'], 'model_internal' => $d['model_internal'], 'review' => $d['review'], 'model_standard' => $d['model_standard'], 'code' => $d['code'], 'code_old' => $d['code_old'], 'description' => strip_tags($d['description']), 'code_customer' => $d['code_customer'], 'model_customer' => $d['model_customer'], 'description_customer' => $d['description_customer'], 'developmode_name' => $d['developmode_name'], 'stage_name' => $d['stage_name'], 'evt_date' => $d['evt_date'], 'date_dvt' => $d['date_dvt'], 'qa1_date' => $d['qa1_date'], 'qa2_date' => $d['qa2_date'], 'mass_production_date' => $d['mass_production_date'], 'remark' => $d['remark'], 'creater' => $d['creater'], 'create_time' => date('Y-m-d H:i:s', $d['create_time']), 'auditor' => $d['auditor'], 'auditor_time' => date('Y-m-d H:i:s', $d['auditor_time']));
             array_push($data_csv, $info);
         }
         return $data_csv;
     }
     return array('total' => $total, 'rows' => $data);
 }
示例#13
0
文件: Req.php 项目: xindalu/evolve
 public function getData($condition = array(), $req_id = null)
 {
     $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'))->joinLeft(array('t6' => $this->_dbprefix . 'employee_dept'), "t1.dept_id = t6.id", array('dept' => 'name'))->joinLeft(array('t7' => $this->_dbprefix . 'erp_pur_type'), "t1.type_id = t7.id", array('type' => 'name', 'req_flow_id'))->joinLeft(array('t9' => $this->_dbprefix . 'user'), "t1.apply_user = t9.id", array())->joinLeft(array('t10' => $this->_dbprefix . 'employee'), "t9.employee_id = t10.id", array('apply_user_name' => 'cname'))->joinLeft(array('t11' => $this->_dbprefix . 'erp_pur_transfer'), "t11.id = t1.transfer_id", array('transfer_type', 'transfer_description', 'transfer_state' => 'state'));
     if ($req_id) {
         $sql->where("t1.id = " . $req_id);
         return $this->fetchRow($sql)->toArray();
     } else {
         $sql->where("t1.active = " . $condition['active']);
         if ($condition['state'] !== null) {
             $sql->where("t1.state = " . $condition['state']);
         }
         if ($condition['applier']) {
             $sql->where("t10.cname like '%" . $condition['applier'] . "%' or t10.ename like '%" . $condition['applier'] . "%'");
         }
         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 = "t1.dept_id = " . $dept[0];
                 for ($i = 1; $i < count($dept); $i++) {
                     $dept_con .= " or t1.dept_id = " . $dept[$i];
                 }
                 $sql->where($dept_con);
             }
         }
         if ($condition['key']) {
             $sql->where("t1.number like '%" . $condition['key'] . "%' or t1.reason like '%" . $condition['key'] . "%' or t1.remark like '%" . $condition['key'] . "%' or t1.approved_user like '%" . $condition['key'] . "%'");
             // or t8.name like '%".$condition['key']."%'
         }
         $total = $this->fetchAll($sql)->count();
         $sql->order(array('t1.state', 't1.number desc', 't1.create_time desc'))->limitPage($condition['page'], $condition['limit']);
         $data = $this->fetchAll($sql)->toArray();
         /* echo '<pre>';
            print_r($data);
            exit; */
         $review = new Dcc_Model_Review();
         $help = new Application_Model_Helpers();
         $user_session = new Zend_Session_Namespace('user');
         $employee_id = $user_session->user_info['employee_id'];
         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']);
             $data[$i]['release_time'] = strtotime($data[$i]['release_time']);
             $data[$i]['state'] = intval($data[$i]['state']);
             $data[$i]['review_state'] = "";
             $data[$i]['review_info_tip'] = $data[$i]['review_info'];
             $data[$i]['review_info'] = str_replace('<br>', ' > ', $data[$i]['review_info']);
             // 当状态不为拒绝时才能获取,否则会报错
             if ($data[$i]['state'] != 1) {
                 // 获取审核情况
                 $review_state = $help->getReviewState('purchse_req_add', $data[$i]['id']);
                 $data[$i]['reviewer'] = implode(',', $help->getEmployeeNameByIdArr($review_state['reviewer']));
                 $data[$i]['review_state'] = $review_state['info'];
                 $data[$i]['can_review'] = in_array($employee_id, $review_state['reviewer']) && !in_array($employee_id, $review_state['reviewer_finished']) ? 1 : 0;
                 $data[$i]['current_step'] = $review_state['step_chk']['current_step'];
                 $data[$i]['last_step'] = $review_state['step_chk']['last_step'];
                 $data[$i]['to_finish'] = $review_state['step_chk']['to_finish'];
                 $data[$i]['next_step'] = $review_state['step_chk']['next_step'];
             }
             if ($help->chkIsReviewer('purchse_req_add', $data[$i]['id'], $employee_id)) {
                 $data[$i]['is_reviewer'] = 1;
             } else {
                 $data[$i]['is_reviewer'] = 0;
             }
         }
         return array('total' => $total, 'rows' => $data);
     }
 }
示例#14
0
 public function getnewsAction()
 {
     // 请求参数
     $request = $this->getRequest()->getParams();
     $option = isset($request['option']) ? $request['option'] : 'list';
     $news = new Hra_Model_News();
     if ($option == 'list') {
         echo Zend_Json::encode($news->getList());
     } else {
         // 查询条件
         $condition = array('key' => isset($request['key']) ? $request['key'] : '', 'date_from' => isset($request['date_from']) ? $request['date_from'] : '', 'date_to' => isset($request['date_to']) ? $request['date_to'] : '', 'type_id' => isset($request['type_id']) ? $request['type_id'] : '', 'type' => $option);
         $data = $news->getData($condition);
         if ($option == 'csv') {
             $this->view->layout()->disableLayout();
             $this->_helper->viewRenderer->setNoRender(true);
             $h = new Application_Model_Helpers();
             $h->exportCsv($data);
         } else {
             echo Zend_Json::encode($data);
         }
     }
     exit;
 }
示例#15
0
 public function reviewAction()
 {
     // 返回值数组
     $result = array('success' => true, 'info' => '审核成功');
     $request = $this->getRequest()->getParams();
     $review_id = isset($request['review_id']) ? $request['review_id'] : null;
     $review_operate = isset($request['review_operate']) ? $request['review_operate'] : null;
     $review_current_step = isset($request['review_current_step']) ? $request['review_current_step'] : null;
     // 当前阶段(review表ID)
     $review_last_step = isset($request['review_last_step']) ? $request['review_last_step'] : null;
     // 是否当前阶段为最后一阶段
     $review_to_finish = isset($request['review_to_finish']) ? $request['review_to_finish'] : null;
     // 是否批准后当前阶段结束
     $review_next_step = isset($request['review_next_step']) ? $request['review_next_step'] : null;
     // 下一阶段(review表ID)
     $review_remark = isset($request['review_remark']) ? $request['review_remark'] : null;
     $review_transfer_user = isset($request['review_transfer_user']) ? $request['review_transfer_user'] : null;
     //转审人
     if ($review_id && $review_operate) {
         $now = date('Y-m-d H:i:s');
         $user_session = new Zend_Session_Namespace('user');
         $user_id = $user_session->user_info['user_id'];
         $employee_id = $user_session->user_info['employee_id'];
         // 评审意见
         $review_info = '意见: ' . $review_remark;
         $price = new Erp_Model_Sale_Price();
         $user = new Application_Model_User();
         $review = new Dcc_Model_Review();
         $employee = new Hra_Model_Employee();
         $priceData = $price->getData(null, $review_id);
         // 更新审核状态及审核意见
         if ($review_operate == 'transfer') {
             // 转审
             $tmp = $priceData['review_info'] != '' ? $priceData['review_info'] . '<br>' : '';
             $review_info = $tmp . $now . ': ' . $user_session->user_info['user_name'] . ' [审核-转审] [' . $review_info . ']';
             $price->update(array('review_info' => $review_info), "id = " . $review_id);
             $reviewState = $review->fetchRow("type = 'sale_price_add' and finish_flg = 0 and file_id = " . $review_id, "id")->toArray();
             // 转审对象
             $transferUserInfo = $user->getEmployeeInfoById($review_transfer_user);
             $reviewUsers = $reviewState['plan_user'];
             $reviewUserArr = explode(',', $reviewUsers);
             $reviewer = array();
             if ($reviewState['method'] == 2) {
                 // 任意: 直接替换审核人为转审对象
                 foreach ($reviewUserArr as $review_user) {
                     if ($review_user == $employee_id) {
                         array_push($reviewer, $transferUserInfo['id']);
                     }
                 }
             } else {
                 // 全部: 替换当前审核人为转审对象,其余审核人保留
                 foreach ($reviewUserArr as $review_user) {
                     if ($review_user == $employee_id) {
                         array_push($reviewer, $transferUserInfo['id']);
                     } else {
                         if (!in_array($review_user, $reviewer)) {
                             array_push($reviewer, $review_user);
                         }
                     }
                 }
             }
             $reviewerstr = implode(',', $reviewer);
             $review->update(array('plan_user' => $reviewerstr), "id = " . $reviewState['id']);
             // 发送邮件通知制单人
             $reviewResult = '<font style="color: #FF0000"><b>转审</b></font>';
             $mail = new Application_Model_Log_Mail();
             $to = $transferUserInfo['email'];
             $mailContent = '<div>销售价格申请审核:</div>
                             <div>
                             <p><b>审核人:</b>' . $user_session->user_info['user_name'] . '</p>
                             <p><b>审核结果:</b>' . $reviewResult . '</p>
                             <p><b>审核意见:</b>' . $review_remark . '</p>
                             <p><b>申请单号:</b>' . $priceData['number'] . '</p>
                             <p><b>申请人:</b>' . $priceData['creater'] . '</p>
                             <p><b>描述:</b>' . $priceData['description'] . '</p>
                             <p><b>备注:</b>' . $priceData['remark'] . '</p>
                             <hr>
                             <p><b>审核日志:</b></p><p>' . $priceData['review_info'] . '</p>
                             </div>';
             $mailData = array('type' => '消息', 'subject' => '销售价格申请-转审', 'to' => $to, 'cc' => $user_session->user_info['user_email'], 'user_id' => $user_session->user_info['user_id'], 'content' => $mailContent, 'add_date' => $now);
             try {
                 // 记录邮件日志并发送邮件
                 $mail->send($mail->insert($mailData));
             } catch (Exception $e) {
                 $result['success'] = false;
                 $result['info'] = $e->getMessage();
             }
         } else {
             if ($review_operate == 'no') {
                 // 更新申请状态
                 $review_info = $now . ': ' . $user_session->user_info['user_name'] . ' [审核-拒绝] [' . $review_info . ']';
                 $tmp = $priceData['review_info'] != '' ? $priceData['review_info'] . '<br>' : '';
                 $data = array('state' => 1, 'review_info' => $tmp . $review_info);
                 $price->update($data, "id = " . $review_id);
                 // 删除当前申请的审核配置
                 $review->delete("type = 'sale_price_add' and file_id = " . $review_id);
                 // 发送邮件通知制单人
                 $reviewResult = '<font style="color: #FF0000"><b>拒绝</b></font>';
                 $mail = new Application_Model_Log_Mail();
                 $applyEmployeeData = $user->fetchRow("id = " . $priceData['create_user'])->toArray();
                 $applyEmployee = $employee->fetchRow("id = " . $applyEmployeeData['employee_id'])->toArray();
                 $to = $applyEmployee['email'];
                 $mailContent = '<div>销售价格申请审核:</div>
                             <div>
                             <p><b>审核人:</b>' . $user_session->user_info['user_name'] . '</p>
                             <p><b>审核结果:</b>' . $reviewResult . '</p>
                             <p><b>审核意见:</b>' . $review_remark . '</p>
                             <p><b>申请单号:</b>' . $priceData['number'] . '</p>
                             <p><b>申请人:</b>' . $priceData['creater'] . '</p>
                             <p><b>描述:</b>' . $priceData['description'] . '</p>
                             <p><b>备注:</b>' . $priceData['remark'] . '</p>
                             <hr>
                             <p><b>审核日志:</b></p><p>' . $priceData['review_info'] . '</p>
                             </div>';
                 $mailData = array('type' => '消息', 'subject' => '销售价格申请-审核', 'to' => $to, 'cc' => $user_session->user_info['user_email'], 'user_id' => $priceData['create_user'], 'content' => $mailContent, 'add_date' => $now);
                 try {
                     // 记录邮件日志并发送邮件
                     $mail->send($mail->insert($mailData));
                 } catch (Exception $e) {
                     $result['success'] = false;
                     $result['info'] = $e->getMessage();
                 }
             } else {
                 $help = new Application_Model_Helpers();
                 $review_info = $now . ': ' . $user_session->user_info['user_name'] . ' [审核-批准] [' . $review_info . ']';
                 $tmp = $priceData['review_info'] != '' ? $priceData['review_info'] . '<br>' : '';
                 $reqUpdateData = array('review_info' => $tmp . $review_info);
                 $reviewData = $review->fetchRow("id = " . $review_current_step)->toArray();
                 $actual_user = $reviewData['actual_user'] == '' ? $user_session->user_info['employee_id'] : $reviewData['actual_user'] . ',' . $user_session->user_info['employee_id'];
                 $data = array('actual_user' => $actual_user, 'finish_time' => $now, 'finish_flg' => 1);
                 // 当前审核阶段为最后一阶段
                 if ($review_last_step == 1) {
                     // 当前阶段已完结
                     if ($review_to_finish == 1) {
                         $data = array('actual_user' => $actual_user, 'finish_time' => $now, 'finish_flg' => 1);
                         $reviewResult = '<font style="color: #006400"><b>发布</b></font>';
                         // 发布:检查客户的当前产品(包括类别)是否存在生效价格(如存在则更新历史价格为作废)
                         $price->updatePriceByPriceId($review_id);
                         // 更新申请状态
                         $reqUpdateData['state'] = 2;
                         $reqUpdateData['release_time'] = $now;
                         // 更新审核记录表
                         $review->update($data, "id = " . $review_current_step);
                         $mail = new Application_Model_Log_Mail();
                         $applyEmployeeData = $user->fetchRow("id = " . $priceData['create_user'])->toArray();
                         $applyEmployee = $employee->fetchRow("id = " . $applyEmployeeData['employee_id'])->toArray();
                         $to = $applyEmployee['email'];
                         $cc = $user_session->user_info['user_email'];
                         $mailContent = '<div>销售价格审核批准,请登录系统查看:</div>
                             <div>
                             <p><b>审核人:</b>' . $user_session->user_info['user_name'] . '</p>
                             <p><b>审核结果:</b>' . $reviewResult . '</p>
                             <p><b>审核意见:</b>' . $review_remark . '</p>
                             <p><b>申请单号:</b>' . $priceData['number'] . '</p>
                             <p><b>申请人:</b>' . $priceData['creater'] . '</p>
                             <p><b>描述:</b>' . $priceData['description'] . '</p>
                             <p><b>备注:</b>' . $priceData['remark'] . '</p>
                             <hr>
                             <p><b>审核日志:</b></p><p>' . $reqUpdateData['review_info'] . '</p>
                             </div>';
                         $mailData = array('type' => '消息', 'subject' => '销售价格申请-发布', 'to' => $to, 'cc' => $cc, 'user_id' => $priceData['create_user'], 'content' => $mailContent, 'add_date' => $now);
                         try {
                             // 记录邮件日志并发送邮件
                             $mail->send($mail->insert($mailData));
                         } catch (Exception $e) {
                             $result['success'] = false;
                             $result['info'] = $e->getMessage();
                         }
                     } else {
                         $data = array('actual_user' => $actual_user);
                         $review->update($data, "id = " . $review_current_step);
                     }
                 } else {
                     // 当前阶段已完结
                     if ($review_to_finish == 1) {
                         $data = array('actual_user' => $actual_user, 'finish_time' => $now, 'finish_flg' => 1);
                         $reviewResult = '<font style="color: #006400"><b>批准</b></font>';
                         // 进入下一阶段
                         // 更新审核记录表
                         $review->update($data, "id = " . $review_current_step);
                         // 邮件通知下一阶段审核人
                         $reviewNextStepData = $review->fetchRow("id = " . $review_next_step)->toArray();
                         $mailTo = explode(',', $reviewNextStepData['plan_user']);
                         if ($mailTo) {
                             $mailContent = '<div>销售价格申请,请登录系统查看:</div>
                                         <div>
                                         <p><b>审核人:</b>' . $user_session->user_info['user_name'] . '</p>
                                         <p><b>审核结果:</b>' . $reviewResult . '</p>
                                         <p><b>审核意见:</b>' . $review_remark . '</p>
                                         <p><b>申请单号:</b>' . $priceData['number'] . '</p>
                                         <p><b>申请人:</b>' . $priceData['creater'] . '</p>
                                         <p><b>描述:</b>' . $priceData['description'] . '</p>
                                         <p><b>备注:</b>' . $priceData['remark'] . '</p>
                                         <hr>
                                         <p><b>审核日志:</b></p><p>' . $reqUpdateData['review_info'] . '</p>
                                         </div>';
                             $mailData = array('type' => '消息', 'subject' => '销售价格申请-新申请', 'cc' => $user_session->user_info['user_email'], 'content' => $mailContent, 'add_date' => $now);
                             $resultMail = $help->sendMailToStep($mailTo, $mailData);
                             if (!$resultMail['success']) {
                                 $result = $resultMail;
                             }
                         }
                     } else {
                         $data = array('actual_user' => $actual_user);
                         $review->update($data, "id = " . $review_current_step);
                         // 等待其他审核人批准
                     }
                 }
                 // 更新申请状态
                 $price->update($reqUpdateData, "id = " . $review_id);
             }
         }
     }
     echo Zend_Json::encode($result);
     exit;
 }
示例#16
0
 public function getcatalogAction()
 {
     // 请求参数
     $request = $this->getRequest()->getParams();
     $option = isset($request['option']) ? $request['option'] : 'data';
     $catalog = new Product_Model_Catalog();
     // 查询条件
     $condition = array('active' => isset($request['active']) ? $request['active'] : 1, 'key' => isset($request['key']) ? $request['key'] : '', 'date_from' => isset($request['date_from']) ? $request['date_from'] : null, 'date_to' => isset($request['date_to']) ? $request['date_to'] : null, 'display_deleted' => isset($request['display_deleted']) ? $request['display_deleted'] == 'true' ? 1 : 0 : 0, 'type_id' => isset($request['type_id']) && $request['type_id'] != 'null' ? $request['type_id'] : '', 'series_id' => isset($request['series_id']) && $request['series_id'] != 'null' ? $request['series_id'] : '', 'have_code' => isset($request['have_code']) && $request['have_code'] != 'null' ? $request['have_code'] : '', 'stage_id' => isset($request['stage_id']) && $request['stage_id'] != 'null' && $request['stage_id'] != 'undefined' ? $request['stage_id'] : '', 'developmode_id' => isset($request['developmode_id']) && $request['developmode_id'] && $request['developmode_id'] != 'undefined' ? $request['developmode_id'] : '', 'page' => isset($request['page']) ? $request['page'] : 1, 'limit' => isset($request['limit']) ? $request['limit'] : 0, 'create_user' => isset($request['create_user']) && $request['create_user'] != '' && $request['create_user'] != 'undefined' ? $request['create_user'] : null, 'auditor_id' => isset($request['auditor_id']) && $request['auditor_id'] != '' && $request['auditor_id'] != 'undefined' ? $request['auditor_id'] : null, 'evt_date' => isset($request['evt_date']) && $request['evt_date'] != 'null' ? substr($request['evt_date'], 0, 10) : null, 'dvt_date' => isset($request['dvt_date']) && $request['dvt_date'] != 'null' ? substr($request['dvt_date'], 0, 10) : null, 'qa1_date' => isset($request['qa1_date']) && $request['qa1_date'] != 'null' ? substr($request['qa1_date'], 0, 10) : null, 'qa2_date' => isset($request['qa2_date']) && $request['qa2_date'] != 'null' ? substr($request['qa2_date'], 0, 10) : null, 'mass_production_date' => isset($request['mass_production_date']) && $request['mass_production_date'] != 'null' ? substr($request['mass_production_date'], 0, 10) : null, 'type' => $option);
     $data = $catalog->getData($condition);
     if ($option == 'csv') {
         $this->view->layout()->disableLayout();
         $this->_helper->viewRenderer->setNoRender(true);
         $h = new Application_Model_Helpers();
         $h->exportCsv($data, '产品中心');
     } else {
         echo Zend_Json::encode($data);
     }
     exit;
 }
示例#17
0
 /**
  * 获取考勤统计信息
  */
 public function getstatisticsAction()
 {
     $request = $this->getRequest()->getParams();
     $option = isset($request['option']) ? $request['option'] : 'list';
     $condition = array('key' => isset($request['key']) ? $request['key'] : null, 'employment_type' => isset($request['employment_type']) ? $request['employment_type'] : 1, 'date_from' => isset($request['date_from']) ? $request['date_from'] : date('Y-m-01'), 'date_to' => isset($request['date_to']) ? $request['date_to'] : date('Y-m-t'), 'page' => isset($request['page']) ? $request['page'] : 1, 'limit' => isset($request['limit']) ? $request['limit'] : 0, 'type' => $option);
     $attendance = new Hra_Model_Attendance();
     $data = $attendance->getStatisticsList($condition);
     if ($option == 'csv') {
         $this->view->layout()->disableLayout();
         $this->_helper->viewRenderer->setNoRender(true);
         $h = new Application_Model_Helpers();
         $h->exportCsv($data, '考勤统计');
     } else {
         echo Zend_Json::encode($data);
     }
     exit;
 }
示例#18
0
 public function importAction()
 {
     $result = array('success' => true, 'info' => '导入成功');
     $request = $this->getRequest()->getParams();
     $now = date('Y-m-d H:i:s');
     if (isset($_FILES['csv'])) {
         $now = date('Y-m-d H:i:s');
         $user_session = new Zend_Session_Namespace('user');
         $user_id = $user_session->user_info['user_id'];
         $file = $_FILES['csv'];
         $file_extension = strrchr($file['name'], ".");
         $h = new Application_Model_Helpers();
         $tmp_file_name = $h->getMicrotimeStr() . $file_extension;
         $savepath = "../temp/";
         $tmp_file_path = $savepath . $tmp_file_name;
         move_uploaded_file($file["tmp_name"], $tmp_file_path);
         $materiel = new Product_Model_Materiel();
         $supply = new Product_Model_Bpartner();
         $db = $materiel->getAdapter();
         $file = fopen($tmp_file_path, "r");
         $data = array();
         while (!feof($file)) {
             array_push($data, fgetcsv($file));
         }
         // 数据校验
         if (count($data) <= 1) {
             $result['success'] = false;
             $result['info'] = "文件中无数据!";
             fclose($file);
             echo Zend_Json::encode($result);
             exit;
         }
         // 文件格式 # 物料号 MPQ MOQ LT 供应商1 供应商2 备注
         $errorCode = array();
         $okData = array();
         for ($i = 1; $i < count($data); $i++) {
             $num = $i + 1;
             $row = $data[$i];
             if (count($row) < 2 || !$row[1]) {
                 continue;
             }
             for ($k = 0; $k < count($row); $k++) {
                 $row[$k] = str_replace("\"", "", $row[$k]);
             }
             // check materiel code
             if ($materiel->checkExist($row[1])) {
                 // data
                 $code = $row[1];
                 $supply1Id = $supply2Id = '';
                 $mpq = $moq = $lt = 0;
                 $manufacturers = $remark = '';
                 if (isset($row[2]) && $row[2] && is_numeric($row[2])) {
                     $mpq = $row[2];
                 }
                 if (isset($row[3]) && $row[3] && is_numeric($row[3])) {
                     $moq = $row[3];
                 }
                 if (isset($row[4]) && $row[4] && is_numeric($row[4])) {
                     $lt = $row[4];
                 }
                 // supply
                 $supply1 = isset($row[5]) ? $row[5] : 0;
                 $supply2 = isset($row[6]) ? $row[6] : 0;
                 // check supply exists
                 if ($supply1) {
                     $supply1 = iconv('GBK', 'UTF-8', $supply1);
                     $where = "code = '{$supply1}' or cname like '{$supply1}' or ename like '{$supply1}' or concat(code, cname) like '{$supply1}' or concat(code, ename) like '{$supply1}'";
                     $supply1Data = $supply->getJoinList($where, array(), array('id'));
                     if (count($supply1Data) > 0) {
                         $supply1Id = $supply1Data[0]['id'];
                     }
                 }
                 if ($supply2) {
                     $supply2 = iconv('GBK', 'UTF-8', $supply2);
                     $where = "code = '{$supply2}' or cname like '{$supply2}' or ename like '{$supply2}' or concat(code, cname) like '{$supply2}' or concat(code, ename) like '{$supply2}'";
                     $supply2Data = $supply->getJoinList($where, array(), array('id'));
                     if (count($supply2Data) > 0) {
                         $supply2Id = $supply2Data[0]['id'];
                     }
                 }
                 $manufacturers = isset($row[7]) ? iconv('GBK', 'UTF-8', $row[7]) : '';
                 $remark = isset($row[8]) ? iconv('GBK', 'UTF-8', $row[8]) : '';
                 $profile = array('mpq' => $mpq, 'moq' => $moq, 'tod' => $lt, 'supply1' => $supply1Id, 'supply2' => $supply2Id, 'manufacturers' => $manufacturers, 'remark' => $remark);
                 $where = "code = '{$code}'";
                 try {
                     $materiel->update($profile, $where);
                 } catch (Exception $e) {
                     $errorCode[] = $code;
                 }
                 $okData[] = $row;
             } else {
                 $errorCode[] = $row[1];
             }
         }
         if (count($errorCode) > 0) {
             $result['error'] = $errorCode;
         }
         fclose($file);
     }
     echo Zend_Json::encode($result);
     exit;
 }
示例#19
0
 /**
  * 获取业务伙伴信息列表
  */
 public function getpartnerAction()
 {
     // 请求参数
     $request = $this->getRequest()->getParams();
     $export = isset($request['export']) ? $request['export'] : 0;
     $option = isset($request['option']) ? $request['option'] : 'data';
     $type = isset($request['type']) ? $request['type'] : 0;
     $partner = new Erp_Model_Partner();
     if ($option == 'list') {
         echo Zend_Json::encode($partner->getList($type));
     } else {
         // 查询条件
         $condition = array('type' => isset($request['type']) ? $request['type'] : 0, 'key' => isset($request['key']) ? $request['key'] : '', 'group' => isset($request['group_id']) ? $request['group_id'] : '', 'page' => isset($request['page']) ? $request['page'] : 1, 'limit' => isset($request['limit']) ? $request['limit'] : 0, 'export' => $export);
         $data = $partner->getData($condition);
         if ($export) {
             $this->view->layout()->disableLayout();
             $this->_helper->viewRenderer->setNoRender(true);
             $h = new Application_Model_Helpers();
             $h->exportCsv($data, '业务伙伴');
         } else {
             echo Zend_Json::encode($data);
         }
     }
     exit;
 }
示例#20
0
 public function exportcsvAction()
 {
     $user = new Application_Model_User();
     $data = $user->getUserList(array('csv' => true));
     $this->view->layout()->disableLayout();
     $this->_helper->viewRenderer->setNoRender(true);
     $h = new Application_Model_Helpers();
     $h->exportCsv($data);
 }
示例#21
0
 public function checkcodeAction()
 {
     $codes = $this->getRequest()->getParam('code');
     $result = array(result => 0, code => array());
     if ($codes) {
         foreach (explode(',', $codes) as $code) {
             $h = new Application_Model_Helpers();
             $openNumber = $h->getOpenReqOrderByCode($code);
             if (count($openNumber) > 0) {
                 $result['result'] = 1;
                 $result['code'][] = $code;
             }
         }
     }
     echo Zend_Json::encode($result);
     exit;
 }
示例#22
0
 public function importAction()
 {
     $result = array('success' => true, 'info' => '导入成功');
     $request = $this->getRequest()->getParams();
     $now = date('Y-m-d H:i:s');
     if (isset($_FILES['csv'])) {
         $now = date('Y-m-d H:i:s');
         $user_session = new Zend_Session_Namespace('user');
         $user_id = $user_session->user_info['user_id'];
         $file = $_FILES['csv'];
         $file_extension = strrchr($file['name'], ".");
         $h = new Application_Model_Helpers();
         $tmp_file_name = $h->getMicrotimeStr() . $file_extension;
         $savepath = "../temp/";
         $tmp_file_path = $savepath . $tmp_file_name;
         move_uploaded_file($file["tmp_name"], $tmp_file_path);
         $plist = new Product_Model_Productlist();
         // 读取文件
         require_once LIBRARY_PATH . "/Excel/reader.php";
         $reader = new Spreadsheet_Excel_Reader();
         $reader->setOutputEncoding('UTF-8');
         $reader->setUTFEncoder('mb');
         $reader->setRowColOffset(1);
         $reader->read($tmp_file_path);
         error_reporting(E_ALL ^ E_NOTICE);
         $data = array();
         for ($i = 1; $i <= $reader->sheets[0]['numRows']; $i++) {
             $row = array();
             for ($j = 1; $j <= $reader->sheets[0]['numCols']; $j++) {
                 $row[] = $reader->sheets[0]['cells'][$i][$j];
             }
             $data[] = $row;
         }
         // 数据校验
         if (count($data) <= 1) {
             $result['success'] = false;
             $result['info'] = "文件中无数据!";
             echo Zend_Json::encode($result);
             exit;
         }
         $cols = array("sn", "code", "step", "description", "is_bom_exists", "bom_apply_time", "bom_archive_time", "product_code", "bosa", "bosa_supply", "tosa", "tosa_supply", "rosa", "rosa_supply", "pcb", "pcba", "dg02", "dg01", "product_label", "barcode_label", "label_print_rule", "tooling_model", "sample_send_time", "pra", "trial_produce_qa1", "pmr", "dl", "ipa", "cri", "ds", "dd", "pl", "pes", "pcb_file", "icd", "smt", "mp", "sqr", "dvs", "dvp", "dvr", "dvt", "rtr", "emr", "mtb", "tsq", "sqc", "ed", "pts", "sp", "ep", "fep", "fsp", "ld", "pd", "pg", "nfc", "frm", "pfc", "wi", "other", "create_time", "create_user", "update_time", "update_user");
         for ($i = 1; $i < count($data); $i++) {
             $num = $i + 1;
             $row = $data[$i];
             if (count($row) < 2 || !$row[1]) {
                 continue;
             }
             $code = $row[1];
             if (!$this->checkExists($code)) {
                 $insertData = array();
                 $k = 0;
                 foreach ($cols as $c) {
                     $insertData[$c] = $row[$k];
                     $k++;
                 }
                 try {
                     $plist->insert($insertData);
                 } catch (Exception $e) {
                     $result['result'] = false;
                     $result['info'] = $e->getMessage();
                     echo Zend_Json::encode($result);
                     exit;
                 }
             } else {
                 $errors[] = $code;
             }
         }
         $result['error'] = $errors;
     }
     echo Zend_Json::encode($result);
     exit;
 }
示例#23
0
 public function getmeetingAction()
 {
     $request = $this->getRequest()->getParams();
     $option = isset($request['option']) ? $request['option'] : 'data';
     $condition = array('key' => isset($request['key']) && $request['key'] != '' ? $request['key'] : null, 'state' => isset($request['state']) ? $request['state'] : null, 'date_from' => isset($request['date_from']) ? $request['date_from'] : date('Y-m-01'), 'date_to' => isset($request['date_to']) ? $request['date_to'] : date('Y-m-t'), 'page' => isset($request['page']) ? $request['page'] : 1, 'limit' => isset($request['limit']) ? $request['limit'] : 0, 'type' => $option);
     $meeting = new Res_Model_Meeting();
     $data = $meeting->getData($condition);
     if ($option == 'csv') {
         $this->view->layout()->disableLayout();
         $this->_helper->viewRenderer->setNoRender(true);
         $h = new Application_Model_Helpers();
         $h->exportCsv($data, '会议预定');
     } else {
         echo Zend_Json::encode($data);
     }
     exit;
 }
示例#24
0
 public function editattachAction()
 {
     $result = array('success' => true, 'info' => '上传成功');
     $request = $this->getRequest()->getParams();
     $invoice_id = isset($request['invoice_id']) ? $request['invoice_id'] : null;
     //$remark = isset($request['attach_remark']) ? $request['attach_remark'] : null;
     if ($invoice_id && isset($_FILES['attach_file'])) {
         $now = date('Y-m-d H:i:s');
         $user_session = new Zend_Session_Namespace('user');
         $user_id = $user_session->user_info['user_id'];
         $file = $_FILES['attach_file'];
         $file_name = $file['name'];
         $file_extension = strrchr($file_name, ".");
         $h = new Application_Model_Helpers();
         $tmp_file_name = $h->getMicrotimeStr() . $file_extension;
         $savepath = "../upload/files/" . date('Y-m-d') . '/';
         if (!is_dir($savepath)) {
             mkdir($savepath);
             // 目录不存在则创建目录
         }
         $tmp_file_path = $savepath . $tmp_file_name;
         move_uploaded_file($file["tmp_name"], $tmp_file_path);
         $invoice = new Erp_Model_Purchse_Invoice();
         $invoiceData = $invoice->getData(null, $invoice_id);
         if ($invoiceData['attach_path'] != '' && file_exists($invoiceData['attach_path'])) {
             unlink($invoiceData['attach_path']);
         }
         $invoiceData = array('attach_name' => $file_name, 'attach_path' => $tmp_file_path, 'update_user' => $user_id, 'update_time' => $now);
         $invoice->update($invoiceData, "id = " . $invoice_id);
     }
     echo Zend_Json::encode($result);
     exit;
 }
示例#25
0
 public function importAction()
 {
     $result = array('success' => true, 'info' => '导入成功');
     $request = $this->getRequest()->getParams();
     $type = isset($request['type']) ? $request['type'] : null;
     $nid = isset($request['nid']) ? $request['nid'] : "";
     if (isset($_FILES['csv'])) {
         $now = date('Y-m-d H:i:s');
         $user_session = new Zend_Session_Namespace('user');
         $user_id = $user_session->user_info['user_id'];
         $file = $_FILES['csv'];
         $file_extension = strrchr($file['name'], ".");
         $h = new Application_Model_Helpers();
         $tmp_file_name = $h->getMicrotimeStr() . $file_extension;
         $savepath = "../temp/";
         $tmp_file_path = $savepath . $tmp_file_name;
         move_uploaded_file($file["tmp_name"], $tmp_file_path);
         $materiel = new Product_Model_Materiel();
         $db = $materiel->getAdapter();
         if ($type == 'dev') {
             $fa = new Product_Model_Fadev();
             $son = new Product_Model_Sondev();
             $table = "oa_product_bom_fa_dev";
         } else {
             if ($type == 'bom') {
                 $fa = new Product_Model_Fa();
                 $son = new Product_Model_Son();
                 $table = "oa_product_bom_fa";
             }
         }
         if ($type == 'dev' || $type == 'bom') {
             $file = fopen($tmp_file_path, "r");
             $data = array();
             while (!feof($file)) {
                 array_push($data, fgetcsv($file));
             }
             // 数据校验
             if (count($data) <= 1) {
                 $result['success'] = false;
                 $result['info'] = "文件中无数据!";
                 fclose($file);
                 echo Zend_Json::encode($result);
                 exit;
             }
             for ($i = 1; $i < count($data); $i++) {
                 $num = $i + 1;
                 $row = $data[$i];
                 if ($i == 1 && !$row[1]) {
                     $result['success'] = false;
                     $result['info'] = "请以上级物料开头:第" . $num . "行!";
                     fclose($file);
                     echo Zend_Json::encode($result);
                     exit;
                 }
                 if (!$row[1] && !$row[2]) {
                     continue;
                 }
                 if ($row[1] && $row[2]) {
                     $result['success'] = false;
                     $result['info'] = "上级物料和下级物料不能同时存在:第" . $num . "行!";
                     fclose($file);
                     echo Zend_Json::encode($result);
                     exit;
                 }
                 if ($row[1]) {
                     if (!$materiel->checkExist($row[1])) {
                         $result['success'] = false;
                         $result['info'] = "物料“" . $row[1] . "”不存在:第" . $num . "行!";
                         fclose($file);
                         echo Zend_Json::encode($result);
                         exit;
                     }
                     $m = $materiel->getMaterielByCode($row[1]);
                 }
                 if ($row[2]) {
                     if (!$materiel->checkExist($row[2])) {
                         $result['success'] = false;
                         $result['info'] = "物料“" . $row[2] . "”不存在:第" . $num . "行!";
                         fclose($file);
                         echo Zend_Json::encode($result);
                         exit;
                     }
                 }
                 if ($row[2] && $row[7]) {
                     $replace = explode(',', $row[7]);
                     foreach ($replace as $r) {
                         $r = iconv('utf-8', 'gbk//IGNORE', $r);
                         if (!$materiel->checkExist($r)) {
                             $result['success'] = false;
                             $result['info'] = "物料“" . $r . "”不存在:第" . $i . "行!";
                             fclose($file);
                             echo Zend_Json::encode($result);
                             exit;
                         }
                     }
                 }
                 if ($i > 1 && $row[1] && $data[$i - 1][1]) {
                     $result['success'] = false;
                     $result['info'] = "BOM“" . $data[$i - 1][1] . "”不存在子物料:第{$i行!}";
                     fclose($file);
                     echo Zend_Json::encode($result);
                     exit;
                 }
             }
             // 只取一次最大值,可能遇到重号
             $maxkeys = $fa->getAdapter()->query("select ifnull(max(recordkey),0) as maxkey from {$table}")->fetchObject();
             $recordkey = $maxkeys->maxkey;
             $pid = "";
             $faArr = array();
             $sonArr = array();
             $obsoleteWhere = "1=0";
             // 校验成功,开始保存数据
             for ($i = 1; $i < count($data); $i++) {
                 $row = $data[$i];
                 if ($row[1]) {
                     $m = $materiel->getMaterielByCode($row[1]);
                     $recordkey++;
                     $pid = $m['id'];
                     $faData = array('nid' => $nid, 'recordkey' => $recordkey, 'id' => $m['id'], 'code' => $row[1], 'qty' => 1, 'state' => $row[3] ? $row[3] : 'EBOM', 'ver' => $row[4] ? $row[4] : '1.0');
                     if ($faData['ver'] > '1.0') {
                         $obsoleteWhere .= " or (code='" . $row[1] . "' and ver < '" . $faData['ver'] . "')";
                     }
                     // 检查是否已经存在
                     if ($type == 'dev') {
                         $list = $fa->getFaList("nid = {$nid} and ver = '" . $faData['ver'] . "' and id = " . $m['id']);
                     } else {
                         $list = $fa->getFaList("ver = '" . $faData['ver'] . "' and id = " . $m['id']);
                     }
                     if ($list && count($list) > 0) {
                         $result['success'] = false;
                         $result['info'] = "数据已存在:" . $faData['code'] . " " . $faData['ver'] . "!";
                         fclose($file);
                         echo Zend_Json::encode($result);
                         exit;
                     }
                     $faArr[] = $faData;
                 }
                 if ($row[2]) {
                     $m = $materiel->getMaterielByCode($row[2]);
                     $sonData = array('nid' => $nid, 'recordkey' => $recordkey, 'pid' => $pid, 'id' => $m['id'], 'code' => $row[2], 'qty' => $row[5] ? $row[5] : 1, 'partposition' => $row[6] ? $row[6] : '', 'replace' => $row[7] ? $row[7] : '', 'remark' => $row[8] ? $row[8] : '');
                     // 检查是否已经存在
                     if ($type == 'dev') {
                         $list = $son->getList("nid = {$nid} and id = " . $m['id']);
                     } else {
                         $list = $son->getList("recordkey = {$recordkey} and id = " . $m['id']);
                     }
                     if ($list && count($list) > 0) {
                         $result['success'] = false;
                         $result['info'] = "数据已存在:" . $sonData['code'] . "!";
                         fclose($file);
                         echo Zend_Json::encode($result);
                         exit;
                     }
                     $sonArr[] = $sonData;
                 }
             }
             $db->beginTransaction();
             try {
                 foreach ($faArr as $faData) {
                     $fa->insert($faData);
                 }
                 foreach ($sonArr as $sonData) {
                     $son->insert($sonData);
                 }
                 // 旧版作废
                 if ($type == 'bom') {
                     $bosoleteData = array("state" => "Obsolete");
                     $fa->update($bosoleteData, $obsoleteWhere);
                 }
                 $db->commit();
                 //执行commit
             } catch (Exception $e) {
                 $db->rollBack();
                 //如果出现错误,执行回滚操作
                 $result['result'] = false;
                 $result['info'] = $e->getMessage();
                 fclose($file);
                 echo Zend_Json::encode($result);
                 exit;
             }
             fclose($file);
         }
     }
     echo Zend_Json::encode($result);
     exit;
 }
示例#26
0
 public function overtimeAction()
 {
     // 返回值数组
     $result = array('success' => true, 'info' => '提交成功');
     // 请求参数
     $request = $this->getRequest()->getParams();
     // 操作类型
     $operate = array('new' => '新建', 'edit' => '编辑', 'delete' => '删除');
     // 操作类别(新建、更新、删除)
     $operate_type = isset($request['operate']) ? $request['operate'] : '';
     $overtime = new Hra_Model_Attendance_Overtime();
     if ($operate_type == 'new_hra' || $operate_type == 'new' || $operate_type == 'edit') {
         $time_from = str_replace('T', ' ', $request['time_from']);
         $time_to = str_replace('T', ' ', $request['time_to']);
         if (date('Y-m', strtotime($time_from)) != date('Y-m', strtotime($time_to))) {
             $result['success'] = false;
             $request['info'] = '不允许跨月申请,请重新填写时间!';
             echo Zend_Json::encode($result);
             exit;
         }
         // 获取加班人员的用工形式(0:弹性,1:非弹性)
         $user = new Application_Model_User();
         $userInfo = $user->getEmployeeInfoById($request['apply_user']);
         $userType = $userInfo['employment_type'];
         $workday = new Hra_Model_Workday();
         // 获取请假区间包含的工作日天数
         $overtimeInfo = $workday->getOvertimeQtyByTimeRange($userType, $request['time_from'], $request['time_to']);
         $overtimeQty = $overtimeInfo['qty'];
         $overtimeQty_hours = $overtimeInfo['qty_hours'];
         /* echo $overtimeQty;
            exit; */
         // 加班类别按起始日期获取
         $overtimeType = $workday->getWorkdayType($userType, date('Y-m-d', strtotime($request['time_from'])));
         if ($overtimeType == 0) {
             $result['success'] = false;
             $request['info'] = '工作日设置错误,请检查工作日设置!';
             echo Zend_Json::encode($result);
             exit;
         }
         // 当编辑请假申请时,检查时间是否重叠需要过滤当前加班申请ID
         $filter_id = null;
         if ($operate_type == 'edit') {
             $filter_id = $request['id'];
         }
         // 检查加班时间范围是否正确
         if ($overtimeQty > 0) {
             // 检查加班时间范围是否跟已有申请(包括已审核和审核中的申请)重叠
             if ($overtime->checkTimeOverlap($request['apply_user'], $request['time_from'], $request['time_to'], $filter_id)) {
                 $result['success'] = false;
                 $result['info'] = '时间设置错误,加班时间重叠,请优先处理未审申请。';
             } else {
                 $now = date('Y-m-d H:i:s');
                 $user_session = new Zend_Session_Namespace('user');
                 $user_id = $user_session->user_info['user_id'];
                 // 当前申请为代申请时,获取申请人真实部门主管
                 if ($request['apply_user'] != $user_id) {
                     // 获取部门主管
                     $manager = $user->getManagerUser($request['apply_user']);
                     $request['review_user_1'] = $manager[0]['id'];
                 }
                 if ($request['review_user_1'] >= 0) {
                     $data = array('type' => $overtimeType, 'apply_user' => $request['apply_user'], 'review_user_1' => $request['review_user_1'], 'time_from' => $request['time_from'], 'time_to' => $request['time_to'], 'qty' => $overtimeQty, 'qty_hours' => $overtimeQty_hours, 'reason' => $request['reason'], 'remark' => $request['remark'], 'update_time' => $now, 'update_user' => $user_id);
                     /* echo '<pre>';
                        print_r($data);
                        exit; */
                     if ($operate_type == 'new_hra') {
                         // HRA手动添加
                         $data['state'] = 3;
                         $data['create_time'] = $now;
                         $data['create_user'] = $user_id;
                         $data['review_info'] = $now . ': ' . $user_session->user_info['user_name'] . ' [手动添加]';
                         try {
                             $overtime_id = $overtime->insert($data);
                             echo Zend_Json::encode($result);
                             exit;
                         } catch (Exception $e) {
                             $result['success'] = false;
                             $result['info'] = $e->getMessage();
                         }
                     } else {
                         if ($operate_type == 'new') {
                             $data['create_time'] = $now;
                             $data['create_user'] = $user_id;
                             $data['review_info'] = $now . ': ' . $user_session->user_info['user_name'] . ' [新建]';
                             try {
                                 $overtime_id = $overtime->insert($data);
                             } catch (Exception $e) {
                                 $result['success'] = false;
                                 $result['info'] = $e->getMessage();
                             }
                         } else {
                             $overtime_id = $request['id'];
                             $review_info = $now . ': ' . $user_session->user_info['user_name'] . ' [修改]';
                             $overtimeData = $overtime->getData(null, $overtime_id);
                             $data['review_info'] = $overtimeData['review_info'] . '<br>' . $review_info;
                             $data['state'] = 0;
                             $data['review_time_1'] = null;
                             //$data['review_time_2'] = null;
                             $data['release_time'] = null;
                             try {
                                 $overtime->update($data, "id = " . $overtime_id);
                             } catch (Exception $e) {
                                 $result['success'] = false;
                                 $result['info'] = $e->getMessage();
                             }
                         }
                     }
                     $overtimeData = $overtime->getData(null, $overtime_id);
                     $review = new Dcc_Model_Review();
                     $user = new Application_Model_User();
                     $help = new Application_Model_Helpers();
                     // 记录审核日志:审核人1
                     $apply_user_info = $user->getEmployeeInfoById($request['apply_user']);
                     $review_user_1_info = $user->getEmployeeInfoById($request['review_user_1']);
                     $reviewData = array('type' => 'attendance_overtime', 'file_id' => $overtime_id, 'step_name' => '审核人1', 'plan_user' => $overtimeData['review_employee_1_id'], 'method' => 1, 'return' => 1);
                     $review->insert($reviewData);
                     // 如果存在审核人2记录审核日志:审核人2
                     /* if($request['review_user_2']){
                            $review_user_2_info = $user->getEmployeeInfoById($request['review_user_2']);
                            
                            $reviewData = array(
                                    'type'      => 'attendance_overtime',
                                    'file_id'   => $overtime_id,
                                    'step_name' => '审核人2',
                                    'plan_user' => $overtimeData['review_employee_2_id'],
                                    'method'    => 1,
                                    'return'    => 1
                            );
                            
                            $review->insert($reviewData);
                        } */
                     // 记录审核日志:人事主管
                     $member = new Admin_Model_Member();
                     $hraAdminUserArr = $member->getMemberWithNoManagerByName('人事主管');
                     $hraEmployeeIdArr = array();
                     foreach ($hraAdminUserArr as $hra) {
                         $hra_info = $user->getEmployeeInfoById($hra['user_id']);
                         array_push($hraEmployeeIdArr, $hra_info['id']);
                     }
                     $hraIds = implode(',', $hraEmployeeIdArr);
                     $reviewData = array('type' => 'attendance_overtime', 'file_id' => $overtime_id, 'step_name' => '人事审核', 'plan_user' => $hraIds, 'method' => 1, 'return' => 1);
                     $review->insert($reviewData);
                     // 向审核人1发送邮件
                     $mailContent = '<div>你有一个新的加班申请等待审核,请登录系统查看:</div>
                                     <div>
                                     <p><b>申请人:</b><a style="color:#008B00;font-weight: bold;">' . $overtimeData['apply_user_name'] . '</a></p>
                                     <p><b>加班时间:</b><a style="color:#008B00;font-weight: bold;">' . $overtimeData['time_from'] . '</a> 至 <a style="color:#008B00;font-weight: bold;">' . $overtimeData['time_to'] . '</a></p>
                                     <p><b>事由:</b>' . $overtimeData['reason'] . '</p>
                                     <p><b>备注:</b>' . $overtimeData['remark'] . '</p>
                                     <p><b>创建人:</b>' . $overtimeData['creater'] . '</p>
                                     <p><b>申请时间:</b>' . $overtimeData['create_time'] . '</p>
                                     <hr>
                                     <p><b>审核日志:</b></p><p>' . $data['review_info'] . '</p>
                                     </div>';
                     $mailData = array('type' => '消息', 'subject' => '加班申请-新申请', 'cc' => $user_session->user_info['user_email'], 'content' => $mailContent, 'add_date' => $now);
                     $result = $help->sendMailToStep(array($review_user_1_info['id']), $mailData);
                 } else {
                     $result['success'] = false;
                     $result['info'] = '申请失败,当前申请人未设置部门主管。';
                 }
             }
         } else {
             $result['success'] = false;
             $result['info'] = '时间设置错误,请确认时间范围是否正确。';
         }
     } else {
         if ($operate_type == 'delete') {
             if (isset($request['id']) && count(Zend_Json::decode($request['id'])) > 0) {
                 $ids = Zend_Json::decode($request['id']);
                 // 多条申请逐条删除
                 foreach ($ids as $id) {
                     try {
                         $review = new Dcc_Model_Review();
                         // 删除审核日志
                         $review->delete("type = 'attendance_overtime' and file_id = " . $id);
                         $overtime->delete("id = " . $id);
                     } catch (Exception $e) {
                         $result['success'] = false;
                         $result['info'] = $e->getMessage();
                     }
                 }
             } else {
                 $result['success'] = false;
                 $result['info'] = '参数错误,没有删除对象。';
             }
         } else {
             $result['success'] = false;
             $result['info'] = '参数错误,没有操作类别。';
         }
     }
     echo Zend_Json::encode($result);
     exit;
 }
示例#27
0
 /**
  * 获取员工列表
  */
 public function getemployeeAction()
 {
     // 请求参数
     $request = $this->getRequest()->getParams();
     $option = isset($request['option']) ? $request['option'] : 'list';
     $badgenumber = isset($request['badgenumber']) ? $request['badgenumber'] : 0;
     $employee = new Hra_Model_Employee();
     if ($option == 'list') {
         echo Zend_Json::encode($employee->getList($badgenumber));
     } else {
         // 查询条件
         $condition = array('active' => isset($request['active']) ? $request['active'] : 1, 'leader' => isset($request['leader']) ? $request['leader'] : 0, 'key' => isset($request['key']) && $request['key'] != 'undefined' ? $request['key'] : '', 'entry_date_from' => isset($request['entry_date_from']) ? $request['entry_date_from'] : '', 'entry_date_to' => isset($request['entry_date_to']) ? $request['entry_date_to'] : '', 'dept_id' => isset($request['dept_id']) ? $request['dept_id'] : '', 'employment_type' => isset($request['employment_type']) ? $request['employment_type'] : '', 'page' => isset($request['page']) ? $request['page'] : 1, 'limit' => isset($request['limit']) ? $request['limit'] : 0, 'type' => $option);
         $data = $employee->getData($condition);
         if ($option == 'csv') {
             $this->view->layout()->disableLayout();
             $this->_helper->viewRenderer->setNoRender(true);
             $h = new Application_Model_Helpers();
             $h->exportCsv($data, '员工数据');
         } else {
             echo Zend_Json::encode($data);
         }
     }
     exit;
 }