X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=bin%2Fmozilla%2Fis.pl;h=2baf7ec0632963a3172c7d383a877a8434ed7723;hb=8f3dc0b4dfd14847df54366f0c146d058522d022;hp=5b9df52c9dd104cc832978a78cc9dbf23f15fc1d;hpb=d319704a66e9be64da837ccea10af6774c2b0838;p=kivitendo-erp.git diff --git a/bin/mozilla/is.pl b/bin/mozilla/is.pl index 5b9df52c9..2baf7ec06 100644 --- a/bin/mozilla/is.pl +++ b/bin/mozilla/is.pl @@ -33,6 +33,7 @@ use SL::IS; use SL::PE; +use Data::Dumper; require "$form->{path}/io.pl"; require "$form->{path}/arap.pl"; @@ -56,9 +57,10 @@ sub add { { $form->error("Access Denied"); } - &invoice_links; &prepare_invoice; + $form->{format} ="pdf"; + &display_form; $lxdebug->leave_sub(); @@ -73,7 +75,10 @@ sub edit { { $form->error("Access Denied"); } - + if ($form->{print_and_post}) { + $form->{action} = "print"; + $form->{resubmit} = 1; + } &invoice_links; &prepare_invoice; &display_form; @@ -186,7 +191,6 @@ sub prepare_invoice { $form->{type} = "invoice"; $form->{formname} = "invoice"; - $form->{format} = "html"; $form->{media} = "screen"; if ($form->{id}) { @@ -194,12 +198,14 @@ sub prepare_invoice { map { $form->{$_} =~ s/\"/"/g } qw(invnumber ordnumber quonumber shippingpoint shipvia notes intnotes); + # # get pricegroups for parts + # IS->get_pricegroups_for_parts(\%myconfig, \%$form); + foreach $ref (@{ $form->{invoice_details} }) { $i++; map { $form->{"${_}_$i"} = $ref->{$_} } keys %{$ref}; $form->{"discount_$i"} = $form->format_amount(\%myconfig, $form->{"discount_$i"} * 100); - ($dec) = ($form->{"sellprice_$i"} =~ /\.(\d+)/); $dec = length $dec; $decimalplaces = ($dec > 2) ? $dec : 2; @@ -207,11 +213,17 @@ sub prepare_invoice { $form->{"sellprice_$i"} = $form->format_amount(\%myconfig, $form->{"sellprice_$i"}, $decimalplaces); - $form->{"qty_$i"} = $form->format_amount(\%myconfig, $form->{"qty_$i"}); + + (my $dec_qty) = ($form->{"qty_$i"} =~ /\.(\d+)/); + $dec_qty = length $dec_qty; + + $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; + } } $lxdebug->leave_sub(); @@ -315,14 +327,12 @@ sub form_header { $button1 = qq| {invdate}> text('button') - . qq|> + . $locale->text('button') . qq|> |; $button2 = qq| {duedate}> text('button') - . qq|> + . $locale->text('button') . qq|> |; #write Trigger @@ -337,16 +347,23 @@ sub form_header { $button2 = qq|{duedate}>|; } - + if ($form->{resubmit} && ($form->{format} eq "html")) { + $onload = qq|window.open('about:blank','Beleg'); document.invoice.target = 'Beleg';document.invoice.submit()|; + } elsif($form->{resubmit}) { + $onload = qq|document.invoice.submit()|; + } else { + $onload = "fokus()"; + } $form->header; print qq| - +
{script}> {id}> +{action}> {type}> {media}> @@ -386,11 +403,11 @@ sub form_header { | . $locale->text('Customer') . qq| $customer + {customer_klass}> {customer_id}> | - . $locale->text('Contact Person') - . qq| + . $locale->text('Contact Person') . qq| $contact @@ -477,7 +494,7 @@ sub form_header { $jsscript - + @@ -533,8 +550,7 @@ sub form_footer { if ($form->{taxaccounts}) { $taxincluded = qq| {taxincluded}> | - . $locale->text('Tax Included') - . qq|

|; + . $locale->text('Tax Included') . qq|

|; } if (!$form->{taxincluded}) { @@ -645,7 +661,7 @@ sub form_footer {
- + Dokumente im Webdav-Repository @@ -654,7 +670,7 @@ sub form_footer { |; foreach $file (keys %{ $form->{WEBDAV} }) { $webdav_list .= qq| - + @@ -673,8 +689,7 @@ sub form_footer {
$file $form->{WEBDAV}{$file}
+ . $locale->text('Incoming Payments') . qq| |; @@ -753,7 +768,7 @@ sub form_footer { {oldinvtotal}> -
| - . $locale->text('Incoming Payments') - . qq|
+ @@ -813,9 +828,11 @@ sub form_footer { + . $locale->text('Preview') . qq|"> + |; } @@ -851,7 +868,9 @@ sub update { map { $form->{$_} = $form->parse_amount(\%myconfig, $form->{$_}) } qw(exchangerate creditlimit creditremaining); - + if ($form->{second_run}) { + $form->{print_and_post} = 0; + } &check_name(customer); &check_project; @@ -969,6 +988,11 @@ sub update { } } + # get pricegroups for parts + IS->get_pricegroups_for_parts(\%myconfig, \%$form); + + # build up html code for prices_$i + &set_pricegroup($i); } &display_form; @@ -999,7 +1023,6 @@ sub update { sub post { $lxdebug->enter_sub(); - $form->isblank("invdate", $locale->text('Invoice Date missing!')); $form->isblank("customer", $locale->text('Customer missing!')); @@ -1008,6 +1031,9 @@ sub post { &update; exit; } + if ($form->{second_run}) { + $form->{print_and_post} = 0; + } &validate_items; @@ -1047,18 +1073,51 @@ sub post { $form->{invnumber} = $form->update_defaults(\%myconfig, "invnumber") unless $form->{invnumber}; - - $form->redirect( + if ($print_post) { + if (!(IS->post_invoice(\%myconfig, \%$form))) { + $form->error($locale->text('Cannot post invoice!')); + } + } else { + $form->redirect( $form->{label} . " $form->{invnumber} " . $locale->text('posted!')) - if (IS->post_invoice(\%myconfig, \%$form)); - $form->error($locale->text('Cannot post invoice!')); + if (IS->post_invoice(\%myconfig, \%$form)); + $form->error($locale->text('Cannot post invoice!')); + } $lxdebug->leave_sub(); } -sub delete { +sub print_and_post { $lxdebug->enter_sub(); + $old_form = new Form; + $print_post = 1; + $form->{print_and_post} = 1; + &post(); + + &edit(); + $lxdebug->leave_sub(); + +} + +sub preview { + $lxdebug->enter_sub(); + + $form->{preview} = 1; + $old_form = new Form; + for (keys %$form) { $old_form->{$_} = $form->{$_} } + $old_form->{rowcount}++; + + &print_form($old_form); + $lxdebug->leave_sub(); + +} + +sub delete { + $lxdebug->enter_sub(); + if ($form->{second_run}) { + $form->{print_and_post} = 0; + } $form->header; print qq| @@ -1101,4 +1160,3 @@ sub yes { $lxdebug->leave_sub(); } -