Beispiel #1
0
        private string GenerateCGFileName(XmlDocument doc) // Calendar Girl
        {
            StringBuilder b = new StringBuilder(_basePath);

            b.AppendFormat(@"{0}_pos1girlproximitytag{1}.csv", SummaTransactionCommon.GetDateStamp(doc), GetMemberNumber(doc));
            return(b.ToString());
        }
Beispiel #2
0
        private string GenerateFileName(XmlDocument doc)
        {
            StringBuilder b = new StringBuilder(_basePath);

            b.AppendFormat(@"\ACCESS_{0}_{1}.csv", DateTime.Now.Ticks, SummaTransactionCommon.GetTerminalID(doc));
            return(b.ToString());
        }
Beispiel #3
0
        /// <summary>
        /// Setup internal data values for each product.
        /// </summary>
        /// <param name="doc"></param>
        public override void SetupData(XmlDocument doc)
        {
            XmlNodeList products = null;

            try
            {
                // In case GetStoreId fails
                Summa.ErrorLevelFile = FileLogger.LogErrorLevelFile.TransactionXMLFile;
                Summa.ErrorStrDetail = doc.DocumentElement.Attributes["id"].Name;

                FULLFILEPATH += SummaFileName.GetName(SummaFileName.SummaFileType.TransactionDetails, SummaTransactionCommon.GetStoreId(doc));

                products = doc.DocumentElement.SelectNodes("/Transaction/Receipt/Product");

                int counter = 0;
                foreach (XmlNode productNode in products)
                {
                    csvData.Add(new List <string>());

                    #region Specs v1.2
                    csvData[counter].Add(GetTransactionDetailID(doc, productNode));
                    #endregion

                    csvData[counter].Add(SummaTransactionCommon.GetTransactionID(doc));
                    csvData[counter].Add(SummaTransactionProductCommon.GetProductId(productNode));
                    csvData[counter].Add(GetQty(doc, productNode));

                    #region Old Specs
                    //csvData[counter].Add(SummaTransactionProductCommon.GetUnitPrice(productNode));
                    //csvData[counter].Add(SummaTransactionProductCommon.GetDiscount(productNode));
                    #endregion

                    #region Specs v1.2
                    // GST = Tax, in this context
                    csvData[counter].Add(GetUnitPriceXGST(productNode));
                    csvData[counter].Add(GetGSTAmount(productNode));

                    csvData[counter].Add(SummaTransactionProductCommon.GetDiscountXGST(productNode));
                    csvData[counter].Add(SummaTransactionProductCommon.GetDiscountGSTAmount(productNode));
                    #endregion

                    csvData[counter].Add(SummaTransactionProductCommon.GetPromotionId(productNode));
                    csvData[counter].Add(SummaTransactionProductCommon.GetBarcode(productNode));
                    csvData[counter].Add(SummaTransactionCommon.GetStoreId(doc));

                    counter++;
                    csvLineData.Add(new StringBuilder());
                }
            }
            catch (Exception e) {
                SummaException se = new SummaException("Problem processing transaction detail", e);
                se.Data = doc.OuterXml;
                throw se;
            }
        }
Beispiel #4
0
        public override void SetupData(XmlDocument doc)
        {
            try
            {
                // In case GetStoreId fails
                Summa.ErrorLevelFile = FileLogger.LogErrorLevelFile.TransactionXMLFile;
                Summa.ErrorStrDetail = doc.DocumentElement.Attributes["id"].Name;


                // build unique filename
                FULLFILEPATH = GenerateCGFileName(doc);

                XmlNodeList products = null;
                XmlNodeList cards    = null;

                products = doc.DocumentElement.SelectNodes("/Transaction/Receipt/Product");
                cards    = doc.DocumentElement.SelectNodes("/Transaction/Receipt/Member/MagCards/MagCard");
                int counter = 0;

                foreach (XmlNode productNode in products)
                {
                    foreach (XmlNode cardNode in cards)
                    {
                        csvData.Add(new List <string>());
                        csvData[counter].Add(SummaTransactionCommon.GetTransactionID(doc));            // txn id
                        csvData[counter].Add(SummaTransactionCommon.GetCustomerId(doc));               // customer id

                        csvData[counter].Add(GetTag(cardNode));                                        // card tag
                        csvData[counter].Add(GetMemberNumber(doc));                                    // member number

                        csvData[counter].Add(SummaTransactionProductCommon.GetProductId(productNode)); // product id
                        //csvData[counter].Add(GetProxCard(doc));	// proc card

                        csvData[counter].Add(GetProductName(productNode));              // product name
                        csvData[counter].Add(SummaTransactionCommon.GetDateStamp(doc)); // Date Stamp

                        //csvData[counter].Add(GetProxCard(doc));	// prox card

                        counter++;

                        csvLineData.Add(new StringBuilder());
                    }
                }
            }
            catch (Exception e)
            {
                SummaException se = new SummaException("Problem processing transaction detail", e);
                se.Data = doc.OuterXml;
                throw se;
            }
        }
