X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=bin%2Fmozilla%2Foe.pl;h=bef23176a20e37e3e04743bd7a9bf48f43b1e06a;hb=dbd0ae115bd9a6ba0ede24f9655a29df6bf7dc3b;hp=116d16869ae6a8dd30dd1aaffaacac5da2159d67;hpb=5d59ad2393b60eed6a78d7d82faeb0e4ef9c0357;p=kivitendo-erp.git
diff --git a/bin/mozilla/oe.pl b/bin/mozilla/oe.pl
index 116d16869..bef23176a 100644
--- a/bin/mozilla/oe.pl
+++ b/bin/mozilla/oe.pl
@@ -252,7 +252,7 @@ sub order_links {
$form->{employee} = "$form->{employee}--$form->{employee_id}";
# build vendor/customer drop down comatibility... don't ask
- if (@{ $form->{"all_$form->{vc}"} }) {
+ if (@{ $form->{"all_$form->{vc}"} || [] }) {
$form->{"select$form->{vc}"} = 1;
$form->{$form->{vc}} = qq|$form->{$form->{vc}}--$form->{"$form->{vc}_id"}|;
}
@@ -283,6 +283,7 @@ sub prepare_order {
$form->{"reqdate_$i"} ||= $form->{"deliverydate_$i"};
$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->{"lastcost_$i"} = $form->format_amount(\%myconfig, $form->{"lastcost_$i"});
$form->{"qty_$i"} = $form->format_amount(\%myconfig, $form->{"qty_$i"});
}
@@ -300,8 +301,9 @@ sub form_header {
check_oe_access();
- # Container for template variables. Unfortunately this has to be visible in form_footer too, so not my.
- our %TMPL_VAR = ();
+ # Container for template variables. Unfortunately this has to be
+ # visible in form_footer too, so my at package level and not here.
+ %TMPL_VAR = ();
$form->{defaultcurrency} = $form->get_default_currency(\%myconfig);
@@ -452,10 +454,10 @@ sub form_footer {
$form->{"${item}_total"} = $form->format_amount(\%myconfig, $form->{"${item}_total"}, 2);
$TMPL_VAR{tax} .= qq|
-
- $form->{"${item}_description"} | . $form->{"${item}_rate"} * 100 .qq|% |
- $form->{"${item}_total"} |
-
|;
+
+ $form->{"${item}_description"} | . $form->{"${item}_rate"} * 100 .qq|% |
+ $form->{"${item}_total"} |
+
|;
}
}
@@ -470,14 +472,14 @@ sub form_footer {
$form->{"${item}_netto"} = $form->format_amount(\%myconfig, $form->{"${item}_netto"}, 2);
$TMPL_VAR{tax} .= qq|
-
- Enthaltene $form->{"${item}_description"} | . $form->{"${item}_rate"} * 100 .qq|% |
- $form->{"${item}_total"} |
-
-
- Nettobetrag |
- $form->{"${item}_netto"} |
-
|;
+
+ Enthaltene $form->{"${item}_description"} | . $form->{"${item}_rate"} * 100 .qq|% |
+ $form->{"${item}_total"} |
+
+
+ Nettobetrag |
+ $form->{"${item}_netto"} |
+
|;
}
}
}
@@ -490,6 +492,12 @@ sub form_footer {
print_options => print_options(inline => 1),
label_edit => $locale->text("Edit the $form->{type}"),
label_workflow => $locale->text("Workflow $form->{type}"),
+ is_sales => scalar ($form->{type} =~ /^sales_/), # these vars are exported, so that the template
+ is_order => scalar ($form->{type} =~ /_order$/), # may determine what to show
+ is_sales_quo => scalar ($form->{type} =~ /sales_quotation$/),
+ is_req_quo => scalar ($form->{type} =~ /request_quotation$/),
+ is_sales_ord => scalar ($form->{type} =~ /sales_order$/),
+ is_pur_ord => scalar ($form->{type} =~ /purchase_order$/),
});
$main::lxdebug->leave_sub();
@@ -512,12 +520,8 @@ sub update {
map { $form->{$_} = $form->parse_amount(\%myconfig, $form->{$_}) } qw(exchangerate) unless $recursive_call;
$form->{update} = 1;
- my $payment_id = $form->{payment_id} if $form->{payment_id};
-
&check_name($form->{vc});
- $form->{payment_id} = $payment_id if $form->{payment_id} eq "";
-
my $buysell = 'buy';
$buysell = 'sell' if ($form->{vc} eq 'vendor');
$form->{forex} = $form->check_exchangerate(\%myconfig, $form->{currency}, $form->{transdate}, $buysell);
@@ -546,13 +550,15 @@ sub update {
my $rows = scalar @{ $form->{item_list} };
# 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
+ # 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);
+ $form->{"lastcost_$i"} = $form->parse_amount(\%myconfig, $form->{"lastcost_$i"});
+
if ($rows) {
- $form->{"qty_$i"} = 1 unless ($form->{"qty_$i"});
+ $form->{"qty_$i"} = 1 unless ($form->parse_amount(\%myconfig, $form->{"qty_$i"}));
if ($rows > 1) {
@@ -596,6 +602,7 @@ sub update {
$form->{creditremaining} -= $amount;
$form->{"sellprice_$i"} = $form->format_amount(\%myconfig, $form->{"sellprice_$i"}, $decimalplaces);
+ $form->{"lastcost_$i"} = $form->format_amount(\%myconfig, $form->{"lastcost_$i"}, $decimalplaces);
$form->{"qty_$i"} = $form->format_amount(\%myconfig, $form->{"qty_$i"}, $dec_qty);
# get pricegroups for parts
@@ -683,7 +690,10 @@ sub search {
$form->header();
- print $form->parse_html_template('oe/search', { %myconfig });
+ print $form->parse_html_template('oe/search', {
+ %myconfig,
+ is_order => $form->{type} =~ /_order/,
+ });
$main::lxdebug->leave_sub();
}
@@ -739,7 +749,8 @@ sub orders {
"shipvia", "globalprojectnumber",
"transaction_description", "open",
"delivered", "marge_total", "marge_percent",
- "country", "ustid",
+ "vcnumber", "ustid",
+ "country",
);
# only show checkboxes if gotten here via sales_order form.
@@ -776,14 +787,14 @@ 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
- reqdatefrom reqdateto);
+ reqdatefrom reqdateto projectnumber project_id);
my $href = build_std_url('action=orders', grep { $form->{$_} } @hidden_variables);
my %column_defs = (
'ids' => { 'text' => '', },
'transdate' => { 'text' => $locale->text('Date'), },
- 'reqdate' => { 'text' => $locale->text('Required by'), },
+ 'reqdate' => { 'text' => $form->{type} =~ /_order/ ? $locale->text('Required by') : $locale->text('Valid until') },
'id' => { 'text' => $locale->text('ID'), },
'ordnumber' => { 'text' => $locale->text('Order'), },
'quonumber' => { 'text' => $form->{type} eq "request_quotation" ? $locale->text('RFQ') : $locale->text('Quotation'), },
@@ -801,6 +812,7 @@ sub orders {
'delivered' => { 'text' => $locale->text('Delivered'), },
'marge_total' => { 'text' => $locale->text('Ertrag'), },
'marge_percent' => { 'text' => $locale->text('Ertrag prozentual'), },
+ 'vcnumber' => { 'text' => $form->{vc} eq 'customer' ? $locale->text('Customer Number') : $locale->text('Vendor Number'), },
'country' => { 'text' => $locale->text('Country'), },
'ustid' => { 'text' => $locale->text('USt-IdNr.'), },
);
@@ -1051,8 +1063,8 @@ sub save_and_close {
# saving the history
if(!exists $form->{addition}) {
$form->{snumbers} = qq|ordnumber_| . $form->{ordnumber};
- $form->{addition} = "SAVED";
- $form->save_history($form->dbconnect(\%myconfig));
+ $form->{addition} = "SAVED";
+ $form->save_history($form->dbconnect(\%myconfig));
}
# /saving the history
@@ -1093,6 +1105,7 @@ sub save {
$form->isblank("exchangerate", $locale->text('Exchangerate missing!'))
if ($form->{currency} ne $form->{defaultcurrency});
+ remove_emptied_rows();
&validate_items;
my $payment_id;
@@ -1158,8 +1171,8 @@ sub save {
# saving the history
if(!exists $form->{addition}) {
$form->{snumbers} = qq|ordnumber_| . $form->{ordnumber};
- $form->{addition} = "SAVED";
- $form->save_history($form->dbconnect(\%myconfig));
+ $form->{addition} = "SAVED";
+ $form->save_history($form->dbconnect(\%myconfig));
}
# /saving the history
@@ -1246,8 +1259,8 @@ sub delete_order_quotation {
# saving the history
if(!exists $form->{addition}) {
$form->{snumbers} = qq|ordnumber_| . $form->{ordnumber};
- $form->{addition} = "DELETED";
- $form->save_history($form->dbconnect(\%myconfig));
+ $form->{addition} = "DELETED";
+ $form->save_history($form->dbconnect(\%myconfig));
}
# /saving the history
$form->info($msg);
@@ -1361,7 +1374,8 @@ sub invoice {
$form->{type} = "invoice";
# locale messages
- $locale = new Locale "$myconfig{countrycode}", "$script";
+ $main::locale = new Locale "$myconfig{countrycode}", "$script";
+ $locale = $main::locale;
require "bin/mozilla/$form->{script}";
@@ -1451,16 +1465,16 @@ sub backorder_exchangerate {
|
@@ -1679,7 +1693,9 @@ sub purchase_order {
check_oe_access();
$main::auth->assert('purchase_order_edit');
+ $form->{sales_order_to_purchase_order} = 0;
if ($form->{type} eq 'sales_order') {
+ $form->{sales_order_to_purchase_order} = 1;
check_for_direct_delivery();
}
@@ -1697,6 +1713,8 @@ sub purchase_order {
&poso;
+ delete $form->{sales_order_to_purchase_order};
+
$main::lxdebug->leave_sub();
}
@@ -1745,8 +1763,14 @@ 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
- ordnumber);
+ map { delete $form->{$_} } qw(id subject message cc bcc printed emailed queued customer vendor creditlimit creditremaining discount tradediscount oldinvtotal delivered ordnumber);
+
+ # if purchase_order was generated from sales_order, use lastcost_$i as sellprice_$i
+ if ( $form->{sales_order_to_purchase_order} ) {
+ for my $i (1 .. $form->{rowcount}) {
+ $form->{"sellprice_${i}"} = $form->format_amount(\%myconfig,$form->{"lastcost_${i}"});
+ };
+ };
for my $i (1 .. $form->{rowcount}) {
map { $form->{"${_}_${i}"} = $form->parse_amount(\%myconfig, $form->{"${_}_${i}"}) if ($form->{"${_}_${i}"}) } qw(ship qty sellprice listprice basefactor discount);
@@ -1758,19 +1782,16 @@ sub poso {
map { $form->{$_} = $saved_vars{$_} } keys %saved_vars;
- &prepare_order;
-
# prepare_order assumes that the discount is in db-notation (0.05) and not user-notation (5)
- # and therefore multiplies the values by 100 in the case of reading from db or making an order from several quotation, so we convert this back into percent-notation for the user interface by multiplying with 0.01
+ # and therefore multiplies the values by 100 in the case of reading from db or making an order
+ # from several quotation, so we convert this back into percent-notation for the user interface by multiplying with 0.01
+ # ergänzung 03.10.2010 muss vor prepare_order passieren (s.a. Svens Kommentar zu Bug 1017)
+ # das parse_amount wird oben schon ausgeführt, deswegen an dieser stelle raus (wichtig: kommawerte bei discount testen)
for my $i (1 .. $form->{rowcount}) {
- $form->{"discount_$i"} = $form->format_amount(\%myconfig, $form->{"discount_$i"} * 0.01);
+ $form->{"discount_$i"} /=100;
};
- # format amounts
- for my $i (1 .. $form->{rowcount} - 1) {
- map { $form->{"${_}_$i"} =~ s/\"/"/g } qw(partnumber description unit);
- }
-
+ &prepare_order;
&update;
$main::lxdebug->leave_sub();
@@ -1812,7 +1833,7 @@ sub delivery_order {
delete @{$form}{qw(id subject message cc bcc printed emailed queued creditlimit creditremaining discount tradediscount oldinvtotal closed delivered)};
for my $i (1 .. $form->{rowcount}) {
- map { $form->{"${_}_${i}"} = $form->parse_amount(\%myconfig, $form->{"${_}_${i}"}) if ($form->{"${_}_${i}"}) } qw(ship qty sellprice listprice basefactor discount);
+ map { $form->{"${_}_${i}"} = $form->parse_amount(\%myconfig, $form->{"${_}_${i}"}) if ($form->{"${_}_${i}"}) } qw(ship qty sellprice listprice lastcost basefactor discount);
}
my %old_values = map { $_ => $form->{$_} } qw(customer_id oldcustomer customer vendor_id oldvendor vendor);