示例#1
0
 private static void ConvertAdvertising(XDocument document, Settings settings)
 {
     settings.Advertising.AdvOnDisplay = document.ToBoolean("Рекламный текст,Показывать на дисплее покупателя");
     settings.Advertising.AdvOnReceipt = document.ToBoolean("Рекламный текст,Печатать на чеках");
     settings.Advertising.PauseBetweenMessages = document.ToInt32("Рекламный текст,Интервал смены сообщений");
 }
示例#2
0
 private static void ConvertBackupService(XDocument document, Settings settings)
 {
     settings.Services.BackupService.BackupType = (BackupType)document.ToInt32("Резервное копирование,Периодичность");
     settings.Services.BackupService.BackupStorage = document.ToString("Резервное копирование,Папка резервных копий");
     settings.Services.BackupService.RemovePreviousBackup = document.ToBoolean("Резервное копирование,Удалять старые копии");
     settings.Services.BackupService.BackupStartTime = DateTime.ParseExact(
         document.ToString("Резервное копирование,Начало копирования"),
         "HH.mm",
         null);
     settings.Services.BackupService.DayOfWeek = document.ToInt32("Резервное копирование,День недели");
     settings.Services.BackupService.DayOfMonth = document.ToInt32("Резервное копирование,День месяца");
 }
示例#3
0
        private static void ConvertStatistics(XDocument document, Settings settings)
        {
            settings.Statistics.EnableEventlog = document.ToBoolean("Статистика,Журнал кассовых операций");
            settings.Statistics.StatParams.Clear();

            var protocolParams = document.ToArray("Статистика,Параметры");
            foreach (var protocolName in document.ToArray("Статистика,Протоколы"))
            {
                var protocol = new LoggerProtocol { Name = protocolName };

                foreach (var protocolParam in protocolParams
                    .Where(s => s.StartsWith(protocolName))
                    .Select(s =>
                    {
                        var paramParts = s.PureSplit('?');
                        return paramParts.Length == 2 ? paramParts[1] : String.Empty;
                    }))
                {
                    var paramNameAndValue = protocolParam.PureSplit('=');
                    if (paramNameAndValue.Length == 2)
                    {
                        protocol.Params.Add(new ProtocolParameter
                            {
                                Name = paramNameAndValue[0],
                                Value = paramNameAndValue[1]
                            });
                    }
                }
                
                settings.Statistics.StatParams.Add(protocol);
            }
        }
示例#4
0
 private static void ConvertCashRegister(XDocument document, Settings settings,
     String protocol, String groupName)
 {
     settings.Hardware.CashRegisters.Add(new CashRegister
     {
         ProtocolType = protocol,
         InvertDrawerStatus = document.ToBoolean("Общие,Инвертировать состояние ДЯ"),
         ErrorsIgnoreList = document.ToArray("Печать,Игнорировать ошибки ФР"),
         ClicheAfterNonFiscal = document.ToBoolean("Печать,Печатать клише после нефиск. док."),
         OwnerId = document.ToString(String.Format("{0},Юр. лицо", groupName)),
         Port = document.ToInt32(String.Format("{0},Номер порта", groupName)),
         Baud = document.ToInt32(String.Format("{0},Скорость", groupName)),
         IsDefault = document.ToBoolean(String.Format("{0},По умолчанию", groupName)),
         Header = document.ToArray(String.Format("{0},Клише чека", groupName)),
         Footer = document.ToArray(String.Format("{0},Подвал чека", groupName))
     });
 }
示例#5
0
 private static void ConvertCustomerDisplay(XDocument document, Settings settings)
 {
     settings.Hardware.Displays.Clear();
     
     var protocol = document.ToString("Внешние модули,Дисплей покупателя");
     if (!String.IsNullOrEmpty(protocol))
     {
         var display = new CustomerDisplay
             {
                 ProtocolType = protocol,
                 Baud = document.ToInt32("Дисплей покупателя,Скорость")
             };
         display.Port = document.ToBoolean("Дисплей покупателя,Не использует COM-порт") ?
             -1 : document.ToInt32("Дисплей покупателя,Номер порта");
         settings.Hardware.Displays.Add(display);
     }
 }
