diff --git a/application/controllers/projects/EmployeeHoursController.php b/application/controllers/projects/EmployeeHoursController.php index 52df6d8..769377a 100644 --- a/application/controllers/projects/EmployeeHoursController.php +++ b/application/controllers/projects/EmployeeHoursController.php @@ -51,6 +51,7 @@ class EmployeeHoursController extends MY_Controller { unset( $data['id'] ); unset( $data['hourType'] ); unset( $data['project_id'] ); + if( $hourType == 'OFFERS' ) $data['offer_id'] = $projectID; $data['hourdate'] = date2mysql( $data['hourdate'] ); diff --git a/application/controllers/projects/OffersController.php b/application/controllers/projects/OffersController.php index 5c764e5..928aab6 100644 --- a/application/controllers/projects/OffersController.php +++ b/application/controllers/projects/OffersController.php @@ -34,6 +34,13 @@ class OffersController extends MY_Controller { $this->json( $offers ); } + public function getOffersWithoutProject() + { + $offersWithoutProject = Offer::getOffersWithoutProject(); + + $this->json( $offersWithoutProject); + } + public function saveOffer() { $offerValidation = new OfferValidation(); diff --git a/application/controllers/projects/ProjectsController.php b/application/controllers/projects/ProjectsController.php index 48ef453..c7748f5 100644 --- a/application/controllers/projects/ProjectsController.php +++ b/application/controllers/projects/ProjectsController.php @@ -79,11 +79,25 @@ class ProjectsController extends MY_Controller { Offer::whereId( $offerID )->update( ['project_id' => $project->id] ); - Projectemployee::create( [ - 'project_id' => $project->id, - 'user_id' => $offer->offerleader_id, - 'tarif' => User::find( $offer->offerleader_id )->hourlyrate - ] ); + Projectemployee::firstOrCreateProjectemployee( $offer->offerleader_id, $project->id ); + + $offerteHours = Employeehour::whereOfferId( $offerID )->get(); + foreach ( $offerteHours as $offerteHour ) + { + $projectemployee = + Projectemployee::firstOrCreateProjectemployee( $offerteHour->employee_id, $project->id ); + + $data = [ + 'projectemployee_id' => $projectemployee->id, + 'hourtype_id' => 10, + 'hourdate' => $offerteHour->hourdate, + 'hours' => $offerteHour->hours + ]; + + Projecthour::create( $data ); + + Employeehour::whereId( $offerteHour->id )->delete(); + } $this->json( ['success' => TRUE, 'projectnumber' => $projectnumber] ); } diff --git a/application/models/eloquent/Offer.php b/application/models/eloquent/Offer.php index 78a1928..5e77a87 100644 --- a/application/models/eloquent/Offer.php +++ b/application/models/eloquent/Offer.php @@ -41,6 +41,16 @@ class Offer extends BaseModel { return $offers; } + public static function getOffersWithoutProject( ) + { + $offersWithoutProject = Offer::orderBy('startdate') + ->whereNull('rejectdate') + ->whereNull('project_id') + ->get(); + + return $offersWithoutProject; + } + public static function saveOffer( $offerID, $offer ) { $offer = (array) $offer; diff --git a/application/models/eloquent/Projectemployee.php b/application/models/eloquent/Projectemployee.php index 4dd56fc..d2d1579 100644 --- a/application/models/eloquent/Projectemployee.php +++ b/application/models/eloquent/Projectemployee.php @@ -59,6 +59,25 @@ class Projectemployee extends BaseModel { return $details; } + public static function firstOrCreateProjectemployee( $userID, $projectID ) + { + $projectemployee = self::whereUserId($userID)->whereProjectId($projectID); + + if( $projectemployee->count() > 0 ) return $projectemployee->first(); + + $user = User::find( $userID ); + + $tarif = $user ? $user->hourlyrate : 0; + + $projectemployee = Projectemployee::create( [ + 'project_id' => $projectID, + 'user_id' => $userID, + 'tarif' => $tarif + ] ); + + return $projectemployee; + } + public static function createProjectEmployee( $projectID ) { $projectemployee = Projectemployee::create( [ diff --git a/application/views/pages/employeehours_view.php b/application/views/pages/employeehours_view.php index 1c4b835..1f7b5f3 100644 --- a/application/views/pages/employeehours_view.php +++ b/application/views/pages/employeehours_view.php @@ -76,12 +76,24 @@ visible: ! inEdit()"> + optionsText:'projectname', + optionsValue:'projectID', + value:projectID, + optionsCaption:'selecteer...', + visible:inEdit(), + event:{change:$root.saveEmployeehours}"> + + + +