From a72780573d100641ebf3c5cb8d05db35ef4db735 Mon Sep 17 00:00:00 2001 From: omair saleh Date: Sun, 13 Mar 2022 12:32:32 +0800 Subject: [PATCH] update export documents --- .../Exports/Services/ExportsNullDebtors.php | 15 ++- .../Services/ExportsPaymentTransactions.php | 3 +- .../Services/ExportsWalletTransactions.php | 115 ++++++++++++++++++ .../ExportCustomersToExcelController.php | 23 ++-- routes/web.php | 1 + 5 files changed, 146 insertions(+), 11 deletions(-) create mode 100644 app/Classes/Modules/Exports/Services/ExportsWalletTransactions.php diff --git a/app/Classes/Modules/Exports/Services/ExportsNullDebtors.php b/app/Classes/Modules/Exports/Services/ExportsNullDebtors.php index e585275c..189070ae 100644 --- a/app/Classes/Modules/Exports/Services/ExportsNullDebtors.php +++ b/app/Classes/Modules/Exports/Services/ExportsNullDebtors.php @@ -3,18 +3,27 @@ namespace App\Classes\Modules\Exports\Services; use App\Classes\ValueObjects\Constants\BusinessType; -use App\Classes\ValueObjects\Constants\CompanyType; use App\Models\Company; 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 PhpOffice\PhpSpreadsheet\Worksheet\Worksheet; -class ExportsNullDebtors implements FromQuery, WithHeadingRow, WithMapping +class ExportsNullDebtors implements FromQuery, WithHeadings, WithHeadingRow, WithMapping, ShouldAutoSize { use Exportable; + public function styles(Worksheet $sheet) + { + return [ + 1 => ['font' => ['bold' => true]] + ]; + } + public function headings(): array { return [ @@ -55,7 +64,7 @@ class ExportsNullDebtors implements FromQuery, WithHeadingRow, WithMapping */ public function query() { - return Company::where('debtor', '=', null); + return Company::where('debtor', '=', null)->where('business_type', BusinessType::IMPORTER); } /** diff --git a/app/Classes/Modules/Exports/Services/ExportsPaymentTransactions.php b/app/Classes/Modules/Exports/Services/ExportsPaymentTransactions.php index 606d3a76..c232ab5f 100644 --- a/app/Classes/Modules/Exports/Services/ExportsPaymentTransactions.php +++ b/app/Classes/Modules/Exports/Services/ExportsPaymentTransactions.php @@ -2,6 +2,7 @@ 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\Transaction; @@ -63,7 +64,7 @@ class ExportsPaymentTransactions implements FromQuery, WithHeadingRow, WithMappi $query = Transaction::query(); - $query->where('type', TransactionType::PAYMENT); + $query->where('type', TransactionType::PAYMENT)->where('payment_method', '!=', PaymentMethodType::WALLET); $query->whereIn('status', [ApprovalStatus::APPROVED, ApprovalStatus::COMPLETED]); if($start_date && $end_date) { diff --git a/app/Classes/Modules/Exports/Services/ExportsWalletTransactions.php b/app/Classes/Modules/Exports/Services/ExportsWalletTransactions.php new file mode 100644 index 00000000..626e8a9d --- /dev/null +++ b/app/Classes/Modules/Exports/Services/ExportsWalletTransactions.php @@ -0,0 +1,115 @@ +request = $request; + } + + public function headings(): array + { + return [ + 'DocNo', + 'DocDate', + 'DebtorCode', + 'Ref', + 'Note', + 'ShipInfo', + 'Numbering', + 'AccNo', + 'DetailDescription', + 'FutherDEscription', + 'YourPONo', + 'YourPODate', + 'ProjNo', + 'UOM', + 'Qty', + 'UnitPrice', + 'SubTotal' + ]; + } + + /** + * @return \Illuminate\Support\Collection|mixed + */ + public function query() + { + $start_date = $this->request->input('start_date', null); + if ($start_date) { + $start_date = Carbon::parse($this->request->input('start_date'))->format('Y-m-d'); + } + + $end_date = $this->request->input('end_date', null); + if ($end_date) { + $end_date = Carbon::parse($this->request->input('end_date'))->format('Y-m-d'); + } + + $query = Transaction::query(); + + $query->where('type', TransactionType::TOP_UP); + $query->whereIn('status', [ApprovalStatus::APPROVED, ApprovalStatus::COMPLETED]); + + if($start_date && $end_date) { + $query->whereBetween('created_at', [ + Carbon::parse($start_date)->format('Y-m-d 0:00:00'), + Carbon::parse($end_date)->format('Y-m-d 23:59:59') + ]); + } + elseif($start_date && !$end_date) { + $query->where('created_at', '>=', Carbon::parse($start_date)->format('Y-m-d 0:00:00')); + } + elseif(!$start_date && $end_date) { + $query->where('created_at', '<=', Carbon::parse($end_date)->format('Y-m-d 23:59:59')); + } + + return $query; + } + + /** + * @param Company $transaction + * + * @return array + */ + public function map($transaction): array + { + $company = $transaction->owner->owner; + + return [ + '<>', + $transaction->updated_at, + $company->debtor, + '', + '', + $company->reference, + '', + '500-0000', + 'BUYING CREDIT REF.' . $company->reference, + '', + '', + '', + '', + '', + 1, + $transaction->amount, + $transaction->amount, + ]; + } +} \ No newline at end of file diff --git a/app/Http/Controllers/Exports/ExportCustomersToExcelController.php b/app/Http/Controllers/Exports/ExportCustomersToExcelController.php index 3df1e004..2a22422f 100644 --- a/app/Http/Controllers/Exports/ExportCustomersToExcelController.php +++ b/app/Http/Controllers/Exports/ExportCustomersToExcelController.php @@ -8,6 +8,7 @@ use App\Classes\Modules\Exports\Services\ExportsTransactions; use App\Classes\Modules\Exports\Services\ExportsNullDebtors; use App\Classes\Modules\Exports\Services\ExportsPaymentTransactions; +use App\Classes\Modules\Exports\Services\ExportsWalletTransactions; use App\Models\User; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; @@ -15,28 +16,36 @@ use Maatwebsite\Excel\Excel; class ExportCustomersToExcelController { - public function export(ExportsCustomers $exportsCustomers, Request $request){ + + /** + * ExportCustomersToExcelController constructor. + * @param Request $request + */ + public function __construct(Request $request) + { $token = Auth::fromUser(User::find(1)); $request->headers->set('Authorization', 'Bearer '.$token); + } + + public function export(ExportsCustomers $exportsCustomers, Request $request){ return $exportsCustomers->download('customers.csv', Excel::CSV, ['Content-Type' => 'text/csv']); } public function transactions(ExportsTransactions $exportsTransactions, Request $request){ - $token = Auth::fromUser(User::find(1)); - $request->headers->set('Authorization', 'Bearer '.$token); return $exportsTransactions->download('transactions.csv', Excel::CSV, ['Content-Type' => 'text/csv']); } public function nullDebtor(ExportsNullDebtors $exportsNullDebtors, Request $request){ - $token = Auth::fromUser(User::find(1)); - $request->headers->set('Authorization', 'Bearer '.$token); return $exportsNullDebtors->download('nullDebtor.csv', Excel::CSV, ['Content-Type' => 'text/csv']); } public function paymentTransactions(Request $request){ - $token = Auth::fromUser(User::find(1)); - $request->headers->set('Authorization', 'Bearer '.$token); $exportsTransactions = new ExportsPaymentTransactions($request); return $exportsTransactions->download('payment-transactions.csv', Excel::CSV, ['Content-Type' => 'text/csv']); } + + public function walletTransactions(Request $request){ + $exportsTransactions = new ExportsWalletTransactions($request); + return $exportsTransactions->download('wallet-transactions.csv', Excel::CSV, ['Content-Type' => 'text/csv']); + } } \ No newline at end of file diff --git a/routes/web.php b/routes/web.php index 5540a129..4925958a 100644 --- a/routes/web.php +++ b/routes/web.php @@ -144,6 +144,7 @@ Route::get('/export/customers/f614e339d7058904a831aad742e24d55', 'Exports\Export Route::get('/export/transactions/f614e339d7058904a831aad742e24d55', 'Exports\ExportCustomersToExcelController@transactions'); Route::get('/export/null-debtor/f614e339d7058904a831aad742e24d55', 'Exports\ExportCustomersToExcelController@nullDebtor'); Route::get('/export/payment-transactions/f614e339d7058904a831aad742e24d55', 'Exports\ExportCustomersToExcelController@paymentTransactions'); +Route::get('/export/wallet-transactions/f614e339d7058904a831aad742e24d55', 'Exports\ExportCustomersToExcelController@walletTransactions'); Route::get('/import/update-debtor/f614e339d7058904a831aad742e24d55', 'Imports\ImportUpdateDebtorController@import');