Revision 92331b8e
Von Moritz Bunkus vor fast 14 Jahren hinzugefügt
SL/Form.pm | ||
---|---|---|
48 | 48 |
use SL::Auth::DB; |
49 | 49 |
use SL::Auth::LDAP; |
50 | 50 |
use SL::AM; |
51 |
use SL::DB; |
|
51 | 52 |
use SL::Common; |
52 | 53 |
use SL::DBUtils; |
53 | 54 |
use SL::Mailer; |
... | ... | |
1580 | 1581 |
undef $standard_dbh; |
1581 | 1582 |
} |
1582 | 1583 |
|
1583 |
$standard_dbh ||= $self->dbconnect_noauto($myconfig);
|
|
1584 |
$standard_dbh ||= SL::DB::create->dbh;
|
|
1584 | 1585 |
|
1585 | 1586 |
$main::lxdebug->leave_sub(2); |
1586 | 1587 |
|
SL/OE.pm | ||
---|---|---|
35 | 35 |
package OE; |
36 | 36 |
|
37 | 37 |
use List::Util qw(max first); |
38 |
use YAML; |
|
39 |
|
|
38 | 40 |
use SL::AM; |
39 | 41 |
use SL::Common; |
40 | 42 |
use SL::CVar; |
43 |
use SL::DB::PeriodicInvoicesConfig; |
|
41 | 44 |
use SL::DBUtils; |
42 | 45 |
use SL::IC; |
43 | 46 |
|
... | ... | |
58 | 61 |
my @values; |
59 | 62 |
my $where; |
60 | 63 |
|
64 |
my ($periodic_invoices_columns, $periodic_invoices_joins); |
|
65 |
|
|
61 | 66 |
my $rate = ($form->{vc} eq 'customer') ? 'buy' : 'sell'; |
62 | 67 |
|
63 | 68 |
if ($form->{type} =~ /_quotation$/) { |
64 | 69 |
$quotation = '1'; |
65 | 70 |
$ordnumber = 'quonumber'; |
71 |
|
|
72 |
} elsif ($form->{type} eq 'sales_order') { |
|
73 |
$periodic_invoices_columns = qq| , COALESCE(pcfg.active, 'f') AS periodic_invoices |; |
|
74 |
$periodic_invoices_joins = qq| LEFT JOIN periodic_invoices_configs pcfg ON (o.id = pcfg.oe_id) |; |
|
66 | 75 |
} |
67 | 76 |
|
68 | 77 |
my $vc = $form->{vc} eq "customer" ? "customer" : "vendor"; |
... | ... | |
77 | 86 |
qq| pr.projectnumber AS globalprojectnumber, | . |
78 | 87 |
qq| e.name AS employee, s.name AS salesman, | . |
79 | 88 |
qq| ct.${vc}number AS vcnumber, ct.country, ct.ustid | . |
89 |
$periodic_invoices_columns . |
|
80 | 90 |
qq|FROM oe o | . |
81 | 91 |
qq|JOIN $vc ct ON (o.${vc}_id = ct.id) | . |
82 | 92 |
qq|LEFT JOIN employee e ON (o.employee_id = e.id) | . |
... | ... | |
84 | 94 |
qq|LEFT JOIN exchangerate ex ON (ex.curr = o.curr | . |
85 | 95 |
qq| AND ex.transdate = o.transdate) | . |
86 | 96 |
qq|LEFT JOIN project pr ON (o.globalproject_id = pr.id) | . |
97 |
qq|$periodic_invoices_joins | . |
|
87 | 98 |
qq|WHERE (o.quotation = ?) |; |
88 | 99 |
push(@values, $quotation); |
89 | 100 |
|
... | ... | |
178 | 189 |
push(@values, '%' . $form->{transaction_description} . '%'); |
179 | 190 |
} |
180 | 191 |
|
192 |
if ($form->{periodic_invoices_active} ne $form->{periodic_invoices_inactive}) { |
|
193 |
my $not = 'NOT' if ($form->{periodic_invoices_inactive}); |
|
194 |
$query .= qq| AND ${not} COALESCE(pcfg.active, 'f')|; |
|
195 |
} |
|
196 |
|
|
181 | 197 |
my $sortdir = !defined $form->{sortdir} ? 'ASC' : $form->{sortdir} ? 'ASC' : 'DESC'; |
182 | 198 |
my $sortorder = join(', ', map { "${_} ${sortdir} " } ("o.id", $form->sort_columns("transdate", $ordnumber, "name"))); |
183 | 199 |
my %allowed_sort_columns = ( |
... | ... | |
259 | 275 |
my ($self, $myconfig, $form) = @_; |
260 | 276 |
|
261 | 277 |
# connect to database, turn off autocommit |
262 |
my $dbh = $form->dbconnect_noauto($myconfig);
|
|
278 |
my $dbh = $form->get_standard_dbh;
|
|
263 | 279 |
|
264 | 280 |
my ($query, @values, $sth, $null); |
265 | 281 |
my $exchangerate = 0; |
... | ... | |
543 | 559 |
} |
544 | 560 |
} |
545 | 561 |
|
562 |
$self->save_periodic_invoices_config(dbh => $dbh, |
|
563 |
oe_id => $form->{id}, |
|
564 |
config_yaml => $form->{periodic_invoices_config}) |
|
565 |
if ($form->{type} eq 'sales_order'); |
|
566 |
|
|
546 | 567 |
$form->{saved_xyznumber} = $form->{$form->{type} =~ /_quotation$/ ? |
547 | 568 |
"quonumber" : "ordnumber"}; |
548 | 569 |
|
549 | 570 |
Common::webdav_folder($form) if ($main::webdav); |
550 | 571 |
|
551 | 572 |
my $rc = $dbh->commit; |
552 |
$dbh->disconnect; |
|
553 | 573 |
|
554 | 574 |
$main::lxdebug->leave_sub(); |
555 | 575 |
|
556 | 576 |
return $rc; |
557 | 577 |
} |
558 | 578 |
|
579 |
sub save_periodic_invoices_config { |
|
580 |
my ($self, %params) = @_; |
|
581 |
|
|
582 |
return if !$params{oe_id}; |
|
583 |
|
|
584 |
my $config = $params{config_yaml} ? YAML::Load($params{config_yaml}) : undef; |
|
585 |
return if 'HASH' ne ref $config; |
|
586 |
|
|
587 |
my $obj = SL::DB::Manager::PeriodicInvoicesConfig->find_by(oe_id => $params{oe_id}) |
|
588 |
|| SL::DB::PeriodicInvoicesConfig->new(oe_id => $params{oe_id}); |
|
589 |
$obj->update_attributes(%{ $config }); |
|
590 |
} |
|
591 |
|
|
559 | 592 |
sub _close_quotations_rfqs { |
560 | 593 |
$main::lxdebug->enter_sub(); |
561 | 594 |
|
... | ... | |
628 | 661 |
# delete-values |
629 | 662 |
@values = (conv_i($form->{id})); |
630 | 663 |
|
664 |
# periodic invoices and their configuration |
|
665 |
do_query($form, $dbh, qq|DELETE FROM periodic_invoices WHERE config_id IN (SELECT id FROM periodic_invoices_configs WHERE oe_id = ?)|, @values); |
|
666 |
do_query($form, $dbh, qq|DELETE FROM periodic_invoices_configs WHERE oe_id = ?|, @values); |
|
667 |
|
|
631 | 668 |
# delete status entries |
632 | 669 |
$query = qq|DELETE FROM status | . |
633 | 670 |
qq|WHERE trans_id = ?|; |
... | ... | |
928 | 965 |
} |
929 | 966 |
$sth->finish; |
930 | 967 |
|
968 |
delete $form->{periodic_invoices_config}; |
|
969 |
if ($form->{id} && ($form->{type} eq 'sales_order')) { |
|
970 |
$query = qq|SELECT periodicity, start_date, print, printer_id, copies, active, ar_chart_id FROM periodic_invoices_configs WHERE oe_id = ? LIMIT 1|; |
|
971 |
$ref = selectfirst_hashref_query($form, $dbh, $query, conv_i($form->{id})); |
|
972 |
|
|
973 |
$form->{periodic_invoices_config} = YAML::Dump($ref) if ($ref); |
|
974 |
} |
|
975 |
|
|
931 | 976 |
} else { |
932 | 977 |
|
933 | 978 |
# get last name used |
... | ... | |
941 | 986 |
Common::webdav_folder($form) if ($main::webdav); |
942 | 987 |
|
943 | 988 |
my $rc = $dbh->commit; |
944 |
$dbh->disconnect; |
|
945 | 989 |
|
946 | 990 |
$main::lxdebug->leave_sub(); |
947 | 991 |
|
bin/mozilla/oe.pl | ||
---|---|---|
41 | 41 |
use SL::MoreCommon qw(ary_diff); |
42 | 42 |
use SL::PE; |
43 | 43 |
use SL::ReportGenerator; |
44 |
use List::MoreUtils qw(any none); |
|
44 | 45 |
use List::Util qw(max reduce sum); |
45 | 46 |
use Data::Dumper; |
46 | 47 |
|
... | ... | |
396 | 397 |
$onload .= qq|;setupPoints('|. $myconfig{numberformat} .qq|', '|. $locale->text("wrongformat") .qq|')|; |
397 | 398 |
$TMPL_VAR{onload} = $onload; |
398 | 399 |
|
400 |
if ($form->{type} eq 'sales_order') { |
|
401 |
if (!$form->{periodic_invoices_config}) { |
|
402 |
$form->{periodic_invoices_status} = $locale->text('not configured'); |
|
403 |
|
|
404 |
} else { |
|
405 |
my $config = YAML::Load($form->{periodic_invoices_config}); |
|
406 |
$form->{periodic_invoices_status} = $config->{active} ? $locale->text('active') : $locale->text('inactive'); |
|
407 |
} |
|
408 |
} |
|
409 |
|
|
399 | 410 |
$form->{javascript} .= qq|<script type="text/javascript" src="js/show_form_details.js"></script>|; |
400 | 411 |
$form->{javascript} .= qq|<script type="text/javascript" src="js/show_history.js"></script>|; |
401 | 412 |
$form->{javascript} .= qq|<script type="text/javascript" src="js/show_vc_details.js"></script>|; |
... | ... | |
747 | 758 |
"salesman", |
748 | 759 |
"shipvia", "globalprojectnumber", |
749 | 760 |
"transaction_description", "open", |
750 |
"delivered", "marge_total", "marge_percent", |
|
761 |
"delivered", "periodic_invoices", |
|
762 |
"marge_total", "marge_percent", |
|
751 | 763 |
"vcnumber", "ustid", |
752 | 764 |
"country", |
753 | 765 |
); |
... | ... | |
758 | 770 |
unshift @columns, "ids"; |
759 | 771 |
} |
760 | 772 |
|
761 |
$form->{l_open} = $form->{l_closed} = "Y" if ($form->{open} && $form->{closed}); |
|
762 |
$form->{l_delivered} = "Y" if ($form->{delivered} && $form->{notdelivered}); |
|
773 |
$form->{l_open} = $form->{l_closed} = "Y" if ($form->{open} && $form->{closed}); |
|
774 |
$form->{l_delivered} = "Y" if ($form->{delivered} && $form->{notdelivered}); |
|
775 |
$form->{l_periodic_invoices} = "Y" if ($form->{periodic_invoices_active} && $form->{periodic_invoices_inactive}); |
|
763 | 776 |
|
764 | 777 |
my $attachment_basename; |
765 | 778 |
if ($form->{vc} eq 'vendor') { |
... | ... | |
786 | 799 |
my @hidden_variables = map { "l_${_}" } @columns; |
787 | 800 |
push @hidden_variables, "l_subtotal", $form->{vc}, qw(l_closed l_notdelivered open closed delivered notdelivered ordnumber quonumber |
788 | 801 |
transaction_description transdatefrom transdateto type vc employee_id salesman_id |
789 |
reqdatefrom reqdateto projectnumber project_id); |
|
802 |
reqdatefrom reqdateto projectnumber project_id periodic_invoices_active periodic_invoices_inactive);
|
|
790 | 803 |
|
791 | 804 |
my $href = build_std_url('action=orders', grep { $form->{$_} } @hidden_variables); |
792 | 805 |
|
... | ... | |
814 | 827 |
'vcnumber' => { 'text' => $form->{vc} eq 'customer' ? $locale->text('Customer Number') : $locale->text('Vendor Number'), }, |
815 | 828 |
'country' => { 'text' => $locale->text('Country'), }, |
816 | 829 |
'ustid' => { 'text' => $locale->text('USt-IdNr.'), }, |
830 |
'periodic_invoices' => { 'text' => $locale->text('Per. Inv.'), }, |
|
817 | 831 |
); |
818 | 832 |
|
819 | 833 |
foreach my $name (qw(id transdate reqdate quonumber ordnumber name employee salesman shipvia transaction_description)) { |
... | ... | |
855 | 869 |
push @options, $locale->text('Closed') if $form->{closed}; |
856 | 870 |
push @options, $locale->text('Delivered') if $form->{delivered}; |
857 | 871 |
push @options, $locale->text('Not delivered') if $form->{notdelivered}; |
872 |
push @options, $locale->text('Periodic invoices active') if $form->{periodic_invoices_actibe}; |
|
858 | 873 |
|
859 | 874 |
$report->set_options('top_info_text' => join("\n", @options), |
860 | 875 |
'raw_top_info_text' => $form->parse_html_template('oe/orders_top'), |
... | ... | |
884 | 899 |
foreach my $oe (@{ $form->{OE} }) { |
885 | 900 |
map { $oe->{$_} *= $oe->{exchangerate} } @subtotal_columns; |
886 | 901 |
|
887 |
$oe->{tax} = $oe->{amount} - $oe->{netamount}; |
|
888 |
$oe->{open} = $oe->{closed} ? $locale->text('No') : $locale->text('Yes'); |
|
889 |
$oe->{delivered} = $oe->{delivered} ? $locale->text('Yes') : $locale->text('No'); |
|
902 |
$oe->{tax} = $oe->{amount} - $oe->{netamount}; |
|
903 |
$oe->{open} = $oe->{closed} ? $locale->text('No') : $locale->text('Yes'); |
|
904 |
$oe->{delivered} = $oe->{delivered} ? $locale->text('Yes') : $locale->text('No'); |
|
905 |
$oe->{periodic_invoices} = $oe->{periodic_invoices} ? $locale->text('On') : $locale->text('Off'); |
|
890 | 906 |
|
891 | 907 |
map { $subtotals{$_} += $oe->{$_}; |
892 | 908 |
$totals{$_} += $oe->{$_} } @subtotal_columns; |
... | ... | |
1936 | 1952 |
return $content; |
1937 | 1953 |
} |
1938 | 1954 |
|
1955 |
sub edit_periodic_invoices_config { |
|
1956 |
$::lxdebug->enter_sub(); |
|
1957 |
|
|
1958 |
$::form->{type} = 'sales_order'; |
|
1959 |
|
|
1960 |
check_oe_access(); |
|
1961 |
|
|
1962 |
my $config; |
|
1963 |
$config = YAML::Load($::form->{periodic_invoices_config}) if $::form->{periodic_invoices_config}; |
|
1964 |
|
|
1965 |
if ('HASH' ne ref $config) { |
|
1966 |
$config = { |
|
1967 |
periodicity => 'm', |
|
1968 |
start_date => $::form->{transdate}, |
|
1969 |
active => 1, |
|
1970 |
}; |
|
1971 |
} |
|
1972 |
|
|
1973 |
$config->{periodicity} = 'm' if none { $_ eq $config->{periodicity} } qw(m q y); |
|
1974 |
|
|
1975 |
$::form->get_lists(printers => "ALL_PRINTERS", |
|
1976 |
charts => { key => 'ALL_CHARTS', |
|
1977 |
transdate => 'current_date' }); |
|
1978 |
|
|
1979 |
$::form->{AR} = [ grep { $_->{link} =~ m/(?:^|:)AR(?::|$)/ } @{ $::form->{ALL_CHARTS} } ]; |
|
1980 |
$::form->{title} = $::locale->text('Edit the configuration for periodic invoices'); |
|
1981 |
|
|
1982 |
$::form->header(); |
|
1983 |
print $::form->parse_html_template('oe/edit_periodic_invoices_config', $config); |
|
1984 |
|
|
1985 |
$::lxdebug->leave_sub(); |
|
1986 |
} |
|
1987 |
|
|
1988 |
sub save_periodic_invoices_config { |
|
1989 |
$::lxdebug->enter_sub(); |
|
1990 |
|
|
1991 |
$::form->{type} = 'sales_order'; |
|
1992 |
|
|
1993 |
check_oe_access(); |
|
1994 |
|
|
1995 |
$::form->isblank('start_date', $::locale->text('The start date is missing.')); |
|
1996 |
|
|
1997 |
my $config = { active => $::form->{active} ? 1 : 0, |
|
1998 |
periodicity => (any { $_ eq $::form->{periodicity} } qw(m q y)) ? $::form->{periodicity} : 'm', |
|
1999 |
start_date => $::form->{start_date}, |
|
2000 |
print => $::form->{print} ? 1 : 0, |
|
2001 |
printer_id => $::form->{print} ? $::form->{printer_id} * 1 : undef, |
|
2002 |
copies => $::form->{copies} * 1 ? $::form->{copies} : 1, |
|
2003 |
ar_chart_id => $::form->{ar_chart_id} * 1, |
|
2004 |
}; |
|
2005 |
|
|
2006 |
$::form->{periodic_invoices_config} = YAML::Dump($config); |
|
2007 |
|
|
2008 |
$::form->{title} = $::locale->text('Edit the configuration for periodic invoices'); |
|
2009 |
$::form->header; |
|
2010 |
print $::form->parse_html_template('oe/save_periodic_invoices_config', $config); |
|
2011 |
|
|
2012 |
$::lxdebug->leave_sub(); |
|
2013 |
} |
|
2014 |
|
|
1939 | 2015 |
sub dispatcher { |
1940 | 2016 |
my $form = $main::form; |
1941 | 2017 |
my $locale = $main::locale; |
js/edit_periodic_invoices_config.js | ||
---|---|---|
1 |
function edit_periodic_invoices_config() { |
|
2 |
var width = 750; |
|
3 |
var height = 550; |
|
4 |
var parm = centerParms(width, height) + ",width=" + width + ",height=" + height + ",status=yes,scrollbars=yes"; |
|
5 |
|
|
6 |
var config = $('#periodic_invoices_config').attr('value'); |
|
7 |
var transdate = $('#transdate').attr('value'); |
|
8 |
|
|
9 |
var url = "oe.pl?" + |
|
10 |
"action=edit_periodic_invoices_config&" + |
|
11 |
"periodic_invoices_config=" + encodeURIComponent(config) + "&" + |
|
12 |
"transdate=" + encodeURIComponent(transdate); |
|
13 |
|
|
14 |
// alert(url); |
|
15 |
window.open(url, "_new_generic", parm); |
|
16 |
} |
locale/de/all | ||
---|---|---|
382 | 382 |
'Company Name' => 'Firmenname', |
383 | 383 |
'Compare to' => 'Gegenüberstellen zu', |
384 | 384 |
'Configuration of individual TODO items' => 'Konfiguration für die einzelnen Aufgabenlistenpunkte', |
385 |
'Configure' => 'Konfigurieren', |
|
385 | 386 |
'Confirm' => 'Bestätigen', |
386 | 387 |
'Confirm!' => 'Bestätigen Sie!', |
387 | 388 |
'Confirmation' => 'Auftragsbestätigung', |
... | ... | |
675 | 676 |
'Edit rights' => 'Rechte bearbeiten', |
676 | 677 |
'Edit templates' => 'Vorlagen bearbeiten', |
677 | 678 |
'Edit the Delivery Order' => 'Lieferschein bearbeiten', |
679 |
'Edit the configuration for periodic invoices' => 'Konfiguration für wiederkehrende Rechnungen bearbeiten', |
|
678 | 680 |
'Edit the membership of all users in all groups:' => 'Bearbeiten der Mitgliedschaft aller Benutzer in allen Gruppen:', |
679 | 681 |
'Edit the purchase_order' => 'Bearbeiten des Lieferantenauftrags', |
680 | 682 |
'Edit the request_quotation' => 'Bearbeiten der Preisanfrage', |
... | ... | |
1198 | 1200 |
'Payment posted!' => 'Zahlung gebucht!', |
1199 | 1201 |
'Payment terms deleted!' => 'Zahlungskonditionen gelöscht!', |
1200 | 1202 |
'Payments' => 'Zahlungsausgänge', |
1203 |
'Per. Inv.' => 'Wied. Rech.', |
|
1201 | 1204 |
'Period' => 'Zeitraum', |
1202 | 1205 |
'Period:' => 'Zeitraum:', |
1206 |
'Periodic Invoices' => 'Wiederkehrende Rechnungen', |
|
1207 |
'Periodic invoices active' => 'Wiederkehrende Rechnungen aktiv', |
|
1208 |
'Periodic invoices inactive' => 'Wiederkehrende Rechnungen inaktiv', |
|
1209 |
'Periodicity' => 'Periodizität', |
|
1203 | 1210 |
'Personal settings' => 'Persönliche Einstellungen', |
1204 | 1211 |
'Pg Database Administration' => 'Datenbankadministration', |
1205 | 1212 |
'Phone' => 'Telefon', |
... | ... | |
1265 | 1272 |
'Pricegroups' => 'Preisgruppen', |
1266 | 1273 |
'Print' => 'Drucken', |
1267 | 1274 |
'Print and Post' => 'Drucken und Buchen', |
1275 |
'Print automatically' => 'Automatisch ausdrucken', |
|
1268 | 1276 |
'Print dunnings' => 'Mahnungen drucken', |
1269 | 1277 |
'Print list' => 'Liste ausdrucken', |
1270 | 1278 |
'Print options' => 'Druckoptionen', |
... | ... | |
1500 | 1508 |
'Spoolfile' => 'Druckdatei', |
1501 | 1509 |
'Start Dunning Process' => 'Mahnprozess starten', |
1502 | 1510 |
'Start analysis' => 'Analyse beginnen', |
1511 |
'Start date' => 'Startdatum', |
|
1503 | 1512 |
'Start the correction assistant' => 'Korrekturassistenten starten', |
1504 | 1513 |
'Startdate_coa' => 'Gültig ab', |
1505 | 1514 |
'Starting Balance' => 'Eröffnungsbilanzwerte', |
... | ... | |
1685 | 1694 |
'The selected warehouse is empty.' => 'Das ausgewählte Lager ist leer.', |
1686 | 1695 |
'The session is invalid or has expired.' => 'Sie sind von Lx-Office abgemeldet.', |
1687 | 1696 |
'The source warehouse does not contain any bins.' => 'Das Quelllager enthält keine Lagerplätze.', |
1697 |
'The start date is missing.' => 'Das Startdatum fehlt.', |
|
1688 | 1698 |
'The subject is missing.' => 'Der Betreff fehlt.', |
1689 | 1699 |
'The tables for user management and authentication do not exist. They will be created in the next step in the following database:' => 'Die Tabellen zum Speichern der Benutzerdaten und zur Benutzerauthentifizierung wurden nicht gefunden. Sie werden in der folgenden Datenbank angelegt:', |
1690 | 1700 |
'The tabulator character' => 'Das Tabulator-Symbol', |
... | ... | |
1945 | 1955 |
'[email]' => '[email]', |
1946 | 1956 |
'account_description' => 'Beschreibung', |
1947 | 1957 |
'accrual' => 'Bilanzierung (Soll-Versteuerung)', |
1958 |
'active' => 'aktiv', |
|
1948 | 1959 |
'all entries' => 'alle Einträge', |
1949 | 1960 |
'ap_aging_list' => 'liste_offene_verbindlichkeiten', |
1950 | 1961 |
'ar_aging_list' => 'liste_offene_forderungen', |
... | ... | |
1999 | 2010 |
'general_ledger_list' => 'buchungsjournal', |
2000 | 2011 |
'history' => 'Historie', |
2001 | 2012 |
'history search engine' => 'Historien Suchmaschine', |
2013 |
'inactive' => 'inaktiv', |
|
2002 | 2014 |
'invoice' => 'Rechnung', |
2003 | 2015 |
'invoice_list' => 'debitorenbuchungsliste', |
2004 | 2016 |
'lead deleted!' => 'Kundenquelle gelöscht', |
... | ... | |
2012 | 2024 |
'mark as paid' => 'als bezahlt markieren', |
2013 | 2025 |
'missing' => 'Fehlbestand', |
2014 | 2026 |
'month' => 'Monatliche Abgabe', |
2027 |
'monthly' => 'monatlich', |
|
2015 | 2028 |
'new Window' => 'neues Fenster', |
2016 | 2029 |
'no' => 'nein', |
2017 | 2030 |
'no bestbefore' => 'keine Mindesthaltbarkeit', |
2018 | 2031 |
'no chargenumber' => 'keine Chargennummer', |
2019 | 2032 |
'none (pricegroup)' => 'keine', |
2033 |
'not configured' => 'nicht konfiguriert', |
|
2020 | 2034 |
'not executed' => 'nicht ausgeführt', |
2021 | 2035 |
'not transferred in yet' => 'noch nicht eingelagert', |
2022 | 2036 |
'not transferred out yet' => 'noch nicht ausgelagert', |
... | ... | |
2041 | 2055 |
'purchase_order' => 'Auftrag', |
2042 | 2056 |
'purchase_order_list' => 'lieferantenauftragsliste', |
2043 | 2057 |
'quarter' => 'Vierteljährliche (quartalsweise) Abgabe', |
2058 |
'quarterly' => 'quartalsweise', |
|
2044 | 2059 |
'quotation_list' => 'angebotsliste', |
2045 | 2060 |
'release_material' => 'Materialausgabebe', |
2046 | 2061 |
'report_generator_dispatch_to is not defined.' => 'report_generator_dispatch_to ist nicht definiert.', |
... | ... | |
2086 | 2101 |
'warehouse_journal_list' => 'lagerbuchungsliste', |
2087 | 2102 |
'warehouse_report_list' => 'lagerbestandsliste', |
2088 | 2103 |
'wrongformat' => 'Falsches Format', |
2104 |
'yearly' => 'jährlich', |
|
2089 | 2105 |
'yes' => 'ja', |
2090 | 2106 |
}; |
2091 | 2107 |
|
templates/webpages/oe/edit_periodic_invoices_config.html | ||
---|---|---|
1 |
[% USE HTML %] |
|
2 |
[% USE LxERP %] |
|
3 |
[% USE L %] |
|
4 |
<body> |
|
5 |
|
|
6 |
<div class="listtop">[% title %]</div> |
|
7 |
|
|
8 |
<form name="Form" action="oe.pl" method="post"> |
|
9 |
|
|
10 |
<p> |
|
11 |
<table border="0"> |
|
12 |
<tr> |
|
13 |
<th align="right">[%- LxERP.t8('Active') %]</th> |
|
14 |
<td>[% L.checkbox_tag("active", checked => active) %]</td> |
|
15 |
</tr> |
|
16 |
|
|
17 |
<tr> |
|
18 |
<th align="right" valign="top">[%- LxERP.t8('Periodicity') %]</th> |
|
19 |
<td valign="top"> |
|
20 |
[% L.radio_button_tag("periodicity", value => "m", label => LxERP.t8("monthly"), checked => periodicity == 'm') %] |
|
21 |
<br> |
|
22 |
[% L.radio_button_tag("periodicity", value => "q", label => LxERP.t8("quarterly"), checked => periodicity == 'q') %] |
|
23 |
<br> |
|
24 |
[% L.radio_button_tag("periodicity", value => "y", label => LxERP.t8("yearly"), checked => periodicity == 'y') %] |
|
25 |
</td> |
|
26 |
</tr> |
|
27 |
|
|
28 |
<tr> |
|
29 |
<th align="right">[%- LxERP.t8('Start date') %]</th> |
|
30 |
<td valign="top"> |
|
31 |
[% L.date_tag("start_date", start_date) %] |
|
32 |
</td> |
|
33 |
</tr> |
|
34 |
|
|
35 |
<tr> |
|
36 |
<th align="right">[%- LxERP.t8('Record in') %]</th> |
|
37 |
<td valign="top"> |
|
38 |
[% L.select_tag("ar_chart_id", L.options_for_select(AR, title => 'description', default => ar_chart_id)) %] |
|
39 |
</td> |
|
40 |
</tr> |
|
41 |
|
|
42 |
<tr> |
|
43 |
<th align="right">[%- LxERP.t8('Print automatically') %]</th> |
|
44 |
<td valign="top"> |
|
45 |
[% L.checkbox_tag("print", onclick => "toggle_printer_id_ctrl()", checked => print) %] |
|
46 |
</td> |
|
47 |
</tr> |
|
48 |
|
|
49 |
<tr> |
|
50 |
<th align="right">[%- LxERP.t8('Printer') %]</th> |
|
51 |
<td valign="top"> |
|
52 |
[% L.select_tag("printer_id", L.options_for_select(ALL_PRINTERS, title => 'printer_description', default => printer_id), disabled => !print) %] |
|
53 |
</td> |
|
54 |
</tr> |
|
55 |
|
|
56 |
<tr> |
|
57 |
<th align="right">[%- LxERP.t8('Copies') %]</th> |
|
58 |
<td valign="top">[% L.input_tag("copies", copies, size => 6, disabled => !print) %]</td> |
|
59 |
</tr> |
|
60 |
</table> |
|
61 |
</p> |
|
62 |
|
|
63 |
[% L.hidden_tag('action', 'save_periodic_invoices_config') %] |
|
64 |
|
|
65 |
<p> |
|
66 |
[% L.submit_tag('', LxERP.t8('Close')) %] |
|
67 |
[% L.submit_tag('', LxERP.t8('Cancel'), onclick => "self.close(); return false;") %] |
|
68 |
</p> |
|
69 |
</form> |
|
70 |
|
|
71 |
<script type="text/javascript"> |
|
72 |
<!-- |
|
73 |
function toggle_printer_id_ctrl() { |
|
74 |
var disabled = !$('#print').attr('checked'); |
|
75 |
$('#printer_id').attr('disabled', disabled); |
|
76 |
$('#copies').attr('disabled', disabled); |
|
77 |
} |
|
78 |
--> |
|
79 |
</script> |
|
80 |
|
|
81 |
</body> |
|
82 |
</html> |
templates/webpages/oe/form_footer.html | ||
---|---|---|
1 | 1 |
[%- USE T8 %] |
2 | 2 |
[%- USE HTML %] |
3 | 3 |
[%- USE LxERP %] |
4 |
[%- USE L %] |
|
4 | 5 |
<tr> |
5 | 6 |
<td> |
6 | 7 |
<table width="100%"> |
... | ... | |
27 | 28 |
show_empty = 1 -%] |
28 | 29 |
</td> |
29 | 30 |
</tr> |
31 |
|
|
32 |
[%- IF is_sales_ord %] |
|
33 |
<tr> |
|
34 |
<th align="right">[%- LxERP.t8('Periodic Invoices') %]</th> |
|
35 |
<td> |
|
36 |
[% L.button_tag("edit_periodic_invoices_config(); return false;", LxERP.t8('Configure')) %] |
|
37 |
([% HTML.escape(periodic_invoices_status) %]) |
|
38 |
[% L.hidden_tag("periodic_invoices_config", periodic_invoices_config) %] |
|
39 |
</td> |
|
40 |
</tr> |
|
41 |
[%- END %] |
|
42 |
|
|
30 | 43 |
[%- IF id && num_follow_ups %] |
31 | 44 |
<tr> |
32 | 45 |
<td colspan="2">[% LxERP.t8('There are #1 unfinished follow-ups of which #2 are due.', num_follow_ups, num_due_follow_ups) %]</td> |
templates/webpages/oe/form_header.html | ||
---|---|---|
1 | 1 |
[%- USE T8 %] |
2 | 2 |
[%- USE HTML %] |
3 | 3 |
[%- USE LxERP %] |
4 |
[%- USE L %] |
|
4 | 5 |
<body onLoad="[% onload %]"> |
5 | 6 |
|
6 | 7 |
<form method="post" name="oe" action="[% script %]"> |
... | ... | |
11 | 12 |
<script type="text/javascript" src="js/calculate_qty.js"></script> |
12 | 13 |
<script type="text/javascript" src="js/customer_or_vendor_selection.js"></script> |
13 | 14 |
<script type="text/javascript" src="js/follow_up.js"></script> |
15 |
[%- IF is_sales_ord %] |
|
16 |
[% L.javascript_tag("js/edit_periodic_invoices_config") %] |
|
17 |
[%- END %] |
|
14 | 18 |
|
15 | 19 |
[%- FOREACH row = HIDDENS %] |
16 | 20 |
<input type="hidden" name="[% HTML.escape(row.name) %]" value="[% HTML.escape(row.value) %]" > |
templates/webpages/oe/save_periodic_invoices_config.html | ||
---|---|---|
1 |
[% USE HTML %] |
|
2 |
[% USE L %] |
|
3 |
<body onload="copy_values_and_close()"> |
|
4 |
|
|
5 |
<script type="text/javascript"> |
|
6 |
<!-- |
|
7 |
function copy_values_and_close() { |
|
8 |
window.opener.document.getElementsByName("periodic_invoices_config")[0].value = $("#periodic_invoices_config").attr('value'); |
|
9 |
window.close(); |
|
10 |
} |
|
11 |
--> |
|
12 |
</script> |
|
13 |
|
|
14 |
<form name="Form"> |
|
15 |
[% L.hidden_tag("periodic_invoices_config", periodic_invoices_config) %] |
|
16 |
</form> |
|
17 |
|
|
18 |
</body> |
|
19 |
</html> |
templates/webpages/oe/search.html | ||
---|---|---|
1 | 1 |
[%- USE HTML %] |
2 | 2 |
[%- USE T8 %] |
3 | 3 |
[%- USE LxERP %] |
4 |
[%- USE L %] |
|
4 | 5 |
[%- SET vclabel = vc == 'customer' ? LxERP.t8('Customer') : LxERP.t8('Vendor') %] |
5 | 6 |
[%- SET vcnumberlabel = vc == 'customer' ? LxERP.t8('Customer Number') : LxERP.t8('Vendor Number') %] |
6 | 7 |
<body> |
... | ... | |
150 | 151 |
<label for="delivered">[% 'Delivered' | $T8 %]</label> |
151 | 152 |
</td> |
152 | 153 |
</tr> |
154 |
[%- END %] |
|
155 |
[%- IF type == 'sales_order' %] |
|
156 |
<tr> |
|
157 |
<td> |
|
158 |
[% L.checkbox_tag("periodic_invoices_active", label => LxERP.t8("Periodic invoices active")) %] |
|
159 |
</td> |
|
160 |
<td> |
|
161 |
[% L.checkbox_tag("periodic_invoices_inactive", label => LxERP.t8("Periodic invoices inactive")) %] |
|
162 |
</td> |
|
163 |
</tr> |
|
153 | 164 |
[%- END %] |
154 | 165 |
<tr> |
155 | 166 |
<td> |
Auch abrufbar als: Unified diff
Bearbeiten der Konfiguration für wiederkehrende Rechnungen implementiert
Zzgl. der Suchfunktionserweiterung bei Aufträgen