Jump to content
  1. Re: PHC GO GetNewInstanceFromReference

    JakeBass

    Portanto para usar esta função é necessário criar uma lista de KeyValueVO com os parâmetros. Neste caso estamos a criar uma fatura a partir de um dossier. O docId é o nº de série de destino, o origin é a entidade de fonte e o originstamp é o stamp do documento de fonte.

     

    Dim typedWS as new PHCWS.ftWS()
    Dim parameters As List(Of KeyValueVO) = New List(Of KeyValueVO)
     
    Dim val1 As KeyValueVO = New KeyValueVO()
    val1.key = "originstamp"
    val1.value="z202408061835061234567890"
    parameters.Add(val1)
     
    Dim val2 As KeyValueVO = New KeyValueVO()
    val2.key = "docId"
    val2.value = "1"
    parameters.Add(val2)
     
    Dim val3 As KeyValueVO = New KeyValueVO()
    val3.key = "origin"
    val3.value = "Bo"
    parameters.Add(val3)
     
    Dim result = typedWS.getNewInstanceFromReference(parameters)
    Dim ftBiz As SDKBiz = SDK.Business.CreateBiz("Ft")
    Dim invoice As FtVO = DirectCast(result.result(0), FtVO)
    ftBiz.save(invoice)

     

    • 4 replies
  2. Re: Utilizar Webservices da AT

    sergiosmvc

    eu optei por cada vez que um user vai usar o webservice vai ao meu servidor ver de existe um pfx mais recente. se existir faz o download antes da comunicação. com a chave publica at faz o mesmo...

    • 13,694 replies
  3. OpenAI starts offering a biology-tuned LLM

    M6

    GPT-Rosalind is an LLM trained on biology workflows, available in closed access.

    [Continua...]

    In Ars Technica, 16 de Abril de 2026

    • 0 replies
  4. New undersea cable cutter risks Internet’s backbone

    M6

    China cable-cutter demo coincides with more sabotage of subsea Internet cables.

    [Continua...]

    In Ars Technica, 16 de Abril de 2026

    • 0 replies
  5. Como fazer listagem pdf das faturas mensais ?

    Filipe Alves

    Estava a tentar criar uma tecla de utilizador para imprimir em pdf as facturas entre determinadas datas (para contabilidade digital).

    Mas o idutopdf é muito lento e bloqueia facilmente. Segue o meu código abaixo (criado com ajuda do Copilot) para ver se alguém tem uma ideia melhor !!! 
    Obrigado

     

    * ============================
    *  Pedir datas
    * ============================
    data_inicio = getNome("Data inicial das faturas:", Ctod(""), "Formato: DD.MM.AAAA")
    data_fim    = getNome("Data final das faturas:", Ctod(""), "Formato: DD.MM.AAAA")

    IF EMPTY(data_inicio) OR EMPTY(data_fim)
        MESSAGEBOX("Tem de indicar ambas as datas.")
        RETURN
    ENDIF

    IF data_inicio > data_fim
        MESSAGEBOX("A data inicial não pode ser superior à final.")
        RETURN
    ENDIF

    inicio_act = Dtos(data_inicio)
    fim_act    = Dtos(data_fim)

    * ============================
    *  Buscar faturas
    * ============================
    u_sqlexec("SELECT ftstamp, nmdoc, fno, nome FROM ft WHERE fdata BETWEEN '" + inicio_act + "' AND '" + fim_act + "'", "tmp_ft")

    IF !USED("tmp_ft") OR RECCOUNT("tmp_ft") = 0
        MESSAGEBOX("Não existem faturas no intervalo selecionado.")
        RETURN
    ENDIF

    * ============================
    *  Pasta dos PDFs
    * ============================
    cTempPath = "C:\TEMP\FATURAS\"
    IF !DIRECTORY(cTempPath)
        MD (cTempPath)
    ENDIF

    m_Attachments = ""

    * Nome exato do layout
    cLayout = "Fatura A4"   && <-- ALTERA AQUI PARA O TEU LAYOUT

    * ============================
    *  Loop principal
    * ============================
    SELECT tmp_ft
    nTotal = RECCOUNT()
    nAtual = 0

    SCAN
        DOEVENTS

        nAtual = nAtual + 1

        * Criar nome seguro
        cNomeCliente = STRTRAN(ALLTRIM(tmp_ft.nome), " ", "_")
        cNomeCliente = STRTRAN(cNomeCliente, "/", "-")
        cNomeCliente = STRTRAN(cNomeCliente, "\", "-")

        m_pdfPath = cTempPath + ;
                    ALLTRIM(tmp_ft.nmdoc) + "_" + ;
                    ALLTRIM(STR(tmp_ft.fno)) + "_" + ;
                    cNomeCliente + ".pdf"

        * ----------------------------
        * Medição de tempo
        * ----------------------------
        t1 = SECONDS()

        ImprimeDocumento("FT", tmp_ft.ftstamp, cLayout, "PDF", m_pdfPath)

        t2 = SECONDS()

        * Mostrar tempos
        ? "------ Documento " + TRANSFORM(nAtual) + " ------"
        ? "Tempo ImprimeDocumento(): " + TRANSFORM(t2 - t1)
        ?

        * Adicionar à lista
        m_Attachments = m_Attachments + m_pdfPath + ";"

        * Libertar memória ocasionalmente
        IF (nAtual % 20) = 0
            SYS(1104)
        ENDIF

    ENDSCAN

    IF RIGHT(m_Attachments, 1) = ";"
        m_Attachments = LEFT(m_Attachments, LEN(m_Attachments) - 1)
    ENDIF

    MESSAGEBOX("PDFs gerados em: " + cTempPath)
    RETURN
     

    • 0 replies
  6. Re: SAFT-PT: debate de dúvidas e ideias

    Solskajer
    Em 13/04/2026 às 10:29, ossadas disse:

    Boas,

    No link:
    https://info.portaldasfinancas.gov.pt/pt/apoio_ao_contribuinte/Outras_entidades/Suporte_tecnologico/Certificados_de_seguranca/Paginas/default.aspx

    Permite efetuar os downloads para testes:

    TesteWebservices.zip --> TesteWebservices.pfx  <-- OK

    ChaveCifraPublicaAT2027.zip --> pede password...

    Não encontro em lado algum essa indicação.

    Em que estou a errar?

     

    Obrigado.

     

    Penso que é CP2027.

    • 8,033 replies
  7. Re: Re-lançar a revista

    JakeBass

    Eu também estou disponível se quiserem definir as práticas de contribuição e temas a analisar.

    • 2 replies
  8. Re: Webservices - SDR "Volta"

    CJCV
    Em 10/04/2026 às 17:29, Cr4zyKingLi0n disse:

    Obrigado.

    • 5 replies
  1. Load more activity
×
×
  • 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.