Árvore de páginas

Ponto-de-Entrada: VETITLOJA - Disponibiliza vetores de cabeçalho
Abrangências: Advanced Protheus 6.09 , Advanced Protheus 7.10 , Microsiga Protheus 8.11 , Microsiga Protheus 10
Versões: Todas
Compatível Países: Todos
Sistemas Operacionais: Todos
Compatível às Bases de Dados: Todos
Descrição:
O ponto de entrada tem por objetivo disponibilizar os vetores de cabeçalho e itens do orçamento para manutenção antes que o mesmo seja integrado com o módulo SIGALOJA.
Eventos

//OFIOM110

/*
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÚÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄ¿±±
±±³Funcao    ³FS_INTLOJA³ Autor ³Valdir F. Silva        ³ Data ³ 29/10/01 ³±±
±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄ´±±
±±³Descricao ³Faz integracao da venda balcao c/ o sigaloja                  ³±±
±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±
±±³Uso       ³Siga Veiculos (Modulo de Oficina/Pecas)                     ³±±
±±ÀÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
*/
Static Function FS_INTLOJA()
Local aCabPV  := Array(27)
Local aItePV  := {}
Local aPagPV  := {}
Local cLocal  := ""
Local cLocali := ""
Local nX
Local cOrcLoja

//Cabecalho
aCabPV[01] := SA1->A1_COD     //Codigo do cliente
aCabPV[02] := SA1->A1_LOJA    //Loja para entrada
aCabPV[03] := cCodVen         //Codigo do vendedor
aCabPV[04] := dDataBase+30    //Data de emissao
aCabPV[05] := 0                   //Valor do ICMS
aCabPV[06] := 0               //Valor do ISS
aCabPV[07] := 0               //Valor do IPI
aCabPV[08] := nTotDes         //Valor do Desconto
aCabPV[09] := nTotOrc+nTotDes //Valor Liquido(Total-Desconto)
aCabPV[10] := "1"             //Quem esta gravando
aCabPV[11] := VS1->VS1_NUMORC //Chave a pesquisar
aCabPV[12] := cTipPag
aCabPV[13] := ""
aCabPV[14] := ""
aCabPV[15] := VS1->VS1_VALFRE
aCabPV[16] := VS1->VS1_VALSEG
aCabPV[17] := VS1->VS1_DESACE
aCabPV[18] := VS1->VS1_DATVAL
// grava campos faltantes...luis
aCabPV[19] :=  nTotEntr            // L1_ENTRADA - valor da entrada
aCabPV[20] :=  1                // L1_PARCELA - valor da parcela
aCabPV[21] :=  VS1->VS1_ICMCAL    // L1_VALICM - valor do icm
aCabPV[22] :=  MV_SIMB1            // L1_FORMPG - forma de pagto
aCabPV[23] := 0                 // L1_VLRDEBI - valor do cartao de debito
aCabPV[24] :=  time()            // L1_HORA - hora
aCabPV[25] :=  "0"                // L1_TIPODES - tipo de desconto (grava 0 ?)
aCabPV[26] :=  cEstacao            // L1_ESTACAO


//Itens
dbSelectArea("VS3")
dbSetOrder(1)
dbSeek(xFilial("VS3")+VS1->VS1_NUMORC)
While VS3->VS3_FILIAL == xFilial("VS3") .and. VS3->VS3_NUMORC == VS1->VS1_NUMORC .and. VS3->(!eof())
    //Pega a classificacao fiscal de acordo com o estado do cliente
    cCFiscal := FG_CLAFIS(VS3->VS3_CODTES)

//    FG_Seek("SB1","VS3->VS3_GRUITE+VS3->VS3_CODITE",7,.f.)
    SB1->(DbSetOrder(7))
    SB1->(DbSeek(xFilial("SB1")+VS3->VS3_GRUITE+VS3->VS3_CODITE))

    cLocali := SB1->B1_LOCPAD
    If !(M->VS1_ORCACE$"1 ")
        cLocali := GetMv("MV_RESITE")
    Endif

