public function deletedPayment(PaymentWasDeleted $event)
 {
     $payment = $event->payment;
     // if the payment was from a credit we need to refund the credit
     if ($payment->payment_type_id != PAYMENT_TYPE_CREDIT) {
         return;
     }
     $credit = Credit::createNew();
     $credit->client_id = $payment->client_id;
     $credit->credit_date = Carbon::now()->toDateTimeString();
     $credit->balance = $credit->amount = $payment->amount;
     $credit->private_notes = $payment->transaction_reference;
     $credit->save();
 }
 public function save($publicId = null, $input)
 {
     if ($publicId) {
         $credit = Credit::scope($publicId)->firstOrFail();
     } else {
         $credit = Credit::createNew();
     }
     $credit->client_id = Client::getPrivateId($input['client']);
     $credit->credit_date = Utils::toSqlDate($input['credit_date']);
     $credit->amount = Utils::parseFloat($input['amount']);
     $credit->balance = Utils::parseFloat($input['amount']);
     $credit->private_notes = trim($input['private_notes']);
     $credit->save();
     return $credit;
 }
 public function save($input, $credit = null)
 {
     $publicId = isset($data['public_id']) ? $data['public_id'] : false;
     if ($credit) {
         // do nothing
     } elseif ($publicId) {
         $credit = Credit::scope($publicId)->firstOrFail();
         \Log::warning('Entity not set in credit repo save');
     } else {
         $credit = Credit::createNew();
     }
     $credit->client_id = Client::getPrivateId($input['client']);
     $credit->credit_date = Utils::toSqlDate($input['credit_date']);
     $credit->amount = Utils::parseFloat($input['amount']);
     $credit->balance = Utils::parseFloat($input['amount']);
     $credit->private_notes = trim($input['private_notes']);
     $credit->save();
     return $credit;
 }
Example #4
0
 public static function updatePayment($payment)
 {
     if ($payment->is_deleted && !$payment->getOriginal('is_deleted')) {
         $client = $payment->client;
         $client->balance = $client->balance + $payment->amount;
         $client->paid_to_date = $client->paid_to_date - $payment->amount;
         $client->save();
         $invoice = $payment->invoice;
         $invoice->balance = $invoice->balance + $payment->amount;
         if ($invoice->isPaid() && $invoice->balance > 0) {
             $invoice->invoice_status_id = $invoice->balance == $invoice->amount ? INVOICE_STATUS_DRAFT : INVOICE_STATUS_PARTIAL;
         }
         $invoice->save();
         // deleting a payment from credit creates a new credit
         if ($payment->payment_type_id == PAYMENT_TYPE_CREDIT) {
             $credit = Credit::createNew();
             $credit->client_id = $client->id;
             $credit->credit_date = Carbon::now()->toDateTimeString();
             $credit->balance = $credit->amount = $payment->amount;
             $credit->private_notes = $payment->transaction_reference;
             $credit->save();
         }
         $activity = Activity::getBlank();
         $activity->payment_id = $payment->id;
         $activity->client_id = $invoice->client_id;
         $activity->invoice_id = $invoice->id;
         $activity->activity_type_id = ACTIVITY_TYPE_DELETE_PAYMENT;
         $activity->message = Utils::encodeActivity(Auth::user(), 'deleted ' . $payment->getName());
         $activity->balance = $client->balance;
         $activity->adjustment = $payment->amount;
         $activity->save();
     } else {
         /*
         $diff = floatval($invoice->amount) - floatval($invoice->getOriginal('amount'));
         
         if ($diff == 0)
         {
             return;
         }
         
         $client = $invoice->client;
         $client->balance = $client->balance + $diff;
         $client->save();
         
         $activity = Activity::getBlank($invoice);
         $activity->client_id = $invoice->client_id;
         $activity->invoice_id = $invoice->id;
         $activity->activity_type_id = ACTIVITY_TYPE_UPDATE_INVOICE;
         $activity->message = Utils::encodeActivity(Auth::user(), 'updated', $invoice);
         $activity->balance = $client->balance;
         $activity->adjustment = $diff;
         $activity->json_backup = $backupInvoice->hidePrivateFields()->toJSON();
         $activity->save();
         */
     }
 }