/// <summary> /// Parses the HMRC vat returns PDF. /// </summary> /// <param name="fileName">Name of the file.</param> /// <param name="info">The information.</param> /// <returns></returns> public Optional <VatReturnsPerBusiness> ParseHmrcVatReturnsPdf(string fileName, InfoAccumulator info) { PdfReader reader; try { reader = new FdfReader(fileName); } catch (Exception ex) { info.AddException(ex); return(null); } VatReturnsPerBusiness vatReturnsPerBusiness = new VatReturnsPerBusiness(); HmrcBusiness hmrcBusiness = new HmrcBusiness(); VatReturnRecord vatReturnRecord = new VatReturnRecord(); vatReturnsPerBusiness.VatReturnRecord = vatReturnRecord; vatReturnsPerBusiness.Business = hmrcBusiness; vatReturnsPerBusiness.Entries = ParseVatReturnDetails(reader, info).Value; FillPeriodData(reader, vatReturnRecord, info); FillBusinessData(reader, vatReturnRecord, hmrcBusiness, info); if (!info.HasErrors) { return(vatReturnsPerBusiness); } return(null); }
/// <summary> /// Saves the vat returns per business. /// </summary> /// <param name="vatPerBusiness">The vat per business.</param> /// <param name="connection">The connection.</param> /// <returns></returns> private bool SaveVatReturnsPerBusiness(VatReturnsPerBusiness vatPerBusiness, SqlConnection connection) { //Business int businessId = SaveBusiness(vatPerBusiness.Business, connection); if (businessId > 0) { vatPerBusiness.VatReturnRecord.BusinessId = businessId; } //VatReturnRecord bool res = true; int vatRecordId = SaveVatReturnRecord(vatPerBusiness.VatReturnRecord, connection); //VatReturnEntries foreach (var batch in vatPerBusiness.Entries .ForEach(entry => entry.RecordId = vatRecordId) .Batch(800)) { res &= SaveVatReturnEntries(batch, connection); if (!res) { return(false); } } return(true); }