ReportManageController.php
unknown
php_laravel_blade
2 years ago
42 kB
6
Indexable
public function getPembelian() { $supply = Supply::whereDate('created_at', Carbon::today()) ->select('supplies.kode_pasok') ->where('status', 'lunas') ->orderBy('created_at', 'desc') ->get(); $jumlah = count($supply); // =============================================================================== $array = []; foreach ($supply as $no => $supp) { array_push($array, $supp->kode_pasok); } $uniq = array_unique($array); $pembelian = array_values($uniq); // =============================================================================== $pasok = Supply::select('supplies.*', 'products.status_pajak') ->join('products', 'supplies.kode_barang', '=', 'products.kode_barang') ->whereDate('supplies.created_at', Carbon::today()) ->where('supplies.status', 'lunas') ->orderBy('supplies.created_at', 'desc') ->get(); $pasok = $pasok->sortBy('created_at'); $pasok = $pasok->values()->all(); // ===================================== Jumlah Stok ========================================== $dos = 0; $pack = 0; $harga_dos = 0; $harga_pack = 0; $harga_total = 0; foreach ($pasok as $key => $value) { $pp = Product::where('kode_barang', $value->kode_barang)->first(); if(strtolower($value->jenis_kemasan) == 'pack'){ $pack += $value->jumlah; $harga_pack += $value->subtotal; }else{ $dos += $value->jumlah / $pp->pack; $harga_dos += $value->subtotal; } $harga_total += $value->subtotal; } $jumlah_dos = (int) $dos ; $jumlah_pack = (int) $pack ; // ==================================== ganti data transaksi =========================================== array_walk($pasok, function(&$item, $key) { $product = Product::where('kode_barang', $item->kode_barang)->first(); if(strtolower($item->jenis_kemasan) == 'pack'){ $item->jumlah = $item->jumlah .' '. $item->jenis_kemasan; }else{ $item->jumlah = (int) $item->jumlah / $product->pack .' '. $item->jenis_kemasan; } $item->nama_barang = $product->nama_barang; $item->subtotal = number_format($item->subtotal, 0, ',', '.'); $item->created_at = $item->created_at->format('d-m-Y H:i:s'); }); // =============================================================================== $pemasok = []; $jumlah_pemasok = 0; foreach ($pasok as $key => $value) { if(!in_array($value->pemasok, $pemasok)){ array_push($pemasok, $value->pemasok); $jumlah_pemasok++; } } // =============================================================================== $tgl = Carbon::parse(now())->isoFormat('D MMMM Y'); return request()->json(200, [ 'tgl' => $tgl, 'pasok' => $pasok, 'jumlah_dos' => $jumlah_dos, 'jumlah_pack' => $jumlah_pack, 'harga_dos' => number_format($harga_dos, 2, ',', '.'), 'harga_pack' => number_format($harga_pack, 2, ', ', '.'), 'jumlah' => $jumlah, 'pembelian' => $pembelian, 'pemasok' => $pemasok, 'jumlah_pemasok' => $jumlah_pemasok, 'jumlah_harga_total' => number_format($harga_total,2,',','.') ]); } public function getPembelianFilter(Request $req) { // $start_date = $req->tgl_awal; // $end_date = $req->tgl_akhir; // $start_date2 = Carbon::parse($start_date)->format('Y-m-d'); // $end_date2 = date('Y-m-d', strtotime($end_date.'+1 day')); $search_pembelian = $req->cari_pembelian; $search_pajak = $req->status_pajak; if($search_pajak == '1'){ $search_pajak = 'ppn'; } else if($search_pajak == '2'){ $search_pajak = 'non_ppn'; } else{ $search_pajak = null; } if($req->tgl_awal != null || $req->tgl_akhir != null){ $start_date = $req->tgl_awal; $end_date = $req->tgl_akhir; $start_date2 = Carbon::parse($start_date)->format('Y-m-d'); $end_date2 = date('Y-m-d', strtotime($end_date.'+1 day')); }else{ $get_start = Supply::first(); $get_end = Supply::latest()->first(); $start_date = $get_start->created_at->format('Y-m-d'); $end_date = $get_end->created_at->format('Y-m-d'); $start_date2 = Carbon::parse($start_date)->format('Y-m-d'); $end_date2 = date('Y-m-d', strtotime($end_date.'+1 day')); } $supply = Supply::whereBetween('created_at', [$start_date2, $end_date2]) ->select('supplies.kode_pasok') ->where('status', 'lunas') ->where(function ($query) use($search_pembelian){ $query->where('kode_pasok', 'like', '%'.$search_pembelian.'%') ->orWhere('surat_jalan', 'like', '%'.$search_pembelian.'%') ->orWhere('no_faktur', 'like', '%'.$search_pembelian.'%') ->orWhere('nama_barang', 'like', '%'.$search_pembelian.'%') ->orWhereHas('supplier', function($query) use ($search_pembelian){ $query->where('nama', 'like', '%'.$search_pembelian.'%'); }); }) ->orderBy('created_at', 'desc') ->get(); // =============================================================================== $array = []; foreach ($supply as $no => $trans) { array_push($array, $trans->kode_pasok); } $uniq = array_unique($array); $pembelian = array_values($uniq); // =============================================================================== if($search_pajak){ $data_sp = supply::select('supplies.*', 'products.status_pajak') ->join('products', 'supplies.kode_barang', '=', 'products.kode_barang') ->whereBetween('supplies.created_at', [$start_date2, $end_date2]) ->where('products.status_pajak', $search_pajak) ->where('supplies.status', 'lunas') ->orderBy('supplies.created_at', 'desc') ->where(function ($query) use($search_pembelian){ $query->where('supplies.kode_pasok', 'like', '%'.$search_pembelian.'%') ->orWhere('supplies.surat_jalan', 'like', '%'.$search_pembelian.'%') ->orWhere('supplies.no_faktur', 'like', '%'.$search_pembelian.'%') ->orWhere('supplies.nama_barang', 'like', '%'.$search_pembelian.'%') ->orWhereHas('supplier', function($query) use ($search_pembelian){ $query->where('nama', 'like', '%'.$search_pembelian.'%'); }); }) ->get(); } else{ $data_sp = supply::select('supplies.*', 'products.status_pajak') ->join('products', 'supplies.kode_barang', '=', 'products.kode_barang') ->whereBetween('supplies.created_at', [$start_date2, $end_date2]) ->where('supplies.status', 'lunas') ->orderBy('supplies.created_at', 'desc') ->where(function ($query) use($search_pembelian){ $query->where('supplies.kode_pasok', 'like', '%'.$search_pembelian.'%') ->orWhere('supplies.surat_jalan', 'like', '%'.$search_pembelian.'%') ->orWhere('supplies.no_faktur', 'like', '%'.$search_pembelian.'%') ->orWhere('supplies.nama_barang', 'like', '%'.$search_pembelian.'%') ->orWhereHas('supplier', function($query) use ($search_pembelian){ $query->where('nama', 'like', '%'.$search_pembelian.'%'); }); }) ->get(); } $pasok = $data_sp; $jumlah = count($pasok); $pasok = $pasok->sortBy('created_at'); $pasok = $pasok->values()->all(); // ===================================== Jumlah Stok ========================================== $dos = 0; $pack = 0; $harga_dos = 0; $harga_pack = 0; $harga_total = 0; foreach ($pasok as $key => $value) { $pp = Product::where('kode_barang', $value->kode_barang)->first(); if(strtolower($value->jenis_kemasan) == 'pack'){ $pack += $value->jumlah; $harga_pack += $value->subtotal; }else{ $dos += $value->jumlah / $pp->pack; $harga_dos += $value->subtotal; } $harga_total += $value->subtotal; } $jumlah_dos = (int) $dos ; $jumlah_pack = (int) $pack ; // ==================================== ganti data pasok =========================================== array_walk($pasok, function(&$item, $key) { $item->kode_pasok = $item->kode_pasok.''.$item->luar_pulau; $product = Product::where('kode_barang', $item->kode_barang)->first(); if(strtolower($item->jenis_kemasan) == 'pack'){ $item->jumlah = $item->jumlah .' '. $item->jenis_kemasan; }else{ $item->jumlah = (int) $item->jumlah / $product->pack .' '. $item->jenis_kemasan; } $item->nama_barang = $product->nama_barang; $item->status_pajak = (strtolower($item->status_pajak) == 'ppn') ? 'PPN' : 'Non PPN'; $item->subtotal = number_format($item->subtotal, 0, ',', '.'); $item->created_at = $item->created_at->format('d-m-Y H:i:s'); }); // =============================================================================== $pemasok = []; $jumlah_pemasok = 0; foreach ($pasok as $key => $value) { if(!in_array($value->pemasok, $pemasok)){ array_push($pemasok, $value->pemasok); $jumlah_pemasok++; } } $tgl1 = Carbon::parse($start_date)->isoFormat('D MMMM Y'); $tgl2 = Carbon::parse($end_date)->isoFormat('D MMMM Y'); $tgl = $tgl1.' s/d '.$tgl2; return request()->json(200, [ 'tgl' => $tgl, 'pasok' => $pasok, 'jumlah_dos' => $jumlah_dos, 'jumlah_pack' => $jumlah_pack, 'harga_dos' => number_format($harga_dos, 2, ',', '.'), 'harga_pack' => number_format($harga_pack, 2, ', ', '.'), 'jumlah' => $jumlah, 'pembelian' => $pembelian, 'jumlah_pemasok' => $jumlah_pemasok, 'jumlah_harga_total' => number_format($harga_total,2,',','.') ]); } public function exportPembelian(Request $req) { // $start_date = $req->tgl_awal; // $end_date = $req->tgl_akhir; // $start_date2 = Carbon::parse($start_date)->format('Y-m-d'); // $end_date2 = date('Y-m-d', strtotime($end_date.'+1 day')); $search_pembelian = $req->cari_pembelian; $search_pajak = $req->status_pajak; if($search_pajak == '1'){ $search_pajak = 'ppn'; } else if($search_pajak == '2'){ $search_pajak = 'non_ppn'; } else{ $search_pajak = null; } if($req->tgl_awal != null || $req->tgl_akhir != null){ $start_date = $req->tgl_awal; $end_date = $req->tgl_akhir; $start_date2 = Carbon::parse($start_date)->format('Y-m-d'); $end_date2 = date('Y-m-d', strtotime($end_date.'+1 day')); }else{ $get_start = Supply::first(); $get_end = Supply::latest()->first(); $start_date = $get_start->created_at->format('Y-m-d'); $end_date = $get_end->created_at->format('Y-m-d'); $start_date2 = Carbon::parse($start_date)->format('Y-m-d'); $end_date2 = date('Y-m-d', strtotime($end_date.'+1 day')); } $supply = Supply::whereBetween('created_at', [$start_date2, $end_date2]) ->select('supplies.kode_pasok') ->where('status', 'lunas') ->where(function ($query) use($search_pembelian){ $query->where('kode_pasok', 'like', '%'.$search_pembelian.'%') ->orWhere('surat_jalan', 'like', '%'.$search_pembelian.'%') ->orWhere('no_faktur', 'like', '%'.$search_pembelian.'%') ->orWhere('nama_barang', 'like', '%'.$search_pembelian.'%') ->orWhereHas('supplier', function($query) use ($search_pembelian){ $query->where('nama', 'like', '%'.$search_pembelian.'%'); }); }) ->orderBy('created_at', 'desc') ->get(); // =============================================================================== $array = []; foreach ($supply as $no => $trans) { array_push($array, $trans->kode_pasok); } $uniq = array_unique($array); $pembelian = array_values($uniq); // =============================================================================== if($search_pajak){ $pasok = supply::select('supplies.*', 'products.status_pajak') ->join('products', 'supplies.kode_barang', '=', 'products.kode_barang') ->whereBetween('supplies.created_at', [$start_date2, $end_date2]) ->where('products.status_pajak', $search_pajak) ->where('supplies.status', 'lunas') ->orderBy('supplies.created_at', 'desc') ->where(function ($query) use($search_pembelian){ $query->where('supplies.kode_pasok', 'like', '%'.$search_pembelian.'%') ->orWhere('supplies.surat_jalan', 'like', '%'.$search_pembelian.'%') ->orWhere('supplies.no_faktur', 'like', '%'.$search_pembelian.'%') ->orWhere('supplies.nama_barang', 'like', '%'.$search_pembelian.'%') ->orWhereHas('supplier', function($query) use ($search_pembelian){ $query->where('nama', 'like', '%'.$search_pembelian.'%'); }); }) ->get(); } else{ $pasok = supply::select('supplies.*', 'products.status_pajak') ->join('products', 'supplies.kode_barang', '=', 'products.kode_barang') ->whereBetween('supplies.created_at', [$start_date2, $end_date2]) ->where('supplies.status', 'lunas') ->orderBy('supplies.created_at', 'desc') ->where(function ($query) use($search_pembelian){ $query->where('supplies.kode_pasok', 'like', '%'.$search_pembelian.'%') ->orWhere('supplies.surat_jalan', 'like', '%'.$search_pembelian.'%') ->orWhere('supplies.no_faktur', 'like', '%'.$search_pembelian.'%') ->orWhere('supplies.nama_barang', 'like', '%'.$search_pembelian.'%') ->orWhereHas('supplier', function($query) use ($search_pembelian){ $query->where('nama', 'like', '%'.$search_pembelian.'%'); }); }) ->get(); } $jumlah = count($pasok); $pasok = $pasok->sortBy('created_at'); $pasok = $pasok->values()->all(); // ===================================== Jumlah Stok ========================================== $dos = 0; $pack = 0; $harga_dos = 0; $harga_pack = 0; $harga_total = 0; foreach ($pasok as $key => $value) { $pp = Product::where('kode_barang', $value->kode_barang)->first(); if(strtolower($value->jenis_kemasan) == 'pack'){ $pack += $value->jumlah; $harga_pack += $value->subtotal; }else{ $dos += $value->jumlah / $pp->pack; $harga_dos += $value->subtotal; } $harga_total += $value->subtotal; } $jumlah_dos = (int) $dos ; $jumlah_pack = (int) $pack ; // ==================================== ganti data pasok =========================================== array_walk($pasok, function($item, $key) { $product = Product::where('kode_barang', $item->kode_barang)->first(); if(strtolower($item->jenis_kemasan) == 'pack'){ $item->jumlah = $item->jumlah; }else{ $item->jumlah = (int) $item->jumlah / $product->pack; } $item->nama_barang = $product->nama_barang; $item->status_pajak = (strtolower($item->status_pajak) == 'ppn') ? 'PPN' : 'Non PPN'; $item->id_worker = User::find($item->id_worker)->nama; $item->id_pemasok = Supplier::find($item->id_pemasok)->nama; $item->created_at = $item->created_at->format('d-m-Y H:i:s'); }); // =============================================================================== $pemasok = []; $jumlah_pemasok = 0; foreach ($pasok as $key => $value) { if(!in_array($value->id_pemasok, $pemasok)){ array_push($pemasok, $value->id_pemasok); $jumlah_pemasok++; } } // =============================================================================== $tgl1 = Carbon::parse($start_date)->isoFormat('D MMMM Y'); $tgl2 = Carbon::parse($end_date)->isoFormat('D MMMM Y'); $tgl = $tgl1.' s/d '.$tgl2; return Excel::download(new ExportLaporanPembelian($pasok, $pembelian, $jumlah_dos, $jumlah_pack, $harga_dos, $harga_pack, $tgl, $jumlah, $jumlah_pemasok, $harga_total), 'pembelian-'.now().'.xlsx'); } public function printPembelian(Request $req) { // $start_date = $req->tgl_awal; // $end_date = $req->tgl_akhir; // $start_date2 = Carbon::parse($start_date)->format('Y-m-d'); // $end_date2 = date('Y-m-d', strtotime($end_date.'+1 day')); $search_pembelian = $req->cari_pembelian; $search_pajak = $req->status_pajak; $filter = $req->filter; if($search_pajak == '1'){ $search_pajak = 'ppn'; } else if($search_pajak == '2'){ $search_pajak = 'non_ppn'; } else{ $search_pajak = null; } if($req->tgl_awal != null || $req->tgl_akhir != null){ $start_date = $req->tgl_awal; $end_date = $req->tgl_akhir; $start_date2 = Carbon::parse($start_date)->format('Y-m-d'); $end_date2 = date('Y-m-d', strtotime($end_date.'+1 day')); }else{ $get_start = Supply::first(); $get_end = Supply::latest()->first(); $start_date = $get_start->created_at->format('Y-m-d'); $end_date = $get_end->created_at->format('Y-m-d'); $start_date2 = Carbon::parse($start_date)->format('Y-m-d'); $end_date2 = date('Y-m-d', strtotime($end_date.'+1 day')); } if($search_pajak){ $pasok = supply::select('supplies.*', 'products.status_pajak') ->join('products', 'supplies.kode_barang', '=', 'products.kode_barang') ->whereBetween('supplies.created_at', [$start_date2, $end_date2]) ->where('products.status_pajak', $search_pajak) ->where('supplies.status', 'lunas') ->orderBy('supplies.created_at', 'desc') ->where(function ($query) use($search_pembelian){ $query->where('supplies.kode_pasok', 'like', '%'.$search_pembelian.'%') ->orWhere('supplies.surat_jalan', 'like', '%'.$search_pembelian.'%') ->orWhere('supplies.no_faktur', 'like', '%'.$search_pembelian.'%') ->orWhere('supplies.nama_barang', 'like', '%'.$search_pembelian.'%') ->orWhereHas('supplier', function($query) use ($search_pembelian){ $query->where('nama', 'like', '%'.$search_pembelian.'%'); }); }) ->get(); } else{ $pasok = supply::select('supplies.*', 'products.status_pajak') ->join('products', 'supplies.kode_barang', '=', 'products.kode_barang') ->whereBetween('supplies.created_at', [$start_date2, $end_date2]) ->where('supplies.status', 'lunas') ->orderBy('supplies.created_at', 'desc') ->where(function ($query) use($search_pembelian){ $query->where('supplies.kode_pasok', 'like', '%'.$search_pembelian.'%') ->orWhere('supplies.surat_jalan', 'like', '%'.$search_pembelian.'%') ->orWhere('supplies.no_faktur', 'like', '%'.$search_pembelian.'%') ->orWhere('supplies.nama_barang', 'like', '%'.$search_pembelian.'%') ->orWhereHas('supplier', function($query) use ($search_pembelian){ $query->where('nama', 'like', '%'.$search_pembelian.'%'); }); }) ->get(); } $pasok = $pasok->sortBy('created_at'); $pasok = $pasok->values()->all(); // ===================================== Jumlah Stok ========================================== $dos = 0; $pack = 0; $harga_dos = 0; $harga_pack = 0; $harga_total = 0; foreach ($pasok as $key => $value) { $pp = Product::where('kode_barang', $value->kode_barang)->first(); if(strtolower($value->jenis_kemasan) == 'pack'){ $pack += $value->jumlah; $harga_pack += $value->subtotal; }else{ $dos += $value->jumlah / $pp->pack; $harga_dos += $value->subtotal; } $harga_total += $value->subtotal; } $dos = (int) $dos ; $pack = (int) $pack ; // ==================================== ganti data pasok =========================================== array_walk($pasok, function(&$item, $key) { $product = Product::where('kode_barang', $item->kode_barang)->first(); if(strtolower($item->jenis_kemasan) == 'pack'){ $item->jumlah = $item->jumlah; }else{ $item->jumlah = (int) $item->jumlah / $product->pack; } $item->nama_barang = $product->nama_barang; $item->status_pajak = (strtolower($item->status_pajak) == 'ppn') ? 'PPN' : 'Non PPN'; $item->id_worker = User::find($item->id_worker)->nama; $item->id_pemasok = Supplier::find($item->id_pemasok)->nama; $item->created_at = $item->created_at->format('d-m-Y H:i:s'); }); // =============================================================================== $pemasok = []; $jumlah_pemasok = 0; foreach ($pasok as $key => $value) { if(!in_array($value->id_pemasok, $pemasok)){ array_push($pemasok, $value->id_pemasok); $jumlah_pemasok++; } } if($filter == 'pasok'){ $supply = []; $kode_pasok = []; foreach ($pasok as $key => $value) { if(!in_array($value->kode_pasok, $kode_pasok)){ $total_harga = Supply::where('kode_pasok', $value->kode_pasok)->where('status', 'lunas')->sum('subtotal'); $value->subtotal = $total_harga; array_push($kode_pasok, $value->kode_pasok); array_push($supply, $value); } } $pasok = $supply; } $jumlah = count($pasok); // =============================================================================== $tgl1 = Carbon::parse($start_date)->isoFormat('D MMMM Y'); $tgl2 = Carbon::parse($end_date)->isoFormat('D MMMM Y'); $tgl = $tgl1.' s/d '.$tgl2; return view('report.print_laporan_pembelian', compact('pasok', 'dos', 'pack', 'harga_dos', 'harga_pack', 'tgl', 'jumlah', 'jumlah_pemasok', 'harga_total', 'filter')); } public function getReturPembelian() { $retur_supply = ReturSupplier::whereDate('created_at', Carbon::today()) ->select('retur_supplier.no_surat_keluar') ->orderBy('created_at', 'desc') ->get(); $jumlah = count($retur_supply); // =============================================================================== $array = []; foreach ($retur_supply as $no => $retur_supp) { array_push($array, $retur_supp->no_surat_keluar); } $uniq = array_unique($array); $retur_pembelian = array_values($uniq); // =============================================================================== $retur_pasok = ReturSupplier::whereDate('created_at', Carbon::today()) ->orderBy('created_at', 'desc') ->get(); $retur_pasok = $retur_pasok->sortBy('created_at'); $retur_pasok = $retur_pasok->values()->all(); // ===================================== Jumlah Stok ========================================== $dos = 0; $pack = 0; $harga_total= 0; foreach ($retur_pasok as $key => $value) { $pp = Product::where('id', $value->id_product)->first(); if(strtolower($value->jenis_kemasan) == 'pack'){ $pack += $value->jumlah; }else{ $dos += $value->jumlah; } $harga_total += $value->jumlah * $value->harga_modal; } $jumlah_dos = (int) $dos ; $jumlah_pack = (int) $pack ; // ==================================== ganti data transaksi =========================================== array_walk($retur_pasok, function(&$item, $key) { $product = Product::where('id', $item->id_product)->first(); $item->nama_barang = $product->nama_barang; $item->created_at = $item->created_at->format('d-m-Y H:i:s'); $item->id_product = $product->nama_barang; }); // =============================================================================== $pemasok = []; $jumlah_pemasok = 0; foreach ($retur_pasok as $key => $value) { if(!in_array($value->nama_supplier, $pemasok)){ array_push($pemasok, $value->nama_supplier); $jumlah_pemasok++; } } // =============================================================================== $tgl = Carbon::parse(now())->isoFormat('D MMMM Y'); return request()->json(200, [ 'tgl' => $tgl, 'retur_pasok' => $retur_pasok, 'jumlah_dos' => $jumlah_dos, 'jumlah_pack' => $jumlah_pack, 'jumlah' => $jumlah, 'retur_pembelian' => $retur_pembelian, 'pemasok' => $pemasok, 'jumlah_pemasok' => $jumlah_pemasok, 'jumlah_harga_total' => $harga_total, ]); } public function getReturPembelianFilter(Request $req) { $search_retur_pembelian = $req->cari_retur_pembelian; if($req->tgl_awal != null || $req->tgl_akhir != null){ $start_date = $req->tgl_awal; $end_date = $req->tgl_akhir; $start_date2 = Carbon::parse($start_date)->format('Y-m-d'); $end_date2 = date('Y-m-d', strtotime($end_date.'+1 day')); }else{ $get_start = ReturSupplier::first(); $get_end = ReturSupplier::latest()->first(); $start_date = $get_start->created_at->format('Y-m-d'); $end_date = $get_end->created_at->format('Y-m-d'); $start_date2 = Carbon::parse($start_date)->format('Y-m-d'); $end_date2 = date('Y-m-d', strtotime($end_date.'+1 day')); } $retur_supply = ReturSupplier::whereBetween('created_at', [$start_date2, $end_date2]) ->select('retur_supplier.no_surat_keluar') ->where(function ($query) use($search_retur_pembelian){ $query->where('no_surat_keluar', 'like', '%'.$search_retur_pembelian.'%') ->orWhere('nama_supplier', 'like', '%'.$search_retur_pembelian.'%') ->orWhereHas('product', function($query) use ($search_retur_pembelian){ $query->where('nama_barang', 'like', '%'.$search_retur_pembelian.'%'); }); }) ->orderBy('created_at', 'desc') ->get(); $jumlah = count($retur_supply); // =============================================================================== $array = []; foreach ($retur_supply as $no => $trans) { array_push($array, $trans->no_surat_keluar); } $uniq = array_unique($array); $retur_pembelian = array_values($uniq); // =============================================================================== $retur_pasok = ReturSupplier::whereBetween('created_at', [$start_date2, $end_date2]) ->orderBy('created_at', 'desc') ->where(function ($query) use($search_retur_pembelian){ $query->where('no_surat_keluar', 'like', '%'.$search_retur_pembelian.'%') ->orWhere('nama_supplier', 'like', '%'.$search_retur_pembelian.'%') ->orWhereHas('product', function($query) use ($search_retur_pembelian){ $query->where('nama_barang', 'like', '%'.$search_retur_pembelian.'%'); }); }) ->get(); $retur_pasok = $retur_pasok->sortBy('created_at'); $retur_pasok = $retur_pasok->values()->all(); // ===================================== Jumlah Stok ========================================== $dos = 0; $pack = 0; $harga_total = 0; foreach ($retur_pasok as $key => $value) { $pp = Product::where('id', $value->id_product)->first(); if(strtolower($value->jenis_kemasan) == 'pack'){ $pack += $value->jumlah; }else{ $dos += $value->jumlah; } $harga_total += $value->jumlah * $value->harga_modal; } $jumlah_dos = (int) $dos ; $jumlah_pack = (int) $pack ; // ==================================== ganti data pasok =========================================== array_walk($retur_pasok, function(&$item, $key) { $product = Product::where('id', $item->id_product)->first(); $item->nama_barang = $product->nama_barang; $item->created_at = $item->created_at->format('d-m-Y H:i:s'); $item->id_product = $product->nama_barang; }); // =============================================================================== $pemasok = []; $jumlah_pemasok = 0; foreach ($retur_pasok as $key => $value) { if(!in_array($value->nama_supplier, $pemasok)){ array_push($pemasok, $value->nama_supplier); $jumlah_pemasok++; } } // =============================================================================== $tgl1 = Carbon::parse($start_date)->isoFormat('D MMMM Y'); $tgl2 = Carbon::parse($end_date)->isoFormat('D MMMM Y'); $tgl = $tgl1.' s/d '.$tgl2; return request()->json(200, [ 'tgl' => $tgl, 'retur_pasok' => $retur_pasok, 'jumlah_dos' => $jumlah_dos, 'jumlah_pack' => $jumlah_pack, 'jumlah' => $jumlah, 'retur_pembelian' => $retur_pembelian, 'pemasok' => $pemasok, 'jumlah_pemasok' => $jumlah_pemasok, 'jumlah_harga_total' => $harga_total, ]); } public function exportReturPembelian(Request $req) { $search_retur_pembelian = $req->cari_retur_pembelian; if($req->tgl_awal != null || $req->tgl_akhir != null){ $start_date = $req->tgl_awal; $end_date = $req->tgl_akhir; $start_date2 = Carbon::parse($start_date)->format('Y-m-d'); $end_date2 = date('Y-m-d', strtotime($end_date.'+1 day')); }else{ $get_start = ReturSupplier::first(); $get_end = ReturSupplier::latest()->first(); $start_date = $get_start->created_at->format('Y-m-d'); $end_date = $get_end->created_at->format('Y-m-d'); $start_date2 = Carbon::parse($start_date)->format('Y-m-d'); $end_date2 = date('Y-m-d', strtotime($end_date.'+1 day')); } $retur_supply = ReturSupplier::whereBetween('created_at', [$start_date2, $end_date2]) ->select('retur_supplier.no_surat_keluar') ->where(function ($query) use($search_retur_pembelian){ $query->where('no_surat_keluar', 'like', '%'.$search_retur_pembelian.'%') ->orWhere('nama_supplier', 'like', '%'.$search_retur_pembelian.'%') ->orWhereHas('product', function($query) use ($search_retur_pembelian){ $query->where('nama_barang', 'like', '%'.$search_retur_pembelian.'%'); }); }) ->orderBy('created_at', 'desc') ->get(); $total_jumlah = count($retur_supply); // =============================================================================== $array = []; foreach ($retur_supply as $no => $trans) { array_push($array, $trans->no_surat_keluar); } $uniq = array_unique($array); $retur_pembelian = array_values($uniq); // =============================================================================== $retur_pasok = ReturSupplier::whereBetween('created_at', [$start_date2, $end_date2]) ->orderBy('created_at', 'desc') ->where(function ($query) use($search_retur_pembelian){ $query->where('no_surat_keluar', 'like', '%'.$search_retur_pembelian.'%') ->orWhere('nama_supplier', 'like', '%'.$search_retur_pembelian.'%') ->orWhereHas('product', function($query) use ($search_retur_pembelian){ $query->where('nama_barang', 'like', '%'.$search_retur_pembelian.'%'); }); }) ->get(); $retur_pasok = $retur_pasok->sortBy('created_at'); $retur_pasok = $retur_pasok->values()->all(); // ===================================== Jumlah Stok ========================================== $dos = 0; $pack = 0; $harga_total = 0; foreach ($retur_pasok as $key => $value) { $pp = Product::where('id', $value->id_product)->first(); $value->nama_barang = $pp->nama_barang; if(strtolower($value->jenis_kemasan) == 'pack'){ $pack += $value->jumlah; }else{ $dos += $value->jumlah; } $harga_total += $value->jumlah * $value->harga_modal; } $jumlah_dos = (int) $dos ; $jumlah_pack = (int) $pack ; // ==================================== ganti data pasok =========================================== array_walk($retur_pasok, function(&$item, $key) { $item->created_at = $item->created_at->format('d-m-Y H:i:s'); }); // =============================================================================== $pemasok = []; $jumlah_pemasok = 0; foreach ($retur_pasok as $key => $value) { if(!in_array($value->nama_supplier, $pemasok)){ array_push($pemasok, $value->nama_supplier); $jumlah_pemasok++; } } $tgl1 = Carbon::parse($start_date)->isoFormat('D MMMM Y'); $tgl2 = Carbon::parse($end_date)->isoFormat('D MMMM Y'); $tgl = $tgl1.' s/d '.$tgl2; return Excel::download(new ExportLaporanReturPembelian($retur_pasok, $retur_pembelian, $jumlah_dos, $jumlah_pack, $tgl, $total_jumlah, $jumlah_pemasok, $harga_total), 'retur pembelian-'.now().'.xlsx'); } public function printReturPembelian(Request $req) { $search_retur_pembelian = $req->cari_retur_pembelian; if($req->tgl_awal != null || $req->tgl_akhir != null){ $start_date = $req->tgl_awal; $end_date = $req->tgl_akhir; $start_date2 = Carbon::parse($start_date)->format('Y-m-d'); $end_date2 = date('Y-m-d', strtotime($end_date.'+1 day')); }else{ $get_start = ReturSupplier::first(); $get_end = ReturSupplier::latest()->first(); $start_date = $get_start->created_at->format('Y-m-d'); $end_date = $get_end->created_at->format('Y-m-d'); $start_date2 = Carbon::parse($start_date)->format('Y-m-d'); $end_date2 = date('Y-m-d', strtotime($end_date.'+1 day')); } $retur_supply = ReturSupplier::whereBetween('created_at', [$start_date2, $end_date2]) ->select('retur_supplier.no_surat_keluar') ->where(function ($query) use($search_retur_pembelian){ $query->where('no_surat_keluar', 'like', '%'.$search_retur_pembelian.'%') ->orWhere('nama_supplier', 'like', '%'.$search_retur_pembelian.'%') ->orWhereHas('product', function($query) use ($search_retur_pembelian){ $query->where('nama_barang', 'like', '%'.$search_retur_pembelian.'%'); }); }) ->distinct() ->orderBy('created_at', 'desc') ->get(); $jumlah = count($retur_supply); // =============================================================================== $array = []; foreach ($retur_supply as $no => $trans) { array_push($array, $trans->no_surat_keluar); } $uniq = array_unique($array); $retur_pembelian = array_values($uniq); // =============================================================================== $retur_pasok = ReturSupplier::whereBetween('created_at', [$start_date2, $end_date2]) ->orderBy('created_at', 'desc') ->where(function ($query) use($search_retur_pembelian){ $query->where('no_surat_keluar', 'like', '%'.$search_retur_pembelian.'%') ->orWhere('nama_supplier', 'like', '%'.$search_retur_pembelian.'%') ->orWhereHas('product', function($query) use ($search_retur_pembelian){ $query->where('nama_barang', 'like', '%'.$search_retur_pembelian.'%'); }); }) ->get(); $retur_pasok = $retur_pasok->sortBy('created_at'); $retur_pasok = $retur_pasok->values()->all(); // ===================================== Jumlah Stok ========================================== $dos = 0; $pack = 0; $harga_total = 0; foreach ($retur_pasok as $key => $value) { $pp = Product::where('id', $value->id_product)->first(); $value->nama_barang = $pp->nama_barang; if(strtolower($value->jenis_kemasan) == 'pack'){ $pack += $value->jumlah; }else{ $dos += $value->jumlah; } $harga_total += $value->jumlah * $value->harga_modal; } $dos = (int) $dos ; $pack = (int) $pack ; // ==================================== ganti data pasok =========================================== array_walk($retur_pasok, function(&$item, $key) { $item->created_at = $item->created_at->format('d-m-Y H:i:s'); }); // =============================================================================== $pemasok = []; $jumlah_pemasok = 0; foreach ($retur_pasok as $key => $value) { if(!in_array($value->nama_supplier, $pemasok)){ array_push($pemasok, $value->nama_supplier); $jumlah_pemasok++; } } $tgl1 = Carbon::parse($start_date)->isoFormat('D MMMM Y'); $tgl2 = Carbon::parse($end_date)->isoFormat('D MMMM Y'); $tgl = $tgl1.' s/d '.$tgl2; $filter = $req->filter; return view('report.print_laporan_retur_pembelian', compact('retur_pasok', 'retur_pembelian', 'dos', 'pack', 'tgl', 'jumlah', 'jumlah_pemasok', 'harga_total', 'filter')); }
Editor is loading...