mirror of
https://github.com/crater-invoice/crater.git
synced 2025-10-28 12:11:08 -04:00
Compare commits
51 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 7bba576dca | |||
| 05454af593 | |||
| 74fe481ed5 | |||
| 1cd654b0cc | |||
| f4a4c05b61 | |||
| 24637bff4a | |||
| 887ad9a73d | |||
| 339099bd34 | |||
| 9b9761aa5a | |||
| 00c917853c | |||
| 122c4f478f | |||
| edc0e115e4 | |||
| b388e7a237 | |||
| 6e3ed9b4f6 | |||
| 338dbb26a1 | |||
| f10e5e9d11 | |||
| 3a046b638c | |||
| 36242c516a | |||
| c8843eb544 | |||
| 37f2b6dfc7 | |||
| c90c14312a | |||
| b5b861bb36 | |||
| ab041743a2 | |||
| 9bcec9bd75 | |||
| f4ca6d4b73 | |||
| 66649590e5 | |||
| 1e8cc475ca | |||
| 98d76a2f92 | |||
| 7b50148c43 | |||
| aef6da8b7b | |||
| 0fb14afc08 | |||
| dad71b04dd | |||
| 80014b02b5 | |||
| 7c2a6700eb | |||
| 7e81013b15 | |||
| f0107129fb | |||
| 04cce64859 | |||
| 3b7637f3cf | |||
| 7333746948 | |||
| 0fa6049298 | |||
| 64be6ce957 | |||
| 0e075c03d8 | |||
| 5de195b56b | |||
| cd60f1b096 | |||
| 8058f9b022 | |||
| a484506029 | |||
| a69f99dc61 | |||
| c3583c98be | |||
| 813e574425 | |||
| ac431ca815 | |||
| dbc5950294 |
@ -4,8 +4,6 @@ namespace Crater;
|
|||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Crater\User;
|
use Crater\User;
|
||||||
use Crater\Country;
|
use Crater\Country;
|
||||||
use Crater\State;
|
|
||||||
use Crater\City;
|
|
||||||
|
|
||||||
class Address extends Model
|
class Address extends Model
|
||||||
{
|
{
|
||||||
@ -16,8 +14,8 @@ class Address extends Model
|
|||||||
'name',
|
'name',
|
||||||
'address_street_1',
|
'address_street_1',
|
||||||
'address_street_2',
|
'address_street_2',
|
||||||
'city_id',
|
'city',
|
||||||
'state_id',
|
'state',
|
||||||
'country_id',
|
'country_id',
|
||||||
'zip',
|
'zip',
|
||||||
'phone',
|
'phone',
|
||||||
@ -35,14 +33,4 @@ class Address extends Model
|
|||||||
{
|
{
|
||||||
return $this->belongsTo(Country::class);
|
return $this->belongsTo(Country::class);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function state()
|
|
||||||
{
|
|
||||||
return $this->belongsTo(State::class);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function city()
|
|
||||||
{
|
|
||||||
return $this->belongsTo(City::class);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
18
app/City.php
18
app/City.php
@ -1,18 +0,0 @@
|
|||||||
<?php
|
|
||||||
namespace Crater;
|
|
||||||
|
|
||||||
use Illuminate\Database\Eloquent\Model;
|
|
||||||
use Crater\State;
|
|
||||||
|
|
||||||
class City extends Model
|
|
||||||
{
|
|
||||||
public function state()
|
|
||||||
{
|
|
||||||
return $this->belongsTo(State::class);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function address()
|
|
||||||
{
|
|
||||||
return $this->hasMany(Address::class);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -2,15 +2,9 @@
|
|||||||
namespace Crater;
|
namespace Crater;
|
||||||
|
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Crater\State;
|
|
||||||
|
|
||||||
class Country extends Model
|
class Country extends Model
|
||||||
{
|
{
|
||||||
public function states()
|
|
||||||
{
|
|
||||||
return $this->hasMany(State::class);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function address()
|
public function address()
|
||||||
{
|
{
|
||||||
return $this->hasMany(Address::class);
|
return $this->hasMany(Address::class);
|
||||||
|
|||||||
@ -24,6 +24,7 @@ class EstimateItem extends Model
|
|||||||
'price' => 'integer',
|
'price' => 'integer',
|
||||||
'total' => 'integer',
|
'total' => 'integer',
|
||||||
'discount' => 'float',
|
'discount' => 'float',
|
||||||
|
'quantity' => 'float',
|
||||||
'discount_val' => 'integer',
|
'discount_val' => 'integer',
|
||||||
'tax' => 'integer'
|
'tax' => 'integer'
|
||||||
];
|
];
|
||||||
|
|||||||
@ -56,7 +56,7 @@ class CompanyController extends Controller
|
|||||||
|
|
||||||
public function getAdminCompany()
|
public function getAdminCompany()
|
||||||
{
|
{
|
||||||
$user = User::with(['addresses', 'addresses.country', 'addresses.state', 'addresses.city', 'company'])->find(1);
|
$user = User::with(['addresses', 'addresses.country', 'company'])->find(1);
|
||||||
|
|
||||||
return response()->json([
|
return response()->json([
|
||||||
'user' => $user
|
'user' => $user
|
||||||
@ -75,9 +75,9 @@ class CompanyController extends Controller
|
|||||||
$company->addMediaFromRequest('logo')->toMediaCollection('logo');
|
$company->addMediaFromRequest('logo')->toMediaCollection('logo');
|
||||||
}
|
}
|
||||||
|
|
||||||
$fields = $request->only(['address_street_1', 'address_street_2', 'city_id', 'state_id', 'country_id', 'zip', 'phone']);
|
$fields = $request->only(['address_street_1', 'address_street_2', 'city', 'state', 'country_id', 'zip', 'phone']);
|
||||||
$address = Address::updateOrCreate(['user_id' => 1], $fields);
|
$address = Address::updateOrCreate(['user_id' => 1], $fields);
|
||||||
$user = User::with(['addresses', 'addresses.country', 'addresses.state', 'addresses.city', 'company'])->find(1);
|
$user = User::with(['addresses', 'addresses.country', 'company'])->find(1);
|
||||||
|
|
||||||
return response()->json([
|
return response()->json([
|
||||||
'user' => $user,
|
'user' => $user,
|
||||||
|
|||||||
@ -80,8 +80,8 @@ class CustomersController extends Controller
|
|||||||
$newAddress->name = $address["name"];
|
$newAddress->name = $address["name"];
|
||||||
$newAddress->address_street_1 = $address["address_street_1"];
|
$newAddress->address_street_1 = $address["address_street_1"];
|
||||||
$newAddress->address_street_2 = $address["address_street_2"];
|
$newAddress->address_street_2 = $address["address_street_2"];
|
||||||
$newAddress->city_id = $address["city_id"];
|
$newAddress->city = $address["city"];
|
||||||
$newAddress->state_id = $address["state_id"];
|
$newAddress->state = $address["state"];
|
||||||
$newAddress->country_id = $address["country_id"];
|
$newAddress->country_id = $address["country_id"];
|
||||||
$newAddress->zip = $address["zip"];
|
$newAddress->zip = $address["zip"];
|
||||||
$newAddress->phone = $address["phone"];
|
$newAddress->phone = $address["phone"];
|
||||||
@ -112,11 +112,7 @@ class CustomersController extends Controller
|
|||||||
'billingAddress',
|
'billingAddress',
|
||||||
'shippingAddress',
|
'shippingAddress',
|
||||||
'billingAddress.country',
|
'billingAddress.country',
|
||||||
'billingAddress.state',
|
|
||||||
'billingAddress.city',
|
|
||||||
'shippingAddress.country',
|
'shippingAddress.country',
|
||||||
'shippingAddress.state',
|
|
||||||
'shippingAddress.city',
|
|
||||||
])->find($id);
|
])->find($id);
|
||||||
|
|
||||||
return response()->json([
|
return response()->json([
|
||||||
@ -187,8 +183,8 @@ class CustomersController extends Controller
|
|||||||
$newAddress->name = $address["name"];
|
$newAddress->name = $address["name"];
|
||||||
$newAddress->address_street_1 = $address["address_street_1"];
|
$newAddress->address_street_1 = $address["address_street_1"];
|
||||||
$newAddress->address_street_2 = $address["address_street_2"];
|
$newAddress->address_street_2 = $address["address_street_2"];
|
||||||
$newAddress->city_id = $address["city_id"];
|
$newAddress->city = $address["city"];
|
||||||
$newAddress->state_id = $address["state_id"];
|
$newAddress->state = $address["state"];
|
||||||
$newAddress->country_id = $address["country_id"];
|
$newAddress->country_id = $address["country_id"];
|
||||||
$newAddress->zip = $address["zip"];
|
$newAddress->zip = $address["zip"];
|
||||||
$newAddress->phone = $address["phone"];
|
$newAddress->phone = $address["phone"];
|
||||||
|
|||||||
@ -33,10 +33,14 @@ class EnvironmentController extends Controller
|
|||||||
*/
|
*/
|
||||||
public function saveDatabaseEnvironment(DatabaseEnvironmentRequest $request)
|
public function saveDatabaseEnvironment(DatabaseEnvironmentRequest $request)
|
||||||
{
|
{
|
||||||
|
Artisan::call('config:clear');
|
||||||
|
Artisan::call('cache:clear');
|
||||||
|
|
||||||
$results = $this->EnvironmentManager->saveDatabaseVariables($request);
|
$results = $this->EnvironmentManager->saveDatabaseVariables($request);
|
||||||
|
|
||||||
if(array_key_exists("success", $results)) {
|
if(array_key_exists("success", $results)) {
|
||||||
Artisan::call('config:clear');
|
Artisan::call('config:clear');
|
||||||
|
Artisan::call('cache:clear');
|
||||||
Artisan::call('storage:link');
|
Artisan::call('storage:link');
|
||||||
Artisan::call('key:generate --force');
|
Artisan::call('key:generate --force');
|
||||||
Artisan::call('migrate --seed --force');
|
Artisan::call('migrate --seed --force');
|
||||||
|
|||||||
@ -90,7 +90,7 @@ class FrontendController extends Controller
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$companyAddress = User::with(['addresses', 'addresses.country', 'addresses.state', 'addresses.city'])->find(1);
|
$companyAddress = User::with(['addresses', 'addresses.country'])->find(1);
|
||||||
|
|
||||||
$colors = [
|
$colors = [
|
||||||
'invoice_primary_color',
|
'invoice_primary_color',
|
||||||
@ -189,7 +189,7 @@ class FrontendController extends Controller
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$companyAddress = User::with(['addresses', 'addresses.country', 'addresses.state', 'addresses.city'])->find(1);
|
$companyAddress = User::with(['addresses', 'addresses.country'])->find(1);
|
||||||
|
|
||||||
$colors = [
|
$colors = [
|
||||||
'invoice_primary_color',
|
'invoice_primary_color',
|
||||||
@ -262,7 +262,7 @@ class FrontendController extends Controller
|
|||||||
$estimateTemplate = EstimateTemplate::find($estimate->estimate_template_id);
|
$estimateTemplate = EstimateTemplate::find($estimate->estimate_template_id);
|
||||||
|
|
||||||
$company = Company::find($estimate->company_id);
|
$company = Company::find($estimate->company_id);
|
||||||
$companyAddress = User::with(['addresses', 'addresses.country', 'addresses.state', 'addresses.city'])->find(1);
|
$companyAddress = User::with(['addresses', 'addresses.country'])->find(1);
|
||||||
$logo = $company->getMedia('logo')->first();
|
$logo = $company->getMedia('logo')->first();
|
||||||
|
|
||||||
if($logo) {
|
if($logo) {
|
||||||
@ -338,7 +338,7 @@ class FrontendController extends Controller
|
|||||||
|
|
||||||
$invoiceTemplate = InvoiceTemplate::find($invoice->invoice_template_id);
|
$invoiceTemplate = InvoiceTemplate::find($invoice->invoice_template_id);
|
||||||
$company = Company::find($invoice->company_id);
|
$company = Company::find($invoice->company_id);
|
||||||
$companyAddress = User::with(['addresses', 'addresses.country', 'addresses.state', 'addresses.city'])->find(1);
|
$companyAddress = User::with(['addresses', 'addresses.country'])->find(1);
|
||||||
|
|
||||||
$logo = $company->getMedia('logo')->first();
|
$logo = $company->getMedia('logo')->first();
|
||||||
|
|
||||||
|
|||||||
@ -3,8 +3,6 @@ namespace Crater\Http\Controllers;
|
|||||||
|
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Crater\Country;
|
use Crater\Country;
|
||||||
use Crater\State;
|
|
||||||
use Crater\City;
|
|
||||||
|
|
||||||
class LocationController extends Controller
|
class LocationController extends Controller
|
||||||
{
|
{
|
||||||
@ -14,18 +12,4 @@ class LocationController extends Controller
|
|||||||
'countries' => Country::all()
|
'countries' => Country::all()
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getStates($id)
|
|
||||||
{
|
|
||||||
return response()->json([
|
|
||||||
'states' => Country::find($id)->states
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getCities($id)
|
|
||||||
{
|
|
||||||
return response()->json([
|
|
||||||
'cities' => State::find($id)->cities
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -58,8 +58,6 @@ class OnboardingController extends Controller
|
|||||||
$user = User::with([
|
$user = User::with([
|
||||||
'addresses',
|
'addresses',
|
||||||
'addresses.country',
|
'addresses.country',
|
||||||
'addresses.state',
|
|
||||||
'addresses.city',
|
|
||||||
'company'
|
'company'
|
||||||
])->find(1);
|
])->find(1);
|
||||||
|
|
||||||
@ -156,8 +154,8 @@ class OnboardingController extends Controller
|
|||||||
$fields = $request->only([
|
$fields = $request->only([
|
||||||
'address_street_1',
|
'address_street_1',
|
||||||
'address_street_2',
|
'address_street_2',
|
||||||
'city_id',
|
'city',
|
||||||
'state_id',
|
'state',
|
||||||
'country_id',
|
'country_id',
|
||||||
'zip',
|
'zip',
|
||||||
'phone'
|
'phone'
|
||||||
|
|||||||
@ -82,7 +82,7 @@ class Invoice extends Model
|
|||||||
// So the substr returns this 000001
|
// So the substr returns this 000001
|
||||||
|
|
||||||
// Add the string in front and higher up the number.
|
// Add the string in front and higher up the number.
|
||||||
// the %05d part makes sure that there are always 6 numbers in the string.
|
// the %06d part makes sure that there are always 6 numbers in the string.
|
||||||
// so it adds the missing zero's when needed.
|
// so it adds the missing zero's when needed.
|
||||||
|
|
||||||
return sprintf('%06d', intval($number) + 1);
|
return sprintf('%06d', intval($number) + 1);
|
||||||
|
|||||||
@ -30,6 +30,7 @@ class InvoiceItem extends Model
|
|||||||
'price' => 'integer',
|
'price' => 'integer',
|
||||||
'total' => 'integer',
|
'total' => 'integer',
|
||||||
'discount' => 'float',
|
'discount' => 'float',
|
||||||
|
'quantity' => 'float',
|
||||||
'discount_val' => 'integer',
|
'discount_val' => 'integer',
|
||||||
'tax' => 'integer'
|
'tax' => 'integer'
|
||||||
];
|
];
|
||||||
|
|||||||
@ -15,7 +15,7 @@ class Listener
|
|||||||
protected function isListenerFired($event)
|
protected function isListenerFired($event)
|
||||||
{
|
{
|
||||||
// Do not apply to the same or newer versions
|
// Do not apply to the same or newer versions
|
||||||
if (version_compare(static::VERSION, $event->old, '<')) {
|
if (version_compare(static::VERSION, $event->old, '<=')) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
110
app/Listeners/Updates/v2/Version200.php
Normal file
110
app/Listeners/Updates/v2/Version200.php
Normal file
@ -0,0 +1,110 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Crater\Listeners\Updates\v2;
|
||||||
|
|
||||||
|
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||||
|
use Illuminate\Queue\InteractsWithQueue;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Crater\Listeners\Updates\Listener;
|
||||||
|
use Crater\Listeners\Updates\v2\Version200;
|
||||||
|
use Crater\Events\UpdateFinished;
|
||||||
|
use Crater\Setting;
|
||||||
|
use Crater\Address;
|
||||||
|
|
||||||
|
class Version200 extends Listener
|
||||||
|
{
|
||||||
|
const VERSION = '2.0.0';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create the event listener.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Handle the event.
|
||||||
|
*
|
||||||
|
* @param object $event
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function handle(UpdateFinished $event)
|
||||||
|
{
|
||||||
|
if ($this->isListenerFired($event)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Replace state and city id to name
|
||||||
|
$this->replaceStateAndCityName();
|
||||||
|
|
||||||
|
// Drop states and cities foreign key
|
||||||
|
$this->dropForeignKey();
|
||||||
|
|
||||||
|
// Remove states and cities tables
|
||||||
|
$this->dropSchemas();
|
||||||
|
|
||||||
|
// Delete state & city models, migrations & seeders
|
||||||
|
$this->deleteFiles();
|
||||||
|
|
||||||
|
// Update Crater app version
|
||||||
|
$this->updateVersion();
|
||||||
|
}
|
||||||
|
|
||||||
|
private function replaceStateAndCityName() {
|
||||||
|
\Schema::table('addresses', function (Blueprint $table) {
|
||||||
|
$table->string('state')->nullable();
|
||||||
|
$table->string('city')->nullable();
|
||||||
|
});
|
||||||
|
|
||||||
|
$addresses = \Crater\Address::all();
|
||||||
|
foreach ($addresses as $add) {
|
||||||
|
$city = \Crater\City::find($add->city_id);
|
||||||
|
if($city) {
|
||||||
|
$add->city = $city->name;
|
||||||
|
}
|
||||||
|
|
||||||
|
$state = \Crater\State::find($add->state_id);
|
||||||
|
if($state) {
|
||||||
|
$add->state = $state->name;
|
||||||
|
}
|
||||||
|
|
||||||
|
$add->save();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private function dropForeignKey() {
|
||||||
|
\Schema::table('addresses', function (Blueprint $table) {
|
||||||
|
$table->dropForeign('addresses_state_id_foreign');
|
||||||
|
$table->dropForeign('addresses_city_id_foreign');
|
||||||
|
$table->dropColumn('state_id');
|
||||||
|
$table->dropColumn('city_id');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
private function dropSchemas() {
|
||||||
|
\Schema::disableForeignKeyConstraints();
|
||||||
|
|
||||||
|
\Schema::dropIfExists('states');
|
||||||
|
\Schema::dropIfExists('cities');
|
||||||
|
|
||||||
|
\Schema::enableForeignKeyConstraints();
|
||||||
|
}
|
||||||
|
|
||||||
|
private function deleteFiles() {
|
||||||
|
\File::delete(
|
||||||
|
database_path('migrations/2017_05_06_172817_create_cities_table.php'),
|
||||||
|
database_path('migrations/2017_05_06_173711_create_states_table.php'),
|
||||||
|
database_path('seeds/StatesTableSeeder.php'),
|
||||||
|
database_path('seeds/CitiesTableSeeder.php'),
|
||||||
|
app_path('City.php'),
|
||||||
|
app_path('State.php')
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
private function updateVersion() {
|
||||||
|
Setting::setSetting('version', static::VERSION);
|
||||||
|
}
|
||||||
|
}
|
||||||
87
app/Listeners/Updates/v2/Version201.php
Normal file
87
app/Listeners/Updates/v2/Version201.php
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Crater\Listeners\Updates\v2;
|
||||||
|
|
||||||
|
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||||
|
use Illuminate\Queue\InteractsWithQueue;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Crater\Events\UpdateFinished;
|
||||||
|
use Crater\Listeners\Updates\Listener;
|
||||||
|
use Crater\Setting;
|
||||||
|
|
||||||
|
class Version201 extends Listener
|
||||||
|
{
|
||||||
|
const VERSION = '2.0.1';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create the event listener.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Handle the event.
|
||||||
|
*
|
||||||
|
* @param object $event
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function handle(UpdateFinished $event)
|
||||||
|
{
|
||||||
|
if ($this->isListenerFired($event)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Remove the language files
|
||||||
|
$this->removeLanguageFiles();
|
||||||
|
|
||||||
|
// Change estimate & invoice migrations
|
||||||
|
$this->changeMigrations();
|
||||||
|
|
||||||
|
// Update Crater app version
|
||||||
|
Setting::setSetting('version', static::VERSION);
|
||||||
|
}
|
||||||
|
|
||||||
|
private function removeLanguageFiles() {
|
||||||
|
$en = resource_path('assets/js/plugins/en.js');
|
||||||
|
$es = resource_path('assets/js/plugins/es.js');
|
||||||
|
$fr = resource_path('assets/js/plugins/fr.js');
|
||||||
|
|
||||||
|
if(file_exists($en)) {
|
||||||
|
unlink($en);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(file_exists($es)) {
|
||||||
|
unlink($es);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(file_exists($fr)) {
|
||||||
|
unlink($fr);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private function changeMigrations()
|
||||||
|
{
|
||||||
|
\Schema::table('invoices', function (Blueprint $table) {
|
||||||
|
$table->decimal('discount', 15, 2)->nullable()->change();
|
||||||
|
});
|
||||||
|
|
||||||
|
\Schema::table('estimates', function (Blueprint $table) {
|
||||||
|
$table->decimal('discount', 15, 2)->nullable()->change();
|
||||||
|
});
|
||||||
|
|
||||||
|
\Schema::table('invoice_items', function (Blueprint $table) {
|
||||||
|
$table->decimal('quantity', 15, 2)->change();
|
||||||
|
$table->decimal('discount', 15, 2)->nullable()->change();
|
||||||
|
});
|
||||||
|
|
||||||
|
\Schema::table('estimate_items', function (Blueprint $table) {
|
||||||
|
$table->decimal('quantity', 15, 2)->change();
|
||||||
|
$table->decimal('discount', 15, 2)->nullable()->change();
|
||||||
|
$table->unsignedBigInteger('discount_val')->nullable()->change();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
40
app/Listeners/Updates/v2/Version202.php
Normal file
40
app/Listeners/Updates/v2/Version202.php
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Crater\Listeners\Updates\v2;
|
||||||
|
|
||||||
|
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||||
|
use Illuminate\Queue\InteractsWithQueue;
|
||||||
|
use Crater\Events\UpdateFinished;
|
||||||
|
use Crater\Listeners\Updates\Listener;
|
||||||
|
use Crater\Setting;
|
||||||
|
|
||||||
|
class Version202 extends Listener
|
||||||
|
{
|
||||||
|
const VERSION = '2.0.2';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create the event listener.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Handle the event.
|
||||||
|
*
|
||||||
|
* @param object $event
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function handle(UpdateFinished $event)
|
||||||
|
{
|
||||||
|
if ($this->isListenerFired($event)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update Crater app version
|
||||||
|
Setting::setSetting('version', static::VERSION);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -6,6 +6,9 @@ use Illuminate\Auth\Events\Registered;
|
|||||||
use Illuminate\Auth\Listeners\SendEmailVerificationNotification;
|
use Illuminate\Auth\Listeners\SendEmailVerificationNotification;
|
||||||
use Crater\Events\UpdateFinished;
|
use Crater\Events\UpdateFinished;
|
||||||
use Crater\Listeners\Updates\v1\Version110;
|
use Crater\Listeners\Updates\v1\Version110;
|
||||||
|
use Crater\Listeners\Updates\v2\Version200;
|
||||||
|
use Crater\Listeners\Updates\v2\Version201;
|
||||||
|
use Crater\Listeners\Updates\v2\Version202;
|
||||||
|
|
||||||
class EventServiceProvider extends ServiceProvider
|
class EventServiceProvider extends ServiceProvider
|
||||||
{
|
{
|
||||||
@ -17,6 +20,9 @@ class EventServiceProvider extends ServiceProvider
|
|||||||
protected $listen = [
|
protected $listen = [
|
||||||
UpdateFinished::class=> [
|
UpdateFinished::class=> [
|
||||||
Version110::class,
|
Version110::class,
|
||||||
|
Version200::class,
|
||||||
|
Version201::class,
|
||||||
|
Version202::class,
|
||||||
],
|
],
|
||||||
Registered::class => [
|
Registered::class => [
|
||||||
SendEmailVerificationNotification::class,
|
SendEmailVerificationNotification::class,
|
||||||
|
|||||||
@ -48,17 +48,21 @@ class EnvironmentManager
|
|||||||
'DB_USERNAME='.$request->database_username."\n".
|
'DB_USERNAME='.$request->database_username."\n".
|
||||||
'DB_PASSWORD='.$request->database_password."\n\n";
|
'DB_PASSWORD='.$request->database_password."\n\n";
|
||||||
|
|
||||||
if (! $this->checkDatabaseConnection($request)) {
|
try {
|
||||||
|
|
||||||
|
$this->checkDatabaseConnection($request);
|
||||||
|
|
||||||
return [
|
|
||||||
'error' => 'connection_failed'
|
|
||||||
];
|
|
||||||
} else {
|
|
||||||
if(\Schema::hasTable('users') ) {
|
if(\Schema::hasTable('users') ) {
|
||||||
return [
|
return [
|
||||||
'error' => 'database_should_be_empty'
|
'error' => 'database_should_be_empty'
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} catch (Exception $e) {
|
||||||
|
|
||||||
|
return [
|
||||||
|
'error' => $e->getMessage()
|
||||||
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
@ -118,8 +122,6 @@ class EnvironmentManager
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
return [
|
return [
|
||||||
'error' => 'mail_variables_save_error'
|
'error' => 'mail_variables_save_error'
|
||||||
@ -316,12 +318,6 @@ class EnvironmentManager
|
|||||||
],
|
],
|
||||||
]);
|
]);
|
||||||
|
|
||||||
try {
|
return DB::connection()->getPdo();
|
||||||
DB::connection()->getPdo();
|
|
||||||
|
|
||||||
return true;
|
|
||||||
} catch (Exception $e) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,25 +0,0 @@
|
|||||||
<?php
|
|
||||||
namespace Crater;
|
|
||||||
|
|
||||||
use Illuminate\Database\Eloquent\Model;
|
|
||||||
use Crater\City;
|
|
||||||
use Crater\Country;
|
|
||||||
use Crater\Address;
|
|
||||||
|
|
||||||
class State extends Model
|
|
||||||
{
|
|
||||||
public function cities()
|
|
||||||
{
|
|
||||||
return $this->hasMany(City::class);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function country()
|
|
||||||
{
|
|
||||||
return $this->belongsTo(Country::class);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function address()
|
|
||||||
{
|
|
||||||
return $this->hasMany(Address::class);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -10,6 +10,7 @@
|
|||||||
"require": {
|
"require": {
|
||||||
"php": "^7.2",
|
"php": "^7.2",
|
||||||
"barryvdh/laravel-dompdf": "^0.8.1",
|
"barryvdh/laravel-dompdf": "^0.8.1",
|
||||||
|
"doctrine/dbal": "^2.10",
|
||||||
"fideloper/proxy": "^4.0",
|
"fideloper/proxy": "^4.0",
|
||||||
"guzzlehttp/guzzle": "^6.3",
|
"guzzlehttp/guzzle": "^6.3",
|
||||||
"intervention/image": "^2.3",
|
"intervention/image": "^2.3",
|
||||||
|
|||||||
484
composer.lock
generated
484
composer.lock
generated
@ -4,7 +4,7 @@
|
|||||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||||
"This file is @generated automatically"
|
"This file is @generated automatically"
|
||||||
],
|
],
|
||||||
"content-hash": "2a5e8d91a2be3144e2812dd708dc14b7",
|
"content-hash": "e7cf4f0a8e1e7d60cc72b34ed4c730ce",
|
||||||
"packages": [
|
"packages": [
|
||||||
{
|
{
|
||||||
"name": "barryvdh/laravel-dompdf",
|
"name": "barryvdh/laravel-dompdf",
|
||||||
@ -158,6 +158,247 @@
|
|||||||
"description": "implementation of xdg base directory specification for php",
|
"description": "implementation of xdg base directory specification for php",
|
||||||
"time": "2014-10-24T07:27:01+00:00"
|
"time": "2014-10-24T07:27:01+00:00"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "doctrine/cache",
|
||||||
|
"version": "v1.8.1",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/doctrine/cache.git",
|
||||||
|
"reference": "d4374ae95b36062d02ef310100ed33d78738d76c"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/doctrine/cache/zipball/d4374ae95b36062d02ef310100ed33d78738d76c",
|
||||||
|
"reference": "d4374ae95b36062d02ef310100ed33d78738d76c",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": "~7.1"
|
||||||
|
},
|
||||||
|
"conflict": {
|
||||||
|
"doctrine/common": ">2.2,<2.4"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"alcaeus/mongo-php-adapter": "^1.1",
|
||||||
|
"doctrine/coding-standard": "^4.0",
|
||||||
|
"mongodb/mongodb": "^1.1",
|
||||||
|
"phpunit/phpunit": "^7.0",
|
||||||
|
"predis/predis": "~1.0"
|
||||||
|
},
|
||||||
|
"suggest": {
|
||||||
|
"alcaeus/mongo-php-adapter": "Required to use legacy MongoDB driver"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-master": "1.8.x-dev"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"Doctrine\\Common\\Cache\\": "lib/Doctrine/Common/Cache"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Guilherme Blanco",
|
||||||
|
"email": "guilhermeblanco@gmail.com"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Roman Borschel",
|
||||||
|
"email": "roman@code-factory.org"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Benjamin Eberlei",
|
||||||
|
"email": "kontakt@beberlei.de"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Jonathan Wage",
|
||||||
|
"email": "jonwage@gmail.com"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Johannes Schmitt",
|
||||||
|
"email": "schmittjoh@gmail.com"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Caching library offering an object-oriented API for many cache backends",
|
||||||
|
"homepage": "https://www.doctrine-project.org",
|
||||||
|
"keywords": [
|
||||||
|
"cache",
|
||||||
|
"caching"
|
||||||
|
],
|
||||||
|
"time": "2019-10-28T09:31:32+00:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "doctrine/dbal",
|
||||||
|
"version": "v2.10.0",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/doctrine/dbal.git",
|
||||||
|
"reference": "0c9a646775ef549eb0a213a4f9bd4381d9b4d934"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/doctrine/dbal/zipball/0c9a646775ef549eb0a213a4f9bd4381d9b4d934",
|
||||||
|
"reference": "0c9a646775ef549eb0a213a4f9bd4381d9b4d934",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"doctrine/cache": "^1.0",
|
||||||
|
"doctrine/event-manager": "^1.0",
|
||||||
|
"ext-pdo": "*",
|
||||||
|
"php": "^7.2"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"doctrine/coding-standard": "^6.0",
|
||||||
|
"jetbrains/phpstorm-stubs": "^2019.1",
|
||||||
|
"phpstan/phpstan": "^0.11.3",
|
||||||
|
"phpunit/phpunit": "^8.4.1",
|
||||||
|
"symfony/console": "^2.0.5|^3.0|^4.0|^5.0"
|
||||||
|
},
|
||||||
|
"suggest": {
|
||||||
|
"symfony/console": "For helpful console commands such as SQL execution and import of files."
|
||||||
|
},
|
||||||
|
"bin": [
|
||||||
|
"bin/doctrine-dbal"
|
||||||
|
],
|
||||||
|
"type": "library",
|
||||||
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-master": "2.10.x-dev",
|
||||||
|
"dev-develop": "3.0.x-dev"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"Doctrine\\DBAL\\": "lib/Doctrine/DBAL"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Guilherme Blanco",
|
||||||
|
"email": "guilhermeblanco@gmail.com"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Roman Borschel",
|
||||||
|
"email": "roman@code-factory.org"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Benjamin Eberlei",
|
||||||
|
"email": "kontakt@beberlei.de"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Jonathan Wage",
|
||||||
|
"email": "jonwage@gmail.com"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Powerful PHP database abstraction layer (DBAL) with many features for database schema introspection and management.",
|
||||||
|
"homepage": "https://www.doctrine-project.org/projects/dbal.html",
|
||||||
|
"keywords": [
|
||||||
|
"abstraction",
|
||||||
|
"database",
|
||||||
|
"db2",
|
||||||
|
"dbal",
|
||||||
|
"mariadb",
|
||||||
|
"mssql",
|
||||||
|
"mysql",
|
||||||
|
"oci8",
|
||||||
|
"oracle",
|
||||||
|
"pdo",
|
||||||
|
"pgsql",
|
||||||
|
"postgresql",
|
||||||
|
"queryobject",
|
||||||
|
"sasql",
|
||||||
|
"sql",
|
||||||
|
"sqlanywhere",
|
||||||
|
"sqlite",
|
||||||
|
"sqlserver",
|
||||||
|
"sqlsrv"
|
||||||
|
],
|
||||||
|
"time": "2019-11-03T16:50:43+00:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "doctrine/event-manager",
|
||||||
|
"version": "v1.0.0",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/doctrine/event-manager.git",
|
||||||
|
"reference": "a520bc093a0170feeb6b14e9d83f3a14452e64b3"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/doctrine/event-manager/zipball/a520bc093a0170feeb6b14e9d83f3a14452e64b3",
|
||||||
|
"reference": "a520bc093a0170feeb6b14e9d83f3a14452e64b3",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": "^7.1"
|
||||||
|
},
|
||||||
|
"conflict": {
|
||||||
|
"doctrine/common": "<2.9@dev"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"doctrine/coding-standard": "^4.0",
|
||||||
|
"phpunit/phpunit": "^7.0"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-master": "1.0.x-dev"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"Doctrine\\Common\\": "lib/Doctrine/Common"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Roman Borschel",
|
||||||
|
"email": "roman@code-factory.org"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Benjamin Eberlei",
|
||||||
|
"email": "kontakt@beberlei.de"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Guilherme Blanco",
|
||||||
|
"email": "guilhermeblanco@gmail.com"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Jonathan Wage",
|
||||||
|
"email": "jonwage@gmail.com"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Johannes Schmitt",
|
||||||
|
"email": "schmittjoh@gmail.com"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Marco Pivetta",
|
||||||
|
"email": "ocramius@gmail.com"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Doctrine Event Manager component",
|
||||||
|
"homepage": "https://www.doctrine-project.org/projects/event-manager.html",
|
||||||
|
"keywords": [
|
||||||
|
"event",
|
||||||
|
"eventdispatcher",
|
||||||
|
"eventmanager"
|
||||||
|
],
|
||||||
|
"time": "2018-06-11T11:59:03+00:00"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "doctrine/inflector",
|
"name": "doctrine/inflector",
|
||||||
"version": "v1.3.0",
|
"version": "v1.3.0",
|
||||||
@ -5307,247 +5548,6 @@
|
|||||||
],
|
],
|
||||||
"time": "2019-05-27T17:52:04+00:00"
|
"time": "2019-05-27T17:52:04+00:00"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "doctrine/cache",
|
|
||||||
"version": "v1.8.1",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/doctrine/cache.git",
|
|
||||||
"reference": "d4374ae95b36062d02ef310100ed33d78738d76c"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/doctrine/cache/zipball/d4374ae95b36062d02ef310100ed33d78738d76c",
|
|
||||||
"reference": "d4374ae95b36062d02ef310100ed33d78738d76c",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"php": "~7.1"
|
|
||||||
},
|
|
||||||
"conflict": {
|
|
||||||
"doctrine/common": ">2.2,<2.4"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"alcaeus/mongo-php-adapter": "^1.1",
|
|
||||||
"doctrine/coding-standard": "^4.0",
|
|
||||||
"mongodb/mongodb": "^1.1",
|
|
||||||
"phpunit/phpunit": "^7.0",
|
|
||||||
"predis/predis": "~1.0"
|
|
||||||
},
|
|
||||||
"suggest": {
|
|
||||||
"alcaeus/mongo-php-adapter": "Required to use legacy MongoDB driver"
|
|
||||||
},
|
|
||||||
"type": "library",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "1.8.x-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"autoload": {
|
|
||||||
"psr-4": {
|
|
||||||
"Doctrine\\Common\\Cache\\": "lib/Doctrine/Common/Cache"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"MIT"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Guilherme Blanco",
|
|
||||||
"email": "guilhermeblanco@gmail.com"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Roman Borschel",
|
|
||||||
"email": "roman@code-factory.org"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Benjamin Eberlei",
|
|
||||||
"email": "kontakt@beberlei.de"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Jonathan Wage",
|
|
||||||
"email": "jonwage@gmail.com"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Johannes Schmitt",
|
|
||||||
"email": "schmittjoh@gmail.com"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "Caching library offering an object-oriented API for many cache backends",
|
|
||||||
"homepage": "https://www.doctrine-project.org",
|
|
||||||
"keywords": [
|
|
||||||
"cache",
|
|
||||||
"caching"
|
|
||||||
],
|
|
||||||
"time": "2019-10-28T09:31:32+00:00"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "doctrine/dbal",
|
|
||||||
"version": "v2.10.0",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/doctrine/dbal.git",
|
|
||||||
"reference": "0c9a646775ef549eb0a213a4f9bd4381d9b4d934"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/doctrine/dbal/zipball/0c9a646775ef549eb0a213a4f9bd4381d9b4d934",
|
|
||||||
"reference": "0c9a646775ef549eb0a213a4f9bd4381d9b4d934",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"doctrine/cache": "^1.0",
|
|
||||||
"doctrine/event-manager": "^1.0",
|
|
||||||
"ext-pdo": "*",
|
|
||||||
"php": "^7.2"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"doctrine/coding-standard": "^6.0",
|
|
||||||
"jetbrains/phpstorm-stubs": "^2019.1",
|
|
||||||
"phpstan/phpstan": "^0.11.3",
|
|
||||||
"phpunit/phpunit": "^8.4.1",
|
|
||||||
"symfony/console": "^2.0.5|^3.0|^4.0|^5.0"
|
|
||||||
},
|
|
||||||
"suggest": {
|
|
||||||
"symfony/console": "For helpful console commands such as SQL execution and import of files."
|
|
||||||
},
|
|
||||||
"bin": [
|
|
||||||
"bin/doctrine-dbal"
|
|
||||||
],
|
|
||||||
"type": "library",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "2.10.x-dev",
|
|
||||||
"dev-develop": "3.0.x-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"autoload": {
|
|
||||||
"psr-4": {
|
|
||||||
"Doctrine\\DBAL\\": "lib/Doctrine/DBAL"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"MIT"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Guilherme Blanco",
|
|
||||||
"email": "guilhermeblanco@gmail.com"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Roman Borschel",
|
|
||||||
"email": "roman@code-factory.org"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Benjamin Eberlei",
|
|
||||||
"email": "kontakt@beberlei.de"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Jonathan Wage",
|
|
||||||
"email": "jonwage@gmail.com"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "Powerful PHP database abstraction layer (DBAL) with many features for database schema introspection and management.",
|
|
||||||
"homepage": "https://www.doctrine-project.org/projects/dbal.html",
|
|
||||||
"keywords": [
|
|
||||||
"abstraction",
|
|
||||||
"database",
|
|
||||||
"db2",
|
|
||||||
"dbal",
|
|
||||||
"mariadb",
|
|
||||||
"mssql",
|
|
||||||
"mysql",
|
|
||||||
"oci8",
|
|
||||||
"oracle",
|
|
||||||
"pdo",
|
|
||||||
"pgsql",
|
|
||||||
"postgresql",
|
|
||||||
"queryobject",
|
|
||||||
"sasql",
|
|
||||||
"sql",
|
|
||||||
"sqlanywhere",
|
|
||||||
"sqlite",
|
|
||||||
"sqlserver",
|
|
||||||
"sqlsrv"
|
|
||||||
],
|
|
||||||
"time": "2019-11-03T16:50:43+00:00"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "doctrine/event-manager",
|
|
||||||
"version": "v1.0.0",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/doctrine/event-manager.git",
|
|
||||||
"reference": "a520bc093a0170feeb6b14e9d83f3a14452e64b3"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/doctrine/event-manager/zipball/a520bc093a0170feeb6b14e9d83f3a14452e64b3",
|
|
||||||
"reference": "a520bc093a0170feeb6b14e9d83f3a14452e64b3",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"php": "^7.1"
|
|
||||||
},
|
|
||||||
"conflict": {
|
|
||||||
"doctrine/common": "<2.9@dev"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"doctrine/coding-standard": "^4.0",
|
|
||||||
"phpunit/phpunit": "^7.0"
|
|
||||||
},
|
|
||||||
"type": "library",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "1.0.x-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"autoload": {
|
|
||||||
"psr-4": {
|
|
||||||
"Doctrine\\Common\\": "lib/Doctrine/Common"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"MIT"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Roman Borschel",
|
|
||||||
"email": "roman@code-factory.org"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Benjamin Eberlei",
|
|
||||||
"email": "kontakt@beberlei.de"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Guilherme Blanco",
|
|
||||||
"email": "guilhermeblanco@gmail.com"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Jonathan Wage",
|
|
||||||
"email": "jonwage@gmail.com"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Johannes Schmitt",
|
|
||||||
"email": "schmittjoh@gmail.com"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Marco Pivetta",
|
|
||||||
"email": "ocramius@gmail.com"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "Doctrine Event Manager component",
|
|
||||||
"homepage": "https://www.doctrine-project.org/projects/event-manager.html",
|
|
||||||
"keywords": [
|
|
||||||
"event",
|
|
||||||
"eventdispatcher",
|
|
||||||
"eventmanager"
|
|
||||||
],
|
|
||||||
"time": "2018-06-11T11:59:03+00:00"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "doctrine/instantiator",
|
"name": "doctrine/instantiator",
|
||||||
"version": "1.2.0",
|
"version": "1.2.0",
|
||||||
|
|||||||
@ -9,6 +9,6 @@ return [
|
|||||||
|
|
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
'version' => '1.1.0',
|
'version' => '2.0.2',
|
||||||
|
|
||||||
];
|
];
|
||||||
|
|||||||
@ -51,7 +51,7 @@ return [
|
|||||||
'collation' => 'utf8_unicode_ci',
|
'collation' => 'utf8_unicode_ci',
|
||||||
'prefix' => '',
|
'prefix' => '',
|
||||||
'prefix_indexes' => true,
|
'prefix_indexes' => true,
|
||||||
'strict' => true,
|
'strict' => false,
|
||||||
'engine' => null,
|
'engine' => null,
|
||||||
],
|
],
|
||||||
|
|
||||||
|
|||||||
@ -10,9 +10,9 @@ $factory->define(Address::class, function (Faker $faker) {
|
|||||||
'name' => $faker->name,
|
'name' => $faker->name,
|
||||||
'address_street_1' => $faker->streetAddress,
|
'address_street_1' => $faker->streetAddress,
|
||||||
'address_street_2' => $faker->streetAddress,
|
'address_street_2' => $faker->streetAddress,
|
||||||
'city_id' => 5909,
|
'city' => $faker->city,
|
||||||
'state_id' => 42,
|
'state' => $faker->state,
|
||||||
'country_id' => 1,
|
'country_id' => 231,
|
||||||
'zip' => $faker->postcode,
|
'zip' => $faker->postcode,
|
||||||
'phone' => $faker->phoneNumber,
|
'phone' => $faker->phoneNumber,
|
||||||
'fax' => $faker->phoneNumber,
|
'fax' => $faker->phoneNumber,
|
||||||
|
|||||||
@ -25,7 +25,7 @@ class CreateInvoicesTable extends Migration
|
|||||||
$table->string('discount_per_item');
|
$table->string('discount_per_item');
|
||||||
$table->text('notes')->nullable();
|
$table->text('notes')->nullable();
|
||||||
$table->string('discount_type')->nullable();
|
$table->string('discount_type')->nullable();
|
||||||
$table->unsignedBigInteger('discount')->nullable();
|
$table->decimal('discount', 15, 2)->nullable();
|
||||||
$table->unsignedBigInteger('discount_val')->nullable();
|
$table->unsignedBigInteger('discount_val')->nullable();
|
||||||
$table->unsignedBigInteger('sub_total');
|
$table->unsignedBigInteger('sub_total');
|
||||||
$table->unsignedBigInteger('total');
|
$table->unsignedBigInteger('total');
|
||||||
|
|||||||
@ -18,10 +18,10 @@ class CreateInvoiceItemsTable extends Migration
|
|||||||
$table->string('name');
|
$table->string('name');
|
||||||
$table->string('description')->nullable();
|
$table->string('description')->nullable();
|
||||||
$table->string('discount_type');
|
$table->string('discount_type');
|
||||||
$table->unsignedBigInteger('quantity');
|
|
||||||
$table->unsignedBigInteger('price');
|
$table->unsignedBigInteger('price');
|
||||||
|
$table->decimal('quantity', 15, 2);
|
||||||
|
$table->decimal('discount', 15, 2)->nullable();
|
||||||
$table->unsignedBigInteger('discount_val');
|
$table->unsignedBigInteger('discount_val');
|
||||||
$table->unsignedBigInteger('discount');
|
|
||||||
$table->unsignedBigInteger('tax');
|
$table->unsignedBigInteger('tax');
|
||||||
$table->unsignedBigInteger('total');
|
$table->unsignedBigInteger('total');
|
||||||
$table->integer('invoice_id')->unsigned();
|
$table->integer('invoice_id')->unsigned();
|
||||||
|
|||||||
@ -23,8 +23,8 @@ class CreateEstimatesTable extends Migration
|
|||||||
$table->string('tax_per_item');
|
$table->string('tax_per_item');
|
||||||
$table->string('discount_per_item');
|
$table->string('discount_per_item');
|
||||||
$table->string('notes')->nullable();
|
$table->string('notes')->nullable();
|
||||||
|
$table->decimal('discount', 15, 2)->nullable();
|
||||||
$table->string('discount_type')->nullable();
|
$table->string('discount_type')->nullable();
|
||||||
$table->unsignedBigInteger('discount')->nullable();
|
|
||||||
$table->unsignedBigInteger('discount_val')->nullable();
|
$table->unsignedBigInteger('discount_val')->nullable();
|
||||||
$table->unsignedBigInteger('sub_total');
|
$table->unsignedBigInteger('sub_total');
|
||||||
$table->unsignedBigInteger('total');
|
$table->unsignedBigInteger('total');
|
||||||
|
|||||||
@ -1,33 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
use Illuminate\Support\Facades\Schema;
|
|
||||||
use Illuminate\Database\Schema\Blueprint;
|
|
||||||
use Illuminate\Database\Migrations\Migration;
|
|
||||||
|
|
||||||
class CreateCitiesTable extends Migration
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Run the migrations.
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public function up()
|
|
||||||
{
|
|
||||||
Schema::create('cities', function (Blueprint $table) {
|
|
||||||
$table->engine = 'InnoDB';
|
|
||||||
$table->increments('id')->index();
|
|
||||||
$table->string('name');
|
|
||||||
$table->integer('state_id');
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Reverse the migrations.
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public function down()
|
|
||||||
{
|
|
||||||
Schema::dropIfExists('cities');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,32 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
use Illuminate\Support\Facades\Schema;
|
|
||||||
use Illuminate\Database\Schema\Blueprint;
|
|
||||||
use Illuminate\Database\Migrations\Migration;
|
|
||||||
|
|
||||||
class CreateStatesTable extends Migration
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Run the migrations.
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public function up()
|
|
||||||
{
|
|
||||||
Schema::create('states', function (Blueprint $table) {
|
|
||||||
$table->increments('id')->index();
|
|
||||||
$table->string('name');
|
|
||||||
$table->integer('country_id');
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Reverse the migrations.
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public function down()
|
|
||||||
{
|
|
||||||
Schema::dropIfExists('states');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -18,9 +18,9 @@ class CreateEstimateItemsTable extends Migration
|
|||||||
$table->string('name');
|
$table->string('name');
|
||||||
$table->string('description')->nullable();
|
$table->string('description')->nullable();
|
||||||
$table->string('discount_type');
|
$table->string('discount_type');
|
||||||
$table->unsignedBigInteger('quantity');
|
$table->decimal('quantity', 15, 2);
|
||||||
$table->unsignedBigInteger('discount');
|
$table->decimal('discount', 15, 2)->nullable();
|
||||||
$table->unsignedBigInteger('discount_val');
|
$table->unsignedBigInteger('discount_val')->nullable();
|
||||||
$table->unsignedBigInteger('price');
|
$table->unsignedBigInteger('price');
|
||||||
$table->unsignedBigInteger('tax');
|
$table->unsignedBigInteger('tax');
|
||||||
$table->unsignedBigInteger('total');
|
$table->unsignedBigInteger('total');
|
||||||
|
|||||||
@ -18,10 +18,8 @@ class CreateAddressesTable extends Migration
|
|||||||
$table->string('name')->nullable();
|
$table->string('name')->nullable();
|
||||||
$table->string('address_street_1')->nullable();
|
$table->string('address_street_1')->nullable();
|
||||||
$table->string('address_street_2')->nullable();
|
$table->string('address_street_2')->nullable();
|
||||||
$table->integer('city_id')->unsigned()->nullable();
|
$table->string('city')->nullable();
|
||||||
$table->foreign('city_id')->references('id')->on('cities');
|
$table->string('state')->nullable();
|
||||||
$table->integer('state_id')->unsigned()->nullable();
|
|
||||||
$table->foreign('state_id')->references('id')->on('states');
|
|
||||||
$table->integer('country_id')->unsigned()->nullable();
|
$table->integer('country_id')->unsigned()->nullable();
|
||||||
$table->foreign('country_id')->references('id')->on('countries');
|
$table->foreign('country_id')->references('id')->on('countries');
|
||||||
$table->string('zip')->nullable();
|
$table->string('zip')->nullable();
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@ -14,8 +14,6 @@ class DatabaseSeeder extends Seeder
|
|||||||
$this->call(CurrenciesTableSeeder::class);
|
$this->call(CurrenciesTableSeeder::class);
|
||||||
$this->call(RoleSeeder::class);
|
$this->call(RoleSeeder::class);
|
||||||
$this->call(CountriesTableSeeder::class);
|
$this->call(CountriesTableSeeder::class);
|
||||||
$this->call(StatesTableSeeder::class);
|
|
||||||
$this->call(CitiesTableSeeder::class);
|
|
||||||
$this->call(EstimateTemplateSeeder::class);
|
$this->call(EstimateTemplateSeeder::class);
|
||||||
$this->call(InvoiceTemplateSeeder::class);
|
$this->call(InvoiceTemplateSeeder::class);
|
||||||
}
|
}
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
2
public/assets/css/crater.css
vendored
2
public/assets/css/crater.css
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1,4 +1,4 @@
|
|||||||
{
|
{
|
||||||
"/assets/js/app.js": "/assets/js/app.js?id=af9e4f2aa907d480466c",
|
"/assets/js/app.js": "/assets/js/app.js?id=36ab3529ebffd4f0624b",
|
||||||
"/assets/css/crater.css": "/assets/css/crater.css?id=9d83f53c3915b38417e0"
|
"/assets/css/crater.css": "/assets/css/crater.css?id=108e3a8d009e7d38018c"
|
||||||
}
|
}
|
||||||
|
|||||||
@ -14,7 +14,8 @@ Web Application is made using Laravel & VueJS while the Mobile Apps are built us
|
|||||||
4. [Discord](#discord)
|
4. [Discord](#discord)
|
||||||
5. [Roadmap](#roadmap)
|
5. [Roadmap](#roadmap)
|
||||||
6. [Credits](#credits)
|
6. [Credits](#credits)
|
||||||
7. [License](#license)
|
7. [Help us translate](#translate)
|
||||||
|
8. [License](#license)
|
||||||
|
|
||||||
## Documentation
|
## Documentation
|
||||||
|
|
||||||
@ -32,7 +33,7 @@ Web Application is made using Laravel & VueJS while the Mobile Apps are built us
|
|||||||
- [Source](https://github.com/bytefury/crater-mobile)
|
- [Source](https://github.com/bytefury/crater-mobile)
|
||||||
|
|
||||||
## Discord
|
## Discord
|
||||||
Join the Crater discord server to discuss:
|
Join the Crater discord server to discuss:
|
||||||
[Invite Link](https://discord.gg/nyTstm6)
|
[Invite Link](https://discord.gg/nyTstm6)
|
||||||
|
|
||||||
## Roadmap
|
## Roadmap
|
||||||
@ -59,6 +60,9 @@ Join the Crater discord server to discuss:
|
|||||||
## Credits
|
## Credits
|
||||||
Crater is a product of [Bytefury](https://bytefury.com)
|
Crater is a product of [Bytefury](https://bytefury.com)
|
||||||
|
|
||||||
|
## Translate
|
||||||
|
Help us translate on [Transifex](https://www.transifex.com/bytefury/crater-invoice)
|
||||||
|
|
||||||
## License
|
## License
|
||||||
Crater is released under the Attribution Assurance License.
|
Crater is released under the Attribution Assurance License.
|
||||||
See [LICENSE](LICENSE) for details.
|
See [LICENSE](LICENSE) for details.
|
||||||
|
|||||||
@ -163,15 +163,10 @@
|
|||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
<label class="col-sm-4 col-form-label input-label">{{ $t('customers.state') }}</label>
|
<label class="col-sm-4 col-form-label input-label">{{ $t('customers.state') }}</label>
|
||||||
<div class="col-sm-7">
|
<div class="col-sm-7">
|
||||||
<base-select
|
<base-input
|
||||||
v-model="billingState"
|
v-model="billing.state"
|
||||||
:options="billingStates"
|
type="text"
|
||||||
:searchable="true"
|
name="billingState"
|
||||||
:show-labels="false"
|
|
||||||
:placeholder="$t('general.select_state')"
|
|
||||||
:disabled="isDisabledBillingState"
|
|
||||||
track-by="id"
|
|
||||||
label="name"
|
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -179,29 +174,14 @@
|
|||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
<label class="col-sm-4 col-form-label input-label">{{ $t('customers.city') }}</label>
|
<label class="col-sm-4 col-form-label input-label">{{ $t('customers.city') }}</label>
|
||||||
<div class="col-sm-7">
|
<div class="col-sm-7">
|
||||||
<base-select
|
<base-input
|
||||||
v-model="billingCity"
|
v-model="billing.city"
|
||||||
:options="billingCities"
|
type="text"
|
||||||
:searchable="true"
|
name="billingCity"
|
||||||
:show-labels="false"
|
|
||||||
:placeholder="$t('general.select_city')"
|
|
||||||
:disabled="isDisabledBillingCity"
|
|
||||||
track-by="id"
|
|
||||||
label="name"
|
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- <div class="form-group row">
|
|
||||||
<label class="col-sm-4 col-form-label">Zip Code</label>
|
|
||||||
<div class="col-sm-7">
|
|
||||||
<base-input
|
|
||||||
v-model="billing.zip"
|
|
||||||
type="text"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</div> -->
|
|
||||||
|
|
||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
<label class="col-sm-4 col-form-label input-label">{{ $t('customers.zip_code') }}</label>
|
<label class="col-sm-4 col-form-label input-label">{{ $t('customers.zip_code') }}</label>
|
||||||
<div class="col-sm-7">
|
<div class="col-sm-7">
|
||||||
@ -294,15 +274,10 @@
|
|||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
<label class="col-sm-4 col-form-label input-label">{{ $t('customers.state') }}</label>
|
<label class="col-sm-4 col-form-label input-label">{{ $t('customers.state') }}</label>
|
||||||
<div class="col-sm-7">
|
<div class="col-sm-7">
|
||||||
<base-select
|
<base-input
|
||||||
v-model="shippingState"
|
v-model="shipping.state"
|
||||||
:options="shippingStates"
|
type="text"
|
||||||
:searchable="true"
|
name="shippingState"
|
||||||
:show-labels="false"
|
|
||||||
:placeholder="$t('general.select_state')"
|
|
||||||
:disabled="isDisabledShippingState"
|
|
||||||
track-by="id"
|
|
||||||
label="name"
|
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -310,15 +285,10 @@
|
|||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
<label class="col-sm-4 col-form-label input-label">{{ $t('customers.city') }}</label>
|
<label class="col-sm-4 col-form-label input-label">{{ $t('customers.city') }}</label>
|
||||||
<div class="col-sm-7">
|
<div class="col-sm-7">
|
||||||
<base-select
|
<base-input
|
||||||
v-model="shippingCity"
|
v-model="shipping.city"
|
||||||
:options="shippingCities"
|
type="text"
|
||||||
:searchable="true"
|
name="shippingCity"
|
||||||
:show-labels="false"
|
|
||||||
:placeholder="$t('general.select_city')"
|
|
||||||
:disabled="isDisabledShippingCity"
|
|
||||||
track-by="id"
|
|
||||||
label="name"
|
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -372,16 +342,8 @@ export default {
|
|||||||
return {
|
return {
|
||||||
isLoading: false,
|
isLoading: false,
|
||||||
countryList: [],
|
countryList: [],
|
||||||
billingStates: [],
|
|
||||||
billingCities: [],
|
|
||||||
billingCountry: null,
|
billingCountry: null,
|
||||||
billingState: null,
|
|
||||||
billingCity: null,
|
|
||||||
shippingStates: [],
|
|
||||||
shippingCities: [],
|
|
||||||
shippingCountry: null,
|
shippingCountry: null,
|
||||||
shippingState: null,
|
|
||||||
shippingCity: null,
|
|
||||||
isCopyFromBilling: false,
|
isCopyFromBilling: false,
|
||||||
currencyList: [],
|
currencyList: [],
|
||||||
currency: '',
|
currency: '',
|
||||||
@ -442,61 +404,14 @@ export default {
|
|||||||
billingCountry () {
|
billingCountry () {
|
||||||
if (this.billingCountry) {
|
if (this.billingCountry) {
|
||||||
this.billing.country_id = this.billingCountry.id
|
this.billing.country_id = this.billingCountry.id
|
||||||
this.isDisabledBillingState = false
|
|
||||||
this.fetchBillingStates(this.billingCountry.id)
|
|
||||||
this.billingState = null
|
|
||||||
this.billingCity = null
|
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
billingState () {
|
|
||||||
if (this.billingState) {
|
|
||||||
this.billing.state_id = this.billingState.id
|
|
||||||
this.isDisabledBillingCity = false
|
|
||||||
this.fetchBillingCities(this.billingState.id)
|
|
||||||
this.billingCity = null
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
this.billingCity = null
|
|
||||||
this.isDisabledBillingCity = true
|
|
||||||
},
|
|
||||||
billingCity () {
|
|
||||||
if (this.billingCity) {
|
|
||||||
this.billing.city_id = this.billingCity.id
|
|
||||||
}
|
|
||||||
},
|
|
||||||
shippingCountry () {
|
shippingCountry () {
|
||||||
if (this.shippingCountry) {
|
if (this.shippingCountry) {
|
||||||
this.shipping.country_id = this.shippingCountry.id
|
this.shipping.country_id = this.shippingCountry.id
|
||||||
this.isDisabledShippingState = false
|
|
||||||
this.fetchShippingStates(this.shippingCountry.id)
|
|
||||||
if (this.isCopyFromBilling) {
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
this.shippingState = null
|
|
||||||
this.shippingCity = null
|
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
},
|
|
||||||
shippingState () {
|
|
||||||
if (this.shippingState) {
|
|
||||||
this.shipping.state_id = this.shippingState.id
|
|
||||||
this.isDisabledShippingCity = false
|
|
||||||
this.fetchShippingCities(this.shippingState.id)
|
|
||||||
if (this.isCopyFromBilling) {
|
|
||||||
this.isCopyFromBilling = false
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
this.shippingCity = null
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
this.shippingCity = null
|
|
||||||
this.isDisabledShippingCity = true
|
|
||||||
},
|
|
||||||
shippingCity () {
|
|
||||||
if (this.shippingCity) {
|
|
||||||
this.shipping.city_id = this.shippingCity.id
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted () {
|
mounted () {
|
||||||
@ -529,16 +444,8 @@ export default {
|
|||||||
addresses: []
|
addresses: []
|
||||||
}
|
}
|
||||||
|
|
||||||
this.billingStates = []
|
|
||||||
this.billingCities = []
|
|
||||||
this.billingCountry = null
|
this.billingCountry = null
|
||||||
this.billingState = null
|
|
||||||
this.billingCity = null
|
|
||||||
this.shippingStates = []
|
|
||||||
this.shippingCities = []
|
|
||||||
this.shippingCountry = null
|
this.shippingCountry = null
|
||||||
this.shippingState = null
|
|
||||||
this.shippingCity = null
|
|
||||||
|
|
||||||
this.billing = {...AddressStub}
|
this.billing = {...AddressStub}
|
||||||
this.shipping = {...AddressStub}
|
this.shipping = {...AddressStub}
|
||||||
@ -553,13 +460,9 @@ export default {
|
|||||||
this.isCopyFromBilling = true
|
this.isCopyFromBilling = true
|
||||||
this.shipping = {...this.billing, type: 'shipping'}
|
this.shipping = {...this.billing, type: 'shipping'}
|
||||||
this.shippingCountry = this.billingCountry
|
this.shippingCountry = this.billingCountry
|
||||||
this.shippingState = this.billingState
|
|
||||||
this.shippingCity = this.billingCity
|
|
||||||
} else {
|
} else {
|
||||||
this.shipping = {...AddressStub, type: 'shipping'}
|
this.shipping = {...AddressStub, type: 'shipping'}
|
||||||
this.shippingCountry = null
|
this.shippingCountry = null
|
||||||
this.shippingState = null
|
|
||||||
this.shippingCity = null
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
async loadData () {
|
async loadData () {
|
||||||
@ -633,30 +536,6 @@ export default {
|
|||||||
if (res) {
|
if (res) {
|
||||||
this.countryList = res.data.countries
|
this.countryList = res.data.countries
|
||||||
}
|
}
|
||||||
},
|
|
||||||
async fetchBillingStates (id) {
|
|
||||||
let res = await window.axios.get(`/api/states/${id}`)
|
|
||||||
if (res) {
|
|
||||||
this.billingStates = res.data.states
|
|
||||||
}
|
|
||||||
},
|
|
||||||
async fetchBillingCities (id) {
|
|
||||||
let res = await window.axios.get(`/api/cities/${id}`)
|
|
||||||
if (res) {
|
|
||||||
this.billingCities = res.data.cities
|
|
||||||
}
|
|
||||||
},
|
|
||||||
async fetchShippingStates (id) {
|
|
||||||
let res = await window.axios.get(`/api/states/${id}`)
|
|
||||||
if (res) {
|
|
||||||
this.shippingStates = res.data.states
|
|
||||||
}
|
|
||||||
},
|
|
||||||
async fetchShippingCities (id) {
|
|
||||||
let res = await window.axios.get(`/api/cities/${id}`)
|
|
||||||
if (res) {
|
|
||||||
this.shippingCities = res.data.cities
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -87,5 +87,16 @@ export default {
|
|||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.log(e)
|
console.log(e)
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
checkValidUrl (url) {
|
||||||
|
let pattern = new RegExp('^(https?:\\/\\/)?' + // protocol
|
||||||
|
'((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|' + // domain name
|
||||||
|
'((\\d{1,3}\\.){3}\\d{1,3}))' + // OR ip (v4) address
|
||||||
|
'(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*' + // port and path
|
||||||
|
'(\\?[;&a-z\\d%_.~+=-]*)?' + // query string
|
||||||
|
'(\\#[-a-z\\d_]*)?$', 'i') // fragment locator
|
||||||
|
|
||||||
|
return !!pattern.test(url)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,821 +0,0 @@
|
|||||||
export default {
|
|
||||||
navigation: {
|
|
||||||
// key : 'singular | plural'
|
|
||||||
dashboard: 'Dashboard',
|
|
||||||
customers: 'Customers',
|
|
||||||
items: 'Items',
|
|
||||||
invoices: 'Invoices',
|
|
||||||
expenses: 'Expenses',
|
|
||||||
estimates: 'Estimates',
|
|
||||||
payments: 'Payments',
|
|
||||||
reports: 'Reports',
|
|
||||||
settings: 'Settings',
|
|
||||||
logout: 'Logout'
|
|
||||||
},
|
|
||||||
general: {
|
|
||||||
view_pdf: 'View PDF',
|
|
||||||
download_pdf: 'Download PDF',
|
|
||||||
save: 'Save',
|
|
||||||
cancel: 'Cancel',
|
|
||||||
update: 'Update',
|
|
||||||
download: 'Download',
|
|
||||||
from_date: 'From Date',
|
|
||||||
to_date: 'To Date',
|
|
||||||
from: 'From',
|
|
||||||
to: 'To',
|
|
||||||
go_back: 'Go Back',
|
|
||||||
back_to_login: 'Back to Login?',
|
|
||||||
home: 'Home',
|
|
||||||
filter: 'Filter',
|
|
||||||
delete: 'Delete',
|
|
||||||
edit: 'Edit',
|
|
||||||
view: 'View',
|
|
||||||
add_new_item: 'Add New Item',
|
|
||||||
clear_all: 'Clear All',
|
|
||||||
showing: 'Showing',
|
|
||||||
of: 'of',
|
|
||||||
actions: 'Actions',
|
|
||||||
subtotal: 'SUBTOTAL',
|
|
||||||
discount: 'DISCOUNT',
|
|
||||||
fixed: 'Fixed',
|
|
||||||
percentage: 'Percentage',
|
|
||||||
tax: 'TAX',
|
|
||||||
total_amount: 'TOTAL AMOUNT',
|
|
||||||
bill_to: 'Bill to',
|
|
||||||
ship_to: 'Ship to',
|
|
||||||
due: 'Due',
|
|
||||||
draft: 'Draft',
|
|
||||||
sent: 'Sent',
|
|
||||||
all: 'All',
|
|
||||||
select_all: 'Select All',
|
|
||||||
choose_file: 'Click here to choose a file',
|
|
||||||
choose_template: 'Choose a template',
|
|
||||||
choose: 'Choose',
|
|
||||||
remove: 'Remove',
|
|
||||||
powered_by: 'Powered by',
|
|
||||||
bytefury: 'Bytefury',
|
|
||||||
select_a_status: 'Select a status',
|
|
||||||
select_a_tax: 'Select a tax',
|
|
||||||
search: 'Search',
|
|
||||||
are_you_sure: 'Are you sure?',
|
|
||||||
list_is_empty: 'List is empty.',
|
|
||||||
no_tax_found: 'No tax found!',
|
|
||||||
four_zero_four: '404',
|
|
||||||
you_got_lost: 'Whoops! You got Lost!',
|
|
||||||
go_home: 'Go Home',
|
|
||||||
|
|
||||||
setting_updated: 'Setting updated successfully',
|
|
||||||
select_state: 'Select state',
|
|
||||||
select_country: 'Select Country',
|
|
||||||
select_city: 'Select City',
|
|
||||||
street_1: 'Street 1',
|
|
||||||
street_2: 'Street 2',
|
|
||||||
action_failed: 'Action Failed'
|
|
||||||
},
|
|
||||||
dashboard: {
|
|
||||||
select_year: 'Select year',
|
|
||||||
cards: {
|
|
||||||
due_amount: 'Amount Due',
|
|
||||||
customers: 'Customers',
|
|
||||||
invoices: 'Invoices',
|
|
||||||
estimates: 'Estimates'
|
|
||||||
},
|
|
||||||
chart_info: {
|
|
||||||
total_sales: 'Sales',
|
|
||||||
total_receipts: 'Receipts',
|
|
||||||
total_expense: 'Expenses',
|
|
||||||
net_income: 'Net Income',
|
|
||||||
year: 'Select year'
|
|
||||||
},
|
|
||||||
weekly_invoices: {
|
|
||||||
title: 'Weekly Invoices'
|
|
||||||
},
|
|
||||||
monthly_chart: {
|
|
||||||
title: 'Sales & Expenses'
|
|
||||||
},
|
|
||||||
recent_invoices_card: {
|
|
||||||
title: 'Due Invoices',
|
|
||||||
due_on: 'Due On',
|
|
||||||
customer: 'Customer',
|
|
||||||
amount_due: 'Amount Due',
|
|
||||||
actions: 'Actions',
|
|
||||||
view_all: 'View All'
|
|
||||||
},
|
|
||||||
recent_estimate_card: {
|
|
||||||
title: 'Recent Estimates',
|
|
||||||
date: 'Date',
|
|
||||||
customer: 'Customer',
|
|
||||||
amount_due: 'Amount Due',
|
|
||||||
actions: 'Actions',
|
|
||||||
view_all: 'View All'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
tax_types: {
|
|
||||||
name: 'Name',
|
|
||||||
description: 'Description',
|
|
||||||
percent: 'Percent',
|
|
||||||
compound_tax: 'Compound Tax'
|
|
||||||
},
|
|
||||||
customers: {
|
|
||||||
title: 'Customers',
|
|
||||||
add_customer: 'Add Customer',
|
|
||||||
contacts_list: 'Customer List',
|
|
||||||
name: 'Name',
|
|
||||||
display_name: 'Display Name',
|
|
||||||
primary_contact_name: 'Primary Contact Name',
|
|
||||||
contact_name: 'Contact Name',
|
|
||||||
amount_due: 'Amount Due',
|
|
||||||
email: 'Email',
|
|
||||||
address: 'Address',
|
|
||||||
phone: 'Phone',
|
|
||||||
website: 'Website',
|
|
||||||
country: 'Country',
|
|
||||||
state: 'State',
|
|
||||||
city: 'City',
|
|
||||||
zip_code: 'Zip Code',
|
|
||||||
added_on: 'Added On',
|
|
||||||
action: 'Action',
|
|
||||||
password: 'Password',
|
|
||||||
street_number: 'Street Number',
|
|
||||||
primary_currency: 'Primary Currency',
|
|
||||||
add_new_customer: 'Add New Customer',
|
|
||||||
save_customer: 'Save Customer',
|
|
||||||
update_customer: 'Update Customer',
|
|
||||||
customer: 'Customer | Customers',
|
|
||||||
new_customer: 'New Customer',
|
|
||||||
edit_customer: 'Edit Customer',
|
|
||||||
basic_info: 'Basic Info',
|
|
||||||
billing_address: 'Billing Address',
|
|
||||||
shipping_address: 'Shipping Address',
|
|
||||||
copy_billing_address: 'Copy from Billing',
|
|
||||||
no_customers: 'No customers yet!',
|
|
||||||
no_customers_found: 'No customers found!',
|
|
||||||
list_of_customers: 'This section will contain the list of customers.',
|
|
||||||
primary_display_name: 'Primary Display Name',
|
|
||||||
select_currency: 'Select currency',
|
|
||||||
select_a_customer: 'Select a customer',
|
|
||||||
type_or_click: 'Type or click to select',
|
|
||||||
|
|
||||||
confirm_delete: 'You will not be able to recover this Customer | You will not be able to recover these Customers',
|
|
||||||
created_message: 'Customer created successfully',
|
|
||||||
updated_message: 'Customer updated successfully',
|
|
||||||
deleted_message: 'Customer deleted successfully | Customers deleted successfully'
|
|
||||||
},
|
|
||||||
items: {
|
|
||||||
title: 'Items',
|
|
||||||
items_list: 'Items List',
|
|
||||||
name: 'Name',
|
|
||||||
unit: 'Unit',
|
|
||||||
description: 'Description',
|
|
||||||
added_on: 'Added On',
|
|
||||||
price: 'Price',
|
|
||||||
date_of_creation: 'Date Of Creation',
|
|
||||||
action: 'Action',
|
|
||||||
add_item: 'Add Item',
|
|
||||||
save_item: 'Save Item',
|
|
||||||
update_item: 'Update Item',
|
|
||||||
item: 'Item | Items',
|
|
||||||
add_new_item: 'Add New Item',
|
|
||||||
new_item: 'New Item',
|
|
||||||
edit_item: 'Edit Item',
|
|
||||||
no_items: 'No items yet!',
|
|
||||||
list_of_items: 'This section will contain the list of items.',
|
|
||||||
select_a_unit: 'select unit',
|
|
||||||
|
|
||||||
item_attached_message: 'Cannot delete an item which is already in use',
|
|
||||||
confirm_delete: 'You will not be able to recover this Item | You will not be able to recover these Items',
|
|
||||||
created_message: 'Item created successfully',
|
|
||||||
updated_message: 'Item updated successfully',
|
|
||||||
deleted_message: 'Item deleted successfully | Items deleted successfully'
|
|
||||||
},
|
|
||||||
estimates: {
|
|
||||||
title: 'Estimates',
|
|
||||||
estimate: 'Estimate | Estimates',
|
|
||||||
estimates_list: 'Estimates List',
|
|
||||||
days: '{days} Days',
|
|
||||||
months: '{months} Month',
|
|
||||||
years: '{years} Year',
|
|
||||||
all: 'All',
|
|
||||||
paid: 'Paid',
|
|
||||||
unpaid: 'Unpaid',
|
|
||||||
customer: 'CUSTOMER',
|
|
||||||
ref_no: 'REF NO.',
|
|
||||||
number: 'NUMBER',
|
|
||||||
amount_due: 'AMOUNT DUE',
|
|
||||||
partially_paid: 'Partially Paid',
|
|
||||||
total: 'Total',
|
|
||||||
discount: 'Discount',
|
|
||||||
sub_total: 'Sub Total',
|
|
||||||
estimate_number: 'Estimate Number',
|
|
||||||
ref_number: 'Ref Number',
|
|
||||||
contact: 'Contact',
|
|
||||||
add_item: 'Add an Item',
|
|
||||||
date: 'Date',
|
|
||||||
due_date: 'Due Date',
|
|
||||||
expiry_date: 'Expiry Date',
|
|
||||||
status: 'Status',
|
|
||||||
add_tax: 'Add Tax',
|
|
||||||
amount: 'Amount',
|
|
||||||
action: 'Action',
|
|
||||||
notes: 'Notes',
|
|
||||||
tax: 'Tax',
|
|
||||||
estimate_template: 'Template',
|
|
||||||
convert_to_invoice: 'Convert to Invoice',
|
|
||||||
mark_as_sent: 'Mark as Sent',
|
|
||||||
send_estimate: 'Send Estimate',
|
|
||||||
record_payment: 'Record Payment',
|
|
||||||
add_estimate: 'Add Estimate',
|
|
||||||
save_estimate: 'Save Estimate',
|
|
||||||
confirm_conversion: 'You want to convert this Estimate into Invoice?',
|
|
||||||
conversion_message: 'Invoice created successful',
|
|
||||||
confirm_send_estimate: 'This estimate will be sent via email to the customer',
|
|
||||||
confirm_mark_as_sent: 'This estimate will be marked as sent',
|
|
||||||
confirm_mark_as_accepted: 'This estimate will be marked as Accepted',
|
|
||||||
confirm_mark_as_rejected: 'This estimate will be marked as Rejected',
|
|
||||||
no_matching_estimates: 'There are no matching estimates!',
|
|
||||||
mark_as_sent_successfully: 'Estimate marked as sent successfully',
|
|
||||||
send_estimate_successfully: 'Estimate sent successfully',
|
|
||||||
errors: {
|
|
||||||
required: 'Field is required'
|
|
||||||
},
|
|
||||||
accepted: 'Accepted',
|
|
||||||
sent: 'Sent',
|
|
||||||
draft: 'Draft',
|
|
||||||
declined: 'Declined',
|
|
||||||
new_estimate: 'New Estimate',
|
|
||||||
add_new_estimate: 'Add New Estimate',
|
|
||||||
update_Estimate: 'Update Estimate',
|
|
||||||
edit_estimate: 'Edit Estimate',
|
|
||||||
items: 'items',
|
|
||||||
Estimate: 'Estimate | Estimates',
|
|
||||||
add_new_tax: 'Add New Tax',
|
|
||||||
no_estimates: 'No estimates yet!',
|
|
||||||
list_of_estimates: 'This section will contain the list of estimates.',
|
|
||||||
mark_as_rejected: 'Mark as rejected',
|
|
||||||
mark_as_accepted: 'Mark as accepted',
|
|
||||||
|
|
||||||
marked_as_accepted_message: 'Estimate marked as accepted',
|
|
||||||
marked_as_rejected_message: 'Estimate marked as rejected',
|
|
||||||
confirm_delete: 'You will not be able to recover this Estimate | You will not be able to recover these Estimates',
|
|
||||||
created_message: 'Estimate created successfully',
|
|
||||||
updated_message: 'Estimate updated successfully',
|
|
||||||
deleted_message: 'Estimate deleted successfully | Estimates deleted successfully',
|
|
||||||
user_email_does_not_exist: 'User email does not exist',
|
|
||||||
something_went_wrong: 'something went wrong',
|
|
||||||
item: {
|
|
||||||
title: 'Item Title',
|
|
||||||
description: 'Description',
|
|
||||||
quantity: 'Quantity',
|
|
||||||
price: 'Price',
|
|
||||||
discount: 'Discount',
|
|
||||||
total: 'Total',
|
|
||||||
total_discount: 'Total Discount',
|
|
||||||
sub_total: 'Sub Total',
|
|
||||||
tax: 'Tax',
|
|
||||||
amount: 'Amount',
|
|
||||||
select_an_item: 'Type or click to select an item',
|
|
||||||
type_item_description: 'Type Item Description (optional)'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
invoices: {
|
|
||||||
title: 'Invoices',
|
|
||||||
invoices_list: 'Invoices List',
|
|
||||||
days: '{days} Days',
|
|
||||||
months: '{months} Month',
|
|
||||||
years: '{years} Year',
|
|
||||||
all: 'All',
|
|
||||||
paid: 'Paid',
|
|
||||||
unpaid: 'Unpaid',
|
|
||||||
customer: 'CUSTOMER',
|
|
||||||
paid_status: 'PAID STATUS',
|
|
||||||
ref_no: 'REF NO.',
|
|
||||||
number: 'NUMBER',
|
|
||||||
amount_due: 'AMOUNT DUE',
|
|
||||||
partially_paid: 'Partially Paid',
|
|
||||||
total: 'Total',
|
|
||||||
discount: 'Discount',
|
|
||||||
sub_total: 'Sub Total',
|
|
||||||
invoice: 'Invoice | Invoices',
|
|
||||||
invoice_number: 'Invoice Number',
|
|
||||||
ref_number: 'Ref Number',
|
|
||||||
contact: 'Contact',
|
|
||||||
add_item: 'Add an Item',
|
|
||||||
date: 'Date',
|
|
||||||
due_date: 'Due Date',
|
|
||||||
status: 'Status',
|
|
||||||
add_tax: 'Add Tax',
|
|
||||||
amount: 'Amount',
|
|
||||||
action: 'Action',
|
|
||||||
notes: 'Notes',
|
|
||||||
view: 'View',
|
|
||||||
send_invoice: 'Send Invoice',
|
|
||||||
invoice_template: 'Invoice Template',
|
|
||||||
template: 'Template',
|
|
||||||
mark_as_sent: 'Mark as sent',
|
|
||||||
confirm_send_invoice: 'This invoice will be sent via email to the customer',
|
|
||||||
invoice_mark_as_sent: 'This invoice will be marked as sent',
|
|
||||||
confirm_send: 'This invoice will be sent via email to the customer',
|
|
||||||
invoice_date: 'Invoice Date',
|
|
||||||
record_payment: 'Record Payment',
|
|
||||||
add_new_invoice: 'Add New Invoice',
|
|
||||||
update_expense: 'Update Expense',
|
|
||||||
edit_invoice: 'Edit Invoice',
|
|
||||||
new_invoice: 'New Invoice',
|
|
||||||
save_invoice: 'Save Invoice',
|
|
||||||
update_invoice: 'Update Invoice',
|
|
||||||
add_new_tax: 'Add New Tax',
|
|
||||||
no_invoices: 'No Invoices yet!',
|
|
||||||
list_of_invoices: 'This section will contain the list of invoices.',
|
|
||||||
select_invoice: 'Select Invoice',
|
|
||||||
no_matching_invoices: 'There are no matching invoices!',
|
|
||||||
mark_as_sent_successfully: 'Invoice marked as sent successfully',
|
|
||||||
send_invoice_successfully: 'Invoice sent successfully',
|
|
||||||
item: {
|
|
||||||
title: 'Item Title',
|
|
||||||
description: 'Description',
|
|
||||||
quantity: 'Quantity',
|
|
||||||
price: 'Price',
|
|
||||||
discount: 'Discount',
|
|
||||||
total: 'Total',
|
|
||||||
total_discount: 'Total Discount',
|
|
||||||
sub_total: 'Sub Total',
|
|
||||||
tax: 'Tax',
|
|
||||||
amount: 'Amount',
|
|
||||||
select_an_item: 'Type or click to select an item',
|
|
||||||
type_item_description: 'Type Item Description (optional)'
|
|
||||||
},
|
|
||||||
|
|
||||||
payment_attached_message: 'One of the selected invoices already have a payment attached to it. Make sure to delete the attached payments first in order to go ahead with the removal',
|
|
||||||
confirm_delete: 'You will not be able to recover this Invoice | You will not be able to recover these Invoices',
|
|
||||||
created_message: 'Invoice created successfully',
|
|
||||||
updated_message: 'Invoice updated successfully',
|
|
||||||
deleted_message: 'Invoice deleted successfully | Invoices deleted successfully',
|
|
||||||
marked_as_sent_message: 'Invoice marked as sent successfully',
|
|
||||||
user_email_does_not_exist: 'User email does not exist',
|
|
||||||
something_went_wrong: 'something went wrong',
|
|
||||||
invalid_due_amount_message: 'Total Invoice amount cannot be less than total paid amount for this Invoice. Please update the invoice or delete the associated payments to continue.'
|
|
||||||
},
|
|
||||||
credit_notes: {
|
|
||||||
title: 'Credit Notes',
|
|
||||||
credit_notes_list: 'Credit Notes List',
|
|
||||||
// Fields
|
|
||||||
credit_notes: 'Credit Notes',
|
|
||||||
contact: 'Contact',
|
|
||||||
date: 'Date',
|
|
||||||
amount: 'Amount',
|
|
||||||
action: 'Action',
|
|
||||||
credit_number: 'Credit Number',
|
|
||||||
notes: 'Notes',
|
|
||||||
confirm_delete: 'Do you want to delete this credit note?',
|
|
||||||
item: {
|
|
||||||
title: 'Item Title',
|
|
||||||
description: 'Description',
|
|
||||||
quantity: 'Quantity',
|
|
||||||
price: 'Price',
|
|
||||||
discount: 'Discount',
|
|
||||||
total: 'Total',
|
|
||||||
total_discount: 'Total Discount',
|
|
||||||
sub_total: 'Sub Total',
|
|
||||||
tax: 'Tax'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
payments: {
|
|
||||||
title: 'Payments',
|
|
||||||
payments_list: 'Payments List',
|
|
||||||
record_payment: 'Record Payment',
|
|
||||||
// Fields
|
|
||||||
customer: 'Customer',
|
|
||||||
date: 'Date',
|
|
||||||
amount: 'Amount',
|
|
||||||
action: 'Action',
|
|
||||||
payment_number: 'Payment Number',
|
|
||||||
payment_mode: 'Payment Mode',
|
|
||||||
invoice: 'Invoice',
|
|
||||||
note: 'Note',
|
|
||||||
add_payment: 'Add Payment',
|
|
||||||
new_payment: 'New Payment',
|
|
||||||
edit_payment: 'Edit Payment',
|
|
||||||
view_payment: 'View Payment',
|
|
||||||
add_new_payment: 'Add New Payment',
|
|
||||||
save_payment: 'Save Payment',
|
|
||||||
update_payment: 'Update Payment',
|
|
||||||
payment: 'Payment | Payments',
|
|
||||||
no_payments: 'No payments yet!',
|
|
||||||
list_of_payments: 'This section will contain the list of payments.',
|
|
||||||
select_payment_mode: 'Select payment mode',
|
|
||||||
|
|
||||||
confirm_delete: 'You will not be able to recover this Payment | You will not be able to recover these Payments',
|
|
||||||
created_message: 'Payment created successfully',
|
|
||||||
updated_message: 'Payment updated successfully',
|
|
||||||
deleted_message: 'Payment deleted successfully | Payments deleted successfully',
|
|
||||||
invalid_amount_message: 'Payment amount is invalid'
|
|
||||||
},
|
|
||||||
expenses: {
|
|
||||||
title: 'Expenses',
|
|
||||||
expenses_list: 'Expenses List',
|
|
||||||
// Fields
|
|
||||||
expense_title: 'Title',
|
|
||||||
contact: 'Contact',
|
|
||||||
category: 'Category',
|
|
||||||
from_date: 'From Date',
|
|
||||||
to_date: 'To Date',
|
|
||||||
expense_date: 'Date',
|
|
||||||
description: 'Description',
|
|
||||||
receipt: 'Receipt',
|
|
||||||
amount: 'Amount',
|
|
||||||
action: 'Action',
|
|
||||||
note: 'Note',
|
|
||||||
category_id: 'Category Id',
|
|
||||||
date: 'Expense Date',
|
|
||||||
add_expense: 'Add Expense',
|
|
||||||
add_new_expense: 'Add New Expense',
|
|
||||||
save_expense: 'Save Expense',
|
|
||||||
update_expense: 'Update Expense',
|
|
||||||
download_receipt: 'Download Receipt',
|
|
||||||
edit_expense: 'Edit Expense',
|
|
||||||
new_expense: 'New Expense',
|
|
||||||
expense: 'Expense | Expenses',
|
|
||||||
no_expenses: 'No expenses yet!',
|
|
||||||
list_of_expenses: 'This section will contain the list of expenses.',
|
|
||||||
|
|
||||||
confirm_delete: 'You will not be able to recover this Expense | You will not be able to recover these Expenses',
|
|
||||||
created_message: 'Expense created successfully',
|
|
||||||
updated_message: 'Expense updated successfully',
|
|
||||||
deleted_message: 'Expense deleted successfully | Expenses deleted successfully',
|
|
||||||
categories: {
|
|
||||||
categories_list: 'Categories List',
|
|
||||||
title: 'Title',
|
|
||||||
name: 'Name',
|
|
||||||
description: 'Description',
|
|
||||||
amount: 'Amount',
|
|
||||||
actions: 'Actions',
|
|
||||||
add_category: 'Add Category',
|
|
||||||
new_category: 'New Category',
|
|
||||||
category: 'Category | Categories',
|
|
||||||
select_a_category: 'Select a category'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
login: {
|
|
||||||
email: 'Email',
|
|
||||||
password: 'Password',
|
|
||||||
forgot_password: 'Forgot Password?',
|
|
||||||
or_signIn_with: 'or Sign in with:',
|
|
||||||
login: 'Login',
|
|
||||||
register: 'Register',
|
|
||||||
reset_password: 'Reset Password',
|
|
||||||
password_reset_successfully: 'Password Reset Successfully',
|
|
||||||
enter_email: 'Enter email',
|
|
||||||
enter_password: 'Enter Password',
|
|
||||||
retype_password: 'Retype Password',
|
|
||||||
login_placeholder: 'mail@example.com'
|
|
||||||
},
|
|
||||||
reports: {
|
|
||||||
title: 'Report',
|
|
||||||
from_date: 'From Date',
|
|
||||||
to_date: 'To Date',
|
|
||||||
status: 'Status',
|
|
||||||
paid: 'Paid',
|
|
||||||
unpaid: 'Unpaid',
|
|
||||||
download_pdf: 'Download PDF',
|
|
||||||
view_pdf: 'View PDF',
|
|
||||||
update_report: 'Update Report',
|
|
||||||
report: 'Report | Reports',
|
|
||||||
profit_loss: {
|
|
||||||
profit_loss: 'Profit & Loss',
|
|
||||||
to_date: 'To Date',
|
|
||||||
from_date: 'From Date',
|
|
||||||
date_range: 'Select Date Range'
|
|
||||||
},
|
|
||||||
sales: {
|
|
||||||
sales: 'Sales',
|
|
||||||
date_range: 'Select Date Range',
|
|
||||||
to_date: 'To Date',
|
|
||||||
from_date: 'From Date',
|
|
||||||
report_type: 'Report Type'
|
|
||||||
},
|
|
||||||
taxes: {
|
|
||||||
taxes: 'Taxes',
|
|
||||||
to_date: 'To Date',
|
|
||||||
from_date: 'From Date',
|
|
||||||
date_range: 'Select Date Range'
|
|
||||||
},
|
|
||||||
errors: {
|
|
||||||
required: 'Field is required'
|
|
||||||
},
|
|
||||||
invoices: {
|
|
||||||
invoice: 'Invoice',
|
|
||||||
invoice_date: 'Invoice Date',
|
|
||||||
due_date: 'Due Date',
|
|
||||||
amount: 'Amount',
|
|
||||||
contact_name: 'Contact Name',
|
|
||||||
status: 'Status'
|
|
||||||
},
|
|
||||||
estimates: {
|
|
||||||
estimate: 'Estimate',
|
|
||||||
estimate_date: 'Estimate Date',
|
|
||||||
due_date: 'Due Date',
|
|
||||||
estimate_number: 'Estimate Number',
|
|
||||||
ref_number: 'Ref Number',
|
|
||||||
amount: 'Amount',
|
|
||||||
contact_name: 'Contact Name',
|
|
||||||
status: 'Status'
|
|
||||||
},
|
|
||||||
expenses: {
|
|
||||||
expenses: 'Expenses',
|
|
||||||
category: 'Category',
|
|
||||||
date: 'Date',
|
|
||||||
amount: 'Amount',
|
|
||||||
to_date: 'To Date',
|
|
||||||
from_date: 'From Date',
|
|
||||||
date_range: 'Select Date Range'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
settings: {
|
|
||||||
menu_title: {
|
|
||||||
account_settings: 'Account Settings',
|
|
||||||
company_information: 'Company Information',
|
|
||||||
preferences: 'Preferences',
|
|
||||||
notifications: 'Notifications',
|
|
||||||
tax_types: 'Tax Types',
|
|
||||||
expense_category: 'Expense Categories',
|
|
||||||
update_app: 'Update App'
|
|
||||||
},
|
|
||||||
title: 'Settings',
|
|
||||||
setting: 'Settings | Settings',
|
|
||||||
general: 'General',
|
|
||||||
language: 'Language',
|
|
||||||
primary_currency: 'Primary Currency',
|
|
||||||
timezone: 'Time Zone',
|
|
||||||
date_format: 'Date Format',
|
|
||||||
currencies: {
|
|
||||||
title: 'Currencies',
|
|
||||||
currency: 'Currency | Currencies',
|
|
||||||
currencies_list: 'Currencies List',
|
|
||||||
select_currency: 'Select Currency',
|
|
||||||
name: 'Name',
|
|
||||||
code: 'Code',
|
|
||||||
symbol: 'Symbol',
|
|
||||||
precision: 'Precision',
|
|
||||||
thousand_separator: 'Thousand Separator',
|
|
||||||
decimal_separator: 'Decimal Separator',
|
|
||||||
position: 'Position',
|
|
||||||
position_of_symbol: 'Position Of Symbol',
|
|
||||||
right: 'Right',
|
|
||||||
left: 'Left',
|
|
||||||
action: 'Action',
|
|
||||||
add_currency: 'Add Currency'
|
|
||||||
},
|
|
||||||
mail: {
|
|
||||||
host: 'Mail Host',
|
|
||||||
port: 'Mail Port',
|
|
||||||
driver: 'Mail Driver',
|
|
||||||
secret: 'Secret',
|
|
||||||
mailgun_secret: 'Mailgun Secret',
|
|
||||||
mailgun_domain: 'Domain',
|
|
||||||
mailgun_endpoint: 'Mailgun Endpoint',
|
|
||||||
ses_secret: 'SES Secret',
|
|
||||||
ses_key: 'SES Key',
|
|
||||||
password: 'Mail Password',
|
|
||||||
username: 'Mail Username',
|
|
||||||
mail_config: 'Mail Configuration',
|
|
||||||
from_name: 'From Mail Name',
|
|
||||||
from_mail: 'From Mail Address',
|
|
||||||
encryption: 'Mail Encryption',
|
|
||||||
mail_config_desc: 'Below is the form for Configuring Email driver for sending emails from the app. You can also configure third party providers like Sendgrid, SES etc.'
|
|
||||||
},
|
|
||||||
pdf: {
|
|
||||||
title: 'PDF Setting',
|
|
||||||
footer_text: 'Footer Text',
|
|
||||||
pdf_layout: 'PDF Layout'
|
|
||||||
},
|
|
||||||
company_info: {
|
|
||||||
company_info: 'Company info',
|
|
||||||
company_name: 'Company Name',
|
|
||||||
company_logo: 'Company Logo',
|
|
||||||
section_description: 'Information about your company that will be displayed on invoices, estimates and other documents created by Crater.',
|
|
||||||
phone: 'Phone',
|
|
||||||
country: 'Country',
|
|
||||||
state: 'State',
|
|
||||||
city: 'City',
|
|
||||||
address: 'Address',
|
|
||||||
zip: 'Zip',
|
|
||||||
save: 'Save',
|
|
||||||
updated_message: 'Company information updated successfully'
|
|
||||||
},
|
|
||||||
account_settings: {
|
|
||||||
profile_picture: 'Profile Picture',
|
|
||||||
name: 'Name',
|
|
||||||
email: 'Email',
|
|
||||||
password: 'Password',
|
|
||||||
confirm_password: 'Confirm Password',
|
|
||||||
account_settings: 'Account Settings',
|
|
||||||
save: 'Save',
|
|
||||||
section_description: 'You can update your name, email & password using the form below.',
|
|
||||||
updated_message: 'Account Settings updated successfully'
|
|
||||||
},
|
|
||||||
user_profile: {
|
|
||||||
name: 'Name',
|
|
||||||
email: 'Email',
|
|
||||||
password: 'Password',
|
|
||||||
confirm_password: 'Confirm Password'
|
|
||||||
},
|
|
||||||
notification: {
|
|
||||||
title: 'Notification',
|
|
||||||
email: 'Send Notifications to',
|
|
||||||
description: 'Which email notifications would you like to receive when something changes?',
|
|
||||||
invoice_viewed: 'Invoice viewed',
|
|
||||||
invoice_viewed_desc: 'When your customer views the invoice sent via crater dashboard.',
|
|
||||||
estimate_viewed: 'Estimate viewed',
|
|
||||||
estimate_viewed_desc: 'When your customer views the estimate sent via crater dashboard.',
|
|
||||||
save: 'Save',
|
|
||||||
email_save_message: 'Email saved successfully',
|
|
||||||
please_enter_email: 'Please Enter Email'
|
|
||||||
},
|
|
||||||
tax_types: {
|
|
||||||
title: 'Tax Types',
|
|
||||||
add_tax: 'Add Tax',
|
|
||||||
description: 'You can add or Remove Taxes as you please. Crater supports Taxes on Individual Items as well as on the invoice.',
|
|
||||||
add_new_tax: 'Add New Tax',
|
|
||||||
tax_settings: 'Tax Settings',
|
|
||||||
tax_per_item: 'Tax Per Item',
|
|
||||||
tax_name: 'Tax Name',
|
|
||||||
compound_tax: 'Compound Tax',
|
|
||||||
percent: 'Percent',
|
|
||||||
action: 'Action',
|
|
||||||
tax_setting_description: 'Enable this if you want to add taxes to individual invoice items. By default, taxes are added directly to the invoice.',
|
|
||||||
created_message: 'Tax type created successfully',
|
|
||||||
updated_message: 'Tax type updated successfully',
|
|
||||||
deleted_message: 'Tax type deleted successfully',
|
|
||||||
confirm_delete: 'You will not be able to recover this Tax Type',
|
|
||||||
already_in_use: 'Tax is already in use'
|
|
||||||
},
|
|
||||||
expense_category: {
|
|
||||||
title: 'Expense Categories',
|
|
||||||
action: 'Action',
|
|
||||||
description: 'Categories are required for adding expense entries. You can Add or Remove these categories according to your preference.',
|
|
||||||
add_new_category: 'Add New Category',
|
|
||||||
category_name: 'Category Name',
|
|
||||||
category_description: 'Description',
|
|
||||||
created_message: 'Expense Category created successfully',
|
|
||||||
deleted_message: 'Expense category deleted successfully',
|
|
||||||
updated_message: 'Expense category updated successfully',
|
|
||||||
confirm_delete: 'You will not be able to recover this Expense Category',
|
|
||||||
already_in_use: 'Category is already in use'
|
|
||||||
},
|
|
||||||
preferences: {
|
|
||||||
currency: 'Currency',
|
|
||||||
language: 'Language',
|
|
||||||
time_zone: 'Time Zone',
|
|
||||||
fiscal_year: 'Financial Year',
|
|
||||||
date_format: 'Date Format',
|
|
||||||
discount_setting: 'Discount Setting',
|
|
||||||
discount_per_item: 'Discount Per Item ',
|
|
||||||
discount_setting_description: 'Enable this if you want to add Discount to individual invoice items. By default, Discount are added directly to the invoice.',
|
|
||||||
save: 'Save',
|
|
||||||
preference: 'Preference | Preferences',
|
|
||||||
general_settings: 'Default preferences for the system.',
|
|
||||||
updated_message: 'Preferences updated successfully',
|
|
||||||
select_language: 'select language',
|
|
||||||
select_time_zone: 'select Time Zone',
|
|
||||||
select_date_formate: 'select Date Formate',
|
|
||||||
select_financial_year: 'select financial year'
|
|
||||||
},
|
|
||||||
update_app: {
|
|
||||||
title: 'Update App',
|
|
||||||
description: 'You can easily update Crater by checking for a new update by clicking the button below',
|
|
||||||
check_update: 'Check for updates',
|
|
||||||
avail_update: 'New Update available',
|
|
||||||
next_version: 'Next version',
|
|
||||||
update: 'Update Now',
|
|
||||||
update_progress: 'Update in progress...',
|
|
||||||
progress_text: 'It will just take a few minutes. Please do not refresh the screen or close the window before the update finishes',
|
|
||||||
update_success: 'App has been updated! Please wait while your browser window gets reloaded automatically.',
|
|
||||||
latest_message: 'No update available! You are on the latest version.',
|
|
||||||
current_version: 'Current Version'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
wizard: {
|
|
||||||
account_info: 'Account Information',
|
|
||||||
account_info_desc: 'Below details will be used to create the main Administrator account. Also you can change the details anytime after logging in.',
|
|
||||||
name: 'Name',
|
|
||||||
email: 'Email',
|
|
||||||
password: 'Password',
|
|
||||||
confirm_password: 'Confirm Password',
|
|
||||||
save_cont: 'Save & Continue',
|
|
||||||
company_info: 'Company Information',
|
|
||||||
company_info_desc: 'This information will be displayed on invoices. Note that you can edit this later on settings page.',
|
|
||||||
company_name: 'Company Name',
|
|
||||||
company_logo: 'Company Logo',
|
|
||||||
logo_preview: 'Logo Preview',
|
|
||||||
preferences: 'Preferences',
|
|
||||||
preferences_desc: 'Default preferences for the system.',
|
|
||||||
country: 'Country',
|
|
||||||
state: 'State',
|
|
||||||
city: 'City',
|
|
||||||
address: 'Address',
|
|
||||||
street: 'Street1' | 'Street2',
|
|
||||||
phone: 'Phone',
|
|
||||||
zip_code: 'Zip Code',
|
|
||||||
go_back: 'Go Back',
|
|
||||||
currency: 'Currency',
|
|
||||||
language: 'Language',
|
|
||||||
time_zone: 'Time Zone',
|
|
||||||
fiscal_year: 'Financial Year',
|
|
||||||
date_format: 'Date Format',
|
|
||||||
from_address: 'From Address',
|
|
||||||
username: 'Username',
|
|
||||||
next: 'Next',
|
|
||||||
continue: 'Continue',
|
|
||||||
skip: 'Skip',
|
|
||||||
database: {
|
|
||||||
database: 'Site URL & Database',
|
|
||||||
connection: 'Database Connection',
|
|
||||||
host: 'Database Host',
|
|
||||||
port: 'Database Port',
|
|
||||||
password: 'Database Password',
|
|
||||||
app_url: 'App URL',
|
|
||||||
username: 'Database Username',
|
|
||||||
db_name: 'Database Name',
|
|
||||||
desc: 'Create a database on your server and set the credentials using the form below.'
|
|
||||||
},
|
|
||||||
permissions: {
|
|
||||||
permissions: 'Permissions',
|
|
||||||
permission_confirm_title: 'Are you sure you want to continue?',
|
|
||||||
permission_confirm_desc: 'Folder permission check failed',
|
|
||||||
permission_desc: 'Below is the list of folder permissions which are required in order for the app to work. If the permission check fails, make sure to update your folder permissions.'
|
|
||||||
},
|
|
||||||
mail: {
|
|
||||||
host: 'Mail Host',
|
|
||||||
port: 'Mail Port',
|
|
||||||
driver: 'Mail Driver',
|
|
||||||
secret: 'Secret',
|
|
||||||
mailgun_secret: 'Mailgun Secret',
|
|
||||||
mailgun_domain: 'Domain',
|
|
||||||
mailgun_endpoint: 'Mailgun Endpoint',
|
|
||||||
ses_secret: 'SES Secret',
|
|
||||||
ses_key: 'SES Key',
|
|
||||||
password: 'Mail Password',
|
|
||||||
username: 'Mail Username',
|
|
||||||
mail_config: 'Mail Configuration',
|
|
||||||
from_name: 'From Mail Name',
|
|
||||||
from_mail: 'From Mail Address',
|
|
||||||
encryption: 'Mail Encryption',
|
|
||||||
mail_config_desc: 'Below is the form for Configuring Email driver for sending emails from the app. You can also configure third party providers like Sendgrid, SES etc.'
|
|
||||||
},
|
|
||||||
req: {
|
|
||||||
system_req: 'System Requirements',
|
|
||||||
php_req_version: 'Php (version {version} required)',
|
|
||||||
check_req: 'Check Requirements',
|
|
||||||
system_req_desc: 'Crater has a few server requirements. Make sure that your server has the required php version and all the extensions mentioned below.'
|
|
||||||
},
|
|
||||||
errors: {
|
|
||||||
migrate_failed: 'Migrate Failed',
|
|
||||||
database_variables_save_error: 'Unable to connect to the DB with Provided Values.',
|
|
||||||
mail_variables_save_error: 'Email configuration failed.',
|
|
||||||
connection_failed: 'Database connection failed',
|
|
||||||
database_should_be_empty: 'Database should be empty'
|
|
||||||
},
|
|
||||||
success: {
|
|
||||||
mail_variables_save_successfully: 'Email configured successfully',
|
|
||||||
database_variables_save_successfully: 'Database configured successfully.'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
layout_login: {
|
|
||||||
copyright_crater: 'Copyright @ Crater - 2019',
|
|
||||||
super_simple_invoicing: 'Super Simple Invoicing',
|
|
||||||
for_freelancer: 'for Freelancers &',
|
|
||||||
small_businesses: 'Small Businesses ',
|
|
||||||
crater_help: 'Crater helps you track expenses, record payments & generate beautiful',
|
|
||||||
invoices_and_estimates: 'invoices & estimates with ability to choose multiple templates.'
|
|
||||||
},
|
|
||||||
validation: {
|
|
||||||
invalid_url: 'Invalid url (ex: http://www.crater.com)',
|
|
||||||
required: 'Field is required',
|
|
||||||
email_incorrect: 'Incorrect Email.',
|
|
||||||
email_already_taken: 'The email has already been taken.',
|
|
||||||
email_does_not_exist: "User with given email doesn't exist",
|
|
||||||
send_reset_link: 'Send Reset Link',
|
|
||||||
not_yet: 'Not yet? Send it again',
|
|
||||||
password_min_length: 'Password must contain {count} characters',
|
|
||||||
name_min_length: 'Name must have at least {count} letters.',
|
|
||||||
enter_valid_tax_rate: 'Enter valid tax rate',
|
|
||||||
numbers_only: 'Numbers Only.',
|
|
||||||
characters_only: 'Characters Only.',
|
|
||||||
password_incorrect: 'Passwords must be identical',
|
|
||||||
password_length: 'Password must be {count} character long.',
|
|
||||||
qty_must_greater_than_zero: 'Quantity must be greater than zero.',
|
|
||||||
price_greater_than_zero: 'Price must be greater than zero.',
|
|
||||||
payment_greater_than_zero: 'Payment must be greater than zero.',
|
|
||||||
payment_greater_than_due_amount: 'Entered Payment is more than due amount of this invoice.',
|
|
||||||
quantity_maxlength: 'Quantity should not be greater than 20 digits.',
|
|
||||||
price_maxlength: 'Price should not be greater than 20 digits.',
|
|
||||||
price_minvalue: 'Price should be greater than 0.',
|
|
||||||
amount_maxlength: 'Amount should not be greater than 20 digits.',
|
|
||||||
amount_minvalue: 'Amount should be greater than 0.',
|
|
||||||
description_maxlength: 'Description should not be greater than 255 characters.',
|
|
||||||
maximum_options_error: 'Maximum of {max} options selected. First remove a selected option to select another.',
|
|
||||||
notes_maxlength: 'Notes should not be greater than 255 characters.',
|
|
||||||
address_maxlength: 'Address should not be greater than 255 characters.',
|
|
||||||
ref_number_maxlength: 'Ref Number should not be greater than 255 characters.'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
817
resources/assets/js/plugins/en.json
Normal file
817
resources/assets/js/plugins/en.json
Normal file
@ -0,0 +1,817 @@
|
|||||||
|
{
|
||||||
|
"navigation": {
|
||||||
|
"dashboard": "Dashboard",
|
||||||
|
"customers": "Customers",
|
||||||
|
"items": "Items",
|
||||||
|
"invoices": "Invoices",
|
||||||
|
"expenses": "Expenses",
|
||||||
|
"estimates": "Estimates",
|
||||||
|
"payments": "Payments",
|
||||||
|
"reports": "Reports",
|
||||||
|
"settings": "Settings",
|
||||||
|
"logout": "Logout"
|
||||||
|
},
|
||||||
|
"general": {
|
||||||
|
"view_pdf": "View PDF",
|
||||||
|
"download_pdf": "Download PDF",
|
||||||
|
"save": "Save",
|
||||||
|
"cancel": "Cancel",
|
||||||
|
"update": "Update",
|
||||||
|
"download": "Download",
|
||||||
|
"from_date": "From Date",
|
||||||
|
"to_date": "To Date",
|
||||||
|
"from": "From",
|
||||||
|
"to": "To",
|
||||||
|
"go_back": "Go Back",
|
||||||
|
"back_to_login": "Back to Login?",
|
||||||
|
"home": "Home",
|
||||||
|
"filter": "Filter",
|
||||||
|
"delete": "Delete",
|
||||||
|
"edit": "Edit",
|
||||||
|
"view": "View",
|
||||||
|
"add_new_item": "Add New Item",
|
||||||
|
"clear_all": "Clear All",
|
||||||
|
"showing": "Showing",
|
||||||
|
"of": "of",
|
||||||
|
"actions": "Actions",
|
||||||
|
"subtotal": "SUBTOTAL",
|
||||||
|
"discount": "DISCOUNT",
|
||||||
|
"fixed": "Fixed",
|
||||||
|
"percentage": "Percentage",
|
||||||
|
"tax": "TAX",
|
||||||
|
"total_amount": "TOTAL AMOUNT",
|
||||||
|
"bill_to": "Bill to",
|
||||||
|
"ship_to": "Ship to",
|
||||||
|
"due": "Due",
|
||||||
|
"draft": "Draft",
|
||||||
|
"sent": "Sent",
|
||||||
|
"all": "All",
|
||||||
|
"select_all": "Select All",
|
||||||
|
"choose_file": "Click here to choose a file",
|
||||||
|
"choose_template": "Choose a template",
|
||||||
|
"choose": "Choose",
|
||||||
|
"remove": "Remove",
|
||||||
|
"powered_by": "Powered by",
|
||||||
|
"bytefury": "Bytefury",
|
||||||
|
"select_a_status": "Select a status",
|
||||||
|
"select_a_tax": "Select a tax",
|
||||||
|
"search": "Search",
|
||||||
|
"are_you_sure": "Are you sure?",
|
||||||
|
"list_is_empty": "List is empty.",
|
||||||
|
"no_tax_found": "No tax found!",
|
||||||
|
"four_zero_four": "404",
|
||||||
|
"you_got_lost": "Whoops! You got Lost!",
|
||||||
|
"go_home": "Go Home",
|
||||||
|
|
||||||
|
"setting_updated": "Setting updated successfully",
|
||||||
|
"select_state": "Select state",
|
||||||
|
"select_country": "Select Country",
|
||||||
|
"select_city": "Select City",
|
||||||
|
"street_1": "Street 1",
|
||||||
|
"street_2": "Street 2",
|
||||||
|
"action_failed": "Action Failed"
|
||||||
|
},
|
||||||
|
"dashboard": {
|
||||||
|
"select_year": "Select year",
|
||||||
|
"cards": {
|
||||||
|
"due_amount": "Amount Due",
|
||||||
|
"customers": "Customers",
|
||||||
|
"invoices": "Invoices",
|
||||||
|
"estimates": "Estimates"
|
||||||
|
},
|
||||||
|
"chart_info": {
|
||||||
|
"total_sales": "Sales",
|
||||||
|
"total_receipts": "Receipts",
|
||||||
|
"total_expense": "Expenses",
|
||||||
|
"net_income": "Net Income",
|
||||||
|
"year": "Select year"
|
||||||
|
},
|
||||||
|
"weekly_invoices": {
|
||||||
|
"title": "Weekly Invoices"
|
||||||
|
},
|
||||||
|
"monthly_chart": {
|
||||||
|
"title": "Sales & Expenses"
|
||||||
|
},
|
||||||
|
"recent_invoices_card": {
|
||||||
|
"title": "Due Invoices",
|
||||||
|
"due_on": "Due On",
|
||||||
|
"customer": "Customer",
|
||||||
|
"amount_due": "Amount Due",
|
||||||
|
"actions": "Actions",
|
||||||
|
"view_all": "View All"
|
||||||
|
},
|
||||||
|
"recent_estimate_card": {
|
||||||
|
"title": "Recent Estimates",
|
||||||
|
"date": "Date",
|
||||||
|
"customer": "Customer",
|
||||||
|
"amount_due": "Amount Due",
|
||||||
|
"actions": "Actions",
|
||||||
|
"view_all": "View All"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"tax_types": {
|
||||||
|
"name": "Name",
|
||||||
|
"description": "Description",
|
||||||
|
"percent": "Percent",
|
||||||
|
"compound_tax": "Compound Tax"
|
||||||
|
},
|
||||||
|
"customers": {
|
||||||
|
"title": "Customers",
|
||||||
|
"add_customer": "Add Customer",
|
||||||
|
"contacts_list": "Customer List",
|
||||||
|
"name": "Name",
|
||||||
|
"display_name": "Display Name",
|
||||||
|
"primary_contact_name": "Primary Contact Name",
|
||||||
|
"contact_name": "Contact Name",
|
||||||
|
"amount_due": "Amount Due",
|
||||||
|
"email": "Email",
|
||||||
|
"address": "Address",
|
||||||
|
"phone": "Phone",
|
||||||
|
"website": "Website",
|
||||||
|
"country": "Country",
|
||||||
|
"state": "State",
|
||||||
|
"city": "City",
|
||||||
|
"zip_code": "Zip Code",
|
||||||
|
"added_on": "Added On",
|
||||||
|
"action": "Action",
|
||||||
|
"password": "Password",
|
||||||
|
"street_number": "Street Number",
|
||||||
|
"primary_currency": "Primary Currency",
|
||||||
|
"add_new_customer": "Add New Customer",
|
||||||
|
"save_customer": "Save Customer",
|
||||||
|
"update_customer": "Update Customer",
|
||||||
|
"customer": "Customer | Customers",
|
||||||
|
"new_customer": "New Customer",
|
||||||
|
"edit_customer": "Edit Customer",
|
||||||
|
"basic_info": "Basic Info",
|
||||||
|
"billing_address": "Billing Address",
|
||||||
|
"shipping_address": "Shipping Address",
|
||||||
|
"copy_billing_address": "Copy from Billing",
|
||||||
|
"no_customers": "No customers yet!",
|
||||||
|
"no_customers_found": "No customers found!",
|
||||||
|
"list_of_customers": "This section will contain the list of customers.",
|
||||||
|
"primary_display_name": "Primary Display Name",
|
||||||
|
"select_currency": "Select currency",
|
||||||
|
"select_a_customer": "Select a customer",
|
||||||
|
"type_or_click": "Type or click to select",
|
||||||
|
|
||||||
|
"confirm_delete": "You will not be able to recover this Customer | You will not be able to recover these Customers",
|
||||||
|
"created_message": "Customer created successfully",
|
||||||
|
"updated_message": "Customer updated successfully",
|
||||||
|
"deleted_message": "Customer deleted successfully | Customers deleted successfully"
|
||||||
|
},
|
||||||
|
"items": {
|
||||||
|
"title": "Items",
|
||||||
|
"items_list": "Items List",
|
||||||
|
"name": "Name",
|
||||||
|
"unit": "Unit",
|
||||||
|
"description": "Description",
|
||||||
|
"added_on": "Added On",
|
||||||
|
"price": "Price",
|
||||||
|
"date_of_creation": "Date Of Creation",
|
||||||
|
"action": "Action",
|
||||||
|
"add_item": "Add Item",
|
||||||
|
"save_item": "Save Item",
|
||||||
|
"update_item": "Update Item",
|
||||||
|
"item": "Item | Items",
|
||||||
|
"add_new_item": "Add New Item",
|
||||||
|
"new_item": "New Item",
|
||||||
|
"edit_item": "Edit Item",
|
||||||
|
"no_items": "No items yet!",
|
||||||
|
"list_of_items": "This section will contain the list of items.",
|
||||||
|
"select_a_unit": "select unit",
|
||||||
|
|
||||||
|
"item_attached_message": "Cannot delete an item which is already in use",
|
||||||
|
"confirm_delete": "You will not be able to recover this Item | You will not be able to recover these Items",
|
||||||
|
"created_message": "Item created successfully",
|
||||||
|
"updated_message": "Item updated successfully",
|
||||||
|
"deleted_message": "Item deleted successfully | Items deleted successfully"
|
||||||
|
},
|
||||||
|
"estimates": {
|
||||||
|
"title": "Estimates",
|
||||||
|
"estimate": "Estimate | Estimates",
|
||||||
|
"estimates_list": "Estimates List",
|
||||||
|
"days": "{days} Days",
|
||||||
|
"months": "{months} Month",
|
||||||
|
"years": "{years} Year",
|
||||||
|
"all": "All",
|
||||||
|
"paid": "Paid",
|
||||||
|
"unpaid": "Unpaid",
|
||||||
|
"customer": "CUSTOMER",
|
||||||
|
"ref_no": "REF NO.",
|
||||||
|
"number": "NUMBER",
|
||||||
|
"amount_due": "AMOUNT DUE",
|
||||||
|
"partially_paid": "Partially Paid",
|
||||||
|
"total": "Total",
|
||||||
|
"discount": "Discount",
|
||||||
|
"sub_total": "Sub Total",
|
||||||
|
"estimate_number": "Estimate Number",
|
||||||
|
"ref_number": "Ref Number",
|
||||||
|
"contact": "Contact",
|
||||||
|
"add_item": "Add an Item",
|
||||||
|
"date": "Date",
|
||||||
|
"due_date": "Due Date",
|
||||||
|
"expiry_date": "Expiry Date",
|
||||||
|
"status": "Status",
|
||||||
|
"add_tax": "Add Tax",
|
||||||
|
"amount": "Amount",
|
||||||
|
"action": "Action",
|
||||||
|
"notes": "Notes",
|
||||||
|
"tax": "Tax",
|
||||||
|
"estimate_template": "Template",
|
||||||
|
"convert_to_invoice": "Convert to Invoice",
|
||||||
|
"mark_as_sent": "Mark as Sent",
|
||||||
|
"send_estimate": "Send Estimate",
|
||||||
|
"record_payment": "Record Payment",
|
||||||
|
"add_estimate": "Add Estimate",
|
||||||
|
"save_estimate": "Save Estimate",
|
||||||
|
"confirm_conversion": "You want to convert this Estimate into Invoice?",
|
||||||
|
"conversion_message": "Invoice created successful",
|
||||||
|
"confirm_send_estimate": "This estimate will be sent via email to the customer",
|
||||||
|
"confirm_mark_as_sent": "This estimate will be marked as sent",
|
||||||
|
"confirm_mark_as_accepted": "This estimate will be marked as Accepted",
|
||||||
|
"confirm_mark_as_rejected": "This estimate will be marked as Rejected",
|
||||||
|
"no_matching_estimates": "There are no matching estimates!",
|
||||||
|
"mark_as_sent_successfully": "Estimate marked as sent successfully",
|
||||||
|
"send_estimate_successfully": "Estimate sent successfully",
|
||||||
|
"errors": {
|
||||||
|
"required": "Field is required"
|
||||||
|
},
|
||||||
|
"accepted": "Accepted",
|
||||||
|
"sent": "Sent",
|
||||||
|
"draft": "Draft",
|
||||||
|
"declined": "Declined",
|
||||||
|
"new_estimate": "New Estimate",
|
||||||
|
"add_new_estimate": "Add New Estimate",
|
||||||
|
"update_Estimate": "Update Estimate",
|
||||||
|
"edit_estimate": "Edit Estimate",
|
||||||
|
"items": "items",
|
||||||
|
"Estimate": "Estimate | Estimates",
|
||||||
|
"add_new_tax": "Add New Tax",
|
||||||
|
"no_estimates": "No estimates yet!",
|
||||||
|
"list_of_estimates": "This section will contain the list of estimates.",
|
||||||
|
"mark_as_rejected": "Mark as rejected",
|
||||||
|
"mark_as_accepted": "Mark as accepted",
|
||||||
|
|
||||||
|
"marked_as_accepted_message": "Estimate marked as accepted",
|
||||||
|
"marked_as_rejected_message": "Estimate marked as rejected",
|
||||||
|
"confirm_delete": "You will not be able to recover this Estimate | You will not be able to recover these Estimates",
|
||||||
|
"created_message": "Estimate created successfully",
|
||||||
|
"updated_message": "Estimate updated successfully",
|
||||||
|
"deleted_message": "Estimate deleted successfully | Estimates deleted successfully",
|
||||||
|
"user_email_does_not_exist": "User email does not exist",
|
||||||
|
"something_went_wrong": "something went wrong",
|
||||||
|
"item": {
|
||||||
|
"title": "Item Title",
|
||||||
|
"description": "Description",
|
||||||
|
"quantity": "Quantity",
|
||||||
|
"price": "Price",
|
||||||
|
"discount": "Discount",
|
||||||
|
"total": "Total",
|
||||||
|
"total_discount": "Total Discount",
|
||||||
|
"sub_total": "Sub Total",
|
||||||
|
"tax": "Tax",
|
||||||
|
"amount": "Amount",
|
||||||
|
"select_an_item": "Type or click to select an item",
|
||||||
|
"type_item_description": "Type Item Description (optional)"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"invoices": {
|
||||||
|
"title": "Invoices",
|
||||||
|
"invoices_list": "Invoices List",
|
||||||
|
"days": "{days} Days",
|
||||||
|
"months": "{months} Month",
|
||||||
|
"years": "{years} Year",
|
||||||
|
"all": "All",
|
||||||
|
"paid": "Paid",
|
||||||
|
"unpaid": "Unpaid",
|
||||||
|
"customer": "CUSTOMER",
|
||||||
|
"paid_status": "PAID STATUS",
|
||||||
|
"ref_no": "REF NO.",
|
||||||
|
"number": "NUMBER",
|
||||||
|
"amount_due": "AMOUNT DUE",
|
||||||
|
"partially_paid": "Partially Paid",
|
||||||
|
"total": "Total",
|
||||||
|
"discount": "Discount",
|
||||||
|
"sub_total": "Sub Total",
|
||||||
|
"invoice": "Invoice | Invoices",
|
||||||
|
"invoice_number": "Invoice Number",
|
||||||
|
"ref_number": "Ref Number",
|
||||||
|
"contact": "Contact",
|
||||||
|
"add_item": "Add an Item",
|
||||||
|
"date": "Date",
|
||||||
|
"due_date": "Due Date",
|
||||||
|
"status": "Status",
|
||||||
|
"add_tax": "Add Tax",
|
||||||
|
"amount": "Amount",
|
||||||
|
"action": "Action",
|
||||||
|
"notes": "Notes",
|
||||||
|
"view": "View",
|
||||||
|
"send_invoice": "Send Invoice",
|
||||||
|
"invoice_template": "Invoice Template",
|
||||||
|
"template": "Template",
|
||||||
|
"mark_as_sent": "Mark as sent",
|
||||||
|
"confirm_send_invoice": "This invoice will be sent via email to the customer",
|
||||||
|
"invoice_mark_as_sent": "This invoice will be marked as sent",
|
||||||
|
"confirm_send": "This invoice will be sent via email to the customer",
|
||||||
|
"invoice_date": "Invoice Date",
|
||||||
|
"record_payment": "Record Payment",
|
||||||
|
"add_new_invoice": "Add New Invoice",
|
||||||
|
"update_expense": "Update Expense",
|
||||||
|
"edit_invoice": "Edit Invoice",
|
||||||
|
"new_invoice": "New Invoice",
|
||||||
|
"save_invoice": "Save Invoice",
|
||||||
|
"update_invoice": "Update Invoice",
|
||||||
|
"add_new_tax": "Add New Tax",
|
||||||
|
"no_invoices": "No Invoices yet!",
|
||||||
|
"list_of_invoices": "This section will contain the list of invoices.",
|
||||||
|
"select_invoice": "Select Invoice",
|
||||||
|
"no_matching_invoices": "There are no matching invoices!",
|
||||||
|
"mark_as_sent_successfully": "Invoice marked as sent successfully",
|
||||||
|
"send_invoice_successfully": "Invoice sent successfully",
|
||||||
|
"item": {
|
||||||
|
"title": "Item Title",
|
||||||
|
"description": "Description",
|
||||||
|
"quantity": "Quantity",
|
||||||
|
"price": "Price",
|
||||||
|
"discount": "Discount",
|
||||||
|
"total": "Total",
|
||||||
|
"total_discount": "Total Discount",
|
||||||
|
"sub_total": "Sub Total",
|
||||||
|
"tax": "Tax",
|
||||||
|
"amount": "Amount",
|
||||||
|
"select_an_item": "Type or click to select an item",
|
||||||
|
"type_item_description": "Type Item Description (optional)"
|
||||||
|
},
|
||||||
|
|
||||||
|
"payment_attached_message": "One of the selected invoices already have a payment attached to it. Make sure to delete the attached payments first in order to go ahead with the removal",
|
||||||
|
"confirm_delete": "You will not be able to recover this Invoice | You will not be able to recover these Invoices",
|
||||||
|
"created_message": "Invoice created successfully",
|
||||||
|
"updated_message": "Invoice updated successfully",
|
||||||
|
"deleted_message": "Invoice deleted successfully | Invoices deleted successfully",
|
||||||
|
"marked_as_sent_message": "Invoice marked as sent successfully",
|
||||||
|
"user_email_does_not_exist": "User email does not exist",
|
||||||
|
"something_went_wrong": "something went wrong",
|
||||||
|
"invalid_due_amount_message": "Total Invoice amount cannot be less than total paid amount for this Invoice. Please update the invoice or delete the associated payments to continue."
|
||||||
|
},
|
||||||
|
"credit_notes": {
|
||||||
|
"title": "Credit Notes",
|
||||||
|
"credit_notes_list": "Credit Notes List",
|
||||||
|
"credit_notes": "Credit Notes",
|
||||||
|
"contact": "Contact",
|
||||||
|
"date": "Date",
|
||||||
|
"amount": "Amount",
|
||||||
|
"action": "Action",
|
||||||
|
"credit_number": "Credit Number",
|
||||||
|
"notes": "Notes",
|
||||||
|
"confirm_delete": "Do you want to delete this credit note?",
|
||||||
|
"item": {
|
||||||
|
"title": "Item Title",
|
||||||
|
"description": "Description",
|
||||||
|
"quantity": "Quantity",
|
||||||
|
"price": "Price",
|
||||||
|
"discount": "Discount",
|
||||||
|
"total": "Total",
|
||||||
|
"total_discount": "Total Discount",
|
||||||
|
"sub_total": "Sub Total",
|
||||||
|
"tax": "Tax"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"payments": {
|
||||||
|
"title": "Payments",
|
||||||
|
"payments_list": "Payments List",
|
||||||
|
"record_payment": "Record Payment",
|
||||||
|
"customer": "Customer",
|
||||||
|
"date": "Date",
|
||||||
|
"amount": "Amount",
|
||||||
|
"action": "Action",
|
||||||
|
"payment_number": "Payment Number",
|
||||||
|
"payment_mode": "Payment Mode",
|
||||||
|
"invoice": "Invoice",
|
||||||
|
"note": "Note",
|
||||||
|
"add_payment": "Add Payment",
|
||||||
|
"new_payment": "New Payment",
|
||||||
|
"edit_payment": "Edit Payment",
|
||||||
|
"view_payment": "View Payment",
|
||||||
|
"add_new_payment": "Add New Payment",
|
||||||
|
"save_payment": "Save Payment",
|
||||||
|
"update_payment": "Update Payment",
|
||||||
|
"payment": "Payment | Payments",
|
||||||
|
"no_payments": "No payments yet!",
|
||||||
|
"list_of_payments": "This section will contain the list of payments.",
|
||||||
|
"select_payment_mode": "Select payment mode",
|
||||||
|
|
||||||
|
"confirm_delete": "You will not be able to recover this Payment | You will not be able to recover these Payments",
|
||||||
|
"created_message": "Payment created successfully",
|
||||||
|
"updated_message": "Payment updated successfully",
|
||||||
|
"deleted_message": "Payment deleted successfully | Payments deleted successfully",
|
||||||
|
"invalid_amount_message": "Payment amount is invalid"
|
||||||
|
},
|
||||||
|
"expenses": {
|
||||||
|
"title": "Expenses",
|
||||||
|
"expenses_list": "Expenses List",
|
||||||
|
"expense_title": "Title",
|
||||||
|
"contact": "Contact",
|
||||||
|
"category": "Category",
|
||||||
|
"from_date": "From Date",
|
||||||
|
"to_date": "To Date",
|
||||||
|
"expense_date": "Date",
|
||||||
|
"description": "Description",
|
||||||
|
"receipt": "Receipt",
|
||||||
|
"amount": "Amount",
|
||||||
|
"action": "Action",
|
||||||
|
"note": "Note",
|
||||||
|
"category_id": "Category Id",
|
||||||
|
"date": "Expense Date",
|
||||||
|
"add_expense": "Add Expense",
|
||||||
|
"add_new_expense": "Add New Expense",
|
||||||
|
"save_expense": "Save Expense",
|
||||||
|
"update_expense": "Update Expense",
|
||||||
|
"download_receipt": "Download Receipt",
|
||||||
|
"edit_expense": "Edit Expense",
|
||||||
|
"new_expense": "New Expense",
|
||||||
|
"expense": "Expense | Expenses",
|
||||||
|
"no_expenses": "No expenses yet!",
|
||||||
|
"list_of_expenses": "This section will contain the list of expenses.",
|
||||||
|
|
||||||
|
"confirm_delete": "You will not be able to recover this Expense | You will not be able to recover these Expenses",
|
||||||
|
"created_message": "Expense created successfully",
|
||||||
|
"updated_message": "Expense updated successfully",
|
||||||
|
"deleted_message": "Expense deleted successfully | Expenses deleted successfully",
|
||||||
|
"categories": {
|
||||||
|
"categories_list": "Categories List",
|
||||||
|
"title": "Title",
|
||||||
|
"name": "Name",
|
||||||
|
"description": "Description",
|
||||||
|
"amount": "Amount",
|
||||||
|
"actions": "Actions",
|
||||||
|
"add_category": "Add Category",
|
||||||
|
"new_category": "New Category",
|
||||||
|
"category": "Category | Categories",
|
||||||
|
"select_a_category": "Select a category"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"login": {
|
||||||
|
"email": "Email",
|
||||||
|
"password": "Password",
|
||||||
|
"forgot_password": "Forgot Password?",
|
||||||
|
"or_signIn_with": "or Sign in with",
|
||||||
|
"login": "Login",
|
||||||
|
"register": "Register",
|
||||||
|
"reset_password": "Reset Password",
|
||||||
|
"password_reset_successfully": "Password Reset Successfully",
|
||||||
|
"enter_email": "Enter email",
|
||||||
|
"enter_password": "Enter Password",
|
||||||
|
"retype_password": "Retype Password",
|
||||||
|
"login_placeholder": "mail@example.com"
|
||||||
|
},
|
||||||
|
"reports": {
|
||||||
|
"title": "Report",
|
||||||
|
"from_date": "From Date",
|
||||||
|
"to_date": "To Date",
|
||||||
|
"status": "Status",
|
||||||
|
"paid": "Paid",
|
||||||
|
"unpaid": "Unpaid",
|
||||||
|
"download_pdf": "Download PDF",
|
||||||
|
"view_pdf": "View PDF",
|
||||||
|
"update_report": "Update Report",
|
||||||
|
"report": "Report | Reports",
|
||||||
|
"profit_loss": {
|
||||||
|
"profit_loss": "Profit & Loss",
|
||||||
|
"to_date": "To Date",
|
||||||
|
"from_date": "From Date",
|
||||||
|
"date_range": "Select Date Range"
|
||||||
|
},
|
||||||
|
"sales": {
|
||||||
|
"sales": "Sales",
|
||||||
|
"date_range": "Select Date Range",
|
||||||
|
"to_date": "To Date",
|
||||||
|
"from_date": "From Date",
|
||||||
|
"report_type": "Report Type"
|
||||||
|
},
|
||||||
|
"taxes": {
|
||||||
|
"taxes": "Taxes",
|
||||||
|
"to_date": "To Date",
|
||||||
|
"from_date": "From Date",
|
||||||
|
"date_range": "Select Date Range"
|
||||||
|
},
|
||||||
|
"errors": {
|
||||||
|
"required": "Field is required"
|
||||||
|
},
|
||||||
|
"invoices": {
|
||||||
|
"invoice": "Invoice",
|
||||||
|
"invoice_date": "Invoice Date",
|
||||||
|
"due_date": "Due Date",
|
||||||
|
"amount": "Amount",
|
||||||
|
"contact_name": "Contact Name",
|
||||||
|
"status": "Status"
|
||||||
|
},
|
||||||
|
"estimates": {
|
||||||
|
"estimate": "Estimate",
|
||||||
|
"estimate_date": "Estimate Date",
|
||||||
|
"due_date": "Due Date",
|
||||||
|
"estimate_number": "Estimate Number",
|
||||||
|
"ref_number": "Ref Number",
|
||||||
|
"amount": "Amount",
|
||||||
|
"contact_name": "Contact Name",
|
||||||
|
"status": "Status"
|
||||||
|
},
|
||||||
|
"expenses": {
|
||||||
|
"expenses": "Expenses",
|
||||||
|
"category": "Category",
|
||||||
|
"date": "Date",
|
||||||
|
"amount": "Amount",
|
||||||
|
"to_date": "To Date",
|
||||||
|
"from_date": "From Date",
|
||||||
|
"date_range": "Select Date Range"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"settings": {
|
||||||
|
"menu_title": {
|
||||||
|
"account_settings": "Account Settings",
|
||||||
|
"company_information": "Company Information",
|
||||||
|
"preferences": "Preferences",
|
||||||
|
"notifications": "Notifications",
|
||||||
|
"tax_types": "Tax Types",
|
||||||
|
"expense_category": "Expense Categories",
|
||||||
|
"update_app": "Update App"
|
||||||
|
},
|
||||||
|
"title": "Settings",
|
||||||
|
"setting": "Settings | Settings",
|
||||||
|
"general": "General",
|
||||||
|
"language": "Language",
|
||||||
|
"primary_currency": "Primary Currency",
|
||||||
|
"timezone": "Time Zone",
|
||||||
|
"date_format": "Date Format",
|
||||||
|
"currencies": {
|
||||||
|
"title": "Currencies",
|
||||||
|
"currency": "Currency | Currencies",
|
||||||
|
"currencies_list": "Currencies List",
|
||||||
|
"select_currency": "Select Currency",
|
||||||
|
"name": "Name",
|
||||||
|
"code": "Code",
|
||||||
|
"symbol": "Symbol",
|
||||||
|
"precision": "Precision",
|
||||||
|
"thousand_separator": "Thousand Separator",
|
||||||
|
"decimal_separator": "Decimal Separator",
|
||||||
|
"position": "Position",
|
||||||
|
"position_of_symbol": "Position Of Symbol",
|
||||||
|
"right": "Right",
|
||||||
|
"left": "Left",
|
||||||
|
"action": "Action",
|
||||||
|
"add_currency": "Add Currency"
|
||||||
|
},
|
||||||
|
"mail": {
|
||||||
|
"host": "Mail Host",
|
||||||
|
"port": "Mail Port",
|
||||||
|
"driver": "Mail Driver",
|
||||||
|
"secret": "Secret",
|
||||||
|
"mailgun_secret": "Mailgun Secret",
|
||||||
|
"mailgun_domain": "Domain",
|
||||||
|
"mailgun_endpoint": "Mailgun Endpoint",
|
||||||
|
"ses_secret": "SES Secret",
|
||||||
|
"ses_key": "SES Key",
|
||||||
|
"password": "Mail Password",
|
||||||
|
"username": "Mail Username",
|
||||||
|
"mail_config": "Mail Configuration",
|
||||||
|
"from_name": "From Mail Name",
|
||||||
|
"from_mail": "From Mail Address",
|
||||||
|
"encryption": "Mail Encryption",
|
||||||
|
"mail_config_desc": "Below is the form for Configuring Email driver for sending emails from the app. You can also configure third party providers like Sendgrid, SES etc."
|
||||||
|
},
|
||||||
|
"pdf": {
|
||||||
|
"title": "PDF Setting",
|
||||||
|
"footer_text": "Footer Text",
|
||||||
|
"pdf_layout": "PDF Layout"
|
||||||
|
},
|
||||||
|
"company_info": {
|
||||||
|
"company_info": "Company info",
|
||||||
|
"company_name": "Company Name",
|
||||||
|
"company_logo": "Company Logo",
|
||||||
|
"section_description": "Information about your company that will be displayed on invoices, estimates and other documents created by Crater.",
|
||||||
|
"phone": "Phone",
|
||||||
|
"country": "Country",
|
||||||
|
"state": "State",
|
||||||
|
"city": "City",
|
||||||
|
"address": "Address",
|
||||||
|
"zip": "Zip",
|
||||||
|
"save": "Save",
|
||||||
|
"updated_message": "Company information updated successfully"
|
||||||
|
},
|
||||||
|
"account_settings": {
|
||||||
|
"profile_picture": "Profile Picture",
|
||||||
|
"name": "Name",
|
||||||
|
"email": "Email",
|
||||||
|
"password": "Password",
|
||||||
|
"confirm_password": "Confirm Password",
|
||||||
|
"account_settings": "Account Settings",
|
||||||
|
"save": "Save",
|
||||||
|
"section_description": "You can update your name, email & password using the form below.",
|
||||||
|
"updated_message": "Account Settings updated successfully"
|
||||||
|
},
|
||||||
|
"user_profile": {
|
||||||
|
"name": "Name",
|
||||||
|
"email": "Email",
|
||||||
|
"password": "Password",
|
||||||
|
"confirm_password": "Confirm Password"
|
||||||
|
},
|
||||||
|
"notification": {
|
||||||
|
"title": "Notification",
|
||||||
|
"email": "Send Notifications to",
|
||||||
|
"description": "Which email notifications would you like to receive when something changes?",
|
||||||
|
"invoice_viewed": "Invoice viewed",
|
||||||
|
"invoice_viewed_desc": "When your customer views the invoice sent via crater dashboard.",
|
||||||
|
"estimate_viewed": "Estimate viewed",
|
||||||
|
"estimate_viewed_desc": "When your customer views the estimate sent via crater dashboard.",
|
||||||
|
"save": "Save",
|
||||||
|
"email_save_message": "Email saved successfully",
|
||||||
|
"please_enter_email": "Please Enter Email"
|
||||||
|
},
|
||||||
|
"tax_types": {
|
||||||
|
"title": "Tax Types",
|
||||||
|
"add_tax": "Add Tax",
|
||||||
|
"description": "You can add or Remove Taxes as you please. Crater supports Taxes on Individual Items as well as on the invoice.",
|
||||||
|
"add_new_tax": "Add New Tax",
|
||||||
|
"tax_settings": "Tax Settings",
|
||||||
|
"tax_per_item": "Tax Per Item",
|
||||||
|
"tax_name": "Tax Name",
|
||||||
|
"compound_tax": "Compound Tax",
|
||||||
|
"percent": "Percent",
|
||||||
|
"action": "Action",
|
||||||
|
"tax_setting_description": "Enable this if you want to add taxes to individual invoice items. By default, taxes are added directly to the invoice.",
|
||||||
|
"created_message": "Tax type created successfully",
|
||||||
|
"updated_message": "Tax type updated successfully",
|
||||||
|
"deleted_message": "Tax type deleted successfully",
|
||||||
|
"confirm_delete": "You will not be able to recover this Tax Type",
|
||||||
|
"already_in_use": "Tax is already in use"
|
||||||
|
},
|
||||||
|
"expense_category": {
|
||||||
|
"title": "Expense Categories",
|
||||||
|
"action": "Action",
|
||||||
|
"description": "Categories are required for adding expense entries. You can Add or Remove these categories according to your preference.",
|
||||||
|
"add_new_category": "Add New Category",
|
||||||
|
"category_name": "Category Name",
|
||||||
|
"category_description": "Description",
|
||||||
|
"created_message": "Expense Category created successfully",
|
||||||
|
"deleted_message": "Expense category deleted successfully",
|
||||||
|
"updated_message": "Expense category updated successfully",
|
||||||
|
"confirm_delete": "You will not be able to recover this Expense Category",
|
||||||
|
"already_in_use": "Category is already in use"
|
||||||
|
},
|
||||||
|
"preferences": {
|
||||||
|
"currency": "Currency",
|
||||||
|
"language": "Language",
|
||||||
|
"time_zone": "Time Zone",
|
||||||
|
"fiscal_year": "Financial Year",
|
||||||
|
"date_format": "Date Format",
|
||||||
|
"discount_setting": "Discount Setting",
|
||||||
|
"discount_per_item": "Discount Per Item ",
|
||||||
|
"discount_setting_description": "Enable this if you want to add Discount to individual invoice items. By default, Discount are added directly to the invoice.",
|
||||||
|
"save": "Save",
|
||||||
|
"preference": "Preference | Preferences",
|
||||||
|
"general_settings": "Default preferences for the system.",
|
||||||
|
"updated_message": "Preferences updated successfully",
|
||||||
|
"select_language": "select language",
|
||||||
|
"select_time_zone": "select Time Zone",
|
||||||
|
"select_date_formate": "select Date Formate",
|
||||||
|
"select_financial_year": "select financial year"
|
||||||
|
},
|
||||||
|
"update_app": {
|
||||||
|
"title": "Update App",
|
||||||
|
"description": "You can easily update Crater by checking for a new update by clicking the button below",
|
||||||
|
"check_update": "Check for updates",
|
||||||
|
"avail_update": "New Update available",
|
||||||
|
"next_version": "Next version",
|
||||||
|
"update": "Update Now",
|
||||||
|
"update_progress": "Update in progress...",
|
||||||
|
"progress_text": "It will just take a few minutes. Please do not refresh the screen or close the window before the update finishes",
|
||||||
|
"update_success": "App has been updated! Please wait while your browser window gets reloaded automatically.",
|
||||||
|
"latest_message": "No update available! You are on the latest version.",
|
||||||
|
"current_version": "Current Version"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"wizard": {
|
||||||
|
"account_info": "Account Information",
|
||||||
|
"account_info_desc": "Below details will be used to create the main Administrator account. Also you can change the details anytime after logging in.",
|
||||||
|
"name": "Name",
|
||||||
|
"email": "Email",
|
||||||
|
"password": "Password",
|
||||||
|
"confirm_password": "Confirm Password",
|
||||||
|
"save_cont": "Save & Continue",
|
||||||
|
"company_info": "Company Information",
|
||||||
|
"company_info_desc": "This information will be displayed on invoices. Note that you can edit this later on settings page.",
|
||||||
|
"company_name": "Company Name",
|
||||||
|
"company_logo": "Company Logo",
|
||||||
|
"logo_preview": "Logo Preview",
|
||||||
|
"preferences": "Preferences",
|
||||||
|
"preferences_desc": "Default preferences for the system.",
|
||||||
|
"country": "Country",
|
||||||
|
"state": "State",
|
||||||
|
"city": "City",
|
||||||
|
"address": "Address",
|
||||||
|
"street": "Street1 | Street2",
|
||||||
|
"phone": "Phone",
|
||||||
|
"zip_code": "Zip Code",
|
||||||
|
"go_back": "Go Back",
|
||||||
|
"currency": "Currency",
|
||||||
|
"language": "Language",
|
||||||
|
"time_zone": "Time Zone",
|
||||||
|
"fiscal_year": "Financial Year",
|
||||||
|
"date_format": "Date Format",
|
||||||
|
"from_address": "From Address",
|
||||||
|
"username": "Username",
|
||||||
|
"next": "Next",
|
||||||
|
"continue": "Continue",
|
||||||
|
"skip": "Skip",
|
||||||
|
"database": {
|
||||||
|
"database": "Site URL & Database",
|
||||||
|
"connection": "Database Connection",
|
||||||
|
"host": "Database Host",
|
||||||
|
"port": "Database Port",
|
||||||
|
"password": "Database Password",
|
||||||
|
"app_url": "App URL",
|
||||||
|
"username": "Database Username",
|
||||||
|
"db_name": "Database Name",
|
||||||
|
"desc": "Create a database on your server and set the credentials using the form below."
|
||||||
|
},
|
||||||
|
"permissions": {
|
||||||
|
"permissions": "Permissions",
|
||||||
|
"permission_confirm_title": "Are you sure you want to continue?",
|
||||||
|
"permission_confirm_desc": "Folder permission check failed",
|
||||||
|
"permission_desc": "Below is the list of folder permissions which are required in order for the app to work. If the permission check fails, make sure to update your folder permissions."
|
||||||
|
},
|
||||||
|
"mail": {
|
||||||
|
"host": "Mail Host",
|
||||||
|
"port": "Mail Port",
|
||||||
|
"driver": "Mail Driver",
|
||||||
|
"secret": "Secret",
|
||||||
|
"mailgun_secret": "Mailgun Secret",
|
||||||
|
"mailgun_domain": "Domain",
|
||||||
|
"mailgun_endpoint": "Mailgun Endpoint",
|
||||||
|
"ses_secret": "SES Secret",
|
||||||
|
"ses_key": "SES Key",
|
||||||
|
"password": "Mail Password",
|
||||||
|
"username": "Mail Username",
|
||||||
|
"mail_config": "Mail Configuration",
|
||||||
|
"from_name": "From Mail Name",
|
||||||
|
"from_mail": "From Mail Address",
|
||||||
|
"encryption": "Mail Encryption",
|
||||||
|
"mail_config_desc": "Below is the form for Configuring Email driver for sending emails from the app. You can also configure third party providers like Sendgrid, SES etc."
|
||||||
|
},
|
||||||
|
"req": {
|
||||||
|
"system_req": "System Requirements",
|
||||||
|
"php_req_version": "Php (version {version} required)",
|
||||||
|
"check_req": "Check Requirements",
|
||||||
|
"system_req_desc": "Crater has a few server requirements. Make sure that your server has the required php version and all the extensions mentioned below."
|
||||||
|
},
|
||||||
|
"errors": {
|
||||||
|
"migrate_failed": "Migrate Failed",
|
||||||
|
"database_variables_save_error": "Unable to connect to the DB with Provided Values.",
|
||||||
|
"mail_variables_save_error": "Email configuration failed.",
|
||||||
|
"connection_failed": "Database connection failed",
|
||||||
|
"database_should_be_empty": "Database should be empty"
|
||||||
|
},
|
||||||
|
"success": {
|
||||||
|
"mail_variables_save_successfully": "Email configured successfully",
|
||||||
|
"database_variables_save_successfully": "Database configured successfully."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"layout_login": {
|
||||||
|
"copyright_crater": "Copyright @ Crater - 2019",
|
||||||
|
"super_simple_invoicing": "Super Simple Invoicing",
|
||||||
|
"for_freelancer": "for Freelancers &",
|
||||||
|
"small_businesses": "Small Businesses ",
|
||||||
|
"crater_help": "Crater helps you track expenses, record payments & generate beautiful",
|
||||||
|
"invoices_and_estimates": "invoices & estimates with ability to choose multiple templates."
|
||||||
|
},
|
||||||
|
"validation": {
|
||||||
|
"invalid_url": "Invalid url (ex: http://www.crater.com)",
|
||||||
|
"required": "Field is required",
|
||||||
|
"email_incorrect": "Incorrect Email.",
|
||||||
|
"email_already_taken": "The email has already been taken.",
|
||||||
|
"email_does_not_exist": "User with given email doesn't exist",
|
||||||
|
"send_reset_link": "Send Reset Link",
|
||||||
|
"not_yet": "Not yet? Send it again",
|
||||||
|
"password_min_length": "Password must contain {count} characters",
|
||||||
|
"name_min_length": "Name must have at least {count} letters.",
|
||||||
|
"enter_valid_tax_rate": "Enter valid tax rate",
|
||||||
|
"numbers_only": "Numbers Only.",
|
||||||
|
"characters_only": "Characters Only.",
|
||||||
|
"password_incorrect": "Passwords must be identical",
|
||||||
|
"password_length": "Password must be {count} character long.",
|
||||||
|
"qty_must_greater_than_zero": "Quantity must be greater than zero.",
|
||||||
|
"price_greater_than_zero": "Price must be greater than zero.",
|
||||||
|
"payment_greater_than_zero": "Payment must be greater than zero.",
|
||||||
|
"payment_greater_than_due_amount": "Entered Payment is more than due amount of this invoice.",
|
||||||
|
"quantity_maxlength": "Quantity should not be greater than 20 digits.",
|
||||||
|
"price_maxlength": "Price should not be greater than 20 digits.",
|
||||||
|
"price_minvalue": "Price should be greater than 0.",
|
||||||
|
"amount_maxlength": "Amount should not be greater than 20 digits.",
|
||||||
|
"amount_minvalue": "Amount should be greater than 0.",
|
||||||
|
"description_maxlength": "Description should not be greater than 255 characters.",
|
||||||
|
"maximum_options_error": "Maximum of {max} options selected. First remove a selected option to select another.",
|
||||||
|
"notes_maxlength": "Notes should not be greater than 255 characters.",
|
||||||
|
"address_maxlength": "Address should not be greater than 255 characters.",
|
||||||
|
"ref_number_maxlength": "Ref Number should not be greater than 255 characters."
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -1,815 +0,0 @@
|
|||||||
export default {
|
|
||||||
navigation: {
|
|
||||||
// key : 'singular | plural'
|
|
||||||
dashboard: 'Tablero',
|
|
||||||
customers: 'Clientes',
|
|
||||||
items: 'Artículos',
|
|
||||||
invoices: 'Facturas',
|
|
||||||
expenses: 'Gastos',
|
|
||||||
estimates: 'Estimadas',
|
|
||||||
payments: 'Pagos',
|
|
||||||
reports: 'Informes',
|
|
||||||
settings: 'Configuraciones',
|
|
||||||
logout: 'Cerrar sesión'
|
|
||||||
},
|
|
||||||
general: {
|
|
||||||
view_pdf: 'Ver PDF',
|
|
||||||
download_pdf: 'Descargar PDF',
|
|
||||||
save: 'Salvar',
|
|
||||||
cancel: 'Cancelar',
|
|
||||||
update: 'Actualizar',
|
|
||||||
download: 'Descargar',
|
|
||||||
from_date: 'Partir de la fecha',
|
|
||||||
to_date: 'Hasta la fecha',
|
|
||||||
from: 'De',
|
|
||||||
to: 'A',
|
|
||||||
go_back: 'Regresa',
|
|
||||||
back_to_login: '¿Atrás para iniciar sesión?',
|
|
||||||
home: 'Casa',
|
|
||||||
filter: 'Filtrar',
|
|
||||||
delete: 'Eliminar',
|
|
||||||
edit: 'Editar',
|
|
||||||
view: 'Ver',
|
|
||||||
add_new_item: 'Agregar ítem nuevo',
|
|
||||||
clear_all: 'Limpiar todo',
|
|
||||||
showing: 'Demostración',
|
|
||||||
of: 'de',
|
|
||||||
actions: 'Comportamiento',
|
|
||||||
subtotal: 'TOTAL PARCIAL',
|
|
||||||
discount: 'DESCUENTO',
|
|
||||||
fixed: 'Fija',
|
|
||||||
percentage: 'Porcentaje',
|
|
||||||
tax: 'IMPUESTO',
|
|
||||||
total_amount: 'CANTIDAD TOTAL',
|
|
||||||
bill_to: 'Cobrar a',
|
|
||||||
ship_to: 'Envie a',
|
|
||||||
due: 'Debida',
|
|
||||||
draft: 'Sequía',
|
|
||||||
sent: 'Expedida',
|
|
||||||
all: 'Todas',
|
|
||||||
select_all: 'Seleccionar todo',
|
|
||||||
choose_file: 'Haga clic aquí para elegir un archivo.',
|
|
||||||
choose_template: 'Elige una plantilla',
|
|
||||||
choose: 'Escoger',
|
|
||||||
remove: 'Eliminar',
|
|
||||||
powered_by: 'Energizado por',
|
|
||||||
bytefury: 'Bytefury',
|
|
||||||
select_a_status: 'Selecciona un estado',
|
|
||||||
select_a_tax: 'Selecciona un impuesto',
|
|
||||||
search: 'Buscar',
|
|
||||||
are_you_sure: '¿Estás seguro?',
|
|
||||||
list_is_empty: 'La lista esta vacía.',
|
|
||||||
no_tax_found: '¡No se encontraron impuestos!',
|
|
||||||
four_zero_four: '404',
|
|
||||||
you_got_lost: 'Whoops! ¡Te perdiste!',
|
|
||||||
go_home: 'Vete a casa',
|
|
||||||
|
|
||||||
setting_updated: 'Configuración actualizada con éxito',
|
|
||||||
select_state: 'Seleccione estado',
|
|
||||||
select_country: 'Seleccionar país',
|
|
||||||
select_city: 'Ciudad selecta',
|
|
||||||
street_1: 'Calle 1',
|
|
||||||
street_2: 'Calle # 2',
|
|
||||||
action_failed: 'Accion: Fallida'
|
|
||||||
},
|
|
||||||
dashboard: {
|
|
||||||
select_year: 'Seleccione año',
|
|
||||||
cards: {
|
|
||||||
due_amount: 'Monto adeudado',
|
|
||||||
customers: 'Clientes',
|
|
||||||
invoices: 'Facturas',
|
|
||||||
estimates: 'Estimadas'
|
|
||||||
},
|
|
||||||
chart_info: {
|
|
||||||
total_sales: 'Ventas',
|
|
||||||
total_receipts: 'Ingresos',
|
|
||||||
total_expense: 'Gastos',
|
|
||||||
net_income: 'Lngresos netos',
|
|
||||||
year: 'Seleccione año'
|
|
||||||
},
|
|
||||||
weekly_invoices: {
|
|
||||||
title: 'Facturas semanales'
|
|
||||||
},
|
|
||||||
monthly_chart: {
|
|
||||||
title: 'Gastos de venta'
|
|
||||||
},
|
|
||||||
recent_invoices_card: {
|
|
||||||
title: 'Facturas adeudadas',
|
|
||||||
due_on: 'Debido a',
|
|
||||||
customer: 'Cliente',
|
|
||||||
amount_due: 'Monto adeudado',
|
|
||||||
actions: 'Comportamiento',
|
|
||||||
view_all: 'Ver todo'
|
|
||||||
},
|
|
||||||
recent_estimate_card: {
|
|
||||||
title: 'Estimaciones recientes',
|
|
||||||
date: 'Fecha',
|
|
||||||
customer: 'Cliente',
|
|
||||||
amount_due: 'Monto adeudado',
|
|
||||||
actions: 'Comportamiento',
|
|
||||||
view_all: 'Ver todo'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
tax_types: {
|
|
||||||
name: 'Nombre',
|
|
||||||
description: 'Descripción',
|
|
||||||
percent: 'Por ciento',
|
|
||||||
compound_tax: 'Impuesto compuesto'
|
|
||||||
},
|
|
||||||
customers: {
|
|
||||||
title: 'Clientes',
|
|
||||||
add_customer: 'Agregar cliente',
|
|
||||||
contacts_list: 'Lista de clientes',
|
|
||||||
name: 'Nombre',
|
|
||||||
display_name: 'Nombre para mostrar',
|
|
||||||
primary_contact_name: 'Nombre de contacto primario',
|
|
||||||
contact_name: 'Nombre de contacto',
|
|
||||||
amount_due: 'Monto adeudado',
|
|
||||||
email: 'Email',
|
|
||||||
address: 'Habla a',
|
|
||||||
phone: 'Teléfono',
|
|
||||||
website: 'Sitio web',
|
|
||||||
country: 'País',
|
|
||||||
state: 'Estado',
|
|
||||||
city: 'Ciudad',
|
|
||||||
zip_code: 'Código postal',
|
|
||||||
added_on: 'Añadido',
|
|
||||||
action: 'Acción',
|
|
||||||
password: 'Contraseña',
|
|
||||||
street_number: 'Número de calle',
|
|
||||||
primary_currency: 'Moneda primaria',
|
|
||||||
add_new_customer: 'Agregar nuevo cliente',
|
|
||||||
save_customer: 'Guardar cliente',
|
|
||||||
update_customer: 'Actualizar cliente',
|
|
||||||
customer: 'Cliente | Clientes',
|
|
||||||
new_customer: 'Nuevo cliente',
|
|
||||||
edit_customer: 'Editar cliente',
|
|
||||||
basic_info: 'Información básica',
|
|
||||||
billing_address: 'Dirección de Envio',
|
|
||||||
shipping_address: 'Dirección de Envío',
|
|
||||||
copy_billing_address: 'Copia de facturación',
|
|
||||||
no_customers: '¡Aún no hay clientes!',
|
|
||||||
no_customers_found: 'No se encontraron clientes!',
|
|
||||||
list_of_customers: 'Esta sección contendrá la lista de clientes.',
|
|
||||||
primary_display_name: 'Nombre de visualización principal',
|
|
||||||
select_state: 'Seleccione estado',
|
|
||||||
select_country: 'Seleccionar país',
|
|
||||||
select_city: 'Ciudad selecta',
|
|
||||||
select_currency: 'Seleccione el tipo de moneda',
|
|
||||||
street_1: 'Calle 1',
|
|
||||||
street_2: 'Calle 2',
|
|
||||||
select_a_customer: 'Selecciona un cliente',
|
|
||||||
type_or_click: 'Escriba o haga clic para seleccionar',
|
|
||||||
|
|
||||||
confirm_delete: 'No podrá recuperar este cliente | No podrá recuperar estos clientes',
|
|
||||||
created_message: 'Cliente creado con éxito',
|
|
||||||
updated_message: 'Cliente actualizado con éxito',
|
|
||||||
deleted_message: 'Cliente eliminado correctamente | Clientes eliminados exitosamente'
|
|
||||||
},
|
|
||||||
items: {
|
|
||||||
title: 'Artículos',
|
|
||||||
items_list: 'Lista de artículos',
|
|
||||||
name: 'Nombre',
|
|
||||||
unit: 'Unidad',
|
|
||||||
description: 'Descripción',
|
|
||||||
added_on: 'Añadido',
|
|
||||||
price: 'Precio',
|
|
||||||
date_of_creation: 'Fecha de creación',
|
|
||||||
action: 'Acción',
|
|
||||||
add_item: 'Añadir artículo',
|
|
||||||
save_item: 'Guardar artículo',
|
|
||||||
update_item: 'Actualizar elemento',
|
|
||||||
item: 'Artículo | Artículos',
|
|
||||||
add_new_item: 'Agregar ítem nuevo',
|
|
||||||
new_item: 'Nuevo artículo',
|
|
||||||
edit_item: 'Editar elemento',
|
|
||||||
no_items: '¡Aún no hay artículos!',
|
|
||||||
list_of_items: 'Esta sección contendrá la lista de artículos.',
|
|
||||||
select_a_unit: 'seleccione unidad',
|
|
||||||
|
|
||||||
item_attached_message: 'No se puede eliminar un elemento que ya está en uso.',
|
|
||||||
confirm_delete: 'No podrá recuperar este artículo | No podrás recuperar estos elementos',
|
|
||||||
created_message: 'Artículo creado con éxito',
|
|
||||||
updated_message: 'Artículo actualizado con éxito',
|
|
||||||
deleted_message: 'Elemento eliminado con éxito | Elementos eliminados correctamente'
|
|
||||||
},
|
|
||||||
estimates: {
|
|
||||||
title: 'Estimadas',
|
|
||||||
estimate: 'Estimación | Estimados',
|
|
||||||
estimates_list: 'Lista de estimaciones',
|
|
||||||
days: '{días} días',
|
|
||||||
months: '{meses} Mes',
|
|
||||||
years: '{años} Año',
|
|
||||||
all: 'Todas',
|
|
||||||
paid: 'Pagada',
|
|
||||||
unpaid: 'No pagado',
|
|
||||||
customer: 'CLIENTE',
|
|
||||||
ref_no: 'NÚMERO DE REFERENCIA.',
|
|
||||||
number: 'NÚMERO',
|
|
||||||
amount_due: 'CANTIDAD DEBIDA',
|
|
||||||
partially_paid: 'Parcialmente pagado',
|
|
||||||
total: 'Total',
|
|
||||||
discount: 'Descuento',
|
|
||||||
sub_total: 'Subtotal',
|
|
||||||
estimate_number: 'Numero Estimado',
|
|
||||||
ref_number: 'Número de referencia',
|
|
||||||
contact: 'Contacto',
|
|
||||||
add_item: 'Agregar un artículo',
|
|
||||||
date: 'Fecha',
|
|
||||||
due_date: 'Fecha de vencimiento',
|
|
||||||
expiry_date: 'Fecha de caducidad',
|
|
||||||
status: 'Estado',
|
|
||||||
add_tax: 'Agregar impuesto',
|
|
||||||
amount: 'Cantidad',
|
|
||||||
action: 'Acción',
|
|
||||||
notes: 'Notas',
|
|
||||||
tax: 'Impuesto',
|
|
||||||
send_estimate: 'Enviar presupuesto',
|
|
||||||
estimate_template: 'Plantilla de estimación',
|
|
||||||
convert_to_invoice: 'Convertir a factura',
|
|
||||||
mark_as_sent: 'Marcar como enviado',
|
|
||||||
record_payment: 'Registro de pago',
|
|
||||||
add_estimate: 'Agregar presupuesto',
|
|
||||||
save_estimate: 'Guardar estimación',
|
|
||||||
confirm_conversion: '¿Quiere convertir esta estimación en factura?',
|
|
||||||
conversion_message: 'Conversión exitosa',
|
|
||||||
confirm_send_estimate: 'Esta estimación se enviará por correo electrónico al cliente',
|
|
||||||
confirm_mark_as_sent: 'Esta estimación se marcará como enviada',
|
|
||||||
confirm_mark_as_accepted: 'Esta estimación se marcará como Aceptada',
|
|
||||||
confirm_mark_as_rejected: 'Esta estimación se marcará como Rechazada',
|
|
||||||
mark_as_sent_successfully: 'Estimación marcada como enviada correctamente',
|
|
||||||
send_estimate_successfully: 'Estimación enviada con éxito',
|
|
||||||
errors: {
|
|
||||||
required: 'Se requiere campo'
|
|
||||||
},
|
|
||||||
accepted: 'Aceptada',
|
|
||||||
sent: 'Expedida',
|
|
||||||
draft: 'Sequía',
|
|
||||||
declined: 'Rechazada',
|
|
||||||
new_estimate: 'Nueva estimación',
|
|
||||||
add_new_estimate: 'Añadir nuevo presupuesto',
|
|
||||||
update_Estimate: 'Actualizar presupuesto',
|
|
||||||
edit_estimate: 'Editar estimación',
|
|
||||||
items: 'artículos',
|
|
||||||
Estimate: 'Estimación | Estimados',
|
|
||||||
add_new_tax: 'Agregar nuevo impuesto',
|
|
||||||
no_estimates: '¡Aún no hay estimaciones!',
|
|
||||||
list_of_estimates: 'Esta sección contendrá la lista de estimaciones.',
|
|
||||||
mark_as_rejected: 'Marcar como rechazado',
|
|
||||||
mark_as_accepted: 'Marcar como aceptado',
|
|
||||||
|
|
||||||
marked_as_accepted_message: 'Estimación marcada como aceptada',
|
|
||||||
marked_as_rejected_message: 'Estimación marcada como rechazada',
|
|
||||||
confirm_delete: 'No podrá recuperar esta estimación | No podrá recuperar estas estimaciones',
|
|
||||||
created_message: 'Estimación creada con éxito',
|
|
||||||
updated_message: 'Estimación actualizada con éxito',
|
|
||||||
deleted_message: 'Estimación eliminada con éxito | Estimaciones eliminadas exitosamente',
|
|
||||||
item: {
|
|
||||||
title: 'Título del artículo',
|
|
||||||
description: 'Descripción',
|
|
||||||
quantity: 'Quantity',
|
|
||||||
price: 'Precio',
|
|
||||||
discount: 'Descuento',
|
|
||||||
total: 'Total',
|
|
||||||
total_discount: 'Descuento total',
|
|
||||||
sub_total: 'Subtotal',
|
|
||||||
tax: 'Impuesto',
|
|
||||||
amount: 'Cantidad',
|
|
||||||
select_an_item: 'Escriba o haga clic para seleccionar un elemento',
|
|
||||||
type_item_description: 'Tipo Elemento Descripción (opcional)'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
invoices: {
|
|
||||||
title: 'Facturas',
|
|
||||||
invoices_list: 'Lista de facturas',
|
|
||||||
days: '{días} días',
|
|
||||||
months: '{meses} Mes',
|
|
||||||
years: '{años} Año',
|
|
||||||
all: 'Todas',
|
|
||||||
paid: 'Pagada',
|
|
||||||
unpaid: 'No pagado',
|
|
||||||
customer: 'CLIENTE',
|
|
||||||
paid_status: 'ESTADO PAGADO',
|
|
||||||
ref_no: 'NÚMERO DE REFERENCIA.',
|
|
||||||
number: 'NÚMERO',
|
|
||||||
amount_due: 'CANTIDAD DEBIDA',
|
|
||||||
partially_paid: 'Parcialmente pagado',
|
|
||||||
total: 'Total',
|
|
||||||
discount: 'Descuento',
|
|
||||||
sub_total: 'Subtotal',
|
|
||||||
invoice: 'Factura | Facturas',
|
|
||||||
invoice_number: 'Numero de factura',
|
|
||||||
ref_number: 'Número de referencia',
|
|
||||||
contact: 'Contacto',
|
|
||||||
add_item: 'Agregar un artículo',
|
|
||||||
date: 'Fecha',
|
|
||||||
due_date: 'Fecha de vencimiento',
|
|
||||||
status: 'Estado',
|
|
||||||
add_tax: 'Agregar impuesto',
|
|
||||||
amount: 'Cantidad',
|
|
||||||
action: 'Acción',
|
|
||||||
notes: 'Notas',
|
|
||||||
view: 'Ver',
|
|
||||||
send_invoice: 'Enviará la factura',
|
|
||||||
invoice_template: 'Plantilla de factura',
|
|
||||||
template: 'Modelo',
|
|
||||||
mark_as_sent: 'Marcar como enviado',
|
|
||||||
invoice_mark_as_sent: 'Esta factura se marcará como enviada',
|
|
||||||
confirm_send: 'Estas facturas se enviarán por correo electrónico al cliente.',
|
|
||||||
invoice_date: 'Fecha de la factura',
|
|
||||||
record_payment: 'Registro de pago',
|
|
||||||
add_new_invoice: 'Añadir nueva factura',
|
|
||||||
update_expense: 'Gastos de actualización',
|
|
||||||
edit_invoice: 'Editar factura',
|
|
||||||
new_invoice: 'Nueva factura',
|
|
||||||
save_invoice: 'Guardar factura',
|
|
||||||
update_invoice: 'Actualizar factura',
|
|
||||||
add_new_tax: 'Agregar nuevo impuesto',
|
|
||||||
no_invoices: '¡Aún no hay facturas!',
|
|
||||||
list_of_invoices: 'Esta sección contendrá la lista de facturas.',
|
|
||||||
select_invoice: 'Seleccionar factura',
|
|
||||||
mark_as_sent_successfully: 'Factura marcada como enviada con éxito',
|
|
||||||
send_invoice_successfully: 'Factura enviada exitosamente',
|
|
||||||
item: {
|
|
||||||
title: 'Título del artículo',
|
|
||||||
description: 'Descripción',
|
|
||||||
quantity: 'Cantidad',
|
|
||||||
price: 'Precio',
|
|
||||||
discount: 'Descuento',
|
|
||||||
total: 'Total',
|
|
||||||
total_discount: 'Descuento total',
|
|
||||||
sub_total: 'Subtotal',
|
|
||||||
tax: 'Impuesto',
|
|
||||||
amount: 'Cantidad',
|
|
||||||
select_an_item: 'Escriba o haga clic para seleccionar un elemento',
|
|
||||||
type_item_description: 'Tipo Elemento Descripción (opcional)'
|
|
||||||
},
|
|
||||||
payment_attached_message: 'Una de las facturas seleccionadas ya tiene un pago adjunto. Asegúrese de eliminar primero los pagos adjuntos para continuar con la eliminación',
|
|
||||||
confirm_delete: 'No podrá recuperar esta factura | No podrá recuperar estas facturas',
|
|
||||||
created_message: 'Factura creada exitosamente',
|
|
||||||
updated_message: 'Factura actualizada exitosamente',
|
|
||||||
deleted_message: 'Factura eliminada con éxito | Facturas borradas exitosamente',
|
|
||||||
marked_as_sent_message: 'Factura marcada como enviada con éxito',
|
|
||||||
invalid_due_amount_message: 'El pago ingresado es mayor que el monto total adeudado por esta factura. Por favor verifique y vuelva a intentar'
|
|
||||||
},
|
|
||||||
credit_notes: {
|
|
||||||
title: 'Notas de credito',
|
|
||||||
credit_notes_list: 'Lista de notas de crédito',
|
|
||||||
// Fields
|
|
||||||
credit_notes: 'Notas de credito',
|
|
||||||
contact: 'Contacto',
|
|
||||||
date: 'Fecha',
|
|
||||||
amount: 'Cantidad',
|
|
||||||
action: 'Acción',
|
|
||||||
credit_number: 'Número de crédito',
|
|
||||||
notes: 'Notas',
|
|
||||||
confirm_delete: '¿Desea eliminar esta nota de crédito?',
|
|
||||||
item: {
|
|
||||||
title: 'Título del artículo',
|
|
||||||
description: 'Descripción',
|
|
||||||
quantity: 'Cantidad',
|
|
||||||
price: 'Precio',
|
|
||||||
discount: 'Descuento',
|
|
||||||
total: 'Total',
|
|
||||||
total_discount: 'Descuento total',
|
|
||||||
sub_total: 'Subtotal',
|
|
||||||
tax: 'Impuesto'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
payments: {
|
|
||||||
title: 'Pagos',
|
|
||||||
payments_list: 'Lista de pagos',
|
|
||||||
record_payment: 'Registro de pago',
|
|
||||||
// Fields
|
|
||||||
customer: 'Cliente',
|
|
||||||
date: 'Fecha',
|
|
||||||
amount: 'Cantidad',
|
|
||||||
action: 'Acción',
|
|
||||||
payment_number: 'Numero de pago',
|
|
||||||
payment_mode: 'Modo de pago',
|
|
||||||
invoice: 'Factura',
|
|
||||||
note: 'Nota',
|
|
||||||
add_payment: 'Agregar pago',
|
|
||||||
new_payment: 'Nuevo pago',
|
|
||||||
edit_payment: 'Editar pago',
|
|
||||||
view_payment: 'Ver pago',
|
|
||||||
add_new_payment: 'Agregar nuevo pago',
|
|
||||||
save_payment: 'Guardar pago',
|
|
||||||
update_payment: 'Actualizar pago',
|
|
||||||
payment: 'Pago | Pagos',
|
|
||||||
no_payments: '¡Aún no hay pagos!',
|
|
||||||
list_of_payments: 'Esta sección contendrá la lista de pagos.',
|
|
||||||
select_payment_mode: 'Seleccionar modo de pago',
|
|
||||||
|
|
||||||
confirm_delete: 'No podrá recuperar este pago | No podrá recuperar estos pagos',
|
|
||||||
created_message: 'Pago creado con éxito',
|
|
||||||
updated_message: 'Pago actualizado con éxito',
|
|
||||||
deleted_message: 'Pago eliminado con éxito | Pagos eliminados exitosamente',
|
|
||||||
invalid_amount_message: 'El importe del pago no es válido.'
|
|
||||||
},
|
|
||||||
expenses: {
|
|
||||||
title: 'Gastos',
|
|
||||||
expenses_list: 'Lista de gastos',
|
|
||||||
// Fields
|
|
||||||
expense_title: 'Título',
|
|
||||||
contact: 'Contacto',
|
|
||||||
category: 'Categoría',
|
|
||||||
from_date: 'Partir de la fecha',
|
|
||||||
to_date: 'Hasta la fecha',
|
|
||||||
expense_date: 'Fecha',
|
|
||||||
description: 'Descripción',
|
|
||||||
receipt: 'Recibo',
|
|
||||||
amount: 'Cantidad',
|
|
||||||
action: 'Acción',
|
|
||||||
note: 'Nota',
|
|
||||||
category_id: 'Categoria ID',
|
|
||||||
date: 'Fecha de gastos',
|
|
||||||
add_expense: 'Añadir gastos',
|
|
||||||
add_new_expense: 'Añadir nuevo gasto',
|
|
||||||
save_expense: 'Ahorre gastos',
|
|
||||||
update_expense: 'Gastos de actualización',
|
|
||||||
download_receipt: 'Descargar recibo',
|
|
||||||
edit_expense: 'Editar gasto',
|
|
||||||
new_expense: 'Nuevo gasto',
|
|
||||||
expense: 'Gastos | Gastos',
|
|
||||||
no_expenses: 'No hay gastos todavía!',
|
|
||||||
list_of_expenses: 'Esta sección contendrá la lista de gastos.',
|
|
||||||
|
|
||||||
confirm_delete: 'No podrá recuperar este gasto | No podrá recuperar estos gastos',
|
|
||||||
created_message: 'Gastos creados exitosamente',
|
|
||||||
updated_message: 'Gastos actualizados con éxito',
|
|
||||||
deleted_message: 'Gastos eliminados con éxito | Gastos eliminados exitosamente',
|
|
||||||
categories: {
|
|
||||||
categories_list: 'Lista de categorías',
|
|
||||||
title: 'Título',
|
|
||||||
name: 'Nombre',
|
|
||||||
description: 'Descripción',
|
|
||||||
amount: 'Cantidad',
|
|
||||||
actions: 'Comportamiento',
|
|
||||||
add_category: 'añadir categoría',
|
|
||||||
new_category: 'Nueva categoría',
|
|
||||||
category: 'Categoría | Categorias',
|
|
||||||
select_a_category: 'Seleccione una categoría'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
login: {
|
|
||||||
email: 'Email',
|
|
||||||
password: 'Contraseña',
|
|
||||||
forgot_password: '¿Se te olvidó tu contraseña?',
|
|
||||||
or_signIn_with: 'o Inicie sesión con:',
|
|
||||||
login: 'Iniciar sesión',
|
|
||||||
register: 'Registro',
|
|
||||||
reset_password: 'Restablecer la contraseña',
|
|
||||||
enter_email: 'Ingrese correo electrónico',
|
|
||||||
enter_password: 'Introducir la contraseña',
|
|
||||||
retype_password: 'Retype Password',
|
|
||||||
login_placeholder: 'mail@example.com'
|
|
||||||
},
|
|
||||||
reports: {
|
|
||||||
title: 'Reporte',
|
|
||||||
from_date: 'Partir de la fecha',
|
|
||||||
to_date: 'Hasta la fecha',
|
|
||||||
status: 'Estado',
|
|
||||||
paid: 'Pagada',
|
|
||||||
unpaid: 'No pagado',
|
|
||||||
download_pdf: 'Descargar PDF',
|
|
||||||
view_pdf: 'Ver PDF',
|
|
||||||
update_report: 'Informe de actualización',
|
|
||||||
report: 'Informe | Informes',
|
|
||||||
profit_loss: {
|
|
||||||
profit_loss: 'Pérdida de beneficios',
|
|
||||||
to_date: 'Hasta la fecha',
|
|
||||||
from_date: 'Partir de la fecha',
|
|
||||||
date_range: 'Seleccionar rango de fechas'
|
|
||||||
},
|
|
||||||
sales: {
|
|
||||||
sales: 'Ventas',
|
|
||||||
date_range: 'Seleccionar rango de fechas',
|
|
||||||
to_date: 'Hasta la fecha',
|
|
||||||
from_date: 'Partir de la fecha',
|
|
||||||
report_type: 'Tipo de informe'
|
|
||||||
},
|
|
||||||
taxes: {
|
|
||||||
taxes: 'Impuestos',
|
|
||||||
to_date: 'Hasta la fecha',
|
|
||||||
from_date: 'Partir de la fecha',
|
|
||||||
date_range: 'Seleccionar rango de fechas'
|
|
||||||
},
|
|
||||||
errors: {
|
|
||||||
required: 'Se requiere campo'
|
|
||||||
},
|
|
||||||
invoices: {
|
|
||||||
invoice: 'Factura',
|
|
||||||
invoice_date: 'Fecha de la factura',
|
|
||||||
due_date: 'Fecha de vencimiento',
|
|
||||||
amount: 'Cantidad',
|
|
||||||
contact_name: 'Nombre de contacto',
|
|
||||||
status: 'Estado'
|
|
||||||
},
|
|
||||||
estimates: {
|
|
||||||
estimate: 'Estimar',
|
|
||||||
estimate_date: 'Fecha estimada',
|
|
||||||
due_date: 'Fecha de vencimiento',
|
|
||||||
estimate_number: 'Numero Estimado',
|
|
||||||
ref_number: 'Número de referencia',
|
|
||||||
amount: 'Cantidad',
|
|
||||||
contact_name: 'Nombre de contacto',
|
|
||||||
status: 'Estado'
|
|
||||||
},
|
|
||||||
expenses: {
|
|
||||||
expenses: 'Gastos',
|
|
||||||
category: 'Categoría',
|
|
||||||
date: 'Fecha',
|
|
||||||
amount: 'Cantidad',
|
|
||||||
to_date: 'Hasta la fecha',
|
|
||||||
from_date: 'Partir de la fecha',
|
|
||||||
date_range: 'Seleccionar rango de fechas'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
settings: {
|
|
||||||
menu_title: {
|
|
||||||
account_settings: 'Configuraciones de la cuenta',
|
|
||||||
company_information: 'Información de la empresa',
|
|
||||||
preferences: 'Preferencias',
|
|
||||||
notifications: 'Notificaciones',
|
|
||||||
tax_types: 'Tipos de impuestos',
|
|
||||||
expense_category: 'Categorías de gastos',
|
|
||||||
update_app: 'Actualizar aplicación'
|
|
||||||
},
|
|
||||||
title: 'Configuraciones',
|
|
||||||
setting: 'Configuraciones | Configuraciones',
|
|
||||||
general: 'General',
|
|
||||||
language: 'Idioma',
|
|
||||||
primary_currency: 'Moneda primaria',
|
|
||||||
timezone: 'Zona horaria',
|
|
||||||
date_format: 'Formato de fecha',
|
|
||||||
currencies: {
|
|
||||||
title: 'Monedas',
|
|
||||||
currency: 'Moneda | Monedas',
|
|
||||||
currencies_list: 'Lista de monedas',
|
|
||||||
select_currency: 'Seleccione el tipo de moneda',
|
|
||||||
name: 'Nombre',
|
|
||||||
code: 'Código',
|
|
||||||
symbol: 'Símbolo',
|
|
||||||
precision: 'Precisión',
|
|
||||||
thousand_separator: 'Mil separadores',
|
|
||||||
decimal_separator: 'Separador decimal',
|
|
||||||
position: 'Posición',
|
|
||||||
position_of_symbol: 'Posición del símbolo',
|
|
||||||
right: 'Derecho',
|
|
||||||
left: 'Izquierda',
|
|
||||||
action: 'Acción',
|
|
||||||
add_currency: 'Agregar moneda'
|
|
||||||
},
|
|
||||||
mail: {
|
|
||||||
host: 'Host de correo',
|
|
||||||
port: 'Puerto de correo',
|
|
||||||
driver: 'Conductor de correo',
|
|
||||||
secret: 'Secreto',
|
|
||||||
password: 'Contraseña de correo',
|
|
||||||
username: 'Nombre de usuario de correo',
|
|
||||||
mailgun_secret: 'Mailgun Secreto',
|
|
||||||
mailgun_domain: 'Domino',
|
|
||||||
mailgun_endpoint: 'Mailgun Punto Final',
|
|
||||||
ses_secret: 'SES Secreto',
|
|
||||||
ses_key: 'SES llave',
|
|
||||||
from_name: 'Del nombre del correo',
|
|
||||||
from_mail: 'Desde la dirección de correo',
|
|
||||||
mail_config: 'Configuración de correo',
|
|
||||||
encryption: 'Cifrado de correo',
|
|
||||||
mail_config_desc: 'Los detalles a continuación se utilizarán para actualizar el entorno de correo. También puede cambiar los detalles en cualquier momento después de iniciar sesión.'
|
|
||||||
},
|
|
||||||
pdf: {
|
|
||||||
title: 'Configuración de PDF',
|
|
||||||
footer_text: 'Texto de pie de página',
|
|
||||||
pdf_layout: 'Diseño PDF'
|
|
||||||
},
|
|
||||||
company_info: {
|
|
||||||
company_info: 'Información de la compañía',
|
|
||||||
company_name: 'nombre de empresa',
|
|
||||||
company_logo: 'Logo de la compañía',
|
|
||||||
section_description: 'Información sobre su empresa que se mostrará en las facturas, estimaciones y otros documentos creados por Crater.',
|
|
||||||
phone: 'Teléfono',
|
|
||||||
country: 'País',
|
|
||||||
state: 'Estado',
|
|
||||||
city: 'Ciudad',
|
|
||||||
address: 'Habla a',
|
|
||||||
zip: 'Código Postal',
|
|
||||||
save: 'Salvar',
|
|
||||||
updated_message: 'Información de la empresa actualizada con éxito'
|
|
||||||
},
|
|
||||||
account_settings: {
|
|
||||||
profile_picture: 'Foto de perfil',
|
|
||||||
name: 'Nombre',
|
|
||||||
email: 'Email',
|
|
||||||
password: 'Contraseña',
|
|
||||||
confirm_password: 'Confirmar contraseña',
|
|
||||||
account_settings: 'Configuraciones de la cuenta',
|
|
||||||
save: 'Salvar',
|
|
||||||
section_description: 'Puede actualizar su nombre, correo electrónico y contraseña utilizando el siguiente formulario.',
|
|
||||||
updated_message: 'Configuración de la cuenta actualizada correctamente'
|
|
||||||
},
|
|
||||||
user_profile: {
|
|
||||||
name: 'Nombre',
|
|
||||||
email: 'Email',
|
|
||||||
password: 'Contraseña',
|
|
||||||
confirm_password: 'Confirmar contraseña'
|
|
||||||
},
|
|
||||||
notification: {
|
|
||||||
title: 'Notificación',
|
|
||||||
email: 'Enviar notificaciones a',
|
|
||||||
description: '¿Qué notificaciones por correo electrónico le gustaría recibir cuando algo cambia?',
|
|
||||||
invoice_viewed: 'Factura vista',
|
|
||||||
invoice_viewed_desc: 'Cuando su cliente ve la factura enviada a través del panel de control del cráter.',
|
|
||||||
estimate_viewed: 'Estimación vista',
|
|
||||||
estimate_viewed_desc: 'Cuando su cliente ve la estimación enviada a través del panel de control del cráter.',
|
|
||||||
save: 'Salvar',
|
|
||||||
email_save_message: 'Correo electrónico guardado con éxito',
|
|
||||||
please_enter_email: 'Por favor, introduzca su correo electrónico'
|
|
||||||
},
|
|
||||||
tax_types: {
|
|
||||||
title: 'Tipos de impuestos',
|
|
||||||
add_tax: 'Agregar impuesto',
|
|
||||||
description: 'Puede agregar o eliminar impuestos a su gusto. Crater admite impuestos sobre artículos individuales, así como sobre la factura.',
|
|
||||||
add_new_tax: 'Agregar nuevo impuesto',
|
|
||||||
tax_settings: 'Configuraciones de impuestos',
|
|
||||||
tax_per_item: 'Impuesto por artículo',
|
|
||||||
tax_name: 'Nombre fiscal',
|
|
||||||
compound_tax: 'Impuesto compuesto',
|
|
||||||
percent: 'Por ciento',
|
|
||||||
action: 'Acción',
|
|
||||||
tax_setting_description: 'Habilítelo si desea agregar impuestos a artículos de factura individuales. Por defecto, los impuestos se agregan directamente a la factura.',
|
|
||||||
created_message: 'Tipo de impuesto creado con éxito',
|
|
||||||
updated_message: 'Tipo de impuesto actualizado correctamente',
|
|
||||||
deleted_message: 'Tipo de impuesto eliminado correctamente',
|
|
||||||
confirm_delete: 'No podrá recuperar este tipo de impuesto',
|
|
||||||
already_in_use: 'El impuesto ya está en uso.'
|
|
||||||
},
|
|
||||||
expense_category: {
|
|
||||||
title: 'Categorías de gastos',
|
|
||||||
action: 'Acción',
|
|
||||||
description: 'Se requieren categorías para agregar entradas de gastos. Puede Agregar o Eliminar estas categorías según su preferencia.',
|
|
||||||
add_new_category: 'Añadir nueva categoria',
|
|
||||||
category_name: 'nombre de la categoría',
|
|
||||||
category_description: 'Descripción',
|
|
||||||
created_message: 'Categoría de gastos creada con éxito',
|
|
||||||
deleted_message: 'Categoría de gastos eliminada correctamente',
|
|
||||||
updated_message: 'Categoría de gastos actualizada con éxito',
|
|
||||||
confirm_delete: 'No podrá recuperar esta categoría de gastos',
|
|
||||||
already_in_use: 'La categoría ya está en uso.'
|
|
||||||
},
|
|
||||||
preferences: {
|
|
||||||
currency: 'Moneda',
|
|
||||||
language: 'Idioma',
|
|
||||||
time_zone: 'Zona horaria',
|
|
||||||
fiscal_year: 'Año financiero',
|
|
||||||
date_format: 'Formato de fecha',
|
|
||||||
discount_setting: 'Ajuste de descuento',
|
|
||||||
discount_per_item: 'Descuento por artículo',
|
|
||||||
discount_setting_description: 'Habilítelo si desea agregar Descuento a artículos de factura individuales. Por defecto, los descuentos se agregan directamente a la factura.',
|
|
||||||
save: 'Salvar',
|
|
||||||
preference: 'Preferencia | Preferencias',
|
|
||||||
general_settings: 'Preferencias predeterminadas para el sistema.',
|
|
||||||
updated_message: 'Preferencias actualizadas exitosamente',
|
|
||||||
select_language: 'seleccione el idioma',
|
|
||||||
select_time_zone: 'selecciona la zona horaria',
|
|
||||||
select_date_formate: 'seleccione formato de fecha',
|
|
||||||
select_financial_year: 'seleccione año financiero'
|
|
||||||
},
|
|
||||||
update_app: {
|
|
||||||
title: 'Actualizar aplicación',
|
|
||||||
description: 'actualizar la descripción de la aplicación',
|
|
||||||
check_update: 'Buscar actualizaciones',
|
|
||||||
avail_update: 'Nueva actualización disponible',
|
|
||||||
next_version: 'Próxima versión',
|
|
||||||
update: 'Actualizar',
|
|
||||||
update_progress: 'Actualización en progreso...',
|
|
||||||
progress_text: 'Solo tomará unos minutos. No actualice la pantalla ni cierre la ventana antes de que finalice la actualización.',
|
|
||||||
update_success: '¡La aplicación ha sido actualizada! Espere mientras la ventana de su navegador se vuelve a cargar automáticamente.',
|
|
||||||
latest_message: '¡Actualización no disponible! Estás en la última versión.',
|
|
||||||
current_version: 'Versión actual'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
wizard: {
|
|
||||||
account_info: 'Información de la cuenta',
|
|
||||||
account_info_desc: 'Los detalles a continuación se utilizarán para crear la cuenta principal de administrador. También puede cambiar los detalles en cualquier momento después de iniciar sesión.',
|
|
||||||
name: 'Nombre',
|
|
||||||
email: 'Email',
|
|
||||||
password: 'Contraseña',
|
|
||||||
confirm_password: 'Confirmar contraseña',
|
|
||||||
save_cont: 'Guardar Continuar',
|
|
||||||
company_info: 'Información de la empresa',
|
|
||||||
company_info_desc: 'Esta información se mostrará en las facturas. Tenga en cuenta que puede editar esto más adelante en la página de configuración.',
|
|
||||||
company_name: 'nombre de empresa',
|
|
||||||
company_logo: 'Logo de la compañía',
|
|
||||||
logo_preview: 'Vista previa del logotipo',
|
|
||||||
preferences: 'Preferencias',
|
|
||||||
preferences_desc: 'Preferencias predeterminadas para el sistema.',
|
|
||||||
country: 'País',
|
|
||||||
state: 'Estado',
|
|
||||||
city: 'Ciudad',
|
|
||||||
address: 'Habla a',
|
|
||||||
street: 'Calle1 ' | 'Calle # 2',
|
|
||||||
phone: 'Teléfono',
|
|
||||||
zip_code: 'Código postal',
|
|
||||||
go_back: 'Regresa',
|
|
||||||
currency: 'Moneda',
|
|
||||||
language: 'Idioma',
|
|
||||||
time_zone: 'Zona horaria',
|
|
||||||
fiscal_year: 'Año financiero',
|
|
||||||
date_format: 'Formato de fecha',
|
|
||||||
from_address: 'De la Dirección',
|
|
||||||
username: 'Nombre de usuario',
|
|
||||||
next: 'Próximo',
|
|
||||||
continue: 'Hacer continuación',
|
|
||||||
database: {
|
|
||||||
database: 'URL del sitio y base de datose',
|
|
||||||
connection: 'Conexión de base de datos',
|
|
||||||
host: 'Database Host',
|
|
||||||
port: 'Host de base de datos',
|
|
||||||
password: 'Contraseña de base de datos',
|
|
||||||
app_url: 'URL de la aplicación',
|
|
||||||
username: 'Nombre de usuario de la base de datos',
|
|
||||||
db_name: 'Nombre de la base de datos',
|
|
||||||
desc: 'Cree una base de datos en su servidor y establezca las credenciales utilizando el siguiente formulario.'
|
|
||||||
},
|
|
||||||
permissions: {
|
|
||||||
permissions: 'Permisos',
|
|
||||||
permission_confirm_title: 'Estás seguro de que quieres continuar?',
|
|
||||||
permission_confirm_desc: 'Error de verificación de permisos de carpeta',
|
|
||||||
permission_desc: 'A continuación se muestra la lista de permisos de carpeta necesarios para que la aplicación funcione. Si la verificación de permisos falla, asegúrese de actualizar los permisos de su carpeta.'
|
|
||||||
},
|
|
||||||
mail: {
|
|
||||||
host: 'Host de correo',
|
|
||||||
port: 'Puerto de correo',
|
|
||||||
driver: 'Conductor de correo',
|
|
||||||
secret: 'Secreto',
|
|
||||||
password: 'Contraseña de correo',
|
|
||||||
username: 'Nombre de usuario de correo',
|
|
||||||
mailgun_secret: 'Mailgun Secreto',
|
|
||||||
mailgun_domain: 'Domino',
|
|
||||||
mailgun_endpoint: 'Mailgun Punto Final',
|
|
||||||
ses_secret: 'SES Secreto',
|
|
||||||
ses_key: 'SES llave',
|
|
||||||
from_name: 'Del nombre del correo',
|
|
||||||
from_mail: 'Desde la dirección de correo',
|
|
||||||
mail_config: 'Configuración de correo',
|
|
||||||
encryption: 'Cifrado de correo',
|
|
||||||
mail_config_desc: 'Los detalles a continuación se utilizarán para actualizar el entorno de correo. También puede cambiar los detalles en cualquier momento después de iniciar sesión.'
|
|
||||||
},
|
|
||||||
req: {
|
|
||||||
system_req: 'Requisitos del sistema',
|
|
||||||
php_req_version: 'Php (versión {version} necesario)',
|
|
||||||
check_req: 'Consultar requisitos',
|
|
||||||
system_req_desc: 'Crater tiene algunos requisitos de servidor. Asegúrese de que su servidor tenga la versión de php requerida y todas las extensiones mencionadas a continuación.'
|
|
||||||
},
|
|
||||||
errors: {
|
|
||||||
migrate_failed: 'La migración falló',
|
|
||||||
database_variables_save_error: 'No se puede conectar a la base de datos con los valores proporcionados.',
|
|
||||||
mail_variables_save_error: 'La configuración del correo electrónico ha fallado.',
|
|
||||||
connection_failed: 'Conexión de base de datos fallida'
|
|
||||||
},
|
|
||||||
success: {
|
|
||||||
mail_variables_save_successfully: 'Correo electrónico configurado correctamente',
|
|
||||||
database_variables_save_successfully: 'Base de datos configurada con éxito.'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
layout_login: {
|
|
||||||
copyright_crater: 'Copyright @ Crater - 2019',
|
|
||||||
super_simple_invoicing: 'Facturación super simple',
|
|
||||||
for_freelancer: 'para autónomos y',
|
|
||||||
small_businesses: 'Pequeñas empresas',
|
|
||||||
crater_help: 'Crater te ayuda a rastrear gastos, registrar pagos y generar hermosos',
|
|
||||||
invoices_and_estimates: 'facturas y presupuestos con capacidad para elegir múltiples plantillas.'
|
|
||||||
|
|
||||||
},
|
|
||||||
validation: {
|
|
||||||
invalid_url: 'URL no válida (por ejemplo, http://www.crater.com)',
|
|
||||||
required: 'Se requiere campo',
|
|
||||||
email_incorrect: 'Email incorrecto.',
|
|
||||||
email_does_not_exist: ' Usuario con correo electrónico dado no existe',
|
|
||||||
send_reset_link: 'Enviar restablecer enlace',
|
|
||||||
not_yet: '¿Aún no? Envialo de nuevo',
|
|
||||||
password_min_length: 'La contraseña debe contener {count} caracteres',
|
|
||||||
name_min_length: 'El nombre debe tener al menos {count} letras.',
|
|
||||||
enter_valid_tax_rate: 'Ingrese una tasa impositiva válida',
|
|
||||||
numbers_only: 'Solo numeros.',
|
|
||||||
characters_only: 'Solo personajes.',
|
|
||||||
password_incorrect: 'Las contraseñas deben ser idénticas',
|
|
||||||
password_length: 'La contraseña debe tener 5 caracteres de longitud.',
|
|
||||||
qty_must_greater_than_zero: 'La cantidad debe ser mayor que cero.',
|
|
||||||
price_greater_than_zero: 'El precio debe ser mayor que cero.',
|
|
||||||
payment_greater_than_zero: 'El pago debe ser mayor que cero.',
|
|
||||||
payment_greater_than_due_amount: 'El pago ingresado es mayor al monto adeudado de esta factura.',
|
|
||||||
quantity_maxlength: 'La cantidad no debe ser mayor de 20 dígitos.',
|
|
||||||
price_maxlength: 'El precio no debe ser mayor de 20 dígitos.',
|
|
||||||
price_minvalue: 'El precio debe ser mayor que 0 dígitos',
|
|
||||||
amount_maxlength: 'La cantidad no debe ser mayor de 20 dígitos.',
|
|
||||||
amount_minvalue: 'La cantidad debe ser mayor que 0 dígitos',
|
|
||||||
description_maxlength: 'La descripción no debe tener más de 255 caracteres.',
|
|
||||||
maximum_options_error: 'Máximo de {max} opciones seleccionadas. Primero elimine una opción seleccionada para seleccionar otra.',
|
|
||||||
notes_maxlength: 'Las notas no deben tener más de 255 caracteres.',
|
|
||||||
address_maxlength: 'La dirección no debe tener más de 255 caracteres.',
|
|
||||||
ref_number_maxlength: 'El número de referencia no debe tener más de 255 caracteres.'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
811
resources/assets/js/plugins/es.json
Normal file
811
resources/assets/js/plugins/es.json
Normal file
@ -0,0 +1,811 @@
|
|||||||
|
{
|
||||||
|
"navigation": {
|
||||||
|
"dashboard": "Tablero",
|
||||||
|
"customers": "Clientes",
|
||||||
|
"items": "Artículos",
|
||||||
|
"invoices": "Facturas",
|
||||||
|
"expenses": "Gastos",
|
||||||
|
"estimates": "Estimadas",
|
||||||
|
"payments": "Pagos",
|
||||||
|
"reports": "Informes",
|
||||||
|
"settings": "Configuraciones",
|
||||||
|
"logout": "Cerrar sesión"
|
||||||
|
},
|
||||||
|
"general": {
|
||||||
|
"view_pdf": "Ver PDF",
|
||||||
|
"download_pdf": "Descargar PDF",
|
||||||
|
"save": "Salvar",
|
||||||
|
"cancel": "Cancelar",
|
||||||
|
"update": "Actualizar",
|
||||||
|
"download": "Descargar",
|
||||||
|
"from_date": "Partir de la fecha",
|
||||||
|
"to_date": "Hasta la fecha",
|
||||||
|
"from": "De",
|
||||||
|
"to": "A",
|
||||||
|
"go_back": "Regresa",
|
||||||
|
"back_to_login": "¿Atrás para iniciar sesión?",
|
||||||
|
"home": "Casa",
|
||||||
|
"filter": "Filtrar",
|
||||||
|
"delete": "Eliminar",
|
||||||
|
"edit": "Editar",
|
||||||
|
"view": "Ver",
|
||||||
|
"add_new_item": "Agregar ítem nuevo",
|
||||||
|
"clear_all": "Limpiar todo",
|
||||||
|
"showing": "Demostración",
|
||||||
|
"of": "de",
|
||||||
|
"actions": "Comportamiento",
|
||||||
|
"subtotal": "TOTAL PARCIAL",
|
||||||
|
"discount": "DESCUENTO",
|
||||||
|
"fixed": "Fija",
|
||||||
|
"percentage": "Porcentaje",
|
||||||
|
"tax": "IMPUESTO",
|
||||||
|
"total_amount": "CANTIDAD TOTAL",
|
||||||
|
"bill_to": "Cobrar a",
|
||||||
|
"ship_to": "Envie a",
|
||||||
|
"due": "Debida",
|
||||||
|
"draft": "Sequía",
|
||||||
|
"sent": "Expedida",
|
||||||
|
"all": "Todas",
|
||||||
|
"select_all": "Seleccionar todo",
|
||||||
|
"choose_file": "Haga clic aquí para elegir un archivo.",
|
||||||
|
"choose_template": "Elige una plantilla",
|
||||||
|
"choose": "Escoger",
|
||||||
|
"remove": "Eliminar",
|
||||||
|
"powered_by": "Energizado por",
|
||||||
|
"bytefury": "Bytefury",
|
||||||
|
"select_a_status": "Selecciona un estado",
|
||||||
|
"select_a_tax": "Selecciona un impuesto",
|
||||||
|
"search": "Buscar",
|
||||||
|
"are_you_sure": "¿Estás seguro?",
|
||||||
|
"list_is_empty": "La lista esta vacía.",
|
||||||
|
"no_tax_found": "¡No se encontraron impuestos!",
|
||||||
|
"four_zero_four": "404",
|
||||||
|
"you_got_lost": "Whoops! ¡Te perdiste!",
|
||||||
|
"go_home": "Vete a casa",
|
||||||
|
|
||||||
|
"setting_updated": "Configuración actualizada con éxito",
|
||||||
|
"select_state": "Seleccione estado",
|
||||||
|
"select_country": "Seleccionar país",
|
||||||
|
"select_city": "Ciudad selecta",
|
||||||
|
"street_1": "Calle 1",
|
||||||
|
"street_2": "Calle # 2",
|
||||||
|
"action_failed": "Accion: Fallida"
|
||||||
|
},
|
||||||
|
"dashboard": {
|
||||||
|
"select_year": "Seleccione año",
|
||||||
|
"cards": {
|
||||||
|
"due_amount": "Monto adeudado",
|
||||||
|
"customers": "Clientes",
|
||||||
|
"invoices": "Facturas",
|
||||||
|
"estimates": "Estimadas"
|
||||||
|
},
|
||||||
|
"chart_info": {
|
||||||
|
"total_sales": "Ventas",
|
||||||
|
"total_receipts": "Ingresos",
|
||||||
|
"total_expense": "Gastos",
|
||||||
|
"net_income": "Lngresos netos",
|
||||||
|
"year": "Seleccione año"
|
||||||
|
},
|
||||||
|
"weekly_invoices": {
|
||||||
|
"title": "Facturas semanales"
|
||||||
|
},
|
||||||
|
"monthly_chart": {
|
||||||
|
"title": "Gastos de venta"
|
||||||
|
},
|
||||||
|
"recent_invoices_card": {
|
||||||
|
"title": "Facturas adeudadas",
|
||||||
|
"due_on": "Debido a",
|
||||||
|
"customer": "Cliente",
|
||||||
|
"amount_due": "Monto adeudado",
|
||||||
|
"actions": "Comportamiento",
|
||||||
|
"view_all": "Ver todo"
|
||||||
|
},
|
||||||
|
"recent_estimate_card": {
|
||||||
|
"title": "Estimaciones recientes",
|
||||||
|
"date": "Fecha",
|
||||||
|
"customer": "Cliente",
|
||||||
|
"amount_due": "Monto adeudado",
|
||||||
|
"actions": "Comportamiento",
|
||||||
|
"view_all": "Ver todo"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"tax_types": {
|
||||||
|
"name": "Nombre",
|
||||||
|
"description": "Descripción",
|
||||||
|
"percent": "Por ciento",
|
||||||
|
"compound_tax": "Impuesto compuesto"
|
||||||
|
},
|
||||||
|
"customers": {
|
||||||
|
"title": "Clientes",
|
||||||
|
"add_customer": "Agregar cliente",
|
||||||
|
"contacts_list": "Lista de clientes",
|
||||||
|
"name": "Nombre",
|
||||||
|
"display_name": "Nombre para mostrar",
|
||||||
|
"primary_contact_name": "Nombre de contacto primario",
|
||||||
|
"contact_name": "Nombre de contacto",
|
||||||
|
"amount_due": "Monto adeudado",
|
||||||
|
"email": "Email",
|
||||||
|
"address": "Habla a",
|
||||||
|
"phone": "Teléfono",
|
||||||
|
"website": "Sitio web",
|
||||||
|
"country": "País",
|
||||||
|
"state": "Estado",
|
||||||
|
"city": "Ciudad",
|
||||||
|
"zip_code": "Código postal",
|
||||||
|
"added_on": "Añadido",
|
||||||
|
"action": "Acción",
|
||||||
|
"password": "Contraseña",
|
||||||
|
"street_number": "Número de calle",
|
||||||
|
"primary_currency": "Moneda primaria",
|
||||||
|
"add_new_customer": "Agregar nuevo cliente",
|
||||||
|
"save_customer": "Guardar cliente",
|
||||||
|
"update_customer": "Actualizar cliente",
|
||||||
|
"customer": "Cliente | Clientes",
|
||||||
|
"new_customer": "Nuevo cliente",
|
||||||
|
"edit_customer": "Editar cliente",
|
||||||
|
"basic_info": "Información básica",
|
||||||
|
"billing_address": "Dirección de Envio",
|
||||||
|
"shipping_address": "Dirección de Envío",
|
||||||
|
"copy_billing_address": "Copia de facturación",
|
||||||
|
"no_customers": "¡Aún no hay clientes!",
|
||||||
|
"no_customers_found": "No se encontraron clientes!",
|
||||||
|
"list_of_customers": "Esta sección contendrá la lista de clientes.",
|
||||||
|
"primary_display_name": "Nombre de visualización principal",
|
||||||
|
"select_state": "Seleccione estado",
|
||||||
|
"select_country": "Seleccionar país",
|
||||||
|
"select_city": "Ciudad selecta",
|
||||||
|
"select_currency": "Seleccione el tipo de moneda",
|
||||||
|
"street_1": "Calle 1",
|
||||||
|
"street_2": "Calle 2",
|
||||||
|
"select_a_customer": "Selecciona un cliente",
|
||||||
|
"type_or_click": "Escriba o haga clic para seleccionar",
|
||||||
|
|
||||||
|
"confirm_delete": "No podrá recuperar este cliente | No podrá recuperar estos clientes",
|
||||||
|
"created_message": "Cliente creado con éxito",
|
||||||
|
"updated_message": "Cliente actualizado con éxito",
|
||||||
|
"deleted_message": "Cliente eliminado correctamente | Clientes eliminados exitosamente"
|
||||||
|
},
|
||||||
|
"items": {
|
||||||
|
"title": "Artículos",
|
||||||
|
"items_list": "Lista de artículos",
|
||||||
|
"name": "Nombre",
|
||||||
|
"unit": "Unidad",
|
||||||
|
"description": "Descripción",
|
||||||
|
"added_on": "Añadido",
|
||||||
|
"price": "Precio",
|
||||||
|
"date_of_creation": "Fecha de creación",
|
||||||
|
"action": "Acción",
|
||||||
|
"add_item": "Añadir artículo",
|
||||||
|
"save_item": "Guardar artículo",
|
||||||
|
"update_item": "Actualizar elemento",
|
||||||
|
"item": "Artículo | Artículos",
|
||||||
|
"add_new_item": "Agregar ítem nuevo",
|
||||||
|
"new_item": "Nuevo artículo",
|
||||||
|
"edit_item": "Editar elemento",
|
||||||
|
"no_items": "¡Aún no hay artículos!",
|
||||||
|
"list_of_items": "Esta sección contendrá la lista de artículos.",
|
||||||
|
"select_a_unit": "seleccione unidad",
|
||||||
|
|
||||||
|
"item_attached_message": "No se puede eliminar un elemento que ya está en uso.",
|
||||||
|
"confirm_delete": "No podrá recuperar este artículo | No podrás recuperar estos elementos",
|
||||||
|
"created_message": "Artículo creado con éxito",
|
||||||
|
"updated_message": "Artículo actualizado con éxito",
|
||||||
|
"deleted_message": "Elemento eliminado con éxito | Elementos eliminados correctamente"
|
||||||
|
},
|
||||||
|
"estimates": {
|
||||||
|
"title": "Estimadas",
|
||||||
|
"estimate": "Estimación | Estimados",
|
||||||
|
"estimates_list": "Lista de estimaciones",
|
||||||
|
"days": "{días} días",
|
||||||
|
"months": "{meses} Mes",
|
||||||
|
"years": "{años} Año",
|
||||||
|
"all": "Todas",
|
||||||
|
"paid": "Pagada",
|
||||||
|
"unpaid": "No pagado",
|
||||||
|
"customer": "CLIENTE",
|
||||||
|
"ref_no": "NÚMERO DE REFERENCIA.",
|
||||||
|
"number": "NÚMERO",
|
||||||
|
"amount_due": "CANTIDAD DEBIDA",
|
||||||
|
"partially_paid": "Parcialmente pagado",
|
||||||
|
"total": "Total",
|
||||||
|
"discount": "Descuento",
|
||||||
|
"sub_total": "Subtotal",
|
||||||
|
"estimate_number": "Numero Estimado",
|
||||||
|
"ref_number": "Número de referencia",
|
||||||
|
"contact": "Contacto",
|
||||||
|
"add_item": "Agregar un artículo",
|
||||||
|
"date": "Fecha",
|
||||||
|
"due_date": "Fecha de vencimiento",
|
||||||
|
"expiry_date": "Fecha de caducidad",
|
||||||
|
"status": "Estado",
|
||||||
|
"add_tax": "Agregar impuesto",
|
||||||
|
"amount": "Cantidad",
|
||||||
|
"action": "Acción",
|
||||||
|
"notes": "Notas",
|
||||||
|
"tax": "Impuesto",
|
||||||
|
"send_estimate": "Enviar presupuesto",
|
||||||
|
"estimate_template": "Plantilla de estimación",
|
||||||
|
"convert_to_invoice": "Convertir a factura",
|
||||||
|
"mark_as_sent": "Marcar como enviado",
|
||||||
|
"record_payment": "Registro de pago",
|
||||||
|
"add_estimate": "Agregar presupuesto",
|
||||||
|
"save_estimate": "Guardar estimación",
|
||||||
|
"confirm_conversion": "¿Quiere convertir esta estimación en factura?",
|
||||||
|
"conversion_message": "Conversión exitosa",
|
||||||
|
"confirm_send_estimate": "Esta estimación se enviará por correo electrónico al cliente",
|
||||||
|
"confirm_mark_as_sent": "Esta estimación se marcará como enviada",
|
||||||
|
"confirm_mark_as_accepted": "Esta estimación se marcará como Aceptada",
|
||||||
|
"confirm_mark_as_rejected": "Esta estimación se marcará como Rechazada",
|
||||||
|
"mark_as_sent_successfully": "Estimación marcada como enviada correctamente",
|
||||||
|
"send_estimate_successfully": "Estimación enviada con éxito",
|
||||||
|
"errors": {
|
||||||
|
"required": "Se requiere campo"
|
||||||
|
},
|
||||||
|
"accepted": "Aceptada",
|
||||||
|
"sent": "Expedida",
|
||||||
|
"draft": "Sequía",
|
||||||
|
"declined": "Rechazada",
|
||||||
|
"new_estimate": "Nueva estimación",
|
||||||
|
"add_new_estimate": "Añadir nuevo presupuesto",
|
||||||
|
"update_Estimate": "Actualizar presupuesto",
|
||||||
|
"edit_estimate": "Editar estimación",
|
||||||
|
"items": "artículos",
|
||||||
|
"Estimate": "Estimación | Estimados",
|
||||||
|
"add_new_tax": "Agregar nuevo impuesto",
|
||||||
|
"no_estimates": "¡Aún no hay estimaciones!",
|
||||||
|
"list_of_estimates": "Esta sección contendrá la lista de estimaciones.",
|
||||||
|
"mark_as_rejected": "Marcar como rechazado",
|
||||||
|
"mark_as_accepted": "Marcar como aceptado",
|
||||||
|
|
||||||
|
"marked_as_accepted_message": "Estimación marcada como aceptada",
|
||||||
|
"marked_as_rejected_message": "Estimación marcada como rechazada",
|
||||||
|
"confirm_delete": "No podrá recuperar esta estimación | No podrá recuperar estas estimaciones",
|
||||||
|
"created_message": "Estimación creada con éxito",
|
||||||
|
"updated_message": "Estimación actualizada con éxito",
|
||||||
|
"deleted_message": "Estimación eliminada con éxito | Estimaciones eliminadas exitosamente",
|
||||||
|
"item": {
|
||||||
|
"title": "Título del artículo",
|
||||||
|
"description": "Descripción",
|
||||||
|
"quantity": "Quantity",
|
||||||
|
"price": "Precio",
|
||||||
|
"discount": "Descuento",
|
||||||
|
"total": "Total",
|
||||||
|
"total_discount": "Descuento total",
|
||||||
|
"sub_total": "Subtotal",
|
||||||
|
"tax": "Impuesto",
|
||||||
|
"amount": "Cantidad",
|
||||||
|
"select_an_item": "Escriba o haga clic para seleccionar un elemento",
|
||||||
|
"type_item_description": "Tipo Elemento Descripción (opcional)"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"invoices": {
|
||||||
|
"title": "Facturas",
|
||||||
|
"invoices_list": "Lista de facturas",
|
||||||
|
"days": "{días} días",
|
||||||
|
"months": "{meses} Mes",
|
||||||
|
"years": "{años} Año",
|
||||||
|
"all": "Todas",
|
||||||
|
"paid": "Pagada",
|
||||||
|
"unpaid": "No pagado",
|
||||||
|
"customer": "CLIENTE",
|
||||||
|
"paid_status": "ESTADO PAGADO",
|
||||||
|
"ref_no": "NÚMERO DE REFERENCIA.",
|
||||||
|
"number": "NÚMERO",
|
||||||
|
"amount_due": "CANTIDAD DEBIDA",
|
||||||
|
"partially_paid": "Parcialmente pagado",
|
||||||
|
"total": "Total",
|
||||||
|
"discount": "Descuento",
|
||||||
|
"sub_total": "Subtotal",
|
||||||
|
"invoice": "Factura | Facturas",
|
||||||
|
"invoice_number": "Numero de factura",
|
||||||
|
"ref_number": "Número de referencia",
|
||||||
|
"contact": "Contacto",
|
||||||
|
"add_item": "Agregar un artículo",
|
||||||
|
"date": "Fecha",
|
||||||
|
"due_date": "Fecha de vencimiento",
|
||||||
|
"status": "Estado",
|
||||||
|
"add_tax": "Agregar impuesto",
|
||||||
|
"amount": "Cantidad",
|
||||||
|
"action": "Acción",
|
||||||
|
"notes": "Notas",
|
||||||
|
"view": "Ver",
|
||||||
|
"send_invoice": "Enviará la factura",
|
||||||
|
"invoice_template": "Plantilla de factura",
|
||||||
|
"template": "Modelo",
|
||||||
|
"mark_as_sent": "Marcar como enviado",
|
||||||
|
"invoice_mark_as_sent": "Esta factura se marcará como enviada",
|
||||||
|
"confirm_send": "Estas facturas se enviarán por correo electrónico al cliente.",
|
||||||
|
"invoice_date": "Fecha de la factura",
|
||||||
|
"record_payment": "Registro de pago",
|
||||||
|
"add_new_invoice": "Añadir nueva factura",
|
||||||
|
"update_expense": "Gastos de actualización",
|
||||||
|
"edit_invoice": "Editar factura",
|
||||||
|
"new_invoice": "Nueva factura",
|
||||||
|
"save_invoice": "Guardar factura",
|
||||||
|
"update_invoice": "Actualizar factura",
|
||||||
|
"add_new_tax": "Agregar nuevo impuesto",
|
||||||
|
"no_invoices": "¡Aún no hay facturas!",
|
||||||
|
"list_of_invoices": "Esta sección contendrá la lista de facturas.",
|
||||||
|
"select_invoice": "Seleccionar factura",
|
||||||
|
"mark_as_sent_successfully": "Factura marcada como enviada con éxito",
|
||||||
|
"send_invoice_successfully": "Factura enviada exitosamente",
|
||||||
|
"item": {
|
||||||
|
"title": "Título del artículo",
|
||||||
|
"description": "Descripción",
|
||||||
|
"quantity": "Cantidad",
|
||||||
|
"price": "Precio",
|
||||||
|
"discount": "Descuento",
|
||||||
|
"total": "Total",
|
||||||
|
"total_discount": "Descuento total",
|
||||||
|
"sub_total": "Subtotal",
|
||||||
|
"tax": "Impuesto",
|
||||||
|
"amount": "Cantidad",
|
||||||
|
"select_an_item": "Escriba o haga clic para seleccionar un elemento",
|
||||||
|
"type_item_description": "Tipo Elemento Descripción (opcional)"
|
||||||
|
},
|
||||||
|
"payment_attached_message": "Una de las facturas seleccionadas ya tiene un pago adjunto. Asegúrese de eliminar primero los pagos adjuntos para continuar con la eliminación",
|
||||||
|
"confirm_delete": "No podrá recuperar esta factura | No podrá recuperar estas facturas",
|
||||||
|
"created_message": "Factura creada exitosamente",
|
||||||
|
"updated_message": "Factura actualizada exitosamente",
|
||||||
|
"deleted_message": "Factura eliminada con éxito | Facturas borradas exitosamente",
|
||||||
|
"marked_as_sent_message": "Factura marcada como enviada con éxito",
|
||||||
|
"invalid_due_amount_message": "El pago ingresado es mayor que el monto total adeudado por esta factura. Por favor verifique y vuelva a intentar"
|
||||||
|
},
|
||||||
|
"credit_notes": {
|
||||||
|
"title": "Notas de credito",
|
||||||
|
"credit_notes_list": "Lista de notas de crédito",
|
||||||
|
"credit_notes": "Notas de credito",
|
||||||
|
"contact": "Contacto",
|
||||||
|
"date": "Fecha",
|
||||||
|
"amount": "Cantidad",
|
||||||
|
"action": "Acción",
|
||||||
|
"credit_number": "Número de crédito",
|
||||||
|
"notes": "Notas",
|
||||||
|
"confirm_delete": "¿Desea eliminar esta nota de crédito?",
|
||||||
|
"item": {
|
||||||
|
"title": "Título del artículo",
|
||||||
|
"description": "Descripción",
|
||||||
|
"quantity": "Cantidad",
|
||||||
|
"price": "Precio",
|
||||||
|
"discount": "Descuento",
|
||||||
|
"total": "Total",
|
||||||
|
"total_discount": "Descuento total",
|
||||||
|
"sub_total": "Subtotal",
|
||||||
|
"tax": "Impuesto"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"payments": {
|
||||||
|
"title": "Pagos",
|
||||||
|
"payments_list": "Lista de pagos",
|
||||||
|
"record_payment": "Registro de pago",
|
||||||
|
"customer": "Cliente",
|
||||||
|
"date": "Fecha",
|
||||||
|
"amount": "Cantidad",
|
||||||
|
"action": "Acción",
|
||||||
|
"payment_number": "Numero de pago",
|
||||||
|
"payment_mode": "Modo de pago",
|
||||||
|
"invoice": "Factura",
|
||||||
|
"note": "Nota",
|
||||||
|
"add_payment": "Agregar pago",
|
||||||
|
"new_payment": "Nuevo pago",
|
||||||
|
"edit_payment": "Editar pago",
|
||||||
|
"view_payment": "Ver pago",
|
||||||
|
"add_new_payment": "Agregar nuevo pago",
|
||||||
|
"save_payment": "Guardar pago",
|
||||||
|
"update_payment": "Actualizar pago",
|
||||||
|
"payment": "Pago | Pagos",
|
||||||
|
"no_payments": "¡Aún no hay pagos!",
|
||||||
|
"list_of_payments": "Esta sección contendrá la lista de pagos.",
|
||||||
|
"select_payment_mode": "Seleccionar modo de pago",
|
||||||
|
|
||||||
|
"confirm_delete": "No podrá recuperar este pago | No podrá recuperar estos pagos",
|
||||||
|
"created_message": "Pago creado con éxito",
|
||||||
|
"updated_message": "Pago actualizado con éxito",
|
||||||
|
"deleted_message": "Pago eliminado con éxito | Pagos eliminados exitosamente",
|
||||||
|
"invalid_amount_message": "El importe del pago no es válido."
|
||||||
|
},
|
||||||
|
"expenses": {
|
||||||
|
"title": "Gastos",
|
||||||
|
"expenses_list": "Lista de gastos",
|
||||||
|
"expense_title": "Título",
|
||||||
|
"contact": "Contacto",
|
||||||
|
"category": "Categoría",
|
||||||
|
"from_date": "Partir de la fecha",
|
||||||
|
"to_date": "Hasta la fecha",
|
||||||
|
"expense_date": "Fecha",
|
||||||
|
"description": "Descripción",
|
||||||
|
"receipt": "Recibo",
|
||||||
|
"amount": "Cantidad",
|
||||||
|
"action": "Acción",
|
||||||
|
"note": "Nota",
|
||||||
|
"category_id": "Categoria ID",
|
||||||
|
"date": "Fecha de gastos",
|
||||||
|
"add_expense": "Añadir gastos",
|
||||||
|
"add_new_expense": "Añadir nuevo gasto",
|
||||||
|
"save_expense": "Ahorre gastos",
|
||||||
|
"update_expense": "Gastos de actualización",
|
||||||
|
"download_receipt": "Descargar recibo",
|
||||||
|
"edit_expense": "Editar gasto",
|
||||||
|
"new_expense": "Nuevo gasto",
|
||||||
|
"expense": "Gastos | Gastos",
|
||||||
|
"no_expenses": "No hay gastos todavía!",
|
||||||
|
"list_of_expenses": "Esta sección contendrá la lista de gastos.",
|
||||||
|
|
||||||
|
"confirm_delete": "No podrá recuperar este gasto | No podrá recuperar estos gastos",
|
||||||
|
"created_message": "Gastos creados exitosamente",
|
||||||
|
"updated_message": "Gastos actualizados con éxito",
|
||||||
|
"deleted_message": "Gastos eliminados con éxito | Gastos eliminados exitosamente",
|
||||||
|
"categories": {
|
||||||
|
"categories_list": "Lista de categorías",
|
||||||
|
"title": "Título",
|
||||||
|
"name": "Nombre",
|
||||||
|
"description": "Descripción",
|
||||||
|
"amount": "Cantidad",
|
||||||
|
"actions": "Comportamiento",
|
||||||
|
"add_category": "añadir categoría",
|
||||||
|
"new_category": "Nueva categoría",
|
||||||
|
"category": "Categoría | Categorias",
|
||||||
|
"select_a_category": "Seleccione una categoría"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"login": {
|
||||||
|
"email": "Email",
|
||||||
|
"password": "Contraseña",
|
||||||
|
"forgot_password": "¿Se te olvidó tu contraseña?",
|
||||||
|
"or_signIn_with": "o Inicie sesión con",
|
||||||
|
"login": "Iniciar sesión",
|
||||||
|
"register": "Registro",
|
||||||
|
"reset_password": "Restablecer la contraseña",
|
||||||
|
"enter_email": "Ingrese correo electrónico",
|
||||||
|
"enter_password": "Introducir la contraseña",
|
||||||
|
"retype_password": "Retype Password",
|
||||||
|
"login_placeholder": "mail@example.com"
|
||||||
|
},
|
||||||
|
"reports": {
|
||||||
|
"title": "Reporte",
|
||||||
|
"from_date": "Partir de la fecha",
|
||||||
|
"to_date": "Hasta la fecha",
|
||||||
|
"status": "Estado",
|
||||||
|
"paid": "Pagada",
|
||||||
|
"unpaid": "No pagado",
|
||||||
|
"download_pdf": "Descargar PDF",
|
||||||
|
"view_pdf": "Ver PDF",
|
||||||
|
"update_report": "Informe de actualización",
|
||||||
|
"report": "Informe | Informes",
|
||||||
|
"profit_loss": {
|
||||||
|
"profit_loss": "Pérdida de beneficios",
|
||||||
|
"to_date": "Hasta la fecha",
|
||||||
|
"from_date": "Partir de la fecha",
|
||||||
|
"date_range": "Seleccionar rango de fechas"
|
||||||
|
},
|
||||||
|
"sales": {
|
||||||
|
"sales": "Ventas",
|
||||||
|
"date_range": "Seleccionar rango de fechas",
|
||||||
|
"to_date": "Hasta la fecha",
|
||||||
|
"from_date": "Partir de la fecha",
|
||||||
|
"report_type": "Tipo de informe"
|
||||||
|
},
|
||||||
|
"taxes": {
|
||||||
|
"taxes": "Impuestos",
|
||||||
|
"to_date": "Hasta la fecha",
|
||||||
|
"from_date": "Partir de la fecha",
|
||||||
|
"date_range": "Seleccionar rango de fechas"
|
||||||
|
},
|
||||||
|
"errors": {
|
||||||
|
"required": "Se requiere campo"
|
||||||
|
},
|
||||||
|
"invoices": {
|
||||||
|
"invoice": "Factura",
|
||||||
|
"invoice_date": "Fecha de la factura",
|
||||||
|
"due_date": "Fecha de vencimiento",
|
||||||
|
"amount": "Cantidad",
|
||||||
|
"contact_name": "Nombre de contacto",
|
||||||
|
"status": "Estado"
|
||||||
|
},
|
||||||
|
"estimates": {
|
||||||
|
"estimate": "Estimar",
|
||||||
|
"estimate_date": "Fecha estimada",
|
||||||
|
"due_date": "Fecha de vencimiento",
|
||||||
|
"estimate_number": "Numero Estimado",
|
||||||
|
"ref_number": "Número de referencia",
|
||||||
|
"amount": "Cantidad",
|
||||||
|
"contact_name": "Nombre de contacto",
|
||||||
|
"status": "Estado"
|
||||||
|
},
|
||||||
|
"expenses": {
|
||||||
|
"expenses": "Gastos",
|
||||||
|
"category": "Categoría",
|
||||||
|
"date": "Fecha",
|
||||||
|
"amount": "Cantidad",
|
||||||
|
"to_date": "Hasta la fecha",
|
||||||
|
"from_date": "Partir de la fecha",
|
||||||
|
"date_range": "Seleccionar rango de fechas"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"settings": {
|
||||||
|
"menu_title": {
|
||||||
|
"account_settings": "Configuraciones de la cuenta",
|
||||||
|
"company_information": "Información de la empresa",
|
||||||
|
"preferences": "Preferencias",
|
||||||
|
"notifications": "Notificaciones",
|
||||||
|
"tax_types": "Tipos de impuestos",
|
||||||
|
"expense_category": "Categorías de gastos",
|
||||||
|
"update_app": "Actualizar aplicación"
|
||||||
|
},
|
||||||
|
"title": "Configuraciones",
|
||||||
|
"setting": "Configuraciones | Configuraciones",
|
||||||
|
"general": "General",
|
||||||
|
"language": "Idioma",
|
||||||
|
"primary_currency": "Moneda primaria",
|
||||||
|
"timezone": "Zona horaria",
|
||||||
|
"date_format": "Formato de fecha",
|
||||||
|
"currencies": {
|
||||||
|
"title": "Monedas",
|
||||||
|
"currency": "Moneda | Monedas",
|
||||||
|
"currencies_list": "Lista de monedas",
|
||||||
|
"select_currency": "Seleccione el tipo de moneda",
|
||||||
|
"name": "Nombre",
|
||||||
|
"code": "Código",
|
||||||
|
"symbol": "Símbolo",
|
||||||
|
"precision": "Precisión",
|
||||||
|
"thousand_separator": "Mil separadores",
|
||||||
|
"decimal_separator": "Separador decimal",
|
||||||
|
"position": "Posición",
|
||||||
|
"position_of_symbol": "Posición del símbolo",
|
||||||
|
"right": "Derecho",
|
||||||
|
"left": "Izquierda",
|
||||||
|
"action": "Acción",
|
||||||
|
"add_currency": "Agregar moneda"
|
||||||
|
},
|
||||||
|
"mail": {
|
||||||
|
"host": "Host de correo",
|
||||||
|
"port": "Puerto de correo",
|
||||||
|
"driver": "Conductor de correo",
|
||||||
|
"secret": "Secreto",
|
||||||
|
"password": "Contraseña de correo",
|
||||||
|
"username": "Nombre de usuario de correo",
|
||||||
|
"mailgun_secret": "Mailgun Secreto",
|
||||||
|
"mailgun_domain": "Domino",
|
||||||
|
"mailgun_endpoint": "Mailgun Punto Final",
|
||||||
|
"ses_secret": "SES Secreto",
|
||||||
|
"ses_key": "SES llave",
|
||||||
|
"from_name": "Del nombre del correo",
|
||||||
|
"from_mail": "Desde la dirección de correo",
|
||||||
|
"mail_config": "Configuración de correo",
|
||||||
|
"encryption": "Cifrado de correo",
|
||||||
|
"mail_config_desc": "Los detalles a continuación se utilizarán para actualizar el entorno de correo. También puede cambiar los detalles en cualquier momento después de iniciar sesión."
|
||||||
|
},
|
||||||
|
"pdf": {
|
||||||
|
"title": "Configuración de PDF",
|
||||||
|
"footer_text": "Texto de pie de página",
|
||||||
|
"pdf_layout": "Diseño PDF"
|
||||||
|
},
|
||||||
|
"company_info": {
|
||||||
|
"company_info": "Información de la compañía",
|
||||||
|
"company_name": "nombre de empresa",
|
||||||
|
"company_logo": "Logo de la compañía",
|
||||||
|
"section_description": "Información sobre su empresa que se mostrará en las facturas, estimaciones y otros documentos creados por Crater.",
|
||||||
|
"phone": "Teléfono",
|
||||||
|
"country": "País",
|
||||||
|
"state": "Estado",
|
||||||
|
"city": "Ciudad",
|
||||||
|
"address": "Habla a",
|
||||||
|
"zip": "Código Postal",
|
||||||
|
"save": "Salvar",
|
||||||
|
"updated_message": "Información de la empresa actualizada con éxito"
|
||||||
|
},
|
||||||
|
"account_settings": {
|
||||||
|
"profile_picture": "Foto de perfil",
|
||||||
|
"name": "Nombre",
|
||||||
|
"email": "Email",
|
||||||
|
"password": "Contraseña",
|
||||||
|
"confirm_password": "Confirmar contraseña",
|
||||||
|
"account_settings": "Configuraciones de la cuenta",
|
||||||
|
"save": "Salvar",
|
||||||
|
"section_description": "Puede actualizar su nombre, correo electrónico y contraseña utilizando el siguiente formulario.",
|
||||||
|
"updated_message": "Configuración de la cuenta actualizada correctamente"
|
||||||
|
},
|
||||||
|
"user_profile": {
|
||||||
|
"name": "Nombre",
|
||||||
|
"email": "Email",
|
||||||
|
"password": "Contraseña",
|
||||||
|
"confirm_password": "Confirmar contraseña"
|
||||||
|
},
|
||||||
|
"notification": {
|
||||||
|
"title": "Notificación",
|
||||||
|
"email": "Enviar notificaciones a",
|
||||||
|
"description": "¿Qué notificaciones por correo electrónico le gustaría recibir cuando algo cambia?",
|
||||||
|
"invoice_viewed": "Factura vista",
|
||||||
|
"invoice_viewed_desc": "Cuando su cliente ve la factura enviada a través del panel de control del cráter.",
|
||||||
|
"estimate_viewed": "Estimación vista",
|
||||||
|
"estimate_viewed_desc": "Cuando su cliente ve la estimación enviada a través del panel de control del cráter.",
|
||||||
|
"save": "Salvar",
|
||||||
|
"email_save_message": "Correo electrónico guardado con éxito",
|
||||||
|
"please_enter_email": "Por favor, introduzca su correo electrónico"
|
||||||
|
},
|
||||||
|
"tax_types": {
|
||||||
|
"title": "Tipos de impuestos",
|
||||||
|
"add_tax": "Agregar impuesto",
|
||||||
|
"description": "Puede agregar o eliminar impuestos a su gusto. Crater admite impuestos sobre artículos individuales, así como sobre la factura.",
|
||||||
|
"add_new_tax": "Agregar nuevo impuesto",
|
||||||
|
"tax_settings": "Configuraciones de impuestos",
|
||||||
|
"tax_per_item": "Impuesto por artículo",
|
||||||
|
"tax_name": "Nombre fiscal",
|
||||||
|
"compound_tax": "Impuesto compuesto",
|
||||||
|
"percent": "Por ciento",
|
||||||
|
"action": "Acción",
|
||||||
|
"tax_setting_description": "Habilítelo si desea agregar impuestos a artículos de factura individuales. Por defecto, los impuestos se agregan directamente a la factura.",
|
||||||
|
"created_message": "Tipo de impuesto creado con éxito",
|
||||||
|
"updated_message": "Tipo de impuesto actualizado correctamente",
|
||||||
|
"deleted_message": "Tipo de impuesto eliminado correctamente",
|
||||||
|
"confirm_delete": "No podrá recuperar este tipo de impuesto",
|
||||||
|
"already_in_use": "El impuesto ya está en uso."
|
||||||
|
},
|
||||||
|
"expense_category": {
|
||||||
|
"title": "Categorías de gastos",
|
||||||
|
"action": "Acción",
|
||||||
|
"description": "Se requieren categorías para agregar entradas de gastos. Puede Agregar o Eliminar estas categorías según su preferencia.",
|
||||||
|
"add_new_category": "Añadir nueva categoria",
|
||||||
|
"category_name": "nombre de la categoría",
|
||||||
|
"category_description": "Descripción",
|
||||||
|
"created_message": "Categoría de gastos creada con éxito",
|
||||||
|
"deleted_message": "Categoría de gastos eliminada correctamente",
|
||||||
|
"updated_message": "Categoría de gastos actualizada con éxito",
|
||||||
|
"confirm_delete": "No podrá recuperar esta categoría de gastos",
|
||||||
|
"already_in_use": "La categoría ya está en uso."
|
||||||
|
},
|
||||||
|
"preferences": {
|
||||||
|
"currency": "Moneda",
|
||||||
|
"language": "Idioma",
|
||||||
|
"time_zone": "Zona horaria",
|
||||||
|
"fiscal_year": "Año financiero",
|
||||||
|
"date_format": "Formato de fecha",
|
||||||
|
"discount_setting": "Ajuste de descuento",
|
||||||
|
"discount_per_item": "Descuento por artículo",
|
||||||
|
"discount_setting_description": "Habilítelo si desea agregar Descuento a artículos de factura individuales. Por defecto, los descuentos se agregan directamente a la factura.",
|
||||||
|
"save": "Salvar",
|
||||||
|
"preference": "Preferencia | Preferencias",
|
||||||
|
"general_settings": "Preferencias predeterminadas para el sistema.",
|
||||||
|
"updated_message": "Preferencias actualizadas exitosamente",
|
||||||
|
"select_language": "seleccione el idioma",
|
||||||
|
"select_time_zone": "selecciona la zona horaria",
|
||||||
|
"select_date_formate": "seleccione formato de fecha",
|
||||||
|
"select_financial_year": "seleccione año financiero"
|
||||||
|
},
|
||||||
|
"update_app": {
|
||||||
|
"title": "Actualizar aplicación",
|
||||||
|
"description": "actualizar la descripción de la aplicación",
|
||||||
|
"check_update": "Buscar actualizaciones",
|
||||||
|
"avail_update": "Nueva actualización disponible",
|
||||||
|
"next_version": "Próxima versión",
|
||||||
|
"update": "Actualizar",
|
||||||
|
"update_progress": "Actualización en progreso...",
|
||||||
|
"progress_text": "Solo tomará unos minutos. No actualice la pantalla ni cierre la ventana antes de que finalice la actualización.",
|
||||||
|
"update_success": "¡La aplicación ha sido actualizada! Espere mientras la ventana de su navegador se vuelve a cargar automáticamente.",
|
||||||
|
"latest_message": "¡Actualización no disponible! Estás en la última versión.",
|
||||||
|
"current_version": "Versión actual"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"wizard": {
|
||||||
|
"account_info": "Información de la cuenta",
|
||||||
|
"account_info_desc": "Los detalles a continuación se utilizarán para crear la cuenta principal de administrador. También puede cambiar los detalles en cualquier momento después de iniciar sesión.",
|
||||||
|
"name": "Nombre",
|
||||||
|
"email": "Email",
|
||||||
|
"password": "Contraseña",
|
||||||
|
"confirm_password": "Confirmar contraseña",
|
||||||
|
"save_cont": "Guardar Continuar",
|
||||||
|
"company_info": "Información de la empresa",
|
||||||
|
"company_info_desc": "Esta información se mostrará en las facturas. Tenga en cuenta que puede editar esto más adelante en la página de configuración.",
|
||||||
|
"company_name": "nombre de empresa",
|
||||||
|
"company_logo": "Logo de la compañía",
|
||||||
|
"logo_preview": "Vista previa del logotipo",
|
||||||
|
"preferences": "Preferencias",
|
||||||
|
"preferences_desc": "Preferencias predeterminadas para el sistema.",
|
||||||
|
"country": "País",
|
||||||
|
"state": "Estado",
|
||||||
|
"city": "Ciudad",
|
||||||
|
"address": "Habla a",
|
||||||
|
"street": "Calle1 | Calle # 2",
|
||||||
|
"phone": "Teléfono",
|
||||||
|
"zip_code": "Código postal",
|
||||||
|
"go_back": "Regresa",
|
||||||
|
"currency": "Moneda",
|
||||||
|
"language": "Idioma",
|
||||||
|
"time_zone": "Zona horaria",
|
||||||
|
"fiscal_year": "Año financiero",
|
||||||
|
"date_format": "Formato de fecha",
|
||||||
|
"from_address": "De la Dirección",
|
||||||
|
"username": "Nombre de usuario",
|
||||||
|
"next": "Próximo",
|
||||||
|
"continue": "Hacer continuación",
|
||||||
|
"database": {
|
||||||
|
"database": "URL del sitio y base de datose",
|
||||||
|
"connection": "Conexión de base de datos",
|
||||||
|
"host": "Database Host",
|
||||||
|
"port": "Host de base de datos",
|
||||||
|
"password": "Contraseña de base de datos",
|
||||||
|
"app_url": "URL de la aplicación",
|
||||||
|
"username": "Nombre de usuario de la base de datos",
|
||||||
|
"db_name": "Nombre de la base de datos",
|
||||||
|
"desc": "Cree una base de datos en su servidor y establezca las credenciales utilizando el siguiente formulario."
|
||||||
|
},
|
||||||
|
"permissions": {
|
||||||
|
"permissions": "Permisos",
|
||||||
|
"permission_confirm_title": "Estás seguro de que quieres continuar?",
|
||||||
|
"permission_confirm_desc": "Error de verificación de permisos de carpeta",
|
||||||
|
"permission_desc": "A continuación se muestra la lista de permisos de carpeta necesarios para que la aplicación funcione. Si la verificación de permisos falla, asegúrese de actualizar los permisos de su carpeta."
|
||||||
|
},
|
||||||
|
"mail": {
|
||||||
|
"host": "Host de correo",
|
||||||
|
"port": "Puerto de correo",
|
||||||
|
"driver": "Conductor de correo",
|
||||||
|
"secret": "Secreto",
|
||||||
|
"password": "Contraseña de correo",
|
||||||
|
"username": "Nombre de usuario de correo",
|
||||||
|
"mailgun_secret": "Mailgun Secreto",
|
||||||
|
"mailgun_domain": "Domino",
|
||||||
|
"mailgun_endpoint": "Mailgun Punto Final",
|
||||||
|
"ses_secret": "SES Secreto",
|
||||||
|
"ses_key": "SES llave",
|
||||||
|
"from_name": "Del nombre del correo",
|
||||||
|
"from_mail": "Desde la dirección de correo",
|
||||||
|
"mail_config": "Configuración de correo",
|
||||||
|
"encryption": "Cifrado de correo",
|
||||||
|
"mail_config_desc": "Los detalles a continuación se utilizarán para actualizar el entorno de correo. También puede cambiar los detalles en cualquier momento después de iniciar sesión."
|
||||||
|
},
|
||||||
|
"req": {
|
||||||
|
"system_req": "Requisitos del sistema",
|
||||||
|
"php_req_version": "Php (versión {version} necesario)",
|
||||||
|
"check_req": "Consultar requisitos",
|
||||||
|
"system_req_desc": "Crater tiene algunos requisitos de servidor. Asegúrese de que su servidor tenga la versión de php requerida y todas las extensiones mencionadas a continuación."
|
||||||
|
},
|
||||||
|
"errors": {
|
||||||
|
"migrate_failed": "La migración falló",
|
||||||
|
"database_variables_save_error": "No se puede conectar a la base de datos con los valores proporcionados.",
|
||||||
|
"mail_variables_save_error": "La configuración del correo electrónico ha fallado.",
|
||||||
|
"connection_failed": "Conexión de base de datos fallida"
|
||||||
|
},
|
||||||
|
"success": {
|
||||||
|
"mail_variables_save_successfully": "Correo electrónico configurado correctamente",
|
||||||
|
"database_variables_save_successfully": "Base de datos configurada con éxito."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"layout_login": {
|
||||||
|
"copyright_crater": "Copyright @ Crater - 2019",
|
||||||
|
"super_simple_invoicing": "Facturación super simple",
|
||||||
|
"for_freelancer": "para autónomos y",
|
||||||
|
"small_businesses": "Pequeñas empresas",
|
||||||
|
"crater_help": "Crater te ayuda a rastrear gastos, registrar pagos y generar hermosos",
|
||||||
|
"invoices_and_estimates": "facturas y presupuestos con capacidad para elegir múltiples plantillas."
|
||||||
|
|
||||||
|
},
|
||||||
|
"validation": {
|
||||||
|
"invalid_url": "URL no válida (por ejemplo, http://www.crater.com)",
|
||||||
|
"required": "Se requiere campo",
|
||||||
|
"email_incorrect": "Email incorrecto.",
|
||||||
|
"email_does_not_exist": " Usuario con correo electrónico dado no existe",
|
||||||
|
"send_reset_link": "Enviar restablecer enlace",
|
||||||
|
"not_yet": "¿Aún no? Envialo de nuevo",
|
||||||
|
"password_min_length": "La contraseña debe contener {count} caracteres",
|
||||||
|
"name_min_length": "El nombre debe tener al menos {count} letras.",
|
||||||
|
"enter_valid_tax_rate": "Ingrese una tasa impositiva válida",
|
||||||
|
"numbers_only": "Solo numeros.",
|
||||||
|
"characters_only": "Solo personajes.",
|
||||||
|
"password_incorrect": "Las contraseñas deben ser idénticas",
|
||||||
|
"password_length": "La contraseña debe tener 5 caracteres de longitud.",
|
||||||
|
"qty_must_greater_than_zero": "La cantidad debe ser mayor que cero.",
|
||||||
|
"price_greater_than_zero": "El precio debe ser mayor que cero.",
|
||||||
|
"payment_greater_than_zero": "El pago debe ser mayor que cero.",
|
||||||
|
"payment_greater_than_due_amount": "El pago ingresado es mayor al monto adeudado de esta factura.",
|
||||||
|
"quantity_maxlength": "La cantidad no debe ser mayor de 20 dígitos.",
|
||||||
|
"price_maxlength": "El precio no debe ser mayor de 20 dígitos.",
|
||||||
|
"price_minvalue": "El precio debe ser mayor que 0 dígitos",
|
||||||
|
"amount_maxlength": "La cantidad no debe ser mayor de 20 dígitos.",
|
||||||
|
"amount_minvalue": "La cantidad debe ser mayor que 0 dígitos",
|
||||||
|
"description_maxlength": "La descripción no debe tener más de 255 caracteres.",
|
||||||
|
"maximum_options_error": "Máximo de {max} opciones seleccionadas. Primero elimine una opción seleccionada para seleccionar otra.",
|
||||||
|
"notes_maxlength": "Las notas no deben tener más de 255 caracteres.",
|
||||||
|
"address_maxlength": "La dirección no debe tener más de 255 caracteres.",
|
||||||
|
"ref_number_maxlength": "El número de referencia no debe tener más de 255 caracteres."
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -1,818 +0,0 @@
|
|||||||
export default {
|
|
||||||
navigation: {
|
|
||||||
// key : 'singular | plural'
|
|
||||||
dashboard: 'Tableau de bord',
|
|
||||||
customers: 'Cliente',
|
|
||||||
items: 'Articles',
|
|
||||||
invoices: 'Factures',
|
|
||||||
expenses: 'Les dépenses',
|
|
||||||
estimates: 'Estimations',
|
|
||||||
payments: 'Paiements',
|
|
||||||
reports: 'Rapports',
|
|
||||||
settings: 'Paramètres',
|
|
||||||
logout: 'Se déconnecter'
|
|
||||||
},
|
|
||||||
general: {
|
|
||||||
view_pdf: 'Voir PDF',
|
|
||||||
download_pdf: 'Télécharger le PDF',
|
|
||||||
save: 'sauver',
|
|
||||||
cancel: 'Annuler',
|
|
||||||
update: 'Mise à jour',
|
|
||||||
download: 'Télécharger',
|
|
||||||
from_date: 'Partir de la date',
|
|
||||||
to_date: 'À ce jour',
|
|
||||||
from: 'De',
|
|
||||||
to: 'À',
|
|
||||||
go_back: 'Retourner',
|
|
||||||
back_to_login: 'Retour connexion?',
|
|
||||||
home: 'Accueil',
|
|
||||||
filter: 'Filtre',
|
|
||||||
delete: 'Effacer',
|
|
||||||
edit: 'Modifier',
|
|
||||||
view: 'Vue',
|
|
||||||
add_new_item: 'Ajoute un nouvel objet',
|
|
||||||
clear_all: 'Tout effacer',
|
|
||||||
showing: 'Montrant',
|
|
||||||
of: 'de',
|
|
||||||
actions: 'Actions',
|
|
||||||
subtotal: 'TOTAL',
|
|
||||||
discount: 'REMISE',
|
|
||||||
fixed: 'Fixée',
|
|
||||||
percentage: 'Pourcentage',
|
|
||||||
tax: 'IMPÔT',
|
|
||||||
total_amount: 'MONTANT TOTAL',
|
|
||||||
bill_to: 'facturer',
|
|
||||||
ship_to: 'Envoyez à',
|
|
||||||
due: 'Dû',
|
|
||||||
draft: 'Brouillon',
|
|
||||||
sent: 'Envoyée',
|
|
||||||
all: 'Tout',
|
|
||||||
select_all: 'Tout sélectionner',
|
|
||||||
choose_file: 'Cliquez ici pour choisir un fichier',
|
|
||||||
choose_template: 'Choisissez un modèle',
|
|
||||||
choose: 'Choisir',
|
|
||||||
remove: 'Retirer',
|
|
||||||
powered_by: 'Alimenté par',
|
|
||||||
bytefury: 'Bytefury',
|
|
||||||
select_a_status: 'Sélectionnez un statut',
|
|
||||||
select_a_tax: 'Sélectionnez une taxe',
|
|
||||||
search: 'Chercher',
|
|
||||||
are_you_sure: 'Êtes-vous sûr?',
|
|
||||||
list_is_empty: 'La liste est vide',
|
|
||||||
no_tax_found: 'Aucune taxe trouvée!',
|
|
||||||
four_zero_four: '404',
|
|
||||||
you_got_lost: 'Oups! Vous vous êtes perdus!',
|
|
||||||
go_home: 'Rentrer chez soi',
|
|
||||||
|
|
||||||
setting_updated: 'Réglage mis à jour avec succès',
|
|
||||||
select_state: "Sélectionnez l'état",
|
|
||||||
select_country: 'Choisissez le pays',
|
|
||||||
select_city: 'Sélectionnez une ville',
|
|
||||||
street_1: 'Rue 1',
|
|
||||||
street_2: 'Rue # 2',
|
|
||||||
action_failed: 'Action: échoué'
|
|
||||||
},
|
|
||||||
dashboard: {
|
|
||||||
select_year: 'Sélectionnez lannée',
|
|
||||||
cards: {
|
|
||||||
due_amount: 'Montant dû',
|
|
||||||
customers: 'Les clients',
|
|
||||||
invoices: 'Factures',
|
|
||||||
estimates: 'Estimations'
|
|
||||||
},
|
|
||||||
chart_info: {
|
|
||||||
total_sales: 'Ventes',
|
|
||||||
total_receipts: 'Reçus',
|
|
||||||
total_expense: 'Les dépenses',
|
|
||||||
net_income: 'Revenu net',
|
|
||||||
year: 'Sélectionnez lannée'
|
|
||||||
},
|
|
||||||
weekly_invoices: {
|
|
||||||
title: 'Factures hebdomadaires'
|
|
||||||
},
|
|
||||||
monthly_chart: {
|
|
||||||
title: 'Ventes et dépenses'
|
|
||||||
},
|
|
||||||
recent_invoices_card: {
|
|
||||||
title: 'Factures dues',
|
|
||||||
due_on: 'Due On',
|
|
||||||
customer: 'Cliente',
|
|
||||||
amount_due: 'Montant dû',
|
|
||||||
actions: 'Actions',
|
|
||||||
view_all: 'Voir tout'
|
|
||||||
},
|
|
||||||
recent_estimate_card: {
|
|
||||||
title: 'Estimations récentes',
|
|
||||||
date: 'Date',
|
|
||||||
customer: 'Cliente',
|
|
||||||
amount_due: 'Montant dû',
|
|
||||||
actions: 'Actions',
|
|
||||||
view_all: 'Voir tout'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
tax_types: {
|
|
||||||
name: 'Nom',
|
|
||||||
description: 'La description',
|
|
||||||
percent: 'Pour cent',
|
|
||||||
compound_tax: 'Taxe composée'
|
|
||||||
},
|
|
||||||
customers: {
|
|
||||||
title: 'Les clients',
|
|
||||||
add_customer: 'Ajouter un client',
|
|
||||||
contacts_list: 'Liste de clients',
|
|
||||||
name: 'Nom',
|
|
||||||
display_name: 'Afficher un nom',
|
|
||||||
primary_contact_name: 'Nom du contact principal',
|
|
||||||
contact_name: 'Nom du contact',
|
|
||||||
amount_due: 'Montant dû',
|
|
||||||
email: 'Email',
|
|
||||||
address: 'Adresse',
|
|
||||||
phone: 'Téléphone',
|
|
||||||
website: 'Site Internet',
|
|
||||||
country: 'Pays',
|
|
||||||
state: 'Etat',
|
|
||||||
city: 'Ville',
|
|
||||||
zip_code: 'Code postal',
|
|
||||||
added_on: 'Ajouté le',
|
|
||||||
action: 'action',
|
|
||||||
password: 'Mot de passe',
|
|
||||||
street_number: 'Numéro de rue',
|
|
||||||
primary_currency: 'Devise principale',
|
|
||||||
add_new_customer: 'Ajouter un nouveau client',
|
|
||||||
save_customer: 'Enregistrer le client',
|
|
||||||
update_customer: 'Mettre à jour le client',
|
|
||||||
customer: 'Client | Les clients',
|
|
||||||
new_customer: 'Nouveau client',
|
|
||||||
edit_customer: 'Modifier le client',
|
|
||||||
basic_info: 'Informations de base',
|
|
||||||
billing_address: 'Adresse de facturation',
|
|
||||||
shipping_address: 'Adresse de livraison',
|
|
||||||
copy_billing_address: 'Copier de la facturation',
|
|
||||||
no_customers: 'Pas encore de clients!',
|
|
||||||
no_customers_found: 'Aucun client trouvé!',
|
|
||||||
list_of_customers: 'Cette section contiendra la liste des clients.',
|
|
||||||
primary_display_name: 'Nom daffichage principal',
|
|
||||||
select_state: 'Sélectionnez létat',
|
|
||||||
select_country: 'Choisissez le pays',
|
|
||||||
select_city: 'Sélectionnez une ville',
|
|
||||||
select_currency: 'Sélectionnez la devise',
|
|
||||||
street_1: 'Rue 1',
|
|
||||||
street_2: 'Rue 2',
|
|
||||||
select_a_customer: 'Sélectionnez un client',
|
|
||||||
type_or_click: 'Tapez ou cliquez pour sélectionner',
|
|
||||||
|
|
||||||
confirm_delete: 'Vous ne pourrez pas récupérer ce client | Vous ne pourrez pas récupérer ces clients',
|
|
||||||
created_message: 'Client créé avec succès',
|
|
||||||
updated_message: 'Client mis à jour avec succès',
|
|
||||||
deleted_message: 'Client supprimé avec succès | Les clients supprimés avec succès'
|
|
||||||
},
|
|
||||||
items: {
|
|
||||||
title: 'Articles',
|
|
||||||
items_list: 'Liste darticles',
|
|
||||||
name: 'Nom',
|
|
||||||
unit: 'Unité',
|
|
||||||
description: 'La description',
|
|
||||||
added_on: 'Ajouté le',
|
|
||||||
price: 'Prix',
|
|
||||||
date_of_creation: 'Date de création',
|
|
||||||
action: 'action',
|
|
||||||
add_item: 'Ajouter un item',
|
|
||||||
save_item: 'Enregistrer lélément',
|
|
||||||
update_item: 'Mettre à jour lélément',
|
|
||||||
item: 'Article | Articles',
|
|
||||||
add_new_item: 'Ajoute un nouvel objet',
|
|
||||||
new_item: 'Nouvel article',
|
|
||||||
edit_item: 'Modifier larticle',
|
|
||||||
no_items: 'Aucun article pour le moment!',
|
|
||||||
list_of_items: 'Cette section contiendra la liste des éléments.',
|
|
||||||
select_a_unit: 'sélectionner lunité',
|
|
||||||
|
|
||||||
item_attached_message: 'Impossible de supprimer un élément déjà utilisé',
|
|
||||||
confirm_delete: 'Vous ne pourrez pas récupérer cet article | Vous ne pourrez pas récupérer ces objets',
|
|
||||||
created_message: 'Article créé avec succès',
|
|
||||||
updated_message: 'Élément mis à jour avec succès',
|
|
||||||
deleted_message: 'Élément supprimé avec succès | Éléments supprimés avec succès'
|
|
||||||
},
|
|
||||||
estimates: {
|
|
||||||
title: 'Estimations',
|
|
||||||
estimate: 'Estimation | Estimations',
|
|
||||||
estimates_list: 'Liste des estimations',
|
|
||||||
days: '{jours} jours',
|
|
||||||
months: '{mois} mois',
|
|
||||||
years: '{années} Année',
|
|
||||||
all: 'Toute',
|
|
||||||
paid: 'Payé',
|
|
||||||
unpaid: 'Non payé',
|
|
||||||
customer: 'CLIENTE CLIENT',
|
|
||||||
ref_no: 'REF NO.',
|
|
||||||
number: 'NOMBRE',
|
|
||||||
amount_due: 'MONTANT DÛ',
|
|
||||||
partially_paid: 'Partiellement payé',
|
|
||||||
total: 'Totale',
|
|
||||||
discount: 'Remise',
|
|
||||||
sub_total: 'Total partiel',
|
|
||||||
estimate_number: 'Numéro destimation',
|
|
||||||
ref_number: 'Numéro de ref',
|
|
||||||
contact: 'Contact',
|
|
||||||
add_item: 'Ajouter un article',
|
|
||||||
date: 'Date',
|
|
||||||
due_date: 'Date déchéance',
|
|
||||||
expiry_date: 'Date dexpiration',
|
|
||||||
status: 'Statut',
|
|
||||||
add_tax: 'Ajouter une taxe',
|
|
||||||
amount: 'Montante',
|
|
||||||
action: 'action',
|
|
||||||
notes: 'Remarques',
|
|
||||||
tax: 'Impôt',
|
|
||||||
estimate_template: 'Modèle destimation',
|
|
||||||
convert_to_invoice: 'Convertir en facture',
|
|
||||||
mark_as_sent: 'Marquer comme envoyé',
|
|
||||||
send_estimate: 'Envoyer une estimation',
|
|
||||||
record_payment: 'Record de paiement',
|
|
||||||
add_estimate: 'Ajouter une estimation',
|
|
||||||
save_estimate: 'Sauvegarder lestimation',
|
|
||||||
confirm_conversion: 'Vous souhaitez convertir cette estimation en facture?',
|
|
||||||
conversion_message: 'Conversion réussie',
|
|
||||||
confirm_send_estimate: 'Cette estimation sera envoyée par courrier électronique au client.',
|
|
||||||
confirm_mark_as_sent: 'Cette estimation sera marquée comme envoyé',
|
|
||||||
confirm_mark_as_accepted: 'Cette estimation sera marquée comme acceptée',
|
|
||||||
confirm_mark_as_rejected: 'Cette estimation sera marquée comme Rejetée',
|
|
||||||
mark_as_sent_successfully: 'Estimation marquée comme envoyée avec succès',
|
|
||||||
send_estimate_successfully: 'Estimation envoyée avec succès',
|
|
||||||
errors: {
|
|
||||||
required: 'Champ requis'
|
|
||||||
},
|
|
||||||
accepted: 'Accepté',
|
|
||||||
sent: 'Envoyée',
|
|
||||||
draft: 'Brouillon',
|
|
||||||
declined: 'Diminué',
|
|
||||||
new_estimate: 'Nouvelle estimation',
|
|
||||||
add_new_estimate: 'Ajouter une nouvelle estimation',
|
|
||||||
update_Estimate: 'Mise à jour de lestimation',
|
|
||||||
edit_estimate: 'Modifier lestimation',
|
|
||||||
items: 'articles',
|
|
||||||
Estimate: 'Estimation | Estimations',
|
|
||||||
add_new_tax: 'Ajouter une nouvelle taxe',
|
|
||||||
no_estimates: 'Aucune estimation pour le moment!',
|
|
||||||
list_of_estimates: 'Cette section contiendra la liste des estimations.',
|
|
||||||
mark_as_rejected: 'Marquer comme rejeté',
|
|
||||||
mark_as_accepted: 'Marquer comme accepté',
|
|
||||||
|
|
||||||
marked_as_accepted_message: 'Estimation marquée comme acceptée',
|
|
||||||
marked_as_rejected_message: 'Estimation marquée comme rejetée',
|
|
||||||
confirm_delete: 'Vous ne pourrez pas récupérer cette estimation | Vous ne pourrez pas récupérer ces estimations',
|
|
||||||
created_message: 'Estimation créée avec succès',
|
|
||||||
updated_message: 'Estimation mise à jour avec succès',
|
|
||||||
deleted_message: 'Estimation supprimée avec succès | Estimations supprimées avec succès',
|
|
||||||
item: {
|
|
||||||
title: 'Titre de larticle',
|
|
||||||
description: 'La description',
|
|
||||||
quantity: 'Quantité',
|
|
||||||
price: 'Prix',
|
|
||||||
discount: 'Remise',
|
|
||||||
total: 'Totale',
|
|
||||||
total_discount: 'Remise totale',
|
|
||||||
sub_total: 'Total partiel',
|
|
||||||
tax: 'Impôt',
|
|
||||||
amount: 'Montante',
|
|
||||||
select_an_item: 'Tapez ou cliquez pour sélectionner un élément',
|
|
||||||
type_item_description: 'Type Item Description (optionnel)'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
invoices: {
|
|
||||||
title: 'Factures',
|
|
||||||
invoices_list: 'Liste de factures',
|
|
||||||
days: '{jours} jours',
|
|
||||||
months: '{mois} mois',
|
|
||||||
years: '{années} Année',
|
|
||||||
all: 'Toute',
|
|
||||||
paid: 'Payé',
|
|
||||||
unpaid: 'Non payé',
|
|
||||||
customer: 'CLIENTE CLIENT',
|
|
||||||
paid_status: 'Statut payé',
|
|
||||||
ref_no: 'REF NO.',
|
|
||||||
number: 'NOMBRE',
|
|
||||||
amount_due: 'MONTANT DÛ',
|
|
||||||
partially_paid: 'Partiellement payé',
|
|
||||||
total: 'Totale Total',
|
|
||||||
discount: 'Remise',
|
|
||||||
sub_total: 'Total partiel',
|
|
||||||
invoice: 'Facture | Factures',
|
|
||||||
invoice_number: 'Numéro de facture',
|
|
||||||
ref_number: 'Numéro de ref',
|
|
||||||
contact: 'Contact',
|
|
||||||
add_item: 'Ajouter un article',
|
|
||||||
date: 'Date',
|
|
||||||
due_date: 'Date déchéance',
|
|
||||||
status: 'Statut',
|
|
||||||
add_tax: 'Ajouter une taxe',
|
|
||||||
amount: 'Montante Montant',
|
|
||||||
action: 'action',
|
|
||||||
notes: 'Remarques',
|
|
||||||
view: 'Vue',
|
|
||||||
send_invoice: 'Envoyer une facture',
|
|
||||||
invoice_template: 'Modèle de facture',
|
|
||||||
template: 'Modèle',
|
|
||||||
mark_as_sent: 'Marquer comme envoyé',
|
|
||||||
invoice_mark_as_sent: 'Cette facture sera marquée comme envoyé',
|
|
||||||
confirm_send: 'Cette facture sera envoyée par courrier électronique au client.',
|
|
||||||
invoice_date: 'Date de facturation',
|
|
||||||
record_payment: 'Record de paiement',
|
|
||||||
add_new_invoice: 'Ajouter une nouvelle facture',
|
|
||||||
update_expense: 'Frais de mise à jour',
|
|
||||||
edit_invoice: 'Modifier la facture',
|
|
||||||
new_invoice: 'Nouvelle facture',
|
|
||||||
save_invoice: 'Enregistrer la facture',
|
|
||||||
update_invoice: 'Mettre à jour la facture',
|
|
||||||
add_new_tax: 'Ajouter une nouvelle taxe',
|
|
||||||
no_invoices: 'Aucune facture pour le moment!',
|
|
||||||
list_of_invoices: 'Cette section contiendra la liste des factures.',
|
|
||||||
select_invoice: 'Sélectionnez facture',
|
|
||||||
mark_as_sent_successfully: 'Facture marquée comme envoyée avec succès',
|
|
||||||
send_invoice_successfully: 'Facture envoyée avec succès',
|
|
||||||
item: {
|
|
||||||
title: 'Titre de larticle',
|
|
||||||
description: 'La description',
|
|
||||||
quantity: 'Quantité',
|
|
||||||
price: 'Prix',
|
|
||||||
discount: 'Remise',
|
|
||||||
total: 'Totale Total',
|
|
||||||
total_discount: 'Remise totale',
|
|
||||||
sub_total: 'Total partiel',
|
|
||||||
tax: 'Impôt',
|
|
||||||
amount: 'Montante Montant',
|
|
||||||
select_an_item: 'Tapez ou cliquez pour sélectionner un élément',
|
|
||||||
type_item_description: 'Type Item Description (optionnel)'
|
|
||||||
},
|
|
||||||
payment_attached_message: "Un paiement est déjà associé à l'une des factures sélectionnées. Assurez-vous d’effacer d’abord les paiements en pièce jointe afin de procéder à la suppression.",
|
|
||||||
confirm_delete: 'Vous ne pourrez pas récupérer cette facture | Vous ne pourrez pas récupérer ces factures',
|
|
||||||
created_message: 'Facture créée avec succès',
|
|
||||||
updated_message: 'Facture mise à jour avec succès',
|
|
||||||
deleted_message: 'Invoice deleted successfully | Invoices deleted successfully',
|
|
||||||
marked_as_sent_message: 'Facture supprimée avec succès | Factures supprimées avec succès',
|
|
||||||
invalid_due_amount_message: 'Le paiement entré est supérieur au montant total dû pour cette facture. Veuillez vérifier et réessayer'
|
|
||||||
},
|
|
||||||
credit_notes: {
|
|
||||||
title: 'Notes de crédit',
|
|
||||||
credit_notes_list: 'Liste des notes de crédit',
|
|
||||||
// Fields
|
|
||||||
credit_notes: 'Notes de crédit',
|
|
||||||
contact: 'Contact',
|
|
||||||
date: 'Date',
|
|
||||||
amount: 'Montante Montant',
|
|
||||||
action: 'action',
|
|
||||||
credit_number: 'Numéro de crédit',
|
|
||||||
notes: 'Remarques',
|
|
||||||
confirm_delete: 'Voulez-vous supprimer cet avoir?',
|
|
||||||
item: {
|
|
||||||
title: 'Titre de larticle',
|
|
||||||
description: 'La description',
|
|
||||||
quantity: 'Quantité',
|
|
||||||
price: 'Prix',
|
|
||||||
discount: 'Remise',
|
|
||||||
total: 'Totale Total',
|
|
||||||
total_discount: 'Remise totale',
|
|
||||||
sub_total: 'Total partiel',
|
|
||||||
tax: 'Impôt'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
payments: {
|
|
||||||
title: 'Paiements',
|
|
||||||
payments_list: 'Liste de paiements',
|
|
||||||
record_payment: 'Record de paiement',
|
|
||||||
// Fields
|
|
||||||
customer: 'Cliente Client',
|
|
||||||
date: 'Date',
|
|
||||||
amount: 'Montante Montant',
|
|
||||||
action: 'action',
|
|
||||||
payment_number: 'Numéro de paiement',
|
|
||||||
payment_mode: 'Mode de paiement',
|
|
||||||
invoice: 'Facture dachat',
|
|
||||||
note: 'Remarque',
|
|
||||||
add_payment: 'Ajouter un paiement',
|
|
||||||
new_payment: 'Nouveau paiement',
|
|
||||||
edit_payment: 'Modifier le paiement',
|
|
||||||
view_payment: 'Voir le paiement',
|
|
||||||
add_new_payment: 'Ajouter un nouveau paiement',
|
|
||||||
save_payment: 'Enregistrer le paiement',
|
|
||||||
update_payment: 'Mettre à jour le paiement',
|
|
||||||
payment: 'Paiement | Paiements',
|
|
||||||
no_payments: 'Aucun paiement pour le moment!',
|
|
||||||
list_of_payments: 'Cette section contiendra la liste des paiements',
|
|
||||||
select_payment_mode: 'Sélectionnez le mode de paiement',
|
|
||||||
|
|
||||||
confirm_delete: 'Vous ne pourrez pas récupérer ce paiement | Vous ne pourrez pas récupérer ces paiements',
|
|
||||||
created_message: 'Paiement créé avec succès',
|
|
||||||
updated_message: 'Paiement mis à jour avec succès',
|
|
||||||
deleted_message: 'Paiement supprimé avec succès | Paiements supprimés avec succès',
|
|
||||||
invalid_amount_message: 'Le montant du paiement est invalide'
|
|
||||||
},
|
|
||||||
expenses: {
|
|
||||||
title: 'Les dépenses',
|
|
||||||
expenses_list: 'Liste des dépenses',
|
|
||||||
// Fields
|
|
||||||
expense_title: 'Titre',
|
|
||||||
contact: 'Contact',
|
|
||||||
category: 'Catégorie',
|
|
||||||
from_date: 'Partir de la date',
|
|
||||||
to_date: 'À ce jour',
|
|
||||||
expense_date: 'Date',
|
|
||||||
description: 'La description',
|
|
||||||
receipt: 'Le reçu',
|
|
||||||
amount: 'Montante Montant',
|
|
||||||
action: 'action',
|
|
||||||
note: 'Remarque',
|
|
||||||
category_id: 'Identifiant de catégorie',
|
|
||||||
date: 'Date de dépense',
|
|
||||||
add_expense: 'Ajouter une dépense',
|
|
||||||
add_new_expense: 'Ajouter une nouvelle dépense',
|
|
||||||
save_expense: 'Économiser des dépenses',
|
|
||||||
update_expense: 'Frais de mise à jour',
|
|
||||||
download_receipt: 'Télécharger le reçu',
|
|
||||||
edit_expense: 'Modifier les dépenses',
|
|
||||||
new_expense: 'Nouvelle dépense',
|
|
||||||
expense: 'Frais | Les dépenses',
|
|
||||||
no_expenses: 'Pas de dépenses pour le moment!',
|
|
||||||
list_of_expenses: 'Cette section contiendra la liste des dépenses.',
|
|
||||||
|
|
||||||
confirm_delete: 'Vous ne pourrez pas récupérer cette dépense | Vous ne pourrez pas récupérer ces frais',
|
|
||||||
created_message: 'Dépense créée avec succès',
|
|
||||||
updated_message: 'Dépense mise à jour avec succès',
|
|
||||||
deleted_message: 'Dépense supprimée avec succès | Dépenses supprimées avec succès',
|
|
||||||
categories: {
|
|
||||||
categories_list: 'Liste des catégories',
|
|
||||||
title: 'Titre',
|
|
||||||
name: 'Nom',
|
|
||||||
description: 'La description',
|
|
||||||
amount: 'Montante Montant',
|
|
||||||
actions: 'Actions',
|
|
||||||
add_category: 'ajouter une catégorie',
|
|
||||||
new_category: 'Nouvelle catégorie',
|
|
||||||
category: 'Catégorie | Les catégories',
|
|
||||||
select_a_category: 'choisissez une catégorie'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
login: {
|
|
||||||
email: 'Email',
|
|
||||||
password: 'Mot de passe',
|
|
||||||
forgot_password: 'Mot de passe oublié?',
|
|
||||||
or_signIn_with: 'ou Connectez-vous avec:',
|
|
||||||
login: 'Sidentifier',
|
|
||||||
register: 'Sinscrire',
|
|
||||||
reset_password: 'réinitialiser le mot de passe',
|
|
||||||
enter_email: 'Entrer email',
|
|
||||||
enter_password: 'Entrer le mot de passe',
|
|
||||||
retype_password: 'Retaper le mot de passe',
|
|
||||||
login_placeholder: 'mail@example.com'
|
|
||||||
},
|
|
||||||
reports: {
|
|
||||||
title: 'rapport',
|
|
||||||
from_date: 'Partir de la date',
|
|
||||||
to_date: 'À ce jour',
|
|
||||||
status: 'Statut',
|
|
||||||
paid: 'Payé',
|
|
||||||
unpaid: 'Non payé',
|
|
||||||
download_pdf: 'Télécharger le PDF',
|
|
||||||
view_pdf: 'Voir PDF',
|
|
||||||
update_report: 'Rapport de mise à jour',
|
|
||||||
report: 'Rapport | Rapports',
|
|
||||||
profit_loss: {
|
|
||||||
profit_loss: 'Perte de profit',
|
|
||||||
to_date: 'À ce jour',
|
|
||||||
from_date: 'Partir de la date',
|
|
||||||
date_range: 'Sélectionner une plage de dates'
|
|
||||||
},
|
|
||||||
sales: {
|
|
||||||
sales: 'Ventes',
|
|
||||||
date_range: 'Sélectionner une plage de dates',
|
|
||||||
to_date: 'À ce jour',
|
|
||||||
from_date: 'Partir de la date',
|
|
||||||
report_type: 'Type de rapport'
|
|
||||||
},
|
|
||||||
taxes: {
|
|
||||||
taxes: 'Les taxes',
|
|
||||||
to_date: 'À ce jour',
|
|
||||||
from_date: 'Partir de la date',
|
|
||||||
date_range: 'Sélectionner une plage de dates'
|
|
||||||
},
|
|
||||||
errors: {
|
|
||||||
required: 'Champ requis'
|
|
||||||
},
|
|
||||||
invoices: {
|
|
||||||
invoice: 'Facture dachat',
|
|
||||||
invoice_date: 'Date de facturation',
|
|
||||||
due_date: 'Date déchéance',
|
|
||||||
amount: 'Montante ',
|
|
||||||
contact_name: 'Nom du contact',
|
|
||||||
status: 'Statut'
|
|
||||||
},
|
|
||||||
estimates: {
|
|
||||||
estimate: 'Estimation',
|
|
||||||
estimate_date: 'Date destimation',
|
|
||||||
due_date: 'Date déchéance',
|
|
||||||
estimate_number: 'Numéro destimation',
|
|
||||||
ref_number: 'Numéro de ref',
|
|
||||||
amount: 'Montante',
|
|
||||||
contact_name: 'Nom du contact',
|
|
||||||
status: 'Statut'
|
|
||||||
},
|
|
||||||
expenses: {
|
|
||||||
expenses: 'Les dépenses',
|
|
||||||
category: 'Catégorie',
|
|
||||||
date: 'Date',
|
|
||||||
amount: 'Montante',
|
|
||||||
to_date: 'À ce jour',
|
|
||||||
from_date: 'Partir de la date',
|
|
||||||
date_range: 'Sélectionner une plage de dates'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
settings: {
|
|
||||||
menu_title: {
|
|
||||||
account_settings: 'Paramètres du compte',
|
|
||||||
company_information: 'Informations sur la société',
|
|
||||||
preferences: 'Préférences',
|
|
||||||
notifications: 'Les notifications',
|
|
||||||
tax_types: 'Types de taxe',
|
|
||||||
expense_category: 'Catégories de dépenses',
|
|
||||||
update_app: "Mise à jour de l'application"
|
|
||||||
},
|
|
||||||
title: 'Paramètres',
|
|
||||||
setting: 'Paramètres | Paramètres',
|
|
||||||
general: 'Générale',
|
|
||||||
language: 'La langue',
|
|
||||||
primary_currency: 'Devise principale',
|
|
||||||
timezone: 'Fuseau horaire',
|
|
||||||
date_format: 'Format de date',
|
|
||||||
currencies: {
|
|
||||||
title: 'Monnaies',
|
|
||||||
currency: 'Monnaie | Monnaies',
|
|
||||||
currencies_list: 'Liste des devises',
|
|
||||||
select_currency: 'Sélectionnez la devise',
|
|
||||||
name: 'Nom',
|
|
||||||
code: 'Code',
|
|
||||||
symbol: 'symbole',
|
|
||||||
precision: 'Précision',
|
|
||||||
thousand_separator: 'Mille séparateur',
|
|
||||||
decimal_separator: 'Séparateur décimal',
|
|
||||||
position: 'Position',
|
|
||||||
position_of_symbol: 'Position du symbole',
|
|
||||||
right: 'Droite',
|
|
||||||
left: 'La gauche',
|
|
||||||
action: 'action',
|
|
||||||
add_currency: 'Ajouter une devise'
|
|
||||||
},
|
|
||||||
mail: {
|
|
||||||
host: 'Mail Host',
|
|
||||||
port: 'Port mail',
|
|
||||||
driver: 'Pilote de courrier',
|
|
||||||
password: 'Mot de passe mail',
|
|
||||||
secret: 'Secret',
|
|
||||||
mailgun_secret: 'Mailgun Secret',
|
|
||||||
mailgun_domain: 'Domaine',
|
|
||||||
mailgun_endpoint: 'Mailgun Point Final',
|
|
||||||
ses_secret: 'SES Secret',
|
|
||||||
ses_key: 'SES clé',
|
|
||||||
from_name: 'Nom de messagerie',
|
|
||||||
from_mail: 'De ladresse mail',
|
|
||||||
username: "Mail Nom d'utilisateur",
|
|
||||||
mail_config: 'Configuration du courrier',
|
|
||||||
encryption: 'Chiffrement du courrier',
|
|
||||||
mail_config_desc: "Les détails ci-dessous seront utilisés pour mettre à jour l'environnement de messagerie. Aussi, vous pouvez modifier les détails à tout moment après la connexion."
|
|
||||||
},
|
|
||||||
pdf: {
|
|
||||||
title: 'Paramètre PDF',
|
|
||||||
footer_text: 'Pied de page texte',
|
|
||||||
pdf_layout: 'Mise en page PDF'
|
|
||||||
},
|
|
||||||
company_info: {
|
|
||||||
company_info: 'Information dentreprise',
|
|
||||||
company_name: 'Nom de la compagnie',
|
|
||||||
company_logo: 'Logo dentreprise',
|
|
||||||
section_description: 'Informations sur votre entreprise qui figureront sur les factures, estimations et autres documents créés par Crater.',
|
|
||||||
phone: 'Téléphone',
|
|
||||||
country: 'Pays',
|
|
||||||
state: 'Etat',
|
|
||||||
city: 'Ville',
|
|
||||||
address: 'Adresse',
|
|
||||||
zip: 'Zip *: français',
|
|
||||||
save: 'sauver',
|
|
||||||
updated_message: 'Informations sur la société mises à jour avec succès'
|
|
||||||
},
|
|
||||||
account_settings: {
|
|
||||||
profile_picture: 'Image de profil',
|
|
||||||
name: 'Nom',
|
|
||||||
email: 'Email',
|
|
||||||
password: 'Mot de passe',
|
|
||||||
confirm_password: 'Confirmez le mot de passe',
|
|
||||||
account_settings: 'Paramètres du compte',
|
|
||||||
save: 'sauver',
|
|
||||||
section_description: 'Vous pouvez mettre à jour votre nom, votre email et votre mot de passe en utilisant le formulaire ci-dessous.',
|
|
||||||
updated_message: 'Paramètres du compte mis à jour avec succès'
|
|
||||||
},
|
|
||||||
user_profile: {
|
|
||||||
name: 'Nom',
|
|
||||||
email: 'Email',
|
|
||||||
password: 'Mot de passe',
|
|
||||||
confirm_password: 'Confirmez le mot de passe'
|
|
||||||
},
|
|
||||||
notification: {
|
|
||||||
title: 'Notification',
|
|
||||||
email: 'Envoyer des notifications à',
|
|
||||||
description: 'Quelles notifications par courrier électronique souhaitez-vous recevoir lorsque quelque chose change?',
|
|
||||||
invoice_viewed: 'Facture consultée',
|
|
||||||
invoice_viewed_desc: 'Lorsque votre client visualise la facture envoyée via le tableau de bord du cratère.',
|
|
||||||
estimate_viewed: 'Estimation vue',
|
|
||||||
estimate_viewed_desc: 'Lorsque votre client visualise le devis envoyé via le tableau de bord du cratère.',
|
|
||||||
save: 'sauver',
|
|
||||||
email_save_message: 'Email enregistré avec succès',
|
|
||||||
invoice_viewed_message: 'Facture consultée',
|
|
||||||
estimate_viewed_message: 'Estimation vue',
|
|
||||||
please_enter_email: 'S il vous plaît entrer email'
|
|
||||||
},
|
|
||||||
tax_types: {
|
|
||||||
title: 'Types de taxe',
|
|
||||||
add_tax: 'Ajouter une taxe',
|
|
||||||
description: 'Vous pouvez ajouter ou supprimer des taxes à votre guise. Crater prend en charge les taxes sur les articles individuels ainsi que sur la facture.',
|
|
||||||
add_new_tax: 'Ajouter une nouvelle taxe',
|
|
||||||
tax_settings: 'Paramètres de taxe',
|
|
||||||
tax_per_item: 'Taxe par article',
|
|
||||||
tax_name: 'Nom de la taxe',
|
|
||||||
compound_tax: 'Taxe composée',
|
|
||||||
percent: 'Pour cent',
|
|
||||||
action: 'action',
|
|
||||||
tax_setting_description: 'Activez cette option si vous souhaitez ajouter des taxes à des postes de facture individuels. Par défaut, les taxes sont ajoutées directement à la facture.',
|
|
||||||
created_message: 'Type de taxe créé avec succès',
|
|
||||||
updated_message: 'Type de taxe mis à jour avec succès',
|
|
||||||
deleted_message: 'Type de taxe supprimé avec succès',
|
|
||||||
confirm_delete: 'Vous ne pourrez pas récupérer ce type de taxe',
|
|
||||||
already_in_use: 'La taxe est déjà utilisée'
|
|
||||||
},
|
|
||||||
expense_category: {
|
|
||||||
title: 'Catégories de dépenses',
|
|
||||||
action: 'action',
|
|
||||||
description: 'Des catégories sont requises pour ajouter des entrées de dépenses. Vous pouvez ajouter ou supprimer ces catégories selon vos préférences.',
|
|
||||||
add_new_category: 'Ajouter une nouvelle catégorie',
|
|
||||||
category_name: 'Nom de catégorie',
|
|
||||||
category_description: 'La description',
|
|
||||||
created_message: 'Catégorie de dépenses créée avec succès',
|
|
||||||
deleted_message: 'La catégorie de dépenses a été supprimée avec succès',
|
|
||||||
updated_message: 'Catégorie de dépenses mise à jour avec succès',
|
|
||||||
confirm_delete: 'Vous ne pourrez pas récupérer cette catégorie de dépenses',
|
|
||||||
already_in_use: 'La catégorie est déjà utilisée'
|
|
||||||
},
|
|
||||||
preferences: {
|
|
||||||
currency: 'Devise',
|
|
||||||
language: 'La langue',
|
|
||||||
time_zone: 'Fuseau horaire',
|
|
||||||
fiscal_year: 'Année financière',
|
|
||||||
date_format: 'Format de date',
|
|
||||||
discount_setting: 'Réglage de remise',
|
|
||||||
discount_per_item: 'Remise par article',
|
|
||||||
discount_setting_description: 'Activez cette option si vous souhaitez ajouter une remise à des postes de facture individuels. Par défaut, les remises sont ajoutées directement à la facture.',
|
|
||||||
save: 'sauver',
|
|
||||||
preference: 'Préférence | Préférences',
|
|
||||||
general_settings: 'Préférences par défaut pour le système.',
|
|
||||||
updated_message: 'Préférences mises à jour avec succès',
|
|
||||||
set_discount_per_item_message: 'Jeu de remise par article',
|
|
||||||
select_language: 'Choisir la langue',
|
|
||||||
select_time_zone: 'sélectionnez le fuseau horaire',
|
|
||||||
select_date_formate: 'sélectionnez Date Formate',
|
|
||||||
select_financial_year: 'sélectionner lexercice'
|
|
||||||
},
|
|
||||||
update_app: {
|
|
||||||
title: "Mise à jour de l'application",
|
|
||||||
description: "mettre à jour la description de l'application",
|
|
||||||
check_update: 'Vérifier les mises à jour',
|
|
||||||
avail_update: 'Nouvelle mise à jour disponible',
|
|
||||||
next_version: 'Version suivante',
|
|
||||||
update: 'Mettre à jour maintenant',
|
|
||||||
update_progress: 'Mise à jour en cours...',
|
|
||||||
progress_text: "Cela ne prendra que quelques minutes. S'il vous plaît ne pas actualiser l'écran ou fermer la fenêtre avant la fin de la mise à jour",
|
|
||||||
update_success: 'App a été mis à jour! Veuillez patienter pendant le rechargement automatique de la fenêtre de votre navigateur.',
|
|
||||||
latest_message: 'Pas de mise a jour disponible! Vous êtes sur la dernière version.',
|
|
||||||
current_version: 'Version actuelle'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
wizard: {
|
|
||||||
account_info: 'Information sur le compte',
|
|
||||||
account_info_desc: 'Les détails ci-dessous seront utilisés pour créer le compte administrateur principal. Aussi, vous pouvez modifier les détails à tout moment après la connexion.',
|
|
||||||
name: 'Nom',
|
|
||||||
email: 'Email',
|
|
||||||
password: 'Mot de passe',
|
|
||||||
confirm_password: 'Confirmez le mot de passe',
|
|
||||||
save_cont: 'Enregistrer continuer',
|
|
||||||
company_info: 'Informations sur la société',
|
|
||||||
company_info_desc: 'Ces informations seront affichées sur les factures. Notez que vous pouvez éditer ceci plus tard sur la page des paramètres.',
|
|
||||||
company_name: 'Nom de la compagnie',
|
|
||||||
company_logo: 'Logo dentreprise',
|
|
||||||
logo_preview: 'Aperçu du logo',
|
|
||||||
preferences: 'Préférences',
|
|
||||||
preferences_desc: 'Préférences par défaut pour le système.',
|
|
||||||
country: 'Pays',
|
|
||||||
state: 'Etat',
|
|
||||||
city: 'Ville',
|
|
||||||
address: 'Adresse',
|
|
||||||
street: 'Street1 ' | 'Rue # 2',
|
|
||||||
phone: 'Téléphone',
|
|
||||||
zip_code: 'Code postal',
|
|
||||||
go_back: 'Retourner',
|
|
||||||
currency: 'Devise',
|
|
||||||
language: 'La langue',
|
|
||||||
time_zone: 'Fuseau horaire',
|
|
||||||
fiscal_year: 'Année financière',
|
|
||||||
date_format: 'Format de date',
|
|
||||||
from_address: "De l'adresse",
|
|
||||||
username: "Nom d'utilisateur",
|
|
||||||
next: 'Suivant',
|
|
||||||
continue: 'Continuer',
|
|
||||||
database: {
|
|
||||||
database: 'URL du site et base de données',
|
|
||||||
connection: 'Connexion à la base de données',
|
|
||||||
host: 'Hôte de base de données',
|
|
||||||
port: 'Port de base de données',
|
|
||||||
password: 'Mot de passe de base de données',
|
|
||||||
app_url: 'Application URL',
|
|
||||||
username: "Nom d'utilisateur de la base de données",
|
|
||||||
db_name: 'Nom de la base de données',
|
|
||||||
desc: "Créez une base de données sur votre serveur et définissez les informations d'identification à l'aide du formulaire ci-dessous."
|
|
||||||
},
|
|
||||||
permissions: {
|
|
||||||
permissions: 'Les permissions',
|
|
||||||
permission_confirm_title: 'Es-tu sur de vouloir continuer?',
|
|
||||||
permission_confirm_desc: 'La vérification de l\'autorisation du dossier a échoué',
|
|
||||||
permission_desc: "Vous trouverez ci-dessous la liste des autorisations de dossier requises pour le fonctionnement de l'application. Si la vérification des autorisations échoue, veillez à mettre à jour vos autorisations de dossier."
|
|
||||||
},
|
|
||||||
mail: {
|
|
||||||
host: 'Mail Host',
|
|
||||||
port: 'Port mail',
|
|
||||||
driver: 'Pilote de courrier',
|
|
||||||
password: 'Mot de passe mail',
|
|
||||||
secret: 'Secret',
|
|
||||||
mailgun_secret: 'Mailgun Secret',
|
|
||||||
mailgun_domain: 'Domaine',
|
|
||||||
mailgun_endpoint: 'Mailgun Point Final',
|
|
||||||
ses_secret: 'SES Secret',
|
|
||||||
ses_key: 'SES clé',
|
|
||||||
from_name: 'Nom de messagerie',
|
|
||||||
from_mail: 'De ladresse mail',
|
|
||||||
username: "Mail Nom d'utilisateur",
|
|
||||||
mail_config: 'Configuration du courrier',
|
|
||||||
encryption: 'Chiffrement du courrier',
|
|
||||||
mail_config_desc: "Les détails ci-dessous seront utilisés pour mettre à jour l'environnement de messagerie. Aussi, vous pouvez modifier les détails à tout moment après la connexion."
|
|
||||||
},
|
|
||||||
req: {
|
|
||||||
system_req: 'Configuration requise',
|
|
||||||
php_req_version: 'Php (version {version} nécessaire)',
|
|
||||||
check_req: 'Vérifier les exigences',
|
|
||||||
system_req_desc: 'Crater a quelques exigences de serveur. Assurez-vous que votre serveur dispose de la version PHP requise et de toutes les extensions mentionnées ci-dessous.'
|
|
||||||
},
|
|
||||||
errors: {
|
|
||||||
migrate_failed: 'Migration impossible',
|
|
||||||
database_variables_save_error: 'Impossible de se connecter à la base de données avec les valeurs fournies.',
|
|
||||||
mail_variables_save_error: 'La configuration du courrier électronique a échoué.',
|
|
||||||
connection_failed: 'La connexion à la base de données a échoué'
|
|
||||||
},
|
|
||||||
success: {
|
|
||||||
mail_variables_save_successfully: 'Email configuré avec succès',
|
|
||||||
database_variables_save_successfully: 'Base de données configurée avec succès.'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
layout_login: {
|
|
||||||
copyright_crater: 'Copyright @ Crater - 2019',
|
|
||||||
super_simple_invoicing: 'Super Simple Facturation',
|
|
||||||
for_freelancer: 'pour les pigistes et',
|
|
||||||
small_businesses: 'Petites entreprises ',
|
|
||||||
crater_help: 'Crater vous aide à suivre vos dépenses, à enregistrer vos paiements et à générer de belles',
|
|
||||||
invoices_and_estimates: 'factures et devis avec possibilité de choisir plusieurs modèles.'
|
|
||||||
|
|
||||||
},
|
|
||||||
validation: {
|
|
||||||
invalid_url: 'URL invalide (ex: http://www.crater.com)',
|
|
||||||
required: 'Champ requis',
|
|
||||||
email_incorrect: 'Adresse Email incorrecte.',
|
|
||||||
email_does_not_exist: "L'utilisateur avec un email donné n'existe pas",
|
|
||||||
send_reset_link: 'Envoyer le lien de réinitialisation',
|
|
||||||
not_yet: 'Pas encore? Envoyer à nouveau',
|
|
||||||
password_min_length: 'Le mot de passe doit contenir {nombre} caractères',
|
|
||||||
name_min_length: 'Le nom doit avoir au moins {count} lettres.',
|
|
||||||
enter_valid_tax_rate: 'Entrez un taux de taxe valide',
|
|
||||||
numbers_only: 'Chiffres uniquement.',
|
|
||||||
characters_only: 'Caractères seulement.',
|
|
||||||
password_incorrect: 'Les mots de passe doivent être identiques',
|
|
||||||
password_length: 'Le mot de passe doit comporter 5 caractères.',
|
|
||||||
qty_must_greater_than_zero: 'La quantité doit être supérieure à zéro.',
|
|
||||||
price_greater_than_zero: 'Le prix doit être supérieur à zéro.',
|
|
||||||
payment_greater_than_zero: 'Le paiement doit être supérieur à zéro.',
|
|
||||||
payment_greater_than_due_amount: 'Le paiement entré est plus que le montant dû de cette facture.',
|
|
||||||
quantity_maxlength: 'La quantité ne doit pas dépasser 20 chiffres.',
|
|
||||||
price_maxlength: 'Le prix ne doit pas dépasser 20 chiffres.',
|
|
||||||
price_minvalue: 'Le prix doit être supérieur à 0 chiffre',
|
|
||||||
amount_maxlength: 'Le montant ne doit pas dépasser 20 chiffres.',
|
|
||||||
amount_minvalue: 'Le montant doit être supérieur à 0 chiffre',
|
|
||||||
description_maxlength: 'La description ne doit pas dépasser 255 caractères.',
|
|
||||||
maximum_options_error: 'Maximum de {max} options sélectionnées. Commencez par supprimer une option sélectionnée pour en sélectionner une autre.',
|
|
||||||
notes_maxlength: 'Les notes ne doivent pas dépasser 255 caractères.',
|
|
||||||
address_maxlength: "L'adresse ne doit pas dépasser 255 caractères.",
|
|
||||||
ref_number_maxlength: 'Le numéro de référence ne doit pas dépasser 255 caractères.'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
814
resources/assets/js/plugins/fr.json
Normal file
814
resources/assets/js/plugins/fr.json
Normal file
@ -0,0 +1,814 @@
|
|||||||
|
{
|
||||||
|
"navigation": {
|
||||||
|
"dashboard": "Tableau de bord",
|
||||||
|
"customers": "Cliente",
|
||||||
|
"items": "Articles",
|
||||||
|
"invoices": "Factures",
|
||||||
|
"expenses": "Les dépenses",
|
||||||
|
"estimates": "Estimations",
|
||||||
|
"payments": "Paiements",
|
||||||
|
"reports": "Rapports",
|
||||||
|
"settings": "Paramètres",
|
||||||
|
"logout": "Se déconnecter"
|
||||||
|
},
|
||||||
|
"general": {
|
||||||
|
"view_pdf": "Voir PDF",
|
||||||
|
"download_pdf": "Télécharger le PDF",
|
||||||
|
"save": "sauver",
|
||||||
|
"cancel": "Annuler",
|
||||||
|
"update": "Mise à jour",
|
||||||
|
"download": "Télécharger",
|
||||||
|
"from_date": "Partir de la date",
|
||||||
|
"to_date": "À ce jour",
|
||||||
|
"from": "De",
|
||||||
|
"to": "À",
|
||||||
|
"go_back": "Retourner",
|
||||||
|
"back_to_login": "Retour connexion?",
|
||||||
|
"home": "Accueil",
|
||||||
|
"filter": "Filtre",
|
||||||
|
"delete": "Effacer",
|
||||||
|
"edit": "Modifier",
|
||||||
|
"view": "Vue",
|
||||||
|
"add_new_item": "Ajoute un nouvel objet",
|
||||||
|
"clear_all": "Tout effacer",
|
||||||
|
"showing": "Montrant",
|
||||||
|
"of": "de",
|
||||||
|
"actions": "Actions",
|
||||||
|
"subtotal": "TOTAL",
|
||||||
|
"discount": "REMISE",
|
||||||
|
"fixed": "Fixée",
|
||||||
|
"percentage": "Pourcentage",
|
||||||
|
"tax": "IMPÔT",
|
||||||
|
"total_amount": "MONTANT TOTAL",
|
||||||
|
"bill_to": "facturer",
|
||||||
|
"ship_to": "Envoyez à",
|
||||||
|
"due": "Dû",
|
||||||
|
"draft": "Brouillon",
|
||||||
|
"sent": "Envoyée",
|
||||||
|
"all": "Tout",
|
||||||
|
"select_all": "Tout sélectionner",
|
||||||
|
"choose_file": "Cliquez ici pour choisir un fichier",
|
||||||
|
"choose_template": "Choisissez un modèle",
|
||||||
|
"choose": "Choisir",
|
||||||
|
"remove": "Retirer",
|
||||||
|
"powered_by": "Alimenté par",
|
||||||
|
"bytefury": "Bytefury",
|
||||||
|
"select_a_status": "Sélectionnez un statut",
|
||||||
|
"select_a_tax": "Sélectionnez une taxe",
|
||||||
|
"search": "Chercher",
|
||||||
|
"are_you_sure": "Êtes-vous sûr?",
|
||||||
|
"list_is_empty": "La liste est vide",
|
||||||
|
"no_tax_found": "Aucune taxe trouvée!",
|
||||||
|
"four_zero_four": "404",
|
||||||
|
"you_got_lost": "Oups! Vous vous êtes perdus!",
|
||||||
|
"go_home": "Rentrer chez soi",
|
||||||
|
|
||||||
|
"setting_updated": "Réglage mis à jour avec succès",
|
||||||
|
"select_state": "Sélectionnez l'état",
|
||||||
|
"select_country": "Choisissez le pays",
|
||||||
|
"select_city": "Sélectionnez une ville",
|
||||||
|
"street_1": "Rue 1",
|
||||||
|
"street_2": "Rue # 2",
|
||||||
|
"action_failed": "Action : échoué"
|
||||||
|
},
|
||||||
|
"dashboard": {
|
||||||
|
"select_year": "Sélectionnez lannée",
|
||||||
|
"cards": {
|
||||||
|
"due_amount": "Montant dû",
|
||||||
|
"customers": "Les clients",
|
||||||
|
"invoices": "Factures",
|
||||||
|
"estimates": "Estimations"
|
||||||
|
},
|
||||||
|
"chart_info": {
|
||||||
|
"total_sales": "Ventes",
|
||||||
|
"total_receipts": "Reçus",
|
||||||
|
"total_expense": "Les dépenses",
|
||||||
|
"net_income": "Revenu net",
|
||||||
|
"year": "Sélectionnez lannée"
|
||||||
|
},
|
||||||
|
"weekly_invoices": {
|
||||||
|
"title": "Factures hebdomadaires"
|
||||||
|
},
|
||||||
|
"monthly_chart": {
|
||||||
|
"title": "Ventes et dépenses"
|
||||||
|
},
|
||||||
|
"recent_invoices_card": {
|
||||||
|
"title": "Factures dues",
|
||||||
|
"due_on": "Due On",
|
||||||
|
"customer": "Cliente",
|
||||||
|
"amount_due": "Montant dû",
|
||||||
|
"actions": "Actions",
|
||||||
|
"view_all": "Voir tout"
|
||||||
|
},
|
||||||
|
"recent_estimate_card": {
|
||||||
|
"title": "Estimations récentes",
|
||||||
|
"date": "Date",
|
||||||
|
"customer": "Cliente",
|
||||||
|
"amount_due": "Montant dû",
|
||||||
|
"actions": "Actions",
|
||||||
|
"view_all": "Voir tout"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"tax_types": {
|
||||||
|
"name": "Nom",
|
||||||
|
"description": "La description",
|
||||||
|
"percent": "Pour cent",
|
||||||
|
"compound_tax": "Taxe composée"
|
||||||
|
},
|
||||||
|
"customers": {
|
||||||
|
"title": "Les clients",
|
||||||
|
"add_customer": "Ajouter un client",
|
||||||
|
"contacts_list": "Liste de clients",
|
||||||
|
"name": "Nom",
|
||||||
|
"display_name": "Afficher un nom",
|
||||||
|
"primary_contact_name": "Nom du contact principal",
|
||||||
|
"contact_name": "Nom du contact",
|
||||||
|
"amount_due": "Montant dû",
|
||||||
|
"email": "Email",
|
||||||
|
"address": "Adresse",
|
||||||
|
"phone": "Téléphone",
|
||||||
|
"website": "Site Internet",
|
||||||
|
"country": "Pays",
|
||||||
|
"state": "Etat",
|
||||||
|
"city": "Ville",
|
||||||
|
"zip_code": "Code postal",
|
||||||
|
"added_on": "Ajouté le",
|
||||||
|
"action": "action",
|
||||||
|
"password": "Mot de passe",
|
||||||
|
"street_number": "Numéro de rue",
|
||||||
|
"primary_currency": "Devise principale",
|
||||||
|
"add_new_customer": "Ajouter un nouveau client",
|
||||||
|
"save_customer": "Enregistrer le client",
|
||||||
|
"update_customer": "Mettre à jour le client",
|
||||||
|
"customer": "Client | Les clients",
|
||||||
|
"new_customer": "Nouveau client",
|
||||||
|
"edit_customer": "Modifier le client",
|
||||||
|
"basic_info": "Informations de base",
|
||||||
|
"billing_address": "Adresse de facturation",
|
||||||
|
"shipping_address": "Adresse de livraison",
|
||||||
|
"copy_billing_address": "Copier de la facturation",
|
||||||
|
"no_customers": "Pas encore de clients!",
|
||||||
|
"no_customers_found": "Aucun client trouvé!",
|
||||||
|
"list_of_customers": "Cette section contiendra la liste des clients.",
|
||||||
|
"primary_display_name": "Nom daffichage principal",
|
||||||
|
"select_state": "Sélectionnez létat",
|
||||||
|
"select_country": "Choisissez le pays",
|
||||||
|
"select_city": "Sélectionnez une ville",
|
||||||
|
"select_currency": "Sélectionnez la devise",
|
||||||
|
"street_1": "Rue 1",
|
||||||
|
"street_2": "Rue 2",
|
||||||
|
"select_a_customer": "Sélectionnez un client",
|
||||||
|
"type_or_click": "Tapez ou cliquez pour sélectionner",
|
||||||
|
|
||||||
|
"confirm_delete": "Vous ne pourrez pas récupérer ce client | Vous ne pourrez pas récupérer ces clients",
|
||||||
|
"created_message": "Client créé avec succès",
|
||||||
|
"updated_message": "Client mis à jour avec succès",
|
||||||
|
"deleted_message": "Client supprimé avec succès | Les clients supprimés avec succès"
|
||||||
|
},
|
||||||
|
"items": {
|
||||||
|
"title": "Articles",
|
||||||
|
"items_list": "Liste darticles",
|
||||||
|
"name": "Nom",
|
||||||
|
"unit": "Unité",
|
||||||
|
"description": "La description",
|
||||||
|
"added_on": "Ajouté le",
|
||||||
|
"price": "Prix",
|
||||||
|
"date_of_creation": "Date de création",
|
||||||
|
"action": "action",
|
||||||
|
"add_item": "Ajouter un item",
|
||||||
|
"save_item": "Enregistrer lélément",
|
||||||
|
"update_item": "Mettre à jour lélément",
|
||||||
|
"item": "Article | Articles",
|
||||||
|
"add_new_item": "Ajoute un nouvel objet",
|
||||||
|
"new_item": "Nouvel article",
|
||||||
|
"edit_item": "Modifier larticle",
|
||||||
|
"no_items": "Aucun article pour le moment!",
|
||||||
|
"list_of_items": "Cette section contiendra la liste des éléments.",
|
||||||
|
"select_a_unit": "sélectionner lunité",
|
||||||
|
|
||||||
|
"item_attached_message": "Impossible de supprimer un élément déjà utilisé",
|
||||||
|
"confirm_delete": "Vous ne pourrez pas récupérer cet article | Vous ne pourrez pas récupérer ces objets",
|
||||||
|
"created_message": "Article créé avec succès",
|
||||||
|
"updated_message": "Élément mis à jour avec succès",
|
||||||
|
"deleted_message": "Élément supprimé avec succès | Éléments supprimés avec succès"
|
||||||
|
},
|
||||||
|
"estimates": {
|
||||||
|
"title": "Estimations",
|
||||||
|
"estimate": "Estimation | Estimations",
|
||||||
|
"estimates_list": "Liste des estimations",
|
||||||
|
"days": "{jours} jours",
|
||||||
|
"months": "{mois} mois",
|
||||||
|
"years": "{années} Année",
|
||||||
|
"all": "Toute",
|
||||||
|
"paid": "Payé",
|
||||||
|
"unpaid": "Non payé",
|
||||||
|
"customer": "CLIENTE CLIENT",
|
||||||
|
"ref_no": "REF NO.",
|
||||||
|
"number": "NOMBRE",
|
||||||
|
"amount_due": "MONTANT DÛ",
|
||||||
|
"partially_paid": "Partiellement payé",
|
||||||
|
"total": "Totale",
|
||||||
|
"discount": "Remise",
|
||||||
|
"sub_total": "Total partiel",
|
||||||
|
"estimate_number": "Numéro destimation",
|
||||||
|
"ref_number": "Numéro de ref",
|
||||||
|
"contact": "Contact",
|
||||||
|
"add_item": "Ajouter un article",
|
||||||
|
"date": "Date",
|
||||||
|
"due_date": "Date déchéance",
|
||||||
|
"expiry_date": "Date dexpiration",
|
||||||
|
"status": "Statut",
|
||||||
|
"add_tax": "Ajouter une taxe",
|
||||||
|
"amount": "Montante",
|
||||||
|
"action": "action",
|
||||||
|
"notes": "Remarques",
|
||||||
|
"tax": "Impôt",
|
||||||
|
"estimate_template": "Modèle destimation",
|
||||||
|
"convert_to_invoice": "Convertir en facture",
|
||||||
|
"mark_as_sent": "Marquer comme envoyé",
|
||||||
|
"send_estimate": "Envoyer une estimation",
|
||||||
|
"record_payment": "Record de paiement",
|
||||||
|
"add_estimate": "Ajouter une estimation",
|
||||||
|
"save_estimate": "Sauvegarder lestimation",
|
||||||
|
"confirm_conversion": "Vous souhaitez convertir cette estimation en facture?",
|
||||||
|
"conversion_message": "Conversion réussie",
|
||||||
|
"confirm_send_estimate": "Cette estimation sera envoyée par courrier électronique au client.",
|
||||||
|
"confirm_mark_as_sent": "Cette estimation sera marquée comme envoyé",
|
||||||
|
"confirm_mark_as_accepted": "Cette estimation sera marquée comme acceptée",
|
||||||
|
"confirm_mark_as_rejected": "Cette estimation sera marquée comme Rejetée",
|
||||||
|
"mark_as_sent_successfully": "Estimation marquée comme envoyée avec succès",
|
||||||
|
"send_estimate_successfully": "Estimation envoyée avec succès",
|
||||||
|
"errors": {
|
||||||
|
"required": "Champ requis"
|
||||||
|
},
|
||||||
|
"accepted": "Accepté",
|
||||||
|
"sent": "Envoyée",
|
||||||
|
"draft": "Brouillon",
|
||||||
|
"declined": "Diminué",
|
||||||
|
"new_estimate": "Nouvelle estimation",
|
||||||
|
"add_new_estimate": "Ajouter une nouvelle estimation",
|
||||||
|
"update_Estimate": "Mise à jour de lestimation",
|
||||||
|
"edit_estimate": "Modifier lestimation",
|
||||||
|
"items": "articles",
|
||||||
|
"Estimate": "Estimation | Estimations",
|
||||||
|
"add_new_tax": "Ajouter une nouvelle taxe",
|
||||||
|
"no_estimates": "Aucune estimation pour le moment!",
|
||||||
|
"list_of_estimates": "Cette section contiendra la liste des estimations.",
|
||||||
|
"mark_as_rejected": "Marquer comme rejeté",
|
||||||
|
"mark_as_accepted": "Marquer comme accepté",
|
||||||
|
|
||||||
|
"marked_as_accepted_message": "Estimation marquée comme acceptée",
|
||||||
|
"marked_as_rejected_message": "Estimation marquée comme rejetée",
|
||||||
|
"confirm_delete": "Vous ne pourrez pas récupérer cette estimation | Vous ne pourrez pas récupérer ces estimations",
|
||||||
|
"created_message": "Estimation créée avec succès",
|
||||||
|
"updated_message": "Estimation mise à jour avec succès",
|
||||||
|
"deleted_message": "Estimation supprimée avec succès | Estimations supprimées avec succès",
|
||||||
|
"item": {
|
||||||
|
"title": "Titre de larticle",
|
||||||
|
"description": "La description",
|
||||||
|
"quantity": "Quantité",
|
||||||
|
"price": "Prix",
|
||||||
|
"discount": "Remise",
|
||||||
|
"total": "Totale",
|
||||||
|
"total_discount": "Remise totale",
|
||||||
|
"sub_total": "Total partiel",
|
||||||
|
"tax": "Impôt",
|
||||||
|
"amount": "Montante",
|
||||||
|
"select_an_item": "Tapez ou cliquez pour sélectionner un élément",
|
||||||
|
"type_item_description": "Type Item Description (optionnel)"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"invoices": {
|
||||||
|
"title": "Factures",
|
||||||
|
"invoices_list": "Liste de factures",
|
||||||
|
"days": "{jours} jours",
|
||||||
|
"months": "{mois} mois",
|
||||||
|
"years": "{années} Année",
|
||||||
|
"all": "Toute",
|
||||||
|
"paid": "Payé",
|
||||||
|
"unpaid": "Non payé",
|
||||||
|
"customer": "CLIENTE CLIENT",
|
||||||
|
"paid_status": "Statut payé",
|
||||||
|
"ref_no": "REF NO.",
|
||||||
|
"number": "NOMBRE",
|
||||||
|
"amount_due": "MONTANT DÛ",
|
||||||
|
"partially_paid": "Partiellement payé",
|
||||||
|
"total": "Totale Total",
|
||||||
|
"discount": "Remise",
|
||||||
|
"sub_total": "Total partiel",
|
||||||
|
"invoice": "Facture | Factures",
|
||||||
|
"invoice_number": "Numéro de facture",
|
||||||
|
"ref_number": "Numéro de ref",
|
||||||
|
"contact": "Contact",
|
||||||
|
"add_item": "Ajouter un article",
|
||||||
|
"date": "Date",
|
||||||
|
"due_date": "Date déchéance",
|
||||||
|
"status": "Statut",
|
||||||
|
"add_tax": "Ajouter une taxe",
|
||||||
|
"amount": "Montante Montant",
|
||||||
|
"action": "action",
|
||||||
|
"notes": "Remarques",
|
||||||
|
"view": "Vue",
|
||||||
|
"send_invoice": "Envoyer une facture",
|
||||||
|
"invoice_template": "Modèle de facture",
|
||||||
|
"template": "Modèle",
|
||||||
|
"mark_as_sent": "Marquer comme envoyé",
|
||||||
|
"invoice_mark_as_sent": "Cette facture sera marquée comme envoyé",
|
||||||
|
"confirm_send": "Cette facture sera envoyée par courrier électronique au client.",
|
||||||
|
"invoice_date": "Date de facturation",
|
||||||
|
"record_payment": "Record de paiement",
|
||||||
|
"add_new_invoice": "Ajouter une nouvelle facture",
|
||||||
|
"update_expense": "Frais de mise à jour",
|
||||||
|
"edit_invoice": "Modifier la facture",
|
||||||
|
"new_invoice": "Nouvelle facture",
|
||||||
|
"save_invoice": "Enregistrer la facture",
|
||||||
|
"update_invoice": "Mettre à jour la facture",
|
||||||
|
"add_new_tax": "Ajouter une nouvelle taxe",
|
||||||
|
"no_invoices": "Aucune facture pour le moment!",
|
||||||
|
"list_of_invoices": "Cette section contiendra la liste des factures.",
|
||||||
|
"select_invoice": "Sélectionnez facture",
|
||||||
|
"mark_as_sent_successfully": "Facture marquée comme envoyée avec succès",
|
||||||
|
"send_invoice_successfully": "Facture envoyée avec succès",
|
||||||
|
"item": {
|
||||||
|
"title": "Titre de larticle",
|
||||||
|
"description": "La description",
|
||||||
|
"quantity": "Quantité",
|
||||||
|
"price": "Prix",
|
||||||
|
"discount": "Remise",
|
||||||
|
"total": "Totale Total",
|
||||||
|
"total_discount": "Remise totale",
|
||||||
|
"sub_total": "Total partiel",
|
||||||
|
"tax": "Impôt",
|
||||||
|
"amount": "Montante Montant",
|
||||||
|
"select_an_item": "Tapez ou cliquez pour sélectionner un élément",
|
||||||
|
"type_item_description": "Type Item Description (optionnel)"
|
||||||
|
},
|
||||||
|
"payment_attached_message": "Un paiement est déjà associé à l'une des factures sélectionnées. Assurez-vous d’effacer d’abord les paiements en pièce jointe afin de procéder à la suppression.",
|
||||||
|
"confirm_delete": "Vous ne pourrez pas récupérer cette facture | Vous ne pourrez pas récupérer ces factures",
|
||||||
|
"created_message": "Facture créée avec succès",
|
||||||
|
"updated_message": "Facture mise à jour avec succès",
|
||||||
|
"deleted_message": "Invoice deleted successfully | Invoices deleted successfully",
|
||||||
|
"marked_as_sent_message": "Facture supprimée avec succès | Factures supprimées avec succès",
|
||||||
|
"invalid_due_amount_message": "Le paiement entré est supérieur au montant total dû pour cette facture. Veuillez vérifier et réessayer"
|
||||||
|
},
|
||||||
|
"credit_notes": {
|
||||||
|
"title": "Notes de crédit",
|
||||||
|
"credit_notes_list": "Liste des notes de crédit",
|
||||||
|
"credit_notes": "Notes de crédit",
|
||||||
|
"contact": "Contact",
|
||||||
|
"date": "Date",
|
||||||
|
"amount": "Montante Montant",
|
||||||
|
"action": "action",
|
||||||
|
"credit_number": "Numéro de crédit",
|
||||||
|
"notes": "Remarques",
|
||||||
|
"confirm_delete": "Voulez-vous supprimer cet avoir?",
|
||||||
|
"item": {
|
||||||
|
"title": "Titre de larticle",
|
||||||
|
"description": "La description",
|
||||||
|
"quantity": "Quantité",
|
||||||
|
"price": "Prix",
|
||||||
|
"discount": "Remise",
|
||||||
|
"total": "Totale Total",
|
||||||
|
"total_discount": "Remise totale",
|
||||||
|
"sub_total": "Total partiel",
|
||||||
|
"tax": "Impôt"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"payments": {
|
||||||
|
"title": "Paiements",
|
||||||
|
"payments_list": "Liste de paiements",
|
||||||
|
"record_payment": "Record de paiement",
|
||||||
|
"customer": "Cliente Client",
|
||||||
|
"date": "Date",
|
||||||
|
"amount": "Montante Montant",
|
||||||
|
"action": "action",
|
||||||
|
"payment_number": "Numéro de paiement",
|
||||||
|
"payment_mode": "Mode de paiement",
|
||||||
|
"invoice": "Facture dachat",
|
||||||
|
"note": "Remarque",
|
||||||
|
"add_payment": "Ajouter un paiement",
|
||||||
|
"new_payment": "Nouveau paiement",
|
||||||
|
"edit_payment": "Modifier le paiement",
|
||||||
|
"view_payment": "Voir le paiement",
|
||||||
|
"add_new_payment": "Ajouter un nouveau paiement",
|
||||||
|
"save_payment": "Enregistrer le paiement",
|
||||||
|
"update_payment": "Mettre à jour le paiement",
|
||||||
|
"payment": "Paiement | Paiements",
|
||||||
|
"no_payments": "Aucun paiement pour le moment!",
|
||||||
|
"list_of_payments": "Cette section contiendra la liste des paiements",
|
||||||
|
"select_payment_mode": "Sélectionnez le mode de paiement",
|
||||||
|
|
||||||
|
"confirm_delete": "Vous ne pourrez pas récupérer ce paiement | Vous ne pourrez pas récupérer ces paiements",
|
||||||
|
"created_message": "Paiement créé avec succès",
|
||||||
|
"updated_message": "Paiement mis à jour avec succès",
|
||||||
|
"deleted_message": "Paiement supprimé avec succès | Paiements supprimés avec succès",
|
||||||
|
"invalid_amount_message": "Le montant du paiement est invalide"
|
||||||
|
},
|
||||||
|
"expenses": {
|
||||||
|
"title": "Les dépenses",
|
||||||
|
"expenses_list": "Liste des dépenses",
|
||||||
|
"expense_title": "Titre",
|
||||||
|
"contact": "Contact",
|
||||||
|
"category": "Catégorie",
|
||||||
|
"from_date": "Partir de la date",
|
||||||
|
"to_date": "À ce jour",
|
||||||
|
"expense_date": "Date",
|
||||||
|
"description": "La description",
|
||||||
|
"receipt": "Le reçu",
|
||||||
|
"amount": "Montante Montant",
|
||||||
|
"action": "action",
|
||||||
|
"note": "Remarque",
|
||||||
|
"category_id": "Identifiant de catégorie",
|
||||||
|
"date": "Date de dépense",
|
||||||
|
"add_expense": "Ajouter une dépense",
|
||||||
|
"add_new_expense": "Ajouter une nouvelle dépense",
|
||||||
|
"save_expense": "Économiser des dépenses",
|
||||||
|
"update_expense": "Frais de mise à jour",
|
||||||
|
"download_receipt": "Télécharger le reçu",
|
||||||
|
"edit_expense": "Modifier les dépenses",
|
||||||
|
"new_expense": "Nouvelle dépense",
|
||||||
|
"expense": "Frais | Les dépenses",
|
||||||
|
"no_expenses": "Pas de dépenses pour le moment!",
|
||||||
|
"list_of_expenses": "Cette section contiendra la liste des dépenses.",
|
||||||
|
|
||||||
|
"confirm_delete": "Vous ne pourrez pas récupérer cette dépense | Vous ne pourrez pas récupérer ces frais",
|
||||||
|
"created_message": "Dépense créée avec succès",
|
||||||
|
"updated_message": "Dépense mise à jour avec succès",
|
||||||
|
"deleted_message": "Dépense supprimée avec succès | Dépenses supprimées avec succès",
|
||||||
|
"categories": {
|
||||||
|
"categories_list": "Liste des catégories",
|
||||||
|
"title": "Titre",
|
||||||
|
"name": "Nom",
|
||||||
|
"description": "La description",
|
||||||
|
"amount": "Montante Montant",
|
||||||
|
"actions": "Actions",
|
||||||
|
"add_category": "ajouter une catégorie",
|
||||||
|
"new_category": "Nouvelle catégorie",
|
||||||
|
"category": "Catégorie | Les catégories",
|
||||||
|
"select_a_category": "choisissez une catégorie"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"login": {
|
||||||
|
"email": "Email",
|
||||||
|
"password": "Mot de passe",
|
||||||
|
"forgot_password": "Mot de passe oublié?",
|
||||||
|
"or_signIn_with": "ou Connectez-vous avec:",
|
||||||
|
"login": "Sidentifier",
|
||||||
|
"register": "Sinscrire",
|
||||||
|
"reset_password": "réinitialiser le mot de passe",
|
||||||
|
"enter_email": "Entrer email",
|
||||||
|
"enter_password": "Entrer le mot de passe",
|
||||||
|
"retype_password": "Retaper le mot de passe",
|
||||||
|
"login_placeholder": "mail@example.com"
|
||||||
|
},
|
||||||
|
"reports": {
|
||||||
|
"title": "rapport",
|
||||||
|
"from_date": "Partir de la date",
|
||||||
|
"to_date": "À ce jour",
|
||||||
|
"status": "Statut",
|
||||||
|
"paid": "Payé",
|
||||||
|
"unpaid": "Non payé",
|
||||||
|
"download_pdf": "Télécharger le PDF",
|
||||||
|
"view_pdf": "Voir PDF",
|
||||||
|
"update_report": "Rapport de mise à jour",
|
||||||
|
"report": "Rapport | Rapports",
|
||||||
|
"profit_loss": {
|
||||||
|
"profit_loss": "Perte de profit",
|
||||||
|
"to_date": "À ce jour",
|
||||||
|
"from_date": "Partir de la date",
|
||||||
|
"date_range": "Sélectionner une plage de dates"
|
||||||
|
},
|
||||||
|
"sales": {
|
||||||
|
"sales": "Ventes",
|
||||||
|
"date_range": "Sélectionner une plage de dates",
|
||||||
|
"to_date": "À ce jour",
|
||||||
|
"from_date": "Partir de la date",
|
||||||
|
"report_type": "Type de rapport"
|
||||||
|
},
|
||||||
|
"taxes": {
|
||||||
|
"taxes": "Les taxes",
|
||||||
|
"to_date": "À ce jour",
|
||||||
|
"from_date": "Partir de la date",
|
||||||
|
"date_range": "Sélectionner une plage de dates"
|
||||||
|
},
|
||||||
|
"errors": {
|
||||||
|
"required": "Champ requis"
|
||||||
|
},
|
||||||
|
"invoices": {
|
||||||
|
"invoice": "Facture dachat",
|
||||||
|
"invoice_date": "Date de facturation",
|
||||||
|
"due_date": "Date déchéance",
|
||||||
|
"amount": "Montante ",
|
||||||
|
"contact_name": "Nom du contact",
|
||||||
|
"status": "Statut"
|
||||||
|
},
|
||||||
|
"estimates": {
|
||||||
|
"estimate": "Estimation",
|
||||||
|
"estimate_date": "Date destimation",
|
||||||
|
"due_date": "Date déchéance",
|
||||||
|
"estimate_number": "Numéro destimation",
|
||||||
|
"ref_number": "Numéro de ref",
|
||||||
|
"amount": "Montante",
|
||||||
|
"contact_name": "Nom du contact",
|
||||||
|
"status": "Statut"
|
||||||
|
},
|
||||||
|
"expenses": {
|
||||||
|
"expenses": "Les dépenses",
|
||||||
|
"category": "Catégorie",
|
||||||
|
"date": "Date",
|
||||||
|
"amount": "Montante",
|
||||||
|
"to_date": "À ce jour",
|
||||||
|
"from_date": "Partir de la date",
|
||||||
|
"date_range": "Sélectionner une plage de dates"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"settings": {
|
||||||
|
"menu_title": {
|
||||||
|
"account_settings": "Paramètres du compte",
|
||||||
|
"company_information": "Informations sur la société",
|
||||||
|
"preferences": "Préférences",
|
||||||
|
"notifications": "Les notifications",
|
||||||
|
"tax_types": "Types de taxe",
|
||||||
|
"expense_category": "Catégories de dépenses",
|
||||||
|
"update_app": "Mise à jour de l'application"
|
||||||
|
},
|
||||||
|
"title": "Paramètres",
|
||||||
|
"setting": "Paramètres | Paramètres",
|
||||||
|
"general": "Générale",
|
||||||
|
"language": "La langue",
|
||||||
|
"primary_currency": "Devise principale",
|
||||||
|
"timezone": "Fuseau horaire",
|
||||||
|
"date_format": "Format de date",
|
||||||
|
"currencies": {
|
||||||
|
"title": "Monnaies",
|
||||||
|
"currency": "Monnaie | Monnaies",
|
||||||
|
"currencies_list": "Liste des devises",
|
||||||
|
"select_currency": "Sélectionnez la devise",
|
||||||
|
"name": "Nom",
|
||||||
|
"code": "Code",
|
||||||
|
"symbol": "symbole",
|
||||||
|
"precision": "Précision",
|
||||||
|
"thousand_separator": "Mille séparateur",
|
||||||
|
"decimal_separator": "Séparateur décimal",
|
||||||
|
"position": "Position",
|
||||||
|
"position_of_symbol": "Position du symbole",
|
||||||
|
"right": "Droite",
|
||||||
|
"left": "La gauche",
|
||||||
|
"action": "action",
|
||||||
|
"add_currency": "Ajouter une devise"
|
||||||
|
},
|
||||||
|
"mail": {
|
||||||
|
"host": "Mail Host",
|
||||||
|
"port": "Port mail",
|
||||||
|
"driver": "Pilote de courrier",
|
||||||
|
"password": "Mot de passe mail",
|
||||||
|
"secret": "Secret",
|
||||||
|
"mailgun_secret": "Mailgun Secret",
|
||||||
|
"mailgun_domain": "Domaine",
|
||||||
|
"mailgun_endpoint": "Mailgun Point Final",
|
||||||
|
"ses_secret": "SES Secret",
|
||||||
|
"ses_key": "SES clé",
|
||||||
|
"from_name": "Nom de messagerie",
|
||||||
|
"from_mail": "De ladresse mail",
|
||||||
|
"username": "Mail Nom d'utilisateur",
|
||||||
|
"mail_config": "Configuration du courrier",
|
||||||
|
"encryption": "Chiffrement du courrier",
|
||||||
|
"mail_config_desc": "Les détails ci-dessous seront utilisés pour mettre à jour l'environnement de messagerie. Aussi, vous pouvez modifier les détails à tout moment après la connexion."
|
||||||
|
},
|
||||||
|
"pdf": {
|
||||||
|
"title": "Paramètre PDF",
|
||||||
|
"footer_text": "Pied de page texte",
|
||||||
|
"pdf_layout": "Mise en page PDF"
|
||||||
|
},
|
||||||
|
"company_info": {
|
||||||
|
"company_info": "Information dentreprise",
|
||||||
|
"company_name": "Nom de la compagnie",
|
||||||
|
"company_logo": "Logo dentreprise",
|
||||||
|
"section_description": "Informations sur votre entreprise qui figureront sur les factures, estimations et autres documents créés par Crater.",
|
||||||
|
"phone": "Téléphone",
|
||||||
|
"country": "Pays",
|
||||||
|
"state": "Etat",
|
||||||
|
"city": "Ville",
|
||||||
|
"address": "Adresse",
|
||||||
|
"zip": "Zip",
|
||||||
|
"save": "sauver",
|
||||||
|
"updated_message": "Informations sur la société mises à jour avec succès"
|
||||||
|
},
|
||||||
|
"account_settings": {
|
||||||
|
"profile_picture": "Image de profil",
|
||||||
|
"name": "Nom",
|
||||||
|
"email": "Email",
|
||||||
|
"password": "Mot de passe",
|
||||||
|
"confirm_password": "Confirmez le mot de passe",
|
||||||
|
"account_settings": "Paramètres du compte",
|
||||||
|
"save": "sauver",
|
||||||
|
"section_description": "Vous pouvez mettre à jour votre nom, votre email et votre mot de passe en utilisant le formulaire ci-dessous.",
|
||||||
|
"updated_message": "Paramètres du compte mis à jour avec succès"
|
||||||
|
},
|
||||||
|
"user_profile": {
|
||||||
|
"name": "Nom",
|
||||||
|
"email": "Email",
|
||||||
|
"password": "Mot de passe",
|
||||||
|
"confirm_password": "Confirmez le mot de passe"
|
||||||
|
},
|
||||||
|
"notification": {
|
||||||
|
"title": "Notification",
|
||||||
|
"email": "Envoyer des notifications à",
|
||||||
|
"description": "Quelles notifications par courrier électronique souhaitez-vous recevoir lorsque quelque chose change?",
|
||||||
|
"invoice_viewed": "Facture consultée",
|
||||||
|
"invoice_viewed_desc": "Lorsque votre client visualise la facture envoyée via le tableau de bord du cratère.",
|
||||||
|
"estimate_viewed": "Estimation vue",
|
||||||
|
"estimate_viewed_desc": "Lorsque votre client visualise le devis envoyé via le tableau de bord du cratère.",
|
||||||
|
"save": "sauver",
|
||||||
|
"email_save_message": "Email enregistré avec succès",
|
||||||
|
"invoice_viewed_message": "Facture consultée",
|
||||||
|
"estimate_viewed_message": "Estimation vue",
|
||||||
|
"please_enter_email": "S il vous plaît entrer email"
|
||||||
|
},
|
||||||
|
"tax_types": {
|
||||||
|
"title": "Types de taxe",
|
||||||
|
"add_tax": "Ajouter une taxe",
|
||||||
|
"description": "Vous pouvez ajouter ou supprimer des taxes à votre guise. Crater prend en charge les taxes sur les articles individuels ainsi que sur la facture.",
|
||||||
|
"add_new_tax": "Ajouter une nouvelle taxe",
|
||||||
|
"tax_settings": "Paramètres de taxe",
|
||||||
|
"tax_per_item": "Taxe par article",
|
||||||
|
"tax_name": "Nom de la taxe",
|
||||||
|
"compound_tax": "Taxe composée",
|
||||||
|
"percent": "Pour cent",
|
||||||
|
"action": "action",
|
||||||
|
"tax_setting_description": "Activez cette option si vous souhaitez ajouter des taxes à des postes de facture individuels. Par défaut, les taxes sont ajoutées directement à la facture.",
|
||||||
|
"created_message": "Type de taxe créé avec succès",
|
||||||
|
"updated_message": "Type de taxe mis à jour avec succès",
|
||||||
|
"deleted_message": "Type de taxe supprimé avec succès",
|
||||||
|
"confirm_delete": "Vous ne pourrez pas récupérer ce type de taxe",
|
||||||
|
"already_in_use": "La taxe est déjà utilisée"
|
||||||
|
},
|
||||||
|
"expense_category": {
|
||||||
|
"title": "Catégories de dépenses",
|
||||||
|
"action": "action",
|
||||||
|
"description": "Des catégories sont requises pour ajouter des entrées de dépenses. Vous pouvez ajouter ou supprimer ces catégories selon vos préférences.",
|
||||||
|
"add_new_category": "Ajouter une nouvelle catégorie",
|
||||||
|
"category_name": "Nom de catégorie",
|
||||||
|
"category_description": "La description",
|
||||||
|
"created_message": "Catégorie de dépenses créée avec succès",
|
||||||
|
"deleted_message": "La catégorie de dépenses a été supprimée avec succès",
|
||||||
|
"updated_message": "Catégorie de dépenses mise à jour avec succès",
|
||||||
|
"confirm_delete": "Vous ne pourrez pas récupérer cette catégorie de dépenses",
|
||||||
|
"already_in_use": "La catégorie est déjà utilisée"
|
||||||
|
},
|
||||||
|
"preferences": {
|
||||||
|
"currency": "Devise",
|
||||||
|
"language": "La langue",
|
||||||
|
"time_zone": "Fuseau horaire",
|
||||||
|
"fiscal_year": "Année financière",
|
||||||
|
"date_format": "Format de date",
|
||||||
|
"discount_setting": "Réglage de remise",
|
||||||
|
"discount_per_item": "Remise par article",
|
||||||
|
"discount_setting_description": "Activez cette option si vous souhaitez ajouter une remise à des postes de facture individuels. Par défaut, les remises sont ajoutées directement à la facture.",
|
||||||
|
"save": "sauver",
|
||||||
|
"preference": "Préférence | Préférences",
|
||||||
|
"general_settings": "Préférences par défaut pour le système.",
|
||||||
|
"updated_message": "Préférences mises à jour avec succès",
|
||||||
|
"set_discount_per_item_message": "Jeu de remise par article",
|
||||||
|
"select_language": "Choisir la langue",
|
||||||
|
"select_time_zone": "sélectionnez le fuseau horaire",
|
||||||
|
"select_date_formate": "sélectionnez Date Formate",
|
||||||
|
"select_financial_year": "sélectionner lexercice"
|
||||||
|
},
|
||||||
|
"update_app": {
|
||||||
|
"title": "Mise à jour de l'application",
|
||||||
|
"description": "mettre à jour la description de l'application",
|
||||||
|
"check_update": "Vérifier les mises à jour",
|
||||||
|
"avail_update": "Nouvelle mise à jour disponible",
|
||||||
|
"next_version": "Version suivante",
|
||||||
|
"update": "Mettre à jour maintenant",
|
||||||
|
"update_progress": "Mise à jour en cours...",
|
||||||
|
"progress_text": "Cela ne prendra que quelques minutes. S'il vous plaît ne pas actualiser l'écran ou fermer la fenêtre avant la fin de la mise à jour",
|
||||||
|
"update_success": "App a été mis à jour! Veuillez patienter pendant le rechargement automatique de la fenêtre de votre navigateur.",
|
||||||
|
"latest_message": "Pas de mise a jour disponible! Vous êtes sur la dernière version.",
|
||||||
|
"current_version": "Version actuelle"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"wizard": {
|
||||||
|
"account_info": "Information sur le compte",
|
||||||
|
"account_info_desc": "Les détails ci-dessous seront utilisés pour créer le compte administrateur principal. Aussi, vous pouvez modifier les détails à tout moment après la connexion.",
|
||||||
|
"name": "Nom",
|
||||||
|
"email": "Email",
|
||||||
|
"password": "Mot de passe",
|
||||||
|
"confirm_password": "Confirmez le mot de passe",
|
||||||
|
"save_cont": "Enregistrer continuer",
|
||||||
|
"company_info": "Informations sur la société",
|
||||||
|
"company_info_desc": "Ces informations seront affichées sur les factures. Notez que vous pouvez éditer ceci plus tard sur la page des paramètres.",
|
||||||
|
"company_name": "Nom de la compagnie",
|
||||||
|
"company_logo": "Logo dentreprise",
|
||||||
|
"logo_preview": "Aperçu du logo",
|
||||||
|
"preferences": "Préférences",
|
||||||
|
"preferences_desc": "Préférences par défaut pour le système.",
|
||||||
|
"country": "Pays",
|
||||||
|
"state": "Etat",
|
||||||
|
"city": "Ville",
|
||||||
|
"address": "Adresse",
|
||||||
|
"street": "Rue 1 | Rue 2",
|
||||||
|
"phone": "Téléphone",
|
||||||
|
"zip_code": "Code postal",
|
||||||
|
"go_back": "Retourner",
|
||||||
|
"currency": "Devise",
|
||||||
|
"language": "La langue",
|
||||||
|
"time_zone": "Fuseau horaire",
|
||||||
|
"fiscal_year": "Année financière",
|
||||||
|
"date_format": "Format de date",
|
||||||
|
"from_address": "De l'adresse",
|
||||||
|
"username": "Nom d'utilisateur",
|
||||||
|
"next": "Suivant",
|
||||||
|
"continue": "Continuer",
|
||||||
|
"database": {
|
||||||
|
"database": "URL du site et base de données",
|
||||||
|
"connection": "Connexion à la base de données",
|
||||||
|
"host": "Hôte de base de données",
|
||||||
|
"port": "Port de base de données",
|
||||||
|
"password": "Mot de passe de base de données",
|
||||||
|
"app_url": "Application URL",
|
||||||
|
"username": "Nom d'utilisateur de la base de données",
|
||||||
|
"db_name": "Nom de la base de données",
|
||||||
|
"desc": "Créez une base de données sur votre serveur et définissez les informations d'identification à l'aide du formulaire ci-dessous."
|
||||||
|
},
|
||||||
|
"permissions": {
|
||||||
|
"permissions": "Les permissions",
|
||||||
|
"permission_confirm_title": "Es-tu sur de vouloir continuer?",
|
||||||
|
"permission_confirm_desc": "La vérification de l\"autorisation du dossier a échoué",
|
||||||
|
"permission_desc": "Vous trouverez ci-dessous la liste des autorisations de dossier requises pour le fonctionnement de l'application. Si la vérification des autorisations échoue, veillez à mettre à jour vos autorisations de dossier."
|
||||||
|
},
|
||||||
|
"mail": {
|
||||||
|
"host": "Mail Host",
|
||||||
|
"port": "Port mail",
|
||||||
|
"driver": "Pilote de courrier",
|
||||||
|
"password": "Mot de passe mail",
|
||||||
|
"secret": "Secret",
|
||||||
|
"mailgun_secret": "Mailgun Secret",
|
||||||
|
"mailgun_domain": "Domaine",
|
||||||
|
"mailgun_endpoint": "Mailgun Point Final",
|
||||||
|
"ses_secret": "SES Secret",
|
||||||
|
"ses_key": "SES clé",
|
||||||
|
"from_name": "Nom de messagerie",
|
||||||
|
"from_mail": "De ladresse mail",
|
||||||
|
"username": "Mail Nom d'utilisateur",
|
||||||
|
"mail_config": "Configuration du courrier",
|
||||||
|
"encryption": "Chiffrement du courrier",
|
||||||
|
"mail_config_desc": "Les détails ci-dessous seront utilisés pour mettre à jour l'environnement de messagerie. Aussi, vous pouvez modifier les détails à tout moment après la connexion."
|
||||||
|
},
|
||||||
|
"req": {
|
||||||
|
"system_req": "Configuration requise",
|
||||||
|
"php_req_version": "Php (version {version} nécessaire)",
|
||||||
|
"check_req": "Vérifier les exigences",
|
||||||
|
"system_req_desc": "Crater a quelques exigences de serveur. Assurez-vous que votre serveur dispose de la version PHP requise et de toutes les extensions mentionnées ci-dessous."
|
||||||
|
},
|
||||||
|
"errors": {
|
||||||
|
"migrate_failed": "Migration impossible",
|
||||||
|
"database_variables_save_error": "Impossible de se connecter à la base de données avec les valeurs fournies.",
|
||||||
|
"mail_variables_save_error": "La configuration du courrier électronique a échoué.",
|
||||||
|
"connection_failed": "La connexion à la base de données a échoué"
|
||||||
|
},
|
||||||
|
"success": {
|
||||||
|
"mail_variables_save_successfully": "Email configuré avec succès",
|
||||||
|
"database_variables_save_successfully": "Base de données configurée avec succès."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"layout_login": {
|
||||||
|
"copyright_crater": "Copyright @ Crater - 2019",
|
||||||
|
"super_simple_invoicing": "Super Simple Facturation",
|
||||||
|
"for_freelancer": "pour les pigistes et",
|
||||||
|
"small_businesses": "Petites entreprises ",
|
||||||
|
"crater_help": "Crater vous aide à suivre vos dépenses, à enregistrer vos paiements et à générer de belles",
|
||||||
|
"invoices_and_estimates": "factures et devis avec possibilité de choisir plusieurs modèles."
|
||||||
|
|
||||||
|
},
|
||||||
|
"validation": {
|
||||||
|
"invalid_url": "URL invalide (ex: http://www.crater.com)",
|
||||||
|
"required": "Champ requis",
|
||||||
|
"email_incorrect": "Adresse Email incorrecte.",
|
||||||
|
"email_does_not_exist": "L'utilisateur avec un email donné n'existe pas",
|
||||||
|
"send_reset_link": "Envoyer le lien de réinitialisation",
|
||||||
|
"not_yet": "Pas encore? Envoyer à nouveau",
|
||||||
|
"password_min_length": "Le mot de passe doit contenir {nombre} caractères",
|
||||||
|
"name_min_length": "Le nom doit avoir au moins {count} lettres.",
|
||||||
|
"enter_valid_tax_rate": "Entrez un taux de taxe valide",
|
||||||
|
"numbers_only": "Chiffres uniquement.",
|
||||||
|
"characters_only": "Caractères seulement.",
|
||||||
|
"password_incorrect": "Les mots de passe doivent être identiques",
|
||||||
|
"password_length": "Le mot de passe doit comporter 5 caractères.",
|
||||||
|
"qty_must_greater_than_zero": "La quantité doit être supérieure à zéro.",
|
||||||
|
"price_greater_than_zero": "Le prix doit être supérieur à zéro.",
|
||||||
|
"payment_greater_than_zero": "Le paiement doit être supérieur à zéro.",
|
||||||
|
"payment_greater_than_due_amount": "Le paiement entré est plus que le montant dû de cette facture.",
|
||||||
|
"quantity_maxlength": "La quantité ne doit pas dépasser 20 chiffres.",
|
||||||
|
"price_maxlength": "Le prix ne doit pas dépasser 20 chiffres.",
|
||||||
|
"price_minvalue": "Le prix doit être supérieur à 0 chiffre",
|
||||||
|
"amount_maxlength": "Le montant ne doit pas dépasser 20 chiffres.",
|
||||||
|
"amount_minvalue": "Le montant doit être supérieur à 0 chiffre",
|
||||||
|
"description_maxlength": "La description ne doit pas dépasser 255 caractères.",
|
||||||
|
"maximum_options_error": "Maximum de {max} options sélectionnées. Commencez par supprimer une option sélectionnée pour en sélectionner une autre.",
|
||||||
|
"notes_maxlength": "Les notes ne doivent pas dépasser 255 caractères.",
|
||||||
|
"address_maxlength": "L'adresse ne doit pas dépasser 255 caractères.",
|
||||||
|
"ref_number_maxlength": "Le numéro de référence ne doit pas dépasser 255 caractères."
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -1,8 +1,8 @@
|
|||||||
import Vue from 'vue'
|
import Vue from 'vue'
|
||||||
import VueI18n from 'vue-i18n'
|
import VueI18n from 'vue-i18n'
|
||||||
import en from './en'
|
import en from './en.json'
|
||||||
import fr from './fr'
|
import fr from './fr.json'
|
||||||
import es from './es'
|
import es from './es.json'
|
||||||
|
|
||||||
Vue.use(VueI18n)
|
Vue.use(VueI18n)
|
||||||
|
|
||||||
|
|||||||
@ -3,8 +3,8 @@ export default {
|
|||||||
phone: null,
|
phone: null,
|
||||||
address_street_1: null,
|
address_street_1: null,
|
||||||
address_street_2: null,
|
address_street_2: null,
|
||||||
city_id: null,
|
city: null,
|
||||||
state_id: null,
|
state: null,
|
||||||
country_id: null,
|
country_id: null,
|
||||||
zip: null,
|
zip: null,
|
||||||
type: null
|
type: null
|
||||||
|
|||||||
@ -119,16 +119,10 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="form-label">{{ $t('customers.state') }}</label>
|
<label class="form-label">{{ $t('customers.state') }}</label>
|
||||||
<base-select
|
<base-input
|
||||||
v-model="billing_state"
|
v-model="billing.state"
|
||||||
:options="billingStates"
|
name="billing.state"
|
||||||
:searchable="true"
|
type="text"
|
||||||
:show-labels="false"
|
|
||||||
:tabindex="9"
|
|
||||||
:disabled="isDisabledBillingState"
|
|
||||||
:placeholder="$t('general.select_state')"
|
|
||||||
label="name"
|
|
||||||
track-by="id"
|
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
@ -176,16 +170,10 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="form-label">{{ $t('customers.city') }}</label>
|
<label class="form-label">{{ $t('customers.city') }}</label>
|
||||||
<base-select
|
<base-input
|
||||||
v-model="billing_city"
|
v-model="billing.city"
|
||||||
:options="billingCities"
|
name="billing.city"
|
||||||
:searchable="true"
|
type="text"
|
||||||
:show-labels="false"
|
|
||||||
:disabled="isDisabledBillingCity"
|
|
||||||
:tabindex="10"
|
|
||||||
:placeholder="$t('general.select_city')"
|
|
||||||
label="name"
|
|
||||||
track-by="id"
|
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
@ -233,16 +221,10 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="form-label">{{ $t('customers.state') }}</label>
|
<label class="form-label">{{ $t('customers.state') }}</label>
|
||||||
<base-select
|
<base-input
|
||||||
v-model="shipping_state"
|
v-model="shipping.state"
|
||||||
:options="shippingStates"
|
name="shipping.state"
|
||||||
:searchable="true"
|
type="text"
|
||||||
:show-labels="false"
|
|
||||||
:tabindex="17"
|
|
||||||
:disabled="isDisabledShippingState"
|
|
||||||
:placeholder="$t('general.select_state')"
|
|
||||||
label="name"
|
|
||||||
track-by="id"
|
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
@ -290,16 +272,10 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="form-label">{{ $t('customers.city') }}</label>
|
<label class="form-label">{{ $t('customers.city') }}</label>
|
||||||
<base-select
|
<base-input
|
||||||
v-model="shipping_city"
|
v-model="shipping.city"
|
||||||
:options="shippingCities"
|
name="shipping.city"
|
||||||
:searchable="true"
|
type="text"
|
||||||
:show-labels="false"
|
|
||||||
:tabindex="18"
|
|
||||||
:disabled="isDisabledShippingCity"
|
|
||||||
:placeholder="$t('general.select_city')"
|
|
||||||
label="name"
|
|
||||||
track-by="id"
|
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
@ -344,7 +320,7 @@ import { mapActions, mapGetters } from 'vuex'
|
|||||||
import MultiSelect from 'vue-multiselect'
|
import MultiSelect from 'vue-multiselect'
|
||||||
import { validationMixin } from 'vuelidate'
|
import { validationMixin } from 'vuelidate'
|
||||||
import AddressStub from '../../stub/address'
|
import AddressStub from '../../stub/address'
|
||||||
const { required, minLength, email, numeric, url, maxLength } = require('vuelidate/lib/validators')
|
const { required, minLength, email, url, maxLength } = require('vuelidate/lib/validators')
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: { MultiSelect },
|
components: { MultiSelect },
|
||||||
@ -366,8 +342,8 @@ export default {
|
|||||||
billing: {
|
billing: {
|
||||||
name: null,
|
name: null,
|
||||||
country_id: null,
|
country_id: null,
|
||||||
state_id: null,
|
state: null,
|
||||||
city_id: null,
|
city: null,
|
||||||
phone: null,
|
phone: null,
|
||||||
zip: null,
|
zip: null,
|
||||||
address_street_1: null,
|
address_street_1: null,
|
||||||
@ -377,8 +353,8 @@ export default {
|
|||||||
shipping: {
|
shipping: {
|
||||||
name: null,
|
name: null,
|
||||||
country_id: null,
|
country_id: null,
|
||||||
state_id: null,
|
state: null,
|
||||||
city_id: null,
|
city: null,
|
||||||
phone: null,
|
phone: null,
|
||||||
zip: null,
|
zip: null,
|
||||||
address_street_1: null,
|
address_street_1: null,
|
||||||
@ -386,26 +362,12 @@ export default {
|
|||||||
type: 'shipping'
|
type: 'shipping'
|
||||||
},
|
},
|
||||||
currencyList: [],
|
currencyList: [],
|
||||||
isDisabledBillingState: true,
|
|
||||||
isDisabledBillingCity: true,
|
|
||||||
isDisabledShippingState: true,
|
|
||||||
isDisabledShippingCity: true,
|
|
||||||
|
|
||||||
billing_country: null,
|
billing_country: null,
|
||||||
billing_city: null,
|
|
||||||
billing_state: null,
|
|
||||||
|
|
||||||
shipping_country: null,
|
shipping_country: null,
|
||||||
shipping_city: null,
|
|
||||||
shipping_state: null,
|
|
||||||
|
|
||||||
billingCountries: [],
|
billingCountries: [],
|
||||||
billingStates: [],
|
shippingCountries: []
|
||||||
billingCities: [],
|
|
||||||
|
|
||||||
shippingCountries: [],
|
|
||||||
shippingStates: [],
|
|
||||||
shippingCities: []
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
validations: {
|
validations: {
|
||||||
@ -455,61 +417,13 @@ export default {
|
|||||||
if (newCountry) {
|
if (newCountry) {
|
||||||
this.billing.country_id = newCountry.id
|
this.billing.country_id = newCountry.id
|
||||||
this.isDisabledBillingState = false
|
this.isDisabledBillingState = false
|
||||||
this.billing_state = null
|
|
||||||
this.billing_city = null
|
|
||||||
this.fetchBillingState()
|
|
||||||
}
|
|
||||||
},
|
|
||||||
billing_state (newState) {
|
|
||||||
if (newState) {
|
|
||||||
this.billing.state_id = newState.id
|
|
||||||
this.isDisabledBillingCity = false
|
|
||||||
this.billing_city = null
|
|
||||||
this.fetchBillingCities()
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
this.billing_city = null
|
|
||||||
this.isDisabledBillingCity = true
|
|
||||||
return true
|
|
||||||
},
|
|
||||||
billing_city (newCity) {
|
|
||||||
if (newCity) {
|
|
||||||
this.billing.city_id = newCity.id
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
shipping_country (newCountry) {
|
shipping_country (newCountry) {
|
||||||
if (newCountry) {
|
if (newCountry) {
|
||||||
this.shipping.country_id = newCountry.id
|
this.shipping.country_id = newCountry.id
|
||||||
this.isDisabledShippingState = false
|
|
||||||
this.fetchShippingState()
|
|
||||||
if (this.isCopyFromBilling) {
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
this.shipping_state = null
|
|
||||||
this.shipping_city = null
|
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
},
|
|
||||||
shipping_state (newState) {
|
|
||||||
if (newState) {
|
|
||||||
this.shipping.state_id = newState.id
|
|
||||||
this.isDisabledShippingCity = false
|
|
||||||
this.fetchShippingCities()
|
|
||||||
if (this.isCopyFromBilling) {
|
|
||||||
this.isCopyFromBilling = false
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
this.shipping_city = null
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
this.shipping_city = null
|
|
||||||
this.isDisabledShippingCity = true
|
|
||||||
return true
|
|
||||||
},
|
|
||||||
shipping_city (newCity) {
|
|
||||||
if (newCity) {
|
|
||||||
this.shipping.city_id = newCity.id
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted () {
|
mounted () {
|
||||||
@ -624,42 +538,6 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
|
||||||
async fetchBillingState () {
|
|
||||||
let res = await window.axios.get(`/api/states/${this.billing_country.id}`)
|
|
||||||
if (res) {
|
|
||||||
this.billingStates = res.data.states
|
|
||||||
}
|
|
||||||
if (this.isEdit) {
|
|
||||||
this.billing_state = this.billingStates.find((state) => state.id === this.billing.state_id)
|
|
||||||
}
|
|
||||||
},
|
|
||||||
async fetchBillingCities () {
|
|
||||||
let res = await window.axios.get(`/api/cities/${this.billing_state.id}`)
|
|
||||||
if (res) {
|
|
||||||
this.billingCities = res.data.cities
|
|
||||||
}
|
|
||||||
if (this.isEdit) {
|
|
||||||
this.billing_city = this.billingCities.find((city) => city.id === this.billing.city_id)
|
|
||||||
}
|
|
||||||
},
|
|
||||||
async fetchShippingState () {
|
|
||||||
let res = await window.axios.get(`/api/states/${this.shipping_country.id}`)
|
|
||||||
if (res) {
|
|
||||||
this.shippingStates = res.data.states
|
|
||||||
}
|
|
||||||
if (this.isEdit) {
|
|
||||||
this.shipping_state = this.shippingStates.find((s) => s.id === this.shipping.state_id)
|
|
||||||
}
|
|
||||||
},
|
|
||||||
async fetchShippingCities () {
|
|
||||||
let res = await window.axios.get(`/api/cities/${this.shipping_state.id}`)
|
|
||||||
if (res) {
|
|
||||||
this.shippingCities = res.data.cities
|
|
||||||
}
|
|
||||||
if (this.isEdit) {
|
|
||||||
this.shipping_city = this.shippingCities.find((c) => c.id === this.shipping.city_id)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -46,7 +46,7 @@
|
|||||||
{{ selectedCustomer.billing_address.address_street_2 }}
|
{{ selectedCustomer.billing_address.address_street_2 }}
|
||||||
</label>
|
</label>
|
||||||
<label v-if="selectedCustomer.billing_address.city && selectedCustomer.billing_address.state">
|
<label v-if="selectedCustomer.billing_address.city && selectedCustomer.billing_address.state">
|
||||||
{{ selectedCustomer.billing_address.city.name }}, {{ selectedCustomer.billing_address.state.name }} {{ selectedCustomer.billing_address.zip }}
|
{{ selectedCustomer.billing_address.city }}, {{ selectedCustomer.billing_address.state }} {{ selectedCustomer.billing_address.zip }}
|
||||||
</label>
|
</label>
|
||||||
<label v-if="selectedCustomer.billing_address.country">
|
<label v-if="selectedCustomer.billing_address.country">
|
||||||
{{ selectedCustomer.billing_address.country.name }}
|
{{ selectedCustomer.billing_address.country.name }}
|
||||||
@ -71,7 +71,7 @@
|
|||||||
{{ selectedCustomer.shipping_address.address_street_2 }}
|
{{ selectedCustomer.shipping_address.address_street_2 }}
|
||||||
</label>
|
</label>
|
||||||
<label v-if="selectedCustomer.shipping_address.city && selectedCustomer.shipping_address">
|
<label v-if="selectedCustomer.shipping_address.city && selectedCustomer.shipping_address">
|
||||||
{{ selectedCustomer.shipping_address.city.name }}, {{ selectedCustomer.shipping_address.state.name }} {{ selectedCustomer.shipping_address.zip }}
|
{{ selectedCustomer.shipping_address.city }}, {{ selectedCustomer.shipping_address.state }} {{ selectedCustomer.shipping_address.zip }}
|
||||||
</label>
|
</label>
|
||||||
<label v-if="selectedCustomer.shipping_address.country" class="country">
|
<label v-if="selectedCustomer.shipping_address.country" class="country">
|
||||||
{{ selectedCustomer.shipping_address.country.name }}
|
{{ selectedCustomer.shipping_address.country.name }}
|
||||||
|
|||||||
@ -36,7 +36,7 @@
|
|||||||
<base-input
|
<base-input
|
||||||
v-model="item.quantity"
|
v-model="item.quantity"
|
||||||
:invalid="$v.item.quantity.$error"
|
:invalid="$v.item.quantity.$error"
|
||||||
type="number"
|
type="text"
|
||||||
small
|
small
|
||||||
@keyup="updateItem"
|
@keyup="updateItem"
|
||||||
@input="$v.item.quantity.$touch()"
|
@input="$v.item.quantity.$touch()"
|
||||||
|
|||||||
@ -151,6 +151,7 @@ export default {
|
|||||||
id: null,
|
id: null,
|
||||||
count: null,
|
count: null,
|
||||||
estimates: [],
|
estimates: [],
|
||||||
|
estimate: null,
|
||||||
currency: null,
|
currency: null,
|
||||||
searchData: {
|
searchData: {
|
||||||
orderBy: null,
|
orderBy: null,
|
||||||
@ -165,10 +166,6 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
estimate () {
|
|
||||||
return this.$store.getters['estimate/getEstimate'](this.$route.params.id)
|
|
||||||
},
|
|
||||||
|
|
||||||
getOrderBy () {
|
getOrderBy () {
|
||||||
if (this.searchData.orderBy === 'asc' || this.searchData.orderBy == null) {
|
if (this.searchData.orderBy === 'asc' || this.searchData.orderBy == null) {
|
||||||
return true
|
return true
|
||||||
@ -180,8 +177,14 @@ export default {
|
|||||||
return `/estimates/pdf/${this.estimate.unique_hash}`
|
return `/estimates/pdf/${this.estimate.unique_hash}`
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
watch: {
|
||||||
|
$route (to, from) {
|
||||||
|
this.loadEstimate()
|
||||||
|
}
|
||||||
|
},
|
||||||
created () {
|
created () {
|
||||||
this.loadEstimates()
|
this.loadEstimates()
|
||||||
|
this.loadEstimate()
|
||||||
this.onSearched = _.debounce(this.onSearched, 500)
|
this.onSearched = _.debounce(this.onSearched, 500)
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
@ -192,7 +195,8 @@ export default {
|
|||||||
'markAsSent',
|
'markAsSent',
|
||||||
'sendEmail',
|
'sendEmail',
|
||||||
'deleteEstimate',
|
'deleteEstimate',
|
||||||
'selectEstimate'
|
'selectEstimate',
|
||||||
|
'fetchViewEstimate'
|
||||||
]),
|
]),
|
||||||
async loadEstimates () {
|
async loadEstimates () {
|
||||||
let response = await this.fetchEstimates()
|
let response = await this.fetchEstimates()
|
||||||
@ -200,6 +204,13 @@ export default {
|
|||||||
this.estimates = response.data.estimates.data
|
this.estimates = response.data.estimates.data
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
async loadEstimate () {
|
||||||
|
let response = await this.fetchViewEstimate(this.$route.params.id)
|
||||||
|
|
||||||
|
if (response.data) {
|
||||||
|
this.estimate = response.data.estimate
|
||||||
|
}
|
||||||
|
},
|
||||||
async onSearched () {
|
async onSearched () {
|
||||||
let data = ''
|
let data = ''
|
||||||
if (this.searchData.searchText !== '' && this.searchData.searchText !== null && this.searchData.searchText !== undefined) {
|
if (this.searchData.searchText !== '' && this.searchData.searchText !== null && this.searchData.searchText !== undefined) {
|
||||||
|
|||||||
@ -44,7 +44,7 @@
|
|||||||
{{ selectedCustomer.billing_address.address_street_2 }}
|
{{ selectedCustomer.billing_address.address_street_2 }}
|
||||||
</label>
|
</label>
|
||||||
<label v-if="selectedCustomer.billing_address.city && selectedCustomer.billing_address.state">
|
<label v-if="selectedCustomer.billing_address.city && selectedCustomer.billing_address.state">
|
||||||
{{ selectedCustomer.billing_address.city.name }}, {{ selectedCustomer.billing_address.state.name }} {{ selectedCustomer.billing_address.zip }}
|
{{ selectedCustomer.billing_address.city }}, {{ selectedCustomer.billing_address.state }} {{ selectedCustomer.billing_address.zip }}
|
||||||
</label>
|
</label>
|
||||||
<label v-if="selectedCustomer.billing_address.country">
|
<label v-if="selectedCustomer.billing_address.country">
|
||||||
{{ selectedCustomer.billing_address.country.name }}
|
{{ selectedCustomer.billing_address.country.name }}
|
||||||
@ -69,7 +69,7 @@
|
|||||||
{{ selectedCustomer.shipping_address.address_street_2 }}
|
{{ selectedCustomer.shipping_address.address_street_2 }}
|
||||||
</label>
|
</label>
|
||||||
<label v-if="selectedCustomer.shipping_address.city && selectedCustomer.shipping_address">
|
<label v-if="selectedCustomer.shipping_address.city && selectedCustomer.shipping_address">
|
||||||
{{ selectedCustomer.shipping_address.city.name }}, {{ selectedCustomer.shipping_address.state.name }} {{ selectedCustomer.shipping_address.zip }}
|
{{ selectedCustomer.shipping_address.city }}, {{ selectedCustomer.shipping_address.state }} {{ selectedCustomer.shipping_address.zip }}
|
||||||
</label>
|
</label>
|
||||||
<label v-if="selectedCustomer.shipping_address.country" class="country">
|
<label v-if="selectedCustomer.shipping_address.country" class="country">
|
||||||
{{ selectedCustomer.shipping_address.country.name }}
|
{{ selectedCustomer.shipping_address.country.name }}
|
||||||
|
|||||||
@ -36,7 +36,7 @@
|
|||||||
<base-input
|
<base-input
|
||||||
v-model="item.quantity"
|
v-model="item.quantity"
|
||||||
:invalid="$v.item.quantity.$error"
|
:invalid="$v.item.quantity.$error"
|
||||||
type="number"
|
type="text"
|
||||||
small
|
small
|
||||||
@keyup="updateItem"
|
@keyup="updateItem"
|
||||||
@input="$v.item.quantity.$touch()"
|
@input="$v.item.quantity.$touch()"
|
||||||
|
|||||||
@ -154,6 +154,7 @@ export default {
|
|||||||
id: null,
|
id: null,
|
||||||
count: null,
|
count: null,
|
||||||
invoices: [],
|
invoices: [],
|
||||||
|
invoice: null,
|
||||||
currency: null,
|
currency: null,
|
||||||
searchData: {
|
searchData: {
|
||||||
orderBy: null,
|
orderBy: null,
|
||||||
@ -167,9 +168,7 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
invoice () {
|
|
||||||
return this.$store.getters['invoice/getInvoice'](this.$route.params.id)
|
|
||||||
},
|
|
||||||
getOrderBy () {
|
getOrderBy () {
|
||||||
if (this.searchData.orderBy === 'asc' || this.searchData.orderBy == null) {
|
if (this.searchData.orderBy === 'asc' || this.searchData.orderBy == null) {
|
||||||
return true
|
return true
|
||||||
@ -180,8 +179,14 @@ export default {
|
|||||||
return `/invoices/pdf/${this.invoice.unique_hash}`
|
return `/invoices/pdf/${this.invoice.unique_hash}`
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
watch: {
|
||||||
|
$route (to, from) {
|
||||||
|
this.loadInvoice()
|
||||||
|
}
|
||||||
|
},
|
||||||
created () {
|
created () {
|
||||||
this.loadInvoices()
|
this.loadInvoices()
|
||||||
|
this.loadInvoice()
|
||||||
this.onSearch = _.debounce(this.onSearch, 500)
|
this.onSearch = _.debounce(this.onSearch, 500)
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
@ -192,7 +197,8 @@ export default {
|
|||||||
'markAsSent',
|
'markAsSent',
|
||||||
'sendEmail',
|
'sendEmail',
|
||||||
'deleteInvoice',
|
'deleteInvoice',
|
||||||
'selectInvoice'
|
'selectInvoice',
|
||||||
|
'fetchViewInvoice'
|
||||||
]),
|
]),
|
||||||
async loadInvoices () {
|
async loadInvoices () {
|
||||||
let response = await this.fetchInvoices()
|
let response = await this.fetchInvoices()
|
||||||
@ -200,6 +206,13 @@ export default {
|
|||||||
this.invoices = response.data.invoices.data
|
this.invoices = response.data.invoices.data
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
async loadInvoice () {
|
||||||
|
let response = await this.fetchViewInvoice(this.$route.params.id)
|
||||||
|
|
||||||
|
if (response.data) {
|
||||||
|
this.invoice = response.data.invoice
|
||||||
|
}
|
||||||
|
},
|
||||||
async onSearch () {
|
async onSearch () {
|
||||||
let data = ''
|
let data = ''
|
||||||
if (this.searchData.searchText !== '' && this.searchData.searchText !== null && this.searchData.searchText !== undefined) {
|
if (this.searchData.searchText !== '' && this.searchData.searchText !== null && this.searchData.searchText !== undefined) {
|
||||||
@ -286,7 +299,7 @@ export default {
|
|||||||
let request = await this.deleteInvoice(this.id)
|
let request = await this.deleteInvoice(this.id)
|
||||||
if (request.data.success) {
|
if (request.data.success) {
|
||||||
window.toastr['success'](this.$tc('invoices.deleted_message', 1))
|
window.toastr['success'](this.$tc('invoices.deleted_message', 1))
|
||||||
this.$router.push('/admin/invoices/')
|
this.$router.push('/admin/invoices')
|
||||||
} else if (request.data.error) {
|
} else if (request.data.error) {
|
||||||
window.toastr['error'](request.data.message)
|
window.toastr['error'](request.data.message)
|
||||||
}
|
}
|
||||||
|
|||||||
@ -183,7 +183,8 @@ export default {
|
|||||||
customerList: [],
|
customerList: [],
|
||||||
invoiceList: [],
|
invoiceList: [],
|
||||||
isLoading: false,
|
isLoading: false,
|
||||||
maxPayableAmount: Number.MAX_SAFE_INTEGER
|
maxPayableAmount: Number.MAX_SAFE_INTEGER,
|
||||||
|
isSettingInitialData: true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
validations () {
|
validations () {
|
||||||
@ -247,7 +248,12 @@ export default {
|
|||||||
customer (newValue) {
|
customer (newValue) {
|
||||||
this.formData.user_id = newValue.id
|
this.formData.user_id = newValue.id
|
||||||
if (!this.isEdit) {
|
if (!this.isEdit) {
|
||||||
this.invoice = null
|
if (this.isSettingInitialData) {
|
||||||
|
this.isSettingInitialData = false
|
||||||
|
} else {
|
||||||
|
this.invoice = null
|
||||||
|
this.formData.invoice_id = null
|
||||||
|
}
|
||||||
this.formData.amount = 0
|
this.formData.amount = 0
|
||||||
this.invoiceList = []
|
this.invoiceList = []
|
||||||
this.fetchCustomerInvoices(newValue.id)
|
this.fetchCustomerInvoices(newValue.id)
|
||||||
|
|||||||
@ -72,37 +72,22 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="col-md-6 mb-4">
|
<div class="col-md-6 mb-4">
|
||||||
<label class="input-label">{{ $tc('settings.company_info.state') }}</label>
|
<label class="input-label">{{ $tc('settings.company_info.state') }}</label>
|
||||||
<base-select
|
<base-input
|
||||||
v-model="state"
|
v-model="formData.state"
|
||||||
:options="states"
|
:placeholder="$tc('settings.company_info.state')"
|
||||||
:searchable="true"
|
name="state"
|
||||||
:disabled="isDisabledState"
|
type="text"
|
||||||
:show-labels="false"
|
|
||||||
:placeholder="$t('general.select_state')"
|
|
||||||
label="name"
|
|
||||||
track-by="id"
|
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-6 mb-4">
|
<div class="col-md-6 mb-4">
|
||||||
<label class="input-label">{{ $tc('settings.company_info.city') }}</label>
|
<label class="input-label">{{ $tc('settings.company_info.city') }}</label>
|
||||||
<base-select
|
<base-input
|
||||||
v-model="city"
|
v-model="formData.city"
|
||||||
:options="cities"
|
:placeholder="$tc('settings.company_info.city')"
|
||||||
:searchable="true"
|
name="city"
|
||||||
:show-labels="false"
|
type="text"
|
||||||
:disabled="isDisabledCity"
|
|
||||||
:placeholder="$t('general.select_city')"
|
|
||||||
label="name"
|
|
||||||
track-by="id"
|
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<!-- <div class="col-md-6 mb-3">
|
|
||||||
<label class="input-label">Website</label>
|
|
||||||
<base-input
|
|
||||||
v-model="formData.website"
|
|
||||||
placeholder="Website"
|
|
||||||
/>
|
|
||||||
</div> -->
|
|
||||||
<div class="col-md-6 mb-4">
|
<div class="col-md-6 mb-4">
|
||||||
<label class="input-label">{{ $tc('settings.company_info.zip') }}</label>
|
<label class="input-label">{{ $tc('settings.company_info.zip') }}</label>
|
||||||
<base-input
|
<base-input
|
||||||
@ -157,7 +142,7 @@ import ImageBox from '../components/ImageBox.vue'
|
|||||||
import AvatarCropper from 'vue-avatar-cropper'
|
import AvatarCropper from 'vue-avatar-cropper'
|
||||||
import { validationMixin } from 'vuelidate'
|
import { validationMixin } from 'vuelidate'
|
||||||
import { mapActions } from 'vuex'
|
import { mapActions } from 'vuex'
|
||||||
const { required, email, numeric, maxLength } = require('vuelidate/lib/validators')
|
const { required, email, maxLength } = require('vuelidate/lib/validators')
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: { AvatarCropper, IconUpload, ImageBox },
|
components: { AvatarCropper, IconUpload, ImageBox },
|
||||||
@ -184,20 +169,14 @@ export default {
|
|||||||
address_street_2: '',
|
address_street_2: '',
|
||||||
website: '',
|
website: '',
|
||||||
country_id: null,
|
country_id: null,
|
||||||
state_id: '',
|
state: '',
|
||||||
city_id: ''
|
city: ''
|
||||||
},
|
},
|
||||||
isLoading: false,
|
isLoading: false,
|
||||||
isHidden: false,
|
isHidden: false,
|
||||||
country: null,
|
country: null,
|
||||||
previewLogo: null,
|
previewLogo: null,
|
||||||
city: null,
|
|
||||||
state: null,
|
|
||||||
countries: [],
|
countries: [],
|
||||||
isDisabledState: true,
|
|
||||||
isDisabledCity: true,
|
|
||||||
states: [],
|
|
||||||
cities: [],
|
|
||||||
passData: [],
|
passData: [],
|
||||||
fileSendUrl: '/api/settings/company',
|
fileSendUrl: '/api/settings/company',
|
||||||
fileObject: null
|
fileObject: null
|
||||||
@ -206,44 +185,9 @@ export default {
|
|||||||
watch: {
|
watch: {
|
||||||
country (newCountry) {
|
country (newCountry) {
|
||||||
this.formData.country_id = newCountry.id
|
this.formData.country_id = newCountry.id
|
||||||
if (this.formData.country_id) {
|
|
||||||
this.isDisabledState = false
|
|
||||||
}
|
|
||||||
this.fetchState()
|
|
||||||
if (this.isFetchingData) {
|
if (this.isFetchingData) {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
this.state = null
|
|
||||||
this.city = null
|
|
||||||
},
|
|
||||||
state (newState) {
|
|
||||||
if (newState !== null && newState !== undefined) {
|
|
||||||
this.formData.state_id = newState.id
|
|
||||||
this.fetchCities()
|
|
||||||
this.isDisabledCity = false
|
|
||||||
|
|
||||||
if (this.isFetchingData) {
|
|
||||||
this.isFetchingData = false
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
this.city = null
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
// this.formData.state_id = null
|
|
||||||
this.cities = []
|
|
||||||
this.city = null
|
|
||||||
// this.formData.city_id = null
|
|
||||||
this.isDisabledCity = true
|
|
||||||
return true
|
|
||||||
},
|
|
||||||
city (newCity) {
|
|
||||||
if (newCity !== null && newCity !== undefined) {
|
|
||||||
this.formData.city_id = newCity.id
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
// this.formData.city_id = null
|
|
||||||
// return true
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
validations: {
|
validations: {
|
||||||
@ -292,9 +236,9 @@ export default {
|
|||||||
this.formData.address_street_2 = response.data.user.addresses[0].address_street_2
|
this.formData.address_street_2 = response.data.user.addresses[0].address_street_2
|
||||||
this.formData.zip = response.data.user.addresses[0].zip
|
this.formData.zip = response.data.user.addresses[0].zip
|
||||||
this.formData.phone = response.data.user.addresses[0].phone
|
this.formData.phone = response.data.user.addresses[0].phone
|
||||||
|
this.formData.state = response.data.user.addresses[0].state
|
||||||
|
this.formData.city = response.data.user.addresses[0].city
|
||||||
this.country = response.data.user.addresses[0].country
|
this.country = response.data.user.addresses[0].country
|
||||||
this.state = response.data.user.addresses[0].state
|
|
||||||
this.city = response.data.user.addresses[0].city
|
|
||||||
this.previewLogo = response.data.user.company.logo
|
this.previewLogo = response.data.user.company.logo
|
||||||
},
|
},
|
||||||
async updateCompany () {
|
async updateCompany () {
|
||||||
@ -328,19 +272,6 @@ export default {
|
|||||||
if (res) {
|
if (res) {
|
||||||
this.countries = res.data.countries
|
this.countries = res.data.countries
|
||||||
}
|
}
|
||||||
},
|
|
||||||
async fetchState () {
|
|
||||||
this.$v.formData.country_id.$touch()
|
|
||||||
let res = await window.axios.get(`/api/states/${this.country.id}`)
|
|
||||||
if (res) {
|
|
||||||
this.states = res.data.states
|
|
||||||
}
|
|
||||||
},
|
|
||||||
async fetchCities () {
|
|
||||||
let res = await window.axios.get(`/api/cities/${this.state.id}`)
|
|
||||||
if (res) {
|
|
||||||
this.cities = res.data.cities
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -76,14 +76,17 @@ export default {
|
|||||||
let res = await window.axios.post('/api/update', this.updateData)
|
let res = await window.axios.post('/api/update', this.updateData)
|
||||||
|
|
||||||
if (res.data.success) {
|
if (res.data.success) {
|
||||||
await window.axios.post('/api/update/finish', this.updateData)
|
setTimeout(async () => {
|
||||||
this.isUpdateAvailable = false
|
await window.axios.post('/api/update/finish', this.updateData)
|
||||||
window.toastr['success'](this.$t('settings.update_app.update_success'))
|
|
||||||
this.currentVersion = this.updateData.version
|
|
||||||
|
|
||||||
setTimeout(() => {
|
window.toastr['success'](this.$t('settings.update_app.update_success'))
|
||||||
location.reload()
|
this.currentVersion = this.updateData.version
|
||||||
}, 2000)
|
this.isUpdateAvailable = false
|
||||||
|
|
||||||
|
setTimeout(() => {
|
||||||
|
location.reload()
|
||||||
|
}, 2000)
|
||||||
|
}, 1000)
|
||||||
} else {
|
} else {
|
||||||
console.log(res.data)
|
console.log(res.data)
|
||||||
window.toastr['error'](res.data.error)
|
window.toastr['error'](res.data.error)
|
||||||
|
|||||||
@ -64,29 +64,18 @@
|
|||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-6">
|
<div class="col-md-6">
|
||||||
<label class="form-label">{{ $t('wizard.state') }}</label>
|
<label class="form-label">{{ $t('wizard.state') }}</label>
|
||||||
<base-select
|
<base-input
|
||||||
v-model="state"
|
v-model="companyData.state"
|
||||||
:options="states"
|
name="state"
|
||||||
:searchable="true"
|
type="text"
|
||||||
:show-labels="false"
|
|
||||||
:disabled="isDisabledState"
|
|
||||||
:placeholder="$t('general.select_state')"
|
|
||||||
track-by="id"
|
|
||||||
label="name"
|
|
||||||
@input="fetchCities"
|
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-6">
|
<div class="col-md-6">
|
||||||
<label class="form-label">{{ $t('wizard.city') }}</label>
|
<label class="form-label">{{ $t('wizard.city') }}</label>
|
||||||
<base-select
|
<base-input
|
||||||
v-model="city"
|
v-model="companyData.city"
|
||||||
:options="cities"
|
name="city"
|
||||||
:searchable="true"
|
type="text"
|
||||||
:show-labels="false"
|
|
||||||
:disabled="isDisabledCity"
|
|
||||||
:placeholder="$t('general.select_city')"
|
|
||||||
track-by="id"
|
|
||||||
label="name"
|
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -180,8 +169,8 @@ export default {
|
|||||||
name: null,
|
name: null,
|
||||||
address_street_1: '',
|
address_street_1: '',
|
||||||
address_street_2: '',
|
address_street_2: '',
|
||||||
city_id: '',
|
city: '',
|
||||||
state_id: '',
|
state: '',
|
||||||
country_id: '',
|
country_id: '',
|
||||||
zip: '',
|
zip: '',
|
||||||
phone: ''
|
phone: ''
|
||||||
@ -190,13 +179,7 @@ export default {
|
|||||||
step: 1,
|
step: 1,
|
||||||
countries: [],
|
countries: [],
|
||||||
country: null,
|
country: null,
|
||||||
states: [],
|
previewLogo: null
|
||||||
state: null,
|
|
||||||
cities: [],
|
|
||||||
city: null,
|
|
||||||
previewLogo: null,
|
|
||||||
isDisabledCity: true,
|
|
||||||
isDisabledState: true
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
validations: {
|
validations: {
|
||||||
@ -218,35 +201,6 @@ export default {
|
|||||||
watch: {
|
watch: {
|
||||||
country ({ id }) {
|
country ({ id }) {
|
||||||
this.companyData.country_id = id
|
this.companyData.country_id = id
|
||||||
this.state = null
|
|
||||||
this.city = null
|
|
||||||
if (id !== null && id !== undefined) {
|
|
||||||
this.isDisabledState = false
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
this.isDisabledState = true
|
|
||||||
return true
|
|
||||||
},
|
|
||||||
state (newState) {
|
|
||||||
if (newState !== null && newState !== undefined) {
|
|
||||||
this.city = null
|
|
||||||
this.companyData.state_id = newState.id
|
|
||||||
this.isDisabledCity = false
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
this.companyData.state_id = null
|
|
||||||
this.isDisabledCity = true
|
|
||||||
this.cities = []
|
|
||||||
this.city = null
|
|
||||||
this.companyData.city_id = null
|
|
||||||
return true
|
|
||||||
},
|
|
||||||
city (newCity) {
|
|
||||||
if (newCity !== null && newCity !== undefined) {
|
|
||||||
this.companyData.city_id = newCity.id
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
this.companyData.city_id = null
|
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -307,22 +261,6 @@ export default {
|
|||||||
if (res) {
|
if (res) {
|
||||||
this.countries = res.data.countries
|
this.countries = res.data.countries
|
||||||
}
|
}
|
||||||
},
|
|
||||||
async fetchState () {
|
|
||||||
this.$v.companyData.country_id.$touch()
|
|
||||||
let res = await window.axios.get(`/api/states/${this.country.id}`)
|
|
||||||
if (res) {
|
|
||||||
this.states = res.data.states
|
|
||||||
}
|
|
||||||
},
|
|
||||||
async fetchCities () {
|
|
||||||
if (this.state === null || this.state === undefined) {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
let res = await window.axios.get(`/api/cities/${this.state.id}`)
|
|
||||||
if (res) {
|
|
||||||
this.cities = res.data.cities
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -18,7 +18,7 @@
|
|||||||
<span v-if="!$v.databaseData.app_url.required" class="text-danger">
|
<span v-if="!$v.databaseData.app_url.required" class="text-danger">
|
||||||
{{ $tc('validation.required') }}
|
{{ $tc('validation.required') }}
|
||||||
</span>
|
</span>
|
||||||
<span v-if="!$v.databaseData.app_url.url" class="text-danger">
|
<span v-if="!$v.databaseData.app_url.isUrl" class="text-danger">
|
||||||
{{ $tc('validation.invalid_url') }}
|
{{ $tc('validation.invalid_url') }}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
@ -184,7 +184,9 @@ export default {
|
|||||||
},
|
},
|
||||||
app_url: {
|
app_url: {
|
||||||
required,
|
required,
|
||||||
url
|
isUrl (val) {
|
||||||
|
return this.$utils.checkValidUrl(val)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -204,10 +206,10 @@ export default {
|
|||||||
} else {
|
} else {
|
||||||
window.toastr['error'](this.$t('wizard.errors.' + response.data.error))
|
window.toastr['error'](this.$t('wizard.errors.' + response.data.error))
|
||||||
}
|
}
|
||||||
this.loading = false
|
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.log(e.response)
|
|
||||||
window.toastr['error'](e.response.data.message)
|
window.toastr['error'](e.response.data.message)
|
||||||
|
} finally {
|
||||||
|
this.loading = false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -410,7 +410,7 @@
|
|||||||
<div class="bill-address-container">
|
<div class="bill-address-container">
|
||||||
@include('app.pdf.estimate.partials.billing-address')
|
@include('app.pdf.estimate.partials.billing-address')
|
||||||
</div>
|
</div>
|
||||||
@if($estimate->user->billingaddress->name || $estimate->user->billingaddress->address_street_1 || $estimate->user->billingaddress->address_street_2 || $estimate->user->billingaddress->country || $estimate->user->billingaddress->state || $estimate->user->billingaddress->city || $estimate->user->billingaddress->zip || $estimate->user->billingaddress->phone)
|
@if($estimate->user->billingaddress && ($estimate->user->billingaddress->name || $estimate->user->billingaddress->address_street_1 || $estimate->user->billingaddress->address_street_2 || $estimate->user->billingaddress->country || $estimate->user->billingaddress->state || $estimate->user->billingaddress->city || $estimate->user->billingaddress->zip || $estimate->user->billingaddress->phone))
|
||||||
<div class="ship-address-container">
|
<div class="ship-address-container">
|
||||||
@else
|
@else
|
||||||
<div class="ship-address-container " style="float:left;padding-left:0px;">
|
<div class="ship-address-container " style="float:left;padding-left:0px;">
|
||||||
|
|||||||
@ -421,7 +421,7 @@
|
|||||||
<div class="ship-address-container">
|
<div class="ship-address-container">
|
||||||
@include('app.pdf.estimate.partials.shipping-address')
|
@include('app.pdf.estimate.partials.shipping-address')
|
||||||
</div>
|
</div>
|
||||||
@if($estimate->user->shippingaddress->name || $estimate->user->shippingaddress->address_street_1 || $estimate->user->shippingaddress->address_street_2 || $estimate->user->shippingaddress->country || $estimate->user->shippingaddress->state || $estimate->user->shippingaddress->city || $estimate->user->shippingaddress->zip || $estimate->user->phone)
|
@if($estimate->user->shippingaddress && ($estimate->user->shippingaddress->name || $estimate->user->shippingaddress->address_street_1 || $estimate->user->shippingaddress->address_street_2 || $estimate->user->shippingaddress->country || $estimate->user->shippingaddress->state || $estimate->user->shippingaddress->city || $estimate->user->shippingaddress->zip || $estimate->user->phone))
|
||||||
<div class="bill-address-container">
|
<div class="bill-address-container">
|
||||||
@else
|
@else
|
||||||
<div class="bill-address-container" style="float:right;padding-right:0px;">
|
<div class="bill-address-container" style="float:right;padding-right:0px;">
|
||||||
|
|||||||
@ -426,7 +426,7 @@
|
|||||||
<div style="float:left;">
|
<div style="float:left;">
|
||||||
@include('app.pdf.estimate.partials.billing-address')
|
@include('app.pdf.estimate.partials.billing-address')
|
||||||
</div>
|
</div>
|
||||||
@if($estimate->user->billingaddress->name || $estimate->user->billingaddress->address_street_1 || $estimate->user->billingaddress->address_street_2 || $estimate->user->billingaddress->country || $estimate->user->billingaddress->state || $estimate->user->billingaddress->city || $estimate->user->billingaddress->zip || $estimate->user->billingaddress->phone)
|
@if($estimate->user->billingaddress && ($estimate->user->billingaddress->name || $estimate->user->billingaddress->address_street_1 || $estimate->user->billingaddress->address_street_2 || $estimate->user->billingaddress->country || $estimate->user->billingaddress->state || $estimate->user->billingaddress->city || $estimate->user->billingaddress->zip || $estimate->user->billingaddress->phone))
|
||||||
<div style="float:right;">
|
<div style="float:right;">
|
||||||
@else
|
@else
|
||||||
<div style="float:left;">
|
<div style="float:left;">
|
||||||
|
|||||||
@ -16,12 +16,12 @@
|
|||||||
{{$estimate->user->billingaddress->address_street_2}}<br>
|
{{$estimate->user->billingaddress->address_street_2}}<br>
|
||||||
@endif
|
@endif
|
||||||
|
|
||||||
@if($estimate->user->billingaddress->city && $estimate->user->billingaddress->city->name)
|
@if($estimate->user->billingaddress->city && $estimate->user->billingaddress->city)
|
||||||
{{$estimate->user->billingaddress->city->name}},
|
{{$estimate->user->billingaddress->city}},
|
||||||
@endif
|
@endif
|
||||||
|
|
||||||
@if($estimate->user->billingaddress->state && $estimate->user->billingaddress->state->name)
|
@if($estimate->user->billingaddress->state && $estimate->user->billingaddress->state)
|
||||||
{{$estimate->user->billingaddress->state->name}}.
|
{{$estimate->user->billingaddress->state}}.
|
||||||
@endif
|
@endif
|
||||||
|
|
||||||
@if($estimate->user->billingaddress->zip)
|
@if($estimate->user->billingaddress->zip)
|
||||||
|
|||||||
@ -12,10 +12,10 @@
|
|||||||
{{$company_address->addresses[0]['address_street_2']}} <br>
|
{{$company_address->addresses[0]['address_street_2']}} <br>
|
||||||
@endif
|
@endif
|
||||||
@if($company_address->addresses[0]['city'])
|
@if($company_address->addresses[0]['city'])
|
||||||
{{$company_address->addresses[0]['city']->name}}
|
{{$company_address->addresses[0]['city']}}
|
||||||
@endif
|
@endif
|
||||||
@if($company_address->addresses[0]['state'])
|
@if($company_address->addresses[0]['state'])
|
||||||
{{$company_address->addresses[0]['state']->name}}
|
{{$company_address->addresses[0]['state']}}
|
||||||
@endif
|
@endif
|
||||||
@if($company_address->addresses[0]['zip'])
|
@if($company_address->addresses[0]['zip'])
|
||||||
{{$company_address->addresses[0]['zip']}} <br>
|
{{$company_address->addresses[0]['zip']}} <br>
|
||||||
|
|||||||
@ -16,12 +16,12 @@
|
|||||||
{{$estimate->user->shippingaddress->address_street_2}}<br>
|
{{$estimate->user->shippingaddress->address_street_2}}<br>
|
||||||
@endif
|
@endif
|
||||||
|
|
||||||
@if($estimate->user->shippingaddress->city && $estimate->user->shippingaddress->city->name)
|
@if($estimate->user->shippingaddress->city && $estimate->user->shippingaddress->city)
|
||||||
{{$estimate->user->shippingaddress->city->name}},
|
{{$estimate->user->shippingaddress->city}},
|
||||||
@endif
|
@endif
|
||||||
|
|
||||||
@if($estimate->user->shippingaddress->state && $estimate->user->shippingaddress->state->name)
|
@if($estimate->user->shippingaddress->state && $estimate->user->shippingaddress->state)
|
||||||
{{$estimate->user->shippingaddress->state->name}}.
|
{{$estimate->user->shippingaddress->state}}.
|
||||||
@endif
|
@endif
|
||||||
|
|
||||||
@if($estimate->user->shippingaddress->zip)
|
@if($estimate->user->shippingaddress->zip)
|
||||||
|
|||||||
@ -14,11 +14,11 @@
|
|||||||
@if($invoice->user->billingaddress->address_street_2)
|
@if($invoice->user->billingaddress->address_street_2)
|
||||||
{{$invoice->user->billingaddress->address_street_2}}<br>
|
{{$invoice->user->billingaddress->address_street_2}}<br>
|
||||||
@endif
|
@endif
|
||||||
@if($invoice->user->billingaddress->city && $invoice->user->billingaddress->city->name)
|
@if($invoice->user->billingaddress->city && $invoice->user->billingaddress->city)
|
||||||
{{$invoice->user->billingaddress->city->name}},
|
{{$invoice->user->billingaddress->city}},
|
||||||
@endif
|
@endif
|
||||||
@if($invoice->user->billingaddress->state && $invoice->user->billingaddress->state->name)
|
@if($invoice->user->billingaddress->state && $invoice->user->billingaddress->state)
|
||||||
{{$invoice->user->billingaddress->state->name}}.
|
{{$invoice->user->billingaddress->state}}.
|
||||||
@endif
|
@endif
|
||||||
@if($invoice->user->billingaddress->zip)
|
@if($invoice->user->billingaddress->zip)
|
||||||
{{$invoice->user->billingaddress->zip}}<br>
|
{{$invoice->user->billingaddress->zip}}<br>
|
||||||
|
|||||||
@ -12,10 +12,10 @@
|
|||||||
{{$company_address->addresses[0]['address_street_2']}} <br>
|
{{$company_address->addresses[0]['address_street_2']}} <br>
|
||||||
@endif
|
@endif
|
||||||
@if($company_address->addresses[0]['city'])
|
@if($company_address->addresses[0]['city'])
|
||||||
{{$company_address->addresses[0]['city']->name}}
|
{{$company_address->addresses[0]['city']}}
|
||||||
@endif
|
@endif
|
||||||
@if($company_address->addresses[0]['state'])
|
@if($company_address->addresses[0]['state'])
|
||||||
{{$company_address->addresses[0]['state']->name}}
|
{{$company_address->addresses[0]['state']}}
|
||||||
@endif
|
@endif
|
||||||
@if($company_address->addresses[0]['zip'])
|
@if($company_address->addresses[0]['zip'])
|
||||||
{{$company_address->addresses[0]['zip']}} <br>
|
{{$company_address->addresses[0]['zip']}} <br>
|
||||||
|
|||||||
@ -16,12 +16,12 @@
|
|||||||
{{$invoice->user->shippingaddress->address_street_2}}<br>
|
{{$invoice->user->shippingaddress->address_street_2}}<br>
|
||||||
@endif
|
@endif
|
||||||
|
|
||||||
@if($invoice->user->shippingaddress->city && $invoice->user->shippingaddress->city->name)
|
@if($invoice->user->shippingaddress->city && $invoice->user->shippingaddress->city)
|
||||||
{{$invoice->user->shippingaddress->city->name}},
|
{{$invoice->user->shippingaddress->city}},
|
||||||
@endif
|
@endif
|
||||||
|
|
||||||
@if($invoice->user->shippingaddress->state && $invoice->user->shippingaddress->state->name)
|
@if($invoice->user->shippingaddress->state && $invoice->user->shippingaddress->state)
|
||||||
{{$invoice->user->shippingaddress->state->name}}.
|
{{$invoice->user->shippingaddress->state}}.
|
||||||
@endif
|
@endif
|
||||||
|
|
||||||
@if($invoice->user->shippingaddress->zip)
|
@if($invoice->user->shippingaddress->zip)
|
||||||
|
|||||||
@ -222,7 +222,7 @@
|
|||||||
<table class="expenses-table">
|
<table class="expenses-table">
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<p class="expense-title">{{ $item->item->name }}</p>
|
<p class="expense-title">{{ $item->name }}</p>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<p class="expense-money">{!! format_money_pdf($item->total_amount) !!}</p>
|
<p class="expense-money">{!! format_money_pdf($item->total_amount) !!}</p>
|
||||||
|
|||||||
@ -47,11 +47,8 @@ Route::group(['prefix' => 'reports'], function () {
|
|||||||
'uses' => 'ReportController@profitLossReport'
|
'uses' => 'ReportController@profitLossReport'
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
Route::get('/invoices/pdf/{id}', [
|
Route::get('/invoices/pdf/{id}', [
|
||||||
'as' => 'get.invoice.pdf',
|
'as' => 'get.invoice.pdf',
|
||||||
'uses' => 'FrontendController@getInvoicePdf'
|
'uses' => 'FrontendController@getInvoicePdf'
|
||||||
|
|||||||
@ -65,8 +65,8 @@ class CompanySettingTest extends TestCase
|
|||||||
$company = [
|
$company = [
|
||||||
'name' => 'XYZ',
|
'name' => 'XYZ',
|
||||||
'country_id' => 2,
|
'country_id' => 2,
|
||||||
'state_id' => 3,
|
'state' => 'city',
|
||||||
'city_id' => 4,
|
'city' => 'state',
|
||||||
'address_street_1' => 'test1',
|
'address_street_1' => 'test1',
|
||||||
'address_street_2' => 'test2',
|
'address_street_2' => 'test2',
|
||||||
'phone' => '1234567890',
|
'phone' => '1234567890',
|
||||||
@ -80,8 +80,8 @@ class CompanySettingTest extends TestCase
|
|||||||
$address2 = $response->decodeResponseJson()['user']['addresses'][0];
|
$address2 = $response->decodeResponseJson()['user']['addresses'][0];
|
||||||
$this->assertEquals($company['name'], $company2['name']);
|
$this->assertEquals($company['name'], $company2['name']);
|
||||||
$this->assertEquals($company['country_id'], $address2['country_id']);
|
$this->assertEquals($company['country_id'], $address2['country_id']);
|
||||||
$this->assertEquals($company['state_id'], $address2['state_id']);
|
$this->assertEquals($company['state'], $address2['state']);
|
||||||
$this->assertEquals($company['city_id'], $address2['city_id']);
|
$this->assertEquals($company['city'], $address2['city']);
|
||||||
$this->assertEquals($company['address_street_1'], $address2['address_street_1']);
|
$this->assertEquals($company['address_street_1'], $address2['address_street_1']);
|
||||||
$this->assertEquals($company['address_street_2'], $address2['address_street_2']);
|
$this->assertEquals($company['address_street_2'], $address2['address_street_2']);
|
||||||
$this->assertEquals($company['phone'], $address2['phone']);
|
$this->assertEquals($company['phone'], $address2['phone']);
|
||||||
|
|||||||
@ -5,8 +5,6 @@ use Tests\TestCase;
|
|||||||
use Illuminate\Foundation\Testing\WithFaker;
|
use Illuminate\Foundation\Testing\WithFaker;
|
||||||
use Illuminate\Foundation\Testing\RefreshDatabase;
|
use Illuminate\Foundation\Testing\RefreshDatabase;
|
||||||
use Crater\Country;
|
use Crater\Country;
|
||||||
use Crater\State;
|
|
||||||
use Crater\City;
|
|
||||||
use SettingsSeeder;
|
use SettingsSeeder;
|
||||||
class LocationTest extends TestCase
|
class LocationTest extends TestCase
|
||||||
{
|
{
|
||||||
@ -26,20 +24,4 @@ class LocationTest extends TestCase
|
|||||||
|
|
||||||
$response->assertOk();
|
$response->assertOk();
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @test */
|
|
||||||
public function testGetStates()
|
|
||||||
{
|
|
||||||
$response = $this->json('GET', 'api/states/1');
|
|
||||||
|
|
||||||
$response->assertOk();
|
|
||||||
}
|
|
||||||
|
|
||||||
/** @test */
|
|
||||||
public function testGetCities()
|
|
||||||
{
|
|
||||||
$response = $this->json('GET', 'api/cities/1');
|
|
||||||
|
|
||||||
$response->assertOk();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user