Mandantenkonfiguration: Schalter für experimentelle Features
[kivitendo-erp.git] / templates / webpages / client_config / _features.html
1 [%- USE LxERP -%][%- USE L -%][%- USE P -%][%- USE T8 %]
2 [% SET style="width: 250px" %]
3 <div id="features">
4  <table>
5   <tr><td class="listheading" colspan="4">[% LxERP.t8("DATEV") %]</td></tr>
6
7   <tr>
8    <td align="right">[% LxERP.t8('Datevautomatik') %]</td>
9    <td>[% L.yes_no_tag('defaults.feature_datev', SELF.defaults.feature_datev) %]</td>
10    <td>[% LxERP.t8('Use Datevautomatik') %]</td>
11   </tr>
12
13   <tr><td class="listheading" colspan="4">[% LxERP.t8("UStVA") %]</td></tr>
14
15   <tr>
16    <td align="right">[% LxERP.t8('UStVA') %]</td>
17    <td>[% L.yes_no_tag('defaults.feature_ustva', SELF.defaults.feature_ustva) %]</td>
18    <td>[% LxERP.t8('Use UStVA') %]</td>
19   </tr>
20
21   <tr><td class="listheading" colspan="4">[% LxERP.t8("File Management") %]</td></tr>
22   <tr>
23    <td align="right">[% LxERP.t8('WebDAV') %]</td>
24    <td>[% L.yes_no_tag('defaults.webdav', SELF.defaults.webdav) %]</td>
25    <td>[% LxERP.t8('Use WebDAV Repository') %]</td>
26   </tr>
27   <tr>
28    <td align="right">[% LxERP.t8('WebDAV save documents') %]</td>
29    <td>[% L.yes_no_tag('defaults.webdav_documents', SELF.defaults.webdav_documents) %]</td>
30    <td>[% LxERP.t8('Save document in WebDAV repository') %]</td>
31   </tr>
32   <tr>
33    <td align="right">[% LxERP.t8('Filemanagement') %]</td>
34    <td>[% L.yes_no_tag('defaults.doc_storage', SELF.defaults.doc_storage) %]</td>
35    <td>[% LxERP.t8('Use Filemanagement') %]</td>
36   </tr>
37   <tr>
38     <td align="right">[% LxERP.t8('Storage Type for generated/imported PDF Documents') %]</td>
39     <td>[% L.select_tag('defaults.doc_storage_for_documents',
40          [ [ 'None', LxERP.t8('None') ],[ 'Filesystem', LxERP.t8('Files') ],[ 'Webdav', LxERP.t8('WebDAV') ],[ 'ExtDMS', LxERP.t8('ext.DMS') ],[ 'DB', LxERP.t8('Database') ]  ],
41                                default = SELF.defaults.doc_storage_for_documents,
42                                onchange="return checkavailable_filebackend(this);") %]</td>
43     <td>[% LxERP.t8('Use this storage backend for all generated PDF-Files') %]</td>
44   </tr>
45   <tr>
46     <td align="right">[% LxERP.t8('Storage Type for Attachments') %]</td>
47     <td>[% L.select_tag('defaults.doc_storage_for_attachments',
48          [ [ 'None', LxERP.t8('None') ], [ 'Filesystem', LxERP.t8('Files') ],[ 'Webdav', LxERP.t8('WebDAV') ],[ 'ExtDMS', LxERP.t8('ext.DMS') ],[ 'DB', LxERP.t8('Database') ]  ],
49                                default = SELF.defaults.doc_storage_for_attachments,
50                                onchange="return checkavailable_filebackend(this);") %]</td>
51     <td>[% LxERP.t8('Use this storage backend for all uploaded attachments') %]</td>
52   </tr>
53   <tr>
54     <td align="right">[% LxERP.t8('Storage Type for images') %]</td>
55     <td>[% L.select_tag('defaults.doc_storage_for_images',
56          [ [ 'None', LxERP.t8('None') ], [ 'Filesystem', LxERP.t8('Files') ],[ 'Webdav', LxERP.t8('WebDAV') ],[ 'ExtDMS', LxERP.t8('ext.DMS') ],[ 'DB', LxERP.t8('Database') ]  ],
57                                default = SELF.defaults.doc_storage_for_images,
58                                onchange="return checkavailable_filebackend(this);") %]</td>
59     <td>[% LxERP.t8('Use this storage backend for uploaded images') %]</td>
60   </tr>
61   <tr>
62    <td align="right">[% LxERP.t8('Delete printfiles') %]</td>
63    <td>[% L.yes_no_tag('defaults.doc_delete_printfiles', SELF.defaults.doc_delete_printfiles) %]</td>
64    <td>[% LxERP.t8('Allow to delete generated printfiles') %]</td>
65   </tr>
66   <tr>
67    <td align="right">[% LxERP.t8('max filesize') %]</td>
68    <td>[% L.input_tag('doc_max_filesize_MB','', size=10, onchange="verifyMBSize(this);") %]
69        [% L.hidden_tag('defaults.doc_max_filesize',SELF.defaults.doc_max_filesize) %] MB</td>
70    <td>[% LxERP.t8('The maximum of uploadable filesize in Megabyte') %]</td>
71   </tr>
72   <tr><td class="listheading" colspan="4">[% LxERP.t8("Storage Backends") %]</td></tr>
73   <tr>
74    <td align="right">[% LxERP.t8('Files') %]</td>
75    <td>[% L.yes_no_tag('defaults.doc_files', SELF.defaults.doc_files) %]</td>
76    <td>[% LxERP.t8('Use File Storage backend') %]</td>
77   </tr>
78   <tr>
79    <td align="right">[% LxERP.t8('Root path for file storage') %]</td>
80    <td>[% L.input_tag('defaults.doc_files_rootpath',SELF.defaults.doc_files_rootpath, style=style, onchange="verifyRootPath(this);") %]</td>
81    <td>[% LxERP.t8('This is the root directory for the File storage backend, must be writable for webserver') %]</td>
82   </tr>
83   <tr>
84    <td align="right">[% LxERP.t8('WebDAV') %]</td>
85    <td>[% L.yes_no_tag('defaults.doc_webdav', SELF.defaults.doc_webdav) %]</td>
86    <td>[% LxERP.t8('Use WebDAV Storage backend') %]</td>
87   </tr>
88   <tr>
89    <td align="right">[% LxERP.t8('Database') %]</td>
90    <td>[% L.yes_no_tag('defaults.doc_database', SELF.defaults.doc_database, disabled=1) %]</td>
91    <td>[% LxERP.t8('Use Database Storage backend (not implemented yet!)') %]</td>
92   </tr>
93
94   <tr><td class="listheading" colspan="4">[% LxERP.t8("Reports") %]</td></tr>
95
96   <tr>
97    <td align="right">[% LxERP.t8('Balance') %]</td>
98    <td>[% L.yes_no_tag('defaults.feature_balance', SELF.defaults.feature_balance) %]</td>
99    <td>[% LxERP.t8('Use Balance Sheet') %]</td>
100   </tr>
101   <tr>
102    <td align="right">[% LxERP.t8('income') %]</td>
103    <td>[% L.yes_no_tag('defaults.feature_eurechnung', SELF.defaults.feature_eurechnung) %]</td>
104    <td>[% LxERP.t8('Use Income') %]</td>
105   </tr>
106   <tr>
107    <td align="right">[% LxERP.t8('Erfolgsrechnung') %]</td>
108    <td>[% L.yes_no_tag('defaults.feature_erfolgsrechnung', SELF.defaults.feature_erfolgsrechnung) %]</td>
109    <td>[% LxERP.t8('Use Erfolgsrechnung') %]</td>
110   </tr>
111
112   <tr><td class="listheading" colspan="4">[% LxERP.t8("Customer Master Data") %]</td></tr>
113
114   <tr>
115    <td align="right">[% LxERP.t8('Representative') %]</td>
116    <td>[% L.yes_no_tag('defaults.vertreter', SELF.defaults.vertreter) %]</td>
117    <td>[% LxERP.t8('Representative for Customer') %]</td>
118   </tr>
119  <tr>
120    <td align="right">[% LxERP.t8('Normalize Customer / Vendor names') %]</td>
121    <td>   [% L.yes_no_tag('defaults.normalize_vc_names', SELF.defaults.normalize_vc_names) %]</td>
122    <td>[% LxERP.t8('Automatic deletion of leading, trailing and excessive (repetitive) spaces in customer or vendor names') %]</td>
123   </tr>
124
125   <tr>
126    <td align="right">[% LxERP.t8('Hourly Rate') %]</td>
127    <td>[% L.input_tag('defaults.customer_hourly_rate', LxERP.format_amount(SELF.defaults.customer_hourly_rate, 2), style=style) %]</td>
128    <td>[% LxERP.t8('Default hourly rate for new customers') %]</td>
129   </tr>
130
131   <tr><td class="listheading" colspan="4">[% LxERP.t8("Parts Master Data") %]</td></tr>
132
133   <tr>
134    <td align="right">[% LxERP.t8('Pictures for parts') %]</td>
135    <td>[% L.yes_no_tag('defaults.parts_show_image', SELF.defaults.parts_show_image) %]</td>
136    <td>[% LxERP.t8('Show the picture in the part form') %]</td>
137   </tr>
138   <tr>
139    <td align="right">[% LxERP.t8('Pictures for search parts') %]</td>
140    <td>[% L.yes_no_tag('defaults.parts_listing_image', SELF.defaults.parts_listing_image) %]</td>
141    <td>[% LxERP.t8('Show the pictures in the result for search parts') %]</td>
142   </tr>
143   <tr>
144    <td align="right">[% LxERP.t8('CSS style for pictures') %]</td>
145    <td>   [% L.input_tag('defaults.parts_image_css',SELF.defaults.parts_image_css, style=style) %]</td>
146    <td>[% LxERP.t8('Style the picture with the following CSS code') %]</td>
147   </tr>
148   <tr>
149     <td align="right">[% LxERP.t8('If item not found, allow creation of new item') %]</td>
150     <td>[% L.yes_no_tag('defaults.create_part_if_not_found', SELF.defaults.create_part_if_not_found) %]</td>
151     <td>[% LxERP.t8('If searching a part from a document and no part is found then offer to create a new part.') %]</td>
152   </tr>
153  <tr>
154    <td align="right">[% LxERP.t8('Normalize part description and part notes') %]</td>
155    <td>   [% L.yes_no_tag('defaults.normalize_part_descriptions', SELF.defaults.normalize_part_descriptions) %]</td>
156    <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>
157   </tr>
158 </tr>
159
160   <tr><td class="listheading" colspan="4">[% LxERP.t8("Purchasing & Sales") %]</td></tr>
161
162   <tr>
163    <td align="right">[% LxERP.t8('Require a transaction description in purchase and sales records') %]</td>
164    <td>[% L.yes_no_tag('defaults.require_transaction_description_ps', SELF.defaults.require_transaction_description_ps) %]</td>
165    <td>[% LxERP.t8('If enabled purchase and sales records cannot be saved if no transaction description has been entered.') %]</td>
166   </tr>
167
168   <tr>
169    <td align="right">[% LxERP.t8("Only list customer's projects in sales records") %]</td>
170    <td>[% L.yes_no_tag("defaults.customer_projects_only_in_sales", SELF.defaults.customer_projects_only_in_sales) %]</td>
171    <td>[% LxERP.t8("If enabled only those projects that are assigned to the currently selected customer are offered for selection in sales records.") %]</td>
172   </tr>
173
174   <tr>
175    <td align="right">[% LxERP.t8('Allow conversion from sales quotations to sales invoices') %]</td>
176    <td>[% L.yes_no_tag('defaults.allow_sales_invoice_from_sales_quotation', SELF.defaults.allow_sales_invoice_from_sales_quotation) %]</td>
177    <td>[% LxERP.t8('If disabled sales quotations cannot be converted into sales invoices directly.') %]</td>
178   </tr>
179
180   <tr>
181    <td align="right">[% LxERP.t8('Allow conversion from sales orders to sales invoices') %]</td>
182    <td>[% L.yes_no_tag('defaults.allow_sales_invoice_from_sales_order', SELF.defaults.allow_sales_invoice_from_sales_order) %]</td>
183    <td>[% LxERP.t8('If disabled sales orders cannot be converted into sales invoices directly.') %]</td>
184   </tr>
185
186   <tr>
187    <td align="right">[% LxERP.t8('Allow direct creation of new purchase delivery orders') %]</td>
188    <td>[% L.yes_no_tag('defaults.allow_new_purchase_delivery_order', SELF.defaults.allow_new_purchase_delivery_order) %]</td>
189    <td>[% LxERP.t8('If disabled purchase delivery orders can only be created by conversion from existing requests for quotations and purchase orders.') %]</td>
190   </tr>
191
192   <tr>
193    <td align="right">[% LxERP.t8('Allow direct creation of new purchase invoices') %]</td>
194    <td>[% L.yes_no_tag('defaults.allow_new_purchase_invoice', SELF.defaults.allow_new_purchase_invoice) %]</td>
195    <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>
196   </tr>
197
198   <tr>
199    <td align="right">[% LxERP.t8("Show »not delivered qty/value« column in sales and purchase orders") %]</td>
200    <td>[% L.yes_no_tag("defaults.sales_purchase_order_ship_missing_column", SELF.defaults.sales_purchase_order_ship_missing_column) %]</td>
201    <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>
202   </tr>
203
204   <tr>
205    <td align="right">[% LxERP.t8("Warn before saving orders with duplicate parts (new controller only)") %]</td>
206    <td>[% L.yes_no_tag("defaults.order_warn_duplicate_parts", SELF.defaults.order_warn_duplicate_parts) %]</td>
207    <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>
208   </tr>
209
210   <tr><td class="listheading" colspan="4">[% LxERP.t8("E-mail") %]</td></tr>
211
212   <tr>
213    <td align="right">[% LxERP.t8('Global Record BCC') %]</td>
214    <td>
215      [% L.input_tag('defaults.global_bcc', SELF.defaults.global_bcc, style=style) %]
216    </td>
217    <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>
218   </tr>
219
220   <tr>
221    <td align="right">[% LxERP.t8('Send a BCC to logged in user?') %]</td>
222    <td>
223      [% L.yes_no_tag('defaults.bcc_to_login', SELF.defaults.bcc_to_login) %]
224    </td>
225    <td>
226      [% LxERP.t8('Send a blind copy of all outgoing emails to current user\'s email address?') %]
227    </td>
228  </tr>
229
230   <tr>
231    <td align="right">[% LxERP.t8('Email journal') %]</td>
232    <td>
233      [% 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) %]
234    </td>
235    <td>[% 'Sent emails can be optionally stored in the database with or without their attachments.' | $T8 %]</td>
236   </tr>
237
238   <tr><td class="listheading" colspan="4">[% LxERP.t8("Requirement Specs") %]</td></tr>
239
240   <tr>
241    <td align="right">[% LxERP.t8('Default article for converting into quotations and orders') %]</td>
242    <td>
243     [% IF SELF.h_unit_name %]
244      [% 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) %]
245     [% ELSE %]
246      [% LxERP.t8("Error: this feature requires that articles with a time-based unit (e.g. 'h' or 'min') exist.") %]
247     [% END %]
248    </td>
249    <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>
250   </tr>
251   <tr><td class="listheading" colspan="4">[% LxERP.t8('Transport and service costs reminder') %]</td></tr>
252  <tr>
253   <td align="right">[% LxERP.t8('Default transport article number') %]</td>
254   <td>[% L.part_picker('defaults.transport_cost_reminder_article_number_id', SELF.defaults.transport_cost_reminder_article_number_id, style=style) %]</td>
255    <td>[% LxERP.t8('Before saving a sales order, this article will be checked and a warning is generated.') %]</td>
256  </tr>
257
258  <tr><td class="listheading" colspan="4">[% LxERP.t8("Disabled Price Sources") %]</td></tr>
259  <tr>
260    <td align="right">[% 'Price Sources to be disabled in this client' | $T8 %]</td>
261    <td colspan=2>
262      <div class="clearfix">
263       [% L.select_tag("defaults.disabled_price_sources[]", SELF.all_price_sources, id="defaults_price_sources", multiple=1, default=SELF.defaults.disabled_price_sources) %]
264       [% L.multiselect2side("defaults_price_sources", labelsx=LxERP.t8("All price sources"), labeldx=LxERP.t8("Price sources deactivated in this client")) %]
265      </div>
266    </td>
267  </tr>
268
269   <tr><td class="listheading" colspan="4">[% LxERP.t8("Projects") %]</td></tr>
270   <tr>
271    <td align="right">[% LxERP.t8('Always save orders with a projectnumber (create new projects)') %]</td>
272    <td>[% L.yes_no_tag('defaults.order_always_project', SELF.defaults.order_always_project) %]</td>
273   </tr>
274   <tr>
275    <td align="right">[% LxERP.t8('Project type') %]</td>
276    <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>
277   </tr>
278    <td align="right">[% LxERP.t8('Project Status') %]</td>
279    <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>
280   </tr>
281   <tr><td class="listheading" colspan="4">[% LxERP.t8("Select Mulit-Item Options") %]</td></tr>
282   <tr>
283    <td align="right">[% LxERP.t8('Show parts longdescription (notes) in select list') %]</td>
284    <td>[% L.yes_no_tag('defaults.show_longdescription_select_item', SELF.defaults.show_longdescription_select_item) %]</td>
285   </tr>
286
287   <tr><td class="listheading" colspan="4">[% LxERP.t8("Enabled Quick Searched") %]</td></tr>
288   <tr>
289     <td align="right">[% 'Quick Searches that will be shown in the header in this client' | $T8 %]</td>
290     <td colspan=2>
291       <div class="clearfix">
292        [% 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) %]
293        [% L.multiselect2side("defaults_quick_searches", labelsx=LxERP.t8("All modules"), labeldx=LxERP.t8("Enabled modules")) %]
294       </div>
295     </td>
296   </tr>
297   <tr><td class="listheading" colspan="4">[% LxERP.t8("SEPA") %]</td></tr>
298   <tr>
299    <td align="right">[% LxERP.t8('Add Customer/Vendor Number as a reference add-on for SEPA export.') %]</td>
300    <td>[% L.yes_no_tag('defaults.sepa_reference_add_vc_vc_id', SELF.defaults.sepa_reference_add_vc_vc_id) %]</td>
301   </tr>
302
303   <tr><td class="listheading" colspan="4">[% LxERP.t8("Experimental Features") %]</td></tr>
304   <tr>
305    <td align="right">[% LxERP.t8('Enable experimental features') %]</td>
306    <td>[% L.yes_no_tag('defaults.feature_experimental', SELF.defaults.feature_experimental) %]</td>
307    <td>[% LxERP.t8('Experimental features are:') %] [% LxERP.t8('new order controller') %]</td>
308   </tr>
309
310  </table>
311 </div>