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
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas