Merge branch 'after-262'
[kivitendo-erp.git] / SL / OE.pm
index 9962620..8adaf6a 100644 (file)
--- a/SL/OE.pm
+++ b/SL/OE.pm
@@ -567,7 +567,7 @@ sub save {
   $form->{saved_xyznumber} = $form->{$form->{type} =~ /_quotation$/ ?
                                        "quonumber" : "ordnumber"};
 
-  Common::webdav_folder($form) if ($main::webdav);
+  Common::webdav_folder($form);
 
   my $rc = $dbh->commit;
 
@@ -589,6 +589,23 @@ sub save_periodic_invoices_config {
   $obj->update_attributes(%{ $config });
 }
 
+sub load_periodic_invoice_config {
+  my $self = shift;
+  my $form = shift;
+
+  delete $form->{periodic_invoices_config};
+
+  if ($form->{id}) {
+    my $config_obj = SL::DB::Manager::PeriodicInvoicesConfig->find_by(oe_id => $form->{id});
+
+    if ($config_obj) {
+      my $config = { map { $_ => $config_obj->$_ } qw(active terminated periodicity start_date_as_date end_date_as_date extend_automatically_by ar_chart_id
+                                                      print printer_id copies) };
+      $form->{periodic_invoices_config} = YAML::Dump($config);
+    }
+  }
+}
+
 sub _close_quotations_rfqs {
   $main::lxdebug->enter_sub();
 
@@ -638,7 +655,7 @@ sub _close_quotations_rfqs {
 sub delete {
   $main::lxdebug->enter_sub();
 
-  my ($self, $myconfig, $form, $spool) = @_;
+  my ($self, $myconfig, $form) = @_;
 
   # connect to database
   my $dbh = $form->dbconnect_noauto($myconfig);
@@ -688,6 +705,7 @@ sub delete {
   $dbh->disconnect;
 
   if ($rc) {
+    my $spool = $::lx_office_conf{paths}->{spool};
     foreach $spoolfile (@spoolfiles) {
       unlink "$spool/$spoolfile" if $spoolfile;
     }
@@ -965,14 +983,6 @@ sub retrieve {
     }
     $sth->finish;
 
-    delete $form->{periodic_invoices_config};
-    if ($form->{id} && ($form->{type} eq 'sales_order')) {
-      $query = qq|SELECT periodicity, start_date, print, printer_id, copies, active, ar_chart_id FROM periodic_invoices_configs WHERE oe_id = ? LIMIT 1|;
-      $ref   = selectfirst_hashref_query($form, $dbh, $query, conv_i($form->{id}));
-
-      $form->{periodic_invoices_config} = YAML::Dump($ref) if ($ref);
-    }
-
   } else {
 
     # get last name used
@@ -983,7 +993,9 @@ sub retrieve {
 
   $form->{exchangerate} = $form->get_exchangerate($dbh, $form->{currency}, $form->{transdate}, ($form->{vc} eq 'customer') ? "buy" : "sell");
 
-  Common::webdav_folder($form) if ($main::webdav);
+  Common::webdav_folder($form);
+
+  $self->load_periodic_invoice_config($form);
 
   my $rc = $dbh->commit;