diff --git a/app/Http/Controllers/InvoiceController.php b/app/Http/Controllers/InvoiceController.php index becd3361cbf9..afb5dca882d7 100644 --- a/app/Http/Controllers/InvoiceController.php +++ b/app/Http/Controllers/InvoiceController.php @@ -11,6 +11,8 @@ namespace App\Http\Controllers; +use App\Events\Invoice\InvoiceWasCreated; +use App\Events\Invoice\InvoiceWasUpdated; use App\Factory\CloneInvoiceFactory; use App\Factory\CloneInvoiceToQuoteFactory; use App\Factory\InvoiceFactory; @@ -114,6 +116,8 @@ class InvoiceController extends BaseController $invoice = StoreInvoice::dispatchNow($invoice, $request->all()); //todo potentially this may return mixed ie PDF/$invoice... need to revisit when we implement UI + event(new InvoiceWasCreated($invoice)); + return $this->itemResponse($invoice); } @@ -161,6 +165,8 @@ class InvoiceController extends BaseController $invoice = $this->invoice_repo->save($request->all(), $invoice); + event(new InvoiceWasUpdated($invoice)); + return $this->itemResponse($invoice); } diff --git a/app/Models/Activity.php b/app/Models/Activity.php index e702f48fd48b..ffebfcf6fd87 100644 --- a/app/Models/Activity.php +++ b/app/Models/Activity.php @@ -13,8 +13,9 @@ namespace App\Models; use Illuminate\Database\Eloquent\Model; -class Activity extends BaseModel +class Activity extends Model { + const CREATE_CLIENT=1; const ARCHIVE_CLIENT=2; const DELETE_CLIENT=3; diff --git a/app/Repositories/InvoiceRepository.php b/app/Repositories/InvoiceRepository.php index ba8615175d1c..643728ab1853 100644 --- a/app/Repositories/InvoiceRepository.php +++ b/app/Repositories/InvoiceRepository.php @@ -44,11 +44,6 @@ class InvoiceRepository extends BaseRepository */ public function save($data, Invoice $invoice) : ?Invoice { - /* Test if this is a new invoice or existing */ - $new_invoice = true; - - if(isset($invoice->id)) - $new_invoice = false; /* Always carry forward the initial invoice amount this is important for tracking client balance changes later......*/ $starting_amount = $invoice->amount; @@ -63,11 +58,6 @@ class InvoiceRepository extends BaseRepository $invoice->save(); - if($new_invoice) - event(new InvoiceWasCreated($invoice)); - else - event(new InvoiceWasUpdated($invoice)); - $finished_amount = $invoice->amount; if($finished_amount != $starting_amount) diff --git a/tests/Integration/UpdateCompanyLedgerInvoiceTest.php b/tests/Integration/UpdateCompanyLedgerInvoiceTest.php new file mode 100644 index 000000000000..2b0e95f9c3bf --- /dev/null +++ b/tests/Integration/UpdateCompanyLedgerInvoiceTest.php @@ -0,0 +1,49 @@ +makeTestData(); + } + + public function testUpdatedInvoiceEventFires() + { + + $this->invoice->status_id = Invoice::STATUS_PAID; + $this->invoice->save(); + + // $this->expectsEvents(InvoiceWasUpdated::class); + $activities = Activity::whereInvoiceId($this->invoice->id)->get(); + + $this->assertEquals(count($activities), 1); + + } + + +} \ No newline at end of file