Beispiel #5
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="inDoc"></param>
        /// <returns></returns>
        string GetSalesTotalXTax(XmlDocument inDoc)
        {
            string transactionType = SummaTransactionCommon.GetTransactionType(inDoc);
            double totalxTax       = Convert.ToDouble(SummaTransactionCommon.GetSalesTotalXTax(inDoc));

            switch (transactionType)
            {
            case @"1": return(string.Format("{0:#.00}", Math.Abs(totalxTax)));         // Purchase

            case @"2": return(string.Format("{0:#.00}", Math.Abs(totalxTax) * -1));    // Refund

            default: return(string.Format("{0:#.00}", Math.Abs(totalxTax)));
            }
        }
Beispiel #6
0
        /// <summary>
        /// Deconstruct xml document and populate internal data fields
        /// </summary>
        /// <param name="doc"></param>
        public override void SetupData(XmlDocument doc)
        {
            try
            {
                // In case GetStoreId fails
                Summa.ErrorLevelFile = FileLogger.LogErrorLevelFile.TransactionXMLFile;
                Summa.ErrorStrDetail = doc.DocumentElement.Attributes["id"].Name;

                FULLFILEPATH += SummaFileName.GetName(SummaFileName.SummaFileType.Transactions, SummaTransactionCommon.GetStoreId(doc));

                csvData.Add(new List <string>());
                csvLineData.Add(new StringBuilder());

                csvData[0].Add(SummaTransactionCommon.GetTransactionID(doc));
                csvData[0].Add(SummaTransactionCommon.GetTransactionType(doc));
                csvData[0].Add(SummaTransactionCommon.GetTerminalID(doc));

                csvData[0].Add(SummaTransactionCommon.GetCustomerId(doc));

                //string id = SummaTransactionCommon.GetCustomerId(doc);
                //CheckCustomerID.Check(id);
                //csvData[0].Add(id);

                #region Old Specs
                //csvData[0].Add(SummaTransactionCommon.GetSalesTotal(doc));
                #endregion

                #region Specs v1.2
                csvData[0].Add(GetSalesTotalXTax(doc));      // Sales Total Excluding Tax
                csvData[0].Add(GetSalesTotalTaxAmount(doc)); // Sales Total Tax Amount

                csvData[0].Add(GetDiscountXTax(doc));        // Discount Excluding Tax
                csvData[0].Add(GetDiscountTaxAmount(doc));   // Discount Tax Amount
                #endregion

                csvData[0].Add(SummaTransactionCommon.GetDateStamp(doc));
                csvData[0].Add(SummaTransactionCommon.GetPromotionId(doc));
                csvData[0].Add(SummaTransactionCommon.GetOperatorId(doc));
                csvData[0].Add(SummaTransactionCommon.GetExtra1(doc));
                csvData[0].Add(SummaTransactionCommon.GetExtra2(doc));
                csvData[0].Add(SummaTransactionCommon.GetExtra3(doc));
                csvData[0].Add(SummaTransactionCommon.GetStoreId(doc));
            }
            catch (Exception e)
            {
                SummaException se = new SummaException("Problem processing transaction", e);
                se.Data = doc.OuterXml;
                throw se;
            }
        }
Beispiel #7
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="inDoc"></param>
        /// <returns></returns>
        string GetDiscountTaxAmount(XmlDocument inDoc)
        {
            string transactionType = SummaTransactionCommon.GetTransactionType(inDoc);
            double discountXTax    = Convert.ToDouble(SummaTransactionCommon.GetDiscountTaxAmount(inDoc));

            switch (transactionType)
            {
            case @"1": return(string.Format("{0:#.00}", Math.Abs(discountXTax)));         // Purchase

            case @"2": return(string.Format("{0:#.00}", Math.Abs(discountXTax) * -1));    // Refund

            default: return(string.Format("{0:#.00}", Math.Abs(discountXTax)));
            }
        }
