diff --git a/app/Http/Controllers/PreviewController.php b/app/Http/Controllers/PreviewController.php index 9535f31c478a..49ab96663259 100644 --- a/app/Http/Controllers/PreviewController.php +++ b/app/Http/Controllers/PreviewController.php @@ -375,8 +375,9 @@ class PreviewController extends BaseController ]; $ts = (new TemplateService()); - $ts->setTemplate($design_object) - ->build($data); + $ts->setCompany($company) + ->setTemplate($design_object) + ->build($data); $html = $ts->getHtml(); diff --git a/app/Models/Design.php b/app/Models/Design.php index e9aa7b3ab53a..329182e7e8b9 100644 --- a/app/Models/Design.php +++ b/app/Models/Design.php @@ -79,6 +79,6 @@ class Design extends BaseModel public function service(): TemplateService { - return new TemplateService($this); + return (new TemplateService($this))->setCompany($this->company); } } diff --git a/app/Services/Template/TemplateMock.php b/app/Services/Template/TemplateMock.php index 4696e022d0fe..9ec86e030d3a 100644 --- a/app/Services/Template/TemplateMock.php +++ b/app/Services/Template/TemplateMock.php @@ -33,7 +33,7 @@ class TemplateMock public string $quote_data = '[{ "id": "KGRb41dBLZ", "user_id": "wMvbmOeYAl", "assigned_user_id": "", "amount": 9199.58, "balance": 0, "client_id": "QJ0dN6dLOv", "status_id": "1", "design_id": "Wpmbk5ezJn", "invoice_id": "", "vendor_id": "", "updated_at": 1695799454, "archived_at": 0, "created_at": 1695799453, "number": "0006", "discount": 0, "po_number": "", "date": "2023-09-27", "last_sent_date": "", "next_send_date": "", "reminder1_sent": "", "reminder2_sent": "", "reminder3_sent": "", "reminder_last_sent": "", "due_date": "", "terms": "Default company quote terms", "public_notes": "", "private_notes": "", "is_deleted": false, "uses_inclusive_taxes": false, "tax_name1": "GST", "tax_rate1": 10, "tax_name2": "VAT", "tax_rate2": 17.5, "tax_name3": "", "tax_rate3": 0, "total_taxes": 2269.58, "is_amount_discount": true, "footer": "", "partial": 0, "partial_due_date": "", "custom_value1": "1991-04-30", "custom_value2": "yes", "custom_value3": "", "custom_value4": "", "has_tasks": false, "has_expenses": false, "custom_surcharge1": 0, "custom_surcharge2": 0, "custom_surcharge3": 0, "custom_surcharge4": 0, "custom_surcharge_tax1": false, "custom_surcharge_tax2": false, "custom_surcharge_tax3": false, "custom_surcharge_tax4": false, "line_items": [{ "quantity": 1, "cost": 693, "product_key": "Sed.", "notes": "Est sequi.", "discount": 0, "is_amount_discount": true, "tax_name1": "Sales Tax", "tax_rate1": 5, "tax_name2": "", "tax_rate2": 0, "tax_name3": "", "tax_rate3": 0, "sort_id": "0", "line_total": 693, "gross_line_total": 727.65, "custom_value1": "https:\/\/picsum.photos\/200", "custom_value2": "56", "custom_value3": "Dolores porro quia.", "custom_value4": "Perferendis itaque.", "type_id": "1", "product_cost": 0, "tax_amount": 34.65, "date": "", "tax_id": "1", "task_id": "", "expense_id": "" }, { "quantity": 1, "cost": 693, "product_key": "Sed.", "notes": "Est sequi.", "discount": 0, "is_amount_discount": true, "tax_name1": "Sales Tax", "tax_rate1": 5, "tax_name2": "", "tax_rate2": 0, "tax_name3": "", "tax_rate3": 0, "sort_id": "0", "line_total": 693, "gross_line_total": 727.65, "custom_value1": "https:\/\/picsum.photos\/200", "custom_value2": "56", "custom_value3": "Dolores porro quia.", "custom_value4": "Perferendis itaque.", "type_id": "1", "product_cost": 0, "tax_amount": 34.65, "date": "", "tax_id": "1", "task_id": "", "expense_id": "" }, { "quantity": 1, "cost": 693, "product_key": "Sed.", "notes": "Est sequi.", "discount": 0, "is_amount_discount": true, "tax_name1": "", "tax_rate1": 0, "tax_name2": "", "tax_rate2": 0, "tax_name3": "", "tax_rate3": 0, "sort_id": "0", "line_total": 693, "gross_line_total": 693, "custom_value1": "https:\/\/picsum.photos\/200", "custom_value2": "56", "custom_value3": "Dolores porro quia.", "custom_value4": "Perferendis itaque.", "type_id": "1", "product_cost": 0, "tax_amount": 0, "date": "", "tax_id": "1", "task_id": "", "expense_id": "" }, { "quantity": 1, "cost": 693, "product_key": "Sed.", "notes": "Est sequi.", "discount": 0, "is_amount_discount": true, "tax_name1": "Sales Tax", "tax_rate1": 5, "tax_name2": "", "tax_rate2": 0, "tax_name3": "", "tax_rate3": 0, "sort_id": "0", "line_total": 693, "gross_line_total": 727.65, "custom_value1": "https:\/\/picsum.photos\/200", "custom_value2": "56", "custom_value3": "Dolores porro quia.", "custom_value4": "Perferendis itaque.", "type_id": "1", "product_cost": 0, "tax_amount": 34.65, "date": "", "tax_id": "1", "task_id": "", "expense_id": "" }, { "quantity": 1, "cost": 693, "product_key": "Sed.", "notes": "Est sequi.", "discount": 0, "is_amount_discount": true, "tax_name1": "Sales Tax", "tax_rate1": 5, "tax_name2": "", "tax_rate2": 0, "tax_name3": "", "tax_rate3": 0, "sort_id": "0", "line_total": 693, "gross_line_total": 727.65, "custom_value1": "https:\/\/picsum.photos\/200", "custom_value2": "56", "custom_value3": "Dolores porro quia.", "custom_value4": "Perferendis itaque.", "type_id": "1", "product_cost": 0, "tax_amount": 34.65, "date": "", "tax_id": "1", "task_id": "", "expense_id": "" }, { "quantity": 1, "cost": 693, "product_key": "Sed.", "notes": "Est sequi.", "discount": 0, "is_amount_discount": true, "tax_name1": "VAT", "tax_rate1": 17.5, "tax_name2": "", "tax_rate2": 0, "tax_name3": "", "tax_rate3": 0, "sort_id": "0", "line_total": 693, "gross_line_total": 814.28, "custom_value1": "https:\/\/picsum.photos\/200", "custom_value2": "56", "custom_value3": "Dolores porro quia.", "custom_value4": "Perferendis itaque.", "type_id": "1", "product_cost": 0, "tax_amount": 121.28, "date": "", "tax_id": "1", "task_id": "", "expense_id": "" }, { "quantity": 1, "cost": 693, "product_key": "Sed.", "notes": "Est sequi.", "discount": 0, "is_amount_discount": true, "tax_name1": "Sales Tax", "tax_rate1": 5, "tax_name2": "", "tax_rate2": 0, "tax_name3": "", "tax_rate3": 0, "sort_id": "0", "line_total": 693, "gross_line_total": 727.65, "custom_value1": "https:\/\/picsum.photos\/200", "custom_value2": "56", "custom_value3": "Dolores porro quia.", "custom_value4": "Perferendis itaque.", "type_id": "1", "product_cost": 0, "tax_amount": 34.65, "date": "", "tax_id": "1", "task_id": "", "expense_id": "" }, { "quantity": 1, "cost": 693, "product_key": "Sed.", "notes": "Est sequi.", "discount": 0, "is_amount_discount": true, "tax_name1": "Sales Tax", "tax_rate1": 5, "tax_name2": "", "tax_rate2": 0, "tax_name3": "", "tax_rate3": 0, "sort_id": "0", "line_total": 693, "gross_line_total": 727.65, "custom_value1": "https:\/\/picsum.photos\/200", "custom_value2": "56", "custom_value3": "Dolores porro quia.", "custom_value4": "Perferendis itaque.", "type_id": "1", "product_cost": 0, "tax_amount": 34.65, "date": "", "tax_id": "1", "task_id": "", "expense_id": "" }, { "quantity": 1, "cost": 693, "product_key": "Sed.", "notes": "Est sequi.", "discount": 0, "is_amount_discount": true, "tax_name1": "", "tax_rate1": 0, "tax_name2": "", "tax_rate2": 0, "tax_name3": "", "tax_rate3": 0, "sort_id": "0", "line_total": 693, "gross_line_total": 693, "custom_value1": "https:\/\/picsum.photos\/200", "custom_value2": "56", "custom_value3": "Dolores porro quia.", "custom_value4": "Perferendis itaque.", "type_id": "1", "product_cost": 0, "tax_amount": 0, "date": "", "tax_id": "1", "task_id": "", "expense_id": "" }, { "quantity": 1, "cost": 693, "product_key": "Sed.", "notes": "Est sequi.", "discount": 0, "is_amount_discount": true, "tax_name1": "Sales Tax", "tax_rate1": 5, "tax_name2": "", "tax_rate2": 0, "tax_name3": "", "tax_rate3": 0, "sort_id": "0", "line_total": 693, "gross_line_total": 727.65, "custom_value1": "https:\/\/picsum.photos\/200", "custom_value2": "56", "custom_value3": "Dolores porro quia.", "custom_value4": "Perferendis itaque.", "type_id": "1", "product_cost": 0, "tax_amount": 34.65, "date": "", "tax_id": "1", "task_id": "", "expense_id": "" }], "entity_type": "quote", "exchange_rate": 1, "paid_to_date": 0, "project_id": "", "subscription_id": "", "client": { "id": "QJ0dN6dLOv", "user_id": "wMvbmOeYAl", "assigned_user_id": "", "name": "Paucek and Sons", "website": "http:\/\/www.wiegand.com\/sit-repellendus-enim-porro-aut-voluptas-voluptates.html", "private_notes": "In nihil non voluptas voluptatibus molestiae et. Nihil labore eligendi omnis id. Et cumque reiciendis blanditiis fugiat.", "balance": 19958.86, "group_settings_id": "", "paid_to_date": 18895.75, "payment_balance": 0, "credit_balance": 548.03, "last_login": 0, "size_id": "", "public_notes": "", "client_hash": "ngQe8O6SInYp1D0SKacHE8f6nzr3Gc1UkkoyGMKI", "address1": "873", "address2": "220 Hand Glen", "phone": "", "city": "Lake Kallie", "state": "Ohio", "postal_code": "77890", "country_id": "535", "industry_id": "", "custom_value1": "1974-10-02 21:56:55", "custom_value2": "Aqua", "custom_value3": "modi", "custom_value4": "xhomenick@hotmail.com", "shipping_address1": "89064", "shipping_address2": "87854 Meda Junction", "shipping_city": "South Aryanna", "shipping_state": "Connecticut", "shipping_postal_code": "52527-1873", "shipping_country_id": "4", "settings": { "entity": "App\\Models\\Client", "industry_id": "", "size_id": "", "currency_id": "1" }, "is_deleted": false, "vat_number": "881403416", "id_number": "MU19IWUA7340242407223765691CMM", "updated_at": 1695803284, "archived_at": 0, "created_at": 1695796650, "display_name": "Paucek and Sons", "number": "0005", "has_valid_vat_number": false, "is_tax_exempt": false, "routing_id": "", "tax_info": {}, "contacts": [{ "id": "yMYerkEaOB", "first_name": "Bret", "last_name": "Beatty", "email": "user@example.com", "created_at": 1695796650, "updated_at": 1695796650, "archived_at": 0, "is_primary": true, "is_locked": false, "phone": "1-985-403-1242", "custom_value1": "", "custom_value2": "", "custom_value3": "", "custom_value4": "", "contact_key": "juMXBqyvDashDUvoYXsdcbZV2SRrFf0BOUFjsc6G", "send_email": true, "last_login": 0, "password": "**********", "link": "http:\/\/ninja.test:8000\/client\/key_login\/juMXBqyvDashDUvoYXsdcbZV2SRrFf0BOUFjsc6G" }, { "id": "gl9av2maG1", "first_name": "Sandra", "last_name": "Daniel", "email": "linnie.aufderhar@example.net", "created_at": 1695796650, "updated_at": 1695796650, "archived_at": 0, "is_primary": false, "is_locked": false, "phone": "+17319151379", "custom_value1": "", "custom_value2": "", "custom_value3": "", "custom_value4": "", "contact_key": "sm53aNvvsGUmLXFku0RLPUrP0zLj3rzBcTaGMjHd", "send_email": true, "last_login": 0, "password": "**********", "link": "http:\/\/ninja.test:8000\/client\/key_login\/sm53aNvvsGUmLXFku0RLPUrP0zLj3rzBcTaGMjHd" }, { "id": "7LDdwpRe1Y", "first_name": "Leone", "last_name": "Bode", "email": "ipollich@example.org", "created_at": 1695796650, "updated_at": 1695796650, "archived_at": 0, "is_primary": false, "is_locked": false, "phone": "(424) 789-3412", "custom_value1": "", "custom_value2": "", "custom_value3": "", "custom_value4": "", "contact_key": "gDUwiOqRehgCHWbbctW8qgKiLmma3xvsZi10a5Ma", "send_email": true, "last_login": 0, "password": "**********", "link": "http:\/\/ninja.test:8000\/client\/key_login\/gDUwiOqRehgCHWbbctW8qgKiLmma3xvsZi10a5Ma" }], "documents": { "data": [] }, "gateway_tokens": { "data": [] } } }, { "id": "MVyb8mdvAZ", "user_id": "wMvbmOeYAl", "assigned_user_id": "", "amount": 9199.58, "balance": 0, "client_id": "QJ0dN6dLOv", "status_id": "2", "design_id": "Wpmbk5ezJn", "invoice_id": "", "vendor_id": "", "updated_at": 1695799461, "archived_at": 0, "created_at": 1695799458, "number": "0007", "discount": 0, "po_number": "", "date": "2023-09-27", "last_sent_date": "", "next_send_date": "", "reminder1_sent": "", "reminder2_sent": "", "reminder3_sent": "", "reminder_last_sent": "", "due_date": "", "terms": "

