Árvore de páginas

Ponto de Entrada

Descrição:

Ponto de Entrada para manipulação de consulta realizada ao transmitir notas fiscais.

Localização:

Atualizações \ Mov. Saída \Trans/recep de NFs  (VEIVM200)

Eventos:

Case cTp == "SF2" // NFs de Venda - Exclusivo por Filial

//

For nCont := 1 to Len(aSM0)

//

cFilAnt := aSM0[nCont]

//

cFilSF2 := xFilial("SF2")

If ( cQuebraFil == cFilSF2 ) .or. ( !Empty(c1FilNFI) .and. c1FilNFI <> cFilSF2 )

Loop

EndIf

cQuebraFil := cFilSF2

cFilVQ4 := xFilial("VQ4")

//

cQuery := "SELECT DISTINCT SF2.F2_FILIAL , SF2.F2_EMISSAO , SF2.F2_DOC , " + FGX_MILSNF("SF2", 3,"F2_SERIE") + " , SF2.F2_SERIE , SF2.F2_VALBRUT , SF2.F2_CLIENTE , SF2.F2_LOJA , SA1.A1_NOME "

cQuery += "FROM " + cNamSF2 + " SF2 "

cQuery += "JOIN " + cNamVV0 + " VV0 ON ( VV0.VV0_FILIAL='" + xFilial("VV0") + "' AND VV0.VV0_NUMNFI=SF2.F2_DOC AND VV0.VV0_SERNFI=SF2.F2_SERIE AND VV0.VV0_OPEMOV='0' AND VV0.VV0_TIPFAT='0' AND VV0.D_E_L_E_T_=' ' ) "

cQuery += "JOIN " + cNamSA1 + " SA1 ON ( SA1.A1_FILIAL='" + xFilial("SA1") + "' AND SA1.A1_COD=SF2.F2_CLIENTE AND SA1.A1_LOJA=SF2.F2_LOJA AND SA1.D_E_L_E_T_=' ' ) "

cQuery += "JOIN " + cNamSD2 + " SD2 ON ( SD2.D2_FILIAL=SF2.F2_FILIAL AND SD2.D2_DOC=SF2.F2_DOC AND SD2.D2_SERIE=SF2.F2_SERIE AND SD2.D_E_L_E_T_=' ' ) "

cQuery += "JOIN " + cNamSB1 + " SB1 ON ( SB1.B1_FILIAL='" + xFilial("SB1") + "' AND SB1.B1_COD=SD2.D2_COD AND SB1.D_E_L_E_T_=' ' ) "

cQuery += "JOIN " + cNamVV1 + " VV1 ON ( VV1.VV1_FILIAL='" + xFilial("VV1") + "' AND VV1.VV1_CHAINT=SB1.B1_CODITE AND VV1.D_E_L_E_T_=' ' ) "

cQuery += "LEFT JOIN " + cNamVQ0 + " VQ0 ON ( VQ0.VQ0_FILIAL='" + xFilial("VQ0") + "' AND VQ0.VQ0_CHAINT=VV1.VV1_CHAINT AND VQ0.D_E_L_E_T_=' ' ) "

cQuery += "WHERE SF2.F2_FILIAL='" + cFilSF2 + "' AND "

If !Empty(c1NumNFI)

cQuery += "SF2.F2_DOC='" + c1NumNFI + "' AND "

EndIf

If !Empty(c1SerNFI)

cQuery += "SF2.F2_SERIE LIKE '" + c1SerNFI + "%' AND "

EndIf

If !Empty(c1CodCli)

cQuery += "SF2.F2_CLIENTE='" + c1CodCli + "' AND "

EndIf

If !Empty(c1LojCli)

cQuery += "SF2.F2_LOJA='" + c1LojCli + "' AND "

EndIf

cQuery += "SF2.F2_PREFORI='" + GetMv("MV_PREFVEI") + "' AND "

cQuery += "SF2.F2_EMISSAO>='" + dtos(d1DatIni) + "' AND SF2.F2_EMISSAO<='" + dtos(d1DatFin) + "' AND "

If !Empty(c1NumPed)

cQuery += "VQ0.VQ0_NUMPED='" + c1NumPed + "' AND "

EndIf

cQuery += "SF2.D_E_L_E_T_=' ' "

cQuery += "ORDER BY SF2.F2_FILIAL , SF2.F2_EMISSAO , SF2.F2_DOC , SF2.F2_SERIE "


If ExistBlock("VM200QRY")

cQuery := ExecBlock("VM200QRY",.f.,.f., {"SF2", cQuery, c1NumNFI, c1SerNFI, c1CodCli, c1LojCli, c1NumPed})

Endif


dbUseArea( .T., "TOPCONN", TcGenQry( ,, cQuery ), cQAlSQL , .F., .T. )

Programa Fonte:

VEIVM200.PRW

Função:

FS_LEVANTA()

Parâmetros:
NomeTipoDescrição
aArrayArray

Array com as informações da consulta a ser executada.


Dados da variável aArray


NomeTipoDescrição
aArray[1]CaractereIdentificação da Consulta a ser executada. "SF2" identifica a consulta de NFs de Venda - Exclusivo por Filial
aArray[2]Caractere

cQuery - String que contém a consulta

aArray[3]Caractere

c1NumNFI - Número NF

aArray[4]Caractere

c1SerNFI - Número Série NF

aArray[5]Caractere

c1CodCli - Código do cliente

aArray[6]Caractere

c1LojCli - Loja Cliente

aArray[7]Caractere

c1NumPed - Número do pedido de Veículo

Retorno:
NomeTipoDescrição
cQueryCaractereString que contém a consulta.

Exemplo:

Include totvs.ch

User Function VM200QRY()

Local aParam := PARAMIXB

Local cConsult

Local cAliasQry

Local cCondSQL := " "

Local cAuxSQL := " "

Local cAuxSQL2 := " "

Local cPesq := "ORDER BY" // Quebra Query antes do Order BY

Local nPosCond


MsgAlert("Ponto de Entrada VM200QRY executado", "PE Excutado")


cConsult := aParam[2]

cAliasQry := aParam[1]

cCondSQL := " AND F2_EST = 'SP' "


nPosCond := At(cPesq, cConsult)


cAuxSQL := Substr(cConsult, 1, nPosCond - 1) + cCondSQL // Insere a condicional

cAuxSQL2 := Substr(cConsult, nPosCond, Len(cConsult))


cConsult := cAuxSQL + SPACE(2) + cAuxSQL2 // Reúne Query

Return cConsult