From 55e265f086a730bf088371f6797bcfd14027f9ba Mon Sep 17 00:00:00 2001 From: rrene Date: Sat, 6 Jul 2024 10:18:40 -0700 Subject: [PATCH 01/20] - quitar registro en log, que no procede --- App_Code/ClsBancos.vb | 3 --- 1 file changed, 3 deletions(-) diff --git a/App_Code/ClsBancos.vb b/App_Code/ClsBancos.vb index 8f973e376..176ed8ac9 100644 --- a/App_Code/ClsBancos.vb +++ b/App_Code/ClsBancos.vb @@ -1159,10 +1159,7 @@ Public Class ClsBancos End If End If Mensaje = ObjTimbrado.MensajeErrorCFDI - - GuardaLog(ObjTimbrado.MensajeErrorCFDI) Timbre = Nothing - Else GuardaLog(Mensaje) End If From 608ce002e246f8da0e277ed17c50e11837af1d21 Mon Sep 17 00:00:00 2001 From: rrene Date: Mon, 8 Jul 2024 08:35:55 -0700 Subject: [PATCH 02/20] -- proceso para especificar folio de movto IE --- Bancos/DepositosCaja.aspx.vb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Bancos/DepositosCaja.aspx.vb b/Bancos/DepositosCaja.aspx.vb index f5244df41..0f8206a31 100644 --- a/Bancos/DepositosCaja.aspx.vb +++ b/Bancos/DepositosCaja.aspx.vb @@ -312,7 +312,7 @@ Partial Class Bancos_DepositosCaja 'End If 'código temporal, para claudia y toñita, monge, anadelia, alba,patricia - If UsuarioActual.CveUsuario.Contiene(1937, 2452, 3358, 3033, 2897, 2560) Then + If UsuarioActual.TienePermisoProceso(383) Then 'CveUsuario.Contiene(1937, 2452, 3358, 3033, 2897, 2560) Then FolioIE = TxtFolio.Text.ToEntero End If From d958a5e38d2558572afff98b830b2c801b0870bc Mon Sep 17 00:00:00 2001 From: rrene Date: Mon, 8 Jul 2024 21:56:43 -0700 Subject: [PATCH 03/20] =?UTF-8?q?-=20impresi=C3=B3n=20de=20consola=20serie?= =?UTF-8?q?=20y=20pedal?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Empresas/186/Formatos/Consola.rdlc | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/Empresas/186/Formatos/Consola.rdlc b/Empresas/186/Formatos/Consola.rdlc index dc935ddee..1b4775d5d 100644 --- a/Empresas/186/Formatos/Consola.rdlc +++ b/Empresas/186/Formatos/Consola.rdlc @@ -528,7 +528,7 @@ - + =Parameters!SerieConsola.Value @@ -804,7 +804,7 @@ - + =Parameters!SeriePedal.Value @@ -3051,6 +3051,18 @@ Municipio y/o Delegación: true ReportParameter1 + + String + true + true + ReportParameter1 + + + String + true + true + ReportParameter1 + From 8efd122004c958f7b40a7b89a576dc51f19eab0d Mon Sep 17 00:00:00 2001 From: rrene Date: Mon, 8 Jul 2024 21:56:59 -0700 Subject: [PATCH 04/20] - --- General/SaldosIniciales.aspx.vb | 2 -- 1 file changed, 2 deletions(-) diff --git a/General/SaldosIniciales.aspx.vb b/General/SaldosIniciales.aspx.vb index 567f194cf..20b5f1f01 100644 --- a/General/SaldosIniciales.aspx.vb +++ b/General/SaldosIniciales.aspx.vb @@ -2625,7 +2625,6 @@ Partial Class General_SaldosIniciales Throw New Exception() End If End If - Else mensajeError.Append($"La unidad de medida no se reconoce para el producto servicio:{nuevaEntrada("CodigoPS")}") Throw New Exception() @@ -2650,7 +2649,6 @@ Partial Class General_SaldosIniciales Throw New Exception() Exit For End If - Next Catch ex As Exception If mensajeError.ToString = "" Then From fe23e4f15e7e6305ea16eebcb96fc160f09e30eb Mon Sep 17 00:00:00 2001 From: rrene Date: Mon, 8 Jul 2024 21:57:48 -0700 Subject: [PATCH 05/20] =?UTF-8?q?--=20impresi=C3=B3n=20de=20consola?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Compras/PopUpVerFactura.aspx.vb | 25 +++++++------------------ 1 file changed, 7 insertions(+), 18 deletions(-) diff --git a/Compras/PopUpVerFactura.aspx.vb b/Compras/PopUpVerFactura.aspx.vb index 0fcf524a0..386792d7a 100644 --- a/Compras/PopUpVerFactura.aspx.vb +++ b/Compras/PopUpVerFactura.aspx.vb @@ -2714,6 +2714,7 @@ Partial Class PopUpVerFactura Dim NombreEntrego As String = ObjInventarios.DtResultados.FiltroPrimeroValor("Entrego") Dim CveAlmacen As Integer = ObjInventarios.CveAlmacen Dim Recibio As String = ObjInventarios.Recibio + Dim Guia As String = ObjInventarios.Guia Dim PuestoRecibio As String = ObjInventarios.PuestoRecibio Dim PuestoEnrego As String = ObjInventarios.PuestoEntrego Dim ResponsableCarga As String = ObjInventarios.ResponsableCarga @@ -2912,7 +2913,7 @@ Partial Class PopUpVerFactura PuestoEnrego, RazonSocial, ResponsableCarga, ResponsableRecibio, NombreCliente, CantidadProductos:=CantidadProductos, CantidadUsados:=CantidadUsados, CveTipoAlmacen:=CveTipoAlmacen, NombreEntrego:=NombreEntrego, CveConceptoMovRelacionado:=CveConceptoMovtoRelacionado, FolioRelacionado:=FolioRelacionado, UsuarioRegistro:=UsuarioCapturo, - Ruta:=Ruta, Supervisor:=Supervisor, Consola:=Consola) + Ruta:=Ruta, Supervisor:=Supervisor, Guia:=Guia, Consola:=Consola) End Sub Private Sub PUanacExtr(CveMoneda As Integer) 'preciounitario a moneda nacional o extranjera @@ -2931,7 +2932,7 @@ Partial Class PopUpVerFactura EstadoDestino As String, PaisDestino As String, CPDestino As String, FechaMovimiento As Date, NombreCapturo As String, PuestoRecibio As String, PuestoEntrego As String, RazonSocial As String, ResponsableCarga As String, ResponsableRecibio As String, NombreCliente As String, Optional CantidadProductos As Decimal = 0, Optional CantidadUsados As Decimal = 0, Optional CveTipoAlmacen As Integer = -1, Optional NombreEntrego As String = "", Optional CveConceptoMovRelacionado As Integer = -1, Optional FolioRelacionado As String = "", Optional UsuarioRegistro As String = "", - Optional Ruta As String = Nothing, Optional Supervisor As String = Nothing, Optional Consola As String = "-1") + Optional Ruta As String = Nothing, Optional Supervisor As String = Nothing, Optional Guia As String = "", Optional Consola As String = "-1") Select Case CveConcepto @@ -3617,22 +3618,20 @@ Partial Class PopUpVerFactura params.Add(New ReportParameter("Accion", "RECIBE")) 'Antes Trasladó params.Add(New ReportParameter("Observaciones", Observaciones)) - Dim DTCliente As New DataTable Dim SBDireccionO As New StringBuilder() Dim SBDireccionD As New StringBuilder() Dim CveCliente As Integer = 0 Dim CveDireccionEnvio As Integer = 0 Dim ClienteNombre As String = "", EnvioContacto As String = "", EnvioDireccion As String = "", EnvioColonia As String = "", EnvioCiudad As String = "", EnvioEstado As String = "", ClientePais As String = "", EnvioCP As String = "", Contrato As String = "", - Paqueteria As String = "", NumContrato As String = "", Guia As String = "", Documentacion As String = "" + Paqueteria As String = "", NumContrato As String = "", Documentacion As String = "" Dim CveContrato As Integer = 0 If DtMovimientos IsNot Nothing AndAlso DtMovimientos.Rows.Count > 0 Then CveContrato = DtMovimientos.FiltroPrimeroValor("CveContrato").ToEntero End If - - If UsuarioActual.Empresa.Funcionalidad(578).ToEntero = 1 Then + If UsuarioActual.Empresa.Funcionalidad(578) = "1" Then CveCliente = DtMovimientos.FiltroPrimeroValor("CveCliente").ToEntero DTCliente = GlobalDTCliente(UsuarioActual.CveEmpresa).FiltraParametros($"CveCliente = {CveCliente}") @@ -3644,12 +3643,11 @@ Partial Class PopUpVerFactura If Consola <> "-1" And Consola.Trim.Length > 0 Then RutaFormato = "{0}Formatos\Consola.rdlc" params.Add(New ReportParameter("Consola", Consola)) + params.Add(New ReportParameter("SerieConsola", Guia)) + params.Add(New ReportParameter("SeriePedal", Recibio)) End If - - Dim CveVentaConsulta As Integer = DtMovimientos.FiltroPrimeroValor("CveVenta").ToEntero - params.Add(New ReportParameter("Documentacion", DTCliente.FiltroPrimeroValor("Documentacion"))) Dim ObjVentas As New ClsVentas() @@ -3670,18 +3668,9 @@ Partial Class PopUpVerFactura params.Add(New ReportParameter("ClienteMunicipio", dtVentas.Rows(0)("SucClienteCiudad").ToString)) params.Add(New ReportParameter("ClienteCP", dtVentas.Rows(0)("CPCliente").ToString)) - - - - - End If ObjVentas.Dispose() - - - - End If If CveContrato > 0 Then From b9c9b9d5aa2e9f3fc421faef102a9cee7d87406b Mon Sep 17 00:00:00 2001 From: rrene Date: Mon, 8 Jul 2024 21:57:58 -0700 Subject: [PATCH 06/20] -- mejora --- Transportes/RepContratosCalendario.aspx | 1 - Transportes/RepContratosCalendario.aspx.vb | 7 ++++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Transportes/RepContratosCalendario.aspx b/Transportes/RepContratosCalendario.aspx index 019ac22fc..8460b5abe 100644 --- a/Transportes/RepContratosCalendario.aspx +++ b/Transportes/RepContratosCalendario.aspx @@ -696,7 +696,6 @@ let mes = parseInt($('#<%=HidCurrentMonth.ClientID%>').val()); let anio = parseInt($('#<%=HidCurrentYear.ClientID%>').val()); - Calendario(mes,anio); }); diff --git a/Transportes/RepContratosCalendario.aspx.vb b/Transportes/RepContratosCalendario.aspx.vb index e49bcd659..a15b62a80 100644 --- a/Transportes/RepContratosCalendario.aspx.vb +++ b/Transportes/RepContratosCalendario.aspx.vb @@ -31,10 +31,10 @@ Partial Class RepContratosCalendario Public Property CveContrato As Integer Get - Return IfNull(ViewState("CveContrato"), "").ToString.ToEntero + Return HdnCveContrato.Value.ToEntero End Get Set(value As Integer) - ViewState("CveContrato") = value + HdnCveContrato.Value = value.ToString End Set End Property @@ -234,7 +234,8 @@ Partial Class RepContratosCalendario DdlChofer.SelectedValueExist(GvRow.DataKey("CveChofer")) DdlChofer2.SelectedValueExist(GvRow.DataKey("CveChofer2")) DdlEstatusContrato.SelectedValue = GvRow.DataKey("CveContratosEstatus") - + CveContrato = GvRow.DataKey("CveContrato").ToEntero + UpModal.Update() RegistraScript("$('#ModalActualizar').modal('show');") End Sub From 9f40cef63bb3b5c77d5ce5fa1fd17b7112a0e1f3 Mon Sep 17 00:00:00 2001 From: rrene Date: Mon, 8 Jul 2024 21:58:08 -0700 Subject: [PATCH 07/20] -- quita filtros --- Inventarios/PopUpBuscarMovto.aspx.vb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Inventarios/PopUpBuscarMovto.aspx.vb b/Inventarios/PopUpBuscarMovto.aspx.vb index 060e21c47..8ff678e65 100644 --- a/Inventarios/PopUpBuscarMovto.aspx.vb +++ b/Inventarios/PopUpBuscarMovto.aspx.vb @@ -76,10 +76,10 @@ Partial Class PopUpBuscarFolio End Sub Private Function ValidarFiltrosSeleccionados() As Boolean - If DdlAlmacen.SelectedValue.ToEntero > 0 Then Return True - If DdlTipoMovimiento.SelectedValue.ToEntero > 0 Then Return True - If TxtFolio.Text.Length > 0 Then Return True - Return False + 'If DdlAlmacen.SelectedValue.ToEntero > 0 Then Return True + 'If DdlTipoMovimiento.SelectedValue.ToEntero > 0 Then Return True + 'If TxtFolio.Text.Length > 0 Then Return True + Return True End Function #End Region From c55197c007a73b21295fc6b6c88c1d1f0850c449 Mon Sep 17 00:00:00 2001 From: rrene Date: Mon, 8 Jul 2024 21:58:26 -0700 Subject: [PATCH 08/20] =?UTF-8?q?--=20selecci=C3=B3n=20de=20serie=20e=20co?= =?UTF-8?q?nsola=20SMS?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Inventarios/EntregaAlmacen.aspx | 13 ++- Inventarios/EntregaAlmacen.aspx.vb | 123 +++++++++++++++-------------- 2 files changed, 76 insertions(+), 60 deletions(-) diff --git a/Inventarios/EntregaAlmacen.aspx b/Inventarios/EntregaAlmacen.aspx index ebc97ad3a..b8eeeb2b6 100644 --- a/Inventarios/EntregaAlmacen.aspx +++ b/Inventarios/EntregaAlmacen.aspx @@ -266,9 +266,20 @@ + + +
+
Consola
+
+
+
Pedal
+
+
+
+ + - diff --git a/Inventarios/EntregaAlmacen.aspx.vb b/Inventarios/EntregaAlmacen.aspx.vb index 23437744e..8a945b90a 100644 --- a/Inventarios/EntregaAlmacen.aspx.vb +++ b/Inventarios/EntregaAlmacen.aspx.vb @@ -321,14 +321,11 @@ Partial Class Inventarios_EntregaAlmacen End Set End Property - Private Property CargaBitacora As Boolean Get - If ViewState("CargaBitacora") Is Nothing Then ViewState("CargaBitacora") = False End If - Return Boolean.Parse(ViewState("CargaBitacora").ToString) End Get Set(value As Boolean) @@ -336,7 +333,6 @@ Partial Class Inventarios_EntregaAlmacen End Set End Property - Private Property BloqueCantidad As Boolean Get If ViewState("BloqueCantidad") Is Nothing Then @@ -348,9 +344,6 @@ Partial Class Inventarios_EntregaAlmacen ViewState("BloqueCantidad") = value End Set End Property - - - Private Property Adjunto As String Get If ViewState("Adjunto") Is Nothing Then @@ -364,8 +357,6 @@ Partial Class Inventarios_EntregaAlmacen End Set End Property - - #End Region Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load @@ -376,10 +367,8 @@ Partial Class Inventarios_EntregaAlmacen If UsuarioActual.CveEmpresa.Contiene(1, 72, 80, 146, 119, 186) Then DdlAlmacen.AutoPostBack = True If UsuarioActual.Empresa.Funcionalidad(281).ToEntero() = 1 Then - TxtFecha.Enabled = False ImgFecha.Visible = False - End If If UsuarioActual.Empresa.Funcionalidad(109) = "1" Then @@ -547,11 +536,9 @@ Partial Class Inventarios_EntregaAlmacen Alert("No se podrá realizar entrega de mercancía si no se les da salida a los documentos pendientes. Para más información ver el Reporte de notas sin entrada en la sección Ventas.", TipoMensaje.MsgAdvertencia) Else BtnGuardar.Enabled = True - End If End If End If - ObjInventarios.Dispose() If DtPendientes IsNot Nothing Then @@ -641,7 +628,6 @@ Partial Class Inventarios_EntregaAlmacen Adjunto = "" BtnArchivoAdjunto.Visible = False - LbSurtida.Visible = False CveContrato = -1 CveSubProyecto = -1 @@ -651,7 +637,6 @@ Partial Class Inventarios_EntregaAlmacen BtnGuardar.Visible = True Dim StrAlmacenes As String = "CveTipoAlmacen IN (1,2,26)" - If UsuarioActual.CveSubProyecto = 8804 Then StrAlmacenes = "CveTipoAlmacen IN (1,2,12)" End If @@ -733,12 +718,9 @@ Partial Class Inventarios_EntregaAlmacen CveSubProyecto = drE("CveSubProyecto").ToString().ToEntero() EsInterno = CBool(DtDatos.Rows(0)("EsInterno").ToString()) CveDireccionEnvio = drE("CveDireccionEnvio").ToString.ToEntero - - Adjunto = drE("Adjunto").ToString() If Adjunto.Trim.Length > 0 Then - Dim ruta As String = HttpContext.Current.Request.ApplicationPath ruta = String.Format("{0}Ventas", UsuarioActual.Empresa.Ruta) ruta += $"/{Adjunto}" @@ -747,9 +729,6 @@ Partial Class Inventarios_EntregaAlmacen BtnArchivoAdjunto.Visible = True BtnArchivoAdjunto.Text = $"Adjunto: {Adjunto}" End If - - - End If If CveDireccionEnvio > 0 Then @@ -785,7 +764,6 @@ Partial Class Inventarios_EntregaAlmacen BtnGuardar.Visible = False End If - If CveAlmacen <= 0 Then DdlAlmacen.Items.Clear() If CveAlmacenTraspasoOrigen > 0 Then 'Not (EsDevolucionVenta = 1 And DtDatos.Rows(0)("TipoDocto").ToString() = "Rem" And UsuarioActual.Empresa.Funcionalidad(145) = "1") - ESTO ES PARA CUANDO SEA REMISION DE ENTREGA POR ADELANTADO FUNCIONA LA DEVOLUCION @@ -816,8 +794,49 @@ Partial Class Inventarios_EntregaAlmacen If Not DtDatos.Columns.Contains("Seleccionado") Then DtDatos.Columns.Add("Seleccionado", GetType(Boolean)) - If Not DtDatos.Columns.Contains("CantidadSeleccionada") Then DtDatos.Columns.Add("CantidadSeleccionada", GetType(Double)) - + If Not DtDatos.Columns.Contains("CantidadSeleccionada") Then DtDatos.Columns.Add("CantidadSeleccionada", GetType(Double)) + + If UsuarioActual.Empresa.Funcionalidad(578) = "1" AndAlso TipoMovimiento = 1 Then + TrConsola.Visible = False + ' valida que estén los productos + Dim cargapedales As Boolean = False + If DtDatos.COUNT("Codigo", "Codigo like '306%' OR Codigo like '404%' OR Codigo like '405%'") > 0 Then + '306, 404, 405, ARS-600 + DdlConsola.Items.Clear() + DdlConsola.Items.Add(New ListItem("A6-2106045-GM", "A6-2106045-GM")) + DdlConsola.Items.Add(New ListItem("A6-2101023-GM", "A6-2101023-GM")) + DdlConsola.Items.Add(New ListItem("A6-2994026-GM", "A6-2994026-GM")) + DdlConsola.Items.Add(New ListItem("A6-2203055-GM", "A6-2203055-GM")) + DdlConsola.Items.Add(New ListItem("A6-2304031-GM", "A6-2304031-GM")) + DdlConsola.Items.Add(New ListItem("A6-2304030-GM", "A6-2304030-GM")) + DdlConsola.Items.Add(New ListItem("RENTA", "RENTA")) + cargapedales = True + TrConsola.Visible = True + Consola = "ARS600" + End If + If DtDatos.COUNT("Codigo", "Codigo like '106%'") > 0 Then + '306, 404, 405, ARS-800, + DdlConsola.Items.Clear() + DdlConsola.Items.Add(New ListItem("A8-2205011-DM", "A8-2205011-DM")) + DdlConsola.Items.Add(New ListItem("RENTA", "RENTA")) + cargapedales = True + TrConsola.Visible = True + Consola = "ARS800" + End If + + If cargapedales Then + DdlPedales.Items.Clear() + DdlPedales.Items.Add(New ListItem("AJ-23040710-S", "AJ-23040710-S")) + DdlPedales.Items.Add(New ListItem("AJ-22110355-S", "AJ-22110355-S")) + DdlPedales.Items.Add(New ListItem("AJ-23040709-S", "AJ-23040709-S")) + DdlPedales.Items.Add(New ListItem("AJ-20050605-S", "AJ-20050605-S")) + DdlPedales.Items.Add(New ListItem("AJ-20111710-S", "AJ-20111710-S")) + DdlPedales.Items.Add(New ListItem("AJ-2106045-S", "AJ-2106045-S")) + DdlPedales.Items.Add(New ListItem("AJ-22980506-S", "AJ-22980506-S")) + DdlPedales.Items.Add(New ListItem("RENTA", "RENTA")) + End If + End If + If UsuarioActual.Empresa.Funcionalidad(280) = "1" Then FormaPaqueteria = DtDatos.Rows(0)("FormaPaqueteria").ToString().ToEntero() Dim FormaPaq As Integer = FormaPaqueteria @@ -1977,10 +1996,7 @@ Partial Class Inventarios_EntregaAlmacen End Sub - Private Sub GuardaVenta() - - ValidaUsaConsola() - + Private Sub GuardaVenta() Dim CantidadVenta As Decimal = 0 '' INICIA: VALIDACIONES @@ -2053,9 +2069,7 @@ Partial Class Inventarios_EntregaAlmacen If Gvr.FCCheckBox("cbInv").Checked AndAlso Gvr.FCTextBox("TbCantidadF").Text.ToDecimal > 0 Then Cantidad += Gvr.FCTextBox("TbCantidadF").Text.ToDecimal End If - End If - End If Next @@ -2095,11 +2109,16 @@ Partial Class Inventarios_EntregaAlmacen Next End If End If - + Dim Guia As String = TxtGuia.Text.Trim + Dim Recibio As String = "" If EsDevolucionVenta = 1 Or TipoDocto.Contiene({"Ped"}) Then Dim ValidaSalidaCompleta As Boolean = Not (EsDevolucionVenta = 1 And TipoDocto.Contiene("Rem", "Ped")) 'LIMITAR EL NUMERO DE PARTIDAS QUE SE PUEDEN ENTREGAR If UsuarioActual.Empresa.Funcionalidad(578) = "1" Then + If TrConsola.Visible Then + Guia = DdlConsola.SelectedItem.Text + Recibio = DdlPedales.SelectedItem.Text + End If 'SoloNumeros entrega 'SI EL CLIENTE ES OPERADORA DE HOSPITALES ANGELES SOLO SE PUEDEN RECIBIR MAXIMO 9 @@ -2116,7 +2135,6 @@ Partial Class Inventarios_EntregaAlmacen End If End If End If - ValidaSalidaCompleta = False End If @@ -2128,12 +2146,9 @@ Partial Class Inventarios_EntregaAlmacen Exit Sub End If Next - End If - End If - Dim EsInterno As Integer = -1 'If TipoDocto = "Ped" Then ' EsInterno = If(Me.EsInterno, 1, 0) @@ -2281,10 +2296,7 @@ Partial Class Inventarios_EntregaAlmacen If Dr("FechaCaducidad").ToString.Trim.Length > 0 AndAlso Dr("FechaCaducidad").ToString.Trim <> "-1" Then SerieLoteCaducidad = $"{SerieLoteCaducidad} Caducidad: { Dr("FechaCaducidad").ToString.Trim.ToDate.ToString("dd/MM/yyyy")}" End If - TextoError.AppendFormat(" - {0} Existencia: {1:#,##0.##} {2}
", Dr("CodigoPS"), Dr("Existencia"), If(SerieLoteCaducidad <> ",", SerieLoteCaducidad, "")) - - Next End If Else @@ -2303,7 +2315,6 @@ Partial Class Inventarios_EntregaAlmacen RegistraScript("playsonidito('142608__autistic-lucario__error.wav')") Exit Sub End If - End If '' TERMINA: VALIDACIONES @@ -2332,7 +2343,7 @@ Partial Class Inventarios_EntregaAlmacen If Not CveMovimientoSalida > 0 Then CveMovimientoSalida = ObjInventario.AddMovimiento(Dr2("CveAlmacen").ToString().ToEntero(), CveConceptoSalidaSinCosto, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVentaSurtir, -1, -1, CveOS:=CveOSSurtir, - Observaciones:=TxtObservaciones.Text.Trim, Guia:=TxtGuia.Text, CveContrato:=CveContrato, Modulo:="RE/GSC1") + Observaciones:=TxtObservaciones.Text.Trim, Guia:=Guia, CveContrato:=CveContrato, Modulo:="RE/GSC1") FolioSalida = ObjInventario.Folio If Not CveMovimientoSalida > 0 Then @@ -2382,7 +2393,7 @@ Partial Class Inventarios_EntregaAlmacen If Not CveMovimientoSalida > 0 Then CveMovimientoSalida = ObjInventario.AddMovimiento(Dr1("CveAlmacen").ToString().ToEntero(), CveConceptoSalidaSinCosto, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVentaSurtir, -1, -1, CveOS:=CveOSSurtir, - Observaciones:=TxtObservaciones.Text.Trim, Guia:=TxtGuia.Text, CveContrato:=CveContrato, Modulo:="RE/GSC3") + Observaciones:=TxtObservaciones.Text.Trim, Guia:=Guia, CveContrato:=CveContrato, Modulo:="RE/GSC3") FolioSalida = ObjInventario.Folio If Not CveMovimientoSalida > 0 Then @@ -2401,7 +2412,6 @@ Partial Class Inventarios_EntregaAlmacen DtTraspasos.Rows.Add(DrMovto) End If - CantidadPendienteSinCosto = If(Dr1("ExistenciaFinal").ToString().ToDecimal > CantidadSaldoSinCosto, CantidadSaldoSinCosto, Dr1("ExistenciaFinal").ToString().ToDecimal) If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalida, CantidadPendienteSinCosto.ToString().ToDecimal, Dr("CveUM").ToString().ToEntero(), Dr("CvePS").ToString().ToEntero(), 0, @@ -2414,7 +2424,6 @@ Partial Class Inventarios_EntregaAlmacen TextoError.AppendFormat("Ocurrió un error al procesar los conceptos de traspaso de apartado. Por favor vuelva a intentar.") Exit For End If - CantidadSaldoSinCosto -= CantidadPendienteSinCosto Dr("CantidadTraspaso") = Dr("CantidadTraspaso").ToString().ToDecimal + CantidadPendienteSinCosto If CantidadSaldoSinCosto <= 0 Then Exit For @@ -2424,14 +2433,10 @@ Partial Class Inventarios_EntregaAlmacen Else ErrorMovInv = True End If - End If - CantidadSalidaSinCosto += Dr("CantidadTraspaso").ToString().ToDecimal() If ErrorMovInv Then Exit For - End If - Next 'ENTRADA POR TRASPASO A ENTREGA POR ADELANTADO @@ -2443,7 +2448,7 @@ Partial Class Inventarios_EntregaAlmacen CveMovimientoEntradaApartado = ObjInventario.AddMovimiento(CveAlmacenExA, 9, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVentaSurtir, -1, -1, CveOS:=CveOSSurtir, Observaciones:=TxtObservaciones.Text.Trim, CveAlmacenDestino:=DdlAlmacen.SelectedValue.ToEntero(), CveMovimientoRelacionado:=CveMovimientoSalida, - Guia:=TxtGuia.Text, CveContrato:=CveContrato, CveVendedor:=CveVendedor, CveCliente:=CveCliente, Modulo:="RE/G4") + Guia:=Guia, CveContrato:=CveContrato, CveVendedor:=CveVendedor, CveCliente:=CveCliente, Modulo:="RE/G4") FolioEntrada = ObjInventario.Folio If Not CveMovimientoEntradaApartado > 0 Then @@ -2524,7 +2529,7 @@ Partial Class Inventarios_EntregaAlmacen If Not CveMovimientoSalida > 0 Then CveMovimientoSalida = ObjInventario.AddMovimiento(Dr2("CveAlmacen").ToString().ToEntero(), 8, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVentaSurtir, -1, -1, CveOS:=CveOSSurtir, - Observaciones:=TxtObservaciones.Text.Trim, Guia:=TxtGuia.Text, CveContrato:=CveContrato, CveVendedor:=CveVendedor, CveCliente:=If(UsuarioActual.Empresa.Funcionalidad(146) = "1", -1, CveCliente), + Observaciones:=TxtObservaciones.Text.Trim, Guia:=Guia, CveContrato:=CveContrato, CveVendedor:=CveVendedor, CveCliente:=If(UsuarioActual.Empresa.Funcionalidad(146) = "1", -1, CveCliente), CveAlmacenDestino:=DdlAlmacen.SelectedValue.ToEntero(), Modulo:="RE/G1") FolioSalida = ObjInventario.Folio @@ -2578,7 +2583,7 @@ Partial Class Inventarios_EntregaAlmacen If Not CveMovimientoSalida > 0 Then CveMovimientoSalida = ObjInventario.AddMovimiento(Dr2("CveAlmacen").ToString().ToEntero(), 8, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVentaSurtir, -1, -1, CveOS:=CveOSSurtir, Observaciones:=TxtObservaciones.Text.Trim, - Guia:=TxtGuia.Text, CveContrato:=CveContrato, CveVendedor:=CveVendedor, CveCliente:=If(UsuarioActual.Empresa.Funcionalidad(146) = "1", -1, CveCliente), + Guia:=Guia, CveContrato:=CveContrato, CveVendedor:=CveVendedor, CveCliente:=If(UsuarioActual.Empresa.Funcionalidad(146) = "1", -1, CveCliente), CveAlmacenDestino:=DdlAlmacen.SelectedValue.ToEntero(), Modulo:="RE/G2") FolioSalida = ObjInventario.Folio @@ -2631,7 +2636,7 @@ Partial Class Inventarios_EntregaAlmacen CveMovimientoSalida = ObjInventario.AddMovimiento(Dr1("CveAlmacen").ToString().ToEntero(), 8, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVentaSurtir, -1, -1, CveOS:=CveOSSurtir, - Observaciones:=TxtObservaciones.Text.Trim, Guia:=TxtGuia.Text, CveContrato:=CveContrato, CveVendedor:=CveVendedor, + Observaciones:=TxtObservaciones.Text.Trim, Guia:=Guia, CveContrato:=CveContrato, CveVendedor:=CveVendedor, CveCliente:=If(UsuarioActual.Empresa.Funcionalidad(146) = "1", -1, CveCliente), CveAlmacenDestino:=DdlAlmacen.SelectedValue.ToEntero(), Modulo:="RE/G3") FolioSalida = ObjInventario.Folio @@ -2690,7 +2695,7 @@ Partial Class Inventarios_EntregaAlmacen CveMovimientoEntradaApartado = ObjInventario.AddMovimiento(DdlAlmacen.SelectedValue.ToEntero(), 9, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVentaSurtir, -1, -1, CveOS:=CveOSSurtir, Observaciones:=TxtObservaciones.Text.Trim, CveAlmacenDestino:=DdlAlmacen.SelectedValue.ToEntero(), CveMovimientoRelacionado:=CveMovimientoSalida, - Guia:=TxtGuia.Text, CveContrato:=CveContrato, CveVendedor:=CveVendedor, CveCliente:=CveCliente, Modulo:="RE/G4") + Guia:=Guia, CveContrato:=CveContrato, CveVendedor:=CveVendedor, CveCliente:=CveCliente, Modulo:="RE/G4") FolioEntrada = ObjInventario.Folio If Not CveMovimientoEntradaApartado > 0 Then @@ -2732,7 +2737,7 @@ Partial Class Inventarios_EntregaAlmacen End If If DtGarantias IsNot Nothing AndAlso DtGarantias.Rows.Count > 0 AndAlso CveAlmacenGarantia > 0 Then - CveMovimientoGarantia = ObjInventario.AddMovimiento(CveAlmacenGarantia, 14, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVentaSurtir, -1, -1, CveOS:=CveOSSurtir, Observaciones:=TxtObservaciones.Text.Trim, Guia:=TxtGuia.Text, Modulo:="EA/G5") + CveMovimientoGarantia = ObjInventario.AddMovimiento(CveAlmacenGarantia, 14, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVentaSurtir, -1, -1, CveOS:=CveOSSurtir, Observaciones:=TxtObservaciones.Text.Trim, Guia:=Guia, Modulo:="EA/G5") FolioGarantia = ObjInventario.Folio For Each RowGarantia As DataRow In DtGarantias.Rows @@ -2786,7 +2791,7 @@ Partial Class Inventarios_EntregaAlmacen Dim CveMovimientoDevolucionSinCosto As Integer = ObjInventario.AddMovimiento(DdlAlmacen.SelectedValue.ToEntero(), 41, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVentaSurtir, -1, -1, CveOS:=CveOSSurtir, Observaciones:=TxtObservaciones.Text.Trim, CveAlmacenDestino:=DdlAlmacen.SelectedValue.ToEntero(), CveMovimientoRelacionado:=CveMovimientoSalida, - Guia:=TxtGuia.Text, CveContrato:=CveContrato, CveVendedor:=CveVendedor, CveCliente:=CveCliente, Modulo:="RE/G4") + Guia:=Guia, CveContrato:=CveContrato, CveVendedor:=CveVendedor, CveCliente:=CveCliente, Modulo:="RE/G4") Dim FolioDevSinCosto As Integer = ObjInventario.Folio If Not CveMovimientoDevolucionSinCosto > 0 Then @@ -2868,7 +2873,7 @@ Partial Class Inventarios_EntregaAlmacen ConceptoMovimiento = 41 End If - CveMovimiento = ObjInventario.AddMovimiento(Almacen1, ConceptoMovimiento, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVentaSurtir, -1, -1, CveOS:=CveOSSurtir, Observaciones:=TxtObservaciones.Text.Trim, Guia:=TxtGuia.Text, + CveMovimiento = ObjInventario.AddMovimiento(Almacen1, ConceptoMovimiento, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVentaSurtir, -1, -1, CveOS:=CveOSSurtir, Observaciones:=TxtObservaciones.Text.Trim, Guia:=Guia, Recibio:=Recibio, CveContrato:=CveContrato, CveAlmacenDestino:=tCveAlmacenTraspasoDestino, Modulo:="RE/G7") Folio = ObjInventario.Folio @@ -2969,7 +2974,7 @@ Partial Class Inventarios_EntregaAlmacen 'ENTRADA POR TRASPASO CUANDO ES REMISION If Not ErrorMovInv Then If tCveAlmacenTraspasoDestino > 0 AndAlso Not (TipoMovimiento = 2 And TipoDocto = "Dev" And EsDevolucionVenta = 1) Then ' TRASPASO CUANDO ES REMISION - CveMovimientoEntrada = ObjInventario.AddMovimiento(tCveAlmacenTraspasoDestino, 9, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVentaSurtir, -1, -1, CveOS:=CveOSSurtir, Observaciones:=TxtObservaciones.Text.Trim, Guia:=TxtGuia.Text, CveContrato:=CveContrato, + CveMovimientoEntrada = ObjInventario.AddMovimiento(tCveAlmacenTraspasoDestino, 9, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVentaSurtir, -1, -1, CveOS:=CveOSSurtir, Observaciones:=TxtObservaciones.Text.Trim, Guia:=Guia, CveContrato:=CveContrato, CveMovimientoRelacionado:=CveMovimiento, CveAlmacenDestino:=DdlAlmacen.SelectedValue.ToEntero(), Modulo:="RE/G8") FolioEntrada = ObjInventario.Folio Dim ImporteAlmacen As Decimal = 0 @@ -3027,7 +3032,7 @@ Partial Class Inventarios_EntregaAlmacen If CveMovimientoSalidaApartado = -1 Or CveAlmacenApartado <> Dr("CveAlmacen").ToString().ToEntero() Then CveMovimientoSalidaApartado = ObjInventario.AddMovimiento(CveAlmacenOrigen, 8, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVentaSurtir, -1, -1, CveOS:=CveOSSurtir, - Observaciones:=TxtObservaciones.Text.Trim, Guia:=TxtGuia.Text, CveContrato:=CveContrato, CveVendedor:=CveVendedor, CveCliente:=CveCliente, + Observaciones:=TxtObservaciones.Text.Trim, Guia:=Guia, CveContrato:=CveContrato, CveVendedor:=CveVendedor, CveCliente:=CveCliente, CveAlmacenDestino:=Dr("CveAlmacen").ToString().ToEntero(), Modulo:="RE/G9") FolioSalida = ObjInventario.Folio CveAlmacenApartado = Dr("CveAlmacen").ToString().ToEntero() @@ -3074,7 +3079,7 @@ Partial Class Inventarios_EntregaAlmacen CveMovimientoEntradaApartado = ObjInventario.AddMovimiento(Dr1("CveAlmacen").ToString().ToEntero(), 9, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVentaSurtir, -1, -1, CveOS:=CveOSSurtir, Observaciones:=TxtObservaciones.Text.Trim, CveAlmacenDestino:=DdlAlmacen.SelectedValue.ToEntero(), - CveMovimientoRelacionado:=CveMovimientoSalida, Guia:=TxtGuia.Text, CveContrato:=CveContrato, CveVendedor:=CveVendedor, + CveMovimientoRelacionado:=CveMovimientoSalida, Guia:=Guia, CveContrato:=CveContrato, CveVendedor:=CveVendedor, CveCliente:=CveCliente, Modulo:="RE/G10") FolioEntrada = ObjInventario.Folio @@ -3220,7 +3225,7 @@ Partial Class Inventarios_EntregaAlmacen If DtPSVirtual IsNot Nothing AndAlso DtPSVirtual.Rows.Count > 0 AndAlso CveAlmacenVirtual > 0 AndAlso CveConceptoMovimientoVirtual > 0 Then CveMovimientoVirtual = ObjInventario.AddMovimiento(CveAlmacenVirtual, CveConceptoMovimientoVirtual, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVentaSurtir, -1, -1, CveOS:=CveOSSurtir, - Observaciones:=TxtObservaciones.Text.Trim, Guia:=TxtGuia.Text, CveMovimientoRelacionado:=CveMovimientoRelacionadoVirtual, Modulo:="RE/G6") + Observaciones:=TxtObservaciones.Text.Trim, Guia:=Guia, CveMovimientoRelacionado:=CveMovimientoRelacionadoVirtual, Modulo:="RE/G6") FolioVirtual = ObjInventario.Folio If CveMovimientoVirtual > 0 Then From af7c801e848f4872dbe53ba6eb759660d3d747cf Mon Sep 17 00:00:00 2001 From: rrene Date: Mon, 8 Jul 2024 21:59:34 -0700 Subject: [PATCH 09/20] -- nuevo proceso --- Bancos/DepositosCaja.aspx.vb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Bancos/DepositosCaja.aspx.vb b/Bancos/DepositosCaja.aspx.vb index 0f8206a31..0338bb999 100644 --- a/Bancos/DepositosCaja.aspx.vb +++ b/Bancos/DepositosCaja.aspx.vb @@ -52,7 +52,7 @@ Partial Class Bancos_DepositosCaja DdlCajaChica.DataSource = GlobalDTBancosCuentas(UsuarioActual.CveUsuario, CveEmpresa:=UsuarioActual.CveEmpresa).FiltraParametros(" CveTipoCuenta = 1", "", {"CveCuenta", "NumCuentaMoneda"}) DdlCajaChica.DataBind() 'código temporal, para claudia y toñita, monge, anadelia, alba,patricia - If UsuarioActual.CveUsuario.Contiene(1937, 2452, 3358, 3033, 2897, 2560) Then + If UsuarioActual.TienePermisoProceso(383) Then 'UsuarioActual.CveUsuario.Contiene(1937, 2452, 3358, 3033, 2897, 2560) Then DdlCajaChica.Items.Add(New ListItem("Todas", "-1")) DdlCuentaDeposito.Items.Add(New ListItem("Cuadre Solidaridad", "7850")) DdlCuentaDeposito.Items.Add(New ListItem("Cuadre Obregón", "7853")) From 57dbd54f69570be4c96a9b83f416b37a77b5825f Mon Sep 17 00:00:00 2001 From: rrene Date: Mon, 8 Jul 2024 21:59:55 -0700 Subject: [PATCH 10/20] -- carga de marca --- Ventas/PV.aspx.vb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Ventas/PV.aspx.vb b/Ventas/PV.aspx.vb index 1dd7fefbf..31faf3fc8 100644 --- a/Ventas/PV.aspx.vb +++ b/Ventas/PV.aspx.vb @@ -1353,6 +1353,7 @@ Partial Class PV DdlMarcaPS.DataSource = GlobalDTGralMarcas(UsuarioActual.CveEmpresa) DdlMarcaPS.DataBind() + DdlMarcaPSAjuste.DataSource = GlobalDTGralMarcas(UsuarioActual.CveEmpresa) DdlMarcaPSAjuste.DataBind() DdlMarcaUsado.DataBind() @@ -3344,7 +3345,6 @@ Partial Class PV End If ObjVentas.Dispose() - Dim ObjInventarios As New ClsInventarios Dim PU As Decimal = 0 For Each dr As DataRow In TmpDT.Rows From e46e238bbff9c9ae4db5758ff1a281a9c5ea545b Mon Sep 17 00:00:00 2001 From: rrene Date: Mon, 8 Jul 2024 22:32:17 -0700 Subject: [PATCH 11/20] Carta Porte 3.1 --- App_Code/Timbrado.vb | 176 +++++++++++++++++++++++++++++-------------- 1 file changed, 121 insertions(+), 55 deletions(-) diff --git a/App_Code/Timbrado.vb b/App_Code/Timbrado.vb index 087ed3309..02b8b497d 100644 --- a/App_Code/Timbrado.vb +++ b/App_Code/Timbrado.vb @@ -2552,74 +2552,140 @@ concep.DescripcionesEspecificas.NumeroSerie) Dim Carta As CFDICartaPorte = ObjCFDITimbre.Complementos.CartaPorte - ''DATOS GENERALES - cfdi.CartaPorte30("", Carta.TranspInternac, Carta.RegimenAduanero, Carta.EntradaSalidaMercancia, Carta.PaisOrigenDestino, Carta.ViaEntradaSalida, Carta.TotalDistanciaRecorrida, Carta.RegistroISTMO, Carta.UbicacionPoloOrigen, Carta.UbicacionPoloDestino) + If UsuarioActual.CveEmpresa = 1 Then + ''DATOS GENERALES + cfdi.CartaPorte31("", Carta.TranspInternac, Carta.EntradaSalidaMercancia, Carta.PaisOrigenDestino, 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, - If(Carta.TranspInternac <> "No", concep.PermisoImportacion, ""), If(Carta.TranspInternac <> "No", concep.FolioImpoVUCEM, ""), concep.NumCAS, If(Carta.TranspInternac <> "No", concep.RazonSocialEmpImp, ""), concep.NumRegSanPlagCOFEPRIS, concep.DatosFabricante, concep.DatosFormulador, concep.DatosMaquilador, concep.UsoAutorizado, - concep.PesoenKg, concep.ValorMercancia, concep.Moneda, concep.FraccionArrancelaria, concep.UUIDComercioExt, concep.TipoMateria, If(concep.TipoMateria = "05", concep.TipoMateriaDescripcion, "")) - For Each transp As CFDICartaPorteMercanciaTransporta In concep.MercanciasCantidadTransporta - cfdi.CartaPorte30CantidadTransporta(transp.Cantidad, transp.IDOrigen, transp.IDDestino, transp.CvesTransportes) - Next + 'UBICACIONES + If Carta.Ubicaciones IsNot Nothing AndAlso Carta.Ubicaciones.Count > 0 Then + For Each ubica As CFDICartaPorteUbicacion In Carta.Ubicaciones + 'origen + cfdi.CartaPorte31Ubicacion(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.CartaPorte31Domicilio(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 - 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) - - If Carta.Mercancias.Mercancias.Max(Function(x) x.MaterialPeligroso) = "" Then 'si no hay material peligro se limpian los valores - Carta.FiguraTransporte.AutoTransporte.NombreSeguroMedioAmbiente = "" - Carta.FiguraTransporte.AutoTransporte.PolizaSeguroMedioAmbiente = "" - End If - - 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) + 'MERCANCIAS + If Carta.Mercancias IsNot Nothing Then + cfdi.CartaPorte31Mercancias(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.CartaPorte31Mercancia(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, + If(Carta.TranspInternac <> "No", concep.PermisoImportacion, ""), If(Carta.TranspInternac <> "No", concep.FolioImpoVUCEM, ""), concep.NumCAS, If(Carta.TranspInternac <> "No", concep.RazonSocialEmpImp, ""), concep.NumRegSanPlagCOFEPRIS, concep.DatosFabricante, concep.DatosFormulador, concep.DatosMaquilador, concep.UsoAutorizado, + concep.PesoenKg, concep.ValorMercancia, concep.Moneda, concep.FraccionArrancelaria, concep.UUIDComercioExt, concep.TipoMateria, If(concep.TipoMateria = "05", concep.TipoMateriaDescripcion, "")) + For Each transp As CFDICartaPorteMercanciaTransporta In concep.MercanciasCantidadTransporta + cfdi.CartaPorte31CantidadTransporta(transp.Cantidad, transp.IDOrigen, transp.IDDestino, transp.CvesTransportes) + Next Next End If End If + ' + If Carta.FiguraTransporte IsNot Nothing Then - 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) + If Carta.FiguraTransporte.AutoTransporte IsNot Nothing Then + + cfdi.CartaPorte31Autotransporte(Carta.FiguraTransporte.AutoTransporte.PermisoSCT, Carta.FiguraTransporte.AutoTransporte.NumPermisoSCT) + + cfdi.CartaPorte31IdentificacionVehicular(Carta.FiguraTransporte.AutoTransporte.Vehiculo.ConfigVehicular, Carta.FiguraTransporte.AutoTransporte.Vehiculo.PesoBrutoVehicular, Carta.FiguraTransporte.AutoTransporte.Vehiculo.PlacaVM, Carta.FiguraTransporte.AutoTransporte.Vehiculo.AnioModeloVM) + + If Carta.Mercancias.Mercancias.Max(Function(x) x.MaterialPeligroso) = "" Then 'si no hay material peligro se limpian los valores + Carta.FiguraTransporte.AutoTransporte.NombreSeguroMedioAmbiente = "" + Carta.FiguraTransporte.AutoTransporte.PolizaSeguroMedioAmbiente = "" End If + + cfdi.CartaPorte31Seguros(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.CartaPorte31Remolque(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.CartaPorte31TiposFigura(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.CartaPorte31PartesTransporte("PT01") + cfdi.CartaPorte31PartesTransporteDomicilio(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 + Else + ''DATOS GENERALES + cfdi.CartaPorte30("", Carta.TranspInternac, Carta.RegimenAduanero, Carta.EntradaSalidaMercancia, Carta.PaisOrigenDestino, 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, + If(Carta.TranspInternac <> "No", concep.PermisoImportacion, ""), If(Carta.TranspInternac <> "No", concep.FolioImpoVUCEM, ""), concep.NumCAS, If(Carta.TranspInternac <> "No", concep.RazonSocialEmpImp, ""), concep.NumRegSanPlagCOFEPRIS, concep.DatosFabricante, concep.DatosFormulador, concep.DatosMaquilador, concep.UsoAutorizado, + concep.PesoenKg, concep.ValorMercancia, concep.Moneda, concep.FraccionArrancelaria, concep.UUIDComercioExt, concep.TipoMateria, If(concep.TipoMateria = "05", concep.TipoMateriaDescripcion, "")) + 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) + + If Carta.Mercancias.Mercancias.Max(Function(x) x.MaterialPeligroso) = "" Then 'si no hay material peligro se limpian los valores + Carta.FiguraTransporte.AutoTransporte.NombreSeguroMedioAmbiente = "" + Carta.FiguraTransporte.AutoTransporte.PolizaSeguroMedioAmbiente = "" + End If + + 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 If - - #End Region #Region "C O M P L E M E N T O D E P A G O" From ab7d0f7d95a0a7b73b56ed00733372d9e2dd2794 Mon Sep 17 00:00:00 2001 From: rrene Date: Mon, 8 Jul 2024 22:33:01 -0700 Subject: [PATCH 12/20] - colores SMS --- Ashx/CargaEventos.ashx | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/Ashx/CargaEventos.ashx b/Ashx/CargaEventos.ashx index ed78666f4..65bf9f131 100644 --- a/Ashx/CargaEventos.ashx +++ b/Ashx/CargaEventos.ashx @@ -78,18 +78,19 @@ Public Class CargaEventos : Implements IHttpHandler, IRequiresSessionState cevent.CveOS = dr("CveOS").ToString.ToEntero cevent.allDay = False If dr("EstatusOSGral").ToString.Contiene("Levantamiento") Then - cevent.backgroundColor = "#006699" + cevent.backgroundColor = "#3598dc" ElseIf dr("EstatusOSGral").ToString.Contiene("Surtido") Then cevent.backgroundColor = "#002699" ElseIf dr("EstatusOSGral").ToString.Contiene("Asignado") Then - cevent.backgroundColor = "#025716" + cevent.backgroundColor = "#8E44AD" ElseIf dr("EstatusOSGral").ToString.Contiene("Finalizado") Then - cevent.backgroundColor = "#730505" + cevent.backgroundColor = "#26C281" ElseIf dr("EstatusOSGral").ToString.Contiene("Facturado") Then - cevent.backgroundColor = "#006699" + cevent.backgroundColor = "#4B77BE" ElseIf dr("EstatusOSGral").ToString.Contiene("Cobrado") Then - cevent.backgroundColor = "#007699" + cevent.backgroundColor = "#29b4b6" ElseIf dr("EstatusOSGral").ToString.Contiene("Cancelado") Then + cevent.backgroundColor = "#e43a45" End If events.Add(cevent) Next From aa5bd73b44c0825d24889e28fb39f668c3a87496 Mon Sep 17 00:00:00 2001 From: rakcsle Date: Tue, 9 Jul 2024 10:43:39 -0700 Subject: [PATCH 13/20] =?UTF-8?q?Cxc=20impreiosn,=20rep=20checaor=20preasi?= =?UTF-8?q?stencia=20d=C3=ADa=20=20siguiente=20retardo=20despues=20de=20ed?= =?UTF-8?q?icic=C3=B3n?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- App_Code/Timbrado.vb | 8 ++-- Compras/Compras.aspx.vb | 81 ++++++++++++++++++++++++++++++++++++++++- 2 files changed, 84 insertions(+), 5 deletions(-) diff --git a/App_Code/Timbrado.vb b/App_Code/Timbrado.vb index 02b8b497d..5592f5c09 100644 --- a/App_Code/Timbrado.vb +++ b/App_Code/Timbrado.vb @@ -895,10 +895,10 @@ Public Class Timbrado Equivalencia = 1 'condiciones especiales para el pago en pesos, facturas en moneda extranjera ElseIf MonedaPago = "MXN" AndAlso VentaAbreviaturaSAT <> "MXN" Then - VentaTipoCambio = Math.Round(VentaTipoCambio, 6) + VentaTipoCambio = Math.Round(VentaTipoCambio, 10) Equivalencia = Math.Round((1 / VentaTipoCambio), 10) ElseIf MonedaPago = "USD" AndAlso VentaAbreviaturaSAT <> "USD" Then - VentaTipoCambio = Math.Round(VentaTipoCambio, 6) + VentaTipoCambio = Math.Round(VentaTipoCambio, 10) Equivalencia = VentaTipoCambio End If @@ -924,8 +924,8 @@ Public Class Timbrado .TasaOCuota = drp("PorcentajeImpuesto").ToString().ToDecimal, .Impuesto = drp("TipoImpuesto").ToString, .Importe = drp("Importe").ToString().ToDecimal.RoundSQL, - .BaseMN = (drp("Base").ToString.ToDecimal / Equivalencia).RoundSQL(6), - .ImporteMN = (drp("Importe").ToString.ToDecimal / Equivalencia).RoundSQL(6) + .BaseMN = (drp("Base").ToString.ToDecimal / Equivalencia).RoundSQL(2), + .ImporteMN = (drp("Importe").ToString.ToDecimal / Equivalencia).RoundSQL(2) } ) diff --git a/Compras/Compras.aspx.vb b/Compras/Compras.aspx.vb index 46dc9e0b8..30e12e1e4 100644 --- a/Compras/Compras.aspx.vb +++ b/Compras/Compras.aspx.vb @@ -8557,6 +8557,8 @@ Partial Class Compras_Compras Protected Sub BtnActualizar_Click(sender As Object, e As EventArgs) Handles BtnActualizar.Click + Dim SeActualizoDetalle As Boolean = False + Dim CveSubProyectoPrincipal As Integer = AsignarSubProyectoPrincipal() If Not CveSubProyectoPrincipal > 0 Then Alert("Falta asignar Proyecto a la compra", TipoMensaje.MsgAdvertencia) @@ -8654,7 +8656,7 @@ Partial Class Compras_Compras CveTipoCompra:=DdlTipoCompra.SelectedValue.ToEntero, NoDeducible:=tNoDeducible, CveRetIVAConcepto:=TmpCveRetIVAConcepto, CveRetISRConcepto:=TmpCveRetISRConcepto, CveSubProyecto:=CveSubProyectoPrincipal, CveFolioGarantia:=DdlFolioGarantia.SelectedValue.ToEntero) Then If Not ComparaDatatables() Then - + SeActualizoDetalle = True 'Regeneramos el concepto 6 de PrePolizas 'If UsuarioActual.Empresa.Funcionalidad(207) = "1" Then ' If Not RegenerarPrePoliza(ObjContabilidad, ObjContaAC, 6, False, MultiplicadorNC) Then @@ -9143,6 +9145,7 @@ Partial Class Compras_Compras ObjCompra.RollBack() If ObjContaAC IsNot Nothing Then ObjContaAC.RollBack() + SeActualizoDetalle = False Finally If Retorno Then If ObjContabilidad.MensajePolizaDescuadre IsNot Nothing AndAlso ObjContabilidad.MensajePolizaDescuadre.ToString <> "" Then @@ -9161,6 +9164,7 @@ Partial Class Compras_Compras ObjCompra.RollBack() If ObjContaAC IsNot Nothing Then ObjContaAC.RollBack() Alert("Ocurrió un error al actualizar la compra, por favor vuelva a intentar.", TipoMensaje.MsgAdvertencia) + SeActualizoDetalle = False End If If ObjContaAC IsNot Nothing Then ObjContaAC.Dispose() @@ -9176,6 +9180,81 @@ Partial Class Compras_Compras CargaGvBitacora() UpBitacora.Update() + + + If SeActualizoDetalle Then + MandaCorreoActualizacionDetalle(CveCompra) + End If + + End Sub + + Private Sub MandaCorreoActualizacionDetalle(CveCompra As Integer) + + If UsuarioActual.CveRol <> 1 Then + Exit Sub + End If + + Dim DTCorreos As New DataTable + Dim DTMovimientos As New DataTable + Dim strBody As New StringBuilder + Dim Asunto, Para, ArrayCC, Body As String + Para = GlobalDTUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa).FiltroPrimeroValor("Correo") + + If Para.ToString = "" AndAlso UsuarioActual.CveRol = 1 Then + Para = "oscar.irigoyen@adssistemas.mx" + End If + + Dim uri As Uri = HttpContext.Current.Request.Url + Dim URlCompleta As String = uri.AbsoluteUri + + Dim SerieFolioCompra As String = $"{TxtSerie.Text}{If(TxtSerie.Text.Trim.Length > 0, "-", "")}{TxtFolio.Text.Trim}" + + strBody.Append(" ") + strBody.Append(" ") + strBody.Append(" ") + strBody.Append(" ") + strBody.Append("") + strBody.Append($"

