Linux localhost 5.4.0-198-generic #218-Ubuntu SMP Fri Sep 27 20:18:53 UTC 2024 x86_64
Apache/2.4.41 (Ubuntu)
: 23.92.16.63 | : 104.23.253.118
Cant Read [ /etc/named.conf ]
8.1.5
www-data
www.github.com/MadExploits
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
CPANEL RESET
CREATE WP USER
README
+ Create Folder
+ Create File
/
var /
www /
crm.oxopackaging.com /
app /
Services /
Admin /
[ HOME SHELL ]
Name
Size
Permission
Action
AccessoryService.php
1.23
KB
-rw-r--r--
ActivityService.php
1.21
KB
-rw-r--r--
AdministrationService.php
1.26
KB
-rw-r--r--
AgentRawDataService.php
1.25
KB
-rw-r--r--
AttandanceService.php
1.34
KB
-rw-r--r--
AttendanceService.php
1.23
KB
-rw-r--r--
ClientService.php
2.94
KB
-rw-r--r--
CourierService.php
1.32
KB
-rw-r--r--
DealProductPrintingService.php
1.31
KB
-rw-r--r--
DealProductQuantityAndEstimati...
1.5
KB
-rw-r--r--
DealProductService.php
1.24
KB
-rw-r--r--
DealService.php
115.45
KB
-rw-r--r--
DepartmentService.php
1.23
KB
-rw-r--r--
DesignationService.php
1.24
KB
-rw-r--r--
DomainsService.php
1.2
KB
-rw-r--r--
EmailPhoneDetailService.php
1.28
KB
-rw-r--r--
EmbossingService.php
1.22
KB
-rw-r--r--
EmployeeService.php
1.21
KB
-rw-r--r--
FileService.php
1.17
KB
-rw-r--r--
FoilingService.php
1.2
KB
-rw-r--r--
JobtitleService.php
1.21
KB
-rw-r--r--
LaminationService.php
1.23
KB
-rw-r--r--
LeadSourceService.php
2.66
KB
-rw-r--r--
MaterialService.php
1.21
KB
-rw-r--r--
MetrialService.php
1.2
KB
-rw-r--r--
ModuleService.php
5.89
KB
-rw-r--r--
NoteService.php
1.17
KB
-rw-r--r--
PermissionService.php
1.23
KB
-rw-r--r--
PipelineService.php
1.21
KB
-rw-r--r--
PipelineStageService.php
1.49
KB
-rw-r--r--
ProductColorService.php
1.25
KB
-rw-r--r--
ProductMeasurementUnitService....
1.34
KB
-rw-r--r--
ProductPrintingService.php
1.27
KB
-rw-r--r--
ProductService.php
1.31
KB
-rw-r--r--
ProductStockService.php
1.25
KB
-rw-r--r--
ProjectService.php
1.2
KB
-rw-r--r--
RewardsService.php
1.2
KB
-rw-r--r--
RoleService.php
2.44
KB
-rw-r--r--
SettingService.php
1.2
KB
-rw-r--r--
ShiftTimeService.php
1.22
KB
-rw-r--r--
ShippingBoxesService.php
1.5
KB
-rw-r--r--
StateService.php
1.18
KB
-rw-r--r--
UserService.php
10.73
KB
-rw-r--r--
UsersDaysoffService.php
1.28
KB
-rw-r--r--
UvService.php
1.15
KB
-rw-r--r--
VendorService.php
1.19
KB
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : DealService.php
<?php /** * Created by crm_entity command. * @author : Muhammad Saeed * @todo : Service todo * @since : $2021Aug27 * @description : Service description */ namespace App\Services\Admin; use App\Models\Courier; use App\Models\Deal; use App\Models\DealAmount; use App\Models\DealProduct; use App\Models\ExcelSales; use App\Models\LeadSource; use App\Models\ObDeals; use App\Models\Outbound; use App\Models\Product; use App\Models\State; use App\Models\PipelineStage; use App\Models\Tracking; use Carbon\Carbon; use App\Services\DealService as ParentService; use App\Repositories\DealRepository; use Illuminate\Foundation\Auth\User; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Log; class DealService extends ParentService { /** * @var DealRepository */ protected $repository; /** * DealRepository constructor. * * @param DealRepository $repository */ public function __construct(DealRepository $repository) { parent::__construct($repository, 'Admin'); } /** * DealRepository constructor. * * @todo Function todo * @description Function description * @since $2021Aug27 * @param DealRepository $repository */ public function index($request){ $this->repository->setPresenter("App\\Presenters\\Admin\\Deal\\ListPresenter"); $this->repository->pushCriteria(app('Prettus\Repository\Criteria\RequestCriteria')); if ($request->has('paginate') && $request->paginate) { return $this->repository->paginate(); } return $this->repository->all(); } public function create($request) { $deal = $this->repository->create($request->except('attachments')); if($request->has('attachments')){ $this->saveUpdateAttachments($request->attachments, $deal ); } return $deal; } public function NewReorderList($request){ $data = \App\Models\User::select('*')->with(['user_closedwon_new_deals'=> function($que) use ($request){ if($request->has('deal_name') ) { $que->where('order_number', 'like', $request->deal_name . '%'); } if(!empty($request->get('from') && $request->get('to'))) { $que->whereBetween('close_date', [date($request->from) , date($request->to)]); }else{ $first = date("Y-m-d",strtotime("first day of this month")); $last = date("Y-m-d", strtotime("last day of this month")); $que->whereBetween('close_date', [date($first) , date($last)]); } // $que->where('complete_status' ,'=', '0'); },'user_closedwon_repeat_deals'=> function($que) use ($request){ if($request->has('deal_name') ) { $que->where('order_number', 'like', $request->deal_name . '%'); } if(!empty($request->get('from') && $request->get('to'))) { $que->whereBetween('close_date', [date($request->from) , date($request->to)]); }else{ $first = date("Y-m-d",strtotime("first day of this month")); $last = date("Y-m-d", strtotime("last day of this month")); $que->whereBetween('close_date', [date($first) , date($last)]); } // $que->where('complete_status' ,'=', '0'); },'user_closedwon_new_deals.deal_amount'=> function($que) use ($request){ if($request->has('deal_name') ) { $que->where('order_number', 'like', $request->deal_name . '%'); } if(!empty($request->get('from') && $request->get('to'))) { $que->whereBetween('receiving_date', [date($request->from) , date($request->to)]); }else{ $first = date("Y-m-d",strtotime("first day of this month")); $last = date("Y-m-d", strtotime("last day of this month")); $que->whereBetween('receiving_date', [date($first) , date($last)]); } // $que->where('complete_status' ,'=', '0'); },'user_closedwon_repeat_deals.deal_amount'=> function($que) use ($request){ if($request->has('deal_name') ) { $que->where('order_number', 'like', $request->deal_name . '%'); } if(!empty($request->get('from') && $request->get('to'))) { $que->whereBetween('receiving_date', [date($request->from) , date($request->to)]); }else{ $first = date("Y-m-d",strtotime("first day of this month")); $last = date("Y-m-d", strtotime("last day of this month")); $que->whereBetween('receiving_date', [date($first) , date($last)]); } // $que->where('complete_status' ,'=', '0'); }]); if(!empty($request->get('owner_id') )) { $data->where('id' ,'=', $request->owner_id); } $data->where('status' ,'=', 'active'); $data->where('agent' ,'=', '1'); return $data->orderBy('first_name','asc')->get(); } public function getUsers(){ return \App\Models\User::where('status','active')->where('agent','1')->orderBy('first_name','ASC')->get(); } public function getDomains(){ return \App\Models\Domains::where('status','active')->orderBy('domain','ASC')->get(); } public function getProducts(){ return \App\Models\Product::where('type','product')->where('status','active')->orderBy('name','asc')->get(); } public function getSource(){ return LeadSource::where('status','1')->orderBy('name','asc')->get(); } public function leads($request){ return Deal::where('deal_type_id',2)->whereIn('pipeline_stage_id',array('1','2','3','11'))->whereBetween('open_date', [date($request->from) , date($request->to)])->where('product_id',$request->product_id)->where('deal_status',1)->get(); } public function won($request){ return Deal::where('deal_type_id',2)->whereIn('pipeline_stage_id',array('4'))->whereBetween('close_date', [date($request->from) , date($request->to)])->where('product_id',$request->product_id)->where('deal_status',1)->get(); } public function lost($request){ return Deal::where('deal_type_id',2)->whereIn('pipeline_stage_id',array('5'))->whereBetween('close_date', [date($request->from) , date($request->to)])->where('product_id',$request->product_id)->where('deal_status',1)->get(); } public function monthlymarketingreport_new($request){ if(!empty($request['owner_id'])){ $data = Product::where('type','product')->where('id',$request['owner_id'])->where('status','active' ); $data->orderBy('name','asc'); return $data->get(); }else{ $data = Product::where('type','product')->where('status','active' ); $data->orderBy('name','asc'); return $data->get(); } } /* public function monthlymarketingreport($request){ $data = Product::select('*')->with(['dealporducts'=> function($que) use ($request){ if(!empty($request->get('from') && $request->get('to'))) { $que->whereBetween('created_at', [date($request->from) , date($request->to)]); }else{ $first = date("Y-m-d",strtotime("first day of this month")); $last = date("Y-m-d", strtotime("last day of this month")); $que->whereBetween('created_at', [date($first) , date($last)]); } if(!empty($request->get('owner_id'))) { $que->where('product_id', $request->get('owner_id')); } },'dealporducts.closed_won'=> function($que) use ($request){ if(!empty($request->get('from') && $request->get('to'))) { $que->whereBetween('close_date', [date($request->from) , date($request->to)]); }else{ $first = date("Y-m-d",strtotime("first day of this month")); $last = date("Y-m-d", strtotime("last day of this month")); $que->whereBetween('close_date', [date($first) , date($last)]); } // $que->where('complete_status' ,'=', '0'); },'dealporducts.closed_lost'=> function($que) use ($request){ if(!empty($request->get('from') && $request->get('to'))) { $que->whereBetween('close_date', [date($request->from) , date($request->to)]); }else{ $first = date("Y-m-d",strtotime("first day of this month")); $last = date("Y-m-d", strtotime("last day of this month")); $que->whereBetween('close_date', [date($first) , date($last)]); } // $que->where('complete_status' ,'=', '0'); },'dealporducts.lead_deal'=> function($que) use ($request){ if(!empty($request->get('from') && $request->get('to'))) { $que->whereBetween('open_date', [date($request->from) , date($request->to)]); }else{ $first = date("Y-m-d",strtotime("first day of this month")); $last = date("Y-m-d", strtotime("last day of this month")); $que->whereBetween('open_date', [date($first) , date($last)]); } // $que->where('complete_status' ,'=', '0'); },'dealporducts.follow_deal'=> function($que) use ($request){ if(!empty($request->get('from') && $request->get('to'))) { $que->whereBetween('open_date', [date($request->from) , date($request->to)]); }else{ $first = date("Y-m-d",strtotime("first day of this month")); $last = date("Y-m-d", strtotime("last day of this month")); $que->whereBetween('open_date', [date($first) , date($last)]); } // $que->where('complete_status' ,'=', '0'); },'dealporducts.est_deal'=> function($que) use ($request){ if(!empty($request->get('from') && $request->get('to'))) { $que->whereBetween('open_date', [date($request->from) , date($request->to)]); }else{ $first = date("Y-m-d",strtotime("first day of this month")); $last = date("Y-m-d", strtotime("last day of this month")); $que->whereBetween('open_date', [date($first) , date($last)]); } // $que->where('complete_status' ,'=', '0'); },'dealporducts.progress_deal'=> function($que) use ($request){ if(!empty($request->get('from') && $request->get('to'))) { $que->whereBetween('open_date', [date($request->from) , date($request->to)]); }else{ $first = date("Y-m-d",strtotime("first day of this month")); $last = date("Y-m-d", strtotime("last day of this month")); $que->whereBetween('open_date', [date($first) , date($last)]); } // $que->where('complete_status' ,'=', '0'); }]); $data->where('type','product'); $data->orderBy('name','asc'); $data->groupBY('id'); return $data->get(); } */ public function marketingreport($request,$id){ $data = Product::select('*')->with(['dealporducts'=> function($que) use ($request){ if(!empty($request->get('from') && $request->get('to'))) { $que->whereBetween('created_at', [date($request->from) , date($request->to)]); }else{ $first = date("Y-m-d",strtotime("first day of this month")); $last = date("Y-m-d", strtotime("last day of this month")); $que->whereBetween('created_at', [date($first) , date($last)]); } if(!empty($request->get('owner_id'))) { $que->where('product_id', $request->get('owner_id')); } /// $que->groupBy('deal_id'); },'dealporducts.chat_deals'=> function($que) use ($request,$id){ if(!empty($request->get('from') && $request->get('to'))) { $que->whereBetween('open_date', [date($request->from) , date($request->to)]); }else{ $first = date("Y-m-d",strtotime("first day of this month")); $last = date("Y-m-d", strtotime("last day of this month")); $que->whereBetween('open_date', [date($first) , date($last)]); } if(!empty($id)) { $que->where('domain_id', '=', $id); } },'dealporducts.custom_quote_deals'=> function($que) use ($request,$id){ if(!empty($request->get('from') && $request->get('to'))) { $que->whereBetween('open_date', [date($request->from) , date($request->to)]); }else{ $first = date("Y-m-d",strtotime("first day of this month")); $last = date("Y-m-d", strtotime("last day of this month")); $que->whereBetween('open_date', [date($first) , date($last)]); } // $que->where('complete_status' ,'=', '0'); if(!empty($id)) { $que->where('domain_id', '=', $id); } },'dealporducts.reference_deals'=> function($que) use ($request,$id){ if(!empty($request->get('from') && $request->get('to'))) { $que->whereBetween('open_date', [date($request->from) , date($request->to)]); }else{ $first = date("Y-m-d",strtotime("first day of this month")); $last = date("Y-m-d", strtotime("last day of this month")); $que->whereBetween('open_date', [date($first) , date($last)]); } // $que->where('complete_status' ,'=', '0'); if(!empty($id)) { $que->where('domain_id', '=', $id); } },'dealporducts.email_deals'=> function($que) use ($request,$id){ if(!empty($request->get('from') && $request->get('to'))) { $que->whereBetween('open_date', [date($request->from) , date($request->to)]); }else{ $first = date("Y-m-d",strtotime("first day of this month")); $last = date("Y-m-d", strtotime("last day of this month")); $que->whereBetween('open_date', [date($first) , date($last)]); } // $que->where('complete_status' ,'=', '0'); if(!empty($id)) { $que->where('domain_id', '=', $id); } } ,'dealporducts.call_deals'=> function($que) use ($request,$id){ if(!empty($request->get('from') && $request->get('to'))) { $que->whereBetween('open_date', [date($request->from) , date($request->to)]); }else{ $first = date("Y-m-d",strtotime("first day of this month")); $last = date("Y-m-d", strtotime("last day of this month")); $que->whereBetween('open_date', [date($first) , date($last)]); } // $que->where('complete_status' ,'=', '0'); if(!empty($id)) { $que->where('domain_id', '=', $id); } },'dealporducts.organic_deals'=> function($que) use ($request,$id){ if(!empty($request->get('from') && $request->get('to'))) { $que->whereBetween('open_date', [date($request->from) , date($request->to)]); }else{ $first = date("Y-m-d",strtotime("first day of this month")); $last = date("Y-m-d", strtotime("last day of this month")); $que->whereBetween('open_date', [date($first) , date($last)]); } // $que->where('complete_status' ,'=', '0'); if(!empty($id)) { $que->where('domain_id', '=', $id); } },'dealporducts.social_deals'=> function($que) use ($request,$id){ if(!empty($request->get('from') && $request->get('to'))) { $que->whereBetween('open_date', [date($request->from) , date($request->to)]); }else{ $first = date("Y-m-d",strtotime("first day of this month")); $last = date("Y-m-d", strtotime("last day of this month")); $que->whereBetween('open_date', [date($first) , date($last)]); } // $que->where('complete_status' ,'=', '0'); if(!empty($id)) { $que->where('domain_id', '=', $id); } },'dealporducts.ppc_deals'=> function($que) use ($request,$id){ if(!empty($request->get('from') && $request->get('to'))) { $que->whereBetween('open_date', [date($request->from) , date($request->to)]); }else{ $first = date("Y-m-d",strtotime("first day of this month")); $last = date("Y-m-d", strtotime("last day of this month")); $que->whereBetween('open_date', [date($first) , date($last)]); } // $que->where('complete_status' ,'=', '0'); if(!empty($id)) { $que->where('domain_id', '=', $id); } },'dealporducts.mouseflow_deals'=> function($que) use ($request,$id){ if(!empty($request->get('from') && $request->get('to'))) { $que->whereBetween('open_date', [date($request->from) , date($request->to)]); }else{ $first = date("Y-m-d",strtotime("first day of this month")); $last = date("Y-m-d", strtotime("last day of this month")); $que->whereBetween('open_date', [date($first) , date($last)]); } // $que->where('complete_status' ,'=', '0'); if(!empty($id)) { $que->where('domain_id', '=', $id); } }]); $data->where('type','product'); $data->orderBy('name','asc'); return $data->get(); } public function ProductEstimation($request) { if (!empty($request['product'])) { $data = Deal::select('id')->with([ 'dealProducts.dealProductQuantityAndEstimationAmounts_sigle:id,deal_product_id,created_at as cat,deal_product_quantity,deal_product_est_amount,deal_product_amount,receive_able_amount', 'dealProducts.product_printings' => function ($query) use ($request) { // You can add query logic for product printings here if needed }, ]); if (!empty($request['product'])) { $data->whereHas('dealProducts', function ($query) use ($request) { $query->where('product_id', $request['product']); }); } $data->orderBy('created_at', 'desc'); return $data->get(); } else { return []; } } public function marketingreports($request){ $data = Product::select('*')->with(['dealporducts'=> function($que) use ($request){ if(!empty($request['from'] && $request['to'])) { $que->whereBetween('created_at', [date($request['from']) , date($request['to'])]); }else{ $first = date("Y-m-d",strtotime("first day of this month")); $last = date("Y-m-d", strtotime("last day of this month")); $que->whereBetween('created_at', [date($first) , date($last)]); } if(!empty($reques['deal_name'])) { $que->where('product_id', $request['deal_name']); } /// $que->groupBy('deal_id'); },'dealporducts.chat_deals'=> function($que) use ($request){ if(!empty($request['from'] && $request['to'])) { $que->whereBetween('open_date', [date($request['from']) , date($request['to'])]); }else{ $first = date("Y-m-d",strtotime("first day of this month")); $last = date("Y-m-d", strtotime("last day of this month")); $que->whereBetween('open_date', [date($first) , date($last)]); } // $que->where('complete_status' ,'=', '0'); },'dealporducts.custom_quote_deals'=> function($que) use ($request){ if(!empty($request['from'] && $request['to'])) { $que->whereBetween('open_date', [date($request['from']) , date($request['to'])]); }else{ $first = date("Y-m-d",strtotime("first day of this month")); $last = date("Y-m-d", strtotime("last day of this month")); $que->whereBetween('open_date', [date($first) , date($last)]); } // $que->where('complete_status' ,'=', '0'); },'dealporducts.reference_deals'=> function($que) use ($request){ if(!empty($request['from'] && $request['to'])) { $que->whereBetween('open_date', [date($request['from']) , date($request['to'])]); }else{ $first = date("Y-m-d",strtotime("first day of this month")); $last = date("Y-m-d", strtotime("last day of this month")); $que->whereBetween('open_date', [date($first) , date($last)]); } // $que->where('complete_status' ,'=', '0'); },'dealporducts.email_deals'=> function($que) use ($request){ if(!empty($request['from'] && $request['to'])) { $que->whereBetween('open_date', [date($request['from']) , date($request['to'])]); }else{ $first = date("Y-m-d",strtotime("first day of this month")); $last = date("Y-m-d", strtotime("last day of this month")); $que->whereBetween('open_date', [date($first) , date($last)]); } // $que->where('complete_status' ,'=', '0'); } ,'dealporducts.call_deals'=> function($que) use ($request){ if(!empty($request['from'] && $request['to'])) { $que->whereBetween('open_date', [date($request['from']) , date($request['to'])]); }else{ $first = date("Y-m-d",strtotime("first day of this month")); $last = date("Y-m-d", strtotime("last day of this month")); $que->whereBetween('open_date', [date($first) , date($last)]); } // $que->where('complete_status' ,'=', '0'); },'dealporducts.organic_deals'=> function($que) use ($request){ if(!empty($request['from'] && $request['to'])) { $que->whereBetween('open_date', [date($request['from']) , date($request['to'])]); }else{ $first = date("Y-m-d",strtotime("first day of this month")); $last = date("Y-m-d", strtotime("last day of this month")); $que->whereBetween('open_date', [date($first) , date($last)]); } // $que->where('complete_status' ,'=', '0'); },'dealporducts.social_deals'=> function($que) use ($request){ if(!empty($request['from'] && $request['to'])) { $que->whereBetween('open_date', [date($request['from']) , date($request['to'])]); }else{ $first = date("Y-m-d",strtotime("first day of this month")); $last = date("Y-m-d", strtotime("last day of this month")); $que->whereBetween('open_date', [date($first) , date($last)]); } // $que->where('complete_status' ,'=', '0'); },'dealporducts.ppc_deals'=> function($que) use ($request){ if(!empty($request['from'] && $request['to'])) { $que->whereBetween('open_date', [date($request['from']) , date($request['to'])]); }else{ $first = date("Y-m-d",strtotime("first day of this month")); $last = date("Y-m-d", strtotime("last day of this month")); $que->whereBetween('open_date', [date($first) , date($last)]); } // $que->where('complete_status' ,'=', '0'); },'dealporducts.mouseflow_deals'=> function($que) use ($request){ if(!empty($request['from'] && $request['to'])) { $que->whereBetween('open_date', [date($request['from']) , date($request['to'])]); }else{ $first = date("Y-m-d",strtotime("first day of this month")); $last = date("Y-m-d", strtotime("last day of this month")); $que->whereBetween('open_date', [date($first) , date($last)]); } // $que->where('complete_status' ,'=', '0'); }]); if(!empty($request->deal_name)) { $data->where('id', $request['deal_name']); } $data->where('type','product'); $data->orderBy('name','asc'); return $res= $data->get(); } public function DealsLeadReport($request){ $data = \App\Models\User::select('*')->with(['user_lead_deals'=> function($que) use ($request){ if($request->has('deal_name') ) { $que->where('order_number', 'like', $request->deal_name . '%'); } if(!empty($request->get('from') && $request->get('to'))) { $que->whereBetween('open_date', [date($request->from) , date($request->to)]); }else{ $first = date("Y-m-d",strtotime("first day of this month")); $last = date("Y-m-d", strtotime("last day of this month")); $que->whereBetween('open_date', [date($first) , date($last)]); } // $que->where('complete_status' ,'=', '0'); if ($request->has('domain') && $request->domain !== null) { $que->where('domain_id', '=', $request->domain); } elseif (!$request->has('domain') && !$request->has('owner_id')) { // If domain is not selected and owner_id is not selected, include null domain_id $que->where(function($query) { $query->whereNotNull('domain_id')->orWhereNull('domain_id'); }); } },'user_follow_deals'=> function($que) use ($request){ if($request->has('deal_name') ) { $que->where('order_number', 'like', $request->deal_name . '%'); } if(!empty($request->get('from') && $request->get('to'))) { $que->whereBetween('open_date', [date($request->from) , date($request->to)]); }else{ $first = date("Y-m-d",strtotime("first day of this month")); $last = date("Y-m-d", strtotime("last day of this month")); $que->whereBetween('open_date', [date($first) , date($last)]); } if ($request->has('domain') && $request->domain !== null) { $que->where('domain_id', '=', $request->domain); } elseif (!$request->has('domain') && !$request->has('owner_id')) { // If domain is not selected and owner_id is not selected, include null domain_id $que->where(function($query) { $query->whereNotNull('domain_id')->orWhereNull('domain_id'); }); } // $que->where('complete_status' ,'=', '0'); },'user_estimation_deals'=> function($que) use ($request){ if($request->has('deal_name') ) { $que->where('order_number', 'like', $request->deal_name . '%'); } if(!empty($request->get('from') && $request->get('to'))) { $que->whereBetween('open_date', [date($request->from) , date($request->to)]); }else{ $first = date("Y-m-d",strtotime("first day of this month")); $last = date("Y-m-d", strtotime("last day of this month")); $que->whereBetween('open_date', [date($first) , date($last)]); } if ($request->has('domain') && $request->domain !== null) { $que->where('domain_id', '=', $request->domain); } elseif (!$request->has('domain') && !$request->has('owner_id')) { // If domain is not selected and owner_id is not selected, include null domain_id $que->where(function($query) { $query->whereNotNull('domain_id')->orWhereNull('domain_id'); }); } // $que->where('complete_status' ,'=', '0'); },'user_inprogress_deals'=> function($que) use ($request){ if($request->has('deal_name') ) { $que->where('order_number', 'like', $request->deal_name . '%'); } if(!empty($request->get('from') && $request->get('to'))) { $que->whereBetween('open_date', [date($request->from) , date($request->to)]); }else{ $first = date("Y-m-d",strtotime("first day of this month")); $last = date("Y-m-d", strtotime("last day of this month")); $que->whereBetween('open_date', [date($first) , date($last)]); } // $que->where('complete_status' ,'=', '0'); if ($request->has('domain') && $request->domain !== null) { $que->where('domain_id', '=', $request->domain); } elseif (!$request->has('domain') && !$request->has('owner_id')) { // If domain is not selected and owner_id is not selected, include null domain_id $que->where(function($query) { $query->whereNotNull('domain_id')->orWhereNull('domain_id'); }); } },'user_closedwon_deals'=> function($que) use ($request){ if(!empty($request->get('from') && $request->get('to'))) { $que->whereHas('deal_amount', function ($queryu) use ($request) { $queryu->whereBetween('receiving_date', [date($request->from) , date($request->to)]); }); }else{ $que->whereHas('deal_amount', function ($queryu) use ($request) { $first =date("Y-m-d", strtotime("first day of this month")); $last = date("Y-m-d", strtotime("last day of this month")); $queryu->whereBetween('receiving_date', [date($first) , date($last)]); }); } if ($request->has('domain') && $request->domain !== null) { $que->where('domain_id', '=', $request->domain); } elseif (!$request->has('domain') && !$request->has('owner_id')) { // If domain is not selected and owner_id is not selected, include null domain_id $que->where(function($query) { $query->whereNotNull('domain_id')->orWhereNull('domain_id'); }); } // $que->where('pipeline_stage_id','=',4); // $que->where('complete_status' ,'=', '0'); },'user_closedlost_deals'=> function($que) use ($request){ if($request->has('deal_name') ) { $que->where('order_number', 'like', $request->deal_name . '%'); } if(!empty($request->get('from') && $request->get('to'))) { $que->whereBetween('close_date', [date($request->from) , date($request->to)]); }else{ $first = date("Y-m-d",strtotime("first day of this month")); $last = date("Y-m-d", strtotime("last day of this month")); $que->whereBetween('close_date', [date($first) , date($last)]); } if ($request->has('domain') && $request->domain !== null) { $que->where('domain_id', '=', $request->domain); } elseif (!$request->has('domain') && !$request->has('owner_id')) { // If domain is not selected and owner_id is not selected, include null domain_id $que->where(function($query) { $query->whereNotNull('domain_id')->orWhereNull('domain_id'); }); } // $que->where('complete_status' ,'=', '0'); },'user_closedwon_deals.deal_amount'=> function($que) use ($request){ if(!empty($request->get('from') && $request->get('to'))) { /// $que->whereBetween('receiving_date', [date($request->from), date($request->to)]); }else{ $first =date("Y-m-d", strtotime("first day of this month"));; $last = date("Y-m-d", strtotime("last day of this month")); $que->whereBetween('receiving_date', [date($first) , date($last)]); } }]); if(!empty($request->get('owner_id') )) { $data->where('id' ,'=', $request->owner_id); } $data->where('status' ,'=', 'active'); $data->where('agent' ,'=', '1'); return $data->orderBy('first_name','asc')->get(); } public function MonthlyDealsReport($request,$id){ $data = \App\Models\User::select('*')->with(['user_new_closedwon_deals'=> function($que) use ($request){ if(!empty($request->get('startDate'))) { $que->whereHas('deal_amount', function ($queryu) use ($request) { $queryu->whereBetween('receiving_date', [date($request['startDate']) , date($request['endDate'])]); }); }else{ $que->whereHas('deal_amount', function ($queryu) use ($request) { $first =date("Y-m-d", strtotime("first day of this month")); $last = date("Y-m-d", strtotime("last day of this month")); $queryu->whereBetween('receiving_date', [date($first) , date($last)]); }); } if ($request->has('domain') && $request->domain !== null) { $que->whereIn('domain_id', $request->domain); } // $que->where('pipeline_stage_id','=',4); if(!empty($request->get('order_type') )) { $que->where('customer_type' ,'=', $request->get('order_type') ); } // $que->where('complete_status' ,'=', '0'); },'user_old_closedwon_deals'=> function($que) use ($request){ if(!empty($request->get('startDate') )) { $que->whereHas('deal_amount', function ($queryu) use ($request) { $queryu->whereBetween('receiving_date', [date($request['startDate']) , date($request['endDate'])]); }); }else{ $que->whereHas('deal_amount', function ($queryu) use ($request) { $first =date("Y-m-d", strtotime("first day of this month")); $last = date("Y-m-d", strtotime("last day of this month")); $queryu->whereBetween('receiving_date', [date($first) , date($last)]); }); } if ($request->has('domain') && $request->domain !== null) { $que->whereIn('domain_id', $request->domain); } // $que->where('pipeline_stage_id','=',4); if(!empty($request->get('order_type') )) { $que->where('customer_type' ,'=', $request->get('order_type') ); } // $que->where('complete_status' ,'=', '0'); },'user_closedlost_deals'=> function($que) use ($request){ if($request->has('deal_name') ) { $que->where('order_number', 'like', $request->deal_name . '%'); } if(!empty($request->get('startDate') && $request->get('endDate'))) { $que->whereBetween('close_date', [date($request['startDate']) , date($request['endDate'])]); }else{ $first = date("Y-m-d",strtotime("first day of this month")); $last = date("Y-m-d", strtotime("last day of this month")); $que->whereBetween('close_date', [date($first) , date($last)]); } if ($request->has('domain') && $request->domain !== null) { $que->whereIn('domain_id', $request->domain); } // $que->where('complete_status' ,'=', '0'); if(!empty($request->get('order_type') )) { $que->where('customer_type' ,'=', $request->get('order_type') ); } },'user_inprogress_deals'=> function($que) use ($request){ if($request->has('deal_name') ) { $que->where('order_number', 'like', $request->deal_name . '%'); } if(!empty($request->get('startDate') && $request->get('endDate'))) { $que->whereBetween('open_date', [date($request['startDate']) , date($request['endDate'])]); }else{ $first = date("Y-m-d",strtotime("first day of this month")); $last = date("Y-m-d", strtotime("last day of this month")); $que->whereBetween('open_date', [date($first) , date($last)]); } // $que->where('complete_status' ,'=', '0'); if ($request->has('domain') && $request->domain !== null) { $que->whereIn('domain_id',$request->domain); } if(!empty($request->get('order_type') )) { $que->where('customer_type' ,'=', $request->get('order_type') ); } },'user_estimation_deals'=> function($que) use ($request){ if($request->has('deal_name') ) { $que->where('order_number', 'like', $request->deal_name . '%'); } if(!empty($request->get('startDate') && $request->get('endDate'))) { $que->whereBetween('open_date', [date($request['startDate']) , date($request['endDate'])]); }else{ $first = date("Y-m-d",strtotime("first day of this month")); $last = date("Y-m-d", strtotime("last day of this month")); $que->whereBetween('open_date', [date($first) , date($last)]); } if ($request->has('domain') && $request->domain !== null) { $que->whereIn('domain_id', $request->domain); } if(!empty($request->get('order_type') )) { $que->where('customer_type' ,'=', $request->get('order_type') ); } // $que->where('complete_status' ,'=', '0'); },'user_lead_deals'=> function($que) use ($request){ if($request->has('deal_name') ) { $que->where('order_number', 'like', $request->deal_name . '%'); } if(!empty($request->get('startDate') && $request->get('endDate'))) { $que->whereBetween('open_date', [date($request['startDate']) , date($request['endDate'])]); }else{ $first = date("Y-m-d",strtotime("first day of this month")); $last = date("Y-m-d", strtotime("last day of this month")); $que->whereBetween('open_date', [date($first) , date($last)]); } // $que->where('complete_status' ,'=', '0'); if ($request->has('domain') && $request->domain !== null) { $que->whereIn('domain_id', $request->domain); } if(!empty($request->get('order_type') )) { $que->where('customer_type' ,'=', $request->get('order_type') ); } },'user_follow_deals'=> function($que) use ($request){ if($request->has('deal_name') ) { $que->where('order_number', 'like', $request->deal_name . '%'); } if(!empty($request->get('startDate') && $request->get('endDate'))) { $que->whereBetween('open_date', [date($request['startDate']) , date($request['endDate'])]); }else{ $first = date("Y-m-d",strtotime("first day of this month")); $last = date("Y-m-d", strtotime("last day of this month")); $que->whereBetween('open_date', [date($first) , date($last)]); } if ($request->has('domain') && $request->domain !== null) { $que->whereIn('domain_id', $request->domain); } if(!empty($request->get('order_type') )) { $que->where('customer_type' ,'=', $request->get('order_type') ); } // $que->where('complete_status' ,'=', '0'); },'client','vendor','production_details','dealProducts','dealProducts.product','dealProducts.productstyle','owner']); if(!empty($request->get('owner_id') )) { $uid = User::where('id',$request->get('owner_id'))->first(); $data->whereIn('id', explode(',',$uid->team_member)); } if(!empty($request->get('country_id') )) { $data->whereIn('country_id', $request->get('country_id') ); } // print_r($request->get('domain'));exit; if(!empty($request->get('domain_id') )) { $data->whereIn('domains_id' , $request->domain_id ); } $data->where('status' ,'=', 'active'); $data->where('agent' ,'=', '1'); return $data->orderBy('first_name','asc')->get(); } public function MonthlyDealsReports($request,$id){ $selectUsers=array(); $user_team=explode(',',$id); foreach ($user_team as $us){ $selectUsers[]=$us; } // Today // Yesterday $data = \App\Models\User::select('*')->with(['user_new_closedwon_deals'=> function($que) use ($request){ if(!empty($request->get('from') && $request->get('to'))) { $que->whereHas('deal_amount', function ($queryu) use ($request) { $queryu->whereBetween('receiving_date', [date($request['from']) , date($request['to'])]); }); }else{ $que->whereHas('deal_amount', function ($queryu) use ($request) { $first =date("Y-m-d", strtotime("first day of this month")); $last = date("Y-m-d", strtotime("last day of this month")); $queryu->whereBetween('receiving_date', [date($first) , date($last)]); }); } if ($request->has('domain') && $request->domain !== null) { $que->where('domain_id', '=', $request->domain); } elseif (!$request->has('domain') && !$request->has('owner_id')) { // If domain is not selected and owner_id is not selected, include null domain_id $que->where(function($query) { $query->whereNotNull('domain_id')->orWhereNull('domain_id'); }); } // $que->where('pipeline_stage_id','=',4); if(!empty($request->get('country_id') )) { $que->where('country_id' ,'=', $request->get('country_id') ); } // $que->where('complete_status' ,'=', '0'); },'user_old_closedwon_deals'=> function($que) use ($request){ if(!empty($request->get('from') && $request->get('to'))) { $que->whereHas('deal_amount', function ($queryu) use ($request) { $queryu->whereBetween('receiving_date', [date($request['from']) , date($request['to'])]); }); }else{ $que->whereHas('deal_amount', function ($queryu) use ($request) { $first =date("Y-m-d", strtotime("first day of this month")); $last = date("Y-m-d", strtotime("last day of this month")); $queryu->whereBetween('receiving_date', [date($first) , date($last)]); }); } if ($request->has('domain') && $request->domain !== null) { $que->where('domain_id', '=', $request->domain); } elseif (!$request->has('domain') && !$request->has('owner_id')) { // If domain is not selected and owner_id is not selected, include null domain_id $que->where(function($query) { $query->whereNotNull('domain_id')->orWhereNull('domain_id'); }); } // $que->where('pipeline_stage_id','=',4); if(!empty($request->get('country_id') )) { $que->where('country_id' ,'=', $request->get('country_id') ); } // $que->where('complete_status' ,'=', '0'); },'user_closedlost_deals'=> function($que) use ($request){ if($request->has('deal_name') ) { $que->where('order_number', 'like', $request->deal_name . '%'); } if(!empty($request->get('from') && $request->get('to'))) { $que->whereBetween('close_date', [date($request['from']) , date($request['to'])]); }else{ $first = date("Y-m-d",strtotime("first day of this month")); $last = date("Y-m-d", strtotime("last day of this month")); $que->whereBetween('close_date', [date($first) , date($last)]); } if ($request->has('domain') && $request->domain !== null) { $que->where('domain_id', '=', $request->domain); } elseif (!$request->has('domain') && !$request->has('owner_id')) { // If domain is not selected and owner_id is not selected, include null domain_id $que->where(function($query) { $query->whereNotNull('domain_id')->orWhereNull('domain_id'); }); } // $que->where('complete_status' ,'=', '0'); if(!empty($request->get('country_id') )) { $que->where('country_id' ,'=', $request->get('country_id') ); } },'user_inprogress_deals'=> function($que) use ($request){ if($request->has('deal_name') ) { $que->where('order_number', 'like', $request->deal_name . '%'); } if(!empty($request->get('from') && $request->get('to'))) { $que->whereBetween('open_date', [date($request['from']) , date($request['to'])]); }else{ $first = date("Y-m-d",strtotime("first day of this month")); $last = date("Y-m-d", strtotime("last day of this month")); $que->whereBetween('open_date', [date($first) , date($last)]); } // $que->where('complete_status' ,'=', '0'); if ($request->has('domain') && $request->domain !== null) { $que->where('domain_id', '=', $request->domain); } elseif (!$request->has('domain') && !$request->has('owner_id')) { // If domain is not selected and owner_id is not selected, include null domain_id $que->where(function($query) { $query->whereNotNull('domain_id')->orWhereNull('domain_id'); }); } if(!empty($request->get('country_id') )) { $que->where('country_id' ,'=', $request->get('country_id') ); } },'user_estimation_deals'=> function($que) use ($request){ if($request->has('deal_name') ) { $que->where('order_number', 'like', $request->deal_name . '%'); } if(!empty($request->get('from') && $request->get('to'))) { $que->whereBetween('open_date', [date($request['from']) , date($request['to'])]); }else{ $first = date("Y-m-d",strtotime("first day of this month")); $last = date("Y-m-d", strtotime("last day of this month")); $que->whereBetween('open_date', [date($first) , date($last)]); } if ($request->has('domain') && $request->domain !== null) { $que->where('domain_id', '=', $request->domain); } elseif (!$request->has('domain') && !$request->has('owner_id')) { // If domain is not selected and owner_id is not selected, include null domain_id $que->where(function($query) { $query->whereNotNull('domain_id')->orWhereNull('domain_id'); }); } if(!empty($request->get('country_id') )) { $que->where('country_id' ,'=', $request->get('country_id') ); } // $que->where('complete_status' ,'=', '0'); },'user_lead_deals'=> function($que) use ($request){ if($request->has('deal_name') ) { $que->where('order_number', 'like', $request->deal_name . '%'); } if(!empty($request->get('from') && $request->get('to'))) { $que->whereBetween('open_date', [date($request['from']) , date($request['to'])]); }else{ $first = date("Y-m-d",strtotime("first day of this month")); $last = date("Y-m-d", strtotime("last day of this month")); $que->whereBetween('open_date', [date($first) , date($last)]); } // $que->where('complete_status' ,'=', '0'); if ($request->has('domain') && $request->domain !== null) { $que->where('domain_id', '=', $request->domain); } elseif (!$request->has('domain') && !$request->has('owner_id')) { // If domain is not selected and owner_id is not selected, include null domain_id $que->where(function($query) { $query->whereNotNull('domain_id')->orWhereNull('domain_id'); }); } if(!empty($request->get('country_id') )) { $que->where('country_id' ,'=', $request->get('country_id') ); } },'user_follow_deals'=> function($que) use ($request){ if($request->has('deal_name') ) { $que->where('order_number', 'like', $request->deal_name . '%'); } if(!empty($request->get('from') && $request->get('to'))) { $que->whereBetween('open_date', [date($request['from']) , date($request['to'])]); }else{ $first = date("Y-m-d",strtotime("first day of this month")); $last = date("Y-m-d", strtotime("last day of this month")); $que->whereBetween('open_date', [date($first) , date($last)]); } if ($request->has('domain') && $request->domain !== null) { $que->where('domain_id', '=', $request->domain); } elseif (!$request->has('domain') && !$request->has('owner_id')) { // If domain is not selected and owner_id is not selected, include null domain_id $que->where(function($query) { $query->whereNotNull('domain_id')->orWhereNull('domain_id'); }); } if(!empty($request->get('country_id') )) { $que->where('country_id' ,'=', $request->get('country_id') ); } // $que->where('complete_status' ,'=', '0'); },'client','vendor','production_details','dealProducts','dealProducts.product','dealProducts.productstyle','owner']); if(!empty($request->get('owner_id') )) { $uid = User::where('id',$request->get('owner_id'))->first(); $data->whereIn('id', explode(',',$uid->team_member)); } if(!empty($request->get('country_id') )) { $data->where('country_id' ,'=', $request->get('country_id') ); } if(auth()->user()->employee_country_id==2){ $data->where('production_from' ,'=',auth()->user()->employee_country_id); } $data->where('status' ,'=', 'active'); $data->where('agent' ,'=', '1'); return $data->orderBy('first_name','asc')->get(); } public function saveUpdateAttachments($attachment_files , $deal , $id = null) { if(is_array($attachment_files)){ foreach ($attachment_files as $file) { $mimeArr = explode("/",$file->getMimeType()); $fileType = ($mimeArr[0] == "video")?"video":(($mimeArr[0]=='image')?"image":"file"); $fileExt = $file->getClientOriginalExtension(); $fileName = $file->getClientOriginalName(); $attachment_path = uploadFile(null, 'storage/profile', null, $file); $fileArr = [ 'name' => $fileName, 'type' => $fileType, 'ext' => $fileExt, 'url' => $attachment_path ]; //dd($fileArr); $deal->files()->create($fileArr); } } } public function update($request,$id) { $deal = $this->repository->update($request->except('attachments'),$id); if($request->has('attachments')){ $this->saveUpdateAttachments($request->attachments, $deal ); } return $deal; } /*public function getWonDeals($request){ $data = Deal::select('*')->with(['deals','client','dealProducts','dealProducts.product','dealProducts.productstyle'])->where('deal_status',1)->orderBy('open_date','desc'); if($request->has('deal_name') ) { $data->whereHas('client', function ($queryu) use ($request) { $queryu->where('name', 'like', $request->deal_name . '%')->orWhere(function ($ques) use ($request) { $ques->whereHas('clientDetails', function ($queryu) use ($request) { $queryu->where('value', 'like', $request->deal_name . '%')->orWhere(function ($ques) use ($request) { $ques->where('order_number' ,'like', $request->deal_name.'%')->orWhere(function ($ques) use ($request) { $ques->where('bd_order_number' ,'like', $request->deal_name.'%'); }); }); }); }); }); }if(!empty($request->get('user_deals') )) { $data->where('owner_id' ,'=', $request->user_deals); }else{ if(auth()->user()->id!=1 && auth()->user()->id!=63 && auth()->user()->id!=204 && auth()->user()->id!=207 && auth()->user()->id!=188 && auth()->user()->id!=106 && auth()->user()->id!=107 && auth()->user()->id!=148 && auth()->user()->id!=108 && auth()->user()->id!=109 && auth()->user()->id!=90 && auth()->user()->id!=106 && auth()->user()->id!=94) { $data->where('owner_id', '=', auth()->user()->id); }elseif (auth()->user()->id==148){ $uid = User::where('id',auth()->user()->id)->first(); $data->whereIn('owner_id', explode(',',$uid->team_member)); } }if(!empty($request->get('from') && $request->get('to'))) { $f = $request['from']; $t = $request['to']; $data->where(function ($q) use ($f, $t) { $q->where(function ($qs) use ($f, $t) { $qs->where('bd_close_date', '>=', date($f)) ->where('bd_close_date', '<=', date($t)); // Assuming February 2024 for the example })->orWhereBetween('close_date', [date($f), date($t)]); }); }else{ $f =date("Y-m-d", strtotime("first day of this month"));; $t = date("Y-m-d", strtotime("last day of this month")); $data->where(function ($q) use ($f, $t) { $q->where(function ($qs) use ($f, $t) { $qs->where('bd_close_date', '>=', date($f)) ->where('bd_close_date', '<=', date($t)); // Assuming February 2024 for the example })->orWhereBetween('close_date', [date($f), date($t)]); }); } if(!empty($request->get('domain_id') )) { $data->where('domain_id' ,'=', $request->domain_id); } $data->where('deal_status','=','1'); $data->where(function ($q){ $q->where(function ($qs){ $qs->where('bd_pipeline_stage_id','=',4); })->orWhere('pipeline_stage_id','=',4); }); //$data; $datas=$data->get(); return $datas; // User::paginate(15)->withQueryString(); }*/ public function Obdealleads($request) { $data = ObDeals::query(); // Start the query builder if (auth()->user()->hasRole('OB Team Lead') ) { $uid = User::find(auth()->user()->id); $data->whereIn('user_id', explode(',', $uid->team_member)); } elseif (!auth()->user()->hasRole('super-admin')) { $data->where('user_id', auth()->user()->id); } if (!empty($request->get('from')) && !empty($request->get('to'))) { $from = date('Y-m-d', strtotime($request->get('from'))); $to = date('Y-m-d', strtotime($request->get('to'))); } else { $from = now()->startOfMonth()->format('Y-m-d'); $to = now()->endOfMonth()->format('Y-m-d'); } $data->whereBetween(DB::raw('DATE(open_date)'), [$from, $to]); if ($request->has('deal_name') && !empty($request->deal_name)) { $search = $request->deal_name; $data->where(function ($query) use ($search) { $query->where('name', 'LIKE', "%{$search}%") ->orWhere('phone', 'LIKE', "%{$search}%") ->orWhere('email', 'LIKE', "%{$search}%"); }); } return $data->paginate(50); } public function excelObdealleads($request) { $data = Outbound::with(['users'])->orderBy('id', 'desc'); // Start the query builder if (auth()->user()->hasRole('OB Team Lead') ) { $uid = User::find(auth()->user()->id); $data->whereIn('user_id', explode(',', $uid->team_member)); } elseif (!auth()->user()->hasRole('super-admin')) { $data->where('user_id', auth()->user()->id); } if (!empty($request->get('deal_name')) ) { $data->where('email', $request->get('deal_name')); } if (!empty($request->get('from')) && !empty($request->get('to'))) { $from = date('Y-m-d', strtotime($request->get('from'))); $to = date('Y-m-d', strtotime($request->get('to'))); } else { $from = now()->startOfMonth()->format('Y-m-d'); $to = now()->endOfMonth()->format('Y-m-d'); } $data->whereBetween(DB::raw('DATE(created_at)'), [$from, $to]); return $data->paginate(50); } public function getObleads($request) { $data = Deal::with([ 'client:id,name', 'client.emails:id,model_id,value', 'client.phoneNos:id,model_id,value', 'ob_deal', 'dealProducts:id,deal_id,product_id,product_style_id,product_length,product_height,product_width,product_measurement_unit_id,product_stock_id,product_color_id', 'dealProducts.product:id,name', 'dealProducts.productstyle:id,name', 'dealProducts.product_unit:id,unit', 'dealProducts.dealProductQuantityAndEstimationAmounts_sigle:id,deal_product_id,deal_product_quantity,deal_product_est_amount,deal_product_amount,receive_able_amount', 'vendor:id,name' ])->orderBy('id', 'desc'); // Log Request Data // Deal name filter if ($request->has('deal_name') && !empty($request->deal_name)) { $data->where(function ($query) use ($request) { $query->whereHas('client', function ($subQuery) use ($request) { $subQuery->where('name', 'like', $request->deal_name . '%'); // Fixed 'names' to 'name' }) ->orWhereHas('client.emails', function ($subQuery) use ($request) { $subQuery->where('value', 'like', $request->deal_name . '%'); }) ->orWhereHas('client.phoneNos', function ($subQuery) use ($request) { $subQuery->where('value', 'like', $request->deal_name . '%'); }) ->orWhereHas('deals', function ($subQuery) use ($request) { $subQuery->where('order_number', 'like', $request->deal_name . '%') ->orWhere('ob_order_number', 'like', $request->deal_name . '%'); }); }); } // User deals filter if ($request->filled('user_deals')) { // If user_deals filter is set, apply it $data->where('ob_owner_id', $request->user_deals); } else { if (auth()->user()->hasRole('OB Team Lead')) { $uid = User::find(auth()->user()->id); $data->whereIn('ob_owner_id', explode(',', $uid->team_member)); // Ensure $request->team_member is not null before explode() } elseif (!auth()->user()->hasRole('super-admin')) { // Apply normal user restriction (excluding super-admins) $data->where('ob_owner_id', auth()->user()->id); } } // Date filter if (!empty($request->get('from')) && !empty($request->get('to'))) { $from = date('Y-m-d', strtotime($request->get('from'))); $to = date('Y-m-d', strtotime($request->get('to'))); $data->whereBetween(DB::raw('DATE(ob_open_date)'), [$from, $to]); } else { $from = now()->startOfMonth()->format('Y-m-d'); $to = now()->endOfMonth()->format('Y-m-d'); $data->whereBetween(DB::raw('DATE(ob_open_date)'), [$from, $to]); } // Pipeline stage filter $data->where('deal_status', 1)->where('ob_pipeline_stage_id', 1); return $data->paginate(50); } public function getWonDeals($request) { $data = Deal::select('*') ->with([ 'client:id,name', 'client.emails:id,model_id,value', 'client.phoneNos:id,model_id,value', 'dealProducts:id,deal_id,product_id,product_style_id,product_length,product_height,product_width,product_measurement_unit_id,product_stock_id,product_color_id', 'dealProducts.product:id,name', 'dealProducts.productstyle:id,name', 'dealProducts.product_unit:id,unit', 'dealProducts.dealProductQuantityAndEstimationAmounts_sigle:id,deal_product_id,deal_product_quantity,deal_product_est_amount,deal_product_amount,receive_able_amount', 'vendor:id,name', 'production_details:id,deal_id,tframe,send_date,expected_receiving_date,receiving_date,qty' ]) ->where('deal_status', 1) ->orderBy('id', 'desc'); // Log the request parameters Log::debug('Request Parameters:', $request->all()); // Deal name filter if ($request->has('deal_name') && !empty($request->deal_name)) { $data->where(function ($query) use ($request) { $query->whereHas('client', function ($subQuery) use ($request) { $subQuery->where('name', 'like', $request->deal_name . '%'); }) ->orWhereHas('client.emails', function ($subQuery) use ($request) { $subQuery->where('value', 'like', $request->deal_name . '%'); }) ->orWhereHas('client.phoneNos', function ($subQuery) use ($request) { $subQuery->where('value', 'like', $request->deal_name . '%'); }) ->orWhereHas('dealProducts', function ($subQuery) use ($request) { $subQuery->where('order_number', 'like', $request->deal_name . '%') ->orWhere('bd_order_number', 'like', $request->deal_name . '%'); }); }); } // User deals filter if (!empty($request->get('user_deals'))) { $data->where('owner_id', $request->user_deals); } else { // User specific condition if (!in_array(auth()->user()->id, [1, 63, 204, 106, 107, 148, 108, 109, 90, 94,188,207,276])) { $data->where('owner_id', auth()->user()->id); } elseif (auth()->user()->id == 148) { $uid = User::find(auth()->user()->id); $data->whereIn('owner_id', explode(',', $uid->team_member)); } } // Date filter if(empty($request->get('production_date'))) { if (!empty($request->get('from')) && !empty($request->get('to'))) { $from = date('Y-m-d', strtotime($request->get('from'))); $to = date('Y-m-d', strtotime($request->get('to'))); Log::debug('Date Range:', ['from' => $request->get('from'), 'to' => $request->get('to')]); $data->where(function ($query) use ($from, $to, $request) { $query->whereBetween(DB::raw('DATE(bd_close_date)'), [$request->get('from'), $request->get('to')]) ->orWhereBetween(DB::raw('DATE(close_date)'), [$request->get('from'), $request->get('to')]); }); } else { $from = now()->startOfMonth()->format('Y-m-d'); $to = now()->endOfMonth()->format('Y-m-d'); Log::debug('Default Date Range:', ['from' => $from, 'to' => $to]); $data->where(function ($query) use ($from, $to) { $query->whereBetween(DB::raw('DATE(bd_close_date)'), [$from, $to]) ->orWhereBetween(DB::raw('DATE(close_date)'), [$from, $to]); }); } }else{ $data->where(DB::raw('DATE(shipping_date)'), [$request->get('production_date')]); } // Domain filter if (!empty($request->get('domain_id'))) { $data->where('domain_id', $request->domain_id); } // Pipeline stage filter $data->where('deal_status', 1) ->where(function ($q) { $q->where('bd_pipeline_stage_id', 4) ->orWhere('pipeline_stage_id', 4); }); // Log the final query $finalQuery = $data->toSql(); Log::debug('Final Query:', ['query' => $finalQuery]); // Paginate results return $data->paginate(50); } public function getProductPrinting(){ $deal_products= new DealProduct(); return $deal_products->getProductPrinting(); } public function pipelinestages(){ return PipelineStage::where('pipeline_id','1')->get(); } public function getStates(){ if(auth()->user()->country_id){ return State::where('country_id',auth()->user()->country_id)->get(); }else{ return State::get(); } } public function DealStats($request){ $data['closed_won'] = Deal::where('deal_status','=',1)->where('pipeline_stage_id','4')->where('designer_status','=','0')->where('production_status','=','0'); if (!empty($request->get('from') && $request->get('to'))) { $data['closed_won']->whereBetween('close_date', [date($request->from), date($request->to)]); // $data['closed_won']->count(); } else { $first = date("Y-m-d", strtotime("1-12-2015"));; $last = date("Y-m-d", strtotime("last day of this month")); $data['closed_won']->whereBetween('close_date', [date($first), date($last)]); // $data['closed_won']->count(); } $deals['closed_won']= $data['closed_won']->count(); $data['designer'] = Deal::where('deal_status','=',1)->where('designer_status','=','1')->where('production_status','=','0')->where('shipping_status','=','0'); if (!empty($request->get('from') && $request->get('to'))) { $data['designer']->whereBetween('close_date', [date($request->from), date($request->to)]); // $data['closed_won']->count(); } else { $first = date("Y-m-d", strtotime("1-12-2015"));; $last = date("Y-m-d", strtotime("last day of this month")); $data['designer']->whereBetween('close_date', [date($first), date($last)]); // $data['closed_won']->count(); } $deals['designer']= $data['designer']->count(); $data['production'] = Deal::where('deal_status','=',1)->where('production_status','=','1')->where('shipping_status','=','0'); if (!empty($request->get('from') && $request->get('to'))) { $data['production']->whereHas('production', function ($queryu) use ($request) { if (!empty($request->get('from') && $request->get('to'))) { $queryu->whereBetween('send_date', [date($request->from), date($request->to)]); } else { $first = date("Y-m-d", strtotime("1-12-2021")); $last = date("Y-m-d", strtotime("last day of this month")); $queryu->whereBetween('send_date', [date($first), date($last)]); } }); // $data['closed_won']->count(); } else { $first = date("Y-m-d", strtotime("1-12-2015"));; $last = date("Y-m-d", strtotime("last day of this month")); $data['production']->whereHas('production', function ($queryu) use ($request) { if (!empty($request->get('from') && $request->get('to'))) { $queryu->whereBetween('send_date', [date($request->from), date($request->to)]); } else { $first = date("Y-m-d", strtotime("1-12-2021")); $last = date("Y-m-d", strtotime("last day of this month")); $queryu->whereBetween('send_date', [date($first), date($last)]); } }); // $data['closed_won']->count(); } $deals['production']= $data['production']->count(); $deals['total_production']=$deals['production'] + $deals['designer']-1; $data['shipping'] = Deal::where('deal_status','=',1)->where('pipeline_stage_id','4')->where('shipping_status','=','1')->where('complete_status' ,'=', '0'); if (!empty($request->get('from') && $request->get('to'))) { $data['shipping']->whereBetween('close_date', [date($request->from), date($request->to)]); // $data['closed_won']->count(); } else { $first = date("Y-m-d", strtotime("1-12-2015"));; $last = date("Y-m-d", strtotime("last day of this month")); $data['shipping']->whereBetween('close_date', [date($first), date($last)]); // $data['closed_won']->count(); } $deals['shipping']= $data['shipping']->count(); $deals['courier'] = Courier::select('*')->with(['courier_deals'=> function($que) use ($request){ if($request->has('deal_name') ) { $que->where('order_number', 'like', $request->deal_name . '%'); } if(!empty($request->get('from') && $request->get('to'))) { $que->whereBetween('shipping_date', [date($request->from) , date($request->to)]); }else{ $first = date("Y-m-d", strtotime("1-12-2021")); $last = date("Y-m-d", strtotime("last day of this month")); $que->whereBetween('shipping_date', [date($first) , date($last)]); } $que->where('complete_status' ,'=', '0'); },'courier_deals.client','courier_deals.tracking'=>function($que) use ($request){ if(!empty($request->get('user_deals') )) { $que->where('courier_id' ,'=', $request->user_deals); } if(!empty($request->get('from') && $request->get('to'))) { $que->whereBetween('shipping_date', [date($request->from) , date($request->to)]); }else{ $first = date("Y-m-d", strtotime("1-12-2021")); $last = date("Y-m-d", strtotime("last day of this month")); $que->whereBetween('shipping_date', [date($first) , date($last)]); } },'courier_deals.dealProducts','courier_deals.dealProducts.product','courier_deals.dealProducts.productstyle'])->where('id','1')->count(); $data['complete'] = Deal::where('deal_status','=',1)->where('pipeline_stage_id','4')->where('complete_status' ,'=', '1'); if (!empty($request->get('from') && $request->get('to'))) { $data['complete']->whereBetween('shipping_date', [date($request->from), date($request->to)]); // $data['closed_won']->count(); } else { $first = date("Y-m-d", strtotime("1-12-2015"));; $last = date("Y-m-d", strtotime("last day of this month")); $data['complete']->whereBetween('shipping_date', [date($first), date($last)]); // $data['closed_won']->count(); } $deals['complete']= $data['complete']->count(); return $deals; } public function ExcelSales($request){ //exit; $data = ExcelSales::select('*')->with(['owner'])->orderBy('id','desc'); if(!empty($request->get('deal_name') )) { $data->where('client_email' ,'like', $request->deal_name.'%'); } if(!empty($request->get('user_deals') )) { $data->where('deal_owner' ,'=', auth()->user()->id); }else{ if(auth()->user()->id!=1 && auth()->user()->id!=63 && auth()->user()->id!=106 && auth()->user()->id!=107&& auth()->user()->id!=108 && auth()->user()->id!=109 && auth()->user()->id!=90 && auth()->user()->id!=207&& auth()->user()->id!=276 && auth()->user()->id!=188 && auth()->user()->id!=106 && auth()->user()->id!=94) { $data->where('deal_owner', '=', auth()->user()->id); } }if(!empty($request->get('from') && $request->get('to'))) { $data->whereBetween('date', [date($request->from) , date($request->to)]); }else{ $first =date("Y-m-d", strtotime("1-12-2021"));; $last = date("Y-m-d", strtotime("last day of this month")); $data->whereBetween('date', [date($first) , date($last)]); } //$data; $datas=$data->paginate(35); return $datas; } public function marketing_sales_report($request){ // echo auth()->user()->id;exit; $data = Deal::select('*')->with([ 'deals', 'client', 'vendor', 'production_details', 'dealProducts', 'dealProducts.product', 'dealProducts.productstyle', 'owner' ]); if (auth()->user()->id == 111) { $data->whereIn('domain_id', ['2', '5', '6']); } $deal_name = $request->get('deal_name'); if (isset($deal_name)) { $data->where('deals.product_id', $deal_name); } if (auth()->user()->id == 148) { $uid = User::where('id', auth()->user()->id)->first(); $data->whereIn('owner_id', explode(',', $uid->team_member)); } if ($request->get('domain')) { $data->where('domain_id', $request->domain); } else { $data->whereIn('domain_id', explode(',', auth()->user()->domains_id)); } if ($request->get('type')) { $data->where('lead_source_id', $request->type); } if (!empty($request->get('from') && $request->get('to'))) { $data->whereBetween('open_date', [ date($request->from), date($request->to) ]); } else { $first = date("Y-m-d", strtotime("first day of this month")); $last = date("Y-m-d", strtotime("last day of this month")); $data->whereBetween('open_date', [ date($first), date($last) ]); } // Apply the orderBy at the end of the query chain $data->orderBy('open_date', 'desc'); $datas = $data->paginate(35); return $datas; } public function GetTeamMember(){ $uid = User::where('id',auth()->user()->id)->first(); return User::whereIn('id',explode(',',$uid->team_member))->orderBy('first_name','asc')->get(); } public function socialLeads($request){ $data = Deal::select('*')->with([ 'client:id,name', 'client.emails:id,model_id,value', 'client.phoneNos:id,model_id,value', 'dealProducts:id,deal_id,product_id,product_style_id,product_length,product_height,product_width,product_measurement_unit_id,product_stock_id,product_color_id', 'dealProducts.product:id,name', 'dealProducts.productstyle:id,name', 'dealProducts.product_unit:id,unit', 'dealProducts.dealProductQuantityAndEstimationAmounts_sigle:id,deal_product_id,deal_product_quantity,deal_product_est_amount,deal_product_amount,receive_able_amount', 'vendor:id,name',])->orderBy('id','desc'); // Filter based on deal_name if present in request if ($request->has('deal_name') && !empty($request->deal_name)) { $data->where(function ($query) use ($request) { $query->whereHas('client', function ($subQuery) use ($request) { $subQuery->where('name', 'like', $request->deal_name . '%'); }) ->orWhereHas('client.emails', function ($subQuery) use ($request) { $subQuery->where('value', 'like', $request->deal_name . '%'); }) ->orWhereHas('client.phoneNos', function ($subQuery) use ($request) { $subQuery->where('value', 'like', $request->deal_name . '%'); }) ->orWhereHas('dealProducts', function ($subQuery) use ($request) { $subQuery->where('order_number', 'like', $request->deal_name . '%') ->orWhere('bd_order_number', 'like', $request->deal_name . '%'); }); }); } if (!empty($request->get('team_member'))) { if (auth()->user()->hasRole('Team Lead') || auth()->user()->hasRole('Manager') || auth()->user()->hasRole('super-admin')|| auth()->user()->hasRole('Sales Data Entry')) { $data->whereIn('owner_id', explode(',', $request->team_member))->where('deal_status', 1); } else { $data->where('deal_status', 1)->where('owner_id', auth()->user()->id)->orderBy('order_number', 'desc'); } }else{ if (auth()->user()->hasRole('Team Lead') || auth()->user()->hasRole('Manager')) { $uid = User::where('id', auth()->user()->id)->first(); $data->whereIn('owner_id', explode(',', $uid->team_member))->where('deal_status', 1)->orderBy('order_number', 'desc'); } else if (auth()->user()->hasRole('super-admin') || auth()->user()->hasRole('sales-social-email-agent') ||auth()->user()->hasRole('social-media')|| auth()->user()->hasRole('Sales Data Entry') ) { $data->where('deal_status', 1)->orderBy('order_number', 'desc'); } else { $data->where('deal_status', 1)->where('owner_id', auth()->user()->id)->orderBy('order_number', 'desc'); } } if($request->pipeline_stage !=4 && $request->pipeline_stage!=5) { if (!empty($request->get('from') && $request->get('to'))) { $f = $request['from']; $t = $request['to']; $data->where(function ($q) use ($f, $t) { $q->where(function ($qs) use ($f, $t) { $qs->where('bd_open_date', '>=', date($f)) ->where('bd_open_date', '<=', date($t)); // Assuming February 2024 for the example })->orWhereBetween('open_date', [date($f), date($t)]); }); } else { $first = date("Y-m-d", strtotime("first day of this month"));; $last = date("Y-m-d", strtotime("last day of this month")); $data->where(function ($q) { $first = date("Y-m-d", strtotime("first day of this month"));; $last = date("Y-m-d", strtotime("last day of this month")); $q->where(function ($qs) { $first = date("Y-m-d", strtotime("first day of this month"));; $last = date("Y-m-d", strtotime("last day of this month")); $qs->where('bd_open_date', '>=', $first) ->where('bd_open_date', '<=', $last); // Assuming February 2024 for the example })->orWhereBetween('open_date', [$first, $last]); }); } }else{ if (!empty($request->get('from') && $request->get('to'))) { $f = $request['from']; $t = $request['to']; $data->where(function ($q) use ($f, $t) { $q->where(function ($qs) use ($f, $t) { $qs->where('bd_close_date', '>=', date($f)) ->where('bd_close_date', '<=', date($t)); // Assuming February 2024 for the example })->orWhereBetween('close_date', [date($f), date($t)]); }); } else { $first = date("Y-m-d", strtotime("first day of this month"));; $last = date("Y-m-d", strtotime("last day of this month")); $data->where(function ($q) { $first = date("Y-m-d", strtotime("first day of this month"));; $last = date("Y-m-d", strtotime("last day of this month")); $q->where(function ($qs) { $first = date("Y-m-d", strtotime("first day of this month"));; $last = date("Y-m-d", strtotime("last day of this month")); $qs->where('bd_close_date', '>=', $first) ->where('bd_close_date', '<=', $last); // Assuming February 2024 for the example })->orWhereBetween('close_date', [$first, $last]); }); } } if(!empty($request->get('domain_id') )) { $data->where('domain_id' ,'=', $request->domain_id); } $lead_source_id= $request->get('lead_source_id'); $data->whereIn('lead_source_id', [6, 15,14]); if(!empty($request->get('pipeline_stage') )) { $data->where('pipeline_stage_id' ,'=', $request->pipeline_stage); } // $data->where('show_follow_up' ,'=', 1); $data=$data->paginate(35); return $data; } public function EmailLeads($request){ $data = Deal::select('*')->with([ 'client:id,name', 'client.emails:id,model_id,value', 'client.phoneNos:id,model_id,value', 'dealProducts:id,deal_id,product_id,product_style_id,product_length,product_height,product_width,product_measurement_unit_id,product_stock_id,product_color_id', 'dealProducts.product:id,name', 'dealProducts.productstyle:id,name', 'dealProducts.product_unit:id,unit', 'dealProducts.dealProductQuantityAndEstimationAmounts_sigle:id,deal_product_id,deal_product_quantity,deal_product_est_amount,deal_product_amount,receive_able_amount', 'vendor:id,name',])->orderBy('id','desc'); // Filter based on deal_name if present in request if ($request->has('deal_name') && !empty($request->deal_name)) { $data->where(function ($query) use ($request) { $query->whereHas('client', function ($subQuery) use ($request) { $subQuery->where('name', 'like', $request->deal_name . '%'); }) ->orWhereHas('client.emails', function ($subQuery) use ($request) { $subQuery->where('value', 'like', $request->deal_name . '%'); }) ->orWhereHas('client.phoneNos', function ($subQuery) use ($request) { $subQuery->where('value', 'like', $request->deal_name . '%'); }) ->orWhereHas('dealProducts', function ($subQuery) use ($request) { $subQuery->where('order_number', 'like', $request->deal_name . '%') ->orWhere('bd_order_number', 'like', $request->deal_name . '%'); }); }); } if (!empty($request->get('team_member'))) { if (auth()->user()->hasRole('Team Lead') || auth()->user()->hasRole('Manager') || auth()->user()->hasRole('super-admin')|| auth()->user()->hasRole('Sales Data Entry')) { $data->whereIn('owner_id', explode(',', $request->team_member))->where('deal_status', 1); } else { $data->where('deal_status', 1)->where('owner_id', auth()->user()->id)->orderBy('order_number', 'desc'); } }else{ if (auth()->user()->hasRole('Team Lead') || auth()->user()->hasRole('Manager')) { $uid = User::where('id', auth()->user()->id)->first(); $data->whereIn('owner_id', explode(',', $uid->team_member))->where('deal_status', 1)->orderBy('order_number', 'desc'); } else if (auth()->user()->hasRole('super-admin') ||auth()->user()->hasRole('email-marketing')||auth()->user()->hasRole('sales-social-email-agent')|| auth()->user()->hasRole('Sales Data Entry') ) { $data->where('deal_status', 1)->orderBy('order_number', 'desc'); } else { $data->where('deal_status', 1)->where('owner_id', auth()->user()->id)->orderBy('order_number', 'desc'); } } if($request->pipeline_stage !=4 && $request->pipeline_stage!=5) { if (!empty($request->get('from') && $request->get('to'))) { $f = $request['from']; $t = $request['to']; $data->where(function ($q) use ($f, $t) { $q->where(function ($qs) use ($f, $t) { $qs->where('bd_open_date', '>=', date($f)) ->where('bd_open_date', '<=', date($t)); // Assuming February 2024 for the example })->orWhereBetween('open_date', [date($f), date($t)]); }); } else { $first = date("Y-m-d", strtotime("first day of this month"));; $last = date("Y-m-d", strtotime("last day of this month")); $data->where(function ($q) { $first = date("Y-m-d", strtotime("first day of this month"));; $last = date("Y-m-d", strtotime("last day of this month")); $q->where(function ($qs) { $first = date("Y-m-d", strtotime("first day of this month"));; $last = date("Y-m-d", strtotime("last day of this month")); $qs->where('bd_open_date', '>=', $first) ->where('bd_open_date', '<=', $last); // Assuming February 2024 for the example })->orWhereBetween('open_date', [$first, $last]); }); } }else{ if (!empty($request->get('from') && $request->get('to'))) { $f = $request['from']; $t = $request['to']; $data->where(function ($q) use ($f, $t) { $q->where(function ($qs) use ($f, $t) { $qs->where('bd_close_date', '>=', date($f)) ->where('bd_close_date', '<=', date($t)); // Assuming February 2024 for the example })->orWhereBetween('close_date', [date($f), date($t)]); }); } else { $first = date("Y-m-d", strtotime("first day of this month"));; $last = date("Y-m-d", strtotime("last day of this month")); $data->where(function ($q) { $first = date("Y-m-d", strtotime("first day of this month"));; $last = date("Y-m-d", strtotime("last day of this month")); $q->where(function ($qs) { $first = date("Y-m-d", strtotime("first day of this month"));; $last = date("Y-m-d", strtotime("last day of this month")); $qs->where('bd_close_date', '>=', $first) ->where('bd_close_date', '<=', $last); // Assuming February 2024 for the example })->orWhereBetween('close_date', [$first, $last]); }); } } if(!empty($request->get('domain_id') )) { $data->where('domain_id' ,'=', $request->domain_id); } $lead_source_id= $request->get('lead_source_id'); $data->where('lead_source_id' ,'=', 10); if(!empty($request->get('pipeline_stage') )) { $data->where('pipeline_stage_id' ,'=', $request->pipeline_stage); } // $data->where('show_follow_up' ,'=', 1); $data=$data->paginate(35); return $data; } public function SalesReport($request){ $data = Deal::select('*')->with([ 'client:id,name', 'client.emails:id,model_id,value', 'client.phoneNos:id,model_id,value', 'dealProducts:id,deal_id,product_id,product_style_id,product_length,product_height,product_width,product_measurement_unit_id,product_stock_id,product_color_id', 'dealProducts.product:id,name', 'dealProducts.productstyle:id,name', 'dealProducts.product_unit:id,unit', 'dealProducts.dealProductQuantityAndEstimationAmounts_sigle:id,deal_product_id,deal_product_quantity,deal_product_est_amount,deal_product_amount,receive_able_amount', 'vendor:id,name',])->orderBy('id','desc'); // Filter based on deal_name if present in request if ($request->has('deal_name') && !empty($request->deal_name)) { $data->where(function ($query) use ($request) { $query->whereHas('client', function ($subQuery) use ($request) { $subQuery->where('name', 'like', $request->deal_name . '%'); }) ->orWhereHas('client.emails', function ($subQuery) use ($request) { $subQuery->where('value', 'like', $request->deal_name . '%'); }) ->orWhereHas('client.phoneNos', function ($subQuery) use ($request) { $subQuery->where('value', 'like', $request->deal_name . '%'); }) ->orWhereHas('dealProducts', function ($subQuery) use ($request) { $subQuery->where('order_number', 'like', $request->deal_name . '%') ->orWhere('bd_order_number', 'like', $request->deal_name . '%'); }); }); } if (!empty($request->get('team_member'))) { if (auth()->user()->hasRole('Team Lead') || auth()->user()->hasRole('Manager') || auth()->user()->hasRole('super-admin')|| auth()->user()->hasRole('Sales Data Entry')) { $data->whereIn('owner_id', explode(',', $request->team_member))->where('deal_status', 1); } else { $data->where('deal_status', 1)->where('owner_id', auth()->user()->id)->orderBy('order_number', 'desc'); } }else{ if (auth()->user()->hasRole('Team Lead') || auth()->user()->hasRole('Manager')) { $uid = User::where('id', auth()->user()->id)->first(); $data->whereIn('owner_id', explode(',', $uid->team_member))->where('deal_status', 1)->orderBy('order_number', 'desc'); } else if (auth()->user()->hasRole('super-admin')|| auth()->user()->hasRole('Sales Data Entry') ) { $data->where('deal_status', 1)->orderBy('order_number', 'desc'); } else { $data->where('deal_status', 1)->where('owner_id', auth()->user()->id)->orderBy('order_number', 'desc'); } } if($request->pipeline_stage !=4 && $request->pipeline_stage!=5) { if (!empty($request->get('from') && $request->get('to'))) { $f = $request['from']; $t = $request['to']; $data->where(function ($q) use ($f, $t) { $q->where(function ($qs) use ($f, $t) { $qs->where('bd_open_date', '>=', date($f)) ->where('bd_open_date', '<=', date($t)); // Assuming February 2024 for the example })->orWhereBetween('open_date', [date($f), date($t)]); }); } else { $first = date("Y-m-d", strtotime("first day of this month"));; $last = date("Y-m-d", strtotime("last day of this month")); $data->where(function ($q) { $first = date("Y-m-d", strtotime("first day of this month"));; $last = date("Y-m-d", strtotime("last day of this month")); $q->where(function ($qs) { $first = date("Y-m-d", strtotime("first day of this month"));; $last = date("Y-m-d", strtotime("last day of this month")); $qs->where('bd_open_date', '>=', $first) ->where('bd_open_date', '<=', $last); // Assuming February 2024 for the example })->orWhereBetween('open_date', [$first, $last]); }); } }else{ if (!empty($request->get('from') && $request->get('to'))) { $f = $request['from']; $t = $request['to']; $data->where(function ($q) use ($f, $t) { $q->where(function ($qs) use ($f, $t) { $qs->where('bd_close_date', '>=', date($f)) ->where('bd_close_date', '<=', date($t)); // Assuming February 2024 for the example })->orWhereBetween('close_date', [date($f), date($t)]); }); } else { $first = date("Y-m-d", strtotime("first day of this month"));; $last = date("Y-m-d", strtotime("last day of this month")); $data->where(function ($q) { $first = date("Y-m-d", strtotime("first day of this month"));; $last = date("Y-m-d", strtotime("last day of this month")); $q->where(function ($qs) { $first = date("Y-m-d", strtotime("first day of this month"));; $last = date("Y-m-d", strtotime("last day of this month")); $qs->where('bd_close_date', '>=', $first) ->where('bd_close_date', '<=', $last); // Assuming February 2024 for the example })->orWhereBetween('close_date', [$first, $last]); }); } } if(!empty($request->get('domain_id') )) { $data->where('domain_id' ,'=', $request->domain_id); } $lead_source_id= $request->get('lead_source_id'); if(isset($lead_source_id)) { $data->where('lead_source_id' ,'=', $request->lead_source_id); } if(!empty($request->get('pipeline_stage') )) { $data->where('pipeline_stage_id' ,'=', $request->pipeline_stage); } // $data->where('show_follow_up' ,'=', 1); $data=$data->paginate(35); return $data; } public function estimationsLeads($request){ $data = Deal::select('*')->with([ 'client:id,name', 'client.emails:id,model_id,value', 'client.phoneNos:id,model_id,value', 'dealProducts:id,deal_id,product_id,product_style_id,product_length,product_height,product_width,product_measurement_unit_id,product_stock_id,product_color_id', 'dealProducts.product:id,name', 'dealProducts.productstyle:id,name', 'dealProducts.product_unit:id,unit', 'dealProducts.dealProductQuantityAndEstimationAmounts_sigle:id,deal_product_id,deal_product_quantity,deal_product_est_amount,deal_product_amount,receive_able_amount', 'vendor:id,name', 'estimator' => function ($query) { $query->select('id', 'first_name', 'last_name'); } ]) ->orderBy('id','desc'); // Filter based on deal_name if present in request if ($request->has('deal_name') && !empty($request->deal_name)) { $data->where(function ($query) use ($request) { $query->whereHas('client', function ($subQuery) use ($request) { $subQuery->where('name', 'like', $request->deal_name . '%'); }) ->orWhereHas('client.emails', function ($subQuery) use ($request) { $subQuery->where('value', 'like', $request->deal_name . '%'); }) ->orWhereHas('client.phoneNos', function ($subQuery) use ($request) { $subQuery->where('value', 'like', $request->deal_name . '%'); }) ->orWhereHas('dealProducts', function ($subQuery) use ($request) { $subQuery->where('order_number', 'like', $request->deal_name . '%') ->orWhere('bd_order_number', 'like', $request->deal_name . '%'); }); }); } if (!empty($request->get('team_member'))) { if (auth()->user()->hasRole('Team Lead') || auth()->user()->hasRole('Manager') || auth()->user()->hasRole('super-admin')|| auth()->user()->hasRole('Sales Data Entry')) { $data->whereIn('owner_id', explode(',', $request->team_member))->where('deal_status', 1); } else { $data->where('deal_status', 1)->where('owner_id', auth()->user()->id)->orderBy('order_number', 'desc'); } }else{ if (auth()->user()->hasRole('Team Lead') || auth()->user()->hasRole('Manager')) { $uid = User::where('id', auth()->user()->id)->first(); $data->whereIn('owner_id', explode(',', $uid->team_member))->where('deal_status', 1)->orderBy('order_number', 'desc'); } else if (auth()->user()->hasRole('super-admin')|| auth()->user()->hasRole('Sales Data Entry') ) { $data->where('deal_status', 1)->orderBy('order_number', 'desc'); } else { $data->where('deal_status', 1)->where('owner_id', auth()->user()->id)->orderBy('order_number', 'desc'); } } if($request->pipeline_stage !=4 && $request->pipeline_stage!=5) { if (!empty($request->get('from') && $request->get('to'))) { $f = $request['from']; $t = $request['to']; $data->where(function ($q) use ($f, $t) { $q->where(function ($qs) use ($f, $t) { $qs->where('bd_open_date', '>=', date($f)) ->where('bd_open_date', '<=', date($t)); // Assuming February 2024 for the example })->orWhereBetween('open_date', [date($f), date($t)]); }); } else { $first = date("Y-m-d", strtotime("first day of this month"));; $last = date("Y-m-d", strtotime("last day of this month")); $data->where(function ($q) { $first = date("Y-m-d", strtotime("first day of this month"));; $last = date("Y-m-d", strtotime("last day of this month")); $q->where(function ($qs) { $first = date("Y-m-d", strtotime("first day of this month"));; $last = date("Y-m-d", strtotime("last day of this month")); $qs->where('bd_open_date', '>=', $first) ->where('bd_open_date', '<=', $last); // Assuming February 2024 for the example })->orWhereBetween('open_date', [$first, $last]); }); } }else{ if (!empty($request->get('from') && $request->get('to'))) { $f = $request['from']; $t = $request['to']; $data->where(function ($q) use ($f, $t) { $q->where(function ($qs) use ($f, $t) { $qs->where('bd_close_date', '>=', date($f)) ->where('bd_close_date', '<=', date($t)); // Assuming February 2024 for the example })->orWhereBetween('close_date', [date($f), date($t)]); }); } else { $first = date("Y-m-d", strtotime("first day of this month"));; $last = date("Y-m-d", strtotime("last day of this month")); $data->where(function ($q) { $first = date("Y-m-d", strtotime("first day of this month"));; $last = date("Y-m-d", strtotime("last day of this month")); $q->where(function ($qs) { $first = date("Y-m-d", strtotime("first day of this month"));; $last = date("Y-m-d", strtotime("last day of this month")); $qs->where('bd_close_date', '>=', $first) ->where('bd_close_date', '<=', $last); // Assuming February 2024 for the example })->orWhereBetween('close_date', [$first, $last]); }); } } if(!empty($request->get('domain_id') )) { $data->where('domain_id' ,'=', $request->domain_id); } $lead_source_id= $request->get('lead_source_id'); if(isset($lead_source_id)) { $data->where('lead_source_id' ,'=', $request->lead_source_id); } if(!empty($request->get('pipeline_stage') )) { $data->where('pipeline_stage_id' ,'=', $request->pipeline_stage); } $data->where('estimation' ,'=',3); $data=$data->paginate(35); return $data; } public function ProductionReport($request) { // Select required fields and eager load related data with conditions $data = Deal::select('id', 'order_number', 'client_id', 'owner_id', 'production_status', 'designer_status', 'bd_pipeline_stage_id', 'pipeline_stage_id', 'shipping_status') ->with([ 'client:id,name', 'client.emails:id,model_id,value', 'client.phoneNos:id,model_id,value', 'dealProducts:id,deal_id,product_id,product_style_id,product_length,product_height,product_width,product_measurement_unit_id,product_stock_id,product_color_id', 'dealProducts.product:id,name', 'dealProducts.productstyle:id,name', 'dealProducts.product_unit:id,unit', 'dealProducts.dealProductQuantityAndEstimationAmounts_sigle:id,deal_product_id,deal_product_quantity,deal_product_est_amount,deal_product_amount,receive_able_amount', 'vendor:id,name', 'production_details:id,deal_id,tframe,send_date,expected_receiving_date,receiving_date,qty' ]) ->orderBy('id', 'desc'); // Filter based on deal_name if present in request if ($request->has('deal_name') && !empty($request->deal_name)) { $data->where(function ($query) use ($request) { $query->whereHas('client', function ($subQuery) use ($request) { $subQuery->where('name', 'like', $request->deal_name . '%'); }) ->orWhereHas('client.emails', function ($subQuery) use ($request) { $subQuery->where('value', 'like', $request->deal_name . '%'); }) ->orWhereHas('client.phoneNos', function ($subQuery) use ($request) { $subQuery->where('value', 'like', $request->deal_name . '%'); }) ->orWhereHas('dealProducts', function ($subQuery) use ($request) { $subQuery->where('order_number', 'like', $request->deal_name . '%') ->orWhere('bd_order_number', 'like', $request->deal_name . '%'); }); }); } // Filter based on user_deals if present in request if ($request->has('user_deals') && !empty($request->user_deals)) { $data->where('owner_id', '=', $request->user_deals); } else { if (!in_array(auth()->user()->id, [1, 63, 207, 276, 188, 106, 90, 148, 107, 108, 109, 94])) { $data->where('owner_id', '=', auth()->user()->id); } } // Filter by production_details date range $data->whereHas('production_details', function ($query) use ($request) { $from = $request->has('from') ? Carbon::parse($request->from)->startOfDay() : Carbon::now()->startOfMonth(); $to = $request->has('to') ? Carbon::parse($request->to)->endOfDay() : Carbon::now()->endOfMonth(); $query->whereBetween('receiving_date', [$from, $to]); }); // Additional filters based on pipeline and production status $data->where('shipping_status', '=', '1') ->where(function ($query) { $query->where('production_status', '=', 1) ->where('designer_status', '=', 1); }) ->where(function ($query) { $query->where(function ($subQuery) { $subQuery->where('bd_pipeline_stage_id', '=', 4) ->where('pipeline_stage_id', '=', 5); })->orWhere('pipeline_stage_id', '=', 4); }); // Paginate results $data = $data->paginate(35); return $data; } public function ShippingReport($request){ $data = Deal::select('id', 'order_number', 'client_id', 'owner_id', 'production_status', 'designer_status', 'bd_pipeline_stage_id', 'pipeline_stage_id', 'shipping_status') ->with([ 'client:id,name', 'client.emails:id,model_id,value', 'client.phoneNos:id,model_id,value', 'dealProducts:id,deal_id,product_id,product_style_id,product_length,product_height,product_width,product_measurement_unit_id,product_stock_id,product_color_id', 'dealProducts.product:id,name', 'dealProducts.productstyle:id,name', 'dealProducts.product_unit:id,unit', 'dealProducts.dealProductQuantityAndEstimationAmounts_sigle:id,deal_product_id,deal_product_quantity,deal_product_est_amount,deal_product_amount,receive_able_amount', 'vendor:id,name', 'production_details:id,deal_id,tframe,send_date,expected_receiving_date,receiving_date,qty' ]) ->orderBy('id', 'desc'); if ($request->has('deal_name') && !empty($request->deal_name)) { $data->where(function ($query) use ($request) { $query->whereHas('client', function ($subQuery) use ($request) { $subQuery->where('name', 'like', $request->deal_name . '%'); }) ->orWhereHas('client.emails', function ($subQuery) use ($request) { $subQuery->where('value', 'like', $request->deal_name . '%'); }) ->orWhereHas('client.phoneNos', function ($subQuery) use ($request) { $subQuery->where('value', 'like', $request->deal_name . '%'); }) ->orWhereHas('dealProducts', function ($subQuery) use ($request) { $subQuery->where('order_number', 'like', $request->deal_name . '%') ->orWhere('bd_order_number', 'like', $request->deal_name . '%'); }); }); } if(!empty($request->get('user_deals') )) { $data->where('owner_id' ,'=', $request->user_deals); }else{ if(auth()->user()->id!=1 && auth()->user()->id!=63 && auth()->user()->id!=207 && auth()->user()->id!=276 && auth()->user()->id!=188 && auth()->user()->id!=106 && auth()->user()->id!=90 && auth()->user()->id!=106 && auth()->user()->id!=94 && auth()->user()->id!=107 && auth()->user()->id!=108 && auth()->user()->id!=109 ) { $data->where('owner_id', '=', auth()->user()->id); } } //if (!empty($request->get('from') && $request->get('to'))) { $data->whereHas('tracking_details', function ($queryu) use ($request) { if (!empty($request->get('from') && $request->get('to'))) { $queryu->whereBetween('shipping_date', [date($request->from), date($request->to)]); } else { $first = date("Y-m-d", strtotime("first day of this month")); $last = date("Y-m-d", strtotime("last day of this month")); $queryu->whereBetween('shipping_date', [date($first), date($last)]); } });//} $data->where('complete_status','=','0'); //$data->where('production_status','=','1')->where('deal_status','=','1')->where('shipping_status','=','0')->orWhere('designer_status','=','1'); $data->where(function ($quer){ $quer->where('shipping_status','=',1) ->orWhere('delivery_status','=',1); })->where(function ($q){ $q->where(function ($qs){ $qs->where('bd_pipeline_stage_id','=',4)->where('pipeline_stage_id','=',5); })->orWhere('pipeline_stage_id','=',4); }); $data=$data->paginate(35); return $data; } public function ReorderList($request){ if(auth()->user()->hasRole('Team Lead')){ $uid = User::where('id',auth()->user()->id)->first(); $data = Deal::select('*')->with(['deals', 'client', 'dealProducts', 'dealProducts.product', 'dealProducts.productstyle'])->orderBy('client_id', 'desc'); if ($request->has('deal_name')) { $data->whereHas('client', function ($queryu) use ($request) { $queryu->where('name', 'like', $request->deal_name . '%')->orWhere(function ($ques) use ($request) { $ques->whereHas('clientDetails', function ($queryu) use ($request) { $queryu->where('value', 'like', $request->deal_name . '%')->orWhere(function ($ques) use ($request) { $ques->where('order_number', 'like', $request->deal_name . '%'); }); }); }); }); } if(!empty($request->get('user_deals') )) { $data->where('owner_id' ,'=', $request->user_deals); }else{ if(auth()->user()->hasRole('Team Lead')){ $uid = User::where('id',auth()->user()->id)->first(); $data->whereIn('owner_id', explode(',',$uid->team_member)); }else { if (auth()->user()->id != 1 && auth()->user()->id != 94) { $data->where('owner_id', '=', auth()->user()->id); } } } if (!empty($request->get('from') && $request->get('to'))) { $data->whereBetween('close_date', [date($request->from), date($request->to)]); } else { $first = date("Y-m-d", strtotime("first day of this month"));; $last = date("Y-m-d", strtotime("last day of this month")); $data->whereBetween('close_date', [date($first), date($last)]); } $data->where('deal_status', '=', '1'); $data->where('deal_type_id', '=', '1'); $data->where(function ($q) { $q->where(function ($qs) { $qs->where('bd_pipeline_stage_id', '=', 4); })->orWhere('pipeline_stage_id', '=', 4); }); $data->orderBy('client_id','ASC'); //$data; $deal = $data->paginate(35); return $deal; } else if (auth()->user()->hasRole('super-admin')){ $data = Deal::select('*')->with(['deals', 'client', 'dealProducts', 'dealProducts.product', 'dealProducts.productstyle'])->orderBy('client_id', 'desc'); if ($request->has('deal_name')) { $data->whereHas('client', function ($queryu) use ($request) { $queryu->where('name', 'like', $request->deal_name . '%')->orWhere(function ($ques) use ($request) { $ques->whereHas('clientDetails', function ($queryu) use ($request) { $queryu->where('value', 'like', $request->deal_name . '%')->orWhere(function ($ques) use ($request) { $ques->where('order_number', 'like', $request->deal_name . '%'); }); }); }); }); } if (!empty($request->get('user_deals'))) { $data->where('owner_id', '=', $request->user_deals); } else { if (auth()->user()->id != 1 && auth()->user()->id != 90 && auth()->user()->id != 94) { $data->where('owner_id', '=', auth()->user()->id); } } if (!empty($request->get('from') && $request->get('to'))) { $data->whereBetween('close_date', [date($request->from), date($request->to)]); } else { $first = date("Y-m-d", strtotime("1-12-2021"));; $last = date("Y-m-d", strtotime("last day of this month")); $data->whereBetween('close_date', [date($first), date($last)]); } $data->where('deal_status', '=', '1'); $data->where('deal_type_id', '=', '1'); $data->where(function ($q) { $q->where(function ($qs) { $qs->where('bd_pipeline_stage_id', '=', 4); })->orWhere('pipeline_stage_id', '=', 4); }); ; //$data; $deal = $data->paginate(35); return $deal; }else{ $data = Deal::select('*')->with(['deals', 'client', 'dealProducts', 'dealProducts.product', 'dealProducts.productstyle'])->orderBy('open_date', 'desc'); if ($request->has('deal_name')) { $data->whereHas('client', function ($queryu) use ($request) { $queryu->where('name', 'like', $request->deal_name . '%')->orWhere(function ($ques) use ($request) { $ques->whereHas('clientDetails', function ($queryu) use ($request) { $queryu->where('value', 'like', $request->deal_name . '%')->orWhere(function ($ques) use ($request) { $ques->where('order_number', 'like', $request->deal_name . '%'); }); }); }); }); } if (!empty($request->get('user_deals'))) { $data->where('owner_id', '=', $request->user_deals); } else { if (auth()->user()->id != 1 && auth()->user()->id != 90 && auth()->user()->id != 94) { $data->where('owner_id', '=', auth()->user()->id); } } if (!empty($request->get('from') && $request->get('to'))) { $data->whereBetween('close_date', [date($request->from), date($request->to)]); } else { $first = date("Y-m-d", strtotime("1-12-2021"));; $last = date("Y-m-d", strtotime("last day of this month")); $data->whereBetween('close_date', [date($first), date($last)]); } $data->where('deal_status', '=', '1'); $data->where('deal_type_id', '=', '1'); $data->where('owner_id',auth()->user()->id); $data->where(function ($q) { $q->where(function ($qs) { $qs->where('bd_pipeline_stage_id', '=', 4); })->orWhere('pipeline_stage_id', '=', 4); }); //$data; $deal = $data->paginate(500); return $deal; } } }
Close