timbrado carta porte

This commit is contained in:
2021-09-07 10:18:52 -07:00
parent 560a4a99fd
commit 9ac1b5a0d7
6 changed files with 540 additions and 263 deletions

View File

@@ -235,7 +235,9 @@ End Class
<Serializable> <Serializable>
Public Class CFDIComplementos Public Class CFDIComplementos
Public Property ComercioExterior11 As CFDIComercioExterior11 Public Property ComercioExterior11 As CFDIComercioExterior11
Public Property CartaPorte As CFDICartaPorte
Sub New() Sub New()
ComercioExterior11 = New CFDIComercioExterior11 ComercioExterior11 = New CFDIComercioExterior11
@@ -568,4 +570,151 @@ Public Class CFDIComercioExterior11MercanciasDescripcionesEspecificas
Public Property Modelo As String = "" Public Property Modelo As String = ""
Public Property SubModelo As String = "" Public Property SubModelo As String = ""
Public Property NumeroSerie As String = "" Public Property NumeroSerie As String = ""
End Class End Class
<Serializable>
Public Class CFDICartaPorte
Public Property TranspInternac As String = ""
Public Property EntradaSalidaMercancia As String = ""
Public Property ViaEntradaSalida As String = ""
Public Property TotalDistanciaRecorrida As Double = 0
Public Property Ubicaciones As New List(Of CFDICartaPorteUbicaciones)
Public Property Mercancias As New CFDICartaPorteMercancias
Public Property FiguraTransporte As New CFDICartaPorteFiguraTransporte
End Class
<Serializable>
Public Class CFDICartaPorteUbicaciones
Public Property TipoEstacion As String = ""
Public Property DistanciaRecorrida As Double = 0
'Public Property Ubicacion As New CFDICartaPorteUbicacion
Public Property Origen As New CFDICartaPorteUbicacionOrigen
Public Property Destino As New CFDICartaPorteUbicacionDestino
End Class
<Serializable>
Public Class CFDICartaPorteAutoTransporteFederal
Public Property PermSCT As String = ""
Public Property NumPermisoSCT As String = ""
Public Property NombreAseg As String = ""
Public Property NumPolizaSeguro As String = ""
Public Property Vehiculo As New CFDICartaPorteIdentificacionVehicular
Public Property Remolques As New List(Of CFDICartaPorteRemolque)
End Class
<Serializable>
Public Class CFDICartaPorteUbicacionOrigen
Public Property IDOrigen As String = ""
Public Property RFCRemitente As String = ""
Public Property NombreRemitente As String = ""
Public Property NumRegIdTrib As String = ""
Public Property ResidenciaFiscal As String = ""
Public Property NumEstacion As String = ""
Public Property NombreEstacion As String = ""
Public Property NavegacionTrafico As String = ""
Public Property FechaHoraSalida As String = ""
Public Property Domicilio As New CFDICartaPorteDomicilio
End Class
<Serializable>
Public Class CFDICartaPorteUbicacionDestino
Public Property IDDestino As String = ""
Public Property RFCDestinatario As String = ""
Public Property NombreDestinatario As String = ""
Public Property NumRegIdTrib As String = ""
Public Property ResidenciaFiscal As String
Public Property NumEstacion As String
Public Property NombreEstacion As String
Public Property NavegacionTrafico As String
Public Property FechaHoraProgLlegada As String
Public Property Domicilio As New CFDICartaPorteDomicilio
End Class
<Serializable>
Public Class CFDICartaPorteDomicilio
Public Property Calle As String = ""
Public Property NumeroExterior As String = ""
Public Property NumeroInterior As String = ""
Public Property Colonia As String = ""
Public Property Localidad As String = ""
Public Property Referencia As String = ""
Public Property Municipio As String = ""
Public Property Estado As String = ""
Public Property Pais As String = ""
Public Property CP As String = ""
End Class
<Serializable>
Public Class CFDICartaPorteMercancias
Public Property PesoBrutoTotal As Double = 0
Public Property UnidadPeso As String = ""
Public ReadOnly Property PesoNetoTotal As Double
Get
Return Mercancias.Sum(Function(item) item.PesoenKg)
End Get
End Property
Public ReadOnly Property NumTotalMercancias As Integer
Get
'Return Mercancias.Sum(Function(item) item.Cantidad).ToEntero
Return Mercancias.Count
End Get
End Property
Public Property CargoporTasacion As Double = 0
Public Property Mercancias As New List(Of CFDICartaPorteMercancia)
End Class
<Serializable>
Public Class CFDICartaPorteMercancia
Public Property BienesTransp As String = ""
Public Property ClaveSTCC As String = ""
Public Property Descripción As String = ""
Public Property Cantidad As Decimal = 0
Public Property ClaveUnidad As String = ""
Public Property Unidad As String = ""
Public Property Dimensiones As String = ""
Public Property ClaveMaterialPeligroso As String = ""
Public Property MaterialPeligroso As String = ""
Public Property Embalaje As String = ""
Public Property DescripEmbalaje As String = ""
Public Property PesoenKg As Double
Public Property ValorMercancia As Double
Public Property Moneda As String = ""
Public Property FraccionArrancelaria As String = ""
Public Property UUIDComercioExt As String = ""
End Class
<Serializable>
Public Class CFDICartaPorteIdentificacionVehicular
Public Property ConfigVehicular As String = ""
Public Property PlacaVM As String = ""
Public Property AnioModeloVM As Integer = 0
End Class
<Serializable>
Public Class CFDICartaPorteRemolque
Public Property SubTipoRemolque As String = ""
Public Property Placa As String = ""
Public Property AnioModeloVM As String = ""
End Class
<Serializable>
Public Class CFDICartaPorteFiguraTransporte
Public Property ClaveTransporte As String = "01"
Public Property AutoTransporteFederal As New CFDICartaPorteAutoTransporteFederal
Public Property Operadores As New List(Of CFDICartaPorteOperador)
End Class
<Serializable>
Public Class CFDICartaPorteOperador
Public Property RFCOperador As String = ""
Public Property NumLicencia As String = ""
Public Property NombreOperador As String = ""
Public Property NumRegidTribOperador As String = ""
Public Property ResidenciaFiscalOperador As String = ""
Public Property Domicilio As New CFDICartaPorteDomicilio
End Class

View File

@@ -109,7 +109,8 @@ Public Class ClsAcarreos
#Region "Choferes" #Region "Choferes"
Public Function AddChofer(Chofer As String, CveUsuario As Integer, CveEmpresa As Integer, CveTransportista As Integer, Identificacion As String, Domicilio As String, Telefono As String, Ciudad As String, Licencia As String) As Boolean Public Function AddChofer(Chofer As String, CveUsuario As Integer, CveEmpresa As Integer, CveTransportista As Integer, Identificacion As String, Telefono As String, Licencia As String, RFC As String, Domicilio As String,
Optional NumeroExterior As String = "", Optional NumeroInterior As String = "", Optional Colonia As String = "", Optional Ciudad As String = "", Optional Estado As String = "", Optional CP As String = "") As Boolean
Dim Retorno As Boolean = False Dim Retorno As Boolean = False
DataAdapter("PA_Acar_ChoferesAdd") DataAdapter("PA_Acar_ChoferesAdd")
With SqlAdapter.SelectCommand.Parameters With SqlAdapter.SelectCommand.Parameters
@@ -118,10 +119,16 @@ Public Class ClsAcarreos
.Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa
.Add("@CveTransportista", SqlDbType.Int).Value = CveTransportista .Add("@CveTransportista", SqlDbType.Int).Value = CveTransportista
.Add("@Identificacion", SqlDbType.VarChar).Value = Identificacion .Add("@Identificacion", SqlDbType.VarChar).Value = Identificacion
.Add("@Domicilio", SqlDbType.VarChar).Value = Domicilio
.Add("@Telefono", SqlDbType.VarChar).Value = Telefono .Add("@Telefono", SqlDbType.VarChar).Value = Telefono
.Add("@Ciudad", SqlDbType.VarChar).Value = Ciudad
.Add("@Licencia", SqlDbType.VarChar).Value = Licencia .Add("@Licencia", SqlDbType.VarChar).Value = Licencia
.Add("@RFC", SqlDbType.VarChar).Value = RFC
.Add("@Domicilio", SqlDbType.VarChar).Value = Domicilio
.Add("@NumeroExterior", SqlDbType.VarChar).Value = NumeroExterior
.Add("@NumeroInterior", SqlDbType.VarChar).Value = NumeroInterior
.Add("@Colonia", SqlDbType.VarChar).Value = Colonia
.Add("@Ciudad", SqlDbType.VarChar).Value = Ciudad
.Add("@Estado", SqlDbType.VarChar).Value = Estado
.Add("@CP", SqlDbType.VarChar).Value = CP
End With End With
Try Try
SqlAdapter.Fill(Data) SqlAdapter.Fill(Data)
@@ -133,7 +140,8 @@ Public Class ClsAcarreos
Return Retorno Return Retorno
End Function End Function
Public Function UpdateChofer(CveChofer As Integer, Chofer As String, CveUsuario As Integer, CveEmpresa As Integer, Estatus As Integer, CveTransportista As Integer, Identificacion As String, Domicilio As String, Telefono As String, Ciudad As String, Licencia As String) As Boolean Public Function UpdateChofer(CveChofer As Integer, Chofer As String, CveUsuario As Integer, CveEmpresa As Integer, Estatus As Integer, CveTransportista As Integer, Identificacion As String, Telefono As String, Licencia As String, RFC As String, Domicilio As String,
Optional NumeroExterior As String = "", Optional NumeroInterior As String = "", Optional Colonia As String = "", Optional Ciudad As String = "", Optional Estado As String = "", Optional CP As String = "") As Boolean
Dim Retorno As Boolean = False Dim Retorno As Boolean = False
DataAdapter("PA_Acar_ChoferesUpdate") DataAdapter("PA_Acar_ChoferesUpdate")
With SqlAdapter.SelectCommand.Parameters With SqlAdapter.SelectCommand.Parameters
@@ -141,13 +149,19 @@ Public Class ClsAcarreos
.Add("@Chofer", SqlDbType.VarChar).Value = Chofer .Add("@Chofer", SqlDbType.VarChar).Value = Chofer
.Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario .Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario
.Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa
.Add("@Estatus", SqlDbType.Int).Value = Estatus
.Add("@CveTransportista", SqlDbType.Int).Value = CveTransportista .Add("@CveTransportista", SqlDbType.Int).Value = CveTransportista
.Add("@Identificacion", SqlDbType.VarChar).Value = Identificacion .Add("@Identificacion", SqlDbType.VarChar).Value = Identificacion
.Add("@Domicilio", SqlDbType.VarChar).Value = Domicilio
.Add("@Telefono", SqlDbType.VarChar).Value = Telefono .Add("@Telefono", SqlDbType.VarChar).Value = Telefono
.Add("@Ciudad", SqlDbType.VarChar).Value = Ciudad
.Add("@Licencia", SqlDbType.VarChar).Value = Licencia .Add("@Licencia", SqlDbType.VarChar).Value = Licencia
.Add("@RFC", SqlDbType.VarChar).Value = RFC
.Add("@Domicilio", SqlDbType.VarChar).Value = Domicilio
.Add("@NumeroExterior", SqlDbType.VarChar).Value = NumeroExterior
.Add("@NumeroInterior", SqlDbType.VarChar).Value = NumeroInterior
.Add("@Colonia", SqlDbType.VarChar).Value = Colonia
.Add("@Ciudad", SqlDbType.VarChar).Value = Ciudad
.Add("@Estado", SqlDbType.VarChar).Value = Estado
.Add("@CP", SqlDbType.VarChar).Value = CP
.Add("@Estatus", SqlDbType.Int).Value = Estatus
End With End With
Try Try
SqlAdapter.Fill(Data) SqlAdapter.Fill(Data)

