mirror of
				https://github.com/invoiceninja/invoiceninja.git
				synced 2025-11-01 20:17:35 -04:00 
			
		
		
		
	Email timing offset
This commit is contained in:
		
							parent
							
								
									769ab49458
								
							
						
					
					
						commit
						99d6d1c516
					
				| @ -65,6 +65,8 @@ class CompanySettings extends BaseSettings | ||||
|     public $auto_convert_quote = true; //@implemented
 | ||||
|     public $auto_email_invoice = true; //@only used for Recurring Invoices, if set to false, we never send?
 | ||||
| 
 | ||||
|     public $entity_send_time = 0; | ||||
| 
 | ||||
|     public $inclusive_taxes = false; //@implemented
 | ||||
|     public $quote_footer = ''; //@implmented
 | ||||
| 
 | ||||
| @ -266,6 +268,7 @@ class CompanySettings extends BaseSettings | ||||
|     public $hide_empty_columns_on_pdf = false; | ||||
| 
 | ||||
|     public static $casts = [ | ||||
|         'entity_send_time'                   => 'int', | ||||
|         'shared_invoice_credit_counter'      => 'bool', | ||||
|         'reply_to_name'                      => 'string', | ||||
|         'hide_empty_columns_on_pdf'          => 'bool', | ||||
|  | ||||
| @ -30,6 +30,7 @@ use App\Transformers\RecurringInvoiceTransformer; | ||||
| use App\Utils\Ninja; | ||||
| use App\Utils\Traits\MakesHash; | ||||
| use App\Utils\Traits\SavesDocuments; | ||||
| use Carbon\Carbon; | ||||
| use Illuminate\Http\Request; | ||||
| use Illuminate\Http\Response; | ||||
| 
 | ||||
| @ -205,6 +206,15 @@ class RecurringInvoiceController extends BaseController | ||||
| 
 | ||||
|         event(new RecurringInvoiceWasCreated($recurring_invoice, $recurring_invoice->company, Ninja::eventVars(auth()->user() ? auth()->user()->id : null))); | ||||
| 
 | ||||
|         if($recurring_invoice->client->getSetting('entity_send_time') > 0){ | ||||
|              | ||||
|             $timezone = $this->company->timezone(); | ||||
|             $offset = $timezone->utc_offset + ($this->client->getSetting('entity_send_time') * 3600); | ||||
| 
 | ||||
|             $recurring_invoice->next_send_date = Carbon::parse($recurring_invoice->next_send_date)->addSeconds($offset); | ||||
|             $recurring_invoice->save(); | ||||
|         } | ||||
| 
 | ||||
|         return $this->itemResponse($recurring_invoice); | ||||
|     } | ||||
| 
 | ||||
|  | ||||
| @ -220,34 +220,36 @@ class RecurringInvoice extends BaseModel | ||||
|     { | ||||
|         if (!$this->next_send_date) { | ||||
|             return null; | ||||
|             // $this->next_send_date = now()->format('Y-m-d');
 | ||||
|         } | ||||
|          | ||||
|         $timezone = $this->company->timezone(); | ||||
|         $offset = $timezone->utc_offset + ($this->client->getSetting('entity_send_time') * 3600); | ||||
| 
 | ||||
|         switch ($this->frequency_id) { | ||||
|             case self::FREQUENCY_DAILY: | ||||
|                 return Carbon::parse($this->next_send_date)->addDay(); | ||||
|                 return Carbon::parse($this->next_send_date)->startOfDay()->addDay()->addSeconds($offset); | ||||
|             case self::FREQUENCY_WEEKLY: | ||||
|                 return Carbon::parse($this->next_send_date)->addWeek(); | ||||
|                 return Carbon::parse($this->next_send_date)->startOfDay()->addWeek()->addSeconds($offset); | ||||
|             case self::FREQUENCY_TWO_WEEKS: | ||||
|                 return Carbon::parse($this->next_send_date)->addWeeks(2); | ||||
|                 return Carbon::parse($this->next_send_date)->startOfDay()->addWeeks(2)->addSeconds($offset); | ||||
|             case self::FREQUENCY_FOUR_WEEKS: | ||||
|                 return Carbon::parse($this->next_send_date)->addWeeks(4); | ||||
|                 return Carbon::parse($this->next_send_date)->startOfDay()->addWeeks(4)->addSeconds($offset); | ||||
|             case self::FREQUENCY_MONTHLY: | ||||
|                 return Carbon::parse($this->next_send_date)->addMonthNoOverflow(); | ||||
|                 return Carbon::parse($this->next_send_date)->startOfDay()->addMonthNoOverflow()->addSeconds($offset); | ||||
|             case self::FREQUENCY_TWO_MONTHS: | ||||
|                 return Carbon::parse($this->next_send_date)->addMonthsNoOverflow(2); | ||||
|                 return Carbon::parse($this->next_send_date)->startOfDay()->addMonthsNoOverflow(2)->addSeconds($offset); | ||||
|             case self::FREQUENCY_THREE_MONTHS: | ||||
|                 return Carbon::parse($this->next_send_date)->addMonthsNoOverflow(3); | ||||
|                 return Carbon::parse($this->next_send_date)->startOfDay()->addMonthsNoOverflow(3)->addSeconds($offset); | ||||
|             case self::FREQUENCY_FOUR_MONTHS: | ||||
|                 return Carbon::parse($this->next_send_date)->addMonthsNoOverflow(4); | ||||
|                 return Carbon::parse($this->next_send_date)->startOfDay()->addMonthsNoOverflow(4)->addSeconds($offset); | ||||
|             case self::FREQUENCY_SIX_MONTHS: | ||||
|                 return Carbon::parse($this->next_send_date)->addMonthsNoOverflow(6); | ||||
|                 return Carbon::parse($this->next_send_date)->startOfDay()->addMonthsNoOverflow(6)->addSeconds($offset); | ||||
|             case self::FREQUENCY_ANNUALLY: | ||||
|                 return Carbon::parse($this->next_send_date)->addYear(); | ||||
|                 return Carbon::parse($this->next_send_date)->startOfDay()->addYear()->addSeconds($offset); | ||||
|             case self::FREQUENCY_TWO_YEARS: | ||||
|                 return Carbon::parse($this->next_send_date)->addYears(2); | ||||
|                 return Carbon::parse($this->next_send_date)->startOfDay()->addYears(2)->addSeconds($offset); | ||||
|             case self::FREQUENCY_THREE_YEARS: | ||||
|                 return Carbon::parse($this->next_send_date)->addYears(3); | ||||
|                 return Carbon::parse($this->next_send_date)->startOfDay()->addYears(3)->addSeconds($offset); | ||||
|             default: | ||||
|                 return null; | ||||
|         } | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user