Histórico da Página
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. |
...
conteúdo, |
---|
...
Nil |
---|
...
|
---|
...
02 |
---|
...
"DT6_DOC", |
---|
...
conteúdo, |
---|
...
Nil |
---|
...
|
---|
...
03 |
---|
...
"DT6_SERIE", |
---|
...
conteúdo, |
---|
...
Nil |
---|
...
|
---|
...
04 |
---|
...
"DT6_VALTOT", |
---|
...
conteúdo, |
---|
...
Nil |
---|
...
|
---|
...
05 |
---|
...
"DT6_ACRESC", |
---|
...
conteúdo, |
---|
...
Nil |
---|
...
|
---|
...
06 |
---|
...
"DT6_DECRES", |
---|
...
conteúdo, |
---|
...
Nil |
---|
...
|
---|
...
07 |
---|
...
"_SI_VALFAT", |
---|
...
conteúdo, |
---|
...
Nil |
---|
...
|
---|
...
08 |
---|
...
"DT6_DATEMI", |
---|
...
conteúdo, |
---|
...
Nil |
---|
...
|
---|
...
09 |
---|
...
"_SI_UFDEST", |
---|
...
conteúdo, |
---|
...
Nil |
---|
...
|
---|
...
10 |
---|
...
"RECNO", |
---|
...
conteúdo, |
---|
...
Nil |
---|
...
|
---|
...
– |
---|
...
Opção |
---|
...
Menu |
---|
...
(numérico), |
---|
...
onde |
---|
...
3 |
---|
...
para |
---|
...
inclusão |
---|
...
e |
---|
...
5 |
---|
...
para |
---|
...
exclusão. |
---|
...
|
---|
...
– |
---|
...
Tipo |
---|
...
Fatura |
---|
...
(caracter). |
---|
...
|
---|
...
– |
---|
...
Filial |
---|
...
Débito |
---|
...
(caracter). |
---|
...
|
---|
...
– |
---|
...
Cliente |
---|
...
(caracter). |
---|
...
|
---|
...
– |
---|
...
Loja |
---|
...
(caracter). |
---|
...
|
---|
...
– |
---|
...
Moeda |
---|
...
(numérico). |
---|
...
|
---|
...
– |
---|
...
Data |
---|
...
de |
---|
...
Emissão |
---|
...
(data). |
---|
...
|
---|
...
– |
---|
...
Data |
---|
...
de |
---|
...
Vencimento |
---|
...
da |
---|
...
Fatura |
---|
...
(data). |
---|
...
|
---|
...
– |
---|
...
Natureza |
---|
...
Operação |
---|
...
(caracter) |
---|
...
Retorno | Nenhum |
---|---|
Programa Fonte | TMSA850.PRW |
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
// Exemplo execucao rotina automática para geração geracaode 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 |
...