Se realizo una actualización en los detalles de la compra {SerieFolioCompra}

") + strBody.Append("") + + strBody.Append("") + + + '' ENVIO DEL CORREO + Asunto = $"Actualizacion de Compra {SerieFolioCompra}" + ArrayCC = "" + Body = strBody.ToString + Dim Mail As New ClsSisMail() + Mail.SendMail(ClsPaginas.EmpresaNotificaciones, Para, Asunto, Body, ArrayCC) + + + End Sub Private Function ComparaDatatables() As Boolean From 9d29abdea2fbe3455d3886637a928cd8652b2ffe Mon Sep 17 00:00:00 2001 From: rrene Date: Tue, 9 Jul 2024 11:09:31 -0700 Subject: [PATCH 14/20] =?UTF-8?q?--=20no=20subir,=20cambios=20=20a=20medio?= =?UTF-8?q?=20terminar,=20continuar=C3=A1=20oscar?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Compras/eFacturas.aspx | 2 +- Compras/eFacturas.aspx.vb | 598 +++++++++++++++++++++++++++++++++++--- 2 files changed, 553 insertions(+), 47 deletions(-) diff --git a/Compras/eFacturas.aspx b/Compras/eFacturas.aspx index 061e4ba57..1081e1dde 100644 --- a/Compras/eFacturas.aspx +++ b/Compras/eFacturas.aspx @@ -1047,7 +1047,7 @@ - -
-
- Cliente: - - +
+ <%--DESCRIPCION--%> +
+ + +
- - -
- - - -
-
@@ -492,84 +480,70 @@
+ +
+
+ <%--MEDICO--%> +
+ + +
+
+
+ <%--PROCEDIMIENTO--%> +
+ + +
+
+
+
+
+ <%--TIPO VENTA--%> +
+ + +
+
+
+ <%--TÉCNICO--%> +
+ + +
+

