Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 4d5fd2b3

Von Hans P. Schlaepfer vor fast 4 Jahren hinzugefügt

  • ID 4d5fd2b35f54b8ce5278b7f39818874b15523c92
  • Vorgänger bc1e32e3
  • Nachfolger 2427fd01

Neues Design 2019 Standard-Code templates/webpages/client_config/_features.html

Unterschiede anzeigen:

templates/webpages/client_config/_features.html
1
[% SET style="width: 250px" %]
2
<div id="features">
3
 <table>
4
  <tr><td class="listheading" colspan="4">[% LxERP.t8("DATEV") %]</td></tr>
5

  
6
  <tr>
7
   <td align="right">[% LxERP.t8('Datevautomatik') %]</td>
8
   <td>[% L.yes_no_tag('defaults.feature_datev', SELF.defaults.feature_datev) %]</td>
9
   <td>[% LxERP.t8('Use Datevautomatik') %]</td>
10
  </tr>
11

  
12
  <tr><td class="listheading" colspan="4">[% LxERP.t8("UStVA") %]</td></tr>
13

  
14
  <tr>
15
   <td align="right">[% LxERP.t8('UStVA') %]</td>
16
   <td>[% L.yes_no_tag('defaults.feature_ustva', SELF.defaults.feature_ustva) %]</td>
17
   <td>[% LxERP.t8('Use UStVA') %]</td>
18
  </tr>
19

  
20
  <tr><td class="listheading" colspan="4">[% LxERP.t8("File Management") %]</td></tr>
21
  <tr>
22
   <td align="right">[% LxERP.t8('WebDAV') %]</td>
23
   <td>[% L.yes_no_tag('defaults.webdav', SELF.defaults.webdav) %]</td>
24
   <td>[% LxERP.t8('Use WebDAV Repository') %]</td>
25
  </tr>
26
  <tr>
27
   <td align="right">[% LxERP.t8('WebDAV save documents') %]</td>
28
   <td>[% L.yes_no_tag('defaults.webdav_documents', SELF.defaults.webdav_documents) %]</td>
29
   <td>[% LxERP.t8('Save document in WebDAV repository') %]</td>
30
  </tr>
31
  <tr>
32
   <td align="right">[% LxERP.t8('Filemanagement') %]</td>
33
   <td>[% L.yes_no_tag('defaults.doc_storage', SELF.defaults.doc_storage) %]</td>
34
   <td>[% LxERP.t8('Use Filemanagement') %]</td>
35
  </tr>
36
  <tr>
37
    <td align="right">[% LxERP.t8('Storage Type for generated/imported PDF Documents') %]</td>
38
    <td>[% L.select_tag('defaults.doc_storage_for_documents',
39
         [ [ 'None', LxERP.t8('None') ],[ 'Filesystem', LxERP.t8('Files') ],[ 'Webdav', LxERP.t8('WebDAV') ] ],
40
                               default = SELF.defaults.doc_storage_for_documents,
41
                               onchange="return checkavailable_filebackend(this);") %]</td>
42
    <td>[% LxERP.t8('Use this storage backend for all generated PDF-Files') %]</td>
43
  </tr>
44
  <tr>
45
    <td align="right">[% LxERP.t8('Storage Type for Attachments') %]</td>
46
    <td>[% L.select_tag('defaults.doc_storage_for_attachments',
47
         [ [ 'None', LxERP.t8('None') ], [ 'Filesystem', LxERP.t8('Files') ],[ 'Webdav', LxERP.t8('WebDAV') ] ],
48
                               default = SELF.defaults.doc_storage_for_attachments,
49
                               onchange="return checkavailable_filebackend(this);") %]</td>
50
    <td>[% LxERP.t8('Use this storage backend for all uploaded attachments') %]</td>
51
  </tr>
52
  <tr>
53
    <td align="right">[% LxERP.t8('Storage Type for images') %]</td>
54
    <td>[% L.select_tag('defaults.doc_storage_for_images',
55
         [ [ 'None', LxERP.t8('None') ], [ 'Filesystem', LxERP.t8('Files') ],[ 'Webdav', LxERP.t8('WebDAV') ] ],
56
                               default = SELF.defaults.doc_storage_for_images,
57
                               onchange="return checkavailable_filebackend(this);") %]</td>
58
    <td>[% LxERP.t8('Use this storage backend for uploaded images') %]</td>
59
  </tr>
60
  <tr>
61
    <td align="right">[% LxERP.t8('Storage Type for shopimages') %]</td>
62
    <td>[% L.select_tag('defaults.doc_storage_for_shopimages',
63
         [ [ 'None', LxERP.t8('None') ], [ 'Filesystem', LxERP.t8('Files') ],[ 'Webdav', LxERP.t8('WebDAV') ] ],
64
                               default = SELF.defaults.doc_storage_for_shopimages,
65
                               onchange="return checkavailable_filebackend(this);") %]</td>
66
    <td>[% LxERP.t8('Use this storage backend for uploaded images') %]</td>
67
  </tr>
68
  <tr>
69
   <td align="right">[% LxERP.t8('Delete printfiles') %]</td>
70
   <td>[% L.yes_no_tag('defaults.doc_delete_printfiles', SELF.defaults.doc_delete_printfiles) %]</td>
71
   <td>[% LxERP.t8('Allow to delete generated printfiles') %]</td>
72
  </tr>
73
  <tr>
74
   <td align="right">[% LxERP.t8('max filesize') %]</td>
75
   <td>[% L.input_tag('doc_max_filesize_MB','', size=10, onchange="verifyMBSize(this);") %]
76
       [% L.hidden_tag('defaults.doc_max_filesize',SELF.defaults.doc_max_filesize) %] MB</td>
77
   <td>[% LxERP.t8('The maximum of uploadable filesize in Megabyte') %]</td>
78
  </tr>
79
  <tr>
80
   <td align="right">[% LxERP.t8('Preselect Customer/Vendor documents as email attachments') %]</td>
81
   <td>[% L.yes_no_tag('defaults.email_attachment_vc_files_checked', SELF.defaults.email_attachment_vc_files_checked) %]</td>
82
   <td>[% LxERP.t8('Preselect all documents saved for the current customer/vendor as a mail attachment.') %]</td>
83
  </tr>
84
  <tr>
85
   <td align="right">[% LxERP.t8('Preselect part documents as email attachments') %]</td>
86
   <td>[% L.yes_no_tag('defaults.email_attachment_part_files_checked', SELF.defaults.email_attachment_part_files_checked) %]</td>
87
   <td>[% LxERP.t8('Preselect all documents for the current selected parts in a record as a mail attachment.') %]</td>
88
  </tr>
89
  <tr>
90
   <td align="right">[% LxERP.t8('Preselect record documents as email attachments') %]</td>
91
   <td>[% L.yes_no_tag('defaults.email_attachment_record_files_checked', SELF.defaults.email_attachment_record_files_checked) %]</td>
92
   <td>[% LxERP.t8('Preselect all documents saved for the current record as a mail attachment.') %]</td>
93
  </tr>
94
  <tr><td class="listheading" colspan="4">[% LxERP.t8("Storage Backends") %]</td></tr>
95
  <tr>
96
   <td align="right">[% LxERP.t8('Files') %]</td>
97
   <td>[% L.yes_no_tag('defaults.doc_files', SELF.defaults.doc_files) %]</td>
98
   <td>[% LxERP.t8('Use File Storage backend') %]</td>
99
  </tr>
100
  <tr>
101
   <td align="right">[% LxERP.t8('WebDAV') %]</td>
102
   <td>[% L.yes_no_tag('defaults.doc_webdav', SELF.defaults.doc_webdav) %]</td>
103
   <td>[% LxERP.t8('Use WebDAV Storage backend') %]</td>
104
  </tr>
105

  
106
  <tr><td class="listheading" colspan="4">[% LxERP.t8("Reports") %]</td></tr>
107

  
108
  <tr>
109
   <td align="right">[% LxERP.t8('Balance') %]</td>
110
   <td>[% L.yes_no_tag('defaults.feature_balance', SELF.defaults.feature_balance) %]</td>
111
   <td>[% LxERP.t8('Use Balance Sheet') %]</td>
112
  </tr>
113
  <tr>
114
   <td align="right">[% LxERP.t8('income') %]</td>
115
   <td>[% L.yes_no_tag('defaults.feature_eurechnung', SELF.defaults.feature_eurechnung) %]</td>
