Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision fc4e6199

Von Jan Büren vor mehr als 7 Jahren hinzugefügt

  • ID fc4e61993d9234665db7391ed5aec7aa1b6d6ea9
  • Vorgänger 96559d73
  • Nachfolger d5883c46

optionales Feature für SEPA Überweisungen

Nach der Rechnungsnummer im Verwendungszweck zusätzlich Kunden- oder Lieferantennummer angeben.
Optional konfigurierbar in der Mandatenkonfiguration und übersetzbar für alle verfügbaren Sprachen.

Unterschiede anzeigen:

SL/DB/MetaSetup/Default.pm
110 110
  sales_purchase_order_ship_missing_column  => { type => 'boolean', default => 'false' },
111 111
  sdonumber                                 => { type => 'text' },
112 112
  sepa_creditor_id                          => { type => 'text' },
113
  sepa_reference_add_vc_vc_id               => { type => 'boolean', default => 'false' },
113 114
  servicenumber                             => { type => 'text' },
114 115
  show_bestbefore                           => { type => 'boolean', default => 'false' },
115 116
  show_longdescription_select_item          => { type => 'boolean', default => 'false' },
SL/SEPA.pm
24 24
  my $dbh      = $params{dbh} || $form->get_standard_dbh($myconfig);
25 25
  my $arap     = $params{vc} eq 'customer' ? 'ar'       : 'ap';
26 26
  my $vc       = $params{vc} eq 'customer' ? 'customer' : 'vendor';
27
  my $vc_vc_id = $params{vc} eq 'customer' ? 'c_vendor_id' : 'v_customer_id';
27 28

  
28 29
  my $mandate  = $params{vc} eq 'customer' ? " AND COALESCE(vc.mandator_id, '') <> '' AND vc.mandate_date_of_signature IS NOT NULL " : '';
29 30

  
......
43 44
         (${arap}.amount - (${arap}.amount * pt.percent_skonto)) as amount_less_skonto,
44 45
         (${arap}.amount * pt.percent_skonto) as skonto_amount,
45 46
         vc.name AS vcname, vc.language_id, ${arap}.duedate as duedate, ${arap}.direct_debit,
47
         vc.${vc_vc_id} as vc_vc_id,
46 48

  
47 49
         COALESCE(vc.iban, '') <> '' AND COALESCE(vc.bic, '') <> '' ${mandate} AS vc_bank_info_ok,
48 50

  
bin/mozilla/generictranslations.pl
84 84
  my $translation_list = GenericTranslations->list(translation_type => 'sepa_remittance_info_pfx');
85 85
  my %translations     = map { ( ($_->{language_id} || 'default') => $_->{translation} ) } @{ $translation_list };
86 86

  
87
  my $translation_list_vc = GenericTranslations->list(translation_type => 'sepa_remittance_vc_no_pfx');
88
  my %translations_vc     =  map { ( ($_->{language_id} || 'default') => $_->{translation} ) } @{ $translation_list_vc };
89

  
87 90
  unshift @{ $form->{LANGUAGES} }, { 'id' => 'default', };
88 91

  
89 92
  foreach my $language (@{ $form->{LANGUAGES} }) {
90
    $language->{translation} = $translations{$language->{id}};
93
    $language->{translation}    = $translations{$language->{id}};
94
    $language->{translation_vc} = $translations_vc{$language->{id}};
91 95
  }
92 96

  
93 97
  $form->{title} = $locale->text('Edit SEPA strings');
......
114 118
                              'translation_id'   => undef,
115 119
                              'language_id'      => $language->{id},
116 120
                              'translation'      => $form->{"translation__" . ($language->{id} || 'default')},);
121
    GenericTranslations->save('translation_type' => 'sepa_remittance_vc_no_pfx',
122
                              'translation_id'   => undef,
123
                              'language_id'      => $language->{id},
124
                              'translation'      => $form->{"translation__" . ($language->{id} || 'default') . "__vc" },);
117 125
  }
118 126

  
119 127
  $form->{message} = $locale->text('The SEPA strings have been saved.');
bin/mozilla/sepa.pl
24 24
  my $form          = $main::form;
25 25
  my $locale        = $main::locale;
26 26
  my $vc            = $form->{vc} eq 'customer' ? 'customer' : 'vendor';
27
  my $vc_no         = $form->{vc} eq 'customer' ? $::locale->text('VN') : $::locale->text('CN');
27 28

  
28 29
  $form->{title}    = $vc eq 'customer' ? $::locale->text('Prepare bank collection via SEPA XML') : $locale->text('Prepare bank transfer via SEPA XML');
