Project

General

Profile

Unterstützung #239

Liefertermin als Pflichtfeld für Aufträge setzen

Added by Jan Büren over 4 years ago. Updated almost 4 years ago.

Status:
Neu
Priority:
Normal
Assignee:
Target version:
-
Start date:
05/05/2017
Due date:
% Done:

0%

Estimated time:

Description

81d12df0157a62f4c1237f1220c1caf8f5651e84

76473a50dad827252d1ab179f59121d06a27537c

Zwei Commits aus einem Kundenprojekt, die den Liefertermin zwingend als Pflichtfeld prüfen.

i)
Liefertermin ist prinzipiell leer
ii)
Falls der Bearbeiter keinen Wert einträgt kommt eine Fehlermeldung und der Beleg wird nicht gespeichert.

Hinweis:
- Die Logik hierfür ist noch ohne ActionBar
- bei beiden Kunden kann die Einstellung mandantenweit aktiviert werden, ggf. kann eine entsprechende Weiche in den Standard eingebaut werden

<----schnipp

From 81d12df0157a62f4c1237f1220c1caf8f5651e84 Mon Sep 17 00:00:00 2001
From: root <root@erp001.gruen.buero.atims.de>
Date: Wed, 24 Aug 2016 10:03:49 +0200
Subject: [PATCH] =?UTF-8?q?atims:=20fehlenden=20Liefertermin=20in=20Auftr?=
 =?UTF-8?q?=C3=A4gen=20anmahnen?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 js/kivi.SalesPurchase.js               | 13 +++++++++++++
 js/locale/de.js                        |  1 +
 locale/de/all                          |  4 ++--
 templates/webpages/oe/form_footer.html | 10 ++++++++--
 4 files changed, 24 insertions(+), 4 deletions(-)

