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: |
Dados da variável aArray
| ||||||||||||||||||||||||||||||
Retorno: |
|
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