save employeehours with uuid
This commit is contained in:
@@ -66,7 +66,7 @@ class EmployeeHoursController extends MY_Controller {
|
||||
|
||||
$data['hourtype_id'] = $data['hourtype_id'] - 8;
|
||||
|
||||
$employeehourID = Projecthour::saveProjecthour( $employeehourID, $data );
|
||||
$employeehourID = Projecthour::saveProjecthour( $data );
|
||||
}
|
||||
elseif ( $hourType == 'OFFERS' )
|
||||
{
|
||||
@@ -74,14 +74,13 @@ class EmployeeHoursController extends MY_Controller {
|
||||
unset( $data['employee_id'] );
|
||||
$data['hourtype_id'] = $data['hourtype_id'] - 8;
|
||||
|
||||
$employeehourID = Projecthour::saveProjecthour( $employeehourID, $data );
|
||||
$employeehourID = Projecthour::saveProjecthour( $data );
|
||||
}
|
||||
else
|
||||
{
|
||||
$employeehourID = Employeehour::saveEmployeehour( $employeehourID, $data );
|
||||
$employeehourID = Employeehour::saveEmployeehour( $data );
|
||||
}
|
||||
|
||||
|
||||
$this->json( ['employeehourID' => $employeehourID] );
|
||||
}
|
||||
|
||||
@@ -101,4 +100,4 @@ class EmployeeHoursController extends MY_Controller {
|
||||
$this->json( ['result' => TRUE] );
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,7 +16,7 @@ class MY_Controller extends CI_Controller {
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
$this->version = '1.00.8';
|
||||
$this->version = '1.00.81';
|
||||
|
||||
$this->load->library( 'beheer/session/RetrieveUserSession' );
|
||||
|
||||
|
||||
@@ -41,19 +41,20 @@ class Employeehour extends BaseModel {
|
||||
return $results;
|
||||
}
|
||||
|
||||
public static function saveEmployeehour( $employeehourID, $data )
|
||||
public static function saveEmployeehour( $data )
|
||||
{
|
||||
if ( $employeehourID == 0 )
|
||||
$record = Employeehour::whereUuid( $data['uuid'])->first();
|
||||
if ( ! $record )
|
||||
{
|
||||
$employeehour = Employeehour::create( $data );
|
||||
|
||||
$employeehourID = $employeehour->id;
|
||||
}
|
||||
else
|
||||
{
|
||||
Employeehour::whereId( $employeehourID )->update( $data );
|
||||
Employeehour::whereUuid( $data['uuid'] )->update( $data );
|
||||
$employeehourID = FALSE;
|
||||
}
|
||||
|
||||
return $employeehourID;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,74 +8,76 @@
|
||||
|
||||
class Projecthour extends BaseModel {
|
||||
|
||||
protected $table = "projecthours";
|
||||
protected $table = "projecthours";
|
||||
|
||||
public function projectemployee()
|
||||
{
|
||||
$this->belongsTo( 'Projectemployee' );
|
||||
}
|
||||
public function projectemployee()
|
||||
{
|
||||
$this->belongsTo( 'Projectemployee' );
|
||||
}
|
||||
|
||||
public static function getUsedYears()
|
||||
{
|
||||
$years = Projecthour::selectRaw( "YEAR(hourdate) AS year" )
|
||||
->distinct()
|
||||
->orderByRaw( 'YEAR( hourdate )' )
|
||||
->get();
|
||||
public static function getUsedYears()
|
||||
{
|
||||
$years = Projecthour::selectRaw( "YEAR(hourdate) AS year" )
|
||||
->distinct()
|
||||
->orderByRaw( 'YEAR( hourdate )' )
|
||||
->get();
|
||||
|
||||
return $years;
|
||||
}
|
||||
return $years;
|
||||
}
|
||||
|
||||
public static function getMonthlyEmployeeHoursPerProject( $employeeID, $year )
|
||||
{
|
||||
$projectHours = ProjecthoursPerEmployeePerMonth::fire( $employeeID, $year );
|
||||
public static function getMonthlyEmployeeHoursPerProject( $employeeID, $year )
|
||||
{
|
||||
$projectHours = ProjecthoursPerEmployeePerMonth::fire( $employeeID, $year );
|
||||
|
||||
return $projectHours;
|
||||
}
|
||||
return $projectHours;
|
||||
}
|
||||
|
||||
public static function recapProjects()
|
||||
{
|
||||
$recaps = QRecapProjects::fire();
|
||||
public static function recapProjects()
|
||||
{
|
||||
$recaps = QRecapProjects::fire();
|
||||
|
||||
return $recaps;
|
||||
}
|
||||
return $recaps;
|
||||
}
|
||||
|
||||
public static function saveProjecthour( $projecthourID, $projecthour )
|
||||
{
|
||||
$projecthour = (array) $projecthour;
|
||||
public static function saveProjecthour( $projecthour )
|
||||
{
|
||||
$projecthour = (array) $projecthour;
|
||||
$record = Projecthour::whereUuid( $projecthour['uuid'] )->first();
|
||||
|
||||
if ( $projecthourID == 0 )
|
||||
{
|
||||
$projecthour = Projecthour::create( $projecthour );
|
||||
$projecthourID = $projecthour['id'];
|
||||
}
|
||||
else
|
||||
{
|
||||
Projecthour::whereId( $projecthourID )->update( $projecthour );
|
||||
}
|
||||
if ( ! $record )
|
||||
{
|
||||
$projecthour = Projecthour::create( $projecthour );
|
||||
$projecthourID = $projecthour['id'];
|
||||
}
|
||||
else
|
||||
{
|
||||
Projecthour::whereUuid( $projecthour['uuid'] )->update( $projecthour );
|
||||
$projecthourID = FALSE;
|
||||
}
|
||||
|
||||
return $projecthourID;
|
||||
}
|
||||
return $projecthourID;
|
||||
}
|
||||
|
||||
public static function removeProjecthour( $projecthourID )
|
||||
{
|
||||
Projecthour::whereId( $projecthourID )->delete();
|
||||
}
|
||||
public static function removeProjecthour( $projecthourID )
|
||||
{
|
||||
Projecthour::whereId( $projecthourID )->delete();
|
||||
}
|
||||
|
||||
public static function getTotalHoursPerProject( $projectID )
|
||||
{
|
||||
$totalProjecthours =
|
||||
self::selectRaw( "CONCAT(firstname, ' ', middlename, ' ', lastname) AS fullname,
|
||||
public static function getTotalHoursPerProject( $projectID )
|
||||
{
|
||||
$totalProjecthours =
|
||||
self::selectRaw( "CONCAT(firstname, ' ', middlename, ' ', lastname) AS fullname,
|
||||
SUM(IF(hourtype_id = 1, hours, 0)) AS declarable,
|
||||
SUM(IF(hourtype_id = 1, hours * tarif, 0)) AS revenues,
|
||||
SUM(IF(hourtype_id != 1, hours, 0)) AS nondeclarable" )
|
||||
->join( 'projectemployees AS PRE', 'PRE.id', '=', 'projecthours.projectemployee_id' )
|
||||
->join( 'users AS USR', 'USR.id', '=', 'PRE.user_id' )
|
||||
->groupBy( 'USR.id' )
|
||||
->where( 'PRE.project_id', '=', $projectID )
|
||||
->get();
|
||||
->join( 'projectemployees AS PRE', 'PRE.id', '=', 'projecthours.projectemployee_id' )
|
||||
->join( 'users AS USR', 'USR.id', '=', 'PRE.user_id' )
|
||||
->groupBy( 'USR.id' )
|
||||
->where( 'PRE.project_id', '=', $projectID )
|
||||
->get();
|
||||
|
||||
return $totalProjecthours;
|
||||
}
|
||||
return $totalProjecthours;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,6 +17,7 @@ class EmployeehoursMonthly {
|
||||
SELECT CONCAT(firstname, ' ', middlename, ' ', lastname) AS fullname,
|
||||
hourtype_id,
|
||||
EMH.id,
|
||||
EMH.uuid,
|
||||
USR.id AS employee_id,
|
||||
hours,
|
||||
DATE_FORMAT(hourdate, '%d-%m-%Y') AS hourdate,
|
||||
@@ -35,6 +36,7 @@ class EmployeehoursMonthly {
|
||||
SELECT CONCAT(firstname, ' ', middlename, ' ', lastname) AS fullname,
|
||||
(hourtype_id + 8) AS hourtype_id,
|
||||
PRH.id,
|
||||
PRH.uuid,
|
||||
USR.id AS employee_id,
|
||||
hours,
|
||||
DATE_FORMAT(hourdate, '%d-%m-%Y') AS hourdate,
|
||||
@@ -58,6 +60,7 @@ class EmployeehoursMonthly {
|
||||
SELECT CONCAT(firstname, ' ', middlename, ' ', lastname) AS fullname,
|
||||
(hourtype_id + 8) AS hourtype_id,
|
||||
PRH.id,
|
||||
PRH.uuid,
|
||||
USR.id AS employee_id,
|
||||
hours,
|
||||
DATE_FORMAT(hourdate, '%d-%m-%Y') AS hourdate,
|
||||
|
||||
@@ -96,7 +96,17 @@ dbo.helpers = {
|
||||
|
||||
isNumeric: function ( n ) {
|
||||
return !isNaN( parseFloat( n ) ) && isFinite( n );
|
||||
}
|
||||
},
|
||||
|
||||
createUUID: function (){
|
||||
var dt = new Date().getTime();
|
||||
var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
|
||||
var r = (dt + Math.random()*16)%16 | 0;
|
||||
dt = Math.floor(dt/16);
|
||||
return (c=='x' ? r :(r&0x3|0x8)).toString(16);
|
||||
});
|
||||
return uuid;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -69,6 +69,7 @@ dbo.employeehoursInit = function () {
|
||||
|
||||
var employeehour = {
|
||||
id : 0,
|
||||
uuid : dbo.helpers.createUUID(),
|
||||
employee_id: employeeID,
|
||||
hourdate : employeeHour ? employeeHour.hourdate() : null,
|
||||
hourtype_id: employeeHour ? employeeHour.hourtype_id() : 9,
|
||||
@@ -108,6 +109,7 @@ dbo.employeehoursInit = function () {
|
||||
|
||||
var submitDATA = {
|
||||
id : self.id(),
|
||||
uuid : self.uuid,
|
||||
employee_id: self.employee_id(),
|
||||
hourdate : self.hourdate(),
|
||||
hourtype_id: self.hourtype_id(),
|
||||
@@ -115,16 +117,16 @@ dbo.employeehoursInit = function () {
|
||||
hourType : self.hourType(),
|
||||
project_id : self.projectID()
|
||||
};
|
||||
if(timeout) {
|
||||
clearTimeout(timeout);
|
||||
if ( timeout ) {
|
||||
clearTimeout( timeout );
|
||||
timeout = null;
|
||||
}
|
||||
timeout = setTimeout(function(){
|
||||
timeout = setTimeout( function () {
|
||||
dbo.employeehoursDataService.saveEmployeehour( submitDATA, function ( data ) {
|
||||
self.id( data.employeehourID );
|
||||
if( data.employeehourID ) self.id( data.employeehourID );
|
||||
self.dirty( false );
|
||||
} );
|
||||
},200);
|
||||
}, 200 );
|
||||
},
|
||||
|
||||
editEmployeehour: function () {
|
||||
@@ -178,14 +180,14 @@ dbo.employeehoursInit = function () {
|
||||
|
||||
vm.employeehours.removeAll();
|
||||
|
||||
setTimeout(function(){
|
||||
setTimeout( function () {
|
||||
dbo.employeehoursDataService.getEmployeehours(
|
||||
vm.selectedMonth(), vm.selectedYear(), employeeID, function ( data ) {
|
||||
$.each( data, function ( i, p ) {
|
||||
vm.employeehours.push( new vm.Employeehour( p ) );
|
||||
} );
|
||||
} );
|
||||
}, 1000);
|
||||
}, 1000 );
|
||||
},
|
||||
|
||||
validateNumber: function ( field ) {
|
||||
@@ -229,6 +231,7 @@ dbo.employeehoursInit = function () {
|
||||
var self = this;
|
||||
|
||||
self.id = ko.observable( data.id );
|
||||
self.uuid = data.uuid;
|
||||
self.employee_id = ko.observable( data.employee_id );
|
||||
self.hourtype_id = ko.observable( data.hourtype_id );
|
||||
self.hourdate = ko.observable( data.hourdate );
|
||||
|
||||
Reference in New Issue
Block a user