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 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 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 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 }