Zeilenanzahl der Preisgruppen im Dialog Stammdaten->Dienstleistung erfassen gefixt.
[kivitendo-erp.git] / bin / mozilla / is.pl
index 31d017e..7d79ba9 100644 (file)
@@ -67,7 +67,7 @@ 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")
@@ -84,7 +84,7 @@ print STDERR "is.pl-edit\n";
 
 sub invoice_links {
   $lxdebug->enter_sub();
-print STDERR "is.pl-invoice_links\n";
+
   $form->{vc} = 'customer';
 
   # create links
@@ -184,7 +184,7 @@ print STDERR "is.pl-invoice_links\n";
 
 sub prepare_invoice {
   $lxdebug->enter_sub();
-print STDERR "is.pl-prepare_invoice\n";
+
   $form->{type}     = "invoice";
   $form->{formname} = "invoice";
   $form->{format}   = "html";
@@ -195,8 +195,8 @@ print STDERR "is.pl-prepare_invoice\n";
     map { $form->{$_} =~ s/\"/"/g }
       qw(invnumber ordnumber quonumber shippingpoint shipvia notes intnotes);
 
-#     # get pricegroups for parts
-#     IS->get_pricegroups_for_parts(\%myconfig, \%$form);
+    #     # get pricegroups for parts
+    #     IS->get_pricegroups_for_parts(\%myconfig, \%$form);
 
     foreach $ref (@{ $form->{invoice_details} }) {
       $i++;
@@ -210,15 +210,17 @@ print STDERR "is.pl-prepare_invoice\n";
       $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;
 
-#      # build up html code for prices_$i
-# print STDERR "set_pricegroup aus is.pl-prepare_invoice\n";
-#      set_pricegroup();
     }
   }
   $lxdebug->leave_sub();
@@ -226,7 +228,7 @@ print STDERR "is.pl-prepare_invoice\n";
 
 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)) {
     $form->{"select$item"} =~ s/ selected//;
@@ -522,7 +524,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) {
@@ -860,10 +862,12 @@ print STDERR "is.pl-form_footer\n";
 
 sub update {
   $lxdebug->enter_sub();
-print STDERR "is.pl-update\n";
+
   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;
@@ -924,7 +928,7 @@ print STDERR "is.pl-update\n";
       } else {
 
         $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]{$_} }
@@ -982,10 +986,10 @@ print STDERR "is.pl-update\n";
         }
 
         # get pricegroups for parts
-        IS->get_pricegroups_for_parts(\%myconfig, \%$form, "new");
+        IS->get_pricegroups_for_parts(\%myconfig, \%$form);
 
         # build up html code for prices_$i
-        set_pricegroup();
+        &set_pricegroup($i);
       }
 
       &display_form;
@@ -1016,7 +1020,6 @@ print STDERR "is.pl-update\n";
 
 sub post {
   $lxdebug->enter_sub();
-print STDERR "is.pl-post\n";
   $form->isblank("invdate",  $locale->text('Invoice Date missing!'));
   $form->isblank("customer", $locale->text('Customer missing!'));
 
@@ -1025,6 +1028,9 @@ print STDERR "is.pl-post\n";
     &update;
     exit;
   }
+  if ($form->{second_run}) {
+    $form->{print_and_post} = 0;
+  }
 
   &validate_items;
 
@@ -1085,6 +1091,7 @@ sub print_and_post {
   $print_post             = 1;
   $form->{print_and_post} = 1;
   &post();
+
   &display_form();
   $lxdebug->leave_sub();
 
@@ -1105,7 +1112,9 @@ sub preview {
 
 sub delete {
   $lxdebug->enter_sub();
-
+  if ($form->{second_run}) {
+    $form->{print_and_post} = 0;
+  }
   $form->header;
 
   print qq|