/** * 编辑采购申请(新建、更新、删除) */ public function editorderAction() { // 返回值数组 $result = array('success' => true, 'info' => '编辑成功', 'order_id' => 0, 'transfer_id' => 0); $request = $this->getRequest()->getParams(); $typeArr = array('new' => '新建', 'edit' => '修改', 'transfer' => '变更'); /* $result['success'] = false; echo '<pre>'; print_r($request); exit; */ // 操作类别(新建、更新、删除) $type = isset($request['operate']) ? $request['operate'] : ''; if ($type == 'new' || $type == 'edit' || $type == 'transfer') { $now = date('Y-m-d H:i:s'); $user_session = new Zend_Session_Namespace('user'); $user_id = $user_session->user_info['user_id']; $order = new Erp_Model_Purchse_Order(); $partner = new Erp_Model_Partner(); $setting = new Erp_Model_Setting_Currencyrate(); $price_tax = isset($request['price_tax']) ? $request['price_tax'] : null; $price_tax = $price_tax == 'on' ? 1 : 0; $tax = $partner->getTaxInfo($request['supplier_id']); $currency_rate = $setting->getCurrentRateByCode($request['currency']); $hand = 0; if (isset($request['hand']) && $request['hand'] == 'on') { $hand = 1; } $data = array('company' => $request['company'], 'currency' => $request['currency'], 'currency_rate' => $currency_rate, 'order_date' => $request['order_date'], 'buyer_id' => $request['buyer_id'], 'receiver_id' => $request['receiver_id'] != '' ? $request['receiver_id'] : null, 'customer_address_code' => $request['customer_address_code'] != '' ? $request['customer_address_code'] : null, 'request_date' => $request['request_date'], 'supplier_contact_id' => $request['supplier_contact_id'], 'supplier_id' => $request['supplier_id'], 'price_tax' => $price_tax, 'tax_id' => $tax['id'], 'tax_name' => $tax['name'], 'tax_rate' => $tax['rate'], 'tpl_id' => $request['tpl_id'], 'type_id' => $request['type_id'], 'settle_way' => $request['settle_way'], 'delvery_clause' => $request['delvery_clause'], 'remark' => $request['remark'], 'description' => $request['description'], 'manufacture' => $request['manufacture'], 'responsible' => $request['responsible'], '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 ($order->fetchAll("number = '" . $data['number'] . "'")->count() > 0) { $result['success'] = false; $result['info'] = "添加错误,订单号重复!"; echo Zend_Json::encode($result); exit; } } else { $data['hand'] = 0; $data['number'] = $order->getNewNum($request['type_id'], $request['company']); // 生成申订单号 } $data['create_time'] = $now; $data['create_user'] = $user_id; $data['review_info'] = $now . ': ' . $user_session->user_info['user_name'] . ' [' . $typeArr[$type] . ']'; try { $order_id = $result['order_id'] = $order->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] . ']'; $orderData = $order->getData(null, $request['id']); if ($request['type_id'] != $orderData['type_id']) { // 当类别发送改变时,生成订单号 $data['number'] = $order->getNewNum($request['type_id']); } $data['review_info'] = $orderData['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_Transferorderitems(); $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'] = 'order'; $transferData['target_id'] = $request['id']; $data['transfer_id'] = $result['transfer_id'] = $transfer->insert($transferData); } } $order->update($data, "id = " . $request['id']); $result['order_id'] = $request['id']; } catch (Exception $e) { $result['success'] = false; $result['info'] = $e->getMessage(); } } } elseif ($type == 'delete') { try { $order->delete("id = " . $request['req_id']); } catch (Exception $e) { $result['success'] = false; $result['info'] = $e->getMessage(); } } echo Zend_Json::encode($result); exit; }