{{-- resources/views/panel/invoice_edit.blade.php --}} @extends('panel.master') @section('t') ویرایش فاکتور @stop @section('content') @php use Illuminate\Support\Facades\DB; // --- دریافت دسترسیها (مثل صفحهٔ ثبت) --- $B10 = $B13 = $B14 = $B15 = $B16 = $B17 = $B18 = $B0 = $B2 = "off"; $modirpanel = session()->get('modirpanel'); $Status = session()->get('Status'); if ($Status == "clerk") { $accesslevels = DB::select("select * from accesslevels WHERE PhoneMonshis = ?", [$modirpanel]); foreach ($accesslevels as $value0) { $B16 = $value0->B16; $B0 = $value0->B0; $B2 = $value0->B2; } } // --- آمادهسازی های قبلی (شبیه صفحهٔ ثبت) --- $IdUser= session()->get('IdUser'); $idanbars = session()->get('IdAnbar'); $IdForsatForoshestwos = session()->get('IdForsatForoshestwos') ?: request()->get('IdForsatForoshestwos'); $forsatforoshtwosts = DB::select("select * from forsatforoshtwos WHERE IdForsatForoshestwos='$IdForsatForoshestwos'"); foreach ($forsatforoshtwosts as $val){ $StatusFactorUser=$val->Status; $Idpricetype=$val->Ghimat; $StatusFactor=$val->StatusFactor; } $pricetypes = DB::table('pricetypes')->where('Idpricetype', $Idpricetype) ->get(); foreach($pricetypes as $val){ $namkhimat=$val->Parent.'/'.$val->Name; $columns=$val->columns; } if(empty($namkhimat)){$namkhimat="بدون تایپ قیمتی";} if(empty($columns)){ $columns='prises';} $today = date('Y-m-d'); $today = jdate($today)->format('Y-m-d'); $NameCategury[0] = "0"; $accesslevelcateguris = DB::table('accesslevelcateguris') ->join('categuris','accesslevelcateguris.IdCategury','=','categuris.IdCategury') ->where('accesslevelcateguris.IdUser',$IdUser)->get(); foreach($accesslevelcateguris as $val){ $NameCategury[] = $val->NameCategury; } // گرفتن لیست خریداران و کاربران ثبتکننده (مثل ثبت) $IdForsatForoshes = session()->get('IdForsatForoshes'); if (!empty($IdForsatForoshes)) { $forsatforoshes = DB::table('forsatforoshes')->where('IdForsatForoshes', $IdForsatForoshes)->get(); } else { $ss = ['me','Major','shreds']; $forsatforoshes = DB::table('forsatforoshes')->whereIn('Status', $ss)->get(); } // آمادهسازی لیست کالاها (anbarkalas, anbarkalas2, anbarkalas3) - دقیقاً مثل صفحهٔ ثبت if(count($idanbars) == 1){ $anbarkalas2 = DB::table('anbarkalas')->where('Mojudi','!=','0')->where('anbarkalas.IdAnbar',$idanbars) ->join('sellproductforsats','anbarkalas.IdAnbarKala','=','sellproductforsats.IdAnbarKala') ->join('forsatforoshtwos','sellproductforsats.IdForsatForoshestwos','=','forsatforoshtwos.IdForsatForoshestwos') ->where('forsatforoshtwos.Status','پیش فاکتور') ->join('sabtkalas','anbarkalas.CodeKala','=','sabtkalas.CodeKala')->wherenull('sabtkalas.Status') ->join('anbars','anbarkalas.IdAnbar','=','anbars.IdAnbar')->wherenotin('sabtkalas.categury',$NameCategury) ->select('sabtkalas.*','anbarkalas.IdAnbarKala','anbarkalas.Mojudi','anbars.NameAnbar',DB::raw('(sum(sellproductforsats.NumberProduct)) as total'),DB::raw('((anbarkalas.Mojudi-sellproductforsats.NumberProduct)) as total2')) ->groupBy('anbarkalas.IdAnbarKala')->get(); $limIdAnbarKala = []; foreach($anbarkalas2 as $anbarkal){ $limIdAnbarKala[] = $anbarkal->IdAnbarKala; } if(!empty($limIdAnbarKala) && count($limIdAnbarKala) > 1){ $anbarkalas3 = DB::table('anbarkalas')->whereNotIn('IdAnbarKala',$limIdAnbarKala) ->where('Mojudi','!=','0')->where('anbarkalas.IdAnbar',$idanbars) ->join('sabtkalas','anbarkalas.CodeKala','=','sabtkalas.CodeKala')->whereNotIn('sabtkalas.categury',$NameCategury)->whereNotNull('sabtkalas.Status') ->join('anbars','anbarkalas.IdAnbar','=','anbars.IdAnbar') ->select('sabtkalas.*','anbarkalas.IdAnbarKala','anbarkalas.Mojudi','anbars.NameAnbar')->get(); $anbarkalas = DB::table('anbarkalas')->whereNotIn('IdAnbarKala',$limIdAnbarKala) ->where('Mojudi','!=','0')->where('anbarkalas.IdAnbar',$idanbars) ->join('sabtkalas','anbarkalas.CodeKala','=','sabtkalas.CodeKala')->whereNotIn('sabtkalas.categury',$NameCategury)->wherenull('sabtkalas.Status') ->join('anbars','anbarkalas.IdAnbar','=','anbars.IdAnbar') ->select('sabtkalas.*','anbarkalas.IdAnbarKala','anbarkalas.Mojudi','anbars.NameAnbar')->get(); } else { $anbarkalas3 = DB::table('anbarkalas')->where('Mojudi','!=','0')->where('anbarkalas.IdAnbar',$idanbars) ->join('sabtkalas','anbarkalas.CodeKala','=','sabtkalas.CodeKala')->whereNotNull('sabtkalas.Status') ->join('anbars','anbarkalas.IdAnbar','=','anbars.IdAnbar')->whereNotIn('sabtkalas.categury',$NameCategury) ->select('sabtkalas.*','anbarkalas.IdAnbarKala','anbarkalas.Mojudi','anbars.NameAnbar')->get(); $anbarkalas = DB::table('anbarkalas')->where('Mojudi','!=','0')->where('anbarkalas.IdAnbar',$idanbars) ->join('sabtkalas','anbarkalas.CodeKala','=','sabtkalas.CodeKala')->whereNull('sabtkalas.Status') ->join('anbars','anbarkalas.IdAnbar','=','anbars.IdAnbar')->whereNotIn('sabtkalas.categury',$NameCategury) ->select('sabtkalas.*','anbarkalas.IdAnbarKala','anbarkalas.Mojudi','anbars.NameAnbar')->get(); } } else { // حالت چند انبار (معادل بالا برای whereIn) $anbarkalas2 = DB::table('anbarkalas')->where('Mojudi','!=','0')->whereIn('anbarkalas.IdAnbar',$idanbars) ->join('sellproductforsats','anbarkalas.IdAnbarKala','=','sellproductforsats.IdAnbarKala') ->join('forsatforoshtwos','sellproductforsats.IdForsatForoshestwos','=','forsatforoshtwos.IdForsatForoshestwos') ->where('forsatforoshtwos.Status','پیش فاکتور') ->join('sabtkalas','anbarkalas.CodeKala','=','sabtkalas.CodeKala')->wherenull('sabtkalas.Status') ->join('anbars','anbarkalas.IdAnbar','=','anbars.IdAnbar')->wherenotin('sabtkalas.categury',$NameCategury) ->select('sabtkalas.*','anbarkalas.IdAnbarKala','anbarkalas.Mojudi','anbars.NameAnbar',DB::raw('(sum(sellproductforsats.NumberProduct)) as total')) ->groupBy('anbarkalas.IdAnbarKala')->get(); $limIdAnbarKala = []; foreach($anbarkalas2 as $anbarkal){ $limIdAnbarKala[] = $anbarkal->IdAnbarKala; } if(!empty($limIdAnbarKala) && count($limIdAnbarKala) > 1){ $anbarkalas3 = DB::table('anbarkalas')->whereNotIn('IdAnbarKala',$limIdAnbarKala)->where('Mojudi','!=','0')->whereIn('anbarkalas.IdAnbar',$idanbars) ->join('sabtkalas','anbarkalas.CodeKala','=','sabtkalas.CodeKala')->whereNotNull('sabtkalas.Status') ->join('anbars','anbarkalas.IdAnbar','=','anbars.IdAnbar')->whereNotIn('sabtkalas.categury',$NameCategury) ->select('sabtkalas.*','anbarkalas.IdAnbarKala','anbarkalas.Mojudi','anbars.NameAnbar')->get(); $anbarkalas = DB::table('anbarkalas')->whereNotIn('IdAnbarKala',$limIdAnbarKala)->where('Mojudi','!=','0')->whereIn('anbarkalas.IdAnbar',$idanbars) ->join('sabtkalas','anbarkalas.CodeKala','=','sabtkalas.CodeKala')->whereNull('sabtkalas.Status') ->join('anbars','anbarkalas.IdAnbar','=','anbars.IdAnbar')->whereNotIn('sabtkalas.categury',$NameCategury) ->select('sabtkalas.*','anbarkalas.IdAnbarKala','anbarkalas.Mojudi','anbars.NameAnbar')->get(); } else { $anbarkalas3 = DB::table('anbarkalas')->where('Mojudi','!=','0')->whereIn('anbarkalas.IdAnbar',$idanbars) ->join('sabtkalas','anbarkalas.CodeKala','=','sabtkalas.CodeKala')->whereNotNull('sabtkalas.Status') ->join('anbars','anbarkalas.IdAnbar','=','anbars.IdAnbar')->whereNotIn('sabtkalas.categury',$NameCategury) ->select('sabtkalas.*','anbarkalas.IdAnbarKala','anbarkalas.Mojudi','anbars.NameAnbar')->get(); $anbarkalas = DB::table('anbarkalas')->where('Mojudi','!=','0')->whereIn('anbarkalas.IdAnbar',$idanbars) ->join('sabtkalas','anbarkalas.CodeKala','=','sabtkalas.CodeKala')->whereNull('sabtkalas.Status') ->join('anbars','anbarkalas.IdAnbar','=','anbars.IdAnbar')->whereNotIn('sabtkalas.categury',$NameCategury) ->select('sabtkalas.*','anbarkalas.IdAnbarKala','anbarkalas.Mojudi','anbars.NameAnbar')->get(); } } // --- گرفتن آیتمهای فاکتور برای ویرایش --- $sellproducts = []; if (!empty($IdForsatForoshestwos)) { $sellproducts = DB::table('sellproductforsats') ->where('IdForsatForoshestwos', $IdForsatForoshestwos) ->join('anbarkalas','sellproductforsats.IdAnbarKala','=','anbarkalas.IdAnbarKala') ->join('sabtkalas','anbarkalas.CodeKala','=','sabtkalas.CodeKala') ->join('anbars','anbarkalas.IdAnbar','=','anbars.IdAnbar') ->select( 'sellproductforsats.*', 'sabtkalas.NameKala', 'sabtkalas.CodeKala', 'sabtkalas.Photo2', 'anbarkalas.Mojudi', 'sabtkalas.Cbm1Ctn', 'sabtkalas.Vazn', 'sabtkalas.TedadCtn', 'anbarkalas.IdAnbarKala', 'anbars.NameAnbar' )->get(); } @endphp @foreach($forsatforoshtwos2 as $value111) @endforeach