Fixes for payroll generation with mysql 5.7 strict modes 💶

This commit is contained in:
gamonoid
2017-09-09 15:24:24 +02:00
parent 382eef1ac0
commit e650771867
4 changed files with 27 additions and 17 deletions

View File

@@ -321,7 +321,10 @@ class PayrollActionManager extends SubActionManager
$employeeNamesById = array();
$baseEmp = new Employee();
$baseEmpList = $baseEmp->Find("department in (".implode(",", $cssIds).") and status = ?", array('Active'));
$baseEmpList = $baseEmp->Find(
"department in (".implode(",", $cssIds).") and status = ?",
array('Active')
);
$empIds = array();
foreach ($baseEmpList as $baseEmp) {
$employeeNamesById[$baseEmp->id] = $baseEmp->first_name." ".$baseEmp->last_name;
@@ -329,7 +332,10 @@ class PayrollActionManager extends SubActionManager
}
$emp = new $rowTable();
$emps = $emp->Find("pay_frequency = ? and employee in (".implode(",", $empIds).")", array($payroll->pay_period));
$emps = $emp->Find(
"pay_frequency = ? and deduction_group = ? and employee in (".implode(",", $empIds).")",
array($payroll->pay_period, $payroll->deduction_group)
);
if (!$emps) {
error_log("Error:".$emp->ErrorMsg());
} else {
@@ -370,7 +376,6 @@ class PayrollActionManager extends SubActionManager
continue;
}
$item = new PayrollData();
$item->id = "";
$item->payroll = $req->payrollId;
$item->employee = $e->id;
$item->payroll_item = $column->id;
@@ -436,7 +441,7 @@ class PayrollActionManager extends SubActionManager
if ($payroll->status == 'Completed') {
return new IceResponse(IceResponse::ERROR, true);
}
$valueTable = mysqli_real_escape_string($payroll->DB(), $req->valueTable);
$valueTable = BaseService::getInstance()->getFullQualifiedModelClassName($req->valueTable);
$payrollId = $req->payrollId;
foreach ($req as $key => $val) {
if (!is_array($val)) {

View File

@@ -32,14 +32,17 @@ class Payroll extends BaseModel
public function getEmployeePayrolls()
{
$currentEmp = BaseService::getInstance()->getCurrentProfileId();
$payrollDataTemp = new PayrollData();
$payrollData = $payrollDataTemp->Find("employee = ? group by payroll", array($currentEmp));
$payrollIds = array();
foreach ($payrollData as $pd) {
$payrollIds[] = $pd->payroll;
}
$payrollDataTemp = new PayrollData();
$payrollDataTemp->DB()->SetFetchMode(ADODB_FETCH_ASSOC);
$rs = $payrollDataTemp->DB()->Execute(
'select payroll from PayrollData where employee = ? group by payroll',
array($currentEmp)
);
foreach ($rs as $rowId => $row) {
$payrollIds[] = $row['payroll'];
}
$payroll = new Payroll();
$payrolls = $payroll->Find("id in (".implode(",", $payrollIds).") and status = 'Completed'");
return $payrolls;