-
+
-
-
- - - - <%-- - --%> - - -
-
-
- +
+ + + + + +
+
+
- - -
+
- - + @@ -925,10 +899,10 @@ if (validando == 1) { var timestamp = Date.parse(Text); - if (isNaN(timestamp) == false) { + <%--if (isNaN(timestamp) == false) { $('#<%=LnkValidaHorarioNoOperativo.ClientID%>').click(); - } + }--%> } diff --git a/OS/RepServiciosMedicos.aspx.vb b/OS/RepServiciosMedicos.aspx.vb index 4d33a8f19..a3e7bfff5 100644 --- a/OS/RepServiciosMedicos.aspx.vb +++ b/OS/RepServiciosMedicos.aspx.vb @@ -251,8 +251,6 @@ Partial Class OS_RepServiciosMedicos Asignacion End Enum - - #End Region Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load @@ -268,15 +266,7 @@ Partial Class OS_RepServiciosMedicos InicializaCalendar() GetCargaTiposOrden() cargaDropsModal() - CargaClientePublicoGeneral() - If UsuarioActual.TienePermisoProceso(348) Then - DVModalAsignacion.Visible = True - End If - - If UsuarioActual.TienePermisoProceso(352) Then - LnkCancelarOrden.Visible = True - End If End If End Sub @@ -374,10 +364,6 @@ Partial Class OS_RepServiciosMedicos 'ObjOS.Dispose() - DdlTecnicoAsignar.DataSource = DTTecnicos 'GlobalDTUsuarios(-1, UsuarioActual.CveEmpresa).FiltraParametros("Estatus = 'True'") - DdlTecnicoAsignar.DataBind() - DdlTecnicoAsignar.Items.Insert(0, New ListItem("Seleccione uno", "-1")) - UpModalOS.Update() End Sub @@ -592,38 +578,28 @@ Partial Class OS_RepServiciosMedicos 'DdlClientesWS.txtText.Value = "" 'DdlClientesWS.txtValue.Value = "" - If UsuarioActual.Empresa.Funcionalidad(105) = "1" Then - DdlClientesWS.setEsWebService(True) - Else - DdlClientesWS.setEsWebService(False) - CargaClientes() - End If + 'If UsuarioActual.Empresa.Funcionalidad(105) = "1" Then + ' DdlClientesWS.setEsWebService(True) + 'Else + ' DdlClientesWS.setEsWebService(False) + ' CargaClientes() + 'End If End Sub Private Sub CargaClientes() - If Not UsuarioActual.Empresa.Funcionalidad(105) = "1" Then - DdlClientesWS.ddl.Items.Clear() - DdlClientesWS.DataSource = GlobalDTCliente(UsuarioActual.CveEmpresa, -1) - DdlClientesWS.DataBind() - DdlClientesWS.ddl.Items.Insert(0, New ListItem("Todos", "-1")) - End If + 'If Not UsuarioActual.Empresa.Funcionalidad(105) = "1" Then + ' DdlClientesWS.ddl.Items.Clear() + ' DdlClientesWS.DataSource = GlobalDTCliente(UsuarioActual.CveEmpresa, -1) + ' DdlClientesWS.DataBind() + ' DdlClientesWS.ddl.Items.Insert(0, New ListItem("Todos", "-1")) + 'End If End Sub Private Sub LipiaModalOS() - TxtSolicito.Text = "" TxtDescripcion.Text = "" TxtFechaOS.Text = "" - - DdlClientesWS.txtText.Value = "" - DdlClientesWS.txtValue.Value = "" - DdlClientesWS.ddl.SelectedValueExist("-1") - DdlTecnicoAsignar.SelectedValueExist("-1") - - 'TSTimeSelector.Hour = NowADS().Hour - 'TSTimeSelector.Minute = NowADS().Minute - CveTecnicoAsignarOrioginal = -1 FechaInicioOriginal = NowADS() @@ -642,12 +618,6 @@ Partial Class OS_RepServiciosMedicos LipiaModalOS() If TipoAccion = OSModalTipoAccion.Agregar Then - If UsuarioActual.Empresa.Funcionalidad(105) = "1" Then - DdlClientesWS.txtValue.Value = CveClientePublicoGeneral.ToString - DdlClientesWS.txtText.Value = NombreClientePublicoGeneral - Else - DdlClientesWS.ddl.SelectedValueExist(CveClientePublicoGeneral) - End If TxtFechaOS.Text = NowADS().ToString("dd/MM/yyyy") RegistraScript("$('#DVModalOS').modal('show');") @@ -656,60 +626,51 @@ Partial Class OS_RepServiciosMedicos ElseIf TipoAccion = OSModalTipoAccion.Actualizacion Or TipoAccion = OSModalTipoAccion.Asignacion Then 'cargaDropsModal() - LblModalOStitulo.Text = "Actualizar Orden de Servicio" - - + LblModalOStitulo.Text = "Orden de Servicio" Dim IDOSDetalle As Integer = 1 Dim SeFacturara = "" Dim CveOsConsultar As Integer = HFCveOS.Value.ToEntero - 'If Not CveOsConsultar > 0 AndAlso Not DdlOrdenesSinAsignar.SelectedValue.ToEntero > 0 Then - ' Alert("clave de orden de servicio no encontrada.", TipoMensaje.MsgAdvertencia) - ' Exit Sub - 'End If - If CveOsConsultar > 0 Then DdlOrdenesSinAsignar.SelectedValueExist(-1) End If Dim ObjOS As New ClsOS() If ObjOS.GetOrdenesServicios(CveOsConsultar, -1, -1, -1, -1, UsuarioActual.CveEmpresa, CveOSDetalle:=DdlOrdenesSinAsignar.SelectedValue.ToEntero) Then + Dim thospital As String = ObjOS.Cliente + If ObjOS.CveClienteSucursal > 0 Then + thospital = GlobalDTClientesSucursales(ObjOS.CveEmpresa, ObjOS.CveCliente).FiltroPrimeroValor("SucursalCliente", $"CveClienteSucursal = {ObjOS.CveClienteSucursal}") + End If DVFolio.Visible = True HLkFolio.Text = ObjOS.Folio.ToString HLkFolio.NavigateUrl = $"/OS/OrdenesServicios.aspx?CveOS={ObjOS.CveOS}" - HLKPDF.NavigateUrl = $"/Compras/PopUpVerFactura.aspx?P={Encripta(String.Format("OP=OS&CVEOS={0}", ObjOS.CveOS))}" - HFCveOS.Value = ObjOS.CveOS.ToString HFCveOsDetalle.Value = ObjOS.CveOSDetalle.ToString TxtDescripcion.Text = ObjOS.Descripcion - TxtSolicito.Text = ObjOS.PersonaSolicito - TxtFechaOS.Text = ObjOS.FechaRecepcion.ToString("dd/MM/yyyy") - 'DdlSubProyectoOS.SelectedValueExist(ObjOS.CveSubProyecto) - DdlClientesWS.txtText.Value = ObjOS.Cliente - DdlClientesWS.txtValue.Value = ObjOS.CveCliente.ToString - DdlClientesWS.ddl.SelectedValueExist(ObjOS.CveCliente.ToString) + TxtFechaOS.Text = ObjOS.FechaCita.ToString("dd/MM/yyyy HH:mm") + TxtProcedimiento.Text = GlobalDTProcedimientos(UsuarioActual.CveEmpresa).FiltroPrimeroValor("Procedimiento", "CveProcedimiento =" & ObjOS.CveProcedimiento) + TxtMedico.Text = GlobalDTMedicos(UsuarioActual.CveEmpresa).FiltroPrimeroValor("Medico", "CveMedico =" & ObjOS.CveMedico) + TxtCliente.Text = thospital + TxtTipoVenta.Text = GlobalDTTipoVenta(UsuarioActual.CveEmpresa).FiltroPrimeroValor("TipoVenta", $"CveTipoVenta ={ObjOS.CveTipoVenta}") + TxtTecnico.Text = ObjOS.UsuarioAtendio - If TipoAccion = OSModalTipoAccion.Actualizacion Then - DdlTecnicoAsignar.SelectedValueExist(ObjOS.CveUsuarioAtendio) - CveTecnicoAsignarOrioginal = ObjOS.CveUsuarioAtendio - FechaInicioOriginal = ObjOS.FechaInicio - - DvModalSubProyecto.Visible = True - LblModalOStitulo.Text = "Actualizar Orden de Servicio" - 'TSTimeSelector.Hour = If(ObjOS.FechaInicio.Hour > 12, ObjOS.FechaInicio.Hour - 12, ObjOS.FechaInicio.Hour) - 'TSTimeSelector.Minute = ObjOS.FechaInicio.Minute - 'TSTimeSelector.AmPm = If(ObjOS.FechaInicio.Hour > 12, MKB.TimePicker.TimeSelector.AmPmSpec.PM, MKB.TimePicker.TimeSelector.AmPmSpec.AM) + Dim tCve As Integer = ObjOS.CveVenta 'busca la remisión + If tCve <= 0 Then tCve = ObjOS.CveCotizacion 'sino hay remisión toma el pedido + If tCve > 0 Then + Dim objv As New ClsVentas + Dim dttps As New DataTable + If objv.GetVentaDetalle(tCve) Then + dttps = objv.DtResultados + End If + objv.Dispose() + GvPS.DataSource = dttps + GvPS.DataBind() End If - - Dim TipoEstatus As Integer = 0 TipoEstatus = GlobalDTEstatusOrdenServicios(UsuarioActual.CveEmpresa).FiltroPrimeroValor("TipoEstatus", String.Format("CveEstatusOrdenServicio = {0}", ObjOS.CveEstatusOrdenServicio), "CveEstatusOrdenServicio ASC").ToEntero - 'LnkModalAsignar.Visible = If(TipoEstatus.Contiene(4, 5), False, True) - LnkCancelarOrden.Visible = If(TipoEstatus.Contiene(4, 5), False, True) - If (TipoEstatus = 5) Then LblModalOStitulo.Text = "Orden Cancelada" End If @@ -752,345 +713,6 @@ Partial Class OS_RepServiciosMedicos End Sub - Protected Sub LnkModalAsignar_Click(sender As Object, e As EventArgs) - - Dim TieneError As Boolean = False - Dim CveEstatusSolicidato = GlobalDTEstatusOrdenServicios(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveEstatusOrdenServicio", "TipoEstatus = 1", "CveEstatusOrdenServicio ASC").ToEntero - Dim CveEstatusAsiganada = GlobalDTEstatusOrdenServicios(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveEstatusOrdenServicio", "TipoEstatus = 2", "CveEstatusOrdenServicio ASC").ToEntero - - Dim CveCliente As Integer = If(Not DdlClientesWS.SelectedValue.ToEntero > 0, DdlClientesWS.txtValue.Value.ToString.ToEntero, DdlClientesWS.SelectedValue.ToEntero) - Dim CvePSDetalle As Integer = UsuarioActual.Empresa.Funcionalidad(708).ToEntero - Dim EsNueva As Boolean = False - - - Dim CveOS As Integer = HFCveOS.Value.ToEntero - Dim CveOsDetalle As Integer = HFCveOsDetalle.Value.ToEntero - - - Dim CveSubProyectoTecnico As Integer = If(DdlTecnicoAsignar.SelectedValue.ToEntero > 0, GlobalDTUsuarios(DdlTecnicoAsignar.SelectedValue.ToEntero, UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveSubProyecto", " CveSubProyecto > 0 ").ToEntero, -1) - - If CveSubProyectoTecnico = 0 And DdlTecnicoAsignar.SelectedValue.ToEntero = 100 Then - CveSubProyectoTecnico = GlobalDTSubProyectos(-1, -1, UsuarioActual.CveEmpresa, 1).FiltroPrimeroValor("CveSubProyecto").ToEntero - End If - - - If TipoAccion = OSModalTipoAccion.Asignacion AndAlso Not CveSubProyectoTecnico > 0 Then - Alert("No se encontro el subproyecto o centro de costo del tecnico seleccionado.") - Exit Sub - End If - - If Not CvePSDetalle > 0 Then - Alert("No esta asiganado el producto del detalle a la funcionalidad.") - Exit Sub - End If - - If Not CveCliente > 0 Then - Alert("Debe seleccionar una cliente.") - Exit Sub - End If - - If TipoAccion = OSModalTipoAccion.Asignacion Then - - If Not DdlTecnicoAsignar.SelectedValue.ToEntero > 0 Then - Alert("El tecnico es requerido", TipoMensaje.MsgAdvertencia) - Exit Sub - End If - - - - End If - - Dim ObjOS As New ClsOS - ObjOS.IniciaTransacSQL() - - If CveOS > 0 Then - - Dim CveEstatusOrden = CveEstatusSolicidato - If DdlTecnicoAsignar.SelectedValue.ToEntero > 0 Then - CveEstatusOrden = CveEstatusAsiganada - End If - - If TipoAccion = OSModalTipoAccion.Asignacion Then - CveEstatusOrden = CveEstatusAsiganada - End If - - CveOS = HFCveOS.Value.ToEntero - CveOsDetalle = HFCveOsDetalle.Value.ToEntero - - If CveOS > 0 Then - - If Not ObjOS.UpdateOrdenesServicios(TxtSolicito.Text, TxtFechaOS.Text, TxtDescripcion.Text, UsuarioActual.CveUsuario, CveEstatusOrden, CveOS, UsuarioActual.CveUsuario, - -1, CveClienteSucursal:=-1, Direccion:="", Telefono:="", - CveSubProyecto:=CveSubProyectoTecnico, Correo:="") Then - TieneError = True - End If - Else - TieneError = True - End If - - End If - - 'Dim picker As MKB.TimePicker.TimeSelector = TSTimeSelector - 'Dim time As DateTime - 'time = DateTime.Parse(String.Format("{0} {1}:{2} {3}", TxtModalFechaOS.Text, picker.Hour, picker.Minute, picker.AmPm)) - - If Not TieneError AndAlso CveOS > 0 AndAlso CveOsDetalle > 0 AndAlso DdlTecnicoAsignar.SelectedValue.ToEntero > 0 AndAlso - (HFCveUsuarioAtendio.Value.ToEntero <> DdlTecnicoAsignar.SelectedValue.ToEntero) Then - - - 'If Not ObjOS.UpdateOrdenesServiciosAsignadas(CveOsDetalle, DdlTecnicoAsignar.SelectedValue.ToEntero, TxtModalFechaOS.Text.ToDate, TxtModalFechaOS.Text.ToDateTime(), UsuarioActual.CveEmpresa, UsuarioActual.CveUsuario) Then - ' TieneError = True - 'End If - - - 'If ObjOS.GetSubProyectosEstatusInicial(DdlTecnicoAsignar.SelectedValue.ToEntero, 3, UsuarioActual.CveEmpresa) Then - ' Dim subProyectoDelTecnico As DataTable - ' subProyectoDelTecnico = ObjOS.DtResultados.FiltraParametros($"CveSubProyecto = {CveSubProyectoTecnico}") - - ' If subProyectoDelTecnico.Rows.Count > 0 Then - ' If Not ObjOS.UpdateOrdenesServiciosAsignadas(CveOsDetalle, DdlTecnicoAsignar.SelectedValue.ToEntero, TxtModalFechaOS.Text.ToDate, TxtModalFechaOS.Text.ToDateTime(), UsuarioActual.CveEmpresa) Then - ' TieneError = True - ' End If - ' Else - ' Alert("El técnico y la Orden de Servicio deben pertenecer al mismo subProyecto", TipoMensaje.MsgAdvertencia) - ' TieneError = True - ' End If - 'End If - - - - If Not TieneError Then - - If Not ObjOS.UpdateOrdenesServiciosEstatus(CveEstatusAsiganada, UsuarioActual.CveUsuario, CveOS) Then - TieneError = True - End If - - If Not TieneError Then - - - Dim ObjEventos As New ClsOIEventos(ObjOS.IniciaTransacSQL()) - - If HFOCveOIEvento.Value.ToEntero > 0 Then - - If Not ObjEventos.RemoveAgendaBitacora(HFOCveOIEvento.Value.ToEntero, UsuarioActual.CveEmpresa) Then - TieneError = True - End If - - End If - - - Dim RecurrenciaTipo = 0, Frecuencia = -1, DiasSemana = "-1", Dias = -1, Mes = -1, RecurrenciaFin = "-1" - Dim OIDescripcion As String = $"{DdlTecnicoAsignar.SelectedItem.Text} Orden de servicio {FolioAsignar} " - If Not ObjEventos.AddEventoAgenda(2, DdlTecnicoAsignar.SelectedItem.Text, OIDescripcion, 2, TxtFechaOS.Text.ToDateTime(), TxtFechaOS.Text.ToDateTime().AddHours(1), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, - RecurrenciaTipo:=RecurrenciaTipo, Frecuencia:=Frecuencia, DiasSemana:=DiasSemana, Dia:=Dias, Mes:=Mes, RecurrenciaFin:=RecurrenciaFin, CveTipoEvento:=2, - Importe:=0, CveOS:=CveOS, CveSubProyecto:=CveSubProyectoTecnico, CveUsuarioPara:=DdlTecnicoAsignar.SelectedValue.ToEntero) Then - TieneError = True - End If - End If - End If - End If - - If Not TieneError Then - ObjOS.Commit() - Else - ObjOS.RollBack() - End If - ObjOS.Dispose() - - Dim CorreoAsignado As String = GlobalDTUsuarios(DdlTecnicoAsignar.SelectedValue.ToEntero).Rows(0)("Correo").ToString - If Not TieneError And CorreoAsignado.Trim.Length > 0 AndAlso DdlTecnicoAsignar.SelectedValue.ToEntero > 0 Then - CorreoAsignado = GlobalDTUsuarios(DdlTecnicoAsignar.SelectedValue.ToEntero).Rows(0)("Correo").ToString - MandaCorreOS(CveOS, CorreoAsignado) - End If - - 'If Not TieneError And TxtEmail.Text.Trim.Length > 0 AndAlso DdlTecnicoAsignar.SelectedValue.ToEntero > 0 Then - ' MandaCorreOS(CveOS, TxtEmail.Text, True) - 'End If - - If Not TieneError Then - - ConsultaOrdenesServiciosNoAsignadas() - CargaOrdenesServiciosNoAsignadas() - - If TipoAccion = OSModalTipoAccion.Asignacion Then - Alert("Orden asignada correctamente.") - ElseIf TipoAccion = OSModalTipoAccion.Agregar Then - Alert("Orden Guardada correctamente.") - ElseIf TipoAccion = OSModalTipoAccion.Actualizacion Then - Alert("Orden actualizada correctamente.") - End If - - RegistraScript("$('#DVModalOS').modal('hide');Calendario();") - - End If - - End Sub - - Private Sub MandaCorreOS(CveOS As Integer, CorreoUsuarioAsignado As String, Optional EsCliente As Boolean = False) - - Dim ObjOS As New ClsOS() - Dim params As New List(Of ReportParameter) - Dim CveFolio = "" - - Dim TmpDTOS = New DataTable - TmpDTOS.Columns.Add("CveOSDetalle", GetType(Integer)) - - TmpDTOS.Columns.Add("CveClasificacion", GetType(Integer)) - TmpDTOS.Columns.Add("Clasificacion", GetType(String)) - TmpDTOS.Columns.Add("CvePS", GetType(Integer)) - TmpDTOS.Columns.Add("CveUM", GetType(Integer)) - TmpDTOS.Columns.Add("UM", GetType(String)) - TmpDTOS.Columns.Add("Cantidad", GetType(Integer)) - TmpDTOS.Columns.Add("PS", GetType(String)) - TmpDTOS.Columns.Add("Especificaciones", GetType(String)) - TmpDTOS.Columns.Add("Materiales", GetType(String)) - TmpDTOS.Columns.Add("CveCuentaEquipo", GetType(Integer)) - TmpDTOS.Columns.Add("Observaciones", GetType(String)) - TmpDTOS.Columns.Add("FechaAtencion", GetType(String)) - TmpDTOS.Columns.Add("CveUsuarioAtendio", GetType(Integer)) - TmpDTOS.Columns.Add("UsuarioAtendio", GetType(String)) - TmpDTOS.Columns.Add("FechaTermino", GetType(String)) - TmpDTOS.Columns.Add("FechaEntrega", GetType(String)) - TmpDTOS.Columns.Add("CveUsuarioEntrego", GetType(Integer)) - TmpDTOS.Columns.Add("UsuarioEntrego", GetType(String)) - TmpDTOS.Columns.Add("SeFacturara", GetType(String)) - TmpDTOS.Columns.Add("SeSuperviso", GetType(String)) - TmpDTOS.Columns.Add("Estatus", GetType(String)) - TmpDTOS.Columns.Add("Archivo", GetType(String)) - TmpDTOS.Columns.Add("ComentarioTecnico", GetType(String)) - - - Dim TmpDTMaterialesOS = New DataTable - TmpDTMaterialesOS.Columns.Add("CveOSDetalle", GetType(Integer)) - TmpDTMaterialesOS.Columns.Add("CveConsecutivo", GetType(Integer)) - TmpDTMaterialesOS.Columns.Add("CveConsecutivoDetalle", GetType(Integer)) - TmpDTMaterialesOS.Columns.Add("CveMaterial", GetType(Integer)) - TmpDTMaterialesOS.Columns.Add("Cantidad", GetType(Integer)) - TmpDTMaterialesOS.Columns.Add("CveClasificacion", GetType(Integer)) - TmpDTMaterialesOS.Columns.Add("CvePS", GetType(String)) - TmpDTMaterialesOS.Columns.Add("CveUM", GetType(String)) - TmpDTMaterialesOS.Columns.Add("Clasificacion", GetType(String)) - TmpDTMaterialesOS.Columns.Add("PS", GetType(String)) - TmpDTMaterialesOS.Columns.Add("UM", GetType(String)) - - Dim FolioOS As String = "" - - Dim RutaReporte As New System.IO.FileInfo(String.Format("{0}Formatos/OrdenServicio.rdlc", UsuarioActual.Empresa.Ruta)) - - If ObjOS.GetOrdenesServicios(CveOS, -1, -1, -1, -1, UsuarioActual.CveEmpresa) Then - If ObjOS.DtResultados.Rows.Count > 0 Then - - Dim dtOS As DataTable = ObjOS.DtResultados - Dim dr As DataRow = dtOS.Rows(0) - params.Add(New ReportParameter("Cliente", dr("Cliente").ToString)) - params.Add(New ReportParameter("Solicito", dr("PersonaSolicito").ToString)) - params.Add(New ReportParameter("Descripcion", dr("Descripcion").ToString)) - params.Add(New ReportParameter("Recibio", UsuarioActual.Nombre)) - params.Add(New ReportParameter("FechaRecibido", dr("FechaRecepcion").ToString.ToDate.ToString("dd/MM/yyyy"))) - params.Add(New ReportParameter("FolioOS", dr("Folio").ToString)) - params.Add(New ReportParameter("ClienteTelefono", dr("Telefono").ToString)) - params.Add(New ReportParameter("ClienteCalle", dr("Direccion").ToString)) - params.Add(New ReportParameter("ClienteColonia", dr("Colonia").ToString)) - params.Add(New ReportParameter("ClienteCiudad", dr("Ciudad").ToString)) - params.Add(New ReportParameter("ClienteEstado", dr("Estado").ToString)) - CveFolio = dr("Folio").ToString - - 'If RutaReporte.Exists Then - params.Add(New ReportParameter("NoDeCliente", dr("CveCliente").ToString)) - params.Add(New ReportParameter("RFC", dr("RFC").ToString)) - params.Add(New ReportParameter("Vendedor", " ")) - params.Add(New ReportParameter("Correo", dr("Correo").ToString)) - params.Add(New ReportParameter("CodigoDeServicio", dr("CveOS").ToString)) - params.Add(New ReportParameter("Sucursal", dr("SubProyecto").ToString)) - params.Add(New ReportParameter("TipoServicio", dr("TipoServicio").ToString)) - params.Add(New ReportParameter("TipoEquipo", dr("TipoEquipo").ToString)) - 'params.Add(New ReportParameter("Descripcion", dr("Descripcion").ToString)) - params.Add(New ReportParameter("Copia", "Copia: Original")) - params.Add(New ReportParameter("Equipo", dr("Equipo").ToString)) - - params.Add(New ReportParameter("DireccionOS", dr("DireccionOS").ToString)) - params.Add(New ReportParameter("Telefono", dr("Telefono").ToString)) - params.Add(New ReportParameter("CorreoOS", dr("CorreoOS").ToString)) - - params.Add(New ReportParameter("ModeloMarca", dr("ModeloMarca").ToString)) - params.Add(New ReportParameter("Año", dr("Año").ToString)) - params.Add(New ReportParameter("TelefonoContacto", dr("TelefonoContacto").ToString)) - - params.Add(New ReportParameter("FechaImpresion", NowADS().ToString("dd/MM/yyyy"))) - params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Usuario)) - params.Add(New ReportParameter("Condiciones", dr("Condiciones").ToString)) - params.Add(New ReportParameter("FechaAtencion", If(dr("FechaInicio").ToString.Length > 0, dr("FechaInicio").ToString.ToDate.ToString("dd/MM/yyyy hh:mm tt"), ""))) - params.Add(New ReportParameter("TecnicoAsignado", dr("UsuarioAtendio").ToString)) - - 'End If - - End If - End If - - Dim Imagen As New System.IO.FileInfo($"{UsuarioActual.Empresa.Ruta}/Logo.png") - - If Not RutaReporte.Exists Then - - RutaReporte = New System.IO.FileInfo(String.Format("{0}Empresas\Grales\Formatos\OrdenServicio.rdlc", ModExtensiones.DirectorioBaseEmpresas)) - - params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa)) - params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre)) - params.Add(New ReportParameter("FechaImpresion", NowADS().ToDateTime.ToShortDateString)) - params.Add(New ReportParameter("LogoPath", If(Imagen.Exists, $"file://{Imagen.FullName}", ""))) - - End If - - - If ObjOS.GetOrdenesServiciosDetalle(CveOS) Then - TmpDTMaterialesOS = ObjOS.DtResultados - End If - - Dim lrds As New List(Of ReportDataSource) - Dim rds As New ReportDataSource With {.Name = "DataSet2", .Value = TmpDTMaterialesOS} - Dim rds2 As New ReportDataSource With {.Name = "DataSet1", .Value = TmpDTMaterialesOS} - - lrds.Add(rds) - lrds.Add(rds2) - ObjOS.Dispose() - - Dim ReporteByte As Byte() = StreamPDF(RutaReporte.FullName, lrds, params, NombreArchivo:=String.Format("OrdenServicio-{0}", CveFolio)) - - If ReporteByte IsNot Nothing Then - Try - ViewState("Para") = CorreoUsuarioAsignado - ViewState("ArrayCC") = "" - ViewState("Asunto") = "Asinación Orden de Servicio" - ViewState("FolioOSMail") = FolioOS - ViewState("Body") = "Asinación Orden de Servicio" - - - ViewState("bytesOS") = ReporteByte - Dim Hilo As New Threading.Thread(AddressOf SendmailOS) - Hilo.Start() - Catch ex As Exception - GuardaLogAD($"Error al enviar correo de OS {ex.StackTrace}") - End Try - End If - - End Sub - - Private Sub SendmailOS() - - Dim Asunto, Para, ArrayCC, Body As String - Asunto = If(IsNothing(ViewState("Asunto")), "", ViewState("Asunto").ToString) - Para = If(IsNothing(ViewState("Para")), "", ViewState("Para").ToString) - ArrayCC = If(IsNothing(ViewState("ArrayCC")), "", ViewState("ArrayCC").ToString) - - Body = If(IsNothing(ViewState("Body")), "", ViewState("Body").ToString) - - - Dim Mail As New ClsSisMail() - Dim LSRutasMail As New List(Of ClsSisMail.ArchivoMail) - LSRutasMail.Add(New ClsSisMail.ArchivoMail With {.NombreArchivo = $"OS_{ViewState("FolioOSMail") }.pdf", .ArchivoBinario = DirectCast(ViewState("bytesOS"), Byte())}) - Mail.SendMail(ClsPaginas.EmpresaNotificaciones, Para, Asunto, Body, ArrayCC, LSRutasMail) - - End Sub - Private Sub GetCargaTiposOrden() Dim ObjOS As New ClsOS @@ -1113,120 +735,5 @@ Partial Class OS_RepServiciosMedicos End Sub - Protected Sub DdlTecnicoAsignar_SelectedIndexChanged(sender As Object, e As EventArgs) - - If TipoAccion = OSModalTipoAccion.Asignacion Then - - - 'DdlTecnicoAsignar.Visible = True - 'RfvDdlTecnicoAsignar.Visible = True - 'VCERfvDdlTecnicoAsignar.Visible = True - - 'RfvTxtModalFechaOS.Visible = True - 'VceRfvTxtModalFechaOS.Enabled = True - ElseIf TipoAccion = OSModalTipoAccion.Agregar Or TipoAccion = OSModalTipoAccion.Actualizacion Then - - 'DdlTecnicoAsignar.Visible = False - 'RfvDdlTecnicoAsignar.Visible = False - ' VCERfvDdlTecnicoAsignar.Visible = False - - 'RfvTxtModalFechaOS.Visible = False - 'VceRfvTxtModalFechaOS.Enabled = False - - End If - - UpModalOS.Update() - - End Sub - - Private Sub CargaClientePublicoGeneral() - - Dim ObjCliente As New ClsClientes() - - If ObjCliente.GetClientes(-1, "PUBLICO EN GENERAL", "-1", "-1", "-1", "-1", "-1", -1, UsuarioActual.CveEmpresa, -1) Then - - If ObjCliente.DtResultados.Rows.Count > 0 Then - Me.CveClientePublicoGeneral = ObjCliente.CveCliente - Me.NombreClientePublicoGeneral = ObjCliente.Nombre - End If - End If - ObjCliente.Dispose() - - End Sub - - - Protected Sub DdlTecnicoAsignar_SelectedIndexChanged1(sender As Object, e As EventArgs) - ValidaHorarioNoOperativo() - End Sub - - Protected Sub LnkValidaHorarioNoOperativo_Click(sender As Object, e As EventArgs) - ValidaHorarioNoOperativo() - End Sub - - Private Sub ValidaHorarioNoOperativo() - If DdlTecnicoAsignar.SelectedValue.ToEntero > 0 Then - - Dim objOS As New ClsOS - Dim DTHorarios As New DataTable - - If objOS.GetOrdenesServiciosTecnicoHorarioNoOperativo(DdlTecnicoAsignar.SelectedValue.ToEntero, UsuarioActual.CveEmpresa) Then - DTHorarios = objOS.DtResultados - End If - objOS.Dispose() - - If DTHorarios IsNot Nothing AndAlso DTHorarios.Rows.Count > 0 Then - - Dim HoraInicio As TimeSpan = DTHorarios.Rows(0)("HoraInicio").ToString.ToDate.TimeOfDay - Dim HoraFin As TimeSpan = DTHorarios.Rows(0)("HoraFin").ToString.ToDate.TimeOfDay - Dim HoraAsignacion As TimeSpan = TxtFechaOS.Text.ToDate.TimeOfDay - - If HoraAsignacion >= HoraInicio And HoraAsignacion <= HoraFin Then - Alert($"La hora especificada esta dentro del horario no operativo del Técnico {HoraInicio.ToString()} a {HoraFin.ToString()} .", TipoMensaje.MsgAdvertencia) - End If - End If - 'ViewState("Validando") = Nothing - - End If - End Sub - - Protected Sub LnkCancelarOrden_Click(sender As Object, e As EventArgs) - - RegistraScript($"$('#{TxtModalCancelarOrdenMotivo.ClientID}').focus();;$('#DVModalCancelacionOrden').modal('show');") - - TxtModalCancelarOrdenMotivo.Focus() - TxtModalCancelarOrdenMotivo.Text = "" - UpmodalCacelaOrden.Update() - - End Sub - - - - Protected Sub LnkmodalCancelarORdenServicio_Click(sender As Object, e As EventArgs) - - Dim TieneError As Boolean = True - Dim CveOS As Integer = HFCveOS.Value.ToEntero - Dim objOS As New ClsOS - Dim ObjEventoBitacora As New ClsOIEventos(objOS.IniciaTransacSQL) - If objOS.UpdateOrdenesServiciosFinaliza(CveOS, -1, -1, UsuarioActual.CveEmpresa, Opcion:=2) Then 'Opcion:=2 Es para cancelar - If ObjEventoBitacora.AddEventoBitacora($"Motivo Cancelación: {TxtModalCancelarOrdenMotivo.Text.Trim}", "", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, CveOS, -1, -1, -1, -1) Then - TieneError = False - End If - End If - - If TieneError Then - objOS.RollBack() - Else - objOS.Commit() - End If - - objOS.Dispose() - - - If Not TieneError Then - Alert("Orden Cancelada Correctamente", TipoMensaje.MsgInformacion, "location.reload(true);") - RegistraScript("$('#DVModalCancelacionOrden').modal('hide');") - RegistraScript("$('#DVModalFinalizarOrden').modal('hide');") - End If - End Sub End Class From 01aa605a245b4be949f3cfdebc1b3337efc9303f Mon Sep 17 00:00:00 2001 From: rrene Date: Wed, 10 Jul 2024 08:05:01 -0700 Subject: [PATCH 17/20] =?UTF-8?q?-visualizaci=C3=B3n=20de=20direcci=C3=B3n?= =?UTF-8?q?=20entrega?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Ventas/RepPedidosSTF.aspx | 49 ++++++++++++++++++++++++++++++++---- Ventas/RepPedidosSTF.aspx.vb | 5 ++++ 2 files changed, 49 insertions(+), 5 deletions(-) diff --git a/Ventas/RepPedidosSTF.aspx b/Ventas/RepPedidosSTF.aspx index b783ed353..4bea386f3 100644 --- a/Ventas/RepPedidosSTF.aspx +++ b/Ventas/RepPedidosSTF.aspx @@ -68,6 +68,44 @@
+ @@ -82,12 +120,13 @@ - - + + + - - - + + + diff --git a/Ventas/RepPedidosSTF.aspx.vb b/Ventas/RepPedidosSTF.aspx.vb index f9974ffa5..d32d8d548 100644 --- a/Ventas/RepPedidosSTF.aspx.vb +++ b/Ventas/RepPedidosSTF.aspx.vb @@ -15,6 +15,9 @@ Partial Class Ventas_RepPedidosSTF Private Sub CargaCombos() + txtFechaI.Text = NowADS.FirstDayOfMonth.ToShortDateString + txtFechaF.Text = NowADS.LastDayOfMonth.ToShortDateString + CargarCentrosDeCosto(DdlProyecto, DdlSubProyecto, LblProyecto, LblSubProyecto, divProyecto:=DivProyecto) 'Vendedor @@ -37,6 +40,8 @@ Partial Class Ventas_RepPedidosSTF If TabG.ActiveTabIndex = 1 Then ' entregados Opcion = 2 + FechaInicio = txtFechaI.Text.ToDate + FechaFin = txtFechaF.Text.ToDate Dim ObjVentas As New ClsVentas If ObjVentas.GetRepPedidosSTF(DdlSubProyecto.SelectedValue.ToEntero, DdlVendedor.SelectedValue.ToEntero, UsuarioActual.CveEmpresa, Opcion, FechaInicio, FechaFin) Then GvE.DataSource = ObjVentas.DtResultados From 4fd086f6d1a3e73f3d556cd96b6e17022de00878 Mon Sep 17 00:00:00 2001 From: rrene Date: Wed, 10 Jul 2024 08:05:15 -0700 Subject: [PATCH 18/20] =?UTF-8?q?--=20actualizaci=C3=B3n=20para=20compleme?= =?UTF-8?q?nto=20carta=20porte=203.1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Bin/GoCfdi.dll | Bin 543744 -> 551424 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/Bin/GoCfdi.dll b/Bin/GoCfdi.dll index 5ef366436086c04fc8681d44c7c08b4720036d72..2f89b7c04a7bd857acb408dd7200bad4d60dffde 100644 GIT binary patch delta 104746 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

