Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 454df69e

Von Moritz Bunkus vor mehr als 16 Jahren hinzugefügt

  • ID 454df69edeb9bfe5a1a9c06c2788d1e1175470db
  • Vorgänger 556a2137
  • Nachfolger c9696e31

Erstellen von Rechnungen aus mehreren Lieferscheinen heraus.

Unterschiede anzeigen:

SL/DO.pm
425 425
sub retrieve {
426 426
  $main::lxdebug->enter_sub();
427 427

  
428
  my ($self)   = @_;
428
  my $self     = shift;
429
  my %params   = @_;
429 430

  
430 431
  my $myconfig = \%main::myconfig;
431 432
  my $form     = $main::form;
......
435 436

  
436 437
  my ($query, $query_add, @values, $sth, $ref);
437 438

  
438
  if (!$form->{id}) {
439
  my $vc   = $params{vc} eq 'customer' ? 'customer' : 'vendor';
440

  
441
  my $mode = !$params{ids} ? 'default' : ref $params{ids} eq 'ARRAY' ? 'multi' : 'single';
442

  
443
  if ($mode eq 'default') {
439 444
    $ref = selectfirst_hashref_query($form, $dbh, qq|SELECT current_date AS transdate, current_date AS reqdate|);
440 445
    map { $form->{$_} = $ref->{$_} } keys %$ref;
446

  
447
    # get last name used
448
    $form->lastname_used($dbh, $myconfig, $vc) unless $form->{"${vc}_id"};
449

  
450
    $main::lxdebug->leave_sub();
451

  
452
    return 1;
441 453
  }
442 454

  
443
  my $vc = $form->{vc} eq "customer" ? "customer" : "vendor";
455
  my @do_ids              = map { conv_i($_) } ($mode eq 'multi' ? @{ $params{ids} } : ($params{ids}));
456
  my $do_ids_placeholders = join(', ', ('?') x scalar(@do_ids));
444 457

  
445
  if ($form->{id}) {
458
  # retrieve order for single id
459
  # NOTE: this query is intended to fetch all information only ONCE.
460
  # so if any of these infos is important (or even different) for any item,
461
  # it will be killed out and then has to be fetched from the item scope query further down
462
  $query =
463
    qq|SELECT dord.cp_id, dord.donumber, dord.ordnumber, dord.transdate, dord.reqdate,
464
         dord.shippingpoint, dord.shipvia, dord.notes, dord.intnotes,
465
         e.name AS employee, dord.employee_id, dord.salesman_id,
466
         dord.${vc}_id, cv.name AS ${vc},
467
         dord.closed, dord.reqdate, dord.department_id, dord.cusordnumber,
468
         d.description AS department, dord.language_id,
469
         dord.shipto_id,
470
         dord.globalproject_id, dord.delivered, dord.transaction_description
471
       FROM delivery_orders dord
472
       JOIN ${vc} cv ON (dord.${vc}_id = cv.id)
473
       LEFT JOIN employee e ON (dord.employee_id = e.id)
474
       LEFT JOIN department d ON (dord.department_id = d.id)
475
       WHERE dord.id IN ($do_ids_placeholders)|;
476
  $sth = prepare_execute_query($form, $dbh, $query, @do_ids);
446 477

  
447
    # retrieve order for single id
448
    # NOTE: this query is intended to fetch all information only ONCE.
449
    # so if any of these infos is important (or even different) for any item,
450
    # it will be killed out and then has to be fetched from the item scope query further down
451
    $query =
452
      qq|SELECT dord.cp_id, dord.donumber, dord.ordnumber, dord.transdate, dord.reqdate,
453
           dord.shippingpoint, dord.shipvia, dord.notes, dord.intnotes,
454
           e.name AS employee, dord.employee_id, dord.salesman_id,
455
           dord.${vc}_id, cv.name AS ${vc},
456
           dord.closed, dord.reqdate, dord.department_id, dord.cusordnumber,
457
           d.description AS department, dord.language_id,
458
           dord.shipto_id,
459
           dord.globalproject_id, dord.delivered, dord.transaction_description
460
         FROM delivery_orders dord
461
         JOIN ${vc} cv ON (dord.${vc}_id = cv.id)
462
         LEFT JOIN employee e ON (dord.employee_id = e.id)
463
         LEFT JOIN department d ON (dord.department_id = d.id)
464
         WHERE dord.id = ?|;
465
    $sth = prepare_execute_query($form, $dbh, $query, conv_i($form->{id}));
466

  
467
    $ref = $sth->fetchrow_hashref(NAME_lc);
468
    $sth->finish();
478
  delete $form->{"${vc}_id"};
479
  while (my $ref = $sth->fetchrow_hashref(NAME_lc)) {
480
    if ($form->{"${vc}_id"} && ($ref->{"${vc}_id"} != $form->{"${vc}_id"})) {
481
      $sth->finish();
482
      $main::lxdebug->leave_sub();
483

  
484
      return 0;
485
    }
469 486

  
470 487
    map { $form->{$_} = $ref->{$_} } keys %$ref if ($ref);
488
  }
489
  $sth->finish();
471 490

  
472
    $form->{saved_donumber} = $form->{donumber};
491
  $form->{saved_donumber} = $form->{donumber};
473 492

  
474
    # if not given, fill transdate with current_date
475
    $form->{transdate} = $form->current_date($myconfig) unless $form->{transdate};
493
  # if not given, fill transdate with current_date
494
  $form->{transdate} = $form->current_date($myconfig) unless $form->{transdate};
476 495

  
496
  if ($mode eq 'single') {
477 497
    $query = qq|SELECT s.* FROM shipto s WHERE s.trans_id = ? AND s.module = 'DO'|;
478
    $sth = prepare_execute_query($form, $dbh, $query, $form->{id});
498
    $sth   = prepare_execute_query($form, $dbh, $query, $form->{id});
479 499

  
480
    $ref = $sth->fetchrow_hashref(NAME_lc);
481
    delete($ref->{id});
500
    $ref   = $sth->fetchrow_hashref(NAME_lc);
501
    delete $ref->{id};
482 502
    map { $form->{$_} = $ref->{$_} } keys %$ref;
483
    $sth->finish;
503
    $sth->finish();
484 504

  
485 505
    # get printed, emailed and queued
486 506
    $query = qq|SELECT s.printed, s.emailed, s.spoolfile, s.formname FROM status s WHERE s.trans_id = ?|;
487
    $sth = prepare_execute_query($form, $dbh, $query, conv_i($form->{id}));
507
    $sth   = prepare_execute_query($form, $dbh, $query, conv_i($form->{id}));
488 508

  
489 509
    while ($ref = $sth->fetchrow_hashref(NAME_lc)) {
490 510
      $form->{printed} .= "$ref->{formname} " if $ref->{printed};
491 511
      $form->{emailed} .= "$ref->{formname} " if $ref->{emailed};
492 512
      $form->{queued}  .= "$ref->{formname} $ref->{spoolfile} " if $ref->{spoolfile};
493 513
    }
494
    $sth->finish;
514
    $sth->finish();
495 515
    map { $form->{$_} =~ s/ +$//g } qw(printed emailed queued);
496 516

  
497
    my %oid = ('Pg'     => 'oid',
498
               'Oracle' => 'rowid');
499

  
500
    my $transdate = $form->{transdate} ? $dbh->quote($form->{transdate}) : "current_date";
517
  } else {
518
    delete $form->{id};
519
  }
501 520

  
502
    # retrieve individual items
503
    # this query looks up all information about the items
504
    # stuff different from the whole will not be overwritten, but saved with a suffix.
505
    $query =
506
      qq|SELECT doi.id AS delivery_order_items_id,
507
           p.partnumber, p.assembly, doi.description, doi.qty,
508
           doi.sellprice, doi.parts_id AS id, doi.unit, doi.discount, p.bin, p.notes AS partnotes,
509
           doi.reqdate, doi.project_id, doi.serialnumber, doi.lastcost,
510
           doi.ordnumber, doi.transdate, doi.cusordnumber, doi.longdescription,
511
           doi.price_factor_id, doi.price_factor, doi.marge_price_factor,
512
           pr.projectnumber,
513
           pg.partsgroup
514
         FROM delivery_order_items doi
515
         JOIN parts p ON (doi.parts_id = p.id)
516
         JOIN delivery_orders dord ON (doi.delivery_order_id = dord.id)
517
         LEFT JOIN project pr ON (doi.project_id = pr.id)
518
         LEFT JOIN partsgroup pg ON (p.partsgroup_id = pg.id)
519
         WHERE doi.delivery_order_id = ?
520
         ORDER BY doi.$oid{$myconfig->{dbdriver}}|;
521

  
522
    $form->{form_details} = selectall_hashref_query($form, $dbh, $query, conv_i($form->{id}));
521
  my %oid = ('Pg'     => 'oid',
522
             'Oracle' => 'rowid');
523 523

  
524
  # retrieve individual items
525
  # this query looks up all information about the items
526
  # stuff different from the whole will not be overwritten, but saved with a suffix.
527
  $query =
528
    qq|SELECT doi.id AS delivery_order_items_id,
529
         p.partnumber, p.assembly, doi.description, doi.qty,
530
         doi.sellprice, doi.parts_id AS id, doi.unit, doi.discount, p.bin, p.notes AS partnotes,
531
         doi.reqdate, doi.project_id, doi.serialnumber, doi.lastcost,
532
         doi.ordnumber, doi.transdate, doi.cusordnumber, doi.longdescription,
533
         doi.price_factor_id, doi.price_factor, doi.marge_price_factor,
534
         pr.projectnumber,
535
         pg.partsgroup
536
       FROM delivery_order_items doi
537
       JOIN parts p ON (doi.parts_id = p.id)
538
       JOIN delivery_orders dord ON (doi.delivery_order_id = dord.id)
539
       LEFT JOIN project pr ON (doi.project_id = pr.id)
540
       LEFT JOIN partsgroup pg ON (p.partsgroup_id = pg.id)
541
       WHERE doi.delivery_order_id IN ($do_ids_placeholders)
542
       ORDER BY doi.$oid{$myconfig->{dbdriver}}|;
543

  
544
  $form->{form_details} = selectall_hashref_query($form, $dbh, $query, @do_ids);
545

  
546
  if ($mode eq 'single') {
524 547
    my $in_out = $form->{type} =~ /^sales/ ? 'out' : 'in';
525 548

  
526 549
    $query =
527 550
      qq|SELECT qty, unit, bin_id, warehouse_id, chargenumber
528
           FROM delivery_order_items_stock
529
           WHERE delivery_order_item_id = ?|;
551
         FROM delivery_order_items_stock
552
         WHERE delivery_order_item_id = ?|;
530 553
    my $sth = prepare_query($form, $dbh, $query);
531 554

  
532 555
    foreach my $doi (@{ $form->{form_details} }) {
......
540 563
    }
541 564

  
542 565
    $sth->finish();
543

  
544
  } else {
545
    # get last name used
546
    $form->lastname_used($dbh, $myconfig, $form->{vc}) unless $form->{"$form->{vc}_id"};
547

  
548 566
  }
549 567

  
550 568
  Common::webdav_folder($form) if ($main::webdav);
551 569

  
552 570
  $main::lxdebug->leave_sub();
571

  
572
  return 1;
553 573
}
554 574

  
555 575
sub order_details {
bin/mozilla/do.pl
156 156

  
157 157
  my $editing = $form->{id};
158 158

  
159
  DO->retrieve();
159
  DO->retrieve('vc'  => $form->{vc},
160
               'ids' => $form->{id});
160 161

  
161 162
  $payment_id  = $form->{payment_id}  if ($form->{payment_id});
162 163
  $language_id = $form->{language_id} if ($form->{language_id});
......
415 416
  $form->{rowcount} = scalar @{ $form->{DO} };
416 417

  
417 418
  my @columns = qw(
418
    transdate
419
    ids                     transdate
419 420
    id                      donumber
420 421
    ordnumber
421 422
    name                    employee
......
460 461

  
461 462
  $form->{"l_type"} = "Y";
462 463
  map { $column_defs{$_}->{visible} = $form->{"l_${_}"} ? 1 : 0 } @columns;
463
  $column_defs{ids}->{visible} = $allow_multiple_orders ? 'HTML' : 0;
464

  
465
  $column_defs{ids}->{visible} = 'HTML';
464 466

  
465 467
  $report->set_columns(%column_defs);
466 468
  $report->set_column_order(@columns);
......
508 510
    push @options, $locale->text('Not delivered');
509 511
  }
510 512

  
511
  $report->set_options('top_info_text'       => join("\n", @options),
512
                       'output_format'       => 'HTML',
513
                       'title'               => $form->{title},
514
                       'attachment_basename' => $attachment_basename . strftime('_%Y%m%d', localtime time),
513
  $report->set_options('top_info_text'        => join("\n", @options),
514
                       'raw_top_info_text'    => $form->parse_html_template('do/orders_top'),
515
                       'raw_bottom_info_text' => $form->parse_html_template('do/orders_bottom'),
516
                       'output_format'        => 'HTML',
517
                       'title'                => $form->{title},
518
                       'attachment_basename'  => $attachment_basename . strftime('_%Y%m%d', localtime time),
515 519
    );
516 520
  $report->set_options_from_form();
517 521

  
......
524 528
  my $edit_url       = build_std_url('action=edit', 'type', 'vc');
525 529
  my $edit_order_url = build_std_url('script=oe.pl', 'type=' . ($form->{type} eq 'sales_delivery_order' ? 'sales_order' : 'purchase_order'), 'action=edit');
526 530

  
531
  my $idx            = 1;
532

  
527 533
  foreach $dord (@{ $form->{DO} }) {
528 534
    $dord->{open}      = $dord->{closed}    ? $locale->text('No')  : $locale->text('Yes');
529 535
    $dord->{delivered} = $dord->{delivered} ? $locale->text('Yes') : $locale->text('No');
530 536

  
531 537
    my $row = { map { $_ => { 'data' => $dord->{$_} } } @columns };
532 538

  
539
    $row->{ids}  = {
540
      'raw_data' =>   $cgi->hidden('-name' => "trans_id_${idx}", '-value' => $dord->{id})
541
                    . $cgi->checkbox('-name' => "multi_id_${idx}", '-value' => 1, '-label' => ''),
542
      'valign'   => 'center',
543
      'align'    => 'center',
544
    };
545

  
533 546
    $row->{donumber}->{link}  = $edit_url       . "&id=" . E($dord->{id})      . "&callback=${callback}";
534 547
    $row->{ordnumber}->{link} = $edit_order_url . "&id=" . E($dord->{oe_id})   . "&callback=${callback}";
535 548

  
536 549
    $report->add_data($row);
550

  
551
    $idx++;
537 552
  }
538 553

  
539 554
  $report->generate_with_headers();
......
704 719
  $lxdebug->leave_sub();
705 720
}
706 721

  
722
sub invoice_multi {
723
  $lxdebug->enter_sub();
724

  
725
  check_do_access();
726
  $auth->assert($form->{type} eq 'sales_delivery_order' ? 'invoice_edit' : 'vendor_invoice_edit');
727

  
728
  my @do_ids = map { $form->{"trans_id_$_"} } grep { $form->{"multi_id_$_"} } (1..$form->{rowcount});
729

  
730
  if (!scalar @do_ids) {
731
    $form->show_generic_error($locale->text('You have not selected any delivery order.'), 'back_button' => 1);
732
  }
733

  
734
  map { delete $form->{$_} } grep { m/^(?:trans|multi)_id_\d+/ } keys %{ $form };
735

  
736
  if (!DO->retrieve('vc' => $form->{vc}, 'ids' => \@do_ids)) {
737
    $form->show_generic_error($form->{vc} eq 'customer' ?
738
                              $locale->text('You cannot create an invoice for delivery orders for different customers.') :
739
                              $locale->text('You cannot create an invoice for delivery orders from different vendors.'),
740
                              'back_button' => 1);
741
  }
742

  
743
  $form->{deliverydate}    = $form->{transdate};
744
  $form->{transdate}       = $form->current_date(\%myconfig);
745
  $form->{duedate}         = $form->current_date(\%myconfig, $form->{invdate}, $form->{terms} * 1);
746
  $form->{type}            = "invoice";
747
  $form->{closed}          = 0;
748
  $form->{defaultcurrency} = $form->get_default_currency(\%myconfig);
749

  
750
  my $buysell;
751
  if ($form->{type} eq 'purchase_delivery_order') {
752
    $form->{title}  = $locale->text('Add Vendor Invoice');
753
    $form->{script} = 'ir.pl';
754
    $script         = "ir";
755
    $buysell        = 'sell';
756

  
757
  } else {
758
    $form->{title}  = $locale->text('Add Sales Invoice');
759
    $form->{script} = 'is.pl';
760
    $script         = "is";
761
    $buysell        = 'buy';
762
  }
763

  
764
  map { delete $form->{$_} } qw(id subject message cc bcc printed emailed queued);
765

  
766
  $form->{rowcount} = 0;
767
  foreach my $ref (@{ $form->{form_details} }) {
768
    $form->{rowcount}++;
769
    map { $form->{"${_}_$form->{rowcount}"} = $ref->{$_} } keys %{ $ref };
770
    map { $form->{"${_}_$form->{rowcount}"} = $form->format_amount(\%myconfig, $ref->{$_}) } qw(qty sellprice discount lastcost);
771
  }
772
  delete $form->{form_details};
773

  
774
  $locale = new Locale "$myconfig{countrycode}", "$script";
775

  
776
  require "bin/mozilla/$form->{script}";
777

  
778
  invoice_links();
779
  prepare_invoice();
780
  display_form();
781

  
782
  $lxdebug->leave_sub();
783
}
784

  
707 785
sub save_as_new {
708 786
  $lxdebug->enter_sub();
709 787

  
locale/de/all
895 895
  'New assembly'                => 'Neues Erzeugnis',
896 896
  'New contact'                 => 'Neuer Ansprechpartner',
897 897
  'New customer'                => 'Neuer Kunde',
898
  'New invoice'                 => 'Neue Rechnung',
898 899
  'New part'                    => 'Neue Ware',
899 900
  'New sales order'             => 'Neuer Auftrag',
900 901
  'New service'                 => 'Neue Dienstleistung',
......
1599 1600
  'You can use the following strings in the long description and all translations. They will be replaced by their actual values by Lx-Office before they\'re output.' => 'Sie können im Langtext und allen ?bersetzungen die folgenden Variablen benutzen, die vor der Ausgabe von Lx-Office automatisch ersetzt werden:',
1600 1601
  'You cannot continue before all required modules are installed.' => 'Sie können nicht fortfahren, bevor alle benötigten Pakete installiert sind.',
1601 1602
  'You cannot continue until all unknown units have been mapped to known ones.' => 'Sie können nicht fortfahren, bis alle unbekannten Einheiten in neue Einheiten umgewandelt wurden.',
1603
  'You cannot create an invoice for delivery orders for different customers.' => 'Sie k?nnen keine Rechnung zu Lieferscheinen f?r verschiedene Kunden erstellen.',
1604
  'You cannot create an invoice for delivery orders from different vendors.' => 'Sie k?nnen keine Rechnung aus Lieferscheinen von verschiedenen Lieferanten erstellen.',
1602 1605
  'You did not enter a name!'   => 'Sie haben keinen Namen eingegeben!',
1603 1606
  'You do not have the permissions to access this function.' => 'Sie verfügen nicht über die notwendigen Rechte, um auf diese Funktion zuzugreifen.',
1604 1607
  'You have entered or selected the following shipping address for this customer:' => 'Sie haben die folgende Lieferadresse eingegeben oder ausgewählt:',
1608
  'You have not selected any delivery order.' => 'Sie haben keinen Lieferschein ausgew?hlt.',
1605 1609
  'You have to chose a dimension unit and a service unit which will then be assigned to those entries.' => 'Sie müssen eine Maß- und eine Dienstleistungseinheit auswählen, die diesen Waren und Dienstleistungen, denen noch keine Einheit zugeordnet ist, zugeordnet wird.',
1606 1610
  'You have to chose which unit to save for each of them.' => 'Sie müssen für jeden Artikel die neue Einheit auswählen.',
1607 1611
  'You have to create at least one group, grant it access to Lx-Office\'s functions and assign users to it.' => 'Sie müssen mindestens eine Benutzergruppe anlegen, ihr Zugriff auf die verschiedenen Funktionsbereiche von Lx-Office gewähren und Benutzer dieser Gruppe zuordnen.',
locale/de/ca
5 5
  'AP'                          => 'Einkauf',
6 6
  'AR'                          => 'Verkauf',
7 7
  'Account'                     => 'Konto',
8
  'Accrual'                     => 'Bilanzierung',
9 8
  'Advance turnover tax return' => 'Umsatzsteuervoranmeldung',
10 9
  'All reports'                 => 'Alle Berichte (Kontenübersicht, Summen- u. Saldenliste, GuV, BWA, Bilanz, Projektbuchungen)',
11 10
  'Apr'                         => 'Apr',
......
16 15
  'Bcc'                         => 'Bcc',
17 16
  'Bin List'                    => 'Lagerliste',
18 17
  'Binding to the LDAP server as "#1" failed. Please check config/authentication.pl.' => 'Die Anmeldung am LDAP-Server als "#1" schlug fehl. Bitte überprüfen Sie die Angaben in config/authentication.pl.',
19
  'Bis'                         => 'bis',
20 18
  'CANCELED'                    => 'Storniert',
21 19
  'CSV export -- options'       => 'CSV-Export -- Optionen',
22 20
  'Cc'                          => 'Cc',
......
41 39
  'Create and edit vendor invoices' => 'Eingangsrechnungen erfassen und bearbeiten',
42 40
  'Credit'                      => 'Haben',
43 41
  'Credit Note'                 => 'Gutschrift',
44
  'Customized Report'           => 'Vorgew?hlte Zeitr?ume',
45 42
  'DATEV Export'                => 'DATEV-Export',
46 43
  'DELETED'                     => 'Gel?scht',
47 44
  'DUNNING STARTED'             => 'Mahnprozess gestartet',
......
50 47
  'Debit'                       => 'Soll',
51 48
  'Dec'                         => 'Dez',
52 49
  'December'                    => 'Dezember',
53
  'Decimalplaces'               => 'Dezimalstellen',
54 50
  'Delivery Order'              => 'Lieferschein',
55 51
  'Department'                  => 'Abteilung',
56 52
  'Dependency loop detected:'   => 'Schleife in den Abhängigkeiten entdeckt:',
57 53
  'Description'                 => 'Beschreibung',
58 54
  'Directory'                   => 'Verzeichnis',
59 55
  'ELSE'                        => 'Zusatz',
60
  'EUR'                         => 'E/?-Rechnung',
61 56
  'Error in database control file \'%s\': %s' => 'Fehler in Datenbankupgradekontrolldatei \'%s\': %s',
62
  'Falsches Datumsformat!'      => 'Falsches Datumsformat!',
63 57
  'Feb'                         => 'Feb',
64 58
  'February'                    => 'Februar',
65 59
  'File'                        => 'Datei',
66
  'Free report period'          => 'Freier Zeitraum',
67 60
  'From'                        => 'Von',
68 61
  'General ledger and cash'     => 'Finanzbuchhaltung und Zahlungsverkehr',
62
  'Include in Report'           => 'In Bericht aufnehmen',
69 63
  'Invoice'                     => 'Rechnung',
70 64
  'Jan'                         => 'Jan',
71 65
  'January'                     => 'Januar',
......
83 77
  'May '                        => 'Mai',
84 78
  'May set the BCC field when sending emails' => 'Beim Verschicken von Emails das Feld \'BCC\' setzen',
85 79
  'Message'                     => 'Nachricht',
86
  'Method'                      => 'Verfahren',
87 80
  'Missing \'description\' field.' => 'Fehlendes Feld \'description\'.',
88 81
  'Missing \'tag\' field.'      => 'Fehlendes Feld \'tag\'.',
89 82
  'Missing parameter #1 in call to sub #2.' => 'Fehlernder Parameter \'#1\' in Funktionsaufruf \'#2\'.',
90
  'Monthly'                     => 'monatlich',
91 83
  'More than one control file with the tag \'%s\' exist.' => 'Es gibt mehr als eine Kontrolldatei mit dem Tag \'%s\'.',
92 84
  'No or an unknown authenticantion module specified in "config/authentication.pl".' => 'Es wurde kein oder ein unbekanntes Authentifizierungsmodul in "config/authentication.pl" angegeben.',
93 85
  'Nov'                         => 'Nov',
......
106 98
  'Proforma Invoice'            => 'Proformarechnung',
107 99
  'Project Number'              => 'Projektnummer',
108 100
  'Purchase Order'              => 'Lieferantenauftrag',
109
  'Quarter'                     => 'Quartal',
110
  'Quarterly'                   => 'quartalsweise',
111 101
  'Quotation'                   => 'Angebot',
112 102
  'RFQ'                         => 'Anfrage',
113 103
  'Receipt, payment, reconciliation' => 'Zahlungseingang, Zahlungsausgang, Kontenabgleich',
......
121 111
  'Storno Invoice'              => 'Stornorechnung',
122 112
  'Storno Packing List'         => 'Stornolieferschein',
123 113
  'Subject'                     => 'Betreff',
114
  'Subtotal'                    => 'Zwischensumme',
124 115
  'The \'tag\' field must only consist of alphanumeric characters or the carachters - _ ( )' => 'Das Feld \'tag\' darf nur aus alphanumerischen Zeichen und den Zeichen - _ ( ) bestehen.',
125 116
  'The LDAP server "#1:#2" is unreachable. Please check config/authentication.pl.' => 'Der LDAP-Server "#1:#2" ist nicht erreichbar. Bitte überprüfen Sie die Angaben in config/authentication.pl.',
126 117
  'The config file "config/authentication.pl" contained invalid Perl code:' => 'Die Konfigurationsdatei "config/authentication.pl" enthielt ungütigen Perl-Code:',
......
130 121
  'The connection to the template database failed:' => 'Die Verbindung zur Vorlagendatenbank schlug fehl:',
131 122
  'The creation of the authentication database failed:' => 'Das Anlegen der Authentifizierungsdatenbank schlug fehl:',
132 123
  'The list has been printed.'  => 'Die Liste wurde ausgedruckt.',
124
  'To'                          => 'An',
133 125
  'To (email)'                  => 'An',
134 126
  'Transactions, AR transactions, AP transactions' => 'Dialogbuchen, Debitorenrechnungen, Kreditorenrechnungen',
135 127
  'Unknown dependency \'%s\'.'  => 'Unbekannte Abhängigkeit \'%s\'.',
136 128
  'View warehouse content'      => 'Lagerbestand ansehen',
137 129
  'Warehouse management'        => 'Lagerverwaltung/Bestandsver?nderung',
138
  'YYYY'                        => 'JJJJ',
139
  'Year'                        => 'Jahr',
140
  'Yearly'                      => 'j?hrlich',
141 130
  'You do not have the permissions to access this function.' => 'Sie verfügen nicht über die notwendigen Rechte, um auf diese Funktion zuzugreifen.',
142 131
  '[email]'                     => '[email]',
143 132
  'bin_list'                    => 'Lagerliste',
144
  'button'                      => '?',
145 133
  'chart_of_accounts'           => 'kontenuebersicht',
146 134
  'config/authentication.pl: Key "DB_config" is missing.' => 'config/authentication.pl: Das Schlüsselwort "DB_config" fehlt.',
147 135
  'config/authentication.pl: Key "LDAP_config" is missing.' => 'config/authentication.pl: Der Schlüssel "LDAP_config" fehlt.',
......
158 146
  'request_quotation'           => 'Angebotsanforderung',
159 147
  'sales_order'                 => 'Kundenauftrag',
160 148
  'sales_quotation'             => 'Verkaufsangebot',
161
  'wrongformat'                 => 'Falsches Format',
162 149
};
163 150

  
164 151
$self->{subs} = {
locale/de/do
264 264
  'View warehouse content'      => 'Lagerbestand ansehen',
265 265
  'Warehouse management'        => 'Lagerverwaltung/Bestandsver?nderung',
266 266
  'Yes'                         => 'Ja',
267
  'You cannot create an invoice for delivery orders for different customers.' => 'Sie k?nnen keine Rechnung zu Lieferscheinen f?r verschiedene Kunden erstellen.',
268
  'You cannot create an invoice for delivery orders from different vendors.' => 'Sie k?nnen keine Rechnung aus Lieferscheinen von verschiedenen Lieferanten erstellen.',
267 269
  'You do not have the permissions to access this function.' => 'Sie verfügen nicht über die notwendigen Rechte, um auf diese Funktion zuzugreifen.',
270
  'You have not selected any delivery order.' => 'Sie haben keinen Lieferschein ausgew?hlt.',
268 271
  'Zipcode'                     => 'PLZ',
269 272
  '[email]'                     => '[email]',
270 273
  'bin_list'                    => 'Lagerliste',
......
328 331
  'format_dates'                => 'format_dates',
329 332
  'get_basic_bin_wh_info'       => 'get_basic_bin_wh_info',
330 333
  'invoice'                     => 'invoice',
334
  'invoice_multi'               => 'invoice_multi',
331 335
  'invoicetotal'                => 'invoicetotal',
332 336
  'item_selected'               => 'item_selected',
333 337
  'mark_as_paid_common'         => 'mark_as_paid_common',
locale/de/login
339 339
  'Workflow sales_quotation'    => 'Workflow Angebot',
340 340
  'Yes'                         => 'Ja',
341 341
  'You are logged out!'         => 'Auf Wiedersehen!',
342
  'You cannot create an invoice for delivery orders for different customers.' => 'Sie k?nnen keine Rechnung zu Lieferscheinen f?r verschiedene Kunden erstellen.',
343
  'You cannot create an invoice for delivery orders from different vendors.' => 'Sie k?nnen keine Rechnung aus Lieferscheinen von verschiedenen Lieferanten erstellen.',
342 344
  'You did not enter a name!'   => 'Sie haben keinen Namen eingegeben!',
343 345
  'You do not have the permissions to access this function.' => 'Sie verfügen nicht über die notwendigen Rechte, um auf diese Funktion zuzugreifen.',
346
  'You have not selected any delivery order.' => 'Sie haben keinen Lieferschein ausgew?hlt.',
344 347
  'You must chose a user.'      => 'Sie müssen einen Benutzer auswählen.',
345 348
  'Zipcode'                     => 'PLZ',
346 349
  '[email]'                     => '[email]',
......
429 432
  'format_dates'                => 'format_dates',
430 433
  'get_basic_bin_wh_info'       => 'get_basic_bin_wh_info',
431 434
  'invoice'                     => 'invoice',
435
  'invoice_multi'               => 'invoice_multi',
432 436
  'invoicetotal'                => 'invoicetotal',
433 437
  'item_selected'               => 'item_selected',
434 438
  'login'                       => 'login',
locale/de/oe
309 309
  'Workflow sales_order'        => 'Workflow Auftrag',
310 310
  'Workflow sales_quotation'    => 'Workflow Angebot',
311 311
  'Yes'                         => 'Ja',
312
  'You cannot create an invoice for delivery orders for different customers.' => 'Sie k?nnen keine Rechnung zu Lieferscheinen f?r verschiedene Kunden erstellen.',
313
  'You cannot create an invoice for delivery orders from different vendors.' => 'Sie k?nnen keine Rechnung aus Lieferscheinen von verschiedenen Lieferanten erstellen.',
312 314
  'You do not have the permissions to access this function.' => 'Sie verfügen nicht über die notwendigen Rechte, um auf diese Funktion zuzugreifen.',
315
  'You have not selected any delivery order.' => 'Sie haben keinen Lieferschein ausgew?hlt.',
313 316
  'Zipcode'                     => 'PLZ',
314 317
  '[email]'                     => '[email]',
315 318
  'bin_list'                    => 'Lagerliste',
......
390 393
  'format_dates'                => 'format_dates',
391 394
  'get_basic_bin_wh_info'       => 'get_basic_bin_wh_info',
392 395
  'invoice'                     => 'invoice',
396
  'invoice_multi'               => 'invoice_multi',
393 397
  'invoicetotal'                => 'invoicetotal',
394 398
  'item_selected'               => 'item_selected',
395 399
  'mark_as_paid_common'         => 'mark_as_paid_common',
locale/de/todo
333 333
  'Workflow sales_order'        => 'Workflow Auftrag',
334 334
  'Workflow sales_quotation'    => 'Workflow Angebot',
335 335
  'Yes'                         => 'Ja',
336
  'You cannot create an invoice for delivery orders for different customers.' => 'Sie k?nnen keine Rechnung zu Lieferscheinen f?r verschiedene Kunden erstellen.',
337
  'You cannot create an invoice for delivery orders from different vendors.' => 'Sie k?nnen keine Rechnung aus Lieferscheinen von verschiedenen Lieferanten erstellen.',
336 338
  'You do not have the permissions to access this function.' => 'Sie verfügen nicht über die notwendigen Rechte, um auf diese Funktion zuzugreifen.',
339
  'You have not selected any delivery order.' => 'Sie haben keinen Lieferschein ausgew?hlt.',
337 340
  'You must chose a user.'      => 'Sie müssen einen Benutzer auswählen.',
338 341
  'Zipcode'                     => 'PLZ',
339 342
  '[email]'                     => '[email]',
......
421 424
  'format_dates'                => 'format_dates',
422 425
  'get_basic_bin_wh_info'       => 'get_basic_bin_wh_info',
423 426
  'invoice'                     => 'invoice',
427
  'invoice_multi'               => 'invoice_multi',
424 428
  'invoicetotal'                => 'invoicetotal',
425 429
  'item_selected'               => 'item_selected',
426 430
  'mark_as_paid_common'         => 'mark_as_paid_common',
templates/webpages/do/orders_bottom_de.html
1
[% USE HTML %]
2
 Neue Rechnung<br>
3
 <input class="submit" type="submit" name="action" value="Weiter">
4
 <input type="hidden" name="nextsub" value="invoice_multi">
5
 <input type="hidden" name="type" value="[% HTML.escape(type) %]">
6
 <input type="hidden" name="vc" value="[% HTML.escape(vc) %]">
7
 <input type="hidden" name="callback" value="[% HTML.escape(callback) %]">
8
 <input type="hidden" name="rowcount" value="[% HTML.escape(rowcount) %]">
9
</form>
templates/webpages/do/orders_bottom_master.html
1
[% USE HTML %]
2
 <translate>New invoice</translate><br>
3
 <input class="submit" type="submit" name="action" value="<translate>Continue</translate>">
4
 <input type="hidden" name="nextsub" value="invoice_multi">
5
 <input type="hidden" name="type" value="[% HTML.escape(type) %]">
6
 <input type="hidden" name="vc" value="[% HTML.escape(vc) %]">
7
 <input type="hidden" name="callback" value="[% HTML.escape(callback) %]">
8
 <input type="hidden" name="rowcount" value="[% HTML.escape(rowcount) %]">
9
</form>
templates/webpages/do/orders_top_de.html
1
<form method="post" action="do.pl">
templates/webpages/do/orders_top_master.html
1
<form method="post" action="do.pl">

Auch abrufbar als: Unified diff