Descrição: | Este ponto de entrada tem como finalidade retornar um array com as informações dos conhecimentos de transportes para os clientes que não utilizam o módulo Gestão de Transportes. É utilizado na geração do "Bloco documentos fiscais II serviço (ICMS)" para os Registros:D100, D110, D120, D130, D140, D150, D160, D161, D162 e D190. | ||||||||||||||||
Localização: | SPEDFISCAL | ||||||||||||||||
Eventos: | SPEDRTMS | ||||||||||||||||
Programa Fonte: | SPEDFISCAL | ||||||||||||||||
Função: | SPEDRTMS | ||||||||||||||||
Parâmetro |
| ||||||||||||||||
Retorno: |
|
EXEMPLO de uso do Ponto de Entrada (SPEDRTMS):
User Function SPEDRTMS()
Local vLinha := {}
Local nPos := ParamIXB[1]
Local cReg := ParamIXB[2]
Local cAlias := ParamIXB[3]
Local aCmpAntSFT := ParamIXB[4]
Local aRet := {}
Local vValServ := 0
Local vValDoc := 0
Local vValICMS := 0
Local vValBSICM := 0
Local cCodPart := ""
//Campos contidos no array aCmpAntSFT:
//01 - Doc. Fiscal
//02 - Serie NF
//03 - Cliente/Fornecedor
//04 - Codigo Loja
//05 - Data Docto.
//06 - Data Emissao
//07 - Data Canc.
//08 - Formulario Proprio
//09 - CFOP
//10 -
//11 - Aliq. ICMS
//12 - Nro. PDV
//13 - Base ICMS
//14 - Aliq. ICMS
//15 - Valor ICMS
//16 - Valor Isento ICMS
//17 - Outros ICMS
//18 - ICMS Retido ST
//19 - Conta Contabil
//20 - Tipo Lancamento
//21 - Tipo Frete
//22 - Filial
//23 - Estado
//24 - Observacao
//25 - Chave NFE
//26 - Tipo Emissao
//27 - Prefixo
//28 - Duplicata
//29 - Cupom Fiscal
//30 - Transportadora
//31 - Peso Bruto
//32 - Peso Liquido
//33 - Veiculo1
//34 - Veiculo2
//35 - Veiculo3
//36 - Optante Simples Nacional
//37 - Regime Paraiba
//38 - Nota Fiscal Original
//39 - Serie da Nota fiscal original
//40 - Flag de tipo de CTE na entrada
//41 - Data de Recebimento para Lançamento extemporâneo de documento fiscal.
//42 - Especie do Documento
//43 - Tipo Mov.
//44 - Mensagem da Nota Fiscal
//45 - Produto
//46 - Item
//47 - Formula
//48 - Código da TES
//49 - UF de Origem do Transporte
//50 - Municipio de Origem do Transporte
//51 - UF de Destino do Transporte
//52 - Municipio de Destino do Transporte
//53 - Sub Série da nota fiscal de entrada
//54 - UF de Origem do Transporte
//55 - Municipio de Origem do Transporte
//56 - UF de Destino do Transporte
//57 - Municipio de Destino do Transporte
//58 - Municipio de Destino Complemento
If aCmpAntSFT[43] == "S"
DbSelectArea("SA1")
SA1->(DBSetOrder(1))
SA1->(DBSeek(XFilial("SA1") + aCmpAntSFT[3] + aCmpAntSFT[4]))
cCodPart := "SA1"+A1_FILIAL+A1_COD+A1_LOJA
DbSelectArea("SF2")
SF2->(DBSetOrder(1))
SF2->(DBSeek(XFilial("SF2") + aCmpAntSFT[1] + aCmpAntSFT[2] + aCmpAntSFT[3] + aCmpAntSFT[4]))
Else
DbSelectArea("SA2")
SA2->(DBSetOrder(1))
SA2->(DBSeek(XFilial("SA2") + aCmpAntSFT[3] + aCmpAntSFT[4]))
cCodPart := "SA2"+A2_FILIAL+A2_COD+A2_LOJA
DbSelectArea("SF1")
SF1->(DBSetOrder(1))
SF1->(DBSeek(XFilial("SF1") + aCmpAntSFT[1] + aCmpAntSFT[2] + aCmpAntSFT[3] + aCmpAntSFT[4]))
EndIf
If cReg == "D140"
AAdd(vLinha, "D140") // 01 - REG
AAdd(vLinha, cCodPart) // 02 - COD_PART_CONSG
AAdd(vLinha, aCmpAntSFT[50]) // 03 - COD_MUN_ORIG
AAdd(vLinha, aCmpAntSFT[57]) // 04 - COD_MUN_DEST
AAdd(vLinha, "1") // 05 - IND_VEIC
AAdd(vLinha, "") // 06 - VEIC_ID
AAdd(vLinha, "0") // 07 - IND_NAV
AAdd(vLinha, "") // 08 - VIAGEM
AAdd(vLinha, LTrim(Transform(SF2->F2_VALMERC, "@E 99999999.99"))) // 09 - VL_FRT_LIQ
AAdd(vLinha, "") // 10 - VL_DESP_PORT
AAdd(vLinha, "") // 11 - VL_DESP_CAR_DESC
AAdd(vLinha, "") // 12 - VL_OUT
AAdd(vLinha, LTrim(Transform(SF2->F2_VALBRUT, "@E 99999999.99"))) // 13 - VL_FRT_BRT
AAdd(vLinha, LTrim(Transform(SF2->(F2_AFRMM1+F2_AFRMM2), "@E 99999999.99"))) // 14 - VL_FRT_MM
AAdd(aRet, vLinha)
ElseIf cReg == "D100"
If aCmpAntSFT[43] == "S"
vValServ := LTrim(Transform(F2_VALMERC + F2_FRETE, "@E 99999999.99"))
vValDoc := LTrim(Transform(F2_VALBRUT, "@E 99999999.99"))
vValICMS := LTrim(Transform(F2_VALICM, "@E 99999999.99"))
Else
vValServ := LTrim(Transform(F1_VALMERC + F1_FRETE, "@E 99999999.99"))
vValDoc := LTrim(Transform(F1_VALBRUT, "@E 99999999.99"))
vValICMS := LTrim(Transform(F1_VALICM, "@E 99999999.99"))
EndIf
DbSelectArea("SF3")
SF3->(DBSetOrder(1))
SF3->(DBSeek(XFilial("SF3") + DtoS(aCmpAntSFT[6]) + aCmpAntSFT[1] + aCmpAntSFT[2] + aCmpAntSFT[3] + aCmpAntSFT[4]))
vValBSICM := LTrim(Transform(F3_VALCONT, "@E 99999999.99"))
AAdd(vLinha, "D100") //01 REG
AAdd(vLinha, "0") //02 IND_OPER
AAdd(vLinha, "0") //03 IND_EMIT
AAdd(vLinha, cCodPart) //04 COD_PART
AAdd(vLinha, "57") //05 COD_MOD
AAdd(vLinha, "05") //06 COD_SIT
AAdd(vLinha, aCmpAntSFT[2]) //07 SER
AAdd(vLinha, "") //08 SUB
AAdd(vLinha, aCmpAntSFT[1]) //09 NUM_DOC
AAdd(vLinha, aCmpAntSFT[25]) //10 CHV_CTE
AAdd(vLinha, aCmpAntSFT[5]) //11 DT_DOC
AAdd(vLinha, aCmpAntSFT[5]) //12 DT_A_P
AAdd(vLinha, 0) //13 TP_CTe
AAdd(vLinha, "") //14 CHV_CTe_REF
AAdd(vLinha, vValDoc) //15 VL_DOC
AAdd(vLinha, 0) //16 VL_DESC
AAdd(vLinha, "2") //17 IND_FRT
AAdd(vLinha, vValServ) //18 VL_SERV
AAdd(vLinha, vValBSICM) //19 VL_BC_ICMS
AAdd(vLinha, vValICMS) //20 VL_ICMS
AAdd(vLinha, 0) //21 VL_NT
AAdd(vLinha, "") //22 COD_INF
AAdd(vLinha, "") //23 COD_CTA
AAdd(vLinha, UfCodIBGE(aCmpAntSFT[49]) + AllTrim(aCmpAntSFT[50])) //24 COD_MUN_ORIG
AAdd(vLinha, UfCodIBGE(aCmpAntSFT[56]) + AllTrim(aCmpAntSFT[57])) //25 COD_MUN_DEST
AAdd(aRet, vLinha)
EndIf
Return(aRet)