Example #1
0
 /**
  * 编辑采购申请(新建、更新、删除)
  */
 public function editreqAction()
 {
     // 返回值数组
     $result = array('success' => true, 'info' => '提交成功', 'req_id' => 0, 'transfer_id' => 0);
     $request = $this->getRequest()->getParams();
     $typeArr = array('new' => '新建', 'edit' => '修改', 'transfer' => '变更');
     // 操作类别(新建、更新、删除)
     $type = isset($request['operate']) ? $request['operate'] : '';
     $now = date('Y-m-d H:i:s');
     $user_session = new Zend_Session_Namespace('user');
     $user_id = $user_session->user_info['user_id'];
     $req = new Erp_Model_Purchse_Req();
     if ($type == 'new' || $type == 'edit' || $type == 'transfer') {
         $hand = 0;
         if (isset($request['hand']) && $request['hand'] == 'on') {
             $hand = 1;
         }
         $data = array('dept_id' => $request['dept_id'], 'apply_user' => $request['apply_user'], 'type_id' => $request['type_id'], 'remark' => $request['remark'], 'reason' => $request['reason'], 'update_time' => $now, 'update_user' => $user_id);
         if ($type == 'new') {
             if ($hand) {
                 $data['state'] = 2;
                 $data['hand'] = 1;
                 $data['number'] = $request['hand_number'];
                 $data['review_info'] = date('Y-m-d H:i:s') . ' 补单<br>';
                 if ($req->fetchAll("number = '" . $data['number'] . "'")->count() > 0) {
                     $result['success'] = false;
                     $result['info'] = "添加错误,申请单号重复!";
                     echo Zend_Json::encode($result);
                     exit;
                 }
             } else {
                 $data['hand'] = 0;
                 $data['number'] = $req->getNewNum($request['type_id']);
                 // 生成申订单号
             }
             $data['create_time'] = $now;
             $data['create_user'] = $user_id;
             $data['review_info'] = $now . ': ' . $user_session->user_info['user_name'] . ' [' . $typeArr[$type] . ']';
             try {
                 $req_id = $result['req_id'] = $req->insert($data);
             } catch (Exception $e) {
                 $result['success'] = false;
                 $result['info'] = $e->getMessage();
             }
         } elseif ($type == 'edit' || $type == 'transfer') {
             try {
                 $review_info = $now . ': ' . $user_session->user_info['user_name'] . ' [' . $typeArr[$type] . ']';
                 $reqData = $req->getData(null, $request['id']);
                 if ($request['type_id'] != $reqData['type_id']) {
                     // 当类别发送改变时,生成申请单号
                     $data['number'] = $req->getNewNum($request['type_id']);
                 }
                 $data['review_info'] = $reqData['review_info'] . '<br>' . $review_info;
                 $data['state'] = 0;
                 if ($type == 'transfer') {
                     $transfer = new Erp_Model_Purchse_Transfer();
                     $transferData = array('transfer_type' => $request['transfer_type'], 'transfer_description' => $request['transfer_description'], 'create_user' => $user_id, 'create_time' => $now);
                     $data['submit_type'] = 'transfer';
                     // 修改变更时,先清空被拒绝的修改内容列表
                     if ($request['transfer_id'] != '') {
                         $transfer_items = new Erp_Model_Purchse_Transferreqitems();
                         $transfer_items->delete("transfer_id = " . $request['transfer_id']);
                         $transferData['state'] = 0;
                         $transfer->update($transferData, "id = " . $request['transfer_id']);
                         $data['transfer_id'] = $result['transfer_id'] = $request['transfer_id'];
                     } else {
                         $transferData['type'] = 'req';
                         $transferData['target_id'] = $request['id'];
                         $data['transfer_id'] = $result['transfer_id'] = $transfer->insert($transferData);
                     }
                 }
                 $req->update($data, "id = " . $request['id']);
                 $result['req_id'] = $request['id'];
             } catch (Exception $e) {
                 $result['success'] = false;
                 $result['info'] = $e->getMessage();
             }
         }
     } elseif ($type == 'delete') {
         try {
             $req->delete("id = " . $request['req_id']);
         } catch (Exception $e) {
             $result['success'] = false;
             $result['info'] = $e->getMessage();
         }
     }
     echo Zend_Json::encode($result);
     exit;
 }