save employeehours with uuid

This commit is contained in:
2022-02-01 15:57:17 +01:00
parent 32fb520739
commit a43450556d
7 changed files with 91 additions and 73 deletions
@@ -66,7 +66,7 @@ class EmployeeHoursController extends MY_Controller {
$data['hourtype_id'] = $data['hourtype_id'] - 8; $data['hourtype_id'] = $data['hourtype_id'] - 8;
$employeehourID = Projecthour::saveProjecthour( $employeehourID, $data ); $employeehourID = Projecthour::saveProjecthour( $data );
} }
elseif ( $hourType == 'OFFERS' ) elseif ( $hourType == 'OFFERS' )
{ {
@@ -74,14 +74,13 @@ class EmployeeHoursController extends MY_Controller {
unset( $data['employee_id'] ); unset( $data['employee_id'] );
$data['hourtype_id'] = $data['hourtype_id'] - 8; $data['hourtype_id'] = $data['hourtype_id'] - 8;
$employeehourID = Projecthour::saveProjecthour( $employeehourID, $data ); $employeehourID = Projecthour::saveProjecthour( $data );
} }
else else
{ {
$employeehourID = Employeehour::saveEmployeehour( $employeehourID, $data ); $employeehourID = Employeehour::saveEmployeehour( $data );
} }
$this->json( ['employeehourID' => $employeehourID] ); $this->json( ['employeehourID' => $employeehourID] );
} }
+1 -1
View File
@@ -16,7 +16,7 @@ class MY_Controller extends CI_Controller {
{ {
parent::__construct(); parent::__construct();
$this->version = '1.00.8'; $this->version = '1.00.81';
$this->load->library( 'beheer/session/RetrieveUserSession' ); $this->load->library( 'beheer/session/RetrieveUserSession' );
+5 -4
View File
@@ -41,17 +41,18 @@ class Employeehour extends BaseModel {
return $results; 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 ); $employeehour = Employeehour::create( $data );
$employeehourID = $employeehour->id; $employeehourID = $employeehour->id;
} }
else else
{ {
Employeehour::whereId( $employeehourID )->update( $data ); Employeehour::whereUuid( $data['uuid'] )->update( $data );
$employeehourID = FALSE;
} }
return $employeehourID; return $employeehourID;
+54 -52
View File
@@ -8,74 +8,76 @@
class Projecthour extends BaseModel { class Projecthour extends BaseModel {
protected $table = "projecthours"; protected $table = "projecthours";
public function projectemployee() public function projectemployee()
{ {
$this->belongsTo( 'Projectemployee' ); $this->belongsTo( 'Projectemployee' );
} }
public static function getUsedYears() public static function getUsedYears()
{ {
$years = Projecthour::selectRaw( "YEAR(hourdate) AS year" ) $years = Projecthour::selectRaw( "YEAR(hourdate) AS year" )
->distinct() ->distinct()
->orderByRaw( 'YEAR( hourdate )' ) ->orderByRaw( 'YEAR( hourdate )' )
->get(); ->get();
return $years; return $years;
} }
public static function getMonthlyEmployeeHoursPerProject( $employeeID, $year ) public static function getMonthlyEmployeeHoursPerProject( $employeeID, $year )
{ {
$projectHours = ProjecthoursPerEmployeePerMonth::fire( $employeeID, $year ); $projectHours = ProjecthoursPerEmployeePerMonth::fire( $employeeID, $year );
return $projectHours; return $projectHours;
} }
public static function recapProjects() public static function recapProjects()
{ {
$recaps = QRecapProjects::fire(); $recaps = QRecapProjects::fire();
return $recaps; return $recaps;
} }
public static function saveProjecthour( $projecthourID, $projecthour ) public static function saveProjecthour( $projecthour )
{ {
$projecthour = (array) $projecthour; $projecthour = (array) $projecthour;
$record = Projecthour::whereUuid( $projecthour['uuid'] )->first();
if ( $projecthourID == 0 ) if ( ! $record )
{ {
$projecthour = Projecthour::create( $projecthour ); $projecthour = Projecthour::create( $projecthour );
$projecthourID = $projecthour['id']; $projecthourID = $projecthour['id'];
} }
else else
{ {
Projecthour::whereId( $projecthourID )->update( $projecthour ); Projecthour::whereUuid( $projecthour['uuid'] )->update( $projecthour );
} $projecthourID = FALSE;
}
return $projecthourID; return $projecthourID;
} }
public static function removeProjecthour( $projecthourID ) public static function removeProjecthour( $projecthourID )
{ {
Projecthour::whereId( $projecthourID )->delete(); Projecthour::whereId( $projecthourID )->delete();
} }
public static function getTotalHoursPerProject( $projectID ) public static function getTotalHoursPerProject( $projectID )
{ {
$totalProjecthours = $totalProjecthours =
self::selectRaw( "CONCAT(firstname, ' ', middlename, ' ', lastname) AS fullname, self::selectRaw( "CONCAT(firstname, ' ', middlename, ' ', lastname) AS fullname,
SUM(IF(hourtype_id = 1, hours, 0)) AS declarable, 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 * tarif, 0)) AS revenues,
SUM(IF(hourtype_id != 1, hours, 0)) AS nondeclarable" ) SUM(IF(hourtype_id != 1, hours, 0)) AS nondeclarable" )
->join( 'projectemployees AS PRE', 'PRE.id', '=', 'projecthours.projectemployee_id' ) ->join( 'projectemployees AS PRE', 'PRE.id', '=', 'projecthours.projectemployee_id' )
->join( 'users AS USR', 'USR.id', '=', 'PRE.user_id' ) ->join( 'users AS USR', 'USR.id', '=', 'PRE.user_id' )
->groupBy( 'USR.id' ) ->groupBy( 'USR.id' )
->where( 'PRE.project_id', '=', $projectID ) ->where( 'PRE.project_id', '=', $projectID )
->get(); ->get();
return $totalProjecthours; return $totalProjecthours;
} }
} }
@@ -17,6 +17,7 @@ class EmployeehoursMonthly {
SELECT CONCAT(firstname, ' ', middlename, ' ', lastname) AS fullname, SELECT CONCAT(firstname, ' ', middlename, ' ', lastname) AS fullname,
hourtype_id, hourtype_id,
EMH.id, EMH.id,
EMH.uuid,
USR.id AS employee_id, USR.id AS employee_id,
hours, hours,
DATE_FORMAT(hourdate, '%d-%m-%Y') AS hourdate, DATE_FORMAT(hourdate, '%d-%m-%Y') AS hourdate,
@@ -35,6 +36,7 @@ class EmployeehoursMonthly {
SELECT CONCAT(firstname, ' ', middlename, ' ', lastname) AS fullname, SELECT CONCAT(firstname, ' ', middlename, ' ', lastname) AS fullname,
(hourtype_id + 8) AS hourtype_id, (hourtype_id + 8) AS hourtype_id,
PRH.id, PRH.id,
PRH.uuid,
USR.id AS employee_id, USR.id AS employee_id,
hours, hours,
DATE_FORMAT(hourdate, '%d-%m-%Y') AS hourdate, DATE_FORMAT(hourdate, '%d-%m-%Y') AS hourdate,
@@ -58,6 +60,7 @@ class EmployeehoursMonthly {
SELECT CONCAT(firstname, ' ', middlename, ' ', lastname) AS fullname, SELECT CONCAT(firstname, ' ', middlename, ' ', lastname) AS fullname,
(hourtype_id + 8) AS hourtype_id, (hourtype_id + 8) AS hourtype_id,
PRH.id, PRH.id,
PRH.uuid,
USR.id AS employee_id, USR.id AS employee_id,
hours, hours,
DATE_FORMAT(hourdate, '%d-%m-%Y') AS hourdate, DATE_FORMAT(hourdate, '%d-%m-%Y') AS hourdate,
+11 -1
View File
@@ -96,7 +96,17 @@ dbo.helpers = {
isNumeric: function ( n ) { isNumeric: function ( n ) {
return !isNaN( parseFloat( n ) ) && isFinite( 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 = { var employeehour = {
id : 0, id : 0,
uuid : dbo.helpers.createUUID(),
employee_id: employeeID, employee_id: employeeID,
hourdate : employeeHour ? employeeHour.hourdate() : null, hourdate : employeeHour ? employeeHour.hourdate() : null,
hourtype_id: employeeHour ? employeeHour.hourtype_id() : 9, hourtype_id: employeeHour ? employeeHour.hourtype_id() : 9,
@@ -108,6 +109,7 @@ dbo.employeehoursInit = function () {
var submitDATA = { var submitDATA = {
id : self.id(), id : self.id(),
uuid : self.uuid,
employee_id: self.employee_id(), employee_id: self.employee_id(),
hourdate : self.hourdate(), hourdate : self.hourdate(),
hourtype_id: self.hourtype_id(), hourtype_id: self.hourtype_id(),
@@ -115,16 +117,16 @@ dbo.employeehoursInit = function () {
hourType : self.hourType(), hourType : self.hourType(),
project_id : self.projectID() project_id : self.projectID()
}; };
if(timeout) { if ( timeout ) {
clearTimeout(timeout); clearTimeout( timeout );
timeout = null; timeout = null;
} }
timeout = setTimeout(function(){ timeout = setTimeout( function () {
dbo.employeehoursDataService.saveEmployeehour( submitDATA, function ( data ) { dbo.employeehoursDataService.saveEmployeehour( submitDATA, function ( data ) {
self.id( data.employeehourID ); if( data.employeehourID ) self.id( data.employeehourID );
self.dirty( false ); self.dirty( false );
} ); } );
},200); }, 200 );
}, },
editEmployeehour: function () { editEmployeehour: function () {
@@ -178,14 +180,14 @@ dbo.employeehoursInit = function () {
vm.employeehours.removeAll(); vm.employeehours.removeAll();
setTimeout(function(){ setTimeout( function () {
dbo.employeehoursDataService.getEmployeehours( dbo.employeehoursDataService.getEmployeehours(
vm.selectedMonth(), vm.selectedYear(), employeeID, function ( data ) { vm.selectedMonth(), vm.selectedYear(), employeeID, function ( data ) {
$.each( data, function ( i, p ) { $.each( data, function ( i, p ) {
vm.employeehours.push( new vm.Employeehour( p ) ); vm.employeehours.push( new vm.Employeehour( p ) );
} ); } );
} ); } );
}, 1000); }, 1000 );
}, },
validateNumber: function ( field ) { validateNumber: function ( field ) {
@@ -229,6 +231,7 @@ dbo.employeehoursInit = function () {
var self = this; var self = this;
self.id = ko.observable( data.id ); self.id = ko.observable( data.id );
self.uuid = data.uuid;
self.employee_id = ko.observable( data.employee_id ); self.employee_id = ko.observable( data.employee_id );
self.hourtype_id = ko.observable( data.hourtype_id ); self.hourtype_id = ko.observable( data.hourtype_id );
self.hourdate = ko.observable( data.hourdate ); self.hourdate = ko.observable( data.hourdate );