Exemplo n.º 1
0
        public static Guid AddGroupLine(tblGroupLine aGroupLine)
        {
            using (var db = new Odiss_OPG_BaseEntities())
            {
                if (aGroupLine.Guid == Guid.Empty)
                {
                    aGroupLine.Guid = Guid.NewGuid();
                }

                db.Entry(aGroupLine).State = EntityState.Added;
                db.SaveChanges();

                return(aGroupLine.Guid);
            }
        }
Exemplo n.º 2
0
        public void TestAddGroupLine()
        {
            //Arrange
            tblGroupLine aGroupLine  = new tblGroupLine();
            Guid         referenceId = new Guid("EF088139-9C02-4EC8-9D55-51FF702B72FE");

            aGroupLine.Qty         = 11;
            aGroupLine.UOM         = "UOM";
            aGroupLine.UnitPrice   = 100;
            aGroupLine.ReferenceId = referenceId;


            //Act
            var guid = TblGroupHelper.AddGroupLine(aGroupLine);

            //Assert
            Assert.AreNotEqual(null, guid);
        }
Exemplo n.º 3
0
        public static int ParseAribaPrimaryXMLFile(string sourceFullFolder, string primaryFileName, DateTime finalizationTime, out tblGroup group, out List <tblGroupLine> groupLines, out string processMessage)
        {
            group          = new tblGroup();
            groupLines     = new List <tblGroupLine>();
            processMessage = "";

            if (!File.Exists($"{sourceFullFolder}{primaryFileName}"))
            {
                processMessage = $"Primary XML file: { sourceFullFolder}{ primaryFileName} does not exist.";
                OdissLogger.Error(processMessage);
                return(-1);
            }

            XmlDocument doc = new XmlDocument();

            doc.Load($"{sourceFullFolder}{primaryFileName}");

            XmlNode invoiceDetailRequest = doc.SelectSingleNode("/cXML/Request/InvoiceDetailRequest");

            XmlNode requestHeader = invoiceDetailRequest.SelectSingleNode("InvoiceDetailRequestHeader");
            string  invoiceID     = requestHeader.Attributes["invoiceID"].Value;

            group.InvoiceNo = invoiceID;
            XmlNode nodeGrossAmount = invoiceDetailRequest.SelectSingleNode("InvoiceDetailSummary/GrossAmount");

            string strGrossAmount = nodeGrossAmount.SelectSingleNode("Money").InnerText;

            decimal grossAmount;


            if (!decimal.TryParse(strGrossAmount, out grossAmount))
            {
                processMessage = $"File:{sourceFullFolder}{primaryFileName} has invalid GrossAmount:{strGrossAmount}";
                OdissLogger.Error(processMessage);
                return(-2);
            }

            group.TotalAmount   = grossAmount;
            group.GUID          = Guid.NewGuid();
            group.I_CaptureDate = DateTime.Now;

            XmlNodeList invoiceDetailOrders = invoiceDetailRequest.SelectSingleNode("InvoiceDetailOrder").SelectNodes("InvoiceDetailItem");

            XmlNode nodeInvoiceDetailOrderInfo = invoiceDetailRequest.SelectSingleNode("InvoiceDetailOrder/InvoiceDetailOrderInfo/MasterAgreementIDInfo");
            string  PONumber = nodeInvoiceDetailOrderInfo.Attributes["agreementID"].Value;

            group.PONumber = PONumber;

            foreach (XmlNode item in invoiceDetailOrders)
            {
                string uom           = item.SelectSingleNode("UnitOfMeasure").InnerText;
                string unitPrice     = item.SelectSingleNode("UnitPrice/Money").InnerText;
                string quantity      = item.Attributes["quantity"].Value;
                string strLineNumber = item.Attributes["invoiceLineNumber"].Value;

                tblGroupLine aline = new tblGroupLine();
                aline.UOM               = uom;
                aline.Qty               = int.Parse(quantity);
                aline.UnitPrice         = decimal.Parse(unitPrice);
                aline.Guid              = Guid.NewGuid();
                aline.ReferenceId       = group.GUID;
                aline.InvoiceLineNumber = int.Parse(strLineNumber);

                groupLines.Add(aline);
            }

            return(1);
        }