summaryrefslogtreecommitdiff
path: root/LedgerSMB/Employee.pm
diff options
context:
space:
mode:
Diffstat (limited to 'LedgerSMB/Employee.pm')
-rw-r--r--LedgerSMB/Employee.pm91
1 files changed, 91 insertions, 0 deletions
diff --git a/LedgerSMB/Employee.pm b/LedgerSMB/Employee.pm
new file mode 100644
index 00000000..e792aa84
--- /dev/null
+++ b/LedgerSMB/Employee.pm
@@ -0,0 +1,91 @@
+
+=head1 NAME
+
+LedgerSMB::Employee - LedgerSMB class for managing Employees
+
+=head1 SYOPSIS
+
+This module creates object instances based on LedgerSMB's in-database ORM.
+
+=head1 METHODS
+
+The following method is static:
+
+=over
+
+=item new ($LedgerSMB object);
+
+=back
+
+The following methods are passed through to stored procedures via Autoload.
+
+=over
+
+=item save
+
+=item get
+
+=item search
+
+=item list_managers
+
+The above list may grow over time, and may depend on other installed modules.
+
+=back
+
+=head1 Copyright (C) 2007, The LedgerSMB core team.
+
+This file is licensed under the Gnu General Public License version 2, or at your
+option any later version. A copy of the license should have been included with
+your software.
+
+=cut
+
+package LedgerSMB::Employee;
+use base qw(LedgerSMB::DBObject);
+use strict;
+our $VERSION = '1.0.0';
+
+sub save {
+ my $self = shift;
+
+ my $hashref = shift @{ $self->exec_method( procname => "employee_save" ) };
+ $self->merge( $hashref, 'id' );
+}
+
+sub get {
+ my $self = shift;
+ my $hashref = shift @{ $self->exec_method( procname => "employee_get" ) };
+ $self->merge( $hashref, keys %{$hashref} );
+}
+
+sub list_managers {
+ my $self = shift;
+ $self->{manager_list} =
+ $self->exec_method( procname => "employee_list_managers" );
+}
+
+sub search {
+ my $self = shift;
+ $self->{search_results} =
+ $self->exec_method( procname => "employee_search" );
+}
+
+sub set_location {
+
+ my $self = shift @_;
+ my $location = shift @_;
+
+ my $code = $self->exec_method ( procname => 'employee_set_location',
+ args=>[ $self->{id}, $location->{id} ] );
+
+ if ($code) {
+
+ # good, it worked.
+
+ return 1;
+ }
+ return 0;
+}
+
+1;