Jump to content

antseq

Member
  • Posts

    345
  • Joined

  • Last visited

Everything posted by antseq

  1. Consulta a Proposta de Lei n.º 37/XVII/1, Orçamento do Estado para 2026, Artigo 80.º, Disposições transitórias relativas a obrigações fiscais: 3 - Até 31 de dezembro de 2026 são aceites faturas em ficheiro PDF, sendo consideradas como faturas eletrónicas para todos os efeitos previstos na legislação fiscal. https://app.parlamento.pt/OE2026/HTML/OrcamentoEstado2026.html
  2. Obrigado, Actualizei a minha versão da 361 para a 471 e passou a funcionar. Antes: java version "1.8.0_361" Java(TM) SE Runtime Environment (build 1.8.0_361-b09) Java HotSpot(TM) 64-Bit Server VM (build 25.361-b09, mixed mode) Depois: java version "1.8.0_471" Java(TM) SE Runtime Environment (build 1.8.0_471-b09) Java HotSpot(TM) 64-Bit Server VM (build 25.471-b09, mixed mode)
  3. Bom dia, testamos agora mesmo, em máquinas Windows 10 continua com erro e Windows 11 funciona correctamente. Mais alguém confirma esta situação?
  4. As far as I know, the AT public key does not require a password to encode the payload request.
  5. https://info.portaldasfinancas.gov.pt/pt/apoio_contribuinte/Pages/default.aspx [Faturação - Regras e mecanismos de comunicação] https://info.portaldasfinancas.gov.pt/pt/apoio_contribuinte/Faturacao/Documents/ChaveCifraPublicaAT2027.zip
  6. Se ainda estas a criar e ainda não foi a certificação da AGT, vai ter muitos nós na cabeça.... Da multa, 1) se a propina e a multa tem a mesma taxa de imposto linha 1: 1x, propina mensal, 20.000 Kz, imposto A linha 2: 1x, atraso no pagamento, 4.000 Kz, imposto A total : 24.000 kz ou linha 1: 1x, propina mensal com atraso no pagamento, 24.000Kz, imposto A total : 24.000 kz 2) se a propina e a multa tem diferentes taxa de imposto linha 1: 1x, propina mensal, 20.000 Kz, imposto A linha 2: 1x, atraso no pagamento, 4.000 Kz, imposto B total : 24.000 kz cps, * consulta a legislação fiscal para saber se a multa é considerada mesmo serviço com se fosse uma propina mais cara (mesmo imposto) ou se serviços distintos com taxas de imposto distintas.
  7. Viva, Já lhe respondi no outro dia que não existem TAGs para vender carne, TAGs para vender ovos, TAGs para vender coca-colas, nem TAGs para "vender" (aplicar) multas, se assim fosse o SAFT teria centenas de TAGs para representar cada caso específico. No outro dia referiu que já tinha a "multa" na fatura e o problema seria apenas a exportação da mesma em SAFT, tal como referi e ainda para mais em Angola onde a AGT é bastante rígida no layout de impressão + ainda mais rígida no mapeamento layout de impressão => dados do SAFT (querem ver a mesma coisa 1:1), ou seja SE tem a sua fatura correcta com a multa (em conformidade com a lei vigente em Angola) a imprimir num layout exigido pela AGT, está lá de forma bastante clara (layout) o que deve exportar em SAFT. Provavelmente o seu problema é como representar a multa na fatura? no ecran? base de dados? e layout! estando estes identificados e em conformidade com a lei, a exportação do SAFT é directa tal como de qualqer outro documento. Diria que a multa, será representada, como uma linha normal acrescentada ao documento.... provavelmente com IVA taxa normal!? ou isenta de IVA com o respectivo motivo justificativo de isenção... ou seja é a faturação de um artigo normal, com a sua descrição, com o seu imposto associado... em 1 ou mais unidades (várias multas)... com ou sem desconto (por exemplo a primeira multa pode ter uma redução)... a exportação desta linha em SAFT segue o mesmos critérios que as restantes linhas. espero ter ajudado, cps,
  8. Boa tarde, Parece ser um “não problema”, O SAFT é uma representação\exportação do documento fiscal (neste caso Fatura) num formato XML, documento esse que deve estar em conformidade com a lei fiscal. As linhas do documento (produtos, serviços, multas, etc) devem ter todos os campos em conformidade fiscal (produto, descrição, quantidade, impostos, preço, blá, blá blá, …) e exportam-se todas da mesma forma. Se tem uma fatura emitida e a mesma (cabeçalho, linhas, impostos e totais) está (estão) em conformidade fiscal, seja lá o que estiver a faturar (produtos, serviços, multas, etc) deve ser claro e directo a exportação dos mesmos em SAFT.
  9. Penso que será o ";" que tens no fim da mensagem quando há "hashAnterior": $message = "$invoiceDate;$systemEntryDate;$invoiceNo;$grossTotal;$hashAnterior->hash;"; Remove o ";" final: $message = "$invoiceDate;$systemEntryDate;$invoiceNo;$grossTotal;$hashAnterior->hash";
  10. Uma pessoa pediu ajuda e educamente até agradeceu antecipadamente pela ajuda. As vezes um exemplo vale mais que 1000 palavras. Bom fim de semana.
  11. Se dentro da tua função "Sign" conseguires por cá para fora esta informação, de 3 chamadas, pode ser que ajude a excluir problemas, ou a encontrar o problema: Console.WriteLine("now: {0}", DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss.fffZ")); Console.WriteLine("dataCriacao: {0}", dataCriacao.ToString("yyyy-MM-ddTHH:mm:ss.fffZ")); Console.WriteLine("retorno.Created (encrypt): {0}", retorno.Created); Console.WriteLine("retorno.Nonce (encrypt): {0}", retorno.Nonce);
  12. Tenho ideia que o ATCUD deve seguir o mesmo critério que usaste na elaboração da Identificação unica do documento (InvoiceNo, DocumentNumber, etc) Se tens a Identificação unica do documento como "NGT NGT2024/696" o ATCUD sera "AABABA-696" Se tens a Identificação unica do documento como "NGT NGT2024/0696" o ATCUD sera "AABABA-0696" Se tens a Identificação unica do documento como "NGT NGT2024/0000000000696" o ATCUD sera "AABABA-0000000000696"
  13. o que é que faz o teu "CreateEncryptor()"? porque "create" tantas vezes? Sign - CreateEncryptor(); //Gerar a Chave - retorno.Password = EncryptBytes -> CreateEncryptor() - retorno.Created = EncryptBytes -> CreateEncryptor() - retorno.Digest = EncryptBytes -> CreateEncryptor() - retorno.Nonce = GenerateNonce -> CreateEncryptor()
  14. antseq

    Jogo da string

    viva, já programei muito em c, c++, mas há anos que não tenho oportunidades de trabalhar nisto. do que vejo no teu código (posso estar errado): 1. fazes "malloc" de 4096, caso não seja possível, tentas fazer "realloc" de apenas 1024 >> salvo erro, tens de assignar o "str = realloc(…" 2. fazes um "fgets" com size 4096 fixo independentemente de acima teres conseguido 4096 ou apenas 1024 >> para não complicar, nesta fase, usa sempre 1024, 256, 126 em todos (as tantas 80 seria suficiente) 3. dizes que o user passa uma string e o programa deve embaralhar… a seguir usas "strtok" para partir a string delimitada por ";" >> o teu código está a pegar nisto str="a;b;c;d;e;f" e a transformar nisto copy="abcdef" É isto que pretendes? >> o user envia "uma" string com várias strings separadas por ";", tipo "não sei como;criar um jogo;boa tarde" >> queres separar e baralhar esta lista de strings ["não sei como", "criar um jogo", "boa tarde"] ? >> o user deve acertar em que? Ou apenas? >> o user envia UMA string com VÁRIOS caracteres, sem separadores, tipo "portugal" >> baralhas os caracteres "logtprua" >> o user tenta acertar em "logtprua" ?
  15. A mim não me incomoda em nada. Só referi o termo, ao contrário do entendido por forma de realmente ajudar (não entendido). Explico... Por “força bruta” assumo, à bruta, muitas (em quantidade) tentativas, forçadas a torto-e-a-direito, sem olhar a meios, o mais rápido possível até dar. Ao contrário do “normal”, pensado, planeado, envio, resposta OK ou NOK, volto a repetir, sim/não/talvez, o operador decide quando/manual?, automático?, espera algum tempo? Portanto (ajuda), não sei se no início por teres tido um azar dos azares de ocorrerem vários erros, saíste (por vias das circunstâncias) do caminho “normal” para outro de “força bruta” e dadas as características do mesmo (rápido, tentar-tentar-tentar-até dar, atalhando/reaproveitando algo entre tentativas, etc, etc, etc) não terá ficado alguma ponta solta que causa o grande número de rejeições e/ou derivado ao “azar” inicial. Consegues gerar algum tipo de “LOG”, tipo: 13-11-2024 17:40:10 | request | created: ?????????????, nonce: ?????????????? 13-11-2024 17:40:12 | response | fail motivo ???????? ou success Ou mais detalhado a ver se há alguma lógica nas rejeições? [penso que a informação ???????? acima não é confidencial]
  16. Tenho algo semelhante Empresas x Filiais x Terminais x Tipos de documentos e nenhum problema em comunicar apenas 1, múltiplos por Terminal, múltiplos por Filial, múltiplos por Empresa. Até os dispomos em grelha, multiselecção, no envio e a medida que são comunicados (e sem erro) podemos ver os ATCUDs a serem preenchidos na grelha em tempo real. Nunca tive erros... ou dá erro de conexão e não segue nada.. ou se envia o 1o os seguintes também seguem com sucesso. Nunca tive de usar a abordagem de "força bruta"... simplesmente segue 1, segue 1, segue 1, segue 1, ..., segue N e resultam em sucesso. Cada envio é distinto, sem qualquer optimização para "força bruta", sem qualquer reaproveitamento de valores ou variáveis do envio anterior.
  17. Não percebo como alguém pode usar "força bruta", "diversas vezes ao dia" até que "gere todas as chaves"!? 1) Quantas séries ainda tens sem ATCUD? 10000000000? 2) A "força bruta" não estará a repetir o mesmo "Nonce" em todas as chamadas? [Não se pode repetir "Nonce"s] 3) Muita gente tem a mania de forçar a data do observatório em vez de usar a data do sistema (ESTANDO esta última minimamente sincronizada com a hora legal). Ao menos os segundos da "hora" variam entre as chamadas ou é "força bruta" centenas de pedidos com a mesma data/hora?
  18. Já se falou aqui no forum sobre isso. Não é só 7 meses, salvo erro vai expirar no mesmo dia que o "ChaveCrifraPublicaAT", ou seja, ambos sem 28.06.2025 (o meu pedido em julho teve 11 meses) Suponho que por volta de Junho/2025 já deverá haver um novo "ChaveCrifraPublicaAT" e os nossos novos certificados já poderão ter um prazo até ao fim deste último.
  19. Este certificado é exclusivamente vosso/empresa, daí terem a .key e respectiva password do vosso lado. Transmitir os mesmos a terceiros não parece boa ideia.
  20. salvo erro, deverá ser este: openssl pkcs12 -export -in "51483XXX.cer" -inkey "51483XXX.key" -out "51483XXX.pfx" [vai pedir a [TUA] password para concluir o processo]
  21. Boa tarde, Vor repetir de outra forma, se seguiste as instruções no comando para gerar o teu certificado SSL há 2 outputs : "51483XXX.csr" e "51483XXX.key", Tens ambos os "51483XXX.csr" e "51483XXX.key" do teu lado, na tua máquina, são teus, ninguém te vai enviar. Já usaste o teu "51483XXX.csr" para enviar a AT, agora utiliza o teu "51483XXX.key" para completar o processo.
  22. Boa tarde, Quando geraste o teu certificado SSL, foram gerados 2 ficheiros: 51483XXX.csr e 51483XXX.key, Enviaste para a AT o 51483XXX.csr portanto ainda deves ter o respectivo 51483XXX.key do teu lado.
  23. Também tenho ideia que é apenas o certificado SSL do servidor e não o certificado da AT (chave publica) usada para encriptar. Como dizes alguns "explicitamente" ignoram a validação, outros deixam em modo "automatico" assumindo que as libraries e sistemas operativos envolvidos estão preparados para lidar com a conexão, ficando alguns casos raros em que não funcionará.
  24. Versão simplificada: Em princípio "N"ormal (caso geral) é o estado quando se cria um documento. - Não se cria de raiz um documento no estado (inicial) "A"nulado - Não se cria de raiz um documento no estado (inicial) "F"aturado Uma vez gravado/finalizado o documento no estado (inicial) "N"ormal: - Pode ser necessário mudar de estado "N" para "A"nulado - Pode ser necessário mudar de estado "N" para "F"aturado O passar de "N"ormal para "F"aturado, dependerá do tipo de documento e tipo de operação, não vou exemplificar todos, só vou mencionar alguns: FS("N") [existente] => transformada em FT [nova] Ou + NC("N") [nova] de FS("N") [existente] + FT("N") [nova] Ou FS("N"->"F") [existente] + FT("N") [nova] "idêntico" ("N"->"F") para outros documentos transformados/faturados CM("N") [existente] => transformada em FS [nova] ou FT [nova] Ou CM ("N"->"F") [existente] + FS ("N") [nova] Ou CM ("N"->"F") [existente] + FT ("N") [nova] CM("N") [existente] => transformada CM(N) [nova] ainda da mesma mesa/conta CM("N"->"F") [existente] + CM("N") [nova] (pedido pela AT numa determinada certificação, embora não tenha isto em outras certificações) + outros casos + outras operações + outros documentos, ver documentação do SAFT.
  25. Obrigado, entretanto consultando o ebalcao, responderam rápido e aconselham a usar o 'TaxBase' para o efeito. https://info.portaldasfinancas.gov.pt/pt/apoio_contribuinte/questoes_frequentes/Pages/faqs-00276.aspx 63-2958 “Valor tributável unitário” (TaxBase) até tinha sido a minha primeira ideia, mas como nem todos os SWs permitem forçar o TaxBase da linha "ignorando" os valores de UnitPrice, CreditAmount ou DebitAmount estava a ver se havia alguma alternativa como a apresentada por outras SW Houses que as tantas também não conseguem forçar o TaxBase. fica a informação para quem precisar.
×
×
  • Create New...

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.