mirror of
				https://github.com/invoiceninja/invoiceninja.git
				synced 2025-11-04 03:29:03 -05:00 
			
		
		
		
	Merge pull request #4569 from turbo124/v5-stable
Fixes for null values in country table. Version Bump
This commit is contained in:
		
						commit
						8e8f84d069
					
				@ -1 +1 @@
 | 
				
			|||||||
5.0.39
 | 
					5.0.40
 | 
				
			||||||
@ -628,7 +628,7 @@ class CompanySettings extends BaseSettings
 | 
				
			|||||||
                '$credit.total',
 | 
					                '$credit.total',
 | 
				
			||||||
            ],
 | 
					            ],
 | 
				
			||||||
            'product_columns' => [
 | 
					            'product_columns' => [
 | 
				
			||||||
                '$product.product_key',
 | 
					                '$product.item',
 | 
				
			||||||
                '$product.description',
 | 
					                '$product.description',
 | 
				
			||||||
                '$product.unit_cost',
 | 
					                '$product.unit_cost',
 | 
				
			||||||
                '$product.quantity',
 | 
					                '$product.quantity',
 | 
				
			||||||
 | 
				
			|||||||
@ -32,7 +32,6 @@ use Illuminate\Support\Facades\Artisan;
 | 
				
			|||||||
use Illuminate\Support\Facades\Request;
 | 
					use Illuminate\Support\Facades\Request;
 | 
				
			||||||
use Illuminate\Support\Facades\Schema;
 | 
					use Illuminate\Support\Facades\Schema;
 | 
				
			||||||
use Illuminate\Support\Facades\Storage;
 | 
					use Illuminate\Support\Facades\Storage;
 | 
				
			||||||
use Spatie\Browsershot\Browsershot;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * Class SetupController.
 | 
					 * Class SetupController.
 | 
				
			||||||
 | 
				
			|||||||
@ -110,10 +110,9 @@ class CSVImport implements ShouldQueue
 | 
				
			|||||||
            'settings' => $this->company->settings
 | 
					            'settings' => $this->company->settings
 | 
				
			||||||
        ];
 | 
					        ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
info(print_r($data,1));
 | 
					        info(print_r($data, 1));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        MailRouter::dispatch(new ImportCompleted($data), $this->company, auth()->user());
 | 
					        MailRouter::dispatch(new ImportCompleted($data), $this->company, auth()->user());
 | 
				
			||||||
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public function failed($exception)
 | 
					    public function failed($exception)
 | 
				
			||||||
@ -184,7 +183,6 @@ info(print_r($data,1));
 | 
				
			|||||||
        if ($validator->fails()) {
 | 
					        if ($validator->fails()) {
 | 
				
			||||||
            $this->error_array['invoices'] = ['invoice' => $invoice, 'error' => json_encode($validator->errors())];
 | 
					            $this->error_array['invoices'] = ['invoice' => $invoice, 'error' => json_encode($validator->errors())];
 | 
				
			||||||
        } else {
 | 
					        } else {
 | 
				
			||||||
 | 
					 | 
				
			||||||
            if ($validator->fails()) {
 | 
					            if ($validator->fails()) {
 | 
				
			||||||
                $this->error_array[] = ['invoice' => $invoice, 'error' => json_encode($validator->errors())];
 | 
					                $this->error_array[] = ['invoice' => $invoice, 'error' => json_encode($validator->errors())];
 | 
				
			||||||
            } else {
 | 
					            } else {
 | 
				
			||||||
@ -195,6 +193,7 @@ info(print_r($data,1));
 | 
				
			|||||||
                $this->performInvoiceActions($invoice, $record, $invoice_repository);
 | 
					                $this->performInvoiceActions($invoice, $record, $invoice_repository);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private function performInvoiceActions($invoice, $record, $invoice_repository)
 | 
					    private function performInvoiceActions($invoice, $record, $invoice_repository)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
 | 
				
			|||||||
@ -96,7 +96,6 @@ class BaseMailerJob implements ShouldQueue
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    public function failed($exception = null)
 | 
					    public function failed($exception = null)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
 | 
					 | 
				
			||||||
        info('the job failed');
 | 
					        info('the job failed');
 | 
				
			||||||
        info($exception->getMessage());
 | 
					        info($exception->getMessage());
 | 
				
			||||||
        
 | 
					        
 | 
				
			||||||
 | 
				
			|||||||
@ -12,7 +12,6 @@
 | 
				
			|||||||
namespace App\Jobs\Mail;
 | 
					namespace App\Jobs\Mail;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
use App\Libraries\MultiDB;
 | 
					use App\Libraries\MultiDB;
 | 
				
			||||||
use App\Models\Client;
 | 
					 | 
				
			||||||
use App\Models\ClientContact;
 | 
					use App\Models\ClientContact;
 | 
				
			||||||
use App\Models\Company;
 | 
					use App\Models\Company;
 | 
				
			||||||
use App\Models\User;
 | 
					use App\Models\User;
 | 
				
			||||||
@ -76,8 +75,9 @@ class MailRouter extends BaseMailerJob implements ShouldQueue
 | 
				
			|||||||
        } catch (\Exception $e) {
 | 
					        } catch (\Exception $e) {
 | 
				
			||||||
            $this->failed($e);
 | 
					            $this->failed($e);
 | 
				
			||||||
            
 | 
					            
 | 
				
			||||||
            if($this->to_user instanceof ClientContact)
 | 
					            if ($this->to_user instanceof ClientContact) {
 | 
				
			||||||
                $this->logMailError($e->getMessage(), $this->to_user->client);
 | 
					                $this->logMailError($e->getMessage(), $this->to_user->client);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -298,11 +298,14 @@ class Design extends BaseDesign
 | 
				
			|||||||
    public function buildTableHeader(string $type): array
 | 
					    public function buildTableHeader(string $type): array
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        $this->processTaxColumns($type);
 | 
					        $this->processTaxColumns($type);
 | 
				
			||||||
 | 
					        $this->processCustomColumns($type);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        $elements = [];
 | 
					        $elements = [];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // Some of column can be aliased. This is simple workaround for these.
 | 
					        // Some of column can be aliased. This is simple workaround for these.
 | 
				
			||||||
        $aliases = [];
 | 
					        $aliases = [
 | 
				
			||||||
 | 
					            '$product.product_key' => '$product.item',
 | 
				
			||||||
 | 
					        ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        foreach ($this->context['pdf_variables']["{$type}_columns"] as $column) {
 | 
					        foreach ($this->context['pdf_variables']["{$type}_columns"] as $column) {
 | 
				
			||||||
            if (array_key_exists($column, $aliases)) {
 | 
					            if (array_key_exists($column, $aliases)) {
 | 
				
			||||||
 | 
				
			|||||||
@ -266,4 +266,23 @@ trait DesignHelpers
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        return $logs;
 | 
					        return $logs;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public function processCustomColumns(string $type): void
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        $custom_columns = [];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        foreach ((array) $this->client->company->custom_fields as $field => $value) {
 | 
				
			||||||
 | 
					            info($field);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            if (\Illuminate\Support\Str::startsWith($field, $type)) {
 | 
				
			||||||
 | 
					                $custom_columns[] = '$' . $type . '.' . $field;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        $key = array_search(sprintf('%s%s.description', '$', $type), $this->context['pdf_variables']["{$type}_columns"], true);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if ($key) {
 | 
				
			||||||
 | 
					            array_splice($this->context['pdf_variables']["{$type}_columns"], $key + 1, 0, $custom_columns);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -112,6 +112,10 @@ trait PdfMakerUtilities
 | 
				
			|||||||
        foreach ($children as $child) {
 | 
					        foreach ($children as $child) {
 | 
				
			||||||
            $contains_html = false;
 | 
					            $contains_html = false;
 | 
				
			||||||
            
 | 
					            
 | 
				
			||||||
 | 
					            if (isset($child['content'])) {
 | 
				
			||||||
 | 
					                $child['content'] = nl2br($child['content']);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            // "/\/[a-z]*>/i" -> checks for HTML-like tags:
 | 
					            // "/\/[a-z]*>/i" -> checks for HTML-like tags:
 | 
				
			||||||
            // <my-tag></my-tag> => true
 | 
					            // <my-tag></my-tag> => true
 | 
				
			||||||
            // <my-tag /> => true
 | 
					            // <my-tag /> => true
 | 
				
			||||||
 | 
				
			|||||||
@ -13,10 +13,13 @@
 | 
				
			|||||||
namespace App\Utils;
 | 
					namespace App\Utils;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
use App\Models\Client;
 | 
					use App\Models\Client;
 | 
				
			||||||
 | 
					use App\Utils\Traits\MakesDates;
 | 
				
			||||||
use stdClass;
 | 
					use stdClass;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class Helpers
 | 
					class Helpers
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
					    use MakesDates;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public static function sharedEmailVariables(?Client $client, array $settings = null): array
 | 
					    public static function sharedEmailVariables(?Client $client, array $settings = null): array
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        if (!$client) {
 | 
					        if (!$client) {
 | 
				
			||||||
@ -35,4 +38,42 @@ class Helpers
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        return $elements;
 | 
					        return $elements;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * A centralised way to format the custom fields content.
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * @param mixed $custom_fields
 | 
				
			||||||
 | 
					     * @param mixed $field
 | 
				
			||||||
 | 
					     * @param mixed $value
 | 
				
			||||||
 | 
					     * @param null|\App\Models\Client $client
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * @return null|string
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public function formatCustomFieldValue($custom_fields, $field, $value, ?Client $client): ?string
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        $custom_field = '';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if ($custom_fields && property_exists($custom_fields, $field)) {
 | 
				
			||||||
 | 
					            $custom_field = $custom_fields->{$field};
 | 
				
			||||||
 | 
					            $custom_field_parts = explode('|', $custom_field);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            if (count($custom_field_parts) >= 2) {
 | 
				
			||||||
 | 
					                $custom_field = $custom_field_parts[1];
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        switch ($custom_field) {
 | 
				
			||||||
 | 
					            case 'date':
 | 
				
			||||||
 | 
					                return $this->formatDate($value, $client->date_format());
 | 
				
			||||||
 | 
					                break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            case 'switch':
 | 
				
			||||||
 | 
					                return trim($value) == 'yes' ? ctrans('texts.yes') : ctrans('texts.no');
 | 
				
			||||||
 | 
					                break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            default:
 | 
				
			||||||
 | 
					                return is_null($value) ? '' : $value;
 | 
				
			||||||
 | 
					                break;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -294,6 +294,7 @@ class HtmlEngine
 | 
				
			|||||||
        $data['$custom_surcharge3'] = ['value' => $this->entity->custom_surcharge3 ?: ' ', 'label' => $this->makeCustomField('custom_surcharge3')];
 | 
					        $data['$custom_surcharge3'] = ['value' => $this->entity->custom_surcharge3 ?: ' ', 'label' => $this->makeCustomField('custom_surcharge3')];
 | 
				
			||||||
        $data['$custom_surcharge4'] = ['value' => $this->entity->custom_surcharge4 ?: ' ', 'label' => $this->makeCustomField('custom_surcharge4')];
 | 
					        $data['$custom_surcharge4'] = ['value' => $this->entity->custom_surcharge4 ?: ' ', 'label' => $this->makeCustomField('custom_surcharge4')];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        $data['$product.item'] = ['value' => '', 'label' => ctrans('texts.item')];
 | 
				
			||||||
        $data['$product.date'] = ['value' => '', 'label' => ctrans('texts.date')];
 | 
					        $data['$product.date'] = ['value' => '', 'label' => ctrans('texts.date')];
 | 
				
			||||||
        $data['$product.discount'] = ['value' => '', 'label' => ctrans('texts.discount')];
 | 
					        $data['$product.discount'] = ['value' => '', 'label' => ctrans('texts.discount')];
 | 
				
			||||||
        $data['$product.product_key'] = ['value' => '', 'label' => ctrans('texts.product_key')];
 | 
					        $data['$product.product_key'] = ['value' => '', 'label' => ctrans('texts.product_key')];
 | 
				
			||||||
@ -307,6 +308,10 @@ class HtmlEngine
 | 
				
			|||||||
        $data['$product.line_total'] = ['value' => '', 'label' => ctrans('texts.line_total')];
 | 
					        $data['$product.line_total'] = ['value' => '', 'label' => ctrans('texts.line_total')];
 | 
				
			||||||
        $data['$product.description'] = ['value' => '', 'label' => ctrans('texts.description')];
 | 
					        $data['$product.description'] = ['value' => '', 'label' => ctrans('texts.description')];
 | 
				
			||||||
        $data['$product.unit_cost'] = ['value' => '', 'label' => ctrans('texts.unit_cost')];
 | 
					        $data['$product.unit_cost'] = ['value' => '', 'label' => ctrans('texts.unit_cost')];
 | 
				
			||||||
 | 
					        $data['$product.product1'] = ['value' => '', 'label' => $this->makeCustomField('product1')];
 | 
				
			||||||
 | 
					        $data['$product.product2'] = ['value' => '', 'label' => $this->makeCustomField('product2')];
 | 
				
			||||||
 | 
					        $data['$product.product3'] = ['value' => '', 'label' => $this->makeCustomField('product3')];
 | 
				
			||||||
 | 
					        $data['$product.product4'] = ['value' => '', 'label' => $this->makeCustomField('product4')];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        $data['$task.date'] = ['value' => '', 'label' => ctrans('texts.date')];
 | 
					        $data['$task.date'] = ['value' => '', 'label' => ctrans('texts.date')];
 | 
				
			||||||
        $data['$task.discount'] = ['value' => '', 'label' => ctrans('texts.discount')];
 | 
					        $data['$task.discount'] = ['value' => '', 'label' => ctrans('texts.discount')];
 | 
				
			||||||
 | 
				
			|||||||
@ -74,8 +74,6 @@ class SystemHealth
 | 
				
			|||||||
            'env_writable' => self::checkEnvWritable(),
 | 
					            'env_writable' => self::checkEnvWritable(),
 | 
				
			||||||
            //'mail' => self::testMailServer(),
 | 
					            //'mail' => self::testMailServer(),
 | 
				
			||||||
            'simple_db_check' => (bool) self::simpleDbCheck(),
 | 
					            'simple_db_check' => (bool) self::simpleDbCheck(),
 | 
				
			||||||
            // 'npm_status' => self::checkNpm(),
 | 
					 | 
				
			||||||
            // 'node_status' => self::checkNode(),
 | 
					 | 
				
			||||||
            'cache_enabled' => self::checkConfigCache(),
 | 
					            'cache_enabled' => self::checkConfigCache(),
 | 
				
			||||||
            'phantom_enabled' => (bool) config('ninja.phantomjs_pdf_generation'),
 | 
					            'phantom_enabled' => (bool) config('ninja.phantomjs_pdf_generation'),
 | 
				
			||||||
            'exec' => (bool) self::checkExecWorks(),
 | 
					            'exec' => (bool) self::checkExecWorks(),
 | 
				
			||||||
@ -110,36 +108,6 @@ class SystemHealth
 | 
				
			|||||||
        return true;
 | 
					        return true;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public static function checkNode()
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        try {
 | 
					 | 
				
			||||||
            exec('node -v', $foo, $exitCode);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            if ($exitCode === 0) {
 | 
					 | 
				
			||||||
                return empty($foo[0]) ? 'Found node, but no version information' : $foo[0];
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            return 'Node not found.';
 | 
					 | 
				
			||||||
        } catch (Exception $e) {
 | 
					 | 
				
			||||||
            return 'Node not found.';
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public static function checkNpm()
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        try {
 | 
					 | 
				
			||||||
            exec('npm -v', $foo, $exitCode);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            if ($exitCode === 0) {
 | 
					 | 
				
			||||||
                return empty($foo[0]) ? 'Found npm, but no version information' : $foo[0];
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            return 'NPM not found';
 | 
					 | 
				
			||||||
        } catch (Exception $e) {
 | 
					 | 
				
			||||||
            return 'NPM not found';
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    private static function simpleDbCheck() :bool
 | 
					    private static function simpleDbCheck() :bool
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        $result = true;
 | 
					        $result = true;
 | 
				
			||||||
 | 
				
			|||||||
@ -15,6 +15,7 @@ use App\Models\Country;
 | 
				
			|||||||
use App\Models\Credit;
 | 
					use App\Models\Credit;
 | 
				
			||||||
use App\Models\Invoice;
 | 
					use App\Models\Invoice;
 | 
				
			||||||
use App\Models\Quote;
 | 
					use App\Models\Quote;
 | 
				
			||||||
 | 
					use App\Utils\Helpers;
 | 
				
			||||||
use App\Utils\Number;
 | 
					use App\Utils\Number;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
@ -591,9 +592,12 @@ trait MakesInvoiceValues
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * Formats the line items for display.
 | 
					     * Formats the line items for display.
 | 
				
			||||||
     * @param array $items The array of invoice items
 | 
					     *
 | 
				
			||||||
 | 
					     * @param mixed $items
 | 
				
			||||||
     * @param string $table_type
 | 
					     * @param string $table_type
 | 
				
			||||||
     * @return array        The formatted array of invoice items
 | 
					     * @param mixed|null $custom_fields
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * @return array
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    public function transformLineItems($items, $table_type = '$product') :array
 | 
					    public function transformLineItems($items, $table_type = '$product') :array
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
@ -616,14 +620,22 @@ trait MakesInvoiceValues
 | 
				
			|||||||
                }
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            $data[$key][$table_type.'.product_key'] = $item->product_key;
 | 
					            $helpers = new Helpers();
 | 
				
			||||||
 | 
					            $_table_type = ltrim($table_type, '$'); // From $product -> product.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            $data[$key][$table_type.'.product_key'] = is_null(optional($item)->product_key) ? $item->item : $item->product_key;
 | 
				
			||||||
 | 
					            $data[$key][$table_type.'.item'] = is_null(optional($item)->item) ? $item->product_key : $item->item;
 | 
				
			||||||
            $data[$key][$table_type.'.service'] = is_null(optional($item)->service) ? $item->product_key : $item->service;
 | 
					            $data[$key][$table_type.'.service'] = is_null(optional($item)->service) ? $item->product_key : $item->service;
 | 
				
			||||||
            $data[$key][$table_type.'.notes'] = $item->notes;
 | 
					            $data[$key][$table_type.'.notes'] = $item->notes;
 | 
				
			||||||
            $data[$key][$table_type.'.description'] = $item->notes;
 | 
					            $data[$key][$table_type.'.description'] = $item->notes;
 | 
				
			||||||
            $data[$key][$table_type.'.custom_value1'] = $item->custom_value1;
 | 
					
 | 
				
			||||||
            $data[$key][$table_type.'.custom_value2'] = $item->custom_value2;
 | 
					
 | 
				
			||||||
            $data[$key][$table_type.'.custom_value3'] = $item->custom_value3;
 | 
					            $data[$key][$table_type . ".{$_table_type}1"] = $helpers->formatCustomFieldValue($this->client->company->custom_fields, "{$_table_type}1", $item->custom_value1, $this->client);
 | 
				
			||||||
            $data[$key][$table_type.'.custom_value4'] = $item->custom_value4;
 | 
					            $data[$key][$table_type . ".{$_table_type}2"] = $helpers->formatCustomFieldValue($this->client->company->custom_fields, "{$_table_type}2", $item->custom_value2, $this->client);
 | 
				
			||||||
 | 
					            $data[$key][$table_type . ".{$_table_type}3"] = $helpers->formatCustomFieldValue($this->client->company->custom_fields, "{$_table_type}3", $item->custom_value3, $this->client);
 | 
				
			||||||
 | 
					            $data[$key][$table_type . ".{$_table_type}4"] = $helpers->formatCustomFieldValue($this->client->company->custom_fields, "{$_table_type}4", $item->custom_value4, $this->client);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            $data[$key][$table_type.'.quantity'] = $item->quantity;
 | 
					            $data[$key][$table_type.'.quantity'] = $item->quantity;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            $data[$key][$table_type.'.unit_cost'] = Number::formatMoney($item->cost, $this->client);
 | 
					            $data[$key][$table_type.'.unit_cost'] = Number::formatMoney($item->cost, $this->client);
 | 
				
			||||||
 | 
				
			|||||||
@ -62,7 +62,6 @@
 | 
				
			|||||||
        "omnipay/paypal": "^3.0",
 | 
					        "omnipay/paypal": "^3.0",
 | 
				
			||||||
        "predis/predis": "^1.1",
 | 
					        "predis/predis": "^1.1",
 | 
				
			||||||
        "sentry/sentry-laravel": "^2",
 | 
					        "sentry/sentry-laravel": "^2",
 | 
				
			||||||
        "spatie/browsershot": "3.40.2",
 | 
					 | 
				
			||||||
        "stripe/stripe-php": "^7.50",
 | 
					        "stripe/stripe-php": "^7.50",
 | 
				
			||||||
        "turbo124/beacon": "^1",
 | 
					        "turbo124/beacon": "^1",
 | 
				
			||||||
        "turbo124/laravel-gmail": "^5.0",
 | 
					        "turbo124/laravel-gmail": "^5.0",
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										305
									
								
								composer.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										305
									
								
								composer.lock
									
									
									
										generated
									
									
									
								
							@ -4,7 +4,7 @@
 | 
				
			|||||||
        "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
 | 
					        "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
 | 
				
			||||||
        "This file is @generated automatically"
 | 
					        "This file is @generated automatically"
 | 
				
			||||||
    ],
 | 
					    ],
 | 
				
			||||||
    "content-hash": "669af9e67b79e872aa671420cfb14ddd",
 | 
					    "content-hash": "304401db428800e3f176f946f22ee2f6",
 | 
				
			||||||
    "packages": [
 | 
					    "packages": [
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            "name": "asgrim/ofxparser",
 | 
					            "name": "asgrim/ofxparser",
 | 
				
			||||||
@ -3594,71 +3594,6 @@
 | 
				
			|||||||
            },
 | 
					            },
 | 
				
			||||||
            "time": "2017-06-12T11:04:56+00:00"
 | 
					            "time": "2017-06-12T11:04:56+00:00"
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            "name": "league/glide",
 | 
					 | 
				
			||||||
            "version": "1.7.0",
 | 
					 | 
				
			||||||
            "source": {
 | 
					 | 
				
			||||||
                "type": "git",
 | 
					 | 
				
			||||||
                "url": "https://github.com/thephpleague/glide.git",
 | 
					 | 
				
			||||||
                "reference": "ae5e26700573cb678919d28e425a8b87bc71c546"
 | 
					 | 
				
			||||||
            },
 | 
					 | 
				
			||||||
            "dist": {
 | 
					 | 
				
			||||||
                "type": "zip",
 | 
					 | 
				
			||||||
                "url": "https://api.github.com/repos/thephpleague/glide/zipball/ae5e26700573cb678919d28e425a8b87bc71c546",
 | 
					 | 
				
			||||||
                "reference": "ae5e26700573cb678919d28e425a8b87bc71c546",
 | 
					 | 
				
			||||||
                "shasum": ""
 | 
					 | 
				
			||||||
            },
 | 
					 | 
				
			||||||
            "require": {
 | 
					 | 
				
			||||||
                "intervention/image": "^2.4",
 | 
					 | 
				
			||||||
                "league/flysystem": "^1.0",
 | 
					 | 
				
			||||||
                "php": "^7.2|^8.0",
 | 
					 | 
				
			||||||
                "psr/http-message": "^1.0"
 | 
					 | 
				
			||||||
            },
 | 
					 | 
				
			||||||
            "require-dev": {
 | 
					 | 
				
			||||||
                "mockery/mockery": "^1.3.3",
 | 
					 | 
				
			||||||
                "phpunit/php-token-stream": "^3.1|^4.0",
 | 
					 | 
				
			||||||
                "phpunit/phpunit": "^8.5|^9.0"
 | 
					 | 
				
			||||||
            },
 | 
					 | 
				
			||||||
            "type": "library",
 | 
					 | 
				
			||||||
            "extra": {
 | 
					 | 
				
			||||||
                "branch-alias": {
 | 
					 | 
				
			||||||
                    "dev-master": "1.1-dev"
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
            },
 | 
					 | 
				
			||||||
            "autoload": {
 | 
					 | 
				
			||||||
                "psr-4": {
 | 
					 | 
				
			||||||
                    "League\\Glide\\": "src/"
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
            },
 | 
					 | 
				
			||||||
            "notification-url": "https://packagist.org/downloads/",
 | 
					 | 
				
			||||||
            "license": [
 | 
					 | 
				
			||||||
                "MIT"
 | 
					 | 
				
			||||||
            ],
 | 
					 | 
				
			||||||
            "authors": [
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    "name": "Jonathan Reinink",
 | 
					 | 
				
			||||||
                    "email": "jonathan@reinink.ca",
 | 
					 | 
				
			||||||
                    "homepage": "http://reinink.ca"
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
            ],
 | 
					 | 
				
			||||||
            "description": "Wonderfully easy on-demand image manipulation library with an HTTP based API.",
 | 
					 | 
				
			||||||
            "homepage": "http://glide.thephpleague.com",
 | 
					 | 
				
			||||||
            "keywords": [
 | 
					 | 
				
			||||||
                "ImageMagick",
 | 
					 | 
				
			||||||
                "editing",
 | 
					 | 
				
			||||||
                "gd",
 | 
					 | 
				
			||||||
                "image",
 | 
					 | 
				
			||||||
                "imagick",
 | 
					 | 
				
			||||||
                "league",
 | 
					 | 
				
			||||||
                "manipulation",
 | 
					 | 
				
			||||||
                "processing"
 | 
					 | 
				
			||||||
            ],
 | 
					 | 
				
			||||||
            "support": {
 | 
					 | 
				
			||||||
                "issues": "https://github.com/thephpleague/glide/issues",
 | 
					 | 
				
			||||||
                "source": "https://github.com/thephpleague/glide/tree/1.7.0"
 | 
					 | 
				
			||||||
            },
 | 
					 | 
				
			||||||
            "time": "2020-11-05T17:34:03+00:00"
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            "name": "league/mime-type-detection",
 | 
					            "name": "league/mime-type-detection",
 | 
				
			||||||
            "version": "1.5.1",
 | 
					            "version": "1.5.1",
 | 
				
			||||||
@ -6672,244 +6607,6 @@
 | 
				
			|||||||
            ],
 | 
					            ],
 | 
				
			||||||
            "time": "2020-12-07T09:19:29+00:00"
 | 
					            "time": "2020-12-07T09:19:29+00:00"
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            "name": "spatie/browsershot",
 | 
					 | 
				
			||||||
            "version": "3.40.2",
 | 
					 | 
				
			||||||
            "source": {
 | 
					 | 
				
			||||||
                "type": "git",
 | 
					 | 
				
			||||||
                "url": "https://github.com/spatie/browsershot.git",
 | 
					 | 
				
			||||||
                "reference": "3e55eaf5ab8cee65d1661a567e89b3374afb9116"
 | 
					 | 
				
			||||||
            },
 | 
					 | 
				
			||||||
            "dist": {
 | 
					 | 
				
			||||||
                "type": "zip",
 | 
					 | 
				
			||||||
                "url": "https://api.github.com/repos/spatie/browsershot/zipball/3e55eaf5ab8cee65d1661a567e89b3374afb9116",
 | 
					 | 
				
			||||||
                "reference": "3e55eaf5ab8cee65d1661a567e89b3374afb9116",
 | 
					 | 
				
			||||||
                "shasum": ""
 | 
					 | 
				
			||||||
            },
 | 
					 | 
				
			||||||
            "require": {
 | 
					 | 
				
			||||||
                "php": "^7.1",
 | 
					 | 
				
			||||||
                "spatie/image": "^1.5.3",
 | 
					 | 
				
			||||||
                "spatie/temporary-directory": "^1.1",
 | 
					 | 
				
			||||||
                "symfony/process": "^4.2|^5.0"
 | 
					 | 
				
			||||||
            },
 | 
					 | 
				
			||||||
            "require-dev": {
 | 
					 | 
				
			||||||
                "phpunit/phpunit": "^6.1|^7.5",
 | 
					 | 
				
			||||||
                "spatie/phpunit-snapshot-assertions": "^1.0"
 | 
					 | 
				
			||||||
            },
 | 
					 | 
				
			||||||
            "type": "library",
 | 
					 | 
				
			||||||
            "autoload": {
 | 
					 | 
				
			||||||
                "psr-4": {
 | 
					 | 
				
			||||||
                    "Spatie\\Browsershot\\": "src"
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
            },
 | 
					 | 
				
			||||||
            "notification-url": "https://packagist.org/downloads/",
 | 
					 | 
				
			||||||
            "license": [
 | 
					 | 
				
			||||||
                "MIT"
 | 
					 | 
				
			||||||
            ],
 | 
					 | 
				
			||||||
            "authors": [
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    "name": "Freek Van der Herten",
 | 
					 | 
				
			||||||
                    "email": "freek@spatie.be",
 | 
					 | 
				
			||||||
                    "homepage": "https://github.com/freekmurze",
 | 
					 | 
				
			||||||
                    "role": "Developer"
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
            ],
 | 
					 | 
				
			||||||
            "description": "Convert a webpage to an image or pdf using headless Chrome",
 | 
					 | 
				
			||||||
            "homepage": "https://github.com/spatie/browsershot",
 | 
					 | 
				
			||||||
            "keywords": [
 | 
					 | 
				
			||||||
                "chrome",
 | 
					 | 
				
			||||||
                "convert",
 | 
					 | 
				
			||||||
                "headless",
 | 
					 | 
				
			||||||
                "image",
 | 
					 | 
				
			||||||
                "pdf",
 | 
					 | 
				
			||||||
                "puppeteer",
 | 
					 | 
				
			||||||
                "screenshot",
 | 
					 | 
				
			||||||
                "webpage"
 | 
					 | 
				
			||||||
            ],
 | 
					 | 
				
			||||||
            "support": {
 | 
					 | 
				
			||||||
                "issues": "https://github.com/spatie/browsershot/issues",
 | 
					 | 
				
			||||||
                "source": "https://github.com/spatie/browsershot/tree/3.40.2"
 | 
					 | 
				
			||||||
            },
 | 
					 | 
				
			||||||
            "funding": [
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    "url": "https://github.com/spatie",
 | 
					 | 
				
			||||||
                    "type": "github"
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
            ],
 | 
					 | 
				
			||||||
            "time": "2020-11-11T22:18:15+00:00"
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            "name": "spatie/image",
 | 
					 | 
				
			||||||
            "version": "1.10.1",
 | 
					 | 
				
			||||||
            "source": {
 | 
					 | 
				
			||||||
                "type": "git",
 | 
					 | 
				
			||||||
                "url": "https://github.com/spatie/image.git",
 | 
					 | 
				
			||||||
                "reference": "6eaf45d61832c2396dd4b10cc81d9fce93a59e2d"
 | 
					 | 
				
			||||||
            },
 | 
					 | 
				
			||||||
            "dist": {
 | 
					 | 
				
			||||||
                "type": "zip",
 | 
					 | 
				
			||||||
                "url": "https://api.github.com/repos/spatie/image/zipball/6eaf45d61832c2396dd4b10cc81d9fce93a59e2d",
 | 
					 | 
				
			||||||
                "reference": "6eaf45d61832c2396dd4b10cc81d9fce93a59e2d",
 | 
					 | 
				
			||||||
                "shasum": ""
 | 
					 | 
				
			||||||
            },
 | 
					 | 
				
			||||||
            "require": {
 | 
					 | 
				
			||||||
                "ext-exif": "*",
 | 
					 | 
				
			||||||
                "ext-mbstring": "*",
 | 
					 | 
				
			||||||
                "league/glide": "^1.6",
 | 
					 | 
				
			||||||
                "php": "^7.2|^8.0",
 | 
					 | 
				
			||||||
                "spatie/image-optimizer": "^1.1",
 | 
					 | 
				
			||||||
                "spatie/temporary-directory": "^1.0",
 | 
					 | 
				
			||||||
                "symfony/process": "^3.0|^4.0|^5.0"
 | 
					 | 
				
			||||||
            },
 | 
					 | 
				
			||||||
            "require-dev": {
 | 
					 | 
				
			||||||
                "phpunit/phpunit": "^8.0|^9.0",
 | 
					 | 
				
			||||||
                "symfony/var-dumper": "^4.0|^5.0"
 | 
					 | 
				
			||||||
            },
 | 
					 | 
				
			||||||
            "type": "library",
 | 
					 | 
				
			||||||
            "autoload": {
 | 
					 | 
				
			||||||
                "psr-4": {
 | 
					 | 
				
			||||||
                    "Spatie\\Image\\": "src"
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
            },
 | 
					 | 
				
			||||||
            "notification-url": "https://packagist.org/downloads/",
 | 
					 | 
				
			||||||
            "license": [
 | 
					 | 
				
			||||||
                "MIT"
 | 
					 | 
				
			||||||
            ],
 | 
					 | 
				
			||||||
            "authors": [
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    "name": "Freek Van der Herten",
 | 
					 | 
				
			||||||
                    "email": "freek@spatie.be",
 | 
					 | 
				
			||||||
                    "homepage": "https://spatie.be",
 | 
					 | 
				
			||||||
                    "role": "Developer"
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
            ],
 | 
					 | 
				
			||||||
            "description": "Manipulate images with an expressive API",
 | 
					 | 
				
			||||||
            "homepage": "https://github.com/spatie/image",
 | 
					 | 
				
			||||||
            "keywords": [
 | 
					 | 
				
			||||||
                "image",
 | 
					 | 
				
			||||||
                "spatie"
 | 
					 | 
				
			||||||
            ],
 | 
					 | 
				
			||||||
            "support": {
 | 
					 | 
				
			||||||
                "issues": "https://github.com/spatie/image/issues",
 | 
					 | 
				
			||||||
                "source": "https://github.com/spatie/image/tree/1.10.1"
 | 
					 | 
				
			||||||
            },
 | 
					 | 
				
			||||||
            "funding": [
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    "url": "https://spatie.be/open-source/support-us",
 | 
					 | 
				
			||||||
                    "type": "custom"
 | 
					 | 
				
			||||||
                },
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    "url": "https://github.com/spatie",
 | 
					 | 
				
			||||||
                    "type": "github"
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
            ],
 | 
					 | 
				
			||||||
            "time": "2020-12-01T20:42:11+00:00"
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            "name": "spatie/image-optimizer",
 | 
					 | 
				
			||||||
            "version": "1.3.2",
 | 
					 | 
				
			||||||
            "source": {
 | 
					 | 
				
			||||||
                "type": "git",
 | 
					 | 
				
			||||||
                "url": "https://github.com/spatie/image-optimizer.git",
 | 
					 | 
				
			||||||
                "reference": "6aa170eb292758553d332efee5e0c3977341080c"
 | 
					 | 
				
			||||||
            },
 | 
					 | 
				
			||||||
            "dist": {
 | 
					 | 
				
			||||||
                "type": "zip",
 | 
					 | 
				
			||||||
                "url": "https://api.github.com/repos/spatie/image-optimizer/zipball/6aa170eb292758553d332efee5e0c3977341080c",
 | 
					 | 
				
			||||||
                "reference": "6aa170eb292758553d332efee5e0c3977341080c",
 | 
					 | 
				
			||||||
                "shasum": ""
 | 
					 | 
				
			||||||
            },
 | 
					 | 
				
			||||||
            "require": {
 | 
					 | 
				
			||||||
                "ext-fileinfo": "*",
 | 
					 | 
				
			||||||
                "php": "^7.2|^8.0",
 | 
					 | 
				
			||||||
                "psr/log": "^1.0",
 | 
					 | 
				
			||||||
                "symfony/process": "^4.2|^5.0"
 | 
					 | 
				
			||||||
            },
 | 
					 | 
				
			||||||
            "require-dev": {
 | 
					 | 
				
			||||||
                "phpunit/phpunit": "^8.0|^9.0",
 | 
					 | 
				
			||||||
                "symfony/var-dumper": "^4.2|^5.0"
 | 
					 | 
				
			||||||
            },
 | 
					 | 
				
			||||||
            "type": "library",
 | 
					 | 
				
			||||||
            "autoload": {
 | 
					 | 
				
			||||||
                "psr-4": {
 | 
					 | 
				
			||||||
                    "Spatie\\ImageOptimizer\\": "src"
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
            },
 | 
					 | 
				
			||||||
            "notification-url": "https://packagist.org/downloads/",
 | 
					 | 
				
			||||||
            "license": [
 | 
					 | 
				
			||||||
                "MIT"
 | 
					 | 
				
			||||||
            ],
 | 
					 | 
				
			||||||
            "authors": [
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    "name": "Freek Van der Herten",
 | 
					 | 
				
			||||||
                    "email": "freek@spatie.be",
 | 
					 | 
				
			||||||
                    "homepage": "https://spatie.be",
 | 
					 | 
				
			||||||
                    "role": "Developer"
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
            ],
 | 
					 | 
				
			||||||
            "description": "Easily optimize images using PHP",
 | 
					 | 
				
			||||||
            "homepage": "https://github.com/spatie/image-optimizer",
 | 
					 | 
				
			||||||
            "keywords": [
 | 
					 | 
				
			||||||
                "image-optimizer",
 | 
					 | 
				
			||||||
                "spatie"
 | 
					 | 
				
			||||||
            ],
 | 
					 | 
				
			||||||
            "support": {
 | 
					 | 
				
			||||||
                "issues": "https://github.com/spatie/image-optimizer/issues",
 | 
					 | 
				
			||||||
                "source": "https://github.com/spatie/image-optimizer/tree/1.3.2"
 | 
					 | 
				
			||||||
            },
 | 
					 | 
				
			||||||
            "time": "2020-11-28T12:37:58+00:00"
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            "name": "spatie/temporary-directory",
 | 
					 | 
				
			||||||
            "version": "1.3.0",
 | 
					 | 
				
			||||||
            "source": {
 | 
					 | 
				
			||||||
                "type": "git",
 | 
					 | 
				
			||||||
                "url": "https://github.com/spatie/temporary-directory.git",
 | 
					 | 
				
			||||||
                "reference": "f517729b3793bca58f847c5fd383ec16f03ffec6"
 | 
					 | 
				
			||||||
            },
 | 
					 | 
				
			||||||
            "dist": {
 | 
					 | 
				
			||||||
                "type": "zip",
 | 
					 | 
				
			||||||
                "url": "https://api.github.com/repos/spatie/temporary-directory/zipball/f517729b3793bca58f847c5fd383ec16f03ffec6",
 | 
					 | 
				
			||||||
                "reference": "f517729b3793bca58f847c5fd383ec16f03ffec6",
 | 
					 | 
				
			||||||
                "shasum": ""
 | 
					 | 
				
			||||||
            },
 | 
					 | 
				
			||||||
            "require": {
 | 
					 | 
				
			||||||
                "php": "^7.2|^8.0"
 | 
					 | 
				
			||||||
            },
 | 
					 | 
				
			||||||
            "require-dev": {
 | 
					 | 
				
			||||||
                "phpunit/phpunit": "^8.0|^9.0"
 | 
					 | 
				
			||||||
            },
 | 
					 | 
				
			||||||
            "type": "library",
 | 
					 | 
				
			||||||
            "autoload": {
 | 
					 | 
				
			||||||
                "psr-4": {
 | 
					 | 
				
			||||||
                    "Spatie\\TemporaryDirectory\\": "src"
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
            },
 | 
					 | 
				
			||||||
            "notification-url": "https://packagist.org/downloads/",
 | 
					 | 
				
			||||||
            "license": [
 | 
					 | 
				
			||||||
                "MIT"
 | 
					 | 
				
			||||||
            ],
 | 
					 | 
				
			||||||
            "authors": [
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    "name": "Alex Vanderbist",
 | 
					 | 
				
			||||||
                    "email": "alex@spatie.be",
 | 
					 | 
				
			||||||
                    "homepage": "https://spatie.be",
 | 
					 | 
				
			||||||
                    "role": "Developer"
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
            ],
 | 
					 | 
				
			||||||
            "description": "Easily create, use and destroy temporary directories",
 | 
					 | 
				
			||||||
            "homepage": "https://github.com/spatie/temporary-directory",
 | 
					 | 
				
			||||||
            "keywords": [
 | 
					 | 
				
			||||||
                "php",
 | 
					 | 
				
			||||||
                "spatie",
 | 
					 | 
				
			||||||
                "temporary-directory"
 | 
					 | 
				
			||||||
            ],
 | 
					 | 
				
			||||||
            "support": {
 | 
					 | 
				
			||||||
                "issues": "https://github.com/spatie/temporary-directory/issues",
 | 
					 | 
				
			||||||
                "source": "https://github.com/spatie/temporary-directory/tree/1.3.0"
 | 
					 | 
				
			||||||
            },
 | 
					 | 
				
			||||||
            "time": "2020-11-09T15:54:21+00:00"
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            "name": "stripe/stripe-php",
 | 
					            "name": "stripe/stripe-php",
 | 
				
			||||||
            "version": "v7.67.0",
 | 
					            "version": "v7.67.0",
 | 
				
			||||||
 | 
				
			|||||||
@ -12,7 +12,7 @@ return [
 | 
				
			|||||||
    'require_https' => env('REQUIRE_HTTPS', true),
 | 
					    'require_https' => env('REQUIRE_HTTPS', true),
 | 
				
			||||||
    'app_url' => rtrim(env('APP_URL', ''), '/'),
 | 
					    'app_url' => rtrim(env('APP_URL', ''), '/'),
 | 
				
			||||||
    'app_domain' => env('APP_DOMAIN', ''),
 | 
					    'app_domain' => env('APP_DOMAIN', ''),
 | 
				
			||||||
    'app_version' => '5.0.39',
 | 
					    'app_version' => '5.0.40',
 | 
				
			||||||
    'minimum_client_version' => '5.0.16',
 | 
					    'minimum_client_version' => '5.0.16',
 | 
				
			||||||
    'terms_version' => '1.0.1',
 | 
					    'terms_version' => '1.0.1',
 | 
				
			||||||
    'api_secret' => env('API_SECRET', false),
 | 
					    'api_secret' => env('API_SECRET', false),
 | 
				
			||||||
@ -135,7 +135,5 @@ return [
 | 
				
			|||||||
    'designs' => [
 | 
					    'designs' => [
 | 
				
			||||||
        'base_path' => resource_path('views/pdf-designs/'),
 | 
					        'base_path' => resource_path('views/pdf-designs/'),
 | 
				
			||||||
    ],
 | 
					    ],
 | 
				
			||||||
    'experimental_pdf_engine' => env('EXPERIMENTAL_PDF_ENGINE', false),
 | 
					 | 
				
			||||||
    'experimental_pdf_engine_chromium_path' => env('EXPERIMENTAL_PDF_ENGINE_CHROMIUM_PATH', null),
 | 
					 | 
				
			||||||
    'log_pdf_html' => env('LOG_PDF_HTML', false),
 | 
					    'log_pdf_html' => env('LOG_PDF_HTML', false),
 | 
				
			||||||
];
 | 
					];
 | 
				
			||||||
 | 
				
			|||||||
@ -0,0 +1,32 @@
 | 
				
			|||||||
 | 
					<?php
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					use App\Models\Country;
 | 
				
			||||||
 | 
					use Illuminate\Database\Migrations\Migration;
 | 
				
			||||||
 | 
					use Illuminate\Database\Schema\Blueprint;
 | 
				
			||||||
 | 
					use Illuminate\Support\Facades\Schema;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class RemoveNullValuesInCountriesTable extends Migration
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * Run the migrations.
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * @return void
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public function up()
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        $countries = Country::whereNull('thousand_separator')->update(['thousand_separator' => '']);
 | 
				
			||||||
 | 
					        $countries = Country::whereNull('decimal_separator')->update(['decimal_separator' => '']);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * Reverse the migrations.
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * @return void
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public function down()
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        Schema::table('countries', function (Blueprint $table) {
 | 
				
			||||||
 | 
					            //
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										288
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										288
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							@ -1257,16 +1257,6 @@
 | 
				
			|||||||
            "integrity": "sha1-qBG4wY4rq6t9VCszZYh64uTZ3kc=",
 | 
					            "integrity": "sha1-qBG4wY4rq6t9VCszZYh64uTZ3kc=",
 | 
				
			||||||
            "dev": true
 | 
					            "dev": true
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "@types/yauzl": {
 | 
					 | 
				
			||||||
            "version": "2.9.1",
 | 
					 | 
				
			||||||
            "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.9.1.tgz",
 | 
					 | 
				
			||||||
            "integrity": "sha512-A1b8SU4D10uoPjwb0lnHmmu8wZhR9d+9o2PKBQT2jU5YPTKsxac6M2qGAdY7VcL+dHHhARVUDmeg0rOrcd9EjA==",
 | 
					 | 
				
			||||||
            "dev": true,
 | 
					 | 
				
			||||||
            "optional": true,
 | 
					 | 
				
			||||||
            "requires": {
 | 
					 | 
				
			||||||
                "@types/node": "*"
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "@vue/component-compiler-utils": {
 | 
					        "@vue/component-compiler-utils": {
 | 
				
			||||||
            "version": "3.2.0",
 | 
					            "version": "3.2.0",
 | 
				
			||||||
            "resolved": "https://registry.npmjs.org/@vue/component-compiler-utils/-/component-compiler-utils-3.2.0.tgz",
 | 
					            "resolved": "https://registry.npmjs.org/@vue/component-compiler-utils/-/component-compiler-utils-3.2.0.tgz",
 | 
				
			||||||
@ -1528,12 +1518,6 @@
 | 
				
			|||||||
                }
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "agent-base": {
 | 
					 | 
				
			||||||
            "version": "5.1.1",
 | 
					 | 
				
			||||||
            "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-5.1.1.tgz",
 | 
					 | 
				
			||||||
            "integrity": "sha512-TMeqbNl2fMW0nMjTEPOwe3J/PRFP4vqeoNuQMG0HlMrtm5QxKqdvAkZ1pRBQ/ulIyDD5Yq0nJ7YbdD8ey0TO3g==",
 | 
					 | 
				
			||||||
            "dev": true
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "aggregate-error": {
 | 
					        "aggregate-error": {
 | 
				
			||||||
            "version": "3.1.0",
 | 
					            "version": "3.1.0",
 | 
				
			||||||
            "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz",
 | 
					            "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz",
 | 
				
			||||||
@ -2022,40 +2006,6 @@
 | 
				
			|||||||
                "file-uri-to-path": "1.0.0"
 | 
					                "file-uri-to-path": "1.0.0"
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "bl": {
 | 
					 | 
				
			||||||
            "version": "4.0.3",
 | 
					 | 
				
			||||||
            "resolved": "https://registry.npmjs.org/bl/-/bl-4.0.3.tgz",
 | 
					 | 
				
			||||||
            "integrity": "sha512-fs4G6/Hu4/EE+F75J8DuN/0IpQqNjAdC7aEQv7Qt8MHGUH7Ckv2MwTEEeN9QehD0pfIDkMI1bkHYkKy7xHyKIg==",
 | 
					 | 
				
			||||||
            "dev": true,
 | 
					 | 
				
			||||||
            "requires": {
 | 
					 | 
				
			||||||
                "buffer": "^5.5.0",
 | 
					 | 
				
			||||||
                "inherits": "^2.0.4",
 | 
					 | 
				
			||||||
                "readable-stream": "^3.4.0"
 | 
					 | 
				
			||||||
            },
 | 
					 | 
				
			||||||
            "dependencies": {
 | 
					 | 
				
			||||||
                "buffer": {
 | 
					 | 
				
			||||||
                    "version": "5.6.0",
 | 
					 | 
				
			||||||
                    "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz",
 | 
					 | 
				
			||||||
                    "integrity": "sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==",
 | 
					 | 
				
			||||||
                    "dev": true,
 | 
					 | 
				
			||||||
                    "requires": {
 | 
					 | 
				
			||||||
                        "base64-js": "^1.0.2",
 | 
					 | 
				
			||||||
                        "ieee754": "^1.1.4"
 | 
					 | 
				
			||||||
                    }
 | 
					 | 
				
			||||||
                },
 | 
					 | 
				
			||||||
                "readable-stream": {
 | 
					 | 
				
			||||||
                    "version": "3.6.0",
 | 
					 | 
				
			||||||
                    "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
 | 
					 | 
				
			||||||
                    "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
 | 
					 | 
				
			||||||
                    "dev": true,
 | 
					 | 
				
			||||||
                    "requires": {
 | 
					 | 
				
			||||||
                        "inherits": "^2.0.3",
 | 
					 | 
				
			||||||
                        "string_decoder": "^1.1.1",
 | 
					 | 
				
			||||||
                        "util-deprecate": "^1.0.1"
 | 
					 | 
				
			||||||
                    }
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "bluebird": {
 | 
					        "bluebird": {
 | 
				
			||||||
            "version": "3.7.2",
 | 
					            "version": "3.7.2",
 | 
				
			||||||
            "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz",
 | 
					            "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz",
 | 
				
			||||||
@ -3549,12 +3499,6 @@
 | 
				
			|||||||
                "minimist": "^1.1.1"
 | 
					                "minimist": "^1.1.1"
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "devtools-protocol": {
 | 
					 | 
				
			||||||
            "version": "0.0.799653",
 | 
					 | 
				
			||||||
            "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.799653.tgz",
 | 
					 | 
				
			||||||
            "integrity": "sha512-t1CcaZbvm8pOlikqrsIM9GOa7Ipp07+4h/q9u0JXBWjPCjHdBl9KkddX87Vv9vBHoBGtwV79sYQNGnQM6iS5gg==",
 | 
					 | 
				
			||||||
            "dev": true
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "diffie-hellman": {
 | 
					        "diffie-hellman": {
 | 
				
			||||||
            "version": "5.0.3",
 | 
					            "version": "5.0.3",
 | 
				
			||||||
            "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz",
 | 
					            "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz",
 | 
				
			||||||
@ -4549,12 +4493,6 @@
 | 
				
			|||||||
                "readable-stream": "^2.0.0"
 | 
					                "readable-stream": "^2.0.0"
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "fs-constants": {
 | 
					 | 
				
			||||||
            "version": "1.0.0",
 | 
					 | 
				
			||||||
            "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
 | 
					 | 
				
			||||||
            "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==",
 | 
					 | 
				
			||||||
            "dev": true
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "fs-extra": {
 | 
					        "fs-extra": {
 | 
				
			||||||
            "version": "8.1.0",
 | 
					            "version": "8.1.0",
 | 
				
			||||||
            "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
 | 
					            "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
 | 
				
			||||||
@ -5071,33 +5009,6 @@
 | 
				
			|||||||
            "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz",
 | 
					            "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz",
 | 
				
			||||||
            "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM="
 | 
					            "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM="
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "https-proxy-agent": {
 | 
					 | 
				
			||||||
            "version": "4.0.0",
 | 
					 | 
				
			||||||
            "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-4.0.0.tgz",
 | 
					 | 
				
			||||||
            "integrity": "sha512-zoDhWrkR3of1l9QAL8/scJZyLu8j/gBkcwcaQOZh7Gyh/+uJQzGVETdgT30akuwkpL8HTRfssqI3BZuV18teDg==",
 | 
					 | 
				
			||||||
            "dev": true,
 | 
					 | 
				
			||||||
            "requires": {
 | 
					 | 
				
			||||||
                "agent-base": "5",
 | 
					 | 
				
			||||||
                "debug": "4"
 | 
					 | 
				
			||||||
            },
 | 
					 | 
				
			||||||
            "dependencies": {
 | 
					 | 
				
			||||||
                "debug": {
 | 
					 | 
				
			||||||
                    "version": "4.2.0",
 | 
					 | 
				
			||||||
                    "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz",
 | 
					 | 
				
			||||||
                    "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==",
 | 
					 | 
				
			||||||
                    "dev": true,
 | 
					 | 
				
			||||||
                    "requires": {
 | 
					 | 
				
			||||||
                        "ms": "2.1.2"
 | 
					 | 
				
			||||||
                    }
 | 
					 | 
				
			||||||
                },
 | 
					 | 
				
			||||||
                "ms": {
 | 
					 | 
				
			||||||
                    "version": "2.1.2",
 | 
					 | 
				
			||||||
                    "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
 | 
					 | 
				
			||||||
                    "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
 | 
					 | 
				
			||||||
                    "dev": true
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "iconv-lite": {
 | 
					        "iconv-lite": {
 | 
				
			||||||
            "version": "0.4.24",
 | 
					            "version": "0.4.24",
 | 
				
			||||||
            "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
 | 
					            "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
 | 
				
			||||||
@ -5264,9 +5175,9 @@
 | 
				
			|||||||
            "integrity": "sha1-D6LGT5MpF8NDOg3tVTY6rjdBa3w="
 | 
					            "integrity": "sha1-D6LGT5MpF8NDOg3tVTY6rjdBa3w="
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "ini": {
 | 
					        "ini": {
 | 
				
			||||||
            "version": "1.3.5",
 | 
					            "version": "1.3.8",
 | 
				
			||||||
            "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz",
 | 
					            "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
 | 
				
			||||||
            "integrity": "sha1-7uJfVtscnsYIXgwid4CD9Zar+Sc="
 | 
					            "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew=="
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "internal-ip": {
 | 
					        "internal-ip": {
 | 
				
			||||||
            "version": "4.3.0",
 | 
					            "version": "4.3.0",
 | 
				
			||||||
@ -6356,12 +6267,6 @@
 | 
				
			|||||||
                "minimist": "^1.2.5"
 | 
					                "minimist": "^1.2.5"
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "mkdirp-classic": {
 | 
					 | 
				
			||||||
            "version": "0.5.3",
 | 
					 | 
				
			||||||
            "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz",
 | 
					 | 
				
			||||||
            "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==",
 | 
					 | 
				
			||||||
            "dev": true
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "moment": {
 | 
					        "moment": {
 | 
				
			||||||
            "version": "2.27.0",
 | 
					            "version": "2.27.0",
 | 
				
			||||||
            "resolved": "https://registry.npmjs.org/moment/-/moment-2.27.0.tgz",
 | 
					            "resolved": "https://registry.npmjs.org/moment/-/moment-2.27.0.tgz",
 | 
				
			||||||
@ -7756,12 +7661,6 @@
 | 
				
			|||||||
            "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
 | 
					            "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
 | 
				
			||||||
            "integrity": "sha1-eCDZsWEgzFXKmud5JoCufbptf+I="
 | 
					            "integrity": "sha1-eCDZsWEgzFXKmud5JoCufbptf+I="
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "progress": {
 | 
					 | 
				
			||||||
            "version": "2.0.3",
 | 
					 | 
				
			||||||
            "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
 | 
					 | 
				
			||||||
            "integrity": "sha1-foz42PW48jnBvGi+tOt4Vn1XLvg=",
 | 
					 | 
				
			||||||
            "dev": true
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "promise-inflight": {
 | 
					        "promise-inflight": {
 | 
				
			||||||
            "version": "1.0.1",
 | 
					            "version": "1.0.1",
 | 
				
			||||||
            "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz",
 | 
					            "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz",
 | 
				
			||||||
@ -7776,12 +7675,6 @@
 | 
				
			|||||||
                "ipaddr.js": "1.9.1"
 | 
					                "ipaddr.js": "1.9.1"
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "proxy-from-env": {
 | 
					 | 
				
			||||||
            "version": "1.1.0",
 | 
					 | 
				
			||||||
            "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
 | 
					 | 
				
			||||||
            "integrity": "sha1-4QLxbKNVQkhldV0sno6k8k1Yw+I=",
 | 
					 | 
				
			||||||
            "dev": true
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "prr": {
 | 
					        "prr": {
 | 
				
			||||||
            "version": "1.0.1",
 | 
					            "version": "1.0.1",
 | 
				
			||||||
            "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz",
 | 
					            "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz",
 | 
				
			||||||
@ -7853,121 +7746,6 @@
 | 
				
			|||||||
            "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
 | 
					            "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
 | 
				
			||||||
            "integrity": "sha1-tYsBCsQMIsVldhbI0sLALHv0eew="
 | 
					            "integrity": "sha1-tYsBCsQMIsVldhbI0sLALHv0eew="
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "puppeteer": {
 | 
					 | 
				
			||||||
            "version": "5.3.1",
 | 
					 | 
				
			||||||
            "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-5.3.1.tgz",
 | 
					 | 
				
			||||||
            "integrity": "sha512-YTM1RaBeYrj6n7IlRXRYLqJHF+GM7tasbvrNFx6w1S16G76NrPq7oYFKLDO+BQsXNtS8kW2GxWCXjIMPvfDyaQ==",
 | 
					 | 
				
			||||||
            "dev": true,
 | 
					 | 
				
			||||||
            "requires": {
 | 
					 | 
				
			||||||
                "debug": "^4.1.0",
 | 
					 | 
				
			||||||
                "devtools-protocol": "0.0.799653",
 | 
					 | 
				
			||||||
                "extract-zip": "^2.0.0",
 | 
					 | 
				
			||||||
                "https-proxy-agent": "^4.0.0",
 | 
					 | 
				
			||||||
                "pkg-dir": "^4.2.0",
 | 
					 | 
				
			||||||
                "progress": "^2.0.1",
 | 
					 | 
				
			||||||
                "proxy-from-env": "^1.0.0",
 | 
					 | 
				
			||||||
                "rimraf": "^3.0.2",
 | 
					 | 
				
			||||||
                "tar-fs": "^2.0.0",
 | 
					 | 
				
			||||||
                "unbzip2-stream": "^1.3.3",
 | 
					 | 
				
			||||||
                "ws": "^7.2.3"
 | 
					 | 
				
			||||||
            },
 | 
					 | 
				
			||||||
            "dependencies": {
 | 
					 | 
				
			||||||
                "debug": {
 | 
					 | 
				
			||||||
                    "version": "4.2.0",
 | 
					 | 
				
			||||||
                    "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz",
 | 
					 | 
				
			||||||
                    "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==",
 | 
					 | 
				
			||||||
                    "dev": true,
 | 
					 | 
				
			||||||
                    "requires": {
 | 
					 | 
				
			||||||
                        "ms": "2.1.2"
 | 
					 | 
				
			||||||
                    }
 | 
					 | 
				
			||||||
                },
 | 
					 | 
				
			||||||
                "extract-zip": {
 | 
					 | 
				
			||||||
                    "version": "2.0.1",
 | 
					 | 
				
			||||||
                    "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz",
 | 
					 | 
				
			||||||
                    "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==",
 | 
					 | 
				
			||||||
                    "dev": true,
 | 
					 | 
				
			||||||
                    "requires": {
 | 
					 | 
				
			||||||
                        "@types/yauzl": "^2.9.1",
 | 
					 | 
				
			||||||
                        "debug": "^4.1.1",
 | 
					 | 
				
			||||||
                        "get-stream": "^5.1.0",
 | 
					 | 
				
			||||||
                        "yauzl": "^2.10.0"
 | 
					 | 
				
			||||||
                    }
 | 
					 | 
				
			||||||
                },
 | 
					 | 
				
			||||||
                "find-up": {
 | 
					 | 
				
			||||||
                    "version": "4.1.0",
 | 
					 | 
				
			||||||
                    "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
 | 
					 | 
				
			||||||
                    "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
 | 
					 | 
				
			||||||
                    "dev": true,
 | 
					 | 
				
			||||||
                    "requires": {
 | 
					 | 
				
			||||||
                        "locate-path": "^5.0.0",
 | 
					 | 
				
			||||||
                        "path-exists": "^4.0.0"
 | 
					 | 
				
			||||||
                    }
 | 
					 | 
				
			||||||
                },
 | 
					 | 
				
			||||||
                "get-stream": {
 | 
					 | 
				
			||||||
                    "version": "5.2.0",
 | 
					 | 
				
			||||||
                    "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
 | 
					 | 
				
			||||||
                    "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
 | 
					 | 
				
			||||||
                    "dev": true,
 | 
					 | 
				
			||||||
                    "requires": {
 | 
					 | 
				
			||||||
                        "pump": "^3.0.0"
 | 
					 | 
				
			||||||
                    }
 | 
					 | 
				
			||||||
                },
 | 
					 | 
				
			||||||
                "locate-path": {
 | 
					 | 
				
			||||||
                    "version": "5.0.0",
 | 
					 | 
				
			||||||
                    "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
 | 
					 | 
				
			||||||
                    "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
 | 
					 | 
				
			||||||
                    "dev": true,
 | 
					 | 
				
			||||||
                    "requires": {
 | 
					 | 
				
			||||||
                        "p-locate": "^4.1.0"
 | 
					 | 
				
			||||||
                    }
 | 
					 | 
				
			||||||
                },
 | 
					 | 
				
			||||||
                "ms": {
 | 
					 | 
				
			||||||
                    "version": "2.1.2",
 | 
					 | 
				
			||||||
                    "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
 | 
					 | 
				
			||||||
                    "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
 | 
					 | 
				
			||||||
                    "dev": true
 | 
					 | 
				
			||||||
                },
 | 
					 | 
				
			||||||
                "p-locate": {
 | 
					 | 
				
			||||||
                    "version": "4.1.0",
 | 
					 | 
				
			||||||
                    "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
 | 
					 | 
				
			||||||
                    "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
 | 
					 | 
				
			||||||
                    "dev": true,
 | 
					 | 
				
			||||||
                    "requires": {
 | 
					 | 
				
			||||||
                        "p-limit": "^2.2.0"
 | 
					 | 
				
			||||||
                    }
 | 
					 | 
				
			||||||
                },
 | 
					 | 
				
			||||||
                "path-exists": {
 | 
					 | 
				
			||||||
                    "version": "4.0.0",
 | 
					 | 
				
			||||||
                    "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
 | 
					 | 
				
			||||||
                    "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
 | 
					 | 
				
			||||||
                    "dev": true
 | 
					 | 
				
			||||||
                },
 | 
					 | 
				
			||||||
                "pkg-dir": {
 | 
					 | 
				
			||||||
                    "version": "4.2.0",
 | 
					 | 
				
			||||||
                    "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
 | 
					 | 
				
			||||||
                    "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
 | 
					 | 
				
			||||||
                    "dev": true,
 | 
					 | 
				
			||||||
                    "requires": {
 | 
					 | 
				
			||||||
                        "find-up": "^4.0.0"
 | 
					 | 
				
			||||||
                    }
 | 
					 | 
				
			||||||
                },
 | 
					 | 
				
			||||||
                "rimraf": {
 | 
					 | 
				
			||||||
                    "version": "3.0.2",
 | 
					 | 
				
			||||||
                    "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
 | 
					 | 
				
			||||||
                    "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
 | 
					 | 
				
			||||||
                    "dev": true,
 | 
					 | 
				
			||||||
                    "requires": {
 | 
					 | 
				
			||||||
                        "glob": "^7.1.3"
 | 
					 | 
				
			||||||
                    }
 | 
					 | 
				
			||||||
                },
 | 
					 | 
				
			||||||
                "ws": {
 | 
					 | 
				
			||||||
                    "version": "7.3.1",
 | 
					 | 
				
			||||||
                    "resolved": "https://registry.npmjs.org/ws/-/ws-7.3.1.tgz",
 | 
					 | 
				
			||||||
                    "integrity": "sha512-D3RuNkynyHmEJIpD2qrgVkc9DQ23OrN/moAwZX4L8DfvszsJxpjQuUq3LMx6HoYji9fbIOBY18XWBsAux1ZZUA==",
 | 
					 | 
				
			||||||
                    "dev": true
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "purgecss": {
 | 
					        "purgecss": {
 | 
				
			||||||
            "version": "2.3.0",
 | 
					            "version": "2.3.0",
 | 
				
			||||||
            "resolved": "https://registry.npmjs.org/purgecss/-/purgecss-2.3.0.tgz",
 | 
					            "resolved": "https://registry.npmjs.org/purgecss/-/purgecss-2.3.0.tgz",
 | 
				
			||||||
@ -9405,44 +9183,6 @@
 | 
				
			|||||||
            "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz",
 | 
					            "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz",
 | 
				
			||||||
            "integrity": "sha1-ofzMBrWNth/XpF2i2kT186Pme6I="
 | 
					            "integrity": "sha1-ofzMBrWNth/XpF2i2kT186Pme6I="
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "tar-fs": {
 | 
					 | 
				
			||||||
            "version": "2.1.0",
 | 
					 | 
				
			||||||
            "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.0.tgz",
 | 
					 | 
				
			||||||
            "integrity": "sha512-9uW5iDvrIMCVpvasdFHW0wJPez0K4JnMZtsuIeDI7HyMGJNxmDZDOCQROr7lXyS+iL/QMpj07qcjGYTSdRFXUg==",
 | 
					 | 
				
			||||||
            "dev": true,
 | 
					 | 
				
			||||||
            "requires": {
 | 
					 | 
				
			||||||
                "chownr": "^1.1.1",
 | 
					 | 
				
			||||||
                "mkdirp-classic": "^0.5.2",
 | 
					 | 
				
			||||||
                "pump": "^3.0.0",
 | 
					 | 
				
			||||||
                "tar-stream": "^2.0.0"
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "tar-stream": {
 | 
					 | 
				
			||||||
            "version": "2.1.4",
 | 
					 | 
				
			||||||
            "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.1.4.tgz",
 | 
					 | 
				
			||||||
            "integrity": "sha512-o3pS2zlG4gxr67GmFYBLlq+dM8gyRGUOvsrHclSkvtVtQbjV0s/+ZE8OpICbaj8clrX3tjeHngYGP7rweaBnuw==",
 | 
					 | 
				
			||||||
            "dev": true,
 | 
					 | 
				
			||||||
            "requires": {
 | 
					 | 
				
			||||||
                "bl": "^4.0.3",
 | 
					 | 
				
			||||||
                "end-of-stream": "^1.4.1",
 | 
					 | 
				
			||||||
                "fs-constants": "^1.0.0",
 | 
					 | 
				
			||||||
                "inherits": "^2.0.3",
 | 
					 | 
				
			||||||
                "readable-stream": "^3.1.1"
 | 
					 | 
				
			||||||
            },
 | 
					 | 
				
			||||||
            "dependencies": {
 | 
					 | 
				
			||||||
                "readable-stream": {
 | 
					 | 
				
			||||||
                    "version": "3.6.0",
 | 
					 | 
				
			||||||
                    "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
 | 
					 | 
				
			||||||
                    "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
 | 
					 | 
				
			||||||
                    "dev": true,
 | 
					 | 
				
			||||||
                    "requires": {
 | 
					 | 
				
			||||||
                        "inherits": "^2.0.3",
 | 
					 | 
				
			||||||
                        "string_decoder": "^1.1.1",
 | 
					 | 
				
			||||||
                        "util-deprecate": "^1.0.1"
 | 
					 | 
				
			||||||
                    }
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "terser": {
 | 
					        "terser": {
 | 
				
			||||||
            "version": "3.17.0",
 | 
					            "version": "3.17.0",
 | 
				
			||||||
            "resolved": "https://registry.npmjs.org/terser/-/terser-3.17.0.tgz",
 | 
					            "resolved": "https://registry.npmjs.org/terser/-/terser-3.17.0.tgz",
 | 
				
			||||||
@ -9744,28 +9484,6 @@
 | 
				
			|||||||
                }
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "unbzip2-stream": {
 | 
					 | 
				
			||||||
            "version": "1.4.3",
 | 
					 | 
				
			||||||
            "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz",
 | 
					 | 
				
			||||||
            "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==",
 | 
					 | 
				
			||||||
            "dev": true,
 | 
					 | 
				
			||||||
            "requires": {
 | 
					 | 
				
			||||||
                "buffer": "^5.2.1",
 | 
					 | 
				
			||||||
                "through": "^2.3.8"
 | 
					 | 
				
			||||||
            },
 | 
					 | 
				
			||||||
            "dependencies": {
 | 
					 | 
				
			||||||
                "buffer": {
 | 
					 | 
				
			||||||
                    "version": "5.6.0",
 | 
					 | 
				
			||||||
                    "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz",
 | 
					 | 
				
			||||||
                    "integrity": "sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==",
 | 
					 | 
				
			||||||
                    "dev": true,
 | 
					 | 
				
			||||||
                    "requires": {
 | 
					 | 
				
			||||||
                        "base64-js": "^1.0.2",
 | 
					 | 
				
			||||||
                        "ieee754": "^1.1.4"
 | 
					 | 
				
			||||||
                    }
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "unicode-canonical-property-names-ecmascript": {
 | 
					        "unicode-canonical-property-names-ecmascript": {
 | 
				
			||||||
            "version": "1.0.4",
 | 
					            "version": "1.0.4",
 | 
				
			||||||
            "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz",
 | 
					            "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz",
 | 
				
			||||||
 | 
				
			|||||||
@ -16,7 +16,6 @@
 | 
				
			|||||||
        "@babel/plugin-proposal-class-properties": "^7.10.4",
 | 
					        "@babel/plugin-proposal-class-properties": "^7.10.4",
 | 
				
			||||||
        "cypress": "^4.12.1",
 | 
					        "cypress": "^4.12.1",
 | 
				
			||||||
        "laravel-mix-purgecss": "^5.0.0",
 | 
					        "laravel-mix-purgecss": "^5.0.0",
 | 
				
			||||||
        "puppeteer": "^5.3.1",
 | 
					 | 
				
			||||||
        "vue-template-compiler": "^2.6.11"
 | 
					        "vue-template-compiler": "^2.6.11"
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "dependencies": {
 | 
					    "dependencies": {
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										4
									
								
								public/flutter_service_worker.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								public/flutter_service_worker.js
									
									
									
									
										vendored
									
									
								
							@ -30,8 +30,8 @@ const RESOURCES = {
 | 
				
			|||||||
"assets/FontManifest.json": "cf3c681641169319e61b61bd0277378f",
 | 
					"assets/FontManifest.json": "cf3c681641169319e61b61bd0277378f",
 | 
				
			||||||
"assets/fonts/MaterialIcons-Regular.otf": "1288c9e28052e028aba623321f7826ac",
 | 
					"assets/fonts/MaterialIcons-Regular.otf": "1288c9e28052e028aba623321f7826ac",
 | 
				
			||||||
"/": "23224b5e03519aaa87594403d54412cf",
 | 
					"/": "23224b5e03519aaa87594403d54412cf",
 | 
				
			||||||
"version.json": "9dd2fd2348d37545c57e88fbd387e6b8",
 | 
					"version.json": "2337a2140fc2ea8baeb10b0e5a200f59",
 | 
				
			||||||
"main.dart.js": "891e3734a9497025a639574649c5afa1",
 | 
					"main.dart.js": "cb45263da95ac53b92a95e621c5880a8",
 | 
				
			||||||
"favicon.png": "dca91c54388f52eded692718d5a98b8b"
 | 
					"favicon.png": "dca91c54388f52eded692718d5a98b8b"
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										43260
									
								
								public/main.dart.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										43260
									
								
								public/main.dart.js
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							@ -1 +1 @@
 | 
				
			|||||||
{"app_name":"invoiceninja_flutter","version":"5.0.32","build_number":"32"}
 | 
					{"app_name":"invoiceninja_flutter","version":"5.0.33","build_number":"33"}
 | 
				
			||||||
@ -10,7 +10,7 @@
 | 
				
			|||||||
 */
 | 
					 */
 | 
				
			||||||
namespace Tests\Pdf;
 | 
					namespace Tests\Pdf;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
use Spatie\Browsershot\Browsershot;
 | 
					use Beganovich\Snappdf\Snappdf;
 | 
				
			||||||
use Tests\TestCase;
 | 
					use Tests\TestCase;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
@ -24,107 +24,14 @@ class PdfGenerationTest extends TestCase
 | 
				
			|||||||
        parent::setUp();
 | 
					        parent::setUp();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private function makePdf($header, $footer, $html, $pdf)
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        Browsershot::html($html)
 | 
					 | 
				
			||||||
            ->setNodeBinary(config('ninja.system.node_path'))
 | 
					 | 
				
			||||||
            ->setNpmBinary(config('ninja.system.npm_path'))
 | 
					 | 
				
			||||||
            //->showBrowserHeaderAndFooter()
 | 
					 | 
				
			||||||
            //->headerHtml($header)
 | 
					 | 
				
			||||||
            //->footerHtml($footer)
 | 
					 | 
				
			||||||
            ->waitUntilNetworkIdle()
 | 
					 | 
				
			||||||
            //->margins(10,10,10,10)
 | 
					 | 
				
			||||||
            ->noSandbox()
 | 
					 | 
				
			||||||
            ->savePdf($pdf);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public function testPdfGeneration()
 | 
					    public function testPdfGeneration()
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        $html = file_get_contents(base_path().'/tests/Pdf/invoice.html');
 | 
					        $snappdf = new Snappdf();
 | 
				
			||||||
        $pdf = base_path().'/tests/Pdf/invoice.pdf';
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        $header = '<div style="font-size:14px;"<header></header>';
 | 
					        $pdf = $snappdf
 | 
				
			||||||
 | 
					            ->setHtml('<h1>Invoice Ninja</h1>')
 | 
				
			||||||
 | 
					            ->generate();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        $footer = ' <div style="font-size:14px;"><footer>
 | 
					        $this->assertNotNull($pdf);
 | 
				
			||||||
                <span class="pageNumber"></span> / <span class="totalPages"></span>
 | 
					 | 
				
			||||||
            </footer></div>';
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        $this->makePdf($header, $footer, $html, $pdf);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        $this->assertTrue(file_exists($pdf));
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        unlink($pdf);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public function testPdfGeneration2()
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        $html = file_get_contents(base_path().'/tests/Pdf/invoice2.html');
 | 
					 | 
				
			||||||
        $pdf = base_path().'/tests/Pdf/invoice2.pdf';
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        $header = '<div style="font-size:14px;"<header></header>';
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        $footer = ' <div style="font-size:14px;"><footer>
 | 
					 | 
				
			||||||
                <span class="pageNumber"></span> / <span class="totalPages"></span>
 | 
					 | 
				
			||||||
            </footer></div>';
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        $this->makePdf($header, $footer, $html, $pdf);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        $this->assertTrue(file_exists($pdf));
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        unlink($pdf);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public function testPdfGeneration3()
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        $html = file_get_contents(base_path().'/tests/Pdf/invoice3.html');
 | 
					 | 
				
			||||||
        $pdf = base_path().'/tests/Pdf/invoice3.pdf';
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        $header = '<div style="font-size:14px;"<header></header>';
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        $footer = ' <div style="font-size:14px;"><footer>
 | 
					 | 
				
			||||||
                <span class="pageNumber"></span> / <span class="totalPages"></span>
 | 
					 | 
				
			||||||
            </footer></div>';
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        $this->makePdf($header, $footer, $html, $pdf);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        $this->assertTrue(file_exists($pdf));
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        unlink($pdf);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public function testPdfGeneration4()
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        $html = file_get_contents(base_path().'/tests/Pdf/invoice4.html');
 | 
					 | 
				
			||||||
        $pdf = base_path().'/tests/Pdf/invoice4.pdf';
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        $header = '<div style="font-size:14px;"<header></header>';
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        $footer = ' <div style="font-size:14px;"><footer>
 | 
					 | 
				
			||||||
                <span class="pageNumber"></span> / <span class="totalPages"></span>
 | 
					 | 
				
			||||||
            </footer></div>';
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        $this->makePdf($header, $footer, $html, $pdf);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        $this->assertTrue(file_exists($pdf));
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        unlink($pdf);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public function testPdfGeneration5()
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        $html = file_get_contents(base_path().'/tests/Pdf/invoice5.html');
 | 
					 | 
				
			||||||
        $pdf = base_path().'/tests/Pdf/invoice5.pdf';
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        $header = '<div style="font-size:14px;"<header></header>';
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        $footer = ' <div style="font-size:14px;"><footer>
 | 
					 | 
				
			||||||
                <span class="pageNumber"></span> / <span class="totalPages"></span>
 | 
					 | 
				
			||||||
            </footer></div>';
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        $this->makePdf($header, $footer, $html, $pdf);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        $this->assertTrue(file_exists($pdf));
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        unlink($pdf);
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user