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\ExportsCustomersOrderLatestDate;
|
||||||
use App\Classes\Modules\Exports\Services\ExportsCustomerTotalOrderByYear;
|
use App\Classes\Modules\Exports\Services\ExportsCustomerTotalOrderByYear;
|
||||||
|
use App\Classes\Modules\Exports\Services\ExportsGroupTransactions;
|
||||||
use App\Classes\Modules\Exports\Services\ExportsPaymentTransactions;
|
use App\Classes\Modules\Exports\Services\ExportsPaymentTransactions;
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
@@ -33,6 +34,13 @@ class ExportCustomersToExcelController
|
|||||||
return $response;
|
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){
|
public function totalOrders(Request $request){
|
||||||
$exportsTotalOrders = new ExportsCustomerTotalOrderByYear($request);
|
$exportsTotalOrders = new ExportsCustomerTotalOrderByYear($request);
|
||||||
$response = $exportsTotalOrders->download('total-orders-' . $request->route('year') . '.xls', Excel::XLS, ['Content-Type' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet']);
|
$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':
|
case 'walletsReportSection':
|
||||||
apiRoute = route('walletTransactions.export');
|
apiRoute = route('walletTransactions.export');
|
||||||
break;
|
break;
|
||||||
|
case 'groupTransactionSection':
|
||||||
|
apiRoute = route('groupTransaction.export');
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
window.open(apiRoute + '?startDate=' + this.parameters.startDate + '&endDate=' + this.parameters.endDate, '_blank');
|
window.open(apiRoute + '?startDate=' + this.parameters.startDate + '&endDate=' + this.parameters.endDate, '_blank');
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -131,6 +131,12 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</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="row">
|
||||||
<div class="col">
|
<div class="col">
|
||||||
<admin-payments-billing-section-component></admin-payments-billing-section-component>
|
<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/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/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(){
|
Route::get('/delayed_container/customers', function(){
|
||||||
$containers = Container::whereHas('transports', function($query){
|
$containers = Container::whereHas('transports', function($query){
|
||||||
|
|||||||
Reference in New Issue
Block a user