From d340ccd5ecbb731c273a07876ad0dfc0a9b33379 Mon Sep 17 00:00:00 2001 From: aurynn_cmd Date: Thu, 15 Nov 2007 23:10:31 +0000 Subject: Significant work on the Entity and Administrative code. It's buggy, so please test, etc. thoroughly. git-svn-id: https://ledger-smb.svn.sourceforge.net/svnroot/ledger-smb/trunk@1869 4979c152-3d1c-0410-bac9-87ea11338e46 --- LedgerSMB/DBObject/Admin.pm | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) (limited to 'LedgerSMB/DBObject/Admin.pm') diff --git a/LedgerSMB/DBObject/Admin.pm b/LedgerSMB/DBObject/Admin.pm index 51620c47..6b54a7d4 100644 --- a/LedgerSMB/DBObject/Admin.pm +++ b/LedgerSMB/DBObject/Admin.pm @@ -5,6 +5,7 @@ use base LedgerSMB::DBObject; use LedgerSMB::Location; use LedgerSMB::DBObject::Employee; use LedgerSMB::Contact; +use LedgerSMB::Entity; #[18:00:31] I'd like to split them employee/user and roles/prefs #[18:00:44] edit/create employee and add user features if needed. @@ -18,19 +19,27 @@ sub save_employee { my $self = shift @_; - my $entity_id = shift @{ $self->exec_method( procname => "save_user" ) }; - $self->merge($entity_id); + my $entity = LedgerSMB::DBObject::Entity->new(base=>$self, copy=>'none'); - my $person = LedgerSMB::DBObject::Person->new(base=>$self, copy=>'list', + $entity->set(name=>$self->{first_name}." ".$self->{last_name}); + $entity->save(); + + $self->{entity_id} = $entity->{id}; + + + my $user_id = shift @{ $self->exec_method( procname => "admin_save_user" ) }; + $self->merge($user_id); + + my $person = LedgerSMB::DBObject::Person->new( base=>$self, copy=>'list', merge=>[ 'salutation', 'first_name', 'last_name', ] ); - my $employee = LedgerSMB::DBObject::Employee->new(base=>$self, copy=>'list', + my $employee = LedgerSMB::DBObject::Employee->new( base=>$self, copy=>'list', merge=>[ - '', + 'salutation', 'first_name', 'last_name', 'employeenumber', @@ -76,16 +85,15 @@ sub save_employee { 'is_a_user' ] ); - $user->get(); $user->save(); } -sub save_roles { +sub save_roles_preferences { my $self = shift @_; - my $user = LedgerSMB::DBObject::User->new(base=>$self, copy=>'all'); + my $user = LedgerSMB::DBObject::User->new( base=>$self, copy=>'all' ); my $roles = $self->exec_method( procname => "admin_all_roles" ); my $user_roles = $self->exec_method(procname => "admin_get_user_roles", args=>[ $self->{ username } ] ); -- cgit v1.2.3