mirror of
https://gitlab.com/CIEFWorldwideSdnBhd/shipping-portal.git
synced 2026-08-19 04:24:12 +00:00
delete paid group transaction
This commit is contained in:
@@ -0,0 +1,68 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Classes\Modules\Transactions\ControllersLogic;
|
||||||
|
|
||||||
|
use App\Classes\General\Abstracts\AbstractControllerLogic;
|
||||||
|
use App\Classes\Modules\Transactions\Services\FetchesGroup;
|
||||||
|
use App\Classes\Modules\Transactions\Services\DeletesTransaction;
|
||||||
|
use App\Classes\Modules\Transactions\Services\DeletesGroup;
|
||||||
|
use App\Classes\Modules\Transactions\Services\UpdatesTransactionStatus;
|
||||||
|
use App\Classes\ValueObjects\Constants\ApprovalStatus;
|
||||||
|
use App\Classes\ValueObjects\Constants\TransactionType;
|
||||||
|
use Illuminate\Http\JsonResponse;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use Illuminate\Support\Facades\Log;
|
||||||
|
|
||||||
|
class DeletePaidGroupLogic extends AbstractControllerLogic
|
||||||
|
{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
protected function notification(): array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'title' => 'Delete Paid Group Transaction',
|
||||||
|
'message' => 'You have successfully deleted this Group Transaction'
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @var FetchesGroup */
|
||||||
|
private $fetchesGroup;
|
||||||
|
|
||||||
|
/** @var DeletesGroup */
|
||||||
|
private $deletesGroup;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* DeleteGroupLogic constructor.
|
||||||
|
* @param updatesTransactionStatus $updatesTransactionStatus
|
||||||
|
* @param FetchesGroup $fetchesGroup
|
||||||
|
* @param DeletesTransaction $deletesTransaction
|
||||||
|
*/
|
||||||
|
public function __construct(FetchesGroup $fetchesGroup, DeletesGroup $deletesGroup)
|
||||||
|
{
|
||||||
|
$this->fetchesGroup = $fetchesGroup;
|
||||||
|
$this->deletesGroup = $deletesGroup;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param Request $request
|
||||||
|
* @return JsonResponse
|
||||||
|
* @throws \App\Classes\Exceptions\MalformedRequestException
|
||||||
|
*/
|
||||||
|
public function logic(Request $request): JsonResponse
|
||||||
|
{
|
||||||
|
$group = $this->fetchesGroup->execute(['id' => $request->route('id')]);
|
||||||
|
|
||||||
|
foreach ($group->groupTransactions as $groupTransaction) {
|
||||||
|
$invoice = $groupTransaction->transaction;
|
||||||
|
$paymentTransaction = $invoice->transactions()->where('type', TransactionType::PAYMENT)->whereIn('status', [ApprovalStatus::APPROVED, ApprovalStatus::COMPLETED])->first();
|
||||||
|
|
||||||
|
$paymentTransaction->delete();
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->deletesGroup->execute($group);
|
||||||
|
|
||||||
|
return $this->response([]);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
|
||||||
|
namespace App\Http\Controllers\Transactions;
|
||||||
|
|
||||||
|
use Illuminate\Http\JsonResponse;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use App\Classes\Modules\Transactions\ControllersLogic\DeletePaidGroupLogic;
|
||||||
|
|
||||||
|
class DeletePaidGroupController
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* @param Request $request
|
||||||
|
* @param DeleteGroupTransactionLogic $logic
|
||||||
|
* @return JsonResponse
|
||||||
|
*/
|
||||||
|
public function delete(Request $request, DeletePaidGroupLogic $logic) : JsonResponse {
|
||||||
|
return $logic->execute($request);
|
||||||
|
}
|
||||||
|
}
|
||||||
+19
-2
@@ -25,12 +25,12 @@
|
|||||||
<i class="fa fa-repeat fs-20 text-white"></i>
|
<i class="fa fa-repeat fs-20 text-white"></i>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-auto requestModal" v-if="item.status != 2 && item.status != 6" data-type="deleteGroupTransaction">
|
<div class="col-auto requestModal" v-if="item.status != 2 && item.status != 6" data-type="deleteGroupTransactionInProgress">
|
||||||
<div class="btn bg-grey no-border">
|
<div class="btn bg-grey no-border">
|
||||||
<i class="fa fa-times"></i>
|
<i class="fa fa-times"></i>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<modal-component class="animate__animated animate__fast animate__fadeIn" styleType="fill-in" type="deleteGroupTransaction">
|
<modal-component class="animate__animated animate__fast animate__fadeIn" styleType="fill-in" type="deleteGroupTransactionInProgress">
|
||||||
<general-confirmation-form-component
|
<general-confirmation-form-component
|
||||||
contentText="Are you sure you want to delete this Group Payment?"
|
contentText="Are you sure you want to delete this Group Payment?"
|
||||||
modalType="delete"
|
modalType="delete"
|
||||||
@@ -75,6 +75,23 @@
|
|||||||
<i class="fa fa-repeat fs-20 text-white"></i>
|
<i class="fa fa-repeat fs-20 text-white"></i>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="col-auto requestModal" v-if="item.status == 2 && $store.getters.isSuperAdmin" data-type="deletePaidGroupTransaction">
|
||||||
|
<div class="btn bg-grey no-border">
|
||||||
|
<i class="fa fa-times"></i>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<modal-component class="animate__animated animate__fast animate__fadeIn" styleType="fill-in" type="deletePaidGroupTransaction">
|
||||||
|
<general-confirmation-form-component
|
||||||
|
contentText="Are you sure you want to delete this Paid Group Payment?"
|
||||||
|
modalType="delete"
|
||||||
|
buttonText="Delete"
|
||||||
|
class="text-center"
|
||||||
|
:apiRoute="route('api.transaction.group.paidGroup.delete', item.id)"
|
||||||
|
apiMethod="delete"
|
||||||
|
:section="section"
|
||||||
|
>
|
||||||
|
</general-confirmation-form-component>
|
||||||
|
</modal-component>
|
||||||
<div class="col-auto" v-if="!['customerGroupPaymentExpiredInvoiceComponent'].includes(section)">
|
<div class="col-auto" v-if="!['customerGroupPaymentExpiredInvoiceComponent'].includes(section)">
|
||||||
<div class="btn bg-grey no-border" @click="expanded = !expanded">
|
<div class="btn bg-grey no-border" @click="expanded = !expanded">
|
||||||
<i class="fa" :class="{'fa-angle-down': !expanded, 'fa-angle-up': expanded}" ></i>
|
<i class="fa" :class="{'fa-angle-down': !expanded, 'fa-angle-up': expanded}" ></i>
|
||||||
|
|||||||
@@ -47,6 +47,7 @@ Route::group(['prefix' => 'transactions', 'namespace' => 'Transactions', 'as' =>
|
|||||||
Route::get('/list', 'ListGroupsController@list')->name('list');
|
Route::get('/list', 'ListGroupsController@list')->name('list');
|
||||||
// Route::get('/list', 'ListGroupsController@list')->middleware('storage.invoice.check.bygroup')->name('list');
|
// Route::get('/list', 'ListGroupsController@list')->middleware('storage.invoice.check.bygroup')->name('list');
|
||||||
Route::delete('/{id}/delete', 'DeleteGroupController@delete')->name('delete');
|
Route::delete('/{id}/delete', 'DeleteGroupController@delete')->name('delete');
|
||||||
|
Route::delete('/{id}/delete-paid', 'DeletePaidGroupController@delete')->name('paidGroup.delete');
|
||||||
Route::put('/{id}/update', 'UpdateGroupController@update')->name('update');
|
Route::put('/{id}/update', 'UpdateGroupController@update')->name('update');
|
||||||
// Route::post('/{id}/approve', 'CreateBulkPurchaseOrderDocumentController@aprove')->name('approve');
|
// Route::post('/{id}/approve', 'CreateBulkPurchaseOrderDocumentController@aprove')->name('approve');
|
||||||
// Route::post('/bulk/po', 'CreateBulkPurchaseOrderDocumentController@create')->name('bulk.po');
|
// Route::post('/bulk/po', 'CreateBulkPurchaseOrderDocumentController@create')->name('bulk.po');
|
||||||
|
|||||||
Reference in New Issue
Block a user