Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- namespace App\Http\Controllers;
- use Illuminate\Http\Request;
- use DB;
- use App\Models\M_produk;
- use App\Models\Sales;
- use App\Models\Sales_line;
- use App\Models\M_customer;
- use App\Models\Perusahaan;
- class Pos_controller extends Controller
- {
- public function index(){
- $title = 'POS / Penjualan Barang';
- return view('pos.index',compact('title'));
- }
- public function cetak_struck_terakhir(){
- try {
- $dt = Sales::orderBy('created_at','desc')->first();
- $id_sales = $dt->id;
- $data = Sales::find($id_sales);
- $perusahaan = Perusahaan::first();
- $lines = \DB::select("SELECT sl.produk,sum(sl.qty) as total_qty,sum(sl.grand_total) as grand_total,sl.buy,sl.harga,mp.nama from sales_line sl join m_produk mp on mp.id=sl.produk where sl.sales='".$id."' group by sl.produk,sl.buy,sl.harga,mp.nama");
- $pdf = \PDF::loadview('sales.struck',compact('data','perusahaan','lines'))->setPaper([0, 0, 200, 500], 'portrait');
- return $pdf->stream();
- } catch (\Exception $e) {
- \Session::flash('gagal',$e->getMessage().'|'.$e->getLine());
- }
- return redirect()->back();
- }
- public function cetak_struck($id){
- try {
- $dt = Sales::orderBy('created_at','desc')->first();
- $id_sales = $dt->id;
- $data = Sales::find($id);
- $perusahaan = Perusahaan::first();
- $lines = \DB::select("SELECT sl.produk,sum(sl.qty) as total_qty,sum(sl.grand_total) as grand_total,sl.buy,sl.harga,mp.nama from sales_line sl join m_produk mp on mp.id=sl.produk where sl.sales='".$id."' group by sl.produk,sl.buy,sl.harga,mp.nama");
- $pdf = \PDF::loadview('sales.struck',compact('data','perusahaan','lines'))->setPaper([0, 0, 200, 500], 'portrait');
- return $pdf->stream();
- } catch (\Exception $e) {
- \Session::flash('gagal',$e->getMessage().'|'.$e->getLine());
- }
- return redirect()->back();
- }
- public function get_produk($kode){
- $dt = M_produk::where('kode',$kode)->first();
- return response()->json([
- 'data'=>$dt
- ]);
- }
- public function get_produk_ajax(Request $request){
- if ($request->has('q')) {
- $cari = $request->q;
- $data = M_produk::where('nama', 'LIKE', '%'.$cari.'%')->get();
- return response()->json($data);
- }
- }
- public function cek_total(Request $request){
- try {
- $produk = $request->produk;
- $qty = $request->qty;
- $harga = $request->harga;
- $harga_grosir = $request->harga_grosir;
- $jenis_transaksi = [];
- $jumlah_bayar = $request->jumlah_bayar;
- $customer = $request->customer;
- $diskon = $request->diskon;
- $set_jenis_transaksi = $request->set_jenis_transaksi;
- $total_nya = 0;
- foreach ($produk as $e => $pd) {
- // if($jenis_transaksi[$e] == 1){
- // $harganya = $harga[$e];
- // // $jenis =
- // }elseif ($jenis_transaksi[$e] == 2) {
- // $harganya = $harga_grosir[$e];
- // }else{
- // $harganya = 0;
- // }
- if($set_jenis_transaksi == 'eceran'){
- $harganya = $harga[$e];
- $jenis_transaksi[$e] = 1;
- }elseif ($set_jenis_transaksi == 'grosir') {
- $harganya = $harga_grosir[$e];
- $jenis_transaksi[$e] = 2;
- }elseif ($set_jenis_transaksi == 'free') {
- $harganya = 0;
- $jenis_transaksi[$e] = 3;
- $diskon = 0;
- }
- $total_nya += (Int)$qty[$e] * (Int)$harganya;
- }
- $total_nya -= $diskon;
- return response()->json([
- 'pesan'=>'sukses',
- 'data'=>$total_nya
- ]);
- } catch (\Exception $e) {
- return response()->json([
- 'pesan'=>'gagal',
- 'data'=>$e->getMessage().'|'.$e->getLine()
- ]);
- }
- }
- public function get_customer(Request $request){
- if ($request->has('q')) {
- $cari = $request->q;
- $data = M_customer::select('id', 'nama')->where('nama', 'LIKE', '%'.$cari.'%')->get();
- return response()->json($data);
- }
- }
- public function store(Request $request){
- try {
- // dd($request);
- $produk = $request->produk;
- $qty = $request->qty;
- $harga = $request->harga;
- $harga_grosir = $request->harga_grosir;
- $jenis_transaksi = [];
- $jumlah_bayar = $request->jumlah_bayar;
- $customer = $request->customer;
- $diskon = $request->diskon;
- $deposit = $request->deposit;
- $buy = $request->buy;
- $set_jenis_transaksi = $request->set_jenis_transaksi;
- // if($deposit == ''){
- // return response()->json([
- // 'pesan'=>'gagal',
- // // 'data'=>'Kembalian Rp. '.number_format($kembalian,0)
- // 'data'=>'deposit kosong'
- // ]);
- // }else{
- // return response()->json([
- // 'pesan'=>'gagal',
- // // 'data'=>'Kembalian Rp. '.number_format($kembalian,0)
- // 'data'=>'deposit ada'
- // ]);
- // }
- $kembalian = 0;
- // cek total
- $total_nya = 0;
- foreach ($produk as $e => $pd) {
- // if($jenis_transaksi[$e] == 1){
- // $harganya = $harga[$e];
- // // $jenis =
- // }elseif ($jenis_transaksi[$e] == 2) {
- // $harganya = $harga_grosir[$e];
- // }else{
- // $harganya = 0;
- // }
- if($set_jenis_transaksi == 'eceran'){
- $harganya = $harga[$e];
- $jenis_transaksi[$e] = 1;
- }elseif ($set_jenis_transaksi == 'grosir') {
- $harganya = $harga_grosir[$e];
- $jenis_transaksi[$e] = 2;
- }elseif ($set_jenis_transaksi == 'free') {
- $harganya = 0;
- $jenis_transaksi[$e] = 3;
- $diskon = 0;
- }
- $total_nya += (Int)$qty[$e] * (Int)$harganya;
- }
- $total_nya -= $diskon;
- if($jumlah_bayar < $total_nya){
- $kurang_nya = $total_nya - $jumlah_bayar;
- return response()->json([
- 'pesan'=>'gagal',
- // 'data'=>'Kembalian Rp. '.number_format($kembalian,0)
- 'data'=>'uang Kurang Rp. '.number_format($kurang_nya,0)
- ]);
- }
- $cek = \DB::transaction(function()use($produk,$qty,$harga,$harga_grosir,$jenis_transaksi,$jumlah_bayar,$customer,$diskon,$buy,$set_jenis_transaksi){
- $header = Sales::insertGetId([
- 'no_struk'=>'sales-'.rand(),
- 'customer'=>$customer,
- 'diskon'=>$diskon,
- 'jenis'=>'cash',
- 'is_lunas'=>1,
- 'created_at'=>date('Y-m-d H:i:s'),
- 'updated_at'=>date('Y-m-d H:i:s')
- ]);
- foreach ($produk as $e => $pd) {
- // if($jenis_transaksi[$e] == 1){
- // $harganya = $harga[$e];
- // // $jenis =
- // }elseif ($jenis_transaksi[$e] == 2) {
- // $harganya = $harga_grosir[$e];
- // }else{
- // $harganya = 0;
- // }
- if($set_jenis_transaksi == 'eceran'){
- $harganya = $harga[$e];
- $jenis_transaksi[$e] = 1;
- }elseif ($set_jenis_transaksi == 'grosir') {
- $harganya = $harga_grosir[$e];
- $jenis_transaksi[$e] = 2;
- }elseif ($set_jenis_transaksi == 'free') {
- $harganya = 0;
- $jenis_transaksi[$e] = 3;
- $diskon = 0;
- }
- Sales_line::insert([
- 'sales'=>$header,
- 'produk'=>$pd,
- 'buy'=>$buy[$e],
- 'harga'=>$harganya,
- 'jenis_transaksi'=>$jenis_transaksi[$e],
- 'qty'=>$qty[$e],
- 'grand_total'=>(Int)$qty[$e] * (Int)$harganya
- ]);
- $dt = M_produk::find($pd);
- $qty_now = $dt->stock;
- $qty_new = $qty_now - $qty[$e];
- M_produk::where('id',$pd)->update([
- 'stock'=>$qty_new
- ]);
- }
- $sum_total = Sales_line::where('sales',$header)->sum('grand_total');
- $sum_total -= $diskon;
- $kembalian = $jumlah_bayar - $sum_total;
- $total_buy = Sales_line::where('sales',$header)->sum('buy');
- $bersih = $sum_total - $total_buy;
- Sales::where('id',$header)->update([
- 'bersih'=>$bersih,
- 'grand_total'=>$sum_total,
- 'jumlah_bayar'=>$jumlah_bayar,
- 'kembalian'=>$kembalian
- ]);
- // if($jumlah_bayar < $sum_total){
- // return response()->json([
- // 'pesan'=>'gagal',
- // 'data'=>'Uang Kurang'
- // ]);
- // }
- // \Session::flash('sukses','Kembalian Rp. '.number_format($kembalian,0));
- $data['sum_total'] = $sum_total;
- $data['kembalian'] = $kembalian;
- $data['id_header'] = $header;
- return $data;
- });
- return response()->json([
- 'pesan'=>'sukses',
- // 'data'=>'Kembalian Rp. '.number_format($kembalian,0)
- 'id_sales'=>$cek['id_header'],
- 'data'=>'Sukses, Kembalian : Rp. '.number_format($cek['kembalian'])
- ]);
- } catch (\Exception $e) {
- return response()->json([
- 'pesan'=>'gagal',
- 'data'=>$e->getMessage()
- ]);
- }
- // return redirect()->back();
- }
- public function store_deposit(Request $request){
- try {
- // dd($request);
- $produk = $request->produk;
- $qty = $request->qty;
- $harga = $request->harga;
- $harga_grosir = $request->harga_grosir;
- $jenis_transaksi = $request->jenis_transaksi;
- $jumlah_bayar = $request->jumlah_bayar;
- $customer = $request->customer;
- $diskon = $request->diskon;
- $deposit = $request->deposit;
- $buy = $request->buy;
- if($deposit == ''){
- return response()->json([
- 'pesan'=>'gagal',
- // 'data'=>'Kembalian Rp. '.number_format($kembalian,0)
- 'data'=>'deposit Tidak Boleh kosong'
- ]);
- }
- $kembalian = 0;
- // cek total
- $total_nya = 0;
- foreach ($produk as $e => $pd) {
- if($jenis_transaksi[$e] == 1){
- $harganya = $harga[$e];
- // $jenis =
- }elseif ($jenis_transaksi[$e] == 2) {
- $harganya = $harga_grosir[$e];
- }else{
- $harganya = 0;
- }
- $total_nya += (Int)$qty[$e] * (Int)$harganya;
- }
- $total_nya -= $diskon;
- // if($jumlah_bayar < $total_nya){
- // $kurang_nya = $total_nya - $jumlah_bayar;
- // return response()->json([
- // 'pesan'=>'gagal',
- // // 'data'=>'Kembalian Rp. '.number_format($kembalian,0)
- // 'data'=>'uang Kurang Rp. '.number_format($kurang_nya,0)
- // ]);
- // }
- $cek = \DB::transaction(function()use($produk,$qty,$harga,$harga_grosir,$jenis_transaksi,$jumlah_bayar,$customer,$diskon,$deposit,$buy){
- $header = Sales::insertGetId([
- 'no_struk'=>'sales-'.rand(),
- 'customer'=>$customer,
- 'diskon'=>$diskon,
- 'jenis'=>'deposit',
- 'nominal_deposit'=>$deposit,
- 'created_at'=>date('Y-m-d H:i:s'),
- 'updated_at'=>date('Y-m-d H:i:s')
- ]);
- foreach ($produk as $e => $pd) {
- if($jenis_transaksi[$e] == 1){
- $harganya = $harga[$e];
- // $jenis =
- }elseif ($jenis_transaksi[$e] == 2) {
- $harganya = $harga_grosir[$e];
- }else{
- $harganya = 0;
- }
- Sales_line::insert([
- 'sales'=>$header,
- 'produk'=>$pd,
- 'harga'=>$harganya,
- 'buy'=>$buy[$e],
- 'jenis_transaksi'=>$jenis_transaksi[$e],
- 'qty'=>$qty[$e],
- 'grand_total'=>(Int)$qty[$e] * (Int)$harganya
- ]);
- $dt = M_produk::find($pd);
- $qty_now = $dt->stock;
- $qty_new = $qty_now - $qty[$e];
- M_produk::where('id',$pd)->update([
- 'stock'=>$qty_new
- ]);
- }
- $sum_total = Sales_line::where('sales',$header)->sum('grand_total');
- $sum_total -= $diskon;
- $kembalian = $jumlah_bayar - $sum_total;
- $total_buy = Sales_line::where('sales',$header)->sum('buy');
- $bersih = $sum_total - $total_buy;
- Sales::where('id',$header)->update([
- 'bersih'=>$bersih,
- 'grand_total'=>$sum_total,
- 'jumlah_bayar'=>$jumlah_bayar,
- 'kembalian'=>0
- ]);
- // if($jumlah_bayar < $sum_total){
- // return response()->json([
- // 'pesan'=>'gagal',
- // 'data'=>'Uang Kurang'
- // ]);
- // }
- // \Session::flash('sukses','Kembalian Rp. '.number_format($kembalian,0));
- $data['sum_total'] = $sum_total;
- $data['kembalian'] = $kembalian;
- return $data;
- });
- return response()->json([
- 'pesan'=>'sukses',
- // 'data'=>'Kembalian Rp. '.number_format($kembalian,0)
- 'data'=>'Sukses, Deposit berhasil dilakukan'
- ]);
- } catch (\Exception $e) {
- return response()->json([
- 'pesan'=>'gagal',
- 'data'=>$e->getMessage().'|'.$e->getLine()
- ]);
- }
- // return redirect()->back();
- }
- }
Add Comment
Please, Sign In to add comment