Exemplo: |
O exemplo a seguir mostra como inserir nota fiscal de saída utilizando MSExecAuto. Para uma nota fiscal de saída, é possível adicionar vários itens para a nota. Para cada item da nota pode ser inserido um ou mais notas de remessa:
Local aEEM := {} Local aEES := {}, aItens := {} Local aEYY := {}, aNFRem := {} Private lMsErroAuto := .F.
RpcSetEnv("99", "01")
// Capa da Nota aAdd(aEEM, {"EEM_FILIAL" , "01" , Nil}) aAdd(aEEM, {"EEM_PREEMB" , " " , Nil}) aAdd(aEEM, {"EEM_TIPOCA" , "N" , Nil}) aAdd(aEEM, {"EEM_NRNF" , "000014 ", Nil}) aAdd(aEEM, {"EEM_SERIE" , "1 " , Nil}) aAdd(aEEM, {"EEM_DTNF" , cToD("10/12/2017") , Nil}) aAdd(aEEM, {"EEM_VLNF" , 9010 , Nil}) aAdd(aEEM, {"EEM_VLMERC" , 10010 , Nil}) aAdd(aEEM, {"EEM_TIPONF" , "1" , Nil}) aAdd(aEEM, {"EEM_TXTB" , 8.14 , Nil})
// Itens da Nota aAdd(aEES, {"EES_FILIAL" , "01" , Nil}) aAdd(aEES, {"EES_PREEMB" , "EMB-E-2 " , Nil}) aAdd(aEES, {"EES_NRNF" , "000014 ", Nil}) aAdd(aEES, {"EES_SERIE" , "1 " , Nil}) aAdd(aEES, {"EES_PEDIDO" , "PED-E-2 " , Nil}) aAdd(aEES, {"EES_SEQUEN" , " 1" , Nil}) aAdd(aEES, {"EES_FATSEQ" , "01 " , Nil}) aAdd(aItens, aEES)
// Notas de Remessa aAdd(aEYY, {"EYY_PEDIDO" , "PED-E-2 " , Nil}) aAdd(aEYY, {"EYY_SEQUEN" , " 1" , Nil}) aAdd(aEYY, {"EYY_NFSAI" , "000014 " , Nil}) aAdd(aEYY, {"EYY_SERSAI" , "1" , Nil}) aAdd(aEYY, {"EYY_NFENT" , "22" , Nil}) aAdd(aEYY, {"EYY_SERENT" , "1" , Nil}) aAdd(aEYY, {"EYY_FORN" , "AGENTE" , Nil}) aAdd(aEYY, {"EYY_FOLOJA" , "." , Nil}) aAdd(aEYY, {"EYY_D1ITEM" , "2" , Nil}) aAdd(aEYY, {"EYY_FASE" , "Q" , Nil})
aAdd(aEYY, {"EYY_CHVNFE" , "TESTE1" , Nil}) aAdd(aEYY, {"EYY_QUANT" , 2 , Nil}) aAdd(aEYY, {"EYY_D1PROD" , "CARRO" , Nil}) aAdd(aNFRem, aEYY)
MSExecAuto({|a,b,c,d| EECNF400(a,b,c,d)}, aEEM, aItens, 3, aNFRem)
If lMsErroAuto MostraErro() Else MsgInfo("Finalizado com sucesso") EndIf
Para alterar a nota fiscal de entrada, apenas troque o valor do terceiro parâmetro para 4. MSExecAuto({|a,b,c,d| EECNF400(a,b,c,d)}, aEEM, aItens, 4, aNFRem) Para adicionar um item de nota fiscal ou um item de remessa em uma nota fiscal de saída existente, use a opção 4.
Para excluir a nota fiscal de entrada, apenas troque o valor do terceiro parâmetro para 5. Neste caso, o array dos items e o array das notas de remessa podem estar vazias. Exemplo:
Local aEEM := {} Local aEES := {}, aItens := {} Local aEYY := {}, aNFRem := {} Local aEYY2 := {} Local zzz := RpcSetEnv("99", "01") Local cNf := Avkey("000027", "EEM_NRNF") Local cPedido := AvKey("PED-E-2", "EES_PEDIDO") Local cSequen1 := Avkey(" 1", "EES_SEQUEN") Local cSequen2 := Avkey(" 2", "EES_SEQUEN")
Private lMsErroAuto := .F.// Capa da NotaaAdd(aEEM, { "EEM_FILIAL", "01" , Nil}) aAdd(aEEM, { "EEM_PREEMB", AvKey( "", "EEM_PREEMB") , Nil}) aAdd(aEEM, { "EEM_TIPOCA", "N" , Nil}) aAdd(aEEM, { "EEM_NRNF" , cNF, Nil}) aAdd(aEEM, { "EEM_SERIE" , "1 " , Nil}) aAdd(aEEM, { "EEM_DTNF" , cToD( "10/12/2017") , Nil}) aAdd(aEEM, { "EEM_VLNF" , 1010 , Nil}) aAdd(aEEM, { "EEM_VLMERC", 1011 , Nil}) aAdd(aEEM, { "EEM_TIPONF" , "1" , Nil}) aAdd(aEEM, { "EEM_TXTB" , 1021 , Nil}) MSExecAuto({|a,b,c,d| EECNF400(a,b,c,d)}, aEEM, aItens, 5, aNFRem) If lMsErroAuto MostraErro() Else MsgInfo( "Finalizado com sucesso") EndIf
|