Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Comentário: Migration of unmigrated content due to installation of a new plugin

Descrição

A rotina automática possibilita realizar a inclusão e exclusão de Faturas por Documentos de Transporte

...

(CTE/CTRC),

...

através

...

de

...

programas

...

que

...

atendem

...

as

...

necessidades

...

específicas

...

do

...

cliente.

...

Idioma

Português(Brasil)

...

Versões

Microsiga_Protheus11

...

Sistemas

...

Operacionais

...

Suportados

...

Todos

Compatível com as Bases de Dados

Todas

Parâmetros

aAutoCab - Cabeçalho dos Documentos de Transporte, matriz conforme layout abaixo.
Item 01 "DT6_FILDOC",

...

conteúdo,

...

Nil

...


Item

...

02

...

"DT6_DOC",

...

conteúdo,

...

Nil

...


Item

...

03

...

"DT6_SERIE",

...

conteúdo,

...

Nil

...


Item

...

04

...

"DT6_VALTOT",

...

conteúdo,

...

Nil

...


Item

...

05

...

"DT6_ACRESC",

...

conteúdo,

...

Nil

...


Item

...

06

...

"DT6_DECRES",

...

conteúdo,

...

Nil

...


Item

...

07

...

"_SI_VALFAT",

...

conteúdo,

...

Nil

...


Item

...

08

...

"DT6_DATEMI",

...

conteúdo,

...

Nil

...


Item

...

09

...

"_SI_UFDEST",

...

conteúdo,

...

Nil

...


Item

...

10

...

"RECNO",

...

conteúdo,

...

Nil

...


nOpcAuto

...

...

Opção

...

Menu

...

(numérico),onde

...

3

...

para

...

inclusão

...

e

...

5

...

para

...

exclusão.

...


cTipo

...

...

Tipo

...

Fatura

...

(caracter).

...


cFilDeb

...

...

Filial

...

Débito

...

(caracter).

...


cCliente

...

...

Cliente

...

(caracter).

...


cLoja

...

...

Loja

...

(caracter).

...


nMoeAut

...

...

Moeda

...

(numérico).

...


dEmiAut

...

...

Data

...

de

...

Emissão

...

(data).

...


dVenAut

...

...

Data

...

de

...

Vencimento

...

da

...

Fatura

...

(data).

...


cNatAut

...

...

Natureza

...

Operação

...

(caracter)

...

Retorno

Nenhum

Programa Fonte

TMSA850.PRW

Bloco de código
themeConfluence
languagehtml/xml
titleExemplo
// Exemplo execucao rotina automática para geração de faturas por documentos.
User Function TESTInc()
Local cAlias   := GetNextAlias()
Local cQuery   := ""
Local aCabDT6  := {}
Local aRegDT6  := {}
Local lTMSCTe  := SuperGetMv( "MV_TMSCTE", .F., .F. ) //-- Parametro do CT-e ativo.
//-- Filtros CTE
Local cTipo    := "FT"
Local cFilDeb  := "01"
Local cCliFat  := Padr("000001",Len(SA1->A1_COD ))
Local cLojFat  := Padr("01"    ,Len(SA1->A1_LOJA))
Local dDataDe  := CToD("01/08/2013")
Local dDataAte := CToD("31/08/2013")
//-- Parametros rotina automatica
Local nMoedFat := 1
Local dEmisFat := dDataBase
Local dVencFat := CToD( "31/12/2013" )
Local cNat     := "NATFAT"
lMsErroAuto := .F.
nModulo     := 43
cQuery := "SELECT DT6_FILDOC, DT6_DOC, DT6_SERIE,DT6_VALTOT,DT6_ACRESC,DT6_DECRES,DT6_DATEMI, "
cQuery += "       DT6_VALFAT, DT6.R_E_C_N_O_ RECNO , DUY.DUY_EST UFDEST "
cQuery += "     FROM "+RetSqlName("DT6")+" DT6 "
cQuery += "LEFT JOIN "+RetSqlName("DUY")+" DUY "
cQuery += "  ON DUY.DUY_FILIAL = '"+xFilial("DUY")+"'"
cQuery += " AND DUY.DUY_GRPVEN = DT6.DT6_CDRDES"
cQuery += " AND DUY.D_E_L_E_T_ = ' ' "
If lTMSCTe
 cQuery += "LEFT JOIN "+RetSqlName("DTP")+" DTP "
 cQuery += "  ON DTP.DTP_FILORI = DT6.DT6_FILDOC "
 cQuery += " AND DTP.DTP_LOTNFC = DT6.DT6_LOTNFC "
 cQuery += " AND DTP.D_E_L_E_T_ = ' ' "
