本文整理汇总了PHP中Quote::setX2Fields方法的典型用法代码示例。如果您正苦于以下问题:PHP Quote::setX2Fields方法的具体用法?PHP Quote::setX2Fields怎么用?PHP Quote::setX2Fields使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Quote
的用法示例。
在下文中一共展示了Quote::setX2Fields方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: actionCreate
/**
* Creates a new model.
*
* If creation is successful, the browser will be redirected to the 'view' page.
*
* @param bool $quick If true, this indicates the action is being requested via AJAX
*/
public function actionCreate($quick = false, $duplicate = false)
{
$model = new Quote();
if ($duplicate && !isset($_POST['Quote'])) {
$copiedModel = Quote::model()->findByPk($duplicate);
if (!empty($copiedModel)) {
foreach ($copiedModel->attributes as $name => $value) {
if ($name != 'id') {
$model->{$name} = $value;
}
}
$model->setLineItems($this->duplicateLineItems($copiedModel), false, true);
}
}
$users = User::getNames();
if ($quick && !Yii::app()->request->isAjaxRequest) {
throw new CHttpException(400);
}
$currency = Yii::app()->params->currency;
// Uncomment the following line if AJAX validation is needed
// $this->performAjaxValidation($model);
if (isset($_POST['Quote'])) {
$model->setX2Fields($_POST['Quote']);
$model->currency = $currency;
$model->createDate = time();
$model->lastUpdated = $model->createDate;
$model->createdBy = Yii::app()->user->name;
$model->updatedBy = $model->createdBy;
if (empty($model->name)) {
$model->name = '';
}
if (isset($_POST['lineitem'])) {
$model->lineItems = $_POST['lineitem'];
}
if (!$model->hasLineItemErrors) {
if ($model->save()) {
$model->createEventRecord();
$model->createActionRecord();
$model->saveLineItems();
if (!$quick) {
$this->redirect(array('view', 'id' => $model->id));
} else {
if (isset($_GET['recordId']) && isset($_GET['recordType'])) {
$recordId = $_GET['recordId'];
$recordType = $_GET['recordType'];
$relatedModel = X2Model::model($_GET['recordType'])->findByPk($recordId);
// tie record to quote
if ($relatedModel) {
$relate = new Relationships();
$relate->firstId = $model->id;
$relate->firstType = "Quote";
$relate->secondId = $relatedModel->id;
$relate->secondType = $recordType;
$relate->save();
$model->createAssociatedAction(X2Model::getAssociationType(get_class($relatedModel)), $relatedModel->id);
}
}
return;
}
}
}
}
// get products
$products = Product::activeProducts();
$viewData = array('model' => $model, 'users' => $users, 'products' => $products, 'quick' => $quick);
if (!$quick) {
$this->render('create', $viewData);
} else {
if ($model->hasErrors() || $model->hasLineItemErrors) {
// Sneak into the response that validation failed via setting
// the response code manually:
header('HTTP/1.1 400 Validation Error');
}
$this->renderPartial('create', $viewData, false, true);
}
}
示例2: actionCreate
/**
* Creates a new model.
* If creation is successful, the browser will be redirected to the 'view' page.
*/
public function actionCreate()
{
$model = new Quote();
$users = User::getNames();
$currency = Yii::app()->params->currency;
$productNames = Product::productNames();
$productCurrency = Product::productCurrency();
// Uncomment the following line if AJAX validation is needed
// $this->performAjaxValidation($model);
if (isset($_POST['Quote'])) {
/*
foreach($_POST as $key=>$arr){
$pieces=explode("_",$key);
if(isset($pieces[0]) && $pieces[0]=='autoselect'){
$newKey=$pieces[1];
if(isset($_POST[$newKey."_id"]) && $_POST[$newKey."_id"]!=""){
$val=$_POST[$newKey."_id"];
}else{
$field=Fields::model()->findByAttributes(array('fieldName'=>$newKey));
if(isset($field)){
$type=ucfirst($field->linkType);
if($type!="Contacts"){
eval("\$lookupModel=$type::model()->findByAttributes(array('name'=>'$arr'));");
}else{
$names=explode(" ",$arr);
$lookupModel=Contacts::model()->findByAttributes(array('firstName'=>$names[0],'lastName'=>$names[1]));
}
if(isset($lookupModel))
$val=$lookupModel->id;
else
$val=$arr;
}
}
$model->$newKey=$val;
}
}
// $this->render('test', array('model'=>$_POST));
$temp=$model->attributes;
foreach(array_keys($model->attributes) as $field){
if(isset($_POST['Quote'][$field])){
$model->$field=$_POST['Quote'][$field];
$fieldData=Fields::model()->findByAttributes(array('modelName'=>'Quotes','fieldName'=>$field));
if($fieldData->type=='assignment' && $fieldData->linkType=='multiple'){
$model->$field=Accounts::parseUsers($model->$field);
}elseif($fieldData->type=='date'){
$model->$field=strtotime($model->$field);
}
}
}
$model->expirationDate = $this->parseDate($model->expirationDate);
*/
/*
if(isset($model->associatedContacts)) {
$contacts = $model->associatedContacts;
$model->associatedContacts = Quote::parseContacts($model->associatedContacts);
} else {
$contacts = array();
}
*/
$temp = $model->attributes;
$model->setX2Fields($_POST['Quote']);
// get products
$products = array();
if (isset($_POST['ExistingProducts'])) {
$ids = $_POST['ExistingProducts']['id'];
$prices = $_POST['ExistingProducts']['price'];
$quantities = $_POST['ExistingProducts']['quantity'];
$adjustments = $_POST['ExistingProducts']['adjustment'];
foreach ($ids as $key => $id) {
if ($id != 0) {
// remove blanks
$products[$key]['id'] = $id;
$products[$key]['name'] = $productNames[$id];
$products[$key]['price'] = $prices[$key];
$products[$key]['quantity'] = $quantities[$key];
if (strchr($adjustments[$key], '%')) {
// percent adjustment
$products[$key]['adjustment'] = intval(str_replace("%", "", $adjustments[$key]));
$products[$key]['adjustmentType'] = 'percent';
} else {
$products[$key]['adjustment'] = $adjustments[$key];
$products[$key]['adjustmentType'] = 'linear';
}
}
}
if (!empty($products)) {
$currency = $productCurrency[$products[0]['id']];
}
}
$model->currency = $currency;
$this->createQuote($model, $temp, $products);
}
$products = Product::activeProducts();
$this->render('create', array('model' => $model, 'users' => $users, 'products' => $products, 'productNames' => $productNames));
//.........这里部分代码省略.........