//        FG_Seek("SBF","SB1->B1_COD+cLocali",2,.f.)
    SBF->(DbSetOrder(2))
    SBF->(DbSeek(xFilial("SBF")+SB1->B1_COD+cLocali))

    cLocali := SBF->BF_LOCALIZ
    If !Empty(VS3->VS3_LOCALI)
        cLocali := VS3->VS3_LOCALI
    EndIf
    cLocal := SB1->B1_LOCPAD
    If !Empty(VS3->VS3_LOCAL)
        cLocal := VS3->VS3_LOCAL
    EndIf
   
    Aadd(aItePV,Array(27))
    aItePV[Len(aItePV),01] := SB1->B1_COD     // Codigo do Produto
    aItePV[Len(aItePV),02] := SB1->B1_DESC    // Descricao do Produto
    aItePV[Len(aItePV),03] := VS3->VS3_QTDITE // Quantidade Vendida
    aItePV[Len(aItePV),04] := (VS3->VS3_VALTOT / VS3->VS3_QTDITE) // Valor Unitario
    aItePV[Len(aItePV),05] := VS3->VS3_VALTOT // Valor Total do Item
    aItePV[Len(aItePV),06] := If(M->VS1_ORCACE$"1 ",cLocal,GetMv("MV_RESITE")) // Almoxarifado
    aItePV[Len(aItePV),07] :=     SB1->B1_UM      // Unidade de Medida Primaria.
    aItePV[Len(aItePV),08] := VS3->VS3_PERDES // Desconto percentual
    aItePV[Len(aItePV),09] := VS3->VS3_VALDES // Desconto Valor
    aItePV[Len(aItePV),10] := VS3->VS3_CODTES // Tipo de Saida do Item
    aItePV[Len(aItePV),11] := cCFiscal        // CFO
    aItePV[Len(aItePV),12] := 0               //Valor IPI
    aItePV[Len(aItePV),13] := VS3->VS3_ICMCAL //Valor do ICMS
    aItePV[Len(aItePV),14] := 0               //Valor do ISS
    aItePV[Len(aItePV),15] := VS3->VS3_VBAICM //Base ICMS
    aItePV[Len(aItePV),16] := VS3->VS3_VALPEC // Valor Unitario
    aItePV[Len(aItePV),17] := ""                      //Lote
    aItePV[Len(aItePV),18] := ""                      //Sub Lote
    aItePV[Len(aItePV),19] := cLocali         //Localizacao
    aItePV[Len(aItePV),20] :=    ""                     //Numero de Serie
    // grava campos faltantes...luis
    nPosMaFis := aScan(aColsP,{|x| x[FG_POSVAR("VS3_GRUITE","aHeaderP")]+x[FG_POSVAR("VS3_CODITE","aHeaderP")] == VS3->VS3_GRUITE+VS3->VS3_CODITE})
    aItePV[Len(aItePV),21] :=  MaFisRet(nPosMaFis,"IT_VALPS2") // L2_VALPS2 - valor do pis -
    aItePV[Len(aItePV),22] :=  MaFisRet(nPosMaFis,"IT_VALCF2") // L2_VALCF2 - valor cofins - MaFisRet(nPos,"IT_VALCF2")
    aItePV[Len(aItePV),23] :=  MaFisRet(nPosMaFis,"IT_BASEPS2") // L2_BASEPS2 - base do pis - MaFisRet(nPos,"IT_BASEPS2")
    aItePV[Len(aItePV),24] :=  MaFisRet(nPosMaFis,"IT_BASECF2") // L2_BASECF2 - base do cofins - MaFisRet(nPos,"IT_BASECF2")
    aItePV[Len(aItePV),25] :=  MaFisRet(nPosMaFis,"IT_ALIQPS2") // L2_ALIQPS2 - aliquota pis - MaFisRet(nPos,"ALIQPS2")
    aItePV[Len(aItePV),26] :=  MaFisRet(nPosMaFis,"IT_ALIQCF2") // L2_ALIQCF2 - aliquota cofins - MaFisRet(nPos,"IT_ALIQCF2")
    aItePV[Len(aItePV),27] :=  SB1->B1_SEGUM
   
    If ( ExistBlock("VETITLOJA") )
        aItePV := ExecBlock("VETITLOJA",.f.,.f.,{aCabPV,aItePV})
    EndIf
   
    dbSelectArea("VS3")
    dbSkip()