116
   <td>[% LxERP.t8('Use Income') %]</td>
117
  </tr>
118
  <tr>
119
   <td align="right">[% LxERP.t8('Erfolgsrechnung') %]</td>
120
   <td>[% L.yes_no_tag('defaults.feature_erfolgsrechnung', SELF.defaults.feature_erfolgsrechnung) %]</td>
121
   <td>[% LxERP.t8('Use Erfolgsrechnung') %]</td>
122
  </tr>
123

  
124
  <tr><td class="listheading" colspan="4">[% LxERP.t8("Customer Master Data") %]</td></tr>
125

  
126
  <tr>
127
   <td align="right">[% LxERP.t8('Representative') %]</td>
128
   <td>[% L.yes_no_tag('defaults.vertreter', SELF.defaults.vertreter) %]</td>
129
   <td>[% LxERP.t8('Representative for Customer') %]</td>
130
  </tr>
131
  <tr>
132
   <td align="right">[% LxERP.t8('Normalize Customer / Vendor names') %]</td>
133
   <td>   [% L.yes_no_tag('defaults.normalize_vc_names', SELF.defaults.normalize_vc_names) %]</td>
134
   <td>[% LxERP.t8('Automatic deletion of leading, trailing and excessive (repetitive) spaces in customer or vendor names') %]</td>
135
  </tr>
136
  <tr>
137
   <td align="right">[% LxERP.t8('Use text field for greetings') %]</td>
138
   <td>   [% L.yes_no_tag('defaults.vc_greetings_use_textfield', SELF.defaults.vc_greetings_use_textfield) %]</td>
139
   <td>[% LxERP.t8('Use a text field to enter (new) greetings if enabled. Otherwise, only a drop down box is offered.') %]</td>
140
  </tr>
141
  <tr>
142
   <td align="right">[% LxERP.t8('Use text field for title of contacts') %]</td>
143
   <td>   [% L.yes_no_tag('defaults.contact_titles_use_textfield', SELF.defaults.contact_titles_use_textfield) %]</td>
144
   <td>[% LxERP.t8('Use a text field to enter (new) contact titles if enabled. Otherwise, only a drop down box is offered.') %]</td>
145
  </tr>
146
  <tr>
147
   <td align="right">[% LxERP.t8('Use text field for department of contacts') %]</td>
148
   <td>   [% L.yes_no_tag('defaults.contact_departments_use_textfield', SELF.defaults.contact_departments_use_textfield) %]</td>
149
   <td>[% LxERP.t8('Use a text field to enter (new) contact departments if enabled. Otherwise, only a drop down box is offered.') %]</td>
150
  </tr>
151

  
152
  <tr>
153
   <td align="right">[% LxERP.t8('Hourly Rate') %]</td>
154
   <td>[% L.input_tag('defaults.customer_hourly_rate', LxERP.format_amount(SELF.defaults.customer_hourly_rate, 2), style=style) %]</td>
155
   <td>[% LxERP.t8('Default hourly rate for new customers') %]</td>
156
  </tr>
157

  
158
  <tr>
159
   <td align="right">[% LxERP.t8('Customers: VAT ID / taxnumber unique') %]</td>
160
   <td>[% L.yes_no_tag('defaults.customer_ustid_taxnummer_unique', SELF.defaults.customer_ustid_taxnummer_unique) %]</td>
161
   <td>[% LxERP.t8('Should VAT ID or taxnumber be unique for customers? This is checked when saving a customer\'s master data. One of the fields is sufficient and required.') %]</td>
162
  </tr>
163
  <tr>
164
   <td align="right">[% LxERP.t8('Vendors: VAT ID / taxnumber unique') %]</td>
165
   <td>[% L.yes_no_tag('defaults.vendor_ustid_taxnummer_unique', SELF.defaults.vendor_ustid_taxnummer_unique) %]</td>
166
   <td>[% LxERP.t8('Should VAT ID or taxnumber be unique for all vendors? This is checked when saving a vendor\'s master data. One of the fields is sufficient and required.') %]</td>
167
  </tr>
168

  
169
  <tr><td class="listheading" colspan="4">[% LxERP.t8("Parts Master Data") %]</td></tr>
170

  
171
  <tr>
172
   <td align="right">[% LxERP.t8('Pictures for parts') %]</td>
173
   <td>[% L.yes_no_tag('defaults.parts_show_image', SELF.defaults.parts_show_image) %]</td>
174
   <td>[% LxERP.t8('Show the picture in the part form') %]</td>
175
  </tr>
176
  <tr>
177
   <td align="right">[% LxERP.t8('Pictures for search parts') %]</td>
178
   <td>[% L.yes_no_tag('defaults.parts_listing_image', SELF.defaults.parts_listing_image) %]</td>
179
   <td>[% LxERP.t8('Show the pictures in the result for search parts') %]</td>
180
  </tr>
181
  <tr>
182
   <td align="right">[% LxERP.t8('CSS style for pictures') %]</td>
183
   <td>   [% L.input_tag('defaults.parts_image_css',SELF.defaults.parts_image_css, style=style) %]</td>
184
   <td>[% LxERP.t8('Style the picture with the following CSS code') %]</td>
185
  </tr>
186
  <tr>
187
    <td align="right">[% LxERP.t8('If item not found, allow creation of new item') %]</td>
188
    <td>[% L.yes_no_tag('defaults.create_part_if_not_found', SELF.defaults.create_part_if_not_found) %]</td>
189
    <td>[% LxERP.t8('If searching a part from a document and no part is found then offer to create a new part.') %]</td>
190
  </tr>
191
 <tr>
192
   <td align="right">[% LxERP.t8('Normalize part description and part notes') %]</td>
193
   <td>   [% L.yes_no_tag('defaults.normalize_part_descriptions', SELF.defaults.normalize_part_descriptions) %]</td>
194
   <td>[% LxERP.t8('Automatic deletion of leading, trailing and excessive (repetitive) spaces in part description and part notes. Affects the CSV import as well.') %]</td>
195
 </tr>
196

  
197
  <tr><td class="listheading" colspan="4">[% LxERP.t8("Purchasing & Sales") %]</td></tr>
198

  
199
  <tr>
200
   <td align="right">[% LxERP.t8('Require a transaction description in purchase and sales records') %]</td>
201
   <td>[% L.yes_no_tag('defaults.require_transaction_description_ps', SELF.defaults.require_transaction_description_ps) %]</td>
202
   <td>[% LxERP.t8('If enabled purchase and sales records cannot be saved if no transaction description has been entered.') %]</td>
203
  </tr>
204

  
205
  <tr>
206
   <td align="right">[% LxERP.t8("Only list customer's projects in sales records") %]</td>
207
   <td>[% L.yes_no_tag("defaults.customer_projects_only_in_sales", SELF.defaults.customer_projects_only_in_sales) %]</td>
208
   <td>[% LxERP.t8("If enabled only those projects that are assigned to the currently selected customer are offered for selection in sales records.") %]</td>
209
  </tr>
210

  
211
  <tr>
212
   <td align="right">[% LxERP.t8('Allow conversion from sales quotations to sales invoices') %]</td>
213
   <td>[% L.yes_no_tag('defaults.allow_sales_invoice_from_sales_quotation', SELF.defaults.allow_sales_invoice_from_sales_quotation) %]</td>
214
   <td>[% LxERP.t8('If disabled sales quotations cannot be converted into sales invoices directly.') %]</td>
215
  </tr>
216 1
[% USE LxERP %]
217 2
[% USE L %]
218 3
[% USE P %]
219 4
[% USE T8 %]
220 5

  
221
  <tr>
222
   <td align="right">[% LxERP.t8('Allow conversion from sales orders to sales invoices') %]</td>
223
   <td>[% L.yes_no_tag('defaults.allow_sales_invoice_from_sales_order', SELF.defaults.allow_sales_invoice_from_sales_order) %]</td>
224
   <td>[% LxERP.t8('If disabled sales orders cannot be converted into sales invoices directly.') %]</td>
225
  </tr>
226

  
227
  <tr>
228
   <td align="right">[% LxERP.t8('Allow direct creation of new purchase delivery orders') %]</td>
229
   <td>[% L.yes_no_tag('defaults.allow_new_purchase_delivery_order', SELF.defaults.allow_new_purchase_delivery_order) %]</td>
230
   <td>[% LxERP.t8('If disabled purchase delivery orders can only be created by conversion from existing requests for quotations and purchase orders.') %]</td>
