private static void ConvertAdvertising(XDocument document, Settings settings) { settings.Advertising.AdvOnDisplay = document.ToBoolean("Рекламный текст,Показывать на дисплее покупателя"); settings.Advertising.AdvOnReceipt = document.ToBoolean("Рекламный текст,Печатать на чеках"); settings.Advertising.PauseBetweenMessages = document.ToInt32("Рекламный текст,Интервал смены сообщений"); }
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("Резервное копирование,День месяца"); }
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); } }
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)) }); }
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); } }
private static void ConvertExchangeService(XDocument document, Settings settings) { settings.Services.ExchangeService.Port = document.ToInt32("Служба обмена данными,Порт"); settings.Services.ExchangeService.IgnoreUsers = document.ToBoolean("Служба обмена данными,Встроенный редактор прав пользователей"); }
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("Сканер штрих-кода,Четность") }); } }
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("Скидки,Использовать ПДС"); }
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("Печать,Игнорировать счетчик наличности ФР"); }
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 }
private static void ConvertPayService(XDocument document, Settings settings) { settings.PayService.Server = document.ToString("Безналичный расчет,Сервер"); settings.PayService.Port = document.ToInt32("Безналичный расчет,Порт"); settings.PayService.AcceptCards = document.ToBoolean("Безналичный расчет,Разрешить безнал"); }