Revision e09f2da3
Von Bernd Bleßmann vor fast 9 Jahren hinzugefügt
SL/DB/MetaSetup/Default.pm | ||
---|---|---|
71 | 71 |
normalize_part_descriptions => { type => 'boolean', default => 'true' }, |
72 | 72 |
normalize_vc_names => { type => 'boolean', default => 'true' }, |
73 | 73 |
order_always_project => { type => 'boolean', default => 'false' }, |
74 |
order_warn_duplicate_parts => { type => 'boolean', default => 'true' }, |
|
74 | 75 |
parts_image_css => { type => 'text', default => 'border:0;float:left;max-width:250px;margin-top:20px:margin-right:10px;margin-left:10px;' }, |
75 | 76 |
parts_listing_image => { type => 'boolean', default => 'true' }, |
76 | 77 |
parts_show_image => { type => 'boolean', default => 'true' }, |
77 | 78 |
payments_changeable => { type => 'integer', default => '0', not_null => 1 }, |
78 | 79 |
pdonumber => { type => 'text' }, |
79 | 80 |
ponumber => { type => 'text' }, |
80 |
precision => { type => 'numeric', precision => 15, scale => 5, default => '0.01', not_null => 1 },
|
|
81 |
precision => { type => 'numeric', default => '0.01', not_null => 1, precision => 15, scale => 5 },
|
|
81 | 82 |
profit_determination => { type => 'text' }, |
82 | 83 |
project_status_id => { type => 'integer' }, |
83 | 84 |
project_type_id => { type => 'integer' }, |
... | ... | |
89 | 90 |
revtrans => { type => 'boolean', default => 'false' }, |
90 | 91 |
rfqnumber => { type => 'text' }, |
91 | 92 |
rmanumber => { type => 'text' }, |
92 |
rndgain_accno_id => { type => 'integer'}, |
|
93 |
rndloss_accno_id => { type => 'integer'}, |
|
93 |
rndgain_accno_id => { type => 'integer' },
|
|
94 |
rndloss_accno_id => { type => 'integer' },
|
|
94 | 95 |
sales_delivery_order_show_delete => { type => 'boolean', default => 'true' }, |
95 | 96 |
sales_order_show_delete => { type => 'boolean', default => 'true' }, |
96 | 97 |
sales_purchase_order_ship_missing_column => { type => 'boolean', default => 'false' }, |
js/kivi.Order.js | ||
---|---|---|
14 | 14 |
return true; |
15 | 15 |
}; |
16 | 16 |
|
17 |
ns.save = function() { |
|
17 |
ns.check_save_duplicate_parts = function() { |
|
18 |
var id_arr = $('[name="order.orderitems[].parts_id"]').map(function() {return this.value;}).get(); |
|
19 |
|
|
20 |
var i, obj = {}, pos = []; |
|
21 |
|
|
22 |
for (i = 0; i < id_arr.length; i++) { |
|
23 |
var id = id_arr[i]; |
|
24 |
if (obj.hasOwnProperty(id)) { |
|
25 |
pos.push(i + 1); |
|
26 |
} |
|
27 |
obj[id] = 0; |
|
28 |
} |
|
29 |
|
|
30 |
if (pos.length > 0) { |
|
31 |
return confirm(kivi.t8("There are duplicate parts at positions") + "\n" |
|
32 |
+ pos.join(', ') + "\n" |
|
33 |
+ kivi.t8("Do you really want to save?")); |
|
34 |
} |
|
35 |
return true; |
|
36 |
}; |
|
37 |
|
|
38 |
ns.save = function(warn_on_duplicates) { |
|
18 | 39 |
if (!ns.check_cv()) return; |
40 |
if (warn_on_duplicates && !ns.check_save_duplicate_parts()) return; |
|
19 | 41 |
|
20 | 42 |
var data = $('#order_form').serializeArray(); |
21 | 43 |
data.push({ name: 'action', value: 'Order/save' }); |
... | ... | |
23 | 45 |
$.post("controller.pl", data, kivi.eval_json_result); |
24 | 46 |
}; |
25 | 47 |
|
26 |
ns.save_and_delivery_order = function() { |
|
48 |
ns.save_and_delivery_order = function(warn_on_duplicates) {
|
|
27 | 49 |
if (!ns.check_cv()) return; |
50 |
if (warn_on_duplicates && !ns.check_save_duplicate_parts()) return; |
|
28 | 51 |
|
29 | 52 |
var data = $('#order_form').serializeArray(); |
30 | 53 |
data.push({ name: 'action', value: 'Order/save_and_delivery_order' }); |
js/locale/de.js | ||
---|---|---|
36 | 36 |
"Do you really want do continue?":"Wollen Sie wirklich fortfahren?", |
37 | 37 |
"Do you really want to cancel?":"Wollen Sie wirklich abbrechen?", |
38 | 38 |
"Do you really want to revert to this version?":"Wollen Sie wirklich auf diese Version zurücksetzen?", |
39 |
"Do you really want to save?":"Wollen Sie wirklich speichern?", |
|
39 | 40 |
"Do you want to set the account number \"#1\" to \"#2\" and the name \"#3\" to \"#4\"?":"Soll die Kontonummer \"#1\" zu \"#2\" und den Name \"#3\" zu \"#4\" geändert werden?", |
40 | 41 |
"Download picture":"Bild herunterladen", |
41 | 42 |
"Edit":"Bearbeiten", |
... | ... | |
79 | 80 |
"The option field is empty.":"Das Optionsfeld ist leer.", |
80 | 81 |
"The recipient, subject or body is missing.":"Der Empfäger, der Betreff oder der Text ist leer.", |
81 | 82 |
"The selected database is still configured for client \"#1\". If you delete the database that client will stop working until you re-configure it. Do you still want to delete the database?":"Die auswählte Datenbank ist noch für Mandant \"#1\" konfiguriert. Wenn Sie die Datenbank löschen, wird der Mandanten nicht mehr funktionieren, bis er anders konfiguriert wurde. Wollen Sie die Datenbank trotzdem löschen?", |
83 |
"There are duplicate parts at positions":"Es gibt doppelte Artikel bei den Positionen", |
|
82 | 84 |
"There are still transfers not matching the qty of the delivery order. Stock operations can not be changed later. Do you really want to proceed?":"Einige der Lagerbewegungen sind nicht vollständig und Lagerbewegungen können nachträglich nicht mehr verändert werden. Wollen Sie wirklich fortfahren?", |
83 | 85 |
"There is no connected chart.":"Es fehlt ein verknüpftes Buchungskonto.", |
84 | 86 |
"There is one or more sections for which no part has been assigned yet; therefore creating the new record is not possible yet.":"Es gibt einen oder mehrere Abschnitte ohne Artikelzuweisung; daher kann der neue Beleg noch nicht erstellt werden.", |
locale/de/all | ||
---|---|---|
943 | 943 |
'Do you really want to delete this object?' => 'Wollen Sie dieses Objekt wirklich löschen?', |
944 | 944 |
'Do you really want to delete this warehouse?' => 'Wollen Sie dieses Lager wirklich löschen?', |
945 | 945 |
'Do you really want to revert to this version?' => 'Wollen Sie wirklich auf diese Version zurücksetzen?', |
946 |
'Do you really want to save?' => 'Wollen Sie wirklich speichern?', |
|
946 | 947 |
'Do you want to <b>limit</b> your search?' => 'Wollen Sie Ihre Suche <b>spezialisieren</b>?', |
947 | 948 |
'Do you want to carry this shipping address over to the new purchase order so that the vendor can deliver the goods directly to your customer?' => 'Wollen Sie diese Lieferadresse in den neuen Lieferantenauftrag übernehmen, damit der Händler die Waren direkt an Ihren Kunden liefern kann?', |
948 | 949 |
'Do you want to overwrite your current title?' => 'Wollen Sie den aktuellen Titel überschreiben?', |
... | ... | |
1388 | 1389 |
'If disabled sales orders cannot be converted into sales invoices directly.' => 'Falls deaktiviert, so können Verkaufsaufträge nicht direkt in Verkaufsrechnungen umgewandelt werden.', |
1389 | 1390 |
'If disabled sales quotations cannot be converted into sales invoices directly.' => 'Falls deaktiviert, so können Verkaufsangebote nicht direkt in Verkaufsrechnungen umgewandelt werden.', |
1390 | 1391 |
'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.' => 'Falls eingeschaltet, wird für jede Position in Auftragsbestätigungen und Lieferantenaufträgen eine Spalte mit noch nicht gelieferter Menge und Wert angezeigt.', |
1392 |
'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).' => 'Falls eingeschaltet, wird eine Warnung angezeigt, wenn der Auftrag mehrere gleiche Artikel enthält (nur neuer Controller).', |
|
1391 | 1393 |
'If enabled only those projects that are assigned to the currently selected customer are offered for selection in sales records.' => 'Wenn eingeschaltet, so werden in Verkaufsbelegen nur diejenigen Projekte zur Auswahl angeboten, die dem aktuell ausgewählten Kunden zugewiesen wurden.', |
1392 | 1394 |
'If enabled purchase and sales records cannot be saved if no transaction description has been entered.' => 'Wenn angeschaltet, so können Einkaufs- und Verkaufsbelege nicht gespeichert werden, solange keine Vorgangsbezeichnung eingegeben wurde.', |
1393 | 1395 |
'If missing then the start date will be used.' => 'Falls es fehlt, so wird die erste Rechnung für das Startdatum erzeugt.', |
... | ... | |
2989 | 2991 |
'There are currently no open invoices, or none matches your filter conditions.' => 'Es gibt momentan keine offenen Rechnungen, oder keine erfüllt die Filterkriterien.', |
2990 | 2992 |
'There are currently no open sales delivery orders.' => 'Es gibt zur Zeit keine offenen Verkaufslieferscheine.', |
2991 | 2993 |
'There are double partnumbers in your database.' => 'In ihrer Datenbank befinden sich mehrfach vergebene Artikelnummern.', |
2994 |
'There are duplicate parts at positions' => 'Es gibt doppelte Artikel bei den Positionen', |
|
2992 | 2995 |
'There are entries in tax where taxkey is NULL.' => 'In der Datenbank sind Steuern ohne Steuerschlüssel vorhanden (in der Tabelle tax Spalte taxkey).', |
2993 | 2996 |
'There are invalid taxnumbers in use.' => 'Es werden ungültige Steuerautomatik-Konten benutzt.', |
2994 | 2997 |
'There are invalid transactions in your database.' => 'Sie haben ungültige Buchungen in Ihrer Datenbank.', |
... | ... | |
3272 | 3275 |
'Warehouse management' => 'Lagerverwaltung/Bestandsveränderung', |
3273 | 3276 |
'Warehouse saved.' => 'Lager gespeichert.', |
3274 | 3277 |
'Warehouses' => 'Lager', |
3278 |
'Warn before saving orders with duplicate parts (new controller only)' => 'Beim Speichern warnen, wenn doppelte Artikel in einem Auftrag sind', |
|
3275 | 3279 |
'Warning' => 'Warnung', |
3276 | 3280 |
'WebDAV' => 'WebDAV', |
3277 | 3281 |
'WebDAV link' => 'WebDAV-Link', |
locale/en/all | ||
---|---|---|
744 | 744 |
'Do you really want to delete the selected links?' => '', |
745 | 745 |
'Do you really want to delete this object?' => '', |
746 | 746 |
'Do you really want to delete this warehouse?' => '', |
747 |
'Do you really want to save?' => '', |
|
747 | 748 |
'Do you want to <b>limit</b> your search?' => '', |
748 | 749 |
'Do you want to carry this shipping address over to the new purchase order so that the vendor can deliver the goods directly to your customer?' => '', |
749 | 750 |
'Do you want to set the account number "#1" to "#2" and the name "#3" to "#4"?' => '', |
... | ... | |
1096 | 1097 |
'IV' => '', |
1097 | 1098 |
'If amounts differ more than "Maximal amount difference" (see settings), this item is marked as invalid.' => '', |
1098 | 1099 |
'If checked the taxkey will not be exported in the DATEV Export, but only IF chart taxkeys differ from general ledger taxkeys' => '', |
1099 |
'If configured this bin will be preselected for all new parts. Also this bin will be used as the master default bin, if default transfer out with master bin is activated.' => '',
|
|
1100 |
'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).' => 'Falls eingeschaltet, wird eine Warnung angezeigt, wenn der Auftrag mehrere gleiche Artikel enthält (nur neuer Controller).', '',
|
|
1100 | 1101 |
'If the article type is set to \'mixed\' then a column called \'type\' must be present.' => '', |
1101 | 1102 |
'If the automatic creation of invoices for fees and interest is switched on for a dunning level then the following accounts will be used for the invoice.' => '', |
1102 | 1103 |
'If the database user listed above does not have the right to create a database then enter the name and password of the superuser below:' => '', |
... | ... | |
2296 | 2297 |
'There are Bins defined in your master data.' => '', |
2297 | 2298 |
'There are bookings to the account 3803 after 01.01.2007. If you didn\'t change this account manually to 19% the bookings are probably incorrect.' => '', |
2298 | 2299 |
'There are double partnumbers in your database.' => '', |
2300 |
'There are duplicate parts at positions' => '', |
|
2299 | 2301 |
'There are entries in tax where taxkey is NULL.' => '', |
2300 | 2302 |
'There are invalid taxnumbers in use.' => '', |
2301 | 2303 |
'There are invalid transactions in your database.' => '', |
... | ... | |
2512 | 2514 |
'Warehouse management' => '', |
2513 | 2515 |
'Warehouse saved.' => '', |
2514 | 2516 |
'Warehouses' => '', |
2517 |
'Warn before saving orders with duplicate parts (new controller only)' => '', |
|
2515 | 2518 |
'Warning' => '', |
2516 | 2519 |
'WebDAV' => '', |
2517 | 2520 |
'WebDAV link' => '', |
sql/Pg-upgrade2/defaults_order_warn_duplicate_parts.sql | ||
---|---|---|
1 |
-- @tag: defaults_order_warn_duplicate_parts |
|
2 |
-- @description: Mandantenkonfiguration: Warnung bei doppelten Artikeln in Aufträgen |
|
3 |
-- @depends: release_3_3_0 |
|
4 |
-- @encoding: utf-8 |
|
5 |
|
|
6 |
ALTER TABLE defaults ADD COLUMN order_warn_duplicate_parts BOOLEAN DEFAULT TRUE; |
templates/webpages/client_config/_features.html | ||
---|---|---|
101 | 101 |
<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> |
102 | 102 |
</tr> |
103 | 103 |
|
104 |
<tr> |
|
105 |
<td align="right">[% LxERP.t8("Warn before saving orders with duplicate parts (new controller only)") %]</td> |
|
106 |
<td>[% L.yes_no_tag("defaults.order_warn_duplicate_parts", SELF.defaults.order_warn_duplicate_parts) %]</td> |
|
107 |
<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> |
|
108 |
</tr> |
|
109 |
|
|
104 | 110 |
<tr><td class="listheading" colspan="4">[% LxERP.t8("E-mail") %]</td></tr> |
105 | 111 |
|
106 | 112 |
<tr> |
templates/webpages/order/form.html | ||
---|---|---|
43 | 43 |
|
44 | 44 |
[% L.hidden_tag('action', 'Order/dispatch') %] |
45 | 45 |
|
46 |
[% L.button_tag('kivi.Order.save()', LxERP.t8('Save')) %] |
|
46 |
[% L.button_tag('kivi.Order.save(' _ INSTANCE_CONF.get_order_warn_duplicate_parts _ ')', LxERP.t8('Save')) %]
|
|
47 | 47 |
[% L.button_tag('kivi.Order.show_print_options()', LxERP.t8('Print')) %] |
48 | 48 |
[% L.button_tag('kivi.Order.email()', LxERP.t8('E-mail')) %] |
49 |
[% L.button_tag('kivi.Order.save_and_delivery_order()', LxERP.t8('Save and Delivery Order')) %] |
|
49 |
[% L.button_tag('kivi.Order.save_and_delivery_order(' _ INSTANCE_CONF.get_order_warn_duplicate_parts _ ')', LxERP.t8('Save and Delivery Order')) %]
|
|
50 | 50 |
[%- IF SELF.order.id && ( (SELF.cv == 'customer' && INSTANCE_CONF.get_sales_order_show_delete) || (SELF.cv == 'vendor' && INSTANCE_CONF.get_purchase_order_show_delete) ) %] |
51 | 51 |
[% L.button_tag('kivi.Order.delete_order()', LxERP.t8('Delete'), confirm=LxERP.t8("Are you sure?")) %] |
52 | 52 |
[%- END %] |
Auch abrufbar als: Unified diff
Auftrags-Controller: Warnung beim Speichern mit doppelten Artikeln.
In der Mandantenkonfiguration (Features) abschaltbar.