Árvore de páginas

Versões comparadas

Chave

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

Tempo aproximado para leitura: 15 min

01. DADOS GERAIS

Linha de Produto:Microsiga Protheus
Segmento:Supply Chain - Logística
Módulo:TMS - Gestão de Transportes
Função:

TMSA200 - Cálculo do Frete

Requisito/Story/Issue :

DLOGTMS02-7731


02. SITUAÇÃO/REQUISITO

Com a descontinuidade do parâmetro MV_CANAUTO será necessário que seja criada uma função,

na

a qual irá varrer a base de documentos (DT6), e excluir os registros que estão com status de DT6_STATUS = C-Cancelamento SEFAZ Autorizado.


03. SOLUÇÃO

Esta função irá selecionar todos os registros contidos na tabela DT6 (Documentos de Transporte) que, possuam Status (DT6_STATUS) igual a "C" (Cancelamento SEFAZ Autorizado) e executar a rotina padrão de exclusão dos registros, obtendo os mesmos resultados quando executada por dentro do SIGATMS.

Abaixo, segue uma sugestão de código, onde, a função em questão deve ser chamada via um novo item criado no menu e executada uma unica vez.

Importante ressaltar que, será executado o mesmo processo de exclusão de documentos quando executado via SIGATMS, incluindo a abertura das notas originais constantes no CTe estornado, e a criação de novo lote quando o parâmetro MV_GERLOT estiver configurado como .T.


#include 'protheus.ch'
#include 'parmtype.ch'

user function TMSAjustaDT6()
Local cQuery := ""
Local cAliasQry := GetNextAlias()
Local aArrayDel := {}
Local nSeek := 0
Local nCount := 0

cQuery := " SELECT DT6_FILDOC, DT6_DOC, DT6_SERIE, DT6_SITCTE, DT6_LOTNFC "
cQuery += " FROM " + RetSqlName("DT6")
cQuery += " WHERE DT6_IDRCTE = '101' "
cQuery += " AND DT6_STATUS = 'C' "
cQuery += " AND D_E_L_E_T_ = ' ' AND DT6_LOTNFC <> ''"
cQuery += " ORDER BY DT6_LOTNFC "
cQuery := ChangeQuery(cQuery)

dbUseArea(.T.,"TOPCONN",TcGenQry(,,cQuery),cAliasQry)
While !(cAliasQry)->(Eof())
If ( nSeek := aScan(aArrayDel,{ |x| x[1] == (cAliasQry)->DT6_LOTNFC }) ) > 0
Aadd(aArrayDel[nSeek,2], { (cAliasQry)->DT6_FILDOC, (cAliasQry)->DT6_DOC, (cAliasQry)->DT6_SERIE, "", .T., (cAliasQry)->DT6_SITCTE } )
Else
Aadd(aArrayDel, {(cAliasQry)->DT6_LOTNFC, {} } )
Aadd(aArrayDel[Len(aArrayDel),2], { (cAliasQry)->DT6_FILDOC, (cAliasQry)->DT6_DOC, (cAliasQry)->DT6_SERIE, "", .T., (cAliasQry)->DT6_SITCTE } )
EndIf
(cAliasQry)->(dbSkip())
EndDo
For nCount := 1 to Len(aArrayDel)
TMSA200Exc(aArrayDel[nCount,2], aArrayDel[nCount,1], .F., .F., )
Next

(cAliasQry)->(DbCloseArea())
MsgInfo("Fim do processo de exclusão de documentos.")

return

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