예제 #1
0
        void TLogTranslateItem_OnAfterRuleLoad(object sender, TranslateEventArgs e)
        {
            TranslateRule transrule = (TranslateRule)sender;

            if (transrule.ID == "L30")
            {
                //When we reach the 30 record we reset the discount line number so we can reassign it later if the 30 record has a valid Line (L) item to create
                DiscountLineNumber = -1;
                //Reset out counter to keep track of the number of discount line items in the transaction.
                UniqueDiscountId = 0;
            }

            if (transrule.ID == "L60")
            {
                XPathNavigator nav = e.CurrentTranslateItem.CreateNavigator();
                if (Convert.ToBoolean(nav.Evaluate(GetXpathExpression("string(@type) = '2' and string(@seq_num) = '38'"))))
                {
                    if (String.IsNullOrEmpty(PolledNetSalesFile))
                    {
                        PolledNetSalesFile = base.PluginConfig.GetValue("PolledNetSalesFile");
                    }

                    //NetSales sales = new NetSales();

                    string   netsales  = nav.Evaluate(GetXpathExpression("string(@amount)")).ToString();
                    string   storeNum  = nav.Evaluate(GetXpathExpression("string(@store_num)")).ToString();
                    DateTime TransDate = Convert.ToDateTime(nav.Evaluate(GetXpathExpression("string(@trans_date)")).ToString());
                    WritePolledNetSales(storeNum, netsales, TransDate);
                }
            }
            //This will store the notes for bank deposit and will be added to the output when the translate hits the 52 record
            if (transrule.ID == "L51")
            {
                if (BankNotes == null)
                {
                    BankNotes = new List <XmlNode>();
                }

                XPathNavigator nav       = e.CurrentTranslateItem.CreateNavigator();
                int            transType = 10;
                while (transType <= 26)
                {
                    string strExpr = String.Format("count(following-sibling::L52[@Tender_id_sub1='{0}' and number(@tender_id) = 0]) > 0", transType);
                    if (Convert.ToBoolean(nav.Evaluate(GetXpathExpression(strExpr))))
                    {
                        string  LineNote = String.Format("number(following-sibling::L52[@Tender_id_sub1='{0}' and number(@tender_id) = 0]/@extended_amount)", transType);
                        string  NoteType = String.Format("number(100 + number(following-sibling::L52[@Tender_id_sub1='{0}' and number(@tender_id) = 0]/@Tender_id_sub1))", transType);
                        XmlNode BankNote = DestinationDocumentTemplate.SelectSingleNode("//N");
                        BankNote.Attributes["Line_id"].Value        = "0";
                        BankNote.Attributes["Line_Note"].Value      = Convert.ToString(nav.Evaluate(GetXpathExpression(LineNote)));
                        BankNote.Attributes["Line_note_type"].Value = Convert.ToString(nav.Evaluate(GetXpathExpression(NoteType)));
                        BankNotes.Add(BankNote);
                    }
                    transType++;
                }
            }
        }
예제 #2
0
        void TLogTranslateItem_OnAfterRuleProcess(object sender, TranslateEventArgs e)
        {
            XmlNode TransNode = (XmlNode)sender;
            string  SaveType  = TransNode.SelectSingleNode("//L10").Attributes["type"].Value;

            if (String.IsNullOrEmpty(TransNode.SelectSingleNode("//L10").Attributes["flgs_L10ADMIN"].Value))
            {
                return;
            }

            bool isAdminTrans = Convert.ToBoolean(Int32.Parse(TransNode.SelectSingleNode("//L10").Attributes["flgs_L10ADMIN"].Value));

            //We are not allowed to have a header item without a line item so we handle that here
            //if (HeadItemFound != LineFound && (isAdminTrans && (SaveType == "1" || SaveType == "144")))
            if ((HeadItemFound != LineFound) && isAdminTrans)
            {
                CreateLineItem(TransNode, e.OutputDocument);
            }
        }