Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

LjSimpFat - Permite verificar se o item da venda será considerado no pedido de simples faturamento

...

06LOJXREC.PRW 29/07/2019 09:57:13
WSC_LJRECEB.PRW 29/12/2018 08:08:

Descrição:

Disponibilizar P.E. para permitir a verificação do item da venda para continuar o processo de simples faturamento

Eventos:

O ponto de entrada é executado no momento de gerar os pedidos de venda de simples faturamento e simples remessa.

Programa Fonte:

LOJA701H

Parâmetros:

NomeTipoDescrição
ParamIxb[1]Array

Array com as informações da SL2.

Exemplo:

aSL2[1]

aSl2[1][1]

aSl2[1][1][1] == "L2_NUM"

aSl2[1][1][2] == "111111"

Retorno:

NomeTipoDescrição
lRetLógico

.T. Permite incluir o item da venda no pedido de simples faturamento.

.F. O pedido de simples de simples remessa não será geradoNão inclui o item da venda no pedido do simples faturamento.

Exemplo:

#INCLUDE #INCLUDE "protheusTOTVS.ch"
User Function LJ7114()CH"

//---------------------------*** E X E M P L O ***------------------------------------------------
/*/{Protheus.doc} LJ7114()
Ponto de entrada EXEMPLO - Possibilita a troca da tela padrão da NSU no momento da venda.
Usado no Venda Assistida LOJA701
@type       Ponto de Entrada
@param      PARAMIXB[1] - Caracter - Recebe o tipo da forma de pagamento ( CC, CD, Etc..)
@param      PARAMIXB[2] - Caracter - Recebe o Id da parcela do cartão
@param      PARAMIXB[3] - Numerico - Valor da parcela
@version    P12
@since    17/07/2019
@autor      Marcos Iurato Junior
@return     Retorna o numero do NSU LjSimpFat
Ponto de entrada para verificar se o item será considerado no simples faturamento

@type       function
@author     Varejo
@since      14/02/2020
@version    P12

@param ParamIxb, array, array dos itens do orçamento

@return lógico, Retorna se deve incluir o item da venda no pedido de simples faturamento
/*/
//------------------------------------------------------------------------------------------
Local oDlg
Local oSayNumAut
Local oSayAdmin
Local oSayInfCrt
Local oSayInfVlr
Local oNSU
Local oAdmin
Local oBtnOK
Local oBtVld
Local oBtnCancel
Local oCombo     := NIL //Objeto para seleção do POS que irá realizar a venda
Local aPOS       := {}    //Array com todos os POS cadastrados no sistema
Local cNSU       := Space(TamSx3("E1_DOCTEF")[1]) //Tratamento para pegar o tamanho correto do campo E1_DOCTEF
Local cDesc      := "PONTO DE ENTRADA LJ7114 - Informações da Transação"
Local cLinha1    := "" //Informações da primeira linha da tela
Local cLinha2    := "" //Informações da segunda linha da tela
Local cCombo     := ""    //conteudo selecioado no combo
Local cTexto     := "" //Para alteração do conteudo de exibição quando acionado o botão do MFe
Local nInObj     := 0
Local lTemInfo   := .F.
// Aqui validamos a informação recebida no PARAMIXB[1] o tipo da Forma de Pagto.
If !Empty(PARAMIXB[1])
// Se não estiver vazia, escrevemos a primeira linha da tela conforme informação recebida pelo PARAMIXB[1]
// Se for CC, escrevemos: Teste Cartao Crédito / Se for CD, escrevemos: Teste Cartao Débito
    If AllTrim(PARAMIXB[1]) == "CC" 
        cLinha1 := "TESTE Cartao Crédito"
    ElseIf AllTrim(PARAMIXB[1]) == "CD"
        cLinha1 := "TESTE Cartao Débito"
    EndIf
    
// Aqui validamos a informação recebida no PARAMIXB[2]
// Se não estiver vazia, complementamos a escrita na primeira linha da tela com o Id da parcela
If !Empty(AllTrim(PARAMIXB[2]))
        cLinha1 += "- ID " + PARAMIXB[2]
    EndIf
    
// Aqui validamos a informação recebida no PARAMIXB[3]
// Se o PARAMIXB[3] for maior que 0, escrevemos na segunda linha da tela o valor da parcela
    If PARAMIXB[3] > 0
        cLinha2 += " Valor : " + AllTrim( Str( PARAMIXB[3], 14, 2 ) )
    EndIf
    
    lTemInfo := .T.
