Dúvida
Estou tentando alterar um pedido com base em outro, porem ao exclui o primeiro item do pedido e tento replicar os mesmo itens restantes no segundo não é possível.
Ambiente
Cross Segmento - TOTVS Backoffice Linha Protheus – ADVPL – A partir da versão 11.80
Solução
Segue exemplo de exclusão de um item na rotina automática Mata410
#Include 'Protheus.ch'
#include 'TBICONN.CH'
User Function Mata410Wil() //Exemplo de rotina Mata410 excluindo um item
Local aCabec := {}
Local aItens := {}
Local nX := {}
Private cDoc := 'A01908'
Private lMsErroAuto := .F.
PREPARE ENVIRONMENT EMPRESA '99' FILIAL '01' MODULO "FAT" TABLES "SC5","SC6","SA1","SA2","SB1","SB2","SF4"
aCabec := {}
aItens := {}
aadd(aCabec,{"C5_NUM",cDoc,Nil})
aadd(aCabec,{"C5_TIPO","N",Nil})
aadd(aCabec,{"C5_CLIENTE",SA1->A1_COD,Nil})
aadd(aCabec,{"C5_LOJACLI",SA1->A1_LOJA,Nil})
aadd(aCabec,{"C5_LOJAENT",SA1->A1_LOJA,Nil})
aadd(aCabec,{"C5_CONDPAG",SE4->E4_CODIGO,Nil})
For nX := 1 To 3
aLinha := {}
If nX == 1
aadd(aLinha,{"LINPOS","C6_ITEM",StrZero(nX,2)})
aadd(aLinha,{"AUTDELETA","S",Nil})
Else
aadd(aLinha,{"AUTDELETA","N",Nil})
EndIf
aadd(aLinha,{"C6_ITEM",StrZero(nX,2),Nil})
aadd(aLinha,{"C6_PRODUTO","PROD00000000000",Nil})
aadd(aLinha,{"C6_QTDVEN",3,Nil})
aadd(aLinha,{"C6_PRCVEN",100,Nil})
aadd(aLinha,{"C6_PRUNIT",100,Nil})
aadd(aLinha,{"C6_VALOR",300,Nil})
aadd(aLinha,{"C6_TES","501",Nil})
aadd(aItens,aLinha)
Next nX
ConOut(PadC("Teste de alteracao",80))
ConOut("Inicio: "+Time())
MSExecAuto({|x,y,z|mata410(x,y,z)},aCabec,aItens,4)
ConOut("Fim : "+Time())
ConOut(Repl("-",80))
If !lMsErroAuto
ConOut("Incluido com sucesso! ")
Else
ConOut("Erro na inclusao!")
Mostraerro()
EndIf
RESET ENVIRONMENT
Return
0 Comentários