Árvore de páginas

Ponto-de-Entrada: GP280G01 - Fornecedor na Tabela SA2
Versões: Microsiga Protheus 10
Compatível Países: Todos
Sistemas Operacionais: Todos
Compatível às Bases de Dados: Todos
Descrição:
Essa implementação tem o objetivo de permitir a geração/manutenção do beneficiário como fornecedor na tabela.SA2 (Fornecedores).
Eventos

Inclusão/Alteração e Exclusão do beneficiário. (Atualizações > Funcionário > Beneficiários)

Programa Fonte
GPEA280.PRX
Sintaxe

GP280G01 - Fornecedor na Tabela SA2 ( [ Paramixb[1] ] )

Parâmetros:
Nome Tipo Descrição Default Obrigatório Referência
Paramixb[1] Caracter CPF do beneficiário
Retorno
    ()
Observações

É importante que haja um controle específico da chave única no cadastramento do beneficiário como fornecedor. A chave única da tabela SA2 (Fornecedores) é composta pelo Código Fornecedor + Código Loja, ou seja, poderá haver mais de um fornecedor com o mesmo código, porém o código da loja deverá ser diferente.

Exemplos
#INCLUDE "PROTHEUS.CH"User Function GP280G01()Local aArea	   	:= GetArea()Local cAlias	:= "SA2"Local cA2cod	:= ""Local cA2loja	:= ""Local cCGC		:= PARAMIXB[1]//Recebe o valor do CPF antes da alteracaoLocal cProcesso	:= PROCNAME(2)//Recebe o nome do processo que chamou o ponto de entradaLocal nCod		:= 0 //Alert( "Passou pelo PE GP280G01" )dbSelectArea(cAlias)//Seleciona a tabela para uso		(cAlias)->(dbSetOrder(3))//Filial+CPF//Verifica qual rotina sera processada: Manutencao ou ExclusaoIf cProcesso == "GP280GRAVA"//Se for gravacao-alteracao do beneficiario	//Verifica se existe um fornecedor com o mesmo CPF 	If dbSeek(xFilial("SA2")+cCGC)//Se existir altera o registro		RecLock(cAlias, .F.)//Reserva o registro para alteracao		cA2cod  := (cAlias)->A2_COD		cA2loja := (cAlias)->A2_LOJA	Else//Senao, cria um novo registro		DbGoBottom()//Posiciona no ultimo registro		nCod := val(SA2->A2_COD)//Recebe o valor do ultimo codigo do fornecedor		nCod := nCod+1//Soma um ao codigo do fornecedor, para evitar chave duplicada		RecLock(cAlias, .T.)//Reserva um novo registro		cA2cod  := PADL( cValToChar(nCod), 6, "0" )//Adiciona zeros a esquerda ao Codigo Fornecedor		cA2loja := "01"//Codigo Loja recebe '01'	EndIf    //Realiza a gravacao dos campos com informacoes da SRQ e SRA	(cAlias)->A2_COD	:= cA2cod//Codigo Fornecedor	(cAlias)->A2_LOJA	:= cA2loja//Codigo Loja	(cAlias)->A2_CGC	:= SRQ->RQ_CIC//CPF/CNPJ	(cAlias)->A2_TIPO	:= "F"//Tipo de Pessoa (Fisica/Juridica)	(cAlias)->A2_NOME	:= SRQ->RQ_NOME//Nome do fornecedor	(cAlias)->A2_NREDUZ	:= SRQ->RQ_NOME	//Nome fantasia	(cAlias)->A2_END	:= SRA->RA_ENDEREC//Endereco	(cAlias)->A2_BAIRRO	:= SRA->RA_BAIRRO//Bairro		(cAlias)->A2_MUN	:= SRA->RA_MUNICIP//Municipio	(cAlias)->A2_EST	:= SRA->RA_UFCP//Unidade Federativa	(cAlias)->A2_CEP	:= SRA->RA_CEP//CEP	(cAlias)->A2_TEL	:= SRA->RA_TELEFON//Telefone	(cAlias)->A2_EMAIL	:= SRA->RA_EMAIL//E-mail	(cAlias)->( MsUnlock() )//Libera o registroElseIf cProcesso == "GP280DELE"//Se for exclusao do beneficiario	//Verifica se existe um fornecedor com o mesmo CPF 	If dbSeek(xFilial("SA2")+cCGC)		RecLock(cAlias, .F., .T.)//Se existir altera o registro	    (cAlias)->(dbDelete())//Exclui o registro	    (cAlias)->(MsUnlock())//Libera o registro	EndIf			EndIfRestArea(aArea)		Return
Variáveis
Nome Tipo Escopo Pode Alterar descrição
Array of Record Global Não