File: /var/www/html/fieldsblaze-heroku/app/Http/Controllers/SalesAreaController.php
<?php
namespace App\Http\Controllers;
use DB;
use App\Http\Controllers\Controller;
use App\Models\SalesArea;
use App\Models\Territory;
use App\Models\Customer;
use Illuminate\Http\Request;
use App\Models\Countries;
use App\Models\States;
use App\Library\UserLib;
//use Illuminate\Support\Facades\DB;
class SalesAreaController extends Controller
{
protected $userLib;
public function __construct(UserLib $userLib)
{
$this->userLib = $userLib;
}
#### All Sales Area
public function salesArea()
{
if (empty(session('UserId'))) {
return redirect('/admin/logout');
}
$SalesArea = SalesArea::select('tbl_sales_area.*', 'tbl_sales_territory.Name as sales_territory_name', 'tbl_countries.country_name as CountryName', 'tbl_admin.FirstName as Updated_by', 'tbl_admin.FirstName as Created_by')
->leftJoin('tbl_sales_territory', 'tbl_sales_area.SalesTerritoryId', '=', 'tbl_sales_territory.TerritoryId')
->leftJoin('tbl_countries', 'tbl_sales_area.Country', '=', 'tbl_countries.id')
->leftJoin('tbl_admin', 'tbl_sales_area.Updated_by', '=', 'tbl_admin.UserId')
->where('tbl_sales_area.IsDeleted', '=', '0')
->orderBy('tbl_sales_area.id', 'desc')
->get();
$ActiveSalesArea = SalesArea::select('tbl_sales_area.*', 'tbl_sales_territory.Name as sales_territory_name', 'tbl_countries.country_name as CountryName', 'tbl_admin.FirstName as Updated_by', 'tbl_admin.FirstName as Created_by')
->leftJoin('tbl_sales_territory', 'tbl_sales_area.SalesTerritoryId', '=', 'tbl_sales_territory.TerritoryId')
->leftJoin('tbl_countries', 'tbl_sales_area.Country', '=', 'tbl_countries.id')
->leftJoin('tbl_admin', 'tbl_sales_area.Updated_by', '=', 'tbl_admin.UserId')
->where('tbl_sales_area.Status', '=', '1')
->where('tbl_sales_area.IsDeleted', '=', '0')
->orderBy('tbl_sales_area.id', 'desc')
->get();
$InActiveSalesArea = SalesArea::select('tbl_sales_area.*', 'tbl_sales_territory.Name as sales_territory_name', 'tbl_countries.country_name as CountryName', 'tbl_admin.FirstName as Updated_by', 'tbl_admin.FirstName as Created_by')
->leftJoin('tbl_sales_territory', 'tbl_sales_area.SalesTerritoryId', '=', 'tbl_sales_territory.TerritoryId')
->leftJoin('tbl_countries', 'tbl_sales_area.Country', '=', 'tbl_countries.id')
->leftJoin('tbl_admin', 'tbl_sales_area.Updated_by', '=', 'tbl_admin.UserId')
->where('tbl_sales_area.Status', '=', '0')
->where('tbl_sales_area.IsDeleted', '=', '0')
->orderBy('tbl_sales_area.id', 'desc')
->get();
$TrashSalesArea = SalesArea::select('tbl_sales_area.*', 'tbl_sales_territory.Name as sales_territory_name', 'tbl_countries.country_name as CountryName', 'tbl_admin.FirstName as Updated_by', 'tbl_admin.FirstName as Created_by')
->leftJoin('tbl_sales_territory', 'tbl_sales_area.SalesTerritoryId', '=', 'tbl_sales_territory.TerritoryId')
->leftJoin('tbl_countries', 'tbl_sales_area.Country', '=', 'tbl_countries.id')
->leftJoin('tbl_admin', 'tbl_sales_area.Updated_by', '=', 'tbl_admin.UserId')
->where('tbl_sales_area.IsDeleted', '=', '1')
->orderBy('tbl_sales_area.id', 'desc')
->get();
return view('admin.sales-area', ['SalesArea' => $SalesArea, 'TrashSalesArea' => $TrashSalesArea, 'ActiveSalesArea' => $ActiveSalesArea, 'InActiveSalesArea' => $InActiveSalesArea]);
}
#### Active Sales Area
public function activeSalesArea()
{
if (empty(session('UserId'))) {
return redirect('/admin/logout');
}
$SalesArea = SalesArea::select('tbl_sales_area.*', 'tbl_sales_territory.Name as sales_territory_name', 'tbl_countries.country_name as CountryName', 'tbl_admin.FirstName as Updated_by', 'tbl_admin.FirstName as Created_by')
->leftJoin('tbl_sales_territory', 'tbl_sales_area.SalesTerritoryId', '=', 'tbl_sales_territory.TerritoryId')
->leftJoin('tbl_countries', 'tbl_sales_area.Country', '=', 'tbl_countries.id')
->leftJoin('tbl_admin', 'tbl_sales_area.Updated_by', '=', 'tbl_admin.UserId')
->where('tbl_sales_area.IsDeleted', '=', '0')
->orderBy('tbl_sales_area.id', 'desc')
->get();
$ActiveSalesArea = SalesArea::select('tbl_sales_area.*', 'tbl_sales_territory.Name as sales_territory_name', 'tbl_countries.country_name as CountryName', 'tbl_admin.FirstName as Updated_by', 'tbl_admin.FirstName as Created_by')
->leftJoin('tbl_sales_territory', 'tbl_sales_area.SalesTerritoryId', '=', 'tbl_sales_territory.TerritoryId')
->leftJoin('tbl_countries', 'tbl_sales_area.Country', '=', 'tbl_countries.id')
->leftJoin('tbl_admin', 'tbl_sales_area.Updated_by', '=', 'tbl_admin.UserId')
->where('tbl_sales_area.Status', '=', '1')
->where('tbl_sales_area.IsDeleted', '=', '0')
->orderBy('tbl_sales_area.id', 'desc')
->get();
$InActiveSalesArea = SalesArea::select('tbl_sales_area.*', 'tbl_sales_territory.Name as sales_territory_name', 'tbl_countries.country_name as CountryName', 'tbl_admin.FirstName as Updated_by', 'tbl_admin.FirstName as Created_by')
->leftJoin('tbl_sales_territory', 'tbl_sales_area.SalesTerritoryId', '=', 'tbl_sales_territory.TerritoryId')
->leftJoin('tbl_countries', 'tbl_sales_area.Country', '=', 'tbl_countries.id')
->leftJoin('tbl_admin', 'tbl_sales_area.Updated_by', '=', 'tbl_admin.UserId')
->where('tbl_sales_area.Status', '=', '0')
->where('tbl_sales_area.IsDeleted', '=', '0')
->orderBy('tbl_sales_area.id', 'desc')
->get();
$TrashSalesArea = SalesArea::select('tbl_sales_area.*', 'tbl_sales_territory.Name as sales_territory_name', 'tbl_countries.country_name as CountryName', 'tbl_admin.FirstName as Updated_by', 'tbl_admin.FirstName as Created_by')
->leftJoin('tbl_sales_territory', 'tbl_sales_area.SalesTerritoryId', '=', 'tbl_sales_territory.TerritoryId')
->leftJoin('tbl_countries', 'tbl_sales_area.Country', '=', 'tbl_countries.id')
->leftJoin('tbl_admin', 'tbl_sales_area.Updated_by', '=', 'tbl_admin.UserId')
->where('tbl_sales_area.IsDeleted', '=', '1')
->orderBy('tbl_sales_area.id', 'desc')
->get();
return view('admin.active-sales-area', ['SalesArea' => $SalesArea, 'TrashSalesArea' => $TrashSalesArea, 'ActiveSalesArea' => $ActiveSalesArea, 'InActiveSalesArea' => $InActiveSalesArea]);
}
#### Inactive Sales Area
public function inactiveSalesArea()
{
if (empty(session('UserId'))) {
return redirect('/admin/logout');
}
$SalesArea = SalesArea::select('tbl_sales_area.*', 'tbl_sales_territory.Name as sales_territory_name', 'tbl_countries.country_name as CountryName', 'tbl_admin.FirstName as Updated_by', 'tbl_admin.FirstName as Created_by')
->leftJoin('tbl_sales_territory', 'tbl_sales_area.SalesTerritoryId', '=', 'tbl_sales_territory.TerritoryId')
->leftJoin('tbl_countries', 'tbl_sales_area.Country', '=', 'tbl_countries.id')
->leftJoin('tbl_admin', 'tbl_sales_area.Updated_by', '=', 'tbl_admin.UserId')
->where('tbl_sales_area.IsDeleted', '=', '0')
->orderBy('tbl_sales_area.id', 'desc')
->get();
$ActiveSalesArea = SalesArea::select('tbl_sales_area.*', 'tbl_sales_territory.Name as sales_territory_name', 'tbl_countries.country_name as CountryName', 'tbl_admin.FirstName as Updated_by', 'tbl_admin.FirstName as Created_by')
->leftJoin('tbl_sales_territory', 'tbl_sales_area.SalesTerritoryId', '=', 'tbl_sales_territory.TerritoryId')
->leftJoin('tbl_countries', 'tbl_sales_area.Country', '=', 'tbl_countries.id')
->leftJoin('tbl_admin', 'tbl_sales_area.Updated_by', '=', 'tbl_admin.UserId')
->where('tbl_sales_area.Status', '=', '1')
->where('tbl_sales_area.IsDeleted', '=', '0')
->orderBy('tbl_sales_area.id', 'desc')
->get();
$InActiveSalesArea = SalesArea::select('tbl_sales_area.*', 'tbl_sales_territory.Name as sales_territory_name', 'tbl_countries.country_name as CountryName', 'tbl_admin.FirstName as Updated_by', 'tbl_admin.FirstName as Created_by')
->leftJoin('tbl_sales_territory', 'tbl_sales_area.SalesTerritoryId', '=', 'tbl_sales_territory.TerritoryId')
->leftJoin('tbl_countries', 'tbl_sales_area.Country', '=', 'tbl_countries.id')
->leftJoin('tbl_admin', 'tbl_sales_area.Updated_by', '=', 'tbl_admin.UserId')
->where('tbl_sales_area.Status', '=', '0')
->where('tbl_sales_area.IsDeleted', '=', '0')
->orderBy('tbl_sales_area.id', 'desc')
->get();
$TrashSalesArea = SalesArea::select('tbl_sales_area.*', 'tbl_sales_territory.Name as sales_territory_name', 'tbl_countries.country_name as CountryName', 'tbl_admin.FirstName as Updated_by', 'tbl_admin.FirstName as Created_by')
->leftJoin('tbl_sales_territory', 'tbl_sales_area.SalesTerritoryId', '=', 'tbl_sales_territory.TerritoryId')
->leftJoin('tbl_countries', 'tbl_sales_area.Country', '=', 'tbl_countries.id')
->leftJoin('tbl_admin', 'tbl_sales_area.Updated_by', '=', 'tbl_admin.UserId')
->where('tbl_sales_area.IsDeleted', '=', '1')
->orderBy('tbl_sales_area.id', 'desc')
->get();
return view('admin.inactive-sales-area', ['SalesArea' => $SalesArea, 'TrashSalesArea' => $TrashSalesArea, 'ActiveSalesArea' => $ActiveSalesArea, 'InActiveSalesArea' => $InActiveSalesArea]);
}
### Trash
public function trashArea()
{
if (empty(session('UserId'))) {
return redirect('/admin/logout');
}
$SalesArea = SalesArea::select('tbl_sales_area.*', 'tbl_sales_territory.Name as sales_territory_name', 'tbl_countries.country_name as CountryName', 'tbl_admin.FirstName as Updated_by', 'tbl_admin.FirstName as Created_by')
->leftJoin('tbl_sales_territory', 'tbl_sales_area.SalesTerritoryId', '=', 'tbl_sales_territory.TerritoryId')
->leftJoin('tbl_countries', 'tbl_sales_area.Country', '=', 'tbl_countries.id')
->leftJoin('tbl_admin', 'tbl_sales_area.Updated_by', '=', 'tbl_admin.UserId')
->where('tbl_sales_area.IsDeleted', '=', '0')
->orderBy('tbl_sales_area.id', 'desc')
->get();
$ActiveSalesArea = SalesArea::select('tbl_sales_area.*', 'tbl_sales_territory.Name as sales_territory_name', 'tbl_countries.country_name as CountryName', 'tbl_admin.FirstName as Updated_by', 'tbl_admin.FirstName as Created_by')
->leftJoin('tbl_sales_territory', 'tbl_sales_area.SalesTerritoryId', '=', 'tbl_sales_territory.TerritoryId')
->leftJoin('tbl_countries', 'tbl_sales_area.Country', '=', 'tbl_countries.id')
->leftJoin('tbl_admin', 'tbl_sales_area.Updated_by', '=', 'tbl_admin.UserId')
->where('tbl_sales_area.Status', '=', '1')
->where('tbl_sales_area.IsDeleted', '=', '0')
->orderBy('tbl_sales_area.id', 'desc')
->get();
$InActiveSalesArea = SalesArea::select('tbl_sales_area.*', 'tbl_sales_territory.Name as sales_territory_name', 'tbl_countries.country_name as CountryName', 'tbl_admin.FirstName as Updated_by', 'tbl_admin.FirstName as Created_by')
->leftJoin('tbl_sales_territory', 'tbl_sales_area.SalesTerritoryId', '=', 'tbl_sales_territory.TerritoryId')
->leftJoin('tbl_countries', 'tbl_sales_area.Country', '=', 'tbl_countries.id')
->leftJoin('tbl_admin', 'tbl_sales_area.Updated_by', '=', 'tbl_admin.UserId')
->where('tbl_sales_area.Status', '=', '0')
->where('tbl_sales_area.IsDeleted', '=', '0')
->orderBy('tbl_sales_area.id', 'desc')
->get();
$TrashSalesArea = SalesArea::select('tbl_sales_area.*', 'tbl_sales_territory.Name as sales_territory_name', 'tbl_countries.country_name as CountryName', 'tbl_admin.FirstName as Updated_by', 'tbl_admin.FirstName as Created_by')
->leftJoin('tbl_sales_territory', 'tbl_sales_area.SalesTerritoryId', '=', 'tbl_sales_territory.TerritoryId')
->leftJoin('tbl_countries', 'tbl_sales_area.Country', '=', 'tbl_countries.id')
->leftJoin('tbl_admin', 'tbl_sales_area.Updated_by', '=', 'tbl_admin.UserId')
->where('tbl_sales_area.IsDeleted', '=', '1')
->orderBy('tbl_sales_area.id', 'desc')
->get();
return view('admin.trash-area', ['SalesArea' => $SalesArea, 'TrashSalesArea' => $TrashSalesArea,'ActiveSalesArea' => $ActiveSalesArea, 'InActiveSalesArea' => $InActiveSalesArea]);
}
### View Record
public function viewArea($SalesAreaId)
{
if (empty(session('UserId'))) {
return redirect('/admin/logout');
}
$ViewSalesArea = SalesArea::select('tbl_sales_area.*', 'tbl_sales_territory.Name as sales_territory_name', 'tbl_countries.country_name as CountryName', 'tbl_admin.FirstName as Updated_by', 'tbl_admin.FirstName as Created_by')->where('SalesAreaId', '=', $SalesAreaId)
->leftJoin('tbl_admin', 'tbl_sales_area.Updated_by', '=', 'tbl_admin.UserId')
->leftJoin('tbl_sales_territory', 'tbl_sales_area.SalesTerritoryId', '=', 'tbl_sales_territory.TerritoryId')
->leftJoin('tbl_countries', 'tbl_sales_area.Country', '=', 'tbl_countries.id')
->get()->first();
return view('admin.view-area', ['SalesArea' => $ViewSalesArea]);
}
### List Record
public function TerritoryList()
{
if (empty(session('UserId'))) {
return redirect('/admin/logout');
}
$Territory = Territory::select('tbl_sales_territory.*')
->where('Status', '=', '1')
->where('IsDeleted', '=', '0')
->orderBy('Name', 'ASC')
->get();
return response()->json([
'status' => 200,
'Territory' => $Territory,
]);
}
#### All sales area list
public function SalesAreaList()
{
if (empty(session('UserId'))) {
return redirect('/admin/logout');
}
$SalesArea = SalesArea::all()
->where('Status', '=', '1')
->where('IsDeleted', '=', '0')
->sortBy('Name');
return response()->json([
'status' => 200,
'SalesArea' => $SalesArea,
]);
}
#### Territory wise sales area list
public function SalesAreaListTW($TerritoryId)
{
if (empty(session('UserId'))) {
return redirect('/admin/logout');
}
$SalesArea = SalesArea::all()
->where('SalesTerritoryId', $TerritoryId)
->where('Status', '=', '1')
->where('IsDeleted', '=', '0')
->sortBy('Name');
return response()->json([
'status' => 200,
'SalesArea' => $SalesArea,
]);
}
public function countryList()
{
if (empty(session('UserId'))) {
return redirect('/admin/logout');
}
$countries_data = Countries::orderBy('country_name', 'asc')->get();
//return view ('admin.add-customer',$data);
return response()->json([
'status' => 200,
'Country' => $countries_data,
]);
}
public function getStates(Request $request)
{
if (empty(session('UserId'))) {
return redirect('/admin/logout');
}
$country_id = $request->post('country_id');
$state_data = States::where('country_id', $country_id)->orderBy('state_name', 'asc')->get();
echo "<option value=''>Please select state</option>";
foreach ($state_data as $state) {
$state_name = $state->state_name;
echo "<option value='" . $state_name . "'>" . $state_name . "</option>";
}
}
### Store New Records
public function storeSalesArea(Request $request)
{
if (empty(session('UserId'))) {
return redirect('/admin/logout');
}
$SalesArea = new SalesArea;
$SalesArea->SalesAreaId = $this->userLib->useridGenrator();
$SalesArea->Name = $request->input('name');
$SalesArea->SalesTerritoryId = $request->input('territory');
$SalesArea->City = $request->input('city');
$SalesArea->State = $request->input('state');
$SalesArea->Country = $request->input('country');
$SalesArea->Zip = $request->input('zip');
$SalesArea->Created_by = session('UserId');
$SalesArea->Updated_by = session('UserId');
$SalesArea->IsDeleted = '0';
$SalesArea->DeviceName = '';
if ($request->has('statusSalesArea')) {
$SalesArea->Status = '0';
} else {
$SalesArea->Status = '1';
}
$SalesArea->save();
//return redirect()->back()->with('status_success');
return response()->json('status_success');
}
#### Change Status
public function statusUpdateSalesArea($id)
{
if (empty(session('UserId'))) {
return redirect('/admin/logout');
}
$data = SalesArea::find($id);
if ($data->Status == '1') {
$Status = '0';
} else {
$Status = '1';
}
$values = array('Status' => $Status);
SalesArea::find($id)->update($values);
return redirect()->back();
}
#### Delete Temporary
public function deleteSalesArea($id)
{
if (empty(session('UserId'))) {
return redirect('/admin/logout');
}
$CreatedDate = date('Y-m-d H:i:s', time());
$salesarea = array();
$salesarea['Updated_at'] = $CreatedDate;
$salesarea['IsDeleted'] = '1';
$salesarea['Status'] = '0';
$delete_area = SalesArea::where('SalesAreaId', $id)->update($salesarea);
if ($delete_area) {
return response()->json('success');
}
}
#### Delete Selected Area
public function deleteSelectedArea(Request $request)
{
if (empty(session('UserId'))) {
return redirect('/admin/logout');
}
$id = $request->input('SelectedArea');
if ($id) {
foreach ($id as $SalesAreaId) {
$GetCustomerSalesAreaId = Customer::select('tbl_customer.*')
->where('SalesArea', $SalesAreaId)
->get()->first();
if (!$GetCustomerSalesAreaId) {
$checkData = SalesArea::select('tbl_sales_area.*')
->where('SalesAreaId', '=', $SalesAreaId)
->get()->first();
if ($checkData->IsDeleted == '0') {
$UpdatedDate = date(
'Y-m-d H:i:s',
time()
);
$data = array();
$data['Updated_at'] = $UpdatedDate;
$data['Status'] = '0';
$data['IsDeleted'] = '1';
$selected_entry = SalesArea::where('SalesAreaId', $SalesAreaId)->update($data);
} else {
$selected_entry = SalesArea::select('tbl_sales_area.*')
->where('SalesAreaId', '=', $SalesAreaId)
->get()->first();
$selected_entry->delete();
}
}
}
}
return redirect()->back()->with('status_success');
}
#### Restore
public function restoreSalesArea($id)
{
if (empty(session('UserId'))) {
return redirect('/admin/logout');
}
$CreatedDate = date('Y-m-d H:i:s', time());
$salesarea = array();
$salesarea['Updated_at'] = $CreatedDate;
$salesarea['IsDeleted'] = '0';
$restore_area = SalesArea::where('SalesAreaId', $id)->update($salesarea);
if ($restore_area) {
return response()->json('success');
}
}
#### Delete Permanent
public function destroySalesArea($id)
{
if (empty(session('UserId'))) {
return redirect('/admin/logout');
}
$destroy_area = SalesArea::where('SalesAreaId', $id)->delete();
if ($destroy_area) {
return response()->json('success');
}
}
### Edit Records
public function editSalesArea($id)
{
if (empty(session('UserId'))) {
return redirect('/admin/logout');
}
$SalesArea = SalesArea::select('tbl_sales_area.*')
->where('SalesAreaId', $id)
->get()->first();
return response()->json([
'status' => 200,
'SalesArea' => $SalesArea,
]);
}
### Update Records
public function updateSalesArea(Request $request)
{
if (empty(session('UserId'))) {
return redirect('/admin/logout');
}
$area_id = $request->input('id');
$data['Name'] = $request->input('name');
$data['SalesTerritoryId'] = $request->input('territory');
$data['City'] = $request->input('city');
$data['State'] = $request->input('state');
$data['Country'] = $request->input('country');
$data['Zip'] = $request->input('zip');
$data['Updated_by'] = session('UserId');
$data['DeviceName'] = 'Web';
SalesArea::where('SalesAreaId', $area_id)->update($data);
return redirect()->back()->with('status_success');
}
#### Check Customer SalesArea
public function checkCustomerSalesArea($id)
{
if (empty(session('UserId'))) {
return redirect('/admin/logout');
}
$GetCustomerSalesArea = Customer::select('tbl_customer.*')
->where('SalesArea', $id)
->get()->first();
if ($GetCustomerSalesArea) {
return response()->json(array("exists" => true));
} else {
return response()->json(array("exists" => false));
}
// return response()->json([
// 'status' => 200,
// 'GetCustomerPriceBook' => $GetCustomerPriceBook,
// ]);
}
}