231
  </tr>
232

  
233
  <tr>
234
   <td align="right">[% LxERP.t8('Allow direct creation of new purchase invoices') %]</td>
235
   <td>[% L.yes_no_tag('defaults.allow_new_purchase_invoice', SELF.defaults.allow_new_purchase_invoice) %]</td>
236
   <td>[% LxERP.t8('If disabled purchase invoices can only be created by conversion from existing requests for quotations, purchase orders and purchase delivery orders.') %]</td>
237
  </tr>
238

  
239
  <tr>
240
   <td align="right">[% LxERP.t8("Show »not delivered qty/value« column in sales and purchase orders") %]</td>
241
   <td>[% L.yes_no_tag("defaults.sales_purchase_order_ship_missing_column", SELF.defaults.sales_purchase_order_ship_missing_column) %]</td>
242
   <td>[% LxERP.t8("If enabled a column will be shown in sales and purchase orders that lists both the amount and the value not shipped yet for each item.") %]</td>
243
  </tr>
244

  
245
  <tr>
246
   <td align="right">[% LxERP.t8("Warn before saving orders with duplicate parts (new controller only)") %]</td>
247
   <td>[% L.yes_no_tag("defaults.order_warn_duplicate_parts", SELF.defaults.order_warn_duplicate_parts) %]</td>
248
   <td>[% LxERP.t8("If enabled a warning will be shown in sales and purchase orders if there are two or more positions of the same part (new controller only).") %]</td>
249
  </tr>
250
  <tr>
251
   <td align="right">[% LxERP.t8("Warn before saving orders without a delivery date") %]</td>
252
   <td>[% L.yes_no_tag("defaults.order_warn_no_deliverydate", SELF.defaults.order_warn_no_deliverydate) %]</td>
253
   <td>[% LxERP.t8("If enabled a warning will be shown in sales and purchase orders if there the delivery date is empty.") %]</td>
254
  </tr>
255
  <tr>
256
   <td align="right">[% LxERP.t8("For sales delivery orders, warn on workflow to invoice if not stocked out") %]</td>
257
   <td>[% L.yes_no_tag("defaults.sales_delivery_order_check_stocked", SELF.defaults.sales_delivery_order_check_stocked) %]</td>
258
   <td>[% LxERP.t8("If enabled a warning will be shown in sales delivery orders on workflow to invoices if positions are not stocked out.") %]</td>
259
  </tr>
260
  <tr>
261
  <tr>
262
   <td align="right">[% LxERP.t8("For purchase delivery orders, warn on workflow to invoice if not stocked in") %]</td>
263
   <td>[% L.yes_no_tag("defaults.purchase_delivery_order_check_stocked", SELF.defaults.purchase_delivery_order_check_stocked) %]</td>
264
   <td>[% LxERP.t8("If enabled a warning will be shown in purchase delivery orders on workflow to invoices if positions are not stocked in.") %]</td>
265
  </tr>
266
  <tr>
267
  <tr>
268
   <td align="right">[% LxERP.t8("Create sales invoices with Factur-X/ZUGFeRD data") %]</td>
269
   <td>[% L.select_tag("defaults.create_zugferd_invoices", SELF.zugferd_settings, default=SELF.defaults.create_zugferd_invoices) %]</td>
270
   <td>
271
     [% LxERP.t8("If enabled Factur-X/ZUGFeRD conformant sales invoice PDFs will be created.") %]
272
     [% LxERP.t8("If the test mode is enabled, the Factur-X/ZUGFeRD invoices will be flagged so that they're only fit to be used for testing purposes.") %]
273
   </td>
274
  </tr>
275

  
276
  <tr><td class="listheading" colspan="4">[% LxERP.t8("E-mail") %]</td></tr>
277

  
278
  <tr>
279
   <td align="right">[% LxERP.t8('Global Record BCC') %]</td>
280
   <td>
281
     [% L.input_tag('defaults.global_bcc', SELF.defaults.global_bcc, style=style) %]
282
   </td>
283
   <td>[% 'Manually sent E-Mails will have their BCC field appended with this address. Will not trigger for employees without the right to send bcc, and will not apply to mails sent by automated jobs.' | $T8 %]</td>
284
  </tr>
285

  
286
  <tr>
287
   <td align="right">[% LxERP.t8('Send a BCC to logged in user?') %]</td>
288
   <td>
289
     [% L.yes_no_tag('defaults.bcc_to_login', SELF.defaults.bcc_to_login) %]
290
   </td>
291
   <td>
292
     [% LxERP.t8('Send a blind copy of all outgoing emails to current user\'s email address?') %]
293
   </td>
294
 </tr>
295

  
296
  <tr>
297
   <td align="right">[% LxERP.t8('Email journal') %]</td>
298
   <td>
299
     [% L.select_tag('defaults.email_journal', [ [ 0, LxERP.t8('No Journal') ],[ 1, LxERP.t8('Without Attachments') ],[ 2, LxERP.t8('With Attachments') ]  ], default=SELF.defaults.email_journal) %]
300
   </td>
301
   <td>[% 'Sent emails can be optionally stored in the database with or without their attachments.' | $T8 %]</td>
302
  </tr>
303
  <tr>
304
   <td align="right">[% LxERP.t8('Invoice email settings') %]</td>
305
   <td>
306
     [% L.select_tag('defaults.invoice_mail_settings', [ [ 'cp', LxERP.t8('Contact Person') ],[ 'invoice_mail', LxERP.t8('Invoice email') ],[ 'invoice_mail_cc_cp', LxERP.t8('Invoice email and Contact Person') ]  ], default=SELF.defaults.invoice_mail_settings) %]
307
   </td>
308
   <td>[% 'The invoice recipient can either be a selected contact person (default) or the email adress set in the master data of the customer. Additionally a contact persons mail and the company\'s invoicing mail can be combined.' | $T8 %]</td>
309
  </tr>
310

  
311
  <tr><td class="listheading" colspan="4">[% LxERP.t8("Requirement Specs") %]</td></tr>
312
  <tr>
313
   <td align="right">[% LxERP.t8('Default article for converting into quotations and orders') %]</td>
314
   <td>
315
    [% IF SELF.h_unit_name %]
316
     [% P.part.picker('defaults.requirement_spec_section_order_part_id', SELF.defaults.requirement_spec_section_order_part_id, convertible_unit=SELF.h_unit_name, style=style) %]
317
    [% ELSE %]
318
     [% LxERP.t8("Error: this feature requires that articles with a time-based unit (e.g. 'h' or 'min') exist.") %]
319
    [% END %]
320
   </td>
321
   <td>[% LxERP.t8('When converting a requirement spec into a quotation or an oder each section gets converted into a line position in the new record. This is the article used by default for this conversion.') %]</td>
322
  </tr>
323
  <tr><td class="listheading" colspan="4">[% LxERP.t8('Transport and service costs reminder') %]</td></tr>
324
 <tr>
325
  <td align="right">[% LxERP.t8('Default transport article number') %]</td>
326
  <td>[% P.part.picker('defaults.transport_cost_reminder_article_number_id', SELF.defaults.transport_cost_reminder_article_number_id, style=style) %]</td>
327
   <td>[% LxERP.t8('Before saving a sales order, this article will be checked and a warning is generated.') %]</td>
328
 </tr>
329

  
330
 <tr><td class="listheading" colspan="4">[% LxERP.t8("Disabled Price Sources") %]</td></tr>
331
 <tr>
332
   <td align="right">[% 'Price Sources to be disabled in this client' | $T8 %]</td>
333
   <td colspan=2>
334
     <div class="clearfix">
335
      [% L.select_tag("defaults.disabled_price_sources[]", SELF.all_price_sources, id="defaults_price_sources", multiple=1, default=SELF.defaults.disabled_price_sources) %]
336
      [% L.multiselect2side("defaults_price_sources", labelsx=LxERP.t8("All price sources"), labeldx=LxERP.t8("Price sources deactivated in this client")) %]
337
     </div>
338
   </td>
339
 </tr>
340

  
341
  <tr><td class="listheading" colspan="4">[% LxERP.t8("Projects") %]</td></tr>
342
  <tr>
343
   <td align="right">[% LxERP.t8('Always save orders with a projectnumber (create new projects)') %]</td>
344
   <td>[% L.yes_no_tag('defaults.order_always_project', SELF.defaults.order_always_project) %]</td>
345
  </tr>
