Árvore de páginas


01. DADOS GERAIS

Produto:

TOTVS Gestão Jurídica - Linha SISJURI

Linha de Produto:

Linha Protheus

Segmento:

Jurídico

Módulo:

TOTVS Gestão Jurídica - Linha SISJURI - Pré Faturamento de Serviços (SIGAPFS)

Função:

Operação de Faturas - JURA204

País:Brasil


02. DESCRIÇÃO


Localização

Atualizações >> Cadastro >> Movimentações >> Operação de Faturas

Parâmetro
NomeTipoDescriçãoObrigatório
PARAMIXBArray

Array com 3 posições com o Alias da query e a string da query

NomeTipoDescrição
PARAMIXB[1]CaractereNome do arquivo da carta
PARAMIXB[2]CaractereString concatenada dos parâmetros
PARAMIXB[3]Caractere

Opção de emissão (Crystal) + Nome do Arquivo

PARAMIXB[4]Array

Array dos Parâmetros

Sim
Retorno
NomeTipoDescriçãoObrigatório
lRetbooleanVerifica se irá ou não sobre escrever o relatório para entrar no ponto de entrada J203CRT Sim



03. DEMAIS INFORMAÇÕES

#include "topconn.ch"
#include "protheus.ch"
#include "fwmvcdef.ch"
#include "parmtype.ch"



User Function J203CRT()

Local aAREATU  := GetArea()
Local nCONTAR  := 0
Local cQRYTMP  := ""
Local cDEFPRD  := ""
Local cMODCAR  := ""
Local cParams  := ""
Local cArquivo := Trim(ParamIXB[1,3])+"_c"
Local lSepPrd  := .T.

cDEFPRD := ParamIXB[1, 2] + ';' //vpiCodUser
cDEFPRD += ParamIXB[1, 3] + ';' //vpiNumFatura
cDEFPRD += ParamIXB[1, 4] + ';' //vpiOrganizacao
cDEFPRD += ParamIXB[1, 5] + ';' //vpcNoSocioFatura
cDEFPRD += ParamIXB[1, 6] + ';' //vpiCliente
cDEFPRD += ParamIXB[1, 7] + ';' //vpcPreFaturaMinuta
cDEFPRD += ParamIXB[1, 8] + ';' //vpcExibirLogo
cDEFPRD += ParamIXB[1, 9] + ';' //vpcDadosDeposito
cDEFPRD += ParamIXB[1,10] + ';' //vpcContraApresentacao
cDEFPRD += Iif(FunName() == "JURA204","N",ParamIXB[1,11]) + ';' //vpcFaturaRateada
cDEFPRD += ParamIXB[1,17] + ';' //vpcAssinaturaEletron
cDEFPRD += ParamIXB[1,18] + ';' //vpcRedator

lSepPrd := ChkPrdRJ(ParamIXB[1, 4], ParamIXB[1, 3])

