Histórico da Página
GFEXFB10 - Definir
...
Novo Agrupamento Para os Cálculos do Romaneio de Carga
Características do Requisito
Linha de Produto: | Microsiga Protheus |
Segmento: | Distribuição e Supply Chain - Logística |
Módulo: | SIGAGFE |
Ponto de Entrada: | GFEXFB10 | ||||||||||||||||||||||||
Descrição: | Possibilidade de definir um novo agrupamento para os cálculos do romaneio de carga. | ||||||||||||||||||||||||
Localização: | Chamado ao ser definido o número de agrupamento dos cálculos; | ||||||||||||||||||||||||
Programa Fonte: | GFEXFUNB - Funções Genéricas do Cálculo | ||||||||||||||||||||||||
Parâmetros: |
| ||||||||||||||||||||||||
Retorno: |
|
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
#INCLUDE "PROTHEUS.CH" User Function GFEXFB10 Local cEmisDc := PARAMIXB[1] //GFEXFB_5CMP(lTabTemp, cTRBDOC, @aDocCarg, 1,"EMISDC"),; Local cSerDc := PARAMIXB[2] //GFEXFB_5CMP(lTabTemp, cTRBDOC, @aDocCarg, 1,"SERDC"), ; Local cNrDc := PARAMIXB[3] //GFEXFB_5CMP(lTabTemp, cTRBDOC, @aDocCarg, 1,"NRDC"), ; Local cCdTpDc := PARAMIXB[4] //GFEXFB_5CMP(lTabTemp, cTRBDOC, @aDocCarg, 1,"CDTPDC") Local cNrRom := PARAMIXB[5] //GFEXFB_5CMP(lTabTemp, cTRBDOC, @aDocCarg, 1,"NRAGRU") || gwn_nrrom Local cNumGrup := "" Local cQuery := "" Local cAliasQry:= "" Local nNumGrup := 0 local nX := 0 Local aNumGrup := {} //Busca todas os documentos do romaneio cNrRom cQuery := " SELECT GW1_CDTPDC,GW1_EMISDC,GW1_SERDC,GW1_NRDC,GW1_CDREM,GW1_CDDEST,GW1_ENTNRC,GW1_ENTBAI,GW1_ENTEND" cQuery += " FROM "+RetSqlName('GW1')" cQuery += " WHERE GW1_FILIAL = '"+xFilial('GW1')+"'" cQuery += " AND GW1_NRROM = '"+cNrRom+"'" cQuery += " AND D_E_L_E_T_ = ' '" cQuery := ChangeQuery(cQuery) cAliasQry := GetNextAlias() dbUseArea(.T.,'TOPCONN',TCGENQRY(,,cQuery),cAliasQry,.F.,.T.) While (cAliasQry)->(!Eof()) //Insere os documentos em um array, junto com a nova numeração para o número do grupo If (nX := aScan(aNumGrup,{|x| x[2] == (cAliasQry)->(GW1_EMISDC+GW1_CDREM+GW1_CDDEST+GW1_ENTNRC+GW1_ENTBAI+GW1_ENTEND)})) == 0 nNumGrup++ aAdd(aNumGrup,{StrZero(nNumGrup,06),(cAliasQry)->(GW1_EMISDC+GW1_CDREM+GW1_CDDEST+GW1_ENTNRC+GW1_ENTBAI+GW1_ENTEND),{}}) nX := Len(aNumGrup) EndIf aAdd(aNumGrup[nX][3], (cAliasQry)->(GW1_CDTPDC+GW1_EMISDC+GW1_SERDC+GW1_NRDC)) (cAliasQry)->(dbSkip()) EndDo (cAliasQry)->(dbCloseArea()) //Busca no array o documento passado por parâmetro e atribui o número do grupo que será retornado para gravar o cálculo For nX := 1 To Len(aNumGrup) If (aScan(aNumGrup[nX][3], {|x| x == cCdTpDc+cEmisDc+cSerDc+cNrDc})) > 0 cNumGrup := aNumGrup[nX][1] EndIf Next nX Return cNumGrup |
...
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas