Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 8e927544

Von Moritz Bunkus vor fast 2 Jahren hinzugefügt

  • ID 8e927544e3ad08d9ca54fc57381eec506b4828a6
  • Vorgänger 72b54587
  • Nachfolger 480f1f35

Wiederkehrende Abrechnung Positionen: Bearbeiten in Auftragscontrollern

Unterschiede anzeigen:

SL/OE.pm
752 752
         UPDATE orderitems SET
753 753
          trans_id = ?, position = ?, parts_id = ?, description = ?, longdescription = ?, qty = ?, base_qty = ?,
754 754
          sellprice = ?, discount = ?, unit = ?, reqdate = ?, project_id = ?, serialnumber = ?, ship = ?,
755
          pricegroup_id = ?, subtotal = ?,
755
          pricegroup_id = ?, subtotal = ?, recurring_billing_mode = ?,
756 756
          marge_percent = ?, marge_total = ?, lastcost = ?, price_factor_id = ?,
757 757
          active_price_source = ?, active_discount_source = ?,
758 758
          price_factor = (SELECT factor FROM price_factors WHERE id = ?), marge_price_factor = ?
......
765 765
           $fxsellprice, $form->{"discount_$i"},
766 766
           $form->{"unit_$i"}, conv_date($reqdate), conv_i($form->{"project_id_$i"}),
767 767
           $form->{"serialnumber_$i"}, $form->{"ship_$i"},
768
           $pricegroup_id, $form->{"subtotal_$i"} ? 't' : 'f',
768
           $pricegroup_id, $form->{"subtotal_$i"} ? 't' : 'f', $form->{"recurring_billing_mode_$i"},
769 769
           $form->{"marge_percent_$i"}, $form->{"marge_absolut_$i"},
770 770
           $form->{"lastcost_$i"}, conv_i($form->{"price_factor_id_$i"}),
771 771
           $form->{"active_price_source_$i"}, $form->{"active_discount_source_$i"},
......
1286 1286
           p.classification_id,
1287 1287
           o.sellprice, o.parts_id AS id, o.unit, o.discount, p.notes AS partnotes, p.part_type,
1288 1288
           o.reqdate, o.project_id, o.serialnumber, o.ship, o.lastcost,
1289
           o.ordnumber, o.transdate, o.cusordnumber, o.subtotal, o.longdescription,
1289
           o.ordnumber, o.transdate, o.cusordnumber, o.subtotal, o.recurring_billing_mode, o.longdescription,
1290 1290
           o.price_factor_id, o.price_factor, o.marge_price_factor, o.active_price_source, o.active_discount_source,
1291 1291
           pr.projectnumber, p.formel,
1292 1292
           pg.partsgroup, o.pricegroup_id, (SELECT pricegroup FROM pricegroup WHERE id=o.pricegroup_id) as pricegroup
bin/mozilla/io.pl
171 171
    bin stock_in_out
172 172
  );
173 173
  my @row2_sort   = qw(
174
    serialnr projectnr reqdate subtotal marge listprice lastcost onhand
174
    serialnr projectnr reqdate subtotal recurring_billing_mode marge listprice lastcost onhand
175 175
  );
176 176
  # serialnr is important for delivery_orders
177 177
  if ($form->{type} eq 'sales_delivery_order') {
......
201 201
    stock_in_out  => { width => 10,    value => $stock_in_out_title,                   display => $is_delivery_order, },
202 202
    reqdate       => {                 value => $locale->text('Reqdate'),              display => $is_s_p_order || $is_delivery_order || $is_invoice, },
203 203
    subtotal      => {                 value => $locale->text('Subtotal'),             display => 1, },
204
    recurring_billing_mode => {        value => $locale->text('Recurring billing'),    display => $form->{type} eq 'sales_order', },
204 205
    marge         => {                 value => $locale->text('Ertrag'),               display => $show_marge, },
205 206
    listprice     => {                 value => $locale->text('LP'),                   display => $show_marge, },
206 207
    lastcost      => {                 value => $locale->text('EK'),                   display => $show_marge, },
......
406 407
    ));
407 408
    $column_data{reqdate}   = qq|<input name="reqdate_$i" size="11" data-validate="date" value="$form->{"reqdate_$i"}">|;
408 409
    $column_data{subtotal}  = sprintf qq|<input type="checkbox" name="subtotal_$i" value="1" %s>|, $form->{"subtotal_$i"} ? 'checked' : '';