Enddo

 

//OFIXX004

if lIntegraLoja // Cupom
    aCabPV  := Array(29)
    //Cabecalho
    aCabPV[01] := SA1->A1_COD     //Codigo do cliente
    aCabPV[02] := SA1->A1_LOJA    //Loja para entrada
    aCabPV[03] := VS1->VS1_CODVEN //Codigo do vendedor
    aCabPV[04] := dDataBase           //Data de emissao
    aCabPV[05] := 0                   //Valor do ICMS
    aCabPV[06] := 0               //Valor do ISS
    aCabPV[07] := 0               //Valor do IPI
    aCabPV[08] := VS1->VS1_DESCON//Valor do Desconto
    aCabPV[09] := VS1->VS1_VTOTNF //Valor Liquido(Total-Desconto)
    aCabPV[10] := "1"             //Quem esta gravando
    aCabPV[11] := VS1->VS1_NUMORC //Chave a pesquisar
    aCabPV[12] := VS1->VS1_FORPAG
    aCabPV[13] := ""
    aCabPV[14] := ""
    aCabPV[15] := VS1->VS1_VALFRE
    aCabPV[16] := VS1->VS1_VALSEG
    aCabPV[17] := VS1->VS1_DESACE
    aCabPV[18] := VS1->VS1_DATVAL
    // grava campos faltantes...luis
    aCabPV[19] :=  0                // L1_ENTRADA - valor da entrada
    aCabPV[20] :=  1                // L1_PARCELA - valor da parcela
    aCabPV[21] :=  VS1->VS1_ICMCAL    // L1_VALICM - valor do icm
    aCabPV[22] :=  MV_SIMB1            // L1_FORMPG - forma de pagto
    aCabPV[23] := 0                 // L1_VLRDEBI - valor do cartao de debito
    aCabPV[24] :=  time()            // L1_HORA - hora
    aCabPV[25] :=  "0"                // L1_TIPODES - tipo de desconto (grava 0 ?)
    aCabPV[26] :=  cEstacao            // L1_ESTACAO
    aCabPV[27] :=  VS1->VS1_CODVE2 //Codigo do 2o vendedor
    aCabPV[28] :=  VS1->VS1_CODVE3 //Codigo do 3o vendedor
    //Itens
    dbSelectArea("VS3")
    dbSetOrder(1)
    dbSeek(xFilial("VS3")+VS1->VS1_NUMORC)
    While VS3->VS3_FILIAL == xFilial("VS3") .and. VS3->VS3_NUMORC == VS1->VS1_NUMORC .and. VS3->(!eof())
        //Pega a classificacao fiscal de acordo com o estado do cliente
        cCFiscal := FG_CLAFIS(VS3->VS3_CODTES)
        FG_Seek("SB1","VS3->VS3_GRUITE+VS3->VS3_CODITE",7,.f.)
        If VS1->VS1_ORCACE$"1 "
            cLocali := SB1->B1_LOCPAD
            FG_Seek("SBF","SB1->B1_COD+SB1->B1_LOCPAD",2,.f.)
        Else
            cLocali := GetMv("MV_RESITE")
            FG_Seek("SBF","SB1->B1_COD+cLoc",2,.f.)
        Endif
        cLocali := SBF->BF_LOCALIZ
        If !Empty(VS3->VS3_LOCALI)
            cLocali := VS3->VS3_LOCALI
        EndIf
        cLocal := SB1->B1_LOCPAD
        If !Empty(VS3->VS3_LOCAL)
            cLocal := VS3->VS3_LOCAL
        EndIf
        //
        Aadd(aItePV,Array(27))
        aItePV[Len(aItePV),01] := SB1->B1_COD     // Codigo do Produto
        aItePV[Len(aItePV),02] := SB1->B1_DESC    // Descricao do Produto
        aItePV[Len(aItePV),03] := VS3->VS3_QTDITE // Quantidade Vendida
        aItePV[Len(aItePV),04] := (VS3->VS3_VALTOT / VS3->VS3_QTDITE) // Valor Unitario
        aItePV[Len(aItePV),05] := VS3->VS3_VALTOT // Valor Total do Item
        aItePV[Len(aItePV),06] := If(VS1->VS1_ORCACE$"1 ",cLocal,GetMv("MV_RESITE")) // Almoxarifado
        aItePV[Len(aItePV),07] :=     SB1->B1_UM      // Unidade de Medida Primaria.
        aItePV[Len(aItePV),08] := VS3->VS3_PERDES // Desconto percentual
        aItePV[Len(aItePV),09] := VS3->VS3_VALDES // Desconto Valor
        aItePV[Len(aItePV),10] := VS3->VS3_CODTES // Tipo de Saida do Item
        aItePV[Len(aItePV),11] := cCFiscal        // CFO
        aItePV[Len(aItePV),12] := 0               //Valor IPI
        aItePV[Len(aItePV),13] := VS3->VS3_ICMCAL //Valor do ICMS
        aItePV[Len(aItePV),14] := 0               //Valor do ISS
        aItePV[Len(aItePV),15] := VS3->VS3_VBAICM //Base ICMS
        aItePV[Len(aItePV),16] := VS3->VS3_VALPEC // Valor Unitario
        aItePV[Len(aItePV),17] := ""                      //Lote
        aItePV[Len(aItePV),18] := ""                      //Sub Lote
        aItePV[Len(aItePV),19] := cLocali         //Localizacao
        aItePV[Len(aItePV),20] :=    ""                     //Numero de Serie
        aItePV[Len(aItePV),21] :=  VS3->VS3_VALPIS // L2_VALPS2 - valor do pis -
        aItePV[Len(aItePV),22] :=  VS3->VS3_VALCOF // L2_VALCF2 - valor cofins - MaFisRet(nPos,"IT_VALCF2")
        aItePV[Len(aItePV),23] :=  VS3->VS3_BASPIS // L2_BASEPS2 - base do pis - MaFisRet(nPos,"IT_BASEPS2")
        aItePV[Len(aItePV),24] :=  VS3->VS3_BASCOF // L2_BASECF2 - base do cofins - MaFisRet(nPos,"IT_BASECF2")
        aItePV[Len(aItePV),25] :=  VS3->VS3_ALQPIS // L2_ALIQPS2 - aliquota pis - MaFisRet(nPos,"ALIQPS2")
        aItePV[Len(aItePV),26] :=  VS3->VS3_ALQCOF // L2_ALIQCF2 - aliquota cofins - MaFisRet(nPos,"IT_ALIQCF2")
        aItePV[Len(aItePV),27] :=  SB1->B1_SEGUM
        //
        If ( ExistBlock("VETITLOJA") )
            aItePV := ExecBlock("VETITLOJA",.f.,.f.,{aCabPV,aItePV})
        EndIf
        //
        dbSelectArea("VS3")
        dbSkip()
    enddo

