i want this code should not be run if user call upate route code
if($getDistanceValue * 1000 > 300){
if($chk_ord == 0)
{
$order->chk_ord_vst = 1;
}
elseif($chk_ord != 0){
$order->chk_ord_vst = $chk_ord + 1;
}
}
elseif($getDistanceValue * 1000 <= 300 ){
if($chk_ord >= 4){
$order->chk_ord_vst = 2;
}
elseif($chk_ord == 3){
$order->chk_ord_vst = 2;
}
elseif($chk_ord == 2){
$order->chk_ord_vst = 1;
}
elseif($chk_ord <= 1){
$order->chk_ord_vst = 0;
}
}
i am using a same fucntion to update or store order but on update i donot want to run above code i know it is very simple but i am a student and learning help me here it is controller function first user create order the if wants to update then we use get function to pass value to edit view and then pass again to stor function
public function storeOrder(Request $request , $update = null , $customer_id){
$order = !is_null($update) ? Order::find($update) : new Order();
$cus_det = explode("-", $request->customer_id);
$tt_amount = array_sum($request->amount) + $request->old_balance;
if(is_null ($update))
$balance = $tt_amount + $request->old_balance;
$auth_id = Auth::id();
if(Auth::user()->role == 4){
$auth_id = Customer::where('user_id', $auth_id)->first()->created_by;
}
$order->customer_id = $cus_det[0];
$order->user_id = Auth::id();
$order->ot_id = !is_null($update) ? $order->ot_id : $auth_id;
$order->unit = array_sum($request->unit);
$order->amount = $tt_amount;
$order->subtotal = array_sum($request->amount);
$order->order_comments = $request->order_comments;
if( Auth::user()->role == 5){
$order->location_url_ot = $request->location_url_ot;
$order->received_amount = 0;
}
else{
$order->received_amount = $request->received_amount;
}
$order->discount = $request->discount;
$order->order_date= date('Y/m/d', strtotime($request->order_date));
if($tt_amount >= $request->received_amount){
$order->amount_left = ($tt_amount - $request->received_amount - $request->discount);
}
else{
$order->advance = $request->received_amount - $tt_amount;
$order->amount_left = $request->old_balance - $request->received_amount - $request->discount;
}
$checkB = $this->checkMinBalance($cus_det[0] , $order->amount_left);
if($checkB){
return redirect()->back()->with('error' , 'Customer Balance Limit Exceeded ( Limit is '.$checkB.' )');
}
if($request->has('important')){
$order->is_important=1;
}
if($request->has('urgent')){
$order->urgent = urgent ;
}
$getothomDistanceValue = ($this->getothomDistance($order) * 1.37);
$getDistanceValue = ($this->getDistance($order) * 1.37);
$old_order = Order::where('customer_id' , $order->customer_id)->orderBy('id' , 'desc')->get();
$chk_ord = $old_order[0]->chk_ord_vst;
if($getDistanceValue * 1000 > 300){
if($chk_ord == 0)
{
$order->chk_ord_vst = 1;
}
elseif($chk_ord != 0){
$order->chk_ord_vst = $chk_ord + 1;
}
}
elseif($getDistanceValue * 1000 <= 300 ){
if($chk_ord >= 4){
$order->chk_ord_vst = 2;
}
elseif($chk_ord == 3){
$order->chk_ord_vst = 2;
}
elseif($chk_ord == 2){
$order->chk_ord_vst = 1;
}
elseif($chk_ord <= 1){
$order->chk_ord_vst = 0;
}
}
$order->save();
// set order if update is null
if(is_null($update)){
$getDistanceValue = ($this->getDistance($order) * 1.37);
$succ = Order::where('id', $order->id)->update(['ot_customer_distance'=> $getDistanceValue]);
}
$order_id = $order->id;
if(!is_null($update))
$order->orderdetail()->delete();
$orderData = $request->all();
$total_ot_benefit = 0; $total_customer_benefit = 0;$p_amount = 0;
for($counter = 0;$counter < sizeof($request->amount);$counter++){
if(!empty($orderData['amount'][$counter]))
{
$orderDetails = new OrderDetail();
$orderDetails->order_id = $order_id;
$is_custom_price = CustomPrice::where(['customer_id' => $cus_det[0] , 'product_id' => $orderData['product_id'][$counter]])->first();
$is_custom_ot_benefit = CustomOtBenefit::where(['ot_id' => $order->ot_id , 'product_id' => $orderData['product_id'][$counter]])->first();
$is_default_price = Product::find($orderData['product_id'][$counter]);
if($is_custom_price){
$orderDetails->ot_benefit = (string)bcmul($is_custom_price->ot_benefit, $orderData['unit'][$counter]);
$orderDetails->c_benefit = (string)bcmul($is_custom_price->c_benefit, $orderData['unit'][$counter]);
$orderDetails->p_amount = (string)bcmul($is_custom_price->product->p_price, $orderData['unit'][$counter]);
}
else{
$orderDetails->c_benefit = (string)bcmul($is_default_price->c_benefit, $orderData['unit'][$counter]);
$orderDetails->p_amount = (string)bcmul($is_default_price->p_price, $orderData['unit'][$counter]);
$orderDetails->ot_benefit = (string)bcmul($is_custom_ot_benefit->ot_benefit, $orderData['unit'][$counter]);
}
// exit;
$orderDetails->product_id = $orderData['product_id'][$counter];
$orderDetails->unit = $orderData['unit'][$counter];
$orderDetails->amount = $orderData['amount'][$counter];
$orderDetails->save();
}
}
Order::where('id' , $order_id)->update(['ot_benefit' => (string)$order->orderdetail->sum('ot_benefit') , 'c_benefit' => (string)$order->orderdetail->sum('c_benefit') , 'p_amount' => $order->orderdetail->sum('p_amount')]);
if(Auth::user()->role == 4){
return redirect()->back()->with('success', 'Order Placed Successfully!');
}
return redirect()->route('unconfirmed.orders')->with('success' , 'Order Created');
}
public function getOrder($id){
$added = [];
$order = Order::find($id);
$customPrices = CustomPrice::where('customer_id' , $order->customer_id)->get();
if(sizeof($customPrices)){
foreach($order->orderdetail as $d){
foreach($customPrices as $custom){
if($custom->product_id == $d->product_id){
$d->product->price = $custom->price;
$d->product->c_benefit = $custom->c_benefit;
}
}
$added[] = $d->product_id;
}
}
if(Auth::user()->role == 5)
$user_id = Auth::user()->ot_of;
else if(Auth::user()->role == 3)
$user_id = Auth::user()->seller_of;
else
$user_id = Auth::user()->id;
$products = Product::whereNotIn('id' , $added)->where('user_id' , $user_id)->get();
foreach($products as $product){
foreach($customPrices as $custom){
if($custom->product_id == $product->id){
$product->price = $custom->price;
$product->c_benefit = $custom->c_benefit;
}
}
}
$old_order = Order::where('customer_id' , $order->customer_id)->orderBy('id' , 'desc')->get();
$amount_left=$old_order[0]->amount_left - $old_order[0]->subtotal + $old_order[0]->received_amount + $old_order[0]->discount;
$old_balance = 0;
if(sizeof($old_order) > 1){
$old_balance = $old_invoices[1]->amount_left;
}
return view('orders.edit' , compact('order' , 'products' , 'old_balance','amount_left' , 'discount'));
}
public function updateOrder(Request $request , $id){
$request->hid;
$conditions = ['id' => $id];
$order = Order::where($conditions)->get();
$request->amount;
if(sizeof($order)){
if($request->amount_left_input){
$amount_left = $order[0]->amount_left + $order[0]->received_amount + $order[0]->discount;
$order = Order::where($conditions)
->update(['amount_left' => $amount_left - $request->amount_left_input + $order[0]->received_amount,
'received_amount' => $order[0]->received_amount + $order[0]->discount,
'discount' => $order[0]->discount + $request->amount_left_input, 'chk_ord_vst' => $request->chk_ord_vst,
]
);
return Common::Message("Order" , 2);
}
else{
Order::where('id' , $id)->update(['amount_left' => $order[0]->amount_left + $order[0]->received_amount , 'received_amount' => $order[0]->received_amount + $order[0]->discount , 'discount' => $order[0]->discount + $request->amount_left_input , 'urgent' => $request->urgent , 'location_url_ot' => $request->location_url_ot , 'chk_ord_vst' => $request->chk_ord_vst , ]);
$this->storeOrder($request , $order[0]->id);
return redirect()->route('unconfirmed.orders')->with('success' , 'Order Updated');
}
}
else{
return Common::Message("Order");
}
}
via Chebli Mohamed
Aucun commentaire:
Enregistrer un commentaire