catalog rule form underway
This commit is contained in:
parent
050271ded7
commit
e2659f4dac
|
|
@ -764,8 +764,10 @@ return [
|
|||
'add-cart-rule' => 'Add Cart Rule',
|
||||
'create-catalog-rule' => 'Create Catalog Rule',
|
||||
'create-cart-rule' => 'Create Cart Rule',
|
||||
'create' => 'Create',
|
||||
'save-btn-title' => 'Create',
|
||||
'select-attr' => 'Select Attribute',
|
||||
'select-attr-fam' => 'Select Attribute Family',
|
||||
'select-cart-attr' => 'Select Cart Attribute',
|
||||
'general-info' => [
|
||||
'name' => 'Rule Name',
|
||||
'description' => 'Description',
|
||||
|
|
|
|||
|
|
@ -97,33 +97,76 @@
|
|||
<label for="criteria" class="required">{{ __('admin::app.promotion.general-info.add-condition') }}</label>
|
||||
<select type="text" class="control" name="criteria" v-model="criteria" v-validate="'required'" value="{{ old('channels') }}" data-vv-as=""{{ __('admin::app.promotion.general-info.cust-groups') }}"">
|
||||
<option disabled="disabled">Select Criteria</option>
|
||||
<option value="attribute">Attribute</option>
|
||||
<option value="attribute_family">Attribute Family</option>
|
||||
<option value="cart_attributes">Cart Attributes</option>
|
||||
<option value="cart_attribute">Cart Attribute</option>
|
||||
</select>
|
||||
<span class="control-error" v-if="errors.has('criteria')">@{{ errors.first('criteria') }}</span>
|
||||
</div>
|
||||
|
||||
<span class="btn btn-primary btn-lg" v-on:click="addCondition">Add Condition</span>
|
||||
<span class="btn btn-primary btn-lg" v-on:click="addCondition">Select Condition</span>
|
||||
</div>
|
||||
|
||||
<div class="selectors-set">
|
||||
<div class="control-group" :class="[errors.has('attribute') ? 'has-error' : '']" v-if="enableAttribute">
|
||||
<label for="attribute" class="required">{{ __('admin::app.promotion.general-info.add-attribute') }}</label>
|
||||
<label for="attribute" class="required">{{ __('admin::app.promotion.select-attr') }}</label>
|
||||
<select type="text" class="control" name="attribute" v-model="attribute" v-validate="'required'" value="{{ old('attribute') }}" data-vv-as=""{{ __('admin::app.promotion.attribute') }}"">
|
||||
<option disabled="disabled">Select attribute</option>
|
||||
<option v-for="attribute in attributes" value="attribute.id">@{{ attribute.name }}</option>
|
||||
</select>
|
||||
<span class="control-error" v-if="errors.has('attribute')">@{{ errors.first('attribute') }}</span>
|
||||
</div>
|
||||
|
||||
<div class="control-group" :class="[errors.has('attribute_family') ? 'has-error' : '']" v-if="enableAttributeFamily">
|
||||
<label for="attribute_family" class="required">{{ __('admin::app.promotion.select-attr-fam') }}</label>
|
||||
<select type="text" class="control" v-model="attribute_family" v-validate="'required'" data-vv-as=""{{ __('admin::app.promotion.attribute') }}"">
|
||||
<option disabled="disabled">Select Attribute Family</option>
|
||||
<option v-for="attribute_family in attribute_families" value="attribute_family.id">@{{ attribute_family.name }}</option>
|
||||
</select>
|
||||
<span class="control-error" v-if="errors.has('attribute_family')">@{{ errors.first('attribute_family') }}</span>
|
||||
</div>
|
||||
|
||||
<div class="control-group" :class="[errors.has('cart_attribute') ? 'has-error' : '']" v-if="enableCartAttribute">
|
||||
<label for="cart_attribute" class="required">{{ __('admin::app.promotion.general-info.add-cart-attribute') }}</label>
|
||||
<label for="cart_attribute" class="required">{{ __('admin::app.promotion.select-cart-attr') }}</label>
|
||||
<select type="text" class="control" name="cart_attribute" v-model="cart_attribute" v-validate="'required'" value="{{ old('cart_attribute') }}" data-vv-as=""{{ __('admin::app.promotion.general-info.cust-groups') }}"">
|
||||
<option disabled="disabled">Select Cart Attribute</option>
|
||||
<option v-for="(cartAttribute, index) in this.criteria.cart" value="cartAttribute[index]">@{{ cartAttribute[index] }}</option>
|
||||
</select>
|
||||
<span class="control-error" v-if="errors.has('cart_attribute')">@{{ errors.first('cart_attribute') }}</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="condition-set">
|
||||
<div class="control-group" :class="[errors.has('cart_attr') ? 'has-error' : '']" v-if="enableCartAttrLine">
|
||||
<label for="cart_attr" class="required">{{ __('admin::app.promotion.select-cart-attr') }}</label>
|
||||
<input type="text" class="control" v-model="cart_attr.cart_attribute">
|
||||
<input type="text" class="control" v-model="cart_attr.condition_one">
|
||||
<input type="text" class="control" v-model="cart_attr.value_one">
|
||||
<input type="text" class="control" v-model="cart_attr.condition_two">
|
||||
<input type="text" class="control" v-model="cart_attr.value_two">
|
||||
<span class="control-error" v-if="errors.has('cart_attr')">@{{ errors.first('cart_attr') }}</span>
|
||||
</div>
|
||||
|
||||
<div class="control-group" :class="[errors.has('attr') ? 'has-error' : '']" v-if="enableAttrLine">
|
||||
<label for="attr" class="required">{{ __('admin::app.promotion.select-attr') }}</label>
|
||||
<input type="text" class="control" v-model="attr.attribute">
|
||||
<input type="text" class="control" v-model="attr.condition_one">
|
||||
<input type="text" class="control" v-model="attr.value_one">
|
||||
<input type="text" class="control" v-model="attr.condition_two">
|
||||
<input type="text" class="control" v-model="attr.value_two">
|
||||
<span class="control-error" v-if="errors.has('attr')">@{{ errors.first('attr') }}</span>
|
||||
</div>
|
||||
|
||||
<div class="control-group" :class="[errors.has('attr_fam') ? 'has-error' : '']" v-if="enableAttrFamLine">
|
||||
<label for="attr_fam" class="required">{{ __('admin::app.promotion.select-attr') }}</label>
|
||||
<input type="text" class="control" v-model="attr_fam.attribute">
|
||||
<input type="text" class="control" v-model="attr_fam.condition_one">
|
||||
<input type="text" class="control" v-model="attr_fam.value_one">
|
||||
<input type="text" class="control" v-model="attr_fam.condition_two">
|
||||
<input type="text" class="control" v-model="attr_fam.value_two">
|
||||
<span class="control-error" v-if="errors.has('attr_fam')">@{{ errors.first('attr_fam') }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</script>
|
||||
|
||||
|
|
@ -133,36 +176,81 @@
|
|||
|
||||
inject: ['$validator'],
|
||||
|
||||
data() {
|
||||
data () {
|
||||
return {
|
||||
criteria: @json($criteria[0]),
|
||||
attributes: @json($criteria[1]),
|
||||
attribute: null,
|
||||
attribute_families: null,
|
||||
name: null,
|
||||
description: null,
|
||||
attribute_families: @json($criteria[2]),
|
||||
attribute_family: null,
|
||||
cart_attribute: null,
|
||||
channels: [],
|
||||
criteria: @json($criteria[0]),
|
||||
conditions: [],
|
||||
cart_attr: {
|
||||
cart_attribute : null,
|
||||
condition_one: null,
|
||||
value_one: null,
|
||||
condition_two: null,
|
||||
value_two: null
|
||||
},
|
||||
attr_family: {
|
||||
attribute_family : null,
|
||||
condition_one: null,
|
||||
value_one: null,
|
||||
condition_two: null,
|
||||
value_two: null
|
||||
},
|
||||
attr: {
|
||||
attribute : null,
|
||||
condition_one: null,
|
||||
value_one: null,
|
||||
condition_two: null,
|
||||
value_two: null
|
||||
},
|
||||
customer_groups: [],
|
||||
criteria: null,
|
||||
priority: 0,
|
||||
starts_from: null,
|
||||
description: null,
|
||||
ends_till: null,
|
||||
enableAttribute: false,
|
||||
enableCartAttribute: false
|
||||
enableCartAttribute: false,
|
||||
enableAttributeFamily: false,
|
||||
enableCartAttrLine: false,
|
||||
enableAttrLine: false,
|
||||
enableAttrFamLine: false,
|
||||
name: null,
|
||||
priority: 0,
|
||||
starts_from: null
|
||||
}
|
||||
},
|
||||
|
||||
mounted() {
|
||||
console.log(this.attribute);
|
||||
mounted () {
|
||||
console.log(this.criteria.cart);
|
||||
|
||||
for(index in this.criteria.cart) {
|
||||
console.log(this.criteria.cart[index]);
|
||||
}
|
||||
},
|
||||
|
||||
methods: {
|
||||
addCondition() {
|
||||
if (this.criteria == "attribute_family") {
|
||||
addCondition () {
|
||||
if (this.criteria == "attribute" || this.criteria == "attribute_family" || this.criteria == "cart_attribute") {
|
||||
this.condition_on = this.criteria;
|
||||
} else {
|
||||
alert('please try again');
|
||||
}
|
||||
|
||||
if (this.condition_on == "attribute") {
|
||||
this.attr.push();
|
||||
|
||||
this.enableAttribute = true;
|
||||
this.enableCartAttribute = false;
|
||||
} else if (this.criteria == "cart_attribute") {
|
||||
this.enableAttributeFamily = false;
|
||||
} else if (this.condition_on == "attribute_family") {
|
||||
this.enableAttributeFamily = true;
|
||||
this.enableAttribute = false;
|
||||
this.enableCartAttribute = false;
|
||||
} else {
|
||||
this.enableCartAttribute = true;
|
||||
this.enableAttributeFamily = false;
|
||||
this.enableAttribute = false;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -153,6 +153,23 @@ class AttributeFamilyRepository extends Repository
|
|||
return $family;
|
||||
}
|
||||
|
||||
public function getNameAndId()
|
||||
{
|
||||
$attributeFamilies = $this->model->all();
|
||||
$trimmed = array();
|
||||
|
||||
foreach($attributeFamilies as $key => $attributeFamily) {
|
||||
if ($attributeFamily->name != null || $attributeFamily->name != "") {
|
||||
$trimmed[$key] = [
|
||||
'id' => $attributeFamily->id,
|
||||
'name' => $attributeFamily->name
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
return $trimmed;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $id
|
||||
* @return void
|
||||
|
|
|
|||
|
|
@ -222,10 +222,12 @@ class AttributeRepository extends Repository
|
|||
$trimmed = array();
|
||||
|
||||
foreach($attributes as $key => $attribute) {
|
||||
$trimmed[$key] = [
|
||||
'id' => $attribute->id,
|
||||
'name' => $attribute->name
|
||||
];
|
||||
if ($attribute->name != null || $attribute->name != "") {
|
||||
$trimmed[$key] = [
|
||||
'id' => $attribute->id,
|
||||
'name' => $attribute->name
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
return $trimmed;
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ use Illuminate\Http\Response;
|
|||
use Illuminate\Routing\Controller;
|
||||
|
||||
use Webkul\Attribute\Repositories\AttributeRepository as Attribute;
|
||||
use Webkul\Attribute\Repositories\AttributeFamilyRepository as AttributeFamily;
|
||||
|
||||
/**
|
||||
* Catalog Rule controller
|
||||
|
|
@ -18,11 +19,13 @@ class CatalogRuleController extends Controller
|
|||
{
|
||||
protected $_config;
|
||||
protected $attribute;
|
||||
protected $attributeFamily;
|
||||
|
||||
public function __construct(Attribute $attribute)
|
||||
public function __construct(Attribute $attribute, AttributeFamily $attributeFamily)
|
||||
{
|
||||
$this->_config = request('_config');
|
||||
$this->attribute = $attribute;
|
||||
$this->attributeFamily = $attributeFamily;
|
||||
}
|
||||
|
||||
public function index()
|
||||
|
|
@ -39,14 +42,22 @@ class CatalogRuleController extends Controller
|
|||
2 => 'grand_total'
|
||||
],
|
||||
|
||||
'product' => [
|
||||
'attribute' => [
|
||||
0 => 'attribute',
|
||||
1 => 'attribute_groups',
|
||||
2 => 'attribute_familes'
|
||||
]
|
||||
];
|
||||
|
||||
return view($this->_config['view'])->with('criteria', [$ruleCriterias, $this->attribute->getNameAndId()]);
|
||||
$arr = array();
|
||||
|
||||
foreach($ruleCriterias as $key => $ruleCriteria) {
|
||||
array_push($arr, $ruleCriteria);
|
||||
}
|
||||
|
||||
$arr;
|
||||
|
||||
return view($this->_config['view'])->with('criteria', [$ruleCriterias, $this->attribute->getNameAndId(), $this->attributeFamily->getNameAndId()]);
|
||||
}
|
||||
|
||||
public function store()
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@ return [
|
|||
'title' => 'Free Shipping',
|
||||
'description' => 'This is a free shipping',
|
||||
'active' => true,
|
||||
'default_rate' => '0',
|
||||
'class' => 'Webkul\Shipping\Carriers\Free',
|
||||
]
|
||||
];
|
||||
Loading…
Reference in New Issue