X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;ds=sidebyside;f=bin%2Fmozilla%2Fis.pl;h=459e1b9446ef40f03b7c6807360c497df5b9540a;hb=d25bd6ec1709f3c8ef07e1dab1f69469893ab6dc;hp=4673ccb06b7ce9d75bb0356ec0e823af32e6efdd;hpb=0576299f2aa98125991c4ffcd2f75073ea583d7d;p=kivitendo-erp.git diff --git a/bin/mozilla/is.pl b/bin/mozilla/is.pl index 4673ccb06..459e1b944 100644 --- a/bin/mozilla/is.pl +++ b/bin/mozilla/is.pl @@ -33,9 +33,11 @@ use SL::IS; use SL::PE; +use Data::Dumper; require "$form->{path}/io.pl"; require "$form->{path}/arap.pl"; +require "bin/mozilla/drafts.pl"; 1; @@ -44,7 +46,19 @@ require "$form->{path}/arap.pl"; sub add { $lxdebug->enter_sub(); - $form->{title} = $locale->text('Add Sales Invoice'); + return $lxdebug->leave_sub() if (load_draft_maybe()); + + if ($form->{type} eq "credit_note") { + $form->{title} = $locale->text('Add Credit Note'); + + if ($form->{storno}) { + $form->{title} = $locale->text('Add Storno Credit Note'); + } + } else { + $form->{title} = $locale->text('Add Sales Invoice'); + + } + $form->{callback} = "$form->{script}?action=add&type=$form->{type}&login=$form->{login}&path=$form->{path}&password=$form->{password}" @@ -56,7 +70,6 @@ sub add { { $form->error("Access Denied"); } - &invoice_links; &prepare_invoice; &display_form; @@ -67,15 +80,28 @@ sub add { sub edit { $lxdebug->enter_sub(); - $form->{title} = $locale->text('Edit Sales Invoice'); - + # show history button + $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"; + $form->{resubmit} = 1; + $language_id = $form->{language_id}; + $printer_id = $form->{printer_id}; + } &invoice_links; &prepare_invoice; + if ($form->{print_and_post}) { + $form->{language_id} = $language_id; + $form->{printer_id} = $printer_id; + } + &display_form; $lxdebug->leave_sub(); @@ -95,26 +121,64 @@ sub invoice_links { if ($form->{all_customer}) { unless ($form->{customer_id}) { $form->{customer_id} = $form->{all_customer}->[0]->{id}; + $form->{salesman_id} = $form->{all_customer}->[0]->{salesman_id}; } } + + if ($form->{payment_id}) { + $payment_id = $form->{payment_id}; + } + if ($form->{language_id}) { + $language_id = $form->{language_id}; + } + if ($form->{taxzone_id}) { + $taxzone_id = $form->{taxzone_id}; + } + if ($form->{id}) { + $id = $form->{id}; + } + if ($form->{shipto_id}) { + $shipto_id = $form->{shipto_id}; + } + $cp_id = $form->{cp_id}; IS->get_customer(\%myconfig, \%$form); + #quote all_customer Bug 133 + foreach $ref (@{ $form->{all_customer} }) { + $ref->{name} = $form->quote($ref->{name}); + } + if ($id) { + $form->{id} = $id; + } IS->retrieve_invoice(\%myconfig, \%$form); $form->{cp_id} = $cp_id; + if ($payment_id) { + $form->{payment_id} = $payment_id; + } + if ($language_id) { + $form->{language_id} = $language_id; + } + if ($taxzone_id) { + $form->{taxzone_id} = $taxzone_id; + } + if ($shipto_id) { + $form->{shipto_id} = $shipto_id; + } + # currencies - @curr = split /:/, $form->{currencies}; + @curr = split(/:/, $form->{currencies}); chomp $curr[0]; $form->{defaultcurrency} = $curr[0]; - map { $form->{selectcurrency} .= "\n" } @curr; $form->{oldcustomer} = "$form->{customer}--$form->{customer_id}"; - if ($form->{all_customer}) { + if (@{ $form->{all_customer} }) { $form->{customer} = "$form->{customer}--$form->{customer_id}"; - map { $form->{selectcustomer} .= "\n" } (@{ $form->{all_customer} }); } @@ -125,7 +189,7 @@ sub invoice_links { map { $form->{selectdepartment} .= - "\n" } (@{ $form->{all_departments} }); } @@ -134,7 +198,7 @@ sub invoice_links { # sales staff if ($form->{all_employees}) { $form->{selectemployee} = ""; - map { $form->{selectemployee} .= "\n" } (@{ $form->{all_employees} }); } @@ -144,7 +208,8 @@ sub invoice_links { foreach $key (keys %{ $form->{AR_links} }) { foreach $ref (@{ $form->{AR_links}{$key} }) { - $form->{"select$key"} .= "\n"; } if ($key eq "AR_paid") { @@ -184,22 +249,30 @@ sub invoice_links { sub prepare_invoice { $lxdebug->enter_sub(); - $form->{type} = "invoice"; - $form->{formname} = "invoice"; - $form->{format} = "html"; - $form->{media} = "screen"; + if ($form->{type} eq "credit_note") { + $form->{type} = "credit_note"; + $form->{formname} = "credit_note"; + } else { + $form->{type} = "invoice"; + $form->{formname} = "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); + + my $i = 0; + 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 +280,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(); @@ -220,28 +299,150 @@ sub prepare_invoice { sub form_header { $lxdebug->enter_sub(); - # set option selected - foreach $item (qw(AR customer currency department employee contact)) { - $form->{"select$item"} =~ s/ selected//; - $form->{"select$item"} =~ - s/option>\Q$form->{$item}\E/option selected>$form->{$item}/; + if ($edit) { + + if ($form->{type} eq "credit_note") { + $form->{title} = $locale->text('Edit Credit Note'); + + if ($form->{storno}) { + $form->{title} = $locale->text('Edit Storno Credit Note'); + } + } else { + $form->{title} = $locale->text('Edit Sales Invoice'); + + if ($form->{storno}) { + $form->{title} = $locale->text('Edit Storno Invoice'); + } + } } - #build contacts - if ($form->{all_contacts}) { + $form->{radier} = + ($form->current_date(\%myconfig) eq $form->{gldate}) ? 1 : 0; - $form->{selectcontact} = ""; - foreach $item (@{ $form->{all_contacts} }) { - if ($form->{cp_id} == $item->{cp_id}) { - $form->{selectcontact} .= - "|; + foreach $item (@{ $form->{payment_terms} }) { + if ($form->{payment_id} eq $item->{id}) { + $payment .= qq||; + } else { + $payment .= qq||; + } + } + + my $set_duedate_url = + "$form->{script}?login=$form->{login}&path=$form->{path}&password=$form->{password}&action=set_duedate"; + + my $pjx = new CGI::Ajax( 'set_duedate' => $set_duedate_url ); + push(@ { $form->{AJAX} }, $pjx); + + if (@{ $form->{TAXZONE} }) { + $form->{selecttaxzone} = ""; + foreach $item (@{ $form->{TAXZONE} }) { + if ($item->{id} == $form->{taxzone_id}) { + $form->{selecttaxzone} .= + ""; } else { - $form->{selectcontact} .= ""; } + } + } else { + $form->{selecttaxzone} =~ s/ selected//g; + if ($form->{taxzone_id} ne "") { + $form->{selecttaxzone} =~ s/value=\"$form->{taxzone_id}\"/value=\"$form->{taxzone_id}\" selected/; + } + } + + $taxzone = qq| +
| . $locale->text('Max. Dunning Level') . qq|: | +$form->{max_dunning_level} | +| . $locale->text('Dunning Amount') . qq|: | +| + . $form->format_amount(\%myconfig, $form->{dunning_amount},2) + . qq| | +
---|