346
  <tr>
347
   <td align="right">[% LxERP.t8('Project type') %]</td>
348
   <td>[% L.select_tag('defaults.project_type_id', SELF.all_project_types, default=SELF.defaults.project_type_id, title_key='description', with_empty=0, style="width: 200px") %]</td>
349
  </tr>
350
  <tr>
351
   <td align="right">[% LxERP.t8('Project Status') %]</td>
352
   <td>[% L.select_tag('defaults.project_status_id', SELF.all_project_statuses, default=SELF.defaults.project_status_id, title_key='description', with_empty=0, style="width: 200px") %]</td>
353
  </tr>
354
  <tr><td class="listheading" colspan="4">[% LxERP.t8("Select Mulit-Item Options") %]</td></tr>
355
  <tr>
356
   <td align="right">[% LxERP.t8('Show parts longdescription (notes) in select list') %]</td>
357
   <td>[% L.yes_no_tag('defaults.show_longdescription_select_item', SELF.defaults.show_longdescription_select_item) %]</td>
358
  </tr>
6
<div id="features">
359 7

  
360
  <tr><td class="listheading" colspan="4">[% LxERP.t8("Enabled Quick Searched") %]</td></tr>
361
  <tr>
362
    <td align="right">[% 'Quick Searches that will be shown in the header in this client' | $T8 %]</td>
363
    <td colspan=2>
364
      <div class="clearfix">
365
       [% L.select_tag("defaults.quick_search_modules[]", SELF.available_quick_search_modules, value_key="name", title_key="description_config", id="defaults_quick_searches", multiple=1, default=SELF.defaults.quick_search_modules) %]
366
       [% L.multiselect2side("defaults_quick_searches", labelsx=LxERP.t8("All modules"), labeldx=LxERP.t8("Enabled modules")) %]
8
<div class="wrapper">
9

  
10
  <table class="tbl-horizontal expanded" style="margin-right:4.0em;">
11
    <caption>[% LxERP.t8("DATEV & UStVA") %]</caption>
12
    <colgroup> <col class="wi-mediumsmall"><col class="wi-small"><col class="wi-mediumsmall"> </colgroup>
13
    <tbody>
14
      <tr>
15
        <th>[% LxERP.t8('Datevautomatik') %]</th>
16
        <td>[% L.yes_no_tag('defaults.feature_datev', SELF.defaults.feature_datev) %]</td>
17
        <td class="long-desc">[% LxERP.t8('Use Datevautomatik') %]</td>
18
      </tr>
19
      <tr>
20
        <th>[% LxERP.t8('UStVA') %]</th>
21
        <td>[% L.yes_no_tag('defaults.feature_ustva', SELF.defaults.feature_ustva) %]</td>
22
        <td class="long-desc">[% LxERP.t8('Use UStVA') %]</td>
23
      </tr>
24
      <tr>
25
        <th class="caption" colspan="3">[% LxERP.t8("File Management") %]</th>
26
      </tr>
27
      <tr>
28
        <th>[% LxERP.t8('WebDAV') %]</th>
29
        <td>[% L.yes_no_tag('defaults.webdav', SELF.defaults.webdav) %]</td>
30
        <td class="long-desc">[% LxERP.t8('Use WebDAV Repository') %]</td>
31
      </tr>
32
      <tr>
33
        <th>[% LxERP.t8('WebDAV save documents') %]</th>
34
        <td>[% L.yes_no_tag('defaults.webdav_documents', SELF.defaults.webdav_documents) %]</td>
35
        <td class="long-desc">[% LxERP.t8('Save document in WebDAV repository') %]</td>
36
      </tr>
37
      <tr>
38
        <th>[% LxERP.t8('Filemanagement') %]</th>
39
        <td>[% L.yes_no_tag('defaults.doc_storage', SELF.defaults.doc_storage) %]</td>
40
        <td class="long-desc">[% LxERP.t8('Use Filemanagement') %]</td>
41
      </tr>
42
      <tr>
43
        <th>[% LxERP.t8('Storage Type for generated/imported PDF Documents') %]</th>
44
        <td>[% L.select_tag('defaults.doc_storage_for_documents', [ [ 'None', LxERP.t8('None') ],[ 'Filesystem', LxERP.t8('Files') ],[ 'Webdav', LxERP.t8('WebDAV') ] ], default = SELF.defaults.doc_storage_for_documents, onchange="return checkavailable_filebackend(this);") %]</td>
45
        <td class="long-desc">[% LxERP.t8('Use this storage backend for all generated PDF-Files') %]</td>
46
      </tr>
47
      <tr>
48
        <th>[% LxERP.t8('Storage Type for Attachments') %]</th>
49
        <td>[% L.select_tag('defaults.doc_storage_for_attachments', [ [ 'None', LxERP.t8('None') ], [ 'Filesystem', LxERP.t8('Files') ],[ 'Webdav', LxERP.t8('WebDAV') ] ], default = SELF.defaults.doc_storage_for_attachments, onchange="return checkavailable_filebackend(this);") %]</td>
50
        <td class="long-desc">[% LxERP.t8('Use this storage backend for all uploaded attachments') %]</td>
51
      </tr>
52
      <tr>
53
        <th>[% LxERP.t8('Storage Type for images') %]</th>
54
        <td>[% L.select_tag('defaults.doc_storage_for_images', [ [ 'None', LxERP.t8('None') ], [ 'Filesystem', LxERP.t8('Files') ],[ 'Webdav', LxERP.t8('WebDAV') ] ], default = SELF.defaults.doc_storage_for_images, onchange="return checkavailable_filebackend(this);") %]</td>
55
        <td class="long-desc">[% LxERP.t8('Use this storage backend for uploaded images') %]</td>
56
      </tr>
57
      <tr>
58
        <th>[% LxERP.t8('Storage Type for shopimages') %]</th>
59
        <td>[% L.select_tag('defaults.doc_storage_for_shopimages',
60
             [ [ 'None', LxERP.t8('None') ], [ 'Filesystem', LxERP.t8('Files') ],[ 'Webdav', LxERP.t8('WebDAV') ] ],
61
                                   default = SELF.defaults.doc_storage_for_shopimages,
62
                                   onchange="return checkavailable_filebackend(this);") %]</td>
63
        <td class="long-desc">[% LxERP.t8('Use this storage backend for uploaded images') %]</td>
64
      </tr>
65
      <tr>
66
        <th>[% LxERP.t8('Delete printfiles') %]</th>
67
        <td>[% L.yes_no_tag('defaults.doc_delete_printfiles', SELF.defaults.doc_delete_printfiles) %]</td>
68
        <td class="long-desc">[% LxERP.t8('Allow to delete generated printfiles') %]</td>
69
      </tr>
70
      <tr>
71
        <th>[% LxERP.t8('max filesize') %]</th>
72
        <td>[% L.input_tag('doc_max_filesize_MB','', size=10, onchange="verifyMBSize(this);", class='wi-small') %] [% L.hidden_tag('defaults.doc_max_filesize',SELF.defaults.doc_max_filesize) %] MB</td>
73
        <td class="long-desc">[% LxERP.t8('The maximum of uploadable filesize in Megabyte') %]</td>
74
      </tr>
75
      <tr>
76
        <th>[% LxERP.t8('Preselect Customer/Vendor documents as email attachments') %]</th>
77
        <td>[% L.yes_no_tag('defaults.email_attachment_vc_files_checked', SELF.defaults.email_attachment_vc_files_checked) %]</td>
78
        <td class="long-desc">[% LxERP.t8('Preselect all documents saved for the current customer/vendor as a mail attachment.') %]</td>
79
      </tr>
80
      <tr>
81
        <th>[% LxERP.t8('Preselect part documents as email attachments') %]</th>
82
        <td>[% L.yes_no_tag('defaults.email_attachment_part_files_checked', SELF.defaults.email_attachment_part_files_checked) %]</td>
83
        <td class="long-desc">[% LxERP.t8('Preselect all documents for the current selected parts in a record as a mail attachment.') %]</td>
84
      </tr>
85
      <tr>
86
        <th>[% LxERP.t8('Preselect record documents as email attachments') %]</th>
87
        <td>[% L.yes_no_tag('defaults.email_attachment_record_files_checked', SELF.defaults.email_attachment_record_files_checked) %]</td>
88
        <td class="long-desc">[% LxERP.t8('Preselect all documents saved for the current record as a mail attachment.') %]</td>
89
      </tr>
