Perguntas Existe paramêtro??
- michelp
- Desconectado
- Membro Especialista
Menos
Mais
- Postagens: 115
- Obrigados Recebidos: 0
12 anos 10 meses atrás #889
por michelp
Respondido por michelp no tópico Re: Existe paramêtro??
Lucas,
Veja se o que vc quer é isso
MV_PRZIRRF Número de dias para pagamento do IRRF apos a emissão do titulo 1
Espero que ajude...veja o anexo que estou te enviando que vai ajudar bastante em outras situações
Precisando estou as ordens
Att. Michel
Veja se o que vc quer é isso
MV_PRZIRRF Número de dias para pagamento do IRRF apos a emissão do titulo 1
Espero que ajude...veja o anexo que estou te enviando que vai ajudar bastante em outras situações
Precisando estou as ordens
Att. Michel
Por favor Acessar ou Registrar para participar da conversa.
- renatosever
- Desconectado
- Membro Júnior
Menos
Mais
- Postagens: 23
- Obrigados Recebidos: 0
10 anos 8 meses atrás #21145
por renatosever
Respondido por renatosever no tópico Existe paramêtro??
Caro, Luiz Alberto, minha necessidade é assim:
ISS (notas de entrada e de saida): dia 15 do mes seguinte;
CONTRIBUIÇÕES RETIDAS (emissão em 01-15 do mes): dia 31 do mesmo mes;
CONTRIBUIÇÕES RETIDAS (emissão 16-31 do mes): dia 15 do mes seguinte;
IRRF: dia 20 do mes seguinte;
INSS: dia 20 do mes seguinte;
O ISS quando o dia 15 do mes seguinte é no fim de semana, o pagamento é posterior, já para os demais impostos, quando a data de vencimento é no fim de semana, o pagamento antecipa.
Peguei este fonte seu para tentar ajusta-lo a necessidade, aqui, mas não consigo o sistema calcular corretamente.
segue, para caso você conseguir identificar o problema, eu desde ja agradeço.:
USER FUNCTION F050MDVC
Local dVencPR := ParamIXB[1]
Local cImposto := ParamIXB[2]
Local dEmissao := ParamIXB[3]
Local dEmis1 := ParamIXB[4]
Local dVencRea := ParamIXB[5]
/*ISS (notas de entrada e de saida): dia 15 do mes seguinte;
CONTRIBUIÇÕES RETIDAS (emissão em 01-15 do mes): dia 31 do mesmo mes;
CONTRIBUIÇÕES RETIDAS (emissão 16-31 do mes): dia 15 do mes seguinte;
IRRF: dia 20 do mes seguinte;
INSS: dia 20 do mes seguinte;*/
If AllTrim(Upper(cImposto)) == 'IRRF'
dDtVenc := MsSomaMes(dEmissao,1,.T.)
dDtVenc := CtoD('20/'+StrZero(Month(dDtVenc),2)+'/'+Str(Year(dDtVenc),4))
ElseIf AllTrim(Upper(cImposto)) == 'INSS'
dDtVenc := MsSomaMes(dEmissao,1,.T.)
dDtVenc := CtoD('20/'+StrZero(Month(dDtVenc),2)+'/'+Str(Year(dDtVenc),4))
ElseIf AllTrim(Upper(cImposto)) $ 'CSLL*PIS*COFINS'
If Day2Str(dEmissao) <= '15'
dDtVenc := Lastday(dEmissao,0)
Else
dDtVenc := MsSomaMes(dEmissao,1,.T.)
dDtVenc := CtoD('15/'+StrZero(Month(dDtVenc),2)+'/'+Str(Year(dDtVenc),4))
Endif
ElseIf AllTrim(Upper(cImposto)) == 'ISS'
alert ("ISS")
dDtVenc := MsSomaMes(dEmissao,1,.T.)
dDtVenc := CtoD('15/'+StrZero(Month(dDtVenc),2)+'/'+Str(Year(dDtVenc),4))
If Dow(dDtVenc) == 1
dDtVenc := dDtVenc+1
dDtVenc := DataValida(dDtVenc)
ElseIf Dow(dDtVenc) == 7
dDtVenc := dDtVenc+2
dDtVenc := DataValida(dDtVenc)
Endif
Endif
// Tratamento da Data para Não Cair aos Sabados, Domingos e Feriados
//O ISS quando o dia 15 do mes seguinte é no fim de semana, o pagamento é posterior,
//já para os demais impostos, quando a data de vencimento é no fim de semana, o pagamento antecipa.
If Dow(dDtVenc) == 1 .And. AllTrim(Upper(cImposto)) $ 'CSLL*PIS*COFINS*INSS*IRRF'
dDtVenc := dDtVenc-2
dDtVenc := DataValida(dDtVenc)
ElseIf Dow(dDtVenc) == 7 .And. AllTrim(Upper(cImposto)) $ 'CSLL*PIS*COFINS*INSS*IRRF'
dDtVenc := dDtVenc-1
dDtVenc := DataValida(dDtVenc)
Endif
RETURN dDtVenc
ISS (notas de entrada e de saida): dia 15 do mes seguinte;
CONTRIBUIÇÕES RETIDAS (emissão em 01-15 do mes): dia 31 do mesmo mes;
CONTRIBUIÇÕES RETIDAS (emissão 16-31 do mes): dia 15 do mes seguinte;
IRRF: dia 20 do mes seguinte;
INSS: dia 20 do mes seguinte;
O ISS quando o dia 15 do mes seguinte é no fim de semana, o pagamento é posterior, já para os demais impostos, quando a data de vencimento é no fim de semana, o pagamento antecipa.
Peguei este fonte seu para tentar ajusta-lo a necessidade, aqui, mas não consigo o sistema calcular corretamente.
segue, para caso você conseguir identificar o problema, eu desde ja agradeço.:
USER FUNCTION F050MDVC
Local dVencPR := ParamIXB[1]
Local cImposto := ParamIXB[2]
Local dEmissao := ParamIXB[3]
Local dEmis1 := ParamIXB[4]
Local dVencRea := ParamIXB[5]
/*ISS (notas de entrada e de saida): dia 15 do mes seguinte;
CONTRIBUIÇÕES RETIDAS (emissão em 01-15 do mes): dia 31 do mesmo mes;
CONTRIBUIÇÕES RETIDAS (emissão 16-31 do mes): dia 15 do mes seguinte;
IRRF: dia 20 do mes seguinte;
INSS: dia 20 do mes seguinte;*/
If AllTrim(Upper(cImposto)) == 'IRRF'
dDtVenc := MsSomaMes(dEmissao,1,.T.)
dDtVenc := CtoD('20/'+StrZero(Month(dDtVenc),2)+'/'+Str(Year(dDtVenc),4))
ElseIf AllTrim(Upper(cImposto)) == 'INSS'
dDtVenc := MsSomaMes(dEmissao,1,.T.)
dDtVenc := CtoD('20/'+StrZero(Month(dDtVenc),2)+'/'+Str(Year(dDtVenc),4))
ElseIf AllTrim(Upper(cImposto)) $ 'CSLL*PIS*COFINS'
If Day2Str(dEmissao) <= '15'
dDtVenc := Lastday(dEmissao,0)
Else
dDtVenc := MsSomaMes(dEmissao,1,.T.)
dDtVenc := CtoD('15/'+StrZero(Month(dDtVenc),2)+'/'+Str(Year(dDtVenc),4))
Endif
ElseIf AllTrim(Upper(cImposto)) == 'ISS'
alert ("ISS")
dDtVenc := MsSomaMes(dEmissao,1,.T.)
dDtVenc := CtoD('15/'+StrZero(Month(dDtVenc),2)+'/'+Str(Year(dDtVenc),4))
If Dow(dDtVenc) == 1
dDtVenc := dDtVenc+1
dDtVenc := DataValida(dDtVenc)
ElseIf Dow(dDtVenc) == 7
dDtVenc := dDtVenc+2
dDtVenc := DataValida(dDtVenc)
Endif
Endif
// Tratamento da Data para Não Cair aos Sabados, Domingos e Feriados
//O ISS quando o dia 15 do mes seguinte é no fim de semana, o pagamento é posterior,
//já para os demais impostos, quando a data de vencimento é no fim de semana, o pagamento antecipa.
If Dow(dDtVenc) == 1 .And. AllTrim(Upper(cImposto)) $ 'CSLL*PIS*COFINS*INSS*IRRF'
dDtVenc := dDtVenc-2
dDtVenc := DataValida(dDtVenc)
ElseIf Dow(dDtVenc) == 7 .And. AllTrim(Upper(cImposto)) $ 'CSLL*PIS*COFINS*INSS*IRRF'
dDtVenc := dDtVenc-1
dDtVenc := DataValida(dDtVenc)
Endif
RETURN dDtVenc
Por favor Acessar ou Registrar para participar da conversa.
- lalberto
- Desconectado
- Administrador
Menos
Mais
- Postagens: 3676
- Obrigados Recebidos: 6
10 anos 8 meses atrás - 10 anos 8 meses atrás #21149
por lalberto
Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br
Respondido por lalberto no tópico Existe paramêtro??
Blz Renato, então vc pode usar a função datavalida
exemplo
dDtVenc := CtoD('15/'+StrZero(Month(dDtVenc),2)+'/'+Str(Year(dDtVenc),4))
dDtVenc := DataValida(dDtVenc, .F.) // se dia 15 cair num sab dom ou feriado, então antecipa.
dDtVenc := CtoD('20/'+StrZero(Month(dDtVenc),2)+'/'+Str(Year(dDtVenc),4))
dDtVenc := DataValida(dDtVenc, .T.) // se dia 20 cair num sab dom ou feriado, então Avança.
exemplo
dDtVenc := CtoD('15/'+StrZero(Month(dDtVenc),2)+'/'+Str(Year(dDtVenc),4))
dDtVenc := DataValida(dDtVenc, .F.) // se dia 15 cair num sab dom ou feriado, então antecipa.
dDtVenc := CtoD('20/'+StrZero(Month(dDtVenc),2)+'/'+Str(Year(dDtVenc),4))
dDtVenc := DataValida(dDtVenc, .T.) // se dia 20 cair num sab dom ou feriado, então Avança.
Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br
Ultima edição: 10 anos 8 meses atrás por lalberto.
Por favor Acessar ou Registrar para participar da conversa.
- renatosever
- Desconectado
- Membro Júnior
Menos
Mais
- Postagens: 23
- Obrigados Recebidos: 0
10 anos 8 meses atrás #21247
por renatosever
Respondido por renatosever no tópico Existe paramêtro??
Obrigado Luiz Alberto, deu certo.
Por favor Acessar ou Registrar para participar da conversa.
- roberto.almeida
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 10
- Obrigados Recebidos: 0
9 anos 4 meses atrás #28573
por roberto.almeida
Respondido por roberto.almeida no tópico Existe paramêtro??
No meu caso precisei customizar o ponto de entrada F050MDVC para adequal o sistema às novas regras de retenção (PIS/COFINS/CSLL) - Lei
13.137/2015, segue o fonte:
#Include "Totvs.ch"
#Include "Protheus.ch"
#Include "Rwmake.ch"
User function F050MDVC()
Local dNextDay := ParamIxb[1] // Data de vencimento do imposto calculada pelo sistema.
Local cIMposto := ParamIxb[2] // Imposto - (IRRF, PIS, COFINS, ...)
Local dEmissao := ParamIxb[3] // Data de emissão do título principal
Local dEmis1 := ParamIxb[4] // E2_EMIS1 do título principal
Local dVencRea := ParamIxb[5] // Data de vencimento do título principal
Local nNextMes := Month(dVencRea) + 1
If AllTrim(Upper(cImposto)) $ "PIS,CSLL,COFINS" //Calcula data 20 do próximo mes
dNextDay := CTOD("20/" + Iif(nNextMes == 13, "01", StrZero(nNextMes,2)) + "/" + Substr(Str(Iif(nNextMes == 13, Year(dVencRea) + 1, Year(dVencRea))), 2))//Acho o ultimo dia util do periodo desejado
dNextday := DataValida(dNextday,.F.)
EndIf
Return( dNextDay )
13.137/2015, segue o fonte:
#Include "Totvs.ch"
#Include "Protheus.ch"
#Include "Rwmake.ch"
User function F050MDVC()
Local dNextDay := ParamIxb[1] // Data de vencimento do imposto calculada pelo sistema.
Local cIMposto := ParamIxb[2] // Imposto - (IRRF, PIS, COFINS, ...)
Local dEmissao := ParamIxb[3] // Data de emissão do título principal
Local dEmis1 := ParamIxb[4] // E2_EMIS1 do título principal
Local dVencRea := ParamIxb[5] // Data de vencimento do título principal
Local nNextMes := Month(dVencRea) + 1
If AllTrim(Upper(cImposto)) $ "PIS,CSLL,COFINS" //Calcula data 20 do próximo mes
dNextDay := CTOD("20/" + Iif(nNextMes == 13, "01", StrZero(nNextMes,2)) + "/" + Substr(Str(Iif(nNextMes == 13, Year(dVencRea) + 1, Year(dVencRea))), 2))//Acho o ultimo dia util do periodo desejado
dNextday := DataValida(dNextday,.F.)
EndIf
Return( dNextDay )
Por favor Acessar ou Registrar para participar da conversa.
Tempo para a criação da página:0.139 segundos