private void SplitHandler(LedgerTransaction t, XmlNode splitNode)
        {

            foreach (XmlNode node in splitNode.ChildNodes)
            {

                LedgerTransactionSplit s = new LedgerTransactionSplit();

                foreach (XmlNode innerNode in node.ChildNodes)
                {

                    switch (innerNode.LocalName)
                    {

                        case "id":
                            s.GnuCashIdentifier = new Guid(innerNode.InnerText);
                            break;

                        case "memo":
                            s.Memo = innerNode.InnerText;
                            break;

                        case "reconciled-state":
                            s.ReconciledState = innerNode.InnerText;
                            break;

                        case "value":
                            string[] parts = innerNode.InnerText.Split('/');
                            decimal amount = int.Parse(parts[0]) / (decimal)int.Parse(parts[1]);
                            s.Amount = amount;
                            break;

                        case "account":
                            Guid accountGuid = new Guid(innerNode.InnerText);

                            //search
                            Dictionary<string, object> hqlParams = new Dictionary<string, object>();
                            hqlParams.Add("accountGuid", accountGuid);

                            LedgerAccount a = Core.Data.Find.FindByHql<LedgerAccount>(-1,
                                "from LedgerAccount a where a.GnuCashIdentifier = :accountGuid", hqlParams);

                            s.Account = a;
                            break;

                        default:
                            int i = 1;
                            break;



                    }

                }

                t.AddSplit(s);

            }



        }
Ejemplo n.º 2
0
 public virtual void AddSplit(LedgerTransactionSplit s)
 {
     s.ParentTransaction = this;
     _splits.Add(s);
 }