@extends('layouts.backend') @section('extraCss') @endsection @section('mainContentArea')

Get POS Stock

@csrf
@if(!empty($stockBarcodes)) @php $stockDataStatus = [ 'Base', 'Inward', 'Sold', 'Exchange', 'GR', 'Qty', 'qty0', 'InwardOnly', 'SoldOnly', 'ExchangeOnly', 'BaseOnly', 'GROnly', ]; $stockDataMatchStatus = [ 'Matching', 'Mismatch', 'Missing', 'Scanned', 'NotScanned', ]; @endphp @endif
@if (!empty($stockBarcodes))

POS Stock Details

@php $poBarcodes = []; $sql = "SELECT * FROM `oc_audit_barcode_scans` WHERE warehouse_id = '".request('store')."' order by created_at DESC"; $data = \DB::select(\DB::raw($sql)); $dataScanRecDates = []; if(!empty($data)) { foreach($data as $rec) { $tdt = str_replace([' ', '-',':'], '', $rec->created_at); if(!in_array($tdt, $dataScanRecDates)) { $dataScanRecDates[] = $tdt; } } } @endphp @foreach ($stockBarcodes as $stockIndex => $stockBarcode) @php if($stockIndex > 10 && request('debugstock') == 1) { break; } $stockStatusData = []; $stockStatus = [ 'baseStock' => '', 'purchaseInward' => '', 'sale' => '', 'exchange' => '', 'gr' => '', ]; $stockData = []; $stockComp = []; // base stock $base = \App\Oldstock::where('barcode', $stockBarcode->barcode) ->where('warehouse_id', $stockBarcode->warehouse_id) ->first(); if (!empty($base)) { $stockStatus['baseStock'].= 'Base Stock 20-21: '.$base->created_at->format('d/m/Y').'
'; $BK = str_replace([' ', ':', '-'], "", '2020-04-01 00:00:00'); $stockData[$BK] = 'Opening: 01/04/2020'.'
'; $stockComp[$BK] = 'Base'; } // purchase inward // olf inward $sql = " SELECT * FROM oc_wh_purchases WHERE id IN (SELECT purchase_id FROM oc_wh_product_purchases WHERE barcode = '".$stockBarcode->barcode."') AND to_pos = '".$stockBarcode->warehouse_id."' "; $data = \DB::select(\DB::raw($sql)); if(!empty($data)) { foreach($data as $rec) { $stockStatus['purchaseInward'].= 'Inward: '.$rec->created_at.'
'; $BK = str_replace([' ', ':', '-'], "", $rec->created_at); $stockData[$BK] = 'Inward: '.$rec->created_at.'
'; } if(!(in_array($stockBarcode->barcode, $poBarcodes))) { $poBarcodes[] = $stockBarcode->barcode; } $stockComp[$BK] = 'Inward'; } $data_ = 0; if(empty($data)) { $sql_ = "SELECT * FROM `a_log_sales_outward` WHERE warehouse_id = '".$stockBarcode->warehouse_id."' AND barcode = '".$stockBarcode->barcode."'"; $data_ = \DB::select(\DB::raw($sql_)); if(!empty($data_)) { foreach($data_ as $rec) { $stockStatus['purchaseInward'].= 'Inward: '.$rec->created_at.'
'; $BK = str_replace([' ', ':', '-'], "", $rec->created_at); $stockData[$BK] = 'Inward: '.$rec->created_at.'
'; } if(!(in_array($stockBarcode->barcode, $poBarcodes))) { $poBarcodes[] = $stockBarcode->barcode; } $stockComp[$BK] = 'Inward'; } } if(empty($data_)) { $sql_ = "SELECT s.`reference_no`, s.`created_at` FROM oc_wh_sales s, oc_wh_product_sales sp WHERE s.id = sp.`sales_id` AND barcode = '".$stockBarcode->barcode."'"; $data_ = \DB::select(\DB::raw($sql_)); if(!empty($data_)) { foreach($data_ as $rec) { $stockStatus['purchaseInward'].= 'Inward: '.$rec->created_at.'
'; $BK = str_replace([' ', ':', '-'], "", $rec->created_at); $stockData[$BK] = 'Inward: '.$rec->created_at.'
'; } if(!(in_array($stockBarcode->barcode, $poBarcodes))) { $poBarcodes[] = $stockBarcode->barcode; } $stockComp[$BK] = 'Inward'; } } $sql = "SELECT o.id, o.`from_pos`, o.`to_pos`, op.`inwardedon`, op.`barcode`, o.date_added, op.inwardedon FROM oc_purchase_order_pre o, oc_sales_order_pre s, oc_purchase_order_pre_products op WHERE o.`id` = op.`pre_purchase_id` AND o.`sid` = s.`id` AND s.`accounts` = 1 AND op.inwarded = 1 AND o.`from_pos` = '".$stockBarcode->warehouse_id."' AND op.`barcode` = '".$stockBarcode->barcode."'"; $data = \DB::select(\DB::raw($sql)); if(!empty($data)) { foreach($data as $rec) { $stockStatus['purchaseInward'].= 'Inward: '.$rec->inwardedon.'
'; $BK = str_replace([' ', ':', '-'], "", $rec->inwardedon); $stockData[$BK] = 'Inward: '.$rec->inwardedon.'
'; $atdt = str_replace([' ', '-', ':'], '', $rec->inwardedon); if($stockBarcode->barcode == 'WH1513182' && request('store') == 45) { // dump($atdt); // dump($dataScanRecDates); // dd("Exit"); } if(sizeof($dataScanRecDates) > 0) { foreach($dataScanRecDates as $dataScanRecDate) { if($atdt > $dataScanRecDate) { $stockData[$BK] = 'New Inward: '.$rec->inwardedon.'
'; } } } } if(!(in_array($stockBarcode->barcode, $poBarcodes))) { $poBarcodes[] = $stockBarcode->barcode; } $stockComp[$BK] = 'Inward'; } // sale $sql = "SELECT o.id, o.`pos_id`, o.`name`, o.`bill_date`, op.`barcode`, o.`created_at`,o.old_bill_id FROM oc_pos_bills o, oc_pos_bill_products op WHERE o.`id` = op.`bill_id` AND o.`pos_id` = '".$stockBarcode->warehouse_id."' AND op.`barcode` = '".$stockBarcode->barcode."'"; $data = \DB::select(\DB::raw($sql)); if(!empty($data)) { foreach($data as $r => $rec) { $DT = $rec->created_at; if($rec->old_bill_id > 0) { $sql2 = "select date_added from oc_order where order_id = '".$rec->old_bill_id."'"; $data2 = \DB::select(\DB::raw($sql2)); if(!empty($data2[0]->date_added)) { $DT = $data2[0]->date_added; } } $stockStatus['purchaseInward'].= 'Sold: '.$rec->bill_date.'
'; $timeStrs = @explode(" ", $rec->created_at); $timeStr = trim($timeStrs[1]); $tstamp = $DT; //$timeStr; $BK = str_replace([' ', ':', '-'], "", $tstamp); $BK = (int) $BK + 1; $atdt = str_replace([' ', '-', ':'], '', $DT); $stockData[$BK] = 'Sold: '.$DT.'
'; if(sizeof($dataScanRecDates) > 0) { foreach($dataScanRecDates as $dataScanRecDate) { if($atdt > $dataScanRecDate) { $stockData[$BK] = 'New Sold: '.$DT.'
'; } } } $stockComp[$BK] = 'Sold'; } } // exchange $sql = "SELECT c.`id`, c.`pos_id`, cd.`barcode`, cd.`customer_id`, CONCAT(cn.`firstname`, cn.`lastname`), cd.`date_added` FROM oc_customer_credit_details cd, oc_customer_credit_note c, oc_customer cn WHERE c.id = cd.`credit_note_id` AND c.`customer_id` = cn.`customer_id` AND c.`pos_id` = '".$stockBarcode->warehouse_id."' AND cd.`barcode` = '".$stockBarcode->barcode."'"; $data = \DB::select(\DB::raw($sql)); if(!empty($data)) { foreach($data as $r => $rec) { $stockStatus['exchange'].= 'Exchange: '.$rec->date_added.'
'; $BK = str_replace([' ', ':', '-'], "", $rec->date_added); $BK = $BK + 1; $stockData[$BK] = 'Exchange: '.$rec->date_added.'
'; if(sizeof($dataScanRecDates) > 0) { $atdt = str_replace([' ', '-', ':'], '', $rec->date_added); foreach($dataScanRecDates as $dataScanRecDate) { if($atdt > $dataScanRecDate) { $stockData[$BK] = 'Exchange: '.$DT.'
'; } } } $stockComp[$BK] = 'Exchange'; } } // returns $sql = "SELECT gr.`id`, gr.`reference_no`, gr.`approve`, grp.`barcode`, gr.`created_at`, grp.`outwardon`, grp.`deliveredon` FROM oc_pos_purchase_returns_temp gr, oc_pos_purchase_returns_temp_products grp WHERE gr.`id` = grp.`return_id` AND gr.approve = 1 AND gr.`outward` = 1 AND gr.`from_pos` = '".$stockBarcode->warehouse_id."' AND grp.`barcode` = '".$stockBarcode->barcode."'"; $data = \DB::select(\DB::raw($sql)); if($stockBarcode->barcode == 'WH1835292') { // dd($data); } if(!empty($data)) { foreach($data as $r => $rec) { $stockStatus['gr'].= 'GR: '.$rec->created_at.'
'; $BK = str_replace([' ', ':', '-'], "", $rec->created_at); $BK = $BK; $stockData[$BK] = 'GR: '.$rec->created_at.'
'; $stockComp[$BK] = 'GR'; } } else { $sql = "SELECT gr.`id`, gr.`reference_no`, gr.`approve`, grp.`barcode`, gr.`created_at`, grp.`infactoryon`, grp.`instockon` FROM oc_pos_to_wh_sales_returns_temp gr, oc_pos_to_wh_sales_returns_temp_products grp WHERE gr.`id` = grp.`return_id` AND gr.approve = 1 AND gr.`instock` = 1 AND gr.`from_pos` = '".$stockBarcode->warehouse_id."' AND grp.`barcode` = '".$stockBarcode->barcode."'"; $data = \DB::select(\DB::raw($sql)); if(!empty($data)) { foreach($data as $r => $rec) { $stockStatus['gr'].= 'GR: '.$rec->instockon.'
'; $BK = str_replace([' ', ':', '-'], "", $rec->instockon); $BK = $BK; $stockData[$BK] = 'GR: '.$rec->instockon.'
'; $stockComp[$BK] = 'GR'; } } } ksort($stockData); ksort($stockComp); $actualStatus = ''; $expectedStatus = end($stockComp); if($stockBarcode->barcode == 'WH1835292') { // dump($sql); // dd($stockStatus['gr']); // dump($stockComp); // dump($stockData); // exit; } $inStockStatuses = ['Inward', 'Base', 'Exchange']; $outStockStatuses = ['Sold', 'GR']; if($stockBarcode->qty > 0 && in_array($expectedStatus, $inStockStatuses)) { // product is in stock $actualStatus = 'Matching'; } elseif($stockBarcode->qty <= 0 && in_array($expectedStatus, $outStockStatuses)) { // product is in stock $actualStatus = 'Matching'; } elseif(sizeof($stockData) <= 0) { $actualStatus = 'Missing'; } else { $actualStatus = 'Mismatch'; } $sql = "SELECT * FROM `oc_audit_barcode_scans` WHERE warehouse_id = '".$stockBarcode->warehouse_id."' AND barcode = '".$stockBarcode->barcode."'"; $data = \DB::select(\DB::raw($sql)); if(!empty($data)) { $sc = 'Scanned'; $inScan = 'Yes'; } else { $inScan = 'No'; $sc = 'NotScanned'; } if($actualStatus != 'Missing') { if($stockBarcode->barcode == 'WH1835292') { // dd($data); } if(!empty($data)) { if($stockBarcode->qty > 0) { $actualStatus = 'Matching'; } else { $actualStatus = 'Mismatch'; } } else { if($stockBarcode->qty < 1) { $actualStatus = 'Matching'; } else { $actualStatus = 'Mismatch'; } } } @endphp @foreach($stockData as $k => $v) @if(!empty($v)) @endif @endforeach @php $barcodeHistories = $barcodeInfo[$stockBarcode->barcode]; foreach($barcodeHistories as $barcodeHistoryItems) { foreach($barcodeHistoryItems as $barcodeHistory) { }} @endphp @php $w_id=request('store'); $updateTemp="update oc_warehouse_product_audit_temp SET flag=2 WHERE warehouse_id='".$w_id."' and barcode='".$stockBarcode->barcode."'"; $updateSQLData = \DB::update($updateTemp); if($actualStatus=='Matching'){ $sqlInsert2 = "INSERT INTO `oc_audit_barcode_scans_match` SET audit_scan_id='".$stockBarcode->id."', article='".$stockBarcode->article."', color='".$stockBarcode->color."', size='".$stockBarcode->size."', warehouse_id='".$w_id."', barcode='".$stockBarcode->barcode."', qty='".$stockBarcode->qty."', mrp='".$stockBarcode->mrp."', history='".$history."', expectedstatus='".$expectedStatus."', status='".$actualStatus."', scanned='".$inScan."', addedby='".$addedby."', audit_date='".$tdt."' "; $data2 = \DB::insert($sqlInsert2); //dd($data2); } if($actualStatus=='Mismatch' || $actualStatus== 'Missing'){ $sqlInsert= "INSERT INTO `oc_audit_barcode_scans_mismatch` SET audit_scan_id='".$stockBarcode->id."', article='".$stockBarcode->article."', color='".$stockBarcode->color."', size='".$stockBarcode->size."', warehouse_id='".$w_id."', barcode='".$stockBarcode->barcode."', qty='".$stockBarcode->qty."', mrp='".$stockBarcode->mrp."', history='".$history."', expectedstatus='".$expectedStatus."', status='".$actualStatus."', scanned='".$inScan."', addedby='".$addedby."', audit_date='".$tdt."' "; $data234 = \DB::insert($sqlInsert); //dd($data234); } if(!empty(request('barcode')) && request('barcode') == $stockBarcode->barcode) { break; } @endphp @endforeach
@endif @if(!empty(request('store'))) Get Audit Status @endif
@csrf @if(!empty($poBarcodes)) @else @endif
@csrf
@endsection @section('extraJs') @endsection