So, I am trying to add 3 more columns to the already existing table by fetching data from MongoDB. But, it’s giving me a headache.
Code in Controller:
public function checkPendingPickups(){
$last2DaysDate = date('Y-m-d', strtotime(date('Y-m-d').' -30 days'));
$orderids = AppModelsCart::where('created_at','>=',new DateTime($last2DaysDate))->whereIn('order_status',['open'])->whereNotIn('cancel_by',['system','customer'])->whereNotIn('status',['-1'])->lists('order_id')->toArray();
$receivedOrders = $this->packageService->receivedOrders($last2DaysDate);
$receviedNDocketNoUpdatedOrders = $this->packageService->getOrdersNotDeliveredDocketStatus($receivedOrders);
if(!empty($receviedNDocketNoUpdatedOrders)){
$allOrderids = array_merge($receviedNDocketNoUpdatedOrders,$orderids);
$allOrderids = array_unique($allOrderids);
}else{
$allOrderids = array_unique($orderids);
}
if(!empty($allOrderids)){
echo '<table>';
echo '<tr>';
echo ' <th>Pickup Number </th>';
echo ' <th>Pickup Date </th>';
echo ' <th>Docket Number</th>';
echo ' <th>Carrier Name</th>';
echo ' <th>Account Name</th>';
echo ' <th>Docket Status</th>';
echo ' <th>Order Date </th>';
echo ' <th>Sender Pincode </th>';
echo ' <th>Sender Phone Number </th>';
echo ' <th>Sender Pickup State </th>';
echo '</tr>';
foreach ($allOrderids as $oid){
// $last2MonthsDate = date('Y-m-d', strtotime(date('Y-m-d').' -2 month'));
$cartsData = AppModelsCart::where('order_id',(int)$oid)->where('created_at','>=',new DateTime($last2DaysDate))->whereIn('order_status',['open'])->whereNotIn('cancel_by',['system','customer'])->whereNotIn('status',['-1'])->get()->toArray();
$order = AppModelsOrder::where('_id',(int)$oid)->select('created_at')->first();
if(!empty($cartsData)){
foreach ($cartsData as $value){
if(!isset($value['courier_code']) || !isset($value['tracking_no'])){
//check for package couriers
$packageIds = AppModelsPackage::where('order_id',(int)$value['order_id'])->lists('_id')->toArray();
if(!empty($packageIds)){
$shippingData = AppModelsShippingPackages::where('carrier','courier')->whereIn('package_id',array_map('intval',$packageIds))->get()->toArray();
if(!empty($shippingData)){
foreach ($shippingData as $shippingValue){
$genieData = AppModelsGenie::where('_id',(int)$value['customer_id'])->select('name')->first();
$OrderTrackingData = AppModelsOrderTracking::where('order_id',(int)$value['order_id'])->where('docket_num' , $shippingValue['docket_num'])->select('status')->first();
$pickup_number = isset($shippingValue['pickup_num'])?$shippingValue['pickup_num']:"Not Available";
$pickup_date = isset($shippingValue['pickup_date'])?$shippingValue['pickup_date']:"Not Available";
$doeckt_number = isset($shippingValue['docket_num'])?$shippingValue['docket_num']:"Not Available";
$carrier_name = isset($shippingValue['courier_name'])?$shippingValue['courier_name']:"Not Available";
$account_name = isset($genieData['name'])?$genieData['name']:"Not Available";
$status = isset($OrderTrackingData['status'])?$OrderTrackingData['status']:"Not Available";
echo '<tr><td>' . $pickup_number . ' </td><td>' . $pickup_date . ' </td><td>' . $doeckt_number .
' </td><td>' . $carrier_name . ' </td><td>' . $account_name . ' </td><td>' . $status .' </td><td>' . date("d/m/Y", strtotime($order['created_at'])) . ' </td></tr>';
}// close of foreach
}
}
}else{
$genieData = AppModelsGenie::where('_id',(int)$value['customer_id'])->select('name')->first();
$OrderTrackingData = AppModelsOrderTracking::where('order_id',(int)$value['order_id'])->where('docket_num' , $value['tracking_no'])->select('status')->first();
$pickup_number = isset($value['pickup_num'])?$value['pickup_num']:"Not Available";
$pickup_date = isset($value['pickup_date'])?$value['pickup_date']:"Not Available";
$doeckt_number = isset($value['tracking_no'])?$value['tracking_no']:"Not Available";
$carrier_name = isset($value['courier_code'])?$value['courier_code']:"Not Available";
$account_name = isset($genieData['name'])?$genieData['name']:"Not Available";
$status = isset($OrderTrackingData['status'])?$OrderTrackingData['status']:"Not Available";
echo '<tr><td>' . $pickup_number . ' </td><td>' . $pickup_date . ' </td><td>' . $doeckt_number .
' </td><td>' . $carrier_name . ' </td><td>' . $account_name . ' </td><td>' . $status .' </td><td>' . date("d/m/Y", strtotime($order['created_at'])) . ' </td></tr>';
}
}
}
}
echo '</table>';
}
}
What are the required changes I should do in this existing code to add the three columns which are Sender Pincode, Sender Phone Number & Sender Pickup Address.
Am I supposed to make any changes in MongoDB? Please help.