From 69eccb2d9c3f3c7f0db1db79faf5224d2491231c Mon Sep 17 00:00:00 2001 From: omair saleh Date: Tue, 27 Apr 2021 14:56:53 +0800 Subject: [PATCH] fixing bugs --- .../Eloquent/Filters/PaymentApprovals.php | 20 +++++++ .../CalculatesBookingFloatingAmount.php | 23 ++----- .../Services/CalculatesBookingPaidAmount.php | 8 +-- .../CreatePurchaseOrderTransactionLogic.php | 5 -- .../CreateInvoiceTransactionProcessor.php | 17 +++--- app/Http/Resources/BookingResource.php | 6 +- app/Models/Transaction.php | 38 ++++++++++++ .../accounts/forms/LogOutFormComponent.vue | 2 +- .../address/elements/AddressListComponent.vue | 4 +- .../BookingPaymentQuotationComponent.vue | 2 +- .../PaymentVerificationFormComponent.vue | 1 - .../forms/PurchaseOrderFormComponent.vue | 60 +++++++++---------- .../BookingDetailsSectionComponent.vue | 15 ++--- .../elements/DocumentFileViewrComponent.vue | 2 +- .../general/elements/ModalComponent.vue | 2 +- .../views/pages/dashboards/admin.blade.php | 2 +- 16 files changed, 117 insertions(+), 90 deletions(-) create mode 100644 app/Classes/General/Eloquent/Filters/PaymentApprovals.php diff --git a/app/Classes/General/Eloquent/Filters/PaymentApprovals.php b/app/Classes/General/Eloquent/Filters/PaymentApprovals.php new file mode 100644 index 00000000..617eb67b --- /dev/null +++ b/app/Classes/General/Eloquent/Filters/PaymentApprovals.php @@ -0,0 +1,20 @@ +payments()->inComplete(); + } + +} \ No newline at end of file diff --git a/app/Classes/Modules/Bookings/Services/CalculatesBookingFloatingAmount.php b/app/Classes/Modules/Bookings/Services/CalculatesBookingFloatingAmount.php index 2f28c704..f66bf912 100644 --- a/app/Classes/Modules/Bookings/Services/CalculatesBookingFloatingAmount.php +++ b/app/Classes/Modules/Bookings/Services/CalculatesBookingFloatingAmount.php @@ -2,32 +2,17 @@ namespace App\Classes\Modules\Bookings\Services; - -use App\Classes\ValueObjects\Constants\ApprovalStatus; -use App\Classes\ValueObjects\Constants\TransactionType; use App\Models\Booking; -use Carbon\Carbon; class CalculatesBookingFloatingAmount { public function execute(Booking $booking, int $type){ return $type === 1 ? - $booking->transactions()->selectRaw('sum(amount - service_charge - tax) as sub_total') - ->where('type', TransactionType::PAYMENT) - ->where(function($query){ - $query->whereIn('status', [ApprovalStatus::PENDING_SUBMISSION]) - ->whereDate('expires_on', '>=', Carbon::now()); - })->orWhere(function($query){ - $query->whereIn('status', [ApprovalStatus::PENDING_VERIFICATION]); - })->get()->sum('sub_total') - : $booking->transactions()->where('type', TransactionType::PAYMENT) - ->where(function($query){ - $query->whereIn('status', [ApprovalStatus::PENDING_SUBMISSION]) - ->whereDate('expires_on', '>=', Carbon::now()); - })->orWhere(function($query){ - $query->whereIn('status', [ApprovalStatus::PENDING_VERIFICATION]); - })->get()->sum('original_amount'); + $booking->transactions()->payments()->inComplete() + ->selectRaw('sum(amount - service_charge - tax) as sub_total') + ->get()->sum('sub_total') + : $booking->transactions()->payments()->inComplete()->get()->sum('original_amount'); } } \ No newline at end of file diff --git a/app/Classes/Modules/Bookings/Services/CalculatesBookingPaidAmount.php b/app/Classes/Modules/Bookings/Services/CalculatesBookingPaidAmount.php index 1dd5a847..0f8af523 100644 --- a/app/Classes/Modules/Bookings/Services/CalculatesBookingPaidAmount.php +++ b/app/Classes/Modules/Bookings/Services/CalculatesBookingPaidAmount.php @@ -13,11 +13,9 @@ class CalculatesBookingPaidAmount public function execute(Booking $booking, int $type){ return $type === 1 ? - $booking->transactions()->selectRaw('sum(amount - service_charge - tax) as sub_total') - ->where('type', TransactionType::PAYMENT) - ->whereIn('status', [ApprovalStatus::APPROVED, ApprovalStatus::COMPLETED])->get()->sum('sub_total') : - $booking->transactions()->where('type', TransactionType::PAYMENT) - ->whereIn('status', [ApprovalStatus::APPROVED, ApprovalStatus::COMPLETED])->sum('original_amount'); + $booking->transactions()->payments()->complete() + ->selectRaw('sum(amount - service_charge - tax) as sub_total')->get()->sum('sub_total') : + $booking->transactions()->payments()->complete()->sum('original_amount'); } } \ No newline at end of file diff --git a/app/Classes/Modules/Transactions/ControllersLogic/CreatePurchaseOrderTransactionLogic.php b/app/Classes/Modules/Transactions/ControllersLogic/CreatePurchaseOrderTransactionLogic.php index 2ff128e3..e91ddc15 100644 --- a/app/Classes/Modules/Transactions/ControllersLogic/CreatePurchaseOrderTransactionLogic.php +++ b/app/Classes/Modules/Transactions/ControllersLogic/CreatePurchaseOrderTransactionLogic.php @@ -20,13 +20,8 @@ use App\Classes\ValueObjects\Constants\TransactionType; use App\Http\Resources\TransactionResource; use App\Models\Booking; use App\Models\Transaction; -use Barryvdh\DomPDF\PDF; -use Carbon\Carbon; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; -use Illuminate\Support\Facades\File; -use Illuminate\Support\Facades\Storage; -use Illuminate\Support\Str; class CreatePurchaseOrderTransactionLogic extends AbstractControllerLogic { diff --git a/app/Classes/Modules/Transactions/Processors/CreateInvoiceTransactionProcessor.php b/app/Classes/Modules/Transactions/Processors/CreateInvoiceTransactionProcessor.php index 4954558f..61b3a3f6 100644 --- a/app/Classes/Modules/Transactions/Processors/CreateInvoiceTransactionProcessor.php +++ b/app/Classes/Modules/Transactions/Processors/CreateInvoiceTransactionProcessor.php @@ -17,11 +17,10 @@ use App\Classes\Modules\Documents\DataTransferObjects\DocumentObject; use App\Classes\ValueObjects\Constants\ApprovalStatus; use App\Classes\ValueObjects\Constants\TransactionType; use App\Classes\ValueObjects\Constants\DocumentType; - use App\Models\Booking; -use Illuminate\Database\Eloquent\Model; +use Meneses\LaravelLaravelMpdf\Facades\LaravelLaravelMpdf; +use Meneses\LaravelMpdf\Facades\LaravelMpdf; -use MPDF; class CreateInvoiceTransactionProcessor { /** @var ListsTransactions */ @@ -73,10 +72,8 @@ class CreateInvoiceTransactionProcessor /** * @param Booking $booking - * @return Model - * @throws \App\Classes\Exceptions\AccessForbiddenException + * @return void * @throws \App\Classes\Exceptions\MalformedRequestException - * @throws \App\Classes\Exceptions\RequestValidationException */ public function execute(Booking $booking) { @@ -118,7 +115,7 @@ class CreateInvoiceTransactionProcessor $supplier = $this->fetchesCompany->execute(['id' => $transaction->receiver]); - $purchase_order_pdf = MPDF::loadView('pages.pdfs.purchase_order', ['transaction' => $po_order_transaction, 'supplier' => $supplier]); + $purchase_order_pdf = LaravelMpdf::loadView('pages.pdfs.purchase_order', ['transaction' => $po_order_transaction, 'supplier' => $supplier]); $document_object = new DocumentObject( DocumentType::PURCHASE_ORDER, [chunk_split('data:application/pdf;base64,'.base64_encode($purchase_order_pdf->output()))], @@ -129,7 +126,7 @@ class CreateInvoiceTransactionProcessor $document = $this->createsDocument->execute($po_order_transaction->booking, $document_object); $this->createsFile->execute($document, $document_object); - $deliver_order_pdf = MPDF::loadView('pages.pdfs.deliver_order', ['transaction' => $po_order_transaction, 'supplier' => $supplier]); + $deliver_order_pdf = LaravelMpdf::loadView('pages.pdfs.deliver_order', ['transaction' => $po_order_transaction, 'supplier' => $supplier]); $document_object = new DocumentObject( DocumentType::DELIVER_ORDER, [chunk_split('data:application/pdf;base64,'.base64_encode($deliver_order_pdf->output()))], @@ -140,7 +137,7 @@ class CreateInvoiceTransactionProcessor $document = $this->createsDocument->execute($po_order_transaction->booking, $document_object); $this->createsFile->execute($document, $document_object); - $payment_order_pdf = MPDF::loadView('pages.pdfs.payment_order', ['transaction' => $po_order_transaction, 'supplier' => $supplier]); + $payment_order_pdf = LaravelMpdf::loadView('pages.pdfs.payment_order', ['transaction' => $po_order_transaction, 'supplier' => $supplier]); $document_object = new DocumentObject( DocumentType::PAYMENT_ORDER, [chunk_split('data:application/pdf;base64,'.base64_encode($payment_order_pdf->output()))], @@ -151,7 +148,7 @@ class CreateInvoiceTransactionProcessor $document = $this->createsDocument->execute($po_order_transaction->booking, $document_object); $this->createsFile->execute($document, $document_object); - $supplier_order_pdf = MPDF::loadView('pages.pdfs.supplier_deliver_order', ['transaction' => $po_order_transaction, 'supplier' => $supplier]); + $supplier_order_pdf = LaravelMpdf::loadView('pages.pdfs.supplier_deliver_order', ['transaction' => $po_order_transaction, 'supplier' => $supplier]); $document_object = new DocumentObject( DocumentType::SUPPLIER_DELIVER_ORDER, [chunk_split('data:application/pdf;base64,'.base64_encode($supplier_order_pdf->output()))], diff --git a/app/Http/Resources/BookingResource.php b/app/Http/Resources/BookingResource.php index 4dc7d06a..d05d132b 100644 --- a/app/Http/Resources/BookingResource.php +++ b/app/Http/Resources/BookingResource.php @@ -44,11 +44,11 @@ class BookingResource extends JsonResource 'created_at' => Carbon::parse($this->created_at)->format('d-m-Y'), $this->mergeWhen($this->relationLoaded('transactions'), [ 'purchase_order' => new TransactionResource($this->transactions()->where('type', TransactionType::PURCHASE_ORDER)->first()), - 'payment_attempts' => TransactionResource::collection($this->transactions()->where('type', TransactionType::PAYMENT)->where('status', ApprovalStatus::PENDING_SUBMISSION)->whereDate('expires_on', '>=', Carbon::now())->get()), - 'expired_payment_attempts' => TransactionResource::collection($this->transactions()->where('type', TransactionType::PAYMENT)->where('status', ApprovalStatus::PENDING_SUBMISSION)->whereDate('expires_on', '<', Carbon::now())->get()), + 'payment_attempts' => TransactionResource::collection($this->transactions()->payments()->where('status', ApprovalStatus::PENDING_SUBMISSION)->whereDate('expires_on', '>=', Carbon::now())->get()), + 'expired_payment_attempts' => TransactionResource::collection($this->transactions()->payments()->where('status', ApprovalStatus::PENDING_SUBMISSION)->whereDate('expires_on', '<', Carbon::now())->get()), 'payment_history' => TransactionResource::collection($this->transactions()->where(function($query){ $query->where(function($query){ - $query->where('type', TransactionType::PAYMENT)->whereIn('status', [ApprovalStatus::APPROVED, ApprovalStatus::PENDING_VERIFICATION, ApprovalStatus::REJECTED]); + $query->payments()->whereIn('status', [ApprovalStatus::APPROVED, ApprovalStatus::PENDING_VERIFICATION, ApprovalStatus::REJECTED]); })->orWhere(function($query){ $query->where('type', TransactionType::BILL)->whereIn('status', [ApprovalStatus::APPROVED, ApprovalStatus::COMPLETED]); }); diff --git a/app/Models/Transaction.php b/app/Models/Transaction.php index 267831c3..cef04572 100644 --- a/app/Models/Transaction.php +++ b/app/Models/Transaction.php @@ -3,6 +3,10 @@ namespace App\Models; use App\Classes\General\Interfaces\Documentable; +use App\Classes\ValueObjects\Constants\ApprovalStatus; +use App\Classes\ValueObjects\Constants\TransactionType; +use Carbon\Carbon; +use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\Relations\BelongsTo; use Illuminate\Database\Eloquent\Relations\HasMany; use Illuminate\Database\Eloquent\Relations\MorphMany; @@ -60,4 +64,38 @@ class Transaction extends AbstractModel implements Documentable } return $this->original_amount; } + + /** + * @param Builder $query + * @return Builder + */ + public function scopePayments(Builder $query) + { + return $query->where('type', TransactionType::PAYMENT); + } + + /** + * @param Builder $query + * @return Builder + */ + public function scopeInComplete(Builder $query) + { + return $query->where(function(Builder $query){ + $query->where(function(Builder $query){ + $query->where('status', ApprovalStatus::PENDING_SUBMISSION) + ->whereDate('expires_on', '>=', Carbon::now()); + })->orWhere(function(Builder $query){ + $query->where('status', ApprovalStatus::PENDING_VERIFICATION); + }); + }); + } + + /** + * @param Builder $query + * @return Builder + */ + public function scopeComplete(Builder $query) + { + return $query->whereIn('status', [ApprovalStatus::APPROVED, ApprovalStatus::COMPLETED]); + } } diff --git a/resources/assets/vue/components/accounts/forms/LogOutFormComponent.vue b/resources/assets/vue/components/accounts/forms/LogOutFormComponent.vue index 9baa0aa6..b32d8912 100644 --- a/resources/assets/vue/components/accounts/forms/LogOutFormComponent.vue +++ b/resources/assets/vue/components/accounts/forms/LogOutFormComponent.vue @@ -26,7 +26,7 @@
-
Stay Here
+
Stay Here
Logout
diff --git a/resources/assets/vue/components/address/elements/AddressListComponent.vue b/resources/assets/vue/components/address/elements/AddressListComponent.vue index 792a84b7..c54efd95 100644 --- a/resources/assets/vue/components/address/elements/AddressListComponent.vue +++ b/resources/assets/vue/components/address/elements/AddressListComponent.vue @@ -41,7 +41,7 @@
-
{{selectedAddress.street_one}}, {{selectedAddress.street_two}}
+
{{selectedAddress.street_one}}{{selectedAddress.street_two ? ', ': ''}}{{selectedAddress.street_two}}
@@ -70,7 +70,7 @@
-
{{address.street_one}},{{address.street_two}}
+
{{address.street_one}}{{selectedAddress.street_two ? ', ': ''}}{{address.street_two}}
diff --git a/resources/assets/vue/components/bookings/forms/BookingPaymentQuotationComponent.vue b/resources/assets/vue/components/bookings/forms/BookingPaymentQuotationComponent.vue index 07d91337..71083583 100644 --- a/resources/assets/vue/components/bookings/forms/BookingPaymentQuotationComponent.vue +++ b/resources/assets/vue/components/bookings/forms/BookingPaymentQuotationComponent.vue @@ -66,7 +66,7 @@
{{this.data.fixed_currency.short_code}} {{(Math.round((this.data.outstanding_amount + Number.EPSILON) * 100) / 100).toFixed(2).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",")}}
-
+
diff --git a/resources/assets/vue/components/bookings/forms/PaymentVerificationFormComponent.vue b/resources/assets/vue/components/bookings/forms/PaymentVerificationFormComponent.vue index 96453d88..4e47728a 100644 --- a/resources/assets/vue/components/bookings/forms/PaymentVerificationFormComponent.vue +++ b/resources/assets/vue/components/bookings/forms/PaymentVerificationFormComponent.vue @@ -32,7 +32,6 @@
-
diff --git a/resources/assets/vue/components/bookings/forms/PurchaseOrderFormComponent.vue b/resources/assets/vue/components/bookings/forms/PurchaseOrderFormComponent.vue index 5baf548f..ce03bcdb 100644 --- a/resources/assets/vue/components/bookings/forms/PurchaseOrderFormComponent.vue +++ b/resources/assets/vue/components/bookings/forms/PurchaseOrderFormComponent.vue @@ -35,6 +35,36 @@
+
+
+
+
+
+
+
+ +
+
+ +
+
+ +
+
+ +
+
+
{{data.fixed_currency.short_code}}
+
+
+
{{(Math.round((productTotal + Number.EPSILON) * 100) / 100).toFixed(2) }}
+
+
+ +
+
+
+
@@ -65,36 +95,6 @@
-
-
-
-
-
{{products.length + 1}}
-
-
- -
-
- -
-
- -
-
- -
-
-
{{data.fixed_currency.short_code}}
-
-
-
{{(Math.round((productTotal + Number.EPSILON) * 100) / 100).toFixed(2) }}
-
-
- -
-
-
-
diff --git a/resources/assets/vue/components/bookings/sections/BookingDetailsSectionComponent.vue b/resources/assets/vue/components/bookings/sections/BookingDetailsSectionComponent.vue index 1ac43e86..b31670a3 100644 --- a/resources/assets/vue/components/bookings/sections/BookingDetailsSectionComponent.vue +++ b/resources/assets/vue/components/bookings/sections/BookingDetailsSectionComponent.vue @@ -86,19 +86,14 @@ {{booking.company.address.street_one}} {{booking.company.address.street_two}}, {{booking.company.address.district.name}}, {{booking.company.address.post_code}} {{booking.company.address.state.name}}, {{booking.company.address.country.name}}
-
- +
+
-
-
-
Edit
-
-
- - - + + + diff --git a/resources/assets/vue/components/general/elements/DocumentFileViewrComponent.vue b/resources/assets/vue/components/general/elements/DocumentFileViewrComponent.vue index 198a5d9d..30804cdd 100644 --- a/resources/assets/vue/components/general/elements/DocumentFileViewrComponent.vue +++ b/resources/assets/vue/components/general/elements/DocumentFileViewrComponent.vue @@ -4,7 +4,7 @@
- +
diff --git a/resources/assets/vue/components/general/elements/ModalComponent.vue b/resources/assets/vue/components/general/elements/ModalComponent.vue index de3cebe2..db0181fc 100644 --- a/resources/assets/vue/components/general/elements/ModalComponent.vue +++ b/resources/assets/vue/components/general/elements/ModalComponent.vue @@ -1,6 +1,6 @@