示例#6
0
 private static void ConvertExchangeService(XDocument document, Settings settings)
 {
     settings.Services.ExchangeService.Port = document.ToInt32("Служба обмена данными,Порт");
     settings.Services.ExchangeService.IgnoreUsers = document.ToBoolean("Служба обмена данными,Встроенный редактор прав пользователей");
 }
示例#7
0
        private static void ConvertBarcodeScanner(XDocument document, Settings settings)
        {
            settings.Common.ExpandBarcodesToEAN13 = document.ToBoolean("Сканер штрих-кода,Дополнять ШК до EAN-13");
            
            settings.Hardware.Scanners.Clear();

            if (!document.ToBoolean("Сканер штрих-кода,Отключен"))
            {
                settings.Hardware.Scanners.Add(new BarcodeScanner
                    {
                        Port = document.ToInt32("Сканер штрих-кода,Номер порта"),
                        Baud = document.ToInt32("Сканер штрих-кода,Скорость"),
                        Suffix = document.ToInt32("Сканер штрих-кода,Стоп-символ"),
                        Parity = (Parity)document.ToInt32("Сканер штрих-кода,Четность")
                    });
            }
        }
示例#8
0
 private static void ConvertDiscounts(XDocument document, Settings settings)
 {
     settings.Discounts.AutoDiscounts = document.ToBoolean("Скидки,Автоматические скидки");
     settings.Discounts.PersonalDiscounts = document.ToBoolean("Скидки,Персональные скидки");
     settings.Discounts.MixDiscounts = document.ToBoolean("Скидки,Смешивать скидки");
     settings.Discounts.RoundType = (ReceiptRoundType)document.ToInt32("Скидки,Округление суммы чека");
     settings.Discounts.RoundDigit = document.ToInt32("Скидки,Разряд округления");
     settings.Discounts.AutoExtraCharge = document.ToBoolean("Скидки,Авт. наценка чека");
     settings.Discounts.UsePayService = document.ToBoolean("Скидки,Использовать ПДС");
 }
示例#9
0
 private static void ConvertPrint(XDocument document, Settings settings)
 {
     settings.Print.Flags = document.ToArray("Печать,Параметры печати");
     settings.Print.AutoPrintFlags = document.ToArray("Печать,Печать документов при закрытии чека");
     settings.Print.ReceiptPrefix = document.ToString("Печать,Префикс ШК чеков");
     settings.Print.Separator = document.ToString("Печать,Разделитель")[0];
     settings.Print.RegisterBySections = document.ToBoolean("Печать,Регистрация по секциям");
     settings.Print.ByNotes = document.ToBoolean("Печать,Печать покупюрной описи");
     settings.Print.ChargeSlip = document.ToBoolean("Печать,Печать слипа при оплате услуг");
     settings.Print.ClicheFromDatabase = document.ToBoolean("Печать,Клише по данным справочника");
     settings.Print.AutoPrintSystemBalance = document.ToBoolean("Печать,Печатать системный баланс");
     settings.Print.ShortSystemBalance = document.ToBoolean("Печать,Сокращенный системный баланс");
     settings.Print.PrintBalanceInPoints = document.ToBoolean("Печать,Печатать баланс карты в баллах");
     settings.Print.PrintSummary = document.ToBoolean("Печать,Печатать итоговый чек");
     settings.Print.IgnoreEcrCashCounter = document.ToBoolean("Печать,Игнорировать счетчик наличности ФР");
 }
