| Current Path : /home/users/unlimited/www/admin.priyotama.com/resources/views/admin-views/product/ |
| Current File : /home/users/unlimited/www/admin.priyotama.com/resources/views/admin-views/product/index.blade.php |
@extends('layouts.admin.app')
@section('title', translate('messages.add_new_item'))
@push('css_or_js')
<meta name="csrf-token" content="{{ csrf_token() }}">
<link href="{{ asset('public/assets/admin/css/tags-input.min.css') }}" rel="stylesheet">
@endpush
@section('content')
<div class="content container-fluid">
<!-- Page Header -->
<div class="page-header d-flex flex-wrap __gap-15px justify-content-between align-items-center">
<h1 class="page-header-title">
<span class="page-header-icon">
<img src="{{ asset('public/assets/admin/img/items.png') }}" class="w--22" alt="">
</span>
<span>
{{ translate('messages.add_new_item') }}
</span>
</h1>
<div class=" d-flex flex-sm-nowrap flex-wrap align-items-end">
<div class="text--primary-2 d-flex flex-wrap align-items-center mr-2">
<a href="{{ route('admin.item.product_gallery') }}" class="btn btn-outline-primary btn--primary d-flex align-items-center bg-not-hover-primary-ash rounded-8 gap-2">
<img src="{{ asset('public/assets/admin/img/product-gallery.png') }}" class="w--22" alt="">
<span>{{translate('Add Info From Gallery')}}</span>
</a>
</div>
@if(Config::get('module.current_module_type') == 'food')
<div class="text--primary-2 py-1 d-flex flex-wrap align-items-center mb-3 foodModalShow" type="button" >
<strong class="mr-2">{{translate('See_how_it_works!')}}</strong>
<div>
<i class="tio-info-outined"></i>
</div>
</div>
@else
<div class="text--primary-2 py-1 d-flex flex-wrap align-items-center mb-3 attributeModalShow" type="button" >
<strong class="mr-2">{{translate('See_how_it_works!')}}</strong>
<div>
<i class="tio-info-outined"></i>
</div>
</div>
@endif
</div>
</div>
<!-- End Page Header -->
<form action="javascript:" method="post" id="item_form" enctype="multipart/form-data">
@csrf
@php($language = \App\Models\BusinessSetting::where('key', 'language')->first())
@php($language = $language->value ?? null)
@php($defaultLang = str_replace('_', '-', app()->getLocale()))
<div class="row g-2">
<div class="col-md-6">
<div class="card h-100">
<div class="card-body">
@if ($language)
<ul class="nav nav-tabs border-0 mb-3">
<li class="nav-item">
<a class="nav-link lang_link active"
href="#"
id="default-link">{{translate('messages.default')}}</a>
</li>
@foreach (json_decode($language) as $lang)
<li class="nav-item">
<a class="nav-link lang_link"
href="#"
id="{{ $lang }}-link">{{ \App\CentralLogics\Helpers::get_language_name($lang) . '(' . strtoupper($lang) . ')' }}</a>
</li>
@endforeach
</ul>
@endif
@if ($language)
<div class="lang_form"
id="default-form">
<div class="form-group">
<label class="input-label"
for="default_name">{{ translate('messages.name') }}
( {{ translate('messages.Default') }}) <span class="form-label-secondary text-danger"
data-toggle="tooltip" data-placement="right"
data-original-title="{{ translate('messages.Required.')}}"> *
</span>
</label>
<input type="text" name="name[]" id="default_name"
class="form-control" placeholder="{{ translate('messages.new_item') }}"
>
</div>
<input type="hidden" name="lang[]" value="default">
<div class="form-group mb-0">
<label class="input-label"
for="exampleFormControlInput1">{{ translate('messages.short_description') }} ({{ translate('messages.default') }})<span class="form-label-secondary text-danger"
data-toggle="tooltip" data-placement="right"
data-original-title="{{ translate('messages.Required.')}}"> *
</span></label>
<textarea type="text" name="description[]" class="form-control min-h-90px ckeditor"></textarea>
</div>
</div>
@foreach (json_decode($language) as $lang)
<div class="d-none lang_form"
id="{{ $lang }}-form">
<div class="form-group">
<label class="input-label"
for="{{ $lang }}_name">{{ translate('messages.name') }}
({{ strtoupper($lang) }})
</label>
<input type="text" name="name[]" id="{{ $lang }}_name"
class="form-control" placeholder="{{ translate('messages.new_item') }}"
>
</div>
<input type="hidden" name="lang[]" value="{{ $lang }}">
<div class="form-group mb-0">
<label class="input-label"
for="exampleFormControlInput1">{{ translate('messages.short_description') }} ({{ strtoupper($lang) }})</label>
<textarea type="text" name="description[]" class="form-control min-h-90px ckeditor"></textarea>
</div>
</div>
@endforeach
@else
<div id="default-form">
<div class="form-group">
<label class="input-label"
for="exampleFormControlInput1">{{ translate('messages.name') }} ({{ translate('messages.default') }})</label>
<input type="text" name="name[]" class="form-control"
placeholder="{{ translate('messages.new_item') }}" >
</div>
<input type="hidden" name="lang[]" value="default">
<div class="form-group mb-0">
<label class="input-label"
for="exampleFormControlInput1">{{ translate('messages.short_description') }}</label>
<textarea type="text" name="description[]" class="form-control min-h-90px ckeditor"></textarea>
</div>
</div>
@endif
</div>
</div>
</div>
<div class="col-md-6">
<div class="card h-100">
<div class="card-body d-flex flex-wrap align-items-center">
<div class="w-100 d-flex flex-wrap __gap-15px">
<div class="flex-grow-1 mx-auto">
<label class="text-dark d-block mb-4 mb-xl-5">
{{ translate('messages.item_image') }}
<small class="">( {{ translate('messages.ratio') }} 1:1 )</small>
</label>
<div class="d-flex flex-wrap __gap-12px __new-coba" id="coba"></div>
</div>
<div class="flex-grow-1 mx-auto">
<label class="text-dark d-block mb-4 mb-xl-5">
{{ translate('messages.item_thumbnail') }}
@if(Config::get('module.current_module_type') == 'food')
<small class="">( {{ translate('messages.ratio') }} 1:1 )</small>
@else
<small class="text-danger">* ( {{ translate('messages.ratio') }} 1:1 )</small>
@endif
</label>
<label class="d-inline-block m-0 position-relative">
<img class="img--176 border" id="viewer" src="{{ asset('public/assets/admin/img/upload-img.png') }}" alt="thumbnail" />
<div class="icon-file-group">
<div class="icon-file"><input type="file" name="image" id="customFileEg1" class="custom-file-input d-none"
accept=".webp, .jpg, .png, .webp, .jpeg, .gif, .bmp, .tif, .tiff|image/*">
<i class="tio-edit"></i>
</div>
</div>
</label>
</div>
</div>
</div>
</div>
</div>
<div class="col-md-12">
<div class="card shadow--card-2 border-0">
<div class="card-header">
<h5 class="card-title">
<span class="card-header-icon mr-2">
<i class="tio-tune-horizontal"></i>
</span>
<span> {{ translate('Store_&_Category_Info') }} </span>
</h5>
</div>
<div class="card-body">
<div class="row g-2 align-items-end">
<div class="col-sm-6 col-lg-3">
<div class="form-group mb-0">
<label class="input-label" for="store_id">{{ translate('messages.store') }} <span class="form-label-secondary text-danger"
data-toggle="tooltip" data-placement="right"
data-original-title="{{ translate('messages.Required.')}}"> *
</span><span
class="input-label-secondary"></span></label>
<select name="store_id" id="store_id"
data-placeholder="{{ translate('messages.select_store') }}" class="js-data-example-ajax form-control"
oninvalid="this.setCustomValidity('{{ translate('messages.please_select_store') }}')">
</select>
</div>
</div>
<div class="col-sm-6 col-lg-3">
<div class="form-group mb-0">
<label class="input-label"
for="category_id">{{ translate('messages.category') }}<span class="form-label-secondary text-danger"
data-toggle="tooltip" data-placement="right"
data-original-title="{{ translate('messages.Required.')}}"> *
</span></label>
<select name="category_id" id="category_id" data-placeholder="{{ translate('messages.select_category') }}"
class="js-data-example-ajax form-control">
</select>
</div>
</div>
<div class="col-sm-6 col-lg-3">
<div class="form-group mb-0">
<label class="input-label"
for="sub-categories">{{ translate('messages.sub_category') }}<span
class="input-label-secondary"
title="{{ translate('messages.category_required_warning') }}"><img
src="{{ asset('/public/assets/admin/img/info-circle.svg') }}"
alt="{{ translate('messages.category_required_warning') }}"></span></label>
<select name="sub_category_id" class="js-data-example-ajax form-control" data-placeholder="{{ translate('messages.select_sub_category') }}"
id="sub-categories">
</select>
</div>
</div>
<div class="col-sm-6 col-lg-3" id="condition_input">
<div class="form-group mb-0">
<label class="input-label" for="condition_id">{{ translate('messages.Suitable_For') }}<span
class="input-label-secondary"></span></label>
<select name="condition_id" id="condition_id"
data-placeholder="{{ translate('messages.Select_Condition') }}" class="js-data-example-ajax form-control"
oninvalid="this.setCustomValidity('{{ translate('messages.Select_Condition') }}')">
</select>
</div>
</div>
<div class="col-sm-6 col-lg-3" id="brand_input">
<div class="form-group mb-0">
<label class="input-label" for="brand_id">{{ translate('messages.Brand') }}<span
class="input-label-secondary"></span></label>
<select name="brand_id" id="brand_id"
data-placeholder="{{ translate('messages.Select_brand') }}" class="js-data-example-ajax form-control"
oninvalid="this.setCustomValidity('{{ translate('messages.Select_brand') }}')">
</select>
</div>
</div>
<div class="col-sm-6 col-lg-3" id="unit_input">
<div class="form-group mb-0">
<label class="input-label text-capitalize"
for="unit">{{ translate('messages.unit') }}</label>
<select name="unit" id="unit" class="form-control js-select2-custom">
@foreach (\App\Models\Unit::all() as $unit)
<option value="{{ $unit->id }}">{{ $unit->unit }}</option>
@endforeach
</select>
</div>
</div>
<div class="col-sm-6 col-lg-3" id="veg_input">
<div class="form-group mb-0">
<label class="input-label"
for="exampleFormControlInput1">{{ translate('messages.item_type') }} <span class="form-label-secondary text-danger"
data-toggle="tooltip" data-placement="right"
data-original-title="{{ translate('messages.Required.')}}"> *
</span></label>
<select name="veg" id="veg" class="form-control js-select2-custom"
required>
<option value="0">{{ translate('messages.non_veg') }}</option>
<option value="1">{{ translate('messages.veg') }}</option>
</select>
</div>
</div>
@if(Config::get('module.current_module_type') == 'grocery' || Config::get('module.current_module_type') == 'food')
<div class="col-sm-6" id="nutrition">
<label class="input-label" for="sub-categories">
{{translate('Nutrition')}}
<span class="input-label-secondary" title="{{ translate('Specify the necessary keywords relating to energy values for the item.') }}" data-toggle="tooltip">
<i class="tio-info-outined"></i>
</span>
</label>
<select name="nutritions[]" class="form-control multiple-select2" data-placeholder="{{ translate('messages.Type your content and press enter') }}" multiple>
@foreach (\App\Models\Nutrition::select(['nutrition'])->get() as $nutrition)
<option value="{{ $nutrition->nutrition }}">{{ $nutrition->nutrition }}</option>
@endforeach
</select>
</div>
<div class="col-sm-6" id="allergy">
<label class="input-label" for="sub-categories">
{{translate('Allegren Ingredients')}}
<span class="input-label-secondary" title="{{ translate('Specify the ingredients of the item which can make a reaction as an allergen.') }}" data-toggle="tooltip">
<i class="tio-info-outined"></i>
</span>
</label>
<select name="allergies[]" class="form-control multiple-select2" data-placeholder="{{ translate('messages.Type your content and press enter') }}" multiple>
@foreach (\App\Models\Allergy::select(['allergy'])->get() as $allergy)
<option value="{{ $allergy->allergy }}">{{ $allergy->allergy }}</option>
@endforeach
</select>
</div>
@endif
<div class="col-sm-6 col-lg-3" id="maximum_cart_quantity">
<div class="form-group mb-0">
<label class="input-label"
for="maximum_cart_quantity">{{ translate('messages.Maximum_Purchase_Quantity_Limit') }}
<span
class="input-label-secondary text--title" data-toggle="tooltip"
data-placement="right"
data-original-title="{{ translate('If_this_limit_is_exceeded,_customers_can_not_buy_the_item_in_a_single_purchase.') }}">
<i class="tio-info-outined"></i>
</span>
</label>
<input type="number" placeholder="{{ translate('messages.Ex:_10') }}" class="form-control" name="maximum_cart_quantity" min="0" id="cart_quantity">
</div>
</div>
<div class="col-sm-6 col-lg-3" id="organic">
<div class="form-check mb-sm-2 pb-sm-1">
<input class="form-check-input" name="organic" type="checkbox" value="1" id="flexCheckDefault" checked>
<label class="form-check-label" for="flexCheckDefault">
{{ translate('messages.is_organic') }}
</label>
</div>
</div>
<div class="col-sm-6 col-lg-3" id="basic">
<div class="form-check mb-sm-2 pb-sm-1">
<input class="form-check-input" name="basic" type="checkbox" value="1" id="flexCheckDefaultBasic" checked>
<label class="form-check-label" for="flexCheckDefaultBasic">
{{ translate('messages.Is_Basic_Medicine') }}
</label>
</div>
</div>
@if(Config::get('module.current_module_type') == 'pharmacy')
<div class="col-sm-6 col-lg-3" id="is_prescription_required">
<div class="form-check mb-sm-2 pb-sm-1">
<input class="form-check-input" name="is_prescription_required" type="checkbox" value="1" id="flexCheckDefaultprescription" checked>
<label class="form-check-label" for="flexCheckDefaultprescription">
{{ translate('messages.is_prescription_required') }}
</label>
</div>
</div>
<div class="col-sm-6" id="generic_name">
<label class="input-label" for="sub-categories">
{{translate('generic_name')}}
<span class="input-label-secondary" title="{{ translate('Specify the medicine`s active ingredient that makes it work') }}" data-toggle="tooltip">
<i class="tio-info-outined"></i>
</span>
</label>
<div class="dropdown suggestion_dropdown">
<input type="text" class="form-control" name="generic_name" autocomplete="off">
@if(count(\App\Models\GenericName::select(['generic_name'])->get())>0)
<div class="dropdown-menu">
@foreach (\App\Models\GenericName::select(['generic_name'])->get() as $generic_name)
<div class="dropdown-item">{{ $generic_name->generic_name }}</div>
@endforeach
</div>
@endif
</div>
</div>
@endif
@if(Config::get('module.current_module_type') == 'grocery' || Config::get('module.current_module_type') == 'food')
<div class="col-sm-6 col-lg-3" id="halal">
<div class="form-check mb-sm-2 pb-sm-1">
<input class="form-check-input" name="is_halal" type="checkbox" value="1" id="flexCheckDefault1" checked>
<label class="form-check-label" for="flexCheckDefault1">
{{ translate('messages.Is_It_Halal') }}
</label>
</div>
</div>
@endif
</div>
</div>
</div>
</div>
<div class="col-md-6" id="addon_input">
<div class="card shadow--card-2 border-0">
<div class="card-header">
<h5 class="card-title">
<span class="card-header-icon"><i class="tio-dashboard-outlined"></i></span>
<span>{{ translate('messages.addon') }}</span>
</h5>
</div>
<div class="card-body">
<div class="form-group mb-0">
<label class="input-label"
for="exampleFormControlSelect1">{{ translate('messages.addon') }}<span
class="input-label-secondary"
title="{{ translate('messages.addon') }}"><img
src="{{ asset('/public/assets/admin/img/info-circle.svg') }}"
alt="{{ translate('messages.store_required_warning') }}"></span></label>
<select name="addon_ids[]" class="form-control js-select2-custom"
multiple="multiple" id="add_on">
</select>
</div>
</div>
</div>
</div>
<div class="col-md-6" id="time_input">
<div class="card shadow--card-2 border-0">
<div class="card-header">
<h5 class="card-title">
<span class="card-header-icon"><i class="tio-date-range"></i></span>
<span>{{ translate('time_schedule') }}</span>
</h5>
</div>
<div class="card-body">
<div class="row g-2">
<div class="col-sm-6">
<div class="form-group mb-0">
<label class="input-label"
for="exampleFormControlInput1">{{ translate('messages.available_time_starts') }}</label>
<input type="time" name="available_time_starts" class="form-control"
id="available_time_starts"
placeholder="{{ translate('messages.Ex:') }} 10:30 am">
</div>
</div>
<div class="col-sm-6">
<div class="form-group mb-0">
<label class="input-label"
for="exampleFormControlInput1">{{ translate('messages.available_time_ends') }}</label>
<input type="time" name="available_time_ends" class="form-control"
id="available_time_ends" placeholder="5:45 pm">
</div>
</div>
</div>
</div>
</div>
</div>
<div class="col-md-12">
<div class="card shadow--card-2 border-0">
<div class="card-header">
<h5 class="card-title">
<span class="card-header-icon"><i class="tio-label-outlined"></i></span>
<span>{{ translate('Price Information') }}</span>
</h5>
</div>
<div class="card-body">
<div class="row g-2">
<div class="col-sm-{{ Config::get('module.current_module_type') == 'food' ? '4' :'3' }} col-6">
<div class="form-group mb-0">
<label class="input-label"
for="exampleFormControlInput1">{{ translate('messages.price') }} <span class="form-label-secondary text-danger"
data-toggle="tooltip" data-placement="right"
data-original-title="{{ translate('messages.Required.')}}"> *
</span></label>
<input type="number" min="0" max="999999999999.99" step="0.01"
value="1" name="price" class="form-control"
placeholder="{{ translate('messages.Ex:') }} 100" required>
</div>
</div>
<div class="col-sm-{{ Config::get('module.current_module_type') == 'food' ? '4' :'3' }} col-6" id="stock_input">
<div class="form-group mb-0">
<label class="input-label"
for="total_stock">{{ translate('messages.total_stock') }}</label>
<input type="number" placeholder="{{ translate('messages.Ex:_10') }}" class="form-control" name="current_stock" min="0" id="quantity">
</div>
</div>
<div class="col-sm-{{ Config::get('module.current_module_type') == 'food' ? '4' :'3' }} col-6">
<div class="form-group mb-0">
<label class="input-label"
for="exampleFormControlInput1">{{ translate('messages.discount_type') }} <span class="form-label-secondary text-danger"
data-toggle="tooltip" data-placement="right"
data-original-title="{{ translate('messages.Required.')}}"> *
</span><span
class="input-label-secondary text--title" data-toggle="tooltip"
data-placement="right"
data-original-title="{{ translate('Admin_shares_the_same_percentage/amount_on_discount_as_he_takes_commissions_from_stores') }}">
<i class="tio-info-outined"></i>
</span>
</label>
<select name="discount_type" id="discount_type"
class="form-control js-select2-custom">
<option value="percent">{{ translate('messages.percent') }} (%)</option>
<option value="amount">{{ translate('messages.amount') }} ({{ \App\CentralLogics\Helpers::currency_symbol() }})
</option>
</select>
</div>
</div>
<div class="col-sm-{{ Config::get('module.current_module_type') == 'food' ? '4' :'3' }} col-6">
<div class="form-group mb-0">
<label class="input-label"
for="exampleFormControlInput1">{{ translate('messages.discount') }}
<span id=symble> (%) </span>
<span class="form-label-secondary text-danger"
data-toggle="tooltip" data-placement="right"
data-original-title="{{ translate('messages.Required.')}}"> *
</span></label>
<input type="number" min="0" max="9999999999999999999999" value="0"
name="discount" class="form-control"
placeholder="{{ translate('messages.Ex:') }} 100">
</div>
</div>
</div>
</div>
</div>
</div>
@if ($productWiseTax)
<div class="col-lg-12">
<div class="card shadow--card-2 border-0">
<div class="card-header flex-wrap">
<h5 class="card-title">
<span class="card-header-icon mr-2">
<i class="tio-canvas-text"></i>
</span>
<span>{{ translate('messages.Tax_Information') }}</span>
</h5>
</div>
<div class="card-body">
<span class="mb-2 d-block title-clr fw-normal">{{ translate('Select Tax Rate') }}</span>
<select name="tax_ids[]" required id="tax__rate" class="form-control js-select2-custom"
multiple="multiple" placeholder="Type & Select Tax Rate">
@foreach ($taxVats as $taxVat)
<option value="{{ $taxVat->id }}"> {{ $taxVat->name }}
({{ $taxVat->tax_rate }}%)
</option>
@endforeach
</select>
</div>
</div>
</div>
@endif
<div class="col-lg-12" id="food_variation_section">
<div class="card shadow--card-2 border-0">
<div class="card-header flex-wrap">
<h5 class="card-title">
<span class="card-header-icon mr-2">
<i class="tio-canvas-text"></i>
</span>
<span>{{ translate('messages.food_variations') }}</span>
</h5>
<a class="btn text--primary-2" id="add_new_option_button">
{{ translate('add_new_variation') }}
<i class="tio-add"></i>
</a>
</div>
<div class="card-body">
<!-- Empty Variation -->
<div id="empty-variation">
<div class="text-center">
<img src="{{asset('/public/assets/admin/img/variation.png')}}" alt="">
<div>{{translate('No variation added')}}</div>
</div>
</div>
<div id="add_new_option">
</div>
</div>
</div>
</div>
<div class="col-md-12" id="attribute_section">
<div class="card shadow--card-2 border-0">
<div class="card-header">
<h5 class="card-title">
<span class="card-header-icon"><i class="tio-canvas-text"></i></span>
<span>{{ translate('attribute') }}</span>
</h5>
</div>
<div class="card-body pb-0">
<div class="row g-2">
<div class="col-12">
<div class="form-group mb-0">
<label class="input-label"
for="exampleFormControlSelect1">{{ translate('messages.attribute') }}<span
class="input-label-secondary"></span></label>
<select name="attribute_id[]" id="choice_attributes"
class="form-control js-select2-custom" multiple="multiple">
@foreach (\App\Models\Attribute::orderBy('name')->get() as $attribute)
<option value="{{ $attribute['id'] }}">{{ $attribute['name'] }}</option>
@endforeach
</select>
</div>
</div>
<div class="col-md-12">
<div class="table-responsive">
<div class="customer_choice_options d-flex __gap-24px"
id="customer_choice_options">
</div>
</div>
</div>
<div class="col-md-12">
<div class="variant_combination" id="variant_combination">
</div>
</div>
</div>
</div>
</div>
</div>
<div class="col-md-12">
<div class="card shadow--card-2 border-0">
<div class="card-header">
<h5 class="card-title">
<span class="card-header-icon"><i class="tio-label"></i></span>
<span>{{ translate('tags') }}</span>
</h5>
</div>
<div class="card-body pb-0">
<div class="row g-2">
<div class="col-12">
<div class="form-group">
<input type="text" class="form-control" name="tags" placeholder="{{translate('messages.search_tags')}}" data-role="tagsinput">
</div>
</div>
</div>
</div>
</div>
</div>
<div class="col-md-12">
<div class="btn--container justify-content-end">
<button type="reset" id="reset_btn"
class="btn btn--reset">{{ translate('messages.reset') }}</button>
<button type="submit" id="submitButton" class="btn btn--primary">{{ translate('messages.submit') }}</button>
</div>
</div>
</div>
</form>
</div>
<div class="modal" id="food-modal">
<div class="modal-dialog modal-xl">
<div class="modal-content">
<div class="modal-body">
<button type="button" class="close foodModalClose" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
<div class="embed-responsive embed-responsive-16by9">
<iframe class="embed-responsive-item" src="https://www.youtube.com/embed/IkoF9gPH6zs" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
</div>
</div>
</div>
</div>
</div>
<div class="modal" id="attribute-modal">
<div class="modal-dialog modal-xl">
<div class="modal-content">
<div class="modal-body">
<button type="button" class="close attributeModalClose" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
<div class="embed-responsive embed-responsive-16by9">
<iframe class="embed-responsive-item" src="https://www.youtube.com/embed/xG8fO7TXPbk" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
</div>
</div>
</div>
</div>
</div>
@endsection
@push('script_2')
<script src="{{ asset('public/assets/admin') }}/js/tags-input.min.js"></script>
<script src="{{ asset('public/assets/admin/js/spartan-multi-image-picker.js') }}"></script>
<script src="{{asset('public/assets/admin')}}/js/view-pages/product-index.js"></script>
<script>
"use strict";
$(document).on('change', '#discount_type', function () {
let data = document.getElementById("discount_type");
if(data.value === 'amount'){
$('#symble').text("({{ \App\CentralLogics\Helpers::currency_symbol() }})");
}
else{
$('#symble').text("(%)");
}
});
$(document).ready(function() {
$("#add_new_option_button").click(function(e) {
$('#empty-variation').hide();
count++;
let add_option_view = `
<div class="__bg-F8F9FC-card view_new_option mb-2">
<div>
<div class="d-flex align-items-center justify-content-between mb-3">
<label class="form-check form--check">
<input id="options[` + count + `][required]" name="options[` + count + `][required]" class="form-check-input" type="checkbox">
<span class="form-check-label">{{ translate('Required') }}</span>
</label>
<div>
<button type="button" class="btn btn-danger btn-sm delete_input_button"
title="{{ translate('Delete') }}">
<i class="tio-add-to-trash"></i>
</button>
</div>
</div>
<div class="row g-2">
<div class="col-xl-4 col-lg-6">
<label for="">{{ translate('name') }}</label>
<input required name=options[` + count +
`][name] class="form-control new_option_name" type="text" data-count="`+
count +`">
</div>
<div class="col-xl-4 col-lg-6">
<div>
<label class="input-label text-capitalize d-flex align-items-center"><span class="line--limit-1">{{ translate('messages.selcetion_type') }} </span>
</label>
<div class="resturant-type-group px-0">
<label class="form-check form--check mr-2 mr-md-4">
<input class="form-check-input show_min_max" data-count="`+count+`" type="radio" value="multi"
name="options[` + count + `][type]" id="type` + count +
`" checked
>
<span class="form-check-label">
{{ translate('Multiple Selection') }}
</span>
</label>
<label class="form-check form--check mr-2 mr-md-4">
<input class="form-check-input hide_min_max" data-count="`+count+`" type="radio" value="single"
name="options[` + count + `][type]" id="type` + count +
`"
>
<span class="form-check-label">
{{ translate('Single Selection') }}
</span>
</label>
</div>
</div>
</div>
<div class="col-xl-4 col-lg-6">
<div class="row g-2">
<div class="col-6">
<label for="">{{ translate('Min') }}</label>
<input id="min_max1_` + count + `" required name="options[` + count + `][min]" class="form-control" type="number" min="1">
</div>
<div class="col-6">
<label for="">{{ translate('Max') }}</label>
<input id="min_max2_` + count + `" required name="options[` + count + `][max]" class="form-control" type="number" min="1">
</div>
</div>
</div>
</div>
<div id="option_price_` + count + `" >
<div class="bg-white border rounded p-3 pb-0 mt-3">
<div id="option_price_view_` + count + `">
<div class="row g-3 add_new_view_row_class mb-3">
<div class="col-md-4 col-sm-6">
<label for="">{{ translate('Option_name') }}</label>
<input class="form-control" required type="text" name="options[` +
count +
`][values][0][label]" id="">
</div>
<div class="col-md-4 col-sm-6">
<label for="">{{ translate('Additional_price') }}</label>
<input class="form-control" required type="number" min="0" step="0.01" name="options[` +
count + `][values][0][optionPrice]" id="">
</div>
</div>
</div>
<div class="row mt-3 p-3 mr-1 d-flex " id="add_new_button_` + count +
`">
<button type="button" class="btn btn--primary btn-outline-primary add_new_row_button" data-count="`+
count +`">{{ translate('Add_New_Option') }}</button>
</div>
</div>
</div>
</div>
</div>`;
$("#add_new_option").append(add_option_view);
});
// INITIALIZATION OF SELECT2
// =======================================================
$('.js-select2-custom').each(function() {
let select2 = $.HSCore.components.HSSelect2.init($(this));
});
});
function add_new_row_button(data) {
count = data;
countRow = 1 + $('#option_price_view_' + data).children('.add_new_view_row_class').length;
let add_new_row_view = `
<div class="row add_new_view_row_class mb-3 position-relative pt-3 pt-sm-0">
<div class="col-md-4 col-sm-5">
<label for="">{{ translate('Option_name') }}</label>
<input class="form-control" required type="text" name="options[` + count + `][values][` +
countRow + `][label]" id="">
</div>
<div class="col-md-4 col-sm-5">
<label for="">{{ translate('Additional_price') }}</label>
<input class="form-control" required type="number" min="0" step="0.01" name="options[` +
count +
`][values][` + countRow + `][optionPrice]" id="">
</div>
<div class="col-sm-2 max-sm-absolute">
<label class="d-none d-sm-block"> </label>
<div class="mt-1">
<button type="button" class="btn btn-danger btn-sm deleteRow"
title="{{ translate('Delete') }}">
<i class="tio-add-to-trash"></i>
</button>
</div>
</div>
</div>`;
$('#option_price_view_' + data).append(add_new_row_view);
}
$('#store_id').on('change', function () {
let route = '{{url('/')}}/admin/store/get-addons?data[]=0&store_id='+$(this).val();
let id = 'add_on';
getRestaurantData(route, id);
});
function modulChange(id) {
$.get({
url: "{{url('/')}}/admin/business-settings/module/show/"+id,
dataType: 'json',
success: function(data) {
module_data = data.data;
console.log(module_data)
stock = module_data.stock;
module_type = data.type;
if (stock) {
$('#stock_input').show();
} else {
$('#stock_input').hide();
}
if (module_data.add_on) {
$('#addon_input').show();
} else {
$('#addon_input').hide();
}
if (module_data.item_available_time) {
$('#time_input').show();
} else {
$('#time_input').hide();
}
if (module_data.veg_non_veg) {
$('#veg_input').show();
} else {
$('#veg_input').hide();
}
if (module_data.unit) {
$('#unit_input').show();
} else {
$('#unit_input').hide();
}
if (module_data.common_condition) {
$('#condition_input').show();
} else {
$('#condition_input').hide();
}
if (module_data.brand) {
$('#brand_input').show();
} else {
$('#brand_input').hide();
}
combination_update();
if (module_type == 'food') {
$('#food_variation_section').show();
$('#attribute_section').hide();
} else {
$('#food_variation_section').hide();
$('#attribute_section').show();
}
if (module_data.organic) {
$('#organic').show();
} else {
$('#organic').hide();
}
if (module_data.basic) {
$('#basic').show();
} else {
$('#basic').hide();
}
if (module_data.nutrition) {
$('#nutrition').show();
} else {
$('#nutrition').hide();
}
if (module_data.allergy) {
$('#allergy').show();
} else {
$('#allergy').hide();
}
},
});
module_id = id;
}
modulChange({{Config::get('module.current_module_id')}});
$('#condition_id').select2({
ajax: {
url: '{{ url('/') }}/admin/common-condition/get-all',
data: function(params) {
return {
q: params.term, // search term
page: params.page,
};
},
processResults: function(data) {
return {
results: data
};
},
__port: function(params, success, failure) {
let $request = $.ajax(params);
$request.then(success);
$request.fail(failure);
return $request;
}
}
});
$('#brand_id').select2({
ajax: {
url: '{{ url('/') }}/admin/brand/get-all',
data: function(params) {
return {
q: params.term, // search term
page: params.page,
};
},
processResults: function(data) {
return {
results: data
};
},
__port: function(params, success, failure) {
let $request = $.ajax(params);
$request.then(success);
$request.fail(failure);
return $request;
}
}
});
$('#store_id').select2({
ajax: {
url: '{{ url('/') }}/admin/store/get-stores',
data: function(params) {
return {
q: params.term, // search term
page: params.page,
module_id:{{Config::get('module.current_module_id')}},
};
},
processResults: function(data) {
return {
results: data
};
},
__port: function(params, success, failure) {
let $request = $.ajax(params);
$request.then(success);
$request.fail(failure);
return $request;
}
}
});
$('#category_id').select2({
ajax: {
url: '{{ url('/') }}/admin/item/get-categories?parent_id=0',
data: function(params) {
return {
q: params.term, // search term
page: params.page,
module_id:{{Config::get('module.current_module_id')}},
};
},
processResults: function(data) {
return {
results: data
};
},
__port: function(params, success, failure) {
let $request = $.ajax(params);
$request.then(success);
$request.fail(failure);
return $request;
}
}
});
$('#sub-categories').select2({
ajax: {
url: '{{ url('/') }}/admin/item/get-categories',
data: function(params) {
return {
q: params.term, // search term
page: params.page,
module_id:{{Config::get('module.current_module_id')}},
parent_id: parent_category_id,
sub_category: true
};
},
processResults: function(data) {
return {
results: data
};
},
__port: function(params, success, failure) {
let $request = $.ajax(params);
$request.then(success);
$request.fail(failure);
return $request;
}
}
});
$('#choice_attributes').on('change', function() {
if (module_id == 0) {
toastr.error('{{ translate('messages.select_a_module') }}', {
CloseButton: true,
ProgressBar: true
});
$(this).val("");
return false;
}
$('#customer_choice_options').html(null);
$('#variant_combination').html(null);
$.each($("#choice_attributes option:selected"), function() {
if ($(this).val().length > 50) {
toastr.error(
'{{ translate('validation.max.string', ['attribute' => translate('messages.variation'), 'max' => '50']) }}', {
CloseButton: true,
ProgressBar: true
});
return false;
}
add_more_customer_choice_option($(this).val(), $(this).text());
});
});
function add_more_customer_choice_option(i, name) {
let n = name;
$('#customer_choice_options').append(
`<div class="__choos-item"><div><input type="hidden" name="choice_no[]" value="${i}"><input type="text" class="form-control d-none" name="choice[]" value="${n}" placeholder="{{ translate('messages.choice_title') }}" readonly> <label class="form-label">${n}</label> </div><div><input type="text" class="form-control combination_update" name="choice_options_${i}[]" placeholder="{{ translate('messages.enter_choice_values') }}" data-role="tagsinput"></div></div>`
);
$("input[data-role=tagsinput], select[multiple][data-role=tagsinput]").tagsinput();
}
function combination_update() {
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
$.ajax({
type: "POST",
url: "{{ route('admin.item.variant-combination') }}",
data: $('#item_form').serialize() + '&stock=' + stock,
beforeSend: function() {
$('#loading').show();
},
success: function(data) {
$('#loading').hide();
$('#variant_combination').html(data.view);
if (data.length < 1) {
$('input[name="current_stock"]').attr("readonly", false);
}
}
});
}
// $('#item_form').on('keydown', function(e) {
// if (e.key === 'Enter') {
// e.preventDefault(); // Prevent submission on Enter
// }
// });
$('#item_form').on('submit', function(e) {
$('#submitButton').attr('disabled', true);
e.preventDefault();
let formData = new FormData(this);
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
$.post({
url: '{{ route('admin.item.store') }}',
data: $('#item_form').serialize(),
data: formData,
cache: false,
contentType: false,
processData: false,
beforeSend: function() {
$('#loading').show();
},
success: function(data) {
$('#loading').hide();
if (data.errors) {
for (let i = 0; i < data.errors.length; i++) {
toastr.error(data.errors[i].message, {
CloseButton: true,
ProgressBar: true
});
}
} else {
toastr.success("{{ translate('messages.product_added_successfully') }}", {
CloseButton: true,
ProgressBar: true
});
setTimeout(function() {
location.href =
"{{ route('admin.item.list') }}";
}, 1000);
}
}
});
});
$(function() {
$("#coba").spartanMultiImagePicker({
fieldName: 'item_images[]',
maxCount: 5,
rowHeight: '176px !important',
groupClassName: 'spartan_item_wrapper min-w-176px max-w-176px',
maxFileSize: '',
placeholderImage: {
image: "{{ asset('public/assets/admin/img/upload-img.png') }}",
width: '176px'
},
dropFileLabel: "Drop Here",
onAddRow: function(index, file) {
},
onRenderedPreview: function(index) {
},
onRemoveRow: function(index) {
},
onExtensionErr: function(index, file) {
toastr.error(
"{{ translate('messages.please_only_input_png_or_jpg_type_file') }}", {
CloseButton: true,
ProgressBar: true
});
},
onSizeErr: function(index, file) {
toastr.error("{{ translate('messages.file_size_too_big') }}", {
CloseButton: true,
ProgressBar: true
});
}
});
});
$('#reset_btn').click(function() {
$('#module_id').val(null).trigger('change');
$('#store_id').val(null).trigger('change');
$('#category_id').val(null).trigger('change');
$('#sub-categories').val(null).trigger('change');
$('#unit').val(null).trigger('change');
$('#veg').val(0).trigger('change');
$('#add_on').val(null).trigger('change');
$('#discount_type').val(null).trigger('change');
$('#choice_attributes').val(null).trigger('change');
$('#customer_choice_options').empty().trigger('change');
$('#variant_combination').empty().trigger('change');
$('#viewer').attr('src', "{{ asset('public/assets/admin/img/upload.png') }}");
$('#customFileEg1').val(null).trigger('change');
$("#coba").empty().spartanMultiImagePicker({
fieldName: 'item_images[]',
maxCount: 6,
rowHeight: '176px !important',
groupClassName: 'spartan_item_wrapper min-w-176px max-w-176px',
maxFileSize: '',
placeholderImage: {
image: "{{ asset('public/assets/admin/img/upload-img.png') }}",
width: '100%'
},
dropFileLabel: "Drop Here",
onAddRow: function(index, file) {
},
onRenderedPreview: function(index) {
},
onRemoveRow: function(index) {
},
onExtensionErr: function(index, file) {
toastr.error(
"{{ translate('messages.please_only_input_png_or_jpg_type_file') }}", {
CloseButton: true,
ProgressBar: true
});
},
onSizeErr: function(index, file) {
toastr.error("{{ translate('messages.file_size_too_big') }}", {
CloseButton: true,
ProgressBar: true
});
}
});
})
</script>
@endpush