Merge branch 'v5-develop' into v5-develop

Signed-off-by: David Bomba <turbo124@gmail.com>
This commit is contained in:
David Bomba 2024-06-22 14:02:11 +10:00 committed by GitHub
commit de79eaa409
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
28 changed files with 298190 additions and 294144 deletions

View File

@ -30,7 +30,7 @@ class ProRata
*/ */
public function refund(float $amount, Carbon $from_date, Carbon $to_date, int $frequency): float public function refund(float $amount, Carbon $from_date, Carbon $to_date, int $frequency): float
{ {
$days = $from_date->copy()->diffInDays($to_date); $days = intval(abs($from_date->copy()->diffInDays($to_date)));
$days_in_frequency = $this->getDaysInFrequency($frequency); $days_in_frequency = $this->getDaysInFrequency($frequency);
return round((($days / $days_in_frequency) * $amount), 2); return round((($days / $days_in_frequency) * $amount), 2);
@ -48,7 +48,7 @@ class ProRata
*/ */
public function charge(float $amount, Carbon $from_date, Carbon $to_date, int $frequency): float public function charge(float $amount, Carbon $from_date, Carbon $to_date, int $frequency): float
{ {
$days = $from_date->copy()->diffInDays($to_date); $days = intval(abs($from_date->copy()->diffInDays($to_date)));
$days_in_frequency = $this->getDaysInFrequency($frequency); $days_in_frequency = $this->getDaysInFrequency($frequency);
return round((($days / $days_in_frequency) * $amount), 2); return round((($days / $days_in_frequency) * $amount), 2);
@ -107,23 +107,23 @@ class ProRata
case RecurringInvoice::FREQUENCY_TWO_WEEKS: case RecurringInvoice::FREQUENCY_TWO_WEEKS:
return 14; return 14;
case RecurringInvoice::FREQUENCY_FOUR_WEEKS: case RecurringInvoice::FREQUENCY_FOUR_WEEKS:
return now()->diffInDays(now()->addWeeks(4)); return intval(abs(now()->diffInDays(now()->addWeeks(4))));
case RecurringInvoice::FREQUENCY_MONTHLY: case RecurringInvoice::FREQUENCY_MONTHLY:
return now()->diffInDays(now()->addMonthNoOverflow()); return intval(abs(now()->diffInDays(now()->addMonthNoOverflow())));
case RecurringInvoice::FREQUENCY_TWO_MONTHS: case RecurringInvoice::FREQUENCY_TWO_MONTHS:
return now()->diffInDays(now()->addMonthsNoOverflow(2)); return intval(abs(now()->diffInDays(now()->addMonthsNoOverflow(2))));
case RecurringInvoice::FREQUENCY_THREE_MONTHS: case RecurringInvoice::FREQUENCY_THREE_MONTHS:
return now()->diffInDays(now()->addMonthsNoOverflow(3)); return intval(abs(now()->diffInDays(now()->addMonthsNoOverflow(3))));
case RecurringInvoice::FREQUENCY_FOUR_MONTHS: case RecurringInvoice::FREQUENCY_FOUR_MONTHS:
return now()->diffInDays(now()->addMonthsNoOverflow(4)); return intval(abs(now()->diffInDays(now()->addMonthsNoOverflow(4))));
case RecurringInvoice::FREQUENCY_SIX_MONTHS: case RecurringInvoice::FREQUENCY_SIX_MONTHS:
return now()->diffInDays(now()->addMonthsNoOverflow(6)); return intval(abs(now()->diffInDays(now()->addMonthsNoOverflow(6))));
case RecurringInvoice::FREQUENCY_ANNUALLY: case RecurringInvoice::FREQUENCY_ANNUALLY:
return now()->diffInDays(now()->addYear()); return intval(abs(now()->diffInDays(now()->addYear())));
case RecurringInvoice::FREQUENCY_TWO_YEARS: case RecurringInvoice::FREQUENCY_TWO_YEARS:
return now()->diffInDays(now()->addYears(2)); return intval(abs(now()->diffInDays(now()->addYears(2))));
case RecurringInvoice::FREQUENCY_THREE_YEARS: case RecurringInvoice::FREQUENCY_THREE_YEARS:
return now()->diffInDays(now()->addYears(3)); return intval(abs(now()->diffInDays(now()->addYears(3))));
default: default:
return 0; return 0;
} }

View File

@ -19,10 +19,12 @@ use App\Http\Requests\Expense\BulkExpenseRequest;
use App\Http\Requests\Expense\CreateExpenseRequest; use App\Http\Requests\Expense\CreateExpenseRequest;
use App\Http\Requests\Expense\DestroyExpenseRequest; use App\Http\Requests\Expense\DestroyExpenseRequest;
use App\Http\Requests\Expense\EditExpenseRequest; use App\Http\Requests\Expense\EditExpenseRequest;
use App\Http\Requests\Expense\EDocumentRequest;
use App\Http\Requests\Expense\ShowExpenseRequest; use App\Http\Requests\Expense\ShowExpenseRequest;
use App\Http\Requests\Expense\StoreExpenseRequest; use App\Http\Requests\Expense\StoreExpenseRequest;
use App\Http\Requests\Expense\UpdateExpenseRequest; use App\Http\Requests\Expense\UpdateExpenseRequest;
use App\Http\Requests\Expense\UploadExpenseRequest; use App\Http\Requests\Expense\UploadExpenseRequest;
use App\Jobs\EDocument\ImportEDocument;
use App\Models\Account; use App\Models\Account;
use App\Models\Expense; use App\Models\Expense;
use App\Repositories\ExpenseRepository; use App\Repositories\ExpenseRepository;
@ -581,4 +583,15 @@ class ExpenseController extends BaseController
return $this->itemResponse($expense->fresh()); return $this->itemResponse($expense->fresh());
} }
public function edocument(EDocumentRequest $request): string
{
if ($request->hasFile("documents")) {
return (new ImportEDocument($request->file("documents")[0]->get(), $request->file("documents")[0]->getClientOriginalName()))->handle();
}
else {
return "No file found";
}
}
} }

View File

@ -0,0 +1,43 @@
<?php
namespace App\Http\Requests\Expense;
use App\Http\Requests\Request;
use App\Models\User;
class EDocumentRequest extends Request
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize(): bool
{
/** @var User $user */
$user = auth()->user();
return $user->isAdmin();
}
public function rules()
{
$rules = [];
if ($this->file('documents') && is_array($this->file('documents'))) {
$rules['documents.*'] = $this->fileValidation();
} elseif ($this->file('documents')) {
$rules['documents'] = $this->fileValidation();
}
return $rules;
}
public function prepareForValidation()
{
$input = $this->all();
$this->replace($input);
}
}

View File

@ -0,0 +1,64 @@
<?php
/**
* Invoice Ninja (https://invoiceninja.com).
*
* @link https://github.com/invoiceninja/invoiceninja source repository
*
* @copyright Copyright (c) 2024. Invoice Ninja LLC (https://invoiceninja.com)
*
* @license https://www.elastic.co/licensing/elastic-license
*/
namespace App\Jobs\EDocument;
use App\Models\Expense;
use App\Services\EDocument\Imports\ZugferdEDocument;
use Exception;
use Illuminate\Bus\Queueable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
class ImportEDocument implements ShouldQueue
{
use Dispatchable;
use InteractsWithQueue;
use Queueable;
use SerializesModels;
public $deleteWhenMissingModels = true;
private string $file_name;
private readonly string $file_content;
public function __construct(string $file_content, string $file_name)
{
$this->file_content = $file_content;
$this->file_name = $file_name;
}
/**
* Execute the job.
*
* @return Expense
* @throws \Exception
*/
public function handle(): Expense
{
if (str_contains($this->file_name, ".xml")){
switch (true) {
case stristr($this->file_content, "urn:cen.eu:en16931:2017"):
case stristr($this->file_content, "urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0"):
case stristr($this->file_content, "urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_2.1"):
case stristr($this->file_content, "urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_2.0"):
return (new ZugferdEDocument($this->file_content, $this->file_name))->run();
default:
throw new Exception("E-Invoice standard not supported");
}
}
else {
throw new Exception("File type not supported");
}
}
}

View File

@ -77,7 +77,7 @@ class RefundCancelledAccount implements ShouldQueue
$end_date = Carbon::parse($plan_expires); $end_date = Carbon::parse($plan_expires);
$now = Carbon::now(); $now = Carbon::now();
$days_left = $now->diffInDays($end_date); $days_left = intval(abs($now->diffInDays($end_date)));
$pro_rata_ratio = $days_left / 365; $pro_rata_ratio = $days_left / 365;

View File

@ -623,7 +623,7 @@ class Account extends BaseModel
$plan_expires = Carbon::parse($this->plan_expires); $plan_expires = Carbon::parse($this->plan_expires);
if ($plan_expires->gt(now())) { if ($plan_expires->gt(now())) {
$diff = $plan_expires->diffInDays(); $diff = intval(abs($plan_expires->diffInDays()));
if ($diff > 14) { if ($diff > 14) {
return 0; return 0;

View File

@ -0,0 +1,129 @@
<?php
/**
* Invoice Ninja (https://invoiceninja.com).
*
* @link https://github.com/invoiceninja/invoiceninja source repository
*
* @copyright Copyright (c) 2024. Invoice Ninja LLC (https://invoiceninja.com)
*
* @license https://www.elastic.co/licensing/elastic-license
*/
namespace App\Services\EDocument\Imports;
use App\Factory\ExpenseFactory;
use App\Factory\VendorFactory;
use App\Jobs\Util\UploadFile;
use App\Models\Country;
use App\Models\Currency;
use App\Models\Expense;
use App\Models\Vendor;
use App\Services\AbstractService;
use App\Utils\TempFile;
use Exception;
use horstoeko\zugferd\ZugferdDocumentReader;
use horstoeko\zugferdvisualizer\renderer\ZugferdVisualizerLaravelRenderer;
use horstoeko\zugferdvisualizer\ZugferdVisualizer;
class ZugferdEDocument extends AbstractService {
public ZugferdDocumentReader|string $document;
/**
* @throws Exception
*/
public function __construct(public string $tempdocument, public string $documentname)
{
# curl -X POST http://localhost:8000/api/v1/edocument/upload -H "Content-Type: multipart/form-data" -H "X-API-TOKEN: 7tdDdkz987H3AYIWhNGXy8jTjJIoDhkAclCDLE26cTCj1KYX7EBHC66VEitJwWhn" -H "X-Requested-With: XMLHttpRequest" -F _method=PUT -F documents[]=@einvoice.xml
}
/**
* @throws Exception
*/
public function run(): Expense
{
$user = auth()->user();
$this->document = ZugferdDocumentReader::readAndGuessFromContent($this->tempdocument);
$this->document->getDocumentInformation($documentno, $documenttypecode, $documentdate, $invoiceCurrency, $taxCurrency, $documentname, $documentlanguage, $effectiveSpecifiedPeriod);
$this->document->getDocumentSummation($grandTotalAmount, $duePayableAmount, $lineTotalAmount, $chargeTotalAmount, $allowanceTotalAmount, $taxBasisTotalAmount, $taxTotalAmount, $roundingAmount, $totalPrepaidAmount);
$expense = Expense::where('amount', $grandTotalAmount)->where("transaction_reference", $documentno)->whereDate("date", $documentdate)->first();
if (empty($expense)) {
// The document does not exist as an expense
// Handle accordingly
$visualizer = new ZugferdVisualizer($this->document);
$visualizer->setDefaultTemplate();
$visualizer->setRenderer(app(ZugferdVisualizerLaravelRenderer::class));
$visualizer->setPdfFontDefault("arial");
$visualizer->setPdfPaperSize('A4-P');
$visualizer->setTemplate('edocument.xinvoice');
$expense = ExpenseFactory::create($user->company()->id, $user->id);
$expense->date = $documentdate;
$expense->user_id = $user->id;
$expense->company_id = $user->company->id;
$expense->public_notes = $documentno;
$expense->currency_id = Currency::whereCode($invoiceCurrency)->first()->id;
$expense->save();
$origin_file = TempFile::UploadedFileFromRaw($this->tempdocument, $this->documentname, "application/xml");
(new UploadFile($origin_file, UploadFile::DOCUMENT, $user, $expense->company, $expense, null, false))->handle();
$uploaded_file = TempFile::UploadedFileFromRaw($visualizer->renderPdf(), $documentno."_visualiser.pdf", "application/pdf");
(new UploadFile($uploaded_file, UploadFile::DOCUMENT, $user, $expense->company, $expense, null, false))->handle();
$expense->save();
if ($taxCurrency && $taxCurrency != $invoiceCurrency) {
$expense->private_notes = ctrans("texts.tax_currency_mismatch");
}
$expense->uses_inclusive_taxes = True;
$expense->amount = $grandTotalAmount;
$counter = 1;
if ($this->document->firstDocumentTax()) {
do {
$this->document->getDocumentTax($categoryCode, $typeCode, $basisAmount, $calculatedAmount, $rateApplicablePercent, $exemptionReason, $exemptionReasonCode, $lineTotalBasisAmount, $allowanceChargeBasisAmount, $taxPointDate, $dueDateTypeCode);
$expense->{"tax_amount$counter"} = $calculatedAmount;
$expense->{"tax_rate$counter"} = $rateApplicablePercent;
$counter++;
} while ($this->document->nextDocumentTax());
}
$this->document->getDocumentSeller($name, $buyer_id, $buyer_description);
$this->document->getDocumentSellerContact($person_name, $person_department, $contact_phone, $contact_fax, $contact_email);
$this->document->getDocumentSellerAddress($address_1, $address_2, $address_3, $postcode, $city, $country, $subdivision);
$this->document->getDocumentSellerTaxRegistration($taxtype);
$taxid = null;
if (array_key_exists("VA", $taxtype)) {
$taxid = $taxtype["VA"];
}
$vendor = Vendor::where('vat_number', $taxid)->first();
if (!empty($vendor)) {
// Vendor found
$expense->vendor_id = $vendor->id;
} else {
$vendor = VendorFactory::create($user->company()->id, $user->id);
$vendor->name = $name;
if ($taxid != null) {
$vendor->vat_number = $taxid;
}
$vendor->currency_id = Currency::whereCode($invoiceCurrency)->first()->id;
$vendor->phone = $contact_phone;
$vendor->address1 = $address_1;
$vendor->address2 = $address_2;
$vendor->city = $city;
$vendor->postal_code = $postcode;
$vendor->country_id = Country::where('iso_3166_2', $country)->first()->id;
$vendor->save();
$expense->vendor_id = $vendor->id;
}
$expense->transaction_reference = $documentno;
}
else {
// The document exists as an expense
// Handle accordingly
nlog("Document already exists");
$expense->private_notes = $expense->private_notes . ctrans("texts.edocument_import_already_exists", ["date" => time()]);
}
$expense->save();
return $expense;
}
}

View File

@ -124,7 +124,7 @@ class ARDetailReport extends BaseExport
$client->present()->name(), $client->present()->name(),
$client->number, $client->number,
$client->id_number, $client->id_number,
Carbon::parse($invoice->due_date)->diffInDays(now()), intval(abs(Carbon::parse($invoice->due_date)->diffInDays(now()))),
Number::formatMoney($invoice->amount, $client), Number::formatMoney($invoice->amount, $client),
Number::formatMoney($invoice->balance, $client), Number::formatMoney($invoice->balance, $client),
]; ];

View File

@ -416,7 +416,7 @@ class SubscriptionService
$current_date = now(); $current_date = now();
$days_of_subscription_used = $start_date->diffInDays($current_date); $days_of_subscription_used = intval(abs($start_date->diffInDays($current_date)));
$days_in_frequency = $this->getDaysInFrequency(); $days_in_frequency = $this->getDaysInFrequency();
@ -441,7 +441,7 @@ class SubscriptionService
$current_date = now(); $current_date = now();
$days_of_subscription_used = $start_date->diffInDays($current_date); $days_of_subscription_used = intval(abs($start_date->diffInDays($current_date)));
if ($subscription) { if ($subscription) {
$days_in_frequency = $subscription->service()->getDaysInFrequency(); $days_in_frequency = $subscription->service()->getDaysInFrequency();
@ -481,7 +481,7 @@ class SubscriptionService
$current_date = now(); $current_date = now();
$days_of_subscription_used = $start_date->diffInDays($current_date); $days_of_subscription_used = intval(abs($start_date->diffInDays($current_date)));
$days_in_frequency = $invoice->subscription->service()->getDaysInFrequency(); $days_in_frequency = $invoice->subscription->service()->getDaysInFrequency();
@ -543,7 +543,7 @@ class SubscriptionService
$current_date = now(); $current_date = now();
$days_to_charge = $start_date->diffInDays($current_date); $days_to_charge = intval(abs($start_date->diffInDays($current_date)));
$days_in_frequency = $this->getDaysInFrequency(); $days_in_frequency = $this->getDaysInFrequency();
@ -1363,23 +1363,23 @@ class SubscriptionService
case RecurringInvoice::FREQUENCY_TWO_WEEKS: case RecurringInvoice::FREQUENCY_TWO_WEEKS:
return 14; return 14;
case RecurringInvoice::FREQUENCY_FOUR_WEEKS: case RecurringInvoice::FREQUENCY_FOUR_WEEKS:
return now()->diffInDays(now()->addWeeks(4)); return intval(abs(now()->diffInDays(now()->addWeeks(4))));
case RecurringInvoice::FREQUENCY_MONTHLY: case RecurringInvoice::FREQUENCY_MONTHLY:
return now()->diffInDays(now()->addMonthNoOverflow()); return intval(abs(now()->diffInDays(now()->addMonthNoOverflow())));
case RecurringInvoice::FREQUENCY_TWO_MONTHS: case RecurringInvoice::FREQUENCY_TWO_MONTHS:
return now()->diffInDays(now()->addMonthsNoOverflow(2)); return intval(abs(now()->diffInDays(now()->addMonthsNoOverflow(2))));
case RecurringInvoice::FREQUENCY_THREE_MONTHS: case RecurringInvoice::FREQUENCY_THREE_MONTHS:
return now()->diffInDays(now()->addMonthsNoOverflow(3)); return intval(abs(now()->diffInDays(now()->addMonthsNoOverflow(3))));
case RecurringInvoice::FREQUENCY_FOUR_MONTHS: case RecurringInvoice::FREQUENCY_FOUR_MONTHS:
return now()->diffInDays(now()->addMonthsNoOverflow(4)); return intval(abs(now()->diffInDays(now()->addMonthsNoOverflow(4))));
case RecurringInvoice::FREQUENCY_SIX_MONTHS: case RecurringInvoice::FREQUENCY_SIX_MONTHS:
return now()->diffInDays(now()->addMonthsNoOverflow(6)); return intval(abs(now()->diffInDays(now()->addMonthsNoOverflow(6))));
case RecurringInvoice::FREQUENCY_ANNUALLY: case RecurringInvoice::FREQUENCY_ANNUALLY:
return now()->diffInDays(now()->addYear()); return intval(abs(now()->diffInDays(now()->addYear())));
case RecurringInvoice::FREQUENCY_TWO_YEARS: case RecurringInvoice::FREQUENCY_TWO_YEARS:
return now()->diffInDays(now()->addYears(2)); return intval(abs(now()->diffInDays(now()->addYears(2))));
case RecurringInvoice::FREQUENCY_THREE_YEARS: case RecurringInvoice::FREQUENCY_THREE_YEARS:
return now()->diffInDays(now()->addYears(3)); return intval(abs(now()->diffInDays(now()->addYears(3))));
default: default:
return 0; return 0;
} }

View File

@ -101,7 +101,7 @@ class SubscriptionStatus extends AbstractService
$subscription_start_date = Carbon::parse($primary_invoice->date)->startOfDay(); $subscription_start_date = Carbon::parse($primary_invoice->date)->startOfDay();
$days_of_subscription_used = $subscription_start_date->copy()->diffInDays(now()); $days_of_subscription_used = intval(abs($subscription_start_date->copy()->diffInDays(now())));
return 1 - ($days_of_subscription_used / $this->recurring_invoice->subscription->service()->getDaysInFrequency()); return 1 - ($days_of_subscription_used / $this->recurring_invoice->subscription->service()->getDaysInFrequency());

View File

@ -58,7 +58,7 @@ trait HasRecurrence
//If the set date is less than the original date we need to add a month. //If the set date is less than the original date we need to add a month.
//If we are overflowing dates, then we need to diff the dates and ensure it doesn't equal 0 //If we are overflowing dates, then we need to diff the dates and ensure it doesn't equal 0
if ($set_date->lte($date) || $set_date->diffInDays($carbon_date) == 0) { if ($set_date->lte($date) || intval(abs($set_date->diffInDays($carbon_date))) == 0) {
$set_date->addMonthNoOverflow(); $set_date->addMonthNoOverflow();
} }

View File

@ -35,16 +35,17 @@
"ext-dom": "*", "ext-dom": "*",
"ext-json": "*", "ext-json": "*",
"ext-libxml": "*", "ext-libxml": "*",
"ext-curl": "*",
"afosto/yaac": "^1.4", "afosto/yaac": "^1.4",
"asm/php-ansible": "^4.0", "asm/php-ansible": "dev-main",
"authorizenet/authorizenet": "^2.0", "authorizenet/authorizenet": "^2.0",
"awobaz/compoships": "^2.1", "awobaz/compoships": "^2.1",
"bacon/bacon-qr-code": "^2.0", "bacon/bacon-qr-code": "^2.0",
"beganovich/snappdf": "^4", "beganovich/snappdf": "^5",
"braintree/braintree_php": "^6.0", "braintree/braintree_php": "^6.0",
"btcpayserver/btcpayserver-greenfield-php": "^2.6", "btcpayserver/btcpayserver-greenfield-php": "^2.6",
"checkout/checkout-sdk-php": "^3.0", "checkout/checkout-sdk-php": "^3.0",
"doctrine/dbal": "^3.0", "doctrine/dbal": "^4.0",
"eway/eway-rapid-php": "^1.3", "eway/eway-rapid-php": "^1.3",
"fakerphp/faker": "^1.14", "fakerphp/faker": "^1.14",
"getbrevo/brevo-php": "^1.0", "getbrevo/brevo-php": "^1.0",
@ -53,19 +54,20 @@
"guzzlehttp/guzzle": "^7.2", "guzzlehttp/guzzle": "^7.2",
"halaxa/json-machine": "^0.7.0", "halaxa/json-machine": "^0.7.0",
"hashids/hashids": "^4.0", "hashids/hashids": "^4.0",
"hedii/laravel-gelf-logger": "^8", "hedii/laravel-gelf-logger": "^9",
"horstoeko/orderx": "dev-master", "horstoeko/orderx": "dev-master",
"horstoeko/zugferd": "^1", "horstoeko/zugferd": "^1",
"horstoeko/zugferdvisualizer":"^1",
"hyvor/php-json-exporter": "^0.0.3", "hyvor/php-json-exporter": "^0.0.3",
"imdhemy/laravel-purchases": "^1.7", "imdhemy/laravel-purchases": "^1.7",
"intervention/image": "^2.5", "intervention/image": "^2.5",
"invoiceninja/inspector": "^3.0",
"invoiceninja/einvoice": "dev-main", "invoiceninja/einvoice": "dev-main",
"invoiceninja/inspector": "^2.0",
"invoiceninja/ubl_invoice": "^2", "invoiceninja/ubl_invoice": "^2",
"josemmo/facturae-php": "^1.7", "josemmo/facturae-php": "^1.7",
"laracasts/presenter": "^0.2.1", "laracasts/presenter": "^0.2.1",
"laravel/framework": "^10", "laravel/framework": "^11.0",
"laravel/slack-notification-channel": "^2.2", "laravel/slack-notification-channel": "^3",
"laravel/socialite": "^5", "laravel/socialite": "^5",
"laravel/tinker": "^2.7", "laravel/tinker": "^2.7",
"laravel/ui": "^4.0", "laravel/ui": "^4.0",
@ -86,7 +88,7 @@
"psr/http-message": "^1.0", "psr/http-message": "^1.0",
"pusher/pusher-php-server": "^7.2", "pusher/pusher-php-server": "^7.2",
"razorpay/razorpay": "2.*", "razorpay/razorpay": "2.*",
"sentry/sentry-laravel": "^3", "sentry/sentry-laravel": "^4",
"setasign/fpdf": "^1.8", "setasign/fpdf": "^1.8",
"setasign/fpdi": "^2.3", "setasign/fpdi": "^2.3",
"socialiteproviders/apple": "dev-master", "socialiteproviders/apple": "dev-master",
@ -98,25 +100,23 @@
"symfony/http-client": "^6.0", "symfony/http-client": "^6.0",
"symfony/mailgun-mailer": "^6.1", "symfony/mailgun-mailer": "^6.1",
"symfony/postmark-mailer": "^6.1", "symfony/postmark-mailer": "^6.1",
"turbo124/beacon": "^1.5", "turbo124/beacon": "^2.0",
"twig/intl-extra": "^3.7", "twig/intl-extra": "^3.7",
"twig/twig": "^3", "twig/twig": "^3",
"twilio/sdk": "^6.40", "twilio/sdk": "^6.40",
"wildbit/postmark-php": "^4.0" "wildbit/postmark-php": "^4.0"
}, },
"require-dev": { "require-dev": {
"php": "^8.2",
"barryvdh/laravel-debugbar": "^3.6", "barryvdh/laravel-debugbar": "^3.6",
"barryvdh/laravel-ide-helper": "^2.13", "barryvdh/laravel-ide-helper": "^3.0",
"beyondcode/laravel-query-detector": "^1.8",
"brianium/paratest": "^7", "brianium/paratest": "^7",
"filp/whoops": "^2.7", "filp/whoops": "^2.7",
"friendsofphp/php-cs-fixer": "^3.14", "friendsofphp/php-cs-fixer": "^3.14",
"laracasts/cypress": "^3.0", "laracasts/cypress": "^3.0",
"larastan/larastan": "^2", "larastan/larastan": "^2",
"mockery/mockery": "^1.4.4", "mockery/mockery": "^1.4.4",
"nunomaduro/collision": "^7.0", "nunomaduro/collision": "^8.1",
"phpstan/phpstan": "^1.11", "phpstan/phpstan": "^1.9",
"phpunit/phpunit": "^10", "phpunit/phpunit": "^10",
"spatie/laravel-ignition": "^2.0", "spatie/laravel-ignition": "^2.0",
"spaze/phpstan-stripe": "^3.0" "spaze/phpstan-stripe": "^3.0"
@ -185,6 +185,10 @@
{ {
"type": "vcs", "type": "vcs",
"url": "https://github.com/turbo124/orderx" "url": "https://github.com/turbo124/orderx"
},
{
"type": "vcs",
"url": "https://github.com/beganovich/php-ansible"
} }
], ],
"minimum-stability": "dev", "minimum-stability": "dev",

