X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/c103dedd31b5aeb5899c191f2950d2db95e12a79..195883fdfd3b10f329036767f027baa6e7c402b9:/bin/mozilla/io.pl diff --git a/bin/mozilla/io.pl b/bin/mozilla/io.pl index 2a47a6249..9ae97391e 100644 --- a/bin/mozilla/io.pl +++ b/bin/mozilla/io.pl @@ -72,6 +72,8 @@ if (-f "$form->{path}/$form->{login}_io.pl") { # $locale->text('Oct') # $locale->text('Nov') # $locale->text('Dec') +use SL::IS; +use SL::PE; use Data::Dumper; ######################################## # Eintrag fuer Version 2.2.0 geaendert # @@ -80,7 +82,7 @@ use Data::Dumper; sub display_row { $lxdebug->enter_sub(); my $numrows = shift; - +print STDERR "io.pl-display_row\n"; if ($lizenzen && $form->{vc} eq "customer") { if ($form->{type} =~ /sales_order/) { @column_index = (runningnumber, partnumber, description, ship, qty); @@ -99,7 +101,14 @@ sub display_row { } ############## ENDE Neueintrag ################## - push @column_index, qw(unit sellprice); + push @column_index, qw(unit); + + #for pricegroups column + if ($form->{type} =~ (/sales_quotation/) or (($form->{level} =~ /Sales/) and ($form->{type} =~ /invoice/)) or (($form->{level} eq undef) and ($form->{type} =~ /invoice/)) or ($form->{type} =~ /sales_order/)) { + push @column_index, qw(sellprice_drag); + } + + push @column_index, qw(sellprice); if ($form->{vc} eq 'customer') { push @column_index, qw(discount); @@ -153,9 +162,13 @@ sub display_row { . $locale->text('Project') . qq||; $column_data{sellprice} = - qq|| + qq|| . $locale->text('Price') . qq||; + $column_data{sellprice_drag} = + qq|| + . $locale->text('Pricegroup') + . qq||; $column_data{discount} = qq|| . $locale->text('Discount') @@ -201,7 +214,7 @@ sub display_row { map { $form->{"${_}_$i"} = $form->parse_amount(\%myconfig, $form->{"${_}_$i"}) - } qw(qty ship discount sellprice); + } qw(qty ship discount sellprice price_new price_old); ($dec) = ($form->{"sellprice_$i"} =~ /\.(\d+)/); $dec = length $dec; @@ -211,6 +224,7 @@ sub display_row { $form->round_amount( $form->{"sellprice_$i"} * $form->{"discount_$i"} / 100, $decimalplaces); + $linetotal = $form->round_amount($form->{"sellprice_$i"} - $discount, $decimalplaces); $linetotal = $form->round_amount($linetotal * $form->{"qty_$i"}, 2); @@ -239,20 +253,57 @@ sub display_row { } $column_data{qty} = - qq|format_amount(\%myconfig, $form->{"qty_$i"}) - . qq|>|; + qq|format_amount(\%myconfig, $form->{"qty_$i"},0).qq|>|; $column_data{ship} = qq|format_amount(\%myconfig, $form->{"ship_$i"}) . qq|>|; $column_data{unit} = qq||; - $column_data{sellprice} = - qq|format_amount(\%myconfig, $form->{"sellprice_$i"}, - $decimalplaces) - . qq|>|; + + + + #print (STDERR "io.pl---111-i-$i", Dumper($form->{PRICES})); + # build in dragdrop for pricesgroups + if ($form->{"prices_$i"}) { + print STDERR " YES prices\n"; + $price_tmp = $form->format_amount(\%myconfig, $form->{"price_new_$i"}, 2); + + $column_data{sellprice_drag} = + qq||; + $column_data{sellprice} = + qq||; + } else { + print STDERR " NO prices\n"; + # for last row and report + # set pricegroup dragdrop from report menu + if ($form->{"sellprice_$i"} != 0) { +print STDERR " HIER NOCH FÜR RECHNUNGSAUFRUFE\n"; +print (STDERR "sellprice_$i ", Dumper($form->{"sellprice_$i"}), " pricegroup_id_$i ", Dumper($form->{"pricegroup_id_$i"})); + $prices = + qq|\n|; + + $form->{"pricegroup_old_$i"} = $form->{"pricegroup_id_$i"}; + + $column_data{sellprice_drag} = + qq||; + + }else { + # for last row + $column_data{sellprice_drag} = + qq|format_amount(\%myconfig, $form->{"prices_$i"}, + $decimalplaces) + . qq|>|; + } + + $column_data{sellprice} = + qq|format_amount(\%myconfig, $form->{"sellprice_$i"}, + $decimalplaces) + . qq|>|; + } +#print (STDERR "io.pl---555-i-$i", Dumper($form->{"price_old_$i"})); $column_data{discount} = qq|format_amount(\%myconfig, $form->{"discount_$i"}) @@ -289,6 +340,10 @@ sub display_row { {"orderitems_id_$i"}> {"bo_$i"}> +{"pricegroup_old_$i"}> +{"price_old_$i"}> +format_amount(\%myconfig,$form->{"price_new_$i"}).qq|> + {"id_$i"}> {"inventory_accno_$i"}> @@ -357,9 +412,53 @@ sub display_row { $lxdebug->leave_sub(); } -sub select_item { +################################################## +# build html-code for pricegroups in variable $form->{prices_$j} + +sub set_pricegroup { $lxdebug->enter_sub(); +print STDERR "io.pl-set_pricegroup-i-$i\n"; + for $j (1 .. $i) { + + my $pricegroup_old = $form->{"pricegroup_old_$i"}; + if ($form->{PRICES}{ $j }) { + $len = 0; + $prices = ''; + $price = 0; + foreach $item (@{ $form->{PRICES}{ $j } }) { +print STDERR "TEST--i--$i--jjj-$j\n"; +# print STDERR "-VOR PREIS--$item->{price}--PREISGRUOP-$item->{pricegroup_id}\n"; + $price = $form->round_amount($myconfig, $item->{price},5); + $price = $form->format_amount($myconfig, $item->{price},2); + $price = $item->{price}; +# print STDERR "-NACH PREIS--$price--PREISGRUOP-$item->{pricegroup_id}\n"; + $pricegroup_id = $item->{pricegroup_id}; + $pricegroup = $item->{pricegroup}; + # build dragdrop for pricegroups + $prices .= + qq|\n|; + + $len += 1; +# print STDERR "prices---$prices\n"; + # set new selectedpricegroup_id and prices for "Preis" + if ($item->{selected}) { + $form->{"pricegroup_old_$j"} = $pricegroup_id; + $form->{"price_new_$j"} = $price; + $form->{"sellprice_$j"} = $price; + } + if ($len >= 1) { + $form->{"prices_$j"} = $prices; + } + } + } + } + print (STDERR "", Dumper($form->{PRICES})); + $lxdebug->leave_sub(); +} +sub select_item { + $lxdebug->enter_sub(); +print STDERR "io.pl-select_item\n"; @column_index = qw(ndx partnumber description onhand sellprice); $column_data{ndx} = qq| |; @@ -411,10 +510,11 @@ sub select_item { } map { $ref->{$_} =~ s/\"/"/g } qw(partnumber description unit); - +#sk tradediscount +print STDERR "TRADEDISCOUNT $ref->{sellprice}\n"; $ref->{sellprice} = $form->round_amount($ref->{sellprice} * (1 - $form->{tradediscount}), 2); - +print STDERR "TRADEDISCOUNT $ref->{sellprice}\n"; $column_data{ndx} = qq||; $column_data{partnumber} = @@ -496,7 +596,7 @@ sub select_item { sub item_selected { $lxdebug->enter_sub(); - +print STDERR "io.pl-item_selected\n"; # replace the last row with the checked row $i = $form->{rowcount}; $i = $form->{assembly_rows} if ($form->{item} eq 'assembly'); @@ -504,6 +604,10 @@ sub item_selected { # index for new item $j = $form->{ndx}; + #sk + #($form->{"sellprice_$i"},$form->{"$pricegroup_old_$i"}) = split /--/, $form->{"sellprice_$i"}; + #$form->{"sellprice_$i"} = $form->{"sellprice_$i"}; + # if there was a price entered, override it $sellprice = $form->parse_amount(\%myconfig, $form->{"sellprice_$i"}); @@ -563,6 +667,12 @@ sub item_selected { $form->format_amount(\%myconfig, $form->{"${_}_$i"}, $decimalplaces) } qw(sellprice listprice) if $form->{item} ne 'assembly'; + # get pricegroups for parts + IS->get_pricegroups_for_parts(\%myconfig, \%$form); + + # build up html code for prices_$i + set_pricegroup(); + &display_form; $lxdebug->leave_sub(); @@ -638,10 +748,11 @@ sub new_item { sub display_form { $lxdebug->enter_sub(); - +print STDERR "io.pl-display_form\n"; # if we have a display_form if ($form->{display_form}) { &{"$form->{display_form}"}; +print STDERR " --------------------- exit\n"; exit; } if ( $form->{print_and_post} @@ -676,10 +787,23 @@ sub display_form { $subroutine = "display_row"; if ($form->{item} eq 'part') { +print STDERR " part\n"; + #set preisgruppenanzahl + $numrows = $form->{price_rows}; + $subroutine = "price_row"; + + &{$subroutine}($numrows); + $numrows = ++$form->{makemodel_rows}; $subroutine = "makemodel_row"; } if ($form->{item} eq 'assembly') { +print STDERR " assembly\n"; + $numrows = ++$form->{price_rows}; + $subroutine = "price_row"; + + &{$subroutine}($numrows); + $numrows = ++$form->{makemodel_rows}; $subroutine = "makemodel_row"; @@ -690,6 +814,12 @@ sub display_form { $subroutine = "assembly_row"; } if ($form->{item} eq 'service') { +print STDERR " service\n"; + $numrows = ++$form->{price_rows}; + $subroutine = "price_row"; + + &{$subroutine}($numrows); + $numrows = 0; } @@ -707,7 +837,7 @@ sub display_form { sub check_form { $lxdebug->enter_sub(); - +print STDERR "io.pl-check_form\n"; my @a = (); my $count = 0; my @flds = ( @@ -752,6 +882,8 @@ sub check_form { map { $a[$j]->{$_} = $form->{"${_}_$i"} } @flds; + #($form->{"sellprice_$i"},$form->{"$pricegroup_old_$i"}) = split /--/, $form->{"sellprice_$i"}; + $form->{sellprice} += ($form->{"qty_$i"} * $form->{"sellprice_$i"}); $form->{weight} += ($form->{"qty_$i"} * $form->{"weight_$i"}); $count++; @@ -808,6 +940,20 @@ sub check_form { } } + + #sk +print STDERR "LEVEL--$form->{level}\n"; +print STDERR "Type--$form->{type}\n"; + # if pricegroups + if ($form->{type} =~ (/sales_quotation/) or (($form->{level} =~ /Sales/) and ($form->{type} =~ /invoice/)) or (($form->{level} eq undef) and ($form->{type} =~ /invoice/)) or ($form->{type} =~ /sales_order/)) { + + # get pricegroups for parts + IS->get_pricegroups_for_parts(\%myconfig, \%$form); + + # build up html code for prices_$i + set_pricegroup(); + + } &display_form; @@ -829,6 +975,8 @@ sub invoicetotal { $discount = $form->parse_amount(\%myconfig, $form->{"discount_$i"}); $qty = $form->parse_amount(\%myconfig, $form->{"qty_$i"}); + #($form->{"sellprice_$i"}, $form->{"$pricegroup_old_$i"}) = split /--/, $form->{"sellprice_$i"}; + $amount = $sellprice * (1 - $discount / 100) * $qty; map { $form->{"${_}_base"} += $amount } (split / /, $form->{"taxaccounts_$i"}); @@ -852,7 +1000,7 @@ sub invoicetotal { sub validate_items { $lxdebug->enter_sub(); - +print STDERR "io.pl-validate_items\n"; # check if items are valid if ($form->{rowcount} == 1) { &update; @@ -1086,7 +1234,7 @@ sub send_email { sub print_options { $lxdebug->enter_sub(); - +print STDERR "io.pl-print_options\n"; $form->{sendmode} = "attachment"; $form->{copies} = 3 unless $form->{copies}; @@ -1243,7 +1391,7 @@ sub print_options { sub print { $lxdebug->enter_sub(); - +print STDERR "io.pl-print\n"; # if this goes to the printer pass through if ($form->{media} eq 'printer' || $form->{media} eq 'queue') { $form->error($locale->text('Select postscript or PDF!')) @@ -1261,10 +1409,10 @@ sub print { sub print_form { $lxdebug->enter_sub(); my ($old_form) = @_; - +print STDERR "io.pl-print_form\n"; $inv = "inv"; $due = "due"; - +#print (STDERR "", Dumper($form)); $numberfld = "invnumber"; $display_form = @@ -1356,7 +1504,16 @@ sub print_form { if (!$form->{"${inv}number"} && !$form->{preview}) { $form->{"${inv}number"} = $form->update_defaults(\%myconfig, $numberfld); if ($form->{media} ne 'email') { + + $i = $form->{rowcount}; + # get pricegroups for parts + IS->get_pricegroups_for_parts(\%myconfig, \%$form); + + # build up html code for prices_$i + set_pricegroup(); + $form->{rowcount}--; + &{"$display_form"}; exit; } @@ -1552,7 +1709,7 @@ sub print_form { sub customer_details { $lxdebug->enter_sub(); - +print STDERR "io.pl-customer_details\n"; IS->customer_details(\%myconfig, \%$form); $lxdebug->leave_sub(); } @@ -1578,23 +1735,29 @@ sub post_as_new { sub ship_to { $lxdebug->enter_sub(); - +print STDERR "io.pl-ship_to\n"; $title = $form->{title}; $form->{title} = $locale->text('Ship to'); map { $form->{$_} = $form->parse_amount(\%myconfig, $form->{$_}) } qw(exchangerate creditlimit creditremaining); - $form_id = $form->{id}; + # get details for name &{"$form->{vc}_details"}; - $form->{id} = $form_id; $number = ($form->{vc} eq 'customer') ? $locale->text('Customer Number') : $locale->text('Vendor Number'); + $i = $form->{rowcount}; + # get pricegroups for parts + IS->get_pricegroups_for_parts(\%myconfig, \%$form); + + # build up html code for prices_$i + set_pricegroup(); + $nextsub = ($form->{display_form}) ? $form->{display_form} : "display_form"; $form->{rowcount}--;