Tempo aproximado para leitura: 05:00 min
Dúvida
Preciso por gentileza de um exemplo de Rotina Automática para Alteração do Pedido de Exportação.
Ambiente
Cross Segmento - TOTVS Backoffice (Linha Protheus) -Easy Export Control- Todas as versões
Solução
Para um melhor entendimento segue abaixo um RDMake com a inclusão, alteração e exclusão de um pedido e seus auxiliares.
#INCLUDE"TOTVS.CH"User Function MyEECAP100()Local lRot := .T.Local cPedido :="0000000001"Private aPDocs := {}Private aPPedidos := {}Private aPAgentes := {}Private aPNotifys := {}Private aPProdutos := {}Private aCondPag := {}Private aEmb := {}/************************//Inicializa o ambiente*************************/RpcSetEnv("99","01")nModulo :=29cModulo :="EEC"__CUSERID :="000000"whilelRot//Executa a integração para Incluir o PedidoIf MsgYesNo("Deseja Incluir o Pedido e Auxiliares?","Aviso")IncAP100(cPedido,3,3)//Executa a Alteração Alterando o Pedido e Reenviando os AuxiliareselseIf MsgYesNo("Deseja Alterar o Pedido e Auxiliares?","Aviso")IncAP100(cPedido,4,4)//Executa a Alteração Alterando o Pedido e Excluindo os AuxiliareselseIf MsgYesNo("Deseja Alterar o Pedido e Excluir Auxiliares?","Aviso")IncAP100(cPedido,4,5)//Executa a Alteração Excluindo o PedidoelseIf MsgYesNo("Deseja Excluir o Pedido?","Aviso")IncAP100(cPedido,5,5)elseIf MsgYesNo("Deseja parar a rotina?","Aviso")lRot := .F.EndIfenddoReturn Nil/***********************************************************************************************************************************/Static Function IncAP100(cPedido, nOpc, nOpcDet)Local aCab := {}, aItens := {}, aAux := {}Local nP :=0, nI, nN, nDLocal cFornece :=""Local cFoLoja :=""Private lMsErroAuto := .f.aPDocs := {}aPPedidos := {}aPAgentes := {}aPNotifys := {}aPProdutos := {}aCondPag := {}aEmb := {}aItens := {}aItem := {}ifnOpc ==3aCab := {}aadd( aCab , {'EE7_PEDIDO', cPedido , NIL} )aadd( aCab , {'EE7_IMPORT',"000001", NIL} )aadd( aCab , {'EE7_IMLOJA',"01", NIL} )aadd( aCab , {'EE7_IMPODE',"NOME CLIENTE", NIL} )aadd( aCab , {'EE7_FORN',"000001", NIL} )aadd( aCab , {'EE7_FOLOJA',"01", NIL} )aadd( aCab , {'EE7_IDIOMA',"INGLES-INGLES", NIL} )aadd( aCab , {'EE7_CONDPA',"00001", NIL} )aadd( aCab , {'EE7_MPGEXP',"003", NIL} )aadd( aCab , {'EE7_INCOTE','FOB', NIL} )aadd( aCab , {'EE7_FRPPCC',"CC", NIL} )aadd( aCab , {'EE7_MOEDA','US$', NIL} )aadd( aCab , {'EE7_CALCEM','1', NIL} )aadd( aCab , {'EE7_VIA',"001", NIL} )//Enviando o ATUEMB igual a S, o sistema realizará a integração automática do Embarque de Exportação.aAdd(aCab, {"ATUEMB","S", Nil})aAdd(aItem, {'EE8_SEQUEN', str(1) , NIL} )aAdd(aItem, {'EE8_COD_I',"0000000001", NIL} )aAdd(aItem, {'EE8_FORN',"000001", NIL} )aAdd(aItem, {'EE8_FOLOJA',"01", NIL} )aAdd(aItem, {'EE8_SLDINI',100, NIL} )aAdd(aItem, {'EE8_EMBAL1',"001", NIL} )aAdd(aItem, {'EE8_QE',1, NIL} )aAdd(aItem, {'EE8_PRECO ',100, NIL} )aAdd(aItem, {'EE8_PSLQUN',1, NIL} )aAdd(aItem, {'EE8_TES',"501", NIL} )aAdd(aItem, {'EE8_POSIPI',"00000000", NIL} )aAdd(aItem, {"AUTDELETA","N", Nil} )AADD( aItens, aClone(aItem))aItem := {}Elseif nOpc ==4aadd( aCab , {'EE7_PEDIDO', cPedido , NIL} )aadd( aCab , {'EE7_IMPORT',"000001", NIL} )aadd( aCab , {'EE7_IMLOJA',"01", NIL} )aadd( aCab , {'EE7_IMPODE',"NOME CLIENTE", NIL} )aadd( aCab , {'EE7_FORN',"000001", NIL} )aadd( aCab , {'EE7_FOLOJA',"01", NIL} )aadd( aCab , {'EE7_IDIOMA',"INGLES-INGLES", NIL} )aadd( aCab , {'EE7_CONDPA',"00002", NIL} )aadd( aCab , {'EE7_MPGEXP',"003", NIL} )aadd( aCab , {'EE7_INCOTE','FOB', NIL} )aadd( aCab , {'EE7_FRPPCC',"CC", NIL} )aadd( aCab , {'EE7_MOEDA','US$', NIL} )aadd( aCab , {'EE7_CALCEM','1', NIL} )aadd( aCab , {'EE7_VIA',"002", NIL} )aAdd(aItem, {'EE8_SEQUEN', str(1) , NIL} )aAdd(aItem, {'EE8_COD_I',"0000000001", NIL} )aAdd(aItem, {'EE8_FORN',"000001", NIL} )aAdd(aItem, {'EE8_FOLOJA',"01", NIL} )aAdd(aItem, {'EE8_SLDINI',100, NIL} )aAdd(aItem, {'EE8_EMBAL1',"001", NIL} )aAdd(aItem, {'EE8_QE',1, NIL} )aAdd(aItem, {'EE8_PRECO ',100, NIL} )aAdd(aItem, {'EE8_PSLQUN',1, NIL} )aAdd(aItem, {'EE8_TES',"501", NIL} )aAdd(aItem, {'EE8_POSIPI',"00000000", NIL} )aAdd(aItem, {"AUTDELETA","S", Nil} )AADD( aItens, aClone(aItem))aItem := {}aAdd(aItem, {'EE8_SEQUEN', str(1) , NIL} )aAdd(aItem, {'EE8_COD_I',"0000000002", NIL} )aAdd(aItem, {'EE8_FORN',"000001", NIL} )aAdd(aItem, {'EE8_FOLOJA',"01", NIL} )aAdd(aItem, {'EE8_SLDINI',200, NIL} )aAdd(aItem, {'EE8_EMBAL1',"002", NIL} )aAdd(aItem, {'EE8_QE',2, NIL} )aAdd(aItem, {'EE8_PRECO ',200, NIL} )aAdd(aItem, {'EE8_PSLQUN',2, NIL} )aAdd(aItem, {'EE8_TES',"501", NIL} )aAdd(aItem, {'EE8_POSIPI',"00000000", NIL} )aAdd(aItem, {"AUTDELETA","N", Nil} )AADD( aItens, aClone(aItem))aItem := {}elseIf nOpc ==5aadd( aCab , {'EE7_PEDIDO', cPedido , NIL} )aadd( aCab , {'EE7_IMPORT',"000001", NIL} )aadd( aCab , {'EE7_IMLOJA',"01", NIL} )aadd( aCab , {'EE7_FORN',"000001", NIL} )aadd( aCab , {'EE7_FOLOJA',"01", NIL} )aAdd( aCab , {"AUTDELETA","S", Nil})aAdd(aItem, {'EE8_SEQUEN', str(1) , NIL} )aAdd(aItem, {'EE8_COD_I',"0000000002", NIL} )aAdd(aItem, {'EE8_FORN',"000001", NIL} )aAdd(aItem, {'EE8_FOLOJA',"01", NIL} )aAdd(aItem, {"AUTDELETA","S", Nil} )AADD( aItens, aClone(aItem))aItem := {}EndIf// Complementos dos pedido Notifys, Documentos e AgentesIf alltrim(str(nOpcDet)) $"3|4|5".and. nOpc <>5aAux := {}// NotifysaNotifys := {}aNotify := {}ifnOpcDet ==3// inclusão dos notifysaAdd(aNotify, {"EEN_IMPORT","000001", Nil})aAdd(aNotify, {"EEN_IMLOJA","01", Nil})elseif nOpcDet ==4// alteração dos notifysaAdd(aNotify, {"EEN_IMPORT","000001", Nil})aAdd(aNotify, {"EEN_IMLOJA","01", Nil})aAdd(aNotify, {"AUTDELETA","S", Nil})aAdd(aNotify, {"EEN_IMPORT","000002", Nil})aAdd(aNotify, {"EEN_IMLOJA","01", Nil})aAdd(aNotify, {"AUTDELETA","N", Nil})elseIf nOpcDet ==5// exclusão do notifyaAdd(aNotify, {"EEN_IMPORT","000001", Nil})aAdd(aNotify, {"EEN_IMLOJA","01", Nil})aAdd(aNotify, {"AUTDELETA","S", Nil})EndIfaAdd(aNotifys, aNotify)aAdd(aAux, {"EEN", aNotifys})// DocumentosaDocs := {}aDoc := {}ifnOpcDet ==3// inclusão dos DocumentosaAdd(aDoc, {"EXB_TIPO","1", Nil})aAdd(aDoc, {"EXB_CODATV","01", Nil})elseif nOpcDet ==4// alteração dos DocumentosaAdd(aDoc, {"EXB_TIPO","1", Nil})aAdd(aDoc, {"EXB_CODATV","01", Nil})aAdd(aDoc, {"AUTDELETA","S", Nil})aAdd(aDoc, {"EXB_TIPO","1", Nil})aAdd(aDoc, {"EXB_CODATV","02", Nil})aAdd(aDoc, {"AUTDELETA","N", Nil})elseIf nOpcDet ==5// exclusão do documentoaAdd(aDoc, {"EXB_TIPO","1", Nil})aAdd(aDoc, {"EXB_CODATV","02", Nil})aAdd(aDoc, {"AUTDELETA","S", Nil})EndIfaAdd(aDocs, aDoc)aAdd(aAux, {"EXB", aDocs})// AgentesaAgentes := {}aAgente := {}ifnOpcDet ==3// inclusão dos AgentesaAdd(aAgente, {"EEB_CODAGE","001", Nil})aAdd(aAgente, {"EEB_TIPCOM","1", Nil})// 1-A Remeter | 2-Conta Grafcica | 3-Deduzir da FaturaaAdd(aAgente, {"EEB_TIPCVL","2", Nil})// 1-Percentual | 2-Valor Fixo | 3-Percentual por itemaAdd(aAgente, {"EEB_VALCOM",10, Nil})aAdd(aAgente, {"EEB_REFAGE","NOME AGENTE", Nil})elseif nOpcDet ==4// alteração dos AgentesaAdd(aAgente, {"EEB_CODAGE","001", Nil})aAdd(aAgente, {"EEB_TIPCOM","1", Nil})// 1-A Remeter | 2-Conta Grafcica | 3-Deduzir da FaturaaAdd(aAgente, {"EEB_TIPCVL","2", Nil})// 1-Percentual | 2-Valor Fixo | 3-Percentual por itemaAdd(aAgente, {"EEB_VALCOM",10, Nil})aAdd(aAgente, {"EEB_REFAGE","NOME AGENTE", Nil})aAdd(aAgente, {"AUTDELETA","S", Nil})aAdd(aAgente, {"EEB_CODAGE","002", Nil})aAdd(aAgente, {"EEB_TIPCOM","1", Nil})// 1-A Remeter | 2-Conta Grafcica | 3-Deduzir da FaturaaAdd(aAgente, {"EEB_TIPCVL","2", Nil})// 1-Percentual | 2-Valor Fixo | 3-Percentual por itemaAdd(aAgente, {"EEB_VALCOM",10, Nil})aAdd(aAgente, {"EEB_REFAGE","NOME AGENTE", Nil})aAdd(aAgente, {"AUTDELETA","N", Nil})elseIf nOpcDet ==5// exclusão do agenteaAdd(aAgente, {"EEB_CODAGE","002", Nil})aAdd(aAgente, {"EEB_TIPCOM","1", Nil})// 1-A Remeter | 2-Conta Grafcica | 3-Deduzir da FaturaaAdd(aAgente, {"EEB_TIPCVL","2", Nil})// 1-Percentual | 2-Valor Fixo | 3-Percentual por itemaAdd(aAgente, {"AUTDELETA","S", Nil})EndIfaAdd(aAgentes, aAgente)aAdd(aAux, {"EEB", aAgentes})EndIf// execução DA rotina automáticaMsAguarde({|| MSExecAuto( {|X,Y,Z,Aux| EECAP100(X,Y,Z,Aux)},aCab ,aItens, nOpc, aAux) },"Integrando Pedido Automático")If lMsErroAutoMostraErro()lMsErroAuto := .F.ElsecAcao := iif( nOpc ==3," incluido",iif(nOpc==4," alterado"," excluido"))MsgInfo("Pedido "+ cAcao +" com sucesso!","Aviso")EndIfReturn
Saiba Mais
EECAP100 - MsExecAuto Rotina Automática de Pedido de Exportação
0 Comentários