From cd229c6a8f8fc9d84e65838a729b241bedd0c862 Mon Sep 17 00:00:00 2001 From: Omair Saleh Date: Wed, 5 Jul 2023 14:17:43 +0800 Subject: [PATCH 1/3] fix the invoice export format --- .../Modules/Exports/Services/ExportsPaymentTransactions.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Classes/Modules/Exports/Services/ExportsPaymentTransactions.php b/app/Classes/Modules/Exports/Services/ExportsPaymentTransactions.php index abc89a65..8b04dd16 100644 --- a/app/Classes/Modules/Exports/Services/ExportsPaymentTransactions.php +++ b/app/Classes/Modules/Exports/Services/ExportsPaymentTransactions.php @@ -32,7 +32,7 @@ class ExportsPaymentTransactions implements FromQuery, WithHeadings, WithHeading 'DocNo', 'DocDate', 'DebtorCode', - 'DebtorCode', + 'Ref', 'ShipInfo', 'AccNo', 'DetailDescription', From 45b78465da916f3c5944aa8481ca1bddd4c69cd9 Mon Sep 17 00:00:00 2001 From: edmondlang Date: Fri, 7 Jul 2023 00:59:48 +0800 Subject: [PATCH 2/3] add debtor code in company module resource for exchange accounting mapping purpose --- app/Http/Resources/CompanyModuleResource.php | 1 + 1 file changed, 1 insertion(+) diff --git a/app/Http/Resources/CompanyModuleResource.php b/app/Http/Resources/CompanyModuleResource.php index 87315c71..5ffc40f8 100644 --- a/app/Http/Resources/CompanyModuleResource.php +++ b/app/Http/Resources/CompanyModuleResource.php @@ -50,6 +50,7 @@ class CompanyModuleResource extends JsonResource 'warehouseCharges' => array_key_exists($this->id, $segmentConstant) ? $segmentConstant[$this->id] : null, 'connections' => $this->connections, 'contact' => new ContactResource ($this->when($this->has('contacts'), $this->contacts->first())), + 'debtor' => $this->company->debtor, ]; } From a6a239c489e8a5e2eb6fade04454760c5c55e2dc Mon Sep 17 00:00:00 2001 From: edmondlang Date: Sun, 9 Jul 2023 21:54:56 +0800 Subject: [PATCH 3/3] add public endpoint for exchange to get transaction data for accounting mapping --- ...istMappableTransactionWithDetailsLogic.php | 53 ++++++++++++++++ app/Console/Kernel.php | 2 +- ...ppableTransactionWithDetailsController.php | 20 +++++++ ...MappableTransactionWithDetailsResource.php | 60 +++++++++++++++++++ routes/apipub.php | 1 + 5 files changed, 135 insertions(+), 1 deletion(-) create mode 100644 app/Classes/Modules/Transactions/ControllersLogic/ListMappableTransactionWithDetailsLogic.php create mode 100644 app/Http/Controllers/Transactions/ListMappableTransactionWithDetailsController.php create mode 100644 app/Http/Resources/MappableTransactionWithDetailsResource.php diff --git a/app/Classes/Modules/Transactions/ControllersLogic/ListMappableTransactionWithDetailsLogic.php b/app/Classes/Modules/Transactions/ControllersLogic/ListMappableTransactionWithDetailsLogic.php new file mode 100644 index 00000000..b10950c2 --- /dev/null +++ b/app/Classes/Modules/Transactions/ControllersLogic/ListMappableTransactionWithDetailsLogic.php @@ -0,0 +1,53 @@ + 'Retrieved Transactions With Details', + 'message' => 'You have successfully retrieved a list of transactions' + ]; + } + + + /** @var ListsTransactions */ + private $listsTransactions; + + /** + * ListTransactionsLogic constructor. + * @param ListsTransactions $listsTransactions + */ + public function __construct(ListsTransactions $listsTransactions) + { + $this->listsTransactions = $listsTransactions; + } + + + + public function logic(Request $request) : JsonResponse + { + Log::info($request->input('filters')); + + $query = $this->listsTransactions->execute($this->listsTransactions->deserializeFilters($request->input('filters'))); + + return $this->collectionResponse(MappableTransactionWithDetailsResource::collection($query)); + + } + + + +} diff --git a/app/Console/Kernel.php b/app/Console/Kernel.php index 31424fd0..f97f1529 100644 --- a/app/Console/Kernel.php +++ b/app/Console/Kernel.php @@ -49,7 +49,7 @@ class Kernel extends ConsoleKernel ->appendOutputTo (storage_path().'/logs/auto_generate_invoice.log'); $schedule->command('billplz-failed-callback:fix') - ->dailyAt('00:00') + ->hourly() ->withoutOverlapping() ->appendOutputTo (storage_path().'/logs/fix_failed_callback_from_billplz.log'); } diff --git a/app/Http/Controllers/Transactions/ListMappableTransactionWithDetailsController.php b/app/Http/Controllers/Transactions/ListMappableTransactionWithDetailsController.php new file mode 100644 index 00000000..459be7a9 --- /dev/null +++ b/app/Http/Controllers/Transactions/ListMappableTransactionWithDetailsController.php @@ -0,0 +1,20 @@ +execute($request); + } +} diff --git a/app/Http/Resources/MappableTransactionWithDetailsResource.php b/app/Http/Resources/MappableTransactionWithDetailsResource.php new file mode 100644 index 00000000..8a6c3f8d --- /dev/null +++ b/app/Http/Resources/MappableTransactionWithDetailsResource.php @@ -0,0 +1,60 @@ +type === TransactionType::PAYMENT) { + $order = $this->owner->owner->owner; + $order_reference = $order->reference; + $company_module = $order->companyModule; + $debtor_code = $company_module->company->debtor; + + // } else { + } else if (in_array($this->type, [TransactionType::GROUP_PAYMENT, TransactionType::TOP_UP])) { + + // TransactionType::GROUP_PAYMENT, TransactionType::TOP_UP + $wallet = $this->owner; + $company_module = $this->owner->owner; + $connection = $company_module->inviters()->withPivot('invitee_reference')->first(); + $marking = $connection ? $connection->pivot->invitee_reference:''; + $bill_no = $this->bill_no; + } + else { + dd($this); + } + + return [ + 'id' => $this->id, + // 'owner_type' => $this->owner_type, + // 'owner_id' => $this->owner_type, + 'updated_at' => $this->updated_at, + 'debtor_code' => $debtor_code, + 'order_reference' => $order_reference, + 'bill_no' => $bill_no, + 'type' => $this->type, + 'marking' => $marking, + 'amount' => $this->amount, + ]; + } +} diff --git a/routes/apipub.php b/routes/apipub.php index 86809f05..aecebdb3 100644 --- a/routes/apipub.php +++ b/routes/apipub.php @@ -5,6 +5,7 @@ use Illuminate\Support\Facades\Route; Route::group(['middleware' => 'apipub', 'prefix' => 'v1', 'as' => 'apipub.'], function () { Route::group(['middleware' => 'token.check'], function () { Route::get('transactions/query', 'Transactions\ListTransactionsController@list')->name('transaction.list'); + Route::get('transactions/mappable/query/with-details', 'Transactions\ListMappableTransactionWithDetailsController@list')->name('transaction.mappable.list.with_details'); Route::get('transactions/mappable/query', 'Transactions\ListMappableTransactionsController@list')->name('transaction.mappable.list'); Route::get('groups/query', 'Transactions\ListGroupsController@list')->name('group.list'); });