Fixes for task exports

This commit is contained in:
David Bomba 2024-10-11 15:35:05 +11:00
parent 6bb1f75292
commit 8009f5afb2
6 changed files with 127 additions and 32 deletions

View File

@ -62,10 +62,9 @@ class TaskExport extends BaseExport
if (count($this->input['report_keys']) == 0) { if (count($this->input['report_keys']) == 0) {
$this->input['report_keys'] = array_values($this->task_report_keys); $this->input['report_keys'] = array_values($this->task_report_keys);
$this->input['report_keys'] = array_merge($this->input['report_keys'], array_diff($this->forced_client_fields, $this->input['report_keys']));
} }
$this->input['report_keys'] = array_merge($this->input['report_keys'], array_diff($this->forced_client_fields, $this->input['report_keys']));
$query = Task::query() $query = Task::query()
->withTrashed() ->withTrashed()
->where('company_id', $this->company->id); ->where('company_id', $this->company->id);
@ -207,15 +206,23 @@ class TaskExport extends BaseExport
$entity['task.end_time'] = ctrans('texts.is_running'); $entity['task.end_time'] = ctrans('texts.is_running');
} }
$seconds = $task->calcDuration();
$time_log_entry = (isset($item[1]) && $item[1] != 0) ? $item[1] - $item[0] : ctrans('texts.is_running');
if (in_array('task.duration', $this->input['report_keys']) || in_array('duration', $this->input['report_keys'])) { if (in_array('task.duration', $this->input['report_keys']) || in_array('duration', $this->input['report_keys'])) {
$seconds = $task->calcDuration();
$entity['task.duration'] = $seconds; $entity['task.duration'] = $seconds;
$entity['task.duration_words'] = $seconds > 86400 ? CarbonInterval::seconds($seconds)->locale($this->company->locale())->cascade()->forHumans() : now()->startOfDay()->addSeconds($seconds)->format('H:i:s'); }
$time_log_entry = (isset($item[1]) && $item[1] != 0) ? $item[1] - $item[0] : ctrans('texts.is_running'); if (in_array('task.time_log', $this->input['report_keys']) || in_array('time_log', $this->input['report_keys'])) {
$entity['task.time_log'] = $time_log_entry; $entity['task.time_log'] = $time_log_entry;
$entity['task.time_log_duration_words'] = is_int($time_log_entry) && $time_log_entry > 86400 ? CarbonInterval::seconds($time_log_entry)->locale($this->company->locale())->cascade()->forHumans() : $time_log_entry; }
if (in_array('task.time_log_duration_words', $this->input['report_keys']) || in_array('time_log_duration_words', $this->input['report_keys'])) {
$entity['task.time_log_duration_words'] = is_int($time_log_entry) ? CarbonInterval::seconds($time_log_entry)->locale($this->company->locale())->cascade()->forHumans() : $time_log_entry;
}
if (in_array('task.duration_words', $this->input['report_keys']) || in_array('duration_words', $this->input['report_keys'])) {
$entity['task.duration_words'] = $seconds > 86400 ? CarbonInterval::seconds($seconds)->locale($this->company->locale())->cascade()->forHumans() : now()->startOfDay()->addSeconds($seconds)->format('H:i:s');
} }
if (in_array('task.billable', $this->input['report_keys']) || in_array('billable', $this->input['report_keys'])) { if (in_array('task.billable', $this->input['report_keys']) || in_array('billable', $this->input['report_keys'])) {
@ -227,7 +234,6 @@ class TaskExport extends BaseExport
} }
$this->storage_array[] = $entity; $this->storage_array[] = $entity;
$entity['task.start_date'] = ''; $entity['task.start_date'] = '';
@ -237,7 +243,7 @@ class TaskExport extends BaseExport
$entity['task.duration'] = ''; $entity['task.duration'] = '';
$entity['task.duration_words'] = ''; $entity['task.duration_words'] = '';
$entity['task.time_log'] = ''; $entity['task.time_log'] = '';
$entity['task.time_log_duration_words']; $entity['task.time_log_duration_words'] = '';
$entity['task.billable'] = ''; $entity['task.billable'] = '';
$entity['task.item_notes'] = ''; $entity['task.item_notes'] = '';

View File