If lSepPrd
    cQRYTMP := " select" + CRLF
    cQRYTMP += "    case" + CRLF
    cQRYTMP += "       when NUS.NUS_CESCR = 'RJ' then 'RJ'" + CRLF
    cQRYTMP += "       else 'SP'" + CRLF
    cQRYTMP += "    end as ESCRITORIO" + CRLF
    cQRYTMP += " from" + CRLF
    cQRYTMP += "    " + RetSqlName("NW0") + " NW0" + CRLF
    cQRYTMP += "    inner join " + RetSqlName("NUE") + " NUE" + CRLF
    cQRYTMP += "       on(NUE.NUE_FILIAL     = '" + xFilial("NUE") + "'" + CRLF
    cQRYTMP += "          and NUE.NUE_COD    = NW0.NW0_CTS" + CRLF
    cQRYTMP += "          and NUE.NUE_TEMPOR > 0 " + CRLF
    cQRYTMP += "          and NUE.D_E_L_E_T_ = ' ')" + CRLF
    cQRYTMP += "    inner join " + RetSqlName("NUS") + " NUS" + CRLF
    cQRYTMP += "       on(NUS.NUS_FILIAL     = '" + xFilial("NUS") + "'" + CRLF
    cQRYTMP += "          and NUS.NUS_CPART  = NUE.NUE_CPART2" + CRLF
    cQRYTMP += "          and substring(NUE.NUE_DATATS, 1, 6) between NUS.NUS_AMINI and" + CRLF
    cQRYTMP += "             case" + CRLF
    cQRYTMP += "                when NUS.NUS_AMFIM = ' ' then '999999'" + CRLF
    cQRYTMP += "                else NUS.NUS_AMFIM" + CRLF
    cQRYTMP += "             end" + CRLF
    cQRYTMP += "          and NUS.D_E_L_E_T_ = ' ')" + CRLF
    cQRYTMP += " where" + CRLF
    cQRYTMP += "    NW0.NW0_FILIAL     = '" + xFilial("NW0") + "'" + CRLF
    cQRYTMP += "    and NW0.NW0_CFATUR = '" + ParamIXB[1,3] + "'" + CRLF
    cQRYTMP += "    and NW0.NW0_CANC   = '2'" + CRLF
    cQRYTMP += "    and NW0.D_E_L_E_T_ = ' '" + CRLF
    cQRYTMP += " group by" + CRLF
    cQRYTMP += "    case" + CRLF
    cQRYTMP += "       when NUS.NUS_CESCR = 'RJ' then 'RJ'" + CRLF
    cQRYTMP += "       else 'SP'" + CRLF
    cQRYTMP += "    end" + CRLF
    cQRYTMP += " " + CRLF
    cQRYTMP += " union" + CRLF
    cQRYTMP += " " + CRLF
    cQRYTMP += " select" + CRLF
    cQRYTMP += "    case" + CRLF
    cQRYTMP += "       when NUS.NUS_CESCR = 'RJ' then 'RJ'" + CRLF
    cQRYTMP += "       else 'SP'" + CRLF
    cQRYTMP += "    end as ESCRITORIO" + CRLF
    cQRYTMP += " from" + CRLF
    cQRYTMP += "    " + RetSqlName("NW4") + " NW4" + CRLF
    cQRYTMP += "    inner join " + RetSqlName("NV4") + " NV4" + CRLF
    cQRYTMP += "       on(NV4.NV4_FILIAL     = '" + xFilial("NV4") + "'" + CRLF
    cQRYTMP += "          and NV4.NV4_COD    = NW4.NW4_CLTAB" + CRLF
    cQRYTMP += "          and NV4.D_E_L_E_T_ = ' ')" + CRLF
    cQRYTMP += "    inner join " + RetSqlName("NUS") + " NUS" + CRLF
    cQRYTMP += "       on(NUS.NUS_FILIAL     = '" + xFilial("NUS") + "'" + CRLF
    cQRYTMP += "          and NUS.NUS_CPART  = NV4.NV4_CPART" + CRLF
    cQRYTMP += "          and substring(NV4.NV4_DTLANC, 1, 6) between NUS.NUS_AMINI and" + CRLF
    cQRYTMP += "             case" + CRLF
    cQRYTMP += "                when NUS.NUS_AMFIM = ' ' then '999999'" + CRLF
    cQRYTMP += "                else NUS.NUS_AMFIM" + CRLF
    cQRYTMP += "             end" + CRLF
    cQRYTMP += "          and NUS.D_E_L_E_T_ = ' ')" + CRLF
    cQRYTMP += " where" + CRLF
    cQRYTMP += "    NW4.NW4_FILIAL     = '" + xFilial("NW4") + "'" + CRLF
    cQRYTMP += "    and NW4.NW4_CFATUR = '" + ParamIXB[1,3] + "'" + CRLF
    cQRYTMP += "    and NW4.NW4_CANC   = '2'" + CRLF
    cQRYTMP += "    and NW4.D_E_L_E_T_ = ' '" + CRLF
    cQRYTMP += " " + CRLF
    cQRYTMP += " group by" + CRLF
    cQRYTMP += "    case" + CRLF
    cQRYTMP += "       when NUS.NUS_CESCR = 'RJ' then 'RJ'" + CRLF
    cQRYTMP += "       else 'SP'" + CRLF
    cQRYTMP += "    end" + CRLF
    cQRYTMP += " order by" + CRLF
    cQRYTMP += "    ESCRITORIO desc" + CRLF

    TCQuery ChangeQuery(cQRYTMP) New Alias "QRYTMP"
    QRYTMP->(DbGoTop())

    Do While QRYTMP->(!Eof())
        nCONTAR ++
        QRYTMP->(DbSkip())
    EndDo

    QRYTMP->(DbGoTop())
    If nCONTAR > 1      //If !(nCONTAR == 1 .And. QRYTMP->ESCRITORIO == "SP")

        cMODCAR := AllTrim(Posicione("NXA",1,xFilial("NXA") + ParamIXB[1, 4] + ParamIXB[1, 3] ,"NXA_CCARTA"))
        cMODCAR := AllTrim(Posicione("NRG",1,xFilial("NRG") + cMODCAR, "NRG_ARQ"))
        cMODCAR := Iif(Empty(cMODCAR),"JU203A",IIf(At(".",cMODCAR) > 0,SubStr(cMODCAR,1,At(".",cMODCAR) - 1),cMODCAR))

        QRYTMP->(DbGoTop())
        Do While QRYTMP->(!Eof())
            cParams := cDEFPRD + StrTran(ParamIXB[1,20],";C;",";" + QRYTMP->ESCRITORIO + ";")

            If ParamIXB[1,19] <> "4" .And. ParamIXB[1,19] <> "2"
                CallCrys(cMODCAR,cParams,ParamIXB[1,1] + cArquivo + "-" + IIf(QRYTMP->ESCRITORIO == "SP", "1", "2"), .T., .F.)
            EndIf

            If (FunName() <> "JURA204") .Or. (FunName() == "JURA204" .And. ParamIXB[4])
                If ParamIXB[1,19] == "3"    //WORD
                    J203MvRela(cArquivo + "-" + IIf(QRYTMP->ESCRITORIO == "SP", "1", "2") + ".doc", ParamIXB[1, 4], ParamIXB[1, 3])
                EndIf
                ConOut("PE: J203CRT - CallCrys: " + cMODCAR + "-" + cArquivo + "-" + IIf(QRYTMP->ESCRITORIO == "SP", "1", "2"))
                CallCrys(cMODCAR, cParams, "6;0;1;" + cArquivo + "-" + IIf(QRYTMP->ESCRITORIO == "SP", "1", "2"), .T. , .F.)

                If J203MvRela(cArquivo + "-" + IIf(QRYTMP->ESCRITORIO == "SP", "1", "2") + ".pdf", ParamIXB[1, 4], ParamIXB[1, 3])
                    If ParamIXB[1,19] == "2"    //TELA
                        J203OpenPDF(cArquivo + "-" + IIf(QRYTMP->ESCRITORIO == "SP", "1", "2") + ".pdf", ParamIXB[1, 4], ParamIXB[1, 3])
                    EndIf
                EndIf

            Else
                CallCrys( cMODCAR, cParams, ParamIXB[1,1] + cArquivo + "-" + IIf(QRYTMP->ESCRITORIO == "SP", "1", "2"), .F., .F.)
            EndIf

            QRYTMP->(DbSkip())
        EndDo
    EndIf

    QRYTMP->(DbCloseArea())
