mirror of
				https://github.com/invoiceninja/invoiceninja.git
				synced 2025-10-31 19:37:30 -04:00 
			
		
		
		
	
						commit
						4f50dd81c6
					
				
							
								
								
									
										45
									
								
								app/Events/Credit/CreditWasRestored.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								app/Events/Credit/CreditWasRestored.php
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,45 @@ | |||||||
|  | <?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\Events\Credit; | ||||||
|  | 
 | ||||||
|  | use App\Models\Credit; | ||||||
|  | use Illuminate\Queue\SerializesModels; | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |  * Class CreditWasRestored. | ||||||
|  |  */ | ||||||
|  | class CreditWasRestored | ||||||
|  | { | ||||||
|  |     use SerializesModels; | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * @var Client | ||||||
|  |      */ | ||||||
|  |     public $credit; | ||||||
|  | 
 | ||||||
|  |     public $company; | ||||||
|  | 
 | ||||||
|  |     public $event_vars; | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * Create a new event instance. | ||||||
|  |      * | ||||||
|  |      * @param Client $client | ||||||
|  |      */ | ||||||
|  |     public function __construct(Credit $credit, Company $company, array $event_vars) | ||||||
|  |     { | ||||||
|  |         $this->credit = $credit; | ||||||
|  |         $this->company = $company; | ||||||
|  |         $this->event_vars = $event_vars; | ||||||
|  | 
 | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -25,6 +25,8 @@ class QuoteWasApproved | |||||||
| { | { | ||||||
|     use Dispatchable, InteractsWithSockets, SerializesModels; |     use Dispatchable, InteractsWithSockets, SerializesModels; | ||||||
| 
 | 
 | ||||||
|  |     public $contact; | ||||||
|  | 
 | ||||||
|     public $quote; |     public $quote; | ||||||
| 
 | 
 | ||||||
|     public $company; |     public $company; | ||||||
| @ -35,8 +37,9 @@ class QuoteWasApproved | |||||||
|      * |      * | ||||||
|      * @return void |      * @return void | ||||||
|      */ |      */ | ||||||
|     public function __construct(Quote $quote, Company $company, array $event_vars) |     public function __construct(ClientContact $contact, Quote $quote, Company $company, array $event_vars) | ||||||
|     { |     { | ||||||
|  |         $this->contact = $contact; | ||||||
|         $this->quote = $quote; |         $this->quote = $quote; | ||||||
|         $this->company = $company; |         $this->company = $company; | ||||||
|         $this->event_vars = $event_vars; |         $this->event_vars = $event_vars; | ||||||
|  | |||||||
| @ -109,7 +109,7 @@ class QuoteController extends Controller | |||||||
|         if ($process) { |         if ($process) { | ||||||
|             foreach ($quotes as $quote) { |             foreach ($quotes as $quote) { | ||||||
|                 $quote->service()->approve()->save(); |                 $quote->service()->approve()->save(); | ||||||
|                 event(new QuoteWasApproved($quote, $quote->company, Ninja::eventVars())); |                 event(new QuoteWasApproved(auth()->user(), $quote, $quote->company, Ninja::eventVars())); | ||||||
|             } |             } | ||||||
| 
 | 
 | ||||||
|             return redirect() |             return redirect() | ||||||
|  | |||||||
| @ -27,8 +27,6 @@ class CompanyUserController extends BaseController | |||||||
|     public function __construct() |     public function __construct() | ||||||
|     { |     { | ||||||
|         parent::__construct(); |         parent::__construct(); | ||||||
| 
 |  | ||||||
|         //$this->middleware('guest');
 |  | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     /** |     /** | ||||||
| @ -38,7 +36,6 @@ class CompanyUserController extends BaseController | |||||||
|      */ |      */ | ||||||
|     public function index() |     public function index() | ||||||
|     { |     { | ||||||
|         // return view('signup.index');
 |  | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     /** |     /** | ||||||
| @ -48,11 +45,10 @@ class CompanyUserController extends BaseController | |||||||
|      */ |      */ | ||||||
|     public function create() |     public function create() | ||||||
|     { |     { | ||||||
|         //
 |  | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|      |      | ||||||
|     public function store(CreateAccountRequest $request) |     public function store() | ||||||
|     { |     { | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
| @ -125,8 +121,8 @@ class CompanyUserController extends BaseController | |||||||
|      */ |      */ | ||||||
|     public function update(UpdateCompanyUserRequest $request, User $user) |     public function update(UpdateCompanyUserRequest $request, User $user) | ||||||
|     { |     { | ||||||
|         $company = auth()->user()->company(); |  | ||||||
| 
 | 
 | ||||||
|  |         $company = auth()->user()->company(); | ||||||
|              |              | ||||||
|         $company_user = CompanyUser::whereUserId($user->id)->whereCompanyId($company->id)->first(); |         $company_user = CompanyUser::whereUserId($user->id)->whereCompanyId($company->id)->first(); | ||||||
| 
 | 
 | ||||||
| @ -145,6 +141,7 @@ class CompanyUserController extends BaseController | |||||||
|         $company_user->save(); |         $company_user->save(); | ||||||
| 
 | 
 | ||||||
|         return $this->itemResponse($company_user->fresh()); |         return $this->itemResponse($company_user->fresh()); | ||||||
|  |          | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     /** |     /** | ||||||
|  | |||||||
| @ -13,6 +13,8 @@ namespace App\Http\Controllers; | |||||||
| 
 | 
 | ||||||
| use App\DataMapper\CompanySettings; | use App\DataMapper\CompanySettings; | ||||||
| use App\DataMapper\DefaultSettings; | use App\DataMapper\DefaultSettings; | ||||||
|  | use App\Events\User\UserEmailAddressChangedNewEmail; | ||||||
|  | use App\Events\User\UserEmailAddressChangedOldEmail; | ||||||
| use App\Factory\UserFactory; | use App\Factory\UserFactory; | ||||||
| use App\Filters\UserFilters; | use App\Filters\UserFilters; | ||||||
| use App\Http\Controllers\Traits\VerifiesUserEmail; | use App\Http\Controllers\Traits\VerifiesUserEmail; | ||||||
| @ -25,11 +27,13 @@ use App\Http\Requests\User\ShowUserRequest; | |||||||
| use App\Http\Requests\User\StoreUserRequest; | use App\Http\Requests\User\StoreUserRequest; | ||||||
| use App\Http\Requests\User\UpdateUserRequest; | use App\Http\Requests\User\UpdateUserRequest; | ||||||
| use App\Jobs\Company\CreateCompanyToken; | use App\Jobs\Company\CreateCompanyToken; | ||||||
|  | use App\Jobs\User\UserEmailChanged; | ||||||
| use App\Models\CompanyToken; | use App\Models\CompanyToken; | ||||||
| use App\Models\CompanyUser; | use App\Models\CompanyUser; | ||||||
| use App\Models\User; | use App\Models\User; | ||||||
| use App\Repositories\UserRepository; | use App\Repositories\UserRepository; | ||||||
| use App\Transformers\UserTransformer; | use App\Transformers\UserTransformer; | ||||||
|  | use App\Utils\Ninja; | ||||||
| use App\Utils\Traits\MakesHash; | use App\Utils\Traits\MakesHash; | ||||||
| use Illuminate\Http\Request; | use Illuminate\Http\Request; | ||||||
| use Illuminate\Support\Facades\Log; | use Illuminate\Support\Facades\Log; | ||||||
| @ -367,8 +371,14 @@ class UserController extends BaseController | |||||||
|      */ |      */ | ||||||
|     public function update(UpdateUserRequest $request, User $user) |     public function update(UpdateUserRequest $request, User $user) | ||||||
|     { |     { | ||||||
|  |         $old_email = $user->email; | ||||||
|  |         $new_email = $request->input('email'); | ||||||
|  | 
 | ||||||
|         $user = $this->user_repo->save($request->all(), $user); |         $user = $this->user_repo->save($request->all(), $user); | ||||||
| 
 | 
 | ||||||
|  |         if($user) | ||||||
|  |             UserEmailChanged::dispatch($new_email, $old_email, auth()->user()->company()); | ||||||
|  | 
 | ||||||
|         return $this->itemResponse($user); |         return $this->itemResponse($user); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -83,6 +83,24 @@ class ValidCreditsRules implements Rule | |||||||
|             return false; |             return false; | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|  |         if(count($this->input['credits']) >=1){ | ||||||
|  | 
 | ||||||
|  |             $total_payments = $this->input['amount'] + array_sum(array_column($this->input['credits'], 'amount')); | ||||||
|  | 
 | ||||||
|  | info(print_r($this->input,1)); | ||||||
|  | info("total payments = {$total_payments}"); | ||||||
|  | info("total credits available = " . array_sum(array_column($this->input['credits'], 'amount'))); | ||||||
|  | info("total invoices payable = " . array_sum(array_column($this->input['invoices'], 'amount'))); | ||||||
|  | 
 | ||||||
|  |             if($total_payments > array_sum(array_column($this->input['invoices'], 'amount'))){ | ||||||
|  | 
 | ||||||
|  |                 $this->error_msg = "Sum of total payments and credits is greater than the total of invoices"; | ||||||
|  |                 return false; | ||||||
|  |             } | ||||||
|  | 
 | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|         return true; |         return true; | ||||||
|     } |     } | ||||||
|      |      | ||||||
|  | |||||||
| @ -49,14 +49,15 @@ class QuoteWorkflowSettings implements ShouldQueue | |||||||
|      */ |      */ | ||||||
|     public function handle() |     public function handle() | ||||||
|     { |     { | ||||||
|         if ($this->client->getSetting('auto_archive_quote')) { |  | ||||||
|             $this->base_repository->archive($this->quote); |  | ||||||
|         } |  | ||||||
| 
 | 
 | ||||||
|         if ($this->client->getSetting('auto_email_quote')) { |         if ($this->client->getSetting('auto_email_quote')) { | ||||||
|             $this->quote->invitations->each(function ($invitation, $key) { |             $this->quote->invitations->each(function ($invitation, $key) { | ||||||
|                 $this->quote->service()->sendEmail($invitation->contact); |                 $this->quote->service()->sendEmail($invitation->contact); | ||||||
|            }); |            }); | ||||||
|         } |         } | ||||||
|  |          | ||||||
|  |         if ($this->client->getSetting('auto_archive_quote')) { | ||||||
|  |             $this->base_repository->archive($this->quote); | ||||||
|  |         } | ||||||
|     } |     } | ||||||
| } | } | ||||||
|  | |||||||
							
								
								
									
										109
									
								
								app/Jobs/User/UserEmailChanged.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										109
									
								
								app/Jobs/User/UserEmailChanged.php
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,109 @@ | |||||||
|  | <?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\User; | ||||||
|  | 
 | ||||||
|  | use App\Jobs\Mail\BaseMailerJob; | ||||||
|  | use App\Jobs\Util\SystemLogger; | ||||||
|  | use App\Libraries\MultiDB; | ||||||
|  | use App\Mail\User\UserNotificationMailer; | ||||||
|  | use App\Models\Company; | ||||||
|  | use Illuminate\Contracts\Queue\ShouldQueue; | ||||||
|  | use Illuminate\Foundation\Bus\Dispatchable; | ||||||
|  | use Illuminate\Http\Request; | ||||||
|  | use Illuminate\Queue\InteractsWithQueue; | ||||||
|  | use Illuminate\Queue\SerializesModels; | ||||||
|  | use Illuminate\Support\Facades\Mail; | ||||||
|  | use Illuminate\Bus\Queueable; | ||||||
|  | 
 | ||||||
|  | class UserEmailChanged extends BaseMailerJob implements ShouldQueue | ||||||
|  | { | ||||||
|  |     use Dispatchable, InteractsWithQueue, Queueable, SerializesModels; | ||||||
|  | 
 | ||||||
|  |     protected $new_email; | ||||||
|  | 
 | ||||||
|  |     protected $old_email; | ||||||
|  | 
 | ||||||
|  |     protected $company; | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * Create a new job instance. | ||||||
|  |      * | ||||||
|  |      * @return void | ||||||
|  |      */ | ||||||
|  | 
 | ||||||
|  |     public function __construct(string $new_email, string $old_email, Company $company) | ||||||
|  |     { | ||||||
|  |         $this->new_email = $new_email; | ||||||
|  |         $this->old_email = $old_email; | ||||||
|  |         $this->company = $company; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |      public function handle() | ||||||
|  |     { | ||||||
|  |         //Set DB
 | ||||||
|  |         MultiDB::setDb($this->company->db); | ||||||
|  | 
 | ||||||
|  |         //if we need to set an email driver do it now
 | ||||||
|  |         $this->setMailDriver($this->company->settings->email_sending_method); | ||||||
|  | 
 | ||||||
|  |         $mail_obj = new \stdClass; | ||||||
|  |         $mail_obj->subject = ctrans('texts.email_address_changed'); | ||||||
|  |         $mail_obj->markdown = 'email.admin.generic'; | ||||||
|  |         $mail_obj->from = [$this->company->owner()->email, $this->company->owner()->present()->name()]; | ||||||
|  |         $mail_obj->tag = $this->company->company_key; | ||||||
|  |         $mail_obj->data = $this->getData(); | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |         //send email
 | ||||||
|  |         Mail::to($this->old_email) | ||||||
|  |             ->send(new UserNotificationMailer($mail_obj)); | ||||||
|  | 
 | ||||||
|  |         Mail::to($this->new_email) | ||||||
|  |             ->send(new UserNotificationMailer($mail_obj)); | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |         //catch errors
 | ||||||
|  |         if (count(Mail::failures()) > 0) { | ||||||
|  |             $this->logMailError(Mail::failures()); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     private function getData() | ||||||
|  |     { | ||||||
|  |         return [ | ||||||
|  |             'title' => ctrans('texts.email_address_changed'), | ||||||
|  |             'message' => ctrans( | ||||||
|  |                 'texts.email_address_changed_message', | ||||||
|  |                 ['old_email' => $this->old_email, | ||||||
|  |                 'new_email' => $this->new_email, | ||||||
|  |             ] | ||||||
|  |             ), | ||||||
|  |             'url' => config('ninja.app_url'), | ||||||
|  |             'button' => ctrans('texts.account_login'), | ||||||
|  |             'signature' => $this->company->owner()->signature, | ||||||
|  |             'logo' => $this->company->present()->logo(), | ||||||
|  |         ]; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     private function logMailError($errors) | ||||||
|  |     { | ||||||
|  |         SystemLogger::dispatch( | ||||||
|  |             $errors, | ||||||
|  |             SystemLog::CATEGORY_MAIL, | ||||||
|  |             SystemLog::EVENT_MAIL_SEND, | ||||||
|  |             SystemLog::TYPE_FAILURE, | ||||||
|  |             $this->company | ||||||
|  |         ); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | } | ||||||
							
								
								
									
										58
									
								
								app/Listeners/Credit/CreditRestoredActivity.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										58
									
								
								app/Listeners/Credit/CreditRestoredActivity.php
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,58 @@ | |||||||
|  | <?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\Listeners\Credit; | ||||||
|  | 
 | ||||||
|  | use App\Libraries\MultiDB; | ||||||
|  | use App\Models\Activity; | ||||||
|  | use App\Models\ClientContact; | ||||||
|  | use App\Models\InvoiceInvitation; | ||||||
|  | use App\Repositories\ActivityRepository; | ||||||
|  | use App\Utils\Traits\MakesHash; | ||||||
|  | use Illuminate\Contracts\Queue\ShouldQueue; | ||||||
|  | use Illuminate\Queue\InteractsWithQueue; | ||||||
|  | use Illuminate\Support\Facades\Log; | ||||||
|  | 
 | ||||||
|  | class CreditRestoredActivity implements ShouldQueue | ||||||
|  | { | ||||||
|  |     protected $activity_repo; | ||||||
|  |     /** | ||||||
|  |      * Create the event listener. | ||||||
|  |      * | ||||||
|  |      * @return void | ||||||
|  |      */ | ||||||
|  |     public function __construct(ActivityRepository $activity_repo) | ||||||
|  |     { | ||||||
|  |         $this->activity_repo = $activity_repo; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * Handle the event. | ||||||
|  |      * | ||||||
|  |      * @param  object  $event | ||||||
|  |      * @return void | ||||||
|  |      */ | ||||||
|  |     public function handle($event) | ||||||
|  |     { | ||||||
|  | 
 | ||||||
|  |         MultiDB::setDb($event->company->db); | ||||||
|  | 
 | ||||||
|  |         $fields = new \stdClass; | ||||||
|  | 
 | ||||||
|  |         $fields->credit_id = $event->credit->id; | ||||||
|  |         $fields->user_id = $event->credit->user_id; | ||||||
|  |         $fields->company_id = $event->credit->company_id; | ||||||
|  |         $fields->activity_type_id = Activity::RESTORE_CREDIT; | ||||||
|  | 
 | ||||||
|  |         $this->activity_repo->save($fields, $event->credit, $event->event_vars); | ||||||
|  |          | ||||||
|  |     } | ||||||
|  | } | ||||||
							
								
								
									
										57
									
								
								app/Listeners/Invoice/InvoiceRestoredActivity.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										57
									
								
								app/Listeners/Invoice/InvoiceRestoredActivity.php
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,57 @@ | |||||||
|  | <?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\Listeners\Invoice; | ||||||
|  | 
 | ||||||
|  | use App\Libraries\MultiDB; | ||||||
|  | use App\Models\Activity; | ||||||
|  | use App\Models\ClientContact; | ||||||
|  | use App\Models\InvoiceInvitation; | ||||||
|  | use App\Repositories\ActivityRepository; | ||||||
|  | use App\Utils\Traits\MakesHash; | ||||||
|  | use Illuminate\Contracts\Queue\ShouldQueue; | ||||||
|  | use Illuminate\Queue\InteractsWithQueue; | ||||||
|  | use Illuminate\Support\Facades\Log; | ||||||
|  | 
 | ||||||
|  | class InvoiceRestoredActivity implements ShouldQueue | ||||||
|  | { | ||||||
|  |     protected $activity_repo; | ||||||
|  |     /** | ||||||
|  |      * Create the event listener. | ||||||
|  |      * | ||||||
|  |      * @return void | ||||||
|  |      */ | ||||||
|  |     public function __construct(ActivityRepository $activity_repo) | ||||||
|  |     { | ||||||
|  |         $this->activity_repo = $activity_repo; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * Handle the event. | ||||||
|  |      * | ||||||
|  |      * @param  object  $event | ||||||
|  |      * @return void | ||||||
|  |      */ | ||||||
|  |     public function handle($event) | ||||||
|  |     { | ||||||
|  | 
 | ||||||
|  |         MultiDB::setDb($event->company->db); | ||||||
|  | 
 | ||||||
|  |         $fields = new \stdClass; | ||||||
|  | 
 | ||||||
|  |         $fields->invoice_id = $event->invoice->id; | ||||||
|  |         $fields->user_id = $event->invoice->user_id; | ||||||
|  |         $fields->company_id = $event->invoice->company_id; | ||||||
|  |         $fields->activity_type_id = Activity::RESTORE_INVOICE; | ||||||
|  | 
 | ||||||
|  |         $this->activity_repo->save($fields, $event->invoice, $event->event_vars); | ||||||
|  |     } | ||||||
|  | } | ||||||
							
								
								
									
										57
									
								
								app/Listeners/Payment/PaymentRestoredActivity.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										57
									
								
								app/Listeners/Payment/PaymentRestoredActivity.php
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,57 @@ | |||||||
|  | <?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\Listeners\Payment; | ||||||
|  | 
 | ||||||
|  | use App\Libraries\MultiDB; | ||||||
|  | use App\Models\Activity; | ||||||
|  | use App\Models\ClientContact; | ||||||
|  | use App\Models\InvoiceInvitation; | ||||||
|  | use App\Repositories\ActivityRepository; | ||||||
|  | use App\Utils\Traits\MakesHash; | ||||||
|  | use Illuminate\Contracts\Queue\ShouldQueue; | ||||||
|  | use Illuminate\Queue\InteractsWithQueue; | ||||||
|  | use Illuminate\Support\Facades\Log; | ||||||
|  | 
 | ||||||
|  | class PaymentRestoredActivity implements ShouldQueue | ||||||
|  | { | ||||||
|  |     protected $activity_repo; | ||||||
|  |     /** | ||||||
|  |      * Create the event listener. | ||||||
|  |      * | ||||||
|  |      * @return void | ||||||
|  |      */ | ||||||
|  |     public function __construct(ActivityRepository $activity_repo) | ||||||
|  |     { | ||||||
|  |         $this->activity_repo = $activity_repo; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * Handle the event. | ||||||
|  |      * | ||||||
|  |      * @param  object  $event | ||||||
|  |      * @return void | ||||||
|  |      */ | ||||||
|  |     public function handle($event) | ||||||
|  |     { | ||||||
|  | 
 | ||||||
|  |         MultiDB::setDb($event->company->db); | ||||||
|  | 
 | ||||||
|  |         $fields = new \stdClass; | ||||||
|  | 
 | ||||||
|  |         $fields->payment_id = $event->payment->id; | ||||||
|  |         $fields->user_id = $event->payment->user_id; | ||||||
|  |         $fields->company_id = $event->payment->company_id; | ||||||
|  |         $fields->activity_type_id = Activity::RESTORE_PAYMENT; | ||||||
|  | 
 | ||||||
|  |         $this->activity_repo->save($fields, $event->payment, $event->event_vars); | ||||||
|  |     } | ||||||
|  | } | ||||||
							
								
								
									
										58
									
								
								app/Listeners/Quote/QuoteApprovedActivity.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										58
									
								
								app/Listeners/Quote/QuoteApprovedActivity.php
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,58 @@ | |||||||
|  | <?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\Listeners\Quote; | ||||||
|  | 
 | ||||||
|  | use App\Libraries\MultiDB; | ||||||
|  | use App\Models\Activity; | ||||||
|  | use App\Models\ClientContact; | ||||||
|  | use App\Models\InvoiceInvitation; | ||||||
|  | use App\Repositories\ActivityRepository; | ||||||
|  | use App\Utils\Traits\MakesHash; | ||||||
|  | use Illuminate\Contracts\Queue\ShouldQueue; | ||||||
|  | use Illuminate\Queue\InteractsWithQueue; | ||||||
|  | use Illuminate\Support\Facades\Log; | ||||||
|  | 
 | ||||||
|  | class QuoteApprovedActivity implements ShouldQueue | ||||||
|  | { | ||||||
|  |     protected $activity_repo; | ||||||
|  |     /** | ||||||
|  |      * Create the event listener. | ||||||
|  |      * | ||||||
|  |      * @return void | ||||||
|  |      */ | ||||||
|  |     public function __construct(ActivityRepository $activity_repo) | ||||||
|  |     { | ||||||
|  |         $this->activity_repo = $activity_repo; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * Handle the event. | ||||||
|  |      * | ||||||
|  |      * @param  object  $event | ||||||
|  |      * @return void | ||||||
|  |      */ | ||||||
|  |     public function handle($event) | ||||||
|  |     { | ||||||
|  | 
 | ||||||
|  |         MultiDB::setDb($event->company->db); | ||||||
|  | 
 | ||||||
|  |         $fields = new \stdClass; | ||||||
|  | 
 | ||||||
|  |         $fields->quote_id = $event->quote->id; | ||||||
|  |         $fields->user_id = $event->quote->user_id; | ||||||
|  |         $fields->client_contact_id = $event->contact->id; | ||||||
|  |         $fields->company_id = $event->payment->company_id; | ||||||
|  |         $fields->activity_type_id = Activity::RESTORE_PAYMENT; | ||||||
|  | 
 | ||||||
|  |         $this->activity_repo->save($fields, $event->payment, $event->event_vars); | ||||||
|  |     } | ||||||
|  | } | ||||||
							
								
								
									
										57
									
								
								app/Listeners/Quote/QuoteArchivedActivity.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										57
									
								
								app/Listeners/Quote/QuoteArchivedActivity.php
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,57 @@ | |||||||
|  | <?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\Listeners\Quote; | ||||||
|  | 
 | ||||||
|  | use App\Libraries\MultiDB; | ||||||
|  | use App\Models\Activity; | ||||||
|  | use App\Models\ClientContact; | ||||||
|  | use App\Models\InvoiceInvitation; | ||||||
|  | use App\Repositories\ActivityRepository; | ||||||
|  | use App\Utils\Traits\MakesHash; | ||||||
|  | use Illuminate\Contracts\Queue\ShouldQueue; | ||||||
|  | use Illuminate\Queue\InteractsWithQueue; | ||||||
|  | use Illuminate\Support\Facades\Log; | ||||||
|  | 
 | ||||||
|  | class QuoteArchivedActivity implements ShouldQueue | ||||||
|  | { | ||||||
|  |     protected $activity_repo; | ||||||
|  |     /** | ||||||
|  |      * Create the event listener. | ||||||
|  |      * | ||||||
|  |      * @return void | ||||||
|  |      */ | ||||||
|  |     public function __construct(ActivityRepository $activity_repo) | ||||||
|  |     { | ||||||
|  |         $this->activity_repo = $activity_repo; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * Handle the event. | ||||||
|  |      * | ||||||
|  |      * @param  object  $event | ||||||
|  |      * @return void | ||||||
|  |      */ | ||||||
|  |     public function handle($event) | ||||||
|  |     { | ||||||
|  | 
 | ||||||
|  |         MultiDB::setDb($event->company->db); | ||||||
|  | 
 | ||||||
|  |         $fields = new \stdClass; | ||||||
|  | 
 | ||||||
|  |         $fields->quote_id = $event->quote->id; | ||||||
|  |         $fields->user_id = $event->quote->user_id; | ||||||
|  |         $fields->company_id = $event->quote->company_id; | ||||||
|  |         $fields->activity_type_id = Activity::ARCHIVE_QUOTE; | ||||||
|  | 
 | ||||||
|  |         $this->activity_repo->save($fields, $event->quote, $event->event_vars); | ||||||
|  |     } | ||||||
|  | } | ||||||
							
								
								
									
										57
									
								
								app/Listeners/Quote/QuoteDeletedActivity.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										57
									
								
								app/Listeners/Quote/QuoteDeletedActivity.php
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,57 @@ | |||||||
|  | <?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\Listeners\Quote; | ||||||
|  | 
 | ||||||
|  | use App\Libraries\MultiDB; | ||||||
|  | use App\Models\Activity; | ||||||
|  | use App\Models\ClientContact; | ||||||
|  | use App\Models\InvoiceInvitation; | ||||||
|  | use App\Repositories\ActivityRepository; | ||||||
|  | use App\Utils\Traits\MakesHash; | ||||||
|  | use Illuminate\Contracts\Queue\ShouldQueue; | ||||||
|  | use Illuminate\Queue\InteractsWithQueue; | ||||||
|  | use Illuminate\Support\Facades\Log; | ||||||
|  | 
 | ||||||
|  | class QuoteDeletedActivity implements ShouldQueue | ||||||
|  | { | ||||||
|  |     protected $activity_repo; | ||||||
|  |     /** | ||||||
|  |      * Create the event listener. | ||||||
|  |      * | ||||||
|  |      * @return void | ||||||
|  |      */ | ||||||
|  |     public function __construct(ActivityRepository $activity_repo) | ||||||
|  |     { | ||||||
|  |         $this->activity_repo = $activity_repo; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * Handle the event. | ||||||
|  |      * | ||||||
|  |      * @param  object  $event | ||||||
|  |      * @return void | ||||||
|  |      */ | ||||||
|  |     public function handle($event) | ||||||
|  |     { | ||||||
|  | 
 | ||||||
|  |         MultiDB::setDb($event->company->db); | ||||||
|  | 
 | ||||||
|  |         $fields = new \stdClass; | ||||||
|  | 
 | ||||||
|  |         $fields->quote_id = $event->quote->id; | ||||||
|  |         $fields->user_id = $event->quote->user_id; | ||||||
|  |         $fields->company_id = $event->quote->company_id; | ||||||
|  |         $fields->activity_type_id = Activity::DELETE_QUOTE; | ||||||
|  | 
 | ||||||
|  |         $this->activity_repo->save($fields, $event->quote, $event->event_vars); | ||||||
|  |     } | ||||||
|  | } | ||||||
							
								
								
									
										57
									
								
								app/Listeners/Quote/QuoteRestoredActivity.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										57
									
								
								app/Listeners/Quote/QuoteRestoredActivity.php
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,57 @@ | |||||||
|  | <?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\Listeners\Quote; | ||||||
|  | 
 | ||||||
|  | use App\Libraries\MultiDB; | ||||||
|  | use App\Models\Activity; | ||||||
|  | use App\Models\ClientContact; | ||||||
|  | use App\Models\InvoiceInvitation; | ||||||
|  | use App\Repositories\ActivityRepository; | ||||||
|  | use App\Utils\Traits\MakesHash; | ||||||
|  | use Illuminate\Contracts\Queue\ShouldQueue; | ||||||
|  | use Illuminate\Queue\InteractsWithQueue; | ||||||
|  | use Illuminate\Support\Facades\Log; | ||||||
|  | 
 | ||||||
|  | class QuoteRestoredActivity implements ShouldQueue | ||||||
|  | { | ||||||
|  |     protected $activity_repo; | ||||||
|  |     /** | ||||||
|  |      * Create the event listener. | ||||||
|  |      * | ||||||
|  |      * @return void | ||||||
|  |      */ | ||||||
|  |     public function __construct(ActivityRepository $activity_repo) | ||||||
|  |     { | ||||||
|  |         $this->activity_repo = $activity_repo; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * Handle the event. | ||||||
|  |      * | ||||||
|  |      * @param  object  $event | ||||||
|  |      * @return void | ||||||
|  |      */ | ||||||
|  |     public function handle($event) | ||||||
|  |     { | ||||||
|  | 
 | ||||||
|  |         MultiDB::setDb($event->company->db); | ||||||
|  | 
 | ||||||
|  |         $fields = new \stdClass; | ||||||
|  | 
 | ||||||
|  |         $fields->quote_id = $event->quote->id; | ||||||
|  |         $fields->user_id = $event->quote->user_id; | ||||||
|  |         $fields->company_id = $event->quote->company_id; | ||||||
|  |         $fields->activity_type_id = Activity::RESTORE_QUOTE; | ||||||
|  | 
 | ||||||
|  |         $this->activity_repo->save($fields, $event->quote, $event->event_vars); | ||||||
|  |     } | ||||||
|  | } | ||||||
							
								
								
									
										46
									
								
								app/Mail/User/UserNotificationMailer.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								app/Mail/User/UserNotificationMailer.php
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,46 @@ | |||||||
|  | <?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\Mail\User; | ||||||
|  | 
 | ||||||
|  | use App\Models\User; | ||||||
|  | use Illuminate\Mail\Mailable; | ||||||
|  | 
 | ||||||
|  | class UserNotificationMailer extends Mailable | ||||||
|  | { | ||||||
|  | 
 | ||||||
|  |     public $mail_obj; | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * Create a new message instance. | ||||||
|  |      * | ||||||
|  |      * @return void | ||||||
|  |      */ | ||||||
|  |     public function __construct($mail_obj) | ||||||
|  |     { | ||||||
|  |         $this->mail_obj = $mail_obj; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * Build the message. | ||||||
|  |      * | ||||||
|  |      * @return $this | ||||||
|  |      */ | ||||||
|  |     public function build() | ||||||
|  |     { | ||||||
|  |         return $this->from($this->mail_obj->from[0], $this->mail_obj->from[1]) //todo
 | ||||||
|  |                     ->subject($this->mail_obj->subject) | ||||||
|  |                     ->markdown($this->mail_obj->markdown, $this->mail_obj->data) | ||||||
|  |                     ->withSwiftMessage(function ($message) { | ||||||
|  |                             $message->getHeaders()->addTextHeader('Tag', $this->mail_obj->tag); | ||||||
|  |                         }); | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -36,14 +36,14 @@ class Activity extends StaticModel | |||||||
|     const UPDATE_QUOTE=19; //
 |     const UPDATE_QUOTE=19; //
 | ||||||
|     const EMAIL_QUOTE=20; //
 |     const EMAIL_QUOTE=20; //
 | ||||||
|     const VIEW_QUOTE=21; //
 |     const VIEW_QUOTE=21; //
 | ||||||
|     const ARCHIVE_QUOTE=22; |     const ARCHIVE_QUOTE=22; //
 | ||||||
|     const DELETE_QUOTE=23; |     const DELETE_QUOTE=23; //
 | ||||||
|     const RESTORE_QUOTE=24; |     const RESTORE_QUOTE=24; //
 | ||||||
|     const RESTORE_INVOICE=25; |     const RESTORE_INVOICE=25; //
 | ||||||
|     const RESTORE_CLIENT=26; |     const RESTORE_CLIENT=26; //
 | ||||||
|     const RESTORE_PAYMENT=27; |     const RESTORE_PAYMENT=27; //
 | ||||||
|     const RESTORE_CREDIT=28; |     const RESTORE_CREDIT=28; //
 | ||||||
|     const APPROVE_QUOTE=29; |     const APPROVE_QUOTE=29; //
 | ||||||
|     const CREATE_VENDOR=30; |     const CREATE_VENDOR=30; | ||||||
|     const ARCHIVE_VENDOR=31; |     const ARCHIVE_VENDOR=31; | ||||||
|     const DELETE_VENDOR=32; |     const DELETE_VENDOR=32; | ||||||
|  | |||||||
| @ -65,7 +65,8 @@ class Payment extends BaseModel | |||||||
|         'date', |         'date', | ||||||
|         'transaction_reference', |         'transaction_reference', | ||||||
|         'number', |         'number', | ||||||
|         'is_manual' |         'is_manual', | ||||||
|  |         'private_notes', | ||||||
|     ]; |     ]; | ||||||
| 
 | 
 | ||||||
|     protected $casts = [ |     protected $casts = [ | ||||||
|  | |||||||
| @ -26,6 +26,7 @@ use App\Events\Credit\CreditWasCreated; | |||||||
| use App\Events\Credit\CreditWasDeleted; | use App\Events\Credit\CreditWasDeleted; | ||||||
| use App\Events\Credit\CreditWasEmailedAndFailed; | use App\Events\Credit\CreditWasEmailedAndFailed; | ||||||
| use App\Events\Credit\CreditWasMarkedSent; | use App\Events\Credit\CreditWasMarkedSent; | ||||||
|  | use App\Events\Credit\CreditWasRestored; | ||||||
| use App\Events\Credit\CreditWasUpdated; | use App\Events\Credit\CreditWasUpdated; | ||||||
| use App\Events\Design\DesignWasArchived; | use App\Events\Design\DesignWasArchived; | ||||||
| use App\Events\Invoice\InvoiceWasArchived; | use App\Events\Invoice\InvoiceWasArchived; | ||||||
| @ -35,6 +36,7 @@ use App\Events\Invoice\InvoiceWasDeleted; | |||||||
| use App\Events\Invoice\InvoiceWasEmailed; | use App\Events\Invoice\InvoiceWasEmailed; | ||||||
| use App\Events\Invoice\InvoiceWasMarkedSent; | use App\Events\Invoice\InvoiceWasMarkedSent; | ||||||
| use App\Events\Invoice\InvoiceWasPaid; | use App\Events\Invoice\InvoiceWasPaid; | ||||||
|  | use App\Events\Invoice\InvoiceWasRestored; | ||||||
| use App\Events\Invoice\InvoiceWasReversed; | use App\Events\Invoice\InvoiceWasReversed; | ||||||
| use App\Events\Invoice\InvoiceWasUpdated; | use App\Events\Invoice\InvoiceWasUpdated; | ||||||
| use App\Events\Invoice\InvoiceWasViewed; | use App\Events\Invoice\InvoiceWasViewed; | ||||||
| @ -43,11 +45,15 @@ use App\Events\Payment\PaymentWasArchived; | |||||||
| use App\Events\Payment\PaymentWasCreated; | use App\Events\Payment\PaymentWasCreated; | ||||||
| use App\Events\Payment\PaymentWasDeleted; | use App\Events\Payment\PaymentWasDeleted; | ||||||
| use App\Events\Payment\PaymentWasRefunded; | use App\Events\Payment\PaymentWasRefunded; | ||||||
|  | use App\Events\Payment\PaymentWasRestored; | ||||||
| use App\Events\Payment\PaymentWasUpdated; | use App\Events\Payment\PaymentWasUpdated; | ||||||
| use App\Events\Payment\PaymentWasVoided; | use App\Events\Payment\PaymentWasVoided; | ||||||
| use App\Events\Quote\QuoteWasApproved; | use App\Events\Quote\QuoteWasApproved; | ||||||
|  | use App\Events\Quote\QuoteWasArchived; | ||||||
| use App\Events\Quote\QuoteWasCreated; | use App\Events\Quote\QuoteWasCreated; | ||||||
|  | use App\Events\Quote\QuoteWasDeleted; | ||||||
| use App\Events\Quote\QuoteWasEmailed; | use App\Events\Quote\QuoteWasEmailed; | ||||||
|  | use App\Events\Quote\QuoteWasRestored; | ||||||
| use App\Events\Quote\QuoteWasUpdated; | use App\Events\Quote\QuoteWasUpdated; | ||||||
| use App\Events\Quote\QuoteWasViewed; | use App\Events\Quote\QuoteWasViewed; | ||||||
| use App\Events\User\UserLoggedIn; | use App\Events\User\UserLoggedIn; | ||||||
| @ -69,6 +75,7 @@ use App\Listeners\Activity\QuoteUpdatedActivity; | |||||||
| use App\Listeners\Activity\RestoreClientActivity; | use App\Listeners\Activity\RestoreClientActivity; | ||||||
| use App\Listeners\Activity\UpdatedCreditActivity; | use App\Listeners\Activity\UpdatedCreditActivity; | ||||||
| use App\Listeners\Contact\UpdateContactLastLogin; | use App\Listeners\Contact\UpdateContactLastLogin; | ||||||
|  | use App\Listeners\Credit\CreditRestoredActivity; | ||||||
| use App\Listeners\Document\DeleteCompanyDocuments; | use App\Listeners\Document\DeleteCompanyDocuments; | ||||||
| use App\Listeners\Invoice\CreateInvoiceActivity; | use App\Listeners\Invoice\CreateInvoiceActivity; | ||||||
| use App\Listeners\Invoice\CreateInvoiceHtmlBackup; | use App\Listeners\Invoice\CreateInvoiceHtmlBackup; | ||||||
| @ -79,12 +86,17 @@ use App\Listeners\Invoice\InvoiceDeletedActivity; | |||||||
| use App\Listeners\Invoice\InvoiceEmailActivity; | use App\Listeners\Invoice\InvoiceEmailActivity; | ||||||
| use App\Listeners\Invoice\InvoiceEmailFailedActivity; | use App\Listeners\Invoice\InvoiceEmailFailedActivity; | ||||||
| use App\Listeners\Invoice\InvoiceEmailedNotification; | use App\Listeners\Invoice\InvoiceEmailedNotification; | ||||||
|  | use App\Listeners\Invoice\InvoiceRestoredActivity; | ||||||
| use App\Listeners\Invoice\InvoiceViewedActivity; | use App\Listeners\Invoice\InvoiceViewedActivity; | ||||||
| use App\Listeners\Invoice\UpdateInvoiceActivity; | use App\Listeners\Invoice\UpdateInvoiceActivity; | ||||||
| use App\Listeners\Invoice\UpdateInvoiceInvitations; | use App\Listeners\Invoice\UpdateInvoiceInvitations; | ||||||
| use App\Listeners\Misc\InvitationViewedListener; | use App\Listeners\Misc\InvitationViewedListener; | ||||||
| use App\Listeners\Payment\PaymentNotification; | use App\Listeners\Payment\PaymentNotification; | ||||||
|  | use App\Listeners\Payment\PaymentRestoredActivity; | ||||||
|  | use App\Listeners\Quote\QuoteArchivedActivity; | ||||||
|  | use App\Listeners\Quote\QuoteDeletedActivity; | ||||||
| use App\Listeners\Quote\QuoteEmailActivity; | use App\Listeners\Quote\QuoteEmailActivity; | ||||||
|  | use App\Listeners\Quote\QuoteRestoredActivity; | ||||||
| use App\Listeners\Quote\QuoteViewedActivity; | use App\Listeners\Quote\QuoteViewedActivity; | ||||||
| use App\Listeners\Quote\ReachWorkflowSettings; | use App\Listeners\Quote\ReachWorkflowSettings; | ||||||
| use App\Listeners\SendVerificationNotification; | use App\Listeners\SendVerificationNotification; | ||||||
| @ -132,6 +144,9 @@ class EventServiceProvider extends ServiceProvider | |||||||
|         PaymentWasVoided::class => [ |         PaymentWasVoided::class => [ | ||||||
|             PaymentVoidedActivity::class, |             PaymentVoidedActivity::class, | ||||||
|         ], |         ], | ||||||
|  |         PaymentWasRestored::class =>[ | ||||||
|  |             PaymentRestoredActivity::class, | ||||||
|  |         ], | ||||||
|         // Clients
 |         // Clients
 | ||||||
|         ClientWasCreated::class =>[ |         ClientWasCreated::class =>[ | ||||||
|             CreatedClientActivity::class, |             CreatedClientActivity::class, | ||||||
| @ -176,6 +191,9 @@ class EventServiceProvider extends ServiceProvider | |||||||
|         CreditWasArchived::class => [ |         CreditWasArchived::class => [ | ||||||
|             CreditArchivedActivity::class, |             CreditArchivedActivity::class, | ||||||
|         ], |         ], | ||||||
|  |         CreditWasRestored::class => [ | ||||||
|  |             CreditRestoredActivity::class, | ||||||
|  |         ], | ||||||
|         //Designs
 |         //Designs
 | ||||||
|         DesignWasArchived::class => [ |         DesignWasArchived::class => [ | ||||||
|         ], |         ], | ||||||
| @ -216,6 +234,9 @@ class EventServiceProvider extends ServiceProvider | |||||||
|         InvoiceWasArchived::class => [ |         InvoiceWasArchived::class => [ | ||||||
|             InvoiceArchivedActivity::class, |             InvoiceArchivedActivity::class, | ||||||
|         ], |         ], | ||||||
|  |         InvoiceWasRestored::class => [ | ||||||
|  |             InvoiceRestoredActivity::class, | ||||||
|  |         ], | ||||||
|         InvoiceWasReversed::class => [ |         InvoiceWasReversed::class => [ | ||||||
|         ], |         ], | ||||||
|         InvoiceWasCancelled::class => [ |         InvoiceWasCancelled::class => [ | ||||||
| @ -241,7 +262,15 @@ class EventServiceProvider extends ServiceProvider | |||||||
|         QuoteWasViewed::class => [ |         QuoteWasViewed::class => [ | ||||||
|             QuoteViewedActivity::class, |             QuoteViewedActivity::class, | ||||||
|         ], |         ], | ||||||
| 
 |         QuoteWasArchived::class => [ | ||||||
|  |             QuoteArchivedActivity::class, | ||||||
|  |         ], | ||||||
|  |         QuoteWasDeleted::class => [ | ||||||
|  |             QuoteDeletedActivity::class, | ||||||
|  |         ], | ||||||
|  |         QuoteWasRestored::class => [ | ||||||
|  |             QuoteRestoredActivity::class, | ||||||
|  |         ], | ||||||
|     ]; |     ]; | ||||||
| 
 | 
 | ||||||
|     /** |     /** | ||||||
|  | |||||||
| @ -82,13 +82,15 @@ class PaymentRepository extends BaseRepository | |||||||
|                     $data['amount'] = array_sum(array_column($data['invoices'], 'amount')); |                     $data['amount'] = array_sum(array_column($data['invoices'], 'amount')); | ||||||
|                  |                  | ||||||
|                 $client = Client::find($data['client_id']); |                 $client = Client::find($data['client_id']); | ||||||
|                 info("updating client balance from {$client->balance} by this much ".$data['amount']); |                 //info("updating client balance from {$client->balance} by this much ".$data['amount']);
 | ||||||
| 
 | 
 | ||||||
|                 $client->service()->updatePaidToDate($data['amount'])->save(); |                 $client->service()->updatePaidToDate($data['amount'])->save(); | ||||||
| 
 | 
 | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|  |         //info(print_r($data,1));
 | ||||||
|  | 
 | ||||||
|         /*Fill the payment*/ |         /*Fill the payment*/ | ||||||
|         $payment->fill($data); |         $payment->fill($data); | ||||||
|         $payment->status_id = Payment::STATUS_COMPLETED; |         $payment->status_id = Payment::STATUS_COMPLETED; | ||||||
|  | |||||||
							
								
								
									
										28
									
								
								app/Services/Recurring/RecurringService.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								app/Services/Recurring/RecurringService.php
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,28 @@ | |||||||
|  | <?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\Recurring; | ||||||
|  | 
 | ||||||
|  | use App\Models\RecurringInvoice; | ||||||
|  | 
 | ||||||
|  | class RecurringService | ||||||
|  | { | ||||||
|  | 
 | ||||||
|  |     protected $recurring_entity; | ||||||
|  | 
 | ||||||
|  |     public function __construct($recurring_entity) | ||||||
|  |     { | ||||||
|  |         $this->recurring_entity = $recurring_entity; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     //set schedules - update next_send_dates
 | ||||||
|  | } | ||||||
							
								
								
									
										10
									
								
								composer.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										10
									
								
								composer.lock
									
									
									
										generated
									
									
									
								
							| @ -5841,16 +5841,16 @@ | |||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
|             "name": "spatie/browsershot", |             "name": "spatie/browsershot", | ||||||
|             "version": "3.37.1", |             "version": "3.37.2", | ||||||
|             "source": { |             "source": { | ||||||
|                 "type": "git", |                 "type": "git", | ||||||
|                 "url": "https://github.com/spatie/browsershot.git", |                 "url": "https://github.com/spatie/browsershot.git", | ||||||
|                 "reference": "7d526a458ce870a07669bd2416313a4d62f3f15d" |                 "reference": "32d2984079ed8fe690f4dc5b7b6c205ae0a7b0fd" | ||||||
|             }, |             }, | ||||||
|             "dist": { |             "dist": { | ||||||
|                 "type": "zip", |                 "type": "zip", | ||||||
|                 "url": "https://api.github.com/repos/spatie/browsershot/zipball/7d526a458ce870a07669bd2416313a4d62f3f15d", |                 "url": "https://api.github.com/repos/spatie/browsershot/zipball/32d2984079ed8fe690f4dc5b7b6c205ae0a7b0fd", | ||||||
|                 "reference": "7d526a458ce870a07669bd2416313a4d62f3f15d", |                 "reference": "32d2984079ed8fe690f4dc5b7b6c205ae0a7b0fd", | ||||||
|                 "shasum": "" |                 "shasum": "" | ||||||
|             }, |             }, | ||||||
|             "require": { |             "require": { | ||||||
| @ -5899,7 +5899,7 @@ | |||||||
|                     "type": "github" |                     "type": "github" | ||||||
|                 } |                 } | ||||||
|             ], |             ], | ||||||
|             "time": "2020-07-08T07:20:45+00:00" |             "time": "2020-07-21T22:40:58+00:00" | ||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
|             "name": "spatie/image", |             "name": "spatie/image", | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user