X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=bin%2Fmozilla%2Fct.pl;h=086565d7d4a20fbc10c1eb88ed2634dcbbf35669;hb=247a26dc4b5b0d73c03fc6f05fb17daace0835d9;hp=4d06662e298ee7cd55d6bf881e966c689ecd373d;hpb=29d636435456494e8dc702ccc1015452a71275d9;p=kivitendo-erp.git
diff --git a/bin/mozilla/ct.pl b/bin/mozilla/ct.pl
index 4d06662e2..086565d7d 100644
--- a/bin/mozilla/ct.pl
+++ b/bin/mozilla/ct.pl
@@ -36,12 +36,20 @@
# $locale->text('Vendors')
# $locale->text('Add Customer')
# $locale->text('Add Vendor')
+# $locale->text('Edit Customer')
+# $locale->text('Edit Vendor')
+# $locale->text('Customer saved!')
+# $locale->text('Vendor saved!')
+# $locale->text('Customer deleted!')
+# $locale->text('Cannot delete customer!')
+# $locale->text('Vendor deleted!')
+# $locale->text('Cannot delete vendor!')
-use CGI;
use CGI::Ajax;
use POSIX qw(strftime);
use SL::CT;
+use SL::CVar;
use SL::ReportGenerator;
require "bin/mozilla/common.pl";
@@ -54,11 +62,10 @@ require "bin/mozilla/reportgenerator.pl";
sub add {
$lxdebug->enter_sub();
- $form->{title} = "Add";
+ $auth->assert('customer_vendor_edit');
- $form->{callback} =
- "$form->{script}?action=add&db=$form->{db}&login=$form->{login}&password=$form->{password}"
- unless $form->{callback};
+ $form->{title} = "Add";
+ $form->{callback} = "$form->{script}?action=add&db=$form->{db}" unless $form->{callback};
CT->populate_drop_down_boxes(\%myconfig, \%$form);
@@ -71,16 +78,25 @@ sub add {
sub search {
$lxdebug->enter_sub();
+ $auth->assert('customer_vendor_edit');
+
$form->{IS_CUSTOMER} = $form->{db} eq 'customer';
$form->get_lists("business_types" => "ALL_BUSINESS_TYPES");
$form->{SHOW_BUSINESS_TYPES} = scalar @{ $form->{ALL_BUSINESS_TYPES} } > 0;
- $form->{title} = $form->{IS_CUSTOMER} ? $locale->text('Customers') : $locale->text('Vendors');
- $form->{fokus} = 'Form.name';
+ $form->{CUSTOM_VARIABLES} = CVar->get_configs('module' => 'CT');
+ ($form->{CUSTOM_VARIABLES_FILTER_CODE},
+ $form->{CUSTOM_VARIABLES_INCLUSION_CODE}) = CVar->render_search_options('variables' => $form->{CUSTOM_VARIABLES},
+ 'include_prefix' => 'l_',
+ 'include_value' => 'Y');
+
+ $form->{jsscript} = 1;
+ $form->{title} = $form->{IS_CUSTOMER} ? $locale->text('Customers') : $locale->text('Vendors');
+ $form->{fokus} = 'Form.name';
$form->header();
- print $form->parse_html_template2('ct/search');
+ print $form->parse_html_template('ct/search');
$lxdebug->leave_sub();
}
@@ -88,30 +104,27 @@ sub search {
sub list_names {
$lxdebug->enter_sub();
+ $auth->assert('customer_vendor_edit');
+
$form->{IS_CUSTOMER} = $form->{db} eq 'customer';
+ report_generator_set_default_sort('name', 1);
+
CT->search(\%myconfig, \%$form);
+ my $cvar_configs = CVar->get_configs('module' => 'CT');
+
my @options;
if ($form->{status} eq 'all') {
push @options, $locale->text('All');
-
} elsif ($form->{status} eq 'orphaned') {
push @options, $locale->text('Orphaned');
}
- if ($form->{name}) {
- push @options, $locale->text('Name') . " : $form->{name}";
- }
- if ($form->{contact}) {
- push @options, $locale->text('Contact') . " : $form->{contact}";
- }
- if ($form->{"$form->{db}number"}) {
- push @options, $locale->text('Number') . qq| : $form->{"$form->{db}number"}|;
- }
- if ($form->{email}) {
- push @options, $locale->text('E-mail') . " : $form->{email}";
- }
+ push @options, $locale->text('Name') . " : $form->{name}" if $form->{name};
+ push @options, $locale->text('Contact') . " : $form->{contact}" if $form->{contact};
+ push @options, $locale->text('Number') . qq| : $form->{"$form->{db}number"}| if $form->{"$form->{db}number"};
+ push @options, $locale->text('E-mail') . " : $form->{email}" if $form->{email};
my @columns = (
'id', 'name', "$form->{db}number", 'address', 'contact', 'phone',
@@ -119,6 +132,11 @@ sub list_names {
'ordnumber', 'quonumber'
);
+ my @includeable_custom_variables = grep { $_->{includeable} } @{ $cvar_configs };
+ my %column_defs_cvars = map { +"cvar_$_->{name}" => { 'text' => $_->{description} } } @includeable_custom_variables;
+
+ push @columns, map { "cvar_$_->{name}" } @includeable_custom_variables;
+
my %column_defs = (
'id' => { 'text' => $locale->text('ID'), },
"$form->{db}number" => { 'text' => $form->{IS_CUSTOMER} ? $locale->text('Customer Number') : $locale->text('Vendor Number'), },
@@ -135,6 +153,7 @@ sub list_names {
'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'), },
+ %column_defs_cvars,
);
map { $column_defs{$_}->{visible} = $form->{"l_$_"} eq 'Y' } @columns;
@@ -142,9 +161,12 @@ sub list_names {
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});
+ $form->{callback} = "$callback&sort=" . E($form->{sort}) . "&sortdir=" . E($form->{sortdir});
- map { $column_defs{$_}->{link} = "${callback}&sort=${_}" } @columns;
+ foreach (@columns) {
+ my $sortdir = $form->{sort} eq $_ ? 1 - $form->{sortdir} : $form->{sortdir};
+ $column_defs{$_}->{link} = "${callback}&sort=${_}&sortdir=${sortdir}";
+ }
my ($ordertype, $quotationtype, $attachment_basename);
if ($form->{IS_CUSTOMER}) {
@@ -163,7 +185,7 @@ sub list_names {
my $report = SL::ReportGenerator->new(\%myconfig, $form);
$report->set_options('top_info_text' => join("\n", @options),
- 'raw_bottom_info_text' => $form->parse_html_template2('ct/list_names_bottom'),
+ 'raw_bottom_info_text' => $form->parse_html_template('ct/list_names_bottom'),
'output_format' => 'HTML',
'title' => $form->{title},
'attachment_basename' => $attachment_basename . strftime('_%Y%m%d', localtime time),
@@ -175,7 +197,13 @@ sub list_names {
$report->set_export_options('list_names', @hidden_variables);
- $report->set_sort_indicator($form->{sort}, 1);
+ $report->set_sort_indicator($form->{sort}, $form->{sortdir});
+
+ CVar->add_custom_variables_to_report('module' => 'CT',
+ 'trans_id_field' => 'id',
+ 'configs' => $cvar_configs,
+ 'column_defs' => \%column_defs,
+ 'data' => $form->{CT});
my $previous_id;
@@ -208,13 +236,12 @@ sub list_names {
sub edit {
$lxdebug->enter_sub();
+ $auth->assert('customer_vendor_edit');
+
# show history button
$form->{javascript} = qq||;
#/show hhistory button
- # $locale->text('Edit Customer')
- # $locale->text('Edit Vendor')
-
CT->get_tuple(\%myconfig, \%$form);
CT->populate_drop_down_boxes(\%myconfig, \%$form);
@@ -235,573 +262,41 @@ sub edit {
sub form_header {
$lxdebug->enter_sub();
- $form->get_lists("employees" => "ALL_SALESMEN",
- "taxzones" => "ALL_TAXZONES");
-
- $form->{taxincluded} = ($form->{taxincluded}) ? "checked" : "";
- $form->{creditlimit} =
- $form->format_amount(\%myconfig, $form->{creditlimit}, 0);
- $form->{discount} = $form->format_amount(\%myconfig, $form->{discount});
-
- if ($myconfig{role} eq 'admin') {
- $bcc = qq|
-
- | . $locale->text('Bcc') . qq| |
- |
-
-|;
- }
- $form->{obsolete} = "checked" if $form->{obsolete};
-
- $lang = qq||;
- foreach $item (@{ $form->{languages} }) {
- if ($form->{language_id} eq $item->{id}) {
- $lang .= qq||;
- } else {
- $lang .= qq||;
- }
- }
-
- $payment = qq||;
- foreach $item (@{ $form->{payment_terms} }) {
- if ($form->{payment_id} eq $item->{id}) {
- $payment .= qq||;
- } else {
- $payment .= qq||;
- }
- }
-
- if (!$form->{id}) {
- if ($form->{db} eq "customer") {
- $form->{taxzone_id} = 0;
- } else {
- $form->{taxzone_id} = 0;
- }
- }
-
- %labels = ();
- @values = ();
- foreach my $item (@{ $form->{"ALL_TAXZONES"} }) {
- push(@values, $item->{"id"});
- $labels{$item->{"id"}} = $item->{"description"};
- }
-
- $taxzone = qq|
- | . $locale->text('Steuersatz') . qq| |
- | .
- NTI($cgi->popup_menu('-name' => 'taxzone_id', '-default' => $form->{"taxzone_id"},
- '-values' => \@values, '-labels' => \%labels)) . qq|
- |
-|;
-
- $get_contact_url =
- "$form->{script}?login=$form->{login}&password=$form->{password}&action=get_contact";
-
- my $pjx = new CGI::Ajax( 'get_contact' => $get_contact_url );
- $form->{selectcontact} = "";
- if (@{ $form->{CONTACTS} }) {
- foreach $item (@{ $form->{CONTACTS} }) {
- if ($item->{cp_id} == $form->{cp_id}) {
- $form->{selectcontact} .=
- qq|\n|;
- } else {
- $form->{selectcontact} .=
- qq|\n|;
- }
-
- }
- }
- push(@ { $form->{AJAX} }, $pjx);
- $ansprechpartner = qq|
-
- | . $locale->text('Ansprechpartner') . qq| |
- |
-
-
|;
- $get_shipto_url =
- "$form->{script}?login=$form->{login}&password=$form->{password}&action=get_shipto";
-
- my $pjy = new CGI::Ajax( 'get_shipto' => $get_shipto_url );
- $form->{selectshipto} = "";
- $form->{selectshipto} .= "";
- if (@{ $form->{SHIPTO} }) {
- foreach $item (@{ $form->{SHIPTO} }) {
- if ($item->{shipto_id} == $form->{shipto_id}) {
- $form->{selectshipto} .=
- "\n|;
- map {
- $form->{selectpricegroup} .=
- qq|$_->{pricegroup}\n|
- } @{ $form->{all_pricegroup} };
- }
-
- if ($form->{selectpricegroup}) {
- $form->{selectpricegroup} = $form->unescape($form->{selectpricegroup});
+ $form->{NOTES} ||= [ ];
- $pricegroup =
- qq||;
+ $form->{CUSTOM_VARIABLES} = CVar->get_custom_variables('module' => 'CT', 'trans_id' => $form->{id});
- $form->{selectpricegroup} =~
- s/(render_inputs('variables' => $form->{CUSTOM_VARIABLES}) if (scalar @{ $form->{CUSTOM_VARIABLES} });
- $pricegroup .=
- qq||;
-
- }
- }
-
- # $locale->text('Customer Number')
- # $locale->text('Vendor Number')
- $form->{fokus} = "ct.greeting";
- $form->{jsscript} = 1;
$form->header;
-
- print qq|
-
-
-
-
-