583 lines
19 KiB
PHP
Executable File
583 lines
19 KiB
PHP
Executable File
<?php
|
|
|
|
namespace App\Controllers;
|
|
|
|
use App\Controllers\BaseController;
|
|
use App\Models\Assetdetails_model;
|
|
|
|
use CodeIgniter\Validation\Exceptions\ValidationException;
|
|
use PhpOffice\PhpSpreadsheet\Spreadsheet;
|
|
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
|
|
use DateTime;
|
|
/**
|
|
* Module : Asset
|
|
* Assetdetails Class to control all asset related operations.
|
|
* @author : Venba
|
|
* @version : 1.1
|
|
* @since : 15 Feb 2016
|
|
* @example : Revised at 15th april 2024
|
|
*/
|
|
class Assetdetails extends BaseController
|
|
{
|
|
protected $assetdetails_model;
|
|
protected $session;
|
|
|
|
/**
|
|
* This is default constructor of the class
|
|
*/
|
|
public function __construct()
|
|
{
|
|
parent::__construct();
|
|
$this->assetdetails_model = new Assetdetails_model();
|
|
$this->session = session();
|
|
helper('form'); //$this->load->library('form_validation');
|
|
$this->isLoggedIn();
|
|
//
|
|
|
|
}
|
|
/**
|
|
* This function used to load the first screen of the user
|
|
*/
|
|
public function index()
|
|
{
|
|
$this->global['pageTitle'] = 'Asset Details';
|
|
|
|
$this->loadViews("assetListing", $this->global, NULL, NULL);
|
|
}
|
|
|
|
/**
|
|
* This function is used to load the Supplier list
|
|
*/
|
|
function assetListing()
|
|
{
|
|
$isActiveFilter = 1 ; // default showing active data
|
|
$showArchive = 0 ; //
|
|
|
|
if ($this->request->getMethod() === 'POST') {
|
|
|
|
$showArchive = $this->request->getPost('showArchive');
|
|
//reversing condition that when user wants deleted data to be shown then we are making active filter 0
|
|
if($showArchive){
|
|
$isActiveFilter = 0;
|
|
}
|
|
}
|
|
|
|
$data['showArchive'] = $showArchive;
|
|
|
|
|
|
$data['userRecords'] = $this->assetdetails_model->assetListing($isActiveFilter);
|
|
|
|
$this->global['pageTitle'] = 'Asset List';
|
|
//print_r($data);die();
|
|
$this->loadViews("assetListing", $this->global, $data, NULL);
|
|
}
|
|
/**
|
|
* This function is used to load the add new supplier */
|
|
function addasset()
|
|
{
|
|
|
|
|
|
$data['AssetStatus'] = $this->assetdetails_model->getConfigValue('C015');
|
|
$data['po'] = $this->assetdetails_model->getPO();
|
|
|
|
$this->global['pageTitle'] = 'Add Asset';
|
|
|
|
$this->loadViews("addasset", $this->global, $data, NULL);
|
|
}
|
|
|
|
function getpodetails()
|
|
{
|
|
$PO = $this->request->getPost('PONO');
|
|
|
|
$data = $this->assetdetails_model->getpodetails($PO);
|
|
//print_r($data);die();
|
|
|
|
$HTML = "<option value='0'>SelectMaterialCode</option>";
|
|
if (count($data) > 0) {
|
|
for ($j = 0; $j < count($data); $j++) {
|
|
$lineItem = $data[$j]->LineItemNo;
|
|
$materialCode= $data[$j]->MaterialCode;
|
|
|
|
$HTML .= "<option value='" . $materialCode . "'>" . $lineItem . "-" . $materialCode . "</option>";
|
|
}
|
|
}
|
|
//echo $HTML;
|
|
die(json_encode(array($HTML)));
|
|
//echo json_encode($data);
|
|
//die();
|
|
}
|
|
|
|
function getline()
|
|
{
|
|
$line = $this->request->getPost('line');
|
|
|
|
|
|
$type = $this->assetdetails_model->gettyp($line);
|
|
|
|
$data = '';
|
|
if (!empty($type)) {
|
|
|
|
foreach ($type as $item) {
|
|
|
|
$data = $item->POType;
|
|
}
|
|
}
|
|
|
|
if ($data == 'SERVICE') {
|
|
$ser = $this->assetdetails_model->getlineitemser($line);
|
|
} elseif ($data == 'REVENUE') {
|
|
$ser = $this->assetdetails_model->getlineitemre($line);
|
|
} elseif ($data == 'IMPORT') {
|
|
$ser = $this->assetdetails_model->getlineitemimport($line);
|
|
} elseif ($data == 'CAPITAL') {
|
|
$ser = $this->assetdetails_model->getlineitemcap($line);
|
|
}
|
|
//print_r($ser);die();
|
|
|
|
|
|
//print_r($data);die();
|
|
//$data = get_date_time_format($data);
|
|
echo json_encode($ser);
|
|
die();
|
|
}
|
|
// function getlin(){
|
|
// $line = $this->request->getPost('line');
|
|
|
|
|
|
// }
|
|
/* Validation for Department Dropdown
|
|
*/
|
|
function Department_validate($selectValue)
|
|
{
|
|
//echo 'select_validate method called';
|
|
// 'none' is the first option and the text says something like "-Choose one-"
|
|
if ($selectValue == '-1') {
|
|
$this->validator->setError('Department_validate', 'Please Select Department.');
|
|
return false;
|
|
} else // user picked something
|
|
{
|
|
return true;
|
|
}
|
|
}
|
|
/* Validation for Supplier Dropdown
|
|
*/
|
|
function Supplier_validate($selectValue)
|
|
{
|
|
//echo 'select_validate method called';
|
|
// 'none' is the first option and the text says something like "-Choose one-"
|
|
if ($selectValue == '-1') {
|
|
|
|
$this->validator->setError('Supplier_validate', 'Please Select Supplier.');
|
|
|
|
return false;
|
|
} else // user picked something
|
|
{
|
|
return true;
|
|
}
|
|
}
|
|
|
|
/* Validation for Supplier Dropdown
|
|
*/
|
|
function Asset_validate($selectValue)
|
|
{
|
|
//echo 'select_validate method called';
|
|
// 'none' is the first option and the text says something like "-Choose one-"
|
|
if ($selectValue == '-1') {
|
|
$this->validator->setError('Asset_validate', 'Please Select Asset Status.');
|
|
return false;
|
|
} else // user picked something
|
|
{
|
|
return true;
|
|
}
|
|
}
|
|
/**
|
|
* This function is used to add new user to the system
|
|
*/
|
|
function addNewasset()
|
|
{
|
|
|
|
// $this->validator->setRules([
|
|
// 'AssetName' => 'trim|required',
|
|
// 'Department' => 'trim|callback_Department_validate',
|
|
// 'Location' => 'trim|required',
|
|
// 'User' => 'trim|required',
|
|
// 'SupplierName' => 'trim|callback_Supplier_validate',
|
|
// 'DateOfCommission' => 'trim|required',
|
|
// 'Assetvalue' => 'trim|required',
|
|
// 'AssetStatus' => 'trim|callback_Asset_validate'
|
|
// ]);
|
|
|
|
// $this->validator->setMessage([
|
|
// 'AssetName' => [
|
|
// 'required' => 'Please enter Asset Name.'
|
|
// ],
|
|
// 'Department' => [
|
|
// 'Department_validate' => 'Please select a valid Department.'
|
|
// ],
|
|
// 'Location' => [
|
|
// 'required' => 'Please enter Location.'
|
|
// ],
|
|
// 'User' => [
|
|
// 'required' => 'Please enter User.'
|
|
// ],
|
|
// 'SupplierName' => [
|
|
// 'Supplier_validate' => 'Please select a valid Supplier.'
|
|
// ],
|
|
// 'DateOfCommission' => [
|
|
// 'required' => 'Please enter Date of Commission.'
|
|
// ],
|
|
// 'Assetvalue' => [
|
|
// 'required' => 'Please enter Asset Value.'
|
|
// ],
|
|
// 'AssetStatus' => [
|
|
// 'Asset_validate' => 'Please select a valid Asset Status.'
|
|
// ]
|
|
// ]);
|
|
|
|
|
|
// if (!$this->validator->run()) {
|
|
if (false) {
|
|
// $this->addasset();
|
|
} else {
|
|
$AssetName = $this->request->getPost('AssetName');
|
|
$Description = $this->request->getPost('Description');
|
|
$Department = $this->request->getPost('AssetDept');
|
|
$Location = $this->request->getPost('Location');
|
|
$User = $this->request->getPost('User');
|
|
$SupplierName = $this->request->getPost('SupplierName');
|
|
$DateOfCommission = $this->request->getPost('DateOfCommission');
|
|
$CreatedBy = $this->session->get('userId');
|
|
$DateOfPurchase = $this->request->getPost('DateOfPurchase');
|
|
$DOpurchase = "";
|
|
if ($DateOfPurchase != '') {
|
|
$DOpurchase = get_date_time_format($DateOfPurchase);
|
|
}
|
|
$AssetValue = $this->request->getPost('Assetvalue');
|
|
$DOCommission = "";
|
|
if ($DateOfCommission != '') {
|
|
$DOCommission = get_date_time_format($DateOfCommission);
|
|
//$DOCommission= get_date_time_format($DateOfCommission);
|
|
}
|
|
$AssetStatus = $this->request->getPost('AssetStatus');
|
|
$Remarks = $this->request->getPost('Remarks');
|
|
$PONO = $this->request->getPost('PONO');
|
|
$lineitem = $this->request->getPost('lineitem');
|
|
$MaterialCode = $this->request->getPost('MaterialCode');
|
|
$Quantity = $this->request->getPost('Quantity');
|
|
|
|
|
|
$chked = $this->request->getPost('isactive');
|
|
|
|
if ($chked != '') {
|
|
$IsActive = '1';
|
|
} else {
|
|
$IsActive = '0';
|
|
}
|
|
|
|
|
|
$asset = array();
|
|
|
|
|
|
$asset = array('AssetName' => $AssetName, 'Description' => $Description, 'DEPCode' => $Department, 'Location' => $Location,
|
|
'UserName' => $User, 'SupplierCode' => $SupplierName, 'DateOfPurchase' => $DOpurchase, 'DateOfCommison' => $DOCommission,
|
|
'AssetValue' => $AssetValue, 'AssetStatus' => $AssetStatus, 'IsActive' => $IsActive, 'Remarks' => $Remarks,
|
|
'CreatedBy' => $CreatedBy, 'PONO' => $PONO, 'POLineItem' => $lineitem, 'MaterialCode' => $MaterialCode,
|
|
'Quantity' => $Quantity);
|
|
|
|
$result = $this->assetdetails_model->addNewasset($asset);
|
|
|
|
if ($result > 0) {
|
|
// $this->session->set_flashdata('success', 'New Asset created successfully');
|
|
echo "<script>alert('Asset Created successfully!');</script>";
|
|
} else {
|
|
// $this->session->set_flashdata('failed', 'Asset Created Failed!');
|
|
echo "<script>alert('Asset Not Created!');</script>";
|
|
}
|
|
return redirect()->route('assetListing');
|
|
}
|
|
}
|
|
/**
|
|
* This function is used load user edit information
|
|
* @param number $userId : Optional : This is user id
|
|
*/
|
|
|
|
/*function ech(){
|
|
|
|
echo $this->request->getPost('Asset_Code');
|
|
}*/
|
|
|
|
function editOldasset($AssetCode = '', $PO = '')
|
|
{
|
|
|
|
$SupplierName = $this->request->getPost('SupplierName');
|
|
$AssetStatus = $this->request->getPost('AssetStatus');
|
|
$Department = $this->request->getPost('Department');
|
|
|
|
if ($AssetCode == '') {
|
|
$AssetID = $_GET['AssetID'];
|
|
} else {
|
|
$AssetID = $AssetCode;
|
|
}
|
|
//echo $AssetID;
|
|
|
|
$data['assetList'] = $this->assetdetails_model->getAssetDetails($AssetID);
|
|
// $data['SupplierList'] = $this->assetdetails_model->getSupplierName($SupplierName);
|
|
// $data['DepartmentList'] = $this->assetdetails_model->getDepartment($Department);
|
|
$data['AssetStatusList'] = $this->assetdetails_model->getConfigValue('C015');
|
|
$data['PO'] = $this->assetdetails_model->getPO($PO);
|
|
// print_r($data);die();
|
|
$this->global['pageTitle'] = 'Edit Asset';
|
|
|
|
$this->loadViews("editOldasset", $this->global, $data, NULL);
|
|
}
|
|
|
|
function deleteAsset(){
|
|
|
|
$assetCode = $this->request->getGet('AssetID');
|
|
$updatedBy = $this->session->get('userId');
|
|
$updatedDate = new DateTime();
|
|
$updatedDate = $updatedDate->format('Y-m-d H:i:s');
|
|
$assetInfo = array('IsActive' => 0 , 'UpdatedDate' => $updatedDate , 'UpdatedBy' => $updatedBy );
|
|
$result = $this->assetdetails_model->deleteAsset($assetCode , $assetInfo);
|
|
|
|
return redirect()->route('assetListing');
|
|
|
|
}
|
|
|
|
function reActivateAsset(){
|
|
|
|
$assetCode = $this->request->getGet('AssetID');
|
|
$updatedBy = $this->session->get('userId');
|
|
$updatedDate = new DateTime();
|
|
$updatedDate = $updatedDate->format('Y-m-d H:i:s');
|
|
$assetInfo = array('IsActive' => 1 , 'UpdatedDate' => $updatedDate , 'UpdatedBy' => $updatedBy );
|
|
$result = $this->assetdetails_model->deleteAsset($assetCode , $assetInfo);
|
|
|
|
return redirect()->route('assetListing');
|
|
|
|
}
|
|
|
|
function checkAssetName(){
|
|
|
|
$data = $this->request->getPost();
|
|
|
|
$assetId = $data['assetId']??'';
|
|
$assetName = str_replace(" ","",$data['assetName']) ;
|
|
|
|
$result = $this->assetdetails_model->checkAssetName($assetId,$assetName);
|
|
|
|
return $this->response->setJSON($result);
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
* This function is used to edit the user information
|
|
*/
|
|
function editasset()
|
|
{
|
|
|
|
|
|
$Asset_Code = $this->request->getPost('AssetCode');
|
|
|
|
// $this->validator->setRules([
|
|
// 'AssetName' => 'trim|required',
|
|
// 'Description' => 'trim|required',
|
|
// 'Department' => 'trim|callback_Department_validate',
|
|
// 'Location' => 'trim|required',
|
|
// 'User' => 'trim|required',
|
|
// 'SupplierName' => 'trim|callback_Supplier_validate',
|
|
// 'DateOfCommission' => 'trim|required',
|
|
// 'Assetvalue' => 'trim|required',
|
|
// 'AssetStatus' => 'trim|callback_Asset_validate'
|
|
// ]);
|
|
|
|
// $this->validator->setMessage([
|
|
// 'AssetName' => [
|
|
// 'required' => 'Please enter Asset Name.'
|
|
// ],
|
|
// 'Description' => [
|
|
// 'required' => 'Please enter Description.'
|
|
// ],
|
|
// 'Department' => [
|
|
// 'Department_validate' => 'Please select a valid Department.'
|
|
// ],
|
|
// 'Location' => [
|
|
// 'required' => 'Please enter Location.'
|
|
// ],
|
|
// 'User' => [
|
|
// 'required' => 'Please enter User.'
|
|
// ],
|
|
// 'SupplierName' => [
|
|
// 'Supplier_validate' => 'Please select a valid Supplier.'
|
|
// ],
|
|
// 'DateOfCommission' => [
|
|
// 'required' => 'Please enter Date of Commission.'
|
|
// ],
|
|
// 'Assetvalue' => [
|
|
// 'required' => 'Please enter Asset Value.'
|
|
// ],
|
|
// 'AssetStatus' => [
|
|
// 'Asset_validate' => 'Please select a valid Asset Status.'
|
|
// ]
|
|
// ]);
|
|
|
|
// if ($this->validator->run() == FALSE) {
|
|
if (FALSE) {
|
|
|
|
$this->editOldasset($Asset_Code);
|
|
} else {
|
|
$Asset_Code = $this->request->getPost('AssetCode');
|
|
$AssetName = $this->request->getPost('AssetName');
|
|
$Description = $this->request->getPost('PODescription');
|
|
$Department = $this->request->getPost('AssetDept');
|
|
$Location = $this->request->getPost('Location');
|
|
$User = $this->request->getPost('User');
|
|
$SupplierName = $this->request->getPost('SupplierName');
|
|
$DateOfPurchase = $this->request->getPost('DateOfPurchase');
|
|
$DOpurchase = "";
|
|
if ($DateOfPurchase != '') {
|
|
$DOpurchase = get_date_time_format($DateOfPurchase);
|
|
}
|
|
|
|
|
|
$DateOfCommission = $this->request->getPost('DateOfCommission');
|
|
$UpdatedBy = $this->session->get('userId');
|
|
$Assetvalue = $this->request->getPost('Assetvalue');
|
|
|
|
if ($DateOfCommission != '') {
|
|
|
|
$DOCommission = get_date_time_format($DateOfCommission);
|
|
}
|
|
|
|
|
|
$AssetStatus = $this->request->getPost('AssetStatus');
|
|
$Remarks = $this->request->getPost('Remarks');
|
|
$PONO = $this->request->getPost('PONO');
|
|
$lineitem = $this->request->getPost('lineitem');
|
|
$MaterialCode = $this->request->getPost('MaterialCode');
|
|
$Quantity = $this->request->getPost('Quantity');
|
|
$chked = $this->request->getPost('isactive');
|
|
|
|
if ($chked != '') {
|
|
$IsActive = '1';
|
|
} else {
|
|
$IsActive = '0';
|
|
}
|
|
|
|
$asset = array();
|
|
|
|
|
|
$asset = array(
|
|
'AssetName' => $AssetName,
|
|
'Description' => $Description,
|
|
'DEPCode' => $Department,
|
|
'Location' => $Location,
|
|
'UserName' => $User,
|
|
'SupplierCode' => $SupplierName,
|
|
'DateOfPurchase' => $DOpurchase,
|
|
'DateOfCommison' => $DOCommission,
|
|
'AssetValue' => $Assetvalue,
|
|
'AssetStatus' => $AssetStatus,
|
|
'IsActive' => $IsActive,
|
|
'Remarks' => $Remarks,
|
|
'UpdatedBy' => $UpdatedBy,
|
|
'PONO' => $PONO,
|
|
'POLineItem' => $lineitem,
|
|
'MaterialCode' => $MaterialCode,
|
|
'Quantity' => $Quantity);
|
|
|
|
|
|
$result = $this->assetdetails_model->editasset($asset, $Asset_Code);
|
|
|
|
if ($result == true) {
|
|
echo "<script>alert('Asset updated successfully!');</script>";
|
|
} else {
|
|
echo "<script>alert('Asset Not updated !');</script>";
|
|
}
|
|
return redirect()->route('assetListing');
|
|
}
|
|
}
|
|
|
|
|
|
function exportasset()
|
|
{
|
|
|
|
$data = $this->assetdetails_model->export_excel();
|
|
$file_name = 'Asset_details' .' '. '.xls';
|
|
$spreadsheet = new Spreadsheet();
|
|
$sheet = $spreadsheet->getActiveSheet();
|
|
$sheet->mergeCells('G3:M3');
|
|
$sheet->getStyle('G3')->getAlignment()->setHorizontal('center');
|
|
$sheet->setTitle('Asset Details');
|
|
|
|
$headers = [
|
|
'G3' => 'RESICO Asset Details',
|
|
'C5' => 'AssetCode',
|
|
'D5' => 'AssetName',
|
|
'E5' => 'AssetDescription',
|
|
'F5' => 'DepartmentName',
|
|
'G5' => 'Location',
|
|
'H5' => 'PONO',
|
|
'I5' => 'POLineItem',
|
|
'J5' => 'MaterialName',
|
|
'K5' => 'Quanity',
|
|
'L5' => 'UserName',
|
|
'M5' => 'SupplierName',
|
|
'N5' => 'DateOfPurchase',
|
|
'O5' => 'DateOfCommison',
|
|
'P5' => 'AssetValue',
|
|
'Q5' => 'AssetStatus',
|
|
'R5' => 'IsActive',
|
|
'S5' => 'Remarks',
|
|
'T5' => 'CreatedBy',
|
|
'U5' => 'UpdatedBy'
|
|
];
|
|
|
|
foreach ($headers as $cell => $value) {
|
|
$sheet->setCellValue($cell, $value);
|
|
$sheet->getStyle($cell)->getFont()->setSize($cell == 'G3' ? 14 : 12);
|
|
$sheet->getStyle($cell)->getFont()->setBold(true);
|
|
}
|
|
|
|
if($data){
|
|
$row = 6; // Start from row 6
|
|
foreach ($data as $d) {
|
|
$col = 'A'; // Start from column A
|
|
foreach ($d as $value) {
|
|
$sheet->setCellValue($col . $row, $value);
|
|
$col++;
|
|
}
|
|
$row++;
|
|
}
|
|
}
|
|
// $writer = new Xlsx($spreadsheet);
|
|
// $writer->save($file_name);
|
|
// header("Content-Type: application/vnd.ms-excel");
|
|
// header('Content-Disposition: attachment; filename="' . basename($file_name) . '"');
|
|
// header('Expires: 0');
|
|
// header('Cache-Control: must-revalidate');
|
|
// header('Pragma: public');
|
|
// header('Content-Length:' . filesize($file_name));
|
|
// flush();
|
|
// readfile($file_name);
|
|
// exit;
|
|
ob_clean();
|
|
|
|
$writer = new Xlsx($spreadsheet);
|
|
|
|
|
|
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
|
|
header('Content-Disposition: attachment;filename="'. $file_name .'"');
|
|
header('Cache-Control: max-age=0');
|
|
header('Expires: 0');
|
|
header('Pragma: public');
|
|
|
|
$writer->save('php://output');
|
|
exit;
|
|
}
|
|
|
|
|
|
|
|
}
|