From 44ec3fdd508fe5c60b3232d7d0cf18d834e03f82 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Thu, 7 Jul 2022 22:09:39 +1000 Subject: [PATCH] Fixes for purchase order to expense --- app/Helpers/Invoice/InvoiceSum.php | 22 +------------------ .../Controllers/PurchaseOrderController.php | 4 ++++ .../Requests/Expense/StoreExpenseRequest.php | 7 ------ .../PurchaseOrder/PurchaseOrderExpense.php | 16 ++++++++++++-- .../PurchaseOrder/PurchaseOrderService.php | 3 +++ 5 files changed, 22 insertions(+), 30 deletions(-) diff --git a/app/Helpers/Invoice/InvoiceSum.php b/app/Helpers/Invoice/InvoiceSum.php index 3436610548f0..40fb99e0a128 100644 --- a/app/Helpers/Invoice/InvoiceSum.php +++ b/app/Helpers/Invoice/InvoiceSum.php @@ -101,16 +101,12 @@ class InvoiceSum private function calculateCustomValues() { - // $this->total_taxes += $this->valuerTax($this->invoice->custom_surcharge1, $this->invoice->custom_surcharge_tax1); $this->total_custom_values += $this->valuer($this->invoice->custom_surcharge1); - // $this->total_taxes += $this->valuerTax($this->invoice->custom_surcharge2, $this->invoice->custom_surcharge_tax2); $this->total_custom_values += $this->valuer($this->invoice->custom_surcharge2); - // $this->total_taxes += $this->valuerTax($this->invoice->custom_surcharge3, $this->invoice->custom_surcharge_tax3); $this->total_custom_values += $this->valuer($this->invoice->custom_surcharge3); - // $this->total_taxes += $this->valuerTax($this->invoice->custom_surcharge4, $this->invoice->custom_surcharge_tax4); $this->total_custom_values += $this->valuer($this->invoice->custom_surcharge4); $this->total += $this->total_custom_values; @@ -155,7 +151,7 @@ class InvoiceSum */ private function calculateBalance() { - //$this->invoice->balance = $this->balance($this->getTotal(), $this->invoice); + $this->setCalculatedAttributes(); return $this; @@ -174,22 +170,6 @@ class InvoiceSum { $this->total += $this->total_taxes; - // if (is_numeric($this->invoice->custom_value1)) { - // $this->total += $this->invoice->custom_value1; - // } - - // if (is_numeric($this->invoice->custom_value2)) { - // $this->total += $this->invoice->custom_value2; - // } - - // if (is_numeric($this->invoice->custom_value3)) { - // $this->total += $this->invoice->custom_value3; - // } - - // if (is_numeric($this->invoice->custom_value4)) { - // $this->total += $this->invoice->custom_value4; - // } - return $this; } diff --git a/app/Http/Controllers/PurchaseOrderController.php b/app/Http/Controllers/PurchaseOrderController.php index 26005706f7fb..9be15daf35bf 100644 --- a/app/Http/Controllers/PurchaseOrderController.php +++ b/app/Http/Controllers/PurchaseOrderController.php @@ -367,6 +367,10 @@ class PurchaseOrderController extends BaseController $purchase_order = $this->purchase_order_repository->save($request->all(), $purchase_order); + $purchase_order = $purchase_order->service() + ->triggeredActions($request) + ->save(); + event(new PurchaseOrderWasUpdated($purchase_order, $purchase_order->company, Ninja::eventVars(auth()->user() ? auth()->user()->id : null))); return $this->itemResponse($purchase_order); diff --git a/app/Http/Requests/Expense/StoreExpenseRequest.php b/app/Http/Requests/Expense/StoreExpenseRequest.php index 3b4a5a6dc9de..438d8683db58 100644 --- a/app/Http/Requests/Expense/StoreExpenseRequest.php +++ b/app/Http/Requests/Expense/StoreExpenseRequest.php @@ -42,9 +42,6 @@ class StoreExpenseRequest extends Request if(!empty($this->client_id)) $rules['client_id'] = 'bail|sometimes|exists:clients,id,company_id,'.auth()->user()->company()->id; - if(!empty($this->purchase_order_id)) - $rules['purchase_order_id'] = 'bail|sometimes|exists:purchase_orders,id,company_id,'.auth()->user()->company()->id; - return $this->globalRules($rules); } @@ -62,10 +59,6 @@ class StoreExpenseRequest extends Request $input['currency_id'] = (string)auth()->user()->company()->settings->currency_id; } - if (array_key_exists('purchase_order_id', $input) && is_string($input['purchase_order_id'])) { - $input['purchase_order_id'] = $this->decodePrimaryKey($input['purchase_order_id']); - } - if(array_key_exists('color', $input) && is_null($input['color'])) $input['color'] = ''; diff --git a/app/Services/PurchaseOrder/PurchaseOrderExpense.php b/app/Services/PurchaseOrder/PurchaseOrderExpense.php index 52f7d6fae674..f7c5857b0510 100644 --- a/app/Services/PurchaseOrder/PurchaseOrderExpense.php +++ b/app/Services/PurchaseOrder/PurchaseOrderExpense.php @@ -28,13 +28,25 @@ class PurchaseOrderExpense { $expense = ExpenseFactory::create($this->purchase_order->company_id, $this->purchase_order->user_id); - $expense->amount = $this->purchase_order->amount; + + $expense->amount = $this->purchase_order->uses_inclusive_taxes ? $this->purchase_order->amount : ($this->purchase_order->amount - $this->purchase_order->total_taxes); + $expense->date = now(); $expense->vendor_id = $this->purchase_order->vendor_id; $expense->public_notes = $this->purchase_order->public_notes; - $expense->purchase_order_id = $this->purchase_order->id; + $expense->uses_inclusive_taxes = $this->purchase_order->uses_inclusive_taxes; + $expense->calculate_tax_by_amount = true; + + $tax_map = $this->purchase_order->calc()->getTaxMap(); + + $expense->tax_amount1 = $this->purchase_order->total_taxes; + $expense->tax_name1 = ctrans("texts.tax"); + $expense->save(); + $this->purchase_order->expense_id = $expense->id; + $this->purchase_order->save(); + return $expense; } diff --git a/app/Services/PurchaseOrder/PurchaseOrderService.php b/app/Services/PurchaseOrder/PurchaseOrderService.php index 9a81672b729c..b961d9897fdd 100644 --- a/app/Services/PurchaseOrder/PurchaseOrderService.php +++ b/app/Services/PurchaseOrder/PurchaseOrderService.php @@ -130,6 +130,9 @@ class PurchaseOrderService { $this->markSent(); + if($this->purchase_order->expense()->exists()) + return $this; + $expense = (new PurchaseOrderExpense($this->purchase_order))->run(); return $expense;