X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;ds=sidebyside;f=SL%2FIR.pm;h=8bd2f5f535626f6136ffdf37dcb12fb27df5664a;hb=054633019b5bf3df798cc31a82dc2c8608a72316;hp=dd042488bd6299675580cf7c26003ebe6dc493d0;hpb=d557935a1484e5ebbb15f0eabe107d74e192ff0b;p=kivitendo-erp.git diff --git a/SL/IR.pm b/SL/IR.pm index dd042488b..8bd2f5f53 100644 --- a/SL/IR.pm +++ b/SL/IR.pm @@ -369,7 +369,12 @@ sub post_invoice { next if $payments_only; - my $cvars; + CVar->get_non_editable_ic_cvars(form => $form, + dbh => $dbh, + row => $i, + sub_module => 'invoice', + may_converted_from => ['delivery_order_items', 'orderitems', 'invoice']); + if (!$form->{"invoice_id_$i"}) { # there is no persistent id, therefore create one with all necessary constraints my $q_invoice_id = qq|SELECT nextval('invoiceid')|; @@ -380,22 +385,7 @@ sub post_invoice { do_query($form, $dbh, $q_create_invoice_id, conv_i($form->{"invoice_id_$i"}), conv_i($form->{id}), conv_i($position), conv_i($form->{"id_$i"})); $h_invoice_id->finish(); - - # get values for CVars from master data for new items - $cvars = CVar->get_custom_variables(dbh => $dbh, - module => 'IC', - trans_id => $form->{"id_$i"}, - ); - } else { - # get values for CVars from custom_variables for existing items - $cvars = CVar->get_custom_variables(dbh => $dbh, - module => 'IC', - sub_module => 'invoice', - trans_id => $form->{"invoice_id_$i"}, - ); } - # map only non-editable CVars to form (editable ones are already there) - map { $form->{"ic_cvar_$_->{name}_$i"} = $_->{value} unless $_->{flag_editable} } @{ $cvars }; # save detail record in invoice table $query = < 'ic_', name_postfix => "_$i", dbh => $dbh); + # link previous items with invoice items See IS.pm (no credit note -> no invoice item) foreach (qw(delivery_order_items orderitems)) { - if ($form->{"converted_from_${_}_id_$i"}) { + if (!$form->{useasnew} && $form->{"converted_from_${_}_id_$i"}) { RecordLinks->create_links('dbh' => $dbh, 'mode' => 'ids', 'from_table' => $_, @@ -436,8 +427,8 @@ SQL 'to_table' => 'invoice', 'to_id' => $form->{"invoice_id_$i"}, ); - delete $form->{"converted_from_${_}_id_$i"}; } + delete $form->{"converted_from_${_}_id_$i"}; } } @@ -731,7 +722,7 @@ SQL $form->{invnumber}, $form->{ordnumber}, $form->{quonumber}, conv_date($form->{invdate}), conv_date($form->{orddate}), conv_date($form->{quodate}), conv_i($form->{vendor_id}), $amount, $netamount, $form->{paid}, conv_date($form->{duedate}), - '1', $taxzone_id, $form->{notes}, $form->{taxincluded} ? 't' : 'f', + '1', $taxzone_id, $restricter->process($form->{notes}), $form->{taxincluded} ? 't' : 'f', $form->{intnotes}, conv_i($form->{storno_id}), $form->{storno} ? 't' : 'f', conv_i($form->{cp_id}), conv_i($form->{employee_id}), conv_i($form->{department_id}), conv_i($form->{delivery_term_id}), conv_i($form->{globalproject_id}), @@ -816,8 +807,6 @@ SQL exporttype => DATEV_ET_BUCHUNGEN, format => DATEV_FORMAT_KNE, dbh => $dbh, - from => $transdate, - to => $transdate, trans_id => $form->{id}, ); @@ -1144,7 +1133,7 @@ sub get_vendor { v.email, v.cc, v.bcc, v.language_id, v.payment_id, v.delivery_term_id, v.street, v.zipcode, v.city, v.country, v.taxzone_id, cu.name AS curr, v.direct_debit, $duedate + COALESCE(pt.terms_netto, 0) AS duedate, - b.description AS business + b.discount AS tradediscount, b.description AS business FROM vendor v LEFT JOIN business b ON (b.id = v.business_id) LEFT JOIN payment_terms pt ON (v.payment_id = pt.id) @@ -1656,5 +1645,4 @@ sub get_duedate { return $duedate; } - 1;