private DataTable GetDataTableGiftAidDonations(R68ClaimRepaymentGAD[] giftAidDonations)
        {
            DataTable dt = DataHelpers.MakeRepaymentTable();

            foreach (var gad in giftAidDonations)  //r68claim.Repayment.GAD
            {
                DataRow dr;
                dr = dt.NewRow();

                if (gad.Item is R68ClaimRepaymentGADDonor)
                {
                    R68ClaimRepaymentGADDonor donor = (R68ClaimRepaymentGADDonor)gad.Item;

                    dr["Fore"]  = donor.Fore;
                    dr["Sur"]   = donor.Sur;
                    dr["House"] = donor.House;
                    if (donor.Item is string)
                    {
                        dr["Postcode"] = donor.Item;
                    }
                    if (donor.Item is hmrcclasses.r68_YesType)
                    {
                        dr["Overseas"] = "yes";
                    }
                    dr["Type"] = "GAD";
                }
                else if (gad.Item is string)
                {
                    // agg donation
                    dr["Type"]        = "AGG";
                    dr["Description"] = gad.Item;
                }

                dr["Total"] = gad.Total;
                dr["Date"]  = gad.Date;

                //sponsorship flag
                if (gad.SponsoredSpecified)
                {
                    dr["Sponsored"] = gad.Sponsored == r68_YesType.yes ? "Y" : "N";
                }

                dt.Rows.Add(dr);
            }

            return(dt);
        }
Beispiel #2
0
        public static DonorError GetGADError(string filename, string location)
        {
            XPathDocument  doc = new XPathDocument(filename);
            XPathNavigator nav = doc.CreateNavigator();

            XmlNamespaceManager nsMgr = new XmlNamespaceManager(nav.NameTable);

            nsMgr.AddNamespace("hd", @"http://www.govtalk.gov.uk/CM/envelope");
            nsMgr.AddNamespace("r68", @"http://www.govtalk.gov.uk/taxation/charities/r68/2");

            XPathNavigator GAD = nav.SelectSingleNode(location, nsMgr);

            XmlRootAttribute GADROOT = new XmlRootAttribute();

            GADROOT.ElementName = "GAD";
            GADROOT.Namespace   = "http://www.govtalk.gov.uk/taxation/charities/r68/2";
            GADROOT.IsNullable  = true;

            XmlSerializer serializer = new XmlSerializer(typeof(R68ClaimRepaymentGAD), GADROOT);

            XmlDocument GADXML = new XmlDocument();

            GADXML.Load(GAD.ReadSubtree());

            MemoryStream xmlStream = new MemoryStream();

            GADXML.Save(xmlStream);
            xmlStream.Seek(0, SeekOrigin.Begin);

            //object tempobj = serializer.Deserialize(xmlStream);

            R68ClaimRepaymentGAD      Donation = (R68ClaimRepaymentGAD)serializer.Deserialize(xmlStream);
            R68ClaimRepaymentGADDonor Donor    = (R68ClaimRepaymentGADDonor)Donation.Item;

            DonorError donorErr = new DonorError
            {
                Forename       = Donor.Fore,
                Surname        = Donor.Sur,
                Address1       = Donor.House,
                Postcode       = Donor.Item.GetType() == typeof(string) ? Donor.Item.ToString() : "", //@TODO: Does this work for Overseas?
                DonationAmount = Donation.Total.ToString(),
                DonationDate   = Donation.Date.ToString()
            };

            return(donorErr);
        }
        public override void SetDonation()
        {
            R68ClaimRepaymentGADDonor donor = new R68ClaimRepaymentGADDonor();

            if (InputDataRow.Table.Columns.Contains("Title") &&
                InputDataRow["Title"].ToString().Length > 0)
            {
                donor.Ttl = InputDataRow["Title"].ToString();
            }
            donor.Fore  = InputDataRow["Fore"].ToString();
            donor.Sur   = InputDataRow["Sur"].ToString();
            donor.House = InputDataRow["house"].ToString().Length > 40 ? InputDataRow["house"].ToString().Substring(0, 40) : InputDataRow["house"].ToString();
            if (InputDataRow["Postcode"].ToString().Length > 0)
            {
                donor.Item = InputDataRow["Postcode"].ToString();
            }
            else
            {
                donor.Item = new r68_YesType();
            }

            R68ClaimRepaymentGAD.Item = donor;
        }
Beispiel #4
0
        public static void TestSerialize()
        {
            R68ClaimGASDS gasds = new R68ClaimGASDS();

            gasds.ConnectedCharities = r68_YesNoType.no;
            gasds.CommBldgs          = r68_YesNoType.no;

            R68ClaimRepaymentOtherInc otherinc = new R68ClaimRepaymentOtherInc();

            otherinc.Payer  = "Peter Other";
            otherinc.Gross  = 13.12M;
            otherinc.OIDate = Convert.ToDateTime("2014-10-31");
            otherinc.Tax    = 2.62M;

            R68ClaimRepaymentOtherInc[] OtherIncs = new R68ClaimRepaymentOtherInc[1];
            OtherIncs[0] = otherinc;

            R68ClaimRepaymentGADDonor donor = new R68ClaimRepaymentGADDonor();

            donor.Fore  = "Jane";
            donor.Sur   = "Smith";
            donor.House = "1";
            donor.Item  = "BA23 9CD";

            R68ClaimRepaymentGAD gad = new R68ClaimRepaymentGAD();

            gad.Item        = donor;
            gad.TotalString = "12.00";
            gad.Date        = Convert.ToDateTime("2014-10-03");

            XmlDocument xmlGad =
                XmlSerializationHelpers.SerializeItem(gad);

            byte[] bytes = Encoding.UTF8.GetBytes(xmlGad.OuterXml);

            xmlGad.Save(@"C:\Temp\GAD.xml");

            R68ClaimRepaymentGAD[] GADS = new R68ClaimRepaymentGAD[1];
            GADS[0] = gad;

            R68ClaimRepayment repayment = new R68ClaimRepayment();

            repayment.EarliestGAdateSpecified = true;
            repayment.EarliestGAdate          = Convert.ToDateTime("2014-10-03");
            repayment.GAD      = GADS;
            repayment.OtherInc = OtherIncs;

            R68ClaimRegulator regulator = new R68ClaimRegulator();

            regulator.Item  = R68ClaimRegulatorRegName.CCEW;
            regulator.RegNo = "A1234";

            R68Claim claim = new R68Claim();

            claim.OrgName   = "My Organisation";
            claim.HMRCref   = "AA12345";
            claim.GASDS     = gasds;
            claim.Regulator = regulator;
            claim.Repayment = repayment;

            XmlDocument claimXml =
                XmlSerializationHelpers.SerializeItem(claim);

            claimXml.Save(@"C:\Temp\R68Claim.xml");
        }