gdoo/app/Gdoo/Stock/Controllers/ReportController.php

169 lines
6.7 KiB
PHP

<?php namespace Gdoo\Stock\Controllers;
use DB;
use Request;
use Auth;
use Validator;
use Gdoo\Model\Form;
use Gdoo\Model\Grid;
use Gdoo\User\Models\User;
use Gdoo\Produce\Models\Plan;
use Gdoo\Produce\Models\Formula;
use Gdoo\Stock\Services\StockService;
use Gdoo\Index\Controllers\DefaultController;
class ReportController extends DefaultController
{
public $permission = [];
// 库存明细表
public function stockDetail()
{
$sdate = date('Y-m-01');
$edate = date('Y-m-d');
$search = search_form([
'advanced' => 0,
], [
['form_type' => 'dialog', 'name' => '仓库', 'field' => 'warehouse_id', 'options' => ['url' => 'stock/warehouse/dialog', 'query' => ['multi'=>0]]],
['form_type' => 'dialog', 'name' => '产品', 'field' => 'product_id', 'options' => ['url' => 'product/product/dialog', 'query' => ['multi'=>0]]],
['form_type' => 'text', 'name' => '批号', 'field' => 'batch_sn', 'options' => []],
['form_type' => 'select', 'name' => '内销/外销', 'field' => 'type', 'options' => [['id'=>'内销','name'=>'内销'],['id'=>'外销','name'=>'外销']]],
//['form_type' => 'select', 'name' => '是否统计批号', 'field' => 'batch', 'value' => 0, 'options' => [['id'=>1,'name'=>'是'],['id'=>0,'name'=>'否']]],
['form_type' => 'date2', 'name' => '单据日期', 'field' => 'date', 'value' => [$sdate, $edate], 'options' => []],
], 'model');
$query = $search['query'];
if (Request::method() == 'POST') {
$fields = [];
foreach($search['forms']['field'] as $i => $field) {
$fields[$field] = $search['forms']['search'][$i];
}
$rows = [];
if ($query['filter'] == 1) {
$rows = StockService::reportOrderStockDetail(
$fields['warehouse_id'],
$fields['product_id'],
$fields['batch_sn'],
$fields['type'],
$fields['date'][0],
$fields['date'][1],
auth()->id(),
$fields['bmj']
);
$QmNum = 0;
foreach($rows as $i => $row) {
if ($row['bill_name'] == '期初') {
$QmNum = (float)$row['qm_num'];
} else {
$QmNum = ((float)$row['rk_num'] - (float)$row['ck_num']) + $QmNum;
}
$row['qm_num'] = $QmNum;
$row['id'] = $i + 1;
$rows[$i] = $row;
}
}
return $this->json($rows, true);
}
$search['table'] = 'material_plan';
return $this->display([
'search' => $search,
'query' => $query,
]);
}
// 库存汇总表
public function stockTotal()
{
$search = search_form([
'advanced' => 0,
], [
['form_type' => 'dialog', 'name' => '仓库', 'field' => 'warehouse_id', 'options' => ['url' => 'stock/warehouse/dialog', 'query' => ['multi'=>0]]],
['form_type' => 'text', 'name' => '存货编码', 'field' => 'product_code', 'options' => []],
['form_type' => 'select', 'name' => '内销/外销', 'field' => 'type', 'options' => [['id'=>'1','name'=>'内销'],['id'=>'2','name'=>'外销']]],
['form_type' => 'date2', 'name' => '生产日期', 'field' => 'date', 'value' => [], 'options' => []],
['form_type' => 'select', 'name' => '统计批号', 'field' => 'batch', 'value' => 1, 'options' => [['id'=>1,'name'=>'是'],['id'=>0,'name'=>'否']]],
], 'model');
$query = $search['query'];
if (Request::method() == 'POST') {
$fields = [];
foreach($search['forms']['field'] as $i => $field) {
$fields[$field] = $search['forms']['search'][$i];
}
$rows = [];
if ($query['filter'] == 1) {
$rows = StockService::reportOrderStockTotal(
$fields['warehouse_id'],
$fields['product_code'],
$fields['type'],
$fields['date'][0],
$fields['date'][1],
auth()->id(),
$fields['batch'],
$fields['bmj']
);
}
return $this->json($rows, true);
}
$search['table'] = 'material_plan';
return $this->display([
'search' => $search,
'query' => $query,
]);
}
// 进销存库存汇总表
public function stockInOut()
{
$sdate = date('Y-m-01');
$edate = date('Y-m-d');
$search = search_form([
'advanced' => 0,
], [
['form_type' => 'dialog', 'name' => '仓库', 'field' => 'warehouse_id', 'options' => ['url' => 'stock/warehouse/dialog', 'query' => ['multi'=>0]]],
['form_type' => 'dialog', 'name' => '产品', 'field' => 'product_id', 'options' => ['url' => 'product/product/dialog', 'query' => ['multi'=>0]]],
['form_type' => 'text', 'name' => '批号', 'field' => 'batch_sn', 'options' => []],
['form_type' => 'select', 'name' => '内销/外销', 'field' => 'type', 'options' => [['id'=>'内销','name'=>'内销'],['id'=>'外销','name'=>'外销']]],
['form_type' => 'select', 'name' => '统计批号', 'field' => 'batch', 'value' => 0, 'options' => [['id'=>1,'name'=>'是'],['id'=>0,'name'=>'否']]],
['form_type' => 'date2', 'name' => '单据日期', 'field' => 'date', 'value' => [$sdate, $edate], 'options' => []],
], 'model');
$query = $search['query'];
if (Request::method() == 'POST') {
$fields = [];
foreach($search['forms']['field'] as $i => $field) {
$fields[$field] = $search['forms']['search'][$i];
}
$rows = [];
if ($query['filter'] == 1) {
$rows = StockService::reportOrderStockInOut(
$fields['warehouse_id'],
$fields['product_id'],
$fields['batch_sn'],
$fields['type'],
$fields['date'][0],
$fields['date'][1],
auth()->id(),
$fields['batch'],
$fields['bmj']
);
}
return $this->json($rows, true);
}
$search['table'] = 'material_plan';
return $this->display([
'search' => $search,
'query' => $query,
]);
}
}