summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ledgersmb-httpd.conf1
-rwxr-xr-xold-handler.pl4
-rw-r--r--scripts/employee.pl205
-rw-r--r--scripts/employees.pl43
-rw-r--r--scripts/vendor.pl8
5 files changed, 212 insertions, 49 deletions
diff --git a/ledgersmb-httpd.conf b/ledgersmb-httpd.conf
index 7a7f5d02..02ca1b4f 100644
--- a/ledgersmb-httpd.conf
+++ b/ledgersmb-httpd.conf
@@ -19,6 +19,7 @@ Alias /ledgersmb WORKING_DIR/
# passwords.
Order Deny,Allow
Allow from 127.0.0.1
+ Allow from localhost
Deny from All
# The rest of this file just tightens up security.
diff --git a/old-handler.pl b/old-handler.pl
index 0e2f634c..f5619adf 100755
--- a/old-handler.pl
+++ b/old-handler.pl
@@ -85,8 +85,8 @@ use DBI qw(:sql_types);
$SIG{__WARN__} = sub { $form->info( $_[0] ) };
# send errors to browser
-$SIG{__DIE__} =
- sub { $form->error( __FILE__ . ':' . __LINE__ . ': ' . $_[0] ) };
+#$SIG{__DIE__} =
+# sub { print STDERR __FILE__ . ':' . __LINE__ . ': ' . $_[0]; };
## did sysadmin lock us out
#if (-f "${LedgerSMB::Sysconfig::userspath}/nologin") {
diff --git a/scripts/employee.pl b/scripts/employee.pl
new file mode 100644
index 00000000..bcfea191
--- /dev/null
+++ b/scripts/employee.pl
@@ -0,0 +1,205 @@
+#!/usr/bin/perl
+
+=pod
+
+=head1 NAME
+
+LedgerSMB::Scripts::employee - LedgerSMB class defining the Controller
+functions, template instantiation and rendering for employee editing and display.
+
+=head1 SYOPSIS
+
+This module is the UI controller for the employee DB access; it provides the
+View interface, as well as defines the Save employee.
+Save employee will update or create as needed.
+
+
+=head1 METHODS
+
+=cut
+
+package LedgerSMB::Scripts::employee;
+
+use LedgerSMB::Template;
+use LedgerSMB::DBObject::Employee;
+
+require 'lsmb-request.pl';
+
+=pod
+
+=over
+
+=item get($self, $request, $user)
+
+Requires form var: id
+
+Extracts a single employee from the database, using its company ID as the primary
+point of uniqueness. Shows (appropriate to user privileges) and allows editing
+of the employee informations.
+
+=back
+
+=cut
+
+
+sub get {
+
+ my ($request) = @_;
+ my $employee = LedgerSMB::DBObject::Employee->new(base => $request, copy => 'all');
+
+ $employee->set( entity_class=> '1' );
+ my $result = $employee->get();
+
+ my $template = LedgerSMB::Template->new( user => $user,
+ template => 'contact', language => $user->{language},
+ path => 'UI/Contact',
+ format => 'HTML');
+ $template->render($results);
+
+}
+
+
+sub add_location {
+ my ($request) = @_;
+ my $employee= LedgerSMB::DBObject::Employee->new({base => $request, copy => 'all'});
+ $employee->set( entity_class=> '1' );
+ $employee->save_location();
+ $employee->get();
+
+
+ $employee->get_metadata();
+
+ _render_main_screen($employee);
+
+}
+
+=pod
+
+=over
+
+=item add
+
+This method creates a blank screen for entering a employee's information.
+
+=back
+
+=cut
+
+sub add {
+ my ($request) = @_;
+ my $employee= LedgerSMB::DBObject::Employee->new(base => $request, copy => 'all');
+ $employee->set( entity_class=> '1' );
+ _render_main_screen($employee);
+}
+
+=pod
+
+=over
+
+=item search($self, $request, $user)
+
+Requires form var: search_pattern
+
+Directly calls the database function search, and returns a set of all employees
+found that match the search parameters. Search parameters search over address
+as well as employee/Company name.
+
+=back
+
+=cut
+
+sub search {
+ my ($request) = @_;
+
+ if ($request->type() eq 'POST') {
+ # assume it's asking us to do the search, now
+
+ my $employee = LedgerSMB::DBObject::Employee->new(base => $request, copy => 'all');
+ $employee->set(entity_class=>1);
+ my $results = $employee->search($employee->{search_pattern});
+
+ my $template = LedgerSMB::Template->new( user => $user,
+ template => 'Contact/employee', 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 => 'employee_search',
+ locale => $request->{_locale},
+ format => 'HTML');
+
+ $template->render();
+ }
+}
+
+=pod
+
+=over
+
+=item save($self, $request, $user)
+
+Saves a employee to the database. The function will update or insert a new
+employee as needed, and will generate a new Company ID for the employee if needed.
+
+=back
+
+=cut
+
+sub save {
+
+ my ($request) = @_;
+
+ my $employee = LedgerSMB::DBObject::Employee->new({base => $request});
+ $employee->save();
+ _render_main_screen($employee);
+}
+
+sub edit{
+ my $request = shift @_;
+ my $employee = LedgerSMB::DBObject::Employee->new({base => $request});
+ $employee->get();
+ _render_main_screen($employee);
+}
+
+sub _render_main_screen{
+ my $employee = shift @_;
+ $employee->get_metadata();
+
+ $employee->{creditlimit} = "$employee->{creditlimit}";
+ $employee->{discount} = "$employee->{discount}";
+ $employee->{script} = "employee.pl";
+
+ my $template = LedgerSMB::Template->new(
+ user => $employee->{_user},
+ template => 'contact',
+ locale => $employee->{_locale},
+ path => 'UI/Contact',
+ format => 'HTML'
+ );
+ $template->render($employee);
+}
+
+sub save_contact {
+ my ($request) = @_;
+ my $employee = LedgerSMB::DBObject::Employee->new({base => $request});
+ $employee->save_contact();
+ $employee->get;
+ _render_main_screen($employee );
+}
+
+sub save_bank_account {
+ my ($request) = @_;
+ my $employee = LedgerSMB::DBObject::Employee->new({base => $request});
+ $employee->save_bank_account();
+ $employee->get;
+ _render_main_screen($employee);
+}
+
+1;
diff --git a/scripts/employees.pl b/scripts/employees.pl
deleted file mode 100644
index fa9ec05f..00000000
--- a/scripts/employees.pl
+++ /dev/null
@@ -1,43 +0,0 @@
-# The handler, prior to handing the execution off to this script will create a
-# $request object from the LedgerSMB namespace. This object contains the http
-# request parameters, db connections, and the like. A $user object is also
-# created
-#
-# Entrence points are functions which do not begin with an underscore (_)
-use LedgerSMB::Template;
-
-sub save {
- my $employee = LedgerSMB::Employee->new(base => $request, copy => 'all');
- $employee->save();
- &_display;
-}
-
-sub search {
- my $search = LedgerSMB::Employee->new(base => $request, copy => 'all');
- $employee->{search_results} = $employee->search();
- my $template = LedgerSMB::Template->new( user => $user,
- template => 'employee_search.html', language => $user->{language},
- format => 'html');
- $template->render($employee);
-}
-
-sub add {
- my $employee = LedgerSMB::Employee->new(base => $request, copy => 'all');
- &_display;
-}
-
-sub edit {
- my $employee = LedgerSMB::Employee->new(base => $request, copy => 'all');
- $employee->get();
- &_display;
-}
-
-sub _display {
- my $template = LedgerSMB::Template->new( user => $user,
- template => 'employee.html', language => $user->{language},
- format => 'html');
- $template->render($employee);
-
-}
-
-1;
diff --git a/scripts/vendor.pl b/scripts/vendor.pl
index 924c967a..a8a6aad0 100644
--- a/scripts/vendor.pl
+++ b/scripts/vendor.pl
@@ -189,16 +189,16 @@ sub _render_main_screen{
sub save_contact {
my ($request) = @_;
my $vendor = LedgerSMB::DBObject::Vendor->new({base => $request});
- $vendor ->save_contact();
- $vendor ->get;
+ $vendor->save_contact();
+ $vendor->get;
_render_main_screen($vendor );
}
sub save_bank_account {
my ($request) = @_;
my $vendor = LedgerSMB::DBObject::Vendor->new({base => $request});
- $vendor ->save_bank_account();
- $vendor ->get;
+ $vendor->save_bank_account();
+ $vendor->get;
_render_main_screen($vendor );
}