salesentry filters

This commit is contained in:
Sampanna Rimal
2024-09-17 16:34:40 +05:45
parent afb2c202d6
commit 0b438e302d
19 changed files with 303 additions and 50 deletions

View File

@ -42,10 +42,14 @@ class SalesEntryController extends Controller
/**
* Display a listing of the resource.
*/
public function index()
public function index(Request $request)
{
$filters = $request->all();
$data['title'] = 'Sales Entries';
$data['salesEntries'] = SalesEntry::all();
$data['stockList'] = $this->stockRepository->pluck();
$data['productList'] = $this->productRepository->pluck();
$data['categoryList'] = $this->categoryRepository->pluck();
$data['salesEntries'] = $this->salesEntryRepository->findAll($filters);
return view('salesEntry::salesEntry.index', $data);
}
@ -55,9 +59,9 @@ class SalesEntryController extends Controller
public function create()
{
$data['title'] = 'New Sales Entry';
$data['categoryList'] = $this->categoryRepository->pluck();
$data['stockList'] = $this->stockRepository->pluck();
$data['productList'] = $this->productRepository->pluck();
$data['categoryList'] = $this->categoryRepository->pluck();
$data['customerList'] = $this->customerRepository->pluck();
$data['sizes'] = $this->fieldRepository->getDropdownByAlias('size');
$data['paymentModes'] = $this->fieldRepository->getDropdownByAlias('payment-mode');
@ -127,9 +131,11 @@ class SalesEntryController extends Controller
$productList= $this->productRepository->pluck('id');
$stockList= $this->stockRepository->pluck('id');
$categoryList= $this->categoryRepository->pluck('id');
$sizes = $this->fieldRepository->getDropdownByAlias('size');
$paymentModes = $this->fieldRepository->getDropdownByAlias('payment-mode');
return response()->json([
'view' => view('salesEntry::salesEntry.clone-product', compact('data', 'numInc', 'script', 'productList'))->render(),
'view' => view('salesEntry::salesEntry.clone-product', compact('data', 'numInc', 'script', 'productList', 'categoryList', 'stockList', 'sizes', 'paymentModes'))->render(),
]);
}
}

View File

@ -15,7 +15,16 @@ class SalesEntry extends Model
USE StatusTrait;
protected $table = 'tbl_salesentries';
protected $guarded = [];
protected $fillable = [
'customer_id',
'sales_date',
'payment',
'paymentmode_id',
'paymentref',
'total_amt',
'created_at',
'updated_at'
];
protected $appends = ['status_name'];

View File

@ -14,7 +14,20 @@ class SalesEntryDetail extends Model
USE StatusTrait;
protected $table = 'tbl_salesentrydetails';
protected $guarded = [];
protected $fillable = [
'salesentry_id',
'product_id',
'category_id',
'stock_id',
'size_id',
'unit',
'rate',
'quantity',
'amount',
'desc',
'created_at',
'updated_at'
];
protected $appends = ['status_name'];

View File

@ -6,7 +6,7 @@ use Illuminate\Http\Request;
interface SalesEntryInterface
{
public function findAll();
public function findAll($filters);
public function getSalesEntryById($SalesEntryId);
public function getSalesEntryByEmail($email);
public function delete($SalesEntryId);

View File

@ -9,10 +9,37 @@ use Illuminate\Support\Facades\DB;
class SalesEntryRepository implements SalesEntryInterface
{
public function findAll()
// public function findAll()
// {
// return SalesEntry::when(true, function ($query) {
// })->paginate(20);
// }
public function findAll($filters = [], $limit = null, $offset = null)
{
return SalesEntry::when(true, function ($query) {
})->paginate(20);
return SalesEntry::when($filters, function ($query) use ($filters) {
if (isset($filters["category_id"])) {
$query->whereHas('salesEntryDetails', function ( $query) use ($filters) {
$query->where('category_id', '=', $filters["category_id"]);
});
}
if (isset($filters["product_id"])) {
$query->whereHas('salesEntryDetails', function ( $query) use ($filters) {
$query->where('product_id', '=', $filters["product_id"]);
});
}
if (isset($filters["stock_id"])) {
$query->whereHas('salesEntryDetails', function ( $query) use ($filters) {
$query->where('stock_id', '=', $filters["stock_id"]);
});
}
if (isset($filters["date"])) {
$explodeDate = explode("to", $filters['date']);
$query->whereBetween("sales_date", [$explodeDate[0], preg_replace('/\s+/', '', $explodeDate[1])]);
}
})->get();
}
public function getSalesEntryById($SalesEntryId)
@ -44,12 +71,16 @@ class SalesEntryRepository implements SalesEntryInterface
$request->merge(['salesentry_id' => $salesEntryData->id]);
foreach ($salesEntryDetails['product_id'] as $key => $productId) {
foreach ($salesEntryDetails['stock_id'] as $key => $stockId) {
// dd($request->input('salesentry_id'));
$data = [
'salesentry_id' => $request->input('salesentry_id'),
'product_id' => $productId,
'unit' => $salesEntryDetails['unit'][$key],
'product_id' => $salesEntryDetails['product_id'][$key],
'category_id' => $salesEntryDetails['category_id'][$key],
'stock_id' => $salesEntryDetails['stock_id'][$key],
'size_id' => $salesEntryDetails['size_id'][$key],
'rate' => $salesEntryDetails['rate'][$key],
// 'unit' => $salesEntryDetails['unit'][$key],
'quantity' => $salesEntryDetails['qty'][$key],
'amount' => $salesEntryDetails['amt'][$key],
'desc' => $salesEntryDetails['desc'][$key],