Zahlungsbedingungen nicht unter Angebot/Auftrag überschreiben.
[kivitendo-erp.git] / bin / mozilla / oe.pl
index c1b281c..9508f73 100644 (file)
@@ -153,6 +153,8 @@ sub edit {
 
   check_oe_access();
 
+  $form->{taxincluded_changed_by_user} = 1;
+
   # show history button
   $form->{javascript} = qq|<script type="text/javascript" src="js/show_history.js"></script>|;
   #/show hhistory button
@@ -475,6 +477,14 @@ sub form_footer {
   $TMPL_VAR{notes}    = qq|<textarea name=notes rows="$rows" cols="25">| . H($form->{notes}) . qq|</textarea>|;
   $TMPL_VAR{intnotes} = qq|<textarea name=intnotes rows="$introws" cols="35">| . H($form->{intnotes}) . qq|</textarea>|;
 
+  my $paymet_id = $::form->{payment_id};
+  IS->get_customer(\%myconfig, $::form) if $form->{type} =~ /sales_(order|quotation)/;
+  $::form->{payment_id} = $paymet_id;
+
+  if ( $form->{vc} eq 'customer' && !$form->{taxincluded_changed_by_user} ) {
+    $form->{taxincluded} = defined($form->{taxincluded_checked}) ? $form->{taxincluded_checked} : $myconfig{taxincluded_checked};
+  }
+
   if (!$form->{taxincluded}) {
 
     foreach my $item (split / /, $form->{taxaccounts}) {
@@ -771,6 +781,7 @@ sub orders {
   my @columns = (
     "transdate",               "reqdate",
     "id",                      $ordnumber,
+    "customernumber",
     "name",                    "netamount",
     "tax",                     "amount",
     "curr",                    "employee",
@@ -830,6 +841,7 @@ sub orders {
     'ordnumber'               => { 'text' => $locale->text('Order'), },
     'quonumber'               => { 'text' => $form->{type} eq "request_quotation" ? $locale->text('RFQ') : $locale->text('Quotation'), },
     'name'                    => { 'text' => $form->{vc} eq 'customer' ? $locale->text('Customer') : $locale->text('Vendor'), },
+    'customernumber'          => { 'text' => $locale->text('Customer Number'), },
     'netamount'               => { 'text' => $locale->text('Amount'), },
     'tax'                     => { 'text' => $locale->text('Tax'), },
     'amount'                  => { 'text' => $locale->text('Total'), },
@@ -1617,11 +1629,25 @@ sub save_as_new {
     delete($form->{$idx});
   }
 
-  # clear reqdate unless changed
-  if ($form->{reqdate} && $form->{id}) {
+  # clear reqdate and transdate unless changed
+  if ( $form->{reqdate} && $form->{id} ) {
     my $saved_order = OE->retrieve_simple(id => $form->{id});
-    if ($saved_order && $saved_order->{reqdate} eq $form->{reqdate}) {
-      delete $form->{reqdate};
+    if ( $saved_order && $saved_order->{reqdate} eq $form->{reqdate} && $saved_order->{transdate} eq $form->{transdate} ) {
+
+      my $dbh = $form->get_standard_dbh;
+
+      my $wday         = (localtime(time))[6];
+      my $next_workday = $wday == 5 ? 3 : $wday == 6 ? 2 : 1;
+
+      my $query = 'SELECT
+                     date(current_date + interval \''. $next_workday .' days\') AS reqdate,
+                     date(current_date) AS transdate';
+      my $ref = selectfirst_hashref_query($form, $dbh, $query);
+
+      map(
+        { $form->{$_} = $ref->{$_} }
+        keys %{$ref}
+      );
     }
   }