EndIf
cQuery += "WHERE DT6.DT6_FILIAL = '"+xFilial("DT6") + "'"
cQuery += "  AND DT6.DT6_CLIDEV = '"+cCliFat+"'"
cQuery += "  AND DT6.DT6_LOJDEV = '"+cLojFat+"'"
cQuery += "  AND DT6.DT6_PREFIX  ='"+Space(Len(DT6->DT6_PREFIX))+"'"
cQuery += "  AND DT6.DT6_NUM     ='"+Space(Len(DT6->DT6_NUM   ))+"'"
cQuery += "  AND DT6.DT6_TIPO    ='"+Space(Len(DT6->DT6_TIPO  ))+"'"
cQuery += "  AND DT6.DT6_DATEMI >='"+DTOS(dDataDe) +"'"
cQuery += "  AND DT6.DT6_DATEMI <='"+DTOS(dDataAte)+"'"
cQuery += "  AND DT6.DT6_FILDEB  ='"+cFilDeb+"'"
// Fatura apenas documentos validos de transporte
cQuery += "  AND DT6.DT6_DOCTMS NOT IN ( '1', 'A', 'K' )"    //('K'= Carregamento em Partes do Internacional)
cQuery += "  AND DT6.DT6_SERIE <> 'PED'"
If lTMSCTe // AUTORIZADO O USO DO CTE DT6_SITCTE = '2'
 cQuery += "  AND ((DT6.DT6_SITCTE = ' ' AND DTP.DTP_TIPLOT = '1') OR "
 cQuery += "       (DT6.DT6_SITCTE = '0' AND DTP.DTP_TIPLOT = '1') OR "
 cQuery += "       (DT6.DT6_SITCTE = '1' AND DTP.DTP_TIPLOT = '3') OR "
 cQuery += "       (DT6.DT6_SITCTE = '2' AND DTP.DTP_TIPLOT = '3') OR "
 cQuery += "       (DT6.DT6_SITCTE = '4' AND DTP.DTP_TIPLOT = '3')) "
EndIf // ((AUTORIZADO O USO DO CTE e Lote Eletronico) ou (CTRC antigos e Lote Normal))
// Nao permite FATURAR ctrc que tenham solicitacoes de transferencias em aberto.
cQuery += "  AND DT6.DT6_NUMSOL = ' '"
cQuery += "  AND DT6.D_E_L_E_T_ = ' '"
cQuery += "  ORDER BY " + SqlOrder(DT6->(IndexKey(1))+"+RECNO")
cQuery := ChangeQuery(cQuery)
MsAguarde({|| dbUseArea(.T., "TOPCONN", TCGenQry(,,cQuery), cAlias, .F., .T.)},"Aguarde! Obtendo os dados...")
Do While !(cAlias)->(Eof())
 //-- Layout contendo informacoes necessarias para geracao da fatura.
 aRegDT6 := { { "DT6_FILDOC", (cAlias)->(DT6_FILDOC),Nil},; // 1
     { "DT6_DOC"   , (cAlias)->(DT6_DOC   ),Nil},; // 2
     { "DT6_SERIE" , (cAlias)->(DT6_SERIE ),Nil},; // 3
     { "DT6_VALTOT", (cAlias)->(DT6_VALTOT),Nil},; // 4
     { "DT6_ACRESC", (cAlias)->(DT6_ACRESC),Nil},; // 5
     { "DT6_DECRES", (cAlias)->(DT6_DECRES),Nil},; // 6
     { "_SI_VALFAT", (cAlias)->(DT6_VALFAT),Nil},; // 7
     { "DT6_DATEMI", (cAlias)->(DT6_DATEMI),Nil},; // 8
     { "_SI_UFDEST", (cAlias)->(UFDEST    ),Nil},; // 9
     { "RECNO"     , (cAlias)->(RECNO     ),Nil} } // 10
 AAdd(aCabDT6,aClone(aRegDT6))
 (cAlias)->(DbSkip())
