private void DoInjectPosDataByPropagate(FranchiseInfoModel model)
        {
            if (model.PropagateOrder == null || model.PropagateOrder.HasEdit == false)
            {
                return;
            }

            bool isExecuteOk;
            var  iCount     = 0;
            var  randomTime = new Random();

            do
            {
                if (iCount != 0)
                {
                    Thread.Sleep(randomTime.Next(100, 500));
                }
                isExecuteOk = StartInjectPosData(model.PropagateOrder);

                if (
                    Process.GetProcessesByName(SettingsData.AlohaIber.Replace(SettingsData.Constants.EXTENSION_EXE, String.Empty))
                    .Any() == false)
                {
                    break;
                }
            } while (!isExecuteOk && iCount++ < SharedConstants.Client.TRIES_INJECT_POS_DATA);
        }
Ejemplo n.º 2
0
        public void Clean(FranchiseInfoModel franchise)
        {
            IsSearchByWaterfall = false;
            IsSearchByCode      = false;
            IsSearchByMap       = true;
            Franchise           = franchise;
            AddressMapInfo      = null;

            RxApp.MainThreadScheduler.Schedule(_ =>
            {
                ErrorUpsert            = String.Empty;
                ZipCode                = String.Empty;
                ZipCodeId              = null;
                ZipCodeSearchVm.Search = String.Empty;
                ZipCodeSearchVm.IsDone = SharedConstants.Client.IS_TRUE;

                CountrySel  = null;
                RegionArSel = null;
                RegionBrSel = null;
                RegionCrSel = null;
                RegionDrSel = null;

                MainAddress = String.Empty;
                Reference   = String.Empty;
                NumExt      = String.Empty;

                PreId = SharedConstants.NULL_ID_VALUE;
                Id    = SharedConstants.NULL_ID_VALUE;
            });
        }
