1
0
mirror of https://github.com/invoiceninja/invoiceninja.git synced 2024-09-20 16:31:33 +02:00

Working on company settings implmentation

This commit is contained in:
David Bomba 2020-11-04 17:02:15 +11:00
parent 529ef5d686
commit 5fe85ca3f0
6 changed files with 131 additions and 102 deletions

View File

@ -67,133 +67,133 @@ class CompanySettings extends BaseSettings
public $auto_email_invoice = true; //@only used for Recurring Invoices, if set to false, we never send?
public $inclusive_taxes = false; //@implemented
public $quote_footer = '';
public $quote_footer = ''; //@implmented
public $translations;
public $translations; //@TODO not used anywhere
public $counter_number_applied = 'when_saved'; // when_saved , when_sent
public $quote_number_applied = 'when_saved'; // when_saved , when_sent
public $counter_number_applied = 'when_saved'; // when_saved , when_sent //@implemented
public $quote_number_applied = 'when_saved'; // when_saved , when_sent //@implemented
/* Counters */
public $invoice_number_pattern = '';
public $invoice_number_counter = 1;
public $invoice_number_pattern = ''; //@implemented
public $invoice_number_counter = 1; //@implemented
public $recurring_invoice_number_pattern = '';
public $recurring_invoice_number_counter = 1;
public $recurring_invoice_number_pattern = ''; //@implemented
public $recurring_invoice_number_counter = 1; //@implemented
public $quote_number_pattern = '';
public $quote_number_counter = 1;
public $quote_number_pattern = ''; //@implemented
public $quote_number_counter = 1; //@implemented
public $client_number_pattern = '';
public $client_number_counter = 1;
public $client_number_pattern = ''; //@implemented
public $client_number_counter = 1; //@implemented
public $credit_number_pattern = '';
public $credit_number_counter = 1;
public $credit_number_pattern = ''; //@implemented
public $credit_number_counter = 1; //@implemented
public $task_number_pattern = '';
public $task_number_counter = 1;
public $task_number_pattern = ''; //@implemented
public $task_number_counter = 1; //@implemented
public $expense_number_pattern = '';
public $expense_number_counter = 1;
public $expense_number_pattern = ''; //@implemented
public $expense_number_counter = 1; //@implemented
public $vendor_number_pattern = '';
public $vendor_number_counter = 1;
public $vendor_number_pattern = ''; //@implemented
public $vendor_number_counter = 1; //@implemented
public $ticket_number_pattern = '';
public $ticket_number_counter = 1;
public $ticket_number_pattern = ''; //@implemented
public $ticket_number_counter = 1; //@implemented
public $payment_number_pattern = '';
public $payment_number_counter = 1;
public $payment_number_pattern = ''; //@implemented
public $payment_number_counter = 1; //@implemented
public $project_number_pattern = '';
public $project_number_counter = 1;
public $project_number_pattern = ''; //@implemented
public $project_number_counter = 1; //@implemented
public $shared_invoice_quote_counter = false;
public $recurring_number_prefix = 'R';
public $reset_counter_frequency_id = '0';
public $reset_counter_date = '';
public $counter_padding = 4;
public $shared_invoice_quote_counter = false; //@implemented
public $recurring_number_prefix = 'R'; //@implemented
public $reset_counter_frequency_id = '0'; //@implemented
public $reset_counter_date = ''; //@implemented
public $counter_padding = 4; //@implemented
public $auto_bill = 'off'; //off,always,optin,optout
public $auto_bill_date = 'on_due_date'; // on_due_date , on_send_date
public $auto_bill = 'off'; //off,always,optin,optout //@implemented
public $auto_bill_date = 'on_due_date'; // on_due_date , on_send_date //@implemented
public $design = 'views/pdf/design1.blade.php';
//public $design = 'views/pdf/design1.blade.php'; //@deprecated - never used
public $invoice_terms = '';
public $quote_terms = '';
public $invoice_taxes = 0;
public $quote_terms = ''; //@implemented
public $invoice_taxes = 0; // ? used in AP only?
// public $enabled_item_tax_rates = 0;
public $invoice_design_id = 'VolejRejNm';
public $quote_design_id = 'VolejRejNm';
public $credit_design_id = 'VolejRejNm';
public $invoice_design_id = 'VolejRejNm'; //@implemented
public $quote_design_id = 'VolejRejNm'; //@implemented
public $credit_design_id = 'VolejRejNm'; //@implemented
public $invoice_footer = '';
public $credit_footer = '';
public $credit_terms = '';
public $invoice_labels = '';
public $tax_name1 = '';
public $tax_rate1 = 0;
public $tax_name2 = '';
public $tax_rate2 = 0;
public $tax_name3 = '';
public $tax_rate3 = 0;
public $payment_type_id = '0';
public $invoice_fields = '';
public $invoice_labels = ''; //@TODO used in AP only?
public $tax_name1 = ''; //@TODO where do we use this?
public $tax_rate1 = 0; //@TODO where do we use this?
public $tax_name2 = ''; //@TODO where do we use this?
public $tax_rate2 = 0; //@TODO where do we use this?
public $tax_name3 = ''; //@TODO where do we use this?
public $tax_rate3 = 0; //@TODO where do we use this?
public $payment_type_id = '0'; //@TODO where do we use this?
public $invoice_fields = ''; //@TODO is this redundant, we store this in the custom_fields on the company?
public $show_accept_invoice_terms = false;
public $show_accept_quote_terms = false;
public $require_invoice_signature = false;
public $require_quote_signature = false;
public $show_accept_invoice_terms = false; //@TODO ben to confirm
public $show_accept_quote_terms = false; //@TODO ben to confirm
public $require_invoice_signature = false; //@TODO ben to confirm
public $require_quote_signature = false; //@TODO ben to confirm
//email settings
public $email_sending_method = 'default'; //enum 'default','gmail'
public $gmail_sending_user_id = '0';
public $email_sending_method = 'default'; //enum 'default','gmail' //@implemented
public $gmail_sending_user_id = '0'; //@implemented
public $reply_to_email = '';
public $bcc_email = '';
public $pdf_email_attachment = false;
public $ubl_email_attachment = false;
public $reply_to_email = ''; //@TODO
public $bcc_email = ''; //@TODO
public $pdf_email_attachment = false; //@implemented
public $ubl_email_attachment = false; //@implemented
public $email_style = 'light'; //plain, light, dark, custom
public $email_style_custom = ''; //the template itself
public $email_subject_invoice = '';
public $email_subject_quote = '';
public $email_subject_credit = '';
public $email_subject_payment = '';
public $email_subject_payment_partial = '';
public $email_subject_statement = '';
public $email_template_invoice = '';
public $email_template_credit = '';
public $email_template_quote = '';
public $email_template_payment = '';
public $email_template_payment_partial = '';
public $email_template_statement = '';
public $email_subject_reminder1 = '';
public $email_subject_reminder2 = '';
public $email_subject_reminder3 = '';
public $email_subject_reminder_endless = '';
public $email_template_reminder1 = '';
public $email_template_reminder2 = '';
public $email_template_reminder3 = '';
public $email_template_reminder_endless = '';
public $email_signature = '';
public $enable_email_markup = true;
public $email_style = 'light'; //plain, light, dark, custom //@implemented
public $email_style_custom = ''; //the template itself //@implemented
public $email_subject_invoice = ''; //@implemented
public $email_subject_quote = ''; //@implemented
public $email_subject_credit = ''; //@implemented
public $email_subject_payment = ''; //@implemented
public $email_subject_payment_partial = ''; //@implemented
public $email_subject_statement = ''; //@implemented
public $email_template_invoice = ''; //@implemented
public $email_template_credit = ''; //@implemented
public $email_template_quote = ''; //@implemented
public $email_template_payment = ''; //@implemented
public $email_template_payment_partial = ''; //@implemented
public $email_template_statement = ''; //@implemented
public $email_subject_reminder1 = ''; //@implemented
public $email_subject_reminder2 = ''; //@implemented
public $email_subject_reminder3 = ''; //@implemented
public $email_subject_reminder_endless = ''; //@implemented
public $email_template_reminder1 = ''; //@implemented
public $email_template_reminder2 = ''; //@implemented
public $email_template_reminder3 = ''; //@implemented
public $email_template_reminder_endless = ''; //@implemented
public $email_signature = ''; //@implemented
public $enable_email_markup = true; //@TODO
public $email_subject_custom1 = '';
public $email_subject_custom2 = '';
public $email_subject_custom3 = '';
public $email_subject_custom1 = ''; //@TODO
public $email_subject_custom2 = ''; //@TODO
public $email_subject_custom3 = ''; //@TODO
public $email_template_custom1 = '';
public $email_template_custom2 = '';
public $email_template_custom3 = '';
public $email_template_custom1 = ''; //@TODO
public $email_template_custom2 = ''; //@TODO
public $email_template_custom3 = ''; //@TODO
public $enable_reminder1 = false;
public $enable_reminder2 = false;
public $enable_reminder3 = false;
public $enable_reminder_endless = false;
public $enable_reminder1 = false; //@partially implmemented
public $enable_reminder2 = false; //@partially implmemented
public $enable_reminder3 = false; //@partially implmemented
public $enable_reminder_endless = false; //@partially implmemented
public $num_days_reminder1 = 0;
public $num_days_reminder2 = 0;
public $num_days_reminder3 = 0;
public $num_days_reminder1 = 0;//@partially implmemented
public $num_days_reminder2 = 0;//@partially implmemented
public $num_days_reminder3 = 0;//@partially implmemented
public $schedule_reminder1 = ''; // (enum: after_invoice_date, before_due_date, after_due_date)
public $schedule_reminder2 = ''; // (enum: after_invoice_date, before_due_date, after_due_date)
@ -429,7 +429,7 @@ class CompanySettings extends BaseSettings
'auto_convert_quote' => 'bool',
'shared_invoice_quote_counter' => 'bool',
'counter_padding' => 'integer',
'design' => 'string',
//'design' => 'string',
'website' => 'string',
'pdf_variables' => 'object',
'portal_custom_head' => 'string',