1969
composer.lock generated

File diff suppressed because it is too large Load Diff

View File

@ -49,4 +49,5 @@ return [
'time' => 4, 'time' => 4,
], ],
'rehash_on_login' => false,
]; ];

View File

@ -1,70 +0,0 @@
<?php
return [
/*
* Enable or disable the query detection.
* If this is set to "null", the app.debug config value will be used.
*/
'enabled' => env('QUERY_DETECTOR_ENABLED', false),
/*
* Threshold level for the N+1 query detection. If a relation query will be
* executed more then this amount, the detector will notify you about it.
*/
'threshold' => (int) env('QUERY_DETECTOR_THRESHOLD', 3),
/*
* Here you can whitelist model relations.
*
* Right now, you need to define the model relation both as the class name and the attribute name on the model.
* So if an "Author" model would have a "posts" relation that points to a "Post" class, you need to add both
* the "posts" attribute and the "Post::class", since the relation can get resolved in multiple ways.
*/
'except' => [
//Author::class => [
// Post::class,
// 'posts',
//]
],
/*
* Here you can set a specific log channel to write to
* in case you are trying to isolate queries or have a lot
* going on in the laravel.log. Defaults to laravel.log though.
*/
'log_channel' => env('QUERY_DETECTOR_LOG_CHANNEL', 'daily'),
/*
* Define the output format that you want to use. Multiple classes are supported.
* Available options are:
*
* Alert:
* Displays an alert on the website
* \BeyondCode\QueryDetector\Outputs\Alert::class
*
* Console:
* Writes the N+1 queries into your browsers console log
* \BeyondCode\QueryDetector\Outputs\Console::class
*
* Clockwork: (make sure you have the itsgoingd/clockwork package installed)
* Writes the N+1 queries warnings to Clockwork log
* \BeyondCode\QueryDetector\Outputs\Clockwork::class
*
* Debugbar: (make sure you have the barryvdh/laravel-debugbar package installed)
* Writes the N+1 queries into a custom messages collector of Debugbar
* \BeyondCode\QueryDetector\Outputs\Debugbar::class
*
* JSON:
* Writes the N+1 queries into the response body of your JSON responses
* \BeyondCode\QueryDetector\Outputs\Json::class
*
* Log:
* Writes the N+1 queries into the Laravel.log file
* \BeyondCode\QueryDetector\Outputs\Log::class
*/
'output' => [
//\BeyondCode\QueryDetector\Outputs\Alert::class,
\BeyondCode\QueryDetector\Outputs\Log::class,
//\BeyondCode\QueryDetector\Outputs\Json::class,
],
];

View File