View File

@@ -5774,7 +5774,7 @@ Public Class ClsContabilidad
Public Function AddCuentasAsignaciones(Optional CveConceptoContable As Integer = -1, Optional CveEmpresa As Integer = -1, Optional CveCuenta As Integer = -1, Optional IdCtaContable As Integer = -1, Public Function AddCuentasAsignaciones(Optional CveConceptoContable As Integer = -1, Optional CveEmpresa As Integer = -1, Optional CveCuenta As Integer = -1, Optional IdCtaContable As Integer = -1,
Optional CveProveedor As Integer = -1, Optional CveCliente As Integer = -1, Optional CvePersonal As Integer = -1, Optional CveClasificacion As Integer = -1, Optional CveProveedor As Integer = -1, Optional CveCliente As Integer = -1, Optional CvePersonal As Integer = -1, Optional CveClasificacion As Integer = -1,
Optional CveAlmacen As Integer = -1, Optional PorcentajeIVA As Decimal = -1, Optional CveConceptoNomina As Decimal = -1, Optional CveBancoCuenta As Integer = -1, Optional CveAlmacen As Integer = -1, Optional PorcentajeIVA As Decimal = -1, Optional CveConceptoNomina As Decimal = -1, Optional CveBancoCuenta As Integer = -1,
Optional CveSubProyecto As Integer = -1) As Boolean Optional CveSubProyecto As Integer = -1, Optional CveActivoFijo As Integer = -1) As Boolean
Dim Retorno = False Dim Retorno = False
DataAdapter("PA_Conta_CuentasAsignacionesAdd") DataAdapter("PA_Conta_CuentasAsignacionesAdd")
@@ -5793,6 +5793,7 @@ Public Class ClsContabilidad
.Add("@CveConceptoNomina", SqlDbType.Decimal).Value = CveConceptoNomina .Add("@CveConceptoNomina", SqlDbType.Decimal).Value = CveConceptoNomina
.Add("@CveBancoCuenta", SqlDbType.Int).Value = CveBancoCuenta .Add("@CveBancoCuenta", SqlDbType.Int).Value = CveBancoCuenta
.Add("@CveSubProyecto", SqlDbType.Int).Value = CveSubProyecto .Add("@CveSubProyecto", SqlDbType.Int).Value = CveSubProyecto
.Add("@CveActivoFijo", SqlDbType.Int).Value = CveActivoFijo
End With End With
Try Try
@@ -5828,7 +5829,7 @@ Public Class ClsContabilidad
Optional IdCtaContable As Integer = -1, Optional CveProveedor As Integer = -1, Optional CveCliente As Integer = -1, Optional IdCtaContable As Integer = -1, Optional CveProveedor As Integer = -1, Optional CveCliente As Integer = -1,
Optional CvePersonal As Integer = -1, Optional CveClasificacion As Integer = -1, Optional CveAlmacen As Integer = -1, Optional CvePersonal As Integer = -1, Optional CveClasificacion As Integer = -1, Optional CveAlmacen As Integer = -1,
Optional PorcentajeIVA As Decimal = -1, Optional CveConceptoNomina As Decimal = -1, Optional CveBancoCuenta As Integer = -1, Optional PorcentajeIVA As Decimal = -1, Optional CveConceptoNomina As Decimal = -1, Optional CveBancoCuenta As Integer = -1,
Optional CveSubProyecto As Integer = -1) As Boolean Optional CveSubProyecto As Integer = -1, Optional CveActivoFijo As Integer = -1) As Boolean
Dim Retorno = False Dim Retorno = False
DataAdapter("PA_Conta_CuentasAsignacionesUpdate") DataAdapter("PA_Conta_CuentasAsignacionesUpdate")
@@ -5847,6 +5848,7 @@ Public Class ClsContabilidad
.Add("@CveConceptoNomina", SqlDbType.Decimal).Value = CveConceptoNomina .Add("@CveConceptoNomina", SqlDbType.Decimal).Value = CveConceptoNomina
.Add("@CveBancoCuenta", SqlDbType.Int).Value = CveBancoCuenta .Add("@CveBancoCuenta", SqlDbType.Int).Value = CveBancoCuenta
.Add("@CveSubProyecto", SqlDbType.Int).Value = CveSubProyecto .Add("@CveSubProyecto", SqlDbType.Int).Value = CveSubProyecto
.Add("@CveActivoFijo", SqlDbType.Int).Value = CveActivoFijo
End With End With
Try Try

View File

@@ -5489,12 +5489,18 @@ Public Class ClsInventarios
End Try End Try
Return Retorno Return Retorno
End Function End Function
Public Function AddCamiones(Placa As String, Especificacion As String, CveEmpresa As Integer) As Boolean Public Function AddCamiones(Placa As String, Especificacion As String, CveEmpresa As Integer, Optional ConfigCartaPorte As String = "", Optional Anio As Integer = 0, Optional TipoPermisoSCT As String = "", Optional NumPermisoSCT As String = "", Optional NombreAseguradora As String = "", Optional NumPolizaSeguro As String = "") As Boolean
Dim Retorno As Boolean = False Dim Retorno As Boolean = False
DataAdapter("PA_Inv_CamionesAdd") DataAdapter("PA_Inv_CamionesAdd")
With SqlAdapter.SelectCommand.Parameters With SqlAdapter.SelectCommand.Parameters
.Add("@Placa", SqlDbType.VarChar).Value = Placa .Add("@Placa", SqlDbType.VarChar).Value = Placa
.Add("@Especificacion", SqlDbType.VarChar).Value = Especificacion .Add("@Especificacion", SqlDbType.VarChar).Value = Especificacion
.Add("@ConfigCartaPorte", SqlDbType.VarChar).Value = ConfigCartaPorte
.Add("@Anio", SqlDbType.Int).Value = Anio
.Add("@TipoPermisoSCT", SqlDbType.VarChar).Value = TipoPermisoSCT
.Add("@NumPermisoSCT", SqlDbType.VarChar).Value = NumPermisoSCT
.Add("@NombreAseguradora", SqlDbType.VarChar).Value = NombreAseguradora
.Add("@NumPolizaSeguro", SqlDbType.VarChar).Value = NumPolizaSeguro
.Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa
End With End With
Try Try
@@ -5519,13 +5525,19 @@ Public Class ClsInventarios
End Try End Try
Return Retorno Return Retorno
End Function End Function
Public Function UpdateCamiones(CveCamion As Integer, Placa As String, Especificacion As String) As Boolean Public Function UpdateCamiones(CveCamion As Integer, Placa As String, Especificacion As String, Optional ConfigCartaPorte As String = "", Optional Anio As Integer = 0, Optional TipoPermisoSCT As String = "", Optional NumPermisoSCT As String = "", Optional NombreAseguradora As String = "", Optional NumPolizaSeguro As String = "") As Boolean
Dim Retorno As Boolean = False Dim Retorno As Boolean = False
DataAdapter("PA_Inv_CamionesUpdate") DataAdapter("PA_Inv_CamionesUpdate")
With SqlAdapter.SelectCommand.Parameters With SqlAdapter.SelectCommand.Parameters
.Add("@CveCamion", SqlDbType.Int).Value = CveCamion .Add("@CveCamion", SqlDbType.Int).Value = CveCamion
.Add("@Placa", SqlDbType.VarChar).Value = Placa .Add("@Placa", SqlDbType.VarChar).Value = Placa
.Add("@Especificacion", SqlDbType.VarChar).Value = Especificacion .Add("@Especificacion", SqlDbType.VarChar).Value = Especificacion
.Add("@ConfigCartaPorte", SqlDbType.VarChar).Value = ConfigCartaPorte
.Add("@Anio", SqlDbType.Int).Value = Anio
.Add("@TipoPermisoSCT", SqlDbType.VarChar).Value = TipoPermisoSCT
.Add("@NumPermisoSCT", SqlDbType.VarChar).Value = NumPermisoSCT
.Add("@NombreAseguradora", SqlDbType.VarChar).Value = NombreAseguradora
.Add("@NumPolizaSeguro", SqlDbType.VarChar).Value = NumPolizaSeguro
End With End With
Try Try
SqlAdapter.Fill(Data) SqlAdapter.Fill(Data)

View File

