From 41f515ea17c08932ac8b97de65943c5106d5a21f Mon Sep 17 00:00:00 2001 From: Sam Lown Date: Thu, 21 Sep 2023 11:16:01 +0000 Subject: [PATCH] Removing unnecessary errors --- fatturapa.go | 5 +---- header.go | 14 ++++---------- parties.go | 32 ++++++++++++-------------------- parties_test.go | 4 ++-- 4 files changed, 19 insertions(+), 36 deletions(-) diff --git a/fatturapa.go b/fatturapa.go index b538892..494a0a2 100644 --- a/fatturapa.go +++ b/fatturapa.go @@ -58,10 +58,7 @@ func (c *Converter) ConvertFromGOBL(env *gobl.Envelope) (*Document, error) { datiTrasmissione := c.newDatiTrasmissione(invoice, env) - header, err := newFatturaElettronicaHeader(invoice, datiTrasmissione) - if err != nil { - return nil, err - } + header := newFatturaElettronicaHeader(invoice, datiTrasmissione) body, err := newFatturaElettronicaBody(invoice) if err != nil { diff --git a/header.go b/header.go index 3236003..a8f44a3 100644 --- a/header.go +++ b/header.go @@ -12,19 +12,13 @@ type fatturaElettronicaHeader struct { CessionarioCommittente *customer `xml:",omitempty"` } -func newFatturaElettronicaHeader(inv *bill.Invoice, datiTrasmissione *datiTrasmissione) (*fatturaElettronicaHeader, error) { - supplier, err := newCedentePrestatore(inv.Supplier) - if err != nil { - return nil, err - } - customer, err := newCessionarioCommittente(inv.Customer) - if err != nil { - return nil, err - } +func newFatturaElettronicaHeader(inv *bill.Invoice, datiTrasmissione *datiTrasmissione) *fatturaElettronicaHeader { + supplier := newCedentePrestatore(inv.Supplier) + customer := newCessionarioCommittente(inv.Customer) return &fatturaElettronicaHeader{ DatiTrasmissione: datiTrasmissione, CedentePrestatore: supplier, CessionarioCommittente: customer, - }, nil + } } diff --git a/parties.go b/parties.go index 5da7252..3ff1519 100644 --- a/parties.go +++ b/parties.go @@ -1,8 +1,6 @@ package fatturapa import ( - "errors" - "github.com/invopop/gobl/l10n" "github.com/invopop/gobl/org" "github.com/invopop/gobl/regimes/it" @@ -70,7 +68,7 @@ type contatti struct { Email string `xml:",omitempty"` } -func newCedentePrestatore(s *org.Party) (*supplier, error) { +func newCedentePrestatore(s *org.Party) *supplier { ns := &supplier{ DatiAnagrafici: &datiAnagrafici{ IdFiscaleIVA: &taxID{ @@ -88,10 +86,10 @@ func newCedentePrestatore(s *org.Party) (*supplier, error) { ns.Sede = newAddress(s.Addresses[0]) } - return ns, nil + return ns } -func newCessionarioCommittente(c *org.Party) (*customer, error) { +func newCessionarioCommittente(c *org.Party) *customer { nc := new(customer) if len(c.Addresses) > 0 { @@ -102,25 +100,19 @@ func newCessionarioCommittente(c *org.Party) (*customer, error) { Anagrafica: newAnagrafica(c), } - if c.TaxID == nil { - return nil, errors.New("missing customer TaxID") - } - - if c.TaxID.Country == "" { - return nil, errors.New("missing customer TaxID Country Code") - } - - if isCodiceFiscale(c.TaxID) { - da.CodiceFiscale = c.TaxID.Code.String() - } else if isEUCountry(c.TaxID.Country) { - da.IdFiscaleIVA = customerFiscaleIVA(c.TaxID, euCitizenTaxCodeDefault) - } else { - da.IdFiscaleIVA = customerFiscaleIVA(c.TaxID, nonEUCitizenTaxCodeDefault) + if c.TaxID != nil { + if isCodiceFiscale(c.TaxID) { + da.CodiceFiscale = c.TaxID.Code.String() + } else if isEUCountry(c.TaxID.Country) { + da.IdFiscaleIVA = customerFiscaleIVA(c.TaxID, euCitizenTaxCodeDefault) + } else { + da.IdFiscaleIVA = customerFiscaleIVA(c.TaxID, nonEUCitizenTaxCodeDefault) + } } nc.DatiAnagrafici = da - return nc, nil + return nc } func newAnagrafica(party *org.Party) *anagrafica { diff --git a/parties_test.go b/parties_test.go index 5193bcb..8711176 100644 --- a/parties_test.go +++ b/parties_test.go @@ -136,13 +136,13 @@ func TestPartiesCustomer(t *testing.T) { assert.Equal(t, "99999999999", c.DatiAnagrafici.IdFiscaleIVA.IdCodice) }) - t.Run("should return error for missing tax ID Country", func(t *testing.T) { + t.Run("should not fail if missing key data", func(t *testing.T) { env := test.LoadTestFile("invoice-simple.json") test.ModifyInvoice(env, func(inv *bill.Invoice) { inv.Customer.TaxID.Country = "" }) _, err := test.ConvertFromGOBL(env) - require.Error(t, err) + require.NoError(t, err) }) }