@ -49,6 +49,7 @@ CREATE TABLE `accounts` (
`account_sms_verified` tinyint(1) NOT NULL DEFAULT 0, `account_sms_verified` tinyint(1) NOT NULL DEFAULT 0,
`bank_integration_account_id` text DEFAULT NULL, `bank_integration_account_id` text DEFAULT NULL,
`is_trial` tinyint(1) NOT NULL DEFAULT 0, `is_trial` tinyint(1) NOT NULL DEFAULT 0,
`email_quota` int(11) DEFAULT 20,
PRIMARY KEY (`id`), PRIMARY KEY (`id`),
KEY `accounts_payment_id_index` (`payment_id`), KEY `accounts_payment_id_index` (`payment_id`),
KEY `accounts_key_index` (`key`) KEY `accounts_key_index` (`key`)
@ -169,6 +170,9 @@ CREATE TABLE `bank_integrations` (
`deleted_at` timestamp(6) NULL DEFAULT NULL, `deleted_at` timestamp(6) NULL DEFAULT NULL,
`disabled_upstream` tinyint(1) NOT NULL DEFAULT 0, `disabled_upstream` tinyint(1) NOT NULL DEFAULT 0,
`auto_sync` tinyint(1) NOT NULL DEFAULT 0, `auto_sync` tinyint(1) NOT NULL DEFAULT 0,
`integration_type` varchar(191) DEFAULT NULL,
`nordigen_account_id` varchar(191) DEFAULT NULL,
`nordigen_institution_id` varchar(191) DEFAULT NULL,
PRIMARY KEY (`id`), PRIMARY KEY (`id`),
KEY `bank_integrations_user_id_foreign` (`user_id`), KEY `bank_integrations_user_id_foreign` (`user_id`),
KEY `bank_integrations_account_id_foreign` (`account_id`), KEY `bank_integrations_account_id_foreign` (`account_id`),
@ -248,7 +252,7 @@ CREATE TABLE `bank_transactions` (
`bank_account_id` bigint(20) unsigned NOT NULL, `bank_account_id` bigint(20) unsigned NOT NULL,
`description` text DEFAULT NULL, `description` text DEFAULT NULL,
`invoice_ids` text NOT NULL DEFAULT '', `invoice_ids` text NOT NULL DEFAULT '',
`expense_id` int(10) unsigned DEFAULT NULL, `expense_id` text DEFAULT '',
`vendor_id` int(10) unsigned DEFAULT NULL, `vendor_id` int(10) unsigned DEFAULT NULL,
`status_id` int(10) unsigned NOT NULL DEFAULT 1, `status_id` int(10) unsigned NOT NULL DEFAULT 1,
`is_deleted` tinyint(1) NOT NULL DEFAULT 0, `is_deleted` tinyint(1) NOT NULL DEFAULT 0,
@ -257,6 +261,9 @@ CREATE TABLE `bank_transactions` (
`deleted_at` timestamp(6) NULL DEFAULT NULL, `deleted_at` timestamp(6) NULL DEFAULT NULL,
`bank_transaction_rule_id` bigint(20) DEFAULT NULL, `bank_transaction_rule_id` bigint(20) DEFAULT NULL,
`payment_id` int(10) unsigned DEFAULT NULL, `payment_id` int(10) unsigned DEFAULT NULL,
`participant` varchar(191) DEFAULT NULL,
`participant_name` varchar(191) DEFAULT NULL,
`nordigen_transaction_id` text DEFAULT NULL,
PRIMARY KEY (`id`), PRIMARY KEY (`id`),
KEY `bank_transactions_bank_integration_id_foreign` (`bank_integration_id`), KEY `bank_transactions_bank_integration_id_foreign` (`bank_integration_id`),
KEY `bank_transactions_user_id_foreign` (`user_id`), KEY `bank_transactions_user_id_foreign` (`user_id`),
@ -433,6 +440,12 @@ CREATE TABLE `clients` (
`updated_at` timestamp(6) NULL DEFAULT NULL, `updated_at` timestamp(6) NULL DEFAULT NULL,
`deleted_at` timestamp(6) NULL DEFAULT NULL, `deleted_at` timestamp(6) NULL DEFAULT NULL,
`id_number` varchar(191) DEFAULT NULL, `id_number` varchar(191) DEFAULT NULL,
`payment_balance` decimal(20,6) NOT NULL DEFAULT 0.000000,
`routing_id` varchar(191) DEFAULT NULL,
`tax_data` mediumtext DEFAULT NULL,
`is_tax_exempt` tinyint(1) NOT NULL DEFAULT 0,
`has_valid_vat_number` tinyint(1) NOT NULL DEFAULT 0,
`classification` varchar(191) DEFAULT NULL,
PRIMARY KEY (`id`), PRIMARY KEY (`id`),
UNIQUE KEY `clients_company_id_number_unique` (`company_id`,`number`), UNIQUE KEY `clients_company_id_number_unique` (`company_id`,`number`),
KEY `clients_company_id_deleted_at_index` (`company_id`,`deleted_at`), KEY `clients_company_id_deleted_at_index` (`company_id`,`deleted_at`),
@ -527,6 +540,23 @@ CREATE TABLE `companies` (
`convert_expense_currency` tinyint(1) NOT NULL DEFAULT 0, `convert_expense_currency` tinyint(1) NOT NULL DEFAULT 0,
`notify_vendor_when_paid` tinyint(1) NOT NULL DEFAULT 0, `notify_vendor_when_paid` tinyint(1) NOT NULL DEFAULT 0,
`invoice_task_hours` tinyint(1) NOT NULL DEFAULT 0, `invoice_task_hours` tinyint(1) NOT NULL DEFAULT 0,
`calculate_taxes` tinyint(1) NOT NULL DEFAULT 0,
`tax_data` mediumtext DEFAULT NULL,
`shopify_name` varchar(191) DEFAULT NULL,
`shopify_access_token` varchar(191) DEFAULT NULL,
`e_invoice_certificate` text DEFAULT NULL,
`e_invoice_certificate_passphrase` text DEFAULT NULL,
`origin_tax_data` text DEFAULT NULL,
`invoice_task_project_header` tinyint(1) NOT NULL DEFAULT 1,
`invoice_task_item_description` tinyint(1) NOT NULL DEFAULT 1,
`smtp_host` varchar(191) DEFAULT NULL,
`smtp_port` int(10) unsigned DEFAULT NULL,
`smtp_encryption` varchar(191) DEFAULT NULL,
`smtp_username` text DEFAULT NULL,
`smtp_password` text DEFAULT NULL,
`smtp_local_domain` varchar(191) DEFAULT NULL,
`smtp_verify_peer` tinyint(1) NOT NULL DEFAULT 1,
`e_invoice` mediumtext DEFAULT NULL,
PRIMARY KEY (`id`), PRIMARY KEY (`id`),
UNIQUE KEY `companies_company_key_unique` (`company_key`), UNIQUE KEY `companies_company_key_unique` (`company_key`),
KEY `companies_industry_id_foreign` (`industry_id`), KEY `companies_industry_id_foreign` (`industry_id`),
@ -535,6 +565,8 @@ CREATE TABLE `companies` (
KEY `companies_subdomain_portal_mode_index` (`subdomain`,`portal_mode`), KEY `companies_subdomain_portal_mode_index` (`subdomain`,`portal_mode`),
KEY `companies_portal_domain_portal_mode_index` (`portal_domain`,`portal_mode`), KEY `companies_portal_domain_portal_mode_index` (`portal_domain`,`portal_mode`),
KEY `companies_company_key_index` (`company_key`), KEY `companies_company_key_index` (`company_key`),
KEY `companies_shopify_name_index` (`shopify_name`),
KEY `companies_shopify_access_token_index` (`shopify_access_token`),
CONSTRAINT `companies_account_id_foreign` FOREIGN KEY (`account_id`) REFERENCES `accounts` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `companies_account_id_foreign` FOREIGN KEY (`account_id`) REFERENCES `accounts` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `companies_industry_id_foreign` FOREIGN KEY (`industry_id`) REFERENCES `industries` (`id`), CONSTRAINT `companies_industry_id_foreign` FOREIGN KEY (`industry_id`) REFERENCES `industries` (`id`),
CONSTRAINT `companies_size_id_foreign` FOREIGN KEY (`size_id`) REFERENCES `sizes` (`id`) CONSTRAINT `companies_size_id_foreign` FOREIGN KEY (`size_id`) REFERENCES `sizes` (`id`)
@ -570,6 +602,11 @@ CREATE TABLE `company_gateways` (
`require_client_phone` tinyint(1) NOT NULL DEFAULT 0, `require_client_phone` tinyint(1) NOT NULL DEFAULT 0,
`require_contact_name` tinyint(1) NOT NULL DEFAULT 0, `require_contact_name` tinyint(1) NOT NULL DEFAULT 0,
`require_contact_email` tinyint(1) NOT NULL DEFAULT 0, `require_contact_email` tinyint(1) NOT NULL DEFAULT 0,
`require_custom_value1` tinyint(1) NOT NULL DEFAULT 0,
`require_custom_value2` tinyint(1) NOT NULL DEFAULT 0,
`require_custom_value3` tinyint(1) NOT NULL DEFAULT 0,
`require_custom_value4` tinyint(1) NOT NULL DEFAULT 0,
`always_show_required_fields` tinyint(1) NOT NULL DEFAULT 1,
PRIMARY KEY (`id`), PRIMARY KEY (`id`),
KEY `company_gateways_company_id_deleted_at_index` (`company_id`,`deleted_at`), KEY `company_gateways_company_id_deleted_at_index` (`company_id`,`deleted_at`),
KEY `company_gateways_gateway_key_foreign` (`gateway_key`), KEY `company_gateways_gateway_key_foreign` (`gateway_key`),
@ -649,6 +686,7 @@ CREATE TABLE `company_user` (
`updated_at` timestamp(6) NULL DEFAULT NULL, `updated_at` timestamp(6) NULL DEFAULT NULL,
`permissions_updated_at` timestamp NOT NULL DEFAULT current_timestamp(), `permissions_updated_at` timestamp NOT NULL DEFAULT current_timestamp(),
`ninja_portal_url` text NOT NULL DEFAULT '', `ninja_portal_url` text NOT NULL DEFAULT '',
`react_settings` mediumtext DEFAULT NULL,
PRIMARY KEY (`id`), PRIMARY KEY (`id`),
UNIQUE KEY `company_user_company_id_user_id_unique` (`company_id`,`user_id`), UNIQUE KEY `company_user_company_id_user_id_unique` (`company_id`,`user_id`),
KEY `company_user_account_id_company_id_deleted_at_index` (`account_id`,`company_id`,`deleted_at`), KEY `company_user_account_id_company_id_deleted_at_index` (`account_id`,`company_id`,`deleted_at`),
@ -735,7 +773,7 @@ CREATE TABLE `credits` (
`design_id` int(10) unsigned DEFAULT NULL, `design_id` int(10) unsigned DEFAULT NULL,
`invoice_id` int(10) unsigned DEFAULT NULL, `invoice_id` int(10) unsigned DEFAULT NULL,
`number` varchar(191) DEFAULT NULL, `number` varchar(191) DEFAULT NULL,
`discount` double(8,2) NOT NULL DEFAULT 0.00, `discount` decimal(20,6) NOT NULL DEFAULT 0.000000,
`is_amount_discount` tinyint(1) NOT NULL DEFAULT 0, `is_amount_discount` tinyint(1) NOT NULL DEFAULT 0,
`po_number` varchar(191) DEFAULT NULL, `po_number` varchar(191) DEFAULT NULL,
`date` date DEFAULT NULL, `date` date DEFAULT NULL,
@ -784,6 +822,8 @@ CREATE TABLE `credits` (
`reminder_last_sent` date DEFAULT NULL, `reminder_last_sent` date DEFAULT NULL,
`paid_to_date` decimal(20,6) NOT NULL DEFAULT 0.000000, `paid_to_date` decimal(20,6) NOT NULL DEFAULT 0.000000,
`subscription_id` int(10) unsigned DEFAULT NULL, `subscription_id` int(10) unsigned DEFAULT NULL,
`tax_data` mediumtext DEFAULT NULL,
`e_invoice` mediumtext DEFAULT NULL,
PRIMARY KEY (`id`), PRIMARY KEY (`id`),
UNIQUE KEY `credits_company_id_number_unique` (`company_id`,`number`), UNIQUE KEY `credits_company_id_number_unique` (`company_id`,`number`),
KEY `credits_user_id_foreign` (`user_id`), KEY `credits_user_id_foreign` (`user_id`),
@ -848,6 +888,8 @@ CREATE TABLE `designs` (
`created_at` timestamp(6) NULL DEFAULT NULL, `created_at` timestamp(6) NULL DEFAULT NULL,
`updated_at` timestamp(6) NULL DEFAULT NULL, `updated_at` timestamp(6) NULL DEFAULT NULL,
`deleted_at` timestamp(6) NULL DEFAULT NULL, `deleted_at` timestamp(6) NULL DEFAULT NULL,
`is_template` tinyint(1) NOT NULL DEFAULT 0,
`entities` text DEFAULT NULL,
PRIMARY KEY (`id`), PRIMARY KEY (`id`),
KEY `designs_company_id_deleted_at_index` (`company_id`,`deleted_at`), KEY `designs_company_id_deleted_at_index` (`company_id`,`deleted_at`),
KEY `designs_company_id_index` (`company_id`), KEY `designs_company_id_index` (`company_id`),
@ -959,6 +1001,7 @@ CREATE TABLE `expenses` (
`tax_amount3` decimal(20,6) NOT NULL DEFAULT 1.000000, `tax_amount3` decimal(20,6) NOT NULL DEFAULT 1.000000,
`uses_inclusive_taxes` tinyint(1) NOT NULL DEFAULT 0, `uses_inclusive_taxes` tinyint(1) NOT NULL DEFAULT 0,
`calculate_tax_by_amount` tinyint(1) NOT NULL DEFAULT 0, `calculate_tax_by_amount` tinyint(1) NOT NULL DEFAULT 0,
`e_invoice` mediumtext DEFAULT NULL,
PRIMARY KEY (`id`), PRIMARY KEY (`id`),
UNIQUE KEY `expenses_company_id_number_unique` (`company_id`,`number`), UNIQUE KEY `expenses_company_id_number_unique` (`company_id`,`number`),
KEY `expenses_company_id_deleted_at_index` (`company_id`,`deleted_at`), KEY `expenses_company_id_deleted_at_index` (`company_id`,`deleted_at`),
@ -1095,7 +1138,7 @@ CREATE TABLE `invoices` (
`recurring_id` int(10) unsigned DEFAULT NULL, `recurring_id` int(10) unsigned DEFAULT NULL,
`design_id` int(10) unsigned DEFAULT NULL, `design_id` int(10) unsigned DEFAULT NULL,
`number` varchar(191) DEFAULT NULL, `number` varchar(191) DEFAULT NULL,
`discount` double(8,2) NOT NULL DEFAULT 0.00, `discount` decimal(20,6) NOT NULL DEFAULT 0.000000,
`is_amount_discount` tinyint(1) NOT NULL DEFAULT 0, `is_amount_discount` tinyint(1) NOT NULL DEFAULT 0,
`po_number` varchar(191) DEFAULT NULL, `po_number` varchar(191) DEFAULT NULL,
`date` date DEFAULT NULL, `date` date DEFAULT NULL,
@ -1147,6 +1190,8 @@ CREATE TABLE `invoices` (
`subscription_id` int(10) unsigned DEFAULT NULL, `subscription_id` int(10) unsigned DEFAULT NULL,
`auto_bill_tries` smallint(6) NOT NULL DEFAULT 0, `auto_bill_tries` smallint(6) NOT NULL DEFAULT 0,
`is_proforma` tinyint(1) NOT NULL DEFAULT 0, `is_proforma` tinyint(1) NOT NULL DEFAULT 0,
`tax_data` mediumtext DEFAULT NULL,
`e_invoice` mediumtext DEFAULT NULL,
PRIMARY KEY (`id`), PRIMARY KEY (`id`),
UNIQUE KEY `invoices_company_id_number_unique` (`company_id`,`number`), UNIQUE KEY `invoices_company_id_number_unique` (`company_id`,`number`),
KEY `invoices_user_id_foreign` (`user_id`), KEY `invoices_user_id_foreign` (`user_id`),
@ -1344,6 +1389,8 @@ CREATE TABLE `payments` (
`custom_value4` text DEFAULT NULL, `custom_value4` text DEFAULT NULL,
`transaction_id` bigint(20) unsigned DEFAULT NULL, `transaction_id` bigint(20) unsigned DEFAULT NULL,
`idempotency_key` varchar(64) DEFAULT NULL, `idempotency_key` varchar(64) DEFAULT NULL,
`refund_meta` text DEFAULT NULL,
`category_id` int(10) unsigned DEFAULT NULL,
PRIMARY KEY (`id`), PRIMARY KEY (`id`),
UNIQUE KEY `payments_company_id_number_unique` (`company_id`,`number`), UNIQUE KEY `payments_company_id_number_unique` (`company_id`,`number`),
UNIQUE KEY `payments_company_id_idempotency_key_unique` (`company_id`,`idempotency_key`), UNIQUE KEY `payments_company_id_idempotency_key_unique` (`company_id`,`idempotency_key`),
@ -1395,6 +1442,9 @@ CREATE TABLE `products` (
`in_stock_quantity` int(11) NOT NULL DEFAULT 0, `in_stock_quantity` int(11) NOT NULL DEFAULT 0,
`stock_notification` tinyint(1) NOT NULL DEFAULT 1, `stock_notification` tinyint(1) NOT NULL DEFAULT 1,
`stock_notification_threshold` int(11) NOT NULL DEFAULT 0, `stock_notification_threshold` int(11) NOT NULL DEFAULT 0,
`max_quantity` int(10) unsigned DEFAULT NULL,
`product_image` varchar(191) DEFAULT NULL,
`tax_id` int(10) unsigned DEFAULT NULL,
PRIMARY KEY (`id`), PRIMARY KEY (`id`),
KEY `products_company_id_deleted_at_index` (`company_id`,`deleted_at`), KEY `products_company_id_deleted_at_index` (`company_id`,`deleted_at`),
KEY `products_user_id_foreign` (`user_id`), KEY `products_user_id_foreign` (`user_id`),
@ -1430,6 +1480,7 @@ CREATE TABLE `projects` (
`is_deleted` tinyint(1) NOT NULL DEFAULT 0, `is_deleted` tinyint(1) NOT NULL DEFAULT 0,
`number` varchar(191) DEFAULT NULL, `number` varchar(191) DEFAULT NULL,
`color` varchar(191) NOT NULL DEFAULT '#fff', `color` varchar(191) NOT NULL DEFAULT '#fff',
`current_hours` int(10) unsigned DEFAULT NULL,
PRIMARY KEY (`id`), PRIMARY KEY (`id`),
UNIQUE KEY `projects_company_id_number_unique` (`company_id`,`number`), UNIQUE KEY `projects_company_id_number_unique` (`company_id`,`number`),
KEY `projects_user_id_foreign` (`user_id`), KEY `projects_user_id_foreign` (`user_id`),
@ -1461,6 +1512,7 @@ CREATE TABLE `purchase_order_invitations` (
`updated_at` timestamp(6) NULL DEFAULT NULL, `updated_at` timestamp(6) NULL DEFAULT NULL,
`deleted_at` timestamp(6) NULL DEFAULT NULL, `deleted_at` timestamp(6) NULL DEFAULT NULL,
`email_status` enum('delivered','bounced','spam') DEFAULT NULL, `email_status` enum('delivered','bounced','spam') DEFAULT NULL,
`signature_ip` text DEFAULT NULL,
PRIMARY KEY (`id`), PRIMARY KEY (`id`),
UNIQUE KEY `vendor_purchase_unique` (`vendor_contact_id`,`purchase_order_id`), UNIQUE KEY `vendor_purchase_unique` (`vendor_contact_id`,`purchase_order_id`),
KEY `purchase_order_invitations_user_id_foreign` (`user_id`), KEY `purchase_order_invitations_user_id_foreign` (`user_id`),
@ -1491,7 +1543,7 @@ CREATE TABLE `purchase_orders` (
`design_id` int(10) unsigned DEFAULT NULL, `design_id` int(10) unsigned DEFAULT NULL,
`invoice_id` int(10) unsigned DEFAULT NULL, `invoice_id` int(10) unsigned DEFAULT NULL,
`number` varchar(191) DEFAULT NULL, `number` varchar(191) DEFAULT NULL,
`discount` double(8,2) NOT NULL DEFAULT 0.00, `discount` decimal(20,6) NOT NULL DEFAULT 0.000000,
`is_amount_discount` tinyint(1) NOT NULL DEFAULT 0, `is_amount_discount` tinyint(1) NOT NULL DEFAULT 0,
`po_number` varchar(191) DEFAULT NULL, `po_number` varchar(191) DEFAULT NULL,
`date` date DEFAULT NULL, `date` date DEFAULT NULL,
@ -1541,6 +1593,8 @@ CREATE TABLE `purchase_orders` (
`updated_at` timestamp NULL DEFAULT NULL, `updated_at` timestamp NULL DEFAULT NULL,
`expense_id` int(10) unsigned DEFAULT NULL, `expense_id` int(10) unsigned DEFAULT NULL,
`currency_id` int(10) unsigned DEFAULT NULL, `currency_id` int(10) unsigned DEFAULT NULL,
`tax_data` mediumtext DEFAULT NULL,
`e_invoice` mediumtext DEFAULT NULL,
PRIMARY KEY (`id`), PRIMARY KEY (`id`),
KEY `purchase_orders_user_id_foreign` (`user_id`), KEY `purchase_orders_user_id_foreign` (`user_id`),
KEY `purchase_orders_company_id_deleted_at_index` (`company_id`,`deleted_at`), KEY `purchase_orders_company_id_deleted_at_index` (`company_id`,`deleted_at`),
@ -1605,7 +1659,7 @@ CREATE TABLE `quotes` (
`design_id` int(10) unsigned DEFAULT NULL, `design_id` int(10) unsigned DEFAULT NULL,
`invoice_id` int(10) unsigned DEFAULT NULL, `invoice_id` int(10) unsigned DEFAULT NULL,
`number` varchar(191) DEFAULT NULL, `number` varchar(191) DEFAULT NULL,
`discount` double(8,2) NOT NULL DEFAULT 0.00, `discount` decimal(20,6) NOT NULL DEFAULT 0.000000,
`is_amount_discount` tinyint(1) NOT NULL DEFAULT 0, `is_amount_discount` tinyint(1) NOT NULL DEFAULT 0,
`po_number` varchar(191) DEFAULT NULL, `po_number` varchar(191) DEFAULT NULL,
`date` date DEFAULT NULL, `date` date DEFAULT NULL,
@ -1654,6 +1708,8 @@ CREATE TABLE `quotes` (
`reminder_last_sent` date DEFAULT NULL, `reminder_last_sent` date DEFAULT NULL,
`paid_to_date` decimal(20,6) NOT NULL DEFAULT 0.000000, `paid_to_date` decimal(20,6) NOT NULL DEFAULT 0.000000,
`subscription_id` int(10) unsigned DEFAULT NULL, `subscription_id` int(10) unsigned DEFAULT NULL,
`tax_data` mediumtext DEFAULT NULL,
`e_invoice` mediumtext DEFAULT NULL,
PRIMARY KEY (`id`), PRIMARY KEY (`id`),
UNIQUE KEY `quotes_company_id_number_unique` (`company_id`,`number`), UNIQUE KEY `quotes_company_id_number_unique` (`company_id`,`number`),
KEY `quotes_user_id_foreign` (`user_id`), KEY `quotes_user_id_foreign` (`user_id`),
@ -1778,7 +1834,7 @@ CREATE TABLE `recurring_invoices` (
`vendor_id` int(10) unsigned DEFAULT NULL, `vendor_id` int(10) unsigned DEFAULT NULL,
`status_id` int(10) unsigned NOT NULL, `status_id` int(10) unsigned NOT NULL,
`number` varchar(191) DEFAULT NULL, `number` varchar(191) DEFAULT NULL,
`discount` double(8,2) NOT NULL DEFAULT 0.00, `discount` decimal(20,6) NOT NULL DEFAULT 0.000000,
`is_amount_discount` tinyint(1) NOT NULL DEFAULT 0, `is_amount_discount` tinyint(1) NOT NULL DEFAULT 0,
`po_number` varchar(191) DEFAULT NULL, `po_number` varchar(191) DEFAULT NULL,
`date` date DEFAULT NULL, `date` date DEFAULT NULL,
@ -1830,6 +1886,7 @@ CREATE TABLE `recurring_invoices` (
`paid_to_date` decimal(20,6) NOT NULL DEFAULT 0.000000, `paid_to_date` decimal(20,6) NOT NULL DEFAULT 0.000000,
`subscription_id` int(10) unsigned DEFAULT NULL, `subscription_id` int(10) unsigned DEFAULT NULL,
`next_send_date_client` datetime DEFAULT NULL, `next_send_date_client` datetime DEFAULT NULL,
`is_proforma` tinyint(1) NOT NULL DEFAULT 0,
PRIMARY KEY (`id`), PRIMARY KEY (`id`),
UNIQUE KEY `recurring_invoices_company_id_number_unique` (`company_id`,`number`), UNIQUE KEY `recurring_invoices_company_id_number_unique` (`company_id`,`number`),
KEY `recurring_invoices_company_id_deleted_at_index` (`company_id`,`deleted_at`), KEY `recurring_invoices_company_id_deleted_at_index` (`company_id`,`deleted_at`),
@ -1967,10 +2024,10 @@ CREATE TABLE `schedulers` (
`next_run` datetime DEFAULT NULL, `next_run` datetime DEFAULT NULL,
`next_run_client` datetime DEFAULT NULL, `next_run_client` datetime DEFAULT NULL,
`user_id` int(10) unsigned NOT NULL, `user_id` int(10) unsigned NOT NULL,
`name` varchar(191) NOT NULL, `name` varchar(191) DEFAULT NULL,
`template` varchar(191) NOT NULL, `template` varchar(191) NOT NULL,
`remaining_cycles` int(11) DEFAULT NULL,
PRIMARY KEY (`id`), PRIMARY KEY (`id`),
UNIQUE KEY `schedulers_company_id_name_unique` (`company_id`,`name`),
KEY `schedulers_company_id_deleted_at_index` (`company_id`,`deleted_at`), KEY `schedulers_company_id_deleted_at_index` (`company_id`,`deleted_at`),
CONSTRAINT `schedulers_company_id_foreign` FOREIGN KEY (`company_id`) REFERENCES `companies` (`id`) ON DELETE CASCADE ON UPDATE CASCADE CONSTRAINT `schedulers_company_id_foreign` FOREIGN KEY (`company_id`) REFERENCES `companies` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
@ -2023,6 +2080,7 @@ CREATE TABLE `subscriptions` (
`use_inventory_management` tinyint(1) NOT NULL DEFAULT 0, `use_inventory_management` tinyint(1) NOT NULL DEFAULT 0,
`optional_product_ids` text DEFAULT NULL, `optional_product_ids` text DEFAULT NULL,
`optional_recurring_product_ids` text DEFAULT NULL, `optional_recurring_product_ids` text DEFAULT NULL,
`steps` varchar(191) DEFAULT NULL,
PRIMARY KEY (`id`), PRIMARY KEY (`id`),
UNIQUE KEY `subscriptions_company_id_name_unique` (`company_id`,`name`), UNIQUE KEY `subscriptions_company_id_name_unique` (`company_id`,`name`),
KEY `billing_subscriptions_company_id_deleted_at_index` (`company_id`,`deleted_at`), KEY `billing_subscriptions_company_id_deleted_at_index` (`company_id`,`deleted_at`),
@ -2103,6 +2161,9 @@ CREATE TABLE `tasks` (
`invoice_documents` tinyint(1) NOT NULL DEFAULT 0, `invoice_documents` tinyint(1) NOT NULL DEFAULT 0,
`is_date_based` tinyint(1) NOT NULL DEFAULT 0, `is_date_based` tinyint(1) NOT NULL DEFAULT 0,
`status_order` int(11) DEFAULT NULL, `status_order` int(11) DEFAULT NULL,
`calculated_start_date` date DEFAULT NULL,
`hash` varchar(191) DEFAULT NULL,
`meta` text DEFAULT NULL,
PRIMARY KEY (`id`), PRIMARY KEY (`id`),
UNIQUE KEY `tasks_company_id_number_unique` (`company_id`,`number`), UNIQUE KEY `tasks_company_id_number_unique` (`company_id`,`number`),
KEY `tasks_company_id_deleted_at_index` (`company_id`,`deleted_at`), KEY `tasks_company_id_deleted_at_index` (`company_id`,`deleted_at`),
@ -2110,6 +2171,7 @@ CREATE TABLE `tasks` (
KEY `tasks_invoice_id_foreign` (`invoice_id`), KEY `tasks_invoice_id_foreign` (`invoice_id`),
KEY `tasks_client_id_foreign` (`client_id`), KEY `tasks_client_id_foreign` (`client_id`),
KEY `tasks_company_id_index` (`company_id`), KEY `tasks_company_id_index` (`company_id`),
KEY `tasks_hash_index` (`hash`),
CONSTRAINT `tasks_client_id_foreign` FOREIGN KEY (`client_id`) REFERENCES `clients` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `tasks_client_id_foreign` FOREIGN KEY (`client_id`) REFERENCES `clients` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `tasks_company_id_foreign` FOREIGN KEY (`company_id`) REFERENCES `companies` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `tasks_company_id_foreign` FOREIGN KEY (`company_id`) REFERENCES `companies` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `tasks_invoice_id_foreign` FOREIGN KEY (`invoice_id`) REFERENCES `invoices` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `tasks_invoice_id_foreign` FOREIGN KEY (`invoice_id`) REFERENCES `invoices` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
@ -2226,10 +2288,14 @@ CREATE TABLE `users` (
`oauth_user_token_expiry` datetime DEFAULT NULL, `oauth_user_token_expiry` datetime DEFAULT NULL,
`sms_verification_code` varchar(191) DEFAULT NULL, `sms_verification_code` varchar(191) DEFAULT NULL,
`verified_phone_number` tinyint(1) NOT NULL DEFAULT 0, `verified_phone_number` tinyint(1) NOT NULL DEFAULT 0,
`shopify_user_id` bigint(20) unsigned DEFAULT NULL,
`language_id` varchar(191) DEFAULT NULL,
`user_logged_in_notification` tinyint(1) NOT NULL DEFAULT 1,
PRIMARY KEY (`id`), PRIMARY KEY (`id`),
UNIQUE KEY `users_email_unique` (`email`), UNIQUE KEY `users_email_unique` (`email`),
UNIQUE KEY `users_oauth_user_id_oauth_provider_id_unique` (`oauth_user_id`,`oauth_provider_id`), UNIQUE KEY `users_oauth_user_id_oauth_provider_id_unique` (`oauth_user_id`,`oauth_provider_id`),
KEY `users_account_id_index` (`account_id`), KEY `users_account_id_index` (`account_id`),
KEY `users_shopify_user_id_index` (`shopify_user_id`),
CONSTRAINT `users_account_id_foreign` FOREIGN KEY (`account_id`) REFERENCES `accounts` (`id`) ON DELETE CASCADE ON UPDATE CASCADE CONSTRAINT `users_account_id_foreign` FOREIGN KEY (`account_id`) REFERENCES `accounts` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */; /*!40101 SET character_set_client = @saved_cs_client */;
@ -2318,6 +2384,9 @@ CREATE TABLE `vendors` (
`vendor_hash` text DEFAULT NULL, `vendor_hash` text DEFAULT NULL,
`public_notes` text DEFAULT NULL, `public_notes` text DEFAULT NULL,
`id_number` varchar(191) DEFAULT NULL, `id_number` varchar(191) DEFAULT NULL,
`language_id` int(10) unsigned DEFAULT NULL,
`last_login` timestamp NULL DEFAULT NULL,
`classification` varchar(191) DEFAULT NULL,
PRIMARY KEY (`id`), PRIMARY KEY (`id`),
UNIQUE KEY `vendors_company_id_number_unique` (`company_id`,`number`), UNIQUE KEY `vendors_company_id_number_unique` (`company_id`,`number`),
KEY `vendors_company_id_deleted_at_index` (`company_id`,`deleted_at`), KEY `vendors_company_id_deleted_at_index` (`company_id`,`deleted_at`),
@ -2339,7 +2408,7 @@ CREATE TABLE `webhooks` (
`user_id` int(10) unsigned DEFAULT NULL, `user_id` int(10) unsigned DEFAULT NULL,
`event_id` int(10) unsigned DEFAULT NULL, `event_id` int(10) unsigned DEFAULT NULL,
`is_deleted` tinyint(1) NOT NULL DEFAULT 0, `is_deleted` tinyint(1) NOT NULL DEFAULT 0,
`target_url` varchar(191) NOT NULL, `target_url` text NOT NULL,
`format` enum('JSON','UBL') NOT NULL DEFAULT 'JSON', `format` enum('JSON','UBL') NOT NULL DEFAULT 'JSON',
`created_at` timestamp(6) NULL DEFAULT NULL, `created_at` timestamp(6) NULL DEFAULT NULL,
`updated_at` timestamp(6) NULL DEFAULT NULL, `updated_at` timestamp(6) NULL DEFAULT NULL,
@ -2359,184 +2428,239 @@ CREATE TABLE `webhooks` (
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; /*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
INSERT INTO `migrations` VALUES (1,'2014_10_12_100000_create_password_resets_table',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (1,'2014_10_12_100000_create_password_resets_table',1);
INSERT INTO `migrations` VALUES (2,'2014_10_13_000000_create_users_table',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (2,'2014_10_13_000000_create_users_table',1);
INSERT INTO `migrations` VALUES (3,'2019_11_10_115926_create_failed_jobs_table',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (3,'2019_11_10_115926_create_failed_jobs_table',1);
INSERT INTO `migrations` VALUES (4,'2020_03_05_123315_create_jobs_table',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (4,'2020_03_05_123315_create_jobs_table',1);
INSERT INTO `migrations` VALUES (5,'2020_04_08_234530_add_is_deleted_column_to_company_tokens_table',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (5,'2020_04_08_234530_add_is_deleted_column_to_company_tokens_table',1);
INSERT INTO `migrations` VALUES (6,'2020_05_13_035355_add_google_refresh_token_to_users_table',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (6,'2020_05_13_035355_add_google_refresh_token_to_users_table',1);
INSERT INTO `migrations` VALUES (7,'2020_07_05_084934_company_too_large_attribute',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (7,'2020_07_05_084934_company_too_large_attribute',1);
INSERT INTO `migrations` VALUES (8,'2020_07_08_065301_add_token_id_to_activity_table',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (8,'2020_07_08_065301_add_token_id_to_activity_table',1);
INSERT INTO `migrations` VALUES (9,'2020_07_21_112424_update_enabled_modules_value',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (9,'2020_07_21_112424_update_enabled_modules_value',1);
INSERT INTO `migrations` VALUES (10,'2020_07_28_104218_shop_token',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (10,'2020_07_28_104218_shop_token',1);
INSERT INTO `migrations` VALUES (11,'2020_08_04_080851_add_is_deleted_to_group_settings',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (11,'2020_08_04_080851_add_is_deleted_to_group_settings',1);
INSERT INTO `migrations` VALUES (12,'2020_08_11_221627_add_is_deleted_flag_to_client_gateway_token_table',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (12,'2020_08_11_221627_add_is_deleted_flag_to_client_gateway_token_table',1);
INSERT INTO `migrations` VALUES (13,'2020_08_13_095946_remove_photo_design',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (13,'2020_08_13_095946_remove_photo_design',1);
INSERT INTO `migrations` VALUES (14,'2020_08_13_212702_add_reminder_sent_fields_to_entity_tables',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (14,'2020_08_13_212702_add_reminder_sent_fields_to_entity_tables',1);
INSERT INTO `migrations` VALUES (15,'2020_08_18_140557_add_is_public_to_documents_table',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (15,'2020_08_18_140557_add_is_public_to_documents_table',1);
INSERT INTO `migrations` VALUES (16,'2020_09_22_205113_id_number_fields_for_missing_entities',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (16,'2020_09_22_205113_id_number_fields_for_missing_entities',1);
INSERT INTO `migrations` VALUES (17,'2020_09_27_215800_update_gateway_table_visible_column',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (17,'2020_09_27_215800_update_gateway_table_visible_column',1);
INSERT INTO `migrations` VALUES (18,'2020_10_11_211122_vendor_schema_update',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (18,'2020_10_11_211122_vendor_schema_update',1);
INSERT INTO `migrations` VALUES (19,'2020_10_12_204517_project_number_column',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (19,'2020_10_12_204517_project_number_column',1);
INSERT INTO `migrations` VALUES (20,'2020_10_14_201320_project_ids_to_entities',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (20,'2020_10_14_201320_project_ids_to_entities',1);
INSERT INTO `migrations` VALUES (21,'2020_10_19_101823_project_name_unique_removal',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (21,'2020_10_19_101823_project_name_unique_removal',1);
INSERT INTO `migrations` VALUES (22,'2020_10_21_222738_expenses_nullable_assigned_user',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (22,'2020_10_21_222738_expenses_nullable_assigned_user',1);
INSERT INTO `migrations` VALUES (23,'2020_10_22_204900_company_table_fields',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (23,'2020_10_22_204900_company_table_fields',1);
INSERT INTO `migrations` VALUES (24,'2020_10_27_021751_tasks_invoice_documents',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (24,'2020_10_27_021751_tasks_invoice_documents',1);
INSERT INTO `migrations` VALUES (25,'2020_10_28_224711_status_sort_order',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (25,'2020_10_28_224711_status_sort_order',1);
INSERT INTO `migrations` VALUES (26,'2020_10_28_225022_assigned_user_tasks_table',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (26,'2020_10_28_225022_assigned_user_tasks_table',1);
INSERT INTO `migrations` VALUES (27,'2020_10_29_001541_vendors_phone_column',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (27,'2020_10_29_001541_vendors_phone_column',1);
INSERT INTO `migrations` VALUES (28,'2020_10_29_093836_change_start_time_column_type',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (28,'2020_10_29_093836_change_start_time_column_type',1);
INSERT INTO `migrations` VALUES (29,'2020_10_29_204434_tasks_table_project_nullable',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (29,'2020_10_29_204434_tasks_table_project_nullable',1);
INSERT INTO `migrations` VALUES (30,'2020_10_29_210402_change_default_show_tasks_table',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (30,'2020_10_29_210402_change_default_show_tasks_table',1);
INSERT INTO `migrations` VALUES (31,'2020_10_30_084139_change_expense_currency_id_column',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (31,'2020_10_30_084139_change_expense_currency_id_column',1);
INSERT INTO `migrations` VALUES (32,'2020_11_01_031750_drop_migrating_column',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (32,'2020_11_01_031750_drop_migrating_column',1);
INSERT INTO `migrations` VALUES (33,'2020_11_03_200345_company_gateway_fields_refactor',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (33,'2020_11_03_200345_company_gateway_fields_refactor',1);
INSERT INTO `migrations` VALUES (34,'2020_11_08_212050_custom_fields_for_payments_table',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (34,'2020_11_08_212050_custom_fields_for_payments_table',1);
INSERT INTO `migrations` VALUES (35,'2020_11_12_104413_company_gateway_rename_column',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (35,'2020_11_12_104413_company_gateway_rename_column',1);
INSERT INTO `migrations` VALUES (36,'2020_11_15_203755_soft_delete_paymentables',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (36,'2020_11_15_203755_soft_delete_paymentables',1);
INSERT INTO `migrations` VALUES (37,'2020_12_14_114722_task_fields',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (37,'2020_12_14_114722_task_fields',1);
INSERT INTO `migrations` VALUES (38,'2020_12_17_104033_add_enable_product_discount_field_to_companies_table',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (38,'2020_12_17_104033_add_enable_product_discount_field_to_companies_table',1);
INSERT INTO `migrations` VALUES (39,'2020_12_20_005609_change_products_table_cost_resolution',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (39,'2020_12_20_005609_change_products_table_cost_resolution',1);
INSERT INTO `migrations` VALUES (40,'2020_12_23_220648_remove_null_values_in_countries_table',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (40,'2020_12_23_220648_remove_null_values_in_countries_table',1);
INSERT INTO `migrations` VALUES (41,'2021_01_03_215053_update_canadian_dollar_symbol',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (41,'2021_01_03_215053_update_canadian_dollar_symbol',1);
INSERT INTO `migrations` VALUES (42,'2021_01_05_013203_improve_decimal_resolution',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (42,'2021_01_05_013203_improve_decimal_resolution',1);
INSERT INTO `migrations` VALUES (43,'2021_01_07_023350_update_singapore_dollar_symbol',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (43,'2021_01_07_023350_update_singapore_dollar_symbol',1);
INSERT INTO `migrations` VALUES (44,'2021_01_08_093324_expenses_table_additional_fields',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (44,'2021_01_08_093324_expenses_table_additional_fields',1);
INSERT INTO `migrations` VALUES (45,'2021_01_11_092056_fix_company_settings_url',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (45,'2021_01_11_092056_fix_company_settings_url',1);
INSERT INTO `migrations` VALUES (46,'2021_01_17_040331_change_custom_surcharge_column_type',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (46,'2021_01_17_040331_change_custom_surcharge_column_type',1);
INSERT INTO `migrations` VALUES (47,'2021_01_23_044502_scheduler_is_running_check',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (47,'2021_01_23_044502_scheduler_is_running_check',1);
INSERT INTO `migrations` VALUES (48,'2021_01_24_052645_add_paid_to_date_column',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (48,'2021_01_24_052645_add_paid_to_date_column',1);
INSERT INTO `migrations` VALUES (49,'2021_01_25_095351_add_number_field_to_clients_and_vendors',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (49,'2021_01_25_095351_add_number_field_to_clients_and_vendors',1);
INSERT INTO `migrations` VALUES (50,'2021_01_29_121502_add_permission_changed_timestamp',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (50,'2021_01_29_121502_add_permission_changed_timestamp',1);
INSERT INTO `migrations` VALUES (51,'2021_02_15_214724_additional_company_properties',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (51,'2021_02_15_214724_additional_company_properties',1);
INSERT INTO `migrations` VALUES (52,'2021_02_19_212722_email_last_confirmed_email_address_users_table',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (52,'2021_02_19_212722_email_last_confirmed_email_address_users_table',1);
INSERT INTO `migrations` VALUES (53,'2021_02_25_205901_enum_invitations_email_status',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (53,'2021_02_25_205901_enum_invitations_email_status',1);
INSERT INTO `migrations` VALUES (54,'2021_02_27_091713_add_invoice_task_datelog_property',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (54,'2021_02_27_091713_add_invoice_task_datelog_property',1);
INSERT INTO `migrations` VALUES (55,'2021_03_03_230941_add_has_password_field_to_user_table',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (55,'2021_03_03_230941_add_has_password_field_to_user_table',1);
INSERT INTO `migrations` VALUES (56,'2021_03_08_123729_create_billing_subscriptions_table',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (56,'2021_03_08_123729_create_billing_subscriptions_table',1);
INSERT INTO `migrations` VALUES (57,'2021_03_08_205030_add_russian_lang',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (57,'2021_03_08_205030_add_russian_lang',1);
INSERT INTO `migrations` VALUES (58,'2021_03_09_132242_add_currency_id_to_billing_subscriptions_table',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (58,'2021_03_09_132242_add_currency_id_to_billing_subscriptions_table',1);
INSERT INTO `migrations` VALUES (59,'2021_03_18_113704_change_2fa_column_from_varchar_to_text',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (59,'2021_03_18_113704_change_2fa_column_from_varchar_to_text',1);
INSERT INTO `migrations` VALUES (60,'2021_03_19_221024_add_unique_constraints_on_all_entities',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (60,'2021_03_19_221024_add_unique_constraints_on_all_entities',1);
INSERT INTO `migrations` VALUES (61,'2021_03_20_033751_add_invoice_id_to_client_subscriptions_table',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (61,'2021_03_20_033751_add_invoice_id_to_client_subscriptions_table',1);
INSERT INTO `migrations` VALUES (62,'2021_03_23_233844_add_nullable_constraint_to_recurring_invoice_id',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (62,'2021_03_23_233844_add_nullable_constraint_to_recurring_invoice_id',1);
INSERT INTO `migrations` VALUES (63,'2021_03_25_082025_refactor_billing_scriptions_table',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (63,'2021_03_25_082025_refactor_billing_scriptions_table',1);
INSERT INTO `migrations` VALUES (64,'2021_03_26_201148_add_price_column_to_subscriptions_table',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (64,'2021_03_26_201148_add_price_column_to_subscriptions_table',1);
INSERT INTO `migrations` VALUES (65,'2021_04_01_093128_modify_column_on_subscriptions_table',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (65,'2021_04_01_093128_modify_column_on_subscriptions_table',1);
INSERT INTO `migrations` VALUES (66,'2021_04_05_115345_add_trial_duration_to_accounts_table',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (66,'2021_04_05_115345_add_trial_duration_to_accounts_table',1);
INSERT INTO `migrations` VALUES (67,'2021_04_05_213802_add_rest_fields_to_webhooks_table',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (67,'2021_04_05_213802_add_rest_fields_to_webhooks_table',1);
INSERT INTO `migrations` VALUES (68,'2021_04_06_131028_create_licenses_table',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (68,'2021_04_06_131028_create_licenses_table',1);
INSERT INTO `migrations` VALUES (69,'2021_04_12_095424_stripe_connect_gateway',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (69,'2021_04_12_095424_stripe_connect_gateway',1);
INSERT INTO `migrations` VALUES (70,'2021_04_13_013424_add_subscription_id_to_activities_table',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (70,'2021_04_13_013424_add_subscription_id_to_activities_table',1);
INSERT INTO `migrations` VALUES (71,'2021_04_22_110240_add_property_to_checkout_gateway_config',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (71,'2021_04_22_110240_add_property_to_checkout_gateway_config',1);
INSERT INTO `migrations` VALUES (72,'2021_04_29_085418_add_number_years_active_to_company_users_table',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (72,'2021_04_29_085418_add_number_years_active_to_company_users_table',1);
INSERT INTO `migrations` VALUES (73,'2021_05_03_152940_make_braintree_provider_visible',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (73,'2021_05_03_152940_make_braintree_provider_visible',1);
INSERT INTO `migrations` VALUES (74,'2021_05_04_231430_add_task_property_to_companies_table',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (74,'2021_05_04_231430_add_task_property_to_companies_table',1);
INSERT INTO `migrations` VALUES (75,'2021_05_05_014713_activate_we_pay',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (75,'2021_05_05_014713_activate_we_pay',1);
INSERT INTO `migrations` VALUES (76,'2021_05_10_041528_add_recurring_invoice_id_to_activities_table',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (76,'2021_05_10_041528_add_recurring_invoice_id_to_activities_table',1);
INSERT INTO `migrations` VALUES (77,'2021_05_27_105157_add_tech_design',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (77,'2021_05_27_105157_add_tech_design',1);
INSERT INTO `migrations` VALUES (78,'2021_05_30_100933_make_documents_assigned_user_nullable',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (78,'2021_05_30_100933_make_documents_assigned_user_nullable',1);
INSERT INTO `migrations` VALUES (79,'2021_06_10_221012_add_ninja_portal_column_to_accounts_table',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (79,'2021_06_10_221012_add_ninja_portal_column_to_accounts_table',1);
INSERT INTO `migrations` VALUES (80,'2021_06_24_095942_payments_table_currency_nullable',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (80,'2021_06_24_095942_payments_table_currency_nullable',1);
INSERT INTO `migrations` VALUES (81,'2021_07_10_085821_activate_payfast_payment_driver',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (81,'2021_07_10_085821_activate_payfast_payment_driver',1);
INSERT INTO `migrations` VALUES (82,'2021_07_19_074503_set_invoice_task_datelog_true_in_companies_table',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (82,'2021_07_19_074503_set_invoice_task_datelog_true_in_companies_table',1);
INSERT INTO `migrations` VALUES (83,'2021_07_20_095537_activate_paytrace_payment_driver',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (83,'2021_07_20_095537_activate_paytrace_payment_driver',1);
INSERT INTO `migrations` VALUES (84,'2021_07_21_213344_change_english_languages_tables',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (84,'2021_07_21_213344_change_english_languages_tables',1);
INSERT INTO `migrations` VALUES (85,'2021_07_21_234227_activate_eway_payment_driver',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (85,'2021_07_21_234227_activate_eway_payment_driver',1);
INSERT INTO `migrations` VALUES (86,'2021_08_03_115024_activate_mollie_payment_driver',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (86,'2021_08_03_115024_activate_mollie_payment_driver',1);
INSERT INTO `migrations` VALUES (87,'2021_08_05_235942_add_zelle_payment_type',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (87,'2021_08_05_235942_add_zelle_payment_type',1);
INSERT INTO `migrations` VALUES (88,'2021_08_07_222435_add_markdown_enabled_column_to_companies_table',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (88,'2021_08_07_222435_add_markdown_enabled_column_to_companies_table',1);
INSERT INTO `migrations` VALUES (89,'2021_08_10_034407_add_more_languages',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (89,'2021_08_10_034407_add_more_languages',1);
INSERT INTO `migrations` VALUES (90,'2021_08_14_054458_square_payment_driver',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (90,'2021_08_14_054458_square_payment_driver',1);
INSERT INTO `migrations` VALUES (91,'2021_08_18_220124_use_comma_as_decimal_place_companies_table',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (91,'2021_08_18_220124_use_comma_as_decimal_place_companies_table',1);
INSERT INTO `migrations` VALUES (92,'2021_08_23_101529_recurring_expenses_schema',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (92,'2021_08_23_101529_recurring_expenses_schema',1);
INSERT INTO `migrations` VALUES (93,'2021_08_25_093105_report_include_drafts_in_companies_table',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (93,'2021_08_25_093105_report_include_drafts_in_companies_table',1);
INSERT INTO `migrations` VALUES (94,'2021_09_05_101209_update_braintree_gateway',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (94,'2021_09_05_101209_update_braintree_gateway',1);
INSERT INTO `migrations` VALUES (95,'2021_09_20_233053_set_square_test_mode_boolean',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (95,'2021_09_20_233053_set_square_test_mode_boolean',1);
INSERT INTO `migrations` VALUES (96,'2021_09_23_100629_add_currencies',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (96,'2021_09_23_100629_add_currencies',1);
INSERT INTO `migrations` VALUES (97,'2021_09_24_201319_add_mollie_bank_transfer_to_payment_types',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (97,'2021_09_24_201319_add_mollie_bank_transfer_to_payment_types',1);
INSERT INTO `migrations` VALUES (98,'2021_09_24_211504_add_kbc_to_payment_types',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (98,'2021_09_24_211504_add_kbc_to_payment_types',1);
INSERT INTO `migrations` VALUES (99,'2021_09_24_213858_add_bancontact_to_payment_types',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (99,'2021_09_24_213858_add_bancontact_to_payment_types',1);
INSERT INTO `migrations` VALUES (100,'2021_09_28_154647_activate_gocardless_payment_driver',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (100,'2021_09_28_154647_activate_gocardless_payment_driver',1);
INSERT INTO `migrations` VALUES (101,'2021_09_29_190258_add_required_client_registration_fields',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (101,'2021_09_29_190258_add_required_client_registration_fields',1);
INSERT INTO `migrations` VALUES (102,'2021_10_04_134908_add_ideal_to_payment_types',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (102,'2021_10_04_134908_add_ideal_to_payment_types',1);
INSERT INTO `migrations` VALUES (103,'2021_10_06_044800_updated_bold_and_modern_designs',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (103,'2021_10_06_044800_updated_bold_and_modern_designs',1);
INSERT INTO `migrations` VALUES (104,'2021_10_07_141737_razorpay',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (104,'2021_10_07_141737_razorpay',1);
INSERT INTO `migrations` VALUES (105,'2021_10_07_155410_add_hosted_page_to_payment_types',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (105,'2021_10_07_155410_add_hosted_page_to_payment_types',1);
INSERT INTO `migrations` VALUES (106,'2021_10_15_00000_stripe_payment_gateways',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (106,'2021_10_15_00000_stripe_payment_gateways',1);
INSERT INTO `migrations` VALUES (107,'2021_10_16_135200_add_direct_debit_to_payment_types',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (107,'2021_10_16_135200_add_direct_debit_to_payment_types',1);
INSERT INTO `migrations` VALUES (108,'2021_10_19_142200_add_gateway_type_for_direct_debit',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (108,'2021_10_19_142200_add_gateway_type_for_direct_debit',1);
INSERT INTO `migrations` VALUES (109,'2021_10_20_005529_add_filename_to_backups_table',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (109,'2021_10_20_005529_add_filename_to_backups_table',1);
INSERT INTO `migrations` VALUES (110,'2021_11_08_131308_onboarding',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (110,'2021_11_08_131308_onboarding',1);
INSERT INTO `migrations` VALUES (111,'2021_11_09_115919_update_designs',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (111,'2021_11_09_115919_update_designs',1);
INSERT INTO `migrations` VALUES (112,'2021_11_10_184847_add_is_migrate_column_to_accounts_table',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (112,'2021_11_10_184847_add_is_migrate_column_to_accounts_table',1);
INSERT INTO `migrations` VALUES (113,'2021_11_11_163121_add_instant_bank_transfer',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (113,'2021_11_11_163121_add_instant_bank_transfer',1);
INSERT INTO `migrations` VALUES (114,'2021_12_20_095542_add_serbian_language_translations',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (114,'2021_12_20_095542_add_serbian_language_translations',1);
INSERT INTO `migrations` VALUES (115,'2022_01_02_022421_add_slovak_language',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (115,'2022_01_02_022421_add_slovak_language',1);
INSERT INTO `migrations` VALUES (116,'2022_01_06_061231_add_app_domain_id_to_gateways_table',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (116,'2022_01_06_061231_add_app_domain_id_to_gateways_table',1);
INSERT INTO `migrations` VALUES (117,'2022_01_18_004856_add_estonian_language',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (117,'2022_01_18_004856_add_estonian_language',1);
INSERT INTO `migrations` VALUES (118,'2022_01_19_085907_add_platform_column_to_accounts_table',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (118,'2022_01_19_085907_add_platform_column_to_accounts_table',1);
INSERT INTO `migrations` VALUES (119,'2022_01_19_232436_add_kyd_currency',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (119,'2022_01_19_232436_add_kyd_currency',1);
INSERT INTO `migrations` VALUES (120,'2022_01_27_223617_add_client_count_to_accounts_table',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (120,'2022_01_27_223617_add_client_count_to_accounts_table',1);
INSERT INTO `migrations` VALUES (121,'2022_02_06_091629_add_client_currency_conversion_to_companies_table',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (121,'2022_02_06_091629_add_client_currency_conversion_to_companies_table',1);
INSERT INTO `migrations` VALUES (122,'2022_02_25_015411_update_stripe_apple_domain_config',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (122,'2022_02_25_015411_update_stripe_apple_domain_config',1);
INSERT INTO `migrations` VALUES (123,'2022_03_09_053508_transaction_events',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (123,'2022_03_09_053508_transaction_events',1);
INSERT INTO `migrations` VALUES (124,'2022_03_24_090728_markdown_email_enabled_wysiwyg_editor',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (124,'2022_03_24_090728_markdown_email_enabled_wysiwyg_editor',1);
INSERT INTO `migrations` VALUES (125,'2022_03_29_014025_reverse_apple_domain_for_hosted',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (125,'2022_03_29_014025_reverse_apple_domain_for_hosted',1);
INSERT INTO `migrations` VALUES (126,'2022_04_14_121548_forte_payment_gateway',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (126,'2022_04_14_121548_forte_payment_gateway',1);
INSERT INTO `migrations` VALUES (127,'2022_04_22_115838_client_settings_parse_for_types',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (127,'2022_04_22_115838_client_settings_parse_for_types',1);
INSERT INTO `migrations` VALUES (128,'2022_04_26_032252_convert_custom_fields_column_from_varchar_to_text',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (128,'2022_04_26_032252_convert_custom_fields_column_from_varchar_to_text',1);
INSERT INTO `migrations` VALUES (129,'2022_05_08_004937_heal_stripe_gateway_configuration',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (129,'2022_05_08_004937_heal_stripe_gateway_configuration',1);
INSERT INTO `migrations` VALUES (130,'2022_05_12_56879_add_stripe_klarna',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (130,'2022_05_12_56879_add_stripe_klarna',1);
INSERT INTO `migrations` VALUES (131,'2022_05_16_224917_add_auto_bill_tries_to_invoices_table',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (131,'2022_05_16_224917_add_auto_bill_tries_to_invoices_table',1);
INSERT INTO `migrations` VALUES (132,'2022_05_18_055442_update_custom_value_four_columns',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (132,'2022_05_18_055442_update_custom_value_four_columns',1);
INSERT INTO `migrations` VALUES (133,'2022_05_18_162152_create_scheduled_jobs_table',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (133,'2022_05_18_162152_create_scheduled_jobs_table',1);
INSERT INTO `migrations` VALUES (134,'2022_05_18_162443_create_schedulers_table',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (134,'2022_05_18_162443_create_schedulers_table',1);
INSERT INTO `migrations` VALUES (135,'2022_05_23_050754_drop_redundant_column_show_production_description_dropdown',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (135,'2022_05_23_050754_drop_redundant_column_show_production_description_dropdown',1);
INSERT INTO `migrations` VALUES (136,'2022_05_28_234651_create_purchase_orders_table',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (136,'2022_05_28_234651_create_purchase_orders_table',1);
INSERT INTO `migrations` VALUES (137,'2022_05_30_181109_drop_scheduled_jobs_table',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (137,'2022_05_30_181109_drop_scheduled_jobs_table',1);
INSERT INTO `migrations` VALUES (138,'2022_05_30_184320_add_job_related_fields_to_schedulers_table',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (138,'2022_05_30_184320_add_job_related_fields_to_schedulers_table',1);
INSERT INTO `migrations` VALUES (139,'2022_05_31_101504_inventory_management_schema',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (139,'2022_05_31_101504_inventory_management_schema',1);
INSERT INTO `migrations` VALUES (140,'2022_06_01_215859_set_recurring_client_timestamp',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (140,'2022_06_01_215859_set_recurring_client_timestamp',1);
INSERT INTO `migrations` VALUES (141,'2022_06_01_224339_create_purchase_order_invitations_table',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (141,'2022_06_01_224339_create_purchase_order_invitations_table',1);
INSERT INTO `migrations` VALUES (142,'2022_06_10_030503_set_account_flag_for_react',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (142,'2022_06_10_030503_set_account_flag_for_react',1);
INSERT INTO `migrations` VALUES (143,'2022_06_16_025156_add_react_switching_flag',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (143,'2022_06_16_025156_add_react_switching_flag',1);
INSERT INTO `migrations` VALUES (144,'2022_06_17_082627_change_refresh_token_column_size',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (144,'2022_06_17_082627_change_refresh_token_column_size',1);
INSERT INTO `migrations` VALUES (145,'2022_06_21_104350_fixes_for_description_in_pdf_designs',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (145,'2022_06_21_104350_fixes_for_description_in_pdf_designs',1);
INSERT INTO `migrations` VALUES (146,'2022_06_22_090547_set_oauth_expiry_column',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (146,'2022_06_22_090547_set_oauth_expiry_column',1);
INSERT INTO `migrations` VALUES (147,'2022_06_24_141018_upgrade_failed_jobs_table',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (147,'2022_06_24_141018_upgrade_failed_jobs_table',1);
INSERT INTO `migrations` VALUES (148,'2022_06_30_000126_add_flag_to_accounts_table',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (148,'2022_06_30_000126_add_flag_to_accounts_table',1);
INSERT INTO `migrations` VALUES (149,'2022_07_06_080127_add_purchase_order_to_expense',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (149,'2022_07_06_080127_add_purchase_order_to_expense',1);
INSERT INTO `migrations` VALUES (150,'2022_07_09_235510_add_index_to_payment_hash',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (150,'2022_07_09_235510_add_index_to_payment_hash',1);
INSERT INTO `migrations` VALUES (151,'2022_07_12_45766_add_matomo',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (151,'2022_07_12_45766_add_matomo',1);
INSERT INTO `migrations` VALUES (152,'2022_07_18_033756_fixes_for_date_formats_table_react',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (152,'2022_07_18_033756_fixes_for_date_formats_table_react',1);
INSERT INTO `migrations` VALUES (153,'2022_07_21_023805_add_hebrew_language',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (153,'2022_07_21_023805_add_hebrew_language',1);
INSERT INTO `migrations` VALUES (154,'2022_07_26_091216_add_sms_verification_to_hosted_account',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (154,'2022_07_26_091216_add_sms_verification_to_hosted_account',1);
INSERT INTO `migrations` VALUES (155,'2022_07_28_232340_enabled_expense_tax_rates_to_companies_table',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (155,'2022_07_28_232340_enabled_expense_tax_rates_to_companies_table',1);
INSERT INTO `migrations` VALUES (156,'2022_07_29_091235_correction_for_companies_table_types',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (156,'2022_07_29_091235_correction_for_companies_table_types',1);
INSERT INTO `migrations` VALUES (157,'2022_08_05_023357_bank_integration',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (157,'2022_08_05_023357_bank_integration',1);
INSERT INTO `migrations` VALUES (158,'2022_08_11_011534_licenses_table_for_self_host',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (158,'2022_08_11_011534_licenses_table_for_self_host',1);
INSERT INTO `migrations` VALUES (159,'2022_08_24_215917_invoice_task_project_companies_table',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (159,'2022_08_24_215917_invoice_task_project_companies_table',1);
INSERT INTO `migrations` VALUES (160,'2022_08_26_232500_add_email_status_column_to_purchase_order_invitations_table',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (160,'2022_08_26_232500_add_email_status_column_to_purchase_order_invitations_table',1);
INSERT INTO `migrations` VALUES (161,'2022_08_28_210111_add_index_to_payments_table',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (161,'2022_08_28_210111_add_index_to_payments_table',1);
INSERT INTO `migrations` VALUES (162,'2022_09_05_024719_update_designs_for_tech_template',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (162,'2022_09_05_024719_update_designs_for_tech_template',1);
INSERT INTO `migrations` VALUES (163,'2022_09_07_101731_add_reporting_option_to_companies_table',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (163,'2022_09_07_101731_add_reporting_option_to_companies_table',1);
INSERT INTO `migrations` VALUES (164,'2022_09_21_012417_add_threeds_to_braintree',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (164,'2022_09_21_012417_add_threeds_to_braintree',1);
INSERT INTO `migrations` VALUES (165,'2022_09_30_235337_add_idempotency_key_to_payments',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (165,'2022_09_30_235337_add_idempotency_key_to_payments',1);
INSERT INTO `migrations` VALUES (166,'2022_10_05_205645_add_indexes_to_client_hash',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (166,'2022_10_05_205645_add_indexes_to_client_hash',1);
INSERT INTO `migrations` VALUES (167,'2022_10_06_011344_add_key_to_products',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (167,'2022_10_06_011344_add_key_to_products',1);
INSERT INTO `migrations` VALUES (168,'2022_10_07_065455_add_key_to_company_tokens_table',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (168,'2022_10_07_065455_add_key_to_company_tokens_table',1);
INSERT INTO `migrations` VALUES (169,'2022_10_10_070137_add_documentable_index',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (169,'2022_10_10_070137_add_documentable_index',1);
INSERT INTO `migrations` VALUES (170,'2022_10_27_044909_add_user_sms_verification_code',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (170,'2022_10_27_044909_add_user_sms_verification_code',1);
INSERT INTO `migrations` VALUES (171,'2022_11_02_063742_add_verified_number_flag_to_users_table',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (171,'2022_11_02_063742_add_verified_number_flag_to_users_table',1);
INSERT INTO `migrations` VALUES (172,'2022_11_04_013539_disabled_upstream_bank_integrations_table',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (172,'2022_11_04_013539_disabled_upstream_bank_integrations_table',1);
INSERT INTO `migrations` VALUES (173,'2022_11_06_215526_drop_html_backups_column_from_backups_table',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (173,'2022_11_06_215526_drop_html_backups_column_from_backups_table',1);
INSERT INTO `migrations` VALUES (174,'2022_11_13_034143_bank_transaction_rules_table',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (174,'2022_11_13_034143_bank_transaction_rules_table',1);
INSERT INTO `migrations` VALUES (175,'2022_11_16_093535_calmness_design',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (175,'2022_11_16_093535_calmness_design',1);
INSERT INTO `migrations` VALUES (176,'2022_11_22_215618_lock_tasks_when_invoiced',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (176,'2022_11_22_215618_lock_tasks_when_invoiced',1);
INSERT INTO `migrations` VALUES (177,'2022_11_30_063229_add_payment_id_to_bank_transaction_table',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (177,'2022_11_30_063229_add_payment_id_to_bank_transaction_table',1);
INSERT INTO `migrations` VALUES (178,'2022_12_07_024625_add_properties_to_companies_table',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (178,'2022_12_07_024625_add_properties_to_companies_table',1);
INSERT INTO `migrations` VALUES (179,'2022_12_14_004639_vendor_currency_update',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (179,'2022_12_14_004639_vendor_currency_update',1);
INSERT INTO `migrations` VALUES (180,'2022_12_20_063038_set_proforma_invoice_type',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (180,'2022_12_20_063038_set_proforma_invoice_type',1);
INSERT INTO `migrations` VALUES (181,'2023_01_12_125540_set_auto_bill_on_regular_invoice_setting',1); INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (181,'2023_01_12_125540_set_auto_bill_on_regular_invoice_setting',1);
INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (182,'2022_16_12_54687_add_stripe_bacs',2);
INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (183,'2023_01_27_023127_update_design_templates',2);
INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (184,'2023_02_02_062938_add_additional_required_fields_gateways',2);
INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (185,'2023_02_05_042351_add_foreign_key_for_vendors',2);
INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (186,'2023_02_07_114011_add_additional_product_fields',2);
INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (187,'2023_02_14_064135_create_react_settings_column_company_user_table',2);
INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (188,'2023_02_28_064453_update_designs',2);
INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (189,'2023_02_28_200056_add_visible_prop_to_companies_table',2);
INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (190,'2023_03_09_121033_add_payment_balance_to_clients_table',2);
INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (191,'2023_03_10_100629_add_currencies',2);
INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (192,'2023_03_13_156872_add_e_invoice_type_to_clients_table',2);
INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (193,'2023_03_17_012309_add_proforma_flag_for_recurring_invoices',2);
INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (194,'2023_03_21_053933_tax_calculations_for_invoices',2);
INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (195,'2023_03_24_054758_add_client_is_exempt_from_taxes',2);
INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (196,'2023_04_20_215159_drop_e_invoice_type_column',2);
INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (197,'2023_04_27_045639_add_kmher_language',2);
INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (198,'2023_05_03_023956_add_shopify_user_id',2);
INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (199,'2023_05_15_103212_e_invoice_ssl_storage',2);
INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (200,'2023_06_04_064713_project_and_task_columns_for_company_model',2);
INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (201,'2023_06_13_220252_add_hungarian_translations',2);
INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (202,'2023_06_20_123355_add_paypal_rest_payment_driver',2);
INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (203,'2023_07_06_063512_update_designs',2);
INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (204,'2023_07_08_000314_add_french_swiss_translations',2);
INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (205,'2023_07_12_074829_add_thai_baht_currency_symbol',2);
INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (206,'2023_07_18_214607_add_start_date_column_to_tasks',2);
INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (207,'2023_07_22_234329_change_currency_format_for_indonesian_rupiah',2);
INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (208,'2023_08_06_070205_create_view_dashboard_permission_migration',2);
INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (209,'2023_08_08_212710_add_signature_ip_address_to_purchase_order_invitations',2);
INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (210,'2023_08_09_224955_add_nicaragua_currency',2);
INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (211,'2023_09_11_003230_add_client_and_company_classifications',2);
INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (212,'2023_09_21_042010_add_template_flag_to_designs_table',2);
INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (213,'2023_10_01_102220_add_language_id_to_users_table',2);
INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (214,'2023_10_08_092508_add_refund_meta_and_category_to_payments_table',2);
INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (215,'2023_10_10_083024_add_ariary_currency',2);
INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (216,'2023_10_15_204204_add_paypal_ppcp',2);
INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (217,'2023_10_18_061415_add_user_notification_suppression',2);
INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (218,'2023_11_26_082959_add_bank_integration_id',2);
INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (219,'2023_11_27_095042_add_hash_and_meta_columns_to_tasks_table',2);
INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (220,'2023_11_30_042431_2023_11_30_add_payment_visibility',2);
INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (221,'2024_01_09_084515_product_cost_field_population',2);
INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (222,'2024_01_10_071427_normalize_product_cost_types',2);
INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (223,'2024_01_10_155555_add_bank_transaction_nordigen_field',2);
INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (224,'2024_01_12_073629_laos_currency_translation',2);
INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (225,'2024_01_29_080555_2024_01_29_update_timezones_naming',2);
INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (226,'2024_02_06_204031_correction_for_krw_currency',2);
INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (227,'2024_02_16_011055_smtp_configuration',2);
INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (228,'2024_02_28_180250_add_steps_to_subscriptions',2);
INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (229,'2024_03_07_195116_add_tax_data_to_quotes',2);
INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (230,'2024_03_14_201844_adjust_discount_column_max_resolution',2);
INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (231,'2024_03_24_200109_new_currencies_03_24',2);
INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (232,'2024_04_24_064301_optional_display_required_fields_payment_gateways',2);
INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (233,'2024_05_02_030103_2024_05_02_update_timezones',2);
INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (234,'2024_05_03_145535_btcpay_gateway',2);
INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (235,'2024_05_19_215103_2024_05_20_einvoice_columns',2);
INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES (236,'2024_05_26_210407_2024_05_28_kwd_precision',2);

View File

@ -2913,6 +2913,13 @@ $lang = array(
'mime_types' => 'Mime types', 'mime_types' => 'Mime types',
'mime_types_placeholder' => '.pdf , .docx, .jpg', 'mime_types_placeholder' => '.pdf , .docx, .jpg',
'mime_types_help' => 'Comma separated list of allowed mime types, leave blank for all', 'mime_types_help' => 'Comma separated list of allowed mime types, leave blank for all',
'ticket_number_start_help' => 'Ticket number must be greater than the current ticket number',
'new_ticket_template_id' => 'New ticket',
'new_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a new ticket is created',
'update_ticket_template_id' => 'Updated ticket',
'update_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a ticket is updated',
'close_ticket_template_id' => 'Closed ticket',
'close_ticket_autoresponder_help' => 'Selecting a template will send an auto response to a client/contact when a ticket is closed',
'default_priority' => 'Default priority', 'default_priority' => 'Default priority',
'alert_new_comment_id' => 'New comment', 'alert_new_comment_id' => 'New comment',
'update_ticket_notification_list' => 'Additional new comment notifications', 'update_ticket_notification_list' => 'Additional new comment notifications',
@ -5277,6 +5284,9 @@ $lang = array(
'after_valid_until_date' => 'After the valid until date', 'after_valid_until_date' => 'After the valid until date',
'after_quote_date' => 'After the quote date', 'after_quote_date' => 'After the quote date',
'remind_quote' => 'Remind Quote', 'remind_quote' => 'Remind Quote',
'end_of_month' => 'End Of Month',
'tax_currency_mismatch' => 'Tax currency is different from invoice currency',
'edocument_import_already_exists' => '\nThe invoice has already been imported on :date'
); );
return $lang; return $lang;

View File

@ -3,313 +3,313 @@ const MANIFEST = 'flutter-app-manifest';
const TEMP = 'flutter-temp-cache'; const TEMP = 'flutter-temp-cache';
const CACHE_NAME = 'flutter-app-cache'; const CACHE_NAME = 'flutter-app-cache';
const RESOURCES = {"canvaskit/skwasm.worker.js": "bfb704a6c714a75da9ef320991e88b03", const RESOURCES = {"icons/Icon-512.png": "0f9aff01367f0a0c69773d25ca16ef35",
"icons/Icon-192.png": "bb1cf5f6982006952211c7c8404ffbed",
"flutter.js": "c71a09214cb6f5f8996a531350400a9a",
"canvaskit/skwasm.worker.js": "bfb704a6c714a75da9ef320991e88b03",
"canvaskit/skwasm.js": "445e9e400085faead4493be2224d95aa", "canvaskit/skwasm.js": "445e9e400085faead4493be2224d95aa",
"canvaskit/canvaskit.wasm": "3d2a2d663e8c5111ac61a46367f751ac",
"canvaskit/canvaskit.js.symbols": "38cba9233b92472a36ff011dc21c2c9f", "canvaskit/canvaskit.js.symbols": "38cba9233b92472a36ff011dc21c2c9f",
"canvaskit/skwasm.js.symbols": "741d50ffba71f89345996b0aa8426af8", "canvaskit/skwasm.js.symbols": "741d50ffba71f89345996b0aa8426af8",
"canvaskit/skwasm.wasm": "e42815763c5d05bba43f9d0337fa7d84",
"canvaskit/canvaskit.js": "c86fbd9e7b17accae76e5ad116583dc4",
"canvaskit/chromium/canvaskit.wasm": "f5934e694f12929ed56a671617acd254",
"canvaskit/chromium/canvaskit.js.symbols": "4525682ef039faeb11f24f37436dca06", "canvaskit/chromium/canvaskit.js.symbols": "4525682ef039faeb11f24f37436dca06",
"canvaskit/chromium/canvaskit.js": "43787ac5098c648979c27c13c6f804c3", "canvaskit/chromium/canvaskit.js": "43787ac5098c648979c27c13c6f804c3",
"icons/Icon-512.png": "0f9aff01367f0a0c69773d25ca16ef35", "canvaskit/chromium/canvaskit.wasm": "f5934e694f12929ed56a671617acd254",
"icons/Icon-192.png": "bb1cf5f6982006952211c7c8404ffbed", "canvaskit/canvaskit.js": "c86fbd9e7b17accae76e5ad116583dc4",
"manifest.json": "ef43d90e57aa7682d7e2cfba2f484a40", "canvaskit/canvaskit.wasm": "3d2a2d663e8c5111ac61a46367f751ac",
"favicon.png": "dca91c54388f52eded692718d5a98b8b", "canvaskit/skwasm.wasm": "e42815763c5d05bba43f9d0337fa7d84",
"version.json": "1592dbbd49cf08963e29ab3a85640d96", "version.json": "1592dbbd49cf08963e29ab3a85640d96",
"favicon.ico": "51636d3a390451561744c42188ccd628", "favicon.png": "dca91c54388f52eded692718d5a98b8b",
"/": "20617e24cdbd2dc221a7cd1844d8d7dc", "main.dart.js": "2eda432fffde6d4286d209de85530d53",
"main.dart.js": "f881bb79aa671366a8bac3c866bcd3c8",
"assets/AssetManifest.json": "759f9ef9973f7e26c2a51450b55bb9fa",
"assets/packages/intl_phone_field/assets/flags/mn.png": "16086e8d89c9067d29fd0f2ea7021a45",
"assets/packages/intl_phone_field/assets/flags/vi.png": "3f317c56f31971b3179abd4e03847036",
"assets/packages/intl_phone_field/assets/flags/cv.png": "9b1f31f9fc0795d728328dedd33eb1c0",
"assets/packages/intl_phone_field/assets/flags/tv.png": "c57025ed7ae482210f29b9da86b0d211",
"assets/packages/intl_phone_field/assets/flags/bo.png": "3ccf6fa7f9cbc27949b8418925e4e89c",
"assets/packages/intl_phone_field/assets/flags/ch.png": "a251702f7760b0aac141428ed60b7b66",
"assets/packages/intl_phone_field/assets/flags/sl.png": "61b9d992c8a6a83abc4d432069617811",
"assets/packages/intl_phone_field/assets/flags/ne.png": "a20724c177e86d6a27143aa9c9664a6f",
"assets/packages/intl_phone_field/assets/flags/ck.png": "39f343868a8dc8ca95d27b27a5caf480",
"assets/packages/intl_phone_field/assets/flags/ve.png": "893391d65cbd10ca787a73578c77d3a7",
"assets/packages/intl_phone_field/assets/flags/lv.png": "53105fea0cc9cc554e0ceaabc53a2d5d",
"assets/packages/intl_phone_field/assets/flags/tz.png": "56ec99c7e0f68b88a2210620d873683a",
"assets/packages/intl_phone_field/assets/flags/ug.png": "9a0f358b1eb19863e21ae2063fab51c0",
"assets/packages/intl_phone_field/assets/flags/ma.png": "057ea2e08587f1361b3547556adae0c2",
"assets/packages/intl_phone_field/assets/flags/eh.png": "515a9cf2620c802e305b5412ac81aed2",
"assets/packages/intl_phone_field/assets/flags/as.png": "d9c1da515c6f945c2e2554592a9dfaae",
"assets/packages/intl_phone_field/assets/flags/al.png": "722cf9e5c7a1d9c9e4608fb44dbb427d",
"assets/packages/intl_phone_field/assets/flags/pe.png": "4d9249aab70a26fadabb14380b3b55d2",
"assets/packages/intl_phone_field/assets/flags/lt.png": "7df2cd6566725685f7feb2051f916a3e",
"assets/packages/intl_phone_field/assets/flags/fo.png": "2c7d9233582e83a86927e634897a2a90",
"assets/packages/intl_phone_field/assets/flags/cd.png": "5b5f832ed6cd9f9240cb31229d8763dc",
"assets/packages/intl_phone_field/assets/flags/ls.png": "2bca756f9313957347404557acb532b0",
"assets/packages/intl_phone_field/assets/flags/mw.png": "ffc1f18eeedc1dfbb1080aa985ce7d05",
"assets/packages/intl_phone_field/assets/flags/kh.png": "d48d51e8769a26930da6edfc15de97fe",
"assets/packages/intl_phone_field/assets/flags/mq.png": "134bee9f9d794dc5c0922d1b9bdbb710",
"assets/packages/intl_phone_field/assets/flags/ng.png": "aedbe364bd1543832e88e64b5817e877",
"assets/packages/intl_phone_field/assets/flags/tg.png": "7f91f02b26b74899ff882868bd611714",
"assets/packages/intl_phone_field/assets/flags/gr.png": "ec11281d7decbf07b81a23a72a609b59",
"assets/packages/intl_phone_field/assets/flags/bn.png": "ed650de06fff61ff27ec92a872197948",
"assets/packages/intl_phone_field/assets/flags/sc.png": "e969fd5afb1eb5902675b6bcf49a8c2e",
"assets/packages/intl_phone_field/assets/flags/kg.png": "c4aa6d221d9a9d332155518d6b82dbc7",
"assets/packages/intl_phone_field/assets/flags/no.png": "33bc70259c4908b7b9adeef9436f7a9f",
"assets/packages/intl_phone_field/assets/flags/ws.png": "f206322f3e22f175869869dbfadb6ce8",
"assets/packages/intl_phone_field/assets/flags/er.png": "8ca78e10878a2e97c1371b38c5d258a7",
"assets/packages/intl_phone_field/assets/flags/cn.png": "040539c2cdb60ebd9dc8957cdc6a8ad0",
"assets/packages/intl_phone_field/assets/flags/zw.png": "078a3267ea8eabf88b2d43fe4aed5ce5",
"assets/packages/intl_phone_field/assets/flags/sm.png": "a8d6801cb7c5360e18f0a2ed146b396d",
"assets/packages/intl_phone_field/assets/flags/gu.png": "2acb614b442e55864411b6e418df6eab",
"assets/packages/intl_phone_field/assets/flags/am.png": "aaa39141fbc80205bebaa0200b55a13a",
"assets/packages/intl_phone_field/assets/flags/cr.png": "bfd8b41e63fc3cc829c72c4b2e170532",
"assets/packages/intl_phone_field/assets/flags/af.png": "ba710b50a060b5351381b55366396c30",
"assets/packages/intl_phone_field/assets/flags/sg.png": "bc772e50b8c79f08f3c2189f5d8ce491",
"assets/packages/intl_phone_field/assets/flags/kr.png": "a3b7da3b76b20a70e9cd63cc2315b51b",
"assets/packages/intl_phone_field/assets/flags/gt.png": "706a0c3b5e0b589c843e2539e813839e",
"assets/packages/intl_phone_field/assets/flags/uy.png": "da4247b21fcbd9e30dc2b3f7c5dccb64",
"assets/packages/intl_phone_field/assets/flags/sn.png": "68eaa89bbc83b3f356e1ba2096b09b3c",
"assets/packages/intl_phone_field/assets/flags/va.png": "c010bf145f695d5c8fb551bafc081f77",
"assets/packages/intl_phone_field/assets/flags/my.png": "f7f962e8a074387fd568c9d4024e0959",
"assets/packages/intl_phone_field/assets/flags/cz.png": "73ecd64c6144786c4d03729b1dd9b1f3",
"assets/packages/intl_phone_field/assets/flags/mv.png": "d9245f74e34d5c054413ace4b86b4f16",
"assets/packages/intl_phone_field/assets/flags/bz.png": "fd2d7d27a5ddabe4eb9a10b1d3a433e4",
"assets/packages/intl_phone_field/assets/flags/lk.png": "5a3a063cfff4a92fb0ba6158e610e025",
"assets/packages/intl_phone_field/assets/flags/ps.png": "52a25a48658ca9274830ffa124a8c1db",
"assets/packages/intl_phone_field/assets/flags/cx.png": "8efa3231c8a3900a78f2b51d829f8c52",
"assets/packages/intl_phone_field/assets/flags/gb.png": "98773db151c150cabe845183241bfe6b",
"assets/packages/intl_phone_field/assets/flags/wf.png": "6f1644b8f907d197c0ff7ed2f366ad64",
"assets/packages/intl_phone_field/assets/flags/cf.png": "263583ffdf7a888ce4fba8487d1da0b2",
"assets/packages/intl_phone_field/assets/flags/gs.png": "419dd57836797a3f1bf6258ea6589f9a",
"assets/packages/intl_phone_field/assets/flags/au.png": "72be14316f0af3903cdca7a726c0c589",
"assets/packages/intl_phone_field/assets/flags/re.png": "134bee9f9d794dc5c0922d1b9bdbb710",
"assets/packages/intl_phone_field/assets/flags/ly.png": "8d65057351859065d64b4c118ff9e30e",
"assets/packages/intl_phone_field/assets/flags/lb.png": "f80cde345f0d9bd0086531808ce5166a",
"assets/packages/intl_phone_field/assets/flags/ca.png": "76f2fac1d3b2cc52ba6695c2e2941632",
"assets/packages/intl_phone_field/assets/flags/ht.png": "630f7f8567d87409a32955107ad11a86",
"assets/packages/intl_phone_field/assets/flags/dz.png": "132ceca353a95c8214676b2e94ecd40f",
"assets/packages/intl_phone_field/assets/flags/dm.png": "8886b222ed9ccd00f67e8bcf86dadcc2",
"assets/packages/intl_phone_field/assets/flags/kz.png": "cb3b0095281c9d7e7fb5ce1716ef8ee5",
"assets/packages/intl_phone_field/assets/flags/gb-nir.png": "98773db151c150cabe845183241bfe6b",
"assets/packages/intl_phone_field/assets/flags/bm.png": "b366ba84cbc8286c830f392bb9086be5",
"assets/packages/intl_phone_field/assets/flags/si.png": "24237e53b34752554915e71e346bb405",
"assets/packages/intl_phone_field/assets/flags/mg.png": "0ef6271ad284ebc0069ff0aeb5a3ad1e",
"assets/packages/intl_phone_field/assets/flags/mx.png": "84b12a569b209e213daccfcbdd1fc799",
"assets/packages/intl_phone_field/assets/flags/jp.png": "25ac778acd990bedcfdc02a9b4570045",
"assets/packages/intl_phone_field/assets/flags/sv.png": "217b691efbef7a0f48cdd53e91997f0e",
"assets/packages/intl_phone_field/assets/flags/ee.png": "e242645cae28bd5291116ea211f9a566",
"assets/packages/intl_phone_field/assets/flags/ga.png": "b0e5b2fa1b7106c7652a955db24c11c4",
"assets/packages/intl_phone_field/assets/flags/fr.png": "134bee9f9d794dc5c0922d1b9bdbb710",
"assets/packages/intl_phone_field/assets/flags/to.png": "1cdd716b5b5502f85d6161dac6ee6c5b",
"assets/packages/intl_phone_field/assets/flags/nr.png": "1316f3a8a419d8be1975912c712535ea",
"assets/packages/intl_phone_field/assets/flags/jo.png": "c01cb41f74f9db0cf07ba20f0af83011",
"assets/packages/intl_phone_field/assets/flags/pg.png": "0f7e03465a93e0b4e3e1c9d3dd5814a4",
"assets/packages/intl_phone_field/assets/flags/tn.png": "6612e9fec4bef022cbd45cbb7c02b2b6",
"assets/packages/intl_phone_field/assets/flags/bh.png": "a1acd86ef0e19ea5f0297bbe1de6cfd4",
"assets/packages/intl_phone_field/assets/flags/zm.png": "81cec35b715f227328cad8f314acd797",
"assets/packages/intl_phone_field/assets/flags/xk.png": "079259fbcb1f3c78dafa944464295c16",
"assets/packages/intl_phone_field/assets/flags/ag.png": "41c11d5668c93ba6e452f811defdbb24",
"assets/packages/intl_phone_field/assets/flags/sr.png": "9f912879f2829a625436ccd15e643e39",
"assets/packages/intl_phone_field/assets/flags/gm.png": "7148d3715527544c2e7d8d6f4a445bb6",
"assets/packages/intl_phone_field/assets/flags/lu.png": "6274fd1cae3c7a425d25e4ccb0941bb8",
"assets/packages/intl_phone_field/assets/flags/na.png": "cdc00e9267a873609b0abea944939ff7",
"assets/packages/intl_phone_field/assets/flags/ge.png": "6fbd41f07921fa415347ebf6dff5b0f7",
"assets/packages/intl_phone_field/assets/flags/fk.png": "da8b0fe48829aae2c8feb4839895de63",
"assets/packages/intl_phone_field/assets/flags/cg.png": "eca97338cc1cb5b5e91bec72af57b3d4",
"assets/packages/intl_phone_field/assets/flags/gi.png": "446aa44aaa063d240adab88243b460d3",
"assets/packages/intl_phone_field/assets/flags/is.png": "907840430252c431518005b562707831",
"assets/packages/intl_phone_field/assets/flags/sa.png": "7c95c1a877148e2aa21a213d720ff4fd",
"assets/packages/intl_phone_field/assets/flags/im.png": "7c9ccb825f0fca557d795c4330cf4f50",
"assets/packages/intl_phone_field/assets/flags/eu.png": "c58ece3931acb87faadc5b940d4f7755",
"assets/packages/intl_phone_field/assets/flags/ro.png": "85af99741fe20664d9a7112cfd8d9722",
"assets/packages/intl_phone_field/assets/flags/it.png": "5c8e910e6a33ec63dfcda6e8960dd19c",
"assets/packages/intl_phone_field/assets/flags/tf.png": "b2c044b86509e7960b5ba66b094ea285",
"assets/packages/intl_phone_field/assets/flags/ai.png": "ce5e91ed1725f0499b9231b69a7fd448",
"assets/packages/intl_phone_field/assets/flags/np.png": "6e099fb1e063930bdd00e8df5cef73d4",
"assets/packages/intl_phone_field/assets/flags/tr.png": "27feab1a5ca390610d07e0c6bd4720d5",
"assets/packages/intl_phone_field/assets/flags/om.png": "cebd9ab4b9ab071b2142e21ae2129efc",
"assets/packages/intl_phone_field/assets/flags/ad.png": "384e9845debe9aca8f8586d9bedcb7e6",
"assets/packages/intl_phone_field/assets/flags/nz.png": "65c811e96eb6c9da65538f899c110895",
"assets/packages/intl_phone_field/assets/flags/et.png": "57edff61c7fddf2761a19948acef1498",
"assets/packages/intl_phone_field/assets/flags/py.png": "154d4add03b4878caf00bd3249e14f40",
"assets/packages/intl_phone_field/assets/flags/ss.png": "b0120cb000b31bb1a5c801c3592139bc",
"assets/packages/intl_phone_field/assets/flags/mr.png": "f2a62602d43a1ee14625af165b96ce2f",
"assets/packages/intl_phone_field/assets/flags/bq.png": "3649c177693bfee9c2fcc63c191a51f1",
"assets/packages/intl_phone_field/assets/flags/pl.png": "f20e9ef473a9ed24176f5ad74dd0d50a",
"assets/packages/intl_phone_field/assets/flags/gb-eng.png": "0d9f2a6775fd52b79e1d78eb1dda10cf",
"assets/packages/intl_phone_field/assets/flags/vn.png": "32ff65ccbf31a707a195be2a5141a89b",
"assets/packages/intl_phone_field/assets/flags/aw.png": "a93ddf8e32d246dc47f6631f38e0ed92",
"assets/packages/intl_phone_field/assets/flags/mh.png": "18dda388ef5c1cf37cae5e7d5fef39bc",
"assets/packages/intl_phone_field/assets/flags/mm.png": "32e5293d6029d8294c7dfc3c3835c222",
"assets/packages/intl_phone_field/assets/flags/es.png": "654965f9722f6706586476fb2f5d30dd",
"assets/packages/intl_phone_field/assets/flags/nu.png": "f4169998548e312584c67873e0d9352d",
"assets/packages/intl_phone_field/assets/flags/sb.png": "296ecedbd8d1c2a6422c3ba8e5cd54bd",
"assets/packages/intl_phone_field/assets/flags/gb-sct.png": "75106a5e49e3e16da76cb33bdac102ab",
"assets/packages/intl_phone_field/assets/flags/ci.png": "7f5ca3779d5ff6ce0c803a6efa0d2da7",
"assets/packages/intl_phone_field/assets/flags/th.png": "11ce0c9f8c738fd217ea52b9bc29014b",
"assets/packages/intl_phone_field/assets/flags/pm.png": "134bee9f9d794dc5c0922d1b9bdbb710",
"assets/packages/intl_phone_field/assets/flags/mk.png": "835f2263974de523fa779d29c90595bf",
"assets/packages/intl_phone_field/assets/flags/gd.png": "7a4864ccfa2a0564041c2d1f8a13a8c9",
"assets/packages/intl_phone_field/assets/flags/bf.png": "63f1c67fca7ce8b52b3418a90af6ad37",
"assets/packages/intl_phone_field/assets/flags/bd.png": "86a0e4bd8787dc8542137a407e0f987f",
"assets/packages/intl_phone_field/assets/flags/bg.png": "1d24bc616e3389684ed2c9f18bcb0209",
"assets/packages/intl_phone_field/assets/flags/bi.png": "adda8121501f0543f1075244a1acc275",
"assets/packages/intl_phone_field/assets/flags/ms.png": "9c955a926cf7d57fccb450a97192afa7",
"assets/packages/intl_phone_field/assets/flags/bj.png": "6fdc6449f73d23ad3f07060f92db4423",
"assets/packages/intl_phone_field/assets/flags/ml.png": "0c50dfd539e87bb4313da0d4556e2d13",
"assets/packages/intl_phone_field/assets/flags/sx.png": "9c19254973d8acf81581ad95b408c7e6",
"assets/packages/intl_phone_field/assets/flags/sk.png": "2a1ee716d4b41c017ff1dbf3fd3ffc64",
"assets/packages/intl_phone_field/assets/flags/mo.png": "849848a26bbfc87024017418ad7a6233",
"assets/packages/intl_phone_field/assets/flags/pk.png": "7a6a621f7062589677b3296ca16c6718",
"assets/packages/intl_phone_field/assets/flags/se.png": "25dd5434891ac1ca2ad1af59cda70f80",
"assets/packages/intl_phone_field/assets/flags/hm.png": "72be14316f0af3903cdca7a726c0c589",
"assets/packages/intl_phone_field/assets/flags/ir.png": "37f67c3141e9843196cb94815be7bd37",
"assets/packages/intl_phone_field/assets/flags/je.png": "288f8dca26098e83ff0455b08cceca1b",
"assets/packages/intl_phone_field/assets/flags/ye.png": "4cf73209d90e9f02ead1565c8fdf59e5",
"assets/packages/intl_phone_field/assets/flags/sj.png": "33bc70259c4908b7b9adeef9436f7a9f",
"assets/packages/intl_phone_field/assets/flags/la.png": "e8cd9c3ee6e134adcbe3e986e1974e4a",
"assets/packages/intl_phone_field/assets/flags/gh.png": "b35464dca793fa33e51bf890b5f3d92b",
"assets/packages/intl_phone_field/assets/flags/kp.png": "e1c8bb52f31fca22d3368d8f492d8f27",
"assets/packages/intl_phone_field/assets/flags/sd.png": "65ce270762dfc87475ea99bd18f79025",
"assets/packages/intl_phone_field/assets/flags/dj.png": "078bd37d41f746c3cb2d84c1e9611c55",
"assets/packages/intl_phone_field/assets/flags/pt.png": "eba93d33545c78cc67915d9be8323661",
"assets/packages/intl_phone_field/assets/flags/jm.png": "074400103847c56c37425a73f9d23665",
"assets/packages/intl_phone_field/assets/flags/yt.png": "134bee9f9d794dc5c0922d1b9bdbb710",
"assets/packages/intl_phone_field/assets/flags/td.png": "009303b6188ca0e30bd50074b16f0b16",
"assets/packages/intl_phone_field/assets/flags/sz.png": "d1829842e45c2b2b29222c1b7e201591",
"assets/packages/intl_phone_field/assets/flags/tj.png": "c73b793f2acd262e71b9236e64c77636",
"assets/packages/intl_phone_field/assets/flags/kw.png": "3ca448e219d0df506fb2efd5b91be092",
"assets/packages/intl_phone_field/assets/flags/gw.png": "05606b9a6393971bd87718b809e054f9",
"assets/packages/intl_phone_field/assets/flags/eg.png": "311d780e8e3dd43f87e6070f6feb74c7",
"assets/packages/intl_phone_field/assets/flags/nc.png": "cb36e0c945b79d56def11b23c6a9c7e9",
"assets/packages/intl_phone_field/assets/flags/at.png": "570c070177a5ea0fe03e20107ebf5283",
"assets/packages/intl_phone_field/assets/flags/vu.png": "3f201fdfb6d669a64c35c20a801016d1",
"assets/packages/intl_phone_field/assets/flags/ph.png": "e4025d1395a8455f1ba038597a95228c",
"assets/packages/intl_phone_field/assets/flags/lr.png": "b92c75e18dd97349c75d6a43bd17ee94",
"assets/packages/intl_phone_field/assets/flags/cc.png": "31a475216e12fef447382c97b42876ce",
"assets/packages/intl_phone_field/assets/flags/bb.png": "a8473747387e4e7a8450c499529f1c93",
"assets/packages/intl_phone_field/assets/flags/by.png": "beabf61e94fb3a4f7c7a7890488b213d",
"assets/packages/intl_phone_field/assets/flags/mz.png": "1ab1ac750fbbb453d33e9f25850ac2a0",
"assets/packages/intl_phone_field/assets/flags/mt.png": "f3119401ae0c3a9d6e2dc23803928c06",
"assets/packages/intl_phone_field/assets/flags/mu.png": "c5228d1e94501d846b5bf203f038ae49",
"assets/packages/intl_phone_field/assets/flags/lc.png": "8c1a03a592aa0a99fcaf2b81508a87eb",
"assets/packages/intl_phone_field/assets/flags/us.png": "83b065848d14d33c0d10a13e01862f34",
"assets/packages/intl_phone_field/assets/flags/hn.png": "9ecf68aed83c4a9b3f1e6275d96bfb04",
"assets/packages/intl_phone_field/assets/flags/rs.png": "9dff535d2d08c504be63062f39eff0b7",
"assets/packages/intl_phone_field/assets/flags/hr.png": "69711b2ea009a3e7c40045b538768d4e",
"assets/packages/intl_phone_field/assets/flags/hk.png": "4b5ec424348c98ec71a46ad3dce3931d",
"assets/packages/intl_phone_field/assets/flags/pa.png": "78e3e4fd56f0064837098fe3f22fb41b",
"assets/packages/intl_phone_field/assets/flags/ki.png": "14db0fc29398730064503907bd696176",
"assets/packages/intl_phone_field/assets/flags/fm.png": "d571b8bc4b80980a81a5edbde788b6d2",
"assets/packages/intl_phone_field/assets/flags/ke.png": "cf5aae3699d3cacb39db9803edae172b",
"assets/packages/intl_phone_field/assets/flags/tm.png": "0980fb40ec450f70896f2c588510f933",
"assets/packages/intl_phone_field/assets/flags/ba.png": "d415bad33b35de3f095177e8e86cbc82",
"assets/packages/intl_phone_field/assets/flags/nf.png": "1c2069b299ce3660a2a95ec574dfde25",
"assets/packages/intl_phone_field/assets/flags/tk.png": "60428ff1cdbae680e5a0b8cde4677dd5",
"assets/packages/intl_phone_field/assets/flags/ao.png": "5f0a372aa3aa7150a3dafea97acfc10d",
"assets/packages/intl_phone_field/assets/flags/fi.png": "3ccd69a842e55183415b7ea2c04b15c8",
"assets/packages/intl_phone_field/assets/flags/in.png": "1dec13ba525529cffd4c7f8a35d51121",
"assets/packages/intl_phone_field/assets/flags/br.png": "5093e0cd8fd3c094664cd17ea8a36fd1",
"assets/packages/intl_phone_field/assets/flags/pw.png": "2e697cc6907a7b94c7f94f5d9b3bdccc",
"assets/packages/intl_phone_field/assets/flags/ae.png": "792efc5eb6c31d780bd34bf4bad69f3f",
"assets/packages/intl_phone_field/assets/flags/me.png": "590284bc85810635ace30a173e615ca4",
"assets/packages/intl_phone_field/assets/flags/nl.png": "3649c177693bfee9c2fcc63c191a51f1",
"assets/packages/intl_phone_field/assets/flags/cw.png": "6c598eb0d331d6b238da57055ec00d33",
"assets/packages/intl_phone_field/assets/flags/bs.png": "2b9540c4fa514f71911a48de0bd77e71",
"assets/packages/intl_phone_field/assets/flags/km.png": "5554c8746c16d4f482986fb78ffd9b36",
"assets/packages/intl_phone_field/assets/flags/sh.png": "98773db151c150cabe845183241bfe6b",
"assets/packages/intl_phone_field/assets/flags/tw.png": "b1101fd5f871a9ffe7c9ad191a7d3304",
"assets/packages/intl_phone_field/assets/flags/iq.png": "bc3e6f68c5188dbf99b473e2bea066f2",
"assets/packages/intl_phone_field/assets/flags/tt.png": "a8e1fc5c65dc8bc362a9453fadf9c4b3",
"assets/packages/intl_phone_field/assets/flags/hu.png": "281582a753e643b46bdd894047db08bb",
"assets/packages/intl_phone_field/assets/flags/za.png": "b28280c6c3eb4624c18b5455d4a1b1ff",
"assets/packages/intl_phone_field/assets/flags/pr.png": "b97b2f4432c430bc340d893f36527e31",
"assets/packages/intl_phone_field/assets/flags/kn.png": "f318e2fd87e5fd2cabefe9ff252bba46",
"assets/packages/intl_phone_field/assets/flags/be.png": "7e5e1831cdd91935b38415479a7110eb",
"assets/packages/intl_phone_field/assets/flags/gl.png": "b79e24ee1889b7446ba3d65564b86810",
"assets/packages/intl_phone_field/assets/flags/gp.png": "134bee9f9d794dc5c0922d1b9bdbb710",
"assets/packages/intl_phone_field/assets/flags/sy.png": "24186a0f4ce804a16c91592db5a16a3a",
"assets/packages/intl_phone_field/assets/flags/qa.png": "eb9b3388e554cf85aea1e739247548df",
"assets/packages/intl_phone_field/assets/flags/st.png": "fef62c31713ff1063da2564df3f43eea",
"assets/packages/intl_phone_field/assets/flags/cy.png": "7b36f4af86257a3f15f5a5a16f4a2fcd",
"assets/packages/intl_phone_field/assets/flags/ar.png": "3bd245f8c28f70c9ef9626dae27adc65",
"assets/packages/intl_phone_field/assets/flags/bt.png": "3cfe1440e952bc7266d71f7f1454fa23",
"assets/packages/intl_phone_field/assets/flags/li.png": "ecdf7b3fe932378b110851674335d9ab",
"assets/packages/intl_phone_field/assets/flags/vc.png": "da3ca14a978717467abbcdece05d3544",
"assets/packages/intl_phone_field/assets/flags/cm.png": "42d52fa71e8b4dbb182ff431749e8d0d",
"assets/packages/intl_phone_field/assets/flags/aq.png": "0c586e7b91aa192758fdd0f03adb84d8",
"assets/packages/intl_phone_field/assets/flags/cl.png": "6735e0e2d88c119e9ed1533be5249ef1",
"assets/packages/intl_phone_field/assets/flags/cu.png": "f41715bd51f63a9aebf543788543b4c4",
"assets/packages/intl_phone_field/assets/flags/gq.png": "4286e56f388a37f64b21eb56550c06d9",
"assets/packages/intl_phone_field/assets/flags/ru.png": "6974dcb42ad7eb3add1009ea0c6003e3",
"assets/packages/intl_phone_field/assets/flags/bl.png": "dae94f5465d3390fdc5929e4f74d3f5f",
"assets/packages/intl_phone_field/assets/flags/gg.png": "eed435d25bd755aa7f9cd7004b9ed49d",
"assets/packages/intl_phone_field/assets/flags/mc.png": "90c2ad7f144d73d4650cbea9dd621275",
"assets/packages/intl_phone_field/assets/flags/io.png": "83d45bbbff087d47b2b39f1c20598f52",
"assets/packages/intl_phone_field/assets/flags/ax.png": "ec2062c36f09ed8fb90ac8992d010024",
"assets/packages/intl_phone_field/assets/flags/co.png": "e3b1be16dcdae6cb72e9c238fdddce3c",
"assets/packages/intl_phone_field/assets/flags/de.png": "5d9561246523cf6183928756fd605e25",
"assets/packages/intl_phone_field/assets/flags/do.png": "ed35983a9263bb5713be37d9a52caddc",
"assets/packages/intl_phone_field/assets/flags/ie.png": "1d91912afc591dd120b47b56ea78cdbf",
"assets/packages/intl_phone_field/assets/flags/dk.png": "abcd01bdbcc02b4a29cbac237f29cd1d",
"assets/packages/intl_phone_field/assets/flags/pn.png": "0b0641b356af4c3e3489192ff4b0be77",
"assets/packages/intl_phone_field/assets/flags/gy.png": "159a260bf0217128ea7475ba5b272b6a",
"assets/packages/intl_phone_field/assets/flags/so.png": "1ce20d052f9d057250be96f42647513b",
"assets/packages/intl_phone_field/assets/flags/md.png": "8911d3d821b95b00abbba8771e997eb3",
"assets/packages/intl_phone_field/assets/flags/fj.png": "1c6a86752578eb132390febf12789cd6",
"assets/packages/intl_phone_field/assets/flags/vg.png": "fc095e11f5b58604d6f4d3c2b43d167f",
"assets/packages/intl_phone_field/assets/flags/pf.png": "1ae72c24380d087cbe2d0cd6c3b58821",
"assets/packages/intl_phone_field/assets/flags/il.png": "1e06ad7783f24332405d36561024cc4c",
"assets/packages/intl_phone_field/assets/flags/ua.png": "b4b10d893611470661b079cb30473871",
"assets/packages/intl_phone_field/assets/flags/ni.png": "e398dc23e79d9ccd702546cc25f126bf",
"assets/packages/intl_phone_field/assets/flags/tl.png": "c80876dc80cda5ab6bb8ef078bc6b05d",
"assets/packages/intl_phone_field/assets/flags/rw.png": "d1aae0647a5b1ab977ae43ab894ce2c3",
"assets/packages/intl_phone_field/assets/flags/tc.png": "d728d6763c17c520ad6bcf3c24282a29",
"assets/packages/intl_phone_field/assets/flags/mf.png": "134bee9f9d794dc5c0922d1b9bdbb710",
"assets/packages/intl_phone_field/assets/flags/bv.png": "33bc70259c4908b7b9adeef9436f7a9f",
"assets/packages/intl_phone_field/assets/flags/bw.png": "fac8b90d7404728c08686dc39bab4fb3",
"assets/packages/intl_phone_field/assets/flags/um.png": "8fe7c4fed0a065fdfb9bd3125c6ecaa1",
"assets/packages/intl_phone_field/assets/flags/gn.png": "b2287c03c88a72d968aa796a076ba056",
"assets/packages/intl_phone_field/assets/flags/gf.png": "134bee9f9d794dc5c0922d1b9bdbb710",
"assets/packages/intl_phone_field/assets/flags/id.png": "80bb82d11d5bc144a21042e77972bca9",
"assets/packages/intl_phone_field/assets/flags/az.png": "6ffa766f6883d2d3d350cdc22a062ca3",
"assets/packages/intl_phone_field/assets/flags/ec.png": "c1ae60d080be91f3be31e92e0a2d9555",
"assets/packages/intl_phone_field/assets/flags/an.png": "4e4b90fbca1275d1839ca5b44fc51071",
"assets/packages/intl_phone_field/assets/flags/mp.png": "87351c30a529071ee9a4bb67765fea4f",
"assets/packages/intl_phone_field/assets/flags/gb-wls.png": "d7d7c77c72cd425d993bdc50720f4d04",
"assets/packages/intl_phone_field/assets/flags/uz.png": "3adad3bac322220cac8abc1c7cbaacac",
"assets/packages/intl_phone_field/assets/flags/ky.png": "38e39eba673e82c48a1f25bd103a7e97",
"assets/packages/window_manager/images/ic_chrome_close.png": "75f4b8ab3608a05461a31fc18d6b47c2",
"assets/packages/window_manager/images/ic_chrome_minimize.png": "4282cd84cb36edf2efb950ad9269ca62",
"assets/packages/window_manager/images/ic_chrome_maximize.png": "af7499d7657c8b69d23b85156b60298c",
"assets/packages/window_manager/images/ic_chrome_unmaximize.png": "4a90c1909cb74e8f0d35794e2f61d8bf",
"assets/packages/material_design_icons_flutter/lib/fonts/materialdesignicons-webfont.ttf": "3759b2f7a51e83c64a58cfe07b96a8ee",
"assets/shaders/ink_sparkle.frag": "ecc85a2e95f5e9f53123dcaf8cb9b6ce",
"assets/AssetManifest.bin.json": "611449d46e56c96b3baef404bfc56246",
"assets/fonts/MaterialIcons-Regular.otf": "a57618538ab8b4c4081d4491870ac333",
"assets/assets/images/logo_light.png": "e5f46d5a78e226e7a9553d4ca6f69219",
"assets/assets/images/logo_dark.png": "a233ed1d4d0f7414bf97a9a10f11fb0a",
"assets/assets/images/payment_types/carteblanche.png": "d936e11fa3884b8c9f1bd5c914be8629",
"assets/assets/images/payment_types/mastercard.png": "6f6cdc29ee2e22e06b1ac029cb52ef71",
"assets/assets/images/payment_types/ach.png": "7433f0aff779dc98a649b7a2daf777cf",
"assets/assets/images/payment_types/maestro.png": "e533b92bfb50339fdbfa79e3dfe81f08",
"assets/assets/images/payment_types/visa.png": "3ddc4a4d25c946e8ad7e6998f30fd4e3",
"assets/assets/images/payment_types/other.png": "d936e11fa3884b8c9f1bd5c914be8629",
"assets/assets/images/payment_types/switch.png": "4fa11c45327f5fdc20205821b2cfd9cc",
"assets/assets/images/payment_types/unionpay.png": "7002f52004e0ab8cc0b7450b0208ccb2",
"assets/assets/images/payment_types/discover.png": "6c0a386a00307f87db7bea366cca35f5",
"assets/assets/images/payment_types/amex.png": "c49a4247984b3732a4af50a3390aa978",
"assets/assets/images/payment_types/paypal.png": "8e06c094c1871376dfea1da8088c29d1",
"assets/assets/images/payment_types/dinerscard.png": "06d85186ba858c18ab7c9caa42c92024",
"assets/assets/images/payment_types/jcb.png": "07e0942d16c5592118b72e74f2f7198c",
"assets/assets/images/payment_types/solo.png": "2030c3ccaccf5d5e87916a62f5b084d6",
"assets/assets/images/payment_types/laser.png": "b4e6e93dd35517ac429301119ff05868",
"assets/assets/images/google_logo.png": "0f118259ce403274f407f5e982e681c3",
"assets/assets/images/icon.png": "090f69e23311a4b6d851b3880ae52541",
"assets/assets/google_fonts/Roboto-Regular.ttf": "8a36205bd9b83e03af0591a004bc97f4",
"assets/NOTICES": "412b336cf9e33e70058d612857effae1", "assets/NOTICES": "412b336cf9e33e70058d612857effae1",
"assets/AssetManifest.bin": "bf3be26e7055ad9a32f66b3a56138224", "assets/AssetManifest.bin": "bf3be26e7055ad9a32f66b3a56138224",
"assets/assets/images/logo_light.png": "e5f46d5a78e226e7a9553d4ca6f69219",
"assets/assets/images/payment_types/other.png": "d936e11fa3884b8c9f1bd5c914be8629",
"assets/assets/images/payment_types/paypal.png": "8e06c094c1871376dfea1da8088c29d1",
"assets/assets/images/payment_types/maestro.png": "e533b92bfb50339fdbfa79e3dfe81f08",
"assets/assets/images/payment_types/carteblanche.png": "d936e11fa3884b8c9f1bd5c914be8629",
"assets/assets/images/payment_types/visa.png": "3ddc4a4d25c946e8ad7e6998f30fd4e3",
"assets/assets/images/payment_types/amex.png": "c49a4247984b3732a4af50a3390aa978",
"assets/assets/images/payment_types/discover.png": "6c0a386a00307f87db7bea366cca35f5",
"assets/assets/images/payment_types/jcb.png": "07e0942d16c5592118b72e74f2f7198c",
"assets/assets/images/payment_types/laser.png": "b4e6e93dd35517ac429301119ff05868",
"assets/assets/images/payment_types/ach.png": "7433f0aff779dc98a649b7a2daf777cf",
"assets/assets/images/payment_types/switch.png": "4fa11c45327f5fdc20205821b2cfd9cc",
"assets/assets/images/payment_types/unionpay.png": "7002f52004e0ab8cc0b7450b0208ccb2",
"assets/assets/images/payment_types/dinerscard.png": "06d85186ba858c18ab7c9caa42c92024",
"assets/assets/images/payment_types/solo.png": "2030c3ccaccf5d5e87916a62f5b084d6",
"assets/assets/images/payment_types/mastercard.png": "6f6cdc29ee2e22e06b1ac029cb52ef71",
"assets/assets/images/icon.png": "090f69e23311a4b6d851b3880ae52541",
"assets/assets/images/logo_dark.png": "a233ed1d4d0f7414bf97a9a10f11fb0a",
"assets/assets/images/google_logo.png": "0f118259ce403274f407f5e982e681c3",
"assets/assets/google_fonts/Roboto-Regular.ttf": "8a36205bd9b83e03af0591a004bc97f4",
"assets/shaders/ink_sparkle.frag": "ecc85a2e95f5e9f53123dcaf8cb9b6ce",
"assets/packages/material_design_icons_flutter/lib/fonts/materialdesignicons-webfont.ttf": "3759b2f7a51e83c64a58cfe07b96a8ee",
"assets/packages/window_manager/images/ic_chrome_close.png": "75f4b8ab3608a05461a31fc18d6b47c2",
"assets/packages/window_manager/images/ic_chrome_unmaximize.png": "4a90c1909cb74e8f0d35794e2f61d8bf",
"assets/packages/window_manager/images/ic_chrome_minimize.png": "4282cd84cb36edf2efb950ad9269ca62",
"assets/packages/window_manager/images/ic_chrome_maximize.png": "af7499d7657c8b69d23b85156b60298c",
"assets/packages/intl_phone_field/assets/flags/kn.png": "f318e2fd87e5fd2cabefe9ff252bba46",
"assets/packages/intl_phone_field/assets/flags/tg.png": "7f91f02b26b74899ff882868bd611714",
"assets/packages/intl_phone_field/assets/flags/gb-nir.png": "98773db151c150cabe845183241bfe6b",
"assets/packages/intl_phone_field/assets/flags/cr.png": "bfd8b41e63fc3cc829c72c4b2e170532",
"assets/packages/intl_phone_field/assets/flags/me.png": "590284bc85810635ace30a173e615ca4",
"assets/packages/intl_phone_field/assets/flags/mx.png": "84b12a569b209e213daccfcbdd1fc799",
"assets/packages/intl_phone_field/assets/flags/ve.png": "893391d65cbd10ca787a73578c77d3a7",
"assets/packages/intl_phone_field/assets/flags/io.png": "83d45bbbff087d47b2b39f1c20598f52",
"assets/packages/intl_phone_field/assets/flags/gq.png": "4286e56f388a37f64b21eb56550c06d9",
"assets/packages/intl_phone_field/assets/flags/si.png": "24237e53b34752554915e71e346bb405",
"assets/packages/intl_phone_field/assets/flags/mm.png": "32e5293d6029d8294c7dfc3c3835c222",
"assets/packages/intl_phone_field/assets/flags/fi.png": "3ccd69a842e55183415b7ea2c04b15c8",
"assets/packages/intl_phone_field/assets/flags/tr.png": "27feab1a5ca390610d07e0c6bd4720d5",
"assets/packages/intl_phone_field/assets/flags/my.png": "f7f962e8a074387fd568c9d4024e0959",
"assets/packages/intl_phone_field/assets/flags/hk.png": "4b5ec424348c98ec71a46ad3dce3931d",
"assets/packages/intl_phone_field/assets/flags/mh.png": "18dda388ef5c1cf37cae5e7d5fef39bc",
"assets/packages/intl_phone_field/assets/flags/br.png": "5093e0cd8fd3c094664cd17ea8a36fd1",
"assets/packages/intl_phone_field/assets/flags/nz.png": "65c811e96eb6c9da65538f899c110895",
"assets/packages/intl_phone_field/assets/flags/mz.png": "1ab1ac750fbbb453d33e9f25850ac2a0",
"assets/packages/intl_phone_field/assets/flags/td.png": "009303b6188ca0e30bd50074b16f0b16",
"assets/packages/intl_phone_field/assets/flags/dz.png": "132ceca353a95c8214676b2e94ecd40f",
"assets/packages/intl_phone_field/assets/flags/cn.png": "040539c2cdb60ebd9dc8957cdc6a8ad0",
"assets/packages/intl_phone_field/assets/flags/pe.png": "4d9249aab70a26fadabb14380b3b55d2",
"assets/packages/intl_phone_field/assets/flags/tj.png": "c73b793f2acd262e71b9236e64c77636",
"assets/packages/intl_phone_field/assets/flags/id.png": "80bb82d11d5bc144a21042e77972bca9",
"assets/packages/intl_phone_field/assets/flags/cz.png": "73ecd64c6144786c4d03729b1dd9b1f3",
"assets/packages/intl_phone_field/assets/flags/cc.png": "31a475216e12fef447382c97b42876ce",
"assets/packages/intl_phone_field/assets/flags/hr.png": "69711b2ea009a3e7c40045b538768d4e",
"assets/packages/intl_phone_field/assets/flags/mf.png": "134bee9f9d794dc5c0922d1b9bdbb710",
"assets/packages/intl_phone_field/assets/flags/mk.png": "835f2263974de523fa779d29c90595bf",
"assets/packages/intl_phone_field/assets/flags/lv.png": "53105fea0cc9cc554e0ceaabc53a2d5d",
"assets/packages/intl_phone_field/assets/flags/zm.png": "81cec35b715f227328cad8f314acd797",
"assets/packages/intl_phone_field/assets/flags/ch.png": "a251702f7760b0aac141428ed60b7b66",
"assets/packages/intl_phone_field/assets/flags/cy.png": "7b36f4af86257a3f15f5a5a16f4a2fcd",
"assets/packages/intl_phone_field/assets/flags/by.png": "beabf61e94fb3a4f7c7a7890488b213d",
"assets/packages/intl_phone_field/assets/flags/bb.png": "a8473747387e4e7a8450c499529f1c93",
"assets/packages/intl_phone_field/assets/flags/ai.png": "ce5e91ed1725f0499b9231b69a7fd448",
"assets/packages/intl_phone_field/assets/flags/sn.png": "68eaa89bbc83b3f356e1ba2096b09b3c",
"assets/packages/intl_phone_field/assets/flags/at.png": "570c070177a5ea0fe03e20107ebf5283",
"assets/packages/intl_phone_field/assets/flags/ru.png": "6974dcb42ad7eb3add1009ea0c6003e3",
"assets/packages/intl_phone_field/assets/flags/pn.png": "0b0641b356af4c3e3489192ff4b0be77",
"assets/packages/intl_phone_field/assets/flags/sc.png": "e969fd5afb1eb5902675b6bcf49a8c2e",
"assets/packages/intl_phone_field/assets/flags/na.png": "cdc00e9267a873609b0abea944939ff7",
"assets/packages/intl_phone_field/assets/flags/ag.png": "41c11d5668c93ba6e452f811defdbb24",
"assets/packages/intl_phone_field/assets/flags/pm.png": "134bee9f9d794dc5c0922d1b9bdbb710",
"assets/packages/intl_phone_field/assets/flags/ro.png": "85af99741fe20664d9a7112cfd8d9722",
"assets/packages/intl_phone_field/assets/flags/mo.png": "849848a26bbfc87024017418ad7a6233",
"assets/packages/intl_phone_field/assets/flags/um.png": "8fe7c4fed0a065fdfb9bd3125c6ecaa1",
"assets/packages/intl_phone_field/assets/flags/th.png": "11ce0c9f8c738fd217ea52b9bc29014b",
"assets/packages/intl_phone_field/assets/flags/pl.png": "f20e9ef473a9ed24176f5ad74dd0d50a",
"assets/packages/intl_phone_field/assets/flags/sm.png": "a8d6801cb7c5360e18f0a2ed146b396d",
"assets/packages/intl_phone_field/assets/flags/fk.png": "da8b0fe48829aae2c8feb4839895de63",
"assets/packages/intl_phone_field/assets/flags/tv.png": "c57025ed7ae482210f29b9da86b0d211",
"assets/packages/intl_phone_field/assets/flags/gb-sct.png": "75106a5e49e3e16da76cb33bdac102ab",
"assets/packages/intl_phone_field/assets/flags/ci.png": "7f5ca3779d5ff6ce0c803a6efa0d2da7",
"assets/packages/intl_phone_field/assets/flags/eh.png": "515a9cf2620c802e305b5412ac81aed2",
"assets/packages/intl_phone_field/assets/flags/vi.png": "3f317c56f31971b3179abd4e03847036",
"assets/packages/intl_phone_field/assets/flags/kp.png": "e1c8bb52f31fca22d3368d8f492d8f27",
"assets/packages/intl_phone_field/assets/flags/ws.png": "f206322f3e22f175869869dbfadb6ce8",
"assets/packages/intl_phone_field/assets/flags/tm.png": "0980fb40ec450f70896f2c588510f933",
"assets/packages/intl_phone_field/assets/flags/lb.png": "f80cde345f0d9bd0086531808ce5166a",
"assets/packages/intl_phone_field/assets/flags/gg.png": "eed435d25bd755aa7f9cd7004b9ed49d",
"assets/packages/intl_phone_field/assets/flags/lu.png": "6274fd1cae3c7a425d25e4ccb0941bb8",
"assets/packages/intl_phone_field/assets/flags/ph.png": "e4025d1395a8455f1ba038597a95228c",
"assets/packages/intl_phone_field/assets/flags/za.png": "b28280c6c3eb4624c18b5455d4a1b1ff",
"assets/packages/intl_phone_field/assets/flags/sk.png": "2a1ee716d4b41c017ff1dbf3fd3ffc64",
"assets/packages/intl_phone_field/assets/flags/lc.png": "8c1a03a592aa0a99fcaf2b81508a87eb",
"assets/packages/intl_phone_field/assets/flags/bh.png": "a1acd86ef0e19ea5f0297bbe1de6cfd4",
"assets/packages/intl_phone_field/assets/flags/md.png": "8911d3d821b95b00abbba8771e997eb3",
"assets/packages/intl_phone_field/assets/flags/pa.png": "78e3e4fd56f0064837098fe3f22fb41b",
"assets/packages/intl_phone_field/assets/flags/ao.png": "5f0a372aa3aa7150a3dafea97acfc10d",
"assets/packages/intl_phone_field/assets/flags/gb.png": "98773db151c150cabe845183241bfe6b",
"assets/packages/intl_phone_field/assets/flags/hm.png": "72be14316f0af3903cdca7a726c0c589",
"assets/packages/intl_phone_field/assets/flags/mp.png": "87351c30a529071ee9a4bb67765fea4f",
"assets/packages/intl_phone_field/assets/flags/nu.png": "f4169998548e312584c67873e0d9352d",
"assets/packages/intl_phone_field/assets/flags/ly.png": "8d65057351859065d64b4c118ff9e30e",
"assets/packages/intl_phone_field/assets/flags/se.png": "25dd5434891ac1ca2ad1af59cda70f80",
"assets/packages/intl_phone_field/assets/flags/gn.png": "b2287c03c88a72d968aa796a076ba056",
"assets/packages/intl_phone_field/assets/flags/gl.png": "b79e24ee1889b7446ba3d65564b86810",
"assets/packages/intl_phone_field/assets/flags/tn.png": "6612e9fec4bef022cbd45cbb7c02b2b6",
"assets/packages/intl_phone_field/assets/flags/jo.png": "c01cb41f74f9db0cf07ba20f0af83011",
"assets/packages/intl_phone_field/assets/flags/lk.png": "5a3a063cfff4a92fb0ba6158e610e025",
"assets/packages/intl_phone_field/assets/flags/es.png": "654965f9722f6706586476fb2f5d30dd",
"assets/packages/intl_phone_field/assets/flags/wf.png": "6f1644b8f907d197c0ff7ed2f366ad64",
"assets/packages/intl_phone_field/assets/flags/cw.png": "6c598eb0d331d6b238da57055ec00d33",
"assets/packages/intl_phone_field/assets/flags/ye.png": "4cf73209d90e9f02ead1565c8fdf59e5",
"assets/packages/intl_phone_field/assets/flags/mq.png": "134bee9f9d794dc5c0922d1b9bdbb710",
"assets/packages/intl_phone_field/assets/flags/al.png": "722cf9e5c7a1d9c9e4608fb44dbb427d",
"assets/packages/intl_phone_field/assets/flags/gd.png": "7a4864ccfa2a0564041c2d1f8a13a8c9",
"assets/packages/intl_phone_field/assets/flags/bt.png": "3cfe1440e952bc7266d71f7f1454fa23",
"assets/packages/intl_phone_field/assets/flags/is.png": "907840430252c431518005b562707831",
"assets/packages/intl_phone_field/assets/flags/vc.png": "da3ca14a978717467abbcdece05d3544",
"assets/packages/intl_phone_field/assets/flags/cv.png": "9b1f31f9fc0795d728328dedd33eb1c0",
"assets/packages/intl_phone_field/assets/flags/pt.png": "eba93d33545c78cc67915d9be8323661",
"assets/packages/intl_phone_field/assets/flags/pg.png": "0f7e03465a93e0b4e3e1c9d3dd5814a4",
"assets/packages/intl_phone_field/assets/flags/kz.png": "cb3b0095281c9d7e7fb5ce1716ef8ee5",
"assets/packages/intl_phone_field/assets/flags/re.png": "134bee9f9d794dc5c0922d1b9bdbb710",
"assets/packages/intl_phone_field/assets/flags/jp.png": "25ac778acd990bedcfdc02a9b4570045",
"assets/packages/intl_phone_field/assets/flags/sr.png": "9f912879f2829a625436ccd15e643e39",
"assets/packages/intl_phone_field/assets/flags/ne.png": "a20724c177e86d6a27143aa9c9664a6f",
"assets/packages/intl_phone_field/assets/flags/ga.png": "b0e5b2fa1b7106c7652a955db24c11c4",
"assets/packages/intl_phone_field/assets/flags/it.png": "5c8e910e6a33ec63dfcda6e8960dd19c",
"assets/packages/intl_phone_field/assets/flags/kh.png": "d48d51e8769a26930da6edfc15de97fe",
"assets/packages/intl_phone_field/assets/flags/km.png": "5554c8746c16d4f482986fb78ffd9b36",
"assets/packages/intl_phone_field/assets/flags/gf.png": "134bee9f9d794dc5c0922d1b9bdbb710",
"assets/packages/intl_phone_field/assets/flags/aw.png": "a93ddf8e32d246dc47f6631f38e0ed92",
"assets/packages/intl_phone_field/assets/flags/sv.png": "217b691efbef7a0f48cdd53e91997f0e",
"assets/packages/intl_phone_field/assets/flags/pk.png": "7a6a621f7062589677b3296ca16c6718",
"assets/packages/intl_phone_field/assets/flags/gu.png": "2acb614b442e55864411b6e418df6eab",
"assets/packages/intl_phone_field/assets/flags/gi.png": "446aa44aaa063d240adab88243b460d3",
"assets/packages/intl_phone_field/assets/flags/eu.png": "c58ece3931acb87faadc5b940d4f7755",
"assets/packages/intl_phone_field/assets/flags/nl.png": "3649c177693bfee9c2fcc63c191a51f1",
"assets/packages/intl_phone_field/assets/flags/bw.png": "fac8b90d7404728c08686dc39bab4fb3",
"assets/packages/intl_phone_field/assets/flags/st.png": "fef62c31713ff1063da2564df3f43eea",
"assets/packages/intl_phone_field/assets/flags/vu.png": "3f201fdfb6d669a64c35c20a801016d1",
"assets/packages/intl_phone_field/assets/flags/ki.png": "14db0fc29398730064503907bd696176",
"assets/packages/intl_phone_field/assets/flags/tt.png": "a8e1fc5c65dc8bc362a9453fadf9c4b3",
"assets/packages/intl_phone_field/assets/flags/be.png": "7e5e1831cdd91935b38415479a7110eb",
"assets/packages/intl_phone_field/assets/flags/ht.png": "630f7f8567d87409a32955107ad11a86",
"assets/packages/intl_phone_field/assets/flags/gy.png": "159a260bf0217128ea7475ba5b272b6a",
"assets/packages/intl_phone_field/assets/flags/pw.png": "2e697cc6907a7b94c7f94f5d9b3bdccc",
"assets/packages/intl_phone_field/assets/flags/li.png": "ecdf7b3fe932378b110851674335d9ab",
"assets/packages/intl_phone_field/assets/flags/bn.png": "ed650de06fff61ff27ec92a872197948",
"assets/packages/intl_phone_field/assets/flags/ec.png": "c1ae60d080be91f3be31e92e0a2d9555",
"assets/packages/intl_phone_field/assets/flags/af.png": "ba710b50a060b5351381b55366396c30",
"assets/packages/intl_phone_field/assets/flags/kg.png": "c4aa6d221d9a9d332155518d6b82dbc7",
"assets/packages/intl_phone_field/assets/flags/aq.png": "0c586e7b91aa192758fdd0f03adb84d8",
"assets/packages/intl_phone_field/assets/flags/us.png": "83b065848d14d33c0d10a13e01862f34",
"assets/packages/intl_phone_field/assets/flags/ss.png": "b0120cb000b31bb1a5c801c3592139bc",
"assets/packages/intl_phone_field/assets/flags/gr.png": "ec11281d7decbf07b81a23a72a609b59",
"assets/packages/intl_phone_field/assets/flags/ug.png": "9a0f358b1eb19863e21ae2063fab51c0",
"assets/packages/intl_phone_field/assets/flags/ua.png": "b4b10d893611470661b079cb30473871",
"assets/packages/intl_phone_field/assets/flags/fj.png": "1c6a86752578eb132390febf12789cd6",
"assets/packages/intl_phone_field/assets/flags/mt.png": "f3119401ae0c3a9d6e2dc23803928c06",
"assets/packages/intl_phone_field/assets/flags/tw.png": "b1101fd5f871a9ffe7c9ad191a7d3304",
"assets/packages/intl_phone_field/assets/flags/ml.png": "0c50dfd539e87bb4313da0d4556e2d13",
"assets/packages/intl_phone_field/assets/flags/gs.png": "419dd57836797a3f1bf6258ea6589f9a",
"assets/packages/intl_phone_field/assets/flags/tf.png": "b2c044b86509e7960b5ba66b094ea285",
"assets/packages/intl_phone_field/assets/flags/cd.png": "5b5f832ed6cd9f9240cb31229d8763dc",
"assets/packages/intl_phone_field/assets/flags/dk.png": "abcd01bdbcc02b4a29cbac237f29cd1d",
"assets/packages/intl_phone_field/assets/flags/np.png": "6e099fb1e063930bdd00e8df5cef73d4",
"assets/packages/intl_phone_field/assets/flags/bs.png": "2b9540c4fa514f71911a48de0bd77e71",
"assets/packages/intl_phone_field/assets/flags/mn.png": "16086e8d89c9067d29fd0f2ea7021a45",
"assets/packages/intl_phone_field/assets/flags/ke.png": "cf5aae3699d3cacb39db9803edae172b",
"assets/packages/intl_phone_field/assets/flags/ls.png": "2bca756f9313957347404557acb532b0",
"assets/packages/intl_phone_field/assets/flags/ie.png": "1d91912afc591dd120b47b56ea78cdbf",
"assets/packages/intl_phone_field/assets/flags/rw.png": "d1aae0647a5b1ab977ae43ab894ce2c3",
"assets/packages/intl_phone_field/assets/flags/dj.png": "078bd37d41f746c3cb2d84c1e9611c55",
"assets/packages/intl_phone_field/assets/flags/mu.png": "c5228d1e94501d846b5bf203f038ae49",
"assets/packages/intl_phone_field/assets/flags/fo.png": "2c7d9233582e83a86927e634897a2a90",
"assets/packages/intl_phone_field/assets/flags/bi.png": "adda8121501f0543f1075244a1acc275",
"assets/packages/intl_phone_field/assets/flags/py.png": "154d4add03b4878caf00bd3249e14f40",
"assets/packages/intl_phone_field/assets/flags/uy.png": "da4247b21fcbd9e30dc2b3f7c5dccb64",
"assets/packages/intl_phone_field/assets/flags/bg.png": "1d24bc616e3389684ed2c9f18bcb0209",
"assets/packages/intl_phone_field/assets/flags/ni.png": "e398dc23e79d9ccd702546cc25f126bf",
"assets/packages/intl_phone_field/assets/flags/hu.png": "281582a753e643b46bdd894047db08bb",
"assets/packages/intl_phone_field/assets/flags/sj.png": "33bc70259c4908b7b9adeef9436f7a9f",
"assets/packages/intl_phone_field/assets/flags/gb-wls.png": "d7d7c77c72cd425d993bdc50720f4d04",
"assets/packages/intl_phone_field/assets/flags/co.png": "e3b1be16dcdae6cb72e9c238fdddce3c",
"assets/packages/intl_phone_field/assets/flags/qa.png": "eb9b3388e554cf85aea1e739247548df",
"assets/packages/intl_phone_field/assets/flags/ge.png": "6fbd41f07921fa415347ebf6dff5b0f7",
"assets/packages/intl_phone_field/assets/flags/pr.png": "b97b2f4432c430bc340d893f36527e31",
"assets/packages/intl_phone_field/assets/flags/am.png": "aaa39141fbc80205bebaa0200b55a13a",
"assets/packages/intl_phone_field/assets/flags/gm.png": "7148d3715527544c2e7d8d6f4a445bb6",
"assets/packages/intl_phone_field/assets/flags/ar.png": "3bd245f8c28f70c9ef9626dae27adc65",
"assets/packages/intl_phone_field/assets/flags/bj.png": "6fdc6449f73d23ad3f07060f92db4423",
"assets/packages/intl_phone_field/assets/flags/au.png": "72be14316f0af3903cdca7a726c0c589",
"assets/packages/intl_phone_field/assets/flags/gp.png": "134bee9f9d794dc5c0922d1b9bdbb710",
"assets/packages/intl_phone_field/assets/flags/sy.png": "24186a0f4ce804a16c91592db5a16a3a",
"assets/packages/intl_phone_field/assets/flags/fr.png": "134bee9f9d794dc5c0922d1b9bdbb710",
"assets/packages/intl_phone_field/assets/flags/vn.png": "32ff65ccbf31a707a195be2a5141a89b",
"assets/packages/intl_phone_field/assets/flags/no.png": "33bc70259c4908b7b9adeef9436f7a9f",
"assets/packages/intl_phone_field/assets/flags/cf.png": "263583ffdf7a888ce4fba8487d1da0b2",
"assets/packages/intl_phone_field/assets/flags/tz.png": "56ec99c7e0f68b88a2210620d873683a",
"assets/packages/intl_phone_field/assets/flags/xk.png": "079259fbcb1f3c78dafa944464295c16",
"assets/packages/intl_phone_field/assets/flags/cl.png": "6735e0e2d88c119e9ed1533be5249ef1",
"assets/packages/intl_phone_field/assets/flags/jm.png": "074400103847c56c37425a73f9d23665",
"assets/packages/intl_phone_field/assets/flags/in.png": "1dec13ba525529cffd4c7f8a35d51121",
"assets/packages/intl_phone_field/assets/flags/sl.png": "61b9d992c8a6a83abc4d432069617811",
"assets/packages/intl_phone_field/assets/flags/mr.png": "f2a62602d43a1ee14625af165b96ce2f",
"assets/packages/intl_phone_field/assets/flags/bq.png": "3649c177693bfee9c2fcc63c191a51f1",
"assets/packages/intl_phone_field/assets/flags/bf.png": "63f1c67fca7ce8b52b3418a90af6ad37",
"assets/packages/intl_phone_field/assets/flags/et.png": "57edff61c7fddf2761a19948acef1498",
"assets/packages/intl_phone_field/assets/flags/sx.png": "9c19254973d8acf81581ad95b408c7e6",
"assets/packages/intl_phone_field/assets/flags/gb-eng.png": "0d9f2a6775fd52b79e1d78eb1dda10cf",
"assets/packages/intl_phone_field/assets/flags/lr.png": "b92c75e18dd97349c75d6a43bd17ee94",
"assets/packages/intl_phone_field/assets/flags/eg.png": "311d780e8e3dd43f87e6070f6feb74c7",
"assets/packages/intl_phone_field/assets/flags/sz.png": "d1829842e45c2b2b29222c1b7e201591",
"assets/packages/intl_phone_field/assets/flags/yt.png": "134bee9f9d794dc5c0922d1b9bdbb710",
"assets/packages/intl_phone_field/assets/flags/to.png": "1cdd716b5b5502f85d6161dac6ee6c5b",
"assets/packages/intl_phone_field/assets/flags/la.png": "e8cd9c3ee6e134adcbe3e986e1974e4a",
"assets/packages/intl_phone_field/assets/flags/ir.png": "37f67c3141e9843196cb94815be7bd37",
"assets/packages/intl_phone_field/assets/flags/tl.png": "c80876dc80cda5ab6bb8ef078bc6b05d",
"assets/packages/intl_phone_field/assets/flags/kw.png": "3ca448e219d0df506fb2efd5b91be092",
"assets/packages/intl_phone_field/assets/flags/cm.png": "42d52fa71e8b4dbb182ff431749e8d0d",
"assets/packages/intl_phone_field/assets/flags/bz.png": "fd2d7d27a5ddabe4eb9a10b1d3a433e4",
"assets/packages/intl_phone_field/assets/flags/sa.png": "7c95c1a877148e2aa21a213d720ff4fd",
"assets/packages/intl_phone_field/assets/flags/nf.png": "1c2069b299ce3660a2a95ec574dfde25",
"assets/packages/intl_phone_field/assets/flags/nr.png": "1316f3a8a419d8be1975912c712535ea",
"assets/packages/intl_phone_field/assets/flags/nc.png": "cb36e0c945b79d56def11b23c6a9c7e9",
"assets/packages/intl_phone_field/assets/flags/ms.png": "9c955a926cf7d57fccb450a97192afa7",
"assets/packages/intl_phone_field/assets/flags/gw.png": "05606b9a6393971bd87718b809e054f9",
"assets/packages/intl_phone_field/assets/flags/sh.png": "98773db151c150cabe845183241bfe6b",
"assets/packages/intl_phone_field/assets/flags/ba.png": "d415bad33b35de3f095177e8e86cbc82",
"assets/packages/intl_phone_field/assets/flags/mc.png": "90c2ad7f144d73d4650cbea9dd621275",
"assets/packages/intl_phone_field/assets/flags/sb.png": "296ecedbd8d1c2a6422c3ba8e5cd54bd",
"assets/packages/intl_phone_field/assets/flags/hn.png": "9ecf68aed83c4a9b3f1e6275d96bfb04",
"assets/packages/intl_phone_field/assets/flags/rs.png": "9dff535d2d08c504be63062f39eff0b7",
"assets/packages/intl_phone_field/assets/flags/je.png": "288f8dca26098e83ff0455b08cceca1b",
"assets/packages/intl_phone_field/assets/flags/kr.png": "a3b7da3b76b20a70e9cd63cc2315b51b",
"assets/packages/intl_phone_field/assets/flags/pf.png": "1ae72c24380d087cbe2d0cd6c3b58821",
"assets/packages/intl_phone_field/assets/flags/zw.png": "078a3267ea8eabf88b2d43fe4aed5ce5",
"assets/packages/intl_phone_field/assets/flags/ps.png": "52a25a48658ca9274830ffa124a8c1db",
"assets/packages/intl_phone_field/assets/flags/bl.png": "dae94f5465d3390fdc5929e4f74d3f5f",
"assets/packages/intl_phone_field/assets/flags/ck.png": "39f343868a8dc8ca95d27b27a5caf480",
"assets/packages/intl_phone_field/assets/flags/do.png": "ed35983a9263bb5713be37d9a52caddc",
"assets/packages/intl_phone_field/assets/flags/sg.png": "bc772e50b8c79f08f3c2189f5d8ce491",
"assets/packages/intl_phone_field/assets/flags/az.png": "6ffa766f6883d2d3d350cdc22a062ca3",
"assets/packages/intl_phone_field/assets/flags/ee.png": "e242645cae28bd5291116ea211f9a566",
"assets/packages/intl_phone_field/assets/flags/iq.png": "bc3e6f68c5188dbf99b473e2bea066f2",
"assets/packages/intl_phone_field/assets/flags/cu.png": "f41715bd51f63a9aebf543788543b4c4",
"assets/packages/intl_phone_field/assets/flags/ae.png": "792efc5eb6c31d780bd34bf4bad69f3f",
"assets/packages/intl_phone_field/assets/flags/il.png": "1e06ad7783f24332405d36561024cc4c",
"assets/packages/intl_phone_field/assets/flags/fm.png": "d571b8bc4b80980a81a5edbde788b6d2",
"assets/packages/intl_phone_field/assets/flags/mw.png": "ffc1f18eeedc1dfbb1080aa985ce7d05",
"assets/packages/intl_phone_field/assets/flags/lt.png": "7df2cd6566725685f7feb2051f916a3e",
"assets/packages/intl_phone_field/assets/flags/an.png": "4e4b90fbca1275d1839ca5b44fc51071",
"assets/packages/intl_phone_field/assets/flags/cx.png": "8efa3231c8a3900a78f2b51d829f8c52",
"assets/packages/intl_phone_field/assets/flags/tc.png": "d728d6763c17c520ad6bcf3c24282a29",
"assets/packages/intl_phone_field/assets/flags/mg.png": "0ef6271ad284ebc0069ff0aeb5a3ad1e",
"assets/packages/intl_phone_field/assets/flags/so.png": "1ce20d052f9d057250be96f42647513b",
"assets/packages/intl_phone_field/assets/flags/ky.png": "38e39eba673e82c48a1f25bd103a7e97",
"assets/packages/intl_phone_field/assets/flags/dm.png": "8886b222ed9ccd00f67e8bcf86dadcc2",
"assets/packages/intl_phone_field/assets/flags/va.png": "c010bf145f695d5c8fb551bafc081f77",
"assets/packages/intl_phone_field/assets/flags/ad.png": "384e9845debe9aca8f8586d9bedcb7e6",
"assets/packages/intl_phone_field/assets/flags/om.png": "cebd9ab4b9ab071b2142e21ae2129efc",
"assets/packages/intl_phone_field/assets/flags/gh.png": "b35464dca793fa33e51bf890b5f3d92b",
"assets/packages/intl_phone_field/assets/flags/as.png": "d9c1da515c6f945c2e2554592a9dfaae",
"assets/packages/intl_phone_field/assets/flags/bd.png": "86a0e4bd8787dc8542137a407e0f987f",
"assets/packages/intl_phone_field/assets/flags/im.png": "7c9ccb825f0fca557d795c4330cf4f50",
"assets/packages/intl_phone_field/assets/flags/bo.png": "3ccf6fa7f9cbc27949b8418925e4e89c",
"assets/packages/intl_phone_field/assets/flags/cg.png": "eca97338cc1cb5b5e91bec72af57b3d4",
"assets/packages/intl_phone_field/assets/flags/ng.png": "aedbe364bd1543832e88e64b5817e877",
"assets/packages/intl_phone_field/assets/flags/mv.png": "d9245f74e34d5c054413ace4b86b4f16",
"assets/packages/intl_phone_field/assets/flags/de.png": "5d9561246523cf6183928756fd605e25",
"assets/packages/intl_phone_field/assets/flags/uz.png": "3adad3bac322220cac8abc1c7cbaacac",
"assets/packages/intl_phone_field/assets/flags/bm.png": "b366ba84cbc8286c830f392bb9086be5",
"assets/packages/intl_phone_field/assets/flags/ma.png": "057ea2e08587f1361b3547556adae0c2",
"assets/packages/intl_phone_field/assets/flags/bv.png": "33bc70259c4908b7b9adeef9436f7a9f",
"assets/packages/intl_phone_field/assets/flags/er.png": "8ca78e10878a2e97c1371b38c5d258a7",
"assets/packages/intl_phone_field/assets/flags/tk.png": "60428ff1cdbae680e5a0b8cde4677dd5",
"assets/packages/intl_phone_field/assets/flags/ca.png": "76f2fac1d3b2cc52ba6695c2e2941632",
"assets/packages/intl_phone_field/assets/flags/ax.png": "ec2062c36f09ed8fb90ac8992d010024",
"assets/packages/intl_phone_field/assets/flags/gt.png": "706a0c3b5e0b589c843e2539e813839e",
"assets/packages/intl_phone_field/assets/flags/vg.png": "fc095e11f5b58604d6f4d3c2b43d167f",
"assets/packages/intl_phone_field/assets/flags/sd.png": "65ce270762dfc87475ea99bd18f79025",
"assets/AssetManifest.bin.json": "611449d46e56c96b3baef404bfc56246",
"assets/FontManifest.json": "087fb858dc3cbfbf6baf6a30004922f1", "assets/FontManifest.json": "087fb858dc3cbfbf6baf6a30004922f1",
"flutter.js": "c71a09214cb6f5f8996a531350400a9a"}; "assets/fonts/MaterialIcons-Regular.otf": "a57618538ab8b4c4081d4491870ac333",
"assets/AssetManifest.json": "759f9ef9973f7e26c2a51450b55bb9fa",
"/": "1a380e64c7ec583dff72ce2ed9172654",
"favicon.ico": "51636d3a390451561744c42188ccd628",
"manifest.json": "ef43d90e57aa7682d7e2cfba2f484a40"};
// The application shell files that are downloaded before a service worker can // The application shell files that are downloaded before a service worker can
// start. // start.
const CORE = ["main.dart.js", const CORE = ["main.dart.js",

288322
public/main.dart.js vendored

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

277744
public/main.foss.dart.js vendored

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,406 @@
<html>
<head>
<style>
@page {
size: 21cm 29cm;
margin-left: 2.5cm;
}
body {
font-size: 9pt;
}
h1 {
font-size: 19px;
}
table {
margin: 0;
padding: 0;
table-layout: fixed;
}
tr {
margin: 0;
padding: 0;
}
th, td {
vertical-align: top;
}
th {
margin-left: 0;
margin-right: 0;
padding-left: 0;
padding-right: 0;
font-size: 8pt;
}
td {
font-size: 8pt;
}
table.postable {
width: 100%;
min-width: 100%;
max-width: 100%;
margin-top: 5px;
}
table.postable th {
padding-bottom: 10px;
}
table.postable td.posno,
table.postable th.posno {
width: 10%;
min-width: 10%;
max-width: 10%;
text-align: left;
}
table.postable td.posdesc,
table.postable th.posdesc {
width: 25%;
min-width: 25%;
max-width: 25%;
text-align: left;
}
table.postable td.posqty,
table.postable th.posqty {
width: 20%;
min-width: 20%;
max-width: 20%;
text-align: right;
}
table.postable td.posunitprice,
table.postable th.posunitprice {
width: 20%;
min-width: 20%;
max-width: 20%;
text-align: right;
}
table.postable td.poslineamount,
table.postable th.poslineamount {
width: 20%;
min-width: 20%;
max-width: 20%;
text-align: right;
}
table.postable td.poslinevat,
table.postable th.poslinevat {
width: 5%;
min-width: 5%;
max-width: 5%;
text-align: right;
}
table.postable th.posno {
border-bottom: 1px solid #dcdcdc;
}
table.postable th.posdesc {
border-bottom: 1px solid #dcdcdc;
}
table.postable th.posqty {
border-bottom: 1px solid #dcdcdc;
}
table.postable th.posunitprice {
border-bottom: 1px solid #dcdcdc;
}
table.postable th.poslineamount {
border-bottom: 1px solid #dcdcdc;
}
table.postable th.poslinevat {
border-bottom: 1px solid #dcdcdc;
}
table.postable td.totalname {
width: 20%;
min-width: 20%;
max-width: 20%;
text-align: left;
border-bottom: 1px solid #dcdcdc;
}
table.postable td.totalvalue {
width: 20%;
min-width: 20%;
max-width: 20%;
text-align: right;
border-bottom: 1px solid #dcdcdc;
}
.space {
padding-top: 10px;
}
.space2 {
padding-top: 20px;
}
.space3 {
padding-top: 30px;
}
.bold {
font-weight: bold;
}
.italic {
font-style: italic;
}
.red {
color: #ff0000;
}
.green {
color: #00fff0
}
.mt-15 {
margin-top: 15px;
}
.mt-20 {
margin-top: 20px;
}
.mt-25 {
margin-top: 25px;
}
.mt-30 {
margin-top: 30px;
}
.pt-15 {
padding-top: 15px;
}
.pt-20 {
padding-top: 20px;
}
.pt-25 {
padding-top: 25px;
}
.pt-30 {
padding-top: 30px;
}
.fs-10 {
font-size: 10pt;
}
.fs-11 {
font-size: 11pt;
}
.fs-12 {
font-size: 12pt;
}
.fs-13 {
font-size: 13pt;
}
.fs-14 {
font-size: 14pt;
}
.pb-0 {
padding-bottom: 0px;
}
</style>
</head>
<body>
<?php
$document->getDocumentInformation($documentno, $documenttypecode, $documentdate, $invoiceCurrency, $taxCurrency, $documentname, $documentlanguage, $effectiveSpecifiedPeriod);
$document->getDocumentBuyer($buyername, $buyerids, $buyerdescription);
$document->getDocumentBuyerAddress($buyeraddressline1, $buyeraddressline2, $buyeraddressline3, $buyerpostcode, $buyercity, $buyercounty, $buyersubdivision);
?>
<p>
<?php echo $buyername; ?><br>
<?php if ($buyeraddressline1) { ?><?php echo $buyeraddressline1; ?><br><?php } ?>
<?php if ($buyeraddressline2) { ?><?php echo $buyeraddressline2; ?><br><?php } ?>
<?php if ($buyeraddressline3) { ?><?php echo $buyeraddressline3; ?><br><?php } ?>
<?php echo $buyercounty . " " . $buyerpostcode . " " . $buyercity; ?><br>
</p>
<h1 style="margin: 0; padding: 0; margin-top: 50px">
Invoice <?php echo $documentno; ?>
</h1>
<p style="margin: 0; padding: 0">
Invoice Date <?php echo $documentdate->format("d.m.Y"); ?>
</p>
<p style="margin-top: 50px" class="bold">
Sehr geehrter Kunde,
</p>
<p>
wir erlauben uns Ihnen folgende Position in Rechnung zu stellen.
</p>
<table class="postable">
<thead>
<tr>
<th class="posno">Pos.</th>
<th class="posdesc">Beschreibung</th>
<th class="posqty">Stk.</th>
<th class="posunitprice">Preis</th>
<th class="poslineamount">Menge</th>
<th class="poslinevat">MwSt %</th>
</tr>
</thead>
<tbody>
<?php
if ($document->firstDocumentPosition()) {
$isfirstposition = true;
do {
$document->getDocumentPositionGenerals($lineid, $linestatuscode, $linestatusreasoncode);
$document->getDocumentPositionProductDetails($prodname, $proddesc, $prodsellerid, $prodbuyerid, $prodglobalidtype, $prodglobalid);
$document->getDocumentPositionGrossPrice($grosspriceamount, $grosspricebasisquantity, $grosspricebasisquantityunitcode);
$document->getDocumentPositionNetPrice($netpriceamount, $netpricebasisquantity, $netpricebasisquantityunitcode);
$document->getDocumentPositionLineSummation($lineTotalAmount, $totalAllowanceChargeAmount);
$document->getDocumentPositionQuantity($billedquantity, $billedquantityunitcode, $chargeFreeQuantity, $chargeFreeQuantityunitcode, $packageQuantity, $packageQuantityunitcode);
?>
<?php if ($document->firstDocumentPositionNote()) { ?>
<tr>
<td class="<?php echo $isfirstposition ? ' space' : '' ?>">&nbsp;</td>
<td colspan="5" class="<?php echo $isfirstposition ? ' space' : '' ?>">
<?php $document->getDocumentPositionNote($posnoteContent, $posnoteContentCode, $posnoteSubjectCode); ?>
<?php echo $posnoteContent; ?>
<?php $isfirstposition = false; ?>
</td>
</tr>
<?php } while ($document->nextDocumentPositionNote()); ?>
<tr>
<td class="posno<?php echo $isfirstposition ? ' space' : '' ?>"><?php echo $lineid; ?></td>
<td class="posdesc<?php echo $isfirstposition ? ' space' : '' ?>"><?php echo $prodname; ?></td>
<td class="posqty<?php echo $isfirstposition ? ' space' : '' ?>"><?php echo $billedquantity; ?> <?php echo $billedquantityunitcode ?></td>
<td class="posunitprice<?php echo $isfirstposition ? ' space' : '' ?>"><?php echo number_format($netpriceamount, 2); ?> <?php echo $invoiceCurrency; ?></td>
<td class="poslineamount<?php echo $isfirstposition ? ' space' : '' ?>"><?php echo number_format($lineTotalAmount, 2); ?> <?php echo $invoiceCurrency; ?></td>
<?php if ($document->firstDocumentPositionTax()) { ?>
<?php $document->getDocumentPositionTax($categoryCode, $typeCode, $rateApplicablePercent, $calculatedAmount, $exemptionReason, $exemptionReasonCode); ?>
<td class="poslinevat<?php echo $isfirstposition ? ' space' : '' ?>"><?php echo number_format($rateApplicablePercent, 2); ?> %</td>
<?php } else { ?>
<td class="poslinevat<?php echo $isfirstposition ? ' space' : '' ?>">&nbsp;</td>
<?php } ?>
</tr>
<?php if ($document->firstDocumentPositionGrossPriceAllowanceCharge()) { ?>
<?php do { ?>
<?php $document->getDocumentPositionGrossPrice($grossAmount, $grossBasisQuantity, $grossBasisQuantityUnitCode); ?>
<?php $document->getDocumentPositionGrossPriceAllowanceCharge($actualAmount, $isCharge, $calculationPercent, $basisAmount, $reason, $taxTypeCode, $taxCategoryCode, $rateApplicablePercent, $sequence, $basisQuantity, $basisQuantityUnitCode, $reasonCode); ?>
<tr>
<td class="posno">&nbsp;</td>
<td class="posdesc bold italic"><?php echo ($isCharge ? "Charge" : "Allowance") ?></td>
<td class="posqty">&nbsp;</td>
<td class="posunitprice italic"><?php echo number_format($actualAmount, 2); ?> (<?php echo number_format($grossAmount, 2); ?>) <?php echo $invoiceCurrency; ?></td>
</tr>
<?php } while ($document->nextDocumentPositionGrossPriceAllowanceCharge()); ?>
<?php } ?>
<?php $isfirstposition = false; ?>
<?php } while ($document->nextDocumentPosition()); ?>
<?php } ?>
<!--
Allowance/Charge
-->
<?php if ($document->firstDocumentAllowanceCharge()) { ?>
<tr>
<td colspan="6">&nbsp;</td>
</tr>
<tr>
<td colspan="3">&nbsp;</td>
<td colspan="3" class="bold fs-11 space">Allowance/Charge</td>
</tr>
<?php $isFirstDocumentAllowanceCharge = true; ?>
<?php do { ?>
<?php $document->getDocumentAllowanceCharge($actualAmount, $isCharge, $taxCategoryCode, $taxTypeCode, $rateApplicablePercent, $sequence, $calculationPercent, $basisAmount, $basisQuantity, $basisQuantityUnitCode, $reasonCode, $reason); ?>
<tr>
<td class="<?php echo $isFirstDocumentAllowanceCharge ? 'space' : ''; ?>" colspan="3">&nbsp;</td>
<td class="<?php echo $isFirstDocumentAllowanceCharge ? 'space' : ''; ?> totalname"><?php echo $reason ? $reason : ($isCharge ? "Charge" : "Allowance"); ?></td>
<td class="<?php echo $isFirstDocumentAllowanceCharge ? 'space' : ''; ?> totalvalue"><?php echo number_format($basisAmount, 2); ?> <?php echo $invoiceCurrency; ?></td>
<td class="<?php echo $isFirstDocumentAllowanceCharge ? 'space' : ''; ?> totalvalue bold"><?php echo number_format($actualAmount, 2); ?> <?php echo $invoiceCurrency; ?></td>
</tr>
<?php $isFirstDocumentAllowanceCharge = false; ?>
<?php } while ($document->nextDocumentAllowanceCharge()); ?>
<?php } ?>
<!--
Summmation
-->
<?php $document->getDocumentSummation($grandTotalAmount, $duePayableAmount, $lineTotalAmount, $chargeTotalAmount, $allowanceTotalAmount, $taxBasisTotalAmount, $taxTotalAmount, $roundingAmount, $totalPrepaidAmount); ?>
<tr>
<td colspan="6">&nbsp;</td>
</tr>
<tr>
<td colspan="3">&nbsp;</td>
<td colspan="3" class="bold fs-11 space">Summe</td>
</tr>
<tr>
<td class="space" colspan="3">&nbsp;</td>
<td class="space totalname" colspan="2">Nettobetrag</td>
<td class="space totalvalue"><?php echo number_format($lineTotalAmount, 2); ?> <?php echo $invoiceCurrency; ?></td>
</tr>
<?php if($chargeTotalAmount != 0) { ?>
<tr>
<td class="" colspan="3">&nbsp;</td>
<td class="totalname" colspan="2">Summe Aufschläge</td>
<td class="totalvalue"><?php echo number_format($chargeTotalAmount, 2); ?> <?php echo $invoiceCurrency; ?></td>
</tr>
<?php } ?>
<?php if($allowanceTotalAmount != 0) { ?>
<tr>
<td class="" colspan="3">&nbsp;</td>
<td class="totalname" colspan="2">Summe Rabatte</td>
<td class="totalvalue"><?php echo number_format($allowanceTotalAmount, 2); ?> <?php echo $invoiceCurrency; ?></td>
</tr>
<?php } ?>
<tr>
<td class="" colspan="3">&nbsp;</td>
<td class="totalname" colspan="2">MwSt.</td>
<td class="totalvalue"><?php echo number_format($taxTotalAmount, 2); ?> <?php echo $invoiceCurrency; ?></td>
</tr>
<tr>
<td class="" colspan="3">&nbsp;</td>
<td class="totalname bold" colspan="2">Bruttosumme</td>
<td class="totalvalue bold"><?php echo number_format($grandTotalAmount, 2); ?> <?php echo $invoiceCurrency; ?></td>
</tr>
<tr>
<td class="" colspan="3">&nbsp;</td>
<td class="totalname bold" colspan="2">Bereits gezahlt</td>
<td class="totalvalue bold"><?php echo number_format($totalPrepaidAmount, 2); ?> <?php echo $invoiceCurrency; ?></td>
</tr>
<tr>
<td class="" colspan="3">&nbsp;</td>
<td class="totalname bold" colspan="2">Zu Zahlen</td>
<td class="totalvalue bold"><?php echo number_format($duePayableAmount, 2); ?> <?php echo $invoiceCurrency; ?></td>
</tr>
<!--
VAT Summation
-->
<?php if($document->firstDocumentTax()) { ?>
<tr>
<td colspan="6">&nbsp;</td>
</tr>
<tr>
<td colspan="3">&nbsp;</td>
<td colspan="3" class="bold fs-11">VAT Breakdown</td>
</tr>
<?php $isfirsttax = true ?>
<?php $sumbasisamount = 0.0 ?>
<?php do { ?>
<?php $document->getDocumentTax($categoryCode, $typeCode, $basisAmount, $calculatedAmount, $rateApplicablePercent, $exemptionReason, $exemptionReasonCode, $lineTotalBasisAmount, $allowanceChargeBasisAmount, $taxPointDate, $dueDateTypeCode); ?>
<tr>
<td class="<?php echo $isfirsttax ? 'space' : '' ?>" colspan="3">&nbsp;</td>
<td class="totalname<?php echo $isfirsttax ? ' space' : '' ?>"><?php echo number_format($rateApplicablePercent, 2); ?>%</td>
<td class="totalvalue<?php echo $isfirsttax ? ' space' : '' ?>"><?php echo number_format($basisAmount,2) ?> <?php echo $invoiceCurrency; ?></td>
<td class="totalvalue bold<?php echo $isfirsttax ? ' space' : '' ?>"><?php echo number_format($calculatedAmount, 2); ?> <?php echo $invoiceCurrency; ?></td>
</tr>
<?php $sumbasisamount = $sumbasisamount + $basisAmount ?>
<?php $isfirsttax = false ?>
<?php } while ($document->nextDocumentTax()); ?>
<tr>
<td class="" colspan="3">&nbsp;</td>
<td class="totalname">Summe</td>
<td class="totalvalue"><?php echo number_format($sumbasisamount, 2); ?> <?php echo $invoiceCurrency; ?></td>
<td class="totalvalue bold"><?php echo number_format($taxTotalAmount, 2); ?> <?php echo $invoiceCurrency; ?></td>
</tr>
<?php } ?>
<!--
Paymentterms
-->
<?php if ($document->firstDocumentPaymentTerms()) { ?>
<?php $isfirstpaymentterm = true ?>
<?php do { ?>
<tr>
<?php $document->getDocumentPaymentTerm($description, $dueDate, $directDebitMandateID); ?>
<td colspan="6" class="<?php echo $isfirstpaymentterm ? 'space3' : '' ?>">
<?php echo $description; ?>
</td>
</tr>
<?php $isfirstpaymentterm = false ?>
<?php } while ($document->nextDocumentPaymentTerms()); ?>
<?php } ?>
<tr><td colspan="6" class=""><bold>Hinweise:</bold></td></tr>
<?php $document->getDocumentNotes($documentNotes); ?>
<?php foreach ($documentNotes as $documentNote) { ?>
<tr><td colspan="6" class=""><?php echo trim(nl2br($documentNote['content'])); ?></td></tr>
<?php } ?>
</tbody>
</table>
</body>
</html>

View File

@ -185,10 +185,8 @@ Route::group(['middleware' => ['throttle:api', 'api_db', 'token_auth', 'locale']
Route::post('client_statement', [ClientStatementController::class, 'statement'])->name('client.statement'); Route::post('client_statement', [ClientStatementController::class, 'statement'])->name('client.statement');
Route::post('companies/purge/{company}', [MigrationController::class, 'purgeCompany'])->middleware('password_protected');
Route::post('companies/current', [CompanyController::class, 'current'])->name('companies.current'); Route::post('companies/current', [CompanyController::class, 'current'])->name('companies.current');
Route::post('companies/purge/{company}', [MigrationController::class, 'purgeCompany'])->middleware('password_protected');
Route::post('companies/purge_save_settings/{company}', [MigrationController::class, 'purgeCompanySaveSettings'])->middleware('password_protected'); Route::post('companies/purge_save_settings/{company}', [MigrationController::class, 'purgeCompanySaveSettings'])->middleware('password_protected');
Route::resource('companies', CompanyController::class); // name = (companies. index / create / show / update / destroy / edit Route::resource('companies', CompanyController::class); // name = (companies. index / create / show / update / destroy / edit
@ -231,8 +229,8 @@ Route::post('companies/purge/{company}', [MigrationController::class, 'purgeComp
Route::resource('expenses', ExpenseController::class); // name = (expenses. index / create / show / update / destroy / edit Route::resource('expenses', ExpenseController::class); // name = (expenses. index / create / show / update / destroy / edit
Route::put('expenses/{expense}/upload', [ExpenseController::class, 'upload']); Route::put('expenses/{expense}/upload', [ExpenseController::class, 'upload']);
Route::post('expenses/bulk', [ExpenseController::class, 'bulk'])->name('expenses.bulk'); Route::post('expenses/bulk', [ExpenseController::class, 'bulk'])->name('expenses.bulk');
Route::post('export', [ExportController::class, 'index'])->name('export.index'); Route::post('export', [ExportController::class, 'index'])->name('export.index');
Route::put('edocument/upload', [ExpenseController::class, "edocument"])->name("expenses.edocument");
Route::resource('expense_categories', ExpenseCategoryController::class); // name = (expense_categories. index / create / show / update / destroy / edit Route::resource('expense_categories', ExpenseCategoryController::class); // name = (expense_categories. index / create / show / update / destroy / edit
Route::post('expense_categories/bulk', [ExpenseCategoryController::class, 'bulk'])->name('expense_categories.bulk'); Route::post('expense_categories/bulk', [ExpenseCategoryController::class, 'bulk'])->name('expense_categories.bulk');

View File

@ -54,7 +54,7 @@ class CheckRemindersTest extends TestCase
$this->invoice->service()->markSent(); $this->invoice->service()->markSent();
$this->invoice->service()->setReminder($settings)->save(); $this->invoice->service()->setReminder($settings)->save();
$this->assertEquals(0, Carbon::now()->addDays(7)->diffInDays($this->invoice->next_send_date)); $this->assertEquals(0, intval(abs(Carbon::now()->addDays(7)->diffInDays($this->invoice->next_send_date))));
} }
public function test_no_reminders_sent_to_paid_invoices() public function test_no_reminders_sent_to_paid_invoices()
@ -100,7 +100,7 @@ class CheckRemindersTest extends TestCase
$this->invoice->service()->markSent(); $this->invoice->service()->markSent();
$this->invoice->service()->setReminder($settings)->save(); $this->invoice->service()->setReminder($settings)->save();
$this->assertEquals(0, Carbon::parse($this->invoice->due_date)->subDays(29)->diffInDays($this->invoice->next_send_date)); $this->assertEquals(0, intval(abs(Carbon::parse($this->invoice->due_date)->subDays(29)->diffInDays($this->invoice->next_send_date))));
} }
public function test_after_due_date_reminder() public function test_after_due_date_reminder()
@ -120,7 +120,7 @@ class CheckRemindersTest extends TestCase
$this->invoice->service()->markSent(); $this->invoice->service()->markSent();
$this->invoice->service()->setReminder($settings)->save(); $this->invoice->service()->setReminder($settings)->save();
$this->assertEquals(0, Carbon::parse($this->invoice->due_date)->addDays(1)->diffInDays($this->invoice->next_send_date)); $this->assertEquals(0, intval(abs(Carbon::parse($this->invoice->due_date)->addDays(1)->diffInDays($this->invoice->next_send_date))));
} }
public function test_turning_off_reminders() public function test_turning_off_reminders()

View File

@ -209,7 +209,7 @@ class DatesTest extends TestCase
$start_date = Carbon::parse($string_date); $start_date = Carbon::parse($string_date);
$current_date = Carbon::parse('2021-06-20'); $current_date = Carbon::parse('2021-06-20');
$diff_in_days = $start_date->diffInDays($current_date); $diff_in_days = intval(abs($start_date->diffInDays($current_date)));
$this->assertEquals(19, $diff_in_days); $this->assertEquals(19, $diff_in_days);
} }
@ -218,9 +218,9 @@ class DatesTest extends TestCase
{ {
$now = Carbon::parse('2020-01-01'); $now = Carbon::parse('2020-01-01');
$x = now()->diffInDays(now()->addDays(7)); $x = intval(abs(now()->diffInDays(now()->addDays(7))));
$this->assertEquals(7, $x); $this->assertEquals(7, intval(abs($x)));
} }
public function testFourteenDaysFromNow() public function testFourteenDaysFromNow()

View File

@ -25,29 +25,8 @@ class RefundUnitTest extends TestCase
{ {
parent::setUp(); parent::setUp();
} }
// public function testProRataRefundMonthly()
// {
// $pro_rata = new ProRata();
// $refund = $pro_rata->refund(10, Carbon::parse('2021-01-01'), Carbon::parse('2021-01-31'), RecurringInvoice::FREQUENCY_MONTHLY);
// $this->assertEquals(9.68, $refund);
// $this->assertEquals(30, Carbon::parse('2021-01-01')->diffInDays(Carbon::parse('2021-01-31')));
// }
// public function testProRataRefundYearly()
// {
// $pro_rata = new ProRata();
// $refund = $pro_rata->refund(10, Carbon::parse('2021-01-01'), Carbon::parse('2021-01-31'), RecurringInvoice::FREQUENCY_ANNUALLY);
// $this->assertEquals(0.82, $refund);
// }
public function testDiffInDays() public function testDiffInDays()
{ {
$this->assertEquals(30, Carbon::parse('2021-01-01')->diffInDays(Carbon::parse('2021-01-31'))); $this->assertEquals(30, intval(abs(Carbon::parse('2021-01-01')->diffInDays(Carbon::parse('2021-01-31')))));
} }
} }