From ca962db7ea7be04e01249ace4cf2cc036dbe23b2 Mon Sep 17 00:00:00 2001 From: einhverfr Date: Sat, 29 Dec 2007 02:17:13 +0000 Subject: Adding basic outline of inventory adjustment mechanisms and screens. Objects and stored procs still to do. git-svn-id: https://ledger-smb.svn.sourceforge.net/svnroot/ledger-smb/trunk@2017 4979c152-3d1c-0410-bac9-87ea11338e46 --- inventory.pl | 2 + scripts/inventory.pl | 120 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 122 insertions(+) create mode 100755 inventory.pl create mode 100644 scripts/inventory.pl diff --git a/inventory.pl b/inventory.pl new file mode 100755 index 00000000..aaef226d --- /dev/null +++ b/inventory.pl @@ -0,0 +1,2 @@ +#!/usr/bin/perl +require "lsmb-request.pl"; diff --git a/scripts/inventory.pl b/scripts/inventory.pl new file mode 100644 index 00000000..04f5388d --- /dev/null +++ b/scripts/inventory.pl @@ -0,0 +1,120 @@ +=pod + +=head1 NAME + +LedgerSMB::Scripts::inventory - LedgerSMB class defining the Controller +functions, template instantiation and rendering for inventory management. + +=head1 SYOPSIS + +This module is the UI controller for the customer DB access; it provides the +View interface, as well as defines the Save customer. +Save customer will update or create as needed. + + +=head1 METHODS + +=cut + +package LedgerSMB::Scripts::customer; + +use LedgerSMB::Template; +use LedgerSMB::DBObject::Customer; + +require 'lsmb-request.pl'; + +=over + +=item begin_adjust + +This entry point specifies the screen for setting up an inventory adjustment. + +=back + +=cut + +sub begin_adjust { + my ($request) = @_; + my $template = LedgerSMB::Template->new( + user => $request->{_user}, + template => 'adjustment_setup', + locale => $request->{_locale}, + path => 'UI/inventory', + format => 'HTML' + ); + $template->render($request); +} + +=over + +=item enter_adjust + +This entry point specifies the screen for entering an inventory adjustment. + +=back + +=cut + +sub enter_adjust { + my ($request) = @_; + my $adjustment = LedgerSMB::DBObject::Inventory->new(base => $request); + my $template = LedgerSMB::Template->new( + user => $request->{_user}, + template => 'adjustment_entry', + locale => $request->{_locale}, + path => 'UI/inventory', + format => 'HTML' + ); + $template->render($adjustment); +} + + +=over + +=item adjustment_next + +This function is triggered on the next button on the adjustment entry screen. +It retrieves inventory information, calculates adjustment values, and displays the +screen. + +=back + +=cut + +sub adjustment_next { + my ($request) = @_; + my $adjustment = LedgerSMB::DBObject::Inventory->new(base => $request); + for my $i (1 .. $adjustment->{rowcount}){ + if ($adjustment->{"row_$i"} eq "new"){ + my $item = $adjustment->retrieve_item_at_date( + $adjustment->{"partnumber_new_$i"}); + $adjustment->{"row_$i"} = $item->{id}; + $adjustment->{"description_$i"} = $item->{description}; + $adjustment->{"onhand_$i"} = $item->{onhand}}; + } + $adjustment->{"qty_$i"} = $adjustment->{"onhand_$i"} + - $adjustment->{"counted_$i"}; + } + ++$adjustment->{rowcount}; + enter_adjust($adjustment); +} + +=over + +=item adjustment_save + +This function saves the inventory adjustment report and then creates the required +invoices. + +=back + +=cut + +sub adjustment_save { + my ($request) = @_; + my $adjustment = LedgerSMB::DBObject::Inventory->new(base => $request); + $adjustment->save; + begin_adjust($request); +} + +1; -- cgit v1.2.3