Offrte gours
This commit is contained in:
@@ -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] );
|
||||
}
|
||||
|
||||
@@ -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( [
|
||||
|
||||
@@ -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}">
|
||||
|
||||
@@ -14,6 +14,13 @@ dbo.offerDataService = {
|
||||
} );
|
||||
},
|
||||
|
||||
getOffersWithoutProject: function ( callback ) {
|
||||
$.getJSON( 'index.php/projects/offersController/getOffersWithoutProject' )
|
||||
.done( function ( data ) {
|
||||
callback(data);
|
||||
} );
|
||||
},
|
||||
|
||||
getOffer: function ( userID, callback ) {
|
||||
$.getJSON( 'index.php/projects/offersController/getOffer/' + userID )
|
||||
.done( function ( data ) {
|
||||
|
||||
@@ -9,20 +9,21 @@
|
||||
dbo.employeehoursInit = function () {
|
||||
|
||||
if ( dbo.employeehoursModel !== undefined ) {
|
||||
dbo.employeehoursModel.refreshHours();
|
||||
dbo.employeehoursModel.init();
|
||||
} else {
|
||||
dbo.employeehoursModel = {
|
||||
|
||||
employeehours : ko.observableArray( [] ),
|
||||
archive : ko.observable( false ),
|
||||
months : ko.observableArray( [] ),
|
||||
years : ko.observableArray( [] ),
|
||||
hourtypes : ko.observableArray( [] ),
|
||||
employees : ko.observableArray( [] ),
|
||||
selectedYear : ko.observable(),
|
||||
selectedMonth : ko.observable(),
|
||||
busy : false,
|
||||
selectedEmployeeID: ko.observable(),
|
||||
employeehours : ko.observableArray( [] ),
|
||||
archive : ko.observable( false ),
|
||||
months : ko.observableArray( [] ),
|
||||
years : ko.observableArray( [] ),
|
||||
hourtypes : ko.observableArray( [] ),
|
||||
employees : ko.observableArray( [] ),
|
||||
selectedYear : ko.observable(),
|
||||
selectedMonth : ko.observable(),
|
||||
busy : false,
|
||||
selectedEmployeeID : ko.observable(),
|
||||
offersWithoutProject: ko.observableArray( [] ),
|
||||
|
||||
init: function () {
|
||||
var vm = dbo.employeehoursModel;
|
||||
@@ -37,15 +38,20 @@ dbo.employeehoursInit = function () {
|
||||
|
||||
dbo.employeehoursDataService.getHourtypes( function ( data ) {
|
||||
vm.hourtypes( data );
|
||||
dbo.userDataService.getUserWithprojects( function ( data ) {
|
||||
vm.employees.removeAll();
|
||||
_.each( data, function ( p ) {
|
||||
vm.employees.push( new vm.Employee( p ) );
|
||||
} );
|
||||
vm.selectedEmployeeID( dbo.currentUser.id )
|
||||
dbo.offerDataService.getOffersWithoutProject( function ( data ) {
|
||||
vm.offersWithoutProject( data );
|
||||
console.log( data );
|
||||
console.log( vm.offersWithoutProject() );
|
||||
dbo.userDataService.getUserWithprojects( function ( data ) {
|
||||
vm.employees.removeAll();
|
||||
_.each( data, function ( p ) {
|
||||
vm.employees.push( new vm.Employee( p ) );
|
||||
} );
|
||||
vm.selectedEmployeeID( dbo.currentUser.id )
|
||||
|
||||
vm.busy = false;
|
||||
vm.refreshEmployeehours();
|
||||
vm.busy = false;
|
||||
vm.refreshEmployeehours();
|
||||
} );
|
||||
} );
|
||||
} );
|
||||
},
|
||||
@@ -90,6 +96,7 @@ dbo.employeehoursInit = function () {
|
||||
if ( !self.hourtype_id() ) return;
|
||||
if ( !self.hourdate() ) return;
|
||||
if ( self.hourType() == 'PROJECTS' && !self.projectID() ) return;
|
||||
if ( self.hourType() == 'OFFERS' && !self.projectID() ) return;
|
||||
|
||||
var submitDATA = {
|
||||
id : self.id(),
|
||||
@@ -179,14 +186,26 @@ dbo.employeehoursInit = function () {
|
||||
_.each( data.projectemployees, function ( p ) {
|
||||
self.projecten.push( new vm.Project( p ) );
|
||||
} );
|
||||
_.each( vm.offersWithoutProject(), function ( p ) {
|
||||
console.log( p );
|
||||
self.projecten.push( new vm.Offer( p, self.id ) );
|
||||
} );
|
||||
},
|
||||
|
||||
Project: function ( data ) {
|
||||
this.projectEmployeeID = data.id;
|
||||
this.type = 'PROJECT';
|
||||
this.projectID = data.project.id;
|
||||
this.project = data.project.projectnumber + ' - ' + data.project.projectname;
|
||||
},
|
||||
|
||||
Offer: function ( data, employeeID ) {
|
||||
this.projectemployeeID = employeeID;
|
||||
this.type = 'OFFER';
|
||||
this.projectID = data.id;
|
||||
this.project = data.offernumber + ' - ' + data.offername;
|
||||
},
|
||||
|
||||
Employeehour: function ( data ) {
|
||||
var vm = dbo.employeehoursModel;
|
||||
var self = this;
|
||||
|
||||
Reference in New Issue
Block a user