Default company quote terms<\/p>", "public_notes": "", "private_notes": "", "is_deleted": false, "uses_inclusive_taxes": false, "tax_name1": "GST", "tax_rate1": 10, "tax_name2": "VAT", "tax_rate2": 17.5, "tax_name3": "", "tax_rate3": 0, "total_taxes": 2269.58, "is_amount_discount": true, "footer": "", "partial": 0, "partial_due_date": "", "custom_value1": "1991-04-30", "custom_value2": "yes", "custom_value3": "", "custom_value4": "", "has_tasks": false, "has_expenses": false, "custom_surcharge1": 0, "custom_surcharge2": 0, "custom_surcharge3": 0, "custom_surcharge4": 0, "custom_surcharge_tax1": false, "custom_surcharge_tax2": false, "custom_surcharge_tax3": false, "custom_surcharge_tax4": false, "line_items": [{ "quantity": 1, "cost": 693, "product_key": "Sed.", "notes": "Est sequi.", "discount": 0, "is_amount_discount": true, "tax_name1": "Sales Tax", "tax_rate1": 5, "tax_name2": "", "tax_rate2": 0, "tax_name3": "", "tax_rate3": 0, "sort_id": "0", "line_total": 693, "gross_line_total": 727.65, "custom_value1": "https:\/\/picsum.photos\/200", "custom_value2": "56", "custom_value3": "Dolores porro quia.", "custom_value4": "Perferendis itaque.", "type_id": "1", "product_cost": 0, "tax_amount": 34.65, "date": "", "tax_id": "1", "task_id": "", "expense_id": "", "_id": "958c28fa-c217-42b5-8434-e326ac2ab1ad" }, { "quantity": 1, "cost": 693, "product_key": "Sed.", "notes": "Est sequi.", "discount": 0, "is_amount_discount": true, "tax_name1": "Sales Tax", "tax_rate1": 5, "tax_name2": "", "tax_rate2": 0, "tax_name3": "", "tax_rate3": 0, "sort_id": "0", "line_total": 693, "gross_line_total": 727.65, "custom_value1": "https:\/\/picsum.photos\/200", "custom_value2": "56", "custom_value3": "Dolores porro quia.", "custom_value4": "Perferendis itaque.", "type_id": "1", "product_cost": 0, "tax_amount": 34.65, "date": "", "tax_id": "1", "task_id": "", "expense_id": "", "_id": "2f2da954-e237-4794-955d-208de2ac63c5" }, { "quantity": 1, "cost": 693, "product_key": "Sed.", "notes": "Est sequi.", "discount": 0, "is_amount_discount": true, "tax_name1": "", "tax_rate1": 0, "tax_name2": "", "tax_rate2": 0, "tax_name3": "", "tax_rate3": 0, "sort_id": "0", "line_total": 693, "gross_line_total": 693, "custom_value1": "https:\/\/picsum.photos\/200", "custom_value2": "56", "custom_value3": "Dolores porro quia.", "custom_value4": "Perferendis itaque.", "type_id": "1", "product_cost": 0, "tax_amount": 0, "date": "", "tax_id": "1", "task_id": "", "expense_id": "", "_id": "5807dea2-b153-4e45-84f0-006683ac0c6d" }, { "quantity": 1, "cost": 693, "product_key": "Sed.", "notes": "Est sequi.", "discount": 0, "is_amount_discount": true, "tax_name1": "Sales Tax", "tax_rate1": 5, "tax_name2": "", "tax_rate2": 0, "tax_name3": "", "tax_rate3": 0, "sort_id": "0", "line_total": 693, "gross_line_total": 727.65, "custom_value1": "https:\/\/picsum.photos\/200", "custom_value2": "56", "custom_value3": "Dolores porro quia.", "custom_value4": "Perferendis itaque.", "type_id": "1", "product_cost": 0, "tax_amount": 34.65, "date": "", "tax_id": "1", "task_id": "", "expense_id": "", "_id": "9dc2a31c-06d1-4b4a-82ef-cc65bb43d906" }, { "quantity": 1, "cost": 693, "product_key": "Sed.", "notes": "Est sequi.", "discount": 0, "is_amount_discount": true, "tax_name1": "Sales Tax", "tax_rate1": 5, "tax_name2": "", "tax_rate2": 0, "tax_name3": "", "tax_rate3": 0, "sort_id": "0", "line_total": 693, "gross_line_total": 727.65, "custom_value1": "https:\/\/picsum.photos\/200", "custom_value2": "56", "custom_value3": "Dolores porro quia.", "custom_value4": "Perferendis itaque.", "type_id": "1", "product_cost": 0, "tax_amount": 34.65, "date": "", "tax_id": "1", "task_id": "", "expense_id": "", "_id": "80981f31-87f6-42ef-a582-3387612a2377" }, { "quantity": 1, "cost": 693, "product_key": "Sed.", "notes": "Est sequi.", "discount": 0, "is_amount_discount": true, "tax_name1": "VAT", "tax_rate1": 17.5, "tax_name2": "", "tax_rate2": 0, "tax_name3": "", "tax_rate3": 0, "sort_id": "0", "line_total": 693, "gross_line_total": 814.28, "custom_value1": "https:\/\/picsum.photos\/200", "custom_value2": "56", "custom_value3": "Dolores porro quia.", "custom_value4": "Perferendis itaque.", "type_id": "1", "product_cost": 0, "tax_amount": 121.28, "date": "", "tax_id": "1", "task_id": "", "expense_id": "", "_id": "8ede63e2-d24d-4561-91b7-85ba2e2c0865" }, { "quantity": 1, "cost": 693, "product_key": "Sed.", "notes": "Est sequi.", "discount": 0, "is_amount_discount": true, "tax_name1": "Sales Tax", "tax_rate1": 5, "tax_name2": "", "tax_rate2": 0, "tax_name3": "", "tax_rate3": 0, "sort_id": "0", "line_total": 693, "gross_line_total": 727.65, "custom_value1": "https:\/\/picsum.photos\/200", "custom_value2": "56", "custom_value3": "Dolores porro quia.", "custom_value4": "Perferendis itaque.", "type_id": "1", "product_cost": 0, "tax_amount": 34.65, "date": "", "tax_id": "1", "task_id": "", "expense_id": "", "_id": "0a494280-65cf-473a-8519-d7ad1d73ab38" }, { "quantity": 1, "cost": 693, "product_key": "Sed.", "notes": "Est sequi.", "discount": 0, "is_amount_discount": true, "tax_name1": "Sales Tax", "tax_rate1": 5, "tax_name2": "", "tax_rate2": 0, "tax_name3": "", "tax_rate3": 0, "sort_id": "0", "line_total": 693, "gross_line_total": 727.65, "custom_value1": "https:\/\/picsum.photos\/200", "custom_value2": "56", "custom_value3": "Dolores porro quia.", "custom_value4": "Perferendis itaque.", "type_id": "1", "product_cost": 0, "tax_amount": 34.65, "date": "", "tax_id": "1", "task_id": "", "expense_id": "", "_id": "6c908212-9f4b-416b-a661-71aa2ce76ab9" }, { "quantity": 1, "cost": 693, "product_key": "Sed.", "notes": "Est sequi.", "discount": 0, "is_amount_discount": true, "tax_name1": "", "tax_rate1": 0, "tax_name2": "", "tax_rate2": 0, "tax_name3": "", "tax_rate3": 0, "sort_id": "0", "line_total": 693, "gross_line_total": 693, "custom_value1": "https:\/\/picsum.photos\/200", "custom_value2": "56", "custom_value3": "Dolores porro quia.", "custom_value4": "Perferendis itaque.", "type_id": "1", "product_cost": 0, "tax_amount": 0, "date": "", "tax_id": "1", "task_id": "", "expense_id": "", "_id": "77357757-607b-411a-a09f-0caa31745916" }, { "quantity": 1, "cost": 693, "product_key": "Sed.", "notes": "Est sequi.", "discount": 0, "is_amount_discount": true, "tax_name1": "Sales Tax", "tax_rate1": 5, "tax_name2": "", "tax_rate2": 0, "tax_name3": "", "tax_rate3": 0, "sort_id": "0", "line_total": 693, "gross_line_total": 727.65, "custom_value1": "https:\/\/picsum.photos\/200", "custom_value2": "56", "custom_value3": "Dolores porro quia.", "custom_value4": "Perferendis itaque.", "type_id": "1", "product_cost": 0, "tax_amount": 34.65, "date": "", "tax_id": "1", "task_id": "", "expense_id": "", "_id": "252c03d4-49a8-4c63-a86d-4c3184765388" }], "entity_type": "quote", "exchange_rate": 1, "paid_to_date": 0, "project_id": "", "subscription_id": "", "client": { "id": "QJ0dN6dLOv", "user_id": "wMvbmOeYAl", "assigned_user_id": "", "name": "Paucek and Sons", "website": "http:\/\/www.wiegand.com\/sit-repellendus-enim-porro-aut-voluptas-voluptates.html", "private_notes": "In nihil non voluptas voluptatibus molestiae et. Nihil labore eligendi omnis id. Et cumque reiciendis blanditiis fugiat.", "balance": 19958.86, "group_settings_id": "", "paid_to_date": 18895.75, "payment_balance": 0, "credit_balance": 548.03, "last_login": 0, "size_id": "", "public_notes": "", "client_hash": "ngQe8O6SInYp1D0SKacHE8f6nzr3Gc1UkkoyGMKI", "address1": "873", "address2": "220 Hand Glen", "phone": "", "city": "Lake Kallie", "state": "Ohio", "postal_code": "77890", "country_id": "535", "industry_id": "", "custom_value1": "1974-10-02 21:56:55", "custom_value2": "Aqua", "custom_value3": "modi", "custom_value4": "xhomenick@hotmail.com", "shipping_address1": "89064", "shipping_address2": "87854 Meda Junction", "shipping_city": "South Aryanna", "shipping_state": "Connecticut", "shipping_postal_code": "52527-1873", "shipping_country_id": "4", "settings": { "entity": "App\\Models\\Client", "industry_id": "", "size_id": "", "currency_id": "1" }, "is_deleted": false, "vat_number": "881403416", "id_number": "MU19IWUA7340242407223765691CMM", "updated_at": 1695803284, "archived_at": 0, "created_at": 1695796650, "display_name": "Paucek and Sons", "number": "0005", "has_valid_vat_number": false, "is_tax_exempt": false, "routing_id": "", "tax_info": {}, "contacts": [{ "id": "yMYerkEaOB", "first_name": "Bret", "last_name": "Beatty", "email": "user@example.com", "created_at": 1695796650, "updated_at": 1695796650, "archived_at": 0, "is_primary": true, "is_locked": false, "phone": "1-985-403-1242", "custom_value1": "", "custom_value2": "", "custom_value3": "", "custom_value4": "", "contact_key": "juMXBqyvDashDUvoYXsdcbZV2SRrFf0BOUFjsc6G", "send_email": true, "last_login": 0, "password": "**********", "link": "http:\/\/ninja.test:8000\/client\/key_login\/juMXBqyvDashDUvoYXsdcbZV2SRrFf0BOUFjsc6G" }, { "id": "gl9av2maG1", "first_name": "Sandra", "last_name": "Daniel", "email": "linnie.aufderhar@example.net", "created_at": 1695796650, "updated_at": 1695796650, "archived_at": 0, "is_primary": false, "is_locked": false, "phone": "+17319151379", "custom_value1": "", "custom_value2": "", "custom_value3": "", "custom_value4": "", "contact_key": "sm53aNvvsGUmLXFku0RLPUrP0zLj3rzBcTaGMjHd", "send_email": true, "last_login": 0, "password": "**********", "link": "http:\/\/ninja.test:8000\/client\/key_login\/sm53aNvvsGUmLXFku0RLPUrP0zLj3rzBcTaGMjHd" }, { "id": "7LDdwpRe1Y", "first_name": "Leone", "last_name": "Bode", "email": "ipollich@example.org", "created_at": 1695796650, "updated_at": 1695796650, "archived_at": 0, "is_primary": false, "is_locked": false, "phone": "(424) 789-3412", "custom_value1": "", "custom_value2": "", "custom_value3": "", "custom_value4": "", "contact_key": "gDUwiOqRehgCHWbbctW8qgKiLmma3xvsZi10a5Ma", "send_email": true, "last_login": 0, "password": "**********", "link": "http:\/\/ninja.test:8000\/client\/key_login\/gDUwiOqRehgCHWbbctW8qgKiLmma3xvsZi10a5Ma" }], "documents": { "data": [] }, "gateway_tokens": { "data": [] } } }, { "id": "VolejRRejN", "user_id": "wMvbmOeYAl", "assigned_user_id": "", "amount": 9199.58, "balance": 0, "client_id": "QJ0dN6dLOv", "status_id": "3", "design_id": "Wpmbk5ezJn", "invoice_id": "", "vendor_id": "", "updated_at": 1695799466, "archived_at": 0, "created_at": 1695799461, "number": "0008", "discount": 0, "po_number": "", "date": "2023-09-27", "last_sent_date": "", "next_send_date": "", "reminder1_sent": "", "reminder2_sent": "", "reminder3_sent": "", "reminder_last_sent": "", "due_date": "", "terms": "

