2019-04-10 11:09:57 +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-04-10 11:09:57 +02:00
namespace App\Factory ;
2019-04-17 08:20:32 +02:00
use App\DataMapper\ClientSettings ;
use App\DataMapper\CompanySettings ;
2019-04-10 11:42:19 +02:00
use App\Models\Invoice ;
2019-04-17 08:20:32 +02:00
use Illuminate\Support\Facades\Log ;
2019-04-10 11:42:19 +02:00
2019-04-10 11:09:57 +02:00
class InvoiceFactory
{
2019-04-26 13:18:23 +02:00
public static function create ( int $company_id , int $user_id ) : Invoice
2019-04-10 11:09:57 +02:00
{
2019-04-26 13:18:23 +02:00
$invoice = new Invoice ();
2019-04-24 07:18:48 +02:00
$invoice -> status_id = Invoice :: STATUS_DRAFT ;
2019-05-16 00:26:21 +02:00
$invoice -> invoice_number = null ;
2019-04-10 11:42:19 +02:00
$invoice -> discount = 0 ;
$invoice -> is_amount_discount = true ;
$invoice -> po_number = '' ;
2019-04-23 06:16:41 +02:00
$invoice -> footer = '' ;
$invoice -> terms = '' ;
$invoice -> public_notes = '' ;
$invoice -> private_notes = '' ;
2019-04-10 11:42:19 +02:00
$invoice -> invoice_date = null ;
$invoice -> due_date = null ;
2019-04-23 06:16:41 +02:00
$invoice -> partial_due_date = null ;
2019-04-10 11:42:19 +02:00
$invoice -> is_deleted = false ;
$invoice -> line_items = json_encode ([]);
2019-04-24 12:01:40 +02:00
$invoice -> settings = ClientSettings :: buildClientSettings ( new CompanySettings ( CompanySettings :: defaults ()), new ClientSettings ( ClientSettings :: defaults ())); //todo need to embed the settings here
2019-04-10 11:42:19 +02:00
$invoice -> backup = json_encode ([]);
$invoice -> tax_name1 = '' ;
$invoice -> tax_rate1 = 0 ;
$invoice -> tax_name2 = '' ;
$invoice -> tax_rate2 = 0 ;
2019-04-18 00:00:04 +02:00
$invoice -> custom_value1 = 0 ;
$invoice -> custom_value2 = 0 ;
$invoice -> custom_value3 = 0 ;
$invoice -> custom_value4 = 0 ;
2019-04-10 11:42:19 +02:00
$invoice -> amount = 0 ;
$invoice -> balance = 0 ;
$invoice -> partial = 0 ;
2019-04-15 02:10:54 +02:00
$invoice -> user_id = $user_id ;
$invoice -> company_id = $company_id ;
2019-05-30 00:22:25 +02:00
$invoice -> recurring_invoice_id = null ;
2019-04-24 07:18:48 +02:00
2019-04-10 11:42:19 +02:00
return $invoice ;
2019-04-10 11:09:57 +02:00
}
}