예제 #1
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))
     });
 }
예제 #2
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("Печать,Игнорировать счетчик наличности ФР");
 }
예제 #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 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
        }