90
      <tr>
91
        <th class="caption" colspan="3">[% LxERP.t8("Storage Backends") %]</th>
92
      </tr>
93
      <tr>
94
        <th>[% LxERP.t8('Files') %]</th>
95
        <td>[% L.yes_no_tag('defaults.doc_files', SELF.defaults.doc_files) %]</td>
96
        <td class="long-desc">[% LxERP.t8('Use File Storage backend') %]</td>
97
      </tr>
98
      <tr>
99
        <th>[% LxERP.t8('WebDAV') %]</th>
100
        <td>[% L.yes_no_tag('defaults.doc_webdav', SELF.defaults.doc_webdav) %]</td>
101
        <td class="long-desc">[% LxERP.t8('Use WebDAV Storage backend') %]</td>
102
      </tr>
103
      <tr>
104
        <th class="caption" colspan="3"> [% LxERP.t8("Reports") %] </th>
105
      </tr>
106
      <tr>
107
        <th>[% LxERP.t8('Balance') %]</th>
108
        <td>[% L.yes_no_tag('defaults.feature_balance', SELF.defaults.feature_balance) %]</td>
109
        <td class="long-desc">[% LxERP.t8('Use Balance Sheet') %]</td>
110
      </tr>
111
      <tr>
112
        <th>[% LxERP.t8('income') %]</th>
113
        <td>[% L.yes_no_tag('defaults.feature_eurechnung', SELF.defaults.feature_eurechnung) %]</td>
114
        <td class="long-desc">[% LxERP.t8('Use Income') %]</td>
115
      </tr>
116
      <tr>
117
        <th>[% LxERP.t8('Erfolgsrechnung') %]</th>
118
        <td>[% L.yes_no_tag('defaults.feature_erfolgsrechnung', SELF.defaults.feature_erfolgsrechnung) %]</td>
119
        <td class="long-desc">[% LxERP.t8('Use Erfolgsrechnung') %]</td>
120
      </tr>
121
      <tr>
122
        <th class="caption" colspan="3"> [% 'E-mail' | $T8 %] </th>
123
      </tr>
124
      <tr>
125
        <th>[% LxERP.t8('Global Record BCC') %]</th>
126
        <td colspan="2"> [% L.input_tag('defaults.global_bcc', SELF.defaults.global_bcc, class='wi-wide') %] <div class="description">[% 'Manually sent E-Mails will have their BCC field appended with this address. Will not trigger for employees without the right to send bcc, and will not apply to mails sent by automated jobs.' | $T8 %]</div></td>
127

  
128
      </tr>
129
      <tr>
130
        <th>[% LxERP.t8('Send a BCC to logged in user?') %]</th>
131
        <td> [% L.yes_no_tag('defaults.bcc_to_login', SELF.defaults.bcc_to_login) %] </td>
132
        <td class="long-desc"> [% LxERP.t8('Send a blind copy of all outgoing emails to current user\'s email address?') %] </td>
133
      </tr>
134
      <tr>
135
        <th>[% LxERP.t8('Email journal') %]</th>
136
        <td colspan="2"> [% L.select_tag('defaults.email_journal', [ [ 0, LxERP.t8('No Journal') ],[ 1, LxERP.t8('Without Attachments') ],[ 2, LxERP.t8('With Attachments') ] ], default=SELF.defaults.email_journal, class="wi-wide") %] <div class="description">[% 'Sent emails can be optionally stored in the database with or without their attachments.' | $T8 %]</div></td>
137

  
138
      </tr>
139
      <tr>
140
        <th class="caption" colspan="3">[% LxERP.t8("SEPA") %]</th>
141
      </tr>
142
      <tr>
143
        <th>[% 'Add Customer/Vendor Number' | $T8 %]</th>
144
        <td>[% L.yes_no_tag('defaults.sepa_reference_add_vc_vc_id', SELF.defaults.sepa_reference_add_vc_vc_id) %]</td>
145
        <td class="long-desc">[% LxERP.t8('Add Customer/Vendor Number as a reference add-on for SEPA export.') %]</td>
146
      </tr>
147
      <tr>
148
        <th>[% 'Execution Date = Invoice Duedate' | $T8 %]</th>
149
        <td>[% L.yes_no_tag('defaults.sepa_set_duedate_as_default_exec_date', SELF.defaults.sepa_set_duedate_as_default_exec_date) %]</td>
150
        <td class="long-desc">[% LxERP.t8('Set the invoice duedate as the default execution date for SEPA export.') %]</td>
151
      </tr>
152
      <tr>
153
        <th>[% 'Execution Date = Skonto Date' | $T8 %]</th>
154
        <td>[% L.yes_no_tag('defaults.sepa_set_skonto_date_as_default_exec_date', SELF.defaults.sepa_set_skonto_date_as_default_exec_date) %]</td>
155
        <td class="long-desc">[% LxERP.t8('Set the invoice skonto date (if exists) as the default execution date for SEPA export.') %]</td>
156
      </tr>
157
      <tr>
158
        <th>[% 'Buffer Substraction' | $T8 %]</th>
159
        <td>[% L.input_tag('defaults.sepa_set_skonto_date_buffer_in_days', LxERP.format_amount(SELF.defaults.sepa_set_skonto_date_buffer_in_days, 0), size=10, class='wi-small' ) %]</td>
160
        <td class="long-desc">[% LxERP.t8('In addition to the above date functions, subtract the following amount of days from the calculated date as a buffer.') %]</td>
161
      </tr>
162

  
163
      <tr>
164
        <th class="caption" colspan="3">[% LxERP.t8("Experimental Features") %]</th>
165
      </tr>
166
      <tr>
167
        <th>[% LxERP.t8('Order Controller') %]</th>
168
        <td>[% L.yes_no_tag('defaults.feature_experimental_order', SELF.defaults.feature_experimental_order) %]</td>
169
        <td class="long-desc">[% LxERP.t8('Replace legacy order controller with new one') %]</td>
170
      </tr>
171
      <tr>
172
        <th>[% LxERP.t8('Assortment') %]</th>
173
        <td>[% L.yes_no_tag('defaults.feature_experimental_assortment', SELF.defaults.feature_experimental_assortment) %]</td>
174
        <td class="long-desc">[% LxERP.t8('Enable Assortment as new article type') %]</td>
175
      </tr>
176
    </tbody>
177
  </table>
178

  
179
  <table class="tbl-horizontal expanded">
180
    <caption>[% 'Customer Master Data' | $T8 %]</caption>
181
    <colgroup> <col class="wi-mediumsmall"><col class="wi-small"><col class="wi-wide"> </colgroup>
182
    <tbody>
183
      <tr>
184
        <th>[% LxERP.t8('Representative') %]</th>
185
        <td>[% L.yes_no_tag('defaults.vertreter', SELF.defaults.vertreter) %]</td>
186
        <td class="long-desc">[% LxERP.t8('Representative for Customer') %]</td>
187
      </tr>
188
      <tr>
189
        <th>[% LxERP.t8('Normalize Customer / Vendor names') %]</th>
190
        <td>[% L.yes_no_tag('defaults.normalize_vc_names', SELF.defaults.normalize_vc_names) %]</td>
191
        <td class="long-desc">[% LxERP.t8('Automatic deletion of leading, trailing and excessive (repetitive) spaces in customer or vendor names') %]</td>
192
      </tr>
193
      <tr>
194
       <th>[% LxERP.t8('Use text field for greetings') %]</th>
195
       <td>[% L.yes_no_tag('defaults.vc_greetings_use_textfield', SELF.defaults.vc_greetings_use_textfield) %]</td>
196
       <td class="long-desc">[% LxERP.t8('Use a text field to enter (new) greetings if enabled. Otherwise, only a drop down box is offered.') %]</td>
197
      </tr>
198
      <tr>
199
       <th>[% LxERP.t8('Use text field for title of contacts') %]</th>
200
       <td>[% L.yes_no_tag('defaults.contact_titles_use_textfield', SELF.defaults.contact_titles_use_textfield) %]</td>
201
       <td class="long-desc">[% LxERP.t8('Use a text field to enter (new) contact titles if enabled. Otherwise, only a drop down box is offered.') %]</td>
202
      </tr>
203
      <tr>
204
       <th>[% LxERP.t8('Use text field for department of contacts') %]</th>
205
       <td>[% L.yes_no_tag('defaults.contact_departments_use_textfield', SELF.defaults.contact_departments_use_textfield) %]</td>
