Profilo di Timer86

Nome Timer86
Indirizzo email n/a
Messaggi4
  • Re: Fattura elettronica e lettura xml
    Forum >> Principianti
    Risolto così
    
    if len(obj.findall('FatturaElettronicaBody/DatiPagamento/DettaglioPagamento/DataScadenzaPagamento')):
    
                                for scadenza in obj.iterfind('FatturaElettronicaBody/DatiPagamento/DettaglioPagamento/DataScadenzaPagamento'):
    
                                    from datetime import datetime
    
                                    print(scadenza.text)
    
                                    self.worksheet.write(row, column + 8, scadenza.text)
    
                                    newscad = scadenza.text[0:10]
    
                                    scad1 = datetime.strptime(newscad, "%Y-%m-%d")
    
                            else:
    
                                for scadenza1 in obj.iterfind('FatturaElettronicaBody/DatiPagamento/DettaglioPagamento/GiorniTerminiPagamento'):
    
                                     from datetime import timedelta, date, datetime
    
                                     scad1= datem + timedelta(days=int(scadenza1.text))
    
                                     print(f'New Expire {scad1}')
    
                                     newdate = datetime.strftime(scad1, "%Y-%m-%d")
    
                                     self.worksheet.write(row, column + 8, newdate)
    
    


  • Re: Estrarre dati da fattura elettronica PA
    Forum >> Principianti
    Ciao,



    io ho usato iterfind, però , nasce un problema. Se il campo datascadenza di pagamento non esiste, pensavo che mi rendesse un campo scadenza.text vuto, e dunque potessi procedere alla ricerca del campo successivo, invece sembra di no. non mi da errore, semplicemente non va al ciclo if successivo se scadenza.text è vuoto.
    
    for scadenza in obj.iterfind('FatturaElettronicaBody/DatiPagamento/DettaglioPagamento/DataScadenzaPagamento'):
    
                                print(scadenza.text) #print thee expiration date
    
                    
    
                                if (not scadenza.text):
    
                                    for scadenza1 in obj.iterfind('FatturaElettronicaBody/DatiPagamento/DettaglioPagamento/GiorniTerminiPagamento'):
    
                                        from datetime import timedelta, date
    
                                        d1 = datem + timedelta(days=int(scadenza1.text))
    
                                        print(f'New Expire {d1}')
    
                                        scadenza.text = d1
    
    

  • Fattura elettronica e lettura xml
    Forum >> Principianti
    Ciao a tutti,
    sto studiando python per lavoro principalmente, e sto seguendo un mini progetto che mi permette di andare a scrivere su un file excel tutti i file xml e i campi che necessito.

    Ora, non ho problemi con nessun campo, l'automazione / script funziona già perfettamente, a parte per una cosa soltanto.




    alcuni xlm hanno questo path(vedete in basso) altri ne hanno questo.

    - 'FatturaElettronicaBody/DatiPagamento/DettaglioPagamento/DataScadenzaPagamento'

    altri hanno questo path

    -'FatturaElettronicaBody/DatiPagamento/DettaglioPagamento/GiorniTerminiPagamento'




    io vorrei estrarre questo campo(il primo) vedere se c'è effettivamente quel campo, se sì prendo il valore, altrimenti prelevo quello sotto e lo sommo alla data di fattura .

    il problema che detengo è che nessuan condizione di questo for, e dei sottostanti si avvera mai, sembra skipparlo sempre e comunque e dunque non riesco ad andare al secondo pezzo.




    Purtroppo mi sono incartato, avete qualche consiglio da darmi? suggerimento? ci sto perdendo la testa.



    for scadenza in obj.iterfind('FatturaElettronicaBody/DatiPagamento/DettaglioPagamento/DataScadenzaPagamento'):

    print(scadenza.text) #print thee expiration date

    print (scadenza.attrib)

    if not scadenza.attrib:

    for scadenza1 in obj.iterfind('FatturaElettronicaBody/DatiPagamento/DettaglioPagamento/GiorniTerminiPagamento'):

    from datetime import timedelta, date

    d1 = datem + timedelta(days=int(scadenza1.text))

    print(f'New Expire {d1}')

    scadenza.text = d1




    --- Ultima modifica di Timer86 in data 2022-06-29 18:06:30 ---
  • Fattura elettronica e lettura xml
    Forum >> Principianti
    Ciao a tutti,
    sto studiando python per lavoro principalmente, e sto seguendo un mini progetto che mi permette di andare a scrivere su un file excel tutti i file xml e i campi che necessito.

    Ora, non ho problemi con nessun campo, l'automazione / script funziona già perfettamente, a parte per una cosa soltanto.




    alcuni xlm hanno questo path(vedete in basso) altri ne hanno questo.

    - 'FatturaElettronicaBody/DatiPagamento/DettaglioPagamento/DataScadenzaPagamento'

    altri hanno questo path

    -'FatturaElettronicaBody/DatiPagamento/DettaglioPagamento/GiorniTerminiPagamento'




    io vorrei estrarre questo campo(il primo) vedere se c'è effettivamente quel campo, se sì prendo il valore, altrimenti prelevo quello sotto e lo sommo alla data di fattura .

    il problema che detengo è che nessuan condizione di questo for, e dei sottostanti si avvera mai, sembra skipparlo sempre e comunque e dunque non riesco ad andare al secondo pezzo.




    Purtroppo mi sono incartato, avete qualche consiglio da darmi? suggerimento? ci sto perdendo la testa.



    for scadenza in obj.iterfind('FatturaElettronicaBody/DatiPagamento/DettaglioPagamento/DataScadenzaPagamento'):

    print(scadenza.text) #print thee expiration date

    print (scadenza.attrib)

    if not scadenza.attrib:

    for scadenza1 in obj.iterfind('FatturaElettronicaBody/DatiPagamento/DettaglioPagamento/GiorniTerminiPagamento'):

    from datetime import timedelta, date

    d1 = datem + timedelta(days=int(scadenza1.text))

    print(f'New Expire {d1}')

    scadenza.text = d1