diff --git a/app/DataMapper/ClientSettings.php b/app/DataMapper/ClientSettings.php index 8298c639b5c6..d158208e0ead 100644 --- a/app/DataMapper/ClientSettings.php +++ b/app/DataMapper/ClientSettings.php @@ -46,6 +46,7 @@ class ClientSettings extends BaseSettings public $custom_taxes1; public $custom_taxes2; public $lock_sent_invoices; + public $auto_bill; /** * settings which which are unique to client settings diff --git a/app/Factory/CloneInvoiceFactory.php b/app/Factory/CloneInvoiceFactory.php index f4cb5bd1a057..cfaf1f19dc99 100644 --- a/app/Factory/CloneInvoiceFactory.php +++ b/app/Factory/CloneInvoiceFactory.php @@ -18,7 +18,8 @@ class CloneInvoiceFactory $clone_invoice->balance = $invoice->amount; $clone_invoice->settings = $invoice->settings; $clone_invoice->line_items = $invoice->line_items; - + $clone_invoice->backup = null; + return $clone_invoice; } diff --git a/app/Factory/CloneInvoiceToQuoteFactory.php b/app/Factory/CloneInvoiceToQuoteFactory.php new file mode 100644 index 000000000000..1a87951403a5 --- /dev/null +++ b/app/Factory/CloneInvoiceToQuoteFactory.php @@ -0,0 +1,52 @@ +client_id = $invoice->client_id; + $quote->user_id = $user_id; + $quote->company_id = $invoice->company_id; + $quote->discount = $invoice->discount; + $quote->is_amount_discount = $invoice->is_amount_discount; + $quote->po_number = $invoice->po_number; + $quote->is_deleted = false; + $quote->backup = null; + $quote->footer = $invoice->footer; + $quote->public_notes = $invoice->public_notes; + $quote->private_notes = $invoice->private_notes; + $quote->terms = $invoice->terms; + $quote->tax_name1 = $invoice->tax_name1; + $quote->tax_rate1 = $invoice->tax_rate1; + $quote->tax_name2 = $invoice->tax_name2; + $quote->tax_rate2 = $invoice->tax_rate2; + $quote->custom_value1 = $invoice->custom_value1; + $quote->custom_value2 = $invoice->custom_value2; + $quote->custom_value3 = $invoice->custom_value3; + $quote->custom_value4 = $invoice->custom_value4; + $quote->amount = $invoice->amount; + $quote->balance = $invoice->balance; + $quote->partial = $invoice->partial; + $quote->partial_due_date = $invoice->partial_due_date; + $quote->last_viewed = $invoice->last_viewed; + + $quote->status_id = Quote::STATUS_DRAFT; + $quote->quote_number = ''; + $quote->quote_date = null; + $quote->due_date = null; + $quote->partial_due_date = null; + $quote->balance = $invoice->amount; + $quote->settings = $invoice->settings; + $quote->line_items = $invoice->line_items; + + return $quote; + } + +} diff --git a/app/Models/Quote.php b/app/Models/Quote.php index e1285b32e89d..d3df7b803e42 100644 --- a/app/Models/Quote.php +++ b/app/Models/Quote.php @@ -15,7 +15,6 @@ class Quote extends BaseModel const STATUS_DRAFT = 1; const STATUS_SENT = 2; - const STATUS_VIEWED = 3; const STATUS_APPROVED = 4; const STATUS_OVERDUE = -1; diff --git a/app/Models/RecurringInvoice.php b/app/Models/RecurringInvoice.php new file mode 100644 index 000000000000..698c24b001f0 --- /dev/null +++ b/app/Models/RecurringInvoice.php @@ -0,0 +1,38 @@ + 'object' + ]; + + public function company() + { + return $this->belongsTo(Company::class); + } + + public function user() + { + return $this->belongsTo(User::class); + } + + public function invitations() + { + $this->morphMany(Invitation::class, 'inviteable'); + } +} diff --git a/database/migrations/2014_10_13_000000_create_users_table.php b/database/migrations/2014_10_13_000000_create_users_table.php index 8e549c5b11b1..cf3dda5aab5a 100644 --- a/database/migrations/2014_10_13_000000_create_users_table.php +++ b/database/migrations/2014_10_13_000000_create_users_table.php @@ -456,7 +456,7 @@ class CreateUsersTable extends Migration $t->unsignedInteger('client_id')->index(); $t->unsignedInteger('user_id'); $t->unsignedInteger('company_id')->index(); - $t->unsignedInteger('quote_status_id'); + $t->unsignedInteger('status_id'); $t->string('quote_number'); $t->float('discount');