@@ -1723,7 +1723,7 @@ Public Class Timbrado
If Ventas.CveVenta > 0 Then If Ventas.CveVenta > 0 Then
Dim ObjVentas As New ClsVentas() Dim ObjVentas As New ClsVentas()
If ObjVentas.UpdateEstatusFactura(3, FolioFiscal, "", ObjCFDITimbre.Comprobante.Fecha, Ventas.CveVenta, CvePAC:=UsuarioActual.Empresa.CvePAC) Then If ObjVentas.UpdateEstatusFactura(3, FolioFiscal, "", ObjCFDITimbre.Comprobante.Fecha, Ventas.CveVenta, CvePAC:=UsuarioActual.Empresa.CvePAC, RFCReceptor:=ObjCFDITimbre.Receptor.RFC) Then
Retorno = "" Retorno = ""
Else Else
Retorno = "Error" Retorno = "Error"
@@ -2125,6 +2125,77 @@ Public Class Timbrado
End If End If
#Region "C O M P L E M E N T O C A R T A P O R T E"
If ObjCFDITimbre.Complementos.CartaPorte IsNot Nothing Then
If ObjCFDITimbre.Complementos.CartaPorte IsNot Nothing Then
Dim Carta As CFDICartaPorte = ObjCFDITimbre.Complementos.CartaPorte
''DATOS GENERALES
cfdi.CartaPorte(Carta.TranspInternac, Carta.EntradaSalidaMercancia, Carta.ViaEntradaSalida, Carta.TotalDistanciaRecorrida)
'UBICACIONES
If Carta.Ubicaciones IsNot Nothing AndAlso Carta.Ubicaciones.Count > 0 Then
For Each ubica As CFDICartaPorteUbicaciones In Carta.Ubicaciones
'origen
cfdi.CartaPorteUbicacion(ubica.TipoEstacion, ubica.DistanciaRecorrida)
cfdi.CartaPorteOrigen(ubica.Origen.IDOrigen, ubica.Origen.RFCRemitente, ubica.Origen.NombreRemitente, ubica.Origen.NumRegIdTrib, ubica.Origen.ResidenciaFiscal, ubica.Origen.NumEstacion, ubica.Origen.NombreEstacion, ubica.Origen.NavegacionTrafico, ubica.Origen.FechaHoraSalida)
cfdi.CartaPorteDomicilio(ubica.Origen.Domicilio.Calle, ubica.Origen.Domicilio.NumeroExterior, ubica.Origen.Domicilio.NumeroInterior, ubica.Origen.Domicilio.Colonia, ubica.Origen.Domicilio.Localidad, ubica.Origen.Domicilio.Referencia, ubica.Origen.Domicilio.Municipio, ubica.Origen.Domicilio.Estado, ubica.Origen.Domicilio.Pais, ubica.Origen.Domicilio.CP)
'destino
cfdi.CartaPorteUbicacion(ubica.TipoEstacion, ubica.DistanciaRecorrida)
cfdi.CartaPorteDestino(ubica.Destino.IDDestino, ubica.Destino.RFCDestinatario, ubica.Destino.NombreDestinatario, ubica.Destino.NumRegIdTrib, ubica.Destino.ResidenciaFiscal, ubica.Destino.NumEstacion, ubica.Destino.NombreEstacion, ubica.Destino.NavegacionTrafico, ubica.Destino.FechaHoraProgLlegada)
cfdi.CartaPorteDomicilio(ubica.Destino.Domicilio.Calle, ubica.Destino.Domicilio.NumeroExterior, ubica.Destino.Domicilio.NumeroInterior, ubica.Destino.Domicilio.Colonia, ubica.Destino.Domicilio.Localidad, ubica.Destino.Domicilio.Referencia, ubica.Destino.Domicilio.Municipio, ubica.Destino.Domicilio.Estado, ubica.Destino.Domicilio.Pais, ubica.Destino.Domicilio.CP)
Next
End If
'MERCANCIAS
If Carta.Mercancias IsNot Nothing Then
cfdi.CartaPorteMercancias(Carta.Mercancias.PesoBrutoTotal, Carta.Mercancias.UnidadPeso, Carta.Mercancias.PesoNetoTotal, Carta.Mercancias.NumTotalMercancias, Carta.Mercancias.CargoporTasacion)
If Carta.Mercancias IsNot Nothing AndAlso Carta.Mercancias.Mercancias.Count > 0 Then
For Each concep As CFDICartaPorteMercancia In Carta.Mercancias.Mercancias
cfdi.CartaPorteMercancia(concep.BienesTransp, concep.ClaveSTCC, concep.Descripción, concep.Cantidad, concep.ClaveUnidad, concep.Unidad, concep.Dimensiones, concep.MaterialPeligroso, concep.ClaveMaterialPeligroso, concep.Embalaje, concep.DescripEmbalaje, concep.PesoenKg, concep.ValorMercancia, concep.Moneda, concep.FraccionArrancelaria, concep.UUIDComercioExt)
Next
End If
End If
'
If Carta.FiguraTransporte IsNot Nothing Then
If Carta.FiguraTransporte.AutoTransporteFederal IsNot Nothing Then
cfdi.CartaPorteAutotransporteFederal(Carta.FiguraTransporte.AutoTransporteFederal.PermSCT, Carta.FiguraTransporte.AutoTransporteFederal.NumPermisoSCT, Carta.FiguraTransporte.AutoTransporteFederal.NombreAseg, Carta.FiguraTransporte.AutoTransporteFederal.NumPolizaSeguro)
cfdi.CartaPorteIdentificacionVehicular(Carta.FiguraTransporte.AutoTransporteFederal.Vehiculo.ConfigVehicular, Carta.FiguraTransporte.AutoTransporteFederal.Vehiculo.PlacaVM, Carta.FiguraTransporte.AutoTransporteFederal.Vehiculo.AnioModeloVM)
If Carta.FiguraTransporte.AutoTransporteFederal.Remolques IsNot Nothing AndAlso Carta.FiguraTransporte.AutoTransporteFederal.Remolques.Count > 0 Then
For Each concep As CFDICartaPorteRemolque In Carta.FiguraTransporte.AutoTransporteFederal.Remolques
cfdi.CartaPorteRemolque(concep.SubTipoRemolque, concep.Placa)
Next
End If
End If
cfdi.CartaPorteFiguraTransporte(Carta.FiguraTransporte.ClaveTransporte)
If Carta.FiguraTransporte.Operadores IsNot Nothing AndAlso Carta.FiguraTransporte.Operadores.Count > 0 Then
For Each concep As CFDICartaPorteOperador In Carta.FiguraTransporte.Operadores
cfdi.CartaPorteOperador(concep.RFCOperador, concep.NumLicencia, concep.NombreOperador, concep.NumRegidTribOperador, concep.ResidenciaFiscalOperador)
Next
End If
End If
End If
End If
#End Region
#Region "Complemento Pago" #Region "Complemento Pago"
If ObjCFDITimbre.Comprobante.TipoComprobante = "P" Then If ObjCFDITimbre.Comprobante.TipoComprobante = "P" Then
@@ -2344,7 +2415,7 @@ Public Class Timbrado
Using ObjVentas As New ClsVentas() Using ObjVentas As New ClsVentas()
If ObjVentas.UpdateEstatusFactura(3, FolioFiscal, "", ObjCFDITimbre.Comprobante.Fecha, Ventas.CveVenta, CvePAC:=CvePACEspecial) Then If ObjVentas.UpdateEstatusFactura(3, FolioFiscal, "", ObjCFDITimbre.Comprobante.Fecha, Ventas.CveVenta, CvePAC:=CvePACEspecial, RFCReceptor:=ObjCFDITimbre.Receptor.RFC) Then
Retorno = "" Retorno = ""
Else Else
Retorno = "Error" Retorno = "Error"
@@ -3132,6 +3203,7 @@ Public Class Timbrado
Dim NombreArchivoXML As String = $"{ObjCFDITimbre.Comprobante.SerieFolio}" Dim NombreArchivoXML As String = $"{ObjCFDITimbre.Comprobante.SerieFolio}"
Dim SubTotal As Decimal = 0 Dim SubTotal As Decimal = 0
Dim AmbienteProductivo As Boolean = True Dim AmbienteProductivo As Boolean = True
Dim NumDecimalesImporte As Integer = 2
If Not Directory.Exists(RutaArchivo) Then Directory.CreateDirectory(RutaArchivo) If Not Directory.Exists(RutaArchivo) Then Directory.CreateDirectory(RutaArchivo)
If Not UsuarioActual.Empresa.FacturaProduccion OrElse UsuarioActual.CveEmpresa = 1 Then If Not UsuarioActual.Empresa.FacturaProduccion OrElse UsuarioActual.CveEmpresa = 1 Then
@@ -3220,19 +3292,19 @@ Public Class Timbrado
comprobante.Version = "3.3" comprobante.Version = "3.3"
comprobante.Fecha = ObjCFDITimbre.Comprobante.Fecha comprobante.Fecha = ObjCFDITimbre.Comprobante.Fecha
comprobante.FormaPago = ObjCFDITimbre.Comprobante.FormadePago comprobante.FormaPago = ObjCFDITimbre.Comprobante.FormadePago
If ObjCFDITimbre.Comprobante.TipoComprobante <> "P" Then comprobante.CondicionesDePago = ObjCFDITimbre.Comprobante.CondicionesdePago If ObjCFDITimbre.Comprobante.TipoComprobante.Contiene("I", "E", "N") Then comprobante.CondicionesDePago = ObjCFDITimbre.Comprobante.CondicionesdePago
comprobante.SubTotal = ObjCFDITimbre.Comprobante.Subtotal comprobante.SubTotal = ObjCFDITimbre.Comprobante.Subtotal.RoundSQL(NumDecimalesImporte)
If ObjCFDITimbre.Comprobante.TipoComprobante <> "P" Then If ObjCFDITimbre.Comprobante.TipoComprobante.Contiene("I", "E", "N") Then
If ObjCFDITimbre.Comprobante.Descuentos > 0 Then If ObjCFDITimbre.Comprobante.Descuentos > 0 Then
comprobante.DescuentoSpecified = True comprobante.DescuentoSpecified = True
comprobante.Descuento = ObjCFDITimbre.Comprobante.Descuentos comprobante.Descuento = ObjCFDITimbre.Comprobante.Descuentos.RoundSQL(NumDecimalesImporte)
End If End If
End If End If
comprobante.Moneda = ObjCFDITimbre.Comprobante.Moneda comprobante.Moneda = ObjCFDITimbre.Comprobante.Moneda
comprobante.TipoCambio = ObjCFDITimbre.Comprobante.TipoCambio.ToDecimal comprobante.TipoCambio = ObjCFDITimbre.Comprobante.TipoCambio.ToDecimal
comprobante.TipoCambioSpecified = If(ObjCFDITimbre.Comprobante.Moneda <> "XXX", True, False) comprobante.TipoCambioSpecified = If(ObjCFDITimbre.Comprobante.Moneda <> "XXX", True, False)
comprobante.Total = ObjCFDITimbre.Comprobante.Total comprobante.Total = ObjCFDITimbre.Comprobante.Total.RoundSQL(NumDecimalesImporte)
comprobante.TipoDeComprobante = ObjCFDITimbre.Comprobante.TipoComprobante comprobante.TipoDeComprobante = ObjCFDITimbre.Comprobante.TipoComprobante
comprobante.FormaPagoSpecified = If(ObjCFDITimbre.Comprobante.FormadePago <> "", True, False) comprobante.FormaPagoSpecified = If(ObjCFDITimbre.Comprobante.FormadePago <> "", True, False)
comprobante.MetodoPago = ObjCFDITimbre.Comprobante.MetodoPago comprobante.MetodoPago = ObjCFDITimbre.Comprobante.MetodoPago
@@ -3274,7 +3346,7 @@ Public Class Timbrado
comprobante.Conceptos(i).ClaveUnidad = concep.ClaveUnidad comprobante.Conceptos(i).ClaveUnidad = concep.ClaveUnidad
comprobante.Conceptos(i).Descripcion = concep.Descripcion comprobante.Conceptos(i).Descripcion = concep.Descripcion
comprobante.Conceptos(i).ValorUnitario = concep.ValorUnitario comprobante.Conceptos(i).ValorUnitario = concep.ValorUnitario
comprobante.Conceptos(i).Importe = concep.Importe comprobante.Conceptos(i).Importe = concep.Importe.RoundSQL(NumDecimalesImporte)
comprobante.Conceptos(i).ClaveProdServ = concep.ClaveProdServ comprobante.Conceptos(i).ClaveProdServ = concep.ClaveProdServ
If ObjCFDITimbre.Comprobante.TipoComprobante <> "P" Then If ObjCFDITimbre.Comprobante.TipoComprobante <> "P" Then
@@ -3310,7 +3382,7 @@ Public Class Timbrado
comprobante.Conceptos(i).Impuestos.Traslados(j).Base = imp.Base comprobante.Conceptos(i).Impuestos.Traslados(j).Base = imp.Base
comprobante.Conceptos(i).Impuestos.Traslados(j).Impuesto = imp.Impuesto comprobante.Conceptos(i).Impuestos.Traslados(j).Impuesto = imp.Impuesto
comprobante.Conceptos(i).Impuestos.Traslados(j).TipoFactor = imp.TipoFactor comprobante.Conceptos(i).Impuestos.Traslados(j).TipoFactor = imp.TipoFactor
comprobante.Conceptos(i).Impuestos.Traslados(j).Importe = imp.Importe comprobante.Conceptos(i).Impuestos.Traslados(j).Importe = imp.Importe.RoundSQL(NumDecimalesImporte)
comprobante.Conceptos(i).Impuestos.Traslados(j).ImporteSpecified = True comprobante.Conceptos(i).Impuestos.Traslados(j).ImporteSpecified = True
comprobante.Conceptos(i).Impuestos.Traslados(j).TasaOCuota = imp.TasaOCuota.FormatoNumero(6) comprobante.Conceptos(i).Impuestos.Traslados(j).TasaOCuota = imp.TasaOCuota.FormatoNumero(6)
comprobante.Conceptos(i).Impuestos.Traslados(j).TasaOCuotaSpecified = True comprobante.Conceptos(i).Impuestos.Traslados(j).TasaOCuotaSpecified = True
@@ -3320,7 +3392,7 @@ Public Class Timbrado
comprobante.Conceptos(i).Impuestos.Retenciones(k).Base = imp.Base comprobante.Conceptos(i).Impuestos.Retenciones(k).Base = imp.Base
comprobante.Conceptos(i).Impuestos.Retenciones(k).Impuesto = imp.Impuesto comprobante.Conceptos(i).Impuestos.Retenciones(k).Impuesto = imp.Impuesto
comprobante.Conceptos(i).Impuestos.Retenciones(k).TipoFactor = imp.TipoFactor comprobante.Conceptos(i).Impuestos.Retenciones(k).TipoFactor = imp.TipoFactor
comprobante.Conceptos(i).Impuestos.Retenciones(k).Importe = imp.Importe comprobante.Conceptos(i).Impuestos.Retenciones(k).Importe = imp.Importe.RoundSQL(NumDecimalesImporte)
comprobante.Conceptos(i).Impuestos.Retenciones(k).TasaOCuota = imp.TasaOCuota.ToString.ToDecimal comprobante.Conceptos(i).Impuestos.Retenciones(k).TasaOCuota = imp.TasaOCuota.ToString.ToDecimal
k += 1 k += 1
End If End If
@@ -3597,7 +3669,7 @@ Public Class Timbrado
ComPag.Pago(0).FechaPago = ObjCFDITimbre.ComplementoPagos.FechaPago.ToString("yyyy-MM-ddTHH:mm:ss").ToDate() ComPag.Pago(0).FechaPago = ObjCFDITimbre.ComplementoPagos.FechaPago.ToString("yyyy-MM-ddTHH:mm:ss").ToDate()
ComPag.Pago(0).FormaDePagoP = ObjCFDITimbre.ComplementoPagos.FormaDePagoP ComPag.Pago(0).FormaDePagoP = ObjCFDITimbre.ComplementoPagos.FormaDePagoP
ComPag.Pago(0).MonedaP = ObjCFDITimbre.ComplementoPagos.MonedaP ComPag.Pago(0).MonedaP = ObjCFDITimbre.ComplementoPagos.MonedaP
ComPag.Pago(0).TipoCadPagoSpecified = If(ObjCFDITimbre.ComplementoPagos.MonedaP = "MXN", False, True) ComPag.Pago(0).TipoCambioPSpecified = If(ObjCFDITimbre.ComplementoPagos.MonedaP = "MXN", False, True)
ComPag.Pago(0).TipoCambioP = ObjCFDITimbre.ComplementoPagos.TipoCambioP.ToDecimal ComPag.Pago(0).TipoCambioP = ObjCFDITimbre.ComplementoPagos.TipoCambioP.ToDecimal
ComPag.Pago(0).Monto = ObjCFDITimbre.ComplementoPagos.Monto.ToDecimal ComPag.Pago(0).Monto = ObjCFDITimbre.ComplementoPagos.Monto.ToDecimal
If ObjCFDITimbre.ComplementoPagos.NumOperacion <> "" Then If ObjCFDITimbre.ComplementoPagos.NumOperacion <> "" Then
@@ -3618,7 +3690,11 @@ Public Class Timbrado
If ObjCFDITimbre.ComplementoPagos.CtaBeneficiario <> "" Then If ObjCFDITimbre.ComplementoPagos.CtaBeneficiario <> "" Then
ComPag.Pago(0).CtaBeneficiario = ObjCFDITimbre.ComplementoPagos.CtaBeneficiario ComPag.Pago(0).CtaBeneficiario = ObjCFDITimbre.ComplementoPagos.CtaBeneficiario
End If End If
ComPag.Pago(0).TipoCadPago = ObjCFDITimbre.ComplementoPagos.TipoCadPago If ObjCFDITimbre.ComplementoPagos.TipoCadPago <> "" Then
ComPag.Pago(0).TipoCadPagoSpecified = True
ComPag.Pago(0).TipoCadPago = ObjCFDITimbre.ComplementoPagos.TipoCadPago
End If
If ObjCFDITimbre.ComplementoPagos.CertPago <> "" Then If ObjCFDITimbre.ComplementoPagos.CertPago <> "" Then
ComPag.Pago(0).CertPago = System.Text.Encoding.Default.GetBytes(ObjCFDITimbre.ComplementoPagos.CertPago).ToString ComPag.Pago(0).CertPago = System.Text.Encoding.Default.GetBytes(ObjCFDITimbre.ComplementoPagos.CertPago).ToString
End If End If
@@ -3868,191 +3944,191 @@ Public Class Timbrado
#End Region #End Region
#Region "Detallista" '#Region "Detallista"
If Ventas.Cliente.AplicaDetallista Then ' If Ventas.Cliente.AplicaDetallista Then
Dim detallista As Profact.TimbraCFDI33.Complementos.Detallista.detallista = New Profact.TimbraCFDI33.Complementos.Detallista.detallista ' Dim detallista As Profact.TimbraCFDI33.Complementos.Detallista.detallista = New Profact.TimbraCFDI33.Complementos.Detallista.detallista
detallista.type = "SimpleInvoiceType" ' detallista.type = "SimpleInvoiceType"
detallista.contentVersion = "1.3.1" ' detallista.contentVersion = "1.3.1"
detallista.documentStructureVersion = "AMC8.1" ' detallista.documentStructureVersion = "AMC8.1"
detallista.documentStatus = Profact.TimbraCFDI33.Complementos.Detallista.detallistaDocumentStatus.ORIGINAL ' detallista.documentStatus = Profact.TimbraCFDI33.Complementos.Detallista.detallistaDocumentStatus.ORIGINAL
detallista.DeliveryNote = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaDeliveryNote ' detallista.DeliveryNote = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaDeliveryNote
detallista.DeliveryNote.referenceIdentification = New String((1)) {} ' detallista.DeliveryNote.referenceIdentification = New String((1)) {}
detallista.DeliveryNote.referenceIdentification(0) = "1" ' detallista.DeliveryNote.referenceIdentification(0) = "1"
detallista.DeliveryNote.ReferenceDate = New DateTime ' detallista.DeliveryNote.ReferenceDate = New DateTime
detallista.DeliveryNote.ReferenceDate = comprobante.Fecha ' detallista.DeliveryNote.ReferenceDate = comprobante.Fecha
detallista.DeliveryNote.ReferenceDateSpecified = True ' detallista.DeliveryNote.ReferenceDateSpecified = True
detallista.requestForPaymentIdentification = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaRequestForPaymentIdentification ' detallista.requestForPaymentIdentification = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaRequestForPaymentIdentification
detallista.requestForPaymentIdentification.entityType = Profact.TimbraCFDI33.Complementos.Detallista.detallistaRequestForPaymentIdentificationEntityType.INVOICE ' detallista.requestForPaymentIdentification.entityType = Profact.TimbraCFDI33.Complementos.Detallista.detallistaRequestForPaymentIdentificationEntityType.INVOICE
detallista.specialInstruction = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaSpecialInstruction((1)) {} ' detallista.specialInstruction = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaSpecialInstruction((1)) {}
detallista.specialInstruction(0) = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaSpecialInstruction ' detallista.specialInstruction(0) = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaSpecialInstruction
detallista.specialInstruction(0).code = Profact.TimbraCFDI33.Complementos.Detallista.detallistaSpecialInstructionCode.ZZZ ' detallista.specialInstruction(0).code = Profact.TimbraCFDI33.Complementos.Detallista.detallistaSpecialInstructionCode.ZZZ
Dim TotalTexto = New String() {Ventas.TotalTC.ToString.ToDouble.Texto2Letras.ToUpper()} ' Dim TotalTexto = New String() {Ventas.TotalTC.ToString.ToDouble.Texto2Letras.ToUpper()}
Dim propertyInfo = detallista.specialInstruction(0).GetType().GetProperty("text") ' Dim propertyInfo = detallista.specialInstruction(0).GetType().GetProperty("text")
propertyInfo.SetValue(detallista.specialInstruction(0), Convert.ChangeType(TotalTexto, propertyInfo.PropertyType), Nothing) ' propertyInfo.SetValue(detallista.specialInstruction(0), Convert.ChangeType(TotalTexto, propertyInfo.PropertyType), Nothing)
detallista.orderIdentification = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaOrderIdentification ' detallista.orderIdentification = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaOrderIdentification
detallista.orderIdentification.referenceIdentification = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaOrderIdentificationReferenceIdentification((1)) {} ' detallista.orderIdentification.referenceIdentification = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaOrderIdentificationReferenceIdentification((1)) {}
detallista.orderIdentification.referenceIdentification(0) = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaOrderIdentificationReferenceIdentification ' detallista.orderIdentification.referenceIdentification(0) = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaOrderIdentificationReferenceIdentification
detallista.orderIdentification.referenceIdentification(0).type = Profact.TimbraCFDI33.Complementos.Detallista.detallistaOrderIdentificationReferenceIdentificationType.ON ' detallista.orderIdentification.referenceIdentification(0).type = Profact.TimbraCFDI33.Complementos.Detallista.detallistaOrderIdentificationReferenceIdentificationType.ON
detallista.orderIdentification.referenceIdentification(0).Value = Ventas.Det_OrdenCompra ' detallista.orderIdentification.referenceIdentification(0).Value = Ventas.Det_OrdenCompra
detallista.orderIdentification.ReferenceDateSpecified = True ' detallista.orderIdentification.ReferenceDateSpecified = True
detallista.orderIdentification.ReferenceDate = Ventas.Det_FechaOrdenCompra.ToDate() ' detallista.orderIdentification.ReferenceDate = Ventas.Det_FechaOrdenCompra.ToDate()
detallista.AdditionalInformation = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaReferenceIdentification((1)) {} ' detallista.AdditionalInformation = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaReferenceIdentification((1)) {}
detallista.AdditionalInformation(0) = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaReferenceIdentification ' detallista.AdditionalInformation(0) = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaReferenceIdentification
detallista.AdditionalInformation(0).type = Profact.TimbraCFDI33.Complementos.Detallista.detallistaReferenceIdentificationType.ATZ ' detallista.AdditionalInformation(0).type = Profact.TimbraCFDI33.Complementos.Detallista.detallistaReferenceIdentificationType.ATZ
detallista.AdditionalInformation(0).Value = Ventas.Det_ContraRecibo ' detallista.AdditionalInformation(0).Value = Ventas.Det_ContraRecibo
detallista.DeliveryNote = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaDeliveryNote ' detallista.DeliveryNote = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaDeliveryNote
detallista.DeliveryNote.ReferenceDate = Ventas.Det_FechaOrdenCompra.ToDate ' detallista.DeliveryNote.ReferenceDate = Ventas.Det_FechaOrdenCompra.ToDate
detallista.DeliveryNote.referenceIdentification = New String((1)) {} ' detallista.DeliveryNote.referenceIdentification = New String((1)) {}
detallista.DeliveryNote.referenceIdentification(0) = Ventas.Det_ContraRecibo ' detallista.DeliveryNote.referenceIdentification(0) = Ventas.Det_ContraRecibo
detallista.buyer = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaBuyer ' detallista.buyer = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaBuyer
detallista.buyer.gln = Ventas.Cliente.Detallista_GLNComprador ' detallista.buyer.gln = Ventas.Cliente.Detallista_GLNComprador
detallista.buyer.contactInformation = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaBuyerContactInformation ' detallista.buyer.contactInformation = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaBuyerContactInformation
detallista.buyer.contactInformation.personOrDepartmentName = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaBuyerContactInformationPersonOrDepartmentName ' detallista.buyer.contactInformation.personOrDepartmentName = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaBuyerContactInformationPersonOrDepartmentName
detallista.buyer.contactInformation.personOrDepartmentName.text = Ventas.Cliente.Detallista_Departamento ' detallista.buyer.contactInformation.personOrDepartmentName.text = Ventas.Cliente.Detallista_Departamento
detallista.seller = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaSeller ' detallista.seller = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaSeller
detallista.seller.gln = Ventas.Cliente.Detallista_GLNVendedor ' detallista.seller.gln = Ventas.Cliente.Detallista_GLNVendedor
detallista.seller.alternatePartyIdentification = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaSellerAlternatePartyIdentification ' detallista.seller.alternatePartyIdentification = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaSellerAlternatePartyIdentification
detallista.seller.alternatePartyIdentification.type = Profact.TimbraCFDI33.Complementos.Detallista.detallistaSellerAlternatePartyIdentificationType.SELLER_ASSIGNED_IDENTIFIER_FOR_A_PARTY ' detallista.seller.alternatePartyIdentification.type = Profact.TimbraCFDI33.Complementos.Detallista.detallistaSellerAlternatePartyIdentificationType.SELLER_ASSIGNED_IDENTIFIER_FOR_A_PARTY
detallista.seller.alternatePartyIdentification.Value = Ventas.Cliente.Detallista_NumProveedor ' detallista.seller.alternatePartyIdentification.Value = Ventas.Cliente.Detallista_NumProveedor
'detallista.shipTo = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaShipTo ' 'detallista.shipTo = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaShipTo
'detallista.shipTo.gln = "0000000000000" ' 'detallista.shipTo.gln = "0000000000000"
'detallista.shipTo.nameAndAddress = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaShipToNameAndAddress ' 'detallista.shipTo.nameAndAddress = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaShipToNameAndAddress
'detallista.shipTo.nameAndAddress.name = New String((1)) {} ' 'detallista.shipTo.nameAndAddress.name = New String((1)) {}
'detallista.shipTo.nameAndAddress.name(0) = Ventas.Cliente.Direccion ' 'detallista.shipTo.nameAndAddress.name(0) = Ventas.Cliente.Direccion
'detallista.shipTo.nameAndAddress.streetAddressOne = New String((1)) {} ' 'detallista.shipTo.nameAndAddress.streetAddressOne = New String((1)) {}
'detallista.shipTo.nameAndAddress.streetAddressOne(0) = Ventas.Cliente.NoInt ' 'detallista.shipTo.nameAndAddress.streetAddressOne(0) = Ventas.Cliente.NoInt
'detallista.shipTo.nameAndAddress.city = New String((1)) {} ' 'detallista.shipTo.nameAndAddress.city = New String((1)) {}
'detallista.shipTo.nameAndAddress.city(0) = Ventas.Cliente.Ciudad ' 'detallista.shipTo.nameAndAddress.city(0) = Ventas.Cliente.Ciudad
'detallista.shipTo.nameAndAddress.postalCode = New String((1)) {} ' 'detallista.shipTo.nameAndAddress.postalCode = New String((1)) {}
'detallista.shipTo.nameAndAddress.postalCode(0) = Ventas.Cliente.CP ' 'detallista.shipTo.nameAndAddress.postalCode(0) = Ventas.Cliente.CP
detallista.paymentTerms = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaPaymentTerms ' detallista.paymentTerms = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaPaymentTerms
detallista.paymentTerms.netPayment = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaPaymentTermsNetPayment ' detallista.paymentTerms.netPayment = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaPaymentTermsNetPayment
detallista.paymentTerms.netPayment.paymentTimePeriod = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaPaymentTermsNetPaymentPaymentTimePeriod ' detallista.paymentTerms.netPayment.paymentTimePeriod = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaPaymentTermsNetPaymentPaymentTimePeriod
detallista.paymentTerms.netPayment.paymentTimePeriod.timePeriodDue = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaPaymentTermsNetPaymentPaymentTimePeriodTimePeriodDue ' detallista.paymentTerms.netPayment.paymentTimePeriod.timePeriodDue = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaPaymentTermsNetPaymentPaymentTimePeriodTimePeriodDue
detallista.paymentTerms.netPayment.paymentTimePeriod.timePeriodDue.timePeriod = Profact.TimbraCFDI33.Complementos.Detallista.detallistaPaymentTermsNetPaymentPaymentTimePeriodTimePeriodDueTimePeriod.DAYS ' detallista.paymentTerms.netPayment.paymentTimePeriod.timePeriodDue.timePeriod = Profact.TimbraCFDI33.Complementos.Detallista.detallistaPaymentTermsNetPaymentPaymentTimePeriodTimePeriodDueTimePeriod.DAYS
detallista.paymentTerms.netPayment.paymentTimePeriod.timePeriodDue.value = "0" ' detallista.paymentTerms.netPayment.paymentTimePeriod.timePeriodDue.value = "0"
detallista.paymentTerms.discountPayment = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaPaymentTermsDiscountPayment ' detallista.paymentTerms.discountPayment = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaPaymentTermsDiscountPayment
detallista.paymentTerms.discountPayment.percentage = If(Ventas.DescuentoTC > 0 AndAlso Ventas.SubTotalTC > 0, (Ventas.DescuentoTC * 100) / Ventas.SubTotalTC, 0).ToString().FormatoNumero() ' detallista.paymentTerms.discountPayment.percentage = If(Ventas.DescuentoTC > 0 AndAlso Ventas.SubTotalTC > 0, (Ventas.DescuentoTC * 100) / Ventas.SubTotalTC, 0).ToString().FormatoNumero()
detallista.currency = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaCurrency((1)) {} ' detallista.currency = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaCurrency((1)) {}
detallista.currency(0) = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaCurrency ' detallista.currency(0) = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaCurrency
detallista.currency(0).currencyISOCode = If(Ventas.CveMoneda = 1, Profact.TimbraCFDI33.Complementos.Detallista.detallistaCurrencyCurrencyISOCode.MXN, Profact.TimbraCFDI33.Complementos.Detallista.detallistaCurrencyCurrencyISOCode.USD) ' detallista.currency(0).currencyISOCode = If(Ventas.CveMoneda = 1, Profact.TimbraCFDI33.Complementos.Detallista.detallistaCurrencyCurrencyISOCode.MXN, Profact.TimbraCFDI33.Complementos.Detallista.detallistaCurrencyCurrencyISOCode.USD)
detallista.currency(0).currencyFunction = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaCurrencyCurrencyFunction((1)) {} ' detallista.currency(0).currencyFunction = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaCurrencyCurrencyFunction((1)) {}
detallista.currency(0).currencyFunction(0) = Profact.TimbraCFDI33.Complementos.Detallista.detallistaCurrencyCurrencyFunction.BILLING_CURRENCY ' detallista.currency(0).currencyFunction(0) = Profact.TimbraCFDI33.Complementos.Detallista.detallistaCurrencyCurrencyFunction.BILLING_CURRENCY
detallista.currency(0).rateOfChangeSpecified = True ' detallista.currency(0).rateOfChangeSpecified = True
detallista.currency(0).rateOfChange = 1 ' detallista.currency(0).rateOfChange = 1
detallista.allowanceCharge = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaAllowanceCharge(1) {} ' detallista.allowanceCharge = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaAllowanceCharge(1) {}
detallista.allowanceCharge(0) = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaAllowanceCharge ' detallista.allowanceCharge(0) = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaAllowanceCharge
detallista.allowanceCharge(0).monetaryAmountOrPercentage = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaAllowanceChargeMonetaryAmountOrPercentage ' detallista.allowanceCharge(0).monetaryAmountOrPercentage = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaAllowanceChargeMonetaryAmountOrPercentage
detallista.allowanceCharge(0).monetaryAmountOrPercentage.rate = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaAllowanceChargeMonetaryAmountOrPercentageRate ' detallista.allowanceCharge(0).monetaryAmountOrPercentage.rate = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaAllowanceChargeMonetaryAmountOrPercentageRate
detallista.allowanceCharge(0).monetaryAmountOrPercentage.rate.base = Profact.TimbraCFDI33.Complementos.Detallista.detallistaAllowanceChargeMonetaryAmountOrPercentageRateBase.INVOICE_VALUE ' detallista.allowanceCharge(0).monetaryAmountOrPercentage.rate.base = Profact.TimbraCFDI33.Complementos.Detallista.detallistaAllowanceChargeMonetaryAmountOrPercentageRateBase.INVOICE_VALUE
detallista.allowanceCharge(0).monetaryAmountOrPercentage.rate.percentage = If(Ventas.DescuentoTC > 0 AndAlso Ventas.SubTotalTC > 0, (Ventas.DescuentoTC * 100) / Ventas.SubTotalTC, 0) ' detallista.allowanceCharge(0).monetaryAmountOrPercentage.rate.percentage = If(Ventas.DescuentoTC > 0 AndAlso Ventas.SubTotalTC > 0, (Ventas.DescuentoTC * 100) / Ventas.SubTotalTC, 0)
Dim articuloCounter As Integer = 0 ' Dim articuloCounter As Integer = 0
For Each concepto As Profact.TimbraCFDI33.ComprobanteConcepto In comprobante.Conceptos ' For Each concepto As Profact.TimbraCFDI33.ComprobanteConcepto In comprobante.Conceptos
articuloCounter = (articuloCounter + 1) ' articuloCounter = (articuloCounter + 1)
Next ' Next
detallista.lineItem = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaLineItem((articuloCounter)) {} ' detallista.lineItem = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaLineItem((articuloCounter)) {}
Dim counter As Integer = 0 ' Dim counter As Integer = 0
For Each concepto As Profact.TimbraCFDI33.ComprobanteConcepto In comprobante.Conceptos ' For Each concepto As Profact.TimbraCFDI33.ComprobanteConcepto In comprobante.Conceptos
detallista.lineItem(counter) = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaLineItem ' detallista.lineItem(counter) = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaLineItem
detallista.lineItem(counter).type = "SimpleInvoiceLineItemType" ' detallista.lineItem(counter).type = "SimpleInvoiceLineItemType"
detallista.lineItem(counter).number = (counter + 1).ToString ' detallista.lineItem(counter).number = (counter + 1).ToString
detallista.lineItem(counter).tradeItemIdentification = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaLineItemTradeItemIdentification ' detallista.lineItem(counter).tradeItemIdentification = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaLineItemTradeItemIdentification
detallista.lineItem(counter).tradeItemIdentification.gtin = comprobante.Conceptos(counter).NoIdentificacion ' detallista.lineItem(counter).tradeItemIdentification.gtin = comprobante.Conceptos(counter).NoIdentificacion
detallista.lineItem(counter).alternateTradeItemIdentification = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaLineItemAlternateTradeItemIdentification(1) {} ' detallista.lineItem(counter).alternateTradeItemIdentification = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaLineItemAlternateTradeItemIdentification(1) {}
detallista.lineItem(counter).alternateTradeItemIdentification(0) = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaLineItemAlternateTradeItemIdentification ' detallista.lineItem(counter).alternateTradeItemIdentification(0) = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaLineItemAlternateTradeItemIdentification
detallista.lineItem(counter).alternateTradeItemIdentification(0).type = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaLineItemAlternateTradeItemIdentificationType ' detallista.lineItem(counter).alternateTradeItemIdentification(0).type = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaLineItemAlternateTradeItemIdentificationType
detallista.lineItem(counter).alternateTradeItemIdentification(0).type = Profact.TimbraCFDI33.Complementos.Detallista.detallistaLineItemAlternateTradeItemIdentificationType.BUYER_ASSIGNED ' detallista.lineItem(counter).alternateTradeItemIdentification(0).type = Profact.TimbraCFDI33.Complementos.Detallista.detallistaLineItemAlternateTradeItemIdentificationType.BUYER_ASSIGNED
detallista.lineItem(counter).tradeItemDescriptionInformation = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaLineItemTradeItemDescriptionInformation ' detallista.lineItem(counter).tradeItemDescriptionInformation = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaLineItemTradeItemDescriptionInformation
If (comprobante.Conceptos(counter).Descripcion.Length > 34) Then ' If (comprobante.Conceptos(counter).Descripcion.Length > 34) Then
detallista.lineItem(counter).tradeItemDescriptionInformation.longText = comprobante.Conceptos(counter).Descripcion.Substring(0, 34) ' detallista.lineItem(counter).tradeItemDescriptionInformation.longText = comprobante.Conceptos(counter).Descripcion.Substring(0, 34)
Else ' Else
detallista.lineItem(counter).tradeItemDescriptionInformation.longText = comprobante.Conceptos(counter).Descripcion ' detallista.lineItem(counter).tradeItemDescriptionInformation.longText = comprobante.Conceptos(counter).Descripcion
End If ' End If
detallista.lineItem(counter).invoicedQuantity = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaLineItemInvoicedQuantity ' detallista.lineItem(counter).invoicedQuantity = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaLineItemInvoicedQuantity
detallista.lineItem(counter).invoicedQuantity.unitOfMeasure = comprobante.Conceptos(counter).Unidad ' detallista.lineItem(counter).invoicedQuantity.unitOfMeasure = comprobante.Conceptos(counter).Unidad
detallista.lineItem(counter).invoicedQuantity.Text = New String((1)) {} ' detallista.lineItem(counter).invoicedQuantity.Text = New String((1)) {}
detallista.lineItem(counter).invoicedQuantity.Text(0) = comprobante.Conceptos(counter).Cantidad.ToString ' detallista.lineItem(counter).invoicedQuantity.Text(0) = comprobante.Conceptos(counter).Cantidad.ToString
detallista.lineItem(counter).aditionalQuantity = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaLineItemAditionalQuantity(1) {} ' detallista.lineItem(counter).aditionalQuantity = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaLineItemAditionalQuantity(1) {}
detallista.lineItem(counter).aditionalQuantity(0) = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaLineItemAditionalQuantity ' detallista.lineItem(counter).aditionalQuantity(0) = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaLineItemAditionalQuantity
detallista.lineItem(counter).aditionalQuantity(0).QuantityType = Profact.TimbraCFDI33.Complementos.Detallista.detallistaLineItemAditionalQuantityQuantityType.NUM_CONSUMER_UNITS ' detallista.lineItem(counter).aditionalQuantity(0).QuantityType = Profact.TimbraCFDI33.Complementos.Detallista.detallistaLineItemAditionalQuantityQuantityType.NUM_CONSUMER_UNITS
detallista.lineItem(counter).aditionalQuantity(0).Text = New String((1)) {} ' detallista.lineItem(counter).aditionalQuantity(0).Text = New String((1)) {}
detallista.lineItem(counter).aditionalQuantity(0).Text(0) = "1" ' detallista.lineItem(counter).aditionalQuantity(0).Text(0) = "1"
detallista.lineItem(counter).grossPrice = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaLineItemGrossPrice ' detallista.lineItem(counter).grossPrice = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaLineItemGrossPrice
detallista.lineItem(counter).grossPrice.Amount = comprobante.Conceptos(counter).ValorUnitario ' detallista.lineItem(counter).grossPrice.Amount = comprobante.Conceptos(counter).ValorUnitario
detallista.lineItem(counter).netPrice = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaLineItemNetPrice ' detallista.lineItem(counter).netPrice = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaLineItemNetPrice
detallista.lineItem(counter).netPrice.Amount = comprobante.Conceptos(counter).ValorUnitario ' detallista.lineItem(counter).netPrice.Amount = comprobante.Conceptos(counter).ValorUnitario
detallista.lineItem(counter).AdditionalInformation = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaLineItemAdditionalInformation ' detallista.lineItem(counter).AdditionalInformation = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaLineItemAdditionalInformation
detallista.lineItem(counter).AdditionalInformation.referenceIdentification = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaLineItemAdditionalInformationReferenceIdentification ' detallista.lineItem(counter).AdditionalInformation.referenceIdentification = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaLineItemAdditionalInformationReferenceIdentification
detallista.lineItem(counter).AdditionalInformation.referenceIdentification.type = Profact.TimbraCFDI33.Complementos.Detallista.detallistaLineItemAdditionalInformationReferenceIdentificationType.ON ' detallista.lineItem(counter).AdditionalInformation.referenceIdentification.type = Profact.TimbraCFDI33.Complementos.Detallista.detallistaLineItemAdditionalInformationReferenceIdentificationType.ON
detallista.lineItem(counter).AdditionalInformation.referenceIdentification.Value = "1587" ' detallista.lineItem(counter).AdditionalInformation.referenceIdentification.Value = "1587"
'Impuestos ' 'Impuestos
Dim tasa As Decimal = 0 ' Dim tasa As Decimal = 0
Dim importeImp As Decimal = 0 ' Dim importeImp As Decimal = 0
Try ' Try
If (Not (comprobante.Impuestos.Traslados) Is Nothing) Then ' If (Not (comprobante.Impuestos.Traslados) Is Nothing) Then
For Each traslado As Profact.TimbraCFDI33.ComprobanteImpuestosTraslado In comprobante.Impuestos.Traslados ' For Each traslado As Profact.TimbraCFDI33.ComprobanteImpuestosTraslado In comprobante.Impuestos.Traslados
tasa = Decimal.Parse(traslado.TasaOCuota) ' tasa = Decimal.Parse(traslado.TasaOCuota)
importeImp = (comprobante.Conceptos(counter).Importe * (tasa / 100)) ' importeImp = (comprobante.Conceptos(counter).Importe * (tasa / 100))
Next ' Next
End If ' End If
Catch ex As System.Exception ' Catch ex As System.Exception
End Try ' End Try
detallista.lineItem(counter).tradeItemTaxInformation = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaLineItemTradeItemTaxInformation(1) {} ' detallista.lineItem(counter).tradeItemTaxInformation = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaLineItemTradeItemTaxInformation(1) {}
detallista.lineItem(counter).tradeItemTaxInformation(0) = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaLineItemTradeItemTaxInformation ' detallista.lineItem(counter).tradeItemTaxInformation(0) = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaLineItemTradeItemTaxInformation
detallista.lineItem(counter).tradeItemTaxInformation(0).taxTypeDescription = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaLineItemTradeItemTaxInformationTaxTypeDescription ' detallista.lineItem(counter).tradeItemTaxInformation(0).taxTypeDescription = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaLineItemTradeItemTaxInformationTaxTypeDescription
detallista.lineItem(counter).tradeItemTaxInformation(0).taxTypeDescription = Profact.TimbraCFDI33.Complementos.Detallista.detallistaLineItemTradeItemTaxInformationTaxTypeDescription.VAT ' detallista.lineItem(counter).tradeItemTaxInformation(0).taxTypeDescription = Profact.TimbraCFDI33.Complementos.Detallista.detallistaLineItemTradeItemTaxInformationTaxTypeDescription.VAT
detallista.lineItem(counter).tradeItemTaxInformation(0).tradeItemTaxAmount = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaLineItemTradeItemTaxInformationTradeItemTaxAmount ' detallista.lineItem(counter).tradeItemTaxInformation(0).tradeItemTaxAmount = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaLineItemTradeItemTaxInformationTradeItemTaxAmount
detallista.lineItem(counter).tradeItemTaxInformation(0).tradeItemTaxAmount.taxPercentage = tasa ' detallista.lineItem(counter).tradeItemTaxInformation(0).tradeItemTaxAmount.taxPercentage = tasa
detallista.lineItem(counter).tradeItemTaxInformation(0).tradeItemTaxAmount.taxAmount = importeImp ' detallista.lineItem(counter).tradeItemTaxInformation(0).tradeItemTaxAmount.taxAmount = importeImp
detallista.lineItem(counter).totalLineAmount = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaLineItemTotalLineAmount ' detallista.lineItem(counter).totalLineAmount = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaLineItemTotalLineAmount
detallista.lineItem(counter).totalLineAmount.grossAmount = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaLineItemTotalLineAmountGrossAmount ' detallista.lineItem(counter).totalLineAmount.grossAmount = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaLineItemTotalLineAmountGrossAmount
detallista.lineItem(counter).totalLineAmount.grossAmount.Amount = comprobante.Conceptos(counter).Importe ' detallista.lineItem(counter).totalLineAmount.grossAmount.Amount = comprobante.Conceptos(counter).Importe
detallista.lineItem(counter).totalLineAmount.netAmount = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaLineItemTotalLineAmountNetAmount ' detallista.lineItem(counter).totalLineAmount.netAmount = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaLineItemTotalLineAmountNetAmount
detallista.lineItem(counter).totalLineAmount.netAmount.Amount = comprobante.Conceptos(counter).Importe ' detallista.lineItem(counter).totalLineAmount.netAmount.Amount = comprobante.Conceptos(counter).Importe
counter = (counter + 1) ' counter = (counter + 1)
Next ' Next
detallista.totalAmount = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaTotalAmount ' detallista.totalAmount = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaTotalAmount
detallista.totalAmount.Amount = comprobante.SubTotal ' detallista.totalAmount.Amount = comprobante.SubTotal
detallista.TotalAllowanceCharge = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaTotalAllowanceCharge(1) {} ' detallista.TotalAllowanceCharge = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaTotalAllowanceCharge(1) {}
detallista.TotalAllowanceCharge(0) = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaTotalAllowanceCharge ' detallista.TotalAllowanceCharge(0) = New Profact.TimbraCFDI33.Complementos.Detallista.detallistaTotalAllowanceCharge
detallista.TotalAllowanceCharge(0).allowanceOrChargeType = Profact.TimbraCFDI33.Complementos.Detallista.detallistaTotalAllowanceChargeAllowanceOrChargeType.ALLOWANCE ' detallista.TotalAllowanceCharge(0).allowanceOrChargeType = Profact.TimbraCFDI33.Complementos.Detallista.detallistaTotalAllowanceChargeAllowanceOrChargeType.ALLOWANCE
detallista.TotalAllowanceCharge(0).Amount = Ventas.DescuentoTC ' detallista.TotalAllowanceCharge(0).Amount = Ventas.DescuentoTC
Dim nombres As System.Xml.Serialization.XmlSerializerNamespaces = New System.Xml.Serialization.XmlSerializerNamespaces ' Dim nombres As System.Xml.Serialization.XmlSerializerNamespaces = New System.Xml.Serialization.XmlSerializerNamespaces
nombres.Add("detallista", "http://www.sat.gob.mx/detallista") ' nombres.Add("detallista", "http://www.sat.gob.mx/detallista")
Dim xmlDetallista As String = Profact.TimbraCFDI.XMLUtilerias.SerializaObjeto(detallista, GetType(Profact.TimbraCFDI33.Complementos.Detallista.detallista), nombres) ' Dim xmlDetallista As String = Profact.TimbraCFDI.XMLUtilerias.SerializaObjeto(detallista, GetType(Profact.TimbraCFDI33.Complementos.Detallista.detallista), nombres)
Dim docDetallista As XmlDocument = New XmlDocument ' Dim docDetallista As XmlDocument = New XmlDocument
docDetallista.LoadXml(xmlDetallista) ' docDetallista.LoadXml(xmlDetallista)
comprobante.DetallistaSpecified = True ' comprobante.DetallistaSpecified = True
LXmlComplementos.Add(docDetallista.DocumentElement) ' LXmlComplementos.Add(docDetallista.DocumentElement)
TieneComplemento = True ' TieneComplemento = True
End If ' End If
#End Region '#End Region
If TieneComplemento Then If TieneComplemento Then
comprobante.Complemento = New Profact.TimbraCFDI33.ComprobanteComplemento comprobante.Complemento = New Profact.TimbraCFDI33.ComprobanteComplemento
@@ -4109,7 +4185,7 @@ Public Class Timbrado
Dim ObjVentas As New ClsVentas() Dim ObjVentas As New ClsVentas()
If ObjVentas.UpdateEstatusFactura(3, FolioFiscal, "", Now, Ventas.CveVenta, CvePAC:=UsuarioActual.Empresa.CvePAC) Then If ObjVentas.UpdateEstatusFactura(3, FolioFiscal, "", Now, Ventas.CveVenta, CvePAC:=UsuarioActual.Empresa.CvePAC, RFCReceptor:=ObjCFDITimbre.Receptor.RFC) Then
Retorno = "" Retorno = ""
Else Else
Retorno = "Error" Retorno = "Error"
@@ -4133,7 +4209,7 @@ Public Class Timbrado
resultadoTimbre.GuardaCodigoBidimensional(RutaCBB, NombreCBB) resultadoTimbre.GuardaCodigoBidimensional(RutaCBB, NombreCBB)
'Genero la addenda Ford 'Genero la addenda Ford
If Ventas.Cliente.Ford_GSDB <> "" Then If Ventas.Cliente IsNot Nothing AndAlso Ventas.Cliente.Ford_GSDB <> "" Then
Dim RutaCadena As String = String.Format("{0}{1}.xml", RutaArchivo, NombreArchivoXML) 'If(UsuarioActual.Empresa.FacturaProduccion, String.Format("{0}XML\{1}\{2}.xml", Ruta, Ventas.SerieFolio), String.Format("{0}XML\{1}\{2}.xml", Ruta, Ventas.TipoDocto, Ventas.SerieFolio)) Dim RutaCadena As String = String.Format("{0}{1}.xml", RutaArchivo, NombreArchivoXML) 'If(UsuarioActual.Empresa.FacturaProduccion, String.Format("{0}XML\{1}\{2}.xml", Ruta, Ventas.SerieFolio), String.Format("{0}XML\{1}\{2}.xml", Ruta, Ventas.TipoDocto, Ventas.SerieFolio))