Ejemplo n.º 3
0
        public void Fill(AddressInfoGrid clInfo, FranchiseInfoModel franchise)
        {
            IsSearchByWaterfall = false;
            IsSearchByCode      = !clInfo.AddressInfo.IsMap;
            IsSearchByMap       = clInfo.AddressInfo.IsMap;
            Franchise           = franchise;


            RxApp.MainThreadScheduler.Schedule(_ =>
            {
                ErrorUpsert = String.Empty;
                PreId       = clInfo.PreId;
                var addr    = clInfo.AddressInfo;
                Id          = addr.AddressId;


                if (clInfo.AddressInfo.IsMap)
                {
                    AddressMapInfo = new AddressMapInfoModel
                    {
                        Address = new AddressMapModel
                        {
                            Country     = addr.Country.Value,
                            MainAddress = addr.MainAddress,
                            NumExt      = addr.ExtIntNumber,
                            Reference   = addr.Reference,
                            RegionA     = addr.RegionA.Value,
                            RegionB     = addr.RegionB.Value,
                            RegionC     = addr.RegionC.Value,
                            RegionD     = addr.RegionD.Value,
                            ZipCode     = addr.ZipCode.Value
                        },
                        PlaceId  = addr.PlaceId,
                        Position = new PositionModel
                        {
                            Lat = addr.Lat,
                            Lng = addr.Lng,
                        }
                    };
                }
                else
                {
                    ZipCodeId = (int?)addr.ZipCode.IdKey;
                    ZipCode   = addr.ZipCode.Value;
                    ZipCodeSearchVm.Search = ZipCodeId != null ? ZipCode : String.Empty;
                    ZipCodeSearchVm.IsDone = SharedConstants.Client.IS_TRUE;

                    CountrySel  = AddAndSelectToControl(addr.Country, Countries);
                    RegionArSel = AddAndSelectToControl(addr.RegionA, RegionsA);
                    RegionBrSel = AddAndSelectToControl(addr.RegionB, RegionsB);
                    RegionCrSel = AddAndSelectToControl(addr.RegionC, RegionsC);
                    RegionDrSel = AddAndSelectToControl(addr.RegionD, RegionsD);
                }

                MainAddress = addr.MainAddress;
                Reference   = addr.Reference;
                NumExt      = addr.ExtIntNumber;
            });
        }
        public void StarPosEmbedded(FranchiseInfoModel model, bool bHasToSetThisWndTopMost)
        {
            var dataFolderFranchise    = model.DataInfo[StaticReflection.GetMemberName <FranchiseDataModel>(x => x.DataFolder)];
            var newDataFolderFranchise =
                model.DataInfo[StaticReflection.GetMemberName <FranchiseDataModel>(x => x.NewDataFolder)];
            var dataFolder    = Path.Combine(SettingsData.AlohaPath, SettingsData.Constants.Franchise.DATA_FOLDER);
            var newDataFolder = Path.Combine(SettingsData.AlohaPath, SettingsData.Constants.Franchise.NEWDATA_FOLDER);

            lock (Lock)
            {
                //Delete STOP file if exists
                var tmpFolder = Path.Combine(SettingsData.AlohaPath, SettingsData.Constants.Franchise.TMP_FOLDER);
                var stopFile  = Path.Combine(tmpFolder, SettingsData.Constants.Franchise.STOP_FILE);
                if (File.Exists(stopFile))
                {
                    FileExt.ForceDeleteFile(stopFile);
                }

                var isUpdated = IsUpdatedUpToDay(dataFolder);
                var fileCode  = Path.Combine(dataFolder, model.Code);

                //Check if DATA y NEWDATA has already franchise selected
                ReinitPosIfNotCurrentDobOrDifferentFranchise(isUpdated, fileCode, dataFolder, dataFolderFranchise, tmpFolder);

                //Start Iber
                var process =
                    ProcessExt.ForceStartProcess(
                        Path.Combine(SettingsData.AlohaPath, SettingsData.Constants.Franchise.BIN_FOLDER),
                        SettingsData.AlohaIberToInit,
                        SettingsData.AlohaIber.Replace(SettingsData.Constants.EXTENSION_EXE, String.Empty),
                        ScreenSizeResponsive.CalculatePosEnviromentVariables(SettingsData.Store.EnableStoreNotifications));

                if (process == null)
                {
                    MessageBus.Current.SendMessage(new MessageBoxSettings
                    {
                        Message =
                            "No fue posible ejecutar el proceso del POS, por favor reporte a soporte técnico.",
                        Title = "Error al ejecutar la aplicación",
                    }, SharedMessageConstants.MSG_SHOW_ERRQST);
                }

                if (bHasToSetThisWndTopMost)
                {
                    SetOnTopMostWindowForNotShowingPosWindow();
                }

                if (File.Exists(Path.Combine(newDataFolder, model.Code)))
                {
                    return;
                }

                //Delete NEWDATA folders
                DirExt.ForceDeleteFolder(newDataFolder);
                //Copy directories of franchise
                DirExt.ForceCopyFolder(Path.Combine(SettingsData.AlohaPath, newDataFolderFranchise.ToString()), newDataFolder);
            }
        }
        protected virtual void OnFranchiseChanged(FranchiseInfoModel model)
        {
            var handler = FranchiseChanged;

            if (handler != null)
            {
                handler(model);
            }
        }
        private void SetNotCheckedButtons(FranchiseInfoModel franchiseInfo)
        {
            foreach (var franchiseVm in Items.Where(e => e.IsChecked && e.Code != franchiseInfo.Code))
            {
                franchiseVm.IsChecked = false;
            }
            ChosenFranchise = franchiseInfo.Title;

            MessageBus.Current.SendMessage(franchiseInfo, SharedMessageConstants.ORDER_FRANCHISE);
            MessageBus.Current.SendMessage(String.Empty, SharedMessageConstants.FLYOUT_LASTORDER_CLOSE);
            GoToNextStep(SharedConstants.Client.ORDER_TAB_CLIENTS);
        }
 public void OnFranchiseChanged(FranchiseInfoModel model)
 {
     Task.Run(() => StarPosEmbedded(model, true)).ContinueWith(_ => DoInjectPosDataByPropagate(model));
 }
 public void OnFranchiseChanged(FranchiseInfoModel obj)
 {
     ValidateStore();
 }
 public void OnFranchiseChanged(FranchiseInfoModel franchiseInfo)
 {
     OnItemChanged(FranchiseView, SharedConstants.Client.RECORD_SAVED, franchiseInfo.Title);
 }
 public void ProcessFranchise(FranchiseInfoModel franchiseInfo)
 {
     franchiseInfo.CopyTo(_model.Franchise);
     _model.Franchise.Status = SharedConstants.Client.RECORD_SAVED;
     OnFranchiseChanged(franchiseInfo);
 }