Árvore de páginas

Versões comparadas

Chave

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

...

Este Ponto de Entrada permite que a operação de um armazém receba os produtos unitizados e realize o processo de conferência do recebimento, sem que haja
a haja a necessidade de abrir os invólucros.

...

NomeTipoDescrição
cEmbarqueCaractereCódigo de montagem da conferência
cTipUniCaractereTipo do unitizador
cIdUnitCaractereID do unitizador
cArmazemCaractereArmazém da conferência
cEnderecoCaractereEndereço da conferência

05. RETORNO

NomeTipoDescrição
cPrdOriCaractereCódigo do produto origem¹
cProdutoCaractereCódigo do produto
cLoteCtlCaractereNúmero de lote do produto
cSubLoteCaractereNúmero de sublote do produto
nQtConfNuméricoQuantidade conferida

¹ Quando não for um produto componente, é o próprio código do produto.

Informações
titleIMPORTANTE!
  • Os valores retornados pelo PE devem possuir o mesmo tamanho dos campos correspondentes na tabela DCZ.
  • Caso contrário, poderão ser gerados error.logs ou inconsistências na base de dados.

06. VERSÕES

Protheus 12.1.17 e ou superiores.

07. OBSERVAÇÃO

Todos os parâmetros são recebidos na User Function via PARAMIXB conforme consta em Execblock / Customização.

08. EXEMPLO

...

languagecpp
titleExemplo
linenumberstrue
collapsetrue

...

------

#INCLUDE "PROTHEUS.CH"

...

User

...

Function

...

WV090UNI()

...


Local

...

cEmbarque

...

:=

...

PARAMIXB[1]

...


Local

...

cTipUni

...

:=

...

PARAMIXB[2]

...


Local

...

cIdUnit

...

:=

...

PARAMIXB[3]

...


Local

...

cArmazem

...

:=

...

PARAMIXB[4]

...


Local

...

cEndereco

...

:=

...

PARAMIXB[5]

...


Local

...

cSeekZZZ

...

:=

...

""

...


Local

...

nTamPrd

...

:=

...

TamSX3("DCZ_PROD"

...

)[1]

...


Local

...

nTamLot

...

:=

...

TamSX3("DCZ_LOTE"

...

)[1]

...


Local

...

nTamSub

...

:=

...

TamSX3("DCZ_SUBLOT")[1]

...


Local

...

aItensUni

...

:=

...

{}

...


Local

...

aItem

...

:=

...

{}

...

//

...

Busca

...

o

...

documento

...

que

...

faz

...

parte

...

da

...

conferência
DCX→ (DbSetOrder(1))

...


If DCX→ (DbSeek(xFilial("DCX")+cEmbarque))

...


           cSeekZZZ :=

...

xFilial("ZZZ")+DCX->DCX_DOC+DCX->DCX_SERIE+DCX->DCX_FORNEC+DCX->DCX_LOJA+cIdUnit

...


          //

...

Busca

...

na

...

tabela

...

específica

...

todos

...

os

...

itens

...

que

...

fazem

...

parte

...

daquele

...

documento

...

+

...

etiqueta
          ZZZ→ (DbSetOrder(1))

...


         ZZZ→ (DbSeek(cSeekZZZ))

...

 While !ZZZ→ (Eof())

...

.And.

...

ZZZ->ZZZ_FILIAL+ZZZ->ZZZ_DOC+ZZZ->ZZZ_SERIE+ZZZ->ZZZ_FORNEC+ZZZ->ZZZ_LOJA+ZZZ->ZZZ_IDUNIT

...

==

...

cSeekZZZ
         //

...

Adiciona

...

o

...

item

...

relacionado

...

à

...

etiqueta

...

no

...

array

...

auxiliar
         AAdd(aItem,PadR(ZZZ->ZZZ_PRDORI

...

,nTamPrd))

...


         AAdd(aItem,PadR(ZZZ->ZZZ_PRODUT

...

,nTamPrd))

...


         AAdd(aItem,PadR(ZZZ->ZZZ_LOTECTL,nTamLot))

...


         AAdd(aItem,PadR(ZZZ->ZZZ_SUBLOT

...

,nTamSub))

...


         AAdd(aItem,ZZZ->ZZZ_QUANT)

...


        //

...

Adiciona

...

o

...

item

...

no

...

array

...

principal

...

de

...

retorno
        AAdd(aItensUni,aItem)

...


        ZZZ→ (DbSkip())

...


EndDo

EndIf

Return aItensUni

------


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>