mirror of
				https://github.com/invoiceninja/invoiceninja.git
				synced 2025-10-31 11:57:33 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			163 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			163 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
| <?php
 | |
| 
 | |
| class Account extends Eloquent
 | |
| {
 | |
| 	protected $softDelete = true;
 | |
| 
 | |
| 	public function users()
 | |
| 	{
 | |
| 		return $this->hasMany('User');
 | |
| 	}
 | |
| 
 | |
| 	public function clients()
 | |
| 	{
 | |
| 		return $this->hasMany('Client');
 | |
| 	}
 | |
| 
 | |
| 	public function invoices()
 | |
| 	{
 | |
| 		return $this->hasMany('Invoice');
 | |
| 	}
 | |
| 
 | |
| 	public function account_gateways()
 | |
| 	{
 | |
| 		return $this->hasMany('AccountGateway');
 | |
| 	}
 | |
| 
 | |
| 	public function tax_rates()
 | |
| 	{
 | |
| 		return $this->hasMany('TaxRate');
 | |
| 	}
 | |
| 
 | |
| 	public function country()
 | |
| 	{
 | |
| 		return $this->belongsTo('Country');
 | |
| 	}
 | |
| 
 | |
| 	public function timezone()
 | |
| 	{
 | |
| 		return $this->belongsTo('Timezone');
 | |
| 	}
 | |
| 
 | |
| 	public function date_format()
 | |
| 	{
 | |
| 		return $this->belongsTo('DateFormat');	
 | |
| 	}
 | |
| 
 | |
| 	public function datetime_format()
 | |
| 	{
 | |
| 		return $this->belongsTo('DatetimeFormat');	
 | |
| 	}
 | |
| 
 | |
| 	public function size()
 | |
| 	{
 | |
| 		return $this->belongsTo('Size');	
 | |
| 	}
 | |
| 
 | |
| 	public function industry()
 | |
| 	{
 | |
| 		return $this->belongsTo('Industry');
 | |
| 	}
 | |
| 
 | |
| 	public function isGatewayConfigured($gatewayId = 0)
 | |
| 	{
 | |
| 		$this->load('account_gateways');
 | |
| 
 | |
| 		if ($gatewayId)
 | |
| 		{
 | |
| 			return $this->getGatewayConfig($gatewayId) != false;
 | |
| 		}
 | |
| 		else
 | |
| 		{
 | |
| 			return count($this->account_gateways) > 0;
 | |
| 		}
 | |
| 	}
 | |
| 
 | |
| 	public function getDisplayName()
 | |
| 	{
 | |
| 		if ($this->name) 
 | |
| 		{
 | |
| 			return $this->name;
 | |
| 		}
 | |
| 
 | |
| 		$this->load('users');
 | |
| 		$user = $this->users()->first();
 | |
| 		
 | |
| 		return $user->getDisplayName();
 | |
| 	}
 | |
| 
 | |
| 	public function getTimezone()
 | |
| 	{
 | |
| 		if ($this->timezone)
 | |
| 		{
 | |
| 			return $this->timezone->name;
 | |
| 		}
 | |
| 		else
 | |
| 		{
 | |
| 			return 'US/Eastern';
 | |
| 		}
 | |
| 	}
 | |
| 
 | |
| 	public function getGatewayConfig($gatewayId)
 | |
| 	{
 | |
| 		foreach ($this->account_gateways as $gateway)
 | |
| 		{
 | |
| 			if ($gateway->gateway_id == $gatewayId)
 | |
| 			{
 | |
| 				return $gateway;
 | |
| 			}
 | |
| 		}	
 | |
| 
 | |
| 		return false;	
 | |
| 	}
 | |
| 
 | |
| 	public function getLogoPath()
 | |
| 	{
 | |
| 		return 'logo/' . $this->account_key . '.jpg';
 | |
| 	}
 | |
| 
 | |
| 	public function getLogoWidth()
 | |
| 	{
 | |
| 		list($width, $height) = getimagesize($this->getLogoPath());
 | |
| 		return $width;
 | |
| 	}
 | |
| 
 | |
| 	public function getLogoHeight()
 | |
| 	{
 | |
| 		list($width, $height) = getimagesize($this->getLogoPath());
 | |
| 		return $height;	
 | |
| 	}
 | |
| 
 | |
| 	public function getNextInvoiceNumber()
 | |
| 	{			
 | |
| 		$invoices = Invoice::withTrashed()->scope(false, $this->id)->get(['invoice_number']);
 | |
| 
 | |
| 		$max = 0;
 | |
| 
 | |
| 		foreach ($invoices as $invoice)
 | |
| 		{
 | |
| 			$number = intval(preg_replace("/[^0-9]/", "", $invoice->invoice_number));
 | |
| 			$max = max($max, $number);
 | |
| 		}
 | |
| 		
 | |
| 		if ($max > 0) 
 | |
| 		{
 | |
| 			return str_pad($max+1, 4, "0", STR_PAD_LEFT);
 | |
| 		}	
 | |
| 		else
 | |
| 		{
 | |
| 			return DEFAULT_INVOICE_NUMBER;
 | |
| 		}
 | |
| 	}
 | |
| 
 | |
| 	public function loadLocalizationSettings()
 | |
| 	{
 | |
| 		$this->load('timezone', 'date_format', 'datetime_format');
 | |
| 
 | |
| 		Session::put(SESSION_TIMEZONE, $this->timezone ? $this->timezone->name : DEFAULT_TIMEZONE);
 | |
| 		Session::put(SESSION_DATE_FORMAT, $this->date_format ? $this->date_format->format : DEFAULT_DATE_FORMAT);
 | |
| 		Session::put(SESSION_DATE_PICKER_FORMAT, $this->date_format ? $this->date_format->picker_format : DEFAULT_DATE_PICKER_FORMAT);
 | |
| 		Session::put(SESSION_DATETIME_FORMAT, $this->datetime_format ? $this->datetime_format->format : DEFAULT_DATETIME_FORMAT);			
 | |
| 		Session::put(SESSION_CURRENCY, $this->currency_id ? $this->currency_id : DEFAULT_CURRENCY);					
 | |
| 	}
 | |
| } |