File: /var/www/html/fieldsblaze-heroku/app/Http/Controllers/ProductController.php
<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use App\Models\Product;
use App\Models\GST;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Storage;
use Illuminate\Support\Facades\File;
use App\Library\UserLib;
use DB;
class ProductController extends Controller
{
protected $userLib;
public function __construct(UserLib $userLib)
{
$this->userLib = $userLib;
}
#All Products
public function allProduct()
{
if (empty(session('UserId'))) {
return redirect('/admin/logout');
}
$Product = Product::select('tbl_products.*', 'tbl_product_family.Name as Family', 'tbl_unit_of_measurement.MeasurementName as Unit', 'tbl_gst_slab.Name as GstSlab', 'tbl_admin.FirstName as Updated_by', 'tbl_admin.FirstName as Created_by')
->leftJoin('tbl_admin', 'tbl_products.Updated_by', '=', 'tbl_admin.UserId')
->leftJoin('tbl_product_family', 'tbl_products.Family', '=', 'tbl_product_family.ProductFamilyId')
->leftJoin('tbl_unit_of_measurement', 'tbl_products.Unit', '=', 'tbl_unit_of_measurement.UnitId')
->leftJoin('tbl_gst_slab', 'tbl_products.GstSlabId', '=', 'tbl_gst_slab.GstSlabId')
->where('tbl_products.IsDeleted', '=', '0')
->orderBy('tbl_products.id', 'desc')
->get();
$TrashProduct = Product::select('tbl_products.*', 'tbl_product_family.Name as Family', 'tbl_unit_of_measurement.MeasurementName as Unit', 'tbl_gst_slab.Name as GstSlab', 'tbl_admin.FirstName as Updated_by', 'tbl_admin.FirstName as Created_by')
->leftJoin('tbl_admin', 'tbl_products.Updated_by', '=', 'tbl_admin.UserId')
->leftJoin('tbl_product_family', 'tbl_products.Family', '=', 'tbl_product_family.ProductFamilyId')
->leftJoin('tbl_unit_of_measurement', 'tbl_products.Unit', '=', 'tbl_unit_of_measurement.UnitId')
->leftJoin('tbl_gst_slab', 'tbl_products.GstSlabId', '=', 'tbl_gst_slab.GstSlabId')
->where('tbl_products.IsDeleted', '=', '1')
->orderBy('tbl_products.id', 'desc')
->get();
$ActiveProduct = Product::select('tbl_products.*', 'tbl_product_family.Name as Family', 'tbl_unit_of_measurement.MeasurementName as Unit', 'tbl_gst_slab.Name as GstSlab', 'tbl_admin.FirstName as Updated_by', 'tbl_admin.FirstName as Created_by')
->leftJoin('tbl_admin', 'tbl_products.Updated_by', '=', 'tbl_admin.UserId')
->leftJoin('tbl_product_family', 'tbl_products.Family', '=', 'tbl_product_family.ProductFamilyId')
->leftJoin('tbl_unit_of_measurement', 'tbl_products.Unit', '=', 'tbl_unit_of_measurement.UnitId')
->leftJoin('tbl_gst_slab', 'tbl_products.GstSlabId', '=', 'tbl_gst_slab.GstSlabId')
->where('tbl_products.Status', '=', '1')
->where('tbl_products.IsDeleted', '=', '0')
->orderBy('tbl_products.id', 'desc')
->get();
$InactiveProduct = Product::select('tbl_products.*', 'tbl_product_family.Name as Family', 'tbl_unit_of_measurement.MeasurementName as Unit', 'tbl_gst_slab.Name as GstSlab', 'tbl_admin.FirstName as Updated_by', 'tbl_admin.FirstName as Created_by')
->leftJoin('tbl_admin', 'tbl_products.Updated_by', '=', 'tbl_admin.UserId')
->leftJoin('tbl_product_family', 'tbl_products.Family', '=', 'tbl_product_family.ProductFamilyId')
->leftJoin('tbl_unit_of_measurement', 'tbl_products.Unit', '=', 'tbl_unit_of_measurement.UnitId')
->leftJoin('tbl_gst_slab', 'tbl_products.GstSlabId', '=', 'tbl_gst_slab.GstSlabId')
->where('tbl_products.Status', '=', '0')
->where('tbl_products.IsDeleted', '=', '0')
->orderBy('tbl_products.id', 'desc')
->get();
return view('admin.all-product', ['Product' => $Product, 'TrashProduct' => $TrashProduct, 'ActiveProduct' => $ActiveProduct, 'InactiveProduct' => $InactiveProduct]);
}
#Inactive Products
public function inactiveProduct()
{
if (empty(session('UserId'))) {
return redirect('/admin/logout');
}
$Product = Product::select('tbl_products.*', 'tbl_product_family.Name as Family', 'tbl_unit_of_measurement.MeasurementName as Unit', 'tbl_gst_slab.Name as GstSlab', 'tbl_admin.FirstName as Updated_by', 'tbl_admin.FirstName as Created_by')
->leftJoin('tbl_admin', 'tbl_products.Updated_by', '=', 'tbl_admin.UserId')
->leftJoin('tbl_product_family', 'tbl_products.Family', '=', 'tbl_product_family.ProductFamilyId')
->leftJoin('tbl_unit_of_measurement', 'tbl_products.Unit', '=', 'tbl_unit_of_measurement.UnitId')
->leftJoin('tbl_gst_slab', 'tbl_products.GstSlabId', '=', 'tbl_gst_slab.GstSlabId')
->where('tbl_products.IsDeleted', '=', '0')
->orderBy('tbl_products.id', 'desc')
->get();
$TrashProduct = Product::select('tbl_products.*', 'tbl_product_family.Name as Family', 'tbl_unit_of_measurement.MeasurementName as Unit', 'tbl_gst_slab.Name as GstSlab', 'tbl_admin.FirstName as Updated_by', 'tbl_admin.FirstName as Created_by')
->leftJoin('tbl_admin', 'tbl_products.Updated_by', '=', 'tbl_admin.UserId')
->leftJoin('tbl_product_family', 'tbl_products.Family', '=', 'tbl_product_family.ProductFamilyId')
->leftJoin('tbl_unit_of_measurement', 'tbl_products.Unit', '=', 'tbl_unit_of_measurement.UnitId')
->leftJoin('tbl_gst_slab', 'tbl_products.GstSlabId', '=', 'tbl_gst_slab.GstSlabId')
->where('tbl_products.IsDeleted', '=', '1')
->orderBy('tbl_products.id', 'desc')
->get();
$ActiveProduct = Product::select('tbl_products.*', 'tbl_product_family.Name as Family', 'tbl_unit_of_measurement.MeasurementName as Unit', 'tbl_gst_slab.Name as GstSlab', 'tbl_admin.FirstName as Updated_by', 'tbl_admin.FirstName as Created_by')
->leftJoin('tbl_admin', 'tbl_products.Updated_by', '=', 'tbl_admin.UserId')
->leftJoin('tbl_product_family', 'tbl_products.Family', '=', 'tbl_product_family.ProductFamilyId')
->leftJoin('tbl_unit_of_measurement', 'tbl_products.Unit', '=', 'tbl_unit_of_measurement.UnitId')
->leftJoin('tbl_gst_slab', 'tbl_products.GstSlabId', '=', 'tbl_gst_slab.GstSlabId')
->where('tbl_products.Status', '=', '1')
->where('tbl_products.IsDeleted', '=', '0')
->orderBy('tbl_products.id', 'desc')
->get();
$InactiveProduct = Product::select('tbl_products.*', 'tbl_product_family.Name as Family', 'tbl_unit_of_measurement.MeasurementName as Unit', 'tbl_gst_slab.Name as GstSlab', 'tbl_admin.FirstName as Updated_by', 'tbl_admin.FirstName as Created_by')
->leftJoin('tbl_admin', 'tbl_products.Updated_by', '=', 'tbl_admin.UserId')
->leftJoin('tbl_product_family', 'tbl_products.Family', '=', 'tbl_product_family.ProductFamilyId')
->leftJoin('tbl_unit_of_measurement', 'tbl_products.Unit', '=', 'tbl_unit_of_measurement.UnitId')
->leftJoin('tbl_gst_slab', 'tbl_products.GstSlabId', '=', 'tbl_gst_slab.GstSlabId')
->where('tbl_products.Status', '=', '0')
->where('tbl_products.IsDeleted', '=', '0')
->orderBy('tbl_products.id', 'desc')
->get();
return view('admin.inactive-product', ['Product' => $Product, 'TrashProduct' => $TrashProduct, 'ActiveProduct' => $ActiveProduct, 'InactiveProduct' => $InactiveProduct]);
}
#Active Products
public function activeProduct()
{
if (empty(session('UserId'))) {
return redirect('/admin/logout');
}
$Product = Product::select('tbl_products.*', 'tbl_product_family.Name as Family', 'tbl_unit_of_measurement.MeasurementName as Unit', 'tbl_gst_slab.Name as GstSlab', 'tbl_admin.FirstName as Updated_by', 'tbl_admin.FirstName as Created_by')
->leftJoin('tbl_admin', 'tbl_products.Updated_by', '=', 'tbl_admin.UserId')
->leftJoin('tbl_product_family', 'tbl_products.Family', '=', 'tbl_product_family.ProductFamilyId')
->leftJoin('tbl_unit_of_measurement', 'tbl_products.Unit', '=', 'tbl_unit_of_measurement.UnitId')
->leftJoin('tbl_gst_slab', 'tbl_products.GstSlabId', '=', 'tbl_gst_slab.GstSlabId')
->where('tbl_products.IsDeleted', '=', '0')
->orderBy('tbl_products.id', 'desc')
->get();
$TrashProduct = Product::select('tbl_products.*', 'tbl_product_family.Name as Family', 'tbl_unit_of_measurement.MeasurementName as Unit', 'tbl_gst_slab.Name as GstSlab', 'tbl_admin.FirstName as Updated_by', 'tbl_admin.FirstName as Created_by')
->leftJoin('tbl_admin', 'tbl_products.Updated_by', '=', 'tbl_admin.UserId')
->leftJoin('tbl_product_family', 'tbl_products.Family', '=', 'tbl_product_family.ProductFamilyId')
->leftJoin('tbl_unit_of_measurement', 'tbl_products.Unit', '=', 'tbl_unit_of_measurement.UnitId')
->leftJoin('tbl_gst_slab', 'tbl_products.GstSlabId', '=', 'tbl_gst_slab.GstSlabId')
->where('tbl_products.IsDeleted', '=', '1')
->orderBy('tbl_products.id', 'desc')
->get();
$ActiveProduct = Product::select('tbl_products.*', 'tbl_product_family.Name as Family', 'tbl_unit_of_measurement.MeasurementName as Unit', 'tbl_gst_slab.Name as GstSlab', 'tbl_admin.FirstName as Updated_by', 'tbl_admin.FirstName as Created_by')
->leftJoin('tbl_admin', 'tbl_products.Updated_by', '=', 'tbl_admin.UserId')
->leftJoin('tbl_product_family', 'tbl_products.Family', '=', 'tbl_product_family.ProductFamilyId')
->leftJoin('tbl_unit_of_measurement', 'tbl_products.Unit', '=', 'tbl_unit_of_measurement.UnitId')
->leftJoin('tbl_gst_slab', 'tbl_products.GstSlabId', '=', 'tbl_gst_slab.GstSlabId')
->where('tbl_products.Status', '=', '1')
->where('tbl_products.IsDeleted', '=', '0')
->orderBy('tbl_products.id', 'desc')
->get();
$InactiveProduct = Product::select('tbl_products.*', 'tbl_product_family.Name as Family', 'tbl_unit_of_measurement.MeasurementName as Unit', 'tbl_gst_slab.Name as GstSlab', 'tbl_admin.FirstName as Updated_by', 'tbl_admin.FirstName as Created_by')
->leftJoin('tbl_admin', 'tbl_products.Updated_by', '=', 'tbl_admin.UserId')
->leftJoin('tbl_product_family', 'tbl_products.Family', '=', 'tbl_product_family.ProductFamilyId')
->leftJoin('tbl_unit_of_measurement', 'tbl_products.Unit', '=', 'tbl_unit_of_measurement.UnitId')
->leftJoin('tbl_gst_slab', 'tbl_products.GstSlabId', '=', 'tbl_gst_slab.GstSlabId')
->where('tbl_products.Status', '=', '0')
->where('tbl_products.IsDeleted', '=', '0')
->orderBy('tbl_products.id', 'desc')
->get();
return view('admin.active-product', ['Product' => $Product, 'TrashProduct' => $TrashProduct, 'ActiveProduct' => $ActiveProduct, 'InactiveProduct' => $InactiveProduct]);
}
#Trash Products
public function trashProduct()
{
if (empty(session('UserId'))) {
return redirect('/admin/logout');
}
$Product = Product::select('tbl_products.*', 'tbl_product_family.Name as Family', 'tbl_unit_of_measurement.MeasurementName as Unit', 'tbl_gst_slab.Name as GstSlab', 'tbl_admin.FirstName as Updated_by', 'tbl_admin.FirstName as Created_by')
->leftJoin('tbl_admin', 'tbl_products.Updated_by', '=', 'tbl_admin.UserId')
->leftJoin('tbl_product_family', 'tbl_products.Family', '=', 'tbl_product_family.ProductFamilyId')
->leftJoin('tbl_unit_of_measurement', 'tbl_products.Unit', '=', 'tbl_unit_of_measurement.UnitId')
->leftJoin('tbl_gst_slab', 'tbl_products.GstSlabId', '=', 'tbl_gst_slab.GstSlabId')
->where('tbl_products.IsDeleted', '=', '0')
->orderBy('tbl_products.id', 'desc')
->get();
$TrashProduct = Product::select('tbl_products.*', 'tbl_product_family.Name as Family', 'tbl_unit_of_measurement.MeasurementName as Unit', 'tbl_gst_slab.Name as GstSlab', 'tbl_admin.FirstName as Updated_by', 'tbl_admin.FirstName as Created_by')
->leftJoin('tbl_admin', 'tbl_products.Updated_by', '=', 'tbl_admin.UserId')
->leftJoin('tbl_product_family', 'tbl_products.Family', '=', 'tbl_product_family.ProductFamilyId')
->leftJoin('tbl_unit_of_measurement', 'tbl_products.Unit', '=', 'tbl_unit_of_measurement.UnitId')
->leftJoin('tbl_gst_slab', 'tbl_products.GstSlabId', '=', 'tbl_gst_slab.GstSlabId')
->where('tbl_products.IsDeleted', '=', '1')
->orderBy('tbl_products.id', 'desc')
->get();
$ActiveProduct = Product::select('tbl_products.*', 'tbl_product_family.Name as Family', 'tbl_unit_of_measurement.MeasurementName as Unit', 'tbl_gst_slab.Name as GstSlab', 'tbl_admin.FirstName as Updated_by', 'tbl_admin.FirstName as Created_by')
->leftJoin('tbl_admin', 'tbl_products.Updated_by', '=', 'tbl_admin.UserId')
->leftJoin('tbl_product_family', 'tbl_products.Family', '=', 'tbl_product_family.ProductFamilyId')
->leftJoin('tbl_unit_of_measurement', 'tbl_products.Unit', '=', 'tbl_unit_of_measurement.UnitId')
->leftJoin('tbl_gst_slab', 'tbl_products.GstSlabId', '=', 'tbl_gst_slab.GstSlabId')
->where('tbl_products.Status', '=', '1')
->where('tbl_products.IsDeleted', '=', '0')
->orderBy('tbl_products.id', 'desc')
->get();
$InactiveProduct = Product::select('tbl_products.*', 'tbl_product_family.Name as Family', 'tbl_unit_of_measurement.MeasurementName as Unit', 'tbl_gst_slab.Name as GstSlab', 'tbl_admin.FirstName as Updated_by', 'tbl_admin.FirstName as Created_by')
->leftJoin('tbl_admin', 'tbl_products.Updated_by', '=', 'tbl_admin.UserId')
->leftJoin('tbl_product_family', 'tbl_products.Family', '=', 'tbl_product_family.ProductFamilyId')
->leftJoin('tbl_unit_of_measurement', 'tbl_products.Unit', '=', 'tbl_unit_of_measurement.UnitId')
->leftJoin('tbl_gst_slab', 'tbl_products.GstSlabId', '=', 'tbl_gst_slab.GstSlabId')
->where('tbl_products.Status', '=', '0')
->where('tbl_products.IsDeleted', '=', '0')
->orderBy('tbl_products.id', 'desc')
->get();
return view('admin.trash-product', ['Product' => $Product, 'TrashProduct' => $TrashProduct, 'ActiveProduct' => $ActiveProduct, 'InactiveProduct' => $InactiveProduct]);
}
### View Record
public function viewProduct($ProductId)
{
if (empty(session('UserId'))) {
return redirect('/admin/logout');
}
$ViewProduct = Product::select('tbl_products.*', 'tbl_product_family.Name as Family', 'tbl_unit_of_measurement.MeasurementName as Unit', 'tbl_gst_slab.Name as GstSlab', 'tbl_admin.FirstName as Updated_by', 'tbl_admin.FirstName as Created_by')->where('tbl_products.ProductId', '=', $ProductId)
->leftJoin('tbl_admin', 'tbl_products.Updated_by', '=', 'tbl_admin.UserId')
->leftJoin('tbl_product_family', 'tbl_products.Family', '=', 'tbl_product_family.ProductFamilyId')
->leftJoin('tbl_unit_of_measurement', 'tbl_products.Unit', '=', 'tbl_unit_of_measurement.UnitId')
->leftJoin('tbl_gst_slab', 'tbl_products.GstSlabId', '=', 'tbl_gst_slab.GstSlabId')
->get()->first();
// $ThumbnailUrl = $ViewProduct->ThumbnailUrl;
return view('admin.view-product', ['Product' => $ViewProduct]);
}
### Store New Record
public function storeProduct(Request $request)
{
if (empty(session('UserId'))) {
return redirect('/admin/logout');
}
$input = $request->all();
$data = $input;
##Product File
// $imageName = $this->userLib->useridGenrator();
// if ($request->hasFile('ThumbnailUrl')) {
// $path = '';
// $file = $request->file('ThumbnailUrl');
// $extension = $file->getClientOriginalExtension();
// $newFileName = $imageName . '-' . time() . '.' . $extension;
// // Storage::putFileAs(
// // 'public/products',
// // $file,
// // $newFileName
// // );
// $destinationPath = 'storage/products';
// $isUploaded = $file->move($destinationPath, $newFileName);
// if ($isUploaded) {
// $path = 'storage/products/' . $newFileName;
// $ThumbnailUrl = $path;
// }
// $data['ThumbnailUrl'] = $ThumbnailUrl;
// }
##Product File
$imageName = $this->userLib->useridGenrator();
if ($request->hasFile('ThumbnailUrl')) {
$path = '';
$file = $request->file('ThumbnailUrl');
$extension = $file->getClientOriginalExtension();
$newFileName = $imageName . '-' . time() . '.' . $extension;
Storage::putFileAs(
'public/products/',
$file,
$newFileName
);
$destinationPath = 'products/';
$isUploaded = $file->move($destinationPath,$newFileName);
$uploadedFileURL = '';
if($isUploaded)
{
$path = 'products/' . $newFileName;
$ThumbnailUrl = $path;
//File Upload Service as s3
$sourceFileURL = env('APP_URL').'/'.$path;
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'http://172.105.42.62/s3-file-server/api-upload.php',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => array('file_url' => $sourceFileURL),
CURLOPT_HTTPHEADER => array(
'Cookie: private_content_version=3f7abce738dd8b52d0dcb8653bfe8e93; mage-messages=%5B%7B%22type%22%3A%22error%22%2C%22text%22%3A%22Invalid%20Form%20Key.%20Please%20refresh%20the%20page.%22%7D%2C%7B%22type%22%3A%22error%22%2C%22text%22%3A%22Invalid%20Form%20Key.%20Please%20refresh%20the%20page.%22%7D%2C%7B%22type%22%3A%22error%22%2C%22text%22%3A%22Invalid%20Form%20Key.%20Please%20refresh%20the%20page.%22%7D%5D'
),
));
$response = curl_exec($curl);
curl_close($curl);
$uploadedFile = json_decode($response,true);
$uploadedFileURL = isset($uploadedFile['url']) ? $uploadedFile['url'] : '';
}
$data['ThumbnailUrl'] = $uploadedFileURL;
}
$g_productId = $this->userLib->useridGenrator();
$data['ProductId'] = $g_productId;
$data['Created_by'] = session('UserId');
$data['Created_at'] = date('Y-m-d H:i:s', time());
$data['Updated_by'] = session('UserId');
$data['Updated_at'] = date('Y-m-d H:i:s', time());
$data['IsDeleted'] = '0';
unset($data['_token']);
$insert_product = Product::insert($data);
$ProductId = $g_productId;
$ProductName = $request->input('ProductName');
$ProductCode = $request->input('ProductCode');
$Family = $request->input('Family');
$Unit = $request->input('Unit');
$Description = $request->input('Description');
$GstSlabId = $request->input('GstSlabId');
$IsDeleted = 0;
$Status = 1;
$Active = true;
DB::connection('pgsql')->insert("insert into salesforce.Product2 (ProductId__c,Name,ProductCode,Family__c,Unit__c,Description,GST_SlabId__c,IsDeleted,Status__c,IsActive) values ('$ProductId','$ProductName','$ProductCode','$Family','$Unit','$Description','$GstSlabId','$IsDeleted','$Status','$Active')");
return response()->json('status_success');
}
#### Change Status
public function statusUpdateProduct($id)
{
if (empty(session('UserId'))) {
return redirect('/admin/logout');
}
$data = Product::find($id);
if ($data->Status == '1') {
$Status = '0';
} else {
$Status = '1';
}
$values = array('Status' => $Status);
Product::find($id)->update($values);
return redirect()->back();
}
#### Delete Temporary
public function deleteProduct($id)
{
if (empty(session('UserId'))) {
return redirect('/admin/logout');
}
$CreatedDate = date('Y-m-d H:i:s', time());
$value = array();
$value['Updated_at'] = $CreatedDate;
$value['IsDeleted'] = '1';
$value['Status'] = '0';
Product::where('ProductId', $id)->update($value);
DB::connection('pgsql')->update("update salesforce.Product2 set IsDeleted='1',Status__c='0' where ProductId__c = '$id'");
}
#### Delete Selected Product
public function deleteSelectedProduct(Request $request)
{
if (empty(session('UserId'))) {
return redirect('/admin/logout');
}
$id = $request->input('SelectedProduct');
if ($id) {
foreach ($id as $product) {
$checkData = Product::find($product);
if ($checkData->IsDeleted == '0') {
$CreatedDate = date(
'Y-m-d H:i:s',
time()
);
$data = array();
$data['Updated_at'] = $CreatedDate;
$data['IsDeleted'] = '1';
$selected_product = Product::where('id', $product)->update($data);
if ($selected_product) {
echo '1';
} else {
echo '0';
}
} else {
$selected_product = Product::find($product);
$selected_product->delete();
}
}
}
return redirect()->back()->with('status_success');
}
#### Restore
public function restoreProduct($id)
{
if (empty(session('UserId'))) {
return redirect('/admin/logout');
}
$CreatedDate = date('Y-m-d H:i:s', time());
$value = array();
$value['Updated_at'] = $CreatedDate;
$value['IsDeleted'] = '0';
Product::where('ProductId', $id)->update($value);
DB::connection('pgsql')->update("update salesforce.Product2 set IsDeleted='0',Status__c='1',Active='true' where ProductId__c = '$id'");
}
#### Delete Permanent
public function destroyProduct($id)
{
if (empty(session('UserId'))) {
return redirect('/admin/logout');
}
$destroyData = Product::where('ProductId', $id);
$destroyData->delete();
}
### Edit Records
public function editProduct($id)
{
if (empty(session('UserId'))) {
return redirect('/admin/logout');
}
$Product = Product::select('tbl_products.*')
->where('ProductId', '=', $id)
->get()->first();
return response()->json([
'status' => 200,
'Product' => $Product,
]);
}
### Update Records
public function updateProduct(Request $request)
{
if (empty(session('UserId'))) {
return redirect('/admin/logout');
}
$CreatedDate = date('Y-m-d H:i:s', time());
$product_id = $request->input('id');
$data['ProductName'] = $request->input('name');
$data['Description'] = $request->input('description');
$data['Family'] = $request->input('productFamily');
$data['ProductCode'] = $request->input('productCode');
$data['Unit'] = $request->input('unit');
$data['GstSlabId'] = $request->input('gstSlab');
// $imageName = $this->userLib->useridGenrator();
// if ($request->hasFile('productImage')) {
// $path = '';
// $file = $request->file('productImage');
// $extension = $file->getClientOriginalExtension();
// $newFileName = $imageName . '-' . time() . '.' . $extension;
// // Storage::putFileAs(
// // 'public/products',
// // $file,
// // $newFileName
// // );
// $destinationPath = 'storage/products';
// $isUploaded = $file->move($destinationPath, $newFileName);
// if ($isUploaded) {
// $path = 'storage/products/' . $newFileName;
// $ThumbnailUrl = $path;
// }
// $data['ThumbnailUrl'] = $ThumbnailUrl;
// }
$imageName = $this->userLib->useridGenrator();
if ($request->hasFile('productImage')) {
$path = '';
$file = $request->file('productImage');
$extension = $file->getClientOriginalExtension();
$newFileName = $imageName . '-' . time() . '.' . $extension;
Storage::putFileAs(
'public/products/',
$file,
$newFileName
);
$destinationPath = 'products/';
$isUploaded = $file->move($destinationPath,$newFileName);
$uploadedFileURL = '';
if($isUploaded)
{
$path = 'products/' . $newFileName;
$ThumbnailUrl = $path;
//File Upload Service as s3
$sourceFileURL = env('APP_URL').'/'.$path;
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'http://172.105.42.62/s3-file-server/api-upload.php',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => array('file_url' => $sourceFileURL),
CURLOPT_HTTPHEADER => array(
'Cookie: private_content_version=3f7abce738dd8b52d0dcb8653bfe8e93; mage-messages=%5B%7B%22type%22%3A%22error%22%2C%22text%22%3A%22Invalid%20Form%20Key.%20Please%20refresh%20the%20page.%22%7D%2C%7B%22type%22%3A%22error%22%2C%22text%22%3A%22Invalid%20Form%20Key.%20Please%20refresh%20the%20page.%22%7D%2C%7B%22type%22%3A%22error%22%2C%22text%22%3A%22Invalid%20Form%20Key.%20Please%20refresh%20the%20page.%22%7D%5D'
),
));
$response = curl_exec($curl);
curl_close($curl);
$uploadedFile = json_decode($response,true);
$uploadedFileURL = isset($uploadedFile['url']) ? $uploadedFile['url'] : '';
}
$data['ThumbnailUrl'] = $uploadedFileURL;
}
if ($request->has('editStatus')) {
$data['Status'] = '1';
} else {
$data['Status'] = '0';
}
$data['Updated_by'] = session('UserId');
$data['Updated_at'] = $CreatedDate;
$product_update = Product::where('ProductId', $product_id)->update($data);
if ($product_update) {
echo '1';
} else {
echo '0';
}
$ProductId = $request->input('id');
$ProductName = $request->input('name');
$ProductCode = $request->input('productCode');
$Family = $request->input('productFamily');
$Unit = $request->input('unit');
$Description = $request->input('description');
$GstSlabId = $request->input('gstSlab');
DB::connection('pgsql')->update("update salesforce.Product2 set Name='$ProductName',ProductCode='$ProductCode',Family__c='$Family',Unit__c='$Unit',Description='$Description',GST_SlabId__c='$GstSlabId' where ProductId__c='$ProductId'");
return redirect()->back()->with('status_success');
}
### Check Code and Name
public function checkProductCodeold($ProductCode)
{
if (empty(session('UserId'))) {
return redirect('/admin/logout');
}
$Product = Product::select('tbl_products.*')
->where('ProductCode', '=', $ProductCode)
//->where('Status', '=', '1')
//->where('IsDeleted', '=', '0')
->get()->first();
return response()->json([
'status' => 200,
'Product' => $Product,
]);
}
### Check Product if Exist
public function checkProductCode(Request $request)
{
if (empty(session('UserId'))) {
return redirect('/admin/logout');
}
$ProductCode = $request->input('ProductCode');
$id = $request->input('id');
$ProductCode = Product::where('ProductCode', $ProductCode)
->orWhere('ProductId', $id)->first();
if ($ProductCode) {
return response()->json(array("exists" => true));
} else {
return response()->json(array("exists" => false));
}
}
### Check Product if Exist in Edit form
public function checkProductCodeEdit(Request $request)
{
if (empty(session('UserId'))) {
return redirect('/admin/logout');
}
$ProductCode = $request->input('ProductCode');
$id = $request->input('id');
$ProductCode = Product::where('ProductCode', $ProductCode)
->where('ProductId', '!=', $id)
->get()->first();
if ($ProductCode) {
return response()->json(array("exists" => true));
} else {
return response()->json(array("exists" => false));
}
}
}