X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=bin%2Fmozilla%2Fis.pl;h=9bc225e884bb596231ed4b64ad7441710820be02;hb=7f8cada2276e50879226ea553006ca7c714fac6a;hp=975cb9479ac46c786e13a8bb10e6d649d61f05ed;hpb=8c7e44938a661e035f62840e1e177353240ace5d;p=kivitendo-erp.git diff --git a/bin/mozilla/is.pl b/bin/mozilla/is.pl index 975cb9479..9bc225e88 100644 --- a/bin/mozilla/is.pl +++ b/bin/mozilla/is.pl @@ -31,10 +31,11 @@ # #====================================================================== +use SL::FU; use SL::IS; use SL::PE; use Data::Dumper; -use List::Util qw(max); +use List::Util qw(max sum); require "bin/mozilla/io.pl"; require "bin/mozilla/invoice_io.pl"; @@ -68,10 +69,6 @@ sub add { $form{jsscript} = "date"; - if ($myconfig{acs} =~ "AR--Add Sales Invoice" || $myconfig{acs} =~ "AR--AR") - { - $form->error("Access Denied"); - } &invoice_links; &prepare_invoice; &display_form; @@ -88,10 +85,6 @@ sub edit { $form->{javascript} = qq||; #/show hhistory button - if ($myconfig{acs} =~ "AR--Add Sales Invoice" || $myconfig{acs} =~ "AR--AR") - { - $form->error("Access Denied"); - } $edit = 1; if ($form->{print_and_post}) { $form->{action} = "print"; @@ -247,8 +240,6 @@ sub prepare_invoice { if ($form->{id}) { - map { $form->{$_} =~ s/\"/"/g } - qw(invnumber ordnumber quonumber shippingpoint shipvia notes intnotes); # # get pricegroups for parts # IS->get_pricegroups_for_parts(\%myconfig, \%$form); @@ -275,8 +266,6 @@ sub prepare_invoice { $form->{"qty_$i"} = $form->format_amount(\%myconfig, $form->{"qty_$i"}, $dec_qty); - map { $form->{"${_}_$i"} =~ s/\"/"/g } - qw(partnumber description unit partnotes); $form->{rowcount} = $i; } @@ -336,7 +325,7 @@ sub form_header { my @values = (undef); foreach my $item (@{ $form->{"ALL_CONTACTS"} }) { push(@values, $item->{"cp_id"}); - $labels{$item->{"cp_id"}} = $item->{"cp_name"} . ($item->{"cp_abteilung"} ? " ($item->{cp_abteilung})" : ""); + $labels{$item->{"cp_id"}} = join(',', $item->{"cp_name"}, $item->{"cp_givenname"}) . ($item->{"cp_abteilung"} ? " ($item->{cp_abteilung})" : ""); } my $contact; if (scalar @values > 1) { @@ -382,7 +371,7 @@ sub form_header { : (NTI($cgi->popup_menu('-name' => 'customer', '-default' => $form->{oldcustomer}, '-onChange' => 'document.getElementById(\'update_button\').click();', '-values' => \@values, '-labels' => \%labels, '-style' => 'width: 250px')))) . qq| - + |; %labels = (); @@ -539,8 +528,8 @@ sub form_header { $jsscript = ""; if ($form->{type} eq "credit_note") { $button1 = qq| - - + |; #write Trigger @@ -550,18 +539,18 @@ sub form_header { "trigger1"); } else { $button1 = qq| - - + |; $button2 = qq| - |; $button3 = qq| - |; @@ -574,6 +563,11 @@ sub form_header { } $credittext = $locale->text('Credit Limit exceeded!!!'); + + my $follow_up_vc = $form->{customer}; + $follow_up_vc =~ s/--\d*\s*$//; + my $follow_up_trans_info = "$form->{invnumber} ($follow_up_vc)"; + $onload = ($form->{resubmit} && ($form->{format} eq "html")) ? qq|window.open('about:blank','Beleg'); document.invoice.target = 'Beleg';document.invoice.submit()| : ($form->{resubmit}) ? qq|document.invoice.submit()| : ($creditwarning) ? qq|alert('$credittext')| @@ -599,6 +593,7 @@ sub form_header { +
| ; @@ -607,13 +602,19 @@ sub form_header { creditlimit creditremaining tradediscount business closedto locked shipped storno storno_id max_dunning_level dunning_amount shiptoname shiptostreet shiptozipcode shiptocity shiptocountry shiptocontact shiptophone shiptofax - shiptoemail shiptodepartment_1 shiptodepartment_2 message email subject cc bcc taxaccounts), + shiptoemail shiptodepartment_1 shiptodepartment_2 message email subject cc bcc taxaccounts cursor_fokus + convert_from_do_ids convert_from_oe_ids), map { $_.'_rate', $_.'_description', $_.'_taxnumber' } split / /, $form->{taxaccounts} ); print qq|