410
    $column_data{recurring_billing_mode} = SL::Presenter::Tag::select_tag(
411
      "recurring_billing_mode_$i",
412
      [[ 'always', $::locale->text('always') ], [ 'once',   $::locale->text('once')   ], [ 'never',  $::locale->text('never')  ]],
413
      default => $::form->{"recurring_billing_mode_$i"} || 'always',
414
    );
409 415

  
410
# begin marge calculations
416
    # begin marge calculations
411 417
    $form->{"lastcost_$i"}     *= 1;
412 418
    $form->{"marge_percent_$i"} = 0;
413 419

  
......
834 840
                active_price_source active_discount_source delivery_order_items_id
835 841
                invoice_id converted_from_orderitems_id
836 842
                converted_from_delivery_order_items_id converted_from_invoice_id
837
                converted_from_reclamation_items_id);
843
                converted_from_reclamation_items_id recurring_billing_mode);
838 844

  
839 845
  my $ic_cvar_configs = CVar->get_configs(module => 'IC');
840 846
  push @flds, map { "ic_cvar_$_->{name}" } @{ $ic_cvar_configs };
locale/de/all
696 696
  'Check Details'               => 'Bitte Angaben überprüfen',
697 697
  'Check connectivity'          => 'Verbindungstest',
698 698
  'Check for duplicates'        => 'Dublettencheck',
699
  'Check full signature'        => 'Volle Signatur prüfen',
700 699
  'Check on ap transaction'     => 'Prüfen bei Kreditorenbuchung',
701 700
  'Check on ar transaction'     => 'Prüfen bei Debitorenbuchung',
702 701
  'Check on gl transaction'     => 'Prüfen bei Dialogbuchung',
......
999 998
  'DATEV check returned errors:' => 'Die DATEV Prüfung dieser Buchung ergab Fehler:',
1000 999
  'DATEV configuration'         => 'Einstellungen für DATEV',
1001 1000
  'DATEV expects the encoding to be Western Europe conform (LATIN-1, cp1252). By setting this to "Strict and halt" the DATEV export halts with a error if there is a single character in "Posting Text" which is not LATIN-1 encodeable. By setting this to "Strict but replace" kivitendo will replace the character with a similar one and the export will simply warn about those fields. By setting this to relaxed (UTF-8) the DATEV export encoding will be in kivitendo (UTF-8) encoded and the external import program has to handle this (this may work for DATEV deriviates or future versions of DATEV). Background details: For example turkish characters (Ç) are not valid cp1252 charactes and armenian characters like "Գեղարդ" are probably not replaceable in cp1252' => 'DATEV erwartet eine westeuropäische Zeichenkodierung (LATIN-1, cp1252). Die Einstellung "Strikt und Abbruch" erlaubt keine nicht kodierbaren Zeichen im DATEV-Export und bricht diesen mit einer Fehlermeldung ab. Die Einstellung "Strikt mit Ersetzungen" versucht ähnliche Zeichen (bspw. c statt ć) zu verwenden und gibt zusätzlich eine Warnung beim DATEV-Export aus. Die Einstellung "Lax (UTF-8)" ignoriert diese Anforderung und übergibt die Daten im kivitendo-konformen UTF-8 Format. Letzteres kann für zukünftige DATEV-Version oder DATEV-kompatible Alternativen interessant sein. Hintergrund-Info: Beispielsweise sind schon türkische Zeichen (Ç) nicht mehr im westeuropäischen Zeichensätz enthalten und armenische Zeiche wie "Գեղարդ" könnnen sicherlich überhaupt nicht mit Zeichen in cp1252 ersetzt werden.',
1002
  'DATEV - Export Assistent'    => 'DATEV-Exportassistent',
1003 1001
  'DELETED'                     => 'Gelöscht',
1004 1002
  'DFV-Kennzeichen'             => 'DFV-Kennzeichen',
1005 1003
  'DR'                          => 'S',
......
1229 1227
  'Do you really want undo transfers the stock and set this order to undelivered?' => 'Wollen sie wirklich die Lagerbewegung rückgängig machen und den Beleg als nicht geliefert setzen?',
1230 1228
  'Do you want to <b>limit</b> your search?' => 'Möchten Sie Ihre Suche <b>spezialisieren</b>?',
1231 1229
  'Do you want to carry this shipping address over to the new purchase document so that the vendor can deliver the goods directly to your customer?' => 'Möchten Sie diese Lieferadresse in den neuen Einkaufsbeleg übernehmen, damit der Händler die Waren direkt an Ihren Kunden liefern kann?',
