diff --git a/app/Classes/Modules/Banks/ControllersLogic/CreateBankLogic.php b/app/Classes/Modules/Banks/ControllersLogic/CreateBankLogic.php index ff5b16c2..53dd5caa 100644 --- a/app/Classes/Modules/Banks/ControllersLogic/CreateBankLogic.php +++ b/app/Classes/Modules/Banks/ControllersLogic/CreateBankLogic.php @@ -6,6 +6,7 @@ use App\Classes\General\Abstracts\AbstractControllerLogic; use App\Classes\Modules\Banks\Standards\Rules\CanCreateBank; use App\Classes\Modules\Banks\Services\CreatesBank; +use App\Classes\Modules\Banks\Services\CreatesBankLog; use App\Classes\Modules\Banks\DataTransferObjects\BankObject; use App\Http\Resources\BankResource; @@ -32,19 +33,24 @@ class CreateBankLogic extends AbstractControllerLogic /** @var CreatesBank */ private $createsBank; + /** @var CreatesBankLog */ + private $createsBankLog; /** * CreateBankLogic constructor. * @param CanCreateBank $canCreateBank * @param CreatesBank $createsBank + * @param CreatesBankLog $createsBankLog */ public function __construct( CanCreateBank $canCreateBank, - CreatesBank $createsBank + CreatesBank $createsBank, + CreatesBankLog $createsBankLog ) { $this->canCreateBank = $canCreateBank; $this->createsBank = $createsBank; + $this->createsBankLog = $createsBankLog; } /** @@ -56,7 +62,6 @@ class CreateBankLogic extends AbstractControllerLogic */ public function logic(Request $request) : JsonResponse { - $bank_object = new BankObject($request->input('company_id'), $request->input('account_type'), $request->input('bank_name'), $request->input('holder_name'), $request->input('account_no'), $request->input('bank_branch'), $request->input('swift'), $request->input('snap'), @@ -66,6 +71,8 @@ class CreateBankLogic extends AbstractControllerLogic $bank = $this->createsBank->execute($bank_object); + $bankLog = $this->createsBankLog->execute($bank); + return $this->resourceResponse(new BankResource($bank)); } diff --git a/app/Classes/Modules/Banks/ControllersLogic/DeleteBankLogic.php b/app/Classes/Modules/Banks/ControllersLogic/DeleteBankLogic.php index 24975379..3ecac081 100644 --- a/app/Classes/Modules/Banks/ControllersLogic/DeleteBankLogic.php +++ b/app/Classes/Modules/Banks/ControllersLogic/DeleteBankLogic.php @@ -7,6 +7,7 @@ use App\Classes\General\Abstracts\AbstractControllerLogic; use App\Classes\Modules\Banks\Services\FetchesBank; use App\Classes\Modules\Banks\Standards\Rules\CanDeleteBank; use App\Classes\Modules\Banks\Services\DeletesBank; +use App\Classes\Modules\Banks\Services\CreatesBankLog; use App\Http\Resources\BankResource; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; @@ -33,22 +34,27 @@ class DeleteBankLogic extends AbstractControllerLogic /** @var FetchesBank */ private $fetchesBank; + /** @var CreatesBankLog */ + private $createsBankLog; /** * DeleteBankLogic constructor. * @param CanDeleteBank $canDeleteBank * @param DeletesBank $deletesBank * @param FetchesBank $fetchesBank + * @param CreatesBankLog $createsBankLog */ public function __construct( CanDeleteBank $canDeleteBank, DeletesBank $deletesBank, - FetchesBank $fetchesBank + FetchesBank $fetchesBank, + CreatesBankLog $createsBankLog ) { $this->canDeleteBank = $canDeleteBank; $this->deletesBank = $deletesBank; $this->fetchesBank = $fetchesBank; + $this->createsBankLog = $createsBankLog; } /** @@ -69,7 +75,9 @@ class DeleteBankLogic extends AbstractControllerLogic throw new RequestValidationException('You can\'t delete bank account when it set to default'); } - $this->deletesBank->execute($bank); + $bank = $this->deletesBank->execute($bank); + + $bankLog = $this->createsBankLog->execute($bank); return $this->response([]); } diff --git a/app/Classes/Modules/Banks/ControllersLogic/UpdateBankLogic.php b/app/Classes/Modules/Banks/ControllersLogic/UpdateBankLogic.php index 9cb8fdd2..ed6ae159 100644 --- a/app/Classes/Modules/Banks/ControllersLogic/UpdateBankLogic.php +++ b/app/Classes/Modules/Banks/ControllersLogic/UpdateBankLogic.php @@ -10,6 +10,8 @@ use App\Classes\Modules\Banks\Services\FetchesBank; use App\Classes\Modules\Banks\Standards\Rules\CanUpdateBank; use App\Classes\Modules\Banks\Services\UpdatesBank; +use App\Classes\Modules\Banks\Services\CreatesBankLog; + use App\Classes\Modules\Banks\DataTransferObjects\BankObject; use ErrorException; @@ -39,21 +41,27 @@ class UpdateBankLogic extends AbstractControllerLogic /** @var FetchesBank */ private $fetchesBank; + /** @var CreatesBankLog */ + private $createsBankLog; + /** * UpdateBankLogic constructor. * @param CanUpdateBank $canUpdateBank * @param UpdatesBank $updatesBank * @param FetchesBank $fetchesBank + * @param CreatesBankLog $createsBankLog */ public function __construct( CanUpdateBank $canUpdateBank, UpdatesBank $updatesBank, - FetchesBank $fetchesBank + FetchesBank $fetchesBank, + CreatesBankLog $createsBankLog ) { $this->canUpdateBank = $canUpdateBank; $this->updatesBank = $updatesBank; $this->fetchesBank = $fetchesBank; + $this->createsBankLog = $createsBankLog; } /** @@ -84,6 +92,8 @@ class UpdateBankLogic extends AbstractControllerLogic $bank_query = $this->updatesBank->execute($bank, $bankObject); + $bankLog = $this->createsBankLog->execute($bank_query); + return $this->resourceResponse(new BankResource($bank_query)); } diff --git a/app/Classes/Modules/Banks/ControllersLogic/UpdateBankStatusLogic.php b/app/Classes/Modules/Banks/ControllersLogic/UpdateBankStatusLogic.php index 09ee2796..4959face 100644 --- a/app/Classes/Modules/Banks/ControllersLogic/UpdateBankStatusLogic.php +++ b/app/Classes/Modules/Banks/ControllersLogic/UpdateBankStatusLogic.php @@ -6,6 +6,7 @@ use App\Http\Resources\BankResource; use App\Classes\General\Abstracts\AbstractControllerLogic; use App\Classes\Modules\Banks\Services\FetchesBank; use App\Classes\Modules\Banks\Services\UpdatesBankStatus; +use App\Classes\Modules\Banks\Services\CreatesBankLog; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; @@ -28,18 +29,24 @@ class UpdateBankStatusLogic extends AbstractControllerLogic /** @var UpdatesBankStatus */ private $updatesBankStatus; + /** @var CreatesBankLog */ + private $createsBankLog; + /** * UpdateBankStatusLogic constructor. * @param FetchesBank $fetchesBank * @param UpdatesBankStatus $updatesBankStatus + * @param CreatesBankLog $createsBankLog */ public function __construct( FetchesBank $fetchesBank, - UpdatesBankStatus $updatesBankStatus + UpdatesBankStatus $updatesBankStatus, + CreatesBankLog $createsBankLog ) { $this->fetchesBank = $fetchesBank; $this->updatesBankStatus = $updatesBankStatus; + $this->createsBankLog = $createsBankLog; } /** @@ -55,6 +62,8 @@ class UpdateBankStatusLogic extends AbstractControllerLogic $bank_query = $this->updatesBankStatus->execute($bank, $request->input('status')); + $bankLog = $this->createsBankLog->execute($bank_query); + return $this->resourceResponse(new BankResource($bank_query)); } diff --git a/app/Classes/Modules/Banks/Services/CreatesBankLog.php b/app/Classes/Modules/Banks/Services/CreatesBankLog.php new file mode 100644 index 00000000..9d7877e1 --- /dev/null +++ b/app/Classes/Modules/Banks/Services/CreatesBankLog.php @@ -0,0 +1,32 @@ +bank_id = $object->id; + $model->company_id = $object->company_id; + $model->reference = $object->reference; + $model->bank_name = $object->bank_name; + $model->holder_name = $object->holder_name; + $model->account_no = $object->account_no; + $model->bank_branch = $object->bank_branch; + $model->swift = $object->swift; + $model->snap = $object->snap; + $model->type = $object->type; + $model->country_id = $object->country_id; + return $this->handler($model); + + } +} \ No newline at end of file diff --git a/app/Classes/Modules/Transactions/Processors/CreateCashBackTransactionProcessor.php b/app/Classes/Modules/Transactions/Processors/CreateCashBackTransactionProcessor.php index 6ad26563..ed6c2ab8 100644 --- a/app/Classes/Modules/Transactions/Processors/CreateCashBackTransactionProcessor.php +++ b/app/Classes/Modules/Transactions/Processors/CreateCashBackTransactionProcessor.php @@ -86,7 +86,6 @@ class CreateCashBackTransactionProcessor where('type', TransactionType::CASH_BACK) ->whereMonth('created_at', Carbon::now()->month)->sum('amount'); - if ( $current_total_cash_back < CashBack::MAX && $transaction->owner()->first()->transactions()->where('type', TransactionType::PURCHASE_ORDER)->count() > 0 @@ -125,7 +124,6 @@ class CreateCashBackTransactionProcessor $company = $transaction->owner()->first()->company; $credit = $this->creditWalletProcessor->execute($company, $transaction->type, $cash_back_transaction->amount, ''); - } } } diff --git a/app/Models/BankLog.php b/app/Models/BankLog.php new file mode 100644 index 00000000..a516d151 --- /dev/null +++ b/app/Models/BankLog.php @@ -0,0 +1,10 @@ +id(); + $table->foreignId('bank_id')->unsigned(); + $table->foreignId('company_id')->unsigned(); + $table->string('reference')->nullable(); + $table->string('bank_name'); + $table->string('holder_name'); + $table->string('account_no'); + $table->string('bank_branch')->nullable(); + $table->string('swift')->nullable(); + $table->string('snap')->nullable(); + $table->integer('type')->default(BankAccountType::EXTERNAL); + $table->integer('default')->default(false); + $table->integer('status')->default(ApprovalStatus::APPROVED); + $table->foreignId('country_id')->unsigned(); + $table->softDeletes(); + $table->timestamps(); + + $table->foreign('bank_id')->references('id')->on('banks'); + $table->foreign('country_id')->references('id')->on('countries'); + $table->foreign('company_id')->references('id')->on('companies'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('bank_logs'); + } +} diff --git a/resources/assets/vue/components/bookings/elements/BookingConfirmationComponent.vue b/resources/assets/vue/components/bookings/elements/BookingConfirmationComponent.vue index f08ea597..cf8b727e 100644 --- a/resources/assets/vue/components/bookings/elements/BookingConfirmationComponent.vue +++ b/resources/assets/vue/components/bookings/elements/BookingConfirmationComponent.vue @@ -148,6 +148,7 @@