Home

Linha Microsiga Protheus

Páginas filhas
  • Rotina automática com rateio multi-maturezas no Contas a Receber

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

Na rotina automática com rateio multi-naturezas no Contas a Receber (FINA040) é possível incluir e excluir títulos.

Caso o título tenha o valor principal alterado, o rateio automaticamente é atualizado com base nas porcentagens de distribuição já definidas na inclusão. 

Para isto é necessário habilitar o parâmetro MV_MULNATR com o conteúdo .T.

Neste exemplo é utilizada uma natureza e dois centros de custo para cada natureza:

Documento exemplificando o uso da rotina automática com rateio multinaturezas para Contas a Receber (FINA040), para inclusão e exclusão de títulos.
A alteração do rateio multi-naturezas não foi implementada. Caso o título tenha o seu valor principal alterado, o rateio automaticamente será atualizado
com base nas porcentagens de distribuição já definidas na inclusão.
Nota: A inclusão do rateio ocorrerá somente se o parâmetro MV_MULNATR estiver habilitado. Neste exemplo será utilizadas uma natureza e dois centros de custo para cada natureza: #Include 'Protheus.ch' #INCLUDE "TBICONN.CH" USER FUNCTION 040MULT() LOCAL aCab := {} // array que recebera o titulo a receber LOCAL aAuxEv :={} // array auxiliar do rateio multinaturezas LOCAL aRatEvEz:={} //array do rateio multinaturezas LOCAL aAuxEz :={} // Array auxiliar de multiplos centros de custo LOCAL aRatEz:={} //Array do rateio de centro de custo em multiplas naturezas PREPARE ENVIRONMENT EMPRESA '01' FILIAL '0101001' PRIVATE lMsErroAuto := .F. aadd( aCab,"E1_PREFIXO" , 'AUT', Nil }) aadd( aCab ,{"E1_NUM" ,GetSXeNum("SE1","E1_NUM"), Nil }) aadd( aCab ,{"E1_PARCELA" , '1', Nil }) aadd( aCab ,{"E1_TIPO" , 'NF', Nil }) aadd( aCab ,{"E1_NATUREZ" , '001', Nil }) aadd( aCab ,{"E1_CLIENTE" , '001', Nil }) aadd( aCab ,{"E1_EMISSAO" , dDataBase, Nil }) aadd( aCab ,{"E1_VENCTO" , dDataBase, Nil }) aadd( aCab ,{"E1_VALOR" , 100, Nil }) aadd( aCab ,{"E1_MULTNAT" , '1', Nil })//rateio multinaturezs = sim //Adicionando o vetor da natureza aadd( aAuxEv ,{"EV_NATUREZ" , padr('001',tamsx3("EV_NATUREZ")[1]), Nil })//natureza a ser rateada aadd( aAuxEv ,{"EV_VALOR" , 100, Nil })//valor do rateio na natureza aadd( aAuxEv ,{"EV_PERC" , "100", Nil })//percentual do rateio na natureza aadd( aAuxEv ,{"EV_RATEICC" , "1", Nil })//indicando que há rateio por centro de custo //Adicionando multiplos centros de custo //primeiro centro de custo aAuxEz:={} aadd( aAuxEz ,{"EZ_CCUSTO" , '001', Nil })//centro de custo da natureza aadd( aAuxEz ,{"EZ_VALOR" , 15, Nil })//valor do rateio neste centro de custo aadd(aRatEz,aAuxEz) //segundo centro de custo aAuxEz:={} aadd( aAuxEz ,{"EZ_CCUSTO" , '002', Nil })//centro de custo na natureza aadd( aAuxEz ,{"EZ_VALOR" , 85, Nil })//valor do rateio neste centro de custo aadd(aRatEz,aAuxEz) aadd(aAuxEv,{"AUTRATEICC" , aRatEz, Nil })//recebendo dentro do array da natureza os multiplos centros de custo aAdd(aRatEvEz,aAuxEv)//adicionando a natureza ao rateio de multiplas naturezas MsExecAuto( { |x,y,z,a| FINA040(x,y,z,a)} , aCab, 3,,aRatEvEz)//inclusao If lMsErroAuto MostraErro() Else Alert("Título incluído com sucesso!") Endif Return

 

 

 

...