@ -5359,7 +5359,8 @@ $lang = array(
'updated_records' => 'Updated Records', 'updated_records' => 'Updated Records',
'vat_not_registered' => 'Seller not VAT registered', 'vat_not_registered' => 'Seller not VAT registered',
'small_company_info' => 'No disclosure of sales tax in accordance with § 19 UStG', 'small_company_info' => 'No disclosure of sales tax in accordance with § 19 UStG',
'log_duration_words' => 'Log duration in words' 'log_duration_words' => 'Time log duration in words',
'log_duration' => 'Time log duration'
); );
return $lang; return $lang;

View File

@ -5355,6 +5355,9 @@ Développe automatiquement la section des notes dans le tableau de produits pour
'quick_actions' => 'Actions rapides', 'quick_actions' => 'Actions rapides',
'end_all_sessions_help' => 'Déconnecte tous les utilisateurs et oblige tous les utilisateurs actifs à se réauthentifier.', 'end_all_sessions_help' => 'Déconnecte tous les utilisateurs et oblige tous les utilisateurs actifs à se réauthentifier.',
'updated_records' => 'Enregistrements mis à jour', 'updated_records' => 'Enregistrements mis à jour',
'vat_not_registered' => 'Vendeur non enregistré aux taxes',
'small_company_info' => 'Aucune déclaration de taxe de vente conformément à l\'article 19 UStG',
'log_duration_words' => 'Durée du journal en mots'
); );
return $lang; return $lang;

View File

@ -2361,7 +2361,7 @@ Kom terug naar deze betaalmethode pagina zodra u de bedragen heeft ontvangen en
'currency_gold_troy_ounce' => 'Gouden Troy Ounce', 'currency_gold_troy_ounce' => 'Gouden Troy Ounce',
'currency_nicaraguan_córdoba' => 'Nicaraguaans Córdoba', 'currency_nicaraguan_córdoba' => 'Nicaraguaans Córdoba',
'currency_malagasy_ariary' => 'Malagassische ariarium', 'currency_malagasy_ariary' => 'Malagassische ariarium',
"currency_tongan_paanga" => "Tongaanse pa'anga", "currency_tongan_pa_anga" => "Tongaanse pa'anga",
'review_app_help' => 'We hopen dat u veel gemak heeft aan het gebruik van deze app.<br/> Als u :link zou overwegen, stellen wij dat zeer op prijs!', 'review_app_help' => 'We hopen dat u veel gemak heeft aan het gebruik van deze app.<br/> Als u :link zou overwegen, stellen wij dat zeer op prijs!',
'writing_a_review' => 'een recensie schrijven', 'writing_a_review' => 'een recensie schrijven',
@ -5338,6 +5338,28 @@ E-mail: :email<b><br><b>',
'no_unread_notifications' => 'U bent weer helemaal bij! Er zijn geen nieuwe notificaties.', 'no_unread_notifications' => 'U bent weer helemaal bij! Er zijn geen nieuwe notificaties.',
'how_to_import_data' => 'Hoe u gegevens kunt importeren', 'how_to_import_data' => 'Hoe u gegevens kunt importeren',
'download_example_file' => 'Download voorbeeldbestand', 'download_example_file' => 'Download voorbeeldbestand',
'expense_mailbox' => 'Inkomend e-mailadres',
'expense_mailbox_help' => 'Het inkomende e-mailadres waarop declaraties ontvangen kunnen worden. Bijv. declaratie@invoiceninja.com',
'expense_mailbox_active' => 'Mailbox voor declaraties',
'expense_mailbox_active_help' => 'Maakt het mogelijk om declaraties zoals kassabonnen te verwerken voor kostenrapportages',
'inbound_mailbox_allow_company_users' => 'Bedrijfsafzenders toestaan',
'inbound_mailbox_allow_company_users_help' => 'Sta gebruikers binnen het bedrijf toe om declaraties in te sturen',
'inbound_mailbox_allow_vendors' => 'Leveranciersafzenders toestaan',
'inbound_mailbox_allow_vendors_help' => 'Sta bedrijfsafzenders toe om declaraties in te sturen',
'inbound_mailbox_allow_clients' => 'Sta klantafzenders toe',
'inbound_mailbox_allow_clients_help' => 'Sta klanten toe om declaraties in te sturen',
'inbound_mailbox_whitelist' => 'Lijst met toegestane afzenders',
'inbound_mailbox_whitelist_help' => 'Door komma\'s gescheiden lijst met e-mailadressen die declaraties mogen insturen voor verwerking',
'inbound_mailbox_blacklist' => 'Lijst met geblokkeerde afzenders',
'inbound_mailbox_blacklist_help' => 'Door komma\'s gescheiden lijst met e-mailadressen die geblokkeerd zijn en declaraties niet mogen insturen voor verwerking',
'inbound_mailbox_allow_unknown' => 'Sta alle afzenders toe',
'inbound_mailbox_allow_unknown_help' => 'Sta iedereen toe om declaraties in te sturen voor verwerking',
'quick_actions' => 'Snelle acties',
'end_all_sessions_help' => 'Logt alle gebruikers uit en vereist dat alle actieve gebruikers opnieuw inloggen.',
'updated_records' => 'Items bijgewerkt',
'vat_not_registered' => 'Seller not VAT registered',
'small_company_info' => 'No disclosure of sales tax in accordance with § 19 UStG',
'log_duration_words' => 'Log duration in words'
); );
return $lang; return $lang;