206
       <td class="long-desc">[% LxERP.t8('Use a text field to enter (new) contact departments if enabled. Otherwise, only a drop down box is offered.') %]</td>
207
      </tr>
208
      <tr>
209
        <th>[% LxERP.t8('Hourly Rate') %]</th>
210
        <td>[% L.input_tag('defaults.customer_hourly_rate', LxERP.format_amount(SELF.defaults.customer_hourly_rate, 2), class='wi-small') %]</td>
211
        <td class="long-desc">[% LxERP.t8('Default hourly rate for new customers') %]</td>
212
      </tr>
213
      <tr>
214
       <td>[% LxERP.t8('Customers: VAT ID / taxnumber unique') %]</td>
215
       <td>[% L.yes_no_tag('defaults.customer_ustid_taxnummer_unique', SELF.defaults.customer_ustid_taxnummer_unique) %]</td>
216
       <td class="long-desc">[% LxERP.t8('Should VAT ID or taxnumber be unique for customers? This is checked when saving a customer\'s master data. One of the fields is sufficient and required.') %]</td>
217
      </tr>
218
      <tr>
219
       <td>[% LxERP.t8('Vendors: VAT ID / taxnumber unique') %]</td>
220
       <td>[% L.yes_no_tag('defaults.vendor_ustid_taxnummer_unique', SELF.defaults.vendor_ustid_taxnummer_unique) %]</td>
221
       <td class="long-desc">[% LxERP.t8('Should VAT ID or taxnumber be unique for all vendors? This is checked when saving a vendor\'s master data. One of the fields is sufficient and required.') %]</td>
222
      </tr>
223
      <tr>
224
        <th class="caption" colspan="3">[% LxERP.t8("Parts Master Data") %]</th>
225
      </tr>
226
      <tr>
227
        <th>[% LxERP.t8('Pictures for parts') %]</th>
228
        <td>[% L.yes_no_tag('defaults.parts_show_image', SELF.defaults.parts_show_image) %]</td>
229
        <td class="long-desc">[% LxERP.t8('Show the picture in the part form') %]</td>
230
      </tr>
231
      <tr>
232
        <th>[% LxERP.t8('Pictures for search parts') %]</th>
233
        <td>[% L.yes_no_tag('defaults.parts_listing_image', SELF.defaults.parts_listing_image) %]</td>
234
        <td class="long-desc">[% LxERP.t8('Show the pictures in the result for search parts') %]</td>
235
      </tr>
236
      <tr>
237
        <th>[% LxERP.t8('CSS style for pictures') %]</th>
238
        <td> [% L.input_tag('defaults.parts_image_css',SELF.defaults.parts_image_css, class='wi-mediumsmall') %]</td>
239
        <td class="long-desc">[% LxERP.t8('Style the picture with the following CSS code') %]</td>
240
      </tr>
241
      <tr>
242
        <th>[% LxERP.t8('If item not found, allow creation of new item') %]</th>
243
        <td>[% L.yes_no_tag('defaults.create_part_if_not_found', SELF.defaults.create_part_if_not_found) %]</td>
244
        <td class="long-desc">[% LxERP.t8('If searching a part from a document and no part is found then offer to create a new part.') %]</td>
245
      </tr>
246
      <tr>
247
        <th>[% LxERP.t8('Normalize part description and part notes') %]</th>
248
        <td> [% L.yes_no_tag('defaults.normalize_part_descriptions', SELF.defaults.normalize_part_descriptions) %]</td>
249
        <td class="long-desc">[% LxERP.t8('Automatic deletion of leading, trailing and excessive (repetitive) spaces in part description and part notes. Affects the CSV import as well.') %]</td>
250
      </tr>
251
      <tr>
252
        <th class="caption" colspan="3">[% LxERP.t8("Purchasing & Sales") %]</th>
253
      </tr>
254
      <tr>
255
        <th>[% LxERP.t8('Require a transaction description in purchase and sales records') %]</th>
256
        <td>[% L.yes_no_tag('defaults.require_transaction_description_ps', SELF.defaults.require_transaction_description_ps) %]</td>
257
        <td class="long-desc">[% LxERP.t8('If enabled purchase and sales records cannot be saved if no transaction description has been entered.') %]</td>
258
      </tr>
259
      <tr>
260
        <th>[% LxERP.t8("Only list customer's projects in sales records") %]</th>
261
        <td>[% L.yes_no_tag("defaults.customer_projects_only_in_sales", SELF.defaults.customer_projects_only_in_sales) %]</td>
262
        <td class="long-desc">[% LxERP.t8("If enabled only those projects that are assigned to the currently selected customer are offered for selection in sales records.") %]</td>
263
      </tr>
264
      <tr>
265
        <th>[% LxERP.t8('Allow conversion from sales quotations to sales invoices') %]</th>
266
        <td>[% L.yes_no_tag('defaults.allow_sales_invoice_from_sales_quotation', SELF.defaults.allow_sales_invoice_from_sales_quotation) %]</td>
267
        <td class="long-desc">[% LxERP.t8('If disabled sales quotations cannot be converted into sales invoices directly.') %]</td>
268
      </tr>
269
      <tr>
270
        <th>[% LxERP.t8('Allow conversion from sales orders to sales invoices') %]</th>
271
        <td>[% L.yes_no_tag('defaults.allow_sales_invoice_from_sales_order', SELF.defaults.allow_sales_invoice_from_sales_order) %]</td>
272
        <td class="long-desc">[% LxERP.t8('If disabled sales orders cannot be converted into sales invoices directly.') %]</td>
273
      </tr>
274
      <tr>
275
        <th>[% LxERP.t8('Allow direct creation of new purchase delivery orders') %]</th>
276
        <td>[% L.yes_no_tag('defaults.allow_new_purchase_delivery_order', SELF.defaults.allow_new_purchase_delivery_order) %]</td>
277
        <td class="long-desc">[% LxERP.t8('If disabled purchase delivery orders can only be created by conversion from existing requests for quotations and purchase orders.') %]</td>
278
      </tr>
279
      <tr>
280
        <th>[% LxERP.t8('Allow direct creation of new purchase invoices') %]</th>
281
        <td>[% L.yes_no_tag('defaults.allow_new_purchase_invoice', SELF.defaults.allow_new_purchase_invoice) %]</td>
282
        <td class="long-desc">[% LxERP.t8('If disabled purchase invoices can only be created by conversion from existing requests for quotations, purchase orders and purchase delivery orders.') %]</td>
283
      </tr>
284
      <tr>
285
        <th>[% LxERP.t8("Show »not delivered qty/value« column in sales and purchase orders") %]</th>
286
        <td>[% L.yes_no_tag("defaults.sales_purchase_order_ship_missing_column", SELF.defaults.sales_purchase_order_ship_missing_column) %]</td>
287
        <td class="long-desc">[% LxERP.t8("If enabled a column will be shown in sales and purchase orders that lists both the amount and the value not shipped yet for each item.") %]</td>
288
      </tr>
289
      <tr>
290
        <th>[% LxERP.t8("Warn before saving orders with duplicate parts (new controller only)") %]</th>
291
        <td>[% L.yes_no_tag("defaults.order_warn_duplicate_parts", SELF.defaults.order_warn_duplicate_parts) %]</td>
292
        <td class="long-desc">[% LxERP.t8("If enabled a warning will be shown in sales and purchase orders if there are two or more positions of the same part (new controller only).") %]</td>
293
      </tr>
294
      <tr>
295
       <th>[% LxERP.t8("Warn before saving orders without a delivery date") %]</th>
296
       <td>[% L.yes_no_tag("defaults.order_warn_no_deliverydate", SELF.defaults.order_warn_no_deliverydate) %]</td>
297
       <td class="long-desc">[% LxERP.t8("If enabled a warning will be shown in sales and purchase orders if there the delivery date is empty.") %]</td>
298
      </tr>
299
      <tr>
300
       <th>[% LxERP.t8("For sales delivery orders, warn on workflow to invoice if not stocked out") %]</th>
301
       <td>[% L.yes_no_tag("defaults.sales_delivery_order_check_stocked", SELF.defaults.sales_delivery_order_check_stocked) %]</td>
302
       <td class="long-desc">[% LxERP.t8("If enabled a warning will be shown in sales delivery orders on workflow to invoices if positions are not stocked out.") %]</td>
303
      </tr>
304
      <tr>
