internal static InvoiceParty CreateInvoiceParty(Country country, string taxNumber, string name = null, Address address = null) { return(InvoiceParty.Create( info: InvoicePartyInfo.Create(NonNegativeInt.Zero(), TaxpayerIdentificationNumber.Create(country, taxNumber).Success.Get(), name, address).Success.Get(), country: country ).Success.Get()); }
private static Dto.CustomerVatDataType GetCustomerVatDataType(TaxpayerIdentificationNumber taxpayerNumber) { return(taxpayerNumber.Match( european => european.Country.Alpha2Code.Match( Countries.Hungary.Alpha2Code, _ => new Dto.CustomerVatDataType { Item = new Dto.CustomerTaxNumberType { taxpayerId = taxpayerNumber.TaxpayerNumber }, ItemElementName = Dto.ItemChoiceType.customerTaxNumber }, _ => new Dto.CustomerVatDataType { Item = taxpayerNumber.TaxpayerNumber, ItemElementName = Dto.ItemChoiceType.communityVatNumber } ), nonEuropean => new Dto.CustomerVatDataType { Item = taxpayerNumber.TaxpayerNumber, ItemElementName = Dto.ItemChoiceType.thirdStateTaxId } )); }
public async Task GetTaxerpayerDataSucceeds() { var taxpayer = TaxpayerIdentificationNumber.Create(Countries.Hungary, "10630433").Success.Get(); var taxpayerData = await NavClient.GetTaxPayerDataAsync(taxpayer); TestFixture.AssertResponse(taxpayerData); }
private InvoicePartyInfo(NonNegativeInt?branch = null, TaxpayerIdentificationNumber taxIdentifier = null, string name = null, Address address = null) { Branch = branch ?? NonNegativeInt.Zero(); TaxIdentifier = taxIdentifier.ToOption(); Name = name.ToOption(); Address = address.ToOption(); }
public TechnicalUser(Login login, string password, SigningKey signingKey, TaxpayerIdentificationNumber taxId, EncryptionKey encryptionKey) { Login = Check.IsNotNull(login, nameof(login)); PasswordHash = Utils.Sha512.GetHash(Check.IsNotNull(password, nameof(password))); SigningKey = Check.IsNotNull(signingKey, nameof(signingKey)); TaxId = Check.IsNotNull(taxId, nameof(taxId)); EncryptionKey = Check.IsNotNull(encryptionKey, nameof(encryptionKey)); }
private CustomerInfo GetCustomerInfo() { return(new CustomerInfo( taxpayerId: TaxpayerIdentificationNumber.Create(Countries.Hungary, "14750636").Success.Get(), name: Name.Create("Vev Kft").Success.Get(), address: GetAddress() )); }
public void CreatingValidEuropeanTaxpayerNumberSucceeds(string countryCode, string taxpayerNumber) { var country = Country.GetByCode(countryCode).Get(); var europeanCountry = EuropeanUnionCountry.GetByCode(countryCode).Get(); Assert.IsTrue(EuropeanUnionTaxpayerIdentificationNumber.Create(europeanCountry, taxpayerNumber).IsSuccess); Assert.IsTrue(TaxpayerIdentificationNumber.Create(country, taxpayerNumber).IsSuccess); }
public static ITry <LocalCompany, IEnumerable <Error> > Create(TaxpayerIdentificationNumber taxpayerId, Name name, SimpleAddress address) { var localTaxPayerId = taxpayerId.ToOption().Where(i => i.Country.Equals(Countries.Hungary)); return(localTaxPayerId.ToTry(_ => Error.Create($"{nameof(TaxpayerIdentificationNumber)} must be a Hungarian taxpayer number.")).Map( i => new LocalCompany(i, name, address) )); }
public void CreatingInvalidEuropeanTaxpayerNumberFails(string countryCode, string taxpayerNumber) { var country = countryCode.IsNotNull() ? Country.GetByCode(countryCode).Get() : null; var europeanCountry = countryCode.IsNotNull() ? EuropeanUnionCountry.GetByCode(countryCode).Get() : null; Assert.IsTrue(EuropeanUnionTaxpayerIdentificationNumber.Create(europeanCountry, taxpayerNumber).IsError); Assert.IsTrue(TaxpayerIdentificationNumber.Create(country, taxpayerNumber).IsError); }
private SupplierInfo GetSupplierInfo() { return(new SupplierInfo( taxpayerId: TaxpayerIdentificationNumber.Create(Countries.Hungary, "14750636").Success.Get(), vatCode: VatCode.Create("2").Success.Get(), name: Name.Create("BUDAPESTI MSZAKI S GAZDASGTUDOMNYI EGYETEM").Success.Get(), address: GetAddress() )); }
public async Task SendLocalCompanyInvoiceSucceeds() { var receiver = Receiver.LocalCompany( taxpayerId: TaxpayerIdentificationNumber.Create(Countries.Hungary, "10630433").Success.Get(), name: Name.Create("Hungarian test company ltd.").Success.Get(), address: CreateAddress(Countries.Hungary) ); var sendInvoicesResult = await SendInvoices(receiver.Success.Get()); await AssertInvoices(sendInvoicesResult); }
public async Task SendForeignCompanyInvoiceSucceeds(string countryCode, string taxId) { var country = Countries.GetByCode(countryCode).Get(); var taxpayerNumber = taxId.ToNonEmptyOption().Map(i => TaxpayerIdentificationNumber.Create(country, i).Success.Get()); var receiver = Receiver.ForeignCompany( name: Name.Create("Foreign test company ltd.").Success.Get(), address: CreateAddress(country), taxpayerId: taxpayerNumber.GetOrNull() ); var sendInvoicesResult = await SendInvoices(receiver.Success.Get()); await AssertInvoices(sendInvoicesResult); }
public async Task SendCorrectionLocalCompanyInvoiceSucceeds() { var receiver = Receiver.LocalCompany( taxpayerId: TaxpayerIdentificationNumber.Create(Countries.Hungary, "10630433").Success.Get(), name: Name.Create("Hungarian test company ltd.").Success.Get(), address: CreateAddress(Countries.Hungary) ).Success.Get(); var invoiceNumber = InvoiceNumber.Create($"INVOICE-{Guid.NewGuid()}").Success.Get(); var sendInvoicesResult = await SendInvoices(receiver, invoiceNumber); await AssertInvoices(sendInvoicesResult); var sendModificationInvoiceResponse = await SendModificationInvoices(receiver, originalInvoiceNumber : invoiceNumber); await AssertInvoices(sendModificationInvoiceResponse); }
public async Task SendCorrectionForeignCompanyInvoiceSucceeds(string countryCode, string taxId) { var country = Countries.GetByCode(countryCode).Get(); var taxpayerNumber = taxId.ToNonEmptyOption().Map(i => TaxpayerIdentificationNumber.Create(country, i).Success.Get()); var receiver = Receiver.ForeignCompany( name: Name.Create("Foreign test company ltd.").Success.Get(), address: CreateAddress(country), taxpayerId: taxpayerNumber.GetOrNull() ).Success.Get(); var invoiceNumber = InvoiceNumber.Create($"INVOICE-{Guid.NewGuid()}").Success.Get(); var sendInvoicesResult = await SendInvoices(receiver, invoiceNumber); await AssertInvoices(sendInvoicesResult); var sendModificationInvoiceResponse = await SendModificationInvoices(receiver, originalInvoiceNumber : invoiceNumber); await AssertInvoices(sendModificationInvoiceResponse); }
public async Task CheckNif() { var goodEntries = NonEmptyEnumerable.Create( new NifInfoEntry(IssuingCompany.TaxpayerIdentificationNumber, IssuingCompany.Name.Value), new NifInfoEntry(ReceivingCompany.TaxpayerIdentificationNumber, ReceivingCompany.Name.Value), new NifInfoEntry(TaxpayerIdentificationNumber.Create(Countries.Spain, "99999999R").Success.Get(), "ESPAÑOL ESPAÑOL JUAN"), new NifInfoEntry(IssuingCompany.TaxpayerIdentificationNumber, "Wrong company name") // surprisingly, good company ID with bad company name is found ); var badEntries = NonEmptyEnumerable.Create( new NifInfoEntry(TaxpayerIdentificationNumber.Create(Countries.Spain, "111111111").Success.Get(), IssuingCompany.Name.Value), new NifInfoEntry(TaxpayerIdentificationNumber.Create(Countries.Spain, "99999999R").Success.Get(), "Not Juan"), new NifInfoEntry(TaxpayerIdentificationNumber.Create(Countries.Spain, "12999999R").Success.Get(), "Non existent name for non existent ID."), new NifInfoEntry(TaxpayerIdentificationNumber.Create(Countries.Angola, "123456").Success.Get(), "Random tax id") ); await AssertNifLookup(goodEntries, NifSearchResult.Found); await AssertNifLookup(badEntries, NifSearchResult.NotFound); // Surprisingly, this works for some reason. var serverModifiedEntry = new NifInfoEntry(TaxpayerIdentificationNumber.Create(Countries.Spain, "A08433179").Success.Get(), "Microsoft test company"); await AssertNifLookup(serverModifiedEntry.ToEnumerable(), NifSearchResult.NotFoundBecauseNifModifiedByServer); }
public static ITry <InvoicePartyInfo, INonEmptyEnumerable <Error> > Create(NonNegativeInt?branch = null, TaxpayerIdentificationNumber taxpayerNumber = null, string name = null, Address address = null) { return(ObjectValidations.NotNull(branch).Map(b => new InvoicePartyInfo(b ?? NonNegativeInt.Zero(), taxpayerNumber, name, address))); }
public static ITry <Receiver, IEnumerable <Error> > LocalCompany(TaxpayerIdentificationNumber taxpayerId, Name name, SimpleAddress address) { return(Models.LocalCompany.Create(taxpayerId, name, address).Map(c => new Receiver(new Company(c)))); }
public static ITry <Receiver, IEnumerable <Error> > ForeignCompany(Name name, SimpleAddress address, TaxpayerIdentificationNumber taxpayerId = null) { return(Models.ForeignCompany.Create(name, address, taxpayerId).Map(c => new Receiver(new Company(c)))); }
public static ITry <ForeignCompany, IEnumerable <Error> > Create(Name name, SimpleAddress address, TaxpayerIdentificationNumber taxpayerId = null) { var optionalForeignTaxPayerId = taxpayerId.ToOption().ToOption().Where(i => i.Match( identifier => !identifier.Country.Equals(Countries.Hungary), _ => true )); return(optionalForeignTaxPayerId.ToTry(_ => Error.Create($"{nameof(TaxpayerIdentificationNumber)} must be a foreign (non-Hungarian) taxpayer number.")).Map( i => new ForeignCompany(name, address, i.GetOrNull()) )); }
private ForeignCompany(Name name, SimpleAddress address, TaxpayerIdentificationNumber taxpayerId = null) { Name = name; Address = address; TaxpayerId = taxpayerId.ToOption(); }
private LocalCompany(TaxpayerIdentificationNumber taxpayerId, Name name, SimpleAddress address) { TaxpayerId = taxpayerId; Name = name; Address = address; }
public CustomerInfo(TaxpayerIdentificationNumber taxpayerId, Name name, SimpleAddress address) : base(taxpayerId, name, address) { }
public Info(TaxpayerIdentificationNumber taxpayerId, Name name, SimpleAddress address) { TaxpayerId = Check.IsNotNull(taxpayerId, nameof(taxpayerId)); Name = Check.IsNotNull(name, nameof(name)); Address = Check.IsNotNull(address, nameof(address)); }
public SupplierInfo(TaxpayerIdentificationNumber taxpayerId, Name name, SimpleAddress address, VatCode vatCode) : base(taxpayerId, name, address) { VatCode = Check.IsNotNull(vatCode, nameof(vatCode)); }
public NifInfoEntry(TaxpayerIdentificationNumber taxpayerNumber, string name) { TaxpayerNumber = Check.IsNotNull(taxpayerNumber, nameof(taxpayerNumber)); Name = Check.IsNotNull(name, nameof(name)); }
public LocalCompany(Name name, TaxpayerIdentificationNumber taxpayerIdentificationNumber) { Name = Check.IsNotNull(name, nameof(name)); TaxpayerIdentificationNumber = Check.IsNotNull(taxpayerIdentificationNumber, nameof(taxpayerIdentificationNumber)); }
public InvoiceId(TaxpayerIdentificationNumber issuer, String1To60 number, DateTime date) { Issuer = Check.IsNotNull(issuer, nameof(issuer)); Number = Check.IsNotNull(number, nameof(number)); Date = date; }
public Task <ResponseResult <TaxPayerData, TaxPayerErrorCode> > GetTaxPayerDataAsync(TaxpayerIdentificationNumber taxId) { var request = RequestCreator.CreateQueryTaxpayerRequest(TechnicalUser, SoftwareIdentification, taxId.TaxpayerNumber); return(Client.ProcessRequestAsync <Dto.QueryTaxpayerRequest, Dto.QueryTaxpayerResponse, TaxPayerData, TaxPayerErrorCode>( endpoint: "queryTaxpayer", request: request, successFunc: response => ModelMapper.MapTaxPayerData(response) )); }