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