305
       <th>[% LxERP.t8("For purchase delivery orders, warn on workflow to invoice if not stocked in") %]</th>
306
       <td>[% L.yes_no_tag("defaults.purchase_delivery_order_check_stocked", SELF.defaults.purchase_delivery_order_check_stocked) %]</td>
307
       <td class="long-desc">[% LxERP.t8("If enabled a warning will be shown in purchase delivery orders on workflow to invoices if positions are not stocked in.") %]</td>
308
      </tr>
309
      <tr>
310
       <th>[% LxERP.t8("Create sales invoices with Factur-X/ZUGFeRD data") %]</th>
311
       <td>[% L.select_tag("defaults.create_zugferd_invoices", SELF.zugferd_settings, default=SELF.defaults.create_zugferd_invoices) %]</td>
312
       <td class="long-desc">
313
         [% LxERP.t8("If enabled Factur-X/ZUGFeRD-conformant sales invoice PDFs will be created.") %]
314
         [% LxERP.t8("If the test mode is enabled, the Factur-X/ZUGFeRD invoices will be flagged so that they're only fit to be used for testing purposes.") %]
315
       </td>
316
      </tr>
317
      <tr>
318
        <th class="caption" colspan="3">[% LxERP.t8('Transport and service costs reminder') %]</th>
319
      </tr>
320
      <tr>
321
        <th>[% LxERP.t8('Default transport article number') %]</th>
322
        <td>[% P.part.picker('defaults.transport_cost_reminder_article_number_id', SELF.defaults.transport_cost_reminder_article_number_id, class='wi-mediumsmall') %]</td>
323
        <td class="long-desc">[% LxERP.t8('Before saving a sales order, this article will be checked and a warning is generated.') %]</td>
324
      </tr>
325
      <tr>
326
        <td>[% LxERP.t8('Invoice email settings') %]</td>
327
        <td>
328
          [% L.select_tag('defaults.invoice_mail_settings', [ [ 'cp', LxERP.t8('Contact Person') ],[ 'invoice_mail', LxERP.t8('Invoice email') ],[ 'invoice_mail_cc_cp', LxERP.t8('Invoice email and Contact Person') ]  ], default=SELF.defaults.invoice_mail_settings) %]
329
        </td>
330
        <td>[% 'The invoice recipient can either be a selected contact person (default) or the email adress set in the master data of the customer. Additionally a contact persons mail and the company\'s invoicing mail can be combined.' | $T8 %]</td>
331
      </tr>
332
      <tr>
333
        <th class="caption" colspan="3">[% LxERP.t8("Requirement Specs") %]</th>
334
      </tr>
335
      <tr>
336
        <th>[% LxERP.t8('Default article for converting into quotations and orders') %]</th>
337
        <td>
338
          [% IF SELF.h_unit_name %]
339
            [% P.part.picker('defaults.requirement_spec_section_order_part_id', SELF.defaults.requirement_spec_section_order_part_id, convertible_unit=SELF.h_unit_name, class='wi-mediumsmall') %]
340
          [% ELSE %]
341
            [% LxERP.t8("Error: this feature requires that articles with a time-based unit (e.g. 'h' or 'min') exist.") %]
342
          [% END %]
343
        </td>
344
        <td class="long-desc">[% LxERP.t8('When converting a requirement spec into a quotation or an oder each section gets converted into a line position in the new record. This is the article used by default for this conversion.') %]</td>
345
      </tr>
346
      <tr>
347
        <th class="caption" colspan="3">[% LxERP.t8("Projects") %]</th>
348
      </tr>
349
      <tr>
350
        <th>[% 'Orders with projectnumber' | $T8 %]</th>
351
        <td>[% L.yes_no_tag('defaults.order_always_project', SELF.defaults.order_always_project) %]</td>
352
        <td class="long-desc">[% LxERP.t8('Always save orders with a projectnumber (create new projects)') %]</td>
353
      </tr>
354
      <tr>
355
        <th>[% LxERP.t8('Project type') %]</th>
356
        <td>[% L.select_tag('defaults.project_type_id', SELF.all_project_types, default=SELF.defaults.project_type_id, title_key='description', with_empty=0, class='wi-mediumsmall') %]</td>
357
        <td class="long-desc"></td>
358
      </tr>
359
      <tr>
360
        <th>[% LxERP.t8('Project Status') %]</th>
361
        <td>[% L.select_tag('defaults.project_status_id', SELF.all_project_statuses, default=SELF.defaults.project_status_id, title_key='description', with_empty=0, class='wi-mediumsmall') %]</td>
362
        <td class="long-desc"></td>
363
      </tr>
364
      <tr>
365
        <th class="caption" colspan="3">[% LxERP.t8("Select Mulit-Item Options") %]</th>
366
      </tr>
367
      <tr>
368
        <th>[% 'Long description' | $T8 %]</th>
369
        <td>[% L.yes_no_tag('defaults.show_longdescription_select_item', SELF.defaults.show_longdescription_select_item) %]</td>
370
        <td class="long-desc">[% LxERP.t8('Show parts longdescription (notes) in select list') %]</td>
371
      </tr>
372
    </tbody>
373
  </table>
374

  
375
</div><!-- /.wrapper -->
376

  
377
<div class="wrapper">
378

  
379
<table class="tbl-horizontal expanded">
380
  <caption>[% LxERP.t8("Disabled Price Sources") %]</caption>
381
  <colgroup> <col class="wi-normal"><col class="wi-verywide"><col class="wi-normal"> </colgroup>
382
  <tbody>
383
    <tr>
384
      <th>[% 'Price Sources to be disabled in this client' | $T8 %]</th>
385
      <td colspan="2">
386
      <div>
387
        [% L.select_tag("defaults.disabled_price_sources[]", SELF.all_price_sources, id="defaults_price_sources", multiple=1, default=SELF.defaults.disabled_price_sources) %] [% L.multiselect2side("defaults_price_sources", labelsx=LxERP.t8("All price sources"), labeldx=LxERP.t8("Price sources deactivated in this client")) %]
367 388
      </div>
368
    </td>
369
  </tr>
370
  <tr><td class="listheading" colspan="4">[% LxERP.t8("SEPA") %]</td></tr>
371
  <tr>
372
   <td align="right">[% LxERP.t8('Add Customer/Vendor Number as a reference add-on for SEPA export.') %]</td>
373
   <td>[% L.yes_no_tag('defaults.sepa_reference_add_vc_vc_id', SELF.defaults.sepa_reference_add_vc_vc_id) %]</td>
374
  </tr>
375
  <tr>
376
   <td align="right">[% LxERP.t8('Set the invoice duedate as the default execution date for SEPA export.') %]</td>
377
   <td>[% L.yes_no_tag('defaults.sepa_set_duedate_as_default_exec_date', SELF.defaults.sepa_set_duedate_as_default_exec_date) %]</td>
378
  </tr>
379
  <tr>
380
   <td align="right">[% LxERP.t8('Set the invoice skonto date (if exists) as the default execution date for SEPA export.') %]</td>
381
   <td>[% L.yes_no_tag('defaults.sepa_set_skonto_date_as_default_exec_date', SELF.defaults.sepa_set_skonto_date_as_default_exec_date) %]</td>
382
  </tr>
383
  <tr>
384
   <td align="right">[% LxERP.t8('In addition to the above date functions, subtract the following amount of days from the calculated date as a buffer.') %]</td>
385
   <td>[% L.input_tag('defaults.sepa_set_skonto_date_buffer_in_days', LxERP.format_amount(SELF.defaults.sepa_set_skonto_date_buffer_in_days, 0), style=style) %]</td>
386
  </tr>
387
  <tr><td class="listheading" colspan="4">[% LxERP.t8("Experimental Features") %]</td></tr>
388
  <tr>
389
   <td align="right">[% LxERP.t8('new order controller') %]</td>
390
   <td>[% L.yes_no_tag('defaults.feature_experimental_order', SELF.defaults.feature_experimental_order) %]</td>
391
  </tr>
392
  <tr>
393
   <td align="right">[% LxERP.t8('Assortment') %]</td>
394
   <td>[% L.yes_no_tag('defaults.feature_experimental_assortment', SELF.defaults.feature_experimental_assortment) %]</td>
395
  </tr>
396

  
397
 <tr><td class="listheading" colspan="4">[% LxERP.t8("Shipped Quantity Algorithm") %]</td></tr>
398
 <tr>
