Add functionality to fix late attendance records for R2 employees by date
This commit is contained in:
114
fixingcheckinlatebydate.php
Normal file
114
fixingcheckinlatebydate.php
Normal file
@ -0,0 +1,114 @@
|
||||
|
||||
<?php
|
||||
include('zklib/ZKLib.php');
|
||||
|
||||
class LogController
|
||||
{
|
||||
// $ppHCMTT#2024
|
||||
|
||||
public function fn_getconn(){
|
||||
$pdo = new PDO("mysql:host=localhost;dbname=dbhcm", "apphcm", "\$ppHCMTT#2024");
|
||||
return $pdo;
|
||||
}
|
||||
public function selectquerySP($sql){
|
||||
// $pdo = new PDO("mysql:host=".DB_HOST_NAME.";dbname=".DB_IMS, DB_USER_NAME, DB_USER_PASS);
|
||||
$pdo = $this->fn_getconn(); //new PDO("mysql:host=localhost;dbname=dbhcm", "apphcm", "\$pp");
|
||||
$q = $pdo->query($sql);
|
||||
$q->setFetchMode(PDO::FETCH_ASSOC);
|
||||
return $q;
|
||||
}
|
||||
|
||||
public function executeSP($qry){
|
||||
$rtn=false;
|
||||
$pdo = $this->fn_getconn();
|
||||
$statement = $pdo->prepare($qry);
|
||||
if($statement->execute()){
|
||||
$rtn=true;
|
||||
}
|
||||
return $rtn;
|
||||
}
|
||||
|
||||
public function fn_getfieldvalue($fieldname,$qry){
|
||||
$rs=$this->selectquerySP($qry);
|
||||
$rtn="";
|
||||
if($rs){
|
||||
// $rw=$rs->fetch();
|
||||
// $rtn=$rw[$fieldname];
|
||||
while($rw=$rs->fetch()){
|
||||
$rtn=$rw[$fieldname];
|
||||
}
|
||||
}
|
||||
return $rtn;
|
||||
}
|
||||
|
||||
public function fn_getfieldsvalues($fieldname,$qry){
|
||||
$rs=$this->selectquerySP($qry);
|
||||
$rtn="";
|
||||
if($rs){
|
||||
// $rw=$rs->fetch();
|
||||
// $rtn=$rw[$fieldname];
|
||||
while($rw=$rs->fetch()){
|
||||
$d=explode(",",$fieldname);
|
||||
for($i=0;$i<count($d);$i++){
|
||||
$rtn.=$rw[$d[$i]].",";
|
||||
}
|
||||
|
||||
}
|
||||
// echo $rtn;return false;
|
||||
$rtn=substr($rtn,0,strlen($rtn)-1);
|
||||
}
|
||||
return explode(",",$rtn);
|
||||
}
|
||||
|
||||
|
||||
public function index(){
|
||||
$argv=$_SERVER['argv'];
|
||||
$rtn=false;
|
||||
$qry="select t.endtimestr,a.*
|
||||
from tbl_employee e inner join tbl_attendanceemployee a on e._idx=a.idxemployee
|
||||
inner join tbl_attendancethreshold t on e.idxdept=t.idxdept and t.attendancename=a.attendancename and a.shiftcode=t.shiftcode
|
||||
where a.isdeleted=0 and t.isdeleted=0 and e.isdeleted=0 and t.attendancename='IN' and cast(a.dates as date)=cast('".$argv[1]."' as date)";
|
||||
$rs=$this->selectquerySP($qry);
|
||||
if($rs){
|
||||
while($rw=$rs->fetch()){
|
||||
$dates=date("Y-m-d", strtotime($rw['dates']));
|
||||
$datestimes=date("Y-m-d H:i", strtotime($rw['datestimes']));
|
||||
$time1=strtotime($dates." ".$rw['endtimestr']);
|
||||
$time2=strtotime($datestimes);
|
||||
$totaldur=0;
|
||||
if($time2>$time1){
|
||||
$totaldur=round(($time2 - $time1) / 60,2);
|
||||
}
|
||||
echo $rw['_idx']." ".$rw['totallateperemp']." ".$totaldur."\n";
|
||||
if($rw['totallateperemp']!=$totaldur){
|
||||
echo $rw['_idx']." ".$rw['datestimes']." ".$rw['endtimestr']." ".$rw['totallateperemp']."=".$totaldur."\n";
|
||||
|
||||
$qry="update tbl_attendanceemployee set totallateperemp='$totaldur',totallateperempr2=0 where _idx='".$rw['_idx']."'"."\n";
|
||||
$this->executeSP($qry);
|
||||
}
|
||||
}
|
||||
// === Update tbl_attendancelist for lateemployee
|
||||
$qry="update tbl_attendancelist t, tbl_attendanceemployee a set t.lateperemployee=a.totallateperemp
|
||||
where a._idx=t.idxattendance and a.totallateperemp<>t.lateperemployee and cast(a.dates as date)=cast('".$argv[1]."' as date)";
|
||||
// echo $qry."\n";
|
||||
$this->executeSP($qry);
|
||||
}
|
||||
return $rtn;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
$cl = new LogController();
|
||||
$rtn =$cl->index();
|
||||
|
||||
#if(isset($_REQUEST['isgetdata'])){
|
||||
# echo "indx";
|
||||
# $rtn = $cl->index();
|
||||
#}
|
||||
#else{
|
||||
# $rtn = $cl->fn_curl();
|
||||
#}
|
||||
|
||||
echo $rtn;
|
||||
113
fixingr2latebydate.php
Normal file
113
fixingr2latebydate.php
Normal file
@ -0,0 +1,113 @@
|
||||
|
||||
<?php
|
||||
include('zklib/ZKLib.php');
|
||||
|
||||
class LogController
|
||||
{
|
||||
// $ppHCMTT#2024
|
||||
|
||||
public function fn_getconn(){
|
||||
$pdo = new PDO("mysql:host=localhost;dbname=dbhcm", "apphcm", "\$ppHCMTT#2024");
|
||||
return $pdo;
|
||||
}
|
||||
public function selectquerySP($sql){
|
||||
// $pdo = new PDO("mysql:host=".DB_HOST_NAME.";dbname=".DB_IMS, DB_USER_NAME, DB_USER_PASS);
|
||||
$pdo = $this->fn_getconn(); //new PDO("mysql:host=localhost;dbname=dbhcm", "apphcm", "\$pp");
|
||||
$q = $pdo->query($sql);
|
||||
$q->setFetchMode(PDO::FETCH_ASSOC);
|
||||
return $q;
|
||||
}
|
||||
|
||||
public function executeSP($qry){
|
||||
$rtn=false;
|
||||
$pdo = $this->fn_getconn();
|
||||
$statement = $pdo->prepare($qry);
|
||||
if($statement->execute()){
|
||||
$rtn=true;
|
||||
}
|
||||
return $rtn;
|
||||
}
|
||||
|
||||
public function fn_getfieldvalue($fieldname,$qry){
|
||||
$rs=$this->selectquerySP($qry);
|
||||
$rtn="";
|
||||
if($rs){
|
||||
// $rw=$rs->fetch();
|
||||
// $rtn=$rw[$fieldname];
|
||||
while($rw=$rs->fetch()){
|
||||
$rtn=$rw[$fieldname];
|
||||
}
|
||||
}
|
||||
return $rtn;
|
||||
}
|
||||
|
||||
public function fn_getfieldsvalues($fieldname,$qry){
|
||||
$rs=$this->selectquerySP($qry);
|
||||
$rtn="";
|
||||
if($rs){
|
||||
// $rw=$rs->fetch();
|
||||
// $rtn=$rw[$fieldname];
|
||||
while($rw=$rs->fetch()){
|
||||
$d=explode(",",$fieldname);
|
||||
for($i=0;$i<count($d);$i++){
|
||||
$rtn.=$rw[$d[$i]].",";
|
||||
}
|
||||
|
||||
}
|
||||
// echo $rtn;return false;
|
||||
$rtn=substr($rtn,0,strlen($rtn)-1);
|
||||
}
|
||||
return explode(",",$rtn);
|
||||
}
|
||||
|
||||
|
||||
public function index(){
|
||||
$argv=$_SERVER['argv'];
|
||||
$rtn=false;
|
||||
$qry="select t.endtimestr,a.*
|
||||
from tbl_employee e inner join tbl_attendanceemployee a on e._idx=a.idxemployee
|
||||
inner join tbl_attendancethreshold t on e.idxdept=t.idxdept and t.attendancename=a.attendancename and a.shiftcode=t.shiftcode
|
||||
where a.isdeleted=0 and t.isdeleted=0 and e.isdeleted=0 and a.attendancename='R2'
|
||||
and cast(a.dates as date)=cast('".$argv[1]."' as date)";
|
||||
$rs=$this->selectquerySP($qry);
|
||||
if($rs){
|
||||
while($rw=$rs->fetch()){
|
||||
$dates=date("Y-m-d", strtotime($rw['dates']));
|
||||
$datestimes=date("Y-m-d H:i", strtotime($rw['datestimes']));
|
||||
$time1=strtotime($dates." ".$rw['endtimestr']);
|
||||
$time2=strtotime($datestimes);
|
||||
$totaldur=0;
|
||||
if($time2>$time1){
|
||||
$totaldur=round(($time2 - $time1) / 60,2);
|
||||
}
|
||||
if($rw['totallateperempr2']!=$totaldur){
|
||||
echo $rw['_idx']." ".$rw['datestimes']." ".$rw['endtimestr']." ".$rw['totallateperempr2']."=".$totaldur."\n";
|
||||
|
||||
$qry="update tbl_attendanceemployee set totallateperemp=0,totallateperempr2='$totaldur' where _idx='".$rw['_idx']."'";
|
||||
$this->executeSP($qry);
|
||||
}
|
||||
}
|
||||
}
|
||||
$qry="update tbl_attendancelist t, tbl_attendanceemployee a set t.lateperemployeer2=a.totallateperempr2
|
||||
where a._idx=t.idxattendance and a.totallateperempr2<>t.lateperemployeer2 and cast(a.dates as date)=cast('".$argv[1]."' as date)";
|
||||
// echo $qry."\n";
|
||||
$this->executeSP($qry);
|
||||
return $rtn;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
$cl = new LogController();
|
||||
$rtn =$cl->index();
|
||||
|
||||
#if(isset($_REQUEST['isgetdata'])){
|
||||
# echo "indx";
|
||||
# $rtn = $cl->index();
|
||||
#}
|
||||
#else{
|
||||
# $rtn = $cl->fn_curl();
|
||||
#}
|
||||
|
||||
echo $rtn;
|
||||
Reference in New Issue
Block a user