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){ ini_set('max_execution_time',2500); ini_set('memory_limit','1526M'); 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(); } }