db->table('t_materialmaster') ->select('t_materialmaster.* , emp.FirstName as createdby_user,cd.ConfigValue as CategoryName') ->join('tbl_users as user', 'user.UserId = t_materialmaster.createdby', 'left') ->join('t_employee_details as emp', 'emp.EmpID = user.EmpID', 'left') ->join('t_configdetails as cd', 'cd.Key = t_materialmaster.Category', 'left') ->where('t_materialmaster.IsActive',$isActiveFilter) ->orderBy('CreatedDate','desc'); $query = $builder->get(); $result = $query->getResult(); return $result; } function deleteMaterial($materialId,$info){ $builder = $this->db->table('t_materialmaster') ->where('MaterialCode',$materialId) ->update($info); $result = $this->db->affectedRows(); return $result; } function reActivateMaterial($materialId,$info){ $builder = $this->db->table('t_materialmaster') ->where('MaterialCode',$materialId) ->update($info); $result = $this->db->affectedRows(); return $result; } function getUOM($UOM = '') { $ConfigID = 'C001'; $builder = $this->db->table('t_configdetails') ->select('ConfigValue') ->where('Config_id ', $ConfigID); if ($UOM != '') { $builder->where('ConfigValue !=', $UOM); } $query = $builder->get(); return $query->getResult(); } function getmaterialType($MaterialType = '') { $Config_ID = 'C003'; $builder = $this->db->table('t_configdetails') ->select('Config_ID,ConfigValue') ->where('Config_id', $Config_ID); if ($MaterialType != '') { $builder->where('ConfigValue !=', $MaterialType); } $query = $builder->get(); return $query->getResult(); } //This function used to get the material category using configdetails table function getmaterialCategory($MaterialCategory = '') { $Config_ID = 'C023'; $builder = $this->db->table('t_configdetails') ->select('Key,Config_ID,ConfigValue') ->where('isActive', 1) ->where('Config_id', $Config_ID); if ($MaterialCategory != '') { $builder->where('ConfigValue !=', $MaterialCategory); } $query = $builder->get(); return $query->getResult(); } //This function used to get the conversionfactor using configdetails table function getConversionfactorUOM($ConversionFactorUOM = '') { $Config_ID = 'C024'; $builder = $this->db->table('t_configdetails') ->select('Config_ID,ConfigValue') ->where('Config_id', $Config_ID); if ($ConversionFactorUOM != '') { $builder->where('ConfigValue !=', $ConversionFactorUOM); } $query = $builder->get(); return $query->getResult(); } //AssetCode /** * This function used to get user information by id * @param number $userId : This is user id * @return array $result : This is user information */ function addNewRawMaterial($RawMaterial = '') { $builder = $this->db->table('t_materialmaster'); $builder->insert($RawMaterial); return TRUE; } function insertvalueintoconfig($config) { $builder = $this->db->table('t_configdetails'); $builder->insert($config); return TRUE; } /** * This function used to get user information by id * @param number $userId : This is user id * @return array $result : This is user information */ function getMaterialDetails($MaterialCode) { $sql = " SELECT * FROM t_materialmaster WHERE MaterialCode ='$MaterialCode'"; $query = $this->db->query($sql); return $query->getResult(); } function getAllSilicaRawMaterialCode(){ $builder = $this->db->table('t_materialmaster') ->select('MaterialCode') /** Caution changing config key is posing risk to entire stock module * */ // 248 is the config detail key for silica sand ->where('Category', '248') ->orderBy('CreatedDate', 'desc'); $query = $builder->get(); $materialResults = $query->getResultArray(); return array_column($materialResults, 'MaterialCode'); } function getAllWasteCoreSandMaterialCode(){ $builder = $this->db->table('t_materialmaster') ->select('MaterialCode') /** Caution changing config key is posing risk to entire stock module * */ // 328 is the config detail key for silica sand ->where('Category', '328') ->orderBy('CreatedDate', 'desc'); $query = $builder->get(); $materialResults = $query->getResultArray(); return array_column($materialResults, 'MaterialCode'); } function getAllBagMaterialCode() { //when no data present for current month we are showing only active materials with filter option $builder = $this->db->table('t_materialmaster') ->select('MaterialCode, MaterialName') ->where('Category', '236') ->where('IsActive', 1) ->orderBy('MaterialCode', 'asc'); $query = $builder->get(); return $query->getResultArray(); } function getSelectedBagMaterialCode($distinctMaterialCodes) { //when data present with whether material is active or not we have to show them with filter option $builder = $this->db->table('t_materialmaster') ->select('MaterialCode, MaterialName') ->where('Category', '236') ->whereIn('MaterialCode', $distinctMaterialCodes) ->orderBy('MaterialCode', 'asc'); $query = $builder->get(); return $query->getResultArray(); } function getAllResinMaterialCode(){ $builder = $this->db->table('t_materialmaster') ->select('MaterialCode , MaterialName') ->where('IsActive', 1) ->where('Category', '327') ->orderBy('MaterialCode', 'asc'); $query = $builder->get(); $materialResults = $query->getResultArray(); return $materialResults; } function getSelectedResinMaterialCode($distinctMaterialCodes) { $builder = $this->db->table('t_materialmaster') ->select('MaterialCode, MaterialName') ->where('Category', '327') ->whereIn('MaterialCode', $distinctMaterialCodes) // Matches MaterialCode with the array ->orderBy('MaterialCode', 'asc'); $query = $builder->get(); $materialResults = $query->getResultArray(); return $materialResults; } function getMaterialstock($MaterialCode, $currentdate) { $dt = date('d', strtotime($currentdate)); $year = date('Y', strtotime($currentdate)); $month = date('m', strtotime($currentdate)); if ($month < 04) { //echo "b4finance"; $newyr = $year - 1; $startdate = $newyr . '-' . '04' . '-' . '01'; // print_r( $startdate);die(); //echo $startdate; } else { //echo "after Finance"; $startdate = $year . '-' . '04' . '-' . '01'; // print_r( $startdate);die(); // echo $startdate; } $nedt = $dt + 1; $newdate = $year . '-' . $month . '-' . $nedt; $subquery = "SELECT SUM(IF(Transaction_type='Add',Quantity,0)) - SUM(IF(Transaction_type='Reduce',Quantity,0))as remainingqty FROM t_material_stock_history WHERE MaterialCode=? AND CreatedOn >=? AND CreatedOn <=? "; $query = $this->db->query($subquery, array($MaterialCode, $startdate, $newdate)); return $query->getResultArray(); } function getAssetcode() { $builder = $this->db->table('t_asset_details') ->select('AssetCode,AssetName'); //->where('Assetcode',$Assetcode ); $query = $builder->get(); return $query->getResult(); } function getCostCenterCode() //$CostCenterCode='') { $builder = $this->db->table('t_costcenter_master') ->select('CostCenterCode,CostCenterName'); //->where('CostCenterCode', $CostCenterCode); $query = $builder->get(); return $query->getResult(); } function editRawmaterial($RawMaterial, $MaterialCode) { $this->db->table('t_materialmaster') ->where('MaterialCode', $MaterialCode) ->update($RawMaterial); return TRUE; } function viewrawmaterial($RawMaterial, $MaterialCode) { echo $MaterialCode; //."and".$RawMaterial ; $this->db->table('t_materialmaster') ->where('MaterialCode', $MaterialCode) ->update($RawMaterial); return TRUE; } function export_excel() { $builder = $this->db->table('t_materialmaster as det') ->select('det.*,emp.firstname,emp1.firstname as Updated_By,det.IsActive') ->join('tbl_users as tbl', ' det.createdby = tbl.userid', 'left') ->join('t_employee_details as emp', 'emp.empid=tbl.empid', 'left') ->join('tbl_users as tbl1', ' det.UpdatedBy = tbl1.userid', 'left') ->join('t_employee_details as emp1', 'emp1.empid=tbl1.empid', 'left'); return $builder->get()->getResultArray(); } /** * This function is used to delete the user information * @param number $userId : This is user id * @return boolean $result : TRUE / FALSE*/ // function deletePO($PO, $POinfo) // { // $this->db->where('PO', $PO); // $this->db->update('T_PurchaseOrderDetails', $POInfo); // return $this->db->affectedRows(); // } // on 28/jan/2025. both add and edit. category condition added. function checkMaterialExists($materialCode,$materialName ,$materialCategory) { $builder = $this->db->table('t_materialmaster MM') ->select('MM.MaterialCode,MM.MaterialName,MM.MaterialType,MM.Category,MM.IsActive,CD.ConfigValue as CategoryName') ->join('t_configdetails as CD', ' CD.Key = MM.Category', 'left'); if(!empty($materialCode)){ $builder = $builder->where('MM.MaterialCode !=' , $materialCode); } $builder->where('MM.Category' , $materialCategory); $builder->where('REPLACE(MM.MaterialName, " ", "")' , $materialName); $query = $builder->get(); if ($query->getNumRows() > 0) { return $query->getResultArray(); } else { return []; } } function reOrderListing() { //$subQuery='SELECT * from t_materialmaster where Current_stock < reorder?'; $today = get_current_date(); $today_month = date('F', strtotime($today)); $today_year = date('Y', strtotime($today)); $pre_year = $today_year - 1; $Fin_year = ''; if ($today_month <= 3) { $Fin_year = '01-04-' . $pre_year; } else { $Fin_year = '01-04-' . $today_year; } $subQuery = "SELECT DISTINCT(p.MaterialCode),mm.MaterialName,opens.CurrentStock,OpeningStock,mm.reorder FROM t_material_stock_history AS p left join t_materialmaster mm on mm.MaterialCode = p.MaterialCode left join (select StockId,pp.MaterialCode mc, SUM((IF(pp.Transaction_type='Add',Quantity,0))-(IF(pp.Transaction_type='Reduce',Quantity,0))) AS CurrentStock, SUM( CASE WHEN date(stockdate) > '" . $Fin_year . "' THEN stock ELSE 0 END ) as OpeningStock FROM t_material_stock_history AS pp left join t_materialmaster mm on mm.MaterialCode = pp.MaterialCode GROUP BY pp.MaterialCode ) as opens on opens.mc = p.MaterialCode where (CurrentStock+OpeningStock)db->query($subQuery, array()); return $query->getResult(); } function getMaterialAvg($RawMaterialID) { $subQuery = 'select AVG(Rate) as avg_rate from t_purchaseorder_lineitem join t_purchaseorder_master on t_purchaseorder_master.PONO=t_purchaseorder_lineitem.PONO where MaterialCode = ?'; $query = $this->db->query($subQuery, array($RawMaterialID)); return $query->getResultArray(); } function materialCodesConfigCategory($configKey){ $builder = $this->db->table('t_materialmaster MM') ->select('MM.MaterialCode,MM.MaterialName,MM.MaterialType,MM.Category,MM.IsActive,MM.UOM') ->where('MM.Category' , $configKey); $query = $builder->get(); if ($query->getNumRows() > 0) { //return $this->db->getLastQuery(); return $query->getResultArray(); } else { return []; } } function getMaterialRateHistory($RawMaterialID) { $result = $this->db->table('t_material_rate_history tmrh') ->select(' tmrh.new_value, tmrh.old_value, tmrh.updated_at, te.FirstName AS name ') ->join('tbl_users tu', 'tu.userId = tmrh.updated_by', 'left') ->join('t_employee_details te', 'te.EmpID = tu.EmpID', 'left') ->where('tmrh.MaterialCode', $RawMaterialID) ->orderBy('tmrh.updated_at', 'desc') ->get() ->getResultArray(); return $result; } }