2019-05-03 00:29:04 +02:00
< ? php
2019-05-11 05:32:07 +02:00
/**
* Invoice Ninja ( https :// invoiceninja . com )
*
* @ link https :// github . com / invoiceninja / invoiceninja source repository
*
* @ copyright Copyright ( c ) 2019. Invoice Ninja LLC ( https :// invoiceninja . com )
*
* @ license https :// opensource . org / licenses / AAL
*/
2019-05-03 00:29:04 +02:00
namespace App\Factory ;
use App\DataMapper\ClientSettings ;
use App\DataMapper\CompanySettings ;
use App\Models\RecurringInvoice ;
class RecurringInvoiceFactory
{
public static function create ( int $company_id , int $user_id ) : RecurringInvoice
{
$invoice = new RecurringInvoice ();
2019-05-03 09:35:49 +02:00
$invoice -> status_id = RecurringInvoice :: STATUS_DRAFT ;
2019-05-03 00:29:04 +02:00
$invoice -> discount = 0 ;
$invoice -> is_amount_discount = true ;
$invoice -> po_number = '' ;
$invoice -> footer = '' ;
$invoice -> terms = '' ;
$invoice -> public_notes = '' ;
$invoice -> private_notes = '' ;
$invoice -> invoice_date = null ;
$invoice -> due_date = null ;
$invoice -> partial_due_date = null ;
$invoice -> is_deleted = false ;
$invoice -> line_items = json_encode ([]);
$invoice -> settings = ClientSettings :: buildClientSettings ( new CompanySettings ( CompanySettings :: defaults ()), new ClientSettings ( ClientSettings :: defaults ())); //todo need to embed the settings here
$invoice -> backup = json_encode ([]);
$invoice -> tax_name1 = '' ;
$invoice -> tax_rate1 = 0 ;
$invoice -> tax_name2 = '' ;
$invoice -> tax_rate2 = 0 ;
$invoice -> custom_value1 = 0 ;
$invoice -> custom_value2 = 0 ;
$invoice -> custom_value3 = 0 ;
$invoice -> custom_value4 = 0 ;
$invoice -> amount = 0 ;
$invoice -> balance = 0 ;
$invoice -> partial = 0 ;
$invoice -> user_id = $user_id ;
$invoice -> company_id = $company_id ;
$invoice -> frequency_id = RecurringInvoice :: FREQUENCY_MONTHLY ;
$invoice -> start_date = null ;
$invoice -> last_sent_date = null ;
$invoice -> next_send_date = null ;
$invoice -> remaining_cycles = 0 ;
return $invoice ;
}
}