public static function dc_addition($id) { //get the delivery object $delivery_object = DB::table('tb_request_delivery')->where('id', $id)->first(); $user_id = \SiteHelpers::getUserIdFromCustomerId($delivery_object->cid); DB::table('tb_request_delivery')->where('id', $id)->update(['parcel_delivery_code' => \SiteHelpers::delivery_code($user_id)]); }
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) { $bill_amount = $bill[0]->bill; //refund now if (\SiteHelpers::is_payg_customer()) { 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_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(); } }
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(); } }
public static function billing_account_types($cid, $bill) { $uid = SiteHelpers::getUserIdFromCustomerId($cid); $account_type = DB::table('tb_customers')->where('id', $cid)->pluck('account_type'); if ($account_type == 4) { //subtract costs of delivery from payg account $paygbalance = DB::table('tb_payg_balance')->where('user_id', $uid)->pluck('balance'); $newpaygbalance = $paygbalance - $bill; DB::table('tb_payg_balance')->where('user_id', $uid)->update(['balance' => $newpaygbalance]); } }