mirror of
				https://github.com/invoiceninja/invoiceninja.git
				synced 2025-11-03 23:07:32 -05:00 
			
		
		
		
	Explicitly call the service() method, rather than obfuscate. (#3281)
* Include fix as describe by @michael-hampton here #3280 * Refactor createinvitations away from jobs * Clean up * Fixes for service() refactoring * Fixes for services refactor
This commit is contained in:
		
							parent
							
								
									c25de936ed
								
							
						
					
					
						commit
						cda534e996
					
				@ -12,7 +12,6 @@ use App\Factory\PaymentFactory;
 | 
				
			|||||||
use App\Factory\QuoteFactory;
 | 
					use App\Factory\QuoteFactory;
 | 
				
			||||||
use App\Helpers\Invoice\InvoiceSum;
 | 
					use App\Helpers\Invoice\InvoiceSum;
 | 
				
			||||||
use App\Jobs\Company\UpdateCompanyLedgerWithInvoice;
 | 
					use App\Jobs\Company\UpdateCompanyLedgerWithInvoice;
 | 
				
			||||||
use App\Jobs\Invoice\CreateInvoiceInvitations;
 | 
					 | 
				
			||||||
use App\Jobs\Invoice\UpdateInvoicePayment;
 | 
					use App\Jobs\Invoice\UpdateInvoicePayment;
 | 
				
			||||||
use App\Jobs\Quote\CreateQuoteInvitations;
 | 
					use App\Jobs\Quote\CreateQuoteInvitations;
 | 
				
			||||||
use App\Listeners\Credit\CreateCreditInvitation;
 | 
					use App\Listeners\Credit\CreateCreditInvitation;
 | 
				
			||||||
@ -464,7 +463,7 @@ class CreateTestData extends Command
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        $this->invoice_repo->markSent($invoice);
 | 
					        $this->invoice_repo->markSent($invoice);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        CreateInvoiceInvitations::dispatch($invoice, $invoice->company);
 | 
					        $invoice->service()->createInvitations();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (rand(0, 1)) {
 | 
					        if (rand(0, 1)) {
 | 
				
			||||||
            $payment = PaymentFactory::create($client->company->id, $client->user->id);
 | 
					            $payment = PaymentFactory::create($client->company->id, $client->user->id);
 | 
				
			||||||
 | 
				
			|||||||
@ -618,7 +618,7 @@ class InvoiceController extends BaseController
 | 
				
			|||||||
                    return $this->errorResponse(['message' => 'Invoice cannot be marked as paid'], 400);
 | 
					                    return $this->errorResponse(['message' => 'Invoice cannot be marked as paid'], 400);
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                $invoice = $invoice->markPaid();
 | 
					                $invoice = $invoice->service()->markPaid();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                if (!$bulk) {
 | 
					                if (!$bulk) {
 | 
				
			||||||
                    return $this->itemResponse($invoice);
 | 
					                    return $this->itemResponse($invoice);
 | 
				
			||||||
 | 
				
			|||||||
@ -1,81 +0,0 @@
 | 
				
			|||||||
<?php
 | 
					 | 
				
			||||||
/**
 | 
					 | 
				
			||||||
 * Invoice Ninja (https://invoiceninja.com)
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 * @link https://github.com/invoiceninja/invoiceninja source repository
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 * @copyright Copyright (c) 2020. Invoice Ninja LLC (https://invoiceninja.com)
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 * @license https://opensource.org/licenses/AAL
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
namespace App\Jobs\Invoice;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
use App\Events\Payment\PaymentWasCreated;
 | 
					 | 
				
			||||||
use App\Factory\CreditFactory;
 | 
					 | 
				
			||||||
use App\Factory\PaymentFactory;
 | 
					 | 
				
			||||||
use App\Jobs\Company\UpdateCompanyLedgerWithPayment;
 | 
					 | 
				
			||||||
use App\Libraries\MultiDB;
 | 
					 | 
				
			||||||
use App\Models\Company;
 | 
					 | 
				
			||||||
use App\Models\Credit;
 | 
					 | 
				
			||||||
use Illuminate\Bus\Queueable;
 | 
					 | 
				
			||||||
use Illuminate\Contracts\Queue\ShouldQueue;
 | 
					 | 
				
			||||||
use Illuminate\Foundation\Bus\Dispatchable;
 | 
					 | 
				
			||||||
use Illuminate\Queue\InteractsWithQueue;
 | 
					 | 
				
			||||||
use Illuminate\Queue\SerializesModels;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
class MarkCreditPaid implements ShouldQueue
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public $credit;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    private $company;
 | 
					 | 
				
			||||||
    /**
 | 
					 | 
				
			||||||
     * Create a new job instance.
 | 
					 | 
				
			||||||
     *
 | 
					 | 
				
			||||||
     * @return void
 | 
					 | 
				
			||||||
     */
 | 
					 | 
				
			||||||
    public function __construct(Credit $credit, Company $company)
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        $this->credit = $credit;
 | 
					 | 
				
			||||||
        $this->company = $company;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /**
 | 
					 | 
				
			||||||
     * Execute the job.
 | 
					 | 
				
			||||||
     *
 | 
					 | 
				
			||||||
     *
 | 
					 | 
				
			||||||
     * @return void
 | 
					 | 
				
			||||||
     */
 | 
					 | 
				
			||||||
    public function handle()
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        MultiDB::setDB($this->company->db);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if($this->credit->status_id == Credit::STATUS_DRAFT)
 | 
					 | 
				
			||||||
            $this->credit->markSent();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /* Create Payment */
 | 
					 | 
				
			||||||
        $payment = PaymentFactory::create($this->credit->company_id, $this->credit->user_id);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        $payment->amount = $this->credit->balance;
 | 
					 | 
				
			||||||
        $payment->status_id = Credit::STATUS_COMPLETED;
 | 
					 | 
				
			||||||
        $payment->client_id = $this->credit->client_id;
 | 
					 | 
				
			||||||
        $payment->transaction_reference = ctrans('texts.manual_entry');
 | 
					 | 
				
			||||||
        /* Create a payment relationship to the invoice entity */
 | 
					 | 
				
			||||||
        $payment->save();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        $payment->credits()->attach($this->credit->id, [
 | 
					 | 
				
			||||||
            'amount' => $payment->amount
 | 
					 | 
				
			||||||
        ]);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        $this->credit->updateBalance($payment->amount*-1);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /* Update Credit balance */
 | 
					 | 
				
			||||||
        event(new PaymentWasCreated($payment, $payment->company));
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        // UpdateCompanyLedgerWithPayment::dispatchNow($payment, ($payment->amount*-1), $this->company);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        return $this->credit;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@ -44,13 +44,13 @@ class StoreCredit implements ShouldQueue
 | 
				
			|||||||
     */
 | 
					     */
 | 
				
			||||||
    public function handle(CreditRepository $credit_repository): ?Credit
 | 
					    public function handle(CreditRepository $credit_repository): ?Credit
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        MultiDB::setDB($this->company->db);
 | 
					        // MultiDB::setDB($this->company->db);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        $payment = false;
 | 
					        // $payment = false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if ($payment) {
 | 
					        // if ($payment) {
 | 
				
			||||||
            PaymentNotification::dispatch($payment, $payment->company);
 | 
					        //     PaymentNotification::dispatch($payment, $payment->company);
 | 
				
			||||||
        }
 | 
					        // }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        return $this->credit;
 | 
					        return $this->credit;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
				
			|||||||
@ -113,7 +113,7 @@ class ApplyPaymentToInvoice implements ShouldQueue
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        $this->invoice->save();
 | 
					        $this->invoice->save();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        $this->invoice = $this->invoice->applyNumber()->save();
 | 
					        $this->invoice = $this->invoice->service()->applyNumber()->save();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        return $this->invoice;
 | 
					        return $this->invoice;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
				
			|||||||
@ -1,67 +0,0 @@
 | 
				
			|||||||
<?php
 | 
					 | 
				
			||||||
/**
 | 
					 | 
				
			||||||
 * Invoice Ninja (https://invoiceninja.com)
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 * @link https://github.com/invoiceninja/invoiceninja source repository
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 * @copyright Copyright (c) 2020. Invoice Ninja LLC (https://invoiceninja.com)
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 * @license https://opensource.org/licenses/AAL
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
namespace App\Jobs\Invoice;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
use App\Factory\InvoiceInvitationFactory;
 | 
					 | 
				
			||||||
use App\Libraries\MultiDB;
 | 
					 | 
				
			||||||
use App\Models\Company;
 | 
					 | 
				
			||||||
use App\Models\Invoice;
 | 
					 | 
				
			||||||
use App\Models\InvoiceInvitation;
 | 
					 | 
				
			||||||
use Illuminate\Bus\Queueable;
 | 
					 | 
				
			||||||
use Illuminate\Contracts\Queue\ShouldQueue;
 | 
					 | 
				
			||||||
use Illuminate\Foundation\Bus\Dispatchable;
 | 
					 | 
				
			||||||
use Illuminate\Queue\InteractsWithQueue;
 | 
					 | 
				
			||||||
use Illuminate\Queue\SerializesModels;
 | 
					 | 
				
			||||||
use Symfony\Component\Debug\Exception\FatalThrowableError;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
class CreateInvoiceInvitations implements ShouldQueue
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    private $invoice;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    private $company;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /**
 | 
					 | 
				
			||||||
     * Create a new job instance.
 | 
					 | 
				
			||||||
     *
 | 
					 | 
				
			||||||
     * @return void
 | 
					 | 
				
			||||||
     */
 | 
					 | 
				
			||||||
    public function __construct(Invoice $invoice, Company $company)
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        $this->invoice = $invoice;
 | 
					 | 
				
			||||||
        $this->company = $company;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public function handle()
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        MultiDB::setDB($this->company->db);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        $contacts = $this->invoice->client->contacts;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        $contacts->each(function ($contact) {
 | 
					 | 
				
			||||||
            $invitation = InvoiceInvitation::whereCompanyId($this->invoice->company_id)
 | 
					 | 
				
			||||||
                                        ->whereClientContactId($contact->id)
 | 
					 | 
				
			||||||
                                        ->whereInvoiceId($this->invoice->id)
 | 
					 | 
				
			||||||
                                        ->first();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            if (!$invitation && $contact->send_invoice) {
 | 
					 | 
				
			||||||
                $ii = InvoiceInvitationFactory::create($this->invoice->company_id, $this->invoice->user_id);
 | 
					 | 
				
			||||||
                $ii->invoice_id = $this->invoice->id;
 | 
					 | 
				
			||||||
                $ii->client_contact_id = $contact->id;
 | 
					 | 
				
			||||||
                $ii->save();
 | 
					 | 
				
			||||||
            } elseif ($invitation && !$contact->send_invoice) {
 | 
					 | 
				
			||||||
                $invitation->delete();
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        });
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@ -103,7 +103,7 @@ class UpdateInvoicePayment implements ShouldQueue
 | 
				
			|||||||
                        $invoice->pivot->amount = $invoice->partial;
 | 
					                        $invoice->pivot->amount = $invoice->partial;
 | 
				
			||||||
                        $invoice->pivot->save();
 | 
					                        $invoice->pivot->save();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                        $invoice->updateBalance($invoice->partial*-1)
 | 
					                        $invoice->service()->updateBalance($invoice->partial*-1)
 | 
				
			||||||
                                ->clearPartial()
 | 
					                                ->clearPartial()
 | 
				
			||||||
                                ->setDueDate()
 | 
					                                ->setDueDate()
 | 
				
			||||||
                                ->setStatus(Invoice::STATUS_PARTIAL)
 | 
					                                ->setStatus(Invoice::STATUS_PARTIAL)
 | 
				
			||||||
 | 
				
			|||||||
@ -168,56 +168,6 @@ class Invoice extends BaseModel
 | 
				
			|||||||
        return new InvoiceService($this);
 | 
					        return new InvoiceService($this);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public function markPaid() :InvoiceService
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        return $this->service()->markPaid();
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public function applyNumber() :InvoiceService
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        return $this->service()->applyNumber();
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public function applyPayment($payment, $payment_amount) :InvoiceService
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        return $this->service()->applyPayment($payment, $payment_amount);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    
 | 
					 | 
				
			||||||
    public function updateBalance($balance_adjustment) :InvoiceService
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        return $this->service()->updateBalance($balance_adjustment);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public function setDueDate() :InvoiceService
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        return $this->service->setDueDate();
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public function setStatus($status) :InvoiceService
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        return $this->service()->setStatus($status);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public function clearPartial() :InvoiceService
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        return $this->service()->clearPartial();
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public function updatePartial($amount) :InvoiceService
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        return $this->service()->updatePartial($amount);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public function markSent() :InvoiceService
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        return $this->service()->markSent();
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public function markViewed() :InvoiceService
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        return $this->service()->markViewed();
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /* ---------------- */
 | 
					    /* ---------------- */
 | 
				
			||||||
    /* Settings getters */
 | 
					    /* Settings getters */
 | 
				
			||||||
    /* ---------------- */
 | 
					    /* ---------------- */
 | 
				
			||||||
 | 
				
			|||||||
@ -16,7 +16,6 @@ use App\Events\Invoice\InvoiceWasUpdated;
 | 
				
			|||||||
use App\Factory\InvoiceInvitationFactory;
 | 
					use App\Factory\InvoiceInvitationFactory;
 | 
				
			||||||
use App\Helpers\Invoice\InvoiceSum;
 | 
					use App\Helpers\Invoice\InvoiceSum;
 | 
				
			||||||
use App\Jobs\Company\UpdateCompanyLedgerWithInvoice;
 | 
					use App\Jobs\Company\UpdateCompanyLedgerWithInvoice;
 | 
				
			||||||
use App\Jobs\Invoice\CreateInvoiceInvitations;
 | 
					 | 
				
			||||||
use App\Jobs\Product\UpdateOrCreateProduct;
 | 
					use App\Jobs\Product\UpdateOrCreateProduct;
 | 
				
			||||||
use App\Listeners\Invoice\CreateInvoiceInvitation;
 | 
					use App\Listeners\Invoice\CreateInvoiceInvitation;
 | 
				
			||||||
use App\Models\ClientContact;
 | 
					use App\Models\ClientContact;
 | 
				
			||||||
@ -100,7 +99,7 @@ class InvoiceRepository extends BaseRepository
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        /* If no invitations have been created, this is our fail safe to maintain state*/
 | 
					        /* If no invitations have been created, this is our fail safe to maintain state*/
 | 
				
			||||||
        if ($invoice->invitations->count() == 0) {
 | 
					        if ($invoice->invitations->count() == 0) {
 | 
				
			||||||
            CreateInvoiceInvitations::dispatchNow($invoice, $invoice->company);
 | 
					            $invoice->service()->createInvitations();
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        $invoice = $invoice->calc()->getInvoice();
 | 
					        $invoice = $invoice->calc()->getInvoice();
 | 
				
			||||||
@ -114,7 +113,7 @@ class InvoiceRepository extends BaseRepository
 | 
				
			|||||||
            UpdateCompanyLedgerWithInvoice::dispatchNow($invoice, ($finished_amount - $starting_amount), $invoice->company);
 | 
					            UpdateCompanyLedgerWithInvoice::dispatchNow($invoice, ($finished_amount - $starting_amount), $invoice->company);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        $invoice = $invoice->applyNumber()->save();
 | 
					        $invoice = $invoice->service()->applyNumber()->save();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if ($invoice->company->update_products !== false) {
 | 
					        if ($invoice->company->update_products !== false) {
 | 
				
			||||||
            UpdateOrCreateProduct::dispatch($invoice->line_items, $invoice, $invoice->company);
 | 
					            UpdateOrCreateProduct::dispatch($invoice->line_items, $invoice, $invoice->company);
 | 
				
			||||||
@ -132,6 +131,6 @@ class InvoiceRepository extends BaseRepository
 | 
				
			|||||||
     */
 | 
					     */
 | 
				
			||||||
    public function markSent(Invoice $invoice) : ?Invoice
 | 
					    public function markSent(Invoice $invoice) : ?Invoice
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        return $invoice->markSent()->save();
 | 
					        return $invoice->service()->markSent()->save();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -94,7 +94,7 @@ class PaymentRepository extends BaseRepository
 | 
				
			|||||||
                $invoice = Invoice::whereId($paid_invoice['invoice_id'])->first();
 | 
					                $invoice = Invoice::whereId($paid_invoice['invoice_id'])->first();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                if ($invoice) {
 | 
					                if ($invoice) {
 | 
				
			||||||
                    $invoice->applyPayment($payment, $paid_invoice['amount'])->save();
 | 
					                    $invoice->service()->applyPayment($payment, $paid_invoice['amount'])->save();
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        } else {
 | 
					        } else {
 | 
				
			||||||
 | 
				
			|||||||
@ -44,16 +44,16 @@ class ApplyPayment
 | 
				
			|||||||
        if ($this->invoice->hasPartial()) {
 | 
					        if ($this->invoice->hasPartial()) {
 | 
				
			||||||
        //is partial and amount is exactly the partial amount
 | 
					        //is partial and amount is exactly the partial amount
 | 
				
			||||||
            if ($this->invoice->partial == $payment_amount) {
 | 
					            if ($this->invoice->partial == $payment_amount) {
 | 
				
			||||||
                $this->invoice->clearPartial()->setDueDate()->setStatus(Invoice::STATUS_PARTIAL)->updateBalance($payment_amount*-1);
 | 
					                $this->invoice->service()->clearPartial()->setDueDate()->setStatus(Invoice::STATUS_PARTIAL)->updateBalance($payment_amount*-1);
 | 
				
			||||||
            } elseif ($this->invoice->partial > 0 && $this->invoice->partial > $payment_amount) { //partial amount exists, but the amount is less than the partial amount
 | 
					            } elseif ($this->invoice->partial > 0 && $this->invoice->partial > $payment_amount) { //partial amount exists, but the amount is less than the partial amount
 | 
				
			||||||
                $this->invoice->updatePartial($payment_amount*-1)->updateBalance($payment_amount*-1);
 | 
					                $this->invoice->service()->updatePartial($payment_amount*-1)->updateBalance($payment_amount*-1);
 | 
				
			||||||
            } elseif ($this->invoice->partial > 0 && $this->invoice->partial < $payment_amount) { //partial exists and the amount paid is GREATER than the partial amount
 | 
					            } elseif ($this->invoice->partial > 0 && $this->invoice->partial < $payment_amount) { //partial exists and the amount paid is GREATER than the partial amount
 | 
				
			||||||
                $this->invoice->clearPartial()->setDueDate()->setStatus(Invoice::STATUS_PARTIAL)->updateBalance($payment_amount*-1);
 | 
					                $this->invoice->service()->clearPartial()->setDueDate()->setStatus(Invoice::STATUS_PARTIAL)->updateBalance($payment_amount*-1);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        } elseif ($payment_amount == $this->invoice->balance) { //total invoice paid.
 | 
					        } elseif ($payment_amount == $this->invoice->balance) { //total invoice paid.
 | 
				
			||||||
            $this->invoice->clearPartial()->setStatus(Invoice::STATUS_PAID)->updateBalance($payment_amount*-1);
 | 
					            $this->invoice->service()->clearPartial()->setStatus(Invoice::STATUS_PAID)->updateBalance($payment_amount*-1);
 | 
				
			||||||
        } elseif($payment_amount < $this->invoice->balance) { //partial invoice payment made
 | 
					        } elseif($payment_amount < $this->invoice->balance) { //partial invoice payment made
 | 
				
			||||||
            $this->invoice->clearPartial()->updateBalance($payment_amount*-1);
 | 
					            $this->invoice->service()->clearPartial()->updateBalance($payment_amount*-1);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        
 | 
					        
 | 
				
			||||||
        return $this->invoice;
 | 
					        return $this->invoice;
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										49
									
								
								app/Services/Invoice/CreateInvitations.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										49
									
								
								app/Services/Invoice/CreateInvitations.php
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,49 @@
 | 
				
			|||||||
 | 
					<?php
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Invoice Ninja (https://invoiceninja.com)
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * @link https://github.com/invoiceninja/invoiceninja source repository
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * @copyright Copyright (c) 2020. Invoice Ninja LLC (https://invoiceninja.com)
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * @license https://opensource.org/licenses/AAL
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace App\Services\Invoice;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					use App\Factory\InvoiceInvitationFactory;
 | 
				
			||||||
 | 
					use App\Models\Invoice;
 | 
				
			||||||
 | 
					use App\Models\InvoiceInvitation;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class CreateInvitations
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public function __construct()
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  	public function __invoke($invoice)
 | 
				
			||||||
 | 
					  	{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        $contacts = $invoice->client->contacts;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        $contacts->each(function ($contact) use($invoice){
 | 
				
			||||||
 | 
					            $invitation = InvoiceInvitation::whereCompanyId($invoice->company_id)
 | 
				
			||||||
 | 
					                                        ->whereClientContactId($contact->id)
 | 
				
			||||||
 | 
					                                        ->whereInvoiceId($invoice->id)
 | 
				
			||||||
 | 
					                                        ->first();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            if (!$invitation && $contact->send_invoice) {
 | 
				
			||||||
 | 
					                $ii = InvoiceInvitationFactory::create($invoice->company_id, $invoice->user_id);
 | 
				
			||||||
 | 
					                $ii->invoice_id = $invoice->id;
 | 
				
			||||||
 | 
					                $ii->client_contact_id = $contact->id;
 | 
				
			||||||
 | 
					                $ii->save();
 | 
				
			||||||
 | 
					            } elseif ($invitation && !$contact->send_invoice) {
 | 
				
			||||||
 | 
					                $invitation->delete();
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return $invoice;
 | 
				
			||||||
 | 
					  	}
 | 
				
			||||||
 | 
					}	
 | 
				
			||||||
@ -15,6 +15,8 @@ use App\Models\Invoice;
 | 
				
			|||||||
use App\Models\Payment;
 | 
					use App\Models\Payment;
 | 
				
			||||||
use App\Services\Client\ClientService;
 | 
					use App\Services\Client\ClientService;
 | 
				
			||||||
use App\Services\Invoice\ApplyNumber;
 | 
					use App\Services\Invoice\ApplyNumber;
 | 
				
			||||||
 | 
					use App\Services\Invoice\ApplyPayment;
 | 
				
			||||||
 | 
					use App\Services\Invoice\CreateInvitations;
 | 
				
			||||||
use App\Services\Invoice\MarkInvoicePaid;
 | 
					use App\Services\Invoice\MarkInvoicePaid;
 | 
				
			||||||
use App\Services\Invoice\MarkSent;
 | 
					use App\Services\Invoice\MarkSent;
 | 
				
			||||||
use App\Services\Invoice\UpdateBalance;
 | 
					use App\Services\Invoice\UpdateBalance;
 | 
				
			||||||
@ -92,6 +94,15 @@ class InvoiceService
 | 
				
			|||||||
        return $this;
 | 
					        return $this;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public function createInvitations()
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        $create_invitation = new CreateInvitations();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        $this->invoice = $create_invitation($this->invoice);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return $this;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public function markSent()
 | 
					    public function markSent()
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        $mark_sent = new MarkSent($this->invoice->client);
 | 
					        $mark_sent = new MarkSent($this->invoice->client);
 | 
				
			||||||
@ -149,9 +160,6 @@ class InvoiceService
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * Saves the invoice
 | 
					     * Saves the invoice
 | 
				
			||||||
     * @return Invoice object 
 | 
					     * @return Invoice object 
 | 
				
			||||||
 | 
				
			|||||||
@ -48,7 +48,10 @@ class MarkPaid
 | 
				
			|||||||
            'amount' => $payment->amount
 | 
					            'amount' => $payment->amount
 | 
				
			||||||
        ]);
 | 
					        ]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        $invoice->updateBalance($payment->amount*-1)->save();
 | 
					        $invoice->service()
 | 
				
			||||||
 | 
					                ->updateBalance($payment->amount*-1)
 | 
				
			||||||
 | 
					                ->setStatus(Invoice::STATUS_PAID)
 | 
				
			||||||
 | 
					                ->save();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        /* Update Invoice balance */
 | 
					        /* Update Invoice balance */
 | 
				
			||||||
        event(new PaymentWasCreated($payment, $payment->company));
 | 
					        event(new PaymentWasCreated($payment, $payment->company));
 | 
				
			||||||
 | 
				
			|||||||
@ -43,7 +43,7 @@ class MarkSent
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        $this->client->updateBalance($invoice->balance)->save();
 | 
					        $this->client->updateBalance($invoice->balance)->save();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        $invoice->applyNumber()->save();
 | 
					        $invoice->service()->applyNumber()->save();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        UpdateCompanyLedgerWithInvoice::dispatchNow($invoice, $invoice->balance, $invoice->company);
 | 
					        UpdateCompanyLedgerWithInvoice::dispatchNow($invoice, $invoice->balance, $invoice->company);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -225,12 +225,12 @@ trait Refundable
 | 
				
			|||||||
        {
 | 
					        {
 | 
				
			||||||
        	$invoice = Invoice::find($refunded_invoice['invoice_id']);
 | 
					        	$invoice = Invoice::find($refunded_invoice['invoice_id']);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        	$invoice->updateBalance($refunded_invoice['amount'])->save();
 | 
					        	$invoice->service()->updateBalance($refunded_invoice['amount'])->save();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        	if($invoice->amount == $invoice->balance)
 | 
					        	if($invoice->amount == $invoice->balance)
 | 
				
			||||||
        		$invoice->setStatus(Invoice::STATUS_SENT);
 | 
					        		$invoice->service()->setStatus(Invoice::STATUS_SENT);
 | 
				
			||||||
        	else
 | 
					        	else
 | 
				
			||||||
        		$invoice->setStatus(Invoice::STATUS_PARTIAL);
 | 
					        		$invoice->service()->setStatus(Invoice::STATUS_PARTIAL);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        	$client = $invoice->client;
 | 
					        	$client = $invoice->client;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -7,7 +7,6 @@ use App\DataMapper\DefaultSettings;
 | 
				
			|||||||
use App\Events\Invoice\InvoiceWasMarkedSent;
 | 
					use App\Events\Invoice\InvoiceWasMarkedSent;
 | 
				
			||||||
use App\Factory\InvoiceInvitationFactory;
 | 
					use App\Factory\InvoiceInvitationFactory;
 | 
				
			||||||
use App\Jobs\Account\CreateAccount;
 | 
					use App\Jobs\Account\CreateAccount;
 | 
				
			||||||
use App\Listeners\Invoice\CreateInvoiceInvitations;
 | 
					 | 
				
			||||||
use App\Models\Account;
 | 
					use App\Models\Account;
 | 
				
			||||||
use App\Models\Client;
 | 
					use App\Models\Client;
 | 
				
			||||||
use App\Models\Invoice;
 | 
					use App\Models\Invoice;
 | 
				
			||||||
 | 
				
			|||||||
@ -295,8 +295,7 @@ class PaymentTest extends TestCase
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        $this->invoice = $this->invoice_calc->getInvoice();
 | 
					        $this->invoice = $this->invoice_calc->getInvoice();
 | 
				
			||||||
        $this->invoice->save();
 | 
					        $this->invoice->save();
 | 
				
			||||||
        $this->invoice->markSent();
 | 
					        $this->invoice->service()->markSent()->save();
 | 
				
			||||||
        $this->invoice->save();
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        $data = [
 | 
					        $data = [
 | 
				
			||||||
@ -373,7 +372,7 @@ class PaymentTest extends TestCase
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        $this->invoice = $this->invoice_calc->getInvoice();
 | 
					        $this->invoice = $this->invoice_calc->getInvoice();
 | 
				
			||||||
        $this->invoice->save();
 | 
					        $this->invoice->save();
 | 
				
			||||||
        $this->invoice->markSent();
 | 
					        $this->invoice->service()->markSent()->save();
 | 
				
			||||||
        $this->invoice->is_deleted = false;
 | 
					        $this->invoice->is_deleted = false;
 | 
				
			||||||
        $this->invoice->save();
 | 
					        $this->invoice->save();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -445,8 +444,7 @@ class PaymentTest extends TestCase
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        $this->invoice = $this->invoice_calc->getInvoice();
 | 
					        $this->invoice = $this->invoice_calc->getInvoice();
 | 
				
			||||||
        $this->invoice->save();
 | 
					        $this->invoice->save();
 | 
				
			||||||
        $this->invoice->markSent();
 | 
					        $this->invoice->service()->markSent()->save();
 | 
				
			||||||
        $this->invoice->save();
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        $data = [
 | 
					        $data = [
 | 
				
			||||||
@ -506,8 +504,7 @@ class PaymentTest extends TestCase
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        $this->invoice = $this->invoice_calc->getInvoice();
 | 
					        $this->invoice = $this->invoice_calc->getInvoice();
 | 
				
			||||||
        $this->invoice->save();
 | 
					        $this->invoice->save();
 | 
				
			||||||
        $this->invoice->markSent();
 | 
					        $this->invoice->service()->markSent()->save();
 | 
				
			||||||
        $this->invoice->save();
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        $data = [
 | 
					        $data = [
 | 
				
			||||||
@ -563,8 +560,7 @@ class PaymentTest extends TestCase
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        $this->invoice = $this->invoice_calc->getInvoice();
 | 
					        $this->invoice = $this->invoice_calc->getInvoice();
 | 
				
			||||||
        $this->invoice->save();
 | 
					        $this->invoice->save();
 | 
				
			||||||
        $this->invoice->markSent();
 | 
					        $this->invoice->service()->markSent()->save();
 | 
				
			||||||
        $this->invoice->save();
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        $data = [
 | 
					        $data = [
 | 
				
			||||||
@ -630,8 +626,7 @@ class PaymentTest extends TestCase
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        $this->invoice = $this->invoice_calc->getInvoice();
 | 
					        $this->invoice = $this->invoice_calc->getInvoice();
 | 
				
			||||||
        $this->invoice->save();
 | 
					        $this->invoice->save();
 | 
				
			||||||
        $this->invoice->markSent();
 | 
					        $this->invoice->service()->markSent()->save();
 | 
				
			||||||
        $this->invoice->save();
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        $payment = PaymentFactory::create($this->company->id, $this->user->id);
 | 
					        $payment = PaymentFactory::create($this->company->id, $this->user->id);
 | 
				
			||||||
        $payment->amount = 10;
 | 
					        $payment->amount = 10;
 | 
				
			||||||
@ -690,8 +685,7 @@ class PaymentTest extends TestCase
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        $this->invoice = $this->invoice_calc->getInvoice();
 | 
					        $this->invoice = $this->invoice_calc->getInvoice();
 | 
				
			||||||
        $this->invoice->save();
 | 
					        $this->invoice->save();
 | 
				
			||||||
        $this->invoice->markSent();
 | 
					        $this->invoice->service()->markSent()->save();
 | 
				
			||||||
        $this->invoice->save();
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        $payment = PaymentFactory::create($this->company->id, $this->user->id);
 | 
					        $payment = PaymentFactory::create($this->company->id, $this->user->id);
 | 
				
			||||||
        $payment->amount = 10;
 | 
					        $payment->amount = 10;
 | 
				
			||||||
@ -757,7 +751,7 @@ class PaymentTest extends TestCase
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        $this->invoice = $this->invoice_calc->getInvoice();
 | 
					        $this->invoice = $this->invoice_calc->getInvoice();
 | 
				
			||||||
        $this->invoice->save();
 | 
					        $this->invoice->save();
 | 
				
			||||||
        $this->invoice->markSent();
 | 
					        $this->invoice->service()->markSent()->save();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        $data = [
 | 
					        $data = [
 | 
				
			||||||
            'amount' => 15.0,
 | 
					            'amount' => 15.0,
 | 
				
			||||||
@ -810,7 +804,7 @@ class PaymentTest extends TestCase
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        $this->invoice = $this->invoice_calc->getInvoice();
 | 
					        $this->invoice = $this->invoice_calc->getInvoice();
 | 
				
			||||||
        $this->invoice->save();
 | 
					        $this->invoice->save();
 | 
				
			||||||
        $this->invoice->markSent();
 | 
					        $this->invoice->service()->markSent()->save();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        $data = [
 | 
					        $data = [
 | 
				
			||||||
@ -870,7 +864,7 @@ class PaymentTest extends TestCase
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        $this->invoice = $this->invoice_calc->getInvoice();
 | 
					        $this->invoice = $this->invoice_calc->getInvoice();
 | 
				
			||||||
        $this->invoice->save();
 | 
					        $this->invoice->save();
 | 
				
			||||||
        $this->invoice->markSent();
 | 
					        $this->invoice->service()->markSent()->save();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        $data = [
 | 
					        $data = [
 | 
				
			||||||
            'amount' => 20.0,
 | 
					            'amount' => 20.0,
 | 
				
			||||||
@ -914,7 +908,7 @@ class PaymentTest extends TestCase
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        $this->invoice = $this->invoice_calc->getInvoice();
 | 
					        $this->invoice = $this->invoice_calc->getInvoice();
 | 
				
			||||||
        $this->invoice->save();
 | 
					        $this->invoice->save();
 | 
				
			||||||
        $this->invoice->markSent();
 | 
					        $this->invoice->service()->markSent()->save();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        $data = [
 | 
					        $data = [
 | 
				
			||||||
 | 
				
			|||||||
@ -45,7 +45,7 @@ class CheckRemindersTest extends TestCase
 | 
				
			|||||||
        $settings->num_days_reminder3 = 1;
 | 
					        $settings->num_days_reminder3 = 1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        $this->company->settings = $settings;
 | 
					        $this->company->settings = $settings;
 | 
				
			||||||
        $this->invoice->markSent();
 | 
					        $this->invoice->service()->markSent();
 | 
				
			||||||
        $this->invoice->setReminder($settings);
 | 
					        $this->invoice->setReminder($settings);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        $this->assertEquals(0, Carbon::now()->addDays(7)->diffInDays($this->invoice->next_send_date));
 | 
					        $this->assertEquals(0, Carbon::now()->addDays(7)->diffInDays($this->invoice->next_send_date));
 | 
				
			||||||
@ -68,8 +68,7 @@ class CheckRemindersTest extends TestCase
 | 
				
			|||||||
        $settings->num_days_reminder3 = 1;
 | 
					        $settings->num_days_reminder3 = 1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        $this->company->settings = $settings;
 | 
					        $this->company->settings = $settings;
 | 
				
			||||||
        $this->invoice->markSent();
 | 
					        $this->invoice->service()->markSent()->setStatus(Invoice::STATUS_PAID);
 | 
				
			||||||
        $this->invoice->setStatus(Invoice::STATUS_PAID);
 | 
					 | 
				
			||||||
        $this->invoice->setReminder($settings);
 | 
					        $this->invoice->setReminder($settings);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        $this->assertEquals($this->invoice->next_send_date, null);
 | 
					        $this->assertEquals($this->invoice->next_send_date, null);
 | 
				
			||||||
@ -92,7 +91,7 @@ class CheckRemindersTest extends TestCase
 | 
				
			|||||||
        $settings->num_days_reminder3 = 1;
 | 
					        $settings->num_days_reminder3 = 1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        $this->company->settings = $settings;
 | 
					        $this->company->settings = $settings;
 | 
				
			||||||
        $this->invoice->markSent();
 | 
					        $this->invoice->service()->markSent();
 | 
				
			||||||
        $this->invoice->setReminder($settings);
 | 
					        $this->invoice->setReminder($settings);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        $this->assertEquals(0, Carbon::parse($this->invoice->due_date)->subDays(29)->diffInDays($this->invoice->next_send_date));
 | 
					        $this->assertEquals(0, Carbon::parse($this->invoice->due_date)->subDays(29)->diffInDays($this->invoice->next_send_date));
 | 
				
			||||||
@ -115,7 +114,7 @@ class CheckRemindersTest extends TestCase
 | 
				
			|||||||
        $settings->num_days_reminder3 = 1;
 | 
					        $settings->num_days_reminder3 = 1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        $this->company->settings = $settings;
 | 
					        $this->company->settings = $settings;
 | 
				
			||||||
        $this->invoice->markSent();
 | 
					        $this->invoice->service()->markSent();
 | 
				
			||||||
        $this->invoice->setReminder($settings);
 | 
					        $this->invoice->setReminder($settings);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        $this->assertEquals(0, Carbon::parse($this->invoice->due_date)->addDays(1)->diffInDays($this->invoice->next_send_date));
 | 
					        $this->assertEquals(0, Carbon::parse($this->invoice->due_date)->addDays(1)->diffInDays($this->invoice->next_send_date));
 | 
				
			||||||
@ -138,7 +137,7 @@ class CheckRemindersTest extends TestCase
 | 
				
			|||||||
        $settings->num_days_reminder3 = 1;
 | 
					        $settings->num_days_reminder3 = 1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        $this->company->settings = $settings;
 | 
					        $this->company->settings = $settings;
 | 
				
			||||||
        $this->invoice->markSent();
 | 
					        $this->invoice->service()->markSent();
 | 
				
			||||||
        $this->invoice->setReminder($settings);
 | 
					        $this->invoice->setReminder($settings);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        $this->assertEquals($this->invoice->next_send_date, null);
 | 
					        $this->assertEquals($this->invoice->next_send_date, null);
 | 
				
			||||||
@ -161,7 +160,7 @@ class CheckRemindersTest extends TestCase
 | 
				
			|||||||
        $settings->num_days_reminder3 = 0;
 | 
					        $settings->num_days_reminder3 = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        $this->company->settings = $settings;
 | 
					        $this->company->settings = $settings;
 | 
				
			||||||
        $this->invoice->markSent();
 | 
					        $this->invoice->service()->markSent();
 | 
				
			||||||
        $this->invoice->setReminder($settings);
 | 
					        $this->invoice->setReminder($settings);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        $this->assertEquals($this->invoice->next_send_date, null);
 | 
					        $this->assertEquals($this->invoice->next_send_date, null);
 | 
				
			||||||
 | 
				
			|||||||
@ -42,7 +42,7 @@ class MarkInvoicePaidTest extends TestCase
 | 
				
			|||||||
        $client = $invoice->client;
 | 
					        $client = $invoice->client;
 | 
				
			||||||
        $client_balance = $client->balance;
 | 
					        $client_balance = $client->balance;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        $this->invoice->markPaid();
 | 
					        $this->invoice->service()->markPaid();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        $invoice = Invoice::find($this->invoice->id);
 | 
					        $invoice = Invoice::find($this->invoice->id);
 | 
				
			||||||
        $client = $invoice->client;
 | 
					        $client = $invoice->client;
 | 
				
			||||||
 | 
				
			|||||||
@ -37,7 +37,7 @@ class UpdateCompanyLedgerTest extends TestCase
 | 
				
			|||||||
    public function testPaymentIsPresentInLedger()
 | 
					    public function testPaymentIsPresentInLedger()
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        $invoice = $this->invoice->markPaid()->save();
 | 
					        $invoice = $this->invoice->service()->markPaid()->save();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        $ledger = CompanyLedger::whereClientId($invoice->client_id)
 | 
					        $ledger = CompanyLedger::whereClientId($invoice->client_id)
 | 
				
			||||||
                                ->whereCompanyId($invoice->company_id)
 | 
					                                ->whereCompanyId($invoice->company_id)
 | 
				
			||||||
 | 
				
			|||||||
@ -23,7 +23,6 @@ use App\Factory\InvoiceItemFactory;
 | 
				
			|||||||
use App\Factory\InvoiceToRecurringInvoiceFactory;
 | 
					use App\Factory\InvoiceToRecurringInvoiceFactory;
 | 
				
			||||||
use App\Helpers\Invoice\InvoiceSum;
 | 
					use App\Helpers\Invoice\InvoiceSum;
 | 
				
			||||||
use App\Jobs\Company\UpdateCompanyLedgerWithInvoice;
 | 
					use App\Jobs\Company\UpdateCompanyLedgerWithInvoice;
 | 
				
			||||||
use App\Jobs\Invoice\CreateInvoiceInvitations;
 | 
					 | 
				
			||||||
use App\Models\Client;
 | 
					use App\Models\Client;
 | 
				
			||||||
use App\Models\CompanyGateway;
 | 
					use App\Models\CompanyGateway;
 | 
				
			||||||
use App\Models\CompanyToken;
 | 
					use App\Models\CompanyToken;
 | 
				
			||||||
@ -179,7 +178,7 @@ trait MockAccountData
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        $this->invoice->save();
 | 
					        $this->invoice->save();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        $this->invoice->markSent();
 | 
					        $this->invoice->service()->markSent();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        $this->credit = CreditFactory::create($this->company->id,$this->user->id);
 | 
					        $this->credit = CreditFactory::create($this->company->id,$this->user->id);
 | 
				
			||||||
        $this->credit->client_id = $this->client->id;
 | 
					        $this->credit->client_id = $this->client->id;
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user