01. DADOS GERAIS
Linha de Produto: | Microsiga Protheus® |
---|---|
Segmento: | Logística |
Módulo: | SIGATMS - Gestão de Transportes |
02. DESCRIÇÃO
A rotina TMSImpDoc efetua a geração do Conhecimento de Frete, assim como a Escrituração Fiscal do documento.
Essa rotina não efetua o cálculo do frete, é necessário enviar todas as informações prontas para geração dos registros.
03. EXEMPLO DE UTILIZAÇÃO
Programa Fonte TMSXFUB User Function ImpDcTst() Local aVetDoc := {} Local aVetVlr := {} Local aVetNFc := {} Local aItemDTC := {} Local aCabDTC := {} Local aItem := {} Local lCont := .T. Local cLotNfc := '' Local cRet := '' Local aCab := {} Local aErrMsg := {} lMsErroAuto := .F. nModulo := 43 AAdd(aCab,{'DTP_QTDLOT',1,NIL}) AAdd(aCab,{'DTP_QTDDIG',0,NIL}) AAdd(aCab,{'DTP_STATUS','1',NIL}) //-- Em aberto MsExecAuto({|x,y|cRet := TmsA170(x,y)},aCab,3) If lMsErroAuto MostraErro() lCont := .F. Else cLotNfc := cRet EndIf If lCont lMsErroAuto := .F. aCabDTC := { {"DTC_FILORI" ,"01" , Nil},; {"DTC_LOTNFC" ,cLotNfc , Nil},; {"DTC_CLIREM" ,Padr("001",Len(DTC->DTC_CLIREM)), Nil},; {"DTC_LOJREM" ,Padr("01" ,Len(DTC->DTC_LOJREM)), Nil},; {"DTC_DATENT" ,Ctod('24/08/2011') , Nil},; {"DTC_CLIDES" ,Padr("002",Len(DTC->DTC_CLIREM)), Nil},; {"DTC_LOJDES" ,Padr("01" ,Len(DTC->DTC_LOJREM)), Nil},; {"DTC_CLIDEV" ,Padr("001",Len(DTC->DTC_CLIREM)), Nil},; {"DTC_LOJDEV" ,Padr("01" ,Len(DTC->DTC_LOJREM)), Nil},; {"DTC_CLICAL" ,Padr("001",Len(DTC->DTC_CLIREM)), Nil},; {"DTC_LOJCAL" ,Padr("01" ,Len(DTC->DTC_LOJREM)), Nil},; {"DTC_DEVFRE" ,"1" , Nil},; {"DTC_SERTMS" ,"2" , Nil},; {"DTC_TIPTRA" ,"1" , Nil},; {"DTC_SERVIC" ,"010" , Nil},; {"DTC_TIPNFC" ,"0" , Nil},; {"DTC_TIPFRE" ,"1" , Nil},; {"DTC_CODNEG" ,"1" , Nil},; {"DTC_SELORI" ,"1" , Nil},; {"DTC_CDRORI" ,'01001', Nil},; {"DTC_CDRDES" ,'05001', Nil},; {"DTC_CDRCAL" ,'05001', Nil},; {"DTC_DISTIV" ,'2', Nil}} aItem := {{"DTC_NUMNFC" ,"011" , Nil},; {"DTC_SERNFC" ,"UNI" , Nil},; {"DTC_CODPRO" ,"001", Nil},; {"DTC_CODEMB" ,"CX" , Nil},; {"DTC_EMINFC" ,Ctod('01/01/11') , Nil},; {"DTC_QTDVOL" ,20 , Nil},; {"DTC_PESO" ,200.0000, Nil},; {"DTC_PESOM3" ,0.0000, Nil},; {"DTC_VALOR" ,20000.00, Nil},; {"DTC_BASSEG" ,0.00 , Nil},; {"DTC_METRO3" ,0.0000, Nil},; {"DTC_QTDUNI" ,0 , Nil},; {"DTC_EDI" ,"2" , Nil}} AAdd(aItemDTC,aClone(aItem)) // // Parametros da TMSA050 (notas fiscais do cliente) // xAutoCab - Cabecalho da nota fiscal // xAutoItens - Itens da nota fiscal // xItensPesM3 - acols de Peso Cubado // xItensEnder - acols de Enderecamento // nOpcAuto - Opcao rotina automatica MSExecAuto({|u,v,x,y,z| TMSA050(u,v,x,y,z)},aCabDTC,aItemDTC,,,3) If lMsErroAuto MostraErro() lCont := .F. Else DTC->(dbCommit()) EndIf EndIf If lCont AAdd(aVetDoc,{"DT6_FILORI","01"}) AAdd(aVetDoc,{"DT6_LOTNFC",cLotNfc}) AAdd(aVetDoc,{"DT6_FILDOC","01"}) AAdd(aVetDoc,{"DT6_DOC" ,"000007"}) AAdd(aVetDoc,{"DT6_SERIE" ,"UNI"}) AAdd(aVetDoc,{"DT6_DATEMI",Ctod('24/08/2011')}) AAdd(aVetDoc,{"DT6_HOREMI","1650"}) AAdd(aVetDoc,{"DT6_VOLORI", 20}) AAdd(aVetDoc,{"DT6_QTDVOL", 20}) AAdd(aVetDoc,{"DT6_PESO" , 200.0000}) AAdd(aVetDoc,{"DT6_PESOM3", 0.0000}) AAdd(aVetDoc,{"DT6_PESCOB", 0.0000}) AAdd(aVetDoc,{"DT6_METRO3", 0.0000}) AAdd(aVetDoc,{"DT6_VALMER", 20000.00}) AAdd(aVetDoc,{"DT6_QTDUNI", 0}) AAdd(aVetDoc,{"DT6_VALFRE", 990.00}) AAdd(aVetDoc,{"DT6_VALIMP", 135.00}) AAdd(aVetDoc,{"DT6_VALTOT", 1125.00}) AAdd(aVetDoc,{"DT6_BASSEG", 0.00}) AAdd(aVetDoc,{"DT6_SERTMS","2"}) AAdd(aVetDoc,{"DT6_TIPTRA","1"}) AAdd(aVetDoc,{"DT6_DOCTMS","2"}) AAdd(aVetDoc,{"DT6_CDRORI","01001 "}) AAdd(aVetDoc,{"DT6_CDRDES","05001 "}) AAdd(aVetDoc,{"DT6_CDRCAL","05001 "}) AAdd(aVetDoc,{"DT6_TABFRE","R007"}) AAdd(aVetDoc,{"DT6_TIPTAB","01"}) AAdd(aVetDoc,{"DT6_SEQTAB","00"}) AAdd(aVetDoc,{"DT6_TIPFRE","1"}) AAdd(aVetDoc,{"DT6_FILDES","01"}) AAdd(aVetDoc,{"DT6_BLQDOC","2"}) AAdd(aVetDoc,{"DT6_PRIPER","2"}) AAdd(aVetDoc,{"DT6_PERDCO", 0.00000}) AAdd(aVetDoc,{"DT6_FILDCO",""}) AAdd(aVetDoc,{"DT6_DOCDCO",""}) AAdd(aVetDoc,{"DT6_SERDCO",""}) AAdd(aVetDoc,{"DT6_CLIREM",Padr("001",Len(DTC->DTC_CLIREM))}) AAdd(aVetDoc,{"DT6_LOJREM",Padr("01" ,Len(DTC->DTC_LOJREM))}) AAdd(aVetDoc,{"DT6_CLIDES",Padr("002",Len(DTC->DTC_CLIREM))}) AAdd(aVetDoc,{"DT6_LOJDES",Padr("01" ,Len(DTC->DTC_LOJREM))}) AAdd(aVetDoc,{"DT6_CLIDEV",Padr("001",Len(DTC->DTC_CLIREM))}) AAdd(aVetDoc,{"DT6_LOJDEV",Padr("01" ,Len(DTC->DTC_LOJREM))}) AAdd(aVetDoc,{"DT6_CLICAL",Padr("001",Len(DTC->DTC_CLIREM))}) AAdd(aVetDoc,{"DT6_LOJCAL",Padr("01" ,Len(DTC->DTC_LOJREM))}) AAdd(aVetDoc,{"DT6_DEVFRE","2"}) AAdd(aVetDoc,{"DT6_FATURA",""}) AAdd(aVetDoc,{"DT6_SERVIC","010"}) AAdd(aVetDoc,{"DT6_CODMSG",""}) AAdd(aVetDoc,{"DT6_STATUS","1"}) AAdd(aVetDoc,{"DT6_DATEDI",CToD(" / / ")}) AAdd(aVetDoc,{"DT6_NUMSOL",""}) AAdd(aVetDoc,{"DT6_VENCTO",CToD(" / / ")}) AAdd(aVetDoc,{"DT6_FILDEB","01"}) AAdd(aVetDoc,{"DT6_PREFIX",""}) AAdd(aVetDoc,{"DT6_NUM" ,""}) AAdd(aVetDoc,{"DT6_TIPO" ,""}) AAdd(aVetDoc,{"DT6_MOEDA" , 1}) AAdd(aVetDoc,{"DT6_BAIXA" ,CToD(" / / ")}) AAdd(aVetDoc,{"DT6_FILNEG","01"}) AAdd(aVetDoc,{"DT6_ALIANC",""}) AAdd(aVetDoc,{"DT6_REENTR", 0}) AAdd(aVetDoc,{"DT6_TIPMAN",""}) AAdd(aVetDoc,{"DT6_PRZENT",Ctod('24/08/2011')}) AAdd(aVetDoc,{"DT6_FIMP" ,"0"}) AAdd(aVetVlr,{{"DT8_CODPAS","01"},; {"DT8_VALPAS", 100.00},; {"DT8_VALIMP", 13.64},; {"DT8_VALTOT", 113.64},; {"DT8_FILORI",""},; {"DT8_TABFRE","R007"},; {"DT8_TIPTAB","01"},; {"DT8_FILDOC","01"},; {"DT8_CODPRO","001"},; {"DT8_DOC" ,"000007"},; {"DT8_SERIE" ,"UNI"},; {"VLR_ICMSOL",0}}) AAdd(aVetVlr,{{"DT8_CODPAS","02"},; {"DT8_VALPAS", 890.00},; {"DT8_VALIMP", 121.36},; {"DT8_VALTOT", 1011.36},; {"DT8_FILORI",""},; {"DT8_TABFRE","R007"},; {"DT8_TIPTAB","01"},; {"DT8_FILDOC","01"},; {"DT8_CODPRO","001"},; {"DT8_DOC" ,"000007"},; {"DT8_SERIE" ,"UNI"},; {"VLR_ICMSOL",0}}) AAdd(aVetVlr,{{"DT8_CODPAS","TF"},; {"DT8_VALPAS", 990.00},; {"DT8_VALIMP", 135.00},; {"DT8_VALTOT", 1125.00},; {"DT8_FILORI",""},; {"DT8_TABFRE",""},; {"DT8_TIPTAB",""},; {"DT8_FILDOC","01"},; {"DT8_CODPRO","001"},; {"DT8_DOC" ,"000007"},; {"DT8_SERIE" ,"UNI"},; {"VLR_ICMSOL",0}}) AAdd(aVetNFc,{{"DTC_CLIREM",Padr("001",Len(DTC->DTC_CLIREM))},; {"DTC_LOJREM",Padr("01" ,Len(DTC->DTC_LOJREM))},; {"DTC_NUMNFC",Padr("011",Len(DTC->DTC_NUMNFC))},; {"DTC_SERNFC",Padr("UNI" ,Len(DTC->DTC_SERNFC))},; {"DTC_CODPRO",Padr("001" ,Len(DTC->DTC_CODPRO))},; {"DTC_TIPNFC" ,"0" , Nil},; {"DTC_QTDVOL", 20},; {"DTC_PESO" , 200.0000},; {"DTC_PESOM3", 0.0000},; {"DTC_METRO3", 0.0000},; {"DTC_VALOR" , 20000.00}}) aDocOri:= { DTC->DTC_FILDOC,; // [1] Filial Docto Original (caracter) DTC->DTC_DOC,; // [2] No. Docto Original (caracter) DTC->DTC_SERIE,; // [3] Serie Docto Original (caracter) 100,; // [4] % Docto. Orignal (numerico) .F.,; // [5] Complemento de Imposto (lógico) 7 } // [6] nOpcx - TMSA500 (numerico) aErrMsg := TMSImpDoc(aVetDoc,aVetVlr,aVetNFc,cLotNfc,.F.,0,1,.T.,.T.,.T.,.T., aDocOri) EndIf Return
Parâmetros
//Parâmetros
ExpA1 - Vetor com os campos do documento de transporte.
ExpA2 - Vetor com os campos da composicao do frete.
ExpA3 - Vetor com as notas fiscais do documento.
Expc1 - Número do lote.
Expl1 - Indica se calcula impostos.
Expn1 - Percentual de impostos.
Expn2 - Tipo de imposto (1-ICMS,2-ISS).
Expl2 - Indica se exibe mensagem de erros.
Expl3 - Indica se verifica integridade DT6/DTC.
Expl4 - Indica se verifica integridade DT6/DT8.
Expl5 - Indica se verifica integridade DT6/Demais Tabelas.
ExpA4 - Array contendo dados do documento original ³±±
Array aDocOri
-- [1] - Filial Docto Original (caracter)
-- [2] - No. Docto Original (caracter)
-- [3] - Serie Docto Original (caracter)
-- [4] - % Docto. Orignal (numerico)
-- [5] - Complemento de Imposto (lógico)
-- [6] - nOpcx - TMSA500 (numerico) (Novo!)
// Sendo nOpcx o mesmo do TMSA500:
// 04-Devolução
// 05-Reentrega
// 06-Complemento
// 07-Cancelamento
// 08-Aliança
// 09-Manut. Transp
// 10-Compl.Impost
// 11-Armazenagem
// 12-Anulação
// 13-Substituição
// 14-Can.Anul
Observação: Não é obrigatório o uso do aDocOri, somente no caso de criar um complemento.
04. DEMAIS INFORMAÇÕES
Não há.
05. ASSUNTOS RELACIONADOS
- Não há.