Programa Fonte
VETITLOJA, OFIOM110, OFIXX004
Sintaxe

VETITLOJA - Disponibiliza vetores de cabeçalho ( [ aCabPV ], [ aItePV ] ) --> aItePV

Parâmetros:
Nome Tipo Descrição Default Obrigatório Referência
aCabPV Vetor Cabeçalho dos itens do orçamento
aItePV Array of Record Itens do orçamento
Retorno
    aItePV(vetor)
  • Itens do orçamento
Exemplos
/*ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜܱ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±ÚÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄ¿±±±±³Fun‡„o    ³ VETITLOJA³ Autor ³ Otavio Favarelli      ³ Data ³ 24/02/10 ³±±±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄ´±±±±³Descri‡„o ³ Ponto de entrada para disponibilizar os vetores de		  ³±±±±³			 ³ cabecalho e itens do orcamento para manutencao antes que o ³±±±±³			 ³ mesmo seja integrado com o modulo SIGALOJA.                ³±±±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±±±³Sintaxe   ³                                                            ³±±±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±±±³Uso       ³                                                            ³±±±±ÀÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß*/User Function VETITLOJA()Local aCabPV := PARAMIXB[1]Local aItePV := PARAMIXB[2]MsgAlert("O ponto de entrada VETITLOJA foi executado com sucesso!","Sucesso!")Return(aItePV)
Variáveis
Nome Tipo Escopo Pode Alterar descrição
Array of Record Global Não