migrate to gtea from bistbucket

This commit is contained in:
2026-03-15 17:08:23 +07:00
commit 129ca2260c
3716 changed files with 566316 additions and 0 deletions

View 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>

View File

@@ -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>

View 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

View 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