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;
$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] );
}
}
}
+1 -1
View File
@@ -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' );
+6 -5
View File
@@ -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;
}
}
}
+55 -53
View File
@@ -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,
+12 -2
View File
@@ -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 );