X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FOE.pm;h=28e3975c3c1163991f8e79a2918815ea4d7ec81f;hb=327e6e57d242cd915f656fc95b2f485a494700e6;hp=99626200503e48e9d0df09bfc5d329f67277906e;hpb=92331b8e3417f4a28db17f7af1b8154e985c4da1;p=kivitendo-erp.git diff --git a/SL/OE.pm b/SL/OE.pm index 996262005..28e3975c3 100644 --- a/SL/OE.pm +++ b/SL/OE.pm @@ -559,18 +559,18 @@ sub save { } } - $self->save_periodic_invoices_config(dbh => $dbh, - oe_id => $form->{id}, - config_yaml => $form->{periodic_invoices_config}) - if ($form->{type} eq 'sales_order'); - $form->{saved_xyznumber} = $form->{$form->{type} =~ /_quotation$/ ? "quonumber" : "ordnumber"}; - Common::webdav_folder($form) if ($main::webdav); + Common::webdav_folder($form); my $rc = $dbh->commit; + $self->save_periodic_invoices_config(dbh => $dbh, + oe_id => $form->{id}, + config_yaml => $form->{periodic_invoices_config}) + if ($form->{type} eq 'sales_order'); + $main::lxdebug->leave_sub(); return $rc; @@ -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;