public static function delete_action($ids)
 {
     foreach ($ids as $id) {
         //get the customer ID and User ID
         $delivery_object = DB::table('tb_request_delivery')->where('id', $id)->first();
         $customer_id = $delivery_object->cid;
         $user_id = \SiteHelpers::getUserIdFromCustomerId($customer_id);
         $bill = DB::table('tb_bills')->where('delivery_id', $id)->get();
         if (count($bill) == 1 && $delivery_object->status == 1) {
             $bill_amount = $bill[0]->bill;
             //refund now
             if (\SiteHelpers::is_payg_customer($user_id)) {
                 DB::table('tb_payg_balance')->where('user_id', $user_id)->increment('balance', $bill_amount);
                 //remove the bill
                 self::remove_bills($id);
             }
         }
     }
 }
 function postSave(Request $request)
 {
     $rules = $this->validateForm();
     $validator = Validator::make($request->all(), $rules);
     if ($validator->passes()) {
         $data = $this->validatePost('tb_getdeliveries');
         //for Platinum, Gold, Silver customers ensure that their limit has not been reached for the selected date
         if (!\SiteHelpers::is_payg_customer(\SiteHelpers::getUserIdFromCustomerId($request->input('cid'))) && !\SiteHelpers::check_daily_limit(\SiteHelpers::getUserIdFromCustomerId($request->input('cid'), $request->input('prefered_date_of_delivery')))) {
             return Redirect::to('getdeliveries?return=' . self::returnUrl())->with('messagetext', 'This user has exceeded his/her daily limit for ' . $request->input('prefered_date_of_delivery'))->with('msgstatus', 'error')->withErrors($validator)->withInput();
         }
         //ensure the delivery is made at the right time
         //dd(\SiteHelpers::check_cut_off_time($request->input('parcel_delivery_priority')));
         if (!\SiteHelpers::check_cut_off_time($request->input('parcel_delivery_priority'), $request->input('parcel_pickup_zone'), $request->input('parcel_dropoff_zone'))) {
             return Redirect::to('getdeliveries?return=' . self::returnUrl())->with('messagetext', 'You cannot make delivery requests at this time')->with('msgstatus', 'error')->withErrors($validator)->withInput();
         }
         //add delivery
         $id = $this->model->insertRow($data, $request->input('id'));
         if ($request->input('id') == '') {
             if (\SiteHelpers::is_payg_customer(\SiteHelpers::getUserIdFromCustomerId($request->input('cid')))) {
                 $bill = \SiteHelpers::calc_delivery_fee($request->input('parcel_delivery_code'));
                 //dd($bill);
                 $this->model->add_bill($id, $bill, $request->input('cid'), 'initial');
                 \SiteHelpers::billing_account_types($request->input('cid'), $bill);
             } else {
                 //set the limit table
                 \SiteHelpers::set_deliver_count_for_limit($request->input('cid'), $id, $request->input('prefered_date_of_delivery'));
             }
         }
         if (!is_null($request->input('apply'))) {
             $return = 'getdeliveries/update/' . $id . '?return=' . self::returnUrl();
         } else {
             $return = 'getdeliveries?return=' . self::returnUrl();
         }
         // Insert logs into database
         if ($request->input('id') == '') {
             \SiteHelpers::auditTrail($request, 'New Data with ID ' . $id . ' Has been Inserted !');
         } else {
             \SiteHelpers::auditTrail($request, 'Data with ID ' . $id . ' Has been Updated !');
         }
         $notif = array('url' => url('/viewdeliveries'), 'userid' => '5', 'title' => 'New Delivery Request', 'note' => 'Hi Admin. A user just sent in a delivery request. Have a look.');
         \SximoHelpers::storeNote($notif);
         return Redirect::to($return)->with('messagetext', \Lang::get('core.note_success'))->with('msgstatus', 'success');
     } else {
         return Redirect::to('getdeliveries/update/' . $id)->with('messagetext', \Lang::get('core.note_error'))->with('msgstatus', 'error')->withErrors($validator)->withInput();
     }
 }
            </tr>
            </thead>
            <tbody class="no-border-y">
            <?php 
