| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149 |
- <?php
- namespace App\Http\Controllers;
- use App\Owner;
- use App\Services\AllInventoryService;
- use App\Services\InventoryDailyLogService;
- use App\Services\InventoryService;
- use App\Services\OwnerService;
- use Illuminate\Http\Request;
- use Illuminate\Support\Facades\DB;
- use Illuminate\Support\Facades\Gate;
- use Oursdreams\Export\Export;
- class InventoryController extends Controller
- {
- public function __construct()
- {
- app()->singleton('inventoryService',InventoryService::class);
- app()->singleton('AllInventoryService',AllInventoryService::class);
- }
- //动库报表
- public function changeInventory(Request $request){
- if(!Gate::allows("库存管理-库存")){ return redirect(url('/')); }
- $oracleActTransactingLogs=app('inventoryService')->paginate($request->input());
- $oracleActTransactingLogs=json_encode($oracleActTransactingLogs);
- $owners = app("OwnerService")->getIntersectPermitting(["code", "name"]);
- $isTotalStock=false;
- $page = $request->page ?? 1;
- return view('inventory.statement.changeInventory',compact('oracleActTransactingLogs','page','owners','isTotalStock'));
- }
- //全部库存
- public function allInventory(Request $request){
- if(!Gate::allows("库存管理-库存")){ return redirect(url('/')); }
- /** @var AllInventoryService $service */
- $service = app('AllInventoryService');
- $oracleActTransactingLogs= $service->paginate($request->input());
- $oracleActTransactingLogs=json_encode($oracleActTransactingLogs);
- $owners = app("OwnerService")->getIntersectPermitting(["code", "name"]);
- $isTotalStock=true;
- $page = $request->page ?? 1;
- return view('inventory.statement.changeInventory',compact('oracleActTransactingLogs','page','owners','isTotalStock'));
- }
- public function exportData(Request $request){
- if(!Gate::allows("库存管理-库存")){ return redirect(url('/')); }
- if ($request->checkAllSign){
- $params = $request->input();
- unset($params['checkAllSign']);
- $sql=app('inventoryService')->getSql($request->input());
- $e = new Export();
- $e->setOracleConnection(config('database.connections.oracle.host'),
- config('database.connections.oracle.port'),config('database.connections.oracle.database')
- ,config('database.connections.oracle.username'),config('database.connections.oracle.password'));
- $e->setFileName("动库报表");
- return $e->sql($sql,[
- "货主"=>"货主","库位"=>"库位",
- "产品编码"=>"产品编码","产品条码"=>"产品条码",
- "商品名称"=>"商品名称","属性仓"=>"属性仓",
- "质量状态"=>"质量状态","失效日期"=>"失效日期",
- "批号"=>"批号","移出数量"=>"移出数量","移入数量"=>"移入数量"
- ])->direct();
- }else return "暂时关闭,如需开启请联系管理员";
- }
- public function exportAllInventory(Request $request){
- if(!Gate::allows("库存管理-库存")){ return view("denied"); }
- if ($request->checkAllSign){
- $params = $request->input();
- unset($params['checkAllSign']);
- $sql=app('AllInventoryService')->getSql($request->input());
- $result = DB::connection("oracle")->select($sql);
- $row = [
- "货主","库位", "产品编码","产品条码",
- "商品名称","属性仓", "质量状态","失效日期", "批号","在库数量","占用数量"
- ];
- $list = [];
- foreach ($result as $item) {
- $list[] = [
- $item->货主,
- $item->库位,
- $item->产品编码,
- $item->产品条码,
- $item->商品名称,
- $item->属性仓,
- $item->质量状态,
- $item->失效日期,
- $item->批号,
- $item->在库数量,
- $item->占用数量
- ];
- }
- return Export::make($row, $list, "库存报表记录");
- }else return "暂时关闭,如需开启请联系管理员";
- }
- /*
- * 库存体积
- */
- function dailyLog(Request $request,OwnerService $ownerService){
- if (!Gate::allows('库存管理-库存体积')){return redirect(url('/')); }
- /** @var InventoryDailyLogService*/
- $inventoryDailyLogs = app('InventoryDailyLogService')->paginate($request->input());
- $owners = $ownerService->getIntersectPermitting();
- $param = $request->input();
- return view('inventory.statement.dailyLog',compact('inventoryDailyLogs','owners','param'));
- }
- //获取记录监听货主
- function getLoggingOwner(){
- $loggingOwners = app('InventoryDailyLogService')->getInventoryDailyLoggingOwner('owner_id');
- return array_column($loggingOwners->toArray(),'owner_id');
- }
- //添加记录监听货主
- function addLoggingOwner(Request $request){
- if (!Gate::allows('库存管理-库存体积-管理监听货主')){return redirect(url('/')); }
- $owner_id = $request->owner_id;
- if (!$owner_id || !is_numeric($owner_id))return ['success'=>false,'data'=>'传递参数错误!'];
- $loggingOwner = app('InventoryDailyLogService')->firstOrCreate(['owner_id'=>$owner_id]);
- if (!$loggingOwner)return ['success'=>false,'data'=>'录入失败!'];
- return ['success'=>true,'data'=>$loggingOwner->owner_id];
- }
- //导出库存体积记录
- public function exportDailyLog(Request $request){
- if (!Gate::allows('库存管理-库存体积')){return redirect(url('/')); }
- if ($request->checkAllSign){
- $params = $request->input();
- unset($params['checkAllSign']);
- $sql=app('InventoryDailyLogService')->getSql($params);
- }else $sql=app('InventoryDailyLogService')->getSql(['id'=>$request->data]);
- $rule = ["created_at"=> "mysqlDate"];
- $e = new Export();
- $e->setMysqlConnection(config('database.connections.mysql.host'),
- config('database.connections.mysql.port'),config('database.connections.mysql.database')
- ,config('database.connections.mysql.username'),config('database.connections.mysql.password'));
- $e->setFileName("库存体积");
- return $e->sql($sql,[
- "owner_name"=>"货主","created_at"=>"日期",
- "commodity_name"=>"商品名称","commodity_sku"=>"商品编码",
- "commodity_barcode_code"=>"商品条码","depository_name"=>"属性仓",
- "amount"=>"在库数量","commodity_length"=>"长",
- "commodity_width"=>"宽","commodity_height"=>"高",
- "commodity_volumn"=>"体积","volumn_occupied"=>"总占用体积",
- "gross_weight"=>"总毛重"
- ],$rule)->direct();
- }
- }
|