$gP4iv7hDIpx@O3PQ1q9n6Svt7 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 *C61xprXZRql~miG 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 From fecabd3891c7553cbcb3fc44bbda577999b7a88d Mon Sep 17 00:00:00 2001 From: rrene Date: Wed, 10 Jul 2024 08:05:34 -0700 Subject: [PATCH 19/20] =?UTF-8?q?-=20ocultar=20rengl=C3=B3n=20de=20concept?= =?UTF-8?q?o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Contabilidad/CatCuentas.aspx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Contabilidad/CatCuentas.aspx b/Contabilidad/CatCuentas.aspx index f309b5bc1..57037de2d 100644 --- a/Contabilidad/CatCuentas.aspx +++ b/Contabilidad/CatCuentas.aspx @@ -179,7 +179,7 @@
-

+
Concepto
Date: Wed, 10 Jul 2024 17:14:41 -0700 Subject: [PATCH 20/20] Pago Acreedores --- Bancos/PagoAcreedor.aspx | 59 ++++++++++++++++++++++++++++++++++--- Bancos/PagoAcreedor.aspx.cs | 45 ++++++++++++++++++++++++++-- 2 files changed, 97 insertions(+), 7 deletions(-) diff --git a/Bancos/PagoAcreedor.aspx b/Bancos/PagoAcreedor.aspx index 704c2ed38..56deee488 100644 --- a/Bancos/PagoAcreedor.aspx +++ b/Bancos/PagoAcreedor.aspx @@ -272,7 +272,8 @@
- + +
@@ -284,7 +285,7 @@
- +
@@ -637,7 +638,21 @@ txt.value = ""; } - $get('TxtImporte').value = FormatoNumero(SumaValores(CveMonedaPago), 2); + let Suma = SumaValores(CveMonedaPago); + let TxtDDImporte; + if ($('#TxtDDImporte').length > 0) { + TxtDDImporte = parseFloat($('#TxtDDImporte').val().replace(/,/g, '')); + } else { + TxtDDImporte = 0; // Asigna un valor por defecto si el elemento no existe + } + + //let TxtDDImporte = parseFloat($('#TxtDDImporte').val().replace(/,/g, '')); + + if (!isNaN(TxtDDImporte)) { + Suma = Suma + TxtDDImporte; + } + + $get('TxtImporte').value = FormatoNumero(Suma, 2); } function FnCambia(chk, txt, saldo, op, text, CveMonedaPago) { @@ -653,7 +668,21 @@ txt.value = saldo; alert(text); } - var Suma = SumaValores(CveMonedaPago); + + let Suma = SumaValores(CveMonedaPago); + + //let TxtDDImporte = parseFloat($('#TxtDDImporte').val().replace(/,/g, '')); + let TxtDDImporte; + if ($('#TxtDDImporte').length > 0) { + TxtDDImporte = parseFloat($('#TxtDDImporte').val().replace(/,/g, '')); + } else { + TxtDDImporte = 0; // Asigna un valor por defecto si el elemento no existe + } + + if (!isNaN(TxtDDImporte) ) { + Suma = Suma + TxtDDImporte; + } + $get('TxtImporte').value = FormatoNumero(Suma, 2); if ($get('TxtTotal') != null) { @@ -720,6 +749,28 @@ return Importe } } + + + function validaDeudoresDiversos(CveMoneda) { + + $get('TxtImporte').value = FormatoNumero(SumaValores(CveMoneda), 2) + + let TxtImporte = parseFloat($get('TxtImporte').value.replace(/,/g, '')); + let TxtDDImporte = parseFloat($get('TxtDDImporte').value.replace(/,/g, '')); + + + + if (isNaN(TxtImporte) || isNaN(TxtDDImporte)) { + return; + } + let resultado = TxtImporte + TxtDDImporte; + + $get('TxtImporte').value = resultado.toFixed(2); + // $('#TxtDDImporte').val(TxtDDImporte.toFixed(2)); + + + } + diff --git a/Bancos/PagoAcreedor.aspx.cs b/Bancos/PagoAcreedor.aspx.cs index d72929c9c..dbae5d93f 100644 --- a/Bancos/PagoAcreedor.aspx.cs +++ b/Bancos/PagoAcreedor.aspx.cs @@ -6,6 +6,7 @@ using System.Text; using System.Web; using System.Web.UI.WebControls; using static Extensiones.ModExtensiones; +using static Microsoft.EntityFrameworkCore.DbLoggerCategory; public partial class Bancos_PagoAcreedor : ClsPaginas { @@ -140,6 +141,10 @@ public partial class Bancos_PagoAcreedor : ClsPaginas Folio = bancos.GetNextFolio(DdlCuenta.SelectedValue.ToEntero(), DdlTipoTransaccion.SelectedValue.ToEntero()); bancos.Dispose(); TxtFolio.Text = Folio.ToString(); + + + TxtDDImporte.Attributes.Add("onblur",$"validaDeudoresDiversos({CveMonedaCuentaPago});FormatoMoneda(this);"); + UpDatos.Update(); } protected void DdlProveedores_selectedindexchange(object sender, EventArgs e) @@ -345,12 +350,13 @@ public partial class Bancos_PagoAcreedor : ClsPaginas MsgError = "No se pudo insertar concepto de diferencia cambiaria"; } - if (ImporteComision != 0 && MsgError == "") + if (ImporteComision != 0 && MsgError == "" && DdlOtrosPagos.SelectedValue == "2" ) { + ImporteComisionMN = (ImporteComision * TCPago).RoundSQL(); int tTipoConceptoOtro = 255; - if (DdlOtrosPagos.SelectedValue == "3") tTipoConceptoOtro = 43; //deudores diversos + //if (DdlOtrosPagos.SelectedValue == "3") tTipoConceptoOtro = 43; //deudores diversos if (!ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovtoComision, ImporteComision, ImporteComisionMN, tTipoConceptoOtro, Ref, Conc, CveIE: CveIE, CveProveedor: DdlProveedores.SelectedValue.ToEntero(),CveIEDevolucion: gvr.DataKey("CveIE").ToEntero(), TipoCambio: TC, TipoCambioPago: TCPago, CveSubProyecto: DdlSubProyectoPago.SelectedValue.ToEntero())) { MsgError = "No se pudo insertar concepto de pago acreedor"; @@ -360,6 +366,39 @@ public partial class Bancos_PagoAcreedor : ClsPaginas } } + if (TxtDDImporte.Text.ToDecimal() != 0 && MsgError == "" && DdlOtrosPagos.SelectedValue == "3") + { + ImporteComision = TxtDDImporte.Text.ToDecimal(); + ImporteComisionMN = ImporteComision; + + if (TxtDDImporte.Text.ToDecimal() < 0) + { + TipoMovtoComision = true; + ImporteComision = ImporteComision * -1; + ImporteComisionMN = ImporteComisionMN * -1; + } + else + { + TipoMovtoComision = false; + } + + //Decimal TC = get_GlobalTipoCambio(TxtFechaDocumento.Text.ToDate()).ToDecimal(); + //int tCveMoneda = get_GlobalDTBancosCuentas(-1, DdlCuenta.SelectedValue.ToEntero()).FiltroPrimeroValor("CveMoneda").ToEntero(); + //CveMonedaPago + + ImporteComision = ImporteComision.RoundSQL(); + ImporteComisionMN = (ImporteComision * TCPago).RoundSQL() ; + + ImporteComisionMN = (ImporteComision * TCPago).RoundSQL(); + + + int tTipoConceptoOtro = 43; //deudores diversos + if (!ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovtoComision, ImporteComision, ImporteComisionMN, tTipoConceptoOtro, Ref, Conc, CveIE: CveIE, CveProveedor: DdlProveedores.SelectedValue.ToEntero(), TipoCambio: TCPago, TipoCambioPago: TCPago, CveSubProyecto: DdlSubProyectoPago.SelectedValue.ToEntero())) + { + MsgError = "No se pudo insertar concepto de pago acreedor"; + } + } + if (CveMonedaPago != 1) { ImporteComplementaria = (ImporteBanco * TCPago - ImporteBanco).RoundSQL(); @@ -767,7 +806,7 @@ public partial class Bancos_PagoAcreedor : ClsPaginas divDD.Visible = false; if (DdlOtrosPagos.SelectedValue == "2") { - TxtOtrosImportes.Visible = true; + TxtOtrosImportes.Visible = true; TxtTotal.Visible = true; GvMovAcreedor.Columns[8].Visible = true; TxtOtrosImportes.Text = "";