View File

@ -82,8 +82,8 @@ class QuoteController extends BaseController
* tags={"quotes"},
* summary="Gets a list of quotes",
* description="Lists quotes, search and filters allow fine grained lists to be generated.
Query parameters can be added to performed more fine grained filtering of the quotes, these are handled by the QuoteFilters class which defines the methods available",
*
* Query parameters can be added to performed more fine grained filtering of the quotes, these are handled by the QuoteFilters class which defines the methods available",
* @OA\Parameter(ref="#/components/parameters/X-Api-Secret"),
* @OA\Parameter(ref="#/components/parameters/X-Api-Token"),
* @OA\Parameter(ref="#/components/parameters/X-Requested-With"),
@ -207,6 +207,8 @@ class QuoteController extends BaseController
$quote = $this->quote_repo->save($request->all(), QuoteFactory::create(auth()->user()->company()->id, auth()->user()->id));
$quote = $quote->service()->fillDefaults()->save();
event(new QuoteWasCreated($quote, $quote->company, Ninja::eventVars()));
return $this->itemResponse($quote);

View File

@ -301,10 +301,6 @@ class BaseRepository
if ($class->name == Quote::class) {
$model = $model->calc()->getQuote();
if (! $model->design_id) {
$model->design_id = $this->decodePrimaryKey($client->getSetting('quote_design_id'));
}
}
$model->save();

View File

@ -98,6 +98,13 @@ class CreditService
return $this;
}
public function fillDefaults()
{
return $this;
}
/**
* Saves the credit.
* @return Credit object

View File

@ -362,6 +362,13 @@ class InvoiceService
return $this;
}
public function fillDefaults()
{
return $this;
}
/**
* Saves the invoice.
* @return Invoice object

View File

@ -158,6 +158,23 @@ class QuoteService
return true;
}
public function fillDefaults()
{
$settings = $this->quote->client->getMergedSettings();
if(! $this->quote->design_id)
$this->quote->design_id = $this->decodePrimaryKey($settings->quote_design_id);
if(!isset($this->quote->footer))
$this->quote->footer = $settings->quote_footer;
if(!isset($this->quote->terms))
$this->quote->terms = $settings->quote_terms;
return $this;
}
/**
* Saves the quote.
* @return Quote|null