mirror of
https://github.com/crater-invoice/crater.git
synced 2025-10-28 12:11:08 -04:00
Compare commits
66 Commits
4.0.3
...
workflow-t
| Author | SHA1 | Date | |
|---|---|---|---|
| db1b0db461 | |||
| 17c00c322d | |||
| 331b8ea44e | |||
| 428be640c3 | |||
| 51f79433b9 | |||
| 8008ed0527 | |||
| 57b302666a | |||
| ee1d1ccff4 | |||
| 81e7109ad1 | |||
| 784bf39df5 | |||
| f66755c4aa | |||
| b4e1e99d37 | |||
| d8aa3dc8a6 | |||
| 9af51660cb | |||
| 38d0da9618 | |||
| 761c0143ec | |||
| fdc4de5093 | |||
| f8591f96a9 | |||
| e47cb01ce2 | |||
| 454ad3091a | |||
| cc73a8a842 | |||
| cea8405ace | |||
| 49a6e03e9d | |||
| f9d6e8b0cc | |||
| 2b78aacc83 | |||
| 1932c5a75e | |||
| 449968ae88 | |||
| 02a2db4417 | |||
| a53582f916 | |||
| 340bf3be06 | |||
| 7f0da9dc36 | |||
| c4ace76275 | |||
| 553bcc053b | |||
| 375a59a504 | |||
| cfc0a1ef75 | |||
| 392f6f469b | |||
| 6cb8d30915 | |||
| 9b55e84724 | |||
| cf5da7684b | |||
| f47029ca78 | |||
| 761df2ffac | |||
| 8fbc257b23 | |||
| baebfedf37 | |||
| 9321eb9d86 | |||
| 70bed01e7b | |||
| 739efcce79 | |||
| 3695e7d075 | |||
| 8f2033f621 | |||
| 7b95ccb5fc | |||
| b7370ed85c | |||
| 818f2fbaf7 | |||
| 91a1dbf91c | |||
| a4d556f41e | |||
| 83de1c47ee | |||
| 678ace744a | |||
| 9e26fee1b0 | |||
| e455c3de50 | |||
| c4db50d3f0 | |||
| 411ee57946 | |||
| 9c5e9e56f5 | |||
| 8eeafd3fed | |||
| ed978d0174 | |||
| 607b1795bb | |||
| a6c3c815b5 | |||
| ead0ebb012 | |||
| 8b04e94446 |
34
.github/workflows/ci.yaml
vendored
Normal file
34
.github/workflows/ci.yaml
vendored
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
name: CI
|
||||||
|
|
||||||
|
on: [push, pull_request]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build-test:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
php: ['7.4', '8.0']
|
||||||
|
|
||||||
|
name: PHP ${{ matrix.php }}
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: Install dependencies
|
||||||
|
uses: shivammathur/setup-php@v2
|
||||||
|
with:
|
||||||
|
php-version: ${{ matrix.php }}
|
||||||
|
extensions: exif
|
||||||
|
|
||||||
|
- name: Install PHP 7 dependencies
|
||||||
|
run: composer update --no-interaction --no-progress
|
||||||
|
if: "matrix.php < 8"
|
||||||
|
|
||||||
|
- name: Install PHP 8 dependencies
|
||||||
|
run: composer update --ignore-platform-req=php --no-interaction --no-progress
|
||||||
|
if: "matrix.php >= 8"
|
||||||
|
|
||||||
|
- name: Unit Tests
|
||||||
|
run: php ./vendor/bin/pest
|
||||||
@ -40,9 +40,16 @@ class SendEstimateMail extends Mailable
|
|||||||
'mailable_id' => $this->data['estimate']['id']
|
'mailable_id' => $this->data['estimate']['id']
|
||||||
]);
|
]);
|
||||||
|
|
||||||
return $this->from($this->data['from'])
|
$mailContent = $this->from($this->data['from'], config('mail.from.name'))
|
||||||
->subject($this->data['subject'])
|
->subject($this->data['subject'])
|
||||||
->markdown('emails.send.estimate', ['data', $this->data]);
|
->markdown('emails.send.estimate', ['data', $this->data]);
|
||||||
|
|
||||||
|
if ($this->data['attach']['data'])
|
||||||
|
$mailContent->attachData(
|
||||||
|
$this->data['attach']['data']->output(),
|
||||||
|
$this->data['estimate']['estimate_number'] . '.pdf'
|
||||||
|
);
|
||||||
|
|
||||||
|
return $mailContent;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace Crater\Mail;
|
namespace Crater\Mail;
|
||||||
|
|
||||||
|
use Config;
|
||||||
use Crater\Models\EmailLog;
|
use Crater\Models\EmailLog;
|
||||||
use Crater\Models\Invoice;
|
use Crater\Models\Invoice;
|
||||||
use Illuminate\Bus\Queueable;
|
use Illuminate\Bus\Queueable;
|
||||||
@ -39,9 +40,17 @@ class SendInvoiceMail extends Mailable
|
|||||||
'mailable_type' => Invoice::class,
|
'mailable_type' => Invoice::class,
|
||||||
'mailable_id' => $this->data['invoice']['id']
|
'mailable_id' => $this->data['invoice']['id']
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
$mailContent = $this->from($this->data['from'], config('mail.from.name'))
|
||||||
|
->subject($this->data['subject'])
|
||||||
|
->markdown('emails.send.invoice', ['data', $this->data]);
|
||||||
|
|
||||||
return $this->from($this->data['from'])
|
if ($this->data['attach']['data'])
|
||||||
->subject($this->data['subject'])
|
$mailContent->attachData(
|
||||||
->markdown('emails.send.invoice', ['data', $this->data]);
|
$this->data['attach']['data']->output(),
|
||||||
|
$this->data['invoice']['invoice_number'] . '.pdf'
|
||||||
|
);
|
||||||
|
|
||||||
|
return $mailContent;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -41,9 +41,16 @@ class SendPaymentMail extends Mailable
|
|||||||
'mailable_id' => $this->data['payment']['id']
|
'mailable_id' => $this->data['payment']['id']
|
||||||
]);
|
]);
|
||||||
|
|
||||||
return $this->from($this->data['from'])
|
$mailContent = $this->from($this->data['from'], config('mail.from.name'))
|
||||||
->subject($this->data['subject'])
|
->subject($this->data['subject'])
|
||||||
->markdown('emails.send.payment', ['data', $this->data]);
|
->markdown('emails.send.payment', ['data', $this->data]);
|
||||||
|
|
||||||
|
if ($this->data['attach']['data'])
|
||||||
|
$mailContent->attachData(
|
||||||
|
$this->data['attach']['data']->output(),
|
||||||
|
$this->data['payment']['payment_number'] . '.pdf'
|
||||||
|
);
|
||||||
|
|
||||||
|
return $mailContent;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace Crater\Models;
|
namespace Crater\Models;
|
||||||
|
|
||||||
use Crater\Models\Address;
|
use Crater\Models\Address;
|
||||||
@ -17,15 +18,34 @@ class Company extends Model implements HasMedia
|
|||||||
|
|
||||||
protected $fillable = ['name', 'logo', 'unique_hash'];
|
protected $fillable = ['name', 'logo', 'unique_hash'];
|
||||||
|
|
||||||
protected $appends=['logo'];
|
protected $appends = ['logo', 'logo_path'];
|
||||||
|
|
||||||
|
public function getLogoPathAttribute()
|
||||||
|
{
|
||||||
|
$logo = $this->getMedia('logo')->first();
|
||||||
|
|
||||||
|
$isSystem = FileDisk::whereSetAsDefault(true)->first()->isSystem();
|
||||||
|
|
||||||
|
if ($logo) {
|
||||||
|
if ($isSystem) {
|
||||||
|
return $logo->getPath();
|
||||||
|
} else {
|
||||||
|
return $logo->getFullUrl();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
public function getLogoAttribute()
|
public function getLogoAttribute()
|
||||||
{
|
{
|
||||||
$logo = $this->getMedia('logo')->first();
|
$logo = $this->getMedia('logo')->first();
|
||||||
|
|
||||||
if ($logo) {
|
if ($logo) {
|
||||||
return asset($logo->getUrl());
|
return $logo->getFullUrl();
|
||||||
}
|
}
|
||||||
return ;
|
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function user()
|
public function user()
|
||||||
|
|||||||
@ -33,9 +33,7 @@ class Estimate extends Model implements HasMedia
|
|||||||
protected $dates = [
|
protected $dates = [
|
||||||
'created_at',
|
'created_at',
|
||||||
'updated_at',
|
'updated_at',
|
||||||
'deleted_at',
|
'deleted_at'
|
||||||
'estimate_date',
|
|
||||||
'expiry_date'
|
|
||||||
];
|
];
|
||||||
|
|
||||||
protected $appends = [
|
protected $appends = [
|
||||||
@ -381,6 +379,7 @@ class Estimate extends Model implements HasMedia
|
|||||||
$data['user'] = $this->user->toArray();
|
$data['user'] = $this->user->toArray();
|
||||||
$data['company'] = $this->company->toArray();
|
$data['company'] = $this->company->toArray();
|
||||||
$data['body'] = $this->getEmailBody($data['body']);
|
$data['body'] = $this->getEmailBody($data['body']);
|
||||||
|
$data['attach']['data'] = ($this->getEmailAttachmentSetting()) ? $this->getPDFData() : null;
|
||||||
|
|
||||||
\Mail::to($data['to'])->send(new SendEstimateMail($data));
|
\Mail::to($data['to'])->send(new SendEstimateMail($data));
|
||||||
|
|
||||||
@ -428,16 +427,7 @@ class Estimate extends Model implements HasMedia
|
|||||||
$estimateTemplate = EstimateTemplate::find($this->estimate_template_id);
|
$estimateTemplate = EstimateTemplate::find($this->estimate_template_id);
|
||||||
|
|
||||||
$company = Company::find($this->company_id);
|
$company = Company::find($this->company_id);
|
||||||
$logo = $company->getMedia('logo')->first();
|
$logo = $company->logo_path;
|
||||||
|
|
||||||
$isSystem = FileDisk::whereSetAsDefault(true)->first()->isSystem();
|
|
||||||
$isLocalhost = config('session.domain') === 'localhost';
|
|
||||||
|
|
||||||
if ($logo && $isLocalhost && $isSystem) {
|
|
||||||
$logo = $logo->getPath();
|
|
||||||
} else if ($logo) {
|
|
||||||
$logo = $logo->getFullUrl();
|
|
||||||
}
|
|
||||||
|
|
||||||
view()->share([
|
view()->share([
|
||||||
'estimate' => $this,
|
'estimate' => $this,
|
||||||
@ -479,6 +469,17 @@ class Estimate extends Model implements HasMedia
|
|||||||
return $this->getFormattedString($this->notes);
|
return $this->getFormattedString($this->notes);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getEmailAttachmentSetting()
|
||||||
|
{
|
||||||
|
$estimateAsAttachment = CompanySetting::getSetting('estimate_email_attachment', $this->company_id);
|
||||||
|
|
||||||
|
if($estimateAsAttachment == 'NO') {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
public function getEmailBody($body)
|
public function getEmailBody($body)
|
||||||
{
|
{
|
||||||
$values = array_merge($this->getFieldsArray(), $this->getExtraFields());
|
$values = array_merge($this->getFieldsArray(), $this->getExtraFields());
|
||||||
|
|||||||
@ -22,7 +22,8 @@ class EstimateItem extends Model
|
|||||||
'discount_val',
|
'discount_val',
|
||||||
'tax',
|
'tax',
|
||||||
'total',
|
'total',
|
||||||
'discount'
|
'discount',
|
||||||
|
'unit_name',
|
||||||
];
|
];
|
||||||
|
|
||||||
protected $casts = [
|
protected $casts = [
|
||||||
|
|||||||
@ -39,9 +39,7 @@ class Invoice extends Model implements HasMedia
|
|||||||
protected $dates = [
|
protected $dates = [
|
||||||
'created_at',
|
'created_at',
|
||||||
'updated_at',
|
'updated_at',
|
||||||
'deleted_at',
|
'deleted_at'
|
||||||
'invoice_date',
|
|
||||||
'due_date'
|
|
||||||
];
|
];
|
||||||
|
|
||||||
protected $casts = [
|
protected $casts = [
|
||||||
@ -431,6 +429,7 @@ class Invoice extends Model implements HasMedia
|
|||||||
$data['user'] = $this->user->toArray();
|
$data['user'] = $this->user->toArray();
|
||||||
$data['company'] = Company::find($this->company_id);
|
$data['company'] = Company::find($this->company_id);
|
||||||
$data['body'] = $this->getEmailBody($data['body']);
|
$data['body'] = $this->getEmailBody($data['body']);
|
||||||
|
$data['attach']['data'] = ($this->getEmailAttachmentSetting()) ? $this->getPDFData() : null;
|
||||||
|
|
||||||
if ($this->status == Invoice::STATUS_DRAFT) {
|
if ($this->status == Invoice::STATUS_DRAFT) {
|
||||||
$this->status = Invoice::STATUS_SENT;
|
$this->status = Invoice::STATUS_SENT;
|
||||||
@ -512,16 +511,7 @@ class Invoice extends Model implements HasMedia
|
|||||||
|
|
||||||
$company = Company::find($this->company_id);
|
$company = Company::find($this->company_id);
|
||||||
|
|
||||||
$logo = $company->getMedia('logo')->first();
|
$logo = $company->logo_path;
|
||||||
|
|
||||||
$isSystem = FileDisk::whereSetAsDefault(true)->first()->isSystem();
|
|
||||||
$isLocalhost = config('session.domain') === 'localhost';
|
|
||||||
|
|
||||||
if ($logo && $isLocalhost && $isSystem) {
|
|
||||||
$logo = $logo->getPath();
|
|
||||||
} else if ($logo) {
|
|
||||||
$logo = $logo->getFullUrl();
|
|
||||||
}
|
|
||||||
|
|
||||||
view()->share([
|
view()->share([
|
||||||
'invoice' => $this,
|
'invoice' => $this,
|
||||||
@ -537,6 +527,17 @@ class Invoice extends Model implements HasMedia
|
|||||||
return PDF::loadView('app.pdf.invoice.' . $invoiceTemplate->view);
|
return PDF::loadView('app.pdf.invoice.' . $invoiceTemplate->view);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getEmailAttachmentSetting()
|
||||||
|
{
|
||||||
|
$invoiceAsAttachment = CompanySetting::getSetting('invoice_email_attachment', $this->company_id);
|
||||||
|
|
||||||
|
if($invoiceAsAttachment == 'NO') {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
public function getCompanyAddress()
|
public function getCompanyAddress()
|
||||||
{
|
{
|
||||||
$format = CompanySetting::getSetting('invoice_company_address_format', $this->company_id);
|
$format = CompanySetting::getSetting('invoice_company_address_format', $this->company_id);
|
||||||
|
|||||||
@ -25,7 +25,8 @@ class InvoiceItem extends Model
|
|||||||
'discount_val',
|
'discount_val',
|
||||||
'total',
|
'total',
|
||||||
'tax',
|
'tax',
|
||||||
'discount'
|
'discount',
|
||||||
|
'unit_name',
|
||||||
];
|
];
|
||||||
|
|
||||||
protected $casts = [
|
protected $casts = [
|
||||||
|
|||||||
@ -31,7 +31,7 @@ class Payment extends Model implements HasMedia
|
|||||||
const PAYMENT_MODE_CREDIT_CARD = 'CREDIT_CARD';
|
const PAYMENT_MODE_CREDIT_CARD = 'CREDIT_CARD';
|
||||||
const PAYMENT_MODE_BANK_TRANSFER = 'BANK_TRANSFER';
|
const PAYMENT_MODE_BANK_TRANSFER = 'BANK_TRANSFER';
|
||||||
|
|
||||||
protected $dates = ['created_at', 'updated_at', 'payment_date'];
|
protected $dates = ['created_at', 'updated_at'];
|
||||||
|
|
||||||
protected $guarded = ['id'];
|
protected $guarded = ['id'];
|
||||||
|
|
||||||
@ -124,6 +124,7 @@ class Payment extends Model implements HasMedia
|
|||||||
$data['user'] = $this->user->toArray();
|
$data['user'] = $this->user->toArray();
|
||||||
$data['company'] = Company::find($this->company_id);
|
$data['company'] = Company::find($this->company_id);
|
||||||
$data['body'] = $this->getEmailBody($data['body']);
|
$data['body'] = $this->getEmailBody($data['body']);
|
||||||
|
$data['attach']['data'] = ($this->getEmailAttachmentSetting()) ? $this->getPDFData() : null;
|
||||||
|
|
||||||
\Mail::to($data['to'])->send(new SendPaymentMail($data));
|
\Mail::to($data['to'])->send(new SendPaymentMail($data));
|
||||||
|
|
||||||
@ -216,10 +217,10 @@ class Payment extends Model implements HasMedia
|
|||||||
}
|
}
|
||||||
|
|
||||||
$payment = Payment::with([
|
$payment = Payment::with([
|
||||||
'user',
|
'user',
|
||||||
'invoice',
|
'invoice',
|
||||||
'paymentMethod',
|
'paymentMethod',
|
||||||
])
|
])
|
||||||
->find($this->id);
|
->find($this->id);
|
||||||
|
|
||||||
return $payment;
|
return $payment;
|
||||||
@ -268,7 +269,7 @@ class Payment extends Model implements HasMedia
|
|||||||
{
|
{
|
||||||
// Get the last created order
|
// Get the last created order
|
||||||
$payment = Payment::where('payment_number', 'LIKE', $value . '-%')
|
$payment = Payment::where('payment_number', 'LIKE', $value . '-%')
|
||||||
->orderBy('created_at', 'desc')
|
->orderBy('payment_number', 'desc')
|
||||||
->first();
|
->first();
|
||||||
if (!$payment) {
|
if (!$payment) {
|
||||||
// We get here if there is no order at all
|
// We get here if there is no order at all
|
||||||
@ -373,16 +374,7 @@ class Payment extends Model implements HasMedia
|
|||||||
{
|
{
|
||||||
$company = Company::find($this->company_id);
|
$company = Company::find($this->company_id);
|
||||||
|
|
||||||
$logo = $company->getMedia('logo')->first();
|
$logo = $company->logo_path;
|
||||||
|
|
||||||
$isSystem = FileDisk::whereSetAsDefault(true)->first()->isSystem();
|
|
||||||
$isLocalhost = config('session.domain') === 'localhost';
|
|
||||||
|
|
||||||
if ($logo && $isLocalhost && $isSystem) {
|
|
||||||
$logo = $logo->getPath();
|
|
||||||
} else if($logo) {
|
|
||||||
$logo = $logo->getFullUrl();
|
|
||||||
}
|
|
||||||
|
|
||||||
view()->share([
|
view()->share([
|
||||||
'payment' => $this,
|
'payment' => $this,
|
||||||
@ -409,6 +401,17 @@ class Payment extends Model implements HasMedia
|
|||||||
return $this->getFormattedString($format);
|
return $this->getFormattedString($format);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getEmailAttachmentSetting()
|
||||||
|
{
|
||||||
|
$paymentAsAttachment = CompanySetting::getSetting('payment_email_attachment', $this->company_id);
|
||||||
|
|
||||||
|
if($paymentAsAttachment == 'NO') {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
public function getNotes()
|
public function getNotes()
|
||||||
{
|
{
|
||||||
return $this->getFormattedString($this->notes);
|
return $this->getFormattedString($this->notes);
|
||||||
|
|||||||
@ -8,9 +8,9 @@
|
|||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"type": "project",
|
"type": "project",
|
||||||
"require": {
|
"require": {
|
||||||
"php": "^7.3",
|
"php": "^7.4 || ^8.0",
|
||||||
"aws/aws-sdk-php": "^3.142",
|
"aws/aws-sdk-php": "^3.142",
|
||||||
"barryvdh/laravel-dompdf": "^0.8.1",
|
"barryvdh/laravel-dompdf": "^0.9.0",
|
||||||
"doctrine/dbal": "^2.10",
|
"doctrine/dbal": "^2.10",
|
||||||
"fideloper/proxy": "^4.0",
|
"fideloper/proxy": "^4.0",
|
||||||
"fruitcake/laravel-cors": "^1.0",
|
"fruitcake/laravel-cors": "^1.0",
|
||||||
|
|||||||
1016
composer.lock
generated
1016
composer.lock
generated
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,29 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Crater\Models\Setting;
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
class UpdateCraterVersion404 extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function up()
|
||||||
|
{
|
||||||
|
Setting::setSetting('version', '4.0.4');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function down()
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,38 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
class AddUnitNameToPdf extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function up()
|
||||||
|
{
|
||||||
|
Schema::table('invoice_items', function (Blueprint $table) {
|
||||||
|
$table->string('unit_name')->nullable()->after('quantity');
|
||||||
|
});
|
||||||
|
Schema::table('estimate_items', function (Blueprint $table) {
|
||||||
|
$table->string('unit_name')->nullable()->after('quantity');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function down()
|
||||||
|
{
|
||||||
|
Schema::table('invoice_items', function (Blueprint $table) {
|
||||||
|
$table->dropColumn('unit_name');
|
||||||
|
});
|
||||||
|
Schema::table('estimate_items', function (Blueprint $table) {
|
||||||
|
$table->dropColumn('unit_name');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -37,7 +37,8 @@ class CurrenciesTableSeeder extends Seeder
|
|||||||
'symbol' => '€',
|
'symbol' => '€',
|
||||||
'precision' => '2',
|
'precision' => '2',
|
||||||
'thousand_separator' => '.',
|
'thousand_separator' => '.',
|
||||||
'decimal_separator' => ','
|
'decimal_separator' => ',',
|
||||||
|
'swap_currency_symbol' => true
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
'name' => 'South African Rand',
|
'name' => 'South African Rand',
|
||||||
@ -550,6 +551,22 @@ class CurrenciesTableSeeder extends Seeder
|
|||||||
'thousand_separator' => ',',
|
'thousand_separator' => ',',
|
||||||
'decimal_separator' => '.'
|
'decimal_separator' => '.'
|
||||||
],
|
],
|
||||||
|
[
|
||||||
|
'name' => 'Peruvian Soles',
|
||||||
|
'code' => 'PEN',
|
||||||
|
'symbol' => 'S/',
|
||||||
|
'precision' => '2',
|
||||||
|
'thousand_separator' => ',',
|
||||||
|
'decimal_separator' => '.'
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'name' => 'Moroccan Dirham',
|
||||||
|
'code' => 'MAD',
|
||||||
|
'symbol' => 'DH',
|
||||||
|
'precision' => '2',
|
||||||
|
'thousand_separator' => ',',
|
||||||
|
'decimal_separator' => '.'
|
||||||
|
],
|
||||||
];
|
];
|
||||||
|
|
||||||
foreach ($currencies as $currency) {
|
foreach ($currencies as $currency) {
|
||||||
|
|||||||
@ -60,6 +60,9 @@ class DefaultSettingsSeeder extends Seeder
|
|||||||
'payment_prefix' => 'PAY',
|
'payment_prefix' => 'PAY',
|
||||||
'payment_auto_generate' => 'YES',
|
'payment_auto_generate' => 'YES',
|
||||||
'save_pdf_to_disk' => 'NO',
|
'save_pdf_to_disk' => 'NO',
|
||||||
|
'invoice_email_attachment' => 'NO',
|
||||||
|
'estimate_email_attachment' => 'NO',
|
||||||
|
'payment_email_attachment' => 'NO',
|
||||||
];
|
];
|
||||||
|
|
||||||
CompanySetting::setSettings($settings, $user->company_id);
|
CompanySetting::setSettings($settings, $user->company_id);
|
||||||
|
|||||||
13055
package-lock.json
generated
13055
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
95
package.json
95
package.json
@ -1,49 +1,50 @@
|
|||||||
{
|
{
|
||||||
"private": true,
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
|
"dev": "mix",
|
||||||
"watch": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
|
"watch": "mix watch",
|
||||||
"watch-poll": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --watch-poll --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
|
"watch-poll": "mix watch -- --watch-options-poll=1000",
|
||||||
"hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js",
|
"hot": "mix watch --hot",
|
||||||
"production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js"
|
"production": "mix --production"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"babel-eslint": "^8.2.6",
|
"babel-eslint": "^8.2.6",
|
||||||
"cross-env": "^5.1",
|
"cross-env": "^5.1",
|
||||||
"eslint": "^4.19.1",
|
"eslint": "^4.19.1",
|
||||||
"eslint-config-prettier": "^6.15.0",
|
"eslint-config-prettier": "^6.15.0",
|
||||||
"eslint-loader": "^3.0.4",
|
"eslint-loader": "^3.0.4",
|
||||||
"eslint-plugin-prettier": "^3.3.0",
|
"eslint-plugin-prettier": "^3.3.0",
|
||||||
"eslint-plugin-vue": "^4.7.1",
|
"eslint-plugin-vue": "^4.7.1",
|
||||||
"laravel-mix": "^5.0.7",
|
"laravel-mix": "^6.0.6",
|
||||||
"prettier": "^2.2.1",
|
"postcss": "^8.1",
|
||||||
"resolve-url-loader": "3.1.0",
|
"prettier": "^2.2.1",
|
||||||
"sass": "^1.29.0",
|
"resolve-url-loader": "3.1.0",
|
||||||
"sass-loader": "^8.0.2",
|
"sass": "^1.29.0",
|
||||||
"tailwindcss-plugins": "^0.3.0",
|
"sass-loader": "^8.0.2",
|
||||||
"vue-template-compiler": "^2.6.10"
|
"tailwindcss-plugins": "^0.3.0",
|
||||||
},
|
"vue-template-compiler": "^2.6.10"
|
||||||
"dependencies": {
|
},
|
||||||
"@bytefury/spacewind": "^0.3.3",
|
"dependencies": {
|
||||||
"@vue-hero-icons/outline": "^1.6.3",
|
"@bytefury/spacewind": "^0.5.0",
|
||||||
"@vue-hero-icons/solid": "^1.6.3",
|
"@vue-hero-icons/outline": "^1.6.3",
|
||||||
"axios": "^0.19",
|
"@vue-hero-icons/solid": "^1.6.3",
|
||||||
"chart.js": "^2.7.3",
|
"axios": "^0.19",
|
||||||
"guid": "0.0.12",
|
"chart.js": "^2.7.3",
|
||||||
"lodash": "^4.17.13",
|
"guid": "0.0.12",
|
||||||
"moment": "^2.29.1",
|
"lodash": "^4.17.13",
|
||||||
"sweet-modal-vue": "^2.0.0",
|
"moment": "^2.29.1",
|
||||||
"sweetalert": "^2.1.2",
|
"sweet-modal-vue": "^2.0.0",
|
||||||
"tailwindcss": "^1.9.1",
|
"sweetalert": "^2.1.2",
|
||||||
"toastr": "^2.1.4",
|
"tailwindcss": "^2.0.1",
|
||||||
"v-tooltip": "^2.0.2",
|
"toastr": "^2.1.4",
|
||||||
"vue": "^2.6.10",
|
"v-tooltip": "^2.0.2",
|
||||||
"vue-i18n": "^8.22.0",
|
"vue": "^2.6.10",
|
||||||
"vue-loader": "^15.9.3",
|
"vue-i18n": "^8.22.0",
|
||||||
"vue-router": "2.7.0",
|
"vue-loader": "^15.9.3",
|
||||||
"vue2-transitions": "^0.3.0",
|
"vue-router": "2.7.0",
|
||||||
"vuedraggable": "^2.24.2",
|
"vue2-transitions": "^0.3.0",
|
||||||
"vuelidate": "^0.6.2",
|
"vuedraggable": "^2.24.2",
|
||||||
"vuex": "^3.0.1"
|
"vuelidate": "^0.6.2",
|
||||||
}
|
"vuex": "^3.0.1"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
2
public/assets/css/crater.css
vendored
2
public/assets/css/crater.css
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
@ -67,13 +67,6 @@
|
|||||||
* Date: 2020-03-14
|
* Date: 2020-03-14
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*!
|
|
||||||
* The buffer module from node.js, for the browser.
|
|
||||||
*
|
|
||||||
* @author Feross Aboukhadijeh <http://feross.org>
|
|
||||||
* @license MIT
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* Vue.js v2.6.12
|
* Vue.js v2.6.12
|
||||||
* (c) 2014-2020 Evan You
|
* (c) 2014-2020 Evan You
|
||||||
@ -94,6 +87,12 @@
|
|||||||
* Date: 2020-05-04T22:49Z
|
* Date: 2020-05-04T22:49Z
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* vue-i18n v8.22.2
|
||||||
|
* (c) 2020 kazuya kawaguchi
|
||||||
|
* Released under the MIT License.
|
||||||
|
*/
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* vue2-transitions v0.3.0
|
* vue2-transitions v0.3.0
|
||||||
* (c) 2019-present cristij <joracristi@gmail.com>
|
* (c) 2019-present cristij <joracristi@gmail.com>
|
||||||
@ -108,18 +107,6 @@
|
|||||||
|
|
||||||
/*! For license information please see index.js.LICENSE.txt */
|
/*! For license information please see index.js.LICENSE.txt */
|
||||||
|
|
||||||
/*! https://mths.be/punycode v1.4.1 by @mathias */
|
|
||||||
|
|
||||||
/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */
|
|
||||||
|
|
||||||
/*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */
|
|
||||||
|
|
||||||
/**
|
|
||||||
* vue-router v2.7.0
|
|
||||||
* (c) 2017 Evan You
|
|
||||||
* @license MIT
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @license
|
* @license
|
||||||
* Lodash <https://lodash.com/>
|
* Lodash <https://lodash.com/>
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@ -1,4 +1,4 @@
|
|||||||
{
|
{
|
||||||
"/assets/js/app.js": "/assets/js/app.js?id=311e432a0e58e62c984f",
|
"/assets/js/app.js": "/assets/js/app.js?id=abd09b4669350c773e19",
|
||||||
"/assets/css/crater.css": "/assets/css/crater.css?id=912348e74f68a41a1b35"
|
"/assets/css/crater.css": "/assets/css/crater.css?id=56e62ddcc9434f8f3fe5"
|
||||||
}
|
}
|
||||||
|
|||||||
@ -70,6 +70,8 @@ Crater is a product of [Bytefury](https://bytefury.com)
|
|||||||
- [Birkhoff Lee](https://github.com/BirkhoffLee)
|
- [Birkhoff Lee](https://github.com/BirkhoffLee)
|
||||||
- [Akaunting](https://github.com/akaunting/akaunting)
|
- [Akaunting](https://github.com/akaunting/akaunting)
|
||||||
- [MakerLab](https://github.com/MakerLab-Dev)
|
- [MakerLab](https://github.com/MakerLab-Dev)
|
||||||
|
- [Sebastian Cretu](https://github.com/sebastiancretu)
|
||||||
|
- [Florian Gareis](https://github.com/TheZoker)
|
||||||
|
|
||||||
## Translate
|
## Translate
|
||||||
|
|
||||||
|
|||||||
@ -3,6 +3,7 @@
|
|||||||
* include Vue and Vue Resource. This gives a great starting point for
|
* include Vue and Vue Resource. This gives a great starting point for
|
||||||
* building robust, powerful web applications using Vue and Laravel.
|
* building robust, powerful web applications using Vue and Laravel.
|
||||||
*/
|
*/
|
||||||
|
import Vue from 'vue'
|
||||||
import router from './router.js'
|
import router from './router.js'
|
||||||
import store from './store/index'
|
import store from './store/index'
|
||||||
import utils from './helpers/utilities'
|
import utils from './helpers/utilities'
|
||||||
@ -11,7 +12,7 @@ import swal from 'sweetalert'
|
|||||||
|
|
||||||
require('./bootstrap')
|
require('./bootstrap')
|
||||||
|
|
||||||
window.Vue.prototype.$utils = utils
|
Vue.prototype.$utils = utils
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Next, we will create a fresh Vue application instance and attach it to
|
* Next, we will create a fresh Vue application instance and attach it to
|
||||||
|
|||||||
13
resources/assets/js/bootstrap.js
vendored
13
resources/assets/js/bootstrap.js
vendored
@ -25,13 +25,6 @@ Vue.use(Vuelidate)
|
|||||||
Vue.use(Transitions)
|
Vue.use(Transitions)
|
||||||
|
|
||||||
window._ = require('lodash')
|
window._ = require('lodash')
|
||||||
/**
|
|
||||||
* Vue is a modern JavaScript library for building interactive web interfaces
|
|
||||||
* using reactive data binding and reusable components. Vue's API is clean
|
|
||||||
* and simple, leaving you to focus on building your next great project.
|
|
||||||
*/
|
|
||||||
|
|
||||||
window.Vue = require('vue')
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Custom Directives
|
* Custom Directives
|
||||||
@ -97,7 +90,8 @@ global.axios.interceptors.response.use(undefined, function (err) {
|
|||||||
}
|
}
|
||||||
if (!err.response) {
|
if (!err.response) {
|
||||||
window.toastr['error'](
|
window.toastr['error'](
|
||||||
'Please check your internet connection or wait until servers are back online', 'Network Error'
|
'Please check your internet connection or wait until servers are back online',
|
||||||
|
'Network Error'
|
||||||
)
|
)
|
||||||
} else {
|
} else {
|
||||||
if (
|
if (
|
||||||
@ -121,7 +115,8 @@ global.axios.interceptors.response.use(undefined, function (err) {
|
|||||||
window.toastr['error'](
|
window.toastr['error'](
|
||||||
err.response.data.message
|
err.response.data.message
|
||||||
? err.response.data.message
|
? err.response.data.message
|
||||||
: err.response.data || 'Unknown error occurred', 'Error'
|
: err.response.data || 'Unknown error occurred',
|
||||||
|
'Error'
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,3 +1,5 @@
|
|||||||
|
import Vue from 'vue'
|
||||||
|
|
||||||
import BaseModal from './modal/BaseModal.vue'
|
import BaseModal from './modal/BaseModal.vue'
|
||||||
import BaseLoader from './BaseLoader.vue'
|
import BaseLoader from './BaseLoader.vue'
|
||||||
import BaseCustomerSelect from './BaseCustomerSelect.vue'
|
import BaseCustomerSelect from './BaseCustomerSelect.vue'
|
||||||
|
|||||||
8
resources/assets/js/components/base/modal/ItemUnitModal.vue
Normal file → Executable file
8
resources/assets/js/components/base/modal/ItemUnitModal.vue
Normal file → Executable file
@ -68,6 +68,14 @@ export default {
|
|||||||
if (!this.$v.formData.name.required) {
|
if (!this.$v.formData.name.required) {
|
||||||
return this.$tc('validation.required')
|
return this.$tc('validation.required')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!this.$v.formData.name.minLength) {
|
||||||
|
return this.$tc(
|
||||||
|
'validation.name_min_length',
|
||||||
|
this.$v.formData.name.$params.minLength.min,
|
||||||
|
{ count: this.$v.formData.name.$params.minLength.min }
|
||||||
|
)
|
||||||
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
validations: {
|
validations: {
|
||||||
|
|||||||
8
resources/assets/js/components/base/modal/NoteModal.vue
Normal file → Executable file
8
resources/assets/js/components/base/modal/NoteModal.vue
Normal file → Executable file
@ -105,6 +105,14 @@ export default {
|
|||||||
if (!this.$v.formData.name.required) {
|
if (!this.$v.formData.name.required) {
|
||||||
return this.$tc('validation.required')
|
return this.$tc('validation.required')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!this.$v.formData.name.minLength) {
|
||||||
|
return this.$tc(
|
||||||
|
'validation.name_min_length',
|
||||||
|
this.$v.formData.name.$params.minLength.min,
|
||||||
|
{ count: this.$v.formData.name.$params.minLength.min }
|
||||||
|
)
|
||||||
|
}
|
||||||
},
|
},
|
||||||
noteError() {
|
noteError() {
|
||||||
if (!this.$v.formData.notes.$error) {
|
if (!this.$v.formData.notes.$error) {
|
||||||
|
|||||||
8
resources/assets/js/components/base/modal/PaymentModeModal.vue
Normal file → Executable file
8
resources/assets/js/components/base/modal/PaymentModeModal.vue
Normal file → Executable file
@ -62,6 +62,14 @@ export default {
|
|||||||
if (!this.$v.formData.name.required) {
|
if (!this.$v.formData.name.required) {
|
||||||
return this.$tc('validation.required')
|
return this.$tc('validation.required')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!this.$v.formData.name.minLength) {
|
||||||
|
return this.$tc(
|
||||||
|
'validation.name_min_length',
|
||||||
|
this.$v.formData.name.$params.minLength.min,
|
||||||
|
{ count: this.$v.formData.name.$params.minLength.min }
|
||||||
|
)
|
||||||
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
validations: {
|
validations: {
|
||||||
|
|||||||
@ -12,7 +12,7 @@ export default {
|
|||||||
disabledMultiSelectTags: 'bg-gray-200 text-gray-400',
|
disabledMultiSelectTags: 'bg-gray-200 text-gray-400',
|
||||||
multiselectTagsWrap: 'multiselect__tags-wrap inline',
|
multiselectTagsWrap: 'multiselect__tags-wrap inline',
|
||||||
multiselectTag:
|
multiselectTag:
|
||||||
'multiselect__tag relative inline-block pt-1 pr-6 pb-1 pl-2 rounded mr-2 text-white leading-none mb-1 whitespace-no-wrap overflow-hidden max-w-full',
|
'multiselect__tag relative inline-block pt-1 pr-6 pb-1 pl-2 rounded mr-2 text-white leading-none mb-1 whitespace-nowrap overflow-hidden max-w-full',
|
||||||
multiselectTagIcon:
|
multiselectTagIcon:
|
||||||
'multiselect__tag-icon cursor-pointer ml-2 absolute right-0 top-0 bottom-0 font-bold w-5 text-center leading-5 delay-200 transition-all ease-linear rounded',
|
'multiselect__tag-icon cursor-pointer ml-2 absolute right-0 top-0 bottom-0 font-bold w-5 text-center leading-5 delay-200 transition-all ease-linear rounded',
|
||||||
multiselectStrong: 'mb-2 leading-5 inline-block align-top',
|
multiselectStrong: 'mb-2 leading-5 inline-block align-top',
|
||||||
@ -26,6 +26,6 @@ export default {
|
|||||||
multiselectContent:
|
multiselectContent:
|
||||||
'multiselect__content list-none inline-block p-0 m-0 min-w-full align-top',
|
'multiselect__content list-none inline-block p-0 m-0 min-w-full align-top',
|
||||||
multiselectOption:
|
multiselectOption:
|
||||||
'multiselect__option block p-3 no-underline leading-4 normal-case align-middle relative cursor-pointer whitespace-no-wrap text-sm',
|
'multiselect__option block p-3 no-underline leading-4 normal-case align-middle relative cursor-pointer whitespace-nowrap text-sm',
|
||||||
multiselectElement: 'multiselect__element block',
|
multiselectElement: 'multiselect__element block',
|
||||||
}
|
}
|
||||||
|
|||||||
@ -13,4 +13,10 @@ export default {
|
|||||||
'inline-flex items-center justify-center text-black transition px-2 duration-150 ease-in-out border border-gray-300 border-solid focus:outline-none bg-white',
|
'inline-flex items-center justify-center text-black transition px-2 duration-150 ease-in-out border border-gray-300 border-solid focus:outline-none bg-white',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
sizes: {
|
||||||
|
discount: {
|
||||||
|
button: 'py-2 px-2 text-sm leading-5 rounded',
|
||||||
|
loadingIcon: 'w-4 h-4 -ml-2',
|
||||||
|
},
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|||||||
@ -6,7 +6,7 @@ export default {
|
|||||||
itemContainer:
|
itemContainer:
|
||||||
'z-10 p-2 max-h-60 text-base text-left list-none rounded border-0 shadow bg-white text-black overflow-auto sw-scroll',
|
'z-10 p-2 max-h-60 text-base text-left list-none rounded border-0 shadow bg-white text-black overflow-auto sw-scroll',
|
||||||
item:
|
item:
|
||||||
'flex p-2 text-sm font-light text-left text-black bg-transparent rounded cursor-pointer none hover:bg-gray-200 whitespace-no-wrap',
|
'flex p-2 text-sm font-light text-left text-black bg-transparent rounded cursor-pointer none hover:bg-gray-200 whitespace-nowrap',
|
||||||
itemIcon: 'w-5 h-5 mr-3 text-secondary',
|
itemIcon: 'w-5 h-5 mr-3 text-secondary',
|
||||||
},
|
},
|
||||||
variants: {
|
variants: {
|
||||||
@ -16,7 +16,7 @@ export default {
|
|||||||
divider:
|
divider:
|
||||||
'border-t border-solid border-gray-200 my-2 mx-0 overflow-hidden',
|
'border-t border-solid border-gray-200 my-2 mx-0 overflow-hidden',
|
||||||
item:
|
item:
|
||||||
'flex p-0 text-sm font-light text-left text-black bg-transparent rounded cursor-pointer none hover:bg-gray-200 whitespace-no-wrap',
|
'flex p-0 text-sm font-light text-left text-black bg-transparent rounded cursor-pointer none hover:bg-gray-200 whitespace-nowrap',
|
||||||
itemContainer:
|
itemContainer:
|
||||||
'z-10 p-2 text-base text-left list-none rounded border-0 shadow bg-white text-black',
|
'z-10 p-2 text-base text-left list-none rounded border-0 shadow bg-white text-black',
|
||||||
itemIcon: 'w-5 h-5 mr-3 text-secondary',
|
itemIcon: 'w-5 h-5 mr-3 text-secondary',
|
||||||
|
|||||||
@ -1,3 +1,5 @@
|
|||||||
|
import Vue from 'vue'
|
||||||
|
|
||||||
Vue.directive('click-outside', {
|
Vue.directive('click-outside', {
|
||||||
bind: function (el, binding, vnode) {
|
bind: function (el, binding, vnode) {
|
||||||
el.event = function (event) {
|
el.event = function (event) {
|
||||||
@ -17,7 +19,9 @@ Vue.directive('click-outside', {
|
|||||||
Vue.directive('autoresize', {
|
Vue.directive('autoresize', {
|
||||||
inserted: function (el) {
|
inserted: function (el) {
|
||||||
el.style.height = el.scrollHeight + 'px'
|
el.style.height = el.scrollHeight + 'px'
|
||||||
el.style.overflow.y = 'hidden'
|
if (el.style.overflow && el.style.overflow.y) {
|
||||||
|
el.style.overflow.y = 'hidden'
|
||||||
|
}
|
||||||
el.style.resize = 'none'
|
el.style.resize = 'none'
|
||||||
function OnInput() {
|
function OnInput() {
|
||||||
this.style.height = 'auto'
|
this.style.height = 'auto'
|
||||||
|
|||||||
@ -1,3 +1,5 @@
|
|||||||
|
import i18n from '../plugins/i18n';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
addClass(el, className) {
|
addClass(el, className) {
|
||||||
if (el.classList) el.classList.add(className)
|
if (el.classList) el.classList.add(className)
|
||||||
@ -23,7 +25,13 @@ export default {
|
|||||||
|
|
||||||
amount = amount / 100
|
amount = amount / 100
|
||||||
|
|
||||||
let { precision, decimal_separator, thousand_separator, symbol } = currency
|
let {
|
||||||
|
precision,
|
||||||
|
decimal_separator,
|
||||||
|
thousand_separator,
|
||||||
|
symbol,
|
||||||
|
swap_currency_symbol,
|
||||||
|
} = currency
|
||||||
|
|
||||||
try {
|
try {
|
||||||
precision = Math.abs(precision)
|
precision = Math.abs(precision)
|
||||||
@ -37,20 +45,22 @@ export default {
|
|||||||
let j = i.length > 3 ? i.length % 3 : 0
|
let j = i.length > 3 ? i.length % 3 : 0
|
||||||
|
|
||||||
let moneySymbol = `<span style="font-family: sans-serif">${symbol}</span>`
|
let moneySymbol = `<span style="font-family: sans-serif">${symbol}</span>`
|
||||||
|
let thousandText = j ? i.substr(0, j) + thousand_separator : ''
|
||||||
|
let amountText = i
|
||||||
|
.substr(j)
|
||||||
|
.replace(/(\d{3})(?=\d)/g, '$1' + thousand_separator)
|
||||||
|
let precisionText = precision
|
||||||
|
? decimal_separator +
|
||||||
|
Math.abs(amount - i)
|
||||||
|
.toFixed(precision)
|
||||||
|
.slice(2)
|
||||||
|
: ''
|
||||||
|
let combinedAmountText =
|
||||||
|
negativeSign + thousandText + amountText + precisionText
|
||||||
|
|
||||||
return (
|
return swap_currency_symbol
|
||||||
moneySymbol +
|
? combinedAmountText + ' ' + moneySymbol
|
||||||
' ' +
|
: moneySymbol + ' ' + combinedAmountText
|
||||||
negativeSign +
|
|
||||||
(j ? i.substr(0, j) + thousand_separator : '') +
|
|
||||||
i.substr(j).replace(/(\d{3})(?=\d)/g, '$1' + thousand_separator) +
|
|
||||||
(precision
|
|
||||||
? decimal_separator +
|
|
||||||
Math.abs(amount - i)
|
|
||||||
.toFixed(precision)
|
|
||||||
.slice(2)
|
|
||||||
: '')
|
|
||||||
)
|
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.log(e)
|
console.log(e)
|
||||||
}
|
}
|
||||||
@ -68,7 +78,13 @@ export default {
|
|||||||
|
|
||||||
amount = amount / 100
|
amount = amount / 100
|
||||||
|
|
||||||
let { precision, decimal_separator, thousand_separator, symbol } = currency
|
let {
|
||||||
|
precision,
|
||||||
|
decimal_separator,
|
||||||
|
thousand_separator,
|
||||||
|
symbol,
|
||||||
|
swap_currency_symbol,
|
||||||
|
} = currency
|
||||||
|
|
||||||
try {
|
try {
|
||||||
precision = Math.abs(precision)
|
precision = Math.abs(precision)
|
||||||
@ -82,20 +98,22 @@ export default {
|
|||||||
let j = i.length > 3 ? i.length % 3 : 0
|
let j = i.length > 3 ? i.length % 3 : 0
|
||||||
|
|
||||||
let moneySymbol = `${symbol}`
|
let moneySymbol = `${symbol}`
|
||||||
|
let thousandText = j ? i.substr(0, j) + thousand_separator : ''
|
||||||
|
let amountText = i
|
||||||
|
.substr(j)
|
||||||
|
.replace(/(\d{3})(?=\d)/g, '$1' + thousand_separator)
|
||||||
|
let precisionText = precision
|
||||||
|
? decimal_separator +
|
||||||
|
Math.abs(amount - i)
|
||||||
|
.toFixed(precision)
|
||||||
|
.slice(2)
|
||||||
|
: ''
|
||||||
|
let combinedAmountText =
|
||||||
|
negativeSign + thousandText + amountText + precisionText
|
||||||
|
|
||||||
return (
|
return swap_currency_symbol
|
||||||
moneySymbol +
|
? combinedAmountText + ' ' + moneySymbol
|
||||||
' ' +
|
: moneySymbol + ' ' + combinedAmountText
|
||||||
negativeSign +
|
|
||||||
(j ? i.substr(0, j) + thousand_separator : '') +
|
|
||||||
i.substr(j).replace(/(\d{3})(?=\d)/g, '$1' + thousand_separator) +
|
|
||||||
(precision
|
|
||||||
? decimal_separator +
|
|
||||||
Math.abs(amount - i)
|
|
||||||
.toFixed(precision)
|
|
||||||
.slice(2)
|
|
||||||
: '')
|
|
||||||
)
|
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.log(e)
|
console.log(e)
|
||||||
}
|
}
|
||||||
@ -245,6 +263,36 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
getStatusTranslation(status) {
|
||||||
|
switch (status) {
|
||||||
|
case 'DRAFT':
|
||||||
|
return i18n.t('general.draft')
|
||||||
|
case 'PAID':
|
||||||
|
return i18n.t('invoices.paid')
|
||||||
|
case 'UNPAID':
|
||||||
|
return i18n.t('invoices.unpaid')
|
||||||
|
case 'SENT':
|
||||||
|
return i18n.t('general.sent')
|
||||||
|
case 'REJECTED':
|
||||||
|
return i18n.t('estimates.rejected')
|
||||||
|
case 'ACCEPTED':
|
||||||
|
return i18n.t('estimates.accepted')
|
||||||
|
case 'VIEWED':
|
||||||
|
return i18n.t('invoices.viewed')
|
||||||
|
case 'EXPIRED':
|
||||||
|
return i18n.t('estimates.expired')
|
||||||
|
case 'PARTIALLY PAID':
|
||||||
|
return i18n.t('estimates.partially_paid')
|
||||||
|
case 'OVERDUE':
|
||||||
|
return i18n.t('invoices.overdue')
|
||||||
|
case 'COMPLETED':
|
||||||
|
return i18n.t('invoices.completed')
|
||||||
|
case 'DUE':
|
||||||
|
return i18n.t('general.due')
|
||||||
|
default:
|
||||||
|
return status
|
||||||
|
}
|
||||||
|
},
|
||||||
compareVersion(v1, v2, options) {
|
compareVersion(v1, v2, options) {
|
||||||
const lexicographical = options && options.lexicographical
|
const lexicographical = options && options.lexicographical
|
||||||
const zeroExtend = options && options.zeroExtend
|
const zeroExtend = options && options.zeroExtend
|
||||||
@ -280,5 +328,5 @@ export default {
|
|||||||
return -1
|
return -1
|
||||||
}
|
}
|
||||||
return 0
|
return 0
|
||||||
}
|
},
|
||||||
}
|
}
|
||||||
|
|||||||
@ -177,6 +177,8 @@
|
|||||||
"copy_billing_address": "نسخ من عنوان الفوترة",
|
"copy_billing_address": "نسخ من عنوان الفوترة",
|
||||||
"no_customers": "لا يوجد عملاء حتى الآن!",
|
"no_customers": "لا يوجد عملاء حتى الآن!",
|
||||||
"no_customers_found": "لم يتم الحصول على عملاء!",
|
"no_customers_found": "لم يتم الحصول على عملاء!",
|
||||||
|
"no_contact": "No contact",
|
||||||
|
"no_contact_name": "No contact name",
|
||||||
"list_of_customers": "سوف يحتوي هذا القسم على قائمة العملاء.",
|
"list_of_customers": "سوف يحتوي هذا القسم على قائمة العملاء.",
|
||||||
"primary_display_name": "اسم العرض الرئيسي",
|
"primary_display_name": "اسم العرض الرئيسي",
|
||||||
"select_currency": "اختر العملة",
|
"select_currency": "اختر العملة",
|
||||||
@ -200,6 +202,7 @@
|
|||||||
"added_on": "أضيف في",
|
"added_on": "أضيف في",
|
||||||
"price": "السعر",
|
"price": "السعر",
|
||||||
"date_of_creation": "تاريخ الإنشاء",
|
"date_of_creation": "تاريخ الإنشاء",
|
||||||
|
"not_selected": "No item selected",
|
||||||
"action": "إجراء",
|
"action": "إجراء",
|
||||||
"add_item": "إضافة صنف",
|
"add_item": "إضافة صنف",
|
||||||
"save_item": "حفظ الصنف",
|
"save_item": "حفظ الصنف",
|
||||||
@ -270,6 +273,7 @@
|
|||||||
"required": "حقل مطلوب"
|
"required": "حقل مطلوب"
|
||||||
},
|
},
|
||||||
"accepted": "مقبول",
|
"accepted": "مقبول",
|
||||||
|
"rejected": "Rejected",
|
||||||
"sent": "مرسل",
|
"sent": "مرسل",
|
||||||
"draft": "مسودة",
|
"draft": "مسودة",
|
||||||
"declined": "مرفوض",
|
"declined": "مرفوض",
|
||||||
@ -316,6 +320,9 @@
|
|||||||
"all": "الكل",
|
"all": "الكل",
|
||||||
"paid": "مدفوع",
|
"paid": "مدفوع",
|
||||||
"unpaid": "غير مدفوع",
|
"unpaid": "غير مدفوع",
|
||||||
|
"viewed": "Viewed",
|
||||||
|
"overdue": "Overdue",
|
||||||
|
"completed": "Completed",
|
||||||
"customer": "العميل",
|
"customer": "العميل",
|
||||||
"paid_status": "حالة الدفع",
|
"paid_status": "حالة الدفع",
|
||||||
"ref_no": "رقم المرجع.",
|
"ref_no": "رقم المرجع.",
|
||||||
@ -434,6 +441,8 @@
|
|||||||
"update_payment": "تحديث الدفعة",
|
"update_payment": "تحديث الدفعة",
|
||||||
"payment": "دفعة | مدفوعات",
|
"payment": "دفعة | مدفوعات",
|
||||||
"no_payments": "لا يوجد مدفوعات حتى الآن!",
|
"no_payments": "لا يوجد مدفوعات حتى الآن!",
|
||||||
|
"not_selected": "Not selected",
|
||||||
|
"no_invoice": "No invoice",
|
||||||
"no_matching_payments": "لا توجد مدفوعات مطابقة!",
|
"no_matching_payments": "لا توجد مدفوعات مطابقة!",
|
||||||
"list_of_payments": "سوف تحتوي هذه القائمة على مدفوعات الفواتير.",
|
"list_of_payments": "سوف تحتوي هذه القائمة على مدفوعات الفواتير.",
|
||||||
"select_payment_mode": "اختر طريقة الدفع",
|
"select_payment_mode": "اختر طريقة الدفع",
|
||||||
@ -463,6 +472,7 @@
|
|||||||
"receipt": "سند القبض",
|
"receipt": "سند القبض",
|
||||||
"amount": "المبلغ المطلوب",
|
"amount": "المبلغ المطلوب",
|
||||||
"action": "إجراء",
|
"action": "إجراء",
|
||||||
|
"not_selected": "Not selected",
|
||||||
"note": "ملاحظة",
|
"note": "ملاحظة",
|
||||||
"category_id": "رمز الفئة",
|
"category_id": "رمز الفئة",
|
||||||
"date": "تاريخ النفقات",
|
"date": "تاريخ النفقات",
|
||||||
@ -1147,6 +1157,7 @@
|
|||||||
"pdf_amount_label": "المبلغ المطلوب",
|
"pdf_amount_label": "المبلغ المطلوب",
|
||||||
"pdf_subtotal": "Subtotal",
|
"pdf_subtotal": "Subtotal",
|
||||||
"pdf_total": "الإجمالي",
|
"pdf_total": "الإجمالي",
|
||||||
|
"pdf_payment_label": "Payment",
|
||||||
"pdf_payment_receipt_label": "PAYMENT RECEIPT",
|
"pdf_payment_receipt_label": "PAYMENT RECEIPT",
|
||||||
"pdf_payment_date": "Payment Date",
|
"pdf_payment_date": "Payment Date",
|
||||||
"pdf_payment_number": "رقم الدفعة",
|
"pdf_payment_number": "رقم الدفعة",
|
||||||
@ -1155,6 +1166,9 @@
|
|||||||
"pdf_expense_report_label": "EXPENSES REPORT",
|
"pdf_expense_report_label": "EXPENSES REPORT",
|
||||||
"pdf_total_expenses_label": "TOTAL EXPENSE",
|
"pdf_total_expenses_label": "TOTAL EXPENSE",
|
||||||
"pdf_profit_loss_label": "PROFIT & LOSS REPORT",
|
"pdf_profit_loss_label": "PROFIT & LOSS REPORT",
|
||||||
|
"pdf_sales_customers_label": "Sales Customer Report",
|
||||||
|
"pdf_sales_items_label": "Sales Item Report",
|
||||||
|
"pdf_tax_summery_label": "Tax Summary Report",
|
||||||
"pdf_income_label": "INCOME",
|
"pdf_income_label": "INCOME",
|
||||||
"pdf_net_profit_label": "NET PROFIT",
|
"pdf_net_profit_label": "NET PROFIT",
|
||||||
"pdf_customer_sales_report": "Sales Report: By Customer",
|
"pdf_customer_sales_report": "Sales Report: By Customer",
|
||||||
|
|||||||
@ -177,6 +177,8 @@
|
|||||||
"copy_billing_address": "Rechnungsadresse kopieren",
|
"copy_billing_address": "Rechnungsadresse kopieren",
|
||||||
"no_customers": "Noch keine Kunden!",
|
"no_customers": "Noch keine Kunden!",
|
||||||
"no_customers_found": "Keine Kunden gefunden!",
|
"no_customers_found": "Keine Kunden gefunden!",
|
||||||
|
"no_contact": "Kein Kontakt",
|
||||||
|
"no_contact_name": "Kein Kontaktname",
|
||||||
"list_of_customers": "Dieser Abschnitt enthält die Liste der Kunden.",
|
"list_of_customers": "Dieser Abschnitt enthält die Liste der Kunden.",
|
||||||
"primary_display_name": "Primärer Anzeige Name",
|
"primary_display_name": "Primärer Anzeige Name",
|
||||||
"select_currency": "Währung wählen",
|
"select_currency": "Währung wählen",
|
||||||
@ -200,6 +202,7 @@
|
|||||||
"added_on": "Hinzugefügt am",
|
"added_on": "Hinzugefügt am",
|
||||||
"price": "Preis",
|
"price": "Preis",
|
||||||
"date_of_creation": "Erstellt am",
|
"date_of_creation": "Erstellt am",
|
||||||
|
"not_selected": "Keine ausgewählt",
|
||||||
"action": "Aktion",
|
"action": "Aktion",
|
||||||
"add_item": "Artikel hinzufügen",
|
"add_item": "Artikel hinzufügen",
|
||||||
"save_item": "Artikel speichern",
|
"save_item": "Artikel speichern",
|
||||||
@ -270,6 +273,7 @@
|
|||||||
"required": "Feld ist erforderlich"
|
"required": "Feld ist erforderlich"
|
||||||
},
|
},
|
||||||
"accepted": "Angenommen",
|
"accepted": "Angenommen",
|
||||||
|
"rejected": "Abgelehnt",
|
||||||
"sent": "Gesendet",
|
"sent": "Gesendet",
|
||||||
"draft": "Entwurf",
|
"draft": "Entwurf",
|
||||||
"declined": "Abgelehnt",
|
"declined": "Abgelehnt",
|
||||||
@ -315,7 +319,10 @@
|
|||||||
"years": "{years} Jahre",
|
"years": "{years} Jahre",
|
||||||
"all": "Alle",
|
"all": "Alle",
|
||||||
"paid": "Bezahlt",
|
"paid": "Bezahlt",
|
||||||
"unpaid": "Unbezahlte",
|
"unpaid": "Unbezahlt",
|
||||||
|
"viewed": "Gesehen",
|
||||||
|
"overdue": "Überfällig",
|
||||||
|
"completed": "Abgeschlossen",
|
||||||
"customer": "KUNDEN",
|
"customer": "KUNDEN",
|
||||||
"paid_status": "BEZAHLT-STATUS",
|
"paid_status": "BEZAHLT-STATUS",
|
||||||
"ref_no": "REF. - NR.",
|
"ref_no": "REF. - NR.",
|
||||||
@ -434,6 +441,8 @@
|
|||||||
"update_payment": "Zahlung ändern",
|
"update_payment": "Zahlung ändern",
|
||||||
"payment": "Zahlung | Zahlungen",
|
"payment": "Zahlung | Zahlungen",
|
||||||
"no_payments": "Keine Zahlungen vorhanden!",
|
"no_payments": "Keine Zahlungen vorhanden!",
|
||||||
|
"not_selected": "Nicht ausgewählt",
|
||||||
|
"no_invoice": "Keine Rechnung",
|
||||||
"no_matching_payments": "Es gibt keine passenden Zahlungen!",
|
"no_matching_payments": "Es gibt keine passenden Zahlungen!",
|
||||||
"list_of_payments": "Dieser Abschnitt enthält die Liste der Zahlungen.",
|
"list_of_payments": "Dieser Abschnitt enthält die Liste der Zahlungen.",
|
||||||
"select_payment_mode": "Wählen Sie den Zahlungsmodus",
|
"select_payment_mode": "Wählen Sie den Zahlungsmodus",
|
||||||
@ -462,6 +471,7 @@
|
|||||||
"description": "Beschreibung",
|
"description": "Beschreibung",
|
||||||
"receipt": "Eingang",
|
"receipt": "Eingang",
|
||||||
"amount": "Summe",
|
"amount": "Summe",
|
||||||
|
"not_selected": "Nicht ausgewählt",
|
||||||
"action": "Aktion",
|
"action": "Aktion",
|
||||||
"note": "Hinweis",
|
"note": "Hinweis",
|
||||||
"category_id": "Kategorie-Id",
|
"category_id": "Kategorie-Id",
|
||||||
@ -1147,6 +1157,7 @@
|
|||||||
"pdf_amount_label": "Summe",
|
"pdf_amount_label": "Summe",
|
||||||
"pdf_subtotal": "Zwischensumme",
|
"pdf_subtotal": "Zwischensumme",
|
||||||
"pdf_total": "Gesamt",
|
"pdf_total": "Gesamt",
|
||||||
|
"pdf_payment_label": "Zahlung",
|
||||||
"pdf_payment_receipt_label": "Zahlungsbeleg",
|
"pdf_payment_receipt_label": "Zahlungsbeleg",
|
||||||
"pdf_payment_date": "Zahlungsdatum",
|
"pdf_payment_date": "Zahlungsdatum",
|
||||||
"pdf_payment_number": "Zahlungsnummer",
|
"pdf_payment_number": "Zahlungsnummer",
|
||||||
@ -1155,6 +1166,9 @@
|
|||||||
"pdf_expense_report_label": "Ausgaben Bericht",
|
"pdf_expense_report_label": "Ausgaben Bericht",
|
||||||
"pdf_total_expenses_label": "Gesamtausgaben",
|
"pdf_total_expenses_label": "Gesamtausgaben",
|
||||||
"pdf_profit_loss_label": "Gewinn & Verlust Bericht",
|
"pdf_profit_loss_label": "Gewinn & Verlust Bericht",
|
||||||
|
"pdf_sales_customers_label": "Kundenverkaufs Bericht",
|
||||||
|
"pdf_sales_items_label": "Artikelverkaufs Bericht",
|
||||||
|
"pdf_tax_summery_label": "Steuer Bericht",
|
||||||
"pdf_income_label": "Einkommen",
|
"pdf_income_label": "Einkommen",
|
||||||
"pdf_net_profit_label": "Nettogewinn",
|
"pdf_net_profit_label": "Nettogewinn",
|
||||||
"pdf_customer_sales_report": "Umsatzbericht: Nach Kunde",
|
"pdf_customer_sales_report": "Umsatzbericht: Nach Kunde",
|
||||||
|
|||||||
@ -178,6 +178,8 @@
|
|||||||
"copy_billing_address": "Copy from Billing",
|
"copy_billing_address": "Copy from Billing",
|
||||||
"no_customers": "No customers yet!",
|
"no_customers": "No customers yet!",
|
||||||
"no_customers_found": "No customers found!",
|
"no_customers_found": "No customers found!",
|
||||||
|
"no_contact": "No contact",
|
||||||
|
"no_contact_name": "No contact name",
|
||||||
"list_of_customers": "This section will contain the list of customers.",
|
"list_of_customers": "This section will contain the list of customers.",
|
||||||
"primary_display_name": "Primary Display Name",
|
"primary_display_name": "Primary Display Name",
|
||||||
"select_currency": "Select currency",
|
"select_currency": "Select currency",
|
||||||
@ -201,6 +203,7 @@
|
|||||||
"added_on": "Added On",
|
"added_on": "Added On",
|
||||||
"price": "Price",
|
"price": "Price",
|
||||||
"date_of_creation": "Date Of Creation",
|
"date_of_creation": "Date Of Creation",
|
||||||
|
"not_selected": "No item selected",
|
||||||
"action": "Action",
|
"action": "Action",
|
||||||
"add_item": "Add Item",
|
"add_item": "Add Item",
|
||||||
"save_item": "Save Item",
|
"save_item": "Save Item",
|
||||||
@ -271,6 +274,7 @@
|
|||||||
"required": "Field is required"
|
"required": "Field is required"
|
||||||
},
|
},
|
||||||
"accepted": "Accepted",
|
"accepted": "Accepted",
|
||||||
|
"rejected": "Rejected",
|
||||||
"sent": "Sent",
|
"sent": "Sent",
|
||||||
"draft": "Draft",
|
"draft": "Draft",
|
||||||
"declined": "Declined",
|
"declined": "Declined",
|
||||||
@ -317,6 +321,9 @@
|
|||||||
"all": "All",
|
"all": "All",
|
||||||
"paid": "Paid",
|
"paid": "Paid",
|
||||||
"unpaid": "Unpaid",
|
"unpaid": "Unpaid",
|
||||||
|
"viewed": "Viewed",
|
||||||
|
"overdue": "Overdue",
|
||||||
|
"completed": "Completed",
|
||||||
"customer": "CUSTOMER",
|
"customer": "CUSTOMER",
|
||||||
"paid_status": "PAID STATUS",
|
"paid_status": "PAID STATUS",
|
||||||
"ref_no": "REF NO.",
|
"ref_no": "REF NO.",
|
||||||
@ -435,6 +442,8 @@
|
|||||||
"update_payment": "Update Payment",
|
"update_payment": "Update Payment",
|
||||||
"payment": "Payment | Payments",
|
"payment": "Payment | Payments",
|
||||||
"no_payments": "No payments yet!",
|
"no_payments": "No payments yet!",
|
||||||
|
"not_selected": "Not selected",
|
||||||
|
"no_invoice": "No invoice",
|
||||||
"no_matching_payments": "There are no matching payments!",
|
"no_matching_payments": "There are no matching payments!",
|
||||||
"list_of_payments": "This section will contain the list of payments.",
|
"list_of_payments": "This section will contain the list of payments.",
|
||||||
"select_payment_mode": "Select payment mode",
|
"select_payment_mode": "Select payment mode",
|
||||||
@ -464,6 +473,7 @@
|
|||||||
"receipt": "Receipt",
|
"receipt": "Receipt",
|
||||||
"amount": "Amount",
|
"amount": "Amount",
|
||||||
"action": "Action",
|
"action": "Action",
|
||||||
|
"not_selected": "Not selected",
|
||||||
"note": "Note",
|
"note": "Note",
|
||||||
"category_id": "Category Id",
|
"category_id": "Category Id",
|
||||||
"date": "Date",
|
"date": "Date",
|
||||||
@ -745,6 +755,8 @@
|
|||||||
"invoice_settings": "Invoice Settings",
|
"invoice_settings": "Invoice Settings",
|
||||||
"autogenerate_invoice_number": "Auto-generate Invoice Number",
|
"autogenerate_invoice_number": "Auto-generate Invoice Number",
|
||||||
"invoice_setting_description": "Disable this, If you don't wish to auto-generate invoice numbers each time you create a new invoice.",
|
"invoice_setting_description": "Disable this, If you don't wish to auto-generate invoice numbers each time you create a new invoice.",
|
||||||
|
"invoice_email_attachment": "Send invoices as attachments",
|
||||||
|
"invoice_email_attachment_setting_description": "Enable this if you want to send invoices as email attachment. Please note that 'View Invoice' button in emails will not be displayed anymore when enabled.",
|
||||||
"enter_invoice_prefix": "Enter invoice prefix",
|
"enter_invoice_prefix": "Enter invoice prefix",
|
||||||
"terms_and_conditions": "Terms and Conditions",
|
"terms_and_conditions": "Terms and Conditions",
|
||||||
"company_address_format": "Company Address Format",
|
"company_address_format": "Company Address Format",
|
||||||
@ -759,6 +771,8 @@
|
|||||||
"estimate_settings": "Estimate Settings",
|
"estimate_settings": "Estimate Settings",
|
||||||
"autogenerate_estimate_number": "Auto-generate Estimate Number",
|
"autogenerate_estimate_number": "Auto-generate Estimate Number",
|
||||||
"estimate_setting_description": "Disable this, If you don't wish to auto-generate estimate numbers each time you create a new estimate.",
|
"estimate_setting_description": "Disable this, If you don't wish to auto-generate estimate numbers each time you create a new estimate.",
|
||||||
|
"estimate_email_attachment": "Send estimates as attachments",
|
||||||
|
"estimate_email_attachment_setting_description": "Enable this if you want to send the estimates as an email attachment. Please note that 'View Estimate' button in emails will not be displayed anymore when enabled.",
|
||||||
"enter_estimate_prefix": "Enter estmiate prefix",
|
"enter_estimate_prefix": "Enter estmiate prefix",
|
||||||
"estimate_setting_updated": "Estimate Setting updated successfully",
|
"estimate_setting_updated": "Estimate Setting updated successfully",
|
||||||
"company_address_format": "Company Address Format",
|
"company_address_format": "Company Address Format",
|
||||||
@ -773,6 +787,8 @@
|
|||||||
"payment_settings": "Payment Settings",
|
"payment_settings": "Payment Settings",
|
||||||
"autogenerate_payment_number": "Auto-generate Payment Number",
|
"autogenerate_payment_number": "Auto-generate Payment Number",
|
||||||
"payment_setting_description": "Disable this, If you don't wish to auto-generate payment numbers each time you create a new payment.",
|
"payment_setting_description": "Disable this, If you don't wish to auto-generate payment numbers each time you create a new payment.",
|
||||||
|
"payment_email_attachment": "Send payments as attachments",
|
||||||
|
"payment_email_attachment_setting_description": "Enable this if you want to send the payment receipts as an email attachment. Please note that 'View Payment' button in emails will not be displayed anymore when enabled.",
|
||||||
"enter_payment_prefix": "Enter Payment Prefix",
|
"enter_payment_prefix": "Enter Payment Prefix",
|
||||||
"payment_setting_updated": "Payment Setting updated successfully",
|
"payment_setting_updated": "Payment Setting updated successfully",
|
||||||
"payment_modes": "Payment Modes",
|
"payment_modes": "Payment Modes",
|
||||||
@ -1150,6 +1166,7 @@
|
|||||||
"pdf_amount_label": "Amount",
|
"pdf_amount_label": "Amount",
|
||||||
"pdf_subtotal": "Subtotal",
|
"pdf_subtotal": "Subtotal",
|
||||||
"pdf_total": "Total",
|
"pdf_total": "Total",
|
||||||
|
"pdf_payment_label": "Payment",
|
||||||
"pdf_payment_receipt_label": "PAYMENT RECEIPT",
|
"pdf_payment_receipt_label": "PAYMENT RECEIPT",
|
||||||
"pdf_payment_date": "Payment Date",
|
"pdf_payment_date": "Payment Date",
|
||||||
"pdf_payment_number": "Payment Number",
|
"pdf_payment_number": "Payment Number",
|
||||||
@ -1158,6 +1175,9 @@
|
|||||||
"pdf_expense_report_label": "EXPENSES REPORT",
|
"pdf_expense_report_label": "EXPENSES REPORT",
|
||||||
"pdf_total_expenses_label": "TOTAL EXPENSE",
|
"pdf_total_expenses_label": "TOTAL EXPENSE",
|
||||||
"pdf_profit_loss_label": "PROFIT & LOSS REPORT",
|
"pdf_profit_loss_label": "PROFIT & LOSS REPORT",
|
||||||
|
"pdf_sales_customers_label": "Sales Customer Report",
|
||||||
|
"pdf_sales_items_label": "Sales Item Report",
|
||||||
|
"pdf_tax_summery_label": "Tax Summary Report",
|
||||||
"pdf_income_label": "INCOME",
|
"pdf_income_label": "INCOME",
|
||||||
"pdf_net_profit_label": "NET PROFIT",
|
"pdf_net_profit_label": "NET PROFIT",
|
||||||
"pdf_customer_sales_report": "Sales Report: By Customer",
|
"pdf_customer_sales_report": "Sales Report: By Customer",
|
||||||
|
|||||||
@ -177,6 +177,8 @@
|
|||||||
"copy_billing_address": "Copia de facturación",
|
"copy_billing_address": "Copia de facturación",
|
||||||
"no_customers": "¡Aún no hay clientes!",
|
"no_customers": "¡Aún no hay clientes!",
|
||||||
"no_customers_found": "¡No se encontraron clientes!",
|
"no_customers_found": "¡No se encontraron clientes!",
|
||||||
|
"no_contact": "No contact",
|
||||||
|
"no_contact_name": "No contact name",
|
||||||
"list_of_customers": "Esta sección contendrá la lista de clientes.",
|
"list_of_customers": "Esta sección contendrá la lista de clientes.",
|
||||||
"primary_display_name": "Nombre de visualización principal",
|
"primary_display_name": "Nombre de visualización principal",
|
||||||
"select_currency": "Seleccione el tipo de moneda",
|
"select_currency": "Seleccione el tipo de moneda",
|
||||||
@ -200,6 +202,7 @@
|
|||||||
"added_on": "Añadido",
|
"added_on": "Añadido",
|
||||||
"price": "Precio",
|
"price": "Precio",
|
||||||
"date_of_creation": "Fecha de creación",
|
"date_of_creation": "Fecha de creación",
|
||||||
|
"not_selected": "No item selected",
|
||||||
"action": "Acción",
|
"action": "Acción",
|
||||||
"add_item": "Añadir artículo",
|
"add_item": "Añadir artículo",
|
||||||
"save_item": "Guardar artículo",
|
"save_item": "Guardar artículo",
|
||||||
@ -270,6 +273,7 @@
|
|||||||
"required": "Se requiere campo"
|
"required": "Se requiere campo"
|
||||||
},
|
},
|
||||||
"accepted": "Aceptado",
|
"accepted": "Aceptado",
|
||||||
|
"rejected": "Rejected",
|
||||||
"sent": "Enviado",
|
"sent": "Enviado",
|
||||||
"draft": "Borrador",
|
"draft": "Borrador",
|
||||||
"declined": "Rechazado",
|
"declined": "Rechazado",
|
||||||
@ -316,6 +320,9 @@
|
|||||||
"all": "Todas",
|
"all": "Todas",
|
||||||
"paid": "Pagada",
|
"paid": "Pagada",
|
||||||
"unpaid": "No pagado",
|
"unpaid": "No pagado",
|
||||||
|
"viewed": "Viewed",
|
||||||
|
"overdue": "Overdue",
|
||||||
|
"completed": "Completed",
|
||||||
"customer": "CLIENTE",
|
"customer": "CLIENTE",
|
||||||
"paid_status": "ESTADO PAGADO",
|
"paid_status": "ESTADO PAGADO",
|
||||||
"ref_no": "NÚMERO DE REFERENCIA.",
|
"ref_no": "NÚMERO DE REFERENCIA.",
|
||||||
@ -434,6 +441,8 @@
|
|||||||
"update_payment": "Actualizar pago",
|
"update_payment": "Actualizar pago",
|
||||||
"payment": "Pago | Pagos",
|
"payment": "Pago | Pagos",
|
||||||
"no_payments": "¡Aún no hay pagos!",
|
"no_payments": "¡Aún no hay pagos!",
|
||||||
|
"not_selected": "Not selected",
|
||||||
|
"no_invoice": "No invoice",
|
||||||
"no_matching_payments": "¡No hay pagos equivalentes!",
|
"no_matching_payments": "¡No hay pagos equivalentes!",
|
||||||
"list_of_payments": "Esta sección contendrá la lista de pagos.",
|
"list_of_payments": "Esta sección contendrá la lista de pagos.",
|
||||||
"select_payment_mode": "Seleccionar modo de pago",
|
"select_payment_mode": "Seleccionar modo de pago",
|
||||||
@ -463,6 +472,7 @@
|
|||||||
"receipt": "Recibo",
|
"receipt": "Recibo",
|
||||||
"amount": "Cantidad",
|
"amount": "Cantidad",
|
||||||
"action": "Acción",
|
"action": "Acción",
|
||||||
|
"not_selected": "Not selected",
|
||||||
"note": "Nota",
|
"note": "Nota",
|
||||||
"category_id": "Categoria ID",
|
"category_id": "Categoria ID",
|
||||||
"date": "Fecha de gastos",
|
"date": "Fecha de gastos",
|
||||||
@ -1147,6 +1157,7 @@
|
|||||||
"pdf_amount_label": "Cantidad",
|
"pdf_amount_label": "Cantidad",
|
||||||
"pdf_subtotal": "Subtotal",
|
"pdf_subtotal": "Subtotal",
|
||||||
"pdf_total": "Total",
|
"pdf_total": "Total",
|
||||||
|
"pdf_payment_label": "Payment",
|
||||||
"pdf_payment_receipt_label": "RECIBO DE PAGO",
|
"pdf_payment_receipt_label": "RECIBO DE PAGO",
|
||||||
"pdf_payment_date": "Fecha de pago",
|
"pdf_payment_date": "Fecha de pago",
|
||||||
"pdf_payment_number": "Numero de pago",
|
"pdf_payment_number": "Numero de pago",
|
||||||
@ -1155,6 +1166,9 @@
|
|||||||
"pdf_expense_report_label": "INFORME DE GASTOS",
|
"pdf_expense_report_label": "INFORME DE GASTOS",
|
||||||
"pdf_total_expenses_label": "GASTO TOTAL",
|
"pdf_total_expenses_label": "GASTO TOTAL",
|
||||||
"pdf_profit_loss_label": "INFORME PERDIDAS & GANANCIAS",
|
"pdf_profit_loss_label": "INFORME PERDIDAS & GANANCIAS",
|
||||||
|
"pdf_sales_customers_label": "Sales Customer Report",
|
||||||
|
"pdf_sales_items_label": "Sales Item Report",
|
||||||
|
"pdf_tax_summery_label": "Tax Summary Report",
|
||||||
"pdf_income_label": "INGRESO",
|
"pdf_income_label": "INGRESO",
|
||||||
"pdf_net_profit_label": "GANANCIA NETA",
|
"pdf_net_profit_label": "GANANCIA NETA",
|
||||||
"pdf_customer_sales_report": "Informe de ventas: Por cliente",
|
"pdf_customer_sales_report": "Informe de ventas: Por cliente",
|
||||||
|
|||||||
@ -177,6 +177,8 @@
|
|||||||
"copy_billing_address": "Copier depuis l'adresse de facturation",
|
"copy_billing_address": "Copier depuis l'adresse de facturation",
|
||||||
"no_customers": "Vous n’avez pas encore de clients !",
|
"no_customers": "Vous n’avez pas encore de clients !",
|
||||||
"no_customers_found": "Aucun client !",
|
"no_customers_found": "Aucun client !",
|
||||||
|
"no_contact": "No contact",
|
||||||
|
"no_contact_name": "No contact name",
|
||||||
"list_of_customers": "Cette section contiendra la liste des clients.",
|
"list_of_customers": "Cette section contiendra la liste des clients.",
|
||||||
"primary_display_name": "Nom d'affichage principal",
|
"primary_display_name": "Nom d'affichage principal",
|
||||||
"select_currency": "Sélectionnez la devise",
|
"select_currency": "Sélectionnez la devise",
|
||||||
@ -200,6 +202,7 @@
|
|||||||
"added_on": "Ajouté le",
|
"added_on": "Ajouté le",
|
||||||
"price": "Prix",
|
"price": "Prix",
|
||||||
"date_of_creation": "Date de création",
|
"date_of_creation": "Date de création",
|
||||||
|
"not_selected": "No item selected",
|
||||||
"action": "action",
|
"action": "action",
|
||||||
"add_item": "Ajouter un article",
|
"add_item": "Ajouter un article",
|
||||||
"save_item": "Enregistrer l'article",
|
"save_item": "Enregistrer l'article",
|
||||||
@ -270,6 +273,7 @@
|
|||||||
"required": "Champ requis"
|
"required": "Champ requis"
|
||||||
},
|
},
|
||||||
"accepted": "Accepté",
|
"accepted": "Accepté",
|
||||||
|
"rejected": "Rejected",
|
||||||
"sent": "Envoyé",
|
"sent": "Envoyé",
|
||||||
"draft": "Brouillon",
|
"draft": "Brouillon",
|
||||||
"declined": "Refusé",
|
"declined": "Refusé",
|
||||||
@ -316,6 +320,9 @@
|
|||||||
"all": "Toutes",
|
"all": "Toutes",
|
||||||
"paid": "Payé",
|
"paid": "Payé",
|
||||||
"unpaid": "Non payé",
|
"unpaid": "Non payé",
|
||||||
|
"viewed": "Viewed",
|
||||||
|
"overdue": "Overdue",
|
||||||
|
"completed": "Completed",
|
||||||
"customer": "CLIENT",
|
"customer": "CLIENT",
|
||||||
"paid_status": "STATUT DU PAIEMENT",
|
"paid_status": "STATUT DU PAIEMENT",
|
||||||
"ref_no": "Réf.",
|
"ref_no": "Réf.",
|
||||||
@ -434,6 +441,8 @@
|
|||||||
"update_payment": "Mettre à jour le paiement",
|
"update_payment": "Mettre à jour le paiement",
|
||||||
"payment": "Paiement | Paiements",
|
"payment": "Paiement | Paiements",
|
||||||
"no_payments": "Aucun paiement pour le moment !",
|
"no_payments": "Aucun paiement pour le moment !",
|
||||||
|
"not_selected": "Not selected",
|
||||||
|
"no_invoice": "No invoice",
|
||||||
"no_matching_payments": "Il n'y a aucun paiement correspondant !",
|
"no_matching_payments": "Il n'y a aucun paiement correspondant !",
|
||||||
"list_of_payments": "Cette section contiendra la liste des paiements",
|
"list_of_payments": "Cette section contiendra la liste des paiements",
|
||||||
"select_payment_mode": "Sélectionnez le moyen de paiement",
|
"select_payment_mode": "Sélectionnez le moyen de paiement",
|
||||||
@ -463,6 +472,7 @@
|
|||||||
"receipt": "Reçu",
|
"receipt": "Reçu",
|
||||||
"amount": "Montant",
|
"amount": "Montant",
|
||||||
"action": "action",
|
"action": "action",
|
||||||
|
"not_selected": "Not selected",
|
||||||
"note": "Remarque",
|
"note": "Remarque",
|
||||||
"category_id": "Identifiant de catégorie",
|
"category_id": "Identifiant de catégorie",
|
||||||
"date": "Date",
|
"date": "Date",
|
||||||
@ -1147,6 +1157,7 @@
|
|||||||
"pdf_amount_label": "Montant",
|
"pdf_amount_label": "Montant",
|
||||||
"pdf_subtotal": "Sous-total",
|
"pdf_subtotal": "Sous-total",
|
||||||
"pdf_total": "Total",
|
"pdf_total": "Total",
|
||||||
|
"pdf_payment_label": "Payment",
|
||||||
"pdf_payment_receipt_label": "Reçu de paiement",
|
"pdf_payment_receipt_label": "Reçu de paiement",
|
||||||
"pdf_payment_date": "Date de paiement",
|
"pdf_payment_date": "Date de paiement",
|
||||||
"pdf_payment_number": "N°",
|
"pdf_payment_number": "N°",
|
||||||
@ -1155,6 +1166,9 @@
|
|||||||
"pdf_expense_report_label": "RAPPORT DE DÉPENSES",
|
"pdf_expense_report_label": "RAPPORT DE DÉPENSES",
|
||||||
"pdf_total_expenses_label": "TOTAL DES DÉPENSES",
|
"pdf_total_expenses_label": "TOTAL DES DÉPENSES",
|
||||||
"pdf_profit_loss_label": "RAPPORT DES BÉNÉFICES ET DES PERTES",
|
"pdf_profit_loss_label": "RAPPORT DES BÉNÉFICES ET DES PERTES",
|
||||||
|
"pdf_sales_customers_label": "Sales Customer Report",
|
||||||
|
"pdf_sales_items_label": "Sales Item Report",
|
||||||
|
"pdf_tax_summery_label": "Tax Summary Report",
|
||||||
"pdf_income_label": "REVENU",
|
"pdf_income_label": "REVENU",
|
||||||
"pdf_net_profit_label": "BÉNÉFICE NET",
|
"pdf_net_profit_label": "BÉNÉFICE NET",
|
||||||
"pdf_customer_sales_report": "Rapport de ventes : par client",
|
"pdf_customer_sales_report": "Rapport de ventes : par client",
|
||||||
|
|||||||
@ -177,6 +177,8 @@
|
|||||||
"copy_billing_address": "Copy from Billing",
|
"copy_billing_address": "Copy from Billing",
|
||||||
"no_customers": "No customers yet!",
|
"no_customers": "No customers yet!",
|
||||||
"no_customers_found": "No customers found!",
|
"no_customers_found": "No customers found!",
|
||||||
|
"no_contact": "No contact",
|
||||||
|
"no_contact_name": "No contact name",
|
||||||
"list_of_customers": "This section will contain the list of customers.",
|
"list_of_customers": "This section will contain the list of customers.",
|
||||||
"primary_display_name": "Primary Display Name",
|
"primary_display_name": "Primary Display Name",
|
||||||
"select_currency": "Select currency",
|
"select_currency": "Select currency",
|
||||||
@ -200,6 +202,7 @@
|
|||||||
"added_on": "Added On",
|
"added_on": "Added On",
|
||||||
"price": "Price",
|
"price": "Price",
|
||||||
"date_of_creation": "Date Of Creation",
|
"date_of_creation": "Date Of Creation",
|
||||||
|
"not_selected": "No item selected",
|
||||||
"action": "Action",
|
"action": "Action",
|
||||||
"add_item": "Add Item",
|
"add_item": "Add Item",
|
||||||
"save_item": "Save Item",
|
"save_item": "Save Item",
|
||||||
@ -270,6 +273,7 @@
|
|||||||
"required": "Field is required"
|
"required": "Field is required"
|
||||||
},
|
},
|
||||||
"accepted": "Accepted",
|
"accepted": "Accepted",
|
||||||
|
"rejected": "Rejected",
|
||||||
"sent": "Sent",
|
"sent": "Sent",
|
||||||
"draft": "Draft",
|
"draft": "Draft",
|
||||||
"declined": "Declined",
|
"declined": "Declined",
|
||||||
@ -316,6 +320,9 @@
|
|||||||
"all": "All",
|
"all": "All",
|
||||||
"paid": "Paid",
|
"paid": "Paid",
|
||||||
"unpaid": "Unpaid",
|
"unpaid": "Unpaid",
|
||||||
|
"viewed": "Viewed",
|
||||||
|
"overdue": "Overdue",
|
||||||
|
"completed": "Completed",
|
||||||
"customer": "CUSTOMER",
|
"customer": "CUSTOMER",
|
||||||
"paid_status": "PAID STATUS",
|
"paid_status": "PAID STATUS",
|
||||||
"ref_no": "REF NO.",
|
"ref_no": "REF NO.",
|
||||||
@ -434,6 +441,8 @@
|
|||||||
"update_payment": "Update Payment",
|
"update_payment": "Update Payment",
|
||||||
"payment": "Payment | Payments",
|
"payment": "Payment | Payments",
|
||||||
"no_payments": "No payments yet!",
|
"no_payments": "No payments yet!",
|
||||||
|
"not_selected": "Not selected",
|
||||||
|
"no_invoice": "No invoice",
|
||||||
"no_matching_payments": "There are no matching payments!",
|
"no_matching_payments": "There are no matching payments!",
|
||||||
"list_of_payments": "This section will contain the list of payments.",
|
"list_of_payments": "This section will contain the list of payments.",
|
||||||
"select_payment_mode": "Select payment mode",
|
"select_payment_mode": "Select payment mode",
|
||||||
@ -463,6 +472,7 @@
|
|||||||
"receipt": "Receipt",
|
"receipt": "Receipt",
|
||||||
"amount": "Amount",
|
"amount": "Amount",
|
||||||
"action": "Action",
|
"action": "Action",
|
||||||
|
"not_selected": "Not selected",
|
||||||
"note": "Note",
|
"note": "Note",
|
||||||
"category_id": "Category Id",
|
"category_id": "Category Id",
|
||||||
"date": "Date",
|
"date": "Date",
|
||||||
@ -1148,6 +1158,7 @@
|
|||||||
"pdf_amount_label": "Amount",
|
"pdf_amount_label": "Amount",
|
||||||
"pdf_subtotal": "Subtotal",
|
"pdf_subtotal": "Subtotal",
|
||||||
"pdf_total": "Total",
|
"pdf_total": "Total",
|
||||||
|
"pdf_payment_label": "Payment",
|
||||||
"pdf_payment_receipt_label": "PAYMENT RECEIPT",
|
"pdf_payment_receipt_label": "PAYMENT RECEIPT",
|
||||||
"pdf_payment_date": "Payment Date",
|
"pdf_payment_date": "Payment Date",
|
||||||
"pdf_payment_number": "Payment Number",
|
"pdf_payment_number": "Payment Number",
|
||||||
@ -1156,6 +1167,9 @@
|
|||||||
"pdf_expense_report_label": "EXPENSES REPORT",
|
"pdf_expense_report_label": "EXPENSES REPORT",
|
||||||
"pdf_total_expenses_label": "TOTAL EXPENSE",
|
"pdf_total_expenses_label": "TOTAL EXPENSE",
|
||||||
"pdf_profit_loss_label": "PROFIT & LOSS REPORT",
|
"pdf_profit_loss_label": "PROFIT & LOSS REPORT",
|
||||||
|
"pdf_sales_customers_label": "Sales Customer Report",
|
||||||
|
"pdf_sales_items_label": "Sales Item Report",
|
||||||
|
"pdf_tax_summery_label": "Tax Summary Report",
|
||||||
"pdf_income_label": "INCOME",
|
"pdf_income_label": "INCOME",
|
||||||
"pdf_net_profit_label": "NET PROFIT",
|
"pdf_net_profit_label": "NET PROFIT",
|
||||||
"pdf_customer_sales_report": "Sales Report: By Customer",
|
"pdf_customer_sales_report": "Sales Report: By Customer",
|
||||||
|
|||||||
@ -177,6 +177,8 @@
|
|||||||
"copy_billing_address": "Copia da Fatturazione",
|
"copy_billing_address": "Copia da Fatturazione",
|
||||||
"no_customers": "Ancora nessun Cliente!",
|
"no_customers": "Ancora nessun Cliente!",
|
||||||
"no_customers_found": "Nessun cliente trovato!",
|
"no_customers_found": "Nessun cliente trovato!",
|
||||||
|
"no_contact": "No contact",
|
||||||
|
"no_contact_name": "No contact name",
|
||||||
"list_of_customers": "Qui ci sarà la lista dei tuoi clienti",
|
"list_of_customers": "Qui ci sarà la lista dei tuoi clienti",
|
||||||
"primary_display_name": "Mostra il Nome Principale",
|
"primary_display_name": "Mostra il Nome Principale",
|
||||||
"select_currency": "Selezione Valùta",
|
"select_currency": "Selezione Valùta",
|
||||||
@ -200,6 +202,7 @@
|
|||||||
"added_on": "Aggiunto il",
|
"added_on": "Aggiunto il",
|
||||||
"price": "Prezzo",
|
"price": "Prezzo",
|
||||||
"date_of_creation": "Data di creazione",
|
"date_of_creation": "Data di creazione",
|
||||||
|
"not_selected": "No item selected",
|
||||||
"action": "Azione",
|
"action": "Azione",
|
||||||
"add_item": "Aggiungi Commessa",
|
"add_item": "Aggiungi Commessa",
|
||||||
"save_item": "Salva",
|
"save_item": "Salva",
|
||||||
@ -270,6 +273,7 @@
|
|||||||
"required": "Campo obbligatorio"
|
"required": "Campo obbligatorio"
|
||||||
},
|
},
|
||||||
"accepted": "Accettato",
|
"accepted": "Accettato",
|
||||||
|
"rejected": "Rejected",
|
||||||
"sent": "Inviato",
|
"sent": "Inviato",
|
||||||
"draft": "Bozza",
|
"draft": "Bozza",
|
||||||
"declined": "Rifiutato",
|
"declined": "Rifiutato",
|
||||||
@ -316,6 +320,9 @@
|
|||||||
"all": "Tutti",
|
"all": "Tutti",
|
||||||
"paid": "Pagato",
|
"paid": "Pagato",
|
||||||
"unpaid": "Insoluto",
|
"unpaid": "Insoluto",
|
||||||
|
"viewed": "Viewed",
|
||||||
|
"overdue": "Overdue",
|
||||||
|
"completed": "Completed",
|
||||||
"customer": "CLIENTE",
|
"customer": "CLIENTE",
|
||||||
"paid_status": "STATO DI PAGAMENTO",
|
"paid_status": "STATO DI PAGAMENTO",
|
||||||
"ref_no": "RIF N.",
|
"ref_no": "RIF N.",
|
||||||
@ -434,6 +441,8 @@
|
|||||||
"update_payment": "Aggiorna pagamento",
|
"update_payment": "Aggiorna pagamento",
|
||||||
"payment": "Pagamento | Pagamenti",
|
"payment": "Pagamento | Pagamenti",
|
||||||
"no_payments": "Ancora nessun pagamento!",
|
"no_payments": "Ancora nessun pagamento!",
|
||||||
|
"not_selected": "Not selected",
|
||||||
|
"no_invoice": "No invoice",
|
||||||
"no_matching_payments": "Non ci sono pagamenti!",
|
"no_matching_payments": "Non ci sono pagamenti!",
|
||||||
"list_of_payments": "Questa sezione conterrà la lista dei pagamenti.",
|
"list_of_payments": "Questa sezione conterrà la lista dei pagamenti.",
|
||||||
"select_payment_mode": "Seleziona modalità di pagamento",
|
"select_payment_mode": "Seleziona modalità di pagamento",
|
||||||
@ -463,6 +472,7 @@
|
|||||||
"receipt": "Ricevuta",
|
"receipt": "Ricevuta",
|
||||||
"amount": "Ammontare",
|
"amount": "Ammontare",
|
||||||
"action": "Azione",
|
"action": "Azione",
|
||||||
|
"not_selected": "Not selected",
|
||||||
"note": "Nota",
|
"note": "Nota",
|
||||||
"category_id": "Id categoria",
|
"category_id": "Id categoria",
|
||||||
"date": "Data Spesa",
|
"date": "Data Spesa",
|
||||||
@ -1147,6 +1157,7 @@
|
|||||||
"pdf_amount_label": "Ammontare",
|
"pdf_amount_label": "Ammontare",
|
||||||
"pdf_subtotal": "Subtotal",
|
"pdf_subtotal": "Subtotal",
|
||||||
"pdf_total": "Totale",
|
"pdf_total": "Totale",
|
||||||
|
"pdf_payment_label": "Payment",
|
||||||
"pdf_payment_receipt_label": "PAYMENT RECEIPT",
|
"pdf_payment_receipt_label": "PAYMENT RECEIPT",
|
||||||
"pdf_payment_date": "Payment Date",
|
"pdf_payment_date": "Payment Date",
|
||||||
"pdf_payment_number": "Numero di pagamento",
|
"pdf_payment_number": "Numero di pagamento",
|
||||||
@ -1155,6 +1166,9 @@
|
|||||||
"pdf_expense_report_label": "EXPENSES REPORT",
|
"pdf_expense_report_label": "EXPENSES REPORT",
|
||||||
"pdf_total_expenses_label": "TOTAL EXPENSE",
|
"pdf_total_expenses_label": "TOTAL EXPENSE",
|
||||||
"pdf_profit_loss_label": "PROFIT & LOSS REPORT",
|
"pdf_profit_loss_label": "PROFIT & LOSS REPORT",
|
||||||
|
"pdf_sales_customers_label": "Sales Customer Report",
|
||||||
|
"pdf_sales_items_label": "Sales Item Report",
|
||||||
|
"pdf_tax_summery_label": "Tax Summary Report",
|
||||||
"pdf_income_label": "INCOME",
|
"pdf_income_label": "INCOME",
|
||||||
"pdf_net_profit_label": "NET PROFIT",
|
"pdf_net_profit_label": "NET PROFIT",
|
||||||
"pdf_customer_sales_report": "Sales Report: By Customer",
|
"pdf_customer_sales_report": "Sales Report: By Customer",
|
||||||
|
|||||||
@ -177,6 +177,8 @@
|
|||||||
"copy_billing_address": "Kopēt no juridiskās adreses",
|
"copy_billing_address": "Kopēt no juridiskās adreses",
|
||||||
"no_customers": "Pagaidām nav klientu!",
|
"no_customers": "Pagaidām nav klientu!",
|
||||||
"no_customers_found": "Klienti netika atrasti!",
|
"no_customers_found": "Klienti netika atrasti!",
|
||||||
|
"no_contact": "No contact",
|
||||||
|
"no_contact_name": "No contact name",
|
||||||
"list_of_customers": "Šajā sadaļā būs klientu saraksts.",
|
"list_of_customers": "Šajā sadaļā būs klientu saraksts.",
|
||||||
"primary_display_name": "Klienta nosaukums",
|
"primary_display_name": "Klienta nosaukums",
|
||||||
"select_currency": "Izvēlieties valūtu",
|
"select_currency": "Izvēlieties valūtu",
|
||||||
@ -200,6 +202,7 @@
|
|||||||
"added_on": "Pievienots",
|
"added_on": "Pievienots",
|
||||||
"price": "Cena",
|
"price": "Cena",
|
||||||
"date_of_creation": "Izveidošanas datums",
|
"date_of_creation": "Izveidošanas datums",
|
||||||
|
"not_selected": "No item selected",
|
||||||
"action": "Darbība",
|
"action": "Darbība",
|
||||||
"add_item": "Pievienot",
|
"add_item": "Pievienot",
|
||||||
"save_item": "Saglabāt",
|
"save_item": "Saglabāt",
|
||||||
@ -270,6 +273,7 @@
|
|||||||
"required": "Šis lauks ir obligāts"
|
"required": "Šis lauks ir obligāts"
|
||||||
},
|
},
|
||||||
"accepted": "Apstiprināts",
|
"accepted": "Apstiprināts",
|
||||||
|
"rejected": "Rejected",
|
||||||
"sent": "Nosūtīts",
|
"sent": "Nosūtīts",
|
||||||
"draft": "Melnraksts",
|
"draft": "Melnraksts",
|
||||||
"declined": "Noraidīts",
|
"declined": "Noraidīts",
|
||||||
@ -316,6 +320,9 @@
|
|||||||
"all": "Visi",
|
"all": "Visi",
|
||||||
"paid": "Apmaksāts",
|
"paid": "Apmaksāts",
|
||||||
"unpaid": "Neapmaksāts",
|
"unpaid": "Neapmaksāts",
|
||||||
|
"viewed": "Viewed",
|
||||||
|
"overdue": "Overdue",
|
||||||
|
"completed": "Completed",
|
||||||
"customer": "KLIENTS",
|
"customer": "KLIENTS",
|
||||||
"paid_status": "APMAKSAS STATUS",
|
"paid_status": "APMAKSAS STATUS",
|
||||||
"ref_no": "REF NR.",
|
"ref_no": "REF NR.",
|
||||||
@ -434,6 +441,8 @@
|
|||||||
"update_payment": "Labot maksājumu",
|
"update_payment": "Labot maksājumu",
|
||||||
"payment": "Maksājums | Maksājumi",
|
"payment": "Maksājums | Maksājumi",
|
||||||
"no_payments": "Nav pievienotu maksājumu!",
|
"no_payments": "Nav pievienotu maksājumu!",
|
||||||
|
"not_selected": "Not selected",
|
||||||
|
"no_invoice": "No invoice",
|
||||||
"no_matching_payments": "Netika atrasts neviens maksājums!",
|
"no_matching_payments": "Netika atrasts neviens maksājums!",
|
||||||
"list_of_payments": "Šajā sadaļā būs maksājumu saraksts.",
|
"list_of_payments": "Šajā sadaļā būs maksājumu saraksts.",
|
||||||
"select_payment_mode": "Izvēlēties maksājuma veidu",
|
"select_payment_mode": "Izvēlēties maksājuma veidu",
|
||||||
@ -463,6 +472,7 @@
|
|||||||
"receipt": "Čeks",
|
"receipt": "Čeks",
|
||||||
"amount": "Summa",
|
"amount": "Summa",
|
||||||
"action": "Darbība",
|
"action": "Darbība",
|
||||||
|
"not_selected": "Not selected",
|
||||||
"note": "Piezīme",
|
"note": "Piezīme",
|
||||||
"category_id": "Kategorijas Id",
|
"category_id": "Kategorijas Id",
|
||||||
"date": "Datums",
|
"date": "Datums",
|
||||||
@ -1147,6 +1157,7 @@
|
|||||||
"pdf_amount_label": "Summa",
|
"pdf_amount_label": "Summa",
|
||||||
"pdf_subtotal": "Starpsumma",
|
"pdf_subtotal": "Starpsumma",
|
||||||
"pdf_total": "Kopā",
|
"pdf_total": "Kopā",
|
||||||
|
"pdf_payment_label": "Payment",
|
||||||
"pdf_payment_receipt_label": "MAKSĀJUMA IZDRUKA",
|
"pdf_payment_receipt_label": "MAKSĀJUMA IZDRUKA",
|
||||||
"pdf_payment_date": "Maksājuma datums",
|
"pdf_payment_date": "Maksājuma datums",
|
||||||
"pdf_payment_number": "Maksājuma numurs",
|
"pdf_payment_number": "Maksājuma numurs",
|
||||||
@ -1155,6 +1166,9 @@
|
|||||||
"pdf_expense_report_label": "IZDEVUMU ATSKAITE",
|
"pdf_expense_report_label": "IZDEVUMU ATSKAITE",
|
||||||
"pdf_total_expenses_label": "KOPĀ IZDEVUMI",
|
"pdf_total_expenses_label": "KOPĀ IZDEVUMI",
|
||||||
"pdf_profit_loss_label": "PEĻŅAS & IZDEVUMU ATSKAITE",
|
"pdf_profit_loss_label": "PEĻŅAS & IZDEVUMU ATSKAITE",
|
||||||
|
"pdf_sales_customers_label": "Sales Customer Report",
|
||||||
|
"pdf_sales_items_label": "Sales Item Report",
|
||||||
|
"pdf_tax_summery_label": "Tax Summary Report",
|
||||||
"pdf_income_label": "IENĀKUMI",
|
"pdf_income_label": "IENĀKUMI",
|
||||||
"pdf_net_profit_label": "PEĻŅA",
|
"pdf_net_profit_label": "PEĻŅA",
|
||||||
"pdf_customer_sales_report": "Atskaite par pārdoto: Pēc lietotāja",
|
"pdf_customer_sales_report": "Atskaite par pārdoto: Pēc lietotāja",
|
||||||
|
|||||||
@ -177,6 +177,8 @@
|
|||||||
"copy_billing_address": "Kopiëren van facturering",
|
"copy_billing_address": "Kopiëren van facturering",
|
||||||
"no_customers": "Nog geen klanten!",
|
"no_customers": "Nog geen klanten!",
|
||||||
"no_customers_found": "Geen klanten gevonden!",
|
"no_customers_found": "Geen klanten gevonden!",
|
||||||
|
"no_contact": "No contact",
|
||||||
|
"no_contact_name": "No contact name",
|
||||||
"list_of_customers": "Hier vind je jouw klanten terug.",
|
"list_of_customers": "Hier vind je jouw klanten terug.",
|
||||||
"primary_display_name": "Primaire weergavenaam",
|
"primary_display_name": "Primaire weergavenaam",
|
||||||
"select_currency": "Selecteer valuta",
|
"select_currency": "Selecteer valuta",
|
||||||
@ -200,6 +202,7 @@
|
|||||||
"added_on": "Toegevoegd",
|
"added_on": "Toegevoegd",
|
||||||
"price": "Prijs",
|
"price": "Prijs",
|
||||||
"date_of_creation": "Datum van creatie",
|
"date_of_creation": "Datum van creatie",
|
||||||
|
"not_selected": "No item selected",
|
||||||
"action": "Actie",
|
"action": "Actie",
|
||||||
"add_item": "Voeg item toe",
|
"add_item": "Voeg item toe",
|
||||||
"save_item": "Item opslaan",
|
"save_item": "Item opslaan",
|
||||||
@ -270,6 +273,7 @@
|
|||||||
"required": "Veld is vereist"
|
"required": "Veld is vereist"
|
||||||
},
|
},
|
||||||
"accepted": "Geaccepteerd",
|
"accepted": "Geaccepteerd",
|
||||||
|
"rejected": "Rejected",
|
||||||
"sent": "Verzonden",
|
"sent": "Verzonden",
|
||||||
"draft": "Concept",
|
"draft": "Concept",
|
||||||
"declined": "Geweigerd",
|
"declined": "Geweigerd",
|
||||||
@ -316,6 +320,9 @@
|
|||||||
"all": "Allemaal",
|
"all": "Allemaal",
|
||||||
"paid": "Betaald",
|
"paid": "Betaald",
|
||||||
"unpaid": "Onbetaald",
|
"unpaid": "Onbetaald",
|
||||||
|
"viewed": "Viewed",
|
||||||
|
"overdue": "Overdue",
|
||||||
|
"completed": "Completed",
|
||||||
"customer": "Klant",
|
"customer": "Klant",
|
||||||
"paid_status": "Betaling",
|
"paid_status": "Betaling",
|
||||||
"ref_no": "REF NR.",
|
"ref_no": "REF NR.",
|
||||||
@ -434,6 +441,8 @@
|
|||||||
"update_payment": "Betaling bijwerken",
|
"update_payment": "Betaling bijwerken",
|
||||||
"payment": "Betaling | Betalingen",
|
"payment": "Betaling | Betalingen",
|
||||||
"no_payments": "Nog geen betalingen!",
|
"no_payments": "Nog geen betalingen!",
|
||||||
|
"not_selected": "Not selected",
|
||||||
|
"no_invoice": "No invoice",
|
||||||
"no_matching_payments": "Er zijn geen overeenkomende betalingen!",
|
"no_matching_payments": "Er zijn geen overeenkomende betalingen!",
|
||||||
"list_of_payments": "Hier vind je jouw betalingen terug.",
|
"list_of_payments": "Hier vind je jouw betalingen terug.",
|
||||||
"select_payment_mode": "Selecteer betalingswijze",
|
"select_payment_mode": "Selecteer betalingswijze",
|
||||||
@ -463,6 +472,7 @@
|
|||||||
"receipt": "Bon",
|
"receipt": "Bon",
|
||||||
"amount": "Bedrag",
|
"amount": "Bedrag",
|
||||||
"action": "Actie",
|
"action": "Actie",
|
||||||
|
"not_selected": "Not selected",
|
||||||
"note": "Notitie",
|
"note": "Notitie",
|
||||||
"category_id": "Categorie ID",
|
"category_id": "Categorie ID",
|
||||||
"date": "Uitgavendatum",
|
"date": "Uitgavendatum",
|
||||||
@ -1147,6 +1157,7 @@
|
|||||||
"pdf_amount_label": "Bedrag",
|
"pdf_amount_label": "Bedrag",
|
||||||
"pdf_subtotal": "Subtotaal",
|
"pdf_subtotal": "Subtotaal",
|
||||||
"pdf_total": "Totaal",
|
"pdf_total": "Totaal",
|
||||||
|
"pdf_payment_label": "Payment",
|
||||||
"pdf_payment_receipt_label": "Betalingsafschrift",
|
"pdf_payment_receipt_label": "Betalingsafschrift",
|
||||||
"pdf_payment_date": "Betalingsdatum",
|
"pdf_payment_date": "Betalingsdatum",
|
||||||
"pdf_payment_number": "Betalingsnummer",
|
"pdf_payment_number": "Betalingsnummer",
|
||||||
@ -1155,6 +1166,9 @@
|
|||||||
"pdf_expense_report_label": "UITGAVEN RAPPORT",
|
"pdf_expense_report_label": "UITGAVEN RAPPORT",
|
||||||
"pdf_total_expenses_label": "TOTALE UITGAVEN",
|
"pdf_total_expenses_label": "TOTALE UITGAVEN",
|
||||||
"pdf_profit_loss_label": "WINST & VERLIES RAPPORT",
|
"pdf_profit_loss_label": "WINST & VERLIES RAPPORT",
|
||||||
|
"pdf_sales_customers_label": "Sales Customer Report",
|
||||||
|
"pdf_sales_items_label": "Sales Item Report",
|
||||||
|
"pdf_tax_summery_label": "Tax Summary Report",
|
||||||
"pdf_income_label": "INKOMEN",
|
"pdf_income_label": "INKOMEN",
|
||||||
"pdf_net_profit_label": "NETTO WINST",
|
"pdf_net_profit_label": "NETTO WINST",
|
||||||
"pdf_customer_sales_report": "Verkooprapport: per klant",
|
"pdf_customer_sales_report": "Verkooprapport: per klant",
|
||||||
|
|||||||
@ -158,6 +158,8 @@
|
|||||||
"copy_billing_address": "Cópia de faturamento",
|
"copy_billing_address": "Cópia de faturamento",
|
||||||
"no_customers": "Ainda não há clientes!",
|
"no_customers": "Ainda não há clientes!",
|
||||||
"no_customers_found": "Clientes não encontrados!",
|
"no_customers_found": "Clientes não encontrados!",
|
||||||
|
"no_contact": "No contact",
|
||||||
|
"no_contact_name": "No contact name",
|
||||||
"list_of_customers": "Esta seção conterá a lista de clientes.",
|
"list_of_customers": "Esta seção conterá a lista de clientes.",
|
||||||
"primary_display_name": "Nome de exibição principal",
|
"primary_display_name": "Nome de exibição principal",
|
||||||
"select_currency": "Selecione o tipo de moeda",
|
"select_currency": "Selecione o tipo de moeda",
|
||||||
@ -181,6 +183,7 @@
|
|||||||
"added_on": "Adicionado",
|
"added_on": "Adicionado",
|
||||||
"price": "Preço",
|
"price": "Preço",
|
||||||
"date_of_creation": "Data de criação",
|
"date_of_creation": "Data de criação",
|
||||||
|
"not_selected": "No item selected",
|
||||||
"action": "Ação",
|
"action": "Ação",
|
||||||
"add_item": "Adicionar item",
|
"add_item": "Adicionar item",
|
||||||
"save_item": "Salvar item",
|
"save_item": "Salvar item",
|
||||||
@ -250,6 +253,7 @@
|
|||||||
"required": "Campo obrigatório"
|
"required": "Campo obrigatório"
|
||||||
},
|
},
|
||||||
"accepted": "Aceito",
|
"accepted": "Aceito",
|
||||||
|
"rejected": "Rejected",
|
||||||
"sent": "Enviado",
|
"sent": "Enviado",
|
||||||
"draft": "Rascunho",
|
"draft": "Rascunho",
|
||||||
"declined": "Rejeitado",
|
"declined": "Rejeitado",
|
||||||
@ -296,6 +300,9 @@
|
|||||||
"all": "Todas",
|
"all": "Todas",
|
||||||
"paid": "Paga",
|
"paid": "Paga",
|
||||||
"unpaid": "Não Paga",
|
"unpaid": "Não Paga",
|
||||||
|
"viewed": "Viewed",
|
||||||
|
"overdue": "Overdue",
|
||||||
|
"completed": "Completed",
|
||||||
"customer": "CLIENTE",
|
"customer": "CLIENTE",
|
||||||
"paid_status": "STATUS PAGAMENTO",
|
"paid_status": "STATUS PAGAMENTO",
|
||||||
"ref_no": "REFERÊNCIA",
|
"ref_no": "REFERÊNCIA",
|
||||||
@ -413,6 +420,8 @@
|
|||||||
"update_payment": "Atualizar Pagamento",
|
"update_payment": "Atualizar Pagamento",
|
||||||
"payment": "Pagamento | Pagamentos",
|
"payment": "Pagamento | Pagamentos",
|
||||||
"no_payments": "Ainda sem pagamentos!",
|
"no_payments": "Ainda sem pagamentos!",
|
||||||
|
"not_selected": "Not selected",
|
||||||
|
"no_invoice": "No invoice",
|
||||||
"no_matching_payments": "Não há pagamentos correspondentes!",
|
"no_matching_payments": "Não há pagamentos correspondentes!",
|
||||||
"list_of_payments": "Esta seção conterá a lista de pagamentos.",
|
"list_of_payments": "Esta seção conterá a lista de pagamentos.",
|
||||||
"select_payment_mode": "Selecione a forma de pagamento",
|
"select_payment_mode": "Selecione a forma de pagamento",
|
||||||
@ -436,6 +445,7 @@
|
|||||||
"receipt": "Receita",
|
"receipt": "Receita",
|
||||||
"amount": "Montante",
|
"amount": "Montante",
|
||||||
"action": "Ação",
|
"action": "Ação",
|
||||||
|
"not_selected": "Not selected",
|
||||||
"note": "Observação",
|
"note": "Observação",
|
||||||
"category_id": "Categoria",
|
"category_id": "Categoria",
|
||||||
"date": "Data da Despesa",
|
"date": "Data da Despesa",
|
||||||
|
|||||||
@ -177,6 +177,8 @@
|
|||||||
"copy_billing_address": "Cópia de faturamento",
|
"copy_billing_address": "Cópia de faturamento",
|
||||||
"no_customers": "Ainda não há clientes!",
|
"no_customers": "Ainda não há clientes!",
|
||||||
"no_customers_found": "Clientes não encontrados!",
|
"no_customers_found": "Clientes não encontrados!",
|
||||||
|
"no_contact": "No contact",
|
||||||
|
"no_contact_name": "No contact name",
|
||||||
"list_of_customers": "Esta seção conterá a lista de clientes.",
|
"list_of_customers": "Esta seção conterá a lista de clientes.",
|
||||||
"primary_display_name": "Nome de exibição principal",
|
"primary_display_name": "Nome de exibição principal",
|
||||||
"select_currency": "Selecione o tipo de moeda",
|
"select_currency": "Selecione o tipo de moeda",
|
||||||
@ -200,6 +202,7 @@
|
|||||||
"added_on": "Adicionado",
|
"added_on": "Adicionado",
|
||||||
"price": "Preço",
|
"price": "Preço",
|
||||||
"date_of_creation": "Data de criação",
|
"date_of_creation": "Data de criação",
|
||||||
|
"not_selected": "No item selected",
|
||||||
"action": "Ação",
|
"action": "Ação",
|
||||||
"add_item": "Adicionar item",
|
"add_item": "Adicionar item",
|
||||||
"save_item": "Salvar item",
|
"save_item": "Salvar item",
|
||||||
@ -270,6 +273,7 @@
|
|||||||
"required": "Campo obrigatório"
|
"required": "Campo obrigatório"
|
||||||
},
|
},
|
||||||
"accepted": "Aceito",
|
"accepted": "Aceito",
|
||||||
|
"rejected": "Rejected",
|
||||||
"sent": "Enviado",
|
"sent": "Enviado",
|
||||||
"draft": "Rascunho",
|
"draft": "Rascunho",
|
||||||
"declined": "Rejeitado",
|
"declined": "Rejeitado",
|
||||||
@ -316,6 +320,9 @@
|
|||||||
"all": "Todas",
|
"all": "Todas",
|
||||||
"paid": "Paga",
|
"paid": "Paga",
|
||||||
"unpaid": "Não Paga",
|
"unpaid": "Não Paga",
|
||||||
|
"viewed": "Viewed",
|
||||||
|
"overdue": "Overdue",
|
||||||
|
"completed": "Completed",
|
||||||
"customer": "CLIENTE",
|
"customer": "CLIENTE",
|
||||||
"paid_status": "STATUS PAGAMENTO",
|
"paid_status": "STATUS PAGAMENTO",
|
||||||
"ref_no": "REFERÊNCIA",
|
"ref_no": "REFERÊNCIA",
|
||||||
@ -434,6 +441,8 @@
|
|||||||
"update_payment": "Atualizar Pagamento",
|
"update_payment": "Atualizar Pagamento",
|
||||||
"payment": "Pagamento | Pagamentos",
|
"payment": "Pagamento | Pagamentos",
|
||||||
"no_payments": "Ainda sem pagamentos!",
|
"no_payments": "Ainda sem pagamentos!",
|
||||||
|
"not_selected": "Not selected",
|
||||||
|
"no_invoice": "No invoice",
|
||||||
"no_matching_payments": "Não há pagamentos correspondentes!",
|
"no_matching_payments": "Não há pagamentos correspondentes!",
|
||||||
"list_of_payments": "Esta seção conterá a lista de pagamentos.",
|
"list_of_payments": "Esta seção conterá a lista de pagamentos.",
|
||||||
"select_payment_mode": "Selecione a forma de pagamento",
|
"select_payment_mode": "Selecione a forma de pagamento",
|
||||||
@ -463,6 +472,7 @@
|
|||||||
"receipt": "Receita",
|
"receipt": "Receita",
|
||||||
"amount": "Montante",
|
"amount": "Montante",
|
||||||
"action": "Ação",
|
"action": "Ação",
|
||||||
|
"not_selected": "Not selected",
|
||||||
"note": "Observação",
|
"note": "Observação",
|
||||||
"category_id": "Categoria",
|
"category_id": "Categoria",
|
||||||
"date": "Data da Despesa",
|
"date": "Data da Despesa",
|
||||||
@ -1147,6 +1157,7 @@
|
|||||||
"pdf_amount_label": "Montante",
|
"pdf_amount_label": "Montante",
|
||||||
"pdf_subtotal": "Subtotal",
|
"pdf_subtotal": "Subtotal",
|
||||||
"pdf_total": "Total",
|
"pdf_total": "Total",
|
||||||
|
"pdf_payment_label": "Payment",
|
||||||
"pdf_payment_receipt_label": "PAYMENT RECEIPT",
|
"pdf_payment_receipt_label": "PAYMENT RECEIPT",
|
||||||
"pdf_payment_date": "Payment Date",
|
"pdf_payment_date": "Payment Date",
|
||||||
"pdf_payment_number": "Número do Pagamento",
|
"pdf_payment_number": "Número do Pagamento",
|
||||||
@ -1155,6 +1166,9 @@
|
|||||||
"pdf_expense_report_label": "EXPENSES REPORT",
|
"pdf_expense_report_label": "EXPENSES REPORT",
|
||||||
"pdf_total_expenses_label": "TOTAL EXPENSE",
|
"pdf_total_expenses_label": "TOTAL EXPENSE",
|
||||||
"pdf_profit_loss_label": "PROFIT & LOSS REPORT",
|
"pdf_profit_loss_label": "PROFIT & LOSS REPORT",
|
||||||
|
"pdf_sales_customers_label": "Sales Customer Report",
|
||||||
|
"pdf_sales_items_label": "Sales Item Report",
|
||||||
|
"pdf_tax_summery_label": "Tax Summary Report",
|
||||||
"pdf_income_label": "INCOME",
|
"pdf_income_label": "INCOME",
|
||||||
"pdf_net_profit_label": "NET PROFIT",
|
"pdf_net_profit_label": "NET PROFIT",
|
||||||
"pdf_customer_sales_report": "Sales Report: By Customer",
|
"pdf_customer_sales_report": "Sales Report: By Customer",
|
||||||
|
|||||||
@ -178,6 +178,8 @@
|
|||||||
"copy_billing_address": "Kopiraj iz adrese za naplatu",
|
"copy_billing_address": "Kopiraj iz adrese za naplatu",
|
||||||
"no_customers": "Još uvek nema klijenata!",
|
"no_customers": "Još uvek nema klijenata!",
|
||||||
"no_customers_found": "Klijenti nisu pronađeni!",
|
"no_customers_found": "Klijenti nisu pronađeni!",
|
||||||
|
"no_contact": "No contact",
|
||||||
|
"no_contact_name": "No contact name",
|
||||||
"list_of_customers": "Ova sekcija će da sadrži spisak klijenata.",
|
"list_of_customers": "Ova sekcija će da sadrži spisak klijenata.",
|
||||||
"primary_display_name": "Primarni naziv koji se prikazuje",
|
"primary_display_name": "Primarni naziv koji se prikazuje",
|
||||||
"select_currency": "Odaberi valutu",
|
"select_currency": "Odaberi valutu",
|
||||||
@ -201,6 +203,7 @@
|
|||||||
"added_on": "Datum dodavanja",
|
"added_on": "Datum dodavanja",
|
||||||
"price": "Cena",
|
"price": "Cena",
|
||||||
"date_of_creation": "Datum kreiranja",
|
"date_of_creation": "Datum kreiranja",
|
||||||
|
"not_selected": "No item selected",
|
||||||
"action": "Akcije",
|
"action": "Akcije",
|
||||||
"add_item": "Dodaj Stavku",
|
"add_item": "Dodaj Stavku",
|
||||||
"save_item": "Sačuvaj Stavku",
|
"save_item": "Sačuvaj Stavku",
|
||||||
@ -271,6 +274,7 @@
|
|||||||
"required": "Polje je obavezno"
|
"required": "Polje je obavezno"
|
||||||
},
|
},
|
||||||
"accepted": "Prihvaćeno",
|
"accepted": "Prihvaćeno",
|
||||||
|
"rejected": "Rejected",
|
||||||
"sent": "Poslato",
|
"sent": "Poslato",
|
||||||
"draft": "U izradi",
|
"draft": "U izradi",
|
||||||
"declined": "Odbijeno",
|
"declined": "Odbijeno",
|
||||||
@ -317,6 +321,9 @@
|
|||||||
"all": "Sve",
|
"all": "Sve",
|
||||||
"paid": "Plaćeno",
|
"paid": "Plaćeno",
|
||||||
"unpaid": "Neplaćeno",
|
"unpaid": "Neplaćeno",
|
||||||
|
"viewed": "Viewed",
|
||||||
|
"overdue": "Overdue",
|
||||||
|
"completed": "Completed",
|
||||||
"customer": "KLIJENT",
|
"customer": "KLIJENT",
|
||||||
"paid_status": "STATUS UPLATE",
|
"paid_status": "STATUS UPLATE",
|
||||||
"ref_no": "POZIV NA BROJ",
|
"ref_no": "POZIV NA BROJ",
|
||||||
@ -435,6 +442,8 @@
|
|||||||
"update_payment": "Ažuriraj Uplatu",
|
"update_payment": "Ažuriraj Uplatu",
|
||||||
"payment": "Uplata | Uplate",
|
"payment": "Uplata | Uplate",
|
||||||
"no_payments": "Još uvek nema uplata!",
|
"no_payments": "Još uvek nema uplata!",
|
||||||
|
"not_selected": "Not selected",
|
||||||
|
"no_invoice": "No invoice",
|
||||||
"no_matching_payments": "Ne postoje uplate koje odgovaraju pretrazi!",
|
"no_matching_payments": "Ne postoje uplate koje odgovaraju pretrazi!",
|
||||||
"list_of_payments": "Ova sekcija će da sadrži listu uplata.",
|
"list_of_payments": "Ova sekcija će da sadrži listu uplata.",
|
||||||
"select_payment_mode": "Odaberi način plaćanja",
|
"select_payment_mode": "Odaberi način plaćanja",
|
||||||
@ -464,6 +473,7 @@
|
|||||||
"receipt": "Račun",
|
"receipt": "Račun",
|
||||||
"amount": "Iznos",
|
"amount": "Iznos",
|
||||||
"action": "Akcija",
|
"action": "Akcija",
|
||||||
|
"not_selected": "Not selected",
|
||||||
"note": "Napomena",
|
"note": "Napomena",
|
||||||
"category_id": "ID kategorije",
|
"category_id": "ID kategorije",
|
||||||
"date": "Datum",
|
"date": "Datum",
|
||||||
@ -1150,6 +1160,7 @@
|
|||||||
"pdf_amount_label": "Iznos",
|
"pdf_amount_label": "Iznos",
|
||||||
"pdf_subtotal": "Osnovica za obračun PDV-a",
|
"pdf_subtotal": "Osnovica za obračun PDV-a",
|
||||||
"pdf_total": "Ukupan iznos",
|
"pdf_total": "Ukupan iznos",
|
||||||
|
"pdf_payment_label": "Payment",
|
||||||
"pdf_payment_receipt_label": "POTVRDA O UPLATI",
|
"pdf_payment_receipt_label": "POTVRDA O UPLATI",
|
||||||
"pdf_payment_date": "Datum Uplate",
|
"pdf_payment_date": "Datum Uplate",
|
||||||
"pdf_payment_number": "Broj Uplate",
|
"pdf_payment_number": "Broj Uplate",
|
||||||
@ -1158,6 +1169,9 @@
|
|||||||
"pdf_expense_report_label": "IZVEŠTAJ O RASHODIMA",
|
"pdf_expense_report_label": "IZVEŠTAJ O RASHODIMA",
|
||||||
"pdf_total_expenses_label": "RASHODI UKUPNO",
|
"pdf_total_expenses_label": "RASHODI UKUPNO",
|
||||||
"pdf_profit_loss_label": "IZVEŠTAJ O PRIHODIMA I RASHODIMA",
|
"pdf_profit_loss_label": "IZVEŠTAJ O PRIHODIMA I RASHODIMA",
|
||||||
|
"pdf_sales_customers_label": "Sales Customer Report",
|
||||||
|
"pdf_sales_items_label": "Sales Item Report",
|
||||||
|
"pdf_tax_summery_label": "Tax Summary Report",
|
||||||
"pdf_income_label": "PRIHOD",
|
"pdf_income_label": "PRIHOD",
|
||||||
"pdf_net_profit_label": "NETO PROFIT",
|
"pdf_net_profit_label": "NETO PROFIT",
|
||||||
"pdf_customer_sales_report": "Izveštaj o Prodaji: Po Klijentu",
|
"pdf_customer_sales_report": "Izveštaj o Prodaji: Po Klijentu",
|
||||||
|
|||||||
@ -178,6 +178,8 @@
|
|||||||
"copy_billing_address": "Kopiera från faktura",
|
"copy_billing_address": "Kopiera från faktura",
|
||||||
"no_customers": "Inga kunder än!",
|
"no_customers": "Inga kunder än!",
|
||||||
"no_customers_found": "Hittade inga kunder!",
|
"no_customers_found": "Hittade inga kunder!",
|
||||||
|
"no_contact": "No contact",
|
||||||
|
"no_contact_name": "No contact name",
|
||||||
"list_of_customers": "Här kommer det finnas en lista med kunder.",
|
"list_of_customers": "Här kommer det finnas en lista med kunder.",
|
||||||
"primary_display_name": "Visningsnamn",
|
"primary_display_name": "Visningsnamn",
|
||||||
"select_currency": "Välj valuta",
|
"select_currency": "Välj valuta",
|
||||||
@ -201,6 +203,7 @@
|
|||||||
"added_on": "Tillagd den",
|
"added_on": "Tillagd den",
|
||||||
"price": "Pris",
|
"price": "Pris",
|
||||||
"date_of_creation": "Skapandedatum",
|
"date_of_creation": "Skapandedatum",
|
||||||
|
"not_selected": "No item selected",
|
||||||
"action": "Handling",
|
"action": "Handling",
|
||||||
"add_item": "Skapa artikel",
|
"add_item": "Skapa artikel",
|
||||||
"save_item": "Spara artikel",
|
"save_item": "Spara artikel",
|
||||||
@ -271,6 +274,7 @@
|
|||||||
"required": "Fältet är tvingande"
|
"required": "Fältet är tvingande"
|
||||||
},
|
},
|
||||||
"accepted": "Accepterad",
|
"accepted": "Accepterad",
|
||||||
|
"rejected": "Rejected",
|
||||||
"sent": "Skickat",
|
"sent": "Skickat",
|
||||||
"draft": "Utkast",
|
"draft": "Utkast",
|
||||||
"declined": "Avvisad",
|
"declined": "Avvisad",
|
||||||
@ -317,6 +321,9 @@
|
|||||||
"all": "Alla",
|
"all": "Alla",
|
||||||
"paid": "Betalda",
|
"paid": "Betalda",
|
||||||
"unpaid": "Obetalda",
|
"unpaid": "Obetalda",
|
||||||
|
"viewed": "Viewed",
|
||||||
|
"overdue": "Overdue",
|
||||||
|
"completed": "Completed",
|
||||||
"customer": "KUNDER",
|
"customer": "KUNDER",
|
||||||
"paid_status": "BETALSTATUS",
|
"paid_status": "BETALSTATUS",
|
||||||
"ref_no": "REF NR.",
|
"ref_no": "REF NR.",
|
||||||
@ -435,6 +442,8 @@
|
|||||||
"update_payment": "Uppdatera betalning",
|
"update_payment": "Uppdatera betalning",
|
||||||
"payment": "Betalning | Betalningar",
|
"payment": "Betalning | Betalningar",
|
||||||
"no_payments": "Inga betalningar än!",
|
"no_payments": "Inga betalningar än!",
|
||||||
|
"not_selected": "Not selected",
|
||||||
|
"no_invoice": "No invoice",
|
||||||
"no_matching_payments": "Inga matchande betalningar!",
|
"no_matching_payments": "Inga matchande betalningar!",
|
||||||
"list_of_payments": "Här kommer listan med betalningar finnas.",
|
"list_of_payments": "Här kommer listan med betalningar finnas.",
|
||||||
"select_payment_mode": "Välj betalningssätt",
|
"select_payment_mode": "Välj betalningssätt",
|
||||||
@ -464,6 +473,7 @@
|
|||||||
"receipt": "Kvitto",
|
"receipt": "Kvitto",
|
||||||
"amount": "Summa",
|
"amount": "Summa",
|
||||||
"action": "Handling",
|
"action": "Handling",
|
||||||
|
"not_selected": "Not selected",
|
||||||
"note": "Notering",
|
"note": "Notering",
|
||||||
"category_id": "Kategorins ID",
|
"category_id": "Kategorins ID",
|
||||||
"date": "Datum",
|
"date": "Datum",
|
||||||
@ -1149,6 +1159,7 @@
|
|||||||
"pdf_amount_label": "Belopp",
|
"pdf_amount_label": "Belopp",
|
||||||
"pdf_subtotal": "Delsumma",
|
"pdf_subtotal": "Delsumma",
|
||||||
"pdf_total": "Summa",
|
"pdf_total": "Summa",
|
||||||
|
"pdf_payment_label": "Payment",
|
||||||
"pdf_payment_receipt_label": "Betalningskvitto",
|
"pdf_payment_receipt_label": "Betalningskvitto",
|
||||||
"pdf_payment_date": "Betalningsdatum",
|
"pdf_payment_date": "Betalningsdatum",
|
||||||
"pdf_payment_number": "Betalningsnummer",
|
"pdf_payment_number": "Betalningsnummer",
|
||||||
@ -1157,6 +1168,9 @@
|
|||||||
"pdf_expense_report_label": "Kostnadsrapport",
|
"pdf_expense_report_label": "Kostnadsrapport",
|
||||||
"pdf_total_expenses_label": "Totalkostnad",
|
"pdf_total_expenses_label": "Totalkostnad",
|
||||||
"pdf_profit_loss_label": "Resultat- och förlustrapport",
|
"pdf_profit_loss_label": "Resultat- och förlustrapport",
|
||||||
|
"pdf_sales_customers_label": "Sales Customer Report",
|
||||||
|
"pdf_sales_items_label": "Sales Item Report",
|
||||||
|
"pdf_tax_summery_label": "Tax Summary Report",
|
||||||
"pdf_income_label": "Inkomst",
|
"pdf_income_label": "Inkomst",
|
||||||
"pdf_net_profit_label": "Nettoförtjänst",
|
"pdf_net_profit_label": "Nettoförtjänst",
|
||||||
"pdf_customer_sales_report": "Försäljningsrapport: Per kund",
|
"pdf_customer_sales_report": "Försäljningsrapport: Per kund",
|
||||||
|
|||||||
@ -2,10 +2,10 @@
|
|||||||
<base-page class="customer-create">
|
<base-page class="customer-create">
|
||||||
<sw-page-header :title="$t('customers.title')">
|
<sw-page-header :title="$t('customers.title')">
|
||||||
<sw-breadcrumb slot="breadcrumbs">
|
<sw-breadcrumb slot="breadcrumbs">
|
||||||
<sw-breadcrumb-item to="dashboard" :title="$t('general.home')" />
|
<sw-breadcrumb-item :title="$t('general.home')" to="dashboard" />
|
||||||
<sw-breadcrumb-item
|
<sw-breadcrumb-item
|
||||||
to="#"
|
|
||||||
:title="$tc('customers.customer', 2)"
|
:title="$tc('customers.customer', 2)"
|
||||||
|
to="#"
|
||||||
active
|
active
|
||||||
/>
|
/>
|
||||||
</sw-breadcrumb>
|
</sw-breadcrumb>
|
||||||
@ -159,7 +159,7 @@
|
|||||||
:filterable="false"
|
:filterable="false"
|
||||||
cell-class="no-click"
|
cell-class="no-click"
|
||||||
>
|
>
|
||||||
<div class="relative block" slot-scope="row">
|
<div slot-scope="row" class="relative block">
|
||||||
<sw-checkbox
|
<sw-checkbox
|
||||||
:id="row.id"
|
:id="row.id"
|
||||||
v-model="selectField"
|
v-model="selectField"
|
||||||
@ -195,7 +195,7 @@
|
|||||||
<template slot-scope="row">
|
<template slot-scope="row">
|
||||||
<span>{{ $t('customers.contact_name') }}</span>
|
<span>{{ $t('customers.contact_name') }}</span>
|
||||||
<span>
|
<span>
|
||||||
{{ row.contact_name ? row.contact_name : 'No Contact Name' }}
|
{{ row.contact_name ? row.contact_name : $t('customers.no_contact_name') }}
|
||||||
</span>
|
</span>
|
||||||
</template>
|
</template>
|
||||||
</sw-table-column>
|
</sw-table-column>
|
||||||
@ -208,7 +208,7 @@
|
|||||||
<template slot-scope="row">
|
<template slot-scope="row">
|
||||||
<span>{{ $t('customers.phone') }}</span>
|
<span>{{ $t('customers.phone') }}</span>
|
||||||
<span>
|
<span>
|
||||||
{{ row.phone ? row.phone : 'No Contact' }}
|
{{ row.phone ? row.phone : $t('customers.no_contact') }}
|
||||||
</span>
|
</span>
|
||||||
</template>
|
</template>
|
||||||
</sw-table-column>
|
</sw-table-column>
|
||||||
@ -243,16 +243,16 @@
|
|||||||
<dot-icon slot="activator" />
|
<dot-icon slot="activator" />
|
||||||
|
|
||||||
<sw-dropdown-item
|
<sw-dropdown-item
|
||||||
tag-name="router-link"
|
|
||||||
:to="`customers/${row.id}/edit`"
|
:to="`customers/${row.id}/edit`"
|
||||||
|
tag-name="router-link"
|
||||||
>
|
>
|
||||||
<pencil-icon class="h-5 mr-3 text-gray-600" />
|
<pencil-icon class="h-5 mr-3 text-gray-600" />
|
||||||
{{ $t('general.edit') }}
|
{{ $t('general.edit') }}
|
||||||
</sw-dropdown-item>
|
</sw-dropdown-item>
|
||||||
|
|
||||||
<sw-dropdown-item
|
<sw-dropdown-item
|
||||||
tag-name="router-link"
|
|
||||||
:to="`customers/${row.id}/view`"
|
:to="`customers/${row.id}/view`"
|
||||||
|
tag-name="router-link"
|
||||||
>
|
>
|
||||||
<eye-icon class="h-5 mr-3 text-gray-600" />
|
<eye-icon class="h-5 mr-3 text-gray-600" />
|
||||||
{{ $t('general.view') }}
|
{{ $t('general.view') }}
|
||||||
@ -281,7 +281,6 @@ import {
|
|||||||
EyeIcon,
|
EyeIcon,
|
||||||
} from '@vue-hero-icons/solid'
|
} from '@vue-hero-icons/solid'
|
||||||
import AstronautIcon from '../../components/icon/AstronautIcon'
|
import AstronautIcon from '../../components/icon/AstronautIcon'
|
||||||
import { request } from 'http'
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
|
|||||||
@ -35,10 +35,10 @@
|
|||||||
<sw-dropdown-item class="flex cursor-pointer">
|
<sw-dropdown-item class="flex cursor-pointer">
|
||||||
<sw-input-group class="-mt-3 font-normal">
|
<sw-input-group class="-mt-3 font-normal">
|
||||||
<sw-radio
|
<sw-radio
|
||||||
:label="$t('customers.create_date')"
|
|
||||||
size="sm"
|
|
||||||
id="filter_create_date"
|
id="filter_create_date"
|
||||||
|
:label="$t('customers.create_date')"
|
||||||
v-model="searchData.orderByField"
|
v-model="searchData.orderByField"
|
||||||
|
size="sm"
|
||||||
name="filter"
|
name="filter"
|
||||||
value="invoices.created_at"
|
value="invoices.created_at"
|
||||||
@change="onSearch"
|
@change="onSearch"
|
||||||
@ -49,10 +49,10 @@
|
|||||||
<sw-dropdown-item class="flex cursor-pointer">
|
<sw-dropdown-item class="flex cursor-pointer">
|
||||||
<sw-input-group class="-mt-3 font-normal">
|
<sw-input-group class="-mt-3 font-normal">
|
||||||
<sw-radio
|
<sw-radio
|
||||||
:label="$t('customers.display_name')"
|
|
||||||
size="sm"
|
|
||||||
id="filter_display_name"
|
id="filter_display_name"
|
||||||
|
:label="$t('customers.display_name')"
|
||||||
v-model="searchData.orderByField"
|
v-model="searchData.orderByField"
|
||||||
|
size="sm"
|
||||||
name="filter"
|
name="filter"
|
||||||
value="users.name"
|
value="users.name"
|
||||||
@change="onSearch"
|
@change="onSearch"
|
||||||
@ -62,8 +62,8 @@
|
|||||||
</sw-dropdown>
|
</sw-dropdown>
|
||||||
|
|
||||||
<sw-button
|
<sw-button
|
||||||
class="ml-1"
|
|
||||||
v-tooltip.top-center="{ content: getOrderName }"
|
v-tooltip.top-center="{ content: getOrderName }"
|
||||||
|
class="ml-1"
|
||||||
size="md"
|
size="md"
|
||||||
variant="gray-light"
|
variant="gray-light"
|
||||||
@click="sortData"
|
@click="sortData"
|
||||||
@ -102,13 +102,13 @@
|
|||||||
{{ customer.name }}
|
{{ customer.name }}
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
class="mt-1 text-xs not-italic font-medium leading-5 text-gray-600"
|
|
||||||
v-if="customer.contact_name"
|
v-if="customer.contact_name"
|
||||||
|
class="mt-1 text-xs not-italic font-medium leading-5 text-gray-600"
|
||||||
>
|
>
|
||||||
{{ customer.contact_name }}
|
{{ customer.contact_name }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex-1 whitespace-no-wrap right">
|
<div class="flex-1 whitespace-nowrap right">
|
||||||
<div
|
<div
|
||||||
class="text-xl not-italic font-semibold leading-8 text-right text-gray-900"
|
class="text-xl not-italic font-semibold leading-8 text-right text-gray-900"
|
||||||
v-html="$utils.formatMoney(customer.due_amount, customer.currency)"
|
v-html="$utils.formatMoney(customer.due_amount, customer.currency)"
|
||||||
|
|||||||
@ -65,9 +65,11 @@
|
|||||||
:color="$utils.getBadgeStatusColor(row.status).color"
|
:color="$utils.getBadgeStatusColor(row.status).color"
|
||||||
>
|
>
|
||||||
{{
|
{{
|
||||||
row.status != 'PARTIALLY_PAID'
|
$utils.getStatusTranslation(
|
||||||
? row.status
|
row.status != 'PARTIALLY_PAID'
|
||||||
: row.status.replace('_', ' ')
|
? row.status
|
||||||
|
: row.status.replace('_', ' ')
|
||||||
|
)
|
||||||
}}
|
}}
|
||||||
</sw-badge>
|
</sw-badge>
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@ -9,7 +9,7 @@
|
|||||||
{{ $t('general.you_got_lost') }}
|
{{ $t('general.you_got_lost') }}
|
||||||
</h5>
|
</h5>
|
||||||
<router-link
|
<router-link
|
||||||
class="flex items-center w-32 h-12 px-2 py-1 text-base font-medium leading-none text-center text-white whitespace-no-wrap rounded bg-primary-500 btn-lg hover:text-white"
|
class="flex items-center w-32 h-12 px-2 py-1 text-base font-medium leading-none text-center text-white whitespace-nowrap rounded bg-primary-500 btn-lg hover:text-white"
|
||||||
to="/admin/dashboard"
|
to="/admin/dashboard"
|
||||||
>
|
>
|
||||||
<arrow-left-icon class="mr-2 text-white icon" />
|
<arrow-left-icon class="mr-2 text-white icon" />
|
||||||
|
|||||||
@ -218,7 +218,7 @@
|
|||||||
<div class="mb-6">
|
<div class="mb-6">
|
||||||
<sw-popup
|
<sw-popup
|
||||||
ref="notePopup"
|
ref="notePopup"
|
||||||
class="text-sm font-semibold leading-5 text-primary-400"
|
class="z-10 text-sm font-semibold leading-5 text-primary-400"
|
||||||
>
|
>
|
||||||
<div slot="activator" class="float-right mt-1">
|
<div slot="activator" class="float-right mt-1">
|
||||||
+ {{ $t('general.insert_note') }}
|
+ {{ $t('general.insert_note') }}
|
||||||
@ -322,8 +322,8 @@
|
|||||||
<sw-button
|
<sw-button
|
||||||
slot="activator"
|
slot="activator"
|
||||||
type="button"
|
type="button"
|
||||||
class="flex items-center justify-center w-12 border border-gray-300 border-solid rounded-tl-none rounded-bl-none font-base"
|
|
||||||
data-toggle="dropdown"
|
data-toggle="dropdown"
|
||||||
|
size="discount"
|
||||||
aria-haspopup="true"
|
aria-haspopup="true"
|
||||||
aria-expanded="false"
|
aria-expanded="false"
|
||||||
style="height: 43px"
|
style="height: 43px"
|
||||||
@ -469,7 +469,6 @@ export default {
|
|||||||
isLoadingEstimate: false,
|
isLoadingEstimate: false,
|
||||||
isLoadingData: false,
|
isLoadingData: false,
|
||||||
isLoading: false,
|
isLoading: false,
|
||||||
maxDiscount: 0,
|
|
||||||
estimateNumAttribute: null,
|
estimateNumAttribute: null,
|
||||||
estimatePrefix: null,
|
estimatePrefix: null,
|
||||||
EstimateFields: [
|
EstimateFields: [
|
||||||
@ -954,12 +953,15 @@ export default {
|
|||||||
let amount = 0
|
let amount = 0
|
||||||
|
|
||||||
if (selectedTax.compound_tax && this.subtotalWithDiscount) {
|
if (selectedTax.compound_tax && this.subtotalWithDiscount) {
|
||||||
amount =
|
amount = Math.round(
|
||||||
((this.subtotalWithDiscount + this.totalSimpleTax) *
|
((this.subtotalWithDiscount + this.totalSimpleTax) *
|
||||||
selectedTax.percent) /
|
selectedTax.percent) /
|
||||||
100
|
100
|
||||||
|
)
|
||||||
} else if (this.subtotalWithDiscount && selectedTax.percent) {
|
} else if (this.subtotalWithDiscount && selectedTax.percent) {
|
||||||
amount = (this.subtotalWithDiscount * selectedTax.percent) / 100
|
amount = Math.round(
|
||||||
|
(this.subtotalWithDiscount * selectedTax.percent) / 100
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
this.newEstimate.taxes.push({
|
this.newEstimate.taxes.push({
|
||||||
@ -972,7 +974,7 @@ export default {
|
|||||||
amount,
|
amount,
|
||||||
})
|
})
|
||||||
|
|
||||||
if (this.$$refs) {
|
if (this.$refs) {
|
||||||
this.$refs.taxModal.close()
|
this.$refs.taxModal.close()
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@ -25,7 +25,7 @@
|
|||||||
<div v-if="selectedCustomer.billing_address">
|
<div v-if="selectedCustomer.billing_address">
|
||||||
<div class="flex flex-col">
|
<div class="flex flex-col">
|
||||||
<label
|
<label
|
||||||
class="mb-1 text-sm font-medium text-gray-500 uppercase whitespace-no-wrap"
|
class="mb-1 text-sm font-medium text-gray-500 uppercase whitespace-nowrap"
|
||||||
>
|
>
|
||||||
{{ $t('general.bill_to') }}
|
{{ $t('general.bill_to') }}
|
||||||
</label>
|
</label>
|
||||||
@ -77,7 +77,7 @@
|
|||||||
<div v-if="selectedCustomer.shipping_address">
|
<div v-if="selectedCustomer.shipping_address">
|
||||||
<div class="flex flex-col">
|
<div class="flex flex-col">
|
||||||
<label
|
<label
|
||||||
class="mb-1 text-sm font-medium text-gray-500 uppercase whitespace-no-wrap"
|
class="mb-1 text-sm font-medium text-gray-500 uppercase whitespace-nowrap"
|
||||||
>
|
>
|
||||||
{{ $t('general.ship_to') }}
|
{{ $t('general.ship_to') }}
|
||||||
</label>
|
</label>
|
||||||
|
|||||||
@ -45,11 +45,13 @@ export default {
|
|||||||
computed: {
|
computed: {
|
||||||
taxAmount() {
|
taxAmount() {
|
||||||
if (this.tax.compound_tax && this.total) {
|
if (this.tax.compound_tax && this.total) {
|
||||||
return ((this.total + this.totalTax) * this.tax.percent) / 100
|
return Math.round(
|
||||||
|
((this.total + this.totalTax) * this.tax.percent) / 100
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.total && this.tax.percent) {
|
if (this.total && this.tax.percent) {
|
||||||
return (this.total * this.tax.percent) / 100
|
return Math.round((this.total * this.tax.percent) / 100)
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0
|
return 0
|
||||||
|
|||||||
@ -254,7 +254,7 @@
|
|||||||
:color="$utils.getBadgeStatusColor(row.status).color"
|
:color="$utils.getBadgeStatusColor(row.status).color"
|
||||||
class="px-3 py-1"
|
class="px-3 py-1"
|
||||||
>
|
>
|
||||||
{{ row.status }}
|
{{ $utils.getStatusTranslation(row.status) }}
|
||||||
</sw-badge>
|
</sw-badge>
|
||||||
</template>
|
</template>
|
||||||
</sw-table-column>
|
</sw-table-column>
|
||||||
|
|||||||
@ -85,9 +85,10 @@
|
|||||||
slot="activator"
|
slot="activator"
|
||||||
type="button"
|
type="button"
|
||||||
data-toggle="dropdown"
|
data-toggle="dropdown"
|
||||||
|
size="discount"
|
||||||
aria-haspopup="true"
|
aria-haspopup="true"
|
||||||
aria-expanded="false"
|
aria-expanded="false"
|
||||||
style="height: 43px; padding: 6px"
|
style="height: 43px"
|
||||||
variant="white"
|
variant="white"
|
||||||
>
|
>
|
||||||
<span class="flex">
|
<span class="flex">
|
||||||
@ -266,22 +267,26 @@ export default {
|
|||||||
return this.subtotal - this.item.discount_val
|
return this.subtotal - this.item.discount_val
|
||||||
},
|
},
|
||||||
totalSimpleTax() {
|
totalSimpleTax() {
|
||||||
return window._.sumBy(this.item.taxes, function (tax) {
|
return Math.round(
|
||||||
if (!tax.compound_tax) {
|
window._.sumBy(this.item.taxes, function (tax) {
|
||||||
return tax.amount
|
if (!tax.compound_tax) {
|
||||||
}
|
return tax.amount
|
||||||
|
}
|
||||||
|
|
||||||
return 0
|
return 0
|
||||||
})
|
})
|
||||||
|
)
|
||||||
},
|
},
|
||||||
totalCompoundTax() {
|
totalCompoundTax() {
|
||||||
return window._.sumBy(this.item.taxes, function (tax) {
|
return Math.round(
|
||||||
if (tax.compound_tax) {
|
window._.sumBy(this.item.taxes, function (tax) {
|
||||||
return tax.amount
|
if (tax.compound_tax) {
|
||||||
}
|
return tax.amount
|
||||||
|
}
|
||||||
|
|
||||||
return 0
|
return 0
|
||||||
})
|
})
|
||||||
|
)
|
||||||
},
|
},
|
||||||
totalTax() {
|
totalTax() {
|
||||||
return this.totalSimpleTax + this.totalCompoundTax
|
return this.totalSimpleTax + this.totalCompoundTax
|
||||||
@ -297,7 +302,7 @@ export default {
|
|||||||
set: function (newValue) {
|
set: function (newValue) {
|
||||||
if (parseFloat(newValue) > 0) {
|
if (parseFloat(newValue) > 0) {
|
||||||
this.item.price = Math.round(newValue * 100)
|
this.item.price = Math.round(newValue * 100)
|
||||||
this.maxDiscount = this.item.price
|
this.maxDiscount = this.item.price * this.item.quantity
|
||||||
} else {
|
} else {
|
||||||
this.item.price = newValue
|
this.item.price = newValue
|
||||||
}
|
}
|
||||||
|
|||||||
@ -32,8 +32,8 @@
|
|||||||
</sw-dropdown-item>
|
</sw-dropdown-item>
|
||||||
|
|
||||||
<sw-dropdown-item
|
<sw-dropdown-item
|
||||||
tag-name="router-link"
|
|
||||||
:to="`/admin/estimates/${$route.params.id}/edit`"
|
:to="`/admin/estimates/${$route.params.id}/edit`"
|
||||||
|
tag-name="router-link"
|
||||||
>
|
>
|
||||||
<pencil-icon class="h-5 mr-3 text-primary-800" />
|
<pencil-icon class="h-5 mr-3 text-primary-800" />
|
||||||
{{ $t('general.edit') }}
|
{{ $t('general.edit') }}
|
||||||
@ -96,8 +96,8 @@
|
|||||||
<sw-radio
|
<sw-radio
|
||||||
id="filter_due_date"
|
id="filter_due_date"
|
||||||
v-model="searchData.orderByField"
|
v-model="searchData.orderByField"
|
||||||
value="expiry_date"
|
|
||||||
:label="$t('estimates.due_date')"
|
:label="$t('estimates.due_date')"
|
||||||
|
value="expiry_date"
|
||||||
size="sm"
|
size="sm"
|
||||||
name="filter"
|
name="filter"
|
||||||
@change="onSearched"
|
@change="onSearched"
|
||||||
@ -110,8 +110,8 @@
|
|||||||
<sw-radio
|
<sw-radio
|
||||||
id="filter_estimate_number"
|
id="filter_estimate_number"
|
||||||
v-model="searchData.orderByField"
|
v-model="searchData.orderByField"
|
||||||
value="estimate_number"
|
|
||||||
:label="$t('estimates.estimate_number')"
|
:label="$t('estimates.estimate_number')"
|
||||||
|
value="estimate_number"
|
||||||
size="sm"
|
size="sm"
|
||||||
name="filter"
|
name="filter"
|
||||||
@change="onSearched"
|
@change="onSearched"
|
||||||
@ -121,8 +121,8 @@
|
|||||||
</sw-dropdown>
|
</sw-dropdown>
|
||||||
|
|
||||||
<sw-button
|
<sw-button
|
||||||
class="ml-1"
|
|
||||||
v-tooltip.top-center="{ content: getOrderName }"
|
v-tooltip.top-center="{ content: getOrderName }"
|
||||||
|
class="ml-1"
|
||||||
size="md"
|
size="md"
|
||||||
variant="gray-light"
|
variant="gray-light"
|
||||||
@click="sortData"
|
@click="sortData"
|
||||||
@ -168,15 +168,15 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<sw-badge
|
<sw-badge
|
||||||
class="px-1 text-xs"
|
|
||||||
:bg-color="$utils.getBadgeStatusColor(estimate.status).bgColor"
|
:bg-color="$utils.getBadgeStatusColor(estimate.status).bgColor"
|
||||||
:color="$utils.getBadgeStatusColor(estimate.status).color"
|
:color="$utils.getBadgeStatusColor(estimate.status).color"
|
||||||
|
class="px-1 text-xs"
|
||||||
>
|
>
|
||||||
{{ estimate.status }}
|
{{ $utils.getStatusTranslation(estimate.status) }}
|
||||||
</sw-badge>
|
</sw-badge>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="flex-1 whitespace-no-wrap right">
|
<div class="flex-1 whitespace-nowrap right">
|
||||||
<div
|
<div
|
||||||
class="mb-2 text-xl not-italic font-semibold leading-8 text-right text-gray-900"
|
class="mb-2 text-xl not-italic font-semibold leading-8 text-right text-gray-900"
|
||||||
v-html="
|
v-html="
|
||||||
|
|||||||
@ -208,7 +208,7 @@
|
|||||||
>
|
>
|
||||||
<template slot-scope="row">
|
<template slot-scope="row">
|
||||||
<span>{{ $t('expenses.customer') }}</span>
|
<span>{{ $t('expenses.customer') }}</span>
|
||||||
<span> {{ row.user_name ? row.user_name : 'Not selected' }} </span>
|
<span> {{ row.user_name ? row.user_name : $t('expenses.not_selected') }} </span>
|
||||||
</template>
|
</template>
|
||||||
</sw-table-column>
|
</sw-table-column>
|
||||||
|
|
||||||
|
|||||||
@ -15,7 +15,7 @@
|
|||||||
to="/admin/invoices"
|
to="/admin/invoices"
|
||||||
/>
|
/>
|
||||||
<sw-breadcrumb-item
|
<sw-breadcrumb-item
|
||||||
v-if="$route.name === 'invoice.edit'"
|
v-if="$route.name === 'invoices.edit'"
|
||||||
:title="$t('invoices.edit_invoice')"
|
:title="$t('invoices.edit_invoice')"
|
||||||
to="#"
|
to="#"
|
||||||
active
|
active
|
||||||
@ -211,7 +211,7 @@
|
|||||||
<div class="mb-6">
|
<div class="mb-6">
|
||||||
<sw-popup
|
<sw-popup
|
||||||
ref="notePopup"
|
ref="notePopup"
|
||||||
class="text-sm font-semibold leading-5 text-primary-400"
|
class="z-10 text-sm font-semibold leading-5 text-primary-400"
|
||||||
>
|
>
|
||||||
<div slot="activator" class="float-right mt-1">
|
<div slot="activator" class="float-right mt-1">
|
||||||
+ {{ $t('general.insert_note') }}
|
+ {{ $t('general.insert_note') }}
|
||||||
@ -315,8 +315,8 @@
|
|||||||
<sw-button
|
<sw-button
|
||||||
slot="activator"
|
slot="activator"
|
||||||
type="button"
|
type="button"
|
||||||
class="flex items-center justify-center w-12 border border-gray-300 border-solid rounded-tl-none rounded-bl-none font-base"
|
|
||||||
data-toggle="dropdown"
|
data-toggle="dropdown"
|
||||||
|
size="discount"
|
||||||
aria-haspopup="true"
|
aria-haspopup="true"
|
||||||
aria-expanded="false"
|
aria-expanded="false"
|
||||||
style="height: 43px"
|
style="height: 43px"
|
||||||
@ -565,23 +565,27 @@ export default {
|
|||||||
},
|
},
|
||||||
|
|
||||||
totalSimpleTax() {
|
totalSimpleTax() {
|
||||||
return window._.sumBy(this.newInvoice.taxes, function (tax) {
|
return Math.round(
|
||||||
if (!tax.compound_tax) {
|
window._.sumBy(this.newInvoice.taxes, function (tax) {
|
||||||
return tax.amount
|
if (!tax.compound_tax) {
|
||||||
}
|
return tax.amount
|
||||||
|
}
|
||||||
|
|
||||||
return 0
|
return 0
|
||||||
})
|
})
|
||||||
|
)
|
||||||
},
|
},
|
||||||
|
|
||||||
totalCompoundTax() {
|
totalCompoundTax() {
|
||||||
return window._.sumBy(this.newInvoice.taxes, function (tax) {
|
return Math.round(
|
||||||
if (tax.compound_tax) {
|
window._.sumBy(this.newInvoice.taxes, function (tax) {
|
||||||
return tax.amount
|
if (tax.compound_tax) {
|
||||||
}
|
return tax.amount
|
||||||
|
}
|
||||||
|
|
||||||
return 0
|
return 0
|
||||||
})
|
})
|
||||||
|
)
|
||||||
},
|
},
|
||||||
|
|
||||||
totalTax() {
|
totalTax() {
|
||||||
@ -589,9 +593,11 @@ export default {
|
|||||||
return this.totalSimpleTax + this.totalCompoundTax
|
return this.totalSimpleTax + this.totalCompoundTax
|
||||||
}
|
}
|
||||||
|
|
||||||
return window._.sumBy(this.newInvoice.items, function (tax) {
|
return Math.round(
|
||||||
return tax.tax
|
window._.sumBy(this.newInvoice.items, function (tax) {
|
||||||
})
|
return tax.tax
|
||||||
|
})
|
||||||
|
)
|
||||||
},
|
},
|
||||||
|
|
||||||
allTaxes() {
|
allTaxes() {
|
||||||
@ -951,12 +957,15 @@ export default {
|
|||||||
let amount = 0
|
let amount = 0
|
||||||
|
|
||||||
if (selectedTax.compound_tax && this.subtotalWithDiscount) {
|
if (selectedTax.compound_tax && this.subtotalWithDiscount) {
|
||||||
amount =
|
amount = Math.round(
|
||||||
((this.subtotalWithDiscount + this.totalSimpleTax) *
|
((this.subtotalWithDiscount + this.totalSimpleTax) *
|
||||||
selectedTax.percent) /
|
selectedTax.percent) /
|
||||||
100
|
100
|
||||||
|
)
|
||||||
} else if (this.subtotalWithDiscount && selectedTax.percent) {
|
} else if (this.subtotalWithDiscount && selectedTax.percent) {
|
||||||
amount = (this.subtotalWithDiscount * selectedTax.percent) / 100
|
amount = Math.round(
|
||||||
|
(this.subtotalWithDiscount * selectedTax.percent) / 100
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
this.newInvoice.taxes.push({
|
this.newInvoice.taxes.push({
|
||||||
|
|||||||
@ -27,7 +27,7 @@
|
|||||||
<div v-if="selectedCustomer.billing_address">
|
<div v-if="selectedCustomer.billing_address">
|
||||||
<div class="flex flex-col">
|
<div class="flex flex-col">
|
||||||
<label
|
<label
|
||||||
class="mb-1 text-sm font-medium text-gray-500 uppercase whitespace-no-wrap"
|
class="mb-1 text-sm font-medium text-gray-500 uppercase whitespace-nowrap"
|
||||||
>
|
>
|
||||||
{{ $t('general.bill_to') }}
|
{{ $t('general.bill_to') }}
|
||||||
</label>
|
</label>
|
||||||
@ -79,7 +79,7 @@
|
|||||||
<div v-if="selectedCustomer.shipping_address" class="col col-6">
|
<div v-if="selectedCustomer.shipping_address" class="col col-6">
|
||||||
<div class="flex flex-col">
|
<div class="flex flex-col">
|
||||||
<label
|
<label
|
||||||
class="mb-1 text-sm font-medium text-gray-500 uppercase whitespace-no-wrap"
|
class="mb-1 text-sm font-medium text-gray-500 uppercase whitespace-nowrap"
|
||||||
>
|
>
|
||||||
{{ $t('general.ship_to') }}
|
{{ $t('general.ship_to') }}
|
||||||
</label>
|
</label>
|
||||||
|
|||||||
@ -241,7 +241,7 @@
|
|||||||
:bg-color="$utils.getBadgeStatusColor(row.status).bgColor"
|
:bg-color="$utils.getBadgeStatusColor(row.status).bgColor"
|
||||||
:color="$utils.getBadgeStatusColor(row.status).color"
|
:color="$utils.getBadgeStatusColor(row.status).color"
|
||||||
>
|
>
|
||||||
{{ row.status.replace('_', ' ') }}
|
{{ $utils.getStatusTranslation(row.status.replace('_', ' ')) }}
|
||||||
</sw-badge>
|
</sw-badge>
|
||||||
</template>
|
</template>
|
||||||
</sw-table-column>
|
</sw-table-column>
|
||||||
@ -258,7 +258,7 @@
|
|||||||
:bg-color="$utils.getBadgeStatusColor(row.status).bgColor"
|
:bg-color="$utils.getBadgeStatusColor(row.status).bgColor"
|
||||||
:color="$utils.getBadgeStatusColor(row.status).color"
|
:color="$utils.getBadgeStatusColor(row.status).color"
|
||||||
>
|
>
|
||||||
{{ row.paid_status.replace('_', ' ') }}
|
{{ $utils.getStatusTranslation(row.paid_status.replace('_', ' ')) }}
|
||||||
</sw-badge>
|
</sw-badge>
|
||||||
</template>
|
</template>
|
||||||
</sw-table-column>
|
</sw-table-column>
|
||||||
|
|||||||
@ -45,11 +45,13 @@ export default {
|
|||||||
computed: {
|
computed: {
|
||||||
taxAmount() {
|
taxAmount() {
|
||||||
if (this.tax.compound_tax && this.total) {
|
if (this.tax.compound_tax && this.total) {
|
||||||
return ((this.total + this.totalTax) * this.tax.percent) / 100
|
return Math.round(
|
||||||
|
((this.total + this.totalTax) * this.tax.percent) / 100
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.total && this.tax.percent) {
|
if (this.total && this.tax.percent) {
|
||||||
return (this.total * this.tax.percent) / 100
|
return Math.round((this.total * this.tax.percent) / 100)
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0
|
return 0
|
||||||
|
|||||||
@ -83,8 +83,8 @@
|
|||||||
<sw-button
|
<sw-button
|
||||||
slot="activator"
|
slot="activator"
|
||||||
type="button"
|
type="button"
|
||||||
class="flex items-center px-5 py-1 text-sm font-medium leading-none text-center text-gray-500 whitespace-no-wrap border border-gray-300 border-solid rounded rounded-tl-none rounded-bl-none dropdown-toggle"
|
|
||||||
data-toggle="dropdown"
|
data-toggle="dropdown"
|
||||||
|
size="discount"
|
||||||
aria-haspopup="true"
|
aria-haspopup="true"
|
||||||
aria-expanded="false"
|
aria-expanded="false"
|
||||||
style="height: 43px"
|
style="height: 43px"
|
||||||
@ -266,22 +266,26 @@ export default {
|
|||||||
return this.subtotal - this.item.discount_val
|
return this.subtotal - this.item.discount_val
|
||||||
},
|
},
|
||||||
totalSimpleTax() {
|
totalSimpleTax() {
|
||||||
return window._.sumBy(this.item.taxes, function (tax) {
|
return Math.round(
|
||||||
if (!tax.compound_tax) {
|
window._.sumBy(this.item.taxes, function (tax) {
|
||||||
return tax.amount
|
if (!tax.compound_tax) {
|
||||||
}
|
return tax.amount
|
||||||
|
}
|
||||||
|
|
||||||
return 0
|
return 0
|
||||||
})
|
})
|
||||||
|
)
|
||||||
},
|
},
|
||||||
totalCompoundTax() {
|
totalCompoundTax() {
|
||||||
return window._.sumBy(this.item.taxes, function (tax) {
|
return Math.round(
|
||||||
if (tax.compound_tax) {
|
window._.sumBy(this.item.taxes, function (tax) {
|
||||||
return tax.amount
|
if (tax.compound_tax) {
|
||||||
}
|
return tax.amount
|
||||||
|
}
|
||||||
|
|
||||||
return 0
|
return 0
|
||||||
})
|
})
|
||||||
|
)
|
||||||
},
|
},
|
||||||
totalTax() {
|
totalTax() {
|
||||||
return this.totalSimpleTax + this.totalCompoundTax
|
return this.totalSimpleTax + this.totalCompoundTax
|
||||||
@ -297,7 +301,7 @@ export default {
|
|||||||
set: function (newValue) {
|
set: function (newValue) {
|
||||||
if (parseFloat(newValue) > 0) {
|
if (parseFloat(newValue) > 0) {
|
||||||
this.item.price = Math.round(newValue * 100)
|
this.item.price = Math.round(newValue * 100)
|
||||||
this.maxDiscount = this.item.price
|
this.maxDiscount = this.item.price * this.item.quantity
|
||||||
} else {
|
} else {
|
||||||
this.item.price = newValue
|
this.item.price = newValue
|
||||||
}
|
}
|
||||||
|
|||||||
@ -105,11 +105,13 @@ export default {
|
|||||||
},
|
},
|
||||||
taxAmount() {
|
taxAmount() {
|
||||||
if (this.tax.compound_tax && this.total) {
|
if (this.tax.compound_tax && this.total) {
|
||||||
return ((this.total + this.totalTax) * this.tax.percent) / 100
|
return Math.round(
|
||||||
|
((this.total + this.totalTax) * this.tax.percent) / 100
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.total && this.tax.percent) {
|
if (this.total && this.tax.percent) {
|
||||||
return (this.total * this.tax.percent) / 100
|
return Math.round((this.total * this.tax.percent) / 100)
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0
|
return 0
|
||||||
|
|||||||
@ -27,8 +27,8 @@
|
|||||||
invoice.status === 'OVERDUE' ||
|
invoice.status === 'OVERDUE' ||
|
||||||
invoice.status === 'VIEWED'
|
invoice.status === 'VIEWED'
|
||||||
"
|
"
|
||||||
tag-name="router-link"
|
|
||||||
:to="`/admin/payments/${$route.params.id}/create`"
|
:to="`/admin/payments/${$route.params.id}/create`"
|
||||||
|
tag-name="router-link"
|
||||||
variant="primary"
|
variant="primary"
|
||||||
class="text-sm"
|
class="text-sm"
|
||||||
>
|
>
|
||||||
@ -45,8 +45,8 @@
|
|||||||
</sw-dropdown-item>
|
</sw-dropdown-item>
|
||||||
|
|
||||||
<sw-dropdown-item
|
<sw-dropdown-item
|
||||||
tag-name="router-link"
|
|
||||||
:to="`/admin/invoices/${$route.params.id}/edit`"
|
:to="`/admin/invoices/${$route.params.id}/edit`"
|
||||||
|
tag-name="router-link"
|
||||||
>
|
>
|
||||||
<pencil-icon class="h-5 mr-3 text-gray-600" />
|
<pencil-icon class="h-5 mr-3 text-gray-600" />
|
||||||
{{ $t('general.edit') }}
|
{{ $t('general.edit') }}
|
||||||
@ -125,10 +125,10 @@
|
|||||||
<sw-radio
|
<sw-radio
|
||||||
id="filter_invoice_number"
|
id="filter_invoice_number"
|
||||||
v-model="searchData.orderByField"
|
v-model="searchData.orderByField"
|
||||||
|
:label="$t('invoices.invoice_number')"
|
||||||
size="sm"
|
size="sm"
|
||||||
type="radio"
|
type="radio"
|
||||||
name="filter"
|
name="filter"
|
||||||
:label="$t('invoices.invoice_number')"
|
|
||||||
value="invoice_number"
|
value="invoice_number"
|
||||||
@change="onSearch"
|
@change="onSearch"
|
||||||
/>
|
/>
|
||||||
@ -137,8 +137,8 @@
|
|||||||
</sw-dropdown>
|
</sw-dropdown>
|
||||||
|
|
||||||
<sw-button
|
<sw-button
|
||||||
class="ml-1"
|
|
||||||
v-tooltip.top-center="{ content: getOrderName }"
|
v-tooltip.top-center="{ content: getOrderName }"
|
||||||
|
class="ml-1"
|
||||||
size="md"
|
size="md"
|
||||||
variant="gray-light"
|
variant="gray-light"
|
||||||
@click="sortData"
|
@click="sortData"
|
||||||
@ -184,16 +184,16 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<sw-badge
|
<sw-badge
|
||||||
class="px-1 text-xs"
|
|
||||||
:bg-color="$utils.getBadgeStatusColor(invoice.status).bgColor"
|
:bg-color="$utils.getBadgeStatusColor(invoice.status).bgColor"
|
||||||
:color="$utils.getBadgeStatusColor(invoice.status).color"
|
:color="$utils.getBadgeStatusColor(invoice.status).color"
|
||||||
:font-size="$utils.getBadgeStatusColor(invoice.status).fontSize"
|
:font-size="$utils.getBadgeStatusColor(invoice.status).fontSize"
|
||||||
|
class="px-1 text-xs"
|
||||||
>
|
>
|
||||||
{{ invoice.status }}
|
{{ $utils.getStatusTranslation(invoice.status) }}
|
||||||
</sw-badge>
|
</sw-badge>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="flex-1 whitespace-no-wrap right">
|
<div class="flex-1 whitespace-nowrap right">
|
||||||
<div
|
<div
|
||||||
class="mb-2 text-xl not-italic font-semibold leading-8 text-right text-gray-900"
|
class="mb-2 text-xl not-italic font-semibold leading-8 text-right text-gray-900"
|
||||||
v-html="
|
v-html="
|
||||||
|
|||||||
@ -189,7 +189,7 @@
|
|||||||
<span>{{ $t('items.unit') }}</span>
|
<span>{{ $t('items.unit') }}</span>
|
||||||
|
|
||||||
<span>
|
<span>
|
||||||
{{ row.unit_name ? row.unit_name : 'Not selected' }}
|
{{ row.unit_name ? row.unit_name : $t('items.not_selected') }}
|
||||||
</span>
|
</span>
|
||||||
</template>
|
</template>
|
||||||
</sw-table-column>
|
</sw-table-column>
|
||||||
|
|||||||
@ -202,7 +202,7 @@
|
|||||||
<template slot-scope="row">
|
<template slot-scope="row">
|
||||||
<span>{{ $t('payments.payment_mode') }}</span>
|
<span>{{ $t('payments.payment_mode') }}</span>
|
||||||
<span>
|
<span>
|
||||||
{{ row.payment_mode ? row.payment_mode : 'Not selected' }}
|
{{ row.payment_mode ? row.payment_mode : $t('payments.not_selected') }}
|
||||||
</span>
|
</span>
|
||||||
</template>
|
</template>
|
||||||
</sw-table-column>
|
</sw-table-column>
|
||||||
@ -216,7 +216,7 @@
|
|||||||
<template slot-scope="row">
|
<template slot-scope="row">
|
||||||
<span>{{ $t('invoices.invoice_number') }}</span>
|
<span>{{ $t('invoices.invoice_number') }}</span>
|
||||||
<span>
|
<span>
|
||||||
{{ row.invoice_number ? row.invoice_number : 'No Invoice' }}
|
{{ row.invoice_number ? row.invoice_number : $t('payments.no_invoice') }}
|
||||||
</span>
|
</span>
|
||||||
</template>
|
</template>
|
||||||
</sw-table-column>
|
</sw-table-column>
|
||||||
|
|||||||
@ -20,8 +20,8 @@
|
|||||||
</sw-dropdown-item>
|
</sw-dropdown-item>
|
||||||
|
|
||||||
<sw-dropdown-item
|
<sw-dropdown-item
|
||||||
tag-name="router-link"
|
|
||||||
:to="`/admin/payments/${$route.params.id}/edit`"
|
:to="`/admin/payments/${$route.params.id}/edit`"
|
||||||
|
tag-name="router-link"
|
||||||
>
|
>
|
||||||
<pencil-icon class="h-5 mr-3 text-gray-600" />
|
<pencil-icon class="h-5 mr-3 text-gray-600" />
|
||||||
{{ $t('general.edit') }}
|
{{ $t('general.edit') }}
|
||||||
@ -68,10 +68,10 @@
|
|||||||
<sw-dropdown-item class="flex cursor-pointer">
|
<sw-dropdown-item class="flex cursor-pointer">
|
||||||
<sw-input-group class="-mt-3 font-normal">
|
<sw-input-group class="-mt-3 font-normal">
|
||||||
<sw-radio
|
<sw-radio
|
||||||
:label="$t('invoices.title')"
|
|
||||||
size="sm"
|
|
||||||
id="filter_invoice_number"
|
id="filter_invoice_number"
|
||||||
|
:label="$t('invoices.title')"
|
||||||
v-model="searchData.orderByField"
|
v-model="searchData.orderByField"
|
||||||
|
size="sm"
|
||||||
name="filter"
|
name="filter"
|
||||||
value="invoice_number"
|
value="invoice_number"
|
||||||
@change="onSearch"
|
@change="onSearch"
|
||||||
@ -82,10 +82,10 @@
|
|||||||
<sw-dropdown-item class="flex cursor-pointer">
|
<sw-dropdown-item class="flex cursor-pointer">
|
||||||
<sw-input-group class="-mt-3 font-normal">
|
<sw-input-group class="-mt-3 font-normal">
|
||||||
<sw-radio
|
<sw-radio
|
||||||
:label="$t('payments.date')"
|
|
||||||
size="sm"
|
|
||||||
id="filter_payment_date"
|
id="filter_payment_date"
|
||||||
|
:label="$t('payments.date')"
|
||||||
v-model="searchData.orderByField"
|
v-model="searchData.orderByField"
|
||||||
|
size="sm"
|
||||||
name="filter"
|
name="filter"
|
||||||
value="payment_date"
|
value="payment_date"
|
||||||
@change="onSearch"
|
@change="onSearch"
|
||||||
@ -109,8 +109,8 @@
|
|||||||
</sw-dropdown>
|
</sw-dropdown>
|
||||||
|
|
||||||
<sw-button
|
<sw-button
|
||||||
class="ml-1"
|
|
||||||
v-tooltip.top-center="{ content: getOrderName }"
|
v-tooltip.top-center="{ content: getOrderName }"
|
||||||
|
class="ml-1"
|
||||||
size="md"
|
size="md"
|
||||||
variant="gray-light"
|
variant="gray-light"
|
||||||
@click="sortData"
|
@click="sortData"
|
||||||
@ -162,7 +162,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="flex-1 whitespace-no-wrap right">
|
<div class="flex-1 whitespace-nowrap right">
|
||||||
<div
|
<div
|
||||||
class="mb-2 text-xl not-italic font-semibold leading-8 text-right text-gray-900"
|
class="mb-2 text-xl not-italic font-semibold leading-8 text-right text-gray-900"
|
||||||
v-html="$utils.formatMoney(payment.amount, payment.user.currency)"
|
v-html="$utils.formatMoney(payment.amount, payment.user.currency)"
|
||||||
|
|||||||
@ -65,7 +65,7 @@
|
|||||||
/>
|
/>
|
||||||
|
|
||||||
<a
|
<a
|
||||||
class="flex items-center justify-center h-10 px-5 py-1 text-sm font-medium leading-none text-center text-white whitespace-no-wrap rounded md:hidden bg-primary-500"
|
class="flex items-center justify-center h-10 px-5 py-1 text-sm font-medium leading-none text-center text-white whitespace-nowrap rounded md:hidden bg-primary-500"
|
||||||
@click="viewReportsPDF"
|
@click="viewReportsPDF"
|
||||||
>
|
>
|
||||||
<document-text-icon />
|
<document-text-icon />
|
||||||
|
|||||||
@ -67,7 +67,7 @@
|
|||||||
/>
|
/>
|
||||||
|
|
||||||
<a
|
<a
|
||||||
class="flex items-center justify-center h-10 px-5 py-1 text-sm font-medium leading-none text-center text-white whitespace-no-wrap rounded md:hidden bg-primary-500"
|
class="flex items-center justify-center h-10 px-5 py-1 text-sm font-medium leading-none text-center text-white whitespace-nowrap rounded md:hidden bg-primary-500"
|
||||||
@click="viewReportsPDF"
|
@click="viewReportsPDF"
|
||||||
>
|
>
|
||||||
<document-text-icon />
|
<document-text-icon />
|
||||||
|
|||||||
@ -79,7 +79,7 @@
|
|||||||
class="hidden w-full h-screen border-gray-100 border-solid rounded md:flex"
|
class="hidden w-full h-screen border-gray-100 border-solid rounded md:flex"
|
||||||
/>
|
/>
|
||||||
<a
|
<a
|
||||||
class="flex items-center justify-center h-10 px-5 py-1 text-sm font-medium leading-none text-center text-white whitespace-no-wrap rounded md:hidden bg-primary-500"
|
class="flex items-center justify-center h-10 px-5 py-1 text-sm font-medium leading-none text-center text-white whitespace-nowrap rounded md:hidden bg-primary-500"
|
||||||
@click="viewReportsPDF"
|
@click="viewReportsPDF"
|
||||||
>
|
>
|
||||||
<document-text-icon />
|
<document-text-icon />
|
||||||
|
|||||||
@ -61,7 +61,7 @@
|
|||||||
class="hidden w-full h-screen border-gray-100 border-solid rounded md:flex"
|
class="hidden w-full h-screen border-gray-100 border-solid rounded md:flex"
|
||||||
/>
|
/>
|
||||||
<a
|
<a
|
||||||
class="flex items-center justify-center h-10 px-5 py-1 text-sm font-medium leading-none text-center text-white whitespace-no-wrap rounded md:hidden bg-primary-500"
|
class="flex items-center justify-center h-10 px-5 py-1 text-sm font-medium leading-none text-center text-white whitespace-nowrap rounded md:hidden bg-primary-500"
|
||||||
@click="viewReportsPDF"
|
@click="viewReportsPDF"
|
||||||
>
|
>
|
||||||
<document-text-icon />
|
<document-text-icon />
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="relative setting-main-container backup">
|
<div class="relative setting-main-container backup">
|
||||||
<sw-card variant="setting-card">
|
<sw-card variant="setting-card">
|
||||||
<div slot="header" class="flex flex-wrap justify-between lg:flex-no-wrap">
|
<div slot="header" class="flex flex-wrap justify-between lg:flex-nowrap">
|
||||||
<div>
|
<div>
|
||||||
<h6 class="sw-section-title">
|
<h6 class="sw-section-title">
|
||||||
{{ $tc('settings.backup.title', 1) }}
|
{{ $tc('settings.backup.title', 1) }}
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<sw-card variant="setting-card">
|
<sw-card variant="setting-card">
|
||||||
<div slot="header" class="flex flex-wrap justify-between lg:flex-no-wrap">
|
<div slot="header" class="flex flex-wrap justify-between lg:flex-nowrap">
|
||||||
<div>
|
<div>
|
||||||
<h6 class="sw-section-title">
|
<h6 class="sw-section-title">
|
||||||
{{ $t('settings.menu_title.custom_fields') }}
|
{{ $t('settings.menu_title.custom_fields') }}
|
||||||
|
|||||||
@ -59,12 +59,15 @@ export default {
|
|||||||
this.isRequestOnGoing = true
|
this.isRequestOnGoing = true
|
||||||
let res = await this.fetchCompanySettings([
|
let res = await this.fetchCompanySettings([
|
||||||
'payment_auto_generate',
|
'payment_auto_generate',
|
||||||
|
'payment_email_attachment',
|
||||||
'payment_prefix',
|
'payment_prefix',
|
||||||
'payment_mail_body',
|
'payment_mail_body',
|
||||||
'invoice_auto_generate',
|
'invoice_auto_generate',
|
||||||
|
'invoice_email_attachment',
|
||||||
'invoice_prefix',
|
'invoice_prefix',
|
||||||
'invoice_mail_body',
|
'invoice_mail_body',
|
||||||
'estimate_auto_generate',
|
'estimate_auto_generate',
|
||||||
|
'estimate_email_attachment',
|
||||||
'estimate_prefix',
|
'estimate_prefix',
|
||||||
'estimate_mail_body',
|
'estimate_mail_body',
|
||||||
'invoice_billing_address_format',
|
'invoice_billing_address_format',
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<sw-card variant="setting-card">
|
<sw-card variant="setting-card">
|
||||||
<div slot="header" class="flex flex-wrap justify-between lg:flex-no-wrap">
|
<div slot="header" class="flex flex-wrap justify-between lg:flex-nowrap">
|
||||||
<div>
|
<div>
|
||||||
<h6 class="sw-section-title">
|
<h6 class="sw-section-title">
|
||||||
{{ $t('settings.expense_category.title') }}
|
{{ $t('settings.expense_category.title') }}
|
||||||
@ -51,7 +51,7 @@
|
|||||||
}}</span>
|
}}</span>
|
||||||
<div class="w-48 overflow-hidden notes">
|
<div class="w-48 overflow-hidden notes">
|
||||||
<div
|
<div
|
||||||
class="overflow-hidden whitespace-no-wrap"
|
class="overflow-hidden whitespace-nowrap"
|
||||||
style="text-overflow: ellipsis"
|
style="text-overflow: ellipsis"
|
||||||
>
|
>
|
||||||
{{ row.description }}
|
{{ row.description }}
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="setting-main-container backup">
|
<div class="setting-main-container backup">
|
||||||
<sw-card variant="setting-card">
|
<sw-card variant="setting-card">
|
||||||
<div slot="header" class="flex flex-wrap justify-between lg:flex-no-wrap">
|
<div slot="header" class="flex flex-wrap justify-between lg:flex-nowrap">
|
||||||
<div>
|
<div>
|
||||||
<h6 class="sw-section-title">
|
<h6 class="sw-section-title">
|
||||||
{{ $tc('settings.disk.title', 1) }}
|
{{ $tc('settings.disk.title', 1) }}
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<sw-card variant="setting-card">
|
<sw-card variant="setting-card">
|
||||||
<div slot="header" class="flex flex-wrap justify-between lg:flex-no-wrap">
|
<div slot="header" class="flex flex-wrap justify-between lg:flex-nowrap">
|
||||||
<div>
|
<div>
|
||||||
<h6 class="sw-section-title">
|
<h6 class="sw-section-title">
|
||||||
{{ $t('settings.customization.notes.title') }}
|
{{ $t('settings.customization.notes.title') }}
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<sw-card variant="setting-card">
|
<sw-card variant="setting-card">
|
||||||
<div slot="header" class="flex flex-wrap justify-between lg:flex-no-wrap">
|
<div slot="header" class="flex flex-wrap justify-between lg:flex-nowrap">
|
||||||
<div>
|
<div>
|
||||||
<h6 class="sw-section-title">
|
<h6 class="sw-section-title">
|
||||||
{{ $t('settings.customization.payments.payment_modes') }}
|
{{ $t('settings.customization.payments.payment_modes') }}
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<sw-card variant="setting-card">
|
<sw-card variant="setting-card">
|
||||||
<div slot="header" class="flex flex-wrap justify-between lg:flex-no-wrap">
|
<div slot="header" class="flex flex-wrap justify-between lg:flex-nowrap">
|
||||||
<div>
|
<div>
|
||||||
<h6 class="sw-section-title">
|
<h6 class="sw-section-title">
|
||||||
{{ $t('settings.tax_types.title') }}
|
{{ $t('settings.tax_types.title') }}
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<form @submit.prevent="updateUserData" class="relative h-full">
|
<form class="relative h-full" @submit.prevent="updateUserData">
|
||||||
<base-loader v-if="isRequestOnGoing" :show-bg-overlay="true" />
|
<base-loader v-if="isRequestOnGoing" :show-bg-overlay="true" />
|
||||||
<sw-card variant="setting-card">
|
<sw-card variant="setting-card">
|
||||||
<template slot="header">
|
<template slot="header">
|
||||||
@ -17,7 +17,7 @@
|
|||||||
<div class="grid mb-4 md:grid-cols-6">
|
<div class="grid mb-4 md:grid-cols-6">
|
||||||
<div>
|
<div>
|
||||||
<label
|
<label
|
||||||
class="text-sm not-italic font-medium leading-4 text-black whitespace-no-wrap"
|
class="text-sm not-italic font-medium leading-4 text-black whitespace-nowrap"
|
||||||
>
|
>
|
||||||
{{ $tc('settings.account_settings.profile_picture') }}
|
{{ $tc('settings.account_settings.profile_picture') }}
|
||||||
</label>
|
</label>
|
||||||
@ -114,9 +114,9 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<sw-button
|
<sw-button
|
||||||
class="mt-6"
|
|
||||||
:loading="isLoading"
|
:loading="isLoading"
|
||||||
:disabled="isLoading"
|
:disabled="isLoading"
|
||||||
|
class="mt-6"
|
||||||
variant="primary"
|
variant="primary"
|
||||||
>
|
>
|
||||||
<save-icon v-if="!isLoading" class="mr-2 -ml-1" />
|
<save-icon v-if="!isLoading" class="mr-2 -ml-1" />
|
||||||
|
|||||||
@ -70,7 +70,7 @@
|
|||||||
|
|
||||||
<sw-divider class="mt-6 mb-8" />
|
<sw-divider class="mt-6 mb-8" />
|
||||||
|
|
||||||
<div class="flex">
|
<div class="flex mt-3 mb-4">
|
||||||
<div class="relative w-12">
|
<div class="relative w-12">
|
||||||
<sw-switch
|
<sw-switch
|
||||||
v-model="estimateAutogenerate"
|
v-model="estimateAutogenerate"
|
||||||
@ -96,6 +96,32 @@
|
|||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="flex mb-2">
|
||||||
|
<div class="relative w-12">
|
||||||
|
<sw-switch
|
||||||
|
v-model="estimateAsAttachment"
|
||||||
|
class="absolute"
|
||||||
|
style="top: -20px"
|
||||||
|
@change="setEstimateSetting"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div class="ml-4">
|
||||||
|
<p class="p-0 mb-1 text-base leading-snug text-black">
|
||||||
|
{{
|
||||||
|
$t('settings.customization.estimates.estimate_email_attachment')
|
||||||
|
}}
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p
|
||||||
|
class="p-0 m-0 text-xs leading-tight text-gray-500"
|
||||||
|
style="max-width: 480px"
|
||||||
|
>
|
||||||
|
{{
|
||||||
|
$t('settings.customization.estimates.estimate_email_attachment_setting_description')
|
||||||
|
}}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@ -115,6 +141,7 @@ export default {
|
|||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
estimateAutogenerate: false,
|
estimateAutogenerate: false,
|
||||||
|
estimateAsAttachment: false,
|
||||||
|
|
||||||
estimates: {
|
estimates: {
|
||||||
estimate_prefix: null,
|
estimate_prefix: null,
|
||||||
@ -204,6 +231,14 @@ export default {
|
|||||||
} else {
|
} else {
|
||||||
this.estimateAutogenerate = false
|
this.estimateAutogenerate = false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.estimate_email_attachment = val ? val.estimate_email_attachment : ''
|
||||||
|
|
||||||
|
if (this.estimate_email_attachment === 'YES') {
|
||||||
|
this.estimateAsAttachment = true
|
||||||
|
} else {
|
||||||
|
this.estimateAsAttachment = false
|
||||||
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -214,6 +249,7 @@ export default {
|
|||||||
let data = {
|
let data = {
|
||||||
settings: {
|
settings: {
|
||||||
estimate_auto_generate: this.estimateAutogenerate ? 'YES' : 'NO',
|
estimate_auto_generate: this.estimateAutogenerate ? 'YES' : 'NO',
|
||||||
|
estimate_email_attachment: this.estimateAsAttachment ? 'YES' : 'NO',
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
let response = await this.updateCompanySettings(data)
|
let response = await this.updateCompanySettings(data)
|
||||||
|
|||||||
@ -74,7 +74,7 @@
|
|||||||
|
|
||||||
<sw-divider class="mt-6 mb-8" />
|
<sw-divider class="mt-6 mb-8" />
|
||||||
|
|
||||||
<div class="flex">
|
<div class="flex mt-3 mb-4">
|
||||||
<div class="relative w-12">
|
<div class="relative w-12">
|
||||||
<sw-switch
|
<sw-switch
|
||||||
v-model="invoiceAutogenerate"
|
v-model="invoiceAutogenerate"
|
||||||
@ -101,6 +101,33 @@
|
|||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="flex mb-2">
|
||||||
|
<div class="relative w-12">
|
||||||
|
<sw-switch
|
||||||
|
v-model="invoiceAsAttachment"
|
||||||
|
class="absolute"
|
||||||
|
style="top: -20px"
|
||||||
|
@change="setInvoiceSetting"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="ml-4">
|
||||||
|
<p class="p-0 mb-1 text-base leading-snug text-black">
|
||||||
|
{{
|
||||||
|
$t('settings.customization.invoices.invoice_email_attachment')
|
||||||
|
}}
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p
|
||||||
|
class="p-0 m-0 text-xs leading-tight text-gray-500"
|
||||||
|
style="max-width: 480px"
|
||||||
|
>
|
||||||
|
{{
|
||||||
|
$t('settings.customization.invoices.invoice_email_attachment_setting_description')
|
||||||
|
}}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@ -120,6 +147,7 @@ export default {
|
|||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
invoiceAutogenerate: false,
|
invoiceAutogenerate: false,
|
||||||
|
invoiceAsAttachment: false,
|
||||||
|
|
||||||
invoices: {
|
invoices: {
|
||||||
invoice_prefix: null,
|
invoice_prefix: null,
|
||||||
@ -189,6 +217,14 @@ export default {
|
|||||||
} else {
|
} else {
|
||||||
this.invoiceAutogenerate = false
|
this.invoiceAutogenerate = false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.invoice_email_attachment = val ? val.invoice_email_attachment : ''
|
||||||
|
|
||||||
|
if (this.invoice_email_attachment === 'YES') {
|
||||||
|
this.invoiceAsAttachment = true
|
||||||
|
} else {
|
||||||
|
this.invoiceAsAttachment = false
|
||||||
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -209,6 +245,7 @@ export default {
|
|||||||
let data = {
|
let data = {
|
||||||
settings: {
|
settings: {
|
||||||
invoice_auto_generate: this.invoiceAutogenerate ? 'YES' : 'NO',
|
invoice_auto_generate: this.invoiceAutogenerate ? 'YES' : 'NO',
|
||||||
|
invoice_email_attachment: this.invoiceAsAttachment ? 'YES' : 'NO',
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<div class="flex flex-wrap justify-end mt-8 lg:flex-no-wrap">
|
<div class="flex flex-wrap justify-end mt-8 lg:flex-nowrap">
|
||||||
<sw-button size="lg" variant="primary-outline" @click="addItemUnit">
|
<sw-button size="lg" variant="primary-outline" @click="addItemUnit">
|
||||||
<plus-icon class="w-6 h-6 mr-1 -ml-2" />
|
<plus-icon class="w-6 h-6 mr-1 -ml-2" />
|
||||||
{{ $t('settings.customization.items.add_item_unit') }}
|
{{ $t('settings.customization.items.add_item_unit') }}
|
||||||
|
|||||||
@ -63,7 +63,7 @@
|
|||||||
|
|
||||||
<sw-divider class="mt-6 mb-8" />
|
<sw-divider class="mt-6 mb-8" />
|
||||||
|
|
||||||
<div class="flex">
|
<div class="flex mt-3 mb-4">
|
||||||
<div class="relative w-12">
|
<div class="relative w-12">
|
||||||
<sw-switch
|
<sw-switch
|
||||||
v-model="paymentAutogenerate"
|
v-model="paymentAutogenerate"
|
||||||
@ -90,6 +90,33 @@
|
|||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="flex mb-2">
|
||||||
|
<div class="relative w-12">
|
||||||
|
<sw-switch
|
||||||
|
v-model="paymentAsAttachment"
|
||||||
|
class="absolute"
|
||||||
|
style="top: -20px"
|
||||||
|
@change="setPaymentSetting"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="ml-4">
|
||||||
|
<p class="p-0 mb-1 text-base leading-snug text-black">
|
||||||
|
{{
|
||||||
|
$t('settings.customization.payments.payment_email_attachment')
|
||||||
|
}}
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p
|
||||||
|
class="p-0 m-0 text-xs leading-tight text-gray-500"
|
||||||
|
style="max-width: 480px"
|
||||||
|
>
|
||||||
|
{{
|
||||||
|
$t('settings.customization.payments.payment_email_attachment_setting_description')
|
||||||
|
}}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
@ -108,6 +135,7 @@ export default {
|
|||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
paymentAutogenerate: false,
|
paymentAutogenerate: false,
|
||||||
|
paymentAsAttachment: false,
|
||||||
|
|
||||||
payments: {
|
payments: {
|
||||||
payment_prefix: null,
|
payment_prefix: null,
|
||||||
@ -184,6 +212,14 @@ export default {
|
|||||||
} else {
|
} else {
|
||||||
this.paymentAutogenerate = false
|
this.paymentAutogenerate = false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.payment_email_attachment = val ? val.payment_email_attachment : ''
|
||||||
|
|
||||||
|
if (this.payment_email_attachment === 'YES') {
|
||||||
|
this.paymentAsAttachment = true
|
||||||
|
} else {
|
||||||
|
this.paymentAsAttachment = false
|
||||||
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -203,6 +239,7 @@ export default {
|
|||||||
let data = {
|
let data = {
|
||||||
settings: {
|
settings: {
|
||||||
payment_auto_generate: this.paymentAutogenerate ? 'YES' : 'NO',
|
payment_auto_generate: this.paymentAutogenerate ? 'YES' : 'NO',
|
||||||
|
payment_email_attachment: this.paymentAsAttachment ? 'YES' : 'NO',
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
let response = await this.updateCompanySettings(data)
|
let response = await this.updateCompanySettings(data)
|
||||||
|
|||||||
8
resources/assets/sass/crater.scss
vendored
8
resources/assets/sass/crater.scss
vendored
@ -1,11 +1,9 @@
|
|||||||
// Tailwind
|
@tailwind base;
|
||||||
//----------------------------------
|
|
||||||
|
|
||||||
@import 'tailwindcss/base';
|
@tailwind components;
|
||||||
|
|
||||||
@import 'tailwindcss/components';
|
@tailwind utilities;
|
||||||
|
|
||||||
@import 'tailwindcss/utilities';
|
|
||||||
|
|
||||||
// Plugins
|
// Plugins
|
||||||
//----------------------------------
|
//----------------------------------
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
<html>
|
<html>
|
||||||
|
|
||||||
<head>
|
<head>
|
||||||
<title>Estimate</title>
|
<title>@lang('pdf_estimate_label') - {{$estimate->estimate_number}}</title>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
|
||||||
<style type="text/css">
|
<style type="text/css">
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
<html>
|
<html>
|
||||||
|
|
||||||
<head>
|
<head>
|
||||||
<title>Estimate</title>
|
<title>@lang('pdf_estimate_label') - {{$estimate->estimate_number}}</title>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
<style type="text/css">
|
<style type="text/css">
|
||||||
/* -- Base -- */
|
/* -- Base -- */
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
<html>
|
<html>
|
||||||
|
|
||||||
<head>
|
<head>
|
||||||
<title>Estimate</title>
|
<title>@lang('pdf_estimate_label') - {{$estimate->estimate_number}}</title>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
|
||||||
<style type="text/css">
|
<style type="text/css">
|
||||||
|
|||||||
@ -34,7 +34,7 @@
|
|||||||
class="pr-20 text-right item-cell"
|
class="pr-20 text-right item-cell"
|
||||||
style="vertical-align: top;"
|
style="vertical-align: top;"
|
||||||
>
|
>
|
||||||
{{$item->quantity}}
|
{{$item->quantity}} @if($item->unit_name) {{$item->unit_name}} @endif
|
||||||
</td>
|
</td>
|
||||||
<td
|
<td
|
||||||
class="pr-20 text-right item-cell"
|
class="pr-20 text-right item-cell"
|
||||||
@ -94,26 +94,27 @@
|
|||||||
</tr>
|
</tr>
|
||||||
@endforeach
|
@endforeach
|
||||||
@endif
|
@endif
|
||||||
|
@if($estimate->discount > 0)
|
||||||
@if ($estimate->discount_per_item === 'NO')
|
@if ($estimate->discount_per_item === 'NO')
|
||||||
<tr>
|
<tr>
|
||||||
<td class="pl-10 border-0 total-table-attribute-label">
|
<td class="pl-10 border-0 total-table-attribute-label">
|
||||||
@if($estimate->discount_type === 'fixed')
|
@if($estimate->discount_type === 'fixed')
|
||||||
@lang('pdf_discount_label')
|
@lang('pdf_discount_label')
|
||||||
@endif
|
@endif
|
||||||
@if($estimate->discount_type === 'percentage')
|
@if($estimate->discount_type === 'percentage')
|
||||||
@lang('pdf_discount_label') ({{$estimate->discount}}%)
|
@lang('pdf_discount_label') ({{$estimate->discount}}%)
|
||||||
@endif
|
@endif
|
||||||
</td>
|
</td>
|
||||||
<td class="text-right border-0 item-cell total-table-attribute-value">
|
<td class="text-right border-0 item-cell total-table-attribute-value">
|
||||||
@if($estimate->discount_type === 'fixed')
|
@if($estimate->discount_type === 'fixed')
|
||||||
{!! format_money_pdf($estimate->discount_val, $estimate->user->currency) !!}
|
{!! format_money_pdf($estimate->discount_val, $estimate->user->currency) !!}
|
||||||
@endif
|
@endif
|
||||||
@if($estimate->discount_type === 'percentage')
|
@if($estimate->discount_type === 'percentage')
|
||||||
{!! format_money_pdf($estimate->discount_val, $estimate->user->currency) !!}
|
{!! format_money_pdf($estimate->discount_val, $estimate->user->currency) !!}
|
||||||
@endif
|
@endif
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
@endif
|
||||||
@endif
|
@endif
|
||||||
<tr>
|
<tr>
|
||||||
<td class="py-3"></td>
|
<td class="py-3"></td>
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
<html>
|
<html>
|
||||||
|
|
||||||
<head>
|
<head>
|
||||||
<title>Invoice</title>
|
<title>@lang('pdf_invoice_label') - {{$invoice->invoice_number}}</title>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
|
||||||
<style type="text/css">
|
<style type="text/css">
|
||||||
@ -69,7 +69,6 @@
|
|||||||
padding-left: 30px;
|
padding-left: 30px;
|
||||||
float: left;
|
float: left;
|
||||||
width: 30%;
|
width: 30%;
|
||||||
text-transform: capitalize;
|
|
||||||
margin-bottom: 2px;
|
margin-bottom: 2px;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -215,7 +214,6 @@
|
|||||||
|
|
||||||
.total-display-table {
|
.total-display-table {
|
||||||
border-top: none;
|
border-top: none;
|
||||||
box-sizing: border-box;
|
|
||||||
page-break-inside: avoid;
|
page-break-inside: avoid;
|
||||||
page-break-before: auto;
|
page-break-before: auto;
|
||||||
page-break-after: auto;
|
page-break-after: auto;
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
<html>
|
<html>
|
||||||
|
|
||||||
<head>
|
<head>
|
||||||
<title>Invoice</title>
|
<title>@lang('pdf_invoice_label') - {{$invoice->invoice_number}}</title>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
<style type="text/css">
|
<style type="text/css">
|
||||||
/* -- Base -- */
|
/* -- Base -- */
|
||||||
@ -256,7 +256,6 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.total-display-table {
|
.total-display-table {
|
||||||
box-sizing: border-box;
|
|
||||||
page-break-inside: avoid;
|
page-break-inside: avoid;
|
||||||
page-break-before: auto;
|
page-break-before: auto;
|
||||||
page-break-after: auto;
|
page-break-after: auto;
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
<html>
|
<html>
|
||||||
|
|
||||||
<head>
|
<head>
|
||||||
<title>Invoice</title>
|
<title>@lang('pdf_invoice_label') - {{$invoice->invoice_number}}</title>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
|
||||||
<style type="text/css">
|
<style type="text/css">
|
||||||
@ -42,7 +42,6 @@
|
|||||||
}
|
}
|
||||||
.company-address-container {
|
.company-address-container {
|
||||||
width: 50%;
|
width: 50%;
|
||||||
text-transform: capitalize;
|
|
||||||
padding-left: 80px;
|
padding-left: 80px;
|
||||||
margin-bottom: 2px;
|
margin-bottom: 2px;
|
||||||
}
|
}
|
||||||
@ -185,7 +184,6 @@
|
|||||||
|
|
||||||
|
|
||||||
.total-display-table {
|
.total-display-table {
|
||||||
box-sizing: border-box;
|
|
||||||
page-break-inside: avoid;
|
page-break-inside: avoid;
|
||||||
page-break-before: auto;
|
page-break-before: auto;
|
||||||
page-break-after: auto;
|
page-break-after: auto;
|
||||||
|
|||||||
@ -31,7 +31,7 @@
|
|||||||
class="pr-20 text-right item-cell"
|
class="pr-20 text-right item-cell"
|
||||||
style="vertical-align: top;"
|
style="vertical-align: top;"
|
||||||
>
|
>
|
||||||
{{$item->quantity}}
|
{{$item->quantity}} @if($item->unit_name) {{$item->unit_name}} @endif
|
||||||
</td>
|
</td>
|
||||||
<td
|
<td
|
||||||
class="pr-20 text-right item-cell"
|
class="pr-20 text-right item-cell"
|
||||||
@ -39,19 +39,21 @@
|
|||||||
>
|
>
|
||||||
{!! format_money_pdf($item->price, $invoice->user->currency) !!}
|
{!! format_money_pdf($item->price, $invoice->user->currency) !!}
|
||||||
</td>
|
</td>
|
||||||
|
|
||||||
@if($invoice->discount_per_item === 'YES')
|
@if($invoice->discount_per_item === 'YES')
|
||||||
<td
|
<td
|
||||||
class="pl-10 text-right item-cell"
|
class="pl-10 text-right item-cell"
|
||||||
style="vertical-align: top;"
|
style="vertical-align: top;"
|
||||||
>
|
>
|
||||||
@if($item->discount_type === 'fixed')
|
@if($item->discount_type === 'fixed')
|
||||||
{!! format_money_pdf($item->discount_val, $invoice->user->currency) !!}
|
{!! format_money_pdf($item->discount_val, $invoice->user->currency) !!}
|
||||||
@endif
|
@endif
|
||||||
@if($item->discount_type === 'percentage')
|
@if($item->discount_type === 'percentage')
|
||||||
{{$item->discount}}%
|
{{$item->discount}}%
|
||||||
@endif
|
@endif
|
||||||
</td>
|
</td>
|
||||||
@endif
|
@endif
|
||||||
|
|
||||||
<td
|
<td
|
||||||
class="text-right item-cell"
|
class="text-right item-cell"
|
||||||
style="vertical-align: top;"
|
style="vertical-align: top;"
|
||||||
@ -100,26 +102,29 @@
|
|||||||
@endforeach
|
@endforeach
|
||||||
@endif
|
@endif
|
||||||
|
|
||||||
@if ($invoice->discount_per_item === 'NO')
|
@if($invoice->discount > 0)
|
||||||
<tr>
|
@if ($invoice->discount_per_item === 'NO')
|
||||||
<td class="border-0 total-table-attribute-label">
|
<tr>
|
||||||
@if($invoice->discount_type === 'fixed')
|
<td class="border-0 total-table-attribute-label">
|
||||||
@lang('pdf_discount_label')
|
@if($invoice->discount_type === 'fixed')
|
||||||
@endif
|
@lang('pdf_discount_label')
|
||||||
@if($invoice->discount_type === 'percentage')
|
@endif
|
||||||
@lang('pdf_discount_label') ({{$invoice->discount}}%)
|
@if($invoice->discount_type === 'percentage')
|
||||||
@endif
|
@lang('pdf_discount_label') ({{$invoice->discount}}%)
|
||||||
</td>
|
@endif
|
||||||
<td class="py-2 border-0 item-cell total-table-attribute-value" >
|
</td>
|
||||||
@if($invoice->discount_type === 'fixed')
|
<td class="py-2 border-0 item-cell total-table-attribute-value" >
|
||||||
{!! format_money_pdf($invoice->discount_val, $invoice->user->currency) !!}
|
@if($invoice->discount_type === 'fixed')
|
||||||
@endif
|
{!! format_money_pdf($invoice->discount_val, $invoice->user->currency) !!}
|
||||||
@if($invoice->discount_type === 'percentage')
|
@endif
|
||||||
{!! format_money_pdf($invoice->discount_val, $invoice->user->currency) !!}
|
@if($invoice->discount_type === 'percentage')
|
||||||
@endif
|
{!! format_money_pdf($invoice->discount_val, $invoice->user->currency) !!}
|
||||||
</td>
|
@endif
|
||||||
</tr>
|
</td>
|
||||||
|
</tr>
|
||||||
|
@endif
|
||||||
@endif
|
@endif
|
||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
<td class="py-3"></td>
|
<td class="py-3"></td>
|
||||||
<td class="py-3"></td>
|
<td class="py-3"></td>
|
||||||
|
|||||||
@ -1,8 +1,9 @@
|
|||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html>
|
<html>
|
||||||
|
|
||||||
<head>
|
<head>
|
||||||
<title>Payment</title>
|
<title>@lang('pdf_estimate_label') - {{$payment->payment_number}}</title>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
|
||||||
<style type="text/css">
|
<style type="text/css">
|
||||||
/* -- Base -- */
|
/* -- Base -- */
|
||||||
@ -15,13 +16,14 @@
|
|||||||
padding: 0px;
|
padding: 0px;
|
||||||
margin-top: 50px;
|
margin-top: 50px;
|
||||||
}
|
}
|
||||||
|
|
||||||
table {
|
table {
|
||||||
border-collapse: collapse;
|
border-collapse: collapse;
|
||||||
}
|
}
|
||||||
|
|
||||||
hr {
|
hr {
|
||||||
color: rgba(0, 0, 0, 0.2);
|
color: rgba(0, 0, 0, 0.2);
|
||||||
border: 0.5px solid #EAF1FB;
|
border: 0.5px solid #EAF1FB;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -- Heeader -- */
|
/* -- Heeader -- */
|
||||||
@ -51,12 +53,14 @@
|
|||||||
color: #817AE3;
|
color: #817AE3;
|
||||||
padding-top: 0px;
|
padding-top: 0px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.company-address-container {
|
.company-address-container {
|
||||||
width: 50%;
|
width: 50%;
|
||||||
text-transform: capitalize;
|
text-transform: capitalize;
|
||||||
padding-left: 80px;
|
padding-left: 80px;
|
||||||
margin-bottom: 2px;
|
margin-bottom: 2px;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* .header-section-right {
|
/* .header-section-right {
|
||||||
display:inline-block;
|
display:inline-block;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
@ -77,7 +81,7 @@
|
|||||||
/* -- Company Address -- */
|
/* -- Company Address -- */
|
||||||
|
|
||||||
.company-details h1 {
|
.company-details h1 {
|
||||||
margin:0;
|
margin: 0;
|
||||||
|
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
font-size: 15px;
|
font-size: 15px;
|
||||||
@ -87,8 +91,8 @@
|
|||||||
max-width: 220px;
|
max-width: 220px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.company-address{
|
.company-address {
|
||||||
/* margin-top: 12px; */
|
/* margin-top: 12px; */
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
line-height: 15px;
|
line-height: 15px;
|
||||||
color: #595959;
|
color: #595959;
|
||||||
@ -96,8 +100,8 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.content-wrapper {
|
.content-wrapper {
|
||||||
display: block;
|
display: block;
|
||||||
height: 200px;
|
height: 200px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.main-content {
|
.main-content {
|
||||||
@ -108,8 +112,8 @@
|
|||||||
/* -- Customer Address -- */
|
/* -- Customer Address -- */
|
||||||
.customer-address-container {
|
.customer-address-container {
|
||||||
display: block;
|
display: block;
|
||||||
float:left;
|
float: left;
|
||||||
width:40%;
|
width: 40%;
|
||||||
padding: 0 0 0 30px;
|
padding: 0 0 0 30px;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -167,7 +171,7 @@
|
|||||||
font-size: 10px;
|
font-size: 10px;
|
||||||
line-height: 15px;
|
line-height: 15px;
|
||||||
color: #595959;
|
color: #595959;
|
||||||
margin:0px;
|
margin: 0px;
|
||||||
width: 180px;
|
width: 180px;
|
||||||
word-wrap: break-word;
|
word-wrap: break-word;
|
||||||
}
|
}
|
||||||
@ -226,7 +230,7 @@
|
|||||||
|
|
||||||
p {
|
p {
|
||||||
padding: 0 0 0 0;
|
padding: 0 0 0 0;
|
||||||
margin: 0 0 0 0;
|
margin: 0 0 0 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.content-heading span {
|
.content-heading span {
|
||||||
@ -258,7 +262,7 @@
|
|||||||
color: #595959;
|
color: #595959;
|
||||||
}
|
}
|
||||||
|
|
||||||
.total-display-box span {
|
.total-display-box .amount {
|
||||||
float: right;
|
float: right;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
@ -268,21 +272,22 @@
|
|||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
<div class="header-container">
|
<div class="header-container">
|
||||||
<table width="100%">
|
<table width="100%">
|
||||||
<tr>
|
<tr>
|
||||||
@if($logo)
|
@if($logo)
|
||||||
<td width="50%" class="header-section-left">
|
<td width="50%" class="header-section-left">
|
||||||
<img class="header-logo" src="{{ $logo }}" alt="Company Logo">
|
<img class="header-logo" src="{{ $logo }}" alt="Company Logo">
|
||||||
@else
|
@else
|
||||||
@if($payment->user->company)
|
@if($payment->user->company)
|
||||||
<td class="header-section-left" style="padding-top:0px;">
|
<td class="header-section-left" style="padding-top:0px;">
|
||||||
<h1 class="header-logo"> {{$payment->user->company->name}} </h1>
|
<h1 class="header-logo"> {{$payment->user->company->name}} </h1>
|
||||||
|
@endif
|
||||||
@endif
|
@endif
|
||||||
@endif
|
|
||||||
</td>
|
</td>
|
||||||
<td width="50%" class="header-section-right company-details company-address">
|
<td width="50%" class="header-section-right company-details company-address">
|
||||||
{!! $company_address !!}
|
{!! $company_address !!}
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@ -300,8 +305,8 @@
|
|||||||
<div class="customer-address-container">
|
<div class="customer-address-container">
|
||||||
<div class="billing-address-container billing-address">
|
<div class="billing-address-container billing-address">
|
||||||
@if($billing_address)
|
@if($billing_address)
|
||||||
@lang('pdf_received_from')
|
@lang('pdf_received_from')
|
||||||
{!! $billing_address !!}
|
{!! $billing_address !!}
|
||||||
@endif
|
@endif
|
||||||
</div>
|
</div>
|
||||||
<div class="billing-address-container--right">
|
<div class="billing-address-container--right">
|
||||||
@ -324,10 +329,10 @@
|
|||||||
<td class="attribute-value"> {{$payment->paymentMethod ? $payment->paymentMethod->name : '-'}}</td>
|
<td class="attribute-value"> {{$payment->paymentMethod ? $payment->paymentMethod->name : '-'}}</td>
|
||||||
</tr>
|
</tr>
|
||||||
@if ($payment->invoice && $payment->invoice->invoice_number)
|
@if ($payment->invoice && $payment->invoice->invoice_number)
|
||||||
<tr>
|
<tr>
|
||||||
<td class="attribute-label">@lang('pdf_invoice_label')</td>
|
<td class="attribute-label">@lang('pdf_invoice_label')</td>
|
||||||
<td class="attribute-value"> {{$payment->invoice->invoice_number}}</td>
|
<td class="attribute-value"> {{$payment->invoice->invoice_number}}</td>
|
||||||
</tr>
|
</tr>
|
||||||
@endif
|
@endif
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
@ -336,7 +341,8 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="total-display-box">
|
<div class="total-display-box">
|
||||||
<p class="total-display-label">@lang('pdf_payment_amount_received_label')</p>
|
<p class="total-display-label">@lang('pdf_payment_amount_received_label')</p>
|
||||||
<span>{!! format_money_pdf($payment->amount, $payment->user->currency) !!}</span>
|
<span class="amount">{!! format_money_pdf($payment->amount, $payment->user->currency) !!}</span>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
<title>Expenses Report</title>
|
<title>@lang('pdf_expense_report_label')</title>
|
||||||
<style type="text/css">
|
<style type="text/css">
|
||||||
body {
|
body {
|
||||||
font-family: "DejaVu Sans";
|
font-family: "DejaVu Sans";
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
<title>Profit & Loss Report</title>
|
<title>@lang('pdf_profit_loss_label')</title>
|
||||||
<style type="text/css">
|
<style type="text/css">
|
||||||
body {
|
body {
|
||||||
font-family: "DejaVu Sans";
|
font-family: "DejaVu Sans";
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
<title>Sales Customer Report</title>
|
<title>@lang('pdf_sales_customers_label')</title>
|
||||||
<style type="text/css">
|
<style type="text/css">
|
||||||
body {
|
body {
|
||||||
font-family: "DejaVu Sans";
|
font-family: "DejaVu Sans";
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user