Passo a passo: | //Inclusão de uma entrada de veículos por compra gerando nota fiscal #include #include "totvs.ch" User Function INTVX0NF User Function INCVX0NF() Local xAutoCab Local xEAutoCab := {} // Campos Cabecalho Campos Cabecalho Local xAutoItens Local xEAutoItens := {} // Campos Itens Campos Itens Local xAutoIt Local xAutoIt := {} //Local xTIPDOCLocal aParParamBox := {} Local aRetParamBox := {} AADD( aParParamBox , { 1 , RetTitle("F1_DOC") , Space(TamSX3("F1_DOC" )[1]) , "" , "" , "" , "" , 60 , .T. } ) // 1 AADD( aParParamBox , { 1 , RetTitle("F1_SERIE") , Space(TamSX3("F1_SERIE" )[1]) , "" , "" , "" , "" , 40 , .T. } ) // 2 AADD( aParParamBox , { 1 , RetTitle("F1_FORNECE") , Space(TamSX3("F1_FORNECE")[1]) , "" , "" , "" , "" , 40 , .T. } ) // 3 AADD( aParParamBox , { 1 , RetTitle("F1_LOJA") , Space(TamSX3("F1_LOJA" )[1]) , "" , "" , "" , "" , 40 , .T. } ) // 4 AADD( aParParamBox , { 1 , RetTitle("VV1_CHASSI") , Space(TamSX3("VV1_CHASSI")[1]) , "" , "" , "" , "" , 120 , .T. } ) // 5 //AADD( aParParamBox , { 2 , RetTitle("VVF_TIPDOC") , 2 , {"1=NF","3=Integracao SIGAEIC"} , 80 , "", .T. } ) // 6 If ! ParamBox(aParParamBox,"Entrada Veiculo - NF",@aRetParamBox,,,,,,,, .f., .f.) Return EndIf //xTIPDOC := IIf (aRetParamBox[6] == 1 , "1" , "3" ) //cNota := "1812110021 00001601" cNota := aRetParamBox[1] + aRetParamBox[2] + aRetParamBox[3] + aRetParamBox[4] //cNota := FMX_INPUTBOX("Numero da nota fiscal de entrada", Space(TamSX3("F1_DOC")[1] + TamSX3("F1_SERIE")[1])) //cNota := FMX_INPUTBOX("Numero da nota fiscal de entrada", cNota ) // F1_DOC+F1_SERIE+F1_FORNECE+F1_LOJA+F1_TIPO SF1->(dbSetOrder(1)) If ! SF1->(dbSeek(xFilial("SF1") + cNota )) MsgStop("Nota fiscal não encontrada") Return EndIf cPergunta := "Nota: " + SF1->F1_SERIE + " - " + SF1->F1_DOC + CHR(13) + CHR(10) + ; "Fornecedor: " + sf1->F1_FORNECE + " - " + sf1->F1_LOJA If ! MsgYesNo("Confirma importacao da nota fiscal " + chr(13) + chr(10) + chr(13) + chr(10) + cPergunta ) Return EndIf aAdd(xAutoCab,{"VVF_CLIFOR" ,"F" ,Nil}) aAdd(xAutoCab Private lMsErroAuto := .f.
////////////////////////// // NF ENTRADA // ///////////////////////// aAdd(xEAutoCab,{"VVF_FILIAL" , xFilial("VVF") ,Nil}) aAdd(xEAutoCab,{"VVF_FORPRO" , "01" ,Nil}) aAdd aAdd(xAutoCabxEAutoCab,{"VVF_OPEMOVCLIFOR" , "0F" ,Nil}) aAdd aAdd(xAutoCabxEAutoCab,{"VVF_DATMOVCODFOR" ,dDataBase "000001" ,Nil}) aAdd aAdd(xAutoCabxEAutoCab,{"VVF_DATEMILOJA " ,SF1->F1_EMISSAO , "01" ,Nil}) aAdd aAdd(xAutoCabxEAutoCab,{"VVF_CODFORDATEMI" ,SF1->F1_FORNECE dDataBase ,Nil}) aAdd aAdd(xAutoCabxEAutoCab,{"VVF_LOJAFORPAG" ,SF1->F1_LOJA , "001" ,Nil}) aAdd aAdd(xAutoCabxEAutoCab,{"VVF_FORPAGNATURE" ,RetCondVei() , "9999999999" ,Nil}) aAdd aAdd(xAutoCabxEAutoCab,{"VVF_ESPECI" ,SF1->F1_ESPECIE , "SPED" ,Nil}) aAdd(xAutoCab,{"VVF_NUMNFI" ,SF1->F1_DOC ,Nil}) aAdd(xAutoCab,{"VVF_SERNFI" ,SF1->F1_SERIE ,Nil}) aAdd(xAutoCab,{"VVF_NATURE" ,'1010101 ' ,Nil}) // aAdd(xAutoCab,{"VVF_VALMOV" ,SF1->F1_VALBRUT //ITEM xAutoIt := {} aAdd(xAutoIt,{"VVG_FILIAL" , xFilial("VVG") ,Nil}) aAdd(xAutoIt,{"VVG_CHASSI" , "CHASSI_TESTE" ,Nil}) aAdd aAdd(xAutoCabxAutoIt,{"VVFVVG_CHVNFECHAINT" ,SF1->F1_CHVNFE , "000000" ,Nil}) xAutoItens:= {} // Campos Itens VV1->(dbSetOrder(2))
SD1->(dbSetOrder(1)) SD1->(dbSeek(xFilial("SD1") + cNota)) While !SD1->(Eof()) .and. SD1->D1_FILIAL == xFilial("SD1") .and. SD1->(D1_DOC+D1_SERIE+D1_FORNECE+D1_LOJA) == cNota //cChassi := "CHASSI_MVC_EXECAUTO_001 " cChassi := aRetParamBox[5] VV1->(dbSeek(xFilial("VV1") + cChassi)) xAutoIt := {} aAdd aAdd(xAutoIt,{"VVG_CODTES" , "001" ,Nil}) aAdd(xAutoIt,{"VVG_CHASSILOCPAD" ,VV1->VV1_CHASSI , "MN" ,Nil}) aAdd aAdd(xAutoIt,{"VVG_CODTESVALUNI" ,SD1->D1_TES , 999999.99 ,Nil}) aAdd aAdd(xAutoIt,{"VVG_LOCPADESTVEI" ,VV1->VV1_LOCPAD , "0" ,Nil}) aAdd aAdd(xAutoIt,{"VVG_VALUNICODORI" ,SD1->D1_TOTAL , "0" ,Nil}) aAdd aAdd(xAutoIt,{"VVG_PICOSBSITTRI" , "0" ,Nil}) // Pis/Cof Subs aAdd(xAutoItens,xAutoIt) SD1->(dbSkip()) End Private lMsHelpAuto := .t. Private lMsErroAuto := .f. aAdd(xEAutoItens,aClone(xAutoIt))
cBkpFunName := FunName() SetFunNamecBkpFunName := FunName() nBkpModulo := nModulo SetFunName('VEIXA001') nModulo := 11 MSExecAuto( { MSExecAuto( { |a,b,c,d,e,f,g,h,i| VEIXX000 VEIXX000(a,b,c,d,e,f,g,h,i) }, xAutoCab xEAutoCab,xAutoItensxEAutoItens,{} ,3 3 ,"0", ,.f. , ,"3" ) SetFunName SetFunName(cBkpFunName) nModulo := nBkpModuloIf lMsErroAuto MostraErro If lMsErroAuto MostraErro() Else Else MsgInfo MsgInfo("Movimento criado com sucessoMovimento criado com sucesso") EndIf EndIf
Return
//Cancelamento de uma entrada de veículos #include "totvs.ch" User Function DELVX0NF() Local xAutoCab Local xAutoCab := {} // Campos Cabecalho Campos Cabecalho Local xAutoItens Local xAutoItens := {} // Campos Itens Campos Itens Local xAutoIt Local xAutoIt := {}
Local aParParamBox Local aParParamBox := {} Local aRetParamBox Local aRetParamBox := {} AADD( aParParamBox , { 1 , RetTitle
Private lMsHelpAuto := .t. Private lMsErroAuto := .f.
AADD( aParParamBox , { 1 , RetTitle("F1_DOC") , Space Space(TamSX3("F1_DOC" )[1]) , "" , "" , "" , "" , 40 40 , .T. } ) AADD AADD( aParParamBox aParParamBox , { 1 1 , RetTitle RetTitle("F1_SERIE") , Space Space(TamSX3("F1_SERIE" )[1]) , "" , "" , "" , "" , 40 40 , .T. } ) AADD AADD( aParParamBox aParParamBox , { 1 1 , RetTitle RetTitle("F1_FORNECE") , Space Space(TamSX3("F1_FORNECE")[1]) , "" , "" , "" , "" , 40 40 , .T. } ) AADD AADD( aParParamBox aParParamBox , { 1 1 , RetTitle RetTitle("F1_LOJA") , Space Space(TamSX3("F1_LOJA" )[1]) , "" , "" , "" , "" , 40 40 , .T. } ) If If ! ParamBox ParamBox(aParParamBox,"Entrada Veiculo Entrada Veiculo - NF NF",@aRetParamBox,,,,,,,, .f., .f.) Return Return EndIf EndIf
// F1 F1_DOC+F1_SERIE+F1_FORNECE+F1_LOJA+F1_TIPO //cNota cNota := "1812110021 000016011812110021 00001601" cNota cNota := aRetParamBox aRetParamBox[1] + aRetParamBox aRetParamBox[2] + aRetParamBox aRetParamBox[3] + aRetParamBox aRetParamBox[4] //cNota cNota := FMX FMX_INPUTBOX("Numero da nota fiscal de entradaNumero da nota fiscal de entrada", Space Space(TamSX3("F1_DOC")[1] + TamSX3 TamSX3("F1_SERIE")[1])) //cNota cNota := FMX FMX_INPUTBOX("Numero da nota fiscal de entradaNumero da nota fiscal de entrada", cNota cNota ) SF1 SF1->(dbSetOrder(1)) If If ! SF1 SF1->(dbSeek(xFilial("SF1") + cNota cNota )) MsgStop MsgStop("Nota fiscal não encontradaNota fiscal não encontrada") Return Return EndIf EndIf cPergunta cPergunta := "Nota: " + SF1 SF1->F1_SERIE SERIE + " - " + SF1 SF1->F1_DOC DOC + CHR CHR(13) + CHR CHR(10) + ; "Fornecedor: " + sf1 sf1->F1_FORNECE FORNECE + " - " + sf1 sf1->F1_LOJA cNumTraDig := "" If ! MsgYesNo("Confirma Cancelamento da nota fiscal " + chr If ! MsgYesNo("Confirma Cancelamento da nota fiscal " + chr(13) + chr chr(10) + chr chr(13) + chr chr(10) + cPergunta cPergunta ) Return Return EndIfIf !Empty(cNumTraDig) aAdd EndIf
aAdd(xAutoCab, { 'VVF_NUMTRANUMNFI' , cNumTraDig , NIL } ) Else aAdd(xAutoCab, { 'VVF_CODFOR' , SF1 , SF1->F1_FORNECE DOC , NIL NIL } ) aAdd aAdd(xAutoCab, { 'VVF_LOJASERNFI' , SF1 SF1->F1_LOJA SERIE , NIL NIL } ) aAdd aAdd(xAutoCab, { 'VVF_NUMNFICODFOR' , SF1 SF1->F1_DOC FORNECE , NIL NIL } ) aAdd aAdd(xAutoCab, { 'VVF_SERNFILOJA' , SF1 SF1->F1_SERIE LOJA , NIL NIL } ) EndIf Private lMsHelpAuto := .t. Private lMsErroAuto := .f. MSExecAuto MSExecAuto(; { |a,b,c,d,e,f,g,h,i| ; VEIXX000 VEIXX000(a a ,b b ,c c ,d d ,e e ,f f ,g g ,h h ,i i ) },; xAutoCab xAutoCab,{} ,{} ,5 5 ,"0" , ,.f. , , ) If lMsErroAuto If lMsErroAuto MostraErro MostraErro() Else Else MsgInfo MsgInfo("Movimento cancelado com sucessoMovimento cancelado com sucesso.") EndIf EndIf
Return
|