1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

  2. Anuncie Aqui ! Entre em contato fdantas@4each.com.br

[RESOLVIDO] Pis Cofins antes do faturamento.

Discussão em 'EMS , HCM e Totvs 11' iniciado por reissobr, Junho 25, 2015.

Status do Tópico:
Não esta aberto para novas mensagens.
  1. bootstrapmaster

    bootstrapmaster Moderator Moderador Equipe de Suporte

    Então tá, vamos escovar BITS ??????

    Esse trecho de programa é do bodi317ef.m15 .....
    Código:
               /* PIS/COFINS */
    
               SUBSTR(it-nota-fisc.char-2,76,5) = SUBSTR(wt-it-docto.char-2,76,5)
               SUBSTR(it-nota-fisc.char-2,81,5) = SUBSTR(wt-it-docto.char-2,81,5)
               SUBSTR(it-nota-fisc.char-2,86,5) = SUBSTR(wt-it-docto.char-2,86,5)
               SUBSTR(it-nota-fisc.char-2,91,5) = SUBSTR(wt-it-docto.char-2,91,5)
               SUBSTR(it-nota-fisc.char-2,96,1) = SUBSTR(wt-it-docto.char-2,96,1)
               SUBSTR(it-nota-fisc.char-2,97,1) = SUBSTR(wt-it-docto.char-2,97,1).
    
    Será que te ajuda ?
  2. reissobr

    reissobr Membro Participativo

  3. bootstrapmaster

    bootstrapmaster Moderator Moderador Equipe de Suporte

    esse é do bodi317im1br.m40
    Código:
        &if '{&bf_dis_versao_ems}' >= '2.06' &THEN
        ASSIGN tb-wt-it-docto.val-retenc-csll   = de-vl-csslretido
               tb-wt-it-docto.val-retenc-pis    = de-vl-pisretido
               tb-wt-it-docto.val-retenc-cofins = de-vl-cofinsretido.
        &else
        ASSIGN OVERLAY(tb-wt-it-docto.char-2,98,14)  = STRING(de-vl-csslretido,  "99999999.99999")
               OVERLAY(tb-wt-it-docto.char-2,112,14) = STRING(de-vl-pisretido,   "99999999.99999")
               OVERLAY(tb-wt-it-docto.char-2,126,14) = STRING(de-vl-cofinsretido,"99999999.99999").
        &endif
    
    E esse é do .m41
    Código:
            /* acerto PIS */
            if  dec(substr(tb-wt-it-docto.char-2,112,14)) > 0 then /* so se foi tributado */
                if  de-vl-pisr-a > 0 then
                    assign de-imposto = dec(substr(tb-wt-it-docto.char-2,112,14))
                           de-imposto = de-imposto + 0.01
                           de-vl-pisr-a = de-vl-pisr-a - 0.01
                           overlay(tb-wt-it-docto.char-2,112,14) = string(de-imposto,"99999999.99999").
                else
                    if  de-vl-pisr-a < 0 then
                        assign de-imposto = dec(substr(tb-wt-it-docto.char-2,112,14))
                               de-imposto = de-imposto - 0.01
                               de-vl-pisr-a = de-vl-pisr-a + 0.01
                               overlay(tb-wt-it-docto.char-2,112,14) = string(de-imposto,"99999999.99999").
    
            /* acerto COFINS */
            if  dec(substr(tb-wt-it-docto.char-2,126,14)) > 0 then /* so se foi tributado */
                if  de-vl-cofr-a > 0 then
                    assign de-imposto = dec(substr(tb-wt-it-docto.char-2,126,14))
                           de-imposto = de-imposto + 0.01
                           de-vl-cofr-a = de-vl-cofr-a - 0.01
                           overlay(tb-wt-it-docto.char-2,126,14) = string(de-imposto,"99999999.99999").
                else
                    if  de-vl-cofr-a < 0 then
                        assign de-imposto = dec(substr(tb-wt-it-docto.char-2,126,14))
                               de-imposto = de-imposto - 0.01
                               de-vl-cofr-a = de-vl-cofr-a + 0.01
                               overlay(tb-wt-it-docto.char-2,126,14) = string(de-imposto,"99999999.99999").
        end.
    
  4. bootstrapmaster

    bootstrapmaster Moderator Moderador Equipe de Suporte

    Olha, tem um jeito que dá um pouco de trabalho, mas vc pode tentar, é usando super procedures, vc pode criar um bodi317 seu, que todos os programas do sistema vão usa-la, e a sua carrega o programa original, as procedures que vc não declarar, serão executadas normalmente, como se fosse uma classe herdando de outra, e nas procedures que te interessa, vc cria no seu programa, faz um run SUPER pra rodar a procedure original e depois vc faz o seu codigo, os programas do datasul nem vão perceber a diferença, eu já fiz isso, mas não tenho mais o codigo, tem que estudar o assunto pra re-criar a situação
  5. bootstrapmaster

    bootstrapmaster Moderator Moderador Equipe de Suporte

    Olha, tem um jeito que dá um pouco de trabalho, mas vc pode tentar, é usando super procedures, vc pode criar um bodi317 seu, que todos os programas do sistema vão usa-la, e a sua carrega o programa original, as procedures que vc não declarar, serão executadas normalmente, como se fosse uma classe herdando de outra, e nas procedures que te interessa, vc cria no seu programa, faz um run SUPER pra rodar a procedure original e depois vc faz o seu codigo, os programas do datasul nem vão perceber a diferença, eu já fiz isso, mas não tenho mais o codigo, tem que estudar o assunto pra re-criar a situação.
    reissobr curtiu isso.
  6. bootstrapmaster

    bootstrapmaster Moderator Moderador Equipe de Suporte

    Procura algo relacionado a um comando mais ou menos assim ..... hProgramRunning:add-super-procedure(hClassInherited).
Status do Tópico:
Não esta aberto para novas mensagens.

Compartilhe esta Página