Fixes for payroll generation with mysql 5.7 strict modes 💶
This commit is contained in:
@@ -110,11 +110,12 @@ include APP_BASE_PATH.'modulejslibs.inc.php';
|
||||
modJsList['tabPayrollData'].setTables('PayrollEmployee','PayrollColumn','PayrollData');
|
||||
|
||||
modJsList['tabPayrollColumn'] = new PayrollColumnAdapter('PayrollColumn','PayrollColumn','','name, colorder');
|
||||
modJsList['tabPayrollColumn'].setRemoteTable(true);
|
||||
//modJsList['tabPayrollColumnTemplate'] = new PayrollColumnTemplateAdapter('PayrollColumnTemplate','PayrollColumnTemplate');
|
||||
|
||||
modJsList['tabPayrollEmployee'] = new PayrollEmployeeAdapter('PayrollEmployee','PayrollEmployee');
|
||||
modJsList['tabPayrollEmployee'].setRemoteTable(true);
|
||||
|
||||
|
||||
modJsList['tabPayslipTemplate'] = new PayslipTemplateAdapter('PayslipTemplate','PayslipTemplate');
|
||||
modJsList['tabPayslipTemplate'].setRemoteTable(true);
|
||||
|
||||
|
||||
@@ -116,14 +116,15 @@ PayrollAdapter.method('getFormFields', function() {
|
||||
return [
|
||||
[ "id", {"label":"ID","type":"hidden"}],
|
||||
[ "name", {"label":"Name","type":"text"}],
|
||||
[ "pay_period", {"label":"Pay Frequency","type":"select","remote-source":["PayFrequency","id","name"]}],
|
||||
[ "pay_period", {"label":"Pay Frequency","type":"select","remote-source":["PayFrequency","id","name"],"sort":"none"}],
|
||||
[ "deduction_group", {"label":"Calculation Group","type":"select","remote-source":["DeductionGroup","id","name"],"sort":"none"}],
|
||||
[ "payslipTemplate", {"label":"Payslip Template","type":"select","remote-source":["PayslipTemplate","id","name"]}],
|
||||
[ "department", {"label":"Department","type":"select2","remote-source":["CompanyStructure","id","title"]}],
|
||||
[ "department", {"label":"Department","type":"select2","remote-source":["CompanyStructure","id","title"],"sort":"none"}],
|
||||
[ "date_start", {"label":"Start Date","type":"date","validation":""}],
|
||||
[ "date_end", {"label":"End Date","type":"date","validation":""}],
|
||||
//[ "column_template", {"label":"Report Column Template","type":"select","remote-source":["PayrollColumnTemplate","id","name"]}],
|
||||
[ "columns", {"label":"Payroll Columns","type":"select2multi","remote-source":["PayrollColumn","id","name"]}],
|
||||
[ "status", {"label":"Status","type":"select","source":[["Draft","Draft"],["Completed","Completed"]]}]
|
||||
[ "status", {"label":"Status","type":"select","source":[["Draft","Draft"],["Completed","Completed"]],"sort":"none"}]
|
||||
];
|
||||
});
|
||||
|
||||
@@ -303,7 +304,7 @@ PayrollColumnAdapter.method('getDataMapping', function() {
|
||||
|
||||
PayrollColumnAdapter.method('getHeaders', function() {
|
||||
return [
|
||||
{ "sTitle": "ID" ,"bVisible":true},
|
||||
{ "sTitle": "ID" ,"bVisible":false},
|
||||
{ "sTitle": "Name"},
|
||||
{ "sTitle": "Column Order"},
|
||||
{ "sTitle": "Calculation Method"},
|
||||
@@ -409,7 +410,7 @@ PayrollEmployeeAdapter.method('getHeaders', function() {
|
||||
{ "sTitle": "ID" ,"bVisible":false},
|
||||
{ "sTitle": "Employee" },
|
||||
{ "sTitle": "Pay Frequency"},
|
||||
{ "sTitle": "Deduction Group"},
|
||||
{ "sTitle": "Calculation Group"},
|
||||
{ "sTitle": "Currency"},
|
||||
];
|
||||
});
|
||||
@@ -601,7 +602,7 @@ PayslipTemplateAdapter.method('getFormFields', function() {
|
||||
var payslipFields = [ "data", {"label":"Payslip Fields","type":"datagroup",
|
||||
"form":[
|
||||
[ "type", {"label":"Type","type":"select","sort":"none","source":[["Payroll Column","Payroll Column"],["Text","Text"],["Company Name","Company Name"],["Company Logo","Company Logo"], ["Separators","Separators"]]}],
|
||||
[ "payrollColumn", {"label":"Payroll Column","type":"select2","allow-null":true,"remote-source":["PayrollColumn","id","name"]}],
|
||||
[ "payrollColumn", {"label":"Payroll Column","type":"select2","sort":"none","allow-null":true,"null-label":"None","remote-source":["PayrollColumn","id","name"]}],
|
||||
|
||||
[ "label", {"label":"Label","type":"text","validation":"none"}],
|
||||
[ "text", {"label":"Text","type":"textarea","validation":"none"}],
|
||||
|
||||
@@ -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)) {
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user