mirror of
				https://github.com/invoiceninja/invoiceninja.git
				synced 2025-11-04 03:40:09 -05: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