EndIf
   
RestArea(aAREATU)

Return Nil

//-------------------------------------------------------------------
/*/{Protheus.doc} ChkPrdRJ
Verifica se o cliente da fatura utiliza a configuracao de separar a
producao do RJ
 
@Param  @cCodEscr   - Codigo do Escritorio da Fatura
        @cNumFatura - Numero da Fatura

@author Daniel Magalhaes
@since 11/09/2012
@version 1.0
/*/
//-------------------------------------------------------------------
Static Function ChkPrdRJ(cCodEscr, cNumFatura)
Local aArea  := GetArea()
Local cChave := ""
Local lRet   := .T.

cChave := xFilial("NXA")
cChave += PadR(cCodEscr  ,TamSX3("NXA_CESCR")[1])
cChave += PadR(cNumFatura,TamSX3("NXA_COD"  )[1])

NXA->(DbSetOrder(1)) //NXA_FILIAL + NXA_CESCR + NXA_COD
NUH->(DbSetOrder(1)) //NUH_FILIAL + NUH_COD + NUH_LOJA
SA1->(DbSetOrder(1)) //A1_FILIAL + A1_COD + A1_LOJA

If lRet := NXA->( DbSeek(cChave) )
    cChave := NXA->NXA_CLIPG  //deve considerar o cliente do título
    cChave += NXA->NXA_LOJPG
   
    If lRet := ( NUH->( DbSeek(xFilial("NUH")+cChave) ) .And. SA1->( DbSeek(xFilial("SA1")+cChave) ) )
        lRet := (NUH->NUH__PRDRJ == "1") //"Sim"
    EndIf
Else
    ConOut("Fatura Não localizada: '"+ cChave + "'" )  
EndIf

RestArea(aArea)
Return lRet

04. ASSUNTOS RELACIONADOS