Para efetuar a inclusão de um Purchase Order via rotina automática, existem duas possibilidades que podem ser abordadas. A primeira opção é o envio dos dados de inclusão, já informando uma Solicitação de Importação previamente cadastrada. A segunda forma de Incçusão, é não informar um código para a Solicitação de Importação, neste caso o sistema efetuará o cadastro da Solicitação de forma automática para os itens enviados na execução da Inclusão.
- Quando não for informado o número da Solicitação de Importação (W3_SI_NUM), a sequência dos itens do Purchase Order será a informada no campo W3_REG;
- Quando for informada a Solicitação de Importação, o campo W3_REG deve corresponder a sequência do item na Solicitação de Importação;
|
#Include 'Protheus.ch'
#Include 'Totvs.ch'
#Include 'Tbiconn.ch'
User Function PO400Auto()
Local aCab := {} //Array com os dados da Capa do Purchase Order
Local aItem := {} //Array com os dados dos Itens do Purchase Order
Local nOpc:= 3 //Opção a ser executada. 3-Inclusão
Private lMsErroAuto := .F.
Private lMsHelpAuto := .T.
RPCSetEnv("99", "01", NIL, NIL, "EIC", NIL, {"SW2", "SW3"})
//Capa do Purchase Order
AADD(aCab,{"W2_PO_NUM" , "PO-0003" , NIL})
AADD(aCab,{"W2_PO_DT" , dDataBase , NIL})
AADD(aCab,{"W2_FORN" , "0001 " , NIL})
AADD(aCab,{"W2_FORLOJ" , "01" , NIL})
AADD(aCab,{"W2_COMPRA" , "GEN" , NIL})
AADD(aCab,{"W2_IMPORT" , "GN" , NIL})
AADD(aCab,{"W2_AGENTE" , "GN " , NIL})
AADD(aCab,{"W2_TIPO_EM" , "GN" , NIL})
AADD(aCab,{"W2_ORIGEM" , "SPO" , NIL})
AADD(aCab,{"W2_DEST" , "GRU" , NIL})
AADD(aCab,{"W2_INCOTER" , "CIF" , NIL})
AADD(aCab,{"W2_FREPPCC" , "PP" , NIL})
AADD(aCab,{"W2_COND_PA" , "GN " , NIL})
AADD(aCab,{"W2_MOEDA" , "US$" , NIL})
AADD(aCab,{"W2_DT_PAR" , dDataBase , NIL})
AADD(aCab,{"W2_PARID_U" , 1.000000 , NIL})
AADD(aCab,{"W2_E_LC" , "2" , NIL})
//Dados para os Itens do Purchase Order
aAdd(aItem,{;
{"W3_COD_I" , "GEN-00" , NIL},;
{"W3_CC" , "GEN00" , NIL},;
{"W3_REG" , 1 , NIL},;
{"W3_PRECO" , 100.00000 , NIL},;
{"W3_FABR" , "0001 " , NIL},;
{"W3_FABLOJ" , "01" , NIL},;
{"W3_FORN" , "0001 " , NIL},;
{"W3_FORLOJ" , "01" , NIL},;
{"W3_QTDE" , 10.000 , NIL},;
{"W3_DT_EMB" , dDataBase , NIL},;
{"W3_DT_ENTR", dDataBase , NIL},;
{"W3_PESOL" , 2.70000000 , NIL},;
{"W3_PESO_BR", 1.000000 , NIL}})
//{"W3_SI_NUM" , "4748-1", NIL}}) //A SI deve ser informada quando já possuir a solicitação gerada no sistema. QUando não informada, será gerada de forma automática
aAdd(aItem,{;
{"W3_COD_I" , "GEN-00" , NIL},;
{"W3_CC" , "GEN00" , NIL},;
{"W3_REG" , 2 , NIL},;
{"W3_PRECO" , 100.00000 , NIL},;
{"W3_FABR" , "0001 " , NIL},;
{"W3_FABLOJ" , "01" , NIL},;
{"W3_FORN" , "0001 " , NIL},;
{"W3_FORLOJ" , "01" , NIL},;
{"W3_QTDE" , 15.000 , NIL},;
{"W3_DT_EMB" , dDataBase , NIL},;
{"W3_DT_ENTR", dDataBase , NIL},;
{"W3_PESOL" , 3.10000000 , NIL},;
{"W3_PESO_BR", 1.000000 , NIL}})
//{"W3_SI_NUM" , "4748-2", NIL}}) //A SI deve ser informada quando já possuir a solicitação gerada no sistema. QUando não informada, será gerada de forma automática
MSExecAuto({|a,b,c,d| EICPO400(a,b,c,d)}, NIL, aCab, aItem, nOpc)
If lMsErroAuto
MostraErro()
Else
MsgInfo("Ok - P.O.")
EndIf
RPCClearEnv()
Return Nil
|
|
#Include 'Protheus.ch'
#Include 'Totvs.ch'
#Include 'Tbiconn.ch'
User Function 1PO400Auto()
Local aCab := {} //Array com os dados da Capa do Purchase Order
Local aItem := {} //Array com os dados dos Itens do Purchase Order
Local nOpc:= 4 //Opção a ser executada. 4-Alteração
Private lMsErroAuto := .F.
Private lMsHelpAuto := .T.
RPCSetEnv("99", "01", NIL, NIL, "EIC", NIL, {"SW2", "SW3"})
//Capa do Purchase Order
AADD(aCab,{"W2_PO_NUM" , "PO-0004" , NIL})
AADD(aCab,{"W2_PO_DT" , dDataBase , NIL})
AADD(aCab,{"W2_FORN" , "GEN-00" , NIL})
AADD(aCab,{"W2_FORLOJ" , "00" , NIL})
AADD(aCab,{"W2_COMPRA" , "GEN" , NIL})
AADD(aCab,{"W2_IMPORT" , "GN" , NIL})
AADD(aCab,{"W2_AGENTE" , "GN2" , NIL})
AADD(aCab,{"W2_TIPO_EM" , "GN" , NIL})
AADD(aCab,{"W2_ORIGEM" , "SPO" , NIL})
AADD(aCab,{"W2_DEST" , "GRU" , NIL})
AADD(aCab,{"W2_INCOTER" , "CIF" , NIL})
AADD(aCab,{"W2_FREPPCC" , "PP" , NIL})
AADD(aCab,{"W2_COND_PA" , "GN " , NIL})
AADD(aCab,{"W2_MOEDA" , "US$" , NIL})
AADD(aCab,{"W2_DT_PAR" , dDataBase , NIL})
AADD(aCab,{"W2_PARID_U" , 1.000000 , NIL})
AADD(aCab,{"W2_E_LC" , "2" , NIL})
//Dados para os Itens do Purchase Order
aAdd(aItem,{;
{"W3_COD_I" , "PA-001" , NIL},;
{"W3_CC" , "GEN00" , NIL},;
{"W3_REG" , 1 , NIL},;
{"W3_PRECO" , 101.00000 , NIL},;
{"W3_FABR" , "GEN-01" , NIL},;
{"W3_FABLOJ" , "00" , NIL},;
{"W3_FORN" , "GEN-00" , NIL},;
{"W3_FORLOJ" , "00" , NIL},;
{"W3_QTDE" , 11.000 , NIL},;
{"W3_DT_EMB" , dDataBase , NIL},;
{"W3_DT_ENTR", dDataBase , NIL},;
{"W3_PESOL" , 2.90000000 , NIL},;
{"W3_PESO_BR", 1.000000 , NIL},;
{"W3_SI_NUM" , "SITET1", NIL}})
aAdd(aItem,{;
{"W3_COD_I" , "PA-001" , NIL},;
{"W3_CC" , "GEN00" , NIL},;
{"W3_REG" , 2 , NIL},;
{"W3_PRECO" , 102.00000 , NIL},;
{"W3_FABR" , "GEN-01" , NIL},;
{"W3_FABLOJ" , "00" , NIL},;
{"W3_FORN" , "GEN-00" , NIL},;
{"W3_FORLOJ" , "00" , NIL},;
{"W3_QTDE" , 45.000 , NIL},;
{"W3_DT_EMB" , dDataBase , NIL},;
{"W3_DT_ENTR", dDataBase , NIL},;
{"W3_PESOL" , 3.30000000 , NIL},;
{"W3_PESO_BR", 1.000000 , NIL},;
{"W3_SI_NUM" , "SITET1", NIL}})
aAdd(aItem,{;
{"W3_COD_I" , "GEN-00" , NIL},;
{"W3_CC" , "GEN00" , NIL},;
{"W3_REG" , 3 , NIL},;
{"W3_PRECO" , 103.00000 , NIL},;
{"W3_FABR" , "GEN-01" , NIL},;
{"W3_FABLOJ" , "00" , NIL},;
{"W3_FORN" , "GEN-00" , NIL},;
{"W3_FORLOJ" , "00" , NIL},;
{"W3_QTDE" , 10.000 , NIL},;
{"W3_DT_EMB" , dDataBase , NIL},;
{"W3_DT_ENTR", dDataBase , NIL},;
{"W3_PESOL" , 3.30000000 , NIL},;
{"W3_PESO_BR", 1.000000 , NIL},;
{"W3_SI_NUM" , "SITET1" , NIL},;
{"AUTDELETA" , "S" , NIL}}) //Informa que este item deve ser deletado no PO. Seu saldo retornará para o item na SI
MSExecAuto({|a,b,c,d| EICPO400(a,b,c,d)}, NIL, aCab, aItem, nOpc)
If lMsErroAuto
MostraErro()
Else
MsgInfo("Ok - P.O.")
EndIf
RPCClearEnv()
Return Nil
|
|
Para a realização da exclusão do Purchase Order via rotina automática, é necessário apenas que seja enviado as informações referente a capa do PO, podendo também, de forma opcional, enviar os dados dos itens.
#Include 'Protheus.ch'
#Include 'Totvs.ch'
#Include 'Tbiconn.ch'
User Function 1PO400Auto()
Local aCab := {} //Array com os dados da Capa do Purchase Order
Local aItem := {} //Array com os dados dos Itens do Purchase Order
Local nOpc:= 5 //Opção a ser executada. -Exclusão
Private lMsErroAuto := .F.
Private lMsHelpAuto := .T.
RPCSetEnv("99", "01", NIL, NIL, "EIC", NIL, {"SW2", "SW3"})
//Capa do Purchase Order
AADD(aCab,{"W2_PO_NUM" , "PO-0004" , NIL})
AADD(aCab,{"W2_PO_DT" , dDataBase , NIL})
AADD(aCab,{"W2_FORN" , "0001 " , NIL})
AADD(aCab,{"W2_FORLOJ" , "01" , NIL})
AADD(aCab,{"W2_COMPRA" , "GEN" , NIL})
AADD(aCab,{"W2_IMPORT" , "GN" , NIL})
AADD(aCab,{"W2_AGENTE" , "GN " , NIL})
AADD(aCab,{"W2_TIPO_EM" , "GN" , NIL})
AADD(aCab,{"W2_ORIGEM" , "SPO" , NIL})
AADD(aCab,{"W2_DEST" , "GRU" , NIL})
AADD(aCab,{"W2_INCOTER" , "CIF" , NIL})
AADD(aCab,{"W2_FREPPCC" , "PP" , NIL})
AADD(aCab,{"W2_COND_PA" , "GN " , NIL})
AADD(aCab,{"W2_MOEDA" , "US$" , NIL})
AADD(aCab,{"W2_DT_PAR" , dDataBase , NIL})
AADD(aCab,{"W2_PARID_U" , 1.000000 , NIL})
AADD(aCab,{"W2_E_LC" , "2" , NIL})
//Dados para os Itens do Purchase Order
aAdd(aItem,{;
{"W3_COD_I" , "GEN-00" , NIL},;
{"W3_CC" , "GEN00" , NIL},;
{"W3_REG" , 1 , NIL},;
{"W3_PRECO" , 100.00000 , NIL},;
{"W3_FABR" , "0001 " , NIL},;
{"W3_FABLOJ" , "01" , NIL},;
{"W3_FORN" , "0001 " , NIL},;
{"W3_FORLOJ" , "01" , NIL},;
{"W3_QTDE" , 10.000 , NIL},;
{"W3_DT_EMB" , dDataBase , NIL},;
{"W3_DT_ENTR", dDataBase , NIL},;
{"W3_PESOL" , 2.90000000 , NIL},;
{"W3_PESO_BR", 1.000000 , NIL}})
aAdd(aItem,{;
{"W3_COD_I" , "GEN-00" , NIL},;
{"W3_CC" , "GEN00" , NIL},;
{"W3_REG" , 2 , NIL},;
{"W3_PRECO" , 100.00000 , NIL},;
{"W3_FABR" , "0001 " , NIL},;
{"W3_FABLOJ" , "01" , NIL},;
{"W3_FORN" , "0001 " , NIL},;
{"W3_FORLOJ" , "01" , NIL},;
{"W3_QTDE" , 15.000 , NIL},;
{"W3_DT_EMB" , dDataBase , NIL},;
{"W3_DT_ENTR", dDataBase , NIL},;
{"W3_PESOL" , 3.30000000 , NIL},;
{"W3_PESO_BR", 1.000000 , NIL}})
MSExecAuto({|a,b,c,d| EICPO400(a,b,c,d)}, NIL, aCab, aItem, nOpc)
If lMsErroAuto
MostraErro()
Else
MsgInfo("Ok - P.O.")
EndIf
RPCClearEnv()
Return Nil
|
|
|