Olá, segue um exemplo prático de uma função para inserir pedido de vendas via ExecAuto:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 |
Static Function fInsPVenda(aCbPV, aItPV) Local nStatus := 0 Local cItem Local cTes Local aCabPV := {} Local aItemPV := {} Local dDataEntrega Local aLinhaItem := {} Local aArea Local cCodCliS := "" Local cLojCliS := "" Local cNumPed := "" Local cTipoPR := "" //Adiciona os Itens no Cabeçalho do Pedido aCabPV := {} dDataEntrega = Daysum(Date(), 1) AAdd(aCabPV,{"C5_TIPO" , "N", Nil}) //Pego o cliente tomador do pedido cCodCliS := SUBSTR(aCbPV[1][2], 1, 6) cLojCliS := SUBSTR(aCbPV[1][2], 7, 2) AAdd(aCabPV,{"C5_CLIENTE", cCodCliS, Nil}) AAdd(aCabPV,{"C5_LOJACLI", cLojCliS, Nil}) AAdd(aCabPV,{"C5_CLIENT" , cCodCliS, Nil}) AAdd(aCabPV,{"C5_LOJAENT", cLojCliS, Nil}) AAdd(aCabPV,{"C5_TIPOCLI", Posicione("SA1", 1, xFilial("SA1") + cCodCliS + cLojCliS, "A1_TIPO"), Nil}) AAdd(aCabPV,{"C5_CONDPAG", aCbPV[1][5], Nil}) AAdd(aCabPV,{"C5_NATUREZ", "30103 ", Nil}) AAdd(aCabPV,{"C5_EMISSAO", dDataBase, Nil}) //AAdd(aCabPV,{"C5_DESC1", aCbPV[1][10], Nil}) AAdd(aCabPV,{"C5_INCISS" , "N", Nil}) AAdd(aCabPV,{"C5_TIPLIB" , "2", Nil}) AAdd(aCabPV,{"C5_MOEDA" , 1, Nil}) AAdd(aCabPV,{"C5_VEND1" , aCbPV[1][3], Nil}) AAdd(aCabPV,{"C5_TXMOEDA", 1, Nil}) AAdd(aCabPV,{"C5_TPCARGA", '1', Nil}) AAdd(aCabPV,{"C5_TABELA" , aCbPV[1][4], Nil}) //Montagem de item...] aItemPV:= {} cItem := 1 For nIt := 1 To Len(aItPV) //Conout("Gravando Itens PV = " + aItPV[nIt][1]) cTes := '558' aLinhaItem := {} // localiza informações do produto dbSelectArea("SB1") dbSetOrder(1) If dbSeek(xFilial("SB1") + aItPV[nIt][1]) // Regra enviada via Whatsapp /*If SB1->B1_TIPO == "ME" cTipoPR := "01" elseif SB1->B1_TIPO == "PA" .OR. SB1->B1_TIPO == "PI" cTipoPR := "11" endif*/ AAdd(aLinhaItem,{"C6_ITEM" ,StrZero(cItem,2) ,Nil}) AAdd(aLinhaItem,{"C6_PRODUTO",Alltrim(SB1->B1_COD) ,Nil}) AAdd(aLinhaItem,{"C6_DESCRI" ,Alltrim(SB1->B1_DESC) ,Nil}) AAdd(aLinhaItem,{"C6_UM" ,SB1->B1_UM ,Nil}) AAdd(aLinhaItem,{"C6_QTDVEN" ,aItPV[nIt][2] ,Nil}) AAdd(aLinhaItem,{"C6_PRCVEN" ,aItPV[nIt][3] ,Nil}) AAdd(aLinhaItem,{"C6_PRUNIT" ,0 ,Nil}) AAdd(aLinhaItem,{"C6_LOCAL" ,"01" ,Nil}) AAdd(aLinhaItem,{"C6_CLI" ,cCodCliS ,nil}) AAdd(aLinhaItem,{"C6_LOJA" ,cLojCliS ,Nil}) AAdd(aLinhaItem,{"C6_ENTREG" ,dDataEntrega ,Nil}) AAdd(aLinhaItem,{"C6_SUGENTR",dDataEntrega ,Nil}) AAdd(aLinhaItem,{"C6_PEDCLI" ,"" ,Nil}) //AAdd(aLinhaItem,{"C6_OPER" ,cTipoPR ,Nil}) AAdd(aLinhaItem,{"C6_TES" ,cTes ,Nil}) //If aCbPV[1][5] $ GetMV("MV_FBWEB20") AAdd(aLinhaItem,{"C6_QTDLIB" ,aItPV[nIt][2] ,Nil}) //EndIf Endif AAdd(aItemPV,AClone(aLinhaItem)) cItem := cItem + 1 Next nIt lMsErroAuto := .F. Begin Transaction If Len(aCabPv) > 0 .And. Len(aItemPV) > 0 conout("adiciona pedido de vendas") MSExecAuto({|x,y,z|Mata410(x,y,z)}, aCabPV, aItemPV, 3) //adiciona pedido de vendas Endif If lMsErroAuto conout("erro ao incluir pedido") mostraerro() nStatus := -1 else //conout("pedido incluido") //cNumPed, cFundo, cAgencia, cConta _cNumPed := SC5->C5_NUM fGrvZ15(SC5->C5_NUM, _cFundo, _cAgencia, _cConta, _dVencto) //Grava De/Para de Pedido com Fundo nStatus := 0 EndIf End Transaction cPedido := SC5->C5_NUM lRet := .T. If Select("SC5") > 0 SC5->(dbCloseArea()) EndIf If Select("SB1") > 0 SB1->(dbCloseArea()) EndIf Return nStatus |
Fernando Bueno
Consultor em FBSOLUTIONS
Sou consultor na área de implantação de sistemas ERP, com experiência na análise e implantação de projetos de sistemas, configurando a estrutura do software, capacitando usuários-chaves, ministrando treinamentos e workshops.
Atuando desde 2005 no mercado de tecnologia, desenvolvendo e implantando e sistemas gerenciais, sistemas e sites web e ecommerce.
Siga-me no Linked In
Atuando desde 2005 no mercado de tecnologia, desenvolvendo e implantando e sistemas gerenciais, sistemas e sites web e ecommerce.
Siga-me no Linked In
Últimos posts por Fernando Bueno (exibir todos)
- Os métodos mais usados para Prospecção de Clientes - 9 de outubro de 2024
- Os 10 dos melhores CRMs de vendas disponíveis no mercado - 7 de outubro de 2024
- Como um CRM de vendas pode ajudar sua indústria - 5 de outubro de 2024