Default company quote terms<\/p>", "public_notes": "", "private_notes": "", "is_deleted": false, "uses_inclusive_taxes": false, "tax_name1": "GST", "tax_rate1": 10, "tax_name2": "VAT", "tax_rate2": 17.5, "tax_name3": "", "tax_rate3": 0, "total_taxes": 2269.58, "is_amount_discount": true, "footer": "", "partial": 0, "partial_due_date": "", "custom_value1": "1991-04-30", "custom_value2": "yes", "custom_value3": "", "custom_value4": "", "has_tasks": false, "has_expenses": false, "custom_surcharge1": 0, "custom_surcharge2": 0, "custom_surcharge3": 0, "custom_surcharge4": 0, "custom_surcharge_tax1": false, "custom_surcharge_tax2": false, "custom_surcharge_tax3": false, "custom_surcharge_tax4": false, "line_items": [{ "quantity": 1, "cost": 693, "product_key": "Sed.", "notes": "Est sequi.", "discount": 0, "is_amount_discount": true, "tax_name1": "Sales Tax", "tax_rate1": 5, "tax_name2": "", "tax_rate2": 0, "tax_name3": "", "tax_rate3": 0, "sort_id": "0", "line_total": 693, "gross_line_total": 727.65, "custom_value1": "https:\/\/picsum.photos\/200", "custom_value2": "56", "custom_value3": "Dolores porro quia.", "custom_value4": "Perferendis itaque.", "type_id": "1", "product_cost": 0, "tax_amount": 34.65, "date": "", "tax_id": "1", "task_id": "", "expense_id": "", "_id": "847d125a-5e32-45cf-aa8e-144095fc3b91" }, { "quantity": 1, "cost": 693, "product_key": "Sed.", "notes": "Est sequi.", "discount": 0, "is_amount_discount": true, "tax_name1": "Sales Tax", "tax_rate1": 5, "tax_name2": "", "tax_rate2": 0, "tax_name3": "", "tax_rate3": 0, "sort_id": "0", "line_total": 693, "gross_line_total": 727.65, "custom_value1": "https:\/\/picsum.photos\/200", "custom_value2": "56", "custom_value3": "Dolores porro quia.", "custom_value4": "Perferendis itaque.", "type_id": "1", "product_cost": 0, "tax_amount": 34.65, "date": "", "tax_id": "1", "task_id": "", "expense_id": "", "_id": "b789272e-557e-4186-b6e7-13b027c65e20" }, { "quantity": 1, "cost": 693, "product_key": "Sed.", "notes": "Est sequi.", "discount": 0, "is_amount_discount": true, "tax_name1": "", "tax_rate1": 0, "tax_name2": "", "tax_rate2": 0, "tax_name3": "", "tax_rate3": 0, "sort_id": "0", "line_total": 693, "gross_line_total": 693, "custom_value1": "https:\/\/picsum.photos\/200", "custom_value2": "56", "custom_value3": "Dolores porro quia.", "custom_value4": "Perferendis itaque.", "type_id": "1", "product_cost": 0, "tax_amount": 0, "date": "", "tax_id": "1", "task_id": "", "expense_id": "", "_id": "1539315f-927b-4489-be5b-a4dc944d32dc" }, { "quantity": 1, "cost": 693, "product_key": "Sed.", "notes": "Est sequi.", "discount": 0, "is_amount_discount": true, "tax_name1": "Sales Tax", "tax_rate1": 5, "tax_name2": "", "tax_rate2": 0, "tax_name3": "", "tax_rate3": 0, "sort_id": "0", "line_total": 693, "gross_line_total": 727.65, "custom_value1": "https:\/\/picsum.photos\/200", "custom_value2": "56", "custom_value3": "Dolores porro quia.", "custom_value4": "Perferendis itaque.", "type_id": "1", "product_cost": 0, "tax_amount": 34.65, "date": "", "tax_id": "1", "task_id": "", "expense_id": "", "_id": "5c26754d-7252-4d91-9883-319560a47f4f" }, { "quantity": 1, "cost": 693, "product_key": "Sed.", "notes": "Est sequi.", "discount": 0, "is_amount_discount": true, "tax_name1": "Sales Tax", "tax_rate1": 5, "tax_name2": "", "tax_rate2": 0, "tax_name3": "", "tax_rate3": 0, "sort_id": "0", "line_total": 693, "gross_line_total": 727.65, "custom_value1": "https:\/\/picsum.photos\/200", "custom_value2": "56", "custom_value3": "Dolores porro quia.", "custom_value4": "Perferendis itaque.", "type_id": "1", "product_cost": 0, "tax_amount": 34.65, "date": "", "tax_id": "1", "task_id": "", "expense_id": "", "_id": "9949909c-9ca0-4646-b2b3-263c12981481" }, { "quantity": 1, "cost": 693, "product_key": "Sed.", "notes": "Est sequi.", "discount": 0, "is_amount_discount": true, "tax_name1": "VAT", "tax_rate1": 17.5, "tax_name2": "", "tax_rate2": 0, "tax_name3": "", "tax_rate3": 0, "sort_id": "0", "line_total": 693, "gross_line_total": 814.28, "custom_value1": "https:\/\/picsum.photos\/200", "custom_value2": "56", "custom_value3": "Dolores porro quia.", "custom_value4": "Perferendis itaque.", "type_id": "1", "product_cost": 0, "tax_amount": 121.28, "date": "", "tax_id": "1", "task_id": "", "expense_id": "", "_id": "a0aa3e83-e762-473d-8196-10d62350a5e8" }, { "quantity": 1, "cost": 693, "product_key": "Sed.", "notes": "Est sequi.", "discount": 0, "is_amount_discount": true, "tax_name1": "Sales Tax", "tax_rate1": 5, "tax_name2": "", "tax_rate2": 0, "tax_name3": "", "tax_rate3": 0, "sort_id": "0", "line_total": 693, "gross_line_total": 727.65, "custom_value1": "https:\/\/picsum.photos\/200", "custom_value2": "56", "custom_value3": "Dolores porro quia.", "custom_value4": "Perferendis itaque.", "type_id": "1", "product_cost": 0, "tax_amount": 34.65, "date": "", "tax_id": "1", "task_id": "", "expense_id": "", "_id": "9f831c14-deaa-4fe7-a9d2-6b4bd40a8cc0" }, { "quantity": 1, "cost": 693, "product_key": "Sed.", "notes": "Est sequi.", "discount": 0, "is_amount_discount": true, "tax_name1": "Sales Tax", "tax_rate1": 5, "tax_name2": "", "tax_rate2": 0, "tax_name3": "", "tax_rate3": 0, "sort_id": "0", "line_total": 693, "gross_line_total": 727.65, "custom_value1": "https:\/\/picsum.photos\/200", "custom_value2": "56", "custom_value3": "Dolores porro quia.", "custom_value4": "Perferendis itaque.", "type_id": "1", "product_cost": 0, "tax_amount": 34.65, "date": "", "tax_id": "1", "task_id": "", "expense_id": "", "_id": "dd58c4a5-88da-4c04-8841-908304f42a0f" }, { "quantity": 1, "cost": 693, "product_key": "Sed.", "notes": "Est sequi.", "discount": 0, "is_amount_discount": true, "tax_name1": "", "tax_rate1": 0, "tax_name2": "", "tax_rate2": 0, "tax_name3": "", "tax_rate3": 0, "sort_id": "0", "line_total": 693, "gross_line_total": 693, "custom_value1": "https:\/\/picsum.photos\/200", "custom_value2": "56", "custom_value3": "Dolores porro quia.", "custom_value4": "Perferendis itaque.", "type_id": "1", "product_cost": 0, "tax_amount": 0, "date": "", "tax_id": "1", "task_id": "", "expense_id": "", "_id": "2d927272-f8f0-41db-9bf3-20c9a5f4575f" }, { "quantity": 1, "cost": 693, "product_key": "Sed.", "notes": "Est sequi.", "discount": 0, "is_amount_discount": true, "tax_name1": "Sales Tax", "tax_rate1": 5, "tax_name2": "", "tax_rate2": 0, "tax_name3": "", "tax_rate3": 0, "sort_id": "0", "line_total": 693, "gross_line_total": 727.65, "custom_value1": "https:\/\/picsum.photos\/200", "custom_value2": "56", "custom_value3": "Dolores porro quia.", "custom_value4": "Perferendis itaque.", "type_id": "1", "product_cost": 0, "tax_amount": 34.65, "date": "", "tax_id": "1", "task_id": "", "expense_id": "", "_id": "9e7f1874-8783-4dc8-aab1-b0aa60923380" }], "entity_type": "quote", "exchange_rate": 1, "paid_to_date": 0, "project_id": "", "subscription_id": "", "client": { "id": "QJ0dN6dLOv", "user_id": "wMvbmOeYAl", "assigned_user_id": "", "name": "Paucek and Sons", "website": "http:\/\/www.wiegand.com\/sit-repellendus-enim-porro-aut-voluptas-voluptates.html", "private_notes": "In nihil non voluptas voluptatibus molestiae et. Nihil labore eligendi omnis id. Et cumque reiciendis blanditiis fugiat.", "balance": 19958.86, "group_settings_id": "", "paid_to_date": 18895.75, "payment_balance": 0, "credit_balance": 548.03, "last_login": 0, "size_id": "", "public_notes": "", "client_hash": "ngQe8O6SInYp1D0SKacHE8f6nzr3Gc1UkkoyGMKI", "address1": "873", "address2": "220 Hand Glen", "phone": "", "city": "Lake Kallie", "state": "Ohio", "postal_code": "77890", "country_id": "535", "industry_id": "", "custom_value1": "1974-10-02 21:56:55", "custom_value2": "Aqua", "custom_value3": "modi", "custom_value4": "xhomenick@hotmail.com", "shipping_address1": "89064", "shipping_address2": "87854 Meda Junction", "shipping_city": "South Aryanna", "shipping_state": "Connecticut", "shipping_postal_code": "52527-1873", "shipping_country_id": "4", "settings": { "entity": "App\\Models\\Client", "industry_id": "", "size_id": "", "currency_id": "1" }, "is_deleted": false, "vat_number": "881403416", "id_number": "MU19IWUA7340242407223765691CMM", "updated_at": 1695803284, "archived_at": 0, "created_at": 1695796650, "display_name": "Paucek and Sons", "number": "0005", "has_valid_vat_number": false, "is_tax_exempt": false, "routing_id": "", "tax_info": {}, "contacts": [{ "id": "yMYerkEaOB", "first_name": "Bret", "last_name": "Beatty", "email": "user@example.com", "created_at": 1695796650, "updated_at": 1695796650, "archived_at": 0, "is_primary": true, "is_locked": false, "phone": "1-985-403-1242", "custom_value1": "", "custom_value2": "", "custom_value3": "", "custom_value4": "", "contact_key": "juMXBqyvDashDUvoYXsdcbZV2SRrFf0BOUFjsc6G", "send_email": true, "last_login": 0, "password": "**********", "link": "http:\/\/ninja.test:8000\/client\/key_login\/juMXBqyvDashDUvoYXsdcbZV2SRrFf0BOUFjsc6G" }, { "id": "gl9av2maG1", "first_name": "Sandra", "last_name": "Daniel", "email": "linnie.aufderhar@example.net", "created_at": 1695796650, "updated_at": 1695796650, "archived_at": 0, "is_primary": false, "is_locked": false, "phone": "+17319151379", "custom_value1": "", "custom_value2": "", "custom_value3": "", "custom_value4": "", "contact_key": "sm53aNvvsGUmLXFku0RLPUrP0zLj3rzBcTaGMjHd", "send_email": true, "last_login": 0, "password": "**********", "link": "http:\/\/ninja.test:8000\/client\/key_login\/sm53aNvvsGUmLXFku0RLPUrP0zLj3rzBcTaGMjHd" }, { "id": "7LDdwpRe1Y", "first_name": "Leone", "last_name": "Bode", "email": "ipollich@example.org", "created_at": 1695796650, "updated_at": 1695796650, "archived_at": 0, "is_primary": false, "is_locked": false, "phone": "(424) 789-3412", "custom_value1": "", "custom_value2": "", "custom_value3": "", "custom_value4": "", "contact_key": "gDUwiOqRehgCHWbbctW8qgKiLmma3xvsZi10a5Ma", "send_email": true, "last_login": 0, "password": "**********", "link": "http:\/\/ninja.test:8000\/client\/key_login\/gDUwiOqRehgCHWbbctW8qgKiLmma3xvsZi10a5Ma" }], "documents": { "data": [] }, "gateway_tokens": { "data": [] } } }]'; - public function __construct(private Company $company) + public function __construct(public Company $company) { } @@ -80,12 +80,5 @@ class TemplateMock return [$type => $mock->getStubVariables()]; } - private function createTemplate(string $type) - { - $type = $type . "_data"; - - nlog($type); - return ; - } } \ No newline at end of file diff --git a/app/Services/Template/TemplateService.php b/app/Services/Template/TemplateService.php index 4c6d9799e0b5..2f76aea671d5 100644 --- a/app/Services/Template/TemplateService.php +++ b/app/Services/Template/TemplateService.php @@ -15,6 +15,7 @@ use App\Models\Task; use App\Models\Quote; use App\Models\Credit; use App\Models\Design; +use App\Models\Company; use App\Models\Payment; use App\Models\Project; use App\Utils\HtmlEngine; @@ -45,6 +46,8 @@ class TemplateService private array $data = []; + public ?Company $company; + public function __construct(public ?Design $template = null) { $this->template = $template; @@ -89,6 +92,11 @@ class TemplateService public function mock(): self { + $tm = new TemplateMock($this->company); + $this->data = $tm->engines; + + $this->parseNinjaBlocks() + ->parseVariables($tm->variables); return $this; } @@ -103,8 +111,6 @@ class TemplateService $this->data = $this->preProcessDataBlocks($data); - nlog(json_encode($this->data)); - return $this; } @@ -424,4 +430,16 @@ class TemplateService return $i[PurchaseOrder::class]; } + + public function setCompany(Company $company): self + { + $this->company = $company; + + return $this; + } + + public function getCompany(): Company + { + return $this->company; + } } \ No newline at end of file