X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FOE.pm;h=40b29f4a1b7dcfec0ed6f3877d0b4582cd96ac5e;hb=fdfa491825c63dfd18be378083206c3806b2a02d;hp=a0a0abfc89d79b99fd958246f3f0c320b3b129a3;hpb=01591fa72e7ca4af7143a573170a78e431728c92;p=kivitendo-erp.git diff --git a/SL/OE.pm b/SL/OE.pm index a0a0abfc8..40b29f4a1 100644 --- a/SL/OE.pm +++ b/SL/OE.pm @@ -36,7 +36,6 @@ package OE; use List::Util qw(max first); -use YAML; use SL::AM; use SL::Common; @@ -53,6 +52,7 @@ use SL::IC; use SL::TransNumber; use SL::Util qw(trim); use SL::DB; +use SL::YAML; use Text::ParseWords; use strict; @@ -816,7 +816,7 @@ sub save_periodic_invoices_config { return if !$params{oe_id}; - my $config = $params{config_yaml} ? YAML::Load($params{config_yaml}) : undef; + my $config = $params{config_yaml} ? SL::YAML::Load($params{config_yaml}) : undef; return if 'HASH' ne ref $config; my $obj = SL::DB::Manager::PeriodicInvoicesConfig->find_by(oe_id => $params{oe_id}) @@ -836,7 +836,7 @@ sub load_periodic_invoice_config { if ($config_obj) { my $config = { map { $_ => $config_obj->$_ } qw(active terminated periodicity order_value_periodicity start_date_as_date end_date_as_date first_billing_date_as_date extend_automatically_by ar_chart_id print printer_id copies direct_debit send_email email_recipient_contact_id email_recipient_address email_sender email_subject email_body) }; - $form->{periodic_invoices_config} = YAML::Dump($config); + $form->{periodic_invoices_config} = SL::YAML::Dump($config); } } } @@ -958,7 +958,8 @@ sub _retrieve { $form->{useasnew} = 1 if $is_collective_order == 1; if (!$form->{id}) { - my $extra_days = $form->{type} eq 'sales_quotation' ? $::instance_conf->get_reqdate_interval : 1; + my $extra_days = $form->{type} eq 'sales_quotation' ? $::instance_conf->get_reqdate_interval : + $form->{type} eq 'sales_order' ? $::instance_conf->get_delivery_date_interval : 1; $form->{reqdate} = DateTime->today_local->next_workday(extra_days => $extra_days)->to_kivitendo; $form->{transdate} = DateTime->today_local->to_kivitendo; } @@ -1176,8 +1177,9 @@ sub _retrieve { # get tax rates and description my $accno_id = ($form->{vc} eq "customer") ? $ref->{income_accno} : $ref->{expense_accno}; $query = - qq|SELECT c.accno, t.taxdescription, t.rate, t.taxnumber | . - qq|FROM tax t LEFT JOIN chart c on (c.id = t.chart_id) | . + qq|SELECT c.accno, t.taxdescription, t.rate, c.accno as taxnumber | . + qq|FROM tax t | . + qq|LEFT JOIN chart c on (c.id = t.chart_id) | . qq|WHERE t.id IN (SELECT tk.tax_id FROM taxkeys tk | . qq| WHERE tk.chart_id = (SELECT id FROM chart WHERE accno = ?) | . qq| AND startdate <= $transdate ORDER BY startdate DESC LIMIT 1) | . @@ -1505,7 +1507,7 @@ sub order_details { $tax_rate = $taxrate * 100; push(@{ $form->{TEMPLATE_ARRAYS}->{tax_rate} }, qq|$tax_rate|); - if ($form->{"assembly_$i"}) { + if ($form->{"part_type_$i"} eq 'assembly') { $sameitem = ""; # get parts and push them onto the stack @@ -1573,7 +1575,14 @@ sub order_details { push(@{ $form->{TEMPLATE_ARRAYS}->{taxrate_nofmt} }, $form->{"${item}_rate"} * 100); push(@{ $form->{TEMPLATE_ARRAYS}->{taxnumber} }, $form->{"${item}_taxnumber"}); - my $tax_obj = SL::DB::Manager::Tax->find_by(taxnumber => $form->{"${item}_taxnumber"}); + my $tax_objs = SL::DB::Manager::Tax->get_objects_from_sql( + sql => 'SELECT * from tax where chart_id = (SELECT id FROM chart WHERE accno = ?)', + args => [ $form->{"${item}_taxnumber"} ] + ); + my $tax_obj; + if ( $tax_objs ) { + $tax_obj = $tax_objs->[0]; + } my $description = $tax_obj ? $tax_obj->translated_attribute('taxdescription', $form->{language_id}, 0) : ''; push(@{ $form->{TEMPLATE_ARRAYS}->{taxdescription} }, $description . q{ } . 100 * $form->{"${item}_rate"} . q{%}); } @@ -1616,19 +1625,6 @@ sub order_details { $main::lxdebug->leave_sub(); } -sub project_description { - $main::lxdebug->enter_sub(); - - my ($self, $dbh, $id) = @_; - - my $query = qq|SELECT description FROM project WHERE id = ?|; - my ($value) = selectrow_query($main::form, $dbh, $query, $id); - - $main::lxdebug->leave_sub(); - - return $value; -} - 1; __END__