]> wagnertech.de Git - mfinanz.git/blobdiff - SL/Form.pm
Zahlungsbedingungen bei Lieferscheinen; veraltete Spalte »terms« entfernt
[mfinanz.git] / SL / Form.pm
index 171b5fff41abd038470074bf5f89ca6fd0a1ba90..9209f3a7329f8b217fb22ea2cace67a2482ea266 100644 (file)
@@ -91,7 +91,8 @@ END {
 
 sub disconnect_standard_dbh {
   return unless $standard_dbh;
-  $standard_dbh->disconnect();
+
+  $standard_dbh->rollback();
   undef $standard_dbh;
 }
 
@@ -467,7 +468,7 @@ sub header {
   # standard css for all
   # this should gradually move to the layouts that need it
   $layout->use_stylesheet("$_.css") for qw(
-    main menu list_accounts jquery.autocomplete
+    main menu common list_accounts jquery.autocomplete
     jquery.multiselect2side
     ui-lightness/jquery-ui
     jquery-ui.custom
@@ -476,7 +477,7 @@ sub header {
   $layout->use_javascript("$_.js") for (qw(
     jquery jquery-ui jquery.cookie jquery.checkall jquery.download
     jquery/jquery.form jquery/fixes client_js
-    common part_selection switchmenuframe autocomplete_part
+    common part_selection switchmenuframe
   ), "jquery/ui/i18n/jquery.ui.datepicker-$::myconfig{countrycode}");
 
   $self->{favicon} ||= "favicon.ico";
@@ -947,12 +948,18 @@ sub parse_amount {
 
   # Make sure no code wich is not a math expression ends up in eval().
   return 0 unless $amount =~ /^ [\s \d \( \) \- \+ \* \/ \. ]* $/x;
+
+  # Prevent numbers from being parsed as octals;
+  $amount =~ s{ (?<! [\d.] ) 0+ (?= [1-9] ) }{}gx;
+
   return scalar(eval($amount)) * 1 ;
 }
 
 sub round_amount {
   my ($self, $amount, $places) = @_;
 
+  return 0 if !defined $amount;
+
   # We use Perl's knowledge of string representation for
   # rounding. First, convert the floating point number to a string
   # with a high number of places. Then split the string on the decimal
@@ -1119,7 +1126,7 @@ sub parse_template {
 
   if ($self->{media} eq 'email') {
 
-    my $mail = new Mailer;
+    my $mail = Mailer->new;
 
     map { $mail->{$_} = $self->{$_} }
       qw(cc bcc subject message version format);
@@ -1235,6 +1242,7 @@ sub get_formname_translation {
     sales_delivery_order    => $main::locale->text('Delivery Order'),
     purchase_delivery_order => $main::locale->text('Delivery Order'),
     dunning                 => $main::locale->text('Dunning'),
+    letter                  => $main::locale->text('Letter')
   );
 
   $main::lxdebug->leave_sub();
@@ -1249,8 +1257,13 @@ sub get_number_prefix_for_type {
       (first { $self->{type} eq $_ } qw(invoice credit_note)) ? 'inv'
     : ($self->{type} =~ /_quotation$/)                        ? 'quo'
     : ($self->{type} =~ /_delivery_order$/)                   ? 'do'
+    : ($self->{type} =~ /letter/)                             ? 'letter'
     :                                                           'ord';
 
+  # better default like this?
+  # : ($self->{type} =~ /(sales|purcharse)_order/           :  'ord';
+  # :                                                           'prefix_undefined';
+
   $main::lxdebug->leave_sub();
   return $prefix;
 }
@@ -2387,7 +2400,7 @@ sub get_lists {
   if ($params{contacts} || $params{shipto}) {
     $vc = 'customer' if $self->{"vc"} eq "customer";
     $vc = 'vendor'   if $self->{"vc"} eq "vendor";
-    die "invalid use of get_lists, need 'vc'";
+    die "invalid use of get_lists, need 'vc'" unless $vc;
     $vc_id = $self->{"${vc}_id"};
   }
 
@@ -2430,7 +2443,7 @@ sub get_lists {
   }
 
   if ($params{"salesmen"}) {
-    $self->_get_employees($dbh, "all_salesmen", $params{"salesmen"});
+    $self->_get_employees($dbh, $params{"salesmen"});
   }
 
   if ($params{"business_types"}) {
@@ -2906,7 +2919,6 @@ sub lastname_used {
                     "d.description"           => "department",
                     "ct.name"                 => $table,
                     "cu.name"                 => "currency",
-                    "current_date + ct.terms" => "duedate",
     );
 
   if ($self->{type} =~ /delivery_order/) {