diff --git a/app/Console/Commands/CheckData.php b/app/Console/Commands/CheckData.php index fabfca0982e7..e9fec0c084d0 100644 --- a/app/Console/Commands/CheckData.php +++ b/app/Console/Commands/CheckData.php @@ -322,8 +322,8 @@ class CheckData extends Command $total_invoice_payments = 0; foreach ($client->invoices->where('is_deleted', false) as $invoice) { - $total_amount = $invoice->payments->sum('pivot.amount'); - $total_refund = $invoice->payments->sum('pivot.refunded'); + $total_amount = $invoice->payments->whereNull('deleted_at')->sum('pivot.amount'); + $total_refund = $invoice->payments->whereNull('deleted_at')->sum('pivot.refunded'); $total_invoice_payments += ($total_amount - $total_refund); } diff --git a/app/Http/Controllers/PaymentController.php b/app/Http/Controllers/PaymentController.php index 4aa6dde3e805..96cb5401f3b2 100644 --- a/app/Http/Controllers/PaymentController.php +++ b/app/Http/Controllers/PaymentController.php @@ -438,11 +438,13 @@ class PaymentController extends BaseController */ public function destroy(DestroyPaymentRequest $request, Payment $payment) { - $payment->service()->reversePayment(); + // $payment->service()->deletePayment(); - $payment->is_deleted = true; - $payment->save(); - $payment->delete(); + // $payment->is_deleted = true; + // $payment->save(); + // $payment->delete(); + + $this->payment_repo->delete($payment); return $this->itemResponse($payment); } diff --git a/app/Models/Paymentable.php b/app/Models/Paymentable.php index 1e013fc211a3..56b8e9134558 100644 --- a/app/Models/Paymentable.php +++ b/app/Models/Paymentable.php @@ -12,9 +12,12 @@ namespace App\Models; use Illuminate\Database\Eloquent\Relations\Pivot; +use Illuminate\Database\Eloquent\SoftDeletes; class Paymentable extends Pivot { + use SoftDeletes; + protected $table = 'paymentables'; //protected $dateFormat = 'Y-m-d H:i:s.u'; diff --git a/app/Services/Payment/DeletePayment.php b/app/Services/Payment/DeletePayment.php index d9d145fb5d0d..6157f40ccc2a 100644 --- a/app/Services/Payment/DeletePayment.php +++ b/app/Services/Payment/DeletePayment.php @@ -40,6 +40,7 @@ class DeletePayment ->updateCreditables() //return the credits first ->adjustInvoices() ->updateClient() + ->deletePaymentables() ->save(); } @@ -51,6 +52,13 @@ class DeletePayment //set applied amount to 0 + private function deletePaymentables() + { + $this->payment->paymentables()->update(['deleted_at' => now()]); + + return $this; + } + private function updateClient() { $this->payment->client->service()->updatePaidToDate(-1 * $this->payment->amount)->save(); @@ -66,7 +74,7 @@ class DeletePayment $paymentable_invoice->ledger()->updateInvoiceBalance($paymentable_invoice->pivot->amount)->save(); $paymentable_invoice->client->service()->updateBalance($paymentable_invoice->pivot->amount)->save(); - if (floatval($paymentable_invoice->balance) == 0) { + if ($paymentable_invoice->balance == $paymentable_invoice->amount) { $paymentable_invoice->service()->setStatus(Invoice::STATUS_SENT)->save(); } else { $paymentable_invoice->service()->setStatus(Invoice::STATUS_PARTIAL)->save(); diff --git a/app/Transformers/PaymentableTransformer.php b/app/Transformers/PaymentableTransformer.php index f171e4b330bd..b4e36a317556 100644 --- a/app/Transformers/PaymentableTransformer.php +++ b/app/Transformers/PaymentableTransformer.php @@ -46,6 +46,7 @@ class PaymentableTransformer extends EntityTransformer 'refunded' => (float) $paymentable->refunded, 'created_at' => (int) $paymentable->created_at, 'updated_at' => (int) $paymentable->updated_at, + 'archived_at' => (int) $paymentable->deleted_at, ]; } } diff --git a/database/migrations/2020_11_15_203755_soft_delete_paymentables.php b/database/migrations/2020_11_15_203755_soft_delete_paymentables.php new file mode 100644 index 000000000000..b0f275a7960d --- /dev/null +++ b/database/migrations/2020_11_15_203755_soft_delete_paymentables.php @@ -0,0 +1,30 @@ +softDeletes('deleted_at', 6); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + // + } +}