FISA002
FISA002
FISA002
CH"
#INCLUDE "FWMBROWSE.CH"
#INCLUDE "FWMVCDEF.CH"
#INCLUDE "FISA002.CH"
//-------------------------------------------------------------------
/*/{Protheus.doc} FISA002
/*/
//-------------------------------------------------------------------
Function FISA002(lLoad,lApurConso,cReg,lAutomato)
DEFAULT lApurConso := '1'
DEFAULT cReg := ''
DEFAULT lAutomato := .F.
STATIC PIS := '1'
STATIC COF := '2'
STATIC NAOCUMULAT := '1'
STATIC CUMULAT := '2'
PRIVATE CKZT := ''
PRIVATE CKZR := ''
PRIVATE CKZD := ''
PRIVATE CKZN := ''
PRIVATE CKZDC := ''
PRIVATE CALIAS004 := ''
PRIVATE LCARREGA := lLoad
PRIVATE CCONSOL := Iif(lApurConso,'1','2')
PRIVATE CDESCRREG := DescrReg(cReg)
If !lAutomato
//Chama a View da rotina diretamente
FWExecView('Filial: ' + FWGETCODFILIAL + ' - ' +SM0-
>M0_FILIAL,'FISA002', MODEL_OPERATION_UPDATE,, { || .T. }, { || ASA001GDUP() })
EndIf
Return
//-------------------------------------------------------------------
/*/{Protheus.doc} MenuDef
/*/
//-------------------------------------------------------------------
Static Function MenuDef()
Return FWMVCMenu( 'FISA002' )
//-------------------------------------------------------------------
/*/{Protheus.doc} ModelDef
Local oModel
Local aArray := {}
Local oStruABA := FWFormStruct( 1, 'CKR')
Local oStruABA1 := x001Struct(1,'ABA1')
Local oStruABA2 := x001Struct(1,'ABA2')
Local oStruABA3 := x001Struct(1,'ABA3')
Local oStruABA4 := x001Struct(1,'ABA4')
Local oStruABA5 := x001Struct(1,'ABA5')
Local oStruABA5A := x001Struct(1,'ABA5A')
Local oStruABA6 := x001Struct(1,'ABA6')
Local oStruABA7 := x001Struct(1,'ABA7')
Local bLoadABA1 := { || a002LdGrid('ABA1',@aArray) }
Local bLoadABA2 := { || a002LdGrid('ABA2',@aArray) }
Local bLoadABA3 := { || a002LdGrid('ABA3',@aArray) }
Local bLoadABA4 := { || a002LdGrid('ABA4',@aArray) }
Local bLoadABA5 := { || a002LdGrid('ABA5',@aArray) }
Local bLoadABA5A := { || a002LdGrid('ABA5A',@aArray) }
Local bLoadABA6 := { || a002LdGrid('ABA6',@aArray) }
Local bLoadABA7 := { || a002LdGrid('ABA7',@aArray) }
Local bDetalhe := { |oModelGrid, nLine, cAction, cField|
ASA01LPRE(oModelGrid, nLine, cAction, cField,aArray) }
Local lDetTotCST := { |oModelGrid, nLine, cAction, cField|
ISA002CST(oModelGrid, nLine, cAction, cField) }
oModel:SetPrimaryKey( { 'ABA1_CMP1'} )
oModel:SetDescription( 'TOTVS')
Return oModel
//-------------------------------------------------------------------
/*/{Protheus.doc} ViewDef
/*/
//-------------------------------------------------------------------
Static Function ViewDef()
Local oModel := FWLoadModel( 'FISA002' )
Local oView := FWFormView():New()
Local oStruABA1 := x001Struct(2, 'ABA1')
Local oStruABA2 := x001Struct(2, 'ABA2')
Local oStruABA3 := x001Struct(2, 'ABA3')
Local oStruABA4 := x001Struct(2, 'ABA4')
Local oStruABA5 := x001Struct(2, 'ABA5')
Local oStruABA5A := x001Struct(2, 'ABA5A')
Local oStruABA6 := x001Struct(2, 'ABA6')
Local oStruABA7 := x001Struct(2, 'ABA7')
Local cDescr := 'Per�odo:' + MesExtenso(mv_par01) + '/' +
Str(year(mv_par01),4) +' - '
Local cVersao := GetVersao(.F.)
oView:SetModel( oModel )
//Cria View para cada grid
oView:AddGrid( 'VIEW_ABA1' ,oStruABA1 ,'MODEL_ABA1' )
oView:AddGrid( 'VIEW_ABA2' ,oStruABA2 ,'MODEL_ABA2' )
oView:AddGrid( 'VIEW_ABA3' ,oStruABA3 ,'MODEL_ABA3' )
oView:AddGrid( 'VIEW_ABA4' ,oStruABA4 ,'MODEL_ABA4' )
oView:AddGrid( 'VIEW_ABA5' ,oStruABA5 ,'MODEL_ABA5' )
oView:AddGrid( 'VIEW_ABA5A',oStruABA5A ,'MODEL_ABA5A' )
oView:AddGrid( 'VIEW_ABA6' ,oStruABA6 ,'MODEL_ABA6' )
oView:AddGrid( 'VIEW_ABA7' ,oStruABA7 ,'MODEL_ABA7' )
//Cria a pasta
oView:CreateFolder( 'PASTAS' )
//Cria as abas
oView:AddSheet( 'PASTAS', 'ABA01', STR0002 )//'OPERA��ES DE SA�DAS'
oView:AddSheet( 'PASTAS', 'ABA02', STR0003 )//'OPERA��ES DE ENTRADAS'
oView:AddSheet( 'PASTAS', 'ABA03', STR0004 )//'COMPOSI��O DOS D�BITOS'
oView:AddSheet( 'PASTAS', 'ABA04', STR0005 )//'COMPOSI��O DOS CR�DITOS'
oView:AddSheet( 'PASTAS', 'ABA05', STR0006 )//'APURA��O'
oView:AddSheet( 'PASTAS', 'ABA06', STR0007 )//'PIS-FOLHA DE SAL�RIO'
oView:AddSheet( 'PASTAS', 'ABA07', STR0008 )//'CPRB'
//Cria BOX
oView:CreateHorizontalBox( 'TELA1', 100,,, 'PASTAS', 'ABA01' )
oView:CreateHorizontalBox( 'TELA2', 100,,, 'PASTAS', 'ABA02' )
oView:CreateHorizontalBox( 'TELA3', 100,,, 'PASTAS', 'ABA03' )
oView:CreateHorizontalBox( 'TELA4', 100,,, 'PASTAS', 'ABA04' )
oView:CreateHorizontalBox( 'TELA5', 65 ,,, 'PASTAS', 'ABA05' )
oView:CreateHorizontalBox( 'TELA5E',2 ,,, 'PASTAS', 'ABA05' )
oView:CreateHorizontalBox( 'TELA5A',33 ,,, 'PASTAS', 'ABA05' )
oView:CreateHorizontalBox( 'TELA6', 100,,, 'PASTAS', 'ABA06' )
oView:CreateHorizontalBox( 'TELA7', 100,,, 'PASTAS', 'ABA07' )
//INCLUI CHAMADA DA FUN��O ATUALIZA GRID, PARA ATUALIZAR OS VALORES AP�S EDI��O DE
AJUSTES MANUAIS
oView:SetFieldAction( 'ABA3_CMP2', { || AtualizaGrid() } )
oView:SetFieldAction( 'ABA3_CMP3', { || AtualizaGrid() } )
oView:SetFieldAction( 'ABA4_CMP2', { || AtualizaGrid() } )
oView:SetFieldAction( 'ABA4_CMP3', { || AtualizaGrid() } )
IF cVersao == '12'
oView:SetViewProperty("*", "ENABLENEWGRID")
oView:SetViewProperty( "*", "GRIDNOORDER")
EndIF
Return oView
//-------------------------------------------------------------------
/*/{Protheus.doc} AtualizaGrid
Fun��o que ir� atualizar as abas considerando os ajustes manuais na tela
efetuados pelo usu�rio.
@author Erick G. Dias
@since 07/07/2014
@version 11.80
/*/
//-------------------------------------------------------------------
Static Function AtualizaGrid()
//-----------------------------------------
//AJUSTE NA ABA DOS D�BITOS N�O CUMULATIVOS
//-----------------------------------------
aArea := GetArea()
oDebito:= COMPDEBITO():New()
oDebito:SetConsol(CCONSOL)
oDebito:SetDtIni(MV_PAR01)
oDebito:LoadDebito(NAOCUMULAT)
For nI := 1 To oModelZA2:Length()
oModelZA2:GoLine( nI )
If nI == 5 //Ajuste de acr�sciumo
oModelZA2:SetValue( 'ABA3_CMP2' ,oDebito:GetAjuAcre(PIS) )
oModelZA2:SetValue( 'ABA3_CMP3' , oDebito:GetAjuAcre(COF))
ElseIF nI == 6 //Ajuste de redu��o
oModelZA2:SetValue( 'ABA3_CMP2' , oDebito:GetAjuRed(PIS))
oModelZA2:SetValue( 'ABA3_CMP3' , oDebito:GetAjuRed(COF))
ElseIF nI == 9//Valor total dos d�bitos
oModelZA2:SetValue( 'ABA3_CMP2' , oDebito:GetValDisp(PIS))
oModelZA2:SetValue( 'ABA3_CMP3' , oDebito:GetValDisp(COF))
EndIF
Next
oDebito := Nil
RestArea(aArea)
oModelZA2:GoLine( 1 )
oview:Refresh( 'VIEW_ABA3' )
//-----------------------------------------
//AJUSTE NA ABA DOS D�BITOS CUMULATIVOS
//-----------------------------------------
aArea := GetArea()
oDebito:= COMPDEBITO():New()
oDebito:SetConsol(CCONSOL)
oDebito:SetDtIni(MV_PAR01)
oDebito:LoadDebito(CUMULAT)
For nI := 1 To oModelZA2:Length()
oModelZA2:GoLine( nI )
If nI == 14 //Ajuste de acr�sciumo
oModelZA2:SetValue( 'ABA3_CMP2' ,oDebito:GetAjuAcre(PIS) )
oModelZA2:SetValue( 'ABA3_CMP3' , oDebito:GetAjuAcre(COF))
ElseIF nI == 15 //Ajuste de redu��o
oModelZA2:SetValue( 'ABA3_CMP2' , oDebito:GetAjuRed(PIS))
oModelZA2:SetValue( 'ABA3_CMP3' , oDebito:GetAjuRed(COF))
ElseIF nI == 18 //valor do d�bito cumulativo
oModelZA2:SetValue( 'ABA3_CMP2' , oDebito:GetValDisp(PIS))
oModelZA2:SetValue( 'ABA3_CMP3' , oDebito:GetValDisp(COF))
EndIF
Next
oDebito := Nil
RestArea(aArea)
oModelZA2:GoLine( 1 )
oview:Refresh( 'VIEW_ABA3' )
//--------------------------
//AJUSTE NA ABA DOS CR�DITOS
//--------------------------
For nI := 1 To oModelZA2:Length()
oModelZA2:GoLine( nI )
If nI == 10 //Ajuste de acr�sciumo
oModelZA2:SetValue( 'ABA4_CMP2' , oCredito:GeTAjuAcre(PIS) )
oModelZA2:SetValue( 'ABA4_CMP3' , oCredito:GeTAjuAcre(COF))
ElseIF nI == 11 //Ajuste de redu��o
oModelZA2:SetValue( 'ABA4_CMP2' , oCredito:GeTAjuRed(PIS))
oModelZA2:SetValue( 'ABA4_CMP3' , oCredito:GeTAjuRed(COF))
ElseIF nI == 13//Valor total dos cr�ditos
oModelZA2:SetValue( 'ABA4_CMP2' , oCredito:GeTVlDisp(PIS))
oModelZA2:SetValue( 'ABA4_CMP3' , oCredito:GeTVlDisp(COF))
EndIF
Next
oModelZA2:GoLine( 1 )
oview:Refresh( 'VIEW_ABA4' )
oCredito := Nil
RestArea(aArea)
//---------------------------------------
//ATUALIZA OS VALORES DA ABA DE APURA��O
//--------------------------------------
aArea := GetArea()
oApurPIS := APURPISCOF():New()
oApurPIS:SetConsol(CCONSOL)
oApurPIS:SetRegime(MV_PAR06)
oApurPIS:SetDtIni(MV_PAR01)
oApurPIS:SetGrvDup('1') //Indica que ir� atualizar a tabela de
duplicata/recolhimento considertando os valores digitados
oApurPIS:setPCrdFut(!MV_PAR06 == 3) //Somente ir� processsar valores de cr�ditos
para pr�ximo per�odo se n�o for regime de caixa
oApurPIS:LoadApurPC(PIS)
oApurCof := APURPISCOF():New()
oApurCof:SetConsol(CCONSOL)
oApurCof:SetRegime(MV_PAR06)
oApurCof:SetDtIni(MV_PAR01)
oApurCof:SetGrvDup('1')
oApurCof:setPCrdFut(!MV_PAR06 == 3) //Somente ir� processsar valores de cr�ditos
para pr�ximo per�odo se n�o for regime de caixa
oApurCof:LoadApurPC(COF)
oModelZA2:GoLine( 1 )
oview:Refresh( 'VIEW_ABA5' )
oApurPis := Nil
oApurCof := Nil
RestArea(aArea)
//-------------------------------------------
//ATUALIZA OS VALORES DA ABA DE RECOLHIMENTO
//------------------------------------------
aArea := GetArea()
oGuias := APURPISCOF():New()
oGuias:SetConsol(CCONSOL)
oGuias:SetRegime(MV_PAR06)
oGuias:SetDtIni(MV_PAR01)
oGuias:LoadRecolh()
EndIF
Next nI
oModelZA2:GoLine( 1 )
oview:Refresh( 'VIEW_ABA5A' )
oGuias := Nil
RestArea(aArea)
Return
//-------------------------------------------------------------------
/*/{Protheus.doc} x002Tabs
/*/
//-------------------------------------------------------------------
Function a002Tabs(cTabela)
Local aCampos := {}
//aAdd(aCampos, {/*T�tulo*/,/*Nome do
campo*/,/*Tipo*/,/*Tamanho*/,/*Decimal*/,/*Ordem*/,/*Array com
help*/,/*Picture*/,/*Campo edit�ve�*/})
Do Case
EndCase
Return aCampos
//-------------------------------------------------------------------
/*/{Protheus.doc} a002LdGrid
/*/
//-------------------------------------------------------------------
Static Function a002LdGrid(cTabela,aArray)
Local aLoad := {}
Local aGuias := {}
Local nCont := 0
Local nX := 0
Local cCstTrib := '01/02/03'
Local cCstNTrib := '04/05/06/07/08/09/49'
Local cSeqTrib := '4'
Local lNewProc := findfunction("ISA001NDIF") .AND. ISA001NDIF()
Local oSaiCST
Local oEntCST
Local oDebito
Local oCredito
Local oApurPIS
Local oApurCof
Local oGuias
Local oPisFolha
Local oCPRB
Local i := 0
Local aDados := {}
Do Case
Case cTabela == 'ABA1'
oDebito:= nil
oDebito:= COMPDEBITO():New() //Cria Objeto da Classe COMPDEBITO
oDebito:SetConsol(CCONSOL)
oDebito:SetDtIni(MV_PAR01) //Passa data de refer�ncia
oDebito:LoadDebito(CUMULAT) //Buscar d�bitos Cumulativos
//---------------------------------
// CRIA OBJETO DE PIS PARA APURA��O
//---------------------------------
//Cria objeto da apura��o para o PIS
oApurPIS := APURPISCOF():New()
oApurPIS:SetConsol(CCONSOL)
//Passa data inicial
oApurPIS:SetRegime(MV_PAR06)
oApurPIS:SetDtIni(MV_PAR01)
oApurPIS:SetGrvDup(iif(LCARREGA,'','1'))
// oApurPIS:SetGrvDup(iif(LCARREGA,'','1'))
//Apura o PIS do per�odo
//Carrega as informa��es no objeto
oApurPIS:setPCrdFut(!MV_PAR06 == 3) //Somente ir� processsar valores de
cr�ditos para pr�ximo per�odo se n�o for regime de caixa
oApurPIS:setSeqTrib(cSeqTrib)
oApurPIS:LoadApurPC(PIS)
//------------------------------------
// CRIA OBJETO DA COFINS PARA APURA��O
//------------------------------------
//Cria objeto da apura��o para a COFINS
oApurCof := APURPISCOF():New()
oApurCof:SetConsol(CCONSOL)
//Passa data inicial
oApurCof:SetRegime(MV_PAR06)
oApurCof:SetDtIni(MV_PAR01)
oApurCof:SetGrvDup(iif(LCARREGA,'','1'))
// oApurCof:SetGrvDup(iif(LCARREGA,'','1'))
//Apura o PIS do per�odo
//Carrega as informa��es no objeto
oApurCof:setPCrdFut(!MV_PAR06 == 3) //Somente ir� processsar valores de
cr�ditos para pr�ximo per�odo se n�o for regime de caixa
oApurCof:setSeqTrib(oApurPIS:getSeqTrib())
oApurCof:LoadApurPC(COF)
//---------------------------------------------------------------------
---------------------
// Insere informa��es na quinta tela (parte superior)da apura��o -
Apura��o de PIS e COFINS
//---------------------------------------------------------------------
---------------------
aAdd( aLoad, { nX++, { '',,} } )
aAdd( aLoad, { nX++, { Space(35)+STR0059,,} } )//'-- Regime n�o
Cumulativo --'
aAdd( aLoad, { nX++, { '',,} } )
aAdd( aLoad, { nX++, { STR0083, oApurPIS:GetVlContr(NAOCUMULAT)
, oApurCof:GetVlContr(NAOCUMULAT)} } )//'Valor Total da Contribui��o'
aAdd( aLoad, { nX++, { STR0084, oApurPIS:GetCrdAnt(NAOCUMULAT)
, oApurCof:GetCrdAnt(NAOCUMULAT)} } )//'Valor do Cr�dito Descontado - Per�odo
Anterior'
aAdd( aLoad, { nX++, { STR0085, oApurPIS:GetCrdAtu(NAOCUMULAT)
, oApurCof:GetCrdAtu(NAOCUMULAT)} } )//'Valor do Cr�dito Descontado - Per�odo
Atual'
aAdd( aLoad, { nX++, { STR0086, oApurPIS:GetConDev(NAOCUMULAT)
, oApurCof:GetConDev(NAOCUMULAT)} } )//'Valor da Contribui��o Devida'
aAdd( aLoad, { nX++, { STR0087, oApurPIS:GetRetAnt(NAOCUMULAT)
, oApurCof:GetRetAnt(NAOCUMULAT)} } )//'Valor Retido na Fonte - Per�odo
Anterior'
aAdd( aLoad, { nX++, { STR0088, oApurPIS:GetRetAtu(NAOCUMULAT)
, oApurCof:GetRetAtu(NAOCUMULAT)} } )//'Valor Retido na Fonte - Per�odo
Atual'
aAdd( aLoad, { nX++, { STR0089, oApurPIS:GetOutDed(NAOCUMULAT)
, oApurCof:GetOutDed(NAOCUMULAT)} } )//'Outras Dedu��es no Per�odo'
aAdd( aLoad, { nX++, { STR0090, oApurPIS:GetVlRecol(NAOCUMULAT)
, oApurCof:GetVlRecol(NAOCUMULAT)} } )//'Valor da Contribui��o N�o Cumulativa
a Recolher'
aAdd( aLoad, { nX++, { '',,} } )
aAdd( aLoad, { nX++, { STR0091 + ' + ', oApurPIS:GetSldCrd(NAOCUMULAT)
, oApurCof:GetSldCrd(NAOCUMULAT)} } )//'Saldo de Cr�dito a Transportar para
pr�ximo per�odo'
aadd(aArray,{cTabela,nx,STR0062,'7'})
aAdd( aLoad, { nX++, { STR0092 + ' + ', oApurPIS:GetSldRet(NAOCUMULAT)
, oApurCof:GetSldRet(NAOCUMULAT)} } )//'Saldo de Reten��o a Transportar para
pr�ximo per�odo'
aadd(aArray,{cTabela,nx,STR0062,'8'})
aAdd( aLoad, { nX++, { '',,} } )
aAdd( aLoad, { nX++, { Space(35)+STR0060,,} } )//'-- Regime Cumulativo
--'
aAdd( aLoad, { nX++, { '',,} } )
aAdd( aLoad, { nX++, { STR0093, oApurPIS:GetVlContr(CUMULAT)
, oApurCof:GetVlContr(CUMULAT)} } )//'Valor Total da Contribui��o'
aAdd( aLoad, { nX++, { STR0094, oApurPIS:GetRetAnt(CUMULAT)
, oApurCof:GetRetAnt(CUMULAT)} } )//'Valor Retido na Fonte - Per�odo
Anterior'
aAdd( aLoad, { nX++, { STR0095, oApurPIS:GetRetAtu(CUMULAT)
, oApurCof:GetRetAtu(CUMULAT)} } )//'Valor Retido na Fonte - Per�odo Atual'
aAdd( aLoad, { nX++, { STR0096, oApurPIS:GetOutDed(CUMULAT)
, oApurCof:GetOutDed(CUMULAT)} } )//'Outras Dedu��es no Per�odo'
aAdd( aLoad, { nX++, { STR0097, oApurPIS:GetVlRecol(CUMULAT)
, oApurCof:GetVlRecol(CUMULAT)} } )//'Valor da Contribui��o N�o Cumulativa a
Recolher'
aAdd( aLoad, { nX++, { '',,} } )
aAdd( aLoad, { nX++, { STR0098 + ' + ', oApurPIS:GetSldRet(CUMULAT)
, oApurCof:GetSldRet(CUMULAT)} } )//'Saldo de Reten��o a Transportar
para pr�ximo per�odo'
aadd(aArray,{cTabela,nx,STR0062,'9'})
aAdd( aLoad, { nX++, { '',,} } )
//------------------------------------
// CRIA OBJETO DA COFINS PARA APURA��O
//------------------------------------
//Cria objeto da apura��o para a COFINS
oGuias := APURPISCOF():New()
oGuias:SetConsol(CCONSOL)
//Passa data inicial
oGuias:SetRegime(MV_PAR06)
oGuias:SetDtIni(MV_PAR01)
//Carrega as informa��es no objeto
aGuias := oGuias:LoadRecolh()
//---------------------------------------------------------------------
---------------------
// Insere informa��es na quinta tela (parte inferior)da apura��o -
Apura��o de PIS e COFINS
//---------------------------------------------------------------------
---------------------
aAdd( aLoad, { nX++, { '',,,} } )
aAdd( aLoad, { nX++, {Space(15)+ STR0099,,,} } )//'-- Recolhimento dos
Tributos --'
aAdd( aLoad, { nX++, { '',,,} } )
//-----------------------------------------------------
// Insere informa��es na quinta tela (parte inferior) da apura��o -
CPRB
//-----------------------------------------------------
if oCPRB:GetCPRBPag() > 0
aDados := oCPRB:GetaCodRec()
for i := 1 to len(aDados)
nCont += 1
next
endif
oPisFolha := APURPISCOF():New()
oPisFolha:SetConsol(CCONSOL)
oPisFolha:SetRegime(MV_PAR06)
oPisFolha:SetDtIni(MV_PAR01)
oPisFolha:LoadPisFol()
//---------------------------------------------------------------------
-
// Insere informa��es na sexta tela da apura��o - PIS - Folha de
sal�rio
//---------------------------------------------------------------------
-
aAdd( aLoad, { nX++, { '',} } )
aAdd( aLoad, { nX++, { STR0104, oPisFolha:GetTotFolh()} } )//'Valor
Total da Folha de Sal�rio'
aAdd( aLoad, { nX++, { STR0105, oPisFolha:GetExlFolh()} } )//'Valor
Total da Exclus�o da Base de C�lculo'
aAdd( aLoad, { nX++, { STR0106, oPisFolha:GetBCFolha()} } )//'Valor
Total da Base de C�lculo'
aAdd( aLoad, { nX++, { STR0107, oPisFolha:GetPisFolh()} } )//'Valor de
PIS a Recolher'
aAdd( aLoad, { nX++, { '',} } )
//-----------------------------------------------------
// Insere informa��es na s�tima tela da apura��o - CPRB
//-----------------------------------------------------
aAdd( aLoad, { nX++, { '',} } )
Return( aLoad )
IF cCodReg == 1
cRet+= STR0138//'N�o Cumulativo - '
ElseIF cCodReg == 2
cRet+= STR0139//'Cumulativo - '
ElseIF cCodReg == 3
cRet+= STR0140//'Caixa - '
ElseIF cCodReg == 4
cRet+= STR0141//'Cumulativo/N�o Cumulativo - '
EndIF
Return cRet
If cAba == 'ABA1'
oModelABA := oModel:GetModel('MODEL_ABA1')
cCst := SubStr(oModelABA:GetValue('ABA1_CMP1'),1,2)
ElseIF cAba == 'ABA2'
oModelABA := oModel:GetModel('MODEL_ABA2')
cCst := SubStr(oModelABA:GetValue('ABA2_CMP1'),1,2)
EndIF
IF cCst
$'01/02/03/04/05/06/07/08/09/49/50/51/52/53/54/55/56/60/61/62/63/64/65/66/67/70/71/
72/73/74/75/98'
Return .F.
//-------------------------------------------------------------------
/*/{Protheus.doc} ASA01LPRE
Fun��o que faz a pre valida��o da linha do grid, ir� chamar a tela
para exibir o detalhamento dos valores considerados para compor
os ajustes.
/*/
//-------------------------------------------------------------------
Function ASA01LPRE( oModelGrid, nLinha, cAcao, cCampo,aArray )
Local lAlteracao := .F.
Local lRet := .F.
Local cAba := SubStr(cCampo,1,4)
Local cCpo := SubStr(cCampo,6,5)
Local cPisCOf := ''
Local cDebCred := ''
local cTexto := ''
Local cFiltroBrw := ''
Local cAlias := ''
Local cDescr := STR0142//'Ajustes '
Local cFiltroAux := DTOS(MV_PAR01)
Local nPos := 0
Local nVal := 0
Local oBrowse
Local oCompCred
Local oDebito
Local aArea := {}
Local oModel := FWModelActive()
IF 'CMP2' $ cCpo
CKZT := '1'
cDescr += STR0149//' - PIS'
cFiltroAux+='1'
ElseIF 'CMP3' $ cCpo
CKZT := '2'
cDescr += STR0150//' - COFINS'
cFiltroAux+='2'
EndIF
CKZDC := cDebCred
CKZD:= cDescr
cFiltroAux+=CKZR
EndIF
Case aArray[nPos][4] =='8' // Saldo de reten��o N�o
Cumulativo para pr�ximo per�odo
If CKZT == '1'
cFiltroBrw :='FV_FILIAL == "' + xFilial('SFV')
+ '"'
cFiltroBrw += '.AND. FV_PER =="' +
cvaltochar(strzero(month(MV_PAR01 ),2)) + cvaltochar(year(MV_PAR01 )) + '" .and.
FV_TPREG == "1"'
If CCONSOL == '1'
cFiltroBrw += ' .AND. FV_CONSOL =="'
+CCONSOL + '" '
Else
cFiltroBrw += ' .AND. FV_CONSOL <>"1" '
EndIF
EndIF
EndIF
If CKZT == '1'
cFiltroBrw += ' .AND. CL8_TRIB == "1"'
cDescr := STR0162//'Visualiza��o dos
Cr�ditos de PIS dispon�veis'
ElseIf CKZT == '2'
cFiltroBrw += ' .AND. CL8_TRIB == "2"'
cDescr := STR0163//'Visualiza��o dos
Cr�ditos da COFINS dispon�veis'
EndIF
cAlias := 'CL8'
If CKZT == '1'
cFiltroBrw += ' .AND. CFA_TPCON == "PIS"'
cDescr := 'Visualiza��o dos d�bitos
diferidos de PIS do per�odo'
ElseIf CKZT == '2'
cFiltroBrw += ' .AND. CFA_TPCON == "COF"'
cDescr := 'Visualiza��o dos d�bitos
diferidos de COFINS do per�odo'
EndIF
cAlias := 'CFA'
IF aArray[nPos][4] == '14'
cFiltroBrw += ' .AND. CFB_CODCON $
"01/02/03/04/71" '
ElseIF aArray[nPos][4] == '16'
cFiltroBrw += ' .AND. CFB_CODCON $
"51/52/53/54/72" '
EndIF
If CKZT == '1'
cFiltroBrw += ' .AND. CFB_TPCON == "PIS"'
cDescr := 'Visualiza��o dos d�bitos
diferidos de per�odo anteriores de PIS '
ElseIf CKZT == '2'
cFiltroBrw += ' .AND. CFB_TPCON == "COF"'
cDescr := 'Visualiza��o dos d�bitos
diferidos de per�odo anteriores de COFINS '
EndIF
cFiltroBrw += ' .AND. (CFB_CONREC - CFB_CREDES) > 0'
cAlias := 'CFB'
If CKZT == '1'
cFiltroBrw += ' .AND. CFA_TPCON == "PIS"'
cDescr := 'Visualiza��o dos cr�ditos
diferidos de PIS do per�odo'
ElseIf CKZT == '2'
cFiltroBrw += ' .AND. CFA_TPCON == "COF"'
cDescr := 'Visualiza��o dos cr�ditos
diferidos de COFINS do per�odo'
EndIF
cFiltroBrw += ' .AND. CFA_CREDIF > 0'
cAlias := 'CFA'
EndCase
VisualGen(cFiltroBrw,cDescr,cAlias)
EndIF
oBrowse := FWmBrowse():New()
oBrowse:SetDescription( cDescr)
oBrowse:SetAlias( 'CLA' )
oBrowse:SetMenuDef( 'FISA003' )
oBrowse:DisableDetails()
oBrowse:ForceQuitButton()
oBrowse:SetFilterDefault( cFiltroBrw )
oBrowse:Activate()
aArea := GetArea()
//---------------------------------------------------------------
//Atualiza os valores da apura��o considerando os ajustes manuais
//---------------------------------------------------------------
IF CKZR == NAOCUMULAT
oCompCred := CMPCREDITO():New()
oCompCred:SetConsol(CCONSOL)
oCompCred:SetDtIni(MV_PAR01)
oCompCred:DedCred(CKZT)
oCompCred := Nil
// lRet := .T.
ElseIF isincallstack('atualizagrid')
lRet := .T.
EndIF
EndIf
Return .F.
//-------------------------------------------------------------------
/*/{Protheus.doc} ASA002CKZ
/*/
//-------------------------------------------------------------------
Function ASA002CKZ()
Return {CKZT,CKZR,CKZD,CKZN,CKZDC,LCARREGA,CCONSOL}
Function AS02XALIAS()
Return {CALIAS004}
//-------------------------------------------------------------------
/*/{Protheus.doc} ASA001GDUP
Fun��o que grava as duplicatas a partir do grid das informa��es de recolhimento
/*/
//-------------------------------------------------------------------
Function ASA001GDUP(aRecolh,lAutomato)
Iif(Empty(SuperGetMV("MV_UNIAO",.F.,"UNIAO")),"UNIAO",SuperGetMV("MV_UNIAO",.F.,"UN
IAO"))
Local cLoja := Iif(TamSx3("A2_LOJA")[1]==4,"0000","00")
Local cNatPsC := IIF(!
Empty(GetNewPar("MV_PISAPC","")),SuperGetMV("MV_PISAPC"),SuperGetMv("MV_PISNAT"))
Local cNatCfC := IIF(!
Empty(GetNewPar("MV_COFAPC","")),SuperGetMV("MV_COFAPC"),SuperGetMv("MV_COFINS"))
Local cNatPsNC := IIF(!
Empty(GetNewPar("MV_PISAPNC","")),SuperGetMV("MV_PISAPNC"),SuperGetMv("MV_PISNAT"))
Local cNatCfNC := IIF(!
Empty(GetNewPar("MV_COFAPNC","")),SuperGetMV("MV_COFAPNC"),SuperGetMv("MV_COFINS"))
Local cCodPis := GetNewPar("MV_CODPIS","")
Local cCodCof := GetNewPar("MV_CODCOF","")
Local nI := 0
Local nValor := ''
Local nTamNF := TamSX3('F2_DOC')[1]
Local oBrowse
Local oTitulo
Local oGuias
Local oDifer
Local aGuias := {}
local cNatCPRB := alltrim( GetNewPar("MV_CPRBNAT","") )
local aNatCPRB := {}
local i := 0
local cCodINSS := SubStr(GetMv("MV_FORINSS"),1, TAMSX3("A2_COD")[1])
local nPosCPRB := 0
Default aRecolh := {}
Default lAutomato := .F.
If SX1->(dbSeek(PadR("ISA001",Len(SX1->X1_GRUPO))+"21")) .and. Valtype(MV_PAR21) ==
'N'
lAltTit := Iif(!LCARREGA .AND. MV_PAR21 == 2,.T.,.F.)
// Tratamento para n�o estourar error log na chamada do AXALTERA
Private nOldValor := 0
Private nOldSaldo := 0
Private nOldIss := 0
Private nOldIrr := 0
Private nOldInss := 0
Private nOldSEST := 0
Private nValorAnt := 0
Private nMaxParc := 0
Private nOldPis := 0
Private nOldCofins := 0
Private nOldCsll := 0
Private nOldCID := 0
Private nVlRetPis := 0
Private nVlRetCof := 0
Private nVlRetCsl := 0
Private INCLUI := .F.
Private nValdig := 0
Private lAltera := .T.
Private dVencreaAnt := CtoD('')
Private lDupA631 := If(SuperGetMv("MV_IMPTRAN",.F.,"1") == "1" .And.
IsBlind() .And. FwIsInCallStack("FINA631"), .T., .F.)
EndIF
//Esta fun��o � chamada para alterar a modelo, pois se n�o houver altera��o
//por parte do usu�rio, exibe mensagem de que o modelo n�o houve altera��o
//e que n�o ser� salvo, por este motivo fa�o altera��o no modelo
//para que possa ser gravado ao clicar no bot�o confirmar da rotina sem
//que tenha de fato altera��o por parte do usu�rio
If !lAutomato
AtualizGrv()
EndIf
oModel := FWModelActive()
oModelAba5 := oModel:GetModel( 'MODEL_ABA5A' )
If ABA5APOS(aRecolh,lAutomato, oModelAba5)
next
endif
oGuias := APURPISCOF():New()
oGuias:SetConsol(CCONSOL)
oGuias:SetRegime(MV_PAR06)
oGuias:SetDtIni(MV_PAR01)
oTitulo:= TITPAGAR():New()
Begin Transaction
For nI:=1 to oModelAba5:Length()
oModelAba5:GoLine( nI )
If lAutomato
cCodRec := ''
dtVencto:= CTod('')
If nI <= Len(aRecolh)
cCodRec := aRecolh[nI][1]
dtVencto:= aRecolh[nI][2]
EndIf
Else
cCodRec := oModelAba5:GetValue('ABA5A_CMP2')
dtVencto:= oModelAba5:GetValue('ABA5A_CMP4')
EndIf
cNat := ""
if valtype(cNatCPRB) == "C"
cNat := cNatCPRB
endif
cDescr := 'CPRB'
cTipo := 'CPR'
cPrefixo := Iif(Len(aPrefixo) >=3,
aPrefixo[3],'CPR')
cForn := cCodINSS
cCodLP := '765'
EndCAse
endif
IF lDuplicata
If SX5->( dbSeek(xFilial()+"53"+'PISCOF'))
cNumTit:=Soma1(Substr(X5Descri(),1,nTamNF),nTamNF)
EndIF
oTitulo:SetPrefixo(cPrefixo)
oTitulo:SetNumTit(cNumTit)
oTitulo:SetParcela(Space(TamSx3('E2_PARCELA')[1]))
oTitulo:SetTipo(cTipo)
oTitulo:SetFornece(cForn)
// Tratamento de forncedor
IF SA2->(DbSeek(xFilial('SA2')+cForn))
oTitulo:SetLoja(SA2->A2_LOJA)
oTitulo:SetNomeFor(SA2->A2_NOME)
ELSE
oTitulo:SetLoja(cLoja)
oTitulo:SetNomeFor('UNIAO')
EndIF
oTitulo:SetNatureza(cNat)
oTitulo:SetDescNat(cDescr)
oTitulo:SetValor(nValor)
oTitulo:SetEmis1(dDatabase)
oTitulo:SetEmissao(dDatabase)
oTitulo:SetVencto(dtVencto)
oTitulo:SetVenCrea(DataValida(dtVencto,lPostVen))
oTitulo:setVenOri(dtVencto)
oTitulo:SetSaldo(nValor)
oTitulo:SetVlCruz(nValor)
oTitulo:SetMoeda(1)
oTitulo:SetRateio('N')
oTitulo:SetFluxo('S')
oTitulo:SetCodRet(cCodRec)
oTitulo:SetOrigem('FISA001')
oTitulo:SetContab(lContabil)
oTitulo:SetCodLp(cCodLP)
oTitulo:SetExibCtb(.T.)
oTitulo:GrvTitulo()
If lAltTit
nOldValor := SE2->E2_VALOR
nOldSaldo := SE2->E2_SALDO
nOldIss := SE2->E2_ISS
nOldIrr := SE2->E2_IRRF
nOldInss := SE2->E2_INSS
nOldSEST := SE2->E2_SEST
nOldPis := SE2->E2_PIS
nOldCofins := SE2->E2_COFINS
nOldCsll := SE2->E2_CSLL
nVlRetPis := SE2->E2_VRETPIS
nVlRetCof := SE2->E2_VRETCOF
nVlRetCsl := SE2->E2_VRETCSL
nValdig := SE2->E2_VALOR
dVencreaAnt := SE2->E2_VENCREA
//Estou chamando a fun��o do Financeiro
(FINA050) para retornar os campos que poder�o ser editados, seguindo a mesma regra
que o FINA050 faz para editar t�tulos
//J� que n�o se pode alterar qualquer campo do
t�tulo.
aColsSe2 := fa050MCpo(4)
AxAltera("SE2",SE2-
>(Recno()),3,,aColsSe2,,,/*"SF6TudoOk()"*/)
EndIf
//Verifica se gravou o t�tulo
IF oTitulo:GetGrvTit()
cStatus := '2'
//Atualiza SX5 com o �ltimo n�mero de t�tulo
gerado
If SX5->(dbSeek(xFilial("SX5")+"53"+'PISCOF'))
RecLock('SX5',.F.)
SX5->X5_DESCRI := cNumTit
SX5->X5_DESCSPA := cNumTit
SX5->X5_DESCENG := cNumTit
MsUnlock()
cTitGerado +=cNumTit+'/'
EndIF
//Busca informa��es dos t�tulos gerados e
atualiza CL3
oGuias:GrvRecolhi( cTrib ,nValor,'',,SE2-
>E2_NUM, SE2->E2_PREFIXO, SE2->E2_PARCELA, SE2->E2_TIPO, SE2->E2_FORNECE, SE2-
>E2_LOJA)
EndIF
EndIF
EndIF
Next nI
FreeObj(oTitulo)
oTitulo:= Nil
// Tratamento para gerar lan�amento cont�bil para Diferimento de PIS /
COFINS ( dentro do mesmo per�odo e per�odo anterior )
// Primeiramente ser� nescess�rio verificar se h� valor de Diferimento
na tabela CKS para ent�o realizar o Lan�amento Padr�o
DBSelectArea( 'CKS' )
CKS->( DBSetOrder( 1 ) )
if CKS->( MsSeek(xFilial("CKS")+dTos(MV_PAR01)))
oDifer:= TITPAGAR():New()
FreeObj(oDifer)
oDifer:= Nil
endif
endif
End Transaction
IF ! empty(cTitGerado)
CALIAS004 := 'SE2'
cFiltroBrw := ' E2_TIPO $ "PIS/COF/CPR" .AND. E2_ORIGEM ==
"FISA001" .AND. E2_NUM $ "' + cTitGerado + '"'
If !lAutomato
VisualGen(cFiltroBrw,STR0170,'SE2')//'Visualiza��o dos
T�tulos gerados'
EndIf
EndIF
lRet := .T.
ElseIf lDuplicata .And. !lAutomato
lRet := .F.
Alert(STR0171)//'� necess�rio preencher o c�digo da Receita e data de
vencimento em informa��es de recolhimento.'
Else
lRet := .T.
EndIF
Else
lRet := .T.
EndIF
//lRet := .T.
Return lRet
//-------------------------------------------------------------------
/*/{Protheus.doc} CtbDifer
Fun��o que realiza a contabiliza��o online referente ao Diferimento de
Pis / Cofins
/*/
//-------------------------------------------------------------------
function CtbDifer(oDifer, cCodLDif, lContabil)
if ! empty( cCodLDif )
oDifer:SetOrigem('FISA001')
oDifer:SetContab(lContabil)
oDifer:SetCodLp(cCodLDif)
oDifer:SetExibCtb(.t.)
oDifer:Contabiliz()
endif
return
//Se for somente para carregar a tela, n�o ir� atualizar o grid.
IF !LCARREGA
oModelZA2:GoLine( 1)
oModelZA2:SetValue( 'ABA6_CMP1' , ' ')
oview:Refresh( 'VIEW_ABA6' )
EndIF
Return
Local oBrowse
CALIAS004 := cAlias
oBrowse := FWmBrowse():New()
oBrowse:SetDescription( cDescr)
oBrowse:SetAlias( cAlias )
oBrowse:SetMenuDef( 'FISA004' )
oBrowse:DisableDetails()
oBrowse:ForceQuitButton()
oBrowse:SetFilterDefault( cFiltro )
oBrowse:Activate()
CALIAS004 := cAlias
Return
Default aRecolh := {}
Default lAutomato := .F.
if valtype(oModelAba5) == "U"
oModel := FWModelActive()
oModelAba5 := oModel:GetModel( 'MODEL_ABA5A' )
endif
//-----------------------------------------
//AJUSTE NA ABA DOS D�BITOS N�O CUMULATIVOS
//-----------------------------------------
aArea := GetArea()
oGuias := APURPISCOF():New()
oGuias:SetConsol(CCONSOL)
oGuias:SetRegime(MV_PAR06)
oGuias:SetDtIni(MV_PAR01)
For nI := 1 To oModelAba5:Length()
oModelAba5:GoLine( nI )
//Atrav�s do c�digo do tributo no grid, as informa��es da CL3 ser�o
atualizadas
cTrib := substr(oModelAba5:GetValue('ABA5A_CMP1' ),1,1)
IF !Empty(cTrib)
nValor := oModelAba5:GetValue('ABA5A_CMP3' )
If nValor > 0
nX++
cCodRec := Iif(!lAutomato, oModelAba5:GetValue('ABA5A_CMP2'),
aRecolh[nX][1])
dDataVenc := Iif(!lAutomato, oModelAba5:GetValue('ABA5A_CMP4'),
aRecolh[nX][2])
EndIF
EndIF
Next nI
oModelAba5:GoLine( 1 )
oGuias := Nil
RestArea(aArea)
Return lCorreto