foreach ($deliveries as $record) {
    ?>
            <tr>
                <td>{!! $record['parcel_pickup_location'] !!}</td>
                <td>{!! $record['pickup_time'] !!}</td>
                <td>{!! $record['parcel_type'] !!} / {!! $record['parcel_weight'] !!}kg</td>
                <td>{!! $record['parcel_content'] !!}</td>
                <td>{!! $record['parcel_dropoff_location'] !!}</td>
                <td>{!! $record['dropoff_contact_name'] !!} / {!! $record['dropoff_contact'] !!}</td>
                <td>{!! $record['dropoff_time'] !!}</td>
                <?php 
    if (SiteHelpers::is_payg_customer()) {
        ?>
                <td class="text-right">
                    <?php 
        echo SiteHelpers::get_delivery_price($record['id']);
        ?>
                </td>
                <?php 
    }
    ?>
            </tr>
            <?php 
}
?>
            </tbody>
        </table>
 function postSave(Request $request)
 {
     $rules = $this->validateForm();
     $validator = Validator::make($request->all(), $rules);
     if ($validator->passes()) {
         $data = $this->validatePost('tb_viewdeliveries');
         //for Other customers ensure that their limit has not been reached for the selected date
         if (!\SiteHelpers::is_payg_customer(\SiteHelpers::getUserIdFromCustomerId($request->input('cid'))) && \SiteHelpers::check_daily_limit(\SiteHelpers::getUserIdFromCustomerId($request->input('cid'), $request->input('prefered_date_of_delivery')))) {
             return Redirect::to('viewdeliveries?return=' . self::returnUrl())->with('messagetext', 'This user has exceeded his/her daily limit for ' . $request->input('prefered_date_of_delivery'))->with('msgstatus', 'error')->withErrors($validator)->withInput();
         }
         //ensure the delivery is made at the right time
         if (!\SiteHelpers::check_cut_off_time($request->input('parcel_delivery_priority'), $request->input('parcel_pickup_zone'), $request->input('parcel_dropoff_zone'))) {
             return Redirect::to('viewdeliveries?return=' . self::returnUrl())->with('messagetext', 'You cannot make delivery requests at this time')->with('msgstatus', 'error')->withErrors($validator)->withInput();
         }
         //add delivery
         $id = $this->model->insertRow($data, $request->input('id'));
         //update the delivery code using userid
         $this->model->dc_addition($id);
         if ($request->input('id') == '') {
             $delCode = $this->model->get_parcel_delivery_code($id);
             if (\SiteHelpers::is_payg_customer(\SiteHelpers::getUserIdFromCustomerId($request->input('cid')))) {
                 $bill = \SiteHelpers::calc_delivery_fee($delCode);
                 $this->model->add_bill($id, $bill, $request->input('cid'), 'initial');
                 \SiteHelpers::billing_account_types($request->input('cid'), $bill);
             } else {
                 //set the limit table
                 \SiteHelpers::set_deliver_count_for_limit($request->input('cid'), $id, $request->input('prefered_date_of_delivery'));
             }
         }
         //if the delivery is returned
         if ($request->input('status') == '4') {
             if (\SiteHelpers::is_payg_customer(\SiteHelpers::getUserIdFromCustomerId($request->input('cid')))) {
                 $this->model->add_returned_bill($request->input('id'));
                 \SiteHelpers::billing_account_types($request->input('cid'), $this->model->add_returned_bill($request->input('id'), true));
             }
             /*else{
                   \SiteHelpers::set_deliver_count_for_limit($request->input('cid'),$id,$request->input('prefered_date_of_delivery'),'1');
               }*/
         }
         if (!is_null($request->input('apply'))) {
             $return = 'viewdeliveries/update/' . $id . '?return=' . self::returnUrl();
         } else {
             $return = 'viewdeliveries?return=' . self::returnUrl();
         }
         // Insert logs into database
         if ($request->input('id') == '') {
             \SiteHelpers::auditTrail($request, 'New Data with ID ' . $id . ' Has been Inserted !');
         } else {
             \SiteHelpers::auditTrail($request, 'Data with ID ' . $id . ' Has been Updated !');
         }
         return Redirect::to($return)->with('messagetext', \Lang::get('core.note_success'))->with('msgstatus', 'success');
     } else {
         return Redirect::to('viewdeliveries/update/' . $id)->with('messagetext', \Lang::get('core.note_error'))->with('msgstatus', 'error')->withErrors($validator)->withInput();
     }
 }