Árvore de páginas

Ponto-de-Entrada: CT030ADEL - verifica integridade referencial de um Centro de Custo antes da sua exclusão
Abrangências: Microsiga Protheus 10 , Microsiga Protheus 11
Versões: Microsiga Protheus 10 , Microsiga Protheus 11
Compatível Países: Todos
Sistemas Operacionais: Todos
Compatível às Bases de Dados: Todos
Idiomas: Português (Brasil) , Português (Portugal) , Espanhol , Inglês
Descrição:
Ponto de entrada utilizado antes da exclus'ao de um centro de custo 
Eventos

Ocorre dentro da função de exclusão de centro de custo porem antes de sua real efetivação

Programa Fonte
CTBA030.PRW 
Sintaxe

CT030ADEL - verifica integridade referencial de um Centro de Custo antes da sua exclusão ( [ nOpc ] ) --> lRet

Parâmetros:
Nome Tipo Descrição Default Obrigatório Referência
nOpc Numérico nOpc da Operação
Retorno
    lRet(numerico)
  • Indicador da integridade referencial do centro de custo
Observações

Se retornar verdadeiro o processo de exclusão continua caso contratrio o processo de exclusão é interrompido

Exemplos
	If lCt030ADel		lRet := ExecBlock("CT030ADEL", .F., .F.,nOpc)	EndIf		// Função usada para validar se existe integração do Protheus com o RM Solum e	// Para chamar a validação específica do RM Solum na deleção do Produto. (PMSXFUNB)	If lRet .AND. !PmsSlmPrd("CC")		lRet := .F.	Endif         		IF lRet		BEGIN TRANSACTION			//Ponto de Entrada da Exclusao de Centro de Custo						If ExistBlock("CT030GRE")				ExecBlock("CT030GRE",.F.,.F.)			Endif										//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿			//³ Deleta todos os itens	                   ³			//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ						         			// Compatibilizacao com SIGACON			If ChkFile("SI3")				dbSelectArea("SI3")				dbSetOrder(1)				cSI3_Filial := xFilial( "SI3" ) // grava a filial do SI3 para ganho de performace				// posiciona no 1o registro do si3 referente a chave a ser deletada				dbSeek( cSI3_Filial + Substr( cCtt_Custo , 1 , aTam[1] )) 								// percorre os itens do SI3 com a mesma chave para deleção				While ! Eof() .And. ( SI3->I3_FILIAL == cSI3_Filial ) .And. ( SI3->I3_CUSTO == Substr( cCtt_Custo , 1 , aTam[1]) )					If ! SI3->( Deleted() ) // verifica se o mesmo já não foi deletado						RecLock("SI3",.F.,.T.)						dbDelete()						MsUnlock()	                Endif					SI3->(dbSkip())				End				EndIf						//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿			//³ Deleta o C.Custo do Cadastro               ³			//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ			dbSelectArea( cAlias ) //seleciona o alias novamente somente para garantia			dbSetOrder(1) // seta a ordem novamente por garantia			dbSeek( cCtt_Filial + cCtt_Custo ) // posiciona o registro no item            // por garantia, percorre a tabela ctt para deletar o item correto da chave			While ! Eof() .And. ( CTT->CTT_FILIAL == cCtt_Filial ) .And. ( CTT->CTT_CUSTO == cCtt_Custo )				//Parametro de ativacao da integracao do Protheus x RM Classis Net (RM Sistemas)				if GetNewPar("MV_RMCLASS", .F.)					//Replica a manutencao no centro de custo para o RM Classis Net (RM Sistemas)					ClsCCusto(.F.,"",.T., "D", IIF(FindFunction("FWGRPCompany"), FWGRPCompany(),SM0->M0_CODIGO)  , CTT->CTT_FILIAL, CTT->CTT_CUSTO, CTT->CTT_DESC01, if(CTT->CTT_BLOQ == "1","F","T"), CTT->CTT_CUSTO)				endif								// verifica se o item não está deletado, assim evita retrabalho				If ! (cAlias)->( Deleted() )					//MsGoto(nRecCTT) --> retirei o goto, mtas vezes o recno não eh mto confiavel para manipulação dos registros					RecLock( cAlias, .F., .T. )					dbDelete()					MsUnlock()			 	Endif						CTT->(dbSkip())			EndDo	           			If lIntGPE				DbSelectArea("QAD")				DbSetOrder(1)				If DbSeek(xFilial("QAD")+cEmpAnt+cFilAnt+cCtt_Custo)					Reclock("QAD",.F.)					dbDelete()					MsUnlock()				Endif			Endif		   	If cInte=="1" .And. cSinc=="3"				PcoSincCO("CTT",3)			EndIf			//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿			//³ Grava Histórico de Alterações na tabela CW4.         ³			//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ			CTBGrvHist(xFilial("CTT"),"CTT"     ,cCtt_Custo,      ,ValType(CTT->CTT_CUSTO),"CTT_CUSTO",cCtt_Custo,""        ,nOpc)			//		   cFilTabela	 ,cEntidade ,cCodigo       ,cGrupo,cTipoCampo             ,cCampo     ,cValorAnt   ,cValorNovo,nOpc)		END TRANSACTION	EndifEndIf