Beispiel #8
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="inDoc"></param>
        /// <param name="inProductNode"></param>
        /// <returns></returns>
        string GetQty(XmlDocument inDoc, XmlNode inProductNode)
        {
            string transactionType = SummaTransactionCommon.GetTransactionType(inDoc);
            double qty             = Convert.ToDouble(SummaTransactionProductCommon.GetQuantity(inProductNode));

            switch (transactionType)
            {
            case @"1": return(string.Format("{0:#.00}", Math.Abs(qty)));         // Purchase

            case @"2": return(string.Format("{0:#.00}", Math.Abs(qty) * -1));    // Refund

            default: return(string.Format("{0:#.00}", Math.Abs(qty)));
            }
        }
        public override void SetupData(XmlDocument doc)
        {
            XmlNodeList methods = null;

            try
            {
                // In case GetStoreId fails
                Summa.ErrorLevelFile = FileLogger.LogErrorLevelFile.TransactionXMLFile;
                Summa.ErrorStrDetail = doc.DocumentElement.Attributes["id"].Name;

                FULLFILEPATH += SummaFileName.GetName(SummaFileName.SummaFileType.TransactionPaymentMethods, SummaTransactionCommon.GetStoreId(doc));

                methods = doc.DocumentElement.SelectNodes("/Transaction/Receipt/Payment");

                if (methods.Count == 0)
                {
                    Summa.SingletonLoggerStatic.Log(string.Format(string.Format("No payment methods for txn # {0}",
                                                                                SummaTransactionCommon.GetTransactionID(doc))));

                    //Summa.LOGGER.Log(LogLevel.Warn, string.Format("No payment methods for txn # {0}",
                    //    SummaTransactionCommon.GetTransactionID(doc)));
                }

                int counter = 0;
                foreach (XmlNode paymentNode in methods)
                {
                    csvData.Add(new List <string>());
                    csvData[counter].Add(SummaTransactionCommon.GetTransactionPaymentID(paymentNode));
                    csvData[counter].Add(SummaTransactionCommon.GetTransactionID(doc));
                    csvData[counter].Add(SummaPaymentMethodsCommon.GetPaymentId(paymentNode));
                    csvData[counter].Add(SummaPaymentMethodsCommon.GetCardNumber(paymentNode));
                    csvData[counter].Add(SummaPaymentMethodsCommon.GetSalesValue(paymentNode));
                    csvData[counter].Add(SummaTransactionCommon.GetStoreId(doc));

                    counter++;
                    csvLineData.Add(new StringBuilder());
                }
            }
            catch (Exception e) {
                SummaException se = new SummaException("Problem processing transaction payment methods", e);
                se.Data = doc.OuterXml;
                throw se;
            }
        }
Beispiel #10
0
        /// <summary>
        /// Deconstruct xml document and populate internal data fields
        /// </summary>
        /// <param name="doc"></param>
        public override void SetupData(XmlDocument doc)
        {
            FULLFILEPATH += SummaFileName.GetName(SummaFileName.SummaFileType.TransactionCheck, SummaTransactionCommon.GetStoreId(doc));

            try
            {
                csvData.Add(new List <string>());
                csvLineData.Add(new StringBuilder());

                csvData[0].Add(SummaTransactionCommon.GetTransactionID(doc));
                csvData[0].Add(SummaTransactionCommon.GetSalesTotalXTax(doc));  // Sales Total Excluding Tax

                //XmlNode productNode = doc.DocumentElement.SelectSingleNode("/Transaction/Receipt/Product");

                XmlNodeList products = doc.DocumentElement.SelectNodes("/Transaction/Receipt/Product");

                decimal summaNetXTax = 0;
                decimal quantity     = 0;
                decimal unitPrice    = 0;

                foreach (XmlNode productNode in products)
                {
                    summaNetXTax += Convert.ToDecimal(SummaTransactionProductCommon.GetSummaNetXTax(productNode));
                    quantity     += Convert.ToDecimal(SummaTransactionProductCommon.GetQuantity(productNode));
                    unitPrice    += Convert.ToDecimal(SummaTransactionProductCommon.GetUnitPriceXGST(productNode));
                }

                csvData[0].Add(string.Format("{0:#.00}", Math.Abs(summaNetXTax)));
                csvData[0].Add(string.Format("{0:#.00}", Math.Abs(quantity)));
                csvData[0].Add(string.Format("{0:#.00}", Math.Abs(unitPrice)));
            }
            catch (Exception e)
            {
                SummaException se = new SummaException("Problem processing transaction", e);
                se.Data = doc.OuterXml;
                throw se;
            }
        }