migrate to gtea from bistbucket
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
@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 table-bordered">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="text-start">{{ __('Assets') }}</th>
|
||||
<th class="text-end">{{ __('Payment In') }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="">
|
||||
@foreach ($asset_datas as $data)
|
||||
@php
|
||||
$product_asset_value = 0;
|
||||
|
||||
if ($data->product_type == 'single' || $data->product_type == 'variant') {
|
||||
foreach ($data->stocks as $stock) {
|
||||
$product_asset_value += $stock->productStock * $stock->productPurchasePrice;
|
||||
}
|
||||
} elseif ($data->product_type == 'combo') {
|
||||
foreach ($data->combo_products as $combo_product) {
|
||||
if ($combo_product->stock) {
|
||||
$product_asset_value +=
|
||||
$combo_product->stock->productStock * $combo_product->purchase_price;
|
||||
}
|
||||
}
|
||||
}
|
||||
@endphp
|
||||
<tr>
|
||||
<td class="text-start loss-profit-tbody">
|
||||
{{ $data->source == 'product' ? $data->productName : $data->name }}</td>
|
||||
<td class="text-end loss-profit-tbody">
|
||||
{{ $data->source == 'product'
|
||||
? currency_format($product_asset_value, currency: business_currency())
|
||||
: currency_format($data->balance, currency: business_currency()) }}
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
@if ($asset_datas->count() > 0)
|
||||
<tr class="fw-bold">
|
||||
<td colspan="1" class="text-start bottom-net-profit">{{ __('Total') }}</td>
|
||||
<td class="text-end bottom-net-profit">
|
||||
{{ currency_format($total_asset, currency: business_currency()) }}</td>
|
||||
</tr>
|
||||
@endif
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="mt-3">
|
||||
{{ $asset_datas->links('vendor.pagination.bootstrap-5') }}
|
||||
</div>
|
||||
@@ -0,0 +1,44 @@
|
||||
<table class="table table-bordered">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="text-start">{{ __('Assets') }}</th>
|
||||
<th class="text-end">{{ __('Payment In') }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="">
|
||||
@foreach ($asset_datas as $data)
|
||||
@php
|
||||
$product_asset_value = 0;
|
||||
|
||||
if ($data->product_type == 'single' || $data->product_type == 'variant') {
|
||||
foreach ($data->stocks as $stock) {
|
||||
$product_asset_value += $stock->productStock * $stock->productPurchasePrice;
|
||||
}
|
||||
} elseif ($data->product_type == 'combo') {
|
||||
foreach ($data->combo_products as $combo_product) {
|
||||
if ($combo_product->stock) {
|
||||
$product_asset_value +=
|
||||
$combo_product->stock->productStock * $combo_product->purchase_price;
|
||||
}
|
||||
}
|
||||
}
|
||||
@endphp
|
||||
<tr>
|
||||
<td class="text-start loss-profit-tbody">
|
||||
{{ $data->source == 'product' ? $data->productName : $data->name }}</td>
|
||||
<td class="text-end loss-profit-tbody">
|
||||
{{ $data->source == 'product'
|
||||
? currency_format($product_asset_value, currency: business_currency())
|
||||
: currency_format($data->balance, currency: business_currency()) }}
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
@if ($asset_datas->count() > 0)
|
||||
<tr class="fw-bold">
|
||||
<td colspan="1" class="text-start bottom-net-profit">{{ __('Total') }}</td>
|
||||
<td class="text-end bottom-net-profit">
|
||||
{{ currency_format($total_asset, currency: business_currency()) }}</td>
|
||||
</tr>
|
||||
@endif
|
||||
</tbody>
|
||||
</table>
|
||||
109
Modules/Business/resources/views/balance-sheets/index.blade.php
Normal file
109
Modules/Business/resources/views/balance-sheets/index.blade.php
Normal file
@@ -0,0 +1,109 @@
|
||||
@extends('layouts.business.master')
|
||||
|
||||
@section('title')
|
||||
{{ __('Balance Sheet') }}
|
||||
@endsection
|
||||
|
||||
@section('main_content')
|
||||
<div class="erp-table-section">
|
||||
<div class="container-fluid">
|
||||
<div class="card">
|
||||
<div class="card-bodys">
|
||||
<div class="row p-2">
|
||||
<div class="col-lg-2 col-md-6 d-print-none">
|
||||
<div class="sales-card p-3 m-2 text-white">
|
||||
<p class="stat-value" id="total_asset_box">{{ currency_format($total_asset, currency: business_currency()) }}</p>
|
||||
<p class="stat-title">{{ __('Total Assets') }}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="table-header p-16 d-print-none">
|
||||
<h4>{{ __('Balance Sheet') }}</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">{{ __('Balance Sheet') }}</h4>
|
||||
</div>
|
||||
{{-- search bar --}}
|
||||
<div class="loss-profit-container d-print-none">
|
||||
<div class="table-top-form">
|
||||
<form action="{{ route('business.balance-sheet.index') }}" method="GET" class="report-filter-form" table="#balance-sheet-data">
|
||||
<div class="d-flex align-items-center gap-3 flex-wrap table-top-left">
|
||||
<div class="gpt-up-down-arrow position-relative">
|
||||
<select name="per_page" class="form-control">
|
||||
<option value="20">{{ __('Show 20') }}</option>
|
||||
<option value="50">{{ __('Show 50') }}</option>
|
||||
<option value="100">{{ __('Show 100') }}</option>
|
||||
<option value="500">{{ __('Show 500') }}</option>
|
||||
</select>
|
||||
<span></span>
|
||||
</div>
|
||||
<div class="m-0 p-0 d-print-none">
|
||||
<div class="date-filters-container">
|
||||
<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">
|
||||
</div>
|
||||
<div class="input-wrapper align-items-center date-filters d-none">
|
||||
<label class="header-label">{{ __('To Date') }}</label>
|
||||
<input type="date" name="to_date" value="{{ now()->format('Y-m-d') }}" class="form-control filter-field filter-to-date">
|
||||
</div>
|
||||
<div class="gpt-up-down-arrow position-relative d-print-none custom-date-filter">
|
||||
<select name="custom_days" class="form-control custom-days">
|
||||
<option value="today" {{ request()->get('custom_days') == 'today' ? 'selected' : '' }}>{{ __('Today') }}</option>
|
||||
<option value="yesterday" {{ request()->get('custom_days') == 'yesterday' ? 'selected' : '' }}>{{ __('Yesterday') }}</option>
|
||||
<option value="last_seven_days" {{ request()->get('custom_days') == 'last_seven_days' ? 'selected' : '' }}>{{ __('Last 7 Days') }}</option>
|
||||
<option value="last_thirty_days" {{ request()->get('custom_days') == 'last_thirty_days' ? 'selected' : '' }}>{{ __('Last 30 Days') }}</option>
|
||||
<option value="current_month" {{ request()->get('custom_days') == 'current_month' ? 'selected' : '' }}>{{ __('Current Month') }}</option>
|
||||
<option value="last_month" {{ request()->get('custom_days') == 'last_month' ? 'selected' : '' }}>{{ __('Last Month') }}</option>
|
||||
<option value="current_year" {{ request()->get('custom_days') == 'current_year' ? 'selected' : '' }}>{{ __('Current Year') }}</option>
|
||||
<option value="custom_date" {{ request()->get('custom_days') == 'custom_date' ? 'selected' : '' }}>{{ __('Custom Date') }}</option>
|
||||
</select>
|
||||
<span></span>
|
||||
<div class="calendar-icon">
|
||||
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M12.6667 2.67188H3.33333C2.59695 2.67188 2 3.26883 2 4.00521V13.3385C2 14.0749 2.59695 14.6719 3.33333 14.6719H12.6667C13.403 14.6719 14 14.0749 14 13.3385V4.00521C14 3.26883 13.403 2.67188 12.6667 2.67188Z" stroke="#4B5563" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M10.6641 1.32812V3.99479" stroke="#4B5563" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M5.33594 1.32812V3.99479" stroke="#4B5563" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M2 6.67188H14" stroke="#4B5563" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<div class="table-top-btn-group d-print-none p-2">
|
||||
<ul>
|
||||
<li>
|
||||
<a href="{{ route('business.balance-sheet.excel') }}">
|
||||
<img src="{{ asset('assets/images/logo/csv.svg') }}" alt="">
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="{{ route('business.balance-sheet.csv') }}">
|
||||
<img src="{{ asset('assets/images/logo/excel.svg') }}" alt="">
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="blank" href="{{ route('business.balance-sheet.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>
|
||||
<div id="balance-sheet-data">
|
||||
@include('business::balance-sheets.datas')
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@@ -0,0 +1,76 @@
|
||||
@extends('layouts.business.pdf.pdf_layout')
|
||||
|
||||
@section('pdf_title')
|
||||
<div class="table-header justify-content-center border-0 d-print-block text-center">
|
||||
@include('business::print.header')
|
||||
<h4 style="text-align: center; margin: 0; padding: 0; font-size: 16px;">
|
||||
{{ __('Balance Sheet Report') }}
|
||||
</h4>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@section('pdf_content')
|
||||
|
||||
<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="font-size:12px; border:1px solid gainsboro; color: white">
|
||||
{{ __('Assets') }}
|
||||
</th>
|
||||
<th style="font-size:12px; border:1px solid gainsboro; color: white">
|
||||
{{ __('Payment In') }}
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
@foreach($asset_datas as $data)
|
||||
@php
|
||||
$product_asset_value = 0;
|
||||
if($data->source === 'product') {
|
||||
if($data->product_type == 'single' || $data->product_type == 'variant') {
|
||||
foreach($data->stocks as $stock) {
|
||||
$product_asset_value += $stock->productStock * $stock->productPurchasePrice;
|
||||
}
|
||||
}
|
||||
elseif($data->product_type == 'combo') {
|
||||
foreach($data->combo_products as $combo_product) {
|
||||
if($combo_product->stock) {
|
||||
$product_asset_value += $combo_product->stock->productStock * $combo_product->purchase_price;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@endphp
|
||||
<tr style="background-color: {{ $loop->even ? '#F5F5F5' : '#FFFFFF' }};">
|
||||
<td style="border:1px solid gainsboro; text-align:center;">
|
||||
{{ $data->source == 'product' ? $data->productName : $data->name }}
|
||||
</td>
|
||||
|
||||
<td style="border:1px solid gainsboro; text-align:center;">
|
||||
@if($data->source == 'product')
|
||||
{{ currency_format($product_asset_value, currency: business_currency()) }}
|
||||
@else
|
||||
{{ currency_format($data->balance, currency: business_currency()) }}
|
||||
@endif
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
|
||||
@if ($asset_datas->count() > 0)
|
||||
<tr style="background-color:#C52127; color:white; font-weight:bold;">
|
||||
<td style="border:1px solid gainsboro; text-align:center; color: white">
|
||||
{{ __('Total') }}
|
||||
</td>
|
||||
<td style="border:1px solid gainsboro; text-align:center; color: white; font-weight: 600;">
|
||||
{{ currency_format($total_asset, currency: business_currency()) }}
|
||||
</td>
|
||||
</tr>
|
||||
@endif
|
||||
|
||||
</table>
|
||||
|
||||
@endsection
|
||||
77
Modules/Business/resources/views/banks/create.blade.php
Normal file
77
Modules/Business/resources/views/banks/create.blade.php
Normal file
@@ -0,0 +1,77 @@
|
||||
<div class="modal fade common-validation-modal" id="create-bank">
|
||||
<div class="modal-dialog modal-dialog-centered modal-lg">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h1 class="modal-title fs-5">{{ __('Add New Bank') }}</h1>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="personal-info">
|
||||
<form action="{{ route('business.banks.store') }}" method="post" class="ajaxform_instant_reload">
|
||||
@csrf
|
||||
<div class="row">
|
||||
<div class="col-lg-4 mb-2">
|
||||
<label>{{__('Account Display Name')}} </label>
|
||||
<input type="text" name="name" class="form-control" placeholder="{{__('Enter account display name')}}" required>
|
||||
</div>
|
||||
<div class="col-lg-4">
|
||||
<label>{{__('Opening Balance')}}</label>
|
||||
<input type="number" name="opening_balance" class="form-control" placeholder="{{__('Ex: 500') }}" value="0">
|
||||
</div>
|
||||
<div class="col-lg-4">
|
||||
<label>{{__('As of Date')}}</label>
|
||||
<input type="date" name="opening_date" class="form-control" value="{{ now()->format('Y-m-d') }}">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Hidden extra fields -->
|
||||
<div class="row hidden-fields extra-fields">
|
||||
<div class="col-lg-4 mb-2">
|
||||
<label>{{__('Account Number')}}</label>
|
||||
<input type="text" name="meta[account_number]" class="form-control" placeholder="{{__('Enter account number')}}">
|
||||
</div>
|
||||
<div class="col-lg-4 mb-2">
|
||||
<label>{{__('Routing Number')}}</label>
|
||||
<input type="text" name="meta[routing_number]" class="form-control" placeholder="{{__('Ex: 500')}}">
|
||||
</div>
|
||||
<div class="col-lg-4 mb-2">
|
||||
<label>{{__('UPI ID for QR Code')}}</label>
|
||||
<input type="text" name="meta[upi_id]" class="form-control" placeholder="{{__('Enter UPI code')}}">
|
||||
</div>
|
||||
<div class="col-lg-4 mb-2">
|
||||
<label>{{__('Bank Name')}}</label>
|
||||
<input type="text" name="meta[bank_name]" class="form-control" placeholder="{{__('Enter bank name')}}">
|
||||
</div>
|
||||
<div class="col-lg-4 mb-2">
|
||||
<label>{{__('Branch Name')}}</label>
|
||||
<input type="text" name="meta[branch]" class="form-control" placeholder="{{__('Enter bank name')}}">
|
||||
</div>
|
||||
<div class="col-lg-4 mb-2">
|
||||
<label>{{__('Account Holder Name')}}</label>
|
||||
<input type="text" name="meta[account_holder]" class="form-control" placeholder="{{__('Enter account holder name')}}">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Button -->
|
||||
<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">
|
||||
<label for="bankDetails" class="form-check-label print-bank">{{__('Print Bank details on invoices')}}
|
||||
<img src='{{ asset('assets/images/icons/alert-circle.svg') }}' alt="" srcset="">
|
||||
</label>
|
||||
</div>
|
||||
<div class="col-lg-12">
|
||||
<div class="button-group text-center mt-5">
|
||||
<button type="reset" class="theme-btn border-btn m-2">{{ __('Reset') }}</button>
|
||||
@usercan('banks.create')
|
||||
<button type="submit" class="theme-btn m-2 submit-btn">{{ __('Save') }}</button>
|
||||
@endusercan
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
131
Modules/Business/resources/views/banks/datas.blade.php
Normal file
131
Modules/Business/resources/views/banks/datas.blade.php
Normal file
@@ -0,0 +1,131 @@
|
||||
<div class="responsive-table m-0">
|
||||
<table class="table" id="datatable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="w-60">
|
||||
<div class="d-flex align-items-center gap-3">
|
||||
<input type="checkbox" class="select-all-delete multi-delete">
|
||||
</div>
|
||||
</th>
|
||||
<th>{{ __('SL') }}.</th>
|
||||
<th class="text-start">{{ __('Account Name') }}</th>
|
||||
<th>{{ __('Account Number') }}</th>
|
||||
<th>{{ __('Bank Name') }}</th>
|
||||
<th>{{ __('Branch Name') }}</th>
|
||||
<th>{{ __('Holder Name') }}</th>
|
||||
<th>{{ __('Balance') }}</th>
|
||||
<th>{{ __('Action') }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
@foreach ($payment_types as $payment_type)
|
||||
<tr>
|
||||
<td class="w-60 checkbox text-start">
|
||||
<input type="checkbox" name="ids[]" class="delete-checkbox-item multi-delete"
|
||||
value="{{ $payment_type->id }}">
|
||||
</td>
|
||||
<td>{{ ($payment_types->currentPage() - 1) * $payment_types->perPage() + $loop->iteration }}</td>
|
||||
<td class="text-start">{{ $payment_type->name }}</td>
|
||||
<td>{{ $payment_type->meta['account_number'] ?? '' }}</td>
|
||||
<td>{{ $payment_type->meta['bank_name'] ?? '' }}</td>
|
||||
<td>{{ $payment_type->meta['branch'] ?? '' }}</td>
|
||||
<td>{{ $payment_type->meta['account_holder'] ?? '' }}</td>
|
||||
<td class="{{ $payment_type->balance < 0 ? 'text-danger' : 'text-success' }}">
|
||||
{{ currency_format($payment_type->balance, currency: business_currency()) }}
|
||||
</td>
|
||||
<td>
|
||||
<div class="dropdown table-action">
|
||||
<button type="button" data-bs-toggle="dropdown">
|
||||
<i class="far fa-ellipsis-v"></i>
|
||||
</button>
|
||||
<ul class="dropdown-menu">
|
||||
@usercan('banks.read')
|
||||
<li>
|
||||
<a href="javascript:void(0)" class="bank-view-btn" data-bs-toggle="modal"
|
||||
data-bs-target="#bank-view" data-name="{{ $payment_type->name }}"
|
||||
data-balance="{{ currency_format($payment_type->balance, currency: business_currency()) }}"
|
||||
data-opening-date="{{ formatted_date($payment_type->opening_date) }}"
|
||||
data-account-number="{{ $payment_type->meta['account_number'] ?? '' }}"
|
||||
data-bank-name="{{ $payment_type->meta['bank_name'] ?? '' }}"
|
||||
data-branch-name="{{ $payment_type->meta['branch'] ?? '' }}"
|
||||
data-routing-number="{{ $payment_type->meta['routing_number'] ?? '' }}"
|
||||
data-upi-id="{{ $payment_type->meta['upi_id'] ?? '' }}"
|
||||
data-account-holder="{{ $payment_type->meta['account_holder'] ?? '' }}"
|
||||
data-show-in-invoice="{{ $payment_type->show_in_invoice }}">
|
||||
<i class="fal fa-eye"></i> {{ __('View') }}
|
||||
</a>
|
||||
</li>
|
||||
@endusercan
|
||||
|
||||
@usercan('banks.read')
|
||||
<li>
|
||||
<a href="{{ route('business.bank-transactions.index', ['payment_type_id' => $payment_type->id]) }}">
|
||||
<i class="fal fa-money-bill"></i> {{ __('Transactions') }}
|
||||
</a>
|
||||
</li>
|
||||
@endusercan
|
||||
|
||||
@usercan('banks.update')
|
||||
<li>
|
||||
<a href="javascript:void(0)" class="bank-edit-btn" data-bs-toggle="modal"
|
||||
data-bs-target="#edit-bank"
|
||||
data-url="{{ route('business.banks.update', $payment_type->id) }}"
|
||||
data-name="{{ $payment_type->name }}"
|
||||
data-opening-balance="{{ $payment_type->opening_balance }}"
|
||||
data-opening-date="{{ $payment_type->opening_date }}"
|
||||
data-account-number="{{ $payment_type->meta['account_number'] ?? '' }}"
|
||||
data-routing-number="{{ $payment_type->meta['routing_number'] ?? '' }}"
|
||||
data-upi-id="{{ $payment_type->meta['upi_id'] ?? '' }}"
|
||||
data-bank-name="{{ $payment_type->meta['bank_name'] ?? '' }}"
|
||||
data-branch-name="{{ $payment_type->meta['branch'] ?? '' }}"
|
||||
data-account-holder="{{ $payment_type->meta['account_holder'] ?? '' }}"
|
||||
data-show-in-invoice="{{ $payment_type->show_in_invoice }}">
|
||||
<i class="fal fa-edit"></i> {{ __('Edit') }}
|
||||
</a>
|
||||
</li>
|
||||
@endusercan
|
||||
|
||||
@usercan('banks.delete')
|
||||
@if (!$payment_type->transactions()->exists() || $payment_type->balance == 0)
|
||||
<li>
|
||||
<a href="{{ route('business.banks.destroy', $payment_type->id) }}"
|
||||
class="delete-bank-action" data-method="DELETE">
|
||||
<i class="fal fa-trash-alt"></i> {{ __('Delete') }}
|
||||
</a>
|
||||
</li>
|
||||
@endif
|
||||
@endusercan
|
||||
</ul>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
|
||||
@php
|
||||
$total_balance = $payment_types->getCollection()->sum('balance');
|
||||
@endphp
|
||||
|
||||
@if ($payment_types->count() > 0)
|
||||
<tfoot>
|
||||
<tr class="table-footer">
|
||||
<td>Total :</td>
|
||||
<td></td>
|
||||
<td class="text-end"></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td class="{{ $total_balance < 0 ? 'text-danger' : 'text-success' }}">
|
||||
{{ currency_format($total_balance, currency: business_currency()) }}
|
||||
</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
@endif
|
||||
</table>
|
||||
</div>
|
||||
<div class="mt-3">
|
||||
{{ $payment_types->links('vendor.pagination.bootstrap-5') }}
|
||||
</div>
|
||||
85
Modules/Business/resources/views/banks/edit.blade.php
Normal file
85
Modules/Business/resources/views/banks/edit.blade.php
Normal file
@@ -0,0 +1,85 @@
|
||||
<div class="modal fade common-validation-modal" id="edit-bank">
|
||||
<div class="modal-dialog modal-dialog-centered modal-lg">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h1 class="modal-title fs-5">{{__('Edit Bank')}}</h1>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="personal-info">
|
||||
<form action="" method="post" class="ajaxform_instant_reload bankUpdateForm">
|
||||
@csrf
|
||||
@method('put')
|
||||
<div class="row">
|
||||
<div class="col-lg-4 mb-2">
|
||||
<label>{{__('Account Display Name balnce')}}</label>
|
||||
<input type="text" name="name" class="form-control" id="name" placeholder="{{__('Enter account display name')}}" required>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-4">
|
||||
<label>{{__('Opening Balance')}}</label>
|
||||
<input type="number" name="opening_balance" id="opening_balance" class="form-control" placeholder="{{__('Ex: 500')}}">
|
||||
</div>
|
||||
|
||||
<div class="col-lg-4">
|
||||
<label>{{__('As of Date')}}</label>
|
||||
<input type="date" name="opening_date" id="opening_date" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
<!-- Hidden extra fields -->
|
||||
<div class="row hidden-fields extra-fields">
|
||||
<div class="col-lg-4 mb-2">
|
||||
<label>{{__('Account Number')}}</label>
|
||||
<input type="text" name="meta[account_number]" id="account_number" class="form-control" placeholder="{{__('Enter account number')}}">
|
||||
</div>
|
||||
|
||||
<div class="col-lg-4 mb-2">
|
||||
<label>{{__('Routing Number')}}</label>
|
||||
<input type="text" name="meta[routing_number]" id="routing_number" class="form-control" placeholder="{{__('Ex: 500') }}">
|
||||
</div>
|
||||
|
||||
<div class="col-lg-4 mb-2">
|
||||
<label>{{__('UPI ID for QR Code')}}</label>
|
||||
<input type="text" name="meta[upi_id]" id="upi_id" class="form-control" placeholder="{{__('Enter UPI code')}}">
|
||||
</div>
|
||||
|
||||
<div class="col-lg-4 mb-2">
|
||||
<label>{{__('Bank Name')}}</label>
|
||||
<input type="text" name="meta[bank_name]" id="bank_name" class="form-control" placeholder="{{__('Enter bank name')}}">
|
||||
</div>
|
||||
|
||||
<div class="col-lg-4 mb-2">
|
||||
<label>{{__('Branch Name')}}</label>
|
||||
<input type="text" name="meta[branch]" id="branch_name" class="form-control" placeholder="{{__('Enter bank name')}}">
|
||||
</div>
|
||||
|
||||
<div class="col-lg-4 mb-2">
|
||||
<label>{{__('Account Holder Name')}}</label>
|
||||
<input type="text" name="meta[account_holder]" id="account_holder" class="form-control" placeholder="{{__('Enter account holder name')}}">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Button -->
|
||||
<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">
|
||||
<label for="show_in_invoice" class="form-check-label print-bank">{{__('Print Bank details on invoices')}}
|
||||
<img src='{{ asset('assets/images/icons/alert-circle.svg') }}' alt="" srcset="">
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-12">
|
||||
<div class="button-group text-center mt-5">
|
||||
<button type="reset" class="theme-btn border-btn m-2">{{__('Reset')}}</button>
|
||||
@usercan('banks.update')
|
||||
<button type="submit" class="theme-btn m-2 submit-btn">{{__('Save')}}</button>
|
||||
@endusercan
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
95
Modules/Business/resources/views/banks/index.blade.php
Normal file
95
Modules/Business/resources/views/banks/index.blade.php
Normal file
@@ -0,0 +1,95 @@
|
||||
@extends('layouts.business.master')
|
||||
|
||||
@section('title')
|
||||
{{ __('Bank List') }}
|
||||
@endsection
|
||||
|
||||
@section('main_content')
|
||||
<div class="erp-table-section">
|
||||
<div class="container-fluid">
|
||||
<div class="card">
|
||||
<div class="card-bodys">
|
||||
<div class="table-header p-16">
|
||||
<h4>{{ __('Bank Accounts') }}</h4>
|
||||
|
||||
<div class="d-flex align-items-center gap-3">
|
||||
<div class="dropdown">
|
||||
<button class="deposit-button" type="button" id="depositWithdrawDropdown" data-bs-toggle="dropdown" aria-expanded="false">
|
||||
{{ __('Deposit & Withdraws') }}
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none"
|
||||
xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M6 9L12 15L18 9" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
</button>
|
||||
<ul class="dropdown-menu" aria-labelledby="depositWithdrawDropdown">
|
||||
<li><a class="dropdown-item" id="bank_to_bank" data-route="{{ route('business.bank-transactions.store') }}">{{__('Bank to Bank Transfer')}}</a></li>
|
||||
<li><a class="dropdown-item" id="bank_to_cash" data-route="{{ route('business.bank-transactions.store') }}">{{__('Bank to Cash Transfer')}}</a></li>
|
||||
<li><a class="dropdown-item" id="adjust_bank" data-route="{{ route('business.bank-transactions.store') }}">{{__('Adjust Bank Balance')}}</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@usercan('banks.create')
|
||||
<a type="button" class="add-order-btn rounded-2 btn btn-primary" data-bs-toggle="modal" data-bs-target="#create-bank">
|
||||
<i class="fas fa-plus-circle me-1"></i> {{__('Add Bank')}}
|
||||
</a>
|
||||
@endusercan
|
||||
</div>
|
||||
</div>
|
||||
<div class="table-top-form p-16-0">
|
||||
<form action="{{ route('business.banks.index') }}" method="GET" class="filter-form" table="#bank-data">
|
||||
|
||||
<div class="table-top-left d-flex gap-3 margin-l-16">
|
||||
<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="table-search position-relative">
|
||||
<input type="text" name="search" class="form-control" placeholder="{{ __('Search...') }}" value="{{ request('search') }}">
|
||||
<span class="position-absolute">
|
||||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none"
|
||||
xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M14.582 14.582L18.332 18.332" stroke="#4D4D4D" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/><path d="M16.668 9.16797C16.668 5.02584 13.3101 1.66797 9.16797 1.66797C5.02584 1.66797 1.66797 5.02584 1.66797 9.16797C1.66797 13.3101 5.02584 16.668 9.16797 16.668C13.3101 16.668 16.668 13.3101 16.668 9.16797Z" stroke="#4D4D4D" stroke-width="1.25" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="delete-item delete-show d-none">
|
||||
<div class="delete-item-show">
|
||||
<p class="fw-bold"><span class="selected-count"></span> {{ __('items show') }}</p>
|
||||
<button data-bs-toggle="modal" class="trigger-modal" data-bs-target="#multi-delete-modal" data-url="{{ route('business.banks.delete-all') }}">{{ __('Delete') }}</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="bank-data">
|
||||
@include('business::banks.datas')
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<input type="hidden" id="get_banks" value="{{ route('business.banks.get') }}">
|
||||
|
||||
@endsection
|
||||
|
||||
@push('modal')
|
||||
@include('business::component.delete-modal')
|
||||
@include('business::banks.create')
|
||||
@include('business::banks.edit')
|
||||
@include('business::banks.view')
|
||||
@include('business::component.transaction')
|
||||
@include('business::banks.warning')
|
||||
@endpush
|
||||
|
||||
@push('js')
|
||||
<script src="{{ asset('assets/js/custom/account.js') }}"></script>
|
||||
@endpush
|
||||
|
||||
@@ -0,0 +1,103 @@
|
||||
@foreach ($transactions as $transaction)
|
||||
<tr>
|
||||
<td>{{ ($transactions->currentPage() - 1) * $transactions->perPage() + $loop->iteration }}</td>
|
||||
<td>{{ formatted_date($transaction->date) }}</td>
|
||||
<td>{{ ucwords(str_replace('_', ' ', $transaction->platform)) }}</td>
|
||||
<td>{{ ucwords(str_replace('_', ' ', $transaction->transaction_type)) }}</td>
|
||||
<td>{{ $transaction->user->name ?? '' }}</td>
|
||||
<td>{{ currency_format($transaction->amount, currency: business_currency()) }}</td>
|
||||
<td>
|
||||
<div class="dropdown table-action">
|
||||
<button type="button" data-bs-toggle="dropdown">
|
||||
<i class="far fa-ellipsis-v"></i>
|
||||
</button>
|
||||
<ul class="dropdown-menu">
|
||||
<li>
|
||||
<a href="javascript:void(0)" class="transaction-view-btn" data-bs-toggle="modal"
|
||||
data-bs-target="#view-transaction"
|
||||
data-img="{{ asset($transaction->image ?? 'assets/img/icon/no-image.svg') }}"
|
||||
data-user="{{ $transaction->user->name ?? '' }}"
|
||||
data-transaction-type="{{ ucwords(str_replace('_', ' ', $transaction->transaction_type)) }}"
|
||||
data-amount="{{ currency_format($transaction->amount, currency: business_currency()) }}"
|
||||
data-date="{{ formatted_date($transaction->date) }}"
|
||||
data-note="{{ $transaction->note }}">
|
||||
<i class="fal fa-eye"></i>
|
||||
{{ __('View') }}
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@php
|
||||
$editConfig = null;
|
||||
|
||||
if ($transaction->platform === 'bank') {
|
||||
$editConfig = [
|
||||
'url' => 'javascript:void(0)',
|
||||
'is_bank' => true,
|
||||
'attrs' => [
|
||||
'class' => 'edit-transaction',
|
||||
'data-route' => route('business.bank-transactions.update', $transaction->id),
|
||||
'data-id' => $transaction->id,
|
||||
'data-transaction_type' => $transaction->transaction_type,
|
||||
'data-from' => $transaction->from_bank,
|
||||
'data-to' => $transaction->to_bank,
|
||||
'data-type' => $transaction->type,
|
||||
'data-amount' => $transaction->amount,
|
||||
'data-date' => $transaction->date,
|
||||
'data-note' => $transaction->note,
|
||||
'data-image' => $transaction->image ? asset($transaction->image) : asset('assets/images/products/box.svg'),
|
||||
],
|
||||
];
|
||||
} elseif ($transaction->platform === 'cash') {
|
||||
$editConfig = ['url' => route('business.cashes.index')];
|
||||
} elseif ($transaction->platform === 'cheque') {
|
||||
$editConfig = ['url' => route('business.cheques.index')];
|
||||
} elseif ($transaction->platform === 'sale') {
|
||||
$editConfig = ['url' => route('business.sales.index')];
|
||||
} elseif ($transaction->platform === 'purchase') {
|
||||
$editConfig = ['url' => route('business.purchases.index')];
|
||||
} elseif ($transaction->platform === 'income' && $transaction->reference_id) {
|
||||
$editConfig = ['url' => route('business.incomes.edit', $transaction->reference_id)];
|
||||
}elseif ($transaction->platform === 'expense' && $transaction->reference_id) {
|
||||
$editConfig = ['url' => route('business.expenses.edit', $transaction->reference_id)];
|
||||
}elseif ($transaction->platform === 'sale_return') {
|
||||
$editConfig = ['url' => route('business.sale-returns.index')];
|
||||
}elseif ($transaction->platform === 'purchase_return') {
|
||||
$editConfig = ['url' => route('business.purchase-returns.index')];
|
||||
}elseif ($transaction->platform === 'due_collect') {
|
||||
$editConfig = ['url' => route('business.dues.index')];
|
||||
}elseif ($transaction->platform === 'due_pay') {
|
||||
$editConfig = ['url' => route('business.dues.index')];
|
||||
}
|
||||
@endphp
|
||||
|
||||
{{-- Edit will be available only for bankplatform --}}
|
||||
@if($editConfig)
|
||||
<li>
|
||||
@if(!empty($editConfig['is_bank']))
|
||||
{{-- Bank transactions (open edit modal via JS) --}}
|
||||
<a href="{{ $editConfig['url'] }}"
|
||||
@foreach($editConfig['attrs'] as $key => $value)
|
||||
{{ $key }}="{{ $value }}"
|
||||
@endforeach>
|
||||
<i class="fal fa-edit"></i> {{ __('Edit') }}
|
||||
</a>
|
||||
@else
|
||||
{{-- Other types (open edit page) --}}
|
||||
<a href="{{ $editConfig['url'] }}">
|
||||
<i class="fal fa-edit"></i> {{ __('Edit') }}
|
||||
</a>
|
||||
@endif
|
||||
</li>
|
||||
@endif
|
||||
<li>
|
||||
<a href="{{ route('business.bank-transactions.destroy', $transaction->id) }}"
|
||||
class="confirm-action" data-method="DELETE">
|
||||
<i class="fal fa-trash-alt"></i>
|
||||
{{ __('Delete') }}
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
@@ -0,0 +1,132 @@
|
||||
@extends('layouts.business.master')
|
||||
|
||||
@section('title')
|
||||
{{ __('Bank List') }}
|
||||
@endsection
|
||||
|
||||
@section('main_content')
|
||||
<div class="erp-table-section">
|
||||
<div class="container-fluid">
|
||||
<div class="card">
|
||||
<div class="card-bodys">
|
||||
<div class="table-header p-16">
|
||||
<div class="d-flex align-items-center gap-5 flex-wrap">
|
||||
<div class="balance-card p-3">
|
||||
<h4>
|
||||
{{ currency_format($payment_type->balance, currency: business_currency()) }}
|
||||
</h4>
|
||||
<p>{{ __('Balance') }}</p>
|
||||
</div>
|
||||
<div class="bank-details">
|
||||
<h4>{{ $payment_type->meta['bank_name'] ?? '' }}</h4>
|
||||
<div class="d-flex align-items-center gap-5 mt-3">
|
||||
<div>
|
||||
<p>{{ __('Account Name') }}</p>
|
||||
<h6>{{ $payment_type->name ?? 'N/A' }}</h6>
|
||||
</div>
|
||||
<div>
|
||||
<p>{{ __('Account Number') }}</p>
|
||||
<h6>{{ $payment_type->meta['account_number'] ?? 'N/A' }}</h6>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="table-top-form p-16-0">
|
||||
<form action="{{ route('business.bank-transactions.filter', ['payment_type_id' => $payment_type->id]) }}"
|
||||
method="post" class="filter-form" table="#transactions-data">
|
||||
@csrf
|
||||
<div class="table-top-left d-flex gap-3 margin-l-16">
|
||||
<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="table-search position-relative">
|
||||
<input type="text" name="search" class="form-control"
|
||||
placeholder="{{ __('Search...') }}">
|
||||
<span class="position-absolute">
|
||||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none"
|
||||
xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M14.582 14.582L18.332 18.332" stroke="#4D4D4D" stroke-width="1.25"
|
||||
stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M16.668 9.16797C16.668 5.02584 13.3101 1.66797 9.16797 1.66797C5.02584 1.66797 1.66797 5.02584 1.66797 9.16797C1.66797 13.3101 5.02584 16.668 9.16797 16.668C13.3101 16.668 16.668 13.3101 16.668 9.16797Z"
|
||||
stroke="#4D4D4D" stroke-width="1.25" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
</span>
|
||||
</div>
|
||||
<div class="custom-from-to 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">
|
||||
</div>
|
||||
<div class="custom-from-to align-items-center date-filters d-none">
|
||||
<label class="header-label">{{ __('To Date') }}</label>
|
||||
<input type="date" name="to_date" value="{{ now()->format('Y-m-d') }}"
|
||||
class="form-control">
|
||||
</div>
|
||||
<div class="gpt-up-down-arrow position-relative d-print-none custom-date-filter">
|
||||
<select name="custom_days" class="form-control custom-days">
|
||||
<option value="today">{{__('Today')}}</option>
|
||||
<option value="yesterday">{{__('Yesterday')}}</option>
|
||||
<option value="last_seven_days">{{__('Last 7 Days')}}</option>
|
||||
<option value="last_thirty_days">{{__('Last 30 Days')}}</option>
|
||||
<option value="current_month">{{__('Current Month')}}</option>
|
||||
<option value="last_month">{{__('Last Month')}}</option>
|
||||
<option value="current_year">{{__('Current Year')}}</option>
|
||||
<option value="custom_date">{{__('Custom Date')}}</option>
|
||||
</select>
|
||||
<span></span>
|
||||
<div class="calendar-icon">
|
||||
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M12.6667 2.67188H3.33333C2.59695 2.67188 2 3.26883 2 4.00521V13.3385C2 14.0749 2.59695 14.6719 3.33333 14.6719H12.6667C13.403 14.6719 14 14.0749 14 13.3385V4.00521C14 3.26883 13.403 2.67188 12.6667 2.67188Z" stroke="#4B5563" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M10.6641 1.32812V3.99479" stroke="#4B5563" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M5.33594 1.32812V3.99479" stroke="#4B5563" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M2 6.67188H14" stroke="#4B5563" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="responsive-table m-0">
|
||||
<table class="table" id="datatable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{{ __('SL') }}.</th>
|
||||
<th>{{ __('Date') }}</th>
|
||||
<th>{{ __('Type') }}</th>
|
||||
<th>{{ __('Payment') }}</th>
|
||||
<th>{{ __('Name') }}</th>
|
||||
<th>{{ __('Amount') }}</th>
|
||||
<th>{{ __('Action') }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="transactions-data">
|
||||
@include('business::banks.transactions.datas')
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="mt-3">
|
||||
{{ $transactions->links('vendor.pagination.bootstrap-5') }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<input type="hidden" id="get_banks" value="{{ route('business.banks.get') }}">
|
||||
@endsection
|
||||
|
||||
@push('modal')
|
||||
@include('business::component.transaction')
|
||||
@include('business::banks.transactions.view')
|
||||
@endpush
|
||||
|
||||
@push('js')
|
||||
<script src="{{ asset('assets/js/custom/account.js') }}"></script>
|
||||
@endpush
|
||||
@@ -0,0 +1,60 @@
|
||||
<div class="modal fade p-0" id="view-transaction">
|
||||
<div class="modal-dialog modal-dialog-centered modal-md">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h1 class="modal-title fs-5">{{ __('View Details') }}</h1>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="modal-body order-form-section">
|
||||
<table class="info-table">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>{{ __('Transaction Image') }}</td>
|
||||
<td>:</td>
|
||||
<td>
|
||||
<img class="table-img" id="view_img" src="">
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>{{ __('Transaction By') }}</td>
|
||||
<td>:</td>
|
||||
<td id="view_user"></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>{{ __('Transaction Type') }}</td>
|
||||
<td>:</td>
|
||||
<td id="view_transaction_type"></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>{{ __('Platform') }}</td>
|
||||
<td>:</td>
|
||||
<td id="view_platform"></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>{{ __('Amount') }}</td>
|
||||
<td>:</td>
|
||||
<td id="view_amount"></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>{{ __('Date') }}</td>
|
||||
<td>:</td>
|
||||
<td id="view_date"></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>{{ __('Note') }}</td>
|
||||
<td>:</td>
|
||||
<td id="view_note"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
67
Modules/Business/resources/views/banks/view.blade.php
Normal file
67
Modules/Business/resources/views/banks/view.blade.php
Normal file
@@ -0,0 +1,67 @@
|
||||
<div class="modal fade p-0" id="bank-view">
|
||||
<div class="modal-dialog modal-dialog-centered modal-md">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h1 class="modal-title fs-5">{{ __('View Details') }}</h1>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="modal-body order-form-section">
|
||||
<table class="info-table">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>{{ __('Account Name') }}</td>
|
||||
<td>:</td>
|
||||
<td id="view_account_name"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{ __('Amount') }}</td>
|
||||
<td>:</td>
|
||||
<td id="view_balance"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{ __('Bank Name') }}</td>
|
||||
<td>:</td>
|
||||
<td id="view_bank_name"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{ __('Branch Name') }}</td>
|
||||
<td>:</td>
|
||||
<td id="view_branch_name"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{ __('Holder Name') }}</td>
|
||||
<td>:</td>
|
||||
<td id="view_account_holder"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{ __('Account Number') }}</td>
|
||||
<td>:</td>
|
||||
<td id="view_account_number"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{ __('Routing Number') }}</td>
|
||||
<td>:</td>
|
||||
<td id="view_routing_number"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{ __('UPI ID') }}</td>
|
||||
<td>:</td>
|
||||
<td id="view_upi_id"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{ __('Show In Invoice') }}</td>
|
||||
<td>:</td>
|
||||
<td id="view_show_in_invoice"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{ __('As Of Date') }}</td>
|
||||
<td>:</td>
|
||||
<td id="view_opening_date"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
18
Modules/Business/resources/views/banks/warning.blade.php
Normal file
18
Modules/Business/resources/views/banks/warning.blade.php
Normal file
@@ -0,0 +1,18 @@
|
||||
<div class="modal fade common-validation-modal" id="warning-modal">
|
||||
<div class="modal-dialog modal-dialog-centered">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header border-0">
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div>
|
||||
<div class="d-flex align-items-center justify-content-center">
|
||||
<img src="{{ asset('assets/web/images/icons/warning.svg') }}" alt="" srcset="">
|
||||
</div>
|
||||
<p class="text-center mt-3 warning-text">{{__('This bank account can not be deleted as it already has
|
||||
transactions. Please delete all transactions other than bank entries before deleting the account.')}}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,151 @@
|
||||
@extends('layouts.business.master')
|
||||
|
||||
@section('main_content')
|
||||
<div class="min-vh-100">
|
||||
<div class="erp-table-section order-form-section">
|
||||
<div class="container-fluid">
|
||||
<div class="card">
|
||||
<div class="card-bodys">
|
||||
<div class="table-header barcode-header p-16">
|
||||
<h4>{{ __('Barcode Generate') }}</h4>
|
||||
</div>
|
||||
<form action="{{ route('business.barcodes.store') }}" class="barcodeForm p-3">
|
||||
@csrf
|
||||
<label>{{ __('Select Product') }}</label>
|
||||
<div class="search-container">
|
||||
<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">
|
||||
<table class="table table-bordered text-center">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="border barcode-table-th">{{ __('Items') }}</th>
|
||||
<th class="border barcode-table-th">{{ __('Code') }}</th>
|
||||
<th class="border barcode-table-th">{{ __('Batch') }}</th>
|
||||
<th class="border barcode-table-th">{{ __('Available Stock') }}</th>
|
||||
<th class="border barcode-table-th">{{ __('Qty / No of label') }}</th>
|
||||
<th class="border barcode-table-th">{{ __('Packing Date') }}</th>
|
||||
<th class="border barcode-table-th">{{ __('Action') }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="product-list">
|
||||
{{-- Dynamicaly load --}}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
{{-- --------------- table end --------------- --}}
|
||||
<div class="table-header p-16 mt-4 mb-3">
|
||||
<h4>{{ __('Information to show in labels') }}</h4>
|
||||
</div>
|
||||
<div class="row g-3 barcode-info-row">
|
||||
<div class="col-lg-3">
|
||||
<div class="d-flex align-items-center gap-2 mb-2">
|
||||
<input type="checkbox" name="business_name" class="select-all-delete multi-delete" checked>
|
||||
<p>{{ __('Business Name') }}</p>
|
||||
</div>
|
||||
|
||||
<div class="d-flex align-items-center barcode-info">
|
||||
<h5>{{ __('Size') }}</h5>
|
||||
<input type="number" name="business_name_size" class="form-control" value="15" placeholder="{{__('15')}}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-3">
|
||||
<div class="d-flex align-items-center gap-2 mb-2">
|
||||
<input type="checkbox" name="product_name" class="select-all-delete multi-delete" checked>
|
||||
<p>{{ __('Product Name') }}</p>
|
||||
</div>
|
||||
|
||||
<div class="d-flex align-items-center barcode-info">
|
||||
<h5>{{ __('Size') }}</h5>
|
||||
<input type="number" name="product_name_size" class="form-control" value="15" placeholder="{{__('15')}}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-3">
|
||||
<div class="d-flex align-items-center gap-2 mb-2">
|
||||
<input type="checkbox" name="product_price" class="select-all-delete multi-delete" checked>
|
||||
<p>{{ __('Product Price') }}</p>
|
||||
</div>
|
||||
<div class="d-flex align-items-center barcode-info">
|
||||
<h5>{{ __('Size') }}</h5>
|
||||
<input type="number" name="product_price_size" class="form-control" value="14" placeholder="{{__('14')}}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-3">
|
||||
<div class="d-flex align-items-center gap-2 mb-2">
|
||||
<input type="checkbox" name="product_code" class="select-all-delete multi-delete" checked>
|
||||
<p>{{ __('Product Code') }}</p>
|
||||
</div>
|
||||
<div class="d-flex align-items-center barcode-info">
|
||||
<h5>{{ __('Size') }}</h5>
|
||||
<input type="number" name="product_code_size" class="form-control" value="14" placeholder="{{__('14')}}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-3">
|
||||
<div class="d-flex align-items-center gap-2 mb-2">
|
||||
<input type="checkbox" name="pack_date" class="select-all-delete multi-delete" checked>
|
||||
<p>{{ __('Print packing date') }}</p>
|
||||
</div>
|
||||
|
||||
<div class="d-flex align-items-center barcode-info">
|
||||
<h5>{{ __('Size') }}</h5>
|
||||
<input type="number" name="pack_date_size" class="form-control" value="12" placeholder="{{__('12')}}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-3">
|
||||
<div class="d-flex align-items-center gap-2 mb-2">
|
||||
<p>{{ __('Show Price') }}</p>
|
||||
</div>
|
||||
<div class="gpt-up-down-arrow position-relative">
|
||||
<select name="vat_type" class="form-control">
|
||||
<option value="inclusive"> {{ __('Inc. tax') }}</option>
|
||||
<option value="exclusive"> {{ __('Exc. tax') }}</option>
|
||||
</select>
|
||||
<span></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-3">
|
||||
<div class="d-flex align-items-center gap-2 mb-2">
|
||||
<p>{{ __('Barcode Type *') }}</p>
|
||||
</div>
|
||||
<div class="gpt-up-down-arrow position-relative">
|
||||
<select name="barcode_type" class="form-control">
|
||||
@foreach ($barcode_types as $type)
|
||||
<option value="{{ $type['value'] }}" @selected($type['value'] == 'C128')>
|
||||
{{ __($type['value']) }}
|
||||
</option>
|
||||
@endforeach
|
||||
</select>
|
||||
<span></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<div class="d-flex align-items-center gap-2 mb-2">
|
||||
<p>{{ __('Barcode Print Paper Setting') }}</p>
|
||||
</div>
|
||||
<div class="gpt-up-down-arrow position-relative">
|
||||
<select name="barcode_setting" class="form-control">
|
||||
<option value="2">{{__('Labels Roll-Label Size 2"x1", 50mmx25mm, Gap:3.1mm')}}</option>
|
||||
<option value="1">{{__('Labels Roll-Label Size 1.5"x1", 38mmx25mm, Gap:3.1mm')}}</option>
|
||||
<option value="3">{{__('28 Labels Per Sheet, Sheet Size: 8.27" X 11.69", Label size: 2" X 1.25"')}}</option>
|
||||
</select>
|
||||
<span></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-12 d-flex justify-content-center mt-4">
|
||||
@usercan('barcodes.create')
|
||||
<button class="theme-btn m-2 submit-btn barcode-preview-btn" id="barcode-preview-btn">{{ __('Preview') }}</button>
|
||||
@endusercan
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<input type="hidden" id="fetch-products-route" value="{{ route('business.barcodes.products') }}">
|
||||
<input type="hidden" id="asset_base_url" value="{{ url('/') }}">
|
||||
|
||||
@endsection
|
||||
@@ -0,0 +1,56 @@
|
||||
@extends('layouts.business.blank')
|
||||
|
||||
@section('title')
|
||||
{{ __('Invoice') }}
|
||||
@endsection
|
||||
@push('css')
|
||||
@if ($printer == 1)
|
||||
<link rel="stylesheet" href="{{ asset('assets/css/label-38mm-25mm.css') }}">
|
||||
@elseif ($printer == 2)
|
||||
<link rel="stylesheet" href="{{ asset('assets/css/label-50mm-25mm.css') }}">
|
||||
@else
|
||||
<link rel="stylesheet" href="{{ asset('assets/css/label-a4.css') }}">
|
||||
@endif
|
||||
@endpush
|
||||
@section('main_content')
|
||||
<div id="barcodePrintArea">
|
||||
<div class="barcode-print-container">
|
||||
@foreach ($generatedBarcodes ?? [] as $barcode)
|
||||
<div class="print-label pt-1">
|
||||
@if ($barcode['show_business_name'])
|
||||
<p style="font-size: {{ $barcode['business_name_size'] }}px;" class="product-name">
|
||||
{{ $barcode['business_name'] }}
|
||||
</p>
|
||||
@endif
|
||||
@if ($barcode['show_product_name'])
|
||||
<p style="font-size: {{ $barcode['product_name_size'] }}px;" class="product-name">
|
||||
{{ $barcode['product_name'] }}
|
||||
</p>
|
||||
@endif
|
||||
@if ($barcode['show_product_price'])
|
||||
<p style="font-size: {{ $barcode['product_price_size'] }}px;" class="product-price">
|
||||
{{__('Price')}}: <span>{{ currency_format($barcode['product_price'], currency:business_currency()) }}</span>
|
||||
</p>
|
||||
@endif
|
||||
@if ($barcode['show_pack_date'] && ($barcode['packing_date'] ?? false))
|
||||
<span style="font-size: {{ $barcode['pack_date_size'] }}px;">
|
||||
{{__('Packing Date')}}: {{ $barcode['packing_date'] }}
|
||||
</span>
|
||||
@endif
|
||||
<img class="barcode" src="data:image/png;base64,{{ base64_encode($barcode['barcode_svg']) }}" alt="Barcode Image">
|
||||
@if ($barcode['show_product_code'])
|
||||
<span style="font-size: {{ $barcode['product_code_size'] }}px;" class="pt-1">
|
||||
{{ $barcode['product_code'] }}
|
||||
</span>
|
||||
@endif
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
<script>
|
||||
window.onload = function () {
|
||||
window.print();
|
||||
};
|
||||
</script>
|
||||
@@ -0,0 +1,82 @@
|
||||
@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>{{ __('SL') }}.</th>
|
||||
<th>{{ __('Date') }}</th>
|
||||
<th>{{ __('Invoice') }}</th>
|
||||
<th>{{ __('Party Name') }}</th>
|
||||
<th>{{ __('Sale Amount') }}</th>
|
||||
<th>{{ __('Profit') }}</th>
|
||||
<th>{{ __('Loss') }}</th>
|
||||
<th class="d-print-none">{{ __('Action') }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach ($profits as $profit)
|
||||
<tr>
|
||||
<td>{{ ($profits->currentPage() - 1) * $profits->perPage() + $loop->iteration }}</td>
|
||||
<td>{{ formatted_date($profit->saleDate) }}</td>
|
||||
<td>{{ $profit->invoiceNumber }}</td>
|
||||
<td>{{ $profit->party->name ?? '' }}</td>
|
||||
<td>{{ currency_format($profit->totalAmount, currency: business_currency()) }}</td>
|
||||
<td>
|
||||
{{ $profit->lossProfit > 0 ? currency_format($profit->lossProfit, currency: business_currency()) : '' }}
|
||||
</td>
|
||||
<td class="text-danger">
|
||||
{{ $profit->lossProfit < 0 ? currency_format(abs($profit->lossProfit), currency: business_currency()) : '' }}
|
||||
</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>
|
||||
<ul class="dropdown-menu">
|
||||
<li>
|
||||
@usercan('loss-profits.read')
|
||||
<a href="#loss-profit-view" class="loss-profit-view" data-id="{{ $profit->id }}"
|
||||
data-bs-toggle="modal">
|
||||
<i class="fal fa-eye"></i>
|
||||
{{ __('View') }}
|
||||
</a>
|
||||
@endusercan
|
||||
</li>
|
||||
<input type="hidden" value="{{ route('business.bill-wise-profits.show', ['bill_wise_profit' => ':id']) }}" id="loss-profit-id">
|
||||
</ul>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
@if ($profits->count() > 0)
|
||||
<tr>
|
||||
<td class="fw-bold">{{__('Total')}}</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td class="fw-bold">{{ currency_format($profits->sum('totalAmount'), currency: business_currency()) }}</td>
|
||||
<td class="fw-bold text-success">{{ currency_format($profits->where('lossProfit', '>', 0)->sum('lossProfit'), currency: business_currency()) }}</td>
|
||||
<td class="fw-bold text-danger">{{ currency_format(abs($profits->where('lossProfit', '<', 0)->sum('lossProfit')), currency: business_currency()) }}</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
@endif
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div class="mt-3">
|
||||
{{ $profits->links('vendor.pagination.bootstrap-5') }}
|
||||
</div>
|
||||
@@ -0,0 +1,42 @@
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{{ __('SL') }}.</th>
|
||||
<th>{{ __('Date') }}</th>
|
||||
<th>{{ __('Invoice') }}</th>
|
||||
<th>{{ __('Party Name') }}</th>
|
||||
<th>{{ __('Sale Amount') }}</th>
|
||||
<th>{{ __('Profit') }}</th>
|
||||
<th>{{ __('Loss') }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach ($profits as $profit)
|
||||
<tr>
|
||||
<td>{{ $loop->iteration }}</td>
|
||||
<td>{{ formatted_date($profit->saleDate) }}</td>
|
||||
<td>{{ $profit->invoiceNumber }}</td>
|
||||
<td>{{ $profit->party->name ?? '' }}</td>
|
||||
<td>{{ currency_format($profit->totalAmount, currency: business_currency()) }}</td>
|
||||
<td>
|
||||
{{ $profit->lossProfit > 0 ? currency_format($profit->lossProfit, currency: business_currency()) : '' }}
|
||||
</td>
|
||||
<td class="text-danger">
|
||||
{{ $profit->lossProfit < 0 ? currency_format(abs($profit->lossProfit), currency: business_currency()) : '' }}
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
@if ($profits->count() > 0)
|
||||
<tr>
|
||||
<td>{{__('Total')}}</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td>{{ currency_format($profits->sum('totalAmount'), currency: business_currency()) }}</td>
|
||||
<td>{{ currency_format($profits->where('lossProfit', '>', 0)->sum('lossProfit'), currency: business_currency()) }}</td>
|
||||
<td>{{ currency_format(abs($profits->where('lossProfit', '<', 0)->sum('lossProfit')), currency: business_currency()) }}</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
@endif
|
||||
</table>
|
||||
@@ -0,0 +1,148 @@
|
||||
@extends('layouts.business.master')
|
||||
|
||||
@section('title')
|
||||
{{ __('Bill Wise Profit & Loss') }}
|
||||
@endsection
|
||||
|
||||
@section('main_content')
|
||||
<div class="erp-table-section">
|
||||
<div class="container-fluid">
|
||||
<div class="card">
|
||||
<div class="card-bodys">
|
||||
<div class="table-header p-16 d-print-none">
|
||||
<h4>{{ __('Bill Wise Profit & Loss') }}</h4>
|
||||
</div>
|
||||
|
||||
<div class="table-header justify-content-center border-0 d-none d-block d-print-block text-center mb-3">
|
||||
@include('business::print.header')
|
||||
<h4 class="mt-2">{{ __('Bill Wise Profit & Loss') }}</h4>
|
||||
</div>
|
||||
|
||||
<div class="loss-profit-container d-print-none">
|
||||
<div class="row">
|
||||
|
||||
<div class="col-lg-2 col-md-6 ">
|
||||
<div class="loss-card p-3 m-2 text-white">
|
||||
<p class="stat-title">{{ __('Sales Amount') }}</p>
|
||||
<p class="stat-value" id="total_sale_amount" >{{ currency_format($total_sale_amount, currency: business_currency()) }}</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-2 col-md-12 ">
|
||||
<div class=" profit-card p-3 m-2 text-white">
|
||||
<p class="stat-title">{{ __('Loss') }}</p>
|
||||
<p class="stat-value" id="total_loss">{{ currency_format($loss, currency: 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">{{ __('Profit') }}</p>
|
||||
<p class="stat-value" id="total_profit">{{ currency_format($profit, currency: business_currency()) }}</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="table-top-form p-16-0">
|
||||
<form action="{{ route('business.bill-wise-profits.index') }}" method="GET" class="report-filter-form d-print-none" table="#bill-wise-profit-data">
|
||||
|
||||
<div class="table-top-left d-flex gap-3 margin-l-16">
|
||||
<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="table-search position-relative">
|
||||
<input type="text" name="search" class="form-control" placeholder="{{ __('Search...') }}" value="{{ request('search') }}">
|
||||
<span class="position-absolute">
|
||||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M14.582 14.582L18.332 18.332" stroke="#4D4D4D" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M16.668 9.16797C16.668 5.02584 13.3101 1.66797 9.16797 1.66797C5.02584 1.66797 1.66797 5.02584 1.66797 9.16797C1.66797 13.3101 5.02584 16.668 9.16797 16.668C13.3101 16.668 16.668 13.3101 16.668 9.16797Z" stroke="#4D4D4D" stroke-width="1.25" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
</span>
|
||||
</div>
|
||||
<div class="custom-from-to align-items-center date-filters d-none">
|
||||
<label class="header-label">{{ __('From Date') }}</label>
|
||||
<input type="date" name="from_date" value="{{ request('from_date') ?? now()->format('Y-m-d') }}" class="form-control">
|
||||
</div>
|
||||
<div class="custom-from-to align-items-center date-filters d-none">
|
||||
<label class="header-label">{{ __('To Date') }}</label>
|
||||
<input type="date" name="to_date" value="{{ request('to_date') ?? now()->format('Y-m-d') }}" class="form-control">
|
||||
</div>
|
||||
<div class="gpt-up-down-arrow position-relative d-print-none custom-date-filter">
|
||||
<select name="custom_days" class="form-control custom-days">
|
||||
<option value="today" {{ request()->get('custom_days') == 'today' ? 'selected' : '' }}>{{ __('Today') }}</option>
|
||||
<option value="yesterday" {{ request()->get('custom_days') == 'yesterday' ? 'selected' : '' }}>{{ __('Yesterday') }}</option>
|
||||
<option value="last_seven_days" {{ request()->get('custom_days') == 'last_seven_days' ? 'selected' : '' }}>{{ __('Last 7 Days') }}</option>
|
||||
<option value="last_thirty_days" {{ request()->get('custom_days') == 'last_thirty_days' ? 'selected' : '' }}>{{ __('Last 30 Days') }}</option>
|
||||
<option value="current_month" {{ request()->get('custom_days') == 'current_month' ? 'selected' : '' }}>{{ __('Current Month') }}</option>
|
||||
<option value="last_month" {{ request()->get('custom_days') == 'last_month' ? 'selected' : '' }}>{{ __('Last Month') }}</option>
|
||||
<option value="current_year" {{ request()->get('custom_days') == 'current_year' ? 'selected' : '' }}>{{ __('Current Year') }}</option>
|
||||
<option value="custom_date" {{ request()->get('custom_days') == 'custom_date' ? 'selected' : '' }}>{{ __('Custom Date') }}</option>
|
||||
</select>
|
||||
<span></span>
|
||||
<div class="calendar-icon">
|
||||
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M12.6667 2.67188H3.33333C2.59695 2.67188 2 3.26883 2 4.00521V13.3385C2 14.0749 2.59695 14.6719 3.33333 14.6719H12.6667C13.403 14.6719 14 14.0749 14 13.3385V4.00521C14 3.26883 13.403 2.67188 12.6667 2.67188Z" stroke="#4B5563" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M10.6641 1.32812V3.99479" stroke="#4B5563" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M5.33594 1.32812V3.99479" stroke="#4B5563" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M2 6.67188H14" stroke="#4B5563" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
</div>
|
||||
</div>
|
||||
<div class="gpt-up-down-arrow position-relative">
|
||||
<select name="party_id" class="form-control">
|
||||
<option value="">{{__('All Customer')}}</option>
|
||||
<option value="Guest">{{__('Guest')}}</option>
|
||||
@foreach ($parties as $party)
|
||||
<option @selected(request('party_id') == $party->id) value="{{ $party->id }}">{{ $party->name }}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
<span></span>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<div class="table-top-btn-group d-print-none p-2">
|
||||
<ul>
|
||||
<li>
|
||||
<a href="{{ route('business.bill-wise-profits.csv') }}">
|
||||
<img src="{{ asset('assets/images/logo/csv.svg') }}" alt="">
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="{{ route('business.bill-wise-profits.excel') }}">
|
||||
<img src="{{ asset('assets/images/logo/excel.svg') }}" alt="">
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="blank" href="{{ route('business.bill-wise-profits.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>
|
||||
|
||||
<div id="bill-wise-profit-data">
|
||||
@include('business::bill-wise-profits.datas')
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@push('modal')
|
||||
@include('business::bill-wise-profits.view')
|
||||
@endpush
|
||||
@@ -0,0 +1,71 @@
|
||||
@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;" class="">{{ __('Bill Wise Profit & Loss') }}</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
|
||||
|
||||
@section('pdf_content')
|
||||
<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>
|
||||
<th style="border:1px solid gainsboro; color:white;" class="text-start">{{ __('Invoice') }}</th>
|
||||
<th style="border:1px solid gainsboro; color:white;" class="text-start">{{ __('Party Name') }}</th>
|
||||
<th style="border:1px solid gainsboro; color:white;" class="text-start">{{ __('Sale Amount') }}</th>
|
||||
<th style="border:1px solid gainsboro; color:white;" class="text-start">{{ __('Profit') }}</th>
|
||||
<th style="border:1px solid gainsboro; color:white;" class="text-start">{{ __('Loss') }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tbody>
|
||||
@foreach ($profits as $profit)
|
||||
<tr style="background-color: {{ $loop->even ? '#F5F5F5' : '#FFFFFF' }};">
|
||||
<td style="border:1px solid gainsboro; text-align:center;">
|
||||
{{ formatted_date($profit->saleDate) }}
|
||||
</td>
|
||||
<td style="border:1px solid gainsboro; text-align:center;">
|
||||
{{ $profit->invoiceNumber }}
|
||||
</td>
|
||||
<td style="border:1px solid gainsboro; text-align:center;">
|
||||
{{ $profit->party->name ?? '' }}
|
||||
</td>
|
||||
<td style="border:1px solid gainsboro; text-align:center;">
|
||||
{{ currency_format($profit->totalAmount, currency: business_currency()) }}
|
||||
</td>
|
||||
<td style="border:1px solid gainsboro; text-align:center;">
|
||||
{{ $profit->lossProfit > 0 ? currency_format($profit->lossProfit, currency: business_currency()) : '' }}
|
||||
</td>
|
||||
<td style="border:1px solid gainsboro; text-align:center;">
|
||||
{{ $profit->lossProfit < 0 ? currency_format(abs($profit->lossProfit), currency: business_currency()) : '' }}
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
@if ($profits->count() > 0)
|
||||
<tfoot>
|
||||
<tr style="background-color:#C52127; color:#FFFFFF; font-weight:bold;">
|
||||
<td style="border:1px solid gainsboro; text-align:center; color: white">
|
||||
{{ __('Total') }}
|
||||
</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($profits->sum('totalAmount'), currency: business_currency()) }}
|
||||
</td>
|
||||
<td style="border:1px solid gainsboro; text-align:center; color: white; font-weight: 600;">
|
||||
{{ currency_format($profits->where('lossProfit', '>', 0)->sum('lossProfit'), currency: business_currency()) }}
|
||||
</td>
|
||||
<td style="border:1px solid gainsboro; text-align:center; color: white; font-weight: 600;">
|
||||
{{ currency_format(abs($profits->where('lossProfit', '<', 0)->sum('lossProfit')), currency: business_currency()) }}
|
||||
</td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
@endif
|
||||
</table>
|
||||
@endsection
|
||||
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
<div class="modal fade p-0" id="loss-profit-view">
|
||||
<div class="modal-dialog modal-dialog-centered modal-lg">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h1 class="modal-title fs-5">{{ __('Invoice: S01 - Demo User') }}</h1>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="modal-body order-form-section">
|
||||
<div class="costing-list">
|
||||
<div class="responsive-table min-h-0 m-0">
|
||||
<table class="table" id="datatable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{{ __('SL') }}.</th>
|
||||
<th class="text-start">{{ __('Item Name') }}</th>
|
||||
<th class="text-start">{{ __('Batch No') }}</th>
|
||||
<th class="text-start">{{ __('Quantity') }}</th>
|
||||
<th class="text-start">{{ __('Purchases') }}</th>
|
||||
<th class="text-start">{{ __('Sale Price') }}</th>
|
||||
<th class="text-start">{{ __('Profit') }}</th>
|
||||
<th class="text-start">{{ __('Loss') }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<!-- Data will be dynamically injected here -->
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
51
Modules/Business/resources/views/brands/create.blade.php
Normal file
51
Modules/Business/resources/views/brands/create.blade.php
Normal file
@@ -0,0 +1,51 @@
|
||||
|
||||
<div class="modal fade common-validation-modal" id="brand-create-modal">
|
||||
<div class="modal-dialog modal-dialog-centered">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h1 class="modal-title fs-5">{{ __('Create Brand') }}</h1>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="personal-info">
|
||||
<form action="{{ route('business.brands.store') }}" method="post" enctype="multipart/form-data"
|
||||
class="ajaxform_instant_reload">
|
||||
@csrf
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-12 mb-2">
|
||||
<label>{{ __('Brand Name') }}</label>
|
||||
<input type="text" name="brandName" required class="form-control" placeholder="{{ __('Enter Brand Name') }}">
|
||||
</div>
|
||||
|
||||
<div class="col-lg-12">
|
||||
<label>{{ __('Icon') }}</label>
|
||||
<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>
|
||||
<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 class="col-lg-12 mt-1">
|
||||
<label>{{__('Description')}}</label>
|
||||
<textarea name="description" class="form-control" placeholder="{{ __('Enter Description') }}"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-12">
|
||||
<div class="button-group text-center mt-5">
|
||||
<button type="reset" class="theme-btn border-btn m-2">{{ __('Reset') }}</button>
|
||||
@usercan('brands.create')
|
||||
<button class="theme-btn m-2 submit-btn">{{ __('Save') }}</button>
|
||||
@endusercan
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
80
Modules/Business/resources/views/brands/datas.blade.php
Normal file
80
Modules/Business/resources/views/brands/datas.blade.php
Normal file
@@ -0,0 +1,80 @@
|
||||
<div class="responsive-table m-0">
|
||||
<table class="table" id="datatable">
|
||||
<thead>
|
||||
<tr>
|
||||
@usercan('brands.delete')
|
||||
<th class="w-60">
|
||||
<div class="d-flex align-items-center gap-3">
|
||||
<input type="checkbox" class="select-all-delete multi-delete">
|
||||
</div>
|
||||
</th>
|
||||
@endusercan
|
||||
<th>{{ __('SL') }}.</th>
|
||||
<th>{{ __('Icon') }}</th>
|
||||
<th class="text-start">{{ __('Brand Name') }}</th>
|
||||
<th class="text-start">{{ __('Description') }}</th>
|
||||
<th>{{ __('Status') }}</th>
|
||||
<th>{{ __('Action') }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach ($brands as $brand)
|
||||
<tr>
|
||||
@usercan('brands.delete')
|
||||
<td class="w-60 checkbox">
|
||||
<input type="checkbox" name="ids[]" class="delete-checkbox-item multi-delete"
|
||||
value="{{ $brand->id }}">
|
||||
</td>
|
||||
@endusercan
|
||||
<td>{{ ($brands->currentPage() - 1) * $brands->perPage() + $loop->iteration }}</td>
|
||||
<td>
|
||||
<img src="{{ asset($brand->icon ?? 'assets/images/logo/upload2.jpg') }}" alt="Img"
|
||||
class="table-product-img">
|
||||
</td>
|
||||
|
||||
<td class="text-start">{{ $brand->brandName }}</td>
|
||||
<td class="text-start">{{ Str::limit($brand->description, 20, '...') }}</td>
|
||||
<td>
|
||||
<label class="switch">
|
||||
<input type="checkbox" {{ $brand->status == 1 ? 'checked' : '' }} class="status"
|
||||
data-url="{{ route('business.brands.status', $brand->id) }}">
|
||||
<span class="slider round"></span>
|
||||
</label>
|
||||
</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>
|
||||
<ul class="dropdown-menu">
|
||||
<li>
|
||||
@usercan('brands.update')
|
||||
<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 ?? 'assets/images/icons/upload-icon.svg') }}"
|
||||
data-brands-description="{{ $brand->description }}"><i
|
||||
class="fal fa-pencil-alt"></i>{{ __('Edit') }}</a>
|
||||
@endusercan
|
||||
</li>
|
||||
<li>
|
||||
@usercan('brands.delete')
|
||||
<a href="{{ route('business.brands.destroy', $brand->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>
|
||||
</div>
|
||||
<div class="mt-3">
|
||||
{{ $brands->links('vendor.pagination.bootstrap-5') }}
|
||||
</div>
|
||||
51
Modules/Business/resources/views/brands/edit.blade.php
Normal file
51
Modules/Business/resources/views/brands/edit.blade.php
Normal file
@@ -0,0 +1,51 @@
|
||||
|
||||
<div class="modal fade common-validation-modal" id="brand-edit-modal">
|
||||
<div class="modal-dialog modal-dialog-centered">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h1 class="modal-title fs-5">{{ __('Edit Brand') }}</h1>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="personal-info">
|
||||
<form action="" method="post" enctype="multipart/form-data"
|
||||
class="ajaxform_instant_reload brandUpdateForm">
|
||||
@csrf
|
||||
@method('put')
|
||||
<div class="row">
|
||||
<div class="col-lg-12 mb-2">
|
||||
<label>{{ __('Brand Name') }}</label>
|
||||
<input type="text" name="brandName" id="brand_view_name" required class="form-control" placeholder="{{ __('Enter Brand Name') }}">
|
||||
</div>
|
||||
|
||||
<div class="col-lg-12 mb-2">
|
||||
<label>{{ __("Icon") }}</label>
|
||||
<div class="border rounded upload-img-container">
|
||||
<label class="upload-v4">
|
||||
<div class="img-wrp">
|
||||
<img src="" alt="user" id="edit_icon">
|
||||
</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>
|
||||
|
||||
<div class="col-lg-12 mb-2">
|
||||
<label>{{__('Description')}}</label>
|
||||
<textarea name="description" id="brand_view_description" class="form-control" placeholder="{{ __('Enter Description') }}"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-12">
|
||||
<div class="button-group text-center mt-5">
|
||||
<a href="{{ route('business.brands.index') }}" class="theme-btn border-btn m-2">{{ __('Cancel') }}</a>
|
||||
@usercan('brands.update')
|
||||
<button class="theme-btn m-2 submit-btn">{{ __('Save') }}</button>
|
||||
@endusercan
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
68
Modules/Business/resources/views/brands/index.blade.php
Normal file
68
Modules/Business/resources/views/brands/index.blade.php
Normal file
@@ -0,0 +1,68 @@
|
||||
@extends('layouts.business.master')
|
||||
|
||||
@section('title')
|
||||
{{ __('Brand List') }}
|
||||
@endsection
|
||||
|
||||
@section('main_content')
|
||||
<div class="erp-table-section">
|
||||
<div class="container-fluid">
|
||||
<div class="card">
|
||||
<div class="card-bodys">
|
||||
|
||||
<div class="table-header p-16">
|
||||
<h4>{{ __('Brand List') }}</h4>
|
||||
@usercan('brands.create')
|
||||
<a type="button" href="#brand-create-modal" data-bs-toggle="modal"
|
||||
class="add-order-btn rounded-2"><i class="fas fa-plus-circle me-1"></i>{{ __('Add new Brand') }}</a>
|
||||
@endusercan
|
||||
</div>
|
||||
|
||||
<div class="table-top-form p-16-0">
|
||||
<form action="{{ route('business.brands.index') }}" method="GET" class="filter-form" table="#business-brand-data">
|
||||
|
||||
<div class="table-top-left d-flex gap-3 margin-l-16">
|
||||
<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="table-search position-relative">
|
||||
<input type="text" name="search" class="form-control" placeholder="{{ __('Search...') }}" value="{{ request('search') }}">
|
||||
<span class="position-absolute">
|
||||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M14.582 14.582L18.332 18.332" stroke="#4D4D4D" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M16.668 9.16797C16.668 5.02584 13.3101 1.66797 9.16797 1.66797C5.02584 1.66797 1.66797 5.02584 1.66797 9.16797C1.66797 13.3101 5.02584 16.668 9.16797 16.668C13.3101 16.668 16.668 13.3101 16.668 9.16797Z" stroke="#4D4D4D" stroke-width="1.25" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="delete-item delete-show d-none">
|
||||
<div class="delete-item-show">
|
||||
<p class="fw-bold"><span class="selected-count"></span> {{ __('items show') }}</p>
|
||||
<button data-bs-toggle="modal" class="trigger-modal" data-bs-target="#multi-delete-modal" data-url="{{ route('business.brands.delete-all') }}">{{ __('Delete') }}</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="business-brand-data">
|
||||
@include('business::brands.datas')
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@push('modal')
|
||||
@include('business::component.delete-modal')
|
||||
@include('business::brands.create')
|
||||
@include('business::brands.edit')
|
||||
@endpush
|
||||
203
Modules/Business/resources/views/bulk-uploads/index.blade.php
Normal file
203
Modules/Business/resources/views/bulk-uploads/index.blade.php
Normal file
@@ -0,0 +1,203 @@
|
||||
@extends('layouts.business.master')
|
||||
|
||||
@section('title')
|
||||
{{ __('Bulk Upload') }}
|
||||
@endsection
|
||||
|
||||
@section('main_content')
|
||||
<div class="erp-table-section">
|
||||
<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">
|
||||
<div class="bulk-upload-container">
|
||||
<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">
|
||||
@usercan('bulk-uploads.create')
|
||||
<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="bulk-products-upload.xlsx"
|
||||
class="download-file-btn mt-3">
|
||||
<i class="fas fa-download"></i> {{__('Download File')}}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{-- Instructions Section --}}
|
||||
<div class="bulk-upload-container mt-3">
|
||||
<div class="instruction-header">
|
||||
<h5>{{__('Instructions')}}</h5>
|
||||
<div class="mt-3">
|
||||
<h6><strong>{{__('Note')}}: </strong> {{__('Please follow the instructions below to upload your file.')}}</h6>
|
||||
<ul>
|
||||
<li><b>{{__('1.')}}</b>{{__('Download the sample file first and add all your products to it.')}}</li>
|
||||
<li><b>{{__('2.')}}</b> <span class="text-danger">*</span>{{__('Indicates a required field. If you do not provide the required fields, the system will ignore the product.')}}</li>
|
||||
<li><b>{{__('3.')}}</b>{{__('After adding all your products, please save the file and then upload the updated version.')}}</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{-- Fields Documentation Table --}}
|
||||
<div class="responsive-table mt-4">
|
||||
<table class="table" id="datatable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{{ __('SL') }}.</th>
|
||||
<th class="text-start">{{ __('Field Name') }}</th>
|
||||
<th class="text-start">{{ __('Description') }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="business-category-data">
|
||||
<tr>
|
||||
<td>{{__('1.')}}</td>
|
||||
<td class="text-start">{{__('Product Name')}} <span class="text-danger fw-bold">*</span></td>
|
||||
<td class="text-start">{{__('The name of the product you are adding')}} ({{__('e.g.,')}} <b>{{__('Banana')}}</b>).</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{__('1.')}}</td>
|
||||
<td class="text-start">{{__('Product Category')}}<span class="text-danger fw-bold">*</span></td>
|
||||
<td class="text-start">
|
||||
{{__('The category under which the product falls')}} ({{__('e.g.,')}} <b>{{__('Beverages, Electronics')}}</b>).
|
||||
<br><small>{{__('If not found, the system will automatically create a new category.')}}</small>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{__('3.')}}</td>
|
||||
<td class="text-start">{{__('Unit Name')}}</td>
|
||||
<td class="text-start">
|
||||
{{__('The measurement unit used for the product')}} ({{__('e.g.,')}} <b>{{__('Piece, Kg, Litre')}}</b>).
|
||||
<br><small>{{__('If not found, a new unit will be created automatically.')}}</small>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{__('4.')}}</td>
|
||||
<td class="text-start">{{__('Brand Name')}}</td>
|
||||
<td class="text-start">
|
||||
{{__('The brand associated with the product')}} ({{__('e.g.,')}} <b>{{__('Samsung, Nestlé')}}</b>).
|
||||
<br><small>{{__('If not found, the system will create it automatically.')}}</small>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{__('5.')}}</td>
|
||||
<td class="text-start">{{__('Stock Quantity')}}</td>
|
||||
<td class="text-start">{{__('The available quantity of the product currently in stock.')}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{__('6.')}}</td>
|
||||
<td class="text-start">{{__('Product Code')}} <span class="text-danger fw-bold">*</span></td>
|
||||
<td class="text-start">
|
||||
{{__('A unique identifier for the product')}} ({{__('e.g.,')}} <b>{{__('SKU001')}}</b>).
|
||||
<br><small>{{__('Product codes must be unique — duplicate codes will be ignored.')}}</small>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{__('7.')}}</td>
|
||||
<td class="text-start">{{__('Purchase Price')}} <span class="text-danger fw-bold">*</span></td>
|
||||
<td class="text-start">{{__('The cost price of the product excluding VAT.')}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{__('8.')}}</td>
|
||||
<td class="text-start">{{__('Sale Price (MRP)')}} <span class="text-danger fw-bold">*</span></td>
|
||||
<td class="text-start">{{__('The selling price or maximum retail price for the product.')}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{__('9.')}}</</td>
|
||||
<td class="text-start">{{__('Dealer Price')}}</td>
|
||||
<td class="text-start">{{__('Special discounted price for bulk resellers or dealers.')}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{__('10.')}}</td>
|
||||
<td class="text-start">{{__('Wholesale Price')}}</td>
|
||||
<td class="text-start">{{__('The price offered for wholesale buyers, usually lower than MRP.')}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{__('11.')}}</td>
|
||||
<td class="text-start">{{__('VAT Name')}}</td>
|
||||
<td class="text-start">
|
||||
{{__('The VAT name applied to the product.')}}
|
||||
<br><small>{{__('If the system doesn’t find it, it will create a new VAT with the provided rate.')}}</small>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{__('12.')}}</td>
|
||||
<td class="text-start">{{__('VAT (%)')}}</td>
|
||||
<td class="text-start">{{__('The VAT rate as a percentage')}} ({{__('e.g.,')}} <b>{{__('15')}}</b>).</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{__('13.')}}</td>
|
||||
<td class="text-start">{{__('VAT Type')}}</td>
|
||||
<td class="text-start">{{__('Define whether the VAT is')}} <b>{{__('exclusive')}}</b> {{__('or')}} <b>{{__('inclusive')}}</b>{{__('in the price.')}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{__('14.')}}</td>
|
||||
<td class="text-start">{{__('Low Stock Qty')}}</td>
|
||||
<td class="text-start">{{__('The minimum stock quantity to trigger a low-stock alert.')}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{__('15.')}}</td>
|
||||
<td class="text-start">{{__('Manufacturer')}}</td>
|
||||
<td class="text-start">{{__('Name of the product manufacturer or supplier.')}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{__('16.')}}</td>
|
||||
<td class="text-start">{{__('Expire Date')}}</td>
|
||||
<td class="text-start">{{__('Expiry date for perishable products')}} ({{__('format:')}} <b>{{__('YYYY-MM-DD')}}</b>).</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{__('17.')}}</td>
|
||||
<td class="text-start">{{__('Batch No')}}</td>
|
||||
<td class="text-start">{{__('Batch or lot number used to identify stock batches.')}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{__('18.')}}</td>
|
||||
<td class="text-start">{{__('Model Name')}}</td>
|
||||
<td class="text-start">{{__('The model of the product')}} ({{__('e.g.,')}} <b>{{__('iPhone 15')}}</b>).</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{__('19.')}}</td>
|
||||
<td class="text-start">{{__('Manufacturing Date')}}</td>
|
||||
<td class="text-start">{{__('Date the product was manufactured')}} ({{__('format:')}} <b>{{__('YYYY-MM-DD')}}</b>).</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{__('20.')}}</td>
|
||||
<td class="text-start">{{__('Product Type')}}</td>
|
||||
<td class="text-start">
|
||||
{{__('Define whether the product is')}} <b>{{__('single')}}</b> {{__('or')}} <b>{{__('variant')}}</b>.
|
||||
<br><small>{{__('Use')}} <b>{{__('variant')}}</b> {{__('for products with multiple variations like size or color.')}}</small>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{__('21.')}}</td>
|
||||
<td class="text-start">{{__('Variations')}}</td>
|
||||
<td class="text-start">
|
||||
{{__('This column defines all variations for variant products.')}}
|
||||
<br>{{__('Use the format:')}} <b>{{__('VariationName:Value')}}</b> {{__('separated by a')}} <b>|</b> {{__('for multiple values.')}}
|
||||
<br>{{__('Example:')}} <code>{{__('Color:Black|Size:M')}}</code>
|
||||
<br>
|
||||
<small>
|
||||
{{__('➤ The system will:')}}
|
||||
<ul class="mb-1">
|
||||
<li>{{__('Create or match existing variations dynamically.')}}</li>
|
||||
<li>{{__('Store selected variation IDs in the')}} <b>{{__('Product')}}</b> {{__('table.')}}</li>
|
||||
<li>{{__('Store structured JSON like')}} <code>[{{{__('"Color":"Black"')}}},{{{__('"Size":"M"')}}}]</code> {{__('in the')}} <b>{{__('Stock')}}</b> {{__('table.')}}</li>
|
||||
<li>{{__('Automatically create')}} <b>{{__('variant_name')}}</b> {{__('such as')}} <b>{{__('Black - M')}}</b>.</li>
|
||||
</ul>
|
||||
</small>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
111
Modules/Business/resources/views/cash-flow/datas.blade.php
Normal file
111
Modules/Business/resources/views/cash-flow/datas.blade.php
Normal file
@@ -0,0 +1,111 @@
|
||||
@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="d-print-none">{{ __('SL') }}.</th>
|
||||
<th class="text-start">{{ __('Date') }}</th>
|
||||
<th class="text-center d-print-none">{{ __('Invoice') }}</th>
|
||||
<th class="text-start">{{ __('Name') }}</th>
|
||||
<th class="text-start d-print-none">{{ __('Type') }}</th>
|
||||
<th class="text-center">{{ __('Cash In') }}</th>
|
||||
<th class="text-center">{{ __('Cash Out') }}</th>
|
||||
<th class="text-center">{{ __('Running Cash') }}</th>
|
||||
<th class="text-end">{{ __('Payment') }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
@php $runningCash = $opening_balance; @endphp
|
||||
<tbody>
|
||||
@foreach ($cash_flows as $cash_flow)
|
||||
@php
|
||||
if ($cash_flow->type === 'credit') {
|
||||
$runningCash += $cash_flow->amount;
|
||||
} else {
|
||||
$runningCash -= $cash_flow->amount;
|
||||
}
|
||||
@endphp
|
||||
<tr>
|
||||
<td class="d-print-none">{{ $cash_flows->firstItem() + $loop->index }}</td>
|
||||
<td class="text-start">{{ formatted_date($cash_flow->date) }}</td>
|
||||
<td class="text-center d-print-none">{{ $cash_flow->invoice_no }}</td>
|
||||
|
||||
@if ($cash_flow->platform == 'sale')
|
||||
<td class="text-start">{{ $cash_flow->sale?->party?->name ?? 'Guest' }}</td>
|
||||
@elseif ($cash_flow->platform == 'sale_return')
|
||||
<td class="text-start d-print-none">{{ $cash_flow->saleReturn?->sale?->party?->name ?? 'Guest' }}</td>
|
||||
@elseif ($cash_flow->platform == 'purchase')
|
||||
<td class="text-start">{{ $cash_flow->purchase?->party?->name ?? 'Guest' }}</td>
|
||||
@elseif ($cash_flow->platform == 'purchase_return')
|
||||
<td class="text-start">{{ $cash_flow->purchaseReturn?->purchase?->party?->name ?? 'Guest' }}</td>
|
||||
@elseif ($cash_flow->platform == 'due_collect' || $cash_flow->platform == 'due_pay')
|
||||
<td class="text-start">{{ $cash_flow->dueCollect?->party?->name ?? 'Guest' }}</td>
|
||||
@else
|
||||
<td class="text-start">N/A</td>
|
||||
@endif
|
||||
|
||||
<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, 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, currency: business_currency()) }}
|
||||
</td>
|
||||
|
||||
<td class="text-center {{ $runningCash < 0 ? 'text-danger' : 'text-success' }}">
|
||||
{{ currency_format($runningCash, currency: business_currency()) }}
|
||||
</td>
|
||||
|
||||
<td class="text-end">
|
||||
{{ $cash_flow->payment_type_id ? $cash_flow->paymentType?->name : ucfirst(explode('_', $cash_flow->transaction_type)[0]) }}
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
|
||||
@php
|
||||
$page_cash_in = $cash_flows->getCollection()->where('type', 'credit')->sum('amount');
|
||||
$page_cash_out = $cash_flows->getCollection()->where('type', 'debit')->sum('amount');
|
||||
$page_running_cash = $opening_balance + $page_cash_in - $page_cash_out;
|
||||
@endphp
|
||||
|
||||
@if ($cash_flows->count() > 0)
|
||||
<tfoot>
|
||||
<tr class="table-footer">
|
||||
<td class="text-start fw-bold">{{__('Total')}}</td>
|
||||
<td class="d-print-none"></td>
|
||||
<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 {{ $page_running_cash < 0 ? 'text-danger' : 'text-success' }}">
|
||||
{{ currency_format($page_running_cash, currency: business_currency()) }}
|
||||
</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
@endif
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div class="mt-3">
|
||||
{{ $cash_flows->links('vendor.pagination.bootstrap-5') }}
|
||||
</div>
|
||||
@@ -0,0 +1,97 @@
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{{ __('SL') }}.</th>
|
||||
<th class="text-start">{{ __('Date') }}</th>
|
||||
<th class="text-center">{{ __('Invoice') }}</th>
|
||||
<th class="text-start">{{ __('Name') }}</th>
|
||||
<th class="text-start">{{ __('Type') }}</th>
|
||||
<th class="text-start">{{ __('Cash In') }}</th>
|
||||
<th class="text-start">{{ __('Cash Out') }}</th>
|
||||
<th class="text-start">{{ __('Running Cash') }}</th>
|
||||
<th class="text-end">{{ __('Payment') }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
@php $runningCash = $opening_balance; @endphp
|
||||
<tbody>
|
||||
@foreach ($cash_flows as $cash_flow)
|
||||
@php
|
||||
if ($cash_flow->type === 'credit') {
|
||||
$runningCash += $cash_flow->amount;
|
||||
} else {
|
||||
$runningCash -= $cash_flow->amount;
|
||||
}
|
||||
@endphp
|
||||
<tr>
|
||||
<td>{{ $loop->index + 1 }}</td>
|
||||
<td class="text-start">{{ formatted_date($cash_flow->date) }}</td>
|
||||
<td class="text-center">{{ $cash_flow->invoice_no }}</td>
|
||||
|
||||
@if ($cash_flow->platform == 'sale')
|
||||
<td class="text-start">{{ $cash_flow->sale?->party?->name ?? 'Guest' }}</td>
|
||||
@elseif ($cash_flow->platform == 'sale_return')
|
||||
<td class="text-start">{{ $cash_flow->saleReturn?->sale?->party?->name ?? 'Guest' }}</td>
|
||||
@elseif ($cash_flow->platform == 'purchase')
|
||||
<td class="text-start">{{ $cash_flow->purchase?->party?->name ?? 'Guest' }}</td>
|
||||
@elseif ($cash_flow->platform == 'purchase_return')
|
||||
<td class="text-start">{{ $cash_flow->purchaseReturn?->purchase?->party?->name ?? 'Guest' }}</td>
|
||||
@elseif ($cash_flow->platform == 'due_collect' || $cash_flow->platform == 'due_pay')
|
||||
<td class="text-start">{{ $cash_flow->dueCollect?->party?->name ?? 'Guest' }}</td>
|
||||
@else
|
||||
<td class="text-start">N/A</td>
|
||||
@endif
|
||||
|
||||
<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>
|
||||
@else
|
||||
<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>
|
||||
@else
|
||||
<td class="text-start">{{ currency_format(0, currency: business_currency()) }}</td>
|
||||
@endif
|
||||
|
||||
<td class="text-start {{ $runningCash < 0 ? 'text-danger' : 'text-success' }}">
|
||||
{{ currency_format($runningCash, currency: business_currency()) }}
|
||||
</td>
|
||||
|
||||
@if ($cash_flow->payment_type_id)
|
||||
<td class="text-end">{{ $cash_flow->paymentType?->name }}</td>
|
||||
@else
|
||||
<td class="text-end">{{ ucfirst(explode('_', $cash_flow->transaction_type)[0]) }}</td>
|
||||
@endif
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
@php
|
||||
$page_cash_in = $cash_flows->where('type', 'credit')->sum('amount');
|
||||
$page_cash_out = $cash_flows->where('type', 'debit')->sum('amount');
|
||||
$page_running_cash = $opening_balance + $page_cash_in - $page_cash_out;
|
||||
@endphp
|
||||
|
||||
@if ($cash_flows->count() > 0)
|
||||
<tfoot>
|
||||
<tr class="table-footer">
|
||||
<td class="text-start fw-bold">{{__('Total')}}</td>
|
||||
<td class="d-print-none"></td>
|
||||
<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 {{ $page_running_cash < 0 ? 'text-danger' : 'text-success' }}">
|
||||
{{ currency_format($page_running_cash, currency: business_currency()) }}
|
||||
</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
@endif
|
||||
</table>
|
||||
149
Modules/Business/resources/views/cash-flow/index.blade.php
Normal file
149
Modules/Business/resources/views/cash-flow/index.blade.php
Normal file
@@ -0,0 +1,149 @@
|
||||
@extends('layouts.business.master')
|
||||
|
||||
@section('title')
|
||||
{{ __('Cash Flow') }}
|
||||
@endsection
|
||||
|
||||
@section('main_content')
|
||||
<div class="erp-table-section">
|
||||
<div class="container-fluid">
|
||||
<div class="card">
|
||||
<div class="card-bodys">
|
||||
<div class="table-header p-16 d-print-none">
|
||||
<h4>{{ __('Cash Flow') }}</h4>
|
||||
</div>
|
||||
|
||||
<div class="table-header justify-content-center border-0 d-none d-block d-print-block text-center mb-3">
|
||||
@include('business::print.header')
|
||||
<h4 class="mt-2">{{ __('Cash Flow') }}</h4>
|
||||
</div>
|
||||
|
||||
<div class="loss-profit-container d-print-none">
|
||||
<div class="row">
|
||||
<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">{{ 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">{{ 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">{{ currency_format($total_running_cash, 'icon', 2, business_currency()) }}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="table-top-form p-16-0 d-print-none">
|
||||
<form action="{{ route('business.cash-flow-reports.index') }}" method="GET" class="report-filter-form" table="#cash-flow-reports-data">
|
||||
|
||||
<div class="table-top-left d-flex gap-3 margin-l-16">
|
||||
<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="table-search position-relative">
|
||||
<input type="text" name="search" class="form-control" placeholder="{{ __('Search...') }}" value="{{ request('search') }}">
|
||||
<span class="position-absolute">
|
||||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M14.582 14.582L18.332 18.332" stroke="#4D4D4D" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M16.668 9.16797C16.668 5.02584 13.3101 1.66797 9.16797 1.66797C5.02584 1.66797 1.66797 5.02584 1.66797 9.16797C1.66797 13.3101 5.02584 16.668 9.16797 16.668C13.3101 16.668 16.668 13.3101 16.668 9.16797Z" stroke="#4D4D4D" stroke-width="1.25" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
</span>
|
||||
</div>
|
||||
<div class="custom-from-to align-items-center date-filters d-none">
|
||||
<label class="header-label">{{ __('From Date') }}</label>
|
||||
<input type="date" name="from_date" value="{{ request('from_date') ?? now()->format('Y-m-d') }}" class="form-control">
|
||||
</div>
|
||||
<div class="custom-from-to align-items-center date-filters d-none">
|
||||
<label class="header-label">{{ __('To Date') }}</label>
|
||||
<input type="date" name="to_date" value="{{ request('to_date') ?? now()->format('Y-m-d') }}" class="form-control">
|
||||
</div>
|
||||
<div class="gpt-up-down-arrow position-relative d-print-none custom-date-filter">
|
||||
<select name="custom_days" class="form-control custom-days">
|
||||
<option value="today" {{ request()->get('custom_days') == 'today' ? 'selected' : '' }}>{{ __('Today') }}</option>
|
||||
<option value="yesterday" {{ request()->get('custom_days') == 'yesterday' ? 'selected' : '' }}>{{ __('Yesterday') }}</option>
|
||||
<option value="last_seven_days" {{ request()->get('custom_days') == 'last_seven_days' ? 'selected' : '' }}>{{ __('Last 7 Days') }}</option>
|
||||
<option value="last_thirty_days" {{ request()->get('custom_days') == 'last_thirty_days' ? 'selected' : '' }}>{{ __('Last 30 Days') }}</option>
|
||||
<option value="current_month" {{ request()->get('custom_days') == 'current_month' ? 'selected' : '' }}>{{ __('Current Month') }}</option>
|
||||
<option value="last_month" {{ request()->get('custom_days') == 'last_month' ? 'selected' : '' }}>{{ __('Last Month') }}</option>
|
||||
<option value="current_year" {{ request()->get('custom_days') == 'current_year' ? 'selected' : '' }}>{{ __('Current Year') }}</option>
|
||||
<option value="custom_date" {{ request()->get('custom_days') == 'custom_date' ? 'selected' : '' }}>{{ __('Custom Date') }}</option>
|
||||
</select>
|
||||
<span></span>
|
||||
<div class="calendar-icon">
|
||||
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M12.6667 2.67188H3.33333C2.59695 2.67188 2 3.26883 2 4.00521V13.3385C2 14.0749 2.59695 14.6719 3.33333 14.6719H12.6667C13.403 14.6719 14 14.0749 14 13.3385V4.00521C14 3.26883 13.403 2.67188 12.6667 2.67188Z" stroke="#4B5563" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M10.6641 1.32812V3.99479" stroke="#4B5563" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M5.33594 1.32812V3.99479" stroke="#4B5563" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M2 6.67188H14" stroke="#4B5563" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
</div>
|
||||
</div>
|
||||
<div class="gpt-up-down-arrow position-relative employee-select">
|
||||
<select name="platform" class="form-control">
|
||||
<option value="">{{ __('Transaction Type') }}</option>
|
||||
<option @selected(request('platform') == 'sale') value="sale">{{ __('Sale') }}</option>
|
||||
<option @selected(request('platform') == 'sale_return') value="sale_return">{{ __('Sale Return') }}</option>
|
||||
<option @selected(request('platform') == 'purchase') value="purchase">{{ __('Purchase') }}</option>
|
||||
<option @selected(request('platform') == 'purchase_return') value="purchase_return">{{ __('Purchase Return') }}</option>
|
||||
<option @selected(request('platform') == 'income') value="income">{{ __('Income') }}</option>
|
||||
<option @selected(request('platform') == 'expense') value="expense">{{ __('Expense') }}</option>
|
||||
<option @selected(request('platform') == 'due_pay') value="due_pay">{{ __('Due Pay') }}</option>
|
||||
<option @selected(request('platform') == 'due_collect') value="due_collect">{{ __('Due Collect') }}</option>
|
||||
<option @selected(request('platform') == 'payroll') value="payroll">{{ __('Payroll') }}</option>
|
||||
<option @selected(request('platform') == 'bank') value="bank">{{ __('Bank') }}</option>
|
||||
<option @selected(request('platform') == 'cash') value="cash">{{ __('Cash') }}</option>
|
||||
<option @selected(request('platform') == 'cheque') value="cheque">{{ __('Cheque') }}</option>
|
||||
</select>
|
||||
<span></span>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<div class="table-top-btn-group d-print-none p-2">
|
||||
<ul>
|
||||
<li>
|
||||
<a href="{{ route('business.cash-flow-reports.csv') }}">
|
||||
<img src="{{ asset('assets/images/logo/csv.svg') }}" alt="">
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="{{ route('business.cash-flow-reports.excel') }}">
|
||||
<img src="{{ asset('assets/images/logo/excel.svg') }}" alt="">
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="blank" href="{{ route('business.cash-flow-reports.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>
|
||||
|
||||
<div id="cash-flow-reports-data">
|
||||
@include('business::cash-flow.datas')
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
105
Modules/Business/resources/views/cash-flow/pdf.blade.php
Normal file
105
Modules/Business/resources/views/cash-flow/pdf.blade.php
Normal file
@@ -0,0 +1,105 @@
|
||||
@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>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@section('pdf_content')
|
||||
<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>
|
||||
<th style="border:1px solid gainsboro; color:white;" class="text-center">{{ __('Invoice') }}</th>
|
||||
<th style="border:1px solid gainsboro; color:white;" class="text-start">{{ __('Name') }}</th>
|
||||
<th style="border:1px solid gainsboro; color:white;" class="text-start">{{ __('Type') }}</th>
|
||||
<th style="border:1px solid gainsboro; color:white;" class="text-start">{{ __('Cash In') }}</th>
|
||||
<th style="border:1px solid gainsboro; color:white;" class="text-start">{{ __('Cash Out') }}</th>
|
||||
<th style="border:1px solid gainsboro; color:white;" class="text-start">{{ __('Running Cash') }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
@php $runningCash = $opening_balance; @endphp
|
||||
<tbody>
|
||||
@foreach ($cash_flows as $cash_flow)
|
||||
@php
|
||||
if ($cash_flow->type === 'credit') {
|
||||
$runningCash += $cash_flow->amount;
|
||||
} else {
|
||||
$runningCash -= $cash_flow->amount;
|
||||
}
|
||||
@endphp
|
||||
<tr style="background-color: {{ $loop->even ? '#F5F5F5' : '#FFFFFF' }};">
|
||||
<td style="border:1px solid gainsboro; text-align:center;">{{ formatted_date($cash_flow->date) }}</td>
|
||||
<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>
|
||||
@elseif ($cash_flow->platform == 'sale_return')
|
||||
<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>
|
||||
@elseif ($cash_flow->platform == 'purchase_return')
|
||||
<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>
|
||||
@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; {{ $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, currency: business_currency()) }}
|
||||
</td>
|
||||
|
||||
<td
|
||||
style="border:1px solid gainsboro; text-align:center; {{ $runningCash < 0 ? 'color:red;' : 'color:green;' }}">
|
||||
{{ currency_format($runningCash, currency: business_currency()) }}
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
|
||||
@php
|
||||
$page_cash_in = $cash_flows->where('type', 'credit')->sum('amount');
|
||||
$page_cash_out = $cash_flows->where('type', 'debit')->sum('amount');
|
||||
$page_running_cash = $opening_balance + $page_cash_in - $page_cash_out;
|
||||
@endphp
|
||||
|
||||
@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;"></td>
|
||||
<td style="border:1px solid gainsboro;"></td>
|
||||
<td style="border:1px solid gainsboro;"></td>
|
||||
<td style="border:1px solid gainsboro; text-align:center; color: white; font-weight: 600;">
|
||||
{{ currency_format($page_cash_in, currency: business_currency()) }}
|
||||
</td>
|
||||
<td style="border:1px solid gainsboro; text-align:center; color: white; font-weight: 600;">
|
||||
{{ currency_format($page_cash_out, currency: business_currency()) }}
|
||||
</td>
|
||||
<td style="border:1px solid gainsboro; text-align:center; color: white; font-weight: 600;">
|
||||
{{ currency_format($page_running_cash, currency: business_currency()) }}
|
||||
</td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
@endif
|
||||
</table>
|
||||
@endsection
|
||||
160
Modules/Business/resources/views/cashes/datas.blade.php
Normal file
160
Modules/Business/resources/views/cashes/datas.blade.php
Normal file
@@ -0,0 +1,160 @@
|
||||
<div class="responsive-table m-0">
|
||||
<table class="table" id="datatable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="w-60">
|
||||
<div class="d-flex align-items-center gap-3">
|
||||
<input type="checkbox" class="select-all-delete multi-delete">
|
||||
</div>
|
||||
</th>
|
||||
<th>{{ __('SL') }}.</th>
|
||||
<th>{{ __('Date') }}</th>
|
||||
<th>{{ __('Type') }}</th>
|
||||
<th>{{ __('Payment') }}</th>
|
||||
<th>{{ __('Name') }}</th>
|
||||
<th>{{ __('Amount') }}</th>
|
||||
<th class="text-center">{{ __('Action') }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach ($cashes as $cash)
|
||||
<tr>
|
||||
<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>
|
||||
<td>{{ formatted_date($cash->date) }}</td>
|
||||
<td>{{ ucwords(str_replace('_', ' ', $cash->platform)) }}</td>
|
||||
<td>{{ ucwords(str_replace('_', ' ', $cash->transaction_type)) }}</td>
|
||||
|
||||
<td>{{ $cash->user->name ?? '' }}</td>
|
||||
|
||||
<td class="
|
||||
{{ $cash->type == 'credit' || $cash->transaction_type == 'bank_to_cash' ? 'text-success' :
|
||||
($cash->type == 'debit' || $cash->transaction_type == 'cash_to_bank' ? 'text-danger' : '') }}
|
||||
">
|
||||
{{ currency_format($cash->amount, currency: business_currency()) }}
|
||||
</td>
|
||||
|
||||
<td>
|
||||
<div class="dropdown table-action">
|
||||
<button type="button" data-bs-toggle="dropdown">
|
||||
<i class="far fa-ellipsis-v"></i>
|
||||
</button>
|
||||
|
||||
<ul class="dropdown-menu">
|
||||
|
||||
{{-- View --}}
|
||||
@usercan('cashes.read')
|
||||
<li>
|
||||
<a href="#" class="cash-view-btn" data-bs-toggle="modal"
|
||||
data-bs-target="#cash-view"
|
||||
data-img="{{ asset($cash->image ?? 'assets/img/icon/no-image.svg') }}"
|
||||
data-user="{{ $cash->user->name ?? '' }}"
|
||||
data-transaction-type="{{ ucwords(str_replace('_', ' ', $cash->transaction_type)) }}"
|
||||
data-platform="{{ ucwords(str_replace('_', ' ', $cash->platform)) }}"
|
||||
data-amount="{{ currency_format($cash->amount, currency: business_currency()) }}"
|
||||
data-note="{{ $cash->note }}"
|
||||
data-date="{{ formatted_date($cash->date) }}">
|
||||
<i class="fal fa-eye"></i> {{ __('View') }}
|
||||
</a>
|
||||
</li>
|
||||
@endusercan
|
||||
|
||||
@php
|
||||
$editConfig = null;
|
||||
|
||||
if ($cash->platform == 'cash') {
|
||||
$editConfig = [
|
||||
'url' => 'javascript:void(0)',
|
||||
'is_cash' => true,
|
||||
'attrs' => [
|
||||
'class' => 'edit-transaction',
|
||||
'data-route' => route('business.cashes.update', $cash->id),
|
||||
'data-id' => $cash->id,
|
||||
'data-transaction_type' => $cash->transaction_type,
|
||||
'data-from' => 'Cash',
|
||||
'data-to' => $cash->to_bank ?? null,
|
||||
'data-type' => $cash->type,
|
||||
'data-amount' => $cash->amount,
|
||||
'data-date' => $cash->date,
|
||||
'data-note' => $cash->note,
|
||||
'data-image' => $cash->image
|
||||
? asset($cash->image)
|
||||
: asset('assets/images/products/box.svg'),
|
||||
],
|
||||
];
|
||||
} elseif ($cash->platform == 'bank') {
|
||||
$editConfig = [
|
||||
'url' => route('business.bank-transactions.index', [
|
||||
'payment_type_id' => $cash->from_bank,
|
||||
]),
|
||||
];
|
||||
} elseif ($cash->platform === 'cash') {
|
||||
$editConfig = ['url' => route('business.cashes.index')];
|
||||
} elseif ($cash->platform === 'cheque') {
|
||||
$editConfig = ['url' => route('business.cheques.index')];
|
||||
} elseif ($cash->platform === 'sale') {
|
||||
$editConfig = ['url' => route('business.sales.index')];
|
||||
} elseif ($cash->platform === 'purchase') {
|
||||
$editConfig = ['url' => route('business.purchases.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') {
|
||||
$editConfig = ['url' => route('business.purchase-returns.index')];
|
||||
}elseif ($cash->platform === 'due_collect') {
|
||||
$editConfig = ['url' => route('business.dues.index')];
|
||||
}elseif ($cash->platform === 'due_pay') {
|
||||
$editConfig = ['url' => route('business.dues.index')];
|
||||
}
|
||||
@endphp
|
||||
|
||||
{{-- Edit --}}
|
||||
@usercan('cashes.update')
|
||||
@if ($editConfig)
|
||||
<li>
|
||||
@if (!empty($editConfig['is_cash']))
|
||||
<a href="{{ $editConfig['url'] }}"
|
||||
@foreach ($editConfig['attrs'] as $key => $value)
|
||||
{{ $key }}="{{ $value }}"
|
||||
@endforeach
|
||||
>
|
||||
<i class="fal fa-edit"></i> {{ __('Edit') }}
|
||||
</a>
|
||||
@else
|
||||
<a href="{{ $editConfig['url'] }}">
|
||||
<i class="fal fa-edit"></i> {{ __('Edit') }}
|
||||
</a>
|
||||
@endif {{-- ✔ FIXED: Missing @endif --}}
|
||||
</li>
|
||||
@endif
|
||||
@endusercan
|
||||
|
||||
{{-- Delete --}}
|
||||
@usercan('cashes.delete')
|
||||
<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>
|
||||
@endusercan
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
{{ $cashes->links('vendor.pagination.bootstrap-5') }}
|
||||
</div>
|
||||
124
Modules/Business/resources/views/cashes/index.blade.php
Normal file
124
Modules/Business/resources/views/cashes/index.blade.php
Normal file
@@ -0,0 +1,124 @@
|
||||
@extends('layouts.business.master')
|
||||
|
||||
@section('title')
|
||||
{{ __('Cash List') }}
|
||||
@endsection
|
||||
|
||||
@section('main_content')
|
||||
<div class="erp-table-section">
|
||||
<div class="container-fluid">
|
||||
<div class="card">
|
||||
<div class="card-bodys">
|
||||
<div class="loss-profit-container d-print-none">
|
||||
<div class="row">
|
||||
<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">{{ currency_format(cash_balance(), 'icon', 2, business_currency()) }}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="table-header p-16">
|
||||
<h4>{{ __('Cash In Hand') }}</h4>
|
||||
|
||||
<div class="d-flex align-items-center gap-3">
|
||||
<a id="cash_to_bank" type="button" class="add-order-btn rounded-2 btn btn-primary"
|
||||
data-route="{{ route('business.cashes.store') }}">
|
||||
<i class="fas fa-plus-circle me-1"></i> {{__('Transfer')}}
|
||||
</a>
|
||||
|
||||
<a id="adjust_cash" type="button" class="add-order-btn rounded-2 btn btn-primary"
|
||||
data-route="{{ route('business.cashes.store') }}">
|
||||
<i class="fas fa-plus-circle me-1"></i> {{__('Adjust Cash')}}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="table-top-form p-16-0">
|
||||
<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">
|
||||
<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="table-search position-relative">
|
||||
<input type="text" name="search" class="form-control" placeholder="{{ __('Search...') }}" value="{{ request('search') }}">
|
||||
<span class="position-absolute">
|
||||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none"
|
||||
xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M14.582 14.582L18.332 18.332" stroke="#4D4D4D" stroke-width="1.25"
|
||||
stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path
|
||||
d="M16.668 9.16797C16.668 5.02584 13.3101 1.66797 9.16797 1.66797C5.02584 1.66797 1.66797 5.02584 1.66797 9.16797C1.66797 13.3101 5.02584 16.668 9.16797 16.668C13.3101 16.668 16.668 13.3101 16.668 9.16797Z"
|
||||
stroke="#4D4D4D" stroke-width="1.25" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
</span>
|
||||
</div>
|
||||
<div class="custom-from-to align-items-center date-filters d-none">
|
||||
<label class="header-label">{{ __('From Date') }}</label>
|
||||
<input type="date" name="from_date" value="{{ request('from_date') ?? now()->format('Y-m-d') }}" class="form-control">
|
||||
</div>
|
||||
<div class="custom-from-to align-items-center date-filters d-none">
|
||||
<label class="header-label">{{ __('To Date') }}</label>
|
||||
<input type="date" name="to_date" value="{{ request('to_date') ?? now()->format('Y-m-d') }}" class="form-control">
|
||||
</div>
|
||||
<div class="gpt-up-down-arrow position-relative d-print-none custom-date-filter">
|
||||
<select name="custom_days" class="form-control custom-days">
|
||||
<option value="today" {{ request()->get('custom_days') == 'today' ? 'selected' : '' }}>{{ __('Today') }}</option>
|
||||
<option value="yesterday" {{ request()->get('custom_days') == 'yesterday' ? 'selected' : '' }}>{{ __('Yesterday') }}</option>
|
||||
<option value="last_seven_days" {{ request()->get('custom_days') == 'last_seven_days' ? 'selected' : '' }}>{{ __('Last 7 Days') }}</option>
|
||||
<option value="last_thirty_days" {{ request()->get('custom_days') == 'last_thirty_days' ? 'selected' : '' }}>{{ __('Last 30 Days') }}</option>
|
||||
<option value="current_month" {{ request()->get('custom_days') == 'current_month' ? 'selected' : '' }}>{{ __('Current Month') }}</option>
|
||||
<option value="last_month" {{ request()->get('custom_days') == 'last_month' ? 'selected' : '' }}>{{ __('Last Month') }}</option>
|
||||
<option value="current_year" {{ request()->get('custom_days') == 'current_year' ? 'selected' : '' }}>{{ __('Current Year') }}</option>
|
||||
<option value="custom_date" {{ request()->get('custom_days') == 'custom_date' ? 'selected' : '' }}>{{ __('Custom Date') }}</option>
|
||||
</select>
|
||||
<span></span>
|
||||
<div class="calendar-icon">
|
||||
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M12.6667 2.67188H3.33333C2.59695 2.67188 2 3.26883 2 4.00521V13.3385C2 14.0749 2.59695 14.6719 3.33333 14.6719H12.6667C13.403 14.6719 14 14.0749 14 13.3385V4.00521C14 3.26883 13.403 2.67188 12.6667 2.67188Z" stroke="#4B5563" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M10.6641 1.32812V3.99479" stroke="#4B5563" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M5.33594 1.32812V3.99479" stroke="#4B5563" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M2 6.67188H14" stroke="#4B5563" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="delete-item delete-show d-none">
|
||||
<div class="delete-item-show">
|
||||
<p class="fw-bold"><span class="selected-count"></span> {{ __('items show') }}</p>
|
||||
<button data-bs-toggle="modal" class="trigger-modal" data-bs-target="#multi-delete-modal" data-url="{{ route('business.cashes.delete-all') }}">{{ __('Delete') }}</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="cashes-data">
|
||||
@include('business::cashes.datas')
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<input type="hidden" id="get_banks" value="{{ route('business.banks.get') }}">
|
||||
|
||||
@endsection
|
||||
|
||||
@push('modal')
|
||||
@include('business::component.delete-modal')
|
||||
@include('business::component.transaction')
|
||||
@include('business::cashes.view')
|
||||
@endpush
|
||||
|
||||
@push('js')
|
||||
<script src="{{ asset('assets/js/custom/account.js') }}"></script>
|
||||
@endpush
|
||||
@@ -0,0 +1,56 @@
|
||||
<div class="modal fade common-validation-modal" id="adjust-cash">
|
||||
<div class="modal-dialog modal-dialog-centered modal-lg">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h1 class="modal-title fs-5">{{__('Adjust Cash')}}</h1>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="personal-info">
|
||||
<form action="" method="post" class="ajaxform_instant_reload">
|
||||
@csrf
|
||||
<div class="row">
|
||||
<div class="col-lg-12 mb-3">
|
||||
<div class="form-check">
|
||||
<input class="form-check-input" type="radio" name="type" id="addCash" value="credit">
|
||||
<label class="form-check-label cash-label" for="addCash">
|
||||
{{__('Add Cash')}}
|
||||
</label>
|
||||
</div>
|
||||
<div class="form-check">
|
||||
<input class="form-check-input" type="radio" name="type" id="reduceCash" value="debit">
|
||||
<label class="form-check-label cash-label" for="reduceCash">
|
||||
{{__('Reduce Cash')}}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-6">
|
||||
<label>{{__('Amount')}}</label>
|
||||
<input type="number" class="form-control" placeholder="{{ __('ex 500') }}">
|
||||
</div>
|
||||
|
||||
<div class="col-lg-6">
|
||||
<label>{{__('Adjustment Date')}}</label>
|
||||
<input type="date" name="date" class="form-control">
|
||||
</div>
|
||||
|
||||
<div class="col-lg-12 mb-2">
|
||||
<label>{{__('Description')}}</label>
|
||||
<textarea name="description" class="form-control" placeholder="{{ __('description') }}"></textarea>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="col-lg-12">
|
||||
<div class="button-group text-center mt-5">
|
||||
<button type="reset" class="theme-btn border-btn m-2">{{ __('Reset') }}</button>
|
||||
<button type="submit" class="theme-btn m-2 submit-btn">{{ __('Send') }}</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,74 @@
|
||||
<div class="modal fade common-validation-modal" id="transfer">
|
||||
<div class="modal-dialog modal-dialog-centered modal-lg">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h1 class="modal-title fs-5">{{ __('Cash to Bank Transfer') }}</h1>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="personal-info">
|
||||
<form action="" method="post" class="ajaxform_instant_reload">
|
||||
@csrf
|
||||
<div class="row">
|
||||
|
||||
<div class="col-lg-6">
|
||||
<label>{{ __('From') }}</label>
|
||||
<input type="text" name="" value="Cash" class="form-control" placeholder="{{ __('cash') }}">
|
||||
</div>
|
||||
|
||||
<div class="col-lg-6 mb-2">
|
||||
<label>{{ __('To') }}</label>
|
||||
<div class="gpt-up-down-arrow position-relative">
|
||||
<select name="type" class="form-control table-select w-100" required>
|
||||
<option value=""> {{ __('Select one') }}</option>
|
||||
@foreach ($banks as $bank)
|
||||
<option value="{{ $bank->id }}">{{ $bank->name }}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
<span></span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-6">
|
||||
<label>{{ __('Amount') }}</label>
|
||||
<input type="number" class="form-control" placeholder="{{ __('ex 500') }}">
|
||||
</div>
|
||||
|
||||
<div class="col-lg-6">
|
||||
<label>{{ __('Transfer Date') }}</label>
|
||||
<input type="date" name="date" class="form-control">
|
||||
</div>
|
||||
|
||||
<div class="col-lg-6">
|
||||
<h6 class="img-title">{{ __('Image') }} <span>{{ __('(PNG & JPG)') }}</span></h6>
|
||||
<div id="uploadBox">
|
||||
<div id="previewArea">
|
||||
<div id="iconArea">
|
||||
<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>
|
||||
</div>
|
||||
</div>
|
||||
<input type="file" name="image" id="fileInput" accept="image/*">
|
||||
</div>
|
||||
|
||||
<div class="col-lg-12 mb-2">
|
||||
<label>{{ __('Description') }}</label>
|
||||
<textarea name="description" class="form-control" placeholder="{{ __('description') }}"></textarea>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="col-lg-12">
|
||||
<div class="button-group text-center mt-5">
|
||||
<button type="reset" class="theme-btn border-btn m-2">{{ __('Reset') }}</button>
|
||||
<button type="submit" class="theme-btn m-2 submit-btn">{{ __('Send') }}</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
52
Modules/Business/resources/views/cashes/view.blade.php
Normal file
52
Modules/Business/resources/views/cashes/view.blade.php
Normal file
@@ -0,0 +1,52 @@
|
||||
<div class="modal fade p-0" id="cash-view">
|
||||
<div class="modal-dialog modal-dialog-centered modal-md">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h1 class="modal-title fs-5">{{ __('View Details') }}</h1>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="modal-body order-form-section">
|
||||
<table class="info-table">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>{{ __('Transaction Image') }}</td>
|
||||
<td>:</td>
|
||||
<td><img class="table-img" id="view_img" src=""></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{ __('Transaction By') }}</td>
|
||||
<td>:</td>
|
||||
<td id="view_user"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{ __('Transaction Type') }}</td>
|
||||
<td>:</td>
|
||||
<td id="view_transaction_type"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{ __('Platform') }}</td>
|
||||
<td>:</td>
|
||||
<td id="view_platform"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{ __('Amount') }}</td>
|
||||
<td>:</td>
|
||||
<td id="view_amount"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{ __('Date') }}</td>
|
||||
<td>:</td>
|
||||
<td id="view_date"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{ __('Note') }}</td>
|
||||
<td>:</td>
|
||||
<td id="view_note"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
45
Modules/Business/resources/views/categories/create.blade.php
Normal file
45
Modules/Business/resources/views/categories/create.blade.php
Normal file
@@ -0,0 +1,45 @@
|
||||
<div class="modal fade common-validation-modal" id="category-create-modal">
|
||||
<div class="modal-dialog modal-dialog-centered">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h1 class="modal-title fs-5">{{ __('Add New Category') }}</h1>
|
||||
<button type="button" class="btn-close modal-close-btn" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="personal-info">
|
||||
<form action="{{ route('business.categories.store') }}" method="post" enctype="multipart/form-data" class="ajaxform_instant_reload">
|
||||
@csrf
|
||||
|
||||
<div class="row">
|
||||
<div class="mt-3 col-lg-12">
|
||||
<label class="custom-top-label">{{ __('Name') }}</label>
|
||||
<input type="text" name="categoryName" placeholder="{{ __('Enter Category Name') }}" required class="form-control"/>
|
||||
</div>
|
||||
|
||||
<div class="mt-3 col-lg-12">
|
||||
<label>{{ __('Icon') }}</label>
|
||||
<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>
|
||||
<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">
|
||||
<button type="reset" class="theme-btn border-btn m-2">{{ __('Reset') }}</button>
|
||||
@usercan('categories.create')
|
||||
<button class="theme-btn m-2 submit-btn">{{ __('Save') }}</button>
|
||||
@endusercan
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
79
Modules/Business/resources/views/categories/datas.blade.php
Normal file
79
Modules/Business/resources/views/categories/datas.blade.php
Normal file
@@ -0,0 +1,79 @@
|
||||
<div class="responsive-table m-0">
|
||||
<table class="table" id="datatable">
|
||||
<thead>
|
||||
<tr>
|
||||
@usercan('categories.delete')
|
||||
<th class="w-60">
|
||||
<div class="d-flex align-items-center gap-3">
|
||||
<input type="checkbox" class="select-all-delete multi-delete">
|
||||
</div>
|
||||
</th>
|
||||
@endusercan
|
||||
|
||||
<th>{{ __('SL') }}.</th>
|
||||
<th>{{ __('Icon') }}</th>
|
||||
<th class="text-start">{{ __('Name') }}</th>
|
||||
<th>{{ __('Status') }}</th>
|
||||
<th>{{ __('Action') }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="business-category-data">
|
||||
@foreach ($categories as $category)
|
||||
<tr>
|
||||
@usercan('categories.delete')
|
||||
<td class="w-60 checkbox">
|
||||
<input type="checkbox" name="ids[]" class="delete-checkbox-item multi-delete"
|
||||
value="{{ $category->id }}">
|
||||
</td>
|
||||
@endusercan
|
||||
<td>{{ ($categories->currentPage() - 1) * $categories->perPage() + $loop->iteration }}</td>
|
||||
<td>
|
||||
<img src="{{ asset($category->icon ?? 'assets/images/logo/upload2.jpg') }}" alt="Img"
|
||||
class="table-product-img">
|
||||
</td>
|
||||
|
||||
<td class="text-start">{{ $category->categoryName }}</td>
|
||||
<td class="text-center">
|
||||
<label class="switch">
|
||||
<input type="checkbox" {{ $category->status == 1 ? 'checked' : '' }} class="status"
|
||||
data-url="{{ route('business.categories.status', $category->id) }}">
|
||||
<span class="slider round"></span>
|
||||
</label>
|
||||
</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>
|
||||
<ul class="dropdown-menu">
|
||||
<li>
|
||||
@usercan('categories.update')
|
||||
<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="{{ asset($category->icon ?? 'assets/images/icons/upload-icon.svg') }}">
|
||||
<i class="fal fa-pencil-alt"></i>{{ __('Edit') }}
|
||||
</a>
|
||||
@endusercan
|
||||
</li>
|
||||
<li>
|
||||
@usercan('categories.delete')
|
||||
<a href="{{ route('business.categories.destroy', $category->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>
|
||||
</div>
|
||||
<div class="mt-3">
|
||||
{{ $categories->links('vendor.pagination.bootstrap-5') }}
|
||||
</div>
|
||||
46
Modules/Business/resources/views/categories/edit.blade.php
Normal file
46
Modules/Business/resources/views/categories/edit.blade.php
Normal file
@@ -0,0 +1,46 @@
|
||||
<div class="modal fade common-validation-modal" id="category-edit-modal">
|
||||
<div class="modal-dialog modal-dialog-centered">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h1 class="modal-title fs-5">{{ __('Edit Category') }}</h1>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="personal-info">
|
||||
<form action="" method="post" enctype="multipart/form-data"
|
||||
class="ajaxform_instant_reload categoryEditForm">
|
||||
@csrf
|
||||
@method('put')
|
||||
<div class="row">
|
||||
<div class="mt-3 col-lg-12">
|
||||
<label class="custom-top-label">{{ __('Name') }}</label>
|
||||
<input type="text" name="categoryName" id="category_name" required placeholder="{{ __('Enter Category Name') }}" class="form-control"/>
|
||||
</div>
|
||||
<div class="col-lg-12 mb-2">
|
||||
<label>{{ __("Icon") }}</label>
|
||||
<div class="border rounded upload-img-container">
|
||||
<label class="upload-v4">
|
||||
<div class="img-wrp">
|
||||
<img src="" alt="user" id="category_icon">
|
||||
</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>
|
||||
|
||||
</div>
|
||||
<div class="offcanvas-footer mt-3">
|
||||
<div class="button-group text-center mt-5">
|
||||
<a href="{{ route('business.categories.index') }}"
|
||||
class="theme-btn border-btn m-2">{{ __('Cancel') }}</a>
|
||||
@usercan('categories.update')
|
||||
<button class="theme-btn m-2 submit-btn">{{ __('Save') }}</button>
|
||||
@endusercan
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
69
Modules/Business/resources/views/categories/index.blade.php
Normal file
69
Modules/Business/resources/views/categories/index.blade.php
Normal file
@@ -0,0 +1,69 @@
|
||||
@extends('layouts.business.master')
|
||||
|
||||
@section('title')
|
||||
{{ __('Category List') }}
|
||||
@endsection
|
||||
|
||||
@section('main_content')
|
||||
<div class="erp-table-section">
|
||||
<div class="container-fluid">
|
||||
<div class="card">
|
||||
<div class="card-bodys">
|
||||
<div class="table-header p-16">
|
||||
<h4>{{ __('Category List') }}</h4>
|
||||
@usercan('categories.create')
|
||||
<a type="button" href="#category-create-modal"
|
||||
class="add-order-btn rounded-2 {{ Route::is('admin.categories.create') ? 'active' : '' }}"
|
||||
class="btn btn-primary" data-bs-toggle="modal"><i
|
||||
class="fas fa-plus-circle me-1"></i>{{ __('Add new Category') }}</a>
|
||||
@endusercan
|
||||
</div>
|
||||
<div class="table-top-form p-16-0">
|
||||
<form action="{{ route('business.categories.index') }}" method="GET" class="filter-form" table="#business-category-data">
|
||||
|
||||
<div class="table-top-left d-flex gap-3 margin-l-16">
|
||||
<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="table-search position-relative">
|
||||
<input type="text" name="search" class="form-control" placeholder="{{ __('Search...') }}" value="{{ request('search') }}">
|
||||
<span class="position-absolute">
|
||||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M14.582 14.582L18.332 18.332" stroke="#4D4D4D" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M16.668 9.16797C16.668 5.02584 13.3101 1.66797 9.16797 1.66797C5.02584 1.66797 1.66797 5.02584 1.66797 9.16797C1.66797 13.3101 5.02584 16.668 9.16797 16.668C13.3101 16.668 16.668 13.3101 16.668 9.16797Z" stroke="#4D4D4D" stroke-width="1.25" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="delete-item delete-show d-none">
|
||||
<div class="delete-item-show">
|
||||
<p class="fw-bold"><span class="selected-count"></span> {{ __('items show') }}</p>
|
||||
<button data-bs-toggle="modal" class="trigger-modal" data-bs-target="#multi-delete-modal" data-url="{{ route('business.categories.delete-all') }}">{{ __('Delete') }}</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="business-category-data">
|
||||
@include('business::categories.datas')
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@push('modal')
|
||||
@include('business::component.delete-modal')
|
||||
@include('business::categories.create')
|
||||
@include('business::categories.edit')
|
||||
@endpush
|
||||
|
||||
70
Modules/Business/resources/views/cheques/datas.blade.php
Normal file
70
Modules/Business/resources/views/cheques/datas.blade.php
Normal file
@@ -0,0 +1,70 @@
|
||||
<div class="responsive-table m-0">
|
||||
<table class="table" id="datatable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="w-60">
|
||||
<div class="d-flex align-items-center gap-3">
|
||||
<input type="checkbox" class="select-all-delete multi-delete">
|
||||
</div>
|
||||
</th>
|
||||
<th>{{ __('SL') }}.</th>
|
||||
<th>{{ __('Date') }}</th>
|
||||
<th>{{ __('Name') }}</th>
|
||||
<th>{{ __('Type') }}</th>
|
||||
<th>{{ __('Cheque Number') }}</th>
|
||||
<th>{{ __('Payment') }}</th>
|
||||
<th>{{ __('Amount') }}</th>
|
||||
<th>{{ __('Status') }}</th>
|
||||
<th class="text-center">{{ __('Action') }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach ($cheques as $cheque)
|
||||
<tr>
|
||||
<td class="w-60 checkbox">
|
||||
<input type="checkbox" name="ids[]" class="delete-checkbox-item multi-delete"
|
||||
value="{{ $cheque->id }}">
|
||||
</td>
|
||||
<td>{{ ($cheques->currentPage() - 1) * $cheques->perPage() + $loop->iteration }}</td>
|
||||
<td>{{ formatted_date($cheque->date) }}</td>
|
||||
<td>{{ $cheque->user?->name }}</td>
|
||||
<td>{{ ucwords(str_replace('_', ' ', $cheque->platform)) }}</td>
|
||||
<td>{{ $cheque->meta['cheque_number'] ?? '' }}</td>
|
||||
<td>{{ ucwords(str_replace('_', ' ', $cheque->transaction_type)) }}</td>
|
||||
<td>
|
||||
{{ currency_format($cheque->amount, currency: business_currency()) }}
|
||||
</td>
|
||||
<td class="{{ $cheque->type == 'pending' ? 'text-danger' : 'text-success' }}">
|
||||
{{ $cheque->type }}
|
||||
</td>
|
||||
<td>
|
||||
<div class="d-flex align-items-center gap-2 justify-content-center">
|
||||
@if (($cheque->type ?? '') == 'pending')
|
||||
<a type="button" class="add-order-btn rounded-2 btn btn-primary cheque-transfer-btn"
|
||||
data-bs-toggle="modal" data-bs-target="#deposit"
|
||||
data-received-from = "{{ $cheque->user?->name }}"
|
||||
data-transaction-id="{{ $cheque->id }}"
|
||||
data-cheque-amount = "{{ currency_format($cheque->amount, currency: business_currency()) }}"
|
||||
data-cheque-no = "{{ $cheque->meta['cheque_number'] ?? '' }}"
|
||||
data-cheque-date = "{{ formatted_date($cheque->date) }}"
|
||||
data-ref-no = "{{ $cheque->invoice_no }}">
|
||||
{{__('Deposit') }}
|
||||
</a>
|
||||
@else
|
||||
<a type="button" class="add-order-btn rounded-2 btn btn-primary reopen-btn"
|
||||
data-transaction-id="{{ $cheque->id }}">
|
||||
{{__('Re-Open') }}
|
||||
</a>
|
||||
@endif
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div class="mt-3">
|
||||
{{ $cheques->links('vendor.pagination.bootstrap-5') }}
|
||||
</div>
|
||||
94
Modules/Business/resources/views/cheques/index.blade.php
Normal file
94
Modules/Business/resources/views/cheques/index.blade.php
Normal file
@@ -0,0 +1,94 @@
|
||||
@extends('layouts.business.master')
|
||||
|
||||
@section('title')
|
||||
{{ __('Cheques List') }}
|
||||
@endsection
|
||||
|
||||
@section('main_content')
|
||||
<div class="erp-table-section">
|
||||
<div class="container-fluid">
|
||||
<div class="card">
|
||||
<div class="card-bodys">
|
||||
<div class="table-header p-16">
|
||||
<h4>{{ __('Cheques List') }}</h4>
|
||||
</div>
|
||||
<div class="table-top-form p-16-0">
|
||||
<form action="{{ route('business.cheques.index') }}" method="GET" class="filter-form" table="#cheques-data">
|
||||
|
||||
<div class="table-top-left d-flex gap-3 margin-l-16">
|
||||
<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="table-search position-relative">
|
||||
<input type="text" name="search" class="form-control" placeholder="{{ __('Search...') }}" value="{{ request('search') }}">
|
||||
<span class="position-absolute">
|
||||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M14.582 14.582L18.332 18.332" stroke="#4D4D4D" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M16.668 9.16797C16.668 5.02584 13.3101 1.66797 9.16797 1.66797C5.02584 1.66797 1.66797 5.02584 1.66797 9.16797C1.66797 13.3101 5.02584 16.668 9.16797 16.668C13.3101 16.668 16.668 13.3101 16.668 9.16797Z" stroke="#4D4D4D" stroke-width="1.25" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
</span>
|
||||
</div>
|
||||
<div class="custom-from-to align-items-center date-filters d-none">
|
||||
<label class="header-label">{{ __('From Date') }}</label>
|
||||
<input type="date" name="from_date" value="{{ request('from_date') ?? now()->format('Y-m-d') }}" class="form-control">
|
||||
</div>
|
||||
<div class="custom-from-to align-items-center date-filters d-none">
|
||||
<label class="header-label">{{ __('To Date') }}</label>
|
||||
<input type="date" name="to_date" value="{{ request('to_date') ?? now()->format('Y-m-d') }}" class="form-control">
|
||||
</div>
|
||||
<div class="gpt-up-down-arrow position-relative d-print-none custom-date-filter">
|
||||
<select name="custom_days" class="form-control custom-days">
|
||||
<option value="today" {{ request()->get('custom_days') == 'today' ? 'selected' : '' }}>{{ __('Today') }}</option>
|
||||
<option value="yesterday" {{ request()->get('custom_days') == 'yesterday' ? 'selected' : '' }}>{{ __('Yesterday') }}</option>
|
||||
<option value="last_seven_days" {{ request()->get('custom_days') == 'last_seven_days' ? 'selected' : '' }}>{{ __('Last 7 Days') }}</option>
|
||||
<option value="last_thirty_days" {{ request()->get('custom_days') == 'last_thirty_days' ? 'selected' : '' }}>{{ __('Last 30 Days') }}</option>
|
||||
<option value="current_month" {{ request()->get('custom_days') == 'current_month' ? 'selected' : '' }}>{{ __('Current Month') }}</option>
|
||||
<option value="last_month" {{ request()->get('custom_days') == 'last_month' ? 'selected' : '' }}>{{ __('Last Month') }}</option>
|
||||
<option value="current_year" {{ request()->get('custom_days') == 'current_year' ? 'selected' : '' }}>{{ __('Current Year') }}</option>
|
||||
<option value="custom_date" {{ request()->get('custom_days') == 'custom_date' ? 'selected' : '' }}>{{ __('Custom Date') }}</option>
|
||||
</select>
|
||||
<span></span>
|
||||
<div class="calendar-icon">
|
||||
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M12.6667 2.67188H3.33333C2.59695 2.67188 2 3.26883 2 4.00521V13.3385C2 14.0749 2.59695 14.6719 3.33333 14.6719H12.6667C13.403 14.6719 14 14.0749 14 13.3385V4.00521C14 3.26883 13.403 2.67188 12.6667 2.67188Z" stroke="#4B5563" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M10.6641 1.32812V3.99479" stroke="#4B5563" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M5.33594 1.32812V3.99479" stroke="#4B5563" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M2 6.67188H14" stroke="#4B5563" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="delete-item delete-show d-none">
|
||||
<div class="delete-item-show">
|
||||
<p class="fw-bold"><span class="selected-count"></span> {{ __('items show') }}</p>
|
||||
<button data-bs-toggle="modal" class="trigger-modal" data-bs-target="#multi-delete-modal" data-url="{{ route('business.banks.delete-all') }}">{{ __('Delete') }}</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="cheques-data">
|
||||
@include('business::cheques.datas')
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@push('modal')
|
||||
@include('business::cheques.modal.reopen')
|
||||
@include('business::cheques.modal.transfer')
|
||||
@endpush
|
||||
|
||||
@push('js')
|
||||
<script src="{{ asset('assets/js/custom/account.js') }}"></script>
|
||||
@endpush
|
||||
@@ -0,0 +1,34 @@
|
||||
<div class="modal fade common-validation-modal" id="reopen">
|
||||
<div class="modal-dialog modal-dialog-centered modal-md">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<form action="{{ route('business.cheques.reopen') }}" method="POST" class="ajaxform_instant_reload">
|
||||
@csrf
|
||||
<input type="hidden" name="transaction_id" id="reopen_transaction_id">
|
||||
<div class="modal-body">
|
||||
<div class="personal-info">
|
||||
<div class="row">
|
||||
<div class="d-flex justify-content-center">
|
||||
<p class="fs-5 text-black mt-5">
|
||||
{{ __('Are you sure you want to reopen this cheque?') }}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-12">
|
||||
<div class="button-group text-center mt-5">
|
||||
<button type="button" data-bs-dismiss="modal" class="theme-btn border-btn m-2">
|
||||
{{ __('Close') }}
|
||||
</button>
|
||||
<button type="submit" class="theme-btn m-2 submit-btn">
|
||||
{{ __('Okay') }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,65 @@
|
||||
<div class="modal fade common-validation-modal" id="deposit">
|
||||
<div class="modal-dialog modal-dialog-centered modal-md">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h1 class="modal-title fs-5">{{__('Transfer Cheque') }}</h1>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="personal-info">
|
||||
<form action="" method="post" class="ajaxform_instant_reload">
|
||||
@csrf
|
||||
|
||||
<input type="hidden" name="transaction_id" id="deposit_transaction_id">
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-12 order-form-section">
|
||||
<div class="costing-list">
|
||||
<ul>
|
||||
<li><span>{{ __('Received From') }}</span> <span>:</span> <span id="received_from"></span></li>
|
||||
<li><span>{{ __('Cheque Amount') }}</span> <span>:</span> <span id="cheque_amount"></span></li>
|
||||
<li><span>{{ __('Cheque Number') }}</span> <span>:</span> <span id="cheque_no"></span></li>
|
||||
<li><span>{{ __('Cheque Date') }}</span> <span>:</span> <span id="cheque_date"></span></li>
|
||||
<li><span>{{ __('Reference No') }}</span> <span>:</span> <span id="ref_no"></span></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-12 mb-2">
|
||||
<label>{{ __('Deposit To') }}</label>
|
||||
<div class="gpt-up-down-arrow position-relative">
|
||||
<select name="payment_type" class="form-control table-select w-100" required>
|
||||
<option value=""> {{ __('Select one') }}</option>
|
||||
<option value="cash">{{ __('Cash') }}</option>
|
||||
@foreach ($banks as $bank)
|
||||
<option value="{{ $bank->id }}">{{ $bank->name }}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
<span></span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-12">
|
||||
<label>{{__('Transfer Date')}}</label>
|
||||
<input type="date" name="date" class="form-control" value="{{ now()->format('Y-m-d') }}">
|
||||
</div>
|
||||
|
||||
<div class="col-lg-12 mb-2">
|
||||
<label>{{__('Description')}}</label>
|
||||
<textarea name="note" class="form-control" placeholder="Enter description"></textarea>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="col-lg-12">
|
||||
<div class="button-group text-center mt-5">
|
||||
<button type="reset" class="theme-btn border-btn m-2">{{__('Reset') }}</button>
|
||||
<button type="submit" class="theme-btn m-2 submit-btn">{{__('Send') }}</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
73
Modules/Business/resources/views/commissions/datas.blade.php
Normal file
73
Modules/Business/resources/views/commissions/datas.blade.php
Normal file
@@ -0,0 +1,73 @@
|
||||
<div class="responsive-table m-0">
|
||||
<table class="table" id="datatable">
|
||||
<thead>
|
||||
<tr>
|
||||
@usercan('categories.delete')
|
||||
<th class="w-60">
|
||||
<div class="d-flex align-items-center gap-3">
|
||||
<input type="checkbox" class="select-all-delete multi-delete">
|
||||
</div>
|
||||
</th>
|
||||
@endusercan
|
||||
|
||||
<th>{{ __('SL') }}.</th>
|
||||
<th>{{ __('Grade') }}</th>
|
||||
<th>{{ __('Commission ') }}</th>
|
||||
<th>{{ __('Sales Target') }}</th>
|
||||
<th>{{ __('Status') }}</th>
|
||||
<th>{{ __('Action') }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="business-category-data">
|
||||
<tr>
|
||||
<td class="w-60 checkbox">
|
||||
<input type="checkbox" name="ids[]" class="delete-checkbox-item multi-delete"
|
||||
value="">
|
||||
</td>
|
||||
<td>{{__('1') }}</td>
|
||||
<td>{{__('A') }}</td>
|
||||
<td>{{__('10%') }}</td>
|
||||
<td>{{__('100,00,0000') }}</td>
|
||||
<td>
|
||||
<label class="switch m-0">
|
||||
<input type="checkbox" name="allow_multibranch" class="change-text">
|
||||
<span class="slider round"></span>
|
||||
</label>
|
||||
</td>
|
||||
<td>
|
||||
<div class="dropdown table-action">
|
||||
<button type="button" data-bs-toggle="dropdown">
|
||||
<i class="far fa-ellipsis-v"></i>
|
||||
</button>
|
||||
|
||||
<ul class="dropdown-menu">
|
||||
<li>
|
||||
<a href="#" data-bs-toggle="modal">
|
||||
<i class="fal fa-eye"></i>
|
||||
{{ __('View') }}
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="#">
|
||||
<i class="fal fa-edit"></i>
|
||||
{{ __('Edit') }}
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="#" class="confirm-action">
|
||||
<i class="fal fa-trash-alt"></i>
|
||||
{{ __('Delete') }}
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="mt-3">
|
||||
|
||||
</div>
|
||||
@@ -0,0 +1,44 @@
|
||||
<table class="table table-bordered">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="text-start">{{ __('Assets') }}</th>
|
||||
<th class="text-end">{{ __('Payment In') }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="">
|
||||
@foreach ($asset_datas as $data)
|
||||
@php
|
||||
$product_asset_value = 0;
|
||||
|
||||
if ($data->product_type == 'single' || $data->product_type == 'variant') {
|
||||
foreach ($data->stocks as $stock) {
|
||||
$product_asset_value += $stock->productStock * $stock->productPurchasePrice;
|
||||
}
|
||||
} elseif ($data->product_type == 'combo') {
|
||||
foreach ($data->combo_products as $combo_product) {
|
||||
if ($combo_product->stock) {
|
||||
$product_asset_value +=
|
||||
$combo_product->stock->productStock * $combo_product->purchase_price;
|
||||
}
|
||||
}
|
||||
}
|
||||
@endphp
|
||||
<tr>
|
||||
<td class="text-start loss-profit-tbody">
|
||||
{{ $data->source == 'product' ? $data->productName : $data->name }}</td>
|
||||
<td class="text-end loss-profit-tbody">
|
||||
{{ $data->source == 'product'
|
||||
? currency_format($product_asset_value, currency: business_currency())
|
||||
: currency_format($data->balance, currency: business_currency()) }}
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
@if ($asset_datas->count() > 0)
|
||||
<tr class="fw-bold">
|
||||
<td colspan="1" class="text-start bottom-net-profit">{{ __('Total') }}</td>
|
||||
<td class="text-end bottom-net-profit">
|
||||
{{ currency_format($total_asset, currency: business_currency()) }}</td>
|
||||
</tr>
|
||||
@endif
|
||||
</tbody>
|
||||
</table>
|
||||
130
Modules/Business/resources/views/commissions/index.blade.php
Normal file
130
Modules/Business/resources/views/commissions/index.blade.php
Normal file
@@ -0,0 +1,130 @@
|
||||
@extends('layouts.business.master')
|
||||
|
||||
@section('title')
|
||||
{{ __('Commission List') }}
|
||||
@endsection
|
||||
|
||||
@section('main_content')
|
||||
<div class="erp-table-section">
|
||||
<div class="container-fluid">
|
||||
<div class="card">
|
||||
<div class="card-bodys">
|
||||
<div class="table-header p-16 d-print-none">
|
||||
<h4>{{ __('Set Commission') }}</h4>
|
||||
<a type="button"
|
||||
class="add-order-btn rounded-2"
|
||||
data-bs-toggle="modal"
|
||||
data-bs-target="#addSetCommissionModal">
|
||||
<i class="fas fa-plus-circle me-1"></i> {{ __("Add Target") }}
|
||||
</a>
|
||||
|
||||
</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">{{ __('Set Commission') }}</h4>
|
||||
</div>
|
||||
{{-- search bar --}}
|
||||
<div class="loss-profit-container d-print-none">
|
||||
<div class="table-top-form">
|
||||
<form action="{{ route('business.balance-sheet.index') }}" method="GET"
|
||||
class="filter-form" table="#set-commission-data">
|
||||
<div class="d-flex align-items-center gap-3 flex-wrap table-top-left">
|
||||
<div class="gpt-up-down-arrow position-relative">
|
||||
<select name="per_page" class="form-control">
|
||||
<option value="20">{{ __('Show 20') }}</option>
|
||||
<option value="50">{{ __('Show 50') }}</option>
|
||||
<option value="100">{{ __('Show 100') }}</option>
|
||||
<option value="500">{{ __('Show 500') }}</option>
|
||||
</select>
|
||||
<span></span>
|
||||
</div>
|
||||
<div class="table-search position-relative">
|
||||
<input type="text" name="search" class="form-control" placeholder="{{ __('Search...') }}" value="{{ request('search') }}">
|
||||
<span class="position-absolute">
|
||||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M14.582 14.582L18.332 18.332" stroke="#4D4D4D" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M16.668 9.16797C16.668 5.02584 13.3101 1.66797 9.16797 1.66797C5.02584 1.66797 1.66797 5.02584 1.66797 9.16797C1.66797 13.3101 5.02584 16.668 9.16797 16.668C13.3101 16.668 16.668 13.3101 16.668 9.16797Z" stroke="#4D4D4D" stroke-width="1.25" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<div class="table-top-btn-group d-print-none p-2">
|
||||
<ul>
|
||||
<li>
|
||||
<a href="{{ route('business.balance-sheet.excel') }}">
|
||||
<img src="{{ asset('assets/images/logo/csv.svg') }}" alt="">
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="{{ route('business.balance-sheet.csv') }}">
|
||||
<img src="{{ asset('assets/images/logo/excel.svg') }}" alt="">
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="blank" href="{{ route('business.balance-sheet.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>
|
||||
<div id="set-commission-data">
|
||||
@include('business::commissions.datas')
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@push('modal')
|
||||
<div class="modal fade" id="addSetCommissionModal" tabindex="-1" aria-hidden="true">
|
||||
<div class="modal-dialog modal-md modal-dialog-centered">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title">{{ __("Add Set Commission") }}</h5>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal"></button>
|
||||
</div>
|
||||
|
||||
<div class="modal-body">
|
||||
<div class="order-form-section">
|
||||
<div class="row">
|
||||
<div>
|
||||
<label>{{ __('Grade ') }}</label>
|
||||
<input type="text" name="short_desc" class="form-control" placeholder="{{ __('Enter grade name') }}">
|
||||
</div>
|
||||
<div class="">
|
||||
<label>{{ __('Commission') }}</label>
|
||||
<div class="d-flex align-items-center text-select-container ">
|
||||
<input type="text" name="subscriptionName" required class="form-control" placeholder="{{ __('Ex: 5') }}">
|
||||
<div class="gpt-up-down-arrow position-relative">
|
||||
<select name="type" id="plan-type" required class="form-control table-select w-100">
|
||||
<option value="percentage"> {{__('Percentage')}}</option>
|
||||
<option value="percentage"> {{__('Percentage ')}}</option>
|
||||
</select>
|
||||
<span></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<label>{{ __('Sales Target') }}</label>
|
||||
<input type="text" name="short_desc" class="form-control" placeholder="{{ __('Ex: $100,00,0000') }}">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="button-group text-center">
|
||||
<button type="reset" class="theme-btn border-btn m-2">{{ __('Cancel') }}</button>
|
||||
<button class="theme-btn m-2 submit-btn">{{ __('Send') }}</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endpush
|
||||
76
Modules/Business/resources/views/commissions/pdf.blade.php
Normal file
76
Modules/Business/resources/views/commissions/pdf.blade.php
Normal file
@@ -0,0 +1,76 @@
|
||||
@extends('layouts.business.pdf.pdf_layout')
|
||||
|
||||
@section('pdf_title')
|
||||
<div class="table-header justify-content-center border-0 d-print-block text-center">
|
||||
@include('business::print.header')
|
||||
<h4 style="text-align: center; margin: 0; padding: 0; font-size: 16px;">
|
||||
{{ __('Balance Sheet Report') }}
|
||||
</h4>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@section('pdf_content')
|
||||
|
||||
<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="font-size:12px; border:1px solid gainsboro; color: white">
|
||||
{{ __('Assets') }}
|
||||
</th>
|
||||
<th style="font-size:12px; border:1px solid gainsboro; color: white">
|
||||
{{ __('Payment In') }}
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
@foreach($asset_datas as $data)
|
||||
@php
|
||||
$product_asset_value = 0;
|
||||
if($data->source === 'product') {
|
||||
if($data->product_type == 'single' || $data->product_type == 'variant') {
|
||||
foreach($data->stocks as $stock) {
|
||||
$product_asset_value += $stock->productStock * $stock->productPurchasePrice;
|
||||
}
|
||||
}
|
||||
elseif($data->product_type == 'combo') {
|
||||
foreach($data->combo_products as $combo_product) {
|
||||
if($combo_product->stock) {
|
||||
$product_asset_value += $combo_product->stock->productStock * $combo_product->purchase_price;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@endphp
|
||||
<tr style="background-color: {{ $loop->even ? '#F5F5F5' : '#FFFFFF' }};">
|
||||
<td style="border:1px solid gainsboro; text-align:center;">
|
||||
{{ $data->source == 'product' ? $data->productName : $data->name }}
|
||||
</td>
|
||||
|
||||
<td style="border:1px solid gainsboro; text-align:center;">
|
||||
@if($data->source == 'product')
|
||||
{{ currency_format($product_asset_value, currency: business_currency()) }}
|
||||
@else
|
||||
{{ currency_format($data->balance, currency: business_currency()) }}
|
||||
@endif
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
|
||||
@if ($asset_datas->count() > 0)
|
||||
<tr style="background-color:#C52127; color:white; font-weight:bold;">
|
||||
<td style="border:1px solid gainsboro; text-align:center; color: white">
|
||||
{{ __('Total') }}
|
||||
</td>
|
||||
<td style="border:1px solid gainsboro; text-align:center; color: white; font-weight: 600;">
|
||||
{{ currency_format($total_asset, currency: business_currency()) }}
|
||||
</td>
|
||||
</tr>
|
||||
@endif
|
||||
|
||||
</table>
|
||||
|
||||
@endsection
|
||||
@@ -0,0 +1,58 @@
|
||||
<div class="modal fade common-validation-modal" id="add-payment-modal">
|
||||
<div class="modal-dialog modal-dialog-centered modal-lg">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h1 class="modal-title fs-5">{{ __('Add Payment') }}</h1>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="personal-info">
|
||||
<form action="" method="post" enctype="multipart/form-data" class="ajaxform_instant_reload">
|
||||
@csrf
|
||||
<div class="row">
|
||||
<div class="col-lg-6 mb-2">
|
||||
<label>{{ __('Total Amount') }}</label>
|
||||
<input type="number" class="form-control total-amount" readonly>
|
||||
</div>
|
||||
<div class="col-lg-6 mb-2">
|
||||
<label>{{ __('Date') }}</label>
|
||||
<input type="date" name="date" required class="form-control payment-date" value="{{ date('Y-m-d') }}">
|
||||
</div>
|
||||
<div class="col-lg-6 mb-2">
|
||||
<label>{{ __('Amount') }}</label>
|
||||
<input type="number" name="amount" class="form-control payment-amount" required>
|
||||
</div>
|
||||
<div class="col-lg-6 mb-2">
|
||||
<label class="custom-top-label">{{ __('Payment Type') }}</label>
|
||||
<div class="gpt-up-down-arrow position-relative">
|
||||
<select class="form-control form-selected payment-type" required>
|
||||
<option value="cash">{{ __('Cash') }}</option>
|
||||
<option value="cheque">{{ __('Cheque') }}</option>
|
||||
@foreach ($payment_types as $type)
|
||||
<option value="{{ $type->id }}">{{ $type->name }}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
<span></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-6 mb-2 cheque-field d-none">
|
||||
<label>{{ __('Cheque Number') }}</label>
|
||||
<input type="text" name="cheque_number" class="form-control cheque-number">
|
||||
</div>
|
||||
<div class="col-lg-12">
|
||||
<label>{{__('Note')}}</label>
|
||||
<textarea name="note" class="form-control" placeholder="{{ __('Type note...') }}"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-12">
|
||||
<div class="button-group text-center mt-5">
|
||||
<button type="button" class="theme-btn border-btn m-2" data-bs-dismiss="modal">{{ __('Close') }}</button>
|
||||
<button class="theme-btn m-2 submit-btn">{{ __('Pay Now') }}</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,22 @@
|
||||
<div class="modal fade" id="multi-delete-modal" tabindex="-1" aria-labelledby="multi-delete-modal-label" aria-hidden="true">
|
||||
<div class="modal-dialog modal-dialog-centered">
|
||||
<div class="modal-content">
|
||||
<div class="text-end">
|
||||
<button type="button" class="btn-close m-3 mb-0" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="modal-body pt-0">
|
||||
<div class="delete-modal">
|
||||
<h5>{{ __('Are You Sure?') }}</h5>
|
||||
<p>{{ __("You want to delete everything!") }}</p>
|
||||
</div>
|
||||
<div class="multiple-button-group">
|
||||
<button class="btn reset-btn" data-bs-dismiss="modal">{{ __('Cancel') }}</button>
|
||||
<form id="dynamic-delete-form" method="POST" class="ajaxform_instant_reload">
|
||||
@csrf
|
||||
<button class="btn theme-btn submit-btn create-all-delete" type="submit">{{ __('Yes, Delete It!') }}</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,29 @@
|
||||
<div class="modal fade" id="view-due-payment-modal" tabindex="-1" aria-labelledby="viewPaymentModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog modal-lg modal-dialog-centered">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title">{{ __('View Payment') }}</h5>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
|
||||
<div class="modal-body">
|
||||
<table class="table table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{{ __('SL.') }}</th>
|
||||
<th>{{ __('Date') }}</th>
|
||||
<th>{{ __('Receipt No.') }}</th>
|
||||
<th>{{ __('Amount') }}</th>
|
||||
<th>{{ __('Payment Type') }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="view-due-payment-table-data">
|
||||
<tr>
|
||||
<td colspan="6" class="text-center text-muted">{{ __('Loading...') }}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,61 @@
|
||||
<div class="modal fade common-validation-modal" id="edit-payment-modal">
|
||||
<div class="modal-dialog modal-dialog-centered modal-lg">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h1 class="modal-title fs-5">{{ __('Edit Payment') }}</h1>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="personal-info">
|
||||
<form action="" method="post" enctype="multipart/form-data" class="ajaxform_instant_reload">
|
||||
@csrf
|
||||
@method('PUT')
|
||||
<input type="hidden" name="transaction_id" id="transaction_id">
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-6 mb-2">
|
||||
<label>{{ __('Total Amount') }}</label>
|
||||
<input type="number" class="form-control" readonly id="total-amount">
|
||||
</div>
|
||||
<div class="col-lg-6 mb-2">
|
||||
<label>{{ __('Date') }}</label>
|
||||
<input type="date" name="date" required class="form-control" id="payment-date">
|
||||
</div>
|
||||
<div class="col-lg-6 mb-2">
|
||||
<label>{{ __('Amount') }}</label>
|
||||
<input type="number" name="amount" class="form-control" required id="payment-amount" step="0.01">
|
||||
</div>
|
||||
<div class="col-lg-6 mb-2">
|
||||
<label class="custom-top-label">{{ __('Payment Type') }}</label>
|
||||
<div class="gpt-up-down-arrow position-relative">
|
||||
<select class="form-control form-selected payment-type" name="payment_type" required id="payment-type">
|
||||
<option value="cash">{{ __('Cash') }}</option>
|
||||
<option value="cheque">{{ __('Cheque') }}</option>
|
||||
@foreach ($payment_types as $type)
|
||||
<option value="{{ $type->id }}">{{ $type->name }}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
<span></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-6 mb-2 cheque-field d-none">
|
||||
<label>{{ __('Cheque Number') }}</label>
|
||||
<input type="text" name="cheque_number" class="form-control" id="cheque-number">
|
||||
</div>
|
||||
<div class="col-lg-12">
|
||||
<label>{{__('Note')}}</label>
|
||||
<textarea name="note" class="form-control" placeholder="{{ __('Type note...') }}" id="payment-note"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-12">
|
||||
<div class="button-group text-center mt-5">
|
||||
<button type="button" class="theme-btn border-btn m-2" data-bs-dismiss="modal">{{ __('Close') }}</button>
|
||||
<button class="theme-btn m-2 submit-btn">{{ __('Update Payment') }}</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,33 @@
|
||||
<div class="p-0">
|
||||
<select name="payments[main][type]" class="form-select main-select" id="form-ware">
|
||||
<option value="cash">{{ __('Cash') }}</option>
|
||||
|
||||
{{-- Check only for Sale, Income & Due collect --}}
|
||||
@if(!in_array($context ?? '', ['purchase', 'expense', 'due_pay']))
|
||||
<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>
|
||||
@endif
|
||||
|
||||
@foreach ($payment_types as $type)
|
||||
<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>
|
||||
</div>
|
||||
|
||||
{{-- Dynamic payments (optional data for edit) --}}
|
||||
<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>
|
||||
@@ -0,0 +1,61 @@
|
||||
<div class="modal fade common-validation-modal" id="bankTransactionModal">
|
||||
<div class="modal-dialog modal-dialog-centered modal-lg">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h1 class="modal-title fs-5" id="transactionModalTitle">{{ __('Bank to cash Transfer') }}</h1>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="personal-info">
|
||||
<form action="" method="post" class="ajaxform">
|
||||
@csrf
|
||||
<div class="row">
|
||||
{{-- Dynamic From/To fields inserted here by JS --}}
|
||||
<div class="col-lg-6">
|
||||
<label>{{ __('Amount') }}</label>
|
||||
<input type="number" name="amount" min="0.01" class="form-control amount" placeholder="{{ __('Ex: 500') }}" required>
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<label>{{ __('Adjustment Date') }}</label>
|
||||
<input type="date" name="date" class="form-control date" value="{{ now()->format('Y-m-d') }}">
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<label class="custom-upload-label">{{ __('Image') }}</label>
|
||||
<div class="custom-upload-wrapper">
|
||||
<div class="custom-upload-box" id="customUploadBox">
|
||||
<div class="custom-upload-content" id="customUploadContent">
|
||||
<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 id="customPreviewImg" class="custom-preview-img" src="" alt="Preview" style="display: none;">
|
||||
|
||||
<input type="file" name="image" class="custom-upload-input" id="customFileInput" accept="image/*">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-6 mb-2">
|
||||
<label>{{ __('Description') }}</label>
|
||||
<textarea name="note" class="form-control note" placeholder="{{ __('description') }}"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-12">
|
||||
<div class="button-group text-center mt-5">
|
||||
<button type="reset" class="theme-btn border-btn m-2">{{ __('Reset') }}</button>
|
||||
<button type="submit" class="theme-btn m-2 submit-btn">{{ __('Save') }}</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
<div class="modal fade" id="view-payment-modal" tabindex="-1" aria-labelledby="viewPaymentModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog modal-lg modal-dialog-centered">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title">{{ __('View Payment') }}</h5>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
|
||||
<div class="modal-body">
|
||||
<table class="table table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{{ __('SL.') }}</th>
|
||||
<th>{{ __('Date') }}</th>
|
||||
<th>{{ __('Receipt No.') }}</th>
|
||||
<th>{{ __('Amount') }}</th>
|
||||
<th>{{ __('Payment Type') }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="view-payment-table-data">
|
||||
<tr>
|
||||
<td colspan="6" class="text-center text-muted">{{ __('Loading...') }}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
55
Modules/Business/resources/views/currencies/datas.blade.php
Normal file
55
Modules/Business/resources/views/currencies/datas.blade.php
Normal file
@@ -0,0 +1,55 @@
|
||||
<div class="responsive-table m-0">
|
||||
<table class="table" id="erp-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{{ __('SL') }}.</th>
|
||||
<th>{{ __('Name') }}</th>
|
||||
<th>{{ __('Country Name') }}</th>
|
||||
<th>{{ __('Code') }}</th>
|
||||
<th>{{ __('Symbol') }}</th>
|
||||
<th>{{ __('Default') }}</th>
|
||||
<th class="d-print-none">{{ __('Action') }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach ($currencies as $currency)
|
||||
<tr>
|
||||
<td>{{ ($currencies->currentPage() - 1) * $currencies->perPage() + $loop->iteration }}</td>
|
||||
<td>{{ $currency->name }}</td>
|
||||
<td>{{ $currency->country_name }}</td>
|
||||
<td>{{ $currency->code }}</td>
|
||||
<td>{{ $currency->symbol }}</td>
|
||||
<td>
|
||||
<div class="d-flex align-items-center justify-content-center">
|
||||
<div
|
||||
class="{{ ($user_currency && $currency->name == $user_currency->name) || (!$user_currency && $currency->is_default == 1) ? 'yes-badge' : 'no-badge' }}">
|
||||
{{ ($user_currency && $currency->name == $user_currency->name) || (!$user_currency && $currency->is_default == 1) ? 'Yes' : 'No' }}
|
||||
</div>
|
||||
</div>
|
||||
</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>
|
||||
@if (!$user_currency || $user_currency->name != $currency->name)
|
||||
<ul class="dropdown-menu">
|
||||
<li>
|
||||
<a href="{{ route('business.currencies.default', ['id' => $currency->id]) }}">
|
||||
<i class="fas fa-adjust"></i>
|
||||
{{ __('Make Default') }}
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
@endif
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div>
|
||||
{{ $currencies->links('vendor.pagination.bootstrap-5') }}
|
||||
</div>
|
||||
48
Modules/Business/resources/views/currencies/index.blade.php
Normal file
48
Modules/Business/resources/views/currencies/index.blade.php
Normal file
@@ -0,0 +1,48 @@
|
||||
@extends('layouts.business.master')
|
||||
|
||||
@section('title')
|
||||
{{ __('Currency') }}
|
||||
@endsection
|
||||
|
||||
@section('main_content')
|
||||
<div class="erp-table-section">
|
||||
<div class="container-fluid">
|
||||
<div class="card">
|
||||
<div class="card-bodys ">
|
||||
<div class="table-top-form p-16-0">
|
||||
<form action="{{ route('business.currencies.index') }}" method="GET" class="filter-form" table="#currencies-data">
|
||||
|
||||
<div class="table-top-left d-flex gap-3 margin-l-16">
|
||||
<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="table-search position-relative">
|
||||
<input class="form-control searchInput" type="text" name="search" placeholder="{{ __('Search...') }}" value="{{ request('search') }}">
|
||||
<span class="position-absolute">
|
||||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M14.582 14.582L18.332 18.332" stroke="#4D4D4D" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M16.668 9.16797C16.668 5.02584 13.3101 1.66797 9.16797 1.66797C5.02584 1.66797 1.66797 5.02584 1.66797 9.16797C1.66797 13.3101 5.02584 16.668 9.16797 16.668C13.3101 16.668 16.668 13.3101 16.668 9.16797Z" stroke="#4D4D4D" stroke-width="1.25" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="currencies-data">
|
||||
@include('business::currencies.datas')
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
355
Modules/Business/resources/views/dashboard/index.blade.php
Normal file
355
Modules/Business/resources/views/dashboard/index.blade.php
Normal file
@@ -0,0 +1,355 @@
|
||||
@extends('layouts.business.master')
|
||||
|
||||
@section('title')
|
||||
{{ __('Dashboard') }}
|
||||
@endsection
|
||||
|
||||
@section('main_content')
|
||||
|
||||
@if(auth()->user()->hasPermission('dashboard.read'))
|
||||
<div class="container-fluid m-h-100">
|
||||
@if (env('DEMO_MODE') && auth()->user()->business_id == 1)
|
||||
<div class="alert alert-dismissible fade show text-center mb-3 text-white" role="alert" style="background: linear-gradient(270deg, #ff7db8 0%, #ee2a7b 100%)">
|
||||
<b class="text-light">{{__('Note') }}:</b> {{__('This is a demo account — data resets every hour for this account only. Some of module are disabled in this account, to get full access please please create your own account.') }}
|
||||
<button type="button" class="btn-close btn-close-white" data-bs-dismiss="alert" aria-label="Close"></button>
|
||||
</div>
|
||||
@endif
|
||||
<div class="row gpt-dashboard-chart mb-30">
|
||||
<div class="col-md-12 col-lg-12 col-xl-8">
|
||||
|
||||
<div class="business-stat-container mb-4">
|
||||
<div class="business-stat">
|
||||
<div class="business-content">
|
||||
<div class="d-flex justify-content-between pt-2 pb-1 px-2 gap-1">
|
||||
<div class="d-flex flex-column">
|
||||
<p class="bus-stat-title" >{{ __('Total Sales') }}</p>
|
||||
<h4 class="bus-stat-count" id="total_sales"></h4>
|
||||
</div>
|
||||
<div class="custom-image-bg color-1">
|
||||
<img src="{{ asset('assets/images/dashboard/Frame1.svg') }}" alt="" >
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="bus-profit d-flex items-start justify-between gap-1 px-2 pt-2" >
|
||||
<img src="{{ asset('assets/images/dashboard/arrowProfit.svg') }}"
|
||||
alt="">
|
||||
<span class="profit" id="this_month_total_sales"></span> <span class="bus-stat-title">{{ __('This Month') }} </span> </p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="business-content">
|
||||
<div class="d-flex justify-content-between pt-2 pb-1 px-2 gap-1">
|
||||
<div class="d-flex flex-column">
|
||||
<p class="bus-stat-title">{{ __('Total Purchase') }}</p>
|
||||
<h4 class="bus-stat-count" id="total_purchase"></h4>
|
||||
</div>
|
||||
<div class="custom-image-bg color-2">
|
||||
<img src="{{ asset('assets/images/dashboard/Frame2.svg') }}" alt="">
|
||||
</div>
|
||||
</div>
|
||||
<div class="bus-profit d-flex items-start justify-between gap-1 px-2 pt-2">
|
||||
<img src="{{ asset('assets/images/dashboard/arrowProfit.svg') }}"
|
||||
alt="">
|
||||
<span class="profit" id="this_month_total_purchase"></span> <span class="bus-stat-title">{{ __('This Month') }} </span> </p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="business-content">
|
||||
<div class="d-flex justify-content-between pt-2 pb-1 px-2 gap-1">
|
||||
<div class="d-flex flex-column">
|
||||
<p class="bus-stat-title">{{ __('Total Income') }}</p>
|
||||
<h4 class="bus-stat-count" id="total_income"></h4>
|
||||
</div>
|
||||
<div class="custom-image-bg color-3">
|
||||
<img src="{{ asset('assets/images/dashboard/Frame3.svg') }}" alt="">
|
||||
</div>
|
||||
</div>
|
||||
<div class="bus-profit d-flex items-start justify-between gap-1 px-2 pt-2">
|
||||
<img src="{{ asset('assets/images/dashboard/arrowLoss.svg') }}" alt="">
|
||||
<span class="profit" id="this_month_total_income"></span> <span class="bus-stat-title">{{ __('This Month') }} </span> </p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="business-content">
|
||||
<div class="d-flex justify-content-between pt-2 pb-1 px-2 gap-1">
|
||||
<div class="d-flex flex-column">
|
||||
<p class="bus-stat-title">{{ __('Total Expense') }}</p>
|
||||
<h4 class="bus-stat-count" id="total_expense"></h4>
|
||||
</div>
|
||||
<div class="custom-image-bg color-4">
|
||||
<img src="{{ asset('assets/images/dashboard/Frame4.svg') }}" alt="">
|
||||
</div>
|
||||
</div>
|
||||
<div class="bus-profit d-flex items-start justify-between gap-1 px-2 pt-2">
|
||||
<img src="{{ asset('assets/images/dashboard/arrowProfit.svg') }}"
|
||||
alt="">
|
||||
<span class="profit" id="this_month_total_expense"></span> <span class="bus-stat-title">{{ __('This Month') }}</span> </p>
|
||||
</div>
|
||||
</div>
|
||||
{{-- 2nd row --}}
|
||||
|
||||
<div class="business-content">
|
||||
<div class="d-flex justify-content-between pt-2 pb-1 px-2 gap-1">
|
||||
<div class="d-flex flex-column">
|
||||
<p class="bus-stat-title">{{ __('Total Customer') }}</p>
|
||||
<h4 class="bus-stat-count" id="total_customer"></h4>
|
||||
</div>
|
||||
<div class="custom-image-bg color-5">
|
||||
<img src="{{ asset('assets/images/dashboard/Frame5.svg') }}" alt="">
|
||||
</div>
|
||||
</div>
|
||||
<div class="bus-profit d-flex items-start justify-between gap-1 px-2 pt-2" >
|
||||
<img src="{{ asset('assets/images/dashboard/arrowProfit.svg') }}"
|
||||
alt="">
|
||||
<span class="profit" id="this_month_total_customer"></span> <span class="bus-stat-title">{{ __('This Month') }}</span> </p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="business-content">
|
||||
<div class="d-flex justify-content-between pt-2 pb-1 px-2 gap-1">
|
||||
<div class="d-flex flex-column">
|
||||
<p class="bus-stat-title">{{ __('Total Supplier') }}</p>
|
||||
<h4 class="bus-stat-count" id="total_supplier"></h4>
|
||||
</div>
|
||||
<div class="custom-image-bg color-6">
|
||||
<img src="{{ asset('assets/images/dashboard/Frame6.svg') }}" alt="">
|
||||
</div>
|
||||
</div>
|
||||
<div class="bus-profit d-flex items-start justify-between gap-1 px-2 pt-2" >
|
||||
<img src="{{ asset('assets/images/dashboard/arrowProfit.svg') }}"
|
||||
alt="">
|
||||
<span class="profit" id="this_month_total_supplier"></span> <span class="bus-stat-title">{{ __('This Month') }}</span> </p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="business-content">
|
||||
<div class="d-flex justify-content-between pt-2 pb-1 px-2 gap-1">
|
||||
<div class="d-flex flex-column">
|
||||
<p class="bus-stat-title">{{ __('Sales Returns') }}</p>
|
||||
<h4 class="bus-stat-count" id="total_sales_return"></h4>
|
||||
</div>
|
||||
<div class="custom-image-bg color-7">
|
||||
<img src="{{ asset('assets/images/dashboard/Frame7.svg') }}" alt="">
|
||||
</div>
|
||||
</div>
|
||||
<div class="bus-profit d-flex items-start justify-between gap-1 px-2 pt-2" >
|
||||
<img src="{{ asset('assets/images/dashboard/arrowProfit.svg') }}"
|
||||
alt="">
|
||||
<span class="profit" id="this_month_total_sale_return"></span> <span class="bus-stat-title">{{ __('This Month') }}</span> </p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="business-content">
|
||||
<div class="d-flex justify-content-between pt-2 pb-1 px-2 gap-1">
|
||||
<div class="d-flex flex-column">
|
||||
<p class="bus-stat-title">{{ __('Purchase Returns') }}</p>
|
||||
<h4 class="bus-stat-count" id="total_purchase_return"></h4>
|
||||
</div>
|
||||
<div class="custom-image-bg color-8">
|
||||
<img src="{{ asset('assets/images/dashboard/Frame8.svg') }}" alt="">
|
||||
</div>
|
||||
</div>
|
||||
<div class="bus-profit d-flex items-start justify-between gap-1 px-2 pt-2" >
|
||||
<img src="{{ asset('assets/images/dashboard/arrowProfit.svg') }}"
|
||||
alt="">
|
||||
<span class="profit" id="this_month_total_purchase_return"></span> <span class="bus-stat-title">{{ __('This Month') }}</span> </p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{-- 2nd column --}}
|
||||
|
||||
<div class="card new-card dashboard-card border-0 p-0 mt-2">
|
||||
<div class="dashboard-chart">
|
||||
<h4>{{ __('Revenue Statistic') }}</h4>
|
||||
<div class="gpt-up-down-arrow position-relative">
|
||||
<select class="form-control revenue-year">
|
||||
@for ($i = date('Y'); $i >= 2022; $i--)
|
||||
<option @selected($i == date('Y')) value="{{ $i }}">{{ $i }}
|
||||
</option>
|
||||
@endfor
|
||||
</select>
|
||||
<span></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body pt-0">
|
||||
<div class=" d-flex align-items-center justify-content-center gap-3 pb-2">
|
||||
<div class="d-flex align-items-center gap-1">
|
||||
<div class="profit-bulet"></div>
|
||||
<p>{{ __('Profit') }}: <strong class="profit-value"></strong></p>
|
||||
</div>
|
||||
<div class="d-flex align-items-center gap-1">
|
||||
<div class="loss-bulet"></div>
|
||||
<p>{{ __('Loss') }}: <strong class="loss-value"></strong></p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="content">
|
||||
<canvas id="revenueChart"></canvas>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="col-md-12 col-lg-12 col-xl-4">
|
||||
<div class="row mx-auto gap-3">
|
||||
<div class="dashborad-table-container col-lg-8 col-xl-12 mb-1 p-0 m-0 left-margin-top">
|
||||
<div class="dashboard-table-header">
|
||||
<h3>{{ __('Low Stock') }}</h3>
|
||||
<a href="{{ route('business.stocks.index', ['alert_qty' => true]) }}">{{ __('View All') }}<i class="fas fa-chevron-right"></i></a>
|
||||
</div>
|
||||
<table class="table dashboard-table-content">
|
||||
<thead class="thead-light business-thead">
|
||||
<tr>
|
||||
<th scope="col">{{ __('SL') }}</th>
|
||||
<th scope="col">{{ __('Name') }}</th>
|
||||
<th scope="col" class="text-center">{{ __('Alert Qty') }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach ($stocks as $stock)
|
||||
<tr>
|
||||
<td>{{ $loop->index + 1 }}</td>
|
||||
<td>{{ $stock->productName }}</td>
|
||||
@if ($stock->stocks_sum_product_stock <= $stock->alert_qty)
|
||||
<td class="text-danger text-center">{{ $stock->stocks_sum_product_stock ?? 0 }}</td>
|
||||
@else
|
||||
<td class="text-success text-center">{{ $stock->stocks_sum_product_stock ?? 0 }}</td>
|
||||
@endif
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
{{-- 2nd column --}}
|
||||
<div class="card new-card sms-report border-0 p-0 mt-2 col-lg-4 col-xl-12 right-margin-top">
|
||||
<div class="dashboard-chart">
|
||||
<h4>{{ __('Overall Reports') }}</h4>
|
||||
<div class="gpt-up-down-arrow position-relative">
|
||||
<select class="form-control overview-year">
|
||||
@for ($i = date('Y'); $i >= 2022; $i--)
|
||||
<option @selected($i == date('Y')) value="{{ $i }}">{{ $i }}
|
||||
</option>
|
||||
@endfor
|
||||
</select>
|
||||
<span></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="overallContent row">
|
||||
<div class="col-lg-7">
|
||||
<canvas id="Overallreports"></canvas>
|
||||
</div>
|
||||
<div class="col-lg-5 overall-level-container">
|
||||
<div class="d-flex align-items-center gap-1">
|
||||
<div class="purchase-bulet"></div>
|
||||
<p>{{ __('Purchase') }}: <strong id="overall_purchase"></strong></p>
|
||||
</div>
|
||||
<div class="d-flex align-items-center gap-1">
|
||||
<div class="sales-bulet"></div>
|
||||
<p>{{ __('Sales') }}: <strong id="overall_sale"></strong></p>
|
||||
</div>
|
||||
<div class="d-flex align-items-center gap-1">
|
||||
<div class="income-bulet"></div>
|
||||
<p>{{ __('Income') }}: <strong id="overall_income"></strong></p>
|
||||
</div>
|
||||
<div class="d-flex align-items-center gap-1">
|
||||
<div class="expense-bulet"></div>
|
||||
<p>{{ __('Expense') }}: <strong id="overall_expense"></strong></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class=" tab-table-container">
|
||||
<div class="custom-tabs">
|
||||
<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">
|
||||
<table class="table dashboard-table-content">
|
||||
<thead class="thead-light">
|
||||
<tr>
|
||||
<th class="text-start" scope="col">{{ __('Date') }}</th>
|
||||
<th class="text-center" scope="col">{{ __('Invoice') }}</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>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach ($sales as $sale)
|
||||
<tr>
|
||||
<td class="text-start">{{ formatted_date($sale->created_at) }}</td>
|
||||
<td class="text-center">{{ $sale->invoiceNumber }}</td>
|
||||
<td class="text-center">{{ $sale->party->name ?? '' }}</td>
|
||||
<td class="text-center">{{ currency_format($sale->totalAmount, currency: business_currency()) }}</td>
|
||||
<td class="text-center">{{ currency_format($sale->paidAmount, currency: business_currency()) }}</td>
|
||||
<td class="text-center pr-3">{{ currency_format($sale->dueAmount, currency: business_currency()) }}</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div id="purchase" class="tab-content dashboard-tab">
|
||||
<div class="table-container">
|
||||
<table class="table dashboard-table-content">
|
||||
<thead class="thead-light">
|
||||
<tr>
|
||||
<th class="text-start" scope="col">{{ __("Date") }}</th>
|
||||
<th class="text-center" scope="col">{{ __("Invoice") }}</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>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach ($purchases as $purchase)
|
||||
<tr>
|
||||
<td class="text-start">{{ formatted_date($purchase->created_at) }}</td>
|
||||
<td class="text-center">{{ $purchase->invoiceNumber }}</td>
|
||||
<td class="text-center">{{ $purchase->party->name ?? '' }}</td>
|
||||
<td class="text-center">{{ currency_format($purchase->totalAmount, currency: business_currency()) }}</td>
|
||||
<td class="text-center">{{ currency_format($purchase->paidAmount, currency: business_currency()) }}</td>
|
||||
<td class="text-center pr-3">{{ currency_format($purchase->dueAmount, currency: business_currency()) }}</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@else
|
||||
<div class="container-fluid">
|
||||
<div class="empty-screen-container">
|
||||
<div class="empty-screen-content">
|
||||
<img src="{{ asset('assets/images/dashboard/empty.svg') }}" alt="" srcset="">
|
||||
<p>{{__('You can not access it!')}}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<input type="hidden" value="{{ route('business.dashboard.data') }}" id="get-dashboard">
|
||||
<input type="hidden" value="{{ route('business.dashboard.overall-report') }}" id="get-overall-report">
|
||||
<input type="hidden" value="{{ route('business.dashboard.revenue') }}" id="revenue-statistic">
|
||||
@endsection
|
||||
|
||||
@push('js')
|
||||
<script src="{{ asset('assets/js/chart.min.js') }}"></script>
|
||||
<script src="{{ asset('assets/plugins/custom/business-dashboard.js') }}?v={{ time() }}"></script>
|
||||
<script src="{{ asset('assets/js/custom/tab.js') }}?v={{ time() }}"></script>
|
||||
@endpush
|
||||
|
||||
|
||||
|
||||
|
||||
155
Modules/Business/resources/views/day-book/datas.blade.php
Normal file
155
Modules/Business/resources/views/day-book/datas.blade.php
Normal file
@@ -0,0 +1,155 @@
|
||||
@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>{{ __('SL') }}.</th>
|
||||
<th class="text-start">{{ __('Name') }}</th>
|
||||
<th class="text-start">{{ __('Date') }}</th>
|
||||
<th class="text-start d-print-none">{{ __('Reference') }}</th>
|
||||
<th class="text-start d-print-none">{{ __('Type') }}</th>
|
||||
<th class="text-start">{{ __('Total') }}</th>
|
||||
<th class="text-start">{{ __('Money In') }}</th>
|
||||
<th class="text-start">{{ __('Money Out') }}</th>
|
||||
<th class="text-start">{{ __('Payment') }}</th>
|
||||
<th class="text-start d-print-none">{{ __('Transaction By') }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach ($day_books as $day_book)
|
||||
<tr>
|
||||
<td>{{ $day_books->firstItem() + $loop->index }}</td>
|
||||
<td class="text-start">
|
||||
@switch($day_book->platform)
|
||||
@case('sale')
|
||||
{{ $day_book->sale?->party?->name ?? 'Guest' }}
|
||||
@break
|
||||
@case('sale_return')
|
||||
{{ $day_book->saleReturn?->sale?->party?->name ?? 'Guest' }}
|
||||
@break
|
||||
@case('purchase')
|
||||
{{ $day_book->purchase?->party?->name ?? 'Guest' }}
|
||||
@break
|
||||
@case('purchase_return')
|
||||
{{ $day_book->purchaseReturn?->purchase?->party?->name ?? 'Guest' }}
|
||||
@break
|
||||
@case('due_collect')
|
||||
@case('due_pay')
|
||||
{{ $day_book->dueCollect?->party?->name ?? 'Guest' }}
|
||||
@break
|
||||
@default
|
||||
{{__('N/A')}}
|
||||
@endswitch
|
||||
</td>
|
||||
<td class="text-start">{{ formatted_date($day_book->date) }}</td>
|
||||
<td class="text-start d-print-none">{{ $day_book->invoice_no }}</td>
|
||||
<td class="text-start d-print-none">{{ ucwords(str_replace('_', ' ', $day_book->platform)) }}</td>
|
||||
@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
|
||||
<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($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, currency: business_currency()) }}
|
||||
</td>
|
||||
<td class="text-start">
|
||||
{{ $day_book->payment_type_id ? $day_book->paymentType?->name : ucfirst(explode('_', $day_book->transaction_type)[0]) }}
|
||||
</td>
|
||||
<td class="text-start d-print-none">
|
||||
@switch($day_book->platform)
|
||||
@case('sale')
|
||||
{{ $day_book->sale?->user?->name ?? 'N/A' }}
|
||||
@break
|
||||
@case('sale_return')
|
||||
{{ $day_book->saleReturn?->sale?->user?->name ?? 'N/A' }}
|
||||
@break
|
||||
@case('purchase')
|
||||
{{ $day_book->purchase?->user?->name ?? 'N/A' }}
|
||||
@break
|
||||
@case('purchase_return')
|
||||
{{ $day_book->purchaseReturn?->purchase?->user?->name ?? 'N/A' }}
|
||||
@break
|
||||
@case('due_collect')
|
||||
@case('due_pay')
|
||||
{{ $day_book->dueCollect?->user?->name ?? 'N/A' }}
|
||||
@break
|
||||
@default
|
||||
{{__('N/A')}}
|
||||
@endswitch
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
|
||||
@php
|
||||
$page_total_amount = $day_books->getCollection()->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_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
|
||||
|
||||
@if ($day_books->count() > 0)
|
||||
<tr class="table-footer">
|
||||
<td>{{__('Total')}}</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<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>
|
||||
<td class="d-print-none"></td>
|
||||
</tr>
|
||||
@endif
|
||||
</table>
|
||||
|
||||
|
||||
</div>
|
||||
<div class="mt-3">
|
||||
{{ $day_books->links('vendor.pagination.bootstrap-5') }}
|
||||
</div>
|
||||
152
Modules/Business/resources/views/day-book/excel-csv.blade.php
Normal file
152
Modules/Business/resources/views/day-book/excel-csv.blade.php
Normal file
@@ -0,0 +1,152 @@
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{{ __('SL') }}.</th>
|
||||
<th class="text-start">{{ __('Name') }}</th>
|
||||
<th class="text-start">{{ __('Date') }}</th>
|
||||
<th class="text-start">{{ __('Reference') }}</th>
|
||||
<th class="text-start">{{ __('Type') }}</th>
|
||||
<th class="text-start">{{ __('Total') }}</th>
|
||||
<th class="text-start">{{ __('Money In') }}</th>
|
||||
<th class="text-start">{{ __('Money Out') }}</th>
|
||||
<th class="text-start">{{ __('Payment') }}</th>
|
||||
<th class="text-start">{{ __('Transaction By') }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach ($day_books as $day_book)
|
||||
<tr>
|
||||
<td>{{ $loop->index + 1 }}</td>
|
||||
|
||||
@if ($day_book->platform == 'sale')
|
||||
<td class="text-start">{{ $day_book->sale?->party?->name ?? 'Guest' }}</td>
|
||||
@elseif ($day_book->platform == 'sale_return')
|
||||
<td class="text-start">{{ $day_book->saleReturn?->sale?->party?->name ?? 'Guest' }}</td>
|
||||
@elseif ($day_book->platform == 'purchase')
|
||||
<td class="text-start">{{ $day_book->purchase?->party?->name ?? 'Guest' }}</td>
|
||||
@elseif ($day_book->platform == 'purchase_return')
|
||||
<td class="text-start">{{ $day_book->purchaseReturn?->purchase?->party?->name ?? 'Guest' }}</td>
|
||||
@elseif ($day_book->platform == 'due_collect' || $day_book->platform == 'due_pay')
|
||||
<td class="text-start">{{ $day_book->dueCollect?->party?->name ?? 'Guest' }}</td>
|
||||
@else
|
||||
<td class="text-start">N/A</td>
|
||||
@endif
|
||||
|
||||
<td class="text-start">{{ formatted_date($day_book->date) }}</td>
|
||||
<td class="text-start">{{ $day_book->invoice_no }}</td>
|
||||
<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>
|
||||
@elseif ($day_book->platform == 'sale_return')
|
||||
<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>
|
||||
@elseif ($day_book->platform == 'purchase_return')
|
||||
<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>
|
||||
@else
|
||||
<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($total_amount, currency: business_currency()) }}
|
||||
</td>
|
||||
@else
|
||||
<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>
|
||||
@else
|
||||
<td class="text-start">{{ currency_format(0, currency: business_currency()) }}</td>
|
||||
@endif
|
||||
|
||||
@if ($day_book->payment_type_id)
|
||||
<td class="text-start">{{ $day_book->paymentType?->name }}</td>
|
||||
@else
|
||||
<td class="text-start">{{ ucfirst(explode('_', $day_book->transaction_type)[0]) }}</td>
|
||||
@endif
|
||||
|
||||
@if ($day_book->platform == 'sale')
|
||||
<td class="text-start">{{ $day_book->sale?->user?->name ?? 'N/A' }}</td>
|
||||
@elseif ($day_book->platform == 'sale_return')
|
||||
<td class="text-start">{{ $day_book->saleReturn?->sale?->user?->name ?? 'N/A' }}</td>
|
||||
@elseif ($day_book->platform == 'purchase')
|
||||
<td class="text-start">{{ $day_book->purchase?->user?->name ?? 'N/A' }}</td>
|
||||
@elseif ($day_book->platform == 'purchase_return')
|
||||
<td class="text-start">{{ $day_book->purchaseReturn?->purchase?->user?->name ?? 'N/A' }}</td>
|
||||
@elseif ($day_book->platform == 'due_collect' || $day_book->platform == 'due_pay')
|
||||
<td class="text-start">{{ $day_book->dueCollect?->user?->name ?? 'N/A' }}</td>
|
||||
@else
|
||||
<td class="text-start">{{__('N/A') }}</td>
|
||||
@endif
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
|
||||
@php
|
||||
$page_total_amount = $day_books->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_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
|
||||
|
||||
@if ($day_books->count() > 0)
|
||||
<tr class="table-footer">
|
||||
<td>{{__('Total')}}</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<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, currency: business_currency()) }}</td>
|
||||
<td class="text-start">{{ currency_format($page_money_out, currency: business_currency()) }}</td>
|
||||
<td></td>
|
||||
<td class="d-print-none"></td>
|
||||
</tr>
|
||||
@endif
|
||||
</table>
|
||||
149
Modules/Business/resources/views/day-book/index.blade.php
Normal file
149
Modules/Business/resources/views/day-book/index.blade.php
Normal file
@@ -0,0 +1,149 @@
|
||||
@extends('layouts.business.master')
|
||||
|
||||
@section('title')
|
||||
{{ __('Day Book') }}
|
||||
@endsection
|
||||
|
||||
@section('main_content')
|
||||
<div class="erp-table-section">
|
||||
<div class="container-fluid">
|
||||
<div class="card">
|
||||
<div class="card-bodys">
|
||||
<div class="table-header p-16 d-print-none">
|
||||
<h4>{{ __('Day Book') }}</h4>
|
||||
</div>
|
||||
|
||||
<div class="table-header justify-content-center border-0 d-none d-block d-print-block text-center mb-3">
|
||||
@include('business::print.header')
|
||||
<h4 class="mt-2">{{ __('Day Book') }}</h4>
|
||||
</div>
|
||||
|
||||
<div class="loss-profit-container d-print-none">
|
||||
<div class="row">
|
||||
<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">{{ 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">{{ 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">{{ currency_format($total_money_out, 'icon', 2, business_currency()) }}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="table-top-form p-16-0 d-print-none">
|
||||
<form action="{{ route('business.day-book-reports.index') }}" method="GET" class="report-filter-form" table="#day-book-reports-data">
|
||||
|
||||
<div class="table-top-left d-flex gap-3 margin-l-16">
|
||||
<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="table-search position-relative">
|
||||
<input type="text" name="search" class="form-control" placeholder="{{ __('Search...') }}" value="{{ request('search') }}">
|
||||
<span class="position-absolute">
|
||||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M14.582 14.582L18.332 18.332" stroke="#4D4D4D" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M16.668 9.16797C16.668 5.02584 13.3101 1.66797 9.16797 1.66797C5.02584 1.66797 1.66797 5.02584 1.66797 9.16797C1.66797 13.3101 5.02584 16.668 9.16797 16.668C13.3101 16.668 16.668 13.3101 16.668 9.16797Z" stroke="#4D4D4D" stroke-width="1.25" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
</span>
|
||||
</div>
|
||||
<div class="custom-from-to align-items-center date-filters d-none">
|
||||
<label class="header-label">{{ __('From Date') }}</label>
|
||||
<input type="date" name="from_date" value="{{ request('from_date') ?? now()->format('Y-m-d') }}" class="form-control">
|
||||
</div>
|
||||
<div class="custom-from-to align-items-center date-filters d-none">
|
||||
<label class="header-label">{{ __('To Date') }}</label>
|
||||
<input type="date" name="to_date" value="{{ request('to_date') ?? now()->format('Y-m-d') }}" class="form-control">
|
||||
</div>
|
||||
<div class="gpt-up-down-arrow position-relative d-print-none custom-date-filter">
|
||||
<select name="custom_days" class="form-control custom-days">
|
||||
<option value="today" {{ request()->get('custom_days') == 'today' ? 'selected' : '' }}>{{ __('Today') }}</option>
|
||||
<option value="yesterday" {{ request()->get('custom_days') == 'yesterday' ? 'selected' : '' }}>{{ __('Yesterday') }}</option>
|
||||
<option value="last_seven_days" {{ request()->get('custom_days') == 'last_seven_days' ? 'selected' : '' }}>{{ __('Last 7 Days') }}</option>
|
||||
<option value="last_thirty_days" {{ request()->get('custom_days') == 'last_thirty_days' ? 'selected' : '' }}>{{ __('Last 30 Days') }}</option>
|
||||
<option value="current_month" {{ request()->get('custom_days') == 'current_month' ? 'selected' : '' }}>{{ __('Current Month') }}</option>
|
||||
<option value="last_month" {{ request()->get('custom_days') == 'last_month' ? 'selected' : '' }}>{{ __('Last Month') }}</option>
|
||||
<option value="current_year" {{ request()->get('custom_days') == 'current_year' ? 'selected' : '' }}>{{ __('Current Year') }}</option>
|
||||
<option value="custom_date" {{ request()->get('custom_days') == 'custom_date' ? 'selected' : '' }}>{{ __('Custom Date') }}</option>
|
||||
</select>
|
||||
<span></span>
|
||||
<div class="calendar-icon">
|
||||
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M12.6667 2.67188H3.33333C2.59695 2.67188 2 3.26883 2 4.00521V13.3385C2 14.0749 2.59695 14.6719 3.33333 14.6719H12.6667C13.403 14.6719 14 14.0749 14 13.3385V4.00521C14 3.26883 13.403 2.67188 12.6667 2.67188Z" stroke="#4B5563" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M10.6641 1.32812V3.99479" stroke="#4B5563" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M5.33594 1.32812V3.99479" stroke="#4B5563" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M2 6.67188H14" stroke="#4B5563" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
</div>
|
||||
</div>
|
||||
<div class="gpt-up-down-arrow position-relative employee-select">
|
||||
<select name="platform" class="form-control">
|
||||
<option value="">{{ __('Transaction Type') }}</option>
|
||||
<option @selected(request('platform') == 'sale') value="sale">{{ __('Sale') }}</option>
|
||||
<option @selected(request('platform') == 'sale_return') value="sale_return">{{ __('Sale Return') }}</option>
|
||||
<option @selected(request('platform') == 'purchase') value="purchase">{{ __('Purchase') }}</option>
|
||||
<option @selected(request('platform') == 'purchase_return') value="purchase_return">{{ __('Purchase Return') }}</option>
|
||||
<option @selected(request('platform') == 'income') value="income">{{ __('Income') }}</option>
|
||||
<option @selected(request('platform') == 'expense') value="expense">{{ __('Expense') }}</option>
|
||||
<option @selected(request('platform') == 'due_pay') value="due_pay">{{ __('Due Pay') }}</option>
|
||||
<option @selected(request('platform') == 'due_collect') value="due_collect">{{ __('Due Collect') }}</option>
|
||||
<option @selected(request('platform') == 'payroll') value="payroll">{{ __('Payroll') }}</option>
|
||||
<option @selected(request('platform') == 'bank') value="bank">{{ __('Bank') }}</option>
|
||||
<option @selected(request('platform') == 'cash') value="cash">{{ __('Cash') }}</option>
|
||||
<option @selected(request('platform') == 'cheque') value="cheque">{{ __('Cheque') }}</option>
|
||||
</select>
|
||||
<span></span>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<div class="table-top-btn-group d-print-none p-2">
|
||||
<ul>
|
||||
<li>
|
||||
<a href="{{ route('business.day-book-reports.csv') }}">
|
||||
<img src="{{ asset('assets/images/logo/csv.svg') }}" alt="">
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="{{ route('business.day-book-reports.excel') }}">
|
||||
<img src="{{ asset('assets/images/logo/excel.svg') }}" alt="">
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="blank" href="{{ route('business.day-book-reports.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>
|
||||
|
||||
<div id="day-book-reports-data">
|
||||
@include('business::day-book.datas')
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
137
Modules/Business/resources/views/day-book/pdf.blade.php
Normal file
137
Modules/Business/resources/views/day-book/pdf.blade.php
Normal file
@@ -0,0 +1,137 @@
|
||||
@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;" class="">{{ __('Day Book 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
|
||||
|
||||
@section('pdf_content')
|
||||
<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">{{ __('Name') }}</th>
|
||||
<th style="border:1px solid gainsboro; color:white;" class="text-start">{{ __('Date') }}</th>
|
||||
<th style="border:1px solid gainsboro; color:white;" class="text-start">{{ __('Reference') }}</th>
|
||||
<th style="border:1px solid gainsboro; color:white;" class="text-start">{{ __('Type') }}</th>
|
||||
<th style="border:1px solid gainsboro; color:white;" class="text-start">{{ __('Total') }}</th>
|
||||
<th style="border:1px solid gainsboro; color:white;" class="text-start">{{ __('Money In') }}</th>
|
||||
<th style="border:1px solid gainsboro; color:white;" class="text-start">{{ __('Money Out') }}</th>
|
||||
<th style="border:1px solid gainsboro; color:white;" class="text-start">{{ __('Payment') }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach ($day_books as $day_book)
|
||||
<tr style="background-color: {{ $loop->even ? '#F5F5F5' : '#FFFFFF' }};">
|
||||
@if ($day_book->platform == 'sale')
|
||||
<td style="border:1px solid gainsboro; text-align:center;">{{ $day_book->sale?->party?->name ?? 'Guest' }}</td>
|
||||
@elseif ($day_book->platform == 'sale_return')
|
||||
<td style="border:1px solid gainsboro; text-align:center;">{{ $day_book->saleReturn?->sale?->party?->name ?? 'Guest' }}</td>
|
||||
@elseif ($day_book->platform == 'purchase')
|
||||
<td style="border:1px solid gainsboro; text-align:center;">{{ $day_book->purchase?->party?->name ?? 'Guest' }}</td>
|
||||
@elseif ($day_book->platform == 'purchase_return')
|
||||
<td style="border:1px solid gainsboro; text-align:center;">{{ $day_book->purchaseReturn?->purchase?->party?->name ?? 'Guest' }}</td>
|
||||
@elseif ($day_book->platform == 'due_collect' || $day_book->platform == 'due_pay')
|
||||
<td style="border:1px solid gainsboro; text-align:center;">{{ $day_book->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;">{{ formatted_date($day_book->date) }}</td>
|
||||
<td style="border:1px solid gainsboro; text-align:center;">{{ $day_book->invoice_no }}</td>
|
||||
<td style="border:1px solid gainsboro; text-align:center;">{{ ucwords(str_replace('_', ' ', $day_book->platform)) }}</td>
|
||||
|
||||
@if ($day_book->platform == 'sale')
|
||||
<td style="border:1px solid gainsboro; text-align:center;">{{ currency_format($day_book->sale?->totalAmount ?? 0, currency: business_currency()) }}</td>
|
||||
@elseif ($day_book->platform == 'sale_return')
|
||||
<td style="border:1px solid gainsboro; text-align:center;">{{ currency_format($day_book->saleReturn?->sale?->totalAmount ?? 0, currency: business_currency()) }}</td>
|
||||
@elseif ($day_book->platform == 'purchase')
|
||||
<td style="border:1px solid gainsboro; text-align:center;">{{ currency_format($day_book->purchase?->totalAmount ?? 0, currency: business_currency()) }}</td>
|
||||
@elseif ($day_book->platform == 'purchase_return')
|
||||
<td style="border:1px solid gainsboro; text-align:center;">{{ currency_format($day_book->purchaseReturn?->purchase?->totalAmount ?? 0, currency: business_currency()) }}</td>
|
||||
@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, 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($total_amount, currency: business_currency()) }}</td>
|
||||
@else
|
||||
<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, currency: business_currency()) }}</td>
|
||||
@endif
|
||||
|
||||
@if ($day_book->payment_type_id)
|
||||
<td style="border:1px solid gainsboro; text-align:center;">{{ $day_book->paymentType?->name }}</td>
|
||||
@else
|
||||
<td style="border:1px solid gainsboro; text-align:center;">{{ ucfirst(explode('_', $day_book->transaction_type)[0]) }}</td>
|
||||
@endif
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
|
||||
@php
|
||||
$page_total_amount = $day_books->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_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
|
||||
|
||||
@if ($day_books->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;"></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($page_total_amount, currency: business_currency()) }}</td>
|
||||
<td style="border:1px solid gainsboro; text-align:center; color: white; font-weight: 600;">{{ currency_format($page_money_in, currency: business_currency()) }}</td>
|
||||
<td style="border:1px solid gainsboro; text-align:center; color: white; font-weight: 600;">{{ currency_format($page_money_out, currency: business_currency()) }}</td>
|
||||
<td style="border:1px solid gainsboro; text-align:center;"></td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
@endif
|
||||
</table>
|
||||
@endsection
|
||||
|
||||
|
||||
85
Modules/Business/resources/views/dues/collect-due.blade.php
Normal file
85
Modules/Business/resources/views/dues/collect-due.blade.php
Normal file
@@ -0,0 +1,85 @@
|
||||
@extends('layouts.business.master')
|
||||
|
||||
@section('title')
|
||||
{{ $party->type === 'Supplier' ? __('Pay Due') : __('Collect Due') }}
|
||||
@endsection
|
||||
|
||||
@section('main_content')
|
||||
<div class="erp-table-section">
|
||||
<div class="container-fluid">
|
||||
<div class="card border-0">
|
||||
<div class="card-bodys ">
|
||||
<div class="table-header p-16">
|
||||
<h4>{{ $party->type === 'Supplier' ? __('Pay Due') : __('Collect Due') }}</h4>
|
||||
</div>
|
||||
<div class="order-form-section p-16">
|
||||
<form action="{{ route('business.collect.dues.store') }}" method="POST" class="ajaxform">
|
||||
@csrf
|
||||
<input type="hidden" name="party_id" value="{{ $party->id }}">
|
||||
<div class="add-suplier-modal-wrapper d-block">
|
||||
<div class="row">
|
||||
<div class="col-lg-6 mb-2">
|
||||
<label>{{ __('Select Invoice') }}</label>
|
||||
<div class="gpt-up-down-arrow position-relative">
|
||||
<select id="invoiceSelect" name="invoiceNumber" class="form-control table-select w-100">
|
||||
<option value="" data-opening-due="{{ $party_opening_due }}" >{{ __('Select an Invoice') }}</option>
|
||||
@if($party->type == "Supplier")
|
||||
@foreach ($party->purchases_dues as $due)
|
||||
<option value="{{ $due->invoiceNumber }}"
|
||||
data-total-amount="{{ $due->totalAmount }}"
|
||||
data-due-amount="{{ $due->dueAmount }}" >
|
||||
{{ $due->invoiceNumber }}
|
||||
</option>
|
||||
@endforeach
|
||||
@else
|
||||
@foreach ($party->sales_dues as $due)
|
||||
<option value="{{ $due->invoiceNumber }}"
|
||||
data-total-amount="{{ $due->totalAmount }}"
|
||||
data-due-amount="{{ $due->dueAmount }}" >
|
||||
{{ $due->invoiceNumber }}
|
||||
</option>
|
||||
@endforeach
|
||||
@endif
|
||||
</select>
|
||||
<span></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-6 mb-2">
|
||||
<label>{{ __('Date') }}</label>
|
||||
<input type="date" name="paymentDate" required class="form-control" value="{{ date('Y-m-d') }}">
|
||||
</div>
|
||||
<div class="col-lg-6 mb-2">
|
||||
<label>{{ $party->type == 'Supplier' ? __('Supplier Name') : __('Customer Name') }}</label>
|
||||
<input type="text" value="{{ $party->name }}" readonly class="form-control">
|
||||
</div>
|
||||
<div class="col-lg-6 mb-2">
|
||||
<label>{{ __('Total Amount') }}</label>
|
||||
<input type="number" id="totalAmount" value="{{ $party_opening_due }}" readonly class="form-control">
|
||||
</div>
|
||||
<div class="col-lg-6 mb-2">
|
||||
<label>{{ __('Paid Amount') }}</label>
|
||||
<input type="number" name="payDueAmount" id="paidAmount" required step="0.01" min="0" class="form-control receive_amount">
|
||||
</div>
|
||||
<div class="col-lg-6 mb-2">
|
||||
<label>{{ __('Due Amount') }}</label>
|
||||
<input type="number" id="dueAmount" value="{{ $party_opening_due }}" readonly class="form-control">
|
||||
</div>
|
||||
<div class="col-lg-6 mb-2">
|
||||
<label>{{ __('Payment Type') }}</label>
|
||||
@include('business::component.payment_type', ['context' => 'due', 'payment_types' => $payment_types])
|
||||
</div>
|
||||
<div class="col-lg-12">
|
||||
<div class="button-group text-center mt-5">
|
||||
<button type="reset" class="theme-btn border-btn m-2">{{ __('Reset') }}</button>
|
||||
<button class="theme-btn m-2 submit-btn">{{ __('Save') }}</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
84
Modules/Business/resources/views/dues/datas.blade.php
Normal file
84
Modules/Business/resources/views/dues/datas.blade.php
Normal file
@@ -0,0 +1,84 @@
|
||||
<div class="responsive-table m-0">
|
||||
<table class="table" id="datatable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{{ __('SL') }}.</th>
|
||||
<th>{{ __('Name') }}</th>
|
||||
<th>{{ __('Email') }}</th>
|
||||
<th>{{ __('Phone') }}</th>
|
||||
<th>{{ __('Type') }}</th>
|
||||
<th class="text-end">{{ __('Due Amount') }}</th>
|
||||
<th>{{ __('Action') }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach ($parties as $party)
|
||||
<tr>
|
||||
<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>
|
||||
@endif
|
||||
<td class="text-danger text-end">
|
||||
{{ currency_format($party->due, currency: business_currency()) }}
|
||||
</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>
|
||||
<ul class="dropdown-menu">
|
||||
<li>
|
||||
<a href="{{ route('business.collect.dues', $party->id) }}">
|
||||
<i class="fal fa-edit"></i>
|
||||
{{ $party->type === 'Supplier' ? __('Pay Due') : __('Collect Due') }}
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<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="{{ route('business.collect.dues.invoice', $party->id) }}"
|
||||
target="_blank">
|
||||
<img src="{{ asset('assets/images/icons/Invoic.svg') }}" alt="">
|
||||
{{ __('Invoice') }}
|
||||
</a>
|
||||
</li>
|
||||
@endif
|
||||
</ul>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="mt-3">
|
||||
{{ $parties->links('vendor.pagination.bootstrap-5') }}
|
||||
</div>
|
||||
80
Modules/Business/resources/views/dues/index.blade.php
Normal file
80
Modules/Business/resources/views/dues/index.blade.php
Normal file
@@ -0,0 +1,80 @@
|
||||
@extends('layouts.business.master')
|
||||
|
||||
@section('title')
|
||||
{{ __('Due List') }}
|
||||
@endsection
|
||||
|
||||
@section('main_content')
|
||||
<div class="erp-table-section">
|
||||
<div class="container-fluid">
|
||||
|
||||
<div class="mb-4 d-flex loss-flex gap-3 loss-profit-container d-print-none">
|
||||
<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">{{ 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">{{ 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">
|
||||
<h4>{{ __('Due List') }}</h4>
|
||||
</div>
|
||||
<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">
|
||||
<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="table-search position-relative">
|
||||
<input type="text" name="search" class="form-control" placeholder="{{ __('Search...') }}" value="{{ request('search') }}">
|
||||
<span class="position-absolute">
|
||||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M14.582 14.582L18.332 18.332" stroke="#4D4D4D" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M16.668 9.16797C16.668 5.02584 13.3101 1.66797 9.16797 1.66797C5.02584 1.66797 1.66797 5.02584 1.66797 9.16797C1.66797 13.3101 5.02584 16.668 9.16797 16.668C13.3101 16.668 16.668 13.3101 16.668 9.16797Z" stroke="#4D4D4D" stroke-width="1.25" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
</span>
|
||||
</div>
|
||||
<div class="gpt-up-down-arrow position-relative d-print-none">
|
||||
<select name="type" class="form-control employee-select">
|
||||
<option value="">{{ __('Select party') }}</option>
|
||||
<option value="Retailer" {{ request('type') == 'Retailer' ? 'selected' : '' }}>{{ __('Customer') }}</option>
|
||||
<option value="Dealer" {{ request('type') == 'Dealer' ? 'selected' : '' }}>{{ __('Dealer') }}</option>
|
||||
<option value="Wholesaler" {{ request('type') == 'Wholesaler' ? 'selected' : '' }}>{{ __('Wholesaler') }}</option>
|
||||
<option value="Supplier" {{ request('type') == 'Supplier' ? 'selected' : '' }}>{{ __('Supplier') }}</option>
|
||||
</select>
|
||||
<span></span>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="due-reports-data">
|
||||
@include('business::dues.datas')
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@push('modal')
|
||||
@include('business::component.due-payment-view-modal')
|
||||
@endpush
|
||||
|
||||
|
||||
13
Modules/Business/resources/views/dues/invoice.blade.php
Normal file
13
Modules/Business/resources/views/dues/invoice.blade.php
Normal file
@@ -0,0 +1,13 @@
|
||||
@extends('layouts.business.blank')
|
||||
|
||||
@section('title')
|
||||
{{ __('Invoice') }}
|
||||
@endsection
|
||||
|
||||
@section('main_content')
|
||||
@if (invoice_setting() == '3_inch_80mm' && moduleCheck('ThermalPrinterAddon'))
|
||||
@include('thermalprinteraddon::due-collects.3_inch_80mm')
|
||||
@else
|
||||
@include('business::dues.invoices.a4-size')
|
||||
@endif
|
||||
@endsection
|
||||
237
Modules/Business/resources/views/dues/invoices/a4-size.blade.php
Normal file
237
Modules/Business/resources/views/dues/invoices/a4-size.blade.php
Normal file
@@ -0,0 +1,237 @@
|
||||
<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="col-md-6 d-flex align-items-center p-2">
|
||||
<span class="Money-Receipt white-text">{{ __('Money Receipt') }}</span>
|
||||
</div>
|
||||
<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"><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]) }}"
|
||||
class="pdf-btn print-btn">
|
||||
<img class="w-10 h-10" src="{{ asset('assets/img/pdf.svg') }}">
|
||||
{{__('PDF')}}</a>
|
||||
|
||||
<a class="print-btn-2 print-btn" onclick="window.print()"><img class="w-10 h-10"
|
||||
src="{{ asset('assets/img/print.svg') }}">{{ __('Print') }}</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<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')['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>
|
||||
@endif
|
||||
@if (($due_collect->business->meta['show_phone_number'] ?? 0) == 1)
|
||||
<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>
|
||||
@endif
|
||||
<p>
|
||||
@if (($due_collect->business->meta['show_vat'] ?? 0) == 1)
|
||||
{{ $due_collect->business->vat_name }}
|
||||
@endif
|
||||
{{ (($due_collect->business->meta['show_vat'] ?? 0) == 1 && ($due_collect->business->meta['show_vat'] ?? 0) == 1) ? ':' : '' }}
|
||||
@if (($due_collect->business->meta['show_vat'] ?? 0) == 1)
|
||||
{{ $due_collect->business->vat_no ?? '' }}
|
||||
@endif
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<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">
|
||||
<tbody>
|
||||
<tr class="in-table-row">
|
||||
<td class="text-start bold-title">{{ __('Invoice') }}</td>
|
||||
<td class="text-start">: {{ $due_collect->invoiceNumber ?? '' }}</td>
|
||||
</tr>
|
||||
<tr class="in-table-row">
|
||||
<td class="text-start bold-title">{{ __('Bill To') }}</td>
|
||||
<td class="text-start">: {{ $party->name ?? 'Guest' }}</td>
|
||||
</tr>
|
||||
<tr class="in-table-row">
|
||||
<td class="text-start bold-title">{{ __('Mobile') }}</td>
|
||||
<td class="text-start">: {{ $party->phone ?? '' }}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div>
|
||||
<table class="table">
|
||||
<tbody>
|
||||
<tr class="in-table-row">
|
||||
<td class="text-start bold-title">{{ __('Date') }}</td>
|
||||
<td class="text-start">: {{ formatted_date($due_collect->paymentDate ?? '') }}
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="in-table-row">
|
||||
<td class="text-start bold-title">{{ __('Time') }}</td>
|
||||
<td class="text-start">: {{ formatted_time($due_collect->paymentDate ?? '') }}
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="in-table-row">
|
||||
<td class="text-start bold-title">{{ __('Collected By') }}</td>
|
||||
<td class="text-start">: {{ $party->dueCollect->business->companyName ?? '' }}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div class="custom-invoice-table">
|
||||
<table class="table table-striped">
|
||||
<thead>
|
||||
<tr class="in-table-header">
|
||||
<th class="head-red text-center white-text">{{ __('SL') }}</th>
|
||||
<th class="head-red text-start">{{ __('Total Due') }}</th>
|
||||
<th class="head-black text-end">{{ __('Payment Amount') }}</th>
|
||||
<th class="head-black text-end">{{ __('Remaining Due') }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody class="in-table-body-container">
|
||||
<tr class="in-table-body">
|
||||
<td class="text-center">1</td>
|
||||
<td class="text-start">
|
||||
{{ 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->dueAmountAfterPay ?? 0, currency: business_currency()) }}
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="d-flex align-items-start justify-content-between position-relative bottom-info-container">
|
||||
<div>
|
||||
<table class="table">
|
||||
<tbody>
|
||||
<tr class="in-table-row">
|
||||
<td class="text-start"></td>
|
||||
</tr>
|
||||
@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')['note'] ?? '' }}
|
||||
</td>
|
||||
</tr>
|
||||
@endif
|
||||
<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>
|
||||
|
||||
<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>
|
||||
@endif
|
||||
</div>
|
||||
<div>
|
||||
<table class="table">
|
||||
<tbody>
|
||||
<tr class="in-table-row-bottom">
|
||||
<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()) }}
|
||||
</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">:</td>
|
||||
<td class="text-end">
|
||||
{{ currency_format($due_collect->payDueAmount ?? 0, currency: business_currency()) }}
|
||||
</td>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="in-table-row-bottom">
|
||||
<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()) }}
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div class="pdf-footer">
|
||||
<div class="in-signature-container d-flex align-items-center justify-content-between">
|
||||
<div class="in-signature">
|
||||
<hr class="in-hr">
|
||||
<h4>{{ __('Customer Signature') }}</h4>
|
||||
</div>
|
||||
<div class="in-signature">
|
||||
<hr class="in-hr">
|
||||
<h4>{{ __('Authorized Signature') }}</h4>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@if ((get_business_option('business-settings')['show_warranty'] ?? 0) == 1)
|
||||
<div class="warranty-container-2 mt-3">
|
||||
<p>
|
||||
@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')['warranty_void'] ?? '' }}
|
||||
</p>
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
81
Modules/Business/resources/views/dues/party/datas.blade.php
Normal file
81
Modules/Business/resources/views/dues/party/datas.blade.php
Normal file
@@ -0,0 +1,81 @@
|
||||
<div class="responsive-table m-0">
|
||||
<table class="table" id="datatable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{{ __('SL') }}.</th>
|
||||
<th>{{ __('Name') }}</th>
|
||||
<th>{{ __('Email') }}</th>
|
||||
<th>{{ __('Phone') }}</th>
|
||||
<th>{{ __('Type') }}</th>
|
||||
<th class="text-end">{{ __('Due Amount') }}</th>
|
||||
<th>{{ __('Action') }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach ($parties as $party)
|
||||
<tr>
|
||||
<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>
|
||||
@endif
|
||||
<td class="text-danger text-end">
|
||||
{{ currency_format($party->due, currency: business_currency()) }}
|
||||
</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>
|
||||
<ul class="dropdown-menu">
|
||||
<li>
|
||||
<a href="{{ route('business.collect.dues', $party->id) }}">
|
||||
<i class="fal fa-edit"></i>
|
||||
{{ $party->type === 'Supplier' ? __('Pay Due') : __('Collect Due') }}
|
||||
</a>
|
||||
</li>
|
||||
<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="{{ route('business.collect.dues.invoice', $party->id) }}"
|
||||
target="_blank">
|
||||
<img src="{{ asset('assets/images/icons/Invoic.svg') }}" alt="">
|
||||
{{ __('Invoice') }}
|
||||
</a>
|
||||
</li>
|
||||
@endif
|
||||
</ul>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="mt-3">
|
||||
{{ $parties->links('vendor.pagination.bootstrap-5') }}
|
||||
</div>
|
||||
61
Modules/Business/resources/views/dues/party/index.blade.php
Normal file
61
Modules/Business/resources/views/dues/party/index.blade.php
Normal file
@@ -0,0 +1,61 @@
|
||||
@extends('layouts.business.master')
|
||||
|
||||
@section('title')
|
||||
{{ __('Due List') }}
|
||||
@endsection
|
||||
|
||||
@section('main_content')
|
||||
<div class="erp-table-section">
|
||||
<div class="container-fluid">
|
||||
|
||||
<div class="card">
|
||||
<div class="card-bodys">
|
||||
<div class="table-header p-16">
|
||||
<h4>{{ __('Due List') }}</h4>
|
||||
</div>
|
||||
<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') }}">
|
||||
@endif
|
||||
|
||||
<div class="table-top-left d-flex gap-3 ">
|
||||
<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="table-search position-relative">
|
||||
<input type="text" name="search" class="form-control" placeholder="{{ __('Search...') }}" value="{{ request('search') }}">
|
||||
<span class="position-absolute">
|
||||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M14.582 14.582L18.332 18.332" stroke="#4D4D4D" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M16.668 9.16797C16.668 5.02584 13.3101 1.66797 9.16797 1.66797C5.02584 1.66797 1.66797 5.02584 1.66797 9.16797C1.66797 13.3101 5.02584 16.668 9.16797 16.668C13.3101 16.668 16.668 13.3101 16.668 9.16797Z" stroke="#4D4D4D" stroke-width="1.25" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="party-reports-data">
|
||||
@include('business::dues.party.datas')
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@push('modal')
|
||||
@include('business::component.due-payment-view-modal')
|
||||
@endpush
|
||||
|
||||
|
||||
|
||||
427
Modules/Business/resources/views/dues/pdf.blade.php
Normal file
427
Modules/Business/resources/views/dues/pdf.blade.php
Normal file
@@ -0,0 +1,427 @@
|
||||
@extends('layouts.business.pdf.pdf_layout')
|
||||
|
||||
@section('pdf_title')
|
||||
<style>
|
||||
body {
|
||||
font-family: sans-serif;
|
||||
font-size: 12px;
|
||||
color: #000;
|
||||
}
|
||||
|
||||
.invoice-container {
|
||||
width: 100%;
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
.border-none{
|
||||
border: 1px solid transparent
|
||||
}
|
||||
|
||||
.top-table {
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
.logo-cell img {
|
||||
height: 45px;
|
||||
}
|
||||
.logo-cell{
|
||||
height: 45px !important;
|
||||
width: 45px !important;
|
||||
}
|
||||
|
||||
.company-name {
|
||||
font-size: 20px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.right-info {
|
||||
text-align: right;
|
||||
font-size: 12px;
|
||||
line-height: 1.6;
|
||||
}
|
||||
|
||||
.invoice-badge {
|
||||
margin: 10px auto 15px auto;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.invoice-badge span {
|
||||
display: inline-block;
|
||||
padding: 6px 25px;
|
||||
background: #c5161d;
|
||||
color: #fff;
|
||||
border-radius: 20px;
|
||||
font-weight: bold;
|
||||
letter-spacing: 1px;
|
||||
}
|
||||
|
||||
.info-table {
|
||||
width: 100%;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.info-table td {
|
||||
vertical-align: top;
|
||||
padding: 2px 4px;
|
||||
}
|
||||
|
||||
.item-table {
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.item-table th,
|
||||
.item-table td {
|
||||
border: 1px solid #000;
|
||||
padding: 6px;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.item-table th {
|
||||
background: #f5f5f5;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.text-right { text-align: right; }
|
||||
.text-center { text-align: center; }
|
||||
|
||||
.summary-table {
|
||||
width: 100%;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.summary-table td {
|
||||
padding: 4px;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.summary-right {
|
||||
width: 40%;
|
||||
float: right;
|
||||
}
|
||||
|
||||
.return-title {
|
||||
margin-top: 15px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.footer-table {
|
||||
width: 100%;
|
||||
margin-top: 25px;
|
||||
}
|
||||
|
||||
.signature {
|
||||
width: 40%;
|
||||
text-align: end;
|
||||
}
|
||||
.signature-2{
|
||||
text-align: right
|
||||
}
|
||||
|
||||
.signature hr {
|
||||
margin-bottom: 3px;
|
||||
}
|
||||
|
||||
.warranty-box {
|
||||
border: 1px solid #000;
|
||||
padding: 6px;
|
||||
margin-top: 15px;
|
||||
font-size: 11px;
|
||||
}
|
||||
.in-title{
|
||||
margin-top: 30px !important;
|
||||
}
|
||||
</style>
|
||||
@endsection
|
||||
|
||||
@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 class="mt-2" style="text-align:center;">{{ __('Due Pdf') }}</h4>
|
||||
</div>
|
||||
|
||||
@push('css')
|
||||
@include('business::pdf.fonts-css')
|
||||
@endpush
|
||||
|
||||
@endsection
|
||||
|
||||
@php
|
||||
$logo = get_business_option('business-settings')['a4_invoice_logo'] ?? null;
|
||||
$logoFile = public_path($logo ?? 'assets/images/default.svg');
|
||||
$logoData = base64_encode(file_get_contents($logoFile));
|
||||
$logoMime = mime_content_type($logoFile);
|
||||
@endphp
|
||||
|
||||
@section('pdf_content')
|
||||
<div class="in-container">
|
||||
<div class="in-content">
|
||||
{{-- <table width="100%" class="invoice-top-header">
|
||||
<tr>
|
||||
<td width="60%" valign="top">
|
||||
<table>
|
||||
<tr>
|
||||
<td valign="top">
|
||||
@if ((get_business_option('business-settings')['show_a4_invoice_logo'] ?? 0) == 1 )
|
||||
<img class="logo-cell"
|
||||
src="data:{{ $logoMime }};base64,{{ $logoData }}"
|
||||
style="max-width:60px;">
|
||||
@endif
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
|
||||
<td width="40%" valign="top" align="right">
|
||||
@if (($due_collect->business->meta['show_address'] ?? 0) == 1)
|
||||
<p>{{ __('Address') }} : </p>
|
||||
@endif
|
||||
@if (($due_collect->business->meta['show_phone_number'] ?? 0) == 1)
|
||||
<p>{{ __('Mobile') }} : </p>
|
||||
@endif
|
||||
@if (($due_collect->business->meta['show_email'] ?? 0) == 1)
|
||||
<p>{{ __('Email') }} : </p>
|
||||
@endif
|
||||
</td>
|
||||
</tr>
|
||||
</table> --}}
|
||||
|
||||
<table class="top-table">
|
||||
<tr>
|
||||
<td>
|
||||
<table>
|
||||
<tr>
|
||||
@if ((get_business_option('business-settings')['show_a4_invoice_logo'] ?? 0) == 1 )
|
||||
<td>
|
||||
<img
|
||||
src="data:{{ $logoMime }};base64,{{ $logoData }}"
|
||||
style="
|
||||
width: auto;
|
||||
height: 54px;
|
||||
display: block;
|
||||
"
|
||||
>
|
||||
</td>
|
||||
|
||||
|
||||
@endif
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
<td class="right-info">
|
||||
{{ __('Address') }} : {{ $due_collect->branch?->address ?? $due_collect->business?->address ?? '' }}<br>
|
||||
{{ __('Mobile') }} : {{ $due_collect->branch?->phone ?? $due_collect->business?->phoneNumber ?? '' }}<br>
|
||||
{{ __('Email') }} : {{ $due_collect->branch?->email ?? $due_collect->business?->email ?? '' }}<br>
|
||||
@if (($due_collect->business->meta['show_vat'] ?? 0) == 1)
|
||||
{{ $due_collect->business->vat_name }}
|
||||
@endif
|
||||
{{ (($due_collect->business->meta['show_vat'] ?? 0) == 1 && ($due_collect->business->meta['show_vat'] ?? 0) == 1) ? ':' : '' }}
|
||||
@if (($due_collect->business->meta['show_vat'] ?? 0) == 1)
|
||||
{{ $due_collect->business->vat_no ?? '' }}
|
||||
@endif
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
|
||||
<h3 style="
|
||||
font-size: 20px;
|
||||
font-weight: 600;
|
||||
color: white;
|
||||
background-color: #c52127;
|
||||
padding: 5px 12px;
|
||||
border-radius: 30px;
|
||||
margin-top: 12px !important;
|
||||
width: 170px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
margin: auto;
|
||||
border: 1px solid black;
|
||||
text-align: center;" class="in-title">
|
||||
{{ __('MONEY RECEIPT') }}
|
||||
</h3>
|
||||
|
||||
<table width="100%" style="margin-bottom:10px;">
|
||||
<tr>
|
||||
<td width="50%" valign="top"
|
||||
style="text-align:{{ app()->getLocale() == 'ar' ? 'left' : 'left' }};">
|
||||
<table>
|
||||
<tr>
|
||||
<td>{{ __('Invoice') }}</td>
|
||||
<td>: {{ $due_collect->invoiceNumber ?? '' }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{ __('Bill To') }}</td>
|
||||
<td>: {{ $party->name ?? 'Guest' }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{ __('Mobile') }}</td>
|
||||
<td>: {{ $party->phone ?? '' }}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
|
||||
<td width="50%" valign="top"
|
||||
style="text-align:{{ app()->getLocale() == 'ar' ? 'right' : 'right' }};">
|
||||
<table>
|
||||
<tr>
|
||||
<td>{{ __('Date') }}</td>
|
||||
<td>: {{ formatted_date($party->dueCollect->paymentDate ?? '') }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{ __('Time') }}</td>
|
||||
<td>: {{ formatted_time($party->dueCollect->paymentDate ?? '') }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{ __('Collected By') }}</td>
|
||||
<td>: {{ $party->dueCollect->business->companyName ?? '' }}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<div>
|
||||
<table width="100%" border="1" cellspacing="0" cellpadding="6">
|
||||
<thead>
|
||||
<tr>
|
||||
<th align="center">{{ __('SL') }}</th>
|
||||
<th align="center">{{ __('Total Due') }}</th>
|
||||
<th align="center">{{ __('Payment Amount') }}</th>
|
||||
<th align="right">{{ __('Remaining Due') }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td align="center">1</td>
|
||||
<td align="center">{{ currency_format($due_collect->totalDue ?? 0, currency: business_currency()) }}</td>
|
||||
<td align="center">{{ currency_format($due_collect->payDueAmount ?? 0, currency: business_currency()) }}</td>
|
||||
<td align="right" style="text-align: end">{{ currency_format($due_collect->dueAmountAfterPay ?? 0, currency: business_currency()) }}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<table width="100%" style="margin-top:15px;">
|
||||
<tr>
|
||||
{{-- LEFT SIDE --}}
|
||||
<td width="60%" valign="top">
|
||||
<table width="100%">
|
||||
<tbody>
|
||||
@if ((get_business_option('business-settings')['show_note'] ?? 0) == 1)
|
||||
<tr>
|
||||
<td style="padding-bottom:8px;">
|
||||
{{ get_business_option('business-settings')['note'] ?? '' }}
|
||||
</td>
|
||||
</tr>
|
||||
@endif
|
||||
|
||||
<tr>
|
||||
<td style="padding-top:5px; font-weight:bold;">
|
||||
{{ __('Paid by') }} :
|
||||
{{ $transactionTypes
|
||||
?? ($due_collect->payment_type_id
|
||||
? ($due_collect->payment_type->name ?? '')
|
||||
: ($due_collect->paymentType ?? '')
|
||||
)
|
||||
}}
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
{{-- BANK DETAILS --}}
|
||||
@if (($bank_detail->show_in_invoice ?? 0) == 1)
|
||||
<table width="" style="margin-top:10px; border:1px solid #ccc;" cellspacing="0" cellpadding="5">
|
||||
<tr>
|
||||
<td colspan="2" style="font-weight:bold; background:#f5f5f5;">
|
||||
{{ __('Bank Details') }}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="40%">{{ __('Name') }}</td>
|
||||
<td width="60%">: {{ $bank_detail->name }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{ __('Account No') }}</td>
|
||||
<td>: {{ $bank_detail->meta['account_number'] ?? '' }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{ __('UPI ID') }}</td>
|
||||
<td>: {{ $bank_detail->meta['upi_id'] ?? '' }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{ __('Holder’s Name') }}</td>
|
||||
<td>: {{ $bank_detail->meta['account_holder'] ?? '' }}</td>
|
||||
</tr>
|
||||
</table>
|
||||
@endif
|
||||
</td>
|
||||
|
||||
{{-- RIGHT SIDE --}}
|
||||
<td width="40%" valign="top" align="right">
|
||||
<table width="100%">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td align="right">{{ __('Payable Amount') }}</td>
|
||||
<td align="right">:</td>
|
||||
<td align="right">
|
||||
{{ currency_format($due_collect->totalDue ?? 0, currency: business_currency()) }}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="right">
|
||||
{{ $party->type === 'Supplier' ? __('Paid Amount') : __('Received Amount') }}
|
||||
</td>
|
||||
<td align="right">:</td>
|
||||
<td align="right">
|
||||
{{ currency_format($due_collect->payDueAmount ?? 0, currency: business_currency()) }}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="right">{{ __('Due Amount') }}</td>
|
||||
<td align="right">:</td>
|
||||
<td align="right">
|
||||
{{ currency_format($due_collect->dueAmountAfterPay ?? 0, currency: business_currency()) }}
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<table width="100%" style="margin-top:60px;">
|
||||
<tr>
|
||||
<!-- Customer Signature (Left) -->
|
||||
<td align="left">
|
||||
<div style="border-top: 1px solid black">
|
||||
{{ __('Customer Signature') }}
|
||||
</div>
|
||||
</td>
|
||||
|
||||
<!-- Authorized Signature (Right) -->
|
||||
<td align="right">
|
||||
<div style="border-top: 1px solid black;">
|
||||
<div style="padding: 8px !important;">
|
||||
{{ __('Authorized Signature') }}
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
|
||||
@if ((get_business_option('business-settings')['show_warranty'] ?? 0) == 1)
|
||||
@if ((get_business_option('business-settings')['show_warranty'] ?? 0) == 1)
|
||||
<div class="warranty-box">
|
||||
<strong>{{ __('Warranty Void') }}</strong> -
|
||||
{{ get_business_option('business-settings')['warranty_void'] ?? '' }}
|
||||
</div>
|
||||
@endif
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
@@ -0,0 +1,39 @@
|
||||
<div class="modal fade common-validation-modal" id="expense-categories-create-modal">
|
||||
<div class="modal-dialog modal-dialog-centered">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h1 class="modal-title fs-5">{{ __('Create Expense Category') }}</h1>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="personal-info">
|
||||
<form action="{{ route('business.expense-categories.store') }}" method="post" enctype="multipart/form-data"
|
||||
class="ajaxform_instant_reload">
|
||||
@csrf
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-12 mb-2">
|
||||
<label>{{ __('Category Name') }}</label>
|
||||
<input type="text" name="categoryName" required class="form-control" placeholder="{{ __('Enter catgeory Name') }}">
|
||||
</div>
|
||||
|
||||
<div class="col-lg-12 mt-1">
|
||||
<label>{{__('Description')}}</label>
|
||||
<textarea name="categoryDescription" class="form-control" placeholder="{{ __('Enter Description') }}"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-12">
|
||||
<div class="button-group text-center mt-5">
|
||||
<button type="reset" class="theme-btn border-btn m-2">{{ __('Reset') }}</button>
|
||||
@usercan('expense-categories.create')
|
||||
<button class="theme-btn m-2 submit-btn">{{ __('Save') }}</button>
|
||||
@endusercan
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,75 @@
|
||||
<div class="responsive-table m-0">
|
||||
<table class="table" id="datatable">
|
||||
<thead>
|
||||
<tr>
|
||||
@usercan('expense-categories.delete')
|
||||
<th class="w-60">
|
||||
<div class="d-flex align-items-center gap-3">
|
||||
<input type="checkbox" class="select-all-delete multi-delete">
|
||||
</div>
|
||||
</th>
|
||||
@endusercan
|
||||
<th>{{ __('SL') }}.</th>
|
||||
<th class="text-start">{{ __('Category Name') }}</th>
|
||||
<th class="text-start">{{ __('Description') }}</th>
|
||||
<th>{{ __('Status') }}</th>
|
||||
<th>{{ __('Action') }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach ($expense_categories as $expense_category)
|
||||
<tr>
|
||||
@usercan('expense-categories.delete')
|
||||
<td class="w-60 checkbox">
|
||||
<input type="checkbox" name="ids[]" class="delete-checkbox-item multi-delete"
|
||||
value="{{ $expense_category->id }}">
|
||||
</td>
|
||||
@endusercan
|
||||
<td>{{ ($expense_categories->currentPage() - 1) * $expense_categories->perPage() + $loop->iteration }}
|
||||
</td>
|
||||
<td class="text-start">{{ $expense_category->categoryName }}</td>
|
||||
<td class="text-start">{{ $expense_category->categoryDescription }}</td>
|
||||
<td>
|
||||
<label class="switch">
|
||||
<input type="checkbox" {{ $expense_category->status == 1 ? 'checked' : '' }} class="status"
|
||||
data-url="{{ route('business.expense-categories.status', $expense_category->id) }}">
|
||||
<span class="slider round"></span>
|
||||
</label>
|
||||
</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>
|
||||
<ul class="dropdown-menu">
|
||||
<li>
|
||||
@usercan('expense-categories.update')
|
||||
<a href="#expense-categories-edit-modal" data-bs-toggle="modal"
|
||||
class="expense-categories-edit-btn"
|
||||
data-url="{{ route('business.expense-categories.update', $expense_category->id) }}"
|
||||
data-expense-categories-name="{{ $expense_category->categoryName }}"
|
||||
data-expense-categories-description="{{ $expense_category->categoryDescription }}"><i
|
||||
class="fal fa-pencil-alt"></i>{{ __('Edit') }}</a>
|
||||
@endusercan
|
||||
</li>
|
||||
<li>
|
||||
@usercan('expense-categories.delete')
|
||||
<a href="{{ route('business.expense-categories.destroy', $expense_category->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>
|
||||
</div>
|
||||
<div class="mt-3">
|
||||
{{ $expense_categories->links('vendor.pagination.bootstrap-5') }}
|
||||
</div>
|
||||
@@ -0,0 +1,40 @@
|
||||
|
||||
<div class="modal fade common-validation-modal" id="expense-categories-edit-modal">
|
||||
<div class="modal-dialog modal-dialog-centered">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h1 class="modal-title fs-5">{{ __('Edit Expense Category') }}</h1>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="personal-info">
|
||||
<form action="" method="post" enctype="multipart/form-data"
|
||||
class="ajaxform_instant_reload expenseCategoryUpdateForm">
|
||||
@csrf
|
||||
@method('put')
|
||||
<div class="row">
|
||||
<div class="col-lg-12 mb-2">
|
||||
<label>{{ __('Buisness Name') }}</label>
|
||||
<input type="text" name="categoryName" id="expense_categories_view_name" required class="form-control" placeholder="{{ __('Enter Buisness Name') }}">
|
||||
</div>
|
||||
|
||||
<div class="col-lg-12 mt-1">
|
||||
<label>{{__('Description')}}</label>
|
||||
<textarea name="categoryDescription" id="expense_categories_view_description" class="form-control" placeholder="{{ __('Enter Description') }}"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-12">
|
||||
<div class="button-group text-center mt-5">
|
||||
<a href="{{ route('business.expense-categories.index') }}" class="theme-btn border-btn m-2">{{ __('Cancel') }}</a>
|
||||
@usercan('expense-categories.update')
|
||||
<button class="theme-btn m-2 submit-btn">{{ __('Save') }}</button>
|
||||
@endusercan
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,69 @@
|
||||
@extends('layouts.business.master')
|
||||
|
||||
@section('title')
|
||||
{{ __('Expense Category List') }}
|
||||
@endsection
|
||||
|
||||
@section('main_content')
|
||||
<div class="erp-table-section">
|
||||
<div class="container-fluid">
|
||||
<div class="card">
|
||||
<div class="card-bodys">
|
||||
<div class="table-header p-16">
|
||||
<h4>{{ __('Expense Category List') }}</h4>
|
||||
@usercan('expense-categories.create')
|
||||
<a type="button" href="#expense-categories-create-modal" data-bs-toggle="modal"
|
||||
class="add-order-btn rounded-2 {{ Route::is('admin.expense-categories.create') ? 'active' : '' }}"
|
||||
class="btn btn-primary"><i class="fas fa-plus-circle me-1"></i>{{ __('Add new') }}</a>
|
||||
@endusercan
|
||||
</div>
|
||||
<div class="table-top-form p-16-0">
|
||||
<form action="{{ route('business.expense-categories.index') }}" method="GET" class="filter-form" table="#expense-categories-data">
|
||||
|
||||
<div class="table-top-left d-flex gap-3 margin-l-16">
|
||||
<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="table-search position-relative">
|
||||
<input type="text" name="search" class="form-control" placeholder="{{ __('Search...') }}" value="{{ request('search') }}">
|
||||
<span class="position-absolute">
|
||||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M14.582 14.582L18.332 18.332" stroke="#4D4D4D" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M16.668 9.16797C16.668 5.02584 13.3101 1.66797 9.16797 1.66797C5.02584 1.66797 1.66797 5.02584 1.66797 9.16797C1.66797 13.3101 5.02584 16.668 9.16797 16.668C13.3101 16.668 16.668 13.3101 16.668 9.16797Z" stroke="#4D4D4D" stroke-width="1.25" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="delete-item delete-show d-none">
|
||||
<div class="delete-item-show">
|
||||
<p class="fw-bold"><span class="selected-count"></span> {{ __('items show') }}</p>
|
||||
<button data-bs-toggle="modal" class="trigger-modal" data-bs-target="#multi-delete-modal" data-url="{{ route('business.expense-categories.delete-all') }}">{{ __('Delete') }}</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="expense-categories-data">
|
||||
@include('business::expense-categories.datas')
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@push('modal')
|
||||
@include('business::component.delete-modal')
|
||||
@include('business::expense-categories.create')
|
||||
@include('business::expense-categories.edit')
|
||||
@endpush
|
||||
64
Modules/Business/resources/views/expenses/create.blade.php
Normal file
64
Modules/Business/resources/views/expenses/create.blade.php
Normal file
@@ -0,0 +1,64 @@
|
||||
<div class="modal fade common-validation-modal" id="expenses-create-modal">
|
||||
<div class="modal-dialog modal-dialog-centered modal-lg">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h1 class="modal-title fs-5">{{ __('Create Expense') }}</h1>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="personal-info">
|
||||
<form action="{{ route('business.expenses.store') }}" method="post" enctype="multipart/form-data" class="ajaxform_instant_reload">
|
||||
@csrf
|
||||
<div class="row">
|
||||
<div class="col-lg-6 mb-2">
|
||||
<label>{{ __('Amount') }}</label>
|
||||
<input type="number" name="amount" class="form-control receive_amount" placeholder="{{ __('Enter Amount') }}" required>
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<label class="custom-top-label">{{ __('Category') }}</label>
|
||||
<div class="gpt-up-down-arrow position-relative">
|
||||
<select class="form-control form-selected" name="expense_category_id" required>
|
||||
<option value="">{{ __('Select A Category') }}</option>
|
||||
@foreach ($expense_categories as $expense_category)
|
||||
<option value="{{ $expense_category->id }}">{{ $expense_category->categoryName }}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
<span></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<label>{{ __('Expense For') }}</label>
|
||||
<input type="text" name="expanseFor" class="form-control" placeholder="{{ __('Enter Expense For') }}">
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<label>{{ __('Reference Number') }}</label>
|
||||
<input type="text" name="referenceNo" class="form-control" placeholder="{{ __('Enter reference number') }}">
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<label>{{ __('Expense Date') }}</label>
|
||||
<input type="date" name="expenseDate" value="{{ now()->format('Y-m-d') }}" class="form-control">
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<label>{{__('Note')}}</label>
|
||||
<textarea name="note" class="form-control" placeholder="{{ __('Enter note') }}"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<label>{{ __('Payment Type') }}</label>
|
||||
@include('business::component.payment_type', ['context' => 'expense', 'payment_types' => $payment_types])
|
||||
</div>
|
||||
|
||||
<div class="col-lg-12">
|
||||
<div class="button-group text-center mt-5">
|
||||
<button type="reset" class="theme-btn border-btn m-2">{{ __('Reset') }}</button>
|
||||
@usercan('expenses.create')
|
||||
<button class="theme-btn m-2 submit-btn">{{ __('Save') }}</button>
|
||||
@endusercan
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
106
Modules/Business/resources/views/expenses/datas.blade.php
Normal file
106
Modules/Business/resources/views/expenses/datas.blade.php
Normal file
@@ -0,0 +1,106 @@
|
||||
<div class="responsive-table m-0">
|
||||
<table class="table" id="datatable">
|
||||
<thead>
|
||||
<tr>
|
||||
@usercan('expenses.delete')
|
||||
<th class="w-60">
|
||||
<div class="d-flex align-items-center gap-3">
|
||||
<input type="checkbox" class="select-all-delete multi-delete">
|
||||
</div>
|
||||
</th>
|
||||
@endusercan
|
||||
<th>{{ __('SL') }}.</th>
|
||||
@if (auth()->user()->accessToMultiBranch())
|
||||
<th class="text-start">{{ __('Branch') }}</th>
|
||||
@endif
|
||||
<th class="text-start">{{ __('Date') }}</th>
|
||||
<th class="text-start">{{ __('Reference Number') }}</th>
|
||||
<th class="text-start">{{ __('Category') }}</th>
|
||||
<th class="text-start">{{ __('Expense For') }}</th>
|
||||
<th class="text-start">{{ __('Amount') }}</th>
|
||||
<th>{{ __('Action') }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach ($expenses as $expense)
|
||||
<tr>
|
||||
@usercan('expenses.delete')
|
||||
<td class="w-60 checkbox">
|
||||
<input type="checkbox" name="ids[]" class="delete-checkbox-item multi-delete"
|
||||
value="{{ $expense->id }}">
|
||||
</td>
|
||||
@endusercan
|
||||
<td>{{ ($expenses->currentPage() - 1) * $expenses->perPage() + $loop->iteration }}</td>
|
||||
@if (auth()->user()->accessToMultiBranch())
|
||||
<td class="text-start">{{ $expense->branch->name ?? '' }}</td>
|
||||
@endif
|
||||
<td class="text-start">{{ formatted_date($expense->expenseDate) }}</td>
|
||||
<td class="text-start">{{ $expense->referenceNo }}</td>
|
||||
<td class="text-start">{{ $expense->category?->categoryName }}</td>
|
||||
<td class="text-start">{{ $expense->expanseFor }}</td>
|
||||
<td class="text-start">{{ currency_format($expense->amount, currency: business_currency()) }}</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>
|
||||
<ul class="dropdown-menu">
|
||||
<li>
|
||||
@usercan('expenses.update')
|
||||
<a href="#expenses-edit-modal" data-bs-toggle="modal" class="expense-edit-btn"
|
||||
data-url="{{ route('business.expenses.update', $expense->id) }}"
|
||||
data-expense-category-id="{{ $expense->expense_category_id }}"
|
||||
data-expense-amount="{{ $expense->amount }}"
|
||||
data-expense-for="{{ $expense->expanseFor }}"
|
||||
data-expense-reference-no="{{ $expense->referenceNo }}"
|
||||
data-expense-date="{{ $expense->expenseDate }}"
|
||||
data-expense-note="{{ $expense->note }}"
|
||||
data-existing-transactions='@json($expense->transactions ?? [])'>
|
||||
<i class="fal fa-pencil-alt"></i>{{ __('Edit') }}
|
||||
</a>
|
||||
@endusercan
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="#"
|
||||
data-url="{{ route('business.view-payment', ['type' => 'expense', 'id' => $expense->id]) }}"
|
||||
class="view-payment-btn" data-bs-toggle="modal"
|
||||
data-bs-target="#view-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>
|
||||
|
||||
<li>
|
||||
@usercan('expenses.delete')
|
||||
<a href="{{ route('business.expenses.destroy', $expense->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>
|
||||
</div>
|
||||
<div class="mt-3">
|
||||
{{ $expenses->links('vendor.pagination.bootstrap-5') }}
|
||||
</div>
|
||||
66
Modules/Business/resources/views/expenses/edit.blade.php
Normal file
66
Modules/Business/resources/views/expenses/edit.blade.php
Normal file
@@ -0,0 +1,66 @@
|
||||
<div class="modal fade common-validation-modal" id="expenses-edit-modal">
|
||||
<div class="modal-dialog modal-dialog-centered modal-lg">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h1 class="modal-title fs-5">{{ __('Edit Expense') }}</h1>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="personal-info">
|
||||
<form action="" method="post" enctype="multipart/form-data"
|
||||
class="ajaxform_instant_reload expenseUpdateForm">
|
||||
@csrf
|
||||
@method('put')
|
||||
<div class="row">
|
||||
<div class="col-lg-6 mb-2">
|
||||
<label>{{ __('Amount') }}</label>
|
||||
<input type="number" name="amount" id="expense_amount" required class="form-control receive_amount" placeholder="{{ __('Enter amount') }}">
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<label class="custom-top-label">{{ __('Category') }}</label>
|
||||
<div class="gpt-up-down-arrow position-relative">
|
||||
<select class="form-control form-selected" id="expenseCategoryId" name="expense_category_id" required>
|
||||
<option value="">{{ __('Select A Category') }}</option>
|
||||
@foreach ($expense_categories as $expense_category)
|
||||
<option value="{{ $expense_category->id }}">{{ $expense_category->categoryName }}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
<span></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<label>{{ __('Expense For') }}</label>
|
||||
<input type="text" name="expanseFor" id="expe_for" class="form-control" placeholder="{{ __('Enter Expense For') }}">
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<label>{{ __('Reference Number') }}</label>
|
||||
<input type="text" name="referenceNo" id="refeNo" class="form-control" placeholder="{{ __('Enter reference number') }}">
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<label>{{ __('Expense Date') }}</label>
|
||||
<input type="date" name="expenseDate" id="edit_date_expe" class="form-control">
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<label>{{__('Note')}}</label>
|
||||
<textarea name="note" id="expenote" class="form-control" placeholder="{{ __('Enter note') }}"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-6 mb-2">
|
||||
<label>{{ __('Payment Type') }}</label>
|
||||
@include('business::component.payment_type', ['context' => 'expense', 'payment_types' => $payment_types])
|
||||
</div>
|
||||
|
||||
<div class="col-lg-12">
|
||||
<div class="button-group text-center mt-5">
|
||||
<a href="{{ route('business.expenses.index') }}" class="theme-btn border-btn m-2">{{ __('Cancel') }}</a>
|
||||
@usercan('expenses.update')
|
||||
<button class="theme-btn m-2 submit-btn">{{ __('Save') }}</button>
|
||||
@endusercan
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
122
Modules/Business/resources/views/expenses/index.blade.php
Normal file
122
Modules/Business/resources/views/expenses/index.blade.php
Normal file
@@ -0,0 +1,122 @@
|
||||
@extends('layouts.business.master')
|
||||
|
||||
@section('title')
|
||||
{{ __('Expense List') }}
|
||||
@endsection
|
||||
|
||||
@section('main_content')
|
||||
<div class="erp-table-section">
|
||||
<div class="container-fluid">
|
||||
<div class="card">
|
||||
<div class="card-bodys">
|
||||
|
||||
<div class="table-header p-16">
|
||||
<h4>{{ __('Expense List') }}</h4>
|
||||
@usercan('expenses.create')
|
||||
<a type="button" href="#expenses-create-modal" data-bs-toggle="modal"
|
||||
class="add-order-btn rounded-2 {{ Route::is('business.expenses.create') ? 'active' : '' }}"
|
||||
class="btn btn-primary"><i class="fas fa-plus-circle me-1"></i>{{ __('Add new') }}</a>
|
||||
@endusercan
|
||||
</div>
|
||||
|
||||
<div class="table-top-form p-16-0">
|
||||
<form action="{{ route('business.expenses.index') }}" method="GET" class="filter-form" table="#expenses-data">
|
||||
|
||||
<div class="table-top-left d-flex gap-3 flex-wrap">
|
||||
|
||||
<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>
|
||||
|
||||
@if(auth()->user()->accessToMultiBranch())
|
||||
<div class="table-search position-relative">
|
||||
<div class="gpt-up-down-arrow position-relative">
|
||||
<select name="branch_id" class="form-control">
|
||||
<option value="">{{ __('Select Branch') }}</option>
|
||||
@foreach ($branches as $branch)
|
||||
<option value="{{ $branch->id }}" @selected(request('branch_id') == $branch->id) >{{ $branch->name }}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
<span></span>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<div class="table-search position-relative">
|
||||
<input type="text" name="search" class="form-control" placeholder="{{ __('Search...') }}" value="{{ request('search') }}">
|
||||
<span class="position-absolute">
|
||||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M14.582 14.582L18.332 18.332" stroke="#4D4D4D" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M16.668 9.16797C16.668 5.02584 13.3101 1.66797 9.16797 1.66797C5.02584 1.66797 1.66797 5.02584 1.66797 9.16797C1.66797 13.3101 5.02584 16.668 9.16797 16.668C13.3101 16.668 16.668 13.3101 16.668 9.16797Z" stroke="#4D4D4D" stroke-width="1.25" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div class="custom-from-to align-items-center date-filters d-none">
|
||||
<label class="header-label">{{ __('From Date') }}</label>
|
||||
<input type="date" name="from_date" value="{{ request('from_date') ?? now()->format('Y-m-d') }}" class="form-control">
|
||||
</div>
|
||||
|
||||
<div class="custom-from-to align-items-center date-filters d-none">
|
||||
<label class="header-label">{{ __('To Date') }}</label>
|
||||
<input type="date" name="to_date" value="{{ request('to_date') ?? now()->format('Y-m-d') }}" class="form-control">
|
||||
</div>
|
||||
|
||||
<div class="gpt-up-down-arrow position-relative d-print-none custom-date-filter">
|
||||
<select name="custom_days" class="form-control custom-days">
|
||||
<option value="today" {{ request()->get('custom_days') == 'today' ? 'selected' : '' }}>{{ __('Today') }}</option>
|
||||
<option value="yesterday" {{ request()->get('custom_days') == 'yesterday' ? 'selected' : '' }}>{{ __('Yesterday') }}</option>
|
||||
<option value="last_seven_days" {{ request()->get('custom_days') == 'last_seven_days' ? 'selected' : '' }}>{{ __('Last 7 Days') }}</option>
|
||||
<option value="last_thirty_days" {{ request()->get('custom_days') == 'last_thirty_days' ? 'selected' : '' }}>{{ __('Last 30 Days') }}</option>
|
||||
<option value="current_month" {{ request()->get('custom_days') == 'current_month' ? 'selected' : '' }}>{{ __('Current Month') }}</option>
|
||||
<option value="last_month" {{ request()->get('custom_days') == 'last_month' ? 'selected' : '' }}>{{ __('Last Month') }}</option>
|
||||
<option value="current_year" {{ request()->get('custom_days') == 'current_year' ? 'selected' : '' }}>{{ __('Current Year') }}</option>
|
||||
<option value="custom_date" {{ request()->get('custom_days') == 'custom_date' ? 'selected' : '' }}>{{ __('Custom Date') }}</option>
|
||||
</select>
|
||||
<span></span>
|
||||
<div class="calendar-icon">
|
||||
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M12.6667 2.67188H3.33333C2.59695 2.67188 2 3.26883 2 4.00521V13.3385C2 14.0749 2.59695 14.6719 3.33333 14.6719H12.6667C13.403 14.6719 14 14.0749 14 13.3385V4.00521C14 3.26883 13.403 2.67188 12.6667 2.67188Z" stroke="#4B5563" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M10.6641 1.32812V3.99479" stroke="#4B5563" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M5.33594 1.32812V3.99479" stroke="#4B5563" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M2 6.67188H14" stroke="#4B5563" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="delete-item delete-show d-none">
|
||||
<div class="delete-item-show">
|
||||
<p class="fw-bold"><span class="selected-count"></span> {{ __('items show') }}</p>
|
||||
<button data-bs-toggle="modal" class="trigger-modal" data-bs-target="#multi-delete-modal" data-url="{{ route('business.expenses.delete-all') }}">{{ __('Delete') }}</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="expenses-data">
|
||||
@include('business::expenses.datas')
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<input type="hidden" id="payment-delete-route" data-url="{{ route('business.delete.payments', ['type' => ':type', 'id' => ':id']) }}">
|
||||
|
||||
@endsection
|
||||
|
||||
@push('modal')
|
||||
@include('business::component.delete-modal')
|
||||
@include('business::expenses.create')
|
||||
@include('business::expenses.edit')
|
||||
@include('business::component.view-payment-modal')
|
||||
@include('business::component.edit-payment')
|
||||
@endpush
|
||||
@@ -0,0 +1,114 @@
|
||||
<div class="responsive-table m-0">
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="d-print-none">{{ __('SL') }}.</th>
|
||||
<th class="d-print-none">{{ __('Image') }}</th>
|
||||
<th>{{ __('Product Name') }}</th>
|
||||
<th class="d-print-none">{{ __('Code') }}</th>
|
||||
<th class="d-print-none">{{ __('Brand') }}</th>
|
||||
<th>{{ __('Category') }}</th>
|
||||
<th class="d-print-none">{{ __('Unit') }}</th>
|
||||
|
||||
@usercan('products-expired.price')
|
||||
<th>{{ __('Purchase price') }}</th>
|
||||
@endusercan
|
||||
|
||||
<th>{{ __('Sale price') }}</th>
|
||||
<th>{{ __('Stock') }}</th>
|
||||
<th>{{ __('Expired Date') }}</th>
|
||||
<th class="d-print-none">{{ __('Action') }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
@foreach ($expired_products as $product)
|
||||
@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
|
||||
|
||||
<tr>
|
||||
<td class="d-print-none">
|
||||
{{ ($expired_products->currentPage() - 1) * $expired_products->perPage() + $loop->iteration }}
|
||||
</td>
|
||||
|
||||
<td class="d-print-none">
|
||||
<img src="{{ asset($product->productPicture ?? 'assets/images/logo/upload2.jpg') }}"
|
||||
alt="Img" class="table-product-img">
|
||||
</td>
|
||||
|
||||
<td>{{ $product->productName }}</td>
|
||||
|
||||
<td class="d-print-none">{{ $product->productCode }}</td>
|
||||
|
||||
<td class="d-print-none">{{ $product->brand->brandName ?? '' }}</td>
|
||||
|
||||
<td>{{ $product->category->categoryName ?? '' }}</td>
|
||||
|
||||
<td class="d-print-none">{{ $product->unit->unitName ?? '' }}</td>
|
||||
|
||||
@usercan('products-expired.price')
|
||||
<td>{{ currency_format($latestPurchasePrice, currency: business_currency()) }}</td>
|
||||
@endusercan
|
||||
|
||||
<td>{{ currency_format($latestSalePrice, currency: business_currency()) }}</td>
|
||||
|
||||
<td class="{{ $product->total_stock <= $product->alert_qty ? 'text-danger' : 'text-success' }}">
|
||||
{{ $product->total_stock }}
|
||||
</td>
|
||||
|
||||
@if ($product->stocks->isNotEmpty())
|
||||
<td class="text-danger">
|
||||
{{ formatted_date($product->stocks->first()->expire_date) }}
|
||||
</td>
|
||||
@endif
|
||||
|
||||
<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>
|
||||
<ul class="dropdown-menu">
|
||||
<li>
|
||||
@usercan('expired-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-expired.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-product-expire-date="{{ formatted_date(optional($product->stocks->first())->expire_date) }}"
|
||||
data-manufacturer="{{ $product->productManufacturer }}">
|
||||
<i class="fal fa-eye"></i>
|
||||
{{ __('View') }}
|
||||
</a>
|
||||
@endusercan
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div class="mt-3">
|
||||
{{ $expired_products->links('vendor.pagination.bootstrap-5') }}
|
||||
</div>
|
||||
@@ -0,0 +1,48 @@
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{{ __('SL') }}. </th>
|
||||
<th>{{ __('Image') }} </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>{{ __('Expired Date') }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
@foreach ($expired_products as $product)
|
||||
|
||||
@php
|
||||
$nonEmptyStock = $product->stocks->firstWhere('productStock', '>', 0);
|
||||
$fallbackStock = $product->stocks->first(); // fallback if no stock > 0
|
||||
$stock = $nonEmptyStock ?? $fallbackStock;
|
||||
$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->brand->brandName ?? '' }}</td>
|
||||
<td>{{ $product->category->categoryName ?? '' }}</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>
|
||||
@if ($product->stocks->isNotEmpty())
|
||||
<td class="text-danger">
|
||||
{{ formatted_date($product->stocks->first()->expire_date) }}
|
||||
</td>
|
||||
@endif
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
@@ -0,0 +1,87 @@
|
||||
@extends('layouts.business.master')
|
||||
|
||||
@section('title')
|
||||
{{ __('Expired Products') }}
|
||||
@endsection
|
||||
|
||||
@section('main_content')
|
||||
<div class="erp-table-section">
|
||||
<div class="container-fluid">
|
||||
<div class="card ">
|
||||
<div class="card-bodys">
|
||||
<div class="table-header p-16 d-print-none">
|
||||
<h4>{{ __('Expired Products') }}</h4>
|
||||
</div>
|
||||
|
||||
<div class="table-header justify-content-center border-0 text-center d-none d-block d-print-block">
|
||||
@include('business::print.header')
|
||||
<h4 class="mt-2">{{ __('Expired Products') }}</h4>
|
||||
</div>
|
||||
|
||||
<div class="table-top-form p-16">
|
||||
<form action="{{ route('business.expired-products.index') }}" method="GET" class="filter-form" table="#expired-product-data">
|
||||
|
||||
<div class="table-top-left d-flex gap-3">
|
||||
<div class="gpt-up-down-arrow position-relative d-print-none">
|
||||
<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="table-search position-relative d-print-none">
|
||||
<input class="form-control searchInput" type="text" name="search" placeholder="{{ __('Search...') }}" value="{{ request('search') }}">
|
||||
<span class="position-absolute">
|
||||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M14.582 14.582L18.332 18.332" stroke="#4D4D4D" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M16.668 9.16797C16.668 5.02584 13.3101 1.66797 9.16797 1.66797C5.02584 1.66797 1.66797 5.02584 1.66797 9.16797C1.66797 13.3101 5.02584 16.668 9.16797 16.668C13.3101 16.668 16.668 13.3101 16.668 9.16797Z" stroke="#4D4D4D" stroke-width="1.25" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<div class="table-top-btn-group d-print-none">
|
||||
<ul>
|
||||
<li>
|
||||
<a href="{{ route('business.expired.products.csv') }}">
|
||||
<img src="{{ asset('assets/images/logo/csv.svg') }}" alt="">
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="{{ route('business.expired.products.excel') }}">
|
||||
<img src="{{ asset('assets/images/logo/excel.svg') }}" alt="">
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="blank" href="{{ route('business.expired.product.reports.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>
|
||||
|
||||
<div id="expired-product-data">
|
||||
@include('business::expired-products.datas')
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@push('modal')
|
||||
@include('business::expired-products.view')
|
||||
@endpush
|
||||
|
||||
@@ -0,0 +1,88 @@
|
||||
<div class="modal fade p-0" id="product-view">
|
||||
<div class="modal-dialog modal-dialog-centered modal-md">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h1 class="modal-title fs-5">{{ __('View') }}</h1>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="modal-body order-form-section">
|
||||
<table class="info-table">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>{{ __('Product Image') }}</td>
|
||||
<td>:</td>
|
||||
<td><img class="table-img" src="" alt="" id="product_image"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{ __('Product Name') }}</td>
|
||||
<td>:</td>
|
||||
<td id="product_name"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{ __('Code') }}</td>
|
||||
<td>:</td>
|
||||
<td id="product_code"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{ __('Brand') }}</td>
|
||||
<td>:</td>
|
||||
<td id="product_brand"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{ __('Category') }}</td>
|
||||
<td>:</td>
|
||||
<td id="product_category"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{ __('Unit') }}</td>
|
||||
<td>:</td>
|
||||
<td id="product_unit"></td>
|
||||
</tr>
|
||||
@usercan('products-expired.price')
|
||||
<tr>
|
||||
<td>{{ __('Purchase price') }}</td>
|
||||
<td>:</td>
|
||||
<td id="product_purchase_price"></td>
|
||||
</tr>
|
||||
@endusercan
|
||||
<tr>
|
||||
<td>{{ __('Sale price') }}</td>
|
||||
<td>:</td>
|
||||
<td id="product_sale_price"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{ __('Wholesale Price') }}</td>
|
||||
<td>:</td>
|
||||
<td id="product_wholesale_price"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{ __('Dealer Price') }}</td>
|
||||
<td>:</td>
|
||||
<td id="product_dealer_price"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{ __('Stock') }}</td>
|
||||
<td>:</td>
|
||||
<td id="product_stock"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{ __('Low Stock') }}</td>
|
||||
<td>:</td>
|
||||
<td id="product_low_stock"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{ __('Expire Date') }}</td>
|
||||
<td>:</td>
|
||||
<td id="product_expire_date" class="text-danger"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{ __('Manufacturer') }}</td>
|
||||
<td>:</td>
|
||||
<td id="product_manufacturer"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,40 @@
|
||||
|
||||
<div class="modal fade common-validation-modal" id="income-categories-create-modal">
|
||||
<div class="modal-dialog modal-dialog-centered">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h1 class="modal-title fs-5">{{ __('Create Income Catgeory') }}</h1>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="personal-info">
|
||||
<form action="{{ route('business.income-categories.store') }}" method="post" enctype="multipart/form-data"
|
||||
class="ajaxform_instant_reload">
|
||||
@csrf
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-12 mb-2">
|
||||
<label>{{ __('Catgeory Name') }}</label>
|
||||
<input type="text" name="categoryName" required class="form-control" placeholder="{{ __('Enter catgeory name') }}">
|
||||
</div>
|
||||
|
||||
<div class="col-lg-12 mt-1">
|
||||
<label>{{__('Description')}}</label>
|
||||
<textarea name="categoryDescription" class="form-control" placeholder="{{ __('Enter Description') }}"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-12">
|
||||
<div class="button-group text-center mt-5">
|
||||
<button type="reset" class="theme-btn border-btn m-2">{{ __('Reset') }}</button>
|
||||
@usercan('income-categories.create')
|
||||
<button class="theme-btn m-2 submit-btn">{{ __('Save') }}</button>
|
||||
@endusercan
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,75 @@
|
||||
<div class="responsive-table m-0">
|
||||
<table class="table" id="datatable">
|
||||
<thead>
|
||||
<tr>
|
||||
@usercan('income-categories.delete')
|
||||
<th class="w-60">
|
||||
<div class="d-flex align-items-center gap-3">
|
||||
<input type="checkbox" class="select-all-delete multi-delete">
|
||||
</div>
|
||||
</th>
|
||||
@endusercan
|
||||
<th>{{ __('SL') }}.</th>
|
||||
<th class="text-start">{{ __('Category Name') }}</th>
|
||||
<th class="text-start">{{ __('Description') }}</th>
|
||||
<th>{{ __('Status') }}</th>
|
||||
<th>{{ __('Action') }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach ($income_categories as $income_category)
|
||||
<tr>
|
||||
@usercan('income-categories.delete')
|
||||
<td class="w-60 checkbox">
|
||||
<input type="checkbox" name="ids[]" class="delete-checkbox-item multi-delete"
|
||||
value="{{ $income_category->id }}">
|
||||
</td>
|
||||
@endusercan
|
||||
<td>{{ ($income_categories->currentPage() - 1) * $income_categories->perPage() + $loop->iteration }}
|
||||
</td>
|
||||
<td class="text-start">{{ $income_category->categoryName }}</td>
|
||||
<td class="text-start">{{ $income_category->categoryDescription }}</td>
|
||||
<td>
|
||||
<label class="switch">
|
||||
<input type="checkbox" {{ $income_category->status == 1 ? 'checked' : '' }} class="status"
|
||||
data-url="{{ route('business.income-categories.status', $income_category->id) }}">
|
||||
<span class="slider round"></span>
|
||||
</label>
|
||||
</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>
|
||||
<ul class="dropdown-menu">
|
||||
<li>
|
||||
@usercan('income-categories.update')
|
||||
<a href="#income-categories-edit-modal" data-bs-toggle="modal"
|
||||
class="income-categories-edit-btn"
|
||||
data-url="{{ route('business.income-categories.update', $income_category->id) }}"
|
||||
data-income-categories-name="{{ $income_category->categoryName }}"
|
||||
data-income-categories-description="{{ $income_category->categoryDescription }}"><i
|
||||
class="fal fa-pencil-alt"></i>{{ __('Edit') }}</a>
|
||||
@endusercan
|
||||
</li>
|
||||
<li>
|
||||
@usercan('income-categories.delete')
|
||||
<a href="{{ route('business.income-categories.destroy', $income_category->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>
|
||||
</div>
|
||||
<div class="mt-3">
|
||||
{{ $income_categories->links('vendor.pagination.bootstrap-5') }}
|
||||
</div>
|
||||
@@ -0,0 +1,38 @@
|
||||
<div class="modal fade common-validation-modal" id="income-categories-edit-modal">
|
||||
<div class="modal-dialog modal-dialog-centered">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h1 class="modal-title fs-5">{{ __('Edit Income Category') }}</h1>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="personal-info">
|
||||
<form action="" method="post" enctype="multipart/form-data"
|
||||
class="ajaxform_instant_reload incomeCategoryUpdateForm">
|
||||
@csrf
|
||||
@method('put')
|
||||
<div class="row">
|
||||
<div class="col-lg-12 mb-2">
|
||||
<label>{{ __('Catgeory Name') }}</label>
|
||||
<input type="text" name="categoryName" id="income_categories_view_name" required class="form-control" placeholder="{{ __('Enter catgeory name') }}">
|
||||
</div>
|
||||
|
||||
<div class="col-lg-12 mt-1">
|
||||
<label>{{__('Description')}}</label>
|
||||
<textarea name="categoryDescription" id="income_categories_view_description" class="form-control" placeholder="{{ __('Enter Description') }}"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-12">
|
||||
<div class="button-group text-center mt-5">
|
||||
<a href="{{ route('business.income-categories.index') }}" class="theme-btn border-btn m-2">{{ __('Cancel') }}</a>
|
||||
@usercan('income-categories.update')
|
||||
<button class="theme-btn m-2 submit-btn">{{ __('Save') }}</button>
|
||||
@endusercan
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,69 @@
|
||||
@extends('layouts.business.master')
|
||||
|
||||
@section('title')
|
||||
{{ __('Income Category List') }}
|
||||
@endsection
|
||||
|
||||
@section('main_content')
|
||||
<div class="erp-table-section">
|
||||
<div class="container-fluid">
|
||||
<div class="card">
|
||||
<div class="card-bodys">
|
||||
|
||||
<div class="table-header p-16">
|
||||
<h4>{{ __('Income Category List') }}</h4>
|
||||
@usercan('income-categories.create')
|
||||
<a type="button" href="#income-categories-create-modal" data-bs-toggle="modal"
|
||||
class="add-order-btn rounded-2 {{ Route::is('admin.income-categories.create') ? 'active' : '' }}"
|
||||
class="btn btn-primary"><i class="fas fa-plus-circle me-1"></i>{{ __('Add new') }}</a>
|
||||
@endusercan
|
||||
</div>
|
||||
|
||||
<div class="table-top-form p-16-0">
|
||||
<form action="{{ route('business.income-categories.index') }}" method="GET" class="filter-form" table="#income-categories-data">
|
||||
|
||||
<div class="table-top-left d-flex gap-3 margin-l-16">
|
||||
<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="table-search position-relative">
|
||||
<input type="text" name="search" class="form-control" placeholder="{{ __('Search...') }}" value="{{ request('search') }}">
|
||||
<span class="position-absolute">
|
||||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M14.582 14.582L18.332 18.332" stroke="#4D4D4D" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M16.668 9.16797C16.668 5.02584 13.3101 1.66797 9.16797 1.66797C5.02584 1.66797 1.66797 5.02584 1.66797 9.16797C1.66797 13.3101 5.02584 16.668 9.16797 16.668C13.3101 16.668 16.668 13.3101 16.668 9.16797Z" stroke="#4D4D4D" stroke-width="1.25" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="delete-item delete-show d-none">
|
||||
<div class="delete-item-show">
|
||||
<p class="fw-bold"><span class="selected-count"></span> {{ __('items show') }}</p>
|
||||
<button data-bs-toggle="modal" class="trigger-modal" data-bs-target="#multi-delete-modal" data-url="{{ route('business.income-categories.delete-all') }}">{{ __('Delete') }}</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="income-categories-data">
|
||||
@include('business::income-categories.datas')
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@push('modal')
|
||||
@include('business::component.delete-modal')
|
||||
@include('business::income-categories.create')
|
||||
@include('business::income-categories.edit')
|
||||
@endpush
|
||||
64
Modules/Business/resources/views/incomes/create.blade.php
Normal file
64
Modules/Business/resources/views/incomes/create.blade.php
Normal file
@@ -0,0 +1,64 @@
|
||||
<div class="modal fade common-validation-modal" id="incomes-create-modal">
|
||||
<div class="modal-dialog modal-dialog-centered modal-lg">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h1 class="modal-title fs-5">{{ __('Create Income') }}</h1>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="personal-info">
|
||||
<form action="{{ route('business.incomes.store') }}" method="post" enctype="multipart/form-data"
|
||||
class="ajaxform_instant_reload">
|
||||
@csrf
|
||||
<div class="row">
|
||||
<div class="col-lg-6 mb-2">
|
||||
<label>{{ __('Amount') }}</label>
|
||||
<input type="number" name="amount" required class="form-control receive_amount" placeholder="{{ __('Enter amount') }}">
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<label class="custom-top-label">{{ __('Category') }}</label>
|
||||
<div class="gpt-up-down-arrow position-relative">
|
||||
<select class="form-control form-selected" name="income_category_id" required>
|
||||
<option value="">{{ __('Select A Category') }}</option>
|
||||
@foreach ($income_categories as $income_category)
|
||||
<option value="{{ $income_category->id }}">{{ $income_category->categoryName }}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
<span></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<label>{{ __('Income For') }}</label>
|
||||
<input type="text" name="incomeFor" class="form-control" placeholder="{{ __('Enter income for') }}">
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<label>{{ __('Reference Number') }}</label>
|
||||
<input type="text" name="referenceNo" class="form-control" placeholder="{{ __('Enter reference number') }}">
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<label>{{ __('Income Date') }}</label>
|
||||
<input type="date" name="incomeDate" value="{{ now()->format('Y-m-d') }}" class="form-control">
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<label>{{__('Note')}}</label>
|
||||
<textarea name="note" class="form-control" placeholder="{{ __('Enter note') }}"></textarea>
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<label>{{ __('Payment Type') }}</label>
|
||||
@include('business::component.payment_type', ['context' => 'income', 'payment_types' => $payment_types])
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-12">
|
||||
<div class="button-group text-center mt-5">
|
||||
<button type="reset" class="theme-btn border-btn m-2">{{ __('Reset') }}</button>
|
||||
@usercan('incomes.create')
|
||||
<button class="theme-btn m-2 submit-btn">{{ __('Save') }}</button>
|
||||
@endusercan
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
106
Modules/Business/resources/views/incomes/datas.blade.php
Normal file
106
Modules/Business/resources/views/incomes/datas.blade.php
Normal file
@@ -0,0 +1,106 @@
|
||||
<div class="responsive-table m-0">
|
||||
<table class="table" id="datatable">
|
||||
<thead>
|
||||
<tr>
|
||||
@usercan('incomes.delete')
|
||||
<th class="w-60">
|
||||
<div class="d-flex align-items-center gap-3">
|
||||
<input type="checkbox" class="select-all-delete multi-delete">
|
||||
</div>
|
||||
</th>
|
||||
@endusercan
|
||||
<th>{{ __('SL') }}.</th>
|
||||
@if (auth()->user()->accessToMultiBranch())
|
||||
<th class="text-start">{{ __('Branch') }}</th>
|
||||
@endif
|
||||
<th class="text-start">{{ __('Date') }}</th>
|
||||
<th class="text-start">{{ __('Reference Number') }}</th>
|
||||
<th class="text-start">{{ __('Category') }}</th>
|
||||
<th class="text-start">{{ __('Income For') }}</th>
|
||||
<th class="text-start">{{ __('Amount') }}</th>
|
||||
<th>{{ __('Action') }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach ($incomes as $income)
|
||||
<tr>
|
||||
@usercan('incomes.delete')
|
||||
<td class="w-60 checkbox">
|
||||
<input type="checkbox" name="ids[]" class="delete-checkbox-item multi-delete" value="{{ $income->id }}">
|
||||
</td>
|
||||
@endusercan
|
||||
<td>{{ ($incomes->currentPage() - 1) * $incomes->perPage() + $loop->iteration }}</td>
|
||||
@if (auth()->user()->accessToMultiBranch())
|
||||
<td class="text-start">{{ $income->branch->name ?? '' }}</td>
|
||||
@endif
|
||||
<td class="text-start">{{ formatted_date($income->incomeDate) }}</td>
|
||||
<td class="text-start">{{ $income->referenceNo }}</td>
|
||||
<td class="text-start">{{ $income->category?->categoryName }}</td>
|
||||
<td class="text-start">{{ $income->incomeFor }}</td>
|
||||
<td class="text-start">{{ currency_format($income->amount, currency: business_currency()) }}</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>
|
||||
<ul class="dropdown-menu">
|
||||
<li>
|
||||
@usercan('incomes.update')
|
||||
<a href="#incomes-edit-modal" data-bs-toggle="modal" class="incomes-edit-btn"
|
||||
data-url="{{ route('business.incomes.update', $income->id) }}"
|
||||
data-income-category-id="{{ $income->income_category_id }}"
|
||||
data-income-amount="{{ $income->amount }}"
|
||||
data-income-for="{{ $income->incomeFor }}"
|
||||
data-income-payment-type="{{ $income->payment_type_id != null ? $income->payment_type->name ?? '' : $income->paymentType }}"
|
||||
data-income-reference-no="{{ $income->referenceNo }}"
|
||||
data-income-date-update="{{ $income->incomeDate }}"
|
||||
data-income-note="{{ $income->note }}"
|
||||
data-existing-transactions='@json($income->transactions ?? [])'>
|
||||
<i class="fal fa-pencil-alt"></i>{{ __('Edit') }}
|
||||
</a>
|
||||
@endusercan
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="#"
|
||||
data-url="{{ route('business.view-payment', ['type' => 'income', 'id' => $income->id]) }}"
|
||||
class="view-payment-btn" data-bs-toggle="modal"
|
||||
data-bs-target="#view-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>
|
||||
|
||||
<li>
|
||||
@usercan('incomes.delete')
|
||||
<a href="{{ route('business.incomes.destroy', $income->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>
|
||||
</div>
|
||||
<div class="mt-3">
|
||||
{{ $incomes->links('vendor.pagination.bootstrap-5') }}
|
||||
</div>
|
||||
66
Modules/Business/resources/views/incomes/edit.blade.php
Normal file
66
Modules/Business/resources/views/incomes/edit.blade.php
Normal file
@@ -0,0 +1,66 @@
|
||||
<div class="modal fade common-validation-modal" id="incomes-edit-modal">
|
||||
<div class="modal-dialog modal-dialog-centered modal-lg">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h1 class="modal-title fs-5">{{ __('Edit Income') }}</h1>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="personal-info">
|
||||
<form action="" method="post" enctype="multipart/form-data"
|
||||
class="ajaxform_instant_reload incomeUpdateForm">
|
||||
@csrf
|
||||
@method('put')
|
||||
<div class="row">
|
||||
<div class="col-lg-6 mb-2">
|
||||
<label>{{ __('Amount') }}</label>
|
||||
<input type="number" name="amount" required class="form-control receive_amount" placeholder="{{ __('Enter amount') }}">
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<label class="custom-top-label">{{ __('Category') }}</label>
|
||||
<div class="gpt-up-down-arrow position-relative">
|
||||
<select class="form-control form-selected" id="income_categoryId" name="income_category_id" required>
|
||||
<option value="">{{ __('Select A Category') }}</option>
|
||||
@foreach ($income_categories as $income_category)
|
||||
<option value="{{ $income_category->id }}">{{ $income_category->categoryName }}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
<span></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<label>{{ __('Income For') }}</label>
|
||||
<input type="text" name="incomeFor" id="inc_for" class="form-control" placeholder="{{ __('Enter income for') }}">
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<label>{{ __('Reference Number') }}</label>
|
||||
<input type="text" name="referenceNo" id="incomeReferenceNo" class="form-control" placeholder="{{ __('Enter reference number') }}">
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<label>{{ __('Income Date') }}</label>
|
||||
<input type="date" name="incomeDate" id="inc_date_update" class="form-control">
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<label>{{__('Note')}}</label>
|
||||
<textarea name="note" id="inc_note" class="form-control" placeholder="{{ __('Enter note') }}"></textarea>
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<label>{{ __('Payment Type') }}</label>
|
||||
@include('business::component.payment_type', ['context' => 'income', 'payment_types' => $payment_types])
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-12">
|
||||
<div class="button-group text-center mt-5">
|
||||
<a href="{{ route('business.incomes.index') }}" class="theme-btn border-btn m-2">{{ __('Cancel') }}</a>
|
||||
@usercan('incomes.update')
|
||||
<button class="theme-btn m-2 submit-btn">{{ __('Save') }}</button>
|
||||
@endusercan
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
117
Modules/Business/resources/views/incomes/index.blade.php
Normal file
117
Modules/Business/resources/views/incomes/index.blade.php
Normal file
@@ -0,0 +1,117 @@
|
||||
@extends('layouts.business.master')
|
||||
|
||||
@section('title')
|
||||
{{ __('Income List') }}
|
||||
@endsection
|
||||
|
||||
@section('main_content')
|
||||
<div class="erp-table-section">
|
||||
<div class="container-fluid">
|
||||
<div class="card">
|
||||
<div class="card-bodys">
|
||||
<div class="table-header p-16">
|
||||
<h4>{{ __('Income List') }}</h4>
|
||||
@usercan('incomes.create')
|
||||
<a type="button" href="#incomes-create-modal" data-bs-toggle="modal"
|
||||
class="add-order-btn rounded-2 {{ Route::is('business.incomes.create') ? 'active' : '' }}"
|
||||
class="btn btn-primary"><i class="fas fa-plus-circle me-1"></i>{{ __('Add new') }}</a>
|
||||
@endusercan
|
||||
</div>
|
||||
<div class="table-top-form p-16-0">
|
||||
<form action="{{ route('business.incomes.index') }}" method="GET" class="filter-form" table="#incomes-data">
|
||||
|
||||
<div class="table-top-left d-flex gap-3 margin-lr-16 flex-wrap">
|
||||
<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>
|
||||
@if(auth()->user()->accessToMultiBranch())
|
||||
<div class="table-search position-relative">
|
||||
<div class="gpt-up-down-arrow position-relative">
|
||||
<select name="branch_id" class="form-control">
|
||||
<option value="">{{ __('Select Branch') }}</option>
|
||||
@foreach ($branches as $branch)
|
||||
<option value="{{ $branch->id }}" @selected(request('branch_id') == $branch->id) >{{ $branch->name }}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
<span></span>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
<div class="table-search position-relative">
|
||||
<input type="text" name="search" class="form-control" placeholder="{{ __('Search...') }}" value="{{ request('search') }}">
|
||||
<span class="position-absolute">
|
||||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M14.582 14.582L18.332 18.332" stroke="#4D4D4D" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M16.668 9.16797C16.668 5.02584 13.3101 1.66797 9.16797 1.66797C5.02584 1.66797 1.66797 5.02584 1.66797 9.16797C1.66797 13.3101 5.02584 16.668 9.16797 16.668C13.3101 16.668 16.668 13.3101 16.668 9.16797Z" stroke="#4D4D4D" stroke-width="1.25" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div class="custom-from-to align-items-center date-filters d-none">
|
||||
<label class="header-label">{{ __('From Date') }}</label>
|
||||
<input type="date" name="from_date" value="{{ request('from_date') ?? now()->format('Y-m-d') }}" class="form-control">
|
||||
</div>
|
||||
|
||||
<div class="custom-from-to align-items-center date-filters d-none">
|
||||
<label class="header-label">{{ __('To Date') }}</label>
|
||||
<input type="date" name="to_date" value="{{ request('to_date') ?? now()->format('Y-m-d') }}" class="form-control">
|
||||
</div>
|
||||
|
||||
<div class="gpt-up-down-arrow position-relative d-print-none custom-date-filter">
|
||||
<select name="custom_days" class="form-control custom-days">
|
||||
<option value="today" {{ request()->get('custom_days') == 'today' ? 'selected' : '' }}>{{ __('Today') }}</option>
|
||||
<option value="yesterday" {{ request()->get('custom_days') == 'yesterday' ? 'selected' : '' }}>{{ __('Yesterday') }}</option>
|
||||
<option value="last_seven_days" {{ request()->get('custom_days') == 'last_seven_days' ? 'selected' : '' }}>{{ __('Last 7 Days') }}</option>
|
||||
<option value="last_thirty_days" {{ request()->get('custom_days') == 'last_thirty_days' ? 'selected' : '' }}>{{ __('Last 30 Days') }}</option>
|
||||
<option value="current_month" {{ request()->get('custom_days') == 'current_month' ? 'selected' : '' }}>{{ __('Current Month') }}</option>
|
||||
<option value="last_month" {{ request()->get('custom_days') == 'last_month' ? 'selected' : '' }}>{{ __('Last Month') }}</option>
|
||||
<option value="current_year" {{ request()->get('custom_days') == 'current_year' ? 'selected' : '' }}>{{ __('Current Year') }}</option>
|
||||
<option value="custom_date" {{ request()->get('custom_days') == 'custom_date' ? 'selected' : '' }}>{{ __('Custom Date') }}</option>
|
||||
</select>
|
||||
<span></span>
|
||||
<div class="calendar-icon">
|
||||
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M12.6667 2.67188H3.33333C2.59695 2.67188 2 3.26883 2 4.00521V13.3385C2 14.0749 2.59695 14.6719 3.33333 14.6719H12.6667C13.403 14.6719 14 14.0749 14 13.3385V4.00521C14 3.26883 13.403 2.67188 12.6667 2.67188Z" stroke="#4B5563" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M10.6641 1.32812V3.99479" stroke="#4B5563" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M5.33594 1.32812V3.99479" stroke="#4B5563" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M2 6.67188H14" stroke="#4B5563" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<div class="delete-item delete-show d-none">
|
||||
<div class="delete-item-show">
|
||||
<p class="fw-bold"><span class="selected-count"></span> {{ __('items show') }}</p>
|
||||
<button data-bs-toggle="modal" class="trigger-modal" data-bs-target="#multi-delete-modal" data-url="{{ route('business.incomes.delete-all') }}">{{ __('Delete') }}</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="incomes-data">
|
||||
@include('business::incomes.datas')
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<input type="hidden" id="payment-delete-route" data-url="{{ route('business.delete.payments', ['type' => ':type', 'id' => ':id']) }}">
|
||||
|
||||
@endsection
|
||||
|
||||
@push('modal')
|
||||
@include('business::component.delete-modal')
|
||||
@include('business::incomes.create')
|
||||
@include('business::incomes.edit')
|
||||
@include('business::component.view-payment-modal')
|
||||
@include('business::component.edit-payment')
|
||||
@endpush
|
||||
@@ -0,0 +1,203 @@
|
||||
@extends('layouts.business.master')
|
||||
|
||||
@section('title')
|
||||
{{ request('type') !== 'Supplier' ? __('Create Customer') : __('Create Supplier') }}
|
||||
@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
|
||||
|
||||
@section('main_content')
|
||||
<div class="erp-table-section">
|
||||
<div class="container-fluid">
|
||||
<div class="card border-0">
|
||||
<div class="card-bodys ">
|
||||
<div class="table-header p-16">
|
||||
<h4>{{ __('Add new ') . ucfirst(request('type')) }}</h4>
|
||||
@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>{{ ucfirst(request('type')) . __(' List') }}
|
||||
</a>
|
||||
@endusercan
|
||||
</div>
|
||||
|
||||
<div class="order-form-section p-16">
|
||||
<form action="{{ route('business.parties.store') }}" method="POST" class="ajaxform_instant_reload">
|
||||
@csrf
|
||||
<div class="add-suplier-modal-wrapper d-block">
|
||||
<div class="row">
|
||||
<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') }}">
|
||||
</div>
|
||||
<div class="col-lg-6 mb-2">
|
||||
<label>{{ __('Phone Number') }}</label>
|
||||
<input type="number" name="phone" class="form-control" placeholder="{{ __('Enter Phone Number') }}">
|
||||
</div>
|
||||
@if (request('type') !== 'Supplier')
|
||||
<div class="col-lg-6 mb-2">
|
||||
<label>{{ __('Party Type') }}</label>
|
||||
<div class="gpt-up-down-arrow position-relative">
|
||||
<select name="type" class="form-control table-select w-100" required>
|
||||
<option value=""> {{ __('Select one') }}</option>
|
||||
<option value="Retailer">{{ __('Customer') }}</option>
|
||||
<option value="Dealer">{{ __('Dealer') }}</option>
|
||||
<option value="Wholesaler">{{ __('Wholesaler') }}</option>
|
||||
</select>
|
||||
<span></span>
|
||||
</div>
|
||||
</div>
|
||||
@else
|
||||
<div>
|
||||
<input type="hidden" name="type" value="Supplier">
|
||||
</div>
|
||||
@endif
|
||||
<div class="col-lg-6 mb-2">
|
||||
<div class="form-group">
|
||||
<label>{{ __('Balance') }}</label>
|
||||
<div class="input-select-wrapper">
|
||||
<input type="number" step="any" name="opening_balance"
|
||||
placeholder="Ex: 500">
|
||||
<select name="opening_balance_type">
|
||||
<option value="due">{{__('Due')}}</option>
|
||||
<option value="advance">{{__('Advance')}}</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-6 mb-2">
|
||||
<label>{{ __('Email') }}</label>
|
||||
<input type="email" name="email" class="form-control"
|
||||
placeholder="{{ __('Enter Email') }}">
|
||||
</div>
|
||||
@if (request('type') !== 'Supplier')
|
||||
<div class="col-lg-6 mb-2">
|
||||
<label>{{ __('Party Credit Limit') }}</label>
|
||||
<input type="number" name="credit_limit" step="any" class="form-control" placeholder="{{ __('Ex: 800') }}">
|
||||
</div>
|
||||
@endif
|
||||
<div class="col-lg-6 mb-2">
|
||||
<label>{{ __('Address') }}</label>
|
||||
<input type="text" name="address" class="form-control" placeholder="{{ __('Enter Address') }}">
|
||||
</div>
|
||||
<div class="accordion" id="customAccordion">
|
||||
<div class="accordion-item border-0">
|
||||
<h2 class="accordion-header">
|
||||
<button class="accordion-button address-accordion collapsed text-primary fw-medium bg-transparent shadow-none" type="button" data-bs-toggle="collapse" data-bs-target="#collapseOne" aria-expanded="false" aria-controls="collapseOne">
|
||||
<span class="icon me-2">+</span> {{ __('Billing Address') }}
|
||||
</button>
|
||||
</h2>
|
||||
<div id="collapseOne" class="accordion-collapse collapse show"
|
||||
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>{{ __('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>
|
||||
</div>
|
||||
<div class="accordion-item border-0">
|
||||
<h2 class="accordion-header">
|
||||
<button class="accordion-button address-accordion fw-medium text-dark bg-transparent shadow-none" type="button" data-bs-toggle="collapse" data-bs-target="#collapseTwo" aria-expanded="true" aria-controls="collapseTwo">
|
||||
<span class="icon me-2">−</span> {{ __('Shipping Address') }}
|
||||
</button>
|
||||
</h2>
|
||||
<div id="collapseTwo" class="accordion-collapse collapse "
|
||||
data-bs-parent="#customAccordion">
|
||||
<div class="accordion-body fst-italic text-secondary ">
|
||||
<div class="row">
|
||||
<div class="col-lg-6 mb-2">
|
||||
<label>{{ __('Address line 1') }}</label>
|
||||
<input type="text" name="shipping_address[address]" class="form-control" placeholder="{{ __('Enter address') }}">
|
||||
</div>
|
||||
<div class="col-lg-6 mb-2">
|
||||
<label>{{ __('City') }}</label>
|
||||
<input type="text" name="shipping_address[city]" class="form-control" placeholder="{{ __('Enter city') }}">
|
||||
</div>
|
||||
<div class="col-lg-6 mb-2">
|
||||
<label>{{ __('State') }}</label>
|
||||
<input type="text" name="shipping_address[state]" class="form-control" placeholder="{{ __('Enter state') }}">
|
||||
</div>
|
||||
<div class="col-lg-6 mb-2">
|
||||
<label>{{ __('Zip Code') }}</label>
|
||||
<input type="text" name="shipping_address[zip_code]" class="form-control" placeholder="{{ __('Enter zip code') }}">
|
||||
</div>
|
||||
<div class="col-lg-6 mb-2">
|
||||
<label>{{ __('Country') }}</label>
|
||||
<select name="shipping_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>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-3">
|
||||
<h6 class="img-title">{{__('Image') }} <span>{{__('(PNG & JPG)') }}</span></h6>
|
||||
<div id="uploadBox">
|
||||
<div id="previewArea">
|
||||
<div id="iconArea">
|
||||
<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>
|
||||
</div>
|
||||
</div>
|
||||
<input type="file" name="image" id="fileInput" accept="image/*">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-12">
|
||||
<div class="button-group text-center mt-5">
|
||||
<button type="reset" class="theme-btn border-btn m-2">{{ __('Reset') }}</button>
|
||||
@usercan('parties.create')
|
||||
<button class="theme-btn m-2 submit-btn">{{ __('Save') }}</button>
|
||||
@endusercan
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
@@ -0,0 +1,119 @@
|
||||
<div class="responsive-table mt-2">
|
||||
<table class="table" id="datatable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="w-60">
|
||||
<div class="d-flex align-items-center gap-3">
|
||||
<input type="checkbox" class="select-all-delete multi-delete">
|
||||
</div>
|
||||
</th>
|
||||
<th>{{__('SL')}}</th>
|
||||
<th>{{__('Flag')}}</th>
|
||||
<th>{{__('Name')}}</th>
|
||||
<th>{{__('Locale')}}</th>
|
||||
<th>{{__('Is Active')}}</th>
|
||||
<th>{{__('Is Default')}}</th>
|
||||
<th>{{__('Action')}}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
|
||||
<!-- Row 1 -->
|
||||
<tr>
|
||||
<td class="w-60 checkbox">
|
||||
<input type="checkbox" class="delete-checkbox-item multi-delete">
|
||||
</td>
|
||||
<td>1</td>
|
||||
<td><img src="assets/images/flags/us.png" class="table-product-img" alt=""></td>
|
||||
<td>{{__('English') }}</td>
|
||||
<td>{{__('en') }}</td>
|
||||
<td class="w-60 checkbox">
|
||||
<input type="checkbox" class="multi-delete">
|
||||
</td>
|
||||
<td class="w-60 checkbox">
|
||||
<input type="checkbox" class="multi-delete">
|
||||
</td>
|
||||
<td>
|
||||
<div class="dropdown table-action">
|
||||
<button type="button" data-bs-toggle="dropdown">
|
||||
<i class="far fa-ellipsis-v"></i>
|
||||
</button>
|
||||
<ul class="dropdown-menu">
|
||||
{{-- <li><a href="#"><i class="fal fa-eye"></i> View</a></li> --}}
|
||||
<li><a href="#"><i class="fal fa-edit"></i> {{__('Edit')}}</a></li>
|
||||
<li><a href="#" class="confirm-action" data-method="DELETE">
|
||||
<i class="fal fa-trash-alt"></i> {{__('Delete') }}</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<!-- Row 2 -->
|
||||
<tr>
|
||||
<td class="w-60 checkbox">
|
||||
<input type="checkbox" class="delete-checkbox-item multi-delete">
|
||||
</td>
|
||||
<td>{{__('2') }}</td>
|
||||
<td><img src="assets/images/flags/bd.png" class="table-product-img" alt=""></td>
|
||||
<td>{{__('Bengali') }}</td>
|
||||
<td>{{__('bn') }}</td>
|
||||
<td class="w-60 checkbox">
|
||||
<input type="checkbox" class="multi-delete">
|
||||
</td>
|
||||
<td class="w-60 checkbox">
|
||||
<input type="checkbox" class=" multi-delete">
|
||||
</td>
|
||||
<td>
|
||||
<div class="dropdown table-action">
|
||||
<button type="button" data-bs-toggle="dropdown">
|
||||
<i class="far fa-ellipsis-v"></i>
|
||||
</button>
|
||||
<ul class="dropdown-menu">
|
||||
{{-- <li><a href="#"><i class="fal fa-eye"></i> View</a></li> --}}
|
||||
<li><a href="#"><i class="fal fa-edit"></i> {{__('Edit')}}</a></li>
|
||||
<li><a href="#" class="confirm-action" data-method="DELETE">
|
||||
<i class="fal fa-trash-alt"></i> {{__('Delete')}}</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<!-- Row 3 -->
|
||||
<tr>
|
||||
<td class="w-60 checkbox">
|
||||
<input type="checkbox" class="delete-checkbox-item multi-delete">
|
||||
</td>
|
||||
<td>{{__('3') }}</td>
|
||||
<td><img src="assets/images/flags/fr.png" class="table-product-img" alt=""></td>
|
||||
<td>{{__('French')}}</td>
|
||||
<td>{{__('fr') }}</td>
|
||||
<td class="w-60 checkbox">
|
||||
<input type="checkbox" class="multi-delete">
|
||||
</td>
|
||||
<td class="w-60 checkbox">
|
||||
<input type="checkbox" class="multi-delete">
|
||||
</td>
|
||||
<td>
|
||||
<div class="dropdown table-action">
|
||||
<button type="button" data-bs-toggle="dropdown">
|
||||
<i class="far fa-ellipsis-v"></i>
|
||||
</button>
|
||||
<ul class="dropdown-menu">
|
||||
{{-- <li><a href="#"><i class="fal fa-eye"></i> View</a></li> --}}
|
||||
<li><a href="#"><i class="fal fa-edit"></i> {{__('Edit') }}</a></li>
|
||||
<li><a href="#" class="confirm-action" data-method="DELETE">
|
||||
<i class="fal fa-trash-alt"></i> {{__('Delete') }}</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
{{-- <div class="mt-3">
|
||||
{{ $parties->links('vendor.pagination.bootstrap-5') }}
|
||||
</div> --}}
|
||||
@@ -0,0 +1,282 @@
|
||||
@extends('layouts.business.master')
|
||||
|
||||
@section('title')
|
||||
{{ request('type') !== 'Supplier' ? __('Edit Customer') : __('Edit Supplier') }}
|
||||
@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
|
||||
|
||||
@section('main_content')
|
||||
<div class="erp-table-section">
|
||||
<div class="container-fluid">
|
||||
<div class="card border-0">
|
||||
<div class="card-bodys ">
|
||||
<div class="table-header p-16">
|
||||
<h4>{{ __('Edit ') . ucfirst(request('type')) }}</h4>
|
||||
@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>{{ ucfirst(request('type')) . __(' List') }}
|
||||
</a>
|
||||
@endusercan
|
||||
</div>
|
||||
<div class="order-form-section p-16">
|
||||
<form action="{{ route('business.parties.update', $party->id) }}" method="POST"
|
||||
class="ajaxform_instant_reload">
|
||||
@csrf
|
||||
@method('put')
|
||||
<div class="add-suplier-modal-wrapper d-block">
|
||||
<div class="row">
|
||||
<div class="row col-lg-9">
|
||||
<div class="col-lg-6 mb-2">
|
||||
<label>{{ __($type . ' Name') }}</label>
|
||||
<input type="text" value="{{ $party->name }}" name="name" required class="form-control" placeholder="{{ __('Enter '.$type.' Name') }}">
|
||||
</div>
|
||||
|
||||
<div class="col-lg-6 mb-2">
|
||||
<label>{{ __('Phone') }}</label>
|
||||
<input type="number" value="{{ $party->phone }}" name="phone"
|
||||
class="form-control" placeholder="{{ __('Enter phone number') }}">
|
||||
</div>
|
||||
|
||||
@if (request('type') !== 'Supplier')
|
||||
<div class="col-lg-6 mb-2">
|
||||
<label>{{ __('Party Type') }}</label>
|
||||
<div class="gpt-up-down-arrow position-relative">
|
||||
<select name="type" class="form-control table-select w-100" required>
|
||||
<option value=""> {{ __('Select one') }}</option>
|
||||
<option @selected($party->type == 'Retailer') value="Retailer">
|
||||
{{ __('Customer') }}</option>
|
||||
<option @selected($party->type == 'Dealer') value="Dealer">
|
||||
{{ __('Dealer') }}
|
||||
</option>
|
||||
<option @selected($party->type == 'Wholesaler') value="Wholesaler">
|
||||
{{ __('Wholesaler') }}</option>
|
||||
</select>
|
||||
<span></span>
|
||||
</div>
|
||||
</div>
|
||||
@else
|
||||
<div>
|
||||
<input type="hidden" name="type" value="Supplier">
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<div class="col-lg-6 mb-2">
|
||||
<div class="form-group">
|
||||
<label>{{ __('Balance') }}</label>
|
||||
<div class="input-select-wrapper">
|
||||
<input type="number" step="any" name="opening_balance" value="{{ $party->opening_balance }}" placeholder="Ex: 500">
|
||||
<select name="opening_balance_type">
|
||||
<option value="due" {{ $party->opening_balance_type == 'due' ? 'selected' : '' }}>Due</option>
|
||||
<option value="advance" {{ $party->opening_balance_type == 'advance' ? 'selected' : '' }}>Advance</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-6 mb-2">
|
||||
<label>{{ __('Email') }}</label>
|
||||
<input type="email" value="{{ $party->email }}" name="email"
|
||||
class="form-control" placeholder="{{ __('Enter Email') }}">
|
||||
</div>
|
||||
|
||||
@if (request('type') !== 'Supplier')
|
||||
<div class="col-lg-6 mb-2">
|
||||
<label>{{ __('Party Credit Limit') }}</label>
|
||||
<input type="number" name="credit_limit" value="{{ $party->credit_limit }}"
|
||||
step="any" class="form-control" placeholder="{{ __('Ex: 800') }}">
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<div class="col-lg-6 mb-2">
|
||||
<label>{{ __('Address') }}</label>
|
||||
<input type="text" value="{{ $party->address }}" name="address"
|
||||
class="form-control" placeholder="{{ __('Enter Address') }}">
|
||||
</div>
|
||||
|
||||
<div class="accordion" id="customAccordion">
|
||||
<div class="accordion-item border-0">
|
||||
<h2 class="accordion-header">
|
||||
<button
|
||||
class="accordion-button address-accordion collapsed fw-medium text-primary bg-transparent shadow-none"
|
||||
type="button" data-bs-toggle="collapse"
|
||||
data-bs-target="#collapseOne" aria-expanded="false"
|
||||
aria-controls="collapseOne">
|
||||
<span class="icon me-2">+</span> {{ __('Billing Address') }}
|
||||
</button>
|
||||
</h2>
|
||||
<div id="collapseOne" class="accordion-collapse collapse show"
|
||||
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>{{ __('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">
|
||||
<label>{{ __('City') }}</label>
|
||||
<input type="text" name="billing_address[city]"
|
||||
value="{{ $party->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]"
|
||||
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]"
|
||||
value="{{ $party->billing_address['zip_code'] ?? '' }}"
|
||||
class="form-control"
|
||||
placeholder="{{ __('Enter zip code') }}">
|
||||
</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>
|
||||
</div>
|
||||
|
||||
<!-- Accordion #2 -->
|
||||
<div class="accordion-item border-0">
|
||||
<h2 class="accordion-header">
|
||||
<button
|
||||
class="accordion-button address-accordion fw-medium text-dark bg-transparent shadow-none"
|
||||
type="button" data-bs-toggle="collapse"
|
||||
data-bs-target="#collapseTwo" aria-expanded="true"
|
||||
aria-controls="collapseTwo">
|
||||
<span class="icon me-2">−</span> {{ __('Shipping Address') }}
|
||||
</button>
|
||||
</h2>
|
||||
<div id="collapseTwo" class="accordion-collapse collapse "
|
||||
data-bs-parent="#customAccordion">
|
||||
<div class="accordion-body fst-italic text-secondary ">
|
||||
<div class="row">
|
||||
<div class="col-lg-6 mb-2">
|
||||
<label>{{ __('Address') }}</label>
|
||||
<input type="text" name="shipping_address[address]"
|
||||
value="{{ $party->billing_address['address'] ?? '' }}"
|
||||
class="form-control"
|
||||
placeholder="{{ __('Enter address') }}">
|
||||
</div>
|
||||
|
||||
<div class="col-lg-6 mb-2">
|
||||
<label>{{ __('City') }}</label>
|
||||
<input type="text" name="shipping_address[city]"
|
||||
value="{{ $party->billing_address['city'] ?? '' }}"
|
||||
class="form-control"
|
||||
placeholder="{{ __('Enter city') }}">
|
||||
</div>
|
||||
|
||||
<div class="col-lg-6 mb-2">
|
||||
<label>{{ __('State') }}</label>
|
||||
<input type="text" name="shipping_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="shipping_address[zip_code]"
|
||||
value="{{ $party->billing_address['zip_code'] ?? '' }}"
|
||||
class="form-control"
|
||||
placeholder="{{ __('Enter zip code') }}">
|
||||
</div>
|
||||
|
||||
@php
|
||||
$shipping = is_array($party->shipping_address) ? $party->shipping_address : json_decode($party->shipping_address, true) ?? [];
|
||||
@endphp
|
||||
|
||||
<div class="col-lg-6 mb-2">
|
||||
<label>{{ __('Country') }}</label>
|
||||
<select name="shipping_address[country]"
|
||||
class="form-control">
|
||||
<option value="">{{ __('Select a country') }}
|
||||
</option>
|
||||
@foreach ($countries as $country)
|
||||
<option value="{{ $country['name'] }}"
|
||||
@selected(($shipping['country'] ?? '') == $country['name'])>
|
||||
{{ __($country['name']) }}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-3">
|
||||
<h6 class="img-title">{{__('Image') }} <span>{{__('(PNG & JPG)') }}</span></h6>
|
||||
<div id="uploadBox">
|
||||
<div id="previewArea">
|
||||
<div id="iconArea">
|
||||
<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>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<input type="file" name="image" id="fileInput" accept="image/*">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-12">
|
||||
<div class="button-group text-center mt-5">
|
||||
<a href="{{ route('business.parties.index') }}"
|
||||
class="theme-btn border-btn m-2">{{ __('Cancel') }}</a>
|
||||
@usercan('parties.update')
|
||||
<button class="theme-btn m-2 submit-btn">{{ __('Save') }}</button>
|
||||
@endusercan
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
@@ -0,0 +1,68 @@
|
||||
@extends('layouts.business.master')
|
||||
|
||||
@section('title')
|
||||
{{ __('Language Settings') }}
|
||||
@endsection
|
||||
|
||||
@section('main_content')
|
||||
<div class="erp-table-section">
|
||||
<div class="container-fluid">
|
||||
<div class="card ">
|
||||
<div class="card-bodys order-form-section">
|
||||
<div class="table-header p-16">
|
||||
<h4>{{ __('Language Settings') }}</h4>
|
||||
</div>
|
||||
|
||||
<div class="language-settings-container m-3">
|
||||
<form action="#" method="GET" class="filter-form m-3 mt-1" table="#parties-data">
|
||||
<div class="row">
|
||||
<div class="col-lg-4 ">
|
||||
<label class="custom-top-label">{{__('Name')}}</label>
|
||||
<input type="text" name="name" placeholder="Enter Name" required="" class="form-control w-100">
|
||||
</div>
|
||||
|
||||
<div class="col-lg-4">
|
||||
<label class="custom-top-label">{{__('Locale')}}</label>
|
||||
<input type="text" name="local" placeholder="Enter Locale" required="" class="form-control w-100">
|
||||
</div>
|
||||
|
||||
<div class="col-lg-4">
|
||||
<label class="custom-top-label">{{__('Flag')}}</label>
|
||||
<input type="file" name="file" required="" class="form-control">
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="d-flex align-items-center justify-content-end mt-4 language-button-container gap-3">
|
||||
<a class="save-publish-btn" href="http://127.0.0.1:8000/business/bulk-uploads">
|
||||
{{__('Reset')}}
|
||||
</a>
|
||||
<a type="button" href="#"
|
||||
class="add-order-btn rounded-2">
|
||||
<i class="fas fa-plus-circle me-1"></i>{{ __('Add New Language') }}
|
||||
</a>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="delete-item delete-show d-none">
|
||||
<div class="delete-item-show">
|
||||
<p class="fw-bold"><span class="selected-count"></span> {{ __('items show') }}</p>
|
||||
<button data-bs-toggle="modal" class="trigger-modal" data-bs-target="#multi-delete-modal" data-url="{{ route('business.parties.delete-all') }}">{{ __('Delete') }}</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="parties-data">
|
||||
@include('business::language-settings.datas')
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@push('modal')
|
||||
@include('business::component.delete-modal')
|
||||
@endpush
|
||||
|
||||
@@ -0,0 +1,62 @@
|
||||
@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>
|
||||
|
||||
{{-- 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>
|
||||
|
||||
<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>
|
||||
@@ -0,0 +1,76 @@
|
||||
<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 d-print-none">{{ __('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
|
||||
|
||||
@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 d-print-none">
|
||||
{{ $incomeSaleRow && isset($incomeSaleRow->total_sales) ? currency_format($incomeSaleRow->total_sales, 'icon', 2, business_currency()) : '' }}
|
||||
</td>
|
||||
<td class="text-end loss-profit-tbody d-print-none">
|
||||
{{ $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
|
||||
|
||||
{{-- Summary Rows --}}
|
||||
<tr class="fw-bold d-print-none">
|
||||
<td class="text-start bottom-profit-expense" colspan="2">{{ __('Gross Profit') }}</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" colspan="2">{{ __('Total Expenses') }}</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>
|
||||
@@ -0,0 +1,131 @@
|
||||
@extends('layouts.business.master')
|
||||
|
||||
@section('title')
|
||||
{{ __('Profit & Loss') }}
|
||||
@endsection
|
||||
|
||||
@section('main_content')
|
||||
<div class="erp-table-section">
|
||||
<div class="container-fluid">
|
||||
<div class="card">
|
||||
<div class="card-bodys">
|
||||
<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($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($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($cardNetProfit, currency: business_currency()) }}</p>
|
||||
<p class="stat-title">{{ __('Net Profit') }}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="table-header p-16 d-print-none">
|
||||
<h4>{{ __('Profit & Loss') }}</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 mb-2">{{ __('Loss & Profit List') }}</h4>
|
||||
</div>
|
||||
{{-- search bar --}}
|
||||
<div class="loss-profit-container d-print-none">
|
||||
<div class="">
|
||||
<div class="loss-profit-form-container d-print-none table-top-form">
|
||||
<form action="{{ route('business.loss-profit-history.index') }}" method="GET" class="ajax-filter-form" table="#loss-profit-history-data">
|
||||
|
||||
<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="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">
|
||||
</div>
|
||||
<div class="input-wrapper align-items-center date-filters d-none">
|
||||
<label class="header-label">{{ __('To Date') }}</label>
|
||||
<input type="date" name="to_date" value="{{ now()->format('Y-m-d') }}" class="form-control filter-field filter-to-date">
|
||||
</div>
|
||||
<div class="gpt-up-down-arrow position-relative d-print-none custom-date-filter">
|
||||
<select name="custom_days" class="form-control custom-days">
|
||||
<option value="today">{{__('Today')}}</option>
|
||||
<option value="yesterday">{{__('Yesterday')}}</option>
|
||||
<option value="last_seven_days">{{__('Last 7 Days')}}</option>
|
||||
<option value="last_thirty_days">{{__('Last 30 Days')}}</option>
|
||||
<option value="current_month">{{__('Current Month')}}</option>
|
||||
<option value="last_month">{{__('Last Month')}}</option>
|
||||
<option value="current_year">{{__('Current Year')}}</option>
|
||||
<option value="custom_date">{{__('Custom Date')}}</option>
|
||||
</select>
|
||||
<span></span>
|
||||
<div class="calendar-icon">
|
||||
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M12.6667 2.67188H3.33333C2.59695 2.67188 2 3.26883 2 4.00521V13.3385C2 14.0749 2.59695 14.6719 3.33333 14.6719H12.6667C13.403 14.6719 14 14.0749 14 13.3385V4.00521C14 3.26883 13.403 2.67188 12.6667 2.67188Z" stroke="#4B5563" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M10.6641 1.32812V3.99479" stroke="#4B5563" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M5.33594 1.32812V3.99479" stroke="#4B5563" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M2 6.67188H14" stroke="#4B5563" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<div class="table-top-btn-group d-print-none p-2">
|
||||
<ul>
|
||||
<li>
|
||||
<a href="{{ route('business.loss-profit-history.csv') }}">
|
||||
<img src="{{ asset('assets/images/logo/csv.svg') }}" alt="">
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="{{ route('business.loss-profit-history.excel') }}">
|
||||
<img src="{{ asset('assets/images/logo/excel.svg') }}" alt="">
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="blank" href="{{ route('business.loss-profit-history.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>
|
||||
</div>
|
||||
<div class="responsive-table m-0">
|
||||
<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>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@@ -0,0 +1,87 @@
|
||||
@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;">{{ __('Loss Profit History 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;">
|
||||
<thead>
|
||||
<tr style="background-color: #C52127; color: white;">
|
||||
<th style="font-size:12px; border:1px solid gainsboro; color: white" class="text-start">{{ __('Income Types') }}</th>
|
||||
<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">{{ __('Sale') }}</th>
|
||||
<th style="font-size:12px; border:1px solid gainsboro; color: white" class="text-start">{{ __('Income') }}</th>
|
||||
<th style="font-size:12px; border:1px solid gainsboro; color: white" class="text-start">{{ __('Expenses Types') }}</th>
|
||||
<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">{{ __('Expense') }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@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 style="border:1px solid gainsboro; text-align:center;">
|
||||
{{ $incomeSaleRow ? $incomeSaleRow->type : '' }}
|
||||
</td>
|
||||
<td style="border:1px solid gainsboro; text-align:center;">
|
||||
{{ $incomeSaleRow ? formatted_date($incomeSaleRow->date) : '' }}
|
||||
</td>
|
||||
<td style="border:1px solid gainsboro; text-align:center;">
|
||||
{{ $incomeSaleRow && isset($incomeSaleRow->total_sales) ? currency_format($incomeSaleRow->total_sales, 'icon', 2, business_currency()) : '' }}
|
||||
</td>
|
||||
<td style="border:1px solid gainsboro; text-align:center;">
|
||||
{{ $incomeSaleRow && isset($incomeSaleRow->total_incomes) ? currency_format($incomeSaleRow->total_incomes, 'icon', 2, business_currency()) : '' }}
|
||||
</td>
|
||||
|
||||
{{-- Expense Column --}}
|
||||
<td style="border:1px solid gainsboro; text-align:center;">
|
||||
{{ $expenseRow ? $expenseRow->type : '' }}
|
||||
</td>
|
||||
<td style="border:1px solid gainsboro; text-align:center;">
|
||||
{{ $expenseRow ? formatted_date($expenseRow->date) : '' }}
|
||||
</td>
|
||||
<td style="border:1px solid gainsboro; text-align:center;">
|
||||
{{ $expenseRow ? currency_format($expenseRow->total_expenses ?? 0, 'icon', 2, business_currency()) : '' }}
|
||||
</td>
|
||||
</tr>
|
||||
@endfor
|
||||
|
||||
{{-- Summary Rows --}}
|
||||
<tr style="background-color:#C52127; color:#FFFFFF; font-weight:bold;">
|
||||
<td style="border:1px solid gainsboro; text-align:center; color: white; font-weight: 600;" colspan="2">{{ __('Gross Profit') }}</td>
|
||||
<td style="border:1px solid gainsboro; text-align:center; color: white; font-weight: 600;">
|
||||
{{ currency_format($grossSaleProfit, 'icon', 2, business_currency()) }}
|
||||
</td>
|
||||
<td style="border:1px solid gainsboro; text-align:center; color: white; font-weight: 600;">
|
||||
{{ currency_format($grossIncomeProfit, 'icon', 2, business_currency()) }}
|
||||
</td>
|
||||
<td style="border:1px solid gainsboro; text-align:center; color: white; font-weight: 600;" colspan="2">{{ __('Total Expenses') }}</td>
|
||||
<td style="border:1px solid gainsboro; text-align:center; color: white; font-weight: 600;">
|
||||
{{ currency_format($totalExpenses, 'icon', 2, business_currency()) }}
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr style="background-color:#C52127; color:#FFFFFF; font-weight:bold;">
|
||||
<td style="border:1px solid gainsboro; text-align:center; color: white; font-weight: 600;" 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>
|
||||
@endsection
|
||||
393
Modules/Business/resources/views/manage-settings/index.blade.php
Normal file
393
Modules/Business/resources/views/manage-settings/index.blade.php
Normal file
@@ -0,0 +1,393 @@
|
||||
@extends('layouts.business.master')
|
||||
|
||||
@section('title')
|
||||
{{ __('Settings') }}
|
||||
@endsection
|
||||
@php
|
||||
$modules = optional($product_setting?->modules) ?? [];
|
||||
@endphp
|
||||
|
||||
@section('main_content')
|
||||
<div class="erp-table-section">
|
||||
<div class="container-fluid">
|
||||
<div class="card shadow-sm">
|
||||
<div class="card-bodys">
|
||||
<div class="table-header p-16">
|
||||
<h4>{{ __('Settings') }}</h4>
|
||||
</div>
|
||||
|
||||
<ul class="nav nav-tabs " id="settingsTab" role="tablist">
|
||||
<li class="nav-item settings-item" role="presentation">
|
||||
<button class="nav-link settings-link active" id="all-tab" data-bs-toggle="tab"
|
||||
data-bs-target="#all" type="button" role="tab">
|
||||
{{__('All Settings')}}
|
||||
</button>
|
||||
</li>
|
||||
|
||||
<li class="nav-item settings-item" role="presentation">
|
||||
<button class="nav-link settings-link" id="general-tab" data-bs-toggle="tab"
|
||||
data-bs-target="#general" type="button" role="tab">
|
||||
{{__('General')}}
|
||||
</button>
|
||||
</li>
|
||||
|
||||
<li class="nav-item settings-item" role="presentation">
|
||||
<button class="nav-link settings-link" id="product-tab" data-bs-toggle="tab"
|
||||
data-bs-target="#product" type="button" role="tab">
|
||||
{{__('Product')}}
|
||||
</button>
|
||||
</li>
|
||||
|
||||
<li class="nav-item settings-item" role="presentation">
|
||||
<button class="nav-link settings-link" id="invoice-tab" data-bs-toggle="tab"
|
||||
data-bs-target="#invoice" type="button" role="tab">
|
||||
{{__('Invoice Print')}}
|
||||
</button>
|
||||
</li>
|
||||
<li class="nav-item settings-item" role="presentation">
|
||||
<button class="nav-link settings-link" id="role-tab" data-bs-toggle="tab"
|
||||
data-bs-target="#role" type="button" role="tab">
|
||||
{{__('Role & Permission')}}
|
||||
</button>
|
||||
</li>
|
||||
<li class="nav-item settings-item" role="presentation">
|
||||
<button class="nav-link settings-link" id="role-tab" data-bs-toggle="tab"
|
||||
data-bs-target="#Currencies" type="button" role="tab">
|
||||
{{__('Currencies')}}
|
||||
</button>
|
||||
</li>
|
||||
@if (moduleCheck('MarketingAddon'))
|
||||
<li class="nav-item settings-item" role="presentation">
|
||||
<button class="nav-link settings-link" id="currency-setting-tab" data-bs-toggle="tab"
|
||||
data-bs-target="#sms" type="button" role="tab">
|
||||
{{__('SMS Settings')}}
|
||||
</button>
|
||||
</li>
|
||||
@endif
|
||||
</ul>
|
||||
|
||||
<div class="tab-content mt-3" id="settingsTabContent">
|
||||
|
||||
<div class="tab-pane fade show active" id="all" role="tabpanel" aria-labelledby="all-tab">
|
||||
<div class="settings-box-container">
|
||||
<div>
|
||||
<a href="{{ route('business.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="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>{{__('General Settings')}}</h6>
|
||||
<small class="text-muted d-block">{{__('Configure the fundamental information of the site.')}}</small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<a href="{{ route('business.notifications.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="25" height="24" viewBox="0 0 25 24" fill="none"
|
||||
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="#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="#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="#C52127" stroke-width="1.5" stroke-linecap="round"
|
||||
stroke-linejoin="round" />
|
||||
</svg>
|
||||
</div>
|
||||
<div>
|
||||
<h6>{{__('Notifications')}}</h6>
|
||||
<small class="text-muted d-block">{{__('Control and configure overall notification systems')}}</small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<a href="{{ route('business.currencies.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="25" height="24" viewBox="0 0 25 24" fill="none"
|
||||
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="#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="#C52127" stroke-width="1.5" stroke-linecap="round" />
|
||||
</svg>
|
||||
</div>
|
||||
<div>
|
||||
<h6>{{__('Currencies')}}</h6>
|
||||
<small class="text-muted d-block">{{__('View and update currency settings')}}</small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<a href="{{ route('business.roles.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="24" height="24" viewBox="0 0 24 24"
|
||||
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="#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="#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="#C52127" stroke-width="1.5" stroke-linecap="round" />
|
||||
</svg>
|
||||
</div>
|
||||
<div>
|
||||
<h6>{{__('User Role')}}</h6>
|
||||
<small class="text-muted d-block">{{__('Add new users, Provide role and Permission')}}</small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
@if (moduleCheck('MarketingAddon'))
|
||||
<div>
|
||||
<a href="{{ route('business.sms-gateway-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="#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>
|
||||
<h6>{{__('SMS Gateway Settings')}}</h6>
|
||||
<small class="text-muted d-block">{{__('View and update gateway settings.')}}</small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<div>
|
||||
{{-- <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="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>{{__('Languages Settings')}}</h6>
|
||||
<small class="text-muted d-block">{{__('Add, Edit, Update, Delete Languages.')}}</small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</a> --}}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="tab-pane fade" id="general" role="tabpanel" aria-labelledby="general-tab">
|
||||
<div class="settings-box-container">
|
||||
<div>
|
||||
<a href="{{ route('business.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="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>{{__('General Settings')}}</h6>
|
||||
<small class="text-muted d-block">{{__('Configure the fundamental information of the site.')}}</small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@include('business::manage-settings.product')
|
||||
|
||||
<div class="tab-pane fade" id="invoice" role="tabpanel" aria-labelledby="invoice-tab">
|
||||
<div class="row g-3 m-2">
|
||||
<form action="{{ route('business.invoice.update') }}" method="post"
|
||||
class="invoice_form">
|
||||
@csrf
|
||||
|
||||
<div class="row justify-content-center">
|
||||
{{-- A4 Option --}}
|
||||
<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">
|
||||
<input type="radio" name="invoice_size" value="a4" {{ data_get($invoice_setting, 'value') == 'a4' ? 'checked' : 'checked' }}>
|
||||
<span class="checkmark"></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-2">{{ __('Printer A4') }}</div>
|
||||
<img src="{{ asset('assets/images/logo/a4-new-invoice.png') }}"
|
||||
alt="A4 Invoice" class="img-fluid border rounded invoice-image ">
|
||||
</label>
|
||||
</div>
|
||||
|
||||
@if (moduleCheck('ThermalPrinterAddon'))
|
||||
<div class="col-lg-3 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="3_inch_80mm" {{ data_get($invoice_setting, 'value') == '3_inch_80mm' ? 'checked' : '' }}>
|
||||
<span class="checkmark"></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-2">{{ __('Thermal: 3 inch 80mm') }}</div>
|
||||
<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">
|
||||
<a href="{{ route('business.roles.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="24" height="24" viewBox="0 0 24 24"
|
||||
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="#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="#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="#C52127" stroke-width="1.5" stroke-linecap="round" />
|
||||
</svg>
|
||||
</div>
|
||||
<div>
|
||||
<h6>{{__('User Role')}}</h6>
|
||||
<small class="text-muted d-block">{{__('Add new users, Provide role and Permission')}}</small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tab-pane fade" id="Currencies" role="tabpanel" aria-labelledby="invoice-tab">
|
||||
<div>
|
||||
<div class="settings-box-container">
|
||||
<a href="{{ route('business.currencies.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="25" height="24" viewBox="0 0 25 24" fill="none"
|
||||
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="#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="#C52127" stroke-width="1.5" stroke-linecap="round" />
|
||||
</svg>
|
||||
</div>
|
||||
<div>
|
||||
<h6>{{__('Currencies')}}</h6>
|
||||
<small class="text-muted d-block">{{__('View and update currency settings')}}</small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@if (moduleCheck('MarketingAddon'))
|
||||
<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">
|
||||
<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="#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>
|
||||
<h6>{{__('SMS Gateway Settings')}}</h6>
|
||||
<small class="text-muted d-block">{{__('View and update gateway settings.')}}</small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
@@ -0,0 +1,470 @@
|
||||
<div class="tab-pane fade" id="product" role="tabpanel" aria-labelledby="product-tab">
|
||||
<div class="table-header p-16">
|
||||
<h4>{{ __('Product Settings') }}</h4>
|
||||
<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="selectAll">
|
||||
<label class="custom-control-label fw-bold" for="selectAll">{{ __('Select All') }}</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="order-form-section p-16">
|
||||
<form action="{{ route('business.product.settings.update') }}" method="post" class="ajaxform">
|
||||
@csrf
|
||||
<div class="row product-setting-form mt-3">
|
||||
<div class="col-lg-3">
|
||||
<h3 class="title">{{ __('Add Product Settings') }}
|
||||
<svg class="svg" width="16" height="17" viewBox="0 0 16 17" fill="none"
|
||||
xmlns="http://www.w3.org/2000/svg">
|
||||
<g opacity="0.8">
|
||||
<path
|
||||
d="M7.99967 15.1615C11.6816 15.1615 14.6663 12.1767 14.6663 8.49479C14.6663 4.81289 11.6816 1.82812 7.99967 1.82812C4.31778 1.82812 1.33301 4.81289 1.33301 8.49479C1.33301 12.1767 4.31778 15.1615 7.99967 15.1615Z"
|
||||
fill="#97979F" stroke="#97979F" stroke-width="1.5" stroke-linecap="round"
|
||||
stroke-linejoin="round" />
|
||||
<path d="M8 5.82812V8.49479" stroke="white" stroke-width="1.5" stroke-linecap="round"
|
||||
stroke-linejoin="round" />
|
||||
<path d="M8 11.1719H8.00833" stroke="white" stroke-width="1.5" stroke-linecap="round"
|
||||
stroke-linejoin="round" />
|
||||
</g>
|
||||
</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"
|
||||
name="show_product_code" value="1"
|
||||
{{ optional($product_setting?->modules)['show_product_code'] === '1' ? 'checked' : '' }}>
|
||||
<label for="product_code">{{__('Product 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"
|
||||
name="show_product_stock" value="1"
|
||||
{{ is_null($product_setting) || is_null($product_setting->modules) || (optional($product_setting->modules)['show_product_stock'] ?? false) ? 'checked' : '' }}>
|
||||
<label for="stock">{{__('Product Stock')}}</label>
|
||||
</div>
|
||||
|
||||
<div class="d-flex align-items-center mb-3">
|
||||
<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"
|
||||
{{ 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>
|
||||
|
||||
<div class="d-flex align-items-center mb-3">
|
||||
<input type="hidden" name="show_product_brand" value="0">
|
||||
<input id="brand" class="delete-checkbox-item multi-delete" type="checkbox"
|
||||
name="show_product_brand" value="1"
|
||||
{{ optional($product_setting?->modules)['show_product_brand'] === '1' ? 'checked' : '' }}>
|
||||
<label for="brand">{{__('Product Brand')}}</label>
|
||||
</div>
|
||||
|
||||
<div class="d-flex align-items-center mb-3">
|
||||
<input type="hidden" name="show_model_no" value="0">
|
||||
<input id="model" type="checkbox" class="delete-checkbox-item multi-delete"
|
||||
name="show_model_no" value="1"
|
||||
{{ optional($product_setting?->modules)['show_model_no'] === '1' ? 'checked' : '' }}>
|
||||
<label for="model">{{__('Model No')}}</label>
|
||||
</div>
|
||||
|
||||
<div class="d-flex align-items-center mb-3">
|
||||
<input type="hidden" name="show_product_category" value="0">
|
||||
<input id="category" class="delete-checkbox-item multi-delete" type="checkbox"
|
||||
name="show_product_category" value="1"
|
||||
{{ is_null($product_setting) || is_null($product_setting->modules) || (optional($product_setting->modules)['show_product_category'] ?? false) ? 'checked' : '' }}>
|
||||
<label for="category">{{__('Product Category')}}</label>
|
||||
</div>
|
||||
|
||||
<div class="d-flex align-items-center mb-3">
|
||||
<input type="hidden" name="show_product_manufacturer" value="0">
|
||||
<input id="manufacturer" class="delete-checkbox-item multi-delete" type="checkbox"
|
||||
name="show_product_manufacturer" value="1"
|
||||
{{ optional($product_setting?->modules)['show_product_manufacturer'] === '1' ? 'checked' : '' }}>
|
||||
<label for="manufacturer">{{__('Product Manufacturer')}}</label>
|
||||
</div>
|
||||
|
||||
<div class="d-flex align-items-center mb-3">
|
||||
<input type="hidden" name="show_product_image" value="0">
|
||||
<input id="image" class="delete-checkbox-item multi-delete" type="checkbox"
|
||||
name="show_product_image" value="1"
|
||||
{{ optional($product_setting?->modules)['show_product_image'] === '1' ? 'checked' : '' }}>
|
||||
<label for="image">{{__('Product Image')}}</label>
|
||||
</div>
|
||||
|
||||
<div class="d-flex align-items-center mb-3">
|
||||
<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"
|
||||
{{ 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>
|
||||
|
||||
<div class="d-flex align-items-center mb-3">
|
||||
<input type="hidden" name="show_vat_id" value="0">
|
||||
<input id="vat" class="delete-checkbox-item multi-delete" type="checkbox"
|
||||
name="show_vat_id" value="1"
|
||||
{{ optional($product_setting?->modules)['show_vat_id'] === '1' ? 'checked' : '' }}>
|
||||
<label for="vat">{{__('VAT ID')}}</label>
|
||||
</div>
|
||||
|
||||
<div class="d-flex align-items-center mb-3">
|
||||
<input type="hidden" name="show_vat_type" value="0">
|
||||
<input id="type" class="delete-checkbox-item multi-delete" type="checkbox"
|
||||
name="show_vat_type" value="1"
|
||||
{{ optional($product_setting?->modules)['show_vat_type'] === '1' ? 'checked' : '' }}>
|
||||
<label for="type">{{__('VAT Type')}}</label>
|
||||
</div>
|
||||
|
||||
<div class="d-flex align-items-center mb-3">
|
||||
<input type="hidden" name="show_exclusive_price" value="0">
|
||||
<input id="exclusive" class="delete-checkbox-item multi-delete" type="checkbox"
|
||||
name="show_exclusive_price" value="1"
|
||||
{{ is_null($product_setting) || is_null($product_setting->modules) || (optional($product_setting->modules)['show_exclusive_price'] ?? false) ? 'checked' : '' }}>
|
||||
<label for="exclusive">{{__('Exclusive Price')}}</label>
|
||||
</div>
|
||||
|
||||
<div class="d-flex align-items-center mb-3">
|
||||
<input type="hidden" name="show_inclusive_price" value="0">
|
||||
<input id="inclusive" class="delete-checkbox-item multi-delete" type="checkbox"
|
||||
name="show_inclusive_price" value="1"
|
||||
{{ is_null($product_setting) || is_null($product_setting->modules) || (optional($product_setting->modules)['show_inclusive_price'] ?? false) ? 'checked' : '' }}>
|
||||
<label for="inclusive">{{__('Inclusive Price')}}</label>
|
||||
</div>
|
||||
|
||||
<div class="d-flex align-items-center mb-3">
|
||||
<input type="hidden" name="show_profit_percent" value="0">
|
||||
<input id="percent" class="delete-checkbox-item multi-delete" type="checkbox"
|
||||
name="show_profit_percent" value="1"
|
||||
{{ is_null($product_setting) || is_null($product_setting->modules) || (optional($product_setting->modules)['show_profit_percent'] ?? false) ? 'checked' : '' }}>
|
||||
<label for="percent">{{__('Profit Percent')}}</label>
|
||||
</div>
|
||||
|
||||
@if (moduleCheck('warehouseAddon'))
|
||||
<div class="d-flex align-items-center mb-3">
|
||||
<input type="hidden" name="show_warehouse" value="0">
|
||||
<input id="warehouse" class="delete-checkbox-item multi-delete" type="checkbox"
|
||||
name="show_warehouse" value="1"
|
||||
{{ optional($product_setting?->modules)['show_warehouse'] === '1' ? 'checked' : '' }}>
|
||||
<label for="warehouse">{{__('Warehouse')}}</label>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<div class="d-flex align-items-center mb-3">
|
||||
<input type="hidden" name="show_rack" value="0">
|
||||
<input id="rack" class="delete-checkbox-item multi-delete" type="checkbox"
|
||||
name="show_rack" value="1"
|
||||
{{ optional($product_setting?->modules)['show_rack'] === '1' ? 'checked' : '' }}>
|
||||
<label for="rack">{{__('Rack')}}</label>
|
||||
</div>
|
||||
|
||||
<div class="d-flex align-items-center mb-3">
|
||||
<input type="hidden" name="show_shelf" value="0">
|
||||
<input id="shelf" class="delete-checkbox-item multi-delete" type="checkbox"
|
||||
name="show_shelf" value="1"
|
||||
{{ optional($product_setting?->modules)['show_shelf'] === '1' ? 'checked' : '' }}>
|
||||
<label for="shelf">{{__('Shelf')}}</label>
|
||||
</div>
|
||||
|
||||
<div class="d-flex align-items-center mb-3">
|
||||
<input type="hidden" name="show_action" value="0">
|
||||
<input id="show_action" class="delete-checkbox-item multi-delete" type="checkbox"
|
||||
name="show_action" value="1"
|
||||
{{ optional($product_setting?->modules)['show_action'] === '1' ? 'checked' : '' }}>
|
||||
<label for="show_action">{{__('Action')}}</label>
|
||||
</div>
|
||||
|
||||
<div class="d-flex align-items-center mb-3">
|
||||
<input type="hidden" name="show_weight" value="0">
|
||||
<input id="show_weight" class="delete-checkbox-item multi-delete" type="checkbox"
|
||||
name="show_weight" value="1"
|
||||
{{ optional($product_setting?->modules)['show_weight'] === '1' ? 'checked' : '' }}>
|
||||
<label for="show_weight">{{__('Weight')}}</label>
|
||||
</div>
|
||||
|
||||
<div class="d-flex align-items-center mb-3">
|
||||
<input type="hidden" name="show_warranty" value="0">
|
||||
<input id="show_warranty" class="delete-checkbox-item multi-delete" type="checkbox"
|
||||
name="show_warranty" value="1"
|
||||
{{ optional($product_setting?->modules)['show_warranty'] === '1' ? 'checked' : '' }}>
|
||||
<label for="show_warranty">{{__('Warranty')}}</label>
|
||||
</div>
|
||||
|
||||
<div class="d-flex align-items-center mb-3">
|
||||
<input type="hidden" name="show_guarantee" value="0">
|
||||
<input id="show_guarantee" class="delete-checkbox-item multi-delete" type="checkbox"
|
||||
name="show_guarantee" value="1"
|
||||
{{ optional($product_setting?->modules)['show_guarantee'] === '1' ? 'checked' : '' }}>
|
||||
<label for="show_guarantee">{{__('Guarantee')}}</label>
|
||||
</div>
|
||||
@if (moduleCheck('SerialCodeAddon'))
|
||||
<div class="d-flex align-items-center mb-3">
|
||||
<input type="hidden" name="show_serial" value="0">
|
||||
<input id="show_serial" class="delete-checkbox-item multi-delete" type="checkbox" name="show_serial" value="1"
|
||||
{{ optional($product_setting?->modules)['show_serial'] === '1' ? 'checked' : '' }}>
|
||||
<label for="show_serial">{{ __('Serial') }}</label>
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
|
||||
<div class="col-lg-3">
|
||||
<h3 class="title">{{ __('Additional Product Field') }}
|
||||
<svg class="svg" width="16" height="17" viewBox="0 0 16 17" fill="none"
|
||||
xmlns="http://www.w3.org/2000/svg">
|
||||
<g opacity="0.8">
|
||||
<path
|
||||
d="M7.99967 15.1615C11.6816 15.1615 14.6663 12.1767 14.6663 8.49479C14.6663 4.81289 11.6816 1.82812 7.99967 1.82812C4.31778 1.82812 1.33301 4.81289 1.33301 8.49479C1.33301 12.1767 4.31778 15.1615 7.99967 15.1615Z"
|
||||
fill="#97979F" stroke="#97979F" stroke-width="1.5" stroke-linecap="round"
|
||||
stroke-linejoin="round" />
|
||||
<path d="M8 5.82812V8.49479" stroke="white" stroke-width="1.5" stroke-linecap="round"
|
||||
stroke-linejoin="round" />
|
||||
<path d="M8 11.1719H8.00833" stroke="white" stroke-width="1.5" stroke-linecap="round"
|
||||
stroke-linejoin="round" />
|
||||
</g>
|
||||
</svg>
|
||||
</h3>
|
||||
|
||||
<h6>{{ __('MRP/PRICE') }}</h6>
|
||||
<div class="additional-input">
|
||||
<div class="d-flex align-items-center mb-3">
|
||||
<input type="hidden" name="show_product_sale_price" value="0">
|
||||
<input id="mrp" type="checkbox" class="delete-checkbox-item multi-delete"
|
||||
name="show_product_sale_price" value="1"
|
||||
{{ is_null($product_setting) || is_null($product_setting->modules) || (optional($product_setting->modules)['show_product_sale_price'] ?? false) ? 'checked' : '' }}>
|
||||
<label for="mrp">{{__('MRP')}}</label>
|
||||
</div>
|
||||
|
||||
<input type="number" class="form-control additional-input-field" name="default_sale_price"
|
||||
value="{{ optional($product_setting)->modules['default_sale_price'] ?? '' }}"
|
||||
min="0" step="1" placeholder="{{ __('Enter Sale Price') }}">
|
||||
</div>
|
||||
|
||||
<div class="additional-input">
|
||||
<div class="d-flex align-items-center mb-3">
|
||||
<input type="hidden" name="show_product_wholesale_price" value="0">
|
||||
<input id="wholesale" type="checkbox" class="delete-checkbox-item multi-delete"
|
||||
name="show_product_wholesale_price" value="1"
|
||||
{{ optional($product_setting?->modules)['show_product_wholesale_price'] === '1' ? 'checked' : '' }}>
|
||||
<label for="wholesale">{{__('Wholesale Price')}}</label>
|
||||
</div>
|
||||
|
||||
<input type="number" class="form-control additional-input-field"
|
||||
name="default_wholesale_price"
|
||||
value="{{ optional($product_setting)->modules['default_wholesale_price'] ?? '' }}"
|
||||
min="0" step="1" placeholder="{{ __('Enter Wholesale Price') }}">
|
||||
</div>
|
||||
|
||||
<div class="additional-input">
|
||||
<div class="d-flex align-items-center mb-3">
|
||||
<input type="hidden" name="show_product_dealer_price" value="0">
|
||||
<input id="dealer" type="checkbox" class="delete-checkbox-item multi-delete"
|
||||
name="show_product_dealer_price" value="1"
|
||||
{{ optional($product_setting?->modules)['show_product_dealer_price'] === '1' ? 'checked' : '' }}>
|
||||
<label for="dealer">{{__('Dealer Price')}}</label>
|
||||
</div>
|
||||
<input type="number" class="form-control additional-input-field" name="default_dealer_price"
|
||||
value="{{ optional($product_setting)->modules['default_dealer_price'] ?? '' }}"
|
||||
min="0" step="1" placeholder="{{ __('Enter Dealer Price') }}">
|
||||
</div>
|
||||
|
||||
<h6>{{ __('Batch Tracking') }}</h6>
|
||||
|
||||
<div class="additional-input">
|
||||
<div class="d-flex align-items-center mb-2">
|
||||
<input type="hidden" name="show_batch_no" value="0">
|
||||
<input id="batch" type="checkbox" class="delete-checkbox-item multi-delete"
|
||||
name="show_batch_no" value="1"
|
||||
{{ optional($product_setting?->modules)['show_batch_no'] === '1' ? 'checked' : '' }}>
|
||||
<label for="batch">{{__('Batch No')}}</label>
|
||||
</div>
|
||||
<input type="text" class="form-control additional-input-field" name="default_batch_no"
|
||||
value="{{ optional($product_setting)->modules['default_batch_no'] ?? '' }}"
|
||||
placeholder="{{ __('Batch No') }}">
|
||||
</div>
|
||||
|
||||
{{-- Expiry Date --}}
|
||||
<div class="additional-input">
|
||||
<div class="d-flex align-items-center mb-2">
|
||||
<input type="hidden" name="show_expire_date" value="0">
|
||||
<input id="expiry" type="checkbox" class="delete-checkbox-item multi-delete"
|
||||
name="show_expire_date" value="1"
|
||||
{{ optional($product_setting?->modules)['show_expire_date'] === '1' ? 'checked' : '' }}>
|
||||
<label for="expiry">{{__('Expiry Date')}}</label>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<select class="form-select date-type-selector" data-target="expired"
|
||||
name="expire_date_type">
|
||||
<option value="">{{__('Select')}}</option>
|
||||
<option value="dmy"
|
||||
{{ optional($product_setting->modules ?? null)['expire_date_type'] == 'dmy' ? 'selected' : '' }}>
|
||||
{{__('Day / Month / Year')}}</option>
|
||||
<option value="my"
|
||||
{{ optional($product_setting->modules ?? null)['expire_date_type'] == 'my' ? 'selected' : '' }}>
|
||||
{{__('Month / Year')}}
|
||||
</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="expired-inputs">
|
||||
<input type="date" id="expired_dmy" name="default_expired_date_dmy"
|
||||
value="{{ optional($product_setting->modules ?? null)['expire_date_type'] == 'dmy' ? optional($product_setting->modules)['default_expired_date'] : '' }}"
|
||||
class="form-control expired-dmy"
|
||||
style="{{ optional($product_setting->modules ?? null)['expire_date_type'] == 'dmy' ? '' : 'display:none;' }}">
|
||||
|
||||
<input type="month" id="expired_my" name="default_expired_date_my"
|
||||
value="{{ optional($product_setting->modules ?? null)['expire_date_type'] == 'my' ? optional($product_setting->modules)['default_expired_date'] : '' }}"
|
||||
class="form-control expired-my"
|
||||
style="{{ optional($product_setting->modules ?? null)['expire_date_type'] == 'my' ? '' : 'display:none;' }}">
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
{{-- MFG Date --}}
|
||||
<div class="additional-input">
|
||||
<div class="d-flex align-items-center mb-2">
|
||||
<input type="hidden" name="show_mfg_date" value="0">
|
||||
<input id="mfg" type="checkbox" class="delete-checkbox-item multi-delete"
|
||||
name="show_mfg_date" value="1"
|
||||
{{ optional($product_setting?->modules)['show_mfg_date'] === '1' ? 'checked' : '' }}>
|
||||
<label for="mfg">{{__('Mfg Date')}}</label>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<select class="form-select date-type-selector" data-target="mfg" name="mfg_date_type">
|
||||
<option value="">{{__('Select') }}</option>
|
||||
<option value="dmy"
|
||||
{{ optional($product_setting->modules ?? null)['mfg_date_type'] == 'dmy' ? 'selected' : '' }}>
|
||||
{{__('Day / Month / Year')}}
|
||||
</option>
|
||||
<option value="my"
|
||||
{{ optional($product_setting->modules ?? null)['mfg_date_type'] == 'my' ? 'selected' : '' }}>
|
||||
{{__('Month / Year')}}
|
||||
</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="mfg-inputs">
|
||||
<input type="date" id="mfg_dmy" name="default_mfg_date_dmy"
|
||||
value="{{ optional($product_setting->modules ?? null)['mfg_date_type'] == 'dmy' ? optional($product_setting->modules)['default_mfg_date'] : '' }}"
|
||||
class="form-control mfg-dmy"
|
||||
style="{{ optional($product_setting->modules ?? null)['mfg_date_type'] == 'dmy' ? '' : 'display:none;' }}">
|
||||
|
||||
<input type="month" id="mfg_my" name="default_mfg_date_my"
|
||||
value="{{ optional($product_setting->modules ?? null)['mfg_date_type'] == 'my' ? optional($product_setting->modules)['default_mfg_date'] : '' }}"
|
||||
class="form-control mfg-my"
|
||||
style="{{ optional($product_setting->modules ?? null)['mfg_date_type'] == 'my' ? '' : 'display:none;' }}">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h6>{{ __('Product Type') }}</h6>
|
||||
|
||||
<div class="d-flex align-items-center mb-3">
|
||||
<input type="hidden" name="show_product_type_single" value="0">
|
||||
<input id="single" class="delete-checkbox-item multi-delete" type="checkbox"
|
||||
name="show_product_type_single" value="1"
|
||||
{{ is_null($product_setting) || is_null($product_setting->modules) || (optional($product_setting->modules)['show_product_type_single'] ?? false) ? 'checked' : '' }}>
|
||||
<label for="single">
|
||||
{{__('Single')}}
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="d-flex align-items-center mb-3">
|
||||
<input type="hidden" name="show_product_type_variant" value="0">
|
||||
<input id="variant" class="delete-checkbox-item multi-delete" type="checkbox"
|
||||
name="show_product_type_variant" value="1"
|
||||
{{ optional($product_setting?->modules)['show_product_type_variant'] === '1' ? 'checked' : '' }}>
|
||||
<label for="variant">{{__('Variant')}}</label>
|
||||
</div>
|
||||
|
||||
<div class="d-flex align-items-center mb-3">
|
||||
<input type="hidden" name="show_product_type_combo" value="0">
|
||||
<input id="combo" class="delete-checkbox-item multi-delete" type="checkbox"
|
||||
name="show_product_type_combo" value="1"
|
||||
{{ optional($product_setting?->modules)['show_product_type_combo'] === '1' ? 'checked' : '' }}>
|
||||
<label for="combo">{{__('Combo')}}</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-3">
|
||||
<h3 class="title">{{ __('Purchase Setting') }}
|
||||
<svg class="svg" width="16" height="17" viewBox="0 0 16 17" fill="none"
|
||||
xmlns="http://www.w3.org/2000/svg">
|
||||
<g opacity="0.8">
|
||||
<path
|
||||
d="M7.99967 15.1615C11.6816 15.1615 14.6663 12.1767 14.6663 8.49479C14.6663 4.81289 11.6816 1.82812 7.99967 1.82812C4.31778 1.82812 1.33301 4.81289 1.33301 8.49479C1.33301 12.1767 4.31778 15.1615 7.99967 15.1615Z"
|
||||
fill="#97979F" stroke="#97979F" stroke-width="1.5" stroke-linecap="round"
|
||||
stroke-linejoin="round" />
|
||||
<path d="M8 5.82812V8.49479" stroke="white" stroke-width="1.5" stroke-linecap="round"
|
||||
stroke-linejoin="round" />
|
||||
<path d="M8 11.1719H8.00833" stroke="white" stroke-width="1.5" stroke-linecap="round"
|
||||
stroke-linejoin="round" />
|
||||
</g>
|
||||
</svg>
|
||||
</h3>
|
||||
<div class="d-flex align-items-center mb-3">
|
||||
<input type="hidden" name="show_product_batch_no" value="0">
|
||||
<input id="batch_no" type="checkbox" class="delete-checkbox-item multi-delete"
|
||||
name="show_product_batch_no" value="1"
|
||||
{{ optional($product_setting?->modules)['show_product_batch_no'] === '1' ? 'checked' : '' }}>
|
||||
<label for="batch_no">{{ __('Batch No') }}</label>
|
||||
</div>
|
||||
<div class="d-flex align-items-center mb-3">
|
||||
<input type="hidden" name="show_product_expire_date" value="0">
|
||||
<input id="expire" type="checkbox" class="delete-checkbox-item multi-delete"
|
||||
name="show_product_expire_date" value="1"
|
||||
{{ optional($product_setting?->modules)['show_product_expire_date'] === '1' ? 'checked' : '' }}>
|
||||
<label for="expire">{{ __('Expire Date') }}</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-3">
|
||||
<h3 class="title">{{ __('Sale Setting') }}
|
||||
<svg class="svg" width="16" height="17" viewBox="0 0 16 17" fill="none"
|
||||
xmlns="http://www.w3.org/2000/svg">
|
||||
<g opacity="0.8">
|
||||
<path
|
||||
d="M7.99967 15.1615C11.6816 15.1615 14.6663 12.1767 14.6663 8.49479C14.6663 4.81289 11.6816 1.82812 7.99967 1.82812C4.31778 1.82812 1.33301 4.81289 1.33301 8.49479C1.33301 12.1767 4.31778 15.1615 7.99967 15.1615Z"
|
||||
fill="#97979F" stroke="#97979F" stroke-width="1.5" stroke-linecap="round"
|
||||
stroke-linejoin="round" />
|
||||
<path d="M8 5.82812V8.49479" stroke="white" stroke-width="1.5" stroke-linecap="round"
|
||||
stroke-linejoin="round" />
|
||||
<path d="M8 11.1719H8.00833" stroke="white" stroke-width="1.5" stroke-linecap="round"
|
||||
stroke-linejoin="round" />
|
||||
</g>
|
||||
</svg>
|
||||
</h3>
|
||||
<div class="d-flex align-items-center mb-3">
|
||||
<input type="hidden" name="allow_due_sale" value="0">
|
||||
<input id="allow_due_sale" type="checkbox" class="delete-checkbox-item multi-delete"
|
||||
name="allow_due_sale" value="1"
|
||||
{{ optional($product_setting?->modules)['allow_due_sale'] === '1' ? 'checked' : '' }}>
|
||||
<label for="allow_due_sale">{{ __('Guest Due Sale') }}</label>
|
||||
</div>
|
||||
<div class="d-flex align-items-center mb-3">
|
||||
<input type="hidden" name="allow_product_discount" value="0">
|
||||
<input id="allow_product_discount" type="checkbox" class="delete-checkbox-item multi-delete"
|
||||
name="allow_product_discount" value="1"
|
||||
{{ optional($product_setting?->modules)['allow_product_discount'] === '1' ? 'checked' : '' }}>
|
||||
<label for="allow_product_discount">{{ __('Product Discount') }}</label>
|
||||
</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>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,20 @@
|
||||
@foreach ($notifications as $notification)
|
||||
<tr>
|
||||
<td>{{ $loop->index+1 }}</td>
|
||||
<td>{{ $notification->data['message'] ?? '' }}</td>
|
||||
<td>{{ formatted_date($notification->created_at, 'd M Y - H:i A') }}</td>
|
||||
<td>{{ formatted_date($notification->read_at, 'd M Y - H:i A') }}</td>
|
||||
<td>
|
||||
<div class="dropdown table-action">
|
||||
<button type="button" data-bs-toggle="dropdown">
|
||||
<i class="far fa-ellipsis-v"></i>
|
||||
</button>
|
||||
<ul class="dropdown-menu">
|
||||
<li>
|
||||
<a href="{{ route('business.notifications.mtView', $notification->id) }}"><i class="fas fa-eye"></i> @lang('View')</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
@@ -0,0 +1,42 @@
|
||||
@extends('layouts.business.master')
|
||||
|
||||
@section('title')
|
||||
{{ __('Notifications List') }}
|
||||
@endsection
|
||||
|
||||
@section('main_content')
|
||||
<div class="erp-table-section">
|
||||
<div class="container-fluid">
|
||||
<div class="card">
|
||||
<div class="card-bodys ">
|
||||
<div class="table-header p-16">
|
||||
<h4>{{ __('Notifications List') }}</h4>
|
||||
</div>
|
||||
<div class="table-top-form p-16-0">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="responsive-table m-0">
|
||||
<table class="table" id="erp-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>@lang('SL.')</th>
|
||||
<th>@lang('Message')</th>
|
||||
<th>@lang('Created At')</th>
|
||||
<th>@lang('Read At')</th>
|
||||
<th>@lang('Action')</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="notifications-data" class="searchResults">
|
||||
@include('business::notifications.datas')
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@push('modal')
|
||||
@include('admin.components.multi-delete-modal')
|
||||
@endpush
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user