示例#10
0
        private static void ConvertCommon(XDocument document, Settings settings)
        {
            #region Разное

            settings.Common.CashNo = document.ToInt32("Общие,Номер кассы");

            var match = Regex.Match(document.ToString("Общие,Шаблон ШК весового товара"), _barcodeTemplate);
            if (match.Success)
            {
                settings.Common.ScaleBarcodePrefixes =
                    new String[] { match.Groups["Prefix"].Value };

                settings.Common.ScaleBarcodeFormat.Clear();
                settings.Common.ScaleBarcodeFormat.Add(new ScaleBarcodeGroup
                    {
                        GroupType = ScaleBarcodeGroupType.Prefix,
                        GroupLength = match.Groups["Prefix"].Value.Length
                    });
                settings.Common.ScaleBarcodeFormat.Add(new ScaleBarcodeGroup
                    {
                        GroupType = ScaleBarcodeGroupType.Code,
                        GroupLength = match.Groups["Article"].Value.Length
                    });
                settings.Common.ScaleBarcodeFormat.Add(new ScaleBarcodeGroup
                {
                    GroupType = ScaleBarcodeGroupType.Quantity,
                    GroupLength = match.Groups["Weight"].Value.Length
                });
                settings.Common.ScaleBarcodeFormat.Add(new ScaleBarcodeGroup
                {
                    GroupType = ScaleBarcodeGroupType.AnyValue,
                    GroupLength = match.Groups["Control"].Value.Length
                });

            }

            settings.Common.HideBarcodePrefixes = document.ToArray("Общие,Префиксы служебных штрихкодов");
            settings.Common.PointId = document.ToString("Общие,Точка продажи");
            settings.Common.FreeSaleVATRate = document.ToInt32("Общие,Ставка НДС свободной продажи");
            settings.Common.InvoiceBarPrefix = document.ToString("Общие,Префикс ШК документов");
            settings.Common.ExpiryControl = (ExpiryControlType)document.ToInt32("Общие,Контроль срока годности");
            settings.Common.ChargeOwner = document.ToString("Общие,Фирма-владелец для оплаты услуг");

            #endregion

            #region Сенсорный экран

            settings.View.ScreenKeyboard = document.ToBoolean("Общие,Экранная клавиатура");
            settings.View.NavigationPanel = document.ToBoolean("Общие,Навигация по справочнику товаров");
            settings.View.NavPanelHeight = document.ToInt32("Общие,Высота навигационной панели");
            settings.View.NavItemHeight = document.ToInt32("Общие,Высота элемента");
            settings.View.NavItemWidth = document.ToInt32("Общие,Ширина элемента");
            settings.View.NavItemFontSize = document.ToInt32("Общие,Размер шрифта элемента");

            #endregion

            #region Сообщения

            settings.Common.ErrorMessageBoxAutocloseInterval = document.ToInt32("Общие,Автозакрытие сообщений об ошибке");
            settings.Common.MessageBoxAutocloseInterval = document.ToInt32("Общие,Автозакрытие прочих сообщений");

            #endregion

            #region Флаги

            settings.Common.MinimizeQuantity = document.ToBoolean("Общие,Разрешить уменьшать количество");
            settings.Common.WaitForDrawerClose = document.ToBoolean("Общие,Ждать закрытия ДЯ");
            settings.View.FirstOnTop = document.ToBoolean("Общие,Первый товар вверху");
            settings.Common.ZeroPrice = document.ToBoolean("Общие,Разрешить нулевую цену");
            settings.Common.ExtractVAT = document.ToBoolean("Общие,Выделять НДС");
            settings.Common.CurrentShiftReturnOnly = document.ToBoolean("Общие,Возврат только за текущую смену");
            settings.Common.StrictCashierRegistration = document.ToBoolean("Общие,Строгий учет кассиров");
            settings.View.InfoPanel = document.ToBoolean("Общие,Информационная панель");
            settings.Common.BlockZReportIfDocOpened = document.ToBoolean("Общие,Блокировка Z-отчета при открытом чеке");
            settings.Common.AllowShutdownFromShell = document.ToBoolean("Общие,Завершать работу из загрузчика");
            settings.Common.UseReserveControlTape = document.ToBoolean("Общие,Резервная контрольная лента");

            #endregion
        }
示例#11
0
 private static void ConvertPayService(XDocument document, Settings settings)
 {
     settings.PayService.Server = document.ToString("Безналичный расчет,Сервер");
     settings.PayService.Port = document.ToInt32("Безналичный расчет,Порт");
     settings.PayService.AcceptCards = document.ToBoolean("Безналичный расчет,Разрешить безнал");
 }