diff options
Diffstat (limited to 'scripts/vendor.pl')
-rw-r--r-- | scripts/vendor.pl | 179 |
1 files changed, 179 insertions, 0 deletions
diff --git a/scripts/vendor.pl b/scripts/vendor.pl new file mode 100644 index 00000000..c8c21503 --- /dev/null +++ b/scripts/vendor.pl @@ -0,0 +1,179 @@ + +=pod + +=head1 NAME + +LedgerSMB::Scripts::Vendor - LedgerSMB class defining the Controller +functions, template instantiation and rendering for Vendor editing and display. + +=head1 SYOPSIS + +This module is the UI controller for the Vendor DB access; it provides the +View interface, as well as defines the Save Vendor. +Save vendor will update or create as needed. + + +=head1 METHODS + +=cut + +package LedgerSMB::Scripts::Vendor; + +use LedgerSMB::Template; +use LedgerSMB::DBObject::Vendor; + +=pod + +=over + +=item get($self, $request, $user) + +Requires form var: id + +Extracts a single Vendor from the database, using its company ID as the primary +point of uniqueness. Shows (appropriate to user privileges) and allows editing +of the vendor informations. + +=back + +=cut + +sub get { + + my ($class, $request) = @_; + my $vendor = LedgerSMB::DBObject::Vendor->new(base => $request, copy => 'all'); + my $result = $vendor->get($vendor->{id}); + + my $template = LedgerSMB::Template->new( user => $user, + template => 'vendor.html', language => $user->{language}, + format => 'html'); + $template->render($results); + +} + +=pod + +=over + +=item search($self, $request, $user) + +Requires form var: search_pattern + +Directly calls the database function search, and returns a set of all vendors +found that match the search parameters. Search parameters search over address +as well as Vendor/Company name. + +=back + +=cut + +sub search { + my ($class, $request) = @_; + my $vendor = LedgerSMB::DBObject::Vendor->new(base => $request, copy => 'all'); + my $results = $vendor->search($vendor->{search_pattern}); + + my $template = LedgerSMB::Template->new( user => $user, + template => 'vendor_search.html', language => $user->{language}, + format => 'html'); + $template->render($results); +} + +=pod + +=over + +=item save($self, $request, $user) + +Saves a Vendor to the database. The function will update or insert a new +vendor as needed, and will generate a new Company ID for the vendor if needed. + +=back + +=cut + +sub save { + + my ($class, $request) = @_; + my $vendor = LedgerSMB::DBObject::Vendor->new(base => $request, copy => 'all'); + my $result = $vendor->save_to_db(); + + my $template = LedgerSMB::Template->new( user => $user, + template => 'vendor.html', language => $user->{language}, + format => 'html'); + $template->render($result); +} + +=pod + +=over + +=item vendor_invoice($self, $request, $user) + +Added based on existing New Vendor screen. + +=back + +=cut + + +sub vendor_invoice { + + +} + +=pod + +=over + +=item purchase_order($self, $request, $user) + +Added based on existing New Vendor screen. + +=back + +=cut + +sub purchase_order { + + +} + +=pod + +=over + +=item rfq($self, $request, $user) + +Added based on existing New Vendor screen. + +=back + +=cut + +sub rfq { + + $self->save(@_); + my ($class, $request) = @_; + # saves a new vendor, then generates something. + +} + +=pod + +=over + +=item pricelist($self, $request, $user) + +Added based on existing New Vendor screen. + +=back + +=cut + +sub pricelist { + + + +} + +1; |