X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;ds=sidebyside;f=bin%2Fmozilla%2Foe.pl;h=43b360f5317d21a11091a02e03b75f34ca557ae2;hb=6607a7145fc56b322e1c24afd07f72f085a25465;hp=501dec2889adb7d13c05e97d9f478e3ce5c99b91;hpb=a9cc77186abf0504ff7239b146e9c5052f00cefe;p=kivitendo-erp.git
diff --git a/bin/mozilla/oe.pl b/bin/mozilla/oe.pl
index 501dec288..43b360f53 100644
--- a/bin/mozilla/oe.pl
+++ b/bin/mozilla/oe.pl
@@ -41,6 +41,7 @@ use SL::IS;
use SL::PE;
use SL::ReportGenerator;
use List::Util qw(max reduce sum);
+use Data::Dumper;
require "bin/mozilla/io.pl";
require "bin/mozilla/arap.pl";
@@ -204,6 +205,7 @@ sub order_links {
$form->{jsscript} = 1;
my $editing = $form->{id};
+ $form->backup_vars(qw(payment_id language_id taxzone_id salesman_id taxincluded cp_id intnotes));
OE->retrieve(\%myconfig, \%$form);
@@ -216,7 +218,6 @@ sub order_links {
$form->{"$form->{vc}_id"} ||= $form->{"all_$form->{vc}"}->[0]->{id} if $form->{"all_$form->{vc}"};
- $form->backup_vars(qw(payment_id language_id taxzone_id salesman_id taxincluded cp_id intnotes));
$form->{shipto} = 1 if $form->{id};
# get customer / vendor
@@ -248,9 +249,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"});
}
@@ -306,7 +310,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}" };
@@ -329,11 +333,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!!!');
@@ -420,7 +423,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}) {
@@ -458,22 +461,24 @@ sub form_footer {
sub update {
$lxdebug->enter_sub();
-
+
my ($recursive_call) = shift;
check_oe_access();
+# $main::lxdebug->message(0, Dumper($form));
+
set_headings($form->{"id"} ? "edit" : "add");
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);
@@ -489,8 +494,8 @@ sub update {
&& ($form->{"partsgroup_$i"} eq "")) {
$form->{creditremaining} += ($form->{oldinvtotal} - $form->{oldtotalpaid});
- &check_form;
+ &check_form;
} else {
if ($form->{type} =~ /^sales/) {
@@ -501,7 +506,11 @@ sub update {
my $rows = scalar @{ $form->{item_list} };
- $form->{"discount_$i"} = $form->format_amount(\%myconfig, $form->{discount} * 100);
+ # hier ist das problem fuer bug 817 $form->{discount} wird nicht durchgeschliffen
+ # ferner fallunterscheidung fuer verkauf oder einkauf s.a. bug 736 jb 04.05.2009
+ # select discount as vendor_discount from vendor ||
+ # select discount as customer_discount from customer
+ $form->{"discount_$i"} = $form->format_amount(\%myconfig, $form->{"$form->{vc}_discount"} * 100);
if ($rows) {
$form->{"qty_$i"} = 1 unless ($form->{"qty_$i"});
@@ -658,11 +667,22 @@ sub search {
text('button') . qq|>
|;
-
+ $button3 = qq|
+
+ text('button') . qq|> |
+ |;
+ $button4 = qq|
+
+ text('button') . qq|> |
+ |;
+
#write Trigger
$jsscript =
- Form->write_trigger(\%myconfig, "2", "transdatefrom", "BR", "trigger3",
- "transdateto", "BL", "trigger4");
+ Form->write_trigger(\%myconfig, "4", "transdatefrom", "BR", "trigger3",
+ "transdateto", "BL", "trigger4",
+ "reqdatefrom", "BR", "trigger5", "reqdateto", "BL", "trigger6");
my $vc = $form->{vc} eq "customer" ? "customers" : "vendors";
@@ -690,7 +710,7 @@ sub search {
push(@values, $item->{"id"});
$labels{$item->{"id"}} = $item->{"name"} ne "" ? $item->{"name"} : $item->{"login"};
}
-
+
#salesmen
my %labels_salesmen = ();
my @values_salesmen = ('');
@@ -724,7 +744,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();',
@@ -764,10 +784,15 @@ $employee_block
$projectnumber |
- | . $locale->text('From') . qq| | $button1
+ | . $locale->text('Order Date') . " " . $locale->text('From') . qq| | $button1
| . $locale->text('Bis') . qq| | $button2
+
+ | . $locale->text('Delivery Date') . " " . $locale->text('From') . qq| | $button3
+ | . $locale->text('Bis') . qq| | $button4
+
+
| . $locale->text('Include in Report') . qq| |
@@ -788,7 +813,7 @@ $employee_block
|
$vc_label |
$employee |
-
+
| . $locale->text('Ship via') . qq| |
@@ -913,7 +938,8 @@ sub orders {
my @hidden_variables = map { "l_${_}" } @columns;
push @hidden_variables, "l_subtotal", $form->{vc}, qw(l_closed l_notdelivered open closed delivered notdelivered ordnumber quonumber
- transaction_description transdatefrom transdateto type vc employee_id salesman_id);
+ transaction_description transdatefrom transdateto type vc employee_id salesman_id
+ reqdatefrom reqdateto);
my $href = build_std_url('action=orders', grep { $form->{$_} } @hidden_variables);
@@ -940,7 +966,7 @@ sub orders {
'marge_percent' => { 'text' => $locale->text('Ertrag prozentual'), }
);
- foreach my $name (qw(id transdate reqdate quonumber ordnumber name employee salesman shipvia)) {
+ 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";
}
@@ -953,7 +979,7 @@ sub orders {
$report->set_columns(%column_defs);
$report->set_column_order(@columns);
- $report->set_export_options('orders', @hidden_variables);
+ $report->set_export_options('orders', @hidden_variables, qw(sort sortdir));
$report->set_sort_indicator($form->{sort}, $form->{sortdir});
my @options;
@@ -965,8 +991,16 @@ 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};
+ if ( $form->{transdatefrom} or $form->{transdateto} ) {
+ push @options, $locale->text('Order Date');
+ 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};
+ };
+ if ( $form->{reqdatefrom} or $form->{reqdateto} ) {
+ push @options, $locale->text('Delivery Date');
+ push @options, $locale->text('From') . " " . $locale->date(\%myconfig, $form->{reqdatefrom}, 1) if $form->{reqdatefrom};
+ push @options, $locale->text('Bis') . " " . $locale->date(\%myconfig, $form->{reqdateto}, 1) if $form->{reqdateto};
+ };
push @options, $locale->text('Open') if $form->{open};
push @options, $locale->text('Closed') if $form->{closed};
push @options, $locale->text('Delivered') if $form->{delivered};
@@ -1106,14 +1140,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;
@@ -1208,14 +1242,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;
@@ -1272,7 +1306,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}) {
@@ -1351,7 +1385,7 @@ sub delete_order_quotation {
$form->{addition} = "DELETED";
$form->save_history($form->dbconnect(\%myconfig));
}
- # /saving the history
+ # /saving the history
$form->info($msg);
exit();
}
@@ -1387,9 +1421,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 "";
@@ -1442,7 +1476,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';
@@ -1795,7 +1829,8 @@ sub poso {
$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 delivered);
+ 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);