1232
  '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 wirklich die Lieferadresse zur Einkaufbestellung übermitteln, sodass Ihr Lieferant die Waren direkt an Ihren Kunden schicken kann?',
1233 1230
  'Do you want to carry this shipping address over to the new purchase reclamation so that the vendor can deliver the goods directly to your customer?' => 'Möchten Sie diese Lieferadresse in die neue Einkaufsreklamation übernehmen, damit der Händler die Waren direkt an Ihren Kunden liefern kann?',
1234 1231
  'Do you want to overwrite your current title?' => 'Möchten Sie den aktuellen Titel überschreiben?',
1235 1232
  '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?',
......
1424 1421
  'Edit time recordings of all staff members' => 'Zeiterfassungseinträge aller Mitarbeiter bearbeiten',
1425 1422
  'Edit title'                  => 'Titiel bearbeiten',
1426 1423
  'Edit units'                  => 'Einheiten bearbeiten',
1427
  'Edit user signature'         => 'Benutzersignatur bearbeiten',
1428 1424
  'Editable'                    => 'Bearbeitbar',
1429 1425
  'Either there are no open invoices, or you have already initiated bank transfers with the open amounts for those that are still open.' => 'Entweder gibt es keine offenen Rechnungen, oder es wurden bereits Überweisungen über die offenen Beträge aller offenen Rechnungen erstellt.',
1430 1426
  'Element disabled'            => 'Element deaktiviert',
......
1614 1610
  'Expense/Asset'               => 'Aufwand/Anlagen',
1615 1611
  'Experimental Features'       => 'Experimentelle Features',
1616 1612
  'Export'                      => 'Export',
1617
  'Export Buchungsdaten'        => 'Export Buchungsdaten',
1618 1613
  'Export Number'               => 'Exportnummer',
1619
  'Export Stammdaten'           => 'Export Stammdaten',
1620 1614
  'Export as CSV'               => 'Als CSV exportieren',
1621 1615
  'Export as PDF'               => 'Als PDF exportieren',
1622 1616
  'Export date'                 => 'Exportdatum',
......
2475 2469
  'Number of data uploaded:'    => 'Uploaded Datensätze',
2476 2470
  'Number of delivery orders created:' => 'Anzahl erzeugter Lieferscheine:',
2477 2471
  'Number of delivery orders printed:' => 'Anzahl gedruckter Lieferscheine:',
2478
  'Number of deliveryorders created:' => 'Anzahl erzeugter Lieferscheine:',
2479
  'Number of deliveryorders printed:' => 'Anzahl gedruckter Lieferscheine:',
2480 2472
  'Number of entries changed: #1' => 'Anzahl geänderter Einträge: #1',
2481 2473
  'Number of invoices'          => 'Anzahl Rechnungen',
2482 2474
  'Number of invoices created:' => 'Anzahl erstellter Rechnungen:',
......
3022 3014
  'Recorded Tax'                => 'Gespeicherte Steuern',
3023 3015
  'Recorded taxkey'             => 'Gespeicherter Steuerschlüssel',
3024 3016
  'Records'                     => 'Belege',
3017
  'Recurring billing'           => 'Wiederkehrende Abrechnung',
3025 3018
  'Reduced Master Data'         => 'Abschlag',
3026 3019
  'Reference'                   => 'Referenz',
3027 3020
  'Reference / Invoice Number'  => 'Referenz / Rechnungsnummer',
......
3311 3304
  'Send invoice via email'      => 'Rechnung via E-Mail verschicken',
3312 3305
  'Send printout of record'     => 'Belegausdruck mitschicken',
3313 3306
  'Send the last or create the first version for this record' => 'Den zuletzt erstellten oder neuen Belegausdruck verschicken',
3314
  'Send the last printout created for this record' => 'Den zuletzt erstellen Belegausdruck mitschicken',
3315 3307
  'Send the last version for this record' => 'Den zuletzt erstellten Belegausdruck verschicken',
3316 3308
  'Sender'                      => 'AbsenderIn',
3317 3309
  'Sent emails can be optionally stored in the database with or without their attachments.' => 'Gesendete E-Mails können optional mit oder ohne ihre Anhänge in der Datenbank gespeichert werden.',
......
3677 3669
  'Text blocks front'           => 'Textblöcke vorne',
3678 3670
  'Text field'                  => 'Textfeld',