29 30

  
......
56 57
    my $prefix                    = $translations{ $invoice->{language_id} } || $translations{default} || $::locale->text('Invoice');
57 58
    $prefix                      .= ' ' unless $prefix =~ m/ $/;
58 59
    $invoice->{reference_prefix}  = $prefix;
60

  
61
    # add c_vendor_id or v_vendor_id as a prefix if a entry exists
62
    next unless $invoice->{vc_vc_id};
63

  
64
    my $prefix_vc_number             = $translations{ $invoice->{language_id} } || $translations{default} || $vc_no;
65
    $prefix_vc_number               .= ' ' unless $prefix_vc_number =~ m/ $/;
66
    $invoice->{reference_prefix_vc}  = ' '  . $prefix_vc_number unless $prefix_vc_number =~ m/^ /;
59 67
  }
60 68

  
61 69
  $form->header();
doc/changelog
6 6

  
7 7
kleinere neue Features und Detailverbesserungen:
8 8

  
9
  - SEPA Überweisungen zusätzlich Kunden- oder Lieferantennummer im Verwendungszweck vorbelegen
10

  
9 11
  - Verfeinerung der Rechte für Finanzbuchhaltung: Es können nun für Dialogbuchungen,
10 12
    Debitoren- und Kreditorenbuchungen extra Rechte vergeben werden
11 13

  
......
13 15
    Gibt eine Statistik über Lagerbewegungen, pro Monat/Quartal/Jahr.
14 16

  
15 17
  - Für UStVA Voranmeldung über Elster gibt es die Anbindung über Geierlein (Installation/Config siehe Commit)
16
  
18

  
17 19
  - CSV-Import von Artikel hat nun für existierende Artikel folgende Optionen:
18 20
     1. Eigenschaften von existierenden Einträgen aktualisieren
19 21
     2. Eigenschaften von existierenden Artikeln aktualisieren / Nicht vorhandene überspringen
......
25 27
    sowie Übersetzungen z.B. als 'description_EN' oder 'description_IT'.
26 28
    Auch cvars können als 'cvars_<name>' importiert werden.
27 29
    Ebenfalls sind zusätzliche Bemerkungen an den einzelnen Importzeilen eingebaut.
28
 
30

  
29 31
  - In der Lager-Mandantenkonfig gibt es das Feature "Zum Fertigen Standardlager des Bestandteils verwenden".
30 32
    Statt das Ziellager des Erzeugnisses zu Verwenden, wird nun zur Prüfung der Fertigung das
31 33
    Standardlager der einzelnen Bestandteile verwendet.
locale/de/all
150 150
  'Add Client'                  => 'Neuer Mandant',
151 151
  'Add Credit Note'             => 'Gutschrift erfassen',
152 152
  'Add Customer'                => 'Kunde erfassen',
153
  'Add Customer/Vendor Number as a reference add-on for SEPA export.' => 'Kunden- Lieferantennummer im Verwendungszweck bei SEPA-Überweisungen anhängen',
153 154
  'Add Delivery Note'           => 'Lieferschein erfassen',
154 155
  'Add Delivery Order'          => 'Lieferschein erfassen',
155 156
  'Add Dunning'                 => 'Mahnung erzeugen',
......
460 461
  'CB Transaction'              => 'SB-Buchung',
461 462
  'CB Transactions'             => 'SB-Buchungen',
462 463
  'CB/OB Transactions'          => 'SB/EB buchen',
464
  'CN'                          => 'Kd-Nr.',
463 465
  'CR'                          => 'H',
464 466
  'CSS style for pictures'      => 'CSS Style für Bilder',
465 467
  'CSV export -- options'       => 'CSV-Export -- Optionen',
......
2300 2302
  'Remaining'                   => 'Rest',
2301 2303
  'Remaining Amount'            => 'abzurechnender Betrag',
2302 2304
  'Remaining Net Amount'        => 'abzurechnender Nettobetrag',
2305
  'Remittance information optional Vendor/Customer No postfix' => 'optionale Verwendungszweckvorbelegung Kd./Lief.-Nummer',
2303 2306
  'Remittance information prefix' => 'Verwendungszweckvorbelegung (Präfix)',
2304 2307
  'Remote Bank Code'            => 'Fremde Bankleitzahl',
2305 2308
  'Remote Name/Customer/Description' => 'Kunden/Lieferantenname und Beschreibung',
......
2392 2395
  'SAVED'                       => 'Gespeichert',
2393 2396
  'SAVED FOR DUNNING'           => 'Gespeichert',
2394 2397
  'SCREENED'                    => 'Angezeigt',
