public async Task <WorkpaperResponseOfForeignIncomeWorkpaper> CreateAsync( Guid taxpayerId, int taxYear, TaxTreatment taxTreatment = TaxTreatment.Taxable, decimal grossIncome = 0m, decimal deductions = 0m, decimal taxPaid = 0m, decimal frankingCreditsFromNewZealandCompany = 0m, string descriptionOfIncome = "", string foreignEntityTrustName = "", string foreignEntityTrusteeName = "" ) { var workpaperResponse = await Client .Workpapers_GetForeignIncomeWorkpaperAsync( taxpayerId, taxYear, Guid.NewGuid(), null, null, null, CancellationToken.None) .ConfigureAwait(false); var workpaper = workpaperResponse.Workpaper; workpaper.TaxTreatment = taxTreatment; workpaper.GrossIncome = grossIncome.ToNumericCell(); workpaper.Deductions = deductions.ToNumericCell(); workpaper.TaxPaid = taxPaid.ToNumericCell(); workpaper.FrankingCreditsFromNewZealandCompany = frankingCreditsFromNewZealandCompany.ToNumericCell(); workpaper.DescriptionOfIncome = descriptionOfIncome; workpaper.ForeignEntityTrustName = foreignEntityTrustName; workpaper.ForeignEntityTrusteeName = foreignEntityTrusteeName; var command = new UpsertForeignIncomeWorkpaperCommand() { TaxpayerId = taxpayerId, TaxYear = taxYear, AccountRecordId = workpaperResponse.Workpaper.Slug.AccountRecordId, Workpaper = workpaperResponse.Workpaper, CompositeRequest = true }; var commandResponse = await Client.Workpapers_PostForeignIncomeWorkpaperAsync(command) .ConfigureAwait(false); return(commandResponse); }
public async Task <WorkpaperResponseOfForeignEmploymentIncomeWorkpaper> CreateAsync( Guid taxpayerId, int taxYear, TaxTreatment taxTreatment = TaxTreatment.Taxable, string countryCode = "", decimal grossIncome = 0m, decimal deductions = 0m, decimal taxPaid = 0m, string employerName = "", Payments[] paymentsInArrears = null ) { var workpaperResponse = await Client .Workpapers_GetForeignEmploymentIncomeWorkpaperAsync( taxpayerId, taxYear, Guid.NewGuid(), null, null, null, CancellationToken.None) .ConfigureAwait(false); var workpaper = workpaperResponse.Workpaper; workpaper.TaxTreatment = taxTreatment; workpaper.CountryCode = countryCode; workpaper.GrossIncome = grossIncome.ToNumericCell(); workpaper.Deductions = deductions.ToNumericCell(); workpaper.TaxPaid = taxPaid.ToNumericCell(); workpaper.EmployerName = employerName; workpaper.PaymentsInArrears = paymentsInArrears; var command = new UpsertForeignEmploymentIncomeWorkpaperCommand() { TaxpayerId = taxpayerId, TaxYear = taxYear, AccountRecordId = workpaperResponse.Workpaper.Slug.AccountRecordId, Workpaper = workpaperResponse.Workpaper, CompositeRequest = true }; var commandResponse = await Client.Workpapers_PostForeignEmploymentIncomeWorkpaperAsync(command) .ConfigureAwait(false); return(commandResponse); }