From 79e4555218bb6adac1c23bc5fc7276799cc6ac08 Mon Sep 17 00:00:00 2001 From: edmondlang Date: Sun, 22 Aug 2021 16:16:21 +0800 Subject: [PATCH 01/80] change email address ui --- .../elements/UserProfileComponent.vue | 6 ++- .../settings/forms/EditEmailFormComponent.vue | 44 +++++++++++++++++++ 2 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 resources/assets/vue/components/settings/forms/EditEmailFormComponent.vue diff --git a/resources/assets/vue/components/settings/elements/UserProfileComponent.vue b/resources/assets/vue/components/settings/elements/UserProfileComponent.vue index d2610144..05dff8bd 100644 --- a/resources/assets/vue/components/settings/elements/UserProfileComponent.vue +++ b/resources/assets/vue/components/settings/elements/UserProfileComponent.vue @@ -37,7 +37,7 @@
-
+
Request Email Change
@@ -50,6 +50,10 @@ + + + +
diff --git a/resources/assets/vue/components/settings/forms/EditEmailFormComponent.vue b/resources/assets/vue/components/settings/forms/EditEmailFormComponent.vue new file mode 100644 index 00000000..13143db0 --- /dev/null +++ b/resources/assets/vue/components/settings/forms/EditEmailFormComponent.vue @@ -0,0 +1,44 @@ + + \ No newline at end of file From 508e71aeb4a0374ed14423238c0ca62cea31840c Mon Sep 17 00:00:00 2001 From: omair saleh Date: Tue, 24 Aug 2021 13:03:05 +0800 Subject: [PATCH 02/80] hide announcement from user profile --- resources/views/pages/settings.blade.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/views/pages/settings.blade.php b/resources/views/pages/settings.blade.php index 8fb76ae2..9157dbc5 100644 --- a/resources/views/pages/settings.blade.php +++ b/resources/views/pages/settings.blade.php @@ -570,7 +570,7 @@
-
+
From ca1936d4ebcd5ed684cdffaf96b50acc3053245f Mon Sep 17 00:00:00 2001 From: edmondlang Date: Tue, 24 Aug 2021 13:05:55 +0800 Subject: [PATCH 03/80] change email address ui, add input column for email --- .../settings/forms/EditEmailFormComponent.vue | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/resources/assets/vue/components/settings/forms/EditEmailFormComponent.vue b/resources/assets/vue/components/settings/forms/EditEmailFormComponent.vue index 13143db0..68ef720a 100644 --- a/resources/assets/vue/components/settings/forms/EditEmailFormComponent.vue +++ b/resources/assets/vue/components/settings/forms/EditEmailFormComponent.vue @@ -5,8 +5,15 @@
-

Edit Email

-

An edit email link will send to your email account

+

Edit Email Address

