Factur-X/ZUGFeRD: neues Feld »Unsere Leitweg-ID beim Kunden« in Kundenstammdaten
authorMoritz Bunkus <m.bunkus@linet.de>
Thu, 26 Nov 2020 10:52:01 +0000 (11:52 +0100)
committerMoritz Bunkus <m.bunkus@linet.de>
Thu, 26 Nov 2020 14:44:37 +0000 (15:44 +0100)
Wird für XRechnungs-Profil von ZUGFeRD benötigt.

SL/DB/Helper/FlattenToForm.pm
SL/DB/MetaSetup/Customer.pm
locale/de/all
sql/Pg-upgrade2/customer_vendor_routing_id.sql [new file with mode: 0644]
templates/webpages/customer_vendor/tabs/billing.html

index 7c001af..85591c0 100644 (file)
@@ -39,7 +39,7 @@ sub flatten_to_form {
                                department_1 department_2 discount email fax gln greeting homepage iban language name
                                natural_person phone street taxnumber ustid zipcode),
                             "${vc}number",
-                            ($vc eq 'customer')? 'c_vendor_id': 'v_customer_id');
+                            ($vc eq 'customer')? qw(c_vendor_id c_vendor_routing_id): 'v_customer_id');
   my @vc_prefixed_fields = qw(email fax notes number phone);
 
   _copy($self,                          $form, '',              '', 1, qw(amount netamount marge_total marge_percent container_remaining_weight container_remaining_volume paid exchangerate));
index d0e1b14..1daa719 100644 (file)
@@ -16,6 +16,7 @@ __PACKAGE__->meta->columns(
   bic                       => { type => 'text' },
   business_id               => { type => 'integer' },
   c_vendor_id               => { type => 'text' },
+  c_vendor_routing_id       => { type => 'text' },
   cc                        => { type => 'text' },
   city                      => { type => 'text' },
   commercial_court          => { type => 'text' },
index b0954aa..789c953 100755 (executable)
@@ -2253,6 +2253,7 @@ $self->{texts} = {
   'Others'                      => 'Andere',
   'Otherwise the variable is only available for printing.' => 'Andernfalls steht die Variable nur beim Ausdruck zur Verfügung.',
   'Otherwise you can simply check create warehouse and bins and define a name for the warehouse (Bins will be created automatically) and then continue' => 'Andernfalls einfach <b>"Automatisches Zuweisen der Lagerplätze"</b>  anhaken und einen Namen für das Lager vergeben, bzw. per Auswahl auswählen (Lagerplätze werden dann automatisch hinzugefügt) danach auf weiter',
+  'Our routing id at customer'  => 'Unsere Leitweg-ID beim Kunden',
   'Out of balance transaction!' => 'Buchung ist nicht ausgeglichen!',
   'Out of balance!'             => 'Summen stimmen nicht überein!',
   'Output Number Format'        => 'Zahlenformat (Ausgabe)',
diff --git a/sql/Pg-upgrade2/customer_vendor_routing_id.sql b/sql/Pg-upgrade2/customer_vendor_routing_id.sql
new file mode 100644 (file)
index 0000000..9c868c4
--- /dev/null
@@ -0,0 +1,5 @@
+-- @tag: customer_vendor_routing_id
+-- @description: Kundenstammdaten: Feld »Unsere Leitweg-ID beim Kunden«
+-- @depends: release_3_5_6
+ALTER TABLE customer
+ADD COLUMN c_vendor_routing_id TEXT;
index 2169771..861298a 100644 (file)
     </tr>
 
     <tr>
+      [% IF ( SELF.all_currencies.size ) %]
+        <th align="right">[% 'Currency' | $T8 %]</th>
+        <td>
+          [% L.select_tag('cv.currency_id', SELF.all_currencies, title_key = 'name', value_key = 'id', default = SELF.cv.currency_id) %]
+        </td>
+      [% END %]
+
       <th align="right">[% 'Tax Number / SSN' | $T8 %]</th>
 
       <td>
       <td>
         [% L.input_tag('cv.ustid', SELF.cv.ustid, size = 20 ) %]
       </td>
+    </tr>
 
-
-      [%- IF ( SELF.is_vendor() ) %]
-        <th align="right">[% 'Customer Number' | $T8 %]</th>
+    <tr>
+      [% IF ( SELF.is_customer() ) %]
+        <th align="right">[% 'Commercial court' | $T8 %]</th>
         <td>
-          [% L.input_tag('cv.v_customer_id', SELF.cv.v_customer_id, size = 10) %]
+          [% L.input_tag('cv.commercial_court', SELF.cv.commercial_court, size = 20) %]
         </td>
-      [%- ELSE %]
+
         <th align="right">[% 'our vendor number at customer' | $T8 %]</th>
         <td>
-          [% L.input_tag('cv.c_vendor_id', SELF.cv.c_vendor_id, size = 10) %]
+          [% L.input_tag('cv.c_vendor_id', SELF.cv.c_vendor_id, size = 20) %]
         </td>
-      [%- END %]
-    </tr>
 
-    <tr>
-      [% IF ( SELF.is_customer() ) %]
-        <th align="right">[% 'Commercial court' | $T8 %]</th>
+        <th align="right">[% 'Our routing id at customer' | $T8 %]</th>
         <td>
-          [% L.input_tag('cv.commercial_court', SELF.cv.commercial_court, size = 20) %]
+          [% L.input_tag('cv.c_vendor_routing_id', SELF.cv.c_vendor_routing_id, size = 20) %]
         </td>
-      [% END %]
-      [% IF ( SELF.all_currencies.size ) %]
-        <th align="right">[% 'Currency' | $T8 %]</th>
+
+      [%- ELSE %]
+        <th align="right">[% 'Customer Number' | $T8 %]</th>
         <td>
-          [% L.select_tag('cv.currency_id', SELF.all_currencies, title_key = 'name', value_key = 'id', default = SELF.cv.currency_id) %]
+          [% L.input_tag('cv.v_customer_id', SELF.cv.v_customer_id, size = 20) %]
         </td>
-      [% END %]
+      [%- END %]
     </tr>
     <tr>
       [% IF ( !INSTANCE_CONF.get_vertreter ) %]