Totvs custom tabs box items |
---|
default | yes |
---|
referencia | passo1 |
---|
| Exemplo de ExecAuto para incluir orçamento com 2 itens e forma de pagamento em dinheiro (R$) Bloco de código |
---|
language | delphi |
---|
firstline | 1 |
---|
linenumbers | true |
---|
| #Include 'Protheus.ch'
#include "Tbiconn.ch"
User Function MyLOJA701()
Local _aCab := {} //Array do Cabeçalho do Orçamento
Local _aItem := {} //Array dos Itens do Orçamento
Local _aParcelas := {} //Array das Parcelas do Orçamento
Local _cEmpresa := "99" //Codigo da Empresa que deseja incluir o orcamento
Local _cFilial := "01" //Codigo da Filial que deseja incluir o orcamento
Local cCallRot := "VA" // Gerar orçamento via -> Venda Assistida "VA" (Cupom/NFC-e/SAT) | Venda Direta "VD" (NF-e).
Local cMsgErro := ""
Local _cVendedor := "" //Codigo do Vendedor
Local _cCodCli := "" //Codigo do Cliente
Local _cCodLoja := "" //Codigo da Loja do Cliente
Local nTamProd := 0
Local nTamUM := 0
Local nTamTabela := 0
Private lMsHelpAuto := .T. //Variavel de controle interno do ExecAuto
Private lMsErroAuto := .F. //Variavel que informa a ocorrência de erros no ExecAuto
Private INCLUI := .T. //Variavel necessária para o ExecAuto identificar que se trata de uma inclusão
Private ALTERA := .F. //Variavel necessária para o ExecAuto identificar que se trata de uma inclusão
//Abre o ambiente
PREPARE ENVIRONMENT EMPRESA _cEmpresa FILIAL _cFilial MODULO "LOJA"
//Indica inclusão
lMsHelpAuto := .T.
lMsErroAuto := .F.
_cVendedor := "000001" //Codigo do Vendedor
_cCodCli := "000002" //Codigo do Cliente
_cCodLoja := "01" //Codigo da Loja do Cliente
//Retorna o tamanho dos campos
nTamProd := TamSX3("LR_PRODUTO")[1]
nTamUM := TamSX3("LR_UM")[1]
nTamTabela := TamSX3("LR_TABELA")[1]
//Acerta o tamanho do codigo o Vendedor
_cVendedor := PadR(_cVendedor,TamSX3("A3_COD")[1])
SA1->(DbSetOrder(1)) //A1_FILIAL+A1_COD+A1_LOJA
SA1->(MsSeek(xFilial("SA1")+_cCodCli+_cCodLoja))
//***********************************
// Monta cabeçalho do orçamento (SLQ)
//***********************************
aAdd( _aCab, {"LQ_VEND" , _cVendedor , NIL} )
aAdd( _aCab, {"LQ_COMIS" , 0 , NIL} )
aAdd( _aCab, {"LQ_CLIENTE" , SA1->A1_COD , NIL} )
aAdd( _aCab, {"LQ_LOJA" , SA1->A1_LOJA , NIL} )
aAdd( _aCab, {"LQ_TIPOCLI" , SA1->A1_TIPO , NIL} )
aAdd( _aCab, {"LQ_DESCONT" , 0 , NIL} )
aAdd( _aCab, {"LQ_DTLIM" , dDatabase , NIL} )
aAdd( _aCab, {"LQ_EMISSAO" , dDatabase , NIL} )
aAdd( _aCab, {"LQ_CONDPG" , "001" , NIL} ) //Condição de Pagamento 001 configurada como R$
aAdd( _aCab, {"LQ_NUMMOV" , "1 " , NIL} )
//aAdd( _aCab, {"AUTRESERVA", "000001" , NIL} ) //Codigo da Loja (Campo SLJ->LJ_CODIGO) que deseja efetuar a reserva quando existir item(s) que for do tipo entrega (LR_ENTREGA = 3)
//***********************************
// Monta Itens do orçamento (SLR)
//***********************************
//----------
// Item 01
//----------
aAdd( _aItem, {} )
aAdd( _aItem[Len(_aItem)], {"LR_PRODUTO", PadR("1",nTamProd) , NIL} )
aAdd( _aItem[Len(_aItem)], {"LR_QUANT" , 1 , NIL} )
aAdd( _aItem[Len(_aItem)], {"LR_UM" , PadR("UN",nTamUM) , NIL} )
aAdd( _aItem[Len(_aItem)], {"LR_DESC" , 0 , NIL} )
aAdd( _aItem[Len(_aItem)], {"LR_VALDESC", 0 , NIL} )
aAdd( _aItem[Len(_aItem)], {"LR_TABELA" , PadR("1",nTamTabela) , NIL} )
aAdd( _aItem[Len(_aItem)], {"LR_DESCPRO", 0 , NIL} )
aAdd( _aItem[Len(_aItem)], {"LR_VEND" , _cVendedor , NIL} )
//aAdd( _aItem[Len(_aItem)], {"LR_ENTREGA", "3" , NIL} ) //3=Entrega (Qdo. informado o LR_ENTREGA = 3, deve ser informado também o campo "AUTRESERVA" no array de Cabecalho)
//----------
// Item 02
//----------
aAdd( _aItem, {} )
aAdd( _aItem[Len(_aItem)], {"LR_PRODUTO", PadR("1",nTamProd) , NIL} )
aAdd( _aItem[Len(_aItem)], {"LR_QUANT" , 1 , NIL} )
aAdd( _aItem[Len(_aItem)], {"LR_UM" , PadR("UN",nTamUM) , NIL} )
aAdd( _aItem[Len(_aItem)], {"LR_DESC" , 0 , NIL} )
aAdd( _aItem[Len(_aItem)], {"LR_VALDESC", 0 , NIL} )
aAdd( _aItem[Len(_aItem)], {"LR_TABELA" , PadR("1",nTamTabela) , NIL} )
aAdd( _aItem[Len(_aItem)], {"LR_DESCPRO", 0 , NIL} )
aAdd( _aItem[Len(_aItem)], {"LR_VEND" , _cVendedor , NIL} )
//************************************************
// Monta o Pagamento do orçamento (aPagtos) (SL4)
//************************************************
aAdd( _aParcelas, {} )
aAdd( _aParcelas[Len(_aParcelas)], {"L4_DATA" , dDatabase , NIL} )
aAdd( _aParcelas[Len(_aParcelas)], {"L4_VALOR" , 20 , NIL} )
aAdd( _aParcelas[Len(_aParcelas)], {"L4_FORMA" , "R$ " , NIL} )
aAdd( _aParcelas[Len(_aParcelas)], {"L4_ADMINIS", " " , NIL} )
aAdd( _aParcelas[Len(_aParcelas)], {"L4_NUMCART", " " , NIL} )
aAdd( _aParcelas[Len(_aParcelas)], {"L4_FORMAID", " " , NIL} )
aAdd( _aParcelas[Len(_aParcelas)], {"L4_MOEDA" , 0 , NIL} )
SetFunName("LOJA701")
MSExecAuto({|a,b,c,d,e,f,g,h,i,j,l| Loja701(a,b,c,d,e,f,g,h,i,j,l)},.F.,3,"","",{},_aCab,_aItem ,_aParcelas,Nil,Nil,cCallRot)
If lMsErroAuto
Alert("Erro no ExecAuto LOJA701")
cMsgErro := MostraErro()
DisarmTransaction()
Alert(cMsgErro)
Else
Alert("Sucesso na execução do ExecAuto LOJA701")
EndIf
RESET ENVIRONMENT //Encerra o ambiente aberto anteriormente
Return |
|
Totvs custom tabs box items |
---|
default | no |
---|
referencia | passo2 |
---|
| Exemplo de ExecAuto para incluir orçamento com 2 itens e forma de pagamento Multi-Negociação (FI-Financiado) em 6 parcelas com juros de 5% Pré-requisito: Deve existir a Multi-Negociação configurada com 6 parcelas e juros de 5% Venda com 2 itens de 100,00 = 200,00 Juros de 5% (10,00) na forma de pagamento FI (Financiado), totalizando: R$ 210,00 Bloco de código |
---|
language | delphi |
---|
firstline | 1 |
---|
linenumbers | true |
---|
| #Include 'Protheus.ch'
#include "Tbiconn.ch"
User Function MyLOJA701()
Local _aCab := {} //Array do Cabeçalho do Orçamento
Local _aItem := {} //Array dos Itens do Orçamento
Local _aParcelas := {} //Array das Parcelas do Orçamento
Local _cEmpresa := "99" //Codigo da Empresa que deseja incluir o orcamento
Local _cFilial := "01 " //Codigo da Filial que deseja incluir o orcamento
Local cCallRot := "VA" // Gerar orçamento via -> Venda Assistida "VA" (Cupom/NFC-e/SAT) | Venda Direta "VD" (NF-e).
Local cMsgErro := ""
Local _cVendedor := "" //Codigo do Vendedor
Local _cCodCli := "" //Codigo do Cliente
Local _cCodLoja := "" //Codigo da Loja do Cliente
Local nTamProd := 0
Local nTamUM := 0
Local nTamTabela := 0
Local nInd := 0
Local dDataParc := Nil
Private lMsHelpAuto := .T. //Variavel de controle interno do ExecAuto
Private lMsErroAuto := .F. //Variavel que informa a ocorrência de erros no ExecAuto
Private INCLUI := .T. //Variavel necessária para o ExecAuto identificar que se trata de uma inclusão
Private ALTERA := .F. //Variavel necessária para o ExecAuto identificar que se trata de uma inclusão
//Abre o ambiente
PREPARE ENVIRONMENT EMPRESA _cEmpresa FILIAL _cFilial MODULO "LOJA"
//Indica inclusão
lMsHelpAuto := .T.
lMsErroAuto := .F.
_cVendedor := "000001" //Codigo do Vendedor
_cCodCli := "000002" //Codigo do Cliente
_cCodLoja := "01" //Codigo da Loja do Cliente
//Retorna o tamanho dos campos
nTamProd := TamSX3("LR_PRODUTO")[1]
nTamUM := TamSX3("LR_UM")[1]
nTamTabela := TamSX3("LR_TABELA")[1]
//Acerta o tamanho do codigo o Vendedor
_cVendedor := PadR(_cVendedor,TamSX3("A3_COD")[1])
SA1->(DbSetOrder(1)) //A1_FILIAL+A1_COD+A1_LOJA
SA1->(MsSeek(xFilial("SA1")+_cCodCli+_cCodLoja))
//***********************************
// Monta cabeçalho do orçamento (SLQ)
//***********************************
aAdd( _aCab, {"LQ_VEND" , _cVendedor , NIL} )
aAdd( _aCab, {"LQ_COMIS" , 0 , NIL} )
aAdd( _aCab, {"LQ_CLIENTE" , SA1->A1_COD , NIL} )
aAdd( _aCab, {"LQ_LOJA" , SA1->A1_LOJA , NIL} )
aAdd( _aCab, {"LQ_TIPOCLI" , SA1->A1_TIPO , NIL} )
aAdd( _aCab, {"LQ_DESCONT" , 0 , NIL} )
aAdd( _aCab, {"LQ_DTLIM" , dDatabase , NIL} )
aAdd( _aCab, {"LQ_EMISSAO" , dDatabase , NIL} )
aAdd( _aCab, {"LQ_NUMMOV" , "1 " , NIL} )
aAdd( _aCab, {"LQ_CONDPG" , " " , NIL} ) //Condição de Pagamento deve ficar em Branco
aAdd( _aCab, {"LQ_JUROS" , 5 , NIL} ) //Percentual de Juros (5%) do pagamento FI (Financiado) da Configuração da Multi-Negociação
aAdd( _aCab, {"LQ_CODMNEG" , "001" , NIL} ) //Código 001 da Multi-Negociação Configurada
//***********************************
// Monta Itens do orçamento (SLR)
//***********************************
//----------
// Item 01
//----------
aAdd( _aItem, {} )
aAdd( _aItem[Len(_aItem)], {"LR_PRODUTO", PadR("1",nTamProd) , NIL} )
aAdd( _aItem[Len(_aItem)], {"LR_QUANT" , 1 , NIL} )
aAdd( _aItem[Len(_aItem)], {"LR_UM" , PadR("UN",nTamUM) , NIL} )
aAdd( _aItem[Len(_aItem)], {"LR_DESC" , 0 , NIL} )
aAdd( _aItem[Len(_aItem)], {"LR_VALDESC", 0 , NIL} )
aAdd( _aItem[Len(_aItem)], {"LR_TABELA" , PadR("1",nTamTabela) , NIL} )
aAdd( _aItem[Len(_aItem)], {"LR_DESCPRO", 0 , NIL} )
aAdd( _aItem[Len(_aItem)], {"LR_VEND" , _cVendedor , NIL} )
//----------
// Item 02
//----------
aAdd( _aItem, {} )
aAdd( _aItem[Len(_aItem)], {"LR_PRODUTO", PadR("1",nTamProd) , NIL} )
aAdd( _aItem[Len(_aItem)], {"LR_QUANT" , 1 , NIL} )
aAdd( _aItem[Len(_aItem)], {"LR_UM" , PadR("UN",nTamUM) , NIL} )
aAdd( _aItem[Len(_aItem)], {"LR_DESC" , 0 , NIL} )
aAdd( _aItem[Len(_aItem)], {"LR_VALDESC", 0 , NIL} )
aAdd( _aItem[Len(_aItem)], {"LR_TABELA" , PadR("1",nTamTabela) , NIL} )
aAdd( _aItem[Len(_aItem)], {"LR_DESCPRO", 0 , NIL} )
aAdd( _aItem[Len(_aItem)], {"LR_VEND" , _cVendedor , NIL} )
//************************************************
// Monta o Pagamento do orçamento (aPagtos) (SL4)
//************************************************
dDataParc := dDatabase
For nInd:=1 to 6 //6 Parcelas tipo FI (Financiado), R$ 35,00 cada parcela
aAdd( _aParcelas, {} )
aAdd( _aParcelas[Len(_aParcelas)], {"L4_DATA" , dDataParc , NIL} )
aAdd( _aParcelas[Len(_aParcelas)], {"L4_VALOR" , 35 , NIL} )
aAdd( _aParcelas[Len(_aParcelas)], {"L4_FORMA" , "FI " , NIL} )
aAdd( _aParcelas[Len(_aParcelas)], {"L4_NUMCART" , " " , NIL} )
aAdd( _aParcelas[Len(_aParcelas)], {"L4_FORMAID" , " " , NIL} )
aAdd( _aParcelas[Len(_aParcelas)], {"L4_MOEDA" , 0 , NIL} )
aAdd( _aParcelas[Len(_aParcelas)], {"L4_ADMINIS" , "002 - FINANCIADORA", NIL} ) //Código da Administradora Financeira tipo (FI=Financiado)
dDataParc := dDataParc + 30
Next nInd
SetFunName("LOJA701")
MSExecAuto({|a,b,c,d,e,f,g,h,i,j,l| Loja701(a,b,c,d,e,f,g,h,i,j,l)},.F.,3,"","",{},_aCab,_aItem ,_aParcelas,Nil,Nil,cCallRot)
If lMsErroAuto
Alert("Erro no ExecAuto LOJA701")
cMsgErro := MostraErro()
DisarmTransaction()
Alert(cMsgErro)
Else
Alert("Sucesso na execução do ExecAuto LOJA701")
EndIf
RESET ENVIRONMENT //Encerra o ambiente aberto anteriormente
Return |
|
|