Advertisement
abdurahman_argoebie

Untitled

May 13th, 2024
784
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 11.28 KB | None | 0 0
  1. if ($request->user()->can('purchaseorder.liststatuspo')) {
  2.                 $purchase = PurchaseOrder::select(
  3.                     'transaction_purchase.id',
  4.                     'transaction_purchase.dataorder',
  5.                     'no_nota',
  6.                     'kode_rpo',
  7.                     'note',
  8.                     'createdon',
  9.                     'total',
  10.                     'count_cetak',
  11.                     'transaction_purchase.perusahaan_id',
  12.                     'transaction_purchase.created_at',
  13.                     'transaction_purchase.updated_at',
  14.                     'member_id',
  15.                     'sales_id',
  16.                     'expedisi',
  17.                     'expedisi_via',
  18.                     'transaction_purchase.status',
  19.                     'status_po',
  20.                     'status_gudang',
  21.                     'status_invoice',
  22.                     'gudang_id',
  23.                     'gudang.name as gudangnama',
  24.                     'transaction_purchase_detail.transaction_purchase_id',
  25.                     DB::raw('(CASE
  26.                                        WHEN transaction_purchase.status = 0 THEN 1
  27.                                        WHEN transaction_purchase.status = 1 THEN 2
  28.                                        WHEN transaction_purchase.status = 2 THEN 4
  29.                                        WHEN transaction_purchase.status = 3 THEN 3
  30.                                        ELSE 5 END ) AS ord')
  31.                 );
  32.                 $purchase->join('transaction_purchase_detail', 'transaction_purchase_detail.transaction_purchase_id', 'transaction_purchase.id');
  33.                 $purchase->join('gudang', 'transaction_purchase_detail.gudang_id', 'gudang.id');
  34.                 $purchase->where('flag_status', 0);
  35.                 // if($request->user()->can('purchaseorder.liststatuspobyuser')){
  36.                 //     $purchase->where('createdon', auth()->user()->username);
  37.                 // }
  38.                 // if(session('type') ==''){
  39.                 //     $purchase->where('transaction_purchase.type','!=',2);
  40.                 // }
  41.                 $purchase->groupBy('transaction_purchase_detail.transaction_purchase_id');
  42.                 $purchase->orderBy('ord', 'ASC');
  43.                 $purchase->orderBy('status_gudang', 'ASC');
  44.                 $purchase->orderBy('transaction_purchase.updated_at', 'DESC');
  45.         } else if ($request->user()->can('purchaseorder.liststatusgudang')) {
  46.                 $purchase = PurchaseOrder::select(
  47.                     'transaction_purchase.id',
  48.                     'transaction_purchase.dataorder',
  49.                     'no_nota',
  50.                     'kode_rpo',
  51.                     'note',
  52.                     'createdon',
  53.                     'total',
  54.                     'count_cetak',
  55.                     'transaction_purchase.perusahaan_id',
  56.                     'transaction_purchase.created_at',
  57.                     'transaction_purchase.updated_at',
  58.                     'member_id',
  59.                     'sales_id',
  60.                     'expedisi',
  61.                     'expedisi_via',
  62.                     'transaction_purchase.status',
  63.                     'status_po',
  64.                     'status_gudang',
  65.                     'status_invoice',
  66.                     'gudang_id',
  67.                     'gudang.name as gudangnama',
  68.                     'transaction_purchase_detail.transaction_purchase_id',
  69.                     // DB::raw('(CASE
  70.                     //     WHEN transaction_purchase.status = 1 AND status_gudang = 0 THEN 1
  71.                     //     WHEN status_gudang = 1 AND transaction_purchase.status <> 3 THEN 2
  72.                     //     WHEN transaction_purchase.status = 3 THEN 3
  73.                     //     WHEN transaction_purchase.status = 2 THEN 4
  74.                     //     ELSE 5 END ) AS ord'));
  75.                     DB::raw('(CASE
  76.                                        WHEN transaction_purchase.status = 1 AND status_gudang = 0  AND status_invoice = 1 THEN 1
  77.                                        WHEN transaction_purchase.status = 1 AND status_invoice= 0 THEN 2
  78.                                        WHEN status_gudang = 1 AND transaction_purchase.status <> 3 THEN 3
  79.                                        WHEN transaction_purchase.status = 3 THEN 4
  80.                                        WHEN transaction_purchase.status = 2 THEN 5
  81.                                        ELSE 6 END ) AS ord')
  82.                 );
  83.                 $purchase->join('transaction_purchase_detail', 'transaction_purchase_detail.transaction_purchase_id', 'transaction_purchase.id');
  84.                 $purchase->join('gudang', 'transaction_purchase_detail.gudang_id', 'gudang.id');
  85.                 $purchase->where('flag_status', 0);
  86.                 $purchase->groupBy('transaction_purchase_detail.transaction_purchase_id');
  87.                 $purchase->orderBy('ord', 'ASC');
  88.                 $purchase->orderBy('transaction_purchase.updated_at', 'DESC');
  89.         } else if ($request->user()->can('purchaseorder.liststatusinvoice')) {
  90.                 $purchase = PurchaseOrder::select(
  91.                     'transaction_purchase.id',
  92.                     'transaction_purchase.dataorder',
  93.                     'no_nota',
  94.                     'kode_rpo',
  95.                     'note',
  96.                     'createdon',
  97.                     'total',
  98.                     'count_cetak',
  99.                     'transaction_purchase.perusahaan_id',
  100.                     'transaction_purchase.created_at',
  101.                     'transaction_purchase.updated_at',
  102.                     'member_id',
  103.                     'sales_id',
  104.                     'expedisi',
  105.                     'expedisi_via',
  106.                     'transaction_purchase.status',
  107.                     'status_po',
  108.                     'status_gudang',
  109.                     'status_invoice',
  110.                     'gudang_id',
  111.                     'gudang.name as gudangnama',
  112.                     'transaction_purchase_detail.transaction_purchase_id',
  113.                     DB::raw('(CASE
  114.                                        WHEN transaction_purchase.status = 1 AND status_gudang = 0 THEN 2
  115.                                        WHEN status_gudang = 1 AND transaction_purchase.status <> 3 THEN 1
  116.                                        WHEN transaction_purchase.status = 3 THEN 3
  117.                                        WHEN transaction_purchase.status = 2 THEN 4
  118.                                        ELSE 5 END ) AS ord')
  119.                 );
  120.                 $purchase->join('transaction_purchase_detail', 'transaction_purchase_detail.transaction_purchase_id', 'transaction_purchase.id');
  121.                 $purchase->join('gudang', 'transaction_purchase_detail.gudang_id', 'gudang.id');
  122.                 $purchase->where('flag_status', 0);
  123.                 if (session('type') == '') {
  124.                     $purchase->whereIn('transaction_purchase.status_invoice', [1, 2]);
  125.                 }
  126.                 // $purchase->where('transaction_purchase.status_invoice','!=',0);
  127.                 $purchase->groupBy('transaction_purchase_detail.transaction_purchase_id');
  128.                 $purchase->orderBy('ord', 'ASC');
  129.                 $purchase->orderBy('transaction_purchase.updated_at', 'DESC');
  130.         } else {
  131.                 $purchase = PurchaseOrder::select(
  132.                     'transaction_purchase.id',
  133.                     'transaction_purchase.dataorder',
  134.                     'no_nota',
  135.                     'kode_rpo',
  136.                     'note',
  137.                     'createdon',
  138.                     'total',
  139.                     'count_cetak',
  140.                     'transaction_purchase.perusahaan_id',
  141.                     'transaction_purchase.created_at',
  142.                     'transaction_purchase.updated_at',
  143.                     'member_id',
  144.                     'sales_id',
  145.                     'expedisi',
  146.                     'expedisi_via',
  147.                     'transaction_purchase.status',
  148.                     'status_po',
  149.                     'status_gudang',
  150.                     'status_invoice',
  151.                     'gudang_id',
  152.                     'gudang.name as gudangnama',
  153.                     'transaction_purchase_detail.transaction_purchase_id',
  154.                 );
  155.                 $purchase->join('transaction_purchase_detail', 'transaction_purchase_detail.transaction_purchase_id', 'transaction_purchase.id');
  156.                 $purchase->join('gudang', 'transaction_purchase_detail.gudang_id', 'gudang.id');
  157.                 $purchase->where('flag_status', 0);
  158.                 $purchase->groupBy('transaction_purchase_detail.transaction_purchase_id');
  159.                 $purchase->orderBy('transaction_purchase.status', 'ASC');
  160.                 $purchase->orderBy('status_gudang', 'ASC');
  161.                 $purchase->orderBy('transaction_purchase.updated_at', 'DESC');
  162.         }
  163.         if (array_key_exists($request->order[0]['column'], $this->original_column)) {
  164.             $purchase->orderByRaw($this->original_column[$request->order[0]['column']] . ' ' . $request->order[0]['dir']);
  165.         }
  166.  
  167.         if ($request->filter_perusahaan != "") {
  168.             $purchase->where('transaction_purchase.perusahaan_id', $request->filter_perusahaan);
  169.         }
  170.  
  171.         if ($request->filter_member != "") {
  172.             $purchase->where('transaction_purchase.member_id', $request->filter_member);
  173.         }
  174.         if ($request->type != "") {
  175.             if ($request->type == '0') {
  176.                 if ($request->user()->can('purchaseorder.liststatuspo')) {
  177.                     $purchase->where('transaction_purchase.flag_status', 0);
  178.                 } else if ($request->user()->can('purchaseorder.liststatusinvoiceawal')) {
  179.                     $purchase->whereIn('transaction_purchase.status_invoice', [1, 2]);
  180.                     $purchase->where('transaction_purchase.flag_status', 0);
  181.                 }
  182.             }
  183.             //LIST PO TOLAK : HARGA BISA DIUBAH
  184.             if ($request->type == '1') {
  185.                 $purchase->where('transaction_purchase.status_invoice', 2);
  186.                 $purchase->where('transaction_purchase.status_gudang', 2);
  187.                 $purchase->where('transaction_purchase.flag_status', 0);
  188.                 $purchase->where('transaction_purchase.type', 2);
  189.             }
  190.             //VALIDASI HARGA
  191.             if ($request->type == '2') {
  192.                 $purchase->where('transaction_purchase.status_invoice', 0);
  193.                 $purchase->where('transaction_purchase.status_gudang', 0);
  194.                 $purchase->where('transaction_purchase.flag_status', 0);
  195.                 $purchase->where('transaction_purchase.status', 1);
  196.             }
  197.             //UNTUK GUDANG
  198.             if ($request->type == '3') {
  199.                 $purchase->where('transaction_purchase.flag_status', 0);
  200.                 $purchase->where('gudang_id', $request->type_gudang);
  201.             }
  202.         }
  203.         if ($search) {
  204.             $purchase->where(function ($query) use ($search) {
  205.                 $query->orWhere('no_nota', 'LIKE', "%{$search}%");
  206.                 $query->orWhere('kode_rpo', 'LIKE', "%{$search}%");
  207.             });
  208.         }
  209.         $totalData = $purchase->get()->count();
  210.  
  211.         $totalFiltered = $purchase->get()->count();
  212.  
  213.         $purchase->limit($limit);
  214.         $purchase->offset($start);
  215.         $data = $purchase->get();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement