public async void CreateTaxpayerWithCapitalGainsWorkpapers() { string baseUrl = "https://preview.taxlab.online/api-internal/"; HttpClient httpclient = new HttpClient(); var authService = new AuthService(); TaxlabApiClient client = new TaxlabApiClient(baseUrl, httpclient, authService); var repo = new IndividualWithPropertyCapitalGain(); var taxYear = 2021; var taxpayer = await repo.CreateAsync(client, "John", "IndividualWithPropertyCapitalGain", "32989432", taxYear) .ConfigureAwait(false); //allow for calculation to be run await Task.Delay(10000); // get the capital gains workpaper and check the contents var capitalGainsWorkpaper = await client .Workpapers_GetCapitalGainsWorkpaperAsync(taxpayer.Id, taxYear, WorkpaperType.CapitalGainsWorkpaper, Guid.Empty, false, false, true) .ConfigureAwait(false); Assert.Equal(203896.52m, capitalGainsWorkpaper.Workpaper.CurrentYearGains); }
public async Task AddWorkpaper(TaxlabApiClient client, int taxYear, Guid taxpayerId, ReturnDisclosureTypes returnDisclosureType, string workpaperDescription) { Console.WriteLine("== Step: Creating " + workpaperDescription + " workpaper =========================================================="); var deductionWorkpaper = new OtherDeductionRepository(client); await deductionWorkpaper.CreateAsync(taxpayerId, taxYear, -10000m, returnDisclosureType, workpaperDescription ); }
private async Task <TaxpayerResponse> CreateTaxpayer(TaxlabApiClient client, string fName, string lName, string tfn) { string firstName = fName; string lastName = lName; string taxFileNumber = tfn; const int taxYear = 2021; var balanceDate = new LocalDate(2021, 6, 30); var startDate = balanceDate.PlusYears(-1).PlusDays(-1); Console.WriteLine("== Step: Creating taxpayer =========================================================="); var taxpayerService = new TaxpayerRepository(client); var taxpayerResponse = await taxpayerService.CreateAsync(taxYear, firstName, lastName, taxFileNumber); var taxpayer = taxpayerResponse.Content; client.TaxpayerId = taxpayer.Id; client.Taxyear = taxYear; Console.WriteLine("== Step: Creating tax return =========================================================="); var taxReturnRepository = new TaxReturnRepository(client); var taxReturnResponse = await taxReturnRepository.CreateAsync(taxpayer.Id, taxYear, balanceDate, startDate); if (taxReturnResponse.Success == false) { throw new Exception(taxReturnResponse.Message); } Console.WriteLine("== Step: Populating taxpayer details workpaper =========================================================="); var details = new TaxpayerDetailsRepository(client); await details.CreateAsync(taxpayer.Id, taxYear, dateOfBirth : new LocalDate(1975, 4, 12), dateOfDeath : new LocalDate(2020, 12, 31), finalReturn : true, mobilePhoneNumber : "0402698741", daytimeAreaPhoneCode : "613", daytimePhoneNumber : "54835123", emailAddress : "*****@*****.**", bsbNumber : "553026", bankAccountName : "Bank of Melbourne", bankAccountNumber : "15987456" ); return(taxpayerResponse); }
public async void CreateTaxpayerWithDistributionsWorkpapers() { string baseUrl = "https://preview.taxlab.online/api-internal/"; HttpClient httpclient = new HttpClient(); var authService = new AuthService(); TaxlabApiClient client = new TaxlabApiClient(baseUrl, httpclient, authService); var repo = new IndividualWithTrustDistribution(); var taxYear = 2021; var taxpayer = await repo.CreateAsync(client, "John", "IndividualWithTrustDistributions", "32989432", taxYear); Assert.Equal("John", taxpayer.TaxpayerName); }
private const int TaxYear = 2021; // Change this to your taxYear private static async Task Main(string[] args) { var authService = new AuthService(); Client = new TaxlabApiClient(BaseUrl, HttpClient, authService); Console.WriteLine("== Step: Getting existing taxpayers =========================================================="); var getAllTaxpayers = await Client.Taxpayers_GetTaxpayersAsync().ConfigureAwait(false); var taxpayerService = new TaxpayerRepository(Client); var taxpayers = taxpayerService.SearchByTfn("123456789"); var allTaxpayers = taxpayerService.GetAllTaxpayers(); Console.WriteLine("== Step: Create taxpayer who is an employee with lots of deductions =========================================================="); var employeeWithDeductions = new Personas.EmployeeWithDeductions(); await employeeWithDeductions.CreateAsync(Client).ConfigureAwait(false); Console.WriteLine("== Step: Create deceased taxpayer =========================================================="); var deceasedTaxpayerPersonaFactory = new Personas.DeceasedEmployeePersona(); var deceased = await deceasedTaxpayerPersonaFactory.CreateAsync(Client).ConfigureAwait(false); Console.WriteLine("== Step: Create taxpayer with dividend =========================================================="); var investorPersonaFactory = new Personas.SingleDividend(); var investor = await investorPersonaFactory.CreateAsync(Client).ConfigureAwait(false); Console.WriteLine("== Step: Create taxpayer with lots of workpapers =========================================================="); var complexPersonaFactory = new Personas.ComplexEmployee(); var complex = await complexPersonaFactory.CreateAsync(Client).ConfigureAwait(false); var couplePersonaFactory = new Personas.MarriedCouple(); var complexMarriedCoupleObject = await couplePersonaFactory.CreateAsync(Client).ConfigureAwait(false); Console.WriteLine("== Step: Get All adjustment workpapers for complex taxpayer =========================================================="); // Gets a list of all adjustment workpapers for this taxpayer. // This does not create any new workpapers. var allAdjustmentWorkpapers = await Client.Workpapers_AdjustmentWorkpapersAsync(complex.Id, TaxYear, null) .ConfigureAwait(false); Console.WriteLine(Environment.NewLine); Console.WriteLine("== Step: Get All Taxyear workpapers for complex taxpayer =========================================================="); // Gets a list of all Taxyear workpapers for this taxpayer. // This does not create any new workpapers. var allATaxYearWorkpapers = await Client.Workpapers_TaxYearWorkpapersAsync(complex.Id, TaxYear, null) .ConfigureAwait(false); }
public DeductibleCarExpenseRepository(TaxlabApiClient client) : base(client) { }
public MedicareRepository(TaxlabApiClient client) : base(client) { }
public DistributionsRepository(TaxlabApiClient client) : base(client) { }
public AnnuityRepository(TaxlabApiClient client) : base(client) { }
public PersonalSuperannuationContributionRepository(TaxlabApiClient client) : base(client) { }
public RentalPropertiesSummaryRepository(TaxlabApiClient client) : base(client) { }
public DividendIncomeRepository(TaxlabApiClient client) : base(client) { }
public OtherDeductionRepository(TaxlabApiClient client) : base(client) { }
public RepositoryBase(TaxlabApiClient client) { Client = client; }
public SuperannuationIncomeStreamRepository(TaxlabApiClient client) : base(client) { }
public SpouseRepository(TaxlabApiClient client) : base(client) { }
public OtherIncomeRepository(TaxlabApiClient client) : base(client) { }
public CapitalGainOrLossTransactionRepository(TaxlabApiClient client) : base(client) { }
public BusinessIncomeExpensesRepository(TaxlabApiClient client) : base(client) { }
public async Task <TaxpayerDto> CreateAsync(TaxlabApiClient client) { const string firstName = "John"; const string lastName = "Citizen"; const string taxFileNumber = "32989432"; const int taxYear = 2021; var balanceDate = new LocalDate(2021, 6, 30); var startDate = balanceDate.PlusYears(-1).PlusDays(-1); Console.WriteLine("== Step: Creating taxpayer =========================================================="); var taxpayerService = new TaxpayerRepository(client); var taxpayerResponse = await taxpayerService.CreateAsync(taxYear, firstName, lastName, taxFileNumber); var taxpayer = taxpayerResponse.Content; client.TaxpayerId = taxpayer.Id; client.Taxyear = taxYear; Console.WriteLine("== Step: Creating tax return =========================================================="); var taxReturnRepository = new TaxReturnRepository(client); var taxReturnResponse = await taxReturnRepository.CreateAsync(taxpayer.Id, taxYear, balanceDate, startDate); if (taxReturnResponse.Success == false) { throw new Exception(taxReturnResponse.Message); } Console.WriteLine("== Step: Populating taxpayer details workpaper =========================================================="); var details = new TaxpayerDetailsRepository(client); await details.CreateAsync(taxpayer.Id, taxYear, dateOfBirth : new LocalDate(1975, 4, 12), dateOfDeath : new LocalDate(2020, 12, 31), finalReturn : true, mobilePhoneNumber : "0402698741", daytimeAreaPhoneCode : "613", daytimePhoneNumber : "54835123", emailAddress : "*****@*****.**", bsbNumber : "553026", bankAccountName : "Bank of Melbourne", bankAccountNumber : "15987456" ); Console.WriteLine("== Step: Creating employment income workpaper =========================================================="); var employmentIncomeWorkpaperFactory = new EmploymentIncomeRepository(client); await employmentIncomeWorkpaperFactory.CreateAsync(taxpayer.Id, taxYear, employerName : "Cloud IT Specialists", governmentIdentifier : "", salaryAndWagesIncome : 36690m, salaryAndWagesTaxWithheld : -21300m, allowanceIncome : 310m ); Console.WriteLine("== Step: Creating declarations workpaper =========================================================="); var declarationsWorkpaperFactory = new DeclarationsRepository(client); await declarationsWorkpaperFactory.CreateAsync(taxpayer.Id, taxYear, taxAgentNumber : "", taxAgentAbn : "", taxAgentDeclarationStatementAccepted : true, taxAgentContactFirstName : "Jason", taxAgentContactLastName : "Campbell", taxAgentContactPhoneAreaCode : "03", taxAgentContactPhoneNumber : "88435751", taxAgentClientReference : "CR010011JC", taxPayerDeclarationStatementAccepted : true, taxAgentSignatureFirstName : "John", taxAgentSignatureLastName : "Citizen" ); return(taxpayer); }
public async Task <TaxpayerDto> CreateAsync(TaxlabApiClient client) { const string firstName = "John"; const string lastName = "Citizen"; const string taxFileNumber = "32989432"; const int taxYear = 2021; var balanceDate = new LocalDate(2021, 6, 30); var startDate = balanceDate.PlusYears(-1).PlusDays(-1); Console.WriteLine("== Step: Creating taxpayer =========================================================="); var taxpayerService = new TaxpayerRepository(client); var taxpayerResponse = await taxpayerService.CreateAsync(taxYear, firstName, lastName, taxFileNumber); var taxpayer = taxpayerResponse.Content; client.TaxpayerId = taxpayer.Id; client.Taxyear = taxYear; Console.WriteLine("== Step: Creating tax return =========================================================="); var taxReturnRepository = new TaxReturnRepository(client); var taxReturnResponse = await taxReturnRepository.CreateAsync(taxpayer.Id, taxYear, balanceDate, startDate); Console.WriteLine("== Step: Creating Uniform workpaper =========================================================="); var deductionWorkpaper = new OtherDeductionRepository(client); await deductionWorkpaper.CreateAsync(taxpayer.Id, taxYear, -180m, ReturnDisclosureTypes.AUIndividualWorkRelatedClothingProtective, "Nice looking uniform" ); if (taxReturnResponse.Success == false) { throw new Exception(taxReturnResponse.Message); } var listOfDeductionTypes = new Dictionary <ReturnDisclosureTypes, string>(); listOfDeductionTypes.Add(ReturnDisclosureTypes.AUIndividualCostOfManagingTaxAffairsATOInterest, "Interest charged by the ATO"); listOfDeductionTypes.Add(ReturnDisclosureTypes.AUIndividualCostOfManagingTaxAffairsLitigation, "Litigation costs"); listOfDeductionTypes.Add(ReturnDisclosureTypes.AUIndividualCostOfManagingTaxAffairsOther, "Other expenses incurred in managing your tax affairs"); listOfDeductionTypes.Add(ReturnDisclosureTypes.DepreciationPool, "Deduction for project pool"); listOfDeductionTypes.Add(ReturnDisclosureTypes.AUIndividualDividendDeductions, "Dividend deductions"); listOfDeductionTypes.Add(ReturnDisclosureTypes.FarmingIncomeRepaymentsDeposits, "Deductible deposits"); listOfDeductionTypes.Add(ReturnDisclosureTypes.AUIndividualForestryManagement, "Forestry managed investment"); listOfDeductionTypes.Add(ReturnDisclosureTypes.AUIndividualGiftsOrDonations, "Gifts or donations"); listOfDeductionTypes.Add(ReturnDisclosureTypes.AUIndividualInterestDeductions, "Interest deductions"); listOfDeductionTypes.Add(ReturnDisclosureTypes.AUIndividualLowValuePoolDeductionOther, "Other low value pool deductions"); listOfDeductionTypes.Add(ReturnDisclosureTypes.AUIndividualLowValuePoolDeductionFinancialInvestment, "Relating to financial Investment"); listOfDeductionTypes.Add(ReturnDisclosureTypes.AUIndividualLowValuePoolDeductionRentalPool, "Relating to rental property"); listOfDeductionTypes.Add(ReturnDisclosureTypes.AUInvestmentIncomeDeduction, "Deduction relating to financial investment"); listOfDeductionTypes.Add(ReturnDisclosureTypes.AUIndividualElectionExpenses, "Election expenses"); listOfDeductionTypes.Add(ReturnDisclosureTypes.InsurancePremiumDeduction, "Income protection, sickness and accident insurance premiums"); listOfDeductionTypes.Add(ReturnDisclosureTypes.OtherDeductibleExpenses, "Other deductible expenses"); listOfDeductionTypes.Add(ReturnDisclosureTypes.AUIndividualWorkRelatedClothingUniformCompulsory, "Compulsory uniform"); listOfDeductionTypes.Add(ReturnDisclosureTypes.AUIndividualWorkRelatedClothingUniformNonCompulsory, "Non-compulsory uniform"); listOfDeductionTypes.Add(ReturnDisclosureTypes.AUIndividualWorkRelatedClothingOccupationSpecific, "Occupation-specific clothing"); listOfDeductionTypes.Add(ReturnDisclosureTypes.AUIndividualWorkRelatedClothingProtective, "Protective clothing"); listOfDeductionTypes.Add(ReturnDisclosureTypes.AUIndividualWorkRelatedTravelExpenses, "Work-related travel expenses"); listOfDeductionTypes.Add(ReturnDisclosureTypes.AUIndividualOtherWorkRelatedExpenses, "Other work-related expenses"); foreach (var item in listOfDeductionTypes) { await AddWorkpaper(client, taxYear, taxpayer.Id, item.Key, item.Value); await Task.Delay(2000); } return(taxpayer); }
public ForeignPensionOrAnnuityRepository(TaxlabApiClient client) : base(client) { }
public TaxReturnRepository(TaxlabApiClient client) : base(client) { }
public async Task <TaxpayerDto> CreateAsync(TaxlabApiClient client) { Console.WriteLine("== Step: Getting Country Lookups =========================================================="); var lookups = new LookupsRepository(client); var lookupsArray = await lookups.GetAllLookups(); ICollection <BaseLookupMapperItem> countryLookup = new List <BaseLookupMapperItem>(); var countryListFetched = lookupsArray.Lookups.TryGetValue("Common/RegionLookups/CountryCodes", out countryLookup); if (countryListFetched) { Console.WriteLine($"== Country Lookup count: {countryLookup.Count} fetched=========================================================="); } else { Console.WriteLine($"== Check Lookup call =========================================================="); } const int taxYear = 2021; var balanceDate = new LocalDate(2021, 6, 30); var startDate = balanceDate.PlusYears(-1).PlusDays(-1); const string firstName = "Johnny"; const string lastName = "Citizen"; const string taxFileNumber = "32989432"; var taxpayerResponse = await CreateTaxpayer(client, firstName, lastName, taxFileNumber); var taxpayer = taxpayerResponse.Content; Console.WriteLine("== Step: Creating employment income workpaper =========================================================="); var employmentIncomeWorkpaperFactory = new EmploymentIncomeRepository(client); await employmentIncomeWorkpaperFactory.CreateAsync(taxpayer.Id, taxYear, employerName : "ABC Company Limited", governmentIdentifier : "", salaryAndWagesIncome : 343434m, salaryAndWagesTaxWithheld : -213400m, allowanceIncome : 310m ); Console.WriteLine("== Step: Creating dividend income workpaper =========================================================="); var dividendWorkpaperFactory = new DividendIncomeRepository(client); await dividendWorkpaperFactory.CreateAsync(taxpayer.Id, taxYear, "ABC Company Limited", "123456789", 1, 1000m, 200m, 300m, -10m); Console.WriteLine("== Step: Creating interest income workpaper =========================================================="); var interestWorkpaperFactory = new InterestIncomeRepository(client); await interestWorkpaperFactory.CreateAsync(taxpayer.Id, taxYear, "Our financial institution name", "123456789", 1, 1000m, -200m); Console.WriteLine("== Step: Creating supercontribution workpaper =========================================================="); var personalSuperannuationContributionFactory = new PersonalSuperannuationContributionRepository(client); await personalSuperannuationContributionFactory.CreateAsync(taxpayer.Id, taxYear, "XYZ Company Limited", "123456789", "9867565423", "5235423423423", balanceDate, 10000m, true ); Console.WriteLine("== Step: Creating Government Allowance workpaper =========================================================="); var governmentAllowanceFactory = new GovernmentAllowanceRepository(client); await governmentAllowanceFactory.CreateAsync(taxpayer.Id, taxYear, "Allowance", "testDescription", 1000m, 1000m ); Console.WriteLine("== Step: Creating Government Pension workpaper =========================================================="); var governmentPensionFactory = new GovernmentPensionRepository(client); await governmentPensionFactory.CreateAsync(taxpayer.Id, taxYear, "testDescription", 1000m, 1000m ); Console.WriteLine("== Step: Creating donation deduction workpaper =========================================================="); var chartiableDonation = new OtherDeductionRepository(client); await chartiableDonation.CreateAsync(taxpayer.Id, taxYear, -10000m, ReturnDisclosureTypes.AUIndividualGiftsOrDonations ); Console.WriteLine("== Step: Creating other deduction workpaper =========================================================="); var expense = new OtherDeductionRepository(client); await expense.CreateAsync(taxpayer.Id, taxYear, -10000m, ReturnDisclosureTypes.AUDividend ); Console.WriteLine("== Step: Creating declarations workpaper =========================================================="); var declarationsWorkpaperFactory = new DeclarationsRepository(client); await declarationsWorkpaperFactory.CreateAsync(taxpayer.Id, taxYear, taxAgentNumber : "", taxAgentAbn : "", taxAgentDeclarationStatementAccepted : true, taxAgentContactFirstName : "Jason", taxAgentContactLastName : "Campbell", taxAgentContactPhoneAreaCode : "03", taxAgentContactPhoneNumber : "88435751", taxAgentClientReference : "CR010011JC", taxPayerDeclarationStatementAccepted : true, taxAgentSignatureFirstName : "John", taxAgentSignatureLastName : "Citizen" ); Console.WriteLine("== Step: Creating rental property workpaper =========================================================="); var rentalPropertyWorkpaperFactory = new RentalPropertyRepository(client); var rentalPropertyInformation = new RentalPropertyInformation { Description = "Rental property 1", OfficialName = null, AddressLine1 = "3 Savannah Ct", AddressLine2 = null, AddressSuburb = "Hillside", AddressState = "VIC", AddressPostcode = "3037", DateFirstEarnedIncome = "2017-03-15", PurchaseDate = "2017-01-10", PurchasePrice = new NumericCell { Value = 4900000, Formula = "4900000" }, SaleDate = null, SalePrice = new NumericCell(), CapitalGainOrLossOnSale = new NumericCell(), CapitalAllowancesRecoupedOnSale = new NumericCell(), CapitalWorksRecoupedOnSale = new NumericCell(), Status = RentalPropertyStatus.Active, LoanRenegotiatedIndicator = false }; var rentalIncome = new RentalTransactionCollectionOfNumericCellAndDecimal { Description = "Rental Income", Total = 216000, Mine = 151200, RentalTransactions = new List <RentalTransactionOfNumericCellAndDecimal> { new RentalTransactionOfNumericCellAndDecimal { Description = "example rent", Total = new NumericCell { Value = 216000, Formula = "216000" }, Mine = 151200 } } }; var otherIncome = new RentalTransactionCollectionOfNumericCellAndDecimal { Description = "Other Income", Total = 700, Mine = 490, RentalTransactions = new List <RentalTransactionOfNumericCellAndDecimal> { new RentalTransactionOfNumericCellAndDecimal { Description = "example other income", Total = new NumericCell { Value = 700, Formula = "700" }, Mine = 490 } } }; var insurance = new RentalTransactionCollectionOfNumericCellAndDecimal { Description = "Insurance", //Total = 216000, //Mine = 151200, RentalTransactions = new List <RentalTransactionOfNumericCellAndDecimal> { new RentalTransactionOfNumericCellAndDecimal { Description = "Insurance", Total = new NumericCell { //Value = 216000, Formula = "700" }, //Mine = 151200 } } }; var grossIncome = new RentalTransactionOfDecimalAndDecimal { Description = "Gross Income", Total = 216700, Mine = 151690 }; var interestOnLoans = new RentalTransactionCollectionOfNumericCellAndNumericCell { Description = "Interest On Loans", Total = -78479, Mine = -2480, RentalTransactions = new List <RentalTransactionOfNumericCellAndNumericCell> { new RentalTransactionOfNumericCellAndNumericCell { Description = "example loan 1", Total = new NumericCell { Value = -48024, Formula = "-48024" }, Mine = new NumericCell { Value = 0, Formula = "0" }, }, new RentalTransactionOfNumericCellAndNumericCell { Description = "example loan 2", Total = new NumericCell { Value = -30455, Formula = "-30455" }, Mine = new NumericCell { Value = -2480, Formula = "-2480" }, } } }; await rentalPropertyWorkpaperFactory.CreateAsync(taxpayer.Id, taxYear, $"{firstName} {lastName}", rentalPropertyInformation, rentalIncome, otherIncome, grossIncome, null, null, null, null, null, null, null, null, insurance, interestOnLoans, null, null, null, null, null, null, null, null, null, 0, 0, 0.7m, 1m ).ConfigureAwait(false); Console.WriteLine("== Step: Get rental summary property workpaper =========================================================="); var rentalSummaryWorkpaper = await new RentalPropertiesSummaryRepository(client).GetRentalSummaryWorkpaperAsync(taxpayer.Id, taxYear).ConfigureAwait(false); return(taxpayer); }
public EmploymentIncomeRepository(TaxlabApiClient client) : base(client) { }
public async Task <TaxpayerDto> CreateAsync(TaxlabApiClient client) { Console.WriteLine("== Step: Getting Country Lookups =========================================================="); var lookups = new LookupsRepository(client); var lookupsArray = await lookups.GetAllLookups(); ICollection <BaseLookupMapperItem> countryLookup = new List <BaseLookupMapperItem>(); var countryListFetched = lookupsArray.Lookups.TryGetValue("Common/RegionLookups/CountryCodes", out countryLookup); if (countryListFetched) { Console.WriteLine($"== Country Lookup count: {countryLookup.Count} fetched=========================================================="); } else { Console.WriteLine($"== Check Lookup call =========================================================="); } const int taxYear = 2021; var balanceDate = new LocalDate(2021, 6, 30); var startDate = balanceDate.PlusYears(-1).PlusDays(-1); Console.WriteLine("== Step: Creating taxpayer =========================================================="); var taxpayerResponse = await CreateTaxpayer(client, "Johnny", "NzCitizen", "565852125"); var taxpayer = taxpayerResponse.Content; var spouseTaxpayerResponse = await CreateTaxpayer(client, "Mary", "NzCitizen", "329823432"); var spouseTaxpayer = spouseTaxpayerResponse.Content; Console.WriteLine("== Step: Creating declarations workpaper =========================================================="); var declarationsWorkpaperFactory = new DeclarationsRepository(client); await declarationsWorkpaperFactory.CreateAsync(taxpayer.Id, taxYear, taxAgentNumber : "", taxAgentAbn : "", taxAgentDeclarationStatementAccepted : true, taxAgentContactFirstName : "Jason", taxAgentContactLastName : "Campbell", taxAgentContactPhoneAreaCode : "03", taxAgentContactPhoneNumber : "88435751", taxAgentClientReference : "CR010011JC", taxPayerDeclarationStatementAccepted : true, taxAgentSignatureFirstName : "Johnny", taxAgentSignatureLastName : "NzCitizen" ); Console.WriteLine("== Step: Populating spouse workpaper =========================================================="); var spouse = new SpouseRepository(client); await spouse.CreateAsync(taxpayer.Id, taxYear, LinkedSpouseTaxpayerId : spouseTaxpayer.Id, IsMarriedFullYear : false, MarriedFrom : startDate, MarriedTo : startDate.PlusDays(100), HasDiedThisYear : false ); return(taxpayer); }
public EmploymentTerminationPaymentRepository(TaxlabApiClient client) : base(client) { }
public LookupsRepository(TaxlabApiClient client) : base(client) { }
public GovernmentPensionRepository(TaxlabApiClient client) : base(client) { }
public async Task <TaxpayerDto> CreateAsync(TaxlabApiClient client, string firstName, string lastName, string taxFileNumber, int taxYear) { var balanceDate = new LocalDate(taxYear, 6, 30); var startDate = balanceDate.PlusYears(-1).PlusDays(-1); Console.WriteLine("== Step: Creating taxpayer =========================================================="); var taxpayerService = new TaxpayerRepository(client); var taxpayerResponse = await taxpayerService.CreateAsync(taxYear, firstName, lastName, taxFileNumber); var taxpayer = taxpayerResponse.Content; client.TaxpayerId = taxpayer.Id; client.Taxyear = taxYear; Console.WriteLine("== Step: Creating tax return =========================================================="); var taxReturnRepository = new TaxReturnRepository(client); var taxReturnResponse = await taxReturnRepository.CreateAsync(taxpayer.Id, taxYear, balanceDate, startDate); if (taxReturnResponse.Success == false) { throw new Exception(taxReturnResponse.Message); } Console.WriteLine("== Step: Creating Capital Gains workpaper =========================================================="); var rentalPropertySale = new CapitalGainOrLossTransactionRepository(client); await rentalPropertySale.CreateAsync(taxpayerId : taxpayer.Id, taxYear : taxYear, description : "Real estate in AU", category : "5", purchaseDate : new LocalDate(2019, 5, 1), purchaseAmount : 10000m, purchaseAdjustment : 0m, disposalDate : new LocalDate(2021, 5, 31), disposalAmount : 130000m, discountAmount : 0m, currentYearLossApplied : -1000, priorLossApplied : -27915.64m, capitalLossesTransferredInApplied : -10000, isEligibleForDiscount : true, isEligibleForActiveAssetReduction : true, isEligibleForRetirementExemption : true, retirementExemptionAmount : -5000, isEligibleForRolloverConcession : true, rolloverConcessionAmount : -3000 ); Console.WriteLine("== Step: Creating another Capital Gains workpaper =========================================================="); var shareSale = new CapitalGainOrLossTransactionRepository(client); await shareSale.CreateAsync(taxpayerId : taxpayer.Id, taxYear : taxYear, description : "Shares on ASX", category : "1", purchaseDate : new LocalDate(2019, 5, 1), purchaseAmount : 2000m, disposalDate : new LocalDate(2021, 5, 31), disposalAmount : 85896.52m, priorLossApplied : -1000m, isEligibleForDiscount : true ); Console.WriteLine("== Step: Populating taxpayer details workpaper =========================================================="); var details = new TaxpayerDetailsRepository(client); await details.CreateAsync(taxpayer.Id, taxYear, dateOfBirth : new LocalDate(1975, 4, 12), dateOfDeath : new LocalDate(2020, 12, 31), finalReturn : true, mobilePhoneNumber : "0402698741", daytimeAreaPhoneCode : "613", daytimePhoneNumber : "54835123", emailAddress : "*****@*****.**", bsbNumber : "553026", bankAccountName : "Bank of Melbourne", bankAccountNumber : "15987456" ); Console.WriteLine("== Step: Creating declarations workpaper =========================================================="); var declarationsWorkpaperFactory = new DeclarationsRepository(client); await declarationsWorkpaperFactory.CreateAsync(taxpayer.Id, taxYear, taxAgentNumber : "", taxAgentAbn : "", taxAgentDeclarationStatementAccepted : true, taxAgentContactFirstName : "Jason", taxAgentContactLastName : "Campbell", taxAgentContactPhoneAreaCode : "03", taxAgentContactPhoneNumber : "88435751", taxAgentClientReference : "CR010011JC", taxPayerDeclarationStatementAccepted : true, taxAgentSignatureFirstName : "John", taxAgentSignatureLastName : "Citizen" ); return(taxpayer); }