View File

@ -1065,7 +1065,7 @@ $lang = array(
'user_create_all' => 'Ustvarja stranke, račune, itd.', 'user_create_all' => 'Ustvarja stranke, račune, itd.',
'user_view_all' => 'Vidi stranke, račune, itd.', 'user_view_all' => 'Vidi stranke, račune, itd.',
'user_edit_all' => 'Ureja stranke, račune, itd.', 'user_edit_all' => 'Ureja stranke, račune, itd.',
'partial_due' => 'Delno plačilo do', 'partial_due' => 'Delno plačilo',
'restore_vendor' => 'Obnovi dobavitelja', 'restore_vendor' => 'Obnovi dobavitelja',
'restored_vendor' => 'Dobavitelj uspešno obnovljen', 'restored_vendor' => 'Dobavitelj uspešno obnovljen',
'restored_expense' => 'Strošek uspešno obnovljen', 'restored_expense' => 'Strošek uspešno obnovljen',
@ -2365,7 +2365,7 @@ Ko imate zneske, se vrnite na to stran plačilnega sredstva in kliknite na "Comp
'currency_gold_troy_ounce' => 'Gold Troy Ounce', 'currency_gold_troy_ounce' => 'Gold Troy Ounce',
'currency_nicaraguan_córdoba' => 'Nicaraguan Córdoba', 'currency_nicaraguan_córdoba' => 'Nicaraguan Córdoba',
'currency_malagasy_ariary' => 'Malagasy ariary', 'currency_malagasy_ariary' => 'Malagasy ariary',
"currency_tongan_paanga" => "Tongan Pa'anga", "currency_tongan_pa_anga" => "Tongan Pa'anga",
'review_app_help' => 'Upamo da uživate v uporabi aplikacije.<br/>Zelo bi cenili klik na :link!', 'review_app_help' => 'Upamo da uživate v uporabi aplikacije.<br/>Zelo bi cenili klik na :link!',
'writing_a_review' => 'pisanje pregleda (kritike)', 'writing_a_review' => 'pisanje pregleda (kritike)',
@ -2493,6 +2493,8 @@ Ko imate zneske, se vrnite na to stran plačilnega sredstva in kliknite na "Comp
'local_storage_required' => 'Napaka: Lokalna hramba ni na voljo.', 'local_storage_required' => 'Napaka: Lokalna hramba ni na voljo.',
'your_password_reset_link' => 'Povezava za ponastavitev gesla', 'your_password_reset_link' => 'Povezava za ponastavitev gesla',
'subdomain_taken' => 'Poddomena že v uporabi', 'subdomain_taken' => 'Poddomena že v uporabi',
'expense_mailbox_taken' => 'The inbound mailbox is already in use',
'expense_mailbox_invalid' => 'The inbound mailbox does not match the required schema',
'client_login' => 'Vpis stranke', 'client_login' => 'Vpis stranke',
'converted_amount' => 'Pretvorjeni znesek', 'converted_amount' => 'Pretvorjeni znesek',
'default' => 'Privzeto', 'default' => 'Privzeto',
@ -3890,7 +3892,7 @@ Ko imate zneske, se vrnite na to stran plačilnega sredstva in kliknite na "Comp
'payment_method_saving_failed' => 'Payment method can\'t be saved for future use.', 'payment_method_saving_failed' => 'Payment method can\'t be saved for future use.',
'pay_with' => 'Pay with', 'pay_with' => 'Pay with',
'n/a' => 'N/A', 'n/a' => 'N/A',
'by_clicking_next_you_accept_terms' => 'By clicking "Next step" you accept terms.', 'by_clicking_next_you_accept_terms' => 'By clicking "Next" you accept terms.',
'not_specified' => 'Not specified', 'not_specified' => 'Not specified',
'before_proceeding_with_payment_warning' => 'Before proceeding with payment, you have to fill following fields', 'before_proceeding_with_payment_warning' => 'Before proceeding with payment, you have to fill following fields',
'after_completing_go_back_to_previous_page' => 'After completing, go back to previous page.', 'after_completing_go_back_to_previous_page' => 'After completing, go back to previous page.',
@ -5125,7 +5127,7 @@ Ko imate zneske, se vrnite na to stran plačilnega sredstva in kliknite na "Comp
'all_contacts' => 'All Contacts', 'all_contacts' => 'All Contacts',
'insert_below' => 'Insert Below', 'insert_below' => 'Insert Below',
'nordigen_handler_subtitle' => 'Bank account authentication. Selecting your institution to complete the request with your account credentials.', 'nordigen_handler_subtitle' => 'Bank account authentication. Selecting your institution to complete the request with your account credentials.',
'nordigen_handler_error_heading_unknown' => 'An error has occured', 'nordigen_handler_error_heading_unknown' => 'An error has occurred',
'nordigen_handler_error_contents_unknown' => 'An unknown error has occurred! Reason:', 'nordigen_handler_error_contents_unknown' => 'An unknown error has occurred! Reason:',
'nordigen_handler_error_heading_token_invalid' => 'Invalid Token', 'nordigen_handler_error_heading_token_invalid' => 'Invalid Token',
'nordigen_handler_error_contents_token_invalid' => 'The provided token was invalid. Contact support for help, if this issue persists.', 'nordigen_handler_error_contents_token_invalid' => 'The provided token was invalid. Contact support for help, if this issue persists.',
@ -5239,7 +5241,7 @@ Ko imate zneske, se vrnite na to stran plačilnega sredstva in kliknite na "Comp
'local_domain_help' => 'EHLO domain (optional)', 'local_domain_help' => 'EHLO domain (optional)',
'port_help' => 'ie. 25,587,465', 'port_help' => 'ie. 25,587,465',
'host_help' => 'ie. smtp.gmail.com', 'host_help' => 'ie. smtp.gmail.com',
'always_show_required_fields' => 'Allows show required fields form', 'always_show_required_fields' => 'Always show required fields form',
'always_show_required_fields_help' => 'Displays the required fields form always at checkout', 'always_show_required_fields_help' => 'Displays the required fields form always at checkout',
'advanced_cards' => 'Advanced Cards', 'advanced_cards' => 'Advanced Cards',
'activity_140' => 'Statement sent to :client', 'activity_140' => 'Statement sent to :client',
@ -5302,6 +5304,63 @@ Ko imate zneske, se vrnite na to stran plačilnega sredstva in kliknite na "Comp
'latest_requires_php_version' => 'Note: the latest version requires PHP :version', 'latest_requires_php_version' => 'Note: the latest version requires PHP :version',
'auto_expand_product_table_notes' => 'Automatically expand products table notes', 'auto_expand_product_table_notes' => 'Automatically expand products table notes',
'auto_expand_product_table_notes_help' => 'Automatically expands the notes section within the products table to display more lines.', 'auto_expand_product_table_notes_help' => 'Automatically expands the notes section within the products table to display more lines.',
'institution_number' => 'Institution Number',
'transit_number' => 'Transit Number',
'personal' => 'Personal',
'address_information' => 'Address Information',
'enter_the_information_for_the_bank_account' => 'Enter the Information for the Bank Account',
'account_holder_information' => 'Account Holder Information',
'enter_information_for_the_account_holder' => 'Enter Information for the Account Holder',
'customer_type' => 'Customer Type',
'process_date' => 'Process Date',
'forever_free' => 'Forever Free',
'comments_only' => 'Comments Only',
'payment_balance_on_file' => 'Payment Balance On File',
'ubl_email_attachment_help' => 'For more e-invoice settings please navigate :here',
'stop_task_to_add_task_entry' => 'You need to stop the task before adding a new item.',
'xml_file' => 'XML File',
'one_page_checkout' => 'One-Page Checkout',
'one_page_checkout_help' => 'Enable the new single page payment flow',
'applies_to' => 'Applies To',
'accept_purchase_order' => 'Accept Purchase Order',
'round_to_seconds' => 'Round To Seconds',
'activity_142' => 'Quote :number reminder 1 sent',
'activity_143' => 'Auto Bill succeeded for invoice :invoice',
'activity_144' => 'Auto Bill failed for invoice :invoice. :notes',
'activity_145' => 'EInvoice :invoice for :client was e-delivered. :notes',
'payment_failed' => 'Payment Failed',
'ssl_host_override' => 'SSL Host Override',
'upload_logo_short' => 'Upload Logo',
'country_Melilla' => 'Melilla',
'country_Ceuta' => 'Ceuta',
'country_Canary Islands' => 'Canary Islands',
'lang_Vietnamese' => 'Vietnamese',
'invoice_status_changed' => 'Please note that the status of your invoice has been updated. We recommend refreshing the page to view the most current version.',
'no_unread_notifications' => 'Youre all caught up! No new notifications.',
'how_to_import_data' => 'How to import data',
'download_example_file' => 'Download example file',
'expense_mailbox' => 'Inbound e-mail address',
'expense_mailbox_help' => 'The inbound email address which accepts expense documents. ie. expense@invoiceninja.com',
'expense_mailbox_active' => 'Expense Mailbox',
'expense_mailbox_active_help' => 'Enables processing of documents such as receipts for expense reporting',
'inbound_mailbox_allow_company_users' => 'Allow Company Senders',
'inbound_mailbox_allow_company_users_help' => 'Allows users within the company to send expense documents.',
'inbound_mailbox_allow_vendors' => 'Allow Vendor Senders',
'inbound_mailbox_allow_vendors_help' => 'Allows company vendors to send expense documents',
'inbound_mailbox_allow_clients' => 'Allow Client Senders',
'inbound_mailbox_allow_clients_help' => 'Allows clients to send expense documents',
'inbound_mailbox_whitelist' => 'Inbound sender allow list',
'inbound_mailbox_whitelist_help' => 'Comma separated list of emails that should be allowed to send emails for processing',
'inbound_mailbox_blacklist' => 'Inbound sender banned list',
'inbound_mailbox_blacklist_help' => 'Comma separate list of emails that are disallowed to send emails for processing',
'inbound_mailbox_allow_unknown' => 'Allow All Senders',
'inbound_mailbox_allow_unknown_help' => 'Allow anyone to send an expense email for processing',
'quick_actions' => 'Quick Actions',
'end_all_sessions_help' => 'Logs out all users and requires all active users to reauthenticate.',
'updated_records' => 'Updated Records',
'vat_not_registered' => 'Seller not VAT registered',
'small_company_info' => 'No disclosure of sales tax in accordance with § 19 UStG',
'log_duration_words' => 'Log duration in words'
); );
return $lang; return $lang;

