File: /var/www/html/fieldsblaze-heroku/app/Http/Controllers/MasterDataController.php
<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use App\Models\UOM;
use App\Models\CustomerType;
use App\Models\PaymentType;
use App\Models\GST;
use App\Models\ProductFamily;
use App\Models\ExpenseType;
use App\Models\ExpenseTypeTravel;
use Illuminate\Http\Request;
use App\Library\UserLib;
class MasterDataController extends Controller
{
protected $userLib;
public function __construct(UserLib $userLib)
{
$this->userLib = $userLib;
}
public function MasterList()
{
if(empty(session('UserId')))
{
return redirect('/admin/logout');
}
$UOM = UOM::all();
$GST = GST::all();
$CustomerType = CustomerType::all();
$PaymentType = PaymentType::all();
$ProductFamily = ProductFamily::all();
return view('admin.master-data', ['Unit' => $UOM, 'GST' => $GST, 'CustomerType' => $CustomerType, 'ProductFamily' => $ProductFamily, 'PaymentType' => $PaymentType]);
}
### Store New UOM
public function storeUOM(Request $request)
{
if(empty(session('UserId')))
{
return redirect('/admin/logout');
}
$UnitId = $this->userLib->useridGenrator();
$UOM = new UOM;
$UOM->UnitId = $UnitId;
$UOM->MeasurementName = $request->input('MeasurementName');
$UOM->Status = '1';
$UOM->Created_by = session('UserId');
$UOM->Created_at = date('Y-m-d H:i:s', time());
$UOM->Updated_by = session('UserId');
$UOM->Updated_at = date('Y-m-d H:i:s', time());
$UOM->save();
return redirect()->back()->with('status_success');
}
#### Change Status Unit of Measurement
public function statusUpdateUOM($id)
{
if(empty(session('UserId')))
{
return redirect('/admin/logout');
}
$data = UOM::select('tbl_unit_of_measurement.*')
->where('UnitId', '=', $id)
->get()->first();
if ($data->Status == '1') {
$Status = '0';
} else {
$Status = '1';
}
$values = array('Status' => $Status, 'Updated_by'=>session('UserId'), 'Updated_at' => date('Y-m-d H:i:s', time()));
UOM::where('UnitId', $id)->update($values);
return redirect()->back();
}
### Edit Unit of Measurement
public function editUOM($id)
{
if(empty(session('UserId')))
{
return redirect('/admin/logout');
}
//$UOM = UOM::find($id);
$UOM = UOM::select('tbl_unit_of_measurement.*')
->where('UnitId', '=', $id)
->get()->first();
//echo $id;
return response()->json([
'status' => 200,
'UOM' => $UOM,
]);
}
### Update Unit of Measurement
public function updateUOM(Request $request)
{
if(empty(session('UserId')))
{
return redirect('/admin/logout');
}
//$user_id = Auth::id();
$uom_id = $request->input('id');
$UpdatedDate = date('Y-m-d H:i:s', time());
$data = array();
$data['Updated_at'] = $UpdatedDate;
$data['MeasurementName'] = $request->input('name');
$data['Updated_by'] = session('UserId');
$uom_update = UOM::where('UnitId', $uom_id)->update($data);
if ($uom_update) {
echo '1';
} else {
echo '0';
}
return redirect()->back()->with('status_success');
}
##### check Measurement Name
public function checkMeasurementName(Request $request){
$CreatedDate = date('Y-m-d H:i:s',time());
$data = $request->all();
$uom = UOM::where('MeasurementName', $data['MeasurementName'])->get();
if ($uom->count() > 0)
{ //Name already exist
$uom = $uom->first();
$UomId = $uom->UomId;
$response = [
'Success' => false,
'ResponseMessage' => "Measurement Name already exist in CRM!",
'ResponseCode' => '201',
];
return response()->json($response);
}
else{
$response = [
'Success' => true,
'ResponseMessage' => "<span class='text-success'>Measurement Name Available to create</span>",
'ResponseCode' => '200',
];
return response()->json($response);
}
}
########### GST #######
### Store New GST Slab
public function storeGST(Request $request)
{
if(empty(session('UserId')))
{
return redirect('/admin/logout');
}
$GstSlabId = $this->userLib->useridGenrator();
$GST = new GST;
$GST->GstSlabId = $GstSlabId;
$GST->Name = $request->input('name');
$GST->Status = '1';
$GST->Created_by = session('UserId');
$GST->Created_at = date('Y-m-d H:i:s', time());
$GST->Updated_by = session('UserId');
$GST->Updated_at = date('Y-m-d H:i:s', time());
$GST->save();
return redirect()->back()->with('status_success');
}
#### Change Status GST
public function statusUpdateGST($id)
{
if(empty(session('UserId')))
{
return redirect('/admin/logout');
}
$data = GST::select('tbl_gst_slab.*')
->where('GstSlabId', '=', $id)
->get()->first();
if ($data->Status == '1') {
$Status = '0';
} else {
$Status = '1';
}
$values = array('Status' => $Status, 'Updated_by'=>session('UserId'), 'Updated_at' => date('Y-m-d H:i:s', time()));
GST::where('GstSlabId', $id)->update($values);
return redirect()->back();
}
### Edit GST
public function editGST($id)
{
if(empty(session('UserId')))
{
return redirect('/admin/logout');
}
$GST = GST::select('tbl_gst_slab.*')
->where('GstSlabId', '=', $id)
->get()->first();
return response()->json([
'status' => 200,
'GST' => $GST,
]);
}
### Update GST
public function updateGST(Request $request)
{
if(empty(session('UserId')))
{
return redirect('/admin/logout');
}
//$user_id = Auth::id();
$gst_id = $request->input('id');
$UpdatedDate = date('Y-m-d H:i:s', time());
$data = array();
$data['Updated_at'] = $UpdatedDate;
$data['Name'] = $request->input('name');
$data['Updated_by'] = session('UserId');
$data['Updated_at'] = date('Y-m-d H:i:s', time());
$gst_update = GST::where('GstSlabId', $gst_id)->update($data);
if ($gst_update) {
echo '1';
} else {
echo '0';
}
return redirect()->back()->with('status_success');
}
########### Customer Type #######
### Store New Customer Type
public function storeCustomerType(Request $request)
{
if(empty(session('UserId')))
{
return redirect('/admin/logout');
}
$CustomerTypeId = $this->userLib->useridGenrator();
$CustomerType = new CustomerType;
$CustomerType->Name = $request->input('name');
$CustomerType->CustomerTypeId = $CustomerTypeId;
$CustomerType->Status = '1';
$CustomerType->Created_by = session('UserId');
$CustomerType->Created_at = date('Y-m-d H:i:s', time());
$CustomerType->Updated_by = session('UserId');
$CustomerType->Updated_at = date('Y-m-d H:i:s', time());
$CustomerType->save();
return redirect()->back()->with('status_success');
}
#### Change Status CustomerType
public function statusUpdateCustomerType($id)
{
if(empty(session('UserId')))
{
return redirect('/admin/logout');
}
$data = CustomerType::select('tbl_customer_type.*')
->where('CustomerTypeId', '=', $id)
->get()->first();
if ($data->Status == '1') {
$Status = '0';
} else {
$Status = '1';
}
$values = array('Status' => $Status, 'Updated_by'=>session('UserId'), 'Updated_at' => date('Y-m-d H:i:s', time()));
CustomerType::where('CustomerTypeId', $id)->update($values);
return redirect()->back();
}
### Edit CustomerType
public function editCustomerType($id)
{
if(empty(session('UserId')))
{
return redirect('/admin/logout');
}
$CustomerType = CustomerType::select('tbl_customer_type.*')
->where('CustomerTypeId', '=', $id)
->get()->first();
return response()->json([
'status' => 200,
'CustomerType' => $CustomerType,
]);
}
### Update CustomerType
public function updateCustomerType(Request $request)
{
if(empty(session('UserId')))
{
return redirect('/admin/logout');
}
//$user_id = Auth::id();
$type_id = $request->input('id');
$UpdatedDate = date('Y-m-d H:i:s', time());
$data = array();
$data['Updated_at'] = $UpdatedDate;
$data['Name'] = $request->input('name');
$data['Updated_by'] = session('UserId');
$data['Updated_at'] = date('Y-m-d H:i:s', time());
$CType_update = CustomerType::where('CustomerTypeId', $type_id)->update($data);
if ($CType_update) {
echo '1';
} else {
echo '0';
}
return redirect()->back()->with('status_success');
}
########### Product Family #######
### Store New Product Family
public function storeProductFamily(Request $request)
{
if(empty(session('UserId')))
{
return redirect('/admin/logout');
}
$ProductFamilyId = $this->userLib->useridGenrator();
$ProductFamily = new ProductFamily;
$ProductFamily->ProductFamilyId = $ProductFamilyId;
$ProductFamily->Name = $request->input('name');
$ProductFamily->Status = '1';
$ProductFamily->Created_by = session('UserId');
$ProductFamily->Created_at = date('Y-m-d H:i:s', time());
$ProductFamily->Updated_by = session('UserId');
$ProductFamily->Updated_at = date('Y-m-d H:i:s', time());
$ProductFamily->save();
return redirect()->back()->with('status_success');
}
#### Change Status ProductFamily
public function statusUpdateProductFamily($id)
{
if(empty(session('UserId')))
{
return redirect('/admin/logout');
}
$data = ProductFamily::select('tbl_product_family.*')
->where('ProductFamilyId', '=', $id)
->get()->first();
if ($data->Status == '1') {
$Status = '0';
} else {
$Status = '1';
}
$values = array('Status' => $Status);
ProductFamily::where('ProductFamilyId', $id)->update($values);
return redirect()->back();
}
### Edit ProductFamily
public function editProductFamily($id)
{
if(empty(session('UserId')))
{
return redirect('/admin/logout');
}
$ProductFamily = ProductFamily::select('tbl_product_family.*')
->where('ProductFamilyId', '=', $id)
->get()->first();
return response()->json([
'status' => 200,
'ProductFamily' => $ProductFamily,
]);
}
### Update ProductFamily
public function updateProductFamily(Request $request)
{
if(empty(session('UserId')))
{
return redirect('/admin/logout');
}
//$user_id = Auth::id();
$id = $request->input('id');
$UpdatedDate = date('Y-m-d H:i:s', time());
$data = array();
$data['Updated_at'] = $UpdatedDate;
$data['Name'] = $request->input('name');
$data['Updated_by'] = session('UserId');
$family_update = ProductFamily::where('ProductFamilyId', $id)->update($data);
if ($family_update) {
echo '1';
} else {
echo '0';
}
return redirect()->back()->with('status_success');
}
########### Payment Type #######
### Store New Payment Type
public function storePaymentType(Request $request)
{
// $userId = (session('UserId'));
if(empty(session('UserId')))
{
return redirect('/admin/logout');
}
$PaymentTypeId = $this->userLib->useridGenrator();
$PaymentType = new PaymentType;
$PaymentType->PaymentTypeId = $PaymentTypeId;
$PaymentType->PaymentTypeName = $request->input('PaymentTypeName');
$PaymentType->Status = '1';
$PaymentType->Created_by = session('UserId');
$PaymentType->Created_at = date('Y-m-d H:i:s', time());
$PaymentType->Updated_by = session('UserId');
$PaymentType->Updated_at = date('Y-m-d H:i:s', time());
$PaymentType->save();
return redirect()->back()->with('status_success');
}
#### Change Status PaymentType
public function statusUpdatePaymentType($id)
{
if(empty(session('UserId')))
{
return redirect('/admin/logout');
}
$data = PaymentType::select('tbl_payment_type.*')
->where('PaymentTypeId', '=', $id)
->get()->first();
if ($data->Status == '1') {
$Status = '0';
} else {
$Status = '1';
}
$values = array('Status' => $Status);
PaymentType::where('PaymentTypeId', $id)->update($values);
return redirect()->back();
}
### Edit PaymentType
public function editPaymentType($id)
{
if(empty(session('UserId')))
{
return redirect('/admin/logout');
}
$PaymentType = PaymentType::select('tbl_payment_type.*')
->where('PaymentTypeId', '=', $id)
->get()->first();
return response()->json([
'status' => 200,
'PaymentType' => $PaymentType,
]);
}
### Update PaymentType
public function updatePaymentType(Request $request)
{
if(empty(session('UserId')))
{
return redirect('/admin/logout');
}
//$user_id = Auth::id();
$type_id = $request->input('id');
$UpdatedDate = date('Y-m-d H:i:s', time());
$data = array();
$data['Updated_at'] = $UpdatedDate;
$data['PaymentTypeName'] = $request->input('paymentTypeName');
$data['Updated_by'] = session('UserId');
$paymentType_update = PaymentType::where('PaymentTypeId', $type_id)->update($data);
if ($paymentType_update) {
echo '1';
} else {
echo '0';
}
return redirect()->back()->with('status_success');
}
##### check Payment Type Name
public function checkPaymentTypeName(Request $request){
$CreatedDate = date('Y-m-d H:i:s',time());
$data = $request->all();
$PaymentTypeName = PaymentType::where('PaymentTypeName', $data['PaymentTypeName'])->get();
if ($PaymentTypeName->count() > 0)
{ //Name already exist
$PaymentTypeName = $PaymentTypeName->first();
$PaymentTypeNameId = $PaymentTypeName->PaymentTypeNameId;
$response = [
'Success' => false,
'ResponseMessage' => "PaymentType Name already exist in CRM!",
'ResponseCode' => '201',
];
return response()->json($response);
}
else{
$response = [
'Success' => true,
'ResponseMessage' => "<span class='text-success'>PaymentType Name Available to create</span>",
'ResponseCode' => '200',
];
return response()->json($response);
}
}
}