mirror of
https://gitlab.com/CIEFWorldwideSdnBhd/shipping-portal.git
synced 2026-08-19 04:24:12 +00:00
Export Group Transactions CSV
This commit is contained in:
@@ -0,0 +1,108 @@
|
||||
<?php
|
||||
|
||||
namespace App\Classes\Modules\Exports\Services;
|
||||
|
||||
use App\Classes\ValueObjects\Constants\PaymentMethodType;
|
||||
use App\Classes\ValueObjects\Constants\TransactionType;
|
||||
use App\Classes\ValueObjects\Constants\ApprovalStatus;
|
||||
use App\Models\Group;
|
||||
use App\Models\Transaction;
|
||||
use Maatwebsite\Excel\Concerns\Exportable;
|
||||
use Maatwebsite\Excel\Concerns\FromQuery;
|
||||
use Maatwebsite\Excel\Concerns\ShouldAutoSize;
|
||||
use Maatwebsite\Excel\Concerns\WithHeadingRow;
|
||||
use Maatwebsite\Excel\Concerns\WithHeadings;
|
||||
use Maatwebsite\Excel\Concerns\WithMapping;
|
||||
use Illuminate\Http\Request;
|
||||
use Carbon\Carbon;
|
||||
|
||||
class ExportsGroupTransactions implements
|
||||
FromQuery,
|
||||
WithHeadings,
|
||||
WithHeadingRow,
|
||||
WithMapping,
|
||||
ShouldAutoSize
|
||||
{
|
||||
use Exportable;
|
||||
|
||||
private $request;
|
||||
|
||||
public function __construct(Request $request)
|
||||
{
|
||||
$this->request = $request;
|
||||
}
|
||||
|
||||
public function headings(): array
|
||||
{
|
||||
return [
|
||||
'DocNo',
|
||||
'DocDate',
|
||||
'PaymentDate',
|
||||
'DebtorCode',
|
||||
'Ref',
|
||||
'ShipInfo',
|
||||
'AccNo',
|
||||
'DetailDescription',
|
||||
'FurtherDescription',
|
||||
'ProjNo',
|
||||
'DeptNo',
|
||||
'Qty',
|
||||
'UnitPrice',
|
||||
'TaxType',
|
||||
'TaxableAmt',
|
||||
'TaxRate'
|
||||
];
|
||||
}
|
||||
|
||||
public function query()
|
||||
{
|
||||
$start_date = $this->parseDate($this->request->input('startDate'));
|
||||
$end_date = $this->parseDate($this->request->input('endDate'));
|
||||
|
||||
return Group::when($start_date && $end_date, function ($query) use ($start_date, $end_date) {
|
||||
$query->whereBetween('created_at', [
|
||||
$start_date->startOfDay(),
|
||||
$end_date->endOfDay()
|
||||
]);
|
||||
})
|
||||
->when($start_date && !$end_date, function ($query) use ($start_date) {
|
||||
$query->where('created_at', '>=', $start_date->startOfDay());
|
||||
})
|
||||
->when(!$start_date && $end_date, function ($query) use ($end_date) {
|
||||
$query->where('created_at', '<=', $end_date->endOfDay());
|
||||
});
|
||||
}
|
||||
|
||||
private function parseDate($date)
|
||||
{
|
||||
return $date ? Carbon::parse($date)->startOfDay() : null;
|
||||
}
|
||||
|
||||
public function map($transaction): array
|
||||
{
|
||||
$company = $transaction->receiverCompany;
|
||||
return [
|
||||
'<<New>>', //'DocNo',
|
||||
'', //'DocDate',
|
||||
$transaction->created_at->format('m/d/Y H:m'), //'PaymentDate',
|
||||
$company->debtor, //'DebtorCode',
|
||||
$company->referece, //'Ref',
|
||||
$company->referece, //'ShipInfo',
|
||||
'500-0000', //'AccNo',
|
||||
'X1 Freight Service Charge', //'DetailDescription',
|
||||
'FurtherDescription', //'FurtherDescription',
|
||||
'M3', //'ProjNo',
|
||||
'CIEF', //'DeptNo',
|
||||
'', //'Qty',
|
||||
'', //'UnitPrice',
|
||||
'', //'TaxType',
|
||||
floatval($transaction->tax) > 0 ? number_format($transaction->tax, 2) : '0.00', //'TaxableAmt',
|
||||
'', //'TaxRate'
|
||||
];
|
||||
}
|
||||
|
||||
private function getTaxType($tax_percentage)
|
||||
{
|
||||
return floatval($tax_percentage) > 0 ? 'SV-6' : '';
|
||||
}
|
||||
}
|
||||
@@ -5,6 +5,7 @@ namespace App\Http\Controllers\Exports;
|
||||
|
||||
use App\Classes\Modules\Exports\Services\ExportsCustomersOrderLatestDate;
|
||||
use App\Classes\Modules\Exports\Services\ExportsCustomerTotalOrderByYear;
|
||||
use App\Classes\Modules\Exports\Services\ExportsGroupTransactions;
|
||||
use App\Classes\Modules\Exports\Services\ExportsPaymentTransactions;
|
||||
use App\Models\User;
|
||||
use Illuminate\Http\Request;
|
||||
@@ -33,6 +34,13 @@ class ExportCustomersToExcelController
|
||||
return $response;
|
||||
}
|
||||
|
||||
public function groupTransaction(Request $request){
|
||||
$exportsTransactions = new ExportsGroupTransactions($request);
|
||||
$response = $exportsTransactions->download('group-transactions.xls', Excel::XLS, ['Content-Type' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet']);
|
||||
ob_end_clean();
|
||||
return $response;
|
||||
}
|
||||
|
||||
public function totalOrders(Request $request){
|
||||
$exportsTotalOrders = new ExportsCustomerTotalOrderByYear($request);
|
||||
$response = $exportsTotalOrders->download('total-orders-' . $request->route('year') . '.xls', Excel::XLS, ['Content-Type' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet']);
|
||||
|
||||
+3
@@ -69,6 +69,9 @@ export default {
|
||||
case 'walletsReportSection':
|
||||
apiRoute = route('walletTransactions.export');
|
||||
break;
|
||||
case 'groupTransactionSection':
|
||||
apiRoute = route('groupTransaction.export');
|
||||
break;
|
||||
}
|
||||
window.open(apiRoute + '?startDate=' + this.parameters.startDate + '&endDate=' + this.parameters.endDate, '_blank');
|
||||
},
|
||||
|
||||
@@ -131,6 +131,12 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row m-t-15 m-b-15">
|
||||
<div class="col-8 p-l-0">
|
||||
<small class="all-caps muted">Export Group Transactions CSV</small>
|
||||
<download-billing-with-dates-component section="groupTransactionSection"></download-billing-with-dates-component>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<admin-payments-billing-section-component></admin-payments-billing-section-component>
|
||||
|
||||
@@ -579,6 +579,7 @@ Route::get('billplz/bills/{bill_no}', function($bill_no){
|
||||
|
||||
Route::get('/export/null-debtor/f614e339d7058904a831aad742e24d55', 'Exports\ExportCustomersToExcelController@nullDebtor')->name('newDebtor.export');
|
||||
Route::get('/export/payment-transactions/{section}/f614e339d7058904a831aad742e24d55', 'Exports\ExportCustomersToExcelController@paymentTransactions')->name('paymentTransactions.export');
|
||||
Route::get('/export/group-transactions/f614e339d7058904a831aad742e24d55', 'Exports\ExportCustomersToExcelController@groupTransaction')->name('groupTransaction.export');
|
||||
|
||||
Route::get('/delayed_container/customers', function(){
|
||||
$containers = Container::whereHas('transports', function($query){
|
||||
|
||||
Reference in New Issue
Block a user