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;
 }
Beispiel #2
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;
 }
Beispiel #3
0
 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);
     }
 }
Beispiel #4
0
 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);
     }
 }
Beispiel #5
0
    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;
    }