ria/app/Models/Rawmaterialdetails_model.php

391 lines
11 KiB
PHP
Executable File

<?php
namespace App\Models;
use CodeIgniter\Model;
class Rawmaterialdetails_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 rawmaterialListing()
{
$builder = $this->db->table('t_materialmaster')
->select('*')
->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('Config_ID,ConfigValue')
->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')
->where('IsActive', 1)
->like('LOWER(MaterialName)', 'silica sand')
->orderBy('CreatedDate', 'desc');
$query = $builder->get();
$materialResults = $query->getResultArray();
return $materialCodes = array_column($materialResults, 'MaterialCode');
}
function getAllBagMaterialCode(){
$builder = $this->db->table('t_materialmaster')
->select('MaterialCode , MaterialName')
->where('IsActive', 1)
->where('Category', 'bag')
->orderBy('MaterialCode', 'asc');
$query = $builder->get();
$materialResults = $query->getResultArray();
return $materialResults;
}
function getAllResinMaterialCode(){
$builder = $this->db->table('t_materialmaster')
->select('MaterialCode , MaterialName')
->where('IsActive', 1)
->where('Category', 'plastic_chemicals')
->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();
// }
function checkMaterialExists($material)
{
// $sql="SELECT MaterialCode, MaterialName, MaterialType, Category,REPLACE(MaterialName, ' ', '')
// FROM t_materialmaster
// WHERE REPLACE(MaterialName, ' ', '') LIKE REPLACE('%'".$material."'%', ' ', '')";
$builder = $this->db->table('t_materialmaster')
->select('MaterialCode,MaterialName,MaterialType,Category,IsActive')
->like('REPLACE(MaterialName, " ", "")', $material);
$query = $builder->get();
//print_r($query-getResult());
return $query->getResult();
}
function checkMaterialCategory($mc)
{
$temp = [];
$builder = $this->db->table('t_configdetails')
->distinct()
->select('ConfigValue')
->where('Config_ID', 'C023')
->like('ConfigValue', $mc);
$query = $builder->get();
$temparr = [];
foreach ($query->getResult() as $arr) {
$temparr[] = $arr->ConfigValue;
}
$temp['suggestions'] = $temparr;
return $temp;
}
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)<reorder";
$query = $this->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();
}
}