[% LxERP.t8("Hide help text") %]
-
-
- [%- LxERP.t8('Column name') %] |
- [%- LxERP.t8('Meaning') %] |
-
-
- [%- FOREACH row = SELF.displayable_columns %]
-
- [%- HTML.escape(row.name) %] |
- [%- HTML.escape(row.description) %] |
-
- [%- END %]
-
+ [%- IF SELF.worker.is_multiplexed %]
+
+
+ [%- FOREACH p = SELF.worker.profile %]
+ [%- p.row_ident %] |
+ [%- END %][%# FOREACH SELF.worker.profile %]
+
+
+ [%- FOREACH p = SELF.worker.profile %]
+ [% SET ri = p.row_ident %]
+
+
+
+ [%- LxERP.t8('Column name') %] |
+ [%- LxERP.t8('Meaning') %] |
+
+
+ [%- FOREACH row = SELF.displayable_columns.$ri %]
+
+ [%- HTML.escape(row.name) %] |
+ [%- HTML.escape(row.description) %] |
+
+ [%- END %][%# FOREACH SELF.displayable_columns.$ri %]
+
+ |
+ [%- END %][%# FOREACH SELF.worker.profile %]
+
+
+ [%- ELSE %][%# IF SELF.worker.is_multiplexed %]
+
+
+ [%- LxERP.t8('Column name') %] |
+ [%- LxERP.t8('Meaning') %] |
+
+
+ [%- FOREACH row = SELF.displayable_columns %]
+
+ [%- HTML.escape(row.name) %] |
+ [%- HTML.escape(row.description) %] |
+
+ [%- END %][%# FOREACH SELF.displayable_columns %]
+
+ [%- END %][%# SELF.worker.is_multiplexed %]
[%- IF SELF.type == 'contacts' %]
- [%- LxERP.t8('At least one of the columns #1, customer, customernumber, vendor, vendornumber (depending on the target table) is required for matching the entry to an existing customer or vendor.', 'cp_cv_id') %]
+ [%- LxERP.t8("You can update existing contacts by providing the 'cp_id' column with their database IDs. Otherwise: ") %]
+ [%- LxERP.t8('At least one of the columns #1, customer, customernumber, customer_gln, vendor, vendornumber, vendor_gln (depending on the target table) is required for matching the entry to an existing customer or vendor.', 'cp_cv_id') %]
[%- ELSIF SELF.type == 'addresses' %]
- [%- LxERP.t8('At least one of the columns #1, customer, customernumber, vendor, vendornumber (depending on the target table) is required for matching the entry to an existing customer or vendor.', 'trans_id') %]
+ [%- LxERP.t8('At least one of the columns #1, customer, customernumber, customer_gln, vendor, vendornumber, vendor_gln (depending on the target table) is required for matching the entry to an existing customer or vendor.', 'trans_id') %]
[%- ELSIF SELF.type == 'parts' %]
-
- [%- LxERP.t8("If the article type is set to 'mixed' then a column called 'type' must be present.") %]
- [% LxERP.t8("Type can be either 'part' or 'service'.") %]
-
-
[1]:
[% LxERP.t8('The three columns "make_X", "model_X" and "lastcost_X" with the same number "X" are used to import vendor part numbers and vendor prices.') %]
@@ -94,23 +124,67 @@
[% LxERP.t8('The items are imported accoring do their number "X" regardless of the column order inside the file.') %]
[% LxERP.t8('The column "make_X" can contain either a vendor\'s database ID, a vendor number or a vendor\'s name.') %]
-[%- END %]
+
+ [2]:
+ [% LxERP.t8('Onhand only sets the quantity in master data, not in inventory. This is only a legacy info field and will be overwritten as soon as a inventory transfer happens.') %]
+
+
+ [3]:
+ [% LxERP.t8("If the article type is set to 'mixed' then a column called 'part_type' or called 'pclass' must be present.") %]
+ [% LxERP.t8("Type can be either 'part', 'service' or 'assembly'.") %]
+ [%- LxERP.t8("If column 'pclass' is present the article type is then irrelevant or used as default ") %]
+ [% LxERP.t8("The 'pclass' column has the same abbreviation like a part export. The first letter is for the type Part,Assembly or Service, the second(and third) for Part Classification") %]
+
+
+[%- ELSIF SELF.type == 'inventories' %]
+
+ [%- LxERP.t8('One of the columns "qty" or "target_qty" must be given. If "target_qty" is given, the quantity to transfer for each transfer will be calculate, so that the quantity for this part, warehouse and bin will result in the given "target_qty" after each transfer.') %]
+
+[%- ELSIF SELF.type == 'orders' OR SELF.type == 'delivery_orders' OR SELF.type == 'ar_transactions' %]
- [%- L.submit_tag('action_download_sample', LxERP.t8('Download sample file')) %]
+ [1]:
+ [% LxERP.t8('The column "datatype" must be present and must be at the same position / column in each data set. The values must be the row names (see settings) for order and item data respectively.') %]
+ [%- IF SELF.type == 'orders' OR SELF.type == 'ar_transactions' %]
+
+ [2]:
+ [%- LxERP.t8('Amount and net amount are calculated by kivitendo. "verify_amount" and "verify_netamount" can be used for sanity checks.') %]
+ [%- LxERP.t8('If amounts differ more than "Maximal amount difference" (see settings), this item is marked as invalid.') %]
+
+ [%- END %]
+[%- END %][%# IF SELF.type == ⦠%]
+
+
+
[% LxERP.t8("Hide settings") %]
+
[%- LxERP.t8('Number Format') %]: |
- [% L.select_tag('settings.numberformat', ['1.000,00', '1000,00', '1,000.00', '1000.00'], default = SELF.profile.get('numberformat'), style = 'width: 300px') %]
+ [% L.select_tag('settings.numberformat', ['1.000,00', '1000,00', '1,000.00', '1000.00', "1'000.00"], default = SELF.profile.get('numberformat'), style = 'width: 300px') %]
+ |
+
+
+
+ [%- LxERP.t8('Date Format') %]: |
+
+ [% L.select_tag('settings.dateformat', ['dd.mm.yyyy', 'yyyy-mm-dd', 'dd/mm/yyyy', 'mm/dd/yyyy' ], default = SELF.profile.get('dateformat'), style = 'width: 300px') %]
|
@@ -127,7 +201,7 @@
[% IF SELF.sep_char == entry.first %] [% SET custom_sep_char = '' %] [%- END %]
[% L.radio_button_tag('sep_char', value => entry.first, label => entry.last, checked => SELF.sep_char == entry.first) %]
- [%- END %]
+ [%- END %][%# FOREACH SELF.all_sep_chars %]
[% L.radio_button_tag('sep_char', value => 'custom', checked => custom_sep_char != '') %]
@@ -143,7 +217,7 @@
[% IF SELF.quote_char == entry.first %] [% SET custom_quote_char = '' %] [%- END %]
[% L.radio_button_tag('quote_char', value => entry.first, label => entry.last, checked => SELF.quote_char == entry.first) %]
|
- [%- END %]
+ [%- END %][%# FOREACH SELF.all_quote_chars %]
[% L.radio_button_tag('quote_char', value => 'custom', checked => custom_quote_char != '') %]
@@ -159,7 +233,7 @@
[% IF SELF.escape_char == entry.first %] [% SET custom_escape_char = '' %] [%- END %]
[% L.radio_button_tag('escape_char', value => entry.first, label => entry.last, checked => SELF.escape_char == entry.first) %]
|
- [%- END %]
+ [%- END %][%# FOREACH SELF.all_escape_chars %]
[% L.radio_button_tag('escape_char', value => 'custom', checked => custom_escape_char != '') %]
@@ -176,7 +250,7 @@
[% FOREACH key = duplicate_fields.keys %]
- [% END %]
+ [% END %][%# FOREACH duplicate_fields.keys %]
|
@@ -190,20 +264,32 @@
[% L.select_tag('settings.duplicates', opts, default = SELF.profile.get('duplicates'), style = 'width: 300px') %]
- [% END %]
+ [% END %][%# IF duplicate_fields.size %]
[%- IF SELF.type == 'parts' %]
[%- INCLUDE 'csv_import/_form_parts.html' %]
[%- ELSIF SELF.type == 'customers_vendors' %]
[%- INCLUDE 'csv_import/_form_customers_vendors.html' %]
+[%- ELSIF SELF.type == 'contacts' %]
+ [%- INCLUDE 'csv_import/_form_contacts.html' %]
+[%- ELSIF SELF.type == 'inventories' %]
+ [%- INCLUDE 'csv_import/_form_inventories.html' %]
+[%- ELSIF SELF.type == 'orders' %]
+ [%- INCLUDE 'csv_import/_form_orders.html' %]
+[%- ELSIF SELF.type == 'delivery_orders' %]
+ [%- INCLUDE 'csv_import/_form_delivery_orders.html' %]
+[%- ELSIF SELF.type == 'ar_transactions' %]
+ [%- INCLUDE 'csv_import/_form_artransactions.html' %]
+[%- ELSIF SELF.type == 'bank_transactions' %]
+ [%- INCLUDE 'csv_import/_form_banktransactions.html' %]
[%- END %]
[%- LxERP.t8('Preview Mode') %]: |
- [% L.radio_button_tag('settings.full_preview', value=2, checked=SELF.profile.get('full_preview')==2, label=LxERP.t8('Full Preview')) %]
- [% L.radio_button_tag('settings.full_preview', value=1, checked=SELF.profile.get('full_preview')==1, label=LxERP.t8('Only Warnings and Errors')) %]
- [% L.radio_button_tag('settings.full_preview', value=0, checked=!SELF.profile.get('full_preview'), label=LxERP.t8('First 20 Lines')) %]
+ [% L.radio_button_tag('settings.full_preview', value=0, checked=!SELF.profile.get('full_preview'), label=LxERP.t8('Full Preview')) %]
+ [% L.radio_button_tag('settings.full_preview', value=1, checked=SELF.profile.get('full_preview')==1, label=LxERP.t8('Only Lines with Notes or Errors')) %]
+ [% L.radio_button_tag('settings.full_preview', value=2, checked=SELF.profile.get('full_preview')==2, label=LxERP.t8('First 20 Lines')) %]
|
@@ -217,35 +303,71 @@
[%- LxERP.t8('Existing file on server') %]: |
[%- LxERP.t8('Uploaded on #1, size #2 kB', SELF.file.displayable_mtime, LxERP.format_amount(SELF.file.size / 1024, 2)) %] |
- [%- END %]
+ [%- END %][%# IF SELF.file.exists %]
+
+
+
+
+
+ [%- IF SELF.deferred %]
+ [%- PROCESS 'csv_import/_deferred_results.html' %]
+ [%- END %][%# IF SELF.deferred %]
+
- [%- PROCESS 'csv_import/_result.html' %]
- [%- PROCESS 'csv_import/_preview.html' %]
- [%- END %]