From e650771867251cca81c405865d004111eead2fb1 Mon Sep 17 00:00:00 2001 From: gamonoid Date: Sat, 9 Sep 2017 15:24:24 +0200 Subject: [PATCH] =?UTF-8?q?Fixes=20for=20payroll=20generation=20with=20mys?= =?UTF-8?q?ql=205.7=20strict=20modes=20=F0=9F=92=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- admin/payroll/index.php | 3 ++- admin/payroll/lib.js | 13 +++++++------ src/Payroll/Admin/Api/PayrollActionManager.php | 13 +++++++++---- src/Payroll/Common/Model/Payroll.php | 15 +++++++++------ 4 files changed, 27 insertions(+), 17 deletions(-) diff --git a/admin/payroll/index.php b/admin/payroll/index.php index 4e9e9595..ddccd7e8 100644 --- a/admin/payroll/index.php +++ b/admin/payroll/index.php @@ -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); diff --git a/admin/payroll/lib.js b/admin/payroll/lib.js index ca342297..b3ce4a8b 100644 --- a/admin/payroll/lib.js +++ b/admin/payroll/lib.js @@ -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"}], diff --git a/src/Payroll/Admin/Api/PayrollActionManager.php b/src/Payroll/Admin/Api/PayrollActionManager.php index a32e721d..75bf72c2 100644 --- a/src/Payroll/Admin/Api/PayrollActionManager.php +++ b/src/Payroll/Admin/Api/PayrollActionManager.php @@ -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)) { diff --git a/src/Payroll/Common/Model/Payroll.php b/src/Payroll/Common/Model/Payroll.php index 1f5fe262..800d394f 100644 --- a/src/Payroll/Common/Model/Payroll.php +++ b/src/Payroll/Common/Model/Payroll.php @@ -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;