X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;ds=sidebyside;f=bin%2Fmozilla%2Foe.pl;h=1fc3fe3d653fd939046486a0930875c7e7903392;hb=4f63ea874f629459e1a73643595ab5e23e38e7f0;hp=d121ae9e751616cf43a8937107f72b464faebafd;hpb=480d9a56bed666562d3c115fa2da4c09ba66ac8d;p=kivitendo-erp.git
diff --git a/bin/mozilla/oe.pl b/bin/mozilla/oe.pl
index d121ae9e7..1fc3fe3d6 100644
--- a/bin/mozilla/oe.pl
+++ b/bin/mozilla/oe.pl
@@ -234,7 +234,9 @@ sub order_links {
$form->{"select$form->{vc}"} = 1;
$form->{$form->{vc}} = qq|$form->{$form->{vc}}--$form->{"$form->{vc}_id"}|;
}
- $form->{"old$form->{vc}"} = $form->{$form->{vc}};
+
+ $form->{"old$form->{vc}"} = $form->{$form->{vc}};
+ $form->{"old$form->{vc}"} .= qq|--$form->{"$form->{vc}_id"}| unless ($form->{"old$form->{vc}"} =~ m/--\d+$/);
$lxdebug->leave_sub();
}
@@ -246,9 +248,12 @@ sub prepare_order {
$form->{formname} ||= $form->{type};
+ # format discounts if values come from db. either as single id, or as a collective order
+ my $format_discounts = $form->{id} || $form->{convert_from_oe_ids};
+
for my $i (1 .. $form->{rowcount}) {
$form->{"reqdate_$i"} ||= $form->{"deliverydate_$i"};
- $form->{"discount_$i"} = $form->format_amount(\%myconfig, $form->{"discount_$i"} * ($form->{id} ? 100 : 1));
+ $form->{"discount_$i"} = $form->format_amount(\%myconfig, $form->{"discount_$i"} * ($format_discounts ? 100 : 1));
$form->{"sellprice_$i"} = $form->format_amount(\%myconfig, $form->{"sellprice_$i"});
$form->{"qty_$i"} = $form->format_amount(\%myconfig, $form->{"qty_$i"});
}
@@ -270,23 +275,8 @@ sub form_header {
$form->{employee_id} = $form->{old_employee_id} if $form->{old_employee_id};
$form->{salesman_id} = $form->{old_salesman_id} if $form->{old_salesman_id};
- map { $form->{$_} = H($form->{$_}) }
- qw(shippingpoint shipvia notes intnotes shiptoname
- shiptostreet shiptozipcode shiptocity shiptocountry shiptocontact
- shiptophone shiptofax shiptodepartment_1 shiptodepartment_2);
-
# use JavaScript Calendar or not
$form->{jsscript} = 1;
- $TMPL_VAR{button1} = qq|
-
- text('button') . qq|> |
- |;
- $TMPL_VAR{button2} = qq|
-
- text('button') . qq|> |
- |;
- #write Trigger
- $TMPL_VAR{jsscript} = Form->write_trigger(\%myconfig, "2", "transdate", "BL", "trigger1", "reqdate", "BL", "trigger2");
# openclosed checkboxes
my @tmp;
@@ -296,18 +286,7 @@ sub form_header {
$form->{"closed"} ? "checked" : "", $locale->text('Closed') if $form->{id};
$TMPL_VAR{openclosed} = sprintf qq|%s |
\n|, 2 * scalar @tmp, join "\n", @tmp if @tmp;
- # set option selected
- foreach $item ($form->{vc}, 'currency', 'department', ($form->{vc} eq "customer" ? 'customer' : 'vendor')) {
- $form->{"select$item"} =~ s/ selected//;
- $form->{"select$item"} =~ s/option>\Q$form->{$item}\E/option selected>$form->{$item}/;
- }
-
- #quote select[customer|vendor] Bug 133
- $form->{"select$form->{vc}"} = $form->quote($form->{"select$form->{vc}"});
-
- #substitute \n and \r to \s (bug 543)
- $form->{"select$form->{vc}"} =~ s/[\n\r]/ /g;
-
+ # project ids
my @old_project_ids = ($form->{"globalproject_id"}, grep { $_ } map { $form->{"project_id_$_"} } 1..$form->{"rowcount"});
my $vc = $form->{vc} eq "customer" ? "customers" : "vendors";
@@ -330,7 +309,7 @@ sub form_header {
$TMPL_VAR{sales_employee_labels} = sub { $_[0]->{name} || $_[0]->{login} };
$TMPL_VAR{shipto_labels} = sub { join "; ", grep { $_ } map { $_[0]->{"shipto${_}" } } qw(name department_1 street city) };
$TMPL_VAR{contact_labels} = sub { join(', ', $_[0]->{"cp_name"}, $_[0]->{"cp_givenname"}) . ($_[0]->{cp_abteilung} ? " ($_[0]->{cp_abteilung})" : "") };
- $TMPL_VAR{department_labels} = sub { "$_[0]->{description}--$_[0]->{id}" };
+ $TMPL_VAR{department_labels} = sub { "$_[0]->{description}--$_[0]->{id}" };
# vendor/customer
$TMPL_VAR{vc_keys} = sub { "$_[0]->{name}--$_[0]->{id}" };
@@ -353,11 +332,10 @@ sub form_header {
# credit remaining
$creditwarning = (($form->{creditlimit} != 0) && ($form->{creditremaining} < 0) && !$form->{update}) ? 1 : 0;
$TMPL_VAR{is_credit_remaining_negativ} = ($form->{creditremaining} =~ /-/) ? "0" : "1";
-
+
# business
$TMPL_VAR{business_label} = ($form->{vc} eq "customer" ? $locale->text('Customer type') : $locale->text('Vendor type'));
- push @custom_hiddens, "ordnumber" if $form->{type} =~ /_quotation$/;
push @custom_hiddens, "customer_klass" if $form->{vc} eq 'customer';
$credittext = $locale->text('Credit Limit exceeded!!!');
@@ -426,8 +404,8 @@ sub form_footer {
$introws = max 2, $form->numtextrows($form->{intnotes}, 35, 8);
$rows = max $rows, $introws;
- $TMPL_VAR{notes} = qq||;
- $TMPL_VAR{intnotes} = qq||;
+ $TMPL_VAR{notes} = qq||;
+ $TMPL_VAR{intnotes} = qq||;
if (!$form->{taxincluded}) {
@@ -444,7 +422,7 @@ sub form_footer {
}
}
- $form->{invsubtotal} = $form->format_amount(\%myconfig, $form->{invsubtotal}, 2, 0);
+# $form->{invsubtotal} = $form->format_amount(\%myconfig, $form->{invsubtotal}, 2, 0); # template does this
} else {
foreach $item (split / /, $form->{taxaccounts}) {
@@ -482,7 +460,7 @@ sub form_footer {
sub update {
$lxdebug->enter_sub();
-
+
my ($recursive_call) = shift;
check_oe_access();
@@ -491,13 +469,13 @@ sub update {
map { $form->{$_} = $form->parse_amount(\%myconfig, $form->{$_}) } qw(exchangerate) unless $recursive_call;
$form->{update} = 1;
-
+
$payment_id = $form->{payment_id} if $form->{payment_id};
-
+
&check_name($form->{vc});
-
+
$form->{payment_id} = $payment_id if $form->{payment_id} eq "";
-
+
$buysell = 'buy';
$buysell = 'sell' if ($form->{vc} eq 'vendor');
$form->{forex} = $form->check_exchangerate(\%myconfig, $form->{currency}, $form->{transdate}, $buysell);
@@ -714,7 +692,7 @@ sub search {
push(@values, $item->{"id"});
$labels{$item->{"id"}} = $item->{"name"} ne "" ? $item->{"name"} : $item->{"login"};
}
-
+
#salesmen
my %labels_salesmen = ();
my @values_salesmen = ('');
@@ -748,7 +726,7 @@ sub search {
my $vc_label = $form->{vc} eq "customer" ? $locale->text('Customer') : $locale->text('Vendor');
$vc =
$myconfig{vclimit} <= scalar(@values)
- ? qq|{vc}"} =~ /^(.*)\-\-.*$/)) . qq|" name="$form->{vc}">|
+ ? qq|{vc}"} =~ /^(.*)\-\-.*$/)) . qq|" name="$form->{vc}">|
: NTI($cgi->popup_menu('-name' => "$form->{vc}",
'-default' => $form->{"old$form->{vc}"},
'-onChange' => 'document.getElementById(\'update_button\').click();',
@@ -812,7 +790,7 @@ $employee_block
$vc_label |
$employee |
-
+
| . $locale->text('Ship via') . qq| |
@@ -886,7 +864,7 @@ sub orders {
($form->{ $form->{vc} }, $form->{"${form->{vc}}_id"}) = split(/--/, $form->{ $form->{vc} });
- $form->{sort} ||= 'transdate';
+ report_generator_set_default_sort('transdate', 1);
OE->transactions(\%myconfig, \%$form);
@@ -964,8 +942,9 @@ sub orders {
'marge_percent' => { 'text' => $locale->text('Ertrag prozentual'), }
);
- foreach my $name (qw(id transdate reqdate quonumber ordnumber name employee salesman shipvia)) {
- $column_defs{$name}->{link} = $href . "&sort=$name";
+ foreach my $name (qw(id transdate reqdate quonumber ordnumber name employee salesman shipvia transaction_description)) {
+ my $sortdir = $form->{sort} eq $name ? 1 - $form->{sortdir} : $form->{sortdir};
+ $column_defs{$name}->{link} = $href . "&sort=$name&sortdir=$sortdir";
}
my %column_alignment = map { $_ => 'right' } qw(netamount tax amount curr);
@@ -977,7 +956,7 @@ sub orders {
$report->set_columns(%column_defs);
$report->set_column_order(@columns);
$report->set_export_options('orders', @hidden_variables);
- $report->set_sort_indicator($form->{sort}, 1);
+ $report->set_sort_indicator($form->{sort}, $form->{sortdir});
my @options;
my ($department) = split m/--/, $form->{department};
@@ -988,8 +967,8 @@ sub orders {
push @options, $locale->text('Order Number') . " : $form->{ordnumber}" if $form->{ordnumber};
push @options, $locale->text('Notes') . " : $form->{notes}" if $form->{notes};
push @options, $locale->text('Transaction description') . " : $form->{transaction_description}" if $form->{transaction_description};
- push @options, $locale->text('From') . " " . $locale->date(\%myconfig, $form->{transdatefrom}, 1) if $form->{transdatefrom};
- push @options, $locale->text('Bis') . " " . $locale->date(\%myconfig, $form->{transdateto}, 1) if $form->{transdateto};
+ push @options, $locale->text('From') . " " . $locale->date(\%myconfig, $form->{transdatefrom}, 1) if $form->{transdatefrom};
+ push @options, $locale->text('Bis') . " " . $locale->date(\%myconfig, $form->{transdateto}, 1) if $form->{transdateto};
push @options, $locale->text('Open') if $form->{open};
push @options, $locale->text('Closed') if $form->{closed};
push @options, $locale->text('Delivered') if $form->{delivered};
@@ -1129,14 +1108,14 @@ sub save_and_close {
if ($form->{currency} ne $form->{defaultcurrency});
&validate_items;
-
- if($form->{payment_id}) {
+
+ if($form->{payment_id}) {
$payment_id = $form->{payment_id};
}
-
+
# if the name changed get new values
if (&check_name($form->{vc})) {
- if($form->{payment_id} eq "") {
+ if($form->{payment_id} eq "") {
$form->{payment_id} = $payment_id;
}
&update;
@@ -1231,14 +1210,14 @@ sub save {
if ($form->{currency} ne $form->{defaultcurrency});
&validate_items;
-
- if($form->{payment_id}) {
+
+ if($form->{payment_id}) {
$payment_id = $form->{payment_id};
}
-
+
# if the name changed get new values
if (&check_name($form->{vc})) {
- if($form->{payment_id} eq "") {
+ if($form->{payment_id} eq "") {
$form->{payment_id} = $payment_id;
}
&update;
@@ -1295,7 +1274,7 @@ sub save {
$form->{addition} = "SAVED";
$form->save_history($form->dbconnect(\%myconfig));
}
- # /saving the history
+ # /saving the history
$form->{simple_save} = 1;
if(!$form->{print_and_save}) {
@@ -1374,7 +1353,7 @@ sub delete_order_quotation {
$form->{addition} = "DELETED";
$form->save_history($form->dbconnect(\%myconfig));
}
- # /saving the history
+ # /saving the history
$form->info($msg);
exit();
}
@@ -1410,9 +1389,9 @@ sub invoice {
$form->{ordnumber} = "";
$form->{quodate} = $form->{transdate};
}
-
+
$payment_id = $form->{payment_id} if $form->{payment_id};
-
+
# if the name changed get new values
if (&check_name($form->{vc})) {
$form->{payment_id} = $payment_id if $form->{payment_id} eq "";
@@ -1443,27 +1422,14 @@ sub invoice {
}
}
- # close orders/quotations
- $form->{closed} = 1;
-
- # save order if one ordnumber has been given
- # if not it's most likely a collective order, which can't be saved back
- # so they just have to be closed
- if (($form->{ordnumber} ne '') || ($form->{quonumber} ne '')) {
- OE->close_order(\%myconfig, \%$form) if ($form->{id});
- } else {
- OE->close_orders(\%myconfig, \%$form);
- }
-
- $form->{transdate} = $form->{invdate} = $form->current_date(\%myconfig);
- $form->{duedate} = $form->current_date(\%myconfig, $form->{invdate}, $form->{terms} * 1);
+ $form->{convert_from_oe_ids} = $form->{id};
+ $form->{transdate} = $form->{invdate} = $form->current_date(\%myconfig);
+ $form->{duedate} = $form->current_date(\%myconfig, $form->{invdate}, $form->{terms} * 1);
+ $form->{shipto} = 1;
+ $form->{defaultcurrency} = $form->get_default_currency(\%myconfig);
- $form->{id} = '';
- $form->{closed} = 0;
+ delete @{$form}{qw(id closed)};
$form->{rowcount}--;
- $form->{shipto} = 1;
-
- $form->{defaultcurrency} = $form->get_default_currency(\%myconfig);
if ($form->{type} =~ /_order$/) {
$form->{exchangerate} = $exchangerate;
@@ -1478,7 +1444,7 @@ sub invoice {
$buysell = 'sell';
}
- if ( $form->{type} eq 'sales_order'
+ if ( $form->{type} eq 'sales_order'
|| $form->{type} eq 'sales_quotation') {
$form->{title} = $locale->text('Add Sales Invoice');
$form->{script} = 'is.pl';
@@ -1779,11 +1745,6 @@ sub purchase_order {
check_for_direct_delivery();
}
- if ( $form->{type} eq 'sales_quotation'
- || $form->{type} eq 'request_quotation') {
- OE->close_order(\%myconfig, \%$form);
- }
-
if ($form->{type} =~ /^sales_/) {
delete($form->{ordnumber});
}
@@ -1805,20 +1766,15 @@ sub sales_order {
check_oe_access();
$auth->assert('sales_order_edit');
- if ( $form->{type} eq 'sales_quotation'
- || $form->{type} eq 'request_quotation') {
- OE->close_order(\%myconfig, $form);
- }
-
if ($form->{type} eq "purchase_order") {
delete($form->{ordnumber});
}
$form->{cp_id} *= 1;
- $form->{title} = $locale->text('Add Sales Order');
- $form->{vc} = "customer";
- $form->{type} = "sales_order";
+ $form->{title} = $locale->text('Add Sales Order');
+ $form->{vc} = "customer";
+ $form->{type} = "sales_order";
&poso;
@@ -1834,13 +1790,15 @@ sub poso {
$form->{transdate} = $form->current_date(\%myconfig);
delete $form->{duedate};
- $form->{closed} = 0;
+ $form->{convert_from_oe_ids} = $form->{id};
+ $form->{closed} = 0;
- $form->{old_employee_id} = $form->{employee_id};
- $form->{old_salesman_id} = $form->{salesman_id};
+ $form->{old_employee_id} = $form->{employee_id};
+ $form->{old_salesman_id} = $form->{salesman_id};
# reset
- map { delete $form->{$_} } qw(id subject message cc bcc printed emailed queued customer vendor creditlimit creditremaining discount tradediscount oldinvtotal);
+ map { delete $form->{$_} } qw(id subject message cc bcc printed emailed queued customer vendor creditlimit creditremaining discount tradediscount oldinvtotal delivered
+ ordnumber);
for $i (1 .. $form->{rowcount}) {
map { $form->{"${_}_${i}"} = $form->parse_amount(\%myconfig, $form->{"${_}_${i}"}) if ($form->{"${_}_${i}"}) } qw(ship qty sellprice listprice basefactor);
@@ -1882,17 +1840,16 @@ sub delivery_order {
require "bin/mozilla/do.pl";
- $form->{cp_id} *= 1;
- $form->{transdate} = $form->current_date(\%myconfig);
+ $form->{cp_id} *= 1;
+ $form->{convert_from_oe_ids} = $form->{id};
+ $form->{transdate} = $form->current_date(\%myconfig);
delete $form->{duedate};
- $form->{closed} = 0;
-
$form->{old_employee_id} = $form->{employee_id};
$form->{old_salesman_id} = $form->{salesman_id};
# reset
- map { delete $form->{$_} } qw(id subject message cc bcc printed emailed queued creditlimit creditremaining discount tradediscount oldinvtotal);
+ delete @{$form}{qw(id subject message cc bcc printed emailed queued creditlimit creditremaining discount tradediscount oldinvtotal closed delivered)};
for $i (1 .. $form->{rowcount}) {
map { $form->{"${_}_${i}"} = $form->parse_amount(\%myconfig, $form->{"${_}_${i}"}) if ($form->{"${_}_${i}"}) } qw(ship qty sellprice listprice basefactor);
@@ -1984,7 +1941,7 @@ sub report_for_todo_list {
my $content;
if (@{ $quotations }) {
- my $edit_url = build_std_url('script=oe.pl', 'action=edit', 'type=sales_quotation', 'vc=customer');
+ my $edit_url = build_std_url('script=oe.pl', 'action=edit');
$content = $form->parse_html_template('oe/report_for_todo_list', { 'QUOTATIONS' => $quotations,
'edit_url' => $edit_url });