fadlyshafa

Untitled

Apr 28th, 2020
448
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. public function store(Request $request){
  2.         try {
  3.             // dd($request);
  4.             $produk = $request->produk;
  5.             $qty = $request->qty;
  6.             $harga = $request->harga;
  7.             $harga_grosir = $request->harga_grosir;
  8.             $jenis_transaksi = $request->jenis_transaksi;
  9.             $jumlah_bayar = $request->jumlah_bayar;
  10.             $customer = $request->customer;
  11.             $diskon = $request->diskon;
  12.             $deposit = $request->deposit;
  13.             $buy = $request->buy;
  14.             $set_jenis_transaksi = $request->set_jenis_transaksi;
  15.  
  16.             // if($deposit == ''){
  17.             //     return response()->json([
  18.             //         'pesan'=>'gagal',
  19.             //         // 'data'=>'Kembalian Rp. '.number_format($kembalian,0)
  20.             //         'data'=>'deposit kosong'
  21.             //     ]);
  22.             // }else{
  23.             //     return response()->json([
  24.             //         'pesan'=>'gagal',
  25.             //         // 'data'=>'Kembalian Rp. '.number_format($kembalian,0)
  26.             //         'data'=>'deposit ada'
  27.             //     ]);
  28.             // }
  29.  
  30.             $kembalian = 0;
  31.  
  32.             // cek total
  33.             $total_nya = 0;
  34.             foreach ($produk as $e => $pd) {
  35.                 if($jenis_transaksi[$e] == 1){
  36.                     $harganya = $harga[$e];
  37.                     // $jenis =
  38.                 }elseif ($jenis_transaksi[$e] == 2) {
  39.                     $harganya = $harga_grosir[$e];
  40.                 }else{
  41.                     $harganya = 0;
  42.                 }
  43.  
  44.                 $total_nya += (Int)$qty[$e] * (Int)$harganya;
  45.  
  46.                
  47.             }
  48.  
  49.             $total_nya -= $diskon;
  50.  
  51.             if($jumlah_bayar < $total_nya){
  52.                 $kurang_nya = $total_nya - $jumlah_bayar;
  53.                 return response()->json([
  54.                     'pesan'=>'gagal',
  55.                     // 'data'=>'Kembalian Rp. '.number_format($kembalian,0)
  56.                     'data'=>'uang Kurang Rp. '.number_format($kurang_nya,0)
  57.                 ]);
  58.             }
  59.  
  60.             $cek = \DB::transaction(function()use($produk,$qty,$harga,$harga_grosir,$jenis_transaksi,$jumlah_bayar,$customer,$diskon,$buy,$set_jenis_transaksi){
  61.                 $header = Sales::insertGetId([
  62.                     'no_struk'=>'sales-'.rand(),
  63.                     'customer'=>$customer,
  64.                     'diskon'=>$diskon,
  65.                     'jenis'=>'cash',
  66.                     'is_lunas'=>1,
  67.                     'created_at'=>date('Y-m-d H:i:s'),
  68.                     'updated_at'=>date('Y-m-d H:i:s')
  69.                 ]);
  70.  
  71.                 foreach ($produk as $e => $pd) {
  72.                     if($jenis_transaksi[$e] == 1){
  73.                         $harganya = $harga[$e];
  74.                         // $jenis =
  75.                     }elseif ($jenis_transaksi[$e] == 2) {
  76.                         $harganya = $harga_grosir[$e];
  77.                     }else{
  78.                         $harganya = 0;
  79.                     }
  80.  
  81.                     if($set_jenis_transaksi == 'eceran'){
  82.                         $harganya = $harga[$e];
  83.                         $jenis_transaksi[$e] = 1;
  84.                     }elseif ($set_jenis_transaksi == 'grosir') {
  85.                         $harganya = $harga_grosir[$e];
  86.                         $jenis_transaksi[$e] = 2;
  87.                     }elseif ($set_jenis_transaksi == 'free') {
  88.                         $harganya = 0;
  89.                         $jenis_transaksi[$e] = 3;
  90.                     }
  91.  
  92.                     Sales_line::insert([
  93.                         'sales'=>$header,
  94.                         'produk'=>$pd,
  95.                         'buy'=>$buy[$e],
  96.                         'harga'=>$harganya,
  97.                         'jenis_transaksi'=>$jenis_transaksi[$e],
  98.                         'qty'=>$qty[$e],
  99.                         'grand_total'=>(Int)$qty[$e] * (Int)$harganya
  100.                     ]);
  101.  
  102.                     $dt = M_produk::find($pd);
  103.                     $qty_now = $dt->stock;
  104.                     $qty_new = $qty_now - $qty[$e];
  105.                     M_produk::where('id',$pd)->update([
  106.                         'stock'=>$qty_new
  107.                     ]);
  108.                 }
  109.  
  110.                 $sum_total = Sales_line::where('sales',$header)->sum('grand_total');
  111.                 $sum_total -= $diskon;
  112.  
  113.                 $kembalian = $jumlah_bayar - $sum_total;
  114.  
  115.                 $total_buy = Sales_line::where('sales',$header)->sum('buy');
  116.  
  117.                 $bersih = $sum_total - $total_buy;
  118.  
  119.                 Sales::where('id',$header)->update([
  120.                     'bersih'=>$bersih,
  121.                     'grand_total'=>$sum_total,
  122.                     'jumlah_bayar'=>$jumlah_bayar,
  123.                     'kembalian'=>$kembalian
  124.                 ]);
  125.  
  126.                 // if($jumlah_bayar < $sum_total){
  127.                 //     return response()->json([
  128.                 //         'pesan'=>'gagal',
  129.                 //         'data'=>'Uang Kurang'
  130.                 //     ]);
  131.                 // }
  132.  
  133.             // \Session::flash('sukses','Kembalian Rp. '.number_format($kembalian,0));
  134.  
  135.                 $data['sum_total'] = $sum_total;
  136.                 $data['kembalian'] = $kembalian;
  137.                 return $data;
  138.  
  139.             });
  140.  
  141.            
  142.  
  143.             return response()->json([
  144.                 'pesan'=>'sukses',
  145.                 // 'data'=>'Kembalian Rp. '.number_format($kembalian,0)
  146.                 'data'=>'Sukses, Kembalian : Rp. '.number_format($cek['kembalian'])
  147.             ]);
  148.  
  149.         } catch (\Exception $e) {
  150.             return response()->json([
  151.                 'pesan'=>'gagal',
  152.                 'data'=>$e->getMessage()
  153.             ]);
  154.         }
  155.         // return redirect()->back();
  156.     }
RAW Paste Data