Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Punto de

...

entrada - MT161CPO

Linha ProdutoBanco Dados Operacionais

Línea de

producto:

Protheus

Segmento:

Manufatura

Manufactura

Módulo:

SIGACOM - Compras

RotinaRutina:

RotinaNome TécnicoAnálise Cotações

Rutina

Nombre técnico

Análisis de

cotizaciones

MATA161

País(es):

Brasil

Base(s) de

datos:

Todos

Sistemas

operativos:

Todos

...

Punto de

...

entrada

DescriçãoO Ponto Entrada customizados nas grids "ProdutosItem da Proposta", na rotina Análise de Cotação A chamada do Ponto de Entrada MT161CPO ocorre ao clicar no botão "Análise da cotação" na rotina Analisa Cotações Função Análise da Cotação CotaçãoParâmetrosParâmetroDescriçãoObrigatório contendo os dados das propostas dos fornecedoresNão com os dados da ProdutosNãoRetornoNomeDescriçãoObrigatório com quatro dimensões contendo Os dados das propostas dos fornecedores na mesma estrutura do array recebido como parâmetro acrescido das informações dos campos incluídos com o nome dos campos incluídos na grid "Item da Proposta Os dados dos produtos  na mesma estrutura do array recebido como parâmetro acrescido das informações dos campos incluídos com o nome dos campos incluídos na grid "ProdutosSimExemplos LocalcomosdadosdaspropostasdosFornecedorescomosdadosdaProdutoscomosadicionadosnaItemdaPropostacomosadicionadosnaProdutos LocalcomosdadosdaspropostasdosFornecedorescomosdadosdaProdutoscomosadicionadosnaItemdaPropostacomosadicionadosnaProdutosInformações adicionaisOs nomes dos campos devem ser incluídos nos arrays de retorno na mesma ordem em que foram incluídos nas informações dos produtos e das propostas.
No array de produtos, todos os produtos devem ter os mesmos campos incluídos e no array de dados das propostas todas as propostas devem ter os mesmos campos incluídos.
Este ponto de entrada não efetua gravação de campos na tabela SC8 e também não permite editar as informações dos campos customizados na tela, somente exibição das informações.
Estrutura do Numero do item do produto por proposta escolhida Descrição do Produto Fornecedor Loja Item Numero da proposta Item da solicitacao Preco UnitárioIntegração Gestão Concessionárias Integração Gestão Concessionárias CABEÇALHO da Posição do pedido na Dados do cabeçalho da proposta Cod Fornecedor Loja Nome Proposta pagto Frete soma dos itensITENS DA PROPOSTA Itens da proposta vencendor Item Cod produto Data Observações Filial de Itens da Cotação Nro. da Proposta Preco Unitario vencendor

Descripción:

El punto de

entrada MT161CPO permite incluir campos

personalizados en las grid "Productos" e "

Ítem de la Propuesta", en la rutina Análisis de Cotización (MATA161).

Eventos:

La llamada del punto de entrada MT161CPO ocurre al hacer clic en la opción "Análisis da cotización" en la rutina Analiza Cotizaciones (MATA161).

Programa Fontefuente:

MATA161.PRW

Función:

MATA161 -

Análisis de la cotización - Mapa de

cotización

Parámetros:

Parámetro

Tipo

Descripción

Obligatorio

PARAMIXB[1]

Array

Array

que contiene los datos de las propuestas de los proveedores

No

PARAMIXB[2]

Array

Array

con los datos de la grid "

Productos"

No

Devolución:

Nombre

Tipo

Descripción

Obligatorio

aRet

Array

Array

con cuatro dimensiones que contiene:
1 -

Los datos de las propuestas de los proveedores en la misma estructura del array recibido como parámetro PARAMIXB[1],

incrementado de las informaciones de los campos incluidos.
2 - Array

con el nombre de los campos incluidos en la grid "Ítem de la propuesta".
3 -

Los datos de los productos en la misma estructura del array recibido como parámetro PARAMIXB[2],

