Árvore de páginas

Versões comparadas

Chave

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

...

Produto:

TOTVS Backoffice

Linha de Produto:

Linha Protheus

Segmento:

Backoffice

Módulo:SIGAFAT - Faturamento
Função:MT410EAI - Mensagem Única Pedido de Venda (Order
Abrangências:Microsiga Protheus 12
Versões:Microsiga Protheus 12
Compatível Países:Todos
Sistemas Operacionais:Todos
Compatível com as Bases de Dados:TodosTodos 
Nível de Acesso:Nível 1 (Acesso Clientes)
Idiomas:Todos

...

Retorno

Tipo

Descrição

Obrigatório

aRetArrayArray contendo os dados dos campos que serão processados na rotina Pedido de Vendas.Sim


06. EXEMPLO

Bloco de código
languagecpp
titleExemplo:
#Include'Totvs.ch'

User Function MT410EAI
	Local aCab       := aClone(PARAMIXB[1])
	Local aItens     := aClone(PARAMIXB[2])
	Local nTamC6ITEM := GetSx3Cache("C6_ITEM","X3_TAMANHO")
	Local nI         := 1
	Local oXmlAux	 := Nil
	Local oJsonAux	 := Nil
	Local aRet       := {} //Customizações do usuário
    Local nPosCli    := 0
    Local nPosCPag   := 0

	IF FWIsInCallStack("MATI410")

        //Verifica o Cabeçalho do Pedido de Vendas 
        nPosCli  := Ascan(aCab,{ |X| X[1] == "C5_CLIENTE" })
        nPosCPag := Ascan(aCab,{ |X| X[1] == "C5_CONDPAG" })
        If aCab[nPosCli][2] == "FAT001"
            Aadd(aCab,{"C5_DESCONT", 5, NIL})
        EndIf

		For nI := 1 To Len(oXml:_TOTVSMessage:_BusinessMessage:_BusinessContent:_SalesOrderItens:_Item)
			oXmlAux := oXml:_TOTVSMessage:_BusinessMessage:_BusinessContent:_SalesOrderItens:_Item[nI]
			
			//Verifica se existe a TAG Customizada <ItemDeleted>1</ItemDeleted> no XML. 
			If Type("oXmlAux:_ItemDeleted:Text") != "U" 
				//Caso a TAG Customizada <ItemDeleted> seja 1 será excluido esse item, caso seja diferente de 1 o item apenas será alterado.
				If  oXmlAux:_ItemDeleted:Text == "1"
					aItens[nI][AsCan(aItens[nI][1],"C6_ITEM")] :={"LINPOS","C6_ITEM",PadR(oXmlAux:_OrderItem:Text, nTamC6ITEM)}
					Aadd(aItens[nI],{"AUTDELETA", "S", NIL})
				Else
					aItens[nI][AsCan(aItens[nI][1],"C6_ITEM")] :={"LINPOS","C6_ITEM",PadR(oXmlAux:_OrderItem:Text, nTamC6ITEM)}
					Aadd(aItens[nI],{"AUTDELETA", "N", NIL})
				EndIf
			EndIf
		Next

	ElseIf FWIsInCallStack("MATI410O")

	  	//Verifica o Cabeçalho do Pedido de Vendas 
        nPosCli  := Ascan(aCab,{ |X| X[1] == "C5_CLIENTE" })
        nPosCPag := Ascan(aCab,{ |X| X[1] == "C5_CONDPAG" })
        If aCab[nPosCli][2] == "FAT001"
            aCab[nPosCPag][2] := "001"
        EndIf 

		For nI := 1 To Len(oLtOfItem)
			oJsonAux := oLtOfItem[nI]
			
			//Verifica se existe a TAG Customizada <ItemDeleted>1</ItemDeleted> no JSON. 
			If Type("oJsonAux:getPropValue('ItemDeleted')") != "U" 
				//Caso a TAG Customizada <ItemDeleted> sejA 1 será excluido esse item, caso seja diferente de 1 o item apenas será alterado.
				If oJsonAux:getPropValue('ItemDeleted') == "1"
					aItens[nI][AsCan(aItens[nI][1],"C6_ITEM")] :={"LINPOS","C6_ITEM",PadR(oJsonAux:getPropValue("OrderItem"), nTamC6ITEM)}
					Aadd(aItens[nI],{"AUTDELETA", "S", NIL})
				Else
					aItens[nI][AsCan(aItens[nI][1],"C6_ITEM")] :={"LINPOS","C6_ITEM",PadR(oJsonAux:getPropValue('OrderItem'), nTamC6ITEM)}
					Aadd(aItens[nI],{"AUTDELETA", "N", NIL})
				EndIf
			EndIf
		Next

	EndIf
		
	aRet := {aCab,aItens}

Return aRet