Histórico da Página
Abrangências: Microsiga Protheus 11
Versões: 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: Esta rotina tem por objetivo realizar o encerramento da cotação, atualizar o status da solicitação de compras e gerar o respectivo pedido de compras, a partir do recebimento das informações da proposta vencedora.
OBSERVAÇÕES: Deve-se informar os dados apenas da proposta vencedora! . Se duas propostas forem informadas duas propostas, a rotina assumirá que as duas que ambas são propostas vencedoras (Detalhes no exemplo abaixo).
...
SINTAXE: MATA160(,nOpcAuto,aAutoCab,aAutoItm)
RETORNO: ()
PARÂMETROS:
NOME | TIPO | DESCRIÇÃO | OBRIGATÓRIO |
---|---|---|---|
nOpcAuto | numérico | 6 = Analisa cotação | X |
aAutoCab | Array of records | Array com o cabeçalho da cotação | X |
aAutoItm | Array of records | Array com os itens da cotação | X |
Bloco de código | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
#Include 'Protheus.ch' #INCLUDE "RWMAKE.CH" #INCLUDE "TBICONN.CH" // BIBLIOTECA User Function Auto_160() Local aAutoCab := {} // Array do cabecalho: 1-SC8->C8_NUM 2-comprador Local aAutoItm := {} // Array dos itens da cotacao Local nIndItem := 1 Local lOk := .T. Local cNumCotacao := "" PRIVATE lMSErroAuto := .F. PRIVATE lAutoErrNoFile:= .T. //------------------------ //| Abertura do ambiente| //------------------------ PREPARE ENVIRONMENT EMPRESA "9901" FILIAL "01" MODULO "COM" //informe o codigo da empresa e da filial conout("Inicio") // exibe no console do servidor cNumCotacao := "000018000001" // informe aqui o numero da cotacao a ser analisada dbSelectArea("SC8") dbSetOrder(1) If !DbSeek(xFilial("SC8")+cNumCotacao) // FILIAL + NUM. COTACAO conout("Falha! Gerar e atualizar cotacao " +cNumCotacao+" ! ") conout("Fim") lOk := .F. Endif If lOk conout("Iniciando exemplo de 54 propostas para a cotacao "+ cNumCotacao+".") aAdd(aAutoCab,{"C8_NUM",cNumCotacao,NIL}) // numero da solicitatacao de compras que gerou a(s) cotacao(oes) aAdd(aAutoCab,{"COMPACC","Administrador",NIL}) // nome do comprador // Deve-se fornecer os dados completos APENASdo DOfornecedor FORNECEDORvencedor VENCEDOR! // No caso especifico desse ExecAuto, o fornecedor vencedor das cotacoes eh o "004 ". para cada item da cotacao! // Os tamanhos dos campos da tabela SCE devem ser respeitados. // O array de itens (aAutoItn) deve ter comprimento igual aao quantidadenumero de cotacoesitens existentesda paracotacao a solicitacao de compras (nesse caso, 5) aadd(aAutoitm,{}) aAdd(aAutoItm[nIndItem],{}) // OsA dadoscada doitem fornecedorda vencedor devem ser declarados na primeira posicao do vetor aAutoItm aadd(aAutoitm,{}) aAdd(aAutoItm[nIndItem],{}) aAdd(cotacao, deve-se preencher o fornecedor vencedor aAdd(atail(aAutoItm[nIndItem]),{"CE_ITEMCOT","0001",NIL}) //item da cotacao aAdd(atail(aAutoItm[nIndItem]),{"CE_FORNECE","004001 ",NIL}) //informe o codigo do fornecedor, respeitando o tamanho exato do campo aAdd(atail(aAutoItm[nIndItem]),{"CE_LOJA","01",NIL}) // loja do fornecedor aAdd(atail(aAutoItm[nIndItem]),{"CE_NUMPRO","01",NIL}) // numero da proposta aAdd(atail(aAutoItm[nIndItem]),{"CE_QUANT",2010,NIL}) // quantidade nIndItem++ aadd(aAutoitm,{}) aAdd(aAutoItm[nIndItem],{}) // Para o item 0002, o fornecedor vencedor eh o "002 " aAdd(atail(aAutoItm[nIndItem]),{"CE_ITEMCOT","00010002",NIL}) //item da cotacao (OBRIGATORIO) aAdd(atail(aAutoItm[nIndItem]),{"CE_FORNECE","002 ",NIL}) aAdd(atail(aAutoItm[nIndItem]),{"CE_LOJA","00",NIL}) aAdd(atail(aAutoItm[nIndItem]),{"CE_NUMPRO","01",NIL}) aAdd(atail(aAutoItm[nIndItem]),{"CE_QUANT",20,NIL}) nIndItem++ aadd(aAutoitm,{}) aAdd(aAutoItm[nIndItem],{}) // Para o item 0003, o fornecedor vencedor eh o "001 " aAdd(atail(aAutoItm[nIndItem]),{"CE_ITEMCOT","00010003",NIL}) //item da cotacao (OBRIGATORIO) aAdd(atail(aAutoItm[nIndItem]),{"CE_FORNECE","001 ",NIL}) aAdd(atail(aAutoItm[nIndItem]),{"CE_LOJA","01",NIL}) aAdd(atail(aAutoItm[nIndItem]),{"CE_NUMPRO","01",NIL}) aAdd(atail(aAutoItm[nIndItem]),{"CE_QUANT",30,NIL}) nIndItem++ aadd(aAutoitm,{}) aAdd(aAutoItm[nIndItem],{}) aAdd(atail(aAutoItm[nIndItem]),{"CE_ITEMCOT","0001",NIL}) // Para o item da cotacao (OBRIGATORIO) aAdd(atail(aAutoItm[nIndItem]),{"CE_FORNECE","",NIL}) aAdd(atail(aAutoItm[nIndItem]),{"CE_LOJA","",NIL}) 0004, o fornecedor vencedor eh o "002 " aAdd(atail(aAutoItm[nIndItem]),{"CE_NUMPRO","",NIL}) aAdd(atail(aAutoItm[nIndItem]),{"CE_QUANT",,NIL}) nIndItem++ aadd(aAutoitm,{}) aAdd(aAutoItm[nIndItem],{}) aAdd(atail(aAutoItm[nIndItem]),{"CE_ITEMCOT","00010004",NIL}) //item da cotacao (OBRIGATORIO) aAdd(atail(aAutoItm[nIndItem]),{"CE_FORNECE","002 ",NIL}) aAdd(atail(aAutoItm[nIndItem]),{"CE_LOJA","00",NIL}) aAdd(atail(aAutoItm[nIndItem]),{"CE_NUMPRO","01",NIL}) aAdd(atail(aAutoItm[nIndItem]),{"CE_QUANT",40,NIL}) //ExecAuto MSExecAuto({|x,y,z| MATA160(,x,,y,z)},6,aAutoCab,aAutoItm) If lMsErroAuto conout("Erro na analise da cotacao " + cNumCotacao +" !") Mostraerro() Else Alert("SUCESSO!") conout("Cotacao " + cNumCotacao + " analisada com sucesso!") Endif Endif RESET ENVIRONMENT Return |