예제 #1
0
        public PrismaDataConverter(Settings terminalSettings, String mappingFileName)
            : base(terminalSettings)
        {
            // загружаем параметры сопоставления событий кассовой системы
            // пакету данных системы видеонаблюдения
            _space = GenericSerializer.Deserialize<MappingSpace>(mappingFileName);

            // создаем словарь с пользовательской логикой сопоставления 
            // для полей пакета данных системы видеонаблюдения
            _customLogicByPacketField = new Dictionary<CustomLogicByPacketFieldKey,
                Func<EventData, SystemEvent, PacketField, String>>();

            _customLogicByPacketField.Add(
                new CustomLogicByPacketFieldKey(0, "Префикс объекта"), (e, m, f) => "KKM");
            _customLogicByPacketField.Add(
                new CustomLogicByPacketFieldKey(0, "Номер ККМ"),
                (e, m, f) => TerminalSettings.Common.CashNo.ToField(f.DataSize));
            _customLogicByPacketField.Add(
                new CustomLogicByPacketFieldKey(0, "Код события"),
                (e, m, f) => m.ExternalId.ToField(f.DataSize));
            _customLogicByPacketField.Add(
                new CustomLogicByPacketFieldKey(0, "Номер чека"),
                (e, m, f) => e.ToReceiptField().ToField(f.DataSize));
            _customLogicByPacketField.Add(
                new CustomLogicByPacketFieldKey(0, "День"),
                (e, m, f) => DateTime.Today.ToString("dd").ToField(f.DataSize));
            _customLogicByPacketField.Add(
                new CustomLogicByPacketFieldKey(0, "Месяц"),
                (e, m, f) => DateTime.Today.ToString("MM").ToField(f.DataSize));
            _customLogicByPacketField.Add(
                new CustomLogicByPacketFieldKey(0, "Год"),
                (e, m, f) => DateTime.Today.ToString("yy").ToField(f.DataSize));
            _customLogicByPacketField.Add(
                new CustomLogicByPacketFieldKey(0, "Милисекунды"),
                (e, m, f) => DateTime.Now.ToString("fff").ToField(f.DataSize));
            _customLogicByPacketField.Add(
                new CustomLogicByPacketFieldKey(0, "Секунды"),
                (e, m, f) => DateTime.Now.ToString("ss").ToField(f.DataSize));
            _customLogicByPacketField.Add(
                new CustomLogicByPacketFieldKey(0, "Минуты"),
                (e, m, f) => DateTime.Now.ToString("mm").ToField(f.DataSize));
            _customLogicByPacketField.Add(
                new CustomLogicByPacketFieldKey(0, "Часы"),
                (e, m, f) => DateTime.Now.ToString("HH").ToField(f.DataSize));
            _customLogicByPacketField.Add(
                new CustomLogicByPacketFieldKey(26, "Сумма чека"),
                (e, m, f) => e.ToAmountField().ToField(f.DataSize));

            Func<EventData, SystemEvent, PacketField, String> getOriginalReceipt =
                (e, m, f) => e.ToOriginalReceiptField().ToField(f.DataSize);
            _customLogicByPacketField.Add(
                new CustomLogicByPacketFieldKey(53, "Номер чека"), getOriginalReceipt);
            _customLogicByPacketField.Add(
                new CustomLogicByPacketFieldKey(55, "Номер чека"), getOriginalReceipt);
        }
예제 #2
0
파일: Model.cs 프로젝트: Dennis-Petrov/Cash
 public void LoadSpace(String fileName)
 {
     _space = GenericSerializer.Deserialize<MappingSpace>(fileName, true);
     MapToConverter.SetFields(_space.PacketFields);
     _changed = false;
     _fileName = fileName;
 }
예제 #3
0
파일: Model.cs 프로젝트: Dennis-Petrov/Cash
 public void CreateSpace()
 {
     _space = new MappingSpace();
     MapToConverter.SetFields(_space.PacketFields);
     _changed = false;
     _fileName = null;
 }