Escolar Documentos
Profissional Documentos
Cultura Documentos
ch"
/*
Esta funcao foi criada para que seja possivel visualizar a data deste
fonte no inspetor de objetos, pois nao eh possivel fazer isso se nao
houver nenhuma FUNCTION no fonte.
*/
FUNCTION EFDCBLOCOI();RETURN
//-------------------------------------------------------------------
/*/{Protheus.doc} EFDCBLOCOI()
@description Classe que ter� as informa��es espec�ficas para gera��o dos
registros do bloco I no SPED Contribui��es. Esta classe n�o
herda
as propriedades da classe NOTAEFD, pois n�o possuem
informa��es
em comum, neste bloco n�o s�o tratadas informa��es de notas,
s�o totais de valores das institui��es Financeiras. Este
bloco tem rela��o somente com o bloco M da apura��o.
//-----------------------------------------------------
//ATRIBUTOS DA CLASSE
//-----------------------------------------------------
Data cCst as String READONLY //CST de pis e cofins.
Data cInfComp as String READONLY //Informa��o complementar do
registro
Data cNumCpo as String READONLY //N�mero do campo
Data cCod7112 as String READONLY //C�digo da tabela 711 ou da
tabela 712
Data cCod7134 as String READONLY //C�digo da tabela 713 ou da
tabela 714
Data cCodCta as string READONLY //C�digo da conta cont�bil
Data nVlRec as Integer READONLY //Valor total da
receita/faturamento
Data nExGer as Integer READONLY //valor das exclus�es gerais
Data nExEsp as Integer READONLY //valor das exclus�es espec�ficas
Data nBasPis as Integer READONLY //base de c�lculo de PIS
Data nBasCof as Integer READONLY //base de c�lculo da COFINS
Data nAlqPis as Integer READONLY //Al�quota do PIS
Data nAlqCof as Integer READONLY //Al�quota da COFINS
Data nValPis as Integer READONLY //Valor de PIS
Data nValCof as Integer READONLY //Valor da COFINS
Data nVlComp as Integer READONLY //Valor da composi��o das
receitas, dedu��es ou exclus�es das tabelas 711/712
Data nVlDet as Integer READONLY //Valor do detalhamento das
receitas, dedu��es ou exclus�es das tabelas 713/714
//-------------------------------------------------------------
//ARRAY DOS REGISTROS DO BLOCO I
//-------------------------------------------------------------
Data aRegI100 as Array READONLY
Data aRegI200 as Array READONLY
Data aRegI300 as Array READONLY
Data aRegI199 as Array READONLY
Data aRegI299 as Array READONLY
Data aRegI399 as Array READONLY
Data aRegI001 as Array READONLY
Data aRegI990 as Array READONLY
//-------------------------------------------------------------
//M�TODOS DA CLASSE
//-------------------------------------------------------------
Method New()
Method Clear()
Method AddI100()
Method AddI200()
Method AddI300()
Method AddProcRef(cReg)
Method AddI001(cIndMovto)
Method AddI990(nQtde)
Method clsI100 ()
Method getI100()
Method getI199()
Method getI200()
Method getI299()
Method getI300()
Method getI399()
ENDCLASS
//-------------------------------------------------------------------
/*/{Protheus.doc} New()
M�todo construtor da classe
Return
//-------------------------------------------------------------------
/*/{Protheus.doc} Clear()
@description M�todo que inicializa as propriedades da classe
//-------------------------------------------------------------
//ARRAY DOS REGISTROS DO BLOCO I
//-------------------------------------------------------------
Self:aRegI100 := {}
Self:aRegI200 := {}
Self:aRegI300 := {}
Self:aRegI199 := {}
Self:aRegI299 := {}
Self:aRegI399 := {}
Self:aRegI001 := {}
Self:aRegI990 := {}
Return
//-------------------------------------------------------------------
/*/{Protheus.doc} AddI100()
@description M�todo que inclui novo registro I100. Neste registro teremos
a consolida��o de valores de PIS e COFINS do per�odo
@author Erick G. Dias
@since 22/10/2014
@version 11.90
/*/
//-------------------------------------------------------------------
METHOD AddI100() Class EFDCBLOCOI
Local nPos := 0
If nPos == 0
Self:cGrupoReg := FSA008SReg(@Self:aNumeracao,Self:cRelac, 'I100')
aAdd(Self:aRegI100, {})
nPos := Len (Self:aRegI100)
aAdd (Self:aRegI100[nPos], Self:cGrupoReg) //RELACIONAMENTO
aAdd (Self:aRegI100[nPos], "I100") //01 - REG
aAdd (Self:aRegI100[nPos], Self:nVlRec) //02 - VL_REC
aAdd (Self:aRegI100[nPos], Self:cCst) //03 - CST_PIS_COFINS
aAdd (Self:aRegI100[nPos], Self:nExGer) //04 - VL_TOT_DED_GER
aAdd (Self:aRegI100[nPos], Self:nExEsp) //05 - VL_TOT_DED_ESP
aAdd (Self:aRegI100[nPos], Self:nBasPis) //06 - VL_BC_PIS
aAdd (Self:aRegI100[nPos], Self:nAlqPis) //07 - ALIQ_PIS
aAdd (Self:aRegI100[nPos], Self:nValPis) //08 - VL_PIS
aAdd (Self:aRegI100[nPos], Self:nBasCof) //09 - VL_BC_COFINS
aAdd (Self:aRegI100[nPos], Self:nAlqCof) //10 - ALIQ_COFINS
aAdd (Self:aRegI100[nPos], Self:nValCof) //11 - VL_COFINS
aAdd (Self:aRegI100[nPos], Self:cInfComp) //12 - INFO_COMPL
Else
Self:aRegI100[nPos][3] += Self:nVlRec //02 - VL_REC
Self:aRegI100[nPos][5] += Self:nExGer //04 - VL_TOT_DED_GER
Self:aRegI100[nPos][6] += Self:nExEsp //05 - VL_TOT_DED_ESP
Self:aRegI100[nPos][7] += Self:nBasPis //06 - VL_BC_PIS
Self:aRegI100[nPos][9] += Self:nValPis //08 - VL_PIS
Self:aRegI100[nPos][10] += Self:nBasCof //09 - VL_BC_COFINS
Self:aRegI100[nPos][12] += Self:nValCof //11 - VL_COFINS
EndIF
Return
//-------------------------------------------------------------------
/*/{Protheus.doc} AddI200()
@description M�todo que inclui novo registro I200. Ser�o demonstrados os
detalhamentos de receita, dedu��es e exclus�es. Este registro
� filho do registro I100.
@author Erick G. Dias
@since 22/10/2014
@version 11.90
/*/
//-------------------------------------------------------------------
METHOD AddI200() Class EFDCBLOCOI
Local nPos := 0
If nPos == 0
Self:cGrupoReg := FSA008SReg(@Self:aNumeracao,Self:cRelac, 'I200')
aAdd(Self:aRegI200, {})
nPos := Len (Self:aRegI200)
aAdd (Self:aRegI200[nPos], Self:cGrupoReg) //RELACIONAMENTO
aAdd (Self:aRegI200[nPos], "I200") //01 - REG
aAdd (Self:aRegI200[nPos], Self:cNumCpo) //02 - NUM_CAMPO
aAdd (Self:aRegI200[nPos], Self:cCod7112) //03 - COD_DET
aAdd (Self:aRegI200[nPos], Self:nVlComp) //04 - DET_VALOR
aAdd (Self:aRegI200[nPos], Self:cCodCta) //05 - COD_CTA
aAdd (Self:aRegI200[nPos], Self:cInfComp) //06 - INFO_COMPL
Else
Self:aRegI200[nPos][5] += Self:nVlComp //04 - DET_VALOR
EndIF
Return Self:aRegI200[nPos][1]
//-------------------------------------------------------------------
/*/{Protheus.doc} AddI300()
@description M�todo que inclui novo registro I300. Este registro � complemento
do detalhamento das receitas, exclus�es e dedu��es. Este
registro
� filho do registro I200.
@author Erick G. Dias
@since 22/10/2014
@version 11.90
/*/
//-------------------------------------------------------------------
METHOD AddI300() Class EFDCBLOCOI
Local nPos := 0
Return Self:aRegI300[nPos][1]
//-------------------------------------------------------------------
/*/{Protheus.doc} AddProcRef()
@description M�todo que inclui novo registros I199, I299 e I399.
Todos relacionados com processo referenciado.
Do Case
Case cReg == 'I199'
Self:ProcRef('I199',@Self:aRegI199)
Case cReg == 'I299'
Self:ProcRef('I299',@Self:aRegI299)
Case cReg == 'I399'
Self:ProcRef('I399',@Self:aRegI399)
EndCase
Return
//-------------------------------------------------------------------
/*/{Protheus.doc} AddI001()
@description M�todo para gera��o do registro de abertura do bloco
@param cIndMovto,String,Indicador de movimento de abertura do bloco
@author Erick G. Dias
@since 14/11/2014
@version 11.90
/*/
//-------------------------------------------------------------------
METHOD AddI001(cIndMovto) Class EFDCBLOCOI
Self:AbreBloco('I001',@Self:aRegI001,cIndMovto)
Return Self:aRegI001
//-------------------------------------------------------------------
/*/{Protheus.doc} AddI990()
@description M�todo para gera��o do registro de encerramento do bloco
@param nQtde,Integer,N�mero de quantidade de linhas
@author Erick G. Dias
@since 14/11/2014
@version 11.90
/*/
//-------------------------------------------------------------------
METHOD AddI990(nQtde) Class EFDCBLOCOI
Self:FechaBloco('I990',@Self:aRegI990, nQtde)
Return Self:aRegI990
//-------------------------------------------------------------------
/*/{Protheus.doc} clsI100()
@description M�todo que limpa vari�veis do F100
@author Erick G. Dias
@since 05/12/2014
@version 11.90
/*/
//-------------------------------------------------------------------
METHOD clsI100() Class EFDCBLOCOI
Self:Clear(.F.)
Self:ClsNotaEfd(.F.)
Return