This commit is contained in:
mindnervestech 2014-11-11 11:30:40 +05:30
commit ab19abac45
43 changed files with 1264 additions and 912 deletions

View File

@ -6,8 +6,6 @@ module.exports = function(grunt) {
options: { options: {
process: function(src, filepath) { process: function(src, filepath) {
var basepath = filepath.substring(7, filepath.lastIndexOf('/') + 1); var basepath = filepath.substring(7, filepath.lastIndexOf('/') + 1);
console.log(filepath);
// Fix relative paths for css files // Fix relative paths for css files
if(filepath.indexOf('.css', filepath.length - 4) !== -1) { if(filepath.indexOf('.css', filepath.length - 4) !== -1) {
return src.replace(/(url\s*[\("']+)\s*([^'"\)]+)(['"\)]+;?)/gi, function(match, start, url, end, offset, string) { return src.replace(/(url\s*[\("']+)\s*([^'"\)]+)(['"\)]+;?)/gi, function(match, start, url, end, offset, string) {

View File

@ -3,7 +3,7 @@
### [https://www.invoiceninja.com](https://www.invoiceninja.com) ### [https://www.invoiceninja.com](https://www.invoiceninja.com)
If you'd like to use our code to sell your own invoicing app we offer a white-label affiliate program. We ask for 20% of revenue earned with a $100 sign up fee. Get in touch for more details. If you'd like to use our code to sell your own invoicing app we offer a white-label affiliate program. We ask for 20% of revenue with a $100 sign up fee. Get in touch for more details.
### Introduction ### Introduction

View File

@ -13,7 +13,7 @@ return array(
| |
*/ */
'debug' => true, 'debug' => false,
/* /*
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------

View File

@ -818,7 +818,8 @@ class AccountController extends \BaseController {
{ {
$account = Auth::user()->account; $account = Auth::user()->account;
$account->name = trim(Input::get('name')); $account->name = trim(Input::get('name'));
$account->vat_number = trim(Input::get('vat_number')); $account->id_number = trim(Input::get('id_number'));
$account->vat_number = trim(Input::get('vat_number'));
$account->work_email = trim(Input::get('work_email')); $account->work_email = trim(Input::get('work_email'));
$account->work_phone = trim(Input::get('work_phone')); $account->work_phone = trim(Input::get('work_phone'));
$account->address1 = trim(Input::get('address1')); $account->address1 = trim(Input::get('address1'));

View File

@ -199,7 +199,8 @@ class ClientController extends \BaseController {
} }
$client->name = trim(Input::get('name')); $client->name = trim(Input::get('name'));
$client->vat_number = trim(Input::get('vat_number')); $client->id_number = trim(Input::get('id_number'));
$client->vat_number = trim(Input::get('vat_number'));
$client->work_phone = trim(Input::get('work_phone')); $client->work_phone = trim(Input::get('work_phone'));
$client->custom_value1 = trim(Input::get('custom_value1')); $client->custom_value1 = trim(Input::get('custom_value1'));
$client->custom_value2 = trim(Input::get('custom_value2')); $client->custom_value2 = trim(Input::get('custom_value2'));
@ -212,7 +213,7 @@ class ClientController extends \BaseController {
$client->private_notes = trim(Input::get('private_notes')); $client->private_notes = trim(Input::get('private_notes'));
$client->size_id = Input::get('size_id') ? : null; $client->size_id = Input::get('size_id') ? : null;
$client->industry_id = Input::get('industry_id') ? : null; $client->industry_id = Input::get('industry_id') ? : null;
$client->currency_id = Input::get('currency_id') ? : 1; $client->currency_id = Input::get('currency_id') ? : null;
$client->payment_terms = Input::get('payment_terms') ? : 0; $client->payment_terms = Input::get('payment_terms') ? : 0;
$client->website = trim(Input::get('website')); $client->website = trim(Input::get('website'));

View File

@ -19,7 +19,7 @@ class DashboardController extends \BaseController {
->groupBy('accounts.id') ->groupBy('accounts.id')
->first(); ->first();
$select = DB::raw('SUM(clients.paid_to_date) value'); $select = DB::raw('SUM(clients.paid_to_date) as value');
$totalIncome = DB::table('accounts') $totalIncome = DB::table('accounts')
->select($select) ->select($select)

View File

@ -153,6 +153,7 @@ class InvoiceController extends \BaseController {
$invoice->id = null; $invoice->id = null;
$invoice->invoice_number = Auth::user()->account->getNextInvoiceNumber($invoice->is_quote); $invoice->invoice_number = Auth::user()->account->getNextInvoiceNumber($invoice->is_quote);
$invoice->balance = $invoice->amount; $invoice->balance = $invoice->amount;
$invoice->invoice_date = date_create()->format('Y-m-d');
$method = 'POST'; $method = 'POST';
$url = "{$entityType}s"; $url = "{$entityType}s";
} }

View File

@ -35,11 +35,13 @@ class QuoteController extends \BaseController {
'columns'=>Utils::trans(['checkbox', 'quote_number', 'client', 'quote_date', 'quote_total', 'due_date', 'status', 'action']) 'columns'=>Utils::trans(['checkbox', 'quote_number', 'client', 'quote_date', 'quote_total', 'due_date', 'status', 'action'])
]; ];
/*
if (Invoice::scope()->where('is_recurring', '=', true)->count() > 0) if (Invoice::scope()->where('is_recurring', '=', true)->count() > 0)
{ {
$data['secEntityType'] = ENTITY_RECURRING_INVOICE; $data['secEntityType'] = ENTITY_RECURRING_INVOICE;
$data['secColumns'] = Utils::trans(['checkbox', 'frequency', 'client', 'start_date', 'end_date', 'quote_total', 'action']); $data['secColumns'] = Utils::trans(['checkbox', 'frequency', 'client', 'start_date', 'end_date', 'quote_total', 'action']);
} }
*/
return View::make('list', $data); return View::make('list', $data);
} }
@ -104,12 +106,14 @@ class QuoteController extends \BaseController {
public function bulk() public function bulk()
{ {
$action = Input::get('action'); $action = Input::get('action');
$statusId = Input::get('statusId');
$ids = Input::get('id') ? Input::get('id') : Input::get('ids'); $ids = Input::get('id') ? Input::get('id') : Input::get('ids');
$count = $this->invoiceRepo->bulk($ids, $action); $count = $this->invoiceRepo->bulk($ids, $action, $statusId);
if ($count > 0) if ($count > 0)
{ {
$message = Utils::pluralize("{$action}d_quote", $count); $key = $action == 'mark' ? "updated_quote" : "{$action}d_quote";
$message = Utils::pluralize($key, $count);
Session::flash('message', $message); Session::flash('message', $message);
} }

View File

@ -279,7 +279,7 @@ class ConfideSetupUsersTable extends Migration {
$t->string('last_name')->nullable(); $t->string('last_name')->nullable();
$t->string('email')->nullable(); $t->string('email')->nullable();
$t->string('phone')->nullable(); $t->string('phone')->nullable();
$t->timestamp('last_login'); $t->timestamp('last_login')->nullable();
$t->foreign('client_id')->references('id')->on('clients')->onDelete('cascade'); $t->foreign('client_id')->references('id')->on('clients')->onDelete('cascade');
$t->foreign('user_id')->references('id')->on('users')->onDelete('cascade');; $t->foreign('user_id')->references('id')->on('users')->onDelete('cascade');;

View File

@ -17,7 +17,7 @@ class AddCompanyVatNumber extends Migration {
$table->string('vat_number')->nullable(); $table->string('vat_number')->nullable();
}); });
Schema::table('clients', function($table) Schema::table('clients', function($table)
{ {
$table->string('vat_number')->nullable(); $table->string('vat_number')->nullable();
}); });
@ -34,7 +34,7 @@ class AddCompanyVatNumber extends Migration {
{ {
$table->dropColumn('vat_number'); $table->dropColumn('vat_number');
}); });
Schema::table('clients', function($table) Schema::table('clients', function($table)
{ {
$table->dropColumn('vat_number'); $table->dropColumn('vat_number');
}); });

View File

@ -422,10 +422,14 @@ class AddInvoiceDesignTable extends Migration {
var account = invoice.account; var account = invoice.account;
var currencyId = client.currency_id; var currencyId = client.currency_id;
layout.accountTop += 25;
layout.headerTop += 25;
layout.tableTop += 25;
if (invoice.image) if (invoice.image)
{ {
var left = layout.headerRight - invoice.imageWidth; var left = layout.headerRight - invoice.imageWidth;
doc.addImage(invoice.image, 'JPEG', left, 30); doc.addImage(invoice.image, 'JPEG', left, 50);
} }
/* table header */ /* table header */

View File

@ -0,0 +1,43 @@
<?php
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class AddCompanyIdNumber extends Migration {
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('accounts', function($table)
{
$table->string('id_number')->nullable();
});
Schema::table('clients', function($table)
{
$table->string('id_number')->nullable();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('accounts', function($table)
{
$table->dropColumn('id_number');
});
Schema::table('clients', function($table)
{
$table->dropColumn('id_number');
});
}
}

View File

@ -0,0 +1,31 @@
<?php
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class AllowNullClientCurrency extends Migration {
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('clients', function($table)
{
DB::statement('ALTER TABLE `clients` MODIFY `currency_id` INTEGER UNSIGNED NULL;');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
}
}

View File

@ -5,7 +5,8 @@ return array(
// client // client
'organization' => 'Organisation', 'organization' => 'Organisation',
'name' => 'Navn', 'name' => 'Navn',
'vat_number' => 'CVR nummer', 'id_number' => 'SE/CVR nummer',
'vat_number' => 'SE/CVR nummer',
'website' => 'Webside', 'website' => 'Webside',
'work_phone' => 'Telefon', 'work_phone' => 'Telefon',
'address' => 'Adresse', 'address' => 'Adresse',
@ -444,4 +445,29 @@ return array(
'invoice_issued_to' => 'Faktura udstedt til', 'invoice_issued_to' => 'Faktura udstedt til',
'invalid_counter' => 'For at undgå mulige overlap, sæt venligst et faktura eller tilbuds nummer præfiks', 'invalid_counter' => 'For at undgå mulige overlap, sæt venligst et faktura eller tilbuds nummer præfiks',
'mark_sent' => 'Markering sendt', 'mark_sent' => 'Markering sendt',
'gateway_help_1' => ':link to sign up for Authorize.net.',
'gateway_help_2' => ':link to sign up for Authorize.net.',
'gateway_help_17' => ':link to get your PayPal API signature.',
'gateway_help_23' => 'Note: use your secret API key, not your publishable API key.',
'gateway_help_27' => ':link to sign up for TwoCheckout.',
'more_designs' => 'More designs',
'more_designs_title' => 'Additional Invoice Designs',
'more_designs_cloud_header' => 'Go Pro for more invoice designs',
'more_designs_cloud_text' => '',
'more_designs_self_host_header' => 'Get 6 more invoice designs for just $20',
'more_designs_self_host_text' => '',
'buy' => 'Buy',
'bought_designs' => 'Successfully added additional invoice designs',
'sent' => 'sent',
'timesheets' => 'Timesheets',
'payment_title' => 'Enter Your Billing Address and Credit Card information',
'payment_cvv' => '*This is the 3-4 digit number onthe back of your card',
'payment_footer1' => '*Billing address must match address accociated with credit card.',
'payment_footer2' => '*Please click "PAY NOW" only once - transaction may take up to 1 minute to process.',
); );

View File

@ -450,5 +450,16 @@ return array(
'buy' => 'Buy', 'buy' => 'Buy',
'bought_designs' => 'Successfully added additional invoice designs', 'bought_designs' => 'Successfully added additional invoice designs',
'sent' => 'sent',
'timesheets' => 'Timesheets',
'payment_title' => 'Enter Your Billing Address and Credit Card information',
'payment_cvv' => '*This is the 3-4 digit number onthe back of your card',
'payment_footer1' => '*Billing address must match address accociated with credit card.',
'payment_footer2' => '*Please click "PAY NOW" only once - transaction may take up to 1 minute to process.',
'vat_number' => 'Vat Number',
); );

View File

@ -466,7 +466,17 @@ return array(
'more_designs_self_host_text' => '', 'more_designs_self_host_text' => '',
'buy' => 'Buy', 'buy' => 'Buy',
'bought_designs' => 'Successfully added additional invoice designs', 'bought_designs' => 'Successfully added additional invoice designs',
'sent' => 'sent', 'sent' => 'sent',
'id_number' => 'ID Number',
'vat_number' => 'VAT Number',
'timesheets' => 'Timesheets', 'timesheets' => 'Timesheets',
'payment_title' => 'Enter Your Billing Address and Credit Card information',
'payment_cvv' => '*This is the 3-4 digit number onthe back of your card',
'payment_footer1' => '*Billing address must match address accociated with credit card.',
'payment_footer2' => '*Please click "PAY NOW" only once - transaction may take up to 1 minute to process.',
'vat_number' => 'Vat Number',
); );

View File

@ -2,289 +2,289 @@
return array( return array(
// client // client
'organization' => 'Empresa', 'organization' => 'Empresa',
'name' => 'Nombre', //Razon social-Colombia, 'name' => 'Nombre', //Razon social-Colombia,
'website' => 'Sitio Web', 'website' => 'Sitio Web',
'work_phone' => 'Teléfono', 'work_phone' => 'Teléfono',
'address' => 'Dirección', 'address' => 'Dirección',
'address1' => 'Calle', 'address1' => 'Calle',
'address2' => 'Bloq/Pta', 'address2' => 'Bloq/Pta',
'city' => 'Ciudad', 'city' => 'Ciudad',
'state' => 'Región/Provincia', //Departamento-Colombia, Comarca-Panama 'state' => 'Región/Provincia', //Departamento-Colombia, Comarca-Panama
'postal_code' => 'Código Postal', 'postal_code' => 'Código Postal',
'country_id' => 'País', 'country_id' => 'País',
'contacts' => 'Contactos', 'contacts' => 'Contactos',
'first_name' => 'Nombres', 'first_name' => 'Nombres',
'last_name' => 'Apellidos', 'last_name' => 'Apellidos',
'phone' => 'Teléfono', 'phone' => 'Teléfono',
'email' => 'Email', 'email' => 'Email',
'additional_info' => 'Información adicional', 'additional_info' => 'Información adicional',
'payment_terms' => 'Plazos de pago', // 'payment_terms' => 'Plazos de pago', //
'currency_id' => 'Divisa', 'currency_id' => 'Divisa',
'size_id' => 'Tamaño', 'size_id' => 'Tamaño',
'industry_id' => 'Industria', 'industry_id' => 'Industria',
'private_notes' => 'Notas Privadas', 'private_notes' => 'Notas Privadas',
// invoice // invoice
'invoice' => 'Factura de venta', //Factura de Venta-Colombia 'invoice' => 'Factura de venta', //Factura de Venta-Colombia
'client' => 'Cliente', 'client' => 'Cliente',
'invoice_date' => 'Fecha de factura', 'invoice_date' => 'Fecha de factura',
'due_date' => 'Fecha de pago', 'due_date' => 'Fecha de pago',
'invoice_number' => 'Número de Factura', 'invoice_number' => 'Número de Factura',
'invoice_number_short' => 'Factura #', 'invoice_number_short' => 'Factura #',
'po_number' => 'Apartado de correo', 'po_number' => 'Apartado de correo',
'po_number_short' => 'Apdo.', 'po_number_short' => 'Apdo.',
'frequency_id' => 'Frecuencia', 'frequency_id' => 'Frecuencia',
'discount' => 'Descuento', 'discount' => 'Descuento',
'taxes' => 'Impuestos', 'taxes' => 'Impuestos',
'tax' => 'Impuesto', //IVA for almost all latinamerica, ISV-Honduras, ITBMS-Panama, IV-Costa Rica, ITBIS- Republica Dominicana, IVU-Puerto Rico 'tax' => 'Impuesto', //IVA for almost all latinamerica, ISV-Honduras, ITBMS-Panama, IV-Costa Rica, ITBIS- Republica Dominicana, IVU-Puerto Rico
'item' => 'Concepto', 'item' => 'Concepto',
'description' => 'Descripción', 'description' => 'Descripción',
'unit_cost' => 'Coste unitario', 'unit_cost' => 'Coste unitario',
'quantity' => 'Cantidad', 'quantity' => 'Cantidad',
'line_total' => 'Total', 'line_total' => 'Total',
'subtotal' => 'Subtotal', 'subtotal' => 'Subtotal',
'paid_to_date' => 'Pagado', 'paid_to_date' => 'Pagado',
'balance_due' => 'Pendiente', 'balance_due' => 'Pendiente',
'invoice_design_id' => 'Diseño', 'invoice_design_id' => 'Diseño',
'terms' => 'Términos', 'terms' => 'Términos',
'your_invoice' => 'Tu factura', 'your_invoice' => 'Tu factura',
'remove_contact' => 'Eliminar contacto', 'remove_contact' => 'Eliminar contacto',
'add_contact' => 'Añadir contacto', 'add_contact' => 'Añadir contacto',
'create_new_client' => 'Crear nuevo cliente', 'create_new_client' => 'Crear nuevo cliente',
'edit_client_details' => 'Editar detalles del cliente', 'edit_client_details' => 'Editar detalles del cliente',
'enable' => 'Activar', 'enable' => 'Activar',
'learn_more' => 'Aprender más', 'learn_more' => 'Aprender más',
'manage_rates' => 'Gestionar tarifas', 'manage_rates' => 'Gestionar tarifas',
'note_to_client' => 'Nota para el cliente', 'note_to_client' => 'Nota para el cliente',
'invoice_terms' => 'Términos de facturación', 'invoice_terms' => 'Términos de facturación',
'save_as_default_terms' => 'Guardar como términos por defecto', 'save_as_default_terms' => 'Guardar como términos por defecto',
'download_pdf' => 'Descargar PDF', 'download_pdf' => 'Descargar PDF',
'pay_now' => 'Pagar ahora', 'pay_now' => 'Pagar ahora',
'save_invoice' => 'Guardar factura', 'save_invoice' => 'Guardar factura',
'clone_invoice' => 'Clonar factura', 'clone_invoice' => 'Clonar factura',
'archive_invoice' => 'Archivar factura', 'archive_invoice' => 'Archivar factura',
'delete_invoice' => 'Eliminar factura', 'delete_invoice' => 'Eliminar factura',
'email_invoice' => 'Enviar factura por correo', 'email_invoice' => 'Enviar factura por correo',
'enter_payment' => 'Agregar pago', 'enter_payment' => 'Agregar pago',
'tax_rates' => 'Tasas de impuesto', 'tax_rates' => 'Tasas de impuesto',
'rate' => 'Tasas', 'rate' => 'Tasas',
'settings' => 'Configuración', 'settings' => 'Configuración',
'enable_invoice_tax' => 'Activar impuesto <b>para la factura</b>', 'enable_invoice_tax' => 'Activar impuesto <b>para la factura</b>',
'enable_line_item_tax' => 'Activar impuesto <b>por concepto</b>', 'enable_line_item_tax' => 'Activar impuesto <b>por concepto</b>',
// navigation // navigation
'dashboard' => 'Inicio', 'dashboard' => 'Inicio',
'clients' => 'Clientes', 'clients' => 'Clientes',
'invoices' => 'Facturas', 'invoices' => 'Facturas',
'payments' => 'Pagos', 'payments' => 'Pagos',
'credits' => 'Créditos', 'credits' => 'Créditos',
'history' => 'Historial', 'history' => 'Historial',
'search' => 'Búsqueda', 'search' => 'Búsqueda',
'sign_up' => 'registrate', 'sign_up' => 'registrate',
'guest' => 'invitado', 'guest' => 'invitado',
'company_details' => 'Detalles de la empresa', 'company_details' => 'Detalles de la empresa',
'online_payments' => 'Pagos en linea', 'online_payments' => 'Pagos en linea',
'notifications' => 'Notificaciones', 'notifications' => 'Notificaciones',
'import_export' => 'Importar/Exportar', 'import_export' => 'Importar/Exportar',
'done' => 'Hecho', 'done' => 'Hecho',
'save' => 'Guardar', 'save' => 'Guardar',
'create' => 'Crear', 'create' => 'Crear',
'upload' => 'Subir', 'upload' => 'Subir',
'import' => 'Importar', 'import' => 'Importar',
'download' => 'Descargar', 'download' => 'Descargar',
'cancel' => 'Cancelar', 'cancel' => 'Cancelar',
'close' => 'Cerrar', 'close' => 'Cerrar',
'provide_email' => 'Por favor facilita una dirección de correo válida.', 'provide_email' => 'Por favor facilita una dirección de correo válida.',
'powered_by' => 'Plataforma por ', 'powered_by' => 'Plataforma por ',
'no_items' => 'No hay data', 'no_items' => 'No hay data',
// recurring invoices // recurring invoices
'recurring_invoices' => 'Facturas recurrentes', 'recurring_invoices' => 'Facturas recurrentes',
'recurring_help' => '<p>Enviar facturas automáticamente a clientes semanalmente, bi-mensualmente, mensualmente, trimestral o anualmente. </p> 'recurring_help' => '<p>Enviar facturas automáticamente a clientes semanalmente, bi-mensualmente, mensualmente, trimestral o anualmente. </p>
<p>Uso :MONTH, :QUARTER or :YEAR para fechas dinámicas. Matemáticas básicas también funcionan bien. Por ejemplo: :MONTH-1.</p> <p>Uso :MONTH, :QUARTER or :YEAR para fechas dinámicas. Matemáticas básicas también funcionan bien. Por ejemplo: :MONTH-1.</p>
<p>Ejemplos de variables dinámicas de factura:</p> <p>Ejemplos de variables dinámicas de factura:</p>
<ul> <ul>
<li>"Afiliación de gimnasio para el mes de:MONTH" => Afiliación de gimnasio para el mes de julio"</li> <li>"Afiliación de gimnasio para el mes de:MONTH" => Afiliación de gimnasio para el mes de julio"</li>
<li>":YEAR+1 suscripción anual" => "2015 suscripción anual"</li> <li>":YEAR+1 suscripción anual" => "2015 suscripción anual"</li>
<li>"Retainer payment for :QUARTER+1" => "Pago anticipo de pagos para T2"</li> <li>"Retainer payment for :QUARTER+1" => "Pago anticipo de pagos para T2"</li>
</ul>', </ul>',
// dashboard // dashboard
'in_total_revenue' => 'ingreso total', 'in_total_revenue' => 'ingreso total',
'billed_client' => 'cliente facturado', 'billed_client' => 'cliente facturado',
'billed_clients' => 'clientes facturados', 'billed_clients' => 'clientes facturados',
'active_client' => 'cliente activo', 'active_client' => 'cliente activo',
'active_clients' => 'clientes activos', 'active_clients' => 'clientes activos',
'invoices_past_due' => 'Facturas vencidas', 'invoices_past_due' => 'Facturas vencidas',
'upcoming_invoices' => 'Próximas facturas', 'upcoming_invoices' => 'Próximas facturas',
'average_invoice' => 'Promedio de facturación', 'average_invoice' => 'Promedio de facturación',
// list pages // list pages
'archive' => 'Archivar', 'archive' => 'Archivar',
'delete' => 'Eliminar', 'delete' => 'Eliminar',
'archive_client' => 'Archivar cliente', 'archive_client' => 'Archivar cliente',
'delete_client' => 'Eliminar cliente', 'delete_client' => 'Eliminar cliente',
'archive_payment' => 'Archivar pago', 'archive_payment' => 'Archivar pago',
'delete_payment' => 'Eliminar pago', 'delete_payment' => 'Eliminar pago',
'archive_credit' => 'Archivar crédito', 'archive_credit' => 'Archivar crédito',
'delete_credit' => 'Eliminar crédito', 'delete_credit' => 'Eliminar crédito',
'show_archived_deleted' => 'Mostrar archivados/eliminados', 'show_archived_deleted' => 'Mostrar archivados/eliminados',
'filter' => 'Filtrar', 'filter' => 'Filtrar',
'new_client' => 'Nuevo cliente', 'new_client' => 'Nuevo cliente',
'new_invoice' => 'Nueva factura', 'new_invoice' => 'Nueva factura',
'new_payment' => 'Nuevo pago', 'new_payment' => 'Nuevo pago',
'new_credit' => 'Nuevo crédito', 'new_credit' => 'Nuevo crédito',
'contact' => 'Contacto', 'contact' => 'Contacto',
'date_created' => 'Fecha de creación', 'date_created' => 'Fecha de creación',
'last_login' => 'Último acceso', 'last_login' => 'Último acceso',
'balance' => 'Balance', 'balance' => 'Balance',
'action' => 'Acción', 'action' => 'Acción',
'status' => 'Estado', 'status' => 'Estado',
'invoice_total' => 'Total facturado', 'invoice_total' => 'Total facturado',
'frequency' => 'Frequencia', 'frequency' => 'Frequencia',
'start_date' => 'Fecha de inicio', 'start_date' => 'Fecha de inicio',
'end_date' => 'Fecha de finalización', 'end_date' => 'Fecha de finalización',
'transaction_reference' => 'Referencia de transacción', 'transaction_reference' => 'Referencia de transacción',
'method' => 'Método', 'method' => 'Método',
'payment_amount' => 'Valor del pago', 'payment_amount' => 'Valor del pago',
'payment_date' => 'Fecha de Pago', 'payment_date' => 'Fecha de Pago',
'credit_amount' => 'Cantidad de Crédito', 'credit_amount' => 'Cantidad de Crédito',
'credit_balance' => 'Balance de Crédito', 'credit_balance' => 'Balance de Crédito',
'credit_date' => 'Fecha de Crédito', 'credit_date' => 'Fecha de Crédito',
'empty_table' => 'Tabla vacía', 'empty_table' => 'Tabla vacía',
'select' => 'Seleccionar', 'select' => 'Seleccionar',
'edit_client' => 'Editar Cliente', 'edit_client' => 'Editar Cliente',
'edit_invoice' => 'Editar Factura', 'edit_invoice' => 'Editar Factura',
// client view page // client view page
'create_invoice' => 'Crear Factura', 'create_invoice' => 'Crear Factura',
'enter_credit' => 'Agregar Crédito', 'enter_credit' => 'Agregar Crédito',
'last_logged_in' => 'Último inicio de sesión', 'last_logged_in' => 'Último inicio de sesión',
'details' => 'Detalles', 'details' => 'Detalles',
'standing' => 'Standing', //What is this for, context of it's use 'standing' => 'Standing', //What is this for, context of it's use
'credit' => 'Crédito', 'credit' => 'Crédito',
'activity' => 'Actividad', 'activity' => 'Actividad',
'date' => 'Fecha', 'date' => 'Fecha',
'message' => 'Mensaje', 'message' => 'Mensaje',
'adjustment' => 'Ajustes', 'adjustment' => 'Ajustes',
'are_you_sure' => '¿Estás seguro?', 'are_you_sure' => '¿Estás seguro?',
// payment pages // payment pages
'payment_type_id' => 'Tipo de pago', 'payment_type_id' => 'Tipo de pago',
'amount' => 'Cantidad', 'amount' => 'Cantidad',
// account/company pages // account/company pages
'work_email' => 'Correo electrónico de la empresa', 'work_email' => 'Correo electrónico de la empresa',
'language_id' => 'Idioma', 'language_id' => 'Idioma',
'timezone_id' => 'Zona horaria', 'timezone_id' => 'Zona horaria',
'date_format_id' => 'Formato de fecha', 'date_format_id' => 'Formato de fecha',
'datetime_format_id' => 'Format de fecha/hora', 'datetime_format_id' => 'Format de fecha/hora',
'users' => 'Usuarios', 'users' => 'Usuarios',
'localization' => 'Localización', 'localization' => 'Localización',
'remove_logo' => 'Eliminar logo', 'remove_logo' => 'Eliminar logo',
'logo_help' => 'Formatos aceptados: JPEG, GIF y PNG. Altura recomendada: 120px', 'logo_help' => 'Formatos aceptados: JPEG, GIF y PNG. Altura recomendada: 120px',
'payment_gateway' => 'Pasarela de pago', 'payment_gateway' => 'Pasarela de pago',
'gateway_id' => 'Proveedor', 'gateway_id' => 'Proveedor',
'email_notifications' => 'Notificaciones de email', 'email_notifications' => 'Notificaciones de email',
'email_sent' => 'Avísame por email cuando una factura <b>se envía</b>', 'email_sent' => 'Avísame por email cuando una factura <b>se envía</b>',
'email_viewed' => 'Avísame por email cuando una factura <b>se visualiza</b>', 'email_viewed' => 'Avísame por email cuando una factura <b>se visualiza</b>',
'email_paid' => 'Avísame por email cuando una factura <b>se paga</b>', 'email_paid' => 'Avísame por email cuando una factura <b>se paga</b>',
'site_updates' => 'Actualizaciones del sitio', 'site_updates' => 'Actualizaciones del sitio',
'custom_messages' => 'Mensajes a medida', 'custom_messages' => 'Mensajes a medida',
'default_invoice_terms' => 'Configurar términos de factura por defecto', 'default_invoice_terms' => 'Configurar términos de factura por defecto',
'default_email_footer' => 'Configurar firma de email por defecto', 'default_email_footer' => 'Configurar firma de email por defecto',
'import_clients' => 'Importar datos del cliente', 'import_clients' => 'Importar datos del cliente',
'csv_file' => 'Seleccionar archivo CSV', 'csv_file' => 'Seleccionar archivo CSV',
'export_clients' => 'Exportar datos del cliente', 'export_clients' => 'Exportar datos del cliente',
'select_file' => 'Seleccionar archivo', 'select_file' => 'Seleccionar archivo',
'first_row_headers' => 'Usar la primera fila como encabezados', 'first_row_headers' => 'Usar la primera fila como encabezados',
'column' => 'Columna', 'column' => 'Columna',
'sample' => 'Ejemplo', 'sample' => 'Ejemplo',
'import_to' => 'Importar a', 'import_to' => 'Importar a',
'client_will_create' => 'cliente se creará', //What is this for, context of it's use 'client_will_create' => 'cliente se creará', //What is this for, context of it's use
'clients_will_create' => 'clientes se crearan', //What is this for, context of it's use 'clients_will_create' => 'clientes se crearan', //What is this for, context of it's use
// application messages // application messages
'created_client' => 'cliente creado con éxito', 'created_client' => 'cliente creado con éxito',
'created_clients' => ':count clientes creados con éxito', 'created_clients' => ':count clientes creados con éxito',
'updated_settings' => 'Configuración actualizada con éxito', 'updated_settings' => 'Configuración actualizada con éxito',
'removed_logo' => 'Logo eliminado con éxito', 'removed_logo' => 'Logo eliminado con éxito',
'sent_message' => 'Mensaje enviado con éxito', 'sent_message' => 'Mensaje enviado con éxito',
'invoice_error' => 'Seleccionar cliente y corregir errores.', 'invoice_error' => 'Seleccionar cliente y corregir errores.',
'limit_clients' => 'Lo sentimos, se ha pasado del límite de :count clientes', 'limit_clients' => 'Lo sentimos, se ha pasado del límite de :count clientes',
'payment_error' => 'Ha habido un error en el proceso de tu pago. Inténtalo de nuevo más tarde.', 'payment_error' => 'Ha habido un error en el proceso de tu pago. Inténtalo de nuevo más tarde.',
'registration_required' => 'Inscríbete para enviar una factura', 'registration_required' => 'Inscríbete para enviar una factura',
'confirmation_required' => 'Por favor confirma tu dirección de correo electrónico', 'confirmation_required' => 'Por favor confirma tu dirección de correo electrónico',
'updated_client' => 'Cliente actualizado con éxito', 'updated_client' => 'Cliente actualizado con éxito',
'created_client' => 'Cliente creado con éxito', 'created_client' => 'Cliente creado con éxito',
'archived_client' => 'Cliente archivado con éxito', 'archived_client' => 'Cliente archivado con éxito',
'archived_clients' => ':count clientes archivados con éxito', 'archived_clients' => ':count clientes archivados con éxito',
'deleted_client' => 'Cliente eliminado con éxito', 'deleted_client' => 'Cliente eliminado con éxito',
'deleted_clients' => ':count clientes eliminados con éxito', 'deleted_clients' => ':count clientes eliminados con éxito',
'updated_invoice' => 'Factura actualizada con éxito', 'updated_invoice' => 'Factura actualizada con éxito',
'created_invoice' => 'Factura creada con éxito', 'created_invoice' => 'Factura creada con éxito',
'cloned_invoice' => 'Factura clonada con éxito', 'cloned_invoice' => 'Factura clonada con éxito',
'emailed_invoice' => 'Factura enviada con éxito', 'emailed_invoice' => 'Factura enviada con éxito',
'and_created_client' => 'y cliente creado ', 'and_created_client' => 'y cliente creado ',
'archived_invoice' => 'Factura archivada con éxito', 'archived_invoice' => 'Factura archivada con éxito',
'archived_invoices' => ':count facturas archivados con éxito', 'archived_invoices' => ':count facturas archivados con éxito',
'deleted_invoice' => 'Factura eliminada con éxito', 'deleted_invoice' => 'Factura eliminada con éxito',
'deleted_invoices' => ':count facturas eliminadas con éxito', 'deleted_invoices' => ':count facturas eliminadas con éxito',
'created_payment' => 'Pago creado con éxito', 'created_payment' => 'Pago creado con éxito',
'archived_payment' => 'Pago archivado con éxito', 'archived_payment' => 'Pago archivado con éxito',
'archived_payments' => ':count pagos archivados con éxito', 'archived_payments' => ':count pagos archivados con éxito',
'deleted_payment' => 'Pago eliminado con éxito', 'deleted_payment' => 'Pago eliminado con éxito',
'deleted_payments' => ':count pagos eliminados con éxito', 'deleted_payments' => ':count pagos eliminados con éxito',
'applied_payment' => 'Pago aplicado con éxito', 'applied_payment' => 'Pago aplicado con éxito',
'created_credit' => 'Crédito creado con éxito', 'created_credit' => 'Crédito creado con éxito',
'archived_credit' => 'Crédito archivado con éxito', 'archived_credit' => 'Crédito archivado con éxito',
'archived_credits' => ':count creditos archivados con éxito', 'archived_credits' => ':count creditos archivados con éxito',
'deleted_credit' => 'Créditos eliminados con éxito', 'deleted_credit' => 'Créditos eliminados con éxito',
'deleted_credits' => ':count creditos eliminados con éxito', 'deleted_credits' => ':count creditos eliminados con éxito',
// Emails // Emails
'confirmation_subject' => 'Corfimación de tu cuenta en Invoice Ninja', 'confirmation_subject' => 'Corfimación de tu cuenta en Invoice Ninja',
'confirmation_header' => 'Confirmación de Cuenta', 'confirmation_header' => 'Confirmación de Cuenta',
'confirmation_message' => 'Por favor, haz clic en el enlace abajo para confirmar tu cuenta.', 'confirmation_message' => 'Por favor, haz clic en el enlace abajo para confirmar tu cuenta.',
'invoice_subject' => 'Nueva factura de :account', 'invoice_subject' => 'Nueva factura de :account',
'invoice_message' => 'Para visualizar tu factura por el valor de :amount, haz click en el enlace abajo.', 'invoice_message' => 'Para visualizar tu factura por el valor de :amount, haz click en el enlace abajo.',
'payment_subject' => 'Pago recibido', 'payment_subject' => 'Pago recibido',
'payment_message' => 'Gracias por tu pago por valor de :amount.', 'payment_message' => 'Gracias por tu pago por valor de :amount.',
'email_salutation' => 'Estimado :name,', 'email_salutation' => 'Estimado :name,',
'email_signature' => 'Un saludo cordial,', 'email_signature' => 'Un saludo cordial,',
'email_from' => 'El equipo de Invoice Ninja ', 'email_from' => 'El equipo de Invoice Ninja ',
'user_email_footer' => 'Para ajustar la configuración de las notificaciones de tu email, visita '.SITE_URL.'/company/notifications', 'user_email_footer' => 'Para ajustar la configuración de las notificaciones de tu email, visita '.SITE_URL.'/company/notifications',
'invoice_link_message' => 'Para visualizar la factura de cliente, haz clic en el enlace abajo:', 'invoice_link_message' => 'Para visualizar la factura de cliente, haz clic en el enlace abajo:',
'notification_invoice_paid_subject' => 'La factura :invoice ha sido pagada por el cliente :client', 'notification_invoice_paid_subject' => 'La factura :invoice ha sido pagada por el cliente :client',
'notification_invoice_sent_subject' => 'La factura :invoice ha sido enviada a el cliente :client', 'notification_invoice_sent_subject' => 'La factura :invoice ha sido enviada a el cliente :client',
'notification_invoice_viewed_subject' => 'La factura :invoice ha sido visualizado por el cliente:client', 'notification_invoice_viewed_subject' => 'La factura :invoice ha sido visualizado por el cliente:client',
'notification_invoice_paid' => 'Un pago por valor de :amount se ha realizado por el cliente :client a la factura :invoice.', 'notification_invoice_paid' => 'Un pago por valor de :amount se ha realizado por el cliente :client a la factura :invoice.',
'notification_invoice_sent' => 'La factura :invoice por valor de :amount fue enviada al cliente :cliente.', 'notification_invoice_sent' => 'La factura :invoice por valor de :amount fue enviada al cliente :cliente.',
'notification_invoice_viewed' => 'La factura :invoice por valor de :amount fue visualizada por el cliente :client.', 'notification_invoice_viewed' => 'La factura :invoice por valor de :amount fue visualizada por el cliente :client.',
'reset_password' => 'Puedes reconfigurar la contraseña de tu cuenta haciendo clic en el siguiente enlace:', 'reset_password' => 'Puedes reconfigurar la contraseña de tu cuenta haciendo clic en el siguiente enlace:',
'reset_password_footer' => 'Si no has solicitado un cambio de contraseña, por favor contactate con nosostros: ' . CONTACT_EMAIL, 'reset_password_footer' => 'Si no has solicitado un cambio de contraseña, por favor contactate con nosostros: ' . CONTACT_EMAIL,
// Payment page // Payment page
'secure_payment' => 'Pago seguro', 'secure_payment' => 'Pago seguro',
'card_number' => 'Número de tarjeta', 'card_number' => 'Número de tarjeta',
'expiration_month' => 'Mes de caducidad', 'expiration_month' => 'Mes de caducidad',
'expiration_year' => 'Año de caducidad', 'expiration_year' => 'Año de caducidad',
'cvv' => 'CVV', 'cvv' => 'CVV',
// Security alerts // Security alerts
'confide' => array( 'confide' => array(
'too_many_attempts' => 'Demasiados intentos fallidos. Inténtalo de nuevo en un par de minutos.', 'too_many_attempts' => 'Demasiados intentos fallidos. Inténtalo de nuevo en un par de minutos.',
'wrong_credentials' => 'Contraseña o email incorrecto.', 'wrong_credentials' => 'Contraseña o email incorrecto.',
'confirmation' => '¡Tu cuenta se ha confirmado!', 'confirmation' => '¡Tu cuenta se ha confirmado!',
'wrong_confirmation' => 'Código de confirmación incorrecto.', 'wrong_confirmation' => 'Código de confirmación incorrecto.',
'password_forgot' => 'La información sobre el cambio de tu contraseña se ha enviado a tu dirección de correo electrónico.', 'password_forgot' => 'La información sobre el cambio de tu contraseña se ha enviado a tu dirección de correo electrónico.',
'password_reset' => 'Tu contraseña se ha cambiado con éxito.', 'password_reset' => 'Tu contraseña se ha cambiado con éxito.',
'wrong_password_reset' => 'Contraseña no válida. Inténtalo de nuevo', 'wrong_password_reset' => 'Contraseña no válida. Inténtalo de nuevo',
), ),
// Pro Plan // Pro Plan
'pro_plan' => [ 'pro_plan' => [
'remove_logo' => ':link haz click para eliminar el logo de Invoice Ninja', //Maybe incorrect for the context 'remove_logo' => ':link haz click para eliminar el logo de Invoice Ninja', //Maybe incorrect for the context
'remove_logo_link' => 'Haz clic aquí', 'remove_logo_link' => 'Haz clic aquí',
], ],
@ -311,7 +311,7 @@ return array(
'edit' => 'Editar', 'edit' => 'Editar',
'view_as_recipient' => 'Ver como destinitario', 'view_as_recipient' => 'Ver como destinitario',
// product management // product management
'product_library' => 'Inventario de productos', 'product_library' => 'Inventario de productos',
'product' => 'Producto', 'product' => 'Producto',
'products' => 'Productos', 'products' => 'Productos',
@ -335,7 +335,7 @@ return array(
'ninja_email_footer' => 'Usa :site para facturar a tus clientes y recibir pagos de forma gratuita!', 'ninja_email_footer' => 'Usa :site para facturar a tus clientes y recibir pagos de forma gratuita!',
'go_pro' => 'Hazte Pro', 'go_pro' => 'Hazte Pro',
// Quotes // Quotes
'quote' => 'Cotización', 'quote' => 'Cotización',
'quotes' => 'Cotizaciones', 'quotes' => 'Cotizaciones',
'quote_number' => 'Numero de cotización', 'quote_number' => 'Numero de cotización',
@ -344,90 +344,101 @@ return array(
'quote_total' => 'Total cotizado', 'quote_total' => 'Total cotizado',
'your_quote' => 'Tu cotización', 'your_quote' => 'Tu cotización',
'total' => 'Total', 'total' => 'Total',
'clone' => 'Clon', //Whats the context for this one 'clone' => 'Clon', //Whats the context for this one
'new_quote' => 'Nueva cotización', 'new_quote' => 'Nueva cotización',
'create_quote' => 'Crear Cotización', 'create_quote' => 'Crear Cotización',
'edit_quote' => 'Editar Cotización', 'edit_quote' => 'Editar Cotización',
'archive_quote' => 'Archivar Cotización', 'archive_quote' => 'Archivar Cotización',
'delete_quote' => 'Eliminar Cotización', 'delete_quote' => 'Eliminar Cotización',
'save_quote' => 'Guardar Cotización', 'save_quote' => 'Guardar Cotización',
'email_quote' => 'Enviar Cotización', 'email_quote' => 'Enviar Cotización',
'clone_quote' => 'Clonar Cotización', 'clone_quote' => 'Clonar Cotización',
'convert_to_invoice' => 'Convertir a Factura', 'convert_to_invoice' => 'Convertir a Factura',
'view_invoice' => 'Ver Factura', 'view_invoice' => 'Ver Factura',
'view_quote' => 'Ver Cotización', 'view_quote' => 'Ver Cotización',
'view_client' => 'Ver Cliente', 'view_client' => 'Ver Cliente',
'updated_quote' => 'Cotización actualizada con éxito', 'updated_quote' => 'Cotización actualizada con éxito',
'created_quote' => 'Cotización creada con éxito', 'created_quote' => 'Cotización creada con éxito',
'cloned_quote' => 'Cotización clonada con éxito', 'cloned_quote' => 'Cotización clonada con éxito',
'emailed_quote' => 'Cotización enviada con éxito', 'emailed_quote' => 'Cotización enviada con éxito',
'archived_quote' => 'Cotización archivada con éxito', 'archived_quote' => 'Cotización archivada con éxito',
'archived_quotes' => ':count cotizaciones archivadas con exito', 'archived_quotes' => ':count cotizaciones archivadas con exito',
'deleted_quote' => 'Cotizaciónes eliminadas con éxito', 'deleted_quote' => 'Cotizaciónes eliminadas con éxito',
'deleted_quotes' => ':count cotizaciones eliminadas con exito', 'deleted_quotes' => ':count cotizaciones eliminadas con exito',
'converted_to_invoice' => 'Cotización convertida a factura con éxito', 'converted_to_invoice' => 'Cotización convertida a factura con éxito',
'quote_subject' => 'Nueva cotización de :account', 'quote_subject' => 'Nueva cotización de :account',
'quote_message' => 'Para visualizar la cotización por valor de :amount, haz click en el enlace abajo.', 'quote_message' => 'Para visualizar la cotización por valor de :amount, haz click en el enlace abajo.',
'quote_link_message' => 'Para visualizar tu cotización haz click en el enlace abajo:', 'quote_link_message' => 'Para visualizar tu cotización haz click en el enlace abajo:',
'notification_quote_sent_subject' => 'Cotización :invoice enviada a el cliente :client', 'notification_quote_sent_subject' => 'Cotización :invoice enviada a el cliente :client',
'notification_quote_viewed_subject' => 'Cotización :invoice visualizada por el cliente :client', 'notification_quote_viewed_subject' => 'Cotización :invoice visualizada por el cliente :client',
'notification_quote_sent' => 'La cotización :invoice por un valor de :amount, ha sido enviada al cliente :client.', 'notification_quote_sent' => 'La cotización :invoice por un valor de :amount, ha sido enviada al cliente :client.',
'notification_quote_viewed' => 'La cotizacion :invoice por un valor de :amount ha sido visualizada por el cliente :client.', 'notification_quote_viewed' => 'La cotizacion :invoice por un valor de :amount ha sido visualizada por el cliente :client.',
'session_expired' => 'Tu sesión ha caducado.', 'session_expired' => 'Tu sesión ha caducado.',
'invoice_fields' => 'Campos de factura', 'invoice_fields' => 'Campos de factura',
'invoice_options' => 'Opciones de factura', 'invoice_options' => 'Opciones de factura',
'hide_quantity' => 'Ocultar cantidad', 'hide_quantity' => 'Ocultar cantidad',
'hide_quantity_help' => 'Si las cantidades de tus partidas siempre son 1, entonces puedes organizar tus facturas mejor al no mostrar este campo.', 'hide_quantity_help' => 'Si las cantidades de tus partidas siempre son 1, entonces puedes organizar tus facturas mejor al no mostrar este campo.',
'hide_paid_to_date' => 'Ocultar valor pagado a la fecha', 'hide_paid_to_date' => 'Ocultar valor pagado a la fecha',
'hide_paid_to_date_help' => 'Solo mostrar la opción “Pagado a la fecha” en tus facturas en cuanto se ha recibido un pago.', 'hide_paid_to_date_help' => 'Solo mostrar la opción “Pagado a la fecha” en tus facturas en cuanto se ha recibido un pago.',
'charge_taxes' => 'Cargar impuestos', 'charge_taxes' => 'Cargar impuestos',
'user_management' => 'Gestión de usario', 'user_management' => 'Gestión de usario',
'add_user' => 'Añadir usario', 'add_user' => 'Añadir usario',
'send_invite' => 'Enviar invitación', //Context for its use 'send_invite' => 'Enviar invitación', //Context for its use
'sent_invite' => 'Invitación enviada con éxito', 'sent_invite' => 'Invitación enviada con éxito',
'updated_user' => 'Usario actualizado con éxito', 'updated_user' => 'Usario actualizado con éxito',
'invitation_message' => ':invitor te ha invitado a unirte a su cuenta en Invoice Ninja.', 'invitation_message' => ':invitor te ha invitado a unirte a su cuenta en Invoice Ninja.',
'register_to_add_user' => 'Regístrate para añadir usarios', 'register_to_add_user' => 'Regístrate para añadir usarios',
'user_state' => 'Estado', 'user_state' => 'Estado',
'edit_user' => 'Editar Usario', 'edit_user' => 'Editar Usario',
'delete_user' => 'Eliminar Usario', 'delete_user' => 'Eliminar Usario',
'active' => 'Activar', 'active' => 'Activar',
'pending' => 'Pendiente', 'pending' => 'Pendiente',
'deleted_user' => 'Usario eliminado con éxito', 'deleted_user' => 'Usario eliminado con éxito',
'limit_users' => 'Lo sentimos, esta acción excederá el límite de ' . MAX_NUM_USERS . ' usarios', 'limit_users' => 'Lo sentimos, esta acción excederá el límite de ' . MAX_NUM_USERS . ' usarios',
'confirm_email_invoice' => '¿Estás seguro que quieres enviar esta factura?', 'confirm_email_invoice' => '¿Estás seguro que quieres enviar esta factura?',
'confirm_email_quote' => '¿Estás seguro que quieres enviar esta cotización?', 'confirm_email_quote' => '¿Estás seguro que quieres enviar esta cotización?',
'confirm_recurring_email_invoice' => 'Se ha marcado esta factura como recurrente, estás seguro que quieres enviar esta factura?', 'confirm_recurring_email_invoice' => 'Se ha marcado esta factura como recurrente, estás seguro que quieres enviar esta factura?',
'cancel_account' => 'Cancelar Cuenta', 'cancel_account' => 'Cancelar Cuenta',
'cancel_account_message' => 'AVISO: Esta acción eliminará todos tus datos de forma permanente.', 'cancel_account_message' => 'AVISO: Esta acción eliminará todos tus datos de forma permanente.',
'go_back' => 'Atrás', 'go_back' => 'Atrás',
'data_visualizations' => 'Visualización de datos', 'data_visualizations' => 'Visualización de datos',
'sample_data' => 'Datos de ejemplo', 'sample_data' => 'Datos de ejemplo',
'hide' => 'Ocultar', 'hide' => 'Ocultar',
'new_version_available' => 'Una nueva versión de :releases_link disponible. Estás utilizando versión :user_version, la última versión es :latest_version', 'new_version_available' => 'Una nueva versión de :releases_link disponible. Estás utilizando versión :user_version, la última versión es :latest_version',
'invoice_settings' => 'Configuración de facturas', 'invoice_settings' => 'Configuración de facturas',
'invoice_number_prefix' => 'Prefijo de facturación', 'invoice_number_prefix' => 'Prefijo de facturación',
'invoice_number_counter' => 'Numeración de facturación', 'invoice_number_counter' => 'Numeración de facturación',
'quote_number_prefix' => 'Prejijo de cotizaciones', 'quote_number_prefix' => 'Prejijo de cotizaciones',
'quote_number_counter' => 'Numeración de cotizaciones', 'quote_number_counter' => 'Numeración de cotizaciones',
'share_invoice_counter' => 'Compartir la numeración para cotización y facturación', 'share_invoice_counter' => 'Compartir la numeración para cotización y facturación',
'invoice_issued_to' => 'Factura emitida a', 'invoice_issued_to' => 'Factura emitida a',
'invalid_counter' => 'Para evitar posibles conflictos, por favor crea un prefijo de facturación y de cotización.', 'invalid_counter' => 'Para evitar posibles conflictos, por favor crea un prefijo de facturación y de cotización.',
'mark_sent' => 'Marcar como enviado', 'mark_sent' => 'Marcar como enviado',
'gateway_help_1' => ':link to sign up for Authorize.net.', 'gateway_help_1' => ':link to sign up for Authorize.net.',
'gateway_help_2' => ':link to sign up for Authorize.net.', 'gateway_help_2' => ':link to sign up for Authorize.net.',
'gateway_help_17' => ':link to get your PayPal API signature.', 'gateway_help_17' => ':link to get your PayPal API signature.',
'gateway_help_23' => 'Note: use your secret API key, not your publishable API key.', 'gateway_help_23' => 'Note: use your secret API key, not your publishable API key.',
'gateway_help_27' => ':link to sign up for TwoCheckout.', 'gateway_help_27' => ':link to sign up for TwoCheckout.',
'more_designs' => 'More designs', 'more_designs' => 'More designs',
'more_designs_title' => 'Additional Invoice Designs', 'more_designs_title' => 'Additional Invoice Designs',
'more_designs_cloud_header' => 'Go Pro for more invoice designs', 'more_designs_cloud_header' => 'Go Pro for more invoice designs',
'more_designs_cloud_text' => '', 'more_designs_cloud_text' => '',
'more_designs_self_host_header' => 'Get 6 more invoice designs for just $20', 'more_designs_self_host_header' => 'Get 6 more invoice designs for just $20',
'more_designs_self_host_text' => '', 'more_designs_self_host_text' => '',
'buy' => 'Buy', 'buy' => 'Buy',
'bought_designs' => 'Successfully added additional invoice designs', 'bought_designs' => 'Successfully added additional invoice designs',
); 'sent' => 'sent',
'timesheets' => 'Timesheets',
'payment_title' => 'Enter Your Billing Address and Credit Card information',
'payment_cvv' => '*This is the 3-4 digit number onthe back of your card',
'payment_footer1' => '*Billing address must match address accociated with credit card.',
'payment_footer2' => '*Please click "PAY NOW" only once - transaction may take up to 1 minute to process.',
'vat_number' => 'Vat Number',
);

View File

@ -9,7 +9,7 @@ return array(
'work_phone' => 'Téléphone', 'work_phone' => 'Téléphone',
'address' => 'Adresse', 'address' => 'Adresse',
'address1' => 'Rue', 'address1' => 'Rue',
'address2' => 'Appt/Batiment', 'address2' => 'Appt/Bâtiment',
'city' => 'Ville', 'city' => 'Ville',
'state' => 'Région/Département', 'state' => 'Région/Département',
'postal_code' => 'Code Postal', 'postal_code' => 'Code Postal',
@ -18,7 +18,7 @@ return array(
'first_name' => 'Prénom', 'first_name' => 'Prénom',
'last_name' => 'Nom', 'last_name' => 'Nom',
'phone' => 'Téléphone', 'phone' => 'Téléphone',
'email' => 'Email', 'email' => 'Courriel',
'additional_info' => 'Informations complémentaires', 'additional_info' => 'Informations complémentaires',
'payment_terms' => 'Conditions de paiement', 'payment_terms' => 'Conditions de paiement',
'currency_id' => 'Devise', 'currency_id' => 'Devise',
@ -35,13 +35,13 @@ return array(
'invoice_number_short' => 'Facture #', 'invoice_number_short' => 'Facture #',
'po_number' => 'Numéro du bon de commande', 'po_number' => 'Numéro du bon de commande',
'po_number_short' => 'Bon de commande #', 'po_number_short' => 'Bon de commande #',
'frequency_id' => 'Fréquence', //litteral translation : Combien de fois 'frequency_id' => 'Fréquence',
'discount' => 'Remise', //can be "rabais" or "réduction" 'discount' => 'Remise',
'taxes' => 'Taxes', 'taxes' => 'Taxes',
'tax' => 'Taxe', 'tax' => 'Taxe',
'item' => 'Ligne', //I'm not sure, I need the context : screenshot ? 'item' => 'Article',
'description' => 'Description', 'description' => 'Description',
'unit_cost' => 'Coût à l\'unité', 'unit_cost' => 'Coût unitaire',
'quantity' => 'Quantité', 'quantity' => 'Quantité',
'line_total' => 'Total', 'line_total' => 'Total',
'subtotal' => 'Total', 'subtotal' => 'Total',
@ -67,7 +67,7 @@ return array(
'clone_invoice' => 'Dupliquer la facture', 'clone_invoice' => 'Dupliquer la facture',
'archive_invoice' => 'Archiver la facture', 'archive_invoice' => 'Archiver la facture',
'delete_invoice' => 'Supprimer la facture', 'delete_invoice' => 'Supprimer la facture',
'email_invoice' => 'Envoir la facture par email', 'email_invoice' => 'Envoyer la facture par courriel',
'enter_payment' => 'Saisissez un paiement', 'enter_payment' => 'Saisissez un paiement',
'tax_rates' => 'Taux de taxe', 'tax_rates' => 'Taux de taxe',
'rate' => 'Taux', 'rate' => 'Taux',
@ -88,16 +88,16 @@ return array(
'company_details' => 'Informations sur l\'entreprise', 'company_details' => 'Informations sur l\'entreprise',
'online_payments' => 'Paiements en ligne', 'online_payments' => 'Paiements en ligne',
'notifications' => 'Notifications', 'notifications' => 'Notifications',
'import_export' => 'Import/Export', 'import_export' => 'Importer/Exporter',
'done' => 'Valider', 'done' => 'Valider',
'save' => 'Sauvegarder', 'save' => 'Sauvegarder',
'create' => 'Créer', 'create' => 'Créer',
'upload' => 'Envoyer', 'upload' => 'Envoyer',
'import' => 'Import', 'import' => 'Importer',
'download' => 'Télécharger', 'download' => 'Télécharger',
'cancel' => 'Annuler', 'cancel' => 'Annuler',
'close' => 'Fermer', 'close' => 'Fermer',
'provide_email' => 'Veuillez renseigner une adresse email valide', 'provide_email' => 'Veuillez renseigner une adresse courriel valide',
'powered_by' => 'Propulsé par', 'powered_by' => 'Propulsé par',
'no_items' => 'Aucun élément', 'no_items' => 'Aucun élément',
@ -156,8 +156,8 @@ return array(
'credit_date' => 'Date de crédit', 'credit_date' => 'Date de crédit',
'empty_table' => 'Aucune donnée disponible dans la table', 'empty_table' => 'Aucune donnée disponible dans la table',
'select' => 'Sélectionner', 'select' => 'Sélectionner',
'edit_client' => 'Editer le Client', 'edit_client' => 'Éditer le Client',
'edit_invoice' => 'Editer la Facture', 'edit_invoice' => 'Éditer la Facture',
// client view page // client view page
'create_invoice' => 'Créer une facture', 'create_invoice' => 'Créer une facture',
@ -177,7 +177,7 @@ return array(
'amount' => 'Montant', 'amount' => 'Montant',
// account/company pages // account/company pages
'work_email' => 'Email', 'work_email' => 'Courriel',
'language_id' => 'Langage', 'language_id' => 'Langage',
'timezone_id' => 'Fuseau horaire', 'timezone_id' => 'Fuseau horaire',
'date_format_id' => 'Format de la date', 'date_format_id' => 'Format de la date',
@ -188,14 +188,14 @@ return array(
'logo_help' => 'Formats supportés: JPEG, GIF et PNG. Hauteur recommandé: 120px', 'logo_help' => 'Formats supportés: JPEG, GIF et PNG. Hauteur recommandé: 120px',
'payment_gateway' => 'Passerelle de paiement', 'payment_gateway' => 'Passerelle de paiement',
'gateway_id' => 'Fournisseur', 'gateway_id' => 'Fournisseur',
'email_notifications' => 'Notifications par email', 'email_notifications' => 'Notifications par courriel',
'email_sent' => 'm\'envoyer un email quand une facture est <b>envoyée</b>', 'email_sent' => 'm\'envoyer un courriel quand une facture est <b>envoyée</b>',
'email_viewed' => 'm\'envoyer un email quand une facture est <b>vue</b>', 'email_viewed' => 'm\'envoyer un courriel quand une facture est <b>vue</b>',
'email_paid' => 'm\'envoyer un email quand une facture est <b>payée</b>', 'email_paid' => 'm\'envoyer un courriel quand une facture est <b>payée</b>',
'site_updates' => 'Mises à jour du site', 'site_updates' => 'Mises à jour du site',
'custom_messages' => 'Messages personnalisés', 'custom_messages' => 'Messages personnalisés',
'default_invoice_terms' => 'Définir comme les conditions par défaut', 'default_invoice_terms' => 'Définir comme les conditions par défaut',
'default_email_footer' => 'Définir comme la signature d\'email par défaut', 'default_email_footer' => 'Définir comme la signature de courriel par défaut',
'import_clients' => 'Importer des données clients', 'import_clients' => 'Importer des données clients',
'csv_file' => 'Sélectionner un fichier CSV', 'csv_file' => 'Sélectionner un fichier CSV',
'export_clients' => 'Exporter des données clients', 'export_clients' => 'Exporter des données clients',
@ -216,8 +216,8 @@ return array(
'invoice_error' => 'Veuillez vous assurer de sélectionner un client et de corriger les erreurs', 'invoice_error' => 'Veuillez vous assurer de sélectionner un client et de corriger les erreurs',
'limit_clients' => 'Désolé, cela dépasse la limite de :count clients', 'limit_clients' => 'Désolé, cela dépasse la limite de :count clients',
'payment_error' => 'Il y a eu une erreur lors du traitement de votre paiement. Veuillez réessayer ultérieurement', 'payment_error' => 'Il y a eu une erreur lors du traitement de votre paiement. Veuillez réessayer ultérieurement',
'registration_required' => 'Veuillez vous enregistrer pour envoyer une facture par email', 'registration_required' => 'Veuillez vous enregistrer pour envoyer une facture par courriel',
'confirmation_required' => 'Veuillez confirmer votre adresse email', 'confirmation_required' => 'Veuillez confirmer votre adresse courriel',
'updated_client' => 'Client modifié avec succès', 'updated_client' => 'Client modifié avec succès',
'created_client' => 'Client créé avec succès', 'created_client' => 'Client créé avec succès',
@ -229,7 +229,7 @@ return array(
'updated_invoice' => 'Facture modifiée avec succès', 'updated_invoice' => 'Facture modifiée avec succès',
'created_invoice' => 'Facture créée avec succès', 'created_invoice' => 'Facture créée avec succès',
'cloned_invoice' => 'Facture dupliquée avec succès', 'cloned_invoice' => 'Facture dupliquée avec succès',
'emailed_invoice' => 'Facture envoyée par email avec succès', 'emailed_invoice' => 'Facture envoyée par courriel avec succès',
'and_created_client' => 'et client créé', 'and_created_client' => 'et client créé',
'archived_invoice' => 'Facture archivée avec succès', 'archived_invoice' => 'Facture archivée avec succès',
'archived_invoices' => ':count factures archivées avec succès', 'archived_invoices' => ':count factures archivées avec succès',
@ -260,13 +260,13 @@ return array(
'email_salutation' => 'Cher :name,', 'email_salutation' => 'Cher :name,',
'email_signature' => 'Cordialement,', 'email_signature' => 'Cordialement,',
'email_from' => 'L\'équipe InvoiceNinja', 'email_from' => 'L\'équipe InvoiceNinja',
'user_email_footer' => 'Pour modifier vos paramètres de notification par email, veuillez visiter '.SITE_URL.'/company/notifications', 'user_email_footer' => 'Pour modifier vos paramètres de notification par courriel, veuillez visiter '.SITE_URL.'/company/notifications',
'invoice_link_message' => 'Pour voir la facture de votre client cliquez sur le lien ci-après :', 'invoice_link_message' => 'Pour voir la facture de votre client cliquez sur le lien ci-après :',
'notification_invoice_paid_subject' => 'La facture :invoice a été payée par le client :client', 'notification_invoice_paid_subject' => 'La facture :invoice a été payée par le client :client',
'notification_invoice_sent_subject' => 'La facture :invoice a été envoyée au client :client', 'notification_invoice_sent_subject' => 'La facture :invoice a été envoyée au client :client',
'notification_invoice_viewed_subject' => 'La facture :invoice a été vue par le client :client', 'notification_invoice_viewed_subject' => 'La facture :invoice a été vue par le client :client',
'notification_invoice_paid' => 'Un paiement de :amount a été effectué par le client :client concernant la facture :invoice.', 'notification_invoice_paid' => 'Un paiement de :amount a été effectué par le client :client concernant la facture :invoice.',
'notification_invoice_sent' => 'Le client suivant :client a reçu par email la facture :invoice d\'un montant de :amount', 'notification_invoice_sent' => 'Le client suivant :client a reçu par courriel la facture :invoice d\'un montant de :amount',
'notification_invoice_viewed' => 'Le client suivant :client a vu la facture :invoice d\'un montant de :amount', 'notification_invoice_viewed' => 'Le client suivant :client a vu la facture :invoice d\'un montant de :amount',
'reset_password' => 'Vous pouvez réinitialiser votre mot de passe en cliquant sur le lien suivant :', 'reset_password' => 'Vous pouvez réinitialiser votre mot de passe en cliquant sur le lien suivant :',
'reset_password_footer' => 'Si vous n\'avez pas effectué de demande de réinitalisation de mot de passe veuillez contacter notre support :' . CONTACT_EMAIL, 'reset_password_footer' => 'Si vous n\'avez pas effectué de demande de réinitalisation de mot de passe veuillez contacter notre support :' . CONTACT_EMAIL,
@ -281,10 +281,10 @@ return array(
// Security alerts // Security alerts
'confide' => array( 'confide' => array(
'too_many_attempts' => 'Trop de tentatives. Essayez à nouveau dans quelques minutes.', 'too_many_attempts' => 'Trop de tentatives. Essayez à nouveau dans quelques minutes.',
'wrong_credentials' => 'Email ou mot de passe incorrect', 'wrong_credentials' => 'Courriel ou mot de passe incorrect',
'confirmation' => 'Votre compte a été validé !', 'confirmation' => 'Votre compte a été validé !',
'wrong_confirmation' => 'Code de confirmation incorrect.', 'wrong_confirmation' => 'Code de confirmation incorrect.',
'password_forgot' => 'Les informations de réinitialisation de votre mot de passe vous ont été envoyées par email.', 'password_forgot' => 'Les informations de réinitialisation de votre mot de passe vous ont été envoyées par courriel.',
'password_reset' => 'Votre mot de passe a été modifié avec succès.', 'password_reset' => 'Votre mot de passe a été modifié avec succès.',
'wrong_password_reset' => 'Mot de passe incorrect. Veuillez réessayer', 'wrong_password_reset' => 'Mot de passe incorrect. Veuillez réessayer',
), ),
@ -299,10 +299,10 @@ return array(
'sign_up_to_save' => 'Connectez vous pour sauvegarder votre travail', 'sign_up_to_save' => 'Connectez vous pour sauvegarder votre travail',
'agree_to_terms' =>'J\'accepte les conditions d\'utilisation d\'Invoice ninja :terms', 'agree_to_terms' =>'J\'accepte les conditions d\'utilisation d\'Invoice ninja :terms',
'terms_of_service' => 'Conditions d\'utilisation', 'terms_of_service' => 'Conditions d\'utilisation',
'email_taken' => 'L\'adresse email est déjà existante', 'email_taken' => 'L\'adresse courriel existe déjà',
'working' => 'En cours', 'working' => 'En cours',
'success' => 'Succès', 'success' => 'Succès',
'success_message' => 'Inscription réussie avec succès. Veuillez cliquer sur le lien dans l\'email de confirmation de compte pour vérifier votre adresse email.', 'success_message' => 'Inscription réussie avec succès. Veuillez cliquer sur le lien dans le courriel de confirmation de compte pour vérifier votre adresse courriel.',
'erase_data' => 'Cela supprimera vos données de façon permanente.', 'erase_data' => 'Cela supprimera vos données de façon permanente.',
'password' => 'Mot de passe', 'password' => 'Mot de passe',
@ -316,7 +316,7 @@ return array(
'client_fields' => 'Champs client', 'client_fields' => 'Champs client',
'field_label' => 'Nom du champ', 'field_label' => 'Nom du champ',
'field_value' => 'Valeur du champ', 'field_value' => 'Valeur du champ',
'edit' => 'Editer', 'edit' => 'Éditer',
'view_as_recipient' => 'Voir en tant que destinataire', 'view_as_recipient' => 'Voir en tant que destinataire',
// product management // product management
@ -328,7 +328,7 @@ return array(
'update_products' => 'Mise à jour auto des produits', 'update_products' => 'Mise à jour auto des produits',
'update_products_help' => 'La mise à jour d\'une facture entraîne la <b>mise à jour des produits</b>', 'update_products_help' => 'La mise à jour d\'une facture entraîne la <b>mise à jour des produits</b>',
'create_product' => 'Nouveau produit', 'create_product' => 'Nouveau produit',
'edit_product' => 'Editer Produit', 'edit_product' => 'Éditer Produit',
'archive_product' => 'Archiver Produit', 'archive_product' => 'Archiver Produit',
'updated_product' => 'Produit mis à jour', 'updated_product' => 'Produit mis à jour',
'created_product' => 'Produit créé', 'created_product' => 'Produit créé',
@ -341,51 +341,51 @@ return array(
'specify_colors' => 'Spécifiez les couleurs', 'specify_colors' => 'Spécifiez les couleurs',
'specify_colors_label' => 'Sélectionnez les couleurs utilisés dans les factures', 'specify_colors_label' => 'Sélectionnez les couleurs utilisés dans les factures',
'chart_builder' => 'Chart Builder', 'chart_builder' => 'Concepteur de graphiques',
'ninja_email_footer' => 'Use :site to invoice your clients and get paid online for free!', 'ninja_email_footer' => 'Utilisez :site pour facturer vos clients et être payés en ligne gratuitement!',
'go_pro' => 'Go Pro', 'go_pro' => 'Passez au Plan Pro',
// Quotes // Quotes
'quote' => 'Devis', 'quote' => 'Soumission',
'quotes' => 'Devis', 'quotes' => 'Soumissions',
'quote_number' => 'Devis numéro', 'quote_number' => 'Soumission numéro',
'quote_number_short' => 'Devis N°', 'quote_number_short' => 'Soumission #',
'quote_date' => 'Date du devis', 'quote_date' => 'Date de soumission',
'quote_total' => 'Montant du devis', 'quote_total' => 'Montant de la soumis',
'your_quote' => 'Votre Devis', 'your_quote' => 'Votre Soumission',
'total' => 'Total', 'total' => 'Total',
'clone' => 'Dupliquer', 'clone' => 'Dupliquer',
'new_quote' => 'Nouveau devis', 'new_quote' => 'Nouvelle soumission',
'create_quote' => 'Créer un devis', 'create_quote' => 'Créer une soumission',
'edit_quote' => 'Editer le devis', 'edit_quote' => 'Éditer la soumission',
'archive_quote' => 'Archiver le devis', 'archive_quote' => 'Archiver la soumission',
'delete_quote' => 'Supprimer le devis', 'delete_quote' => 'Supprimer la soumission',
'save_quote' => 'Enregistrer le devis', 'save_quote' => 'Enregistrer la soumission',
'email_quote' => 'Envoyer le devis par mail', 'email_quote' => 'Envoyer la soumission par courriel',
'clone_quote' => 'Dupliquer le devis', 'clone_quote' => 'Dupliquer la soumission',
'convert_to_invoice' => 'Convertir en facture', 'convert_to_invoice' => 'Convertir en facture',
'view_invoice' => 'Nouvelle facture', 'view_invoice' => 'Nouvelle facture',
'view_quote' => 'Voir le devis', 'view_quote' => 'Voir la soumission',
'view_client' => 'Voir le client', 'view_client' => 'Voir le client',
'updated_quote' => 'Devis mis à jour', 'updated_quote' => 'Soumission mise à jour',
'created_quote' => 'Devis créé', 'created_quote' => 'Soumission créée',
'cloned_quote' => 'Devis dupliqué avec succès', 'cloned_quote' => 'Soumission dupliquée avec succès',
'emailed_quote' => 'Devis envoyé par email', 'emailed_quote' => 'Soumission envoyée par courriel',
'archived_quote' => 'Devis archivé', 'archived_quote' => 'Soumission archivée',
'archived_quotes' => ':count devis ont bien été archivé', 'archived_quotes' => ':count soumissions ont bien été archivés',
'deleted_quote' => 'Devis supprimé', 'deleted_quote' => 'Soumission supprimée',
'deleted_quotes' => ':count devis ont bien été supprimés', 'deleted_quotes' => ':count soumissions ont bien été supprimés',
'converted_to_invoice' => 'Le devis a bien été converti en facture', 'converted_to_invoice' => 'La soumission a bien été convertie en facture',
'quote_subject' => 'New quote from :account', 'quote_subject' => 'Nouvelle soumission de :account',
'quote_message' => 'To view your quote for :amount, click the link below.', 'quote_message' => 'Pour visionner votre soumission de :amount, cliquez le lien ci-dessous.',
'quote_link_message' => 'To view your client quote click the link below:', 'quote_link_message' => 'Pour visionner votre soumission, cliquez le lien ci-dessous:',
'notification_quote_sent_subject' => 'Quote :invoice was sent to :client', 'notification_quote_sent_subject' => 'La soumission :invoice a été envoyée à :client',
'notification_quote_viewed_subject' => 'Quote :invoice was viewed by :client', 'notification_quote_viewed_subject' => 'La soumission :invoice a été visionnée par :client',
'notification_quote_sent' => 'The following client :client was emailed Quote :invoice for :amount.', 'notification_quote_sent' => 'La facture :invoice de :amount a été envoyée au client :client.',
'notification_quote_viewed' => 'The following client :client viewed Quote :invoice for :amount.', 'notification_quote_viewed' => 'La facture :invoice de :amount a été visionée par le client :client.',
'session_expired' => 'Votre session a expiré.', 'session_expired' => 'Votre session a expiré.',
@ -396,45 +396,45 @@ return array(
'hide_paid_to_date' => 'Hide paid to date', 'hide_paid_to_date' => 'Hide paid to date',
'hide_paid_to_date_help' => 'Only display the "Paid to Date" area on your invoices once a payment has been received.', 'hide_paid_to_date_help' => 'Only display the "Paid to Date" area on your invoices once a payment has been received.',
'charge_taxes' => 'Charge taxes', 'charge_taxes' => 'Factures des taxes',
'user_management' => 'Gestion des utilisateurs', 'user_management' => 'Gestion des utilisateurs',
'add_user' => 'Ajouter utilisateur', 'add_user' => 'Ajouter utilisateur',
'send_invite' => 'Envoyer invitation', 'send_invite' => 'Envoyer invitation',
'sent_invite' => 'Invitation envoyés', 'sent_invite' => 'Invitation envoyés',
'updated_user' => 'Utilisateur mis à jour', 'updated_user' => 'Utilisateur mis à jour',
'invitation_message' => 'Vous avez été invité par :invitor. ', 'invitation_message' => 'Vous avez été invité par :invitor. ',
'register_to_add_user' => 'Please sign up to add a user', 'register_to_add_user' => 'Veuillez vous enregistrer pour ajouter un utilisateur',
'user_state' => 'Etat', 'user_state' => 'État',
'edit_user' => 'Editer l\'utilisateur', 'edit_user' => 'Éditer l\'utilisateur',
'delete_user' => 'Supprimer l\'utilisateur', 'delete_user' => 'Supprimer l\'utilisateur',
'active' => 'Actif', 'active' => 'Actif',
'pending' => 'En attente', 'pending' => 'En attente',
'deleted_user' => 'Utilisateur supprimé', 'deleted_user' => 'Utilisateur supprimé',
'limit_users' => 'Sorry, this will exceed the limit of ' . MAX_NUM_USERS . ' users', 'limit_users' => 'Désolé, ceci excédera la limite de ' . MAX_NUM_USERS . ' utilisateurs',
'confirm_email_invoice' => 'Are you sure you want to email this invoice?', 'confirm_email_invoice' => 'Voulez-vous vraiment envoyer cette facture par courriel?',
'confirm_email_quote' => 'Are you sure you want to email this quote?', 'confirm_email_quote' => 'Voulez-vous vraiment envoyer cette soumission par courriel?',
'confirm_recurring_email_invoice' => 'Recurring is enabled, are you sure you want this invoice emailed?', 'confirm_recurring_email_invoice' => 'Les factures récurrentes sont activées, voulez-vous vraiment envoyer cette facture par courriel?',
'cancel_account' => 'Supprimé le compte', 'cancel_account' => 'Supprimer le compte',
'cancel_account_message' => 'Warning: This will permanently erase all of your data, there is no undo.', 'cancel_account_message' => 'Attention: Ceci supprimera de façon permanente toutes vos données; cette action est irréversible.',
'go_back' => 'Retour', 'go_back' => 'Retour',
'data_visualizations' => 'Data Visualizations', 'data_visualizations' => 'Visualisation des données',
'sample_data' => 'Sample data shown', 'sample_data' => 'Données fictives présentées',
'hide' => 'Cacher', 'hide' => 'Cacher',
'new_version_available' => 'A new version of :releases_link is available. You\'re running v:user_version, the latest is v:latest_version', 'new_version_available' => 'Une nouvelle version de :releases_link est disponible. Vous utilisez v:user_version, la plus récente est v:latest_version',
'invoice_settings' => 'Paramètre des factures', 'invoice_settings' => 'Paramètres des factures',
'invoice_number_prefix' => 'Invoice Number Prefix', 'invoice_number_prefix' => 'Préfixe du numéro de facture',
'invoice_number_counter' => 'Invoice Number Counter', 'invoice_number_counter' => 'Compteur du numéro de facture',
'quote_number_prefix' => 'Quote Number Prefix', 'quote_number_prefix' => 'Préfixe du numéro de soumission',
'quote_number_counter' => 'Quote Number Counter', 'quote_number_counter' => 'Compteur du numéro de soumission',
'share_invoice_counter' => 'Share invoice counter', 'share_invoice_counter' => 'Partager le compteur de facture',
'invoice_issued_to' => 'Invoice issued to', 'invoice_issued_to' => 'Facture destinée à',
'invalid_counter' => 'To prevent a possible conflict please set either an invoice or quote number prefix', 'invalid_counter' => 'To prevent a possible conflict please set either an invoice or quote number prefix',
'mark_sent' => 'Maquer comme envoyé', 'mark_sent' => 'Marquer comme envoyé',
'gateway_help_1' => ':link to sign up for Authorize.net.', 'gateway_help_1' => ':link to sign up for Authorize.net.',
'gateway_help_2' => ':link to sign up for Authorize.net.', 'gateway_help_2' => ':link to sign up for Authorize.net.',
@ -442,14 +442,22 @@ return array(
'gateway_help_23' => 'Note: use your secret API key, not your publishable API key.', 'gateway_help_23' => 'Note: use your secret API key, not your publishable API key.',
'gateway_help_27' => ':link to sign up for TwoCheckout.', 'gateway_help_27' => ':link to sign up for TwoCheckout.',
'more_designs' => 'More designs', 'more_designs' => 'Plus de modèles',
'more_designs_title' => 'Additional Invoice Designs', 'more_designs_title' => 'Modèles de factures additionnels',
'more_designs_cloud_header' => 'Go Pro for more invoice designs', 'more_designs_cloud_header' => 'Passez au Plan Pro pour plus de modèles',
'more_designs_cloud_text' => '', 'more_designs_cloud_text' => '',
'more_designs_self_host_header' => 'Get 6 more invoice designs for just $20', 'more_designs_self_host_header' => 'Obtenez 6 modèles de factures additionnels pour seulement 20$',
'more_designs_self_host_text' => '', 'more_designs_self_host_text' => '',
'buy' => 'Acheter', 'buy' => 'Acheter',
'bought_designs' => 'Successfully added additional invoice designs', 'bought_designs' => 'Les nouveaux modèles ont été ajoutés avec succès',
'sent' => 'sent',
'timesheets' => 'Timesheets',
'payment_title' => 'Enter Your Billing Address and Credit Card information',
'payment_cvv' => '*This is the 3-4 digit number onthe back of your card',
'payment_footer1' => '*Billing address must match address accociated with credit card.',
'payment_footer2' => '*Please click "PAY NOW" only once - transaction may take up to 1 minute to process.',
'vat_number' => 'Vat Number',
); );

View File

@ -452,5 +452,16 @@ return array(
'bought_designs' => 'Successfully added additional invoice designs', 'bought_designs' => 'Successfully added additional invoice designs',
'sent' => 'sent',
'timesheets' => 'Timesheets',
'payment_title' => 'Enter Your Billing Address and Credit Card information',
'payment_cvv' => '*This is the 3-4 digit number onthe back of your card',
'payment_footer1' => '*Billing address must match address accociated with credit card.',
'payment_footer2' => '*Please click "PAY NOW" only once - transaction may take up to 1 minute to process.',
'vat_number' => 'Vat Number',
); );

View File

@ -460,5 +460,17 @@ return array(
'bought_designs' => 'Successfully added additional invoice designs', 'bought_designs' => 'Successfully added additional invoice designs',
'sent' => 'sent',
'timesheets' => 'Timesheets',
'payment_title' => 'Enter Your Billing Address and Credit Card information',
'payment_cvv' => '*This is the 3-4 digit number onthe back of your card',
'payment_footer1' => '*Billing address must match address accociated with credit card.',
'payment_footer2' => '*Please click "PAY NOW" only once - transaction may take up to 1 minute to process.',
'vat_number' => 'Vat Number',
); );

View File

@ -459,5 +459,16 @@ return array(
'bought_designs' => 'Successfully added additional invoice designs', 'bought_designs' => 'Successfully added additional invoice designs',
'sent' => 'sent',
'timesheets' => 'Timesheets',
'payment_title' => 'Enter Your Billing Address and Credit Card information',
'payment_cvv' => '*This is the 3-4 digit number onthe back of your card',
'payment_footer1' => '*Billing address must match address accociated with credit card.',
'payment_footer2' => '*Please click "PAY NOW" only once - transaction may take up to 1 minute to process.',
'vat_number' => 'Vat Number',
); );

View File

@ -453,4 +453,16 @@ return array(
'bought_designs' => 'Successfully added additional invoice designs', 'bought_designs' => 'Successfully added additional invoice designs',
'sent' => 'sent',
'timesheets' => 'Timesheets',
'payment_title' => 'Enter Your Billing Address and Credit Card information',
'payment_cvv' => '*This is the 3-4 digit number onthe back of your card',
'payment_footer1' => '*Billing address must match address accociated with credit card.',
'payment_footer2' => '*Please click "PAY NOW" only once - transaction may take up to 1 minute to process.',
'vat_number' => 'Vat Number',
); );

View File

@ -441,4 +441,17 @@ return array(
'sent' => 'sent',
'timesheets' => 'Timesheets',
'payment_title' => 'Enter Your Billing Address and Credit Card information',
'payment_cvv' => '*This is the 3-4 digit number onthe back of your card',
'payment_footer1' => '*Billing address must match address accociated with credit card.',
'payment_footer2' => '*Please click "PAY NOW" only once - transaction may take up to 1 minute to process.',
'vat_number' => 'Vat Number',
); );

View File

@ -131,11 +131,23 @@ class Client extends EntityModel
return $str; return $str;
} }
public function getVatNumber() public function getIdNumber()
{ {
$str = ''; $str = '';
if ($this->work_phone) if ($this->id_number)
{
$str .= '<i class="fa fa-vat-number" style="width: 20px"></i>' . $this->vat_number;
}
return $str;
}
public function getVatNumber()
{
$str = '';
if ($this->vat_number)
{ {
$str .= '<i class="fa fa-vat-number" style="width: 20px"></i>' . $this->vat_number; $str .= '<i class="fa fa-vat-number" style="width: 20px"></i>' . $this->vat_number;
} }

View File

@ -95,7 +95,8 @@ class Invoice extends EntityModel
$this->client->setVisible([ $this->client->setVisible([
'name', 'name',
'vat_number', 'id_number',
'vat_number',
'address1', 'address1',
'address2', 'address2',
'city', 'city',
@ -111,7 +112,8 @@ class Invoice extends EntityModel
$this->account->setVisible([ $this->account->setVisible([
'name', 'name',
'vat_number', 'id_number',
'vat_number',
'address1', 'address1',
'address2', 'address2',
'city', 'city',

View File

@ -15,16 +15,9 @@ class Mailer {
Mail::send($views, $data, function($message) use ($toEmail, $fromEmail, $fromName, $subject) Mail::send($views, $data, function($message) use ($toEmail, $fromEmail, $fromName, $subject)
{ {
$replyEmail = $fromEmail; $replyEmail = $fromEmail;
$fromEmail = NINJA_FROM_EMAIL;
// We're unable to set the true fromEmail for emails sent from Yahoo or AOL accounts $message->to($toEmail)->from($fromEmail, $fromName)->replyTo($replyEmail, $fromName)->subject($subject);
// http://blog.mandrill.com/yahoos-recent-dmarc-changes-and-how-that-impacts-senders.html
if (strpos($fromEmail, '@yahoo.') !== false || strpos($fromEmail, '@aol.') !== FALSE)
{
$fromEmail = CONTACT_EMAIL;
}
$message->to($toEmail)->from($fromEmail, $fromName)->sender($fromEmail, $fromName)
->replyTo($replyEmail, $fromName)->subject($subject);
}); });
} }
} }

View File

@ -45,7 +45,7 @@ class AccountRepository
public function getSearchData() public function getSearchData()
{ {
$clients = \DB::table('clients') $clients = \DB::table('clients')
->where('clients.deleted_at', '=', null) ->where('clients.deleted_at', '=', null)
->where('clients.account_id', '=', \Auth::user()->account_id) ->where('clients.account_id', '=', \Auth::user()->account_id)
->whereRaw("clients.name <> ''") ->whereRaw("clients.name <> ''")

View File

@ -62,7 +62,10 @@ class ClientRepository
if (isset($data['name'])) { if (isset($data['name'])) {
$client->name = trim($data['name']); $client->name = trim($data['name']);
} }
if (isset($data['vat_number'])) { if (isset($data['id_number'])) {
$client->id_number = trim($data['id_number']);
}
if (isset($data['vat_number'])) {
$client->vat_number = trim($data['vat_number']); $client->vat_number = trim($data['vat_number']);
} }
if (isset($data['work_phone'])) { if (isset($data['work_phone'])) {
@ -102,7 +105,7 @@ class ClientRepository
$client->industry_id = $data['industry_id'] ? $data['industry_id'] : null; $client->industry_id = $data['industry_id'] ? $data['industry_id'] : null;
} }
if (isset($data['currency_id'])) { if (isset($data['currency_id'])) {
$client->currency_id = $data['currency_id'] ? $data['currency_id'] : 1; $client->currency_id = $data['currency_id'] ? $data['currency_id'] : null;
} }
if (isset($data['payment_terms'])) { if (isset($data['payment_terms'])) {
$client->payment_terms = $data['payment_terms']; $client->payment_terms = $data['payment_terms'];

View File

@ -9,7 +9,7 @@ use TaxRate;
class InvoiceRepository class InvoiceRepository
{ {
public function getInvoices($accountId, $clientPublicId = false, $filter = false) public function getInvoices($accountId, $clientPublicId = false, $entityType = ENTITY_INVOICE, $filter = false)
{ {
$query = \DB::table('invoices') $query = \DB::table('invoices')
->join('clients', 'clients.id', '=','invoices.client_id') ->join('clients', 'clients.id', '=','invoices.client_id')
@ -22,7 +22,7 @@ class InvoiceRepository
->where('contacts.is_primary', '=', true) ->where('contacts.is_primary', '=', true)
->select('clients.public_id as client_public_id', 'invoice_number', 'invoice_status_id', 'clients.name as client_name', 'invoices.public_id', 'amount', 'invoices.balance', 'invoice_date', 'due_date', 'invoice_statuses.name as invoice_status_name', 'clients.currency_id', 'contacts.first_name', 'contacts.last_name', 'contacts.email', 'quote_id', 'quote_invoice_id'); ->select('clients.public_id as client_public_id', 'invoice_number', 'invoice_status_id', 'clients.name as client_name', 'invoices.public_id', 'amount', 'invoices.balance', 'invoice_date', 'due_date', 'invoice_statuses.name as invoice_status_name', 'clients.currency_id', 'contacts.first_name', 'contacts.last_name', 'contacts.email', 'quote_id', 'quote_invoice_id');
if (!\Session::get('show_trash:invoice')) if (!\Session::get('show_trash:' . $entityType))
{ {
$query->where('invoices.deleted_at', '=', null); $query->where('invoices.deleted_at', '=', null);
} }
@ -85,7 +85,7 @@ class InvoiceRepository
public function getDatatable($accountId, $clientPublicId = null, $entityType, $search) public function getDatatable($accountId, $clientPublicId = null, $entityType, $search)
{ {
$query = $this->getInvoices($accountId, $clientPublicId, $search) $query = $this->getInvoices($accountId, $clientPublicId, $entityType, $search)
->where('invoices.is_quote', '=', $entityType == ENTITY_QUOTE ? true : false); ->where('invoices.is_quote', '=', $entityType == ENTITY_QUOTE ? true : false);
$table = \Datatable::query($query); $table = \Datatable::query($query);

View File

@ -247,6 +247,7 @@ define('NINJA_GATEWAY_ID', GATEWAY_AUTHORIZE_NET);
define('NINJA_GATEWAY_CONFIG', '{"apiLoginId":"626vWcD5","transactionKey":"4bn26TgL9r4Br4qJ","testMode":"","developerMode":""}'); define('NINJA_GATEWAY_CONFIG', '{"apiLoginId":"626vWcD5","transactionKey":"4bn26TgL9r4Br4qJ","testMode":"","developerMode":""}');
define('NINJA_URL', 'https://www.invoiceninja.com'); define('NINJA_URL', 'https://www.invoiceninja.com');
define('NINJA_VERSION', '1.5.1'); define('NINJA_VERSION', '1.5.1');
define('NINJA_FROM_EMAIL', 'maildelivery@invoiceninja.com');
define('RELEASES_URL', 'https://github.com/hillelcoren/invoice-ninja/releases/'); define('RELEASES_URL', 'https://github.com/hillelcoren/invoice-ninja/releases/');
define('COUNT_FREE_DESIGNS', 4); define('COUNT_FREE_DESIGNS', 4);

View File

@ -29,7 +29,8 @@
{{ Former::legend('details') }} {{ Former::legend('details') }}
{{ Former::text('name') }} {{ Former::text('name') }}
{{ Former::text('vat_number') }} {{ Former::text('id_number') }}
{{ Former::text('vat_number') }}
{{ Former::text('work_email') }} {{ Former::text('work_email') }}
{{ Former::text('work_phone') }} {{ Former::text('work_phone') }}
{{ Former::file('logo')->max(2, 'MB')->accept('image')->inlineHelp(trans('texts.logo_help')) }} {{ Former::file('logo')->max(2, 'MB')->accept('image')->inlineHelp(trans('texts.logo_help')) }}

View File

@ -4,7 +4,8 @@
{{ Former::legend('Organization') }} {{ Former::legend('Organization') }}
{{ Former::text('name') }} {{ Former::text('name') }}
{{ Former::text('vat_number') }} {{ Former::text('id_number') }}
{{ Former::text('vat_number') }}
{{ Former::text('work_phone')->label('Phone') }} {{ Former::text('work_phone')->label('Phone') }}
{{ Former::textarea('notes') }} {{ Former::textarea('notes') }}

View File

@ -23,8 +23,9 @@
{{ Former::legend('organization') }} {{ Former::legend('organization') }}
{{ Former::text('name')->data_bind("attr { placeholder: placeholderName }") }} {{ Former::text('name')->data_bind("attr { placeholder: placeholderName }") }}
{{ Former::text('vat_number') }} {{ Former::text('id_number') }}
{{ Former::text('website') }} {{ Former::text('vat_number') }}
{{ Former::text('website') }}
{{ Former::text('work_phone') }} {{ Former::text('work_phone') }}
@if (Auth::user()->isPro()) @if (Auth::user()->isPro())

View File

@ -39,8 +39,9 @@
<div class="col-md-3"> <div class="col-md-3">
<h3>{{ trans('texts.details') }}</h3> <h3>{{ trans('texts.details') }}</h3>
<p>{{ $client->getIdNumber() }}</p>
<p>{{ $client->getVatNumber() }}</p> <p>{{ $client->getVatNumber() }}</p>
<p>{{ $client->getAddress() }}</p> <p>{{ $client->getAddress() }}</p>
<p>{{ $client->getCustomFields() }}</p> <p>{{ $client->getCustomFields() }}</p>
<p>{{ $client->getPhone() }}</p> <p>{{ $client->getPhone() }}</p>
<p>{{ $client->getNotes() }}</p> <p>{{ $client->getNotes() }}</p>

View File

@ -341,7 +341,8 @@
{{ Former::legend('organization') }} {{ Former::legend('organization') }}
{{ Former::text('name')->data_bind("value: name, valueUpdate: 'afterkeydown', attr { placeholder: name.placeholder }") }} {{ Former::text('name')->data_bind("value: name, valueUpdate: 'afterkeydown', attr { placeholder: name.placeholder }") }}
{{ Former::text('vat_number')->data_bind("value: vat_number, valueUpdate: 'afterkeydown'") }} {{ Former::text('id_number')->data_bind("value: id_number, valueUpdate: 'afterkeydown'") }}
{{ Former::text('vat_number')->data_bind("value: vat_number, valueUpdate: 'afterkeydown'") }}
{{ Former::text('website')->data_bind("value: website, valueUpdate: 'afterkeydown'") }} {{ Former::text('website')->data_bind("value: website, valueUpdate: 'afterkeydown'") }}
{{ Former::text('work_phone')->data_bind("value: work_phone, valueUpdate: 'afterkeydown'") }} {{ Former::text('work_phone')->data_bind("value: work_phone, valueUpdate: 'afterkeydown'") }}
@ -1222,7 +1223,8 @@
var self = this; var self = this;
self.public_id = ko.observable(0); self.public_id = ko.observable(0);
self.name = ko.observable(''); self.name = ko.observable('');
self.vat_number = ko.observable(''); self.id_number = ko.observable('');
self.vat_number = ko.observable('');
self.work_phone = ko.observable(''); self.work_phone = ko.observable('');
self.custom_value1 = ko.observable(''); self.custom_value1 = ko.observable('');
self.custom_value2 = ko.observable(''); self.custom_value2 = ko.observable('');

View File

@ -66,7 +66,7 @@
<div class="col-md-7 info"> <div class="col-md-7 info">
<div class="col-md-12 alignCenterText" > <div class="col-md-12 alignCenterText" >
Enter Your Billing Address and Credit Card information {{ trans('texts.payment_title') }}
</div> </div>
<div class="row"> <div class="row">
@ -113,10 +113,10 @@
<div class="row"> <div class="row">
<h5 class="col-md-12 boldText" > <h5 class="col-md-12 boldText" >
*Billing address must match address accociated with credit card. {{ trans('texts.payment_footer1') }}
</h5> </h5>
<h5 class="col-md-12 boldText"> <h5 class="col-md-12 boldText">
*Please click "PAY NOW" only once - transaction may take up to 1 minute to process {{ trans('texts.payment_footer2') }}
</h5> </h5>
</div> </div>
@ -141,7 +141,7 @@
<div class="col-md-5"> <div class="col-md-5">
<div class="col-md-12 alignCenterText" > <div class="col-md-12 alignCenterText" >
Balance Due $ {{ trans('texts.balance_due') . ' ' . Utils::formatMoney($amount, $currencyId) }}
</div> </div>
<div class="col-md-12"> <div class="col-md-12">
<div class="card"> <div class="card">
@ -189,7 +189,7 @@
{{ Former::text('cvv') }} {{ Former::text('cvv') }}
</div> </div>
<div> <div>
<h5 class="boldText" style="margin-top: 8%;margin-left: 5%;"> *This is the 3-4 digit number onthe back of your card</h5> <h5 class="boldText" style="margin-top: 8%;margin-left: 5%;">{{ trans('texts.payment_cvv') }}</h5>
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
<!-- <p><span class="glyphicon glyphicon-credit-card" style="margin-right: 10px;"></span><a href="#">Where Do I find CVV?</a></p> --> <!-- <p><span class="glyphicon glyphicon-credit-card" style="margin-right: 10px;"></span><a href="#">Where Do I find CVV?</a></p> -->

View File

@ -117,7 +117,7 @@
</div> </div>
<div class="customMenuDiv" > <div class="customMenuDiv" >
<span class="img-wrap shiftLeft" ><img src="{{ asset('images/BestInClassSecurity.png') }}"></span> <span class="img-wrap shiftLeft" ><img src="{{ asset('images/BestInClassSecurity.png') }}"></span>
<span class="customSubMenu shiftLeft"> Best-in-class data security </span> <span class="customSubMenu shiftLeft"> Best-in-class security </span>
</div> </div>
<div class="customMenuDiv" > <div class="customMenuDiv" >

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -254,7 +254,7 @@ a .cta:hover span {
.hero1.background { .hero1.background {
background-repeat: no-repeat; background-repeat: no-repeat;
background-position: center center; background-position: center center;
background-attachment: fixed; /*background-attachment: fixed;*/
background-size: cover; background-size: cover;
min-height: 500px; min-height: 500px;
} }

View File

@ -707,6 +707,11 @@ box-shadow: 0px 0px 15px 0px rgba(0, 5, 5, 0.2);
.plans-table a .cta h2 span {background: #1e84a5;} .plans-table a .cta h2 span {background: #1e84a5;}
.checkbox-inline input[type="checkbox"] {
margin-left: 0px !important;
}
#designThumbs img { #designThumbs img {
border: 1px solid #CCCCCC; border: 1px solid #CCCCCC;
} }

View File

@ -576,8 +576,8 @@ function populateInvoiceComboboxes(clientId, invoiceId) {
var client = clientMap[invoice.client.public_id]; var client = clientMap[invoice.client.public_id];
if (!client) continue; // client is deleted/archived if (!client) continue; // client is deleted/archived
$invoiceCombobox.append(new Option(invoice.invoice_number + ' - ' + invoice.invoice_status.name + ' - ' + $invoiceCombobox.append(new Option(invoice.invoice_number + ' - ' + invoice.invoice_status.name + ' - ' +
getClientDisplayName(client) + ' - ' + formatMoney(invoice.amount, invoice.currency_id) + ' | ' + getClientDisplayName(client) + ' - ' + formatMoney(invoice.amount, client.currency_id) + ' | ' +
formatMoney(invoice.balance, invoice.currency_id), invoice.public_id)); formatMoney(invoice.balance, client.currency_id), invoice.public_id));
} }
$('select#invoice').combobox('refresh'); $('select#invoice').combobox('refresh');
}); });
@ -602,7 +602,7 @@ function populateInvoiceComboboxes(clientId, invoiceId) {
var client = clientMap[invoice.client.public_id]; var client = clientMap[invoice.client.public_id];
setComboboxValue($('.invoice-select'), invoice.public_id, (invoice.invoice_number + ' - ' + setComboboxValue($('.invoice-select'), invoice.public_id, (invoice.invoice_number + ' - ' +
invoice.invoice_status.name + ' - ' + getClientDisplayName(client) + ' - ' + invoice.invoice_status.name + ' - ' + getClientDisplayName(client) + ' - ' +
formatMoney(invoice.amount, invoice.currency_id) + ' | ' + formatMoney(invoice.balance, invoice.currency_id))); formatMoney(invoice.amount, client.currency_id) + ' | ' + formatMoney(invoice.balance, client.currency_id)));
$invoiceSelect.trigger('change'); $invoiceSelect.trigger('change');
} else if (clientId) { } else if (clientId) {
var client = clientMap[clientId]; var client = clientMap[clientId];
@ -637,6 +637,7 @@ function displayAccount(doc, invoice, x, y, layout) {
var data1 = [ var data1 = [
account.name, account.name,
account.id_number,
account.vat_number, account.vat_number,
account.work_email, account.work_email,
account.work_phone account.work_phone
@ -675,6 +676,7 @@ function displayClient(doc, invoice, x, y, layout) {
} }
var data = [ var data = [
getClientDisplayName(client), getClientDisplayName(client),
client.id_number,
client.vat_number, client.vat_number,
concatStrings(client.address1, client.address2), concatStrings(client.address1, client.address2),
concatStrings(client.city, client.state, client.postal_code), concatStrings(client.city, client.state, client.postal_code),