Árvore de páginas

Versões comparadas

Chave

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

É possível executar este processo somente quando a montagem de volumes for efetuada manualmente no WMS Protheus, via rotina Montagem de Volumes.

...

Sendo assim existem dois Pontos de Entrada do faturamento que podem ser utilizados para realizar esta gravação.:

  • MTASF2 - Geração de registros em SF2

Este Ponto de Entrada é chamado após a gravação dos dados principais da Nota Fiscal, porém, antes da gravação das informações de volumes e deve manipular o array Private aEspVol que alimentará os campos da Nota Fiscal.

  • SF2460I - Atualização das tabelas referentes à nota fiscal

Este Ponto de Entrada é chamado após a gravação de todas as informação da Nota Fiscal e deve alterar diretamente os campos da tabela de Nota Fiscal (SF2).

...

Bloco de código
languagecpp
titleExemplo
linenumberstrue
collapsetrue
#include "protheus.ch"

// Este ponto de entrada grava um array do tipo Private que irá gravar os volumes da nota fiscal
User Function MTASF2()
Local aVolumes := QtdVolSF2()
   If Len(aVolumes) > 0
      // Caso queira limpar os volumes calculados no padrão
      // aEspVol := {}
      If Len(aEspVol) >= 1
         aEspVol[1] := aVolumes
      Else
         Aadd(aRet, aVolumes)
      EndIf
   EndIf
Return

// Este ponto de entrada deve gravar diretamente na tabela SF2 nos campos correspondentes
User Function SF2460I()
Local aVolumes := QtdVolSF2()
   If Len(aVolumes) > 0
      RecLock("SF2",.F.)
      SF2->F2_ESPECI1 := aVolumes[1]
      SF2->F2_VOLUME1 := aVolumes[2]
      SF2->(MsUnLock())
   EndIf
Return

Static Function QtdVolSF2()
Local aAreaAnt  := GetArea()
Local cQuery    := ""
Local cAliasQry := GetNextAlias()
Local aRet      := {}

   cQuery = "SELECT count(DISTINCT DCV_CODVOL) AS DCV_QTDVOL"
   cQuery+=  " FROM "+RetSqlName("SC9")+" SC9"
   cQuery+= " INNER JOIN "+RetSqlName("DCV")+" DCV"
   cQuery+=    " ON DCV.DCV_FILIAL = '"+xFilial("DCV")+"'"
   cQuery+=   " AND DCV.DCV_PEDIDO = SC9.C9_PEDIDO"
   cQuery+=   " AND DCV.DCV_ITEM = SC9.C9_ITEM"
   cQuery+=   " AND DCV.DCV_SEQUEN = SC9.C9_SEQUEN"
   cQuery+=   " AND DCV.DCV_PRDORI = SC9.C9_PRODUTO"
   cQuery+=   " AND DCV.D_E_L_E_T_ = ' '"
   cQuery+= " WHERE SC9.C9_FILIAL  = '"+xFilial("SC9")+"'"
   cQuery+=   " AND SC9.C9_NFISCAL = '"+SF2->F2_DOC+"'"
   cQuery+=   " AND SC9.C9_SERIENF = '"+SF2->F2_SERIE+"'"
   cQuery+=   " AND SC9.D_E_L_E_T_ = ' '"

   DbUseArea(.T.,'TOPCONN',TcGenQry(,,cQuery),cAliasQry,.F.,.T.)
   TcSetField(cAliasQry,'DCV_QTDVOL','N',10,0)
   If (cAliasQry)->(!Eof()).And. (cAliasQry)->DCV_QTDVOL > 0)
      // Supondo que a espécie seja caixas
      Aadd(aRet, {"CAIXA", (cAliasQry)->DCV_QTDVOL})
   EndIf
   (cAliasQry)->(dbCloseArea())
   RestArea(aAreaAnt)
Return aRet

03. ASSUNTOS RELACIONADOS

Pontos de Entrada

04. ANEXO - PDF


HTML
<!-- esconder o menu --> 


<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;
}
</style>