]> wagnertech.de Git - mfinanz.git/blobdiff - bin/mozilla/ir.pl
Mehrere neue Outputtypen für die parsing engine eingebaut:
[mfinanz.git] / bin / mozilla / ir.pl
index 595c32a92a9e82ddd3490eda9dc668d3f77b038e..541eb6c06b18980214c6c41ed8157e45d1ca3228 100644 (file)
@@ -76,6 +76,11 @@ sub invoice_links {
 
   $form->create_links("AP", \%myconfig, "vendor");
 
+  #quote all_vendor Bug 133
+  foreach $ref (@{ $form->{all_vendor} }) {
+    $ref->{name} = $form->quote($ref->{name});
+  }
+
   if ($form->{all_vendor}) {
     unless ($form->{vendor_id}) {
       $form->{vendor_id} = $form->{all_vendor}->[0]->{id};
@@ -107,7 +112,7 @@ sub invoice_links {
   }
 
   # currencies
-  @curr = split /:/, $form->{currencies};
+  @curr = split(/:/, $form->{currencies});
   chomp $curr[0];
   $form->{defaultcurrency} = $curr[0];
 
@@ -116,7 +121,7 @@ sub invoice_links {
   $form->{oldvendor} = "$form->{vendor}--$form->{vendor_id}";
 
   # vendors
-  if ($form->{all_vendor}) {
+  if (@{ $form->{all_vendor} }) {
     $form->{vendor} = "$form->{vendor}--$form->{vendor_id}";
     map { $form->{selectvendor} .= "<option>$_->{name}--$_->{id}\n" }
       (@{ $form->{all_vendor} });
@@ -184,6 +189,7 @@ sub prepare_invoice {
 
     map { $form->{$_} =~ s/\"/&quot;/g } qw(invnumber ordnumber quonumber);
 
+    my $i = 0;
     foreach $ref (@{ $form->{invoice_details} }) {
       $i++;
       map { $form->{"${_}_$i"} = $ref->{$_} } keys %{$ref};
@@ -219,6 +225,12 @@ sub form_header {
       s/option>\Q$form->{$item}\E/option selected>$form->{$item}/;
   }
 
+  $form->{radier} =
+    ($form->current_date(\%myconfig) eq $form->{gldate}) ? 1 : 0;
+
+  #quote selectvendor Bug 133
+  $form->{"selectvendor"} = $form->quote($form->{"selectvendor"});
+
   $form->{exchangerate} =
     $form->format_amount(\%myconfig, $form->{exchangerate});
 
@@ -673,8 +685,10 @@ sub form_footer {
       s/option>\Q$form->{"AP_paid_$i"}\E/option selected>$form->{"AP_paid_$i"}/;
 
     # format amounts
-    $form->{"paid_$i"} =
-      $form->format_amount(\%myconfig, $form->{"paid_$i"}, 2);
+    if ($form->{"paid_$i"}) {
+      $form->{"paid_$i"} =
+        $form->format_amount(\%myconfig, $form->{"paid_$i"}, 2);
+    }
     $form->{"exchangerate_$i"} =
       $form->format_amount(\%myconfig, $form->{"exchangerate_$i"});
 
@@ -735,7 +749,12 @@ sub form_footer {
     print qq|<input class=submit type=submit name=action value="|
       . $locale->text('Storno') . qq|">
 | unless ($form->{storno});
-
+    if ($form->{radier}) {
+    print qq|
+    <input class=submit type=submit name=action value="|
+      . $locale->text('Delete') . qq|">
+|;
+  }
   } else {
     if ($invdate > $closedto) {
       print qq|<input class=submit type=submit name=action value="|
@@ -815,8 +834,6 @@ sub update {
 
   } else {
 
-    $form->{"selected_unit_$i"} = $form->{"unit_$i"};
-
     IR->retrieve_item(\%myconfig, \%$form);
 
     my $rows = scalar @{ $form->{item_list} };
@@ -963,7 +980,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!'));
@@ -985,6 +1002,12 @@ sub post {
 
   $form->{id} = 0 if $form->{postasnew};
 
+  # 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");
+  }
+
+  relink_accounts();
   $form->redirect(  $locale->text('Invoice')
                   . " $form->{invnumber} "
                   . $locale->text('posted!'))