Árvore de páginas

Versões comparadas

Chave

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


01. DADOS GERAIS

Produto:

Solucoes_totvs
SolucaoTOTVS Logística WMS

Solucoes_totvs_cross
SolucaoCross

Solucoes_totvs_parceiros
SolucaoParceiros

Solucoes_totvs_parceirosexptotvs
SolucaoParcsExpsTOTVS

Linha de Produto:

Linhas_totvs
LinhaLinha Protheus

Segmento:

Segmentos_totvs
SegmentoLogística

Módulo:
SIGAWMS - Gestão de Armazenagem
TOTVS WMS - Linha Protheus - WMS Protheus (SIGAWMS)
Função:WMSV085
- Coletor
.PRW
País:Todos Países
Ticket:
-
13559106
Requisito/Story/Issue (informe o requisito relacionado) :DLOGWMSMSP-13564


02. DESCRIÇÃO

Este Ponto de Entrada permite complementar a tela que solicita a coleta de produtos no Recebimento ou na Transferência via Coletor RF, sendo executado após exibir o código do produto e antes da linha que solicita que o usuário confirme o código do produto.

...

  1. É possível exibir uma ou mais informações logo após o código do produto (dependendo da quantidade de linhas disponíveis na tela do coletor). Estas informações serão exibidas na tela enquanto for informado o produto, o lote e a quantidade.

  2. Outra opção é criar uma tela auxiliar que permite o uso de toda a tela do coletor. Entretanto, para esta opção será necessário pressionar a tecla Enter, para que a mesma seja fechada e, então, retorne à tela que efetua a confirmação do produto. Além disso, as informações não estarão mais disponíveis em tela quando for informado o produto, o lote e a quantidade.

03. LOCALIZAÇÃO

Localizado na função que solicita a confirmação do produto, após apresentar o código do produto e antes de solicitar a confirmação do código no processo de recebimento/transferência (WMSV085).

04. PARÂMETROS

NomeTipoDescrição

nLinha

NuméricoPróxima linha disponível no coletor para o Ponto de Entrada exibir as informações.
lTemLoteLógicoIndica que no produto padrão será exibido o lote, o que reduz em 1 a quantidade de linhas disponíveis para o Ponto de Entrada.
nTemSubLotLógicoIndica que no produto padrão será exibido o sublote, o que reduz em 1 a quantidade de linhas disponíveis para o Ponto de Entrada.

nQtdTot

NuméricoQuantidade do movimento conferido.
nQtdeNuméricoQuantidade do produto, caso seja informado o Código de Barra do produto.

05. RETORNO

Deve ser retornado o conteúdo de nLinha.

...

Se for criada uma nova tela é necessário retornar nLinha com o mesmo valor enviado para o Ponto de Entrada.

06. VERSÕES

Protheus 12.1.27 ou superiores.

07. OBSERVAÇÃO

Se não houver um controle exato da quantidade de linhas utilizadas pelo Ponto de Entrada na forma 1, poderá ocorrer exceção dentro da rotina padrão.

Utilize o exemplo para apoio neste controle.

08. EXEMPLO

...

languagecpp
titleExemplo
linenumberstrue
collapsetrue

...

------

#INCLUDE 'PROTHEUS.CH'
#INCLUDE 'APVT100.CH'


User Function WMSV085PPR()
Local nLinha := ParamIxb[1] //Última linha usada pelo produto padrão
Local lTemLote := ParamIxb[2] //Indica se será exibido o lote no produto padrão
Local lTemSubLot := ParamIxb[3] //Indica se será exibido o sublote no produto padrão
Local nQtdTot := ParamIxb[4] //Indica a quantidade do documento conferido
Local nQtde := ParamIxb[5] //Quantidade do produto caso seja usado Codigo de Barra
Local nQtMaxRow := VTMaxRow() + 1 //Qtde máxima de linhas do coletor
Local nLinPE := 0 //Qtde de linhas que o PE pode usar
Local aTelaAnt := {}

//até 8 linhas são usadas pelo programa padrão, caso haja lote e sublote.
nLinPE := nQtMaxRow - 8

//Se não houver lote, pode ser adicionada uma linha
If !lTemLote
     nLinPE++
EndIf

//Se não houver sublote, pode ser adiciona uma linha
If !lTemSubLot
      nLinPE++
EndIf

If nLinPE > 0
      //Complementa a tela padrão com documento se houver ao menos 1 linha disponível
      @ nLinha++,00 VTSay PadR('Documento: ' + D12->D12_DOC, VTMaxCol())

      If nLinPE > 1
            //Complementa a tela padrão com quantidade se houver ao menos 2 linhas disponíveis
           @ nLinha++,00 VTSay PadR('Qtde: ' + AllTrim(Str(D12->D12_QTDORI)),

...

VTMaxCol())

...


      EndIf

Else
          //Se

...

não

...

houver

...

linhas

...

suficientes

...

...

a

...

possibilidade

...

de

...

criar

...

uma

...

nova

...

tela

...

para

...

exibir
         //todas

...

as

...

informações

...

e

...

fechál-la

...

com

...

um

...

<Enter>
         aTelaAnt := VTSave(00,

...

00,

...

VTMaxRow(),

...

VTMaxCol())

...



         For nLinPE := 0 to VTMaxRow()
               VTSay(nLinPE,0,Space(VtMaxCol()+1))

...


         Next

         WMSVTCabec('Dados

...

do

...

Produto',.F.,.F.,.T.)

...


         @ 01,00

...

VTSay

...

PadR('Produto:

...

'

...

+

...

D12->D12_PRODUT,

...

VTMaxCol())

...


         @ 02,00

...

VTSay

...

PadR('Docto:

...

'

...

+

...

D12->D12_DOC,

...

VTMaxCol())

...


         @ 03,00

...

VTSay

...

PadR('Qtde:

...

'

...

+

...

AllTrim(Str(D12->D12_QTDORI)),

...

VTMaxCol())

...


         WMSVTRodPe()

         VTRestore(00,

...

00,

...

VTMaxRow(),

...

VTMaxCol(),

...

aTelaAnt)

...


EndIf

Return nLinha

------


Templatedocumentos


HTML
<style>
div.theme-default .ia-splitter #main {
    margin-left: 0px;
}
.ia-fixed-sidebar, .ia-splitter-left {
    display: none;
}
#main {
    padding-left: 10px;
    padding-right: 10px;
    overflow-x: hidden;
}

.aui-header-primary .aui-nav,  .aui-page-panel {
    margin-left: 0px !important;
}
.aui-header-primary .aui-nav {
    margin-left: 0px !important;
}

.aui-tabs.horizontal-tabs>.tabs-menu>.menu-item.active-tab a::after { 
	background: #FF9900; !important 
}

.menu-item.active-tab { 
	border-bottom: none !important; 
}

</style>