incrementado de las informaciones de los campos incluidos.
4 - Array

con el nombre de los campos incluidos en la grid "Productos".

Ejemplos:

Bloco de código
firstline1
linenumberstrue
#INCLUDE "PROTHEUS.CH"

User Function MT161CPO()
  Local aPropostas := PARAMIXB[1] // Array con los 
datos 
de 
las 
propuestas 
de 
los 
proveedores
Local aItens 	 := PARAMIXB[2] // Array 
con los 
datos 
de 
la grid "
Productos"
Local aCampos 	 := {"C8_PRECO"} // Array 
con 
los campos agregados 
en 
la grid "
Ítem de 
la 
propuesta"
Local aCposProd  := {"C8_QTSEGUM","C8_SEGUM"} // Array 
con 
los campos 
agregados en 
la grid "
Productos"
Local aRetorno 	 := {}
Local nX 		 := 0
Local nY 		 := 0
Local nZ 		 := 0
Local nCount 	 := 0
Local aAreaSC8   := SC8->(GetArea())

For nX := 1 To Len(aPropostas)
	For nY := 1 To Len(aPropostas[nX])
		For nZ := 1 To Len(aPropostas[nX][nY][2])
			nCount++

			//C8_FILIAL+C8_NUM+C8_FORNECE+C8_LOJA+C8_ITEM+C8_NUMPRO
			If Len(aPropostas[nX][nY][1]) > 0
				AADD(aPropostas[nX][nY][2][nZ], Posicione("SC8",1,SC8→(C8_FILIAL+C8_NUM)+aPropostas[nX][nY][1][1]+aPropostas[nX][nY][1][2]+aPropostas[nX][nY][2][nZ][2]+aPropostas[nX][nY][2][nZ][12], "C8_PRECO"))
			Else
				AADD(aPropostas[nX][nY][2][nZ],0)
			EndIf 
		Next nZ
	Next nY
Next nX

For nX := 1 To Len(aItens)
	//C8_FILIAL+C8_NUM+C8_FORNECE+C8_LOJA+C8_ITEM+C8_NUMPRO
	AADD(aItens[nX], Posicione("SC8",1,SC8→(C8_FILIAL+C8_NUM)+aItens[nX][10]+aItens[nX][11]+aItens[nX][12]+aItens[nX][13], "C8_QTSEGUM"))
	AADD(aItens[nX], Posicione("SC8",1,SC8→(C8_FILIAL+C8_NUM)+aItens[nX][10]+aItens[nX][11]+aItens[nX][12]+aItens[nX][13], "C8_SEGUM"))
Next nX

AADD(aRetorno, aPropostas)
AADD(aRetorno, aCampos)
AADD(aRetorno, aItens)
AADD(aRetorno, aCposProd)

RestArea(aAreaSC8)

Return aRetorno
Bloco de código
firstline1
linenumberstrue
#INCLUDE "PROTHEUS.CH"

User Function MT161CPO()
  Local aPropostas := PARAMIXB[1] // Array con los 
datos 
de 
las 
propuestas 
de 
los 
proveedores
Local aItens 	 := PARAMIXB[2] // Array 
con los 
datos 
de 
la grid "
Productos"
Local aCampos 	 := {"C8_XTESTE"} // Array 
con 
los campos agregados 
en 
la grid "
Ítem de 
la 
propuesta"
Local aCposProd  := {"C8_XVALOR"} // Array 
con 
los campos 
agregados en 
la grid "
Productos"
Local aRetorno   := {}
Local nX 		 := 0
Local nY 		 := 0
Local nZ 		 := 0
Local nCount 	 := 0

For nX := 1 To Len(aPropostas)
	For nY := 1 To Len(aPropostas[nX])
		For nZ := 1 To Len(aPropostas[nX][nY][2])
			nCount++
			AADD(aPropostas[nX][nY][2][nZ], "TESTE "+Str(nCount,2))
		Next nZ
	Next nY
Next nX

For nX := 1 To Len(aItens)
	AADD(aItens[nX], nX)
