Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

pv2013

SAFT-PT: debate de dúvidas e ideias

Recommended Posts

americob
16 horas atrás, carlosAl disse:

Bom dia Colegas,

Alguem me sabe dizer onde consigo um exemplo do ficheiro xml da declaraçao periodica de IVA ?

O mais fácil e mais rápido, até porque ficas a saber com certezas de que valores colocaste em que campos, é entrar o Portal da AT, na opção de entrega da DPIVA, preencher e guardar.

Share this post


Link to post
Share on other sites
carlosAl

nao tinha pensado nisso, embora eu nao seja sujeito passivo de iva imagino que se possa fazer isso sem submeter

obrigado pela ajuda

Share this post


Link to post
Share on other sites
antseq

Viva,

Estou a exportar um SAFT em Android (java), até já está feito, mas o problema é que não consigo acertar com o "encoding" "Windows-1252" do ficheiro...

Neste exemplo (abaixo) apesar de a primeira linha do Xml mostrar "... encoding='windows-1252'":
- dentro do XML os caracteres aparecem "escaped" com "&#xxx;"
- se abrir o ficheiro no notepad++ (já em windows) mostra/detecta o "encodng" "UTF-8"
- XML:  <?xml version='1.0' encoding='windows-1252' ?><test><message>&#225;&#233;&#237;&#243;&#250;&#227;&#245;&#231;</message></test>

private void doDebug01(){
        File dstPath = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
        try {
            //EXAMPLE A
            File dstFile = new File(dstPath, "test.xml");
            FileOutputStream dstFOS = new FileOutputStream(dstFile);
            OutputStream dstOS= new BufferedOutputStream(dstFOS);
            OutputStreamWriter dstOSW = new OutputStreamWriter(dstOS, "windows-1252");
            XmlSerializer dstXml = Xml.newSerializer();
            dstXml.setOutput(dstOSW);
            dstXml.startDocument("windows-1252", null);
            dstXml.startTag(null,"test");
            dstXml.startTag(null,"message");
            dstXml.text("áéíóúãõç");
            dstXml.endTag(null,"message");
            dstXml.endTag(null,"test");
            dstXml.endDocument();
            dstXml.flush();
            dstOSW.close();
        }
        catch (IOException e) {
            Log.e("DEBUG", e.getMessage());
            e.printStackTrace();
        }
}

alguém faz ideia do que estou a fazer mal? e como obter o ficheiro Xml com o "encoding" correcto?

desde já obrigado por qualquer ajuda.

Share this post


Link to post
Share on other sites
Miguel Frias
19 hours ago, antseq said:

 

Provavelmente o problema passa pelo facto de que ao escrever "áéí..." estará a escrever esses caracteres em UTF8 (ou noutro encoding que não o windows-1252). Por outro lado o facto de aparecer "&#225;" sugere que a função .txt() estará a efectuar uma conversão, neste caso para HTML.

Share this post


Link to post
Share on other sites
antseq
21 horas atrás, Miguel Frias disse:

Provavelmente o problema passa pelo facto de que ao escrever "áéí..." estará a escrever esses caracteres em UTF8 (ou noutro encoding que não o windows-1252). Por outro lado o facto de aparecer "&#225;" sugere que a função .txt() estará a efectuar uma conversão, neste caso para HTML.

Obrigado.
Neste (infeliz) exemplo começo a pensar que Sim, como o editor do Android Studio está em UTF-8, aqueles caracteres da string fixa de teste estão forçosamente no mesmo "encoding".
Não foi o melhor teste... vou ver se tal como está agora passa na certificação.
cps,

Edited by antseq

Share this post


Link to post
Share on other sites
iznougudpt
Em 12/04/2019 às 16:13, Pedro Alex disse:

Boa tarde,

A AT vai passar a emitir novos NIFs a começar por 3.

Alguém sabe se este facto poderá afetar a formula de calculo para validar o checkdigit e assegurar que o NIF é valido?

http://info.portaldasfinancas.gov.pt/pt/destaques/Paginas/Atribuicao_Nova_Gama_de_NIF_a_Pessoas_Singulares.aspx

Obrigado

Pedro

O checkDigit deve manter o mesmo cálculo, é só questão de permitir que o NIF comece por 3 (no meu caso dava logo erro caso começasse por 3, 4 ou 0)

  • Vote 1

Share this post


Link to post
Share on other sites
Pedro Alex
16 minutos atrás, iznougudpt disse:

O checkDigit deve manter o mesmo cálculo, é só questão de permitir que o NIF comece por 3 (no meu caso dava logo erro caso começasse por 3, 4 ou 0)

Correto e afirmativo.

Já tive oportunidade de ensaiar e resulta OK.

O algoritmo é o mesmo, simplesmente basta adicionar a precisão para os NIFs começados por 3

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.