mirror of
				https://github.com/invoiceninja/invoiceninja.git
				synced 2025-10-31 12:37:32 -04:00 
			
		
		
		
	Merge branch 'master' of github.com:hillelcoren/invoice-ninja into laravel-5
This commit is contained in:
		
						commit
						37921e4653
					
				| @ -263,6 +263,8 @@ class AccountController extends \BaseController | |||||||
|             $account->invoice_number_counter = Input::get('invoice_number_counter'); |             $account->invoice_number_counter = Input::get('invoice_number_counter'); | ||||||
|             $account->quote_number_prefix = Input::get('quote_number_prefix'); |             $account->quote_number_prefix = Input::get('quote_number_prefix'); | ||||||
|             $account->share_counter = Input::get('share_counter') ? true : false; |             $account->share_counter = Input::get('share_counter') ? true : false; | ||||||
|  |              | ||||||
|  |             $account->pdf_email_attachment = Input::get('pdf_email_attachment') ? true : false; | ||||||
| 
 | 
 | ||||||
|             if (!$account->share_counter) { |             if (!$account->share_counter) { | ||||||
|                 $account->quote_number_counter = Input::get('quote_number_counter'); |                 $account->quote_number_counter = Input::get('quote_number_counter'); | ||||||
|  | |||||||
| @ -398,6 +398,10 @@ class InvoiceController extends \BaseController | |||||||
|                 Utils::trackViewed($client->getDisplayName(), ENTITY_CLIENT, $url); |                 Utils::trackViewed($client->getDisplayName(), ENTITY_CLIENT, $url); | ||||||
|             } |             } | ||||||
| 
 | 
 | ||||||
|  |             if (!empty(Input::get('pdfupload')) && strpos(Input::get('pdfupload'), 'data:application/pdf;base64,') === 0) { | ||||||
|  |                 $this->storePDF(Input::get('pdfupload'), $input->invoice->public_id); | ||||||
|  |             } | ||||||
|  | 
 | ||||||
|             if ($action == 'clone') { |             if ($action == 'clone') { | ||||||
|                 return $this->cloneInvoice($publicId); |                 return $this->cloneInvoice($publicId); | ||||||
|             } elseif ($action == 'convert') { |             } elseif ($action == 'convert') { | ||||||
| @ -540,4 +544,18 @@ class InvoiceController extends \BaseController | |||||||
| 
 | 
 | ||||||
|         return View::make('invoices.history', $data); |         return View::make('invoices.history', $data); | ||||||
|     } |     } | ||||||
|  |      | ||||||
|  |     private function storePDF($encodedString, $public_id) | ||||||
|  |     { | ||||||
|  |         $uploadsDir = storage_path().'/pdfcache/'; | ||||||
|  |         $encodedString = str_replace('data:application/pdf;base64,', '', $encodedString); | ||||||
|  |         $name = 'cache-'.$public_id.'.pdf'; | ||||||
|  |          | ||||||
|  |         if (file_put_contents($uploadsDir.$name, base64_decode($encodedString)) !== false) { | ||||||
|  |             $finfo = new finfo(FILEINFO_MIME); | ||||||
|  |             if ($finfo->file($uploadsDir.$name) !== 'application/pdf; charset=binary') { | ||||||
|  |                 unlink($uploadsDir.$name); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |     } | ||||||
| } | } | ||||||
|  | |||||||
| @ -93,7 +93,8 @@ class Invoice extends EntityModel | |||||||
|             'custom_value1', |             'custom_value1', | ||||||
|             'custom_value2', |             'custom_value2', | ||||||
|             'custom_taxes1', |             'custom_taxes1', | ||||||
|             'custom_taxes2', ]); |             'custom_taxes2', | ||||||
|  |         ]); | ||||||
| 
 | 
 | ||||||
|         $this->client->setVisible([ |         $this->client->setVisible([ | ||||||
|             'name', |             'name', | ||||||
| @ -110,7 +111,8 @@ class Invoice extends EntityModel | |||||||
|             'country', |             'country', | ||||||
|             'currency_id', |             'currency_id', | ||||||
|             'custom_value1', |             'custom_value1', | ||||||
|             'custom_value2', ]); |             'custom_value2', | ||||||
|  |         ]); | ||||||
| 
 | 
 | ||||||
|         $this->account->setVisible([ |         $this->account->setVisible([ | ||||||
|             'name', |             'name', | ||||||
| @ -136,7 +138,9 @@ class Invoice extends EntityModel | |||||||
|             'hide_quantity', |             'hide_quantity', | ||||||
|             'hide_paid_to_date', |             'hide_paid_to_date', | ||||||
|             'custom_invoice_label1', |             'custom_invoice_label1', | ||||||
|             'custom_invoice_label2', ]); |             'custom_invoice_label2', | ||||||
|  |             'pdf_email_attachment', | ||||||
|  |         ]); | ||||||
| 
 | 
 | ||||||
|         foreach ($this->invoice_items as $invoiceItem) { |         foreach ($this->invoice_items as $invoiceItem) { | ||||||
|             $invoiceItem->setVisible([ |             $invoiceItem->setVisible([ | ||||||
| @ -145,7 +149,8 @@ class Invoice extends EntityModel | |||||||
|                 'cost', |                 'cost', | ||||||
|                 'qty', |                 'qty', | ||||||
|                 'tax_name', |                 'tax_name', | ||||||
|                 'tax_rate', ]); |                 'tax_rate', | ||||||
|  |             ]); | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         foreach ($this->client->contacts as $contact) { |         foreach ($this->client->contacts as $contact) { | ||||||
| @ -153,7 +158,8 @@ class Invoice extends EntityModel | |||||||
|                 'first_name', |                 'first_name', | ||||||
|                 'last_name', |                 'last_name', | ||||||
|                 'email', |                 'email', | ||||||
|                 'phone', ]); |                 'phone', | ||||||
|  |             ]); | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         return $this; |         return $this; | ||||||
|  | |||||||
| @ -43,6 +43,7 @@ class ContactMailer extends Mailer | |||||||
|             $data['body'] = str_replace(array_keys($variables), array_values($variables), $emailTemplate); |             $data['body'] = str_replace(array_keys($variables), array_values($variables), $emailTemplate); | ||||||
|             $data['link'] = $invitation->getLink(); |             $data['link'] = $invitation->getLink(); | ||||||
|             $data['entityType'] = $entityType; |             $data['entityType'] = $entityType; | ||||||
|  |             $data['id'] = $invoice->getAttributes()['id']; | ||||||
| 
 | 
 | ||||||
