Ejemplo n.º 1
0
        public void WriteMeter(XContainer container, Type810DetailItem[] items)
        {
            var loopElement = new XElement("MeterLoop");

            container.Add(loopElement);

            foreach (var item in items)
            {
                var meters = clientDataAccess.ListMeterConsumptionByInvoice(item.InvoiceNbr);
                if (meters.Any())
                {
                    var meter   = meters[0];
                    var element = new XElement("Meter",
                                               new XElement("InvoiceId", meter.InvoiceId),
                                               new XElement("MeterType", meter.MeterType),
                                               new XElement("RateCodeValue", meter.RateCodeValue),
                                               new XElement("MeterNumber", meter.MeterNumber),
                                               new XElement("UOM", meter.UOM),
                                               new XElement("BeginningRead", meter.BegRead),
                                               new XElement("EndingRead", meter.EndRead),
                                               new XElement("ReadType", "AA"),
                                               new XElement("MeterMeasureType", "NT"),
                                               new XElement("Multiplier", meter.MeterFactor),
                                               new XElement("SigCode", "51"),
                                               new XElement("TotalConsumption", meter.TotalConsumption),
                                               new XElement("ServicePeriodStartDate", meter.ServicePeriodStartDate),
                                               new XElement("ServicePeriodEndDate", meter.ServicePeriodEndDate));

                    loopElement.Add(element);
                    logger.TraceFormat("Added 810 \"Meter\" XML element for Invoice {0}", item.InvoiceNbr);
                }
            }
        }
Ejemplo n.º 2
0
        public void WriteCustInvMeterReads(Prism810Context context, CustomerInvoiceConfigModel configModel, Type810Header header)
        {
            if (!context.IsCustomerInvoice)
            {
                return;
            }

            var meterCons = clientDataAccess.ListMeterConsumptionByInvoice(header.InvoiceNbr);

            if (meterCons == null || meterCons.Length == 0)
            {
                return;
            }

            foreach (var meterCon in meterCons)
            {
                var line = string.Format("30|{0}|AA|{1}|KH|51|{2}|{3}||||", context.TradingPartnerId,
                                         meterCon.MeterFactor, meterCon.BegRead, meterCon.EndRead);

                context.AppendLine(line);
                logger.TraceFormat("Wrote 810 \"30\" PRISM line for Header {0}", header.HeaderKey);
            }
        }