X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;ds=sidebyside;f=bin%2Fmozilla%2Fis.pl;h=6b94e2c9a9e37cef3012d6d917072c88594a61f2;hb=8423c7b21bc3b4b2db7d0ffef756919619336e97;hp=a043e07bb655b4bbb147502769149a3a7ecf48c6;hpb=4dbb09950c9f5596646537c12d991c99086fe7c1;p=kivitendo-erp.git
diff --git a/bin/mozilla/is.pl b/bin/mozilla/is.pl
index a043e07bb..6b94e2c9a 100644
--- a/bin/mozilla/is.pl
+++ b/bin/mozilla/is.pl
@@ -31,32 +31,42 @@
#
#======================================================================
-
use SL::IS;
use SL::PE;
+use Data::Dumper;
require "$form->{path}/io.pl";
require "$form->{path}/arap.pl";
-
1;
-# end of main
-
+# end of main
sub add {
$lxdebug->enter_sub();
+
+ 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->{title} = $locale->text('Add Sales Invoice');
- $form->{callback} = "$form->{script}?action=add&type=$form->{type}&login=$form->{login}&path=$form->{path}&password=$form->{password}" unless $form->{callback};
+ $form->{callback} =
+ "$form->{script}?action=add&type=$form->{type}&login=$form->{login}&path=$form->{path}&password=$form->{password}"
+ unless $form->{callback};
$form{jsscript} = "date";
-
- if ($myconfig{acs} =~ "AR--Add Sales Invoice" || $myconfig{acs} =~ "AR--AR") {
- $form->error("Access Denied")
- }
-
+
+ if ($myconfig{acs} =~ "AR--Add Sales Invoice" || $myconfig{acs} =~ "AR--AR")
+ {
+ $form->error("Access Denied");
+ }
&invoice_links;
&prepare_invoice;
&display_form;
@@ -64,31 +74,40 @@ sub add {
$lxdebug->leave_sub();
}
-
sub edit {
$lxdebug->enter_sub();
- $form->{title} = $locale->text('Edit Sales Invoice');
-
- if ($myconfig{acs} =~ "AR--Add Sales Invoice" || $myconfig{acs} =~ "AR--AR") {
- $form->error("Access Denied")
- }
-
+
+ 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();
}
-
sub invoice_links {
$lxdebug->enter_sub();
$form->{vc} = 'customer';
# create links
- $form->{webdav} = $webdav;
+ $form->{webdav} = $webdav;
$form->{lizenzen} = $lizenzen;
$form->create_links("AR", \%myconfig, "customer");
@@ -98,14 +117,51 @@ sub invoice_links {
$form->{customer_id} = $form->{all_customer}->[0]->{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];
@@ -113,30 +169,36 @@ sub invoice_links {
$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} .= "|;
+ 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->{selecttaxzone} .=
+ "";
+ }
+
+ }
+ } 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('Steuersatz') . qq| |
+ |
+
+
|;
+
+
+ if (@{ $form->{SHIPTO} }) {
+ $form->{selectshipto} = "";
+ foreach $item (@{ $form->{SHIPTO} }) {
+ if ($item->{shipto_id} == $form->{shipto_id}) {
+ $form->{selectshipto} .=
+ "";
+ } else {
+ $form->{selectshipto} .=
+ "";
+ }
+
+ }
+ } else {
+ $form->{selectshipto} = $form->unquote($form->{selectshipto});
+ $form->{selectshipto} =~ s/ selected//g;
+ if ($form->{shipto_id} ne "") {
+ $form->{selectshipto} =~ s/value=$form->{shipto_id}/value=$form->{shipto_id} selected/;
+ }
+ }
+
+ $shipto = qq|
+ | . $locale->text('Shipping Address') . qq| |
+ | |;
+ $form->{selectshipto} = $form->quote($form->{selectshipto});
+ $shipto .= qq| |;
+
+
+
# set option selected
- foreach $item (qw(AR customer currency department employee contact)) {
+ foreach $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}/;
+ $form->{"select$item"} =~
+ s/option>\Q$form->{$item}\E/option selected>$form->{$item}/;
}
+
+ #quote customer Bug 133
+ $form->{selectcustomer} = $form->quote($form->{selectcustomer});
#build contacts
if ($form->{all_contacts}) {
-
- $form->{selectcontact} = "";
- foreach $item (@{$form->{all_contacts}}) {
- if ($form->{cp_id} == $item->{cp_id})
- {
- $form->{selectcontact} .= "";
+ foreach $item (@{ $form->{all_contacts} }) {
+ my $department = ($item->{cp_abteilung}) ? "--$item->{cp_abteilung}" : "";
+ if ($form->{cp_id} == $item->{cp_id}) {
+ $form->{selectcontact} .=
+ "";
+ } else {
+ $form->{selectcontact} .= "";
}
- }
- #else {$form->{all_contacts} = 0;}
+ }
+ } else {
+ $form->{selectcontact} =~ s/ selected//g;
+ if ($form->{cp_id} ne "") {
+ $form->{selectcontact} =~ s/value=$form->{cp_id}/value=$form->{cp_id} selected/;
+ }
+ }
- $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");
+ if (($form->{creditlimit} != 0) && ($form->{creditremaining} < 0) && !$form->{update}) {
+ $creditwarning = 1;
+ } else {
+ $creditwarning = 0;
+ }
+
+ #else {$form->{all_contacts} = 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 = "";
if ($form->{currency} ne $form->{defaultcurrency}) {
if ($form->{forex}) {
- $exchangerate .= qq||.$locale->text('Exchangerate').qq| | $form->{exchangerate}{exchangerate}> | |;
+ $exchangerate .=
+ qq||
+ . $locale->text('Exchangerate')
+ . qq| | $form->{exchangerate}{exchangerate}> | |;
} else {
- $exchangerate .= qq||.$locale->text('Exchangerate').qq| | {exchangerate}> | |;
+ $exchangerate .=
+ qq||
+ . $locale->text('Exchangerate')
+ . qq| | {exchangerate}> | |;
}
}
$exchangerate .= qq|
{forex}>
|;
-
- $customer = ($form->{selectcustomer}) ? qq|\n| : qq||;
+
+ $customer =
+ ($form->{selectcustomer})
+ ? qq|\n|
+ : qq||;
#sk
- $contact = ($form->{selectcontact}) ? qq|\n| : qq||;
-
+ $contact =
+ ($form->{selectcontact})
+ ? qq|\n|
+ : qq||;
+
$department = qq|
- |.$locale->text('Department').qq| |
+ | . $locale->text('Department') . qq| |
|
| if $form->{selectdepartment};
-
$n = ($form->{creditremaining} =~ /-/) ? "0" : "1";
-
if ($form->{business}) {
$business = qq|
- |.$locale->text('Business').qq| |
+ | . $locale->text('Business') . qq| |
$form->{business} |
- |.$locale->text('Trade Discount').qq| |
- |.$form->format_amount(\%myconfig, $form->{tradediscount} * 100).qq| % |
+ | . $locale->text('Trade Discount') . qq| |
+ |
+ . $form->format_amount(\%myconfig, $form->{tradediscount} * 100)
+ . qq| % |
+
+|;
+ }
+
+ if ($form->{max_dunning_level}) {
+ $dunning = 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| |
+
+ |
+
|;
}
$form->{fokus} = "invoice.customer";
-
+
# use JavaScript Calendar or not
$form->{jsscript} = $jscalendar;
$jsscript = "";
- if ($form->{jsscript})
- {
- # with JavaScript Calendar
- $button1 = qq|
- {invdate}> |
- text('button').qq|> |
- |;
- $button2 = qq|
- {duedate}> |
- text('button').qq|> |
- |;
-
- #write Trigger
- $jsscript = Form->write_trigger(\%myconfig, "2","invdate","BL","trigger1","duedate","BL","trigger2");
- }
- else
- {
+ if ($form->{type} eq "credit_note") {
+ if ($form->{jsscript}) {
+
+ # with JavaScript Calendar
+ $button1 = qq|
+ {invdate}> |
+ text('button') . qq|> |
+ |;
+
+ #write Trigger
+ $jsscript =
+ Form->write_trigger(\%myconfig, "1",
+ "invdate", "BL",
+ "trigger1");
+ } else {
+
# without JavaScript Calendar
- $button1 = qq|{invdate}> | |;
- $button2 = qq|{duedate}> | |;
+ $button1 =
+ qq|{invdate}> | |;
+ $button2 =
+ qq|{duedate}> | |;
}
+ } else {
+ if ($form->{jsscript}) {
- $form->header;
+ # with JavaScript Calendar
+ $button1 = qq|
+ {invdate}> |
+ text('button') . qq|> |
+ |;
+ $button2 = qq|
+ {duedate}> |
+ text('button') . qq|> |
+ |;
+ $button3 = qq|
+ {deliverydate}> |
+ text('button') . qq|> |
+ |;
+ #write Trigger
+ $jsscript =
+ Form->write_trigger(\%myconfig, "3",
+ "invdate", "BL",
+ "trigger1", "duedate",
+ "BL", "trigger2",
+ "deliverydate", "BL",
+ "trigger3");
+ } else {
+
+ # without JavaScript Calendar
+ $button1 =
+ qq|{invdate}> | |;
+ $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()";
+ }
+
+ $credittext = $locale->text('Credit Limit exceeded!!!');
+ if ($creditwarning) {
+ $onload = qq|alert('$credittext')|;
+ }
+
+ $form->{"javascript"} .= qq||;
+
+ $form->header;
+
print qq|
-
+
+
+
+
+
|;
-
$lxdebug->leave_sub();
}
+sub credit_note {
+ $lxdebug->enter_sub();
+
+ $form->{transdate} = $form->{invdate} = $form->current_date(\%myconfig);
+ $form->{duedate} =
+ $form->current_date(\%myconfig, $form->{invdate}, $form->{terms} * 1);
+
+ $form->{id} = '';
+ $form->{rowcount}--;
+ $form->{shipto} = 1;
+ $form->{title} = $locale->text('Add Credit Note');
+ $form->{script} = 'is.pl';
+ $script = "is";
+ $buysell = 'buy';
+
+
+ # bo creates the id, reset it
+ map { delete $form->{$_} }
+ qw(id invnumber subject message cc bcc printed emailed queued);
+ $form->{ $form->{vc} } =~ s/--.*//g;
+ $form->{type} = "credit_note";
+
+
+ map { $form->{"select$_"} = "" } ($form->{vc}, currency);
+
+ map { $form->{$_} = $form->parse_amount(\%myconfig, $form->{$_}) }
+ qw(creditlimit creditremaining);
+
+ $currency = $form->{currency};
+ &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->{creditremaining} -= ($form->{oldinvtotal} - $form->{ordtotal});
+
+ &prepare_invoice;
+
+
+ &display_form;
+
+ $lxdebug->leave_sub();
+}
+
sub yes {
$lxdebug->enter_sub();
- $form->redirect($locale->text('Invoice deleted!')) if (IS->delete_invoice(\%myconfig, \%$form, $spool));
+ $form->redirect($locale->text('Invoice deleted!'))
+ if (IS->delete_invoice(\%myconfig, \%$form, $spool));
$form->error($locale->text('Cannot delete invoice!'));
$lxdebug->leave_sub();
}
-