From 2d4a4ec2d865133508ff8550dd939ea4ab1209bf Mon Sep 17 00:00:00 2001 From: rrene Date: Wed, 27 Dec 2023 19:05:26 -0700 Subject: [PATCH 01/15] -- editar usocfdi no timbradas --- Ventas/Ventas.aspx.vb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Ventas/Ventas.aspx.vb b/Ventas/Ventas.aspx.vb index bbaada359..f3577e617 100644 --- a/Ventas/Ventas.aspx.vb +++ b/Ventas/Ventas.aspx.vb @@ -31860,6 +31860,7 @@ Partial Class Ventas DdlDireccionEnvio.Enabled = True LnkOtraDireccion.Visible = True TxtAtencionA.Enabled = True + TxtDescripcionVenta.Enabled = True TxtFechaVencimientoCotizacion.Enabled = True TxtCantidad.Enabled = True @@ -33627,7 +33628,7 @@ Partial Class Ventas ObjVentas.IniciaTransacSQL() If Not ObjVentas.UpdateObservacionesVenta(Me.CveVenta, UsuarioActual.CveEmpresa, DdlVendedor.SelectedValue.ToEntero(), TxtObsFact.Text, RblPaqueteria.SelectedValue.ToEntero(), TxtCorreoNotificaciones.Text, - TxtObsAlmacen.Text, TxtPedidoContrato.Text, TxtOrdenCompra.Text, TxtFechaPago.Text) Then + TxtObsAlmacen.Text, TxtPedidoContrato.Text, TxtOrdenCompra.Text, TxtFechaPago.Text, DdlUsoCFDI.SelectedValue.ToEntero) Then TieneError = True End If From 161614b687fd83c1a58057ba8a6edfcb36a9fb84 Mon Sep 17 00:00:00 2001 From: rrene Date: Wed, 27 Dec 2023 19:07:35 -0700 Subject: [PATCH 02/15] =?UTF-8?q?-=20correcci=C3=B3n?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Ashx/CargaEventos.ashx | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/Ashx/CargaEventos.ashx b/Ashx/CargaEventos.ashx index cbf40551d..e46aabf4d 100644 --- a/Ashx/CargaEventos.ashx +++ b/Ashx/CargaEventos.ashx @@ -1,12 +1,7 @@ <%@ WebHandler Language="VB" Class="CargaEventos" %> -Option Explicit On +Option Explicit Off Option Strict On -Imports System -Imports System.Web -Imports System.Collections -Imports System.Collections.Generic -Imports System.Web.SessionState Imports System.Data Imports Extensiones @@ -17,8 +12,8 @@ Public Class CargaEventos : Implements IHttpHandler, IRequiresSessionState Public Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest context.Response.ContentType = "text/plain" - Dim CveUsuario = -1 - Dim CveEmpresa = -1 + Dim CveUsuario As Integer = -1 + Dim CveEmpresa As Integer = -1 Dim FI As Date Dim FF As Date @@ -425,7 +420,7 @@ Public Class CargaEventos : Implements IHttpHandler, IRequiresSessionState ReadOnly Property UsuarioActual(ByVal context As HttpContext) As Usuario Get - UsuarioActual = DirectCast(If(context IsNot Nothing, context.Session("UsuarioSIG", Nothing)), Usuario) + UsuarioActual = DirectCast(If(context IsNot Nothing, context.Session("UsuarioSIG"), Nothing), Usuario) End Get End Property From cf1c7a8d589e480505b5858ad81e3644a58821c2 Mon Sep 17 00:00:00 2001 From: rrene Date: Thu, 28 Dec 2023 08:55:43 -0700 Subject: [PATCH 03/15] =?UTF-8?q?--=20implementaci=C3=B3n=20Carta=20Porte?= =?UTF-8?q?=203.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- App_Code/Timbrado.vb | 199 ++++++++++++++++++++++--------------------- 1 file changed, 104 insertions(+), 95 deletions(-) diff --git a/App_Code/Timbrado.vb b/App_Code/Timbrado.vb index 4c6be812c..d129939be 100644 --- a/App_Code/Timbrado.vb +++ b/App_Code/Timbrado.vb @@ -29,7 +29,7 @@ Public Class Timbrado Public Property CancelacionMensaje As String Public Property CancelacionFecha As Date Public Const LigaVerificacionSAT As String = "https://verificacfdi.facturaelectronica.sat.gob.mx/default.aspx" - + Public Const LigaVerificacionSATCCP As String = "https://verificacfdi.facturaelectronica.sat.gob.mx/verificaccp/default.aspx" Public Class AcuseCancelacionSAT Public Property CodigoEstatus As String Public Property EsCancelable As String @@ -2507,103 +2507,34 @@ Public Class Timbrado #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 - - Dim Carta As CFDICartaPorte = ObjCFDITimbre.Complementos.CartaPorte - - ''DATOS GENERALES - cfdi.CartaPorte(Carta.TranspInternac, Carta.EntradaSalidaMercancia, "", Carta.ViaEntradaSalida, Carta.TotalDistanciaRecorrida) - 'cfdi.CartaPorte30("", Carta.TranspInternac, Carta.RegimenAduanero, Carta.EntradaSalidaMercancia, "", Carta.ViaEntradaSalida, Carta.TotalDistanciaRecorrida, Carta.RegistroITSMO, Carta.UbicacionPoloOrigen, Carta.UbicacionPoloDestino) - - 'UBICACIONES - If Carta.Ubicaciones IsNot Nothing AndAlso Carta.Ubicaciones.Count > 0 Then - For Each ubica As CFDICartaPorteUbicacion In Carta.Ubicaciones - 'origen - cfdi.CartaPorteUbicacion(ubica.TipoUbicacion, ubica.IDUbicacion, ubica.RFCRemitenteDestinatario, ubica.NombreRemitenteDestinatario, ubica.NumRegIdTrib, ubica.ResidenciaFiscal, ubica.NumEstacion, ubica.NombreEstacion, ubica.NavegacionTrafico, ubica.FechaHoraSalidaLlegada, ubica.TipoEstacion, ubica.DistanciaRecorrida) - 'cfdi.CartaPorteOrigen(ubica.Origen.IDOrigen, ubica.Origen.RFCRemitente, ubica.Origen.NombreRemitente, ubica.NumRegIdTrib, ubica.Origen.ResidenciaFiscal, ubica.Origen.NumEstacion, ubica.Origen.NombreEstacion, ubica.Origen.NavegacionTrafico, ubica.Origen.FechaHoraSalida) - cfdi.CartaPorteDomicilio(ubica.Domicilio.Calle, ubica.Domicilio.NumeroExterior, ubica.Domicilio.NumeroInterior, ubica.Domicilio.Colonia, ubica.Domicilio.Localidad, ubica.Domicilio.Referencia, ubica.Domicilio.Municipio, ubica.Domicilio.Estado, ubica.Domicilio.Pais, ubica.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 - If concep.ValorMercancia <= 0 Then concep.Moneda = "" - cfdi.CartaPorteMercancia(concep.BienesTransp, concep.ClaveSTCC, concep.Descripción, concep.Cantidad, concep.ClaveUnidad, concep.Unidad, concep.Dimensiones, concep.MaterialPeligroso, concep.ClaveMaterialPeligroso, If(concep.ClaveMaterialPeligroso <> "", concep.Embalaje, ""), If(concep.ClaveMaterialPeligroso <> "", concep.DescripEmbalaje, ""), concep.PesoenKg, concep.ValorMercancia, concep.Moneda, concep.FraccionArrancelaria, concep.UUIDComercioExt) - For Each transp As CFDICartaPorteMercanciaTransporta In concep.MercanciasCantidadTransporta - cfdi.CartaPorteCantidadTransporta(transp.Cantidad, transp.IDOrigen, transp.IDDestino, transp.CvesTransportes) - Next - Next - End If - End If - ' - If Carta.FiguraTransporte IsNot Nothing Then - - If Carta.FiguraTransporte.AutoTransporte IsNot Nothing Then - - cfdi.CartaPorteAutotransporte(Carta.FiguraTransporte.AutoTransporte.PermisoSCT, Carta.FiguraTransporte.AutoTransporte.NumPermisoSCT) - - cfdi.CartaPorteIdentificacionVehicular(Carta.FiguraTransporte.AutoTransporte.Vehiculo.ConfigVehicular, Carta.FiguraTransporte.AutoTransporte.Vehiculo.PlacaVM, Carta.FiguraTransporte.AutoTransporte.Vehiculo.AnioModeloVM) - - cfdi.CartaPorteSeguros(Carta.FiguraTransporte.AutoTransporte.NombreSeguroResponsabilidadCivil, Carta.FiguraTransporte.AutoTransporte.PolizaSeguroResponsabilidadCivil, - Carta.FiguraTransporte.AutoTransporte.NombreSeguroMedioAmbiente, Carta.FiguraTransporte.AutoTransporte.PolizaSeguroMedioAmbiente, - Carta.FiguraTransporte.AutoTransporte.NombreSeguroCarga, Carta.FiguraTransporte.AutoTransporte.PolizaSeguroCarga, - Carta.FiguraTransporte.AutoTransporte.PrimaSeguro) - - If Carta.FiguraTransporte.AutoTransporte.Remolques IsNot Nothing AndAlso Carta.FiguraTransporte.AutoTransporte.Remolques.Count > 0 Then - For Each concep As CFDICartaPorteRemolque In Carta.FiguraTransporte.AutoTransporte.Remolques - cfdi.CartaPorteRemolque(concep.SubTipoRemolque, concep.Placa) - Next - - End If - End If - - If Carta.FiguraTransporte.Operadores IsNot Nothing AndAlso Carta.FiguraTransporte.Operadores.Count > 0 Then - For Each concep As CFDICartaPorteOperador In Carta.FiguraTransporte.Operadores - cfdi.CartaPorteTiposFigura(concep.TipoFigura, concep.RFCFigura, concep.NumLicencia, concep.NombreFigura, concep.NumRegidTribFigura, If(concep.ResidenciaFiscalFigura <> "MEX", concep.ResidenciaFiscalFigura, "")) - If concep.TipoFigura.Contiene("02", "03") Then ' “02”- Propietario o “03” -Arrendador - cfdi.CartaPortePartesTransporte("PT01") - cfdi.CartaPortePartesTransporteDomicilio(concep.Domicilio.Calle, concep.Domicilio.NumeroExterior, concep.Domicilio.NumeroInterior, concep.Domicilio.Colonia, concep.Domicilio.Localidad, concep.Domicilio.Referencia, concep.Domicilio.Municipio, concep.Domicilio.Estado, concep.Domicilio.Pais, concep.Domicilio.CP) - End If - Next - End If - - End If - - End If - 'If ObjCFDITimbre.Complementos.CartaPorte IsNot Nothing Then ' Dim Carta As CFDICartaPorte = ObjCFDITimbre.Complementos.CartaPorte ' ''DATOS GENERALES - ' cfdi.CartaPorte30("", Carta.TranspInternac, Carta.RegimenAduanero, Carta.EntradaSalidaMercancia, "", Carta.ViaEntradaSalida, Carta.TotalDistanciaRecorrida, Carta.RegistroISTMO, Carta.UbicacionPoloOrigen, Carta.UbicacionPoloDestino) + ' cfdi.CartaPorte(Carta.TranspInternac, Carta.EntradaSalidaMercancia, "", Carta.ViaEntradaSalida, Carta.TotalDistanciaRecorrida) + ' 'cfdi.CartaPorte30("", Carta.TranspInternac, Carta.RegimenAduanero, Carta.EntradaSalidaMercancia, "", Carta.ViaEntradaSalida, Carta.TotalDistanciaRecorrida, Carta.RegistroITSMO, Carta.UbicacionPoloOrigen, Carta.UbicacionPoloDestino) ' 'UBICACIONES ' If Carta.Ubicaciones IsNot Nothing AndAlso Carta.Ubicaciones.Count > 0 Then ' For Each ubica As CFDICartaPorteUbicacion In Carta.Ubicaciones ' 'origen - ' cfdi.CartaPorte30Ubicacion(ubica.TipoUbicacion, ubica.IDUbicacion, ubica.RFCRemitenteDestinatario, ubica.NombreRemitenteDestinatario, ubica.NumRegIdTrib, ubica.ResidenciaFiscal, ubica.NumEstacion, ubica.NombreEstacion, ubica.NavegacionTrafico, ubica.FechaHoraSalidaLlegada, ubica.TipoEstacion, ubica.DistanciaRecorrida) + ' cfdi.CartaPorteUbicacion(ubica.TipoUbicacion, ubica.IDUbicacion, ubica.RFCRemitenteDestinatario, ubica.NombreRemitenteDestinatario, ubica.NumRegIdTrib, ubica.ResidenciaFiscal, ubica.NumEstacion, ubica.NombreEstacion, ubica.NavegacionTrafico, ubica.FechaHoraSalidaLlegada, ubica.TipoEstacion, ubica.DistanciaRecorrida) ' 'cfdi.CartaPorteOrigen(ubica.Origen.IDOrigen, ubica.Origen.RFCRemitente, ubica.Origen.NombreRemitente, ubica.NumRegIdTrib, ubica.Origen.ResidenciaFiscal, ubica.Origen.NumEstacion, ubica.Origen.NombreEstacion, ubica.Origen.NavegacionTrafico, ubica.Origen.FechaHoraSalida) - ' cfdi.CartaPorte30Domicilio(ubica.Domicilio.Calle, ubica.Domicilio.NumeroExterior, ubica.Domicilio.NumeroInterior, ubica.Domicilio.Colonia, ubica.Domicilio.Localidad, ubica.Domicilio.Referencia, ubica.Domicilio.Municipio, ubica.Domicilio.Estado, ubica.Domicilio.Pais, ubica.Domicilio.CP) + ' cfdi.CartaPorteDomicilio(ubica.Domicilio.Calle, ubica.Domicilio.NumeroExterior, ubica.Domicilio.NumeroInterior, ubica.Domicilio.Colonia, ubica.Domicilio.Localidad, ubica.Domicilio.Referencia, ubica.Domicilio.Municipio, ubica.Domicilio.Estado, ubica.Domicilio.Pais, ubica.Domicilio.CP) ' Next ' End If ' 'MERCANCIAS ' If Carta.Mercancias IsNot Nothing Then - ' cfdi.CartaPorte30Mercancias(Carta.Mercancias.PesoBrutoTotal, Carta.Mercancias.UnidadPeso, Carta.Mercancias.PesoNetoTotal, Carta.Mercancias.NumTotalMercancias, Carta.Mercancias.CargoporTasacion, Carta.Mercancias.LogisticaInversaRecoleccionDevolucion) + ' 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 ' If concep.ValorMercancia <= 0 Then concep.Moneda = "" - ' cfdi.CartaPorte30Mercancia(concep.BienesTransp, concep.ClaveSTCC, concep.Descripción, concep.Cantidad, concep.ClaveUnidad, concep.Unidad, concep.Dimensiones, concep.MaterialPeligroso, concep.ClaveMaterialPeligroso, If(concep.ClaveMaterialPeligroso <> "", concep.Embalaje, ""), If(concep.ClaveMaterialPeligroso <> "", concep.DescripEmbalaje, ""), - ' concep.SectorCOFEPRIS, concep.NombreIngredienteActivo, concep.NomQuimico, concep.DenominacionGenericaProd, concep.DenominacionDistintivaProd, concep.Fabricante, concep.FechaCaducidad, concep.LoteMedicamento, concep.FormaFarmaceutica, concep.CondicionesEspTransp, concep.RegistroSanitarioFolioAutorizacion, concep.PermisoImportacion, concep.FolioImpoVUCEM, concep.NumCAS, concep.RazonSocialEmpImp, concep.NumRegSanPlagCOFEPRIS, concep.DatosFabricante, concep.DatosFormulador, concep.DatosMaquilador, concep.UsoAutorizado, - ' concep.PesoenKg, concep.ValorMercancia, concep.Moneda, concep.FraccionArrancelaria, concep.UUIDComercioExt) + ' cfdi.CartaPorteMercancia(concep.BienesTransp, concep.ClaveSTCC, concep.Descripción, concep.Cantidad, concep.ClaveUnidad, concep.Unidad, concep.Dimensiones, concep.MaterialPeligroso, concep.ClaveMaterialPeligroso, If(concep.ClaveMaterialPeligroso <> "", concep.Embalaje, ""), If(concep.ClaveMaterialPeligroso <> "", concep.DescripEmbalaje, ""), concep.PesoenKg, concep.ValorMercancia, concep.Moneda, concep.FraccionArrancelaria, concep.UUIDComercioExt) ' For Each transp As CFDICartaPorteMercanciaTransporta In concep.MercanciasCantidadTransporta - ' cfdi.CartaPorte30CantidadTransporta(transp.Cantidad, transp.IDOrigen, transp.IDDestino, transp.CvesTransportes) + ' cfdi.CartaPorteCantidadTransporta(transp.Cantidad, transp.IDOrigen, transp.IDDestino, transp.CvesTransportes) ' Next ' Next ' End If @@ -2613,18 +2544,18 @@ Public Class Timbrado ' If Carta.FiguraTransporte.AutoTransporte IsNot Nothing Then - ' cfdi.CartaPorte30Autotransporte(Carta.FiguraTransporte.AutoTransporte.PermisoSCT, Carta.FiguraTransporte.AutoTransporte.NumPermisoSCT) + ' cfdi.CartaPorteAutotransporte(Carta.FiguraTransporte.AutoTransporte.PermisoSCT, Carta.FiguraTransporte.AutoTransporte.NumPermisoSCT) - ' cfdi.CartaPorte30IdentificacionVehicular(Carta.FiguraTransporte.AutoTransporte.Vehiculo.ConfigVehicular, Carta.FiguraTransporte.AutoTransporte.Vehiculo.PesoBrutoVehicular, Carta.FiguraTransporte.AutoTransporte.Vehiculo.PlacaVM, Carta.FiguraTransporte.AutoTransporte.Vehiculo.AnioModeloVM) + ' cfdi.CartaPorteIdentificacionVehicular(Carta.FiguraTransporte.AutoTransporte.Vehiculo.ConfigVehicular, Carta.FiguraTransporte.AutoTransporte.Vehiculo.PlacaVM, Carta.FiguraTransporte.AutoTransporte.Vehiculo.AnioModeloVM) - ' cfdi.CartaPorte30Seguros(Carta.FiguraTransporte.AutoTransporte.NombreSeguroResponsabilidadCivil, Carta.FiguraTransporte.AutoTransporte.PolizaSeguroResponsabilidadCivil, + ' cfdi.CartaPorteSeguros(Carta.FiguraTransporte.AutoTransporte.NombreSeguroResponsabilidadCivil, Carta.FiguraTransporte.AutoTransporte.PolizaSeguroResponsabilidadCivil, ' Carta.FiguraTransporte.AutoTransporte.NombreSeguroMedioAmbiente, Carta.FiguraTransporte.AutoTransporte.PolizaSeguroMedioAmbiente, ' Carta.FiguraTransporte.AutoTransporte.NombreSeguroCarga, Carta.FiguraTransporte.AutoTransporte.PolizaSeguroCarga, ' Carta.FiguraTransporte.AutoTransporte.PrimaSeguro) ' If Carta.FiguraTransporte.AutoTransporte.Remolques IsNot Nothing AndAlso Carta.FiguraTransporte.AutoTransporte.Remolques.Count > 0 Then ' For Each concep As CFDICartaPorteRemolque In Carta.FiguraTransporte.AutoTransporte.Remolques - ' cfdi.CartaPorte30Remolque(concep.SubTipoRemolque, concep.Placa) + ' cfdi.CartaPorteRemolque(concep.SubTipoRemolque, concep.Placa) ' Next ' End If @@ -2632,10 +2563,10 @@ Public Class Timbrado ' If Carta.FiguraTransporte.Operadores IsNot Nothing AndAlso Carta.FiguraTransporte.Operadores.Count > 0 Then ' For Each concep As CFDICartaPorteOperador In Carta.FiguraTransporte.Operadores - ' cfdi.CartaPorte30TiposFigura(concep.TipoFigura, concep.RFCFigura, concep.NumLicencia, concep.NombreFigura, concep.NumRegidTribFigura, If(concep.ResidenciaFiscalFigura <> "MEX", concep.ResidenciaFiscalFigura, "")) + ' cfdi.CartaPorteTiposFigura(concep.TipoFigura, concep.RFCFigura, concep.NumLicencia, concep.NombreFigura, concep.NumRegidTribFigura, If(concep.ResidenciaFiscalFigura <> "MEX", concep.ResidenciaFiscalFigura, "")) ' If concep.TipoFigura.Contiene("02", "03") Then ' “02”- Propietario o “03” -Arrendador - ' cfdi.CartaPorte30PartesTransporte("PT01") - ' cfdi.CartaPorte30PartesTransporteDomicilio(concep.Domicilio.Calle, concep.Domicilio.NumeroExterior, concep.Domicilio.NumeroInterior, concep.Domicilio.Colonia, concep.Domicilio.Localidad, concep.Domicilio.Referencia, concep.Domicilio.Municipio, concep.Domicilio.Estado, concep.Domicilio.Pais, concep.Domicilio.CP) + ' cfdi.CartaPortePartesTransporte("PT01") + ' cfdi.CartaPortePartesTransporteDomicilio(concep.Domicilio.Calle, concep.Domicilio.NumeroExterior, concep.Domicilio.NumeroInterior, concep.Domicilio.Colonia, concep.Domicilio.Localidad, concep.Domicilio.Referencia, concep.Domicilio.Municipio, concep.Domicilio.Estado, concep.Domicilio.Pais, concep.Domicilio.CP) ' End If ' Next ' End If @@ -2644,6 +2575,70 @@ Public Class Timbrado 'End If + If ObjCFDITimbre.Complementos.CartaPorte IsNot Nothing Then + + Dim Carta As CFDICartaPorte = ObjCFDITimbre.Complementos.CartaPorte + + ''DATOS GENERALES + cfdi.CartaPorte30("", Carta.TranspInternac, Carta.RegimenAduanero, Carta.EntradaSalidaMercancia, "", Carta.ViaEntradaSalida, Carta.TotalDistanciaRecorrida, Carta.RegistroISTMO, Carta.UbicacionPoloOrigen, Carta.UbicacionPoloDestino) + + 'UBICACIONES + If Carta.Ubicaciones IsNot Nothing AndAlso Carta.Ubicaciones.Count > 0 Then + For Each ubica As CFDICartaPorteUbicacion In Carta.Ubicaciones + 'origen + cfdi.CartaPorte30Ubicacion(ubica.TipoUbicacion, ubica.IDUbicacion, ubica.RFCRemitenteDestinatario, ubica.NombreRemitenteDestinatario, ubica.NumRegIdTrib, ubica.ResidenciaFiscal, ubica.NumEstacion, ubica.NombreEstacion, ubica.NavegacionTrafico, ubica.FechaHoraSalidaLlegada, ubica.TipoEstacion, ubica.DistanciaRecorrida) + 'cfdi.CartaPorteOrigen(ubica.Origen.IDOrigen, ubica.Origen.RFCRemitente, ubica.Origen.NombreRemitente, ubica.NumRegIdTrib, ubica.Origen.ResidenciaFiscal, ubica.Origen.NumEstacion, ubica.Origen.NombreEstacion, ubica.Origen.NavegacionTrafico, ubica.Origen.FechaHoraSalida) + cfdi.CartaPorte30Domicilio(ubica.Domicilio.Calle, ubica.Domicilio.NumeroExterior, ubica.Domicilio.NumeroInterior, ubica.Domicilio.Colonia, ubica.Domicilio.Localidad, ubica.Domicilio.Referencia, ubica.Domicilio.Municipio, ubica.Domicilio.Estado, ubica.Domicilio.Pais, ubica.Domicilio.CP) + Next + End If + + 'MERCANCIAS + If Carta.Mercancias IsNot Nothing Then + cfdi.CartaPorte30Mercancias(Carta.Mercancias.PesoBrutoTotal, Carta.Mercancias.UnidadPeso, Carta.Mercancias.PesoNetoTotal, Carta.Mercancias.NumTotalMercancias, Carta.Mercancias.CargoporTasacion, Carta.Mercancias.LogisticaInversaRecoleccionDevolucion) + If Carta.Mercancias IsNot Nothing AndAlso Carta.Mercancias.Mercancias.Count > 0 Then + For Each concep As CFDICartaPorteMercancia In Carta.Mercancias.Mercancias + If concep.ValorMercancia <= 0 Then concep.Moneda = "" + cfdi.CartaPorte30Mercancia(concep.BienesTransp, concep.ClaveSTCC, concep.Descripción, concep.Cantidad, concep.ClaveUnidad, concep.Unidad, concep.Dimensiones, concep.MaterialPeligroso, concep.ClaveMaterialPeligroso, If(concep.ClaveMaterialPeligroso <> "", concep.Embalaje, ""), If(concep.ClaveMaterialPeligroso <> "", concep.DescripEmbalaje, ""), + concep.SectorCOFEPRIS, concep.NombreIngredienteActivo, concep.NomQuimico, concep.DenominacionGenericaProd, concep.DenominacionDistintivaProd, concep.Fabricante, concep.FechaCaducidad, concep.LoteMedicamento, concep.FormaFarmaceutica, concep.CondicionesEspTransp, concep.RegistroSanitarioFolioAutorizacion, concep.PermisoImportacion, concep.FolioImpoVUCEM, concep.NumCAS, concep.RazonSocialEmpImp, concep.NumRegSanPlagCOFEPRIS, concep.DatosFabricante, concep.DatosFormulador, concep.DatosMaquilador, concep.UsoAutorizado, + concep.PesoenKg, concep.ValorMercancia, concep.Moneda, concep.FraccionArrancelaria, concep.UUIDComercioExt) + For Each transp As CFDICartaPorteMercanciaTransporta In concep.MercanciasCantidadTransporta + cfdi.CartaPorte30CantidadTransporta(transp.Cantidad, transp.IDOrigen, transp.IDDestino, transp.CvesTransportes) + Next + Next + End If + End If + ' + If Carta.FiguraTransporte IsNot Nothing Then + + If Carta.FiguraTransporte.AutoTransporte IsNot Nothing Then + + cfdi.CartaPorte30Autotransporte(Carta.FiguraTransporte.AutoTransporte.PermisoSCT, Carta.FiguraTransporte.AutoTransporte.NumPermisoSCT) + + cfdi.CartaPorte30IdentificacionVehicular(Carta.FiguraTransporte.AutoTransporte.Vehiculo.ConfigVehicular, Carta.FiguraTransporte.AutoTransporte.Vehiculo.PesoBrutoVehicular, Carta.FiguraTransporte.AutoTransporte.Vehiculo.PlacaVM, Carta.FiguraTransporte.AutoTransporte.Vehiculo.AnioModeloVM) + + cfdi.CartaPorte30Seguros(Carta.FiguraTransporte.AutoTransporte.NombreSeguroResponsabilidadCivil, Carta.FiguraTransporte.AutoTransporte.PolizaSeguroResponsabilidadCivil, + Carta.FiguraTransporte.AutoTransporte.NombreSeguroMedioAmbiente, Carta.FiguraTransporte.AutoTransporte.PolizaSeguroMedioAmbiente, + Carta.FiguraTransporte.AutoTransporte.NombreSeguroCarga, Carta.FiguraTransporte.AutoTransporte.PolizaSeguroCarga, + Carta.FiguraTransporte.AutoTransporte.PrimaSeguro) + + If Carta.FiguraTransporte.AutoTransporte.Remolques IsNot Nothing AndAlso Carta.FiguraTransporte.AutoTransporte.Remolques.Count > 0 Then + For Each concep As CFDICartaPorteRemolque In Carta.FiguraTransporte.AutoTransporte.Remolques + cfdi.CartaPorte30Remolque(concep.SubTipoRemolque, concep.Placa) + Next + End If + End If + + If Carta.FiguraTransporte.Operadores IsNot Nothing AndAlso Carta.FiguraTransporte.Operadores.Count > 0 Then + For Each concep As CFDICartaPorteOperador In Carta.FiguraTransporte.Operadores + cfdi.CartaPorte30TiposFigura(concep.TipoFigura, concep.RFCFigura, concep.NumLicencia, concep.NombreFigura, concep.NumRegidTribFigura, If(concep.ResidenciaFiscalFigura <> "MEX", concep.ResidenciaFiscalFigura, "")) + If concep.TipoFigura.Contiene("02", "03") Then ' “02”- Propietario o “03” -Arrendador + cfdi.CartaPorte30PartesTransporte("PT01") + cfdi.CartaPorte30PartesTransporteDomicilio(concep.Domicilio.Calle, concep.Domicilio.NumeroExterior, concep.Domicilio.NumeroInterior, concep.Domicilio.Colonia, concep.Domicilio.Localidad, concep.Domicilio.Referencia, concep.Domicilio.Municipio, concep.Domicilio.Estado, concep.Domicilio.Pais, concep.Domicilio.CP) + End If + Next + End If + End If + End If #End Region @@ -2652,7 +2647,6 @@ Public Class Timbrado If ObjCFDITimbre.Comprobante.TipoComprobante = "P" Then - cfdi.Pago20Totales(ObjCFDITimbre.ComplementoPagos20.TotalRetencionesIVA, ObjCFDITimbre.ComplementoPagos20.TotalRetencionesISR, ObjCFDITimbre.ComplementoPagos20.TotalRetencionesIEPS, @@ -2975,15 +2969,12 @@ Public Class Timbrado sw.Start() 'Verifica el error If cfdi.Mensaje = "" Then - - Dim FolioFiscal As String Dim SelloCfdi As String UUID = cfdi.CfdiInfo.UUID - FolioFiscal = cfdi.CfdiInfo.UUID SelloCfdi = cfdi.CfdiInfo.SelloCfdi - If FolioFiscal <> "" Then + If UUID <> "" Then cfdi.EscribirXml(RutaArchivo & NombreArchivoXML & ".xml") @@ -2997,7 +2988,7 @@ Public Class Timbrado Using ObjNomina2 As New ClsNominas() - If ObjNomina2.UpdateEstatusNomNominas(3, CvePACEspecial, FolioFiscal, ObjCFDITimbre.Comprobante.Fecha, ("01/01/2000").ToDate, ObjCFDITimbre.Nomina.CveNomina, 0, 0, 0, 0, 0, isFiniquito:=Ventas.Timbre.IStimbreFiniquito) Then + If ObjNomina2.UpdateEstatusNomNominas(3, CvePACEspecial, UUID, ObjCFDITimbre.Comprobante.Fecha, ("01/01/2000").ToDate, ObjCFDITimbre.Nomina.CveNomina, 0, 0, 0, 0, 0, isFiniquito:=Ventas.Timbre.IStimbreFiniquito) Then Retorno = "" Else Retorno = "Error" @@ -3007,7 +2998,7 @@ Public Class Timbrado Case "T" Dim objGrales As New ClsGenerales - If objGrales.UpdateTimbreTimbrado(Ventas.CveTimbre, FolioFiscal, ObjCFDITimbre.Comprobante.Fecha, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, UsuarioActual.Empresa.CvePAC, "4.0") Then + If objGrales.UpdateTimbreTimbrado(Ventas.CveTimbre, UUID, ObjCFDITimbre.Comprobante.Fecha, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, UsuarioActual.Empresa.CvePAC, "4.0") Then Retorno = "" Else Retorno = "Error" @@ -3015,7 +3006,7 @@ Public Class Timbrado objGrales.Dispose() Using ObjInv As New ClsInventarios() - If ObjInv.UpdateMovimientoTimbrado(Ventas.Inv_CveMovimiento, 1, FolioFiscal, MinFecha) Then + If ObjInv.UpdateMovimientoTimbrado(Ventas.Inv_CveMovimiento, 1, UUID, MinFecha) Then Retorno = "" Else Retorno = "Error" @@ -3030,7 +3021,7 @@ Public Class Timbrado Using ObjVentas As New ClsVentas() - If ObjVentas.UpdateEstatusFactura(3, FolioFiscal, "", ObjCFDITimbre.Comprobante.Fecha, Ventas.CveVenta, CvePAC:=CvePACEspecial, RFCReceptor:=ObjCFDITimbre.Receptor.RFC, CFDIVersion:="4.0") Then + If ObjVentas.UpdateEstatusFactura(3, UUID, "", ObjCFDITimbre.Comprobante.Fecha, Ventas.CveVenta, CvePAC:=CvePACEspecial, RFCReceptor:=ObjCFDITimbre.Receptor.RFC, CFDIVersion:="4.0") Then Retorno = "" Else Retorno = "Error" @@ -3055,12 +3046,30 @@ Public Class Timbrado Try Dim RutaCBB As String = $"{UsuarioActual.Empresa.Ruta}CBB\{ObjCFDITimbre.Comprobante.SerieFolio}.jpg" Dim qrCode As New GoFac.QrCode() - Dim bCBB As Byte() = qrCode.GenerarQrCode($"{LigaVerificacionSAT}?re={UsuarioActual.Empresa.RFC}&rr={ObjCFDITimbre.Receptor.RFC}&tt={String.Format("{0,12:F6}", ObjCFDITimbre.Comprobante.Total).Trim()}&id={FolioFiscal}&fe={SelloCfdi.Substring(SelloCfdi.Length - 8, 8)}") + Dim bCBB As Byte() = qrCode.GenerarQrCode($"{LigaVerificacionSAT}?re={UsuarioActual.Empresa.RFC}&rr={ObjCFDITimbre.Receptor.RFC}&tt={String.Format("{0,12:F6}", ObjCFDITimbre.Comprobante.Total).Trim()}&id={UUID}&fe={SelloCfdi.Substring(SelloCfdi.Length - 8, 8)}") File.WriteAllBytes(RutaCBB, bCBB) bCBB = Nothing Catch ex As Exception OnError("Ocurrió un error al generar el QR", ex) End Try + + 'genero el nuevo qr, de carta porte + + If ObjCFDITimbre.Complementos.CartaPorte IsNot Nothing Then + + Dim Carta As CFDICartaPorte = ObjCFDITimbre.Complementos.CartaPorte + Try + + Dim RutaCBB As String = $"{UsuarioActual.Empresa.Ruta}CBB\{ObjCFDITimbre.Comprobante.SerieFolio}_CCP.jpg" + Dim qrCode As New GoFac.QrCode() + Dim bCBB As Byte() = qrCode.GenerarQrCode($"{LigaVerificacionSATCCP}?IdCCP={cfdi.CfdiInfo.IdCCP}&FechaOrig={Carta.Ubicaciones(0).FechaHoraSalidaLlegada}&FechaTimb={cfdi.CfdiInfo.FechaTimbrado}") + File.WriteAllBytes(RutaCBB, bCBB) + bCBB = Nothing + Catch ex As Exception + OnError("Ocurrió un error al generar el QR", ex) + End Try + End If + Retorno = "" Else Retorno = "No se pudo timbrar ante el SAT. UUID no generado." @@ -3336,7 +3345,7 @@ Public Class Timbrado Else Retorno = result.mensaje MensajeErrorCFDI = result.codigo - 'If cfdi.Xml <> "" Then cfdi.EscribirXML(cfdi.Xml, RutaArchivo, NombreArchivoXML) + cfdi.EscribirXml(RutaArchivo & "\" & NombreArchivoXML) End If End If Else From 07e8e52adf79b4f818a77ff83e01925f14d00cb5 Mon Sep 17 00:00:00 2001 From: rrene Date: Thu, 28 Dec 2023 08:55:54 -0700 Subject: [PATCH 04/15] -- cambio Carta porte 3.0 --- Bin/GoCfdi.dll | Bin 527360 -> 527360 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/Bin/GoCfdi.dll b/Bin/GoCfdi.dll index 732b2112351e82e0783e4165edb5058cd38ab679..eaa213d53e852d488580d2b2507b13275afae4b4 100644 GIT binary patch delta 62929 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 Date: Thu, 28 Dec 2023 08:56:05 -0700 Subject: [PATCH 05/15] -editar uso cfdi, no timbrada --- App_Code/ClsVentas.vb | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/App_Code/ClsVentas.vb b/App_Code/ClsVentas.vb index d4b858485..5bb2678d5 100644 --- a/App_Code/ClsVentas.vb +++ b/App_Code/ClsVentas.vb @@ -1722,7 +1722,7 @@ Public Class ClsVentas Optional EsGarantia As Integer = -1, Optional CveCondicionesPago As Integer = -1, Optional EsDistribuidor As Integer = -1, Optional CveClasificacion2 As Integer = -1, Optional ServicioDomicilio As Integer = -1) As Boolean Dim Retorno As Boolean = False - DataAdapter("PA_Vta_GetRepPS33") + DataAdapter("PA_Vta_GetRepPS") With SqlAdapter.SelectCommand.Parameters .Add("@CveProyecto", SqlDbType.Int).Value = CveProyecto @@ -1756,7 +1756,6 @@ Public Class ClsVentas .Add("@EsDistribuidor", SqlDbType.Int).Value = EsDistribuidor .Add("@CveClasificacion2", SqlDbType.Int).Value = CveClasificacion2 .Add("@ServicioDomicilio", SqlDbType.Int).Value = ServicioDomicilio - End With Try From 51e96b1b81b27cf9e3cb5de3d3311b078f7248bc Mon Sep 17 00:00:00 2001 From: rrene Date: Thu, 28 Dec 2023 08:56:23 -0700 Subject: [PATCH 06/15] --mejora en acentos --- Ventas/RepProductosServiciosDetalle.aspx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Ventas/RepProductosServiciosDetalle.aspx b/Ventas/RepProductosServiciosDetalle.aspx index a1e8b1050..02cb489fd 100644 --- a/Ventas/RepProductosServiciosDetalle.aspx +++ b/Ventas/RepProductosServiciosDetalle.aspx @@ -466,7 +466,7 @@ - + @@ -477,7 +477,7 @@ - + From 3fe85a58414c2287f87e9fb39343a87da9b0b70d Mon Sep 17 00:00:00 2001 From: rrene Date: Thu, 28 Dec 2023 08:56:33 -0700 Subject: [PATCH 07/15] - --- OS/Asignaciones.aspx.vb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OS/Asignaciones.aspx.vb b/OS/Asignaciones.aspx.vb index 9a19eea31..f7ad121bc 100644 --- a/OS/Asignaciones.aspx.vb +++ b/OS/Asignaciones.aspx.vb @@ -385,7 +385,7 @@ Partial Class OS_Asignaciones TmpDTOS = ObjOS.DtResultados End If - If ObjOS.GetDetalleMateriales(-1, CveOS, 1, False) Then + If ObjOS.GetDetalleMateriales(-1, CveOS) Then TmpDTMaterialesOS = ObjOS.DtResultados End If Dim lrds As New List(Of ReportDataSource) From 864bef6c2dbd28988bf5b29c22c27f16b6da890f Mon Sep 17 00:00:00 2001 From: rakcsle Date: Thu, 28 Dec 2023 19:13:11 -0700 Subject: [PATCH 08/15] SMS Sub Especialidades, Genrar almacen a cliente en fnc 404 fnc 578 --- App_Code/ClsInventarios.vb | 5 + App_Code/ClsPaginas.vb | 2 + App_Code/ClsVentas.vb | 108 ++++++- .../Grales/Formatos/CartaPorteTimbrado.rdlc | 91 ++++-- .../CatEspecialidadesSubEspecialidades.aspx | 269 ++++++++++++++++ ...CatEspecialidadesSubEspecialidades.aspx.vb | 291 ++++++++++++++++++ Ventas/CatMedicos.aspx | 26 +- Ventas/CatMedicos.aspx.vb | 35 ++- Ventas/Clientes.aspx.vb | 56 +++- Ventas/ProductosServicios.aspx.vb | 17 +- 10 files changed, 863 insertions(+), 37 deletions(-) create mode 100644 Ventas/CatEspecialidadesSubEspecialidades.aspx create mode 100644 Ventas/CatEspecialidadesSubEspecialidades.aspx.vb diff --git a/App_Code/ClsInventarios.vb b/App_Code/ClsInventarios.vb index dfb881de8..7cc8c0f96 100644 --- a/App_Code/ClsInventarios.vb +++ b/App_Code/ClsInventarios.vb @@ -153,6 +153,8 @@ Public Class ClsInventarios End Get End Property + Public Property CveAlmacenAgregado As Integer = -1 + #End Region Sub New(Optional TransaccionCompartida As SqlTransaction = Nothing) @@ -376,6 +378,7 @@ Public Class ClsInventarios Public Function AddAlmacen(Almacen As String, CveTipoAlmacen As Integer, Modalidad As Integer, CveUsuario As Integer, CveEmpresa As Integer, Inventariable As Byte, CveSubProyecto As Integer, Optional Orden As Integer = -1, Optional CveCuenta As Integer = -1, Optional CveUsuarioAutoriza As Integer = -1, Optional CveAlmacenVirtual As Integer = -1) As Boolean Dim Retorno As Boolean = False + CveAlmacenAgregado = -1 DataAdapter("PA_Inv_AlmacenesAdd") @@ -391,10 +394,12 @@ Public Class ClsInventarios .Add("@CveCuenta", SqlDbType.Int).Value = CveCuenta .Add("@CveUsuarioAutoriza", SqlDbType.Int).Value = CveUsuarioAutoriza .Add("@CveAlmacenVirtual", SqlDbType.Int).Value = CveAlmacenVirtual + .Add("@CveAlmacenAgregado", SqlDbType.Int).Direction = ParameterDirection.Output End With Try SqlAdapter.Fill(Data) + CveAlmacenAgregado = SqlAdapter.SelectCommand.Parameters("@CveAlmacenAgregado").Value.ToString.ToEntero Retorno = True Catch Ex1 As SqlException If Ex1.Message.Contains("Número: 2627;") Then diff --git a/App_Code/ClsPaginas.vb b/App_Code/ClsPaginas.vb index b152bf2b2..f297736c9 100644 --- a/App_Code/ClsPaginas.vb +++ b/App_Code/ClsPaginas.vb @@ -9461,6 +9461,8 @@ Public Class ClsPaginas PaginaDict.Add("/Ventas/CatMedicos.aspx".ToUpper(), 1343) PaginaDict.Add("/Ventas/CatProcedimientos.aspx".ToUpper(), 1344) PaginaDict.Add("/Ventas/CatProcedimientoDetalle.aspx".ToUpper(), 1344) + PaginaDict.Add("/Ventas/CatEspecialidadesSubEspecialidades.aspx".ToUpper(), 1346) + diff --git a/App_Code/ClsVentas.vb b/App_Code/ClsVentas.vb index 5bb2678d5..645ca383a 100644 --- a/App_Code/ClsVentas.vb +++ b/App_Code/ClsVentas.vb @@ -6005,7 +6005,8 @@ Public Class ClsVentas Public Function AddMedico(Medico As String, CedulaProfesional As String, FechaNacimiento As Date, Notas As String, DiasAtencion As String, Horario As String, Lugar As String, Estatus As Boolean, CveUsuario As Integer, - CveEmpresa As Integer, Telefono As String, Mail As String, CveMedicoEspecialidad As Integer, Celular As String, Consultorio As String) As Boolean + CveEmpresa As Integer, Telefono As String, Mail As String, CveMedicoEspecialidad As Integer, Celular As String, Consultorio As String, Optional CveMedicoSubEspecialidad As Integer = -1, + Optional Torre As String = "-1") As Boolean Dim Retorno As Boolean = False DataAdapter("PA_Vta_MedicosAdd") @@ -6026,6 +6027,8 @@ Public Class ClsVentas .Add("@CveMedicoEspecialidad", SqlDbType.Int).Value = CveMedicoEspecialidad .Add("@Celular", SqlDbType.VarChar).Value = Celular .Add("@Consultorio", SqlDbType.VarChar).Value = Consultorio + .Add("@CveMedicoSubEspecialidad", SqlDbType.Int).Value = CveMedicoSubEspecialidad + .Add("@Torre", SqlDbType.VarChar).Value = Torre End With @@ -6040,7 +6043,8 @@ Public Class ClsVentas End Function Public Function UpdateMedico(CveMedico As Integer, Medico As String, CedulaProfesional As String, FechaNacimiento As Date, Notas As String, DiasAtencion As String, Horario As String, Lugar As String, Estatus As Boolean, CveUsuario As Integer, - CveEmpresa As Integer, Telefono As String, Mail As String, CveMedicoEspecialidad As Integer, Celular As String, Consultorio As String) As Boolean + CveEmpresa As Integer, Telefono As String, Mail As String, CveMedicoEspecialidad As Integer, Celular As String, Consultorio As String, Optional CveMedicoSubEspecialidad As Integer = -1, + Optional Torre As String = "-1") As Boolean Dim Retorno As Boolean = False DataAdapter("PA_Vta_MedicosUpdate") @@ -6061,6 +6065,9 @@ Public Class ClsVentas .Add("@CveMedicoEspecialidad", SqlDbType.Int).Value = CveMedicoEspecialidad .Add("@Celular", SqlDbType.VarChar).Value = Celular .Add("@Consultorio", SqlDbType.VarChar).Value = Consultorio + .Add("@CveMedicoSubEspecialidad", SqlDbType.Int).Value = CveMedicoSubEspecialidad + .Add("@Torre", SqlDbType.VarChar).Value = Torre + End With Try @@ -6093,7 +6100,7 @@ Public Class ClsVentas #End Region -#Region "ESPECIALIDADES" +#Region "E S P E C I A L I D A D E S" Public Function GetMedicosEspecialidades(CveMedicoEspecialidad As Integer, CveEmpresa As Integer, Estatus As Integer) As Boolean @@ -6182,6 +6189,101 @@ Public Class ClsVentas #End Region + + + +#Region "S U B E S P E C I A L I D A D E S" + + Public Function GetMedicosSubEspecialidades(CveMedicoSubEspecialidad As Integer, CveEmpresa As Integer, Estatus As Integer) As Boolean + + Dim Retorno As Boolean = False + DataAdapter("PA_Vta_MedicosSubEspecialidadesGet") + + With SqlAdapter.SelectCommand.Parameters + .Add("@CveMedicoSubEspecialidad", SqlDbType.Int).Value = CveMedicoSubEspecialidad + .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + .Add("@Estatus", SqlDbType.Int).Value = Estatus + End With + + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al obtener las SubEspecialidades.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End Try + + Return Retorno + + End Function + + + + + Public Function AddMedicoSubEspecialidad(CveMedicoEspecialidad As Integer, SubEspecialidad As String, Estatus As Boolean, CveUsuario As Integer, CveEmpresa As Integer) As Boolean + + Dim Retorno As Boolean = False + DataAdapter("PA_Vta_MedicosSubEspecialidadesAdd") + + With SqlAdapter.SelectCommand.Parameters + .Add("@CveMedicoEspecialidad", SqlDbType.Int).Value = CveMedicoEspecialidad + .Add("@SubEspecialidad", SqlDbType.VarChar).Value = SubEspecialidad + .Add("@Estatus", SqlDbType.Bit).Value = Estatus + .Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario + .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + End With + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al guardar la SubEspecialidad.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End Try + Return Retorno + + End Function + + Public Function UpdateMedicoSubEspecialidad(CveMedicoSubEspecialidad As Integer, CveMedicoEspecialidad As Integer, SubEspecialidad As String, Estatus As Boolean, CveUsuario As Integer, CveEmpresa As Integer) As Boolean + + Dim Retorno As Boolean = False + DataAdapter("PA_Vta_MedicosSubEspecialidadesUpdate") + With SqlAdapter.SelectCommand.Parameters + .Add("@CveMedicoSubEspecialidad", SqlDbType.Int).Value = CveMedicoSubEspecialidad + .Add("@CveMedicoEspecialidad", SqlDbType.Int).Value = CveMedicoEspecialidad + .Add("@SubEspecialidad", SqlDbType.VarChar).Value = SubEspecialidad + .Add("@Estatus", SqlDbType.Bit).Value = Estatus + .Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario + .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + End With + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al actualizar la SubEspecialidad.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End Try + Return Retorno + + End Function + + Public Function RemoveMedicoSubEspecialidad(CveMedicoSubEspecialidad As Integer, CveEmpresa As Integer) As Boolean + + Dim Retorno As Boolean = False + DataAdapter("PA_Vta_MedicosSubEspecialidadesRemove") + With SqlAdapter.SelectCommand.Parameters + .Add("@CveMedicoSubEspecialidad", SqlDbType.Int).Value = CveMedicoSubEspecialidad + .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + End With + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al eliminar la SubEspecialidad.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End Try + Return Retorno + + End Function + +#End Region + + #Region "PRODEDIMIENTOS" Public Function GetProcedimientos(CveProcedimiento As Integer, CveEmpresa As Integer, Estatus As Integer) As Boolean diff --git a/Empresas/Grales/Formatos/CartaPorteTimbrado.rdlc b/Empresas/Grales/Formatos/CartaPorteTimbrado.rdlc index 6ca7807c7..90d4df7c6 100644 --- a/Empresas/Grales/Formatos/CartaPorteTimbrado.rdlc +++ b/Empresas/Grales/Formatos/CartaPorteTimbrado.rdlc @@ -511,7 +511,7 @@ - DESCRIPCIÓN + Descripción - - - - - =Parameters!CartaPorteVersion.Value + - 8.09222in + 8.29014in + + true + true + + + + + Versión Carte Porte + + + + + + + + + + + + + =Parameters!CartaPorteVersion.Value + + + + + + + Textbox54 + 1.70113cm + 14.9272cm + 1.14493cm + 4.50596cm + 5 + + + 2pt + 2pt + 2pt + 2pt + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =Parameters!Lote.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =Parameters!FechaCad.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + Database + =Parameters!QR.Value + image/bmp + FitProportional + 0.03175cm + 2.31083cm + 2.42605cm + 3 + + + + + + true + true + + + + + LOTE: + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + F. ELABORACIÓN: + + + + + + 2pt + 2pt + 2pt + 2pt + + + + Embedded + Logo + FitProportional + 1.5468cm + 8.2016cm + 0.74287cm + 1.52823cm + 6 + + + + + + 0.92351in + + + + + 3.83898in + + 2.5cm + 10cm + 0.02cm + 0.02cm + 0.02cm + 0.02cm + + + + + + + Textbox7 + + + + Black + + 1pt + + + Black + + 1pt + + #9cc3e5 + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Código + + + + + + + Textbox9 + + + + Black + + 1pt + + + Black + + 1pt + + #9cc3e5 + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + UM + + + + + + + Textbox41 + + + + Black + + 1pt + + + Black + + 1pt + + #9cc3e5 + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Descripción + + + + + + + Textbox11 + + + + Black + + 1pt + + + Black + + 1pt + + #9cc3e5 + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Observaciones + + + + + + + Textbox1 + + + + Black + + 1pt + + + Black + + 1pt + + #9cc3e5 + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Lote + + + + + + + Textbox6 + + + + Black + + 1pt + + + Black + + 1pt + + #9cc3e5 + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Fecha Elaboración + + + + + + + Textbox2 + + + + Black + + 1pt + + + Black + + 1pt + + #9cc3e5 + 2pt + 2pt + 2pt + 2pt + + + + + + + + 0.36717cm + + + + + true + true + + + + + =Fields!Cantidad.Value + + + + + + + Cantidad + + + 2pt + 2pt + =IIf(RowNumber(Nothing)=1,"1pt","0pt") + + + + + + + + true + true + + + + + =Fields!Codigo.Value + + + + + + + Codigo + + + 2pt + 2pt + =IIf(RowNumber(Nothing)=1,"1pt","0pt") + + + + + + + + true + true + + + + + =Fields!UnidadMedida.Value + + + + + + + UnidadMedida + + + 2pt + 2pt + =IIf(RowNumber(Nothing)=1,"1pt","0pt") + + + + + + + + true + true + + + + + =Fields!PS.Value + + + + + + + PS + + + 2pt + 2pt + =IIf(RowNumber(Nothing)=1,"1pt","0pt") + + + + + + + + true + true + + + + + =Fields!Observaciones.Value + + + + + + + Observaciones + + + 2pt + 2pt + =IIf(RowNumber(Nothing)=1,"1pt","0pt") + + + + + + + + true + true + + + + + =Fields!Lote.Value + + + + + + + Lote + + + 2pt + 2pt + =IIf(RowNumber(Nothing)=1,"1pt","0pt") + + + + + + + + true + true + + + + + =Fields!FechaCaducidad.Value + + + + + + + FechaCaducidad + + + 2pt + 2pt + =IIf(RowNumber(Nothing)=1,"1pt","0pt") + + + + + + + + + + + + + + + + + + + + + + + After + + + + + + + DsInventarios + 0.17639cm + 0.07216cm + 0.80842cm + 20.17404cm + + + + + + 0.5625in + + + + + + true + true + + + + + SMS SMART MEDICAL SOLUTIONS + + + + + + + Textbox2 + 0.07023cm + 4.60107cm + 0.67056cm + 8.54466cm + 1 + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + SSM1908213A0 +NEBRASKA 157, Col. NAPOLES +BENITO JUAREZ +C.P. 03810 +CIUDAD DE MEXICO + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =Parameters!Concepto.Value + + + + + + + Textbox2 + 0.07023cm + 13.67036cm + 0.38833cm + 6.57584cm + 3 + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Folio + + + + + + + Textbox12 + 0.59015cm + 15.91632cm + 0.44478cm + 4.32987cm + 4 + + + #9cc3e5 + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =Parameters!Folio.Value + + + + + + + Textbox12 + 1.03493cm + 15.91632cm + 0.44478cm + 4.32987cm + 5 + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Fecha + + + + + + + Textbox12 + 1.47971cm + 15.91633cm + 0.44478cm + 4.32987cm + 6 + + + #9cc3e5 + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =Parameters!Fecha.Value + + + + + + + Textbox12 + 1.92449cm + 15.91632cm + 0.44478cm + 4.32987cm + 7 + + + 2pt + 2pt + 2pt + 2pt + + + + + + true + true + + + + + Factura: + + + + =Parameters!FacturaProveedor.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + + + + + Proveedor: + + + + =IIF(Parameters!RazonSocialOC.Value = "",IIF(Parameters!NombreProveedor.Value = "",Parameters!RazonSocial.Value,Parameters!NombreProveedor.Value),Parameters!RazonSocialOC.Value) + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Almacén: + + + + =Parameters!Almacen.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + 2.92068cm + 0.02658cm + 1.09768cm + 20.21962cm + 8 + + + + + + + + + + + 5.61174cm + true + true + + + true + true + + + + + =Parameters!Observaciones.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + 1.37639cm + 0cm + 20.24619cm + 1 + + + + + + 0.17639cm + 0.07216cm + 0cm + 20.17403cm + 2 + + + + + + true + true + + + + + Observaciones: + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =Parameters!NombreRecibio.Value + + + + + + + Textbox21 + 1.87056cm + 1.61869cm + 0.63528cm + 7.11779cm + 4 + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + ___________________________________ + + + + + + Nombre y Firma + + + + + + + Textbox21 + 3.52368cm + 1.61869cm + 0.90367cm + 7.11779cm + 5 + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Recibió + + + + + + + Textbox22 + 1.55278cm + 1.62495cm + 0.6cm + 7.11153cm + 6 + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + _________________________________ + + + + + + Firma + + + + + + + Textbox21 + 3.52368cm + 11.92782cm + 0.90367cm + 7.11779cm + 7 + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Entregó + + + + + + + Textbox22 + 1.55278cm + 11.92782cm + 0.6cm + 7.11779cm + 8 + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Usuario: + + + + + + + + =Parameters!UsuarioImprimio.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Fecha Impresión: + + + + + + + + =Globals!ExecutionTime + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + ="Página " & Globals.PageNumber & " de " & Globals.TotalPages + + + + + + + Textbox35 + 5.09763cm + 17.61867cm + 0.41981cm + 2.5cm + 11 + + + 2pt + 2pt + 2pt + 2pt + + + + 4.95652cm + 0.03606cm + 0cm + 20.40011cm + 12 + + true + + + + + + + + + + + 27.94cm + 21.59cm + 0.5cm + 0.5cm + 1cm + 1cm + 0.13cm + + + + + + + Textbox7 + + + + Black + + 1pt + + + Black + + 1pt + + #9cc3e5 + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Código + + + + + + + Textbox9 + + + + Black + + 1pt + + + Black + + 1pt + + #9cc3e5 + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + UM + + + + + + + Textbox55 + + + + Black + + 1pt + + + Black + + 1pt + + #9cc3e5 + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Descripción + + + + + + + Textbox11 + + + + Black + + 1pt + + + Black + + 1pt + + #9cc3e5 + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Lote + + + + + + + Textbox13 + + + + Black + + 1pt + + + Black + + 1pt + + #9cc3e5 + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Fecha Elaboracion + + + + + + + Textbox1 + + + + Black + + 1pt + + + Black + + 1pt + + #9cc3e5 + 2pt + 2pt + 2pt + 2pt + + + + + + + + 0.36717cm + + + + + true + true + + + + + =Fields!Cantidad.Value + + + + + + + Cantidad + + + 2pt + 2pt + =IIf(RowNumber(Nothing)=1,"1pt","0pt") + + + + + + + + true + true + + + + + =Fields!Codigo.Value + + + + + + + Codigo + + + 2pt + 2pt + =IIf(RowNumber(Nothing)=1,"1pt","0pt") + + + + + + + + true + true + + + + + =Fields!UnidadMedida.Value + + + + + + + UnidadMedida + + + 2pt + 2pt + =IIf(RowNumber(Nothing)=1,"1pt","0pt") + + + + + + + + true + true + + + + + =Fields!PS.Value + + + + + + + + + + + true + true + + + + + =Fields!Lote.Value + + + + + + 2pt + 2pt + =IIf(RowNumber(Nothing)=1,"1pt","0pt") + + + + + + + + true + true + + + + + =Fields!FechaCaducidad.Value + + + + + + 2pt + 2pt + =IIf(RowNumber(Nothing)=1,"1pt","0pt") + + + + + + + + + + + + + + + + + + + + + + After + + + + + + + DsInventarios + 0.17639cm + 0.07701cm + 0.83488cm + 19.71019cm + + + + + + 0.58708in + + + + + + true + true + + + + + SSM1908213A0 +NEBRASKA 157, Col. NAPOLES +BENITO JUAREZ +C.P. 03810 +CIUDAD DE MEXICO + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =Parameters!Concepto.Value + + + + + + + Textbox2 + 0.12668cm + 13.21139cm + 0.38833cm + 6.57584cm + 2 + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Folio + + + + + + + Textbox12 + 0.6466cm + 15.45735cm + 0.44478cm + 4.32987cm + 3 + + + #9cc3e5 + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =Parameters!Folio.Value + + + + + + + Textbox12 + 1.09138cm + 15.45735cm + 0.44478cm + 4.32987cm + 4 + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Fecha + + + + + + + Textbox12 + 1.53616cm + 15.45736cm + 0.44478cm + 4.32987cm + 5 + + + #9cc3e5 + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =Parameters!Fecha.Value + + + + + + + Textbox12 + 1.98094cm + 15.45735cm + 0.44478cm + 4.32987cm + 6 + + + 2pt + 2pt + 2pt + 2pt + + + + + + true + true + + + + + Almacén: + + + + =Parameters!Almacen.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + 3.05042cm + 0.07701cm + 0.49294cm + 19.7102cm + 7 + + + + + + true + true + + + + + SMS SMART MEDICAL SOLUTIONS + + + + + + + Textbox2 + 0.12668cm + 4.49034cm + 0.67056cm + 8.54466cm + 8 + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + + 6.20815cm + true + true + + + true + true + + + + + Observaciones: + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =Parameters!Observaciones.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + 1.68944cm + 0.07701cm + 0cm + 19.7102cm + 2 + + + + + + 0.22486cm + 0.07701cm + 0cm + 19.7102cm + 3 + + + + + + true + true + + + + + =Parameters!NombreEntrego.Value + + + + + + + Textbox21 + 2.34441cm + 1.26513cm + 0.63528cm + 7.11779cm + 4 + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + ___________________________________ + + + + + + Nombre y Firma + + + + + + + Textbox21 + 3.99753cm + 1.26513cm + 0.90367cm + 7.11779cm + 5 + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Entregó + + + + + + + Textbox22 + 2.02663cm + 1.27139cm + 0.6cm + 7.11153cm + 6 + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =Parameters!NombreRecibio.Value + + + + + + + Textbox21 + 2.34441cm + 11.57426cm + 0.63528cm + 7.11779cm + 7 + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + _________________________________ + + + + + + Nombre y Firma + + + + + + + Textbox21 + 3.99753cm + 11.57426cm + 0.90367cm + 7.11779cm + 8 + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Recibió + + + + + + + Textbox22 + 2.02663cm + 11.57426cm + 0.6cm + 7.11779cm + 9 + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Usuario: + + + + =Parameters!UsuarioImprimio.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Fecha Impresión: + + + + =Parameters!FechaImpresion.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + ="Página " & Globals.PageNumber & " de " & Globals.TotalPages + + + + + + + Textbox35 + 5.5362cm + 17.28722cm + 0.45509cm + 2.5cm + 12 + + + 2pt + 2pt + 2pt + 2pt + + + + 5.43036cm + 0cm + 19.78722cm + 13 + + + + + + + + + + 27.94cm + 21.59cm + 0.5cm + 0.5cm + 1cm + 1cm + 0.13cm + + + + + + + Textbox1 + + + + Black + + 1pt + + + Black + + 1pt + + #9cc3e5 + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + + + + + Código + + + + + + + Textbox3 + + + + Black + + 1pt + + + Black + + 1pt + + #9cc3e5 + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + + + + + U.M. + + + + + + + + + + + + + + + + Textbox7 + + + + Black + + 1pt + + + Black + + 1pt + + #9cc3e5 + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + + + + + Descripción + + + + + + + Textbox5 + + + + + + + + + #9cc3e5 + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + + + + + Lote + + + + + + + Textbox8 + + + + Black + + 1pt + + + Black + + 1pt + + #9cc3e5 + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Fecha Elaboracion + + + + + + + Textbox16 + + + + Black + + 1pt + + + Black + + 1pt + + #9cc3e5 + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Observaciones + + + + + + + Textbox12 + + + + Black + + 1pt + + + Black + + 1pt + + #9cc3e5 + 2pt + 2pt + 2pt + 2pt + + + + + + + + 0.4095cm + + + + + true + true + + + + + =Fields!Cantidad.Value + + + + + + + Cantidad + + + Bottom + 2pt + 2pt + =IIf(rownumber(nothing) = 1, "2pt", "0pt") + + + + + + + + true + true + + + + + =Fields!Codigo.Value + + + + + + + Codigo + + + Bottom + 2pt + 2pt + =IIf(rownumber(nothing) = 1, "2pt", "0pt") + + + + + + + + true + true + + + + + =Fields!UnidadMedida.Value + + + + + + + UnidadMedida + + + Bottom + 2pt + 2pt + =IIf(rownumber(nothing) = 1, "2pt", "0pt") + + + + + + + + true + true + true + + + + + =Fields!PS.Value + + + + + + + PS + + + Bottom + 2pt + 2pt + =IIf(rownumber(nothing) = 1, "2pt", "0pt") + + + + + + + + true + true + + + + + =Fields!Lote.Value + + + + + + + Lote + + + Bottom + 2pt + 2pt + =IIf(rownumber(nothing) = 1, "2pt", "0pt") + + + + + + + + true + true + + + + + =Fields!FechaCaducidad.Value + + + + + + + FechaCaducidad + + + Bottom + 2pt + 2pt + =IIf(rownumber(nothing) = 1, "2pt", "0pt") + + + + + + + + true + true + + + + + =Fields!Observaciones.Value + + + + + + + Observaciones + + + Bottom + 2pt + 2pt + =IIf(rownumber(nothing) = 1, "2pt", "0pt") + + + + + + + + + + + + + + + + + + + + + + + After + + + + + + + DsInventarios + 0.14111cm + 0.10068cm + 0.84327cm + 20.3247cm + + + + + + 0.43055in + + + + + + true + true + + + + + SMS SMART MEDICAL SOLUTIONS + + + + + + + Textbox2 + 0.07163cm + 4.74215cm + 0.38833cm + 8.54466cm + 1 + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + SSM1908213A0 +NEBRASKA 157, Col. NAPOLES +BENITO JUAREZ +C.P. 03810 +CIUDAD DE MEXICO + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =Microsoft.VisualBasic.Interaction.iif(Parameters!CveConcepto.Value = 8, "AVISO", "ENTRADA") & " DE TRASLADO " + + + + + + + Textbox2 + 0.07163cm + 13.61141cm + 0.38833cm + 6.81397cm + 3 + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Folio + + + + + + + Textbox12 + 0.88084cm + 16.09549cm + 0.44478cm + 4.32987cm + 4 + + + #9cc3e5 + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =Parameters!Folio.Value + + + + + + + Textbox12 + 1.32562cm + 16.09549cm + 0.44478cm + 4.32987cm + 5 + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Fecha + + + + + + + Textbox12 + 1.7704cm + 16.0955cm + 0.44478cm + 4.32987cm + 6 + + + #9cc3e5 + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =Parameters!Fecha.Value + + + + + + + Textbox12 + 2.21518cm + 16.09549cm + 0.44478cm + 4.32987cm + 7 + + + 2pt + 2pt + 2pt + 2pt + + + + + + true + true + + + + + =IIf(Parameters!CveConcepto.Value = 8, "Almacén Origen:", "Almacén que recibe:") + + + + + + + + =Parameters!AlmacenOrigen.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =IIf(Parameters!CveConcepto.Value = 8, "Almacén Destino:", "Almacén que envía:") + + + + + + + + =Parameters!AlmacenDestino.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Detalles del Movimiento: + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =Parameters!DireccionOrigen.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =Parameters!DireccionDestino.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + 2.70907cm + 2.01145cm + 20.32792cm + 8 + + + + + + true + true + + + + + =iif(Parameters!CveConcepto.Value = 8, "Carga Privada", " ") + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + + 5.83773cm + true + true + + + true + true + + + + + Observaciones: + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =Parameters!Observaciones.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =Parameters!ResponsableCarga.Value + + + + + + + Textbox21 + 3.28266cm + 3.14986cm + 0.50243cm + 5.79375cm + 2 + + =iif(Parameters!CveConcepto.Value = 9,true,false) + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =Parameters!ResponsableRecibio.Value + + + + + + + Textbox21 + 3.28266cm + 11.86467cm + 0.50243cm + 5.78664cm + 3 + + =iif(Parameters!CveConcepto.Value = 9,true,false) + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + ___________________________ + + + + + + + + + Nombre y Firma + + + + + + + Textbox21 + 3.56875cm + 3.15781cm + 1.2cm + 5.78664cm + 4 + + =iif(Parameters!CveConcepto.Value = 9,true,false) + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + ___________________________ + + + + + + + + + Nombre y Firma + + + + + + + Textbox21 + 3.5682cm + 11.87177cm + 1.2cm + 5.78664cm + 5 + + =iif(Parameters!CveConcepto.Value = 9,true,false) + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Envió + + + + + + + Textbox22 + 1.97831cm + 3.15781cm + 0.6cm + 5.78664cm + 6 + + =iif(Parameters!CveConcepto.Value = 9,true,false) + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =Parameters!Accion.Value + + + + + + + Textbox22 + 1.97831cm + 11.87177cm + 0.6cm + 5.78664cm + 7 + + =iif(Parameters!CveConcepto.Value = 9,true,false) + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =IIF(Parameters!NombreAccion.Value = "","",Parameters!NombreAccion.Value) + + + + Textbox21 + 2.35606cm + 7.50017cm + 0.63528cm + 5.78664cm + 8 + + =iif(Parameters!CveConcepto.Value = 8, True, False) + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + ___________________________ + + + + + + + + + Nombre y Firma + + + + + + + Textbox21 + 3.5682cm + 7.50727cm + 1.2cm + 5.78664cm + 9 + + =iif(Parameters!CveConcepto.Value = 8, True, False) + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =Parameters!Accion.Value + + + + + + + Textbox22 + 1.97831cm + 7.50727cm + 0.6cm + 5.78664cm + 10 + + =iif(Parameters!CveConcepto.Value = 8, True, False) + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Usuario: + + + + + + + + =Parameters!UsuarioImprimio.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Fecha Impresión: + + + + =Parameters!FechaImpresion.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + 1.80136cm + 0.13678cm + 0cm + 20.28859cm + 13 + + + + + + 0.31558cm + 0.13678cm + 0cm + 20.28859cm + 14 + + + + + + 5.17097cm + 0.10068cm + 0cm + 20.3247cm + 15 + + + + + + true + true + + + + + ="Página " & Globals.PageNumber & " de " & Globals.TotalPages + + + + + + + Textbox10 + 5.31209cm + 17.60787cm + 0.41981cm + 2.55292cm + 16 + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + 27.94cm + 21.59cm + 0.5cm + 0.5cm + 1cm + 1cm + 0.13cm +