diff --git a/js/kivi.SalesPurchase.js b/js/kivi.SalesPurchase.js
index 3e8dc63..d7d2500 100644
--- a/js/kivi.SalesPurchase.js
+++ b/js/kivi.SalesPurchase.js
@@ -87,6 +87,14 @@ namespace('kivi.SalesPurchase', function(ns) {
     alert(kivi.t8('A transaction description is required.'));
     return false;
   };
+  this.check_reqdate = function() {
+    if ($('#reqdate').val() != '')
+      return true;
+
+    alert(kivi.t8('A reqdate is required.'));
+    return false;
+  };
+

   this.on_submit_checks = function() {
     var $button = $(this);
@@ -99,6 +107,11 @@ namespace('kivi.SalesPurchase', function(ns) {
     if (($button.data('require-transaction-description') == 1) && !kivi.SalesPurchase.check_transaction_description())
       return false;

+   if (($button.data('require-reqdate') == 1) && !kivi.SalesPurchase.check_reqdate())
+      return false;
+
+
+
     return true;
   };

diff --git a/js/locale/de.js b/js/locale/de.js
index 316faeb..3cae15f 100644
--- a/js/locale/de.js
+++ b/js/locale/de.js
@@ -1,4 +1,5 @@
 namespace("kivi").setupLocale({
+"A reqdate is required.":"Das Lieferdatum fehlt.",
 "A transaction description is required.":"Die Vorgangsbezeichnung muss eingegeben werden.",
 "Add function block":"Funktionsblock hinzufügen",
 "Add linked record":"Verknüpften Beleg hinzufügen",
diff --git a/locale/de/all b/locale/de/all
index 597bce2..4365efa 100755
--- a/locale/de/all
+++ b/locale/de/all
@@ -54,6 +54,7 @@ $self->{texts} = {
   'A directory with the name for the new print templates exists already.' => 'Ein Verzeichnis mit dem selben Namen wie die neuen Druckvorlagen existiert bereits.',
   'A lot of the usability of kivitendo has been enhanced with javascript. Although it is currently possible to use every aspect of kivitendo without javascript, we strongly recommend it. In a future version this may change and javascript may be necessary to access advanced features.' => 'Die Bedienung von kivitendo wurde an vielen Stellen mit Javascript verbessert. Obwohl es derzeit möglich ist, jeden Aspekt von kivitendo auch ohne Javascript zu benutzen, empfehlen wir es. In einer zukünftigen Version wird Javascript eventuell notwendig sein um weitergehende Features zu benutzen.',
   'A lower-case character is required.' => 'Ein Kleinbuchstabe ist vorgeschrieben.',
+  'A reqdate is required.'      => 'Das Lieferdatum fehlt.',
   'A special character is required (valid characters: #1).' => 'Ein Sonderzeichen ist vorgeschrieben (gültige Zeichen: #1).',
   'A transaction description is required.' => 'Die Vorgangsbezeichnung muss eingegeben werden.',
   'A unit with this name does already exist.' => 'Eine Einheit mit diesem Namen existiert bereits.',
@@ -1791,7 +1792,6 @@ $self->{texts} = {
   'No file has been uploaded yet.' => 'Es wurde noch keine Datei hochgeladen.',
   'No function blocks have been created yet.' => 'Es wurden noch keine Funktionsblöcke angelegt.',
   'No groups have been created yet.' => 'Es wurden noch keine Gruppen angelegt.',
-  'No header found'             => 'Keine Kopfzeile gefunden',
   'No internal phone extensions have been configured yet.' => 'Es wurden noch keine internen Durchwahlen konfiguriert.',
   'No invoices have been selected.' => 'Es wurden keine Rechnungen ausgewählt.',
   'No or an unknown authenticantion module specified in "config/kivitendo.conf".' => 'Es wurde kein oder ein unbekanntes Authentifizierungsmodul in "config/kivitendo.conf" angegeben.',
@@ -3242,8 +3242,8 @@ $self->{texts} = {
   'Use As New'                  => 'Als neu verwenden',
   'Use Balance Sheet'           => 'Bilanz verwenden',
   'Use Datevautomatik'          => 'Datev-Automatik verwenden',
-  'Use Income'                  => 'GUV und BWA verwenden',
   'Use Erfolgsrechnung'         => 'Erfolgsrechnung verwenden',
+  'Use Income'                  => 'GUV und BWA verwenden',
   'Use UStVA'                   => 'UStVA verwenden',
   'Use WebDAV Repository'       => 'WebDAV-Ablage verwenden',
   'Use existing templates'      => 'Vorhandene Druckvorlagen verwenden',
diff --git a/templates/webpages/oe/form_footer.html b/templates/webpages/oe/form_footer.html
index 6c6072e..3259a0a 100644
--- a/templates/webpages/oe/form_footer.html
+++ b/templates/webpages/oe/form_footer.html
@@ -148,8 +148,14 @@
 <input class="submit" type="submit" name="action_e_mail" value="[% 'E-mail' | $T8 %]" data-require-transaction-description="[% INSTANCE_CONF.get_require_transaction_description_ps %]">

 [% IF not tpca_reminder %]
-  <input class="submit" type="submit" name="action_save" value="[% 'Save' | $T8 %]"[% IF warn_save_active_periodic_invoice %] data-warn-save-active-periodic-invoice="1"[% END %] data-require-transaction-description="[% INSTANCE_CONF.get_require_transaction_description_ps %]">
-  <input class="submit" type="submit" name="action_save_and_close" value="[% 'Save and Close' | $T8 %]"[% IF warn_save_active_periodic_invoice %] data-warn-save-active-periodic-invoice="1"[% END %] data-require-transaction-description="[% INSTANCE_CONF.get_require_transaction_description_ps %]">
+
+
+
+  <input class="submit" type="submit" name="action_save" value="[% 'Save' | $T8 %]"[% IF warn_save_active_periodic_invoice %] data-warn-save-active-periodic-invoice="1"[% END %] data-require-transaction-description="[% INSTANCE_CONF.get_require_transaction_description_ps %]" data-require-reqdate="1">
+  <input class="submit" type="submit" name="action_save_and_close" value="[% 'Save and Close' | $T8 %]"[% IF warn_save_active_periodic_invoice %] data-warn-save-active-periodic-invoice="1"[% END %] data-require-transaction-description="[% INSTANCE_CONF.get_require_transaction_description_ps %]" data-require-reqdate="1">
+
+
+
 [% ELSE %]
   [% IF warn_save_active_periodic_invoice  %] [% warn_save_active_periodic_invoice=1 %] [% END %]
     [% L.submit_tag('action_save', LxERP.t8('Save'), confirm=LxERP.t8('Missing transport cost: #1  Are you sure?', tpca_reminder), 'data-require-transaction-description'=INSTANCE_CONF.get_require_transaction_description_ps, 'data-warn-save-active-periodic-invoice'=warn_save_active_periodic_invoice) %]
-- 
2.7.4
schnapp ---->

<-- schnipp

From 76473a50dad827252d1ab179f59121d06a27537c Mon Sep 17 00:00:00 2001
From: root <root@locale>
Date: Sat, 8 Oct 2016 10:54:27 +0200
Subject: [PATCH] =?UTF-8?q?=20reqdate=5F1=20UND=20reqdate=20f=C3=BCr?=
 =?UTF-8?q?=20Erinnerung=20Liefertermin=20in=20Auftrag?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 bin/mozilla/io.pl        | 2 +-
 js/kivi.SalesPurchase.js | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/bin/mozilla/io.pl b/bin/mozilla/io.pl
index 01ae329..589a42f 100644
--- a/bin/mozilla/io.pl
+++ b/bin/mozilla/io.pl
@@ -381,7 +381,7 @@ sub display_row {
       '-labels' => \%projectnumber_labels,
       '-default' => $form->{"project_id_$i"}
     ));
-    $column_data{reqdate}   = qq|<input name="reqdate_$i" size="11" onBlur="check_right_date_format(this)" value="$form->{"reqdate_$i"}">|;
+    $column_data{reqdate}   = qq|<input name="reqdate_$i" id="reqdate_$i" size="11" onBlur="check_right_date_format(this)" value="$form->{"reqdate_$i"}">|;
     $column_data{subtotal}  = sprintf qq|<input type="checkbox" name="subtotal_$i" value="1" %s>|, $form->{"subtotal_$i"} ? 'checked' : '';

 # begin marge calculations
diff --git a/js/kivi.SalesPurchase.js b/js/kivi.SalesPurchase.js
index d7d2500..52b2b62 100644
--- a/js/kivi.SalesPurchase.js
+++ b/js/kivi.SalesPurchase.js
@@ -88,7 +88,7 @@ namespace('kivi.SalesPurchase', function(ns) {
     return false;
   };
   this.check_reqdate = function() {
-    if ($('#reqdate').val() != '')
+    if ($('#reqdate').val() != '' || $('#reqdate_1').val() != '')
       return true;

     alert(kivi.t8('A reqdate is required.'));
-- 
2.7.4


schnapp ---->

History

#1

Updated by Jan Büren about 4 years ago

  • Assignee set to Jan Büren
  • Target version set to 3.5.1
#2

Updated by Sven Schöling about 4 years ago

+ if ($('#reqdate').val() != '' || $('#reqdate_1').val() != '')

Nope.

#3

Updated by Moritz Bunkus about 4 years ago

Sven hat's sehr kurz ausgedrückt, aber ja, der Code da ist Quark. Dass die erste Zeile und nur diese Zeile besonders gehandhabt wird, ergibt im Allgemeinen überhaupt keinen Sinn und hat daher im offiziellen Teil nichts zu suchen.

Aber damit nicht genug: das ganze Feature muss optional sein, weil der Liefertermin für weiß Gott nicht alle Firmen so eine hervorgehobene Stellung hat! Als konfigurierbar.

Weiterhin… was sollen diese ganzen Leerzeilen, die in den Templates hinzugefügt wurden? Die machen das in Summe nicht unbedingt besser lesbar.

#4

Updated by Jan Büren about 4 years ago

Hi,
ja, danke fürs Feedback. Das war hier nur eine Diskussionsgrundlage, um Urs zu zeigen, dass man das machen kann.
Im Standard würde ich das so nicht wagen, einzuckecken ;-)

i) Optional sowieso, in diesem Fall aber mandantenweit, da nicht jeder Benutzer im Unternehmen, dass Verfahren zum Liefertermin handhaben kann wie er das möchte (mandantenweit != benutzerdefiniert).

ii) Die Leerzeilen sind eh raus.

iii)
Ja, die check_reqdate muss über alle Zeilen laufen oder ich lass die Positionsprüfung raus und nehme nur den globalen Liefertermin.

Muss aber auch nicht rein, wenn sonst niemand (ausser revamp), diese Anforderung hat, die Codebeispiele waren eher für einen Entwickler bestimmt, der das nochmal nachbessert oder nur im Kundenprojekt verarbeitet.

#5

Updated by Moritz Bunkus about 4 years ago

Ich meinte in der Tat mandantenweit. Das würde mich schon reichen :)

#6

Updated by Jan Büren almost 4 years ago

  • Target version deleted (3.5.1)

Also available in: Atom PDF