2398
  'SEPA'                        => 'SEPA',
2395 2399
  'SEPA XML download'           => 'SEPA-XML-Download',
2396 2400
  'SEPA creditor ID'            => 'SEPA-Kreditoren-Identifikation',
2397 2401
  'SEPA exports'                => 'SEPA-Exporte',
......
3343 3347
  'Users, Clients and User Groups' => 'Benutzer, Mandanten und Benutzergruppen',
3344 3348
  'Usually the sales quotation is valid until the next working day. If a value is set here then the quotation will be valid for at least that many days. The resulting date will be adjusted to the next working day if it ends up on a weekend.' => 'Standardmäßig ist ein Verkaufsangebot bis zum nächsten Werktag gültig. Ist hier ein Wert angegeben, so ist ein Angebot mindestens so viele Tage gültig. Sollte das dabei herauskommende Datum auf ein Wochenende fallen, so wird statt dessen der nachfolgende Arbeitstag genommen.',
3345 3349
  'VAT ID'                      => 'UStdID-Nr',
3350
  'VN'                          => 'Kred.-Nr.',
3346 3351
  'Valid'                       => 'Gültig',
3347 3352
  'Valid from'                  => 'Gültig ab',
3348 3353
  'Valid until'                 => 'gültig bis',
sql/Pg-upgrade2/sepa_reference_add_vc_vc_id.sql
1
-- @tag: sepa_reference_add_vc_vc_id
2
-- @description: Einstellung, ob bei SEPA Überweisungen zusätzlich die Lieferanten-/Kundennummer im Verwendungszweck angezeigt wird
3
-- @depends: release_3_4_1
4

  
5
ALTER TABLE defaults ADD COLUMN sepa_reference_add_vc_vc_id boolean DEFAULT FALSE;
templates/webpages/client_config/_features.html
218 218
      </div>
219 219
    </td>
220 220
  </tr>
221

  
221
  <tr><td class="listheading" colspan="4">[% LxERP.t8("SEPA") %]</td></tr>
222
  <tr>
223
   <td align="right">[% LxERP.t8('Add Customer/Vendor Number as a reference add-on for SEPA export.') %]</td>
224
   <td>[% L.yes_no_tag('defaults.sepa_reference_add_vc_vc_id', SELF.defaults.sepa_reference_add_vc_vc_id) %]</td>
225
  </tr>
222 226
 </table>
223 227
</div>
templates/webpages/generictranslations/edit_sepa_strings.html
29 29
    <td><input name="translation__[% language.id %]" size="40" value="[% HTML.escape(language.translation) %]"></td>
30 30
   </tr>
31 31
   [%- END %]
32
   <tr>
33
    <th class="listheading">&nbsp;</th>
34
    <th class="listheading">[% 'Remittance information optional Vendor/Customer No postfix' | $T8 %]</th>
35
   </tr>
36

  
37
   [%- FOREACH language = LANGUAGES %]
38
   <tr>
39
    <td>
40
     [%- IF language.id == 'default' %]
41
     [% 'Default (no language selected)' | $T8 %]
42
     [%- ELSE %]
43
     [%- HTML.escape(language.description) %]
44
     [%- END %]
45
    </td>
46
    <td><input name="translation__[% language.id %]__vc" size="40" value="[% HTML.escape(language.translation_vc) %]"></td>
47
   </tr>
48
   [%- END %]
32 49

  
33 50
  </table>
34 51

  
templates/webpages/sepa/bank_transfer_add.html
86 86
      <td align="right">[% invoice.transdate %]</td>
87 87
      <td align="right">[% invoice.duedate %]</td>
88 88
      <td>
89
    [% IF INSTANCE_CONF.get_sepa_reference_add_vc_vc_id %]
90
       [%- SET reference = invoice.reference_prefix _ invoice.invnumber _ invoice.reference_prefix_vc _ invoice.vc_vc_id %]
91
    [% ELSE %]
89 92
       [%- SET reference = invoice.reference_prefix _ invoice.invnumber %]
90
       <input name="bank_transfers[].reference" value="[% HTML.escape(reference.substr(0, 140)) %]" maxlength="140" size="20">
93
    [% END %]
94
       <input name="bank_transfers[].reference" value="[% HTML.escape(reference.substr(0, 140)) %]" maxlength="140" size="30">
91 95
      </td>
92 96
      <td align="right">
93 97
       <input id=[% loop.count %] name="bank_transfers[].amount" id="amount_[% loop.count %]" value="[% LxERP.format_amount(invoice.invoice_amount_suggestion, 2) %]" style="text-align: right" size="12">

Auch abrufbar als: Unified diff