public function actionCreate() { // if some data has been entered before or the user is already logged in, // take the already existing data and prefill the input form if ($model = Shop::getCustomer()) { $address = $model->address; } else { $model = new Customer(); } if (isset($_POST['Customer'])) { $model->attributes = $_POST['Customer']; if (isset($_POST['Address'])) { $address = new Address(); $address->attributes = $_POST['Address']; if ($address->save()) { $model->address_id = $address->id; } } if (!Yii::app()->user->isGuest) { $model->user_id = Yii::app()->user->id; } $model->validate(); if (Shop::module()->useWithYum && isset($_POST['register']) && ($_POST['register'] = true)) { if (isset($_POST['Customer']['password']) && isset($_POST['Customer']['passwordRepeat'])) { if ($_POST['Customer']['password'] != $_POST['Customer']['passwordRepeat']) { $model->addError('password', Shop::t('Passwords do not match')); } else { if ($_POST['Customer']['password'] == '') { $model->addError('password', Shop::t('Password is empty')); } else { $user = new YumUser(); $profile = new YumProfile(); $profile->attributes = $_POST['Customer']; $profile->attributes = $_POST['Address']; if ($user->register(strtr($model->email, array('@' => '_', '.' => '_')), $_POST['Customer']['password'], $profile)) { $user->status = YumUser::STATUS_ACTIVE; $user->save(false, array('status')); $model->user_id = $user->id; Shop::setFlash(Shop::t('Successfully registered user')); } else { $model->addErrors($user->getErrors()); $model->addErrors($profile->getErrors()); Shop::setFlash(Shop::t('Error while registering user')); } } } } } if (!$model->hasErrors()) { if ($model->save()) { Yii::app()->user->setState('customer_id', $model->customer_id); $this->redirect(array('//shop/order/create', 'customer' => $model->customer_id)); } } } $this->render('create', array('customer' => $model, 'address' => isset($address) ? $address : new Address())); }
public function action_do_create() { $v = Customer::validate(Input::all()); if ($v->fails()) { return Redirect::to_route('create_customer')->with('user', Auth::user())->with_errors($v)->with_input(); } $new_customer = array('name' => Input::get('name'), 'description' => Input::get('description'), 'organization_id' => Auth::user()->organization->id); $customer = new Customer($new_customer); $customer->save(); return Redirect::to_route('customers'); }
/** * Creates a new model. * If creation is successful, the browser will be redirected to the 'view' page. */ public function actionCreate() { if (CustomerType::model()->count('active=1') == 0) { throw new CHttpException(412, 'No hay tipos de clientes activos. Para crear un cliente, primero debe ' . CHtml::link('crear un tipo de cliente', array('customerType/create')) . '.'); } $model = new Customer(); $model->contact = new Contact(); // Uncomment the following line if AJAX validation is needed // $this->performAjaxValidation($model); if (isset($_POST['Customer'])) { $model->attributes = $_POST['Customer']; $model->dependence_id = $model->dependence_id == '' ? NULL : $model->dependence_id; $model->contact->active = $model->active; if (isset($_POST['Contact'])) { $model->contact->attributes = $_POST['Contact']; $successful = $model->contact->validate(); } $successful = $model->validate() && $successful; if ($successful) { $transaction = Yii::app()->db->beginTransaction(); try { if ($model->save(false)) { $model->contact->customer_id = $model->id; if ($model->contact->save(false)) { $transaction->commit(); if (!empty($_POST['yt1'])) { Yii::app()->user->setFlash('customer-created', "¡El cliente <b><i>"{$model->name}"</i></b> fue creado exitosamente!"); $this->redirect(array('create')); } else { $this->redirect(array('view', 'id' => $model->id)); } } } $transaction->rollBack(); } catch (Exception $e) { $transaction->rollBack(); } } } $this->render('create', array('model' => $model)); }
/** * Creates a new model. * If creation is successful, the browser will be redirected to the 'view' page. */ public function actionCreate() { $model = new Customer(); $profile = new Profile(); $address = new CheckoutAddress(); //Yii::app()->session['cid'] = ''; $this->performAjaxValidation(array($model, $profile), 'customer-form'); if (isset($_POST['Customer'])) { $model->attributes = $_POST['Customer']; $profile->attributes = $_POST['Profile']; $profile->user_id = 0; if ($model->validate() && $profile->validate() && $this->validateAddress()) { $realp = PasswordHelper::generateStrongPassword(); $model->password = $realp; $model->activkey = PasswordHelper::hashPassword(microtime() . $model->password); $model->password = PasswordHelper::hashPassword($model->password); $model->status = 0; $model->type = 1; if ($model->save()) { Yii::app()->session['cid'] = $model->id; $profile->user_id = $model->id; $profile->save(); if (!empty($_POST['Customer']['c_group_id'])) { foreach ($_POST['Customer']['c_group_id'] as $groupid) { $customerGroup = new CustomerCGroup(); $customerGroup->user_id = $model->id; $customerGroup->c_group_id = $groupid; $customerGroup->save(); } } $passwordHistory = new PasswordHistory(); $passwordHistory->profile_id = $model->id; $passwordHistory->password = $model->password; $passwordHistory->save(); foreach ($this->_address as $address) { $address->user_id = $model->id; $address->save(); } if (Yii::app()->getModule('user')->sendActivationMail) { $activation_url = $this->createAbsoluteUrl('/user/activation', array("activkey" => $model->activkey, "email" => $model->email)); UserModule::sendMail($model->email, UserModule::t("Your {site_name} account has been created", array('{site_name}' => Yii::app()->name)), UserModule::t("To activate your account, go to <a href='{activation_url}'>{activation_url}</a>.<br/><br/>Username: "******"<br/>Password: "******"<br/>", array('{activation_url}' => $activation_url))); } Yii::app()->user->setFlash(TbHtml::ALERT_COLOR_SUCCESS, Yii::t('info', 'Customer was successfully created')); $this->renderPartial('_view', array('model' => $model, 'profile' => $profile, 'address' => $this->_address), false, true); Yii::app()->end(); } else { Yii::app()->user->setFlash(TbHtml::ALERT_COLOR_ERROR, Yii::t('info', 'An error occurred while trying to create new customer, please try again.')); /*$this->render('create',array( 'model'=>$model, 'profile'=>$profile, ));*/ } } else { $profile->validate(); $this->validateAddress(); //echo GxActiveForm::validateMultiple(array($model,$profile,$address)); //Yii::app()->end(); } } if (Yii::app()->getRequest()->getIsAjaxRequest()) { $this->renderPartial('_form_address', array('model' => $model, 'profile' => $profile, 'address' => $this->_address), false, true); Yii::app()->end(); } $this->render('create', array('model' => $model, 'profile' => $profile, 'address' => $this->_address)); }
public function actionPay() { if (Yii::app()->user->isGuest) { Yii::app()->user->loginRequired(); } $model = Customer::model()->findByAttributes(array('user_id' => Yii::app()->user->id)); if ($model === null) { $model = new Customer(); } /* unset($model->attributes); $model->user_id = Yii::app()->user->id; */ // uncomment the following code to enable ajax-based validation /* if(isset($_POST['ajax']) && $_POST['ajax']==='customer-_customer-form') { echo CActiveForm::validate($model); Yii::app()->end(); } */ if (isset($_POST['Customer'])) { $model->attributes = $_POST['Customer']; if ($model->validate() && $model->save()) { $this->redirect($this->createUrl('cartdetail')); } } $this->render('_customer', array('model' => $model)); }
/** * Handles the first page of the application form * @param string $city */ public function actionSignup($city) { $customer_model = new Customer(); $commande_model = new Commande(); $goodcity = Goodcity::model()->findByPk($city); // Uncomment the following line if AJAX validation is needed // $this->performAjaxValidation($model); // Set the scenario to limit the attributes we suck in from // the POST array. This protects us against injection attacks. $commande_model->setScenario('user_create'); $customer_model->setScenario('user_create'); if (isset($_POST['Customer'])) { // Populate our new models from the input arrays $customer_model->attributes = $_POST['Customer']; $commande_model->attributes = $_POST['Commande']; // If a model saves, we know it's valid if ($customer_model->validate()) { // Save the uploaded files $arr_uploads = array('dest_idpicture11', 'dest_idpicture12', 'dest_idpsform1', 'dest_idpicture21', 'dest_idpicture22', 'dest_idpsform2', 'dest_idpicture31', 'dest_idpicture32', 'dest_idpsform3'); foreach ($arr_uploads as $upload) { $commande_model->{'t' . $upload} = CUploadedFile::getInstance($commande_model, $upload); } // We have to insert a dummy id here to run validate() $commande_model->bilkey = 0; if ($commande_model->validate()) { // Save the uploaded files $arr_uploads = array('dest_idpicture11', 'dest_idpicture12', 'dest_idpsform1', 'dest_idpicture21', 'dest_idpicture22', 'dest_idpsform2', 'dest_idpicture31', 'dest_idpicture32', 'dest_idpsform3'); foreach ($arr_uploads as $upload) { $commande_model->{$upload} = CUploadedFile::getInstance($commande_model, $upload); if ($commande_model->{$upload} != null) { $path = $this->getUploadPath($commande_model->{$upload}); $commande_model->{$upload}->saveAs($path); $_POST['Commande'][$upload] = $path; } } // We don't actually want to do the save just yet, // so store *everything* in the session. (This is hack-y) Yii::app()->user->setState('Customer', $_POST['Customer']); Yii::app()->user->setState('Commande', $_POST['Commande']); Yii::app()->user->setState('payment_type', $_POST['payment']); //var_dump($this->emailValidation($customer_model));die(); if ($this->passwordUsernameVerification($customer_model) == false) { $this->render('application/1-signup', array('goodcity' => $goodcity, 'customer_model' => $customer_model, 'commande_model' => $commande_model, 'onetime' => false, 'username_used' => true)); die; } elseif ($this->emailValidation($customer_model) == false) { $this->render('application/1-signup', array('goodcity' => $goodcity, 'customer_model' => $customer_model, 'commande_model' => $commande_model, 'onetime' => false, 'email_used' => true)); die; } $this->redirect(array('order')); } } else { // We have to insert a dummy id here to run validate() $commande_model->bilkey = 0; $commande_model->validate(); } } elseif (isset(Yii::app()->user->Customer)) { $customer_model->attributes = Yii::app()->user->Customer; $commande_model->attributes = Yii::app()->user->Commande; // $payment_type = Yii::app()->user->payment_type; } // Hack for one-time setup option $onetime = false; if (isset(Yii::app()->user->onetime)) { $onetime = true; } else { $onetime = false; } $this->render('application/1-signup', array('customer_model' => $customer_model, 'commande_model' => $commande_model, 'goodcity' => $goodcity, 'onetime' => $onetime)); }
public function validateCustomer() { if (isset($_POST['Customer'])) { $valid = true; $this->_productattribute = array(); /*Yii::log( "ProductCreateAction: ".CVarDumper::dumpAsString( $_POST['ProductOption'] ), CLogger::LEVEL_ERROR, "product.actions.create" );*/ $customer = new Customer(); $customer->attributes = $_POST['Customer']; $valid = $customer->validate() && $valid; $this->_ordercustomer = $customer; if (!$valid) { return false; } } return true; }
public function postCustomerAdd($id = "") { $input = \Input::get(); $validation = \Customer::validate($input); if ($id != "") { $customer = \Customer::find($id); array_forget($input, "_token"); array_forget($input, "confirm"); array_forget($input, "submit"); array_forget($input, "tag"); foreach ($input as $key => $value) { $customer->{$key} = $value; } if ($customer->update()) { \Session::put("success_message", "Customer record updeted!"); return \Redirect::back(); } else { \Session::put("error_message", "Unexpected Error! Customer record could not be updated"); return \Redirect::back()->withInput(); } exit; } else { } if ($validation->fails()) { return \Redirect::back()->withErrors($validation)->withInput(); } else { $customer = new \Customer(); array_forget($input, "_token"); array_forget($input, "confirm"); array_forget($input, "submit"); array_forget($input, "tag"); foreach ($input as $key => $value) { $customer->{$key} = $value; } $customer->password = \Hash::make(\Input::get("password")); if ($customer->save()) { \Mail::send('emails.registration', $input, function ($message) use($input) { $message->from("*****@*****.**", "Melkay Cosmetics "); $message->to($input['email'], "*****@*****.**")->cc('*****@*****.**')->subject("Registration "); }); \Session::put("success_message", "Your Registration was successful"); return \Redirect::back(); } else { \Session::put("error_message", "Your registration was not successful, please try again next time"); return \Redirect::back()->withInput(); } //} } }
public function postRegister() { $validation = Customer::validate(Input::all()); $input = Input::all(); if ($validation->fails()) { return Redirect::back()->withErrors($validation)->withInput(); } else { $customer = new Customer(); if (isset($input['ship_billing'])) { $customer->shipping_firstname = $input['firstname']; $customer->shipping_lastname = $input['lastname']; $customer->shipping_company = $input['company']; $customer->shipping_address_1 = $input['apartment']; $customer->shipping_address_2 = $input['address']; $customer->shipping_city = $input['city']; $customer->shipping_country = $input['country']; } array_forget($input, "_token"); array_forget($input, "confirmpassword"); array_forget($input, "submit"); array_forget($input, "ship_billing"); foreach ($input as $key => $value) { $customer->{$key} = $value; } $customer->password = Hash::make(Input::get("password")); if ($customer->save()) { Mail::send('emails.registration', $input, function ($message) use($input) { $message->from("*****@*****.**", "Medical Equipment NG"); $message->to($input['email'], "*****@*****.**")->cc('*****@*****.**')->subject("Registration "); }); Session::put("success_message", "Your Registration was successful"); return Redirect::back(); } else { Session::put("error_message", "Your registration was not successful, please try again next time"); return Redirect::back(); } } }
/** * Extract shipping and billing address information, create address book and map to the carts */ protected function actionConvertAddressBook() { $sql = "select * from xlsws_cart where billaddress_id IS NULL and address_bill IS NOT NULL order by id limit 500"; $arrProducts = Yii::app()->db->createCommand($sql)->query(); while (($result = $arrProducts->read()) !== false) { $result['email'] = strtolower($result['email']); //verify that Customer ID really exists in customer table $objCust = Customer::model()->findByPk($result['customer_id']); if (!$objCust instanceof Customer) { $result['customer_id'] = 0; } if (strlen($result['address_bill']) > 0) { $arrAddress = explode("\n", $result['address_bill']); if (count($arrAddress) == 5) { //old format address, should be 6 pieces $arrAddress[5] = $arrAddress[4]; $strSt = $arrAddress[3]; if ($strSt[0] == " ") { //no state on this address $arrAddress[4] = substr($strSt, 1, 100); $arrAddress[3] = ""; } else { $arrSt = explode(" ", $strSt); $arrAddress[3] = $arrSt[0]; $arrAddress[4] = str_replace($arrSt[0] . " ", "", $strSt); } } $objAddress = new CustomerAddress(); if (count($arrAddress) >= 5) { $objCountry = Country::LoadByCode($arrAddress[5]); if ($objCountry) { $objAddress->country_id = $objCountry->id; $objState = State::LoadByCode($arrAddress[3], $objCountry->id); if ($objState) { $objAddress->state_id = $objState->id; } } $objAddress->address1 = $arrAddress[0]; $objAddress->address2 = $arrAddress[1]; $objAddress->city = $arrAddress[2]; $objAddress->postal = $arrAddress[4]; $objAddress->first_name = $result['first_name']; $objAddress->last_name = $result['last_name']; $objAddress->company = $result['company']; $objAddress->phone = $result['phone']; $objAddress->residential = CustomerAddress::RESIDENTIAL; $objAddress->created = $result['datetime_cre']; $objAddress->modified = $result['datetime_cre']; $objAddress->active = 1; if (empty($objAddress->address2)) { $objAddress->address2 = null; } if (empty($objAddress->company)) { $objAddress->company = null; } $blnFound = false; if ($result['customer_id'] > 0) { //See if this is already in our database $objPriorAddress = CustomerAddress::model()->findByAttributes(array('address1' => $objAddress->address1, 'address2' => $objAddress->address2, 'city' => $objAddress->city, 'postal' => $objAddress->postal, 'first_name' => $objAddress->first_name, 'last_name' => $objAddress->last_name, 'company' => $objAddress->company, 'phone' => $objAddress->phone)); if ($objPriorAddress instanceof CustomerAddress) { Yii::app()->db->createCommand("update xlsws_cart set billaddress_id=" . $objPriorAddress->id . " where id=" . $result['id'])->execute(); $blnFound = true; } else { $objAddress->customer_id = $result['customer_id']; } } else { //We need a shell customer record just for the email $objC = Customer::model()->findByAttributes(array('email' => $result['email'])); if ($objC instanceof Customer) { Yii::app()->db->createCommand("UPDATE xlsws_cart set customer_id=" . $objC->id . " where id=" . $result['id'])->execute(); } else { $objC = new Customer(); $objC->record_type = Customer::GUEST; $objC->email = $result['email']; $objC->first_name = $objAddress->first_name; $objC->last_name = $objAddress->last_name; $objC->company = $objAddress->company; if (!$objC->validate()) { $arrErr = $objC->getErrors(); if (isset($arrErr['email'])) { $objC->email = $result['id'] . "*****@*****.**"; } if (!$objC->validate()) { return print_r($objC->getErrors(), true); } } if (!$objC->save()) { Yii::log("Import Error " . print_r($objC->getErrors(), true), 'error', 'application.' . __CLASS__ . "." . __FUNCTION__); return print_r($objC->getErrors(), true); } else { $cid = $objC->id; } Yii::app()->db->createCommand("UPDATE xlsws_cart set customer_id=" . $cid . " where id=" . $result['id'])->execute(); } $result['customer_id'] = $objC->id; $objAddress->customer_id = $result['customer_id']; } if (!$blnFound) { if (!$objAddress->save()) { //We have a corrupt billing address, just blank it out so import goes on Yii::app()->db->createCommand("update xlsws_cart set address_bill=null where id=" . $result['id'])->execute(); } else { $cid = $objAddress->id; Yii::app()->db->createCommand("update xlsws_cart set billaddress_id=" . $cid . " where id=" . $result['id'])->execute(); } } } else { //We have a corrupt billing address, just blank it out so import goes on Yii::app()->db->createCommand("update xlsws_cart set address_bill=null where id=" . $result['id'])->execute(); } $objAddress = new CustomerAddress(); $objCountry = Country::LoadByCode($result['ship_country']); if ($objCountry) { $objAddress->country_id = $objCountry->id; $objState = State::LoadByCode($result['ship_state'], $objCountry->id); if ($objState) { $objAddress->state_id = $objState->id; } } $objAddress->first_name = $result['ship_firstname']; $objAddress->last_name = $result['ship_lastname']; $objAddress->company = $result['ship_company']; $objAddress->address1 = $result['ship_address1']; $objAddress->address2 = $result['ship_address2']; $objAddress->city = $result['ship_city']; $objAddress->postal = $result['ship_zip']; $objAddress->phone = $result['ship_phone']; $objAddress->residential = CustomerAddress::RESIDENTIAL; $objAddress->created = $result['datetime_cre']; $objAddress->modified = $result['datetime_cre']; $objAddress->active = 1; if (empty($objAddress->address2)) { $objAddress->address2 = null; } if (empty($objAddress->company)) { $objAddress->company = null; } $blnFound = false; if ($result['customer_id'] > 0) { //See if this is already in our database $objPriorAddress = CustomerAddress::model()->findByAttributes(array('address1' => $objAddress->address1, 'city' => $objAddress->city, 'postal' => $objAddress->postal, 'first_name' => $objAddress->first_name, 'last_name' => $objAddress->last_name, 'company' => $objAddress->company, 'phone' => $objAddress->phone)); if ($objPriorAddress instanceof CustomerAddress) { Yii::app()->db->createCommand("update xlsws_cart set shipaddress_id=" . $objPriorAddress->id . " where id=" . $result['id'])->execute(); $blnFound = true; } else { $objAddress->customer_id = $result['customer_id']; } } if (!$blnFound) { if (!$objAddress->save()) { Yii::log("Import Error " . print_r($objAddress->getErrors(), true), 'error', 'application.' . __CLASS__ . "." . __FUNCTION__); } else { $cid = $objAddress->id; Yii::app()->db->createCommand("update xlsws_cart set shipaddress_id=" . $cid . " where id=" . $result['id'])->execute(); } } } $objShipping = new CartShipping(); $objShipping->shipping_method = $result['shipping_method']; $objShipping->shipping_module = $result['shipping_module']; $objShipping->shipping_data = $result['shipping_data']; $objShipping->shipping_cost = $result['shipping_cost']; $objShipping->shipping_sell = $result['shipping_sell']; if (!$objShipping->save()) { return print_r($objShipping->getErrors()); } else { $cid = $objShipping->id; } Yii::app()->db->createCommand("update xlsws_cart set shipping_id=" . $cid . " where id=" . $result['id'])->execute(); $objPayment = new CartPayment(); $objPayment->payment_method = $result['payment_method']; $objPayment->payment_module = str_replace(".php", "", $result['payment_module']); $objPayment->payment_data = $result['payment_data']; $objPayment->payment_amount = $result['payment_amount']; $objPayment->datetime_posted = $result['datetime_posted']; if ($result['fk_promo_id'] > 0) { $objPromo = PromoCode::model()->findByPk($result['fk_promo_id']); if ($objPromo) { $objPayment->promocode = $objPromo->code; } } if (!$objPayment->save()) { return print_r($objPayment->getErrors()); } else { $cid = $objPayment->id; } Yii::app()->db->createCommand("update xlsws_cart set payment_id=" . $cid . " where id=" . $result['id'])->execute(); } $results2 = Yii::app()->db->createCommand("select count(*) from xlsws_cart where billaddress_id IS NULL and address_bill IS NOT NULL")->queryScalar(); if ($results2 == 0) { $remain = 8; } else { $remain = 3; } return array('result' => "success", 'makeline' => $remain, 'total' => 50, 'tag' => 'Converting cart addresses, ' . $results2 . ' remaining'); }
public function validateCustomer() { if (isset($_POST['Customer'])) { $customer = new Customer(); $profile = new Profile(); $customer->attributes = $_POST['Customer']; $profile->attributes = $_POST['Profile']; $valid = $customer->validate(); $valid = $profile->validate() && $valid; $this->_ordercustomer = $customer; $this->_orderprofile = $profile; if (!$valid) { return false; } } return true; }