EndDo
(cAlias)->(dbCloseArea())
MsExecAuto({|q,r,s,t,u,v,w,x,y,z|TmsA850(q,r,s,t,u,v,w,x,y,z)}, aCabDT6, 3, cTipo, cFilDeb, cCliFat, cLojFat, nMoedFat, dEmisFat, dVencFat, cNat)
If lMsErroAuto
 MostraErro()
EndIf
Return Nil
// Exemplo execucao rotina automática para exclusao faturas por documentos
User Function TESTExc()
Local cAlias   := GetNextAlias()
Local cQuery   := ""
Local aCabDT6  := {}
Local aRegDT6  := {}
Local lTMSCTe  := SuperGetMv( "MV_TMSCTE", .F., .F. ) //-- Parametro do CT-e ativo.
//-- Filtros CTE
Local cTipo    := "FT"
Local cFilDeb  := "01"
Local cCliFat  := Padr("000001",Len(SA1->A1_COD ))
Local cLojFat  := Padr("01"    ,Len(SA1->A1_LOJA))
Local dDataDe  := CToD("01/08/2013")
Local dDataAte := CToD("31/08/2013")
Local cPrefix  := "FT "
Local cNum     := "000055   "
Local cParc    := "00A"
//-- Parametros rotina automatica
Local nMoedFat := 1
Local dEmisFat := dDataBase
Local dVencFat := CToD( "31/12/2013" )
Local cNat     := "NATFAT"
lMsErroAuto := .F.
nModulo     := 43
cQuery := "SELECT DT6_FILDOC, DT6_DOC, DT6_SERIE,DT6_VALTOT,DT6_ACRESC,DT6_DECRES,DT6_DATEMI, "
cQuery += "       DT6_VALFAT, DT6.R_E_C_N_O_ RECNO , DUY.DUY_EST UFDEST "
cQuery += "     FROM "+RetSqlName("DT6")+" DT6 "
cQuery += "LEFT JOIN "+RetSqlName("DUY")+" DUY "
cQuery += "  ON DUY.DUY_FILIAL = '"+xFilial("DUY")+"'"
cQuery += " AND DUY.DUY_GRPVEN = DT6.DT6_CDRDES"
cQuery += " AND DUY.D_E_L_E_T_ = ' ' "
If lTMSCTe
 cQuery += "LEFT JOIN "+RetSqlName("DTP")+" DTP "
 cQuery += "  ON DTP.DTP_FILORI = DT6.DT6_FILDOC "
 cQuery += " AND DTP.DTP_LOTNFC = DT6.DT6_LOTNFC "
 cQuery += " AND DTP.D_E_L_E_T_ = ' ' "
