Revision 454df69e
Von Moritz Bunkus vor mehr als 16 Jahren hinzugefügt
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
Erstellen von Rechnungen aus mehreren Lieferscheinen heraus.