function save(array $params) { $response = new ResponseEntity(); DB::transaction(function () use(&$response, $params) { $user = User::find(Auth::user()->id); $product = Product::find($params['product_id']); $cust = new Customer(); $cust->first_name = $params['customer']['first_name']; $cust->last_name = $params['customer']['last_name']; $cust->phone_number = $params['customer']['phone_number']; $custCreated = $cust->save(); if ($custCreated && $product && $user) { $sale = new Sale(); $sale->user_id = $user->id; $sale->sale_status_id = Config::get('constants.sale_status.sale'); $sale->product_id = $product->id; $sale->customer_id = $cust->id; $sale->date_sold = Carbon::createFromFormat('m/d/Y', $params['date_sold'])->toDateString(); $sale->remarks = isset($params['remarks']) ? $params['remarks'] : ''; $sale->order_number = $params['order_number']; $sale->ninety_days = isset($params['ninety_days']) ?: 0; $ok = $sale->save(); if ($ok) { $ok = $this->setIncentive($sale->user_id, $sale->date_sold); $response->setMessages($ok ? ['Sale successfully created!'] : ['Failed to create sale!']); $response->setSuccess($ok); } else { $response->setMessages(['Failed to create sale!']); } } else { $response->setMessages(['Entities not found']); } }); return $response; }
/** * Creates a new Sale model. * If creation is successful, the browser will be redirected to the 'view' page. * @return mixed */ public function actionCreate() { $model = new Sale(); if ($model->load(Yii::$app->request->post()) && $model->save()) { return $this->redirect(['view', 'id' => $model->id]); } else { return $this->render('create', ['model' => $model]); } }
function save(array $params) { $response = new ResponseEntity(); try { DB::transaction(function () use(&$response, $params) { $user = User::find(1); $product = Product::find($params['product_id']); $cust = new Customer(); $cust->first_name = $params['customer']['first_name']; $cust->last_name = $params['customer']['last_name']; $cust->phone_number = $params['customer']['phone_number']; $custCreated = $cust->save(); if ($custCreated && $product && $user) { $sale = new Sale(); $sale->user_id = $user->id; $sale->product_id = $product->id; $sale->customer_id = $cust->id; $sale->date_sold = Carbon::createFromFormat('m/d/Y', $params['date_sold']); $sale->remarks = isset($params['remarks']) ? $params['remarks'] : ''; $sale->order_number = $params['order_number']; $sale->ninety_days = isset($params['ninety_days']) ?: 0; $ok = $sale->save(); if ($ok) { $response->setSuccess(true); $response->setMessages(['Sale successfully created!']); } else { $response->setMessages(['Failed to create sale!']); } } else { $response->setMessages(['Entities not found']); } }); } catch (\Exception $ex) { $response->setMessages(['Exception: ' . $ex->getMessage()]); } return $response; }
/** * Creates a new Sale model. * If creation is successful, the browser will be redirected to the 'view' page. * @return mixed */ public function actionCreate() { $model = new Sale(); $modelDetails = null; if ($model->load(Yii::$app->request->post())) { $modelDetails = Model::createMultiple(SaleDetail::classname()); Model::loadMultiple($modelDetails, Yii::$app->request->post()); // validate all models $valid = $model->validate() & Model::validateMultiple($modelDetails); if ($valid) { $transaction = \Yii::$app->db->beginTransaction(); try { if ($flag = $model->save(false)) { foreach ($modelDetails as $modelDetail) { $modelDetail->sale_id = $model->id; if ($flag = $modelDetail->save(false)) { $item = Item::findOne($modelDetail->item_id); $item->stock -= $modelDetail->quantity; $flag = $item->save(); } if (!$flag) { $transaction->rollBack(); break; } } } if ($flag) { $transaction->commit(); return $this->redirect(['index']); } } catch (Exception $e) { $transaction->rollBack(); } } } return $this->render('create', ['model' => $model, 'modelDetails' => empty($modelDetails) ? [new SaleDetail()] : $modelDetails]); }