Offrte gours

This commit is contained in:
2018-07-30 10:45:53 +02:00
parent b86c3fc4b9
commit 708a22f734
8 changed files with 119 additions and 30 deletions
@@ -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'] );
@@ -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();
@@ -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] );
}
+10
View File
@@ -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;
@@ -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( [
+18 -6
View File
@@ -76,12 +76,24 @@
visible: ! inEdit()"></span>
<select class="form-control form-control-sm"
data-bind="options:projects,
optionsText:'projectname',
optionsValue:'projectID',
value:projectID,
optionsCaption:'selecteer...',
visible:inEdit(),
event:{change:$root.saveEmployeehours}"></select>
optionsText:'projectname',
optionsValue:'projectID',
value:projectID,
optionsCaption:'selecteer...',
visible:inEdit(),
event:{change:$root.saveEmployeehours}"></select>
<!-- /ko -->
<!-- ko if: hourType() == 'OFFERS' -->
<span data-bind="text:dbo.helpers.findArrayElement('projectID', 'projectname', projectID(), projects()),
visible: ! inEdit()"></span>
<select class="form-control form-control-sm"
data-bind="options:$root.offersWithoutProject,
optionsText:'offername',
optionsValue:'id',
value:projectID,
optionsCaption:'selecteer...',
visible:inEdit(),
event:{change:$root.saveEmployeehours}"></select>
<!-- /ko -->
</td>
<td class="align-right" data-bind="css:{'red-line': id() == 0}">