Option Explicit On Option Strict On Imports System.Activities.Statements Imports System.Data Imports System.Data.SqlClient Imports System.IO Imports Extensiones Imports Microsoft.Reporting.WebForms Partial Class RepContratoDetalle Inherits ClsPaginas #Region "Propiedades" Private Property CveContrato As Integer Get Return CType(ViewState("CveContrato"), Integer) End Get Set(value As Integer) ViewState("CveContrato") = value End Set End Property Private Property ArchivoUpdate As String Get Return ViewState("ArchivoUpdate").ToString End Get Set(value As String) ViewState("ArchivoUpdate") = value End Set End Property Private Property CveContratoTipo As Integer Get Return CType(ViewState("CveContratoTipo"), Integer) End Get Set(value As Integer) ViewState("CveContratoTipo") = value End Set End Property Private Property CveContratoEstatus As Integer Get Return CType(ViewState("CveContratoEstatus"), Integer) End Get Set(value As Integer) ViewState("CveContratoEstatus") = value End Set End Property Private Property CveMasivo As Integer Get Return CType(ViewState("CveMasivo"), Integer) End Get Set(value As Integer) ViewState("CveMasivo") = value End Set End Property Private Property CveViajePasajero As Integer Get Return CType(ViewState("CveViajePasajero"), Integer) End Get Set(value As Integer) ViewState("CveViajePasajero") = value End Set End Property Private Property Contrato As DataTable Get Return CType(ViewState("Contrato"), DataTable) End Get Set(value As DataTable) ViewState("Contrato") = value End Set End Property Private Property ViajeActual As DataTable Get Return CType(ViewState("ViajeActual"), DataTable) End Get Set(value As DataTable) ViewState("ViajeActual") = value End Set End Property Private Property SubProyecto As String Get Return CType(ViewState("SubProyecto"), String) End Get Set(value As String) ViewState("SubProyecto") = value End Set End Property Private Property AsientoSeleccionado As String Get Return ViewState("AsientoSeleccionado").ToString() End Get Set(value As String) ViewState("AsientoSeleccionado") = value End Set End Property Private Property TelefonoEmpresa As String Get Return ViewState("TelefonoEmpresa").ToString() End Get Set(value As String) ViewState("TelefonoEmpresa") = value End Set End Property Private Property CveVentaRemision As Integer Get If ViewState("CveVentaRemision") Is Nothing Then ViewState("CveVentaRemision") = -1 End If Return ViewState("CveVentaRemision").ToString.ToEntero End Get Set(value As Integer) ViewState("CveVentaRemision") = value End Set End Property Private Property CveSubProyectoOriginal As Integer Get If ViewState("CveSubProyectoOriginal") Is Nothing Then ViewState("CveSubProyectoOriginal") = -1 End If Return ViewState("CveSubProyectoOriginal").ToString.ToEntero End Get Set(value As Integer) ViewState("CveSubProyectoOriginal") = value End Set End Property Private Property CveMonedaOriginal As Integer Get If ViewState("CveMonedaOriginal") Is Nothing Then ViewState("CveMonedaOriginal") = -1 End If Return ViewState("CveMonedaOriginal").ToString.ToEntero End Get Set(value As Integer) ViewState("CveMonedaOriginal") = value End Set End Property Private Property CveClienteOriginal As Integer Get If ViewState("CveClienteOriginal") Is Nothing Then ViewState("CveClienteOriginal") = -1 End If Return ViewState("CveClienteOriginal").ToString.ToEntero End Get Set(value As Integer) ViewState("CveClienteOriginal") = value End Set End Property Private Property ImporteOrigial As Decimal Get If ViewState("ImporteOrigial") Is Nothing Then ViewState("ImporteOrigial") = 0D End If Return ViewState("ImporteOrigial").ToString.ToDecimal End Get Set(value As Decimal) ViewState("ImporteOrigial") = value End Set End Property Private Property DescripcionOriginal As String Get If ViewState("DescripcionOriginal") Is Nothing Then ViewState("DescripcionOriginal") = "" End If Return ViewState("DescripcionOriginal").ToString End Get Set(value As String) ViewState("DescripcionOriginal") = value End Set End Property Private Property TipoAFOriginal As String Get If ViewState("TipoAFOriginal") Is Nothing Then ViewState("TipoAFOriginal") = "" End If Return ViewState("TipoAFOriginal").ToString End Get Set(value As String) ViewState("TipoAFOriginal") = value End Set End Property Private Property FolioOriginal As String Get If ViewState("FolioOriginal") Is Nothing Then ViewState("FolioOriginal") = "" End If Return ViewState("FolioOriginal").ToString End Get Set(value As String) ViewState("FolioOriginal") = value End Set End Property Private Property TotalPagos As Decimal Get If ViewState("TotalPagos") Is Nothing Then ViewState("TotalPagos") = 0 End If Return ViewState("TotalPagos").ToString.ToDecimal End Get Set(value As Decimal) ViewState("TotalPagos") = value End Set End Property Private Property EsAgencia As Boolean Get If ViewState("EsAgencia") Is Nothing Then ViewState("EsAgencia") = False End If Return Boolean.Parse(ViewState("EsAgencia").ToString()) End Get Set(value As Boolean) ViewState("EsAgencia") = value End Set End Property Private Property DTViajesPasajeros As DataTable Get If ViewState("DTViajesPasajeros") Is Nothing Then ViewState("DTViajesPasajeros") = New DataTable End If Return CType(ViewState("DTViajesPasajeros"), DataTable) End Get Set(value As DataTable) ViewState("DTViajesPasajeros") = value End Set End Property #End Region #Region "Carga Página" Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load If Not IsPostBack Then If Request("CveContrato") Is Nothing Then Response.Redirect($"~/Transportes/RepContratos.aspx") End If CveContrato = Request("CveContrato").ToEntero If UsuarioActual.CveRol = 1583 Then EsAgencia = True End If InicializaCombos() CargaDatos() CargaAuxiliarClienteCxC(DdlClientes.SelectedValue.ToEntero, CveVentaRemision) AsientoSeleccionado = "" CveViajePasajero = 0 Session("FileExtension") = "" ArchivoUpdate = "" CargaGvBitacora() If CveContrato > 0 Then HlEvento.Visible = True HlEvento.NavigateUrl = "/OI/PopUpAgenda.aspx?CveTipoEvento=2&CveContrato=" & CveContrato & "&TB_iframe=true&height=370&width=600;" ImgAddObs.Visible = True LtlTareaNueva.Text = String.Format(" Tarea", CveContrato) CargaEventoBitacora() End If End If End Sub Private Sub InicializaCombos() 'Lista Tipo AF DdlTipoAF.DataSource = GlobalDTTipoActivoFijo(UsuarioActual.CveEmpresa).FiltraParametros("MedidaVehicularClave IN (2,3)") DdlTipoAF.DataBind() DdlTipoAF.Items.Insert(0, New ListItem("Seleccione", "-1")) 'Lista de Monedas DdlMoneda.DataSource = GlobalDTMonedas DdlMoneda.DataBind() CargarCentrosDeCosto(Nothing, Nothing, Nothing, LblSubProyectoModal) DdlSubProyecto.DataSource = GlobalDTSubProyectos(UsuarioActual.CveEmpresa) DdlSubProyecto.DataBind() DdlSubProyecto.Items.Insert(0, New ListItem("Seleccione uno", "-1")) DdlVendedor.DataSource = GlobalDTVendedores(UsuarioActual.CveEmpresa) DdlVendedor.DataBind() DdlVendedor.Items.Insert(0, New ListItem("Todos", "-1")) For i As Integer = DdlVendedor.Items.Count - 1 To 0 Step -1 If DdlVendedor.Items(i).Text = "Sin asignar" Or DdlVendedor.Items(i).Value = "0" Then DdlVendedor.Items.RemoveAt(i) End If Next If EsAgencia Then DdlVendedor.SelectedValueExist(UsuarioActual.CveVendedor) DdlVendedor.Enabled = False End If End Sub Private Sub CargaDatos() CargaDatosContrato() CargaDatosViajes() 'Información General End Sub Private Sub CargaDatosContrato() Dim ObjContratos As New ClsContratos If ObjContratos.GetContratos(CveContrato, UsuarioActual.CveEmpresa) Then Contrato = ObjContratos.DtResultados If Contrato IsNot Nothing AndAlso Contrato.Rows.Count > 0 Then Dim drc As DataRow = Contrato.Rows(0) Dim Importe As Decimal = drc("Importe").ToString.ToDecimal Dim Pesos As Decimal = drc("ImporteMax").ToString.ToDecimal Dim Anticipo As Decimal = drc("ImporteMin").ToString.ToDecimal CveContratoTipo = drc("CveContratoTipo").ToString.ToEntero SubProyecto = drc("SubProyecto").ToString CveMasivo = drc("CveMasivo").ToString.ToEntero TxtFolio.Text = drc("NumeroContrato").ToString DdlClientes.SelectedText = drc("NombreComercial").ToString DdlClientes.SelectedValue = drc("CveCliente").ToString DdlMoneda.SelectedValue = drc("CveMoneda").ToString TxtDescripcion.Text = drc("DescripcionContrato").ToString TxtObservaciones.Text = drc("Observaciones").ToString TelefonoEmpresa = drc("Telefono").ToString TxtUbicacion.Text = drc("Ubicacion").ToString TxtFechaSalida.Text = drc("FechaInicial").ToString.ToDate.ToString("dd/MM/yyyy HH:mm:ss") TxtFechaRegreso.Text = drc("FechaFinal").ToString.ToDate.ToString("dd/MM/yyyy HH:mm:ss") TxtCantidadPasajeros.Text = drc("CantidadPasajeros").ToString DdlTipoAF.SelectedValue = If(drc("CveTipoAF") Is Nothing, "", drc("CveTipoAF").ToString) TxtImporte.Text = Math.Round(Importe, 2).ToString TxtAnticipo.Text = Math.Round(Anticipo, 2).ToString CveContratoEstatus = drc("CveContratosEstatus").ToString.ToEntero DdlSubProyecto.SelectedValueExist(drc("CveSubProyecto").ToString) If drc("CveAF").ToString <> "" Then divAF.Visible = True LblAF.Text = drc("CodigoNombreAF").ToString End If CveSubProyectoOriginal = drc("CveSubProyecto").ToString.ToEntero CveMonedaOriginal = drc("CveMoneda").ToString.ToEntero CveClienteOriginal = drc("CveCliente").ToString.ToEntero ImporteOrigial = Importe DescripcionOriginal = drc("DescripcionContrato").ToString TipoAFOriginal = DdlTipoAF.SelectedItem.Text FolioOriginal = TxtFolio.Text.Trim CveVentaRemision = drc("CveVentaRemision").ToString.ToEntero HypRemision.Text = drc("RemisionSerieFolio").ToString HypRemision.NavigateUrl = $"/Ventas/Ventas.aspx?CveVenta={ CveVentaRemision}" ChkEsPresupuestal.Checked = Boolean.Parse(drc("EsPresupuestal").ToString) LblSaldo.Text = $"Saldo { drc("RemisionSaldo").ToString.ToDecimal.FormatoNumero}" If Not IsDBNull(ObjContratos.Archivo) AndAlso ObjContratos.Archivo <> "" AndAlso ObjContratos.Archivo <> "-1" AndAlso ObjContratos.Archivo <> $"{ObjContratos.CveContrato}." Then ViewState("FUrl") = Path.Combine(UsuarioActual.Empresa.Ruta, "CONTRATOS", ObjContratos.Archivo) BtnDescargar.Visible = True Dim File As New FileInfo(ViewState("FUrl").ToString) BtnDescargar.NavigateUrl = $"~/Compras/PopUpVerFactura.aspx?ArchivoContrato={Encripta(File.FullName)}" Else BtnDescargar.Visible = False A1.Visible = True End If ''Bitácora 'Dim ObjEventoBitacora As New ClsOIEventos 'If ObjEventoBitacora.GetEventos(-1, -1, -1, "-1", "-1", -1, -1, -1, -1, -1, -1, "-1", -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveContrato:=CveContrato) Then ' GvEB.DataSource = ObjEventoBitacora.DtResultados ' GvEB.DataBind() 'End If 'ObjEventoBitacora.Dispose() End If Else ObjContratos.Dispose() Response.Redirect($"~/Transportes/RepContratos.aspx") End If ObjContratos.Dispose() UpTabContainer.Update() End Sub Private Sub CargaDatosViajes() 'Boletos Vendidos DTViajesPasajeros = New DataTable If CveContratoTipo = 35 Then TabBoletos.Visible = True Dim ObjTransportes As New ClsTransportes If ObjTransportes.GetViajesPasajeros(CveContrato) Then If DdlVendedor.SelectedValue.ToEntero > 0 Then DTViajesPasajeros = ObjTransportes.DtResultados.FiltraParametros($" CveVendedor = {DdlVendedor.SelectedValue.ToEntero} ") Else DTViajesPasajeros = ObjTransportes.DtResultados End If GvViajesPasajeros.DataSource = DTViajesPasajeros BusquedaSeleccionada(DTViajesPasajeros) End If ObjTransportes.Dispose() GvViajesPasajeros.DataBind() End If UpPasajeros.Update() UpTabContainer.Update() End Sub #End Region Protected Sub DdlUsuarioFiltroBoletos_SelectedIndexChanged(sender As Object, e As EventArgs) CargaDatosViajes() End Sub #Region "Bitacora" Protected Sub GVEventoBitacora_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvEB.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then If e.Row.RowIndex = 0 Then e.Row.Cells(0).Width = Unit.Pixel(200) e.Row.Cells(1).Width = Unit.Pixel(200) e.Row.Cells(2).Width = Unit.Pixel(100) e.Row.Cells(3).Width = Unit.Pixel(500) End If If e.Row.DBCampo("Archivo").ToString <> "" Then e.Row.FCLinkButton("LinkArchivo").Visible = True e.Row.FCLinkButton("LinkArchivo").CommandArgument = String.Format("OI\{0}", e.Row.DBCampo("Archivo").ToString) ScriptManager.GetCurrent(Me).RegisterPostBackControl(e.Row.FCLinkButton("LinkArchivo")) 'Registro un evento Postbacktrigger, que recargue toda la pagina para que funcione End If e.Row.Cells(3).HorizontalAlign = HorizontalAlign.Left End If End Sub Protected Sub BtnGuardarEventoBitacora_Click(sender As Object, e As EventArgs) Handles BtnGuardarEventoBitacora.Click Dim ObjEventoBitacora As New ClsOIEventos Dim FileExtension As String = "-1" Dim Filesgral As List(Of Archivo) = AnexoBit.getfiles().Archivos Dim Filename As String = "" For Each fileItem As Archivo In Filesgral FileExtension = IO.Path.GetExtension(String.Format("{0}Temp\{1}", AppDomain.CurrentDomain.BaseDirectory, fileItem.filename)).Replace(".", "") Filename = fileItem.filename Next If ObjEventoBitacora.AddEventoBitacora(TxtEventoDescripcion.Text.Trim, String.Format(".{0}", FileExtension), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveContrato:=CveContrato) Then If Filename <> "" Then Filename.FilesMove(String.Format("OI{0}", ObjEventoBitacora.CveEvento.ToString), String.Format("{0}OI", UsuarioActual.Empresa.Ruta), ConcatenarDirectorioBase:=False) End If GvEB.DataSource = ObjEventoBitacora.DtResultados TxtEventoDescripcion.Text = "" AnexoBit.Text = "[]" Alert("La bitácora/observación se guardó correctamente", TipoMensaje.MsgInformacion) RegistraScript("$('#ModalBitacora').modal('hide')", "hidemodal") End If ObjEventoBitacora.Dispose() GvEB.DataBind() UPEventoBitacora.Update() CargaEventoBitacora() UPAddEventoBitacora.Update() End Sub Private Sub CargaEventoBitacora() If CveContrato > 0 Then Dim ObjEventoBitacora As New ClsOIEventos() If ObjEventoBitacora.GetAgendaBitacora(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveContrato:=CveContrato) Then GvEB.DataSource = ObjEventoBitacora.DtResultados.FiltraParametros("CveTipoEvento = 6 OR CveTipoEvento = 2") Else GvEB.DataSource = Nothing End If ObjEventoBitacora.Dispose() GvEB.DataBind() UPEventoBitacora.Update() End If End Sub Protected Sub DownloadFile(ByVal sender As Object, ByVal e As EventArgs) Dim filePath As String = String.Format("{0}{1}", UsuarioActual.Empresa.Ruta, CType(sender, LinkButton).CommandArgument) Dim Archivo As New System.IO.FileInfo(filePath) HttpContext.Current.Response.Clear() HttpContext.Current.Response.ClearContent() HttpContext.Current.Response.ContentType = "application/octet-stream" HttpContext.Current.Response.AppendHeader("Content-disposition", "attachment; filename=" + Path.GetFileName(filePath)) HttpContext.Current.Response.AddHeader("Content-Length", Archivo.Length.ToString()) HttpContext.Current.Response.TransmitFile(filePath) HttpContext.Current.Response.Flush() HttpContext.Current.Response.End() Archivo = Nothing End Sub #End Region #Region "Información General" Protected Sub BtnGuardarArchivo_Click1(sender As Object, e As EventArgs) Handles BtnGuardarArchivo.Click Dim FileExtension As String = "-1" Dim Filesgral As List(Of Extensiones.Archivo) = Anexo.getfiles().Archivos Dim Filename As String = "" Dim folderContratosPath As String = Path.Combine(UsuarioActual.Empresa.Ruta, "Contratos") If Not Directory.Exists(folderContratosPath) Then Directory.CreateDirectory(folderContratosPath) End If If Not Directory.Exists(Path.Combine(folderContratosPath, "Temp")) Then Directory.CreateDirectory(Path.Combine(folderContratosPath, "Temp")) End If For Each fileItem As Archivo In Filesgral FileExtension = IO.Path.GetExtension(String.Format("{0}Temp\{1}", AppDomain.CurrentDomain.BaseDirectory, fileItem.filename)).Replace(".", "") Session("FileExtension") = FileExtension Dim tempArray() As String tempArray = fileItem.filename.ToString().Split("-".ToCharArray()) ViewState("extencion") = FileExtension ViewState("FUrl") = Path.Combine(UsuarioActual.Empresa.Ruta, "Contratos", $"{CveContrato.ToString}.{ FileExtension}") If File.Exists(ViewState("FUrl").ToString) Then File.Delete(ViewState("FUrl").ToString) End If File.Move(fileItem.FileUrl, ViewState("FUrl").ToString) TxtArchivo.Text = tempArray(1) Next UPAFUL.Update() RegistraScript("$('#ModalUpload').modal('hide')", "hidemodal1") A1.Visible = True If Not FileExtension = "-1" Then BtnDescargar.Visible = True End If End Sub Public Function ObtenerUrlCompleta() As String Dim Solicitud As HttpRequest = HttpContext.Current.Request Dim url As String = Solicitud.Url.Scheme & "://" & Solicitud.Url.Host If (Solicitud.Url.Port <> 80 AndAlso Solicitud.Url.Port <> 443) Then url &= ":" & Solicitud.Url.Port End If url &= Solicitud.ApplicationPath If Not url.EndsWith("/") Then url &= "/" End If Return url End Function Protected Sub UpdateContrato(sender As Object, e As EventArgs) Dim ArchivoUpdate As String = "-1" Dim ErrorProceso As Boolean = False Dim SeGeneroRemision As Boolean = False Dim SerieFolioRemision As String = "" If Session("FileExtension").ToString <> "" Then 'ArchivoUpdate = $"{CveContrato.ToString}.{ Session("FileExtension")}" ArchivoUpdate = $".{Session("FileExtension").ToString}" Else End If Dim ObjContratos As New ClsContratos ObjContratos.IniciaTransacSQL() If Not ObjContratos.UpdateContratos(CveContrato, TxtFolio.Text, TxtDescripcion.Text, "", UsuarioActual.CveProveedor, DdlClientes.SelectedValue.ToEntero, -1, TxtFechaSalida.Text.ToDate, TxtFechaRegreso.Text.ToDate, TxtUbicacion.Text, "", DdlSubProyecto.SelectedValue.ToEntero, -1, -1, -1, -1, ArchivoUpdate, "", -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, ChkEsPresupuestal.Checked, TxtAnticipo.Text.ToDecimal, -1, TxtImporte.Text.ToDecimal, DdlMoneda.SelectedValue.ToEntero, 0, CveContratoTipo:=CveContratoTipo, CveTipoAF:=DdlTipoAF.SelectedValue.ToEntero, CveContratosEstatus:=CveContratoEstatus, Observaciones:=TxtObservaciones.Text, CantidadPasajeros:=TxtCantidadPasajeros.Text.ToEntero) Then ErrorProceso = True End If If Not ErrorProceso Then If CveVentaRemision > 0 AndAlso (CveSubProyectoOriginal <> DdlSubProyecto.SelectedValue.ToEntero OrElse CveMonedaOriginal <> DdlMoneda.SelectedValue.ToEntero OrElse ImporteOrigial <> TxtImporte.Text.ToDecimal OrElse DescripcionOriginal <> TxtDescripcion.Text OrElse TipoAFOriginal <> DdlTipoAF.SelectedItem.Text OrElse FolioOriginal <> TxtFolio.Text.Trim OrElse CveClienteOriginal <> DdlClientes.SelectedValue.ToEntero) Then Dim ObsRemisionPartida As String = $"{DdlTipoAF.SelectedItem.Text}-{ TxtDescripcion.Text}-{TxtFolio.Text}" If Not UpdateRemision(ObjContratos.IniciaTransacSQL(), DdlSubProyecto.SelectedValue.ToEntero, DdlMoneda.SelectedValue.ToEntero, TxtImporte.Text.ToDecimal, ObsRemisionPartida, DdlClientes.SelectedValue.ToEntero) Then ErrorProceso = True End If End If End If If Not ErrorProceso AndAlso Not CveVentaRemision > 0 AndAlso ChkEsPresupuestal.Checked = False Then 'CveVentaRemision Dim ObsRemisionPartida As String = $"{DdlTipoAF.SelectedItem.Text}-{ TxtDescripcion.Text}-{TxtFolio.Text}" Dim Respuesta As New RespuestaFacturacion() Dim CvePS As Integer = 907784 Respuesta = GeneraRemision(CveContrato, ObsRemisionPartida, TxtImporte.Text.ToDecimal, CvePS, ObjContratos.IniciaTransacSQL, DdlSubProyecto.SelectedValue.ToEntero) If Respuesta.CveVenta > 0 Then CveVentaRemision = Respuesta.CveVenta SerieFolioRemision = Respuesta.SerieFolio ErrorProceso = False SeGeneroRemision = True Else ErrorProceso = True Alert("se presento un error al generar la remisión", TipoMensaje.MsgAdvertencia) End If End If If Not ErrorProceso Then ObjContratos.Commit() AgregarABitacora($"Actualización del contrato {CveContrato}") If SeGeneroRemision Then Alert($"Contrato actualizado correctamente..
Remisión Generada {SerieFolioRemision}", TipoMensaje.MsgInformacion, "window.location.reload();") Else Alert("Contrato actualizado correctamente", TipoMensaje.MsgInformacion, "window.location.reload();") End If Else Alert("Ocurrió un ocurrió un error al actualizar su boleto", TipoMensaje.MsgError) ObjContratos.RollBack() End If ObjContratos.Dispose() If Not ErrorProceso Then 'CargaDatos() End If End Sub Private Function UpdateRemision(ByRef transaccionSql As SqlTransaction, CveSubProyectoNew As Integer, CveMonedaNew As Integer, TotalNew As Decimal, DescripcionNew As String, CveClienteNew As Integer) As Boolean Dim Respuesta As Boolean = False Dim TmpDT As DataTable = New DataTable Dim OcurrioError As Boolean = False Dim ObjVentas As New ClsVentas(transaccionSql) Dim FechaVenta As Date = MinFecha Dim PorcentajeIVA As Decimal = 0D Dim IVANew As Decimal = 0D Dim SubTotalNew As Decimal = TotalNew Dim CvePrePoliza As Integer = -1 If ObjVentas.GetVenta(CveVentaRemision, UsuarioActual.CveEmpresa) Then FechaVenta = ObjVentas.DtResultados(0)("Fecha").ToString.ToDate CvePrePoliza = ObjVentas.DtResultados(0)("CvePrePoliza").ToString.ToEntero End If If ObjVentas.GetVentaDetalle(CveVentaRemision) Then TmpDT = ObjVentas.DtResultados PorcentajeIVA = ObjVentas.DtResultados.MAX("PorcentajeIVA").ToDecimal If PorcentajeIVA > 0 Then IVANew = (TotalNew * (PorcentajeIVA * 100)) / (100 + (PorcentajeIVA * 100)) SubTotalNew = TotalNew - IVANew End If End If If TmpDT Is Nothing OrElse TmpDT.Rows.Count = 0 Or FechaVenta = MinFecha Then Alert("Error al obtener los datos de la remisión.", TipoMensaje.MsgAdvertencia) Return False End If Dim ObjConta As New ClsContabilidad(ObjVentas.IniciaTransacSQL()) Dim Moneda As Integer = DdlMoneda.SelectedValue.ToEntero() 'validación si es una fecha posterior, que tome el día actual Dim TC As Decimal = If(CveMonedaNew = 2, GlobalTipoCambio(If(FechaVenta > Now, NowADS(), FechaVenta)).ToDecimal, 1) Try If Not ObjVentas.UpdateVentas(SubTotalNew, 0, IVANew, 0, TotalNew, CveMonedaNew, TC, FechaVenta, DescripcionNew, UsuarioActual.CveEmpresa, CveVentaRemision, Vigencia:=FechaVenta, CondicionesPago:=-1, PedidoContrato:="-1", AtencionA:="-1", CveMetodoPago33:=-1, CveFormaPago33:=-1, TipoDocto:="Rem", CveCliente:=CveClienteNew, CveClienteSucursal:=-1, OrdenCompra:="-1", RetIVA:=0, RetISR:=0, Kilometraje:=0D, CveUsoCFDi:=-1, CveVendedor:=-1, ServicioDomicilio:=False, CveMedico:=-1, CveProcedimiento:=-1, FechaParaSurtir:=MinFecha, Paciente:="-1", Episodio:="-1", CveCondicionEntrega:=-1, FolioRemision:="-1") Then OcurrioError = True End If 'Cargo de nueva cuenta el detalle de Ventas (Conceptos) If Not OcurrioError Then Dim index As Integer = 0 For Each Row As DataRow In TmpDT.Rows Dim CveVentaDetalle As Integer = Row("CveVentaDetalle").ToString().ToEntero() If CveVentaDetalle > 0 Then If Not ObjVentas.UpdateVentaDetalleRemision(Row("CveVentaDetalle").ToString().ToEntero(), Row("CvePS").ToString().ToEntero(), Row("Cantidad").ToString().ToDecimal, SubTotalNew, Row("ImporteIEPS").ToString().ToDecimal(), Row("PorcentajeIEPS").ToString().ToDecimal(), IVANew, PorcentajeIVA, 0, DescripcionNew, UsuarioActual.CveUsuario) Then OcurrioError = True End If End If Exit For ' solo debe de tener un detalle por eso se sale index = index + 1 Next End If If Not OcurrioError Then Dim DTPrePoliza As New DataTable If ObjConta.GetPrePolizasDetalle(CvePrePoliza, UsuarioActual.CveEmpresa) Then DTPrePoliza = ObjConta.DtResultados If DTPrePoliza.Rows.Count = 0 Then OcurrioError = True Alert("No se encontraron datos de prepoliza", TipoMensaje.MsgAdvertencia) End If Else OcurrioError = True End If For Each dRow As DataRow In DTPrePoliza.Rows If Not ObjConta.UpdatePrePolizasDetalle(dRow("CvePrePolizaDetalle").ToString.ToEntero, dRow("Concepto").ToString, dRow("CveSubProyecto").ToString.ToEntero, -1, Boolean.Parse(dRow("TipoMovto").ToString), ImporteMN:=TotalNew, Importe:=TotalNew, TipoCambio:=TC, CveCliente:=CveClienteNew) Then OcurrioError = True Exit For End If Next End If If ObjConta.ValidacionesPrePoliza(-1, UsuarioActual, Opcion:=2, CveVenta:=CveVentaRemision) Then If ObjConta.ValorPolizaDescuadre > 0 Then If ObjConta.ValorPolizaDescuadre = 2 Then OcurrioError = True Alert(ObjConta.MensajePolizaDescuadre, TipoMensaje.MsgError) End If End If End If Catch ex As Exception OcurrioError = True OnError("Ocurrió un error al actualizar la remisión", ex) End Try If OcurrioError Then 'Alert("Ocurrió un error al guardar los cambios. Por favor intente de nuevo.", TipoMensaje.MsgError) Return False Else ' Alert("Los cambios se guardaron correctamente.", TipoMensaje.MsgInformacion, JSBtnAceptar:="BtnRefrescarPagina();") CveSubProyectoOriginal = DdlSubProyecto.SelectedValue.ToEntero CveMonedaOriginal = DdlMoneda.SelectedValue.ToEntero ImporteOrigial = TxtImporte.Text.ToDecimal DescripcionOriginal = TxtDescripcion.Text TipoAFOriginal = DdlTipoAF.SelectedItem.Text FolioOriginal = TxtFolio.Text.Trim CveClienteOriginal = DdlClientes.SelectedValue.ToEntero Return True End If End Function Protected Sub EliminarContrato(sender As Object, e As EventArgs) Dim ObjContratos As New ClsContratos If (CveContratoTipo = 35) Then If CveMasivo <> 0 Then If ObjContratos.RemoveContrato(CveContrato, UsuarioActual.CveEmpresa, CveMasivo:=CveMasivo) Then Alert("Viajes masivos eliminados correctamente") AgregarABitacora($"Eliminación del contrato {CveContrato}") ObjContratos.Dispose() Response.Redirect("RepViajes.aspx") End If Else If ObjContratos.RemoveContrato(CveContrato, UsuarioActual.CveEmpresa) Then Alert("Viaje eliminado correctamente") AgregarABitacora($"Eliminación de contratos masivos con clave {CveMasivo}") ObjContratos.Dispose() Response.Redirect("RepViajes.aspx") End If End If Else If ObjContratos.RemoveContrato(CveContrato, UsuarioActual.CveEmpresa) Then Alert("Contrato eliminado correctamente") ObjContratos.Dispose() Response.Redirect("RepContratos.aspx") End If End If End Sub Protected Sub ImprimirContrato(sender As Object, e As EventArgs) Dim dtResult As New DataTable() Dim params As New List(Of ReportParameter) From { New ReportParameter("Folio", TxtFolio.Text), New ReportParameter("Cliente", DdlClientes.SelectedText), New ReportParameter("Servicio", TxtDescripcion.Text), New ReportParameter("Observaciones", TxtObservaciones.Text), New ReportParameter("Ubicacion", TxtUbicacion.Text), New ReportParameter("FechaSalida", TxtFechaSalida.Text.ToDate.ToString("dd/MM/yyyy HH:mm tt")), New ReportParameter("FechaRegreso", TxtFechaRegreso.Text.ToDate.ToString("dd/MM/yyyy HH:mm tt")), New ReportParameter("CantidadPasajeros", TxtCantidadPasajeros.Text), New ReportParameter("TipoAF", DdlTipoAF.SelectedItem.ToString()), New ReportParameter("Pesos", TxtImporte.Text.ToDecimal.ToString("###,###,###.00")), New ReportParameter("Moneda", DdlMoneda.SelectedItem.ToString), New ReportParameter("Anticipo", TxtAnticipo.Text.ToDecimal.ToString("###,###,###.00")), New ReportParameter("Total", (TxtImporte.Text.ToDecimal - (TxtAnticipo.Text.ToDecimal)).ToString("###,###,###.00")), New ReportParameter("DiaSalida", TxtFechaSalida.Text.ToDate.ToString("HH:mm tt")), New ReportParameter("TelefonoEmpresa", TelefonoEmpresa), New ReportParameter("FechaImpresion", Date.Now.ToString("dd/MM/yyyy HH:mm:ss")), New ReportParameter("Usuario", UsuarioActual.Nombre) } ImprimirPDFStimul($"{UsuarioActual.Empresa.Ruta}Formatos\Contrato.mrt", dtResult, params, NombreArchivo:=TxtFolio.Text) End Sub Protected Sub AgregarABitacora(Descripcion As String) Dim ObjEventoBitacora As New ClsOIEventos Dim FileExtension As String = "-1" If ObjEventoBitacora.AddEventoBitacora(Descripcion, FileExtension, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveContrato:=CveContrato) Then 'Alert("Evento agregado a bitácora correctamente", TipoMensaje.MsgInformacion) End If ObjEventoBitacora.Dispose() End Sub #End Region #Region "Boletos" Protected Sub OnLinkButtonClick(sender As Object, e As EventArgs) 'Limpiamos la selección anterior If AsientoSeleccionado <> "" Then Dim cph As ContentPlaceHolder = CType(Me.Master.FindControl("C"), ContentPlaceHolder) Dim lnk As LinkButton = CType(cph.FindControl(AsientoSeleccionado), LinkButton) lnk.CssClass = "disponible" End If 'Seleccionamos un asiento Dim linkButton As LinkButton = DirectCast(sender, LinkButton) Dim buttonID As String = linkButton.ID linkButton.CssClass += " activo" AsientoSeleccionado = buttonID TxtAsiento.Text = buttonID.Substring(1) UpTabContainer.Update() RegistraScript(String.Format("$('#{0}').modal('show');", "ModalEditar")) End Sub Protected Sub UpdateBoleto(sender As Object, e As EventArgs) If PnEditarViaje.Visible = True Then For Each boleto As DataRow In ViajeActual.Rows If (boleto.Item("Asiento").ToString = TxtAsiento.Text) Then Alert($"El asiento {boleto.Item("Asiento")} ya ha está ocupado", TipoMensaje.MsgAdvertencia) Exit Sub End If Next End If Dim ObjTransportes As New ClsTransportes Try ObjTransportes.IniciaTransacSQL() If ObjTransportes.UpdateViajesPasajeros(CveViajePasajero, DdlRuta.SelectedValue.ToEntero, UsuarioActual.CveVendedor, LbImporte.Text.ToDecimal, TxtAsiento.Text.ToEntero, TxtNombre.Text, TxtVisa.Text, TxtCelular.Text, TxtObservacion.Text, CBool(TxtEstatus.Text), UsuarioActual.CveUsuario, CBool(RblSexo.SelectedValue), FechaNacimiento:=TxtFechaNacimiento.Text.ToDate) Then ObjTransportes.Commit() End If Catch ex As ArgumentException Alert($"Ocurrió un ocurrió un error al actualizar su boleto", TipoMensaje.MsgError) ObjTransportes.RollBack() Finally Alert("Su asiento fue actualizado correctamente") AgregarABitacora($"Cambio de asiento del pasajero {CveViajePasajero} del asiento al {TxtAsiento.Text} del contrato {CveContrato}") ObjTransportes.Dispose() End Try CargaDatos() RegistraScript(String.Format("$('#{0}').modal('hide');", "ModalEditar")) End Sub Protected Sub OnChangeRuta(sender As Object, e As EventArgs) Dim ObjTransportes As New ClsTransportes If ObjTransportes.GetViajesPasajeros(DdlRuta.SelectedValue.ToEntero) Then BusquedaSeleccionada(ObjTransportes.DtResultados) End If ObjTransportes.Dispose() RegistraScript(String.Format("$('#{0}').modal('show');", "ModalEditar")) End Sub Protected Sub BusquedaSeleccionada(dt As DataTable) 'Limpiamos autobus Dim cph As ContentPlaceHolder = CType(Me.Master.FindControl("C"), ContentPlaceHolder) For i As Integer = 1 To 50 Dim lnk As LinkButton = CType(cph.FindControl($"A{i}"), LinkButton) If lnk IsNot Nothing Then lnk.Enabled = True lnk.CssClass = "disponible" End If Next 'Si la dt DataTable tiene algo llenamos los asientos If dt IsNot Nothing AndAlso dt.Rows.Count > 0 Then For Each dr As DataRow In dt.Rows Dim lnk As LinkButton = CType(cph.FindControl($"A{dr("Asiento")}"), LinkButton) If lnk IsNot Nothing Then lnk.Enabled = False lnk.CssClass = "nodisponible" lnk.ToolTip = dr("Nombre").ToString End If Next End If UpTabContainer.Update() ViajeActual = dt End Sub Protected Sub GvViajesPasajeros_RowDataBound(sender As Object, e As GridViewRowEventArgs) If e.Row.RowType = DataControlRowType.DataRow Then If EsAgencia Then e.Row.FCLinkButton("BtnCancelar").Visible = False e.Row.FCLinkButton("BtnReAgendar").Visible = False End If Dim Liga As String = String.Format("/Compras/PopUpVerFactura.aspx?P={0}", Encripta(String.Format("OP=BOLETO&CVEVIAJEPASAJERO={0}", e.Row.DataKey("CveViajePasajero")))) e.Row.FCLiteral("LtlImprimir").Text = $"" 'ScriptManager.GetCurrent(Me).RegisterPostBackControl(e.Row.FCLinkButton("BtnImprimir")) End If If e.Row.RowType = DataControlRowType.Footer Then e.Row.FCLiteral("LtlImportePie").Text = DTViajesPasajeros.SUM("Importe").ToString("###,###,###.00") End If End Sub Protected Sub EditarBoleto(sender As Object, e As EventArgs) PnEditarUsuario.Visible = True PnEditarViaje.Visible = False PnAsientos.Visible = False TxtFechaNacimiento.Enabled = True TxtNombre.Enabled = True Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow) CveViajePasajero = GvRow.DataKey("CveViajePasajero").ToEntero DdlRuta.SelectedValueExist(GvRow.DataKey("CveViaje")) LbPartida.Text = GvRow.DataKey("Partida").ToString() LbDestino.Text = GvRow.DataKey("Destino").ToString() LbImporte.Text = Convert.ToDecimal(GvRow.DataKey("Importe")).ToString("C") TxtNombre.Text = GvRow.DataKey("Nombre").ToString() TxtVisa.Text = GvRow.DataKey("Visa").ToString() TxtCelular.Text = GvRow.DataKey("Celular").ToString() RblSexo.SelectedValue = If(CBool(GvRow.DataKey("Sexo").ToString), "1", "0") TxtObservacion.Text = GvRow.DataKey("Observacion").ToString() LbEstatus.Text = If(CBool(GvRow.DataKey("Estatus").ToString), "Activo", "Cancelado") TxtEstatus.Text = GvRow.DataKey("Estatus").ToString LbEstatus.CssClass = If(CBool(GvRow.DataKey("Estatus").ToString), "text-success bold", "text-danger bold") TxtAsiento.Text = GvRow.DataKey("Asiento").ToString() TxtFechaNacimiento.Text = GvRow.DataKey("FechaNacimiento").ToString().ToDate.ToString("dd/MM/yyyy") If EsAgencia Then TxtFechaNacimiento.Enabled = False TxtNombre.Enabled = False End If UpTabContainer.Update() UpModal.Update() RegistraScript(String.Format("$('#{0}').modal('show');", "ModalEditar")) End Sub Protected Sub CambiarBoleto(sender As Object, e As EventArgs) PnEditarViaje.Visible = True PnEditarUsuario.Visible = False PnAsientos.Visible = True Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow) CveViajePasajero = GvRow.DataKey("CveViajePasajero").ToEntero LbPartida.Text = GvRow.DataKey("Partida").ToString() LbDestino.Text = GvRow.DataKey("Destino").ToString() LbImporte.Text = Convert.ToDecimal(GvRow.DataKey("Importe")).ToString("C") TxtNombre.Text = GvRow.DataKey("Nombre").ToString() TxtVisa.Text = GvRow.DataKey("Visa").ToString() TxtCelular.Text = GvRow.DataKey("Celular").ToString() RblSexo.SelectedValue = If(CBool(GvRow.DataKey("Sexo").ToString), "1", "0") TxtObservacion.Text = GvRow.DataKey("Observacion").ToString() LbEstatus.Text = GvRow.DataKey("Estatus").ToString() LbCreado.Text = GvRow.DataKey("FechaIng").ToString() TxtAsiento.Text = GvRow.DataKey("Asiento").ToString() TxtFechaNacimiento.Text = GvRow.DataKey("FechaNacimiento").ToString().ToDate.ToString("dd/MM/yyyy") 'Seleccionamos la ruta que tiene el usuario actual DdlRuta.ClearSelection() Dim ObjContratos As New ClsContratos If ObjContratos.GetContratosReporte(UsuarioActual.CveEmpresa, MinFecha, MaxFecha, -1, CveEstatus:=-1, CveTipoContrato:=35) Then For Each row As DataRow In ObjContratos.DtResultados.Rows Dim fecha As DateTime = row("FechaInicial").ToString.ToDateTime 'Asigna los valores de la columna deseada al ListItem Dim listItem As New ListItem(row("SubProyecto").ToString() + " - " + fecha.ToShortDateString + " - " + fecha.ToShortTimeString, row("CveContrato").ToString()) 'Agrega el ListItem al DropDownList DdlRuta.Items.Add(listItem) Next End If DdlRuta.SelectedValueExist(GvRow.DataKey("CveViaje")) ObjContratos.Dispose() UpTabContainer.Update() RegistraScript(String.Format("$('#{0}').modal('show');", "ModalEditar")) End Sub Protected Sub BtnCancelar_Click(sender As Object, e As EventArgs) Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow) CveViajePasajero = GvRow.DataKey("CveViajePasajero").ToEntero LbPartida.Text = GvRow.DataKey("Partida").ToString() LbDestino.Text = GvRow.DataKey("Destino").ToString() LbImporte.Text = Convert.ToDecimal(GvRow.DataKey("Importe")).ToString("C") TxtNombre.Text = GvRow.DataKey("Nombre").ToString() TxtVisa.Text = GvRow.DataKey("Visa").ToString() TxtCelular.Text = GvRow.DataKey("Celular").ToString() RblSexo.SelectedValue = If(CBool(GvRow.DataKey("Sexo").ToString), "1", "0") TxtObservacion.Text = GvRow.DataKey("Observacion").ToString() TxtEstatus.Text = GvRow.DataKey("Estatus").ToString() LbCreado.Text = GvRow.DataKey("FechaIng").ToString() TxtAsiento.Text = GvRow.DataKey("Asiento").ToString() Dim Estatus As Boolean = Not CBool(TxtEstatus.Text) Dim ObjTransportes As New ClsTransportes Try ObjTransportes.IniciaTransacSQL() If ObjTransportes.UpdateViajesPasajeros(CveViajePasajero, CveContrato, UsuarioActual.CveVendedor, LbImporte.Text.ToDecimal, TxtAsiento.Text.ToEntero, TxtNombre.Text, TxtVisa.Text, TxtCelular.Text, TxtObservacion.Text, Estatus, UsuarioActual.CveUsuario, CBool(RblSexo.SelectedValue)) Then Alert("Se ha modificado el estatus de su boleto correctamente.") ObjTransportes.Commit() End If Catch ex As Exception ObjTransportes.RollBack() Alert($"No se pudo cambiar el estatus del boleto", TipoMensaje.MsgError) Finally ObjTransportes.Dispose() Dim toggleEstatus As String If CBool(RblSexo.SelectedValue) Then toggleEstatus = "Cancelación" Else toggleEstatus = "Reactivación" End If AgregarABitacora($"{toggleEstatus} del asiento {TxtAsiento.Text} del viaje {CveContrato} con clave de pasajero {CveViajePasajero}") CargaDatos() End Try UpPasajeros.Update() End Sub #End Region #Region "Bitacora historial" Private Sub CargaGvBitacora() ' COMENTADO POR IPP PARA SUBIR 5 ABRIL 2017 If CveContrato > 0 Then Dim ObjGral As New ClsGenerales() If ObjGral.GetHistorialBitacora(-1, -1, -1, -1, -1, -1, -1, UsuarioActual.CveEmpresa, CveContrato:=CveContrato) Then GvBitacora.DataSource = ObjGral.DtResultados End If ObjGral.Dispose() End If GvBitacora.DataBind() End Sub #End Region #Region "PAGOS" Private Sub CargaAuxiliarClienteCxC(CveCliente As Integer, CveRemision As Integer) If CveRemision > 0 Then Dim ObjMovtos As New ClsMovimientos() If ObjMovtos.GetCxCClienteAuxiliar(CveCliente, CveRemision) Then Dim dtTemp As New DataTable dtTemp = ObjMovtos.DtResultados.FiltraParametros("CveConceptoContable IN (193,2,292) ") TotalPagos = dtTemp.SUM("Abono") GVAuxiliar.DataSource = dtTemp Else GVAuxiliar.DataSource = Nothing End If ObjMovtos.Dispose() GVAuxiliar.DataBind() UpPagos.Update() End If End Sub Protected Sub GVAuxiliar_RowDataBound(sender As Object, e As GridViewRowEventArgs) If e.Row.RowType = DataControlRowType.DataRow Then If e.Row.DataKey("TipoReferencia").ToEntero = 1 Then e.Row.FCHyperLink("HplReferencia").NavigateUrl = $"/Bancos/IE.aspx?CveIE={e.Row.DataKey("CveReferencia").ToEntero}" End If End If If e.Row.RowType = DataControlRowType.Footer Then e.Row.Cells(1).HorizontalAlign = HorizontalAlign.Right e.Row.Cells(2).HorizontalAlign = HorizontalAlign.Right e.Row.Cells(1).Text = "Total" e.Row.FCLabel("Lbltotal").Text = TotalPagos.ToString("###,###,###.00") End If End Sub #End Region #Region " R E M I S I O N " Private Function GeneraRemision(CveContrato As Integer, ObsPartida As String, Importe As Decimal, CvePS As Integer, ByRef TransaccionSQL As SqlClient.SqlTransaction, CveSubProyecto As Integer) As RespuestaFacturacion Dim Respuesta As New RespuestaFacturacion() Dim CveRemisionGenerada As Integer = -1 Dim ObjVentas As New ClsVentas(TransaccionSQL) Dim ProcesoOK As Boolean = True Dim CveMoneda As Integer = DdlMoneda.SelectedValue.ToEntero Dim ObjFactura As Modelos.Factura = Modelos.Factura.CrearVentaNueva(UsuarioActual, CveSubProyecto, DdlClientes.SelectedValue.ToEntero, CveMoneda, "Rem") If ObjFactura IsNot Nothing AndAlso ProcesoOK Then ObjFactura.CveMoneda = CveMoneda ObjFactura.CveContrato = CveContrato ObjFactura.Observaciones = ObsPartida ObjFactura.CveFormaPago = 20 ' por definir If CveMoneda > 1 Then ObjFactura.TipoCambio = GlobalTipoCambio(DateTime.Now).ToDecimal End If Dim TmpDTMat As New DataTable TmpDTMat.Columns.Add("Consec", GetType(Integer)) TmpDTMat.Columns.Add("CvePS", GetType(Integer)) TmpDTMat.Columns.Add("CveUM", GetType(Integer)) TmpDTMat.Columns.Add("Cantidad", GetType(Integer)) TmpDTMat.Columns.Add("PU", GetType(Decimal)) TmpDTMat.Columns.Add("Lote", GetType(String)) TmpDTMat.Columns.Add("FechaCaducidad", GetType(Date)) TmpDTMat.Columns.Add("CveVentaDetalle", GetType(Integer)) Dim CantidadRegistro As Decimal = 1 Dim PorcentajeIVA As Decimal = GlobalDTSubProyectos(UsuarioActual.CveEmpresa, CveSubProyecto:=CveSubProyecto).FiltroPrimeroValor("IVA").ToDecimal Dim SubTotal As Decimal = (Importe / (1D + PorcentajeIVA)) Dim PU As Decimal = SubTotal Dim Descuento As Decimal = 0 Dim Obs As String = ObsPartida If CantidadRegistro > 0 Then If ObjFactura.AgregarPS(CvePS, CantidadRegistro, PU, Descuento, Obs, CveSubProyecto:=CveSubProyecto, PorcentajeIVA:=PorcentajeIVA) Then Dim drp As DataRow = TmpDTMat.NewRow drp("CvePS") = CvePS drp("Cantidad") = CantidadRegistro drp("PU") = PU TmpDTMat.Rows.Add(drp) Else Alert("Error al agregar producto", TipoMensaje.MsgAdvertencia) ProcesoOK = False End If End If If ProcesoOK Then ObjFactura.CalculaTotales() Dim Resp As New Modelos.Factura.MMensajeFactura Resp = ObjFactura.EmitirFactura(False, Transac:=TransaccionSQL) If Resp.CveVenta > 0 Then Respuesta.CveVenta = Resp.CveVenta Respuesta.SerieFolio = Resp.SerieFolio Respuesta.dtdetalle = TmpDTMat Else ProcesoOK = False End If End If Else ProcesoOK = False End If Return Respuesta End Function Friend Class RespuestaFacturacion Public Property CveVenta As Integer = -1 Public Property SerieFolio As String = "-1" Public Property dtdetalle As DataTable = Nothing Public Sub New() End Sub End Class #End Region Protected Sub DdlVendedor_SelectedIndexChanged(sender As Object, e As EventArgs) CargaDatosViajes() End Sub #Region "IMPRESION MANIFIESTO" 'Private Sub ImgExcel_Click(sender As Object, e As EventArgs) Handles ImgExcel.Click ' GeneraPDF("Excel") ' 'GvDatos.ExportToExcel("ReporteProductosServicios" & NowADS().ToShortDateString) 'End Sub Private Sub PreparaManifiesto() End Sub Protected Sub GeneraPDF(Optional Formato As String = "PDF") Dim DTManifiestoViajes As DataTable = DTViajesPasajeros.Copy DTManifiestoViajes.Rows.Clear() DTManifiestoViajes.Columns.Add("SexoStr") For x = 1 To 50 Dim dRow As DataRow = DTManifiestoViajes.NewRow Dim Encontrado As Boolean = False For Each faRow As DataRow In DTViajesPasajeros.Rows If faRow("Asiento").ToString.ToEntero = x Then Encontrado = True dRow("Asiento") = x dRow("Nombre") = faRow("Nombre").ToString dRow("Visa") = faRow("Visa").ToString dRow("Celular") = faRow("Celular").ToString dRow("SexoStr") = If(Boolean.Parse(faRow("Sexo").ToString), "Masculino", "Femenino") dRow("Partida") = faRow("Partida").ToString dRow("Destino") = faRow("Destino").ToString dRow("Importe") = faRow("Importe").ToString.ToDecimal Exit For End If Next If Not Encontrado Then dRow("Asiento") = x End If DTManifiestoViajes.Rows.Add(dRow) Next DTManifiestoViajes.TableName = "DTManifiestoViajes" DTManifiestoViajes.AcceptChanges() Dim DTManifiesto As DataTable = DTManifiestoViajes.FiltraParametros("", "Asiento") DTManifiesto.TableName = "DTManifiestoViajes" Dim Imagen As New System.IO.FileInfo($"{UsuarioActual.Empresa.Ruta}/Logo.png") Dim params As New List(Of ReportParameter)() params.Add(New ReportParameter("Empresa", UsuarioActual.Empresa.Empresa)) params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre)) params.Add(New ReportParameter("Contrato", TxtFolio.Text)) params.Add(New ReportParameter("LogoPath", If(Imagen.Exists, $"file://{Imagen.FullName}", ""))) params.Add(New ReportParameter("FechaSalida", TxtFechaSalida.Text)) ImprimirPDF("Empresas/Grales/Formatos/ManifiestoViajes.rdlc", DTManifiesto, params, "Reporte de Productos Servicios", Formato) End Sub Protected Sub ImgPDF_Click(sender As Object, e As EventArgs) GeneraPDF() End Sub #End Region End Class