Compare commits

..

56 Commits

Author SHA1 Message Date
Nikhil
b414764552 Update readme.md 2021-12-27 20:05:56 +05:30
Mwikala Kangwa
d69b7fd491 Allow invoices to be sent/resent from the invoice view page (#623)
* Allow invoices to be sent/resent from the invoice view page
2021-12-17 20:40:41 +05:30
Mohit Panjwani
b770e6277f remove currency tests 2021-12-10 18:04:42 +05:30
Mohit Panjwani
67c70d7a11 Merge branch 'master' of https://github.com/bytefury/crater 2021-12-10 18:00:11 +05:30
Mohit Panjwani
3a1f5a417f new build 506 2021-12-10 17:48:34 +05:30
Mohit Panjwani
f3b527b6b7 fix custom field selection issue 2021-12-10 17:39:59 +05:30
Mohit Panjwani
3582ed0f1b Merge branch 'v5-issues-fix' into 'master'
fix pdf issue & payment update issue

See merge request mohit.panjvani/crater-web!1335
2021-12-10 12:00:29 +00:00
Mohit Panjwani
0439effa74 Create CODE_OF_CONDUCT.md 2021-12-09 21:32:37 +05:30
harshjagad20
725afa9f65 fix pdf issue & payment update issue 2021-12-09 18:06:25 +05:30
Mohit Panjwani
8b07632fd7 Merge pull request #631 from davwheat/patch-1
fix: make min item quantity 0 instead of 1
2021-12-09 14:15:28 +05:30
Mohit Panjwani
87b6f527a9 Merge pull request #637 from azaricstefan/patch-1
Typo error
2021-12-09 14:15:17 +05:30
Mohit Panjwani
24f1fe8685 remove unused imports 2021-12-09 13:42:58 +05:30
Mohit Panjwani
afa79e3e8c fix test 2021-12-09 13:40:13 +05:30
Mohit Panjwani
b7d2d6f470 new build 405 2021-12-09 12:42:46 +05:30
Mohit Panjwani
08c2fc4692 Merge branch 'master' 2021-12-09 12:41:25 +05:30
Mohit Panjwani
f4e3688216 fix payment edit issue when invoice selected from url 2021-12-09 12:41:17 +05:30
Mohit Panjwani
3af84ad208 Merge branch 'migration-issue' into 'master'
drop unique constraint from customers

See merge request mohit.panjvani/crater-web!1333
2021-12-09 07:10:51 +00:00
jayvirsinh_gohil
562dbfa803 drop unique constraint from customers 2021-12-09 12:30:29 +05:30
Mohit Panjwani
769e16cfca Merge branch 'migration-issue' into 'master'
add calculate base expenses migration

See merge request mohit.panjvani/crater-web!1332
2021-12-09 06:24:03 +00:00
jayvirsinh_gohil
f2790e8cf0 add calculate base expenses migration 2021-12-09 11:32:41 +05:30
Mohit Panjwani
e7f7b283ec Merge branch 'qty-fix' into 'master'
Qty fix

See merge request mohit.panjvani/crater-web!1331
2021-12-08 13:29:46 +00:00
yogesh_gohil
83c6576033 fix: allow 0 value for quantity 2021-12-08 18:53:26 +05:30
Mohit Panjwani
5be3389451 Merge branch 'migration-issue' into 'master'
solve migration issue

See merge request mohit.panjvani/crater-web!1330
2021-12-08 13:10:00 +00:00
jayvirsinh_gohil
2b05ca44bf solve 400 migration 2021-12-08 18:14:37 +05:30
jayvirsinh_gohil
0bbc79b899 solve migration issue 2021-12-08 18:10:34 +05:30
Mohit Panjwani
7be4e98511 Merge branch 'migration-issue' into 'master'
solve migration issue

See merge request mohit.panjvani/crater-web!1329
2021-12-08 12:38:46 +00:00
jayvirsinh_gohil
f1cadadfec solve migration issue 2021-12-08 18:06:59 +05:30
Mohit Panjwani
faef583c06 Merge branch 'migration-issue' into 'master'
solve migration issue

See merge request mohit.panjvani/crater-web!1327
2021-12-08 12:34:24 +00:00
Mohit Panjwani
67d4f5101d Merge branch 'v5-fix-customField-issue' into 'master'
fix expense custom field issue

See merge request mohit.panjvani/crater-web!1328
2021-12-08 12:34:01 +00:00
harshjagad20
79208fe596 fix expense custom field issue 2021-12-08 17:40:42 +05:30
jayvirsinh_gohil
ca87133c39 solve migration issue 2021-12-08 17:14:02 +05:30
Mohit Panjwani
68db11becf Merge branch 'fix-master-issues-v5' into 'master'
make user_id nullable in payments

See merge request mohit.panjvani/crater-web!1326
2021-12-08 11:08:14 +00:00
harshjagad20
57d6ca50e6 make user_id nullable in payments 2021-12-08 16:30:43 +05:30
yogesh_gohil
848bbb5953 fix: quantity min value 2021-12-08 16:27:18 +05:30
Mohit Panjwani
5ed62ac1dd Merge branch 'fix-master-issues-v5' into 'master'
fix: profit loss report issue

See merge request mohit.panjvani/crater-web!1325
2021-12-08 10:41:36 +00:00
jayvirsinh_gohil
77ce1d7431 solve migration issue 2021-12-08 15:39:14 +05:30
jayvirsinh_gohil
102a3a809d solve migration issue 2021-12-08 15:06:29 +05:30
jayvirsinh_gohil
f139912c56 solve migration issue 2021-12-08 12:47:42 +05:30
harshjagad20
c0c5f42ba1 fix: profit loss report issue 2021-12-08 12:24:25 +05:30
Stefan Azarić
02d803803c Typo error
Fixing a typo in name of schema.
2021-12-08 00:08:38 +01:00
Mohit Panjwani
e8b4339237 fix loading indicator and send invoice status error 2021-12-07 17:28:49 +05:30
Mohit Panjwani
15cef7c970 Merge branch 'fix-tests-5.0.2' into 'master'
fix-tests-5.0.2

See merge request mohit.panjvani/crater-web!1315
2021-12-07 11:53:56 +00:00
Harsh Jagad
fe66b8bdb8 fix-tests-5.0.2 2021-12-07 11:53:56 +00:00
David Wheatley
8001b2ede9 fix: make min quantity 0 instead of 1 2021-12-06 22:29:56 +00:00
Mohit Panjwani
5a7b515a03 Merge branch 'master' 2021-12-06 20:10:06 +05:30
Mohit Panjwani
b1cc524d3c new update 2021-12-06 18:42:54 +05:30
Mohit Panjwani
316a6585b3 new build 504 2021-12-06 18:40:17 +05:30
Mohit Panjwani
c14f58c7f1 Merge branch 'custom-field-fixes' into 'master' 2021-12-06 12:51:31 +00:00
radhika587
603bf637a7 fix custom field issue and report issues 2021-12-06 12:51:31 +00:00
Mohit Panjwani
7b6a88ad4e Merge branch 'latest-fix-recurring-invoice' into 'master'
fix recurring invoice starts at condition

See merge request mohit.panjvani/crater-web!1319
2021-12-06 12:06:51 +00:00
Mohit Panjwani
7cf099f00e Merge branch 'rec-invoice' into 'master'
fix recurring invoice view page table

See merge request mohit.panjvani/crater-web!1321
2021-12-06 12:05:21 +00:00
harshjagad20
8026c205cc solve recurring invoice starts_at condition 2021-12-06 16:13:20 +05:30
yogesh_gohil
2b0477d576 fix recurring invoice view page table 2021-12-06 16:11:24 +05:30
Mohit Panjwani
74830e49f1 fix cronjob invoice generation issue with hashids 2021-12-06 14:15:16 +05:30
Mohit Panjwani
7e683aa5cc Create Security.MD 2021-12-06 14:04:54 +05:30
harshjagad20
b543f6d389 fix recurring invoice starts at condition 2021-12-06 12:47:53 +05:30
123 changed files with 691 additions and 575 deletions

128
CODE_OF_CONDUCT.md Normal file
View File

@@ -0,0 +1,128 @@
# Contributor Covenant Code of Conduct
## Our Pledge
We as members, contributors, and leaders pledge to make participation in our
community a harassment-free experience for everyone, regardless of age, body
size, visible or invisible disability, ethnicity, sex characteristics, gender
identity and expression, level of experience, education, socio-economic status,
nationality, personal appearance, race, religion, or sexual identity
and orientation.
We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, inclusive, and healthy community.
## Our Standards
Examples of behavior that contributes to a positive environment for our
community include:
* Demonstrating empathy and kindness toward other people
* Being respectful of differing opinions, viewpoints, and experiences
* Giving and gracefully accepting constructive feedback
* Accepting responsibility and apologizing to those affected by our mistakes,
and learning from the experience
* Focusing on what is best not just for us as individuals, but for the
overall community
Examples of unacceptable behavior include:
* The use of sexualized language or imagery, and sexual attention or
advances of any kind
* Trolling, insulting or derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or email
address, without their explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting
## Enforcement Responsibilities
Community leaders are responsible for clarifying and enforcing our standards of
acceptable behavior and will take appropriate and fair corrective action in
response to any behavior that they deem inappropriate, threatening, offensive,
or harmful.
Community leaders have the right and responsibility to remove, edit, or reject
comments, commits, code, wiki edits, issues, and other contributions that are
not aligned to this Code of Conduct, and will communicate reasons for moderation
decisions when appropriate.
## Scope
This Code of Conduct applies within all community spaces, and also applies when
an individual is officially representing the community in public spaces.
Examples of representing our community include using an official e-mail address,
posting via an official social media account, or acting as an appointed
representative at an online or offline event.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement at
info@craterapp.com.
All complaints will be reviewed and investigated promptly and fairly.
All community leaders are obligated to respect the privacy and security of the
reporter of any incident.
## Enforcement Guidelines
Community leaders will follow these Community Impact Guidelines in determining
the consequences for any action they deem in violation of this Code of Conduct:
### 1. Correction
**Community Impact**: Use of inappropriate language or other behavior deemed
unprofessional or unwelcome in the community.
**Consequence**: A private, written warning from community leaders, providing
clarity around the nature of the violation and an explanation of why the
behavior was inappropriate. A public apology may be requested.
### 2. Warning
**Community Impact**: A violation through a single incident or series
of actions.
**Consequence**: A warning with consequences for continued behavior. No
interaction with the people involved, including unsolicited interaction with
those enforcing the Code of Conduct, for a specified period of time. This
includes avoiding interactions in community spaces as well as external channels
like social media. Violating these terms may lead to a temporary or
permanent ban.
### 3. Temporary Ban
**Community Impact**: A serious violation of community standards, including
sustained inappropriate behavior.
**Consequence**: A temporary ban from any sort of interaction or public
communication with the community for a specified period of time. No public or
private interaction with the people involved, including unsolicited interaction
with those enforcing the Code of Conduct, is allowed during this period.
Violating these terms may lead to a permanent ban.
### 4. Permanent Ban
**Community Impact**: Demonstrating a pattern of violation of community
standards, including sustained inappropriate behavior, harassment of an
individual, or aggression toward or disparagement of classes of individuals.
**Consequence**: A permanent ban from any sort of public interaction within
the community.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.0, available at
https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
Community Impact Guidelines were inspired by [Mozilla's code of conduct
enforcement ladder](https://github.com/mozilla/diversity).
[homepage]: https://www.contributor-covenant.org
For answers to common questions about this code of conduct, see the FAQ at
https://www.contributor-covenant.org/faq. Translations are available at
https://www.contributor-covenant.org/translations.

5
SECURITY.md Normal file
View File

@@ -0,0 +1,5 @@
# Security Policy
## Reporting a Vulnerability
Please email security@craterapp.com to report any security vulnerabilities. We will acknowledge receipt of your vulnerability and strive to send you regular updates about our progress. If you're curious about the status of your disclosure please feel free to email us again.

View File

@@ -47,7 +47,7 @@ class CustomerSalesReportController extends Controller
foreach ($customers as $customer) { foreach ($customers as $customer) {
$customerTotalAmount = 0; $customerTotalAmount = 0;
foreach ($customer->invoices as $invoice) { foreach ($customer->invoices as $invoice) {
$customerTotalAmount += $invoice->total; $customerTotalAmount += $invoice->base_total;
} }
$customer->totalAmount = $customerTotalAmount; $customer->totalAmount = $customerTotalAmount;
$totalAmount += $customerTotalAmount; $totalAmount += $customerTotalAmount;

View File

@@ -7,7 +7,7 @@ use Crater\Http\Controllers\Controller;
use Crater\Models\Company; use Crater\Models\Company;
use Crater\Models\CompanySetting; use Crater\Models\CompanySetting;
use Crater\Models\Expense; use Crater\Models\Expense;
use Crater\Models\Invoice; use Crater\Models\Payment;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Support\Facades\App; use Illuminate\Support\Facades\App;
use PDF; use PDF;
@@ -31,10 +31,9 @@ class ProfitLossReportController extends Controller
App::setLocale($locale); App::setLocale($locale);
$invoicesAmount = Invoice::whereCompanyId($company->id) $paymentsAmount = Payment::whereCompanyId($company->id)
->applyFilters($request->only(['from_date', 'to_date'])) ->applyFilters($request->only(['from_date', 'to_date']))
->wherePaidStatus(Invoice::STATUS_PAID) ->sum('base_amount');
->sum('total');
$expenseCategories = Expense::with('category') $expenseCategories = Expense::with('category')
->whereCompanyId($company->id) ->whereCompanyId($company->id)
@@ -68,7 +67,7 @@ class ProfitLossReportController extends Controller
view()->share([ view()->share([
'company' => $company, 'company' => $company,
'income' => $invoicesAmount, 'income' => $paymentsAmount,
'expenseCategories' => $expenseCategories, 'expenseCategories' => $expenseCategories,
'totalExpense' => $totalAmount, 'totalExpense' => $totalAmount,
'colorSettings' => $colorSettings, 'colorSettings' => $colorSettings,

View File

@@ -147,7 +147,7 @@ class Company extends Model implements HasMedia
public function users() public function users()
{ {
return $this->belongsToMany(User::class, 'user_company', 'user_id', 'company_id'); return $this->belongsToMany(User::class, 'user_company', 'company_id', 'user_id');
} }
public function setupRoles() public function setupRoles()

View File

@@ -226,7 +226,7 @@ class Expense extends Model implements HasMedia
$query->select( $query->select(
DB::raw(' DB::raw('
count(*) as expenses_count, count(*) as expenses_count,
sum(amount) as total_amount, sum(base_amount) as total_amount,
expense_category_id') expense_category_id')
) )
->groupBy('expense_category_id'); ->groupBy('expense_category_id');
@@ -246,8 +246,8 @@ class Expense extends Model implements HasMedia
$expense->addMediaFromRequest('attachment_receipt')->toMediaCollection('receipts'); $expense->addMediaFromRequest('attachment_receipt')->toMediaCollection('receipts');
} }
if ($request->customFields && empty($request->customFields)) { if ($request->customFields) {
$expense->addCustomFields($request->customFields); $expense->addCustomFields(json_decode($request->customFields));
} }
return $expense; return $expense;
@@ -270,8 +270,8 @@ class Expense extends Model implements HasMedia
$this->addMediaFromRequest('attachment_receipt')->toMediaCollection('receipts'); $this->addMediaFromRequest('attachment_receipt')->toMediaCollection('receipts');
} }
if ($request->customFields && empty($request->customFields)) { if ($request->customFields) {
$this->updateCustomFields($request->customFields); $this->updateCustomFields(json_decode($request->customFields));
} }
return true; return true;

View File

@@ -460,14 +460,14 @@ class Invoice extends Model implements HasMedia
{ {
$data = $this->sendInvoiceData($data); $data = $this->sendInvoiceData($data);
\Mail::to($data['to'])->send(new SendInvoiceMail($data));
if ($this->status == Invoice::STATUS_DRAFT) { if ($this->status == Invoice::STATUS_DRAFT) {
$this->status = Invoice::STATUS_SENT; $this->status = Invoice::STATUS_SENT;
$this->sent = true; $this->sent = true;
$this->save(); $this->save();
} }
\Mail::to($data['to'])->send(new SendInvoiceMail($data));
return [ return [
'success' => true, 'success' => true,
'type' => 'send', 'type' => 'send',

View File

@@ -75,7 +75,7 @@ class InvoiceItem extends Model
public function scopeItemAttributes($query) public function scopeItemAttributes($query)
{ {
$query->select( $query->select(
DB::raw('sum(quantity) as total_quantity, sum(total) as total_amount, invoice_items.name') DB::raw('sum(quantity) as total_quantity, sum(base_total) as total_amount, invoice_items.name')
)->groupBy('invoice_items.name'); )->groupBy('invoice_items.name');
} }
} }

View File

@@ -195,7 +195,7 @@ class Payment extends Model implements HasMedia
$invoice->addInvoicePayment($this->amount); $invoice->addInvoicePayment($this->amount);
} }
if ($this->invoice_id === $request->invoice_id && $request->amount !== $this->amount) { if ($this->invoice_id && $this->invoice_id === $request->invoice_id && $request->amount !== $this->amount) {
$invoice = Invoice::find($this->invoice_id); $invoice = Invoice::find($this->invoice_id);
$invoice->addInvoicePayment($this->amount); $invoice->addInvoicePayment($this->amount);
$invoice->subtractInvoicePayment($request->amount); $invoice->subtractInvoicePayment($request->amount);
@@ -312,6 +312,12 @@ class Payment extends Model implements HasMedia
$query->whereCustomer($filters->get('customer_id')); $query->whereCustomer($filters->get('customer_id'));
} }
if ($filters->get('from_date') && $filters->get('to_date')) {
$start = Carbon::createFromFormat('Y-m-d', $filters->get('from_date'));
$end = Carbon::createFromFormat('Y-m-d', $filters->get('to_date'));
$query->paymentsBetween($start, $end);
}
if ($filters->get('orderByField') || $filters->get('orderBy')) { if ($filters->get('orderByField') || $filters->get('orderBy')) {
$field = $filters->get('orderByField') ? $filters->get('orderByField') : 'sequence_number'; $field = $filters->get('orderByField') ? $filters->get('orderByField') : 'sequence_number';
$orderBy = $filters->get('orderBy') ? $filters->get('orderBy') : 'desc'; $orderBy = $filters->get('orderBy') ? $filters->get('orderBy') : 'desc';
@@ -319,6 +325,14 @@ class Payment extends Model implements HasMedia
} }
} }
public function scopePaymentsBetween($query, $start, $end)
{
return $query->whereBetween(
'payments.payment_date',
[$start->format('Y-m-d'), $end->format('Y-m-d')]
);
}
public function scopeWhereOrder($query, $orderByField, $orderBy) public function scopeWhereOrder($query, $orderByField, $orderBy)
{ {
$query->orderBy($orderByField, $orderBy); $query->orderBy($orderByField, $orderBy);

View File

@@ -20,6 +20,10 @@ class RecurringInvoice extends Model
'id', 'id',
]; ];
protected $dates = [
'starts_at'
];
public const NONE = 'NONE'; public const NONE = 'NONE';
public const COUNT = 'COUNT'; public const COUNT = 'COUNT';
public const DATE = 'DATE'; public const DATE = 'DATE';
@@ -259,6 +263,10 @@ class RecurringInvoice extends Model
public function generateInvoice() public function generateInvoice()
{ {
if (Carbon::now()->lessThan($this->starts_at)) {
return;
}
if ($this->limit_by == 'DATE') { if ($this->limit_by == 'DATE') {
$startDate = Carbon::today()->format('Y-m-d'); $startDate = Carbon::today()->format('Y-m-d');
@@ -361,6 +369,7 @@ class RecurringInvoice extends Model
'customer' => $invoice->customer->toArray(), 'customer' => $invoice->customer->toArray(),
'company' => Company::find($invoice->company_id) 'company' => Company::find($invoice->company_id)
]; ];
$invoice->send($data); $invoice->send($data);
} }
} }

View File

@@ -68,7 +68,7 @@ class Tax extends Model
public function scopeTaxAttributes($query) public function scopeTaxAttributes($query)
{ {
$query->select( $query->select(
DB::raw('sum(amount) as total_tax_amount, tax_type_id') DB::raw('sum(base_amount) as total_tax_amount, tax_type_id')
)->groupBy('tax_type_id'); )->groupBy('tax_type_id');
} }

View File

@@ -9,8 +9,6 @@ use Crater\Traits\HasCustomFieldsTrait;
use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable; use Illuminate\Notifications\Notifiable;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Schema; use Illuminate\Support\Facades\Schema;
use Laravel\Sanctum\HasApiTokens; use Laravel\Sanctum\HasApiTokens;
use Silber\Bouncer\BouncerFacade; use Silber\Bouncer\BouncerFacade;
@@ -266,87 +264,6 @@ class User extends Authenticatable implements HasMedia
return 0; return 0;
} }
public static function createCustomer($request)
{
$data = $request->only([
'name',
'email',
'phone',
'company_name',
'contact_name',
'website',
'enable_portal',
'invoice_prefix',
'estimate_prefix',
'payment_prefix'
]);
$data['creator_id'] = Auth::id();
$data['company_id'] = $request->header('company');
$data['role'] = 'customer';
$data['password'] = Hash::make($request->password);
$customer = User::create($data);
$customer['currency_id'] = $request->currency_id;
$customer->save();
if ($request->addresses) {
foreach ($request->addresses as $address) {
$customer->addresses()->create($address);
}
}
$customFields = $request->customFields;
if ($customFields) {
$customer->addCustomFields($customFields);
}
$customer = User::with('billingAddress', 'shippingAddress', 'fields')->find($customer->id);
return $customer;
}
public static function updateCustomer($request, $customer)
{
$data = $request->only([
'name',
'currency_id',
'email',
'phone',
'company_name',
'contact_name',
'website',
'enable_portal',
'invoice_prefix',
'estimate_prefix',
'payment_prefix'
]);
$data['role'] = 'customer';
if ($request->has('password')) {
$customer->password = Hash::make($request->password);
}
$customer->update($data);
$customer->addresses()->delete();
if ($request->addresses) {
foreach ($request->addresses as $address) {
$customer->addresses()->create($address);
}
}
$customFields = $request->customFields;
if ($customFields) {
$customer->updateCustomFields($customFields);
}
$customer = User::with('billingAddress', 'shippingAddress', 'fields')->find($customer->id);
return $customer;
}
public function setSettings($settings) public function setSettings($settings)
{ {
foreach ($settings as $key => $value) { foreach ($settings as $key => $value) {

View File

@@ -1,5 +1,6 @@
<?php <?php
use Crater\Models\Address;
use Crater\Models\CompanySetting; use Crater\Models\CompanySetting;
use Crater\Models\Estimate; use Crater\Models\Estimate;
use Crater\Models\Expense; use Crater\Models\Expense;
@@ -33,16 +34,12 @@ class UpdateCraterVersion400 extends Migration
]); ]);
// Update language // Update language
$user->setSettings(['language' => CompanySetting::getSetting('language', $user->companies()->first()->id)]); $user->setSettings(['language' => CompanySetting::getSetting('language', $user->company_id)]);
// Update user's addresses Address::where('user_id', $user->id)->update([
if ($user->addresses()->exists()) { 'company_id' => $user->company_id,
foreach ($user->addresses as $address) { 'user_id' => null
$address->company_id = $user->companies()->first()->id; ]);
$address->user_id = null;
$address->save();
}
}
// Update company settings // Update company settings
$this->updateCompanySettings($user); $this->updateCompanySettings($user);
@@ -131,6 +128,6 @@ class UpdateCraterVersion400 extends Migration
'payment_from_customer_address_format' => $paymentFromCustomerAddress, 'payment_from_customer_address_format' => $paymentFromCustomerAddress,
]; ];
CompanySetting::setSettings($settings, $user->companies()->first()->id); CompanySetting::setSettings($settings, $user->company_id);
} }
} }

View File

@@ -15,24 +15,24 @@ class CreateBouncerTables extends Migration
*/ */
public function up() public function up()
{ {
if (Schema::hasTable('roles')) { if (Schema::hasTable('role_has_permissions')) {
Schema::drop(Models::table('roles')); Schema::drop('role_has_permissions');
}
if (Schema::hasTable('permissions')) {
Schema::drop(Models::table('permissions'));
}
if (Schema::hasTable('model_has_permissions')) {
Schema::drop(Models::table('model_has_permissions'));
} }
if (Schema::hasTable('model_has_roles')) { if (Schema::hasTable('model_has_roles')) {
Schema::drop(Models::table('model_has_roles')); Schema::drop('model_has_roles');
} }
if (Schema::hasTable('role_has_permissions')) { if (Schema::hasTable('model_has_permissions')) {
Schema::drop(Models::table('role_has_permissions')); Schema::drop('model_has_permissions');
}
if (Schema::hasTable('permissions')) {
Schema::drop('permissions');
}
if (Schema::hasTable('roles')) {
Schema::drop('roles');
} }
Schema::create(Models::table('abilities'), function (Blueprint $table) { Schema::create(Models::table('abilities'), function (Blueprint $table) {

View File

@@ -13,10 +13,13 @@ class AddCustomerIdToPaymentsTable extends Migration
*/ */
public function up() public function up()
{ {
Schema::disableForeignKeyConstraints();
Schema::table('payments', function (Blueprint $table) { Schema::table('payments', function (Blueprint $table) {
$table->unsignedInteger('user_id')->nullable()->change();
$table->unsignedBigInteger('customer_id')->nullable(); $table->unsignedBigInteger('customer_id')->nullable();
$table->foreign('customer_id')->references('id')->on('customers'); $table->foreign('customer_id')->references('id')->on('customers');
}); });
Schema::enableForeignKeyConstraints();
} }
/** /**

View File

@@ -1,7 +1,13 @@
<?php <?php
use Crater\Models\Address;
use Crater\Models\Customer; use Crater\Models\Customer;
use Crater\Models\CustomField; use Crater\Models\CustomField;
use Crater\Models\CustomFieldValue;
use Crater\Models\Estimate;
use Crater\Models\Expense;
use Crater\Models\Invoice;
use Crater\Models\Payment;
use Crater\Models\User; use Crater\Models\User;
use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Schema\Blueprint;
@@ -26,68 +32,46 @@ class UpdateCustomerIdInAllTables extends Migration
foreach ($users as $user) { foreach ($users as $user) {
$newCustomer = Customer::create($user->toArray()); $newCustomer = Customer::create($user->toArray());
$customFields = CustomField::where('model_type', 'User')->get(); Address::where('user_id', $user->id)->update([
'customer_id' => $newCustomer->id,
'user_id' => null
]);
if ($customFields) { Expense::where('user_id', $user->id)->update([
$user->fields->map(function ($customFieldValue) use ($newCustomer) { 'customer_id' => $newCustomer->id,
$customFieldValue->custom_field_valuable_type = "Crater\Models\Customer"; 'user_id' => null
$customFieldValue->custom_field_valuable_id = $newCustomer->id; ]);
$customFieldValue->save();
$customField = $customFieldValue->customField; Estimate::where('user_id', $user->id)->update([
$customField->model_type = "Customer"; 'customer_id' => $newCustomer->id,
$customField->slug = Str::upper('CUSTOM_'.$customField->model_type.'_'.Str::slug($customField->label, '_')); 'user_id' => null
$customField->save(); ]);
});
}
if ($user->addresses()->exists()) { Invoice::where('user_id', $user->id)->update([
$user->addresses->map(function ($address) use ($newCustomer) { 'customer_id' => $newCustomer->id,
if ($address) { 'user_id' => null
$address->customer_id = $newCustomer->id; ]);
$address->user_id = null;
$address->save();
}
});
}
if ($user->expenses()->exists()) { Payment::where('user_id', $user->id)->update([
$user->expenses->map(function ($expense) use ($newCustomer) { 'customer_id' => $newCustomer->id,
if ($expense) { 'user_id' => null
$expense->customer_id = $newCustomer->id; ]);
$expense->user_id = null;
$expense->save();
}
});
}
if ($user->estimates()->exists()) { CustomFieldValue::where('custom_field_valuable_id', $user->id)
$user->estimates->map(function ($estimate) use ($newCustomer) { ->where('custom_field_valuable_type', 'Crater\Models\User')
if ($estimate) { ->update([
$estimate->customer_id = $newCustomer->id; 'custom_field_valuable_type' => 'Crater\Models\Customer',
$estimate->user_id = null; 'custom_field_valuable_id' => $newCustomer->id
$estimate->save(); ]);
} }
});
}
if ($user->invoices()->exists()) { $customFields = CustomField::where('model_type', 'User')->get();
$user->invoices->map(function ($invoice) use ($newCustomer) {
if ($invoice) {
$invoice->customer_id = $newCustomer->id;
$invoice->user_id = null;
$invoice->save();
}
});
}
if ($user->payments()->exists()) { if ($customFields) {
$user->payments->map(function ($payment) use ($newCustomer) { foreach ($customFields as $customField) {
if ($payment) { $customField->model_type = "Customer";
$payment->customer_id = $newCustomer->id; $customField->slug = Str::upper('CUSTOM_'.$customField->model_type.'_'.Str::slug($customField->label, '_'));
$payment->save(); $customField->save();
}
});
} }
} }
} }

View File

@@ -30,6 +30,6 @@ class CreateUserCompanyTable extends Migration
*/ */
public function down() public function down()
{ {
Schema::dropIfExists('company_user'); Schema::dropIfExists('user_company');
} }
} }

View File

@@ -0,0 +1,27 @@
<?php
use Crater\Models\Setting;
use Illuminate\Database\Migrations\Migration;
class UpdateCraterVersion504 extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Setting::setSetting('version', '5.0.4');
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
//
}
}

View File

@@ -0,0 +1,45 @@
<?php
use Crater\Models\CompanySetting;
use Crater\Models\Expense;
use Crater\Models\User;
use Illuminate\Database\Migrations\Migration;
class CalculateBaseValuesForExpenses extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
$user = User::where('role', 'super admin')->first();
if ($user) {
$companyId = $user->companies()->first()->id;
$currency_id = CompanySetting::getSetting('currency', $companyId);
$expenses = Expense::where('company_id', $companyId)->where('currency_id', null)->get();
if ($expenses) {
$expenses->map(function ($expense) use ($currency_id) {
$expense->update([
'currency_id' => $currency_id,
'exchange_rate' => 1,
'base_amount' => $expense->amount,
]);
});
}
}
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
//
}
}

