01. CN200SPC - Permite customizar a marcação da Solicitação de Compras / Pedido de Compras


Produto:

Backoffice TOTVS

Linha de Produto:

Linha Protheus

Segmento:

Backoffice

Módulo:Gestão de Contratos
Função:CNTA300 - Contratos
Ponto de Entrada:CN200SPC

02.  DETALHES


Descrição:

Permite customizar a marcação da Solicitação de Compras / Pedido de Compras

Eventos:

Executado no momento de selecionar/marcar o item da solicitação de Compra na rotina "Importar Solicitações de Compra"

Fonte do Programa:

CNTA200.PRW

Função:

CN200AddMark

Parâmetros:

Posição

Tipo

Descrição

PARAMIXB[1]CaractereMarca
PARAMIXB[2]ArrayArray com as marcações
PARAMIXB[3]CaractereCampo de validação
PARAMIXB[4]CaractereAlias do arquivo (SC1 ou SC7)
Retorno:

Valentia

Tipo

Descrição

aMarcaArray

Array com as marcações customizadas


Situação: No momento de criar o contrato do tipo 1 (Compra), ao selecionar/marcar o item da solicitação de compras (SC1), a rotina importa todos os itens dessa solicitação. Com esse ponto de entrada podemos customizar impedindo que a rotina selecione automaticamente todos os itens, carregando apenas um item da solicitação. Nesse exemplo, selecionarei uma solicitação com mais de 1 item e importarei sempre o último item.

#INCLUDE "PROTHEUS.CH"

/*/{Protheus.doc} CN200SPC
    Permite customizar as marcações no momento de importar os itens da Solicitação de Compras ou Pedido de Compras

@type function
@version 
@since 06/03/2024
@return Array com as marcações customizadas
/*/
User Function CN200SPC()
    
    Local aArea         := GetArea()
    Local aRetorno      := {}
    Local cMarca        := paramixb[1]
    Local cValida       := paramixb[3]
    Local cQuery        := ""
    Local cAlias        := GetNextAlias()

    //QUERY PARA SELECIONAR O ÚLTIMO ITEM DA SOLICITAÇÃO SELECIONADA NA IMPORTAÇÃO
    cQuery := " SELECT    SC1.C1_FILIAL, SC1.C1_NUM, SC1.C1_ITEM, SC1.R_E_C_N_O_ "
    cQuery += " FROM    " + RetSqlName("SC1") + "   SC1 "
    cQuery += " WHERE    SC1.C1_FILIAL                = '" + xFilial("SC1") + "' "
    cQuery += " AND        SC1.C1_NUM                    = '" + SC1->C1_NUM + "' "
    cQuery += " AND        SC1.C1_ITEM                    = ( "
    cQuery += "                                         SELECT    MAX(C1_ITEM) "
    cQuery += "                                         FROM    " + RetSqlName("SC1") + " "
    cQuery += "                                         WHERE    C1_FILIAL   = '" + xFilial("SC1") + "' "
    cQuery += "                                         AND        C1_NUM        = '" + SC1->C1_NUM + "' "
    cQuery += "                                         AND        D_E_L_E_T_  = '' "
    cQuery += "                                     ) "
    cQuery += " AND        SC1.D_E_L_E_T_                = ' ' "

    cQuery := ChangeQuery(cQuery)                                                              
    dbUseArea(.T., 'TOPCONN', TCGENQRY(,,cQuery),cAlias, .F., .T.)       
    dbSelectArea(cAlias)

    If (cAlias)->(!EOF())

        SC1->(DbGoTo((cAlias)->R_E_C_N_O_))
        RecLock("SC1",.F.)
            &(cValida) := cMarca
        SC1->(MsUnlock())
        aAdd(aRetorno,(cAlias)->R_E_C_N_O_)
    EndIf

    (cAlias)->(DbCloseArea())
        
    RestArea(aArea)

Return(aRetorno)


03.  ASSUNTOS RELACIONADOS