ria/app/Models/Costcenter_model.php

445 lines
14 KiB
PHP

<?php
namespace App\Models;
use CodeIgniter\Model;
class Costcenter_model extends Model
{
/**
* This function is used to get the user listing count
* @param string $searchText : This is optional search text
* @param number $page : This is pagination offset
* @param number $segment : This is pagination limit
* @return array $result : This is result
*/
function CostListing()
{
$builder = $this->db->table('T_CostCenter_Master as Cost')
->select('Cost.CostCenterCode as code,Cost.CostCenterName as CostCenterName , Cost.ApprovedBy as ApprovedBy,Emp.FirstName as FirstName,Emp.Designation as Designation ,Cost.CreatedDate,Cost.IsActive,Cost.DeletedBy,Cost.DeletedBy')
->join('T_Employee_Details as Emp', 'Emp.EmpID=Cost.ApprovedBy');
$query =$builder->get();
$result = $query->getResult();
return $result;
}
/**
* This function used to get user information by id
* @param number $userId : This is user id
* @return array $result : This is user information
*/
function saveCostCenter($Cost)
{
$this->db->transStart();
$builder = $this->db->table('T_CostCenter_Master');
$builder->insert($Cost);
$insert_id = $this->db->affectedRows();
$this->db->transComplete();
return $insert_id;
}
function getFiscalYear()
{
$builder = $this->db->table('T_Company_Details')
->select('year(FiscalYearStartOn) as StartYear,year(FiscalYearEndsOn) as EndYear');
$query =$builder->get();
return $query->getResult();
}
function addCostCenterDepartment($Dept)
{
$this->db->transStart();
$builder = $this->db->table('T_CostCenter_Departments');
$builder->insert($Dept);
$insert_id = $this->db->affectedRows();
$this->db->transComplete();
return $insert_id;
}
function addBudget($Budget)
{
$this->db->transStart();
$builder = $this->db->table('T_CostCenter_Budget');
$builder->insert($Budget);
$insert_id = $this->db->affectedRows();
$this->db->transComplete();
return $insert_id;
}
function getApproverName()
{
$builder = $this->db->table('T_Employee_Details')
->select('EmpID,FirstName,LastName,Designation')
->where('Departmentcode ', 'DEP10');
$query =$builder->get();
return $query->getResult();
}
/**
* This function used to get user information by id
* @param number $userId : This is user id
* @return array $result : This is user information
*/
function getuserInfo($CostCenterID)
{
$builder = $this->db->table('T_CostCentre')
->select('CostCentreID, CostName,Description,CreatedDate')
->where('CostCentreID', $CostCenterID);
$query =$builder->get();
return $query->getResult();
}
/**
* This function used to get Cost center Master information by Cost center ID
* @param number $CostCenterCode : CostCenterCode as Parameter
* @return array $result : This is user information
*/
function GetCostCenterMaster($CostCenterCode)
{
$builder = $this->db->table('T_CostCenter_Master Cost')
->select('Cost.CostCenterCode,Cost.CostCenterName,Cost.ApprovedBy,emp.FirstName,emp.Designation,max(BudgetYear) as BudYear' )
->join('T_Employee_Details emp', 'emp.EmpID = Cost.ApprovedBy')
->join('T_CostCenter_Budget Bud', ' Bud.CostCenterCode = Cost.CostCenterCode')
->where('Cost.CostCenterCode', $CostCenterCode);
$query =$builder->get();
return $query->getResult();
}
/**
* This function used to get Cost center Department information by Cost center ID
* @param number $CostCenterCode : CostCenterCode as Parameter
* @return array $result : This is user information
*/
function GetCostCenterDepartment($CostCenterCode)
{
$builder = $this->db->table('T_CostCenter_Departments Dept')
->select('Dept.DEPCode,Det.DepartmentName')
->join('T_DepartmentDetails Det', 'Det.DEPCode = Dept.DEPCode')
->where('Dept.CostCenterCode', $CostCenterCode);
$query =$builder->get();
return $query->getResult();
}
/**
* This function used to get Cost center Budget information by Cost center ID
* @param number $CostCenterCode : CostCenterCode as Parameter
* @return array $result : This is user information
*/
function GetBudgetYear($CostCenterCode)
{
$subQuery = 'select BudgetYear from T_CostCenter_Budget where CostCenterCode=? ';
$query = $this->db->query($subQuery, array($CostCenterCode));
return $query->getResult();
}
/**
* This function used to get Cost center Budget information by Cost center ID
* @param number $CostCenterCode : CostCenterCode as Parameter
* @return array $result : This is user information
*/
function GetCostCenterBudget($CostCenterCode)
{
$subQuery = 'select BudgetType,BudgetYear,BudgetAmount,Remarks from T_CostCenter_Budget where CostCenterCode=? and
BudgetYear=(select max(BudgetYear) from T_CostCenter_Budget where CostCenterCode=?)';
$query = $this->db->query($subQuery, array($CostCenterCode,$CostCenterCode));
return $query->getResult();
}
/**
* This function used to get Cost center Budget information by Cost center ID
* @param number $CostCenterCode : CostCenterCode as Parameter
* @return array $result : This is user information
*/
function GetCostBudgetTypeByYear($CostCenterCode,$ConfigID,$Year)
{
$subQuery = 'select ConfigValue from T_ConfigDetails Bud where ConfigValue not in
(select BudgetType from T_CostCenter_Budget where CostCenterCode=? and BudgetYear=?) and Config_ID=? ';
$query = $this->db->query($subQuery, array($CostCenterCode,$Year,$ConfigID));
return $query->getResultArray();
}
/**
* This function used to get Cost center Budget information by Cost center ID
* @param number $CostCenterCode : CostCenterCode as Parameter
* @return array $result : This is user information
*/
function GetCostCenterBudgetByYear($CostCenterCode,$Year)
{
$subQuery = 'select BudgetType,BudgetYear,BudgetAmount,Remarks from T_CostCenter_Budget where CostCenterCode=? and
budgetyear=?';
$query = $this->db->query($subQuery, array($CostCenterCode,$Year));
return $query->getResultArray();
}
/**
* This function used to Department list which is not available in the Costcenter master
* @param number $CostCenterCode : CostCenterCode as Parameter
* @return array $result : This is user information
*/
function GetDepartmentNotinCostCenter($CostCenterCode)
{
$subQuery = 'select Dept.DEPCode,Dept.DepartmentName from T_DepartmentDetails Dept
where Dept.DEPCode not in
(select DEPCode from T_CostCenter_Departments where CostCenterCode=?) order by Dept.DEPCode asc';
$query = $this->db->query($subQuery, array($CostCenterCode));
return $query->getResult();
}
function getDepartmentnotadded($Empid)
{
$subQuery = 'select Dept.DEPCode,Dept.DepartmentName from T_DepartmentDetails Dept
left join T_AccessDepartments Ass on Ass.Departmentcode= Dept.DEPCode
where Dept.DEPCode not in
(select Ass.Departmentcode from T_AccessDepartments Ass where EmpID=?) group by Dept.DEPCode';
$query = $this->db->query($subQuery, array($Empid));
return $query->getResult();
}
function getaccessDept($Empid)
{
$builder = $this->db->table('T_AccessDepartments Ass')
->select('Ass.Departmentcode as AssDep,Dep.DepartmentName')
->join('T_DepartmentDetails Dep', 'Dep.DEPCode = Ass.Departmentcode','left')
->where('EmpID ',$Empid);
$query =$builder->get();
return $query->getResult();
}
/**
* This function used to Department list which is not available in the Costcenter master
* @param number $CostCenterCode : CostCenterCode as Parameter
* @return array $result : This is user information
*/
function GetBudgetTypeNotinCostCenter($CostCenterCode,$ConfigID)
{
$subQuery = 'select ConfigValue from T_ConfigDetails Bud where ConfigValue not in
(select BudgetType from T_CostCenter_Budget where CostCenterCode=? and BudgetYear=(select max(BudgetYear) from T_CostCenter_Budget)) and Config_ID=?';
$query = $this->db->query($subQuery, array($CostCenterCode,$ConfigID));
return $query->getResult();
}
function EditCost($Cost,$CostCenterCode)
{
$this->db->table('T_CostCenter_Master')
->where('CostCenterCode',$CostCenterCode)
->update($Cost);
return TRUE;
}
function EditBudget($Budget)
{
$this->db->transStart();
$builder = $this->db->table('T_CostCenter_Budget');
$builder->insert($Budget);
$insert_id = $this->db->affectedRows();
$this->db->transComplete();
return $insert_id;
}
function DeleteBudget($BudgetType='',$BudgetYear='',$CostCenterCode ='')
{
$this->db->table('T_CostCenter_Budget')->delete(['BudgetType' => $BudgetType, 'BudgetYear' => $BudgetYear, 'CostCenterCode' => $CostCenterCode]);
}
function DeleteDepartment($DepCode='',$CostCode='')
{
$this->db->table('T_CostCenter_Departments')->delete(['DEPCode' => $DepCode, 'CostCenterCode' => $CostCode]);
}
function checkDeptCostExists($DepCode='',$CostCode='')
{
$builder = $this->db->table('T_CostCenter_Departments')
->select('CostCenterCode,DEPCode')
->where('DEPCode',$DepCode)
->where('CostCenterCode',$CostCode);
$query =$builder->get();
if ($query->getNumRows() > 0) {
return $query->getResultArray();
}
}
function checkCostDetailsExists($Code='',$CostName='')
{
$builder = $this->db->table('T_CostCenter_Master')
->select('CostCenterCode')
->where('CostCenterCode',$Code);
if ($CostName != '')
{
$builder->where('CostCenterName !=',$CostName);
}
$query =$builder->get();
// echo $query->getNumRows();
// print_r($query->getResultArray());
// echo $this->db->getLastQuery()->getQuery();
if ($query->getNumRows() > 0) {
return $query->getResultArray();
} else{
return [];
}
}
/* *//**
* This function is used to get the Department details from T_DepartmentDetails
* @return array $result : This is result of the query
*/
function getDepartment()
{
$builder = $this->db->table('T_DepartmentDetails')
->select('DEPCode, DepartmentName')
->where('IsActive =', 1);
$query =$builder->get();
return $query->getResult();
}
/**
* This function is used to get the Config value from configuration table
* @return array $result : This is result of the query
*/
function getConfigValue($ConfigID )
{
$builder = $this->db->table('T_ConfigDetails')
->select('ConfigValue')
->where('Config_id ',$ConfigID );
$query =$builder->get();
return $query->getResult();
}
function export_excel(){
$where = null;
$builder = $this->db->table('T_CostCenter_Master as bud')
->select('Mas.*,bud.*,emp.firstname,emp1.firstname as Updated_By')//count(dep.DEPCode) AS ctvalue');
->select('sum(distinct case when Mas.budgettype="CAPITAL" then budgetamount else 0 end) as capital',FALSE)
->select('sum(distinct case when Mas.budgettype="REVENUE" then budgetamount else 0 end) as revenue',FALSE)
->select('sum(distinct case when Mas.budgettype="SERVICE" then budgetamount else 0 end) as service',FALSE)
->select('sum(distinct case when Mas.budgettype="IMPORT" then budgetamount else 0 end) as import',FALSE)
->select('GROUP_CONCAT(distinct part.DepartmentName) as DepartmentName')
->join('T_CostCenter_Budget as Mas','Mas.CostCenterCode=bud.CostCenterCode','left')
->join('T_CostCenter_Departments as dep',' dep.CostCenterCode=Mas.CostCenterCode','left')
->join('T_DepartmentDetails as part','part.DEPCode=dep.DEPCode','left')
->groupBy(array('bud.CostCenterCode','Mas.BudgetYear'))
->join('tbl_users as tbl',' bud.createdby = tbl.userid','left')
->join('T_Employee_Details as emp', 'emp.empid=tbl.empid','left')
->join('tbl_users as tbl1',' bud.UpdatedBy = tbl1.userid','left')
->join('T_Employee_Details as emp1', 'emp1.empid=tbl1.empid','left')
->where('Mas.BudgetYear !=""');
return $builder->get()->getResultArray();
}
//get exist budget year details
function CheckExistBudget($BudgetType,$BudgetYear,$CostCode){
$builder = $this->db->table('T_CostCenter_Budget')
->select('CostCenterCode')
->where('CostCenterCode',$CostCode)
->where('BudgetType',$BudgetType)
->where('BudgetYear',$BudgetYear);
$query =$builder->get();
if ($query->getNumRows() > 0) {
return TRUE;
}
else{
return FALSE;
}
}
//update budget
function updateBudget($Budget,$BudgetType,$BudgetYear,$CostCode)
{
$this->db->table('T_CostCenter_Budget')
->where('CostCenterCode',$CostCode)
->where('BudgetType',$BudgetType)
->where('BudgetYear',$BudgetYear)
->update($Budget);
return TRUE;
}
function deleteCostCenter($CostCode,$UpdatedBy)
{
$tables = [
'T_CostCenter_Master',
'T_CostCenter_Budget',
'T_CostCenter_Departments'
];
foreach ($tables as $table) {
$builder = $this->db->table($table);
$builder->select('IsActive');
$builder->where('CostCenterCode', $CostCode);
$query = $builder->get();
$result = $query->getRowArray();
if ($result && $result['IsActive'] != 0) {
// If IsActive is not 0, update it to 0
$builder->where('CostCenterCode', $CostCode);
$builder->update(['IsActive' => 0,'DeletedBy' => $UpdatedBy ]);
}
}
return "Cost center deactivated successfully.";
}
}
?>