View File

@@ -0,0 +1,27 @@
<?php
use Crater\Models\Setting;
use Illuminate\Database\Migrations\Migration;
class UpdateCraterVersion505 extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Setting::setSetting('version', '5.0.5');
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
//
}
}

View File

@@ -0,0 +1,30 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class DropUniqueEmailOnCustomersTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('customers', function (Blueprint $table) {
$table->dropUnique(['email']);
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
//
}
}

View File

@@ -0,0 +1,27 @@
<?php
use Crater\Models\Setting;
use Illuminate\Database\Migrations\Migration;
class UpdateCreaterVersion506 extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Setting::setSetting('version', '5.0.6');
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
//
}
}

View File

@@ -1,6 +1,9 @@
FROM php:7.4-fpm-alpine FROM php:7.4-fpm-alpine
RUN docker-php-ext-install pdo pdo_mysql RUN apk add --no-cache \
php7-bcmath
RUN docker-php-ext-install pdo pdo_mysql bcmath
COPY docker-compose/crontab /etc/crontabs/root COPY docker-compose/crontab /etc/crontabs/root

View File

@@ -1 +1 @@
var h=Object.defineProperty,z=Object.defineProperties;var L=Object.getOwnPropertyDescriptors;var V=Object.getOwnPropertySymbols;var E=Object.prototype.hasOwnProperty,P=Object.prototype.propertyIsEnumerable;var b=(u,s,i)=>s in u?h(u,s,{enumerable:!0,configurable:!0,writable:!0,value:i}):u[s]=i,U=(u,s)=>{for(var i in s||(s={}))E.call(s,i)&&b(u,i,s[i]);if(V)for(var i of V(s))P.call(s,i)&&b(u,i,s[i]);return u},S=(u,s)=>z(u,L(s));import{g as Q,i as B,k as I,m as v,n as y,a2 as T,p as H,aQ as J,j as K,q as O,r as m,o as C,c as W,b as r,w as d,y as e,a0 as X,s as Y,z as Z,A as x,v as ee,x as ae,B as se,t as te}from"./vendor.e9042f2c.js";import{d as ne,m as oe,c as re}from"./main.9d655092.js";const le=["onSubmit"],ie=te("span",null,null,-1),pe={setup(u){const s=ne(),i=oe(),q=re(),{t:g}=Q();let p=B(!1),w=B(null),f=B([]);s.currentUser.avatar&&f.value.push({image:s.currentUser.avatar});const F=I(()=>({name:{required:v.withMessage(g("validation.required"),y)},email:{required:v.withMessage(g("validation.required"),y),email:v.withMessage(g("validation.email_incorrect"),T)},password:{minLength:v.withMessage(g("validation.password_length",{count:8}),H(8))},confirm_password:{sameAsPassword:v.withMessage(g("validation.password_incorrect"),J(t.password))}})),t=K({name:s.currentUser.name,email:s.currentUser.email,language:s.currentUserSettings.language||q.selectedCompanySettings.language,password:"",confirm_password:""}),o=O(F,I(()=>t));function M(l,a){w.value=a}function k(){w.value=null}async function G(){if(o.value.$touch(),o.value.$invalid)return!0;p.value=!0;let l={name:t.name,email:t.email};try{if(t.password!=null&&t.password!==void 0&&t.password!==""&&(l=S(U({},l),{password:t.password})),s.currentUserSettings.language!==t.language&&await s.updateUserSettings({settings:{language:t.language}}),(await s.updateCurrentUser(l)).data.data){if(p.value=!1,w.value){let $=new FormData;$.append("admin_avatar",w.value),await s.uploadAvatar($)}t.password="",t.confirm_password=""}}catch{return p.value=!1,!0}}return(l,a)=>{const $=m("BaseFileUploader"),c=m("BaseInputGroup"),_=m("BaseInput"),N=m("BaseMultiselect"),A=m("BaseInputGrid"),D=m("BaseIcon"),j=m("BaseButton"),R=m("BaseSettingCard");return C(),W("form",{class:"relative",onSubmit:se(G,["prevent"])},[r(R,{title:l.$t("settings.account_settings.account_settings"),description:l.$t("settings.account_settings.section_description")},{default:d(()=>[r(A,null,{default:d(()=>[r(c,{label:l.$tc("settings.account_settings.profile_picture")},{default:d(()=>[r($,{modelValue:e(f),"onUpdate:modelValue":a[0]||(a[0]=n=>X(f)?f.value=n:f=n),avatar:!0,accept:"image/*",onChange:M,onRemove:k},null,8,["modelValue"])]),_:1},8,["label"]),ie,r(c,{label:l.$tc("settings.account_settings.name"),error:e(o).name.$error&&e(o).name.$errors[0].$message,required:""},{default:d(()=>[r(_,{modelValue:e(t).name,"onUpdate:modelValue":a[1]||(a[1]=n=>e(t).name=n),invalid:e(o).name.$error,onInput:a[2]||(a[2]=n=>e(o).name.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["label","error"]),r(c,{label:l.$tc("settings.account_settings.email"),error:e(o).email.$error&&e(o).email.$errors[0].$message,required:""},{default:d(()=>[r(_,{modelValue:e(t).email,"onUpdate:modelValue":a[3]||(a[3]=n=>e(t).email=n),invalid:e(o).email.$error,onInput:a[4]||(a[4]=n=>e(o).email.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["label","error"]),r(c,{error:e(o).password.$error&&e(o).password.$errors[0].$message,label:l.$tc("settings.account_settings.password")},{default:d(()=>[r(_,{modelValue:e(t).password,"onUpdate:modelValue":a[5]||(a[5]=n=>e(t).password=n),type:"password",onInput:a[6]||(a[6]=n=>e(o).password.$touch())},null,8,["modelValue"])]),_:1},8,["error","label"]),r(c,{label:l.$tc("settings.account_settings.confirm_password"),error:e(o).confirm_password.$error&&e(o).confirm_password.$errors[0].$message},{default:d(()=>[r(_,{modelValue:e(t).confirm_password,"onUpdate:modelValue":a[7]||(a[7]=n=>e(t).confirm_password=n),type:"password",onInput:a[8]||(a[8]=n=>e(o).confirm_password.$touch())},null,8,["modelValue"])]),_:1},8,["label","error"]),r(c,{label:l.$tc("settings.language")},{default:d(()=>[r(N,{modelValue:e(t).language,"onUpdate:modelValue":a[9]||(a[9]=n=>e(t).language=n),options:e(i).config.languages,label:"name","value-prop":"code","track-by":"code","open-direction":"top"},null,8,["modelValue","options"])]),_:1},8,["label"])]),_:1}),r(j,{loading:e(p),disabled:e(p),class:"mt-6"},{left:d(n=>[e(p)?x("",!0):(C(),Y(D,{key:0,name:"SaveIcon",class:Z(n.class)},null,8,["class"]))]),default:d(()=>[ee(" "+ae(l.$tc("settings.company_info.save")),1)]),_:1},8,["loading","disabled"])]),_:1},8,["title","description"])],40,le)}}};export{pe as default}; var h=Object.defineProperty,z=Object.defineProperties;var L=Object.getOwnPropertyDescriptors;var V=Object.getOwnPropertySymbols;var E=Object.prototype.hasOwnProperty,P=Object.prototype.propertyIsEnumerable;var b=(u,s,i)=>s in u?h(u,s,{enumerable:!0,configurable:!0,writable:!0,value:i}):u[s]=i,U=(u,s)=>{for(var i in s||(s={}))E.call(s,i)&&b(u,i,s[i]);if(V)for(var i of V(s))P.call(s,i)&&b(u,i,s[i]);return u},S=(u,s)=>z(u,L(s));import{g as Q,i as B,k as I,m as v,n as y,a2 as T,p as H,aQ as J,j as K,q as O,r as m,o as C,c as W,b as r,w as d,y as e,a0 as X,s as Y,z as Z,A as x,v as ee,x as ae,B as se,t as te}from"./vendor.e9042f2c.js";import{d as ne,m as oe,c as re}from"./main.f55cd568.js";const le=["onSubmit"],ie=te("span",null,null,-1),pe={setup(u){const s=ne(),i=oe(),q=re(),{t:g}=Q();let p=B(!1),w=B(null),f=B([]);s.currentUser.avatar&&f.value.push({image:s.currentUser.avatar});const F=I(()=>({name:{required:v.withMessage(g("validation.required"),y)},email:{required:v.withMessage(g("validation.required"),y),email:v.withMessage(g("validation.email_incorrect"),T)},password:{minLength:v.withMessage(g("validation.password_length",{count:8}),H(8))},confirm_password:{sameAsPassword:v.withMessage(g("validation.password_incorrect"),J(t.password))}})),t=K({name:s.currentUser.name,email:s.currentUser.email,language:s.currentUserSettings.language||q.selectedCompanySettings.language,password:"",confirm_password:""}),o=O(F,I(()=>t));function M(l,a){w.value=a}function k(){w.value=null}async function G(){if(o.value.$touch(),o.value.$invalid)return!0;p.value=!0;let l={name:t.name,email:t.email};try{if(t.password!=null&&t.password!==void 0&&t.password!==""&&(l=S(U({},l),{password:t.password})),s.currentUserSettings.language!==t.language&&await s.updateUserSettings({settings:{language:t.language}}),(await s.updateCurrentUser(l)).data.data){if(p.value=!1,w.value){let $=new FormData;$.append("admin_avatar",w.value),await s.uploadAvatar($)}t.password="",t.confirm_password=""}}catch{return p.value=!1,!0}}return(l,a)=>{const $=m("BaseFileUploader"),c=m("BaseInputGroup"),_=m("BaseInput"),N=m("BaseMultiselect"),A=m("BaseInputGrid"),D=m("BaseIcon"),j=m("BaseButton"),R=m("BaseSettingCard");return C(),W("form",{class:"relative",onSubmit:se(G,["prevent"])},[r(R,{title:l.$t("settings.account_settings.account_settings"),description:l.$t("settings.account_settings.section_description")},{default:d(()=>[r(A,null,{default:d(()=>[r(c,{label:l.$tc("settings.account_settings.profile_picture")},{default:d(()=>[r($,{modelValue:e(f),"onUpdate:modelValue":a[0]||(a[0]=n=>X(f)?f.value=n:f=n),avatar:!0,accept:"image/*",onChange:M,onRemove:k},null,8,["modelValue"])]),_:1},8,["label"]),ie,r(c,{label:l.$tc("settings.account_settings.name"),error:e(o).name.$error&&e(o).name.$errors[0].$message,required:""},{default:d(()=>[r(_,{modelValue:e(t).name,"onUpdate:modelValue":a[1]||(a[1]=n=>e(t).name=n),invalid:e(o).name.$error,onInput:a[2]||(a[2]=n=>e(o).name.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["label","error"]),r(c,{label:l.$tc("settings.account_settings.email"),error:e(o).email.$error&&e(o).email.$errors[0].$message,required:""},{default:d(()=>[r(_,{modelValue:e(t).email,"onUpdate:modelValue":a[3]||(a[3]=n=>e(t).email=n),invalid:e(o).email.$error,onInput:a[4]||(a[4]=n=>e(o).email.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["label","error"]),r(c,{error:e(o).password.$error&&e(o).password.$errors[0].$message,label:l.$tc("settings.account_settings.password")},{default:d(()=>[r(_,{modelValue:e(t).password,"onUpdate:modelValue":a[5]||(a[5]=n=>e(t).password=n),type:"password",onInput:a[6]||(a[6]=n=>e(o).password.$touch())},null,8,["modelValue"])]),_:1},8,["error","label"]),r(c,{label:l.$tc("settings.account_settings.confirm_password"),error:e(o).confirm_password.$error&&e(o).confirm_password.$errors[0].$message},{default:d(()=>[r(_,{modelValue:e(t).confirm_password,"onUpdate:modelValue":a[7]||(a[7]=n=>e(t).confirm_password=n),type:"password",onInput:a[8]||(a[8]=n=>e(o).confirm_password.$touch())},null,8,["modelValue"])]),_:1},8,["label","error"]),r(c,{label:l.$tc("settings.language")},{default:d(()=>[r(N,{modelValue:e(t).language,"onUpdate:modelValue":a[9]||(a[9]=n=>e(t).language=n),options:e(i).config.languages,label:"name","value-prop":"code","track-by":"code","open-direction":"top"},null,8,["modelValue","options"])]),_:1},8,["label"])]),_:1}),r(j,{loading:e(p),disabled:e(p),class:"mt-6"},{left:d(n=>[e(p)?x("",!0):(C(),Y(D,{key:0,name:"SaveIcon",class:Z(n.class)},null,8,["class"]))]),default:d(()=>[ee(" "+ae(l.$tc("settings.company_info.save")),1)]),_:1},8,["loading","disabled"])]),_:1},8,["title","description"])],40,le)}}};export{pe as default};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1 +0,0 @@
import{g as k,i as q,k as g,m as y,n as N,p as j,a4 as D,q as G,r as i,o as B,s as b,w as r,t as m,v,x as C,y as e,b as n,z as L,A as T,B as z}from"./vendor.e9042f2c.js";import{s as A,g as E}from"./main.9d655092.js";const U={class:"flex justify-between w-full"},X=["onSubmit"],F={class:"p-8 sm:p-6"},H={class:"z-0 flex justify-end p-4 border-t border-gray-200 border-solid border-modal-bg"},P={setup(J){const t=A(),u=E(),{t:p}=k();let c=q(!1);const h=g(()=>({currentCategory:{name:{required:y.withMessage(p("validation.required"),N),minLength:y.withMessage(p("validation.name_min_length",{count:3}),j(3))},description:{maxLength:y.withMessage(p("validation.description_maxlength",{count:255}),D(255))}}})),a=G(h,g(()=>t)),w=g(()=>u.active&&u.componentName==="CategoryModal");async function I(){if(a.value.currentCategory.$touch(),a.value.currentCategory.$invalid)return!0;const s=t.isEdit?t.updateCategory:t.addCategory;c.value=!0,await s(t.currentCategory),c.value=!1,u.refreshData&&u.refreshData(),d()}function d(){u.closeModal(),setTimeout(()=>{t.$reset(),a.value.$reset()},300)}return(s,o)=>{const f=i("BaseIcon"),x=i("BaseInput"),_=i("BaseInputGroup"),V=i("BaseTextarea"),M=i("BaseInputGrid"),$=i("BaseButton"),S=i("BaseModal");return B(),b(S,{show:e(w),onClose:d},{header:r(()=>[m("div",U,[v(C(e(u).title)+" ",1),n(f,{name:"XIcon",class:"w-6 h-6 text-gray-500 cursor-pointer",onClick:d})])]),default:r(()=>[m("form",{action:"",onSubmit:z(I,["prevent"])},[m("div",F,[n(M,{layout:"one-column"},{default:r(()=>[n(_,{label:s.$t("expenses.category"),error:e(a).currentCategory.name.$error&&e(a).currentCategory.name.$errors[0].$message,required:""},{default:r(()=>[n(x,{modelValue:e(t).currentCategory.name,"onUpdate:modelValue":o[0]||(o[0]=l=>e(t).currentCategory.name=l),invalid:e(a).currentCategory.name.$error,type:"text",onInput:o[1]||(o[1]=l=>e(a).currentCategory.name.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["label","error"]),n(_,{label:s.$t("expenses.description"),error:e(a).currentCategory.description.$error&&e(a).currentCategory.description.$errors[0].$message},{default:r(()=>[n(V,{modelValue:e(t).currentCategory.description,"onUpdate:modelValue":o[2]||(o[2]=l=>e(t).currentCategory.description=l),rows:"4",cols:"50",onInput:o[3]||(o[3]=l=>e(a).currentCategory.description.$touch())},null,8,["modelValue"])]),_:1},8,["label","error"])]),_:1})]),m("div",H,[n($,{type:"button",variant:"primary-outline",class:"mr-3 text-sm",onClick:d},{default:r(()=>[v(C(s.$t("general.cancel")),1)]),_:1}),n($,{loading:e(c),disabled:e(c),variant:"primary",type:"submit"},{left:r(l=>[e(c)?T("",!0):(B(),b(f,{key:0,name:"SaveIcon",class:L(l.class)},null,8,["class"]))]),default:r(()=>[v(" "+C(e(t).isEdit?s.$t("general.update"):s.$t("general.save")),1)]),_:1},8,["loading","disabled"])])],40,X)]),_:1},8,["show"])}}};export{P as _};

View File

@@ -0,0 +1 @@
import{g as k,i as q,k as g,m as y,n as N,p as j,a4 as D,q as G,r as i,o as B,s as b,w as r,t as m,v as f,x as v,y as e,b as n,z as L,A as T,B as z}from"./vendor.e9042f2c.js";import{s as A,g as E}from"./main.f55cd568.js";const U={class:"flex justify-between w-full"},X=["onSubmit"],F={class:"p-8 sm:p-6"},H={class:"z-0 flex justify-end p-4 border-t border-gray-200 border-solid border-modal-bg"},P={setup(J){const t=A(),u=E(),{t:p}=k();let c=q(!1);const h=g(()=>({currentCategory:{name:{required:y.withMessage(p("validation.required"),N),minLength:y.withMessage(p("validation.name_min_length",{count:3}),j(3))},description:{maxLength:y.withMessage(p("validation.description_maxlength",{count:255}),D(255))}}})),a=G(h,g(()=>t)),w=g(()=>u.active&&u.componentName==="CategoryModal");async function I(){if(a.value.currentCategory.$touch(),a.value.currentCategory.$invalid)return!0;const s=t.isEdit?t.updateCategory:t.addCategory;c.value=!0,await s(t.currentCategory),c.value=!1,u.refreshData&&u.refreshData(),d()}function d(){u.closeModal(),setTimeout(()=>{t.$reset(),a.value.$reset()},300)}return(s,o)=>{const C=i("BaseIcon"),x=i("BaseInput"),_=i("BaseInputGroup"),V=i("BaseTextarea"),M=i("BaseInputGrid"),$=i("BaseButton"),S=i("BaseModal");return B(),b(S,{show:e(w),onClose:d},{header:r(()=>[m("div",U,[f(v(e(u).title)+" ",1),n(C,{name:"XIcon",class:"w-6 h-6 text-gray-500 cursor-pointer",onClick:d})])]),default:r(()=>[m("form",{action:"",onSubmit:z(I,["prevent"])},[m("div",F,[n(M,{layout:"one-column"},{default:r(()=>[n(_,{label:s.$t("expenses.category"),error:e(a).currentCategory.name.$error&&e(a).currentCategory.name.$errors[0].$message,required:""},{default:r(()=>[n(x,{modelValue:e(t).currentCategory.name,"onUpdate:modelValue":o[0]||(o[0]=l=>e(t).currentCategory.name=l),invalid:e(a).currentCategory.name.$error,type:"text",onInput:o[1]||(o[1]=l=>e(a).currentCategory.name.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["label","error"]),n(_,{label:s.$t("expenses.description"),error:e(a).currentCategory.description.$error&&e(a).currentCategory.description.$errors[0].$message},{default:r(()=>[n(V,{modelValue:e(t).currentCategory.description,"onUpdate:modelValue":o[2]||(o[2]=l=>e(t).currentCategory.description=l),rows:"4",cols:"50",onInput:o[3]||(o[3]=l=>e(a).currentCategory.description.$touch())},null,8,["modelValue"])]),_:1},8,["label","error"])]),_:1})]),m("div",H,[n($,{type:"button",variant:"primary-outline",class:"mr-3 text-sm",onClick:d},{default:r(()=>[f(v(s.$t("general.cancel")),1)]),_:1}),n($,{loading:e(c),disabled:e(c),variant:"primary",type:"submit"},{left:r(l=>[e(c)?T("",!0):(B(),b(C,{key:0,name:"SaveIcon",class:L(l.class)},null,8,["class"]))]),default:r(()=>[f(" "+v(e(t).isEdit?s.$t("general.update"):s.$t("general.save")),1)]),_:1},8,["loading","disabled"])])],40,X)]),_:1},8,["show"])}}};export{P as _};

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

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
var D=Object.defineProperty,I=Object.defineProperties;var g=Object.getOwnPropertyDescriptors;var y=Object.getOwnPropertySymbols;var q=Object.prototype.hasOwnProperty,h=Object.prototype.propertyIsEnumerable;var f=(e,t,r)=>t in e?D(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,_=(e,t)=>{for(var r in t||(t={}))q.call(t,r)&&f(e,r,t[r]);if(y)for(var r of y(t))h.call(t,r)&&f(e,r,t[r]);return e},v=(e,t)=>I(e,g(t));import{g as w,m as V,aU as j,q as F,k as T,aJ as L,r as E,o as n,s as m,w as P,an as A,y as c,f as S,D as x,c as b,b as O,F as R,H as k,A as B,h as C}from"./vendor.e9042f2c.js";import{n as i,l as Y}from"./main.9d655092.js";function $(e){switch(e){case"./types/DateTimeType.vue":return i(()=>import("./DateTimeType.885ed58f.js"),["assets/DateTimeType.885ed58f.js","assets/vendor.e9042f2c.js"]);case"./types/DateType.vue":return i(()=>import("./DateType.7fd6d385.js"),["assets/DateType.7fd6d385.js","assets/vendor.e9042f2c.js"]);case"./types/DropdownType.vue":return i(()=>import("./DropdownType.84b4a057.js"),["assets/DropdownType.84b4a057.js","assets/vendor.e9042f2c.js"]);case"./types/InputType.vue":return i(()=>import("./InputType.abbc9e84.js"),["assets/InputType.abbc9e84.js","assets/vendor.e9042f2c.js"]);case"./types/NumberType.vue":return i(()=>import("./NumberType.bae67e72.js"),["assets/NumberType.bae67e72.js","assets/vendor.e9042f2c.js"]);case"./types/PhoneType.vue":return i(()=>import("./PhoneType.f1778217.js"),["assets/PhoneType.f1778217.js","assets/vendor.e9042f2c.js"]);case"./types/SwitchType.vue":return i(()=>import("./SwitchType.56df61e7.js"),["assets/SwitchType.56df61e7.js","assets/vendor.e9042f2c.js"]);case"./types/TextAreaType.vue":return i(()=>import("./TextAreaType.a1bccab5.js"),["assets/TextAreaType.a1bccab5.js","assets/vendor.e9042f2c.js"]);case"./types/TimeType.vue":return i(()=>import("./TimeType.82e5beb3.js"),["assets/TimeType.82e5beb3.js","assets/vendor.e9042f2c.js"]);case"./types/UrlType.vue":return i(()=>import("./UrlType.803fb838.js"),["assets/UrlType.803fb838.js","assets/vendor.e9042f2c.js"]);default:return new Promise(function(t,r){(typeof queueMicrotask=="function"?queueMicrotask:setTimeout)(r.bind(null,new Error("Unknown variable dynamic import: "+e)))})}}const M={props:{field:{type:Object,required:!0},customFieldScope:{type:String,required:!0},index:{type:Number,required:!0},store:{type:Object,required:!0},storeProp:{type:String,required:!0}},setup(e){const t=e,{t:r}=w(),d={value:{required:V.withMessage(r("validation.required"),j(t.field.is_required))}},a=F(d,T(()=>t.field),{$scope:t.customFieldScope}),o=T(()=>t.field.type?L(()=>$(`./types/${t.field.type}Type.vue`)):!1);return(u,s)=>{const l=E("BaseInputGroup");return n(),m(l,{label:e.field.label,required:!!e.field.is_required,error:c(a).value.$error&&c(a).value.$errors[0].$message},{default:P(()=>[(n(),m(A(c(o)),{modelValue:e.field.value,"onUpdate:modelValue":s[0]||(s[0]=p=>e.field.value=p),options:e.field.options,invalid:c(a).value.$error,placeholder:e.field.placeholder},null,8,["modelValue","options","invalid","placeholder"]))]),_:1},8,["label","required","error"])}}},H={key:0},J={props:{store:{type:Object,required:!0},storeProp:{type:String,required:!0},isEdit:{type:Boolean,default:!1},type:{type:String,default:null},gridLayout:{type:String,default:"two-column"},isLoading:{type:Boolean,default:null},customFieldScope:{type:String,required:!0}},setup(e){const t=e,r=Y();a();function d(){t.isEdit&&t.store[t.storeProp].fields.forEach(o=>{const u=t.store[t.storeProp].customFields.findIndex(s=>s.id===o.custom_field_id);if(u>-1){let s=o.default_answer;s&&o.custom_field.type==="DateTime"&&(s=C(o.default_answer,"YYYY-MM-DD HH:mm:ss").format("YYYY-MM-DD HH:mm")),t.store[t.storeProp].customFields[u]=v(_({},o),{id:o.custom_field_id,value:s,label:o.custom_field.label,options:o.custom_field.options,is_required:o.custom_field.is_required,placeholder:o.custom_field.placeholder,order:o.custom_field.order})}})}async function a(){let u=(await r.fetchCustomFields({type:t.type,limit:"all"})).data.data;u.map(s=>s.value=s.default_answer),t.store[t.storeProp].customFields=S.sortBy(u,s=>s.order),d()}return x(()=>t.store[t.storeProp].fields,o=>{d()}),(o,u)=>{const s=E("BaseInputGrid");return e.store[e.storeProp]&&e.store[e.storeProp].customFields.length>0&&!e.isLoading?(n(),b("div",H,[O(s,{layout:e.gridLayout},{default:P(()=>[(n(!0),b(R,null,k(e.store[e.storeProp].customFields,(l,p)=>(n(),m(M,{key:l.id,"custom-field-scope":e.customFieldScope,store:e.store,"store-prop":e.storeProp,index:p,field:l},null,8,["custom-field-scope","store","store-prop","index","field"]))),128))]),_:1},8,["layout"])])):B("",!0)}}};export{J as _}; var D=Object.defineProperty,I=Object.defineProperties;var g=Object.getOwnPropertyDescriptors;var y=Object.getOwnPropertySymbols;var q=Object.prototype.hasOwnProperty,h=Object.prototype.propertyIsEnumerable;var f=(e,t,r)=>t in e?D(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,_=(e,t)=>{for(var r in t||(t={}))q.call(t,r)&&f(e,r,t[r]);if(y)for(var r of y(t))h.call(t,r)&&f(e,r,t[r]);return e},v=(e,t)=>I(e,g(t));import{g as w,m as V,aU as j,q as F,k as T,aJ as L,r as E,o as n,s as m,w as P,an as A,y as c,f as S,D as x,c as b,b as O,F as R,H as k,A as B,h as C}from"./vendor.e9042f2c.js";import{n as i,l as Y}from"./main.f55cd568.js";function $(e){switch(e){case"./types/DateTimeType.vue":return i(()=>import("./DateTimeType.885ed58f.js"),["assets/DateTimeType.885ed58f.js","assets/vendor.e9042f2c.js"]);case"./types/DateType.vue":return i(()=>import("./DateType.7fd6d385.js"),["assets/DateType.7fd6d385.js","assets/vendor.e9042f2c.js"]);case"./types/DropdownType.vue":return i(()=>import("./DropdownType.84b4a057.js"),["assets/DropdownType.84b4a057.js","assets/vendor.e9042f2c.js"]);case"./types/InputType.vue":return i(()=>import("./InputType.abbc9e84.js"),["assets/InputType.abbc9e84.js","assets/vendor.e9042f2c.js"]);case"./types/NumberType.vue":return i(()=>import("./NumberType.bae67e72.js"),["assets/NumberType.bae67e72.js","assets/vendor.e9042f2c.js"]);case"./types/PhoneType.vue":return i(()=>import("./PhoneType.f1778217.js"),["assets/PhoneType.f1778217.js","assets/vendor.e9042f2c.js"]);case"./types/SwitchType.vue":return i(()=>import("./SwitchType.56df61e7.js"),["assets/SwitchType.56df61e7.js","assets/vendor.e9042f2c.js"]);case"./types/TextAreaType.vue":return i(()=>import("./TextAreaType.a1bccab5.js"),["assets/TextAreaType.a1bccab5.js","assets/vendor.e9042f2c.js"]);case"./types/TimeType.vue":return i(()=>import("./TimeType.82e5beb3.js"),["assets/TimeType.82e5beb3.js","assets/vendor.e9042f2c.js"]);case"./types/UrlType.vue":return i(()=>import("./UrlType.803fb838.js"),["assets/UrlType.803fb838.js","assets/vendor.e9042f2c.js"]);default:return new Promise(function(t,r){(typeof queueMicrotask=="function"?queueMicrotask:setTimeout)(r.bind(null,new Error("Unknown variable dynamic import: "+e)))})}}const M={props:{field:{type:Object,required:!0},customFieldScope:{type:String,required:!0},index:{type:Number,required:!0},store:{type:Object,required:!0},storeProp:{type:String,required:!0}},setup(e){const t=e,{t:r}=w(),d={value:{required:V.withMessage(r("validation.required"),j(t.field.is_required))}},a=F(d,T(()=>t.field),{$scope:t.customFieldScope}),o=T(()=>t.field.type?L(()=>$(`./types/${t.field.type}Type.vue`)):!1);return(u,s)=>{const l=E("BaseInputGroup");return n(),m(l,{label:e.field.label,required:!!e.field.is_required,error:c(a).value.$error&&c(a).value.$errors[0].$message},{default:P(()=>[(n(),m(A(c(o)),{modelValue:e.field.value,"onUpdate:modelValue":s[0]||(s[0]=p=>e.field.value=p),options:e.field.options,invalid:c(a).value.$error,placeholder:e.field.placeholder},null,8,["modelValue","options","invalid","placeholder"]))]),_:1},8,["label","required","error"])}}},H={key:0},J={props:{store:{type:Object,required:!0},storeProp:{type:String,required:!0},isEdit:{type:Boolean,default:!1},type:{type:String,default:null},gridLayout:{type:String,default:"two-column"},isLoading:{type:Boolean,default:null},customFieldScope:{type:String,required:!0}},setup(e){const t=e,r=Y();a();function d(){t.isEdit&&t.store[t.storeProp].fields.forEach(o=>{const u=t.store[t.storeProp].customFields.findIndex(s=>s.id===o.custom_field_id);if(u>-1){let s=o.default_answer;s&&o.custom_field.type==="DateTime"&&(s=C(o.default_answer,"YYYY-MM-DD HH:mm:ss").format("YYYY-MM-DD HH:mm")),t.store[t.storeProp].customFields[u]=v(_({},o),{id:o.custom_field_id,value:s,label:o.custom_field.label,options:o.custom_field.options,is_required:o.custom_field.is_required,placeholder:o.custom_field.placeholder,order:o.custom_field.order})}})}async function a(){let u=(await r.fetchCustomFields({type:t.type,limit:"all"})).data.data;u.map(s=>s.value=s.default_answer),t.store[t.storeProp].customFields=S.sortBy(u,s=>s.order),d()}return x(()=>t.store[t.storeProp].fields,o=>{d()}),(o,u)=>{const s=E("BaseInputGrid");return e.store[e.storeProp]&&e.store[e.storeProp].customFields.length>0&&!e.isLoading?(n(),b("div",H,[O(s,{layout:e.gridLayout},{default:P(()=>[(n(!0),b(R,null,k(e.store[e.storeProp].customFields,(l,p)=>(n(),m(M,{key:l.id,"custom-field-scope":e.customFieldScope,store:e.store,"store-prop":e.storeProp,index:p,field:l},null,8,["custom-field-scope","store","store-prop","index","field"]))),128))]),_:1},8,["layout"])])):B("",!0)}}};export{J as _};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
import{k as C,u as S,i as b,d as x,e as g}from"./main.9d655092.js";import{g as E,u as T,C as $,am as j,r as i,o as a,s,w as t,y as e,b as n,v as p,x as f,A as y}from"./vendor.e9042f2c.js";const V={props:{row:{type:Object,default:null},table:{type:Object,default:null},loadData:{type:Function,default:()=>{}}},setup(l){const w=l,_=C();S();const D=b(),m=x(),{t:u}=E(),h=T();$(),j("utils");function B(r){D.openDialog({title:u("general.are_you_sure"),message:u("customers.confirm_delete",1),yesLabel:u("general.ok"),noLabel:u("general.cancel"),variant:"danger",hideNoButton:!1,size:"lg"}).then(c=>{c&&_.deleteCustomer({ids:[r]}).then(o=>{if(o.data.success)return w.loadData&&w.loadData(),!0})})}return(r,c)=>{const o=i("BaseIcon"),k=i("BaseButton"),d=i("BaseDropdownItem"),v=i("router-link"),I=i("BaseDropdown");return a(),s(I,{"content-loading":e(_).isFetchingViewData},{activator:t(()=>[e(h).name==="customers.view"?(a(),s(k,{key:0,variant:"primary"},{default:t(()=>[n(o,{name:"DotsHorizontalIcon",class:"h-5 text-white"})]),_:1})):(a(),s(o,{key:1,name:"DotsHorizontalIcon",class:"h-5 text-gray-500"}))]),default:t(()=>[e(m).hasAbilities(e(g).EDIT_CUSTOMER)?(a(),s(v,{key:0,to:`/admin/customers/${l.row.id}/edit`},{default:t(()=>[n(d,null,{default:t(()=>[n(o,{name:"PencilIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),p(" "+f(r.$t("general.edit")),1)]),_:1})]),_:1},8,["to"])):y("",!0),e(h).name!=="customers.view"&&e(m).hasAbilities(e(g).VIEW_CUSTOMER)?(a(),s(v,{key:1,to:`customers/${l.row.id}/view`},{default:t(()=>[n(d,null,{default:t(()=>[n(o,{name:"EyeIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),p(" "+f(r.$t("general.view")),1)]),_:1})]),_:1},8,["to"])):y("",!0),e(m).hasAbilities(e(g).DELETE_CUSTOMER)?(a(),s(d,{key:2,onClick:c[0]||(c[0]=N=>B(l.row.id))},{default:t(()=>[n(o,{name:"TrashIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),p(" "+f(r.$t("general.delete")),1)]),_:1})):y("",!0)]),_:1},8,["content-loading"])}}};export{V as _}; import{k as C,u as S,i as b,d as x,e as g}from"./main.f55cd568.js";import{g as E,u as T,C as $,am as j,r as i,o as a,s,w as t,y as e,b as n,v as f,x as p,A as y}from"./vendor.e9042f2c.js";const V={props:{row:{type:Object,default:null},table:{type:Object,default:null},loadData:{type:Function,default:()=>{}}},setup(l){const w=l,_=C();S();const D=b(),m=x(),{t:u}=E(),h=T();$(),j("utils");function B(r){D.openDialog({title:u("general.are_you_sure"),message:u("customers.confirm_delete",1),yesLabel:u("general.ok"),noLabel:u("general.cancel"),variant:"danger",hideNoButton:!1,size:"lg"}).then(c=>{c&&_.deleteCustomer({ids:[r]}).then(o=>{if(o.data.success)return w.loadData&&w.loadData(),!0})})}return(r,c)=>{const o=i("BaseIcon"),k=i("BaseButton"),d=i("BaseDropdownItem"),v=i("router-link"),I=i("BaseDropdown");return a(),s(I,{"content-loading":e(_).isFetchingViewData},{activator:t(()=>[e(h).name==="customers.view"?(a(),s(k,{key:0,variant:"primary"},{default:t(()=>[n(o,{name:"DotsHorizontalIcon",class:"h-5 text-white"})]),_:1})):(a(),s(o,{key:1,name:"DotsHorizontalIcon",class:"h-5 text-gray-500"}))]),default:t(()=>[e(m).hasAbilities(e(g).EDIT_CUSTOMER)?(a(),s(v,{key:0,to:`/admin/customers/${l.row.id}/edit`},{default:t(()=>[n(d,null,{default:t(()=>[n(o,{name:"PencilIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),f(" "+p(r.$t("general.edit")),1)]),_:1})]),_:1},8,["to"])):y("",!0),e(h).name!=="customers.view"&&e(m).hasAbilities(e(g).VIEW_CUSTOMER)?(a(),s(v,{key:1,to:`customers/${l.row.id}/view`},{default:t(()=>[n(d,null,{default:t(()=>[n(o,{name:"EyeIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),f(" "+p(r.$t("general.view")),1)]),_:1})]),_:1},8,["to"])):y("",!0),e(m).hasAbilities(e(g).DELETE_CUSTOMER)?(a(),s(d,{key:2,onClick:c[0]||(c[0]=N=>B(l.row.id))},{default:t(()=>[n(o,{name:"TrashIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),f(" "+p(r.$t("general.delete")),1)]),_:1})):y("",!0)]),_:1},8,["content-loading"])}}};export{V as _};

File diff suppressed because one or more lines are too long

View File

@@ -1,4 +1,4 @@
import{aW as $r,aX as Br,aR as Kr,aY as Hr,o as Wr,c as Xr,t as Yr}from"./vendor.e9042f2c.js";import{_ as Vr}from"./main.9d655092.js";var gr={exports:{}};/**! import{aW as $r,aX as Br,aR as Kr,aY as Hr,o as Wr,c as Xr,t as Yr}from"./vendor.e9042f2c.js";import{_ as Vr}from"./main.f55cd568.js";var gr={exports:{}};/**!
* Sortable 1.14.0 * Sortable 1.14.0
* @author RubaXa <trash@rubaxa.org> * @author RubaXa <trash@rubaxa.org>
* @author owenm <owen23355@gmail.com> * @author owenm <owen23355@gmail.com>

View File

@@ -1 +1 @@
import{m as D,c as _,t as j}from"./main.9d655092.js";import{i as p,k as u,D as l,b3 as A,r as d,ap as F,y as o,o as x,s as N,w as m,c as G,Z as z,b as v,z as L,A as C,t as E,x as b}from"./vendor.e9042f2c.js";const O={key:0},U={class:"text-gray-500 sm:text-sm"},q={class:"text-gray-400 text-xs mt-2 font-light"},J={props:{v:{type:Object,default:null},isLoading:{type:Boolean,default:!1},store:{type:Object,default:null},storeProp:{type:String,default:""},isEdit:{type:Boolean,default:!1},customerCurrency:{type:[String,Number],default:null}},setup(r){const e=r,h=D(),B=_(),g=j(),f=p(!1);let a=p(!1);h.fetchCurrencies();const s=u(()=>B.selectedCompanyCurrency),c=u(()=>h.currencies.find(t=>t.id===e.store[e.storeProp].currency_id)),P=u(()=>s.value.id!==e.customerCurrency);l(()=>e.store[e.storeProp].customer,t=>{R(t)},{deep:!0}),l(()=>e.store[e.storeProp].currency_id,t=>{$(t)},{immediate:!0}),l(()=>e.customerCurrency,t=>{t&&e.isEdit&&w()},{immediate:!0});function w(){P.value&&g.checkForActiveProvider(e.customerCurrency).then(t=>{t.data.success&&(f.value=!0)})}function R(t){t?e.store[e.storeProp].currency_id=t.currency.id:e.store[e.storeProp].currency_id=s.value.id}async function $(t){t!==s.value.id?(!e.isEdit&&t&&await y(t),e.store.showExchangeRate=!0):e.store.showExchangeRate=!1}function y(t){a.value=!0,g.getCurrentExchangeRate(t).then(n=>{n.data&&!n.data.error?e.store[e.storeProp].exchange_rate=n.data.exchangeRate[0]:e.store[e.storeProp].exchange_rate="",a.value=!1}).catch(n=>{a.value=!1})}return A(()=>{e.store.showExchangeRate=!1}),(t,n)=>{const k=d("BaseIcon"),S=d("BaseInput"),I=d("BaseInputGroup"),V=F("tooltip");return r.store.showExchangeRate&&o(c)?(x(),N(I,{key:0,"content-loading":o(a)&&!r.isEdit,label:t.$t("settings.exchange_rate.exchange_rate"),error:r.v.exchange_rate.$error&&r.v.exchange_rate.$errors[0].$message,required:""},{labelRight:m(()=>[f.value&&r.isEdit?(x(),G("div",O,[z(v(k,{name:"RefreshIcon",class:L(`h-4 w-4 text-primary-500 cursor-pointer outline-none ${o(a)?" animate-spin transform rotate-180 cursor-not-allowed pointer-events-none ":""}`),onClick:n[0]||(n[0]=i=>y(r.customerCurrency))},null,8,["class"]),[[V,{content:"Fetch Latest Exchange rate"}]])])):C("",!0)]),default:m(()=>[v(S,{modelValue:r.store[r.storeProp].exchange_rate,"onUpdate:modelValue":n[1]||(n[1]=i=>r.store[r.storeProp].exchange_rate=i),"content-loading":o(a)&&!r.isEdit,addon:`1 ${o(c).code} =`,disabled:o(a),onInput:n[2]||(n[2]=i=>r.v.exchange_rate.$touch())},{right:m(()=>[E("span",U,b(o(s).code),1)]),_:1},8,["modelValue","content-loading","addon","disabled"]),E("span",q,b(t.$t("settings.exchange_rate.exchange_help_text",{currency:o(c).code,baseCurrency:o(s).code})),1)]),_:1},8,["content-loading","label","error"])):C("",!0)}}};export{J as _}; import{m as D,c as _,t as j}from"./main.f55cd568.js";import{i as p,k as u,D as l,b3 as A,r as d,ap as F,y as o,o as x,s as N,w as m,c as G,Z as z,b as v,z as L,A as C,t as E,x as b}from"./vendor.e9042f2c.js";const O={key:0},U={class:"text-gray-500 sm:text-sm"},q={class:"text-gray-400 text-xs mt-2 font-light"},J={props:{v:{type:Object,default:null},isLoading:{type:Boolean,default:!1},store:{type:Object,default:null},storeProp:{type:String,default:""},isEdit:{type:Boolean,default:!1},customerCurrency:{type:[String,Number],default:null}},setup(r){const e=r,h=D(),B=_(),g=j(),f=p(!1);let a=p(!1);h.fetchCurrencies();const s=u(()=>B.selectedCompanyCurrency),c=u(()=>h.currencies.find(t=>t.id===e.store[e.storeProp].currency_id)),P=u(()=>s.value.id!==e.customerCurrency);l(()=>e.store[e.storeProp].customer,t=>{R(t)},{deep:!0}),l(()=>e.store[e.storeProp].currency_id,t=>{$(t)},{immediate:!0}),l(()=>e.customerCurrency,t=>{t&&e.isEdit&&w()},{immediate:!0});function w(){P.value&&g.checkForActiveProvider(e.customerCurrency).then(t=>{t.data.success&&(f.value=!0)})}function R(t){t?e.store[e.storeProp].currency_id=t.currency.id:e.store[e.storeProp].currency_id=s.value.id}async function $(t){t!==s.value.id?(!e.isEdit&&t&&await y(t),e.store.showExchangeRate=!0):e.store.showExchangeRate=!1}function y(t){a.value=!0,g.getCurrentExchangeRate(t).then(n=>{n.data&&!n.data.error?e.store[e.storeProp].exchange_rate=n.data.exchangeRate[0]:e.store[e.storeProp].exchange_rate="",a.value=!1}).catch(n=>{a.value=!1})}return A(()=>{e.store.showExchangeRate=!1}),(t,n)=>{const k=d("BaseIcon"),S=d("BaseInput"),I=d("BaseInputGroup"),V=F("tooltip");return r.store.showExchangeRate&&o(c)?(x(),N(I,{key:0,"content-loading":o(a)&&!r.isEdit,label:t.$t("settings.exchange_rate.exchange_rate"),error:r.v.exchange_rate.$error&&r.v.exchange_rate.$errors[0].$message,required:""},{labelRight:m(()=>[f.value&&r.isEdit?(x(),G("div",O,[z(v(k,{name:"RefreshIcon",class:L(`h-4 w-4 text-primary-500 cursor-pointer outline-none ${o(a)?" animate-spin transform rotate-180 cursor-not-allowed pointer-events-none ":""}`),onClick:n[0]||(n[0]=i=>y(r.customerCurrency))},null,8,["class"]),[[V,{content:"Fetch Latest Exchange rate"}]])])):C("",!0)]),default:m(()=>[v(S,{modelValue:r.store[r.storeProp].exchange_rate,"onUpdate:modelValue":n[1]||(n[1]=i=>r.store[r.storeProp].exchange_rate=i),"content-loading":o(a)&&!r.isEdit,addon:`1 ${o(c).code} =`,disabled:o(a),onInput:n[2]||(n[2]=i=>r.v.exchange_rate.$touch())},{right:m(()=>[E("span",U,b(o(s).code),1)]),_:1},8,["modelValue","content-loading","addon","disabled"]),E("span",q,b(t.$t("settings.exchange_rate.exchange_help_text",{currency:o(c).code,baseCurrency:o(s).code})),1)]),_:1},8,["content-loading","label","error"])):C("",!0)}}};export{J as _};

View File

@@ -1 +1 @@
import{i as w,u as z,s as S,d as M,g as k,e as E}from"./main.9d655092.js";import{g as I,u as T,am as j,r as i,o as m,s as p,w as e,y as g,b as n,v,x as C,A as N,i as P,k as F,c as V,z as A,t as $,F as L}from"./vendor.e9042f2c.js";import{_ as H}from"./CategoryModal.46b61f9f.js";const O={props:{row:{type:Object,default:null},table:{type:Object,default:null},loadData:{type:Function,default:null}},setup(y){const d=y,B=w();z();const{t:o}=I(),s=S(),x=T(),_=M(),h=k();j("utils");function b(l){s.fetchCategory(l),h.openModal({title:o("settings.expense_category.edit_category"),componentName:"CategoryModal",refreshData:d.loadData,size:"sm"})}function r(l){B.openDialog({title:o("general.are_you_sure"),message:o("settings.expense_category.confirm_delete"),yesLabel:o("general.ok"),noLabel:o("general.cancel"),variant:"danger",hideNoButton:!1,size:"lg"}).then(async()=>{if((await s.deleteCategory(l)).data.success)return d.loadData&&d.loadData(),!0;d.loadData&&d.loadData()})}return(l,t)=>{const c=i("BaseIcon"),u=i("BaseButton"),f=i("BaseDropdownItem"),a=i("BaseDropdown");return m(),p(a,null,{activator:e(()=>[g(x).name==="expenseCategorys.view"?(m(),p(u,{key:0,variant:"primary"},{default:e(()=>[n(c,{name:"DotsHorizontalIcon",class:"h-5 text-white"})]),_:1})):(m(),p(c,{key:1,name:"DotsHorizontalIcon",class:"h-5 text-gray-500"}))]),default:e(()=>[g(_).hasAbilities(g(E).EDIT_EXPENSE)?(m(),p(f,{key:0,onClick:t[0]||(t[0]=D=>b(y.row.id))},{default:e(()=>[n(c,{name:"PencilIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),v(" "+C(l.$t("general.edit")),1)]),_:1})):N("",!0),g(_).hasAbilities(g(E).DELETE_EXPENSE)?(m(),p(f,{key:1,onClick:t[1]||(t[1]=D=>r(y.row.id))},{default:e(()=>[n(c,{name:"TrashIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),v(" "+C(l.$t("general.delete")),1)]),_:1})):N("",!0)]),_:1})}}},X={class:"w-64"},R={class:"truncate"},J={setup(y){const d=S();w();const B=k(),{t:o}=I(),s=P(null),x=F(()=>[{key:"name",label:o("settings.expense_category.category_name"),thClass:"extra",tdClass:"font-medium text-gray-900"},{key:"description",label:o("settings.expense_category.category_description"),thClass:"extra",tdClass:"font-medium text-gray-900"},{key:"actions",label:"",tdClass:"text-right text-sm font-medium",sortable:!1}]);async function _({page:r,filter:l,sort:t}){let c={orderByField:t.fieldName||"created_at",orderBy:t.order||"desc",page:r},u=await d.fetchCategories(c);return{data:u.data.data,pagination:{totalPages:u.data.meta.last_page,currentPage:r,totalCount:u.data.meta.total,limit:5}}}function h(){B.openModal({title:o("settings.expense_category.add_category"),componentName:"CategoryModal",size:"sm",refreshData:s.value&&s.value.refresh})}async function b(){s.value&&s.value.refresh()}return(r,l)=>{const t=i("BaseIcon"),c=i("BaseButton"),u=i("BaseTable"),f=i("BaseSettingCard");return m(),V(L,null,[n(H),n(f,{title:r.$t("settings.expense_category.title"),description:r.$t("settings.expense_category.description")},{action:e(()=>[n(c,{variant:"primary-outline",type:"button",onClick:h},{left:e(a=>[n(t,{class:A(a.class),name:"PlusIcon"},null,8,["class"])]),default:e(()=>[v(" "+C(r.$t("settings.expense_category.add_new_category")),1)]),_:1})]),default:e(()=>[n(u,{ref:(a,D)=>{D.table=a,s.value=a},data:_,columns:g(x),class:"mt-16"},{"cell-description":e(({row:a})=>[$("div",X,[$("p",R,C(a.data.description),1)])]),"cell-actions":e(({row:a})=>[n(O,{row:a.data,table:s.value,"load-data":b},null,8,["row","table"])]),_:1},8,["columns"])]),_:1},8,["title","description"])],64)}}};export{J as default}; import{i as w,u as z,s as S,d as M,g as k,e as E}from"./main.f55cd568.js";import{g as I,u as T,am as j,r as i,o as m,s as p,w as e,y as g,b as n,v,x as C,A as N,i as P,k as F,c as V,z as A,t as $,F as L}from"./vendor.e9042f2c.js";import{_ as H}from"./CategoryModal.d7852af2.js";const O={props:{row:{type:Object,default:null},table:{type:Object,default:null},loadData:{type:Function,default:null}},setup(y){const d=y,B=w();z();const{t:o}=I(),s=S(),x=T(),_=M(),h=k();j("utils");function b(l){s.fetchCategory(l),h.openModal({title:o("settings.expense_category.edit_category"),componentName:"CategoryModal",refreshData:d.loadData,size:"sm"})}function r(l){B.openDialog({title:o("general.are_you_sure"),message:o("settings.expense_category.confirm_delete"),yesLabel:o("general.ok"),noLabel:o("general.cancel"),variant:"danger",hideNoButton:!1,size:"lg"}).then(async()=>{if((await s.deleteCategory(l)).data.success)return d.loadData&&d.loadData(),!0;d.loadData&&d.loadData()})}return(l,t)=>{const c=i("BaseIcon"),u=i("BaseButton"),f=i("BaseDropdownItem"),a=i("BaseDropdown");return m(),p(a,null,{activator:e(()=>[g(x).name==="expenseCategorys.view"?(m(),p(u,{key:0,variant:"primary"},{default:e(()=>[n(c,{name:"DotsHorizontalIcon",class:"h-5 text-white"})]),_:1})):(m(),p(c,{key:1,name:"DotsHorizontalIcon",class:"h-5 text-gray-500"}))]),default:e(()=>[g(_).hasAbilities(g(E).EDIT_EXPENSE)?(m(),p(f,{key:0,onClick:t[0]||(t[0]=D=>b(y.row.id))},{default:e(()=>[n(c,{name:"PencilIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),v(" "+C(l.$t("general.edit")),1)]),_:1})):N("",!0),g(_).hasAbilities(g(E).DELETE_EXPENSE)?(m(),p(f,{key:1,onClick:t[1]||(t[1]=D=>r(y.row.id))},{default:e(()=>[n(c,{name:"TrashIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),v(" "+C(l.$t("general.delete")),1)]),_:1})):N("",!0)]),_:1})}}},X={class:"w-64"},R={class:"truncate"},J={setup(y){const d=S();w();const B=k(),{t:o}=I(),s=P(null),x=F(()=>[{key:"name",label:o("settings.expense_category.category_name"),thClass:"extra",tdClass:"font-medium text-gray-900"},{key:"description",label:o("settings.expense_category.category_description"),thClass:"extra",tdClass:"font-medium text-gray-900"},{key:"actions",label:"",tdClass:"text-right text-sm font-medium",sortable:!1}]);async function _({page:r,filter:l,sort:t}){let c={orderByField:t.fieldName||"created_at",orderBy:t.order||"desc",page:r},u=await d.fetchCategories(c);return{data:u.data.data,pagination:{totalPages:u.data.meta.last_page,currentPage:r,totalCount:u.data.meta.total,limit:5}}}function h(){B.openModal({title:o("settings.expense_category.add_category"),componentName:"CategoryModal",size:"sm",refreshData:s.value&&s.value.refresh})}async function b(){s.value&&s.value.refresh()}return(r,l)=>{const t=i("BaseIcon"),c=i("BaseButton"),u=i("BaseTable"),f=i("BaseSettingCard");return m(),V(L,null,[n(H),n(f,{title:r.$t("settings.expense_category.title"),description:r.$t("settings.expense_category.description")},{action:e(()=>[n(c,{variant:"primary-outline",type:"button",onClick:h},{left:e(a=>[n(t,{class:A(a.class),name:"PlusIcon"},null,8,["class"])]),default:e(()=>[v(" "+C(r.$t("settings.expense_category.add_new_category")),1)]),_:1})]),default:e(()=>[n(u,{ref:(a,D)=>{D.table=a,s.value=a},data:_,columns:g(x),class:"mt-16"},{"cell-description":e(({row:a})=>[$("div",X,[$("p",R,C(a.data.description),1)])]),"cell-actions":e(({row:a})=>[n(O,{row:a.data,table:s.value,"load-data":b},null,8,["row","table"])]),_:1},8,["columns"])]),_:1},8,["title","description"])],64)}}};export{J as default};

View File

@@ -1 +1 @@
import{g as w,j as S,i as _,m as f,n as V,a2 as x,q as I,r as n,o as l,c as u,b as r,w as m,y as t,x as d,t as q,v as N,B as M,a as j}from"./vendor.e9042f2c.js";import{u as C,h as D}from"./main.9d655092.js";const E=["onSubmit"],G={key:0},F={key:1},L={class:"mt-4 mb-4 text-sm"},A={setup(T){const g=C(),{t:c}=w(),i=S({email:""}),p=_(!1),o=_(!1),y={email:{required:f.withMessage(c("validation.required"),V),email:f.withMessage(c("validation.email_incorrect"),x)}},a=I(y,i);async function h(s){if(a.value.$touch(),!a.value.$invalid)try{o.value=!0,(await j.post("/api/v1/auth/password/email",i)).data&&g.showNotification({type:"success",message:"Mail sent successfully"}),p.value=!0,o.value=!1}catch(e){D(e),o.value=!1}}return(s,e)=>{const $=n("BaseInput"),b=n("BaseInputGroup"),B=n("BaseButton"),k=n("router-link");return l(),u("form",{id:"loginForm",onSubmit:M(h,["prevent"])},[r(b,{error:t(a).email.$error&&t(a).email.$errors[0].$message,label:s.$t("login.enter_email"),class:"mb-4",required:""},{default:m(()=>[r($,{modelValue:t(i).email,"onUpdate:modelValue":e[0]||(e[0]=v=>t(i).email=v),invalid:t(a).email.$error,focus:"",type:"email",name:"email",onInput:e[1]||(e[1]=v=>t(a).email.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["error","label"]),r(B,{loading:o.value,disabled:o.value,type:"submit",variant:"primary"},{default:m(()=>[p.value?(l(),u("div",F,d(s.$t("validation.not_yet")),1)):(l(),u("div",G,d(s.$t("validation.send_reset_link")),1))]),_:1},8,["loading","disabled"]),q("div",L,[r(k,{to:"/login",class:"text-sm text-primary-400 hover:text-gray-700"},{default:m(()=>[N(d(s.$t("general.back_to_login")),1)]),_:1})])],40,E)}}};export{A as default}; import{g as w,j as S,i as f,m as _,n as V,a2 as x,q as I,r as n,o as l,c as u,b as r,w as m,y as t,x as d,t as q,v as N,B as M,a as j}from"./vendor.e9042f2c.js";import{u as C,h as D}from"./main.f55cd568.js";const E=["onSubmit"],G={key:0},F={key:1},L={class:"mt-4 mb-4 text-sm"},A={setup(T){const g=C(),{t:c}=w(),i=S({email:""}),p=f(!1),o=f(!1),y={email:{required:_.withMessage(c("validation.required"),V),email:_.withMessage(c("validation.email_incorrect"),x)}},a=I(y,i);async function h(s){if(a.value.$touch(),!a.value.$invalid)try{o.value=!0,(await j.post("/api/v1/auth/password/email",i)).data&&g.showNotification({type:"success",message:"Mail sent successfully"}),p.value=!0,o.value=!1}catch(e){D(e),o.value=!1}}return(s,e)=>{const $=n("BaseInput"),b=n("BaseInputGroup"),B=n("BaseButton"),k=n("router-link");return l(),u("form",{id:"loginForm",onSubmit:M(h,["prevent"])},[r(b,{error:t(a).email.$error&&t(a).email.$errors[0].$message,label:s.$t("login.enter_email"),class:"mb-4",required:""},{default:m(()=>[r($,{modelValue:t(i).email,"onUpdate:modelValue":e[0]||(e[0]=v=>t(i).email=v),invalid:t(a).email.$error,focus:"",type:"email",name:"email",onInput:e[1]||(e[1]=v=>t(a).email.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["error","label"]),r(B,{loading:o.value,disabled:o.value,type:"submit",variant:"primary"},{default:m(()=>[p.value?(l(),u("div",F,d(s.$t("validation.not_yet")),1)):(l(),u("div",G,d(s.$t("validation.send_reset_link")),1))]),_:1},8,["loading","disabled"]),q("div",L,[r(k,{to:"/login",class:"text-sm text-primary-400 hover:text-gray-700"},{default:m(()=>[N(d(s.$t("general.back_to_login")),1)]),_:1})])],40,E)}}};export{A as default};

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

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

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
import{g as O,u as j,C as z,am as R,r as h,o as r,s as l,w as o,y as c,b as s,Z as M,al as P,v as d,x as v,A as m}from"./vendor.e9042f2c.js";import{f as F,g as U,u as H,i as W,d as q,e as f}from"./main.9d655092.js";const J={props:{row:{type:Object,default:null},table:{type:Object,default:null},loadData:{type:Function,default:()=>{}}},setup(a){const w=a,p=F(),$=U(),N=H(),b=W(),g=q(),{t:i}=O(),y=j(),S=z(),x=R("utils");function _(e){return(e.status=="SENT"||e.status=="VIEWED")&&y.name!=="invoices.view"&&g.hasAbilities(f.SEND_INVOICE)}function D(e){return e.status=="DRAFT"&&y.name!=="invoices.view"&&g.hasAbilities(f.SEND_INVOICE)}async function B(e){b.openDialog({title:i("general.are_you_sure"),message:i("invoices.confirm_delete"),yesLabel:i("general.ok"),noLabel:i("general.cancel"),variant:"danger",hideNoButton:!1,size:"lg"}).then(n=>{e=e,n&&p.deleteInvoice({ids:[e]}).then(t=>{t.data.success&&(S.push("/admin/invoices"),w.table&&w.table.refresh(),p.$patch(I=>{I.selectedInvoices=[],I.selectAllField=!1}))})})}async function A(e){b.openDialog({title:i("general.are_you_sure"),message:i("invoices.confirm_clone"),yesLabel:i("general.ok"),noLabel:i("general.cancel"),variant:"primary",hideNoButton:!1,size:"lg"}).then(n=>{n&&p.cloneInvoice(e).then(t=>{S.push(`/admin/invoices/${t.data.data.id}/edit`)})})}async function T(e){b.openDialog({title:i("general.are_you_sure"),message:i("invoices.invoice_mark_as_sent"),yesLabel:i("general.ok"),noLabel:i("general.cancel"),variant:"primary",hideNoButton:!1,size:"lg"}).then(n=>{const t={id:e,status:"SENT"};n&&p.markAsSent(t).then(I=>{w.table&&w.table.refresh()})})}async function E(e){$.openModal({title:i("invoices.send_invoice"),componentName:"SendInvoiceModal",id:e.id,data:e,variant:"sm"})}function V(){let e=`${window.location.origin}/invoices/pdf/${w.row.unique_hash}`;x.copyTextToClipboard(e),N.showNotification({type:"success",message:i("general.copied_pdf_url_clipboard")})}return(e,n)=>{const t=h("BaseIcon"),I=h("BaseButton"),u=h("BaseDropdownItem"),C=h("router-link"),L=h("BaseDropdown");return r(),l(L,null,{activator:o(()=>[c(y).name==="invoices.view"?(r(),l(I,{key:0,variant:"primary"},{default:o(()=>[s(t,{name:"DotsHorizontalIcon",class:"h-5 text-white"})]),_:1})):(r(),l(t,{key:1,name:"DotsHorizontalIcon",class:"h-5 text-gray-500"}))]),default:o(()=>[c(g).hasAbilities(c(f).EDIT_INVOICE)?(r(),l(C,{key:0,to:`/admin/invoices/${a.row.id}/edit`},{default:o(()=>[M(s(u,null,{default:o(()=>[s(t,{name:"PencilIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),d(" "+v(e.$t("general.edit")),1)]),_:1},512),[[P,a.row.allow_edit]])]),_:1},8,["to"])):m("",!0),c(y).name==="invoices.view"?(r(),l(u,{key:1,onClick:V},{default:o(()=>[s(t,{name:"LinkIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),d(" "+v(e.$t("general.copy_pdf_url")),1)]),_:1})):m("",!0),c(y).name!=="invoices.view"&&c(g).hasAbilities(c(f).VIEW_INVOICE)?(r(),l(C,{key:2,to:`invoices/${a.row.id}/view`},{default:o(()=>[s(u,null,{default:o(()=>[s(t,{name:"EyeIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),d(" "+v(e.$t("general.view")),1)]),_:1})]),_:1},8,["to"])):m("",!0),D(a.row)?(r(),l(u,{key:3,onClick:n[0]||(n[0]=k=>E(a.row))},{default:o(()=>[s(t,{name:"PaperAirplaneIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),d(" "+v(e.$t("invoices.send_invoice")),1)]),_:1})):m("",!0),_(a.row)?(r(),l(u,{key:4,onClick:n[1]||(n[1]=k=>E(a.row))},{default:o(()=>[s(t,{name:"PaperAirplaneIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),d(" "+v(e.$t("invoices.resend_invoice")),1)]),_:1})):m("",!0),s(C,{to:`/admin/payments/${a.row.id}/create`},{default:o(()=>[a.row.status=="SENT"&&c(y).name!=="invoices.view"?(r(),l(u,{key:0},{default:o(()=>[s(t,{name:"CreditCardIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),d(" "+v(e.$t("invoices.record_payment")),1)]),_:1})):m("",!0)]),_:1},8,["to"]),D(a.row)?(r(),l(u,{key:5,onClick:n[2]||(n[2]=k=>T(a.row.id))},{default:o(()=>[s(t,{name:"CheckCircleIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),d(" "+v(e.$t("invoices.mark_as_sent")),1)]),_:1})):m("",!0),c(g).hasAbilities(c(f).CREATE_INVOICE)?(r(),l(u,{key:6,onClick:n[3]||(n[3]=k=>A(a.row))},{default:o(()=>[s(t,{name:"DocumentTextIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),d(" "+v(e.$t("invoices.clone_invoice")),1)]),_:1})):m("",!0),c(g).hasAbilities(c(f).DELETE_INVOICE)?(r(),l(u,{key:7,onClick:n[4]||(n[4]=k=>B(a.row.id))},{default:o(()=>[s(t,{name:"TrashIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),d(" "+v(e.$t("general.delete")),1)]),_:1})):m("",!0)]),_:1})}}};export{J as _}; import{g as O,u as j,C as z,am as R,r as h,o as r,s as l,w as o,y as c,b as s,Z as M,al as P,v as d,x as v,A as m}from"./vendor.e9042f2c.js";import{f as F,g as U,u as H,i as W,d as q,e as f}from"./main.f55cd568.js";const J={props:{row:{type:Object,default:null},table:{type:Object,default:null},loadData:{type:Function,default:()=>{}}},setup(a){const w=a,p=F(),$=U(),N=H(),b=W(),g=q(),{t:i}=O(),y=j(),S=z(),x=R("utils");function _(e){return(e.status=="SENT"||e.status=="VIEWED")&&y.name!=="invoices.view"&&g.hasAbilities(f.SEND_INVOICE)}function D(e){return e.status=="DRAFT"&&y.name!=="invoices.view"&&g.hasAbilities(f.SEND_INVOICE)}async function B(e){b.openDialog({title:i("general.are_you_sure"),message:i("invoices.confirm_delete"),yesLabel:i("general.ok"),noLabel:i("general.cancel"),variant:"danger",hideNoButton:!1,size:"lg"}).then(n=>{e=e,n&&p.deleteInvoice({ids:[e]}).then(t=>{t.data.success&&(S.push("/admin/invoices"),w.table&&w.table.refresh(),p.$patch(I=>{I.selectedInvoices=[],I.selectAllField=!1}))})})}async function A(e){b.openDialog({title:i("general.are_you_sure"),message:i("invoices.confirm_clone"),yesLabel:i("general.ok"),noLabel:i("general.cancel"),variant:"primary",hideNoButton:!1,size:"lg"}).then(n=>{n&&p.cloneInvoice(e).then(t=>{S.push(`/admin/invoices/${t.data.data.id}/edit`)})})}async function T(e){b.openDialog({title:i("general.are_you_sure"),message:i("invoices.invoice_mark_as_sent"),yesLabel:i("general.ok"),noLabel:i("general.cancel"),variant:"primary",hideNoButton:!1,size:"lg"}).then(n=>{const t={id:e,status:"SENT"};n&&p.markAsSent(t).then(I=>{w.table&&w.table.refresh()})})}async function E(e){$.openModal({title:i("invoices.send_invoice"),componentName:"SendInvoiceModal",id:e.id,data:e,variant:"sm"})}function V(){let e=`${window.location.origin}/invoices/pdf/${w.row.unique_hash}`;x.copyTextToClipboard(e),N.showNotification({type:"success",message:i("general.copied_pdf_url_clipboard")})}return(e,n)=>{const t=h("BaseIcon"),I=h("BaseButton"),u=h("BaseDropdownItem"),C=h("router-link"),L=h("BaseDropdown");return r(),l(L,null,{activator:o(()=>[c(y).name==="invoices.view"?(r(),l(I,{key:0,variant:"primary"},{default:o(()=>[s(t,{name:"DotsHorizontalIcon",class:"h-5 text-white"})]),_:1})):(r(),l(t,{key:1,name:"DotsHorizontalIcon",class:"h-5 text-gray-500"}))]),default:o(()=>[c(g).hasAbilities(c(f).EDIT_INVOICE)?(r(),l(C,{key:0,to:`/admin/invoices/${a.row.id}/edit`},{default:o(()=>[M(s(u,null,{default:o(()=>[s(t,{name:"PencilIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),d(" "+v(e.$t("general.edit")),1)]),_:1},512),[[P,a.row.allow_edit]])]),_:1},8,["to"])):m("",!0),c(y).name==="invoices.view"?(r(),l(u,{key:1,onClick:V},{default:o(()=>[s(t,{name:"LinkIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),d(" "+v(e.$t("general.copy_pdf_url")),1)]),_:1})):m("",!0),c(y).name!=="invoices.view"&&c(g).hasAbilities(c(f).VIEW_INVOICE)?(r(),l(C,{key:2,to:`/admin/invoices/${a.row.id}/view`},{default:o(()=>[s(u,null,{default:o(()=>[s(t,{name:"EyeIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),d(" "+v(e.$t("general.view")),1)]),_:1})]),_:1},8,["to"])):m("",!0),D(a.row)?(r(),l(u,{key:3,onClick:n[0]||(n[0]=k=>E(a.row))},{default:o(()=>[s(t,{name:"PaperAirplaneIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),d(" "+v(e.$t("invoices.send_invoice")),1)]),_:1})):m("",!0),_(a.row)?(r(),l(u,{key:4,onClick:n[1]||(n[1]=k=>E(a.row))},{default:o(()=>[s(t,{name:"PaperAirplaneIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),d(" "+v(e.$t("invoices.resend_invoice")),1)]),_:1})):m("",!0),s(C,{to:`/admin/payments/${a.row.id}/create`},{default:o(()=>[a.row.status=="SENT"&&c(y).name!=="invoices.view"?(r(),l(u,{key:0},{default:o(()=>[s(t,{name:"CreditCardIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),d(" "+v(e.$t("invoices.record_payment")),1)]),_:1})):m("",!0)]),_:1},8,["to"]),D(a.row)?(r(),l(u,{key:5,onClick:n[2]||(n[2]=k=>T(a.row.id))},{default:o(()=>[s(t,{name:"CheckCircleIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),d(" "+v(e.$t("invoices.mark_as_sent")),1)]),_:1})):m("",!0),c(g).hasAbilities(c(f).CREATE_INVOICE)?(r(),l(u,{key:6,onClick:n[3]||(n[3]=k=>A(a.row))},{default:o(()=>[s(t,{name:"DocumentTextIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),d(" "+v(e.$t("invoices.clone_invoice")),1)]),_:1})):m("",!0),c(g).hasAbilities(c(f).DELETE_INVOICE)?(r(),l(u,{key:7,onClick:n[4]||(n[4]=k=>B(a.row.id))},{default:o(()=>[s(t,{name:"TrashIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),d(" "+v(e.$t("general.delete")),1)]),_:1})):m("",!0)]),_:1})}}};export{J as _};

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
import{g as S,i as V,k as g,m as h,n as C,p as k,q as x,r as i,o as b,s as B,w as r,t as c,v as p,x as v,y as e,b as l,z as q,A as z,B as N}from"./vendor.e9042f2c.js";import{p as j,g as D}from"./main.9d655092.js";const E={class:"flex justify-between w-full"},G=["onSubmit"],L={class:"p-8 sm:p-6"},T={class:"z-0 flex justify-end p-4 border-t border-gray-200 border-solid border-modal-bg"},H={setup(A){const t=j(),a=D(),{t:f}=S();let o=V(!1);const $=g(()=>({name:{required:h.withMessage(f("validation.required"),C),minLength:h.withMessage(f("validation.name_min_length",{count:3}),k(3))}})),n=x($,g(()=>t.currentItemUnit));async function y(){if(n.value.$touch(),n.value.$invalid)return!0;try{const s=t.isItemUnitEdit?t.updateItemUnit:t.addItemUnit;o.value=!0,await s(t.currentItemUnit),a.refreshData&&a.refreshData(),u(),o.value=!1}catch{return o.value=!1,!0}}function u(){a.closeModal(),setTimeout(()=>{t.currentItemUnit={id:null,name:""},a.$reset(),n.value.$reset()},300)}return(s,m)=>{const _=i("BaseIcon"),U=i("BaseInput"),w=i("BaseInputGroup"),I=i("BaseButton"),M=i("BaseModal");return b(),B(M,{show:e(a).active&&e(a).componentName==="ItemUnitModal",onClose:u},{header:r(()=>[c("div",E,[p(v(e(a).title)+" ",1),l(_,{name:"XIcon",class:"w-6 h-6 text-gray-500 cursor-pointer",onClick:u})])]),default:r(()=>[c("form",{action:"",onSubmit:N(y,["prevent"])},[c("div",L,[l(w,{label:s.$t("settings.customization.items.unit_name"),error:e(n).name.$error&&e(n).name.$errors[0].$message,variant:"horizontal",required:""},{default:r(()=>[l(U,{modelValue:e(t).currentItemUnit.name,"onUpdate:modelValue":m[0]||(m[0]=d=>e(t).currentItemUnit.name=d),invalid:e(n).name.$error,type:"text",onInput:m[1]||(m[1]=d=>e(n).name.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["label","error"])]),c("div",T,[l(I,{type:"button",variant:"primary-outline",class:"mr-3 text-sm",onClick:u},{default:r(()=>[p(v(s.$t("general.cancel")),1)]),_:1}),l(I,{loading:e(o),disabled:e(o),variant:"primary",type:"submit"},{left:r(d=>[e(o)?z("",!0):(b(),B(_,{key:0,name:"SaveIcon",class:q(d.class)},null,8,["class"]))]),default:r(()=>[p(" "+v(e(t).isItemUnitEdit?s.$t("general.update"):s.$t("general.save")),1)]),_:1},8,["loading","disabled"])])],40,G)]),_:1},8,["show"])}}};export{H as _}; import{g as S,i as V,k as g,m as h,n as C,p as k,q as x,r as i,o as b,s as B,w as r,t as d,v as p,x as f,y as e,b as l,z as q,A as z,B as N}from"./vendor.e9042f2c.js";import{p as j,g as D}from"./main.f55cd568.js";const E={class:"flex justify-between w-full"},G=["onSubmit"],L={class:"p-8 sm:p-6"},T={class:"z-0 flex justify-end p-4 border-t border-gray-200 border-solid border-modal-bg"},H={setup(A){const t=j(),a=D(),{t:v}=S();let o=V(!1);const $=g(()=>({name:{required:h.withMessage(v("validation.required"),C),minLength:h.withMessage(v("validation.name_min_length",{count:3}),k(3))}})),n=x($,g(()=>t.currentItemUnit));async function y(){if(n.value.$touch(),n.value.$invalid)return!0;try{const s=t.isItemUnitEdit?t.updateItemUnit:t.addItemUnit;o.value=!0,await s(t.currentItemUnit),a.refreshData&&a.refreshData(),u(),o.value=!1}catch{return o.value=!1,!0}}function u(){a.closeModal(),setTimeout(()=>{t.currentItemUnit={id:null,name:""},a.$reset(),n.value.$reset()},300)}return(s,m)=>{const _=i("BaseIcon"),U=i("BaseInput"),w=i("BaseInputGroup"),I=i("BaseButton"),M=i("BaseModal");return b(),B(M,{show:e(a).active&&e(a).componentName==="ItemUnitModal",onClose:u},{header:r(()=>[d("div",E,[p(f(e(a).title)+" ",1),l(_,{name:"XIcon",class:"w-6 h-6 text-gray-500 cursor-pointer",onClick:u})])]),default:r(()=>[d("form",{action:"",onSubmit:N(y,["prevent"])},[d("div",L,[l(w,{label:s.$t("settings.customization.items.unit_name"),error:e(n).name.$error&&e(n).name.$errors[0].$message,variant:"horizontal",required:""},{default:r(()=>[l(U,{modelValue:e(t).currentItemUnit.name,"onUpdate:modelValue":m[0]||(m[0]=c=>e(t).currentItemUnit.name=c),invalid:e(n).name.$error,type:"text",onInput:m[1]||(m[1]=c=>e(n).name.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["label","error"])]),d("div",T,[l(I,{type:"button",variant:"primary-outline",class:"mr-3 text-sm",onClick:u},{default:r(()=>[p(f(s.$t("general.cancel")),1)]),_:1}),l(I,{loading:e(o),disabled:e(o),variant:"primary",type:"submit"},{left:r(c=>[e(o)?z("",!0):(b(),B(_,{key:0,name:"SaveIcon",class:q(c.class)},null,8,["class"]))]),default:r(()=>[p(" "+f(e(t).isItemUnitEdit?s.$t("general.update"):s.$t("general.save")),1)]),_:1},8,["loading","disabled"])])],40,G)]),_:1},8,["show"])}}};export{H as _};

View File

@@ -1 +0,0 @@
import{N as t}from"./main.9d655092.js";import{r as s,o as r,c as a,b as e,t as c}from"./vendor.e9042f2c.js";const n={class:"h-screen h-screen-ios overflow-y-auto text-base"},i={class:"container mx-auto px-4"},u={setup(_){return(m,p)=>{const o=s("router-view");return r(),a("div",n,[e(t),c("div",i,[e(o)])])}}};export{u as default};

View File

@@ -0,0 +1 @@
import{N as t}from"./main.f55cd568.js";import{r as s,o as r,c,b as e,t as a}from"./vendor.e9042f2c.js";const n={class:"h-screen h-screen-ios overflow-y-auto text-base"},i={class:"container mx-auto px-4"},l={setup(_){return(m,p)=>{const o=s("router-view");return r(),c("div",n,[e(t),a("div",i,[e(o)])])}}};export{l as default};

View File

@@ -1,4 +1,4 @@
import{aR as Zi,am as Ji,i as Qi,k as eo,ac as to,M as ro,j as ea,o as ao,c as no,t as io}from"./vendor.e9042f2c.js";import{c as oo}from"./main.9d655092.js";var ta={exports:{}};/*! import{aR as Zi,am as Ji,i as Qi,k as eo,ac as to,M as ro,j as ea,o as ao,c as no,t as io}from"./vendor.e9042f2c.js";import{c as oo}from"./main.f55cd568.js";var ta={exports:{}};/*!
* Chart.js v2.9.4 * Chart.js v2.9.4
* https://www.chartjs.org * https://www.chartjs.org
* (c) 2020 Chart.js Contributors * (c) 2020 Chart.js Contributors

View File

@@ -1 +1 @@
import{_ as c}from"./main.9d655092.js";import{o as e,c as t,t as o}from"./vendor.e9042f2c.js";const s={},r={xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24"},n=o("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4"},null,-1),a=o("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"},null,-1),l=[n,a];function i(_,d){return e(),t("svg",r,l)}var m=c(s,[["render",i]]);export{m as L}; import{_ as c}from"./main.f55cd568.js";import{o as e,c as t,t as o}from"./vendor.e9042f2c.js";const s={},r={xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24"},n=o("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4"},null,-1),a=o("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"},null,-1),l=[n,a];function i(_,d){return e(),t("svg",r,l)}var m=c(s,[["render",i]]);export{m as L};

View File

@@ -1 +1 @@
import{g as N,C as M,i as w,m as p,n as $,a2 as E,q as j,k as y,r as l,o as c,c as G,b as n,w as u,y as e,s as B,a0 as _,t as b,v as h,x as I,B as L,a as R}from"./vendor.e9042f2c.js";import{u as T,a as U}from"./main.9d655092.js";const A=["onSubmit"],F={class:"mt-5 mb-8"},O={class:"mb-4"},J={setup(P){const k=T(),s=U(),{t:m}=N(),V=M(),d=w(!1);let o=w(!1);const x={email:{required:p.withMessage(m("validation.required"),$),email:p.withMessage(m("validation.email_incorrect"),E)},password:{required:p.withMessage(m("validation.required"),$)}},t=j(x,y(()=>s.loginData)),S=y(()=>o.value?"text":"password");async function q(){if(R.defaults.withCredentials=!0,t.value.$touch(),t.value.$invalid)return!0;d.value=!0;try{d.value=!0,await s.login(s.loginData),V.push("/admin/dashboard"),k.showNotification({type:"success",message:"Logged in successfully."})}catch{d.value=!1}}return(i,a)=>{const g=l("BaseInput"),f=l("BaseInputGroup"),v=l("BaseIcon"),D=l("router-link"),C=l("BaseButton");return c(),G("form",{id:"loginForm",class:"mt-12 text-left",onSubmit:L(q,["prevent"])},[n(f,{error:e(t).email.$error&&e(t).email.$errors[0].$message,label:i.$t("login.email"),class:"mb-4",required:""},{default:u(()=>[n(g,{modelValue:e(s).loginData.email,"onUpdate:modelValue":a[0]||(a[0]=r=>e(s).loginData.email=r),invalid:e(t).email.$error,focus:"",type:"email",name:"email",onInput:a[1]||(a[1]=r=>e(t).email.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["error","label"]),n(f,{error:e(t).password.$error&&e(t).password.$errors[0].$message,label:i.$t("login.password"),class:"mb-4",required:""},{default:u(()=>[n(g,{modelValue:e(s).loginData.password,"onUpdate:modelValue":a[4]||(a[4]=r=>e(s).loginData.password=r),invalid:e(t).password.$error,type:e(S),name:"password",onInput:a[5]||(a[5]=r=>e(t).password.$touch())},{right:u(()=>[e(o)?(c(),B(v,{key:0,name:"EyeOffIcon",class:"w-5 h-5 mr-1 text-gray-500 cursor-pointer",onClick:a[2]||(a[2]=r=>_(o)?o.value=!e(o):o=!e(o))})):(c(),B(v,{key:1,name:"EyeIcon",class:"w-5 h-5 mr-1 text-gray-500 cursor-pointer",onClick:a[3]||(a[3]=r=>_(o)?o.value=!e(o):o=!e(o))}))]),_:1},8,["modelValue","invalid","type"])]),_:1},8,["error","label"]),b("div",F,[b("div",O,[n(D,{to:"forgot-password",class:"text-sm text-primary-400 hover:text-gray-700"},{default:u(()=>[h(I(i.$t("login.forgot_password")),1)]),_:1})])]),n(C,{loading:d.value,type:"submit"},{default:u(()=>[h(I(i.$t("login.login")),1)]),_:1},8,["loading"])],40,A)}}};export{J as default}; import{g as N,C as M,i as w,m as p,n as $,a2 as E,q as j,k as y,r as l,o as c,c as G,b as n,w as u,y as e,s as B,a0 as _,t as b,v as h,x as I,B as L,a as R}from"./vendor.e9042f2c.js";import{u as T,a as U}from"./main.f55cd568.js";const A=["onSubmit"],F={class:"mt-5 mb-8"},O={class:"mb-4"},J={setup(P){const k=T(),s=U(),{t:m}=N(),V=M(),d=w(!1);let o=w(!1);const x={email:{required:p.withMessage(m("validation.required"),$),email:p.withMessage(m("validation.email_incorrect"),E)},password:{required:p.withMessage(m("validation.required"),$)}},t=j(x,y(()=>s.loginData)),S=y(()=>o.value?"text":"password");async function q(){if(R.defaults.withCredentials=!0,t.value.$touch(),t.value.$invalid)return!0;d.value=!0;try{d.value=!0,await s.login(s.loginData),V.push("/admin/dashboard"),k.showNotification({type:"success",message:"Logged in successfully."})}catch{d.value=!1}}return(i,a)=>{const g=l("BaseInput"),f=l("BaseInputGroup"),v=l("BaseIcon"),D=l("router-link"),C=l("BaseButton");return c(),G("form",{id:"loginForm",class:"mt-12 text-left",onSubmit:L(q,["prevent"])},[n(f,{error:e(t).email.$error&&e(t).email.$errors[0].$message,label:i.$t("login.email"),class:"mb-4",required:""},{default:u(()=>[n(g,{modelValue:e(s).loginData.email,"onUpdate:modelValue":a[0]||(a[0]=r=>e(s).loginData.email=r),invalid:e(t).email.$error,focus:"",type:"email",name:"email",onInput:a[1]||(a[1]=r=>e(t).email.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["error","label"]),n(f,{error:e(t).password.$error&&e(t).password.$errors[0].$message,label:i.$t("login.password"),class:"mb-4",required:""},{default:u(()=>[n(g,{modelValue:e(s).loginData.password,"onUpdate:modelValue":a[4]||(a[4]=r=>e(s).loginData.password=r),invalid:e(t).password.$error,type:e(S),name:"password",onInput:a[5]||(a[5]=r=>e(t).password.$touch())},{right:u(()=>[e(o)?(c(),B(v,{key:0,name:"EyeOffIcon",class:"w-5 h-5 mr-1 text-gray-500 cursor-pointer",onClick:a[2]||(a[2]=r=>_(o)?o.value=!e(o):o=!e(o))})):(c(),B(v,{key:1,name:"EyeIcon",class:"w-5 h-5 mr-1 text-gray-500 cursor-pointer",onClick:a[3]||(a[3]=r=>_(o)?o.value=!e(o):o=!e(o))}))]),_:1},8,["modelValue","invalid","type"])]),_:1},8,["error","label"]),b("div",F,[b("div",O,[n(D,{to:"forgot-password",class:"text-sm text-primary-400 hover:text-gray-700"},{default:u(()=>[h(I(i.$t("login.forgot_password")),1)]),_:1})])]),n(C,{loading:d.value,type:"submit"},{default:u(()=>[h(I(i.$t("login.login")),1)]),_:1},8,["loading"])],40,A)}}};export{J as default};

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
import{g as k,u as T,am as j,r,o as p,s as f,w as t,y as c,b as u,v as z,x as S,A as C,i as E,k as O,c as F,z as P,F as G,j as V}from"./vendor.e9042f2c.js";import{i as x,u as I,r as A,d as M,g as $,e as D}from"./main.9d655092.js";import{_ as H}from"./NoteModal.4c55688d.js";const L={props:{row:{type:Object,default:null},table:{type:Object,default:null},loadData:{type:Function,default:null}},setup(g){const d=g,N=x(),_=I(),{t:a}=k(),o=A(),h=T(),y=M(),b=$();j("utils");function w(n){o.fetchNote(n),b.openModal({title:a("settings.customization.notes.edit_note"),componentName:"NoteModal",size:"md",refreshData:d.loadData})}function s(n){N.openDialog({title:a("general.are_you_sure"),message:a("settings.customization.notes.note_confirm_delete"),yesLabel:a("general.yes"),noLabel:a("general.no"),variant:"danger",hideNoButton:!1,size:"lg"}).then(async()=>{(await o.deleteNote(n)).data.success?_.showNotification({type:"success",message:a("settings.customization.notes.deleted_message")}):_.showNotification({type:"error",message:a("settings.customization.notes.already_in_use")}),d.loadData&&d.loadData()})}return(n,e)=>{const i=r("BaseIcon"),m=r("BaseButton"),B=r("BaseDropdownItem"),l=r("BaseDropdown");return p(),f(l,null,{activator:t(()=>[c(h).name==="notes.view"?(p(),f(m,{key:0,variant:"primary"},{default:t(()=>[u(i,{name:"DotsHorizontalIcon",class:"h-5 text-white"})]),_:1})):(p(),f(i,{key:1,name:"DotsHorizontalIcon",class:"h-5 text-gray-500"}))]),default:t(()=>[c(y).hasAbilities(c(D).MANAGE_NOTE)?(p(),f(B,{key:0,onClick:e[0]||(e[0]=v=>w(g.row.id))},{default:t(()=>[u(i,{name:"PencilIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),z(" "+S(n.$t("general.edit")),1)]),_:1})):C("",!0),c(y).hasAbilities(c(D).MANAGE_NOTE)?(p(),f(B,{key:1,onClick:e[1]||(e[1]=v=>s(g.row.id))},{default:t(()=>[u(i,{name:"TrashIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),z(" "+S(n.$t("general.delete")),1)]),_:1})):C("",!0)]),_:1})}}},J={setup(g){const{t:d}=k(),N=$();x();const _=A();I();const a=M(),o=E(""),h=O(()=>[{key:"name",label:d("settings.customization.notes.name"),thClass:"extra",tdClass:"font-medium text-gray-900"},{key:"type",label:d("settings.customization.notes.type"),thClass:"extra",tdClass:"font-medium text-gray-900"},{key:"actions",label:"",tdClass:"text-right text-sm font-medium",sortable:!1}]);async function y({page:s,filter:n,sort:e}){let i=V({orderByField:e.fieldName||"created_at",orderBy:e.order||"desc",page:s}),m=await _.fetchNotes(i);return{data:m.data.data,pagination:{totalPages:m.data.meta.last_page,currentPage:s,totalCount:m.data.meta.total,limit:5}}}async function b(){await N.openModal({title:d("settings.customization.notes.add_note"),componentName:"NoteModal",size:"md",refreshData:o.value&&o.value.refresh})}async function w(){o.value&&o.value.refresh()}return(s,n)=>{const e=r("BaseIcon"),i=r("BaseButton"),m=r("BaseTable"),B=r("BaseSettingCard");return p(),F(G,null,[u(H),u(B,{title:s.$t("settings.customization.notes.title"),description:s.$t("settings.customization.notes.description")},{action:t(()=>[c(a).hasAbilities(c(D).MANAGE_NOTE)?(p(),f(i,{key:0,variant:"primary-outline",onClick:b},{left:t(l=>[u(e,{class:P(l.class),name:"PlusIcon"},null,8,["class"])]),default:t(()=>[z(" "+S(s.$t("settings.customization.notes.add_note")),1)]),_:1})):C("",!0)]),default:t(()=>[u(m,{ref:(l,v)=>{v.table=l,o.value=l},data:y,columns:c(h),class:"mt-14"},{"cell-actions":t(({row:l})=>[u(L,{row:l.data,table:o.value,"load-data":w},null,8,["row","table"])]),_:1},8,["columns"])]),_:1},8,["title","description"])],64)}}};export{J as default}; import{g as k,u as T,am as j,r,o as f,s as p,w as t,y as c,b as u,v as z,x as S,A as C,i as E,k as O,c as F,z as P,F as G,j as V}from"./vendor.e9042f2c.js";import{i as x,u as I,r as A,d as M,g as $,e as D}from"./main.f55cd568.js";import{_ as H}from"./NoteModal.0435aa4f.js";const L={props:{row:{type:Object,default:null},table:{type:Object,default:null},loadData:{type:Function,default:null}},setup(g){const d=g,N=x(),_=I(),{t:a}=k(),o=A(),h=T(),y=M(),b=$();j("utils");function w(n){o.fetchNote(n),b.openModal({title:a("settings.customization.notes.edit_note"),componentName:"NoteModal",size:"md",refreshData:d.loadData})}function s(n){N.openDialog({title:a("general.are_you_sure"),message:a("settings.customization.notes.note_confirm_delete"),yesLabel:a("general.yes"),noLabel:a("general.no"),variant:"danger",hideNoButton:!1,size:"lg"}).then(async()=>{(await o.deleteNote(n)).data.success?_.showNotification({type:"success",message:a("settings.customization.notes.deleted_message")}):_.showNotification({type:"error",message:a("settings.customization.notes.already_in_use")}),d.loadData&&d.loadData()})}return(n,e)=>{const i=r("BaseIcon"),m=r("BaseButton"),B=r("BaseDropdownItem"),l=r("BaseDropdown");return f(),p(l,null,{activator:t(()=>[c(h).name==="notes.view"?(f(),p(m,{key:0,variant:"primary"},{default:t(()=>[u(i,{name:"DotsHorizontalIcon",class:"h-5 text-white"})]),_:1})):(f(),p(i,{key:1,name:"DotsHorizontalIcon",class:"h-5 text-gray-500"}))]),default:t(()=>[c(y).hasAbilities(c(D).MANAGE_NOTE)?(f(),p(B,{key:0,onClick:e[0]||(e[0]=v=>w(g.row.id))},{default:t(()=>[u(i,{name:"PencilIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),z(" "+S(n.$t("general.edit")),1)]),_:1})):C("",!0),c(y).hasAbilities(c(D).MANAGE_NOTE)?(f(),p(B,{key:1,onClick:e[1]||(e[1]=v=>s(g.row.id))},{default:t(()=>[u(i,{name:"TrashIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),z(" "+S(n.$t("general.delete")),1)]),_:1})):C("",!0)]),_:1})}}},J={setup(g){const{t:d}=k(),N=$();x();const _=A();I();const a=M(),o=E(""),h=O(()=>[{key:"name",label:d("settings.customization.notes.name"),thClass:"extra",tdClass:"font-medium text-gray-900"},{key:"type",label:d("settings.customization.notes.type"),thClass:"extra",tdClass:"font-medium text-gray-900"},{key:"actions",label:"",tdClass:"text-right text-sm font-medium",sortable:!1}]);async function y({page:s,filter:n,sort:e}){let i=V({orderByField:e.fieldName||"created_at",orderBy:e.order||"desc",page:s}),m=await _.fetchNotes(i);return{data:m.data.data,pagination:{totalPages:m.data.meta.last_page,currentPage:s,totalCount:m.data.meta.total,limit:5}}}async function b(){await N.openModal({title:d("settings.customization.notes.add_note"),componentName:"NoteModal",size:"md",refreshData:o.value&&o.value.refresh})}async function w(){o.value&&o.value.refresh()}return(s,n)=>{const e=r("BaseIcon"),i=r("BaseButton"),m=r("BaseTable"),B=r("BaseSettingCard");return f(),F(G,null,[u(H),u(B,{title:s.$t("settings.customization.notes.title"),description:s.$t("settings.customization.notes.description")},{action:t(()=>[c(a).hasAbilities(c(D).MANAGE_NOTE)?(f(),p(i,{key:0,variant:"primary-outline",onClick:b},{left:t(l=>[u(e,{class:P(l.class),name:"PlusIcon"},null,8,["class"])]),default:t(()=>[z(" "+S(s.$t("settings.customization.notes.add_note")),1)]),_:1})):C("",!0)]),default:t(()=>[u(m,{ref:(l,v)=>{v.table=l,o.value=l},data:y,columns:c(h),class:"mt-14"},{"cell-actions":t(({row:l})=>[u(L,{row:l.data,table:o.value,"load-data":w},null,8,["row","table"])]),_:1},8,["columns"])]),_:1},8,["title","description"])],64)}}};export{J as default};

View File

@@ -1 +1 @@
import{i as h,g as k,j as E,k as m,m as y,n as F,a2 as M,q as Y,r as o,o as w,s as S,w as u,t as v,b as d,y as i,z as j,A as D,v as U,x as z,B as G,a0 as B}from"./vendor.e9042f2c.js";import{c as O}from"./main.9d655092.js";const A=["onSubmit"],R={class:"grid-cols-2 col-span-1 mt-14"},T={class:"divide-y divide-gray-200"},L={setup(H){const s=O();let r=h(!1);const{t:f}=k(),n=E({notify_invoice_viewed:s.selectedCompanySettings.notify_invoice_viewed,notify_estimate_viewed:s.selectedCompanySettings.notify_estimate_viewed,notification_email:s.selectedCompanySettings.notification_email}),$=m(()=>({notification_email:{required:y.withMessage(f("validation.required"),F),email:y.withMessage(f("validation.email_incorrect"),M)}})),l=Y($,m(()=>n)),_=m({get:()=>n.notify_invoice_viewed==="YES",set:async e=>{const t=e?"YES":"NO";let c={settings:{notify_invoice_viewed:t}};n.notify_invoice_viewed=t,await s.updateCompanySettings({data:c,message:"general.setting_updated"})}}),p=m({get:()=>n.notify_estimate_viewed==="YES",set:async e=>{const t=e?"YES":"NO";let c={settings:{notify_estimate_viewed:t}};n.notify_estimate_viewed=t,await s.updateCompanySettings({data:c,message:"general.setting_updated"})}});async function V(){if(l.value.$touch(),l.value.$invalid)return!0;r.value=!0;const e={settings:{notification_email:n.notification_email}};await s.updateCompanySettings({data:e,message:"settings.notification.email_save_message"}),r.value=!1}return(e,t)=>{const c=o("BaseInput"),C=o("BaseInputGroup"),b=o("BaseIcon"),I=o("BaseButton"),N=o("BaseDivider"),g=o("BaseSwitchSection"),q=o("BaseSettingCard");return w(),S(q,{title:e.$t("settings.notification.title"),description:e.$t("settings.notification.description")},{default:u(()=>[v("form",{action:"",onSubmit:G(V,["prevent"])},[v("div",R,[d(C,{error:i(l).notification_email.$error&&i(l).notification_email.$errors[0].$message,label:e.$t("settings.notification.email"),class:"my-2",required:""},{default:u(()=>[d(c,{modelValue:i(n).notification_email,"onUpdate:modelValue":t[0]||(t[0]=a=>i(n).notification_email=a),modelModifiers:{trim:!0},invalid:i(l).notification_email.$error,type:"email",onInput:t[1]||(t[1]=a=>i(l).notification_email.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["error","label"]),d(I,{disabled:i(r),loading:i(r),variant:"primary",type:"submit",class:"mt-6"},{left:u(a=>[i(r)?D("",!0):(w(),S(b,{key:0,class:j(a.class),name:"SaveIcon"},null,8,["class"]))]),default:u(()=>[U(" "+z(e.$tc("settings.notification.save")),1)]),_:1},8,["disabled","loading"])])],40,A),d(N,{class:"mt-6 mb-2"}),v("ul",T,[d(g,{modelValue:i(_),"onUpdate:modelValue":t[2]||(t[2]=a=>B(_)?_.value=a:null),title:e.$t("settings.notification.invoice_viewed"),description:e.$t("settings.notification.invoice_viewed_desc")},null,8,["modelValue","title","description"]),d(g,{modelValue:i(p),"onUpdate:modelValue":t[3]||(t[3]=a=>B(p)?p.value=a:null),title:e.$t("settings.notification.estimate_viewed"),description:e.$t("settings.notification.estimate_viewed_desc")},null,8,["modelValue","title","description"])])]),_:1},8,["title","description"])}}};export{L as default}; import{i as h,g as k,j as E,k as m,m as y,n as F,a2 as M,q as Y,r as o,o as w,s as S,w as u,t as v,b as d,y as i,z as j,A as D,v as U,x as z,B as G,a0 as B}from"./vendor.e9042f2c.js";import{c as O}from"./main.f55cd568.js";const A=["onSubmit"],R={class:"grid-cols-2 col-span-1 mt-14"},T={class:"divide-y divide-gray-200"},L={setup(H){const s=O();let r=h(!1);const{t:f}=k(),n=E({notify_invoice_viewed:s.selectedCompanySettings.notify_invoice_viewed,notify_estimate_viewed:s.selectedCompanySettings.notify_estimate_viewed,notification_email:s.selectedCompanySettings.notification_email}),$=m(()=>({notification_email:{required:y.withMessage(f("validation.required"),F),email:y.withMessage(f("validation.email_incorrect"),M)}})),l=Y($,m(()=>n)),_=m({get:()=>n.notify_invoice_viewed==="YES",set:async e=>{const t=e?"YES":"NO";let c={settings:{notify_invoice_viewed:t}};n.notify_invoice_viewed=t,await s.updateCompanySettings({data:c,message:"general.setting_updated"})}}),p=m({get:()=>n.notify_estimate_viewed==="YES",set:async e=>{const t=e?"YES":"NO";let c={settings:{notify_estimate_viewed:t}};n.notify_estimate_viewed=t,await s.updateCompanySettings({data:c,message:"general.setting_updated"})}});async function V(){if(l.value.$touch(),l.value.$invalid)return!0;r.value=!0;const e={settings:{notification_email:n.notification_email}};await s.updateCompanySettings({data:e,message:"settings.notification.email_save_message"}),r.value=!1}return(e,t)=>{const c=o("BaseInput"),C=o("BaseInputGroup"),b=o("BaseIcon"),I=o("BaseButton"),N=o("BaseDivider"),g=o("BaseSwitchSection"),q=o("BaseSettingCard");return w(),S(q,{title:e.$t("settings.notification.title"),description:e.$t("settings.notification.description")},{default:u(()=>[v("form",{action:"",onSubmit:G(V,["prevent"])},[v("div",R,[d(C,{error:i(l).notification_email.$error&&i(l).notification_email.$errors[0].$message,label:e.$t("settings.notification.email"),class:"my-2",required:""},{default:u(()=>[d(c,{modelValue:i(n).notification_email,"onUpdate:modelValue":t[0]||(t[0]=a=>i(n).notification_email=a),modelModifiers:{trim:!0},invalid:i(l).notification_email.$error,type:"email",onInput:t[1]||(t[1]=a=>i(l).notification_email.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["error","label"]),d(I,{disabled:i(r),loading:i(r),variant:"primary",type:"submit",class:"mt-6"},{left:u(a=>[i(r)?D("",!0):(w(),S(b,{key:0,class:j(a.class),name:"SaveIcon"},null,8,["class"]))]),default:u(()=>[U(" "+z(e.$tc("settings.notification.save")),1)]),_:1},8,["disabled","loading"])])],40,A),d(N,{class:"mt-6 mb-2"}),v("ul",T,[d(g,{modelValue:i(_),"onUpdate:modelValue":t[2]||(t[2]=a=>B(_)?_.value=a:null),title:e.$t("settings.notification.invoice_viewed"),description:e.$t("settings.notification.invoice_viewed_desc")},null,8,["modelValue","title","description"]),d(g,{modelValue:i(p),"onUpdate:modelValue":t[3]||(t[3]=a=>B(p)?p.value=a:null),title:e.$t("settings.notification.estimate_viewed"),description:e.$t("settings.notification.estimate_viewed_desc")},null,8,["modelValue","title","description"])])]),_:1},8,["title","description"])}}};export{L as default};

View File

@@ -1 +1 @@
import{g as I,i as S,k as p,m as P,n as V,p as C,q as k,r as u,o as q,s as j,w as r,t as c,v as y,x as v,y as t,b as s,z as x,B as N}from"./vendor.e9042f2c.js";import{g as z,o as D}from"./main.9d655092.js";const G={class:"flex justify-between w-full"},L=["onSubmit"],T={class:"p-4 sm:p-6"},A={class:"z-0 flex justify-end p-4 border-t border-gray-200 border-solid"},F={setup(U){const o=z(),e=D(),{t:M}=I(),l=S(!1),g=p(()=>({currentPaymentMode:{name:{required:P.withMessage(M("validation.required"),V),minLength:P.withMessage(M("validation.name_min_length",{count:3}),C(3))}}})),a=k(g,p(()=>e)),h=p(()=>o.active&&o.componentName==="PaymentModeModal");async function B(){if(a.value.currentPaymentMode.$touch(),a.value.currentPaymentMode.$invalid)return!0;try{const n=e.currentPaymentMode.id?e.updatePaymentMode:e.addPaymentMode;l.value=!0,await n(e.currentPaymentMode),l.value=!1,o.refreshData&&o.refreshData(),d()}catch{return l.value=!1,!0}}function d(){o.closeModal(),setTimeout(()=>{a.value.$reset(),e.currentPaymentMode={id:"",name:null}})}return(n,i)=>{const f=u("BaseIcon"),b=u("BaseInput"),$=u("BaseInputGroup"),_=u("BaseButton"),w=u("BaseModal");return q(),j(w,{show:t(h),onClose:d},{header:r(()=>[c("div",G,[y(v(t(o).title)+" ",1),s(f,{name:"XIcon",class:"w-6 h-6 text-gray-500 cursor-pointer",onClick:d})])]),default:r(()=>[c("form",{action:"",onSubmit:N(B,["prevent"])},[c("div",T,[s($,{label:n.$t("settings.payment_modes.mode_name"),error:t(a).currentPaymentMode.name.$error&&t(a).currentPaymentMode.name.$errors[0].$message,required:""},{default:r(()=>[s(b,{modelValue:t(e).currentPaymentMode.name,"onUpdate:modelValue":i[0]||(i[0]=m=>t(e).currentPaymentMode.name=m),invalid:t(a).currentPaymentMode.name.$error,onInput:i[1]||(i[1]=m=>t(a).currentPaymentMode.name.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["label","error"])]),c("div",A,[s(_,{variant:"primary-outline",class:"mr-3",type:"button",onClick:d},{default:r(()=>[y(v(n.$t("general.cancel")),1)]),_:1}),s(_,{loading:l.value,disabled:l.value,variant:"primary",type:"submit"},{left:r(m=>[s(f,{name:"SaveIcon",class:x(m.class)},null,8,["class"])]),default:r(()=>[y(" "+v(t(e).currentPaymentMode.id?n.$t("general.update"):n.$t("general.save")),1)]),_:1},8,["loading","disabled"])])],40,L)]),_:1},8,["show"])}}};export{F as _}; import{g as I,i as S,k as p,m as P,n as V,p as C,q as k,r as u,o as q,s as j,w as r,t as c,v as y,x as v,y as t,b as s,z as x,B as N}from"./vendor.e9042f2c.js";import{g as z,o as D}from"./main.f55cd568.js";const G={class:"flex justify-between w-full"},L=["onSubmit"],T={class:"p-4 sm:p-6"},A={class:"z-0 flex justify-end p-4 border-t border-gray-200 border-solid"},F={setup(U){const o=z(),e=D(),{t:f}=I(),l=S(!1),g=p(()=>({currentPaymentMode:{name:{required:P.withMessage(f("validation.required"),V),minLength:P.withMessage(f("validation.name_min_length",{count:3}),C(3))}}})),a=k(g,p(()=>e)),h=p(()=>o.active&&o.componentName==="PaymentModeModal");async function B(){if(a.value.currentPaymentMode.$touch(),a.value.currentPaymentMode.$invalid)return!0;try{const n=e.currentPaymentMode.id?e.updatePaymentMode:e.addPaymentMode;l.value=!0,await n(e.currentPaymentMode),l.value=!1,o.refreshData&&o.refreshData(),d()}catch{return l.value=!1,!0}}function d(){o.closeModal(),setTimeout(()=>{a.value.$reset(),e.currentPaymentMode={id:"",name:null}})}return(n,i)=>{const M=u("BaseIcon"),b=u("BaseInput"),$=u("BaseInputGroup"),_=u("BaseButton"),w=u("BaseModal");return q(),j(w,{show:t(h),onClose:d},{header:r(()=>[c("div",G,[y(v(t(o).title)+" ",1),s(M,{name:"XIcon",class:"w-6 h-6 text-gray-500 cursor-pointer",onClick:d})])]),default:r(()=>[c("form",{action:"",onSubmit:N(B,["prevent"])},[c("div",T,[s($,{label:n.$t("settings.payment_modes.mode_name"),error:t(a).currentPaymentMode.name.$error&&t(a).currentPaymentMode.name.$errors[0].$message,required:""},{default:r(()=>[s(b,{modelValue:t(e).currentPaymentMode.name,"onUpdate:modelValue":i[0]||(i[0]=m=>t(e).currentPaymentMode.name=m),invalid:t(a).currentPaymentMode.name.$error,onInput:i[1]||(i[1]=m=>t(a).currentPaymentMode.name.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["label","error"])]),c("div",A,[s(_,{variant:"primary-outline",class:"mr-3",type:"button",onClick:d},{default:r(()=>[y(v(n.$t("general.cancel")),1)]),_:1}),s(_,{loading:l.value,disabled:l.value,variant:"primary",type:"submit"},{left:r(m=>[s(M,{name:"SaveIcon",class:x(m.class)},null,8,["class"])]),default:r(()=>[y(" "+v(t(e).currentPaymentMode.id?n.$t("general.update"):n.$t("general.save")),1)]),_:1},8,["loading","disabled"])])],40,L)]),_:1},8,["show"])}}};export{F as _};

View File

@@ -1 +1 @@
import{g as D,u as I,am as x,r as d,o as p,s as v,w as a,y as M,b as t,v as b,x as w,i as $,k as z,c as N,z as j,F as T}from"./vendor.e9042f2c.js";import{i as P,u as F,o as C,d as H,g as S}from"./main.9d655092.js";import{_ as L}from"./PaymentModeModal.118ad948.js";const O={props:{row:{type:Object,default:null},table:{type:Object,default:null},loadData:{type:Function,default:null}},setup(u){const c=u,y=P();F();const{t:s}=D(),o=C(),_=I();H();const f=S();x("utils");function g(e){o.fetchPaymentMode(e),f.openModal({title:s("settings.payment_modes.edit_payment_mode"),componentName:"PaymentModeModal",refreshData:c.loadData&&c.loadData,size:"sm"})}function B(e){y.openDialog({title:s("general.are_you_sure"),message:s("settings.payment_modes.payment_mode_confirm_delete"),yesLabel:s("general.ok"),noLabel:s("general.cancel"),variant:"danger",hideNoButton:!1,size:"lg"}).then(async l=>{l&&(await o.deletePaymentMode(e),c.loadData&&c.loadData())})}return(e,l)=>{const n=d("BaseIcon"),i=d("BaseButton"),r=d("BaseDropdownItem"),h=d("BaseDropdown");return p(),v(h,null,{activator:a(()=>[M(_).name==="paymentModes.view"?(p(),v(i,{key:0,variant:"primary"},{default:a(()=>[t(n,{name:"DotsHorizontalIcon",class:"h-5 text-white"})]),_:1})):(p(),v(n,{key:1,name:"DotsHorizontalIcon",class:"h-5 text-gray-500"}))]),default:a(()=>[t(r,{onClick:l[0]||(l[0]=m=>g(u.row.id))},{default:a(()=>[t(n,{name:"PencilIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),b(" "+w(e.$t("general.edit")),1)]),_:1}),t(r,{onClick:l[1]||(l[1]=m=>B(u.row.id))},{default:a(()=>[t(n,{name:"TrashIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),b(" "+w(e.$t("general.delete")),1)]),_:1})]),_:1})}}},U={setup(u){const c=S();P();const y=C(),{t:s}=D(),o=$(null),_=z(()=>[{key:"name",label:s("settings.payment_modes.mode_name"),thClass:"extra",tdClass:"font-medium text-gray-900"},{key:"actions",label:"",tdClass:"text-right text-sm font-medium",sortable:!1}]);async function f(){o.value&&o.value.refresh()}async function g({page:e,filter:l,sort:n}){let i={orderByField:n.fieldName||"created_at",orderBy:n.order||"desc",page:e},r=await y.fetchPaymentModes(i);return{data:r.data.data,pagination:{totalPages:r.data.meta.last_page,currentPage:e,totalCount:r.data.meta.total,limit:5}}}function B(){c.openModal({title:s("settings.payment_modes.add_payment_mode"),componentName:"PaymentModeModal",refreshData:o.value&&o.value.refresh,size:"sm"})}return(e,l)=>{const n=d("BaseIcon"),i=d("BaseButton"),r=d("BaseTable"),h=d("BaseSettingCard");return p(),N(T,null,[t(L),t(h,{title:e.$t("settings.payment_modes.title"),description:e.$t("settings.payment_modes.description")},{action:a(()=>[t(i,{type:"submit",variant:"primary-outline",onClick:B},{left:a(m=>[t(n,{class:j(m.class),name:"PlusIcon"},null,8,["class"])]),default:a(()=>[b(" "+w(e.$t("settings.payment_modes.add_payment_mode")),1)]),_:1})]),default:a(()=>[t(r,{ref:(m,k)=>{k.table=m,o.value=m},data:g,columns:M(_),class:"mt-16"},{"cell-actions":a(({row:m})=>[t(O,{row:m.data,table:o.value,"load-data":f},null,8,["row","table"])]),_:1},8,["columns"])]),_:1},8,["title","description"])],64)}}};export{U as default}; import{g as D,u as I,am as x,r as d,o as p,s as v,w as a,y as M,b as t,v as b,x as w,i as $,k as z,c as N,z as j,F as T}from"./vendor.e9042f2c.js";import{i as P,u as F,o as C,d as H,g as S}from"./main.f55cd568.js";import{_ as L}from"./PaymentModeModal.83905526.js";const O={props:{row:{type:Object,default:null},table:{type:Object,default:null},loadData:{type:Function,default:null}},setup(u){const c=u,y=P();F();const{t:s}=D(),o=C(),f=I();H();const _=S();x("utils");function g(e){o.fetchPaymentMode(e),_.openModal({title:s("settings.payment_modes.edit_payment_mode"),componentName:"PaymentModeModal",refreshData:c.loadData&&c.loadData,size:"sm"})}function B(e){y.openDialog({title:s("general.are_you_sure"),message:s("settings.payment_modes.payment_mode_confirm_delete"),yesLabel:s("general.ok"),noLabel:s("general.cancel"),variant:"danger",hideNoButton:!1,size:"lg"}).then(async l=>{l&&(await o.deletePaymentMode(e),c.loadData&&c.loadData())})}return(e,l)=>{const n=d("BaseIcon"),i=d("BaseButton"),r=d("BaseDropdownItem"),h=d("BaseDropdown");return p(),v(h,null,{activator:a(()=>[M(f).name==="paymentModes.view"?(p(),v(i,{key:0,variant:"primary"},{default:a(()=>[t(n,{name:"DotsHorizontalIcon",class:"h-5 text-white"})]),_:1})):(p(),v(n,{key:1,name:"DotsHorizontalIcon",class:"h-5 text-gray-500"}))]),default:a(()=>[t(r,{onClick:l[0]||(l[0]=m=>g(u.row.id))},{default:a(()=>[t(n,{name:"PencilIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),b(" "+w(e.$t("general.edit")),1)]),_:1}),t(r,{onClick:l[1]||(l[1]=m=>B(u.row.id))},{default:a(()=>[t(n,{name:"TrashIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),b(" "+w(e.$t("general.delete")),1)]),_:1})]),_:1})}}},U={setup(u){const c=S();P();const y=C(),{t:s}=D(),o=$(null),f=z(()=>[{key:"name",label:s("settings.payment_modes.mode_name"),thClass:"extra",tdClass:"font-medium text-gray-900"},{key:"actions",label:"",tdClass:"text-right text-sm font-medium",sortable:!1}]);async function _(){o.value&&o.value.refresh()}async function g({page:e,filter:l,sort:n}){let i={orderByField:n.fieldName||"created_at",orderBy:n.order||"desc",page:e},r=await y.fetchPaymentModes(i);return{data:r.data.data,pagination:{totalPages:r.data.meta.last_page,currentPage:e,totalCount:r.data.meta.total,limit:5}}}function B(){c.openModal({title:s("settings.payment_modes.add_payment_mode"),componentName:"PaymentModeModal",refreshData:o.value&&o.value.refresh,size:"sm"})}return(e,l)=>{const n=d("BaseIcon"),i=d("BaseButton"),r=d("BaseTable"),h=d("BaseSettingCard");return p(),N(T,null,[t(L),t(h,{title:e.$t("settings.payment_modes.title"),description:e.$t("settings.payment_modes.description")},{action:a(()=>[t(i,{type:"submit",variant:"primary-outline",onClick:B},{left:a(m=>[t(n,{class:j(m.class),name:"PlusIcon"},null,8,["class"])]),default:a(()=>[b(" "+w(e.$t("settings.payment_modes.add_payment_mode")),1)]),_:1})]),default:a(()=>[t(r,{ref:(m,k)=>{k.table=m,o.value=m},data:g,columns:M(f),class:"mt-16"},{"cell-actions":a(({row:m})=>[t(O,{row:m.data,table:o.value,"load-data":_},null,8,["row","table"])]),_:1},8,["columns"])]),_:1},8,["title","description"])],64)}}};export{U as default};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
import{g as b,u as E,C as k,am as C,r as c,o as n,s as a,w as o,y as t,b as s,v as p,x as v,A as I}from"./vendor.e9042f2c.js";import{B as x,u as S,i as V,d as $,e as y}from"./main.9d655092.js";const T={props:{row:{type:Object,default:null},table:{type:Object,default:null},loadData:{type:Function,default:()=>{}}},setup(l){const _=l,g=x(),w=S(),B=V(),m=$(),{t:r}=b(),h=E();k(),C("utils");async function D(i=null){B.openDialog({title:r("general.are_you_sure"),message:r("invoices.confirm_delete"),yesLabel:r("general.ok"),noLabel:r("general.cancel"),variant:"danger",hideNoButton:!1,size:"lg"}).then(async u=>{u&&await g.deleteMultipleRecurringInvoices(i).then(e=>{e.data.success?(_.table&&_.table.refresh(),g.$patch(d=>{d.selectedRecurringInvoices=[],d.selectAllField=!1}),w.showNotification({type:"success",message:r("recurring_invoices.deleted_message",2)})):e.data.error&&w.showNotification({type:"error",message:e.data.message})})})}return(i,u)=>{const e=c("BaseIcon"),d=c("BaseButton"),f=c("BaseDropdownItem"),R=c("router-link"),N=c("BaseDropdown");return n(),a(N,{"content-loading":t(g).isFetchingViewData},{activator:o(()=>[t(h).name==="recurring-invoices.view"?(n(),a(d,{key:0,variant:"primary"},{default:o(()=>[s(e,{name:"DotsHorizontalIcon",class:"h-5 text-white"})]),_:1})):(n(),a(e,{key:1,name:"DotsHorizontalIcon",class:"h-5 text-gray-500"}))]),default:o(()=>[t(m).hasAbilities(t(y).EDIT_RECURRING_INVOICE)?(n(),a(R,{key:0,to:`/admin/recurring-invoices/${l.row.id}/edit`},{default:o(()=>[s(f,null,{default:o(()=>[s(e,{name:"PencilIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),p(" "+v(i.$t("general.edit")),1)]),_:1})]),_:1},8,["to"])):I("",!0),t(h).name!=="recurring-invoices.view"&&t(m).hasAbilities(t(y).VIEW_RECURRING_INVOICE)?(n(),a(R,{key:1,to:`recurring-invoices/${l.row.id}/view`},{default:o(()=>[s(f,null,{default:o(()=>[s(e,{name:"EyeIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),p(" "+v(i.$t("general.view")),1)]),_:1})]),_:1},8,["to"])):I("",!0),t(m).hasAbilities(t(y).DELETE_RECURRING_INVOICE)?(n(),a(f,{key:2,onClick:u[0]||(u[0]=j=>D(l.row.id))},{default:o(()=>[s(e,{name:"TrashIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),p(" "+v(i.$t("general.delete")),1)]),_:1})):I("",!0)]),_:1},8,["content-loading"])}}};export{T as _}; import{g as b,u as E,C as k,am as C,r as c,o as n,s as a,w as o,y as t,b as s,v as p,x as v,A as I}from"./vendor.e9042f2c.js";import{B as x,u as S,i as V,d as $,e as y}from"./main.f55cd568.js";const T={props:{row:{type:Object,default:null},table:{type:Object,default:null},loadData:{type:Function,default:()=>{}}},setup(l){const _=l,g=x(),w=S(),B=V(),m=$(),{t:r}=b(),h=E();k(),C("utils");async function D(i=null){B.openDialog({title:r("general.are_you_sure"),message:r("invoices.confirm_delete"),yesLabel:r("general.ok"),noLabel:r("general.cancel"),variant:"danger",hideNoButton:!1,size:"lg"}).then(async u=>{u&&await g.deleteMultipleRecurringInvoices(i).then(e=>{e.data.success?(_.table&&_.table.refresh(),g.$patch(d=>{d.selectedRecurringInvoices=[],d.selectAllField=!1}),w.showNotification({type:"success",message:r("recurring_invoices.deleted_message",2)})):e.data.error&&w.showNotification({type:"error",message:e.data.message})})})}return(i,u)=>{const e=c("BaseIcon"),d=c("BaseButton"),f=c("BaseDropdownItem"),R=c("router-link"),N=c("BaseDropdown");return n(),a(N,{"content-loading":t(g).isFetchingViewData},{activator:o(()=>[t(h).name==="recurring-invoices.view"?(n(),a(d,{key:0,variant:"primary"},{default:o(()=>[s(e,{name:"DotsHorizontalIcon",class:"h-5 text-white"})]),_:1})):(n(),a(e,{key:1,name:"DotsHorizontalIcon",class:"h-5 text-gray-500"}))]),default:o(()=>[t(m).hasAbilities(t(y).EDIT_RECURRING_INVOICE)?(n(),a(R,{key:0,to:`/admin/recurring-invoices/${l.row.id}/edit`},{default:o(()=>[s(f,null,{default:o(()=>[s(e,{name:"PencilIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),p(" "+v(i.$t("general.edit")),1)]),_:1})]),_:1},8,["to"])):I("",!0),t(h).name!=="recurring-invoices.view"&&t(m).hasAbilities(t(y).VIEW_RECURRING_INVOICE)?(n(),a(R,{key:1,to:`recurring-invoices/${l.row.id}/view`},{default:o(()=>[s(f,null,{default:o(()=>[s(e,{name:"EyeIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),p(" "+v(i.$t("general.view")),1)]),_:1})]),_:1},8,["to"])):I("",!0),t(m).hasAbilities(t(y).DELETE_RECURRING_INVOICE)?(n(),a(f,{key:2,onClick:u[0]||(u[0]=j=>D(l.row.id))},{default:o(()=>[s(e,{name:"TrashIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),p(" "+v(i.$t("general.delete")),1)]),_:1})):I("",!0)]),_:1},8,["content-loading"])}}};export{T as _};

View File

@@ -1 +1 @@
import{g as q,u as I,C as h,j as S,i as k,k as d,n as w,a2 as L,p as C,aQ as N,q as P,r as f,o as j,c as A,b as n,w as m,y as r,v as E,x as U,B as x,a as D}from"./vendor.e9042f2c.js";import{u as G,h as R}from"./main.9d655092.js";const F=["onSubmit"],z={setup(M){const v=G(),{t}=q(),c=I(),$=h(),o=S({email:"",password:"",password_confirmation:""}),u=k(!1),_=d(()=>({email:{required:w,email:L},password:{required:w,minLength:C(8)},password_confirmation:{sameAsPassword:N(o.password)}})),a=P(_,o),g=d(()=>a.value.email.$error?a.value.email.required.$invalid?t("validation.required"):a.value.email.email?t("validation.email_incorrect"):!1:""),b=d(()=>a.value.password.$error?a.value.password.required.$invalid?t("validation.required"):a.value.password.minLength?t("validation.password_min_length",{count:a.value.password.minLength.$params.min}):!1:""),y=d(()=>a.value.password_confirmation.$error?a.value.password_confirmation.sameAsPassword.$invalid?t("validation.password_incorrect"):!1:"");async function V(i){if(a.value.$touch(),!a.value.$invalid)try{let e={email:o.email,password:o.password,password_confirmation:o.password_confirmation,token:c.params.token};u.value=!0;let l=await D.post("/api/v1/auth/reset/password",e);u.value=!1,l.data&&(v.showNotification({type:"success",message:t("login.password_reset_successfully")}),$.push("/login"))}catch(e){R(e),u.value=!1,e.response&&e.response.status===403}}return(i,e)=>{const l=f("BaseInput"),p=f("BaseInputGroup"),B=f("BaseButton");return j(),A("form",{id:"loginForm",onSubmit:x(V,["prevent"])},[n(p,{error:r(g),label:i.$t("login.email"),class:"mb-4",required:""},{default:m(()=>[n(l,{modelValue:r(o).email,"onUpdate:modelValue":e[0]||(e[0]=s=>r(o).email=s),invalid:r(a).email.$error,focus:"",type:"email",name:"email",onInput:e[1]||(e[1]=s=>r(a).email.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["error","label"]),n(p,{error:r(b),label:i.$t("login.password"),class:"mb-4",required:""},{default:m(()=>[n(l,{modelValue:r(o).password,"onUpdate:modelValue":e[2]||(e[2]=s=>r(o).password=s),invalid:r(a).password.$error,type:"password",name:"password",onInput:e[3]||(e[3]=s=>r(a).password.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["error","label"]),n(p,{error:r(y),label:i.$t("login.retype_password"),class:"mb-4",required:""},{default:m(()=>[n(l,{modelValue:r(o).password_confirmation,"onUpdate:modelValue":e[4]||(e[4]=s=>r(o).password_confirmation=s),invalid:r(a).password_confirmation.$error,type:"password",name:"password",onInput:e[5]||(e[5]=s=>r(a).password_confirmation.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["error","label"]),n(B,{loading:u.value,type:"submit",variant:"primary"},{default:m(()=>[E(U(i.$t("login.reset_password")),1)]),_:1},8,["loading"])],40,F)}}};export{z as default}; import{g as q,u as I,C as h,j as S,i as k,k as d,n as w,a2 as L,p as C,aQ as N,q as P,r as f,o as j,c as A,b as n,w as m,y as r,v as E,x as U,B as x,a as D}from"./vendor.e9042f2c.js";import{u as G,h as R}from"./main.f55cd568.js";const F=["onSubmit"],z={setup(M){const v=G(),{t}=q(),c=I(),$=h(),o=S({email:"",password:"",password_confirmation:""}),u=k(!1),_=d(()=>({email:{required:w,email:L},password:{required:w,minLength:C(8)},password_confirmation:{sameAsPassword:N(o.password)}})),a=P(_,o),g=d(()=>a.value.email.$error?a.value.email.required.$invalid?t("validation.required"):a.value.email.email?t("validation.email_incorrect"):!1:""),b=d(()=>a.value.password.$error?a.value.password.required.$invalid?t("validation.required"):a.value.password.minLength?t("validation.password_min_length",{count:a.value.password.minLength.$params.min}):!1:""),y=d(()=>a.value.password_confirmation.$error?a.value.password_confirmation.sameAsPassword.$invalid?t("validation.password_incorrect"):!1:"");async function V(i){if(a.value.$touch(),!a.value.$invalid)try{let e={email:o.email,password:o.password,password_confirmation:o.password_confirmation,token:c.params.token};u.value=!0;let l=await D.post("/api/v1/auth/reset/password",e);u.value=!1,l.data&&(v.showNotification({type:"success",message:t("login.password_reset_successfully")}),$.push("/login"))}catch(e){R(e),u.value=!1,e.response&&e.response.status===403}}return(i,e)=>{const l=f("BaseInput"),p=f("BaseInputGroup"),B=f("BaseButton");return j(),A("form",{id:"loginForm",onSubmit:x(V,["prevent"])},[n(p,{error:r(g),label:i.$t("login.email"),class:"mb-4",required:""},{default:m(()=>[n(l,{modelValue:r(o).email,"onUpdate:modelValue":e[0]||(e[0]=s=>r(o).email=s),invalid:r(a).email.$error,focus:"",type:"email",name:"email",onInput:e[1]||(e[1]=s=>r(a).email.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["error","label"]),n(p,{error:r(b),label:i.$t("login.password"),class:"mb-4",required:""},{default:m(()=>[n(l,{modelValue:r(o).password,"onUpdate:modelValue":e[2]||(e[2]=s=>r(o).password=s),invalid:r(a).password.$error,type:"password",name:"password",onInput:e[3]||(e[3]=s=>r(a).password.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["error","label"]),n(p,{error:r(y),label:i.$t("login.retype_password"),class:"mb-4",required:""},{default:m(()=>[n(l,{modelValue:r(o).password_confirmation,"onUpdate:modelValue":e[4]||(e[4]=s=>r(o).password_confirmation=s),invalid:r(a).password_confirmation.$error,type:"password",name:"password",onInput:e[5]||(e[5]=s=>r(a).password_confirmation.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["error","label"]),n(B,{loading:u.value,type:"submit",variant:"primary"},{default:m(()=>[E(U(i.$t("login.reset_password")),1)]),_:1},8,["loading"])],40,F)}}};export{z as default};

View File

@@ -1 +1 @@
var E=Object.defineProperty;var b=Object.getOwnPropertySymbols;var P=Object.prototype.hasOwnProperty,T=Object.prototype.propertyIsEnumerable;var g=(s,t,e)=>t in s?E(s,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):s[t]=e,x=(s,t)=>{for(var e in t||(t={}))P.call(t,e)&&g(s,e,t[e]);if(b)for(var e of b(t))T.call(t,e)&&g(s,e,t[e]);return s};import{i as k,g as F,k as L,r as w,o as l,c as i,b as r,t as n,w as p,y as o,s as O,v as D,x as m,z as U,a6 as G,A as N,T as H,a7 as W,F as C,H as q,a8 as J}from"./vendor.e9042f2c.js";import{g as K,r as Q,d as R,e as B}from"./main.9d655092.js";import{_ as X}from"./NoteModal.4c55688d.js";const Y={class:"w-full"},Z={class:"overflow-hidden rounded-md shadow-lg ring-1 ring-black ring-opacity-5"},ee={class:"relative grid bg-white"},te={class:"relative p-4"},se={key:0,class:"relative flex flex-col overflow-auto list max-h-36"},oe=["onClick"],ae={class:"flex justify-between px-2"},ne={class:"m-0 text-base font-semibold leading-tight text-gray-700 cursor-pointer"},le={key:1,class:"flex justify-center p-5 text-gray-400"},re={class:"text-base text-gray-500"},ie={class:"m-0 ml-3 text-sm leading-none cursor-pointer font-base text-primary-400"},fe={props:{type:{type:String,default:null}},emits:["select"],setup(s,{emit:t}){const e=s;k(null);const{t:I}=F(),c=k(null),S=K(),d=Q(),y=R(),_=L(()=>c.value?d.notes.filter(function(a){return a.name.toLowerCase().indexOf(c.value.toLowerCase())!==-1}):d.notes);async function V(){await d.fetchNotes({filter:{},orderByField:"",orderBy:"",type:e.type?e.type:""})}function z(a,u){t("select",x({},d.notes[a])),c.value=null,u()}function j(){S.openModal({title:I("settings.customization.notes.add_note"),componentName:"NoteModal",size:"lg",data:e.type})}return(a,u)=>{const v=w("BaseIcon"),M=w("BaseInput");return l(),i(C,null,[r(X),n("div",Y,[r(o(J),null,{default:p(({isOpen:$})=>[o(y).hasAbilities(o(B).VIEW_NOTE)?(l(),O(o(G),{key:0,class:U([$?"":"text-opacity-90","flex items-center z-10 font-medium text-primary-400 focus:outline-none focus:border-none"]),onClick:V},{default:p(()=>[r(v,{name:"PlusIcon",class:"w-4 h-4 font-medium text-primary-400"}),D(" "+m(a.$t("general.insert_note")),1)]),_:2},1032,["class"])):N("",!0),r(H,{"enter-active-class":"transition duration-200 ease-out","enter-from-class":"translate-y-1 opacity-0","enter-to-class":"translate-y-0 opacity-100","leave-active-class":"transition duration-150 ease-in","leave-from-class":"translate-y-0 opacity-100","leave-to-class":"translate-y-1 opacity-0"},{default:p(()=>[r(o(W),{class:"absolute z-20 px-4 mt-3 transform sm:px-0 w-screen max-w-full left-0 top-3"},{default:p(({close:A})=>[n("div",Z,[n("div",ee,[n("div",te,[r(M,{modelValue:c.value,"onUpdate:modelValue":u[0]||(u[0]=f=>c.value=f),placeholder:a.$t("general.search"),type:"text",class:"text-black"},null,8,["modelValue","placeholder"])]),o(_).length>0?(l(),i("div",se,[(l(!0),i(C,null,q(o(_),(f,h)=>(l(),i("div",{key:h,tabindex:"2",class:"px-6 py-4 border-b border-gray-200 border-solid cursor-pointer hover:bg-gray-100 hover:cursor-pointer last:border-b-0",onClick:ce=>z(h,A)},[n("div",ae,[n("label",ne,m(f.name),1)])],8,oe))),128))])):(l(),i("div",le,[n("label",re,m(a.$t("general.no_note_found")),1)]))]),o(y).hasAbilities(o(B).MANAGE_NOTE)?(l(),i("button",{key:0,type:"button",class:"h-10 flex items-center justify-center w-full px-2 py-3 bg-gray-200 border-none outline-none",onClick:j},[r(v,{name:"CheckCircleIcon",class:"text-primary-400"}),n("label",ie,m(a.$t("settings.customization.notes.add_new_note")),1)])):N("",!0)])]),_:1})]),_:1})]),_:1})])],64)}}};export{fe as _}; var E=Object.defineProperty;var b=Object.getOwnPropertySymbols;var P=Object.prototype.hasOwnProperty,T=Object.prototype.propertyIsEnumerable;var g=(s,t,e)=>t in s?E(s,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):s[t]=e,x=(s,t)=>{for(var e in t||(t={}))P.call(t,e)&&g(s,e,t[e]);if(b)for(var e of b(t))T.call(t,e)&&g(s,e,t[e]);return s};import{i as k,g as F,k as L,r as w,o as l,c as i,b as r,t as n,w as p,y as o,s as O,v as D,x as m,z as U,a6 as G,A as N,T as H,a7 as W,F as C,H as q,a8 as J}from"./vendor.e9042f2c.js";import{g as K,r as Q,d as R,e as B}from"./main.f55cd568.js";import{_ as X}from"./NoteModal.0435aa4f.js";const Y={class:"w-full"},Z={class:"overflow-hidden rounded-md shadow-lg ring-1 ring-black ring-opacity-5"},ee={class:"relative grid bg-white"},te={class:"relative p-4"},se={key:0,class:"relative flex flex-col overflow-auto list max-h-36"},oe=["onClick"],ae={class:"flex justify-between px-2"},ne={class:"m-0 text-base font-semibold leading-tight text-gray-700 cursor-pointer"},le={key:1,class:"flex justify-center p-5 text-gray-400"},re={class:"text-base text-gray-500"},ie={class:"m-0 ml-3 text-sm leading-none cursor-pointer font-base text-primary-400"},fe={props:{type:{type:String,default:null}},emits:["select"],setup(s,{emit:t}){const e=s;k(null);const{t:I}=F(),c=k(null),S=K(),d=Q(),y=R(),_=L(()=>c.value?d.notes.filter(function(a){return a.name.toLowerCase().indexOf(c.value.toLowerCase())!==-1}):d.notes);async function V(){await d.fetchNotes({filter:{},orderByField:"",orderBy:"",type:e.type?e.type:""})}function z(a,u){t("select",x({},d.notes[a])),c.value=null,u()}function j(){S.openModal({title:I("settings.customization.notes.add_note"),componentName:"NoteModal",size:"lg",data:e.type})}return(a,u)=>{const v=w("BaseIcon"),M=w("BaseInput");return l(),i(C,null,[r(X),n("div",Y,[r(o(J),null,{default:p(({isOpen:$})=>[o(y).hasAbilities(o(B).VIEW_NOTE)?(l(),O(o(G),{key:0,class:U([$?"":"text-opacity-90","flex items-center z-10 font-medium text-primary-400 focus:outline-none focus:border-none"]),onClick:V},{default:p(()=>[r(v,{name:"PlusIcon",class:"w-4 h-4 font-medium text-primary-400"}),D(" "+m(a.$t("general.insert_note")),1)]),_:2},1032,["class"])):N("",!0),r(H,{"enter-active-class":"transition duration-200 ease-out","enter-from-class":"translate-y-1 opacity-0","enter-to-class":"translate-y-0 opacity-100","leave-active-class":"transition duration-150 ease-in","leave-from-class":"translate-y-0 opacity-100","leave-to-class":"translate-y-1 opacity-0"},{default:p(()=>[r(o(W),{class:"absolute z-20 px-4 mt-3 transform sm:px-0 w-screen max-w-full left-0 top-3"},{default:p(({close:A})=>[n("div",Z,[n("div",ee,[n("div",te,[r(M,{modelValue:c.value,"onUpdate:modelValue":u[0]||(u[0]=f=>c.value=f),placeholder:a.$t("general.search"),type:"text",class:"text-black"},null,8,["modelValue","placeholder"])]),o(_).length>0?(l(),i("div",se,[(l(!0),i(C,null,q(o(_),(f,h)=>(l(),i("div",{key:h,tabindex:"2",class:"px-6 py-4 border-b border-gray-200 border-solid cursor-pointer hover:bg-gray-100 hover:cursor-pointer last:border-b-0",onClick:ce=>z(h,A)},[n("div",ae,[n("label",ne,m(f.name),1)])],8,oe))),128))])):(l(),i("div",le,[n("label",re,m(a.$t("general.no_note_found")),1)]))]),o(y).hasAbilities(o(B).MANAGE_NOTE)?(l(),i("button",{key:0,type:"button",class:"h-10 flex items-center justify-center w-full px-2 py-3 bg-gray-200 border-none outline-none",onClick:j},[r(v,{name:"CheckCircleIcon",class:"text-primary-400"}),n("label",ie,m(a.$t("settings.customization.notes.add_new_note")),1)])):N("",!0)])]),_:1})]),_:1})]),_:1})])],64)}}};export{fe as _};

View File

@@ -1 +1 @@
import{g as O,i as h,j as T,k as C,m as p,n as B,a2 as x,q as X,r as d,o as _,s as V,w as l,t as v,v as f,x as $,y as e,b as a,c as E,A as N}from"./vendor.e9042f2c.js";import{g as H,j as J,u as K,c as Q,v as W}from"./main.9d655092.js";const Y={class:"flex justify-between w-full"},Z={key:0,action:""},ee={class:"px-8 py-8 sm:p-6"},te={class:"z-0 flex justify-end p-4 border-t border-gray-200 border-solid"},ae={key:1},oe={class:"my-6 mx-4 border border-gray-200 relative"},se=f(" Edit "),re=["src"],le={class:"z-0 flex justify-end p-4 border-t border-gray-200 border-solid"},de={setup(ne){const m=H(),M=J(),U=K(),k=Q();W();const{t:u}=O(),n=h(!1),I=h(""),b=h(!1),P=h(["customer","customerCustom","estimate","estimateCustom","company"]);let o=T({id:null,from:null,to:null,subject:"New Estimate",body:null});const D=C(()=>m.active&&m.componentName==="SendEstimateModal"),q=C(()=>m.data),G={from:{required:p.withMessage(u("validation.required"),B),email:p.withMessage(u("validation.email_incorrect"),x)},to:{required:p.withMessage(u("validation.required"),B),email:p.withMessage(u("validation.email_incorrect"),x)},subject:{required:p.withMessage(u("validation.required"),B)},body:{required:p.withMessage(u("validation.required"),B)}},s=X(G,C(()=>o));function A(){b.value=!1}async function F(){let r=await k.fetchBasicMailConfig();o.id=m.id,r.data&&(o.from=r.data.from_mail),q.value&&(o.to=q.value.customer.email),o.body=k.selectedCompanySettings.estimate_mail_body}async function S(){if(s.value.$touch(),s.value.$invalid)return!0;try{if(n.value=!0,!b.value){const c=await M.previewEstimate(o);n.value=!1,b.value=!0;var r=new Blob([c.data],{type:"text/html"});I.value=URL.createObjectURL(r);return}const t=await M.sendEstimate(o);if(n.value=!1,t.data.success)return y(),!0}catch(t){console.error(t),n.value=!1,U.showNotification({type:"error",message:u("estimates.something_went_wrong")})}}function y(){m.closeModal(),setTimeout(()=>{s.value.$reset(),b.value=!1,I.value=null},300)}return(r,t)=>{const c=d("BaseIcon"),j=d("BaseInput"),w=d("BaseInputGroup"),L=d("BaseCustomInput"),R=d("BaseInputGrid"),g=d("BaseButton"),z=d("BaseModal");return _(),V(z,{show:e(D),onClose:y,onOpen:F},{header:l(()=>[v("div",Y,[f($(e(m).title)+" ",1),a(c,{name:"XIcon",class:"h-6 w-6 text-gray-500 cursor-pointer",onClick:y})])]),default:l(()=>[b.value?(_(),E("div",ae,[v("div",oe,[a(g,{class:"absolute top-4 right-4",disabled:n.value,variant:"primary-outline",onClick:A},{default:l(()=>[a(c,{name:"PencilIcon",class:"h-5 mr-2"}),se]),_:1},8,["disabled"]),v("iframe",{src:I.value,frameborder:"0",class:"w-full",style:{"min-height":"500px"}},null,8,re)]),v("div",le,[a(g,{class:"mr-3",variant:"primary-outline",type:"button",onClick:y},{default:l(()=>[f($(r.$t("general.cancel")),1)]),_:1}),a(g,{loading:n.value,disabled:n.value,variant:"primary",type:"button",onClick:S},{default:l(()=>[n.value?N("",!0):(_(),V(c,{key:0,name:"PaperAirplaneIcon",class:"mr-2"})),f(" "+$(r.$t("general.send")),1)]),_:1},8,["loading","disabled"])])])):(_(),E("form",Z,[v("div",ee,[a(R,{layout:"one-column"},{default:l(()=>[a(w,{label:r.$t("general.from"),required:"",error:e(s).from.$error&&e(s).from.$errors[0].$message},{default:l(()=>[a(j,{modelValue:e(o).from,"onUpdate:modelValue":t[0]||(t[0]=i=>e(o).from=i),type:"text",invalid:e(s).from.$error,onInput:t[1]||(t[1]=i=>e(s).from.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["label","error"]),a(w,{label:r.$t("general.to"),required:"",error:e(s).to.$error&&e(s).to.$errors[0].$message},{default:l(()=>[a(j,{modelValue:e(o).to,"onUpdate:modelValue":t[2]||(t[2]=i=>e(o).to=i),type:"text",invalid:e(s).to.$error,onInput:t[3]||(t[3]=i=>e(s).to.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["label","error"]),a(w,{label:r.$t("general.subject"),required:"",error:e(s).subject.$error&&e(s).subject.$errors[0].$message},{default:l(()=>[a(j,{modelValue:e(o).subject,"onUpdate:modelValue":t[4]||(t[4]=i=>e(o).subject=i),type:"text",invalid:e(s).subject.$error,onInput:t[5]||(t[5]=i=>e(s).subject.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["label","error"]),a(w,{label:r.$t("general.body"),required:""},{default:l(()=>[a(L,{modelValue:e(o).body,"onUpdate:modelValue":t[6]||(t[6]=i=>e(o).body=i),fields:P.value},null,8,["modelValue","fields"])]),_:1},8,["label"])]),_:1})]),v("div",te,[a(g,{class:"mr-3",variant:"primary-outline",type:"button",onClick:y},{default:l(()=>[f($(r.$t("general.cancel")),1)]),_:1}),a(g,{loading:n.value,disabled:n.value,variant:"primary",type:"button",class:"mr-3",onClick:S},{default:l(()=>[n.value?N("",!0):(_(),V(c,{key:0,name:"PhotographIcon",class:"h-5 mr-2"})),f(" "+$(r.$t("general.preview")),1)]),_:1},8,["loading","disabled"])])]))]),_:1},8,["show"])}}};export{de as _}; import{g as O,i as h,j as T,k as C,m as p,n as B,a2 as x,q as X,r as d,o as _,s as V,w as l,t as v,v as f,x as $,y as e,b as a,c as E,A as N}from"./vendor.e9042f2c.js";import{g as H,j as J,u as K,c as Q,v as W}from"./main.f55cd568.js";const Y={class:"flex justify-between w-full"},Z={key:0,action:""},ee={class:"px-8 py-8 sm:p-6"},te={class:"z-0 flex justify-end p-4 border-t border-gray-200 border-solid"},ae={key:1},oe={class:"my-6 mx-4 border border-gray-200 relative"},se=f(" Edit "),re=["src"],le={class:"z-0 flex justify-end p-4 border-t border-gray-200 border-solid"},de={setup(ne){const m=H(),M=J(),U=K(),k=Q();W();const{t:u}=O(),n=h(!1),I=h(""),b=h(!1),P=h(["customer","customerCustom","estimate","estimateCustom","company"]);let o=T({id:null,from:null,to:null,subject:"New Estimate",body:null});const D=C(()=>m.active&&m.componentName==="SendEstimateModal"),q=C(()=>m.data),G={from:{required:p.withMessage(u("validation.required"),B),email:p.withMessage(u("validation.email_incorrect"),x)},to:{required:p.withMessage(u("validation.required"),B),email:p.withMessage(u("validation.email_incorrect"),x)},subject:{required:p.withMessage(u("validation.required"),B)},body:{required:p.withMessage(u("validation.required"),B)}},s=X(G,C(()=>o));function A(){b.value=!1}async function F(){let r=await k.fetchBasicMailConfig();o.id=m.id,r.data&&(o.from=r.data.from_mail),q.value&&(o.to=q.value.customer.email),o.body=k.selectedCompanySettings.estimate_mail_body}async function S(){if(s.value.$touch(),s.value.$invalid)return!0;try{if(n.value=!0,!b.value){const c=await M.previewEstimate(o);n.value=!1,b.value=!0;var r=new Blob([c.data],{type:"text/html"});I.value=URL.createObjectURL(r);return}const t=await M.sendEstimate(o);if(n.value=!1,t.data.success)return y(),!0}catch(t){console.error(t),n.value=!1,U.showNotification({type:"error",message:u("estimates.something_went_wrong")})}}function y(){m.closeModal(),setTimeout(()=>{s.value.$reset(),b.value=!1,I.value=null},300)}return(r,t)=>{const c=d("BaseIcon"),j=d("BaseInput"),w=d("BaseInputGroup"),L=d("BaseCustomInput"),R=d("BaseInputGrid"),g=d("BaseButton"),z=d("BaseModal");return _(),V(z,{show:e(D),onClose:y,onOpen:F},{header:l(()=>[v("div",Y,[f($(e(m).title)+" ",1),a(c,{name:"XIcon",class:"h-6 w-6 text-gray-500 cursor-pointer",onClick:y})])]),default:l(()=>[b.value?(_(),E("div",ae,[v("div",oe,[a(g,{class:"absolute top-4 right-4",disabled:n.value,variant:"primary-outline",onClick:A},{default:l(()=>[a(c,{name:"PencilIcon",class:"h-5 mr-2"}),se]),_:1},8,["disabled"]),v("iframe",{src:I.value,frameborder:"0",class:"w-full",style:{"min-height":"500px"}},null,8,re)]),v("div",le,[a(g,{class:"mr-3",variant:"primary-outline",type:"button",onClick:y},{default:l(()=>[f($(r.$t("general.cancel")),1)]),_:1}),a(g,{loading:n.value,disabled:n.value,variant:"primary",type:"button",onClick:S},{default:l(()=>[n.value?N("",!0):(_(),V(c,{key:0,name:"PaperAirplaneIcon",class:"mr-2"})),f(" "+$(r.$t("general.send")),1)]),_:1},8,["loading","disabled"])])])):(_(),E("form",Z,[v("div",ee,[a(R,{layout:"one-column"},{default:l(()=>[a(w,{label:r.$t("general.from"),required:"",error:e(s).from.$error&&e(s).from.$errors[0].$message},{default:l(()=>[a(j,{modelValue:e(o).from,"onUpdate:modelValue":t[0]||(t[0]=i=>e(o).from=i),type:"text",invalid:e(s).from.$error,onInput:t[1]||(t[1]=i=>e(s).from.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["label","error"]),a(w,{label:r.$t("general.to"),required:"",error:e(s).to.$error&&e(s).to.$errors[0].$message},{default:l(()=>[a(j,{modelValue:e(o).to,"onUpdate:modelValue":t[2]||(t[2]=i=>e(o).to=i),type:"text",invalid:e(s).to.$error,onInput:t[3]||(t[3]=i=>e(s).to.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["label","error"]),a(w,{label:r.$t("general.subject"),required:"",error:e(s).subject.$error&&e(s).subject.$errors[0].$message},{default:l(()=>[a(j,{modelValue:e(o).subject,"onUpdate:modelValue":t[4]||(t[4]=i=>e(o).subject=i),type:"text",invalid:e(s).subject.$error,onInput:t[5]||(t[5]=i=>e(s).subject.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["label","error"]),a(w,{label:r.$t("general.body"),required:""},{default:l(()=>[a(L,{modelValue:e(o).body,"onUpdate:modelValue":t[6]||(t[6]=i=>e(o).body=i),fields:P.value},null,8,["modelValue","fields"])]),_:1},8,["label"])]),_:1})]),v("div",te,[a(g,{class:"mr-3",variant:"primary-outline",type:"button",onClick:y},{default:l(()=>[f($(r.$t("general.cancel")),1)]),_:1}),a(g,{loading:n.value,disabled:n.value,variant:"primary",type:"button",class:"mr-3",onClick:S},{default:l(()=>[n.value?N("",!0):(_(),V(c,{key:0,name:"PhotographIcon",class:"h-5 mr-2"})),f(" "+$(r.$t("general.preview")),1)]),_:1},8,["loading","disabled"])])]))]),_:1},8,["show"])}}};export{de as _};

View File

@@ -1 +1 @@
import{g as O,c as X,u as H,f as J,v as K}from"./main.9d655092.js";import{g as Q,i as I,j as W,k as B,m as v,n as h,a2 as x,q as Y,r as d,o as _,s as j,w as l,t as p,v as f,x as $,y as e,b as a,c as N,z as Z,A as U}from"./vendor.e9042f2c.js";const ee={class:"flex justify-between w-full"},oe={key:0,action:""},te={class:"px-8 py-8 sm:p-6"},ae={class:"z-0 flex justify-end p-4 border-t border-gray-200 border-solid"},re={key:1},se={class:"my-6 mx-4 border border-gray-200 relative"},ne=f(" Edit "),le=["src"],ie={class:"z-0 flex justify-end p-4 border-t border-gray-200 border-solid"},me={setup(ue){const c=O(),M=X(),P=H(),k=J();K();const{t:u}=Q();let i=I(!1);const C=I(""),b=I(!1),z=I(["customer","customerCustom","invoice","invoiceCustom","company"]),r=W({id:null,from:null,to:null,subject:"New Invoice",body:null}),D=B(()=>c.active&&c.componentName==="SendInvoiceModal"),G=B(()=>c.title),q=B(()=>c.data),A={from:{required:v.withMessage(u("validation.required"),h),email:v.withMessage(u("validation.email_incorrect"),x)},to:{required:v.withMessage(u("validation.required"),h),email:v.withMessage(u("validation.email_incorrect"),x)},subject:{required:v.withMessage(u("validation.required"),h)},body:{required:v.withMessage(u("validation.required"),h)}},t=Y(A,B(()=>r));function F(){b.value=!1}async function L(){let s=await M.fetchBasicMailConfig();r.id=c.id,s.data&&(r.from=s.data.from_mail),q.value&&(r.to=q.value.customer.email),r.body=M.selectedCompanySettings.invoice_mail_body}async function S(){if(t.value.$touch(),t.value.$invalid)return!0;try{if(i.value=!0,!b.value){const m=await k.previewInvoice(r);i.value=!1,b.value=!0;var s=new Blob([m.data],{type:"text/html"});C.value=URL.createObjectURL(s);return}if((await k.sendInvoice(r)).data.success)return y(),!0}catch(o){console.error(o),i.value=!1,P.showNotification({type:"error",message:u("invoices.something_went_wrong")})}}function y(){c.closeModal(),setTimeout(()=>{t.value.$reset(),b.value=!1,C.value=null},300)}return(s,o)=>{const m=d("BaseIcon"),V=d("BaseInput"),w=d("BaseInputGroup"),R=d("BaseCustomInput"),T=d("BaseInputGrid"),g=d("BaseButton"),E=d("BaseModal");return _(),j(E,{show:e(D),onClose:y,onOpen:L},{header:l(()=>[p("div",ee,[f($(e(G))+" ",1),a(m,{name:"XIcon",class:"w-6 h-6 text-gray-500 cursor-pointer",onClick:y})])]),default:l(()=>[b.value?(_(),N("div",re,[p("div",se,[a(g,{class:"absolute top-4 right-4",disabled:e(i),variant:"primary-outline",onClick:F},{default:l(()=>[a(m,{name:"PencilIcon",class:"h-5 mr-2"}),ne]),_:1},8,["disabled"]),p("iframe",{src:C.value,frameborder:"0",class:"w-full",style:{"min-height":"500px"}},null,8,le)]),p("div",ie,[a(g,{class:"mr-3",variant:"primary-outline",type:"button",onClick:y},{default:l(()=>[f($(s.$t("general.cancel")),1)]),_:1}),a(g,{loading:e(i),disabled:e(i),variant:"primary",type:"button",onClick:o[7]||(o[7]=n=>S())},{default:l(()=>[e(i)?U("",!0):(_(),j(m,{key:0,name:"PaperAirplaneIcon",class:"h-5 mr-2"})),f(" "+$(s.$t("general.send")),1)]),_:1},8,["loading","disabled"])])])):(_(),N("form",oe,[p("div",te,[a(T,{layout:"one-column",class:"col-span-7"},{default:l(()=>[a(w,{label:s.$t("general.from"),required:"",error:e(t).from.$error&&e(t).from.$errors[0].$message},{default:l(()=>[a(V,{modelValue:e(r).from,"onUpdate:modelValue":o[0]||(o[0]=n=>e(r).from=n),type:"text",invalid:e(t).from.$error,onInput:o[1]||(o[1]=n=>e(t).from.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["label","error"]),a(w,{label:s.$t("general.to"),required:"",error:e(t).to.$error&&e(t).to.$errors[0].$message},{default:l(()=>[a(V,{modelValue:e(r).to,"onUpdate:modelValue":o[2]||(o[2]=n=>e(r).to=n),type:"text",invalid:e(t).to.$error,onInput:o[3]||(o[3]=n=>e(t).to.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["label","error"]),a(w,{error:e(t).subject.$error&&e(t).subject.$errors[0].$message,label:s.$t("general.subject"),required:""},{default:l(()=>[a(V,{modelValue:e(r).subject,"onUpdate:modelValue":o[4]||(o[4]=n=>e(r).subject=n),type:"text",invalid:e(t).subject.$error,onInput:o[5]||(o[5]=n=>e(t).subject.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["error","label"]),a(w,{label:s.$t("general.body"),error:e(t).body.$error&&e(t).body.$errors[0].$message,required:""},{default:l(()=>[a(R,{modelValue:e(r).body,"onUpdate:modelValue":o[6]||(o[6]=n=>e(r).body=n),fields:z.value},null,8,["modelValue","fields"])]),_:1},8,["label","error"])]),_:1})]),p("div",ae,[a(g,{class:"mr-3",variant:"primary-outline",type:"button",onClick:y},{default:l(()=>[f($(s.$t("general.cancel")),1)]),_:1}),a(g,{loading:e(i),disabled:e(i),variant:"primary",type:"button",class:"mr-3",onClick:S},{left:l(n=>[e(i)?U("",!0):(_(),j(m,{key:0,class:Z(n.class),name:"PhotographIcon"},null,8,["class"]))]),default:l(()=>[f(" "+$(s.$t("general.preview")),1)]),_:1},8,["loading","disabled"])])]))]),_:1},8,["show"])}}};export{me as _}; import{g as O,c as X,u as H,f as J,v as K}from"./main.f55cd568.js";import{g as Q,i as I,j as W,k as B,m as v,n as h,a2 as x,q as Y,r as d,o as _,s as j,w as l,t as p,v as f,x as $,y as e,b as a,c as N,z as Z,A as U}from"./vendor.e9042f2c.js";const ee={class:"flex justify-between w-full"},oe={key:0,action:""},te={class:"px-8 py-8 sm:p-6"},ae={class:"z-0 flex justify-end p-4 border-t border-gray-200 border-solid"},re={key:1},se={class:"my-6 mx-4 border border-gray-200 relative"},ne=f(" Edit "),le=["src"],ie={class:"z-0 flex justify-end p-4 border-t border-gray-200 border-solid"},me={setup(ue){const c=O(),M=X(),P=H(),k=J();K();const{t:u}=Q();let i=I(!1);const C=I(""),b=I(!1),z=I(["customer","customerCustom","invoice","invoiceCustom","company"]),r=W({id:null,from:null,to:null,subject:"New Invoice",body:null}),D=B(()=>c.active&&c.componentName==="SendInvoiceModal"),G=B(()=>c.title),q=B(()=>c.data),A={from:{required:v.withMessage(u("validation.required"),h),email:v.withMessage(u("validation.email_incorrect"),x)},to:{required:v.withMessage(u("validation.required"),h),email:v.withMessage(u("validation.email_incorrect"),x)},subject:{required:v.withMessage(u("validation.required"),h)},body:{required:v.withMessage(u("validation.required"),h)}},t=Y(A,B(()=>r));function F(){b.value=!1}async function L(){let s=await M.fetchBasicMailConfig();r.id=c.id,s.data&&(r.from=s.data.from_mail),q.value&&(r.to=q.value.customer.email),r.body=M.selectedCompanySettings.invoice_mail_body}async function S(){if(t.value.$touch(),t.value.$invalid)return!0;try{if(i.value=!0,!b.value){const m=await k.previewInvoice(r);i.value=!1,b.value=!0;var s=new Blob([m.data],{type:"text/html"});C.value=URL.createObjectURL(s);return}if((await k.sendInvoice(r)).data.success)return y(),!0}catch(o){console.error(o),i.value=!1,P.showNotification({type:"error",message:u("invoices.something_went_wrong")})}}function y(){c.closeModal(),setTimeout(()=>{t.value.$reset(),b.value=!1,C.value=null},300)}return(s,o)=>{const m=d("BaseIcon"),V=d("BaseInput"),w=d("BaseInputGroup"),R=d("BaseCustomInput"),T=d("BaseInputGrid"),g=d("BaseButton"),E=d("BaseModal");return _(),j(E,{show:e(D),onClose:y,onOpen:L},{header:l(()=>[p("div",ee,[f($(e(G))+" ",1),a(m,{name:"XIcon",class:"w-6 h-6 text-gray-500 cursor-pointer",onClick:y})])]),default:l(()=>[b.value?(_(),N("div",re,[p("div",se,[a(g,{class:"absolute top-4 right-4",disabled:e(i),variant:"primary-outline",onClick:F},{default:l(()=>[a(m,{name:"PencilIcon",class:"h-5 mr-2"}),ne]),_:1},8,["disabled"]),p("iframe",{src:C.value,frameborder:"0",class:"w-full",style:{"min-height":"500px"}},null,8,le)]),p("div",ie,[a(g,{class:"mr-3",variant:"primary-outline",type:"button",onClick:y},{default:l(()=>[f($(s.$t("general.cancel")),1)]),_:1}),a(g,{loading:e(i),disabled:e(i),variant:"primary",type:"button",onClick:o[7]||(o[7]=n=>S())},{default:l(()=>[e(i)?U("",!0):(_(),j(m,{key:0,name:"PaperAirplaneIcon",class:"h-5 mr-2"})),f(" "+$(s.$t("general.send")),1)]),_:1},8,["loading","disabled"])])])):(_(),N("form",oe,[p("div",te,[a(T,{layout:"one-column",class:"col-span-7"},{default:l(()=>[a(w,{label:s.$t("general.from"),required:"",error:e(t).from.$error&&e(t).from.$errors[0].$message},{default:l(()=>[a(V,{modelValue:e(r).from,"onUpdate:modelValue":o[0]||(o[0]=n=>e(r).from=n),type:"text",invalid:e(t).from.$error,onInput:o[1]||(o[1]=n=>e(t).from.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["label","error"]),a(w,{label:s.$t("general.to"),required:"",error:e(t).to.$error&&e(t).to.$errors[0].$message},{default:l(()=>[a(V,{modelValue:e(r).to,"onUpdate:modelValue":o[2]||(o[2]=n=>e(r).to=n),type:"text",invalid:e(t).to.$error,onInput:o[3]||(o[3]=n=>e(t).to.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["label","error"]),a(w,{error:e(t).subject.$error&&e(t).subject.$errors[0].$message,label:s.$t("general.subject"),required:""},{default:l(()=>[a(V,{modelValue:e(r).subject,"onUpdate:modelValue":o[4]||(o[4]=n=>e(r).subject=n),type:"text",invalid:e(t).subject.$error,onInput:o[5]||(o[5]=n=>e(t).subject.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["error","label"]),a(w,{label:s.$t("general.body"),error:e(t).body.$error&&e(t).body.$errors[0].$message,required:""},{default:l(()=>[a(R,{modelValue:e(r).body,"onUpdate:modelValue":o[6]||(o[6]=n=>e(r).body=n),fields:z.value},null,8,["modelValue","fields"])]),_:1},8,["label","error"])]),_:1})]),p("div",ae,[a(g,{class:"mr-3",variant:"primary-outline",type:"button",onClick:y},{default:l(()=>[f($(s.$t("general.cancel")),1)]),_:1}),a(g,{loading:e(i),disabled:e(i),variant:"primary",type:"button",class:"mr-3",onClick:S},{left:l(n=>[e(i)?U("",!0):(_(),j(m,{key:0,class:Z(n.class),name:"PhotographIcon"},null,8,["class"]))]),default:l(()=>[f(" "+$(s.$t("general.preview")),1)]),_:1},8,["loading","disabled"])])]))]),_:1},8,["show"])}}};export{me as _};

View File

@@ -1 +1 @@
import{o as i,c as f,W as b,k as g,r as n,s as B,w as c,A as M,t as d,x as P,$ as R,g as j,i as N,u as H,C as q,ac as A,b as a,y as h,a0 as E,H as F,F as O}from"./vendor.e9042f2c.js";import{_ as k,m as U}from"./main.9d655092.js";const D={name:"List"},G={class:"list-none"};function T(o,u,t,s,l,p){return i(),f("div",G,[b(o.$slots,"default")])}var W=k(D,[["render",T]]);const z={name:"ListItem",props:{title:{type:String,required:!1,default:""},active:{type:Boolean,required:!0},index:{type:Number,default:null}},setup(o,{slots:u}){const t="cursor-pointer pb-2 pr-0 text-sm font-medium leading-5 flex items-center";let s=g(()=>!!u.icon),l=g(()=>o.active?`${t} text-primary-500`:`${t} text-gray-500`);return{hasIconSlot:s,containerClass:l}}},J={key:0,class:"mr-3"};function K(o,u,t,s,l,p){const m=n("router-link");return i(),B(m,R(o.$attrs,{class:s.containerClass}),{default:c(()=>[s.hasIconSlot?(i(),f("span",J,[b(o.$slots,"icon")])):M("",!0),d("span",null,P(t.title),1)]),_:3},16,["class"])}var Q=k(z,[["render",K]]);const X={class:"w-full mb-6 select-wrapper xl:hidden"},Y={class:"flex"},Z={class:"hidden mt-1 xl:block min-w-[240px]"},ee={class:"w-full overflow-hidden"},ne={setup(o){const{t:u}=j();let t=N({});const s=U(),l=H(),p=q(),m=g(()=>s.settingMenu.map(e=>Object.assign({},e,{title:u(e.title)})));A(()=>{l.path==="/admin/settings"&&p.push("/admin/settings/account-settings");const e=m.value.find(_=>_.link===l.path);t.value=e});function w(e){return l.path.indexOf(e)>-1}function x(e){return p.push(e.link)}return(e,_)=>{const v=n("BaseBreadcrumbItem"),y=n("BaseBreadcrumb"),S=n("BasePageHeader"),V=n("BaseMultiselect"),C=n("BaseIcon"),I=n("RouterView"),L=n("BasePage");return i(),B(L,null,{default:c(()=>[a(S,{title:e.$tc("settings.setting",1),class:"mb-6"},{default:c(()=>[a(y,null,{default:c(()=>[a(v,{title:e.$t("general.home"),to:"/admin/dashboard"},null,8,["title"]),a(v,{title:e.$tc("settings.setting",2),to:"/admin/settings/account-settings",active:""},null,8,["title"])]),_:1})]),_:1},8,["title"]),d("div",X,[a(V,{modelValue:h(t),"onUpdate:modelValue":[_[0]||(_[0]=r=>E(t)?t.value=r:t=r),x],options:h(m),"can-deselect":!1,"value-prop":"title","track-by":"title",label:"title",object:""},null,8,["modelValue","options"])]),d("div",Y,[d("div",Z,[a(W,null,{default:c(()=>[(i(!0),f(O,null,F(h(s).settingMenu,(r,$)=>(i(),B(Q,{key:$,title:e.$t(r.title),to:r.link,active:w(r.link),index:$,class:"py-3"},{icon:c(()=>[a(C,{name:r.icon},null,8,["name"])]),_:2},1032,["title","to","active","index"]))),128))]),_:1})]),d("div",ee,[a(I)])])]),_:1})}}};export{ne as default}; import{o as i,c as f,W as b,k as g,r as n,s as B,w as c,A as M,t as d,x as P,$ as R,g as j,i as N,u as H,C as q,ac as A,b as a,y as h,a0 as E,H as F,F as O}from"./vendor.e9042f2c.js";import{_ as k,m as U}from"./main.f55cd568.js";const D={name:"List"},G={class:"list-none"};function T(o,u,t,s,l,p){return i(),f("div",G,[b(o.$slots,"default")])}var W=k(D,[["render",T]]);const z={name:"ListItem",props:{title:{type:String,required:!1,default:""},active:{type:Boolean,required:!0},index:{type:Number,default:null}},setup(o,{slots:u}){const t="cursor-pointer pb-2 pr-0 text-sm font-medium leading-5 flex items-center";let s=g(()=>!!u.icon),l=g(()=>o.active?`${t} text-primary-500`:`${t} text-gray-500`);return{hasIconSlot:s,containerClass:l}}},J={key:0,class:"mr-3"};function K(o,u,t,s,l,p){const m=n("router-link");return i(),B(m,R(o.$attrs,{class:s.containerClass}),{default:c(()=>[s.hasIconSlot?(i(),f("span",J,[b(o.$slots,"icon")])):M("",!0),d("span",null,P(t.title),1)]),_:3},16,["class"])}var Q=k(z,[["render",K]]);const X={class:"w-full mb-6 select-wrapper xl:hidden"},Y={class:"flex"},Z={class:"hidden mt-1 xl:block min-w-[240px]"},ee={class:"w-full overflow-hidden"},ne={setup(o){const{t:u}=j();let t=N({});const s=U(),l=H(),p=q(),m=g(()=>s.settingMenu.map(e=>Object.assign({},e,{title:u(e.title)})));A(()=>{l.path==="/admin/settings"&&p.push("/admin/settings/account-settings");const e=m.value.find(_=>_.link===l.path);t.value=e});function w(e){return l.path.indexOf(e)>-1}function x(e){return p.push(e.link)}return(e,_)=>{const v=n("BaseBreadcrumbItem"),y=n("BaseBreadcrumb"),S=n("BasePageHeader"),V=n("BaseMultiselect"),C=n("BaseIcon"),I=n("RouterView"),L=n("BasePage");return i(),B(L,null,{default:c(()=>[a(S,{title:e.$tc("settings.setting",1),class:"mb-6"},{default:c(()=>[a(y,null,{default:c(()=>[a(v,{title:e.$t("general.home"),to:"/admin/dashboard"},null,8,["title"]),a(v,{title:e.$tc("settings.setting",2),to:"/admin/settings/account-settings",active:""},null,8,["title"])]),_:1})]),_:1},8,["title"]),d("div",X,[a(V,{modelValue:h(t),"onUpdate:modelValue":[_[0]||(_[0]=r=>E(t)?t.value=r:t=r),x],options:h(m),"can-deselect":!1,"value-prop":"title","track-by":"title",label:"title",object:""},null,8,["modelValue","options"])]),d("div",Y,[d("div",Z,[a(W,null,{default:c(()=>[(i(!0),f(O,null,F(h(s).settingMenu,(r,$)=>(i(),B(Q,{key:$,title:e.$t(r.title),to:r.link,active:w(r.link),index:$,class:"py-3"},{icon:c(()=>[a(C,{name:r.icon},null,8,["name"])]),_:2},1032,["title","to","active","index"]))),128))]),_:1})]),d("div",ee,[a(I)])])]),_:1})}}};export{ne as default};

View File

@@ -1 +1 @@
import{g as k,i as z,k as $,m as c,n as b,p as N,aZ as j,a4 as D,q as G,r as i,o as g,s as B,w as l,t as y,v as x,x as v,y as e,b as o,z as L,A as U,B as E}from"./vendor.e9042f2c.js";import{q as A,g as X,u as Z,j as F}from"./main.9d655092.js";const H={class:"flex justify-between w-full"},J=["onSubmit"],K={class:"p-4 sm:p-6"},O={class:"z-0 flex justify-end p-4 border-t border-solid border--200 border-modal-bg"},Y={setup(P){const a=A(),u=X();Z(),F();const{t:p,tm:Q}=k();let d=z(!1);const h=$(()=>({currentTaxType:{name:{required:c.withMessage(p("validation.required"),b),minLength:c.withMessage(p("validation.name_min_length",{count:3}),N(3))},percent:{required:c.withMessage(p("validation.required"),b),between:c.withMessage(p("validation.enter_valid_tax_rate"),j(0,100))},description:{maxLength:c.withMessage(p("validation.description_maxlength",{count:255}),D(255))}}})),r=G(h,$(()=>a));async function w(){if(r.value.currentTaxType.$touch(),r.value.currentTaxType.$invalid)return!0;try{const s=a.isEdit?a.updateTaxType:a.addTaxType;d.value=!0;let t=await s(a.currentTaxType);d.value=!1,u.refreshData&&u.refreshData(t.data.data),m()}catch{return d.value=!1,!0}}function m(){u.closeModal(),setTimeout(()=>{a.resetCurrentTaxType(),r.value.$reset()},300)}return(s,t)=>{const f=i("BaseIcon"),V=i("BaseInput"),T=i("BaseInputGroup"),I=i("BaseMoney"),M=i("BaseTextarea"),S=i("BaseSwitch"),q=i("BaseInputGrid"),_=i("BaseButton"),C=i("BaseModal");return g(),B(C,{show:e(u).active&&e(u).componentName==="TaxTypeModal",onClose:m},{header:l(()=>[y("div",H,[x(v(e(u).title)+" ",1),o(f,{name:"XIcon",class:"h-6 w-6 text-gray-500 cursor-pointer",onClick:m})])]),default:l(()=>[y("form",{action:"",onSubmit:E(w,["prevent"])},[y("div",K,[o(q,{layout:"one-column"},{default:l(()=>[o(T,{label:s.$t("tax_types.name"),variant:"horizontal",error:e(r).currentTaxType.name.$error&&e(r).currentTaxType.name.$errors[0].$message,required:""},{default:l(()=>[o(V,{modelValue:e(a).currentTaxType.name,"onUpdate:modelValue":t[0]||(t[0]=n=>e(a).currentTaxType.name=n),invalid:e(r).currentTaxType.name.$error,type:"text",onInput:t[1]||(t[1]=n=>e(r).currentTaxType.name.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["label","error"]),o(T,{label:s.$t("tax_types.percent"),variant:"horizontal",error:e(r).currentTaxType.percent.$error&&e(r).currentTaxType.percent.$errors[0].$message,required:""},{default:l(()=>[o(I,{modelValue:e(a).currentTaxType.percent,"onUpdate:modelValue":t[2]||(t[2]=n=>e(a).currentTaxType.percent=n),currency:{decimal:".",thousands:",",symbol:"% ",precision:2,masked:!1},invalid:e(r).currentTaxType.percent.$error,class:"relative w-full focus:border focus:border-solid focus:border-primary",onInput:t[3]||(t[3]=n=>e(r).currentTaxType.percent.$touch())},null,8,["modelValue","currency","invalid"])]),_:1},8,["label","error"]),o(T,{label:s.$t("tax_types.description"),error:e(r).currentTaxType.description.$error&&e(r).currentTaxType.description.$errors[0].$message,variant:"horizontal"},{default:l(()=>[o(M,{modelValue:e(a).currentTaxType.description,"onUpdate:modelValue":t[4]||(t[4]=n=>e(a).currentTaxType.description=n),invalid:e(r).currentTaxType.description.$error,rows:"4",cols:"50",onInput:t[5]||(t[5]=n=>e(r).currentTaxType.description.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["label","error"]),o(T,{label:s.$t("tax_types.compound_tax"),variant:"horizontal",class:"flex flex-row-reverse"},{default:l(()=>[o(S,{modelValue:e(a).currentTaxType.compound_tax,"onUpdate:modelValue":t[6]||(t[6]=n=>e(a).currentTaxType.compound_tax=n),class:"flex items-center"},null,8,["modelValue"])]),_:1},8,["label"])]),_:1})]),y("div",O,[o(_,{class:"mr-3 text-sm",variant:"primary-outline",type:"button",onClick:m},{default:l(()=>[x(v(s.$t("general.cancel")),1)]),_:1}),o(_,{loading:e(d),disabled:e(d),variant:"primary",type:"submit"},{left:l(n=>[e(d)?U("",!0):(g(),B(f,{key:0,name:"SaveIcon",class:L(n.class)},null,8,["class"]))]),default:l(()=>[x(" "+v(e(a).isEdit?s.$t("general.update"):s.$t("general.save")),1)]),_:1},8,["loading","disabled"])])],40,J)]),_:1},8,["show"])}}};export{Y as _}; import{g as k,i as z,k as $,m as c,n as b,p as N,aZ as j,a4 as D,q as G,r as i,o as g,s as B,w as l,t as y,v as x,x as v,y as e,b as o,z as L,A as U,B as E}from"./vendor.e9042f2c.js";import{q as A,g as X,u as Z,j as F}from"./main.f55cd568.js";const H={class:"flex justify-between w-full"},J=["onSubmit"],K={class:"p-4 sm:p-6"},O={class:"z-0 flex justify-end p-4 border-t border-solid border--200 border-modal-bg"},Y={setup(P){const a=A(),u=X();Z(),F();const{t:p,tm:Q}=k();let d=z(!1);const h=$(()=>({currentTaxType:{name:{required:c.withMessage(p("validation.required"),b),minLength:c.withMessage(p("validation.name_min_length",{count:3}),N(3))},percent:{required:c.withMessage(p("validation.required"),b),between:c.withMessage(p("validation.enter_valid_tax_rate"),j(0,100))},description:{maxLength:c.withMessage(p("validation.description_maxlength",{count:255}),D(255))}}})),r=G(h,$(()=>a));async function w(){if(r.value.currentTaxType.$touch(),r.value.currentTaxType.$invalid)return!0;try{const s=a.isEdit?a.updateTaxType:a.addTaxType;d.value=!0;let t=await s(a.currentTaxType);d.value=!1,u.refreshData&&u.refreshData(t.data.data),m()}catch{return d.value=!1,!0}}function m(){u.closeModal(),setTimeout(()=>{a.resetCurrentTaxType(),r.value.$reset()},300)}return(s,t)=>{const f=i("BaseIcon"),V=i("BaseInput"),T=i("BaseInputGroup"),I=i("BaseMoney"),M=i("BaseTextarea"),S=i("BaseSwitch"),q=i("BaseInputGrid"),_=i("BaseButton"),C=i("BaseModal");return g(),B(C,{show:e(u).active&&e(u).componentName==="TaxTypeModal",onClose:m},{header:l(()=>[y("div",H,[x(v(e(u).title)+" ",1),o(f,{name:"XIcon",class:"h-6 w-6 text-gray-500 cursor-pointer",onClick:m})])]),default:l(()=>[y("form",{action:"",onSubmit:E(w,["prevent"])},[y("div",K,[o(q,{layout:"one-column"},{default:l(()=>[o(T,{label:s.$t("tax_types.name"),variant:"horizontal",error:e(r).currentTaxType.name.$error&&e(r).currentTaxType.name.$errors[0].$message,required:""},{default:l(()=>[o(V,{modelValue:e(a).currentTaxType.name,"onUpdate:modelValue":t[0]||(t[0]=n=>e(a).currentTaxType.name=n),invalid:e(r).currentTaxType.name.$error,type:"text",onInput:t[1]||(t[1]=n=>e(r).currentTaxType.name.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["label","error"]),o(T,{label:s.$t("tax_types.percent"),variant:"horizontal",error:e(r).currentTaxType.percent.$error&&e(r).currentTaxType.percent.$errors[0].$message,required:""},{default:l(()=>[o(I,{modelValue:e(a).currentTaxType.percent,"onUpdate:modelValue":t[2]||(t[2]=n=>e(a).currentTaxType.percent=n),currency:{decimal:".",thousands:",",symbol:"% ",precision:2,masked:!1},invalid:e(r).currentTaxType.percent.$error,class:"relative w-full focus:border focus:border-solid focus:border-primary",onInput:t[3]||(t[3]=n=>e(r).currentTaxType.percent.$touch())},null,8,["modelValue","currency","invalid"])]),_:1},8,["label","error"]),o(T,{label:s.$t("tax_types.description"),error:e(r).currentTaxType.description.$error&&e(r).currentTaxType.description.$errors[0].$message,variant:"horizontal"},{default:l(()=>[o(M,{modelValue:e(a).currentTaxType.description,"onUpdate:modelValue":t[4]||(t[4]=n=>e(a).currentTaxType.description=n),invalid:e(r).currentTaxType.description.$error,rows:"4",cols:"50",onInput:t[5]||(t[5]=n=>e(r).currentTaxType.description.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["label","error"]),o(T,{label:s.$t("tax_types.compound_tax"),variant:"horizontal",class:"flex flex-row-reverse"},{default:l(()=>[o(S,{modelValue:e(a).currentTaxType.compound_tax,"onUpdate:modelValue":t[6]||(t[6]=n=>e(a).currentTaxType.compound_tax=n),class:"flex items-center"},null,8,["modelValue"])]),_:1},8,["label"])]),_:1})]),y("div",O,[o(_,{class:"mr-3 text-sm",variant:"primary-outline",type:"button",onClick:m},{default:l(()=>[x(v(s.$t("general.cancel")),1)]),_:1}),o(_,{loading:e(d),disabled:e(d),variant:"primary",type:"submit"},{left:l(n=>[e(d)?U("",!0):(g(),B(f,{key:0,name:"SaveIcon",class:L(n.class)},null,8,["class"]))]),default:l(()=>[x(" "+v(e(a).isEdit?s.$t("general.update"):s.$t("general.save")),1)]),_:1},8,["loading","disabled"])])],40,J)]),_:1},8,["show"])}}};export{Y as _};

View File

@@ -1 +1 @@
import{i as R,u as U,q as A,d as N,g as P,e as x,c as H}from"./main.9d655092.js";import{g as $,u as q,am as Y,r as n,o as m,s as g,w as t,y as s,b as l,v as T,x as B,A as I,i as z,k as M,a5 as j,z as G,c as J,a0 as K}from"./vendor.e9042f2c.js";import{_ as Q}from"./TaxTypeModal.6600475a.js";const W={props:{row:{type:Object,default:null},table:{type:Object,default:null},loadData:{type:Function,default:null}},setup(S){const o=S,b=R();U();const{t:i}=$(),h=A(),C=q(),_=N(),c=P();Y("utils");async function v(r){await h.fetchTaxType(r),c.openModal({title:i("settings.tax_types.edit_tax"),componentName:"TaxTypeModal",size:"sm",refreshData:o.loadData&&o.loadData})}function w(r){b.openDialog({title:i("general.are_you_sure"),message:i("settings.tax_types.confirm_delete"),yesLabel:i("general.ok"),noLabel:i("general.cancel"),variant:"danger",hideNoButton:!1,size:"lg"}).then(async d=>{if(d){if((await h.deleteTaxType(r)).data.success)return o.loadData&&o.loadData(),!0;o.loadData&&o.loadData()}})}return(r,d)=>{const p=n("BaseIcon"),E=n("BaseButton"),D=n("BaseDropdownItem"),a=n("BaseDropdown");return m(),g(a,null,{activator:t(()=>[s(C).name==="tax-types.view"?(m(),g(E,{key:0,variant:"primary"},{default:t(()=>[l(p,{name:"DotsHorizontalIcon",class:"h-5 text-white"})]),_:1})):(m(),g(p,{key:1,name:"DotsHorizontalIcon",class:"h-5 text-gray-500"}))]),default:t(()=>[s(_).hasAbilities(s(x).EDIT_TAX_TYPE)?(m(),g(D,{key:0,onClick:d[0]||(d[0]=u=>v(S.row.id))},{default:t(()=>[l(p,{name:"PencilIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),T(" "+B(r.$t("general.edit")),1)]),_:1})):I("",!0),s(_).hasAbilities(s(x).DELETE_TAX_TYPE)?(m(),g(D,{key:1,onClick:d[1]||(d[1]=u=>w(S.row.id))},{default:t(()=>[l(p,{name:"TrashIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),T(" "+B(r.$t("general.delete")),1)]),_:1})):I("",!0)]),_:1})}}},Z={key:0},se={setup(S){const{t:o}=$(),b=Y("utils"),i=H(),h=A(),C=P(),_=N(),c=z(null),v=z(i.selectedCompanySettings.tax_per_item),w=M(()=>[{key:"name",label:o("settings.tax_types.tax_name"),thClass:"extra",tdClass:"font-medium text-gray-900"},{key:"compound_tax",label:o("settings.tax_types.compound_tax"),tdClass:"font-medium text-gray-900"},{key:"percent",label:o("settings.tax_types.percent"),thClass:"extra",tdClass:"font-medium text-gray-900"},{key:"actions",label:"",tdClass:"text-right text-sm font-medium",sortable:!1}]),r=M({get:()=>v.value==="YES",set:async a=>{const u=a?"YES":"NO";let y={settings:{tax_per_item:u}};v.value=u,await i.updateCompanySettings({data:y,message:"general.setting_updated"})}});function d(){return _.hasAbilities([x.DELETE_TAX_TYPE,x.EDIT_TAX_TYPE])}async function p({page:a,filter:u,sort:y}){let k={orderByField:y.fieldName||"created_at",orderBy:y.order||"desc",page:a},f=await h.fetchTaxTypes(k);return{data:f.data.data,pagination:{totalPages:f.data.meta.last_page,currentPage:a,totalCount:f.data.meta.total,limit:5}}}async function E(){c.value&&c.value.refresh()}function D(){C.openModal({title:o("settings.tax_types.add_tax"),componentName:"TaxTypeModal",size:"sm",refreshData:c.value&&c.value.refresh})}return(a,u)=>{const y=n("BaseIcon"),k=n("BaseButton"),f=n("BaseBadge"),O=n("BaseTable"),V=n("BaseDivider"),X=n("BaseSwitchSection"),L=n("BaseSettingCard");return m(),g(L,{title:a.$t("settings.tax_types.title"),description:a.$t("settings.tax_types.description")},j({default:t(()=>[l(Q),l(O,{ref:(e,F)=>{F.table=e,c.value=e},class:"mt-16",data:p,columns:s(w)},j({"cell-compound_tax":t(({row:e})=>[l(f,{"bg-color":s(b).getBadgeStatusColor(e.data.compound_tax?"YES":"NO").bgColor,color:s(b).getBadgeStatusColor(e.data.compound_tax?"YES":"NO").color},{default:t(()=>[T(B(e.data.compound_tax?"Yes":"No".replace("_"," ")),1)]),_:2},1032,["bg-color","color"])]),"cell-percent":t(({row:e})=>[T(B(e.data.percent)+" % ",1)]),_:2},[d()?{name:"cell-actions",fn:t(({row:e})=>[l(W,{row:e.data,table:c.value,"load-data":E},null,8,["row","table"])])}:void 0]),1032,["columns"]),s(_).currentUser.is_owner?(m(),J("div",Z,[l(V,{class:"mt-8 mb-2"}),l(X,{modelValue:s(r),"onUpdate:modelValue":u[0]||(u[0]=e=>K(r)?r.value=e:null),title:a.$t("settings.tax_types.tax_per_item"),description:a.$t("settings.tax_types.tax_setting_description")},null,8,["modelValue","title","description"])])):I("",!0)]),_:2},[s(_).hasAbilities(s(x).CREATE_TAX_TYPE)?{name:"action",fn:t(()=>[l(k,{type:"submit",variant:"primary-outline",onClick:D},{left:t(e=>[l(y,{class:G(e.class),name:"PlusIcon"},null,8,["class"])]),default:t(()=>[T(" "+B(a.$t("settings.tax_types.add_new_tax")),1)]),_:1})])}:void 0]),1032,["title","description"])}}};export{se as default}; import{i as R,u as U,q as A,d as N,g as P,e as x,c as H}from"./main.f55cd568.js";import{g as $,u as q,am as Y,r as n,o as m,s as g,w as t,y as s,b as l,v as T,x as B,A as I,i as z,k as M,a5 as j,z as G,c as J,a0 as K}from"./vendor.e9042f2c.js";import{_ as Q}from"./TaxTypeModal.2309f47d.js";const W={props:{row:{type:Object,default:null},table:{type:Object,default:null},loadData:{type:Function,default:null}},setup(S){const o=S,b=R();U();const{t:i}=$(),h=A(),C=q(),_=N(),c=P();Y("utils");async function v(r){await h.fetchTaxType(r),c.openModal({title:i("settings.tax_types.edit_tax"),componentName:"TaxTypeModal",size:"sm",refreshData:o.loadData&&o.loadData})}function w(r){b.openDialog({title:i("general.are_you_sure"),message:i("settings.tax_types.confirm_delete"),yesLabel:i("general.ok"),noLabel:i("general.cancel"),variant:"danger",hideNoButton:!1,size:"lg"}).then(async d=>{if(d){if((await h.deleteTaxType(r)).data.success)return o.loadData&&o.loadData(),!0;o.loadData&&o.loadData()}})}return(r,d)=>{const p=n("BaseIcon"),E=n("BaseButton"),D=n("BaseDropdownItem"),a=n("BaseDropdown");return m(),g(a,null,{activator:t(()=>[s(C).name==="tax-types.view"?(m(),g(E,{key:0,variant:"primary"},{default:t(()=>[l(p,{name:"DotsHorizontalIcon",class:"h-5 text-white"})]),_:1})):(m(),g(p,{key:1,name:"DotsHorizontalIcon",class:"h-5 text-gray-500"}))]),default:t(()=>[s(_).hasAbilities(s(x).EDIT_TAX_TYPE)?(m(),g(D,{key:0,onClick:d[0]||(d[0]=u=>v(S.row.id))},{default:t(()=>[l(p,{name:"PencilIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),T(" "+B(r.$t("general.edit")),1)]),_:1})):I("",!0),s(_).hasAbilities(s(x).DELETE_TAX_TYPE)?(m(),g(D,{key:1,onClick:d[1]||(d[1]=u=>w(S.row.id))},{default:t(()=>[l(p,{name:"TrashIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),T(" "+B(r.$t("general.delete")),1)]),_:1})):I("",!0)]),_:1})}}},Z={key:0},se={setup(S){const{t:o}=$(),b=Y("utils"),i=H(),h=A(),C=P(),_=N(),c=z(null),v=z(i.selectedCompanySettings.tax_per_item),w=M(()=>[{key:"name",label:o("settings.tax_types.tax_name"),thClass:"extra",tdClass:"font-medium text-gray-900"},{key:"compound_tax",label:o("settings.tax_types.compound_tax"),tdClass:"font-medium text-gray-900"},{key:"percent",label:o("settings.tax_types.percent"),thClass:"extra",tdClass:"font-medium text-gray-900"},{key:"actions",label:"",tdClass:"text-right text-sm font-medium",sortable:!1}]),r=M({get:()=>v.value==="YES",set:async a=>{const u=a?"YES":"NO";let y={settings:{tax_per_item:u}};v.value=u,await i.updateCompanySettings({data:y,message:"general.setting_updated"})}});function d(){return _.hasAbilities([x.DELETE_TAX_TYPE,x.EDIT_TAX_TYPE])}async function p({page:a,filter:u,sort:y}){let k={orderByField:y.fieldName||"created_at",orderBy:y.order||"desc",page:a},f=await h.fetchTaxTypes(k);return{data:f.data.data,pagination:{totalPages:f.data.meta.last_page,currentPage:a,totalCount:f.data.meta.total,limit:5}}}async function E(){c.value&&c.value.refresh()}function D(){C.openModal({title:o("settings.tax_types.add_tax"),componentName:"TaxTypeModal",size:"sm",refreshData:c.value&&c.value.refresh})}return(a,u)=>{const y=n("BaseIcon"),k=n("BaseButton"),f=n("BaseBadge"),O=n("BaseTable"),V=n("BaseDivider"),X=n("BaseSwitchSection"),L=n("BaseSettingCard");return m(),g(L,{title:a.$t("settings.tax_types.title"),description:a.$t("settings.tax_types.description")},j({default:t(()=>[l(Q),l(O,{ref:(e,F)=>{F.table=e,c.value=e},class:"mt-16",data:p,columns:s(w)},j({"cell-compound_tax":t(({row:e})=>[l(f,{"bg-color":s(b).getBadgeStatusColor(e.data.compound_tax?"YES":"NO").bgColor,color:s(b).getBadgeStatusColor(e.data.compound_tax?"YES":"NO").color},{default:t(()=>[T(B(e.data.compound_tax?"Yes":"No".replace("_"," ")),1)]),_:2},1032,["bg-color","color"])]),"cell-percent":t(({row:e})=>[T(B(e.data.percent)+" % ",1)]),_:2},[d()?{name:"cell-actions",fn:t(({row:e})=>[l(W,{row:e.data,table:c.value,"load-data":E},null,8,["row","table"])])}:void 0]),1032,["columns"]),s(_).currentUser.is_owner?(m(),J("div",Z,[l(V,{class:"mt-8 mb-2"}),l(X,{modelValue:s(r),"onUpdate:modelValue":u[0]||(u[0]=e=>K(r)?r.value=e:null),title:a.$t("settings.tax_types.tax_per_item"),description:a.$t("settings.tax_types.tax_setting_description")},null,8,["modelValue","title","description"])])):I("",!0)]),_:2},[s(_).hasAbilities(s(x).CREATE_TAX_TYPE)?{name:"action",fn:t(()=>[l(k,{type:"submit",variant:"primary-outline",onClick:D},{left:t(e=>[l(y,{class:G(e.class),name:"PlusIcon"},null,8,["class"])]),default:t(()=>[T(" "+B(a.$t("settings.tax_types.add_new_tax")),1)]),_:1})])}:void 0]),1032,["title","description"])}}};export{se as default};

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

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

File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show More