3679 3671
  'Text field and HTML field variables: \'WIDTH=w HEIGHT=h\' sets the width and height of the field in pixels. They default to 225 and 90 respectively.' => 'Textfelder und HTML-Felder: \'WIDTH=w HEIGHT=h\' setzen die Breite und die Höhe des Feldes in Pixeln. Wenn nicht anders angegeben, so werden sie 225 Pixel breit und 90 Pixel hoch dargestellt.',
3680
  'Text field variables: \'WIDTH=w HEIGHT=h\' sets the width and height of the text field. They default to 30 and 5 respectively.' => 'Textfelder: \'WIDTH=w HEIGHT=h\' setzen die Breite und die Höhe des Textfeldes. Wenn nicht anders angegeben, so werden sie 30 Zeichen breit und fünf Zeichen hoch dargestellt.',
3681 3672
  'Text in CSV File'            => 'Spalte in der CSV Datei',
3682 3673
  'Text variables: \'MAXLENGTH=n\' sets the maximum entry length to \'n\'.' => 'Textzeilen: \'MAXLENGTH=n\' setzt eine Maximallänge von n Zeichen.',
3683
  'Text, text field and number variables: The default value will be used as-is.' => 'Textzeilen, Textfelder und Zahlenvariablen: Der Standardwert wird so wie er ist übernommen.',
3684 3674
  'Text, text field, HTML field and number variables: The default value will be used as-is.' => 'Textzeilen, Textfelder, HTML-Felder und Zahlenvariablen: Der Standardwert wird so wie er ist übernommen.',
3685 3675
  'Texts for invoices'          => 'Texte für Rechnungen',
3686 3676
  'Texts for quotations & orders' => 'Texte für Angebote & Aufträge',
......
4342 4332
  'Until'                       => 'Bis',
4343 4333
  'Update'                      => 'Erneuern',
4344 4334
  'Update Discount'             => 'Rabatt übernehmen',
4345
  'Update Partnumber'           => 'Update Artikel',
4346 4335
  'Update Price'                => 'Preis übernehmen',
4347 4336
  'Update Prices'               => 'Preise aktualisieren',
4348 4337
  'Update SKR04: new tax account 3804 (19%)' => 'Update SKR04: neues Steuerkonto 3804 (19%) für innergemeinschaftlichen Erwerb',
......
4479 4468
  'Version'                     => 'Version',
4480 4469
  'Version actions'             => 'Aktionen für Versionen',
4481 4470
  'Version number'              => 'Versionsnummer',
4482
  'Version: '                   => 'Version',
4483 4471
  'Versions'                    => 'Versionen',
4484 4472
  'View RFQs'                   => 'Lieferantenanfragen ansehen',
4485 4473
  'View SEPA export'            => 'SEPA-Export-Details ansehen',
......
4650 4638
  'active'                      => 'aktiv',
4651 4639
  'all'                         => 'Alle',
4652 4640
  'all entries'                 => 'alle Einträge',
4641
  'always'                      => 'immer',
4653 4642
  'and'                         => 'und',
4654 4643
  'ap_aging_list'               => 'liste_offene_verbindlichkeiten',
4655 4644
  'ar_aging_list'               => 'liste_offene_forderungen',
......
4831 4820
  'oe.pl::search called with unknown type' => 'oe.pl::search mit unbekanntem Typ aufgerufen',
4832 4821
  'old'                         => 'alt',
4833 4822
  'on the same day'             => 'am selben Tag',
4823
  'once'                        => 'einmalig',
4834 4824
  'one time'                    => 'einmalig',
4835 4825
  'one-time execution'          => 'einmalige Ausführung',
4836 4826
  'only OB Transactions'        => 'nur EB-Buchungen',
templates/webpages/order/tabs/_second_row.html
18 18
    [%- END %]
19 19
    <b>[%- 'Subtotal' | $T8 %]</b>&nbsp;
20 20
    [% L.yes_no_tag("order.orderitems[].subtotal", ITEM.subtotal) %]&nbsp;
21
    [%- IF TYPE == "sales_order" %]
22
      <b>[%- 'Recurring billing' | $T8 %]</b>&nbsp;
23
      [% L.select_tag("order.orderitems[].recurring_billing_mode", [[ 'always', LxERP.t8('always') ], [ 'once',   LxERP.t8('once')   ], [ 'never',  LxERP.t8('never')  ]], default=ITEM.recurring_billing_mode) %]&nbsp;
24
    [%- END %]
21 25
    [%- IF (TYPE == "sales_order" || TYPE == "sales_quotation") %]
22 26
      <b>[%- 'Ertrag' | $T8 %]</b>&nbsp;
23 27
        <span name="linemargin">

Auch abrufbar als: Unified diff