Aliquota PIS/COFINS - FT0904C

Discussão em 'EMS , HCM e Totvs 11' iniciado por Marcos Frasson, Julho 26, 2023.

  1. Marcos Frasson

    Marcos Frasson Membro Participativo

    Bom Dia,

    Alguém sabe aonde fica armazenado o valor de Aliquota do PIS/COFINS do programa FT0904C?

    Arquivos Anexados:

  2. lcpaulino

    lcpaulino Membro Participativo

    Olá, se não mudaram:
    de-aliq-pis = dec(substring(it-nota-fisc.char-2,76,5))
    de-aliq-cof = dec(substring(it-nota-fisc.char-2,81,5)).
  3. Marcos Frasson

    Marcos Frasson Membro Participativo

    Teste aqui o campo dec(substring(it-nota-fisc.char-2,76,5)) reotnrou a Aliquota do PIS correto, mas o dec(substring(it-nota-fisc.char-2,81,5)) retornou um valor diferente do que está no FT0904C
  4. lcpaulino

    lcpaulino Membro Participativo

    Que pena que não funcionou..... eu tirei de um trecho do fonte oficial(antigo) do ft2100:
    assign
    overlay(it-nota-fisc.char-2,76,5) = substr(tt-it-docto.char-2,76,5) /* Aliquota PIS */
    overlay(it-nota-fisc.char-2,81,5) = substr(tt-it-docto.char-2,81,5) /* Aliquota COFINS */
    overlay(it-nota-fisc.char-2,86,5) = substr(tt-it-docto.char-2,86,5) /* Redu‡Æo PIS */
    overlay(it-nota-fisc.char-2,91,5) = substr(tt-it-docto.char-2,91,5) /* Redu‡Æo COFINS */
    overlay(it-nota-fisc.char-2,96,1) = substr(tt-it-docto.char-2,96,1) /* Tributa‡Æo PIS */
    overlay(it-nota-fisc.char-2,97,1) = substr(tt-it-docto.char-2,97,1). /* Tributa‡Æo COFINS */

    Talvez tenham criado alguma tabela relacionada a it-nota-fisc para gravar esses dados...

    Se depois vc conseguir... compartilha...
  5. lcpaulino

    lcpaulino Membro Participativo

    Dei uma "fuçada"... e pelo que eu encontrei ... a depender do caso a Datasul grava as alíquotas nas tabelas "reg-inf-compl" e "inf-compl" .. e tem uma api (cdapi995) para "ajudar" a retornar as alíquotas...

    Acho que isso vai resolver...

    DEFINE VARIABLE de-pc-pis AS DECIMAL NO-UNDO.
    DEFINE VARIABLE de-pc-cofins AS DECIMAL NO-UNDO.
    DEFINE VARIABLE h-cdapi995 AS HANDLE NO-UNDO.
    FOR FIRST nota-fiscal NO-LOCK
    WHERE nota-fiscal.cod-estabel = '01'
    AND nota-fiscal.serie = '2'
    AND nota-fiscal.nr-nota-fis = '0350000'
    ,
    EACH it-nota-fisc OF nota-fiscal NO-LOCK:
    ASSIGN de-pc-pis = 0
    de-pc-cofins = 0.
    IF NOT VALID-HANDLE(h-cdapi995) THEN
    RUN cdp/cdapi995.p PERSISTENT SET h-cdapi995.
    RUN recupera-aliquotas IN h-cdapi995 (INPUT "it-nota-fisc",
    INPUT it-nota-fisc.cod-estabel + "/" +
    it-nota-fisc.serie + "/" +
    it-nota-fisc.nr-nota-fis + "/" +
    STRING(it-nota-fisc.nr-seq-fat) + "/" +
    it-nota-fisc.it-codigo,
    OUTPUT de-pc-pis,
    OUTPUT de-pc-cofins).

    IF de-pc-pis = 0 THEN ASSIGN de-pc-pis = DECIMAL(substring(it-nota-fisc.char-2,76,5)).
    IF de-pc-cofins = 0 THEN ASSIGN de-pc-cofins = DECIMAL(substring(it-nota-fisc.char-2,81,5)).
    DISP
    nota-fiscal.nr-nota-fis
    it-nota-fisc.it-codigo
    it-nota-fisc.nr-seq-fat
    de-pc-pis
    de-pc-cofins
    WITH SCROLLABLE.
    END.
    IF VALID-HANDLE(h-cdapi995) THEN DO:
    RUN pi-finalizar in h-cdapi995.
    ASSIGN h-cdapi995 = ?.
    END.
  6. bootstrapmaster

    bootstrapmaster Moderator Moderador Equipe de Suporte

    eu tenho aqui ....
    Código:
            if substring(it-nota-fisc.char-2,96,1) = '1' then
               assign valorPisCofins = (it-nota-fisc.vl-tot-item * (dec(substring(it-nota-fisc.char-2,76,5)) / 100)).
            if substring(it-nota-fisc.char-2,97,1) = '1' then
               assign valorPisCofins = valorPisCofins + (it-nota-fisc.vl-tot-item * (dec(substring(it-nota-fisc.char-2,81,5)) / 100)).
    
    Porem eu parei de usar esses campos, se no seu datasul está configurado pra autualizar obrigações fiscais automatico, vai nas tabelas das obrigaçoes que os valores já estão lá todos calculados, só ler e mostrar.

Compartilhe esta Página