EndIf
cQuery += "WHERE DT6.DT6_FILIAL = '"+xFilial("DT6") + "'"
cQuery += "  AND DT6.DT6_CLIDEV = '"+cCliFat+"'"
cQuery += "  AND DT6.DT6_LOJDEV = '"+cLojFat+"'"
cQuery += "  AND DT6.DT6_PREFIX  ='"+PadR(cPrefix,Len(DT6->DT6_PREFIX))+"'"
cQuery += "  AND DT6.DT6_NUM     ='"+PadR(cNum   ,Len(DT6->DT6_NUM   ))+"'"
cQuery += "  AND DT6.DT6_TIPO    ='"+PadR(cTipo  ,Len(DT6->DT6_TIPO  ))+"'"
cQuery += "  AND DT6.DT6_DATEMI >='"+DTOS(dDataDe) +"'"
cQuery += "  AND DT6.DT6_DATEMI <='"+DTOS(dDataAte)+"'"
cQuery += "  AND DT6.DT6_FILDEB  ='"+cFilDeb+"'"
// Fatura apenas documentos validos de transporte
cQuery += "  AND DT6.DT6_DOCTMS NOT IN ( '1', 'A', 'K' )"    //('K'= Carregamento em Partes do Internacional)
cQuery += "  AND DT6.DT6_SERIE <> 'PED'"
If lTMSCTe // AUTORIZADO O USO DO CTE DT6_SITCTE = '2'
 cQuery += "  AND ((DT6.DT6_SITCTE = ' ' AND DTP.DTP_TIPLOT = '1') OR "
 cQuery += "       (DT6.DT6_SITCTE = '0' AND DTP.DTP_TIPLOT = '1') OR "
 cQuery += "       (DT6.DT6_SITCTE = '1' AND DTP.DTP_TIPLOT = '3') OR "
 cQuery += "       (DT6.DT6_SITCTE = '2' AND DTP.DTP_TIPLOT = '3') OR "
 cQuery += "       (DT6.DT6_SITCTE = '4' AND DTP.DTP_TIPLOT = '3')) "
EndIf // ((AUTORIZADO O USO DO CTE e Lote Eletronico) ou (CTRC antigos e Lote Normal))
// Nao permite FATURAR ctrc que tenham solicitacoes de transferencias em aberto.
cQuery += "  AND DT6.DT6_NUMSOL = ' '"
cQuery += "  AND DT6.D_E_L_E_T_ = ' '"
cQuery += "  ORDER BY " + SqlOrder(DT6->(IndexKey(1))+"+RECNO")
cQuery := ChangeQuery(cQuery)
MsAguarde({|| dbUseArea(.T., "TOPCONN", TCGenQry(,,cQuery), cAlias, .F., .T.)},"Aguarde! Obtendo os dados...")
Do While !(cAlias)->(Eof())
 //-- Layout contendo informacoes necessarias para geracao da fatura.
 aRegDT6 := { { "DT6_FILDOC", (cAlias)->(DT6_FILDOC),Nil},; // 1
     { "DT6_DOC"   , (cAlias)->(DT6_DOC   ),Nil},; // 2
     { "DT6_SERIE" , (cAlias)->(DT6_SERIE ),Nil},; // 3
     { "DT6_VALTOT", (cAlias)->(DT6_VALTOT),Nil},; // 4
     { "DT6_ACRESC", (cAlias)->(DT6_ACRESC),Nil},; // 5
     { "DT6_DECRES", (cAlias)->(DT6_DECRES),Nil},; // 6
     { "_SI_VALFAT", (cAlias)->(DT6_VALFAT),Nil},; // 7
     { "DT6_DATEMI", (cAlias)->(DT6_DATEMI),Nil},; // 8
     { "_SI_UFDEST", (cAlias)->(UFDEST    ),Nil},; // 9
     { "RECNO"     , (cAlias)->(RECNO     ),Nil} } // 10
 AAdd(aCabDT6,aClone(aRegDT6))
 (cAlias)->(DbSkip())
EndDo
(cAlias)->(dbCloseArea())
dbSelectArea("SE1")
dbSetOrder(1) //E1_FILIAL+E1_PREFIXO+E1_NUM+E1_PARCELA+E1_TIPO
dbSeek(xFilial("SE1")+cPrefix+cNum+cParc+cTipo)
MsExecAuto({|x,y|TmsA850(x,y)}, aCabDT6, 5 )
If lMsErroAuto
 MostraErro()
EndIf
Return Nil

...