$form->{saved_message}

| if $form->{saved_message}; print qq| + + + + +
$form->{title}
@@ -624,10 +625,10 @@ sub form_header { $customers - - - - + + + + $contact $shipto @@ -654,10 +655,13 @@ sub form_header { + qq| + - + @@ -690,10 +694,14 @@ print qq|
| . $locale->text('Shipping Point') . qq| | . $cgi->textfield("-name" => "shippingpoint", "-size" => 35, "-value" => $form->{shippingpoint}) . - qq|
| . $locale->text('Ship via') . qq| | . + $cgi->textfield("-name" => "shipvia", "-size" => 35, "-value" => $form->{shipvia}) . + qq|
| . $locale->text('Transaction description') . qq|
$employees $salesman |; + +#ergänzung in der maske um das feld Lieferscheinnummer (Delivery Order Number), meiner meinung nach sinnvoll ueber dem feld lieferscheindatum 12.02.2009 jb if ($form->{type} eq "credit_note") { print qq| | . $locale->text('Credit Note Number') . qq| - + |. + $cgi->textfield("-name" => "invnumber", "-size" => 11, "-value" => $form->{invnumber}) . + qq| | . $locale->text('Credit Note Date') . qq| @@ -702,7 +710,9 @@ print qq| } else { print qq| | . $locale->text('Invoice Number') . qq| - + |. + $cgi->textfield("-name" => "invnumber", "-size" => 11, "-value" => $form->{invnumber}) . + qq| | . $locale->text('Invoice Date') . qq| @@ -712,6 +722,12 @@ print qq| | . $locale->text('Due Date') . qq| $button2 + + | . $locale->text('Delivery Order Number') . qq| + |. + $cgi->textfield("-name" => "donumber", "-size" => 11, "-value" => $form->{donumber}) . + qq| + | . $locale->text('Delivery Date') . qq| $button3 @@ -719,7 +735,9 @@ print qq| } print qq| | . $locale->text('Order Number') . qq| - + |. + $cgi->textfield("-name" => "ordnumber", "-size" => 11, "-value" => $form->{ordnumber}) . + qq| | . $locale->text('Order Date') . qq| @@ -728,7 +746,9 @@ print qq| | . $locale->text('Quotation Number') . qq| - + |. + $cgi->textfield("-name" => "quonumber", "-size" => 11, "-value" => $form->{quonumber}) . + qq| | . $locale->text('Quotation Date') . qq| @@ -737,7 +757,9 @@ print qq| | . $locale->text('Customer Order Number') . qq| - + |. + $cgi->textfield("-name" => "cusordnumber", "-size" => 11, "-value" => $form->{cusordnumber}) . + qq| | . $locale->text('Project Number') . qq| @@ -860,6 +882,20 @@ sub form_footer { $form->{invtotal} = $form->format_amount(\%myconfig, $form->{invtotal}, 2, 0); + my $follow_ups_block; + if ($form->{id}) { + my $follow_ups = FU->follow_ups('trans_id' => $form->{id}); + + if (@{ $follow_ups} ) { + my $num_due = sum map { $_->{due} * 1 } @{ $follow_ups }; + $follow_ups_block = qq| + + | . $locale->text("There are #1 unfinished follow-ups of which #2 are due.", scalar @{ $follow_ups }, $num_due) . qq| + +|; + } + } + print qq| @@ -875,9 +911,10 @@ sub form_footer { $notes $intnotes - $payment + $follow_ups_block @@ -1076,7 +1113,7 @@ if ($form->{type} eq "credit_note") { $closedto = $form->datetonum($form->{closedto}, \%myconfig); if ($form->{id}) { - my $show_storno = !$form->{storno} && !IS->has_storno(\%myconfig, $form, "ar"); + my $show_storno = !$form->{storno} && !IS->has_storno(\%myconfig, $form, "ar") && (($totalpaid == 0) || ($totalpaid eq "")); print qq| |; - if ($form->{id} && !($form->{type} eq "credit_note")) { - print qq| + if ($form->{id} && !($form->{type} eq "credit_note")) { + print qq| |; - } + } if ($form->{radier}) { print qq| |; - } + } if ($invdate > $closedto) { @@ -1116,6 +1153,11 @@ if ($form->{type} eq "credit_note") { |; } + print qq| + |; + } else { if ($invdate > $closedto) { print qq|hidden("-name" => "callback", "-value" => $form->{callback}) . $cgi->hidden('-name' => 'draft_id', '-default' => [$form->{draft_id}]) . $cgi->hidden('-name' => 'draft_description', '-default' => [$form->{draft_description}]) +. $cgi->hidden('-name' => 'customer_discount', '-value' => [$form->{customer_discount}]) . qq|
@@ -1198,14 +1241,14 @@ sub update { $form->{taxincluded} ||= $taxincluded; - $form->{exchangerate} = $exchangerate if - $form->{forex} = $exchangerate = $form->check_exchangerate(\%myconfig, $form->{currency}, $form->{invdate}, 'buy'); + $form->{forex} = $form->check_exchangerate(\%myconfig, $form->{currency}, $form->{invdate}, 'buy'); + $form->{exchangerate} = $form->{forex} if $form->{forex}; for $i (1 .. $form->{paidaccounts}) { next unless $form->{"paid_$i"}; map { $form->{"${_}_$i"} = $form->parse_amount(\%myconfig, $form->{"${_}_$i"}) } qw(paid exchangerate); - $form->{"exchangerate_$i"} = $exchangerate if - $form->{"forex_$i"} = $exchangerate = $form->check_exchangerate(\%myconfig, $form->{currency}, $form->{"datepaid_$i"}, 'buy'); + $form->{"forex_$i"} = $form->check_exchangerate(\%myconfig, $form->{currency}, $form->{"datepaid_$i"}, 'buy'); + $form->{"exchangerate_$i"} = $form->{"forex_$i"} if $form->{"forex_$i"}; } $i = $form->{rowcount}; @@ -1225,7 +1268,7 @@ sub update { $rows = scalar @{ $form->{item_list} }; - $form->{"discount_$i"} = $form->format_amount(\%myconfig, $form->{discount} * 100); + $form->{"discount_$i"} = $form->format_amount(\%myconfig, $form->{customer_discount} * 100); if ($rows) { $form->{"qty_$i"} = ($form->{"qty_$i"} * 1) ? $form->{"qty_$i"} : 1; @@ -1324,7 +1367,7 @@ sub post_payment { $form->isblank("datepaid_$i", $locale->text('Payment date missing!')); $form->error($locale->text('Cannot post payment for a closed period!')) - if ($datepaid <= $closedto); + if ($form->date_closed($form->{"datepaid_$i"}, \%myconfig)); if ($form->{currency} ne $form->{defaultcurrency}) { $form->{"exchangerate_$i"} = $form->{exchangerate} @@ -1354,6 +1397,8 @@ sub post { $form->{defaultcurrency} = $form->get_default_currency(\%myconfig); $form->isblank("invdate", $locale->text('Invoice Date missing!')); $form->isblank("customer", $locale->text('Customer missing!')); + $form->error($locale->text('Cannot post invoice for a closed period!')) + if ($form->date_closed($form->{"invdate"}, \%myconfig)); $form->{invnumber} =~ s/^\s*//g; $form->{invnumber} =~ s/\s*$//g; @@ -1385,7 +1430,7 @@ sub post { $form->isblank("datepaid_$i", $locale->text('Payment date missing!')); $form->error($locale->text('Cannot post payment for a closed period!')) - if ($datepaid <= $closedto); + if ($form->date_closed($form->{"datepaid_$i"}, \%myconfig)); if ($form->{currency} ne $form->{defaultcurrency}) { $form->{"exchangerate_$i"} = $form->{exchangerate} @@ -1586,15 +1631,8 @@ sub credit_note { &invoice_links; $form->{currency} = $currency; - $form->{exchangerate} = ""; - $form->{forex} = ""; - $form->{exchangerate} = $exchangerate - if ( - $form->{forex} = ( - $exchangerate = - $form->check_exchangerate( - \%myconfig, $form->{currency}, $form->{invdate}, $buysell - ))); + $form->{forex} = $form->check_exchangerate( \%myconfig, $form->{currency}, $form->{invdate}, $buysell); + $form->{exchangerate} = $form->{forex} || ''; $form->{creditremaining} -= ($form->{oldinvtotal} - $form->{ordtotal});