Árvore de páginas

Ponto-de-Entrada: PEDVEI011 - Integração com MATA410
Abrangências: Microsiga Protheus 10 , Microsiga Protheus 11
Versões: Microsiga Protheus 10 , Microsiga Protheus 11
Compatível Países: Todos
Sistemas Operacionais: Todos
Compatível às Bases de Dados: Todos
Idiomas: Português (Brasil)
Descrição:
Ponto de Entrada localizado na rotina Geração de Pedido (VEIXI002), que possibilita a alteração dos ARRAYs aCabPV (vetor do Cabeçalho do Pedido) e/ou aIteTPv (vetor do Item do Pedido) que integra com o Mata410.
Eventos
User Function PEDVEI011()
 
MsgInfo("Ponto de Entrada PEDVEI011 executado com sucesso!","Atenção")
 
Return() 
Programa Fonte
VEIXI002.PRW
Sintaxe

PEDVEI011 - Integração com MATA410 ( [ ] )

Parâmetros:
Nome Tipo Descrição Default Obrigatório Referência
Array of Record
Retorno
    ()
Observações
 //ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ CABECALHO do Pedido de Venda ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
cNumPed := CriaVar("C5_NUM")
aAdd(aCabPV,{"C5_NUM"    ,cNumPed ,Nil}) // Numero do pedido
aAdd(aCabPV,{"C5_TIPO"   ,"N"           ,Nil}) // Tipo de pedido
aAdd(aCabPV,{"C5_CLIENTE",SA1->A1_COD   ,Nil}) // Codigo do cliente
aAdd(aCabPV,{"C5_LOJACLI",SA1->A1_LOJA ,Nil}) // Loja do cliente
aAdd(aCabPV,{"C5_TIPOCLI",SA1->A1_TIPO ,Nil}) // Tipo do Cliente
aAdd(aCabPV,{"C5_CONDPAG",VV0->VV0_FORPAG ,Nil}) // Codigo da condicao de pagamanto
aAdd(aCabPV,{"C5_VEND1"  ,VV0->VV0_CODVEN ,Nil}) // Codigo do vendedor
aAdd(aCabPV,{"C5_EMISSAO",dDataBase     ,Nil}) // Data de emissao
aAdd(aCabPV,{"C5_TRANSP" ,VV0->VV0_CODTRA ,Nil}) // Transportadora
aAdd(aCabPV,{"C5_DESC1"  ,0             ,Nil}) // Percentual de Desconto
aAdd(aCabPV,{"C5_BANCO"  ,VV0->VV0_CODBCO ,Nil}) // Banco
aAdd(aCabPV,{"C5_INCISS" ,"N"           ,Nil}) // ISS Incluso
aAdd(aCabPV,{"C5_TIPLIB" ,"2"           ,Nil}) // Liberacao por Pedido de Venda
aAdd(aCabPV,{"C5_MOEDA"  ,1             ,Nil}) // Moeda
aAdd(aCabPV,{"C5_LIBEROK","S"           ,Nil}) // Liberacao Total
aAdd(aCabPV,{"C5_COMIS1" ,SA3->A3_COMIS ,Nil}) // Percentual de Comissao
aAdd(aCabPV,{"C5_DESPESA",VV0->VV0_DESACE ,Nil}) // Despesa Acessorio
if !Empty(VV0->VV0_TPFRET)
aAdd(aCabPV,{"C5_TPFRETE",Alltrim(VV0->VV0_TPFRET) ,NIL}) // Tipo do Frete
endif
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ ITEM do Pedido de Venda ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
aAdd(aIteTPv,{"C6_NUM"    ,cNumPed ,Nil}) // Numero do Pedido
aAdd(aIteTPv,{"C6_ITEM"   ,"01" ,Nil}) // Numero do Item no Pedido
aAdd(aIteTPv,{"C6_PRODUTO",SB1->B1_COD ,Nil}) // Codigo do Produto
aAdd(aIteTPv,{"C6_QTDVEN" ,1 ,Nil}) // Quantidade Vendida
If VV0->VV0_TIPFAT == "2" // Faturamento Direto
aAdd(aIteTPv,{"C6_PRUNIT" , VVA->VVA_VALCVD ,Nil}) // Preco Unitario Liquido *
aAdd(aIteTPv,{"C6_PRCVEN" , VVA->VVA_VALCVD ,Nil}) // Preco Unitario Liquido *
aAdd(aIteTPv,{"C6_VALOR"  , VVA->VVA_VALCVD ,Nil}) // Valor Total do Item *
Else
// Se o valor do financiamento for maior do que o valor do veiculo
// a nota fiscal deve sair com o valor do financiamento
If VV0->VV0_VALFIN > VVA->VVA_VALVDA
aAdd(aIteTPv,{"C6_PRUNIT" , VV0->VV0_VALFIN + IIf(MaFisFound('NF'),MAFISRET(,"NF_DESCZF"),0)+VV0->VV0_VALDES-VV0->VV0_IMPOST ,Nil}) // Preco
aAdd(aIteTPv,{"C6_PRCVEN" , VV0->VV0_VALFIN + IIf(MaFisFound('NF'),MAFISRET(,"NF_DESCZF"),0)+VV0->VV0_VALDES-VV0->VV0_IMPOST ,Nil}) // Preco
aAdd(aIteTPv,{"C6_VALOR"  , VV0->VV0_VALFIN + IIf(MaFisFound('NF'),MAFISRET(,"NF_DESCZF"),0)+VV0->VV0_VALDES-VV0->VV0_IMPOST ,Nil}) // Total Else
nVlConsor := FM_SQL("SELECT SUM(VS9_VALPAG) VALPAG FROM "+RetSQLName("VS9")+" VS9 WHERE VS9.VS9_FILIAL='"+xFilial("VS9")+"' AND VS9.VS9_NUMIDE='"+VV0->VV0_NUMTRA+"' AND VS9.VS9_TIPOPE='V' AND "+;
"VS9.VS9_TIPPAG IN ( SELECT VSA.VSA_TIPPAG FROM "+RetSQLName("VSA")+" VSA WHERE VSA.VSA_FILIAL='"+xFilial("VSA")+"' AND VSA.VSA_TIPO='3' AND VSA.D_E_L_E_T_=' ')"+;
" AND VS9.VS9_REFPAG='0' AND VS9.D_E_L_E_T_=' '")
// Se o valor do consorcio NAO QUITADO for maior do que o valor do veiculo
// a nota fiscal deve sair com o valor do consorcio
If nVlConsor > VVA->VVA_VALVDA
aAdd(aIteTPv,{"C6_PRUNIT" , nVlConsor + IIf(MaFisFound('NF'),MAFISRET(,"NF_DESCZF"),0)+VV0->VV0_VALDES-VV0->VV0_IMPOST ,Nil}) // Preco
aAdd(aIteTPv,{"C6_PRCVEN" , nVlConsor + IIf(MaFisFound('NF'),MAFISRET(,"NF_DESCZF"),0)+VV0->VV0_VALDES-VV0->VV0_IMPOST ,Nil}) // Preco
aAdd(aIteTPv,{"C6_VALOR"  , nVlConsor + IIf(MaFisFound('NF'),MAFISRET(,"NF_DESCZF"),0)+VV0->VV0_VALDES-VV0->VV0_IMPOST ,Nil}) // Valor
Else
aAdd(aIteTPv,{"C6_PRUNIT" , VVA->VVA_VALVDA + IIf(MaFisFound('NF'),MAFISRET(,"NF_DESCZF"),0)+VV0->VV0_VALDES-VV0->VV0_IMPOST ,Nil}) // Preco 
aAdd(aIteTPv,{"C6_PRCVEN" , VVA->VVA_VALVDA + IIf(MaFisFound('NF'),MAFISRET(,"NF_DESCZF"),0)+VV0->VV0_VALDES-VV0->VV0_IMPOST ,Nil}) // Preco
aAdd(aIteTPv,{"C6_VALOR"  , VVA->VVA_VALVDA + IIf(MaFisFound('NF'),MAFISRET(,"NF_DESCZF"),0)+VV0->VV0_VALDES-VV0->VV0_IMPOST ,Nil}) // Valor
EndIf
EndIf
EndIf
aAdd(aIteTPv,{"C6_CLI"    ,SA1->A1_COD ,Nil}) // Cliente
aAdd(aIteTPv,{"C6_LOJA"   ,SA1->A1_LOJA ,Nil}) // Loja do Cliente
aAdd(aIteTPv,{"C6_ENTREG" ,dDataBase        ,Nil}) // Data da Entrega
aAdd(aIteTPv,{"C6_UM"     ,"UN"     ,Nil}) // Unidade de Medida Primar.
aAdd(aIteTPv,{"C6_TES"    ,VVA->VVA_CODTES  ,Nil}) // Tipo de Entrada/Saida do Item
aAdd(aIteTPv,{"C6_LOCAL"  ,cLocVei          ,Nil}) // Almoxarifado
aAdd(aIteTPv,{"C6_VALDESC",VV0->VV0_VALDES ,Nil}) // Valor do Desconto
aAdd(aIteTPv,{"C6_COMIS1" ,SA3->A3_COMIS ,Nil}) // Comissao Vendedor
aAdd(aIteTPv,{"C6_DESCRI" ,SB1->B1_DESC ,Nil}) // Descricao do Produto
aAdd(aIteTPv,{"C6_QTDEMP" ,1 ,Nil}) // Quantidade Empenhada
 
If ExistBlock("PEDVEI011")
ExecBlock("PEDVEI011",.f.,.f.)
EndIf
 
aAdd(aItePv,aClone(aIteTPv))
lMsErroAuto := .f.
MSExecAuto({|x,y,z|Mata410(x,y,z)},aCabPv,aItePv,3)
If lMsErroauto
DisarmTransaction()
RollbackSxe()
MostraErro()
Return(.f.)
EndIf
Variáveis
Nome Tipo Escopo Pode Alterar descrição
Array of Record Global Não