Exemple #1
0
 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);
        }
Exemple #4
0
 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()
                ));
 }
Exemple #11
0
        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);
        }
Exemple #12
0
        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);
        }
Exemple #13
0
        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);
        }
Exemple #14
0
        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);
        }
Exemple #15
0
        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);
        }
Exemple #16
0
 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;
 }
Exemple #22
0
 public CustomerInfo(TaxpayerIdentificationNumber taxpayerId, Name name, SimpleAddress address)
     : base(taxpayerId, name, address)
 {
 }
Exemple #23
0
 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));
 }
Exemple #24
0
 public SupplierInfo(TaxpayerIdentificationNumber taxpayerId, Name name, SimpleAddress address, VatCode vatCode)
     : base(taxpayerId, name, address)
 {
     VatCode = Check.IsNotNull(vatCode, nameof(vatCode));
 }
Exemple #25
0
 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)
                       ));
        }