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; }
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; }
public function saveSplitItem($splitData) { if ($splitData['items_order_id']) { $items = new Erp_Model_Purchse_Receiveitems(); $itemsorder = new Erp_Model_Purchse_Receiveitemsorder(); $stock = new Erp_Model_Stock_Stock(); // 更新是先清空之前所保存的收货数据分拆信息 $itemsorder->delete("receive_item_id = " . $splitData['receive_item_id']); $now = date('Y-m-d H:i:s'); $user_session = new Zend_Session_Namespace('user'); $user_id = $user_session->user_info['user_id']; $qty = 0 - $splitData['items_qty']; $price = $splitData['items_price']; $total = round($price * $qty, 2); $lineTotal = round(0 - $total, 2); $data = array('receive_item_id' => $splitData['receive_item_id'], 'order_item_id' => $splitData['items_order_item_id'], 'qty' => $qty, 'price' => $price, 'total' => $lineTotal, 'order_id' => $splitData['items_order_id'], 'order_number' => $splitData['items_order_number'], 'code' => $splitData['items_code'], 'type' => '采购退货', 'create_user' => $user_id, 'create_time' => $now); $itemsorder->insert($data); // 更新行总计 $items->update(array('total' => $lineTotal), "id = " . $splitData['receive_item_id']); // 记录库存数据 $stockData = array('code' => $splitData['items_code'], 'warehouse_code' => $splitData['items_warehouse_code'], 'qty' => $qty, 'total' => $total, 'create_user' => $user_id, 'create_time' => $now, 'doc_type' => '采购退货', 'doc_number' => $splitData['return_number']); $stock->insert($stockData); } }
public function saveItemDetails($splitData) { if ($splitData['items_order_item_id']) { $items = new Erp_Model_Purchse_Receiveitems(); $itemsorder = new Erp_Model_Purchse_Receiveitemsorder(); $rate = new Erp_Model_Setting_Currencyrate(); $stock = new Erp_Model_Stock_Stock(); // 更新是先清空之前所保存的收货数据分拆信息 $itemsorder->delete("receive_item_id = " . $splitData['receive_item_id']); $now = date('Y-m-d H:i:s'); $user_session = new Zend_Session_Namespace('user'); $user_id = $user_session->user_info['user_id']; // 转换币种价格,按本币价格入库 $price = round($splitData['items_price'] * $rate->getRateByCode($splitData['items_order_currency'], $splitData['items_order_date']), 2); $total = round($price * $splitData['items_qty'], 2); $data = array('receive_item_id' => $splitData['receive_item_id'], 'order_item_id' => $splitData['items_order_item_id'], 'qty' => $splitData['items_qty'], 'price' => $price, 'total' => $total, 'order_id' => $splitData['items_order_id'], 'order_number' => $splitData['items_order_number'], 'code' => $splitData['items_code'], 'create_user' => $user_id, 'create_time' => $now); $itemsorder->insert($data); // 更新行总计 $items->update(array('total' => $total), "id = " . $splitData['receive_item_id']); // 记录库存数据 $stockData = array('code' => $splitData['items_code'], 'warehouse_code' => $splitData['items_warehouse_code'], 'qty' => $splitData['items_qty'], 'total' => $total, 'create_user' => $user_id, 'create_time' => $now, 'doc_type' => '采购收货', 'doc_number' => $splitData['receive_number']); $stock->insert($stockData); } }
public function edititemsAction() { // 返回值数组 $result = array('success' => true, 'info' => '编辑成功'); $request = $this->getRequest()->getParams(); $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']); $receive_id = $json->outstock_id; $json_items = $json->items; $items_updated = $json_items->updated; $items_inserted = $json_items->inserted; $items_deleted = $json_items->deleted; $receive = new Erp_Model_Stock_receive(); $items = new Erp_Model_Purchse_Receiveitems(); $stock = new Erp_Model_Stock_Stock(); $receiveData = $receive->getData(null, $receive_id, '发货'); // 更新 if (count($items_updated) > 0) { foreach ($items_updated as $val) { $data = array('code' => $val->items_code, 'name' => $val->items_name, 'description' => $val->items_description, 'qty' => $val->items_qty, 'unit' => $val->items_unit, 'warehouse_code' => $val->items_warehouse_code, 'remark' => $val->items_remark, 'update_user' => $user_id, 'update_time' => $now); try { $items->update($data, "id = " . $val->items_id); } 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) { $total = round($val->items_qty * $val->items_price, 2); $data = array('receive_id' => $receive_id, 'code' => $val->items_code, 'name' => $val->items_name, 'description' => $val->items_description, 'qty' => $val->items_qty, 'price' => $val->items_price, 'total' => $total, 'unit' => $val->items_unit, 'warehouse_code' => $val->items_warehouse_code, 'remark' => $val->items_remark, 'create_user' => $user_id, 'create_time' => $now, 'update_user' => $user_id, 'update_time' => $now); try { $receive_item_id = $items->insert($data); $qty = round(0 - $val->items_qty, 4); $total = round(0 - $total, 2); // 记录库存数据 $stockData = array('code' => $val->items_code, 'warehouse_code' => $val->items_warehouse_code, 'qty' => $qty, 'total' => $total, 'create_user' => $user_id, 'create_time' => $now, 'doc_type' => '发货', 'transaction_type' => $receiveData['transaction_type'], 'doc_number' => $receiveData['number']); $stock->insert($stockData); } catch (Exception $e) { $result['success'] = false; $result['info'] = $e->getMessage(); echo Zend_Json::encode($result); exit; } } } // 更新总计 $items->refreshReceiveTotal($receive_id); if ($result['success']) { $member = new Admin_Model_Member(); $noticeMails = array(); $noticeUsers = array(); $noticeTo = $member->getMemberWithManagerByName('通知-库存交易-发货'); foreach ($noticeTo as $n) { if ($n['email'] != '' && !in_array($n['user_id'], $noticeUsers)) { array_push($noticeMails, $n['email']); array_push($noticeUsers, $n['user_id']); } } if (count($noticeMails)) { $warehouse = new Erp_Model_Warehouse_Warehouse(); $title = '库存交易-发货-' . $receiveData['transaction_type']; $mailContent = '<div><b>' . $title . '</b>,请登录系统查看:</div> <div> <p><b>单据号:</b>' . $receiveData['number'] . '</p> <p><b>制单员:</b>' . $user_session->user_info['user_name'] . '</p> <p><b>描述:</b>' . $receiveData['description'] . '</p> <p><b>备注:</b>' . $receiveData['remark'] . '</p> <p><b>时间:</b>' . $receiveData['create_time'] . '</p> </div><hr>'; $mailContent .= '<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> </tr>'; $itemsData = $items->getData($receive_id); $i = 0; foreach ($itemsData as $d) { $i++; $warehouseData = $warehouse->getInfoByCode($d['items_warehouse_code']); $warehouseInfo = $warehouseData["code"]; if (isset($warehouseData["name"])) { $warehouseInfo = $warehouseData["code"] . ' ' . $warehouseData["name"]; } $mailContent .= '<tr> <td>' . $i . '</td> <td>' . $d['items_code'] . '</td> <td>' . $d['items_name'] . '</td> <td>' . $d['items_description'] . '</td> <td>' . $d['items_qty'] . '</td> <td>' . $d['items_unit'] . '</td> <td>' . $warehouseInfo . '</td> <td>' . $d['items_remark'] . '</td> </tr>'; } $mailContent .= '</table></div><hr>'; $mailData = array('type' => '通知', 'subject' => $title, 'cc' => $user_session->user_info['user_email'], 'content' => $mailContent, 'add_date' => $now, 'to' => implode(',', $noticeMails), 'user_id' => $user_id); try { // 记录邮件日志并发送邮件 $mail = new Application_Model_Log_Mail(); $mail->send($mail->insert($mailData)); } catch (Exception $e) { $result['success'] = false; $result['info'] = $e->getMessage(); } } } echo Zend_Json::encode($result); exit; }