399
  <td align="right">[% LxERP.t8('Require stock out to consider a delivery order position delivered?') %]</td>
400
  <td>[% L.yes_no_tag('defaults.shipped_qty_require_stock_out', SELF.defaults.shipped_qty_require_stock_out) %]</td>
401
  <td>[% LxERP.t8('If yes, delivery order positions are considered "delivered" only if they have been stocked out of the inventory. Otherwise saving the delivery order is considered delivered.') %]</td>
402
 </tr>
403
 <tr>
404
  <td align="right">[% LxERP.t8('Use fill up when calculating shipped quantities?') %]</td>
405
  <td>[% L.yes_no_tag('defaults.shipped_qty_fill_up', SELF.defaults.shipped_qty_fill_up) %]</td>
406
  <td>[% LxERP.t8('Linked positions will always be reconciled first. If this is set to yes, unlinked positions will be reconciled in a second step. This is necessary in very old databases (with open delivery orders from before 3.4.0) and in businesses where delivery orders are frequently amended. Usually the direct links are faster and more accurate. Defaults to true for historical reasons only.') %]</td>
407
 </tr>
408
 <tr>
409
  <td align="right">[% LxERP.t8('Position identity fields for fill up?') %]</td>
410
  <td>
411
    [% L.select_tag("defaults.shipped_qty_item_identity_fields[]", SELF.available_shipped_qty_item_identity_fields, id="defaults_shipped_qty_item_identity_fields", multiple=1, default=SELF.defaults.shipped_qty_item_identity_fields) %]
412
    [% L.multiselect2side("defaults_shipped_qty_item_identity_fields", labelsx=LxERP.t8("Available identity fields"), labeldx=LxERP.t8("Selected identity fields")) %]</td>
413
  <td>[% LxERP.t8('Only applies if the previous is set to true. When filling up unlinked positions, consider them matches if ALL of these fields match. For example, in a business with variants that are defined by a special description, description needs to be part of the identity. If delivering several similar order positions by delivery date is common, reqdate should be included in the identity. Serialnumber is useful when the serialnumber in the order and delivery order has to match.') %]</td>
414
 </tr>
415

  
416
 <tr><td class="listheading" colspan="4">[% 'Displayable Name Preferences' | $T8 %]</td></tr>
417
 [% FOREACH module=SELF.displayable_name_specs_by_module.keys.sort %]
418
 [%- SET spec=SELF.displayable_name_specs_by_module.$module -%]
419
  <tr>
420
    <td align="right">[% spec.specs.title %]</td>
421
    <td>
422
      <table>
423
        <tr>
424
          <th align="left" class="listheading">[% 'Option' | $T8 %]</th>
425
          <th align="left" class="listheading">[% 'Name'   | $T8 %]</th>
426
        </tr>
427
        [% FOREACH option=spec.specs.options %]
428
        <tr>
429
          <td>[% option.title %]</td>
430
          <td>[% option.name  %]</td>
431
        </tr>
432
        [% END %]
433
        <tr>
434
          <th align="left">[% 'Display' | $T8 %]:</th>
435
          <td>
436
            [% L.hidden_tag("displayable_name_specs[+].module", module) %]
437
            [% L.input_tag("displayable_name_specs[].default", spec.prefs.get_default, size=50) %]
438
          </td>
439
        </tr>
440
      </table>
441
    </td>
442
    [% IF loop.first %]
443
    <td>[% 'The display of (mainly) picker results can be configured. To insert the value of one option use <%Name%>.' | $T8 %]<br>
389
      </td>
390
    </tr>
391
    <tr>
392
      <th class="caption" colspan="3">[% LxERP.t8("Enabled Quick Searched") %]</th>
393
    </tr>
394
    <tr>
395
      <th>[% 'Quick Searches that will be shown in the header in this client' | $T8 %]</th>
396
      <td colspan="2">
397
      <div>
398
        [% L.select_tag("defaults.quick_search_modules[]", SELF.available_quick_search_modules, value_key="name", title_key="description_config", id="defaults_quick_searches", multiple=1, default=SELF.defaults.quick_search_modules) %] [% L.multiselect2side("defaults_quick_searches", labelsx=LxERP.t8("All modules"), labeldx=LxERP.t8("Enabled modules")) %]
399
      </div>
400
      </td>
401
    </tr>
402
    <tr>
403
      <th class="caption" colspan="3">[% LxERP.t8("Shipped Quantity Algorithm") %]</th>
404
    </tr>
405
    <tr>
406
      <th>[% LxERP.t8('Require stock out to consider a delivery order position delivered?') %]</th>
407
      <td colspan="2">[% L.yes_no_tag('defaults.shipped_qty_require_stock_out', SELF.defaults.shipped_qty_require_stock_out) %]<div class="description wi-verywide">
408
[% LxERP.t8('If yes, delivery order positions are considered "delivered" only if they have been stocked out of the inventory. Otherwise saving the delivery order is considered delivered.') %]
409
</div></td>
410
    </tr>
411
    <tr>
412
      <th>[% LxERP.t8('Use fill up when calculating shipped quantities?') %]</th>
413
      <td colspan="2">[% L.yes_no_tag('defaults.shipped_qty_fill_up', SELF.defaults.shipped_qty_fill_up) %]<div class="description wi-verywide">
414
[% LxERP.t8('Linked positions will always be reconciled first. If this is set to yes, unlinked positions will be reconciled in a second step. This is necessary in very old databases (with open delivery orders from before 3.4.0) and in businesses where delivery orders are frequently amended. Usually the direct links are faster and more accurate. Defaults to true for historical reasons only.') %]
415
</div></td>
416
    </tr>
417
    <tr>
418
      <th>[% LxERP.t8('Position identity fields for fill up?') %]</th>
419
      <td colspan="2"> [% L.select_tag("defaults.shipped_qty_item_identity_fields[]", SELF.available_shipped_qty_item_identity_fields, id="defaults_shipped_qty_item_identity_fields", multiple=1, default=SELF.defaults.shipped_qty_item_identity_fields) %] [% L.multiselect2side("defaults_shipped_qty_item_identity_fields", labelsx=LxERP.t8("Available identity fields"), labeldx=LxERP.t8("Selected identity fields")) %]<div class="description wi-verywide">
420
[% LxERP.t8('Only applies if the previous is set to true. When filling up unlinked positions, consider them matches if ALL of these fields match. For example, in a business with variants that are defined by a special description, description needs to be part of the identity. If delivering several similar order positions by delivery date is common, reqdate should be included in the identity. Serialnumber is useful when the serialnumber in the order and delivery order has to match.') %]
421
</div></td>
422
      <!-- <td class="longdesc"></td> -->
423
    </tr>
424
    <tr><td class="listheading" colspan="4">[% 'Displayable Name Preferences' | $T8 %]</td></tr>
425
    [% FOREACH module=SELF.displayable_name_specs_by_module.keys.sort %]
426
    [%- SET spec=SELF.displayable_name_specs_by_module.$module -%]
427
    <tr>
428
      <td align="right">[% spec.specs.title %]</td>
429
      <td>
430
        <table>
431
          <tr>
432
            <th align="left" class="listheading">[% 'Option' | $T8 %]</th>
433
            <th align="left" class="listheading">[% 'Name'   | $T8 %]</th>
434
          </tr>
435
          [% FOREACH option=spec.specs.options %]
436
          <tr>
437
            <td>[% option.title %]</td>
438
            <td>[% option.name  %]</td>
439
          </tr>
440
          [% END %]
441
          <tr>
442
            <th align="left">[% 'Display' | $T8 %]:</th>
443
            <td>
444
              [% L.hidden_tag("displayable_name_specs[+].module", module) %]
445
              [% L.input_tag("displayable_name_specs[].default", spec.prefs.get_default, size=50) %]
446
            </td>
447
          </tr>
448
        </table>
449
      </td>
450
      [% IF loop.first %]
451
      <td>[% 'The display of (mainly) picker results can be configured. To insert the value of one option use <%Name%>.' | $T8 %]<br>
444 452
        [% 'E.g. "<%customernumber%> <%name%>"' | $T8 %]
445
    </td>
453
      </td>
454
      [% END %]
455
    </tr>
446 456
    [% END %]
447
  </tr>
448
  [% END %]
457
  </tbody>
458
</table>
449 459

  
460
</div><!-- /.wrapper -->
450 461

  
451
</table>
452
</div>
462
</div><!-- /#features -->

Auch abrufbar als: Unified diff