+
+
+
+
+
Email Address
+ + +
@@ -19,7 +26,7 @@
Cancel
-
Confirm
+
Update
@@ -28,17 +35,17 @@
\ No newline at end of file From 165d80537e6546058265d3cf150eec51bedd2ecb Mon Sep 17 00:00:00 2001 From: fuadzaidan7 Date: Mon, 6 Sep 2021 13:34:14 +0800 Subject: [PATCH 04/80] Signed-off-by: fuadzaidan7 --- .../CalculatesBookingCurrencyAverageRate.php | 16 +++++-- .../views/pages/pdfs/deliver_order.blade.php | 40 +++++++++++++----- resources/views/pages/pdfs/invoice.blade.php | 40 +++++++++++++----- .../views/pages/pdfs/purchase_order.blade.php | 42 ++++++++++++++----- .../pdfs/supplier_deliver_order.blade.php | 38 +++++++++++++---- 5 files changed, 132 insertions(+), 44 deletions(-) diff --git a/app/Classes/Modules/Bookings/Services/CalculatesBookingCurrencyAverageRate.php b/app/Classes/Modules/Bookings/Services/CalculatesBookingCurrencyAverageRate.php index e00ab114..235d897a 100644 --- a/app/Classes/Modules/Bookings/Services/CalculatesBookingCurrencyAverageRate.php +++ b/app/Classes/Modules/Bookings/Services/CalculatesBookingCurrencyAverageRate.php @@ -12,16 +12,24 @@ class CalculatesBookingCurrencyAverageRate public function execute(Booking $booking, $type){ if ($type == TransactionType::PAYMENT) { - return $booking->transactions() + + $amount_without_service = $booking->transactions() ->where('type', TransactionType::PAYMENT) ->whereIn('status', [ApprovalStatus::APPROVED, ApprovalStatus::COMPLETED]) - ->avg('currency_rate'); + ->selectRaw('ROUND(amount,2)-ROUND(service_charge,2) AS amount_without_service') + ->get()->sum('amount_without_service'); + + return number_format($booking->fix_amount/$amount_without_service,2); } else if ($type == TransactionType::BILL) { - return $booking->transactions() + + $amount_without_service = $booking->transactions() ->where('type', TransactionType::BILL) ->whereIn('status', [ApprovalStatus::APPROVED, ApprovalStatus::COMPLETED]) - ->avg('currency_rate'); + ->selectRaw('ROUND(amount,2)-ROUND(service_charge,2) AS amount_without_service') + ->get()->sum('amount_without_service'); + + return number_format($booking->fix_amount/$amount_without_service,2); } } diff --git a/resources/views/pages/pdfs/deliver_order.blade.php b/resources/views/pages/pdfs/deliver_order.blade.php index c45d27f7..e7256b1f 100644 --- a/resources/views/pages/pdfs/deliver_order.blade.php +++ b/resources/views/pages/pdfs/deliver_order.blade.php @@ -77,18 +77,22 @@ Stock Code Description Quantity - Unit Price (RM) + Unit Price (RM) Total Amount
(RM) + @php + $subtotal = 0; + @endphp + @foreach ($po_order_transaction->transactionDetails as $key => $transaction_detail) {{ $key + 1 }} {{ $transaction_detail->product_code }} {{ $transaction_detail->product_name }} {{ $transaction_detail->quantity }} - + @if($invoice_transaction->booking()->first()->fix_currency_id !== 1) {{ number_format( (1/$invoice_transaction->currency_rate) * $transaction_detail->price, 2) }} @else @@ -97,9 +101,18 @@ @if($invoice_transaction->booking()->first()->fix_currency_id !== 1) - {{ number_format( (1/$invoice_transaction->currency_rate) * $transaction_detail->amount, 2) }} - @else - {{ number_format($transaction_detail->amount, 2) }} + + {{ number_format((float)number_format( (1/$invoice_transaction->currency_rate) * $transaction_detail->price, 2,'.','')*$transaction_detail->quantity,2) }} + + @php + $subtotal += number_format((float)number_format( (1/$invoice_transaction->currency_rate) * $transaction_detail->price, 2,'.','')*$transaction_detail->quantity,2,'.',''); + @endphp + @else + {{ number_format((float)number_format($transaction_detail->price, 2,'.','')*$transaction_detail->quantity,2) }} + + @php + $subtotal += number_format((float)number_format($transaction_detail->price, 2,'.','')*$transaction_detail->quantity,2,'.',''); + @endphp @endif @@ -110,11 +123,7 @@ Subtotal - @if($invoice_transaction->booking()->first()->fix_currency_id !== 1) - {{ number_format( (1/$invoice_transaction->currency_rate) * $invoice_transaction->amount, 2) }} - @else - {{ number_format($invoice_transaction->amount, 2) }} - @endif + {{ number_format($subtotal, 2) }} @@ -124,6 +133,17 @@ {{ number_format($invoice_transaction->service_charge, 2) }} + + + Adjustment + + @if($invoice_transaction->booking()->first()->fix_currency_id !== 1) + {{ number_format((float)number_format( (1/$invoice_transaction->currency_rate) * $invoice_transaction->amount, 2,'.','') - (float)number_format($subtotal, 2,'.',''),2) }} + @else + {{ number_format((float)number_format($invoice_transaction->amount, 2,'.','') - (float)number_format($subtotal, 2,'.',''),2) }} + @endif + + @if($invoice_transaction->tax > 0) diff --git a/resources/views/pages/pdfs/invoice.blade.php b/resources/views/pages/pdfs/invoice.blade.php index 3bad3ac0..7d6e88ca 100644 --- a/resources/views/pages/pdfs/invoice.blade.php +++ b/resources/views/pages/pdfs/invoice.blade.php @@ -76,18 +76,22 @@ Stock Code Description Quantity - Unit Price (RM) + Unit Price (RM) Total Amount
(RM) + @php + $subtotal = 0; + @endphp + @foreach ($po_order_transaction->transactionDetails as $key => $transaction_detail) {{ $key + 1 }} {{ $transaction_detail->product_code }} {{ $transaction_detail->product_name }} {{ $transaction_detail->quantity }} - + @if($invoice_transaction->booking()->first()->fix_currency_id !== 1) {{ number_format( (1/$invoice_transaction->currency_rate) * $transaction_detail->price, 2) }} @else @@ -96,9 +100,18 @@ @if($invoice_transaction->booking()->first()->fix_currency_id !== 1) - {{ number_format( (1/$invoice_transaction->currency_rate) * $transaction_detail->amount, 2) }} - @else - {{ number_format($transaction_detail->amount, 2) }} + + {{ number_format((float)number_format( (1/$invoice_transaction->currency_rate) * $transaction_detail->price, 2,'.','')*$transaction_detail->quantity,2) }} + + @php + $subtotal += number_format((float)number_format( (1/$invoice_transaction->currency_rate) * $transaction_detail->price, 2,'.','')*$transaction_detail->quantity,2,'.',''); + @endphp + @else + {{ number_format((float)number_format($transaction_detail->price, 2,'.','')*$transaction_detail->quantity,2) }} + + @php + $subtotal += number_format((float)number_format($transaction_detail->price, 2,'.','')*$transaction_detail->quantity,2,'.',''); + @endphp @endif @@ -109,11 +122,7 @@ Subtotal - @if($invoice_transaction->booking()->first()->fix_currency_id !== 1) - {{ number_format( (1/$invoice_transaction->currency_rate) * $invoice_transaction->amount, 2) }} - @else - {{ number_format($invoice_transaction->amount, 2) }} - @endif + {{ number_format($subtotal, 2) }} @@ -123,6 +132,17 @@ {{ number_format($invoice_transaction->service_charge, 2) }} + + + Adjustment + + @if($invoice_transaction->booking()->first()->fix_currency_id !== 1) + {{ number_format((float)number_format( (1/$invoice_transaction->currency_rate) * $invoice_transaction->amount, 2,'.','') - (float)number_format($subtotal, 2,'.',''),2) }} + @else + {{ number_format((float)number_format($invoice_transaction->amount, 2,'.','') - (float)number_format($subtotal, 2,'.',''),2) }} + @endif + + @if($invoice_transaction->tax > 0) diff --git a/resources/views/pages/pdfs/purchase_order.blade.php b/resources/views/pages/pdfs/purchase_order.blade.php index 2d1327cd..c2c17481 100644 --- a/resources/views/pages/pdfs/purchase_order.blade.php +++ b/resources/views/pages/pdfs/purchase_order.blade.php @@ -81,18 +81,22 @@ Stock Code Description Quantity - Unit Price (RM) + Unit Price (RM) Total Amount
(RM) + @php + $subtotal = 0; + @endphp + @foreach ($po_order_transaction->transactionDetails as $key => $transaction_detail) {{ $key + 1 }} {{ $transaction_detail->product_code }} {{ $transaction_detail->product_name }} {{ $transaction_detail->quantity }} - + @if($invoice_transaction->booking()->first()->fix_currency_id !== 1) {{ number_format( (1/$invoice_transaction->currency_rate) * $transaction_detail->price, 2) }} @else @@ -101,9 +105,18 @@ @if($invoice_transaction->booking()->first()->fix_currency_id !== 1) - {{ number_format( (1/$invoice_transaction->currency_rate) * $transaction_detail->amount, 2) }} - @else - {{ number_format($transaction_detail->amount, 2) }} + + {{ number_format((float)number_format( (1/$invoice_transaction->currency_rate) * $transaction_detail->price, 2,'.','')*$transaction_detail->quantity,2) }} + + @php + $subtotal += number_format((float)number_format( (1/$invoice_transaction->currency_rate) * $transaction_detail->price, 2,'.','')*$transaction_detail->quantity,2,'.',''); + @endphp + @else + {{ number_format((float)number_format($transaction_detail->price, 2,'.','')*$transaction_detail->quantity,2) }} + + @php + $subtotal += number_format((float)number_format($transaction_detail->price, 2,'.','')*$transaction_detail->quantity,2,'.',''); + @endphp @endif @@ -112,13 +125,9 @@ - Subtotal + Subtotal - @if($invoice_transaction->booking()->first()->fix_currency_id !== 1) - {{ number_format( (1/$invoice_transaction->currency_rate) * $invoice_transaction->amount, 2) }} - @else - {{ number_format($invoice_transaction->amount, 2) }} - @endif + {{ number_format($subtotal, 2) }} @@ -128,6 +137,17 @@ {{ number_format($invoice_transaction->service_charge, 2) }} + + + Adjustment + + @if($invoice_transaction->booking()->first()->fix_currency_id !== 1) + {{ number_format((float)number_format( (1/$invoice_transaction->currency_rate) * $invoice_transaction->amount, 2,'.','') - (float)number_format($subtotal, 2,'.',''),2) }} + @else + {{ number_format((float)number_format($invoice_transaction->amount, 2,'.','') - (float)number_format($subtotal, 2,'.',''),2) }} + @endif + + @if($invoice_transaction->tax > 0) diff --git a/resources/views/pages/pdfs/supplier_deliver_order.blade.php b/resources/views/pages/pdfs/supplier_deliver_order.blade.php index 5b736e39..57b4ed0a 100644 --- a/resources/views/pages/pdfs/supplier_deliver_order.blade.php +++ b/resources/views/pages/pdfs/supplier_deliver_order.blade.php @@ -66,18 +66,22 @@ Stock Code Description Quantity - Unit Price (RM) + Unit Price (RM) Total Amount
(RM) + @php + $subtotal = 0; + @endphp + @foreach ($po_order_transaction->transactionDetails as $key => $transaction_detail) {{ $key + 1 }} {{ $transaction_detail->product_code }} {{ $transaction_detail->product_name }} {{ $transaction_detail->quantity }} - + @if($supplier_deliver_order_transaction->booking()->first()->fix_currency_id !== 1) {{ number_format( (1/$supplier_deliver_order_transaction->currency_rate) * $transaction_detail->price, 2) }} @else @@ -86,9 +90,18 @@ @if($supplier_deliver_order_transaction->booking()->first()->fix_currency_id !== 1) - {{ number_format( (1/$supplier_deliver_order_transaction->currency_rate) * $transaction_detail->amount, 2) }} - @else - {{ number_format($transaction_detail->amount, 2) }} + + {{ number_format((float)number_format( (1/$supplier_deliver_order_transaction->currency_rate) * $transaction_detail->price, 2,'.','')*$transaction_detail->quantity,2) }} + + @php + $subtotal += number_format((float)number_format( (1/$supplier_deliver_order_transaction->currency_rate) * $transaction_detail->price, 2,'.','')*$transaction_detail->quantity,2,'.',''); + @endphp + @else + {{ number_format((float)number_format($transaction_detail->price, 2,'.','')*$transaction_detail->quantity,2) }} + + @php + $subtotal += number_format((float)number_format($transaction_detail->price, 2,'.','')*$transaction_detail->quantity,2,'.',''); + @endphp @endif @@ -99,10 +112,17 @@ Subtotal - @if($supplier_deliver_order_transaction->booking()->first()->fix_currency_id !== 1) - {{ number_format( (1/$supplier_deliver_order_transaction->currency_rate) * $supplier_deliver_order_transaction->amount, 2) }} - @else - {{ number_format($supplier_deliver_order_transaction->amount, 2) }} + {{ number_format($subtotal, 2) }} + + + + + Adjustment + + @if($supplier_deliver_order_transaction->booking()->first()->fix_currency_id !== 1) + {{ number_format((float)number_format( (1/$supplier_deliver_order_transaction->currency_rate) * $supplier_deliver_order_transaction->amount, 2,'.','') - (float)number_format($subtotal, 2,'.',''),2) }} + @else + {{ number_format((float)number_format($supplier_deliver_order_transaction->amount, 2,'.','') - (float)number_format($subtotal, 2,'.',''),2) }} @endif From af083bb7076b6410d33c4f2ddfea1bae02240ddb Mon Sep 17 00:00:00 2001 From: omair saleh Date: Mon, 6 Sep 2021 17:24:21 +0800 Subject: [PATCH 05/80] debug invoice --- .../Processors/CreateInvoiceTransactionProcessor.php | 1 + 1 file changed, 1 insertion(+) diff --git a/app/Classes/Modules/Transactions/Processors/CreateInvoiceTransactionProcessor.php b/app/Classes/Modules/Transactions/Processors/CreateInvoiceTransactionProcessor.php index ff76d197..513394a3 100644 --- a/app/Classes/Modules/Transactions/Processors/CreateInvoiceTransactionProcessor.php +++ b/app/Classes/Modules/Transactions/Processors/CreateInvoiceTransactionProcessor.php @@ -170,6 +170,7 @@ class CreateInvoiceTransactionProcessor $invoice_transaction = $this->createsTransaction->execute($po_order_transaction->booking, $transaction_object); $supplier = $this->fetchesCompany->execute(['id' => $transaction->receiver]); + dd($supplier); $purchase_order_pdf = LaravelMpdf::loadView('pages.pdfs.purchase_order', ['invoice_transaction' => $invoice_transaction, 'po_order_transaction' => $po_order_transaction, 'supplier' => $supplier]); $document_object = new DocumentObject( From 6750dfefdefa0211a8617ab9482663a48b6ca9d3 Mon Sep 17 00:00:00 2001 From: omair saleh Date: Mon, 6 Sep 2021 17:26:01 +0800 Subject: [PATCH 06/80] debug invoice --- .../Processors/CreateInvoiceTransactionProcessor.php | 1 + 1 file changed, 1 insertion(+) diff --git a/app/Classes/Modules/Transactions/Processors/CreateInvoiceTransactionProcessor.php b/app/Classes/Modules/Transactions/Processors/CreateInvoiceTransactionProcessor.php index 513394a3..a79cbd5d 100644 --- a/app/Classes/Modules/Transactions/Processors/CreateInvoiceTransactionProcessor.php +++ b/app/Classes/Modules/Transactions/Processors/CreateInvoiceTransactionProcessor.php @@ -170,6 +170,7 @@ class CreateInvoiceTransactionProcessor $invoice_transaction = $this->createsTransaction->execute($po_order_transaction->booking, $transaction_object); $supplier = $this->fetchesCompany->execute(['id' => $transaction->receiver]); + dd($supplier); $purchase_order_pdf = LaravelMpdf::loadView('pages.pdfs.purchase_order', ['invoice_transaction' => $invoice_transaction, 'po_order_transaction' => $po_order_transaction, 'supplier' => $supplier]); From c28c5fc5459333dcc6bc2af9979d15816af108f2 Mon Sep 17 00:00:00 2001 From: omair saleh Date: Mon, 6 Sep 2021 17:29:35 +0800 Subject: [PATCH 07/80] debug invoice --- .../Processors/CreateInvoiceTransactionProcessor.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/app/Classes/Modules/Transactions/Processors/CreateInvoiceTransactionProcessor.php b/app/Classes/Modules/Transactions/Processors/CreateInvoiceTransactionProcessor.php index a79cbd5d..8ed82f2c 100644 --- a/app/Classes/Modules/Transactions/Processors/CreateInvoiceTransactionProcessor.php +++ b/app/Classes/Modules/Transactions/Processors/CreateInvoiceTransactionProcessor.php @@ -167,12 +167,11 @@ class CreateInvoiceTransactionProcessor null, ApprovalStatus::APPROVED ); + $invoice_transaction = $this->createsTransaction->execute($po_order_transaction->booking, $transaction_object); $supplier = $this->fetchesCompany->execute(['id' => $transaction->receiver]); - dd($supplier); - $purchase_order_pdf = LaravelMpdf::loadView('pages.pdfs.purchase_order', ['invoice_transaction' => $invoice_transaction, 'po_order_transaction' => $po_order_transaction, 'supplier' => $supplier]); $document_object = new DocumentObject( DocumentType::PURCHASE_ORDER, From 8ce3bf85d80cd9a1e4d6a0b787324a2792c2e4c1 Mon Sep 17 00:00:00 2001 From: omair saleh Date: Mon, 6 Sep 2021 17:30:29 +0800 Subject: [PATCH 08/80] debug invoice --- .../Processors/CreateInvoiceTransactionProcessor.php | 1 - 1 file changed, 1 deletion(-) diff --git a/app/Classes/Modules/Transactions/Processors/CreateInvoiceTransactionProcessor.php b/app/Classes/Modules/Transactions/Processors/CreateInvoiceTransactionProcessor.php index 8ed82f2c..ff76d197 100644 --- a/app/Classes/Modules/Transactions/Processors/CreateInvoiceTransactionProcessor.php +++ b/app/Classes/Modules/Transactions/Processors/CreateInvoiceTransactionProcessor.php @@ -167,7 +167,6 @@ class CreateInvoiceTransactionProcessor null, ApprovalStatus::APPROVED ); - $invoice_transaction = $this->createsTransaction->execute($po_order_transaction->booking, $transaction_object); $supplier = $this->fetchesCompany->execute(['id' => $transaction->receiver]); From ce20fd0d6aa71982f79c47c2c7c922902881ca33 Mon Sep 17 00:00:00 2001 From: omair saleh Date: Mon, 6 Sep 2021 17:33:36 +0800 Subject: [PATCH 09/80] debug invoice --- .../Processors/CreateInvoiceTransactionProcessor.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Classes/Modules/Transactions/Processors/CreateInvoiceTransactionProcessor.php b/app/Classes/Modules/Transactions/Processors/CreateInvoiceTransactionProcessor.php index ff76d197..790610a5 100644 --- a/app/Classes/Modules/Transactions/Processors/CreateInvoiceTransactionProcessor.php +++ b/app/Classes/Modules/Transactions/Processors/CreateInvoiceTransactionProcessor.php @@ -170,7 +170,7 @@ class CreateInvoiceTransactionProcessor $invoice_transaction = $this->createsTransaction->execute($po_order_transaction->booking, $transaction_object); $supplier = $this->fetchesCompany->execute(['id' => $transaction->receiver]); - +dd($supplier); $purchase_order_pdf = LaravelMpdf::loadView('pages.pdfs.purchase_order', ['invoice_transaction' => $invoice_transaction, 'po_order_transaction' => $po_order_transaction, 'supplier' => $supplier]); $document_object = new DocumentObject( DocumentType::PURCHASE_ORDER, From 007ae648e6f943a2e09645b1fbc77f047ec29547 Mon Sep 17 00:00:00 2001 From: omair saleh Date: Mon, 6 Sep 2021 17:34:30 +0800 Subject: [PATCH 10/80] debug invoice --- .../Processors/CreateInvoiceTransactionProcessor.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Classes/Modules/Transactions/Processors/CreateInvoiceTransactionProcessor.php b/app/Classes/Modules/Transactions/Processors/CreateInvoiceTransactionProcessor.php index 790610a5..d4d9e4ad 100644 --- a/app/Classes/Modules/Transactions/Processors/CreateInvoiceTransactionProcessor.php +++ b/app/Classes/Modules/Transactions/Processors/CreateInvoiceTransactionProcessor.php @@ -170,7 +170,7 @@ class CreateInvoiceTransactionProcessor $invoice_transaction = $this->createsTransaction->execute($po_order_transaction->booking, $transaction_object); $supplier = $this->fetchesCompany->execute(['id' => $transaction->receiver]); -dd($supplier); +dd($supplier->addresses()->first()); $purchase_order_pdf = LaravelMpdf::loadView('pages.pdfs.purchase_order', ['invoice_transaction' => $invoice_transaction, 'po_order_transaction' => $po_order_transaction, 'supplier' => $supplier]); $document_object = new DocumentObject( DocumentType::PURCHASE_ORDER, From fa6aab7df014f3c4f2859398f2203593a011fc1a Mon Sep 17 00:00:00 2001 From: omair saleh Date: Mon, 6 Sep 2021 17:37:20 +0800 Subject: [PATCH 11/80] debug invoice --- .../Processors/CreateInvoiceTransactionProcessor.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Classes/Modules/Transactions/Processors/CreateInvoiceTransactionProcessor.php b/app/Classes/Modules/Transactions/Processors/CreateInvoiceTransactionProcessor.php index d4d9e4ad..c450a523 100644 --- a/app/Classes/Modules/Transactions/Processors/CreateInvoiceTransactionProcessor.php +++ b/app/Classes/Modules/Transactions/Processors/CreateInvoiceTransactionProcessor.php @@ -170,7 +170,7 @@ class CreateInvoiceTransactionProcessor $invoice_transaction = $this->createsTransaction->execute($po_order_transaction->booking, $transaction_object); $supplier = $this->fetchesCompany->execute(['id' => $transaction->receiver]); -dd($supplier->addresses()->first()); +dd($transaction->receiver); $purchase_order_pdf = LaravelMpdf::loadView('pages.pdfs.purchase_order', ['invoice_transaction' => $invoice_transaction, 'po_order_transaction' => $po_order_transaction, 'supplier' => $supplier]); $document_object = new DocumentObject( DocumentType::PURCHASE_ORDER, From da35d80fbe822d9610972101c90621d4caf2a083 Mon Sep 17 00:00:00 2001 From: omair saleh Date: Mon, 6 Sep 2021 17:41:24 +0800 Subject: [PATCH 12/80] debug invoice --- .../Processors/CreateInvoiceTransactionProcessor.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Classes/Modules/Transactions/Processors/CreateInvoiceTransactionProcessor.php b/app/Classes/Modules/Transactions/Processors/CreateInvoiceTransactionProcessor.php index c450a523..ff76d197 100644 --- a/app/Classes/Modules/Transactions/Processors/CreateInvoiceTransactionProcessor.php +++ b/app/Classes/Modules/Transactions/Processors/CreateInvoiceTransactionProcessor.php @@ -170,7 +170,7 @@ class CreateInvoiceTransactionProcessor $invoice_transaction = $this->createsTransaction->execute($po_order_transaction->booking, $transaction_object); $supplier = $this->fetchesCompany->execute(['id' => $transaction->receiver]); -dd($transaction->receiver); + $purchase_order_pdf = LaravelMpdf::loadView('pages.pdfs.purchase_order', ['invoice_transaction' => $invoice_transaction, 'po_order_transaction' => $po_order_transaction, 'supplier' => $supplier]); $document_object = new DocumentObject( DocumentType::PURCHASE_ORDER, From f68fd19b7f1058ab1aadeb38de046d933fae1d40 Mon Sep 17 00:00:00 2001 From: glovetleong Date: Wed, 8 Sep 2021 17:38:24 +0800 Subject: [PATCH 13/80] -created data on OP -fix payment proof file select bug --- .../bookings/elements/PaymentProofComponent.vue | 14 ++++++++++++-- resources/views/pages/pdfs/deliver_order.blade.php | 2 +- resources/views/pages/pdfs/invoice.blade.php | 2 +- .../pages/pdfs/supplier_deliver_order.blade.php | 2 +- 4 files changed, 15 insertions(+), 5 deletions(-) diff --git a/resources/assets/vue/components/bookings/elements/PaymentProofComponent.vue b/resources/assets/vue/components/bookings/elements/PaymentProofComponent.vue index b684d64e..5356070b 100644 --- a/resources/assets/vue/components/bookings/elements/PaymentProofComponent.vue +++ b/resources/assets/vue/components/bookings/elements/PaymentProofComponent.vue @@ -39,7 +39,7 @@
-
+
- +
@@ -63,6 +63,16 @@ diff --git a/resources/views/pages/pdfs/deliver_order.blade.php b/resources/views/pages/pdfs/deliver_order.blade.php index e7256b1f..a2c77a66 100644 --- a/resources/views/pages/pdfs/deliver_order.blade.php +++ b/resources/views/pages/pdfs/deliver_order.blade.php @@ -34,7 +34,7 @@
REF: {{ $invoice_transaction->payment_reference ?? '-' }}
-
Date: {{ $invoice_transaction->created_at }}
+
Date: {{ $po_order_transaction->created_at }}
 
diff --git a/resources/views/pages/pdfs/invoice.blade.php b/resources/views/pages/pdfs/invoice.blade.php index 7d6e88ca..611d4362 100644 --- a/resources/views/pages/pdfs/invoice.blade.php +++ b/resources/views/pages/pdfs/invoice.blade.php @@ -33,7 +33,7 @@
Ref# {{ $invoice_transaction->payment_reference ?? '-' }}
-
Date: {{ $invoice_transaction->created_at }}
+
Date: {{ $po_order_transaction->created_at }}
 
diff --git a/resources/views/pages/pdfs/supplier_deliver_order.blade.php b/resources/views/pages/pdfs/supplier_deliver_order.blade.php index 57b4ed0a..22de6719 100644 --- a/resources/views/pages/pdfs/supplier_deliver_order.blade.php +++ b/resources/views/pages/pdfs/supplier_deliver_order.blade.php @@ -20,7 +20,7 @@ PO#: {{ $supplier_deliver_order_transaction->bill_no }}
Ref#: {{ $supplier_deliver_order_transaction->payment_reference ?? '-' }}
- Date: {{ $supplier_deliver_order_transaction->created_at }} + Date: {{ $po_order_transaction->created_at }} From 6c39bc780ba7de0519a0542d7054307e028c8919 Mon Sep 17 00:00:00 2001 From: Haziq Danial Date: Sat, 11 Sep 2021 13:15:25 +0800 Subject: [PATCH 14/80] added update email controller and logic --- .../ControllersLogic/AddNewMemberLogic.php | 75 +++++++++++++++++++ .../Companies/AddNewMemberController.php | 17 +++++ .../settings/forms/EditEmailFormComponent.vue | 4 +- routes/company.php | 4 +- 4 files changed, 97 insertions(+), 3 deletions(-) create mode 100644 app/Classes/Modules/Accounts/ControllersLogic/AddNewMemberLogic.php create mode 100644 app/Http/Controllers/Companies/AddNewMemberController.php diff --git a/app/Classes/Modules/Accounts/ControllersLogic/AddNewMemberLogic.php b/app/Classes/Modules/Accounts/ControllersLogic/AddNewMemberLogic.php new file mode 100644 index 00000000..280cf188 --- /dev/null +++ b/app/Classes/Modules/Accounts/ControllersLogic/AddNewMemberLogic.php @@ -0,0 +1,75 @@ + 'Updated Email', + 'message' => 'Successfully updated email' + ]; + } + + + public function __construct(CreateUserProcessor $createUserProcessor, AssignEmployeeProcessor $assignEmployeeProcessor, GenerateEmailVerificationAttemptProcessor $generateEmailVerificationAttemptProcessor) + { + $this->createUserProcessor = $createUserProcessor; + $this->assignEmployeeProcessor = $assignEmployeeProcessor; + $this->generateEmailVerificationAttemptProcessor = $generateEmailVerificationAttemptProcessor; + } + + public function logic(Request $request): JsonResponse + { + $new_email = $request->input('name'); + $user = Auth::user(); + $company = $user->company()->first(); + $user->email = $new_email; + + request()->request->add([ + 'name' => $user->name, + 'email' => $new_email, + 'password' => $user->getAuthPassword(), + 'password_confirmation' => $user->getAuthPassword() + ]); + + /** @var User $user */ + $user = $this->createUserProcessor->execute($request, RoleTypes::USER, ApprovalStatus::PENDING_VERIFICATION); + + $Object = new EmploymentObject($company, $user); + $this->assignEmployeeProcessor->execute($Object); + + $this->generateEmailVerificationAttemptProcessor->execute($user); + return $this->response([ + 'message' => 'test' + ]); + } +} diff --git a/app/Http/Controllers/Companies/AddNewMemberController.php b/app/Http/Controllers/Companies/AddNewMemberController.php new file mode 100644 index 00000000..e55f46b9 --- /dev/null +++ b/app/Http/Controllers/Companies/AddNewMemberController.php @@ -0,0 +1,17 @@ +logic($request); + } +} diff --git a/resources/assets/vue/components/settings/forms/EditEmailFormComponent.vue b/resources/assets/vue/components/settings/forms/EditEmailFormComponent.vue index 68ef720a..9fb3ae21 100644 --- a/resources/assets/vue/components/settings/forms/EditEmailFormComponent.vue +++ b/resources/assets/vue/components/settings/forms/EditEmailFormComponent.vue @@ -26,7 +26,7 @@
Cancel
-
Update
+
Update
@@ -48,4 +48,4 @@ mixins: [updateProfileFormValidation] } - \ No newline at end of file + diff --git a/routes/company.php b/routes/company.php index e964d741..f5c4dfbc 100644 --- a/routes/company.php +++ b/routes/company.php @@ -9,6 +9,8 @@ Route::group(['prefix' => 'company', 'as' => 'company.', 'namespace' => 'Compani Route::put('/update/{id}', 'UpdateCompanyController@update')->name('update'); Route::delete('/delete/{id}', 'DeleteCompanyController@destroy')->name('delete'); + Route::post('/team/create', 'AddNewMemberController@create')->name('team.create'); + Route::group(['prefix' => '{id}/segment', 'as' => 'segment.'], function () { Route::post('/assign', 'AssignCompanyToSegmentController@assign')->name('assign'); Route::delete('/detach/{segment_id}', 'RemoveCompanyFromSegmentController@detach')->name('detach'); @@ -25,4 +27,4 @@ Route::group(['prefix' => 'company', 'as' => 'company.', 'namespace' => 'Compani Route::put('/{document_id}/approval/{status}', 'ApproveIdentificationDocumentController@approve')->where('status', 'approve|reject')->name('approval'); }); -}); \ No newline at end of file +}); From 68f879506a5c0475364a8e0e8e7981fe28547108 Mon Sep 17 00:00:00 2001 From: omair saleh Date: Thu, 23 Sep 2021 15:29:14 +0800 Subject: [PATCH 15/80] add download button to pdf file viewer --- .../general/elements/DocumentFileViewerComponent.vue | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/resources/assets/vue/components/general/elements/DocumentFileViewerComponent.vue b/resources/assets/vue/components/general/elements/DocumentFileViewerComponent.vue index 7e577da0..8143541c 100644 --- a/resources/assets/vue/components/general/elements/DocumentFileViewerComponent.vue +++ b/resources/assets/vue/components/general/elements/DocumentFileViewerComponent.vue @@ -9,7 +9,8 @@
-
Open in new window
+
Open in new window
+
Download
From a6eefd0824dcd4230844b00a0f73e602fd674f39 Mon Sep 17 00:00:00 2001 From: omair saleh Date: Fri, 24 Sep 2021 12:29:42 +0800 Subject: [PATCH 16/80] dubug completed bookings with unapproved po's --- routes/web.php | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/routes/web.php b/routes/web.php index 24507191..81cd247c 100644 --- a/routes/web.php +++ b/routes/web.php @@ -1,5 +1,6 @@ whereHas('transactions', function (Builder $query){ + $query->where('type', '=', \App\Classes\ValueObjects\Constants\TransactionType::PURCHASE_ORDER)->where('status', '!=', \App\Classes\ValueObjects\Constants\ApprovalStatus::APPROVED); + })->get()); +}); + + + Route::get('/export/customers/f614e339d7058904a831aad742e24d55', 'Exports\ExportCustomersToExcelController@export'); From c209536c0a501d68de4da4caedf3ac313c750eda Mon Sep 17 00:00:00 2001 From: omair saleh Date: Fri, 24 Sep 2021 12:37:12 +0800 Subject: [PATCH 17/80] dubug completed bookings with unapproved po's --- routes/web.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/routes/web.php b/routes/web.php index 81cd247c..1c0a69bd 100644 --- a/routes/web.php +++ b/routes/web.php @@ -1,7 +1,9 @@ whereHas('transactions', function (Builder $query){ $query->where('type', '=', \App\Classes\ValueObjects\Constants\TransactionType::PURCHASE_ORDER)->where('status', '!=', \App\Classes\ValueObjects\Constants\ApprovalStatus::APPROVED); })->get()); From 780a5ddcfc6e2f98bfab0a29c063a216b8f14681 Mon Sep 17 00:00:00 2001 From: omair saleh Date: Fri, 24 Sep 2021 12:38:18 +0800 Subject: [PATCH 18/80] dubug completed bookings with unapproved po's --- routes/web.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/routes/web.php b/routes/web.php index 1c0a69bd..1d72caef 100644 --- a/routes/web.php +++ b/routes/web.php @@ -73,7 +73,7 @@ Route::get('/mail', function () { }); Route::get('/test', function () { - Auth::login(User::findOrFail(3)); +// Auth::login(User::findOrFail(3)); dd(\App\Models\Booking::where('status', '=', \App\Classes\ValueObjects\Constants\ApprovalStatus::COMPLETED)->whereHas('transactions', function (Builder $query){ $query->where('type', '=', \App\Classes\ValueObjects\Constants\TransactionType::PURCHASE_ORDER)->where('status', '!=', \App\Classes\ValueObjects\Constants\ApprovalStatus::APPROVED); })->get()); From 5b1fbdc9a353232bc2c72f3d1a21125d8e649d8f Mon Sep 17 00:00:00 2001 From: omair saleh Date: Fri, 24 Sep 2021 12:40:31 +0800 Subject: [PATCH 19/80] dubug completed bookings with unapproved po's --- routes/web.php | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/routes/web.php b/routes/web.php index 1d72caef..b22abd21 100644 --- a/routes/web.php +++ b/routes/web.php @@ -73,10 +73,16 @@ Route::get('/mail', function () { }); Route::get('/test', function () { -// Auth::login(User::findOrFail(3)); - dd(\App\Models\Booking::where('status', '=', \App\Classes\ValueObjects\Constants\ApprovalStatus::COMPLETED)->whereHas('transactions', function (Builder $query){ + Auth::login(User::findOrFail(3)); + $bookings = \App\Models\Booking::where('status', '=', \App\Classes\ValueObjects\Constants\ApprovalStatus::COMPLETED)->whereHas('transactions', function (Builder $query){ $query->where('type', '=', \App\Classes\ValueObjects\Constants\TransactionType::PURCHASE_ORDER)->where('status', '!=', \App\Classes\ValueObjects\Constants\ApprovalStatus::APPROVED); - })->get()); + })->get(); + + foreach ($bookings as $booking){ + $modal = $booking->transactions()->where('type', '=', \App\Classes\ValueObjects\Constants\TransactionType::PURCHASE_ORDER)->where('status', '!=', \App\Classes\ValueObjects\Constants\ApprovalStatus::APPROVED)->first(); + $modal->status = \App\Classes\ValueObjects\Constants\ApprovalStatus::APPROVED; + $modal->save(); + } }); From 409fdff0625d93ce6cc956f2a12fb2ebc4a8c558 Mon Sep 17 00:00:00 2001 From: omair saleh Date: Fri, 24 Sep 2021 12:41:01 +0800 Subject: [PATCH 20/80] dubug completed bookings with unapproved po's --- routes/web.php | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/routes/web.php b/routes/web.php index b22abd21..563156b6 100644 --- a/routes/web.php +++ b/routes/web.php @@ -78,11 +78,7 @@ Route::get('/test', function () { $query->where('type', '=', \App\Classes\ValueObjects\Constants\TransactionType::PURCHASE_ORDER)->where('status', '!=', \App\Classes\ValueObjects\Constants\ApprovalStatus::APPROVED); })->get(); - foreach ($bookings as $booking){ - $modal = $booking->transactions()->where('type', '=', \App\Classes\ValueObjects\Constants\TransactionType::PURCHASE_ORDER)->where('status', '!=', \App\Classes\ValueObjects\Constants\ApprovalStatus::APPROVED)->first(); - $modal->status = \App\Classes\ValueObjects\Constants\ApprovalStatus::APPROVED; - $modal->save(); - } +dd($bookings); }); From f476f52d4d9e74f09cdaed66a3a55921b60ea8b5 Mon Sep 17 00:00:00 2001 From: omair saleh Date: Fri, 24 Sep 2021 12:41:32 +0800 Subject: [PATCH 21/80] dubug completed bookings with unapproved po's --- routes/web.php | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/routes/web.php b/routes/web.php index 563156b6..d912b631 100644 --- a/routes/web.php +++ b/routes/web.php @@ -68,22 +68,5 @@ Route::get('/transfer/merge/{marking}', function ($marking) { return view('pages.booking_merge', ['marking' => $marking]); })->name('booking.merge'); -Route::get('/mail', function () { - echo route('login'); -}); - -Route::get('/test', function () { - Auth::login(User::findOrFail(3)); - $bookings = \App\Models\Booking::where('status', '=', \App\Classes\ValueObjects\Constants\ApprovalStatus::COMPLETED)->whereHas('transactions', function (Builder $query){ - $query->where('type', '=', \App\Classes\ValueObjects\Constants\TransactionType::PURCHASE_ORDER)->where('status', '!=', \App\Classes\ValueObjects\Constants\ApprovalStatus::APPROVED); - })->get(); - -dd($bookings); -}); - - - - - Route::get('/export/customers/f614e339d7058904a831aad742e24d55', 'Exports\ExportCustomersToExcelController@export'); Route::get('/export/transactions/f614e339d7058904a831aad742e24d55', 'Exports\ExportCustomersToExcelController@transactions'); From b7f23b5f93d3d46f004cea639f2a2a154c63c770 Mon Sep 17 00:00:00 2001 From: omair saleh Date: Fri, 24 Sep 2021 13:31:34 +0800 Subject: [PATCH 22/80] fix change email module --- .../ControllersLogic/AddNewMemberLogic.php | 62 +++++++++++-------- .../Companies/AddNewMemberController.php | 7 ++- app/Http/Resources/CompanyResource.php | 5 +- .../settings/forms/EditEmailFormComponent.vue | 33 ++++++---- 4 files changed, 65 insertions(+), 42 deletions(-) diff --git a/app/Classes/Modules/Accounts/ControllersLogic/AddNewMemberLogic.php b/app/Classes/Modules/Accounts/ControllersLogic/AddNewMemberLogic.php index 280cf188..5b15b689 100644 --- a/app/Classes/Modules/Accounts/ControllersLogic/AddNewMemberLogic.php +++ b/app/Classes/Modules/Accounts/ControllersLogic/AddNewMemberLogic.php @@ -3,14 +3,19 @@ namespace App\Classes\Modules\Accounts\ControllersLogic; use App\Classes\Exceptions\ErrorException; +use App\Classes\Exceptions\ResourceConflictException; use App\Classes\General\Abstracts\AbstractControllerLogic; +use App\Classes\Modules\Accounts\DataTransferObjects\RegistrationObject; use App\Classes\Modules\Accounts\Processors\CreateUserProcessor; use App\Classes\Modules\Accounts\Processors\GenerateEmailVerificationAttemptProcessor; use App\Classes\Modules\Companies\DataTransferObjects\EmploymentObject; use App\Classes\Modules\Companies\Processors\AssignEmployeeProcessor; use App\Classes\ValueObjects\Constants\ApprovalStatus; use App\Classes\ValueObjects\Constants\RoleTypes; +use App\Http\Resources\UserResource; use App\Models\User; +use Carbon\Carbon; +use Illuminate\Database\QueryException; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; use Illuminate\Support\Facades\App; @@ -19,6 +24,14 @@ use Illuminate\Support\Facades\Auth; class AddNewMemberLogic extends AbstractControllerLogic { + public function notification(): array + { + return [ + 'title' => 'Updated Email', + 'message' => 'Successfully updated email' + ]; + } + /** * @var AssignEmployeeProcessor */ @@ -31,14 +44,6 @@ class AddNewMemberLogic extends AbstractControllerLogic */ private $generateEmailVerificationAttemptProcessor; - public function notification(): array - { - return [ - 'title' => 'Updated Email', - 'message' => 'Successfully updated email' - ]; - } - public function __construct(CreateUserProcessor $createUserProcessor, AssignEmployeeProcessor $assignEmployeeProcessor, GenerateEmailVerificationAttemptProcessor $generateEmailVerificationAttemptProcessor) { @@ -47,29 +52,32 @@ class AddNewMemberLogic extends AbstractControllerLogic $this->generateEmailVerificationAttemptProcessor = $generateEmailVerificationAttemptProcessor; } + /** + * @param Request $request + * @return JsonResponse + * @throws ResourceConflictException + * @throws \App\Classes\Exceptions\AccessForbiddenException + * @throws \App\Classes\Exceptions\MalformedRequestException + * @throws \App\Classes\Exceptions\RequestValidationException + */ public function logic(Request $request): JsonResponse { - $new_email = $request->input('name'); - $user = Auth::user(); - $company = $user->company()->first(); - $user->email = $new_email; + try { + $user = Auth::user()->replicate(); + $user->email = $request->input('email'); + $user->status = ApprovalStatus::PENDING_VERIFICATION; + $user->save(); + } catch (QueryException $exception){ + throw new ResourceConflictException('Unable to change your email address as it already exists'); + } - request()->request->add([ - 'name' => $user->name, - 'email' => $new_email, - 'password' => $user->getAuthPassword(), - 'password_confirmation' => $user->getAuthPassword() - ]); - - /** @var User $user */ - $user = $this->createUserProcessor->execute($request, RoleTypes::USER, ApprovalStatus::PENDING_VERIFICATION); - - $Object = new EmploymentObject($company, $user); - $this->assignEmployeeProcessor->execute($Object); + if($company = Auth::user()->company()->first()){ + $Object = new EmploymentObject($company, $user); + $this->assignEmployeeProcessor->execute($Object); + } $this->generateEmailVerificationAttemptProcessor->execute($user); - return $this->response([ - 'message' => 'test' - ]); + + return $this->resourceResponse(new UserResource($user)); } } diff --git a/app/Http/Controllers/Companies/AddNewMemberController.php b/app/Http/Controllers/Companies/AddNewMemberController.php index e55f46b9..6307ac37 100644 --- a/app/Http/Controllers/Companies/AddNewMemberController.php +++ b/app/Http/Controllers/Companies/AddNewMemberController.php @@ -10,8 +10,13 @@ use Illuminate\Support\Facades\Auth; class AddNewMemberController { + /** + * @param Request $request + * @param AddNewMemberLogic $execute + * @return JsonResponse + */ public function create(Request $request, AddNewMemberLogic $execute) : JsonResponse { - return $execute->logic($request); + return $execute->execute($request); } } diff --git a/app/Http/Resources/CompanyResource.php b/app/Http/Resources/CompanyResource.php index 00ca7624..d6c2ed9e 100644 --- a/app/Http/Resources/CompanyResource.php +++ b/app/Http/Resources/CompanyResource.php @@ -3,13 +3,16 @@ namespace App\Http\Resources; use App\Classes\Modules\Companies\Services\FetchesCompanyServices; +use App\Classes\ValueObjects\Constants\ApprovalStatus; use App\Classes\ValueObjects\Constants\BankAccountType; use App\Classes\ValueObjects\Constants\BusinessType; use App\Classes\ValueObjects\Constants\DocumentType; +use App\Classes\ValueObjects\Constants\RoleTypes; use App\Classes\ValueObjects\Constants\SegmentConstants; use App\Models\Currency; use App\Models\SegmentConstant; use Illuminate\Http\Resources\Json\JsonResource; +use Illuminate\Support\Facades\Auth; class CompanyResource extends JsonResource { @@ -30,7 +33,7 @@ class CompanyResource extends JsonResource 'status' => (int) $this->status, 'contact' => new ContactResource ($this->when($this->has('contacts'), $this->contacts->first())), 'address' => new AddressResource($this->when($this->has('addresses'), $this->addresses->where('billing', true)->first())), - 'employee' => new UserResource($this->employees->first()), + 'employee' => new UserResource(Auth::user()->type === RoleTypes::USER ? $this->employees()->where('email', '=', Auth::user()->email)->first() : $this->employees()->where('status', '=', ApprovalStatus::APPROVED)->orderBy('id', 'DESC')->first()), 'identification' => new DocumentResource($this->documents->whereIn('document_type', DocumentType::IDENTIFICATION_DOCUMENTS)->first()), 'bookings' => $this->whenLoaded('bookings', $this->bookings()->orderBy('id', 'DESC')->get(), []), 'personal_banks' => BankResource::collection($this->banks->where('type', BankAccountType::PERSONAL)), diff --git a/resources/assets/vue/components/settings/forms/EditEmailFormComponent.vue b/resources/assets/vue/components/settings/forms/EditEmailFormComponent.vue index 9fb3ae21..ca60b203 100644 --- a/resources/assets/vue/components/settings/forms/EditEmailFormComponent.vue +++ b/resources/assets/vue/components/settings/forms/EditEmailFormComponent.vue @@ -5,15 +5,7 @@
-

Edit Email Address

-
-
-
-
-
Email Address
- - - +
Change Email Address
@@ -21,12 +13,20 @@ {{error}}
+
+
+ + + + +
+
Cancel
-
Update
+
Update
@@ -35,17 +35,24 @@ From 6733778edfa7babfcca21b326f5b521f2b53ceb4 Mon Sep 17 00:00:00 2001 From: omair saleh Date: Fri, 24 Sep 2021 13:38:12 +0800 Subject: [PATCH 23/80] fix change email module --- app/Http/Resources/CompanyResource.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Http/Resources/CompanyResource.php b/app/Http/Resources/CompanyResource.php index d6c2ed9e..655cfc98 100644 --- a/app/Http/Resources/CompanyResource.php +++ b/app/Http/Resources/CompanyResource.php @@ -33,7 +33,7 @@ class CompanyResource extends JsonResource 'status' => (int) $this->status, 'contact' => new ContactResource ($this->when($this->has('contacts'), $this->contacts->first())), 'address' => new AddressResource($this->when($this->has('addresses'), $this->addresses->where('billing', true)->first())), - 'employee' => new UserResource(Auth::user()->type === RoleTypes::USER ? $this->employees()->where('email', '=', Auth::user()->email)->first() : $this->employees()->where('status', '=', ApprovalStatus::APPROVED)->orderBy('id', 'DESC')->first()), + 'employee' => new UserResource(Auth::user()->type === RoleTypes::USER ? $this->employees()->where('email', '=', Auth::user()->email)->first() : $this->employees()->where('users.status', '=', ApprovalStatus::APPROVED)->orderBy('id', 'DESC')->first()), 'identification' => new DocumentResource($this->documents->whereIn('document_type', DocumentType::IDENTIFICATION_DOCUMENTS)->first()), 'bookings' => $this->whenLoaded('bookings', $this->bookings()->orderBy('id', 'DESC')->get(), []), 'personal_banks' => BankResource::collection($this->banks->where('type', BankAccountType::PERSONAL)), From 61605c8efab6a740de6a8c8a4432dfc9e47423b3 Mon Sep 17 00:00:00 2001 From: omair saleh Date: Fri, 24 Sep 2021 18:11:34 +0800 Subject: [PATCH 24/80] fix booking rate average bug --- .../CalculatesBookingCurrencyAverageRate.php | 32 ++++++++++--------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/app/Classes/Modules/Bookings/Services/CalculatesBookingCurrencyAverageRate.php b/app/Classes/Modules/Bookings/Services/CalculatesBookingCurrencyAverageRate.php index 235d897a..2a6de8d2 100644 --- a/app/Classes/Modules/Bookings/Services/CalculatesBookingCurrencyAverageRate.php +++ b/app/Classes/Modules/Bookings/Services/CalculatesBookingCurrencyAverageRate.php @@ -9,27 +9,29 @@ use Carbon\Carbon; class CalculatesBookingCurrencyAverageRate { + /** @var CalculatesBookingPayableAmount */ + private $calculatesBookingPayableAmount; + + /** + * CalculatesBookingCurrencyAverageRate constructor. + * @param CalculatesBookingPayableAmount $calculatesBookingPayableAmount + */ + public function __construct(CalculatesBookingPayableAmount $calculatesBookingPayableAmount) + { + $this->calculatesBookingPayableAmount = $calculatesBookingPayableAmount; + } + + public function execute(Booking $booking, $type){ if ($type == TransactionType::PAYMENT) { - - $amount_without_service = $booking->transactions() - ->where('type', TransactionType::PAYMENT) - ->whereIn('status', [ApprovalStatus::APPROVED, ApprovalStatus::COMPLETED]) - ->selectRaw('ROUND(amount,2)-ROUND(service_charge,2) AS amount_without_service') - ->get()->sum('amount_without_service'); + $totalPayment = $booking->fix_currency_id === 1 ? $booking->transactions()->payments()->complete()->sum('original_amount') : + $booking->transactions()->payments()->complete()->selectRaw('sum(amount - service_charge - tax) as sub_total')->get()->sum('sub_total'); + return $this->calculatesBookingPayableAmount->execute($booking, $booking->fix_currency_id) / $totalPayment; - return number_format($booking->fix_amount/$amount_without_service,2); } else if ($type == TransactionType::BILL) { - - $amount_without_service = $booking->transactions() - ->where('type', TransactionType::BILL) - ->whereIn('status', [ApprovalStatus::APPROVED, ApprovalStatus::COMPLETED]) - ->selectRaw('ROUND(amount,2)-ROUND(service_charge,2) AS amount_without_service') - ->get()->sum('amount_without_service'); - - return number_format($booking->fix_amount/$amount_without_service,2); + return $booking->transactions()->bills()->complete()->sum('original_amount') / $booking->transactions()->bills()->complete()->sum('amount'); } } From 2db9b06cc691d19a52f05c5f1d2a48127c427fa2 Mon Sep 17 00:00:00 2001 From: omair saleh Date: Fri, 24 Sep 2021 19:04:48 +0800 Subject: [PATCH 25/80] regenerate incorrect invoices --- routes/web.php | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/routes/web.php b/routes/web.php index d912b631..c03a7d4e 100644 --- a/routes/web.php +++ b/routes/web.php @@ -4,6 +4,7 @@ use App\Models\User; use Illuminate\Database\Eloquent\Builder; use Illuminate\Support\Carbon; use Illuminate\Support\Facades\Auth; +use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Mail; use Illuminate\Support\Facades\Route; @@ -68,5 +69,29 @@ Route::get('/transfer/merge/{marking}', function ($marking) { return view('pages.booking_merge', ['marking' => $marking]); })->name('booking.merge'); + +Route::get('/test', function () { + Auth::login(User::findOrFail(3)); + DB::beginTransaction(); + $bookings = \App\Models\Booking::where('updated_at', '>=', Carbon::yesterday())->where('status', '=', \App\Classes\ValueObjects\Constants\ApprovalStatus::COMPLETED)->get(); + foreach ($bookings as $booking){ + $booking->status = \App\Classes\ValueObjects\Constants\ApprovalStatus::APPROVED; + $booking->save(); + + $booking->transactions()->whereIn('type', [\App\Classes\ValueObjects\Constants\TransactionType::INVOICE, \App\Classes\ValueObjects\Constants\TransactionType::SUPPLIER_DELIVER])->forceDelete(); + + $booking->documents()->delete(); + + (App()->make(\App\Classes\Modules\Transactions\Processors\CreateInvoiceTransactionProcessor::class))->execute($booking); + + } + DB::commit(); + +}); + + + + + Route::get('/export/customers/f614e339d7058904a831aad742e24d55', 'Exports\ExportCustomersToExcelController@export'); Route::get('/export/transactions/f614e339d7058904a831aad742e24d55', 'Exports\ExportCustomersToExcelController@transactions'); From 1af433155e4c845bb98090ce760ec7af99da0493 Mon Sep 17 00:00:00 2001 From: omair saleh Date: Fri, 24 Sep 2021 19:05:43 +0800 Subject: [PATCH 26/80] regenerate incorrect invoices --- routes/web.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/routes/web.php b/routes/web.php index c03a7d4e..3b3864a5 100644 --- a/routes/web.php +++ b/routes/web.php @@ -73,7 +73,8 @@ Route::get('/transfer/merge/{marking}', function ($marking) { Route::get('/test', function () { Auth::login(User::findOrFail(3)); DB::beginTransaction(); - $bookings = \App\Models\Booking::where('updated_at', '>=', Carbon::yesterday())->where('status', '=', \App\Classes\ValueObjects\Constants\ApprovalStatus::COMPLETED)->get(); + $bookings = \App\Models\Booking::where('updated_at', '>=', Carbon::parse('23-09-2021'))->where('status', '=', \App\Classes\ValueObjects\Constants\ApprovalStatus::COMPLETED)->get(); + dd($bookings); foreach ($bookings as $booking){ $booking->status = \App\Classes\ValueObjects\Constants\ApprovalStatus::APPROVED; $booking->save(); From d14bf4fc019f8f44b74d592b942b8cfd8ecb33fd Mon Sep 17 00:00:00 2001 From: omair saleh Date: Fri, 24 Sep 2021 19:06:40 +0800 Subject: [PATCH 27/80] regenerate incorrect invoices --- routes/web.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/routes/web.php b/routes/web.php index 3b3864a5..5bd7c467 100644 --- a/routes/web.php +++ b/routes/web.php @@ -73,7 +73,7 @@ Route::get('/transfer/merge/{marking}', function ($marking) { Route::get('/test', function () { Auth::login(User::findOrFail(3)); DB::beginTransaction(); - $bookings = \App\Models\Booking::where('updated_at', '>=', Carbon::parse('23-09-2021'))->where('status', '=', \App\Classes\ValueObjects\Constants\ApprovalStatus::COMPLETED)->get(); + $bookings = \App\Models\Booking::where('updated_at', '>=', Carbon::parse('23-09-2021'))->where('status', '=', \App\Classes\ValueObjects\Constants\ApprovalStatus::COMPLETED)->pluck('marking'); dd($bookings); foreach ($bookings as $booking){ $booking->status = \App\Classes\ValueObjects\Constants\ApprovalStatus::APPROVED; From 7d258edb366054c5c4d65f95642533844288090c Mon Sep 17 00:00:00 2001 From: omair saleh Date: Fri, 24 Sep 2021 19:08:28 +0800 Subject: [PATCH 28/80] regenerate incorrect invoices --- routes/web.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/routes/web.php b/routes/web.php index 5bd7c467..49d6a30d 100644 --- a/routes/web.php +++ b/routes/web.php @@ -74,7 +74,7 @@ Route::get('/test', function () { Auth::login(User::findOrFail(3)); DB::beginTransaction(); $bookings = \App\Models\Booking::where('updated_at', '>=', Carbon::parse('23-09-2021'))->where('status', '=', \App\Classes\ValueObjects\Constants\ApprovalStatus::COMPLETED)->pluck('marking'); - dd($bookings); + foreach ($bookings as $booking){ $booking->status = \App\Classes\ValueObjects\Constants\ApprovalStatus::APPROVED; $booking->save(); From e6e8b8fcbde22a4bbb3852e6e2eb000593c2cda0 Mon Sep 17 00:00:00 2001 From: omair saleh Date: Fri, 24 Sep 2021 19:09:04 +0800 Subject: [PATCH 29/80] regenerate incorrect invoices --- routes/web.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/routes/web.php b/routes/web.php index 49d6a30d..16277592 100644 --- a/routes/web.php +++ b/routes/web.php @@ -73,7 +73,7 @@ Route::get('/transfer/merge/{marking}', function ($marking) { Route::get('/test', function () { Auth::login(User::findOrFail(3)); DB::beginTransaction(); - $bookings = \App\Models\Booking::where('updated_at', '>=', Carbon::parse('23-09-2021'))->where('status', '=', \App\Classes\ValueObjects\Constants\ApprovalStatus::COMPLETED)->pluck('marking'); + $bookings = \App\Models\Booking::where('updated_at', '>=', Carbon::parse('23-09-2021'))->where('status', '=', \App\Classes\ValueObjects\Constants\ApprovalStatus::COMPLETED)->get(); foreach ($bookings as $booking){ $booking->status = \App\Classes\ValueObjects\Constants\ApprovalStatus::APPROVED; From 095652a91480afad4159c498bc479cc34dccbc40 Mon Sep 17 00:00:00 2001 From: omair saleh Date: Fri, 24 Sep 2021 19:12:47 +0800 Subject: [PATCH 30/80] regenerate incorrect invoices --- routes/web.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/routes/web.php b/routes/web.php index 16277592..ab776f57 100644 --- a/routes/web.php +++ b/routes/web.php @@ -87,7 +87,7 @@ Route::get('/test', function () { } DB::commit(); - +dd('invoices regenerated'); }); From da54c80fae5caff4529c79659834229956f87d5f Mon Sep 17 00:00:00 2001 From: omair saleh Date: Fri, 24 Sep 2021 19:14:26 +0800 Subject: [PATCH 31/80] regenerate incorrect invoices --- routes/web.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/routes/web.php b/routes/web.php index ab776f57..213954bd 100644 --- a/routes/web.php +++ b/routes/web.php @@ -73,7 +73,7 @@ Route::get('/transfer/merge/{marking}', function ($marking) { Route::get('/test', function () { Auth::login(User::findOrFail(3)); DB::beginTransaction(); - $bookings = \App\Models\Booking::where('updated_at', '>=', Carbon::parse('23-09-2021'))->where('status', '=', \App\Classes\ValueObjects\Constants\ApprovalStatus::COMPLETED)->get(); + $bookings = \App\Models\Booking::where('updated_at', '=', Carbon::parse('23-09-2021'))->where('status', '=', \App\Classes\ValueObjects\Constants\ApprovalStatus::COMPLETED)->get(); foreach ($bookings as $booking){ $booking->status = \App\Classes\ValueObjects\Constants\ApprovalStatus::APPROVED; From dc7212db047ae5dcd3e0899c5243afcf50124261 Mon Sep 17 00:00:00 2001 From: omair saleh Date: Fri, 24 Sep 2021 19:14:56 +0800 Subject: [PATCH 32/80] regenerate incorrect invoices --- routes/web.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/routes/web.php b/routes/web.php index 213954bd..0b51bec9 100644 --- a/routes/web.php +++ b/routes/web.php @@ -73,7 +73,7 @@ Route::get('/transfer/merge/{marking}', function ($marking) { Route::get('/test', function () { Auth::login(User::findOrFail(3)); DB::beginTransaction(); - $bookings = \App\Models\Booking::where('updated_at', '=', Carbon::parse('23-09-2021'))->where('status', '=', \App\Classes\ValueObjects\Constants\ApprovalStatus::COMPLETED)->get(); + $bookings = \App\Models\Booking::where('updated_at', '=', Carbon::parse('24-09-2021'))->where('status', '=', \App\Classes\ValueObjects\Constants\ApprovalStatus::COMPLETED)->get(); foreach ($bookings as $booking){ $booking->status = \App\Classes\ValueObjects\Constants\ApprovalStatus::APPROVED; From f477423b2d435ae2252b1c536d3d3f0e545d2736 Mon Sep 17 00:00:00 2001 From: omair saleh Date: Fri, 24 Sep 2021 19:15:38 +0800 Subject: [PATCH 33/80] regenerate incorrect invoices --- routes/web.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/routes/web.php b/routes/web.php index 0b51bec9..373016e3 100644 --- a/routes/web.php +++ b/routes/web.php @@ -73,8 +73,8 @@ Route::get('/transfer/merge/{marking}', function ($marking) { Route::get('/test', function () { Auth::login(User::findOrFail(3)); DB::beginTransaction(); - $bookings = \App\Models\Booking::where('updated_at', '=', Carbon::parse('24-09-2021'))->where('status', '=', \App\Classes\ValueObjects\Constants\ApprovalStatus::COMPLETED)->get(); - + $bookings = \App\Models\Booking::where('updated_at', '=', Carbon::parse('23-09-2021'))->where('status', '=', \App\Classes\ValueObjects\Constants\ApprovalStatus::COMPLETED)->get(); +dd($bookings); foreach ($bookings as $booking){ $booking->status = \App\Classes\ValueObjects\Constants\ApprovalStatus::APPROVED; $booking->save(); From 5a470cc08495ed455d193c56d90ba9cd86cb63ca Mon Sep 17 00:00:00 2001 From: omair saleh Date: Fri, 24 Sep 2021 19:16:25 +0800 Subject: [PATCH 34/80] regenerate incorrect invoices --- routes/web.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/routes/web.php b/routes/web.php index 373016e3..d3c08a9b 100644 --- a/routes/web.php +++ b/routes/web.php @@ -73,7 +73,7 @@ Route::get('/transfer/merge/{marking}', function ($marking) { Route::get('/test', function () { Auth::login(User::findOrFail(3)); DB::beginTransaction(); - $bookings = \App\Models\Booking::where('updated_at', '=', Carbon::parse('23-09-2021'))->where('status', '=', \App\Classes\ValueObjects\Constants\ApprovalStatus::COMPLETED)->get(); + $bookings = \App\Models\Booking::where('updated_at', '>=', Carbon::parse('23-09-2021'))->where('updated_at', '<', Carbon::parse('24-09-2021'))->where('status', '=', \App\Classes\ValueObjects\Constants\ApprovalStatus::COMPLETED)->get(); dd($bookings); foreach ($bookings as $booking){ $booking->status = \App\Classes\ValueObjects\Constants\ApprovalStatus::APPROVED; From 08531cfd1166284ec84e5e54e737f6920d3f604f Mon Sep 17 00:00:00 2001 From: omair saleh Date: Fri, 24 Sep 2021 19:17:43 +0800 Subject: [PATCH 35/80] regenerate incorrect invoices --- routes/web.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/routes/web.php b/routes/web.php index d3c08a9b..ab776f57 100644 --- a/routes/web.php +++ b/routes/web.php @@ -73,8 +73,8 @@ Route::get('/transfer/merge/{marking}', function ($marking) { Route::get('/test', function () { Auth::login(User::findOrFail(3)); DB::beginTransaction(); - $bookings = \App\Models\Booking::where('updated_at', '>=', Carbon::parse('23-09-2021'))->where('updated_at', '<', Carbon::parse('24-09-2021'))->where('status', '=', \App\Classes\ValueObjects\Constants\ApprovalStatus::COMPLETED)->get(); -dd($bookings); + $bookings = \App\Models\Booking::where('updated_at', '>=', Carbon::parse('23-09-2021'))->where('status', '=', \App\Classes\ValueObjects\Constants\ApprovalStatus::COMPLETED)->get(); + foreach ($bookings as $booking){ $booking->status = \App\Classes\ValueObjects\Constants\ApprovalStatus::APPROVED; $booking->save(); From 7dd6eb915760b8905e628a9b236d248783ae08bf Mon Sep 17 00:00:00 2001 From: omair saleh Date: Fri, 24 Sep 2021 19:26:08 +0800 Subject: [PATCH 36/80] regenerate incorrect invoices --- routes/web.php | 2 -- 1 file changed, 2 deletions(-) diff --git a/routes/web.php b/routes/web.php index ab776f57..d8553122 100644 --- a/routes/web.php +++ b/routes/web.php @@ -72,7 +72,6 @@ Route::get('/transfer/merge/{marking}', function ($marking) { Route::get('/test', function () { Auth::login(User::findOrFail(3)); - DB::beginTransaction(); $bookings = \App\Models\Booking::where('updated_at', '>=', Carbon::parse('23-09-2021'))->where('status', '=', \App\Classes\ValueObjects\Constants\ApprovalStatus::COMPLETED)->get(); foreach ($bookings as $booking){ @@ -86,7 +85,6 @@ Route::get('/test', function () { (App()->make(\App\Classes\Modules\Transactions\Processors\CreateInvoiceTransactionProcessor::class))->execute($booking); } - DB::commit(); dd('invoices regenerated'); }); From e522bbe919d0578af8e59df22aaa9aef68631170 Mon Sep 17 00:00:00 2001 From: omair saleh Date: Mon, 27 Sep 2021 12:36:34 +0800 Subject: [PATCH 37/80] add booking reference --- .../BookingDetailsSectionComponent.vue | 2 +- routes/web.php | 22 ------------------- 2 files changed, 1 insertion(+), 23 deletions(-) diff --git a/resources/assets/vue/components/bookings/sections/BookingDetailsSectionComponent.vue b/resources/assets/vue/components/bookings/sections/BookingDetailsSectionComponent.vue index ca969f3b..79fe0509 100644 --- a/resources/assets/vue/components/bookings/sections/BookingDetailsSectionComponent.vue +++ b/resources/assets/vue/components/bookings/sections/BookingDetailsSectionComponent.vue @@ -324,7 +324,7 @@
-
Payment History
+
Payment History of {{booking.marking}}
diff --git a/routes/web.php b/routes/web.php index d8553122..1578a131 100644 --- a/routes/web.php +++ b/routes/web.php @@ -70,27 +70,5 @@ Route::get('/transfer/merge/{marking}', function ($marking) { })->name('booking.merge'); -Route::get('/test', function () { - Auth::login(User::findOrFail(3)); - $bookings = \App\Models\Booking::where('updated_at', '>=', Carbon::parse('23-09-2021'))->where('status', '=', \App\Classes\ValueObjects\Constants\ApprovalStatus::COMPLETED)->get(); - - foreach ($bookings as $booking){ - $booking->status = \App\Classes\ValueObjects\Constants\ApprovalStatus::APPROVED; - $booking->save(); - - $booking->transactions()->whereIn('type', [\App\Classes\ValueObjects\Constants\TransactionType::INVOICE, \App\Classes\ValueObjects\Constants\TransactionType::SUPPLIER_DELIVER])->forceDelete(); - - $booking->documents()->delete(); - - (App()->make(\App\Classes\Modules\Transactions\Processors\CreateInvoiceTransactionProcessor::class))->execute($booking); - - } -dd('invoices regenerated'); -}); - - - - - Route::get('/export/customers/f614e339d7058904a831aad742e24d55', 'Exports\ExportCustomersToExcelController@export'); Route::get('/export/transactions/f614e339d7058904a831aad742e24d55', 'Exports\ExportCustomersToExcelController@transactions'); From 6a0589364fc363028426881365c1aef1b9abbb4c Mon Sep 17 00:00:00 2001 From: omair saleh Date: Mon, 27 Sep 2021 12:58:53 +0800 Subject: [PATCH 38/80] add booking reference --- .../bookings/sections/BookingDetailsSectionComponent.vue | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/resources/assets/vue/components/bookings/sections/BookingDetailsSectionComponent.vue b/resources/assets/vue/components/bookings/sections/BookingDetailsSectionComponent.vue index 79fe0509..013a511e 100644 --- a/resources/assets/vue/components/bookings/sections/BookingDetailsSectionComponent.vue +++ b/resources/assets/vue/components/bookings/sections/BookingDetailsSectionComponent.vue @@ -324,7 +324,10 @@
-
Payment History of {{booking.marking}}
+
Payment History
+
+
+
of {{booking.marking}}
From 18ec3e2c3dd58d4a6cdab83508b960345a96502b Mon Sep 17 00:00:00 2001 From: omair saleh Date: Tue, 28 Sep 2021 14:10:02 +0800 Subject: [PATCH 39/80] protect user routes with valid token middleware --- routes/account.php | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/routes/account.php b/routes/account.php index 5b4d45f9..2da67709 100644 --- a/routes/account.php +++ b/routes/account.php @@ -10,6 +10,14 @@ Route::group(['prefix' => 'account', 'namespace' => 'Accounts', 'as' => 'account Route::group(['middleware' => 'valid.token'], function () { Route::get('/logout', 'UserAuthenticationLogoutController@logout')->name('logout'); Route::get('/refresh', 'RefreshAuthenticationTokenController@refresh')->name('refresh'); + Route::group(['prefix' => 'user', 'as' => 'user.'], function () { + Route::post('/show', 'FetchUserController@fetch')->name('show'); + Route::get('/list', 'ListUsersController@list')->name('list'); + Route::put('/update/{id}', 'UpdateUserController@update')->name('update'); + + Route::post('/admin/create', 'CreateAdminUserController@create')->name('admin.create'); + Route::delete('/delete/{id}', 'DeleteUserController@delete')->name('delete'); + }); }); Route::group(['prefix' => 'login', 'as' => 'authenticate.'], function () { @@ -34,12 +42,5 @@ Route::group(['prefix' => 'account', 'namespace' => 'Accounts', 'as' => 'account }); - Route::group(['prefix' => 'user', 'as' => 'user.'], function () { - Route::post('/show', 'FetchUserController@fetch')->name('show'); - Route::get('/list', 'ListUsersController@list')->name('list'); - Route::put('/update/{id}', 'UpdateUserController@update')->name('update'); - - Route::post('/admin/create', 'CreateAdminUserController@create')->name('admin.create'); - Route::delete('/delete/{id}', 'DeleteUserController@delete')->name('delete'); - }); + }); \ No newline at end of file From 7282c24ee086a0b2e1b748c14506378ea4bd39d3 Mon Sep 17 00:00:00 2001 From: omair saleh Date: Tue, 28 Sep 2021 19:02:52 +0800 Subject: [PATCH 40/80] clean up add new member logic --- .../ControllersLogic/AddNewMemberLogic.php | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/app/Classes/Modules/Accounts/ControllersLogic/AddNewMemberLogic.php b/app/Classes/Modules/Accounts/ControllersLogic/AddNewMemberLogic.php index 5b15b689..1744f50c 100644 --- a/app/Classes/Modules/Accounts/ControllersLogic/AddNewMemberLogic.php +++ b/app/Classes/Modules/Accounts/ControllersLogic/AddNewMemberLogic.php @@ -2,23 +2,17 @@ namespace App\Classes\Modules\Accounts\ControllersLogic; -use App\Classes\Exceptions\ErrorException; use App\Classes\Exceptions\ResourceConflictException; use App\Classes\General\Abstracts\AbstractControllerLogic; -use App\Classes\Modules\Accounts\DataTransferObjects\RegistrationObject; use App\Classes\Modules\Accounts\Processors\CreateUserProcessor; use App\Classes\Modules\Accounts\Processors\GenerateEmailVerificationAttemptProcessor; use App\Classes\Modules\Companies\DataTransferObjects\EmploymentObject; use App\Classes\Modules\Companies\Processors\AssignEmployeeProcessor; use App\Classes\ValueObjects\Constants\ApprovalStatus; -use App\Classes\ValueObjects\Constants\RoleTypes; use App\Http\Resources\UserResource; -use App\Models\User; -use Carbon\Carbon; use Illuminate\Database\QueryException; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; -use Illuminate\Support\Facades\App; use Illuminate\Support\Facades\Auth; class AddNewMemberLogic extends AbstractControllerLogic @@ -37,17 +31,18 @@ class AddNewMemberLogic extends AbstractControllerLogic */ private $assignEmployeeProcessor; - /** @var CreateUserProcessor */ - private $createUserProcessor; /** * @var GenerateEmailVerificationAttemptProcessor */ private $generateEmailVerificationAttemptProcessor; - - public function __construct(CreateUserProcessor $createUserProcessor, AssignEmployeeProcessor $assignEmployeeProcessor, GenerateEmailVerificationAttemptProcessor $generateEmailVerificationAttemptProcessor) + /** + * AddNewMemberLogic constructor. + * @param AssignEmployeeProcessor $assignEmployeeProcessor + * @param GenerateEmailVerificationAttemptProcessor $generateEmailVerificationAttemptProcessor + */ + public function __construct(AssignEmployeeProcessor $assignEmployeeProcessor, GenerateEmailVerificationAttemptProcessor $generateEmailVerificationAttemptProcessor) { - $this->createUserProcessor = $createUserProcessor; $this->assignEmployeeProcessor = $assignEmployeeProcessor; $this->generateEmailVerificationAttemptProcessor = $generateEmailVerificationAttemptProcessor; } From dbfe8751d6326aeb6d9d3c4879e50e14d4fb7d6c Mon Sep 17 00:00:00 2001 From: omair saleh Date: Thu, 30 Sep 2021 14:19:34 +0800 Subject: [PATCH 41/80] fix user routes and add middleware for logged in user --- routes/account.php | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/routes/account.php b/routes/account.php index 2da67709..1a05eb0d 100644 --- a/routes/account.php +++ b/routes/account.php @@ -10,14 +10,6 @@ Route::group(['prefix' => 'account', 'namespace' => 'Accounts', 'as' => 'account Route::group(['middleware' => 'valid.token'], function () { Route::get('/logout', 'UserAuthenticationLogoutController@logout')->name('logout'); Route::get('/refresh', 'RefreshAuthenticationTokenController@refresh')->name('refresh'); - Route::group(['prefix' => 'user', 'as' => 'user.'], function () { - Route::post('/show', 'FetchUserController@fetch')->name('show'); - Route::get('/list', 'ListUsersController@list')->name('list'); - Route::put('/update/{id}', 'UpdateUserController@update')->name('update'); - - Route::post('/admin/create', 'CreateAdminUserController@create')->name('admin.create'); - Route::delete('/delete/{id}', 'DeleteUserController@delete')->name('delete'); - }); }); Route::group(['prefix' => 'login', 'as' => 'authenticate.'], function () { @@ -41,6 +33,15 @@ Route::group(['prefix' => 'account', 'namespace' => 'Accounts', 'as' => 'account Route::post('/verification/resend', 'ResendEmailVerificationController@resend')->name('verification.resend'); }); + Route::group(['prefix' => 'user', 'as' => 'user.', 'middleware' => 'valid.token'], function () { + Route::post('/show', 'FetchUserController@fetch')->name('show'); + Route::get('/list', 'ListUsersController@list')->name('list'); + Route::put('/update/{id}', 'UpdateUserController@update')->name('update'); + + Route::post('/admin/create', 'CreateAdminUserController@create')->name('admin.create'); + Route::delete('/delete/{id}', 'DeleteUserController@delete')->name('delete'); + }); + }); \ No newline at end of file From dd05231b2779067cee8566afd3b68c140da4308c Mon Sep 17 00:00:00 2001 From: omair saleh Date: Fri, 1 Oct 2021 15:04:24 +0800 Subject: [PATCH 42/80] fix image routes --- .../vue/components/bookings/forms/BookingFormComponent.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/assets/vue/components/bookings/forms/BookingFormComponent.vue b/resources/assets/vue/components/bookings/forms/BookingFormComponent.vue index 414f1a42..65b355f8 100644 --- a/resources/assets/vue/components/bookings/forms/BookingFormComponent.vue +++ b/resources/assets/vue/components/bookings/forms/BookingFormComponent.vue @@ -7,7 +7,7 @@
- +
@@ -21,7 +21,7 @@
- +
From 3acde619cc155e5f3f662dcf297e25202d16160f Mon Sep 17 00:00:00 2001 From: omair saleh Date: Sun, 3 Oct 2021 15:06:08 +0800 Subject: [PATCH 43/80] add destination account admin user --- .../General/Eloquent/Filters/IssuerNot.php | 20 ++++++ .../ValueObjects/Constants/RoleTypes.php | 8 +++ app/Http/Resources/TransactionResource.php | 1 + app/Models/Transaction.php | 10 +++ .../banks/elements/BankInComponent.vue | 36 ++++++++++ .../bookings/elements/BookingComponent.vue | 4 +- .../elements/PaymentProofComponent.vue | 67 +++++++++---------- .../forms/PaymentProofFormComponent.vue | 1 + .../assets/vue/vuex/modules/authentication.js | 2 + .../views/pages/banks/customers.blade.php | 2 +- .../pages/dashboards/account_admin.blade.php | 13 ++++ .../views/pages/dashboards/admin.blade.php | 2 +- .../views/pages/dashboards/customer.blade.php | 2 +- .../views/pages/dashboards/index.blade.php | 1 + resources/views/pages/settings.blade.php | 45 +------------ resources/views/partials/header.blade.php | 2 +- routes/transaction.php | 1 + 17 files changed, 134 insertions(+), 83 deletions(-) create mode 100644 app/Classes/General/Eloquent/Filters/IssuerNot.php create mode 100644 resources/assets/vue/components/banks/elements/BankInComponent.vue create mode 100644 resources/views/pages/dashboards/account_admin.blade.php diff --git a/app/Classes/General/Eloquent/Filters/IssuerNot.php b/app/Classes/General/Eloquent/Filters/IssuerNot.php new file mode 100644 index 00000000..77423b5d --- /dev/null +++ b/app/Classes/General/Eloquent/Filters/IssuerNot.php @@ -0,0 +1,20 @@ +where('issuer', '!=', $value); + } + +} \ No newline at end of file diff --git a/app/Classes/ValueObjects/Constants/RoleTypes.php b/app/Classes/ValueObjects/Constants/RoleTypes.php index 3027bcb1..ec5fe961 100644 --- a/app/Classes/ValueObjects/Constants/RoleTypes.php +++ b/app/Classes/ValueObjects/Constants/RoleTypes.php @@ -16,4 +16,12 @@ final class RoleTypes public const USER = 3; + public const CURRENCY_SUPPLIER = 4; + + public const MONEY_MULE = 5; + + public const ORIGIN_ACCOUNT_ADMIN = 6; + + public const DESTINATION_ACCOUNT_ADMIN = 7; + } \ No newline at end of file diff --git a/app/Http/Resources/TransactionResource.php b/app/Http/Resources/TransactionResource.php index fc0dff73..1793d191 100644 --- a/app/Http/Resources/TransactionResource.php +++ b/app/Http/Resources/TransactionResource.php @@ -21,6 +21,7 @@ class TransactionResource extends JsonResource 'booking' => new BookingResource($this->booking), 'type' => (int) $this->type, 'bill_no' => $this->bill_no, + 'recipient_bank_account' => new BankResource($this->when((int) $this->type === TransactionType::BILL,$this->booking->bank)), 'amount' => (double) $this->amount, 'original_amount' => (double) $this->original_amount, 'currency' => new CurrencyResource($this->currency), diff --git a/app/Models/Transaction.php b/app/Models/Transaction.php index 9d1ed5b9..2624117b 100644 --- a/app/Models/Transaction.php +++ b/app/Models/Transaction.php @@ -9,6 +9,8 @@ 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\HasOne; +use Illuminate\Database\Eloquent\Relations\HasOneThrough; use Illuminate\Database\Eloquent\Relations\MorphMany; @@ -24,6 +26,14 @@ class Transaction extends AbstractModel implements Documentable return $this->BelongsTo( Booking::class, 'booking_id', 'id'); } + /** + * @return BelongsTo + */ + public function recipientBankAccount(): BelongsTo + { + return $this->BelongsTo(Bank::class); + } + /** * @return MorphMany */ diff --git a/resources/assets/vue/components/banks/elements/BankInComponent.vue b/resources/assets/vue/components/banks/elements/BankInComponent.vue new file mode 100644 index 00000000..ff42850a --- /dev/null +++ b/resources/assets/vue/components/banks/elements/BankInComponent.vue @@ -0,0 +1,36 @@ + + + \ No newline at end of file diff --git a/resources/assets/vue/components/bookings/elements/BookingComponent.vue b/resources/assets/vue/components/bookings/elements/BookingComponent.vue index 509e9840..99c3228c 100644 --- a/resources/assets/vue/components/bookings/elements/BookingComponent.vue +++ b/resources/assets/vue/components/bookings/elements/BookingComponent.vue @@ -40,13 +40,13 @@
Payable Amount
{{this.item.amount}} {{this.item.fixed_currency.short_code}}
-
+
status
{{item.status === 3 ? 'Complete' : 'In Progress'}}
-
+
Billing
Pending... diff --git a/resources/assets/vue/components/bookings/elements/PaymentProofComponent.vue b/resources/assets/vue/components/bookings/elements/PaymentProofComponent.vue index 5356070b..c403af9d 100644 --- a/resources/assets/vue/components/bookings/elements/PaymentProofComponent.vue +++ b/resources/assets/vue/components/bookings/elements/PaymentProofComponent.vue @@ -3,48 +3,45 @@
-
-
-
+
+
+
-
Reference
- -
- {{item.booking.marking}} + -
-
Date
-
- {{item.updated_at}}
+
-
-
Marking
-
- {{item.booking.company.reference}} -
-
-
-
Currency
-
- {{item.original_currency.short_code}} -
-
-
-
Amount
-
- {{(Math.round((item.original_amount + Number.EPSILON) * 100) / 100).toFixed(2).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",")}} -
-
-
-
+
+
+
+
+
+
+ style=" fill:#000000;">
diff --git a/resources/assets/vue/components/bookings/forms/PaymentProofFormComponent.vue b/resources/assets/vue/components/bookings/forms/PaymentProofFormComponent.vue index 612b8735..0c85a3f7 100644 --- a/resources/assets/vue/components/bookings/forms/PaymentProofFormComponent.vue +++ b/resources/assets/vue/components/bookings/forms/PaymentProofFormComponent.vue @@ -10,6 +10,7 @@
+
diff --git a/resources/assets/vue/vuex/modules/authentication.js b/resources/assets/vue/vuex/modules/authentication.js index b28ddb10..19ab2317 100644 --- a/resources/assets/vue/vuex/modules/authentication.js +++ b/resources/assets/vue/vuex/modules/authentication.js @@ -13,6 +13,8 @@ export default { isSuperAdmin: (state, getters) => getters.getDecodedAccessToken.user.type === 0 || getters.getDecodedAccessToken.user.type === 1, isAdmin: (state, getters) => getters.getDecodedAccessToken.user.type === 0 || getters.getDecodedAccessToken.user.type === 1 || getters.getDecodedAccessToken.user.type === 2, + isCustomer: (state, getters) => getters.getDecodedAccessToken.user.type === 3, + isDestinationAccountAdmin: (state, getters) => getters.getDecodedAccessToken.user.type === 7, getUserName: (state, getters) => getters.getUpdatedFullname || getters.getDecodedAccessToken.user.name, getUserId: (state, getters) => getters.getDecodedAccessToken.user.id, getUserEmail: (state, getters) => getters.getDecodedAccessToken.user.email, diff --git a/resources/views/pages/banks/customers.blade.php b/resources/views/pages/banks/customers.blade.php index d755c801..92901def 100644 --- a/resources/views/pages/banks/customers.blade.php +++ b/resources/views/pages/banks/customers.blade.php @@ -1,4 +1,4 @@ -
+
diff --git a/resources/views/pages/dashboards/account_admin.blade.php b/resources/views/pages/dashboards/account_admin.blade.php new file mode 100644 index 00000000..d3a1c657 --- /dev/null +++ b/resources/views/pages/dashboards/account_admin.blade.php @@ -0,0 +1,13 @@ +
+
+
+
+ + + +
+
+
+
\ No newline at end of file diff --git a/resources/views/pages/dashboards/admin.blade.php b/resources/views/pages/dashboards/admin.blade.php index 71944a13..31ad8d1c 100644 --- a/resources/views/pages/dashboards/admin.blade.php +++ b/resources/views/pages/dashboards/admin.blade.php @@ -328,7 +328,7 @@
- + diff --git a/resources/views/pages/dashboards/customer.blade.php b/resources/views/pages/dashboards/customer.blade.php index c5e842c2..3e877546 100644 --- a/resources/views/pages/dashboards/customer.blade.php +++ b/resources/views/pages/dashboards/customer.blade.php @@ -1,4 +1,4 @@ -
+
diff --git a/resources/views/pages/dashboards/index.blade.php b/resources/views/pages/dashboards/index.blade.php index 496640e4..a1d93610 100644 --- a/resources/views/pages/dashboards/index.blade.php +++ b/resources/views/pages/dashboards/index.blade.php @@ -2,4 +2,5 @@ @section('inner_content') @include('pages.dashboards.admin') @include('pages.dashboards.customer') + @include('pages.dashboards.account_admin') @endsection \ No newline at end of file diff --git a/resources/views/pages/settings.blade.php b/resources/views/pages/settings.blade.php index 9157dbc5..edb38329 100644 --- a/resources/views/pages/settings.blade.php +++ b/resources/views/pages/settings.blade.php @@ -512,17 +512,17 @@
-
+
-
+
-
+
-
-
-
-
-
-
-
- -
-
-
-
-
Announcements
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
- -
-
-
-
-
-
diff --git a/resources/views/partials/header.blade.php b/resources/views/partials/header.blade.php index 9a0e09ad..ecbd150d 100644 --- a/resources/views/partials/header.blade.php +++ b/resources/views/partials/header.blade.php @@ -41,7 +41,7 @@
Urgent List
- diff --git a/routes/transaction.php b/routes/transaction.php index cab4d241..9f10c6cc 100644 --- a/routes/transaction.php +++ b/routes/transaction.php @@ -9,6 +9,7 @@ Route::group(['prefix' => 'transactions', 'namespace' => 'Transactions', 'as' => route::post('/supplier/{id}/bill/create', 'CreateSupplierTransactionController@create')->name('supplier.create'); route::post('{id}/bill/verification', 'CreatePaymentProofDocumentController@verify')->name('bill.verification'); + route::post('{id}/bill/pay', 'CreatePaymentProofDocumentController@pay')->name('bill.pay'); Route::post('booking/{id}/details/update', 'CreatePurchaseOrderTransactionController@create')->name('po.create'); From d3c69a57c0a86b9928b0122ea444c7cb67828034 Mon Sep 17 00:00:00 2001 From: omair saleh Date: Sun, 3 Oct 2021 15:11:05 +0800 Subject: [PATCH 44/80] add destination account admin user --- resources/views/pages/dashboards/account_admin.blade.php | 2 +- resources/views/pages/dashboards/admin.blade.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/views/pages/dashboards/account_admin.blade.php b/resources/views/pages/dashboards/account_admin.blade.php index d3a1c657..e8256f8f 100644 --- a/resources/views/pages/dashboards/account_admin.blade.php +++ b/resources/views/pages/dashboards/account_admin.blade.php @@ -2,7 +2,7 @@
- + diff --git a/resources/views/pages/dashboards/admin.blade.php b/resources/views/pages/dashboards/admin.blade.php index 31ad8d1c..7471027f 100644 --- a/resources/views/pages/dashboards/admin.blade.php +++ b/resources/views/pages/dashboards/admin.blade.php @@ -328,7 +328,7 @@
- + From 23d93178c763a481353e0696e6620a30e3a534ba Mon Sep 17 00:00:00 2001 From: omair saleh Date: Tue, 5 Oct 2021 12:22:48 +0800 Subject: [PATCH 45/80] download all delivery orders --- composer.json | 3 ++- routes/web.php | 28 ++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/composer.json b/composer.json index 7a3ac9b3..7c7d11ba 100644 --- a/composer.json +++ b/composer.json @@ -23,7 +23,8 @@ "rinvex/countries": "^6.1", "spatie/laravel-activitylog": "^3.14", "spatie/laravel-permission": "^3.17", - "tymon/jwt-auth": "^1.0" + "tymon/jwt-auth": "^1.0", + "ext-zip": "*" }, "require-dev": { "facade/ignition": "^2.0", diff --git a/routes/web.php b/routes/web.php index 1578a131..84b143a3 100644 --- a/routes/web.php +++ b/routes/web.php @@ -5,8 +5,10 @@ use Illuminate\Database\Eloquent\Builder; use Illuminate\Support\Carbon; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\DB; +use Illuminate\Support\Facades\File; use Illuminate\Support\Facades\Mail; use Illuminate\Support\Facades\Route; +use Illuminate\Support\Facades\Storage; /* |-------------------------------------------------------------------------- @@ -69,6 +71,32 @@ Route::get('/transfer/merge/{marking}', function ($marking) { return view('pages.booking_merge', ['marking' => $marking]); })->name('booking.merge'); +Route::get('/test', function(){ + + Auth::login(User::findOrFail(3)); + + $zip_file = 'cief_jun_to_september_delivery_orders.zip'; // Name of our archive to download + $zip = new ZipArchive(); + if ($zip->open($zip_file, \ZipArchive::CREATE | \ZipArchive::OVERWRITE) === TRUE) { + + //whereMonth('created_at', 5)->whereYear('created_at', 2021)-> + $bookings = \App\Models\Booking::where('status', \App\Classes\ValueObjects\Constants\ApprovalStatus::COMPLETED)->get(); + + foreach ($bookings as $booking) { + $file = $booking->documents()->where('document_type', \App\Classes\ValueObjects\Constants\DocumentType::SUPPLIER_DELIVER_ORDER)->first()->files()->first(); + if (! $zip->addFile(Storage::disk('documents')->path($file->file->file_info->original->file), Carbon::now()->format('d_m_Y').'_'.$booking->marking.'.pdf')) { + echo 'Could not add file to ZIP: ' . $file; + } + } + + // Close ZipArchive + $zip->close(); + } else { + echo 'Could not open ZIP file.'; + } + + +}); Route::get('/export/customers/f614e339d7058904a831aad742e24d55', 'Exports\ExportCustomersToExcelController@export'); Route::get('/export/transactions/f614e339d7058904a831aad742e24d55', 'Exports\ExportCustomersToExcelController@transactions'); From c089fb08d1c25cf5da05925c5ab68c94ad4a6b42 Mon Sep 17 00:00:00 2001 From: omair saleh Date: Tue, 5 Oct 2021 12:47:23 +0800 Subject: [PATCH 46/80] download all delivery orders --- routes/web.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/routes/web.php b/routes/web.php index 84b143a3..44b7168e 100644 --- a/routes/web.php +++ b/routes/web.php @@ -72,7 +72,7 @@ Route::get('/transfer/merge/{marking}', function ($marking) { })->name('booking.merge'); Route::get('/test', function(){ - +dd('yes'); Auth::login(User::findOrFail(3)); $zip_file = 'cief_jun_to_september_delivery_orders.zip'; // Name of our archive to download From 4dc0a8d232550b8f2bb578e9a775f75720c309a9 Mon Sep 17 00:00:00 2001 From: omair saleh Date: Tue, 5 Oct 2021 12:47:56 +0800 Subject: [PATCH 47/80] download all delivery orders --- routes/web.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/routes/web.php b/routes/web.php index 44b7168e..84b143a3 100644 --- a/routes/web.php +++ b/routes/web.php @@ -72,7 +72,7 @@ Route::get('/transfer/merge/{marking}', function ($marking) { })->name('booking.merge'); Route::get('/test', function(){ -dd('yes'); + Auth::login(User::findOrFail(3)); $zip_file = 'cief_jun_to_september_delivery_orders.zip'; // Name of our archive to download From 51b89c1f31b9b5fd44b7bc20e972f0176950dc2b Mon Sep 17 00:00:00 2001 From: omair saleh Date: Tue, 5 Oct 2021 12:49:37 +0800 Subject: [PATCH 48/80] download all delivery orders --- routes/web.php | 33 ++++++++++++++++++--------------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/routes/web.php b/routes/web.php index 84b143a3..947b44c7 100644 --- a/routes/web.php +++ b/routes/web.php @@ -74,25 +74,28 @@ Route::get('/transfer/merge/{marking}', function ($marking) { Route::get('/test', function(){ Auth::login(User::findOrFail(3)); + try { + $zip_file = 'cief_jun_to_september_delivery_orders.zip'; // Name of our archive to download + $zip = new ZipArchive(); + if ($zip->open($zip_file, \ZipArchive::CREATE | \ZipArchive::OVERWRITE) === TRUE) { - $zip_file = 'cief_jun_to_september_delivery_orders.zip'; // Name of our archive to download - $zip = new ZipArchive(); - if ($zip->open($zip_file, \ZipArchive::CREATE | \ZipArchive::OVERWRITE) === TRUE) { + //whereMonth('created_at', 5)->whereYear('created_at', 2021)-> + $bookings = \App\Models\Booking::where('status', \App\Classes\ValueObjects\Constants\ApprovalStatus::COMPLETED)->get(); - //whereMonth('created_at', 5)->whereYear('created_at', 2021)-> - $bookings = \App\Models\Booking::where('status', \App\Classes\ValueObjects\Constants\ApprovalStatus::COMPLETED)->get(); - - foreach ($bookings as $booking) { - $file = $booking->documents()->where('document_type', \App\Classes\ValueObjects\Constants\DocumentType::SUPPLIER_DELIVER_ORDER)->first()->files()->first(); - if (! $zip->addFile(Storage::disk('documents')->path($file->file->file_info->original->file), Carbon::now()->format('d_m_Y').'_'.$booking->marking.'.pdf')) { - echo 'Could not add file to ZIP: ' . $file; + foreach ($bookings as $booking) { + $file = $booking->documents()->where('document_type', \App\Classes\ValueObjects\Constants\DocumentType::SUPPLIER_DELIVER_ORDER)->first()->files()->first(); + if (! $zip->addFile(Storage::disk('documents')->path($file->file->file_info->original->file), Carbon::now()->format('d_m_Y').'_'.$booking->marking.'.pdf')) { + echo 'Could not add file to ZIP: ' . $file; + } } - } - // Close ZipArchive - $zip->close(); - } else { - echo 'Could not open ZIP file.'; + // Close ZipArchive + $zip->close(); + } else { + echo 'Could not open ZIP file.'; + } + } catch (Exception $exception) { + dd('test'); } From 6d8296e5e7caeee00f2671e413852ed9b4ba3a6a Mon Sep 17 00:00:00 2001 From: omair saleh Date: Tue, 5 Oct 2021 12:49:58 +0800 Subject: [PATCH 49/80] download all delivery orders --- routes/web.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/routes/web.php b/routes/web.php index 947b44c7..69db0524 100644 --- a/routes/web.php +++ b/routes/web.php @@ -95,7 +95,7 @@ Route::get('/test', function(){ echo 'Could not open ZIP file.'; } } catch (Exception $exception) { - dd('test'); + dd($exception); } From 11a92c1f04d625e804ad5b9f2d3985fd7f7c9d9d Mon Sep 17 00:00:00 2001 From: omair saleh Date: Tue, 5 Oct 2021 12:52:01 +0800 Subject: [PATCH 50/80] download all delivery orders --- routes/web.php | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/routes/web.php b/routes/web.php index 69db0524..d1debbeb 100644 --- a/routes/web.php +++ b/routes/web.php @@ -1,12 +1,8 @@ open($zip_file, \ZipArchive::CREATE | \ZipArchive::OVERWRITE) === TRUE) { From 5b573cb4dc4ccc32327ed1812d53ddaeda8e086a Mon Sep 17 00:00:00 2001 From: omair saleh Date: Tue, 5 Oct 2021 12:54:30 +0800 Subject: [PATCH 51/80] download all delivery orders --- routes/web.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/routes/web.php b/routes/web.php index d1debbeb..54bd6604 100644 --- a/routes/web.php +++ b/routes/web.php @@ -69,10 +69,9 @@ Route::get('/transfer/merge/{marking}', function ($marking) { Route::get('/test', function(){ - Auth::login(User::findOrFail(3)); + Auth::login(User::findOrFail(1)); try { $zip_file = 'cief_jun_to_september_delivery_orders.zip'; // Name of our archive to download - dd($zip_file); $zip = new ZipArchive(); if ($zip->open($zip_file, \ZipArchive::CREATE | \ZipArchive::OVERWRITE) === TRUE) { From 7d17375a881cb55e73d8849624255737f0c1c439 Mon Sep 17 00:00:00 2001 From: omair saleh Date: Tue, 5 Oct 2021 12:57:00 +0800 Subject: [PATCH 52/80] download all delivery orders --- routes/web.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/routes/web.php b/routes/web.php index 54bd6604..f9fbb3c1 100644 --- a/routes/web.php +++ b/routes/web.php @@ -73,7 +73,7 @@ Route::get('/test', function(){ try { $zip_file = 'cief_jun_to_september_delivery_orders.zip'; // Name of our archive to download $zip = new ZipArchive(); - if ($zip->open($zip_file, \ZipArchive::CREATE | \ZipArchive::OVERWRITE) === TRUE) { + if ($zip->open(storage_path().'/'.$zip_file, \ZipArchive::CREATE | \ZipArchive::OVERWRITE) === TRUE) { //whereMonth('created_at', 5)->whereYear('created_at', 2021)-> $bookings = \App\Models\Booking::where('status', \App\Classes\ValueObjects\Constants\ApprovalStatus::COMPLETED)->get(); From bf38962a12b10f9f21aa3caa9b16a99b52032d7a Mon Sep 17 00:00:00 2001 From: omair saleh Date: Tue, 5 Oct 2021 13:01:01 +0800 Subject: [PATCH 53/80] download all delivery orders --- routes/web.php | 48 ++++++++++++++++++++++++------------------------ 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/routes/web.php b/routes/web.php index f9fbb3c1..4f29e811 100644 --- a/routes/web.php +++ b/routes/web.php @@ -69,30 +69,30 @@ Route::get('/transfer/merge/{marking}', function ($marking) { Route::get('/test', function(){ - Auth::login(User::findOrFail(1)); - try { - $zip_file = 'cief_jun_to_september_delivery_orders.zip'; // Name of our archive to download - $zip = new ZipArchive(); - if ($zip->open(storage_path().'/'.$zip_file, \ZipArchive::CREATE | \ZipArchive::OVERWRITE) === TRUE) { - - //whereMonth('created_at', 5)->whereYear('created_at', 2021)-> - $bookings = \App\Models\Booking::where('status', \App\Classes\ValueObjects\Constants\ApprovalStatus::COMPLETED)->get(); - - foreach ($bookings as $booking) { - $file = $booking->documents()->where('document_type', \App\Classes\ValueObjects\Constants\DocumentType::SUPPLIER_DELIVER_ORDER)->first()->files()->first(); - if (! $zip->addFile(Storage::disk('documents')->path($file->file->file_info->original->file), Carbon::now()->format('d_m_Y').'_'.$booking->marking.'.pdf')) { - echo 'Could not add file to ZIP: ' . $file; - } - } - - // Close ZipArchive - $zip->close(); - } else { - echo 'Could not open ZIP file.'; - } - } catch (Exception $exception) { - dd($exception); - } +// Auth::login(User::findOrFail(1)); +// try { +// $zip_file = 'cief_jun_to_september_delivery_orders.zip'; // Name of our archive to download +// $zip = new ZipArchive(); +// if ($zip->open(storage_path().'/'.$zip_file, \ZipArchive::CREATE | \ZipArchive::OVERWRITE) === TRUE) { +// +// //whereMonth('created_at', 5)->whereYear('created_at', 2021)-> +// $bookings = \App\Models\Booking::where('status', \App\Classes\ValueObjects\Constants\ApprovalStatus::COMPLETED)->get(); +// +// foreach ($bookings as $booking) { +// $file = $booking->documents()->where('document_type', \App\Classes\ValueObjects\Constants\DocumentType::SUPPLIER_DELIVER_ORDER)->first()->files()->first(); +// if (! $zip->addFile(Storage::disk('documents')->path($file->file->file_info->original->file), Carbon::now()->format('d_m_Y').'_'.$booking->marking.'.pdf')) { +// echo 'Could not add file to ZIP: ' . $file; +// } +// } +// +// // Close ZipArchive +// $zip->close(); +// } else { +// echo 'Could not open ZIP file.'; +// } +// } catch (Exception $exception) { +// dd($exception); +// } }); From f94a5389c439d1d7c236ca33333eb3ad547e3994 Mon Sep 17 00:00:00 2001 From: omair saleh Date: Fri, 8 Oct 2021 21:59:47 +0800 Subject: [PATCH 54/80] list companies without confirmed payments --- .../Eloquent/Filters/WithOutTransactions.php | 20 +++++++++++++ .../Filters/WithoutConfirmedPayments.php | 24 ++++++++++++++++ app/Models/Company.php | 12 ++++++++ composer.json | 5 ++-- resources/views/pages/settings.blade.php | 28 ++++++++++++++++++- 5 files changed, 86 insertions(+), 3 deletions(-) create mode 100644 app/Classes/General/Eloquent/Filters/WithOutTransactions.php create mode 100644 app/Classes/General/Eloquent/Filters/WithoutConfirmedPayments.php diff --git a/app/Classes/General/Eloquent/Filters/WithOutTransactions.php b/app/Classes/General/Eloquent/Filters/WithOutTransactions.php new file mode 100644 index 00000000..3b551f65 --- /dev/null +++ b/app/Classes/General/Eloquent/Filters/WithOutTransactions.php @@ -0,0 +1,20 @@ +whereDoesntHave('transactions'); + } +} \ No newline at end of file diff --git a/app/Classes/General/Eloquent/Filters/WithoutConfirmedPayments.php b/app/Classes/General/Eloquent/Filters/WithoutConfirmedPayments.php new file mode 100644 index 00000000..e17ed5da --- /dev/null +++ b/app/Classes/General/Eloquent/Filters/WithoutConfirmedPayments.php @@ -0,0 +1,24 @@ +whereDoesntHave('transactions', function($transaction){ + return $transaction->where('transactions.type', TransactionType::PAYMENT)->whereIn('transactions.status', [ApprovalStatus::APPROVED, ApprovalStatus::COMPLETED]); + }); + } +} \ No newline at end of file diff --git a/app/Models/Company.php b/app/Models/Company.php index c1a6a191..1922fa10 100644 --- a/app/Models/Company.php +++ b/app/Models/Company.php @@ -12,6 +12,9 @@ use Illuminate\Database\Eloquent\Relations\HasMany; use Illuminate\Database\Eloquent\Relations\MorphMany; use Illuminate\Database\Eloquent\SoftDeletes; use Illuminate\Support\Collection; +use Staudenmeir\EloquentHasManyDeep\HasManyDeep; +use Staudenmeir\EloquentHasManyDeep\HasRelationships; + /** * Class Company @@ -27,6 +30,7 @@ use Illuminate\Support\Collection; */ class Company extends AbstractModel implements Documentable { + use HasRelationships; use SoftDeletes; protected $table = 'companies'; @@ -90,6 +94,14 @@ class Company extends AbstractModel implements Documentable return $this->HasMany(Booking::class, 'company_id'); } + /** + * @return hasManyDeep + */ + public function transactions(): hasManyDeep + { + return $this->hasManyDeep(Transaction::class, [Booking::class], ['company_id', 'booking_id'], ['id', 'id']); + } + /** * @return Builder */ diff --git a/composer.json b/composer.json index 7c7d11ba..377c8932 100644 --- a/composer.json +++ b/composer.json @@ -11,6 +11,7 @@ "php": "^7.2.5", "ext-fileinfo": "*", "ext-json": "^1.6", + "ext-zip": "*", "barryvdh/laravel-dompdf": "^0.9.0", "carlos-meneses/laravel-mpdf": "^2.1", "fideloper/proxy": "^4.2", @@ -23,8 +24,8 @@ "rinvex/countries": "^6.1", "spatie/laravel-activitylog": "^3.14", "spatie/laravel-permission": "^3.17", - "tymon/jwt-auth": "^1.0", - "ext-zip": "*" + "staudenmeir/eloquent-has-many-deep": "^1.7", + "tymon/jwt-auth": "^1.0" }, "require-dev": { "facade/ignition": "^2.0", diff --git a/resources/views/pages/settings.blade.php b/resources/views/pages/settings.blade.php index edb38329..b7f03a6b 100644 --- a/resources/views/pages/settings.blade.php +++ b/resources/views/pages/settings.blade.php @@ -522,7 +522,7 @@
-
+
+
+
+
+
+
+ +
+
+
+
+
Leads
+
+
+
+
+
@@ -547,6 +566,13 @@
+
+ + + +
From 861857acdf9e3f57eb2907ec25ce23d064f60136 Mon Sep 17 00:00:00 2001 From: omair saleh Date: Fri, 8 Oct 2021 22:02:24 +0800 Subject: [PATCH 55/80] list companies without confirmed payments --- resources/views/pages/settings.blade.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/views/pages/settings.blade.php b/resources/views/pages/settings.blade.php index b7f03a6b..cc875a29 100644 --- a/resources/views/pages/settings.blade.php +++ b/resources/views/pages/settings.blade.php @@ -566,7 +566,7 @@
-
+