ReportManageController.php
unknown
php_laravel_blade
3 years ago
42 kB
8
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...