X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=bin%2Fmozilla%2Fis.pl;h=6beb17c80aa640a4d7c31f152bd9f53ef2536c58;hb=8f1fb2d695599019da043422cc3314b2a3f4fede;hp=f5f77974c2eed4a9e56fd889af9a68326c874281;hpb=5a0351612ae8ed0c83521b9b714624356eeac7d4;p=kivitendo-erp.git
diff --git a/bin/mozilla/is.pl b/bin/mozilla/is.pl
index f5f77974c..6beb17c80 100644
--- a/bin/mozilla/is.pl
+++ b/bin/mozilla/is.pl
@@ -42,16 +42,25 @@ require "bin/mozilla/invoice_io.pl";
require "bin/mozilla/arap.pl";
require "bin/mozilla/drafts.pl";
+use strict;
+
+my $edit;
+my $payment;
+my $print_post;
+
1;
# end of main
sub add {
- $lxdebug->enter_sub();
+ $main::lxdebug->enter_sub();
+
+ my $form = $main::form;
+ my $locale = $main::locale;
- $auth->assert('invoice_edit');
+ $main::auth->assert('invoice_edit');
- return $lxdebug->leave_sub() if (load_draft_maybe());
+ return $main::lxdebug->leave_sub() if (load_draft_maybe());
if ($form->{type} eq "credit_note") {
$form->{title} = $locale->text('Add Credit Note');
@@ -67,33 +76,28 @@ sub add {
$form->{callback} = "$form->{script}?action=add&type=$form->{type}" unless $form->{callback};
- $form{jsscript} = "date";
+ $form->{jsscript} = "date";
- if ($myconfig{acs} =~ "AR--Add Sales Invoice" || $myconfig{acs} =~ "AR--AR")
- {
- $form->error("Access Denied");
- }
&invoice_links;
&prepare_invoice;
&display_form;
- $lxdebug->leave_sub();
+ $main::lxdebug->leave_sub();
}
sub edit {
- $lxdebug->enter_sub();
+ $main::lxdebug->enter_sub();
+
+ my $form = $main::form;
- $auth->assert('invoice_edit');
+ $main::auth->assert('invoice_edit');
# 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;
+ my ($language_id, $printer_id);
if ($form->{print_and_post}) {
$form->{action} = "print";
$form->{resubmit} = 1;
@@ -109,19 +113,22 @@ sub edit {
&display_form;
- $lxdebug->leave_sub();
+ $main::lxdebug->leave_sub();
}
sub invoice_links {
- $lxdebug->enter_sub();
+ $main::lxdebug->enter_sub();
+
+ my $form = $main::form;
+ my %myconfig = %main::myconfig;
- $auth->assert('invoice_edit');
+ $main::auth->assert('invoice_edit');
$form->{vc} = 'customer';
# create links
- $form->{webdav} = $webdav;
- $form->{lizenzen} = $lizenzen;
+ $form->{webdav} = $main::webdav;
+ $form->{lizenzen} = $main::lizenzen;
$form->create_links("AR", \%myconfig, "customer");
@@ -132,27 +139,32 @@ sub invoice_links {
}
}
+ my $payment_id;
if ($form->{payment_id}) {
$payment_id = $form->{payment_id};
}
+ my $language_id;
if ($form->{language_id}) {
$language_id = $form->{language_id};
}
+ my $taxzone_id;
if ($form->{taxzone_id}) {
$taxzone_id = $form->{taxzone_id};
}
+ my $id;
if ($form->{id}) {
$id = $form->{id};
}
+ my $shipto_id;
if ($form->{shipto_id}) {
$shipto_id = $form->{shipto_id};
}
- $cp_id = $form->{cp_id};
+ my $cp_id = $form->{cp_id};
IS->get_customer(\%myconfig, \%$form);
#quote all_customer Bug 133
- foreach $ref (@{ $form->{all_customer} }) {
+ foreach my $ref (@{ $form->{all_customer} }) {
$ref->{name} = $form->quote($ref->{name});
}
if ($id) {
@@ -184,23 +196,24 @@ sub invoice_links {
map {
$form->{selectdepartment} .=
"$_->{description}--$_->{id} \n"
- } (@{ $form->{all_departments} });
+ } (@{ $form->{all_departments} || [] });
}
$form->{employee} = "$form->{employee}--$form->{employee_id}";
# forex
$form->{forex} = $form->{exchangerate};
- $exchangerate = ($form->{exchangerate}) ? $form->{exchangerate} : 1;
+ my $exchangerate = ($form->{exchangerate}) ? $form->{exchangerate} : 1;
- foreach $key (keys %{ $form->{AR_links} }) {
- foreach $ref (@{ $form->{AR_links}{$key} }) {
+ foreach my $key (keys %{ $form->{AR_links} }) {
+ foreach my $ref (@{ $form->{AR_links}{$key} }) {
$form->{"select$key"} .=
"$ref->{accno}--$ref->{description} \n";
}
if ($key eq "AR_paid") {
- for $i (1 .. scalar @{ $form->{acc_trans}{$key} }) {
+ next unless $form->{acc_trans}{$key};
+ for my $i (1 .. scalar @{ $form->{acc_trans}{$key} }) {
$form->{"AR_paid_$i"} =
"$form->{acc_trans}{$key}->[$i-1]->{accno}--$form->{acc_trans}{$key}->[$i-1]->{description}";
@@ -230,13 +243,16 @@ sub invoice_links {
($form->datetonum($form->{invdate}, \%myconfig) <=
$form->datetonum($form->{closedto}, \%myconfig));
- $lxdebug->leave_sub();
+ $main::lxdebug->leave_sub();
}
sub prepare_invoice {
- $lxdebug->enter_sub();
+ $main::lxdebug->enter_sub();
+
+ my $form = $main::form;
+ my %myconfig = %main::myconfig;
- $auth->assert('invoice_edit');
+ $main::auth->assert('invoice_edit');
if ($form->{type} eq "credit_note") {
$form->{type} = "credit_note";
@@ -248,47 +264,44 @@ 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);
-
my $i = 0;
- foreach $ref (@{ $form->{invoice_details} }) {
+ foreach my $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;
- $form->{"sellprice_$i"} =
- $form->format_amount(\%myconfig, $form->{"sellprice_$i"},
- $decimalplaces);
+ $form->{"discount_$i"} = $form->format_amount(\%myconfig, $form->{"discount_$i"} * 100);
+ my ($dec) = ($form->{"sellprice_$i"} =~ /\.(\d+)/);
+ $dec = length $dec;
+ my $decimalplaces = ($dec > 2) ? $dec : 2;
- (my $dec_qty) = ($form->{"qty_$i"} =~ /\.(\d+)/);
- $dec_qty = length $dec_qty;
+ $form->{"sellprice_$i"} = $form->format_amount(\%myconfig, $form->{"sellprice_$i"}, $decimalplaces);
+ (my $dec_qty) = ($form->{"qty_$i"} =~ /\.(\d+)/);
+ $dec_qty = length $dec_qty;
- $form->{"qty_$i"} =
- $form->format_amount(\%myconfig, $form->{"qty_$i"}, $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;
+ $form->{rowcount} = $i;
}
+
+ # get pricegroups for parts
+ IS->get_pricegroups_for_parts(\%myconfig, \%$form);
+ set_pricegroup($_) for 1 .. $form->{rowcount};
}
- $lxdebug->leave_sub();
+ $main::lxdebug->leave_sub();
}
sub form_header {
- $lxdebug->enter_sub();
+ $main::lxdebug->enter_sub();
+
+ my $form = $main::form;
+ my %myconfig = %main::myconfig;
+ my $locale = $main::locale;
+ my $cgi = $main::cgi;
- $auth->assert('invoice_edit');
+ $main::auth->assert('invoice_edit');
$form->{employee_id} = $form->{old_employee_id} if $form->{old_employee_id};
$form->{salesman_id} = $form->{old_salesman_id} if $form->{old_salesman_id};
@@ -306,7 +319,7 @@ sub form_header {
$form->{radier} = ($form->current_date(\%myconfig) eq $form->{gldate}) ? 1 : 0;
$payment = qq| |;
- foreach $item (@{ $form->{payment_terms} }) {
+ foreach my $item (@{ $form->{payment_terms} }) {
if ($form->{payment_id} eq $item->{id}) {
$payment .= qq|$item->{description} |;
} else {
@@ -383,7 +396,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 = ();
@@ -439,7 +452,7 @@ sub form_header {
$labels{$item->{id}} = $item->{name} ne "" ? $item->{name} : $item->{login};
}
- $salesman =
+ my $salesman =
qq|
| . $locale->text('Salesman') . qq|
| . NTI($cgi->popup_menu('-name' => 'salesman_id', '-values' => \@values, '-labels' => \%labels,
'-default' => $form->{salesman_id} ? $form->{salesman_id} : $form->{employee_id})) . qq|
@@ -453,6 +466,7 @@ sub form_header {
$labels{$item->{"id"}} = $item->{"description"};
}
+ my $taxzone;
if (!$form->{"id"}) {
$taxzone = qq|
@@ -474,18 +488,18 @@ sub form_header {
}
# set option selected
- foreach $item (qw(AR customer currency department employee)) {
+ foreach my $item (qw(AR customer currency department employee)) {
$form->{"select$item"} =~ s/ selected//;
$form->{"select$item"} =~ s/option>\Q$form->{$item}\E/option selected>$form->{$item}/;
}
- $creditwarning = (($form->{creditlimit} != 0) && ($form->{creditremaining} < 0) && !$form->{update}) ? 1 : 0;
+ my $creditwarning = (($form->{creditlimit} != 0) && ($form->{creditremaining} < 0) && !$form->{update}) ? 1 : 0;
$form->{exchangerate} = $form->format_amount(\%myconfig, $form->{exchangerate});
$form->{creditlimit} = $form->format_amount(\%myconfig, $form->{creditlimit}, 0, "0");
$form->{creditremaining} = $form->format_amount(\%myconfig, $form->{creditremaining}, 0, "0");
- $exchangerate = "";
+ my $exchangerate = "";
if ($form->{currency} ne $form->{defaultcurrency}) {
if ($form->{forex}) {
$exchangerate .= qq|| . $locale->text('Exchangerate') . qq|
@@ -497,7 +511,7 @@ sub form_header {
}
$exchangerate .= qq|\n \n|;
- $department = qq|
+ my $department = qq|
| . $locale->text('Department') . qq|
$form->{selectdepartment}
@@ -506,8 +520,9 @@ sub form_header {
| if $form->{selectdepartment};
- $n = ($form->{creditremaining} =~ /-/) ? "0" : "1";
+ my $n = ($form->{creditremaining} =~ /-/) ? "0" : "1";
+ my $business;
if ($form->{business}) {
$business = qq|
@@ -519,6 +534,7 @@ sub form_header {
|;
}
+ my $dunning;
if ($form->{max_dunning_level}) {
$dunning = qq|
@@ -537,11 +553,12 @@ sub form_header {
# use JavaScript Calendar or not
$form->{jsscript} = 1;
- $jsscript = "";
+ my $jsscript = "";
+ my ($button1, $button2, $button3);
if ($form->{type} eq "credit_note") {
$button1 = qq|
-
-
+ |;
#write Trigger
@@ -551,36 +568,36 @@ sub form_header {
"trigger1");
} else {
$button1 = qq|
-
-
+
|;
$button2 = qq|
-
|;
$button3 = qq|
-
|;
#write Trigger
$jsscript =
Form->write_trigger(\%myconfig, "3",
- "invdate", "BL", "trigger1",
+ "invdate", "BL", "trigger1",
"duedate", "BL", "trigger2",
"deliverydate", "BL", "trigger3");
}
- $credittext = $locale->text('Credit Limit exceeded!!!');
+ my $credittext = $locale->text('Credit Limit exceeded!!!');
my $follow_up_vc = $form->{customer};
- $follow_up_vc =~ s/--.*?//;
+ $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()|
+ my $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')|
: "focus()";
@@ -613,10 +630,11 @@ sub form_header {
$form->hide_form(qw(id action type media format queued printed emailed title vc discount
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),
+ shiptoname shiptostreet shiptozipcode shiptocity shiptocountry shiptocontact shiptophone shiptofax
+ 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|
@@ -626,7 +644,7 @@ sub form_header {
-
+
$form->{title}
@@ -636,10 +654,10 @@ sub form_header {
$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|
@@ -714,7 +739,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|
@@ -724,6 +751,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
@@ -731,7 +764,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|
@@ -740,7 +775,9 @@ print qq|
| . $locale->text('Quotation Number') . qq|
-
+ |.
+ $cgi->textfield("-name" => "quonumber", "-size" => 11, "-value" => $form->{quonumber}) .
+ qq|
| . $locale->text('Quotation Date') . qq|
@@ -749,7 +786,9 @@ print qq|
| . $locale->text('Customer Order Number') . qq|
-
+ |.
+ $cgi->textfield("-name" => "cusordnumber", "-size" => 11, "-value" => $form->{cusordnumber}) .
+ qq|
| . $locale->text('Project Number') . qq|
@@ -764,21 +803,27 @@ print qq|
-
+
$jsscript
|;
- print qq| |;
+ print qq| |;
- $lxdebug->leave_sub();
+ $main::lxdebug->leave_sub();
}
sub form_footer {
- $lxdebug->enter_sub();
+ $main::lxdebug->enter_sub();
- $auth->assert('invoice_edit');
+ my $form = $main::form;
+ my %myconfig = %main::myconfig;
+ my $locale = $main::locale;
+ my $cgi = $main::cgi;
+
+ $main::auth->assert('invoice_edit');
$form->{invtotal} = $form->{invsubtotal};
+ my ($rows, $introws);
if (($rows = $form->numtextrows($form->{notes}, 26, 8)) < 2) {
$rows = 2;
}
@@ -786,23 +831,24 @@ sub form_footer {
$introws = 2;
}
$rows = ($rows > $introws) ? $rows : $introws;
- $notes =
+ my $notes =
qq||;
- $intnotes =
+ my $intnotes =
qq||;
$form->{taxincluded} = ($form->{taxincluded} ? "checked" : "");
- $taxincluded = "";
+ my $taxincluded = "";
if ($form->{taxaccounts}) {
$taxincluded = qq|
{taxincluded}> |
. $locale->text('Tax Included') . qq| |;
}
+ my ($tax, $subtotal);
if (!$form->{taxincluded}) {
- foreach $item (split / /, $form->{taxaccounts}) {
+ foreach my $item (split / /, $form->{taxaccounts}) {
if ($form->{"${item}_base"}) {
$form->{"${item}_total"} =
$form->round_amount(
@@ -835,7 +881,7 @@ sub form_footer {
}
if ($form->{taxincluded}) {
- foreach $item (split / /, $form->{taxaccounts}) {
+ foreach my $item (split / /, $form->{taxaccounts}) {
if ($form->{"${item}_base"}) {
$form->{"${item}_total"} =
$form->round_amount(
@@ -901,7 +947,7 @@ sub form_footer {
$notes
$intnotes
- $payment
+ $payment
$follow_ups_block
@@ -937,7 +983,8 @@ sub form_footer {
|;
- if ($webdav) {
+ my $webdav_list;
+ if ($main::webdav) {
$webdav_list = qq|
@@ -949,7 +996,7 @@ sub form_footer {
Dateiname
Webdavlink
|;
- foreach $file (@{ $form->{WEBDAV} }) {
+ foreach my $file (@{ $form->{WEBDAV} }) {
$webdav_list .= qq|
$file->{name}
@@ -986,12 +1033,14 @@ if ($form->{type} eq "credit_note") {
|;
}
+ my @column_index;
if ($form->{currency} eq $form->{defaultcurrency}) {
@column_index = qw(datepaid source memo paid AR_paid);
} else {
@column_index = qw(datepaid source memo paid exchangerate AR_paid);
}
+ my %column_data;
$column_data{datepaid} = "" . $locale->text('Date') . " ";
$column_data{paid} = "" . $locale->text('Amount') . " ";
$column_data{exchangerate} = "" . $locale->text('Exch') . " ";
@@ -1011,7 +1060,7 @@ if ($form->{type} eq "credit_note") {
my $totalpaid = 0;
$form->{paidaccounts}++ if ($form->{"paid_$form->{paidaccounts}"});
- for $i (1 .. $form->{paidaccounts}) {
+ for my $i (1 .. $form->{paidaccounts}) {
print "
\n";
@@ -1032,7 +1081,7 @@ if ($form->{type} eq "credit_note") {
if ($form->{"exchangerate_$i"} == 0) {
$form->{"exchangerate_$i"} = "";
}
- $exchangerate = qq| |;
+ my $exchangerate = qq| |;
if ($form->{currency} ne $form->{defaultcurrency}) {
if ($form->{"forex_$i"}) {
$exchangerate = qq| $form->{"exchangerate_$i"}|;
@@ -1099,11 +1148,11 @@ if ($form->{type} eq "credit_note") {
|;
- $invdate = $form->datetonum($form->{invdate}, \%myconfig);
- $closedto = $form->datetonum($form->{closedto}, \%myconfig);
+ my $invdate = $form->datetonum($form->{invdate}, \%myconfig);
+ my $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|
|;
}
# /button for saving history
-
- # mark_as_paid button
- if($form->{id} ne "") {
- print qq| |;
}
# /mark_as_paid button
@@ -1192,6 +1241,7 @@ if ($form->{type} eq "credit_note") {
$cgi->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|
@@ -1200,48 +1250,54 @@ $cgi->hidden("-name" => "callback", "-value" => $form->{callback})