summaryrefslogtreecommitdiff
path: root/scripts/vendor.pl
diff options
context:
space:
mode:
authoreinhverfr <einhverfr@4979c152-3d1c-0410-bac9-87ea11338e46>2007-11-25 20:31:25 +0000
committereinhverfr <einhverfr@4979c152-3d1c-0410-bac9-87ea11338e46>2007-11-25 20:31:25 +0000
commit6ba31595b6b366423e3e5f40e64c7707f34eb006 (patch)
tree5dfdf3880013f5c9e999ff31b92e2363cbc5db95 /scripts/vendor.pl
parentd63d2487d738b5273f0bb00d9caf8dce591ac91e (diff)
Moving vendor workflow script to refactored code. TODO: Refactor customer/vendor/employee workflow scripts to move common functionality to standard file.
git-svn-id: https://ledger-smb.svn.sourceforge.net/svnroot/ledger-smb/trunk@1902 4979c152-3d1c-0410-bac9-87ea11338e46
Diffstat (limited to 'scripts/vendor.pl')
-rw-r--r--scripts/vendor.pl200
1 files changed, 113 insertions, 87 deletions
diff --git a/scripts/vendor.pl b/scripts/vendor.pl
index c8c21503..576ddf5b 100644
--- a/scripts/vendor.pl
+++ b/scripts/vendor.pl
@@ -1,15 +1,16 @@
+#!/usr/bin/perl
=pod
=head1 NAME
-LedgerSMB::Scripts::Vendor - LedgerSMB class defining the Controller
-functions, template instantiation and rendering for Vendor editing and display.
+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.
+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.
@@ -17,11 +18,13 @@ Save vendor will update or create as needed.
=cut
-package LedgerSMB::Scripts::Vendor;
+package LedgerSMB::Scripts::vendor;
use LedgerSMB::Template;
use LedgerSMB::DBObject::Vendor;
+require 'lsmb-request.pl';
+
=pod
=over
@@ -30,7 +33,7 @@ use LedgerSMB::DBObject::Vendor;
Requires form var: id
-Extracts a single Vendor from the database, using its company ID as the primary
+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.
@@ -38,142 +41,165 @@ of the vendor informations.
=cut
+
sub get {
- my ($class, $request) = @_;
+ my ($request) = @_;
my $vendor = LedgerSMB::DBObject::Vendor->new(base => $request, copy => 'all');
- my $result = $vendor->get($vendor->{id});
+
+ $vendor->set( entity_class=> '2' );
+ my $result = $vendor->get();
my $template = LedgerSMB::Template->new( user => $user,
- template => 'vendor.html', language => $user->{language},
- format => 'html');
+ template => 'contact', language => $user->{language},
+ path => 'UI/Contact',
+ 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
+sub add_location {
+ my ($request) = @_;
+ my $vendor= LedgerSMB::DBObject::Vendor->new({base => $request, copy => 'all'});
+ $vendor->set( entity_class=> '2' );
+ $vendor->save_location();
+ $vendor->get();
-=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)
+ $vendor->get_metadata();
-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);
+ _render_main_screen($vendor);
+
}
=pod
=over
-=item vendor_invoice($self, $request, $user)
+=item add
-Added based on existing New Vendor screen.
+This method creates a blank screen for entering a vendor's information.
=back
-=cut
+=cut
-
-sub vendor_invoice {
-
-
+sub add {
+ my ($request) = @_;
+ my $vendor= LedgerSMB::DBObject::Vendor->new(base => $request, copy => 'all');
+ $vendor->set( entity_class=> '2' );
+ _render_main_screen($vendor);
}
=pod
=over
-=item purchase_order($self, $request, $user)
+=item search($self, $request, $user)
+
+Requires form var: search_pattern
-Added based on existing New Vendor screen.
+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 purchase_order {
-
+sub search {
+ my ($request) = @_;
+ if ($request->type() eq 'POST') {
+ # assume it's asking us to do the search, now
+
+ my $vendor = LedgerSMB::DBObject::Vendor->new(base => $request, copy => 'all');
+ $vendor->set(entity_class=>2);
+ my $results = $vendor->search($vendor->{search_pattern});
+
+ my $template = LedgerSMB::Template->new( user => $user,
+ template => 'Contact/vendor', language => $user->{language},
+ format => 'HTML');
+ $template->render($results);
+
+ }
+ else {
+
+ # grab the happy search page out.
+
+ my $template = LedgerSMB::Template->new(
+ user => $user,
+ path => 'UI/Contact' ,
+ template => 'vendor_search',
+ locale => $request->{_locale},
+ format => 'HTML');
+
+ $template->render();
+ }
}
=pod
=over
-=item rfq($self, $request, $user)
+=item save($self, $request, $user)
-Added based on existing New Vendor screen.
+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 rfq {
-
- $self->save(@_);
- my ($class, $request) = @_;
- # saves a new vendor, then generates something.
+sub save {
-}
+ my ($request) = @_;
-=pod
-
-=over
-
-=item pricelist($self, $request, $user)
+ my $vendor = LedgerSMB::DBObject::Vendor->new({base => $request});
+ $vendor->save();
+ _render_main_screen($vendor);
+}
-Added based on existing New Vendor screen.
+sub edit{
+ my $request = shift @_;
+ my $vendor = LedgerSMB::DBObject::Vendor->new({base => $request});
+ $vendor->get();
+ _render_main_screen($vendor);
+}
-=back
+sub _render_main_screen{
+ my $vendor = shift @_;
+ $vendor->get_metadata();
+
+ $vendor->{creditlimit} = "$vendor->{creditlimit}";
+ $vendor->{discount} = "$vendor->{discount}";
+ $vendor->{script} = "vendor.pl";
+
+ my $template = LedgerSMB::Template->new(
+ user => $vendor->{_user},
+ template => 'contact',
+ locale => $vendor->{_locale},
+ path => 'UI/Contact',
+ format => 'HTML'
+ );
+ $template->render($vendor);
+}
-=cut
+sub save_contact {
+ my ($request) = @_;
+ my $vendor = LedgerSMB::DBObject::Vendor->new({base => $request});
+ $vendor ->save_contact();
+ $vendor ->get;
+ _render_main_screen($vendor );
+}
-sub pricelist {
-
-
-
+sub save_bank_account {
+ my ($request) = @_;
+ my $vendor = LedgerSMB::DBObject::Vendor->new({base => $request});
+ $vendor ->save_bank_account();
+ $vendor ->get;
+ _render_main_screen($vendor );
}
1;