1882 lines
68 KiB
JavaScript
1882 lines
68 KiB
JavaScript
window.OrderModulDefault={
|
||
actionFunction: function () {},
|
||
}
|
||
class DataModelOrder extends DataModel{
|
||
|
||
/*
|
||
* Constructor
|
||
*/
|
||
constructor (data,options) {
|
||
super(data,options)
|
||
if(typeof this.productSelected ==="undefined"){
|
||
this.productSelected={};
|
||
}
|
||
if(typeof this.productComment ==="undefined"){
|
||
this.productComment={};
|
||
}
|
||
console.log(this.constructor.name+' constructor called');
|
||
};
|
||
};
|
||
window.DataModelOrder=DataModelOrder;
|
||
|
||
window.Stepper=function () {
|
||
|
||
/*
|
||
* Variables accessible
|
||
* in the class
|
||
*/
|
||
let Opts = {
|
||
complete: ['supplier'],
|
||
available: ['supplier', 'parameter', 'productSelect', 'invoice', 'send'],
|
||
enable: ['supplier', 'invoice'],
|
||
load: [],
|
||
excludeLoaded:['invoice','send'],
|
||
loaded: [],
|
||
active: false,
|
||
URL: {
|
||
create: '',
|
||
},
|
||
UrlData:false,
|
||
onAfterLoad:function () {},
|
||
onAfterActivate:function () {},
|
||
autoCallback:{
|
||
'invoice':{
|
||
onAfterActivate:function () {},
|
||
},
|
||
'send':{
|
||
onAfterActivate:function () {},
|
||
},
|
||
},
|
||
nowLoaded:false,
|
||
|
||
};
|
||
|
||
let root=this;
|
||
/*
|
||
* Constructor
|
||
*/
|
||
this.construct = function (options) {
|
||
$.extend(Opts, options);
|
||
};
|
||
|
||
this.getOpts=function(){
|
||
return Opts;
|
||
}
|
||
this.setOpts=function(options){
|
||
$.extend(Opts, options);
|
||
}
|
||
|
||
|
||
|
||
this.init=function (options){
|
||
$.extend(Opts, options);
|
||
|
||
debug(Opts);
|
||
$('.step').each(function(){
|
||
let stepName=$(this).data('stepname');
|
||
if(Opts.complete.includes(stepName)){
|
||
root.setCompleted(stepName);
|
||
}
|
||
if(Opts.enable.includes(stepName)){
|
||
root.setEnabled(stepName);
|
||
}
|
||
if(Opts.load.includes(stepName)){
|
||
root.loadStepContent(stepName);
|
||
}
|
||
|
||
if(Opts.active===stepName){
|
||
root.setActive(stepName);
|
||
}
|
||
});
|
||
root.bindClickAction();
|
||
}
|
||
|
||
this.bindClickAction=function (){
|
||
let stepClickButtons=$('.stepClick');
|
||
stepClickButtons.off('click');
|
||
stepClickButtons.on('click',root.stepClick);
|
||
|
||
}
|
||
|
||
this.setCompleted=function (stepName){
|
||
console.log(stepName+' completed');
|
||
$('.step[data-stepName="'+stepName+'"]').addClass('completed');
|
||
}
|
||
|
||
this.unsetCompleted=function (stepName){
|
||
console.log(stepName+' Uncompleted');
|
||
$('.step[data-stepName="'+stepName+'"]').removeClass('completed');
|
||
Opts.complete=arrayRemove(Opts.complete,stepName);
|
||
}
|
||
|
||
this.unsetEnabled=function (stepName){
|
||
console.log(stepName+' Un enabled');
|
||
$('.click'+stepName).contents().unwrap();
|
||
Opts.enable=arrayRemove(Opts.enable,stepName);
|
||
}
|
||
this.setEnabled=function (stepName){
|
||
console.log(stepName+' enabled');
|
||
let stepItem=$('.step[data-stepName="'+stepName+'"]');
|
||
stepItem.html('<a class="stepClick click'+stepName+'" data-stepName="'+stepName+'" href="#">'+stepItem.html()+'</a>');
|
||
root.bindClickAction();
|
||
//$('.stepClick').click(root.stepClick);
|
||
|
||
}
|
||
|
||
this.addEnabled=function(stepName){
|
||
if(!Opts.enable.includes(stepName)){
|
||
Opts.enable.push(stepName);
|
||
}
|
||
root.setEnabled(stepName);
|
||
}
|
||
|
||
this.addCompleted=function(stepName){
|
||
if(!Opts.complete.includes(stepName)){
|
||
Opts.complete.push(stepName);
|
||
}
|
||
root.setCompleted(stepName);
|
||
root.bindClickAction();
|
||
}
|
||
|
||
|
||
this.loadStepContent=function (stepName){
|
||
let data={'type':stepName};
|
||
$.extend(data, Opts.UrlData);
|
||
|
||
$.ajax({
|
||
async: true,
|
||
type: "GET",
|
||
url: Opts.URL.create,
|
||
data: data,
|
||
cache: false,
|
||
success: function(result)
|
||
{
|
||
let container=$('.SC'+stepName.capitalize());
|
||
if($.inArray(stepName,Opts.excludeLoaded)==-1){
|
||
Opts.loaded.push(stepName);
|
||
}else{
|
||
console.log('excluded View');
|
||
}
|
||
container.html(result);
|
||
if(Opts.nowLoaded){
|
||
Opts.nowLoaded(stepName);
|
||
}
|
||
Opts.onAfterLoad();
|
||
}
|
||
});
|
||
}
|
||
|
||
this.clearLoaded=function () {
|
||
Opts.loaded=['supplier'];
|
||
$('.stepContainer').each(function(){
|
||
/*
|
||
console.log(this.classList);
|
||
console.log(this.classList.contains('SCSupplier'));
|
||
console.log($(this).attr('class'));
|
||
*/
|
||
if(!this.classList.contains('SCSupplier')){
|
||
$(this).html('');
|
||
}
|
||
});
|
||
}
|
||
|
||
this.setActiveFinish=function(stepName){
|
||
let container=$('.SC'+stepName.capitalize());
|
||
if(stepName==='productSelect'){
|
||
$('.containerStepper').addClass('activeSideBar');
|
||
}else{
|
||
$('.containerStepper').removeClass('activeSideBar');
|
||
}
|
||
debug('setActiveFinish show:'+stepName);
|
||
container.show();
|
||
Opts.nowLoaded=false;
|
||
root.active=stepName;
|
||
Opts.onAfterActivate();
|
||
if(typeof Opts.autoCallback[stepName]!=='undefined' ){
|
||
Opts.autoCallback[stepName].onAfterActivate();
|
||
}
|
||
}
|
||
this.setActive=function(stepName){
|
||
$('.stepContainer').hide();
|
||
if(!Opts.loaded.includes(stepName)){
|
||
root.loadStepContent(stepName);
|
||
Opts.nowLoaded=this.setActiveFinish;
|
||
}else{
|
||
this.setActiveFinish(stepName);
|
||
}
|
||
}
|
||
|
||
this.stepClick=function(event){
|
||
event.preventDefault();
|
||
let stepName=$(event.currentTarget).data('stepname');
|
||
console.log('setActive:'+stepName);
|
||
root.setActive(stepName);
|
||
}
|
||
}
|
||
|
||
window.OrderModule = function () {
|
||
|
||
/*
|
||
* Variables accessible
|
||
* in the class
|
||
*/
|
||
let Opts = {
|
||
testMode: false,
|
||
needStepper:true,
|
||
CSSSelectorForm:'.orderParameterForm',
|
||
defaultDeliveryDate:'',
|
||
dataSyncPauseTime:500,
|
||
token:null,
|
||
URL: {
|
||
root:null,
|
||
getDataTableContentProductList:null,
|
||
checkReadyToSend:null,
|
||
index:null,
|
||
show:null,
|
||
edit:null,
|
||
create: null,
|
||
store: null,
|
||
update:null,
|
||
destroy:null,
|
||
toggleFavorites:null,
|
||
},
|
||
};
|
||
|
||
const PublicVar = {};
|
||
let PublicVar2 = {'asd': '21'};
|
||
let ApiToken = null;
|
||
let Order=null;
|
||
let root = this;
|
||
let viewInicialized=[];
|
||
|
||
this.setOpts = function (options) {
|
||
$.extend(Opts, options);
|
||
}
|
||
|
||
this.getOpts = function () {
|
||
return Opts;
|
||
}
|
||
this.clickOrderEdit=function (data){
|
||
debug('clickEdit');
|
||
debug(data);
|
||
let ajaxUrl=Opts.URL.edit.replace('%id%',data.id);
|
||
APP.loadMainContent(ajaxUrl);
|
||
/* let ajaxData={};
|
||
ajaxData._token=Opts.token;
|
||
$.extend(ajaxData,Order);
|
||
let ajaxUrl=Opts.URL.edit.replace('%id%',data.id);
|
||
$.ajax({
|
||
url: ajaxUrl,
|
||
method:'GET',
|
||
data:ajaxData,
|
||
success:function (response) {
|
||
if(response.success){
|
||
let orderData=response.data;
|
||
orderData.supplierId=orderData.supplier_id;
|
||
delete(orderData.supplier_id);
|
||
root.initOrder(orderData);
|
||
root.initStepper();
|
||
//root.afterOrderSetSupplierOk(data.data);
|
||
}
|
||
}
|
||
});*/
|
||
|
||
|
||
}
|
||
this.afterOrderDeleted=function (data){
|
||
if(data.success==true){
|
||
debug('Order delete success');
|
||
APP.loadMainContent(Opts.URL.index);
|
||
}else{
|
||
Toast.create({ title: "Error deleted !", message: '', status: TOAST_STATUS.DANGER, timeout: 5000 });
|
||
}
|
||
}
|
||
this.clickOrderDeleteConfirmed=function (event){
|
||
debug('clickOrderDeleteConfirmed');
|
||
debug(event);
|
||
debug(event.data);
|
||
$('#dialogModal').modal('hide');
|
||
let ajaxData={};
|
||
ajaxData._token=Opts.token;
|
||
let ajaxUrl=Opts.URL.destroy.replace('%id%',event.data.id);
|
||
$.ajax({
|
||
url:ajaxUrl,
|
||
data:ajaxData,
|
||
method:"DELETE",
|
||
success:root.afterOrderDeleted,
|
||
//error:ajaxErrorHandler
|
||
});
|
||
|
||
}
|
||
this.initViewOrderSelect=function (){
|
||
debug('called initViewOrderSelect ');
|
||
$('.ordersSelectTable button').off('click');
|
||
$('.ordersSelectTable button').on('click',function (){
|
||
let action=$(this).data('action');
|
||
let orderId=$($(this).closest('tr')[0]).data('orderid');
|
||
debug(action);
|
||
debug(orderId);
|
||
|
||
if(action=='delete'){
|
||
$('#dialogModal').on('show.bs.modal', function (event) {
|
||
// If necessary, you could initiate an AJAX request here (and then do the updating in a callback).
|
||
// Update the modal's content. We'll use jQuery here, but you could use a data binding library or other methods instead.
|
||
var modal = $(this);
|
||
modal.find('.modal-title').text('Megerősítés ');
|
||
modal.find('.modal-body').text('Biztosan törli a megrendelést?');
|
||
modal.find('.buttonYes').off('click');
|
||
modal.find('.buttonYes').on('click',{id:orderId},root.clickOrderDeleteConfirmed);
|
||
});
|
||
$('#dialogModal').modal('show');
|
||
}else{
|
||
root.clickOrderEdit({id:orderId});
|
||
}
|
||
});
|
||
$('.buttonNew').off('click');
|
||
$('.buttonNew').on('click',function (){
|
||
APP.loadMainContent(Opts.URL.index,'force=true');
|
||
});
|
||
|
||
}
|
||
this.initStepper=function (){
|
||
debug(Order.getData());
|
||
viewInicialized=[];
|
||
$('.statusNamePlace').text('Nincs elküldve');
|
||
$('.statusNamePlace').addClass('statusBlink');
|
||
root.setDeliveryDate('-');
|
||
root.setSupplier('-');
|
||
|
||
let unEnabled=['parameter', 'productSelect', 'invoice', 'send'];
|
||
$.each(unEnabled,function (index,value) {
|
||
root.Stepper.unsetEnabled(value);
|
||
root.Stepper.unsetCompleted(value);
|
||
});
|
||
|
||
debug(root.Stepper.getOpts()['available']);
|
||
debug(Order.getData()['orderStatus']);
|
||
|
||
let stepActive='supplier';
|
||
let stepComplete=['supplier'];
|
||
let stepEnable=[];
|
||
let stepOnAfterActivate=function (){};
|
||
|
||
let avalaibleSteps=root.Stepper.getOpts()['available'];
|
||
let stepUrlData=false;
|
||
let stepAutoCallback=[];
|
||
for (let stepName of avalaibleSteps) {
|
||
stepOnAfterActivate=this['initView'+stepName.capitalize()];
|
||
let item={};
|
||
item['onAfterActivate']=stepOnAfterActivate;
|
||
stepAutoCallback[stepName]=item;
|
||
}
|
||
debug(stepAutoCallback);
|
||
debug(Order.getData()['id']);
|
||
if(Order.getData()['id']>0){
|
||
debug('hajra');
|
||
debug(Order.getData());
|
||
if(Order.getData()['deliveryDate']){
|
||
root.setDeliveryDate(Order.getData()['deliveryDate']);
|
||
/*
|
||
@todo: weekly-t beallitani
|
||
*/
|
||
}
|
||
if(Order.getData()['supplierName']){
|
||
root.setSupplier(Order.getData()['supplierName']);
|
||
}
|
||
stepUrlData={'supplierId':Order.supplierId,id:Order.id};
|
||
for (let stepName of avalaibleSteps) {
|
||
console.log(stepName);
|
||
stepComplete.push(stepName);
|
||
stepEnable.push(stepName);
|
||
if(Order.getData()['orderStatus']==stepName){
|
||
stepActive=stepName;
|
||
/*
|
||
debug('initView'+stepName.capitalize());
|
||
if(stepName!=='invoice' && stepName!=='send'){
|
||
stepOnAfterActivate=this['initView'+stepName.capitalize()];
|
||
}else{
|
||
stepOnAfterActivate=function (){};
|
||
}
|
||
*/
|
||
break;
|
||
}
|
||
}
|
||
|
||
/*
|
||
//refactored for loop
|
||
var BreakException = {};
|
||
try {
|
||
avalaibleSteps.forEach(function(stepName) {
|
||
console.log(stepName);
|
||
stepComplete.push(stepName);
|
||
stepEnable.push(stepName);
|
||
if(Order.getData()['orderStatus']==stepName){
|
||
stepActive=stepName;
|
||
throw BreakException;
|
||
}
|
||
|
||
});
|
||
} catch (e) {
|
||
if (e !== BreakException) throw e;
|
||
}*/
|
||
|
||
}
|
||
|
||
root.Stepper.init({
|
||
complete:stepComplete,
|
||
enable:stepEnable,
|
||
loaded:[],
|
||
active: stepActive,
|
||
URL: {
|
||
create: Opts.URL.create,
|
||
},
|
||
UrlData:stepUrlData,
|
||
onAfterActivate:stepOnAfterActivate,
|
||
autoCallback: stepAutoCallback,
|
||
/*{
|
||
invoice: {
|
||
onAfterActivate:root.initViewInvoice
|
||
},
|
||
send: {
|
||
onAfterActivate:root.initViewSend
|
||
},
|
||
|
||
}*/
|
||
});
|
||
}
|
||
|
||
this.initOrder=function (data){
|
||
Order=new DataModelOrder(data);
|
||
}
|
||
|
||
this.init = function (options) {
|
||
debug('OrderModul init called');
|
||
$.extend(Opts, window.OrderModulDefault, options);
|
||
Order=new DataModelOrder();
|
||
if(Opts.needStepper){
|
||
if (typeof this.Stepper == 'undefined') {
|
||
this.Stepper=new Stepper();
|
||
}
|
||
}
|
||
if(Opts.testMode){
|
||
return root.testMode();
|
||
}
|
||
}
|
||
|
||
this.setSupplier=function (supplierName,supplierId){
|
||
if(supplierName){
|
||
$('.supplierNamePlace').text(supplierName);
|
||
}
|
||
if(supplierId){
|
||
Order.setData({supplierId:supplierId});
|
||
root.Stepper.setOpts({'UrlData':{'supplierId':supplierId}});
|
||
}
|
||
}
|
||
this.setDeliveryDate=function (dateText,dateTextTo){
|
||
let dateTextHuman=dateText.replaceAll('-','.')+'.';
|
||
if(dateTextHuman.length<5){
|
||
$('.deliveryDatePlace').text(dateText);
|
||
return;
|
||
}
|
||
if(dateTextTo){
|
||
dateTextHuman+=' - '+dateTextTo.replaceAll('-','.')+'.';
|
||
}
|
||
|
||
$(Opts.CSSSelectorForm+' .selectedDateText').text(dateTextHuman);
|
||
$('.deliveryDatePlace').text(dateTextHuman);
|
||
$(Opts.CSSSelectorForm+' input[name="deliveryDate"]').val(dateText);
|
||
}
|
||
|
||
|
||
|
||
this.getData=function (){
|
||
return Order;
|
||
}
|
||
|
||
|
||
this.setSupplierCompleted=function () {
|
||
console.log('bingo');
|
||
root.initViewParameter()
|
||
}
|
||
|
||
this.afterOrderSetSupplierOk=function (data) {
|
||
Toast.create({ title: "Supplier selected !", message: data.supplier.name , status: TOAST_STATUS.INFO, timeout: 5000 });
|
||
root.setSupplier(data.supplier.name,data.supplier.id);
|
||
Order.setData({id:data.id});
|
||
root.Stepper.setOpts({'UrlData':{'supplierId':Order.supplierId,id:Order.id}});
|
||
//root.Stepper.setOpts({onAfterLoad:root.setSupplierCompleted})
|
||
root.Stepper.setEnabled('parameter');
|
||
root.Stepper.addCompleted('parameter');
|
||
root.Stepper.setCompleted('parameter');
|
||
root.Stepper.setActive('parameter');
|
||
}
|
||
|
||
|
||
this.initViewSupplier=function (){
|
||
debug('call initViewSupplier');
|
||
root.Stepper.setOpts({onAfterLoad:function (){}});
|
||
$('.supplierItem').off('click');
|
||
$('.supplierItem').on('click',function(event){
|
||
console.log(Order.getData());
|
||
|
||
event.preventDefault();
|
||
let supplierId=$(event.currentTarget).data('id');
|
||
let supplierName=$(event.currentTarget).find('h5.card-title').text();
|
||
if(typeof Order.supplierId=='undefined'){
|
||
//new order
|
||
|
||
let ajaxData={};
|
||
ajaxData._token=Opts.token;
|
||
ajaxData.supplierId=supplierId;
|
||
ajaxData.storeType='supplierSelect';
|
||
$.extend(ajaxData,Order);
|
||
$.ajax({
|
||
url: Opts.URL.store,
|
||
method:'POST',
|
||
data:ajaxData,
|
||
success:function (data) {
|
||
if(data.success){
|
||
root.afterOrderSetSupplierOk(data.data);
|
||
}
|
||
}
|
||
});
|
||
//Order.setData({supplierId:supplierId});
|
||
}else{
|
||
//ide kellene egy jo kis kerdes
|
||
if(Order.supplierId!=supplierId){
|
||
Toast.create({ title: "Supplier change to!", message: supplierName, status: TOAST_STATUS.WARNING, timeout: 5000 });
|
||
root.Stepper.clearLoaded();
|
||
Order=new DataModelOrder();
|
||
//Order.setData({supplierId:supplierId});
|
||
}
|
||
}
|
||
|
||
return;
|
||
console.log('-----------');
|
||
console.log(root.Stepper.getOpts());
|
||
console.log('-----------');
|
||
|
||
//$('.supplierNamePlace').text(supplierName);
|
||
root.setSupplier(supplierName,supplierId);
|
||
console.log(supplierName)
|
||
//@todo:ide kell egy mentes!
|
||
//@todo:mentes eredemenyekeppen lehet valtani
|
||
event.preventDefault();
|
||
root.Stepper.setOpts({onAfterLoad:root.setSupplierCompleted})
|
||
root.Stepper.setEnabled('parameter');
|
||
root.Stepper.addCompleted('parameter');
|
||
root.Stepper.setCompleted('parameter');
|
||
root.Stepper.setActive('parameter');
|
||
|
||
|
||
});
|
||
}
|
||
|
||
this.checkContactNameField=function () {
|
||
let CSSSelectorForm='.orderParameterForm';
|
||
let node=$(CSSSelectorForm+' input[name=contactName]');
|
||
if(node.val().length<2){
|
||
node.removeClass('is-valid');
|
||
node.addClass('is-invalid');
|
||
return false;
|
||
}else{
|
||
node.addClass('is-valid');
|
||
node.removeClass('is-invalid');
|
||
return true;
|
||
}
|
||
}
|
||
|
||
|
||
|
||
this.sendOrderDataToServer=function (updateType,callback,errorCallback) {
|
||
let ajaxData= {};
|
||
let ajaxUrl=Opts.URL.store;
|
||
let ajaxMethod="POST";
|
||
if(Order.id){
|
||
ajaxUrl=Opts.URL.update.replace('%id%',Order.id);
|
||
//ajaxMethod="PUT";
|
||
//ajaxData=new FormData($(CSSSelectorForm)[0]);
|
||
ajaxData._method='PUT';
|
||
}
|
||
ajaxData._token=Opts.token;
|
||
ajaxData.updateType=updateType;
|
||
$.extend(ajaxData,Order);
|
||
debug(Order);
|
||
debug(ajaxData);
|
||
debug('ajaxUrl:'+ajaxUrl);
|
||
ajaxData=jsonToFormData(ajaxData);
|
||
$.ajax({
|
||
url:ajaxUrl,
|
||
data:ajaxData,
|
||
type:ajaxMethod,
|
||
contentType:false,
|
||
processData: false,
|
||
success:function (data) {
|
||
debug('ajax returned data');
|
||
debug(data);
|
||
if(data.success){
|
||
//root.afterOrderSetSupplierOk(data.data);
|
||
callback(data);
|
||
}
|
||
},
|
||
error: function (xhr, ajaxOptions, thrownError) {
|
||
ajaxErrorHandler(xhr, ajaxOptions, thrownError);
|
||
if(typeof errorCallback!='undefined'){
|
||
errorCallback(xhr.responseJSON);
|
||
}
|
||
},
|
||
|
||
});
|
||
|
||
}
|
||
this.afterOrderSetParameterOk=function (data) {
|
||
debug('called afterOrderSetParameterOk');
|
||
root.Stepper.setOpts({'UrlData':{'supplierId':Order.supplierId,'id':Order.id}});
|
||
//root.Stepper.setOpts({onAfterLoad:root.setParameterCompleted})
|
||
root.Stepper.setEnabled('productSelect');
|
||
root.Stepper.addCompleted('productSelect');
|
||
root.Stepper.setCompleted('productSelect');
|
||
root.Stepper.setActive('productSelect');
|
||
}
|
||
this.selectCurrentWeek = function() {
|
||
console.error('selectCurrentWeek');
|
||
console.error($('.ui-datepicker').find('.ui-datepicker-current-day a'));
|
||
$('.ui-datepicker').find('.ui-datepicker-current-selected-weekday a').addClass('ui-state-active')
|
||
}
|
||
this.weekHover = function() {
|
||
console.error('hover Active');
|
||
$('.ui-datepicker-calendar tr').off('mousemove');
|
||
$('.ui-datepicker-calendar tr').off('mouseleave');
|
||
|
||
$('.ui-datepicker-calendar tr').on('mousemove', function() { $(this).find('td a').addClass('ui-state-hover'); });
|
||
$('.ui-datepicker-calendar tr').on('mouseleave', function() { $(this).find('td a').removeClass('ui-state-hover'); });
|
||
|
||
}
|
||
this.weekHoverSlow = function() {
|
||
console.error('weekHoverSlow');
|
||
if($('.ui-datepicker-calendar tr').length<1){
|
||
setTimeout(root.weekHoverSlow, 1);
|
||
return;
|
||
}
|
||
root.weekHover();
|
||
}
|
||
this.initDatePicker=function (type) {
|
||
console.error('asdasdadad');
|
||
console.log('tipus' + type);
|
||
let CSSSelectorForm = '.orderParameterForm';
|
||
let startDate=new Date('1900-01-01');
|
||
let endDate=new Date('1900-01-02');
|
||
|
||
$(CSSSelectorForm + ' .datePicker').datepicker("destroy");
|
||
|
||
if (type == 'weekly') {
|
||
$(CSSSelectorForm + ' .datePicker').datepicker({
|
||
showOtherMonths: true,
|
||
selectOtherMonths: true,
|
||
showWeek: true,
|
||
dateFormat: 'yy-mm-dd',
|
||
firstDay: 1,
|
||
minDate: new Date(),
|
||
afterShow: function (dateText, inst) {
|
||
root.weekHover();
|
||
root.selectCurrentWeek();
|
||
},
|
||
onSelect: function (dateText, inst) {
|
||
let date = $(this).datepicker('getDate');
|
||
startDate = new getMonday(date);
|
||
endDate = new Date(date.getFullYear(), date.getMonth(), date.getDate() - date.getDay() + 7);
|
||
root.setDeliveryDate($.datepicker.formatDate( 'yy-mm-dd',startDate),$.datepicker.formatDate( 'yy-mm-dd',endDate))
|
||
},
|
||
beforeShow: function () {
|
||
console.group('beforeShow')
|
||
console.log(startDate);
|
||
console.log(endDate);
|
||
//root.weekHoverSlow();
|
||
console.groupEnd();
|
||
},
|
||
beforeShowDay: function(date) {
|
||
console.group('beforeShowDay');
|
||
console.log(date.toLocaleDateString('hu-Hu'));
|
||
let cssClass = '';
|
||
if(date >= startDate && date <= endDate){
|
||
console.error(date.toLocaleDateString('hu-Hu'));
|
||
cssClass = 'ui-datepicker-current-selected-weekday';
|
||
//cssClass = 'ui-state-active';
|
||
}
|
||
console.log(cssClass);
|
||
console.groupEnd();
|
||
|
||
return [true, cssClass];
|
||
},
|
||
onChangeMonthYear: function(year, month, inst) {
|
||
//root.selectCurrentWeek();
|
||
}
|
||
});
|
||
|
||
} else {
|
||
// Szállítási korlátozás adatok betöltése (csak ha hasDeliveryConstraint = true)
|
||
let availableDates = [];
|
||
let nextDeliveryDate = null;
|
||
let hasDeliveryConstraint = false;
|
||
let holidays = [];
|
||
let workingDays = [];
|
||
let datepickerInput = $(CSSSelectorForm + ' .datePicker');
|
||
let calendarUrl = datepickerInput.data('delivery-calendar-url');
|
||
let supplierId = datepickerInput.data('supplier-id');
|
||
let profitCenterId = datepickerInput.data('profit-center-id');
|
||
|
||
if (calendarUrl && supplierId && profitCenterId) {
|
||
$.ajax({
|
||
url: calendarUrl,
|
||
data: {
|
||
supplierId: supplierId,
|
||
profitCenterId: profitCenterId,
|
||
orderDateTime: new Date().toISOString(),
|
||
},
|
||
async: false,
|
||
success: function (data) {
|
||
hasDeliveryConstraint = data.hasDeliveryConstraint || false;
|
||
// Ünnepnapok és áthelyezett munkanapok – mindig betöltjük
|
||
holidays = (data.holidays || []).map(function(h) { return { date: h.date, description: h.description }; });
|
||
workingDays = (data.workingDays || []).map(function(w) { return { date: w.date, description: w.description }; });
|
||
|
||
if (hasDeliveryConstraint) {
|
||
availableDates = data.availableDates || [];
|
||
nextDeliveryDate = data.nextDeliveryDate || null;
|
||
}
|
||
// Ha nincs szállítási korlátozás, az availableDates és nextDeliveryDate
|
||
// üres marad – a datepicker az eredeti módon viselkedik
|
||
},
|
||
});
|
||
}
|
||
|
||
if (hasDeliveryConstraint && nextDeliveryDate) {
|
||
// Következő szállítási nap beállítása alapértelmezettként
|
||
root.setDeliveryDate(nextDeliveryDate);
|
||
$(CSSSelectorForm + ' .selectedDateText').text(nextDeliveryDate);
|
||
$(CSSSelectorForm + ' input[name="deliveryDate"]').val(nextDeliveryDate);
|
||
$('.deliveryDatePlace').text(nextDeliveryDate.replaceAll('-', '.') + '.');
|
||
}
|
||
|
||
// Szín jelmagyarázat megjelenítése csak szállítási korlátozás esetén
|
||
if (hasDeliveryConstraint) {
|
||
$('#deliveryDateLegend').show();
|
||
}
|
||
|
||
let datepickerOpts = {
|
||
dateFormat: 'yy-mm-dd',
|
||
minDate: (hasDeliveryConstraint && nextDeliveryDate) ? new Date(nextDeliveryDate) : new Date(),
|
||
onSelect: function (dateText) {
|
||
$(CSSSelectorForm + ' .selectedDateText').text(dateText);
|
||
$('.deliveryDatePlace').text(dateText.replaceAll('-', '.') + '.');
|
||
$(CSSSelectorForm + ' input[name="deliveryDate"]').val(dateText);
|
||
},
|
||
};
|
||
|
||
// beforeShowDay: mindig aktív ha van munkanaptár adat vagy hasDeliveryConstraint
|
||
datepickerOpts.beforeShowDay = function (date) {
|
||
let dateStr = $.datepicker.formatDate('yy-mm-dd', date);
|
||
|
||
let holidayEntry = holidays.find(function(h) { return h.date === dateStr; });
|
||
let workingDayEntry = workingDays.find(function(w) { return w.date === dateStr; });
|
||
|
||
let isDelivery = hasDeliveryConstraint && availableDates.includes(dateStr);
|
||
|
||
let cssClasses = [];
|
||
let tooltip = '';
|
||
let selectable = true;
|
||
|
||
if (holidayEntry) {
|
||
cssClasses.push('work-calendar-holiday');
|
||
tooltip = 'Ünnepnap' + (holidayEntry.description ? ': ' + holidayEntry.description : '');
|
||
} else if (workingDayEntry) {
|
||
cssClasses.push('work-calendar-working-day');
|
||
tooltip = 'Áthelyezett munkanap' + (workingDayEntry.description ? ': ' + workingDayEntry.description : '');
|
||
}
|
||
|
||
if (hasDeliveryConstraint) {
|
||
if (isDelivery) {
|
||
cssClasses.push('delivery-day-available');
|
||
if (!tooltip) tooltip = 'Szállítási nap';
|
||
} else {
|
||
cssClasses.push('delivery-day-unavailable');
|
||
if (!tooltip) tooltip = 'Nem szállítási nap';
|
||
selectable = false;
|
||
}
|
||
}
|
||
// Ha ünnepnap és hasDeliveryConstraint nincs bekapcsolva, az ünnepnap is letiltandó
|
||
if (holidayEntry && !hasDeliveryConstraint) {
|
||
selectable = false;
|
||
}
|
||
|
||
return [selectable, cssClasses.join(' '), tooltip];
|
||
};
|
||
|
||
$(CSSSelectorForm + ' .datePicker').datepicker(datepickerOpts);
|
||
}
|
||
}
|
||
this.callChangeOrderType=function(){
|
||
console.log(this);
|
||
console.log(this.value);
|
||
root.initDatePicker(this.value);
|
||
//enum('daily', 'weekly')
|
||
/*let CSSSelectorForm='.orderParameterForm';
|
||
let node=$(CSSSelectorForm+' input[name=contactName]');
|
||
if(node.val().length<2){
|
||
node.removeClass('is-valid');
|
||
node.addClass('is-invalid');
|
||
return false;
|
||
}else{
|
||
node.addClass('is-valid');
|
||
node.removeClass('is-invalid');
|
||
return true;
|
||
}
|
||
*/
|
||
}
|
||
|
||
this.initViewParameter=function () {
|
||
debug('call initViewParameter');
|
||
root.Stepper.setOpts({onAfterLoad:function (){}});
|
||
let CSSSelectorForm='.orderParameterForm';
|
||
$(CSSSelectorForm+' .datePickerClick').click(function(){
|
||
$(CSSSelectorForm+' .datePicker').datepicker('show');
|
||
});
|
||
|
||
$(CSSSelectorForm+' .orderParameterDeliveryAddress').select2({}).show();
|
||
$(CSSSelectorForm+' input[name=contactName]').off('blur');
|
||
$(CSSSelectorForm+' input[name=contactName]').off('keyup');
|
||
$(CSSSelectorForm+' input[name=contactName]').on('blur',root.checkContactNameField);
|
||
$(CSSSelectorForm+' input[name=contactName]').on('keyup',root.checkContactNameField);
|
||
|
||
$(CSSSelectorForm+' input[name=orderType]').off('change');
|
||
$(CSSSelectorForm+' input[name=orderType]').on('change',root.callChangeOrderType);
|
||
|
||
|
||
$(CSSSelectorForm+' .orderParameterNextButton').off('click');
|
||
if(Order.getData()['id']>0){
|
||
if(Order.getData()['orderType']=='weekly'){
|
||
root.initDatePicker(Order.getData()['orderType']);
|
||
$(CSSSelectorForm+" input[name=orderType][value=" + Order.getData()['orderType'] + "]").prop('checked', true);
|
||
|
||
const endDate = new Date(Order.getData()['deliveryDate']);
|
||
endDate.setDate(endDate.getDate() + 6);
|
||
root.setDeliveryDate(Order.getData()['deliveryDate'],$.datepicker.formatDate( 'yy-mm-dd',endDate));
|
||
root.initDatePicker('weekly');
|
||
}else{
|
||
if(Order.getData()['deliveryDate']){
|
||
root.setDeliveryDate(Order.getData()['deliveryDate']);
|
||
}
|
||
root.initDatePicker('daily');
|
||
}
|
||
|
||
|
||
|
||
if(Order.getData()['contactName']){
|
||
$(CSSSelectorForm+' input[name=contactName]').val(Order.getData()['contactName']);
|
||
}
|
||
if(Order.getData()['note']){
|
||
$(CSSSelectorForm+' textarea[name=note]').val(Order.getData()['note']);
|
||
}
|
||
if(Order.getData()['deliveryAddressId']){
|
||
console.log($(CSSSelectorForm+' select[name=deliveryAddressId]'));
|
||
$(CSSSelectorForm+' select[name=deliveryAddressId]').val(Order.getData()['deliveryAddressId']);
|
||
}
|
||
if(Order.getData()['customNotificationEmail']){
|
||
console.log($(CSSSelectorForm+' select[name=customNotificationEmail]'));
|
||
$(CSSSelectorForm+' select[name=customNotificationEmail]').val(Order.getData()['customNotificationEmail']);
|
||
}
|
||
}else{
|
||
root.initDatePicker('daily');
|
||
}
|
||
|
||
$(CSSSelectorForm+' .orderParameterDeliveryAddress').select2({}).show();
|
||
$(CSSSelectorForm+' .orderParameterCustomNotificationEmail').select2({}).show();
|
||
|
||
$(CSSSelectorForm).submit(function(event){
|
||
|
||
event.preventDefault();
|
||
if ($(CSSSelectorForm)[0].checkValidity() === false) {
|
||
debug('validaton false');
|
||
event.stopPropagation();
|
||
return;
|
||
} else {
|
||
debug('validaton ok');
|
||
//do your ajax submition here
|
||
}
|
||
$('.deliveryDatePlace').text($(CSSSelectorForm+' input[name=deliveryDate]').val().replaceAll('-','.')+'.');
|
||
|
||
Order.setData({
|
||
contactName:$(CSSSelectorForm+' input[name=contactName]').val(),
|
||
note:$(CSSSelectorForm+' textarea[name=note]').val(),
|
||
orderType:$(CSSSelectorForm+' input:checked[name=orderType]').val(),
|
||
deliveryDate:$(CSSSelectorForm+' input[name=deliveryDate]').val(),
|
||
deliveryAddressId:$(CSSSelectorForm+' select[name=deliveryAddressId]').val(),
|
||
deliveryAddress:$(CSSSelectorForm+' select[name=deliveryAddress]').val(),
|
||
customNotificationEmail:$(CSSSelectorForm+' select[name=customNotificationEmail]').val(),
|
||
});
|
||
console.group('parameter form submit')
|
||
console.error($(CSSSelectorForm+' input:checked[name=orderType]').val());
|
||
console.error($(CSSSelectorForm+' input[name=deliveryDate]').val());
|
||
debug(Order.getData());
|
||
console.groupEnd();
|
||
root.sendOrderDataToServer('parameter',root.afterOrderSetParameterOk);
|
||
});
|
||
|
||
}
|
||
this.blank=function (){};
|
||
this.setParameterCompleted=function () {
|
||
console.log('setParameterCompleted called');
|
||
root.Stepper.setOpts({onAfterLoad:function (){}});
|
||
//root.initViewProductSelect()
|
||
}
|
||
|
||
this.bindRowFavoritesAction = function () {
|
||
$('.buttonItemFavorites').off('click');
|
||
$('.buttonItemFavorites').on('click', function () {
|
||
let productId = $(this).data('id');
|
||
console.log(productId);
|
||
|
||
let ajaxUrl=Opts.URL.toggleFavorites.replace('%id%',productId);
|
||
let ajaxData={};
|
||
ajaxData._token=Opts.token;
|
||
let button=this;
|
||
console.log(ajaxUrl);
|
||
$.ajax({
|
||
url: ajaxUrl,
|
||
method:'POST',
|
||
data:ajaxData,
|
||
success:function (response) {
|
||
if(response.success){
|
||
if(response.status){
|
||
console.log('true');
|
||
$(button).addClass('btn-warning');
|
||
$(button).removeClass('btn-light');
|
||
}else{
|
||
$(button).removeClass('btn-warning');
|
||
$(button).addClass('btn-light');
|
||
console.log('false');
|
||
}
|
||
}
|
||
}
|
||
});
|
||
/*
|
||
$(this).toggleClass('btn-warning');
|
||
$(this).toggleClass('btn-light');
|
||
*/
|
||
});
|
||
}
|
||
|
||
this.bindRowDescriptionAction=function (){
|
||
$('textarea.orderItemComment').on('change',function (){
|
||
let comment=$(this).val();
|
||
let productId=$(this).data('id');
|
||
let productComment=Order.getData('productComment');
|
||
if(productComment!==null){
|
||
if(typeof productComment[productId]=='undefined' && comment.length===0){
|
||
return;
|
||
}
|
||
if(productComment[productId]===comment){
|
||
return;
|
||
}
|
||
}
|
||
productComment[productId]=comment;
|
||
if(comment.length===0){
|
||
delete Order.productComment[productId];
|
||
}
|
||
Order.productComment=productComment;
|
||
queueAjax.push(Date.now());
|
||
root.syncOrderDataToServer();
|
||
});
|
||
}
|
||
|
||
this.productSelectDatatablesRowFormatter=function (d) {
|
||
// `d` is the original data object for the row
|
||
/**
|
||
@todo: felszedni es updatelni az adott termek memojat az orderban
|
||
*/
|
||
console.group('productSelectDatatablesRowFormatter');
|
||
console.log(d);
|
||
let templateData=d;
|
||
templateData.comment='';
|
||
// debug(Order);
|
||
if(Order.productComment && Order.productComment!==null){
|
||
debug(typeof Order.productComment[d.id]);
|
||
if(typeof Order.productComment[d.id]!='undefined' && Order.productComment[d.id].length>0){
|
||
templateData.comment=Order.productComment[d.id];
|
||
}
|
||
}
|
||
/** @typedef {boolean} d.favorites */
|
||
if(d.favorites===true){
|
||
templateData.btnFavoritesClass='btn-warning';
|
||
}else{
|
||
templateData.btnFavoritesClass='btn-light';
|
||
}
|
||
let template=$('template[data-name="orderProductSelectDetails"]').html()
|
||
templateData.weekly=false;
|
||
if(Order.getData().orderType==='weekly'){
|
||
templateData.weekly=true;
|
||
/*
|
||
|
||
templateData.weeklyDay=[
|
||
{"index":1,"name":"Hétfő"},
|
||
{"index":2,"name":"Kedd"},
|
||
{"index":3,"name":"Szerda"},
|
||
{"index":4,"name":"Csütörtök"},
|
||
{"index":5,"name":"Péntek"},
|
||
{"index":6,"name":"Szombat"},
|
||
{"index":7,"name":"Vasárnap"},
|
||
];
|
||
|
||
templateData.weeklyDay=[
|
||
{"index":2,"name":"Hétfő" },
|
||
{"name":"Kedd"},
|
||
{"name":"Szerda"},
|
||
{"name":"Csütörtök"},
|
||
{"name":"Péntek"},
|
||
{"name":"Szombat"},
|
||
{"name":"Vasárnap"}
|
||
];
|
||
*/
|
||
}
|
||
let productSelected=Order.getData('productSelected');
|
||
if(typeof productSelected[d.id]!='undefined'){
|
||
templateData.itemQuantity=productSelected[d.id];
|
||
}
|
||
console.log(['templateData',templateData]);
|
||
let oldTags=Mustache.tags;
|
||
Mustache.tags = ["~!", "!~"];
|
||
if(templateData['specification']=='false' || templateData['specification']==false){
|
||
templateData.specificationClass='d-none';
|
||
}
|
||
templateData.pictureImg='';
|
||
if(templateData['picture']=='false' || templateData['picture']==false){
|
||
templateData.pictureClass='d-none';
|
||
}else{
|
||
templateData.pictureImg='<img src= "'+templateData['picture']+'" class="productPicture" ></img>';
|
||
}
|
||
console.log('templateData',templateData);
|
||
//templateData['aa_specification']=false;
|
||
let render=Mustache.render(template,templateData);
|
||
Mustache.tags =oldTags;
|
||
console.groupEnd();
|
||
return render;
|
||
/*
|
||
solution before template
|
||
return '<table cellpadding="5" cellspacing="0" border="0" style="padding-left:50px;">'+
|
||
'<tr>'+
|
||
'<td>Info:</td>'+
|
||
'<td>'+d.note+'</td>'+
|
||
'</tr>'+
|
||
'<tr>'+
|
||
'<td>hooreyca :</td>'+
|
||
'<td><span style="padding-right: 2em;">'+d.hooreycaId+'</span>' +
|
||
|
||
'<button type="button"\n' +
|
||
' data-id="'+d.id+'"\n' +
|
||
' class="buttonItemFavorites btn '+btnFavoritesClass+'">\n' +
|
||
' <i class="bi bi-star-fill pr-2" aria-hidden="true"></i>\n' +
|
||
' Kedvenc\n' +
|
||
'</button>' +
|
||
'</td>'+
|
||
'</tr>'+
|
||
/!*
|
||
'<tr>'+
|
||
'<td>Extension number:</td>'+
|
||
'<td>'+d.extn+'</td>'+
|
||
'</tr>'+
|
||
*!/
|
||
'<tr>'+
|
||
'<td>Info:</td>'+
|
||
'<td>'+d.note+'</td>'+
|
||
'</tr>'+
|
||
'<tr>'+
|
||
'<td>Megjegyzés:</td>'+
|
||
'<td><textarea class="orderItemComment" data-id="'+d.id+'">'+comment+'</textarea></td>'+
|
||
'</tr>'+
|
||
/!*
|
||
*!/
|
||
'</table>';
|
||
*/
|
||
}
|
||
|
||
this.setDatatableHeaderText=function(text){
|
||
$('.tableHeaderText').text(text);
|
||
}
|
||
|
||
this.getTreePathName=function (node){
|
||
let res='';
|
||
let items=$(node).parents('li').toArray();
|
||
items.shift();
|
||
items.reverse();
|
||
for (const item in items) {
|
||
console.log($(items[item]).children('a.categoryItem'));
|
||
if($(items[item]).children('a.categoryItem').length>0){
|
||
res+=$(items[item]).children('a.categoryItem').text()+'/'
|
||
}
|
||
}
|
||
res+=$(node).text();
|
||
console.log(res);
|
||
return res;
|
||
}
|
||
|
||
let selectedProductGroup=null;
|
||
let dataTableSearchStr=null;
|
||
let dataTableSearchKrel=false;
|
||
|
||
this.searchProductByString=function (filterStr){
|
||
root.setDatatableHeaderText('Termékek szűrve:'+filterStr);
|
||
dataTableSearchStr=filterStr;
|
||
$('.dataTableOrderProductSelect').DataTable().ajax.reload();
|
||
}
|
||
|
||
this.clickSearchProduct=function (){
|
||
debug(this);
|
||
let filterStr=$('.sidebar-search input[name=searchValue]').val()
|
||
debug(filterStr);
|
||
root.searchProductByString(filterStr);
|
||
}
|
||
|
||
this.clickFavoritesProduct = function () {
|
||
debug('clickFavoritesProduct');
|
||
$(this).parent().parent().find('.menuItemActive').removeClass('menuItemActive');
|
||
$(this).parent().toggleClass('menuItemActive');
|
||
root.setDatatableHeaderText('Termékek szűrve: kedvencek');
|
||
dataTableSearchStr='**favorites**';
|
||
$('.dataTableOrderProductSelect').DataTable().ajax.reload();
|
||
}
|
||
this.clickOftenProduct = function () {
|
||
debug('clickOftenProduct');
|
||
$(this).parent().parent().find('.menuItemActive').removeClass('menuItemActive');
|
||
$(this).parent().toggleClass('menuItemActive');
|
||
root.setDatatableHeaderText('Termékek szűrve: gyakran vásárolt');
|
||
dataTableSearchStr='**often**';
|
||
$('.dataTableOrderProductSelect').DataTable().ajax.reload();
|
||
}
|
||
|
||
this.clickSpecialOffer = function () {
|
||
debug('clickSpecialOffer');
|
||
$(this).parent().parent().find('.menuItemActive').removeClass('menuItemActive');
|
||
$(this).parent().toggleClass('menuItemActive');
|
||
root.setDatatableHeaderText('Termékek szűrve: Akciós termékek');
|
||
dataTableSearchStr='**specialOffer**';
|
||
$('.dataTableOrderProductSelect').DataTable().ajax.reload();
|
||
}
|
||
|
||
this.clickSpecialCart = function () {
|
||
debug('clickSpecialCart');
|
||
$(this).parent().parent().find(".menuItemActive").removeClass("menuItemActive");
|
||
$(this).parent().toggleClass('menuItemActive');
|
||
root.setDatatableHeaderText('Termékek szűrve: Kosár termékek');
|
||
dataTableSearchStr='**cart**';
|
||
$('.dataTableOrderProductSelect').DataTable().ajax.reload();
|
||
}
|
||
|
||
|
||
|
||
this.clickLastProduct = function () {
|
||
debug('clickLastProduct');
|
||
$(this).parent().parent().find('.menuItemActive').removeClass('menuItemActive');
|
||
$(this).parent().toggleClass('menuItemActive');
|
||
root.setDatatableHeaderText('Termékek szűrve: utoljára vásárolt');
|
||
dataTableSearchStr='**last**';
|
||
$('.dataTableOrderProductSelect').DataTable().ajax.reload();
|
||
|
||
}
|
||
|
||
this.clickWeeklyProduct = function () {
|
||
debug('clickWeeklyProduct');
|
||
$(this).parent().parent().find('.menuItemActive').removeClass('menuItemActive');
|
||
$(this).parent().toggleClass('menuItemActive');
|
||
root.setDatatableHeaderText('Termékek szűrve: Heti termékek');
|
||
dataTableSearchStr='**weekly**';
|
||
$('.dataTableOrderProductSelect').DataTable().ajax.reload();
|
||
|
||
}
|
||
|
||
this.clickKrelProduct = function () {
|
||
debug('clickKrelProduct');
|
||
//root.setDatatableHeaderText('Termékek szűrve: Heti termékek');
|
||
//dataTableSearchStr='**weekly**';
|
||
//$('.dataTableOrderProductSelect').DataTable().ajax.reload();
|
||
$(this).parent().toggleClass('krelActive');
|
||
dataTableSearchKrel=!dataTableSearchKrel;
|
||
$('.dataTableOrderProductSelect').DataTable().ajax.reload();
|
||
}
|
||
|
||
this.productSelectDataTableColumnDefs=function (){
|
||
return [
|
||
{"width": "10px", "targets": 0 },
|
||
{ "className": "dt-left", "targets": 1 },
|
||
// { "width": "120px", "targets": 1 },
|
||
{ "width": "28px", "targets": 2 },
|
||
{ "width": "41px", "targets": 3 },
|
||
{ "width": "76px", "targets": 4 },
|
||
{ "width": "55px", "targets": 5 },
|
||
{ "width": "70px", "targets": 6 },
|
||
{ "width": "54px", "targets": 7 },
|
||
{ "width": "57px", "targets": 8 },
|
||
{ "width": "42px", "targets": 9 },
|
||
{ "width": "100px", "targets": 10},
|
||
{"className": "dt-center", "targets": "_all"},
|
||
];
|
||
}
|
||
this.productSelectDataTableColumn=function (){
|
||
let columnData=[
|
||
{
|
||
"className": 'details-control',
|
||
"orderable": false,
|
||
"data": null,
|
||
"defaultContent": ''
|
||
},
|
||
{ "data": "name" },
|
||
{ "data": "krel" },
|
||
{ "data": "packing"},
|
||
{ "data": "unitValue" },
|
||
{ "data": "productUnit"},
|
||
{ "data": "sellerUnit" },
|
||
{ "data": "unitMultiplier"},
|
||
{ "data": "amountUnit" },
|
||
{ "data": "price" },
|
||
|
||
];
|
||
|
||
let actionColumn={ "className": 'details-control2',
|
||
"orderable": false,
|
||
"data": null,
|
||
"width": "100px",
|
||
"defaultContent":''
|
||
};
|
||
if(Order.getData('orderType')=='daily'){
|
||
actionColumn.render = function (data, type, row) {
|
||
if (row.stock_status === 'out_of_stock') {
|
||
return '<img src="/images/icons/details_close.png" title="Nincs raktáron" style="width: 24px;">';
|
||
}
|
||
return '<input type="number" value="0" min="0" max="9999" step="1" data-decimals="1" class="form-control-sm inputNumberSpinner" style="width: 1em;"/>';
|
||
};
|
||
}
|
||
columnData.push(actionColumn);
|
||
return columnData;
|
||
}
|
||
this.getDatatables=function (orderType){
|
||
console.error(orderType);
|
||
var table = $('.dataTableOrderProductSelect').DataTable( {
|
||
language: {
|
||
url: '//cdn.datatables.net/plug-ins/1.10.24/i18n/Hungarian.json'
|
||
},
|
||
|
||
//"ajax": "{{asset('exapmle2.json')}}",
|
||
"ajax": {
|
||
url:Opts.URL.getDataTableContentProductList,
|
||
data:function (data) {
|
||
data.searchStr=dataTableSearchStr;
|
||
data.krel=dataTableSearchKrel;
|
||
data.groupId=selectedProductGroup;
|
||
data.supplierId=Order.supplierId;
|
||
data.deliveryDate=Order.deliveryDate;
|
||
data.orderId=Order.id;
|
||
}
|
||
},
|
||
buttons: {
|
||
buttons: []
|
||
},
|
||
"columnDefs": root.productSelectDataTableColumnDefs(),
|
||
"columns": root.productSelectDataTableColumn(),
|
||
"order": [[1, 'asc']],
|
||
} );
|
||
return table;
|
||
}
|
||
|
||
this.productSelectDataTableDrawDT=function (e) {
|
||
//debug( 'Table draw complete: '+new Date().getTime() );
|
||
|
||
//$('td:contains("*")').html('<i class="bi bi-check-circle-fill"></i>');
|
||
$("td").filter(function(){
|
||
return $(this).text() === '*';
|
||
}).html('<i class="bi bi-check-circle-fill"></i>');
|
||
if(Order.getData().orderType=='daily'){
|
||
$("input[type='number'].inputNumberSpinner").inputSpinner({
|
||
template:
|
||
'<div class="input-group ${groupClass}">' +
|
||
'<button style="min-width: ${buttonsWidth}" class="btn btn-sm btn-decrement ${buttonsClass}" type="button">${decrementButton}</button>' +
|
||
//'<input type="text" inputmode="decimal" style="text-align: ${textAlign}" class="productQuantity form-control"/>' +
|
||
'<input type="text" step="0.1" data-decimals="2" style="text-align: ${textAlign}" class="productQuantity form-control"/>' +
|
||
'<button style="min-width: ${buttonsWidth}" class="btn btn-sm btn-increment ${buttonsClass}" type="button">${incrementButton}</button>' +
|
||
'</div>',
|
||
buttonsWidth: "0.5rem",
|
||
groupClass: "", // css class of the resulting input-group
|
||
buttonsClass: "btn-outline-secondary",
|
||
});
|
||
}
|
||
root.bindWeakUserHelper();
|
||
/*
|
||
----------------------------------------------------------
|
||
change order quantity
|
||
*/
|
||
$(".dataTableOrderProductSelect .details-control2 input[type=text]").off('change');
|
||
$(".dataTableOrderProductSelect .details-control2 input[type=text]").on('change',function (e){
|
||
let quantity=$(this).val();
|
||
quantity=quantity.replace(',','.');
|
||
quantity=parseFloat(quantity);
|
||
let rowData=$('.dataTableOrderProductSelect').DataTable().row($(this).closest('tr')).data();
|
||
root.orderItemsChange(rowData,quantity)
|
||
});
|
||
|
||
$(".dataTableOrderProductSelect .details-control2 input[type=text]").each(function (){
|
||
//debug('ez a function2')
|
||
let quantity=$(this).val();
|
||
let rowData=$('.dataTableOrderProductSelect').DataTable().row($(this).closest('tr')).data();
|
||
|
||
if(Order.productSelected[rowData.id]){
|
||
debug(rowData);
|
||
debug($($(this).closest('tr').find('input[type=number]')[0]));
|
||
debug(Order.productSelected[rowData.id]);
|
||
let quantityCurrent=Order.productSelected[rowData.id];
|
||
if(typeof quantityCurrent!='string'){
|
||
quantityCurrent+='';
|
||
}
|
||
$($(this).closest('tr').find('input[type=number]')[0]).val(quantityCurrent.replace(',','.'));
|
||
}
|
||
});
|
||
|
||
|
||
$(".dataTableOrderProductSelect .details-control2 button").off('click');
|
||
$(".dataTableOrderProductSelect .details-control2 button").on('click',function () {
|
||
// debug('.details-control2 button click ')
|
||
// debug(this);
|
||
$(this).parent().find('input[type=text]').trigger('change');
|
||
});
|
||
|
||
}
|
||
|
||
this.initViewProductSelect=function () {
|
||
let functionName='initViewProductSelect';
|
||
console.log(functionName+' called');
|
||
if(viewInicialized.includes(functionName)){
|
||
return;
|
||
}
|
||
//debug(Object.getOwnPropertyNames(root));
|
||
root.setDatatableHeaderText('');
|
||
root.Stepper.setOpts({onAfterActivate:function (){}});
|
||
//@note: be kell kapcsolni az elonezetet
|
||
root.Stepper.addCompleted('invoice');
|
||
root.Stepper.addEnabled('invoice');
|
||
let CSSSelectorForm='.orderParameterForm';
|
||
//console.log(Opts.URL.getDataTableContentProductList);change
|
||
debug((CSSSelectorForm+' .fa-search'));
|
||
|
||
$('.sidebar-search .fa-search').off('click');
|
||
$('.sidebar-search .fa-search').on('click',root.clickSearchProduct);
|
||
|
||
$('a.sidebar.favorites').off('click');
|
||
$('a.sidebar.favorites').on('click',root.clickFavoritesProduct);
|
||
|
||
$('a.sidebar.often').off('click');
|
||
$('a.sidebar.often').on('click',root.clickOftenProduct);
|
||
|
||
$('a.sidebar.last').off('click');
|
||
$('a.sidebar.last').on('click',root.clickLastProduct);
|
||
|
||
$('a.sidebar.weekly').off('click');
|
||
$('a.sidebar.weekly').on('click',root.clickWeeklyProduct);
|
||
|
||
$('a.sidebar.krel').off('click');
|
||
$('a.sidebar.krel').on('click',root.clickKrelProduct);
|
||
|
||
$('a.sidebar.specialOffer').off('click');
|
||
$('a.sidebar.specialOffer').on('click',root.clickSpecialOffer);
|
||
|
||
$('a.sidebar.cart').off('click');
|
||
$('a.sidebar.cart').on('click',root.clickSpecialCart);
|
||
|
||
|
||
|
||
|
||
$('.sidebar-search input[name=searchValue]').off('keypress');
|
||
$('.sidebar-search input[name=searchValue]').on('keypress',function (event) {
|
||
if ( event.which == 13 ) {
|
||
event.preventDefault();
|
||
}
|
||
if($(this).val().length>=2){
|
||
root.searchProductByString($(this).val()+event.key);
|
||
}
|
||
});
|
||
|
||
|
||
|
||
$('.sidebar-wrapper a.categoryItem.categoryParent').off('click');
|
||
$('.sidebar-wrapper a.categoryItem.categoryParent').on('click', function (e) {
|
||
e.preventDefault();
|
||
$(this).next('ul.subgroup-list').slideToggle(200);
|
||
$(this).toggleClass('open');
|
||
});
|
||
|
||
$('.sidebar-wrapper .sidebar-menu .sidebar-dropdown .sidebar-submenu li a.categoryItem.clickable').off('click');
|
||
$('.sidebar-wrapper .sidebar-menu .sidebar-dropdown .sidebar-submenu li a.categoryItem.clickable').on('click',
|
||
function () {
|
||
let groupId=$(this).data('id');
|
||
selectedProductGroup=groupId;
|
||
dataTableSearchStr=null;
|
||
console.log(groupId);
|
||
console.log(root.getTreePathName(this));
|
||
root.setDatatableHeaderText(root.getTreePathName(this));
|
||
/*
|
||
let ajaxData={
|
||
'groupId':groupId,
|
||
'supplier_id':Order.supplierId,
|
||
};
|
||
//$('.dataTableOrderProductSelect').DataTable().ajax.data(ajaxData).load();
|
||
|
||
*/
|
||
/*
|
||
let ajaxUrl=Opts.URL.getDataTableContentProductList+'?groupId='+groupId+'&supplier_id='+Order.supplierId;
|
||
$('.dataTableOrderProductSelect').DataTable().ajax.url(ajaxUrl).load();
|
||
*/
|
||
$('.dataTableOrderProductSelect').DataTable().ajax.reload();
|
||
});
|
||
|
||
|
||
let table = root.getDatatables(Order.getData('orderType'));
|
||
|
||
$('.dataTableOrderProductSelect').on( 'init.dt', function () {
|
||
console.log( 'Table initialisation complete: '+new Date().getTime() );
|
||
} ).dataTable();
|
||
|
||
|
||
|
||
$('.dataTableOrderProductSelect').on( 'draw.dt',root.productSelectDataTableDrawDT).dataTable();
|
||
|
||
//$('.dataTableOrderProductSelect').on( 'draw.dt', ).dataTable();
|
||
|
||
$('.dataTableOrderProductSelect').on( 'xhr.dt', function () {
|
||
debug( 'Table xhr complete: '+new Date().getTime() );
|
||
} ).dataTable();
|
||
|
||
//$("input[type='number'].inputNumberSpinner").inputSpinner();
|
||
|
||
/*
|
||
----------------------------------------------------------
|
||
Add event listener for opening and closing details
|
||
*/
|
||
|
||
$('.dataTableOrderProductSelect tbody').on('click', 'td.details-control', function () {
|
||
let tr = $(this).closest('tr');
|
||
let row = table.row( tr );
|
||
|
||
if ( row.child.isShown() ) {
|
||
// This row is already open - close it
|
||
row.child.hide();
|
||
tr.removeClass('shown');
|
||
}
|
||
else {
|
||
// Open this row
|
||
row.child( root.productSelectDatatablesRowFormatter(row.data()) ).show();
|
||
tr.addClass('shown');
|
||
root.bindProductDetailsAction();
|
||
}
|
||
} );
|
||
viewInicialized.push(functionName);
|
||
}
|
||
|
||
this.bindProductDetailsAction=function (){
|
||
root.bindRowDescriptionAction();
|
||
root.bindRowFavoritesAction();
|
||
if(Order.getData()['orderType']=='weekly'){
|
||
root.bindOrderItemWeekQuantity();
|
||
}
|
||
}
|
||
|
||
this.bindWeakUserHelper=function (){
|
||
$( "input.inputNumberSpinner" ).off( "focus");
|
||
$( "input.inputNumberSpinner" ).on( "focus", function() {
|
||
let quantity=$(this).val();
|
||
quantity=quantity.replace(',','.');
|
||
quantity=parseFloat(quantity);
|
||
if(quantity===0){
|
||
$(this).val('')
|
||
}
|
||
});
|
||
$( "input[type=text].inputNumberSpinner" ).off( "keypress");
|
||
$( "input[type=text].inputNumberSpinner" ).on( "keypress", function(event) {
|
||
if ( event.which == 13 ) {
|
||
// console.error('enter pressed');
|
||
let actualItem=this;
|
||
let items=$( "input[type=text].inputNumberSpinner" );
|
||
items.each(function (item){
|
||
// console.log(this);
|
||
if(this==actualItem){
|
||
// console.error(item);
|
||
if(item+1<=items.length){
|
||
// console.error(items[item+1]);
|
||
$(items[item+1]).focus();
|
||
}
|
||
return false;
|
||
}
|
||
});
|
||
}
|
||
});
|
||
}
|
||
|
||
this.bindOrderItemWeekQuantity=function (){
|
||
$("input.productSelectDayQuantity").off('change');
|
||
$("input.productSelectDayQuantity").on('change',function () {
|
||
console.log(this.name);
|
||
console.log(this.value);
|
||
console.log($(this).data('dayindex'));
|
||
|
||
let rowData=null;
|
||
let rowNode=$($(this).closest('table.orderProductSelectRowDetailsTable').closest('tr')).prev();
|
||
rowData=$('.dataTableOrderProductSelect').DataTable().row(rowNode).data();
|
||
console.log(rowData);
|
||
let quantity=$(this).val();
|
||
quantity=quantity.replace(',','.');
|
||
quantity=parseFloat(quantity);
|
||
console.log(rowData.id);
|
||
root.orderItemsChange(rowData,quantity,$(this).data('dayindex'));
|
||
// root.orderItemsChange
|
||
//orderItemsChange
|
||
//quantity[1683][1]
|
||
});
|
||
|
||
}
|
||
|
||
this.afterSyncOrderDataToServer=function (data) {
|
||
//root.toggleEnableSend();
|
||
//console.log('most vegzett. ennyit kiszed'+batchNum);
|
||
for (let i = 0; i <queueAjax.length; i++) {
|
||
console.log('shiftel')
|
||
queueAjax.shift();
|
||
}
|
||
//console.log('remaining left '+queueAjax.length);
|
||
setTimeout(function(){
|
||
syncDoing=false;
|
||
root.syncOrderDataToServer();
|
||
}, Opts.dataSyncPauseTime);
|
||
}
|
||
let queueAjax=[];
|
||
let syncDoing=false;
|
||
|
||
this.syncOrderDataToServer=function () {
|
||
//debug(queueAjax);
|
||
if(syncDoing){
|
||
//debug('sync in progress....');
|
||
return false;
|
||
}
|
||
if(queueAjax.length<1){
|
||
return ;
|
||
}
|
||
syncDoing=true;
|
||
|
||
root.sendOrderDataToServer('productSelect',root.afterSyncOrderDataToServer);
|
||
return ;
|
||
}
|
||
|
||
this.orderItemsChange=function(ItemData,quantity,dayIndex){
|
||
console.log('-----------------');
|
||
console.log(ItemData);
|
||
console.log(quantity);
|
||
console.log(Order.getData('productSelected'));
|
||
console.log('-----------------');
|
||
/*
|
||
*/
|
||
if(isNaN(quantity)){
|
||
quantity=0;
|
||
}
|
||
let productSelected=Order.getData('productSelected');
|
||
console.group('orderItemsChange');
|
||
console.log(['productSelected',productSelected]);
|
||
console.log(['ItemData',ItemData]);
|
||
console.log(['ItemData.id',ItemData.id]);
|
||
console.log(['quantity',quantity]);
|
||
console.log(['dayIndex',dayIndex]);
|
||
console.log(productSelected[ItemData.id]);
|
||
|
||
let productSelectedItem=productSelected[ItemData.id];
|
||
/*
|
||
ha 0 ertek jon es nem is volt akkor hamar kiugratjuk
|
||
*/
|
||
if(quantity==0){
|
||
console.error('quantity==0');
|
||
if(typeof productSelectedItem=='undefined'){
|
||
console.error('itt lep1');
|
||
console.groupEnd();
|
||
return;
|
||
}
|
||
if(dayIndex){
|
||
console.log('van dayIndex')
|
||
if(typeof productSelected[ItemData.id][dayIndex]=='undefined'){
|
||
console.log(['productSelectedItem',productSelectedItem]);
|
||
console.error('itt lep2');
|
||
console.groupEnd();
|
||
return;
|
||
}
|
||
}
|
||
}
|
||
/*
|
||
ha azonos az ertek kiugrunk
|
||
*/
|
||
if(dayIndex){
|
||
if(typeof productSelected[ItemData.id]!='undefined'
|
||
&& typeof productSelected[ItemData.id][dayIndex]!='undefined'){
|
||
if(productSelected[ItemData.id][dayIndex]==quantity){
|
||
console.error('azonos napi');
|
||
console.groupEnd();
|
||
return;
|
||
}
|
||
}
|
||
}else{
|
||
if(productSelected[ItemData.id]==quantity){
|
||
console.error('azonos');
|
||
console.groupEnd();
|
||
return;
|
||
}
|
||
}
|
||
|
||
if(quantity==0){
|
||
if(dayIndex){
|
||
delete Order.productSelected[ItemData.id][dayIndex];
|
||
delete productSelected[ItemData.id][dayIndex];
|
||
}else{
|
||
delete Order.productSelected[ItemData.id];
|
||
delete productSelected[ItemData.id];
|
||
}
|
||
}else{
|
||
/*
|
||
ha van ertek erteket adunk!
|
||
*/
|
||
if(dayIndex){
|
||
if(typeof productSelected[ItemData.id]=='undefined'){
|
||
productSelected[ItemData.id]=[];
|
||
}
|
||
console.log('set quantity productSelected[ItemData.id][dayIndex]',quantity);
|
||
productSelected[ItemData.id][dayIndex]=quantity;
|
||
}else{
|
||
productSelected[ItemData.id]=quantity;
|
||
console.log('set quantity productSelected[ItemData.id]',quantity);
|
||
}
|
||
}
|
||
console.log(['productSelected',productSelected]);
|
||
Order.productSelected=productSelected;
|
||
|
||
console.groupEnd();
|
||
queueAjax.push(Date.now());
|
||
root.syncOrderDataToServer();
|
||
|
||
return;
|
||
|
||
|
||
if(productSelected[ItemData.id]==quantity){
|
||
debug('itt lep12');
|
||
console.groupEnd();
|
||
return;
|
||
}
|
||
productSelected[ItemData.id]=quantity;
|
||
if(quantity==0){
|
||
delete Order.productSelected[ItemData.id];
|
||
}
|
||
Order.productSelected=productSelected;
|
||
console.groupEnd();
|
||
return;
|
||
|
||
queueAjax.push(Date.now());
|
||
root.syncOrderDataToServer();
|
||
|
||
/*
|
||
debug(Order.getData('productSelected'));
|
||
debug('*******************');
|
||
*/
|
||
}
|
||
this.initViewInvoice=function () {
|
||
root.Stepper.setOpts({onAfterLoad:function (){}});
|
||
|
||
if(Object.keys(Order.productSelected).length>0){
|
||
root.Stepper.addCompleted('send');
|
||
root.Stepper.addEnabled('send');
|
||
}
|
||
let styleStr='<link rel="stylesheet" href="'+Opts.URL.root+'/css/invoice.css">';
|
||
$('table.invoice button.printButton').off('click');
|
||
$('table.invoice button.printButton').on('click',function () {
|
||
window.print();
|
||
return;
|
||
|
||
let newWin= window.open("");
|
||
newWin.document.write(styleStr);
|
||
let print=$('table.invoice').clone();
|
||
print.find('button.printButton').remove();
|
||
// newWin.document.write($('table.invoice').prop('outerHTML'));
|
||
newWin.document.write(print.prop('outerHTML'));
|
||
newWin.print();
|
||
newWin.close();
|
||
});
|
||
}
|
||
|
||
this.resetOrder=function () {
|
||
root.init();
|
||
root.setDeliveryDate('-');
|
||
root.setSupplier('-');
|
||
|
||
}
|
||
|
||
this.afterOrderSendOk=function (data) {
|
||
Toast.create({ title: "Sent!", message: 'Order Sent' , status: TOAST_STATUS.INFO, timeout: 5000 });
|
||
$('.buttonOrderSend').off('click');
|
||
$('.buttonOrderSend').prop('disabled',true);
|
||
$('.statusNamePlace').removeClass('statusBlink');
|
||
$('.statusNamePlace').text('elküldve');
|
||
$('.buttonOrderSending').toggleClass('d-none');
|
||
$('.buttonOrderSendOk').toggleClass('d-none');
|
||
$('div.invoiceContainer').html(data.retHTML);
|
||
//root.resetOrder();
|
||
}
|
||
this.afterOrderSendError=function (data) {
|
||
$('.buttonOrderSend').toggleClass('d-none');
|
||
$('.buttonOrderSending').toggleClass('d-none');
|
||
$.each(APP.OrderModule.Stepper.getOpts().available,function (index,value) {
|
||
APP.OrderModule.Stepper.setEnabled(value);
|
||
APP.OrderModule.Stepper.setCompleted(value);
|
||
});
|
||
}
|
||
|
||
this.initViewSend=function () {
|
||
console.log('initViewSend called 2');
|
||
root.Stepper.setOpts({onAfterLoad:function (){}});
|
||
$('.buttonOrderSend').off('click');
|
||
$('.buttonOrderSend').on('click',function () {
|
||
console.log('Send buton clicked');
|
||
//@todo: datasynchere and callback
|
||
$('.buttonOrderSend').toggleClass('d-none');
|
||
$('.buttonOrderSending').toggleClass('d-none');
|
||
/**
|
||
* PM158
|
||
*/
|
||
$.each(APP.OrderModule.Stepper.getOpts().available,function (index,value) {
|
||
root.Stepper.unsetEnabled(value);
|
||
root.Stepper.unsetCompleted(value);
|
||
});
|
||
/**
|
||
|
||
*/
|
||
root.sendOrderDataToServer('send',root.afterOrderSendOk,root.afterOrderSendError);
|
||
|
||
/* let ajaxData={};
|
||
ajaxData._token=Opts.token;
|
||
ajaxData.send=true;
|
||
$.extend(ajaxData,Order);
|
||
$.ajax({
|
||
url: Opts.URL.store,
|
||
method:'POST',
|
||
data:ajaxData,
|
||
success:function (data) {
|
||
if(data.success){
|
||
root.afterOrderSendOk(data);
|
||
}
|
||
}
|
||
});*/
|
||
});
|
||
|
||
}
|
||
|
||
this.testModeSend=function () {
|
||
|
||
}
|
||
|
||
|
||
this.testMode=function () {
|
||
console.log('testMode called ')
|
||
Order.setData({
|
||
id:234,
|
||
supplierId:7,
|
||
productSelected:{
|
||
116 : 3,
|
||
293 : 2,
|
||
},
|
||
contactName:'Contact Name',
|
||
note:'Note',
|
||
type:'daily',
|
||
deliveryDate:Opts.defaultDeliveryDate,
|
||
deliveryAddress:12,
|
||
});
|
||
console.log(Order.getData());
|
||
|
||
console.log('*******************');
|
||
//root.Stepper.setOpts({'UrlData':{'supplierId':supplierId}});
|
||
root.Stepper.setOpts({'UrlData':{'supplierId':Order.supplierId,id:Order.id}});
|
||
this.Stepper.init({
|
||
URL: {
|
||
create: Opts.URL.create,
|
||
},
|
||
/*
|
||
csupasz az elejerol
|
||
complete:['supplier'],
|
||
enable: ['supplier'],
|
||
active: 'supplier',
|
||
onAfterActivate:this.initViewSupplier,
|
||
|
||
product select
|
||
complete:['supplier','parameter','productSelect'],
|
||
enable: ['supplier','parameter','productSelect'],
|
||
active: 'productSelect',
|
||
onAfterActivate:this.initViewProductSelect,
|
||
|
||
fullos
|
||
complete:['supplier','parameter','productSelect','invoice'],
|
||
enable: ['supplier','parameter','productSelect','invoice','send'],
|
||
active: 'productSelect',
|
||
onAfterActivate:this.initViewProductSelect,
|
||
|
||
send
|
||
complete:['supplier','parameter','productSelect','invoice','send'],
|
||
enable: ['supplier','parameter','productSelect','invoice','send'],
|
||
active: 'send',
|
||
onAfterActivate:this.initViewProductSelect,
|
||
|
||
*/
|
||
complete:['supplier','parameter','productSelect'],
|
||
enable: ['supplier','parameter','productSelect'],
|
||
active: 'productSelect',
|
||
onAfterActivate:this.initViewProductSelect,
|
||
|
||
|
||
autoCallback: {
|
||
invoice: {
|
||
onAfterActivate:root.initViewInvoice
|
||
},
|
||
send: {
|
||
onAfterActivate:root.initViewSend
|
||
},
|
||
|
||
}
|
||
|
||
});
|
||
console.log('*******************');
|
||
|
||
}
|
||
this.toggleEnableSend=function () {
|
||
console.log('toggleEnableSend called');
|
||
let ajaxUrl=Opts.URL.checkReadyToSend.replace('%id%',Order.id);
|
||
$.ajax({
|
||
url:ajaxUrl,
|
||
success:function (data) {
|
||
if(data.success){
|
||
if(data.readyToSend){
|
||
root.Stepper.addCompleted('send');
|
||
/*
|
||
root.Stepper.addCompleted('invoice');
|
||
root.Stepper.addEnabled('invoice');
|
||
*/
|
||
root.Stepper.addEnabled('send');
|
||
}else{
|
||
root.Stepper.unsetCompleted('send');
|
||
/*
|
||
root.Stepper.unsetCompleted('invoice');
|
||
root.Stepper.unsetEnabled('invoice');
|
||
*/
|
||
root.Stepper.unsetEnabled('send');
|
||
}
|
||
}
|
||
console.log(data);
|
||
}
|
||
});
|
||
}
|
||
|
||
}
|