diff --git a/App_Code/Timbres.vb b/App_Code/Timbres.vb index a38dffefe..23070a859 100644 --- a/App_Code/Timbres.vb +++ b/App_Code/Timbres.vb @@ -122,8 +122,8 @@ Public Class Timbres Dim DtMovimientos As DataTable = Nothing Dim drT As DataRow = ObjGrales.DtResultados.Rows(0) - Timbre.Receptor.RFC = drT("RemitenteRFC").ToString - Timbre.Receptor.Nombre = drT("RemitenteNombre").ToString + Timbre.Receptor.RFC = drT("EmpresaRFC").ToString + Timbre.Receptor.Nombre = drT("EmpresaNombre").ToString Timbre.Receptor.DomicilioFiscalReceptor = drT("DirDesCP").ToString Timbre.Receptor.RegimenFiscalReceptor = drT("CodigoRegimenFiscalReceptor").ToString @@ -166,8 +166,14 @@ Public Class Timbres CartaPorte.FiguraTransporte.AutoTransporte.NumPermisoSCT = drT("NumPermisoSCT").ToString CartaPorte.FiguraTransporte.AutoTransporte.NombreSeguroResponsabilidadCivil = drT("NombreAseguradora").ToString CartaPorte.FiguraTransporte.AutoTransporte.PolizaSeguroResponsabilidadCivil = drT("NumPolizaSeguro").ToString - CartaPorte.FiguraTransporte.AutoTransporte.NombreSeguroMedioAmbiente = drT("NombreAseguradoraMedioAmbiente").ToString - CartaPorte.FiguraTransporte.AutoTransporte.PolizaSeguroMedioAmbiente = drT("NumPolizaSeguroMedioAmbiente").ToString + + If Obj.DtDetalle IsNot Nothing AndAlso Obj.DtDetalle.Rows.Count > 0 Then + If Obj.DtDetalle.MAX("ClaveMaterialPeligroso") <> "" Then + CartaPorte.FiguraTransporte.AutoTransporte.NombreSeguroMedioAmbiente = drT("NombreAseguradoraMedioAmbiente").ToString + CartaPorte.FiguraTransporte.AutoTransporte.PolizaSeguroMedioAmbiente = drT("NumPolizaSeguroMedioAmbiente").ToString + End If + End If + CartaPorte.FiguraTransporte.AutoTransporte.NombreSeguroCarga = drT("NombreAseguradoraCarga").ToString CartaPorte.FiguraTransporte.AutoTransporte.PolizaSeguroCarga = drT("NumPolizaSeguroCarga").ToString CartaPorte.FiguraTransporte.AutoTransporte.Vehiculo.ConfigVehicular = drT("ConfigCartaPorte").ToString @@ -204,104 +210,109 @@ Public Class Timbres .Municipio = drT("DirDesClaveSATMunicipio").ToString, .Localidad = drT("DirDesClaveSATLocalidad").ToString} - - Dim Ubica As New CFDICartaPorteUbicacion - Ubica.TipoEstacion = "" - Ubica = New CFDICartaPorteUbicacion With {.TipoUbicacion = "Origen", .IDUbicacion = "OR000001", .RFCRemitenteDestinatario = drT("RemitenteRFC").ToString, - .FechaHoraSalidaLlegada = FechaSalida.ToString("yyyy-MM-ddTHH:mm:ss"),' "2021-08-23T11:13:01", - .NombreRemitenteDestinatario = drT("RemitenteNombre").ToString, - .Domicilio = DomOrigen} - CartaPorte.Ubicaciones.Add(Ubica) - Ubica = New CFDICartaPorteUbicacion With {.TipoUbicacion = "Destino", .IDUbicacion = "DE000001", .RFCRemitenteDestinatario = drT("DestinatarioRFC").ToString, - .FechaHoraSalidaLlegada = FechaLlegada.ToString("yyyy-MM-ddTHH:mm:ss"), - .NombreRemitenteDestinatario = drT("DestinatarioNombre").ToString, - .Domicilio = DomDestino, - .DistanciaRecorrida = Distancia} - - CartaPorte.Ubicaciones.Add(Ubica) - CartaPorte.FiguraTransporte.ClaveTransporte = "01" - - Dim DomicilioOperador As New CFDICartaPorteDomicilio With {.Calle = drT("FiguraDomicilio").ToString, - .NumeroExterior = drT("FiguraNumeroExterior").ToString, - .NumeroInterior = drT("FiguraNumeroInterior").ToString, - .Colonia = drT("FiguraClaveSATColonia").ToString, - .Municipio = drT("FiguraClaveSATMunicipio").ToString, - .Estado = drT("FiguraClaveSATEstado").ToString, - .CP = drT("FiguraCP").ToString} - - - - CartaPorte.FiguraTransporte.Operadores.Add(New CFDICartaPorteOperador With { - .RFCFigura = drT("FiguraRFC").ToString, - .NombreFigura = drT("FiguraChofer").ToString, - .NumLicencia = drT("FiguraLicencia").ToString, - .NumRegidTribFigura = drT("FiguraNumRegidTribFigura").ToString, - .ResidenciaFiscalFigura = drT("FiguraResidenciaFiscalFigura").ToString, - .Domicilio = DomicilioOperador}) - - - 'concepto único - Dim concepto As New CFDIConceptos With {.Cantidad = 1, - .Descripcion = "Traslado", - .ValorUnitario = 0, - .Importe = 0, - .Descuento = 0, - .Unidad = "Servicio", - .ClaveUnidad = "E48", - .ClaveProdServ = "78101802", - .Noidentificacion = "", - .CuentaPredial = ""} - - Timbre.Conceptos.Add(concepto) - - For Each drr As DataRow In Obj.DtDetalle.Rows - - If drr("PS").ToString.Length = 1 Then - tPS = drr("Obs").ToString - Else - If drr("PS").ToString.Length = 0 Then - tPS = "" - Else - tPS = String.Format("{0} {1}", drr("PS"), drr("Obs")) - End If - End If - Dim conceptoCarta As New CFDICartaPorteMercancia With { - .BienesTransp = drr("SATClaveProdServ").ToString, - .ClaveSTCC = "", 'para metodo ferroviario - .Cantidad = drr("Cantidad").ToString.ToDecimal, - .Descripción = tPS, - .ClaveUnidad = drr("SATClaveUM").ToString, - .Unidad = drr("UM").ToString, - .Dimensiones = drr("Dimensiones").ToString, - .PesoenKg = drr("PesoKg").ToString.ToDecimal * drr("Cantidad").ToString.ToDecimal, - .MaterialPeligroso = If(drr("ClaveMaterialPeligroso").ToString <> "", "Sí", ""), - .ClaveMaterialPeligroso = drr("ClaveMaterialPeligroso").ToString, - .Embalaje = drr("ClaveEmbalaje").ToString, - .DescripEmbalaje = drr("Embalaje").ToString, - .ValorMercancia = drr("PU").ToString.ToDecimal, - .Moneda = "MXN", 'temporal - .FraccionArrancelaria = "", - .UUIDComercioExt = "" - } - - Dim DetalleMercancia As New CFDICartaPorteMercanciaDetalleMercancia With {.PesoNeto = drr("PesoKg").ToString.ToDecimal * drr("Cantidad").ToString.ToDecimal, .NumPiezas = drr("Cantidad").ToString.ToDecimal} - conceptoCarta.DetalleMercancia = DetalleMercancia - - Dim MercanciaTransporta As New CFDICartaPorteMercanciaTransporta With {.Cantidad = drr("Cantidad").ToString.ToDecimal, .IDOrigen = "OR000001", .IDDestino = "DE000001"} - conceptoCarta.MercanciasCantidadTransporta.Add(MercanciaTransporta) - - totSubTotal = totSubTotal - concepto.Importe - CartaPorte.Mercancias.Mercancias.Add(conceptoCarta) - - i += 1 - Next - Timbre.Complementos.CartaPorte = CartaPorte - - Else - '' T R A S L A D O S - - 'DETALLES - If Obj.DtDetalle IsNot Nothing Then + Dim NumRegIdTrib As String = "" + If drT("DestinatarioRFC").ToString.Contiene("XEXX010101000") Then ' cuando es Extranjero, debe de llevar un numregidtrib + NumRegIdTrib = "121585958" + End If + + Dim Ubica As New CFDICartaPorteUbicacion + Ubica.TipoEstacion = "" + Ubica = New CFDICartaPorteUbicacion With {.TipoUbicacion = "Origen", .IDUbicacion = "OR000001", .RFCRemitenteDestinatario = drT("RemitenteRFC").ToString, + .FechaHoraSalidaLlegada = FechaSalida.ToString("yyyy-MM-ddTHH:mm:ss"),' "2021-08-23T11:13:01", + .NombreRemitenteDestinatario = drT("RemitenteNombre").ToString, + .Domicilio = DomOrigen} + CartaPorte.Ubicaciones.Add(Ubica) + Ubica = New CFDICartaPorteUbicacion With {.TipoUbicacion = "Destino", .IDUbicacion = "DE000001", .RFCRemitenteDestinatario = drT("DestinatarioRFC").ToString, + .FechaHoraSalidaLlegada = FechaLlegada.ToString("yyyy-MM-ddTHH:mm:ss"), + .NombreRemitenteDestinatario = drT("DestinatarioNombre").ToString, + .Domicilio = DomDestino, + .DistanciaRecorrida = Distancia, + .NumRegIdTrib = NumRegIdTrib} + + CartaPorte.Ubicaciones.Add(Ubica) + CartaPorte.FiguraTransporte.ClaveTransporte = "01" + + Dim DomicilioOperador As New CFDICartaPorteDomicilio With {.Calle = drT("FiguraDomicilio").ToString, + .NumeroExterior = drT("FiguraNumeroExterior").ToString, + .NumeroInterior = drT("FiguraNumeroInterior").ToString, + .Colonia = drT("FiguraClaveSATColonia").ToString, + .Municipio = drT("FiguraClaveSATMunicipio").ToString, + .Estado = drT("FiguraClaveSATEstado").ToString, + .CP = drT("FiguraCP").ToString} + + + + CartaPorte.FiguraTransporte.Operadores.Add(New CFDICartaPorteOperador With { + .RFCFigura = drT("FiguraRFC").ToString, + .NombreFigura = drT("FiguraChofer").ToString, + .NumLicencia = drT("FiguraLicencia").ToString, + .NumRegidTribFigura = drT("FiguraNumRegidTribFigura").ToString, + .ResidenciaFiscalFigura = drT("FiguraResidenciaFiscalFigura").ToString, + .Domicilio = DomicilioOperador}) + + + 'concepto único + Dim concepto As New CFDIConceptos With {.Cantidad = 1, + .Descripcion = "Traslado", + .ValorUnitario = 0, + .Importe = 0, + .Descuento = 0, + .Unidad = "Servicio", + .ClaveUnidad = "E48", + .ClaveProdServ = "78101802", + .Noidentificacion = "", + .CuentaPredial = ""} + + Timbre.Conceptos.Add(concepto) + + For Each drr As DataRow In Obj.DtDetalle.Rows + + If drr("PS").ToString.Length = 1 Then + tPS = drr("Obs").ToString + Else + If drr("PS").ToString.Length = 0 Then + tPS = "" + Else + tPS = String.Format("{0} {1}", drr("PS"), drr("Obs")) + End If + End If + Dim conceptoCarta As New CFDICartaPorteMercancia With { + .BienesTransp = drr("SATClaveProdServ").ToString, + .ClaveSTCC = "", 'para metodo ferroviario + .Cantidad = drr("Cantidad").ToString.ToDecimal, + .Descripción = tPS, + .ClaveUnidad = drr("SATClaveUM").ToString, + .Unidad = drr("UM").ToString, + .Dimensiones = drr("Dimensiones").ToString, + .PesoenKg = drr("PesoKg").ToString.ToDecimal * drr("Cantidad").ToString.ToDecimal, + .MaterialPeligroso = If(drr("ClaveMaterialPeligroso").ToString <> "", "Sí", ""), + .ClaveMaterialPeligroso = drr("ClaveMaterialPeligroso").ToString, + .Embalaje = drr("ClaveEmbalaje").ToString, + .DescripEmbalaje = drr("Embalaje").ToString, + .ValorMercancia = drr("PU").ToString.ToDecimal, + .Moneda = "MXN", 'temporal + .FraccionArrancelaria = "", + .UUIDComercioExt = "" + } + + Dim DetalleMercancia As New CFDICartaPorteMercanciaDetalleMercancia With {.PesoNeto = drr("PesoKg").ToString.ToDecimal * drr("Cantidad").ToString.ToDecimal, .NumPiezas = drr("Cantidad").ToString.ToDecimal} + conceptoCarta.DetalleMercancia = DetalleMercancia + + Dim MercanciaTransporta As New CFDICartaPorteMercanciaTransporta With {.Cantidad = drr("Cantidad").ToString.ToDecimal, .IDOrigen = "OR000001", .IDDestino = "DE000001"} + conceptoCarta.MercanciasCantidadTransporta.Add(MercanciaTransporta) + + totSubTotal = totSubTotal - concepto.Importe + CartaPorte.Mercancias.Mercancias.Add(conceptoCarta) + + i += 1 + Next + Timbre.Complementos.CartaPorte = CartaPorte + + Else + '' T R A S L A D O S + + 'DETALLES + If Obj.DtDetalle IsNot Nothing Then For Each drr As DataRow In Obj.DtDetalle.Rows If drr("PS").ToString.Length = 1 Then