/var/www/vhosts/nabawater/backend/models
Edit: /var/www/vhosts/nabawater/backend/models/ItemMapping.php (8785B)
yii::t('backend','Item Name'),
'vendor_id' => yii::t('backend','Vendor Name'),
'item_mapping_status' => yii::t('backend','Mapping Status')
];
return ArrayHelper::merge(parent::attributeLabels(), $labels);
}
/**
*
* @param type $index
* @return array
*/
public function getMappingItemData($vendor_id = null)
{
if (AdminUser::isVendor() || AdminUser::isBranch()) {
$itemDataArray = Item::find()
->alias('I')
->select([
'I.item_id',
'IL.item_name'
])
->leftJoin(['IL' => ItemLang::tableName()], 'IL.item_id = I.item_id')
->where([
'IL.language_code' => Yii::$app->language,
'I.item_status' => [Item::ACTIVE, Item::INACTIVE]
])
->andWhere(['I.vendor_id' => Yii::$app->getUser()->getIdentity()->vendor_id])
->orderBy(['IL.item_name' => SORT_ASC])
->asArray()
->All();
} else {
$itemDataArray = Item::find()
->alias('I')
->select([
'I.item_id',
'IL.item_name'
])
->leftJoin(['IL' => ItemLang::tableName()], 'IL.item_id = I.item_id')
->where([
'IL.language_code' => Yii::$app->language,
'I.item_status' => [Item::ACTIVE, Item::INACTIVE],
'I.vendor_id' => $vendor_id
])
->orderBy(['IL.item_name' => SORT_ASC])
->asArray()
->All();
}
if (!empty($itemDataArray)) {
return ArrayHelper::map($itemDataArray,'item_id','item_name');
} else {
return [];
}
}
/**
*
* @param type $group_ids
* @param type $selection_type
* @param type $item_mapping_id
* @param type $mapping_type
* @return type
*/
public function getGroups($groupIds = '', $selectionType = '', $itemMappingId = '', $mappingType = '', $vendor_id = null)
{
$GroupArray = array();
if ($groupIds == '') {
if ($selectionType != 'IN') {
//print_r($vendor_id); die;
$GroupArray = ItemIngredientGroup::find()
->alias('t')
->select(['t.item_ingredient_group_id','IL.group_name', 'IMG.is_drink', 't.vendor_id'])
->innerJoin(['IL' => ItemIngredientGroupLang::tableName()], 'IL.item_ingredient_group_id = t.item_ingredient_group_id')
->leftJoin(['IMG' => ItemMappingGroup::tableName()], 'IMG.item_ingredient_group_id = t.item_ingredient_group_id')
->where(['IL.language_code' => Yii::$app->language])
->andWhere(['t.item_ingredient_status' => self::ACTIVE])
->andWhere(['t.vendor_id' => $vendor_id])
->andWhere(['not', ['t.vendor_id' => null]])
->orderBy(['t.item_ingredient_group_id' => SORT_DESC])
->asArray()
->All();
//print_r($GroupArray); die;
}
} else {
$GroupArray = ItemIngredientGroup::find()
->alias('t')
->select(['t.item_ingredient_group_id','IL.group_name', 'IMG.is_drink'])
->innerJoin(['IL' => ItemIngredientGroupLang::tableName()], 'IL.item_ingredient_group_id = t.item_ingredient_group_id AND t.item_ingredient_group_id '.$selectionType.'('.$groupIds.')')
->leftJoin(['IMG' => ItemMappingGroup::tableName()], 'IMG.item_ingredient_group_id = t.item_ingredient_group_id AND IMG.item_mapping_id ='.$itemMappingId)
->where(['IL.language_code' => Yii::$app->language])
->andWhere(['t.item_ingredient_status' => self::ACTIVE])
->andWhere(['t.vendor_id' => $vendor_id])
->andWhere(['not', ['t.vendor_id' => null]])
->orderBy([
'IMG.item_mapping_group_id' => SORT_ASC,
't.item_ingredient_group_id' => SORT_DESC
])
->asArray()
->All();
}
if (!empty($GroupArray)) {
return $GroupArray;
} else {
return [];
}
}
/**
*
* @param type $index
* @return type
*/
public function getMappingType($index = '')
{
$ingTypeArray = [
1 => 'Modifiers',
2 => 'Ingredients',
];
($index == '') ? ($ingTypeArray = $ingTypeArray) : ($ingTypeArray = ArrayHelper::getValue($ingTypeArray, $index));
return $ingTypeArray;
}
/**
*
* @param type $ingredientType
* @param type $id
* @return type
*/
public function getIngredientGroupData($ingredientType = '', $id = '')
{
if ($id == '') {
$ingGroupDataArray = ItemIngredientGroup::find()
->alias('IIG')
->select(['IIG.item_ingredient_group_id','IIGL.group_name'])
->innerJoin(['IIGL' => ItemIngredientGroupLang::tableName()], 'IIGL.item_ingredient_group_id = IIG.item_ingredient_group_id')
->where(['IIGL.language_code' => Yii::$app->language])
->andWhere(['IIG.item_ingredient_status' => self::ACTIVE])
->andWhere(['IIG.ingredient_type' => $ingredientType])
->orderBy(['IIG.item_ingredient_group_id' => SORT_DESC])
->asArray()
->All();
} else {
$ingGroupDataArray = ItemIngredientGroup::find()
->alias('IIG')
->select(['IIG.item_ingredient_group_id','IIGL.group_name'])
->innerJoin(['IIGL' => ItemIngredientGroupLang::tableName()], 'IIGL.item_ingredient_group_id = IIG.item_ingredient_group_id')
->where(['IIGL.language_code' => Yii::$app->language])
->andWhere(['IIG.item_ingredient_status' => self::ACTIVE])
->andWhere(['IIG.ingredient_type' => $ingredientType])
->andWhere(['NOT IN', 'IIG.item_ingredient_group_id', $id])
->orderBy(['IIG.item_ingredient_group_id' => SORT_DESC])
->asArray()
->All();
}
if (!empty($ingGroupDataArray)) {
return ArrayHelper::map($ingGroupDataArray,'item_ingredient_group_id','group_name');
} else {
return [];
}
}
public function uniqueValidation($attribute)
{
$item_id = $this->$attribute;
$item = ItemMapping::find()
->where(['item_id'=> $item_id])
->andwhere(['<>','item_mapping_status',ItemMapping::DELETE]);
if(!$this->getIsNewRecord()) {
$item->andwhere(['<>','item_mapping_id',$this->getPrimaryKey()]);
}
$item = $item->one();
if (!empty($item))
{ $item = ItemLang::find()
->where(['item_id' => $item_id])
->andwhere(['language_code' => \yii::$app->language])
->one();
$this->addError('item_id', $item->item_name . " Already Mapped, Must be Unique.. ");
}
}
}