finishing to dev
All checks were successful
All checks were successful
This commit is contained in:
@@ -76,17 +76,17 @@
|
||||
<div class="table-top-btn-group d-print-none p-2">
|
||||
<ul>
|
||||
<li>
|
||||
<a class="export-btn" href="{{ route('business.balance-sheet.excel') }}">
|
||||
<a href="{{ route('business.balance-sheet.excel') }}">
|
||||
<img src="{{ asset('assets/images/logo/csv.svg') }}" alt="">
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="export-btn" href="{{ route('business.balance-sheet.csv') }}">
|
||||
<a href="{{ route('business.balance-sheet.csv') }}">
|
||||
<img src="{{ asset('assets/images/logo/excel.svg') }}" alt="">
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="export-btn" target="_blank" href="{{ route('business.balance-sheet.pdf') }}">
|
||||
<a target="blank" href="{{ route('business.balance-sheet.pdf') }}">
|
||||
<img src="{{ asset('assets/images/logo/pdf.svg') }}" alt="">
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -6,19 +6,6 @@
|
||||
<h4 style="text-align: center; margin: 0; padding: 0; font-size: 16px;">
|
||||
{{ __('Balance Sheet Report') }}
|
||||
</h4>
|
||||
@if ($filter_from_date && $filter_to_date)
|
||||
<p style="text-align: center; margin: 0; padding: 0; font-weight: 400; font-size: 14px;" class="">{{ __('Duration:') }}
|
||||
@if ($duration === 'today')
|
||||
{{ Carbon\Carbon::parse($filter_from_date)->format('d-m-Y') }}
|
||||
@elseif ($duration === 'yesterday')
|
||||
{{ Carbon\Carbon::parse($filter_from_date)->format('d-m-Y') }}
|
||||
@else
|
||||
{{ Carbon\Carbon::parse($filter_from_date)->format('d-m-Y') }}
|
||||
{{ __('to') }}
|
||||
{{ Carbon\Carbon::parse($filter_to_date)->format('d-m-Y') }}
|
||||
@endif
|
||||
</p>
|
||||
@endif
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
|
||||
@@ -53,7 +53,7 @@
|
||||
</div>
|
||||
|
||||
<!-- Button -->
|
||||
<div><span class="more-field-btn">+ {{__('Add More Fields')}}</span></div>
|
||||
<div><span class="more-field-btn">{{__('+ Add more fields')}}</span></div>
|
||||
<div class="form-check mt-2">
|
||||
<input type="hidden" name="show_in_invoice" value="0">
|
||||
<input type="checkbox" name="show_in_invoice" class="form-check-input multi-delete" id="bankDetails" value="1">
|
||||
|
||||
@@ -60,7 +60,7 @@
|
||||
</div>
|
||||
|
||||
<!-- Button -->
|
||||
<div><span class="more-field-btn">+ {{__('Add More Fields')}}</span></div>
|
||||
<div><span class="more-field-btn">{{__('+ Add more fields')}}</span></div>
|
||||
<div class="form-check mt-2">
|
||||
<input type="hidden" name="show_in_invoice" value="0">
|
||||
<input type="checkbox" name="show_in_invoice" id="show_in_invoice" class="form-check-input multi-delete" value="1">
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
@csrf
|
||||
<label>{{ __('Select Product') }}</label>
|
||||
<div class="search-container">
|
||||
<input type="text" id="product-search" placeholder="{{__('Search...')}}" class="form-control" />
|
||||
<input type="text" id="product-search" placeholder="Search..." class="form-control" />
|
||||
<ul id="search-results" class="barcode-dropdown search-hidden"></ul>
|
||||
</div>
|
||||
<div class="table-responsive mt-3 barcode-table">
|
||||
|
||||
@@ -110,17 +110,17 @@
|
||||
<div class="table-top-btn-group d-print-none p-2">
|
||||
<ul>
|
||||
<li>
|
||||
<a class="export-btn" href="{{ route('business.bill-wise-profits.csv') }}">
|
||||
<a href="{{ route('business.bill-wise-profits.csv') }}">
|
||||
<img src="{{ asset('assets/images/logo/csv.svg') }}" alt="">
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="export-btn" href="{{ route('business.bill-wise-profits.excel') }}">
|
||||
<a href="{{ route('business.bill-wise-profits.excel') }}">
|
||||
<img src="{{ asset('assets/images/logo/excel.svg') }}" alt="">
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="export-btn" target="_blank" href="{{ route('business.bill-wise-profits.pdf') }}">
|
||||
<a target="blank" href="{{ route('business.bill-wise-profits.pdf') }}">
|
||||
<img src="{{ asset('assets/images/logo/pdf.svg') }}" alt="">
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -4,19 +4,7 @@
|
||||
<div class="table-header justify-content-center border-0 d-none d-block d-print-block text-center">
|
||||
@include('business::print.header')
|
||||
<h4 style="text-align: center; margin: 0; padding: 0; font-size: 16px;" class="">{{ __('Bill Wise Profit & Loss') }}</h4>
|
||||
@if ($filter_from_date && $filter_to_date)
|
||||
<p style="text-align: center; margin: 0; padding: 0; font-weight: 400; font-size: 14px;" class="">{{ __('Duration:') }}
|
||||
@if ($duration === 'today')
|
||||
{{ Carbon\Carbon::parse($filter_from_date)->format('d-m-Y') }}
|
||||
@elseif ($duration === 'yesterday')
|
||||
{{ Carbon\Carbon::parse($filter_from_date)->format('d-m-Y') }}
|
||||
@else
|
||||
{{ Carbon\Carbon::parse($filter_from_date)->format('d-m-Y') }}
|
||||
{{ __('to') }}
|
||||
{{ Carbon\Carbon::parse($filter_to_date)->format('d-m-Y') }}
|
||||
@endif
|
||||
</p>
|
||||
@endif
|
||||
{{-- <p style="text-align: center; margin: 0; padding: 0; font-weight: 400; font-size: 14px;" class="">{{ __('Duration: 14-12-2025 to 24-12-2025') }}</p> --}}
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
|
||||
@@ -20,21 +20,13 @@ class="ajaxform_instant_reload">
|
||||
|
||||
<div class="col-lg-12">
|
||||
<label>{{ __('Icon') }}</label>
|
||||
<div class="custom-upload-wrapper">
|
||||
<div class="custom-image-box">
|
||||
<div class="custom-image-content">
|
||||
<svg width="30" height="30" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M18.3327 7.5026V12.5026C18.3327 14.8596 18.3327 16.0381 17.6004 16.7704C16.8682 17.5026 15.6897 17.5026 13.3327 17.5026H6.66602C4.309 17.5026 3.13048 17.5026 2.39825 16.7704C1.66602 16.0381 1.66602 14.8596 1.66602 12.5026V9.21404C1.66602 8.39729 1.66602 7.98892 1.76053 7.65502C1.99698 6.81974 2.64982 6.1669 3.48509 5.93046C3.819 5.83594 4.22736 5.83594 5.04409 5.83594C5.34907 5.83594 5.50157 5.83594 5.64361 5.81118C5.99556 5.74983 6.31847 5.577 6.56476 5.3182C6.66415 5.21375 6.91352 4.8397 7.08268 4.58594C7.413 4.09048 7.57815 3.84275 7.80393 3.67233C7.94181 3.56826 8.09502 3.48627 8.25809 3.42927C8.52512 3.33594 8.82287 3.33594 9.41837 3.33594H10.8327" stroke="#4B5563" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" />
|
||||
<path d="M13.3327 11.2474C13.3327 13.0883 11.8403 14.5807 9.99937 14.5807C8.1584 14.5807 6.66602 13.0883 6.66602 11.2474C6.66602 9.40641 8.1584 7.91406 9.99937 7.91406C11.8403 7.91406 13.3327 9.40641 13.3327 11.2474Z" stroke="#4B5563" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" />
|
||||
<path d="M13.334 4.58333H17.5007M15.4173 6.66667V2.5" stroke="#4B5563" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
<span class="custom-upload-text">{{ __('Add Icon') }}</span>
|
||||
<div class="border rounded upload-img-container">
|
||||
<label class="upload-v4">
|
||||
<div class="img-wrp">
|
||||
<img src="{{ asset('assets/images/icons/upload-icon.svg') }}" alt="Brand" id="brand-img">
|
||||
</div>
|
||||
|
||||
<!-- Preview image -->
|
||||
<img class="preview-image d-none" id="image" src="" alt="Preview">
|
||||
<input type="file" name="icon" class="preview-image-input" data-id="#image" accept="image/*">
|
||||
</div>
|
||||
<input type="file" name="icon" class="d-none" onchange="document.getElementById('brand-img').src = window.URL.createObjectURL(this.files[0])" accept="image/*">
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -52,7 +52,7 @@ class="table-product-img">
|
||||
<a href="#brand-edit-modal" data-bs-toggle="modal" class="brand-edit-btn"
|
||||
data-url="{{ route('business.brands.update', $brand->id) }}"
|
||||
data-brands-name="{{ $brand->brandName }}"
|
||||
data-brands-icon="{{ asset($brand->icon) }}"
|
||||
data-brands-icon="{{ asset($brand->icon ?? 'assets/images/icons/upload-icon.svg') }}"
|
||||
data-brands-description="{{ $brand->description }}"><i
|
||||
class="fal fa-pencil-alt"></i>{{ __('Edit') }}</a>
|
||||
@endusercan
|
||||
|
||||
@@ -20,21 +20,13 @@ class="ajaxform_instant_reload brandUpdateForm">
|
||||
|
||||
<div class="col-lg-12 mb-2">
|
||||
<label>{{ __("Icon") }}</label>
|
||||
<div class="custom-upload-wrapper">
|
||||
<div class="custom-image-box">
|
||||
<div class="custom-image-content">
|
||||
<svg width="30" height="30" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M18.3327 7.5026V12.5026C18.3327 14.8596 18.3327 16.0381 17.6004 16.7704C16.8682 17.5026 15.6897 17.5026 13.3327 17.5026H6.66602C4.309 17.5026 3.13048 17.5026 2.39825 16.7704C1.66602 16.0381 1.66602 14.8596 1.66602 12.5026V9.21404C1.66602 8.39729 1.66602 7.98892 1.76053 7.65502C1.99698 6.81974 2.64982 6.1669 3.48509 5.93046C3.819 5.83594 4.22736 5.83594 5.04409 5.83594C5.34907 5.83594 5.50157 5.83594 5.64361 5.81118C5.99556 5.74983 6.31847 5.577 6.56476 5.3182C6.66415 5.21375 6.91352 4.8397 7.08268 4.58594C7.413 4.09048 7.57815 3.84275 7.80393 3.67233C7.94181 3.56826 8.09502 3.48627 8.25809 3.42927C8.52512 3.33594 8.82287 3.33594 9.41837 3.33594H10.8327" stroke="#4B5563" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" />
|
||||
<path d="M13.3327 11.2474C13.3327 13.0883 11.8403 14.5807 9.99937 14.5807C8.1584 14.5807 6.66602 13.0883 6.66602 11.2474C6.66602 9.40641 8.1584 7.91406 9.99937 7.91406C11.8403 7.91406 13.3327 9.40641 13.3327 11.2474Z" stroke="#4B5563" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" />
|
||||
<path d="M13.334 4.58333H17.5007M15.4173 6.66667V2.5" stroke="#4B5563" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
<span class="custom-upload-text">{{ __('Add Icon') }}</span>
|
||||
<div class="border rounded upload-img-container">
|
||||
<label class="upload-v4">
|
||||
<div class="img-wrp">
|
||||
<img src="" alt="user" id="edit_icon">
|
||||
</div>
|
||||
|
||||
<!-- Preview image -->
|
||||
<img class="preview-image d-none" id="edit_icon" src="" alt="Preview">
|
||||
<input type="file" name="icon" class="preview-image-input" data-id="#edit_icon" accept="image/*">
|
||||
</div>
|
||||
<input type="file" name="icon" class="d-none" onchange="document.getElementById('edit_icon').src = window.URL.createObjectURL(this.files[0])" accept="image/*">
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -9,33 +9,22 @@
|
||||
<div class="container-fluid">
|
||||
<div class="border-0">
|
||||
<div class="card-bodys">
|
||||
<form action="{{ route('business.bulk-uploads.store') }}" method="post" enctype="multipart/form-data" class="ajaxform_instant_reload">
|
||||
<form action="{{ route('business.bulk-uploads.store') }}" method="post" enctype="multipart/form-data"
|
||||
class="ajaxform_instant_reload">
|
||||
<div class="bulk-upload-container">
|
||||
<div class="row align-items-center">
|
||||
<div class="col-lg-6">
|
||||
<div class="custom-upload-wrapper">
|
||||
<div class="custom-file-box">
|
||||
<div class="custom-file-content">
|
||||
<svg width="30" height="30" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M12 5V19M5 12H19" stroke="#4B5563" stroke-width="2.0" stroke-linecap="round"/>
|
||||
</svg>
|
||||
<span class="custom-upload-text">{{ __('Add File') }}</span>
|
||||
</div>
|
||||
|
||||
<p class="preview-file d-none"></p>
|
||||
<input type="file" name="file" class="preview-file-input" required>
|
||||
</div>
|
||||
</div>
|
||||
<div class="d-flex justify-content-between align-items-center ">
|
||||
<div class="bulk-input">
|
||||
<input class="form-control" type="file" name="file" required>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="d-flex align-items-center justify-content-between mt-3">
|
||||
<div class="d-flex align-items-center justify-content-between">
|
||||
@usercan('bulk-uploads.create')
|
||||
<button type="submit" class="add-order-btn rounded-2 border-0 submit-btn">{{ __('Submit') }}</button>
|
||||
<button type="submit" class="add-order-btn rounded-2 border-0 submit-btn mt-3">{{__('Submit')}}</button>
|
||||
@endusercan
|
||||
|
||||
<a href="{{ asset('assets/bulk-products-upload.xlsx') }}" download class="download-file-btn">
|
||||
<i class="fas fa-download"></i> {{ __('Download File') }}
|
||||
<a href="{{ asset('assets/bulk-products-upload.xlsx') }}"
|
||||
download="bulk-products-upload.xlsx"
|
||||
class="download-file-btn mt-3">
|
||||
<i class="fas fa-download"></i> {{__('Download File')}}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -60,11 +60,11 @@
|
||||
<td class="text-start d-print-none">{{ ucwords(str_replace('_', ' ', $cash_flow->platform)) }}</td>
|
||||
|
||||
<td class="text-center {{ $cash_flow->type === 'credit' ? 'text-success' : '' }}">
|
||||
{{ $cash_flow->type === 'credit' ? currency_format($cash_flow->amount, currency: business_currency()) : currency_format(0) }}
|
||||
{{ $cash_flow->type === 'credit' ? currency_format($cash_flow->amount, currency: business_currency()) : currency_format(0, currency: business_currency()) }}
|
||||
</td>
|
||||
|
||||
<td class="text-center {{ $cash_flow->type === 'debit' ? 'text-danger' : '' }}">
|
||||
{{ $cash_flow->type === 'debit' ? currency_format($cash_flow->amount, currency: business_currency()) : currency_format(0) }}
|
||||
{{ $cash_flow->type === 'debit' ? currency_format($cash_flow->amount, currency: business_currency()) : currency_format(0, currency: business_currency()) }}
|
||||
</td>
|
||||
|
||||
<td class="text-center {{ $runningCash < 0 ? 'text-danger' : 'text-success' }}">
|
||||
@@ -92,8 +92,10 @@
|
||||
<td class="d-print-none"></td>
|
||||
<td></td>
|
||||
<td class="d-print-none text-start"></td>
|
||||
<td class="text-center text-success">{{ currency_format($page_cash_in, currency: business_currency()) }}</td>
|
||||
<td class="text-center text-danger">{{ currency_format($page_cash_out, currency: business_currency()) }}</td>
|
||||
<td class="text-center text-success">{{ currency_format($page_cash_in, currency: business_currency()) }}
|
||||
</td>
|
||||
<td class="text-center text-danger">{{ currency_format($page_cash_out, currency: business_currency()) }}
|
||||
</td>
|
||||
<td class="text-center {{ $page_running_cash < 0 ? 'text-danger' : 'text-success' }}">
|
||||
{{ currency_format($page_running_cash, currency: business_currency()) }}
|
||||
</td>
|
||||
@@ -106,4 +108,4 @@
|
||||
|
||||
<div class="mt-3">
|
||||
{{ $cash_flows->links('vendor.pagination.bootstrap-5') }}
|
||||
</div>
|
||||
</div>
|
||||
@@ -44,15 +44,17 @@
|
||||
<td class="text-start">{{ ucwords(str_replace('_', ' ', $cash_flow->platform)) }}</td>
|
||||
|
||||
@if ($cash_flow->type === 'credit')
|
||||
<td class="text-start text-success">{{ currency_format($cash_flow->amount, currency: business_currency()) }}</td>
|
||||
<td class="text-start text-success">{{ currency_format($cash_flow->amount, currency: business_currency()) }}
|
||||
</td>
|
||||
@else
|
||||
<td class="text-start">{{ currency_format(0) }}</td>
|
||||
<td class="text-start">{{ currency_format(0, currency: business_currency()) }}</td>
|
||||
@endif
|
||||
|
||||
@if ($cash_flow->type === 'debit')
|
||||
<td class="text-start text-danger">{{ currency_format($cash_flow->amount, currency: business_currency()) }}</td>
|
||||
<td class="text-start text-danger">{{ currency_format($cash_flow->amount, currency: business_currency()) }}
|
||||
</td>
|
||||
@else
|
||||
<td class="text-start">{{ currency_format(0) }}</td>
|
||||
<td class="text-start">{{ currency_format(0, currency: business_currency()) }}</td>
|
||||
@endif
|
||||
|
||||
<td class="text-start {{ $runningCash < 0 ? 'text-danger' : 'text-success' }}">
|
||||
@@ -81,8 +83,10 @@
|
||||
<td class="d-print-none"></td>
|
||||
<td></td>
|
||||
<td class="d-print-none text-start"></td>
|
||||
<td class="text-center text-success">{{ currency_format($page_cash_in, currency: business_currency()) }}</td>
|
||||
<td class="text-center text-danger">{{ currency_format($page_cash_out, currency: business_currency()) }}</td>
|
||||
<td class="text-center text-success">{{ currency_format($page_cash_in, currency: business_currency()) }}
|
||||
</td>
|
||||
<td class="text-center text-danger">{{ currency_format($page_cash_out, currency: business_currency()) }}
|
||||
</td>
|
||||
<td class="text-center {{ $page_running_cash < 0 ? 'text-danger' : 'text-success' }}">
|
||||
{{ currency_format($page_running_cash, currency: business_currency()) }}
|
||||
</td>
|
||||
@@ -90,4 +94,4 @@
|
||||
</tr>
|
||||
</tfoot>
|
||||
@endif
|
||||
</table>
|
||||
</table>
|
||||
@@ -23,19 +23,19 @@
|
||||
<div class="col-lg-2 col-md-6">
|
||||
<div class="profit-card p-3 m-2 text-white">
|
||||
<p class="stat-title">{{ __('Cash In') }}</p>
|
||||
<p class="stat-value" id="cashflow_cash_in">{{ currency_format($cashflow_cash_in, 'icon', 2, business_currency()) }}</p>
|
||||
<p class="stat-value">{{ currency_format($total_cash_in, 'icon', 2, business_currency()) }}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-2 col-md-6 ">
|
||||
<div class="sales-card p-3 m-2 text-white">
|
||||
<p class="stat-title">{{ __('Cash Out') }}</p>
|
||||
<p class="stat-value" id="cashflow_cash_out">{{ currency_format($cashflow_cash_out, 'icon', 2, business_currency()) }}</p>
|
||||
<p class="stat-value">{{ currency_format($total_cash_out, 'icon', 2, business_currency()) }}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-2 col-md-12 ">
|
||||
<div class="loss-card p-3 m-2 text-white">
|
||||
<p class="stat-title">{{ __('Running Cash') }}</p>
|
||||
<p class="stat-value" id="total_running_cash">{{ currency_format($total_running_cash, 'icon', 2, business_currency()) }}</p>
|
||||
<p class="stat-value">{{ currency_format($total_running_cash, 'icon', 2, business_currency()) }}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -114,17 +114,17 @@
|
||||
<div class="table-top-btn-group d-print-none p-2">
|
||||
<ul>
|
||||
<li>
|
||||
<a class="export-btn" href="{{ route('business.cash-flow-reports.csv') }}">
|
||||
<a href="{{ route('business.cash-flow-reports.csv') }}">
|
||||
<img src="{{ asset('assets/images/logo/csv.svg') }}" alt="">
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="export-btn" href="{{ route('business.cash-flow-reports.excel') }}">
|
||||
<a href="{{ route('business.cash-flow-reports.excel') }}">
|
||||
<img src="{{ asset('assets/images/logo/excel.svg') }}" alt="">
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="export-btn" target="_blank" href="{{ route('business.cash-flow-reports.pdf') }}">
|
||||
<a target="blank" href="{{ route('business.cash-flow-reports.pdf') }}">
|
||||
<img src="{{ asset('assets/images/logo/pdf.svg') }}" alt="">
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -1,27 +1,15 @@
|
||||
@extends('layouts.business.pdf.pdf_layout')
|
||||
|
||||
@section('pdf_title')
|
||||
<div class="table-header justify-content-center border-0 d-none d-block d-print-block text-center">
|
||||
@include('business::print.header')
|
||||
<h4 style="text-align: center; margin: 0; padding: 0; font-size: 16px;">{{ __('Cash Flow Report List') }}</h4>
|
||||
@if ($filter_from_date && $filter_to_date)
|
||||
<p style="text-align: center; margin: 0; padding: 0; font-weight: 400; font-size: 14px;" class="">{{ __('Duration:') }}
|
||||
@if ($duration === 'today')
|
||||
{{ Carbon\Carbon::parse($filter_from_date)->format('d-m-Y') }}
|
||||
@elseif ($duration === 'yesterday')
|
||||
{{ Carbon\Carbon::parse($filter_from_date)->format('d-m-Y') }}
|
||||
@else
|
||||
{{ Carbon\Carbon::parse($filter_from_date)->format('d-m-Y') }}
|
||||
{{ __('to') }}
|
||||
{{ Carbon\Carbon::parse($filter_to_date)->format('d-m-Y') }}
|
||||
@endif
|
||||
</p>
|
||||
@endif
|
||||
</div>
|
||||
<div class="table-header justify-content-center border-0 d-none d-block d-print-block text-center">
|
||||
@include('business::print.header')
|
||||
<h4 style="text-align: center; margin: 0; padding: 0; font-size: 16px;">{{ __('Cash Flow Report List') }}</h4>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@section('pdf_content')
|
||||
<table width="100%" cellpadding="6" cellspacing="0" style="border-collapse: collapse; border: 1px solid gainsboro; font-size:12px;">
|
||||
<table width="100%" cellpadding="6" cellspacing="0"
|
||||
style="border-collapse: collapse; border: 1px solid gainsboro; font-size:12px;">
|
||||
<thead>
|
||||
<tr style="background-color: #C52127; color: white;">
|
||||
<th style="border:1px solid gainsboro; color:white;" class="text-start">{{ __('Date') }}</th>
|
||||
@@ -48,30 +36,39 @@
|
||||
<td style="border:1px solid gainsboro; text-align:center;">{{ $cash_flow->invoice_no }}</td>
|
||||
|
||||
@if ($cash_flow->platform == 'sale')
|
||||
<td style="border:1px solid gainsboro; text-align:center;">{{ $cash_flow->sale?->party?->name ?? 'Guest' }}</td>
|
||||
<td style="border:1px solid gainsboro; text-align:center;">{{ $cash_flow->sale?->party?->name ?? 'Guest' }}
|
||||
</td>
|
||||
@elseif ($cash_flow->platform == 'sale_return')
|
||||
<td style="border:1px solid gainsboro; text-align:center;">{{ $cash_flow->saleReturn?->sale?->party?->name ?? 'Guest' }}</td>
|
||||
<td style="border:1px solid gainsboro; text-align:center;">
|
||||
{{ $cash_flow->saleReturn?->sale?->party?->name ?? 'Guest' }}</td>
|
||||
@elseif ($cash_flow->platform == 'purchase')
|
||||
<td style="border:1px solid gainsboro; text-align:center;">{{ $cash_flow->purchase?->party?->name ?? 'Guest' }}</td>
|
||||
<td style="border:1px solid gainsboro; text-align:center;">
|
||||
{{ $cash_flow->purchase?->party?->name ?? 'Guest' }}</td>
|
||||
@elseif ($cash_flow->platform == 'purchase_return')
|
||||
<td style="border:1px solid gainsboro; text-align:center;">{{ $cash_flow->purchaseReturn?->purchase?->party?->name ?? 'Guest' }}</td>
|
||||
<td style="border:1px solid gainsboro; text-align:center;">
|
||||
{{ $cash_flow->purchaseReturn?->purchase?->party?->name ?? 'Guest' }}</td>
|
||||
@elseif ($cash_flow->platform == 'due_collect' || $cash_flow->platform == 'due_pay')
|
||||
<td style="border:1px solid gainsboro; text-align:center;">{{ $cash_flow->dueCollect?->party?->name ?? 'Guest' }}</td>
|
||||
<td style="border:1px solid gainsboro; text-align:center;">
|
||||
{{ $cash_flow->dueCollect?->party?->name ?? 'Guest' }}</td>
|
||||
@else
|
||||
<td style="border:1px solid gainsboro; text-align:center;">N/A</td>
|
||||
@endif
|
||||
|
||||
<td style="border:1px solid gainsboro; text-align:center;">{{ ucwords(str_replace('_', ' ', $cash_flow->platform)) }}</td>
|
||||
<td style="border:1px solid gainsboro; text-align:center;">
|
||||
{{ ucwords(str_replace('_', ' ', $cash_flow->platform)) }}</td>
|
||||
|
||||
<td style="border:1px solid gainsboro; text-align:center; {{ $cash_flow->type === 'credit' ? 'color:green;' : '' }}">
|
||||
{{ $cash_flow->type === 'credit' ? currency_format($cash_flow->amount, currency: business_currency()) : currency_format(0) }}
|
||||
<td
|
||||
style="border:1px solid gainsboro; text-align:center; {{ $cash_flow->type === 'credit' ? 'color:green;' : '' }}">
|
||||
{{ $cash_flow->type === 'credit' ? currency_format($cash_flow->amount, currency: business_currency()) : currency_format(0, currency: business_currency()) }}
|
||||
</td>
|
||||
|
||||
<td style="border:1px solid gainsboro; text-align:center; {{ $cash_flow->type === 'debit' ? 'color:red;' : '' }}">
|
||||
{{ $cash_flow->type === 'debit' ? currency_format($cash_flow->amount, currency: business_currency()) : currency_format(0) }}
|
||||
<td
|
||||
style="border:1px solid gainsboro; text-align:center; {{ $cash_flow->type === 'debit' ? 'color:red;' : '' }}">
|
||||
{{ $cash_flow->type === 'debit' ? currency_format($cash_flow->amount, currency: business_currency()) : currency_format(0, currency: business_currency()) }}
|
||||
</td>
|
||||
|
||||
<td style="border:1px solid gainsboro; text-align:center; {{ $runningCash < 0 ? 'color:red;' : 'color:green;' }}">
|
||||
<td
|
||||
style="border:1px solid gainsboro; text-align:center; {{ $runningCash < 0 ? 'color:red;' : 'color:green;' }}">
|
||||
{{ currency_format($runningCash, currency: business_currency()) }}
|
||||
</td>
|
||||
</tr>
|
||||
@@ -87,7 +84,8 @@
|
||||
@if ($cash_flows->count() > 0)
|
||||
<tfoot>
|
||||
<tr style="background-color:#C52127; color:white; font-weight:bold;">
|
||||
<td style="border:1px solid gainsboro; text-align:center; color: white; font-weight: 600;">{{__('Total')}}</td>
|
||||
<td style="border:1px solid gainsboro; text-align:center; color: white; font-weight: 600;">{{__('Total')}}
|
||||
</td>
|
||||
<td style="border:1px solid gainsboro;"></td>
|
||||
<td style="border:1px solid gainsboro;"></td>
|
||||
<td style="border:1px solid gainsboro;"></td>
|
||||
@@ -104,4 +102,4 @@
|
||||
</tfoot>
|
||||
@endif
|
||||
</table>
|
||||
@endsection
|
||||
@endsection
|
||||
@@ -1,23 +1,8 @@
|
||||
@if ($filter_from_date && $filter_to_date)
|
||||
<div class="mb-2 text-center fw-bold duration-display">
|
||||
<strong>{{ __('Duration:') }}</strong>
|
||||
@if ($duration === 'today')
|
||||
{{ Carbon\Carbon::parse($filter_from_date)->format('d-m-Y') }}
|
||||
@elseif ($duration === 'yesterday')
|
||||
{{ Carbon\Carbon::parse($filter_from_date)->format('d-m-Y') }}
|
||||
@else
|
||||
{{ Carbon\Carbon::parse($filter_from_date)->format('d-m-Y') }}
|
||||
{{ __('to') }}
|
||||
{{ Carbon\Carbon::parse($filter_to_date)->format('d-m-Y') }}
|
||||
@endif
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<div class="responsive-table m-0">
|
||||
<table class="table" id="datatable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="w-60 d-print-none">
|
||||
<th class="w-60">
|
||||
<div class="d-flex align-items-center gap-3">
|
||||
<input type="checkbox" class="select-all-delete multi-delete">
|
||||
</div>
|
||||
@@ -28,16 +13,15 @@
|
||||
<th>{{ __('Payment') }}</th>
|
||||
<th>{{ __('Name') }}</th>
|
||||
<th>{{ __('Amount') }}</th>
|
||||
<th class="text-center d-print-none">{{ __('Action') }}</th>
|
||||
<th class="text-center">{{ __('Action') }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach ($cashes as $cash)
|
||||
<tr>
|
||||
<td class="w-60 checkbox d-print-none">
|
||||
@if($cash->platform === 'cash' && in_array($cash->transaction_type, ['cash_to_bank','adjust_cash']))
|
||||
<input type="checkbox" name="ids[]" class="delete-checkbox-item multi-delete" value="{{ $cash->id }}">
|
||||
@endif
|
||||
<td class="w-60 checkbox">
|
||||
<input type="checkbox" name="ids[]" class="delete-checkbox-item multi-delete"
|
||||
value="{{ $cash->id }}">
|
||||
</td>
|
||||
|
||||
<td>{{ ($cashes->currentPage() - 1) * $cashes->perPage() + $loop->iteration }}</td>
|
||||
@@ -55,7 +39,7 @@
|
||||
</td>
|
||||
|
||||
<td>
|
||||
<div class="dropdown table-action d-print-none">
|
||||
<div class="dropdown table-action">
|
||||
<button type="button" data-bs-toggle="dropdown">
|
||||
<i class="far fa-ellipsis-v"></i>
|
||||
</button>
|
||||
@@ -116,10 +100,10 @@
|
||||
$editConfig = ['url' => route('business.sales.index')];
|
||||
} elseif ($cash->platform === 'purchase') {
|
||||
$editConfig = ['url' => route('business.purchases.index')];
|
||||
} elseif ($cash->platform === 'income') {
|
||||
$editConfig = ['url' => route('business.incomes.index')];
|
||||
}elseif ($cash->platform === 'expense') {
|
||||
$editConfig = ['url' => route('business.expenses.index')];
|
||||
} elseif ($cash->platform === 'income' && $cash->reference_id) {
|
||||
$editConfig = ['url' => route('business.incomes.edit', $cash->reference_id)];
|
||||
}elseif ($cash->platform === 'expense' && $cash->reference_id) {
|
||||
$editConfig = ['url' => route('business.expenses.edit', $cash->reference_id)];
|
||||
}elseif ($cash->platform === 'sale_return') {
|
||||
$editConfig = ['url' => route('business.sale-returns.index')];
|
||||
}elseif ($cash->platform === 'purchase_return') {
|
||||
@@ -154,14 +138,12 @@
|
||||
|
||||
{{-- Delete --}}
|
||||
@usercan('cashes.delete')
|
||||
@if($cash->platform === 'cash' && in_array($cash->transaction_type, ['cash_to_bank','adjust_cash']))
|
||||
<li>
|
||||
<a href="{{ route('business.cashes.destroy', $cash->id) }}"
|
||||
class="confirm-action" data-method="DELETE">
|
||||
<i class="fal fa-trash-alt"></i> {{ __('Delete') }}
|
||||
</a>
|
||||
</li>
|
||||
@endif
|
||||
@endusercan
|
||||
|
||||
</ul>
|
||||
@@ -173,6 +155,6 @@ class="confirm-action" data-method="DELETE">
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div class="d-print-none">
|
||||
<div>
|
||||
{{ $cashes->links('vendor.pagination.bootstrap-5') }}
|
||||
</div>
|
||||
|
||||
@@ -14,13 +14,13 @@
|
||||
<div class="col-lg-2 col-md-6 ">
|
||||
<div class="profit-card p-3 m-2 text-white">
|
||||
<p class="stat-title">{{ __('Balance') }}</p>
|
||||
<p class="stat-value" id="cash_balance">{{ currency_format($cash_balance, 'icon', 2, business_currency()) }}</p>
|
||||
<p class="stat-value">{{ currency_format(cash_balance(), 'icon', 2, business_currency()) }}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="table-header p-16 d-print-none">
|
||||
<div class="table-header p-16">
|
||||
<h4>{{ __('Cash In Hand') }}</h4>
|
||||
|
||||
<div class="d-flex align-items-center gap-3">
|
||||
@@ -35,14 +35,8 @@
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="table-header justify-content-center border-0 d-none d-block d-print-block text-center">
|
||||
@include('business::print.header')
|
||||
<h4 class="mt-2">{{ __('Cash In Hand') }}</h4>
|
||||
</div>
|
||||
|
||||
<div class="table-top-form p-16-0">
|
||||
<form action="{{ route('business.cashes.index') }}" method="GET" class="report-filter-form d-print-none" table="#cashes-data">
|
||||
<form action="{{ route('business.cashes.index') }}" method="GET" class="filter-form" table="#cashes-data">
|
||||
|
||||
<div class="table-top-left d-flex gap-3 margin-l-16">
|
||||
<div class="gpt-up-down-arrow position-relative">
|
||||
@@ -98,30 +92,6 @@
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<div class="table-top-btn-group d-print-none me-2">
|
||||
<ul>
|
||||
<li>
|
||||
<a class="export-btn" class="export-btn" href="{{ route('business.cashes.csv') }}">
|
||||
<img src="{{ asset('assets/images/logo/csv.svg') }}" alt="">
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="export-btn" class="export-btn" href="{{ route('business.cashes.excel') }}">
|
||||
<img src="{{ asset('assets/images/logo/excel.svg') }}" alt="">
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="export-btn" class="export-btn" target="_blank" href="{{ route('business.cashes.pdf') }}">
|
||||
<img src="{{ asset('assets/images/logo/pdf.svg') }}" alt="">
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a onclick="window.print()" class="print-window">
|
||||
<img src="{{ asset('assets/images/logo/printer.svg') }}" alt="">
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -18,24 +18,16 @@
|
||||
|
||||
<div class="mt-3 col-lg-12">
|
||||
<label>{{ __('Icon') }}</label>
|
||||
<div class="custom-upload-wrapper">
|
||||
<div class="custom-image-box">
|
||||
<div class="custom-image-content">
|
||||
<svg width="30" height="30" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M18.3327 7.5026V12.5026C18.3327 14.8596 18.3327 16.0381 17.6004 16.7704C16.8682 17.5026 15.6897 17.5026 13.3327 17.5026H6.66602C4.309 17.5026 3.13048 17.5026 2.39825 16.7704C1.66602 16.0381 1.66602 14.8596 1.66602 12.5026V9.21404C1.66602 8.39729 1.66602 7.98892 1.76053 7.65502C1.99698 6.81974 2.64982 6.1669 3.48509 5.93046C3.819 5.83594 4.22736 5.83594 5.04409 5.83594C5.34907 5.83594 5.50157 5.83594 5.64361 5.81118C5.99556 5.74983 6.31847 5.577 6.56476 5.3182C6.66415 5.21375 6.91352 4.8397 7.08268 4.58594C7.413 4.09048 7.57815 3.84275 7.80393 3.67233C7.94181 3.56826 8.09502 3.48627 8.25809 3.42927C8.52512 3.33594 8.82287 3.33594 9.41837 3.33594H10.8327" stroke="#4B5563" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" />
|
||||
<path d="M13.3327 11.2474C13.3327 13.0883 11.8403 14.5807 9.99937 14.5807C8.1584 14.5807 6.66602 13.0883 6.66602 11.2474C6.66602 9.40641 8.1584 7.91406 9.99937 7.91406C11.8403 7.91406 13.3327 9.40641 13.3327 11.2474Z" stroke="#4B5563" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" />
|
||||
<path d="M13.334 4.58333H17.5007M15.4173 6.66667V2.5" stroke="#4B5563" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
<span class="custom-upload-text">{{ __('Add Icon') }}</span>
|
||||
<div class="border rounded upload-img-container">
|
||||
<label class="upload-v4">
|
||||
<div class="img-wrp">
|
||||
<img src="{{ asset('assets/images/icons/upload-icon.svg') }}" alt="Brand" id="brand-img">
|
||||
</div>
|
||||
|
||||
<!-- Preview image -->
|
||||
<img class="preview-image d-none" id="image" src="" alt="Preview">
|
||||
<input type="file" name="icon" class="preview-image-input" data-id="#image" accept="image/*">
|
||||
</div>
|
||||
<input type="file" name="icon" class="d-none" onchange="document.getElementById('brand-img').src = window.URL.createObjectURL(this.files[0])" accept="image/*">
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
<div class="offcanvas-footer mt-3">
|
||||
<div class="button-group text-center mt-5">
|
||||
|
||||
@@ -51,7 +51,7 @@ class="table-product-img">
|
||||
<a href="#category-edit-modal" class="category-edit-btn" data-bs-toggle="modal"
|
||||
data-url="{{ route('business.categories.update', $category->id) }}"
|
||||
data-category-name="{{ $category->categoryName }}"
|
||||
data-category-icon="{{ $category->icon ? asset($category->icon) : '' }}">
|
||||
data-category-icon="{{ asset($category->icon ?? 'assets/images/icons/upload-icon.svg') }}">
|
||||
<i class="fal fa-pencil-alt"></i>{{ __('Edit') }}
|
||||
</a>
|
||||
@endusercan
|
||||
|
||||
@@ -18,21 +18,13 @@ class="ajaxform_instant_reload categoryEditForm">
|
||||
</div>
|
||||
<div class="col-lg-12 mb-2">
|
||||
<label>{{ __("Icon") }}</label>
|
||||
<div class="custom-upload-wrapper">
|
||||
<div class="custom-image-box">
|
||||
<div class="custom-image-content">
|
||||
<svg width="30" height="30" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M18.3327 7.5026V12.5026C18.3327 14.8596 18.3327 16.0381 17.6004 16.7704C16.8682 17.5026 15.6897 17.5026 13.3327 17.5026H6.66602C4.309 17.5026 3.13048 17.5026 2.39825 16.7704C1.66602 16.0381 1.66602 14.8596 1.66602 12.5026V9.21404C1.66602 8.39729 1.66602 7.98892 1.76053 7.65502C1.99698 6.81974 2.64982 6.1669 3.48509 5.93046C3.819 5.83594 4.22736 5.83594 5.04409 5.83594C5.34907 5.83594 5.50157 5.83594 5.64361 5.81118C5.99556 5.74983 6.31847 5.577 6.56476 5.3182C6.66415 5.21375 6.91352 4.8397 7.08268 4.58594C7.413 4.09048 7.57815 3.84275 7.80393 3.67233C7.94181 3.56826 8.09502 3.48627 8.25809 3.42927C8.52512 3.33594 8.82287 3.33594 9.41837 3.33594H10.8327" stroke="#4B5563" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" />
|
||||
<path d="M13.3327 11.2474C13.3327 13.0883 11.8403 14.5807 9.99937 14.5807C8.1584 14.5807 6.66602 13.0883 6.66602 11.2474C6.66602 9.40641 8.1584 7.91406 9.99937 7.91406C11.8403 7.91406 13.3327 9.40641 13.3327 11.2474Z" stroke="#4B5563" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" />
|
||||
<path d="M13.334 4.58333H17.5007M15.4173 6.66667V2.5" stroke="#4B5563" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
<span class="custom-upload-text">{{ __('Add Icon') }}</span>
|
||||
<div class="border rounded upload-img-container">
|
||||
<label class="upload-v4">
|
||||
<div class="img-wrp">
|
||||
<img src="" alt="user" id="category_icon">
|
||||
</div>
|
||||
|
||||
<!-- Preview image -->
|
||||
<img class="preview-image d-none" id="category_icon" src="" alt="Preview">
|
||||
<input type="file" name="icon" class="preview-image-input" data-id="#category_icon" accept="image/*">
|
||||
</div>
|
||||
<input type="file" name="icon" class="d-none" onchange="document.getElementById('category_icon').src = window.URL.createObjectURL(this.files[0])" accept="image/*">
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -62,7 +62,7 @@ class="filter-form" table="#set-commission-data">
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" href="{{ route('business.balance-sheet.pdf') }}">
|
||||
<a target="blank" href="{{ route('business.balance-sheet.pdf') }}">
|
||||
<img src="{{ asset('assets/images/logo/pdf.svg') }}" alt="">
|
||||
</a>
|
||||
</li>
|
||||
@@ -127,4 +127,4 @@ class="filter-form" table="#set-commission-data">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endpush
|
||||
@endpush
|
||||
@@ -4,31 +4,30 @@
|
||||
|
||||
{{-- Check only for Sale, Income & Due collect --}}
|
||||
@if(!in_array($context ?? '', ['purchase', 'expense', 'due_pay']))
|
||||
<option value="cheque">{{ __('Cheque') }}</option>
|
||||
<option value="cheque">{{ __('Cheque') }}</option>
|
||||
@endif
|
||||
|
||||
{{-- Wallet only for Sale, Purchase, Due (party exist) --}}
|
||||
@if(!in_array($context ?? '', ['income', 'expense', 'guest_due']))
|
||||
<option value="wallet">{{ __('Wallet') }}</option>
|
||||
<option value="wallet">{{ __('Wallet') }}</option>
|
||||
@endif
|
||||
|
||||
@foreach ($payment_types as $type)
|
||||
<option value="{{ $type->id }}">{{ $type->name }}</option>
|
||||
<option value="{{ $type->id }}">{{ $type->name }}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
|
||||
{{-- hidden cheque input field --}}
|
||||
<div class="cheque-input mt-2 d-none" disabled>
|
||||
<input type="text" name="payments[main][cheque_number]" class="form-control" placeholder="Enter Cheque Number" disabled>
|
||||
<input type="text" name="payments[main][cheque_number]" class="form-control" placeholder="Enter Cheque Number"
|
||||
disabled>
|
||||
</div>
|
||||
|
||||
{{-- Dynamic payments (optional data for edit) --}}
|
||||
<div class="payment-main-container"
|
||||
@if(!empty($transactions))
|
||||
data-existing-transactions='@json($transactions)'
|
||||
@endif>
|
||||
<div class="payment-main-container" @if(!empty($transactions)) data-existing-transactions='@json($transactions)'
|
||||
data-change-amount="{{ $sale->change_amount ?? 0 }}" @endif>
|
||||
{{-- Dynamic payments will appear here --}}
|
||||
</div>
|
||||
|
||||
<button type="button" class="add-payment-button">+ {{ __('Add Payment') }}</button>
|
||||
</div>
|
||||
</div>
|
||||
@@ -267,8 +267,8 @@
|
||||
|
||||
<div class=" tab-table-container">
|
||||
<div class="custom-tabs">
|
||||
<button class="tab-item active" data-tab="sales">{{ __('Recent Sales') }}</button>
|
||||
<button class="tab-item" data-tab="purchase">{{ __('Recent Purchase') }}</button>
|
||||
<button class="tab-item active" onclick="showTab('sales')">{{ __('Recent Sales') }}</button>
|
||||
<button class="tab-item" onclick="showTab('purchase')">{{ __('Recent Purchase') }}</button>
|
||||
</div>
|
||||
<div id="sales" class="tab-content dashboard-tab active">
|
||||
<div class="table-container">
|
||||
@@ -305,7 +305,7 @@
|
||||
<tr>
|
||||
<th class="text-start" scope="col">{{ __("Date") }}</th>
|
||||
<th class="text-center" scope="col">{{ __("Invoice") }}</th>
|
||||
<th class="text-center" scope="col">{{ __("Supplier") }}</th>
|
||||
<th class="text-center" scope="col">{{ __("Customer") }}</th>
|
||||
<th class="text-center" scope="col">{{ __("Total") }}</th>
|
||||
<th class="text-center" scope="col">{{ __("Paid") }}</th>
|
||||
<th class="text-center pr-3" scope="col">{{ __("Due") }}</th>
|
||||
|
||||
@@ -69,10 +69,11 @@
|
||||
@endphp
|
||||
<td class="text-start">{{ currency_format($total_amount, currency: business_currency()) }}</td>
|
||||
<td class="text-start {{ $day_book->type === 'credit' ? 'text-success' : '' }}">
|
||||
{{ $day_book->type === 'credit' ? currency_format($day_book->amount, currency: business_currency()) : currency_format(0) }}
|
||||
{{ $day_book->type === 'credit' ? currency_format($total_amount, currency: business_currency()) : currency_format(0, currency: business_currency()) }}
|
||||
</td>
|
||||
|
||||
<td class="text-start {{ $day_book->type === 'debit' ? 'text-danger' : '' }}">
|
||||
{{ $day_book->type === 'debit' ? currency_format($day_book->amount, currency: business_currency()) : currency_format(0) }}
|
||||
{{ $day_book->type === 'debit' ? currency_format($day_book->amount, currency: business_currency()) : currency_format(0, currency: business_currency()) }}
|
||||
</td>
|
||||
<td class="text-start">
|
||||
{{ $day_book->payment_type_id ? $day_book->paymentType?->name : ucfirst(explode('_', $day_book->transaction_type)[0]) }}
|
||||
@@ -115,6 +116,17 @@
|
||||
};
|
||||
});
|
||||
|
||||
$page_money_in_new = $day_books->getCollection()->where('type', 'credit')->sum(function ($day_book) {
|
||||
return match($day_book->platform) {
|
||||
'sale' => $day_book->sale?->totalAmount ?? 0,
|
||||
'sale_return' => $day_book->saleReturn?->sale?->totalAmount ?? 0,
|
||||
'purchase' => $day_book->purchase?->totalAmount ?? 0,
|
||||
'purchase_return' => $day_book->purchaseReturn?->purchase?->totalAmount ?? 0,
|
||||
'due_collect', 'due_pay' => $day_book->dueCollect?->totalDue ?? 0,
|
||||
default => 0
|
||||
};
|
||||
});
|
||||
|
||||
$page_money_in = $day_books->getCollection()->where('type', 'credit')->sum('amount');
|
||||
$page_money_out = $day_books->getCollection()->where('type', 'debit')->sum('amount');
|
||||
@endphp
|
||||
@@ -127,6 +139,7 @@
|
||||
<td class="d-print-none"></td>
|
||||
<td class="d-print-none text-end"></td>
|
||||
<td class="text-start">{{ currency_format($page_total_amount, currency: business_currency()) }}</td>
|
||||
<td class="text-start">{{ currency_format($page_money_in_new, currency: business_currency()) }}</td>
|
||||
<td class="text-start">{{ currency_format($page_money_in, currency: business_currency()) }}</td>
|
||||
<td class="text-start">{{ currency_format($page_money_out, currency: business_currency()) }}</td>
|
||||
<td></td>
|
||||
|
||||
@@ -37,29 +37,52 @@
|
||||
<td class="text-start">{{ ucwords(str_replace('_', ' ', $day_book->platform)) }}</td>
|
||||
|
||||
@if ($day_book->platform == 'sale')
|
||||
<td class="text-start">{{ currency_format($day_book->sale?->totalAmount ?? 0, currency: business_currency()) }}</td>
|
||||
<td class="text-start">
|
||||
{{ currency_format($day_book->sale?->totalAmount ?? 0, currency: business_currency()) }}
|
||||
</td>
|
||||
@elseif ($day_book->platform == 'sale_return')
|
||||
<td class="text-start">{{ currency_format($day_book->saleReturn?->sale?->totalAmount ?? 0, currency: business_currency()) }}</td>
|
||||
<td class="text-start">
|
||||
{{ currency_format($day_book->saleReturn?->sale?->totalAmount ?? 0, currency: business_currency()) }}
|
||||
</td>
|
||||
@elseif ($day_book->platform == 'purchase')
|
||||
<td class="text-start">{{ currency_format($day_book->purchase?->totalAmount ?? 0, currency: business_currency()) }}</td>
|
||||
<td class="text-start">
|
||||
{{ currency_format($day_book->purchase?->totalAmount ?? 0, currency: business_currency()) }}
|
||||
</td>
|
||||
@elseif ($day_book->platform == 'purchase_return')
|
||||
<td class="text-start">{{ currency_format($day_book->purchaseReturn?->purchase?->totalAmount ?? 0, currency: business_currency()) }}</td>
|
||||
<td class="text-start">
|
||||
{{ currency_format($day_book->purchaseReturn?->purchase?->totalAmount ?? 0, currency: business_currency()) }}
|
||||
</td>
|
||||
@elseif ($day_book->platform == 'due_collect' || $day_book->platform == 'due_pay')
|
||||
<td class="text-start">{{ currency_format($day_book->dueCollect?->totalDue ?? 0, currency: business_currency()) }}</td>
|
||||
<td class="text-start">
|
||||
{{ currency_format($day_book->dueCollect?->totalDue ?? 0, currency: business_currency()) }}
|
||||
</td>
|
||||
@else
|
||||
<td class="text-start">{{ currency_format(0) }}</td>
|
||||
<td class="text-start">{{ currency_format(0, currency: business_currency()) }}</td>
|
||||
@endif
|
||||
|
||||
@php
|
||||
$total_amount = match ($day_book->platform) {
|
||||
'sale' => $day_book->sale?->totalAmount ?? 0,
|
||||
'sale_return' => $day_book->saleReturn?->sale?->totalAmount ?? 0,
|
||||
'purchase' => $day_book->purchase?->totalAmount ?? 0,
|
||||
'purchase_return' => $day_book->purchaseReturn?->purchase?->totalAmount ?? 0,
|
||||
'due_collect', 'due_pay' => $day_book->dueCollect?->totalDue ?? 0,
|
||||
default => 0
|
||||
};
|
||||
@endphp
|
||||
|
||||
@if ($day_book->type === 'credit')
|
||||
<td class="text-start text-success">{{ currency_format($day_book->amount, currency: business_currency()) }}</td>
|
||||
<td class="text-start text-success">{{ currency_format($total_amount, currency: business_currency()) }}
|
||||
</td>
|
||||
@else
|
||||
<td class="text-start">{{ currency_format(0) }}</td>
|
||||
<td class="text-start">{{ currency_format(0, currency: business_currency()) }}</td>
|
||||
@endif
|
||||
|
||||
@if ($day_book->type === 'debit')
|
||||
<td class="text-start text-danger">{{ currency_format($day_book->amount, currency: business_currency()) }}</td>
|
||||
<td class="text-start text-danger">{{ currency_format($day_book->amount, currency: business_currency()) }}
|
||||
</td>
|
||||
@else
|
||||
<td class="text-start">{{ currency_format(0) }}</td>
|
||||
<td class="text-start">{{ currency_format(0, currency: business_currency()) }}</td>
|
||||
@endif
|
||||
|
||||
@if ($day_book->payment_type_id)
|
||||
@@ -87,7 +110,18 @@
|
||||
|
||||
@php
|
||||
$page_total_amount = $day_books->sum(function ($day_book) {
|
||||
return match($day_book->platform) {
|
||||
return match ($day_book->platform) {
|
||||
'sale' => $day_book->sale?->totalAmount ?? 0,
|
||||
'sale_return' => $day_book->saleReturn?->sale?->totalAmount ?? 0,
|
||||
'purchase' => $day_book->purchase?->totalAmount ?? 0,
|
||||
'purchase_return' => $day_book->purchaseReturn?->purchase?->totalAmount ?? 0,
|
||||
'due_collect', 'due_pay' => $day_book->dueCollect?->totalDue ?? 0,
|
||||
default => 0
|
||||
};
|
||||
});
|
||||
|
||||
$page_money_in_new = $day_books->where('type', 'credit')->sum(function ($day_book) {
|
||||
return match ($day_book->platform) {
|
||||
'sale' => $day_book->sale?->totalAmount ?? 0,
|
||||
'sale_return' => $day_book->saleReturn?->sale?->totalAmount ?? 0,
|
||||
'purchase' => $day_book->purchase?->totalAmount ?? 0,
|
||||
@@ -115,4 +149,4 @@
|
||||
<td class="d-print-none"></td>
|
||||
</tr>
|
||||
@endif
|
||||
</table>
|
||||
</table>
|
||||
@@ -23,19 +23,19 @@
|
||||
<div class="col-lg-2 col-md-12 ">
|
||||
<div class="loss-card p-3 m-2 text-white">
|
||||
<p class="stat-title">{{ __('Total Transaction') }}</p>
|
||||
<p class="stat-value" id="total_money_in_out_amount">{{ currency_format($total_money_in_out_amount, 'icon', 2, business_currency()) }}</p>
|
||||
<p class="stat-value">{{ currency_format($total_amount, 'icon', 2, business_currency()) }}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-2 col-md-6 ">
|
||||
<div class="profit-card p-3 m-2 text-white">
|
||||
<p class="stat-title">{{ __('Money In') }}</p>
|
||||
<p class="stat-value" id="total_money_in">{{ currency_format($total_money_in, 'icon', 2, business_currency()) }}</p>
|
||||
<p class="stat-value">{{ currency_format($total_money_in, 'icon', 2, business_currency()) }}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-2 col-md-6 ">
|
||||
<div class="sales-card p-3 m-2 text-white">
|
||||
<p class="stat-title">{{ __('Money Out') }}</p>
|
||||
<p class="stat-value" id="total_money_out">{{ currency_format($total_money_out, 'icon', 2, business_currency()) }}</p>
|
||||
<p class="stat-value">{{ currency_format($total_money_out, 'icon', 2, business_currency()) }}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -114,17 +114,17 @@
|
||||
<div class="table-top-btn-group d-print-none p-2">
|
||||
<ul>
|
||||
<li>
|
||||
<a class="export-btn" href="{{ route('business.day-book-reports.csv') }}">
|
||||
<a href="{{ route('business.day-book-reports.csv') }}">
|
||||
<img src="{{ asset('assets/images/logo/csv.svg') }}" alt="">
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="export-btn" href="{{ route('business.day-book-reports.excel') }}">
|
||||
<a href="{{ route('business.day-book-reports.excel') }}">
|
||||
<img src="{{ asset('assets/images/logo/excel.svg') }}" alt="">
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="export-btn" target="_blank" href="{{ route('business.day-book-reports.pdf') }}">
|
||||
<a target="blank" href="{{ route('business.day-book-reports.pdf') }}">
|
||||
<img src="{{ asset('assets/images/logo/pdf.svg') }}" alt="">
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -4,19 +4,7 @@
|
||||
<div class="table-header justify-content-center border-0 d-none d-block d-print-block text-center">
|
||||
@include('business::print.header')
|
||||
<h4 style="text-align: center; margin: 0; padding: 0; font-size: 16px;" class="">{{ __('Day Book Report List') }}</h4>
|
||||
@if ($filter_from_date && $filter_to_date)
|
||||
<p style="text-align: center; margin: 0; padding: 0; font-weight: 400; font-size: 14px;" class="">{{ __('Duration:') }}
|
||||
@if ($duration === 'today')
|
||||
{{ Carbon\Carbon::parse($filter_from_date)->format('d-m-Y') }}
|
||||
@elseif ($duration === 'yesterday')
|
||||
{{ Carbon\Carbon::parse($filter_from_date)->format('d-m-Y') }}
|
||||
@else
|
||||
{{ Carbon\Carbon::parse($filter_from_date)->format('d-m-Y') }}
|
||||
{{ __('to') }}
|
||||
{{ Carbon\Carbon::parse($filter_to_date)->format('d-m-Y') }}
|
||||
@endif
|
||||
</p>
|
||||
@endif
|
||||
{{-- <p style="text-align: center; margin: 0; padding: 0; font-weight: 400; font-size: 14px;" class="">{{ __('Duration: 14-12-2025 to 24-12-2025') }}</p> --}}
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@@ -66,19 +54,31 @@
|
||||
@elseif ($day_book->platform == 'due_collect' || $day_book->platform == 'due_pay')
|
||||
<td style="border:1px solid gainsboro; text-align:center;">{{ currency_format($day_book->dueCollect?->totalDue ?? 0, currency: business_currency()) }}</td>
|
||||
@else
|
||||
<td style="border:1px solid gainsboro; text-align:center;">{{ currency_format(0) }}</td>
|
||||
<td style="border:1px solid gainsboro; text-align:center;">{{ currency_format(0, currency: business_currency()) }}</td>
|
||||
@endif
|
||||
|
||||
@php
|
||||
$total_amount = match($day_book->platform) {
|
||||
'sale' => $day_book->sale?->totalAmount ?? 0,
|
||||
'sale_return' => $day_book->saleReturn?->sale?->totalAmount ?? 0,
|
||||
'purchase' => $day_book->purchase?->totalAmount ?? 0,
|
||||
'purchase_return' => $day_book->purchaseReturn?->purchase?->totalAmount ?? 0,
|
||||
'due_collect', 'due_pay' => $day_book->dueCollect?->totalDue ?? 0,
|
||||
default => 0
|
||||
};
|
||||
@endphp
|
||||
|
||||
@if ($day_book->type === 'credit')
|
||||
<td style="border:1px solid gainsboro; text-align:center; color:green;">{{ currency_format($day_book->amount, currency: business_currency()) }}</td>
|
||||
<td style="border:1px solid gainsboro; text-align:center; color:green;">{{ currency_format($total_amount, currency: business_currency()) }}</td>
|
||||
@else
|
||||
<td style="border:1px solid gainsboro; text-align:center;">{{ currency_format(0) }}</td>
|
||||
<td style="border:1px solid gainsboro; text-align:center;">{{ currency_format(0, currency: business_currency()) }}</td>
|
||||
@endif
|
||||
|
||||
|
||||
@if ($day_book->type === 'debit')
|
||||
<td style="border:1px solid gainsboro; text-align:center; color:red;">{{ currency_format($day_book->amount, currency: business_currency()) }}</td>
|
||||
@else
|
||||
<td style="border:1px solid gainsboro; text-align:center;">{{ currency_format(0) }}</td>
|
||||
<td style="border:1px solid gainsboro; text-align:center;">{{ currency_format(0, currency: business_currency()) }}</td>
|
||||
@endif
|
||||
|
||||
@if ($day_book->payment_type_id)
|
||||
@@ -102,6 +102,17 @@
|
||||
};
|
||||
});
|
||||
|
||||
$page_money_in_new = $day_books->where('type', 'credit')->sum(function ($day_book) {
|
||||
return match($day_book->platform) {
|
||||
'sale' => $day_book->sale?->totalAmount ?? 0,
|
||||
'sale_return' => $day_book->saleReturn?->sale?->totalAmount ?? 0,
|
||||
'purchase' => $day_book->purchase?->totalAmount ?? 0,
|
||||
'purchase_return' => $day_book->purchaseReturn?->purchase?->totalAmount ?? 0,
|
||||
'due_collect', 'due_pay' => $day_book->dueCollect?->totalDue ?? 0,
|
||||
default => 0
|
||||
};
|
||||
});
|
||||
|
||||
$page_money_in = $day_books->where('type', 'credit')->sum('amount');
|
||||
$page_money_out = $day_books->where('type', 'debit')->sum('amount');
|
||||
@endphp
|
||||
|
||||
@@ -2,27 +2,26 @@
|
||||
<table class="table" id="datatable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="d-print-none">{{ __('SL') }}.</th>
|
||||
<th>{{ __('SL') }}.</th>
|
||||
<th>{{ __('Name') }}</th>
|
||||
<th>{{ __('Email') }}</th>
|
||||
<th>{{ __('Phone') }}</th>
|
||||
<th>{{ __('Type') }}</th>
|
||||
<th class="text-end">{{ __('Due Amount') }}</th>
|
||||
<th class="d-print-none">{{ __('Action') }}</th>
|
||||
<th>{{ __('Action') }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach ($parties as $party)
|
||||
<tr>
|
||||
<td class="d-print-none">{{ ($parties->currentPage() - 1) * $parties->perPage() + $loop->iteration }}
|
||||
</td>
|
||||
<td>{{ ($parties->currentPage() - 1) * $parties->perPage() + $loop->iteration }}</td>
|
||||
<td>{{ $party->name }}</td>
|
||||
<td>{{ $party->email }}</td>
|
||||
<td>{{ $party->phone }}</td>
|
||||
@if ($party->type == 'Retailer')
|
||||
<td>{{ __('Customer') }}</td>
|
||||
@else
|
||||
<td>{{ $party->type }}</td>
|
||||
<td>{{ $party->type }}</td>
|
||||
@endif
|
||||
<td class="text-danger text-end">
|
||||
{{ currency_format($party->due, currency: business_currency()) }}
|
||||
@@ -40,61 +39,32 @@
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@if ($party->type != 'Supplier')
|
||||
<li>
|
||||
<a href="#"
|
||||
data-url="{{ route('business.dues.view-payment', $party->id) }}"
|
||||
class="view-due-payment-btn" data-bs-toggle="modal"
|
||||
data-bs-target="#view-due-payment-modal">
|
||||
<svg width="18" height="18" viewBox="0 0 18 18" fill="none"
|
||||
xmlns="http://www.w3.org/2000/svg">
|
||||
<path
|
||||
d="M3 13.9844V6.0407C3 3.90019 3 2.82994 3.65901 2.16497C4.31802 1.5 5.37868 1.5 7.5 1.5H10.5C12.6213 1.5 13.6819 1.5 14.341 2.16497C15 2.82994 15 3.90019 15 6.0407V13.9844C15 15.1181 15 15.685 14.6535 15.9081C14.0873 16.2728 13.2121 15.5081 12.7718 15.2305C12.4081 15.0011 12.2263 14.8864 12.0244 14.8798C11.8063 14.8726 11.6212 14.9826 11.2282 15.2305L9.795 16.1343C9.40838 16.3781 9.2151 16.5 9 16.5C8.7849 16.5 8.59162 16.3781 8.205 16.1343L6.77185 15.2305C6.40811 15.0011 6.22624 14.8864 6.0244 14.8798C5.80629 14.8726 5.6212 14.9826 5.22815 15.2305C4.78796 15.5081 3.91265 16.2728 3.34646 15.9081C3 15.685 3 15.1181 3 13.9844Z"
|
||||
stroke="#4B5563" stroke-linecap="round" stroke-linejoin="round" />
|
||||
<path d="M12 4.5H6" stroke="#4B5563" stroke-linecap="round"
|
||||
stroke-linejoin="round" />
|
||||
<path d="M7.5 7.5H6" stroke="#4B5563" stroke-linecap="round"
|
||||
stroke-linejoin="round" />
|
||||
<path
|
||||
d="M10.875 7.40625C10.2537 7.40625 9.75 7.84695 9.75 8.39063C9.75 8.9343 10.2537 9.375 10.875 9.375C11.4963 9.375 12 9.8157 12 10.3594C12 10.9031 11.4963 11.3438 10.875 11.3438M10.875 7.40625C11.3648 7.40625 11.7815 7.68015 11.936 8.0625M10.875 7.40625V6.75M10.875 11.3438C10.3852 11.3438 9.96847 11.0699 9.81405 10.6875M10.875 11.3438V12"
|
||||
stroke="#4B5563" stroke-linecap="round" />
|
||||
</svg>
|
||||
{{ __('View Payment') }}
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@if ($party->dueCollect)
|
||||
<li>
|
||||
<a href="#" data-url="{{ route('business.dues.view-payment', $party->id) }}"
|
||||
class="view-due-payment-btn" data-bs-toggle="modal"
|
||||
data-bs-target="#view-due-payment-modal">
|
||||
<svg width="18" height="18" viewBox="0 0 18 18" fill="none"
|
||||
xmlns="http://www.w3.org/2000/svg">
|
||||
<path
|
||||
d="M3 13.9844V6.0407C3 3.90019 3 2.82994 3.65901 2.16497C4.31802 1.5 5.37868 1.5 7.5 1.5H10.5C12.6213 1.5 13.6819 1.5 14.341 2.16497C15 2.82994 15 3.90019 15 6.0407V13.9844C15 15.1181 15 15.685 14.6535 15.9081C14.0873 16.2728 13.2121 15.5081 12.7718 15.2305C12.4081 15.0011 12.2263 14.8864 12.0244 14.8798C11.8063 14.8726 11.6212 14.9826 11.2282 15.2305L9.795 16.1343C9.40838 16.3781 9.2151 16.5 9 16.5C8.7849 16.5 8.59162 16.3781 8.205 16.1343L6.77185 15.2305C6.40811 15.0011 6.22624 14.8864 6.0244 14.8798C5.80629 14.8726 5.6212 14.9826 5.22815 15.2305C4.78796 15.5081 3.91265 16.2728 3.34646 15.9081C3 15.685 3 15.1181 3 13.9844Z"
|
||||
stroke="#4B5563" stroke-linecap="round" stroke-linejoin="round" />
|
||||
<path d="M12 4.5H6" stroke="#4B5563" stroke-linecap="round"
|
||||
stroke-linejoin="round" />
|
||||
<path d="M7.5 7.5H6" stroke="#4B5563" stroke-linecap="round"
|
||||
stroke-linejoin="round" />
|
||||
<path
|
||||
d="M10.875 7.40625C10.2537 7.40625 9.75 7.84695 9.75 8.39063C9.75 8.9343 10.2537 9.375 10.875 9.375C11.4963 9.375 12 9.8157 12 10.3594C12 10.9031 11.4963 11.3438 10.875 11.3438M10.875 7.40625C11.3648 7.40625 11.7815 7.68015 11.936 8.0625M10.875 7.40625V6.75M10.875 11.3438C10.3852 11.3438 9.96847 11.0699 9.81405 10.6875M10.875 11.3438V12"
|
||||
stroke="#4B5563" stroke-linecap="round" />
|
||||
</svg>
|
||||
{{ __('View Payment') }}
|
||||
</a>
|
||||
</li>
|
||||
@endif
|
||||
|
||||
@if (moduleCheck('MarketingAddon'))
|
||||
<li>
|
||||
<a href="{{ route('business.payment-reminder', $party->id) }}">
|
||||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none"
|
||||
xmlns="http://www.w3.org/2000/svg">
|
||||
<g clip-path="url(#clip0_40008926_148433)">
|
||||
<path
|
||||
d="M18.3327 9.9974C18.3327 14.5997 14.6017 18.3307 9.99935 18.3307C5.39697 18.3307 1.66602 14.5997 1.66602 9.9974C1.66602 5.39502 5.39697 1.66406 9.99935 1.66406C14.6017 1.66406 18.3327 5.39502 18.3327 9.9974Z"
|
||||
stroke="#4B5563" stroke-width="1.5" />
|
||||
<path
|
||||
d="M12.2578 8.38067C12.1753 7.74512 11.4455 6.71827 10.1333 6.71824C8.60868 6.71822 7.96715 7.56263 7.83697 7.98484C7.63389 8.54958 7.6745 9.71067 9.4616 9.83725C11.6955 9.99558 12.5904 10.2593 12.4766 11.6264C12.3627 12.9935 11.1174 13.2889 10.1333 13.2572C9.14918 13.2256 7.53905 12.7735 7.47656 11.5575M9.97718 5.82812V6.72127M9.97718 13.249V14.1614"
|
||||
stroke="#4B5563" stroke-width="1.5" stroke-linecap="round" />
|
||||
</g>
|
||||
<defs>
|
||||
<clipPath id="clip0_40008926_148433">
|
||||
<rect width="20" height="20" fill="white" />
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
||||
|
||||
{{ __('Payment Reminder') }}
|
||||
</a>
|
||||
</li>
|
||||
@endif
|
||||
|
||||
@php
|
||||
$due = $party->dueCollect()->latest()->first();
|
||||
@endphp
|
||||
|
||||
@if ($due)
|
||||
<li>
|
||||
<a href="{{ route('business.collect.dues.invoice', $due->id) }}" target="_blank">
|
||||
<a href="{{ route('business.collect.dues.invoice', $party->id) }}"
|
||||
target="_blank">
|
||||
<img src="{{ asset('assets/images/icons/Invoic.svg') }}" alt="">
|
||||
{{ __('Invoice') }}
|
||||
</a>
|
||||
@@ -105,22 +75,10 @@ class="view-due-payment-btn" data-bs-toggle="modal"
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
|
||||
</tbody>
|
||||
@if ($parties->count() > 0)
|
||||
<tr class="table-footer">
|
||||
<td class="text-start">{{ __('Total') }}</td>
|
||||
<td class="d-print-none"></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td class="text-end">
|
||||
{{ currency_format($parties->sum('due'), currency: business_currency()) }}
|
||||
</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
@endif
|
||||
</table>
|
||||
</div>
|
||||
<div class="mt-3">
|
||||
{{ $parties->links('vendor.pagination.bootstrap-5') }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -12,29 +12,23 @@
|
||||
<div class="d-flex align-items-center justify-content-center gap-3">
|
||||
<div class="profit-card p-3 text-white">
|
||||
<p class="stat-title">{{ __('Supplier Due') }}</p>
|
||||
<p class="stat-value" id="total_supplier_due">{{ currency_format($total_supplier_due, currency: business_currency()) }}</p>
|
||||
<p class="stat-value">{{ currency_format($total_supplier_due, currency: business_currency()) }}</p>
|
||||
</div>
|
||||
|
||||
<div class="loss-card p-3 text-white">
|
||||
<p class="stat-title">{{ __('Customer Due') }}</p>
|
||||
<p class="stat-value" id="total_customer_due">{{ currency_format($total_customer_due, currency: business_currency()) }}</p>
|
||||
<p class="stat-value">{{ currency_format($total_customer_due, currency: business_currency()) }}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card">
|
||||
<div class="card-bodys">
|
||||
<div class="table-header p-16 d-print-none">
|
||||
<div class="table-header p-16">
|
||||
<h4>{{ __('Due List') }}</h4>
|
||||
</div>
|
||||
|
||||
<div class="table-header justify-content-center border-0 d-none d-block d-print-block text-center">
|
||||
@include('business::print.header')
|
||||
<h4 class="mt-2">{{ __('Due List') }}</h4>
|
||||
</div>
|
||||
|
||||
<div class="table-top-form p-16 d-print-none">
|
||||
<form action="{{ route('business.dues.index') }}" method="GET" class="report-filter-form" table="#due-reports-data">
|
||||
<div class="table-top-form p-16">
|
||||
<form action="{{ route('business.dues.index') }}" method="GET" class="filter-form" table="#due-reports-data">
|
||||
|
||||
<div class="table-top-left d-flex gap-3 ">
|
||||
<div class="gpt-up-down-arrow position-relative">
|
||||
@@ -67,30 +61,6 @@
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<div class="table-top-btn-group d-print-none">
|
||||
<ul>
|
||||
<li>
|
||||
<a class="export-btn" class="export-btn" href="{{ route('business.dues.csv') }}">
|
||||
<img src="{{ asset('assets/images/logo/csv.svg') }}" alt="">
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="export-btn" class="export-btn" href="{{ route('business.dues.excel') }}">
|
||||
<img src="{{ asset('assets/images/logo/excel.svg') }}" alt="">
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="export-btn" class="export-btn" target="_blank" href="{{ route('business.dues.pdf') }}">
|
||||
<img src="{{ asset('assets/images/logo/pdf.svg') }}" alt="">
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a onclick="window.print()" class="print-window">
|
||||
<img src="{{ asset('assets/images/logo/printer.svg') }}" alt="">
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
@endsection
|
||||
|
||||
@section('main_content')
|
||||
@if (invoice_setting($party->business_id) == '3_inch_80mm' && moduleCheck('ThermalPrinterAddon'))
|
||||
@if (invoice_setting() == '3_inch_80mm' && moduleCheck('ThermalPrinterAddon'))
|
||||
@include('thermalprinteraddon::due-collects.3_inch_80mm')
|
||||
@else
|
||||
@include('business::dues.invoices.a4-size')
|
||||
|
||||
@@ -1,37 +1,23 @@
|
||||
@php
|
||||
$isBusinessRoute = request()->routeIs('business.dues.*');
|
||||
$business_id = $party->business_id;
|
||||
@endphp
|
||||
<div class="invoice-container">
|
||||
<div class="invoice-content p-4">
|
||||
{{-- Print Header --}}
|
||||
|
||||
<div
|
||||
class="row py-2 d-print-none d-flex align-items-start justify-content-between border-bottom print-container">
|
||||
<div class="row py-2 d-print-none d-flex align-items-start justify-content-between border-bottom print-container">
|
||||
|
||||
<div class="col-md-4 d-flex align-items-center p-2">
|
||||
<div class="col-md-6 d-flex align-items-center p-2">
|
||||
<span class="Money-Receipt white-text">{{ __('Money Receipt') }}</span>
|
||||
</div>
|
||||
<div class="col-md-8 d-flex justify-content-start justify-content-md-end align-items-end">
|
||||
<div class="d-flex gap-3 flex-wrap">
|
||||
<a href="javascript:void(0)" class="pdf-btn print-btn share-btn" data-bs-toggle="modal" data-bs-target="#shareModalDues">
|
||||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M7.8303 3.75H6.96224C4.50701 3.75 3.27939 3.75 2.51665 4.48223C1.75391 5.21447 1.75391 6.39298 1.75391 8.75V12.0833C1.75391 14.4403 1.75391 15.6188 2.51665 16.3511C3.27939 17.0833 4.50701 17.0833 6.96224 17.0833H10.4678C12.923 17.0833 14.1506 17.0833 14.9133 16.3511C15.4075 15.8767 15.5815 15.2149 15.6428 14.1667" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" />
|
||||
<path d="M13.4723 5.83073V3.20869C13.4723 3.04597 13.6097 2.91406 13.7792 2.91406C13.8605 2.91406 13.9386 2.9451 13.9962 3.00035L17.9396 6.7861C18.1362 6.97475 18.2465 7.23061 18.2465 7.4974C18.2465 7.76418 18.1362 8.02005 17.9396 8.20869L13.9962 11.9944C13.9386 12.0497 13.8605 12.0807 13.7792 12.0807C13.6097 12.0807 13.4723 11.9488 13.4723 11.7861V9.16406H10.9298C7.39583 9.16406 6.09375 12.0807 6.09375 12.0807V9.9974C6.09375 7.69621 8.03696 5.83073 10.434 5.83073H13.4723Z" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" />
|
||||
</svg>
|
||||
|
||||
{{__('Share')}}
|
||||
</a>
|
||||
<div class="col-md-6 d-flex justify-content-end align-items-end">
|
||||
<div class="d-flex gap-3">
|
||||
|
||||
<form action="{{ route('business.collect.dues.mail', $party->id) }}" method="POST"
|
||||
class="ajaxform_instant_reload">
|
||||
@csrf
|
||||
<button type="submit" class="btn custom-print-btn submit-btn"><img class="w-10 h-10"
|
||||
src="{{ asset('assets/img/email.svg') }}"><span class="pl-1">{{__('Email')}}</span>
|
||||
<button type="submit" class="btn custom-print-btn"><img class="w-10 h-10" src="{{ asset('assets/img/email.svg') }}"><span class="pl-1">{{__('Email')}}</span>
|
||||
</button>
|
||||
</form>
|
||||
|
||||
<a target="_blank" href="{{ route('business.collect.dues.pdf', ['due_id' => $party->id]) }}"
|
||||
<a target="blank" href="{{ route('business.collect.dues.pdf', ['due_id' => $party->id]) }}"
|
||||
class="pdf-btn print-btn">
|
||||
<img class="w-10 h-10" src="{{ asset('assets/img/pdf.svg') }}">
|
||||
{{__('PDF')}}</a>
|
||||
@@ -45,22 +31,18 @@ class="pdf-btn print-btn">
|
||||
<div class="d-flex justify-content-between align-items-center gap-3 print-logo-container">
|
||||
<!-- Left Side: Logo and Content -->
|
||||
<div class="d-flex align-items-center gap-2 logo">
|
||||
@if ((get_business_option('business-settings', $business_id)['show_a4_invoice_logo'] ?? 0) == 1)
|
||||
<img class="invoice-logo"
|
||||
src="{{ Storage::url(get_business_option('business-settings', $business_id)['a4_invoice_logo'] ?? 'assets/images/default.svg') ?? '' }}"
|
||||
alt="">
|
||||
@if ((get_business_option('business-settings')['show_a4_invoice_logo'] ?? 0) == 1 )
|
||||
<img class="invoice-logo" src="{{ asset(get_business_option('business-settings')['a4_invoice_logo'] ?? 'assets/images/default.svg') ?? '' }}" alt="">
|
||||
@endif
|
||||
</div>
|
||||
|
||||
<!-- Right Side: Invoice -->
|
||||
<div class="address-container">
|
||||
@if (($due_collect->business->meta['show_address'] ?? 0) == 1)
|
||||
<p> {{__('Address')}} : {{ $due_collect->branch?->address ?? $due_collect->business?->address ?? '' }}
|
||||
</p>
|
||||
<p> {{__('Address')}} : {{ $due_collect->branch?->address ?? $due_collect->business?->address ?? '' }}</p>
|
||||
@endif
|
||||
@if (($due_collect->business->meta['show_phone_number'] ?? 0) == 1)
|
||||
<p> {{__('Mobile')}} : {{ $due_collect->branch?->phone ?? $due_collect->business?->phoneNumber ?? '' }}
|
||||
</p>
|
||||
<p> {{__('Mobile')}} : {{ $due_collect->branch?->phone ?? $due_collect->business?->phoneNumber ?? '' }}</p>
|
||||
@endif
|
||||
@if (($due_collect->business->meta['show_email'] ?? 0) == 1)
|
||||
<p> {{__('Email')}} : {{ $due_collect->branch?->email ?? $due_collect->business?->email ?? '' }}</p>
|
||||
@@ -77,8 +59,7 @@ class="pdf-btn print-btn">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h3 class="right-invoice receipt-invoice-title mb-0 align-self-center white-text ">{{ __('MONEY RECEIPT') }}
|
||||
</h3>
|
||||
<h3 class="right-invoice receipt-invoice-title mb-0 align-self-center white-text ">{{ __('MONEY RECEIPT') }}</h3>
|
||||
<div class="d-flex align-items-start justify-content-between flex-wrap">
|
||||
<div>
|
||||
<table class="table">
|
||||
@@ -133,13 +114,12 @@ class="pdf-btn print-btn">
|
||||
<tr class="in-table-body">
|
||||
<td class="text-center">1</td>
|
||||
<td class="text-start">
|
||||
{{ currency_format($due_collect->totalDue ?? 0, currency: business_currency($business_id)) }}
|
||||
{{ currency_format($due_collect->totalDue ?? 0, currency: business_currency()) }}</td>
|
||||
<td class="text-end">
|
||||
{{ currency_format($due_collect->payDueAmount ?? 0, currency: business_currency()) }}
|
||||
</td>
|
||||
<td class="text-end">
|
||||
{{ currency_format($due_collect->payDueAmount ?? 0, currency: business_currency($business_id)) }}
|
||||
</td>
|
||||
<td class="text-end">
|
||||
{{ currency_format($due_collect->dueAmountAfterPay ?? 0, currency: business_currency($business_id)) }}
|
||||
{{ currency_format($due_collect->dueAmountAfterPay ?? 0, currency: business_currency()) }}
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
@@ -152,54 +132,54 @@ class="pdf-btn print-btn">
|
||||
<tr class="in-table-row">
|
||||
<td class="text-start"></td>
|
||||
</tr>
|
||||
@if ((get_business_option('business-settings', $business_id)['show_note'] ?? 0) == 1)
|
||||
@if ((get_business_option('business-settings')['show_note'] ?? 0) == 1)
|
||||
<tr class="in-table-row">
|
||||
<td class="text-start pb-2 pt-3">
|
||||
{{ get_business_option('business-settings', $business_id)['note'] ?? '' }}
|
||||
{{ get_business_option('business-settings')['note'] ?? '' }}
|
||||
</td>
|
||||
</tr>
|
||||
@endif
|
||||
<tr class="in-table-row">
|
||||
<tr class="in-table-row">
|
||||
<td class="text-start paid-by">{{ __('Paid by') }} :
|
||||
{{ $transactionTypes ?? ($due_collect->payment_type_id ? ($due_collect->payment_type->name ?? '') : ($due_collect->paymentType ?? '')) }}
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
@if ($bank_detail->show_in_invoice ?? 0 == 1)
|
||||
<div class="bank-details-container">
|
||||
<div class="bank-details-title">
|
||||
{{__('Bank Details')}}
|
||||
</div>
|
||||
<div class="back-details-content">
|
||||
<table class="table mb-2">
|
||||
<tbody>
|
||||
<tr class="in-table-row">
|
||||
<td class="text-start in-table-title">{{ __('Name') }}</td>
|
||||
<td class="clone-width">:</td>
|
||||
<td class="text-start">{{ $bank_detail->name }}</td>
|
||||
</tr>
|
||||
<tr class="in-table-row">
|
||||
<td class="text-start in-table-title">{{ __('Account No') }}</td>
|
||||
<td class="clone-width">:</td>
|
||||
<td class="text-start">{{ $bank_detail->meta['account_number'] ?? '' }}</td>
|
||||
</tr>
|
||||
@if ($bank_detail->show_in_invoice ?? 0 == 1)
|
||||
<div class="bank-details-container">
|
||||
<div class="bank-details-title">
|
||||
{{__('Bank Details')}}
|
||||
</div>
|
||||
<div class="back-details-content">
|
||||
<table class="table mb-2">
|
||||
<tbody>
|
||||
<tr class="in-table-row">
|
||||
<td class="text-start in-table-title">{{ __('Name') }}</td>
|
||||
<td class="clone-width">:</td>
|
||||
<td class="text-start">{{ $bank_detail->name }}</td>
|
||||
</tr>
|
||||
<tr class="in-table-row">
|
||||
<td class="text-start in-table-title">{{ __('Account No') }}</td>
|
||||
<td class="clone-width">:</td>
|
||||
<td class="text-start">{{ $bank_detail->meta['account_number'] ?? '' }}</td>
|
||||
</tr>
|
||||
|
||||
<tr class="in-table-row">
|
||||
<td class="text-start in-table-title">{{ __('UPI ID') }}</td>
|
||||
<td class="clone-width">:</td>
|
||||
<td class="text-start">{{ $bank_detail->meta['upi_id'] ?? '' }}</td>
|
||||
</tr>
|
||||
<tr class="in-table-row">
|
||||
<td class="text-start in-table-title">{{ __('Holder’s Nmae') }}</td>
|
||||
<td class="clone-width">:</td>
|
||||
<td class="text-start">{{ $bank_detail->meta['account_holder'] ?? '' }}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<tr class="in-table-row">
|
||||
<td class="text-start in-table-title">{{ __('UPI ID') }}</td>
|
||||
<td class="clone-width">:</td>
|
||||
<td class="text-start">{{ $bank_detail->meta['upi_id'] ?? '' }}</td>
|
||||
</tr>
|
||||
<tr class="in-table-row">
|
||||
<td class="text-start in-table-title">{{ __('Holder’s Nmae') }}</td>
|
||||
<td class="clone-width">:</td>
|
||||
<td class="text-start">{{ $bank_detail->meta['account_holder'] ?? '' }}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
@endif
|
||||
</div>
|
||||
<div>
|
||||
<table class="table">
|
||||
@@ -208,17 +188,15 @@ class="pdf-btn print-btn">
|
||||
<td class="text-end">{{ __('Payable Amount') }}</td>
|
||||
<td class="text-end">:</td>
|
||||
<td class="text-end">
|
||||
{{ currency_format($due_collect->totalDue ?? 0, currency: business_currency($business_id)) }}
|
||||
{{ currency_format($due_collect->totalDue ?? 0, currency: business_currency()) }}
|
||||
</td>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="in-table-row-bottom">
|
||||
<td class="text-end">
|
||||
{{ $party->type === 'Supplier' ? __('Paid Amount') : __('Received Amount') }}
|
||||
</td>
|
||||
<td class="text-end">{{ $party->type === 'Supplier' ? __('Paid Amount') : __('Received Amount') }}</td>
|
||||
<td class="text-end">:</td>
|
||||
<td class="text-end">
|
||||
{{ currency_format($due_collect->payDueAmount ?? 0, currency: business_currency($business_id)) }}
|
||||
{{ currency_format($due_collect->payDueAmount ?? 0, currency: business_currency()) }}
|
||||
</td>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -226,7 +204,7 @@ class="pdf-btn print-btn">
|
||||
<td class="text-end">{{ __('Due Amount') }}</td>
|
||||
<td class="text-end">:</td>
|
||||
<td class="text-end">
|
||||
{{ currency_format($due_collect->dueAmountAfterPay ?? 0, currency: business_currency($business_id)) }}
|
||||
{{ currency_format($due_collect->dueAmountAfterPay ?? 0, currency: business_currency()) }}
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
@@ -245,28 +223,15 @@ class="pdf-btn print-btn">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@if ((get_business_option('business-settings', $business_id)['show_warranty'] ?? 0) == 1)
|
||||
@if ((get_business_option('business-settings')['show_warranty'] ?? 0) == 1)
|
||||
<div class="warranty-container-2 mt-3">
|
||||
<p>
|
||||
@if ((get_business_option('business-settings', $business_id)['show_warranty'] ?? 0) == 1)
|
||||
<span>{{ get_business_option('business-settings', $business_id)['warranty_void_label'] ?? '' }} -
|
||||
</span>
|
||||
@if ((get_business_option('business-settings')['show_warranty'] ?? 0) == 1)
|
||||
<span>{{ get_business_option('business-settings')['warranty_void_label'] ?? '' }} - </span>
|
||||
@endif
|
||||
{{ get_business_option('business-settings', $business_id)['warranty_void'] ?? '' }}
|
||||
{{ get_business_option('business-settings')['warranty_void'] ?? '' }}
|
||||
</p>
|
||||
</div>
|
||||
@endif
|
||||
<h4 class="tax-powered pt-3 pb-0">{{ get_option('general')['admin_footer_text'] ?? '' }}:
|
||||
{{ get_option('general')['admin_footer_link_text'] ?? '' }}
|
||||
</h4>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@php
|
||||
$shareUrl = $due_collect->unique_id ? route('due.invoice.unique', $due_collect->unique_id) : ($due_collect->party?->phone ? route('due.invoice', ['due_id' => $due_collect->id, 'phone' => $due_collect->party?->phone]) : '');
|
||||
$facebook = $shareUrl ? 'https://www.facebook.com/sharer/sharer.php?u=' . urlencode($shareUrl) : '';
|
||||
$twitter = $shareUrl ? 'https://twitter.com/intent/tweet?url=' . urlencode($shareUrl) : '';
|
||||
$whatsapp = $shareUrl ? 'https://wa.me/?text=' . urlencode($shareUrl) : '';
|
||||
@endphp
|
||||
|
||||
@include('business::component.share-modal', ['copy' => $shareUrl, 'facebook' => $facebook, 'twitter' => $twitter, 'whatsapp' => $whatsapp])
|
||||
@@ -2,19 +2,19 @@
|
||||
<table class="table" id="datatable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="d-print-none">{{ __('SL') }}.</th>
|
||||
<th>{{ __('SL') }}.</th>
|
||||
<th>{{ __('Name') }}</th>
|
||||
<th>{{ __('Email') }}</th>
|
||||
<th>{{ __('Phone') }}</th>
|
||||
<th>{{ __('Type') }}</th>
|
||||
<th class="text-end">{{ __('Due Amount') }}</th>
|
||||
<th class="d-print-none">{{ __('Action') }}</th>
|
||||
<th>{{ __('Action') }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach ($parties as $party)
|
||||
<tr>
|
||||
<td class="d-print-none">{{ ($parties->currentPage() - 1) * $parties->perPage() + $loop->iteration }}</td>
|
||||
<td>{{ ($parties->currentPage() - 1) * $parties->perPage() + $loop->iteration }}</td>
|
||||
<td>{{ $party->name }}</td>
|
||||
<td>{{ $party->email }}</td>
|
||||
<td>{{ $party->phone }}</td>
|
||||
@@ -59,14 +59,10 @@ class="view-due-payment-btn" data-bs-toggle="modal"
|
||||
{{ __('View Payment') }}
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@php
|
||||
$due = $party->dueCollect()->latest()->first();
|
||||
@endphp
|
||||
|
||||
@if ($due)
|
||||
@if ($party->dueCollect)
|
||||
<li>
|
||||
<a href="{{ route('business.collect.dues.invoice', $due->id) }}" target="_blank">
|
||||
<a href="{{ route('business.collect.dues.invoice', $party->id) }}"
|
||||
target="_blank">
|
||||
<img src="{{ asset('assets/images/icons/Invoic.svg') }}" alt="">
|
||||
{{ __('Invoice') }}
|
||||
</a>
|
||||
@@ -78,20 +74,6 @@ class="view-due-payment-btn" data-bs-toggle="modal"
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
@if ($parties->count() > 0)
|
||||
<tr class="table-footer">
|
||||
<td class="text-start">{{ __('Total') }}</td>
|
||||
<td class="d-print-none"></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td class="text-end">
|
||||
{{ currency_format($parties->sum('due'), currency: business_currency()) }}
|
||||
</td>
|
||||
<td class="text-end">
|
||||
</td>
|
||||
</tr>
|
||||
@endif
|
||||
</table>
|
||||
</div>
|
||||
<div class="mt-3">
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
@extends('layouts.business.master')
|
||||
|
||||
@section('title')
|
||||
{{ __(':type Due List', ['type' => request('type') === 'Retailer' ? __('Customer') : __(request('type'))]) }}
|
||||
{{ __('Due List') }}
|
||||
@endsection
|
||||
|
||||
@section('main_content')
|
||||
@@ -10,17 +10,11 @@
|
||||
|
||||
<div class="card">
|
||||
<div class="card-bodys">
|
||||
<div class="table-header p-16 d-print-none">
|
||||
<h4>{{ __(':type Due List', ['type' => request('type') === 'Retailer' ? __('Customer') : __(request('type'))]) }}</h4>
|
||||
<div class="table-header p-16">
|
||||
<h4>{{ __('Due List') }}</h4>
|
||||
</div>
|
||||
|
||||
<div class="table-header justify-content-center border-0 d-none d-block d-print-block text-center">
|
||||
@include('business::print.header')
|
||||
<h4 class="mt-2">{{ __(':type Due List', ['type' => request('type') === 'Retailer' ? __('Customer') : __(request('type'))]) }}</h4>
|
||||
</div>
|
||||
|
||||
<div class="table-top-form p-16 d-print-none">
|
||||
<form action="{{ route('business.party.dues') }}" method="GET" class="report-filter-form" table="#party-reports-data">
|
||||
<div class="table-top-form p-16">
|
||||
<form action="{{ route('business.party.dues') }}" method="GET" class="filter-form" table="#party-reports-data">
|
||||
|
||||
@if(request('type'))
|
||||
<input type="hidden" name="type" value="{{ request('type') }}">
|
||||
@@ -47,30 +41,6 @@
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<div class="table-top-btn-group d-print-none">
|
||||
<ul>
|
||||
<li>
|
||||
<a class="export-btn" href="{{ route('business.dues.csv') }}">
|
||||
<img src="{{ asset('assets/images/logo/csv.svg') }}" alt="">
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="export-btn" href="{{ route('business.dues.excel') }}">
|
||||
<img src="{{ asset('assets/images/logo/excel.svg') }}" alt="">
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="export-btn" target="_blank" href="{{ route('business.dues.pdf') }}">
|
||||
<img src="{{ asset('assets/images/logo/pdf.svg') }}" alt="">
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a onclick="window.print()" class="print-window">
|
||||
<img src="{{ asset('assets/images/logo/printer.svg') }}" alt="">
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -156,7 +156,7 @@
|
||||
@endphp
|
||||
|
||||
@section('pdf_content')
|
||||
<div class="in-container" dir="{{ app()->getLocale() == 'ar' ? 'rtl' : 'ltr' }}">
|
||||
<div class="in-container">
|
||||
<div class="in-content">
|
||||
{{-- <table width="100%" class="invoice-top-header">
|
||||
<tr>
|
||||
@@ -247,7 +247,7 @@
|
||||
<table width="100%" style="margin-bottom:10px;">
|
||||
<tr>
|
||||
<td width="50%" valign="top"
|
||||
style="text-align:{{ app()->getLocale() == 'ar' ? 'right' : 'left' }};">
|
||||
style="text-align:{{ app()->getLocale() == 'ar' ? 'left' : 'left' }};">
|
||||
<table>
|
||||
<tr>
|
||||
<td>{{ __('Invoice') }}</td>
|
||||
@@ -265,7 +265,7 @@
|
||||
</td>
|
||||
|
||||
<td width="50%" valign="top"
|
||||
style="text-align:{{ app()->getLocale() == 'ar' ? 'left' : 'right' }};">
|
||||
style="text-align:{{ app()->getLocale() == 'ar' ? 'right' : 'right' }};">
|
||||
<table>
|
||||
<tr>
|
||||
<td>{{ __('Date') }}</td>
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
<th class="d-print-none">{{ __('Image') }}</th>
|
||||
<th>{{ __('Product Name') }}</th>
|
||||
<th class="d-print-none">{{ __('Code') }}</th>
|
||||
<th class="d-print-none">{{ __('HSN Code') }}</th>
|
||||
<th class="d-print-none">{{ __('Brand') }}</th>
|
||||
<th>{{ __('Category') }}</th>
|
||||
<th class="d-print-none">{{ __('Unit') }}</th>
|
||||
@@ -48,7 +47,6 @@
|
||||
<td>{{ $product->productName }}</td>
|
||||
|
||||
<td class="d-print-none">{{ $product->productCode }}</td>
|
||||
<td class="d-print-none">{{ $product->hsn_code }}</td>
|
||||
|
||||
<td class="d-print-none">{{ $product->brand->brandName ?? '' }}</td>
|
||||
|
||||
|
||||
@@ -2,9 +2,9 @@
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{{ __('SL') }}. </th>
|
||||
<th>{{ __('Image') }} </th>
|
||||
<th>{{ __('Product Name') }} </th>
|
||||
<th>{{ __('Code') }} </th>
|
||||
<th>{{ __('HSN Code') }} </th>
|
||||
<th>{{ __('Brand') }} </th>
|
||||
<th>{{ __('Category') }} </th>
|
||||
<th>{{ __('Unit') }} </th>
|
||||
@@ -17,6 +17,7 @@
|
||||
|
||||
<tbody>
|
||||
@foreach ($expired_products as $product)
|
||||
|
||||
@php
|
||||
$nonEmptyStock = $product->stocks->firstWhere('productStock', '>', 0);
|
||||
$fallbackStock = $product->stocks->first(); // fallback if no stock > 0
|
||||
@@ -24,11 +25,12 @@
|
||||
$latestPurchasePrice = $stock?->productPurchasePrice ?? 0;
|
||||
$latestSalePrice = $stock?->productSalePrice ?? 0;
|
||||
@endphp
|
||||
|
||||
<tr>
|
||||
<td>{{ $loop->index + 1 }}</td>
|
||||
<td><img src="{{ asset($product->productPicture ?? 'assets/images/logo/upload2.jpg') }}" alt="Img" class="table-product-img"></td>
|
||||
<td>{{ $product->productName }}</td>
|
||||
<td>{{ $product->productCode }}</td>
|
||||
<td>{{ $product->hsn_code }}</td>
|
||||
<td>{{ $product->brand->brandName ?? '' }}</td>
|
||||
<td>{{ $product->category->categoryName ?? '' }}</td>
|
||||
<td>{{ $product->unit->unitName ?? '' }}</td>
|
||||
|
||||
@@ -47,17 +47,17 @@
|
||||
<div class="table-top-btn-group d-print-none">
|
||||
<ul>
|
||||
<li>
|
||||
<a class="export-btn" href="{{ route('business.expired.products.csv') }}">
|
||||
<a href="{{ route('business.expired.products.csv') }}">
|
||||
<img src="{{ asset('assets/images/logo/csv.svg') }}" alt="">
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="export-btn" href="{{ route('business.expired.products.excel') }}">
|
||||
<a href="{{ route('business.expired.products.excel') }}">
|
||||
<img src="{{ asset('assets/images/logo/excel.svg') }}" alt="">
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="export-btn" target="_blank" href="{{ route('business.expired.products.pdf') }}">
|
||||
<a target="blank" href="{{ route('business.expired.product.reports.pdf') }}">
|
||||
<img src="{{ asset('assets/images/logo/pdf.svg') }}" alt="">
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -1,91 +1,62 @@
|
||||
@if ($filter_from_date && $filter_to_date)
|
||||
<div class="mb-2 text-center fw-bold duration-display">
|
||||
<strong>{{ __('Duration:') }}</strong>
|
||||
@if ($duration === 'today')
|
||||
{{ Carbon\Carbon::parse($filter_from_date)->format('d-m-Y') }}
|
||||
@elseif ($duration === 'yesterday')
|
||||
{{ Carbon\Carbon::parse($filter_from_date)->format('d-m-Y') }}
|
||||
@else
|
||||
{{ Carbon\Carbon::parse($filter_from_date)->format('d-m-Y') }}
|
||||
{{ __('to') }}
|
||||
{{ Carbon\Carbon::parse($filter_to_date)->format('d-m-Y') }}
|
||||
@endif
|
||||
</div>
|
||||
@endif
|
||||
<table class="table table-bordered">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="text-start income-type">{{ __('Income Types') }}</th>
|
||||
<th class="text-start d-print-none">{{ __('Date') }}</th>
|
||||
<th class="text-start">{{ __('Sale') }}</th>
|
||||
<th class="text-end">{{ __('Income') }}</th>
|
||||
<th class="text-start expense-type">{{ __('Expenses Types') }}</th>
|
||||
<th class="text-start d-print-none">{{ __('Date') }}</th>
|
||||
<th class="text-end">{{ __('Expense') }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@php
|
||||
$maxRowCount = max($mergedIncomeSaleData->count(), $mergedExpenseData->count());
|
||||
@endphp
|
||||
@php
|
||||
$maxRowCount = max($mergedIncomeSaleData->count(), $mergedExpenseData->count());
|
||||
@endphp
|
||||
|
||||
@for ($i = 0; $i < $maxRowCount; $i++)
|
||||
@php
|
||||
$incomeSaleRow = $mergedIncomeSaleData[$i] ?? null;
|
||||
$expenseRow = $mergedExpenseData[$i] ?? null;
|
||||
@endphp
|
||||
<tr>
|
||||
{{-- Sale / Income Column --}}
|
||||
<td class="text-start loss-profit-tbody">
|
||||
{{ $incomeSaleRow ? $incomeSaleRow->type : '' }}
|
||||
</td>
|
||||
<td class="text-start loss-profit-tbody d-print-none">
|
||||
{{ $incomeSaleRow ? formatted_date($incomeSaleRow->date) : '' }}
|
||||
</td>
|
||||
<td class="text-start loss-profit-tbody ">
|
||||
{{ $incomeSaleRow && isset($incomeSaleRow->total_sales) ? currency_format($incomeSaleRow->total_sales, 'icon', 2, business_currency()) : '' }}
|
||||
</td>
|
||||
<td class="text-end loss-profit-tbody ">
|
||||
{{ $incomeSaleRow && isset($incomeSaleRow->total_incomes) ? currency_format($incomeSaleRow->total_incomes, 'icon', 2, business_currency()) : '' }}
|
||||
</td>
|
||||
@for ($i = 0; $i < $maxRowCount; $i++)
|
||||
@php
|
||||
$incomeSaleRow = $mergedIncomeSaleData[$i] ?? null;
|
||||
$expenseRow = $mergedExpenseData[$i] ?? null;
|
||||
@endphp
|
||||
<tr>
|
||||
{{-- Sale / Income Column --}}
|
||||
<td class="text-start loss-profit-tbody">
|
||||
{{ $incomeSaleRow ? $incomeSaleRow->type : '' }}
|
||||
</td>
|
||||
<td class="text-start loss-profit-tbody d-print-none">
|
||||
{{ $incomeSaleRow ? formatted_date($incomeSaleRow->date) : '' }}
|
||||
</td>
|
||||
<td class="text-start loss-profit-tbody ">
|
||||
{{ $incomeSaleRow && isset($incomeSaleRow->total_sales) ? currency_format($incomeSaleRow->total_sales, 'icon', 2, business_currency()) : '' }}
|
||||
</td>
|
||||
<td class="text-end loss-profit-tbody ">
|
||||
{{ $incomeSaleRow && isset($incomeSaleRow->total_incomes) ? currency_format($incomeSaleRow->total_incomes, 'icon', 2, business_currency()) : '' }}
|
||||
</td>
|
||||
|
||||
{{-- Expense Column --}}
|
||||
<td class="text-start loss-profit-tbody expense-type">
|
||||
{{ $expenseRow ? $expenseRow->type : '' }}
|
||||
</td>
|
||||
<td class="text-start loss-profit-tbody d-print-none">
|
||||
{{ $expenseRow ? formatted_date($expenseRow->date) : '' }}
|
||||
</td>
|
||||
<td class="text-end loss-profit-tbody">
|
||||
{{ $expenseRow ? currency_format($expenseRow->total_expenses ?? 0, 'icon', 2, business_currency()) : '' }}
|
||||
</td>
|
||||
</tr>
|
||||
@endfor
|
||||
{{-- Expense Column --}}
|
||||
<td class="text-start loss-profit-tbody expense-type">
|
||||
{{ $expenseRow ? $expenseRow->type : '' }}
|
||||
</td>
|
||||
<td class="text-start loss-profit-tbody d-print-none">
|
||||
{{ $expenseRow ? formatted_date($expenseRow->date) : '' }}
|
||||
</td>
|
||||
<td class="text-end loss-profit-tbody">
|
||||
{{ $expenseRow ? currency_format($expenseRow->total_expenses ?? 0, 'icon', 2, business_currency()) : '' }}
|
||||
</td>
|
||||
</tr>
|
||||
@endfor
|
||||
|
||||
{{-- Summary Rows --}}
|
||||
<tr class="fw-bold">
|
||||
<td class="text-start bottom-profit-expense">{{ __('Gross Profit') }}</td>
|
||||
<td class="d-print-none bottom-profit-expense"></td>
|
||||
<td class="text-start bottom-profit-expense">
|
||||
{{ currency_format($grossSaleProfit, 'icon', 2, business_currency()) }}
|
||||
</td>
|
||||
<td class="text-end bottom-profit-expense">
|
||||
{{ currency_format($grossIncomeProfit, 'icon', 2, business_currency()) }}
|
||||
</td>
|
||||
<td class="text-start bottom-profit-expense expense-type">{{ __('Total Expenses') }}</td>
|
||||
<td class="d-print-none bottom-profit-expense"></td>
|
||||
<td class="text-end bottom-profit-expense">
|
||||
{{ currency_format($totalExpenses, 'icon', 2, business_currency()) }}
|
||||
</td>
|
||||
</tr>
|
||||
{{-- Summary Rows --}}
|
||||
<tr class="fw-bold">
|
||||
<td class="text-start bottom-profit-expense">{{ __('Gross Profit') }}</td>
|
||||
<td class="d-print-none bottom-profit-expense"></td>
|
||||
<td class="text-start bottom-profit-expense">
|
||||
{{ currency_format($grossSaleProfit, 'icon', 2, business_currency()) }}
|
||||
</td>
|
||||
<td class="text-end bottom-profit-expense">
|
||||
{{ currency_format($grossIncomeProfit, 'icon', 2, business_currency()) }}
|
||||
</td>
|
||||
<td class="text-start bottom-profit-expense expense-type">{{ __('Total Expenses') }}</td>
|
||||
<td class="d-print-none bottom-profit-expense"></td>
|
||||
<td class="text-end bottom-profit-expense">
|
||||
{{ currency_format($totalExpenses, 'icon', 2, business_currency()) }}
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr class="fw-bold text-center bg-light">
|
||||
<td class="bottom-net-profit" colspan="7">
|
||||
{{ __('Net Profit (Income - Expense) =') }}
|
||||
<span class="{{ $netProfit >= 0 ? 'profit-ammount' : 'expense-ammount' }}">
|
||||
{{ currency_format($netProfit, 'icon', 2, business_currency()) }}
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<tr class="fw-bold text-center bg-light">
|
||||
<td class="bottom-net-profit" colspan="7">
|
||||
{{ __('Net Profit (Income - Expense) =') }}
|
||||
<span class="{{ $netProfit >= 0 ? 'profit-ammount' : 'expense-ammount' }}">
|
||||
{{ currency_format($netProfit, 'icon', 2, business_currency()) }}
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@@ -9,22 +9,22 @@
|
||||
<div class="container-fluid">
|
||||
<div class="card">
|
||||
<div class="card-bodys">
|
||||
<div class="row p-2 d-print-none" id="loss-profit-summery">
|
||||
<div class="row p-2 d-print-none">
|
||||
<div class="col-lg-2 col-md-12">
|
||||
<div class="loss-card p-3 m-2 text-white">
|
||||
<p class="stat-value">{{ currency_format($grossIncomeProfit, currency: business_currency()) }}</p>
|
||||
<p class="stat-value">{{ currency_format($cardGrossProfit, currency: business_currency()) }}</p>
|
||||
<p class="stat-title">{{ __('Gross Profit') }}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-2 col-md-6">
|
||||
<div class="profit-card p-3 m-2 text-white">
|
||||
<p class="stat-value">{{ currency_format($totalExpenses, currency: business_currency()) }}</p>
|
||||
<p class="stat-value">{{ currency_format($totalCardExpenses, currency: business_currency()) }}</p>
|
||||
<p class="stat-title">{{ __('Expenses') }}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-2 col-md-6">
|
||||
<div class="sales-card p-3 m-2 text-white">
|
||||
<p class="stat-value">{{ currency_format($netProfit, currency: business_currency()) }}</p>
|
||||
<p class="stat-value">{{ currency_format($cardNetProfit, currency: business_currency()) }}</p>
|
||||
<p class="stat-title">{{ __('Net Profit') }}</p>
|
||||
</div>
|
||||
</div>
|
||||
@@ -45,16 +45,6 @@
|
||||
<div class="d-flex align-items-center gap-3 flex-wrap table-top-left">
|
||||
<div class="m-0 p-0 d-print-none">
|
||||
<div class="date-filters-container">
|
||||
<div class="gpt-up-down-arrow position-relative">
|
||||
<select name="per_page" class="form-control">
|
||||
<option @selected(request('per_page') == 20) value="20">{{ __('Show 20') }}</option>
|
||||
<option @selected(request('per_page') == 50) value="50">{{ __('Show 50') }}</option>
|
||||
<option @selected(request('per_page') == 100) value="100">{{ __('Show 100') }}</option>
|
||||
<option @selected(request('per_page') == 500) value="500">{{ __('Show 500') }}</option>
|
||||
</select>
|
||||
<span></span>
|
||||
</div>
|
||||
|
||||
<div class="input-wrapper align-items-center date-filters d-none">
|
||||
<label class="header-label">{{ __('From Date') }}</label>
|
||||
<input type="date" name="from_date" value="{{ now()->format('Y-m-d') }}" class="form-control filter-field filter-from-date">
|
||||
@@ -91,17 +81,17 @@
|
||||
<div class="table-top-btn-group d-print-none p-2">
|
||||
<ul>
|
||||
<li>
|
||||
<a class="loss-profit-export-btn" href="{{ route('business.loss-profit-history.csv') }}">
|
||||
<a href="{{ route('business.loss-profit-history.csv') }}">
|
||||
<img src="{{ asset('assets/images/logo/csv.svg') }}" alt="">
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="loss-profit-export-btn" href="{{ route('business.loss-profit-history.excel') }}">
|
||||
<a href="{{ route('business.loss-profit-history.excel') }}">
|
||||
<img src="{{ asset('assets/images/logo/excel.svg') }}" alt="">
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="loss-profit-export-btn" target="_blank" href="{{ route('business.loss-profit-history.pdf') }}">
|
||||
<a target="blank" href="{{ route('business.loss-profit-history.pdf') }}">
|
||||
<img src="{{ asset('assets/images/logo/pdf.svg') }}" alt="">
|
||||
</a>
|
||||
</li>
|
||||
@@ -116,9 +106,22 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="responsive-table m-0">
|
||||
<div id="loss-profit-history-data">
|
||||
@include('business::loss-profit-histories.datas')
|
||||
</div>
|
||||
<table class="table table-bordered">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="text-start income-type">{{ __('Income Types') }}</th>
|
||||
<th class="text-start d-print-none">{{ __('Date') }}</th>
|
||||
<th class="text-start">{{ __('Sale') }}</th>
|
||||
<th class="text-end">{{ __('Income') }}</th>
|
||||
<th class="text-start expense-type">{{ __('Expenses Types') }}</th>
|
||||
<th class="text-start d-print-none">{{ __('Date') }}</th>
|
||||
<th class="text-end">{{ __('Expense') }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="loss-profit-history-data">
|
||||
@include('business::loss-profit-histories.datas')
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -4,19 +4,6 @@
|
||||
<div class="table-header justify-content-center border-0 d-none d-block d-print-block text-center">
|
||||
@include('business::print.header')
|
||||
<h4 style="text-align: center; margin: 0; padding: 0; font-size: 16px;">{{ __('Loss Profit History List') }}</h4>
|
||||
@if ($filter_from_date && $filter_to_date)
|
||||
<p style="text-align: center; margin: 0; padding: 0; font-weight: 400; font-size: 14px;" class="">{{ __('Duration:') }}
|
||||
@if ($duration === 'today')
|
||||
{{ Carbon\Carbon::parse($filter_from_date)->format('d-m-Y') }}
|
||||
@elseif ($duration === 'yesterday')
|
||||
{{ Carbon\Carbon::parse($filter_from_date)->format('d-m-Y') }}
|
||||
@else
|
||||
{{ Carbon\Carbon::parse($filter_from_date)->format('d-m-Y') }}
|
||||
{{ __('to') }}
|
||||
{{ Carbon\Carbon::parse($filter_to_date)->format('d-m-Y') }}
|
||||
@endif
|
||||
</p>
|
||||
@endif
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
|
||||
@@ -58,28 +58,12 @@
|
||||
</li>
|
||||
@if (moduleCheck('MarketingAddon'))
|
||||
<li class="nav-item settings-item" role="presentation">
|
||||
<button class="nav-link settings-link" id="sms-tab" data-bs-toggle="tab"
|
||||
<button class="nav-link settings-link" id="currency-setting-tab" data-bs-toggle="tab"
|
||||
data-bs-target="#sms" type="button" role="tab">
|
||||
{{__('SMS Gateways')}}
|
||||
{{__('SMS Settings')}}
|
||||
</button>
|
||||
</li>
|
||||
@endif
|
||||
|
||||
@if (moduleCheck('MarketingAddon'))
|
||||
<li class="nav-item settings-item" role="presentation">
|
||||
<button class="nav-link settings-link" id="email-tab" data-bs-toggle="tab"
|
||||
data-bs-target="#email" type="button" role="tab">
|
||||
{{__('Email Settings')}}
|
||||
</button>
|
||||
</li>
|
||||
@endif
|
||||
|
||||
<li class="nav-item settings-item" role="presentation">
|
||||
<button class="nav-link settings-link" id="theme-tab" data-bs-toggle="tab"
|
||||
data-bs-target="#theme" type="button" role="tab">
|
||||
{{__('Theme Settings')}}
|
||||
</button>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<div class="tab-content mt-3" id="settingsTabContent">
|
||||
@@ -95,10 +79,10 @@
|
||||
xmlns="http://www.w3.org/2000/svg">
|
||||
<path
|
||||
d="M15.5 12C15.5 13.933 13.933 15.5 12 15.5C10.067 15.5 8.5 13.933 8.5 12C8.5 10.067 10.067 8.5 12 8.5C13.933 8.5 15.5 10.067 15.5 12Z"
|
||||
stroke="var(--clr-primary)" stroke-width="1.5" />
|
||||
stroke="#C52127" stroke-width="1.5" />
|
||||
<path
|
||||
d="M21.011 14.0949C21.5329 13.9542 21.7939 13.8838 21.8969 13.7492C22 13.6147 22 13.3982 22 12.9653V11.0316C22 10.5987 22 10.3822 21.8969 10.2477C21.7938 10.1131 21.5329 10.0427 21.011 9.90194C19.0606 9.37595 17.8399 7.33687 18.3433 5.39923C18.4817 4.86635 18.5509 4.59992 18.4848 4.44365C18.4187 4.28738 18.2291 4.1797 17.8497 3.96432L16.125 2.98509C15.7528 2.77375 15.5667 2.66808 15.3997 2.69058C15.2326 2.71308 15.0442 2.90109 14.6672 3.27709C13.208 4.73284 10.7936 4.73278 9.33434 3.277C8.95743 2.90099 8.76898 2.71299 8.60193 2.69048C8.43489 2.66798 8.24877 2.77365 7.87653 2.98499L6.15184 3.96423C5.77253 4.17959 5.58287 4.28727 5.51678 4.44351C5.45068 4.59976 5.51987 4.86623 5.65825 5.39916C6.16137 7.33686 4.93972 9.37599 2.98902 9.90196C2.46712 10.0427 2.20617 10.1131 2.10308 10.2476C2 10.3822 2 10.5987 2 11.0316V12.9653C2 13.3982 2 13.6147 2.10308 13.7492C2.20615 13.8838 2.46711 13.9542 2.98902 14.0949C4.9394 14.6209 6.16008 16.66 5.65672 18.5976C5.51829 19.1305 5.44907 19.3969 5.51516 19.5532C5.58126 19.7095 5.77092 19.8172 6.15025 20.0325L7.87495 21.0118C8.24721 21.2231 8.43334 21.3288 8.6004 21.3063C8.76746 21.2838 8.95588 21.0957 9.33271 20.7197C10.7927 19.2628 13.2088 19.2627 14.6689 20.7196C15.0457 21.0957 15.2341 21.2837 15.4012 21.3062C15.5682 21.3287 15.7544 21.223 16.1266 21.0117L17.8513 20.0324C18.2307 19.8171 18.4204 19.7094 18.4864 19.5531C18.5525 19.3968 18.4833 19.1304 18.3448 18.5975C17.8412 16.66 19.0609 14.621 21.011 14.0949Z"
|
||||
stroke="var(--clr-primary)" stroke-width="1.5" stroke-linecap="round" />
|
||||
stroke="#C52127" stroke-width="1.5" stroke-linecap="round" />
|
||||
</svg>
|
||||
</div>
|
||||
<div>
|
||||
@@ -120,14 +104,14 @@ class="text-decoration-none text-dark">
|
||||
xmlns="http://www.w3.org/2000/svg">
|
||||
<path
|
||||
d="M5.49235 11.491C5.41887 12.887 5.50334 14.373 4.25611 15.3084C3.67562 15.7438 3.33398 16.427 3.33398 17.1527C3.33398 18.1508 4.11578 19 5.13398 19H19.534C20.5522 19 21.334 18.1508 21.334 17.1527C21.334 16.427 20.9924 15.7438 20.4119 15.3084C19.1646 14.373 19.2491 12.887 19.1756 11.491C18.9841 7.85223 15.9778 5 12.334 5C8.69015 5 5.68386 7.85222 5.49235 11.491Z"
|
||||
stroke="var(--clr-primary)" stroke-width="1.5" stroke-linecap="round"
|
||||
stroke="#C52127" stroke-width="1.5" stroke-linecap="round"
|
||||
stroke-linejoin="round" />
|
||||
<path
|
||||
d="M10.834 3.125C10.834 3.95343 11.5056 5 12.334 5C13.1624 5 13.834 3.95343 13.834 3.125C13.834 2.29657 13.1624 2 12.334 2C11.5056 2 10.834 2.29657 10.834 3.125Z"
|
||||
stroke="var(--clr-primary)" stroke-width="1.5" />
|
||||
stroke="#C52127" stroke-width="1.5" />
|
||||
<path
|
||||
d="M15.334 19C15.334 20.6569 13.9909 22 12.334 22C10.6771 22 9.33398 20.6569 9.33398 19"
|
||||
stroke="var(--clr-primary)" stroke-width="1.5" stroke-linecap="round"
|
||||
stroke="#C52127" stroke-width="1.5" stroke-linecap="round"
|
||||
stroke-linejoin="round" />
|
||||
</svg>
|
||||
</div>
|
||||
@@ -150,10 +134,10 @@ class="text-decoration-none text-dark">
|
||||
xmlns="http://www.w3.org/2000/svg">
|
||||
<path
|
||||
d="M3.16602 12C3.16602 7.77027 3.16602 5.6554 4.36399 4.25276C4.5341 4.05358 4.7196 3.86808 4.91878 3.69797C6.32142 2.5 8.43629 2.5 12.666 2.5C16.8957 2.5 19.0106 2.5 20.4132 3.69797C20.6124 3.86808 20.7979 4.05358 20.968 4.25276C22.166 5.6554 22.166 7.77027 22.166 12C22.166 16.2297 22.166 18.3446 20.968 19.7472C20.7979 19.9464 20.6124 20.1319 20.4132 20.302C19.0106 21.5 16.8957 21.5 12.666 21.5C8.43629 21.5 6.32142 21.5 4.91878 20.302C4.7196 20.1319 4.5341 19.9464 4.36399 19.7472C3.16602 18.3446 3.16602 16.2297 3.16602 12Z"
|
||||
stroke="var(--clr-primary)" stroke-width="1.5" />
|
||||
stroke="#C52127" stroke-width="1.5" />
|
||||
<path
|
||||
d="M15.3762 10.063C15.2771 9.30039 14.4014 8.06817 12.8268 8.06814C10.9972 8.06811 10.2274 9.08141 10.0712 9.58806C9.82746 10.2657 9.8762 11.659 12.0207 11.8109C14.7014 12.0009 15.7753 12.3174 15.6387 13.958C15.502 15.5985 14.0077 15.953 12.8268 15.9149C11.6458 15.877 9.71365 15.3344 9.63867 13.8752M12.6394 7V8.07177M12.6394 15.9051V16.9999"
|
||||
stroke="var(--clr-primary)" stroke-width="1.5" stroke-linecap="round" />
|
||||
stroke="#C52127" stroke-width="1.5" stroke-linecap="round" />
|
||||
</svg>
|
||||
</div>
|
||||
<div>
|
||||
@@ -174,14 +158,14 @@ class="text-decoration-none text-dark">
|
||||
fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path
|
||||
d="M11.5 14.0116C9.45338 13.9164 7.38334 14.4064 5.57757 15.4816C4.1628 16.324 0.453366 18.0441 2.71266 20.1966C3.81631 21.248 5.04549 22 6.59087 22H12"
|
||||
stroke="var(--clr-primary)" stroke-width="1.5" stroke-linecap="round"
|
||||
stroke="#C52127" stroke-width="1.5" stroke-linecap="round"
|
||||
stroke-linejoin="round" />
|
||||
<path
|
||||
d="M15.5 6.5C15.5 8.98528 13.4853 11 11 11C8.51472 11 6.5 8.98528 6.5 6.5C6.5 4.01472 8.51472 2 11 2C13.4853 2 15.5 4.01472 15.5 6.5Z"
|
||||
stroke="var(--clr-primary)" stroke-width="1.5" />
|
||||
stroke="#C52127" stroke-width="1.5" />
|
||||
<path
|
||||
d="M18 20.7143V22M18 20.7143C16.8432 20.7143 15.8241 20.1461 15.2263 19.2833M18 20.7143C19.1568 20.7143 20.1759 20.1461 20.7737 19.2833M15.2263 19.2833L14.0004 20.0714M15.2263 19.2833C14.8728 18.773 14.6667 18.1597 14.6667 17.5C14.6667 16.8403 14.8727 16.2271 15.2262 15.7169M20.7737 19.2833L21.9996 20.0714M20.7737 19.2833C21.1272 18.773 21.3333 18.1597 21.3333 17.5C21.3333 16.8403 21.1273 16.2271 20.7738 15.7169M18 14.2857C19.1569 14.2857 20.1761 14.854 20.7738 15.7169M18 14.2857C16.8431 14.2857 15.8239 14.854 15.2262 15.7169M18 14.2857V13M20.7738 15.7169L22 14.9286M15.2262 15.7169L14 14.9286"
|
||||
stroke="var(--clr-primary)" stroke-width="1.5" stroke-linecap="round" />
|
||||
stroke="#C52127" stroke-width="1.5" stroke-linecap="round" />
|
||||
</svg>
|
||||
</div>
|
||||
<div>
|
||||
@@ -200,10 +184,10 @@ class="text-decoration-none text-dark">
|
||||
<div class="d-flex align-items-center jusitfy-content-center gap-3">
|
||||
<div class="settings-icon">
|
||||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M10 18.332C9.31817 18.332 8.66683 18.0569 7.36411 17.5066C4.12137 16.1368 2.5 15.4519 2.5 14.2998C2.5 13.9772 2.5 8.38578 2.5 5.83203M10 18.332C10.6818 18.332 11.3332 18.0569 12.6359 17.5066C15.8787 16.1368 17.5 15.4519 17.5 14.2998V5.83203M10 18.332V9.46103" stroke="var(--clr-primary)" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M6.93827 8.07745L4.50393 6.89951C3.16797 6.25305 2.5 5.92983 2.5 5.41797C2.5 4.90611 3.16797 4.58289 4.50393 3.93643L6.93827 2.75849C8.44067 2.03148 9.19192 1.66797 10 1.66797C10.8081 1.66797 11.5593 2.03147 13.0617 2.75849L15.4961 3.93643C16.832 4.58289 17.5 4.90611 17.5 5.41797C17.5 5.92983 16.832 6.25305 15.4961 6.89951L13.0617 8.07745C11.5593 8.80447 10.8081 9.16797 10 9.16797C9.19192 9.16797 8.44067 8.80447 6.93827 8.07745Z" stroke="var(--clr-primary)" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M5 10L6.66667 10.8333" stroke="var(--clr-primary)" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M14.1673 3.33594L5.83398 7.5026" stroke="var(--clr-primary)" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M10 18.332C9.31817 18.332 8.66683 18.0569 7.36411 17.5066C4.12137 16.1368 2.5 15.4519 2.5 14.2998C2.5 13.9772 2.5 8.38578 2.5 5.83203M10 18.332C10.6818 18.332 11.3332 18.0569 12.6359 17.5066C15.8787 16.1368 17.5 15.4519 17.5 14.2998V5.83203M10 18.332V9.46103" stroke="#C52127" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M6.93827 8.07745L4.50393 6.89951C3.16797 6.25305 2.5 5.92983 2.5 5.41797C2.5 4.90611 3.16797 4.58289 4.50393 3.93643L6.93827 2.75849C8.44067 2.03148 9.19192 1.66797 10 1.66797C10.8081 1.66797 11.5593 2.03147 13.0617 2.75849L15.4961 3.93643C16.832 4.58289 17.5 4.90611 17.5 5.41797C17.5 5.92983 16.832 6.25305 15.4961 6.89951L13.0617 8.07745C11.5593 8.80447 10.8081 9.16797 10 9.16797C9.19192 9.16797 8.44067 8.80447 6.93827 8.07745Z" stroke="#C52127" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M5 10L6.66667 10.8333" stroke="#C52127" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M14.1673 3.33594L5.83398 7.5026" stroke="#C52127" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
</div>
|
||||
<div>
|
||||
@@ -216,28 +200,30 @@ class="text-decoration-none text-dark">
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@if (moduleCheck('MarketingAddon'))
|
||||
<div>
|
||||
<a href="{{ route('business.email-settings.index') }}" class="text-decoration-none text-dark">
|
||||
<div class="setting-box">
|
||||
{{-- <a href="{{ route('business.language-settings.index') }}" class="text-decoration-none text-dark">
|
||||
<div class=" setting-box">
|
||||
<div class="d-flex align-items-center jusitfy-content-center gap-3">
|
||||
<div class="settings-icon">
|
||||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M10 18.332C9.31817 18.332 8.66683 18.0569 7.36411 17.5066C4.12137 16.1368 2.5 15.4519 2.5 14.2998C2.5 13.9772 2.5 8.38578 2.5 5.83203M10 18.332C10.6818 18.332 11.3332 18.0569 12.6359 17.5066C15.8787 16.1368 17.5 15.4519 17.5 14.2998V5.83203M10 18.332V9.46103" stroke="var(--clr-primary)" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M6.93827 8.07745L4.50393 6.89951C3.16797 6.25305 2.5 5.92983 2.5 5.41797C2.5 4.90611 3.16797 4.58289 4.50393 3.93643L6.93827 2.75849C8.44067 2.03148 9.19192 1.66797 10 1.66797C10.8081 1.66797 11.5593 2.03147 13.0617 2.75849L15.4961 3.93643C16.832 4.58289 17.5 4.90611 17.5 5.41797C17.5 5.92983 16.832 6.25305 15.4961 6.89951L13.0617 8.07745C11.5593 8.80447 10.8081 9.16797 10 9.16797C9.19192 9.16797 8.44067 8.80447 6.93827 8.07745Z" stroke="var(--clr-primary)" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M5 10L6.66667 10.8333" stroke="var(--clr-primary)" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M14.1673 3.33594L5.83398 7.5026" stroke="var(--clr-primary)" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none"
|
||||
xmlns="http://www.w3.org/2000/svg">
|
||||
<path
|
||||
d="M15.5 12C15.5 13.933 13.933 15.5 12 15.5C10.067 15.5 8.5 13.933 8.5 12C8.5 10.067 10.067 8.5 12 8.5C13.933 8.5 15.5 10.067 15.5 12Z"
|
||||
stroke="#C52127" stroke-width="1.5" />
|
||||
<path
|
||||
d="M21.011 14.0949C21.5329 13.9542 21.7939 13.8838 21.8969 13.7492C22 13.6147 22 13.3982 22 12.9653V11.0316C22 10.5987 22 10.3822 21.8969 10.2477C21.7938 10.1131 21.5329 10.0427 21.011 9.90194C19.0606 9.37595 17.8399 7.33687 18.3433 5.39923C18.4817 4.86635 18.5509 4.59992 18.4848 4.44365C18.4187 4.28738 18.2291 4.1797 17.8497 3.96432L16.125 2.98509C15.7528 2.77375 15.5667 2.66808 15.3997 2.69058C15.2326 2.71308 15.0442 2.90109 14.6672 3.27709C13.208 4.73284 10.7936 4.73278 9.33434 3.277C8.95743 2.90099 8.76898 2.71299 8.60193 2.69048C8.43489 2.66798 8.24877 2.77365 7.87653 2.98499L6.15184 3.96423C5.77253 4.17959 5.58287 4.28727 5.51678 4.44351C5.45068 4.59976 5.51987 4.86623 5.65825 5.39916C6.16137 7.33686 4.93972 9.37599 2.98902 9.90196C2.46712 10.0427 2.20617 10.1131 2.10308 10.2476C2 10.3822 2 10.5987 2 11.0316V12.9653C2 13.3982 2 13.6147 2.10308 13.7492C2.20615 13.8838 2.46711 13.9542 2.98902 14.0949C4.9394 14.6209 6.16008 16.66 5.65672 18.5976C5.51829 19.1305 5.44907 19.3969 5.51516 19.5532C5.58126 19.7095 5.77092 19.8172 6.15025 20.0325L7.87495 21.0118C8.24721 21.2231 8.43334 21.3288 8.6004 21.3063C8.76746 21.2838 8.95588 21.0957 9.33271 20.7197C10.7927 19.2628 13.2088 19.2627 14.6689 20.7196C15.0457 21.0957 15.2341 21.2837 15.4012 21.3062C15.5682 21.3287 15.7544 21.223 16.1266 21.0117L17.8513 20.0324C18.2307 19.8171 18.4204 19.7094 18.4864 19.5531C18.5525 19.3968 18.4833 19.1304 18.3448 18.5975C17.8412 16.66 19.0609 14.621 21.011 14.0949Z"
|
||||
stroke="#C52127" stroke-width="1.5" stroke-linecap="round" />
|
||||
</svg>
|
||||
</div>
|
||||
<div>
|
||||
<h6>{{__('Email Settings')}}</h6>
|
||||
<small class="text-muted d-block">{{__('View and update email settings.')}}</small>
|
||||
<h6>{{__('Languages Settings')}}</h6>
|
||||
<small class="text-muted d-block">{{__('Add, Edit, Update, Delete Languages.')}}</small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</a> --}}
|
||||
</div>
|
||||
@endif
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -253,10 +239,10 @@ class="text-decoration-none text-dark">
|
||||
fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path
|
||||
d="M15.5 12C15.5 13.933 13.933 15.5 12 15.5C10.067 15.5 8.5 13.933 8.5 12C8.5 10.067 10.067 8.5 12 8.5C13.933 8.5 15.5 10.067 15.5 12Z"
|
||||
stroke="var(--clr-primary)" stroke-width="1.5" />
|
||||
stroke="#C52127" stroke-width="1.5" />
|
||||
<path
|
||||
d="M21.011 14.0949C21.5329 13.9542 21.7939 13.8838 21.8969 13.7492C22 13.6147 22 13.3982 22 12.9653V11.0316C22 10.5987 22 10.3822 21.8969 10.2477C21.7938 10.1131 21.5329 10.0427 21.011 9.90194C19.0606 9.37595 17.8399 7.33687 18.3433 5.39923C18.4817 4.86635 18.5509 4.59992 18.4848 4.44365C18.4187 4.28738 18.2291 4.1797 17.8497 3.96432L16.125 2.98509C15.7528 2.77375 15.5667 2.66808 15.3997 2.69058C15.2326 2.71308 15.0442 2.90109 14.6672 3.27709C13.208 4.73284 10.7936 4.73278 9.33434 3.277C8.95743 2.90099 8.76898 2.71299 8.60193 2.69048C8.43489 2.66798 8.24877 2.77365 7.87653 2.98499L6.15184 3.96423C5.77253 4.17959 5.58287 4.28727 5.51678 4.44351C5.45068 4.59976 5.51987 4.86623 5.65825 5.39916C6.16137 7.33686 4.93972 9.37599 2.98902 9.90196C2.46712 10.0427 2.20617 10.1131 2.10308 10.2476C2 10.3822 2 10.5987 2 11.0316V12.9653C2 13.3982 2 13.6147 2.10308 13.7492C2.20615 13.8838 2.46711 13.9542 2.98902 14.0949C4.9394 14.6209 6.16008 16.66 5.65672 18.5976C5.51829 19.1305 5.44907 19.3969 5.51516 19.5532C5.58126 19.7095 5.77092 19.8172 6.15025 20.0325L7.87495 21.0118C8.24721 21.2231 8.43334 21.3288 8.6004 21.3063C8.76746 21.2838 8.95588 21.0957 9.33271 20.7197C10.7927 19.2628 13.2088 19.2627 14.6689 20.7196C15.0457 21.0957 15.2341 21.2837 15.4012 21.3062C15.5682 21.3287 15.7544 21.223 16.1266 21.0117L17.8513 20.0324C18.2307 19.8171 18.4204 19.7094 18.4864 19.5531C18.5525 19.3968 18.4833 19.1304 18.3448 18.5975C17.8412 16.66 19.0609 14.621 21.011 14.0949Z"
|
||||
stroke="var(--clr-primary)" stroke-width="1.5" stroke-linecap="round" />
|
||||
stroke="#C52127" stroke-width="1.5" stroke-linecap="round" />
|
||||
</svg>
|
||||
</div>
|
||||
<div>
|
||||
@@ -279,10 +265,8 @@ class="invoice_form">
|
||||
@csrf
|
||||
|
||||
<div class="row justify-content-center">
|
||||
|
||||
|
||||
{{-- A4 Option --}}
|
||||
<div class="col-lg-4 mb-4 text-center">
|
||||
<div class="col-lg-5 mb-4 text-center">
|
||||
<label class="invoice-option position-relative d-inline-block">
|
||||
<div class="invoice-size-radio">
|
||||
<div class="custom-radio">
|
||||
@@ -291,27 +275,11 @@ class="invoice_form">
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-2">{{ __('Printer A4') }}</div>
|
||||
<img src="{{ Storage::url($invoice_setting_image->value['a4_invoice_img'] ?? 'assets/images/logo/a4-new-invoice.png') }}"
|
||||
<img src="{{ asset('assets/images/logo/a4-new-invoice.png') }}"
|
||||
alt="A4 Invoice" class="img-fluid border rounded invoice-image ">
|
||||
</label>
|
||||
</div>
|
||||
|
||||
@if (moduleCheck('TaxInvoiceAddon'))
|
||||
<div class="col-lg-4 mb-4 text-center">
|
||||
<label class="invoice-option position-relative d-inline-block">
|
||||
<div class="invoice-size-radio">
|
||||
<div class="custom-radio">
|
||||
<input type="radio" name="invoice_size" value="standard_a4" {{ data_get($invoice_setting, 'value') == 'standard_a4' ? 'checked' : '' }}>
|
||||
<span class="checkmark"></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-2">{{ __('Tax Invoice A4 Print') }}</div>
|
||||
<img src="{{ Storage::url($invoice_setting_image->value['standard_a4_img'] ?? 'assets/images/logo/tax-invoice-img.png') }}" alt="Invoice" class="img-fluid border rounded invoice-image">
|
||||
</label>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
|
||||
@if (moduleCheck('ThermalPrinterAddon'))
|
||||
<div class="col-lg-3 mb-4 text-center">
|
||||
<label class="invoice-option position-relative d-inline-block">
|
||||
@@ -322,15 +290,15 @@ class="invoice_form">
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-2">{{ __('Thermal: 3 inch 80mm') }}</div>
|
||||
<img src="{{ Storage::url($invoice_setting_image->value['thermal_invoice_img'] ?? 'assets/images/logo/3-inch-size-new-invoice.png') }}" alt="Invoice" class="img-fluid border rounded invoice-image">
|
||||
<img src="{{ asset('assets/images/logo/3-inch-size-new-invoice.png') }}" alt="Invoice" class="img-fluid border rounded invoice-image">
|
||||
</label>
|
||||
</div>
|
||||
<div class="col-lg-4 mb-4"></div>
|
||||
@endif
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="tab-pane fade" id="role" role="tabpanel" aria-labelledby="invoice-tab">
|
||||
<div>
|
||||
<div class="settings-box-container">
|
||||
@@ -342,14 +310,14 @@ class="invoice_form">
|
||||
fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path
|
||||
d="M11.5 14.0116C9.45338 13.9164 7.38334 14.4064 5.57757 15.4816C4.1628 16.324 0.453366 18.0441 2.71266 20.1966C3.81631 21.248 5.04549 22 6.59087 22H12"
|
||||
stroke="var(--clr-primary)" stroke-width="1.5" stroke-linecap="round"
|
||||
stroke="#C52127" stroke-width="1.5" stroke-linecap="round"
|
||||
stroke-linejoin="round" />
|
||||
<path
|
||||
d="M15.5 6.5C15.5 8.98528 13.4853 11 11 11C8.51472 11 6.5 8.98528 6.5 6.5C6.5 4.01472 8.51472 2 11 2C13.4853 2 15.5 4.01472 15.5 6.5Z"
|
||||
stroke="var(--clr-primary)" stroke-width="1.5" />
|
||||
stroke="#C52127" stroke-width="1.5" />
|
||||
<path
|
||||
d="M18 20.7143V22M18 20.7143C16.8432 20.7143 15.8241 20.1461 15.2263 19.2833M18 20.7143C19.1568 20.7143 20.1759 20.1461 20.7737 19.2833M15.2263 19.2833L14.0004 20.0714M15.2263 19.2833C14.8728 18.773 14.6667 18.1597 14.6667 17.5C14.6667 16.8403 14.8727 16.2271 15.2262 15.7169M20.7737 19.2833L21.9996 20.0714M20.7737 19.2833C21.1272 18.773 21.3333 18.1597 21.3333 17.5C21.3333 16.8403 21.1273 16.2271 20.7738 15.7169M18 14.2857C19.1569 14.2857 20.1761 14.854 20.7738 15.7169M18 14.2857C16.8431 14.2857 15.8239 14.854 15.2262 15.7169M18 14.2857V13M20.7738 15.7169L22 14.9286M15.2262 15.7169L14 14.9286"
|
||||
stroke="var(--clr-primary)" stroke-width="1.5" stroke-linecap="round" />
|
||||
stroke="#C52127" stroke-width="1.5" stroke-linecap="round" />
|
||||
</svg>
|
||||
</div>
|
||||
<div>
|
||||
@@ -362,7 +330,6 @@ class="invoice_form">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="tab-pane fade" id="Currencies" role="tabpanel" aria-labelledby="invoice-tab">
|
||||
<div>
|
||||
<div class="settings-box-container">
|
||||
@@ -375,10 +342,10 @@ class="text-decoration-none text-dark">
|
||||
xmlns="http://www.w3.org/2000/svg">
|
||||
<path
|
||||
d="M3.16602 12C3.16602 7.77027 3.16602 5.6554 4.36399 4.25276C4.5341 4.05358 4.7196 3.86808 4.91878 3.69797C6.32142 2.5 8.43629 2.5 12.666 2.5C16.8957 2.5 19.0106 2.5 20.4132 3.69797C20.6124 3.86808 20.7979 4.05358 20.968 4.25276C22.166 5.6554 22.166 7.77027 22.166 12C22.166 16.2297 22.166 18.3446 20.968 19.7472C20.7979 19.9464 20.6124 20.1319 20.4132 20.302C19.0106 21.5 16.8957 21.5 12.666 21.5C8.43629 21.5 6.32142 21.5 4.91878 20.302C4.7196 20.1319 4.5341 19.9464 4.36399 19.7472C3.16602 18.3446 3.16602 16.2297 3.16602 12Z"
|
||||
stroke="var(--clr-primary)" stroke-width="1.5" />
|
||||
stroke="#C52127" stroke-width="1.5" />
|
||||
<path
|
||||
d="M15.3762 10.063C15.2771 9.30039 14.4014 8.06817 12.8268 8.06814C10.9972 8.06811 10.2274 9.08141 10.0712 9.58806C9.82746 10.2657 9.8762 11.659 12.0207 11.8109C14.7014 12.0009 15.7753 12.3174 15.6387 13.958C15.502 15.5985 14.0077 15.953 12.8268 15.9149C11.6458 15.877 9.71365 15.3344 9.63867 13.8752M12.6394 7V8.07177M12.6394 15.9051V16.9999"
|
||||
stroke="var(--clr-primary)" stroke-width="1.5" stroke-linecap="round" />
|
||||
stroke="#C52127" stroke-width="1.5" stroke-linecap="round" />
|
||||
</svg>
|
||||
</div>
|
||||
<div>
|
||||
@@ -393,7 +360,7 @@ class="text-decoration-none text-dark">
|
||||
</div>
|
||||
|
||||
@if (moduleCheck('MarketingAddon'))
|
||||
<div class="tab-pane fade" id="sms" role="tabpanel" aria-labelledby="sms-tab">
|
||||
<div class="tab-pane fade" id="sms" role="tabpanel" aria-labelledby="invoice-tab">
|
||||
<div>
|
||||
<div class="settings-box-container">
|
||||
<a href="{{ route('business.sms-gateway-settings.index') }}" class="text-decoration-none text-dark">
|
||||
@@ -401,10 +368,10 @@ class="text-decoration-none text-dark">
|
||||
<div class="d-flex align-items-center jusitfy-content-center gap-3">
|
||||
<div class="settings-icon">
|
||||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M10 18.332C9.31817 18.332 8.66683 18.0569 7.36411 17.5066C4.12137 16.1368 2.5 15.4519 2.5 14.2998C2.5 13.9772 2.5 8.38578 2.5 5.83203M10 18.332C10.6818 18.332 11.3332 18.0569 12.6359 17.5066C15.8787 16.1368 17.5 15.4519 17.5 14.2998V5.83203M10 18.332V9.46103" stroke="var(--clr-primary)" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M6.93827 8.07745L4.50393 6.89951C3.16797 6.25305 2.5 5.92983 2.5 5.41797C2.5 4.90611 3.16797 4.58289 4.50393 3.93643L6.93827 2.75849C8.44067 2.03148 9.19192 1.66797 10 1.66797C10.8081 1.66797 11.5593 2.03147 13.0617 2.75849L15.4961 3.93643C16.832 4.58289 17.5 4.90611 17.5 5.41797C17.5 5.92983 16.832 6.25305 15.4961 6.89951L13.0617 8.07745C11.5593 8.80447 10.8081 9.16797 10 9.16797C9.19192 9.16797 8.44067 8.80447 6.93827 8.07745Z" stroke="var(--clr-primary)" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M5 10L6.66667 10.8333" stroke="var(--clr-primary)" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M14.1673 3.33594L5.83398 7.5026" stroke="var(--clr-primary)" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M10 18.332C9.31817 18.332 8.66683 18.0569 7.36411 17.5066C4.12137 16.1368 2.5 15.4519 2.5 14.2998C2.5 13.9772 2.5 8.38578 2.5 5.83203M10 18.332C10.6818 18.332 11.3332 18.0569 12.6359 17.5066C15.8787 16.1368 17.5 15.4519 17.5 14.2998V5.83203M10 18.332V9.46103" stroke="#C52127" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M6.93827 8.07745L4.50393 6.89951C3.16797 6.25305 2.5 5.92983 2.5 5.41797C2.5 4.90611 3.16797 4.58289 4.50393 3.93643L6.93827 2.75849C8.44067 2.03148 9.19192 1.66797 10 1.66797C10.8081 1.66797 11.5593 2.03147 13.0617 2.75849L15.4961 3.93643C16.832 4.58289 17.5 4.90611 17.5 5.41797C17.5 5.92983 16.832 6.25305 15.4961 6.89951L13.0617 8.07745C11.5593 8.80447 10.8081 9.16797 10 9.16797C9.19192 9.16797 8.44067 8.80447 6.93827 8.07745Z" stroke="#C52127" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M5 10L6.66667 10.8333" stroke="#C52127" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M14.1673 3.33594L5.83398 7.5026" stroke="#C52127" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
</div>
|
||||
<div>
|
||||
@@ -418,114 +385,9 @@ class="text-decoration-none text-dark">
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@if (moduleCheck('MarketingAddon'))
|
||||
<div class="tab-pane fade" id="email" role="tabpanel" aria-labelledby="email-tab">
|
||||
<div>
|
||||
<div class="settings-box-container">
|
||||
<a href="{{ route('business.email-settings.index') }}" class="text-decoration-none text-dark">
|
||||
<div class="setting-box">
|
||||
<div class="d-flex align-items-center jusitfy-content-center gap-3">
|
||||
<div class="settings-icon">
|
||||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M10 18.332C9.31817 18.332 8.66683 18.0569 7.36411 17.5066C4.12137 16.1368 2.5 15.4519 2.5 14.2998C2.5 13.9772 2.5 8.38578 2.5 5.83203M10 18.332C10.6818 18.332 11.3332 18.0569 12.6359 17.5066C15.8787 16.1368 17.5 15.4519 17.5 14.2998V5.83203M10 18.332V9.46103" stroke="var(--clr-primary)" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M6.93827 8.07745L4.50393 6.89951C3.16797 6.25305 2.5 5.92983 2.5 5.41797C2.5 4.90611 3.16797 4.58289 4.50393 3.93643L6.93827 2.75849C8.44067 2.03148 9.19192 1.66797 10 1.66797C10.8081 1.66797 11.5593 2.03147 13.0617 2.75849L15.4961 3.93643C16.832 4.58289 17.5 4.90611 17.5 5.41797C17.5 5.92983 16.832 6.25305 15.4961 6.89951L13.0617 8.07745C11.5593 8.80447 10.8081 9.16797 10 9.16797C9.19192 9.16797 8.44067 8.80447 6.93827 8.07745Z" stroke="var(--clr-primary)" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M5 10L6.66667 10.8333" stroke="var(--clr-primary)" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M14.1673 3.33594L5.83398 7.5026" stroke="var(--clr-primary)" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
</div>
|
||||
<div>
|
||||
<h6>{{__('Email Settings')}}</h6>
|
||||
<small class="text-muted d-block">{{__('View and update email settings.')}}</small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<div class="tab-pane fade" id="theme" role="tabpanel" aria-labelledby="theme-tab">
|
||||
<form action="{{ route('business.theme.update') }}" method="POST" class="ajaxform">
|
||||
@csrf
|
||||
<div class="kot-color-wrapper">
|
||||
<div class="kot-color-item">
|
||||
<span class="kot-label">{{ __('Primary Color') }}</span>
|
||||
|
||||
<div class="kot-input-box">
|
||||
<div class="kot-color-preview" style="background:{{ $theme_settings['primary_color'] ?? '#C52127' }};"></div>
|
||||
<input type="text" value="{{ $theme_settings['primary_color'] ?? '#C52127' }}" readonly>
|
||||
<label class="kot-picker-btn">
|
||||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M11.1958 5.82812L5.96596 11.058M5.96596 11.058L4.02273 13.0012C3.27141 13.7525 2.89574 14.1282 2.69787 14.606C2.5 15.0836 2.5 15.6149 2.5 16.6775V17.4948H3.31735C4.37988 17.4948 4.91115 17.4948 5.38886 17.297C5.86657 17.099 6.24223 16.7234 6.99356 15.972L11.9076 11.058M5.96596 11.058H11.9076M11.9076 11.058L14.1667 8.79896" stroke="#4B5563" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M16.0066 6.99057L17.3493 8.33333M16.0066 6.99057L16.7248 6.27235C16.9685 6.02859 17.0904 5.90671 17.1752 5.78774C17.6074 5.18063 17.6074 4.36627 17.1752 3.75916C17.0904 3.6402 16.9685 3.51831 16.7248 3.27456C16.481 3.03081 16.3592 2.90891 16.2402 2.82421C15.6331 2.39193 14.8187 2.39193 14.2116 2.82421C14.0927 2.90891 13.9708 3.03079 13.727 3.27456L13.0088 3.99277M16.0066 6.99057L13.0088 3.99277M13.0088 3.99277L11.666 2.65001" stroke="#4B5563" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
<input type="color" name="primary_color" value="{{ $theme_settings['primary_color'] ?? '#C52127' }}" id="primaryColor">
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="kot-color-item">
|
||||
<span class="kot-label">{{ __('Secondary Color') }}</span>
|
||||
|
||||
<div class="kot-input-box">
|
||||
<div class="kot-color-preview" style="background:{{ $theme_settings['secondary_color'] ?? '#F68A3D' }};"></div>
|
||||
<input type="text" value="{{ $theme_settings['secondary_color'] ?? '#F68A3D' }}"readonly>
|
||||
<label class="kot-picker-btn secondary">
|
||||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M11.1958 5.82812L5.96596 11.058M5.96596 11.058L4.02273 13.0012C3.27141 13.7525 2.89574 14.1282 2.69787 14.606C2.5 15.0836 2.5 15.6149 2.5 16.6775V17.4948H3.31735C4.37988 17.4948 4.91115 17.4948 5.38886 17.297C5.86657 17.099 6.24223 16.7234 6.99356 15.972L11.9076 11.058M5.96596 11.058H11.9076M11.9076 11.058L14.1667 8.79896" stroke="#4B5563" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M16.0066 6.99057L17.3493 8.33333M16.0066 6.99057L16.7248 6.27235C16.9685 6.02859 17.0904 5.90671 17.1752 5.78774C17.6074 5.18063 17.6074 4.36627 17.1752 3.75916C17.0904 3.6402 16.9685 3.51831 16.7248 3.27456C16.481 3.03081 16.3592 2.90891 16.2402 2.82421C15.6331 2.39193 14.8187 2.39193 14.2116 2.82421C14.0927 2.90891 13.9708 3.03079 13.727 3.27456L13.0088 3.99277M16.0066 6.99057L13.0088 3.99277M13.0088 3.99277L11.666 2.65001" stroke="#4B5563" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
<input type="color" name="secondary_color" value="{{ $theme_settings['secondary_color'] ?? '#F68A3D' }}" id="secondaryColor">
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="kot-color-item">
|
||||
<span class="kot-label">{{ __('Sidebar Color') }}</span>
|
||||
|
||||
<div class="kot-input-box">
|
||||
<div class="kot-color-preview" style="background:{{ $theme_settings['sidebar_color'] ?? '#201415' }};"></div>
|
||||
<input type="text" value="{{ $theme_settings['sidebar_color'] ?? '#201415' }}" readonly>
|
||||
<label class="kot-picker-btn">
|
||||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M11.1958 5.82812L5.96596 11.058M5.96596 11.058L4.02273 13.0012C3.27141 13.7525 2.89574 14.1282 2.69787 14.606C2.5 15.0836 2.5 15.6149 2.5 16.6775V17.4948H3.31735C4.37988 17.4948 4.91115 17.4948 5.38886 17.297C5.86657 17.099 6.24223 16.7234 6.99356 15.972L11.9076 11.058M5.96596 11.058H11.9076M11.9076 11.058L14.1667 8.79896" stroke="#4B5563" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M16.0066 6.99057L17.3493 8.33333M16.0066 6.99057L16.7248 6.27235C16.9685 6.02859 17.0904 5.90671 17.1752 5.78774C17.6074 5.18063 17.6074 4.36627 17.1752 3.75916C17.0904 3.6402 16.9685 3.51831 16.7248 3.27456C16.481 3.03081 16.3592 2.90891 16.2402 2.82421C15.6331 2.39193 14.8187 2.39193 14.2116 2.82421C14.0927 2.90891 13.9708 3.03079 13.727 3.27456L13.0088 3.99277M16.0066 6.99057L13.0088 3.99277M13.0088 3.99277L11.666 2.65001" stroke="#4B5563" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
<input type="color" name="sidebar_color" value="{{ $theme_settings['sidebar_color'] ?? '#201415' }}" id="sidebarColor">
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="kot-color-item">
|
||||
<span class="kot-label">{{ __('Accent Color') }}</span>
|
||||
<div class="kot-input-box">
|
||||
<div class="kot-color-preview" style="background:{{ $theme_settings['accent_color'] ?? '#fef0f1' }};"></div>
|
||||
<input type="text" value="{{ $theme_settings['accent_color'] ?? '#fef0f1' }}" readonly>
|
||||
<label class="kot-picker-btn">
|
||||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M11.1958 5.82812L5.96596 11.058M5.96596 11.058L4.02273 13.0012C3.27141 13.7525 2.89574 14.1282 2.69787 14.606C2.5 15.0836 2.5 15.6149 2.5 16.6775V17.4948H3.31735C4.37988 17.4948 4.91115 17.4948 5.38886 17.297C5.86657 17.099 6.24223 16.7234 6.99356 15.972L11.9076 11.058M5.96596 11.058H11.9076M11.9076 11.058L14.1667 8.79896" stroke="#4B5563" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M16.0066 6.99057L17.3493 8.33333M16.0066 6.99057L16.7248 6.27235C16.9685 6.02859 17.0904 5.90671 17.1752 5.78774C17.6074 5.18063 17.6074 4.36627 17.1752 3.75916C17.0904 3.6402 16.9685 3.51831 16.7248 3.27456C16.481 3.03081 16.3592 2.90891 16.2402 2.82421C15.6331 2.39193 14.8187 2.39193 14.2116 2.82421C14.0927 2.90891 13.9708 3.03079 13.727 3.27456L13.0088 3.99277M16.0066 6.99057L13.0088 3.99277M13.0088 3.99277L11.666 2.65001" stroke="#4B5563" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
<input type="color" name="accent_color" value="{{ $theme_settings['accent_color'] ?? '#fef0f1' }}" id="accentColor">
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-12">
|
||||
<div class="text-center mt-5">
|
||||
<button type="submit" class="theme-btn m-2 submit-btn">{{ __('Update') }}</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
@endsection
|
||||
|
||||
@@ -27,6 +27,16 @@
|
||||
</svg>
|
||||
</h3>
|
||||
|
||||
<div class="d-flex align-items-center mb-3">
|
||||
<input type="hidden" name="show_product_price" value="0">
|
||||
<input id="product_price" class="delete-checkbox-item multi-delete" type="checkbox"
|
||||
name="show_product_price" value="1"
|
||||
{{ is_null($product_setting) || is_null($product_setting->modules) || (optional($product_setting->modules)['show_product_price'] ?? false) ? 'checked' : '' }}>
|
||||
<label for="product_price">
|
||||
{{__('Product Price')}}
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="d-flex align-items-center mb-3">
|
||||
<input type="hidden" name="show_product_code" value="0">
|
||||
<input id="product_code" class="delete-checkbox-item multi-delete" type="checkbox"
|
||||
@@ -35,13 +45,6 @@
|
||||
<label for="product_code">{{__('Product Code')}}</label>
|
||||
</div>
|
||||
|
||||
<div class="d-flex align-items-center mb-3">
|
||||
<input type="hidden" name="show_hsn_code" value="0">
|
||||
<input id="hsn_code" class="delete-checkbox-item multi-delete" type="checkbox" name="show_hsn_code" value="1"
|
||||
{{ optional($product_setting?->modules)['show_hsn_code'] === '1' ? 'checked' : '' }}>
|
||||
<label for="hsn_code">{{__('HSN Code')}}</label>
|
||||
</div>
|
||||
|
||||
<div class="d-flex align-items-center mb-3">
|
||||
<input type="hidden" name="show_product_stock" value="0">
|
||||
<input id="stock" class="delete-checkbox-item multi-delete" type="checkbox"
|
||||
@@ -54,7 +57,7 @@
|
||||
<input type="hidden" name="show_product_unit" value="0">
|
||||
<input id="unit" class="delete-checkbox-item multi-delete" type="checkbox"
|
||||
name="show_product_unit" value="1"
|
||||
{{ optional($product_setting?->modules)['show_product_unit'] === '1' ? 'checked' : '' }}>
|
||||
{{ is_null($product_setting) || is_null($product_setting->modules) || (optional($product_setting->modules)['show_product_unit'] ?? false) ? 'checked' : '' }}>
|
||||
<label for="unit">{{__('Product Unit')}}</label>
|
||||
</div>
|
||||
|
||||
@@ -102,7 +105,7 @@
|
||||
<input type="hidden" name="show_alert_qty" value="0">
|
||||
<input id="quantity" class="delete-checkbox-item multi-delete" type="checkbox"
|
||||
name="show_alert_qty" value="1"
|
||||
{{ optional($product_setting?->modules)['show_alert_qty'] === '1' ? 'checked' : '' }}>
|
||||
{{ is_null($product_setting) || is_null($product_setting->modules) || (optional($product_setting->modules)['show_alert_qty'] ?? false) ? 'checked' : '' }}>
|
||||
<label for="quantity">{{__('Low Stock Alert')}}</label>
|
||||
</div>
|
||||
|
||||
@@ -454,8 +457,6 @@ class="form-control mfg-my"
|
||||
{{ optional($product_setting?->modules)['allow_product_discount'] === '1' ? 'checked' : '' }}>
|
||||
<label for="allow_product_discount">{{ __('Product Discount') }}</label>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="col-lg-12">
|
||||
|
||||
@@ -5,6 +5,13 @@
|
||||
@endsection
|
||||
|
||||
@php
|
||||
$file = base_path('lang/countrylist.json');
|
||||
|
||||
if (file_exists($file)) {
|
||||
$countries = json_decode(file_get_contents($file), true);
|
||||
} else {
|
||||
$countries = [];
|
||||
}
|
||||
$type = request('type') !== 'Supplier' ? 'Customer' : 'Supplier';
|
||||
@endphp
|
||||
|
||||
@@ -20,18 +27,12 @@
|
||||
|
||||
<h4>{{ __('Add new :type', ['type' => __($type)]) }}</h4>
|
||||
|
||||
<div class="d-flex align-items-center gap-3">
|
||||
<a data-bs-toggle="modal" data-bs-target="#parties-import-modal" class="save-publish-btn" href="#">
|
||||
{{__('Bulk Upload')}}
|
||||
</a>
|
||||
|
||||
@usercan('parties.read')
|
||||
<a href="{{ route('business.parties.index', ['type' => request('type')]) }}"
|
||||
class="add-order-btn rounded-2 {{ Route::is('business.parties.create') ? 'active' : '' }}">
|
||||
<i class="far fa-list" aria-hidden="true"></i>{{ __(':type List', ['type' => __($type)]) }}
|
||||
</a>
|
||||
@endusercan
|
||||
</div>
|
||||
@usercan('parties.read')
|
||||
<a href="{{ route('business.parties.index', ['type' => request('type')]) }}"
|
||||
class="add-order-btn rounded-2 {{ Route::is('business.parties.create') ? 'active' : '' }}">
|
||||
<i class="far fa-list" aria-hidden="true"></i>{{ __(':type List', ['type' => __($type)]) }}
|
||||
</a>
|
||||
@endusercan
|
||||
</div>
|
||||
|
||||
<div class="order-form-section p-16">
|
||||
@@ -42,11 +43,11 @@ class="add-order-btn rounded-2 {{ Route::is('business.parties.create') ? 'active
|
||||
<div class="row col-lg-9">
|
||||
<div class="col-lg-6 mb-2">
|
||||
<label>{{ __($type . ' Name') }}</label>
|
||||
<input type="text" name="name" required class="form-control" placeholder="{{ __('Enter :type Name', ['type' => __($type)]) }}">
|
||||
<input type="text" name="name" required class="form-control" placeholder="{{ __('Enter '.$type.' Name') }}">
|
||||
</div>
|
||||
<div class="col-lg-6 mb-2">
|
||||
<label>{{ __('Phone Number') }}</label>
|
||||
<input type="text" name="phone" class="form-control" placeholder="{{ __('Enter Phone Number') }}">
|
||||
<input type="number" name="phone" class="form-control" placeholder="{{ __('Enter Phone Number') }}">
|
||||
</div>
|
||||
@if (request('type') !== 'Supplier')
|
||||
<div class="col-lg-6 mb-2">
|
||||
@@ -94,12 +95,6 @@ class="add-order-btn rounded-2 {{ Route::is('business.parties.create') ? 'active
|
||||
<label>{{ __('Address') }}</label>
|
||||
<input type="text" name="address" class="form-control" placeholder="{{ __('Enter Address') }}">
|
||||
</div>
|
||||
|
||||
<div class="col-lg-6 mb-2">
|
||||
<label>{{ __('Tax No') }}</label>
|
||||
<input type="text" name="tax_no" class="form-control" placeholder="{{ __('Enter tax') }}">
|
||||
</div>
|
||||
|
||||
<div class="accordion" id="customAccordion">
|
||||
<div class="accordion-item border-0">
|
||||
<h2 class="accordion-header">
|
||||
@@ -111,39 +106,31 @@ class="add-order-btn rounded-2 {{ Route::is('business.parties.create') ? 'active
|
||||
data-bs-parent="#customAccordion">
|
||||
<div class="accordion-body fst-italic text-secondary p-0">
|
||||
<div class="row">
|
||||
|
||||
<div class="col-lg-6 mb-2">
|
||||
<label>{{ __('Country') }}</label>
|
||||
<select name="country_id" id="country_id" class="form-control">
|
||||
<option value="">{{ __('Select a country') }}</option>
|
||||
@foreach ($countries as $country)
|
||||
<option value="{{ $country->id }}">{{ __($country->name) }}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-6 mb-2">
|
||||
<label>{{ __('State') }}</label>
|
||||
<select name="state_id" id="state_id" class="form-control">
|
||||
<option value="">{{ __('Select state') }}</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-6 mb-2">
|
||||
<label>{{ __('City') }}</label>
|
||||
<input type="text" name="billing_address[city]" class="form-control" placeholder="{{ __('Enter city') }}">
|
||||
</div>
|
||||
|
||||
<div class="col-lg-6 mb-2">
|
||||
<label>{{ __('Zip Code') }}</label>
|
||||
<input type="text" name="billing_address[zip_code]" class="form-control" placeholder="{{ __('Enter zip code') }}">
|
||||
</div>
|
||||
|
||||
<div class="col-lg-6 mb-2">
|
||||
<label>{{ __('Address line 1') }}</label>
|
||||
<input type="text" name="billing_address[address]" class="form-control" placeholder="{{ __('Enter address') }}">
|
||||
</div>
|
||||
|
||||
<div class="col-lg-6 mb-2">
|
||||
<label>{{ __('City') }}</label>
|
||||
<input type="text" name="billing_address[city]" class="form-control" placeholder="{{ __('Enter city') }}">
|
||||
</div>
|
||||
<div class="col-lg-6 mb-2">
|
||||
<label>{{ __('State') }}</label>
|
||||
<input type="text" name="billing_address[state]" class="form-control" placeholder="{{ __('Enter state') }}">
|
||||
</div>
|
||||
<div class="col-lg-6 mb-2">
|
||||
<label>{{ __('Zip Code') }}</label>
|
||||
<input type="text" name="billing_address[zip_code]" class="form-control" placeholder="{{ __('Enter zip code') }}">
|
||||
</div>
|
||||
<div class="col-lg-6 mb-2">
|
||||
<label>{{ __('Country') }}</label>
|
||||
<select name="billing_address[country]" class="form-control">
|
||||
<option value="">{{ __('Select a country') }}</option>
|
||||
@foreach ($countries as $country)
|
||||
<option value="{{ $country['name'] }}">{{ __($country['name']) }}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -197,7 +184,7 @@ class="add-order-btn rounded-2 {{ Route::is('business.parties.create') ? 'active
|
||||
<img src="{{ asset('assets/images/icons/img.png') }}" alt="icon" />
|
||||
</div>
|
||||
<p>{{__('Drag & drop your Image')}}</p>
|
||||
<p>{{__('or')}} <span class="browse-text">{{__('Browse')}}</span></p>
|
||||
<p>or <span class="browse-text">{{__('Browse')}}</span></p>
|
||||
</div>
|
||||
</div>
|
||||
<input type="file" name="image" id="fileInput" accept="image/*">
|
||||
@@ -218,11 +205,4 @@ class="add-order-btn rounded-2 {{ Route::is('business.parties.create') ? 'active
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<input type="hidden" value="{{ route('business.get-states.index') }}" id="get-state">
|
||||
|
||||
@endsection
|
||||
|
||||
@push('modal')
|
||||
@include('business::parties.bulk-upload.parties-import')
|
||||
@endpush
|
||||
|
||||
@@ -65,21 +65,9 @@ class="table-product-img">
|
||||
@endusercan
|
||||
</li>
|
||||
<li>
|
||||
<a href="{{ route('business.parties.advance-payments', [$party->id, 'type' => request('type')]) }}">
|
||||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" class="pt-1 me-0" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M1.66602 3.75H7.29715C7.96019 3.75 8.5961 4.01339 9.06493 4.48223L11.666 7.08333" stroke="black" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M4.16602 11.25H1.66602" stroke="black" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M7.08268 6.25L8.74935 7.91667C9.2096 8.37692 9.2096 9.12308 8.74935 9.58333C8.28912 10.0436 7.54292 10.0436 7.08268 9.58333L5.83268 8.33333C5.11544 9.05058 3.97994 9.13125 3.16847 8.52267L2.91602 8.33333" stroke="black" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M4.16602 9.16536V12.9154C4.16602 14.4867 4.16602 15.2724 4.65417 15.7605C5.14232 16.2487 5.928 16.2487 7.49935 16.2487H14.9993C16.5707 16.2487 17.3563 16.2487 17.8445 15.7605C18.3327 15.2724 18.3327 14.4867 18.3327 12.9154V10.4154C18.3327 8.84403 18.3327 8.05834 17.8445 7.57019C17.3563 7.08203 16.5707 7.08203 14.9993 7.08203H7.91602" stroke="black" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M12.7077 11.6654C12.7077 12.4708 12.0548 13.1237 11.2493 13.1237C10.4439 13.1237 9.79102 12.4708 9.79102 11.6654C9.79102 10.8599 10.4439 10.207 11.2493 10.207C12.0548 10.207 12.7077 10.8599 12.7077 11.6654Z" stroke="black" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
{{ $party->type == 'Supplier' ? __('Advance Pay') : __('Advance Collect') }}
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="{{ route('business.parties.edit', [$party->id, 'type' => request('type')]) }}">
|
||||
<i class="fal fa-edit"></i>{{ __('Edit') }}
|
||||
</a>
|
||||
<a
|
||||
href="{{ route('business.parties.edit', [$party->id, 'type' => request('type')]) }}"><i
|
||||
class="fal fa-edit"></i>{{ __('Edit') }}</a>
|
||||
</li>
|
||||
<li>
|
||||
@usercan('parties.delete')
|
||||
|
||||
@@ -5,6 +5,13 @@
|
||||
@endsection
|
||||
|
||||
@php
|
||||
$file = base_path('lang/countrylist.json');
|
||||
|
||||
if (file_exists($file)) {
|
||||
$countries = json_decode(file_get_contents($file), true);
|
||||
} else {
|
||||
$countries = [];
|
||||
}
|
||||
$type = request('type') !== 'Supplier' ? 'Customer' : 'Supplier';
|
||||
@endphp
|
||||
|
||||
@@ -42,7 +49,7 @@ class="ajaxform_instant_reload">
|
||||
|
||||
<div class="col-lg-6 mb-2">
|
||||
<label>{{ __('Phone') }}</label>
|
||||
<input type="text" value="{{ $party->phone }}" name="phone"
|
||||
<input type="number" value="{{ $party->phone }}" name="phone"
|
||||
class="form-control" placeholder="{{ __('Enter phone number') }}">
|
||||
</div>
|
||||
|
||||
@@ -70,8 +77,7 @@ class="form-control" placeholder="{{ __('Enter phone number') }}">
|
||||
@endif
|
||||
|
||||
@php
|
||||
$branch_id = auth()->user()->branch_id ?? auth()->user()->active_branch_id ?? null;
|
||||
$branch_logic = $party->branch_id != $branch_id;
|
||||
$branch_logic = $party->branch_id != (auth()->user()->active_branch?->id);
|
||||
@endphp
|
||||
|
||||
<div class="col-lg-6 mb-2">
|
||||
@@ -110,11 +116,6 @@ class="form-control" placeholder="{{ __('Enter Email') }}">
|
||||
class="form-control" placeholder="{{ __('Enter Address') }}">
|
||||
</div>
|
||||
|
||||
<div class="col-lg-6 mb-2">
|
||||
<label>{{ __('Tax No') }}</label>
|
||||
<input type="text" value="{{ $party->tax_no }}" name="tax_no" class="form-control" placeholder="{{ __('Enter tax') }}">
|
||||
</div>
|
||||
|
||||
<div class="accordion" id="customAccordion">
|
||||
<div class="accordion-item border-0">
|
||||
<h2 class="accordion-header">
|
||||
@@ -130,22 +131,12 @@ class="accordion-button address-accordion collapsed fw-medium text-primary bg-t
|
||||
data-bs-parent="#customAccordion">
|
||||
<div class="accordion-body fst-italic text-secondary p-0">
|
||||
<div class="row">
|
||||
|
||||
<div class="col-lg-6 mb-2">
|
||||
<label>{{ __('Country') }}</label>
|
||||
<select name="country_id" id="country_id" class="form-control">
|
||||
<option value="">{{ __('Select a country') }}</option>
|
||||
@foreach ($countries as $country)
|
||||
<option value="{{ $country->id }}" @selected(($party->country_id ?? '') == $country->id)>{{ __($country->name) }}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-6 mb-2">
|
||||
<label>{{ __('State') }}</label>
|
||||
<select name="state_id" id="state_id" class="form-control" data-selected="{{ $party->state_id ?? '' }}">
|
||||
<option value="">{{ __('Select state') }}</option>
|
||||
</select>
|
||||
<label>{{ __('Address') }}</label>
|
||||
<input type="text" name="billing_address[address]"
|
||||
value="{{ $party->billing_address['address'] ?? '' }}"
|
||||
class="form-control"
|
||||
placeholder="{{ __('Enter address') }}">
|
||||
</div>
|
||||
|
||||
<div class="col-lg-6 mb-2">
|
||||
@@ -156,6 +147,14 @@ class="form-control"
|
||||
placeholder="{{ __('Enter city') }}">
|
||||
</div>
|
||||
|
||||
<div class="col-lg-6 mb-2">
|
||||
<label>{{ __('State') }}</label>
|
||||
<input type="text" name="billing_address[state]"
|
||||
value="{{ $party->billing_address['state'] ?? '' }}"
|
||||
class="form-control"
|
||||
placeholder="{{ __('Enter state') }}">
|
||||
</div>
|
||||
|
||||
<div class="col-lg-6 mb-2">
|
||||
<label>{{ __('Zip Code') }}</label>
|
||||
<input type="text" name="billing_address[zip_code]"
|
||||
@@ -164,18 +163,24 @@ class="form-control"
|
||||
placeholder="{{ __('Enter zip code') }}">
|
||||
</div>
|
||||
|
||||
<div class="col-lg-6 mb-2">
|
||||
<label>{{ __('Address') }}</label>
|
||||
<input type="text" name="billing_address[address]"
|
||||
value="{{ $party->billing_address['address'] ?? '' }}"
|
||||
class="form-control"
|
||||
placeholder="{{ __('Enter address') }}">
|
||||
</div>
|
||||
|
||||
@php
|
||||
$billing = is_array($party->billing_address) ? $party->billing_address : json_decode($party->billing_address, true) ?? [];
|
||||
@endphp
|
||||
|
||||
<div class="col-lg-6 mb-2">
|
||||
<label>{{ __('Country') }}</label>
|
||||
<select name="billing_address[country]"
|
||||
class="form-control">
|
||||
<option value="">{{ __('Select a country') }}
|
||||
</option>
|
||||
@foreach ($countries as $country)
|
||||
<option value="{{ $country['name'] }}"
|
||||
@selected(($billing['country'] ?? '') == $country['name'])>
|
||||
{{ __($country['name']) }}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -199,7 +204,7 @@ class="accordion-button address-accordion fw-medium text-dark bg-transparent sha
|
||||
<div class="col-lg-6 mb-2">
|
||||
<label>{{ __('Address') }}</label>
|
||||
<input type="text" name="shipping_address[address]"
|
||||
value="{{ $party->shipping_address['address'] ?? '' }}"
|
||||
value="{{ $party->billing_address['address'] ?? '' }}"
|
||||
class="form-control"
|
||||
placeholder="{{ __('Enter address') }}">
|
||||
</div>
|
||||
@@ -207,7 +212,7 @@ class="form-control"
|
||||
<div class="col-lg-6 mb-2">
|
||||
<label>{{ __('City') }}</label>
|
||||
<input type="text" name="shipping_address[city]"
|
||||
value="{{ $party->shipping_address['city'] ?? '' }}"
|
||||
value="{{ $party->billing_address['city'] ?? '' }}"
|
||||
class="form-control"
|
||||
placeholder="{{ __('Enter city') }}">
|
||||
</div>
|
||||
@@ -215,7 +220,7 @@ class="form-control"
|
||||
<div class="col-lg-6 mb-2">
|
||||
<label>{{ __('State') }}</label>
|
||||
<input type="text" name="shipping_address[state]"
|
||||
value="{{ $party->shipping_address['state'] ?? '' }}"
|
||||
value="{{ $party->billing_address['state'] ?? '' }}"
|
||||
class="form-control"
|
||||
placeholder="{{ __('Enter state') }}">
|
||||
</div>
|
||||
@@ -223,7 +228,7 @@ class="form-control"
|
||||
<div class="col-lg-6 mb-2">
|
||||
<label>{{ __('Zip Code') }}</label>
|
||||
<input type="text" name="shipping_address[zip_code]"
|
||||
value="{{ $party->shipping_address['zip_code'] ?? '' }}"
|
||||
value="{{ $party->billing_address['zip_code'] ?? '' }}"
|
||||
class="form-control"
|
||||
placeholder="{{ __('Enter zip code') }}">
|
||||
</div>
|
||||
@@ -260,7 +265,7 @@ class="form-control">
|
||||
<img src="{{ asset( $party->image ?? 'assets/images/icons/img.png') }}" alt="icon" />
|
||||
</div>
|
||||
<p>{{__('Drag & drop your Image')}}</p>
|
||||
<p>{{__('or')}} <span class="browse-text">{{__('Browse')}}</span></p>
|
||||
<p>or <span class="browse-text">{{__('Browse')}}</span></p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -285,6 +290,5 @@ class="theme-btn border-btn m-2">{{ __('Cancel') }}</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<input type="hidden" value="{{ route('business.get-states.index') }}" id="get-state">
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@@ -55,16 +55,16 @@
|
||||
<div class="table-top-btn-group d-print-none">
|
||||
<ul>
|
||||
<li>
|
||||
<a class="export-btn" href="{{ route('business.customer-ledger.csv') }}">
|
||||
<a href="{{ route('business.customer-ledger.csv') }}">
|
||||
<img src="{{ asset('assets/images/logo/csv.svg') }}" alt="">
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="export-btn" href="{{ route('business.customer-ledger.excel') }}">
|
||||
<a href="{{ route('business.customer-ledger.excel') }}">
|
||||
<img src="{{ asset('assets/images/logo/excel.svg') }}" alt="">
|
||||
</a>
|
||||
</li>
|
||||
<a class="export-btn" target="_blank" href="{{ route('business.customer-ledger.pdf') }}">
|
||||
<a target="blank" href="{{ route('business.customer-ledger.pdf') }}">
|
||||
<img src="{{ asset('assets/images/logo/pdf.svg') }}" alt="">
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
<div class="table-header justify-content-center border-0 d-none d-block d-print-block text-center">
|
||||
@include('business::print.header')
|
||||
<h4 style="text-align: center; margin: 0; padding: 0; font-size: 16px;" class="">{{ __('Customer Ledger List') }}</h4>
|
||||
{{-- <p style="text-align: center; margin: 0; padding: 0; font-weight: 400; font-size: 14px;" class="">{{ __('Duration: 14-12-2025 to 24-12-2025') }}</p> --}}
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
|
||||
@@ -25,41 +25,13 @@
|
||||
<td class="text-start d-print-none">{{ $index + 1 }}</td>
|
||||
<td class="text-start">{{ formatted_date($row['date']) }}</td>
|
||||
|
||||
@php
|
||||
$invoice_no = $row['invoice_no'] ?? null;
|
||||
$invoice_route = null;
|
||||
|
||||
if ($invoice_no) {
|
||||
if ($row['platform'] === 'Sales') {
|
||||
$businessId = $row['business_id'] ?? null;
|
||||
$tax_invoice = moduleCheck('TaxInvoiceAddon') && invoice_setting($businessId) == 'standard_a4';
|
||||
|
||||
$invoice_route = $tax_invoice
|
||||
? route('business.sales.tax.invoice', $row['id'])
|
||||
: route('business.sales.invoice', $row['id']);
|
||||
} else {
|
||||
$invoice_route = route('business.collect.dues.invoice', $row['id'] ?? '');
|
||||
}
|
||||
}
|
||||
@endphp
|
||||
|
||||
<td class="text-start">
|
||||
@if($invoice_route)
|
||||
<a target="_blank" href="{{ $invoice_route }}" class="stock-view-data text-primary">
|
||||
{{ $invoice_no }}
|
||||
</a>
|
||||
@else
|
||||
{{ $invoice_no ?? '-' }}
|
||||
@endif
|
||||
<a target="_blank" href="{{ $row['platform'] === 'Sales' ? route('business.sales.invoice', $row['id'] ?? '') : route('business.collect.dues.invoice', $row['id'] ?? '') }}" class="stock-view-data text-primary">
|
||||
{{ $row['invoice_no'] ?? '-' }}
|
||||
</a>
|
||||
</td>
|
||||
|
||||
<td class="text-start">
|
||||
@if(in_array($row['platform'], ['Opening Collection', 'Opening Payment']))
|
||||
{{ $row['platform'] }}: {{ currency_format($row['amount'] ?? 0, currency: business_currency()) }}
|
||||
@else
|
||||
{{ $row['platform'] }}
|
||||
@endif
|
||||
</td>
|
||||
<td class="text-start">{{ $row['platform'] }}</td>
|
||||
|
||||
<td class="text-start">{{ currency_format($row['credit_amount'], currency: business_currency() ) }}</td>
|
||||
|
||||
|
||||
@@ -25,24 +25,12 @@
|
||||
<td class="text-start">{{ formatted_date($row['date']) }}</td>
|
||||
|
||||
<td class="text-start">
|
||||
@if($row['invoice_no'] && $row['platform'] === 'Sales')
|
||||
<a target="_blank" href="{{ route('business.sales.invoice', $row['id'] ?? '') }}" class="stock-view-data text-primary">
|
||||
{{ $row['invoice_no'] }}
|
||||
</a>
|
||||
@elseif($row['invoice_no'])
|
||||
{{ $row['invoice_no'] }}
|
||||
@else
|
||||
-
|
||||
@endif
|
||||
<a target="_blank" href="{{ $row['platform'] === 'Sales' ? route('business.sales.invoice', $row['id'] ?? '') : route('business.collect.dues.invoice', $row['id'] ?? '') }}" class="stock-view-data text-primary">
|
||||
{{ $row['invoice_no'] ?? '-' }}
|
||||
</a>
|
||||
</td>
|
||||
|
||||
<td class="d-print-none text-start">
|
||||
@if(in_array($row['platform'], ['Opening Collection', 'Opening Payment']))
|
||||
{{ $row['platform'] }}: {{ currency_format($row['amount'] ?? 0) }}
|
||||
@else
|
||||
{{ $row['platform'] }}
|
||||
@endif
|
||||
</td>
|
||||
<td class="d-print-none text-start">{{ $row['platform'] }}</td>
|
||||
|
||||
<td class="text-start">{{ currency_format($row['credit_amount']) }}</td>
|
||||
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
</div>
|
||||
<div class="gpt-up-down-arrow position-relative d-print-none custom-date-filter">
|
||||
<select name="duration" class="form-control custom-days">
|
||||
<option value="">{{ __('All Time') }}</option>
|
||||
<option value="">{{ __('All') }}</option>
|
||||
<option value="today"> {{ __('Today') }}</option>
|
||||
<option value="yesterday"> {{ __('Yesterday') }}</option>
|
||||
<option value="last_seven_days"> {{ __('Last 7 Days') }}</option>
|
||||
@@ -64,17 +64,17 @@
|
||||
<div class="table-top-btn-group d-print-none">
|
||||
<ul>
|
||||
<li>
|
||||
<a class="export-btn" href="{{ route('business.single-customer-ledger.csv', $party->id) }}">
|
||||
<a href="{{ route('business.single-customer-ledger.csv', $party->id) }}">
|
||||
<img src="{{ asset('assets/images/logo/csv.svg') }}" alt="">
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="export-btn" href="{{ route('business.single-customer-ledger.excel', $party->id) }}">
|
||||
<a href="{{ route('business.single-customer-ledger.excel', $party->id) }}">
|
||||
<img src="{{ asset('assets/images/logo/excel.svg') }}" alt="">
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="export-btn" target="_blank" href="{{ route('business.single-customer-ledger.pdf', $party->id) }}">
|
||||
<a target="blank" href="{{ route('business.single-customer-ledger.pdf', $party->id) }}">
|
||||
<img src="{{ asset('assets/images/logo/pdf.svg') }}" alt="">
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -5,19 +5,6 @@
|
||||
@include('business::print.header')
|
||||
<p style="text-align: center; margin: 0; padding: 0; margin-bottom:5px; font-size: 16px;">
|
||||
{{ $party->name }} ({{ __('Ledger')}})
|
||||
@if ($fromDate && $toDate)
|
||||
<p style="text-align: center; margin: 0; padding: 0; font-weight: 400; font-size: 14px;" class="">{{ __('Duration:') }}
|
||||
@if ($duration === 'today')
|
||||
{{ Carbon\Carbon::parse($fromDate)->format('d-m-Y') }}
|
||||
@elseif ($duration === 'yesterday')
|
||||
{{ Carbon\Carbon::parse($fromDate)->format('d-m-Y') }}
|
||||
@else
|
||||
{{ Carbon\Carbon::parse($fromDate)->format('d-m-Y') }}
|
||||
{{ __('to') }}
|
||||
{{ Carbon\Carbon::parse($toDate)->format('d-m-Y') }}
|
||||
@endif
|
||||
</p>
|
||||
@endif
|
||||
</p>
|
||||
@endsection
|
||||
|
||||
@@ -60,11 +47,7 @@
|
||||
</td>
|
||||
|
||||
<td style="border:1px solid gainsboro; text-align:center;">
|
||||
@if(in_array($row['platform'], ['Opening Collection', 'Opening Payment']))
|
||||
{{ $row['platform'] }}: {{ currency_format($row['amount'] ?? 0, currency: business_currency()) }}
|
||||
@else
|
||||
{{ $row['platform'] }}
|
||||
@endif
|
||||
{{ $row['platform'] }}
|
||||
</td>
|
||||
|
||||
<td style="border:1px solid gainsboro; text-align:center;">
|
||||
|
||||
@@ -48,12 +48,12 @@
|
||||
<tr>
|
||||
<td class="text-start fw-bold">{{__('Total')}}</td>
|
||||
<td></td>
|
||||
<td class="text-start fw-bold">{{ currency_format($totalSaleAmount, currency: business_currency()) }}</td>
|
||||
<td class="text-start fw-bold">{{ currency_format($parties->sum(fn($party) => $party->sales?->sum('totalAmount') ?? 0), currency: business_currency()) }}</td>
|
||||
<td class="text-start fw-bold">
|
||||
{{ currency_format($totalProfit, currency: business_currency()) }}
|
||||
{{ currency_format($parties->sum(fn($party) => $party->sales?->where('lossProfit', '>', 0)->sum('lossProfit') ?? 0), currency: business_currency()) }}
|
||||
</td>
|
||||
<td class="text-start fw-bold text-danger">
|
||||
{{ currency_format(abs($totalLoss), currency: business_currency()) }}
|
||||
{{ currency_format(abs($parties->sum(fn($party) => $party->sales?->where('lossProfit', '<', 0)->sum('lossProfit') ?? 0)), currency: business_currency()) }}
|
||||
</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
|
||||
@@ -18,19 +18,19 @@
|
||||
<div class="col-lg-2 col-md-6">
|
||||
<div class="sales-card p-3 m-2 text-white">
|
||||
<p class="stat-title">{{ __('Sales Amount') }}</p>
|
||||
<p class="stat-value" id="totalSaleAmount">{{ currency_format($totalSaleAmount, currency: business_currency()) }}</p>
|
||||
<p class="stat-value">{{ currency_format($totalAmount, currency: business_currency()) }}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-2 col-md-6">
|
||||
<div class="profit-card p-3 m-2 text-white">
|
||||
<p class="stat-title">{{ __('Profit') }}</p>
|
||||
<p class="stat-value" id="totalProfit">{{ currency_format($totalProfit, currency: business_currency()) }}</p>
|
||||
<p class="stat-value">{{ currency_format($totalProfit, currency: business_currency()) }}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-2 col-md-12 ">
|
||||
<div class="loss-card p-3 m-2 text-white">
|
||||
<p class="stat-title">{{ __('Loss') }}</p>
|
||||
<p class="stat-value" id="totalLoss">{{ currency_format($totalLoss, currency: business_currency()) }}</p>
|
||||
<p class="stat-value">{{ currency_format(abs($totalLoss), currency: business_currency()) }}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -70,17 +70,17 @@
|
||||
<div class="table-top-btn-group d-print-none">
|
||||
<ul>
|
||||
<li>
|
||||
<a class="export-btn" href="{{ route('business.party-loss-profit.csv') }}">
|
||||
<a href="{{ route('business.party-loss-profit.csv') }}">
|
||||
<img src="{{ asset('assets/images/logo/csv.svg') }}" alt="">
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="export-btn" href="{{ route('business.party-loss-profit.excel') }}">
|
||||
<a href="{{ route('business.party-loss-profit.excel') }}">
|
||||
<img src="{{ asset('assets/images/logo/excel.svg') }}" alt="">
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="export-btn" target="_blank" href="{{ route('business.party-loss-profit.pdf') }}">
|
||||
<a target="blank" href="{{ route('business.party-loss-profit.pdf') }}">
|
||||
<img src="{{ asset('assets/images/logo/pdf.svg') }}" alt="">
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
<div class="table-header justify-content-center border-0 d-none d-block d-print-block text-center">
|
||||
@include('business::print.header')
|
||||
<h4 style="text-align: center; margin: 0; padding: 0; font-size: 16px;" class="">{{ __('Party Loss Profit Report') }}</h4>
|
||||
{{-- <p style="text-align: center; margin: 0; padding: 0; font-weight: 400; font-size: 14px;" class="">{{ __('Duration: 14-12-2025 to 24-12-2025') }}</p> --}}
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
@foreach ($suppliers as $supplier)
|
||||
<tr>
|
||||
<td class="d-print-none">{{ $suppliers->firstItem() + $loop->index }}</td>
|
||||
<td class=" text-start">
|
||||
<td class="d-print-none text-start">
|
||||
<a href="{{ route('business.supplier-ledger.show', $supplier->id) }}" class="stock-view-data text-primary">
|
||||
{{ $supplier->name }}
|
||||
</a>
|
||||
|
||||
@@ -46,17 +46,17 @@
|
||||
<div class="table-top-btn-group d-print-none">
|
||||
<ul>
|
||||
<li>
|
||||
<a class="export-btn" href="{{ route('business.supplier-ledger.csv') }}">
|
||||
<a href="{{ route('business.supplier-ledger.csv') }}">
|
||||
<img src="{{ asset('assets/images/logo/csv.svg') }}" alt="">
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="export-btn" href="{{ route('business.supplier-ledger.excel') }}">
|
||||
<a href="{{ route('business.supplier-ledger.excel') }}">
|
||||
<img src="{{ asset('assets/images/logo/excel.svg') }}" alt="">
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="export-btn" target="_blank" href="{{ route('business.supplier-ledger.pdf') }}">
|
||||
<a target="blank" href="{{ route('business.supplier-ledger.pdf') }}">
|
||||
<img src="{{ asset('assets/images/logo/pdf.svg') }}" alt="">
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
<div class="table-header justify-content-center border-0 d-none d-block d-print-block text-center">
|
||||
@include('business::print.header')
|
||||
<h4 style="text-align: center; margin: 0; padding: 0; font-size: 16px;" class="">{{ __('Supplier Ledger List') }}</h4>
|
||||
{{-- <p style="text-align: center; margin: 0; padding: 0; font-weight: 400; font-size: 14px;" class="">{{ __('Duration: 14-12-2025 to 24-12-2025') }}</p> --}}
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
|
||||
@@ -25,41 +25,12 @@
|
||||
<td class="text-start">{{ $index + 1 }}</td>
|
||||
<td class="text-start">{{ formatted_date($row['date']) }}</td>
|
||||
|
||||
@php
|
||||
$invoice_no = $row['invoice_no'] ?? null;
|
||||
$invoice_route = null;
|
||||
|
||||
if ($invoice_no) {
|
||||
if ($row['platform'] === 'Purchase') {
|
||||
$businessId = $row['business_id'] ?? null;
|
||||
$tax_invoice = moduleCheck('TaxInvoiceAddon') && invoice_setting($businessId) == 'standard_a4';
|
||||
|
||||
$invoice_route = $tax_invoice
|
||||
? route('business.purchases.tax.invoice', $row['id'])
|
||||
: route('business.purchases.invoice', $row['id']);
|
||||
} else {
|
||||
$invoice_route = route('business.collect.dues.invoice', $row['id'] ?? '');
|
||||
}
|
||||
}
|
||||
@endphp
|
||||
|
||||
<td class="text-start">
|
||||
@if($invoice_route)
|
||||
<a target="_blank" href="{{ $invoice_route }}" class="stock-view-data text-primary">
|
||||
{{ $invoice_no }}
|
||||
</a>
|
||||
@else
|
||||
{{ $invoice_no ?? '-' }}
|
||||
@endif
|
||||
</td>
|
||||
|
||||
<td class="text-start">
|
||||
@if(in_array($row['platform'], ['Opening Collection', 'Opening Payment']))
|
||||
{{ $row['platform'] }}: {{ currency_format($row['amount'] ?? 0, currency: business_currency()) }}
|
||||
@else
|
||||
{{ $row['platform'] }}
|
||||
@endif
|
||||
<a target="_blank" href="{{ $row['platform'] === 'Purchase' ? route('business.purchases.invoice', $row['id'] ?? '') : route('business.collect.dues.invoice', $row['id'] ?? '') }}" class="stock-view-data text-primary">
|
||||
{{ $row['invoice_no'] ?? '-' }} - {{ $row['id'] }}
|
||||
</a>
|
||||
</td>
|
||||
<td class="d-print-none text-start">{{ $row['platform'] }}</td>
|
||||
<td class="text-start">{{ currency_format($row['credit_amount'], currency: business_currency()) }}</td>
|
||||
<td class="text-start">{{ currency_format($row['debit_amount'], currency: business_currency()) }}</td>
|
||||
<td class="text-start">{{ currency_format($row['balance'], currency: business_currency()) }}</td>
|
||||
|
||||
@@ -24,21 +24,9 @@
|
||||
<td class="text-start">{{ $index + 1 }}</td>
|
||||
<td class="text-start">{{ formatted_date($row['date']) }}</td>
|
||||
<td class="text-start">
|
||||
@if($row['invoice_no'] && $row['platform'] === 'Purchase')
|
||||
{{ $row['invoice_no'] }} - {{ $row['id'] }}
|
||||
@elseif($row['invoice_no'])
|
||||
{{ $row['invoice_no'] }}
|
||||
@else
|
||||
-
|
||||
@endif
|
||||
</td>
|
||||
<td class="d-print-none text-start">
|
||||
@if(in_array($row['platform'], ['Opening Collection', 'Opening Payment']))
|
||||
{{ $row['platform'] }}: {{ currency_format($row['amount'] ?? 0) }}
|
||||
@else
|
||||
{{ $row['platform'] }}
|
||||
@endif
|
||||
{{ $row['invoice_no'] ?? '-' }} - {{ $row['id'] }}
|
||||
</td>
|
||||
<td class="d-print-none text-start">{{ $row['platform'] }}</td>
|
||||
<td class="text-start">{{ currency_format($row['credit_amount']) }}</td>
|
||||
<td class="text-start">{{ currency_format($row['debit_amount']) }}</td>
|
||||
<td class="text-start">{{ currency_format($row['balance']) }}</td>
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
</div>
|
||||
<div class="gpt-up-down-arrow position-relative d-print-none custom-date-filter">
|
||||
<select name="duration" class="form-control custom-days">
|
||||
<option value="">{{ __('All Time') }}</option>
|
||||
<option value="">{{ __('All') }}</option>
|
||||
<option value="today"> {{ __('Today') }}</option>
|
||||
<option value="yesterday"> {{ __('Yesterday') }}</option>
|
||||
<option value="last_seven_days"> {{ __('Last 7 Days') }}</option>
|
||||
@@ -64,17 +64,17 @@
|
||||
<div class="table-top-btn-group d-print-none">
|
||||
<ul>
|
||||
<li>
|
||||
<a class="export-btn" href="{{ route('business.single-supplier-ledger.csv', $party->id) }}">
|
||||
<a href="{{ route('business.single-supplier-ledger.csv', $party->id) }}">
|
||||
<img src="{{ asset('assets/images/logo/csv.svg') }}" alt="">
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="export-btn" href="{{ route('business.single-supplier-ledger.excel', $party->id) }}">
|
||||
<a href="{{ route('business.single-supplier-ledger.excel', $party->id) }}">
|
||||
<img src="{{ asset('assets/images/logo/excel.svg') }}" alt="">
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="export-btn" target="_blank" href="{{ route('business.single-supplier-ledger.pdf', $party->id) }}">
|
||||
<a target="blank" href="{{ route('business.single-supplier-ledger.pdf', $party->id) }}">
|
||||
<img src="{{ asset('assets/images/logo/pdf.svg') }}" alt="">
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -5,19 +5,6 @@
|
||||
@include('business::print.header')
|
||||
<p style="text-align: center; margin: 0; padding: 0; margin-bottom:5px; font-size: 16px;">
|
||||
{{ $party->name }} ({{ __('Ledger')}})
|
||||
@if ($fromDate && $toDate)
|
||||
<p style="text-align: center; margin: 0; padding: 0; font-weight: 400; font-size: 14px;" class="">{{ __('Duration:') }}
|
||||
@if ($duration === 'today')
|
||||
{{ Carbon\Carbon::parse($fromDate)->format('d-m-Y') }}
|
||||
@elseif ($duration === 'yesterday')
|
||||
{{ Carbon\Carbon::parse($fromDate)->format('d-m-Y') }}
|
||||
@else
|
||||
{{ Carbon\Carbon::parse($fromDate)->format('d-m-Y') }}
|
||||
{{ __('to') }}
|
||||
{{ Carbon\Carbon::parse($toDate)->format('d-m-Y') }}
|
||||
@endif
|
||||
</p>
|
||||
@endif
|
||||
</p>
|
||||
@endsection
|
||||
|
||||
@@ -54,18 +41,10 @@
|
||||
{{ formatted_date($row['date']) }}
|
||||
</td>
|
||||
<td style="border:1px solid gainsboro; text-align:center;">
|
||||
@if($row['invoice_no'])
|
||||
{{ $row['invoice_no'] }} - {{ $row['id'] }}
|
||||
@else
|
||||
-
|
||||
@endif
|
||||
{{ $row['invoice_no'] ?? '-' }} - {{ $row['id'] }}
|
||||
</td>
|
||||
<td style="border:1px solid gainsboro; text-align:center;">
|
||||
@if(in_array($row['platform'], ['Opening Collection', 'Opening Payment']))
|
||||
{{ $row['platform'] }}: {{ currency_format($row['amount'] ?? 0, currency: business_currency()) }}
|
||||
@else
|
||||
{{ $row['platform'] }}
|
||||
@endif
|
||||
{{ $row['platform'] }}
|
||||
</td>
|
||||
<td style="border:1px solid gainsboro; text-align:center;">
|
||||
{{ currency_format($row['credit_amount'], currency: business_currency()) }}
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
</div>
|
||||
|
||||
<div class="table-top-form p-16">
|
||||
<form action="{{ route('business.top-customers.index') }}" method="GET" class="report-filter-form" table="#top-customers-data">
|
||||
<form action="{{ route('business.top-customers.index') }}" method="GET" class="filter-form" table="#top-customers-data">
|
||||
|
||||
<div class="table-top-left d-flex gap-3 ">
|
||||
<div class="table-search position-relative d-print-none">
|
||||
@@ -46,17 +46,17 @@
|
||||
<div class="table-top-btn-group d-print-none">
|
||||
<ul>
|
||||
<li>
|
||||
<a class="export-btn" href="{{ route('business.top-customers.csv') }}">
|
||||
<a href="{{ route('business.top-customers.csv') }}">
|
||||
<img src="{{ asset('assets/images/logo/csv.svg') }}" alt="">
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="export-btn" href="{{ route('business.top-customers.excel') }}">
|
||||
<a href="{{ route('business.top-customers.excel') }}">
|
||||
<img src="{{ asset('assets/images/logo/excel.svg') }}" alt="">
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="export-btn" target="_blank" href="{{ route('business.top-customers.pdf') }}">
|
||||
<a target="blank" href="{{ route('business.top-customers.pdf') }}">
|
||||
<img src="{{ asset('assets/images/logo/pdf.svg') }}" alt="">
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
<div class="table-header justify-content-center border-0 d-none d-block d-print-block text-center">
|
||||
@include('business::print.header')
|
||||
<h4 style="text-align: center; margin: 0; padding: 0; font-size: 16px;" class="">{{ __('Top 5 Customer Report List') }}</h4>
|
||||
{{-- <p style="text-align: center; margin: 0; padding: 0; font-weight: 400; font-size: 14px;" class="">{{ __('Duration: 14-12-2025 to 24-12-2025') }}</p> --}}
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
|
||||
@@ -37,17 +37,17 @@
|
||||
<div class="table-top-btn-group d-print-none">
|
||||
<ul>
|
||||
<li>
|
||||
<a class="export-btn" href="{{ route('business.top-suppliers.csv') }}">
|
||||
<a href="{{ route('business.top-suppliers.csv') }}">
|
||||
<img src="{{ asset('assets/images/logo/csv.svg') }}" alt="">
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="export-btn" href="{{ route('business.top-suppliers.excel') }}">
|
||||
<a href="{{ route('business.top-suppliers.excel') }}">
|
||||
<img src="{{ asset('assets/images/logo/excel.svg') }}" alt="">
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="export-btn" target="_blank" href="{{ route('business.top-suppliers.pdf') }}">
|
||||
<a target="blank" href="{{ route('business.top-suppliers.pdf') }}">
|
||||
<img src="{{ asset('assets/images/logo/pdf.svg') }}" alt="">
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
<div class="table-header justify-content-center border-0 d-none d-block d-print-block text-center">
|
||||
@include('business::print.header')
|
||||
<h4 style="text-align: center; margin: 0; padding: 0; font-size: 16px;" class="">{{ __('Top 5 Supplier Report List') }}</h4>
|
||||
{{-- <p style="text-align: center; margin: 0; padding: 0; font-weight: 400; font-size: 14px;" class="">{{ __('Duration: 14-12-2025 to 24-12-2025') }}</p> --}}
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
|
||||
@@ -1,27 +1,4 @@
|
||||
<style>
|
||||
:root {
|
||||
--clr-primary: var(--dynamic-primary, #c52127);
|
||||
--clr-white: #fff;
|
||||
--clr-white2: #f9f9f9;
|
||||
--clr-white3: #f3f7ff;
|
||||
--clr-black: #01040d;
|
||||
--clr-black2: #171717;
|
||||
--clr-black3: #344054;
|
||||
--clr-gray: #525252;
|
||||
--clr-gray1: #737373;
|
||||
--clr-gray2: #d4d4d4;
|
||||
--clr-gray3: #f5f5f5;
|
||||
--clr-gray4: #f4f5f7;
|
||||
--clr-gray5: #a3a3a3;
|
||||
--clr-violet: rgba(130, 49, 211, 1);
|
||||
--clr-violet-light: rgba(130, 49, 211, 0.12);
|
||||
--clr-green: #01b81a;
|
||||
--clr-green-light: rgba(1, 184, 26, 0.12);
|
||||
--clr-orange: #ff6565;
|
||||
--clr-orange-light: rgba(255, 116, 62, 0.12);
|
||||
--clr-red: #ef4444;
|
||||
--ff: "Inter", sans-serif;
|
||||
}
|
||||
/* Load Bangla font from storage/fonts */
|
||||
@font-face {
|
||||
font-family: 'NotoSans';
|
||||
@@ -438,7 +415,7 @@
|
||||
font-size: 20px;
|
||||
/* font-weight: 600; */
|
||||
color: white;
|
||||
background-color: var(--clr-primary);
|
||||
background-color: #c52127;
|
||||
padding: 5px 12px;
|
||||
border-radius: 30px;
|
||||
margin: 0;
|
||||
|
||||
@@ -19,7 +19,6 @@
|
||||
<th>{{ __('SL.') }}</th>
|
||||
<th>{{ __('Date') }}</th>
|
||||
<th>{{ __('Invoice') }}</th>
|
||||
<th>{{ __('Supplier') }}</th>
|
||||
<th>{{ __('Type') }}</th>
|
||||
<th>{{ __('Cost Price') }}</th>
|
||||
<th>{{ __('Purchase Qty') }}</th>
|
||||
@@ -32,7 +31,6 @@
|
||||
<td>{{ formatted_date($purchaseDetail->purchase?->purchaseDate) }}, {{ formatted_time($purchaseDetail->purchase?->purchaseDate)}}
|
||||
</td>
|
||||
<td>{{ $purchaseDetail->purchase?->invoiceNumber }}</td>
|
||||
<td>{{ $purchaseDetail->purchase?->party?->name }}</td>
|
||||
<td>{{ __('Purchase') }}</td>
|
||||
<td>{{ currency_format($purchaseDetail->productPurchasePrice, currency: business_currency()) }}
|
||||
</td>
|
||||
@@ -46,7 +44,6 @@
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td>{{ currency_format($purchaseDetails->sum('productPurchasePrice'), currency: business_currency()) }}</td>
|
||||
<td>{{ $purchaseDetails->sum('quantities') }} </td>
|
||||
</tr>
|
||||
|
||||
@@ -78,17 +78,17 @@
|
||||
<div class="table-top-btn-group d-print-none">
|
||||
<ul>
|
||||
<li>
|
||||
<a class="export-btn" href="{{ route('business.product-purchase-detail-reports.csv', $product->id) }}">
|
||||
<a href="{{ route('business.product-purchase-detail-reports.csv', $product->id) }}">
|
||||
<img src="{{ asset('assets/images/logo/csv.svg') }}" alt="">
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="export-btn" href="{{ route('business.product-purchase-detail-reports.excel', $product->id) }}">
|
||||
<a href="{{ route('business.product-purchase-detail-reports.excel', $product->id) }}">
|
||||
<img src="{{ asset('assets/images/logo/excel.svg') }}" alt="">
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="export-btn" target="_blank" href="{{ route('business.product-purchase-detail-reports.pdf', $product->id) }}">
|
||||
<a target="blank" href="{{ route('business.product-purchase-detail-reports.pdf', $product->id) }}">
|
||||
<img src="{{ asset('assets/images/logo/pdf.svg') }}" alt="">
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
<th>{{ __('SL.') }}</th>
|
||||
<th>{{ __('Date') }}</th>
|
||||
<th>{{ __('Invoice') }}</th>
|
||||
<th>{{ __('Supplier') }}</th>
|
||||
<th>{{ __('Type') }}</th>
|
||||
<th>{{ __('Cost Price') }}</th>
|
||||
<th>{{ __('Purchase Qty') }}</th>
|
||||
@@ -17,7 +16,6 @@
|
||||
<td>{{ formatted_date($purchaseDetail->purchase?->purchaseDate) }}, {{ formatted_time($purchaseDetail->purchase?->purchaseDate)}}
|
||||
</td>
|
||||
<td>{{ $purchaseDetail->purchase?->invoiceNumber }}</td>
|
||||
<td>{{ $purchaseDetail->purchase?->party?->name }}</td>
|
||||
<td>{{ __('Purchase') }}</td>
|
||||
<td>{{ currency_format($purchaseDetail->productPurchasePrice, currency: business_currency()) }}
|
||||
</td>
|
||||
@@ -31,7 +29,6 @@
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td>{{ currency_format($purchaseDetails->sum('productPurchasePrice'), currency: business_currency()) }}</td>
|
||||
<td>{{ $purchaseDetails->sum('quantities') }} </td>
|
||||
</tr>
|
||||
|
||||
@@ -78,17 +78,17 @@
|
||||
<div class="table-top-btn-group d-print-none">
|
||||
<ul>
|
||||
<li>
|
||||
<a class="export-btn" href="{{ route('business.product-purchase-history-reports.csv') }}">
|
||||
<a href="{{ route('business.product-purchase-history-reports.csv') }}">
|
||||
<img src="{{ asset('assets/images/logo/csv.svg') }}" alt="">
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="export-btn" href="{{ route('business.product-purchase-history-reports.excel') }}">
|
||||
<a href="{{ route('business.product-purchase-history-reports.excel') }}">
|
||||
<img src="{{ asset('assets/images/logo/excel.svg') }}" alt="">
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="export-btn" target="_blank" href="{{ route('business.product-purchase-history-reports.pdf') }}">
|
||||
<a target="blank" href="{{ route('business.product-purchase-history-reports.pdf') }}">
|
||||
<img src="{{ asset('assets/images/logo/pdf.svg') }}" alt="">
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -4,19 +4,7 @@
|
||||
<div class="table-header justify-content-center border-0 d-none d-block d-print-block text-center">
|
||||
@include('business::print.header')
|
||||
<h4 style="text-align: center; margin: 0; padding: 0; font-size: 16px;" class="">{{ $product->productName }} {{ __('Purchase Details') }}</h4>
|
||||
@if ($filter_from_date && $filter_to_date)
|
||||
<p style="text-align: center; margin: 0; padding: 0; font-weight: 400; font-size: 14px;" class="">{{ __('Duration:') }}
|
||||
@if ($duration === 'today')
|
||||
{{ Carbon\Carbon::parse($filter_from_date)->format('d-m-Y') }}
|
||||
@elseif ($duration === 'yesterday')
|
||||
{{ Carbon\Carbon::parse($filter_from_date)->format('d-m-Y') }}
|
||||
@else
|
||||
{{ Carbon\Carbon::parse($filter_from_date)->format('d-m-Y') }}
|
||||
{{ __('to') }}
|
||||
{{ Carbon\Carbon::parse($filter_to_date)->format('d-m-Y') }}
|
||||
@endif
|
||||
</p>
|
||||
@endif
|
||||
{{-- <p style="text-align: center; margin: 0; padding: 0; font-weight: 400; font-size: 14px;" class="">{{ __('Duration: 14-12-2025 to 24-12-2025') }}</p> --}}
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@@ -28,7 +16,6 @@
|
||||
<tr style="background-color: #C52127; color: white;">
|
||||
<th style="font-size:12px; border:1px solid gainsboro; color: white" class="text-start">{{ __('Date') }}</th>
|
||||
<th style="font-size:12px; border:1px solid gainsboro; color: white" class="text-start">{{ __('Invoice') }}</th>
|
||||
<th style="font-size:12px; border:1px solid gainsboro; color: white" class="text-start">{{ __('Supplier') }}</th>
|
||||
<th style="font-size:12px; border:1px solid gainsboro; color: white" class="text-start">{{ __('Type') }}</th>
|
||||
<th style="font-size:12px; border:1px solid gainsboro; color: white" class="text-start">{{ __('Cost Price') }}</th>
|
||||
<th style="font-size:12px; border:1px solid gainsboro; color: white" class="text-start">{{ __('Purchase Qty') }}</th>
|
||||
@@ -43,9 +30,6 @@
|
||||
<td style="border:1px solid gainsboro; text-align:center;">
|
||||
{{ $purchaseDetail->purchase?->invoiceNumber }}
|
||||
</td>
|
||||
<td style="border:1px solid gainsboro; text-align:center;">
|
||||
{{ $purchaseDetail->purchase?->party?->name }}
|
||||
</td>
|
||||
<td style="border:1px solid gainsboro; text-align:center;">
|
||||
{{ __('Purchase') }}
|
||||
</td>
|
||||
@@ -66,7 +50,6 @@
|
||||
</td>
|
||||
<td style="border:1px solid gainsboro; text-align:center;"></td>
|
||||
<td style="border:1px solid gainsboro; text-align:center;"></td>
|
||||
<td style="border:1px solid gainsboro; text-align:center;"></td>
|
||||
<td style="border:1px solid gainsboro; text-align:center; color: white; font-weight: 600;">
|
||||
{{ currency_format($purchaseDetails->sum('productPurchasePrice'), currency: business_currency()) }}
|
||||
</td>
|
||||
|
||||
@@ -4,19 +4,7 @@
|
||||
<div class="table-header justify-content-center border-0 d-none d-block d-print-block text-center">
|
||||
@include('business::print.header')
|
||||
<h4 style="text-align: center; margin: 0; padding: 0; font-size: 16px;" class="">{{ __('Product Purchase History Report') }}</h4>
|
||||
@if ($filter_from_date && $filter_to_date)
|
||||
<p style="text-align: center; margin: 0; padding: 0; font-weight: 400; font-size: 14px;" class="">{{ __('Duration:') }}
|
||||
@if ($duration === 'today')
|
||||
{{ Carbon\Carbon::parse($filter_from_date)->format('d-m-Y') }}
|
||||
@elseif ($duration === 'yesterday')
|
||||
{{ Carbon\Carbon::parse($filter_from_date)->format('d-m-Y') }}
|
||||
@else
|
||||
{{ Carbon\Carbon::parse($filter_from_date)->format('d-m-Y') }}
|
||||
{{ __('to') }}
|
||||
{{ Carbon\Carbon::parse($filter_to_date)->format('d-m-Y') }}
|
||||
@endif
|
||||
</p>
|
||||
@endif
|
||||
{{-- <p style="text-align: center; margin: 0; padding: 0; font-weight: 400; font-size: 14px;" class="">{{ __('Duration: 14-12-2025 to 24-12-2025') }}</p> --}}
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
|
||||
@@ -78,17 +78,17 @@
|
||||
<div class="table-top-btn-group d-print-none">
|
||||
<ul>
|
||||
<li>
|
||||
<a class="export-btn" href="{{ route('business.product-sale-detail-reports.csv', $product->id) }}">
|
||||
<a href="{{ route('business.product-sale-detail-reports.csv', $product->id) }}">
|
||||
<img src="{{ asset('assets/images/logo/csv.svg') }}" alt="">
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="export-btn" href="{{ route('business.product-sale-detail-reports.excel', $product->id) }}">
|
||||
<a href="{{ route('business.product-sale-detail-reports.excel', $product->id) }}">
|
||||
<img src="{{ asset('assets/images/logo/excel.svg') }}" alt="">
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="export-btn" target="_blank" href="{{ route('business.product-sale-detail-reports.pdf', $product->id) }}">
|
||||
<a target="blank" href="{{ route('business.product-sale-detail-reports.pdf', $product->id) }}">
|
||||
<img src="{{ asset('assets/images/logo/pdf.svg') }}" alt="">
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -78,17 +78,17 @@
|
||||
<div class="table-top-btn-group d-print-none">
|
||||
<ul>
|
||||
<li>
|
||||
<a class="export-btn" href="{{ route('business.product-sale-history-reports.csv') }}">
|
||||
<a href="{{ route('business.product-sale-history-reports.csv') }}">
|
||||
<img src="{{ asset('assets/images/logo/csv.svg') }}" alt="">
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="export-btn" href="{{ route('business.product-sale-history-reports.excel') }}">
|
||||
<a href="{{ route('business.product-sale-history-reports.excel') }}">
|
||||
<img src="{{ asset('assets/images/logo/excel.svg') }}" alt="">
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="export-btn" target="_blank" href="{{ route('business.product-sale-history-reports.pdf') }}">
|
||||
<a target="blank" href="{{ route('business.product-sale-history-reports.pdf') }}">
|
||||
<img src="{{ asset('assets/images/logo/pdf.svg') }}" alt="">
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -4,19 +4,7 @@
|
||||
<div class="table-header justify-content-center border-0 d-none d-block d-print-block text-center">
|
||||
@include('business::print.header')
|
||||
<h4 style="text-align: center; margin: 0; padding: 0; font-size: 16px;" class="">{{ $product->productName }} {{ __('Sale Details') }}</h4>
|
||||
@if ($filter_from_date && $filter_to_date)
|
||||
<p style="text-align: center; margin: 0; padding: 0; font-weight: 400; font-size: 14px;" class="">{{ __('Duration:') }}
|
||||
@if ($duration === 'today')
|
||||
{{ Carbon\Carbon::parse($filter_from_date)->format('d-m-Y') }}
|
||||
@elseif ($duration === 'yesterday')
|
||||
{{ Carbon\Carbon::parse($filter_from_date)->format('d-m-Y') }}
|
||||
@else
|
||||
{{ Carbon\Carbon::parse($filter_from_date)->format('d-m-Y') }}
|
||||
{{ __('to') }}
|
||||
{{ Carbon\Carbon::parse($filter_to_date)->format('d-m-Y') }}
|
||||
@endif
|
||||
</p>
|
||||
@endif
|
||||
{{-- <p style="text-align: center; margin: 0; padding: 0; font-weight: 400; font-size: 14px;" class="">{{ __('Duration: 14-12-2025 to 24-12-2025') }}</p> --}}
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
|
||||
@@ -4,19 +4,7 @@
|
||||
<div class="table-header justify-content-center border-0 d-none d-block d-print-block text-center">
|
||||
@include('business::print.header')
|
||||
<h4 style="text-align: center; margin: 0; padding: 0; font-size: 16px;" class="">{{ __('Product Sale History Report') }}</h4>
|
||||
@if ($filter_from_date && $filter_to_date)
|
||||
<p style="text-align: center; margin: 0; padding: 0; font-weight: 400; font-size: 14px;" class="">{{ __('Duration:') }}
|
||||
@if ($duration === 'today')
|
||||
{{ Carbon\Carbon::parse($filter_from_date)->format('d-m-Y') }}
|
||||
@elseif ($duration === 'yesterday')
|
||||
{{ Carbon\Carbon::parse($filter_from_date)->format('d-m-Y') }}
|
||||
@else
|
||||
{{ Carbon\Carbon::parse($filter_from_date)->format('d-m-Y') }}
|
||||
{{ __('to') }}
|
||||
{{ Carbon\Carbon::parse($filter_to_date)->format('d-m-Y') }}
|
||||
@endif
|
||||
</p>
|
||||
@endif
|
||||
{{-- <p style="text-align: center; margin: 0; padding: 0; font-weight: 400; font-size: 14px;" class="">{{ __('Duration: 14-12-2025 to 24-12-2025') }}</p> --}}
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
|
||||
@@ -14,7 +14,6 @@
|
||||
<th class="d-print-none">{{ __('Image') }}</th>
|
||||
<th>{{ __('Name') }}</th>
|
||||
<th>{{ __('Code') }}</th>
|
||||
<th>{{ __('HSN Code') }}</th>
|
||||
<th>{{ __('Product') }}</th>
|
||||
<th>{{ __('Category') }}</th>
|
||||
<th>{{ __('Unit') }}</th>
|
||||
@@ -52,7 +51,6 @@
|
||||
</td>
|
||||
|
||||
<td>{{ $product->productCode }}</td>
|
||||
<td>{{ $product->hsn_code }}</td>
|
||||
<td>{{ $product->total_combo_products }}</td>
|
||||
<td>{{ $product->category->categoryName ?? '' }}</td>
|
||||
<td>{{ $product->unit->unitName ?? '' }}</td>
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
<th>{{ __('SL') }}. </th>
|
||||
<th> {{ __('Name') }} </th>
|
||||
<th> {{ __('Code') }} </th>
|
||||
<th> {{ __('HSN Code') }}</th>
|
||||
<th> {{ __('Product') }} </th>
|
||||
<th> {{ __('Category') }} </th>
|
||||
<th> {{ __('Unit') }} </th>
|
||||
@@ -20,7 +19,6 @@
|
||||
<td>{{ $loop->index + 1 }}</td>
|
||||
<td>{{ $product->productName }}</td>
|
||||
<td>{{ $product->productCode }}</td>
|
||||
<td>{{ $product->hsn_code }}</td>
|
||||
<td>{{ $product->total_combo_products }}</td>
|
||||
<td>{{ $product->category->categoryName ?? '' }}</td>
|
||||
<td>{{ $product->unit->unitName ?? '' }}</td>
|
||||
|
||||
@@ -52,17 +52,17 @@ class="btn btn-primary"><i class="fas fa-plus-circle me-1"></i>{{ __('Add new Pr
|
||||
<div class="table-top-btn-group d-print-none">
|
||||
<ul>
|
||||
<li>
|
||||
<a class="export-btn" href="{{ route('business.combo-products.csv') }}">
|
||||
<a href="{{ route('business.combo-products.csv') }}">
|
||||
<img src="{{ asset('assets/images/logo/csv.svg') }}" alt="">
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="export-btn" href="{{ route('business.combo-products.excel') }}">
|
||||
<a href="{{ route('business.combo-products.excel') }}">
|
||||
<img src="{{ asset('assets/images/logo/excel.svg') }}" alt="">
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="export-btn" target="_blank" href="{{ route('business.combo-products.pdf') }}">
|
||||
<a target="blank" href="{{ route('business.combo-product-reports.pdf') }}">
|
||||
<img src="{{ asset('assets/images/logo/pdf.svg') }}" alt="">
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -10,10 +10,10 @@
|
||||
<th>{{ __('Batch No') }}.</th>
|
||||
@endif
|
||||
@if (is_module_enabled($modules, 'show_warehouse') && moduleCheck('WarehouseAddon'))
|
||||
<th>{{ __('Warehouse') }}</th>
|
||||
<th>{{ __('Warehouse') }}.</th>
|
||||
@endif
|
||||
@if (moduleCheck('SerialCodeAddon'))
|
||||
<th id="serial-header" @class(['serial-option', 'd-none' => !is_module_enabled($modules, 'show_serial')])>{{__('Serial')}}</th>
|
||||
<th id="serial-header" @class(['serial-option', 'd-none' => !is_module_enabled($modules, 'show_serial')])>Serial</th>
|
||||
@endif
|
||||
@if (is_module_enabled($modules, 'show_product_stock'))
|
||||
<th>{{ __('Qty') }}</th>
|
||||
@@ -74,12 +74,12 @@
|
||||
<td @class(['serial-cell serial-option', 'd-none' => !is_module_enabled($modules, 'show_serial')])>
|
||||
<button type="button" class="serial-cell-button" data-bs-toggle="modal" data-bs-target="#serialModal">
|
||||
<svg width="28" height="28" viewBox="0 0 28 28" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M4 7H18" stroke="var(--clr-primary)" stroke-width="2" stroke-linecap="round"/>
|
||||
<path d="M23 7H23.0105" stroke="var(--clr-primary)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M23 14H23.0105" stroke="var(--clr-primary)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M23 21H23.0105" stroke="var(--clr-primary)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M4 14H18" stroke="var(--clr-primary)" stroke-width="2" stroke-linecap="round"/>
|
||||
<path d="M4 21H18" stroke="var(--clr-primary)" stroke-width="2" stroke-linecap="round"/>
|
||||
<path d="M4 7H18" stroke="#C52127" stroke-width="2" stroke-linecap="round"/>
|
||||
<path d="M23 7H23.0105" stroke="#C52127" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M23 14H23.0105" stroke="#C52127" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M23 21H23.0105" stroke="#C52127" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M4 14H18" stroke="#C52127" stroke-width="2" stroke-linecap="round"/>
|
||||
<path d="M4 21H18" stroke="#C52127" stroke-width="2" stroke-linecap="round"/>
|
||||
</svg>
|
||||
</button>
|
||||
</td>
|
||||
@@ -114,10 +114,10 @@
|
||||
</td>
|
||||
@endif
|
||||
@if (is_module_enabled($modules, 'show_product_wholesale_price'))
|
||||
<td><input type="number" step="any" min="0" name="stocks[first-row][productWholeSalePrice]" class="form-control form-control-sm custom-table-input productWholeSalePrice" placeholder="Ex: 200"></td>
|
||||
<td><input type="number" step="any" min="0" name="stocks[first-row][productWholeSalePrice]" class="form-control form-control-sm custom-table-input" placeholder="Ex: 200"></td>
|
||||
@endif
|
||||
@if (is_module_enabled($modules, 'show_product_dealer_price'))
|
||||
<td><input type="number" step="any" min="0" name="stocks[first-row][productDealerPrice]" class="form-control form-control-sm custom-table-input productDealerPrice" placeholder="Ex: 200"></td>
|
||||
<td><input type="number" step="any" min="0" name="stocks[first-row][productDealerPrice]" class="form-control form-control-sm custom-table-input" placeholder="Ex: 200"></td>
|
||||
@endif
|
||||
|
||||
@if (is_module_enabled($modules, 'show_mfg_date'))
|
||||
@@ -136,6 +136,21 @@
|
||||
@endif
|
||||
@endif
|
||||
|
||||
{{-- <td>
|
||||
<div class="products-image-upload-container" id="productsImageUploadContainer1">
|
||||
<label class="products-add-box" for="productsImageInput1">
|
||||
<span>+ Image</span>
|
||||
</label>
|
||||
<input
|
||||
type="file"
|
||||
class="products-file-input"
|
||||
id="productsImageInput1"
|
||||
multiple
|
||||
accept="image/*"
|
||||
/>
|
||||
</div>
|
||||
</td> --}}
|
||||
|
||||
@if (is_module_enabled($modules, 'show_action'))
|
||||
<td>
|
||||
<a href="#" class="text-danger remove-row">
|
||||
@@ -182,10 +197,10 @@
|
||||
<th>{{ __('Batch No') }}.</th>
|
||||
@endif
|
||||
@if (is_module_enabled($modules, 'show_warehouse') && moduleCheck('WarehouseAddon'))
|
||||
<th>{{ __('Warehouse') }}</th>
|
||||
<th>{{ __('Warehouse') }}.</th>
|
||||
@endif
|
||||
@if (moduleCheck('SerialCodeAddon'))
|
||||
<th id="serial-header" @class(['serial-option', 'd-none' => !is_module_enabled($modules, 'show_serial')])>{{__('Serial')}}</th>
|
||||
<th id="serial-header" @class(['serial-option', 'd-none' => !is_module_enabled($modules, 'show_serial')])>Serial</th>
|
||||
@endif
|
||||
@if (is_module_enabled($modules, 'show_product_stock'))
|
||||
<th>{{ __('Qty') }}</th>
|
||||
@@ -255,7 +270,7 @@
|
||||
</div>
|
||||
|
||||
<div class="dropdown-search hidden" id="searchContainer">
|
||||
<input type="text" id="productSearch" placeholder="{{__('Search product...')}}" />
|
||||
<input type="text" id="productSearch" placeholder="Search product..." />
|
||||
</div>
|
||||
|
||||
<div class="product-dropdown-options" id="dropdownList">
|
||||
|
||||
@@ -11,8 +11,8 @@
|
||||
@if (is_module_enabled($modules, 'show_warehouse') && moduleCheck('WarehouseAddon'))
|
||||
<th>{{ __('Warehouse') }}.</th>
|
||||
@endif
|
||||
@if (moduleCheck('SerialCodeAddon') && is_module_enabled($modules, 'show_serial'))
|
||||
<th id="serial-header" @class(['serial-option', 'd-none' => $product->has_serial != 1])>{{__('Serial')}}</th>
|
||||
@if (moduleCheck('SerialCodeAddon'))
|
||||
<th id="serial-header" @class(['serial-option', 'd-none' => $product->has_serial != 1])>Serial</th>
|
||||
@endif
|
||||
@if (is_module_enabled($modules, 'show_product_stock'))
|
||||
<th>{{ __('Qty') }}</th>
|
||||
@@ -71,29 +71,31 @@
|
||||
</td>
|
||||
@endif
|
||||
|
||||
@if (moduleCheck('SerialCodeAddon') && is_module_enabled($modules, 'show_serial'))
|
||||
<td @class(['serial-cell serial-option', 'd-none' => $product->has_serial != 1])>
|
||||
<button type="button" class="serial-cell-button" data-bs-toggle="modal" data-bs-target="#serialModal">
|
||||
<svg width="28" height="28" viewBox="0 0 28 28" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M4 7H18" stroke="var(--clr-primary)" stroke-width="2" stroke-linecap="round"/>
|
||||
<path d="M23 7H23.0105" stroke="var(--clr-primary)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M23 14H23.0105" stroke="var(--clr-primary)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M23 21H23.0105" stroke="var(--clr-primary)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M4 14H18" stroke="var(--clr-primary)" stroke-width="2" stroke-linecap="round"/>
|
||||
<path d="M4 21H18" stroke="var(--clr-primary)" stroke-width="2" stroke-linecap="round"/>
|
||||
<path d="M4 7H18" stroke="#C52127" stroke-width="2" stroke-linecap="round"/>
|
||||
<path d="M23 7H23.0105" stroke="#C52127" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M23 14H23.0105" stroke="#C52127" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M23 21H23.0105" stroke="#C52127" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M4 14H18" stroke="#C52127" stroke-width="2" stroke-linecap="round"/>
|
||||
<path d="M4 21H18" stroke="#C52127" stroke-width="2" stroke-linecap="round"/>
|
||||
</svg>
|
||||
</button>
|
||||
</td>
|
||||
@endif
|
||||
|
||||
@if (is_module_enabled($modules, 'show_product_stock'))
|
||||
<td><input type="number" step="any" min="0" name="stocks[{{ $stock->id }}][productStock]" class="form-control form-control-sm custom-table-input productStock" placeholder="{{ __('3') }}" value="{{ $stock->productStock }}" @readonly($product->has_serial)></td>
|
||||
<td><input type="number" step="any" min="0" name="stocks[{{ $stock->id }}][productStock]" class="form-control form-control-sm custom-table-input productStock" placeholder="{{__('3')}}" value="{{ $stock->productStock }}" @readonly(is_module_enabled($modules, 'show_serial'))></td>
|
||||
@endif
|
||||
|
||||
@usercan('products.price')
|
||||
@if (is_module_enabled($modules, 'show_exclusive_price'))
|
||||
@php
|
||||
$exclusive_price = $product->vat_type == 'exclusive' ? $stock->productPurchasePrice : $stock->productPurchasePrice - (($stock->productPurchasePrice * ($product->vat->rate ?? 0)) / (100 + ($product->vat->rate ?? 0)));
|
||||
@endphp
|
||||
|
||||
<td>
|
||||
<input type="number" step="any" min="0" class="form-control form-control-sm custom-table-input exclusive_price" name="stocks[{{ $stock->id }}][exclusive_price]" placeholder="{{__('Ex: 50')}}" value="{{ $stock->exclusive_price }}">
|
||||
<input type="number" step="any" min="0" class="form-control form-control-sm custom-table-input exclusive_price" name="stocks[{{ $stock->id }}][exclusive_price]" placeholder="{{__('Ex: 50')}}" value="{{ $exclusive_price }}">
|
||||
</td>
|
||||
@endif
|
||||
|
||||
@@ -116,12 +118,12 @@
|
||||
@endif
|
||||
@if (is_module_enabled($modules, 'show_product_wholesale_price'))
|
||||
<td>
|
||||
<input type="number" step="any" min="0" name="stocks[{{ $stock->id }}][productWholeSalePrice]" class="form-control form-control-sm custom-table-input productWholeSalePrice" placeholder="{{__('Ex: 200')}}" value="{{ $stock->productWholeSalePrice }}">
|
||||
<input type="number" step="any" min="0" name="stocks[{{ $stock->id }}][productWholeSalePrice]" class="form-control form-control-sm custom-table-input" placeholder="{{__('Ex: 200')}}" value="{{ $stock->productWholeSalePrice }}">
|
||||
</td>
|
||||
@endif
|
||||
@if (is_module_enabled($modules, 'show_product_dealer_price'))
|
||||
<td>
|
||||
<input type="number" step="any" min="0" name="stocks[{{ $stock->id }}][productDealerPrice]" class="form-control form-control-sm custom-table-input productDealerPrice" placeholder="{{__('Ex: 200')}}" value="{{ $stock->productDealerPrice }}">
|
||||
<input type="number" step="any" min="0" name="stocks[{{ $stock->id }}][productDealerPrice]" class="form-control form-control-sm custom-table-input" placeholder="{{__('Ex: 200')}}" value="{{ $stock->productDealerPrice }}">
|
||||
</td>
|
||||
@endif
|
||||
|
||||
@@ -198,7 +200,7 @@
|
||||
@if (is_module_enabled($modules, 'show_warehouse') && moduleCheck('WarehouseAddon'))
|
||||
<th>{{ __('Warehouse') }}.</th>
|
||||
@endif
|
||||
@if (moduleCheck('SerialCodeAddon') && is_module_enabled($modules, 'show_serial'))
|
||||
@if (moduleCheck('SerialCodeAddon'))
|
||||
<th id="serial-header" @class(['serial-option', 'd-none' => $product->has_serial != 1])>{{__('Serial')}}</th>
|
||||
@endif
|
||||
@if (is_module_enabled($modules, 'show_product_stock'))
|
||||
@@ -242,7 +244,7 @@
|
||||
<tr data-row-id="{{ $stock->id }}">
|
||||
@if($setPrevVariantName != $stock->variant_name)
|
||||
<td class="add-row-icon">+</td>
|
||||
@else
|
||||
@else
|
||||
<td></td>
|
||||
@endif
|
||||
<td class="variant-name">
|
||||
@@ -273,25 +275,25 @@
|
||||
</td>
|
||||
@endif
|
||||
|
||||
@if (moduleCheck('SerialCodeAddon') && is_module_enabled($modules, 'show_serial'))
|
||||
@if (moduleCheck('SerialCodeAddon'))
|
||||
<td @class(['serial-cell serial-option', 'd-none' => $product->has_serial != 1])>
|
||||
<button type="button" class="serial-cell-button" data-bs-toggle="modal" data-bs-target="#serialModal">
|
||||
<svg width="28" height="28" viewBox="0 0 28 28" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M4 7H18" stroke="var(--clr-primary)" stroke-width="2" stroke-linecap="round"/>
|
||||
<path d="M23 7H23.0105" stroke="var(--clr-primary)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M23 14H23.0105" stroke="var(--clr-primary)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M23 21H23.0105" stroke="var(--clr-primary)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M4 14H18" stroke="var(--clr-primary)" stroke-width="2" stroke-linecap="round"/>
|
||||
<path d="M4 21H18" stroke="var(--clr-primary)" stroke-width="2" stroke-linecap="round"/>
|
||||
<path d="M4 7H18" stroke="#C52127" stroke-width="2" stroke-linecap="round"/>
|
||||
<path d="M23 7H23.0105" stroke="#C52127" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M23 14H23.0105" stroke="#C52127" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M23 21H23.0105" stroke="#C52127" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M4 14H18" stroke="#C52127" stroke-width="2" stroke-linecap="round"/>
|
||||
<path d="M4 21H18" stroke="#C52127" stroke-width="2" stroke-linecap="round"/>
|
||||
</svg>
|
||||
</button>
|
||||
</td>
|
||||
@endif
|
||||
|
||||
@if (is_module_enabled($modules, 'show_product_stock'))
|
||||
<td><input type="number" step="any" min="0" name="stocks[{{ $stock->id }}][productStock]" class="form-control form-control-sm custom-table-input productStock" placeholder="{{__('0')}}" value="{{ $stock->productStock }}" @readonly($product->has_serial)></td>
|
||||
<td><input type="number" step="any" min="0" name="stocks[{{ $stock->id }}][productStock]" class="form-control form-control-sm custom-table-input productStock" placeholder="{{__('0')}}" value="{{ $stock->productStock }}" @readonly(is_module_enabled($modules, 'show_serial'))></td>
|
||||
@endif
|
||||
|
||||
|
||||
@usercan('products.price')
|
||||
@php
|
||||
$exclusive_price = $product->vat_type == 'exclusive' ? $stock->productPurchasePrice : $stock->productPurchasePrice - (($stock->productPurchasePrice * ($product->vat->rate ?? 0)) / (100 + ($product->vat->rate ?? 0)));
|
||||
@@ -489,4 +491,4 @@
|
||||
<input type="hidden" id="has-serial-code-addon" value="{{ moduleCheck('SerialCodeAddon') }}">
|
||||
<input type="hidden" id="previous-stocks" value='@json($product->stocks)'>
|
||||
<input type="hidden" id="vatRate" value="{{ $product->vat?->rate ?? 0 }}">
|
||||
<input type="hidden" id="editPage" value="1">
|
||||
<input type="hidden" id="editPage" value="1">
|
||||
@@ -183,5 +183,5 @@ class="theme-btn border-btn m-2">{{ __('Cancel') }}</a>
|
||||
|
||||
|
||||
@push('js')
|
||||
<script src="{{ asset('assets/js/custom/product.js') }}?v={{ time() }}"></script>
|
||||
<script src="{{ asset('assets/js/custom/product.js') }}"></script>
|
||||
@endpush
|
||||
|
||||
@@ -6,9 +6,9 @@
|
||||
|
||||
@php
|
||||
$modules = product_setting()->modules ?? [];
|
||||
$showSingle = !isset($modules['show_product_type_single']) || $modules['show_product_type_single'];
|
||||
$showSingle = !isset($modules['show_product_type_single']) || $modules['show_product_type_single'];
|
||||
$showVariant = isset($modules['show_product_type_variant']) && $modules['show_product_type_variant'];
|
||||
$showCombo = isset($modules['show_product_type_combo']) && $modules['show_product_type_combo'];
|
||||
$showCombo = isset($modules['show_product_type_combo']) && $modules['show_product_type_combo'];
|
||||
|
||||
$defaultPermissions = [
|
||||
'show_product_category' => 1,
|
||||
@@ -17,209 +17,225 @@
|
||||
'show_inclusive_price' => 1,
|
||||
'show_profit_percent' => 1,
|
||||
'show_product_sale_price' => 1,
|
||||
'show_product_wholesale_price' => 1,
|
||||
'show_product_dealer_price' => 1,
|
||||
'show_action' => 1,
|
||||
];
|
||||
@endphp
|
||||
|
||||
@section('main_content')
|
||||
<div class="erp-table-section">
|
||||
<div class="container-fluid">
|
||||
<form action="{{ route('business.products.store') }}" method="POST" class="ajaxform_instant_reload product-form" enctype="multipart/form-data">
|
||||
@csrf
|
||||
<div class="row g-2">
|
||||
<div class="col-lg-12">
|
||||
<div class="card product-card border-0 ">
|
||||
<div class="card-bodys ">
|
||||
<div class="table-header p-16">
|
||||
<h4>{{ __('Add new Product') }}</h4>
|
||||
<div class="erp-table-section">
|
||||
<div class="container-fluid">
|
||||
<form action="{{ route('business.products.store') }}" method="POST" class="ajaxform_instant_reload product-form"
|
||||
enctype="multipart/form-data">
|
||||
@csrf
|
||||
<div class="row g-2">
|
||||
<div class="col-lg-12">
|
||||
<div class="card product-card border-0 ">
|
||||
<div class="card-bodys ">
|
||||
<div class="table-header p-16">
|
||||
<h4>{{ __('Add new Product') }}</h4>
|
||||
<div class="d-flex align-items-center gap-3">
|
||||
<a class="save-publish-btn" href="{{ route('business.bulk-uploads.index') }}">
|
||||
{{__('Bulk Upload')}}
|
||||
</a>
|
||||
|
||||
<div class="d-flex align-items-center gap-3">
|
||||
<a class="save-publish-btn" href="{{ route('business.bulk-uploads.index') }}">
|
||||
{{__('Bulk Upload')}}
|
||||
@usercan('products.create')
|
||||
<button class="save-publish-btn submit-btn" href="">
|
||||
{{__('Save & Published')}}
|
||||
</button>
|
||||
@endusercan
|
||||
|
||||
<div class="position-relative">
|
||||
<a href={{ route('business.manage-settings.index') }}#product
|
||||
class="product-settings">
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none"
|
||||
xmlns="http://www.w3.org/2000/svg">
|
||||
<path
|
||||
d="M16.3083 4.38394C15.7173 4.38394 15.4217 4.38394 15.1525 4.28405C15.1151 4.27017 15.0783 4.25491 15.042 4.23828C14.781 4.11855 14.5721 3.90959 14.1541 3.49167C13.1922 2.52977 12.7113 2.04882 12.1195 2.00447C12.04 1.99851 11.96 1.99851 11.8805 2.00447C11.2887 2.04882 10.8077 2.52977 9.84585 3.49166C9.42793 3.90959 9.21897 4.11855 8.95797 4.23828C8.92172 4.25491 8.88486 4.27017 8.84747 4.28405C8.57825 4.38394 8.28273 4.38394 7.69171 4.38394H7.58269C6.07478 4.38394 5.32083 4.38394 4.85239 4.85239C4.38394 5.32083 4.38394 6.07478 4.38394 7.58269V7.69171C4.38394 8.28273 4.38394 8.57825 4.28405 8.84747C4.27017 8.88486 4.25491 8.92172 4.23828 8.95797C4.11855 9.21897 3.90959 9.42793 3.49166 9.84585C2.52977 10.8077 2.04882 11.2887 2.00447 11.8805C1.99851 11.96 1.99851 12.04 2.00447 12.1195C2.04882 12.7113 2.52977 13.1922 3.49166 14.1541C3.90959 14.5721 4.11855 14.781 4.23828 15.042C4.25491 15.0783 4.27017 15.1151 4.28405 15.1525C4.38394 15.4217 4.38394 15.7173 4.38394 16.3083V16.4173C4.38394 17.9252 4.38394 18.6792 4.85239 19.1476C5.32083 19.6161 6.07478 19.6161 7.58269 19.6161H7.69171C8.28273 19.6161 8.57825 19.6161 8.84747 19.716C8.88486 19.7298 8.92172 19.7451 8.95797 19.7617C9.21897 19.8815 9.42793 20.0904 9.84585 20.5083C10.8077 21.4702 11.2887 21.9512 11.8805 21.9955C11.96 22.0015 12.0399 22.0015 12.1195 21.9955C12.7113 21.9512 13.1922 21.4702 14.1541 20.5083C14.5721 20.0904 14.781 19.8815 15.042 19.7617C15.0783 19.7451 15.1151 19.7298 15.1525 19.716C15.4217 19.6161 15.7173 19.6161 16.3083 19.6161H16.4173C17.9252 19.6161 18.6792 19.6161 19.1476 19.1476C19.6161 18.6792 19.6161 17.9252 19.6161 16.4173V16.3083C19.6161 15.7173 19.6161 15.4217 19.716 15.1525C19.7298 15.1151 19.7451 15.0783 19.7617 15.042C19.8815 14.781 20.0904 14.5721 20.5083 14.1541C21.4702 13.1922 21.9512 12.7113 21.9955 12.1195C22.0015 12.0399 22.0015 11.96 21.9955 11.8805C21.9512 11.2887 21.4702 10.8077 20.5083 9.84585C20.0904 9.42793 19.8815 9.21897 19.7617 8.95797C19.7451 8.92172 19.7298 8.88486 19.716 8.84747C19.6161 8.57825 19.6161 8.28273 19.6161 7.69171V7.58269C19.6161 6.07478 19.6161 5.32083 19.1476 4.85239C18.6792 4.38394 17.9252 4.38394 16.4173 4.38394H16.3083Z"
|
||||
stroke="#4B5563" stroke-width="1.5" />
|
||||
<path
|
||||
d="M15.5 12C15.5 13.933 13.933 15.5 12 15.5C10.067 15.5 8.5 13.933 8.5 12C8.5 10.067 10.067 8.5 12 8.5C13.933 8.5 15.5 10.067 15.5 12Z"
|
||||
stroke="#4B5563" stroke-width="1.5" />
|
||||
</svg>
|
||||
</a>
|
||||
|
||||
@usercan('products.create')
|
||||
<button class="save-publish-btn submit-btn" href="">
|
||||
{{__('Save & Published')}}
|
||||
</button>
|
||||
@endusercan
|
||||
|
||||
<div class="position-relative">
|
||||
<a href={{ route('business.manage-settings.index') }}#product class="product-settings">
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M16.3083 4.38394C15.7173 4.38394 15.4217 4.38394 15.1525 4.28405C15.1151 4.27017 15.0783 4.25491 15.042 4.23828C14.781 4.11855 14.5721 3.90959 14.1541 3.49167C13.1922 2.52977 12.7113 2.04882 12.1195 2.00447C12.04 1.99851 11.96 1.99851 11.8805 2.00447C11.2887 2.04882 10.8077 2.52977 9.84585 3.49166C9.42793 3.90959 9.21897 4.11855 8.95797 4.23828C8.92172 4.25491 8.88486 4.27017 8.84747 4.28405C8.57825 4.38394 8.28273 4.38394 7.69171 4.38394H7.58269C6.07478 4.38394 5.32083 4.38394 4.85239 4.85239C4.38394 5.32083 4.38394 6.07478 4.38394 7.58269V7.69171C4.38394 8.28273 4.38394 8.57825 4.28405 8.84747C4.27017 8.88486 4.25491 8.92172 4.23828 8.95797C4.11855 9.21897 3.90959 9.42793 3.49166 9.84585C2.52977 10.8077 2.04882 11.2887 2.00447 11.8805C1.99851 11.96 1.99851 12.04 2.00447 12.1195C2.04882 12.7113 2.52977 13.1922 3.49166 14.1541C3.90959 14.5721 4.11855 14.781 4.23828 15.042C4.25491 15.0783 4.27017 15.1151 4.28405 15.1525C4.38394 15.4217 4.38394 15.7173 4.38394 16.3083V16.4173C4.38394 17.9252 4.38394 18.6792 4.85239 19.1476C5.32083 19.6161 6.07478 19.6161 7.58269 19.6161H7.69171C8.28273 19.6161 8.57825 19.6161 8.84747 19.716C8.88486 19.7298 8.92172 19.7451 8.95797 19.7617C9.21897 19.8815 9.42793 20.0904 9.84585 20.5083C10.8077 21.4702 11.2887 21.9512 11.8805 21.9955C11.96 22.0015 12.0399 22.0015 12.1195 21.9955C12.7113 21.9512 13.1922 21.4702 14.1541 20.5083C14.5721 20.0904 14.781 19.8815 15.042 19.7617C15.0783 19.7451 15.1151 19.7298 15.1525 19.716C15.4217 19.6161 15.7173 19.6161 16.3083 19.6161H16.4173C17.9252 19.6161 18.6792 19.6161 19.1476 19.1476C19.6161 18.6792 19.6161 17.9252 19.6161 16.4173V16.3083C19.6161 15.7173 19.6161 15.4217 19.716 15.1525C19.7298 15.1151 19.7451 15.0783 19.7617 15.042C19.8815 14.781 20.0904 14.5721 20.5083 14.1541C21.4702 13.1922 21.9512 12.7113 21.9955 12.1195C22.0015 12.0399 22.0015 11.96 21.9955 11.8805C21.9512 11.2887 21.4702 10.8077 20.5083 9.84585C20.0904 9.42793 19.8815 9.21897 19.7617 8.95797C19.7451 8.92172 19.7298 8.88486 19.716 8.84747C19.6161 8.57825 19.6161 8.28273 19.6161 7.69171V7.58269C19.6161 6.07478 19.6161 5.32083 19.1476 4.85239C18.6792 4.38394 17.9252 4.38394 16.4173 4.38394H16.3083Z" stroke="#4B5563" stroke-width="1.5"/>
|
||||
<path d="M15.5 12C15.5 13.933 13.933 15.5 12 15.5C10.067 15.5 8.5 13.933 8.5 12C8.5 10.067 10.067 8.5 12 8.5C13.933 8.5 15.5 10.067 15.5 12Z" stroke="#4B5563" stroke-width="1.5"/>
|
||||
</svg>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="order-form-section p-16">
|
||||
</div>
|
||||
<div class="order-form-section p-16">
|
||||
|
||||
<input type="hidden" id="profit_option" value="{{ $profit_option }}">
|
||||
<div class="add-suplier-modal-wrapper d-block">
|
||||
<div class="row">
|
||||
<div class="col-lg-4 mb-2">
|
||||
<label>{{ __('Product Name') }}</label>
|
||||
<input type="text" name="productName" required class="form-control" placeholder="{{ __('Enter Product Name') }}">
|
||||
</div>
|
||||
<input type="hidden" id="profit_option" value="">
|
||||
<div class="add-suplier-modal-wrapper d-block">
|
||||
<div class="row">
|
||||
<div class="col-lg-4 mb-2">
|
||||
<label>{{ __('Product Name') }}</label>
|
||||
<input type="text" name="productName" required class="form-control"
|
||||
placeholder="{{ __('Enter Product Name') }}">
|
||||
</div>
|
||||
|
||||
@if (is_module_enabled($modules, 'show_product_category'))
|
||||
@if (is_module_enabled($modules, 'show_product_category'))
|
||||
<div class="col-lg-4 mb-2">
|
||||
<label>{{ __('Category') }}</label>
|
||||
<div class="gpt-up-down-arrow position-relative">
|
||||
<select name="category_id" id="category-select" class="form-control table-select w-100 role">
|
||||
<select name="category_id" id="category-select"
|
||||
class="form-control table-select w-100 role">
|
||||
<option value=""> {{ __('Select Category') }}</option>
|
||||
@foreach ($categories as $category)
|
||||
<option value="{{ $category->id }}"
|
||||
data-capacity=" {{ $category->variationCapacity }}"
|
||||
data-color="{{ $category->variationColor }}"
|
||||
data-size="{{ $category->variationSize }}"
|
||||
data-type="{{ $category->variationType }}"
|
||||
data-weight="{{ $category->variationWeight }}">
|
||||
{{ ucfirst($category->categoryName) }} </option>
|
||||
data-capacity=" {{ $category->variationCapacity }}"
|
||||
data-color="{{ $category->variationColor }}"
|
||||
data-size="{{ $category->variationSize }}"
|
||||
data-type="{{ $category->variationType }}"
|
||||
data-weight="{{ $category->variationWeight }}">
|
||||
{{ ucfirst($category->categoryName) }}
|
||||
</option>
|
||||
@endforeach
|
||||
</select>
|
||||
<span></span>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
@endif
|
||||
|
||||
@if (is_module_enabled($modules, 'show_product_unit'))
|
||||
@if (is_module_enabled($modules, 'show_product_unit'))
|
||||
<div class="col-lg-4 mb-2">
|
||||
<label>{{ __('Unit') }}</label>
|
||||
<div class="gpt-up-down-arrow position-relative">
|
||||
<select name="unit_id" class="form-control table-select w-100 role">
|
||||
<option value=""> {{ __('Select one') }}</option>
|
||||
@foreach ($units as $unit)
|
||||
<option value="{{ $unit->id }}"> {{ ucfirst($unit->unitName) }}</option>
|
||||
<option value="{{ $unit->id }}"> {{ ucfirst($unit->unitName) }}
|
||||
</option>
|
||||
@endforeach
|
||||
</select>
|
||||
<span></span>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
@endif
|
||||
|
||||
@if (is_module_enabled($modules, 'show_product_code'))
|
||||
@if (is_module_enabled($modules, 'show_product_code'))
|
||||
<div class="col-lg-4 mb-2">
|
||||
<label>{{ __('SKU / Code') }}</label>
|
||||
<input type="text" value="{{ $code }}" name="productCode" id="productCode" class="form-control" placeholder="{{ __('Enter Product Code') }}">
|
||||
<input type="text" value="{{ $code }}" name="productCode" id="productCode"
|
||||
class="form-control" placeholder="{{ __('Enter Product Code') }}">
|
||||
</div>
|
||||
@endif
|
||||
@endif
|
||||
|
||||
@if (is_module_enabled($modules, 'show_hsn_code'))
|
||||
<div class="col-lg-4 mb-2">
|
||||
<label>{{ __('HSN Code') }}</label>
|
||||
<input type="text" name="hsn_code" class="form-control" placeholder="{{ __('Enter hsn code') }}">
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@if (is_module_enabled($modules, 'show_product_brand'))
|
||||
@if (is_module_enabled($modules, 'show_product_brand'))
|
||||
<div class="col-lg-4 mb-2">
|
||||
<label>{{ __('Brand') }}</label>
|
||||
<div class="gpt-up-down-arrow position-relative">
|
||||
<select name="brand_id" class="form-control table-select w-100 role">
|
||||
<option value=""> {{ __('Select Brand') }}</option>
|
||||
@foreach ($brands as $brand)
|
||||
<option value="{{ $brand->id }}"> {{ ucfirst($brand->brandName) }}</option>
|
||||
<option value="{{ $brand->id }}"> {{ ucfirst($brand->brandName) }}
|
||||
</option>
|
||||
@endforeach
|
||||
</select>
|
||||
<span></span>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
@endif
|
||||
|
||||
@if (is_module_enabled($modules, 'show_model_no'))
|
||||
@if (is_module_enabled($modules, 'show_model_no'))
|
||||
<div class="col-lg-4 mb-2">
|
||||
<label>{{ __('Model') }}</label>
|
||||
<div class="gpt-up-down-arrow position-relative">
|
||||
<select name="model_id" class="form-control table-select w-100 role">
|
||||
<option value="">{{ __('Select Model') }}</option>
|
||||
@foreach ($product_models as $model)
|
||||
<option value="{{ $model->id }}"> {{ ucfirst($model->name) }}</option>
|
||||
<option value="{{ $model->id }}"> {{ ucfirst($model->name) }}
|
||||
</option>
|
||||
@endforeach
|
||||
</select>
|
||||
<span></span>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
@endif
|
||||
|
||||
@if (is_module_enabled($modules, 'show_rack'))
|
||||
@if (is_module_enabled($modules, 'show_rack'))
|
||||
<div class="col-lg-4 mb-2">
|
||||
<label>{{ __('Rack') }}</label>
|
||||
<div class="gpt-up-down-arrow position-relative">
|
||||
<select name="rack_id" id="rack_id" class="form-control table-select w-100 role">
|
||||
<select name="rack_id" id="rack_id"
|
||||
class="form-control table-select w-100 role">
|
||||
<option value="">{{ __('Select one') }}</option>
|
||||
@foreach ($racks as $rack )
|
||||
@foreach ($racks as $rack)
|
||||
<option value="{{ $rack->id }}">{{ $rack->name }}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
<span></span>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
@endif
|
||||
|
||||
@if (is_module_enabled($modules, 'show_shelf'))
|
||||
@if (is_module_enabled($modules, 'show_shelf'))
|
||||
<div class="col-lg-4 mb-2">
|
||||
<label>{{ __('Shelf') }}</label>
|
||||
<div class="gpt-up-down-arrow position-relative">
|
||||
<select name="shelf_id" id="shelf_id" class="form-control table-select w-100 role disabled">
|
||||
<select name="shelf_id" id="shelf_id"
|
||||
class="form-control table-select w-100 role disabled">
|
||||
<option value="">{{ __('Select one') }}</option>
|
||||
</select>
|
||||
<span></span>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
@endif
|
||||
|
||||
@if (is_module_enabled($modules, 'show_alert_qty'))
|
||||
@if (is_module_enabled($modules, 'show_alert_qty'))
|
||||
<div class="col-lg-4 mb-2 low-stock-input">
|
||||
<label>{{ __('Low Stock Alert') }}</label>
|
||||
<input type="number" step="any" name="alert_qty" class="form-control" placeholder="{{ __('EX: 5') }}">
|
||||
<input type="number" step="any" name="alert_qty" class="form-control"
|
||||
placeholder="{{ __('EX: 5') }}">
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="product-price-container pb-4">
|
||||
@if (is_module_enabled($modules, 'show_serial'))
|
||||
<div class="product-price-header">
|
||||
<h3>{{__('Product price, stock')}}</h3>
|
||||
@if (moduleCheck('SerialCodeAddon'))
|
||||
<div class="custom-control custom-checkbox d-flex align-items-center gap-2 serial-code-checkbox">
|
||||
<input type="checkbox" class="custom-control-input delete-checkbox-item multi-delete imei-serial serial-update" id="serial" @checked(is_module_enabled($modules, 'show_serial')) value="1" name="has_serial">
|
||||
<div class="product-price-container pb-4">
|
||||
<div class="product-price-header">
|
||||
<h3>{{__('Product price, stock')}}</h3>
|
||||
@if (moduleCheck('SerialCodeAddon'))
|
||||
<div
|
||||
class="custom-control custom-checkbox d-flex align-items-center gap-2 serial-code-checkbox">
|
||||
<input type="checkbox"
|
||||
class="custom-control-input delete-checkbox-item multi-delete imei-serial serial-update"
|
||||
id="serial" @checked(is_module_enabled($modules, 'show_serial')) value="1"
|
||||
name="has_serial">
|
||||
<label class="custom-control-label fw-bold" for="serial">{{ __('IMEI/Serial') }}</label>
|
||||
<input type="hidden" name="show_serial" id="hidden_show_serial" value="0">
|
||||
</div>
|
||||
@endif
|
||||
<input type="hidden" value="{{ route('business.product.serial.update') }}" id="serial_route">
|
||||
</div>
|
||||
@endif
|
||||
<input type="hidden" value="{{ route('business.product.serial.update') }}"
|
||||
id="serial_route">
|
||||
</div>
|
||||
|
||||
<div class="single-container m-3 mt-0 mb-0">
|
||||
<div class="row order-form-section">
|
||||
<div class="col-lg-4 mb-2">
|
||||
<label>{{ __('Type') }}</label>
|
||||
<div class="gpt-up-down-arrow position-relative">
|
||||
<select id="product-type" name="product_type" class="form-control table-select w-100">
|
||||
@if ($showSingle)
|
||||
<option value="single">{{ __('Single') }}</option>
|
||||
@endif
|
||||
@if ($showVariant)
|
||||
<option value="variant">{{ __('Variation') }}</option>
|
||||
@endif
|
||||
@if ($showCombo)
|
||||
<option value="combo">{{ __('Combo') }}</option>
|
||||
@endif
|
||||
</select>
|
||||
<span></span>
|
||||
</div>
|
||||
<div class="single-container m-3 mt-0 mb-0">
|
||||
<div class="row order-form-section">
|
||||
<div class="col-lg-4 mb-2">
|
||||
<label>{{ __('Type') }}</label>
|
||||
<div class="gpt-up-down-arrow position-relative">
|
||||
<select id="product-type" name="product_type"
|
||||
class="form-control table-select w-100">
|
||||
@if ($showSingle)
|
||||
<option value="single">{{ __('Single') }}</option>
|
||||
@endif
|
||||
@if ($showVariant)
|
||||
<option value="variant">{{ __('Variation') }}</option>
|
||||
@endif
|
||||
@if ($showCombo)
|
||||
<option value="combo">{{ __('Combo') }}</option>
|
||||
@endif
|
||||
</select>
|
||||
<span></span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@if (is_module_enabled($modules, 'show_vat_type'))
|
||||
@if (is_module_enabled($modules, 'show_vat_type'))
|
||||
<div class="col-lg-4 mb-2">
|
||||
<label>{{ __('Selling Tax Type') }}</label>
|
||||
<label>{{ __('Tax Type') }}</label>
|
||||
<div class="gpt-up-down-arrow position-relative">
|
||||
<select id="vat_type" name="vat_type" class="form-control table-select w-100">
|
||||
<option value="exclusive">{{ __('Exclusive') }}</option>
|
||||
@@ -228,9 +244,9 @@
|
||||
<span></span>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
@endif
|
||||
|
||||
@if (is_module_enabled($modules, 'show_vat_id'))
|
||||
@if (is_module_enabled($modules, 'show_vat_id'))
|
||||
<div class="col-lg-4 mb-2">
|
||||
<label>{{ __('Select Tax') }}</label>
|
||||
<div class="gpt-up-down-arrow position-relative">
|
||||
@@ -245,26 +261,28 @@
|
||||
<span></span>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
@endif
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="single-container m-3 mt-0 mb-0" id="productTypeContainer"></div>
|
||||
|
||||
@include('business::products.components.create')
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-12 pt-2">
|
||||
<div class="card product-card border-0 ">
|
||||
<div class="card-bodys p-3 ">
|
||||
<div class="row">
|
||||
|
||||
@if (is_module_enabled($modules, 'show_warranty'))
|
||||
<div class="single-container m-3 mt-0 mb-0" id="productTypeContainer"></div>
|
||||
|
||||
@include('business::products.components.create')
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-12 pt-2">
|
||||
<div class="card product-card border-0 ">
|
||||
<div class="card-bodys p-3 ">
|
||||
<div class="row">
|
||||
|
||||
@if (is_module_enabled($modules, 'show_warranty'))
|
||||
<div class="col-lg-6">
|
||||
<label for="warranty">{{__('Warranty')}}</label>
|
||||
<div class="warranty-container ">
|
||||
<input type="number" id="warranty" name="warranty_guarantee_info[warranty_duration]" placeholder="{{__('Ex: 30')}}">
|
||||
<input type="number" id="warranty"
|
||||
name="warranty_guarantee_info[warranty_duration]"
|
||||
placeholder="{{__('Ex: 30')}}">
|
||||
<select id="warranty-unit" name="warranty_guarantee_info[warranty_unit]">
|
||||
<option value="days">{{__('Days')}}</option>
|
||||
<option value="months">{{__('Months')}}</option>
|
||||
@@ -272,13 +290,15 @@
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
@endif
|
||||
|
||||
@if (is_module_enabled($modules, 'show_guarantee'))
|
||||
@if (is_module_enabled($modules, 'show_guarantee'))
|
||||
<div class="col-lg-6">
|
||||
<label for="warranty">{{__('Guarantee')}}</label>
|
||||
<div class="warranty-container ">
|
||||
<input type="number" id="warranty" name="warranty_guarantee_info[guarantee_duration]" placeholder="{{__('Ex: 30')}}">
|
||||
<input type="number" id="warranty"
|
||||
name="warranty_guarantee_info[guarantee_duration]"
|
||||
placeholder="{{__('Ex: 30')}}">
|
||||
<select id="warranty-unit" name="warranty_guarantee_info[guarantee_unit]">
|
||||
<option value="days">{{__('Days')}}</option>
|
||||
<option value="months">{{__('Months')}}</option>
|
||||
@@ -286,14 +306,32 @@
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
@endif
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-12 pt-2">
|
||||
<div class="card product-card border-0 ">
|
||||
<div class="card-bodys p-3 ">
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<div class="custom-control custom-checkbox d-flex align-items-center gap-2">
|
||||
<input type="checkbox"
|
||||
class="custom-control-input delete-checkbox-item multi-delete"
|
||||
id="is_displayed_in_pos" value="1" checked name="is_displayed_in_pos">
|
||||
<label class="custom-control-label fw-bold"
|
||||
for="is_displayed_in_pos">{{ __('Show on POS') }}</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@if (is_module_enabled($modules, 'show_product_image'))
|
||||
@if (is_module_enabled($modules, 'show_product_image'))
|
||||
<div class="col-lg-12">
|
||||
<div class="upload-product-img">
|
||||
<div class="upload-img-title">
|
||||
@@ -301,20 +339,28 @@
|
||||
</div>
|
||||
<div class="upload-container mt-2" id="uploadContainer">
|
||||
<div class="upload-img-title border-0 p-0 m-0 mb-1">
|
||||
<h3><span>{{__('Image (Size 150x130)')}}</span></h3>
|
||||
</div>
|
||||
<h3><span>{{__('Image (Size 150x130)')}}</span></h3>
|
||||
</div>
|
||||
<div class="upload-box">
|
||||
<svg width="40" height="40" viewBox="0 0 40 40" fill="none"
|
||||
xmlns="http://www.w3.org/2000/svg">
|
||||
xmlns="http://www.w3.org/2000/svg">
|
||||
<g clip-path="url(#clip0_40001300_65043)">
|
||||
<path d="M33.3333 40H6.66667C3 40 0 37 0 33.3333V6.66667C0 3 3 0 6.66667 0H33.3333C37 0 40 3 40 6.66667V33.3333C40 37 37 40 33.3333 40Z" fill="#69A1FF"/>
|
||||
<path d="M40 6.66667V33.3333C40 37 37 40 33.3333 40H6.33333C2.83333 39.8333 0 36.8333 0 33.3333V6.66667C0 3 3 0 6.66667 0H33.3333C37 0 40 3 40 6.66667Z" fill="#E6E6E6"/>
|
||||
<path d="M27.8333 40H6.66667C3 40 0 37 0 33.3333V27.8333L3.83333 24C6 21.8333 9.66667 21.8333 11.8333 24L27.8333 40Z" fill="#999999"/>
|
||||
<path d="M39.9987 23.834V33.334C39.9987 37.0007 36.9987 40.0007 33.332 40.0007H6.33203L27.1654 19.0007C29.332 16.834 32.9987 16.834 35.1654 19.0007L39.9987 23.834ZM24.332 10.5007H21.6654V17.334C21.6654 18.334 20.832 19.0007 19.9987 19.0007C19.1654 19.0007 18.332 18.334 18.332 17.334V10.5007H15.6654C14.6654 10.5007 13.9987 9.33398 14.6654 8.50065L18.9987 3.33398C19.4987 2.66732 20.4987 2.66732 20.832 3.33398L25.1654 8.66732C25.832 9.33398 25.332 10.5007 24.332 10.5007Z" fill="#999999"/>
|
||||
<path
|
||||
d="M33.3333 40H6.66667C3 40 0 37 0 33.3333V6.66667C0 3 3 0 6.66667 0H33.3333C37 0 40 3 40 6.66667V33.3333C40 37 37 40 33.3333 40Z"
|
||||
fill="#69A1FF" />
|
||||
<path
|
||||
d="M40 6.66667V33.3333C40 37 37 40 33.3333 40H6.33333C2.83333 39.8333 0 36.8333 0 33.3333V6.66667C0 3 3 0 6.66667 0H33.3333C37 0 40 3 40 6.66667Z"
|
||||
fill="#E6E6E6" />
|
||||
<path
|
||||
d="M27.8333 40H6.66667C3 40 0 37 0 33.3333V27.8333L3.83333 24C6 21.8333 9.66667 21.8333 11.8333 24L27.8333 40Z"
|
||||
fill="#999999" />
|
||||
<path
|
||||
d="M39.9987 23.834V33.334C39.9987 37.0007 36.9987 40.0007 33.332 40.0007H6.33203L27.1654 19.0007C29.332 16.834 32.9987 16.834 35.1654 19.0007L39.9987 23.834ZM24.332 10.5007H21.6654V17.334C21.6654 18.334 20.832 19.0007 19.9987 19.0007C19.1654 19.0007 18.332 18.334 18.332 17.334V10.5007H15.6654C14.6654 10.5007 13.9987 9.33398 14.6654 8.50065L18.9987 3.33398C19.4987 2.66732 20.4987 2.66732 20.832 3.33398L25.1654 8.66732C25.832 9.33398 25.332 10.5007 24.332 10.5007Z"
|
||||
fill="#999999" />
|
||||
</g>
|
||||
<defs>
|
||||
<clipPath id="clip0_40001300_65043">
|
||||
<rect width="40" height="40" fill="white"/>
|
||||
<rect width="40" height="40" fill="white" />
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
||||
@@ -324,26 +370,25 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
@endif
|
||||
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@usercan('products.price')
|
||||
<input type="hidden" id="canSeePrice" value="1">
|
||||
@endusercan
|
||||
<input type="hidden" id="canSeePrice" value="0">
|
||||
@usercan('products.price')
|
||||
<input type="hidden" id="canSeePrice" value="1">
|
||||
@endusercan
|
||||
<input type="hidden" id="canSeePrice" value="0">
|
||||
|
||||
<input type="hidden" id="getShelfRoute" value="{{ route('business.product.get.shelf') }}">
|
||||
<input type="hidden" id="warehouses-data" value='@json($warehouses)'>
|
||||
<input type="hidden" id="variations-data" value='@json($variations)'>
|
||||
<input type="hidden" id="permissions-data" value='@json($modules ?? $defaultPermissions)'>
|
||||
<input type="hidden" id="has-serial-code-addon" value="{{ moduleCheck('SerialCodeAddon') }}">
|
||||
<input type="hidden" id="has-warehouse-addon" value="{{ moduleCheck('WarehouseAddon') }}">
|
||||
<input type="hidden" id="getShelfRoute" value="{{ route('business.product.get.shelf') }}">
|
||||
<input type="hidden" id="warehouses-data" value='@json($warehouses)'>
|
||||
<input type="hidden" id="variations-data" value='@json($variations)'>
|
||||
<input type="hidden" id="permissions-data" value='@json($modules ?? $defaultPermissions)'>
|
||||
<input type="hidden" id="has-serial-code-addon" value="{{ moduleCheck('SerialCodeAddon') }}">
|
||||
@endsection
|
||||
|
||||
@push('js')
|
||||
<script src="{{ asset('assets/js/custom/product.js') }}?v={{ time() }}"></script>
|
||||
@endpush
|
||||
<script src="{{ asset('assets/js/custom/product.js') }}"></script>
|
||||
@endpush
|
||||
@@ -1,16 +1,16 @@
|
||||
@php
|
||||
use Illuminate\Support\Str;
|
||||
use Illuminate\Support\Str;
|
||||
@endphp
|
||||
<div class="responsive-table m-0">
|
||||
<table class="table" id="datatable">
|
||||
<thead>
|
||||
<tr>
|
||||
@usercan('products.delete')
|
||||
<th class="w-60 d-print-none">
|
||||
<div class="d-flex align-items-center gap-3">
|
||||
<input type="checkbox" class="select-all-delete multi-delete">
|
||||
</div>
|
||||
</th>
|
||||
<th class="w-60 d-print-none">
|
||||
<div class="d-flex align-items-center gap-3">
|
||||
<input type="checkbox" class="select-all-delete multi-delete">
|
||||
</div>
|
||||
</th>
|
||||
@endusercan
|
||||
|
||||
<th class="d-print-none">{{ __('SL') }}.</th>
|
||||
@@ -18,201 +18,201 @@
|
||||
<th class="text-start">{{ __('Product Name') }}</th>
|
||||
<th class="d-print-none">{{ __('Type') }}</th>
|
||||
<th class="d-print-none">{{ __('Code') }}</th>
|
||||
<th class="d-print-none">{{ __('HSN Code') }}</th>
|
||||
<th class="d-print-none">{{ __('Brand') }}</th>
|
||||
<th>{{ __('Category') }}</th>
|
||||
|
||||
@usercan('products.price')
|
||||
<th>{{ __('Purchase price') }}</th>
|
||||
<th>{{ __('Purchase price') }}</th>
|
||||
@endusercan
|
||||
|
||||
<th>{{ __('Sale price') }}</th>
|
||||
<th>{{ __('Stock') }}</th>
|
||||
<th class="d-print-none">{{ __('Rack') }}</th>
|
||||
<th class="d-print-none">{{ __('Shelf') }}</th>
|
||||
<th class="d-print-none">{{ __('Show') }}</th>
|
||||
<th class="d-print-none">{{ __('Action') }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody id="product-data">
|
||||
@foreach ($products as $product)
|
||||
@php
|
||||
$nonEmptyStock = $product->stocks->firstWhere('productStock', '>', 0);
|
||||
$fallbackStock = $product->stocks->first();
|
||||
$stock = $nonEmptyStock ?? $fallbackStock;
|
||||
@php
|
||||
$nonEmptyStock = $product->stocks->firstWhere('productStock', '>', 0);
|
||||
$fallbackStock = $product->stocks->first();
|
||||
$stock = $nonEmptyStock ?? $fallbackStock;
|
||||
|
||||
$latestPurchasePrice = $stock?->productPurchasePrice ?? 0;
|
||||
$latestSalePrice = $stock?->productSalePrice ?? 0;
|
||||
$latestWholeSalePrice = $stock?->productWholeSalePrice ?? 0;
|
||||
$latestDealerPrice = $stock?->productDealerPrice ?? 0;
|
||||
@endphp
|
||||
$latestPurchasePrice = $stock?->productPurchasePrice ?? 0;
|
||||
$latestSalePrice = $stock?->productSalePrice ?? 0;
|
||||
$latestWholeSalePrice = $stock?->productWholeSalePrice ?? 0;
|
||||
$latestDealerPrice = $stock?->productDealerPrice ?? 0;
|
||||
@endphp
|
||||
|
||||
<tr>
|
||||
@usercan('products.delete')
|
||||
<td class="w-60 checkbox d-print-none">
|
||||
<input type="checkbox" name="ids[]" class="delete-checkbox-item multi-delete"
|
||||
value="{{ $product->id }}">
|
||||
</td>
|
||||
@endusercan
|
||||
<tr>
|
||||
@usercan('products.delete')
|
||||
<td class="w-60 checkbox d-print-none">
|
||||
<input type="checkbox" name="ids[]" class="delete-checkbox-item multi-delete"
|
||||
value="{{ $product->id }}">
|
||||
</td>
|
||||
@endusercan
|
||||
|
||||
<td class="d-print-none">
|
||||
{{ ($products->currentPage() - 1) * $products->perPage() + $loop->iteration }}
|
||||
</td>
|
||||
<td class="d-print-none">
|
||||
{{ ($products->currentPage() - 1) * $products->perPage() + $loop->iteration }}
|
||||
</td>
|
||||
|
||||
<input type="hidden" class="product-show-route" data-id="{{ $product->id }}"
|
||||
value="{{ route('business.products.show', $product->id) }}">
|
||||
<input type="hidden" class="product-show-route" data-id="{{ $product->id }}"
|
||||
value="{{ route('business.products.show', $product->id) }}">
|
||||
|
||||
<td class="d-print-none">
|
||||
<img src="{{ asset($product->productPicture ?? 'assets/images/logo/upload2.jpg') }}"
|
||||
alt="Img" class="table-product-img">
|
||||
</td>
|
||||
<td class="d-print-none">
|
||||
<img src="{{ asset($product->productPicture ?? 'assets/images/logo/upload2.jpg') }}" alt="Img"
|
||||
class="table-product-img">
|
||||
</td>
|
||||
|
||||
<td class="text-start">
|
||||
@if ($product->product_type != 'combo')
|
||||
@php
|
||||
$stocks = $product->stocks->map(function ($batch) use ($product) {
|
||||
$hasWeight = $product->category ? $product->category->variationWeight : false;
|
||||
return [
|
||||
'id' => $batch->id,
|
||||
'batch_no' => $batch->batch_no,
|
||||
'expire_date' => $batch->expire_date ? formatted_date($batch->expire_date) : 'N/A',
|
||||
'productStock' => $batch->productStock ?? 0,
|
||||
'productSalePrice' => $batch->productSalePrice ?? 0,
|
||||
'productPurchasePrice' => $batch->productPurchasePrice ?? 0,
|
||||
'exclusive_price' => $batch->exclusive_price ?? 0,
|
||||
'productWholeSalePrice' => $batch->productWholeSalePrice ?? 0,
|
||||
'productDealerPrice' => $batch->productDealerPrice ?? 0,
|
||||
'warehouse' => $batch->warehouse->name ?? '',
|
||||
'rack' => $product->rack->name ?? '',
|
||||
'shelf' => $product->shelf->name ?? '',
|
||||
'weight' => $hasWeight ? $product->weight : null,
|
||||
'showWeight' => $hasWeight ? 1 : 0,
|
||||
];
|
||||
});
|
||||
@endphp
|
||||
<td class="text-start">
|
||||
@if ($product->product_type != 'combo')
|
||||
@php
|
||||
$stocks = $product->stocks->map(function ($batch) use ($product) {
|
||||
$hasWeight = $product->category ? $product->category->variationWeight : false;
|
||||
return [
|
||||
'id' => $batch->id,
|
||||
'batch_no' => $batch->batch_no,
|
||||
'expire_date' => $batch->expire_date ? formatted_date($batch->expire_date) : 'N/A',
|
||||
'productStock' => $batch->productStock ?? 0,
|
||||
'productSalePrice' => $batch->productSalePrice ?? 0,
|
||||
'productPurchasePrice' => $batch->productPurchasePrice ?? 0,
|
||||
'productWholeSalePrice' => $batch->productWholeSalePrice ?? 0,
|
||||
'productDealerPrice' => $batch->productDealerPrice ?? 0,
|
||||
'warehouse' => $batch->warehouse->name ?? '',
|
||||
'rack' => $product->rack->name ?? '',
|
||||
'shelf' => $product->shelf->name ?? '',
|
||||
'weight' => $hasWeight ? $product->weight : null,
|
||||
'showWeight' => $hasWeight ? 1 : 0,
|
||||
];
|
||||
});
|
||||
@endphp
|
||||
|
||||
<a href="javascript:void(0);" class="stock-view-data text-primary"
|
||||
data-stocks='@json($stocks)'>
|
||||
{{ Str::words($product->productName, 3, '...') }}
|
||||
</a>
|
||||
@else
|
||||
<a href="javascript:void(0);" class="combo-product-view text-primary"
|
||||
data-combo='@json($product->combo_items)'>
|
||||
{{ Str::words($product->productName, 3, '...') }}
|
||||
</a>
|
||||
@endif
|
||||
</td>
|
||||
<a href="javascript:void(0);" class="stock-view-data text-primary" data-stocks='@json($stocks)'>
|
||||
{{ Str::words($product->productName, 3, '...') }}
|
||||
</a>
|
||||
@else
|
||||
<a href="javascript:void(0);" class="combo-product-view text-primary"
|
||||
data-combo='@json($product->combo_items)'>
|
||||
{{ Str::words($product->productName, 3, '...') }}
|
||||
</a>
|
||||
@endif
|
||||
</td>
|
||||
|
||||
<td class="d-print-none">{{ ucfirst($product->product_type) }}</td>
|
||||
<td class="d-print-none">{{ $product->productCode }}</td>
|
||||
<td class="d-print-none">{{ $product->hsn_code }}</td>
|
||||
<td class="d-print-none">{{ $product->brand->brandName ?? '' }}</td>
|
||||
<td>{{ $product->category->categoryName ?? '' }}</td>
|
||||
<td class="d-print-none">{{ ucfirst($product->product_type) }}</td>
|
||||
<td class="d-print-none">{{ $product->productCode }}</td>
|
||||
<td class="d-print-none">{{ $product->brand->brandName ?? '' }}</td>
|
||||
<td>{{ $product->category->categoryName ?? '' }}</td>
|
||||
|
||||
@usercan('products.price')
|
||||
<td>
|
||||
{{ $product->product_type == 'combo'
|
||||
? currency_format($product->total_cost, currency: business_currency())
|
||||
: currency_format($latestPurchasePrice, currency: business_currency()) }}
|
||||
</td>
|
||||
@endusercan
|
||||
@usercan('products.price')
|
||||
<td>
|
||||
{{ $product->product_type == 'combo'
|
||||
? currency_format($product->combo_products->sum(fn($combo) => $combo->purchase_price * $combo->quantity), currency: business_currency())
|
||||
: currency_format($latestPurchasePrice, currency: business_currency()) }}
|
||||
</td>
|
||||
@endusercan
|
||||
|
||||
<td>
|
||||
{{ currency_format(
|
||||
$product->product_type == 'combo'
|
||||
? $product->productSalePrice
|
||||
: $latestSalePrice,
|
||||
currency: business_currency()
|
||||
) }}
|
||||
</td>
|
||||
<td>
|
||||
{{ currency_format(
|
||||
$product->product_type == 'combo'
|
||||
? $product->productSalePrice
|
||||
: $latestSalePrice,
|
||||
currency: business_currency()
|
||||
) }}
|
||||
</td>
|
||||
|
||||
<td class="{{ $product->total_stock <= $product->alert_qty ? 'text-danger' : 'text-success' }}">
|
||||
<span class="fw-bold">
|
||||
{{ $product->product_type == 'combo' ? 'Combo' : ($product->total_stock ?? 0) }}
|
||||
</span>
|
||||
<small class="text-dark">{{ $product->unit->unitName ?? '' }}</small>
|
||||
</td>
|
||||
<td class="{{ $product->total_stock <= $product->alert_qty ? 'text-danger' : 'text-success' }}">
|
||||
<span class="fw-bold">
|
||||
{{ $product->product_type == 'combo' ? 'Combo' : ($product->total_stock ?? 0) }}
|
||||
</span>
|
||||
<small class="text-dark">{{ $product->unit->unitName ?? '' }}</small>
|
||||
</td>
|
||||
|
||||
<td class="d-print-none">{{ $product->rack->name ?? '' }}</td>
|
||||
<td class="d-print-none">{{ $product->shelf->name ?? '' }}</td>
|
||||
<td class="d-print-none">{{ $product->rack->name ?? '' }}</td>
|
||||
<td class="d-print-none">{{ $product->shelf->name ?? '' }}</td>
|
||||
|
||||
<td class="d-print-none">
|
||||
<div class="dropdown table-action">
|
||||
<button type="button" data-bs-toggle="dropdown">
|
||||
<i class="far fa-ellipsis-v"></i>
|
||||
</button>
|
||||
<td class="d-print-none">
|
||||
<span class="badge {{ $product->is_displayed_in_pos ? 'bg-success' : 'bg-danger' }}">
|
||||
{{ $product->is_displayed_in_pos ? __('Yes') : __('No') }}
|
||||
</span>
|
||||
</td>
|
||||
|
||||
<ul class="dropdown-menu">
|
||||
@if ($product->product_type != 'combo')
|
||||
<li>
|
||||
@php
|
||||
$stocks = $product->stocks->map(function ($batch) {
|
||||
return [
|
||||
'id' => $batch->id,
|
||||
'batch_no' => $batch->batch_no,
|
||||
'expire_date' => $batch->expire_date
|
||||
? formatted_date($batch->expire_date)
|
||||
: 'N/A',
|
||||
'productStock' => $batch->productStock ?? 0,
|
||||
'productSalePrice' => $batch->productSalePrice ?? 0,
|
||||
];
|
||||
});
|
||||
<td class="d-print-none">
|
||||
<div class="dropdown table-action">
|
||||
<button type="button" data-bs-toggle="dropdown">
|
||||
<i class="far fa-ellipsis-v"></i>
|
||||
</button>
|
||||
|
||||
$allSerials = $product->stocks->pluck('serial_numbers')->flatten()->filter()->values()->toArray();
|
||||
@endphp
|
||||
<ul class="dropdown-menu">
|
||||
@if ($product->product_type != 'combo')
|
||||
<li>
|
||||
@php
|
||||
$stocks = $product->stocks->map(function ($batch) {
|
||||
return [
|
||||
'id' => $batch->id,
|
||||
'batch_no' => $batch->batch_no,
|
||||
'expire_date' => $batch->expire_date
|
||||
? formatted_date($batch->expire_date)
|
||||
: 'N/A',
|
||||
'productStock' => $batch->productStock ?? 0,
|
||||
'productSalePrice' => $batch->productSalePrice ?? 0,
|
||||
];
|
||||
});
|
||||
@endphp
|
||||
|
||||
@usercan('products.read')
|
||||
<a href="#product-view" class="product-view" data-bs-toggle="modal"
|
||||
data-name="{{ $product->productName }}"
|
||||
data-image="{{ asset($product->productPicture ?? 'assets/images/logo/upload2.jpg') }}"
|
||||
data-code="{{ $product->productCode }}"
|
||||
data-brand="{{ $product->brand->brandName ?? '' }}"
|
||||
data-category="{{ $product->category->categoryName ?? '' }}"
|
||||
data-unit="{{ $product->unit->unitName ?? '' }}"
|
||||
@usercan('products.price')
|
||||
data-purchase-price="{{ currency_format($latestPurchasePrice, currency: business_currency()) }}"
|
||||
@endusercan
|
||||
data-sale-price="{{ currency_format($latestSalePrice, currency: business_currency()) }}"
|
||||
data-wholesale-price="{{ currency_format($latestWholeSalePrice, currency: business_currency()) }}"
|
||||
data-dealer-price="{{ currency_format($latestDealerPrice, currency: business_currency()) }}"
|
||||
data-stock="{{ $product->total_stock }}"
|
||||
data-low-stock="{{ $product->alert_qty }}"
|
||||
data-serial="{{ implode(', ', $allSerials) }}"
|
||||
data-manufacturer="{{ $product->productManufacturer }}"
|
||||
data-stocks='@json($stocks)'>
|
||||
@usercan('products.read')
|
||||
<a href="#product-view" class="product-view" data-bs-toggle="modal"
|
||||
data-name="{{ $product->productName }}"
|
||||
data-image="{{ asset($product->productPicture ?? 'assets/images/logo/upload2.jpg') }}"
|
||||
data-code="{{ $product->productCode }}"
|
||||
data-brand="{{ $product->brand->brandName ?? '' }}"
|
||||
data-category="{{ $product->category->categoryName ?? '' }}"
|
||||
data-unit="{{ $product->unit->unitName ?? '' }}" @usercan('products.price')
|
||||
data-purchase-price="{{ currency_format($latestPurchasePrice, currency: business_currency()) }}"
|
||||
@endusercan
|
||||
data-sale-price="{{ currency_format($latestSalePrice, currency: business_currency()) }}"
|
||||
data-wholesale-price="{{ currency_format($latestWholeSalePrice, currency: business_currency()) }}"
|
||||
data-dealer-price="{{ currency_format($latestDealerPrice, currency: business_currency()) }}"
|
||||
data-stock="{{ $product->total_stock }}" data-low-stock="{{ $product->alert_qty }}"
|
||||
data-manufacturer="{{ $product->productManufacturer }}"
|
||||
data-stocks='@json($stocks)'>
|
||||
<i class="fal fa-eye"></i> {{ __('View') }}
|
||||
</a>
|
||||
@endusercan
|
||||
</li>
|
||||
@else
|
||||
<li>
|
||||
@usercan('products.read')
|
||||
<a href="javascript:void(0);" class="combo-product-view"
|
||||
data-combo='@json($product->combo_items)'>
|
||||
<i class="fal fa-eye"></i> {{ __('View') }}
|
||||
</a>
|
||||
@endusercan
|
||||
</li>
|
||||
@endif
|
||||
@endusercan
|
||||
</li>
|
||||
@else
|
||||
<li>
|
||||
@usercan('products.read')
|
||||
<a href="javascript:void(0);" class="combo-product-view"
|
||||
data-combo='@json($product->combo_items)'>
|
||||
<i class="fal fa-eye"></i> {{ __('View') }}
|
||||
</a>
|
||||
@endusercan
|
||||
</li>
|
||||
@endif
|
||||
|
||||
<li>
|
||||
@usercan('products.update')
|
||||
<a href="{{ route('business.products.edit', $product->id) }}">
|
||||
<i class="fal fa-edit"></i> {{ __('Edit') }}
|
||||
</a>
|
||||
@endusercan
|
||||
</li>
|
||||
<li>
|
||||
@usercan('products.update')
|
||||
<a href="{{ route('business.products.edit', $product->id) }}">
|
||||
<i class="fal fa-edit"></i> {{ __('Edit') }}
|
||||
</a>
|
||||
@endusercan
|
||||
</li>
|
||||
|
||||
<li>
|
||||
@usercan('products.delete')
|
||||
<a href="{{ route('business.products.destroy', $product->id) }}"
|
||||
class="confirm-action" data-method="DELETE">
|
||||
<i class="fal fa-trash-alt"></i> {{ __('Delete') }}
|
||||
</a>
|
||||
@endusercan
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<li>
|
||||
@usercan('products.delete')
|
||||
<a href="{{ route('business.products.destroy', $product->id) }}" class="confirm-action"
|
||||
data-method="DELETE">
|
||||
<i class="fal fa-trash-alt"></i> {{ __('Delete') }}
|
||||
</a>
|
||||
@endusercan
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
@@ -220,4 +220,4 @@ class="confirm-action" data-method="DELETE">
|
||||
|
||||
<div class="mt-3">
|
||||
{{ $products->links('vendor.pagination.bootstrap-5') }}
|
||||
</div>
|
||||
</div>
|
||||
@@ -11,12 +11,16 @@
|
||||
$showCombo = isset($modules['show_product_type_combo']) && $modules['show_product_type_combo'];
|
||||
|
||||
$defaultPermissions = [
|
||||
'show_batch_no' => 1,
|
||||
'show_product_category' => 1,
|
||||
'show_product_stock' => 1,
|
||||
'show_exclusive_price' => 1,
|
||||
'show_inclusive_price' => 1,
|
||||
'show_profit_percent' => 1,
|
||||
'show_product_sale_price' => 1,
|
||||
'show_product_wholesale_price' => 1,
|
||||
'show_product_dealer_price' => 1,
|
||||
'show_action' => 1,
|
||||
];
|
||||
@endphp
|
||||
|
||||
@@ -101,13 +105,6 @@
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@if (is_module_enabled($modules, 'show_hsn_code'))
|
||||
<div class="col-md-6 col-lg-4 mb-2">
|
||||
<label>{{ __('HSN Code') }}</label>
|
||||
<input type="text" name="hsn_code" value="{{ $product->hsn_code }}" class="form-control" placeholder="{{ __('Enter hsn code') }}">
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@if (is_module_enabled($modules, 'show_product_brand'))
|
||||
<div class="col-md-6 col-lg-4 mb-2">
|
||||
<label>{{ __('Brand') }}</label>
|
||||
@@ -179,7 +176,6 @@
|
||||
</div>
|
||||
|
||||
<div class="product-price-container pb-4">
|
||||
@if (is_module_enabled($modules, 'show_serial'))
|
||||
<div class="product-price-header">
|
||||
<h3>{{__('Product price, stock')}}</h3>
|
||||
@if (moduleCheck('SerialCodeAddon'))
|
||||
@@ -189,7 +185,7 @@
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<div class="single-container m-3 mt-0 mb-0">
|
||||
<div class="row order-form-section">
|
||||
<div class="col-lg-4 mb-2">
|
||||
@@ -204,7 +200,7 @@
|
||||
|
||||
@if (is_module_enabled($modules, 'show_vat_type'))
|
||||
<div class="col-lg-4 mb-2">
|
||||
<label>{{ __('Selling Tax Type') }}</label>
|
||||
<label>{{ __('Tax Type') }}</label>
|
||||
<div class="gpt-up-down-arrow position-relative">
|
||||
<select id="vat_type" name="vat_type" class="form-control table-select w-100">
|
||||
<option @selected($product->vat_type == 'exclusive') value="exclusive">{{ __('Exclusive') }}</option>
|
||||
@@ -281,55 +277,68 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-12">
|
||||
@if (is_module_enabled($modules, 'show_product_image'))
|
||||
<div class="upload-product-img m-0">
|
||||
<div class="upload-img-title">
|
||||
<h3>{{__('Product Image')}}</h3>
|
||||
</div>
|
||||
<div class="upload-container mt-2" id="uploadContainer">
|
||||
<div class="upload-img-title border-0 p-0 m-0 mb-1">
|
||||
<h3><span>{{__('Image (Size 150x130)')}}</span></h3>
|
||||
</div>
|
||||
<div class="upload-box uploaded">
|
||||
<svg width="40" height="40" viewBox="0 0 40 40" fill="none"
|
||||
xmlns="http://www.w3.org/2000/svg">
|
||||
<g clip-path="url(#clip0_40001300_65043)">
|
||||
<path
|
||||
d="M33.3333 40H6.66667C3 40 0 37 0 33.3333V6.66667C0 3 3 0 6.66667 0H33.3333C37 0 40 3 40 6.66667V33.3333C40 37 37 40 33.3333 40Z"
|
||||
fill="#69A1FF"></path>
|
||||
<path
|
||||
d="M40 6.66667V33.3333C40 37 37 40 33.3333 40H6.33333C2.83333 39.8333 0 36.8333 0 33.3333V6.66667C0 3 3 0 6.66667 0H33.3333C37 0 40 3 40 6.66667Z"
|
||||
fill="#E6E6E6"></path>
|
||||
<path
|
||||
d="M27.8333 40H6.66667C3 40 0 37 0 33.3333V27.8333L3.83333 24C6 21.8333 9.66667 21.8333 11.8333 24L27.8333 40Z"
|
||||
fill="#999999"></path>
|
||||
<path
|
||||
d="M39.9987 23.834V33.334C39.9987 37.0007 36.9987 40.0007 33.332 40.0007H6.33203L27.1654 19.0007C29.332 16.834 32.9987 16.834 35.1654 19.0007L39.9987 23.834ZM24.332 10.5007H21.6654V17.334C21.6654 18.334 20.832 19.0007 19.9987 19.0007C19.1654 19.0007 18.332 18.334 18.332 17.334V10.5007H15.6654C14.6654 10.5007 13.9987 9.33398 14.6654 8.50065L18.9987 3.33398C19.4987 2.66732 20.4987 2.66732 20.832 3.33398L25.1654 8.66732C25.832 9.33398 25.332 10.5007 24.332 10.5007Z"
|
||||
fill="#999999"></path>
|
||||
</g>
|
||||
<defs>
|
||||
<clipPath id="clip0_40001300_65043">
|
||||
<rect width="40" height="40" fill="white"></rect>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
||||
<div class="upload-text">{{__('Drag & drop image')}}</div>
|
||||
<input type="file" name="productPicture" accept="image/*" class="handle-image-Upload">
|
||||
<div class="preview-wrapper">
|
||||
<img class="preview-img" src="{{ asset($product->productPicture ?? 'assets/images/icons/upload.png') }}"><span class="close-icon">
|
||||
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M12 4L4 12" stroke="#C52127" stroke-width="2" stroke-linecap="round"
|
||||
stroke-linejoin="round"></path>
|
||||
<path d="M4 4L12 12" stroke="#C52127" stroke-width="2" stroke-linecap="round"
|
||||
stroke-linejoin="round"></path>
|
||||
</svg>
|
||||
</span>
|
||||
<div class="col-lg-12 pt-2">
|
||||
<div class="card product-card border-0 ">
|
||||
<div class="card-bodys p-3 ">
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<div class="custom-control custom-checkbox d-flex align-items-center gap-2">
|
||||
<input type="checkbox" class="custom-control-input delete-checkbox-item multi-delete" id="is_displayed_in_pos" value="1" @checked($product->is_displayed_in_pos == 1) name="is_displayed_in_pos">
|
||||
<label class="custom-control-label fw-bold" for="is_displayed_in_pos">{{ __('Show on POS') }}</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-12">
|
||||
<div class="upload-product-img m-0">
|
||||
<div class="upload-img-title">
|
||||
<h3>{{__('Product Image')}}</h3>
|
||||
</div>
|
||||
<div class="upload-container mt-2" id="uploadContainer">
|
||||
<div class="upload-img-title border-0 p-0 m-0 mb-1">
|
||||
<h3><span>{{__('Image (Size 150x130)')}}</span></h3>
|
||||
</div>
|
||||
<div class="upload-box uploaded">
|
||||
<svg width="40" height="40" viewBox="0 0 40 40" fill="none"
|
||||
xmlns="http://www.w3.org/2000/svg">
|
||||
<g clip-path="url(#clip0_40001300_65043)">
|
||||
<path
|
||||
d="M33.3333 40H6.66667C3 40 0 37 0 33.3333V6.66667C0 3 3 0 6.66667 0H33.3333C37 0 40 3 40 6.66667V33.3333C40 37 37 40 33.3333 40Z"
|
||||
fill="#69A1FF"></path>
|
||||
<path
|
||||
d="M40 6.66667V33.3333C40 37 37 40 33.3333 40H6.33333C2.83333 39.8333 0 36.8333 0 33.3333V6.66667C0 3 3 0 6.66667 0H33.3333C37 0 40 3 40 6.66667Z"
|
||||
fill="#E6E6E6"></path>
|
||||
<path
|
||||
d="M27.8333 40H6.66667C3 40 0 37 0 33.3333V27.8333L3.83333 24C6 21.8333 9.66667 21.8333 11.8333 24L27.8333 40Z"
|
||||
fill="#999999"></path>
|
||||
<path
|
||||
d="M39.9987 23.834V33.334C39.9987 37.0007 36.9987 40.0007 33.332 40.0007H6.33203L27.1654 19.0007C29.332 16.834 32.9987 16.834 35.1654 19.0007L39.9987 23.834ZM24.332 10.5007H21.6654V17.334C21.6654 18.334 20.832 19.0007 19.9987 19.0007C19.1654 19.0007 18.332 18.334 18.332 17.334V10.5007H15.6654C14.6654 10.5007 13.9987 9.33398 14.6654 8.50065L18.9987 3.33398C19.4987 2.66732 20.4987 2.66732 20.832 3.33398L25.1654 8.66732C25.832 9.33398 25.332 10.5007 24.332 10.5007Z"
|
||||
fill="#999999"></path>
|
||||
</g>
|
||||
<defs>
|
||||
<clipPath id="clip0_40001300_65043">
|
||||
<rect width="40" height="40" fill="white"></rect>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
||||
<div class="upload-text">{{__('Drag & drop image')}}</div>
|
||||
<input type="file" name="productPicture" accept="image/*" class="handle-image-Upload">
|
||||
<div class="preview-wrapper">
|
||||
<img class="preview-img" src="{{ asset($product->productPicture ?? 'assets/images/icons/upload.png') }}"><span class="close-icon">
|
||||
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M12 4L4 12" stroke="#C52127" stroke-width="2" stroke-linecap="round"
|
||||
stroke-linejoin="round"></path>
|
||||
<path d="M4 4L12 12" stroke="#C52127" stroke-width="2" stroke-linecap="round"
|
||||
stroke-linejoin="round"></path>
|
||||
</svg>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
@@ -353,11 +362,9 @@
|
||||
<input type="hidden" id="warehouses-data" value='@json($warehouses)'>
|
||||
<input type="hidden" id="variations-data" value='@json($variations)'>
|
||||
<input type="hidden" id="permissions-data" value='@json($modules ?? $defaultPermissions)'>
|
||||
<input type="hidden" id="has-serial-code-addon" value="{{ moduleCheck('SerialCodeAddon') }}">
|
||||
<input type="hidden" id="has-warehouse-addon" value="{{ moduleCheck('WarehouseAddon') }}">
|
||||
|
||||
@endsection
|
||||
|
||||
@push('js')
|
||||
<script src="{{ asset('assets/js/custom/product.js') }}?v={{ time() }}"></script>
|
||||
<script src="{{ asset('assets/js/custom/product.js') }}"></script>
|
||||
@endpush
|
||||
|
||||
@@ -1,70 +1,43 @@
|
||||
<table class="table" id="datatable">
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="d-print-none">{{ __('SL') }}.</th>
|
||||
<th class="text-start">{{ __('Product Name') }}</th>
|
||||
<th class="d-print-none">{{ __('Type') }}</th>
|
||||
<th class="d-print-none">{{ __('Code') }}</th>
|
||||
<th class="d-print-none">{{ __('HSN Code') }}</th>
|
||||
<th class="d-print-none">{{ __('Brand') }}</th>
|
||||
<th>{{ __('Category') }}</th>
|
||||
@usercan('products.price')
|
||||
<th>{{ __('Purchase price') }}</th>
|
||||
@endusercan
|
||||
<th>{{ __('SL') }}. </th>
|
||||
<th>{{ __('Product Name') }} </th>
|
||||
<th>{{ __('Code') }} </th>
|
||||
<th>{{ __('Brand') }} </th>
|
||||
<th>{{ __('Category') }} </th>
|
||||
<th>{{ __('Unit') }} </th>
|
||||
<th>{{ __('Purchase Price') }}</th>
|
||||
<th>{{ __('Sale price') }}</th>
|
||||
<th>{{ __('Stock') }}</th>
|
||||
<th class="d-print-none">{{ __('Rack') }}</th>
|
||||
<th class="d-print-none">{{ __('Shelf') }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody id="product-data">
|
||||
<tbody>
|
||||
@foreach ($products as $product)
|
||||
@php
|
||||
$nonEmptyStock = $product->stocks->firstWhere('productStock', '>', 0);
|
||||
$fallbackStock = $product->stocks->first();
|
||||
$fallbackStock = $product->stocks->first(); // fallback if no stock > 0
|
||||
$stock = $nonEmptyStock ?? $fallbackStock;
|
||||
|
||||
$latestPurchasePrice = $stock?->productPurchasePrice ?? 0;
|
||||
$latestSalePrice = $stock?->productSalePrice ?? 0;
|
||||
$latestWholeSalePrice = $stock?->productWholeSalePrice ?? 0;
|
||||
$latestDealerPrice = $stock?->productDealerPrice ?? 0;
|
||||
$productStock = $product->total_stock ?? 0;
|
||||
@endphp
|
||||
<tr>
|
||||
<td class="d-print-none">
|
||||
{{ $loop->iteration }}
|
||||
</td>
|
||||
<td class="text-start">$product->productName</td>
|
||||
<td class="d-print-none">{{ ucfirst($product->product_type) }}</td>
|
||||
<td class="d-print-none">{{ $product->productCode }}</td>
|
||||
<td class="d-print-none">{{ $product->hsn_code }}</td>
|
||||
<td class="d-print-none">{{ $product->brand->brandName ?? '' }}</td>
|
||||
<td>{{ $loop->index + 1 }}</td>
|
||||
<td>{{ $product->productName }}</td>
|
||||
<td>{{ $product->productCode }}</td>
|
||||
<td>{{ $product->brand->brandName ?? '' }}</td>
|
||||
<td>{{ $product->category->categoryName ?? '' }}</td>
|
||||
@usercan('products.price')
|
||||
<td>
|
||||
{{ $product->product_type == 'combo'
|
||||
? currency_format($product->price_without_tax, currency: business_currency())
|
||||
: currency_format($latestPurchasePrice, currency: business_currency())
|
||||
}}
|
||||
</td>
|
||||
@endusercan
|
||||
<td>
|
||||
{{ currency_format(
|
||||
$product->product_type == 'combo'
|
||||
? $product->productSalePrice
|
||||
: $latestSalePrice,
|
||||
currency: business_currency()
|
||||
) }}
|
||||
</td>
|
||||
<td class="{{ $product->total_stock <= $product->alert_qty ? 'text-danger' : 'text-success' }}">
|
||||
<span class="fw-bold">
|
||||
{{ $product->product_type == 'combo' ? 'Combo' : ($product->total_stock ?? 0) }}
|
||||
</span>
|
||||
<small class="text-dark">{{ $product->unit->unitName ?? '' }}</small>
|
||||
</td>
|
||||
<td class="d-print-none">{{ $product->rack->name ?? '' }}</td>
|
||||
<td class="d-print-none">{{ $product->shelf->name ?? '' }}</td>
|
||||
<td>{{ $product->unit->unitName ?? '' }}</td>
|
||||
<td>{{ currency_format($latestPurchasePrice, currency: business_currency()) }}</td>
|
||||
<td>{{ currency_format($latestSalePrice, currency: business_currency()) }}</td>
|
||||
<td>{{ $product->total_stock }}</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
@@ -58,7 +58,7 @@
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" href="{{ route('business.expired.product.reports.pdf') }}">
|
||||
<a target="blank" href="{{ route('business.expired.product.reports.pdf') }}">
|
||||
<img src="{{ asset('assets/images/logo/pdf.svg') }}" alt="">
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -56,17 +56,17 @@ class="btn btn-primary"><i class="fas fa-plus-circle me-1"></i>{{ __('Add new Pr
|
||||
<div class="table-top-btn-group d-print-none">
|
||||
<ul>
|
||||
<li>
|
||||
<a class="export-btn" href="{{ route('business.products.csv') }}">
|
||||
<a href="{{ route('business.products.csv') }}">
|
||||
<img src="{{ asset('assets/images/logo/csv.svg') }}" alt="">
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="export-btn" href="{{ route('business.products.excel') }}">
|
||||
<a href="{{ route('business.products.excel') }}">
|
||||
<img src="{{ asset('assets/images/logo/excel.svg') }}" alt="">
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="export-btn" target="_blank" href="{{ route('business.products.pdf') }}">
|
||||
<a target="blank" href="{{ route('business.products.pdf') }}">
|
||||
<img src="{{ asset('assets/images/logo/pdf.svg') }}" alt="">
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
<div class="table-header justify-content-center border-0 d-none d-block d-print-block text-center">
|
||||
@include('business::print.header')
|
||||
<h4 style="text-align: center; margin: 0; padding: 0; font-size: 16px;" class="">{{ __('Product List') }}</h4>
|
||||
{{-- <p style="text-align: center; margin: 0; padding: 0; font-weight: 400; font-size: 14px;" class="">{{ __('Duration: 14-12-2025 to 24-12-2025') }}</p> --}}
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@@ -13,14 +14,14 @@
|
||||
id="datatable">
|
||||
<thead>
|
||||
<tr style="background-color: #C52127; color: white;">
|
||||
@if (auth()->user()->accessToMultiBranch())
|
||||
<th style="font-size:12px; border:1px solid gainsboro; color: white" class="text-start">{{ __('Branch') }}</th>
|
||||
@endif
|
||||
<th style="font-size:12px; border:1px solid gainsboro; color: white" class="text-start">{{ __('Name') }}</th>
|
||||
<th style="font-size:12px; border:1px solid gainsboro; color: white" class="text-start">{{ __('Code') }}</th>
|
||||
<th style="font-size:12px; border:1px solid gainsboro; color: white" class="text-start">{{ __('HSN Code') }}</th>
|
||||
<th style="font-size:12px; border:1px solid gainsboro; color: white" class="text-start">{{ __('Category') }}</th>
|
||||
<th style="font-size:12px; border:1px solid gainsboro; color: white" class="text-start">{{ __('Stock') }}</th>
|
||||
@usercan('products.price')
|
||||
<th style="font-size:12px; border:1px solid gainsboro; color: white" class="text-start">{{ __('Purchase Price') }}</th>
|
||||
@endusercan
|
||||
<th style="font-size:12px; border:1px solid gainsboro; color: white" class="text-start">{{ __('Sale Price') }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
@@ -28,13 +29,14 @@
|
||||
@foreach ($products as $product)
|
||||
@php
|
||||
$nonEmptyStock = $product->stocks->firstWhere('productStock', '>', 0);
|
||||
$fallbackStock = $product->stocks->first();
|
||||
$fallbackStock = $product->stocks->first(); // fallback if no stock > 0
|
||||
$stock = $nonEmptyStock ?? $fallbackStock;
|
||||
|
||||
$latestPurchasePrice = $stock?->productPurchasePrice ?? 0;
|
||||
$latestSalePrice = $stock?->productSalePrice ?? 0;
|
||||
$latestWholeSalePrice = $stock?->productWholeSalePrice ?? 0;
|
||||
$latestDealerPrice = $stock?->productDealerPrice ?? 0;
|
||||
$productStock = $product->total_stock ?? 0;
|
||||
@endphp
|
||||
<tr style="background-color: {{ $loop->even ? '#F5F5F5' : '#FFFFFF' }};">
|
||||
<td style="border:1px solid gainsboro; text-align:center;">
|
||||
@@ -43,30 +45,17 @@
|
||||
<td style="border:1px solid gainsboro; text-align:center;">
|
||||
{{ $product->productCode }}
|
||||
</td>
|
||||
<td style="border:1px solid gainsboro; text-align:center;">
|
||||
{{ $product->hsn_code }}
|
||||
</td>
|
||||
<td style="border:1px solid gainsboro; text-align:center;">
|
||||
{{ $product->category->categoryName ?? '' }}
|
||||
</td>
|
||||
<td style="border:1px solid gainsboro; text-align:center;">
|
||||
{{ $product->product_type == 'combo' ? 'Combo' : ($product->total_stock ?? 0) }}
|
||||
{{ $product->total_stock }}
|
||||
</td>
|
||||
@usercan('products.price')
|
||||
<td style="border:1px solid gainsboro; text-align:center;">
|
||||
{{ $product->product_type == 'combo'
|
||||
? currency_format($product->price_without_tax, currency: business_currency())
|
||||
: currency_format($latestPurchasePrice, currency: business_currency())
|
||||
}}
|
||||
{{ currency_format($latestPurchasePrice, currency: business_currency()) }}
|
||||
</td>
|
||||
@endusercan
|
||||
<td style="border:1px solid gainsboro; text-align:center;">
|
||||
{{ currency_format(
|
||||
$product->product_type == 'combo'
|
||||
? $product->productSalePrice
|
||||
: $latestSalePrice,
|
||||
currency: business_currency())
|
||||
}}
|
||||
{{ currency_format($latestSalePrice, currency: business_currency()) }}
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
|
||||
@@ -14,8 +14,7 @@
|
||||
<th>{{ __('Batch') }}</th>
|
||||
<th>{{ __('Stock') }}</th>
|
||||
@usercan('stocks.price')
|
||||
<th>{{ __('Purchase Price (Inc. tax)') }}</th>
|
||||
<th>{{ __('Purchase Price (Exc. tax)') }}</th>
|
||||
<th>{{ __('Purchase Price') }}</th>
|
||||
@endusercan
|
||||
<th>{{ __('MRP') }}</th>
|
||||
<th>{{ __('WholeSale Price') }}</th>
|
||||
|
||||
@@ -71,11 +71,6 @@
|
||||
<td>:</td>
|
||||
<td id="product_low_stock"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{ __('Serial') }}</td>
|
||||
<td>:</td>
|
||||
<td id="product_serial"></td>
|
||||
</tr>
|
||||
<tr id="expire_date_row" class="d-none">
|
||||
<td>{{ __('Expire Date') }}</td>
|
||||
<td>:</td>
|
||||
|
||||
@@ -74,22 +74,7 @@
|
||||
<label>{{__('Profile Picture')}}</label>
|
||||
</div>
|
||||
<div class="col-lg-8 mt-3">
|
||||
<div class="custom-upload-wrapper">
|
||||
<div class="custom-image-box">
|
||||
<div class="custom-image-content">
|
||||
<svg width="30" height="30" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M18.3327 7.5026V12.5026C18.3327 14.8596 18.3327 16.0381 17.6004 16.7704C16.8682 17.5026 15.6897 17.5026 13.3327 17.5026H6.66602C4.309 17.5026 3.13048 17.5026 2.39825 16.7704C1.66602 16.0381 1.66602 14.8596 1.66602 12.5026V9.21404C1.66602 8.39729 1.66602 7.98892 1.76053 7.65502C1.99698 6.81974 2.64982 6.1669 3.48509 5.93046C3.819 5.83594 4.22736 5.83594 5.04409 5.83594C5.34907 5.83594 5.50157 5.83594 5.64361 5.81118C5.99556 5.74983 6.31847 5.577 6.56476 5.3182C6.66415 5.21375 6.91352 4.8397 7.08268 4.58594C7.413 4.09048 7.57815 3.84275 7.80393 3.67233C7.94181 3.56826 8.09502 3.48627 8.25809 3.42927C8.52512 3.33594 8.82287 3.33594 9.41837 3.33594H10.8327" stroke="#4B5563" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" />
|
||||
<path d="M13.3327 11.2474C13.3327 13.0883 11.8403 14.5807 9.99937 14.5807C8.1584 14.5807 6.66602 13.0883 6.66602 11.2474C6.66602 9.40641 8.1584 7.91406 9.99937 7.91406C11.8403 7.91406 13.3327 9.40641 13.3327 11.2474Z" stroke="#4B5563" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" />
|
||||
<path d="M13.334 4.58333H17.5007M15.4173 6.66667V2.5" stroke="#4B5563" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
<span class="custom-upload-text">{{ __('Add Image') }}</span>
|
||||
</div>
|
||||
|
||||
<!-- Preview image -->
|
||||
<img class="preview-image d-none" id="image" src="{{ asset($user->image) }}" alt="Preview">
|
||||
<input type="file" name="image" class="preview-image-input" data-id="#image" accept="image/*">
|
||||
</div>
|
||||
</div>
|
||||
<input type="file" name="image" onchange="document.getElementById('profile_picture').src = window.URL.createObjectURL(this.files[0])" id="upload" class="form-control">
|
||||
</div>
|
||||
<div class="col-lg-4 mt-3">
|
||||
<label>{{__('Current Password')}}</label>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
@extends('layouts.business.master')
|
||||
|
||||
@section('title')
|
||||
{{ __('Purchase Return') }}
|
||||
{{ __('Pos Sale') }}
|
||||
@endsection
|
||||
|
||||
@section('main_content')
|
||||
@@ -74,8 +74,7 @@
|
||||
<tr data-max_qty="{{ $detail->quantities }}"
|
||||
data-price="{{ $detail->productPurchasePrice }}"
|
||||
data-discount_per_unit_factor="{{ $discount_per_unit_factor }}"
|
||||
data-discounted_price_per_unit="{{ $discounted_price_per_unit }}"
|
||||
data-serials='@json($detail->serial_numbers ?? [])'>
|
||||
data-discounted_price_per_unit="{{ $discounted_price_per_unit }}">
|
||||
<td class='text-center'>
|
||||
<img class="table-img"
|
||||
src="{{ asset($detail->product->productPicture ?? 'assets/images/products/box.svg') }}">
|
||||
@@ -87,35 +86,20 @@
|
||||
<td class='text-center price'>{{ currency_format($discounted_price_per_unit, currency: business_currency()) }}
|
||||
@endusercan
|
||||
</td>
|
||||
<td class='text-center large-td justify-content-center'>
|
||||
@if (($detail->product->has_serial ?? 0) == 1 && moduleCheck('SerialCodeAddon'))
|
||||
<button type="button" class="serial-cell-button serial-return-btn">
|
||||
<svg width="28" height="28" viewBox="0 0 28 28" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M4 7H18" stroke="var(--clr-primary)" stroke-width="2" stroke-linecap="round"/>
|
||||
<path d="M23 7H23.0105" stroke="var(--clr-primary)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M23 14H23.0105" stroke="var(--clr-primary)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M23 21H23.0105" stroke="var(--clr-primary)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M4 14H18" stroke="var(--clr-primary)" stroke-width="2" stroke-linecap="round"/>
|
||||
<path d="M4 21H18" stroke="var(--clr-primary)" stroke-width="2" stroke-linecap="round"/>
|
||||
</svg>
|
||||
<td class='text-center large-td'>
|
||||
<div class="d-flex align-items-center gap-3">
|
||||
<button class="incre-decre sub-btn">
|
||||
<i class="fas fa-minus icon"></i>
|
||||
</button>
|
||||
<input type="hidden" name="products[][detail_id]" value="{{ $detail->id }}">
|
||||
<input type="hidden" name="products[][return_qty]" class="return-qty-hidden" value="0">
|
||||
<input type="hidden" name="products[][serial_numbers]" class="selected-serials-input" value="[]">
|
||||
@elseif(($detail->product->has_serial ?? 0) == 1)
|
||||
<span class="text-danger">{{ __('Cannot return') }}</span>
|
||||
@else
|
||||
<div class="d-flex align-items-center gap-3">
|
||||
<button class="incre-decre sub-btn"><i class="fas fa-minus icon"></i></button>
|
||||
<input type="number" step="any" value="" class="custom-number-input return-qty" placeholder="{{ __('0') }}">
|
||||
<button class="incre-decre add-btn"><i class="fas fa-plus icon"></i></button>
|
||||
</div>
|
||||
<input type="hidden" name="products[][detail_id]" value="{{ $detail->id }}">
|
||||
<input type="hidden" name="products[][return_qty]" class="return-qty-hidden" value="0">
|
||||
<input type="hidden" name="products[][serial_numbers]" value="[]">
|
||||
@endif
|
||||
<input type="number" name="return_qty[]"
|
||||
value=""
|
||||
class="custom-number-input return-qty" placeholder="0">
|
||||
<button class="incre-decre add-btn">
|
||||
<i class="fas fa-plus icon"></i>
|
||||
</button>
|
||||
</div>
|
||||
</td>
|
||||
<td class="subtotal text-end">{{ currency_format(0, currency: business_currency()) }}</td>
|
||||
<td class="subtotal text-end">{{ currency_format(0) }}</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
@@ -123,11 +107,12 @@
|
||||
</div>
|
||||
|
||||
<div class="py-3 col-lg-12">
|
||||
<h6 class="text-end fw-bold return_amount" data-return-text="{{ __('Return Amount') }}">{{ __('Return Amount') . ' ' . currency_format($purchase->totalAmount, currency: business_currency()) }}</h6>
|
||||
<h6 class="text-end fw-bold return_amount">
|
||||
{{ __('Return Amount ' . currency_format($purchase->totalAmount, currency: business_currency())) }}</h6>
|
||||
</div>
|
||||
</div>
|
||||
<div class=" pt-4" >
|
||||
<div class="button-group text-center ">
|
||||
<div class="col-lg-12 delete-cancel-group">
|
||||
<div class="button-group text-center pt-5">
|
||||
<a href="{{ route('business.purchases.index') }}"
|
||||
class="theme-btn border-btn m-2">{{ __('Cancel') }}</a>
|
||||
<button class="theme-btn m-2 submit-btn">{{ __('Confirm Return') }}</button>
|
||||
@@ -137,16 +122,8 @@ class="theme-btn border-btn m-2">{{ __('Cancel') }}</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<input type="hidden" id="has-serial-code-addon" value="{{ moduleCheck('SerialCodeAddon') }}">
|
||||
|
||||
@endsection
|
||||
|
||||
@push('modal')
|
||||
@if (moduleCheck('SerialCodeAddon'))
|
||||
@include('serialcodeaddon::select-serial-modal')
|
||||
@endif
|
||||
@endpush
|
||||
|
||||
@push('js')
|
||||
<script src="{{ asset('assets/js/custom/sale-purchase-return.js') . '?v=' . time() }}"></script>
|
||||
<script src="{{ asset('assets/js/custom/sale-purchase-return.js') }}"></script>
|
||||
@endpush
|
||||
|
||||
@@ -18,13 +18,11 @@
|
||||
@foreach ($purchases as $purchase)
|
||||
@php
|
||||
$total_return_amount = $purchase->purchaseReturns->sum('total_return_amount');
|
||||
$tax_invoice = moduleCheck('TaxInvoiceAddon') && invoice_setting($purchase->business_id) == 'standard_a4';
|
||||
$invoice_route = $tax_invoice ? route('business.purchases.tax.invoice', $purchase->id) : route('business.purchases.invoice', $purchase->id);
|
||||
@endphp
|
||||
<tr>
|
||||
<td>{{ ($purchases->currentPage() - 1) * $purchases->perPage() + $loop->iteration }}</td>
|
||||
<td>
|
||||
<a href="{{ $invoice_route }}" target="_blank"
|
||||
<a href="{{ route('business.purchases.invoice', $purchase->id) }}" target="_blank"
|
||||
class="text-primary">
|
||||
{{ $purchase->invoiceNumber }}
|
||||
</a>
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
<th class="d-print-none"> {{ __('Image') }} </th>
|
||||
<th> {{ __('Name') }} </th>
|
||||
<th> {{ __('Code') }} </th>
|
||||
<th> {{ __('HSN Code') }} </th>
|
||||
<th> {{ __('Product') }} </th>
|
||||
<th> {{ __('Category') }} </th>
|
||||
<th class="d-print-none"> {{ __('Unit') }} </th>
|
||||
@@ -27,7 +26,6 @@
|
||||
</a>
|
||||
</td>
|
||||
<td>{{ $product->productCode }}</td>
|
||||
<td>{{ $product->hsn_code }}</td>
|
||||
<td>{{ $product->total_combo_products }}</td>
|
||||
<td>{{ $product->category->categoryName ?? '' }}</td>
|
||||
<td class="d-print-none">{{ $product->unit->unitName ?? '' }}</td>
|
||||
@@ -45,7 +43,6 @@
|
||||
<td class="d-print-none"></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td>
|
||||
{{ $combo_products->sum('total_combo_products') }}
|
||||
</td>
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
<th>{{ __('SL') }}. </th>
|
||||
<th> {{ __('Name') }} </th>
|
||||
<th> {{ __('Code') }} </th>
|
||||
<th> {{ __('HSN Code') }} </th>
|
||||
<th> {{ __('Product') }} </th>
|
||||
<th> {{ __('Category') }} </th>
|
||||
<th> {{ __('Unit') }} </th>
|
||||
@@ -19,7 +18,6 @@
|
||||
<td>{{ $loop->index + 1 }}</td>
|
||||
<td>{{ $product->productName }}</td>
|
||||
<td>{{ $product->productCode }}</td>
|
||||
<td>{{ $product->hsn_code }}</td>
|
||||
<td>{{ $product->total_combo_products }}</td>
|
||||
<td>{{ $product->category->categoryName ?? '' }}</td>
|
||||
<td>{{ $product->unit->unitName ?? '' }}</td>
|
||||
@@ -36,7 +34,6 @@
|
||||
<td>{{ __('Total') }}</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td>
|
||||
{{ $combo_products->sum('total_combo_products') }}
|
||||
</td>
|
||||
|
||||
@@ -47,17 +47,17 @@
|
||||
<div class="table-top-btn-group d-print-none">
|
||||
<ul>
|
||||
<li>
|
||||
<a class="export-btn" href="{{ route('business.combo-product-reports.csv') }}">
|
||||
<a href="{{ route('business.combo-product-reports.csv') }}">
|
||||
<img src="{{ asset('assets/images/logo/csv.svg') }}" alt="">
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="export-btn" href="{{ route('business.combo-product-reports.excel') }}">
|
||||
<a href="{{ route('business.combo-product-reports.excel') }}">
|
||||
<img src="{{ asset('assets/images/logo/excel.svg') }}" alt="">
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="export-btn" target="_blank" href="{{ route('business.combo-product-reports.pdf') }}">
|
||||
<a target="blank" href="{{ route('business.combo-product-reports.pdf') }}">
|
||||
<img src="{{ asset('assets/images/logo/pdf.svg') }}" alt="">
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
<div class="table-header justify-content-center border-0 d-none d-block d-print-block text-center">
|
||||
@include('business::print.header')
|
||||
<h4 style="text-align: center; margin: 0; padding: 0; font-size: 16px;" class="">{{ __('Combo Product Report List') }}</h4>
|
||||
{{-- <p style="text-align: center; margin: 0; padding: 0; font-weight: 400; font-size: 14px;" class="">{{ __('Duration: 14-12-2025 to 24-12-2025') }}</p> --}}
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
<th>{{ __('SL') }}. </th>
|
||||
<th>{{ __('Product Name') }} </th>
|
||||
<th>{{ __('Product Code') }} </th>
|
||||
<th>{{ __('HSN Code') }}</th>
|
||||
<th>{{ __('Purchase Price') }} </th>
|
||||
<th>{{ __('Sale Price') }} </th>
|
||||
<th>{{ __('Discount') }} </th>
|
||||
@@ -17,7 +16,6 @@
|
||||
<td>{{ $discount_products->firstItem() + $loop->index }}</td>
|
||||
<td>{{ $discount_product->product?->productName }}</td>
|
||||
<td>{{ $discount_product->product?->productCode }}</td>
|
||||
<td>{{ $discount_product->product?->hsn_code }}</td>
|
||||
<td>{{ currency_format($discount_product->productPurchasePrice, currency: business_currency()) }}</td>
|
||||
<td>{{ currency_format(($discount_product->price) - ($discount_product->discount), currency: business_currency()) }}</td>
|
||||
<td>{{ currency_format(abs($discount_product->discount), currency: business_currency()) }}</td>
|
||||
@@ -29,7 +27,6 @@
|
||||
<td>{{ __('Total') }}</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td>
|
||||
{{ currency_format($discount_products->sum('productPurchasePrice'), currency: business_currency()) }}
|
||||
</td>
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
<th>{{ __('SL') }}. </th>
|
||||
<th>{{ __('Product Name') }} </th>
|
||||
<th>{{ __('Product Code') }} </th>
|
||||
<th>{{ __('HSN Code') }}</th>
|
||||
<th>{{ __('Purchase Price') }} </th>
|
||||
<th>{{ __('Sale Price') }} </th>
|
||||
<th>{{ __('Discount') }} </th>
|
||||
@@ -16,7 +15,6 @@
|
||||
<td>{{ $loop->index + 1 }}</td>
|
||||
<td>{{ $discount_product->product?->productName }}</td>
|
||||
<td>{{ $discount_product->product?->productCode }}</td>
|
||||
<td>{{ $discount_product->product?->hsn_code }}</td>
|
||||
<td>{{ currency_format($discount_product->productPurchasePrice, currency: business_currency()) }}</td>
|
||||
<td>{{ currency_format(($discount_product->price) - ($discount_product->discount), currency: business_currency()) }}</td>
|
||||
<td>{{ currency_format(abs($discount_product->discount), currency: business_currency()) }}</td>
|
||||
@@ -28,7 +26,6 @@
|
||||
<td>{{ __('Total') }}</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td>
|
||||
{{ currency_format($discount_products->sum('productPurchasePrice'), currency: business_currency()) }}
|
||||
</td>
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user