X-Git-Url: http://wagnertech.de/git?p=kivitendo-erp.git;a=blobdiff_plain;f=SL%2FIC.pm;fp=SL%2FIC.pm;h=2a9460745cac60b075bf1840fc3528b65758b792;hp=dc86484b39f7050e52ffec23f8194fd091d1ae25;hb=53593baa211863fbf66540cf1bcc36c8fb37257f;hpb=deb4d2dbb676d7d6f69dfe7815d6e0cb09bd4a44 diff --git a/SL/IC.pm b/SL/IC.pm index dc86484b3..2a9460745 100644 --- a/SL/IC.pm +++ b/SL/IC.pm @@ -25,7 +25,8 @@ # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software -# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, +# MA 02110-1335, USA. #====================================================================== # # Inventory Control backend @@ -36,177 +37,18 @@ package IC; use Data::Dumper; use List::MoreUtils qw(all any uniq); -use YAML; use SL::CVar; use SL::DBUtils; use SL::HTML::Restrict; use SL::TransNumber; +use SL::Util qw(trim); +use SL::DB; +use SL::Presenter::Part qw(type_abbreviation classification_abbreviation separate_abbreviation); +use Carp; use strict; -sub get_part { - $main::lxdebug->enter_sub(); - - my ($self, $myconfig, $form) = @_; - - # connect to db - my $dbh = $form->get_standard_dbh; - - my $sth; - - my $query = - qq|SELECT p.*, - c1.accno AS inventory_accno, - c2.accno AS income_accno, - c3.accno AS expense_accno, - pg.partsgroup - FROM parts p - LEFT JOIN chart c1 ON (p.inventory_accno_id = c1.id) - LEFT JOIN chart c2 ON (p.income_accno_id = c2.id) - LEFT JOIN chart c3 ON (p.expense_accno_id = c3.id) - LEFT JOIN partsgroup pg ON (p.partsgroup_id = pg.id) - WHERE p.id = ? |; - my $ref = selectfirst_hashref_query($form, $dbh, $query, conv_i($form->{id})); - - # copy to $form variables - map { $form->{$_} = $ref->{$_} } (keys %{$ref}); - - $form->{mtime} = $form->{itime} if !$form->{mtime}; - $form->{lastmtime} = $form->{mtime}; - $form->{onhand} *= 1; - - # part or service item - $form->{item} = ($form->{inventory_accno}) ? 'part' : 'service'; - if ($form->{assembly}) { - $form->{item} = 'assembly'; - - # retrieve assembly items - $query = - qq|SELECT p.id, p.partnumber, p.description, - p.sellprice, p.lastcost, p.weight, a.qty, a.bom, p.unit, - pg.partsgroup, p.price_factor_id, pfac.factor AS price_factor - FROM parts p - JOIN assembly a ON (a.parts_id = p.id) - LEFT JOIN partsgroup pg ON (p.partsgroup_id = pg.id) - LEFT JOIN price_factors pfac ON pfac.id = p.price_factor_id - WHERE (a.id = ?) - ORDER BY a.oid|; - $sth = prepare_execute_query($form, $dbh, $query, conv_i($form->{id})); - - $form->{assembly_rows} = 0; - while (my $ref = $sth->fetchrow_hashref("NAME_lc")) { - $form->{assembly_rows}++; - foreach my $key (keys %{$ref}) { - $form->{"${key}_$form->{assembly_rows}"} = $ref->{$key}; - } - } - $sth->finish; - - } - - # setup accno hash for