Ao confirmar o acerto do serviço de armazenagem dará origem nos documentos fiscais de cobrança ou de saída do depósito em caso retenção.
Ao realizar este fechamento é gerado registro da cobrança do serviço relacionando a nota de serviço ao documento fiscal ou a geração do documento de saída do depósito.
Para os casos de retenção é gerado um romaneio de retenção.
Orientamos que utiliza a tabela NKS (fechamento Serviço de Armazenagem) com mesmo compartilhamento da tabela NKG (Acerto dos serviços Armazenagem) para que ao gerar o romaneio seja possível identificar o registro de origem através do documento fiscal e romaneio gerado.
NKG - Serviço Armazenagem | NKS - Fechamento Serviço |
Exclusivo | Exclusivo |
Exemplo:
//Exemplo de Função de Acerto para ajustar a filial NKS conforme a filial da tabela NKG. #INCLUDE "PROTHEUS.CH"
USER aFUNCTION FAjustaNKS Local nPos := 0 Local aNKS := {} lOCAL nI := 0 Local cQuery := "" Local cAliasQry := GetNextAlias()
cQuery := " SELECT NKG_FILIAL, NKG_FECSER " cQuery += " FROM " + RetSqlName('NKG') + " NKG " cQuery += " WHERE NKG.D_E_L_E_T_ = '' " cQuery += " AND NKG_FECSER <> ' ' " cQuery := ChangeQuery( cQuery )
dbUseArea( .T., "TOPCONN", TCGENQRY(,,cQuery), cAliasQry, .F., .T.) dbSelectArea(cAliasQry) While !(cAliasQry)->( Eof() ) nPos a := aScan( aNKS, { |x| AllTrim( x[1] ) == AllTrim((cAliasQry)->NKG_FECSER) } ) If nPos == 0 aAdd( aNKS, { (cAliasQry)->NKG_FECSER, (cAliasQry)->NKG_FILIAL} ) EndIf (cAliasQry)->(DbSkip()) EndDO
If Len(aNKS) > 0 For nI := 1 to Len(aNKS) dbSelectArea("NKS") NKS->(dbSetOrder(1)) if NKS->(DBSeek(PADR("",TamSX3("NKS_FILIAL")[1])+aNKS[nI,1])) if RecLock('NKS',.f.) NKS->NKS_filiaL := aNKS[nI,2] NKS->(MsUnLock()) ENDIF ENDIF Next nI EndIF return |