|             $fromEmail = $invitation->user->email; |             $fromEmail = $invitation->user->email; | ||||||
|             $this->sendTo($invitation->contact->email, $fromEmail, $accountName, $subject, $view, $data); |             $this->sendTo($invitation->contact->email, $fromEmail, $accountName, $subject, $view, $data); | ||||||
|  | |||||||
| @ -2,6 +2,7 @@ | |||||||
| 
 | 
 | ||||||
| use Mail; | use Mail; | ||||||
| use Utils; | use Utils; | ||||||
|  | use Invoice; | ||||||
| 
 | 
 | ||||||
| class Mailer | class Mailer | ||||||
| { | { | ||||||
| @ -12,13 +13,27 @@ class Mailer | |||||||
|             'emails.'.$view.'_text', |             'emails.'.$view.'_text', | ||||||
|         ]; |         ]; | ||||||
| 
 | 
 | ||||||
|         Mail::send($views, $data, function ($message) use ($toEmail, $fromEmail, $fromName, $subject) { |         Mail::send($views, $data, function ($message) use ($toEmail, $fromEmail, $fromName, $subject, $data) { | ||||||
|             $replyEmail = $fromEmail; |             $replyEmail = $fromEmail; | ||||||
| 
 | 
 | ||||||
|             // http://stackoverflow.com/questions/2421234/gmail-appearing-to-ignore-reply-to
 |             // http://stackoverflow.com/questions/2421234/gmail-appearing-to-ignore-reply-to
 | ||||||
|             if (Utils::isNinja() && $toEmail != CONTACT_EMAIL) { |             if (Utils::isNinja() && $toEmail != CONTACT_EMAIL) { | ||||||
|                 $fromEmail = NINJA_FROM_EMAIL; |                 $fromEmail = NINJA_FROM_EMAIL; | ||||||
|             } |             } | ||||||
|  |              | ||||||
|  |             if(isset($data['id'])) { | ||||||
|  |                 $invoice = Invoice::find($data['id']); | ||||||
|  |                 $invoice->load('account'); | ||||||
|  |                 $accountAttributes = $invoice->account()->getParent()->getRelations()['account']->getAttributes(); | ||||||
|  |                 $pdfPath = storage_path().'/pdfcache/cache-'.$invoice->getAttributes()['public_id'].'.pdf'; | ||||||
|  |                  | ||||||
|  |                 if($accountAttributes['pdf_email_attachment'] === 1 && file_exists($pdfPath)) { | ||||||
|  |                     $message->attach( | ||||||
|  |                         $pdfPath, | ||||||
|  |                         array('as' => $accountAttributes['name'].'_'.$accountAttributes['invoice_number_prefix'].$invoice->getName().'.pdf', 'mime' => 'application/pdf') | ||||||
|  |                     ); | ||||||
|  |                 } | ||||||
|  |             } | ||||||
| 
 | 
 | ||||||
|             //$message->setEncoder(\Swift_Encoding::get8BitEncoding());
 |             //$message->setEncoder(\Swift_Encoding::get8BitEncoding());
 | ||||||
|             $message->to($toEmail)->from($fromEmail, $fromName)->replyTo($replyEmail, $fromName)->subject($subject); |             $message->to($toEmail)->from($fromEmail, $fromName)->replyTo($replyEmail, $fromName)->subject($subject); | ||||||
|  | |||||||
| @ -0,0 +1,34 @@ | |||||||
|  | <?php | ||||||
|  | 
 | ||||||
|  | use Illuminate\Database\Schema\Blueprint; | ||||||
|  | use Illuminate\Database\Migrations\Migration; | ||||||
|  | 
 | ||||||
|  | class AddPdfEmailAttachmentOption extends Migration { | ||||||
|  | 
 | ||||||
|  | 	/** | ||||||
|  | 	 * Run the migrations. | ||||||
|  | 	 * | ||||||
|  | 	 * @return void | ||||||
|  | 	 */ | ||||||
|  | 	public function up() | ||||||
|  | 	{ | ||||||
|  | 		Schema::table('accounts', function($table) | ||||||
|  | 		{ | ||||||
|  | 			$table->smallInteger('pdf_email_attachment')->default(0); | ||||||
|  | 		}); | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	/** | ||||||
|  | 	 * Reverse the migrations. | ||||||
|  | 	 * | ||||||
|  | 	 * @return void | ||||||
|  | 	 */ | ||||||
|  | 	public function down() | ||||||
|  | 	{ | ||||||
|  | 		Schema::table('accounts', function($table) | ||||||
|  | 		{ | ||||||
|  | 			$table->dropColumn('pdf_email_attachment'); | ||||||
|  | 		}); | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | } | ||||||
| @ -11,7 +11,7 @@ If you'd like to use our code to sell your own invoicing app we have an affiliat | |||||||
| 
 | 
 | ||||||
| Most online invoicing sites are expensive. They shouldn't be. The aim of this project is to provide a free, open-source alternative. Additionally, the hope is the codebase will serve as a sample site for Laravel as well as other JavaScript technologies. | Most online invoicing sites are expensive. They shouldn't be. The aim of this project is to provide a free, open-source alternative. Additionally, the hope is the codebase will serve as a sample site for Laravel as well as other JavaScript technologies. | ||||||
| 
 | 
 | ||||||
| To setup the site you can either use this [zip file](http://www.invoiceninja.com/knowledgebase/self-host/) (easier to setup) or checkout the code from GitHub following the instructions below (easier to stay up to date). | To setup the site you can either use this [zip file](https://www.invoiceninja.com/knowledgebase/self-host/) (easier to setup) or checkout the code from GitHub following the instructions below (easier to stay up to date). | ||||||
| 
 | 
 | ||||||
| For a WAMP/MAMP/LAMP setup you can one-click install using Softaculous's [AMPPS](http://www.ampps.com/). To deploy the app with [Docker](http://www.docker.com/) you can use [this project](https://github.com/rollbrettler/Dockerfiles/tree/master/invoice-ninja). | For a WAMP/MAMP/LAMP setup you can one-click install using Softaculous's [AMPPS](http://www.ampps.com/). To deploy the app with [Docker](http://www.docker.com/) you can use [this project](https://github.com/rollbrettler/Dockerfiles/tree/master/invoice-ninja). | ||||||
| 
 | 
 | ||||||
| @ -39,9 +39,9 @@ Developed by [@hillelcoren](https://twitter.com/hillelcoren) | Designed by [kant | |||||||
| 
 | 
 | ||||||
| ### Documentation  | ### Documentation  | ||||||
| 
 | 
 | ||||||
| * [Self Host](http://www.invoiceninja.com/knowledgebase/self-host/) | * [Self Host](https://www.invoiceninja.com/knowledgebase/self-host/) | ||||||
| * [API Documentation](http://www.invoiceninja.com/knowledgebase/api-documentation/) | * [API Documentation](https://www.invoiceninja.com/knowledgebase/api-documentation/) | ||||||
| * [Developer Guide](http://www.invoiceninja.com/knowledgebase/developer-guide/) | * [Developer Guide](https://www.invoiceninja.com/knowledgebase/developer-guide/) | ||||||
| 
 | 
 | ||||||
| ### Steps to setup from GitHub | ### Steps to setup from GitHub | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -208,6 +208,8 @@ return array( | |||||||
|   'import_to' => 'Importer til', |   'import_to' => 'Importer til', | ||||||
|   'client_will_create' => 'Klient vil blive oprettet', |   'client_will_create' => 'Klient vil blive oprettet', | ||||||
|   'clients_will_create' => 'Klienter vil blive oprettet', |   'clients_will_create' => 'Klienter vil blive oprettet', | ||||||
|  |   'email_settings' => 'Email Settings', | ||||||
|  |   'pdf_email_attachment' => 'Attach PDF to Emails', | ||||||
| 
 | 
 | ||||||
|   // application messages
 |   // application messages
 | ||||||
|   'created_client' => 'Klient oprettet succesfuldt', |   'created_client' => 'Klient oprettet succesfuldt', | ||||||
|  | |||||||
| @ -205,6 +205,8 @@ return array( | |||||||
|   'import_to' => 'Importieren nach', |   'import_to' => 'Importieren nach', | ||||||
|   'client_will_create' => 'Kunde wird erstellt', |   'client_will_create' => 'Kunde wird erstellt', | ||||||
|   'clients_will_create' => 'Kunden werden erstellt', |   'clients_will_create' => 'Kunden werden erstellt', | ||||||
|  |   'email_settings' => 'E-Mail Einstellungen', | ||||||
|  |   'pdf_email_attachment' => 'PDF an E-Mails anhängen', | ||||||
| 
 | 
 | ||||||
|   // application messages
 |   // application messages
 | ||||||
|   'created_client' => 'Kunde erfolgreich angelegt', |   'created_client' => 'Kunde erfolgreich angelegt', | ||||||
|  | |||||||
| @ -206,6 +206,8 @@ return array( | |||||||
|   'import_to' => 'Import to', |   'import_to' => 'Import to', | ||||||
|   'client_will_create' => 'client will be created', |   'client_will_create' => 'client will be created', | ||||||
|   'clients_will_create' => 'clients will be created', |   'clients_will_create' => 'clients will be created', | ||||||
|  |   'email_settings' => 'Email Settings', | ||||||
|  |   'pdf_email_attachment' => 'Attach PDF to Emails', | ||||||
| 
 | 
 | ||||||
|   // application messages
 |   // application messages
 | ||||||
|   'created_client' => 'Successfully created client', |   'created_client' => 'Successfully created client', | ||||||
|  | |||||||
| @ -205,6 +205,8 @@ return array( | |||||||
|    '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
 | ||||||
|  |    'email_settings' => 'Email Settings', | ||||||
|  |    'pdf_email_attachment' => 'Attach PDF to Emails', | ||||||
| 
 | 
 | ||||||
|    // application messages
 |    // application messages
 | ||||||
|    'created_client' => 'cliente creado con éxito', |    'created_client' => 'cliente creado con éxito', | ||||||
|  | |||||||
| @ -206,6 +206,8 @@ return array( | |||||||
|   'import_to' => 'Importer en tant que', |   'import_to' => 'Importer en tant que', | ||||||
|   'client_will_create' => 'client sera créé', |   'client_will_create' => 'client sera créé', | ||||||
|   'clients_will_create' => 'clients seront créés', |   'clients_will_create' => 'clients seront créés', | ||||||
|  |   'email_settings' => 'Email Settings', | ||||||
|  |   'pdf_email_attachment' => 'Attach PDF to Emails', | ||||||
| 
 | 
 | ||||||
|   // application messages
 |   // application messages
 | ||||||
|   'created_client' => 'Client créé avec succès', |   'created_client' => 'Client créé avec succès', | ||||||
|  | |||||||
| @ -206,6 +206,8 @@ return array( | |||||||
|   'import_to' => 'Importa in', |   'import_to' => 'Importa in', | ||||||
|   'client_will_create' => 'il cliente sarà creato', |   'client_will_create' => 'il cliente sarà creato', | ||||||
|   'clients_will_create' => 'i clienti saranno creati', |   'clients_will_create' => 'i clienti saranno creati', | ||||||
|  |   'email_settings' => 'Email Settings', | ||||||
|  |   'pdf_email_attachment' => 'Attach PDF to Emails', | ||||||
| 
 | 
 | ||||||
|   // application messages
 |   // application messages
 | ||||||
|   'created_client' => 'Cliente creato con successo', |   'created_client' => 'Cliente creato con successo', | ||||||
|  | |||||||
| @ -206,6 +206,8 @@ return array( | |||||||
|   'import_to' => 'Import to', |   'import_to' => 'Import to', | ||||||
|   'client_will_create' => 'client will be created', |   'client_will_create' => 'client will be created', | ||||||
|   'clients_will_create' => 'clients will be created', |   'clients_will_create' => 'clients will be created', | ||||||
|  |   'email_settings' => 'Email Settings', | ||||||
|  |   'pdf_email_attachment' => 'Attach PDF to Emails', | ||||||
| 
 | 
 | ||||||
|   // application messages
 |   // application messages
 | ||||||
|   'created_client' => 'Successfully created client', |   'created_client' => 'Successfully created client', | ||||||
|  | |||||||
| @ -206,6 +206,8 @@ return array( | |||||||
|   'import_to' => 'Importer til', |   'import_to' => 'Importer til', | ||||||
|   'client_will_create' => 'Klient vil bli opprettet', |   'client_will_create' => 'Klient vil bli opprettet', | ||||||
|   'clients_will_create' => 'Klienter vil bli opprettet', |   'clients_will_create' => 'Klienter vil bli opprettet', | ||||||
|  |   'email_settings' => 'Email Settings', | ||||||
|  |   'pdf_email_attachment' => 'Attach PDF to Emails', | ||||||
| 
 | 
 | ||||||
|   // application messages
 |   // application messages
 | ||||||
|   'created_client' => 'Klient opprettet suksessfullt', |   'created_client' => 'Klient opprettet suksessfullt', | ||||||
|  | |||||||
| @ -205,6 +205,8 @@ return array( | |||||||
|   'import_to' => 'Importeer naar', |   'import_to' => 'Importeer naar', | ||||||
|   'client_will_create' => 'klant zal aangemaakt worden', |   'client_will_create' => 'klant zal aangemaakt worden', | ||||||
|   'clients_will_create' => 'klanten zullen aangemaakt worden', |   'clients_will_create' => 'klanten zullen aangemaakt worden', | ||||||
|  |   'email_settings' => 'Email Settings', | ||||||
|  |   'pdf_email_attachment' => 'Attach PDF to Emails', | ||||||
| 
 | 
 | ||||||
|   // application messages
 |   // application messages
 | ||||||
|   'created_client' => 'Klant succesvol aangemaakt', |   'created_client' => 'Klant succesvol aangemaakt', | ||||||
| @ -307,18 +309,18 @@ return array( | |||||||
|   'close' => 'Sluiten',   |   'close' => 'Sluiten',   | ||||||
| 
 | 
 | ||||||
|   'pro_plan_product' => 'Pro Plan', |   'pro_plan_product' => 'Pro Plan', | ||||||
|   'pro_plan_description' => 'One year enrollment in the Invoice Ninja Pro Plan.', |   'pro_plan_description' => 'Één jaar abbonnement op het Invoice Ninja Pro Plan.', | ||||||
|   'pro_plan_success' => 'Thanks for joining! Once the invoice is paid your Pro Plan membership will begin.', |   'pro_plan_success' => 'Bedankt voor het aanmelden! Zodra je factuur betaald is zal je Pro Plan lidmaatschap beginnen.', | ||||||
| 
 | 
 | ||||||
|   'unsaved_changes' => 'You have unsaved changes', |   'unsaved_changes' => 'Je hebt niet bewaarde wijzigingen', | ||||||
|   'custom_fields' => 'Custom fields', |   'custom_fields' => 'Custom fields', | ||||||
|   'company_fields' => 'Company Fields', |   'company_fields' => 'Company Fields', | ||||||
|   'client_fields' => 'Client Fields', |   'client_fields' => 'Client Fields', | ||||||
|   'field_label' => 'Field Label', |   'field_label' => 'Field Label', | ||||||
|   'field_value' => 'Field Value', |   'field_value' => 'Field Value', | ||||||
|   'edit' => 'Edit', |   'edit' => 'Bewerk', | ||||||
|   'view_invoice' => 'View invoice', |   'view_invoice' => 'Bekijk factuur', | ||||||
|   'view_as_recipient' => 'View as recipient', |   'view_as_recipient' => 'Bekijk als ontvanger', | ||||||
| 
 | 
 | ||||||
|   // product management
 |   // product management
 | ||||||
|   'product_library' => 'Product Library', |   'product_library' => 'Product Library', | ||||||
| @ -336,105 +338,105 @@ return array( | |||||||
|   'archived_product' => 'Successfully archived product', |   'archived_product' => 'Successfully archived product', | ||||||
|   'pro_plan_custom_fields' => ':link to enable custom fields by joining the Pro Plan', |   'pro_plan_custom_fields' => ':link to enable custom fields by joining the Pro Plan', | ||||||
| 
 | 
 | ||||||
|   'advanced_settings' => 'Advanced Settings', |   'advanced_settings' => 'Geavanceerde instellingen', | ||||||
|   'pro_plan_advanced_settings' => ':link to enable the advanced settings by joining the Pro Plan', |   'pro_plan_advanced_settings' => ':link to enable the advanced settings by joining the Pro Plan', | ||||||
|   'invoice_design' => 'Invoice Design', |   'invoice_design' => 'Factuur ontwerp', | ||||||
|   'specify_colors' => 'Specify colors', |   'specify_colors' => 'Kies kleuren', | ||||||
|   'specify_colors_label' => 'Select the colors used in the invoice', |   'specify_colors_label' => 'Kies de kleuren die in de factuur gebruikt worden', | ||||||
| 
 | 
 | ||||||
|   'chart_builder' => 'Chart Builder', |   'chart_builder' => 'Chart Builder', | ||||||
|   'ninja_email_footer' => 'Use :site to invoice your clients and get paid online for free!', |   'ninja_email_footer' => 'Gebruik :site om uw klanten gratis te factureren en betalingen te ontvangen!', | ||||||
|   'go_pro' => 'Go Pro', |   'go_pro' => 'Go Pro', | ||||||
| 
 | 
 | ||||||
|   // Quotes
 |   // Quotes
 | ||||||
|   'quote' => 'Quote', |   'quote' => 'Offerte', | ||||||
|   'quotes' => 'Quotes', |   'quotes' => 'Offertes', | ||||||
|   'quote_number' => 'Quote Number', |   'quote_number' => 'Offerte Number', | ||||||
|   'quote_number_short' => 'Quote #', |   'quote_number_short' => 'Offerte #', | ||||||
|   'quote_date' => 'Quote Date', |   'quote_date' => 'Offerte Datum', | ||||||
|   'quote_total' => 'Quote Total', |   'quote_total' => 'Offerte Totaal', | ||||||
|   'your_quote' => 'Your Quote', |   'your_quote' => 'Uw Offerte', | ||||||
|   'total' => 'Total', |   'total' => 'Totaal', | ||||||
|   'clone' => 'Clone', |   'clone' => 'Kloon', | ||||||
| 
 | 
 | ||||||
|   'new_quote' => 'New Quote', |   'new_quote' => 'Nieuwe Offerte', | ||||||
|   'create_quote' => 'Create Quote', |   'create_quote' => 'Maak offerte aan', | ||||||
|   'edit_quote' => 'Edit Quote', |   'edit_quote' => 'Bewerk Offecte', | ||||||
|   'archive_quote' => 'Archive Quote', |   'archive_quote' => 'Archiveer Offerte', | ||||||
|   'delete_quote' => 'Delete Quote', |   'delete_quote' => 'Verwijder Offerte', | ||||||
|   'save_quote' => 'Save Quote', |   'save_quote' => 'Bewaar Offerte', | ||||||
|   'email_quote' => 'Email Quote', |   'email_quote' => 'Email Offerte', | ||||||
|   'clone_quote' => 'Clone Quote', |   'clone_quote' => 'Kloon Offerte', | ||||||
|   'convert_to_invoice' => 'Convert to Invoice', |   'convert_to_invoice' => 'Zet om naar Factuur', | ||||||
|   'view_invoice' => 'View Invoice', |   'view_invoice' => 'Bekijk Factuur', | ||||||
|   'view_quote' => 'View Quote', |   'view_quote' => 'Bekijk Offerte', | ||||||
|   'view_client' => 'View Client', |   'view_client' => 'Bekijk Klant', | ||||||
| 
 | 
 | ||||||
|   'updated_quote' => 'Successfully updated quote', |   'updated_quote' => 'Offerte succesvol bijgewerkt', | ||||||
|   'created_quote' => 'Successfully created quote', |   'created_quote' => 'Offerte succesvol aangemaakt', | ||||||
|   'cloned_quote' => 'Successfully cloned quote', |   'cloned_quote' => 'Offerte succesvol gekopieerd', | ||||||
|   'emailed_quote' => 'Successfully emailed quote', |   'emailed_quote' => 'Offerte succesvol gemaild', | ||||||
|   'archived_quote' => 'Successfully archived quote', |   'archived_quote' => 'Offerte succesvol gearchiveerd', | ||||||
|   'archived_quotes' => 'Successfully archived :count quotes', |   'archived_quotes' => ':count offertes succesvol gearchiveerd', | ||||||
|   'deleted_quote' => 'Successfully deleted quote', |   'deleted_quote' => 'Offerte succesvol verwijderd', | ||||||
|   'deleted_quotes' => 'Successfully deleted :count quotes', |   'deleted_quotes' => ':count offertes succesvol verwijderd', | ||||||
|   'converted_to_invoice' => 'Successfully converted quote to invoice', |   'converted_to_invoice' => 'Offerte succesvol omgezet naar factuur', | ||||||
| 
 | 
 | ||||||
|   'quote_subject' => 'New quote from :account', |   'quote_subject' => 'Nieuwe offerte van :account', | ||||||
|   'quote_message' => 'To view your quote for :amount, click the link below.', |   'quote_message' => 'Om uw offerte voor :amount te bekijken, klik op de link hieronder.', | ||||||
|   'quote_link_message' => 'To view your client quote click the link below:', |   'quote_link_message' => 'Klik op de link hieronder om de offerte te bekijken:', | ||||||
|   'notification_quote_sent_subject' => 'Quote :invoice was sent to :client', |   'notification_quote_sent_subject' => 'Offerte :invoice is verstuurd naar :client', | ||||||
|   'notification_quote_viewed_subject' => 'Quote :invoice was viewed by :client', |   'notification_quote_viewed_subject' => 'Offerte :invoice is bekeken door :client', | ||||||
|   'notification_quote_sent' => 'The following client :client was emailed Quote :invoice for :amount.', |   'notification_quote_sent' => 'Klant :client heeft offerte :invoice voor :amount per email ontvangen.', | ||||||
|   'notification_quote_viewed' => 'The following client :client viewed Quote :invoice for :amount.',   |   'notification_quote_viewed' => 'Klant :client heeft offerte :invoice voor :amount bekeken.',   | ||||||
| 
 | 
 | ||||||
|   'session_expired' => 'Your session has expired.',   |   'session_expired' => 'Uw sessie is verlopen.',   | ||||||
| 
 | 
 | ||||||
|   'invoice_fields' => 'Invoice Fields', |   'invoice_fields' => 'Factuur Velden', | ||||||
|   'invoice_options' => 'Invoice Options', |   'invoice_options' => 'Factuur Opties', | ||||||
|   'hide_quantity' => 'Hide quantity', |   'hide_quantity' => 'Verberg aantallen', | ||||||
|   'hide_quantity_help' => 'If your line items quantities are always 1, then you can declutter invoices by no longer displaying this field.', |   'hide_quantity_help' => 'Als us artikel-aantallen altijd 1 zijn, kunt u uw facturen er netter uit laten zien door dit veld te verbergen.', | ||||||
|   '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' => 'Charge taxes', | ||||||
|   'user_management' => 'User Management', |   'user_management' => 'Gebruikersbeheer', | ||||||
|   'add_user' => 'Add User', |   'add_user' => 'Nieuwe gebruiker', | ||||||
|   'send_invite' => 'Send invitation', |   'send_invite' => 'Verstuur uitnodiging', | ||||||
|   'sent_invite' => 'Successfully sent invitation', |   'sent_invite' => 'Uitnodiging succesvol verzonden', | ||||||
|   'updated_user' => 'Successfully updated user', |   'updated_user' => 'Gebruiker succesvol aangepast', | ||||||
|   'invitation_message' => 'You\'ve been invited by :invitor. ', |   'invitation_message' => 'U bent uigenodigd door :invitor. ', | ||||||
|   'register_to_add_user' => 'Please sign up to add a user', |   'register_to_add_user' => 'Meld u aan om een gebruiker toe te voegen', | ||||||
|   'user_state' => 'State', |   'user_state' => 'Status', | ||||||
|   'edit_user' => 'Edit User', |   'edit_user' => 'Bewerk Gebruiker', | ||||||
|   'delete_user' => 'Delete User', |   'delete_user' => 'Verwijder Gebruiker', | ||||||
|   'active' => 'Active', |   'active' => 'Actief', | ||||||
|   'pending' => 'Pending', |   'pending' => 'Pending', | ||||||
|   'deleted_user' => 'Successfully deleted user', |   'deleted_user' => 'Gebruiker succesvol verwijderd', | ||||||
|   'limit_users' => 'Sorry, this will exceed the limit of ' . MAX_NUM_USERS . ' users', |   'limit_users' => 'Sorry, dit zou de limiet van ' . MAX_NUM_USERS . ' gebruikers overschrijden', | ||||||
| 
 | 
 | ||||||
|   'confirm_email_invoice' => 'Are you sure you want to email this invoice?', |   'confirm_email_invoice' => 'Weet u zeker dat u deze factuur wilt mailen?', | ||||||
|   'confirm_email_quote' => 'Are you sure you want to email this quote?', |   'confirm_email_quote' => 'Weet u zeker dat u deze offerte wilt mailen?', | ||||||
|   'confirm_recurring_email_invoice' => 'Recurring is enabled, are you sure you want this invoice emailed?',   |   'confirm_recurring_email_invoice' => 'Terugkeren (herhalen) staat aan, weet u zeker dat u deze factuur wilt mailen?',   | ||||||
| 
 | 
 | ||||||
|   'cancel_account' => 'Cancel Account', |   'cancel_account' => 'Zeg Account Op', | ||||||
|   'cancel_account_message' => 'Warning: This will permanently erase all of your data, there is no undo.', |   'cancel_account_message' => 'Waarschuwing: Dit zal al uw data verwijderen. Er is geen manier om dit ongedaan te maken', | ||||||
|   'go_back' => 'Go Back', |   'go_back' => 'Ga Terug', | ||||||
| 
 | 
 | ||||||
|   'data_visualizations' => 'Data Visualizations', |   'data_visualizations' => 'Data Visualisaties', | ||||||
|   'sample_data' => 'Sample data shown', |   'sample_data' => 'Voorbeelddata getoond', | ||||||
|   'hide' => 'Hide', |   'hide' => 'Verberg', | ||||||
|   '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' => 'Een nieuwe versie van :releases_link is beschikbaar. U gebruikt nu v:user_version, de laatste versie is v:latest_version', | ||||||
| 
 | 
 | ||||||
|   'invoice_settings' => 'Invoice Settings', |   'invoice_settings' => 'Factuur Instellingen', | ||||||
|   'invoice_number_prefix' => 'Invoice Number Prefix', |   'invoice_number_prefix' => 'Factuurnummer Prefix', | ||||||
|   'invoice_number_counter' => 'Invoice Number Counter', |   'invoice_number_counter' => 'Factuurnummer Teller', | ||||||
|   'quote_number_prefix' => 'Quote Number Prefix', |   'quote_number_prefix' => 'Offertenummer Prefix', | ||||||
|   'quote_number_counter' => 'Quote Number Counter', |   'quote_number_counter' => 'Offertenummer Teller', | ||||||
|   'share_invoice_counter' => 'Share invoice counter', |   'share_invoice_counter' => 'Deel factuur teller', | ||||||
|   'invoice_issued_to' => 'Invoice issued to', |   'invoice_issued_to' => 'Factuur uitgegeven aan', | ||||||
|   'invalid_counter' => 'To prevent a possible conflict please set either an invoice or quote number prefix', |   'invalid_counter' => 'Stel een factuurnummer prefix of offertenummer prefix in om een mogelijk conflict te voorkomen.', | ||||||
|   'mark_sent' => 'Mark sent',     |   'mark_sent' => 'Markeer als verzonden',     | ||||||
|    |    | ||||||
| 
 | 
 | ||||||
|   'gateway_help_1' => ':link to sign up for Authorize.net.', |   'gateway_help_1' => ':link to sign up for Authorize.net.', | ||||||
| @ -443,17 +445,17 @@ 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' => 'Meer ontwerpen', | ||||||
|   'more_designs_title' => 'Additional Invoice Designs', |   'more_designs_title' => 'Aanvullende Factuur Ontwerpen', | ||||||
|   '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 $'.INVOICE_DESIGNS_PRICE, |   'more_designs_self_host_header' => 'Krijg 6 extra factuurontwerpen voor maar $'.INVOICE_DESIGNS_PRICE, | ||||||
|   'more_designs_self_host_text' => '', |   'more_designs_self_host_text' => '', | ||||||
|   'buy' => 'Buy', |   'buy' => 'Koop', | ||||||
|   'bought_designs' => 'Successfully added additional invoice designs', |   'bought_designs' => 'Aanvullende factuurontwerpen succesvol toegevoegd', | ||||||
| 
 | 
 | ||||||
|    |    | ||||||
|   'sent' => 'sent', |   'sent' => 'verzonden', | ||||||
|   'timesheets' => 'Timesheets', |   'timesheets' => 'Timesheets', | ||||||
| 
 | 
 | ||||||
|   'payment_title' => 'Enter Your Billing Address and Credit Card information', |   'payment_title' => 'Enter Your Billing Address and Credit Card information', | ||||||
| @ -464,47 +466,47 @@ return array( | |||||||
|   'id_number' => 'ID Number', |   'id_number' => 'ID Number', | ||||||
| 
 | 
 | ||||||
|   'white_label_link' => 'White label', |   'white_label_link' => 'White label', | ||||||
|   'white_label_text' => 'Purchase a white label license for $'.WHITE_LABEL_PRICE.' to remove the Invoice Ninja branding from the top of the client pages.', |   'white_label_text' => 'Koop een white label licentie voor $'.WHITE_LABEL_PRICE.' om de Invoice Ninja merknaam te verwijderen uit de bovenkant van de klantenpagina\'s.', | ||||||
|   'white_label_header' => 'White Label', |   'white_label_header' => 'White Label', | ||||||
|   'bought_white_label' => 'Successfully enabled white label license', |   'bought_white_label' => 'White label licentie succesvol geactiveerd', | ||||||
|   'white_labeled' => 'White labeled', |   'white_labeled' => 'White labeled', | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|   'restore' => 'Restore', |   'restore' => 'Herstel', | ||||||
|   'restore_invoice' => 'Restore Invoice', |   'restore_invoice' => 'Herstel Factuur', | ||||||
|   'restore_quote' => 'Restore Quote', |   'restore_quote' => 'Herstel Offerte', | ||||||
|   'restore_client' => 'Restore Client', |   'restore_client' => 'Herstel Klant', | ||||||
|   'restore_credit' => 'Restore Credit', |   'restore_credit' => 'Herstel Kredietnota', | ||||||
|   'restore_payment' => 'Restore Payment', |   'restore_payment' => 'Herstel Betaling', | ||||||
| 
 | 
 | ||||||
|   'restored_invoice' => 'Successfully restored invoice', |   'restored_invoice' => 'Factuur succesvol hersteld', | ||||||
|   'restored_quote' => 'Successfully restored quote', |   'restored_quote' => 'Offerte succesvol hersteld', | ||||||
|   'restored_client' => 'Successfully restored client', |   'restored_client' => 'Klant succesvol hersteld', | ||||||
|   'restored_payment' => 'Successfully restored payment', |   'restored_payment' => 'Betaling succesvol hersteld', | ||||||
|   'restored_credit' => 'Successfully restored credit', |   'restored_credit' => 'Kredietnota succesvol hersteld', | ||||||
|    |    | ||||||
|   'reason_for_canceling' => 'Help us improve our site by telling us why you\'re leaving.', |   'reason_for_canceling' => 'Help ons om onze site te verbeteren door ons te vertellen waarom u weggaat.', | ||||||
|   'discount_percent' => 'Percent', |   'discount_percent' => 'Percentage', | ||||||
|   'discount_amount' => 'Amount', |   'discount_amount' => 'Bedrag', | ||||||
| 
 | 
 | ||||||
|   'invoice_history' => 'Invoice History', |   'invoice_history' => 'Factuur geschiedenis', | ||||||
|   'quote_history' => 'Quote History', |   'quote_history' => 'Offerte Geschiedenis', | ||||||
|   'current_version' => 'Current version', |   'current_version' => 'Huidige Versie', | ||||||
|   'select_versiony' => 'Select version', |   'select_versiony' => 'Selecteer versie', | ||||||
|   'view_history' => 'View History', |   'view_history' => 'Bekijk Geschiedenis', | ||||||
| 
 | 
 | ||||||
|   'edit_payment' => 'Edit Payment', |   'edit_payment' => 'Bewerk Betaling', | ||||||
|   'updated_payment' => 'Successfully updated payment', |   'updated_payment' => 'Betaling succesvol bijgewerkt', | ||||||
|   'deleted' => 'Deleted', |   'deleted' => 'Verwijderd', | ||||||
|   'restore_user' => 'Restore User', |   'restore_user' => 'Herstel gebruiker', | ||||||
|   'restored_user' => 'Successfully restored user', |   'restored_user' => 'Gebruiker succesvol hersteld', | ||||||
|   'show_deleted_users' => 'Show deleted users', |   'show_deleted_users' => 'Toon verwijderde gebruikers', | ||||||
|   'email_templates' => 'Email Templates', |   'email_templates' => 'Email Templates', | ||||||
|   'invoice_email' => 'Invoice Email', |   'invoice_email' => 'Factuur Email', | ||||||
|   'payment_email' => 'Payment Email', |   'payment_email' => 'Betaling Email', | ||||||
|   'quote_email' => 'Quote Email', |   'quote_email' => 'Offerte Email', | ||||||
|   'reset_all' => 'Reset All', |   'reset_all' => 'Reset Alles', | ||||||
|   'approve' => 'Approve', |   'approve' => 'Goedkeuren', | ||||||
| 
 | 
 | ||||||
|   'token_billing_type_id' => 'Token Billing', |   'token_billing_type_id' => 'Token Billing', | ||||||
|   'token_billing_help' => 'Enables you to store credit cards with your gateway, and charge them at a later date.', |   'token_billing_help' => 'Enables you to store credit cards with your gateway, and charge them at a later date.', | ||||||
| @ -519,29 +521,29 @@ return array( | |||||||
|   'token_billing' => 'Save card details', |   'token_billing' => 'Save card details', | ||||||
|   'token_billing_secure' => 'The data is stored securely by :stripe_link', |   'token_billing_secure' => 'The data is stored securely by :stripe_link', | ||||||
| 
 | 
 | ||||||
|   'support' => 'Support', |   'support' => 'Ondersteuning', | ||||||
|   'contact_information' => 'Contact information', |   'contact_information' => 'Contact informatie', | ||||||
|   '256_encryption' => '256-Bit Encryption', |   '256_encryption' => '256-Bit Encryptie', | ||||||
|   'amount_due' => 'Amount due', |   'amount_due' => 'Te betalen bedrag', | ||||||
|   'billing_address' => 'Billing address', |   'billing_address' => 'Facturatie adres', | ||||||
|   'billing_method' => 'Billing method', |   'billing_method' => 'Betaalmethode', | ||||||
|   'order_overview' => 'Order overview', |   'order_overview' => 'Order overzicht', | ||||||
|   'match_address' => '*Address must match address associated with credit card.', |   'match_address' => '*Addres moet overeenkomen met adres van creditcard.', | ||||||
|   'click_once' => '*Please click "PAY NOW" only once - transaction may take up to 1 minute to process.', |   'click_once' => '*Please click "PAY NOW" only once - transaction may take up to 1 minute to process.', | ||||||
| 
 | 
 | ||||||
|   'default_invoice_footer' => 'Set default invoice footer', |   'default_invoice_footer' => 'Stel standaard factuur-footer in', | ||||||
|   'invoice_footer' => 'Invoice footer', |   'invoice_footer' => 'Factuur footer', | ||||||
|   'save_as_default_footer' => 'Save as default footer', |   'save_as_default_footer' => 'Bewaar als standaard footer', | ||||||
| 
 | 
 | ||||||
|   'token_management' => 'Token Management', |   'token_management' => 'Token Beheer', | ||||||
|   'tokens' => 'Tokens', |   'tokens' => 'Tokens', | ||||||
|   'add_token' => 'Add Token', |   'add_token' => 'Voeg Token Toe', | ||||||
|   'show_deleted_tokens' => 'Show deleted tokens', |   'show_deleted_tokens' => 'Toon verwijderde tokens', | ||||||
|   'deleted_token' => 'Successfully deleted token', |   'deleted_token' => 'Token succesvol verwijderd', | ||||||
|   'created_token' => 'Successfully created token', |   'created_token' => 'Token succesvol aangemaakt', | ||||||
|   'updated_token' => 'Successfully updated token', |   'updated_token' => 'Token succesvol aangepast', | ||||||
|   'edit_token' => 'Edit Token', |   'edit_token' => 'Bewerk Token', | ||||||
|   'delete_token' => 'Delete Token', |   'delete_token' => 'Verwijder Token', | ||||||
|   'token' => 'Token', |   'token' => 'Token', | ||||||
| 
 | 
 | ||||||
|   'add_gateway' => 'Add Gateway', |   'add_gateway' => 'Add Gateway', | ||||||
| @ -553,25 +555,25 @@ return array( | |||||||
|   'pay_with_paypal' => 'PayPal', |   'pay_with_paypal' => 'PayPal', | ||||||
|   'pay_with_card' => 'Credit card', |   'pay_with_card' => 'Credit card', | ||||||
| 
 | 
 | ||||||
|   'change_password' => 'Change password', |   'change_password' => 'Verander wachtwoord', | ||||||
|   'current_password' => 'Current password', |   'current_password' => 'Huidig wachtwoord', | ||||||
|   'new_password' => 'New password', |   'new_password' => 'Nieuw wachtwoord', | ||||||
|   'confirm_password' => 'Confirm password', |   'confirm_password' => 'Bevestig wachtwoord', | ||||||
|   'password_error_incorrect' => 'The current password is incorrect.', |   'password_error_incorrect' => 'Het huidige wachtwoord is niet.', | ||||||
|   'password_error_invalid' => 'The new password is invalid.', |   'password_error_invalid' => 'Het nieuwe wachtwoord is ongeldig.', | ||||||
|   'updated_password' => 'Successfully updated password', |   'updated_password' => 'Wachtwoord succesvol aangepast', | ||||||
| 
 | 
 | ||||||
|   'api_tokens' => 'API Tokens', |   'api_tokens' => 'API Tokens', | ||||||
|   'users_and_tokens' => 'Users & Tokens', |   'users_and_tokens' => 'Gebruikers & Tokens', | ||||||
|   'account_login' => 'Account Login', |   'account_login' => 'Account Login', | ||||||
|   'recover_password' => 'Recover your password', |   'recover_password' => 'Wachtwoordherstel', | ||||||
|   'forgot_password' => 'Forgot your password?', |   'forgot_password' => 'Wachtwoord vergeten?', | ||||||
|   'email_address' => 'Email address', |   'email_address' => 'Emailadres', | ||||||
|   'lets_go' => 'Let’s go', |   'lets_go' => 'Let’s go', | ||||||
|   'password_recovery' => 'Password Recovery', |   'password_recovery' => 'Wachtwoord Herstel', | ||||||
|   'send_email' => 'Send email', |   'send_email' => 'Verstuur email', | ||||||
|   'set_password' => 'Set Password', |   'set_password' => 'Stel wachtwoord in', | ||||||
|   'converted' => 'Converted', |   'converted' => 'Omgezet', | ||||||
|      |      | ||||||
| 
 | 
 | ||||||
|    |    | ||||||
|  | |||||||
| @ -204,6 +204,8 @@ return array( | |||||||
|   'import_to' => 'Importar para', |   'import_to' => 'Importar para', | ||||||
|   'client_will_create' => 'cliente será criado', |   'client_will_create' => 'cliente será criado', | ||||||
|   'clients_will_create' => 'clientes serão criados', |   'clients_will_create' => 'clientes serão criados', | ||||||
|  |   'email_settings' => 'Email Settings', | ||||||
|  |   'pdf_email_attachment' => 'Attach PDF to Emails', | ||||||
| 
 | 
 | ||||||
|   // application messages
 |   // application messages
 | ||||||
|   'created_client' => 'Cliente criado com sucesso', |   'created_client' => 'Cliente criado com sucesso', | ||||||
|  | |||||||
| @ -42,6 +42,10 @@ | |||||||
| 			->append(Former::checkbox('share_counter')->raw()->onclick('setQuoteNumberEnabled()') . ' ' . trans('texts.share_invoice_counter')) }} | 			->append(Former::checkbox('share_counter')->raw()->onclick('setQuoteNumberEnabled()') . ' ' . trans('texts.share_invoice_counter')) }} | ||||||
| 	<p> </p> | 	<p> </p> | ||||||
| 
 | 
 | ||||||
|  | 	{{ Former::legend('email_settings') }} | ||||||
|  | 	{{ Former::checkbox('pdf_email_attachment') }} | ||||||
|  | 	<p> </p> | ||||||
|  | 
 | ||||||
| 	@if (Auth::user()->isPro()) | 	@if (Auth::user()->isPro()) | ||||||
| 	{{ Former::actions( Button::lg_success_submit(trans('texts.save'))->append_with_icon('floppy-disk') ) }} | 	{{ Former::actions( Button::lg_success_submit(trans('texts.save'))->append_with_icon('floppy-disk') ) }} | ||||||
| 	@else | 	@else | ||||||
|  | |||||||
| @ -718,17 +718,23 @@ | |||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	function onEmailClick() { | 	function onEmailClick() { | ||||||
| 		if (confirm('{{ trans("texts.confirm_email_$entityType") }}')) {		 | 		if (confirm('{{ trans("texts.confirm_email_$entityType") }}')) { | ||||||
| 			submitAction('email'); | 			submitAction('email'); | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	function onSaveClick() { | 	function onSaveClick() { | ||||||
| 		if (model.invoice().is_recurring()) { | 		if (model.invoice().is_recurring()) { | ||||||
| 			if (confirm('{{ trans("texts.confirm_recurring_email_$entityType") }}')) {		 | 			if (confirm('{{ trans("texts.confirm_recurring_email_$entityType") }}')) { | ||||||
| 				submitAction(''); | 				submitAction(''); | ||||||
| 			}			 | 			} | ||||||
| 		} else { | 		} else { | ||||||
|  | 			var invoice = createInvoiceModel(); | ||||||
|  | 			var design  = getDesignJavascript(); | ||||||
|  | 			if (!design) return; | ||||||
|  | 			var doc = generatePDF(invoice, design, true); | ||||||
|  | 			 | ||||||
|  | 			$('form.form-horizontal.warn-on-exit').append('<input type="hidden" name="pdfupload" value="'+doc.output('datauristring')+'">'); | ||||||
| 			submitAction(''); | 			submitAction(''); | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| @ -739,7 +745,7 @@ | |||||||
| 			return; | 			return; | ||||||
| 		} | 		} | ||||||
| 		$('#action').val(value); | 		$('#action').val(value); | ||||||
| 		$('#submitButton').click();		 | 		$('#submitButton').click(); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	function isSaveValid() { | 	function isSaveValid() { | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user