From a8bdb1959b8de35e1777ac8aa7a7d130f9a1286e Mon Sep 17 00:00:00 2001 From: rrene Date: Thu, 15 Oct 2020 12:52:39 -0700 Subject: [PATCH 01/38] -- cambios valida y cuadre --- Bancos/ProductosFinancieros.aspx.vb | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Bancos/ProductosFinancieros.aspx.vb b/Bancos/ProductosFinancieros.aspx.vb index c37c9eb41..ec2761da3 100644 --- a/Bancos/ProductosFinancieros.aspx.vb +++ b/Bancos/ProductosFinancieros.aspx.vb @@ -373,6 +373,11 @@ Partial Class Bancos_ProductosFinancieros Next + + If Not ObjMov.ValidacionPrePolizaCuadre(CvePrePoliza, 4) Then + ErrorTransaccion = True + End If + 'Por el momento no hay movimiento para estas plantillas y no debe entrar aqui If UsuarioActual.Empresa.Funcionalidad(200).ToEntero > 0 And Not ErrorTransaccion Then If idCuentaContabilizacion > 0 Then @@ -386,9 +391,6 @@ Partial Class Bancos_ProductosFinancieros End If End If - If Not ObjMov.ValidacionPrePolizaCuadre(CvePrePoliza, 4) Then - ErrorTransaccion = True - End If End If From 6eb4cd9814ac837056b3f68d3b11340f5d2e55ea Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Thu, 15 Oct 2020 20:03:09 -0700 Subject: [PATCH 02/38] Pendientes BDH --- App_Code/Modelos.vb | 47 ++-- Compras/PopUpVerFactura.aspx.vb | 182 +++++++------- Inventarios/RecepcionAlmacen.aspx.vb | 5 +- Ventas/Clientes.aspx | 2 +- Ventas/Clientes.aspx.vb | 20 +- Ventas/PV.aspx | 65 ++--- Ventas/PV.aspx.vb | 56 +++++ Ventas/Ventas.aspx | 160 ++++++++---- Ventas/Ventas.aspx.vb | 350 ++++++++++++++++----------- 9 files changed, 557 insertions(+), 330 deletions(-) diff --git a/App_Code/Modelos.vb b/App_Code/Modelos.vb index deb17d739..220d9dcb6 100644 --- a/App_Code/Modelos.vb +++ b/App_Code/Modelos.vb @@ -1366,10 +1366,6 @@ Namespace Modelos End If - If Not GuardarUsados(ObjVentas.IniciaTransacSQL, ObjVentas.CveVenta, ObjVentas, factura.TipoDocto) Then - ErrorList.Add("Error al guardar usados") - End If - If ErrorList.Count = 0 AndAlso ObjVentas.CveVenta > 0 Then @@ -1379,6 +1375,11 @@ Namespace Modelos factura.Timbre.Comprobante.Serie = ObjVentas.Serie factura.Timbre.Comprobante.Folio = ObjVentas.Folio.ToString + + If Not GuardarUsados(ObjVentas.IniciaTransacSQL, ObjVentas, factura) Then + ErrorList.Add("Error al guardar usados") + End If + If factura.TipoDocto = "Egs" AndAlso NuevaFactura = 1 Then If DtVentasNC Is Nothing Then InicializaDTVentasNC() @@ -1909,30 +1910,31 @@ Namespace Modelos DtVentasNC.Rows.Add(Dr) End If End Sub - Private Function GuardarUsados(SqlTransaccion As SqlClient.SqlTransaction, CveVenta As Integer, ByRef ObjVentas As ClsVentas, TipoDocto As String) As Boolean + Private Function GuardarUsados(SqlTransaccion As SqlClient.SqlTransaction, ByRef ObjVentas As ClsVentas, factura As Modelos.Factura) As Boolean Dim Resultado As Boolean = True - If UsuarioActual.Empresa.Funcionalidad(533).ToEntero > 0 AndAlso TipoDocto.Contiene("Ing", "Ant", "Rem") Then - Dim CvePSPSA As Integer = UsuarioActual.Empresa.Funcionalidad(533).ToEntero + If UsuarioActual.Empresa.Funcionalidad(533).ToEntero > 0 AndAlso factura.TipoDocto.Contiene("Ing", "Rem") Then - Dim ObjAcum As New ClsAcumuladores(SqlTransaccion) + If factura.TipoDocto = "Ing" AndAlso factura.Cliente.EsDistribuidor Then + Dim CvePSPSA As Integer = UsuarioActual.Empresa.Funcionalidad(533).ToEntero - For Each drow As DataRow In DtDetalle.Rows - If drow("CveTamaño").ToString.ToEntero > 0 And (CvePSPSA <> drow("CvePS").ToString.ToEntero) Then - If ObjAcum.DistribuidorMovtosAdd(CveCliente, drow("Cantidad").ToString.ToEntero, drow("CveTamaño").ToString.ToEntero, 2, CveVenta, UsuarioActual.CveUsuario, - UsuarioActual.CveEmpresa, 0D, "") Then - Else - Resultado = False - Exit For + Dim ObjAcum As New ClsAcumuladores(SqlTransaccion) + + For Each drow As DataRow In factura.DtDetalle.Rows + If drow("CveTamaño").ToString.ToEntero > 0 And (CvePSPSA <> drow("CvePS").ToString.ToEntero) Then + If Not ObjAcum.DistribuidorMovtosAdd(CveCliente, drow("Cantidad").ToString.ToEntero, drow("CveTamaño").ToString.ToEntero, 2, CveVenta, UsuarioActual.CveUsuario, + UsuarioActual.CveEmpresa, 0D, "") Then + Resultado = False + Exit For + End If End If - Else - Resultado = True - End If - Next + Next - If TipoDocto.Contiene("Rem") Then - If DtRecepcionUsados IsNot Nothing Then - For Each drow As DataRow In DtRecepcionUsados.Rows + End If + + If factura.TipoDocto.Contiene("Rem") Then + If factura.DtRecepcionUsados IsNot Nothing Then + For Each drow As DataRow In factura.DtRecepcionUsados.Rows If Not ObjVentas.AddVentaUsado(CveVenta, drow("CvePS").ToString.ToEntero, drow("Cantidad").ToString.ToDecimal, drow("PU").ToString.ToDecimal, drow("CveBCIUsado").ToString.ToEntero, drow("CveModeloAuto").ToString.ToEntero) Then Resultado = False Exit For @@ -9302,6 +9304,7 @@ Namespace Modelos Public Property ClaveSATMunicipio As String Public Property ClaveSATColonia As String Public Property ClaveSATCP As String + Public Property EsDistribuidor As Boolean End Class diff --git a/Compras/PopUpVerFactura.aspx.vb b/Compras/PopUpVerFactura.aspx.vb index ebb9a654f..aadc8ad8e 100644 --- a/Compras/PopUpVerFactura.aspx.vb +++ b/Compras/PopUpVerFactura.aspx.vb @@ -1275,23 +1275,23 @@ Partial Class PopUpVerFactura Dim FechaMovimiento As Date = ObjInventarios.FechaRegistro Dim CveMovimientoRelacionado As Integer = -1 - Dim FolioRelacionado As String = "" + Dim FolioRelacionado As String = "" Dim CveConceptoMovtoRelacionado As Integer = -1 'VERIFICA SI TIENE MOVIMIENTO VIRTUAL RELACIONADO If UsuarioActual.CveEmpresa = 140 AndAlso ObjInventarios.DtResultados.Rows.Count > 0 Then CveMovimientoRelacionado = ObjInventarios.DtResultados.Rows(0)("CveMtoRel").ToString().ToEntero() - If CveConcepto.Contiene(3, 26) AndAlso ObjInventarios.DtResultados.FiltroPrimeroValor("CveMovimientoVirtual").ToEntero() > 0 Then - FolioRelacionado = ObjInventarios.DtResultados.FiltroPrimeroValor("FolioVirtual") - CveConceptoMovtoRelacionado = 37 - ElseIf CveConcepto = 37 Then - FolioRelacionado = ObjInventarios.DtResultados.FiltroPrimeroValor("FolioRelacionado") - CveConceptoMovtoRelacionado = 3 + If CveConcepto.Contiene(3, 26) AndAlso ObjInventarios.DtResultados.FiltroPrimeroValor("CveMovimientoVirtual").ToEntero() > 0 Then + FolioRelacionado = ObjInventarios.DtResultados.FiltroPrimeroValor("FolioVirtual") + CveConceptoMovtoRelacionado = 37 + ElseIf CveConcepto = 37 Then + FolioRelacionado = ObjInventarios.DtResultados.FiltroPrimeroValor("FolioRelacionado") + CveConceptoMovtoRelacionado = 3 End If - End If - - - + End If + + + Dim CantidadProductos As Decimal = 0 Dim CantidadUsados As Decimal = 0 @@ -1567,8 +1567,8 @@ Partial Class PopUpVerFactura Dim concepto As String = "" If CveConcepto = 3 Then concepto = "SALIDA DE ALMACÉN" - ElseIf CveConcepto = 37 Then - concepto = "SALIDA VIRTUAL" + ElseIf CveConcepto = 37 Then + concepto = "SALIDA VIRTUAL" Else concepto = "SALIDA DE ALMACÉN POR RECONSTRUCCIÓN" End If @@ -1705,34 +1705,34 @@ Partial Class PopUpVerFactura 'ImprimirPDF(String.Format("Empresas/{0}/Formatos/Salidas.rdlc", 72), DtMovimientos, params, "ReporteSalidas", RDSName:="DsInventarios") ImprimirPDF(UsuarioActual.Empresa.Ruta & "Formatos/Salidas.rdlc", DtMovimientos, params, String.Format("Salida de Almacen - {0}", Folio.ToString), RDSName:="DsInventarios") - ElseIf UsuarioActual.CveEmpresa = 140 Then - - Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa) - If Imagen.Exists Then - params.Add(New ReportParameter("LogoPath", logouri)) - Else - params.Add(New ReportParameter("LogoPath", "")) - End If - - params.Add(New ReportParameter("Empresa", UsuarioActual.Empresa.Empresa)) - params.Add(New ReportParameter("Concepto", concepto)) - params.Add(New ReportParameter("Almacen", Almacen)) - params.Add(New ReportParameter("Fecha", Fecha)) - params.Add(New ReportParameter("FacturaProveedor", FolioVenta)) - params.Add(New ReportParameter("FacturadoA", If(DtMovimientos(0)("Nombre").ToString <> "", DtMovimientos(0)("Nombre").ToString, NombreCliente))) - params.Add(New ReportParameter("Observaciones", Observaciones)) - params.Add(New ReportParameter("FechaImpresion", DateTime.Now.ToString("dd/MM/yyyy"))) - params.Add(New ReportParameter("Folio", Folio)) - params.Add(New ReportParameter("Descuentos", "")) - params.Add(New ReportParameter("IVA", "")) - params.Add(New ReportParameter("Total", "")) - 'params.Add(New ReportParameter("NombreEntrego", String.Format("ENTREGÓ{0}{1}", vbCrLf, Capturo))) - params.Add(New ReportParameter("NombreRecibio", Recibio)) - params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre)) - params.Add(New ReportParameter("CveConceptoMovRelacionado", CveConceptoMovRelacionado.ToString())) - params.Add(New ReportParameter("FolioRelacionado", FolioRelacionado)) - - ImprimirPDF(UsuarioActual.Empresa.Ruta & "Formatos/Salidas.rdlc", DtMovimientos, params, String.Format("Salida de Almacen - {0}", Folio.ToString), RDSName:="DsInventarios") + ElseIf UsuarioActual.CveEmpresa = 140 Then + + Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa) + If Imagen.Exists Then + params.Add(New ReportParameter("LogoPath", logouri)) + Else + params.Add(New ReportParameter("LogoPath", "")) + End If + + params.Add(New ReportParameter("Empresa", UsuarioActual.Empresa.Empresa)) + params.Add(New ReportParameter("Concepto", concepto)) + params.Add(New ReportParameter("Almacen", Almacen)) + params.Add(New ReportParameter("Fecha", Fecha)) + params.Add(New ReportParameter("FacturaProveedor", FolioVenta)) + params.Add(New ReportParameter("FacturadoA", If(DtMovimientos(0)("Nombre").ToString <> "", DtMovimientos(0)("Nombre").ToString, NombreCliente))) + params.Add(New ReportParameter("Observaciones", Observaciones)) + params.Add(New ReportParameter("FechaImpresion", DateTime.Now.ToString("dd/MM/yyyy"))) + params.Add(New ReportParameter("Folio", Folio)) + params.Add(New ReportParameter("Descuentos", "")) + params.Add(New ReportParameter("IVA", "")) + params.Add(New ReportParameter("Total", "")) + 'params.Add(New ReportParameter("NombreEntrego", String.Format("ENTREGÓ{0}{1}", vbCrLf, Capturo))) + params.Add(New ReportParameter("NombreRecibio", Recibio)) + params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre)) + params.Add(New ReportParameter("CveConceptoMovRelacionado", CveConceptoMovRelacionado.ToString())) + params.Add(New ReportParameter("FolioRelacionado", FolioRelacionado)) + + ImprimirPDF(UsuarioActual.Empresa.Ruta & "Formatos/Salidas.rdlc", DtMovimientos, params, String.Format("Salida de Almacen - {0}", Folio.ToString), RDSName:="DsInventarios") Else params.Add(New ReportParameter("Folio", Folio)) params.Add(New ReportParameter("Fecha", Fecha)) @@ -2169,8 +2169,8 @@ Partial Class PopUpVerFactura params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre)) params.Add(New ReportParameter("Empresa", UsuarioActual.Empresa.Empresa)) params.Add(New ReportParameter("CantidadProductos", CantidadProductos.ToString())) - params.Add(New ReportParameter("CantidadUsados", CantidadUsados.ToString())) - params.Add(New ReportParameter("CveConceptoMovRelacionado", CveConceptoMovRelacionado.ToString())) + params.Add(New ReportParameter("CantidadUsados", CantidadUsados.ToString())) + params.Add(New ReportParameter("CveConceptoMovRelacionado", CveConceptoMovRelacionado.ToString())) params.Add(New ReportParameter("FolioRelacionado", FolioRelacionado)) Else params.Add(New ReportParameter("Observaciones", Observaciones)) 'TxtObservaciones.Text @@ -2516,19 +2516,19 @@ Partial Class PopUpVerFactura If (UsuarioActual.CveEmpresa = 72) Then params.Add(New ReportParameter("DomicilioFiscal", DomicilioFiscalCompu)) End If - ImprimirPDF(UsuarioActual.Empresa.Ruta & "Formatos/SalidasGarantia.rdlc", DtMovimientos, params, String.Format("SalidaGarantia{0}", Folio.ToString), RDSName:="DsInventarios") - 'Else - ' params.Add(New ReportParameter("Folio", Folio)) - ' params.Add(New ReportParameter("Fecha", Fecha)) - ' params.Add(New ReportParameter("Almacen", Almacen)) - ' params.Add(New ReportParameter("SubProyecto", SubProyecto)) - ' params.Add(New ReportParameter("Observaciones", Observaciones)) - ' params.Add(New ReportParameter("NombreEntrego", String.Format("ENTREGÓ{0}{1}", vbCrLf, Capturo))) - ' params.Add(New ReportParameter("NombreRecibio", String.Format("RECIBIÓ{0}{1}", vbCrLf, Recibio))) - ' ImprimirPDF(UsuarioActual.Empresa.Ruta & "Formatos/Salidas.rdlc", DtMovimientos, params, String.Format("Salida de Almacen - {0}", Folio.ToString), RDSName:="DsInventarios") - 'End If - - + ImprimirPDF(UsuarioActual.Empresa.Ruta & "Formatos/SalidasGarantia.rdlc", DtMovimientos, params, String.Format("SalidaGarantia{0}", Folio.ToString), RDSName:="DsInventarios") + 'Else + ' params.Add(New ReportParameter("Folio", Folio)) + ' params.Add(New ReportParameter("Fecha", Fecha)) + ' params.Add(New ReportParameter("Almacen", Almacen)) + ' params.Add(New ReportParameter("SubProyecto", SubProyecto)) + ' params.Add(New ReportParameter("Observaciones", Observaciones)) + ' params.Add(New ReportParameter("NombreEntrego", String.Format("ENTREGÓ{0}{1}", vbCrLf, Capturo))) + ' params.Add(New ReportParameter("NombreRecibio", String.Format("RECIBIÓ{0}{1}", vbCrLf, Recibio))) + ' ImprimirPDF(UsuarioActual.Empresa.Ruta & "Formatos/Salidas.rdlc", DtMovimientos, params, String.Format("Salida de Almacen - {0}", Folio.ToString), RDSName:="DsInventarios") + 'End If + + Case 18 'D E V O L U C I O N D E L C L I E N T E Dim Archivo As New System.IO.FileInfo(String.Format("{0}Formatos/DevolucionCliente.rdlc", UsuarioActual.Empresa.Ruta)) Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta)) @@ -2705,36 +2705,36 @@ Partial Class PopUpVerFactura ImprimirPDF(Archivo, DtMovimientos, params, String.Format("Salida por Prestamo - {0}", Folio.ToString), RDSName:="DsInventarios") ElseIf CveConcepto = 22 Then ImprimirPDF(Archivo, DtMovimientos, params, String.Format("Entrada por Prestamo - {0}", Folio.ToString), RDSName:="DsInventarios") - End If - - 'Case 22 'ENTRADA POR PRESTAMO - ' Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta)) - ' Dim params As New List(Of ReportParameter) - - ' Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa) - ' If Imagen.Exists Then - ' params.Add(New ReportParameter("LogoPath", logouri)) - ' Else - ' params.Add(New ReportParameter("LogoPath", "")) - ' End If - - ' params.Add(New ReportParameter("Empresa", UsuarioActual.Empresa.Empresa)) - ' params.Add(New ReportParameter("Concepto", "Entrada por Prestamo")) - ' params.Add(New ReportParameter("Almacen", Almacen)) - ' params.Add(New ReportParameter("Fecha", Fecha)) - ' params.Add(New ReportParameter("FechaImpresion", DateTime.Now.ToString("dd/MM/yyyy"))) - ' params.Add(New ReportParameter("Folio", Folio)) - ' params.Add(New ReportParameter("Descuentos", "")) - ' params.Add(New ReportParameter("IVA", "")) - ' params.Add(New ReportParameter("Total", "")) - ' 'params.Add(New ReportParameter("NombreEntrego", String.Format("ENTREGÓ{0}{1}", vbCrLf, Capturo))) - ' params.Add(New ReportParameter("NombreRecibio", String.Format("RECIBIÓ{0}{1}", vbCrLf, Recibio))) - ' params.Add(New ReportParameter("FacturadoA", NombreCliente)) - ' If (UsuarioActual.CveEmpresa = 72) Then - ' params.Add(New ReportParameter("DomicilioFiscal", DomicilioFiscalCompu)) - ' End If - ' ImprimirPDF("Empresas/Grales/Formatos/EntradaSalida.rdlc", DtMovimientos, params, String.Format("Entrada por Prestamo - {0}", Folio.ToString), RDSName:="DsInventarios") - + End If + + 'Case 22 'ENTRADA POR PRESTAMO + ' Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta)) + ' Dim params As New List(Of ReportParameter) + + ' Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa) + ' If Imagen.Exists Then + ' params.Add(New ReportParameter("LogoPath", logouri)) + ' Else + ' params.Add(New ReportParameter("LogoPath", "")) + ' End If + + ' params.Add(New ReportParameter("Empresa", UsuarioActual.Empresa.Empresa)) + ' params.Add(New ReportParameter("Concepto", "Entrada por Prestamo")) + ' params.Add(New ReportParameter("Almacen", Almacen)) + ' params.Add(New ReportParameter("Fecha", Fecha)) + ' params.Add(New ReportParameter("FechaImpresion", DateTime.Now.ToString("dd/MM/yyyy"))) + ' params.Add(New ReportParameter("Folio", Folio)) + ' params.Add(New ReportParameter("Descuentos", "")) + ' params.Add(New ReportParameter("IVA", "")) + ' params.Add(New ReportParameter("Total", "")) + ' 'params.Add(New ReportParameter("NombreEntrego", String.Format("ENTREGÓ{0}{1}", vbCrLf, Capturo))) + ' params.Add(New ReportParameter("NombreRecibio", String.Format("RECIBIÓ{0}{1}", vbCrLf, Recibio))) + ' params.Add(New ReportParameter("FacturadoA", NombreCliente)) + ' If (UsuarioActual.CveEmpresa = 72) Then + ' params.Add(New ReportParameter("DomicilioFiscal", DomicilioFiscalCompu)) + ' End If + ' ImprimirPDF("Empresas/Grales/Formatos/EntradaSalida.rdlc", DtMovimientos, params, String.Format("Entrada por Prestamo - {0}", Folio.ToString), RDSName:="DsInventarios") + Case 24 'SALIDA POR RESGUARDO If DtMovimientos(0)("CveTipoAlmacen").ToString.ToEntero = 20 Or DtMovimientos(0)("CveTipoAlmacen").ToString.ToEntero = 19 Then Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta)) @@ -3217,11 +3217,11 @@ Partial Class PopUpVerFactura If CveConcepto = 2 Then ElseIf CveConcepto = 3 Then End If - End Sub - - + End Sub + + #End Region - + #Region "OP = 'OC' - IMPRIME PDF OC" Private Sub ImprimePDFOC(CveOrdenCompra As Integer) Dim reporte As Byte() = NewGeneraBytesOC(CveOrdenCompra, ConBitacora:=(UsuarioActual.Empresa.Funcionalidad(119) = "1")) @@ -3576,7 +3576,7 @@ Partial Class PopUpVerFactura params.Add(New ReportParameter("RFC", dr("RFC").ToString)) params.Add(New ReportParameter("Puesto", dr("Puesto").ToString)) params.Add(New ReportParameter("PuestoEntrego", dr("PuestoEntrego").ToString)) - params.Add(New ReportParameter("Departamento", dr("Departamento").ToString)) + params.Add(New ReportParameter("Departamento", dr("Departamento").ToString)) params.Add(New ReportParameter("DepartamentoEntrego", dr("DepartamentoEntrego").ToString)) params.Add(New ReportParameter("Folio", dr("Folio").ToString)) params.Add(New ReportParameter("Sucursal", dr("SubProyecto").ToString)) diff --git a/Inventarios/RecepcionAlmacen.aspx.vb b/Inventarios/RecepcionAlmacen.aspx.vb index b6f55b9e9..668575094 100644 --- a/Inventarios/RecepcionAlmacen.aspx.vb +++ b/Inventarios/RecepcionAlmacen.aspx.vb @@ -972,9 +972,12 @@ Partial Class Inventarios_RecepcionAlmacen CveAlmacenDevolucionProveedor = DtRecepcion.Rows(0)("CveAlmacenDevolucionProveedor").ToString.ToEntero 'SI ES MOTOBATERIA NO GENERA MOVIMIENTO VIRTUAL - If UsuarioActual.Empresa.Funcionalidad(573) = "1" AndAlso (DtRecepcion.COUNT("CveTamaño", "CveTamaño > 0 AND CveTamaño <> 16") > 0 OrElse CargaSoloUsados) Then + If UsuarioActual.Empresa.Funcionalidad(573) = "1" AndAlso (DtRecepcion.COUNT("CveTamaño", "CveTamaño > 0 AND CveTamaño <> 16") > 0) Then RealizarMovimientoVirtual = True DivVirtualAdvertencia.Visible = True + Else + RealizarMovimientoVirtual = False + DivVirtualAdvertencia.Visible = False End If If TipoMovimiento = 2 AndAlso CveAlmacenDevolucionProveedor > 0 Then diff --git a/Ventas/Clientes.aspx b/Ventas/Clientes.aspx index 391f5f8cb..a52d606c4 100644 --- a/Ventas/Clientes.aspx +++ b/Ventas/Clientes.aspx @@ -378,7 +378,7 @@
- +
diff --git a/Ventas/Clientes.aspx.vb b/Ventas/Clientes.aspx.vb index ca113dc39..35ca1ceff 100644 --- a/Ventas/Clientes.aspx.vb +++ b/Ventas/Clientes.aspx.vb @@ -845,6 +845,12 @@ Partial Class Clientes If Request("CveEmpresaCRM") IsNot Nothing AndAlso IsNumeric(Request("CveEmpresaCRM")) AndAlso Request("CveEmpresaCRM").ToEntero > 0 Then ViewState("CveEmpresaCRM") = Request("CveEmpresaCRM") CargaDatosCRM() + End If + + If UsuarioActual.Empresa.Funcionalidad(531) = "1" Then ' Funcionalidad Es Distribuidor + DivEsDistribuidor.Visible = True + DivCargoUsado.Visible = True + DivBonificacionUsado.Visible = True End If ChecaPermiteCredito() @@ -10190,6 +10196,18 @@ Partial Class Clientes GvPagosNoBancarios.DataBind() End If ObjBancos.Dispose() - End Sub + End Sub + Protected Sub TxtCodigo_TextChanged(sender As Object, e As EventArgs) + + If CveCliente <= 0 AndAlso UsuarioActual.CveEmpresa = 140 Then + DdlTipoCliente.SelectedValueExist("1") + ChkEsDistribuidor.Checked = True + ChkCargoUsado.Checked = True + ChkBonificacionUsado.Checked = True + End If + + UpDatos.Update() + + End Sub End Class diff --git a/Ventas/PV.aspx b/Ventas/PV.aspx index d93efb1b6..af87d4902 100644 --- a/Ventas/PV.aspx +++ b/Ventas/PV.aspx @@ -1,4 +1,4 @@ -<%@ Page Title="Ventas - Facturación" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="PV.aspx.vb" Inherits="PV" EnableEventValidation="false"%> +<%@ Page Title="Ventas - Facturación" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="PV.aspx.vb" Inherits="PV" EnableEventValidation="false" %> <%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %> <%--Necesario para el modal que no se cierra--%> @@ -621,7 +621,7 @@ - <%--0--%> @@ -2374,25 +2374,25 @@
-
- -
- - - - - - +
- - +
+ + + + + + + + +
- - - - - + + + + +
@@ -2571,7 +2571,7 @@
- +
- +
@@ -2960,16 +2960,19 @@
-
-
+
+
- + + <%----%> <%----%> - +
-
+
+
+
@@ -2978,7 +2981,7 @@
-
+
@@ -2991,7 +2994,7 @@
- +
@@ -4316,23 +4316,18 @@
- <%----%> Bitacora
- <%--
- - Agregar -
--%>
Agendar
-
@@ -6799,7 +6794,7 @@ - + @@ -6876,23 +6871,24 @@
- - -
-
- - - - - - -
Saldo Maximo Utilizable.: -   -
+
+
+ + + + + + +
Saldo Maximo Utilizable.: +   +
+
+
+ + + + + + + + + + + + + + diff --git a/Acumuladores/CatFoliosGarantia.aspx.vb b/Acumuladores/CatFoliosGarantia.aspx.vb index 8647f5a96..f891e5530 100644 --- a/Acumuladores/CatFoliosGarantia.aspx.vb +++ b/Acumuladores/CatFoliosGarantia.aspx.vb @@ -216,12 +216,34 @@ Partial Class Acumuladores_CatFoliosGarantia RegistraScript(String.Format("$('#{0}').modal();", "DivAgregarFolioGarantia")) - End Sub + End Sub + + Public Sub ImgVer_Click(sender As Object, e As EventArgs) + Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow) + CveFolioGarantia = GvRow.DataKey("CveFolioGarantia") + LblFolio.Text = GvRow.DataKey("FolioGarantia") + + Using ObjAcum As New ClsAcumuladores + If ObjAcum.GetFoliosGarantiasDetalle(CveFolioGarantia) Then + GvGarantiasDetalle.DataSource = ObjAcum.DtResultados + End If + End Using + GvGarantiasDetalle.DataBind() + + UpGarantiasDetalle.Update() + + RegistraScript("$('#DivGarantiasDetalle').modal('show');") + + End Sub + + + + #End Region - + Protected Sub BtnConsultar_Click(sender As Object, e As EventArgs) CargadatosGvFolioGarantia(DdlEstatus.SelectedValue.ToEntero, DdlTipoFolio.SelectedValue) End Sub diff --git a/App_Code/ClsAcumuladores.vb b/App_Code/ClsAcumuladores.vb index d2b74dfa7..7f2c2e6ca 100644 --- a/App_Code/ClsAcumuladores.vb +++ b/App_Code/ClsAcumuladores.vb @@ -1126,6 +1126,25 @@ Public Class ClsAcumuladores Return Retorno End Function + Public Function GetFoliosGarantiasDetalle(CveFolioGarantia As Integer) As Boolean + Dim Retorno As Boolean = False + + SqlDataAdapter("PA_Acum_GarantiasDetalleFolioGet") + + With SqlAdapter.SelectCommand.Parameters + .Add("@CveFolioGarantia", SqlDbType.Int).Value = CveFolioGarantia + End With + + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As SqlException + OnError("Ocurrió un error al consultar los movimientos. ", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + End Try + + Return Retorno + End Function + #Region " IDisposable Support " diff --git a/App_Code/Modelos.vb b/App_Code/Modelos.vb index 220d9dcb6..1a6d06c81 100644 --- a/App_Code/Modelos.vb +++ b/App_Code/Modelos.vb @@ -1922,7 +1922,7 @@ Namespace Modelos For Each drow As DataRow In factura.DtDetalle.Rows If drow("CveTamaño").ToString.ToEntero > 0 And (CvePSPSA <> drow("CvePS").ToString.ToEntero) Then - If Not ObjAcum.DistribuidorMovtosAdd(CveCliente, drow("Cantidad").ToString.ToEntero, drow("CveTamaño").ToString.ToEntero, 2, CveVenta, UsuarioActual.CveUsuario, + If Not ObjAcum.DistribuidorMovtosAdd(factura.CveCliente, drow("Cantidad").ToString.ToEntero, drow("CveTamaño").ToString.ToEntero, 2, factura.CveVenta, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 0D, "") Then Resultado = False Exit For @@ -1935,7 +1935,7 @@ Namespace Modelos If factura.TipoDocto.Contiene("Rem") Then If factura.DtRecepcionUsados IsNot Nothing Then For Each drow As DataRow In factura.DtRecepcionUsados.Rows - If Not ObjVentas.AddVentaUsado(CveVenta, drow("CvePS").ToString.ToEntero, drow("Cantidad").ToString.ToDecimal, drow("PU").ToString.ToDecimal, drow("CveBCIUsado").ToString.ToEntero, drow("CveModeloAuto").ToString.ToEntero) Then + If Not ObjVentas.AddVentaUsado(factura.CveVenta, drow("CvePS").ToString.ToEntero, drow("Cantidad").ToString.ToDecimal, drow("PU").ToString.ToDecimal, drow("CveBCIUsado").ToString.ToEntero, drow("CveModeloAuto").ToString.ToEntero) Then Resultado = False Exit For End If diff --git a/Ventas/Ventas.aspx b/Ventas/Ventas.aspx index 83d578c62..5ac9815d2 100644 --- a/Ventas/Ventas.aspx +++ b/Ventas/Ventas.aspx @@ -7182,6 +7182,38 @@ } } + function CalculaSaldoRNCBonChk(TxtImporte, Saldo, Chk) { + if (Chk.checked) { + TxtImporte.value = FormatoNumero(Saldo, 2); + } else { + TxtImporte.value = ""; + } + } + function LimitaSaldoRNCBonChk(TxtImporte, Saldo) { + var Importe = 0; + + if (TxtImporte.value.includes('.')) { + return; + } + if (TxtImporte.value.includes(',')) { + return; + } + + var regex = new RegExp("^[-+]?[0-9]+\.[0-9]+$"); + + if (regex.test(TxtImporte.value)) { + if (TxtImporte.value != '') { + Importe = parseFloat(TxtImporte.value); + } + + if (Importe > Saldo) { + TxtImporte.value = FormatoNumero(Saldo, 2); + } else { + TxtImporte.value = FormatoNumero(Importe, 2);; + } + } + } + function CalculaTotalChk(Total, SubTotal, TxtTotalGv, TxtImporte, Saldo, Porcentaje, Chk) { var Importe = 0, ImporteSinPorcentaje = 0; Importe = ($('#C_DdlNCNivelImporte').val() == "1" ? Total : SubTotal); @@ -7629,7 +7661,7 @@ $get("TxtCambio").value = "0.00"; } - $get("TxtImporteContado").value = total; + $get("TxtImporteContado").value = total - totalRNC; } // **************************************************************************************************************************************************************************** diff --git a/Ventas/Ventas.aspx.vb b/Ventas/Ventas.aspx.vb index 39ef4aaff..58f1d0fa1 100644 --- a/Ventas/Ventas.aspx.vb +++ b/Ventas/Ventas.aspx.vb @@ -1791,6 +1791,15 @@ Partial Class Ventas End Set End Property + Private Property SerieVenta As String + Get + Return IfNull(ViewState("SerieVenta"), "", ViewState("SerieVenta")).ToString() + End Get + Set(value As String) + ViewState("SerieVenta") = value + End Set + End Property + #End Region '#Region "AuxiliarConta" @@ -4070,7 +4079,9 @@ Partial Class Ventas ViewState("FolioFiscal") = DbRowVenta("FolioFiscal").ToString() - LblSerie.Text = DbRowVenta("Serie").ToString() + + SerieVenta = DbRowVenta("Serie").ToString() + LblSerie.Text = SerieVenta ViewState("Serie") = DbRowVenta("Serie").ToString() ViewState("Folio") = DbRowVenta("Folio").ToString().ToEntero() TxtFolio.Text = DbRowVenta("Folio").ToString() @@ -15071,7 +15082,11 @@ Partial Class Ventas 'ViewState("NumAprobacion") = CLng(DT.Rows(0)("Aprobacion").ToString()) 'ViewState("FechaAprobacion") = DT.Rows(0)("FechaAprobacion").ToString().ToDate ViewState("FolioActual") = DT.Rows(0)("FActual").ToString() - LblSerie.Text = DT.Rows(0)("Serie").ToString() + If UsuarioActual.CveEmpresa = 140 AndAlso CveVenta > 0 AndAlso Not EsCreaApartirDe AndAlso Not String.IsNullOrEmpty(SerieVenta) Then + LblSerie.Text = SerieVenta + Else + LblSerie.Text = DT.Rows(0)("Serie").ToString() + End If TxtFolio.Text = DT.Rows(0)("FActual").ToString() BtnCrearApartirDe.Enabled = True BtnEmitirImprimir.Visible = True @@ -15126,7 +15141,13 @@ Partial Class Ventas 'ViewState("SubProyectoPorcentajeIVA") = dr("IVA") ViewState("TipoFormato") = dr("TipoFormato") ViewState("Serie") = dr("Serie") - LblSerie.Text = dr("Serie").ToString() + + If UsuarioActual.CveEmpresa = 140 AndAlso Me.CveVenta > 0 AndAlso Not EsCreaApartirDe AndAlso Not String.IsNullOrEmpty(SerieVenta) Then + LblSerie.Text = SerieVenta + Else + LblSerie.Text = dr("Serie").ToString() + End If + If SerieXML <> "" Then LblSerie.Text = SerieXML Dim CveSubProyecto As Integer = GetSubProyectoSucursal() If CveSubProyecto > 0 Then CargaSubProyecto(CveSubProyecto) @@ -23283,8 +23304,8 @@ Partial Class Ventas End Sub Protected Sub GvDescNCBonificaciones_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvDescNCBonificaciones.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then - e.Row.FCCheckBox("ChkAplicar").Attributes.Add("onclick", $"CalculaSaldoRNCChk({e.Row.FCTextBox("TxtImporte").ClientID},{e.Row.DBCampo("Saldo").ToDouble}, this);") - e.Row.FCTextBox("TxtImporte").Attributes.Add("onkeyup", $"LimitaSaldoRNCChk({e.Row.FCTextBox("TxtImporte").ClientID},{e.Row.DBCampo("Saldo").ToDouble});") + e.Row.FCCheckBox("ChkAplicar").Attributes.Add("onclick", $"CalculaSaldoRNCBonChk({e.Row.FCTextBox("TxtImporte").ClientID},{e.Row.DBCampo("Saldo").ToDouble}, this);") + e.Row.FCTextBox("TxtImporte").Attributes.Add("onkeyup", $"LimitaSaldoRNCBonChk({e.Row.FCTextBox("TxtImporte").ClientID},{e.Row.DBCampo("Saldo").ToDouble});") End If End Sub @@ -26577,7 +26598,7 @@ Partial Class Ventas For Each drow As DataRow In factura.DtDetalle.Rows If drow("CveTamaño").ToString.ToEntero > 0 And (CvePSPSA <> drow("CvePS").ToString.ToEntero) Then - If Not ObjAcum.DistribuidorMovtosAdd(factura.CveCliente, drow("Cantidad").ToString.ToEntero, drow("CveTamaño").ToString.ToEntero, 2, CveVenta, UsuarioActual.CveUsuario, + If Not ObjAcum.DistribuidorMovtosAdd(factura.CveCliente, drow("Cantidad").ToString.ToEntero, drow("CveTamaño").ToString.ToEntero, 2, factura.CveVenta, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 0D, "") Then Resultado = False Exit For From 7f612041bf2b8b55599d4feb546375f5dd83b11c Mon Sep 17 00:00:00 2001 From: rrene Date: Fri, 16 Oct 2020 12:52:01 -0700 Subject: [PATCH 05/38] cambio en log --- App_Code/ClsPaginas.vb | 7 ------- 1 file changed, 7 deletions(-) diff --git a/App_Code/ClsPaginas.vb b/App_Code/ClsPaginas.vb index b8fed70d2..a1583a93a 100644 --- a/App_Code/ClsPaginas.vb +++ b/App_Code/ClsPaginas.vb @@ -986,13 +986,6 @@ Public Class ClsPaginas Dim P As New ClsSubProyectos If P.GetSubProyectos(CveEmpresa:=CveEmpresa) Then Application(AppNombre) = P.DtResultados P.Dispose() - - Dim msg As String = "aqui no se carga subproyectos" - If Request IsNot Nothing Then - msg = msg & Request.ServerVariables("URL") - End If - msg.GuardaLog() - End If If CveProyecto <> -1 OrElse CveSubProyecto <> -1 OrElse CveEmpresa <> -1 OrElse Estatus <> -1 Then From 40edf8879df49fa7bb8e9b80607e21ee93a7f719 Mon Sep 17 00:00:00 2001 From: rrene Date: Fri, 16 Oct 2020 12:52:29 -0700 Subject: [PATCH 06/38] -- cambio en la carga de global --- Inventarios/CatAlmacenes.aspx.vb | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Inventarios/CatAlmacenes.aspx.vb b/Inventarios/CatAlmacenes.aspx.vb index a0b990035..f447eba09 100644 --- a/Inventarios/CatAlmacenes.aspx.vb +++ b/Inventarios/CatAlmacenes.aspx.vb @@ -215,11 +215,11 @@ Partial Class Inventarios_CatAlmacenes Private Sub RecargaGlobalAlmacenes() GlobalDTAlmacen(UsuarioActual.CveEmpresa) = Nothing - 'Dim ObjAlmacen As New ClsInventarios - 'If ObjAlmacen.GetAlmacenes(-1, -1, -1, -1) Then - ' GlobalDTAlmacen(-1) = ObjAlmacen.DtResultados - 'End If - 'ObjAlmacen.Dispose() + Dim ObjAlmacen As New ClsInventarios + If ObjAlmacen.GetAlmacenes(-1, -1, -1, -1) Then + GlobalDTAlmacen(-1) = ObjAlmacen.DtResultados + End If + ObjAlmacen.Dispose() End Sub Private Sub RecargaGlobalAlmacenesUsuarios() From 5b230881bd9d8444b7e906f40b391d785a6bf97e Mon Sep 17 00:00:00 2001 From: rrene Date: Fri, 16 Oct 2020 12:52:38 -0700 Subject: [PATCH 07/38] cambios en global --- Inventarios/CatAlmacenes.aspx.vb | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Inventarios/CatAlmacenes.aspx.vb b/Inventarios/CatAlmacenes.aspx.vb index f447eba09..a0b990035 100644 --- a/Inventarios/CatAlmacenes.aspx.vb +++ b/Inventarios/CatAlmacenes.aspx.vb @@ -215,11 +215,11 @@ Partial Class Inventarios_CatAlmacenes Private Sub RecargaGlobalAlmacenes() GlobalDTAlmacen(UsuarioActual.CveEmpresa) = Nothing - Dim ObjAlmacen As New ClsInventarios - If ObjAlmacen.GetAlmacenes(-1, -1, -1, -1) Then - GlobalDTAlmacen(-1) = ObjAlmacen.DtResultados - End If - ObjAlmacen.Dispose() + 'Dim ObjAlmacen As New ClsInventarios + 'If ObjAlmacen.GetAlmacenes(-1, -1, -1, -1) Then + ' GlobalDTAlmacen(-1) = ObjAlmacen.DtResultados + 'End If + 'ObjAlmacen.Dispose() End Sub Private Sub RecargaGlobalAlmacenesUsuarios() From 2dad7facdd184ccb7ddc0a1f0f191c64c7111bcc Mon Sep 17 00:00:00 2001 From: rrene Date: Fri, 16 Oct 2020 12:52:52 -0700 Subject: [PATCH 08/38] -- filtro de aplicaparaventa de la E140 --- Ashx/SIGWeb.ashx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Ashx/SIGWeb.ashx b/Ashx/SIGWeb.ashx index 88ad21772..7b397f53f 100644 --- a/Ashx/SIGWeb.ashx +++ b/Ashx/SIGWeb.ashx @@ -661,6 +661,10 @@ Public Class SIGWeb : Implements IHttpHandler, IRequiresSessionState If Pagina.Contiene("ventas/ventas", "oc/oc", "inv/traspaso") AndAlso CveEmpresa.Contiene(72, 80, 119, 140, 141, 152, 153) Then UsaGlobal = False + If CveEmpresa = 140 And Pagina.Contiene("ventas/ventas") Then + AplicaParaVenta = 1 + End If + Dim objInv As New ClsInventarios If objInv.GetExistenciasProductosLike(Name, CveClasificacion, CveSubProyecto, Estatus.ToEntero, AplicaParaVenta, CveEmpresa) Then From dc48c3a86fa1dd60d92fe61ff2788c7f92eabf7f Mon Sep 17 00:00:00 2001 From: rrene Date: Fri, 16 Oct 2020 12:53:13 -0700 Subject: [PATCH 09/38] -- apoyo logistico --- Inventarios/RecepcionAlmacen.aspx.vb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Inventarios/RecepcionAlmacen.aspx.vb b/Inventarios/RecepcionAlmacen.aspx.vb index b6f55b9e9..f05469ab0 100644 --- a/Inventarios/RecepcionAlmacen.aspx.vb +++ b/Inventarios/RecepcionAlmacen.aspx.vb @@ -935,7 +935,7 @@ Partial Class Inventarios_RecepcionAlmacen End If If CveTipoCompra = 9 Then - CargaAlmacenes(-1, "21", CveTipoCompra) + CargaAlmacenes(-1, "27", CveTipoCompra) End If If CveTipoCompra = 10 Then From 7a97550f2f1bc252b866fc34d8015d9ad8be4c94 Mon Sep 17 00:00:00 2001 From: rrene Date: Sat, 17 Oct 2020 09:38:48 -0700 Subject: [PATCH 10/38] -- deshabilitar generar NC de pub general --- Ventas/Ventas.aspx.vb | 1 + 1 file changed, 1 insertion(+) diff --git a/Ventas/Ventas.aspx.vb b/Ventas/Ventas.aspx.vb index 58f1d0fa1..8df466012 100644 --- a/Ventas/Ventas.aspx.vb +++ b/Ventas/Ventas.aspx.vb @@ -23016,6 +23016,7 @@ Partial Class Ventas Exit Sub End If + DeshabilitarAplicarNotaDeCredito(LblRFC.Text) AplicaNCMasiva = False AplicaNC = False From 1dc5056b1d03427f7c7f46db14bb498f4ce5d2eb Mon Sep 17 00:00:00 2001 From: Antonio Gonzalez Date: Sat, 17 Oct 2020 09:58:44 -0700 Subject: [PATCH 11/38] se acomodo un layout de reporte de repAlmacen y en portal proveedor se agrego una columna y un filtro sobre las sucursales --- Inventarios/RepAlmacen.aspx | 12 ++------- Inventarios/RepAlmacen.aspx.vb | 10 ++++--- PortalProveedor/PortalProveedor.aspx | 30 ++++++++++++++++----- PortalProveedor/PortalProveedor.aspx.vb | 36 +++++++++++++++++++++---- 4 files changed, 63 insertions(+), 25 deletions(-) diff --git a/Inventarios/RepAlmacen.aspx b/Inventarios/RepAlmacen.aspx index f347f623e..f9839c246 100644 --- a/Inventarios/RepAlmacen.aspx +++ b/Inventarios/RepAlmacen.aspx @@ -171,16 +171,8 @@ - - - - - - - - - - + + diff --git a/Inventarios/RepAlmacen.aspx.vb b/Inventarios/RepAlmacen.aspx.vb index 9f7fd0836..e3608d3e7 100644 --- a/Inventarios/RepAlmacen.aspx.vb +++ b/Inventarios/RepAlmacen.aspx.vb @@ -4,6 +4,8 @@ Option Explicit On Imports Extensiones Imports System.Data Imports Microsoft.Reporting.WebForms +Imports GemBox.Spreadsheet +Imports System.IO Partial Class Inventarios_RepAlmacen Inherits ClsPaginas @@ -76,10 +78,10 @@ Partial Class Inventarios_RepAlmacen End Sub #Region "I M P R I M I R " - Protected Sub LnkExportar_Click(sender As Object, e As EventArgs) Handles LnkExportar.Click - 'GVAlmacen.ExportToExcel("RepFacturas_" & Now.ToShortDateString()) - GenerarPDF("EXCEL") - + Protected Sub LnkExportar_Click(sender As Object, e As EventArgs) Handles LnkExportar.Click + + GenerarPDF("EXCEL") + End Sub Private Sub GenerarPDF(Optional Formato As String = "PDF") Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta)) diff --git a/PortalProveedor/PortalProveedor.aspx b/PortalProveedor/PortalProveedor.aspx index 16c1ca692..c4114baf4 100644 --- a/PortalProveedor/PortalProveedor.aspx +++ b/PortalProveedor/PortalProveedor.aspx @@ -167,9 +167,17 @@ -
- " style="display: inline-block; margin-right: -20px; width: 150px;" /> - +
+
+
+ + +
+
+
+ " style="display: inline-block; margin-right: -20px; width: 150px;" /> + +
@@ -185,6 +193,7 @@ + @@ -205,9 +214,17 @@ -
- " style="display: inline-block; margin-right: -20px; width: 150px;" /> - " style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"> +
+
+ <%--
+ + +
--%> +
+
+ " style="display: inline-block; margin-right: -20px; width: 150px;" /> + " style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"> +
@@ -223,6 +240,7 @@ + diff --git a/PortalProveedor/PortalProveedor.aspx.vb b/PortalProveedor/PortalProveedor.aspx.vb index 4b1f46663..370954255 100644 --- a/PortalProveedor/PortalProveedor.aspx.vb +++ b/PortalProveedor/PortalProveedor.aspx.vb @@ -250,6 +250,7 @@ Partial Class Portal_PortalProveedor If Not IsPostBack Then CveProveedor = UsuarioActual.CveProveedor + CargarSucursalesProveedor() Session("FileUpload") = "" ViewState("Orden") = "" @@ -355,7 +356,7 @@ Partial Class Portal_PortalProveedor Private Sub CargaCxP() Dim ObjMovtos As New ClsMovimientos() - If ObjMovtos.GetCxPProveedor(CveProveedor, "-1", "-1", -1, -1, -1, -1, -1, -1, -1, -1) Then + If ObjMovtos.GetCxPProveedor(CveProveedor, "-1", "-1", -1, -1, -1, -1, -1, -1, DdlProveedorSucursalCxCSucursal.SelectedValue.ToEntero, -1) Then GvCxP.DataSource = ObjMovtos.DtResultados.FiltraParametros("Tipo = 'Act'", "Moneda,OrdenVencimiento, FechaVencimiento") @@ -1813,9 +1814,34 @@ Partial Class Portal_PortalProveedor CargaDocumentacion() objDocumentos.Dispose() - End Sub - + End Sub + #End Region - - + +#Region "Sucursales del proveedor" + Private Sub CargarSucursalesProveedor() + Dim ObjProveedores As New ClsCompProveedores() + If ObjProveedores.GetSucursales(CveProveedor, UsuarioActual.CveEmpresa) Then + If ObjProveedores.DtResultados.Rows.Count > 0 Then + DdlProveedorSucursalCxCSucursal.DataSource = ObjProveedores.DtResultados + 'DdlProveedorSucursalPHistorial.DataSource = ObjProveedores.DtResultados + Else + DivSucursalCxC.Visible = False + DivSearch.Attributes("style") = "width:100%" + 'DivProveedorSucursalHistorial.Visible = False + End If + End If + ObjProveedores.Dispose() + DdlProveedorSucursalCxCSucursal.DataBind() + 'DdlProveedorSucursalPHistorial.DataBind() + DdlProveedorSucursalCxCSucursal.Items.Insert(0, New ListItem("Todas", "-1")) + 'DdlProveedorSucursalPHistorial.Items.Insert(0, New ListItem("Seleccione", "-1")) + End Sub + + Protected Sub DdlProveedorSucursalCxCSucursal_Changed(sender As Object, e As EventArgs) + CargaCxP() + End Sub +#End Region + + End Class \ No newline at end of file From befde50d25de1bd96df858e1425003b1c7447eb8 Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Sat, 17 Oct 2020 14:28:50 -0700 Subject: [PATCH 12/38] Pendientes BDH --- Compras/PopUpVerFactura.aspx.vb | 42 ++++++++- Empresas/140/Formatos/Salidas.rdlc | 41 ++++++++- Inventarios/RecepcionAlmacen.aspx.vb | 6 ++ Inventarios/RecepcionUsados.aspx.vb | 87 +++++++++++-------- Inventarios/TraspasoAlmacen.aspx | 96 ++++++++++----------- Inventarios/TraspasoAlmacen.aspx.vb | 43 ++++++++-- Ventas/Clientes.aspx.vb | 123 ++++++++++++++------------- 7 files changed, 282 insertions(+), 156 deletions(-) diff --git a/Compras/PopUpVerFactura.aspx.vb b/Compras/PopUpVerFactura.aspx.vb index aadc8ad8e..8dd046ff6 100644 --- a/Compras/PopUpVerFactura.aspx.vb +++ b/Compras/PopUpVerFactura.aspx.vb @@ -1281,10 +1281,10 @@ Partial Class PopUpVerFactura 'VERIFICA SI TIENE MOVIMIENTO VIRTUAL RELACIONADO If UsuarioActual.CveEmpresa = 140 AndAlso ObjInventarios.DtResultados.Rows.Count > 0 Then CveMovimientoRelacionado = ObjInventarios.DtResultados.Rows(0)("CveMtoRel").ToString().ToEntero() - If CveConcepto.Contiene(3, 26) AndAlso ObjInventarios.DtResultados.FiltroPrimeroValor("CveMovimientoVirtual").ToEntero() > 0 Then + If CveConcepto.Contiene(2, 3, 26, 27) AndAlso ObjInventarios.DtResultados.FiltroPrimeroValor("CveMovimientoVirtual").ToEntero() > 0 Then FolioRelacionado = ObjInventarios.DtResultados.FiltroPrimeroValor("FolioVirtual") CveConceptoMovtoRelacionado = 37 - ElseIf CveConcepto = 37 Then + ElseIf CveConcepto.Contiene(36, 37) Then FolioRelacionado = ObjInventarios.DtResultados.FiltroPrimeroValor("FolioRelacionado") CveConceptoMovtoRelacionado = 3 End If @@ -1413,7 +1413,7 @@ Partial Class PopUpVerFactura ImprimirPDF("Empresas/Grales/Formatos/Inicial.rdlc", DtMovimientos, params, String.Format("Inventario Inicial - {0}", Folio), RDSName:="DsInventarios") End If - Case 2, 32, 33 ' E N T R A D A S + Case 2, 32, 33, 36 ' E N T R A D A S Dim Archivo As New System.IO.FileInfo(String.Format("{0}Formatos/Entradas.rdlc", UsuarioActual.Empresa.Ruta)) Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta)) @@ -1501,7 +1501,39 @@ Partial Class PopUpVerFactura End If ImprimirPDF(UsuarioActual.Empresa.Ruta & "Formatos/Entradas.rdlc", DtMovimientos, params, String.Format("Entrada de Almacen - {0}", Folio), RDSName:="DsInventarios") + ElseIf UsuarioActual.CveEmpresa = 140 Then + Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa) + If Imagen.Exists Then + params.Add(New ReportParameter("LogoPath", logouri)) + Else + params.Add(New ReportParameter("LogoPath", "")) + End If + Dim concepto As String = "" + If CveConcepto.Contiene(2, 32, 33) Then + concepto = "ENTRADA DE ALMACÉN" + ElseIf CveConcepto.Contiene(36) Then + concepto = "ENTRADA VIRTUAL" + End If + + params.Add(New ReportParameter("Empresa", UsuarioActual.Empresa.Empresa)) + params.Add(New ReportParameter("Concepto", concepto)) + params.Add(New ReportParameter("Almacen", Almacen)) + params.Add(New ReportParameter("Fecha", Fecha)) + params.Add(New ReportParameter("FechaImpresion", DateTime.Now.ToString("dd/MM/yyyy"))) + params.Add(New ReportParameter("Folio", Folio)) + params.Add(New ReportParameter("FacturadoA", NombreCliente)) + params.Add(New ReportParameter("FacturaProveedor", If(CveCompra > 0 AndAlso dr IsNot Nothing, dr("SerieFolio").ToString, ""))) + params.Add(New ReportParameter("Descuentos", If(CveCompra > 0 AndAlso dr IsNot Nothing, (dr("Descuentos").ToString.ToDouble).FormatoNumero(2), ""))) + params.Add(New ReportParameter("IVA", If(CveCompra > 0 AndAlso dr IsNot Nothing, dr("IVA").ToString.FormatoNumero(2), ""))) + params.Add(New ReportParameter("Total", If(CveCompra > 0 AndAlso dr IsNot Nothing, dr("Total").ToString.FormatoNumero(2), ""))) + 'params.Add(New ReportParameter("NombreEntrego", String.Format("ENTREGÓ{0}{1}", vbCrLf, Capturo))) + params.Add(New ReportParameter("NombreRecibio", String.Format("RECIBIÓ{0}{1}", vbCrLf, Recibio))) + params.Add(New ReportParameter("CveConceptoMovRelacionado", CveConceptoMovRelacionado.ToString())) + params.Add(New ReportParameter("FolioRelacionado", FolioRelacionado)) + + ImprimirPDF(String.Format("{0}Formatos/Entradas.rdlc", UsuarioActual.Empresa.Ruta), DtMovimientos, params, String.Format("Entrada de Almacen - {0}", Folio.ToString), RDSName:="DsInventarios") Else + params.Add(New ReportParameter("TipoDocumento", String.Format("Compras {0}", Almacen))) params.Add(New ReportParameter("Fecha", If(CveCompra > 0, dr("Fecha").ToString.ToDate.ToShortDateString, ""))) params.Add(New ReportParameter("Folio", Folio.ToString)) @@ -2255,7 +2287,9 @@ Partial Class PopUpVerFactura params.Add(New ReportParameter("FechaImpresion", DateTime.Now.ToString("dd/MM/yyyy"))) params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre)) - params.Add(New ReportParameter("Empresa", UsuarioActual.Empresa.Empresa)) + params.Add(New ReportParameter("Empresa", UsuarioActual.Empresa.Empresa)) + params.Add(New ReportParameter("CveConceptoMovRelacionado", CveConceptoMovRelacionado.ToString())) + params.Add(New ReportParameter("FolioRelacionado", FolioRelacionado)) End If diff --git a/Empresas/140/Formatos/Salidas.rdlc b/Empresas/140/Formatos/Salidas.rdlc index ff50a2ecb..595add00f 100644 --- a/Empresas/140/Formatos/Salidas.rdlc +++ b/Empresas/140/Formatos/Salidas.rdlc @@ -434,6 +434,9 @@ + + + @@ -465,8 +468,8 @@ Textbox2 - 1.39318cm - 0.25984cm + 1.99643cm + 0.22809cm 0.6cm 11.36782cm 1 @@ -480,8 +483,40 @@ 2pt + + true + true + + + + + = "Total: " & FormatNumber(Sum(Fields!Cantidad.Value, "DsInventarios"),0) + + + + + + 2pt + 2pt + 2pt + 2pt + + - 0.82291in + 1.05208in + + + + + +
  • + Concluir Contrato +
  • +
  • + Cancelar Contrato +
  • +
  • + Reactivar Contrato +
  • +
  • + Descargar Formato +
  • +
  • + Crear A Partir De +
  • + +
  • + Importar Listado +
  • + + +
  • + Agregar Gastos +
  • + + +
  • + Avance por Documento PDF +
  • + + +
  • + Descargar Contrato +
  • + +
  • + Informacion PDF +
  • + + +
  • + Gastos PDF +
  • + + +
  • + Suministros PDF +
  • +
  • + Avance PDF +
  • + +
  • + Presupuesto PDF +
  • + +
  • + Activos Fijos PDF +
  • + +
  • + Activos Fijos Excel +
  • +
  • + Pedidos / Devoluciones PDF +
  • + +
  • + Pedidos / Devoluciones Excel +
  • + + + + + + +
  • + Habilitar Ajuste A.F. +
  • +
    +
    + + + + + +
    + + + + + + + + + + + + + +
    +
    + +   + + + + + + +<%-- + +
    +
    + +
    +
    +
    + +

    Tipo de Contrato

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    + +
    +
    +
    +
    +
    Tipo Contrato:
    +
    + + +
    +
    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    + +
    + +
    + +
    + +
    + +
    +
    +
    +
    --%> + + + + +
    + + + + + + + + + + + +
    Importe Contratado: $ + + Facturado: $ + + Por Facturar: $ + + Descargar ContratoDescargar ContratoUtilidad: + +
    +
    +
    + + + + + +
    +
    +
    +
    +
    + +
    +
    Datos del Contrato
    +
    +
    +
    + +
    + + + +
    +
    +
    + +
    + + + +
    +
    +
    + +
    + +
    +
    +
    +
    + + + +
    +
    + +
    + +
    + +
    +
    + + <%--
    + +
    + +
    +
    + +
    + +
    + + + +
    +
    +
    + +
    + + + +
    +
    +
    + +
    + + +
    +
    --%> + + + +
    +
    +
    + +
    + + +
    +
    +
    + +
    +
    +
    +
    +
    + Proyecto: +
    + + + + + + + +
    +
    +
    + + : +
    + + + <%--
    +
    + + + + + +
    +
    --%> + + <%--
    + +
    + +
    +
    --%> + +
    +
    +
    +
    +
    + +
    + +
    +
    +
    +
    +
    + +
    +
    Información
    +
    +
    +
    +
    + + + +
    +
    + + +
    +
    + + + +
    +
    +
    +
    + + +<%-- + +
    +
    + + + +
    +
    +
    +
    --%> + + + <%-- + +
    +
    + + + +
    +
    +
    +
    + + + + +
    +
    + + + +
    +
    +
    +
    + + + +
    +
    +
    +
    + + + +
    +
    --%> + + +
    + + +
    + + Seleccione uno + Obra + Comercial + + + + +
    + +
    + +
    + +
    +
    + +
    + + + + +
    +
    +
    + +
    +
    + +
    + + + + +
    +
    +
    + +
    + +
    +
    +
    + +
    + + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    + <%--
    + +
    + +
    +
    +
    + +
    + +
    +
    --%> +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    + +
    +
    + +
    + +
    +
    +
    +
    +
    + +
    +
    Estatus
    +
    +
    +
    + +
    + +
    +
    + + <%--
    + +
    + + + + + + +
    +
    --%> + + + <%-- + + --%> + + +
    +
    +
    +
    + + <%-- AGREGAR FIANZA --%> + <%--
    +
    +
    +
    +
    + +
    +
    Fianzas
    + +
    +
    + +
    +
    +
    +
    + +
    + +
    + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    --%> + <%-- --%> + +
    +
    +
    +
    +
    + +
    +
    Contrato Digitalizado
    +
    +
    +
    +
    + + + + Descargar + + + + + <%-- + Archivo + --%> + + + <%-- + Archivo + --%> + + + + + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + + +
    +
    +
    +
    + <%--
    +
    +
    +
    +
    + + +
    +
    + + Impuestos Locales: + +
    +
    + + +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    --%> +
    +
    + +
    + + + + + + + +
    + + + + + +
    + + + + + + + + + + + +
    + " style="display: inline-block; margin-right: -20px; width: 150px;" /> + " style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"> +
    + + + + + + + + + + + + + + <%-- --%> + + + + + + + + + + + + + + + + + + + + + + + +
    + + Cantidad + + Producto/ServicioU. M.ObservaciónPrecio UnitarioTotalPermite AvancePermite Estimación Comandos
    + + + + + + + + + + +
    + +
    + +
    +
    + + + + + + + +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <%-- + + + + + --%> + + +
    + +
    +
    + + + +
    + + + + + +
    +
    + + + + + + + + +
    Total General: +
    + + + +
    + + + + +
    + + + + +
    + Cerrar
    +
    +
    +
    +
    + +
    +
    + +
    +
    + + + + + + + + + +
    + " style="display: inline-block; margin-right: -20px; width: 150px;" /> + " style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"> +
    + + + + + + + + + + + + <%-- --%> + + + + + + + + + + + + + +
    CantidadLimitarClave InternaProducto/ServicioU. M.Precio UnitarioTotalPermite AvancePermite Estimación Comandos
    + + + + + + + + + +
    + +
    + +
    +
    + + + + + + +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <%-- + + + + + --%> + + +
    + +
    +
    + + + +
    + + + + + +
    +
    + + + + + + + + +
    Total General: +
    + + + +
    + + + + +
    + + + + +
    + Cerrar
    +
    +
    +
    +
    + +
    +
    + +
    +
    + + + Interno + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    CantidadProducto/ServicioU.M.Precio UnitarioTotalautorizadoComandos
    + + + +
    +
    + + + +
    +
    + + + + CantidadPrecio UnitarioTotal +
    +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    +
    + + + +
    + + + + + +
    +
    + + + + + + +
    Total General: +
    + + +
    + + + + +
    + + + + +
    + Cerrar
    +
    +
    +
    +
    +
    +
    + +
    +
    + +
    + +
    + +
    + +
    + +
    + +
    Se deben guardar la informacion General para poder editar el presupuesto
    + +
    + + +
    + + + + +
    +
    + " style="display: inline-block; margin-right: -20px; width: 150px;" /> + " style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"> +
    +
    + + + + +
    + + + + + + + + + +
    Clasificación Contratado Avance Faltante Avance Por Facturar Anticipo
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + + + +
    +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    +
    + +
    +
    + +
    +
    + " style="display: inline-block; margin-right: -20px; width: 150px;" /> + " style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"> +
    +
    + + + + + + + + <%----%> + + + + + + + + + + + + +
    +
    + + + + +
    +
    +
    +
    + Nota: Incluye gastos manuales, salidas de almacén de suministros y de facturas. + +
    +
    +
    +
    + " style="display: inline-block; margin-right: -20px; width: 150px;" /> + " style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"> +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + + + + +
    +
    + + + +   + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +
    + + + + + + +
    +
    +
    +
    +
    +
    +
    + + + + + +
    +
    + + + +
    +
    +
    + +
    +
    + +
    + + + + + + + + + + + + + + + + + + + + + + +
    Total: + Internos: + Externos + Varlor Activo: $ + Es Interno: + + + Todos + Es Interno + Es Externo + + + +
    + +
    +
    + + +
    + + + +
    + Tipo: + + + Es Interno + Es Externo + + +
    +
    +
    + + +
    + Aun no se han registrado Activos Fijos. + +
    +
    + + + +
    + " style="display: inline-block; margin-right: -20px; width: 150px;" /> + " style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"> +
    + + + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + +
    +
    +
    + +
    +
    + + + + + +
    +
    +
    + Pedidos +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    +
    + " style="display: inline-block; margin-right: -20px; width: 150px;" /> + " style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"> +
    +
    + + + + + + + + + + +
    +
    +
    +
    +
    +
    +
    + Devoluciones +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    +
    + " style="display: inline-block; margin-right: -20px; width: 150px;" /> + " style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"> +
    +
    + + + + + + + + + + +
    +
    +
    +
    +
    + + + + + +
    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    + Sistema + + + + + + + + + + + + + +
    Fecha de Captura: +
    Usuario Capturó: +
    Estatus: +
    +
    +
    +
    + +
    +
    + + + + +
    + + + + + + + + +   + + + +
    + +
    + + + <%-- BITACORA--%> +
    +
    +
    + +
    +
    + Bitácora +
    +
    +
    +
    + +
    +
    +
    + +
    + + + + + + + Fecha + + + + + + Fecha Agenda + + + + + + Usuario + + + + + + Descripción + + + + + + Archivo + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +
    + + <%--MODAL BITACORA--%> + + +
    +
    +
    + + <%-- MODAL FIANZA --%> + + + + <%--MODAL UPLOAD--%> + + + + <%--VENTAS AVANCE--%> + + + + + + + + <%--CARGA EXCEL--%> + + + + + + + + + + + + + + + + + + + diff --git a/Contratos/ContratoObra.aspx.vb b/Contratos/ContratoObra.aspx.vb new file mode 100644 index 000000000..2bdcf71b0 --- /dev/null +++ b/Contratos/ContratoObra.aspx.vb @@ -0,0 +1,4415 @@ +Option Explicit On +Option Strict On + +Imports Extensiones +Imports System.IO +Imports System.Data +Imports Microsoft.Reporting.WebForms +Imports System.Globalization +Imports GemBox.Spreadsheet + +Partial Class Contratos_ContratoObra + Inherits ClsPaginas + +#Region " PROPIEDADES " + Private Property CveContrato As Integer + Get + If ViewState("CveContrato") Is Nothing Then + Return 0 + Else + Return ViewState("CveContrato").ToString.ToEntero + End If + + End Get + Set(value As Integer) + ViewState("CveContrato") = value + End Set + End Property + Private Property CveTipoContrato As Integer + Get + If ViewState("CveTipoContrato") Is Nothing Then + Return 0 + Else + Return ViewState("CveTipoContrato").ToString.ToEntero + End If + + End Get + Set(value As Integer) + ViewState("CveTipoContrato") = value + End Set + End Property + Private Property CveMovimiento As Integer + Get + Return ViewState("CveMovimiento").ToString.ToEntero + End Get + Set(value As Integer) + ViewState("CveMovimiento") = value + End Set + End Property + Private Property CveMovimientoDevolucion As Integer + Get + Return ViewState("CveMovimientoDevolucion").ToString.ToEntero + End Get + Set(value As Integer) + ViewState("CveMovimientoDevolucion") = value + End Set + End Property + + Private Property FolioSugerido As String + Get + Return ViewState("FolioSugerido").ToString + End Get + Set(value As String) + ViewState("FolioSugerido") = value + End Set + End Property + + Private Property CveVenta As Integer + Get + Return ViewState("CveVenta").ToString.ToEntero + End Get + Set(value As Integer) + ViewState("CveVenta") = value + End Set + End Property + Public Property Autorizado As Boolean + Get + Return DirectCast(ViewState("Autorizado"), Boolean) + End Get + Set(value As Boolean) + ViewState("Autorizado") = value + End Set + End Property + Private Property ArchivoUpdate As String + Get + Return ViewState("ArchivoUpdate").ToString + End Get + Set(value As String) + ViewState("ArchivoUpdate") = value + End Set + End Property + Private Property TipoContrato As Integer + Get + Return ViewState("TipoContrato").ToString.ToEntero + End Get + Set(value As Integer) + ViewState("TipoContrato") = value + End Set + End Property + Private Property DtDatos As DataTable + Get + Return CType(ViewState("DtDatos"), DataTable) + End Get + Set(value As DataTable) + ViewState("DtDatos") = value + End Set + End Property + Private Property DtPlantillasContratos As DataTable + Get + Return CType(ViewState("DtPlantillasContratos"), DataTable) + End Get + Set(value As DataTable) + ViewState("DtPlantillasContratos") = value + End Set + End Property + Private Property DtPeriodo As DataTable + Get + Return CType(ViewState("DtPeriodo"), DataTable) + End Get + Set(value As DataTable) + ViewState("DtPeriodo") = value + End Set + End Property + Private Property TmpDT As DataTable + Get + Return CType(ViewState("TmpDT"), DataTable) + End Get + Set(value As DataTable) + ViewState("TmpDT") = value + End Set + End Property + + Private Property ModalidadDetalle As Integer + Get + Return DirectCast(ViewState(" ModalidadDetalle"), Integer) + End Get + Set(value As Integer) + ViewState(" ModalidadDetalle") = value + End Set + End Property + Public Property DtMovimientos() As DataTable + Get + Return CType(ViewState("DtMovimientos"), DataTable) + End Get + Set(value As DataTable) + ViewState("DtMovimientos") = value + End Set + End Property + + Public Property DtGastos() As DataTable + Get + Return CType(ViewState("DtGastos"), DataTable) + End Get + Set(value As DataTable) + ViewState("DtGastos") = value + End Set + End Property + + Public Property DtSuministros() As DataTable + Get + Return CType(ViewState("DtSuministros"), DataTable) + End Get + Set(value As DataTable) + ViewState("DtSuministros") = value + End Set + End Property + Public Property DtAvance() As DataTable + Get + Return CType(ViewState("DtAvance"), DataTable) + End Get + Set(value As DataTable) + ViewState("DtAvance") = value + End Set + End Property + + + Public Property DtPresupuestos() As DataTable + Get + Return CType(ViewState("DtPresupuestos"), DataTable) + End Get + Set(value As DataTable) + ViewState("DtPresupuestos") = value + End Set + End Property + Private Property FechaI As DateTime + Get + Return CType(ViewState("FechaI"), DateTime) + End Get + Set(value As DateTime) + ViewState("FechaI") = value + End Set + End Property + + Private Property FechaF As DateTime + Get + Return CType(ViewState("FechaF"), DateTime) + End Get + Set(value As DateTime) + ViewState("FechaF") = value + End Set + End Property + + Public Property DtActivosFijos() As DataTable + Get + Return CType(ViewState("DtActivosFijos"), DataTable) + End Get + Set(value As DataTable) + ViewState("DtActivosFijos") = value + End Set + End Property + + Private Property CvePSSerieLote As Integer + Get + Return CType(ViewState("CvePSSerieLote"), Integer) + End Get + Set(value As Integer) + ViewState("CvePSSerieLote") = value + End Set + End Property + Private Property CveUMSerieLote As Integer + Get + Return CType(ViewState("CveUMSerieLote"), Integer) + End Get + Set(value As Integer) + ViewState("CveUMSerieLote") = value + End Set + End Property + Private Property DtAvanceDocumento As DataTable + Get + Return CType(ViewState("DtAvanceDocumento"), DataTable) + End Get + Set(value As DataTable) + ViewState("DtAvanceDocumento") = value + End Set + End Property + Private Property Titulo As String + Get + Return ViewState("Titulo").ToString + End Get + Set(value As String) + ViewState("Titulo") = value + End Set + End Property + Private Property TituloCorto As String + Get + Return ViewState("TituloCorto").ToString + End Get + Set(value As String) + ViewState("TituloCorto") = value + End Set + End Property + + Private Property TipoDocumento As String + Get + Return ViewState("TipoDocumento").ToString + End Get + Set(value As String) + ViewState("TipoDocumento") = value + End Set + End Property + + Private Property Contratante As String + Get + Return ViewState("Contratante").ToString + End Get + Set(value As String) + ViewState("Contratante") = value + End Set + End Property + Private Property SumaAvance As Double + Get + Return If(ViewState("SumaAvance") IsNot Nothing, ViewState("SumaAvance").ToString.ToDouble, 0) + End Get + Set(value As Double) + ViewState("SumaAvance") = value + End Set + End Property + Private Property SumaUtilidad As Double + Get + Return If(ViewState("SumaUtilidad") IsNot Nothing, ViewState("SumaUtilidad").ToString.ToDouble, 0) + End Get + Set(value As Double) + ViewState("SumaUtilidad") = value + End Set + End Property + Private Property SumaGasto As Double + Get + Return If(ViewState("SumaGasto") IsNot Nothing, ViewState("SumaGasto").ToString.ToDouble, 0) + End Get + Set(value As Double) + ViewState("SumaGasto") = value + End Set + End Property + Private Property NumRow As Integer + + Private Property EsEditarFianza As Boolean + Get + Return CType(ViewState("EsEditarFianza"), Boolean) + End Get + Set(value As Boolean) + ViewState("EsEditarFianza") = value + End Set + End Property + Private Property IndexFianzaEditar As Integer + Get + Return CType(ViewState("IndexFianzaEditar"), Integer) + End Get + Set(value As Integer) + ViewState("IndexFianzaEditar") = value + End Set + End Property + Public Property DtTmpFianzas() As DataTable + Get + Return CType(ViewState("DtTmpFianzas"), DataTable) + End Get + Set(value As DataTable) + ViewState("DtTmpFianzas") = value + End Set + End Property + Public Property DtTmpFianzasInicial() As DataTable + Get + Return CType(ViewState("DtTmpFianzasInicial"), DataTable) + End Get + Set(value As DataTable) + ViewState("DtTmpFianzasInicial") = value + End Set + End Property + Private Property MensajeAlert As StringBuilder + Get + Return CType(ViewState("MensajeAlert"), StringBuilder) + End Get + Set(value As StringBuilder) + ViewState("MensajeAlert") = value + End Set + End Property + Private Property DsDatosPedDev As DataSet + Get + DsDatosPedDev = DirectCast(ViewState("DsDatosPedDev"), DataSet) + End Get + + Set(ByVal value As DataSet) + ViewState("DsDatosPedDev") = value + End Set + End Property + + Private Property CveSubProyecto As Integer + Get + + If ViewState("CveSubProyecto") Is Nothing Then + Return -1 + Else + Return CType(ViewState("CveSubProyecto"), Integer) + End If + End Get + Set(value As Integer) + ViewState("CveSubProyecto") = value + End Set + End Property + + +#End Region + + Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load + If Not IsPostBack Then + CargaValoresIniciales() + CreaDtTmpFianzas() + + If Request("CveCliente") IsNot Nothing Then + cargaClientes() + End If + + If Request("CveContrato") IsNot Nothing AndAlso IsNumeric(Request("CveContrato")) AndAlso Request("CveContrato").ToEntero > 0 Then + ViewState("CveContrato") = Request("CveContrato") + + DvBitacora.Visible = True + DdlEstatus.Enabled = False + If UsuarioActual.TienePermisoProceso(126) Then + BtnAutorizar.Visible = True + End If + DivContent.Visible = True + ' DivTipoContrato.Visible = False + 'TxtArchivo.Visible = True + + CargaDatos() + + CargaDatosAvance() + CargaDatosAvancePorDocumento() + CargaInventarios() + + '12/04/2018 - Si el tipo de contrato es convenio de precio fijo configura campos + If CveTipoContrato = 28 Then + CargaConvenioPrecioFijo() + End If + + 'Configuración de Modalidad Update + BtnGuardar.Text = "Guardar Cambios" + + If Request("Opt") IsNot Nothing AndAlso IsNumeric(Request("Opt")) Then TAB.ActiveTabIndex = Request("Opt").ToEntero + Else + 'Configuración de Modalidad Insert + LblFechaCaptura.Text = Now.ToShortDateString() + LblUsuarioCapturo.Text = UsuarioActual.Usuario + ViewState("CveContrato") = -1 + + DvBitacora.Visible = False + TabContratosGastos.Visible = False + TabAF.Visible = False + TabReporteAvance.Visible = False + TabAvanveDocumento.Visible = False + + TAB.ActiveTabIndex = 0 + + 'If UsuarioActual.Empresa.CvePlataforma = 3 Then + ' rdventa.Checked = True + ' rdventa_CheckedChanged(Nothing, Nothing) + ' If (DdlTipoContrato.Items.FindByValue("14") Is Nothing) Then + ' DdlTipoContrato.Items.Insert(1, New ListItem("Contrato de Cuenta y Equipo", "14")) + ' End If + ' DdlTipoContrato.SelectedValue = "14" + ' TipoContrato = 14 + ' BtnTipoContrato_Click(Nothing, Nothing) + 'End If + + End If + + 'carga combos + CargaClasificaciones() + CargaPS() + CargaPSInsumos() + ConfiguraTipos() + CargaDatosEncabezado() + ' CargaImpuestosLocales() + + End If + + + '[IPP] PORQUE ESTA TODO ESTO EN TODOS LOS POSTBACK ??? - REVISEN BIEN DONDE PONEN EL CODIGO + + If UsuarioActual.TienePermisoProceso(165) Then + BtnGuardar.Visible = True + Else + BtnGuardar.Visible = False + End If + + If CveContrato > 0 Then + If UsuarioActual.TienePermisoProceso(164) Then + BtnEliminar.Visible = True + Gv.Columns(11).Visible = True + GvInsumos.Columns(9).Visible = True + Else + BtnEliminar.Visible = False + Gv.Columns(11).Visible = False + GvInsumos.Columns(9).Visible = False + End If + + 'If CveTipoContrato.Contiene(11, 25) Then 'ciclo comercial + ' Gv.Columns(9).Visible = False + ' GvInsumos.Columns(8).Visible = False + 'End If + + Else + TabPres.Visible = False + Gv.Columns(11).Visible = True + GvInsumos.Columns(9).Visible = True + + End If + + End Sub + +#Region " CARGA VALORES INICIALES " + Private Sub CargaValoresIniciales() + CveContrato = -1 + ViewState("TipoContrato") = 0 + CveVenta = -1 + Autorizado = False + BtnAutorizar.Visible = False + Session("FileUpload") = "" + Session("FileExtension") = "" + Session("FileFolder") = "" + ArchivoUpdate = "" + ModalidadDetalle = 1 + FolioSugerido = "" + + CargaProyecto() + CargaContratista() + ' CargaVendedores() + + DdlUM.DataSource = GlobalDTUnidadesMedida(UsuarioActual.CveEmpresa) + DdlUM.DataBind() + DdlMoneda.DataSource = GlobalDTMonedas + DdlMoneda.DataBind() + + + ' CargaContratoPadre() + CargaContratosEstatus() + CreaDT() + + 'DdlAlmacenOrigen.Items.Insert(0, New ListItem("Seleccione", "-1")) + 'DdlAlmacenDestino.Items.Insert(0, New ListItem("Seleccione", "-1")) + + 'If UsuarioActual.TienePermisoProceso(172) Then + ' RowPorcentajeComision.Visible = True + 'End If + If UsuarioActual.CveEmpresa.Contiene(72, 80) Then divResponsable.Visible = False + + End Sub + + 'Public Sub CargaDireccionesEnvios(CveCliente As Integer) + ' Dim ObjVentas As New ClsClientes + ' If ObjVentas.DireccionEnvioGet(-1, CveCliente, -1) Then + + ' If ObjVentas.DtResultados.Rows.Count > 0 Then + ' DdlClienteDireccionEnvio.DataSource = ObjVentas.DtResultados + ' DdlClienteDireccionEnvio.DataBind() + ' DivClienteDireccion.Visible = True + ' Else + ' DivClienteDireccion.Visible = False + ' End If + + ' End If + ' ObjVentas.Dispose() + ' UpGral.Update() + 'End Sub + + Protected Sub DdlMoneda_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlMoneda.SelectedIndexChanged + + If DdlMoneda.SelectedIndex = 0 Then + tipoCambio.Visible = False + TxtTipoCambio.Text = "" + UpGral.Update() + Else + tipoCambio.Visible = True + TxtTipoCambio.Text = "" + UpGral.Update() + End If + End Sub + Public Function isWithFamily() As Boolean + Return UsuarioActual.CveEmpresa = 66 + End Function + Private Sub cargaClientes() + TrCliente.Visible = True + TrProveedor.Visible = False + DdlCliente.DataSource = GlobalDTCliente(UsuarioActual.CveEmpresa, -1) + DdlCliente.DataBind() + End Sub + Private Sub CreaDT() + TmpDT = New DataTable + TmpDT.Columns.Add("CveContratoDetalle", GetType(Integer)) + TmpDT.Columns.Add("Cantidad", GetType(Double)) + TmpDT.Columns.Add("CantidadContratada", GetType(Double)) + TmpDT.Columns.Add("CveUM", GetType(Integer)) + TmpDT.Columns.Add("UM", GetType(String)) + TmpDT.Columns.Add("CveClasificacion", GetType(Integer)) + TmpDT.Columns.Add("Clasificacion", GetType(String)) + TmpDT.Columns.Add("CvePS", GetType(Integer)) + TmpDT.Columns.Add("PS", GetType(String)) + TmpDT.Columns.Add("CodigoPS", GetType(String)) + TmpDT.Columns.Add("PU", GetType(Double)) + TmpDT.Columns.Add("Total", GetType(Double)) + TmpDT.Columns.Add("CveTipoPresupuesto", GetType(Integer)) + TmpDT.Columns.Add("PermitirAvance", GetType(Integer)) + TmpDT.Columns.Add("PermitirEstimacion", GetType(Integer)) + TmpDT.Columns.Add("UsuarioAvance", GetType(Integer)) + TmpDT.Columns.Add("Cantidad_Original", GetType(Double)) + TmpDT.Columns.Add("PU_Original", GetType(Double)) + TmpDT.Columns.Add("Total_Original", GetType(Double)) + TmpDT.Columns.Add("NoIdentificacion", GetType(String)) + TmpDT.Columns.Add("LimitarCantidad", GetType(Integer)) + TmpDT.Columns.Add("OCInterna", GetType(String)) + TmpDT.Columns.Add("Observacion", GetType(String)) + End Sub + Protected Sub Limpiar() + TxtNumeroContrato.Text = "" + TxtDescripcionContrato.Text = "" + DdlContratista.SelectedValue = "-1" + DdlCliente.SelectedValue = "-1" + TxtFechaInicial.Text = "" + TxtFechaFinal.Text = "" + TxtPorIVA.Text = "" + 'txtMinimo.Text = "" + 'txtMaximo.Text = "" + 'TxtArchivo.Text = "" + + DdlProyecto.SelectedValue = "-1" + 'DdlSubProyectoContrato.SelectedValue = "-1" + 'DdlContratoPadre.SelectedValue = "-1" + + 'Tab Presupuesto + TxtCantidad.Text = "" + TxtPU.Text = "" + TmpDT.Clear() + CargaGVPresupuestos(TmpDT) + CargaGVPresupuestosInsumos(TmpDT) + LbTotalGeneral.Text = "0.00" + End Sub +#End Region + +#Region " CONFIGURA TIPOS CONTRATO " + + Private Sub ConfiguraTipos() + If Not TipoContrato.Contiene({7, 9, 13, 16, 18, 21}) Then + TabAF.Visible = False + End If + 'TabContratosGastos.Visible = False + + 'DONDE OCUPA ALMACEN + Dim CveTipoAlmacenOrigen = "12,15" + Dim CveTipoAlmacenDestino = "11,12" + + 'If TipoContrato.Contiene({7, 9, 13, 16, 18, 21, 27}) Then + ' RowAlmacen.Visible = True + ' If TipoContrato.Contiene(7, 9, 13, 21, 27) Then + ' If TipoContrato.Contiene(27) Then + ' CveTipoAlmacenOrigen = "1" + ' CveTipoAlmacenDestino = "17" + ' End If + ' RowAlmacenOrigen.Visible = True + ' End If + 'End If + + 'Dim CveOrigen = DdlAlmacenOrigen.SelectedValue + 'DdlAlmacenOrigen.Items.Clear() + 'DdlAlmacenOrigen.SelectedValue = "-1" + 'DdlAlmacenOrigen.Items.Insert(0, New ListItem("Seleccione", "-1")) + 'DdlAlmacenOrigen.DataSource = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltraParametros($"CveTipoAlmacen IN ({CveTipoAlmacenOrigen})") ' GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1) 'GlobalDTAlmacen(UsuarioActual.CveEmpresa) + 'DdlAlmacenOrigen.DataBind() + 'DdlAlmacenOrigen.SelectedValueExist(CveOrigen) + ''SI EL ALMACEN ANTERIOR DEL CONTRATO NO ESTA EN LOS ALMACENES ACTUALES LO INSERTA A FUERZAS + 'If DdlAlmacenOrigen.SelectedValue <> CveOrigen Then + ' DdlAlmacenOrigen.Items.Insert(1, New ListItem(GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("Almacen", $"CveAlmacen = {CveOrigen}"), CveOrigen)) + ' DdlAlmacenOrigen.SelectedValueExist(CveOrigen) + 'End If + + 'Dim CveDestino = DdlAlmacenDestino.SelectedValue + 'DdlAlmacenDestino.Items.Clear() + 'DdlAlmacenDestino.SelectedValue = "-1" + 'DdlAlmacenDestino.Items.Insert(0, New ListItem("Seleccione", "-1")) + 'DdlAlmacenDestino.DataSource = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltraParametros($"CveTipoAlmacen In ({CveTipoAlmacenDestino})") 'GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1) + 'DdlAlmacenDestino.DataBind() + 'DdlAlmacenDestino.SelectedValueExist(CveDestino) + ''SI EL ALMACEN ANTERIOR DEL CONTRATO NO ESTA EN LOS ALMACENES ACTUALES LO INSERTA A FUERZAS + 'If DdlAlmacenDestino.SelectedValue <> CveDestino Then + ' DdlAlmacenDestino.Items.Insert(1, New ListItem(GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("Almacen", $"CveAlmacen = {CveDestino}"), CveDestino)) + ' DdlAlmacenDestino.SelectedValueExist(CveDestino) + 'End If + + End Sub + + Private Sub MuestraPermiteAvance() + + 'If Not TipoContrato.Contiene({4, 5, 25, 11}) Then + ' Gv.Columns(9).Visible = False + ' GvInsumos.Columns(7).Visible = False + ' THAvance.Style.Add("display", "none") + ' TDAvance.Style.Add("display", "none") + ' THAvance.Visible = False + ' THAvanceInsumos.Visible = False + ' ' tdCol7.Visible = False + ' TDAvance.Visible = False + ' TDAvanceInsumos.Visible = False + 'Else + ' Gv.Columns(9).Visible = True + ' GvInsumos.Columns(6).Visible = True + ' THAvance.Visible = True + ' THAvanceInsumos.Visible = True + ' 'tdCol7.Visible = True + ' TDAvance.Visible = True + ' TDAvanceInsumos.Visible = True + 'End If + 'UpTitulos.Update() + 'UpGral.Update() + End Sub + +#End Region + +#Region " PANTALLA INICIAL" + 'Protected Sub rpCompra_CheckedChanged(sender As Object, e As EventArgs) Handles rpCompra.CheckedChanged + ' loadComboTipoContrato(False) + 'End Sub + 'Protected Sub rdventa_CheckedChanged(sender As Object, e As EventArgs) Handles rdventa.CheckedChanged + ' loadComboTipoContrato(True) + 'End Sub + + 'Private Sub loadComboTipoContrato(venta As Boolean) + ' Try + ' If venta Then + ' DdlTipoContrato.DataSource = GlobalDTContratosTipos(UsuarioActual.CveEmpresa).FiltraParametros(" TipoMovimiento = 1") + + ' Else + ' DdlTipoContrato.DataSource = GlobalDTContratosTipos(UsuarioActual.CveEmpresa).FiltraParametros(" TipoMovimiento = 0") + ' End If + ' dvDetContrato.Visible = True + ' ' DdlTipoContrato.Visible = True + ' DdlTipoContrato.DataBind() + ' DdlTipoContrato.Items.Insert(0, New ListItem("Seleccione una opción", "-1")) + ' If UsuarioActual.CveEmpresa.Contiene(1, 11, 4, 12) And venta Then + ' DdlTipoContrato.Items.Insert(1, New ListItem("Contrato con facturación ciclica", "25")) + ' End If + ' UPTipo.Update() + ' Catch ex As Exception + ' Alert(ex.Message, TipoMensaje.MsgError) + + ' End Try + 'End Sub + +#End Region + +#Region " INICIO DE PAGINA " + + 'Protected Sub DdlTipoContrato_SelectedIndexChanged(sender As Object, e As EventArgs) + ' CargaTipoContrato() + + ' '12/04/2018 - Se configuran campos de convenio de precio fijo + ' If DdlTipoContrato.SelectedValue = "28" Then + ' CargaConvenioPrecioFijo() + ' End If + + ' If UsuarioActual.CveEmpresa = 72 And DdlTipoContrato.SelectedValue.Contiene("7", "8", "10", "13", "28") Then + ' GetNoContratoNuevo() + ' End If + + 'End Sub + + + 'Private Sub CargaTipoContrato() + ' If DdlTipoContrato.SelectedIndex = 0 Then + ' TxtDescripcionTipoContrato.Text = "" + ' Exit Sub + ' End If + + ' TipoContrato = DdlTipoContrato.SelectedValue.ToEntero + ' If GlobalDTContratosTipos(UsuarioActual.CveEmpresa).FiltraParametros("CveContratoTipo = " & DdlTipoContrato.SelectedValue).Rows.Count > 0 Then + ' TxtDescripcionTipoContrato.Text = GlobalDTContratosTipos(UsuarioActual.CveEmpresa).FiltraParametros("CveContratoTipo = " & DdlTipoContrato.SelectedValue)(0)("Descripcion").ToString() + ' TxtDescripcionTipoContrato.Visible = True + ' End If + + + ' CargaContratoPadre() + ' UpProyecto.Update() + 'End Sub + + Private Sub modalidades(modalidadDetalleInt As Integer) + + If modalidadDetalleInt = 1 Then + ModalidadDetalle = 1 + + ' DvMax.Visible = True + ' DvMin.Visible = True + DvTotal.Visible = True + + + If CveContrato > 0 AndAlso CveTipoContrato <> 25 Then + TableDatosCabecera.Visible = True + End If + + If CveTipoContrato = 25 Then + 'DvMax.Visible = False + ' DvMin.Visible = False + DvTotal.Visible = False + + ' DivFianzas.Visible = False + 'DivImpuestosLocales.Visible = False + End If + + ElseIf modalidadDetalleInt = 2 Then + ModalidadDetalle = 2 + + ' DvMax.Visible = True + ' DvMin.Visible = True + DvTotal.Visible = True + 'TxtCantidad.Visible = False + + If CveContrato > 0 AndAlso CveTipoContrato <> 25 Then + TableDatosCabecera.Visible = True + End If + + If CveTipoContrato = 25 Then + ' DvMax.Visible = False + ' DvMin.Visible = False + DvTotal.Visible = False + + ' DivFianzas.Visible = False + ' DivImpuestosLocales.Visible = False + End If + + End If + + UpGral.Update() + + End Sub + + + 'Protected Sub chkDetalleContrato_CheckedChanged(sender As Object, e As EventArgs) + ' If chkDetalleContrato.Checked = False Then + ' modalidades(1) + ' Else + ' modalidades(2) + ' End If + 'End Sub + + 'Protected Sub BtnTipoContrato_Click(sender As Object, e As EventArgs) Handles BtnTipoContrato.Click + ' If DdlTipoContrato.SelectedIndex = 0 Then + ' Alert("Tiene que seleccionar un tipo de Contrato.", TipoMensaje.MsgAdvertencia) + ' Exit Sub + ' End If + + ' Me.CveTipoContrato = DdlTipoContrato.SelectedValue.ToEntero + + + + ' If rpCompra.Checked Then + + ' Response.Redirect($"/Contratos/Presupuestos.aspx?CveContrato=-1&CveContratoTipo={Me.CveTipoContrato}") + ' 'RegistraScript("window.location='/Contratos/Presupuestos.aspx") + ' Else + + ' modalidades(1) + + ' DivTipoContrato.Visible = False + + ' If rdventa.Checked Then + ' DdlCliente.Visible = True + ' TrCliente.Visible = True + + ' DdlContratista.Visible = False + ' TrProveedor.Visible = False + + + ' Else + ' DdlCliente.Visible = False + ' TrCliente.Visible = False + + ' TrProveedor.Visible = True + ' DdlContratista.Visible = True + ' End If + + ' If rdventa.Checked Then + ' cargaClientes() + ' Else + ' CargaContratista() + ' End If + + ' If DdlTipoContrato.SelectedValue = "14" Then + ' TrCtaEquipo.Visible = True + ' TrPeriodo.Visible = True + ' RFVEstatus.ValidationGroup = "" + ' RequiredFieldValidator1.ValidationGroup = "" + ' DvMin.Visible = True + ' DvMax.Visible = True + ' DvTotal.Visible = True + ' RowFlexible.Visible = False + ' RowEstatus.Visible = False + ' RowPorcentajeComision.Visible = False + ' dvAddendum.Visible = False + ' CargaPeriodos() + ' CargaPlantillas() + ' TrContratoPlantilla.Visible = True + ' TabPres.HeaderText = "Partidas" + ' Else + ' DtPeriodo = Nothing + ' End If + + + ' If DdlTipoContrato.SelectedValue = "25" Then + ' trLicitacion.Visible = False + ' divResponsable.Visible = False + ' TrPeriodo.Visible = True + ' CargaPeriodos() + ' trIva.Visible = False + ' trAnticipo.Visible = False + ' trAmortizacion.Visible = False + ' trPorGarantia.Visible = False + ' DvMin.Visible = False + ' RowFlexible.Visible = False + ' RowPorcentajeComision.Visible = False + ' DvMax.Visible = False + ' DvTotal.Visible = False + ' RowEstatus.Visible = False + ' TabPres.HeaderText = "Partidas" + ' DdlSubProyectoContrato.AutoPostBack = True + ' DvObservaciones.Visible = True + ' End If + + ' 'Dim CveTipoContrato = DdlTipoContrato.SelectedValue + + ' 'Dim TipoMov = GlobalDTContratosTipos.AsEnumerable().Where(Function(a) a("CveContratoTipo").ToString = CveTipoContrato).FirstOrDefault()("TipoMovimiento") + + + ' DivContent.Visible = True + ' ConfiguraTipos() + + + ' UpGral.Update() + ' 'UPTipo.Update() + ' End If + + 'End Sub + + + 'Protected Sub DdlSubProyectoContrato_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlSubProyectoContrato.SelectedIndexChanged + ' Dim ObjFolios As New ClsGralFolios + ' If ObjFolios.GetFolios("Con", UsuarioActual.CveEmpresa) Then + ' If ObjFolios.DtResultados.FiltraParametros($"CveSubProyecto = {DdlSubProyectoContrato.SelectedValue}").Rows.Count > 0 Then + ' FolioSugerido = $"{GlobalDTSubProyectos(-1, DdlSubProyectoContrato.SelectedValue.ToEntero).FiltroPrimeroValor("Serie")}-{ObjFolios.DtResultados.FiltroPrimeroValor("FActual", $"CveSubProyecto = {DdlSubProyectoContrato.SelectedValue}")}" + ' TxtNumeroContrato.Text = FolioSugerido + ' Else + ' Alert("La sucursal no cuenta con folios de contratos", TipoMensaje.MsgAdvertencia) + ' End If + ' End If + ' ObjFolios.Dispose() + ' UpGral.Update() + 'End Sub +#End Region + +#Region " CARGA DATOS " + Private Sub CargaDatos() + Dim ObjContratos As New ClsContratos() + Dim Ruta = Request.ApplicationPath + "Empresas\" & UsuarioActual.CveEmpresa & "\Contratos\" + 'DivTipoContrato.Visible = False + + If ObjContratos.GetContratos(CveContrato, UsuarioActual.CveEmpresa) Then + If ObjContratos.DtResultados.Rows.Count > 0 Then + + GRidsPresupuestos.Visible = True + msjpresupuestos.Visible = False + + If ArchivoUpdate = ObjContratos.Archivo.ToString Then + LinkArchivo.Visible = True + LinkArchivo.HRef = String.Format("{0}{1}", Ruta, ObjContratos.Archivo.ToString) + End If + Titulo = $"{ObjContratos.NumeroContrato} - {ObjContratos.DescripcionContrato} ({ObjContratos.DtResultados.Rows(0)("ContratoTipo")})" + TituloCorto = $"{ObjContratos.NumeroContrato} - {ObjContratos.DescripcionContrato} " + TipoDocumento = ObjContratos.DtResultados.Rows(0)("ContratoTipo").ToString + LtlTitulo.Text = $"Contrato: {Titulo})" + 'Pestaña Datos Generales + TxtObservaciones.Text = ObjContratos.Observaciones + TxtDescripcionContrato.Text = ObjContratos.DescripcionContrato + TxtNumeroContrato.Text = ObjContratos.NumeroContrato + TxtNumeroLicitacion.Text = ObjContratos.NumeroLicitacion + TipoContrato = ObjContratos.CveContratoTipo + ' TxtPorcentajeComision.Text = ObjContratos.PorcentajeComision.ToString + CveTipoContrato = ObjContratos.DtResultados.Rows(0)("CveContratoTipo").ToString.ToEntero + TxtCorreoNotificacion.Text = ObjContratos.DtResultados.Rows(0)("CorreoNotificacionPedDev").ToString + + + If ObjContratos.CveProveedor > 0 Then + TrProveedor.Visible = True + TrCliente.Visible = False + CargaContratista() + DdlContratista.SelectedValue = ObjContratos.CveProveedor.ToString + Else + cargaClientes() + DdlCliente.SelectedValueExist(ObjContratos.CveCliente.ToString) + UpGral.Update() + CargaSucursalCliente() + DdlSucursalCliente.SelectedValue = ObjContratos.CveSucursalCliente.ToString + End If + + + 'If DdlCliente.SelectedValue.ToEntero > 0 Then + ' CargaDireccionesEnvios(DdlCliente.SelectedValue.ToEntero) + ' DdlClienteDireccionEnvio.SelectedValueExist(ObjContratos.DtResultados.Rows(0)("CveDireccionEnvio").ToString.ToEntero) + 'End If + + 'CargaContratoPadre() + CargaContratoAddendum() + + If ObjContratos.DtResultados.Rows(0)("CveContratoTipo").ToString.ToEntero = 14 Then + ' CargaPeriodos() + 'TrCtaEquipo.Visible = True + ' TrPeriodo.Visible = True + RFVEstatus.ValidationGroup = "" + ' RequiredFieldValidator1.ValidationGroup = "" + ' DvMin.Visible = True + ' DvMax.Visible = True + DvTotal.Visible = True + 'RowFlexible.Visible = False + 'RowPorcentajeComision.Visible = False + RowEstatus.Visible = False + 'dvAddendum.Visible = False + liImprimir.Visible = True + CargaPlantillas() + 'TrContratoPlantilla.Visible = True + 'DdlPeriodo.SelectedValueExist(ObjContratos.DtResultados.Rows(0)("CvePeriodo")) + 'DdlCuentaEquipo.SelectedValueExist(ObjContratos.DtResultados.Rows(0)("CveCuentaEquipo")) + 'DdlPlantillaContrato.SelectedValueExist(ObjContratos.DtResultados.Rows(0)("CveContratoPlantilla")) + TabPres.HeaderText = "Partidas" + End If + + If ObjContratos.DtResultados.Rows(0)("CveContratoTipo").ToString.ToEntero = 25 Then + trLicitacion.Visible = False + divResponsable.Visible = False + 'TrPeriodo.Visible = True + 'CargaPeriodos() + trIva.Visible = False + trAnticipo.Visible = False + trAmortizacion.Visible = False + trPorGarantia.Visible = False + 'DvMin.Visible = False + ' DvMax.Visible = False + DvTotal.Visible = False + TabPVInsumos.Visible = False + RowEstatus.Visible = False + TabPres.HeaderText = "Partidas" + thOcCliente.Style.Add("display", "none") + tdOcCliente.Style.Add("display", "none") + thNoIdentificacionv.Style.Add("display", "none") + thLimitar.Style.Add("display", "none") + tdLimitar2.Style.Add("display", "none") + tdNoIdentificacionv.Style.Add("display", "none") + 'RowFlexible.Visible = False + TableDatosCabecera.Visible = False + TabAvanveDocumento.Visible = False + TabSistema.Visible = False + 'RowPorcentajeComision.Visible = False + TabContratosGastos.Visible = False + tdCveInterna.Text = "" + tdLimitar.Text = "" + tdOC.Text = "" + THAvance.Visible = False + THAvance.Style.Add("display", "none") + TDAvance.Style.Add("display", "none") + TxtOCInterna.Visible = False + TxtNoIdentificacionv.Visible = False + ChkLimitarVenta.Visible = False + DvObservaciones.Visible = True + TDObservacion.Visible = True + tdObservaciones.Visible = True + TxtObservaciones.Text = ObjContratos.DtResultados.Rows(0)("Observaciones").ToString + Gv.Columns(6).Visible = True + 'DdlPeriodo.SelectedValueExist(ObjContratos.DtResultados.Rows(0)("CvePeriodo").ToString) + End If + + 'If ObjContratos.DtResultados.Rows(0)("CveVendedor").ToString.ToEntero > 0 Then + ' DdlVendedor.SelectedValueExist(ObjContratos.DtResultados.Rows(0)("CveVendedor")) + 'End If + + + 'If (DdlAlmacenDestino.Items.FindByValue(ObjContratos.CveAlmacen.ToString()) Is Nothing) Then + ' Dim dr As DataRow = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimero(String.Format("CveAlmacen = {0}", ObjContratos.CveAlmacen)) + ' If dr IsNot Nothing Then + ' DdlAlmacenDestino.Items.Insert(1, New ListItem(dr("Almacen").ToString, dr("CveAlmacen").ToString)) ' lo genera Obj.SelectedValue = Valor.ToString + ' End If + 'End If + 'DdlAlmacenDestino.SelectedValue = ObjContratos.CveAlmacen.ToString + + 'If (DdlAlmacenOrigen.Items.FindByValue(ObjContratos.CveAlmacenOrigen.ToString()) Is Nothing) Then + ' Dim dr As DataRow = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimero(String.Format("CveAlmacen = {0}", ObjContratos.CveAlmacenOrigen)) + ' If dr IsNot Nothing Then + ' DdlAlmacenOrigen.Items.Insert(1, New ListItem(dr("Almacen").ToString, dr("CveAlmacen").ToString)) ' lo genera Obj.SelectedValue = Valor.ToString + ' End If + 'End If + 'DdlAlmacenOrigen.SelectedValue = ObjContratos.CveAlmacenOrigen.ToString + + FechaF = ObjContratos.FechaFinal + FechaI = ObjContratos.FechaInicial + TxtFechaFinal.Text = ObjContratos.FechaFinal.ToShortDateString + TxtFechaInicial.Text = ObjContratos.FechaInicial.ToShortDateString + TxtUbicacion.Text = ObjContratos.Ubicacion + TxtResponsable.Text = ObjContratos.Responsable + TxtPorAnticipo.Text = ObjContratos.PorAmortizacionAnticipo.FormatoNumero + TxtPorAmortizacionAnticipo.Text = ObjContratos.PorAmortizacionAnticipo.FormatoNumero + TxtPorGarantia.Text = ObjContratos.PorGarantia.FormatoNumero + DdlProyecto.SelectedValue = ObjContratos.CveProyecto.ToString + LblSubProyecto.Text = ObjContratos.SubProyectoContrato + DdlTipoContratoObra.SelectedValueExist(ObjContratos.CveContratoTipo) + 'CargaSubProyectoContrato(DdlProyecto.SelectedValue.ToEntero) + + 'DdlSubProyectoContrato.SelectedValue = ObjContratos.CveSubProyecto.ToString + + + + TxtPorIVA.Text = ObjContratos.PorIVA.ToString + 'txtMinimo.Text = ObjContratos.Minimo.FormatoNumero + 'txtMaximo.Text = ObjContratos.Maximo.FormatoNumero + TxtTotal.Text = ObjContratos.Importe.FormatoNumero + 'TxtArchivo.Text = ObjContratos.Archivo + 'DdlTipoGarantia.SelectedValueExist(ObjContratos.TipoGarantia) + 'DdlEstatusFianza.SelectedValueExist(ObjContratos.EstatusFianza) + 'TxtFolio.Text = ObjContratos.Folio.ToString + 'txtFechaVenc.Text = ObjContratos.FechaVenc.ToString + DdlEstatus.SelectedValueExist(ObjContratos.CveContratosEstatus.ToString) + CargarFianzas() + + If ObjContratos.TipoEstatus = 2 Then + DdlEstatus.Enabled = False + If UsuarioActual.TienePermisoProceso(173) Then + liVigenteContrato.Visible = True + LBVigenteContrato.Visible = True + End If + Else + DdlEstatus.Items.Clear() + 'Se esta ocultando concluido' + DdlEstatus.DataSource = CType(DdlEstatus.DataSource, DataTable).FiltraParametros("TipoEstatus NOT IN (2)") + DdlEstatus.DataBind() + Select Case ObjContratos.TipoEstatus + Case 1 + If UsuarioActual.TienePermisoProceso(173) Then + liTerminarContrato.Visible = True + LBTerminarContrato.Visible = True + + liCancelarContrato.Visible = True + LBCancelarContrato.Visible = True + End If + Case 2, 3 ' reactivar el contrato + If UsuarioActual.TienePermisoProceso(173) Then + liVigenteContrato.Visible = True + LBVigenteContrato.Visible = True + End If + End Select + + End If + TxtTipoCambio.Text = ObjContratos.TipoCambio.ToString + + ModalidadDetalle = ObjContratos.ModalidadDetalle + 'chkDetalleContrato.Checked = If(ModalidadDetalle = 2, True, False) + 'ChkImpuestosLocales.Checked = ObjContratos.AplicaImpuestosLocales + 'GvImpuestosLocales.Visible = ObjContratos.AplicaImpuestosLocales + modalidades(ModalidadDetalle) + + CargaGVGastos() + + DdlMoneda.SelectedValue = ObjContratos.CveMoneda.ToString + If DdlMoneda.SelectedIndex > 0 Then + tipoCambio.Visible = True + End If + + + If ObjContratos.CveProveedor > 0 Then + Contratante = ObjContratos.RazonSocial.ToString + Else + Contratante = ObjContratos.NombreComercial.ToString + End If + + 'AFU.Visible = False + + 'TxtArchivo.Text = ObjContratos.Archivo.ToString + + 'ChkEstatusContrato.Checked = CBool(ObjContratos.EstatusContrato) + 'DdlContratoPadre.SelectedValue = ObjContratos.CveContratoPadre.ToString + LblFechaCaptura.Text = ObjContratos.FechaIng.ToShortDateString + 'HplSecciones.NavigateUrl = "/Contratos/ContratosSecciones.aspx?CveContrato=" & CveContrato + 'CargaDatosPresup() + + CargaPresupuesto() + ' MuestraPermiteAvance() + cargarBitacora() + If LblImporte.Text.ToDecimal <= 0 Then + LblImporte.Text = ObjContratos.ImporteTotal.ToString.FormatoNumero + End If + + If Not IsDBNull(ObjContratos.Archivo) AndAlso ObjContratos.Archivo <> "" AndAlso ObjContratos.Archivo <> "-1" AndAlso ObjContratos.Archivo <> $"{ObjContratos.CveContrato}." Then + ViewState("FUrl") = Path.Combine(UsuarioActual.Empresa.Ruta, "CONTRATOS", ObjContratos.Archivo) + 'A2.NavigateUrl = String.Format("/Compras/PopUpVerFactura.aspx?P={0}", Encripta(String.Format("OP=CONTRATO&CveEmpresa={0}&Archivo={1}", ObjContratos.CveEmpresa, ViewState("FUrl").ToString))) + BtnDescargar.Visible = True + Else + BtnDescargar.Visible = False + A1.Visible = True + End If + + + DVSubProyecto.Visible = True + DVddlproyecto.Visible = False + + Else + CveContrato = -1 + Alert("El Contrato Solicitado no existe, por favor revise su búsqueda.", TipoMensaje.MsgAdvertencia) + BtnGuardar.Enabled = False + End If + Else + CveContrato = -1 + Alert("Ocurrió un error al cargar el Contrato. Por favor vuelva a intentar.", TipoMensaje.MsgError) + BtnGuardar.Enabled = False + End If + UpGral.Update() + UPAFUL.Update() + UpProyecto.Update() + ' UpImpuestos.Update() + UpTitulos.Update() + ObjContratos.Dispose() + End Sub + Private Sub CargaContratoAddendum() + Dim ObjContratos As New ClsContratos + If ObjContratos.GetContratosAddendum(CveContrato) Then + If ObjContratos.DtResultados.Rows.Count > 0 Then + TabAddendum.Visible = True + GvAddendum.DataSource = ObjContratos.DtResultados + GvAddendum.DataBind() + End If + End If + End Sub + Private Sub CargaPresupuesto() + Dim ObjContratos As New ClsContratos + TabPres.Visible = True + + If TipoContrato = 4 Then + TabPI.Visible = True + End If + If ObjContratos.GetContratosDetalle(CveContrato) Then + TmpDT = ObjContratos.DtResultados + If TmpDT.MAX("Cantidad_Original").ToString.ToEntero > 0 OrElse TmpDT.MAX("PU_Original").ToString.ToEntero > 0 Then + BtnAutorizar.Visible = False + Autorizado = True + BtnAgregarDetalle.Visible = False + AgregarInt.Visible = UsuarioActual.TienePermisoProceso(129) + End If + + CargaGVPresupuestos(TmpDT.FiltraParametros("CveTipoPresupuesto=2")) + CargaGVPresupuestosInsumos(TmpDT.FiltraParametros("CveTipoPresupuesto=1")) + + GvInt.DataSource = TmpDT.FiltraParametros("CveTipoPresupuesto=1") + GvInt.DataBind() + + UpGV.Update() + UpGVInsumos.Update() + UPGVInt.Update() + LbTotalGeneral.Text = TmpDT.FiltraParametros("CveTipoPresupuesto=2").SUM("Total").FormatoNumero() + LbTotalGeneralInsumos.Text = TmpDT.FiltraParametros("CveTipoPresupuesto=1").SUM("Total").FormatoNumero() + LbTotalGeneralInt.Text = TmpDT.FiltraParametros("CveTipoPresupuesto=1").SUM("Total").FormatoNumero() + LblImporte.Text = "$" & TmpDT.FiltraParametros("CveTipoPresupuesto=2").SUM("Total").FormatoNumero() + End If + End Sub + + Private Sub CargarFianzas() + + 'DivFianzas.Visible = True + + Dim ObjContrato As ClsContratos = New ClsContratos() + + If ObjContrato.GetContratoFianza(CveContrato, -1, "-1", "-1", UsuarioActual.CveEmpresa, -1) Then + DtTmpFianzas = ObjContrato.DtResultados + ' GvFianzas.DataSource = ObjContrato.DtResultados + + DtTmpFianzasInicial = DtTmpFianzas.Copy() + + End If + + ObjContrato.Dispose() + ' GvFianzas.DataBind() + ' UpGvFianzas.Update() + + End Sub +#End Region + +#Region " GUARDAR " + Protected Sub BtnGuardar_Click(sender As Object, e As EventArgs) Handles BtnGuardar.Click + + If DdlContratista.SelectedValue.ToEntero = -1 And DdlCliente.SelectedValue.ToEntero = -1 Then + Alert("Debe seleccionar con quién está haciendo el contrato. Proveedor o Cliente", TipoMensaje.MsgAdvertencia) + Exit Sub + End If + + Dim TieneError = False + Dim Modificado = False + ' Dim Extension = Session("FileExtension").ToString + Dim Archivo = Session("FileUpload").ToString + Dim Ruta = Session("FileFolder").ToString + + Dim Minimo, Maximo, Total As Double + 'If txtMinimo.Text.ToDouble > 0 Then Minimo = txtMinimo.Text.ToDouble Else Minimo = -1 + 'If txtMaximo.Text.ToDouble > 0 Then Maximo = txtMaximo.Text.ToDouble Else Maximo = -1 + 'If TxtTotal.Text.ToDouble > 0 Then Total = TxtTotal.Text.ToDouble Else Total = -1 + Minimo = 0 'txtMinimo.Text.ToDouble + Maximo = 0 'txtMaximo.Text.ToDouble + Total = TxtTotal.Text.ToDouble + + 'If DdlTipoContrato.SelectedValue = "25" AndAlso DdlPeriodo.SelectedValue.ToEntero() <= 0 Then + ' Alert("Debe seleccionar el periodo de facturación.", TipoMensaje.MsgAdvertencia) + ' Exit Sub + 'End If + + If DdlMoneda.SelectedIndex > 0 Then + If TxtTipoCambio.Text.Trim.Length = 0 Or TxtTipoCambio.Text.Trim.ToDouble = 0.0 Then + Alert("Cuando seleccione una moneda diferente a peso debe especificar el tipo de cambio.", TipoMensaje.MsgAdvertencia) + Exit Sub + End If + End If + + If CveContrato > 0 Then + If DdlContratista.SelectedValue.ToEntero = -1 And DdlCliente.SelectedValue.ToEntero = -1 Then + Alert("Debe seleccionar con quién está haciendo el contrato. Proveedor o Cliente", TipoMensaje.MsgAdvertencia) + Exit Sub + End If + End If + + Dim ObjContratos As New ClsContratos + Dim ObjInventarios As New ClsInventarios(ObjContratos.IniciaTransacSQL) + + TipoContrato = DdlTipoContratoObra.SelectedValue.ToEntero + + 'Crear Contrato + If Not CveContrato > 0 Then + + Dim EstatusContrato As Integer = 1 + + CveContrato = ObjContratos.AddContratosObra(TxtNumeroContrato.Text, TxtDescripcionContrato.Text, TxtNumeroLicitacion.Text.Trim, DdlContratista.SelectedValue.ToEntero, DdlCliente.SelectedValue.ToEntero, -1, TxtFechaInicial.Text.ToDate, TxtFechaFinal.Text.ToDate, + TxtUbicacion.Text, TxtResponsable.Text, DdlProyecto.SelectedValue.ToEntero, TxtPorIVA.Text.ToDouble, TxtPorAnticipo.Text.ToDouble, TxtPorAmortizacionAnticipo.Text.ToDouble, + TxtPorGarantia.Text.ToDouble, "." & Session("FileExtension").ToString, "", -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, False, Minimo, Maximo, Total, + DdlMoneda.SelectedValue.ToEntero, ModalidadDetalle, EstatusContrato, TipoContrato, + TxtTipoCambio.Text.ToDouble, CveSucursalCliente:=DdlSucursalCliente.SelectedValue.ToEntero, CveAlmacenOrigen:=-1, CveAlmacenDestino:=-1, + PorcentajeComision:=0, TipoGarantia:=-1, Folio:=0, FechaVenc:=Nothing, EstatusFianza:=1, + CvePeriodo:=-1, CveCuentaEquipo:=-1, CveContratoPlantilla:=-1, CveVendedor:=-1, + Observaciones:=TxtObservaciones.Text, CveDireccionEnvio:=-1, AplicaImpuestosLocales:=False, CorreoNotificacionPedDev:=TxtCorreoNotificacion.Text.Trim()) + + + TieneError = Not GuardaFianzas(ObjContratos) + + + If CveContrato > 0 AndAlso Not TieneError Then + 'Renombrar archivo + If ViewState("extencion") IsNot Nothing Then + If ViewState("FUrl").ToString.Length > 0 AndAlso ViewState("extencion").ToString.Length > 0 Then + If Not Directory.Exists(ModExtensiones.DirectorioBaseEmpresas + "Empresas\" & UsuarioActual.CveEmpresa & "\Contratos") Then + Directory.CreateDirectory(ModExtensiones.DirectorioBaseEmpresas + "Empresas\" & UsuarioActual.CveEmpresa & "\Contratos") + End If + Ruta = ModExtensiones.DirectorioBaseEmpresas + "Empresas\" & UsuarioActual.CveEmpresa & "\Contratos\" + + 'ViewState("extencion") = FileExtension + 'ViewState("FUrl") = Path.Combine(UsuarioActual.Empresa.Ruta, "Contratos", "Temp", ViewState("FName").ToString) + Try + If File.Exists(String.Format("{0}{1}.{2}", Ruta, CveContrato.ToString, ViewState("extencion").ToString)) Then + File.Delete(String.Format("{0}{1}.{2}", Ruta, CveContrato.ToString, ViewState("extencion").ToString)) + End If + System.IO.File.Move(ViewState("FUrl").ToString, String.Format("{0}{1}.{2}", Ruta, CveContrato.ToString, ViewState("extencion").ToString)) + Catch ex As Exception + + End Try + End If + End If + + 'If UsuarioActual.Empresa.CvePlataforma = 3 AndAlso DdlTipoContrato.SelectedValue = "14" Then + ' Dim FechaI As DateTime = TxtFechaInicial.Text.ToDateTime + ' Dim FechaF As DateTime = TxtFechaFinal.Text.ToDateTime + ' Dim Periodo As Integer = DtPeriodo.FiltraParametros($"CvePeriodo = {DdlPeriodo.SelectedValue.ToEntero}").Rows(0)("Dias").ToString.ToEntero + ' Dim VigenciaEnDias As Double = DateDiff(DateInterval.Day, FechaI, FechaF) + ' Dim CiclosComerciales As Integer = Math.Round(VigenciaEnDias / Periodo).ToEntero + ' For Ciclo As Integer = 1 To CiclosComerciales + ' If Not ObjContratos.CicloComercialAdd(CveContrato, -1, DdlCliente.SelectedValue.ToEntero, False, -1, 1, UsuarioActual.CveEmpresa, FechaI.AddDays(Periodo * Ciclo)) Then TieneError = True : Exit For + ' Next + 'ElseIf DdlTipoContrato.SelectedValue = "25" Then + ' Dim FechaI As DateTime = TxtFechaInicial.Text.ToDateTime + ' Dim FechaF As DateTime = TxtFechaFinal.Text.ToDateTime + ' If FechaI >= DateTime.Today Then + ' If Not ObjContratos.CicloComercialAdd(CveContrato, -1, DdlCliente.SelectedValue.ToEntero, False, -1, 1, UsuarioActual.CveEmpresa, FechaI) Then TieneError = True + ' End If + ' Dim Periodo As Integer = DtPeriodo.FiltroPrimeroValor("Meses", $"CvePeriodo = {DdlPeriodo.SelectedValue.ToEntero}").ToEntero + ' Dim VigenciaMeses As Double = DateDiff(DateInterval.Month, FechaI, FechaF) + ' Dim CiclosComerciales As Integer = Math.Ceiling(VigenciaMeses / Periodo).ToEntero + ' For Ciclo As Integer = 1 To CiclosComerciales + ' If Not ObjContratos.CicloComercialAdd(CveContrato, -1, DdlCliente.SelectedValue.ToEntero, False, -1, 1, UsuarioActual.CveEmpresa, If(FechaI.AddMonths(Periodo * Ciclo) > FechaF, FechaF, FechaI.AddMonths(Periodo * Ciclo))) Then TieneError = True : Exit For + ' Next + 'End If + + If TxtNumeroContrato.Text = FolioSugerido Then + Dim ObjFolios As New ClsGralFolios + + If Not ObjFolios.UpdateFolioActual(CveSubProyecto, "Con", True, UsuarioActual.CveEmpresa) Then + TieneError = True + End If + + ObjFolios.Dispose() + End If + + 'If ChkImpuestosLocales.Checked Then + ' Dim count As Integer = 0 + + ' For Each GVR As GridViewRow In GvImpuestosLocales.Rows + ' If GVR.FCCheckBox("ChkDeduccion").Checked Then + ' count = count + 1 + ' ObjContratos.AddContratoImpuestosLocales(CveContrato, GVR.DataKey("CveImpuestoLocal").ToEntero) + ' End If + ' Next + + ' If count = 0 Then + ' Alert("Debe seleccionar un Impuesto Local", TipoMensaje.MsgAdvertencia) + ' TieneError = True + ' End If + 'End If + + Else + TieneError = True + End If + + Else + Modificado = True + + Dim ArchivoUpdate As String = "-1" + + If Session("FileExtension").ToString <> "" Then + ArchivoUpdate = "." & Session("FileExtension").ToString + Else + + End If + + If ObjContratos.UpdateContratosObra(CveContrato, TxtNumeroContrato.Text, TxtDescripcionContrato.Text, TxtNumeroLicitacion.Text.Trim, DdlContratista.SelectedValue.ToEntero, DdlCliente.SelectedValue.ToEntero, -1, TxtFechaInicial.Text.ToDate, TxtFechaFinal.Text.ToDate, + TxtUbicacion.Text, TxtResponsable.Text, TxtPorIVA.Text.ToDouble, TxtPorAnticipo.Text.ToDouble, TxtPorAmortizacionAnticipo.Text.ToDouble, + TxtPorGarantia.Text.ToDouble, ArchivoUpdate, "", -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, False, Minimo, Maximo, Total, DdlMoneda.SelectedValue.ToEntero, + ModalidadDetalle, If(UsuarioActual.Empresa.CvePlataforma = 3 OrElse CveTipoContrato = 25, 1, DdlEstatus.SelectedValue.ToEntero), TipoContrato, TxtTipoCambio.Text.ToDouble, CveSucursalCliente:=DdlSucursalCliente.SelectedValue.ToEntero, + CveAlmacenOrigen:=-1, CveAlmacenDestino:=-1, PorcentajeComision:=0, + TipoGarantia:=-1, Folio:=-1, FechaVenc:=Nothing, EstatusFianza:=-1, CveContratoPlantilla:=-1, + CveCuentaEquipo:=-1, CveVendedor:=-1, Observaciones:=TxtObservaciones.Text, CveDireccionEnvio:=-1, AplicaImpuestosLocales:=False, + CorreoNotificacionPedDev:=TxtCorreoNotificacion.Text.Trim()) Then + + + TieneError = Not GuardaFianzas(ObjContratos) + + 'Renombrar archivo + If Not TieneError Then + + 'If UsuarioActual.Empresa.CvePlataforma = 3 AndAlso DdlTipoContrato.SelectedValue = "14" Then + ' Dim FechaIN As DateTime = TxtFechaInicial.Text.ToDateTime + ' Dim FechaFN As DateTime = TxtFechaFinal.Text.ToDateTime + ' Dim Periodo As Integer = DtPeriodo.FiltraParametros($"CvePeriodo = {DdlPeriodo.SelectedValue.ToEntero}").Rows(0)("Dias").ToString.ToEntero + ' Dim VigenciaEnDias As Double = DateDiff(DateInterval.Day, FechaI, FechaF) + ' Dim CiclosComerciales As Integer = Math.Round(VigenciaEnDias / Periodo).ToEntero + ' For Ciclo As Integer = 1 To CiclosComerciales + ' If Not ObjContratos.CicloComercialAdd(CveContrato, -1, DdlCliente.SelectedValue.ToEntero, False, -1, 1, UsuarioActual.CveEmpresa, FechaI.AddDays(Periodo * Ciclo)) Then TieneError = True : Exit For + ' Next + 'ElseIf CveTipoContrato = 25 Then + ' Dim FechaIN As DateTime = TxtFechaInicial.Text.ToDateTime + ' Dim FechaFN As DateTime = TxtFechaFinal.Text.ToDateTime + ' If FechaFN <> FechaF OrElse FechaI <> FechaIN Then + ' If Not ObjContratos.CicloComercialDelete(CveContrato, False, UsuarioActual.CveEmpresa) Then + ' TieneError = True + ' End If + ' If Not TieneError Then + ' If FechaIN >= DateTime.Today Then + ' If Not ObjContratos.CicloComercialAdd(CveContrato, -1, DdlCliente.SelectedValue.ToEntero, False, -1, 1, UsuarioActual.CveEmpresa, FechaIN) Then TieneError = True + ' End If + ' Dim Periodo As Integer = DtPeriodo.FiltroPrimeroValor("Meses", $"CvePeriodo = {DdlPeriodo.SelectedValue.ToEntero}").ToEntero + ' Dim VigenciaMeses As Double = DateDiff(DateInterval.Month, FechaI, FechaF) + ' Dim CiclosComerciales As Integer = Math.Ceiling(VigenciaMeses / Periodo).ToEntero + ' For Ciclo As Integer = 1 To CiclosComerciales + ' If Not ObjContratos.CicloComercialAdd(CveContrato, -1, DdlCliente.SelectedValue.ToEntero, False, -1, 1, UsuarioActual.CveEmpresa, If(FechaIN.AddMonths(Periodo * Ciclo) > FechaFN, FechaFN, FechaIN.AddMonths(Periodo * Ciclo))) Then TieneError = True : Exit For + ' Next + ' End If + ' End If + 'End If + + If ViewState("extencion") IsNot Nothing Then + + If ViewState("FUrl").ToString.Length > 0 AndAlso ViewState("extencion").ToString.Length > 0 Then + If Not Directory.Exists(ModExtensiones.DirectorioBaseEmpresas + "Empresas\" & UsuarioActual.CveEmpresa & "\Contratos") Then + Directory.CreateDirectory(ModExtensiones.DirectorioBaseEmpresas + "Empresas\" & UsuarioActual.CveEmpresa & "\Contratos") + End If + Ruta = ModExtensiones.DirectorioBaseEmpresas + "Empresas\" & UsuarioActual.CveEmpresa & "\Contratos\" + + Try + If File.Exists(String.Format("{0}{1}.{2}", Ruta, CveContrato.ToString, ViewState("extencion").ToString)) Then + File.Delete(String.Format("{0}{1}.{2}", Ruta, CveContrato.ToString, ViewState("extencion").ToString)) + End If + System.IO.File.Move(ViewState("FUrl").ToString, String.Format("{0}{1}.{2}", Ruta, CveContrato.ToString, ViewState("extencion").ToString)) + Catch ex As Exception + + End Try + ' System.IO.File.Move(Archivo, String.Format("{0}{1}{2}", Ruta, CveContrato.ToString, Extension)) + End If + End If + + 'If ChkImpuestosLocales.Checked Then + ' Dim count As Integer = 0 + ' ObjContratos.LimpiaImpuestosLocales(CveContrato) + + ' For Each GVR As GridViewRow In GvImpuestosLocales.Rows + ' If GVR.FCCheckBox("ChkDeduccion").Checked Then + ' count = count + 1 + ' ObjContratos.AddContratoImpuestosLocales(CveContrato, GVR.DataKey("CveImpuestoLocal").ToEntero) + ' End If + ' Next + + ' If count = 0 Then + ' Alert("Debe seleccionar un Impuesto Local", TipoMensaje.MsgAdvertencia) + ' TieneError = True + ' End If + 'Else + ' ObjContratos.LimpiaImpuestosLocales(CveContrato) + 'End If + + End If + Else + TieneError = True + End If + + + End If + + If TieneError Then + ObjContratos.RollBack() + Else + ObjContratos.Commit() + + If ObjContratos.GetContratos(-1, -1) Then + Application("GlobalDTContratos") = ObjContratos.DtResultados + End If + + Limpiar() + If Modificado Then + Alert("El Contrato se modificó Correctamente.", TipoMensaje.MsgInformacion, String.Format("document.location.href=""/Contratos/ContratoObra.aspx?CveContrato={0}""", CveContrato)) + Else + Alert("El Contrato se registró Correctamente.", TipoMensaje.MsgInformacion, String.Format("document.location.href=""/Contratos/ContratoObra.aspx?CveContrato={0}""", CveContrato)) + End If + + End If + + UpGral.Update() + ObjContratos.Dispose() + End Sub +#End Region + +#Region " ELIMINAR " + Protected Sub BtnEliminar_Click(sender As Object, e As EventArgs) Handles BtnEliminar.Click + Dim objContratos As New ClsContratos + + If objContratos.RemoveContrato(CveContrato, UsuarioActual.Empresa.CveEmpresa) Then + Response.Redirect("./Contratos.aspx") + Else + ' Alert("Ocurrio un error al eliminar el contrato", TipoMensaje.MsgError) + End If + End Sub +#End Region + +#Region " TERMINAR/CANCELAR CONTRATO " + Protected Sub LBTerminarContrato_Click(sender As Object, e As EventArgs) + Dim ObjContratos As New ClsContratos + If ObjContratos.TerminarContrato(CveContrato, 2, UsuarioActual.CveEmpresa) > 0 Then + Alert("El Contrato fue terminado Correctamente.", TipoMensaje.MsgInformacion, String.Format("document.location.href=""/Contratos/Contrato.aspx?CveContrato={0}""", CveContrato)) + End If + ObjContratos.Dispose() + End Sub + + Protected Sub LBCancelarContrato_Click(sender As Object, e As EventArgs) + Dim ObjContratos As New ClsContratos + If ObjContratos.TerminarContrato(CveContrato, 3, UsuarioActual.CveEmpresa) > 0 Then + Alert("El Contrato fue cancelado Correctamente.", TipoMensaje.MsgInformacion, String.Format("document.location.href=""/Contratos/Contrato.aspx?CveContrato={0}""", CveContrato)) + End If + ObjContratos.Dispose() + End Sub + + Protected Sub LBVigenteContrato_Click(sender As Object, e As EventArgs) + Dim ObjContratos As New ClsContratos + If ObjContratos.TerminarContrato(CveContrato, 1, UsuarioActual.CveEmpresa) > 0 Then + Alert("El Contrato fue cancelado Correctamente.", TipoMensaje.MsgInformacion, String.Format("document.location.href=""/Contratos/Contrato.aspx?CveContrato={0}""", CveContrato)) + End If + ObjContratos.Dispose() + End Sub +#End Region + +#Region " TABS " + +#Region " TAB: INFORMACION GENERAL" + +#Region "COMBOS - INFO GENERAL" + Private Sub CargaProyecto() + + 'trddlproyecto.Visible = LblProyecto.Visible + CargarCentrosDeCosto(DdlProyecto, Nothing, LblProyecto, LblSubProyectoTitulo) + + DdlProyecto.Visible = True + LblProyecto.Visible = True + + + LblCentroCosto.Text = LblSubProyectoTitulo.Text + LblSubProyectoTitulo.Text = LblSubProyectoTitulo.Text & ":" + + 'If UsuarioActual.Empresa.GralSoloProyecto Then + ' CargaSubProyectoContrato(-1) + ' lblsubproyecto.Text = "Proyecto" + 'Else + ' DdlProyecto.DataSource = GlobalDTProyectos(UsuarioActual.Empresa.CveEmpresa).FiltraParametros("", "", {"CveProyecto", "Proyecto"}) + ' DdlProyecto.DataBind() + 'End If + End Sub + 'Protected Sub DdlProyecto_SelectedIndexChanged(sender As Object, e As System.EventArgs) Handles DdlProyecto.SelectedIndexChanged + ' CargaSubProyectoContrato(DdlProyecto.SelectedValue.ToEntero) + 'End Sub + 'Protected Sub CargaSubProyectoContrato(CveProyecto As Integer) + ' DdlSubProyectoContrato.Items.Clear() + ' DdlSubProyectoContrato.DataSource = GlobalDTSubProyectos(CveProyecto, CveEmpresa:=UsuarioActual.CveEmpresa).FiltraParametros("", "", {"CveSubproyecto", "SubProyecto"}) + ' DdlSubProyectoContrato.DataBind() + ' DdlSubProyectoContrato.Items.Insert(0, New ListItem("Seleccione un Proyecto", "-1")) + 'End Sub + Private Sub CargaContratista() + DdlContratista.DataSource = GlobalDTCompProveedores(UsuarioActual.CveEmpresa) + DdlContratista.DataBind() + End Sub + + 'Private Sub CargaVendedores() + ' DdlVendedor.DataSource = GlobalDTVendedores(UsuarioActual.CveEmpresa) + ' DdlVendedor.DataBind() + 'End Sub + 'Private Sub CargaContratoPadre() + ' DdlContratoPadre.Items.Clear() + ' DdlContratoPadre.DataSource = GlobalDTContratos.FiltraParametros($"CveEmpresa = {UsuarioActual.CveEmpresa} AND CveContratoTipo = {TipoContrato} {If(DdlCliente.SelectedValue.ToEntero > 0, $"AND CveCliente = {DdlCliente.SelectedValue}", "")} {If(CveContrato > 0, $"AND CveContrato <> {CveContrato}", "")} ") + ' DdlContratoPadre.DataBind() + ' DdlContratoPadre.Items.Insert(0, New ListItem("Seleccione", "-1")) + 'End Sub + Private Sub CargaContratosEstatus() + Dim ObjContratos As New ClsContratos + ObjContratos.GetContratosEstatus(UsuarioActual.CveEmpresa) + DdlEstatus.DataSource = ObjContratos.DtResultados + DdlEstatus.DataBind() + ObjContratos.Dispose() + End Sub + Protected Sub DdlCliente_SelectedIndexChanged(sender As Object, e As EventArgs) + CargaSucursalCliente() + ' CargaDireccionesEnvios(DdlCliente.SelectedValue.ToEntero) + UPPDatos.Update() + End Sub + Private Sub CargaSucursalCliente() + TrClienteSucursal.Visible = False + + Dim ObjCliente As New ClsClientes() + + If DdlCliente.SelectedValue.ToEntero > 0 Then + + If ObjCliente.GetSucursales(DdlCliente.SelectedValue.ToEntero) Then + DdlSucursalCliente.DataSource = ObjCliente.DtResultados + If ObjCliente.DtResultados.Rows.Count > 0 Then + TrClienteSucursal.Visible = True + End If + DdlSucursalCliente.DataBind() + ' DdlTipoContrato.Items.Insert(0, New ListItem("Matriz", "-1")) + End If + 'If UsuarioActual.Empresa.CvePlataforma = 3 Then ' QUITAR + ' CargaCuentasEquipos() + 'End If + End If + + ObjCliente.Dispose() + + 'CargaContratoPadre() + UpProyecto.Update() + End Sub + + + + + + + + + +#End Region + +#Region " ARCHIVO " + + Private Sub BtnDescargar_Click(sender As Object, e As EventArgs) Handles BtnDescargar.Click + DescargarArchivo() + End Sub + + Private Sub DescargarArchivo() + Dim File As New FileInfo(ViewState("FUrl").ToString) + + If File.Exists Then 'set appropriate headers + Response.Clear() + Response.ClearHeaders() + Response.ClearContent() + Response.AddHeader("Content-Disposition", "attachment; filename=" & TxtNumeroContrato.Text & ".pdf") + Response.AddHeader("Content-Length", File.Length.ToString()) + 'Response.ContentType = "text/plain" + Response.ContentType = "application/octet-stream" + Response.Flush() + ' Response.TransmitFile(File.FullName) + Response.WriteFile(File.FullName) + Response.End() + 'if file does not exist + + Alert("Descargado Correctamente.", TipoMensaje.MsgInformacion) + Else + Alert("Ocurrio un error al descargar el archivo", TipoMensaje.MsgAdvertencia, "window.close()") + + End If 'nothing in the URL as HTTP GET + End Sub + + Protected Sub BtnGuardarArchivo_Click1(sender As Object, e As EventArgs) Handles BtnGuardarArchivo.Click + Dim FileExtension As String = "-1" + Dim Filesgral As List(Of Archivo) = Anexo.getfiles().Archivos + Dim Filename As String = "" + Dim folderContratosPath As String = Path.Combine(UsuarioActual.Empresa.Ruta, "Contratos") + + If Not Directory.Exists(folderContratosPath) Then + Directory.CreateDirectory(folderContratosPath) + End If + + If Not Directory.Exists(Path.Combine(folderContratosPath, "Temp")) Then + Directory.CreateDirectory(Path.Combine(folderContratosPath, "Temp")) + End If + + For Each fileItem As Archivo In Filesgral + + FileExtension = IO.Path.GetExtension(String.Format("{0}Temp\{1}", AppDomain.CurrentDomain.BaseDirectory, fileItem.filename)).Replace(".", "") + Session("FileExtension") = FileExtension + Dim tempArray() As String + tempArray = fileItem.filename.ToString().Split("-".ToCharArray()) + + + ViewState("extencion") = FileExtension + ViewState("FUrl") = Path.Combine(UsuarioActual.Empresa.Ruta, "Contratos", "Temp", fileItem.filename) + + File.Move(fileItem.FileUrl, ViewState("FUrl").ToString) + TxtArchivo.Text = tempArray(1) + ' imgFileOk.Visible = True + 'ImgArchivo.Src = "/imagenes/accept.png" + Next + + UPAFUL.Update() + + RegistraScript("$('#ModalUpload').modal('hide')", "hidemodal1") + A1.Visible = True + If Not FileExtension = "-1" Then + BtnDescargar.Visible = True + End If + End Sub +#End Region + +#End Region + +#Region " TAB: PRESUPUESTOS " + +#Region "C O M B O S - PRESUPUESTOS" + Private Function isWhitFamily() As Boolean + Return (UsuarioActual.CveEmpresa = 66) + End Function + + Private Sub CargaClasificaciones() + DdlClasificacionAdd.DataSource = GlobalDTClasificaciones(UsuarioActual.CveEmpresa) ' GlobalDTClasificacionesPresupuestos(UsuarioActual.CveEmpresa) + DdlClasificacionAdd.DataBind() + DdlClasificacionAdd.Items.Insert(0, New ListItem("Seleccione", "-1")) + + DdlClasificacionAddInsumos.DataSource = GlobalDTClasificaciones(UsuarioActual.CveEmpresa) ' GlobalDTClasificacionesPresupuestos(UsuarioActual.CveEmpresa) + DdlClasificacionAddInsumos.DataBind() + DdlClasificacionAddInsumos.Items.Insert(0, New ListItem("Seleccione", "-1")) + + DdlClasificacionInt.DataSource = GlobalDTClasificaciones(UsuarioActual.CveEmpresa) 'GlobalDTSubFamilias(UsuarioActual.CveEmpresa) + DdlClasificacionInt.DataBind() + DdlClasificacionInt.Items.Insert(0, New ListItem("Seleccione", "-1")) + End Sub + +#Region " FUNCIONALIDAD 105 " + Private Sub CargaPS() + DdlProductows.setEsWebService(UsuarioActual.Empresa.Funcionalidad(105) = "1") + If Not DdlProductows.UsaWebService AndAlso CType(DdlProductows.DataSource, DataTable) Is Nothing Then + DdlProductows.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa) + DdlProductows.DataBind() + Else + DdlProductows.ddlWS.Attributes.Add("data-cveclasificacion", DdlClasificacionAdd.SelectedValue) + End If + ElProductoChange() + End Sub + Protected Sub DdlProducto_ValueChanged(sender As Object, e As EventArgs) Handles DdlProductows.selectedindexchange + ElProductoChange() + End Sub + Private Sub ElProductoChange() + DdlUM.Items.Clear() + DdlUM.DataSource = GlobalDTProductosServiciosEquivalencias(DdlProductows.SelectedValue.ToEntero, -1, UsuarioActual.CveEmpresa) + DdlUM.DataBind() + UpTitulos.Update() + End Sub + Protected Sub DdlClasificacion_SelectedIndexChanged(sender As Object, e As System.EventArgs) Handles DdlClasificacionAdd.SelectedIndexChanged + ChangeDdlProducto() + End Sub + Private Sub ChangeDdlProducto() + If UsuarioActual.Empresa.Funcionalidad(105) = "" Then + DdlProductows.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, CveClasificacion:=DdlClasificacionAdd.SelectedValue.ToEntero).FiltraParametros("", "PSCodigo") + DdlProductows.DataBind() + DdlProductows.ddl.Items.Insert(0, New ListItem("Seleccione", "-1")) + Else + DdlProductows.ddlWS.Attributes.Add("data-cveclasificacion", DdlClasificacionAdd.SelectedValue) + DdlProductows.SelectedText = "Seleccione" + DdlProductows.SelectedValue = "-1" + End If + End Sub + + Private Sub CargaPSInsumos() + DdlProductowsInsumos.setEsWebService(UsuarioActual.Empresa.Funcionalidad(105) = "1") + If Not DdlProductowsInsumos.UsaWebService AndAlso CType(DdlProductowsInsumos.DataSource, DataTable) Is Nothing Then + DdlProductowsInsumos.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa) + DdlProductowsInsumos.DataBind() + End If + ElProductoChangeInsumos() + End Sub + Protected Sub DdlProductoInsumos_ValueChanged(sender As Object, e As EventArgs) Handles DdlProductowsInsumos.selectedindexchange + ElProductoChangeInsumos() + End Sub + Private Sub ElProductoChangeInsumos() + DdlUMInsumos.Items.Clear() + DdlUMInsumos.DataSource = GlobalDTProductosServiciosEquivalencias(DdlProductowsInsumos.SelectedValue.ToEntero, -1, UsuarioActual.CveEmpresa) + DdlUMInsumos.DataBind() + UpTitulos.Update() + End Sub + Protected Sub DdlClasificacionInsumos_SelectedIndexChanged(sender As Object, e As System.EventArgs) Handles DdlClasificacionAddInsumos.SelectedIndexChanged + ChangeDdlProductoInsumos() + End Sub + Private Sub ChangeDdlProductoInsumos() + If UsuarioActual.Empresa.Funcionalidad(105) = "" Then + 'Dim filtro As String = "" + 'If Not (DdlClasificacionAddInsumos.SelectedValue = "-1") Then + + ' If isWhitFamily() Then + ' filtro = String.Format("CveSubFamilia={0}", DdlClasificacionAddInsumos.SelectedValue) + ' Else + ' filtro = String.Format("CveClasificacion={0}", DdlClasificacionAddInsumos.SelectedValue) + ' End If + 'End If + DdlProductowsInsumos.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, CveClasificacion:=DdlClasificacionAddInsumos.SelectedValue.ToEntero).FiltraParametros("", "PSCodigo") + DdlProductowsInsumos.DataBind() + DdlProductowsInsumos.ddl.Items.Insert(0, New ListItem("Seleccione", "-1")) + Else + 'If isWhitFamily() Then + ' DdlProductowsInsumos.ddlWS.Attributes.Add("data-idSubFamilia", DdlClasificacionAddInsumos.SelectedValue) + 'Else + DdlProductowsInsumos.ddlWS.Attributes.Add("data-idClasificacion", DdlClasificacionAddInsumos.SelectedValue) + 'End If + End If + End Sub +#End Region + +#End Region + +#Region " TAB PRESUPUESTOS VENTAS " + Private Sub CargaGVPresupuestos(DtTemp As DataTable) + Gv.DataSource = DtTemp + DtPresupuestos = DtTemp + Gv.DataBind() + If CveTipoContrato = 25 Then + Gv.Columns(0).Visible = False + Gv.Columns(2).Visible = False + Gv.Columns(3).Visible = False + Gv.Columns(9).Visible = False + End If + 'If (Gv.Rows.Count > 0) Then + ' Gv.UseAccessibleHeader = True + ' Gv.HeaderRow.TableSection = TableRowSection.TableHeader + ' RegistraScript("OrdenarGVPresupuestos();") + 'End If + UpGV.Update() + End Sub + Protected Sub BtnAutorizar_Click(sender As Object, e As EventArgs) Handles BtnAutorizar.Click + Dim pinterno = TmpDT.SUM("Total", "CveTipoPresupuesto=1").ToString.ToDouble + Dim pventas = TmpDT.SUM("Total", "CveTipoPresupuesto=2").ToString.ToDouble + If (pinterno < pventas) Then + Dim objContrato As New ClsContratos + + If objContrato.AutorizarContratos(CveContrato, UsuarioActual.CveUsuario) Then + BtnAutorizar.Visible = False + Autorizado = True + Alert("Contrato Autorizado", TipoMensaje.MsgInformacion, String.Format("document.location.href=""/Contratos/Contrato.aspx?CveContrato={0}""", CveContrato)) + End If + objContrato.Dispose() + Else + Alert("el presupuesto de ventas debe ser mayor al presupuesto interno!", TipoMensaje.MsgAdvertencia) + End If + End Sub + + Protected Sub BtnAgregarDetalle_Click(sender As Object, e As EventArgs) + Dim Row As DataRow = TmpDT.NewRow() + Row("Cantidad") = TxtCantidad.Text.ToDouble.FormatoNumero + Row("CantidadContratada") = TxtCantidad.Text.ToDouble.FormatoNumero + Row("CveUM") = DdlUM.SelectedValue.ToEntero + Row("UM") = DdlUM.SelectedItem + Row("CveClasificacion") = DdlClasificacionAdd.SelectedValue + Row("Clasificacion") = DdlClasificacionAdd.SelectedItem + Row("CvePS") = DdlProductows.SelectedValue.ToEntero + Row("PS") = DdlProductows.SelectedText + Row("CodigoPS") = DdlProductows.SelectedText + Row("PU") = TxtPU.Text.ToDouble.FormatoNumero + Row("Total") = (TxtCantidad.Text.ToDouble * TxtPU.Text.ToDouble).FormatoNumero + Row("CveTipoPresupuesto") = 2 + Row("NoIdentificacion") = TxtNoIdentificacionv.Text.Trim + Row("OCInterna") = TxtOCInterna.Text.Trim + Row("LimitarCantidad") = If(ChkLimitarVenta.Checked, 1, 0) + Row("Observacion") = TxtObservacionesDetalles.Text + + Dim ObjContratos As New ClsContratos + If ObjContratos.AddContratosDetalle(CveContrato, Row("CvePS").ToString.ToEntero, Row("Cantidad").ToString.ToDouble, Row("PU").ToString.ToDouble, UsuarioActual.CveUsuario, Row("CveTipoPresupuesto").ToString.ToEntero, Row("NoIdentificacion").ToString, Convert.ToBoolean(Row("LimitarCantidad")), Row("OCInterna").ToString, Observacion:=Row("Observacion").ToString) Then + If Autorizado Then + Dim msj As String = String.Format("Se agregaron {0} {1} del producto {2} con un precio ${3}.", Row("Cantidad"), Row("UM"), Row("PS"), Row("PU")) + guardarBitacora(msj) + End If + Row("CveContratoDetalle") = ObjContratos.DtResultados.Rows(0)("CveContratoDetalle") + TmpDT.Rows.Add(Row) + TmpDT.AcceptChanges() + Dim TotalRow = Row("Total").ToString.ToDouble + + CargaGVPresupuestos(TmpDT.FiltraParametros("CveTipoPresupuesto=2")) + + UpGV.Update() + TxtCantidad.Text = "" + TxtOCInterna.Text = "" + TxtNoIdentificacionv.Text = "" + TxtObservacionesDetalles.Text = "" + TxtPU.Text = "" + DdlClasificacionAdd.SelectedValue = "-1" + LbTotalGeneral.Text = (LbTotalGeneral.Text.ToDouble + TotalRow).ToString.FormatoNumero + LblImporte.Text = LbTotalGeneral.Text + TxtCantidad.Focus() + UpGral.Update() + Else + Alert("Ocurrio un error al agregar el detalle", TipoMensaje.MsgError) + End If + + ObjContratos.Dispose() + End Sub + + Private Sub CargaDatosPresup() + Dim ContratosSecciones As New ClsContratos() + + If ContratosSecciones.GetContratosSecciones(-1, CveContrato, -1, -1, -1, UsuarioActual.CveEmpresa) Then + 'If ContratosSecciones.GetContratosSecciones(-1, DdlEstatus.SelectedValue.ToEntero, DdlPS.SelectedValue.ToEntero, DdlContrato.SelectedValue.ToEntero, -1, -1, FechaI, FechaF) Then + DtDatos = ContratosSecciones.DtResultados + ' DtDatos.Rows.RemoveAt(0) + CargaGVPresupuestos(DtDatos) + LblImporte.Text = "$" & DtDatos.MAX("Total").FormatoNumero() + Else + Gv.DataSource = Nothing + End If + + ContratosSecciones.Dispose() + + UpGral.Update() + End Sub + +#Region "GV PRESUPUESTOS" + Protected Sub EstClick(sender As Object, e As System.EventArgs) + 'Get the button that raised the event + Dim btn As CheckBox = DirectCast(sender, CheckBox) + Dim gvr As GridViewRow = DirectCast(btn.NamingContainer, GridViewRow) + Dim CveContratoDetalle As Integer = gvr.DataKey("CveContratoDetalle").ToString.ToEntero + Dim objContrato As New ClsContratos + If objContrato.UpdateContratosDetalleEstimacion(CveContratoDetalle, IIf(btn.Checked, 1, 0).ToString.ToEntero) Then + Dim row = TmpDT.Select(String.Format("CveContratoDetalle={0}", CveContratoDetalle))(0) + row("PermitirEstimacion") = IIf(btn.Checked, 1, 0).ToString.ToEntero + Alert("Se ha permitido estimar", TipoMensaje.MsgInformacion) + Else + Alert("no se pudo permitir avance") + End If + objContrato.Dispose() + + End Sub + + Protected Sub AvaClick(sender As Object, e As System.EventArgs) + 'Get the button that raised the event + Dim btn As CheckBox = DirectCast(sender, CheckBox) + Dim gvr As GridViewRow = DirectCast(btn.NamingContainer, GridViewRow) + Dim CveContratoDetalle As Integer = gvr.DataKey("CveContratoDetalle").ToString.ToEntero + Dim objContrato As New ClsContratos + If objContrato.UpdateContratosDetalleAvance(CveContratoDetalle, IIf(btn.Checked, 1, 0).ToString.ToEntero) Then + Dim row = TmpDT.Select(String.Format("CveContratoDetalle={0}", CveContratoDetalle))(0) + row("PermitirAvance") = IIf(btn.Checked, 1, 0).ToString.ToEntero + + + CargaGVPresupuestos(TmpDT.FiltraParametros("CveTipoPresupuesto=2")) + + + Alert("Se ha permitido levantar avance", TipoMensaje.MsgInformacion) + Else + Alert("no se pudo permitir avance", TipoMensaje.MsgAdvertencia) + End If + objContrato.Dispose() + End Sub + Protected Sub GV_RowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs) Handles Gv.RowDataBound + + If e.Row.RowIndex > -1 Then + + e.Row.FCCheckBox("CHKPAvance").Visible = Autorizado + 'e.Row.FCCheckBox("CHKPEstimacion").Visible = Autorizado + If UsuarioActual.TienePermisoProceso(124) Then + e.Row.FCCheckBox("CHKPAvance").Enabled = True + End If + + If e.Row.DBCampo("PermitirAvance").ToString = "1" Then + e.Row.FCCheckBox("CHKPAvance").Checked = True + ' If UsuarioActual.TienePermisoProceso(125) Then : e.Row.FCCheckBox("CHKPEstimacion").Enabled = True : End If + End If + + If e.Row.DBCampo("PermitirEstimacion").ToString = "1" Then + ' e.Row.FCCheckBox("CHKPEstimacion").Checked = True + End If + If Autorizado Then + e.Row.FCLinkButton("imgE").Visible = False + e.Row.FCLinkButton("imgD").Visible = False + End If + If CveTipoContrato = 25 Then + e.Row.Cells(1).Width = Unit.Pixel(10) + e.Row.Cells(6).Width = Unit.Pixel(250) + End If + End If + If e.Row.RowState = DataControlRowState.Edit OrElse e.Row.RowState = 5 Then + e.Row.FCDropDownList("DdlUMEdit").DataSource = GlobalDTProductosServiciosEquivalencias(e.Row.DataKey("CvePS").ToString.ToEntero, -1, UsuarioActual.CveEmpresa) + e.Row.FCDropDownList("DdlUMEdit").DataBind() + e.Row.FCDropDownList("DdlUMEdit").SelectedValue = e.Row.DataKey("CveUM") + End If + + End Sub + Protected Sub GV_RowEditing(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewEditEventArgs) Handles Gv.RowEditing + Gv.EditIndex = e.NewEditIndex + CargaGVPresupuestos(TmpDT.FiltraParametros("CveTipoPresupuesto=2")) + End Sub + Protected Sub Gv_RowUpdating(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewUpdateEventArgs) Handles Gv.RowUpdating + Dim Cantidad, PU As Double : Dim CvePS, CveContratoDetalle, CveUM As Integer + Dim NoIdentificacion As String = "" + Dim OCInterna As String = "" + Dim LimitarCantidad As Boolean + Dim Observaciones As String = "" + CveContratoDetalle = Gv.Rows(e.RowIndex).DataKey("CveContratoDetalle").ToString.ToEntero + Cantidad = Gv.Rows(e.RowIndex).FCTextBox("TxtCantidad").Text.Trim.ToDouble + PU = Gv.Rows(e.RowIndex).FCTextBox("TxtPU").Text.Trim.ToDouble + CvePS = Gv.Rows(e.RowIndex).DataKey("CvePS").ToString.ToEntero + CveUM = Gv.Rows(e.RowIndex).FCDropDownList("DdlUMEdit").SelectedValue.ToEntero + NoIdentificacion = Gv.Rows(e.RowIndex).FCTextBox("TxtNoIdentificacion").Text.ToString + OCInterna = Gv.Rows(e.RowIndex).FCTextBox("TxtOCInternaEdit").Text.ToString + LimitarCantidad = Gv.Rows(e.RowIndex).FCCheckBox("ChkLimitarCantidad").Checked + Observaciones = Gv.Rows(e.RowIndex).FCTextBox("TxtObservacion").Text.ToString + Dim row = TmpDT.Select(String.Format(" CveContratoDetalle={0}", CveContratoDetalle))(0) + Dim LimitarCantidadValidator As Boolean = row("LimitarCantidad").ToString = "True" + If row("CantidadContratada").ToString.ToEntero <> Cantidad OrElse row("PU").ToString.ToEntero <> PU OrElse CveUM <> row("CveUM").ToString.ToEntero OrElse row("NoIdentificacion").ToString <> NoIdentificacion OrElse row("OCInterna").ToString <> OCInterna OrElse LimitarCantidadValidator <> LimitarCantidad Then + + Dim ObjContratos As New ClsContratos + If ObjContratos.UpdateContratosDetalle(CveContratoDetalle, CveContrato, CvePS, Cantidad, PU, UsuarioActual.CveUsuario, NoIdentificacion, LimitarCantidad, OCInterna, Observaciones) Then + + If Autorizado Then + Dim msj As String = String.Format("Se realizaron los siguientes cambios, el Presupuesto Interno se modificó: {1} {0} {2:C2} a {3} {0} {4:C2}", + row("PS").ToString, row("Cantidad").ToString, row("PU").ToString, Cantidad, PU) + guardarBitacora(msj) + End If + + row("Cantidad") = Cantidad + row("CantidadContratada") = Cantidad + row("PU") = PU + row("Total") = Cantidad * PU + row("CveUM") = CveUM + row("UM") = Gv.Rows(e.RowIndex).FCDropDownList("DdlUMEdit").SelectedItem.Text + row("NoIdentificacion") = NoIdentificacion + row("OCInterna") = OCInterna + row("LimitarCantidad") = LimitarCantidad + row("Observacion") = Observaciones + + TmpDT.AcceptChanges() + Alert("Cambios realizados correctamente.", TipoMensaje.MsgInformacion) + Else + Alert("Error al Actualizar Detalle", TipoMensaje.MsgError) + End If + ObjContratos.Dispose() + + Else + Alert("Cambios realizados correctamente") + End If + + Gv.EditIndex = -1 + LbTotalGeneral.Text = TmpDT.FiltraParametros("CveTipoPresupuesto=2").SUM("Total").FormatoNumero + LblImporte.Text = LbTotalGeneral.Text + CargaGVPresupuestos(TmpDT.FiltraParametros("CveTipoPresupuesto=2")) + + End Sub + Protected Sub GV_RowCancelingEdit(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCancelEditEventArgs) Handles Gv.RowCancelingEdit + Gv.EditIndex = -1 + CargaGVPresupuestos(TmpDT.FiltraParametros("CveTipoPresupuesto=2")) + End Sub + Protected Sub GV_RowDeleting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles Gv.RowDeleting + + Dim ObjContratos As New ClsContratos + Dim DbRow As DataRow = Nothing + Dim CveContratoDetalle As Integer = Gv.Rows(e.RowIndex).DataKey("CveContratoDetalle").ToString.ToEntero + DbRow = TmpDT.Select(String.Format(" CveContratoDetalle={0}", CveContratoDetalle))(0) + If Autorizado Then + Dim msj As String = String.Format("Se eliminaron {0} {1} producto {2} con el precio {3}", DbRow("Cantidad"), DbRow("UM"), DbRow("PS"), DbRow("PU")) + guardarBitacora(msj) + End If + + If ObjContratos.RemoveContratosDetalle(CveContratoDetalle, CveContrato) Then + TmpDT.Rows.Remove(DbRow) + CargaGVPresupuestos(TmpDT.FiltraParametros("CveTipoPresupuesto=2")) + LbTotalGeneral.Text = Gv.Rows.Cast(Of GridViewRow)().Sum(Function(gvr) gvr.FCLabel("LtTotal").Text.ToDouble).ToString.FormatoNumero + Else + Alert("Ocurrió un error al eliminar el detalle (Producto/Servicio). Por favor vuelva a intentar", TipoMensaje.MsgError) + End If + + ObjContratos.Dispose() + End Sub + Protected Sub GV_RowCommand(sender As Object, e As GridViewCommandEventArgs) Handles Gv.RowCommand + If e.CommandName = "Sel" Then + ' Seleccionado = e.CommandArgument.ToString + Gv.SelectRow(e.CommandArgument.ToString.ToEntero - 1) + End If + End Sub +#End Region + + +#End Region + +#Region " TAB PRESUPUESTOS INSUMOS " + Private Sub CargaGVPresupuestosInsumos(DtTemp As DataTable) + GvInsumos.DataSource = DtTemp + DtSuministros = DtTemp + GvInsumos.DataBind() + 'If (GvInsumos.Rows.Count > 0) Then + ' GvInsumos.UseAccessibleHeader = True + ' GvInsumos.HeaderRow.TableSection = TableRowSection.TableHeader + ' RegistraScript("OrdenarGVPresupuestosInsumos();") + 'End If + UpGVInsumos.Update() + End Sub + + Protected Sub BtnAgregarDetalleInsumos_Click(sender As Object, e As EventArgs) + Dim Row As DataRow = TmpDT.NewRow() + Row("Cantidad") = TxtCantidadInsumos.Text.ToDouble.FormatoNumero + Row("CantidadContratada") = TxtCantidadInsumos.Text.ToDouble.FormatoNumero + Row("CveUM") = DdlUMInsumos.SelectedValue.ToEntero + Row("UM") = DdlUMInsumos.SelectedItem + Row("CveClasificacion") = DdlClasificacionAddInsumos.SelectedValue + Row("Clasificacion") = DdlClasificacionAddInsumos.SelectedItem + Row("CvePS") = DdlProductowsInsumos.SelectedValue.ToEntero + Row("PS") = DdlProductowsInsumos.SelectedText + Row("CodigoPS") = DdlProductowsInsumos.SelectedText + Row("PU") = TxtPUInsumos.Text.ToDouble.FormatoNumero + Row("Total") = (TxtCantidadInsumos.Text.ToDouble * TxtPUInsumos.Text.ToDouble).FormatoNumero + Row("CveTipoPresupuesto") = 1 + Row("NoIdentificacion") = TxtNoIdentificacionvInsumos.Text.Trim + Row("LimitarCantidad") = If(ChkLimitar.Checked, 1, 0) + + Dim ObjContratos As New ClsContratos + If ObjContratos.AddContratosDetalle(CveContrato, Row("CvePS").ToString.ToEntero, Row("Cantidad").ToString.ToDouble, Row("PU").ToString.ToDouble, UsuarioActual.CveUsuario, Row("CveTipoPresupuesto").ToString.ToEntero, Row("NoIdentificacion").ToString, Convert.ToBoolean(Row("LimitarCantidad")), "") Then + If Autorizado Then + Dim msj As String = String.Format("Se agregaron {0} {1} del producto {2} con un precio ${3}.", Row("Cantidad"), Row("UM"), Row("PS"), Row("PU")) + guardarBitacora(msj) + End If + Row("CveContratoDetalle") = ObjContratos.DtResultados.Rows(0)("CveContratoDetalle") + TmpDT.Rows.Add(Row) + Dim TotalRow = Row("Total").ToString.ToDouble + + CargaGVPresupuestosInsumos(TmpDT.FiltraParametros("CveTipoPresupuesto=1")) + + UpGVInsumos.Update() + TxtCantidadInsumos.Text = "" + TxtPUInsumos.Text = "" + DdlClasificacionAddInsumos.SelectedValue = "-1" + LbTotalGeneralInsumos.Text = (LbTotalGeneralInsumos.Text.ToDouble + TotalRow).ToString.FormatoNumero + 'LblImporte.Text = LbTotalGeneral.Text + TxtCantidadInsumos.Focus() + UpGral.Update() + Else + Alert("Ocurrio un error al agregar el detalle", TipoMensaje.MsgError) + End If + + ObjContratos.Dispose() + End Sub + +#Region "GV PRESUPUESTOS" + + Protected Sub GVInsumos_RowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs) Handles GvInsumos.RowDataBound + + If e.Row.RowIndex > -1 Then + + e.Row.FCCheckBox("CHKPAvance").Visible = Autorizado + 'e.Row.FCCheckBox("CHKPEstimacion").Visible = Autorizado + If UsuarioActual.TienePermisoProceso(124) Then + e.Row.FCCheckBox("CHKPAvance").Enabled = True + End If + + If e.Row.DBCampo("PermitirAvance").ToString = "1" Then + e.Row.FCCheckBox("CHKPAvance").Checked = True + ' If UsuarioActual.TienePermisoProceso(125) Then : e.Row.FCCheckBox("CHKPEstimacion").Enabled = True : End If + End If + + If e.Row.DBCampo("PermitirEstimacion").ToString = "1" Then + ' e.Row.FCCheckBox("CHKPEstimacion").Checked = True + End If + If Autorizado Then + e.Row.FCLinkButton("imgE").Visible = False + e.Row.FCLinkButton("imgD").Visible = False + End If + + End If + If e.Row.RowState = DataControlRowState.Edit OrElse e.Row.RowState = 5 Then + e.Row.FCDropDownList("DdlUMEdit").DataSource = GlobalDTProductosServiciosEquivalencias(e.Row.DataKey("CvePS").ToString.ToEntero, -1, UsuarioActual.CveEmpresa) + e.Row.FCDropDownList("DdlUMEdit").DataBind() + e.Row.FCDropDownList("DdlUMEdit").SelectedValue = e.Row.DataKey("CveUM") + End If + + End Sub + Protected Sub GVInsumos_RowEditing(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewEditEventArgs) Handles GvInsumos.RowEditing + GvInsumos.EditIndex = e.NewEditIndex + CargaGVPresupuestosInsumos(TmpDT.FiltraParametros("CveTipoPresupuesto=1")) + End Sub + Protected Sub GvInsumos_RowUpdating(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewUpdateEventArgs) Handles GvInsumos.RowUpdating + Dim Cantidad, PU As Double + Dim CvePS, CveContratoDetalle, CveUM As Integer + Dim NoIdentificacion As String = "" + Dim LimitarCantidad As Boolean + + CveContratoDetalle = GvInsumos.Rows(e.RowIndex).DataKey("CveContratoDetalle").ToString.ToEntero + Cantidad = GvInsumos.Rows(e.RowIndex).FCTextBox("TxtCantidad").Text.Trim.ToDouble + PU = GvInsumos.Rows(e.RowIndex).FCTextBox("TxtPU").Text.Trim.ToDouble + CvePS = GvInsumos.Rows(e.RowIndex).DataKey("CvePS").ToString.ToEntero + CveUM = GvInsumos.Rows(e.RowIndex).FCDropDownList("DdlUMEdit").SelectedValue.ToEntero + NoIdentificacion = GvInsumos.Rows(e.RowIndex).FCTextBox("TxtNoIdentificacion").Text.ToString + LimitarCantidad = GvInsumos.Rows(e.RowIndex).FCCheckBox("ChkLimitarCantidad").Checked + + Dim row = TmpDT.Select(String.Format(" CveContratoDetalle={0}", CveContratoDetalle))(0) + + If row("Cantidad").ToString.ToEntero <> Cantidad OrElse row("PU").ToString.ToEntero <> PU OrElse CveUM <> row("CveUM").ToString.ToEntero OrElse row("NoIdentificacion").ToString <> NoIdentificacion OrElse (row("LimitarCantidad").ToString = "True") <> LimitarCantidad Then + + Dim ObjContratos As New ClsContratos + If ObjContratos.UpdateContratosDetalle(CveContratoDetalle, CveContrato, CvePS, Cantidad, PU, UsuarioActual.CveUsuario, NoIdentificacion, LimitarCantidad, "") Then + + If Autorizado Then + Dim msj As String = String.Format("Se realizaron los siguientes cambios, el Presupuesto Interno se modificó: {1} {0} {2:C2} a {3} {0} {4:C2}", + row("PS").ToString, row("Cantidad").ToString, row("PU").ToString, Cantidad, PU) + guardarBitacora(msj) + End If + + row("Cantidad") = Cantidad + row("CantidadContratada") = Cantidad + row("PU") = PU + row("Total") = Cantidad * PU + row("CveUM") = CveUM + row("UM") = GvInsumos.Rows(e.RowIndex).FCDropDownList("DdlUMEdit").SelectedItem.Text + row("NoIdentificacion") = NoIdentificacion + row("LimitarCantidad") = LimitarCantidad + TmpDT.AcceptChanges() + Alert("Cambios realizados correctamente.", TipoMensaje.MsgInformacion) + Else + Alert("Error al Actualizar Detalle", TipoMensaje.MsgError) + End If + ObjContratos.Dispose() + + Else + Alert("Cambios realizados correctamente") + End If + + GvInsumos.EditIndex = -1 + LbTotalGeneralInsumos.Text = TmpDT.FiltraParametros("CveTipoPresupuesto=1").SUM("Total").FormatoNumero + 'LblImporte.Text = LbTotalGeneral.Text + CargaGVPresupuestosInsumos(TmpDT.FiltraParametros("CveTipoPresupuesto=1")) + + End Sub + Protected Sub GVInsumos_RowCancelingEdit(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCancelEditEventArgs) Handles GvInsumos.RowCancelingEdit + GvInsumos.EditIndex = -1 + CargaGVPresupuestosInsumos(TmpDT.FiltraParametros("CveTipoPresupuesto=1")) + End Sub + Protected Sub GVInsumos_RowDeleting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles GvInsumos.RowDeleting + + Dim ObjContratos As New ClsContratos + Dim DbRow As DataRow = Nothing + Dim CveContratoDetalle As Integer = GvInsumos.Rows(e.RowIndex).DataKey("CveContratoDetalle").ToString.ToEntero + DbRow = TmpDT.Select(String.Format(" CveContratoDetalle={0}", CveContratoDetalle))(0) + If Autorizado Then + Dim msj As String = String.Format("Se eliminaron {0} {1} producto {2} con el precio {3}", DbRow("Cantidad"), DbRow("UM"), DbRow("PS"), DbRow("PU")) + guardarBitacora(msj) + End If + + If ObjContratos.RemoveContratosDetalle(CveContratoDetalle, CveContrato) Then + TmpDT.Rows.Remove(DbRow) + CargaGVPresupuestosInsumos(TmpDT.FiltraParametros("CveTipoPresupuesto=1")) + LbTotalGeneralInsumos.Text = GvInsumos.Rows.Cast(Of GridViewRow)().Sum(Function(gvr) gvr.FCLiteral("LtTotal").Text.ToDouble).ToString.FormatoNumero + Else + Alert("Ocurrió un error al eliminar el detalle (Producto/Servicio). Por favor vuelva a intentar", TipoMensaje.MsgError) + End If + + ObjContratos.Dispose() + End Sub + Protected Sub GVInsumos_RowCommand(sender As Object, e As GridViewCommandEventArgs) Handles GvInsumos.RowCommand + If e.CommandName = "Sel" Then + ' Seleccionado = e.CommandArgument.ToString + GvInsumos.SelectRow(e.CommandArgument.ToString.ToEntero - 1) + End If + End Sub +#End Region + + +#End Region + +#Region " TAB PRESUPUESTOS INTERNOS" + + Protected Sub AgregarInt_Click(sender As Object, e As EventArgs) Handles AgregarInt.Click + Dim Row As DataRow = TmpDT.NewRow() + Row("Cantidad") = TxtCantidadInt.Text.ToDouble.FormatoNumero + Row("CveUM") = DdlUMInt.SelectedValue.ToEntero + Row("UM") = DdlUMInt.SelectedItem + Row("CveClasificacion") = DdlClasificacionInt.SelectedValue + Row("Clasificacion") = DdlClasificacionInt.SelectedItem + Row("CvePS") = HFProductoInt.Value + Row("PS") = HFTProductoInt.Value + Row("PU") = TxtPUInt.Text.ToDouble.FormatoNumero + Row("Total") = (TxtCantidadInt.Text.ToDouble * TxtPUInt.Text.ToDouble).FormatoNumero + Row("CveTipoPresupuesto") = 1 + Row("NoIdentificacion") = TxtNoIdentificacionv.Text.Trim + Row("LimitarCantidad") = ChkLimitar.Checked + + Dim ObjContratos As New ClsContratos + If ObjContratos.AddContratosDetalle(CveContrato, Row("CvePS").ToString.ToEntero, Row("Cantidad").ToString.ToDouble, Row("PU").ToString.ToDouble, UsuarioActual.CveUsuario, Row("CveTipoPresupuesto").ToString.ToEntero, Row("NoIdentificacion").ToString, Row("LimitarCantidad").ToString.ToEntero = 1, "") Then + If Autorizado Then + Dim msj As String = String.Format("Se agregaron {0} {1} del producto {2} con un precio ${3}.", Row("Cantidad"), Row("UM"), Row("PS"), Row("PU")) + guardarBitacora(msj) + End If + Row("CveContratoDetalle") = ObjContratos.DtResultados.Rows(0)("CveContratoDetalle") + TmpDT.Rows.Add(Row) + Dim TotalRow = Row("Total").ToString.ToDouble + GvInt.DataSource = TmpDT.FiltraParametros("CveTipoPresupuesto=1") + GvInt.DataBind() + + HFProductoInt.Value = "" + HFTProductoInt.Value = "" + TxtCantidadInt.Text = "" + TxtPUInt.Text = "" + DdlClasificacionInt.SelectedValue = "-1" + LbTotalGeneralInt.Text = (LbTotalGeneralInt.Text.ToDouble + TotalRow).ToString.FormatoNumero + TxtCantidad.Focus() + UPGVInt.Update() + Else + 'Alert("No se pudo agregar el detalle") + End If + ObjContratos.Dispose() + End Sub + + +#Region "GVInternos" + + + Protected Sub GVInt_RowEditing(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewEditEventArgs) Handles GvInt.RowEditing + GvInt.EditIndex = e.NewEditIndex + GvInt.DataSource = TmpDT.FiltraParametros("CveTipoPresupuesto=1") + GvInt.DataBind() + UPGVInt.Update() + End Sub + Protected Sub GvInt_RowUpdating(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewUpdateEventArgs) Handles GvInt.RowUpdating + Dim Cantidad, PU As Double : Dim CvePS, CveContratoDetalle, CveUM As Integer + CveContratoDetalle = GvInt.Rows(e.RowIndex).DataKey("CveContratoDetalle").ToString.ToEntero + Dim NoIdentificacion As String = "" + Dim LimitarCantidad As Boolean + 'Row("NoIdentificacion") = txtNoIdentificacion.Text.Trim + Cantidad = GvInt.Rows(e.RowIndex).FCTextBox("TxtCantidad").Text.Trim.ToDouble + PU = GvInt.Rows(e.RowIndex).FCTextBox("TxtPU").Text.Trim.ToDouble + LimitarCantidad = False + CvePS = GvInt.Rows(e.RowIndex).DataKey("CvePS").ToString.ToEntero + CveUM = GvInt.Rows(e.RowIndex).FCDropDownList("DdlUMEdit").SelectedValue.ToEntero + + 'NoIdentificacion = GvInt.Rows(e.RowIndex).FCDropDownList("NoIdentificacion").ToString + Dim row = TmpDT.Select(String.Format(" CveContratoDetalle={0}", CveContratoDetalle))(0) + Dim c1 = row("Cantidad").ToString.ToEntero + Dim p1 = row("PU").ToString.ToEntero + Dim cvum1 = row("CveUM").ToString.ToEntero + If c1 <> Cantidad OrElse p1 <> PU OrElse CveUM <> cvum1 Then + + Dim ObjContratos As New ClsContratos + If ObjContratos.UpdateContratosDetalle(CveContratoDetalle, CveContrato, CvePS, Cantidad, PU, UsuarioActual.CveUsuario, Nothing, LimitarCantidad, "") Then + If Autorizado Then + Dim msj As String = String.Format("Se realizaron los siguientes cambios, el Presupuesto Interno se modificó: {1} {0} {2:C2} a {3} {0} {4:C2}", + row("PS").ToString, row("Cantidad"), row("PU").ToString, Cantidad, PU) + guardarBitacora(msj) + End If + row("Cantidad") = Cantidad + row("PU") = PU + row("Total") = Cantidad * PU + row("CveUM") = CveUM + row("UM") = GvInt.Rows(e.RowIndex).FCDropDownList("DdlUMEdit").SelectedItem.Text + Else + End If + ObjContratos.Dispose() + Else + Alert("No realizaste ningun Cambio") + End If + GvInt.EditIndex = -1 + GvInt.DataSource = TmpDT.FiltraParametros("CveTipoPresupuesto=1") + GvInt.DataBind() + LbTotalGeneralInt.Text = TmpDT.FiltraParametros("CveTipoPresupuesto=1").SUM("Total").FormatoNumero + End Sub + Protected Sub GVInt_RowCancelingEdit(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCancelEditEventArgs) Handles GvInt.RowCancelingEdit + GvInt.EditIndex = -1 + GvInt.DataSource = TmpDT.FiltraParametros("CveTipoPresupuesto=1") + GvInt.DataBind() + UPGVInt.Update() + End Sub + Protected Sub GVInt_RowDeleting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles GvInt.RowDeleting + Dim ObjContratos As New ClsContratos + Dim DbRow As DataRow = Nothing + Dim CveContratoDetalle As Integer = GvInt.Rows(e.RowIndex).DataKey("CveContratoDetalle").ToString.ToEntero + + If ObjContratos.RemoveContratosDetalle(CveContratoDetalle, CveContrato) Then + DbRow = TmpDT.Select(String.Format(" CveContratoDetalle={0}", CveContratoDetalle))(0) + If Autorizado Then + Dim msj As String = String.Format("Se eliminaron {0} {1} {2} con el precio {3:C2}", DbRow("Cantidad"), DbRow("UM"), DbRow("PS"), DbRow("PU")) + guardarBitacora(msj) + End If + TmpDT.Rows.Remove(DbRow) + GvInt.DataSource = TmpDT.FiltraParametros("CveTipoPresupuesto=1") + GvInt.DataBind() + UPGVInt.Update() + LbTotalGeneralInt.Text = GvInt.Rows.Cast(Of GridViewRow)().Sum(Function(gvr) gvr.FCLabel("LtTotal").Text.ToDouble).ToString.FormatoNumero + Else + Alert("Ocurrió un error al eliminar el detalle (Producto/Servicio). Por favor vuelva a intentar", TipoMensaje.MsgAdvertencia) + End If + + ObjContratos.Dispose() + End Sub + Protected Sub GVInt_RowCommand(sender As Object, e As GridViewCommandEventArgs) Handles GvInt.RowCommand + If e.CommandName = "Sel" Then + ' Seleccionado = e.CommandArgument.ToString + GvInt.SelectRow(e.CommandArgument.ToString.ToEntero - 1) + End If + End Sub +#End Region + +#End Region + +#End Region + +#Region " TAB: REPORTE AVANCES " + Private Sub CargaDatosAvance() + If CveContrato <= 0 Then + Exit Sub + End If + + TabReporteAvance.Visible = True + lbImprimirAvance.Visible = True + + Dim Modalidad = IfNull(Request("Tipo"), 1, 2) + + If Modalidad.ToString.ToEntero = 2 Then + TAB.ActiveTabIndex = 2 + End If + + Dim ObjContratos As New ClsContratos + + If ObjContratos.GetReporteContratosAvancesDetalleCP(CveContrato, UsuarioActual.CveEmpresa) Then + GvDatosAvance.DataSource = ObjContratos.DtResultados + SumaAvance = ObjContratos.DtResultados.SUM("AvanceImporte", "CveClasificacion IS NULL") + SumaUtilidad = ObjContratos.DtResultados.SUM("AvanceUtilidad", "CveClasificacion IS NULL") + DtAvance = ObjContratos.DtResultados + Else + Alert("Ocurrió un Error al obtener el Reporte de Avances. Por favor vuelva a intentar", TipoMensaje.MsgError) + End If + + ObjContratos.Dispose() + GvDatosAvance.DataBind() + + If (GvDatosAvance.Rows.Count > 0) Then + GvDatosAvance.UseAccessibleHeader = True + GvDatosAvance.HeaderRow.TableSection = TableRowSection.TableHeader + RegistraScript("OrdenarGV();") + End If + + UpGral.Update() + End Sub + + Protected Sub GvDatosAvance_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvDatosAvance.RowDataBound + If e.Row.RowType = DataControlRowType.DataRow Then + + If e.Row.DBCampo("CveClasificacion").ToString.ToEntero = 0 Then + e.Row.CssClass = "Totales white" + ElseIf e.Row.DBCampo("CvePS").ToString.ToEntero = 0 Then + e.Row.CssClass = "SubTotales" + End If + + Dim Liga1 = $"{e.Row.DBCampo("CveClasificacion").ToEntero}|{e.Row.DBCampo("Clasificacion")}|{e.Row.DBCampo("CvePS").ToEntero}|{e.Row.DBCampo("CodigoPS")}|1" + e.Row.FCLinkButton("LBAvanceCantidad").CommandArgument = Liga1 + e.Row.FCLinkButton("LBAvanceImporte").CommandArgument = Liga1 + + Dim Liga2 = $"{e.Row.DBCampo("CveClasificacion").ToEntero}|{e.Row.DBCampo("Clasificacion")}|{e.Row.DBCampo("CvePS").ToEntero}|{e.Row.DBCampo("CodigoPS")}|2" + e.Row.FCLinkButton("LBAvanceXFacturarCantidad").CommandArgument = Liga2 + e.Row.FCLinkButton("LBAvanceXFacturarImporte").CommandArgument = Liga2 + + End If + End Sub + Protected Sub MuestaModalVentasAvance(sender As Object, e As EventArgs) + Dim Btn = CType(sender, LinkButton) + Dim Parametros = Btn.CommandArgument.Split("|"c) + + Dim ObjContratos As New ClsContratos + + If ObjContratos.GetVentasAvance(CveContrato, If(Parametros(0).ToEntero > 0, Parametros(0).ToEntero, -1), If(Parametros(2).ToEntero > 0, Parametros(2).ToEntero, -1), If(Parametros(4).ToEntero > 0, Parametros(4).ToEntero, -1)) Then + GvDatosVentasAvance.DataSource = ObjContratos.DtResultados + RegistraScript("$('#ModalVentasAvance').modal('show');RecargaAvances = true;") + Else + Alert("Ocurrió un error al obtener el Listado de Ventas/Remisiones de Avance. Por favor vuelva a intentar", TipoMensaje.MsgError) + End If + + ObjContratos.Dispose() + GvDatosVentasAvance.DataBind() + + + LbTituloModalVentasAvance.Text = If(Parametros(4).ToEntero = 1, "Ventas de Avance", "Remisiones de Avance") + LbClasificacionVentasAvance.Text = Parametros(1) + LbPSVentasAvance.Text = If(Parametros(2).ToEntero > 0, Parametros(3), "") + + UpVentasAvance.Update() + + End Sub +#End Region + +#Region " TAB: REPORTE AVANCES POR DOCUMENTO " + Protected Sub RBLTipoDocto_SelectedIndexChanged(sender As Object, e As EventArgs) + CargaDatosAvancePorDocumento() + End Sub + Private Sub CargaDatosAvancePorDocumento() + If CveContrato <= 0 Then + Exit Sub + End If + + Dim ObjContratos As New ClsContratos + + If ObjContratos.GetContratosAvancePorDocumento(CveContrato, RBLTipoDocto.SelectedValue, UsuarioActual.CveEmpresa) Then + GVAvanceXDocumento.DataSource = ObjContratos.DtResultados + DtAvanceDocumento = ObjContratos.DtResultados + If DtAvanceDocumento.Rows.Count > 0 Then + LBImprimir.Visible = True + End If + LBImprimirInformacionG.Visible = True + Else + Alert("Ocurrió un error al obtener el Reporte de Avances por Documento. Por favor vuelva a intentar", TipoMensaje.MsgError) + End If + + ObjContratos.Dispose() + GVAvanceXDocumento.DataBind() + + If (GVAvanceXDocumento.Rows.Count > 0) Then + GVAvanceXDocumento.UseAccessibleHeader = True + GVAvanceXDocumento.HeaderRow.TableSection = TableRowSection.TableHeader + RegistraScript("OrdenarGVPorDocumento();") + End If + + UpGral.Update() + End Sub + + Private Sub GVAvanceXDocumento_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GVAvanceXDocumento.RowDataBound + If e.Row.RowType = DataControlRowType.DataRow Then + If Not e.Row.DBCampo("CveVenta").ToEntero > 0 Then + e.Row.Cells(2).Text = "TOTAL: " + e.Row.Cells(0).HorizontalAlign = HorizontalAlign.Right + e.Row.Cells(0).Text = e.Row.DBCampo("Cantidad").FormatoNumero(0) + e.Row.CssClass = "Totales" + End If + End If + End Sub + +#End Region + +#Region " TAB: CONTRATO GASTOS " + Private Sub MandaCorreo(Para As String, Asunto As String, Body As String) + Dim a As String = String.Format("{0} -- {1} ---- -->", Asunto, Para) + Dim Mail As New ClsSisMail() + Mail.SendMail(ClsPaginas.EmpresaNotificaciones, Para, Asunto, Body) + End Sub + Protected Sub EnvioCorreo(Dr As DataRow) + Dim Body As String = GeneraCorreoContratoGasto(Dr) + Dim Asunto As String = $"Se agrego un gasto en el {LtlTitulo.Text}" + Dim Correo As String = "" + If UsuarioActual.CveEmpresa = 72 Then + Correo = "anamartinez@compuproveedores.com;benjamincarrillo@compuproveedores.com" + Else + Correo = "signotificaciones@adssistemas.mx" + End If + Try + Dim Hilo As New System.Threading.Thread(Sub() MandaCorreo(Correo, Asunto, Body)) + Hilo.Start() + Catch ex As Exception + OnError("Ocurrió error al mandar MAIL", ex) + End Try + End Sub + Public Function GeneraCorreoContratoGasto(Dr As DataRow) As String + Dim strBody As New StringBuilder + strBody.Append(" ") + strBody.Append(" ") + strBody.Append(" ") + strBody.Append(" ") + strBody.Append(" ") + strBody.Append("
    ") + strBody.AppendFormat("
    Datos {0} ", "del contrato") + strBody.Append(" ") + strBody.Append(" ") + strBody.AppendFormat(" ") + strBody.Append(" ") + strBody.Append(" ") + strBody.AppendFormat(" ", Dr("DescripcionContrato").ToString) + strBody.Append(" ") + strBody.Append(" ") + strBody.AppendFormat(" ", Dr("NombreComercial").ToString) + strBody.Append(" ") + strBody.Append(" ") + strBody.AppendFormat(" ", Dr("Monto").ToString.FormatoNumero) + strBody.Append(" ") + strBody.Append(" ") + strBody.AppendFormat(" ", Dr("SubProyectoContrato")) + strBody.Append(" ") + strBody.Append(" ") + strBody.AppendFormat(" ", Dr("FechaInicial")) + strBody.Append(" ") + strBody.Append(" ") + strBody.AppendFormat(" ", Dr("FechaFinal")) + strBody.Append(" ") + strBody.Append(" ") + strBody.AppendFormat(" ", Dr("ContratoAvance").ToString.FormatoNumero) + strBody.Append(" ") + strBody.Append("
    No. Contrato: " + Dr("NumeroContrato").ToString + "
    Descripcion:{0}  
    Cliente:{0}  
    Monto Adjudicado:{0}  
    SubProyecto:{0}  
    Fecha Inicio:{0}  
    Fecha Final:{0}  
    Avance:{0}%  
    ") + strBody.Append("
    ") + strBody.Append("
    ") + strBody.AppendFormat("
    Datos {0} ", "del gasto") + strBody.Append(" ") + strBody.Append(" ") + strBody.AppendFormat(" ", TxtDescripcion.Text) + strBody.Append(" ") + strBody.Append(" ") + strBody.AppendFormat(" ", TxtImporteC.Text.FormatoNumero) + strBody.Append(" ") + strBody.Append(" ") + strBody.AppendFormat(" ", TxtFecha.Text.ToDate.ToShortDateString) + strBody.Append(" ") + strBody.Append("
    Descripción:{0}  
    Importe:{0}  
    Fecha:{0}  
    ") + strBody.Append("
    ") + strBody.Append("
    ") + strBody.Append("
    ") + strBody.AppendFormat(" Ir al contrato ", "http://sig.adssistemas.mx/", CveContrato) + strBody.Append("
    ") + strBody.Append("") + Return strBody.ToString + End Function + + Protected Sub LBAgregar_Click(sender As Object, e As EventArgs) Handles LBAgregar.Click + Dim ObjContrato As New ClsContratos + If ObjContrato.AddContratoGasto(CveContrato, TxtDescripcion.Text, TxtImporteC.Text.ToDecimal, TxtFecha.Text.ToDate, UsuarioActual.CveUsuario) Then + MensajeAlert = New StringBuilder + MensajeAlert.AppendFormat("El Gasto del contrato se guardó correctamente.") + MensajeAlert.AppendFormat("

    ", Encripta(String.Format("OP=CONG&CVECONTRATO={0}&CVECONTRATOGASTO={1}", CveContrato, ObjContrato.CveContratoGasto))) + If ObjContrato.GetContratos(CveContrato, UsuarioActual.CveEmpresa) Then + If ObjContrato.DtResultados.Rows.Count > 0 Then + EnvioCorreo(ObjContrato.DtResultados.Rows(0)) + End If + End If + TxtDescripcion.Text = "" + TxtImporteC.Text = "" + TxtFecha.Text = "" + Alert(MensajeAlert.ToString, TipoMensaje.MsgInformacion) + CargaGVGastos() + RegistraScript("$('#ModalAgregarGastos').modal('hide');") + MensajeAlert = Nothing + End If + ObjContrato.Dispose() + End Sub + + Private Sub CargaGVGastos() + Dim objContrato As New ClsContratos + If objContrato.GetContratoGastos(CveContrato) Then + DtGastos = objContrato.DtResultados + GvContratosGastos.DataSource = DtGastos + SumaGasto = objContrato.DtResultados.SUM("Importe", "CveContratoGasto IS NULL") + Else + GvContratosGastos.DataSource = Nothing + End If + objContrato.Dispose() + GvContratosGastos.DataBind() + + If GvContratosGastos.Rows.Count > 0 Then + GvContratosGastos.HeaderRow.CssClass = "SinColor" + LBImprimirGastos.Visible = True + End If + + UpContratoGasto.Update() + End Sub + + Protected Sub GvContratoGastos_RowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs) Handles GvContratosGastos.RowDataBound + If e.Row.RowType = DataControlRowType.DataRow Then + + If e.Row.DBCampo("CveContrato").ToString.ToEntero = 0 Or e.Row.DBCampo("CveVenta").ToString.ToEntero > 0 Then + If e.Row.DBCampo("CveContrato").ToString.ToEntero = 0 Then e.Row.CssClass = "SubTotales" : e.Row.Cells(0).Text = e.Row.DBCampo("Cantidad").FormatoNumero(0) + e.Row.FCLinkButton("imgE").Visible = False + e.Row.FCLinkButton("imgD").Visible = False + e.Row.FCLinkButton("LnkDescargar").Visible = False + Else + Dim lb As LinkButton = CType(e.Row.FindControl("LnkDescargar"), LinkButton) + ScriptManager.GetCurrent(Me).RegisterAsyncPostBackControl(lb) + End If + End If + End Sub + + Protected Sub GvContratoGastos_RowDeleting(ByVal sender As Object, ByVal e As GridViewDeleteEventArgs) Handles GvContratosGastos.RowDeleting + Dim objContrato As New ClsContratos + If objContrato.RemoveContratoGasto(GvContratosGastos.DataKeys(e.RowIndex).Value.ToString.ToEntero) Then + GvContratosGastos.EditIndex = -1 + Alert("Se eliminó correctamente el gasto del contrato") + CargaGVGastos() + End If + objContrato.Dispose() + End Sub + + Protected Sub GvContratosGastos_RowEditing(ByVal sender As Object, ByVal e As GridViewEditEventArgs) Handles GvContratosGastos.RowEditing + GvContratosGastos.EditIndex = e.NewEditIndex + CargaGVGastos() + End Sub + + Protected Sub GvContratosGastos_RowUpdating(ByVal sender As Object, ByVal e As GridViewUpdateEventArgs) Handles GvContratosGastos.RowUpdating + Dim objContrato As New ClsContratos + + Dim CveContratoGasto As Integer = GvContratosGastos.DataKeys(e.RowIndex).Value.ToString.ToEntero + Dim Observaciones As String = GvContratosGastos.Rows(e.RowIndex).FCTextBox("TxtDescripcion").Text.Trim + Dim Importe As Decimal = GvContratosGastos.Rows(e.RowIndex).FCTextBox("TxtImporteC").Text.Trim.ToDecimal + Dim Fecha As Date = GvContratosGastos.Rows(e.RowIndex).FCTextBox("TxtFecha").Text.Trim.ToDate + + If objContrato.UpdateContratoGasto(CveContratoGasto, Observaciones, Importe, Fecha, UsuarioActual.CveUsuario) Then + GvContratosGastos.EditIndex = -1 + CargaGVGastos() + End If + objContrato.Dispose() + End Sub + Protected Sub GvContratosGastos_RowCancelingEdit(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCancelEditEventArgs) Handles GvContratosGastos.RowCancelingEdit + GvContratosGastos.EditIndex = -1 + CargaGVGastos() + End Sub + + Protected Sub LnkDescargar_Click1(sender As Object, e As EventArgs) + Dim gvRow As GridViewRow = DirectCast((DirectCast(sender, LinkButton)).NamingContainer, GridViewRow) + RegistraScript($"window.location.href = '/Compras/PopUpVerFactura.aspx?P={Encripta(String.Format("OP=CONG&CVECONTRATO={0}&CVECONTRATOGASTO={1}", CveContrato, gvRow.DataKey("CveContratoGasto").ToString))}'") + End Sub +#End Region + +#Region "TAB: PEDIDOS / DEVOLUCIONES" + Private Sub CargaDatosPedDev() + Dim ObjContratos As New ClsContratos + If ObjContratos.GetRepDevolucionesPedidos(Me.CveContrato, MinFecha, MaxFecha, -1, -1, UsuarioActual.CveEmpresa) Then + DsDatosPedDev = ObjContratos.DsResultados + + GvPedidos.DataSource = DsDatosPedDev.Tables(0) + GvDevs.DataSource = DsDatosPedDev.Tables(1) + End If + ObjContratos.Dispose() + + GvPedidos.DataBind() + GvDevs.DataBind() + + UpPedidosDevoluciones.Update() + End Sub + Protected Sub ImgExcelPedDev_Click(sender As Object, e As EventArgs) Handles LbImprimirPedDevExcel.Click + GenerarPDFPedDev("Excel") + End Sub + Protected Sub ImgImprimirPedDev_Click(sender As Object, e As EventArgs) Handles LbImprimirPedDev.Click + GenerarPDFPedDev() + End Sub + Private Sub GenerarPDFPedDev(Optional Formato As String = "PDF") + If DsDatosPedDev Is Nothing Then + Alert("No se pudieron consultar los pedidos y devoluciones", TipoMensaje.MsgAdvertencia) + Exit Sub + End If + + Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta)) + Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa) + + Dim params As New List(Of ReportParameter) + + params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa)) + params.Add(New ReportParameter("FechaInicio", "-1")) + params.Add(New ReportParameter("FechaFin", "-1")) + params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre)) + params.Add(New ReportParameter("FechaImpresion", Now.ToDateTime.ToShortDateString)) + params.Add(New ReportParameter("Contrato", Me.Titulo)) + params.Add(New ReportParameter("Estatus", "")) + params.Add(New ReportParameter("Tipo", "-1")) + + If Imagen.Exists Then + params.Add(New ReportParameter("LogoPath", logouri)) + Else + params.Add(New ReportParameter("LogoPath", "")) + End If + + Dim lrds As New List(Of ReportDataSource) + lrds.Add(New ReportDataSource("DataSet1", DsDatosPedDev.Tables(0))) + lrds.Add(New ReportDataSource("DataSet2", DsDatosPedDev.Tables(1))) + + ImprimirPDF("Empresas/Grales/Formatos/RepPedDevolucionesXContrato.rdlc", lrds, params, "ReportePedidosDevoluciones", Formato) + + End Sub + + Protected Sub GvPedidos_RowDataBound(sender As Object, e As GridViewRowEventArgs) + If e.Row.RowType = DataControlRowType.DataRow Then + + 'CABECERA + If e.Row.DBCampo("CodigoPS") = "" Then + e.Row.CssClass = "SubTotales2" + e.Row.Attributes.Add("style", "background-color:#B9B5B4 !important;") + e.Row.Cells(0).Text = "" + e.Row.Cells(4).Text = "" + e.Row.Cells(5).Text = "" + + Dim Texto = $"Pedido: {e.Row.DBCampo("SerieFolio")} | " + Texto += If(e.Row.DBCampo("CveMovimiento").ToString = "", " SIN MOVIMIENTO DE ALMACÉN", $"Folio Almacén: {e.Row.DBCampo("Folio")}") + + e.Row.Cells(0).ColumnSpan = 2 + e.Row.Cells(1).Visible = False + e.Row.Cells(0).Text = Texto + e.Row.Cells(0).HorizontalAlign = HorizontalAlign.Left + Else + + If e.Row.DBCampo("CveMovimiento").ToString = "" Then + e.Row.Cells(1).Text = "SIN MOVIMIENTO DE ALMACÉN" + End If + + End If + End If + End Sub + Protected Sub GvDevs_RowDataBound(sender As Object, e As GridViewRowEventArgs) + If e.Row.RowType = DataControlRowType.DataRow Then + + 'CABECERA + If e.Row.DBCampo("CodigoPS") = "" Then + e.Row.CssClass = "SubTotales2" + e.Row.Attributes.Add("style", "background-color:#B9B5B4 !important;") + e.Row.Cells(0).Text = "" + e.Row.Cells(4).Text = "" + e.Row.Cells(5).Text = "" + + Dim Texto = $"Devolución: {e.Row.DBCampo("SerieFolio")} | " + Texto += If(e.Row.DBCampo("CveMovimiento").ToString = "", " SIN MOVIMIENTO DE ALMACÉN", $"Folio Almacén: {e.Row.DBCampo("Folio")}") + + e.Row.Cells(0).ColumnSpan = 2 + e.Row.Cells(1).Visible = False + e.Row.Cells(0).Text = Texto + e.Row.Cells(0).HorizontalAlign = HorizontalAlign.Left + Else + + If e.Row.DBCampo("CveMovimiento").ToString = "" Then + e.Row.Cells(1).Text = "SIN MOVIMIENTO DE ALMACÉN" + End If + + End If + End If + End Sub + +#End Region + +#Region " TAB: ALMACEN - ACTIVOS FIJBtnAlmacenEsInterno_ClickOS " + Private Sub CargaInventarios() + + Dim ObjInventarios As New ClsInventarios + 'cargar también los movimentos detalle + If ObjInventarios.GetMovimientosDetalleContrato(CveContrato, UsuarioActual.CveEmpresa, DdlEsinternoExternoFiltro.SelectedValue.ToEntero) Then + DtMovimientos = ObjInventarios.DtResultados + Else + Alert("Ocurrió un error al cargar la información de los Activos Fijos. Por favor vuelva a intentar.", TipoMensaje.MsgError) + End If + ObjInventarios.Dispose() + + If DtMovimientos.Rows.Count > 0 Then + CargaGVDatosInventarios() + CargaDatosPedDev() + 'BtnDevolucionAlmacen.Visible = True + CveMovimientoDevolucion = -1 + If CveMovimientoDevolucion > 0 Then + HLSurtirAF.Visible = False + BtnDevolucionAlmacen.Visible = False + End If + Else + DivSinRegistrosAlmacen.Visible = True + GvDatosAlmacen.DataSource = Nothing + GvDatosAlmacen.DataBind() + + End If + + 'CARGA MODALIDAD ALMACEN + If TipoContrato.Contiene(8, 17) Then ' cuando es consignacion + HLSurtirAF.Visible = False + HLSurtirMercancia.NavigateUrl = $"/Ventas/Ventas.aspx?CveContrato={CveContrato}&Tipo=1" + Else + HLSurtirMercancia.Visible = False + HLSurtirAF.NavigateUrl = $"/Ventas/Ventas.aspx?CveContrato={CveContrato}&Tipo=0" + End If + + UpAlmacen.Update() + + End Sub + + Protected Sub RBLAlmacen_SelectedIndexChanged(sender As Object, e As EventArgs) + CargaGVDatosInventarios() + End Sub + Private Sub CargaGVDatosInventarios() + Select Case RBLAlmacen.SelectedValue + Case "-1" + GvDatosAlmacen.DataSource = DtMovimientos + Actualiza(DtMovimientos) + Case "Vig" + GvDatosAlmacen.DataSource = DtMovimientos.FiltraParametros($"(CodigoPS IS NULL AND Cantidad - CantidadDevolucion > 0) OR (CodigoPS IS NOT NULL AND SerieFolioDevolucion IS NULL)") + Actualiza(DtMovimientos.FiltraParametros($"(CodigoPS IS NULL AND Cantidad - CantidadDevolucion > 0) OR (CodigoPS IS NOT NULL AND SerieFolioDevolucion IS NULL)")) + Case "Dev" + GvDatosAlmacen.DataSource = DtMovimientos.FiltraParametros($"SerieFolioDevolucion IS NOT NULL") + Actualiza(DtMovimientos.FiltraParametros($"SerieFolioDevolucion IS NOT NULL")) + Case Else + End Select + GvDatosAlmacen.DataBind() + End Sub + + Public Sub Actualiza(DT As DataTable) + + LblAFInternos.Text = DT.SUM("Cantidad", "CveMovimientoDetalle > 0 AND EsInterno = 1 ").ToString + LblAFExternos.Text = DT.SUM("Cantidad", "CveMovimientoDetalle > 0 AND (EsInterno = 0 OR EsInterno IS NULL)").ToString + + 'Dim ValorAF = DT.SUM("ValorImporte", "CveMovimientoDetalle > 0 AND TipoDocto = 'Ped'") - DT.SUM("ValorImporte", "TipoDocto = 'DPe'") + + LBLAFValorActivo.Text = DT.SUM("ValorImporte", "CveMovimientoDetalle > 0").ToString("###,###,###.00") + + Dim Total = DT.SUM("Cantidad", "CveMovimientoDetalle > 0 AND TipoDocto = 'Ped'") - DT.SUM("Cantidad", "TipoDocto = 'DPe'") + + LBLAFTotal.Text = DT.SUM("Cantidad", "CveMovimientoDetalle > 0").ToString() + UPAFResumen.Update() + + End Sub + Protected Sub GvDatosAlmacen_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvDatosAlmacen.RowDataBound + If e.Row.RowType = DataControlRowType.DataRow Then + + 'CABECERA + If e.Row.DBCampo("CodigoPS") = "" Then + e.Row.CssClass = "SubTotales2" + e.Row.Attributes.Add("style", "background-color:#B9B5B4 !important;") + e.Row.Cells(0).Text = "" + e.Row.Cells(4).Text = "" + e.Row.Cells(5).Text = "" + + Dim Texto = $"{If(e.Row.DBCampo("TipoDocto") = "Ped", "Pedido", "Devolución") }: {e.Row.DBCampo("SerieFolio")} | " + Texto += If(e.Row.DBCampo("CveMovimiento").ToString = "", " SIN MOVIMIENTO DE ALMACÉN", $"Folio Almacén: {e.Row.DBCampo("Folio")}") + + + e.Row.Cells(0).ColumnSpan = 2 + e.Row.Cells(1).Visible = False + 'e.Row.Cells(2).Visible = False + e.Row.Cells(0).Text = Texto + e.Row.Cells(0).HorizontalAlign = HorizontalAlign.Left + + If e.Row.DBCampo("TipoDocto") = "Ped" Then + If e.Row.DBCampo("Cantidad").ToDecimal - e.Row.DBCampo("CantidadDevolucion").ToDecimal > 0 Then + e.Row.Cells(9).Text = If(e.Row.DBCampo("CveMovimiento").ToString = "", "", $" Solicitud de devolución de pedido") + Else + e.Row.Cells(9).Text = "" + End If + End If + + Else + If e.Row.DBCampo("CveMovimiento").ToString = "" Then + e.Row.Cells(1).Text = "SIN MOVIMIENTO DE ALMACÉN" + End If + If e.Row.DBCampo("TipoDocto") = "Ped" Then + If e.Row.DBCampo("Cantidad").ToDecimal - e.Row.DBCampo("CantidadDevolucion").ToDecimal > 0 Then + e.Row.Cells(9).Text = If(e.Row.DBCampo("CveMovimiento").ToString = "", "", $" Solicitud de devolución de pedido") + End If + End If + + + e.Row.FCCheckBox("ChkEsInterno").Visible = True + + End If + + 'If e.Row.DBCampo("SerieLote").ToString = "-1" Then + ' e.Row.Cells(7).Text = "" + 'End If + End If + End Sub + + Private Sub BtnFiltraInternosExternos_Click(sender As Object, e As EventArgs) Handles BtnFiltraInternosExternos.Click + CargaInventarios() + End Sub + + + Protected Sub BtnAlmacenEsInterno_Click(sender As Object, e As EventArgs) + + Dim ObjInv As New ClsInventarios() + + For Each GRow As GridViewRow In GvDatosAlmacen.Rows + Dim CveMovimientoDetalle As Integer = GRow.DataKey("CveMovimientoDetalle").ToEntero + Dim ChkEsInterno = GRow.FCCheckBox("ChkEsInterno") + + If CveMovimientoDetalle > 0 And ChkEsInterno.Checked And DdlEsInterno.SelectedValue.ToEntero > 0 Then + Dim EsInterno As Boolean + + Select Case DdlEsInterno.SelectedValue.ToEntero + Case 1 + EsInterno = True + Case 2 + EsInterno = False + End Select + + If Not (ObjInv.UpdateMovimientoDetalleEsInterno(UsuarioActual.CveEmpresa, CveMovimientoDetalle, EsInterno)) Then + Exit For + End If + + End If + Next + + ObjInv.Dispose() + + LnkAjusteAF.Visible = True + DivHajusteAF.Visible = False + GvDatosAlmacen.Columns(6).Visible = False + + CargaInventarios() + UPHajusteAF.Update() + UpHajusteAcciones.Update() + + End Sub + + + Protected Sub LnkAjusteAF_Click(sender As Object, e As EventArgs) + + LnkAjusteAF.Visible = False + DivHajusteAF.Visible = True + GvDatosAlmacen.Columns(6).Visible = True + + CargaInventarios() + + UPHajusteAF.Update() + UpHajusteAcciones.Update() + UpAlmacen.Update() + + End Sub + + + +#Region " DEVOLUCION ALMACEN " + Protected Sub BtnDevolucionAlmacen_Click(sender As Object, e As EventArgs) + Dim ObjVentas As New ClsVentas + ObjVentas.IniciaTransacSQL() + Dim TieneError = False + + For Each Dr As DataRow In DtMovimientos.FiltraParametros("CveVenta IS NOT NULL AND CveMovimiento IS NOT NULL AND EsDevolucionVenta = 0", "", {"CveVenta"}).Rows + If Not ObjVentas.UpdateVentasDevolucionAlmacen(1, Dr("CveVenta").ToString.ToEntero) Then + TieneError = True + End If + Next + + + If Not TieneError Then + ObjVentas.Commit() + Alert("La solicitud de devolución se guardo correctamente.", TipoMensaje.MsgInformacion) + Else + ObjVentas.RollBack() + Alert("Ocurrió un error al guardar la solicitud de devolución. Por favor vuelva a intentar.", TipoMensaje.MsgError) + End If + + ObjVentas.Dispose() + End Sub + + + + + Public Sub CargaDatosEncabezado() + + TablaUtilidad.Visible = True + LblUtilidad.Text = $"$ {(SumaAvance - SumaGasto).ToString.FormatoNumero()}" + + If (SumaAvance - SumaGasto) < 0 Then LblUtilidad.ForeColor = Drawing.Color.Red + LblFacturado.Text = SumaAvance.FormatoNumero + LblPorFacturar.Text = (LblImporte.Text.ToDouble - SumaAvance).FormatoNumero + + End Sub + +#End Region + +#End Region + +#Region "TAB SISTEMA" + Protected Sub ChkPermitirAvance_CheckedChanged(sender As Object, e As EventArgs) + Dim ObjContrato As New ClsContratos + Dim Row As GridViewRow = DirectCast(DirectCast(sender, CheckBox).NamingContainer, GridViewRow) + ObjContrato.PermitirAvance(Gv.DataKeys(Row.RowIndex).Value.ToString.ToEntero, DirectCast(sender, CheckBox).Checked) + ObjContrato.Dispose() + Alert("Se ha permitido avance a la sección", TipoMensaje.MsgInformacion) + CargaDatos() + End Sub + + Protected Sub ChkPermitirEstimacion_CheckedChanged(sender As Object, e As EventArgs) + Dim ObjContrato As New ClsContratos + Dim Row As GridViewRow = DirectCast(DirectCast(sender, CheckBox).NamingContainer, GridViewRow) + ObjContrato.PermitirEstimacion(Gv.DataKeys(Row.RowIndex).Value.ToString.ToEntero, DirectCast(sender, CheckBox).Checked) + ObjContrato.Dispose() + Alert("Se ha permitido estimar en la sección", TipoMensaje.MsgInformacion) + CargaDatos() + End Sub +#End Region + +#End Region + +#Region " BITACORA " + Private Sub guardarBitacora(Descripcion As String) + Dim ObjEventoBitacora As New ClsOIEventos + If ObjEventoBitacora.AddEventoBitacora(Descripcion, "", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveContrato:=CveContrato) Then + cargarBitacora() + End If + ObjEventoBitacora.Dispose() + End Sub + + Private Sub cargarBitacora() + Dim ObjEventoBitacora As New ClsOIEventos + If ObjEventoBitacora.GetEventos(-1, -1, -1, "-1", "-1", -1, -1, -1, -1, -1, -1, "-1", -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveContrato:=CveContrato) Then + GvEB.DataSource = ObjEventoBitacora.DtResultados.FiltraParametros("CveTipoEvento = 6 OR CveTipoEvento = 2") + GvEB.DataBind() + HlEvento.NavigateUrl = "/OI/PopUpAgenda.aspx?CveTipoEvento=2&CveContrato=" & ViewState("CveContrato").ToString & "&TB_iframe=true&height=370&width=600;" + ' UpBitacora.Update() + End If + ObjEventoBitacora.Dispose() + End Sub + Protected Sub GVEventoBitacora_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvEB.RowDataBound + If e.Row.RowType = DataControlRowType.DataRow Then + If e.Row.RowIndex = 0 Then + e.Row.Cells(0).Width = Unit.Pixel(200) + e.Row.Cells(1).Width = Unit.Pixel(200) + e.Row.Cells(2).Width = Unit.Pixel(100) + 'e.Row.Cells(3).Width = Unit.Pixel(500) 'VARIABLE PARA QUE SEA LO MAS GRANDE POSIBLE + e.Row.Cells(4).Width = Unit.Pixel(100) + e.Row.Cells(5).Width = Unit.Pixel(5) + End If + Dim asd As String = e.Row.DBCampo("Archivo").ToString + + If e.Row.DBCampo("Archivo").ToString <> "" And e.Row.DBCampo("Archivo").ToString <> "-1" Then + e.Row.FCLinkButton("LinkArchivo").Visible = True + e.Row.FCLinkButton("LinkArchivo").CommandArgument = String.Format("OI\{0}", e.Row.DBCampo("Archivo").ToString) + ScriptManager.GetCurrent(Me).RegisterPostBackControl(e.Row.FCLinkButton("LinkArchivo")) 'Registro un evento Postbacktrigger, que recargue toda la pagina para que funcione + End If + + e.Row.Cells(3).HorizontalAlign = HorizontalAlign.Left + + If e.Row.DataKey("CveUsuarioIng").ToEntero = UsuarioActual.CveUsuario Then + e.Row.FCLinkButton("LinkEliminarBitacora").Visible = True + End If + + End If + End Sub + + Protected Sub BtnGuardarEventoBitacora_Click(sender As Object, e As EventArgs) Handles BtnGuardarEventoBitacora.Click + Dim ObjEventoBitacora As New ClsOIEventos + + Dim FileExtension As String = "-1" + Dim Filesgral As List(Of Archivo) = txtFileBit.getfiles().Archivos + Dim Filename As String = "" + + For Each fileItem As Archivo In Filesgral + FileExtension = IO.Path.GetExtension(String.Format("{0}Temp\{1}", AppDomain.CurrentDomain.BaseDirectory, fileItem.filename)).Replace(".", "") + Filename = fileItem.filename + Next + + If ObjEventoBitacora.AddEventoBitacora(TxtEventoDescripcion.Text.Trim, String.Format(".{0}", FileExtension), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveContrato:=CveContrato) Then + If Filename <> "" Then + Filename.FilesMove(String.Format("OI{0}", ObjEventoBitacora.CveEvento.ToString), String.Format("Empresas\{0}\OI", UsuarioActual.CveEmpresa)) + End If + + cargarBitacora() + TxtEventoDescripcion.Text = "" + txtFileBit.getfiles().Archivos.Clear() + + txtFileBit.Text = "" + Alert("La bitácora/observación se guardó correctamente", TipoMensaje.MsgInformacion) + RegistraScript("$('#ModalBitacora').modal('hide')", "hidemodal") + + End If + ObjEventoBitacora.Dispose() + GvEB.DataBind() + + UPEventoBitacora.Update() + 'CargaEventoBitacora() + UPAddEventoBitacora.Update() + End Sub + + + Protected Sub DownloadFile(ByVal sender As Object, ByVal e As EventArgs) + Dim filePath As String = String.Format("{0}{1}", UsuarioActual.Empresa.Ruta, CType(sender, LinkButton).CommandArgument) + Dim Archivo As New System.IO.FileInfo(filePath) + + HttpContext.Current.Response.Clear() + HttpContext.Current.Response.ClearContent() + HttpContext.Current.Response.ContentType = "application/octet-stream" + HttpContext.Current.Response.AppendHeader("Content-disposition", "attachment; filename=" + Path.GetFileName(filePath)) + HttpContext.Current.Response.AddHeader("Content-Length", Archivo.Length.ToString()) + HttpContext.Current.Response.TransmitFile(filePath) + HttpContext.Current.Response.Flush() + HttpContext.Current.Response.End() + + Archivo = Nothing + End Sub + + Protected Sub GvEB_RowDeleting(sender As Object, e As GridViewDeleteEventArgs) + Dim ObjEventoBitacora As New ClsOIEventos + If ObjEventoBitacora.RemoveEvento(GvEB.Rows(e.RowIndex).DataKey("CveEvento").ToEntero(), UsuarioActual.CveEmpresa) Then + cargarBitacora() + LimpiaModalBitacora() + Alert("El evento se elimino correctamente de la bitácora.", TipoMensaje.MsgInformacion) + End If + ObjEventoBitacora.Dispose() + End Sub + + Protected Sub LimpiaModalBitacora() + TxtEventoDescripcion.Text = "" + txtFileBit.getfiles().Archivos.Clear() + + txtFileBit.Text = "" + End Sub + +#End Region + +#Region "SUBIR EXCEL" + Public Sub DescargarFormato() + Dim Directorio As String = ModExtensiones.DirectorioBaseEmpresas & "Empresas\Grales\Formatos\FormatoContrato.xlsx" + Dim Archivo As New IO.FileInfo(Directorio) + If Archivo.Exists Then + Response.Clear() + Response.ClearHeaders() + Response.ClearContent() + Response.AddHeader("Content-Disposition", "attachment; filename=" + Archivo.Name) + Response.AddHeader("Content-Length", Archivo.Length.ToString()) + Response.ContentType = "text/plain" + Response.Flush() + Response.TransmitFile(Archivo.FullName) + Response.End() + End If + End Sub + Public Sub LbDescargarExcel_Click(sender As Object, e As EventArgs) Handles LbDescargarExcel.Click + DescargarFormato() + End Sub + Private Function ReadExcelFile(ByVal flatFilePath As String, ByVal firstRowHasHeaders As Boolean) As DataTable + SpreadsheetInfo.SetLicense(ModExtensiones.SerialGemBoxSpreadsheet) + Dim excelFile As ExcelFile = ExcelFile.Load(flatFilePath) + + Dim unnamed As Integer = 0 + Dim cols As Integer + Dim columns As String() + Dim curRow As Integer = 0 + Dim curCol As Integer = 0 + Dim dataTable As DataTable = New DataTable() + Dim worksheet As ExcelWorksheet = excelFile.Worksheets(0) + + For cols = 0 To worksheet.Rows(0).AllocatedCells.Count - 1 + + If firstRowHasHeaders Then + + If worksheet.Rows(0).Cells(cols).Value IsNot Nothing Then + dataTable.Columns.Add(worksheet.Rows(0).Cells(cols).Value.ToString()) + Else + dataTable.Columns.Add("Unnamed Column " & (System.Threading.Interlocked.Increment(unnamed))) + End If + + curRow = 1 + Else + dataTable.Columns.Add("Column " & (cols + 1)) + End If + Next + + While curRow < worksheet.Rows.Count + columns = New String(cols - 1) {} + + For curCol = 0 To cols - 1 + + If worksheet.Rows(curRow).Cells(curCol).Value Is Nothing Then + columns(curCol) = "" + Else + columns(curCol) = worksheet.Rows(curRow).Cells(curCol).Value.ToString() + End If + Next + + dataTable.Rows.Add(columns) + curRow += 1 + End While + + Return dataTable + End Function + + Private Sub CargarArchivo(Ruta As String, FileName As String, Tipo As String) + Dim dt As New DataTable + dt = ReadExcelFile(Ruta + FileName, True) + Dim ErrorArchivo = False + + 'Dim Conexion As Odbc.OdbcConnection = Nothing + 'Try + ' Select Case Tipo + ' Case "EXCEL" + ' Conexion = New Odbc.OdbcConnection("Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DBQ=" + Ruta + FileName + ";") + ' Conexion.Open() + ' Dim cmd = Conexion.CreateCommand() + ' cmd.CommandType = CommandType.Text + ' cmd.CommandText = "SELECT * FROM [Hoja1$]" + ' Dim DataAdapter = New Odbc.OdbcDataAdapter(cmd) + ' DataAdapter.Fill(dt) + ' Case Else + ' Alert("El archivo no tiene el formato correcto", TipoMensaje.MsgError) + ' Exit Sub + ' End Select + 'Catch ex As Exception + ' ErrorArchivo = True + ' OnError("Ocurrio un error al leer el archivo
    " & ex.Message, ex) + 'End Try + 'Conexion.Close() + If Not ErrorArchivo AndAlso dt IsNot Nothing Then + If Not dt.Columns(0).ColumnName = "OC Interna" Then + Alert("El nombre de la primera columna debe ser 'OC Interna'. Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If + If Not dt.Columns(1).ColumnName = "Cantidad" Then + Alert("El nombre de la primera columna debe ser 'Cantidad'. Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If + If Not dt.Columns(2).ColumnName = "Clave Interna Cliente" Then + Alert("El nombre de la segunda columna debe ser 'Clave Interna'. Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If + If Not dt.Columns(3).ColumnName = "Código" Then + Alert("El nombre de la tercera columna debe ser 'Código'. Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If + If Not dt.Columns(4).ColumnName = "Código Barras" Then + Alert("El nombre de la cuarta columna debe ser 'Código Barras'. Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If + If Not dt.Columns(5).ColumnName = "Producto/Servicio" Then + Alert("El nombre de la quinta columna debe ser 'Producto/Servicio'. Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If + If Not dt.Columns(6).ColumnName = "UM" Then + Alert("El nombre de la sexta columna debe ser 'U.M'. Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If + If Not dt.Columns(7).ColumnName = "Precio Unitario" Then + Alert("El nombre de la septima columna debe ser 'Precio Unitario'. Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If + + dt.TableName = "Datos" + + If Not ErrorArchivo Then + NumRow = 1 + Dim RowNoEncontrados As String = String.Empty + Dim NumAgregados As Integer = 0 + For Each Row As DataRow In dt.Rows + Dim Cantidad As Integer = Row("Cantidad").ToString.ToEntero + Dim Codigo As String = Row("Código").ToString.Trim.ToUpper + Dim CodigoBarras As String = Row("Código Barras").ToString.Trim.ToUpper + Dim UM As String = Row("UM").ToString + Dim ClaveInterna As String = Row("Clave Interna Cliente").ToString.Trim.ToUpper + Dim OCInterna As String = Row("OC Interna").ToString.Trim.ToUpper + Dim ProductoServicio As String = Row("Producto/Servicio").ToString.Trim.ToUpper + Dim PrecioUnitario As Double = Row("Precio Unitario").ToString.ToDouble + Dim CvePS As Integer = 0 + Dim CveUM As Integer = 0 ' GlobalDTPS(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveUnidadMedida", $"CvePS = '{CvePS}'").ToString.ToEntero + Dim CodigoPS As Integer = 0 + Dim Total As Double = (Cantidad * PrecioUnitario) + + + NumRow = NumRow + 1 + + If Codigo.Length > 0 Then + Dim StrArray() As String = GetPS("Codigo", Codigo).Split("|"c) + If StrArray.Length > 0 Then + If CBool(StrArray(0)) = True Then + CvePS = StrArray(1).ToEntero + Else + RowNoEncontrados &= StrArray(1) & "<\BR>" + End If + End If + ElseIf CodigoBarras.Length > 0 Then + Dim StrArray() As String = GetPS("CodigoBarras", CodigoBarras).Split("|"c) + If StrArray.Length > 0 Then + If CBool(StrArray(0)) = True Then + CvePS = StrArray(1).ToEntero + Else + RowNoEncontrados &= StrArray(1) & "<\BR>" + End If + End If + ElseIf ProductoServicio.Length > 0 Then + Dim StrArray() As String = GetPS("PS", ProductoServicio).Split("|"c) + If StrArray.Length > 0 Then + If CBool(StrArray(0)) = True Then + CvePS = StrArray(1).ToEntero + Else + RowNoEncontrados &= StrArray(1) & "<\BR>" + End If + End If + Else + RowNoEncontrados &= "<\BR>    - En la fila " & NumRow & " no se especificó código, código de barras ó descripción." + End If + CveUM = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePS).FiltroPrimeroValor("CveUnidadMedida", "").ToString.ToEntero + + If TmpDT IsNot Nothing AndAlso CvePS > 0 Then + Dim dr As DataRow = TmpDT.NewRow + dr("Cantidad") = Cantidad + dr("CantidadContratada") = Cantidad + dr("CveUM") = CveUM + dr("UM") = UM + dr("CveClasificacion") = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePS).FiltroPrimeroValor("CveClasificacion", "").ToString.ToEntero + dr("Clasificacion") = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltroPrimeroValor("Clasificacion", $"CveClasificacion = '{dr("CveClasificacion")}'").ToString + dr("CvePS") = CvePS + dr("PS") = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=dr("CvePS").ToString.ToEntero).FiltroPrimeroValor("PS", "").ToString + dr("CodigoPS") = dr("PS") + dr("PU") = PrecioUnitario + dr("Total") = Cantidad * PrecioUnitario + dr("CveTipoPresupuesto") = 2 + dr("NoIdentificacion") = ClaveInterna + dr("OCInterna") = OCInterna + dr("LimitarCantidad") = 0 + + If CvePS > 0 Then + Dim ObjContratos As New ClsContratos + If ObjContratos.AddContratosDetalle(CveContrato, dr("CvePS").ToString.ToEntero, dr("Cantidad").ToString.ToDouble, dr("PU").ToString.ToDouble, UsuarioActual.CveUsuario, dr("CveTipoPresupuesto").ToString.ToEntero, dr("NoIdentificacion").ToString, dr("LimitarCantidad").ToString.ToEntero = 1, dr("OCInterna").ToString) Then + Dim msj As String = String.Format("Se agregaron {0} {1} del producto {2} con un precio ${3}.", dr("Cantidad"), dr("UM"), dr("PS"), dr("PU")) + guardarBitacora(msj) + dr("CveContratoDetalle") = ObjContratos.DtResultados.Rows(0)("CveContratoDetalle") + TmpDT.Rows.Add(dr) + Dim TotalRow = dr("Total").ToString.ToDouble + + CargaGVPresupuestos(TmpDT.FiltraParametros("CveTipoPresupuesto=2")) + LbTotalGeneral.Text = (LbTotalGeneral.Text.ToDouble + TotalRow).ToString.FormatoNumero + LblImporte.Text = LbTotalGeneral.Text + Else + Alert("Ocurrio un error al agregar el detalle", TipoMensaje.MsgError) + End If + ObjContratos.Dispose() + End If + + + End If + Next + 'Cargo el GridView + Gv.DataSource = TmpDT + Gv.DataBind() + UpGV.Update() + + + If RowNoEncontrados.Length > 0 Then + Alert("Los siguientes Productos o Servicios no se encontraron en la Base de Datos.<\BR>" & RowNoEncontrados, TipoMensaje.MsgAdvertencia) + Else + Alert("Se Cargaron " & NumRow & " Productos o Servicios correctamente.") + End If + End If + End If + End Sub + + Private Function GetPS(Opt As String, Valor As String) As String + Dim StrReturn As String = String.Empty + Dim CvePS As Integer = 0 + CvePS = GlobalDTPS(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CvePS", Opt & " = '" & Valor & "'").ToString.ToEntero + If CvePS > 0 Then + StrReturn = "True|" & CvePS.ToString + Else + + StrReturn = "False|    - No se encontró " & Valor & " en la fila " & NumRow & ", columna " & Opt + End If + Return StrReturn + End Function + + Private Sub BtnCargaExcel_Click(sender As Object, e As EventArgs) Handles BtnCargaExcel.Click + If TxtExcel.getfiles().Archivos.Count > 0 Then + Dim file As Archivo = TxtExcel.getfiles().Archivos(0) + Dim Directorio As String = AppDomain.CurrentDomain.BaseDirectory & file.patch + Dim Tipo As String = If(file.Extencion.Contiene("xlsx", "xlsx", "xlsm", "xlsb"), "EXCEL", "CSV") + CargarArchivo(Directorio, file.filename, Tipo) + Else + Alert("No existe el archivo. Favor de subir un archivo excel a la plataforma.", TipoMensaje.MsgError) + End If + End Sub + + +#End Region + +#Region " GPS " + 'Private Sub CargaCuentasEquipos() + + ' Dim GPS As New ClsGPS + ' If GPS.DispositivosGet(-1, -1, DdlCliente.SelectedValue.ToEntero) Then + ' DdlCuentaEquipo.DataSource = GPS.DtResultados + ' Else + ' DdlCuentaEquipo.DataSource = Nothing + ' End If + ' GPS.Dispose() + ' DdlCuentaEquipo.DataBind() + ' UpGral.Update() + + 'End Sub + + 'Private Sub CargaPeriodos() + ' Dim ObjContratos As New ClsContratos + ' If ObjContratos.GetPeriodos(-1, UsuarioActual.CveEmpresa) Then + ' DtPeriodo = ObjContratos.DtResultados + ' Else + ' DtPeriodo = Nothing + ' End If + ' DdlPeriodo.DataSource = DtPeriodo + ' ObjContratos.Dispose() + ' DdlPeriodo.DataBind() + ' UpGral.Update() + 'End Sub +#End Region + +#Region " IMPRESION " + +#Region " IMPRIMIR AVANCE POR DOCUMENTO " + Protected Sub ImgImprimir_Click(sender As Object, e As EventArgs) Handles LBImprimir.Click + GenerarPDF() + End Sub + Private Sub GenerarPDF(Optional Formato As String = "PDF") + + Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta)) + Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa) + + Dim dt As DataTable = DtAvanceDocumento.FiltraParametros("CveVenta > 0") + Dim params As New List(Of ReportParameter) + params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa)) + params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre)) + params.Add(New ReportParameter("FechaImpresion", Now.ToDateTime.ToShortDateString)) + params.Add(New ReportParameter("Contrato", Titulo)) + + 'Datos NUEVOS + params.Add(New ReportParameter("Proveedor", Contratante)) + params.Add(New ReportParameter("FechaInicio", TxtFechaInicial.Text.Trim)) + params.Add(New ReportParameter("FechaFin", TxtFechaFinal.Text.Trim)) + params.Add(New ReportParameter("TipoContrato", TipoDocumento)) + params.Add(New ReportParameter("TotalContrato", LblImporte.Text)) + If Imagen.Exists Then + params.Add(New ReportParameter("LogoPath", logouri)) + Else + params.Add(New ReportParameter("LogoPath", "")) + End If + Dim Nombre As String = If(LtlTitulo.Text.Length > 20, LtlTitulo.Text.Substring(0, 20), LtlTitulo.Text) + ImprimirPDF("Empresas/Grales/Formatos/RepContratoAvanceDocumento.rdlc", dt, params, $"{Nombre}-AvanceDocumento", Formato:=Formato) + End Sub + Private Sub LBImprimirInformacionG_Click(sender As Object, e As EventArgs) Handles LBImprimirInformacionG.Click + Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta)) + Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa) + + Dim dt As DataTable = DtAvanceDocumento + Dim params As New List(Of ReportParameter) + params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa)) + params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre)) + params.Add(New ReportParameter("FechaImpresion", Now.ToDateTime.ToShortDateString)) + params.Add(New ReportParameter("Contrato", Titulo)) + 'DATOS DEL CONTRATO + params.Add(New ReportParameter("NoContrato", TxtNumeroContrato.Text.Trim)) + params.Add(New ReportParameter("Descripcion", TxtDescripcionContrato.Text.Trim)) + params.Add(New ReportParameter("Proveedor", If(TrProveedor.Visible = True, DdlContratista.SelectedItem.Text.Trim, "-"))) + params.Add(New ReportParameter("Ubicacion", TxtUbicacion.Text.Trim)) + params.Add(New ReportParameter("Responsable", TxtResponsable.Text.Trim)) + params.Add(New ReportParameter("Almacen", "-")) + params.Add(New ReportParameter("Porcentaje", "-")) + 'CENTRO DE COSTOS + params.Add(New ReportParameter("Proyecto", If(DVddlproyecto.Visible = True, DdlProyecto.SelectedItem.Text.Trim, "-"))) + params.Add(New ReportParameter("SubProyecto", CveSubProyecto.ToString)) + params.Add(New ReportParameter("Addendum", "")) + 'INFORMACION + params.Add(New ReportParameter("Cliente", If(TrCliente.Visible = True, DdlCliente.SelectedItem.Text.Trim, "-"))) + params.Add(New ReportParameter("Sucursal", If(TrClienteSucursal.Visible = True, DdlSucursalCliente.SelectedItem.Text.Trim, "-"))) + params.Add(New ReportParameter("FechaInicial", TxtFechaInicial.Text.Trim)) + params.Add(New ReportParameter("FechaFinal", TxtFechaFinal.Text.Trim)) + params.Add(New ReportParameter("Moneda", DdlMoneda.SelectedItem.Text.Trim)) + params.Add(New ReportParameter("TipoCambio", If(tipoCambio.Visible = True, TxtTipoCambio.Text.Trim, "-"))) + params.Add(New ReportParameter("IVA", TxtPorIVA.Text.Trim)) + params.Add(New ReportParameter("Anticipo", TxtPorAnticipo.Text.Trim)) + params.Add(New ReportParameter("Amortizacion", TxtPorAmortizacionAnticipo.Text.Trim)) + params.Add(New ReportParameter("Garantia", TxtPorGarantia.Text.Trim)) + params.Add(New ReportParameter("Minimo", "-")) + params.Add(New ReportParameter("Maximo", "-")) + params.Add(New ReportParameter("Total", If(DvTotal.Visible = True, TxtTotal.Text.Trim, "-"))) + 'Estatus + params.Add(New ReportParameter("Estatus", DdlEstatus.SelectedItem.Text.Trim)) + params.Add(New ReportParameter("TipoGarantia", "")) + params.Add(New ReportParameter("EstatusFianza", "")) + params.Add(New ReportParameter("Folio", "0")) + params.Add(New ReportParameter("FechaVencimiento", "")) + + If Imagen.Exists Then + params.Add(New ReportParameter("LogoPath", logouri)) + Else + params.Add(New ReportParameter("LogoPath", "")) + End If + ImprimirPDF("Empresas/Grales/Formatos/Contrato.rdlc", dt, params, $"Contrato-{Titulo}", Formato:="PDF") + + End Sub + + +#End Region + +#Region "I M P R E S I O N D E G A S T O S" + Protected Sub ImgImprimirGastos_Click(sender As Object, e As EventArgs) Handles LBImprimirGastos.Click + GenerarPDFGastos() + End Sub + Private Sub GenerarPDFGastos(Optional Formato As String = "PDF") + + Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta)) + Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa) + Dim UtilidadGastos As String = IIf(LblUtilidad.Text <> "", LblUtilidad.Text, "-").ToString + + + Dim dt As DataTable = DtGastos + Dim params As New List(Of ReportParameter) + params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa)) + params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre)) + params.Add(New ReportParameter("FechaImpresion", Now.ToDateTime.ToShortDateString)) + params.Add(New ReportParameter("Contrato", TituloCorto)) + + 'Datos NUEVOS + params.Add(New ReportParameter("Proveedor", Contratante)) + params.Add(New ReportParameter("FechaInicio", TxtFechaInicial.Text.Trim)) + params.Add(New ReportParameter("FechaFin", TxtFechaFinal.Text.Trim)) + params.Add(New ReportParameter("TipoContrato", TipoDocumento)) + params.Add(New ReportParameter("TotalContrato", LblImporte.Text)) + params.Add(New ReportParameter("Utilidad", UtilidadGastos)) + + If Imagen.Exists Then + params.Add(New ReportParameter("LogoPath", logouri)) + Else + params.Add(New ReportParameter("LogoPath", "")) + End If + Dim Nombre As String = If(LtlTitulo.Text.Length > 20, LtlTitulo.Text.Substring(0, 20), LtlTitulo.Text) + ImprimirPDF("Empresas/Grales/Formatos/RepContratoGastos.rdlc", dt, params, $"{Nombre}-Gastos", Formato:=Formato) + End Sub + + Private Sub LBAgregarGasto_Click(sender As Object, e As EventArgs) Handles LBAgregarGasto.Click + TxtDescripcion.Text = "" + TxtImporteC.Text = "" + TxtFecha.Text = "" + UpAgregarGastos.Update() + RegistraScript("$('#ModalAgregarGastos').modal();") + End Sub + +#End Region + +#Region "I M P R E S I O N D E S U M I N I S T R O S" + Protected Sub ImgImprimirSuministros_Click(sender As Object, e As EventArgs) Handles LbImprimirSuministros.Click + GenerarPDFSuministros() + End Sub + Private Sub GenerarPDFSuministros(Optional Formato As String = "PDF") + Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta)) + Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa) + + Dim dt As DataTable = DtSuministros + Dim params As New List(Of ReportParameter) + params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa)) + params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre)) + params.Add(New ReportParameter("FechaImpresion", Now.ToDateTime.ToShortDateString)) + params.Add(New ReportParameter("Contrato", TituloCorto)) + + 'Datos NUEVOS + params.Add(New ReportParameter("Proveedor", Contratante)) + params.Add(New ReportParameter("FechaInicio", TxtFechaInicial.Text.Trim)) + params.Add(New ReportParameter("FechaFin", TxtFechaFinal.Text.Trim)) + params.Add(New ReportParameter("TipoContrato", TipoDocumento)) + params.Add(New ReportParameter("TotalContrato", LblImporte.Text)) + If Imagen.Exists Then + params.Add(New ReportParameter("LogoPath", logouri)) + Else + params.Add(New ReportParameter("LogoPath", "")) + End If + Dim Nombre As String = If(LtlTitulo.Text.Length > 20, LtlTitulo.Text.Substring(0, 20), LtlTitulo.Text) + ImprimirPDF("Empresas/Grales/Formatos/RepContratoSuministros.rdlc", dt, params, $"{Nombre}-Suministros", Formato:=Formato) + End Sub +#End Region + +#Region "I M P R E S I O N D E A V A N C E " + Private Sub lbImprimirAvance_Click(sender As Object, e As EventArgs) Handles lbImprimirAvance.Click + GenerarPDFAvance() + End Sub + Private Sub GenerarPDFAvance(Optional Formato As String = "PDF") + Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta)) + Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa) + + Dim dt As DataTable = DtAvance + Dim params As New List(Of ReportParameter) + params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa)) + params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre)) + params.Add(New ReportParameter("FechaImpresion", Now.ToDateTime.ToShortDateString)) + params.Add(New ReportParameter("Contrato", TituloCorto)) + + 'Datos NUEVOS + params.Add(New ReportParameter("Proveedor", Contratante)) + params.Add(New ReportParameter("FechaInicio", TxtFechaInicial.Text.Trim)) + params.Add(New ReportParameter("FechaFin", TxtFechaFinal.Text.Trim)) + params.Add(New ReportParameter("TipoContrato", TipoDocumento)) + params.Add(New ReportParameter("TotalContrato", LblImporte.Text)) + + If Imagen.Exists Then + params.Add(New ReportParameter("LogoPath", logouri)) + Else + params.Add(New ReportParameter("LogoPath", "")) + End If + Dim Nombre As String = If(LtlTitulo.Text.Length > 20, LtlTitulo.Text.Substring(0, 20), LtlTitulo.Text) + ImprimirPDF("Empresas/Grales/Formatos/ContratoAvance.rdlc", dt, params, $"{Nombre}-Avance", Formato:=Formato) + End Sub +#End Region + +#Region "I M P R E S I O N D E P R E S U P U E S T O " + Private Sub lLbImprimirPresupuesto_Click(sender As Object, e As EventArgs) Handles LbImprimirPresupuesto.Click + GenerarPDFPPresupuesto() + End Sub + Private Sub GenerarPDFPPresupuesto(Optional Formato As String = "PDF") + Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta)) + Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa) + + Dim dt As DataTable = DtPresupuestos + Dim params As New List(Of ReportParameter) + params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa)) + params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre)) + params.Add(New ReportParameter("FechaImpresion", Now.ToDateTime.ToShortDateString)) + params.Add(New ReportParameter("Contrato", TituloCorto)) + + 'Datos NUEVOS + params.Add(New ReportParameter("Proveedor", Contratante)) + params.Add(New ReportParameter("FechaInicio", TxtFechaInicial.Text.Trim)) + params.Add(New ReportParameter("FechaFin", TxtFechaFinal.Text.Trim)) + params.Add(New ReportParameter("TipoContrato", TipoDocumento)) + params.Add(New ReportParameter("TotalContrato", LblImporte.Text)) + + If Imagen.Exists Then + params.Add(New ReportParameter("LogoPath", logouri)) + Else + params.Add(New ReportParameter("LogoPath", "")) + End If + Dim Nombre As String = If(LtlTitulo.Text.Length > 20, LtlTitulo.Text.Substring(0, 20), LtlTitulo.Text) + ImprimirPDF("Empresas/Grales/Formatos/RepContratoPresupuestos.rdlc", dt, params, $"{Nombre}-Presupuestos", Formato:=Formato) + End Sub +#End Region + +#Region "I M P R E S I O N D E A C T I V O S F I J O S " + Private Sub LbImprmirAF_Click(sender As Object, e As EventArgs) Handles LbImprmirAF.Click + GenerarPDFActivosFijos() + End Sub + Private Sub LbImprmirAFExcel_Click(sender As Object, e As EventArgs) Handles LbImprmirAFExcel.Click + GenerarPDFActivosFijos("Excel") + End Sub + Private Sub GenerarPDFActivosFijos(Optional Formato As String = "PDF") + Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta)) + Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa) + + Dim dt As DataTable = Nothing + + Select Case RBLAlmacen.SelectedValue + Case "-1" + dt = DtMovimientos + Case "Vig" + dt = DtMovimientos.FiltraParametros($"(CodigoPS IS NULL AND Cantidad - CantidadDevolucion > 0) OR (CodigoPS IS NOT NULL AND SerieFolioDevolucion IS NULL)") + Case "Dev" + dt = DtMovimientos.FiltraParametros($"SerieFolioDevolucion IS NOT NULL") + Case Else + End Select + + Dim params As New List(Of ReportParameter) + params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa)) + params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre)) + params.Add(New ReportParameter("FechaImpresion", Now.ToDateTime.ToShortDateString)) + params.Add(New ReportParameter("Contrato", TituloCorto)) + + 'Datos NUEVOS + params.Add(New ReportParameter("Proveedor", Contratante)) + params.Add(New ReportParameter("FechaInicio", TxtFechaInicial.Text.Trim)) + params.Add(New ReportParameter("FechaFin", TxtFechaFinal.Text.Trim)) + params.Add(New ReportParameter("TipoContrato", TipoDocumento)) + params.Add(New ReportParameter("TotalContrato", LblImporte.Text)) + + Dim Filtro As String = If(RBLAlmacen.SelectedValue = "-1", "Todos", If(RBLAlmacen.SelectedValue = "Vig", "Vigentes", "Devueltos")) + + params.Add(New ReportParameter("CantInternos", LblAFInternos.Text)) + params.Add(New ReportParameter("CantExternos", LblAFExternos.Text)) + params.Add(New ReportParameter("TotalCant", LBLAFTotal.Text)) + params.Add(New ReportParameter("ValorActivo", LBLAFValorActivo.Text)) + params.Add(New ReportParameter("FiltroContratos", Filtro)) + + If Imagen.Exists Then + params.Add(New ReportParameter("LogoPath", logouri)) + Else + params.Add(New ReportParameter("LogoPath", "")) + End If + Dim Nombre As String = If(LtlTitulo.Text.Length > 20, LtlTitulo.Text.Substring(0, 20), LtlTitulo.Text) + ImprimirPDF("Empresas/Grales/Formatos/RepContratoActivosFijos.rdlc", dt, params, $"{Nombre}-ActivosFijos", Formato:=Formato) + End Sub + + +#End Region + +#Region " IMPRIMIR DOCUMENTO - SABE " + Public Sub DescarFormato(documento As String) + + Dim PathRoot As String = Server.MapPath("/") + Dim PathSource As String + Dim pathDesti As String + + PathSource = $"{UsuarioActual.Empresa.Ruta}\Formatos\Plantillas\{documento}" + pathDesti = PathRoot & "Temp\" & CveContrato & documento + + If File.Exists(pathDesti) Then + File.Delete(pathDesti) + End If + + File.Copy(PathSource, pathDesti) + + Dim objDoc As New clsGemBoxDocument(pathDesti) + Dim FechaActual As String = Now.Day.ToString("0#") & " de " & CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(1).ToString & " del " & Now.Year.ToString() + + objDoc.SustituirTags(GetDatosTagsDocumentos) + objDoc.Guardar(pathDesti) + + Dim fileinfo As New FileInfo(pathDesti) + + Dim baseUrl As String = Request.Url.GetLeftPart(UriPartial.Authority) + baseUrl = baseUrl & "/temp/" & fileinfo.Name + + RegistraScript("Download('" & baseUrl & "')") + End Sub + + Private Function GetDatosTagsDocumentos() As List(Of TagsDocumentos) + Dim ListaTagsDocumentost = New List(Of TagsDocumentos) + Dim ObjContratos As New ClsContratos + If CveContrato <> -1 Then + If ObjContratos.GetContratos(CveContrato, UsuarioActual.CveEmpresa) Then + ListaTagsDocumentost.Add(New TagsDocumentos("{{NumeroContrato}}", ObjContratos.NumeroContrato)) + ListaTagsDocumentost.Add(New TagsDocumentos("{{DescripcionContrato}}", ObjContratos.DescripcionContrato)) + ListaTagsDocumentost.Add(New TagsDocumentos("{{Ubicacion}}", ObjContratos.Ubicacion)) + ListaTagsDocumentost.Add(New TagsDocumentos("{{Responsable}}", ObjContratos.Responsable)) + ListaTagsDocumentost.Add(New TagsDocumentos("{{FechaInicial}}", ObjContratos.FechaInicial.ToString("d"))) + ListaTagsDocumentost.Add(New TagsDocumentos("{{FechaFinal}}", ObjContratos.FechaFinal.ToString("d"))) + ListaTagsDocumentost.Add(New TagsDocumentos("{{Moneda}}", GlobalDTMonedas().FiltroPrimeroValor("Moneda", $"CveMoneda = {ObjContratos.CveMoneda}"))) + ListaTagsDocumentost.Add(New TagsDocumentos("{{IVA}}", ObjContratos.PorIVA.ToString)) + ListaTagsDocumentost.Add(New TagsDocumentos("{{Anticipo}}", ObjContratos.PorAnticipo.ToString)) + ListaTagsDocumentost.Add(New TagsDocumentos("{{AmortizacionAnticipo}}", ObjContratos.PorAmortizacionAnticipo.ToString)) + ListaTagsDocumentost.Add(New TagsDocumentos("{{Garantia}}", ObjContratos.PorGarantia.ToString)) + If Not IsDBNull(ObjContratos.DtResultados(0)("Periodo")) Then + ListaTagsDocumentost.Add(New TagsDocumentos("{{Periodo}}", ObjContratos.DtResultados(0)("Periodo").ToString)) + End If + If Not IsDBNull(ObjContratos.DtResultados(0)("CveCuentaEquipo")) Then + ListaTagsDocumentost.Add(New TagsDocumentos("{{CuentaEquipo}}", "-1")) + End If + If Not IsDBNull(ObjContratos.DtResultados(0)("NombreComercial")) Then + ListaTagsDocumentost.Add(New TagsDocumentos("{{NombreComercial}}", ObjContratos.DtResultados(0)("NombreComercial").ToString)) + End If + End If + End If + ObjContratos.Dispose() + Return ListaTagsDocumentost + End Function + Private Sub CargaPlantillas() + Dim ObjGral As New ClsGenerales + If ObjGral.ContratosPlantillaGet(-1, UsuarioActual.CveEmpresa) Then + DtPlantillasContratos = ObjGral.DtResultados.FiltraParametros("Tipo = 'Con'") + ' DdlPlantillaContrato.DataSource = DtPlantillasContratos + Else + DtPlantillasContratos = Nothing + End If + ObjGral.Dispose() + 'DdlPlantillaContrato.DataSource = DtPlantillasContratos + 'DdlPlantillaContrato.DataBind() + End Sub + + Protected Sub BtnImprimirC_Click(sender As Object, e As EventArgs) Handles liImprimir.Click + ' Dim docx As String = DtPlantillasContratos.FiltroPrimeroValor("URL", $"CveContratoPlantilla = {DdlPlantillaContrato.SelectedValue}") + ' DescarFormato(docx) + End Sub + +#End Region + + +#End Region + +#Region "CREAR A PARTIR DE" + Private Sub BtnAgregarContratoHijo_Click(sender As Object, e As EventArgs) Handles BtnAgregarContratoHijo.Click + Dim TieneError = False + + Dim ObjContratos As New ClsContratos + ObjContratos.IniciaTransacSQL() + + Try + Dim CveContratoHijo As Integer = -1 + Dim Minimo, Maximo, Total As Double + + Minimo = -1 + Maximo = -1 + Total = -1 + + 'If txtMinimo.Text.ToDouble > 0 And chkDetalleContrato.Checked Then Minimo = txtMinimo.Text.ToDouble Else Minimo = -1 + 'If txtMaximo.Text.ToDouble > 0 And chkDetalleContrato.Checked Then Maximo = txtMaximo.Text.ToDouble Else Maximo = -1 + 'If TxtTotal.Text.ToDouble > 0 And chkDetalleContrato.Checked Then Total = TxtTotal.Text.ToDouble Else Total = -1 + + Dim CveEstatusInicial As Integer = 10 'falta sacar por + If ObjContratos.GetContratosEstatus(UsuarioActual.CveEmpresa) Then + CveEstatusInicial = ObjContratos.DtResultados.FiltroPrimeroValor("CveContratoEstatus", "TipoEstatus=1").ToEntero + End If + + CveContratoHijo = ObjContratos.AddContratos(TxtCodigoApartirDe.Text, TxtDescripcionApartirDe.Text, TxtNumeroLicitacion.Text.Trim, DdlContratista.SelectedValue.ToEntero, DdlCliente.SelectedValue.ToEntero, -1, txtFechaI4.Text.ToDate, txtFechaF4.Text.ToDate, + TxtUbicacion.Text, TxtResponsable.Text, CveSubProyecto, TxtPorIVA.Text.ToDouble, TxtPorAnticipo.Text.ToDouble, TxtPorAmortizacionAnticipo.Text.ToDouble, + TxtPorGarantia.Text.ToDouble, "." & Session("FileExtension").ToString, "", CveContrato, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, False, Minimo, Maximo, Total, + DdlMoneda.SelectedValue.ToEntero, ModalidadDetalle, If(UsuarioActual.Empresa.CvePlataforma = 3, 1, CveEstatusInicial), TipoContrato, TxtTipoCambio.Text.ToDouble, CveSucursalCliente:=DdlSucursalCliente.SelectedValue.ToEntero, CveAlmacenOrigen:=-1, CveAlmacenDestino:=-1, PorcentajeComision:=0, + TipoGarantia:=-1, Folio:=0, FechaVenc:=Nothing, EstatusFianza:=-1, CvePeriodo:=-1, CveCuentaEquipo:=-1, CveContratoPlantilla:=-1, CveVendedor:=-1) + + + If CveContratoHijo > 0 Then + + If ChkCantidades.Checked Then + TieneError = AgregarDetalleHijo(CveContratoHijo, ObjContratos) + End If + + If ChkTrasAF.Checked Then + TieneError = AgregarMovimientosAFHijo(CveContratoHijo, ObjContratos) + End If + + Else + TieneError = True + Alert("Ocurrió un error al generar el contrato.", TipoMensaje.MsgError) + End If + + If Not TieneError Then + ObjContratos.Commit() + Dim Msj As New StringBuilder + Msj.Append($"Se ha generado correctamente el contrato {TxtCodigoApartirDe.Text}, a partir del contrato: {TxtNumeroContrato.Text}") + Msj.AppendFormat("
    Ver Contrato", CveContratoHijo) + RegistraScript("$('#ModalCrearApartirDe').modal('hide');") + Alert(Msj.ToString, TipoMensaje.MsgInformacion) + Else + ObjContratos.RollBack() + End If + Catch ex As Exception + ObjContratos.RollBack() + OnError("Ocurrió un error al crear un nuevo contrato.", ex) + Finally + ObjContratos.Dispose() + End Try + + End Sub + + + Private Function AgregarDetalleHijo(CveContratoHijo As Integer, ByRef ObjContratos As ClsContratos) As Boolean + Dim TieneError = False + + Dim Cantidades As Double + For Each Row As DataRow In TmpDT.Rows + Cantidades = Row("CantidadContratada").ToString.ToDouble + 'If ChkCantidades.Checked Then + ' Cantidades = Row("CantidadContratada").ToString.ToDouble + 'Else + ' Cantidades = 0 + 'End If + + If Row("CveTipoPresupuesto").ToString.ToEntero = 1 Then + If ObjContratos.AddContratosDetalle(CveContratoHijo, Row("CvePS").ToString.ToEntero, Cantidades, Row("PU").ToString.ToDouble, UsuarioActual.CveUsuario, Row("CveTipoPresupuesto").ToString.ToEntero, Row("NoIdentificacion").ToString, Row("LimitarCantidad").ToString.ToEntero = 1, "") Then + If Autorizado Then + Dim msj As String = String.Format("Se agregaron {0} {1} del producto {2} con un precio ${3}.", Row("Cantidad"), Row("UM"), Row("PS"), Row("PU")) + guardarBitacora(msj) + End If + Row("CveContratoDetalle") = ObjContratos.DtResultados.Rows(0)("CveContratoDetalle") + Else + TieneError = True + Alert("Ocurrió un error al agregar el detalle del contrato", TipoMensaje.MsgError) + Exit For + End If + ElseIf Row("CveTipoPresupuesto").ToString.ToEntero = 2 Then + If ObjContratos.AddContratosDetalle(CveContratoHijo, Row("CvePS").ToString.ToEntero, Cantidades, Row("PU").ToString.ToDouble, UsuarioActual.CveUsuario, Row("CveTipoPresupuesto").ToString.ToEntero, Row("NoIdentificacion").ToString, Row("LimitarCantidad").ToString.ToEntero = 1, Row("OCInterna").ToString) Then + If Autorizado Then + Dim msj As String = String.Format("Se agregaron {0} {1} del producto {2} con un precio ${3}.", Row("Cantidad"), Row("UM"), Row("PS"), Row("PU")) + guardarBitacora(msj) + End If + Row("CveContratoDetalle") = ObjContratos.DtResultados.Rows(0)("CveContratoDetalle") + Else + TieneError = True + Alert("Ocurrió un error al agregar el detalle del contrato", TipoMensaje.MsgError) + Exit For + End If + End If + Next + + Return TieneError + End Function + + Private Function AgregarMovimientosAFHijo(CveContratoHijo As Integer, ByRef ObjContratos As ClsContratos) As Boolean + Dim TieneError As Boolean = False + + 'BUSCA LOS ACTIVOS FIJOS VIGENTES + Dim Dt As DataTable = DtMovimientos.FiltraParametros($"(CodigoPS IS NULL AND Cantidad - CantidadDevolucion > 0) OR (CodigoPS IS NOT NULL AND SerieFolioDevolucion IS NULL)") + + Dim DtVentas As DataTable = Dt.FiltraParametros($"No = 0") + + For Each Dr As DataRow In DtVentas.Rows + Dim CveVenta As Integer = Dr("CveVenta").ToString.ToEntero + Dim CveMovimiento As Integer = Dr("CveMovimiento").ToString.ToEntero + + TieneError = Not ObjContratos.UpdateMovimientoContrato(CveContratoHijo, CveMovimiento) + + If Not TieneError Then + TieneError = Not ObjContratos.UpdateVentasContrato(CveContratoHijo, CveVenta) + End If + + If TieneError Then + Exit For + End If + Next + + If TieneError Then + Alert("Ocurrió un error al traspasar los activos fijos del contrato", TipoMensaje.MsgError) + End If + + Return TieneError + End Function + + 'Private Sub AgregarMovimientosAFHijo(CveContratoHijo As Integer) + ' 'BUSCA LOS ACTIVOS FIJOS VIGENTES + ' Dim Dt As DataTable = DtMovimientos.FiltraParametros($"(CodigoPS IS NULL AND Cantidad - CantidadDevolucion > 0) OR (CodigoPS IS NOT NULL AND SerieFolioDevolucion IS NULL)") + + + ' Dim DtVentas As DataTable = Dt.FiltraParametros($"No = 0") + + ' Dim CveAlmacenOrigen As Integer = DdlAlmacenOrigen.SelectedValue.ToEntero + ' Dim CveAlmacenDestino As Integer = DdlAlmacenDestino.SelectedValue.ToEntero + ' Dim CveMoneda As Integer = DdlMoneda.SelectedValue.ToEntero + + ' Dim CveConceptoSalida As Integer = 8 + ' Dim CveConceptoEntrada As Integer = 9 + ' Dim CveCliente As Integer = If(UsuarioActual.Empresa.Funcionalidad(146) = "1", -1, DdlCliente.SelectedValue.ToEntero) + + ' Dim ObjInv As New ClsInventarios() + ' Try + ' ObjInv.IniciaTransacSQL() + ' Dim TieneError As Boolean = False + + ' For Each Dr As DataRow In DtVentas.Rows + + ' Dim CveVentaAlmacen As Integer = Dr("CveVenta").ToString.ToEntero + + ' 'Movimiento de salida por traspaso al almacen destino + ' Dim CveMovimientoSalida As Integer = ObjInv.AddMovimiento(CveAlmacenDestino, CveConceptoSalida, CveMoneda, Now, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, DdlSubProyectoContrato.SelectedValue.ToEntero, -1, CveContrato:=CveContrato, CveCliente:=CveCliente, CveAlmacenDestino:=CveAlmacenOrigen) + + ' If CveMovimientoSalida > 0 Then + ' For Each Row As DataRow In Dt.FiltraParametros($"CvePS IS NOT NULL AND CveVenta = {CveVentaAlmacen}").Rows + + ' Dim Cantidad As Double = Row("Cantidad").ToString.ToDouble + ' Dim CvePS As Integer = Row("CvePS").ToString.ToEntero + ' Dim CveVentaDetalle As Integer = Row("CveVentaDetalle").ToString.ToEntero + ' Dim CveUnidadMedida As Integer = Row("CveUnidadMedida").ToString.ToEntero + ' Dim PU As Double = Row("PU").ToString.ToDouble + + ' If Not ObjInv.AddMovimientoDetalle(CveMovimientoSalida, Cantidad, CveUnidadMedida, CvePS, PU, -1) Then + ' TieneError = True + ' Exit For + ' End If + ' Next + ' Else + ' TieneError = True + ' Exit For + ' End If + + ' 'Movimeinto de entrada por traspaso al almacen origen + ' Dim CveMovimientoEntrada As Integer = ObjInv.AddMovimiento(CveAlmacenOrigen, CveConceptoEntrada, CveMoneda, Now, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, DdlSubProyectoContrato.SelectedValue.ToEntero, -1, CveContrato:=CveContratoHijo, CveCliente:=CveCliente, CveAlmacenDestino:=CveAlmacenDestino) + + ' If CveMovimientoEntrada > 0 Then + ' For Each Row As DataRow In Dt.FiltraParametros($"CvePS IS NOT NULL AND CveVenta = {CveVentaAlmacen}").Rows + + ' Dim Cantidad As Double = Row("Cantidad").ToString.ToDouble + ' Dim CvePS As Integer = Row("CvePS").ToString.ToEntero + ' Dim CveVentaDetalle As Integer = Row("CveVentaDetalle").ToString.ToEntero + ' Dim CveUnidadMedida As Integer = Row("CveUnidadMedida").ToString.ToEntero + ' Dim PU As Double = Row("PU").ToString.ToDouble + + ' If Not ObjInv.AddMovimientoDetalle(CveMovimientoEntrada, Cantidad, CveUnidadMedida, CvePS, PU, -1) Then + ' TieneError = True + ' Exit For + ' End If + ' Next + ' Else + ' TieneError = True + ' Exit For + ' End If + + ' Next + ' If TieneError Then + ' Alert("Ocurrió un error al traspasar los activos fijos", TipoMensaje.MsgAdvertencia) + ' ObjInv.RollBack() + ' Else + ' ObjInv.Commit() + ' End If + + ' Catch ex As Exception + ' ObjInv.RollBack() + ' OnError("Ocurrió un error al traspasar los activos fijos", ex) + ' End Try + ' ObjInv.Dispose() + + + 'End Sub + + + +#End Region + +#Region "FIANZAS" + Protected Sub LimpiarCamposModalFianzas() + txtFolioFianza.Text = "" + TxtModalAdjuntoArchivo.Text = "" + DdlFianza.SelectedValue = "-1" + txtFechaVenFianza.Text = DateTime.Today.ToShortDateString + End Sub + Protected Sub btnAgregarFianza_Click(sender As Object, e As EventArgs) + + LimpiarCamposModalFianzas() + EsEditarFianza = False + txth4Fianza.InnerText = "Agregar Fianza" + LnkDescargar.Visible = False + 'BtnGuardarFianza.Text = "Guardar" + UPModalFianza.Update() + Me.RegistraScript("$('#DvModalFianza').modal();") + 'GvFianzas.DataSource = DtTmpFianzas + 'GvFianzas.DataBind() + 'UpGvFianzas.Update() + End Sub + 'Protected Sub BtnGuardarFianza_Click(sender As Object, e As EventArgs) + + ' Dim dr As DataRow = DtTmpFianzas.NewRow() + + ' Dim Folio As String = txtFolioFianza.Text + ' Dim CveEstatus As Integer = DdlFianza.SelectedValue.ToEntero() + ' Dim Estatus As String = DdlFianza.SelectedItem.Text + + ' Dim TieneError As Boolean = False + + ' Dim Adjunto As String = "" + ' If TxtModalAdjuntoArchivo.getfiles.Archivos.Count > 0 Then + ' Dim ArchivoAdjunto As Archivo = TxtModalAdjuntoArchivo.getfiles.Archivos(0) + ' Adjunto = ArchivoAdjunto.filenameO + ' End If + + + ' If EsEditarFianza Then + ' DtTmpFianzas.Rows.RemoveAt(IndexFianzaEditar) + ' dr("CveContratoFianza") = GvFianzas.Rows(IndexFianzaEditar).DataKey("CveContratoFianza").ToString + ' dr("Folio") = Folio + ' dr("EstatusFianza") = Estatus + ' dr("CveEstatusFianza") = CveEstatus + ' dr("FechaVencimiento") = txtFechaVenFianza.Text + ' dr("Adjunto") = If(Adjunto = "", GvFianzas.Rows(IndexFianzaEditar).DataKey("Adjunto").ToString, Adjunto) + ' Else + ' dr("CveContratoFianza") = "-1" + ' dr("Folio") = Folio + ' dr("EstatusFianza") = Estatus + ' dr("CveEstatusFianza") = CveEstatus + ' dr("FechaVencimiento") = txtFechaVenFianza.Text + ' dr("Adjunto") = Adjunto + ' End If + + ' DtTmpFianzas.Rows.Add(dr) + ' GuardaAdjunto($"{Folio} - {txtFechaVenFianza.Text}") + + ' GvFianzas.DataSource = DtTmpFianzas + ' GvFianzas.DataBind() + ' UpGvFianzas.Update() + + ' LimpiarCamposModalFianzas() + ' Me.RegistraScript("$('#DvModalFianza').modal('hide');") + + 'End Sub + + + + Private Sub GuardaAdjunto(FolioFechaVencimiento As String) + If Not TxtModalAdjuntoArchivo.getfiles.Archivos.Count > 0 Then + Exit Sub + End If + Dim ArchivoAdjunto As Archivo = TxtModalAdjuntoArchivo.getfiles.Archivos(0) + If ArchivoAdjunto.filenameO.Length > 114 Then + Alert("El nombre del archivo excede los 115 caracteres permitidos. Por favor rectifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia) + Exit Sub + End If + + Try + Dim Path As String = String.Format("{0}\\{1}\\{2}\\{3}", UsuarioActual.Empresa.Ruta, "Contratos", "Fianzas", FolioFechaVencimiento) + DirectoryExistsCreate(Path) + Dim ArchivoDestino As String = String.Format("{0}\\{1}", Path, ArchivoAdjunto.filenameO) + If File.Exists(ArchivoDestino) Then + System.IO.File.Delete(ArchivoDestino) + End If + System.IO.File.Move(ArchivoAdjunto.FileUrl, ArchivoDestino) + Catch ex As Exception + Alert("Ocurrió un error al guardar el archivo Adjunto. Por favor vuelva a intentar.", TipoMensaje.MsgError) + End Try + End Sub + 'Private Sub DescargarAdjunto() + ' Dim filename As String = GvFianzas.Rows(IndexFianzaEditar).DataKey("Adjunto").ToString + ' If Not String.IsNullOrEmpty(filename) Then + ' Dim rutaAplicacion As String = HttpContext.Current.Server.MapPath(HttpContext.Current.Request.ApplicationPath) + ' Dim Path As String = String.Format("{0}\\{1}\\{2}\\{3}", UsuarioActual.Empresa.Ruta, "Contratos", "Fianzas", $"{GvFianzas.Rows(IndexFianzaEditar).DataKey("Folio").ToString} - {GvFianzas.Rows(IndexFianzaEditar).DataKey("FechaVencimiento").ToDate.ToShortDateString}") + ' Dim ArchivoDestino As String = String.Format("{0}\\{1}", Path, GvFianzas.Rows(IndexFianzaEditar).DataKey("Adjunto").ToString) + ' Dim toDownload As System.IO.FileInfo = New System.IO.FileInfo(ArchivoDestino) + ' If toDownload.Exists Then + ' Response.ClearContent() + ' Response.ClearHeaders() + ' Response.AddHeader("Content-Disposition", "attachment; filename=" + filename) + ' Response.ContentType = "application/octet-stream" + ' Response.WriteFile(ArchivoDestino) + ' Response.Flush() + ' Response.Close() + ' Response.End() + ' HttpContext.Current.ApplicationInstance.CompleteRequest() + ' End If + ' End If + 'End Sub + + Protected Sub LnkDescargar_Click(sender As Object, e As EventArgs) + 'DescargarAdjunto() + End Sub + 'Protected Sub GvFianzas_RowDeleting(sender As Object, e As GridViewDeleteEventArgs) + + ' DtTmpFianzas.Rows.RemoveAt(e.RowIndex) + ' GvFianzas.DataSource = DtTmpFianzas + ' GvFianzas.DataBind() + ' UpGvFianzas.Update() + + 'End Sub + Protected Sub imgEFianzaGv_Click(sender As Object, e As EventArgs) + LimpiarCamposModalFianzas() + EsEditarFianza = True + + Dim GvRow As GridViewRow = CType(((CType(sender, LinkButton)).NamingContainer), GridViewRow) + + IndexFianzaEditar = GvRow.DataItemIndex + + txtFolioFianza.Text = GvRow.DataKey("Folio").ToString() + DdlFianza.SelectedValue = GvRow.DataKey("CveEstatusFianza").ToString() + txtFechaVenFianza.Text = GvRow.DataKey("FechaVencimiento").ToString() + LnkDescargar.Visible = GvRow.DataKey("Adjunto").ToString <> "" + + txth4Fianza.InnerText = "Editar Fianza" + 'BtnGuardarFianza.Text = "Actualizar" + UPModalFianza.Update() + Me.RegistraScript("$('#DvModalFianza').modal();") + 'GvFianzas.DataSource = DtTmpFianzas + 'GvFianzas.DataBind() + 'UpGvFianzas.Update() + End Sub + Protected Sub CreaDtTmpFianzas() + DtTmpFianzas = New DataTable() + + + DtTmpFianzas.Columns.Add("CveContratoFianza", GetType(String)) + DtTmpFianzas.Columns.Add("Folio", GetType(String)) + DtTmpFianzas.Columns.Add("CveEstatusFianza", GetType(String)) + DtTmpFianzas.Columns.Add("EstatusFianza", GetType(String)) + DtTmpFianzas.Columns.Add("FechaVencimiento", GetType(String)) + DtTmpFianzas.Columns.Add("Adjunto", GetType(String)) + + DtTmpFianzasInicial = DtTmpFianzas.Copy + + 'GvFianzas.DataSource = DtTmpFianzas + 'GvFianzas.DataBind() + 'UpGvFianzas.Update() + End Sub + + Protected Function GuardaFianzas(ObjContrato As ClsContratos) As Boolean + + Dim TieneError As Boolean = False + + For Each row As DataRow In DtTmpFianzas.Rows + Dim Folio As String = row("Folio").ToString() + Dim CveEstatus As Integer = row("CveEstatusFianza").ToString().ToEntero + Dim FechaVen As Date = Date.Parse(row("FechaVencimiento").ToString()) + Dim Adjunto As String = row("Adjunto").ToString() + + ' Si la cve es -1 es nuevo y lo agrega + If row("CveContratoFianza").ToString() = "-1" Then + + If Not ObjContrato.AddContratoFianza(CveContrato, Folio, CveEstatus, FechaVen, Adjunto) Then + TieneError = True + Exit For + End If + Else + Dim CveFianza As Integer = row("CveContratoFianza").ToString().ToEntero + + If Not ObjContrato.UpdateContratoFianza(CveFianza, Folio, CveEstatus, FechaVen, Adjunto) Then + TieneError = True + Exit For + End If + + End If + Next + ' Compara si aun existe la fianza, si ya no existe la elimina + For Each row As DataRow In DtTmpFianzasInicial.Rows + + Dim CveFianza As Integer = row("CveContratoFianza").ToString().ToEntero + Dim filtro As String = String.Format("CveContratoFianza ={0}", CveFianza) + + If DtTmpFianzas.FiltraParametros(filtro).Rows.Count = 0 Then + TieneError = Not ObjContrato.RemoveContratoFianza(CveFianza) + Exit For + End If + Next + + Return Not TieneError + End Function + + Protected Sub LnkDescargaAdjunto_Click(sender As Object, e As EventArgs) + Dim GvRow As GridViewRow = CType(((CType(sender, LinkButton)).NamingContainer), GridViewRow) + IndexFianzaEditar = GvRow.DataItemIndex + ' DescargarAdjunto() + End Sub + Protected Sub GvFianzas_RowDataBound(sender As Object, e As GridViewRowEventArgs) + If e.Row.RowType = DataControlRowType.DataRow Then + If e.Row.DBCampo("Adjunto").ToString <> "" Then + e.Row.FCLinkButton("LnkDescargaAdjunto").Visible = True + Dim lb As LinkButton = CType(e.Row.FindControl("LnkDescargaAdjunto"), LinkButton) + ScriptManager.GetCurrent(Me).RegisterPostBackControl(lb) + End If + End If + End Sub + +#End Region + +#Region "CONVENIO DE PRECIO FIJO" + Protected Sub CargaConvenioPrecioFijo() + '12/04/2018 - oculta campo de licitacion, portlet finanzas y campo tipo de garantia + trLicitacion.Visible = False + 'DivFianzas.Visible = False + 'DivTipoGarantia.Visible = False + + UpGral.Update() + End Sub +#End Region + +#Region "NOMENCLATURA CONTRATOS" + Protected Sub GetNoContratoNuevo() + Dim ObjContratos As New ClsContratos() + + 'Dim TipoContrato As Integer = DdlTipoContrato.SelectedValue.ToEntero() + + + Dim SufijoContrato As String = "" + + Select Case TipoContrato + Case 7 'Contrato Comodato + SufijoContrato = "COM" + Case 8 'Contrato Consignacion + SufijoContrato = "CONSIG" + Case 10 'Contrato de Financiamiento + SufijoContrato = "FIN" + Case 13 'Contrato Servicio Administrado de Impresion (?) + SufijoContrato = "MPS" + Case 28 'Convenio Precio Fijo + SufijoContrato = "CON" + End Select + + Dim Serie As String = String.Format("-{0}-{1}", DateTime.Today.Year, SufijoContrato) + + If ObjContratos.GetContratoNomenclatura(Serie, UsuarioActual.CveEmpresa) Then + TxtNumeroContrato.Text = ObjContratos.DtResultados.Rows(0)("NoContrato").ToString + End If + + ObjContratos.Dispose() + End Sub +#End Region + +#Region "IMPUESOS LOCALES" + 'Protected Sub ChkImpuestosLocales_CheckedChanged(sender As Object, e As EventArgs) + ' If ChkImpuestosLocales.Checked Then + ' GvImpuestosLocales.Visible = True + ' Else + ' GvImpuestosLocales.Visible = False + ' End If + 'End Sub + 'Public Sub CargaImpuestosLocales() + ' Dim ObjContratos As New ClsContratos + ' If ObjContratos.GetContratoImpuestosLocales(CveContrato, UsuarioActual.CveEmpresa) Then + ' GvImpuestosLocales.DataSource = ObjContratos.DtResultados + ' End If + ' ObjContratos.Dispose() + ' GvImpuestosLocales.DataBind() + ' UpImpuestos.Update() + 'End Sub + + +#End Region + + + + + +End Class + +