Next nX

AADD(aRetorno, aPropostas)
AADD(aRetorno, aCampos)
AADD(aRetorno, aItens)
AADD(aRetorno, aCposProd)

Return aRetorno

Informaciones adicionales:

Los nombres de los campos se deben incluir en los array de devolución en la misma orden en que se incluyeron en las informaciones de los productos y de las propuestas.
En el array de productos, todos los productos deben tener los mismos campos incluidos y, en el array de datos de las propuestas, todas las propuestas deben tener los mismos campos incluidos.
Este punto de entrada no realiza la grabación de campos en la tabla SC8 y tampoco permite editar la información de los campos personalizados en la pantalla, solo muestra la información.

Estructura del Array aPropostas

//aItens[n,x]:

Número del ítem
//aItens[n,1]: C8_PRODUTO
//aItens[n,2]: C8_IDENT
//aItens[n,3]: C8_QUANT
//aItens[n,4]: C8_ UM
//aItens[n,5]: C8_ DATPRF
//aItens[n,6]: C8_ FILENT
//aItens[n,7]: valor

del producto por propuesta elegida
//aItens[n,8]:

Descripción del producto
//aItens[n,9]: Flag finalizado
//aItens[n,10]:

Proveedor
//aItens[n,11]:

Tienda
//aItens[n,12]:

Ítem
//aItens[n,13]:

Número de la propuesta
//aItens[n,14]:

Ítem de la solicitud
//aItens[n,15]:

Precio unitario
//aItens[n,16]: B1_CODITE [

Integración Gestión de

Concesionarias - MV_VEICULO = S]
//aItens[n,17]: B1_GRUPO [

Integración Gestión de

Concesionarias - MV_VEICULO = S]

//

ENCABEZADO
//aPropostas[n] : Número

de la página
//aPropostas[n,p] :

Posición del pedido en la página (1,2)
//aPropostas[n,p,1,x] :

Datos del encabezado de la propuesta
//aPropostas[n,p,1,1 ] :

Cód Proveedor
//aPropostas[n,p,1,2 ] :

Tienda
//aPropostas[n,p,1,3 ] :

Nombre
//aPropostas[n,p,1,4 ] :

Propuesta
//aPropostas[n,p,1,5 ] : Cond

pago
//aPropostas[n,p,1,6 ] :

Flete
//aPropostas[n,p,1,7 ] : Valor total (

suma de nCusto

de los ítems)


//

ÍTEMS DE LA PROPUESTA//
//aPropostas[n,p,2,x] :

Ítems de la propuesta
//aPropostas[n,p,2,x,1] : Flag

vencedor (lWin)
//aPropostas[n,p,2,x,2] :

Ítem (SC8->C8_ITEM)
//aPropostas[n,p,2,x,3] :

Cód producto (SC8->C8_PRODUTO)
//aPropostas[n,p,2,x,4] : Valor total (nCusto)
//aPropostas[n,p,2,x,5] :

Fecha de entrega ((DATE()+SC8->C8_PRAZO))
//aPropostas[n,p,2,x,6] :

Observaciones (SC8->C8_OBS)
//aPropostas[n,p,2,x,7] :

Sucursal Entrega (SC8->C8_FILENT)
//aPropostas[n,p,2,x,8] : Flag finalizado (lFim)
//aPropostas[n,p,2,x,9] : Recno SC8 (SC8->(Recno()))
//aPropostas[n,p,2,x,10] : Ident. (SC8->C8_IDENT)
//aPropostas[n,p,2,x,11] : Total

de ítems de la cotización (Len(aItens))
//aPropostas[n,p,2,x,12] :

Nº de la propuesta (SC8->C8_NUMPRO)
//aPropostas[n,p,2,x,13] :

Precio unitario (SC8->C8_PRECO)
//aPropostas[n,p,2,x,14] : Flag

vencedor (lWinAud)
//aPropostas[n,p,2,x,15] : Motivo Vencedor (SC8->C8_MOTVENC)