EndIf
// Inicializo o objeto responsável pela criação da tela
// PONTO DE ENTRADA LJ7114 - Informações da Transação
oDlg := MSDIALOG():Create()
    oDlg:cName := "oDlg"
    oDlg:cCaption := cDesc
    oDlg:nLeft := 0
    oDlg:nTop := 0
    oDlg:nWidth := 370
    oDlg:nHeight := 190
    oDlg:lShowHint := .F.
    oDlg:lCentered := .T.
    
// Caso houve informações para preenchimento nas linhas 1 e 2, mostramos na tela
    If lTemInfo
        
//Informações do Cartão - LINHA 1
        oSayInfCrt:= TSAY():Create(oDlg)
        oSayInfCrt:cName := "oSayInfCrt"
        oSayInfCrt:cCaption := cLinha1
        oSayInfCrt:nLeft := 10
        oSayInfCrt:nTop := 17
        oSayInfCrt:nWidth := 230
        oSayInfCrt:nHeight := 16
        oSayInfCrt:lShowHint := .F.
        oSayInfCrt:lReadOnly := .F.
        oSayInfCrt:Align := 0
        oSayInfCrt:lVisibleControl := .T.
        oSayInfCrt:lWordWrap := .F.
        oSayInfCrt:lTransparent := .F.
        
        //Valor - LINHA 2
        oSayInfVlr:= TSAY():Create(oDlg)
        oSayInfVlr:cName := "oSayInfVlr"
        oSayInfVlr:cCaption := cLinha2
        oSayInfVlr:nLeft := 10
        oSayInfVlr:nTop := 37
        oSayInfVlr:nWidth := 230
        oSayInfVlr:nHeight := 16
        oSayInfVlr:lShowHint := .F.
        oSayInfVlr:lReadOnly := .F.
        oSayInfVlr:Align := 0
        oSayInfVlr:lVisibleControl := .T.
        oSayInfVlr:lWordWrap := .F.
        oSayInfVlr:lTransparent := .F.
        
        nInObj := 40
    EndIf
    
// Código de Autorização da Transação(NSU):
    oSayNumAut:= TSAY():Create(oDlg)
    oSayNumAut:cName := "oSayNumAut"
    oSayNumAut:cCaption := "Código de Autorização da Transação(NSU):"
    oSayNumAut:nLeft := 10
    oSayNumAut:nTop := 20 + nInObj
    oSayNumAut:nWidth := 230
    oSayNumAut:nHeight := 16
    oSayNumAut:lShowHint := .F.
    oSayNumAut:lReadOnly := .F.
    oSayNumAut:Align := 0
    oSayNumAut:lVisibleControl := .T.
    oSayNumAut:lWordWrap := .F.
    oSayNumAut:lTransparent := .F.
// Get para digitação do NSU
    oNSU:= TGET():Create(oDlg)
    oNSU:cName := "oNSU"
    oNSU:nLeft := 240
    oNSU:nTop := 17 + nInObj
    oNSU:nWidth := 100
    oNSU:nHeight := 20
    oNSU:lShowHint := .F.
    oNSU:Align := 0
    oNSU:cVariable := "cNSU"
    oNSU:bSetGet := {|u| If(PCount()>0,cNSU:=u,cNSU) }
    oNSU:lVisibleControl := .T.
    oNSU:lPassword := .F.
    oNSU:Picture := "@!"
    oNSU:lHasButton := .F.
 //BOTÃO OK para confirmar a tela
    oBtnOK:= TButton():Create(oDlg)
    oBtnOK:cName := "oBtnOK"
    oBtnOK:cCaption := "OK" //"OK"
    oBtnOK:nLeft := 240
    oBtnOK:nTop := 110
    oBtnOK:nWidth := 90
    oBtnOK:nHeight := 25
    oBtnOK:lShowHint := .F.
    oBtnOK:lReadOnly := .F.
    oBtnOK:Align := 0
    // Aqui poderá validar a informação digitada antes do encerramento da operação.
    //Ex.: oBtnOK:bAction := {|| lRet := .T., oDlg:End() }
    oBtnOK:bAction := {|| oDlg:End() }     oDlg:lEscClose := .F.
oDlg:Activate()
Return(cNSU)

Fontes do Pacote:

User Function LjSimpFat()
Local aArea     := GetArea()
Local aSl2Prod  := aClone(ParamIxb) 
Local nI        := 0
Local nPosProd  := Ascan(aSl2Prod[1], {|x| AllTrim(x[1]) == "L2_PRODUTO"    })
Local lRet      := .T.

// loop em todos os itens da venda
For nI := 1 to Len( aSl2Prod )
    
    If AllTrim(aSl2Prod[nI,nPosProd,2]) == "12"
                
        lRet    := .F.
        Exit
                
    EndIf 
    
Next nI

RestArea(aArea)
Return lRet