View File

@@ -2583,12 +2583,11 @@ Partial Class Inventarios_TraspasoAlmacen
ObjFactura.Version = "3.3" ObjFactura.Version = "3.3"
ObjFactura.CveUsuario = UsuarioActual.CveUsuario ObjFactura.CveUsuario = UsuarioActual.CveUsuario
ObjFactura.CveEmpresa = UsuarioActual.CveEmpresa ObjFactura.CveEmpresa = UsuarioActual.CveEmpresa
ObjFactura.TipoCambio = 0 'ObjFactura.TipoCambio = 1
ObjFactura.ConvertirPesos = False ObjFactura.ConvertirPesos = False
ObjFactura.TipoCambio = 0
ObjFactura.CveMoneda = 1 ObjFactura.CveMoneda = 1
ObjFactura.Moneda = GlobalDTMonedas.FiltroPrimeroValor("Moneda", $"CveMoneda = {ObjFactura.CveMoneda} ") ObjFactura.Moneda = GlobalDTMonedas.FiltroPrimeroValor("Moneda", $"CveMoneda = {ObjFactura.CveMoneda} ")
ObjFactura.MonedaSAT = GlobalDTMonedas.FiltroPrimeroValor("AbreviaturaSAT", "CveMoneda = 1") ObjFactura.MonedaSAT = "XXX" 'GlobalDTMonedas.FiltroPrimeroValor("AbreviaturaSAT", "CveMoneda = 1")
ObjFactura.MonedaAbreviatura = GlobalDTMonedas.FiltroPrimeroValor("Abreviatura", $"CveMoneda = {ObjFactura.CveMoneda} ") ObjFactura.MonedaAbreviatura = GlobalDTMonedas.FiltroPrimeroValor("Abreviatura", $"CveMoneda = {ObjFactura.CveMoneda} ")
ObjFactura.TipoDocto = "Tra" ObjFactura.TipoDocto = "Tra"
ObjFactura.RefDocto = "" ObjFactura.RefDocto = ""
@@ -2656,23 +2655,22 @@ Partial Class Inventarios_TraspasoAlmacen
ObjFactura.Inv_CveMovimiento = CveMovimientoTimbrado ObjFactura.Inv_CveMovimiento = CveMovimientoTimbrado
ObjFactura.Timbre = PreParaTimbre(ObjFactura) ObjFactura.Timbre = PreParaTimbreCartaPorte(ObjFactura)
End Sub End Sub
Private Function PreParaTimbre(Obj As Modelos.Factura) As CFDITimbre Private Function PreParaTimbreCartaPorte(Obj As Modelos.Factura) As CFDITimbre
Dim Timbre As New CFDITimbre Dim Timbre As New CFDITimbre
Timbre.Comprobante.TipoComprobante = "T" Timbre.Comprobante.TipoComprobante = "T"
Timbre.Comprobante.Folio = Obj.Folio.ToString Timbre.Comprobante.Folio = Obj.Folio.ToString
Timbre.Comprobante.Serie = Obj.Serie Timbre.Comprobante.Serie = Obj.Serie
Timbre.Comprobante.Fecha = Obj.Fecha Timbre.Comprobante.Fecha = Obj.Fecha
Timbre.Comprobante.FormadePago = Obj.FormaPagoSAT33 Timbre.Comprobante.FormadePago = Obj.FormaPagoSAT33
Timbre.Comprobante.CondicionesdePago = Obj.FormaPago33 Timbre.Comprobante.CondicionesdePago = ""
Timbre.Comprobante.MetodoPago = Obj.ClaveMetodoPagoSAT Timbre.Comprobante.MetodoPago = Obj.ClaveMetodoPagoSAT
Timbre.Comprobante.Subtotal = Obj.SubTotal Timbre.Comprobante.Subtotal = Obj.SubTotal
Timbre.Comprobante.Descuentos = Obj.Descuento Timbre.Comprobante.Descuentos = Obj.Descuento
Timbre.Comprobante.Moneda = Obj.MonedaSAT Timbre.Comprobante.Moneda = "XXX"
Timbre.Comprobante.TipoCambio = If(Obj.CveMoneda = 1, "1", Obj.TipoCambio.ToString) Timbre.Comprobante.TipoCambio = "" ' CONDICIÓN SI LA MONEDA ES 'XXX'
Timbre.Comprobante.Total = Obj.Total
Timbre.Comprobante.LugarExpedicion = Obj.SubProyecto.CP Timbre.Comprobante.LugarExpedicion = Obj.SubProyecto.CP
Timbre.Comprobante.Confirmacion = "" Timbre.Comprobante.Confirmacion = ""
@@ -2690,7 +2688,75 @@ Partial Class Inventarios_TraspasoAlmacen
'DETALLES 'DETALLES
Dim tPS As String = "" Dim tPS As String = ""
Dim CartaPorte As New CFDICartaPorte
CartaPorte.TranspInternac = "No"
CartaPorte.EntradaSalidaMercancia = ""
CartaPorte.ViaEntradaSalida = ""
CartaPorte.TotalDistanciaRecorrida = 12
CartaPorte.Mercancias.PesoBrutoTotal = 0
CartaPorte.Mercancias.UnidadPeso = ""
CartaPorte.Mercancias.CargoporTasacion = 0
CartaPorte.FiguraTransporte.AutoTransporteFederal.PermSCT = "TPAF01"
CartaPorte.FiguraTransporte.AutoTransporteFederal.NumPermisoSCT = "1234567890"
CartaPorte.FiguraTransporte.AutoTransporteFederal.NombreAseg = "GNP"
CartaPorte.FiguraTransporte.AutoTransporteFederal.NumPolizaSeguro = "P123"
CartaPorte.FiguraTransporte.AutoTransporteFederal.Vehiculo.ConfigVehicular = "C2"
CartaPorte.FiguraTransporte.AutoTransporteFederal.Vehiculo.PlacaVM = "WTF757A"
CartaPorte.FiguraTransporte.AutoTransporteFederal.Vehiculo.AnioModeloVM = 2007
Dim DomOrigen As New CFDICartaPorteDomicilio With {.Calle = "calle",
.Colonia = "",
.CP = "45200",
.Estado = "JAL",
.Pais = "MEX",
.Localidad = ""}
Dim DomDestino As New CFDICartaPorteDomicilio With {.Calle = "calle destino",
.Colonia = "",
.CP = "45200",
.Estado = "JAL",
.Pais = "MEX",
.Localidad = ""}
Dim Ubica As New CFDICartaPorteUbicaciones
Ubica.TipoEstacion = "01"
Ubica.DistanciaRecorrida = 6
Ubica.Origen = New CFDICartaPorteUbicacionOrigen With {.RFCRemitente = "CAMJ841219I33",
.FechaHoraSalida = "2021-08-23T11:13:01",
.NombreRemitente = "Empresa",
.Domicilio = DomOrigen}
Ubica.Destino = New CFDICartaPorteUbicacionDestino With {.RFCDestinatario = "CAMJ841219I33",
.FechaHoraProgLlegada = "2021-08-23T11:13:01",
.NombreDestinatario = "Empresa dest",
.Domicilio = DomDestino}
CartaPorte.Ubicaciones.Add(Ubica)
CartaPorte.FiguraTransporte.ClaveTransporte = "01"
CartaPorte.FiguraTransporte.Operadores.Add(New CFDICartaPorteOperador With {.RFCOperador = "CAMJ841219I33",
.Domicilio = Nothing,
.NombreOperador = "juan Perez",
.NumLicencia = "Num Lic",
.NumRegidTribOperador = "",
.ResidenciaFiscalOperador = ""})
'concepto único
Dim concepto As New CFDIConceptos With {.Cantidad = 1,
.Descripcion = "Flete",
.ValorUnitario = 0,
.Importe = 0,
.Descuento = 0L,
.Unidad = "Servicio",
.ClaveUnidad = "E48",
.ClaveProdServ = "78101802",
.Noidentificacion = "",
.CuentaPredial = ""}
Timbre.Conceptos.Add(concepto)
For Each drr As DataRow In Obj.DtDetalle.Rows For Each drr As DataRow In Obj.DtDetalle.Rows
If drr("PS").ToString.Length = 1 Then If drr("PS").ToString.Length = 1 Then
tPS = drr("Obs").ToString tPS = drr("Obs").ToString
Else Else
@@ -2700,32 +2766,32 @@ Partial Class Inventarios_TraspasoAlmacen
tPS = String.Format("{0} {1}", drr("PS"), drr("Obs")) tPS = String.Format("{0} {1}", drr("PS"), drr("Obs"))
End If End If
End If End If
Dim conceptoCarta As New CFDICartaPorteMercancia With {
.BienesTransp = drr("SATClaveProdServ").ToString,
.ClaveSTCC = "01334",
.Cantidad = drr("Cantidad").ToString.ToDecimal,
.Descripción = tPS,
.ClaveUnidad = drr("SATClaveUM").ToString,
.Unidad = drr("UM").ToString,
.Dimensiones = "",
.MaterialPeligroso = "",
.Embalaje = "",
.DescripEmbalaje = "",
.PesoenKg = 203,
.ValorMercancia = drr("PU").ToString.ToDecimal,
.Moneda = "MXN", 'tempral
.FraccionArrancelaria = "",
.UUIDComercioExt = ""
}
'CONDICIONANTE, ESPECIAL
If UsuarioActual.CveEmpresa = 15 Then drr("UM") = "" 'LES COMENTAN QUE NO DEBE IR LA ETIQUETA DE LA UNIDAD EN EL PRODUCTO
Dim concepto As New CFDIConceptos With {.Cantidad = drr("Cantidad").ToString.ToDecimal,
.Descripcion = tPS,
.ValorUnitario = drr("PU").ToString.ToDecimal,
.Importe = drr("TotalImporte").ToString.ToDecimal,
.Descuento = drr("Descuento").ToString.ToDecimal,
.Unidad = drr("UM").ToString,
.ClaveUnidad = drr("SATClaveUM").ToString,
.ClaveProdServ = drr("SATClaveProdServ").ToString,
.Noidentificacion = drr("Noidentificacion").ToString,
.CuentaPredial = drr("CuentaPredial").ToString}
'VERIFICA SUMA SUBTOTALES
If i = Obj.DtDetalle.Rows.Count AndAlso totSubTotal <> concepto.Importe Then 'PROCESO DE AJUSTA DE DECIMALES
concepto.Importe = totSubTotal
End If
totSubTotal = totSubTotal - concepto.Importe totSubTotal = totSubTotal - concepto.Importe
CartaPorte.Mercancias.Mercancias.Add(conceptoCarta)
'SIEMPRE ESTAMOS AGREGANDO EL IVA
'concepto.Impuestos.Add(New CFDIConceptosImpuestos With {.TrasladooRetencion = "T", .Base = concepto.Importe - concepto.Descuento, .TasaOCuota = drr("PorcentajeIVA").ToString.ToDecimal, .Impuesto = "002", .Importe = drr("ImporteIVA").ToString.ToDecimal})
Timbre.Conceptos.Add(concepto)
i += 1 i += 1
Next Next
Timbre.Complementos.CartaPorte = CartaPorte
Return Timbre Return Timbre
End Function End Function
@@ -2783,6 +2849,11 @@ Partial Class Inventarios_TraspasoAlmacen
Dim TmpDTComplementosTimbrado As New DataTable Dim TmpDTComplementosTimbrado As New DataTable
PrepararTimbrado(FM, TmpDT7Eleven, TmpDTComplementosTimbrado) PrepararTimbrado(FM, TmpDT7Eleven, TmpDTComplementosTimbrado)
MensajeAlert.Append("<br/><br/>") MensajeAlert.Append("<br/><br/>")
'If TimbrarFacturaGoCFDIv33(ObjFactura, UsuarioActual, 4) <> "" Then
' MensajeAlert.AppendFormat("<ul><li>-- no timbró-{0}</li></ul>", MensajeErrorCFDI)
'End If
If ObjTimbrado.TimbrarFactura(UsuarioActual, ObjFactura) Then If ObjTimbrado.TimbrarFactura(UsuarioActual, ObjFactura) Then
MensajeAlert.Append("Emitido con exito.") MensajeAlert.Append("Emitido con exito.")
'XML 'XML
@@ -2800,7 +2871,7 @@ Partial Class Inventarios_TraspasoAlmacen
MensajeAlert.AppendFormat("<ul><li><a class=""Texto"" href=""/Compras/PopUpVerFactura.aspx?P={0}"">Descargar Carta Porte</a></li></ul>", Encripta(String.Format("OP=CARPO&CVEMOV={0}", CveMovimientoTimbrado))) MensajeAlert.AppendFormat("<ul><li><a class=""Texto"" href=""/Compras/PopUpVerFactura.aspx?P={0}"">Descargar Carta Porte</a></li></ul>", Encripta(String.Format("OP=CARPO&CVEMOV={0}", CveMovimientoTimbrado)))
Else Else
MensajeAlert.AppendFormat(ObjTimbrado.MensajeErrorCFDI) MensajeAlert.AppendFormat("<ul><li>{0}</li></ul>", ObjTimbrado.MensajeErrorCFDI)
End If End If
End Sub End Sub
@@ -3010,54 +3081,6 @@ Partial Class Inventarios_TraspasoAlmacen
End If End If
End Sub End Sub
Private Function ReadExcelFile(ByVal flatFilePath As String, ByVal firstRowHasHeaders As Boolean) As DataTable
SpreadsheetInfo.SetLicense(ModExtensiones.SerialGemBoxSpreadsheet)
Dim excelFile As ExcelFile = ExcelFile.Load(flatFilePath)
Dim unnamed As Integer = 0
Dim cols As Integer
Dim columns As String()
Dim curRow As Integer = 0
Dim curCol As Integer = 0
Dim dataTable As DataTable = New DataTable()
Dim worksheet As ExcelWorksheet = excelFile.Worksheets(0)
For cols = 0 To worksheet.Rows(0).AllocatedCells.Count - 1
If firstRowHasHeaders Then
If worksheet.Rows(0).Cells(cols).Value IsNot Nothing Then
dataTable.Columns.Add(worksheet.Rows(0).Cells(cols).Value.ToString())
Else
dataTable.Columns.Add("Unnamed Column " & (System.Threading.Interlocked.Increment(unnamed)))
End If
curRow = 1
Else
dataTable.Columns.Add("Column " & (cols + 1))
End If
Next
While curRow < worksheet.Rows.Count
columns = New String(cols - 1) {}
For curCol = 0 To cols - 1
If worksheet.Rows(curRow).Cells(curCol).Value Is Nothing Then
columns(curCol) = ""
Else
columns(curCol) = worksheet.Rows(curRow).Cells(curCol).Value.ToString()
End If
Next
dataTable.Rows.Add(columns)
curRow += 1
End While
Return dataTable
End Function
Public Sub CargarCamiones() Public Sub CargarCamiones()
DdlUnidadCamion.Items.Clear() DdlUnidadCamion.Items.Clear()
Dim ObjInventarios As New ClsInventarios Dim ObjInventarios As New ClsInventarios
@@ -3151,4 +3174,5 @@ Partial Class Inventarios_TraspasoAlmacen
UpDatos.Update() UpDatos.Update()
End If End If
End Sub End Sub
End Class End Class