X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FIC.pm;h=b99ec2aad4ac2d8b472542b8afdff3af61646da6;hb=3ac83c6134a876990a2b5e26075e4304b3ce1cae;hp=d458862ea93af548ce46fe044f9137a723e3be77;hpb=0c28bb82b805b07543debaf08061b58d0b437c07;p=kivitendo-erp.git diff --git a/SL/IC.pm b/SL/IC.pm index d458862ea..b99ec2aad 100644 --- a/SL/IC.pm +++ b/SL/IC.pm @@ -50,7 +50,7 @@ sub get_part { my ($self, $myconfig, $form) = @_; # connect to db - my $dbh = $form->dbconnect($myconfig); + my $dbh = $form->get_standard_dbh; my $sth; @@ -157,7 +157,7 @@ SQL $trq->finish; # is it an orphan - my @referencing_tables = qw(invoice orderitems inventory rmaitems); + my @referencing_tables = qw(invoice orderitems inventory); my %column_map = ( ); my $parts_id = conv_i($form->{id}); @@ -176,7 +176,7 @@ SQL $form->{"unit_changeable"} = $form->{orphaned}; - $dbh->disconnect; + Common::webdav_folder($form) if $::lx_office_conf{features}{webdav}; $main::lxdebug->leave_sub(); } @@ -186,7 +186,7 @@ sub get_pricegroups { my ($self, $myconfig, $form) = @_; - my $dbh = $form->dbconnect($myconfig); + my $dbh = $form->get_standard_dbh; # get pricegroups my $query = qq|SELECT id, pricegroup FROM pricegroup ORDER BY lower(pricegroup)|; @@ -204,8 +204,6 @@ sub get_pricegroups { #correct rows $form->{price_rows} = $i - 1; - $dbh->disconnect; - $main::lxdebug->leave_sub(); return $pricegroups; @@ -218,7 +216,7 @@ sub retrieve_buchungsgruppen { my ($query, $sth); - my $dbh = $form->dbconnect($myconfig); + my $dbh = $form->get_standard_dbh; # get buchungsgruppen $query = qq|SELECT id, description FROM buchungsgruppen ORDER BY sortkey|; @@ -346,7 +344,8 @@ sub save { notes = ?, formel = ?, rop = ?, - bin = ?, + warehouse_id = ?, + bin_id = ?, buchungsgruppen_id = ?, payment_id = ?, inventory_accno_id = $subq_inventory, @@ -378,7 +377,8 @@ sub save { $form->{notes}, $form->{formel}, $form->{rop}, - $form->{bin}, + conv_i($form->{warehouse_id}), + conv_i($form->{bin_id}), conv_i($form->{buchungsgruppen_id}), conv_i($form->{payment_id}), conv_i($form->{buchungsgruppen_id}), @@ -549,7 +549,7 @@ sub retrieve_assemblies { my ($self, $myconfig, $form) = @_; # connect to database - my $dbh = $form->dbconnect($myconfig); + my $dbh = $form->get_standard_dbh; my $where = qq|NOT p.obsolete|; my @values; @@ -567,7 +567,7 @@ sub retrieve_assemblies { # retrieve assembly items my $query = qq|SELECT p.id, p.partnumber, p.description, - p.bin, p.onhand, p.rop, + p.onhand, p.rop, (SELECT sum(p2.inventory_accno_id) FROM parts p2, assembly a WHERE (p2.id = a.parts_id) AND (a.id = p.id)) AS inventory @@ -576,8 +576,6 @@ sub retrieve_assemblies { $form->{assembly_items} = selectall_hashref_query($form, $dbh, $query, @values); - $dbh->disconnect; - $main::lxdebug->leave_sub(); } @@ -587,7 +585,7 @@ sub delete { my ($self, $myconfig, $form) = @_; my @values = (conv_i($form->{id})); # connect to database, turn off AutoCommit - my $dbh = $form->dbconnect_noauto($myconfig); + my $dbh = $form->get_standard_dbh; my %columns = ( "assembly" => "id", "parts" => "id" ); @@ -598,7 +596,6 @@ sub delete { # commit my $rc = $dbh->commit; - $dbh->disconnect; $main::lxdebug->leave_sub(); @@ -641,7 +638,7 @@ sub assembly_item { } # connect to database - my $dbh = $form->dbconnect($myconfig); + my $dbh = $form->get_standard_dbh; my $query = qq|SELECT p.id, p.partnumber, p.description, p.sellprice, @@ -653,8 +650,6 @@ sub assembly_item { WHERE $where|; $form->{item_list} = selectall_hashref_query($form, $dbh, $query, @values); - $dbh->disconnect; - $main::lxdebug->leave_sub(); } @@ -671,7 +666,7 @@ sub assembly_item { # partnumber ean description partsgroup microfiche drawing # # column flags: -# l_partnumber l_description l_listprice l_sellprice l_lastcost l_priceupdate l_weight l_unit l_bin l_rop l_image l_drawing l_microfiche l_partsgroup +# l_partnumber l_description l_listprice l_sellprice l_lastcost l_priceupdate l_weight l_unit l_rop l_image l_drawing l_microfiche l_partsgroup # # exclusives: # itemstatus = active | onhand | short | obsolete | orphaned @@ -721,7 +716,7 @@ sub all_parts { my @apoe_filters = qw(transdate); my @like_filters = (@simple_filters, @invoice_oi_filters); my @all_columns = (@simple_filters, @makemodel_filters, @apoe_filters, @project_filters, qw(serialnumber)); - my @simple_l_switches = (@all_columns, qw(notes listprice sellprice lastcost priceupdate weight unit bin rop image)); + my @simple_l_switches = (@all_columns, qw(notes listprice sellprice lastcost priceupdate weight unit rop image)); my @oe_flags = qw(bought sold onorder ordered rfq quoted); my @qsooqr_flags = qw(invnumber ordnumber quonumber trans_id name module qty); my @deliverydate_flags = qw(deliverydate); @@ -964,7 +959,7 @@ sub all_parts { my $token_builder = $make_token_builder->(\%joins_needed); - my @sort_cols = (@simple_filters, qw(id bin priceupdate onhand invnumber ordnumber quonumber name serialnumber soldtotal deliverydate)); + my @sort_cols = (@simple_filters, qw(id priceupdate onhand invnumber ordnumber quonumber name serialnumber soldtotal deliverydate)); $form->{sort} = 'id' unless grep { $form->{"l_$_"} } grep { $form->{sort} eq $_ } @sort_cols; # sort by id if unknown or invisible column my $sort_order = ($form->{revers} ? ' DESC' : ' ASC'); my $order_clause = " ORDER BY " . $token_builder->($form->{sort}) . ($form->{revers} ? ' DESC' : ' ASC'); @@ -1022,7 +1017,7 @@ sub all_parts { if ($form->{searchitems} eq 'assembly' && $form->{bom}) { $query = qq|SELECT p.id, p.partnumber, p.description, a.qty AS onhand, - p.unit, p.bin, p.notes, + p.unit, p.notes, p.sellprice, p.listprice, p.lastcost, p.rop, p.weight, p.priceupdate, p.image, p.drawing, p.microfiche, @@ -1201,7 +1196,7 @@ sub update_prices { my $num_updated = 0; # connect to database - my $dbh = $form->dbconnect_noauto($myconfig); + my $dbh = $form->get_standard_dbh; for my $column (qw(sellprice listprice)) { next if ($form->{$column} eq ""); @@ -1262,7 +1257,6 @@ sub update_prices { $sth_multiply->finish(); my $rc= $dbh->commit; - $dbh->disconnect; $main::lxdebug->leave_sub(); @@ -1275,7 +1269,7 @@ sub create_links { my ($self, $module, $myconfig, $form) = @_; # connect to database - my $dbh = $form->dbconnect($myconfig); + my $dbh = $form->get_standard_dbh; my @values = ('%' . $module . '%'); my $query; @@ -1331,7 +1325,6 @@ sub create_links { ($form->{priceupdate}) = selectrow_query($form, $dbh, qq|SELECT current_date|); } - $dbh->disconnect; $main::lxdebug->leave_sub(); } @@ -1340,7 +1333,7 @@ sub get_parts { $main::lxdebug->enter_sub(); my ($self, $myconfig, $form, $sortorder) = @_; - my $dbh = $form->dbconnect($myconfig); + my $dbh = $form->get_standard_dbh; my $order = qq| p.partnumber|; my $where = qq|1 = 1|; my @values; @@ -1383,7 +1376,6 @@ sub get_parts { } #while $form->{rows} = $j; $sth->finish; - $dbh->disconnect; $main::lxdebug->leave_sub(); @@ -1411,7 +1403,7 @@ sub retrieve_languages { my ($self, $myconfig, $form) = @_; # connect to database - my $dbh = $form->dbconnect($myconfig); + my $dbh = $form->get_standard_dbh; my @values; my $where; @@ -1433,8 +1425,6 @@ sub retrieve_languages { my $languages = selectall_hashref_query($form, $dbh, $query, @values); - $dbh->disconnect; - $main::lxdebug->leave_sub(); return $languages; @@ -1487,8 +1477,22 @@ sub retrieve_accounts { # transdate madness. my $transdate = ""; - if ($form->{type} eq "invoice") { - if (($form->{vc} eq "vendor") || !$form->{deliverydate}) { + if ($form->{type} eq "invoice" or $form->{type} eq "credit_note") { + # use deliverydate for sales and purchase invoice, if it exists + # also use deliverydate for credit notes + if (!$form->{deliverydate}) { + $transdate = $form->{invdate}; + } else { + $transdate = $form->{deliverydate}; + } + } elsif ($form->{script} eq 'ir.pl') { + # when a purchase invoice is opened from the report of purchase invoices + # $form->{type} isn't set, but $form->{script} is, not sure why this is or + # whether this distinction matters in some other scenario. Otherwise one + # could probably take out this elsif and add a + # " or $form->{script} eq 'ir.pl' " + # to the above if-statement + if (!$form->{deliverydate}) { $transdate = $form->{invdate}; } else { $transdate = $form->{deliverydate}; @@ -1497,6 +1501,8 @@ sub retrieve_accounts { # if credit_note has a deliverydate, use this instead of invdate # useful for credit_notes of invoices from an old period with different tax # if there is no deliverydate then invdate is used, old default (see next elsif) + # Falls hier der Stichtag für Steuern anders bestimmt wird, + # entsprechend auch bei Taxkeys.pm anpassen $transdate = $form->{deliverydate}; } elsif (($form->{type} eq "credit_note") || ($form->{script} eq 'ir.pl')) { $transdate = $form->{invdate}; @@ -1616,8 +1622,8 @@ sub prepare_parts_for_printing { my $self = shift; my %params = @_; - my $myconfig = \%main::myconfig; - my $form = $main::form; + my $myconfig = $params{myconfig} || \%main::myconfig; + my $form = $params{form} || $main::form; my $dbh = $params{dbh} || $form->get_standard_dbh($myconfig);