def _setDatiAnagraficiCessionario(self, partner, fatturapa): fatturapa.FatturaElettronicaHeader.CessionarioCommittente.\ DatiAnagrafici = DatiAnagraficiCessionarioType() if not partner.vat and not partner.fiscalcode: raise UserError( _('VAT number and fiscal code are not set for %s.') % partner.name) if partner.fiscalcode: fatturapa.FatturaElettronicaHeader.CessionarioCommittente.\ DatiAnagrafici.CodiceFiscale = partner.fiscalcode if partner.vat: fatturapa.FatturaElettronicaHeader.CessionarioCommittente.\ DatiAnagrafici.IdFiscaleIVA = IdFiscaleType( IdPaese=partner.vat[0:2], IdCodice=partner.vat[2:]) if partner.company_type == 'company': fatturapa.FatturaElettronicaHeader.CessionarioCommittente.\ DatiAnagrafici.Anagrafica = AnagraficaType( Denominazione=partner.name) elif partner.company_type == 'person': if not partner.lastname or not partner.firstname: raise UserError( _("Partner %s must have name and surname.") % partner.name) fatturapa.FatturaElettronicaHeader.CessionarioCommittente.\ DatiAnagrafici.Anagrafica = AnagraficaType( Cognome=partner.lastname, Nome=partner.firstname ) if partner.eori_code: fatturapa.FatturaElettronicaHeader.CessionarioCommittente.\ DatiAnagrafici.Anagrafica.CodEORI = partner.eori_code return True
def _setDatiAnagraficiCessionario(self, partner, fatturapa): fatturapa.FatturaElettronicaHeader.CessionarioCommittente.\ DatiAnagrafici = DatiAnagraficiCessionarioType() if not partner.vat and not partner.fiscalcode: if ( partner.codice_destinatario == 'XXXXXXX' and partner.country_id.code and partner.country_id.code != 'IT' ): # SDI accepts missing VAT# for foreign customers by setting a # fake IdCodice and a valid IdPaese # Otherwise raise error if we have no VAT# and no Fiscal code fatturapa.FatturaElettronicaHeader.CessionarioCommittente.\ DatiAnagrafici.IdFiscaleIVA = IdFiscaleType( IdPaese=partner.country_id.code, IdCodice='99999999999') else: raise UserError( _('VAT number and fiscal code are not set for %s.') % partner.name) if partner.fiscalcode: fatturapa.FatturaElettronicaHeader.CessionarioCommittente.\ DatiAnagrafici.CodiceFiscale = partner.fiscalcode if partner.vat: fatturapa.FatturaElettronicaHeader.CessionarioCommittente.\ DatiAnagrafici.IdFiscaleIVA = IdFiscaleType( IdPaese=partner.vat[0:2], IdCodice=partner.vat[2:]) if partner.company_name: # This is valorized by e-commerce orders typically fatturapa.FatturaElettronicaHeader.CessionarioCommittente.\ DatiAnagrafici.Anagrafica = AnagraficaType( Denominazione=partner.company_name) elif partner.company_type == 'company': fatturapa.FatturaElettronicaHeader.CessionarioCommittente.\ DatiAnagrafici.Anagrafica = AnagraficaType( Denominazione=partner.name) elif partner.company_type == 'person': if not partner.lastname or not partner.firstname: raise UserError( _("Partner %s must have name and surname.") % partner.name) fatturapa.FatturaElettronicaHeader.CessionarioCommittente.\ DatiAnagrafici.Anagrafica = AnagraficaType( Cognome=partner.lastname, Nome=partner.firstname ) if partner.eori_code: fatturapa.FatturaElettronicaHeader.CessionarioCommittente.\ DatiAnagrafici.Anagrafica.CodEORI = partner.eori_code return True
def _setTerzoIntermediarioOSoggettoEmittente(self, partner, fatturapa): fatturapa.FatturaElettronicaHeader.\ TerzoIntermediarioOSoggettoEmittente = ( TerzoIntermediarioSoggettoEmittenteType() ) fatturapa.FatturaElettronicaHeader.\ TerzoIntermediarioOSoggettoEmittente.\ DatiAnagrafici = DatiAnagraficiTerzoIntermediarioType() if not partner.vat and not partner.fiscalcode: raise UserError( _('Partner VAT number and fiscal code are not set.')) if partner.fiscalcode: fatturapa.FatturaElettronicaHeader.\ TerzoIntermediarioOSoggettoEmittente.\ DatiAnagrafici.CodiceFiscale = partner.fiscalcode if partner.vat: fatturapa.FatturaElettronicaHeader.\ TerzoIntermediarioOSoggettoEmittente.\ DatiAnagrafici.IdFiscaleIVA = IdFiscaleType( IdPaese=partner.vat[0:2], IdCodice=partner.vat[2:]) fatturapa.FatturaElettronicaHeader.\ TerzoIntermediarioOSoggettoEmittente.\ DatiAnagrafici.Anagrafica = AnagraficaType( Denominazione=partner.name) if partner.eori_code: fatturapa.FatturaElettronicaHeader.\ TerzoIntermediarioOSoggettoEmittente.\ DatiAnagrafici.Anagrafica.CodEORI = partner.eori_code fatturapa.FatturaElettronicaHeader.SoggettoEmittente = 'TZ' return True
def _setDatiAnagraficiCessionario(self, partner, fatturapa): fatturapa.FatturaElettronicaHeader.CessionarioCommittente.\ DatiAnagrafici = DatiAnagraficiCessionarioType() if not partner.vat and not partner.fiscalcode: raise UserError( _('Partner VAT and Fiscalcode not set.')) if partner.fiscalcode: fatturapa.FatturaElettronicaHeader.CessionarioCommittente.\ DatiAnagrafici.CodiceFiscale = partner.fiscalcode if partner.vat: fatturapa.FatturaElettronicaHeader.CessionarioCommittente.\ DatiAnagrafici.IdFiscaleIVA = IdFiscaleType( IdPaese=partner.vat[0:2], IdCodice=partner.vat[2:]) fatturapa.FatturaElettronicaHeader.CessionarioCommittente.\ DatiAnagrafici.Anagrafica = AnagraficaType( Denominazione=partner.name) # not using for now # # Anagrafica = DatiAnagrafici.find('Anagrafica') # Nome = Anagrafica.find('Nome') # Cognome = Anagrafica.find('Cognome') # Titolo = Anagrafica.find('Titolo') # Anagrafica.remove(Nome) # Anagrafica.remove(Cognome) # Anagrafica.remove(Titolo) if partner.eori_code: fatturapa.FatturaElettronicaHeader.CessionarioCommittente.\ DatiAnagrafici.Anagrafica.CodEORI = partner.eori_code return True
def _setDatiAnagraficiCedente(self, CedentePrestatore, company): if not company.vat: raise UserError( _('TIN not set.')) CedentePrestatore.DatiAnagrafici = DatiAnagraficiCedenteType() fatturapa_fp = company.fatturapa_fiscal_position_id if not fatturapa_fp: raise UserError( _('FatturaPA fiscal position not set.')) CedentePrestatore.DatiAnagrafici.IdFiscaleIVA = IdFiscaleType( IdPaese=company.country_id.code, IdCodice=company.vat[2:]) CedentePrestatore.DatiAnagrafici.Anagrafica = AnagraficaType( Denominazione=company.name) # not using for now # # Anagrafica = DatiAnagrafici.find('Anagrafica') # Nome = Anagrafica.find('Nome') # Cognome = Anagrafica.find('Cognome') # Titolo = Anagrafica.find('Titolo') # Anagrafica.remove(Nome) # Anagrafica.remove(Cognome) # Anagrafica.remove(Titolo) if company.partner_id.fiscalcode: CedentePrestatore.DatiAnagrafici.CodiceFiscale = ( company.partner_id.fiscalcode) CedentePrestatore.DatiAnagrafici.RegimeFiscale = fatturapa_fp.code return True
def setDatiDDT(self, invoice, body): res = super(WizardExportFatturapa, self).setDatiDDT( invoice, body) if self.include_ddt_data == 'dati_ddt': inv_lines_by_ddt = {} for line in invoice.invoice_line_ids: if ( line.ddt_line_id and line.ddt_line_id.package_preparation_id.ddt_number and line.ddt_line_id.package_preparation_id.date ): key = ( line.ddt_line_id.package_preparation_id.ddt_number, line.ddt_line_id.package_preparation_id.date ) if key not in inv_lines_by_ddt: inv_lines_by_ddt[key] = [] inv_lines_by_ddt[key].append(line.ftpa_line_number) for key in sorted(inv_lines_by_ddt.keys()): DatiDDT = DatiDDTType( NumeroDDT=key[0], DataDDT=key[1] ) for line_number in inv_lines_by_ddt[key]: DatiDDT.RiferimentoNumeroLinea.append(line_number) body.DatiGenerali.DatiDDT.append(DatiDDT) elif self.include_ddt_data == 'dati_trasporto': body.DatiGenerali.DatiTrasporto = DatiTrasportoType( MezzoTrasporto=invoice.transportation_method_id.name or None, CausaleTrasporto=invoice.transportation_reason_id.name or None, NumeroColli=invoice.parcels or None, Descrizione=invoice.goods_description_id.name or None, PesoLordo='%.2f' % invoice.gross_weight, PesoNetto='%.2f' % invoice.weight, TipoResa=invoice.incoterms_id.code or None ) if invoice.carrier_id: if not invoice.carrier_id.vat: raise UserError( _('TIN not set for %s.') % invoice.carrier_id.name) body.DatiGenerali.DatiTrasporto.DatiAnagraficiVettore = ( DatiAnagraficiVettoreType()) if invoice.carrier_id.fiscalcode: body.DatiGenerali.DatiTrasporto.DatiAnagraficiVettore.\ CodiceFiscale = invoice.carrier_id.fiscalcode body.DatiGenerali.DatiTrasporto.DatiAnagraficiVettore.\ IdFiscaleIVA = IdFiscaleType( IdPaese=invoice.carrier_id.vat[0:2], IdCodice=invoice.carrier_id.vat[2:] ) body.DatiGenerali.DatiTrasporto.DatiAnagraficiVettore.\ Anagrafica = AnagraficaType( Denominazione=invoice.carrier_id.name) return res
def _setDatiAnagraficiCedente(self, CedentePrestatore, company): if not company.vat: raise UserError(_('TIN not set.')) CedentePrestatore.DatiAnagrafici = DatiAnagraficiCedenteType() fatturapa_fp = company.fatturapa_fiscal_position_id if not fatturapa_fp: raise UserError( _('Fiscal position for electronic invoice not set ' 'for company %s. ' '(Go to Accounting / Configuration / Settings / ' 'Electronic Invoice)' % company.name)) CedentePrestatore.DatiAnagrafici.IdFiscaleIVA = IdFiscaleType( IdPaese=company.country_id.code, IdCodice=company.vat[2:]) CedentePrestatore.DatiAnagrafici.Anagrafica = AnagraficaType( Denominazione=company.name) if company.partner_id.fiscalcode: CedentePrestatore.DatiAnagrafici.CodiceFiscale = ( company.partner_id.fiscalcode) CedentePrestatore.DatiAnagrafici.RegimeFiscale = fatturapa_fp.code return True
def _setDatiAnagraficiRappresentanteFiscale(self, partner, fatturapa): fatturapa.FatturaElettronicaHeader.RappresentanteFiscale = ( RappresentanteFiscaleType()) fatturapa.FatturaElettronicaHeader.RappresentanteFiscale.\ DatiAnagrafici = DatiAnagraficiRappresentanteType() if not partner.vat and not partner.fiscalcode: raise UserError( _('VAT and Fiscalcode not set for %s') % partner.name) if partner.fiscalcode: fatturapa.FatturaElettronicaHeader.RappresentanteFiscale.\ DatiAnagrafici.CodiceFiscale = partner.fiscalcode if partner.vat: fatturapa.FatturaElettronicaHeader.RappresentanteFiscale.\ DatiAnagrafici.IdFiscaleIVA = IdFiscaleType( IdPaese=partner.vat[0:2], IdCodice=partner.vat[2:]) fatturapa.FatturaElettronicaHeader.RappresentanteFiscale.\ DatiAnagrafici.Anagrafica = AnagraficaType( Denominazione=partner.name) if partner.eori_code: fatturapa.FatturaElettronicaHeader.RappresentanteFiscale.\ DatiAnagrafici.Anagrafica.CodEORI = partner.eori_code return True