View File

@ -13,7 +13,7 @@ $lang = array(
'postal_code' => 'Mã bưu chính', 'postal_code' => 'Mã bưu chính',
'country_id' => 'Quốc gia', 'country_id' => 'Quốc gia',
'contacts' => 'Liên hệ', 'contacts' => 'Liên hệ',
'first_name' => 'Họ & tên', 'first_name' => 'Họ',
'last_name' => 'Tên', 'last_name' => 'Tên',
'phone' => 'Số điện thoại', 'phone' => 'Số điện thoại',
'email' => 'Email', 'email' => 'Email',
@ -26,7 +26,7 @@ $lang = array(
'invoice' => 'Hóa đơn', 'invoice' => 'Hóa đơn',
'client' => 'Khách hàng', 'client' => 'Khách hàng',
'invoice_date' => 'Ngày hóa đơn', 'invoice_date' => 'Ngày hóa đơn',
'due_date' => 'Hạn thanh toán', 'due_date' => 'Đã thanh toán',
'invoice_number' => 'Số hóa đơn', 'invoice_number' => 'Số hóa đơn',
'invoice_number_short' => 'Hóa đơn #', 'invoice_number_short' => 'Hóa đơn #',
'po_number' => 'Số PO', 'po_number' => 'Số PO',
@ -42,7 +42,7 @@ $lang = array(
'line_total' => 'Tổng', 'line_total' => 'Tổng',
'subtotal' => 'Thành tiền', 'subtotal' => 'Thành tiền',
'net_subtotal' => 'Tính', 'net_subtotal' => 'Tính',
'paid_to_date' => 'Hạn thanh toán', 'paid_to_date' => 'Đã thanh toán đến ngày',
'balance_due' => 'Số tiền thanh toán', 'balance_due' => 'Số tiền thanh toán',
'invoice_design_id' => 'Thiết kế', 'invoice_design_id' => 'Thiết kế',
'terms' => 'Điều khoản', 'terms' => 'Điều khoản',
@ -135,7 +135,7 @@ $lang = array(
'status' => 'Trạng thái', 'status' => 'Trạng thái',
'invoice_total' => 'Tổng hóa đơn', 'invoice_total' => 'Tổng hóa đơn',
'frequency' => 'Chu kỳ', 'frequency' => 'Chu kỳ',
'range' => 'phạm vi', 'range' => 'Phạm vi',
'start_date' => 'Ngày bắt đầu', 'start_date' => 'Ngày bắt đầu',
'end_date' => 'Ngày kết thúc', 'end_date' => 'Ngày kết thúc',
'transaction_reference' => 'Tham chiếu giao dịch', 'transaction_reference' => 'Tham chiếu giao dịch',
@ -386,7 +386,7 @@ $lang = array(
'more_designs_self_host_text' => '', 'more_designs_self_host_text' => '',
'buy' => 'Mua', 'buy' => 'Mua',
'bought_designs' => 'Đã thêm thành công các thiết kế hóa đơn bổ sung', 'bought_designs' => 'Đã thêm thành công các thiết kế hóa đơn bổ sung',
'sent' => 'gởi', 'sent' => 'Đã gửi',
'vat_number' => 'Số VAT', 'vat_number' => 'Số VAT',
'payment_title' => 'Nhập địa chỉ thanh toán và thông tin thẻ tín dụng của bạn', 'payment_title' => 'Nhập địa chỉ thanh toán và thông tin thẻ tín dụng của bạn',
'payment_cvv' => '* Đây là số 3-4 chữ số ở mặt sau thẻ của bạn', 'payment_cvv' => '* Đây là số 3-4 chữ số ở mặt sau thẻ của bạn',
@ -738,7 +738,7 @@ $lang = array(
'activity_7' => ':contact đã xem hóa đơn :invoice gửi đến :client', 'activity_7' => ':contact đã xem hóa đơn :invoice gửi đến :client',
'activity_8' => ':user hóa đơn lưu trữ :invoice', 'activity_8' => ':user hóa đơn lưu trữ :invoice',
'activity_9' => ':user đã xóa hóa đơn :invoice', 'activity_9' => ':user đã xóa hóa đơn :invoice',
'activity_10' => ':user đã nhập thanh toán :payment cho :payment _số tiền trên hóa đơn :invoice cho :client', 'activity_10' => ':user đã nhập thanh toán :payment bởi :payment _số tiền trên hóa đơn :invoice cho :client',
'activity_11' => ':user cập nhật thanh toán :payment', 'activity_11' => ':user cập nhật thanh toán :payment',
'activity_12' => ':user thanh toán đã lưu trữ :payment', 'activity_12' => ':user thanh toán đã lưu trữ :payment',
'activity_13' => ':user đã xóa thanh toán :payment', 'activity_13' => ':user đã xóa thanh toán :payment',
@ -835,7 +835,7 @@ $lang = array(
'invalid_csv_header' => 'Tiêu đề CSV không hợp lệ', 'invalid_csv_header' => 'Tiêu đề CSV không hợp lệ',
'client_portal' => 'Cổng thông tin khách hàng', 'client_portal' => 'Cổng thông tin khách hàng',
'admin' => 'Quản trị viên', 'admin' => 'Quản trị viên',
'disabled' => 'Tàn tật', 'disabled' => 'Vô hiệu hóa',
'show_archived_users' => 'Hiển thị người dùng đã lưu trữ', 'show_archived_users' => 'Hiển thị người dùng đã lưu trữ',
'notes' => 'Ghi chú', 'notes' => 'Ghi chú',
'invoice_will_create' => 'hóa đơn sẽ được tạo', 'invoice_will_create' => 'hóa đơn sẽ được tạo',
@ -959,7 +959,7 @@ $lang = array(
'quote_message_button' => 'Để xem báo giá cho :amount , hãy nhấp vào nút bên dưới.', 'quote_message_button' => 'Để xem báo giá cho :amount , hãy nhấp vào nút bên dưới.',
'payment_message_button' => 'Cảm ơn bạn đã thanh toán :amount .', 'payment_message_button' => 'Cảm ơn bạn đã thanh toán :amount .',
'payment_type_direct_debit' => 'Ghi nợ trực tiếp', 'payment_type_direct_debit' => 'Ghi nợ trực tiếp',
'bank_accounts' => 'Thẻ tín dụng & ngân hàng', 'bank_accounts' => 'Thẻ tín dụng & Ngân hàng',
'add_bank_account' => 'Thêm tài khoản ngân hàng', 'add_bank_account' => 'Thêm tài khoản ngân hàng',
'setup_account' => 'Thiết lập tài khoản', 'setup_account' => 'Thiết lập tài khoản',
'import_expenses' => 'Chi phí nhập khẩu', 'import_expenses' => 'Chi phí nhập khẩu',
@ -2364,7 +2364,7 @@ $lang = array(
'currency_gold_troy_ounce' => 'Ounce vàng Troy', 'currency_gold_troy_ounce' => 'Ounce vàng Troy',
'currency_nicaraguan_córdoba' => 'Córdoba Nicaragua', 'currency_nicaraguan_córdoba' => 'Córdoba Nicaragua',
'currency_malagasy_ariary' => 'Tiếng Malagasy', 'currency_malagasy_ariary' => 'Tiếng Malagasy',
"currency_tongan_paanga" => "Tonga Pa&#39;anga", "currency_tongan_pa_anga" => "Tongan Pa'anga",
'review_app_help' => 'Chúng tôi hy vọng bạn thích sử dụng ứng dụng này.<br/> Nếu bạn cân nhắc :link chúng tôi sẽ rất cảm kích!', 'review_app_help' => 'Chúng tôi hy vọng bạn thích sử dụng ứng dụng này.<br/> Nếu bạn cân nhắc :link chúng tôi sẽ rất cảm kích!',
'writing_a_review' => 'viết đánh giá', 'writing_a_review' => 'viết đánh giá',
@ -3097,7 +3097,7 @@ $lang = array(
'uploaded_logo' => 'Đã tải logo thành công', 'uploaded_logo' => 'Đã tải logo thành công',
'saved_settings' => 'Đã lưu cài đặt thành công', 'saved_settings' => 'Đã lưu cài đặt thành công',
'device_settings' => 'Cài đặt thiết bị', 'device_settings' => 'Cài đặt thiết bị',
'credit_cards_and_banks' => 'Thẻ tín dụng & ngân hàng', 'credit_cards_and_banks' => 'Thẻ tín dụng & Ngân hàng',
'price' => 'Giá', 'price' => 'Giá',
'email_sign_up' => 'Đăng ký Email', 'email_sign_up' => 'Đăng ký Email',
'google_sign_up' => 'Đăng ký Google', 'google_sign_up' => 'Đăng ký Google',
@ -3738,8 +3738,8 @@ $lang = array(
'document_upload_help' => 'Cho phép khách hàng tải lên tài liệu', 'document_upload_help' => 'Cho phép khách hàng tải lên tài liệu',
'expense_total' => 'Tổng chi phí', 'expense_total' => 'Tổng chi phí',
'enter_taxes' => 'Nhập Thuế', 'enter_taxes' => 'Nhập Thuế',
'by_rate' => 'Theo Tỷ giá', 'by_rate' => 'Theo tỷ giá',
'by_amount' => 'Theo Số Lượng', 'by_amount' => 'Theo số lượng',
'enter_amount' => 'Nhập số tiền', 'enter_amount' => 'Nhập số tiền',
'before_taxes' => 'Trước thuế', 'before_taxes' => 'Trước thuế',
'after_taxes' => 'Sau thuế', 'after_taxes' => 'Sau thuế',
@ -4106,7 +4106,7 @@ $lang = array(
'auto_bill_disabled' => 'Tự động hóa đơn bị vô hiệu hóa', 'auto_bill_disabled' => 'Tự động hóa đơn bị vô hiệu hóa',
'select_payment_method' => 'Chọn phương thức thanh toán:', 'select_payment_method' => 'Chọn phương thức thanh toán:',
'login_without_password' => 'Đăng nhập không cần mật khẩu', 'login_without_password' => 'Đăng nhập không cần mật khẩu',
'email_sent' => 'Email khi một hóa đơn được <b>gởi</b>', 'email_sent' => 'Email khi một hóa đơn được <b>đã gửi</b>',
'one_time_purchases' => 'Mua một lần', 'one_time_purchases' => 'Mua một lần',
'recurring_purchases' => 'Mua hàng định kỳ', 'recurring_purchases' => 'Mua hàng định kỳ',
'you_might_be_interested_in_following' => 'Bạn có thể quan tâm đến những điều sau đây', 'you_might_be_interested_in_following' => 'Bạn có thể quan tâm đến những điều sau đây',
@ -4266,7 +4266,7 @@ $lang = array(
'uninvoiced' => 'Chưa xuất hóa đơn', 'uninvoiced' => 'Chưa xuất hóa đơn',
'subdomain_guide' => 'Tên miền phụ được sử dụng trong cổng thông tin khách hàng để cá nhân hóa các liên kết phù hợp với thương hiệu của bạn. Ví dụ: https://your-brand.invoicing.co', 'subdomain_guide' => 'Tên miền phụ được sử dụng trong cổng thông tin khách hàng để cá nhân hóa các liên kết phù hợp với thương hiệu của bạn. Ví dụ: https://your-brand.invoicing.co',
'send_time' => 'Gửi thời gian', 'send_time' => 'Gửi thời gian',
'import_settings' => 'Nhập Cài Đặt', 'import_settings' => 'Nhập cài đặt',
'json_file_missing' => 'Vui lòng cung cấp tệp JSON', 'json_file_missing' => 'Vui lòng cung cấp tệp JSON',
'json_option_missing' => 'Vui lòng chọn để nhập cài đặt và/hoặc dữ liệu', 'json_option_missing' => 'Vui lòng chọn để nhập cài đặt và/hoặc dữ liệu',
'json' => 'JSON', 'json' => 'JSON',
@ -4975,7 +4975,7 @@ $lang = array(
'e_invoice' => 'Hóa đơn điện tử', 'e_invoice' => 'Hóa đơn điện tử',
'light_dark_mode' => 'Chế độ sáng/tối', 'light_dark_mode' => 'Chế độ sáng/tối',
'activities' => 'Các hoạt động', 'activities' => 'Các hoạt động',
'recent_transactions' => "Sau đây là các giao dịch gần đây nhất của công ty bạn:", 'recent_transactions' => "Các giao dịch gần đây nhất của công ty bạn:",
'country_Palestine' => "Palestine", 'country_Palestine' => "Palestine",
'country_Taiwan' => 'Đài Loan', 'country_Taiwan' => 'Đài Loan',
'duties' => 'Nhiệm vụ', 'duties' => 'Nhiệm vụ',
@ -5031,7 +5031,7 @@ $lang = array(
'county' => 'Quận', 'county' => 'Quận',
'tax_details' => 'Chi tiết thuế', 'tax_details' => 'Chi tiết thuế',
'activity_10_online' => ':contact đã thanh toán :payment cho hóa đơn :invoice cho :client', 'activity_10_online' => ':contact đã thanh toán :payment cho hóa đơn :invoice cho :client',
'activity_10_manual' => ':user đã nhập thanh toán :payment cho hóa đơn :invoice cho :client', 'activity_10_manual' => ':user đã nhập thanh toán :payment bởi hóa đơn :invoice cho :client',
'default_payment_type' => 'Loại thanh toán mặc định', 'default_payment_type' => 'Loại thanh toán mặc định',
'number_precision' => 'Độ chính xác của số', 'number_precision' => 'Độ chính xác của số',
'number_precision_help' => 'Kiểm soát số lượng số thập phân được hỗ trợ trong giao diện', 'number_precision_help' => 'Kiểm soát số lượng số thập phân được hỗ trợ trong giao diện',
@ -5355,7 +5355,11 @@ $lang = array(
'inbound_mailbox_allow_unknown' => 'Cho phép tất cả người gửi', 'inbound_mailbox_allow_unknown' => 'Cho phép tất cả người gửi',
'inbound_mailbox_allow_unknown_help' => 'Cho phép bất cứ ai đến gửi email Chi phí để xử lý', 'inbound_mailbox_allow_unknown_help' => 'Cho phép bất cứ ai đến gửi email Chi phí để xử lý',
'quick_actions' => 'Hành động nhanh', 'quick_actions' => 'Hành động nhanh',
'end_all_sessions_help' => 'Đăng xuất tất cả người dùng và yêu cầu tất cả người dùng đang hoạt động đến xác thực lại.' 'end_all_sessions_help' => 'Đăng xuất tất cả người dùng và yêu cầu tất cả người dùng đang hoạt động đến xác thực lại.',
'updated_records' => 'Hồ sơ đã cập nhật',
'vat_not_registered' => 'Người bán không đăng ký VAT',
'small_company_info' => 'Không tiết lộ thuế bán hàng theo § 19 UStG',
'log_duration_words' => 'Thời lượng ghi nhật ký bằng từ'
); );
return $lang; return $lang;