Revision b3673e83
Von Moritz Bunkus vor mehr als 17 Jahren hinzugefügt
SL/CT.pm | ||
---|---|---|
$sortorder =
|
||
$form->{sort} && $allowed_sort_columns{$form->{sort}} ?
|
||
$form->{sort} : "name";
|
||
$form->{sort} = $sortorder;
|
||
$sortorder = "country,city,street" if ($sortorder eq "address");
|
||
|
||
if ($form->{"${cv}number"}) {
|
bin/mozilla/ct.pl | ||
---|---|---|
# $locale->text('Add Customer')
|
||
# $locale->text('Add Vendor')
|
||
|
||
use SL::CT;
|
||
use CGI::Ajax;
|
||
use CGI;
|
||
use Data::Dumper;
|
||
use CGI::Ajax;
|
||
use POSIX qw(strftime);
|
||
|
||
use SL::CT;
|
||
use SL::ReportGenerator;
|
||
|
||
require "bin/mozilla/common.pl";
|
||
require "bin/mozilla/reportgenerator.pl";
|
||
|
||
1;
|
||
|
||
... | ... | |
sub list_names {
|
||
$lxdebug->enter_sub();
|
||
|
||
CT->search(\%myconfig, \%$form);
|
||
$form->{IS_CUSTOMER} = $form->{db} eq 'customer';
|
||
|
||
$callback =
|
||
"$form->{script}?action=list_names&db=$form->{db}&login=$form->{login}&password=$form->{password}&status=$form->{status}&obsolete=$form->{obsolete}";
|
||
$href = $callback;
|
||
|
||
@columns =
|
||
$form->sort_columns(id, name,
|
||
"$form->{db}number", address,
|
||
contact, phone,
|
||
fax, email,
|
||
taxnumber,
|
||
sic_code, business,
|
||
invnumber, ordnumber,
|
||
quonumber);
|
||
|
||
foreach $item (@columns) {
|
||
if ($form->{"l_$item"} eq "Y") {
|
||
push @column_index, $item;
|
||
|
||
# add column to href and callback
|
||
$callback .= "&l_$item=Y";
|
||
$href .= "&l_$item=Y";
|
||
}
|
||
}
|
||
$number =
|
||
($form->{db} eq "customer")
|
||
? $locale->text('Customer Number')
|
||
: $locale->text('Vendor Number');
|
||
CT->search(\%myconfig, \%$form);
|
||
|
||
my @options;
|
||
if ($form->{status} eq 'all') {
|
||
$option = $locale->text('All');
|
||
}
|
||
if ($form->{status} eq 'orphaned') {
|
||
$option .= $locale->text('Orphaned');
|
||
push @options, $locale->text('All');
|
||
|
||
} elsif ($form->{status} eq 'orphaned') {
|
||
push @options, $locale->text('Orphaned');
|
||
}
|
||
|
||
if ($form->{name}) {
|
||
$callback .= "&name=" . $form->escape($form->{name}, 1);
|
||
$href .= "&name=" . $form->escape($form->{name});
|
||
$option .= "\n<br>" . $locale->text('Name') . " : $form->{name}";
|
||
push @options, $locale->text('Name') . " : $form->{name}";
|
||
}
|
||
if ($form->{contact}) {
|
||
$callback .= "&contact=" . $form->escape($form->{contact}, 1);
|
||
$href .= "&contact=" . $form->escape($form->{contact});
|
||
$option .= "\n<br>" . $locale->text('Contact') . " : $form->{contact}";
|
||
push @options, $locale->text('Contact') . " : $form->{contact}";
|
||
}
|
||
if ($form->{"$form->{db}number"}) {
|
||
$callback .=
|
||
qq|&$form->{db}number=| . $form->escape($form->{"$form->{db}number"}, 1);
|
||
$href .=
|
||
"&$form->{db}number=" . $form->escape($form->{"$form->{db}number"});
|
||
$option .=
|
||
"\n<br>" . $locale->text('Number') . qq| : $form->{"$form->{db}number"}|;
|
||
push @options, $locale->text('Number') . qq| : $form->{"$form->{db}number"}|;
|
||
}
|
||
if ($form->{email}) {
|
||
$callback .= "&email=" . $form->escape($form->{email}, 1);
|
||
$href .= "&email=" . $form->escape($form->{email});
|
||
$option .= "\n<br>" . $locale->text('E-mail') . " : $form->{email}";
|
||
push @options, $locale->text('E-mail') . " : $form->{email}";
|
||
}
|
||
|
||
$form->{callback} = "$callback&sort=$form->{sort}";
|
||
$callback = $form->escape($form->{callback});
|
||
|
||
$column_header{id} =
|
||
qq|<th class=listheading>| . $locale->text('ID') . qq|</th>|;
|
||
$column_header{"$form->{db}number"} =
|
||
qq|<th><a class=listheading href=$href&sort=$form->{db}number>$number</a></th>|;
|
||
$column_header{name} =
|
||
qq|<th><a class=listheading href=$href&sort=name>|
|
||
. $locale->text('Name')
|
||
. qq|</a></th>|;
|
||
$column_header{address} =
|
||
qq|<th><a class=listheading href=$href&sort=address>|
|
||
. $locale->text('Address')
|
||
. qq|</a></th>|;
|
||
$column_header{contact} =
|
||
qq|<th><a class=listheading href=$href&sort=contact>|
|
||
. $locale->text('Contact')
|
||
. qq|</a></th>|;
|
||
$column_header{phone} =
|
||
qq|<th><a class=listheading href=$href&sort=phone>|
|
||
. $locale->text('Phone')
|
||
. qq|</a></th>|;
|
||
$column_header{fax} =
|
||
qq|<th><a class=listheading href=$href&sort=fax>|
|
||
. $locale->text('Fax')
|
||
. qq|</a></th>|;
|
||
$column_header{email} =
|
||
qq|<th><a class=listheading href=$href&sort=email>|
|
||
. $locale->text('E-mail')
|
||
. qq|</a></th>|;
|
||
$column_header{cc} =
|
||
qq|<th><a class=listheading href=$href&sort=cc>|
|
||
. $locale->text('Cc')
|
||
. qq|</a></th>|;
|
||
|
||
$column_header{taxnumber} =
|
||
qq|<th><a class=listheading href=$href&sort=taxnumber>|
|
||
. $locale->text('Tax Number')
|
||
. qq|</a></th>|;
|
||
$column_header{sic_code} =
|
||
qq|<th><a class=listheading href=$href&sort=sic_code>|
|
||
. $locale->text('SIC')
|
||
. qq|</a></th>|;
|
||
$column_header{business} =
|
||
qq|<th><a class=listheading href=$href&sort=business>|
|
||
. $locale->text('Type of Business')
|
||
. qq|</a></th>|;
|
||
|
||
$column_header{invnumber} =
|
||
qq|<th><a class=listheading href=$href&sort=invnumber>|
|
||
. $locale->text('Invoice')
|
||
. qq|</a></th>|;
|
||
$column_header{ordnumber} =
|
||
qq|<th><a class=listheading href=$href&sort=ordnumber>|
|
||
. $locale->text('Order')
|
||
. qq|</a></th>|;
|
||
$column_header{quonumber} =
|
||
qq|<th><a class=listheading href=$href&sort=quonumber>|
|
||
. $locale->text('Quotation')
|
||
. qq|</a></th>|;
|
||
|
||
$label = ucfirst $form->{db} . "s";
|
||
$form->{title} = $locale->text($label);
|
||
|
||
$form->header;
|
||
|
||
print qq|
|
||
<body>
|
||
|
||
<table width=100%>
|
||
<tr>
|
||
<th class=listtop>$form->{title}</th>
|
||
</tr>
|
||
<tr height="5"></tr>
|
||
<tr>
|
||
<td>$option</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<table width=100%>
|
||
<tr class=listheading>
|
||
|;
|
||
|
||
map { print "$column_header{$_}\n" } @column_index;
|
||
|
||
print qq|
|
||
</tr>
|
||
|;
|
||
my @columns = (
|
||
'id', 'name', "$form->{db}number", 'address', 'contact', 'phone',
|
||
'fax', 'email', 'taxnumber', 'sic_code', 'business', 'invnumber',
|
||
'ordnumber', 'quonumber'
|
||
);
|
||
|
||
my %column_defs = (
|
||
'id' => { 'text' => $locale->text('ID'), },
|
||
"$form->{db}number" => { 'text' => $form->{IS_CUSTOMER} ? $locale->text('Customer Number') : $locale->text('Vendor Number'), },
|
||
'name' => { 'text' => $locale->text('Name'), },
|
||
'address' => { 'text' => $locale->text('Address'), },
|
||
'contact' => { 'text' => $locale->text('Contact'), },
|
||
'phone' => { 'text' => $locale->text('Phone'), },
|
||
'fax' => { 'text' => $locale->text('Fax'), },
|
||
'email' => { 'text' => $locale->text('E-mail'), },
|
||
'cc' => { 'text' => $locale->text('Cc'), },
|
||
'taxnumber' => { 'text' => $locale->text('Tax Number'), },
|
||
'sic_code' => { 'text' => $locale->text('SIC'), },
|
||
'business' => { 'text' => $locale->text('Type of Business'), },
|
||
'invnumber' => { 'text' => $locale->text('Invoice'), },
|
||
'ordnumber' => { 'text' => $form->{IS_CUSTOMER} ? $locale->text('Sales Order') : $locale->text('Purchase Order'), },
|
||
'quonumber' => { 'text' => $form->{IS_CUSTOMER} ? $locale->text('Quotation') : $locale->text('Request for Quotation'), },
|
||
);
|
||
|
||
map { $column_defs{$_}->{visible} = $form->{"l_$_"} eq 'Y' } @columns;
|
||
|
||
my @hidden_variables = (qw(db status obsolete), map { "l_$_" } @columns);
|
||
my @hidden_nondefault = grep({ $form->{$_} } @hidden_variables);
|
||
my $callback = build_std_url('action=list_names', grep { $form->{$_} } @hidden_variables);
|
||
$form->{callback} = "$callback&sort=" . E($form->{sort});
|
||
|
||
map { $column_defs{$_}->{link} = "${callback}&sort=${_}" } @columns;
|
||
|
||
my ($ordertype, $quotationtype, $attachment_basename);
|
||
if ($form->{IS_CUSTOMER}) {
|
||
$form->{title} = $locale->text('Customers');
|
||
$ordertype = 'sales_order';
|
||
$quotationtype = 'sales_quotation';
|
||
$attachment_basename = $locale->text('customer_list');
|
||
|
||
$ordertype = ($form->{db} eq 'customer') ? 'sales_order' : 'purchase_order';
|
||
$quotationtype =
|
||
($form->{db} eq 'customer') ? 'sales_quotation' : 'request_quotation';
|
||
|
||
foreach $ref (@{ $form->{CT} }) {
|
||
} else {
|
||
$form->{title} = $locale->text('Vendors');
|
||
$ordertype = 'purchase_order';
|
||
$quotationtype = 'request_quotation';
|
||
$attachment_basename = $locale->text('vendor_list');
|
||
}
|
||
|
||
if ($ref->{id} eq $sameid) {
|
||
map { $column_data{$_} = "<td> </td>" } @column_index;
|
||
} else {
|
||
map { $column_data{$_} = "<td>$ref->{$_} </td>" } @column_index;
|
||
my $report = SL::ReportGenerator->new(\%myconfig, $form);
|
||
|
||
map { $column_data{$_} = "<td>$ref->{$_} </td>" }
|
||
(invnumber, ordnumber, quonumber);
|
||
$report->set_options('top_info_text' => join("\n", @options),
|
||
'raw_bottom_info_text' => $form->parse_html_template2('ct/list_names_bottom'),
|
||
'output_format' => 'HTML',
|
||
'title' => $form->{title},
|
||
'attachment_basename' => $attachment_basename . strftime('_%Y%m%d', localtime time),
|
||
);
|
||
$report->set_options_from_form();
|
||
|
||
$column_data{name} =
|
||
"<td align=left><a href=$form->{script}?action=edit&id=$ref->{id}&db=$form->{db}&login=$form->{login}&password=$form->{password}&status=$form->{status}&callback=$callback>$ref->{name} </td>";
|
||
$report->set_columns(%column_defs);
|
||
$report->set_column_order(@columns);
|
||
|
||
if ($ref->{email}) {
|
||
$email = $ref->{email};
|
||
$email =~ s/</\</;
|
||
$email =~ s/>/\>/;
|
||
$report->set_export_options('list_names', @hidden_variables);
|
||
|
||
$column_data{email} =
|
||
qq|<td><a href="mailto:$ref->{email}">$email</a></td>|;
|
||
}
|
||
$report->set_sort_indicator($form->{sort}, 1);
|
||
|
||
}
|
||
my $previous_id;
|
||
|
||
if ($ref->{formtype} eq 'invoice') {
|
||
$column_data{invnumber} =
|
||
"<td><a href=$ref->{module}.pl?action=edit&id=$ref->{invid}&login=$form->{login}&password=$form->{password}&callback=$callback>$ref->{invnumber} </td>";
|
||
}
|
||
foreach my $ref (@{ $form->{CT} }) {
|
||
my $row = { map { $_ => { 'data' => '' } } @columns };
|
||
|
||
if ($ref->{formtype} eq 'order') {
|
||
$column_data{ordnumber} =
|
||
"<td><a href=$ref->{module}.pl?action=edit&id=$ref->{invid}&type=$ordertype&login=$form->{login}&password=$form->{password}&callback=$callback>$ref->{ordnumber} </td>";
|
||
}
|
||
if ($ref->{id} ne $previous_id) {
|
||
$previous_id = $ref->{id};
|
||
map { $row->{$_}->{data} = $ref->{$_} } @columns;
|
||
|
||
if ($ref->{formtype} eq 'quotation') {
|
||
$column_data{quonumber} =
|
||
"<td><a href=$ref->{module}.pl?action=edit&id=$ref->{invid}&type=$quotationtype&login=$form->{login}&password=$form->{password}&callback=$callback>$ref->{quonumber} </td>";
|
||
$row->{name}->{link} = build_std_url('action=edit', 'id=' . E($ref->{id}), 'callback', @hidden_nondefault);
|
||
$row->{email}->{link} = 'mailto:' . E($ref->{email});
|
||
}
|
||
|
||
$i++;
|
||
$i %= 2;
|
||
print "
|
||
<tr class=listrow$i>
|
||
";
|
||
|
||
map { print "$column_data{$_}\n" } @column_index;
|
||
|
||
print qq|
|
||
</tr>
|
||
|;
|
||
|
||
$sameid = $ref->{id};
|
||
my $base_url = build_std_url("script=$ref->{module}.pl", 'action=edit', 'id=' . E($ref->{invid}), 'callback', @hidden_nondefault);
|
||
$row->{invnumber}->{link} = $base_url;
|
||
$row->{ordnumber}->{link} = $base_url . "&type=${ordertype}";
|
||
$row->{quonumber}->{link} = $base_url . "&type=${quotationtype}";
|
||
my $column = $ref->{formtype} eq 'invoice' ? 'invnumber' : $ref->{formtype} eq 'order' ? 'ordnumber' : 'quonumber';
|
||
$row->{$column}->{data} = $ref->{$column};
|
||
|
||
$report->add_data($row);
|
||
}
|
||
|
||
print qq|
|
||
</table>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td><hr size=3 noshade></td>
|
||
</tr>
|
||
</table>
|
||
|
||
<br>
|
||
<form method=post action=$form->{script}>
|
||
|
||
<input name=callback type=hidden value="$form->{callback}">
|
||
<input name=db type=hidden value=$form->{db}>
|
||
|
||
<input type=hidden name=login value=$form->{login}>
|
||
<input type=hidden name=password value=$form->{password}>
|
||
|
||
<input class=submit type=submit name=action value="|
|
||
. $locale->text('Add') . qq|">
|
||
|
||
</form>
|
||
|
||
</body>
|
||
</html>
|
||
|;
|
||
$report->generate_with_headers();
|
||
|
||
$lxdebug->leave_sub();
|
||
}
|
locale/de/all | ||
---|---|---|
'New Buchungsgruppe <TMPL_VAR __counter__>' => 'Neue Buchungsgruppe <TMPL_VAR __counter__>',
|
||
'New Templates' => 'neue Vorlagen',
|
||
'New contact' => 'Neuer Ansprechpartner',
|
||
'New customer' => 'Neuer Kunde',
|
||
'New sales order' => 'Neuer Auftrag',
|
||
'New unit' => 'Neue Einheit',
|
||
'New vendor' => 'Neuer Lieferante',
|
||
'Next Dunning Level' => 'N?chste Mahnstufe',
|
||
'No' => 'Nein',
|
||
'No Company Address given' => 'Keine Firmenadresse hinterlegt!',
|
||
... | ... | |
'close' => 'schlie?en',
|
||
'config' => 'Konfiguration',
|
||
'continue' => 'weiter',
|
||
'customer_list' => 'kundenliste',
|
||
'customernumber not unique!' => 'Die Kundennummer ist schon vergeben',
|
||
'debug' => 'Debug',
|
||
'delete' => 'L?schen',
|
||
... | ... | |
'use program settings' => 'benutze Programmeinstellungen',
|
||
'ustva' => 'UStVA',
|
||
'valid from' => 'G?ltig ab',
|
||
'vendor_list' => 'lieferantenliste',
|
||
'winston_export' => 'Winston-Export',
|
||
'wrongformat' => 'Falsches Format',
|
||
'yes' => 'ja',
|
locale/de/ct | ||
---|---|---|
'ADDED' => 'Hinzugef?gt',
|
||
'Abteilung' => 'Abteilung',
|
||
'Account Number' => 'Kontonummer',
|
||
'Add' => 'Erfassen',
|
||
'Add Customer' => 'Kunde erfassen',
|
||
'Add Vendor' => 'Lieferant erfassen',
|
||
'Address' => 'Adresse',
|
||
... | ... | |
'Bin List' => 'Lagerliste',
|
||
'Birthday' => 'Geburtstag',
|
||
'CANCELED' => 'Storniert',
|
||
'CSV export -- options' => 'CSV-Export -- Optionen',
|
||
'Cannot delete customer!' => 'Kunde kann nicht gel?scht werden!',
|
||
'Cannot delete vendor!' => 'Lieferant kann nicht gel?scht werden!',
|
||
'Cc' => 'Cc',
|
||
... | ... | |
'Confirmation' => 'Auftragsbest?tigung',
|
||
'Contact' => 'Kontakt',
|
||
'Continue' => 'Weiter',
|
||
'Could not spawn html2ps or GhostScript.' => 'html2ps oder GhostScript konnte nicht gestartet werden.',
|
||
'Could not spawn the printer command.' => 'Die Druckanwendung konnte nicht gestartet werden.',
|
||
'Could not write the html2ps config file.' => 'Die temporäre html2ps-Konfigurationsdatei konnte nicht geschrieben werden.',
|
||
'Could not write the temporary HTML file.' => 'Eine temporäre HTML-Datei konnte nicht geschrieben werden.',
|
||
'Country' => 'Land',
|
||
'Credit Limit' => 'Kreditlimit',
|
||
'Credit Note' => 'Gutschrift',
|
||
... | ... | |
'Orders' => 'Auftr?ge',
|
||
'Orphaned' => 'Nie benutzt',
|
||
'PAYMENT POSTED' => 'Rechung gebucht',
|
||
'PDF export -- options' => 'PDF-Export -- Optionen',
|
||
'POSTED' => 'Gebucht',
|
||
'POSTED AS NEW' => 'Als neu gebucht',
|
||
'PRINTED' => 'Gedruckt',
|
||
... | ... | |
'Quotation' => 'Angebot',
|
||
'Quotations' => 'Angebote',
|
||
'RFQ' => 'Anfrage',
|
||
'Request for Quotation' => 'Anfrage',
|
||
'SAVED' => 'Gespeichert',
|
||
'SAVED FOR DUNNING' => 'Gespeichert',
|
||
'SCREENED' => 'Angezeigt',
|
||
'SIC' => 'SIC',
|
||
'Sales Order' => 'Kundenauftrag',
|
||
'Salesman' => 'Verk?ufer/in',
|
||
'Sat. Fax' => 'Sat. Fax',
|
||
'Sat. Phone' => 'Sat. Tel.',
|
||
... | ... | |
'Tax Number' => 'Steuernummer',
|
||
'Tax Number / SSN' => 'Steuernummer',
|
||
'The \'tag\' field must only consist of alphanumeric characters or the carachters - _ ( )' => 'Das Feld \'tag\' darf nur aus alphanumerischen Zeichen und den Zeichen - _ ( ) bestehen.',
|
||
'The list has been printed.' => 'Die Liste wurde ausgedruckt.',
|
||
'This customer number is already in use.' => 'Diese Kundennummer wird bereits verwendet.',
|
||
'This vendor number is already in use.' => 'Diese Lieferantennummer wird bereits verwendet.',
|
||
'Title' => 'Titel',
|
||
... | ... | |
'Vendors' => 'Lieferanten',
|
||
'Zipcode' => 'PLZ',
|
||
'bin_list' => 'Lagerliste',
|
||
'customer_list' => 'kundenliste',
|
||
'customernumber not unique!' => 'Die Kundennummer ist schon vergeben',
|
||
'history' => 'Historie',
|
||
'invoice' => 'Rechnung',
|
||
... | ... | |
'pick_list' => 'Entnahmeliste',
|
||
'proforma' => 'Proforma',
|
||
'purchase_order' => 'Auftrag',
|
||
'report_generator_dispatch_to is not defined.' => 'report_generator_dispatch_to ist nicht definiert.',
|
||
'report_generator_nextsub is not defined.' => 'report_generator_nextsub ist nicht definiert.',
|
||
'request_quotation' => 'Angebotsanforderung',
|
||
's' => 's',
|
||
'sales_order' => 'Kundenauftrag',
|
||
'sales_quotation' => 'Verkaufsangebot',
|
||
'vendor_list' => 'lieferantenliste',
|
||
'yes' => 'ja',
|
||
};
|
||
|
||
... | ... | |
'part_selection_internal' => 'part_selection_internal',
|
||
'project_selection_internal' => 'project_selection_internal',
|
||
'reformat_numbers' => 'reformat_numbers',
|
||
'report_generator_back' => 'report_generator_back',
|
||
'report_generator_dispatcher' => 'report_generator_dispatcher',
|
||
'report_generator_do' => 'report_generator_do',
|
||
'report_generator_export_as_csv' => 'report_generator_export_as_csv',
|
||
'report_generator_export_as_pdf' => 'report_generator_export_as_pdf',
|
||
'save' => 'save',
|
||
'save_and_ap_transaction' => 'save_and_ap_transaction',
|
||
'save_and_ar_transaction' => 'save_and_ar_transaction',
|
templates/webpages/ct/list_names_bottom_de.html | ||
---|---|---|
[% USE HTML %]<form method="post" action="ct.pl">
|
||
|
||
<input name="callback" type="hidden" value="[% HTML.escape(callback) %]">
|
||
<input name="db" type="hidden" value="[% HTML.escape(db) %]">
|
||
|
||
<input name="login" type="hidden" value="[% HTML.escape(login) %]">
|
||
<input name="password" type="hidden" value="[% HTML.escape(password) %]">
|
||
|
||
[% IF IS_CUSTOMER %]Neuer Kunde[% ELSE %]Neuer Lieferante[% END %]<br>
|
||
|
||
<input class="submit" type="submit" name="action" value="Erfassen">
|
||
|
||
</form>
|
templates/webpages/ct/list_names_bottom_master.html | ||
---|---|---|
[% USE HTML %]<form method="post" action="ct.pl">
|
||
|
||
<input name="callback" type="hidden" value="[% HTML.escape(callback) %]">
|
||
<input name="db" type="hidden" value="[% HTML.escape(db) %]">
|
||
|
||
<input name="login" type="hidden" value="[% HTML.escape(login) %]">
|
||
<input name="password" type="hidden" value="[% HTML.escape(password) %]">
|
||
|
||
[% IF IS_CUSTOMER %]<translate>New customer</translate>[% ELSE %]<translate>New vendor</translate>[% END %]<br>
|
||
|
||
<input class="submit" type="submit" name="action" value="<translate>Add</translate>">
|
||
|
||
</form>
|
Auch abrufbar als: Unified diff
Kunden- und Liferantenstammdatenliste auf die Verwendung von ReportGenerator umgestellt.