americob 315 Report post Posted March 19 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 7 Report post Posted March 19 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 41 Report post Posted April 2 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>áéíóúãõç</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 5 Report post Posted April 3 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 "á" 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 41 Report post Posted April 4 (edited) 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 "á" 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 April 4 by antseq Share this post Link to post Share on other sites
Pedro Alex 0 Report post Posted April 12 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 Share this post Link to post Share on other sites
iznougudpt 6 Report post Posted April 23 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) 1 Share this post Link to post Share on other sites
Pedro Alex 0 Report post Posted April 23 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
cavada 3 Report post Posted May 1 Boa tarde, tenho uma duvida que gostava de partilhar convosco, pois devem ter também este problema e podemos ajudar-nos uns aos outros. Alguns clientes meus tem ido a formacoes da OCC e dizem que no saft da contabilidade devem estar bem definidas 3 datas : Data do Documento – Data impressa no documento que serve de suporte ao registo --> TransactionDate Data do movimento contabilístico – Data em que o operador quer registar o documento na sua contabilidade, para efeitos contabilisticos. --> GLPostingDate Data do registo do documento contabilístico – Data em que o operador está a lançar o documento na sua contabilidade --> SystemEntryDate Só que o problema é que essa data (transactiondate ) está ligada com a referencia e o numero do documento : Chave única do movimento contabilístico (TransactionID) "Deve ser construída de forma a ser única e a corresponder ao número de documento contabilístico, que é utilizado para detetar o documento físico no arquivo, pelo que, deve resultar de uma concatenação, separada por espaços, entre os seguintes valores: data do documento, identificador do diário e número de arquivo do documento (TransactionDate, JournalID e DocArchivalNumber)." Exemplo – Factura de um fornecedor que chega ao nosso conhecimento a 11/03/2019 com a data do documento 31/01/2019. O Iva relativo ao mês de Janeiro foi já enviado, e o mês de Fevereiro poderá já estar encerrado. Data do Documento – 31/01/2019 Data do movimento contabilístico – 01/03/2019 Data do registo interno contabilístico – 11/03/2019 para mim e no meu sistema a data do documento é igual à data do movimento contabilistico, até porque nao faz sentido um documento de um determinado mes estar indexado com uma chave que tem uma data inferior e que até pode ser de outro mês. entendo o que pretendo a AT, mas entendo ser um erro a escolha deste campo, e mais tarde ou mais cedo alguem vai alterar isto. que acham ? Share this post Link to post Share on other sites
lreigoto 0 Report post Posted May 2 Boa tarde, Tenho uma dúvida relativamente aos descontos de faturas e de recibos. Nas faturas o desconto comercial fiz da seguinte forma: - Na prática um desconto comercial (desconto global na fatura) onde o cliente define na fatura a percentagem desse desconto e não na linha da fatura. Relativamente ao SAFT fiz como se fosse um desconto de linha da mesma percentagem. É a abordagem correta? Exemplo: Fatura com linhas iguais: Qtd=1; Preço Unitário=100€; Desconto de Linha 0% Fatura com 10% de desconto comercial: Consumíveis/Serviços: 200,00 € Desconto: 20,00 € Subtotal: 180,00 € Imposto: 41,40 € Total: 221,40 € <SalesInvoices> <NumberOfEntries>1</NumberOfEntries> <TotalDebit>0.00</TotalDebit> <TotalCredit>180.00</TotalCredit> <Invoice> <InvoiceNo>FT 2019/0013</InvoiceNo> <ATCUD>0</ATCUD> <DocumentStatus> <InvoiceStatus>N</InvoiceStatus> <InvoiceStatusDate>2019-05-02T19:35:31</InvoiceStatusDate> <SourceID>1</SourceID> <SourceBilling>P</SourceBilling> </DocumentStatus> <Hash>WePgevN8ewZn....</Hash> <HashControl>1</HashControl> <Period>5</Period> <InvoiceDate>2019-05-02</InvoiceDate> <InvoiceType>FT</InvoiceType> <SpecialRegimes> <SelfBillingIndicator>0</SelfBillingIndicator> <CashVATSchemeIndicator>0</CashVATSchemeIndicator> <ThirdPartiesBillingIndicator>0</ThirdPartiesBillingIndicator> </SpecialRegimes> <SourceID>1</SourceID> <SystemEntryDate>2019-05-02T19:35:31</SystemEntryDate> <CustomerID>295</CustomerID> <ShipTo> <Address> <AddressDetail>Desconhecido</AddressDetail> <City>Desconhecido</City> <PostalCode>Desconhecido</PostalCode> <Region>Desconhecido</Region> <Country>PT</Country> </Address> </ShipTo> <ShipFrom> <Address> <AddressDetail>Rua do Polo Norte</AddressDetail> <City>Lisboa</City> <PostalCode>2000-266</PostalCode> <Region>Lisboa</Region> <Country>PT</Country> </Address> </ShipFrom> <Line> <LineNumber>1</LineNumber> <ProductCode>1197</ProductCode> <ProductDescription>Maçã</ProductDescription> <Quantity>1.0</Quantity> <UnitOfMeasure>Unidade(s)</UnitOfMeasure> <UnitPrice>90.00</UnitPrice> <TaxPointDate>2019-05-02</TaxPointDate> <Description>Maçã</Description> <CreditAmount>90.00</CreditAmount> <Tax> <TaxType>IVA</TaxType> <TaxCountryRegion>PT</TaxCountryRegion> <TaxCode>NOR</TaxCode> <TaxPercentage>23.0</TaxPercentage> </Tax> <SettlementAmount>10.00</SettlementAmount> </Line> <Line> <LineNumber>2</LineNumber> <ProductCode>1197</ProductCode> <ProductDescription>Maçã</ProductDescription> <Quantity>1.0</Quantity> <UnitOfMeasure>Unidade(s)</UnitOfMeasure> <UnitPrice>90.00</UnitPrice> <TaxPointDate>2019-05-02</TaxPointDate> <Description>Maçã</Description> <CreditAmount>90.00</CreditAmount> <Tax> <TaxType>IVA</TaxType> <TaxCountryRegion>PT</TaxCountryRegion> <TaxCode>NOR</TaxCode> <TaxPercentage>23.0</TaxPercentage> </Tax> <SettlementAmount>10.00</SettlementAmount> </Line> <DocumentTotals> <TaxPayable>41.40</TaxPayable> <NetTotal>180.00</NetTotal> <GrossTotal>221.40</GrossTotal> </DocumentTotals> </Invoice> </SalesInvoices> Quais seriam as diferenças que deveria aplicar para desenvolver o dito desconto financeiro? Outro requisito que pretendo desenvolver é o desconto em recibos, ou seja, tenho uma fatura emitida normalmente (com ou sem descontos) mas pretendo dar a possibilidade de fazer descontos no recibo, no caso por exemplo, do cliente pagar dentro de 5 dias ou outro período. Devo adicionar o Settlement Amount nas linhas dos Payments (4.4.4.14.3.)? O Settlement Amount (4.4.4.15.4.1.) dentro do Documents Totals deverá ser o somatório do Settlement Amount das linhas? Os valores do CreditAmount e dos DocumentTotals também devem ser alterados? <Line> <LineNumber>1</LineNumber> <SourceDocumentID> <OriginatingON>FT 2019/0013</OriginatingON> <InvoiceDate>2019-05-02</InvoiceDate> </SourceDocumentID> <CreditAmount>221.4</CreditAmount> </Line> <DocumentTotals> <TaxPayable>0</TaxPayable> <NetTotal>221.4</NetTotal> <GrossTotal>221.4</GrossTotal> </DocumentTotals> Peço desculpa pela longa pergunta e obrigado pela ajuda. Com os melhores cumprimentos, Share this post Link to post Share on other sites
americob 315 Report post Posted May 6 (edited) Em 01-05-2019 às 17:56, cavada disse: Boa tarde, tenho uma duvida que gostava de partilhar convosco, pois devem ter também este problema e podemos ajudar-nos uns aos outros. Alguns clientes meus tem ido a formacoes da OCC e dizem que no saft da contabilidade devem estar bem definidas 3 datas : Data do Documento – Data impressa no documento que serve de suporte ao registo --> TransactionDate Data do movimento contabilístico – Data em que o operador quer registar o documento na sua contabilidade, para efeitos contabilisticos. --> GLPostingDate Data do registo do documento contabilístico – Data em que o operador está a lançar o documento na sua contabilidade --> SystemEntryDate Só que o problema é que essa data (transactiondate ) está ligada com a referencia e o numero do documento : Chave única do movimento contabilístico (TransactionID) "Deve ser construída de forma a ser única e a corresponder ao número de documento contabilístico, que é utilizado para detetar o documento físico no arquivo, pelo que, deve resultar de uma concatenação, separada por espaços, entre os seguintes valores: data do documento, identificador do diário e número de arquivo do documento (TransactionDate, JournalID e DocArchivalNumber)." Exemplo – Factura de um fornecedor que chega ao nosso conhecimento a 11/03/2019 com a data do documento 31/01/2019. O Iva relativo ao mês de Janeiro foi já enviado, e o mês de Fevereiro poderá já estar encerrado. Data do Documento – 31/01/2019 Data do movimento contabilístico – 01/03/2019 Data do registo interno contabilístico – 11/03/2019 para mim e no meu sistema a data do documento é igual à data do movimento contabilistico, até porque nao faz sentido um documento de um determinado mes estar indexado com uma chave que tem uma data inferior e que até pode ser de outro mês. entendo o que pretendo a AT, mas entendo ser um erro a escolha deste campo, e mais tarde ou mais cedo alguem vai alterar isto. que acham ? Boa tarde, Ainda não deves ter começado a tratar do SVAT! Quando comecei a tratar do meu, antes da 1ª reunião, tive de lhes enviar 3 ficheiros SAFT (anos N-1, N e N+1) com um conjunto mínimo de movimentos determinados por eles, e validado por eles. Só depois propuseram a tal reunião. No SAFT definitivo que me aceitaram, o TransationID ficou qualquer coisa do género "2018-10-10 OD 10000000000000009" que é o TransactionDate (espaço) o Journal (espaço) DocArchivalNumber. O DocArchivalNumber teve que ficar com Period+NumeroInterno. Só assim se consegue garantir que o TransactionID seja uma chave única. O caso que apresentas ficaria qualquer coisa como "2019-01-31 OD 03000000000000009" Edited May 6 by americob completar com exemplo Share this post Link to post Share on other sites
cavada 3 Report post Posted May 7 19 horas atrás, americob disse: Boa tarde, Ainda não deves ter começado a tratar do SVAT! Quando comecei a tratar do meu, antes da 1ª reunião, tive de lhes enviar 3 ficheiros SAFT (anos N-1, N e N+1) com um conjunto mínimo de movimentos determinados por eles, e validado por eles. Só depois propuseram a tal reunião. No SAFT definitivo que me aceitaram, o TransationID ficou qualquer coisa do género "2018-10-10 OD 10000000000000009" que é o TransactionDate (espaço) o Journal (espaço) DocArchivalNumber. O DocArchivalNumber teve que ficar com Period+NumeroInterno. Só assim se consegue garantir que o TransactionID seja uma chave única. O caso que apresentas ficaria qualquer coisa como "2019-01-31 OD 03000000000000009" Por acaso ja comecei o SVAT mas como me deram um prazo tao curto acabei por ter de adiar. O que me faz confusao é a chave do documento ( transactionID ) ter a data do documento ( neste caso do fornecedor ) e nao a minha data de lancamento no sistema, que essa sim é que faz parte da chave das minhas tabelas. Share this post Link to post Share on other sites
americob 315 Report post Posted May 7 14 minutos atrás, cavada disse: Por acaso ja comecei o SVAT mas como me deram um prazo tao curto acabei por ter de adiar. O que me faz confusao é a chave do documento ( transactionID ) ter a data do documento ( neste caso do fornecedor ) e nao a minha data de lancamento no sistema, que essa sim é que faz parte da chave das minhas tabelas. Pois, realmente não tem muita lógica. Aliás, não sei o que faz alí o TransactionDate ou qualquer outra Data, se já lá tem o Journal e o ArchivalDocumentNumber (em que obrigam a constar o Period e o NumeroInterno). Bastavam estes dois para não haver repetições. Share this post Link to post Share on other sites
Mauro2112 0 Report post Posted May 8 (edited) Boas, pessoal Estou aqui meio perdido com encodings... Como é que lidam com os caracteres especiais/estrangeiros? Não aceitam nos vossos software? Limpam apenas quando vão exportar o SAF-T? Se sim, como? 😵 Desde já, obrigado Edited May 8 by Mauro2112 Share this post Link to post Share on other sites
CFreitas 53 Report post Posted May 8 (edited) 1 hour ago, Mauro2112 said: Boas, pessoal Estou aqui meio perdido com encodings... Como é que lidam com os caracteres especiais/estrangeiros? Não aceitam nos vossos software? Limpam apenas quando vão exportar o SAF-T? Se sim, como? 😵 Limpar os caracteres não me parece uma boa opção porque altera a informação original. O ideal será, ao exportar para XML, substituir os caracteres pelas respetivos códigos. Há funções para isso nas várias linguagens de programação. Por exemplo, o Ñ pode ser substituído por Ñ https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references Edited May 8 by CFreitas 1 Share this post Link to post Share on other sites
CrominhO 306 Report post Posted May 8 Limpar (?) é muito mau, vai dar problemas mais tarde... As mentes humanas são realmente um local estranho! Share this post Link to post Share on other sites
Mauro2112 0 Report post Posted May 8 7 hours ago, CFreitas said: Limpar os caracteres não me parece uma boa opção porque altera a informação original. O ideal será, ao exportar para XML, substituir os caracteres pelas respetivos códigos. Há funções para isso nas várias linguagens de programação. Por exemplo, o Ñ pode ser substituído por Ñ https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references Isso é o que estou a fazer mas existem caracteres que fazem parte do windows-1252, como por exemplo "š". Esse tipo de caracteres, deveria mandar um "š"? Outro problema que surge com isto é no tamanho da string... O que fazer se com estas conversões ultrapassar o limite? Share this post Link to post Share on other sites
CFreitas 53 Report post Posted May 9 13 hours ago, Mauro2112 said: Isso é o que estou a fazer mas existem caracteres que fazem parte do windows-1252, como por exemplo "š". Esse tipo de caracteres, deveria mandar um "š"? Outro problema que surge com isto é no tamanho da string... O que fazer se com estas conversões ultrapassar o limite? 13 hours ago, Mauro2112 said: Isso é o que estou a fazer mas existem caracteres que fazem parte do windows-1252, como por exemplo "š". Esse tipo de caracteres, deveria mandar um "š"? Outro problema que surge com isto é no tamanho da string... O que fazer se com estas conversões ultrapassar o limite? O código só conta como 1 caracter. No entanto, creio que não vais poder usar o nome š porque não está definido em XML. Terás de usar mesmo o código numérico, que no caso será o "Š". Share this post Link to post Share on other sites
dlsilva 0 Report post Posted May 9 Boa tarde a todos, Estou a ter um erro estranho ao usar o FACTEMICLI para submeter o SAF-T. Alguém já viu este erro? [2019-05-09 19:56:21] Started... [2019-05-09 19:56:21] [enviar] Selected file: C:\XXX_1.04_SAFT.xml [2019-05-09 19:56:33] [SaftFileValidator - validateXMLVersion] XML Version Validation Time (in milliseconds): 0 [2019-05-09 19:56:33] [enviar] A analisar ficheiro... 0% [2019-05-09 19:56:34] [enviar] SAFT file is analysed. Analyse Time (in milliseconds): 800 [2019-05-09 19:56:34] [enviar] A converter / validar... 0% [2019-05-09 19:56:34] [SaftFileValidator] Start validating SAFT file [2019-05-09 19:56:38] [SaftFileValidator] Finished validating SAFT file [2019-05-09 19:56:38] Stats: [2019-05-09 19:56:38] Total customers: 143 [2019-05-09 19:56:38] Total invoices: 11544 [2019-05-09 19:56:38] Total invoices: 0 [2019-05-09 19:56:38] Total invoices: 0 [2019-05-09 19:56:38] [enviar] SAFT file is valid. Validation Time (in milliseconds): 3430 [2019-05-09 19:56:38] [Uploader] Start upload file... [2019-05-09 19:56:38] [enviar] A enviar... 0% [2019-05-09 19:56:38] [Uploader] Start sending parameters [2019-05-09 19:56:38] [Uploader] Finished sending parameters [2019-05-09 19:56:38] [Uploader] Start uploading SAFT file [2019-05-09 19:56:42] [Uploader] Finished uploading SAFT file [2019-05-09 19:56:42] [Uploader] Start receiving response from server[Fatal Error] :7:63: The entity "aacute" was referenced, but not declared. [2019-05-09 19:56:42] [enviar] <?xml version="1.0" encoding="ISO-8859-1"?> <response code="-666"><errors><error>Ocorreu um erro ao receber a resposta do servidor.</error></errors></response> [2019-05-09 19:56:42] [enviar] The entity "aacute" was referenced, but not declared. [2019-05-09 19:56:42] finished... Obrigado! Share this post Link to post Share on other sites
nunopicado 1,177 Report post Posted May 9 Isso é aparentemente um erro causado por caracteres inválidos no SAFT. Possivelmente um "á". Mas só percorrendo o dito para tentares achar a causa. "A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!" > Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum. Share this post Link to post Share on other sites
CFreitas 53 Report post Posted May 10 12 hours ago, dlsilva said: Boa tarde a todos, ... [2019-05-09 19:56:42] [Uploader] Start receiving response from server[Fatal Error] :7:63: The entity "aacute" was referenced, but not declared.[2019-05-09 19:56:42] [enviar] <?xml version="1.0" encoding="ISO-8859-1"?> <response code="-666"><errors><error>Ocorreu um erro ao receber a resposta do servidor.</error></errors></response>[2019-05-09 19:56:42] [enviar] The entity "aacute" was referenced, but not declared.[2019-05-09 19:56:42] finished... Esse erro ocorre porque um "á" foi substituído por "á". Esta entidade não está definida para o XML. As entidades pré-definidas para XML são poucas (apenas 5). Nestes casos, em vez de usar o "á" deve ser usado o respetivo código numérico "Á". Mais informação aqui: https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Predefined_entities_in_XML 1 Share this post Link to post Share on other sites
dlsilva 0 Report post Posted May 10 Isso foi a primeira coisa que eu procurei, mas o ficheiro não tem "á" nem "á". Já estou sem ideias.. Se eu usar a opção de validar funciona tudo bem. Se inserir este saft no portal funciona tudo bem. Share this post Link to post Share on other sites
CFreitas 53 Report post Posted May 10 25 minutes ago, dlsilva said: Isso foi a primeira coisa que eu procurei, mas o ficheiro não tem "á" nem "á". Já estou sem ideias.. Se eu usar a opção de validar funciona tudo bem. Se inserir este saft no portal funciona tudo bem. Estranho. De facto no output do FACTEMICLI é dito que o saft validou corretamente e que o erro ocorre na receção do ficheiro de resposta do servidor. Será que o erro está na resposta produzida pelo servidor?? Share this post Link to post Share on other sites
dlsilva 0 Report post Posted May 10 Eu também tenho essa suspeita mas não consigo saber o que ele recebeu ou existe alguma forma? Share this post Link to post Share on other sites
desconfiado 40 Report post Posted May 15 Alguém sabe dizer como está a questão das alterações à facturação introduzidas pelo Decreto-Lei n.º 28/2019? Já saíram novidades? Especificações? Prazos? Share this post Link to post Share on other sites