Bug in verstecktem Feld: <input type=hidden name=fxloss_accno_id values=
[kivitendo-erp.git] / bin / mozilla / is.pl
index c6afe17..b547947 100644 (file)
@@ -57,9 +57,10 @@ sub add {
   {
     $form->error("Access Denied");
   }
-
   &invoice_links;
   &prepare_invoice;
+  $form->{format} = "pdf";
+
   &display_form;
 
   $lxdebug->leave_sub();
@@ -67,14 +68,17 @@ sub add {
 
 sub edit {
   $lxdebug->enter_sub();
-  print STDERR "is.pl-edit\n";
+
   $form->{title} = $locale->text('Edit Sales Invoice');
 
   if ($myconfig{acs} =~ "AR--Add Sales Invoice" || $myconfig{acs} =~ "AR--AR")
   {
     $form->error("Access Denied");
   }
-
+  if ($form->{print_and_post}) {
+    $form->{action}   = "print";
+    $form->{resubmit} = 1;
+  }
   &invoice_links;
   &prepare_invoice;
   &display_form;
@@ -84,7 +88,7 @@ sub edit {
 
 sub invoice_links {
   $lxdebug->enter_sub();
-  print STDERR "is.pl-invoice_links\n";
+
   $form->{vc} = 'customer';
 
   # create links
@@ -184,10 +188,9 @@ sub invoice_links {
 
 sub prepare_invoice {
   $lxdebug->enter_sub();
-  print STDERR "is.pl-prepare_invoice\n";
+
   $form->{type}     = "invoice";
   $form->{formname} = "invoice";
-  $form->{format}   = "html";
   $form->{media}    = "screen";
 
   if ($form->{id}) {
@@ -210,12 +213,12 @@ sub prepare_invoice {
       $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);
+      $dec_qty = length $dec_qty;
+
+      $form->{"qty_$i"} =
+        $form->format_amount(\%myconfig, $form->{"qty_$i"}, $dec_qty);
 
       map { $form->{"${_}_$i"} =~ s/\"/&quot;/g }
         qw(partnumber description unit partnotes);
@@ -228,7 +231,6 @@ sub prepare_invoice {
 
 sub form_header {
   $lxdebug->enter_sub();
-  print STDERR "is.pl-form_header\n";
 
   # set option selected
   foreach $item (qw(AR customer currency department employee contact)) {
@@ -332,11 +334,20 @@ sub form_header {
        <td width="4"><input type=button name=duedate id="trigger2" value=|
       . $locale->text('button') . qq|></td></td>
      |;
+    $button3 = qq|
+       <td width="13"><input name=deliverydate id=deliverydate size=11 title="$myconfig{dateformat}" value=$form->{deliverydate}></td>
+       <td width="4"><input type=button name=deliverydate id="trigger3" value=|
+      . $locale->text('button') . qq|></td></td>
+     |;
 
     #write Trigger
     $jsscript =
-      Form->write_trigger(\%myconfig, "2", "invdate", "BL", "trigger1",
-                          "duedate", "BL", "trigger2");
+      Form->write_trigger(\%myconfig,     "3",
+                          "invdate",      "BL",
+                          "trigger1",     "duedate",
+                          "BL",           "trigger2",
+                          "deliverydate", "BL",
+                          "trigger3");
   } else {
 
     # without JavaScript Calendar
@@ -345,8 +356,11 @@ sub form_header {
     $button2 =
       qq|<td width="13"><input name=duedate size=11 title="$myconfig{dateformat}" value=$form->{duedate}></td>|;
   }
-  if ($form->{resubmit}) {
-    $onload = "document.invoice.submit()";
+  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()";
   }
@@ -466,6 +480,10 @@ sub form_header {
                <th align=right>| . $locale->text('Due Date') . qq|</th>
                 $button2
              </tr>
+             <tr>
+               <th align=right>| . $locale->text('Delivery Date') . qq|</th>
+                $button3
+             </tr>
              <tr>
                <th align=right nowrap>| . $locale->text('Order Number') . qq|</th>
                <td><input name=ordnumber size=11 value="$form->{ordnumber}"></td>
@@ -525,7 +543,7 @@ $jsscript
 
 sub form_footer {
   $lxdebug->enter_sub();
-  print STDERR "is.pl-form_footer\n";
+
   $form->{invtotal} = $form->{invsubtotal};
 
   if (($rows = $form->numtextrows($form->{notes}, 26, 8)) < 2) {
@@ -764,8 +782,6 @@ sub form_footer {
 <input type=hidden name=selectAR_paid value="$form->{selectAR_paid}">
 <input type=hidden name=oldinvtotal value=$form->{oldinvtotal}>
 <input type=hidden name=oldtotalpaid value=$totalpaid>
-<input type=hidden name=print_and_post value=$form->{print_and_post}>
-<input type=hidden name=second_run value=$form->{second_run}>
     </table>
     </td>
   </tr>
@@ -930,7 +946,6 @@ sub update {
 
         $sellprice = $form->format_amount(\%myconfig, $form->{"sellprice_$i"});
 
-        #print STDERR " SELLPRICE-111- $sellprice\n";
         map { $form->{item_list}[$i]{$_} =~ s/\"/&quot;/g }
           qw(partnumber description unit);
         map { $form->{"${_}_$i"} = $form->{item_list}[0]{$_} }
@@ -1046,7 +1061,7 @@ sub post {
     if ($form->{currency} ne $form->{defaultcurrency});
 
   for $i (1 .. $form->{paidaccounts}) {
-    if ($form->{"paid_$i"}) {
+    if ($form->parse_amount(\%myconfig, $form->{"paid_$i"})) {
       $datepaid = $form->datetonum($form->{"datepaid_$i"}, \%myconfig);
 
       $form->isblank("datepaid_$i", $locale->text('Payment date missing!'));
@@ -1070,8 +1085,10 @@ sub post {
 
   $form->{id} = 0 if $form->{postasnew};
 
-  $form->{invnumber} = $form->update_defaults(\%myconfig, "invnumber")
-    unless $form->{invnumber};
+  # get new invnumber in sequence if no invnumber is given or if posasnew was requested
+  if (!$form->{invnumber} || $form->{postasnew}) {
+    $form->{invnumber} = $form->update_defaults(\%myconfig, "invnumber");
+  }
   if ($print_post) {
     if (!(IS->post_invoice(\%myconfig, \%$form))) {
       $form->error($locale->text('Cannot post invoice!'));
@@ -1094,7 +1111,7 @@ sub print_and_post {
   $form->{print_and_post} = 1;
   &post();
 
-  &display_form();
+  &edit();
   $lxdebug->leave_sub();
 
 }