=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;