From 19dc1156cf6d78814ba4423ab8ef0252bd77f336 Mon Sep 17 00:00:00 2001 From: rrene Date: Sat, 5 Dec 2020 12:02:46 -0700 Subject: [PATCH 01/39] funcionaldiad de franquicias, mejoras --- Ventas/ActualizarPrecios.aspx | 3 +- Ventas/ActualizarPrecios.aspx.vb | 49 +++++++++++++++++++------------- 2 files changed, 30 insertions(+), 22 deletions(-) diff --git a/Ventas/ActualizarPrecios.aspx b/Ventas/ActualizarPrecios.aspx index 7fa9d0f4f..831afae7e 100644 --- a/Ventas/ActualizarPrecios.aspx +++ b/Ventas/ActualizarPrecios.aspx @@ -46,8 +46,7 @@
- - +
diff --git a/Ventas/ActualizarPrecios.aspx.vb b/Ventas/ActualizarPrecios.aspx.vb index b63f2978b..22ef5da09 100644 --- a/Ventas/ActualizarPrecios.aspx.vb +++ b/Ventas/ActualizarPrecios.aspx.vb @@ -221,7 +221,7 @@ Partial Class Ventas_ActualizarPrecios Next - If Correcto Then + If Correcto AndAlso Not TieneError Then Alert("Los Precios de lista de los Productos/Servicios se actualizaron correctamente") End If @@ -531,29 +531,38 @@ Partial Class Ventas_ActualizarPrecios Private Function ActualizarPreciosFranquicia(ObjPS As ClsProductosServicios, Codigo As String, PS As String, Precio As Decimal, PrecioMinimo As Decimal, PrecioLista As String) As Boolean Dim FranquiciasStr As String = UsuarioActual.Empresa.Funcionalidad(563) - Dim Franquicias = FranquiciasStr.Split(","c) - Dim Porcentaje As Decimal = If(TxtPorcentaje.Text = "", -1, TxtPorcentaje.Text.ToDecimal) Dim StrMsg As New StringBuilder - For Each Franquicia In Franquicias - Dim CveFranquicia As Integer = Franquicia.ToEntero - Dim CvePS As Integer = GlobalDTPS(CveFranquicia, Codigo:=Codigo).FiltroPrimeroValor("CvePS", "").ToEntero - Dim CvePrecioLisa As Integer = GlobalDTPrecioListas(CveFranquicia).FiltroPrimeroValor("CvePrecioLista", String.Format("PrecioLista = '{0}'", PrecioLista)).ToEntero + Dim StrMsgError As New StringBuilder + If FranquiciasStr <> "" Then - If CvePS <= 0 Then - Dim EmpresaFranquicia As String = GlobalDTEmpresas(CveEmpresa:=CveFranquicia).FiltroPrimeroValor("Empresa") - StrMsg.AppendFormat("El producto '{0}' no se encuentra en la Franquicia '{1}'", PS, EmpresaFranquicia) + Dim Franquicias = FranquiciasStr.Split(","c) + Dim Porcentaje As Decimal = If(TxtPorcentaje.Text = "", -1, TxtPorcentaje.Text.ToDecimal) - End If - If CvePrecioLisa <= 0 Then - Dim EmpresaFranquicia As String = GlobalDTEmpresas(CveEmpresa:=CveFranquicia).FiltroPrimeroValor("Empresa") - StrMsg.AppendFormat("El precio lista '{0}' no existe en la Franquicia '{1}'", DdlPrecioLista.SelectedItem.Text, EmpresaFranquicia) - End If - If CvePrecioLisa > 0 AndAlso CvePS > 0 AndAlso Not ObjPS.UpdatePSPreciosLista(Precio, CvePrecioLisa, Porcentaje, CvePS, UsuarioActual.CveUsuario, DateTime.Now, If(RblTipo.SelectedValue = "Imp", True, False), PrecioMinimo:=PrecioMinimo) Then - StrMsg.AppendFormat("No se pudo actualizar el producto") - End If - Next + For Each Franquicia In Franquicias + Dim CveFranquicia As Integer = Franquicia.ToEntero + Dim CvePS As Integer = GlobalDTPS(CveFranquicia, Codigo:=Codigo).FiltroPrimeroValor("CvePS", "").ToEntero + Dim CvePrecioLisa As Integer = GlobalDTPrecioListas(CveFranquicia).FiltroPrimeroValor("CvePrecioLista", String.Format("PrecioLista = '{0}'", PrecioLista)).ToEntero - If StrMsg.ToString = "" Then + If CvePS <= 0 Then + Dim EmpresaFranquicia As String = GlobalDTEmpresas(CveEmpresa:=CveFranquicia).FiltroPrimeroValor("Empresa") + StrMsg.AppendFormat("El producto '{0}' no se encuentra en la Franquicia '{1}'
", PS, EmpresaFranquicia) + + End If + 'If CvePrecioLisa <= 0 Then + ' Dim EmpresaFranquicia As String = GlobalDTEmpresas(CveEmpresa:=CveFranquicia).FiltroPrimeroValor("Empresa") + ' StrMsg.AppendFormat("El precio lista '{0}' no existe en la Franquicia '{1}'
", DdlPrecioLista.SelectedItem.Text, EmpresaFranquicia) + 'End If + If CvePrecioLisa > 0 AndAlso CvePS > 0 AndAlso Not ObjPS.UpdatePSPreciosLista(Precio, CvePrecioLisa, Porcentaje, CvePS, UsuarioActual.CveUsuario, DateTime.Now, If(RblTipo.SelectedValue = "Imp", True, False), PrecioMinimo:=PrecioMinimo) Then + StrMsgError.AppendFormat("No se pudo actualizar el producto") + End If + Next + + End If + + If StrMsgError.ToString = "" Then + If StrMsg.ToString <> "" Then + Alert(StrMsg.ToString, TipoMensaje.MsgAdvertencia) + End If Return False Else Return True From a62b913a49bf51f7e63a70085baa51b3b76ea9cf Mon Sep 17 00:00:00 2001 From: Antonio Gonzalez Date: Sat, 5 Dec 2020 21:06:15 -0700 Subject: [PATCH 02/39] parametro de empresas agregado al reporte de anomalias --- App_Code/ClsInventarios.vb | 1 + App_Code/ClsPaginas.vb | 2 +- Compras/PopUpVerFactura.aspx.vb | 449 ++++++++++++++++---------------- 3 files changed, 227 insertions(+), 225 deletions(-) diff --git a/App_Code/ClsInventarios.vb b/App_Code/ClsInventarios.vb index 61f19b032..de61d09e9 100644 --- a/App_Code/ClsInventarios.vb +++ b/App_Code/ClsInventarios.vb @@ -2675,6 +2675,7 @@ Public Class ClsInventarios DataAdapter("PA_Inv_InventarioFisicoResultadoAvance") With SqlAdapter.SelectCommand.Parameters .Add("@CveInventarioFisico", SqlDbType.Int).Value = CveInventarioFisico + .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa End With Try SqlAdapter.Fill(Data) diff --git a/App_Code/ClsPaginas.vb b/App_Code/ClsPaginas.vb index a704afaf3..1a74dda78 100644 --- a/App_Code/ClsPaginas.vb +++ b/App_Code/ClsPaginas.vb @@ -4847,7 +4847,7 @@ Public Class ClsPaginas PaginaDict.Add("/RH/RepVacaciones.aspx".ToUpper(), 422) PaginaDict.Add("/RH/CatChecadorTipo.aspx".ToUpper(), 427) PaginaDict.Add("/RH/CatChecadorHorarios.aspx".ToUpper(), 428) - PaginaDict.Add("/RH/CatChecadorEstaciones.aspx".ToUpper(), 627) + PaginaDict.Add("/RH/RepChecadorPreAsistencia.aspx".ToUpper(), 628) PaginaDict.Add("/RH/CatCaptaciones.aspx".ToUpper(), 629) PaginaDict.Add("/RH/RepUniformes.aspx".ToUpper(), 630) diff --git a/Compras/PopUpVerFactura.aspx.vb b/Compras/PopUpVerFactura.aspx.vb index a9908b91c..e09ec3014 100644 --- a/Compras/PopUpVerFactura.aspx.vb +++ b/Compras/PopUpVerFactura.aspx.vb @@ -6,7 +6,7 @@ Imports System.Data Imports Microsoft.Reporting.WebForms Imports System.Xml Imports System.IO -Imports iTextSharp.text +Imports iTextSharp.text Imports iTextSharp.text.pdf Imports Stimulsoft.Report @@ -17,8 +17,8 @@ Imports Stimulsoft.Report.Web Partial Class PopUpVerFactura Inherits ClsPaginas - Private Shared missing As Object = System.Reflection.Missing.Value - + Private Shared missing As Object = System.Reflection.Missing.Value + #Region " PROPIEDADES " Public Property DtMovimientos() As DataTable Get @@ -85,18 +85,18 @@ Partial Class PopUpVerFactura End If Return "" End Get - End Property - 'Private Property SessionPorImpresion As Boolean - ' Get - ' Return CBool(IfNull(ViewState("SessionPorImpresion"), False, ViewState("SessionPorImpresion"))) - ' End Get - ' Set(value As Boolean) - ' ViewState("SessionPorImpresion") = value - ' End Set - 'End Property + End Property + 'Private Property SessionPorImpresion As Boolean + ' Get + ' Return CBool(IfNull(ViewState("SessionPorImpresion"), False, ViewState("SessionPorImpresion"))) + ' End Get + ' Set(value As Boolean) + ' ViewState("SessionPorImpresion") = 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 'CREA EL OBJECTO USUARIO A PARTIR DEL TOKEN @@ -201,10 +201,10 @@ Partial Class PopUpVerFactura End If - End Sub - + End Sub + #Region "U S U A R I O - T O K E N" - + Private Function ValidaUsuarioSistema(CveEmpresa As Integer, Optional CveUsuario As Integer = 100) As Usuario Dim UsuarioToken As Usuario = Nothing @@ -238,9 +238,9 @@ Partial Class PopUpVerFactura UsuarioToken.Empresa = ObjEmpresa.Empresa End If ObjEmpresa.Dispose() - End Sub + End Sub #End Region - + Private Sub SeleccionaReporte(UrlParametros As Hashtable) 'DESCARGA COMPROBANTE @@ -501,10 +501,10 @@ Partial Class PopUpVerFactura URLParametros.Add(P2(0).ToString.ToUpper, P2(1)) Next Return URLParametros - End Function - + End Function + #Region "OP = CORT - IMPRIMIR CORTE" - + Private Sub ImprimeCorte(CveCorte As Integer, Formato As String) Dim ObjVenta As New ClsVentas Dim ObjPuntoVenta As New ClsPuntoVenta @@ -549,10 +549,10 @@ Partial Class PopUpVerFactura ImprimirPDF("Empresas/Grales/Formatos/RepCortes.rdlc", lrds, params, "ReporteCortes", Formato) End If - End Sub - + End Sub + #End Region - + #Region " OP = FACTURA - IMPRIME COMPRA" Private Sub DescargaComprobante(Parametros As Hashtable) If Parametros("COMPROBANTE") IsNot Nothing Then @@ -591,9 +591,9 @@ Partial Class PopUpVerFactura End If Archivo = Nothing End If - End Sub + End Sub #End Region - + #Region "OP DesXmlVIA- DESCARGAR XML DE VIATICOS" Private Sub DescargaXMLViaticos(Parametros As Hashtable) If Parametros("SERIEFOLIO") IsNot Nothing AndAlso Parametros("SERIEFOLIO").ToString <> "" Then @@ -613,10 +613,10 @@ Partial Class PopUpVerFactura End If Archivo = Nothing End If - End Sub - + End Sub + #End Region - + #Region "OP DesXmlNom- DESCARGAR XML DE UTILIDADES" Private Sub DescargaXMLUtilidades(Parametros As Hashtable) If Parametros("SERIEFOLIO") IsNot Nothing AndAlso Parametros("SERIEFOLIO").ToString <> "" Then @@ -636,9 +636,9 @@ Partial Class PopUpVerFactura End If Archivo = Nothing End If - End Sub + End Sub #End Region - + #Region "OP = 'CONG' - IMPRIME GASTO DE CONTRATO" Private Sub ImprimeGastoContrato(CveContrato As Integer, CveContratoGasto As Integer) Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta)) @@ -680,10 +680,10 @@ Partial Class PopUpVerFactura params.Add(New ReportParameter("LogoPath", "")) End If ImprimirPDF("Empresas/Grales/Formatos/ContratoGasto.rdlc", dt, params, $"{Nombre}-Gastos", Formato:="PDF") - End Sub + End Sub #End Region - - + + #Region "OP = 'CIC' - IMPRIME FORMATO CICOVISA" Private Sub ImprimeFormatoCICOVISA(CveVenta As Integer) If CveVenta > 0 Then @@ -720,10 +720,10 @@ Partial Class PopUpVerFactura ImprimirPDF("Empresas/Grales/Formatos/Cicovisa.rdlc", Dt, params, String.Format("Formato Cicovisa -{0}", Now.ToDateTime.ToShortDateString)) End If End If - End Sub - + End Sub + #End Region - + #Region "OP = 'CARPO' - IMPRIME FORMATO CARTA PORTE" Private Sub ImprimeFormatoCartaPorte(CveMovimiento As Integer) If CveMovimiento > 0 Then @@ -848,12 +848,12 @@ Partial Class PopUpVerFactura ImprimirPDF("Empresas/Grales/Formatos/CartaPorte.rdlc", Dt, params, String.Format("Carta Porte -{0}", Now.ToDateTime.ToShortDateString)) End If End If - End Sub - + End Sub + #End Region - + #Region "OP = 'DesXmlTra' - IMPRIME XML TRASLADO" - + Private Sub DescargaXMLTraslado(Parametros As Hashtable) If Parametros("CVEMOVIMIENTO") IsNot Nothing AndAlso Parametros("CVEMOVIMIENTO").ToString.ToEntero > 0 Then Dim Exten As String = If(Parametros("EXT").ToString.ToLower = "xml", "xml", "pdf") @@ -872,12 +872,12 @@ Partial Class PopUpVerFactura End If Archivo = Nothing End If - End Sub - + End Sub + #End Region - + #Region "OP = 'DesPdfTra' - IMPRIME PDF TRASLADO" - + Private Sub DescargaPDFTraslado(Parametros As Hashtable) If Parametros("CVEMOVIMIENTO") IsNot Nothing AndAlso Parametros("CVEMOVIMIENTO").ToString.ToEntero > 0 Then Dim Exten As String = If(Parametros("EXT").ToString.ToLower = "xml", "xml", "pdf") @@ -896,10 +896,10 @@ Partial Class PopUpVerFactura End If Archivo = Nothing End If - End Sub - + End Sub + #End Region - + #Region " OP = 'Vta,Fact' - IMPRIME PDF VENTAS" Private Sub DescargaFacturaVenta(Parametros As Hashtable) If Parametros("CVEVENTA") IsNot Nothing AndAlso Parametros("CVEVENTA").ToString.ToEntero > 0 Then @@ -1209,11 +1209,11 @@ Partial Class PopUpVerFactura End If End If - End Sub + End Sub #End Region - + #Region " - OP = 'Alm' - REPORTE ENTRADAS ALMACEN " - + Private Sub CargaMovimientosAlmacen(CveMovimiento As Integer) Dim ObjInventarios As New ClsInventarios @@ -1284,8 +1284,8 @@ Partial Class PopUpVerFactura Dim CveMovimientoRelacionado As Integer = -1 Dim FolioRelacionado As String = "" - Dim CveConceptoMovtoRelacionado As Integer = -1 - + Dim CveConceptoMovtoRelacionado As Integer = -1 + Dim CveTipoAlmacen As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveTipoAlmacen", $"CveAlmacen = {CveAlmacen}").ToString.ToEntero 'VERIFICA SI TIENE MOVIMIENTO VIRTUAL RELACIONADO @@ -1296,7 +1296,7 @@ Partial Class PopUpVerFactura CveConceptoMovtoRelacionado = 37 ElseIf CveConcepto.Contiene(36, 37) Then FolioRelacionado = ObjInventarios.DtResultados.FiltroPrimeroValor("FolioRelacionado") - CveConceptoMovtoRelacionado = 3 + CveConceptoMovtoRelacionado = 3 ElseIf CveConcepto.Contiene(2) AndAlso CveTipoAlmacen.Contiene(24, 25) Then FolioRelacionado = ObjInventarios.DtResultados.FiltroPrimeroValor("FolioRelacionado") CveConceptoMovtoRelacionado = 3 @@ -1308,10 +1308,10 @@ Partial Class PopUpVerFactura Dim CantidadProductos As Decimal = 0 Dim CantidadUsados As Decimal = 0 - If CveConcepto = 3 Or CveConcepto = 18 Or CveConcepto = 30 Or CveConcepto = 34 Or CveConcepto = 35 Or CveConcepto = 16 Or CveConcepto = 7 Then 'SALIDA Y DEVOLUCION DEL CLIENTE + If CveConcepto = 3 Or CveConcepto = 18 Or CveConcepto = 30 Or CveConcepto = 34 Or CveConcepto = 35 Or CveConcepto = 16 Or CveConcepto = 7 Or CveConcepto = 40 Then 'SALIDA Y DEVOLUCION DEL CLIENTE If ObjInventarios.GetMovimientosDetalleImpresion(CveMovimiento, UsuarioActual.CveEmpresa) Then DtMovimientos = ObjInventarios.DtResultados - + Alert("asdf") DtMovimientos.Columns("No").AutoIncrement = True DtMovimientos.Columns("No").AutoIncrementSeed = DtMovimientos.Rows.Count + 1 DtMovimientos.Columns("No").AutoIncrementStep = 1 @@ -1355,27 +1355,27 @@ Partial Class PopUpVerFactura End If End If - If UsuarioActual.CveEmpresa = 140 AndAlso CveCompra > 0 Then - If ObjInventarios.RecepcionAlmacenGet(CveCompra, -1, UsuarioActual.CveEmpresa) AndAlso ObjInventarios.DtResultados.Rows.Count > 0 Then - Dim DtFaltante As DataTable = ObjInventarios.DtResultados.FiltraParametros("CantidadF > 0") - If DtFaltante.Rows.Count > 0 Then - Dim SbPendientes As New StringBuilder - SbPendientes.AppendFormat("Los siguientes productos quedaron pendientes por recibir:") - For Each Row As DataRow In DtFaltante.Rows - SbPendientes.AppendFormat(" PS:{0} Cant.:{1:N0},", Row("CodigoPS"), Row("CantidadF")) - Next - SbPendientes.Remove(SbPendientes.Length - 1, 1) - - SbPendientes.AppendFormat(" Total Cant.:{0:N0}, Total Costo:{1:N2}", DtFaltante.SUM("CantidadF"), DtFaltante.SUM("Total")) - - If Not String.IsNullOrEmpty(Observaciones) Then - Observaciones = SbPendientes.ToString() + ".
" + Observaciones - Else - Observaciones = SbPendientes.ToString() - End If - End If - DtFaltante.Dispose() - End If + If UsuarioActual.CveEmpresa = 140 AndAlso CveCompra > 0 Then + If ObjInventarios.RecepcionAlmacenGet(CveCompra, -1, UsuarioActual.CveEmpresa) AndAlso ObjInventarios.DtResultados.Rows.Count > 0 Then + Dim DtFaltante As DataTable = ObjInventarios.DtResultados.FiltraParametros("CantidadF > 0") + If DtFaltante.Rows.Count > 0 Then + Dim SbPendientes As New StringBuilder + SbPendientes.AppendFormat("Los siguientes productos quedaron pendientes por recibir:") + For Each Row As DataRow In DtFaltante.Rows + SbPendientes.AppendFormat(" PS:{0} Cant.:{1:N0},", Row("CodigoPS"), Row("CantidadF")) + Next + SbPendientes.Remove(SbPendientes.Length - 1, 1) + + SbPendientes.AppendFormat(" Total Cant.:{0:N0}, Total Costo:{1:N2}", DtFaltante.SUM("CantidadF"), DtFaltante.SUM("Total")) + + If Not String.IsNullOrEmpty(Observaciones) Then + Observaciones = SbPendientes.ToString() + ".
" + Observaciones + Else + Observaciones = SbPendientes.ToString() + End If + End If + DtFaltante.Dispose() + End If End If If CveTipoAlmacen = 20 Then @@ -1535,38 +1535,38 @@ 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("Observaciones", Observaciones)) - 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") + 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("Observaciones", Observaciones)) + 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))) @@ -1616,6 +1616,7 @@ Partial Class PopUpVerFactura 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("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))) If (UsuarioActual.CveEmpresa = 72) Then @@ -1624,7 +1625,7 @@ Partial Class PopUpVerFactura ImprimirPDF("Empresas/Grales/Formatos/EntradaSalida.rdlc", DtMovimientos, params, String.Format("Entrada de Almacen - {0}", Folio.ToString), RDSName:="DsInventarios") End If - Case 3, 16, 37 ' S A L I D A S + Case 3, 16, 37, 40 ' S A L I D A S 'Dim Archivo As New System.IO.FileInfo(String.Format("Empresas/{0}/Formatos/Salidas.rdlc", 72)) 'Dim Imagen As New System.IO.FileInfo(String.Format("Empresas/{0}/Logo.png", 72)) Dim Archivo As New System.IO.FileInfo(String.Format("{0}Formatos/Salidas.rdlc", UsuarioActual.Empresa.Ruta)) @@ -1632,7 +1633,7 @@ Partial Class PopUpVerFactura Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta)) Dim params As New List(Of ReportParameter) Dim concepto As String = "" - If CveConcepto = 3 Then + If CveConcepto.Contiene(3, 40) Then concepto = "SALIDA DE ALMACÉN" ElseIf CveConcepto = 37 Then concepto = "SALIDA VIRTUAL" @@ -1797,7 +1798,7 @@ Partial Class PopUpVerFactura 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)) + params.Add(New ReportParameter("FolioRelacionado", FolioRelacionado)) params.Add(New ReportParameter("UsuarioRegistro", UsuarioRegistro)) ImprimirPDF(UsuarioActual.Empresa.Ruta & "Formatos/Salidas.rdlc", DtMovimientos, params, String.Format("Salida de Almacen - {0}", Folio.ToString), RDSName:="DsInventarios") @@ -2323,7 +2324,7 @@ 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 @@ -3327,10 +3328,10 @@ Partial Class PopUpVerFactura ImprimirbytesPDF(reporte, $"OrdenCompra-{Folio.ToString}") End If End If - End Sub - + End Sub + #End Region - + #Region "OP = 'VAL' - IMPRIME PDF VAL" Private Sub GenerarPDFVale(CveVale As Integer) @@ -3360,9 +3361,9 @@ Partial Class PopUpVerFactura 'End If End If ObjAF.Dispose() - End Sub + End Sub #End Region - + #Region "OP = 'OS' - IMPRIMIR PDF OS" Private Sub GenerarPDFOS(CveOS As Integer) Dim ObjOS As New ClsOS() @@ -3481,9 +3482,9 @@ Partial Class PopUpVerFactura TmpDTMaterialesOS.Columns.Add("Clasificacion", GetType(String)) TmpDTMaterialesOS.Columns.Add("PS", GetType(String)) TmpDTMaterialesOS.Columns.Add("UM", GetType(String)) - End Sub + End Sub #End Region - + #Region "OP = 'OI' - Crear Archivo " Private Sub CrearArchivo(Archivo As String) Dim ObjEventos As New ClsOIEventos @@ -3492,11 +3493,11 @@ Partial Class PopUpVerFactura Dim file As System.IO.FileInfo = New System.IO.FileInfo(path) '-- if the file exists on the server DescargarArchivo(file) - End Sub - - + End Sub + + #End Region - + #Region "OP = 'Contratos' - Crear Archivo " Private Sub CrearArchivoContratos(Archivo As String) @@ -3504,11 +3505,11 @@ Partial Class PopUpVerFactura Dim file As System.IO.FileInfo = New System.IO.FileInfo(Archivo) '-- if the file exists on the server DescargarArchivo(file) - End Sub - - + End Sub + + #End Region - + #Region "OP = 'OI' - Descargar Archivo " Private Sub DescargarArchivo(File As System.IO.FileInfo) If File.Exists Then 'set appropriate headers @@ -3538,11 +3539,11 @@ Partial Class PopUpVerFactura Alert("Ocurrio un error al descargar el archivo", TipoMensaje.MsgAdvertencia, "window.close()") End If 'nothing in the URL as HTTP GET - End Sub + End Sub #End Region - + #Region "OP = 'AFR' - AF" - + Private Sub ImprimirPDFAFR(CveAFR As Integer, Tipo As Integer) Dim ObjAF As New ClsAF 'Dim ObjSubProyecto As New ClsSubProyectos @@ -3646,7 +3647,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)) @@ -3729,9 +3730,9 @@ Partial Class PopUpVerFactura ImprimirPDF(UsuarioActual.Empresa.Ruta & "Formatos/ResguardoAF.rdlc", dtVC, params, NomArchivo) - End Sub + End Sub #End Region - + #Region "OP = 'POL' " Private Sub ImprimirPolizaPDF(IdPoliza As Integer) 'Dim ObjConta As New ClsContabilidad @@ -3770,9 +3771,9 @@ Partial Class PopUpVerFactura ObjPoliza.Dispose() - End Sub + End Sub #End Region - + #Region "OP = 'CAN' - CANCELACION" Public Sub ImprimeCancelacion(CveVenta As Integer) Dim ObjVentas As New ClsVentas @@ -3797,9 +3798,9 @@ Partial Class PopUpVerFactura End If ObjVentas.Dispose() - End Sub + End Sub #End Region - + #Region "OP = 'DC' - DEPOSITOS CAJA" Private Sub CargaDepositosCaja(CveIE As Integer, CuentaCaja As String, CuentaDeposito As String) Dim Archivo As New System.IO.FileInfo(String.Format("{0}Formatos/DepositoCaja.rdlc", UsuarioActual.Empresa.Ruta)) @@ -3826,11 +3827,11 @@ Partial Class PopUpVerFactura ObjIE.Dispose() - End Sub + End Sub #End Region - + #Region "I E C H E Q U E S" - + Private Sub ImprimirIE(CveIE As Integer, CveEmpresa As Integer) Dim CveTipoTransaccion = -1 Dim ObjIE As New ClsBancos() @@ -4237,21 +4238,21 @@ Partial Class PopUpVerFactura ParamComprobacion.Dispose() ObjIE.Dispose() - End Sub - + End Sub + #End Region - + #Region "OP = RECIBO DE PAGOS" Private Sub ImprimirReciboDePagos(CveIE As Integer, CveVenta As Integer) PDFReciboDePagos(CveVenta, CveIE, -1) - End Sub + End Sub #End Region - + #Region "OP = VTA - PyME" - - ' 04/05/2018 - Pruebas de impresion de factura PyME + + ' 04/05/2018 - Pruebas de impresion de factura PyME Private Sub GeneraPDFVtaPyMe(Venta As Modelos.Factura, Optional Formato As String = "PDF") Dim Directorio1 As String = String.Format("{0}Empresas\{1}\Formatos\Factura.mrt", ModExtensiones.DirectorioBaseEmpresas, UsuarioActual.CveEmpresa) Dim File As FileInfo = New FileInfo(Directorio1) @@ -4306,9 +4307,9 @@ Partial Class PopUpVerFactura Else RegistraScript("alert('No hay un formato de factura predefinido,favor de comunicar a soporte tecnico')") End If - End Sub + End Sub #End Region - + #Region "OP = ENTREGAS - Entregas por realizar" Public Sub ImprimeEntregasPorRealizar(CveAsignacionEntrega As Long, pUsuarioEntregar As String) Dim Correcto As Boolean = False @@ -4331,79 +4332,79 @@ Partial Class PopUpVerFactura End Sub #End Region -#Region "OP = Etiqueta - Etiquetas de recepcion" - Private Sub ImprimirEtiqueta(CveMovimiento As Integer, Modalidad As String) - - Dim ObjInventarios As New ClsInventarios - - Dim All As Byte() - Using ms As New MemoryStream - Using d As New Document - Using Copy As New PdfCopy(d, ms) - d.Open() - If ObjInventarios.GetMovimientosDetalle(CveMovimiento, UsuarioActual.CveEmpresa) Then - If ObjInventarios.DtResultados IsNot Nothing Then - For Each DetalleRow As DataRow In ObjInventarios.DtResultados.Rows - Dim CvePS As Integer = DetalleRow.Item("CvePS").ToString.ToEntero - Dim Lote As String = DetalleRow.Item("Lote").ToString - Dim FechaCaducidad As Date = DetalleRow.Item("FechaCaducidad").ToString.ToDate - Dim PS As String = String.Format("{0} - {1}", DetalleRow.Item("Codigo").ToString, DetalleRow.Item("PS").ToString) - If Modalidad = "Individual" Then - Dim reporteByte As Byte() = GenerarEtiqueta(CvePS, Lote, FechaCaducidad, PS) - - Dim reader As New PdfReader(reporteByte) - Dim Paginas As Integer = reader.NumberOfPages - Dim Contador As Integer = 0 - While Contador < Paginas - Contador += 1 - Copy.AddPage(Copy.GetImportedPage(reader, Contador)) - End While - Else - Dim Cant As Integer = DetalleRow.Item("Cantidad").ToString.ToEntero - 1 - - For contador As Integer = 0 To Cant - Dim reporteByte As Byte() = GenerarEtiqueta(CvePS, Lote, FechaCaducidad, PS) - - Dim reader As New PdfReader(reporteByte) - Dim Paginas As Integer = reader.NumberOfPages - Dim Cont As Integer = 0 - While Cont < Paginas - Cont += 1 - Copy.AddPage(Copy.GetImportedPage(reader, Cont)) - End While - Next - End If - Next - End If - End If - d.Close() - - End Using - End Using - All = ms.ToArray() - End Using - ImprimirbytesPDF(All, "Etiquetas") - - - If Modalidad = "Individual" Then - Else - - End If - ObjInventarios.Dispose() - End Sub - - Private Function GenerarEtiqueta(CvePS As Integer, Lote As String, FechaCaducidad As Date, PS As String) As Byte() - Dim QrDescarga As String = "" - Dim Cfdi As New RVCFDI33.GeneraCFDI() - Dim b As Byte() = Cfdi.ConvertirQrCode(String.Format("?CvePS={0}&Lote={1}&Fecha={2}", CvePS, Lote, Format(FechaCaducidad, "dd/MM/yyyy").ToString())) - QrDescarga = Convert.ToBase64String(b) - Dim params As New List(Of ReportParameter) - params.Add(New ReportParameter("QR", QrDescarga)) - params.Add(New ReportParameter("PS", PS)) - params.Add(New ReportParameter("Lote", Lote)) - params.Add(New ReportParameter("FechaCad", FechaCaducidad.ToString())) - Return StreamPDF("Empresas/Grales/Formatos/EtiquetaDeRecepcion.rdlc", New DataTable, params) +#Region "OP = Etiqueta - Etiquetas de recepcion" + Private Sub ImprimirEtiqueta(CveMovimiento As Integer, Modalidad As String) + + Dim ObjInventarios As New ClsInventarios + + Dim All As Byte() + Using ms As New MemoryStream + Using d As New Document + Using Copy As New PdfCopy(d, ms) + d.Open() + If ObjInventarios.GetMovimientosDetalle(CveMovimiento, UsuarioActual.CveEmpresa) Then + If ObjInventarios.DtResultados IsNot Nothing Then + For Each DetalleRow As DataRow In ObjInventarios.DtResultados.Rows + Dim CvePS As Integer = DetalleRow.Item("CvePS").ToString.ToEntero + Dim Lote As String = DetalleRow.Item("Lote").ToString + Dim FechaCaducidad As Date = DetalleRow.Item("FechaCaducidad").ToString.ToDate + Dim PS As String = String.Format("{0} - {1}", DetalleRow.Item("Codigo").ToString, DetalleRow.Item("PS").ToString) + If Modalidad = "Individual" Then + Dim reporteByte As Byte() = GenerarEtiqueta(CvePS, Lote, FechaCaducidad, PS) + + Dim reader As New PdfReader(reporteByte) + Dim Paginas As Integer = reader.NumberOfPages + Dim Contador As Integer = 0 + While Contador < Paginas + Contador += 1 + Copy.AddPage(Copy.GetImportedPage(reader, Contador)) + End While + Else + Dim Cant As Integer = DetalleRow.Item("Cantidad").ToString.ToEntero - 1 + + For contador As Integer = 0 To Cant + Dim reporteByte As Byte() = GenerarEtiqueta(CvePS, Lote, FechaCaducidad, PS) + + Dim reader As New PdfReader(reporteByte) + Dim Paginas As Integer = reader.NumberOfPages + Dim Cont As Integer = 0 + While Cont < Paginas + Cont += 1 + Copy.AddPage(Copy.GetImportedPage(reader, Cont)) + End While + Next + End If + Next + End If + End If + d.Close() + + End Using + End Using + All = ms.ToArray() + End Using + ImprimirbytesPDF(All, "Etiquetas") + + + If Modalidad = "Individual" Then + Else + + End If + ObjInventarios.Dispose() + End Sub + + Private Function GenerarEtiqueta(CvePS As Integer, Lote As String, FechaCaducidad As Date, PS As String) As Byte() + Dim QrDescarga As String = "" + Dim Cfdi As New RVCFDI33.GeneraCFDI() + Dim b As Byte() = Cfdi.ConvertirQrCode(String.Format("?CvePS={0}&Lote={1}&Fecha={2}", CvePS, Lote, Format(FechaCaducidad, "dd/MM/yyyy").ToString())) + QrDescarga = Convert.ToBase64String(b) + Dim params As New List(Of ReportParameter) + params.Add(New ReportParameter("QR", QrDescarga)) + params.Add(New ReportParameter("PS", PS)) + params.Add(New ReportParameter("Lote", Lote)) + params.Add(New ReportParameter("FechaCad", FechaCaducidad.ToString())) + Return StreamPDF("Empresas/Grales/Formatos/EtiquetaDeRecepcion.rdlc", New DataTable, params) End Function -#End Region +#End Region End Class From 341d93f817a6eb90a4fa3d3b4fa754a1d023a080 Mon Sep 17 00:00:00 2001 From: rrene Date: Tue, 8 Dec 2020 14:32:29 -0700 Subject: [PATCH 03/39] - correccion scroll --- Inventarios/PopUpExistenciasAlmacen.aspx | 2 +- Inventarios/PopUpExistenciasAlmacen.aspx.vb | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/Inventarios/PopUpExistenciasAlmacen.aspx b/Inventarios/PopUpExistenciasAlmacen.aspx index 2528fc984..b618d6320 100644 --- a/Inventarios/PopUpExistenciasAlmacen.aspx +++ b/Inventarios/PopUpExistenciasAlmacen.aspx @@ -138,7 +138,7 @@ -
+
diff --git a/Inventarios/PopUpExistenciasAlmacen.aspx.vb b/Inventarios/PopUpExistenciasAlmacen.aspx.vb index 7b6ec9130..9e7fbd992 100644 --- a/Inventarios/PopUpExistenciasAlmacen.aspx.vb +++ b/Inventarios/PopUpExistenciasAlmacen.aspx.vb @@ -243,6 +243,7 @@ Partial Class Inventarios_Default ObjInventarios.Dispose() GvMedRin.DataBind() UPDatos.Update() + DivMedRin.Visible = True End Sub Private Sub CargaEquivalencia() From 4246da792a04679203d1ed75f99ad93a838dea8f Mon Sep 17 00:00:00 2001 From: rrene Date: Tue, 8 Dec 2020 14:32:52 -0700 Subject: [PATCH 04/39] -- devolcuion de compra, con cantidad especifica --- App_Code/ClsCompras.vb | 3 ++- Compras/Compras.aspx.vb | 4 ++-- Inventarios/EntregaAlmacen.aspx.vb | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/App_Code/ClsCompras.vb b/App_Code/ClsCompras.vb index 825a06a64..0fe3e20d1 100644 --- a/App_Code/ClsCompras.vb +++ b/App_Code/ClsCompras.vb @@ -2206,7 +2206,7 @@ Public Class ClsCompras Return Retorno End Function - Public Function UpdateEstatusAlmacenDetalle(CveCompraDetalle As Integer, ValorEstatus As Integer, CveUsuario As Integer) As Boolean + Public Function UpdateEstatusAlmacenDetalle(CveCompraDetalle As Integer, ValorEstatus As Integer, CveUsuario As Integer, Optional CantidadDevolucion As Decimal = 0) As Boolean Dim Retorno As Boolean = False DataAdapter("PA_Comp_ComprasDetalleEstatusAlmacenUpdate") @@ -2214,6 +2214,7 @@ Public Class ClsCompras .Add("@CveCompraDetalle", SqlDbType.Int).Value = CveCompraDetalle .Add("@Estatus", SqlDbType.Int).Value = ValorEstatus .Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario + .Add("@CantidadDevolucion", SqlDbType.Decimal).Value = CantidadDevolucion End With Try diff --git a/Compras/Compras.aspx.vb b/Compras/Compras.aspx.vb index 2a8f5fe6a..b3be5f8a9 100644 --- a/Compras/Compras.aspx.vb +++ b/Compras/Compras.aspx.vb @@ -18798,9 +18798,9 @@ Partial Class Compras_Compras For Each gvr As GridViewRow In GvSolDev.Rows If gvr.FCTextBox("TxtCant").Text.ToDecimal > 0 Then 'actualiza el estatus del detalle - ObjCompras.UpdateEstatusAlmacenDetalle(gvr.DataKey("CveCompraDetalle").ToEntero, 0, UsuarioActual.CveUsuario) + ObjCompras.UpdateEstatusAlmacenDetalle(gvr.DataKey("CveCompraDetalle").ToEntero, 0, UsuarioActual.CveUsuario, CantidadDevolucion:=gvr.FCTextBox("TxtCant").Text.ToDecimal) Else - ObjCompras.UpdateEstatusAlmacenDetalle(gvr.DataKey("CveCompraDetalle").ToEntero, 1, UsuarioActual.CveUsuario) + ObjCompras.UpdateEstatusAlmacenDetalle(gvr.DataKey("CveCompraDetalle").ToEntero, 1, UsuarioActual.CveUsuario, CantidadDevolucion:=0) End If Next End If diff --git a/Inventarios/EntregaAlmacen.aspx.vb b/Inventarios/EntregaAlmacen.aspx.vb index 1ec5937e6..532f5c204 100644 --- a/Inventarios/EntregaAlmacen.aspx.vb +++ b/Inventarios/EntregaAlmacen.aspx.vb @@ -2512,7 +2512,7 @@ Partial Class Inventarios_EntregaAlmacen End If 'se registra - If ContabilizaMovimientoAlmacen(ObjConta, TxtFecha.Text.ToDate, HLFolio.Text, "EntregaAlmacen", CveMovimiento, CveMovimientoEntrada, ImporteAlmacen, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, True) <= 0 Then + If ContabilizaMovimientoAlmacen(ObjConta, TxtFecha.Text.ToDate, HLFolio.Text, "EntregaAlmacen", CveMovimiento, CveMovimientoEntrada, ImporteAlmacen, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, False) <= 0 Then ErrorMovInv = True End If From e9b7cdd0ecfb6d8a154a50f97375b54fd54f81b1 Mon Sep 17 00:00:00 2001 From: rrene Date: Wed, 9 Dec 2020 09:43:15 -0700 Subject: [PATCH 05/39] -- porcentajeiva, conceptos cancelacion --- App_Code/Modelos.vb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/App_Code/Modelos.vb b/App_Code/Modelos.vb index 2a0131d71..9c2df14e1 100644 --- a/App_Code/Modelos.vb +++ b/App_Code/Modelos.vb @@ -2886,7 +2886,7 @@ Namespace Modelos Next - DT = TmpDTDetalle.FiltraParametros($"CvePS <> {ObjFactura.CvePSAmortizacion}", "", {"CveClasificacion", "CveSubProyecto"}) + DT = TmpDTDetalle.FiltraParametros($"CvePS <> {ObjFactura.CvePSAmortizacion}", "", {"CveClasificacion", "CveSubProyecto", "PorcentajeIVA"}) If DT.Rows.Count > 0 Then 'Se agrega movimiento separado por la cuenta de ventas (ER) @@ -2919,7 +2919,7 @@ Namespace Modelos ' CveCuentaContabilizacion = 0 'End If - If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, TipoMovimiento, importeMovimiento, Referencia, ConceptoContableAplicar, Concepto, ObjFactura.Fecha, IdCtaContable, -1, CveVenta:=CveVentaAplicar, CveVentaAmortizacion:=CveVentaAmortizacionAplicar, CveCliente:=ObjFactura.CveCliente, CveIE:=CveIE, CveClasificacion:=Row2("CveClasificacion").ToString.ToEntero, CveSubProyecto:=Row2("CveSubProyecto").ToString.ToEntero, ImporteMX:=importeMX, ImporteME:=If(tipoCambio = 1, 0, importeMovimiento), TipoCambio:=tipoCambio, CveCuenta:=CveCuenta) Then + If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, TipoMovimiento, importeMovimiento, Referencia, ConceptoContableAplicar, Concepto, ObjFactura.Fecha, IdCtaContable, -1, CveVenta:=CveVentaAplicar, CveVentaAmortizacion:=CveVentaAmortizacionAplicar, CveCliente:=ObjFactura.CveCliente, CveIE:=CveIE, CveClasificacion:=Row2("CveClasificacion").ToString.ToEntero, CveSubProyecto:=Row2("CveSubProyecto").ToString.ToEntero, ImporteMX:=importeMX, ImporteME:=If(tipoCambio = 1, 0, importeMovimiento), TipoCambio:=tipoCambio, PorcentajeImpuesto:=Row2("PorcentajeIVA").ToString().ToDecimal) Then ErrorPrepoliza = True Else ObjFactura.SeGuardoPrePoliza = True @@ -2961,7 +2961,7 @@ Namespace Modelos End If - DT = TmpDTDetalle.FiltraParametros($"CvePS <> {ObjFactura.CvePSAmortizacion}", "", {"CveClasificacion", "CveSubProyecto"}) + DT = TmpDTDetalle.FiltraParametros($"CvePS <> {ObjFactura.CvePSAmortizacion}", "", {"CveClasificacion", "CveSubProyecto", "PorcentajeIVA"}) If DT.Rows.Count > 0 Then 'Se agrega movimiento separado por la cuenta de ventas (ER) @@ -3006,7 +3006,7 @@ Namespace Modelos ' CveCuentaContabilizacion = 0 'End If - If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, TipoMovimiento, importeMovimiento, Referencia, ConceptoContableAplicar, Concepto, ObjFactura.Fecha, IdCtaContable, -1, CveVenta:=CveVentaAplicar, CveVentaAmortizacion:=CveVentaAmortizacionAplicar, CveCliente:=ObjFactura.CveCliente, CveIE:=CveIE, CveClasificacion:=Row2("CveClasificacion").ToString.ToEntero, CveSubProyecto:=Row2("CveSubProyecto").ToString.ToEntero, ImporteMX:=importeMX, ImporteME:=If(tipoCambio = 1, 0, importeMovimiento), TipoCambio:=tipoCambio, CveCuenta:=CveCuenta) Then + If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, TipoMovimiento, importeMovimiento, Referencia, ConceptoContableAplicar, Concepto, ObjFactura.Fecha, IdCtaContable, -1, CveVenta:=CveVentaAplicar, CveVentaAmortizacion:=CveVentaAmortizacionAplicar, CveCliente:=ObjFactura.CveCliente, CveIE:=CveIE, CveClasificacion:=Row2("CveClasificacion").ToString.ToEntero, CveSubProyecto:=Row2("CveSubProyecto").ToString.ToEntero, ImporteMX:=importeMX, ImporteME:=If(tipoCambio = 1, 0, importeMovimiento), TipoCambio:=tipoCambio, PorcentajeImpuesto:=Row2("PorcentajeIVA").ToString().ToDecimal) Then ErrorPrepoliza = True Else ObjFactura.SeGuardoPrePoliza = True From 453fcb4781399d992beb868ed5bb8f1c69efd0d1 Mon Sep 17 00:00:00 2001 From: Rakcsle Supertramp Date: Wed, 9 Dec 2020 17:20:51 -0700 Subject: [PATCH 06/39] Contratos --- App_Code/ClsInventarios.vb | 9 +- .../RepEstadoResultadosHorizontal.aspx | 72 ++++- .../RepEstadoResultadosHorizontal.aspx.vb | 2 +- Contratos/ContratoObra.aspx | 4 + Contratos/ContratoObra.aspx.vb | 280 ++++++++++-------- 5 files changed, 233 insertions(+), 134 deletions(-) diff --git a/App_Code/ClsInventarios.vb b/App_Code/ClsInventarios.vb index 61f19b032..7496b1bf9 100644 --- a/App_Code/ClsInventarios.vb +++ b/App_Code/ClsInventarios.vb @@ -1309,8 +1309,14 @@ Public Class ClsInventarios Retorno = True End If Catch Ex1 As SqlException + If Ex1.Message.Contains("50019") Then Me.OnError(" El producto no tiene existencia.", Ex1, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + + ElseIf Ex1.Message.Contains("CK_Inv_MovimientosDetalle_MetodoInventario") Then + + Me.OnError("El movimiento debe de tener una Serie.", Ex1, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + Else If Ex1.Message.Contains("50021") Then Me.OnError(" El producto ingresado previamente.", Ex1, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) @@ -1437,7 +1443,7 @@ Public Class ClsInventarios Return Retorno End Function - Public Function GetMovimientosTransitorios(CveAlmacenDestino As Integer, CveTipoAlmacenDestino As Integer, CveAlmacenTransitorio As Integer, CveUsuarioResponsable As Integer, Folio As Integer, CveEmpresa As Integer) As Boolean + Public Function GetMovimientosTransitorios(CveAlmacenDestino As Integer, CveTipoAlmacenDestino As Integer, CveAlmacenTransitorio As Integer, CveUsuarioResponsable As Integer, Folio As Integer, CveEmpresa As Integer, CveUsuario As Integer) As Boolean Dim Retorno As Boolean = False DataAdapter("PA_Inv_MovimientosTransitoriosGet") @@ -1448,6 +1454,7 @@ Public Class ClsInventarios .Add("@Folio", SqlDbType.Int).Value = Folio .Add("@CveUsuarioResponsable", SqlDbType.Int).Value = CveUsuarioResponsable .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + .Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario End With Try SqlAdapter.Fill(Data) diff --git a/Contabilidad2/RepEstadoResultadosHorizontal.aspx b/Contabilidad2/RepEstadoResultadosHorizontal.aspx index 3b9cb9c02..b30462cd0 100644 --- a/Contabilidad2/RepEstadoResultadosHorizontal.aspx +++ b/Contabilidad2/RepEstadoResultadosHorizontal.aspx @@ -1,4 +1,4 @@ -<%@ Page Title="" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="RepEstadoResultadosHorizontal.aspx.vb" Inherits="Contabilidad_RepEstadoResultadosHorizontal" %> +<%@ Page Title="" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="RepEstadoResultadosHorizontal.aspx.vb" Inherits="Contabilidad_RepEstadoResultadosHorizontal" EnableEventValidation="false" %> @@ -1048,6 +1048,28 @@ + + + + + + + + + + + + + + + + + + + + + + <%-- @@ -1120,6 +1142,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + <%-- @@ -1192,6 +1238,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Contabilidad2/RepEstadoResultadosHorizontal.aspx.vb b/Contabilidad2/RepEstadoResultadosHorizontal.aspx.vb index bb9bbfec4..5a89787b7 100644 --- a/Contabilidad2/RepEstadoResultadosHorizontal.aspx.vb +++ b/Contabilidad2/RepEstadoResultadosHorizontal.aspx.vb @@ -1821,7 +1821,7 @@ Partial Class Contabilidad_RepEstadoResultadosHorizontal Row = DtGastosSubProyectoH.NewRow - If DtGastosSubProyectoH.Rows.Count > 0 Then + If DtGastosSubProyectoH.Rows.Count > 1 Then IndexData = 0 diff --git a/Contratos/ContratoObra.aspx b/Contratos/ContratoObra.aspx index 78eed7830..56c505e65 100644 --- a/Contratos/ContratoObra.aspx +++ b/Contratos/ContratoObra.aspx @@ -2793,10 +2793,14 @@ + + + +
diff --git a/Contratos/ContratoObra.aspx.vb b/Contratos/ContratoObra.aspx.vb index 5d5d25493..e04960ae0 100644 --- a/Contratos/ContratoObra.aspx.vb +++ b/Contratos/ContratoObra.aspx.vb @@ -4129,13 +4129,31 @@ Partial Class Contratos_ContratoObra DTCargaPresupuesto = CargaPreSupuestoExcel() If DTCargaPresupuesto.Rows.Count > 0 Then - ' ProcesaDatosCargaPresupuesto(DTCargaPresupuesto) + ProcesaDatosCargaPresupuesto(DTCargaPresupuesto) Else Alert("No se encintraron partidas en el documento", TipoMensaje.MsgAdvertencia) End If End Sub + Protected Sub BtnDecargaFormato_Click(sender As Object, e As EventArgs) + + + + Dim FI As New IO.FileInfo($"{Extensiones.DirectorioBaseEmpresas}\Empresas\Grales\Formatos\FormatoPresupuestoObra.xlsx") + + + If FI.Exists Then + + Response.ContentType = "application/octet-stream" + Response.AppendHeader("Content-Disposition", $"attachment; filename=FormatoPresupuestoObra.xlsx") + Response.TransmitFile(FI.FullName) + Response.End() + + End If + + + End Sub Private Function CargaPreSupuestoExcel() As DataTable @@ -4183,179 +4201,179 @@ Partial Class Contratos_ContratoObra End Function - 'Private Sub ProcesaDatosCargaPresupuesto(DTPresupuesto As DataTable) + Private Sub ProcesaDatosCargaPresupuesto(DTPresupuesto As DataTable) - ' Dim DTPS = New DataTable - ' DTPS.Columns.Add("CveContratoDetalle", GetType(Integer)) - ' DTPS.Columns.Add("Cantidad", GetType(Double)) - ' DTPS.Columns.Add("CantidadContratada", GetType(Double)) - ' DTPS.Columns.Add("CveUM", GetType(Integer)) - ' DTPS.Columns.Add("UM", GetType(String)) - ' DTPS.Columns.Add("CveClasificacion", GetType(Integer)) - ' DTPS.Columns.Add("Clasificacion", GetType(String)) - ' DTPS.Columns.Add("CvePS", GetType(Integer)) - ' DTPS.Columns.Add("PS", GetType(String)) - ' DTPS.Columns.Add("CodigoPS", GetType(String)) - ' DTPS.Columns.Add("PU", GetType(Double)) - ' DTPS.Columns.Add("Total", GetType(Double)) - ' DTPS.Columns.Add("CveTipoPresupuesto", GetType(Integer)) - ' DTPS.Columns.Add("PermitirAvance", GetType(Integer)) - ' DTPS.Columns.Add("PermitirEstimacion", GetType(Integer)) - ' DTPS.Columns.Add("UsuarioAvance", GetType(Integer)) - ' DTPS.Columns.Add("Cantidad_Original", GetType(Double)) - ' DTPS.Columns.Add("PU_Original", GetType(Double)) - ' DTPS.Columns.Add("Total_Original", GetType(Double)) - ' DTPS.Columns.Add("NoIdentificacion", GetType(String)) - ' DTPS.Columns.Add("LimitarCantidad", GetType(Integer)) - ' DTPS.Columns.Add("OCInterna", GetType(String)) - ' DTPS.Columns.Add("Observacion", GetType(String)) + Dim DTPS = New DataTable + DTPS.Columns.Add("CveContratoDetalle", GetType(Integer)) + DTPS.Columns.Add("Cantidad", GetType(Double)) + DTPS.Columns.Add("CantidadContratada", GetType(Double)) + DTPS.Columns.Add("CveUM", GetType(Integer)) + DTPS.Columns.Add("UM", GetType(String)) + DTPS.Columns.Add("CveClasificacion", GetType(Integer)) + DTPS.Columns.Add("Clasificacion", GetType(String)) + DTPS.Columns.Add("CvePS", GetType(Integer)) + DTPS.Columns.Add("PS", GetType(String)) + DTPS.Columns.Add("CodigoPS", GetType(String)) + DTPS.Columns.Add("PU", GetType(Double)) + DTPS.Columns.Add("Total", GetType(Double)) + DTPS.Columns.Add("CveTipoPresupuesto", GetType(Integer)) + DTPS.Columns.Add("PermitirAvance", GetType(Integer)) + DTPS.Columns.Add("PermitirEstimacion", GetType(Integer)) + DTPS.Columns.Add("UsuarioAvance", GetType(Integer)) + DTPS.Columns.Add("Cantidad_Original", GetType(Double)) + DTPS.Columns.Add("PU_Original", GetType(Double)) + DTPS.Columns.Add("Total_Original", GetType(Double)) + DTPS.Columns.Add("NoIdentificacion", GetType(String)) + DTPS.Columns.Add("LimitarCantidad", GetType(Integer)) + DTPS.Columns.Add("OCInterna", GetType(String)) + DTPS.Columns.Add("Observacion", GetType(String)) - ' Dim RowNoEncontrados As String = "" + Dim RowNoEncontrados As String = "" - ' For Each DrowPS As DataRow In DTPresupuesto.Rows + For Each DrowPS As DataRow In DTPresupuesto.Rows - ' Dim StrArray() As String = GetPS("PS", DrowPS("PS").ToString).Split("|"c) - ' Dim CvePS As Integer - ' Dim CveUM As Integer + Dim StrArray() As String = GetPS("PS", DrowPS("PS").ToString).Split("|"c) + Dim CvePS As Integer + Dim CveUM As Integer - ' If StrArray.Length > 0 Then - ' If CBool(StrArray(0)) = True Then - ' CvePS = StrArray(1).ToEntero - ' Else - ' RowNoEncontrados &= StrArray(1) & "<\BR>" - ' End If - ' End If + If StrArray.Length > 0 Then + If CBool(StrArray(0)) = True Then + CvePS = StrArray(1).ToEntero + Else + RowNoEncontrados &= StrArray(1) & "<\BR>" + End If + End If - ' If CvePS > 0 And DrowPS("Cantidad").ToString.ToDouble > 0 Then + If CvePS > 0 And DrowPS("Cantidad").ToString.ToDouble > 0 Then - ' CveUM = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePS).FiltroPrimeroValor("CveUnidadMedida", "").ToString.ToEntero + CveUM = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePS).FiltroPrimeroValor("CveUnidadMedida", "").ToString.ToEntero - ' Dim Row As DataRow = DTPS.NewRow() - ' Row("Cantidad") = DrowPS("Cantidad").ToString.ToDouble - ' Row("CantidadContratada") = DrowPS("Cantidad").ToString.ToDouble - ' Row("CveUM") = CveUM - ' Row("UM") = "" - ' Row("CveClasificacion") = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePS).FiltroPrimeroValor("CveClasificacion", "").ToString.ToEntero - ' Row("Clasificacion") = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltroPrimeroValor("Clasificacion", $"CveClasificacion = '{ Row("CveClasificacion").ToString }'").ToString - ' Row("CvePS") = CvePS - ' Row("PS") = DrowPS("PS").ToString - ' Row("CodigoPS") = DrowPS("PS").ToString - ' Row("PU") = DrowPS("PU").ToString.ToDouble - ' Row("Total") = DrowPS("Cantidad").ToString.ToDouble * DrowPS("PU").ToString.ToDouble + Dim Row As DataRow = DTPS.NewRow() + Row("Cantidad") = DrowPS("Cantidad").ToString.ToDouble + Row("CantidadContratada") = DrowPS("Cantidad").ToString.ToDouble + Row("CveUM") = CveUM + Row("UM") = "" + Row("CveClasificacion") = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePS).FiltroPrimeroValor("CveClasificacion", "").ToString.ToEntero + Row("Clasificacion") = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltroPrimeroValor("Clasificacion", $"CveClasificacion = '{ Row("CveClasificacion").ToString }'").ToString + Row("CvePS") = CvePS + Row("PS") = DrowPS("PS").ToString + Row("CodigoPS") = DrowPS("PS").ToString + Row("PU") = DrowPS("PU").ToString.ToDouble + Row("Total") = DrowPS("Cantidad").ToString.ToDouble * DrowPS("PU").ToString.ToDouble - ' Select Case TipoCargaPresupuesto - ' Case EnumTipoCargaPresupuesto.Ventas - ' Row("CveTipoPresupuesto") = 2 - ' Exit Select - ' Case EnumTipoCargaPresupuesto.Control - ' Row("CveTipoPresupuesto") = 1 - ' Exit Select - ' Case Else - ' Row("CveTipoPresupuesto") = 1 - ' End Select + Select Case TipoCargaPresupuesto + Case EnumTipoCargaPresupuesto.Ventas + Row("CveTipoPresupuesto") = 2 + Exit Select + Case EnumTipoCargaPresupuesto.Control + Row("CveTipoPresupuesto") = 1 + Exit Select + Case Else + Row("CveTipoPresupuesto") = 1 + End Select - ' Row("NoIdentificacion") = "" - ' Row("OCInterna") = "" - ' Row("LimitarCantidad") = 0 - ' Row("Observacion") = "" + Row("NoIdentificacion") = "" + Row("OCInterna") = "" + Row("LimitarCantidad") = 0 + Row("Observacion") = "" - ' DTPS.Rows.Add(Row) + DTPS.Rows.Add(Row) - ' End If - ' Next + End If + Next - ' Dim ErrorProceso = False - ' Dim ObjContratos As New ClsContratos - ' Dim TotalRow As Double = 0 - ' ObjContratos.IniciaTransacSQL() + Dim ErrorProceso = False + Dim ObjContratos As New ClsContratos + Dim TotalRow As Double = 0 + ObjContratos.IniciaTransacSQL() - ' For Each Row As DataRow In DTPS.Rows + For Each Row As DataRow In DTPS.Rows - ' 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 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 + 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 - ' Dim NrowTmpDT As DataRow = TmpDT.NewRow + Dim NrowTmpDT As DataRow = TmpDT.NewRow - ' NrowTmpDT("Cantidad") = Row("Cantidad") - ' NrowTmpDT("CantidadContratada") = Row("CantidadContratada") - ' NrowTmpDT("CveUM") = Row("CveUM") - ' NrowTmpDT("UM") = Row("UM") - ' NrowTmpDT("CveClasificacion") = Row("CveClasificacion") - ' NrowTmpDT("Clasificacion") = Row("Clasificacion") - ' NrowTmpDT("CvePS") = Row("CvePS") - ' NrowTmpDT("PS") = Row("PS") - ' NrowTmpDT("CodigoPS") = Row("CodigoPS") - ' NrowTmpDT("PU") = Row("PU") - ' NrowTmpDT("Total") = Row("Total") - ' NrowTmpDT("CveTipoPresupuesto") = Row("CveTipoPresupuesto") - ' NrowTmpDT("NoIdentificacion") = Row("NoIdentificacion") - ' NrowTmpDT("OCInterna") = Row("OCInterna") - ' NrowTmpDT("LimitarCantidad") = Row("LimitarCantidad") - ' NrowTmpDT("Observacion") = Row("Observacion") + NrowTmpDT("Cantidad") = Row("Cantidad") + NrowTmpDT("CantidadContratada") = Row("CantidadContratada") + NrowTmpDT("CveUM") = Row("CveUM") + NrowTmpDT("UM") = Row("UM") + NrowTmpDT("CveClasificacion") = Row("CveClasificacion") + NrowTmpDT("Clasificacion") = Row("Clasificacion") + NrowTmpDT("CvePS") = Row("CvePS") + NrowTmpDT("PS") = Row("PS") + NrowTmpDT("CodigoPS") = Row("CodigoPS") + NrowTmpDT("PU") = Row("PU") + NrowTmpDT("Total") = Row("Total") + NrowTmpDT("CveTipoPresupuesto") = Row("CveTipoPresupuesto") + NrowTmpDT("NoIdentificacion") = Row("NoIdentificacion") + NrowTmpDT("OCInterna") = Row("OCInterna") + NrowTmpDT("LimitarCantidad") = Row("LimitarCantidad") + NrowTmpDT("Observacion") = Row("Observacion") - ' NrowTmpDT("CveContratoDetalle") = ObjContratos.DtResultados.Rows(0)("CveContratoDetalle") + NrowTmpDT("CveContratoDetalle") = ObjContratos.DtResultados.Rows(0)("CveContratoDetalle") - ' TmpDT.Rows.Add(NrowTmpDT) - ' TmpDT.AcceptChanges() + TmpDT.Rows.Add(NrowTmpDT) + TmpDT.AcceptChanges() - ' TotalRow = TotalRow + NrowTmpDT("Total").ToString.ToDouble - ' Else - ' ErrorProceso = True - ' Exit For - ' End If - ' Next + TotalRow = TotalRow + NrowTmpDT("Total").ToString.ToDouble + Else + ErrorProceso = True + Exit For + End If + Next - ' If ErrorProceso Then - ' ObjContratos.RollBack() - ' Alert("Se presento un error al cargar el presupuesto.", TipoMensaje.MsgError) - ' Else + If ErrorProceso Then + ObjContratos.RollBack() + Alert("Se presento un error al cargar el presupuesto.", TipoMensaje.MsgError) + Else - ' ObjContratos.Commit() - ' Alert("Presupuesto Cargado correctamente") + ObjContratos.Commit() + Alert("Presupuesto Cargado correctamente") - ' Select Case TipoCargaPresupuesto - ' Case EnumTipoCargaPresupuesto.Ventas - ' CargaGVPresupuestos(TmpDT.FiltraParametros("CveTipoPresupuesto=2")) - ' UpGV.Update() - ' Exit Select - ' Case EnumTipoCargaPresupuesto.Control - ' CargaGVPresupuestosInsumos(TmpDT.FiltraParametros("CveTipoPresupuesto=1")) - ' UpGVInsumos.Update() - ' Exit Select - ' Case Else + Select Case TipoCargaPresupuesto + Case EnumTipoCargaPresupuesto.Ventas + CargaGVPresupuestos(TmpDT.FiltraParametros("CveTipoPresupuesto=2")) + UpGV.Update() + Exit Select + Case EnumTipoCargaPresupuesto.Control + CargaGVPresupuestosInsumos(TmpDT.FiltraParametros("CveTipoPresupuesto=1")) + UpGVInsumos.Update() + Exit Select + Case Else - ' End Select + End Select - ' LbTotalGeneral.Text = (LbTotalGeneral.Text.ToDouble + TotalRow).ToString.FormatoNumero - ' LblImporte.Text = LbTotalGeneral.Text - ' UpGral.Update() + LbTotalGeneral.Text = (LbTotalGeneral.Text.ToDouble + TotalRow).ToString.FormatoNumero + LblImporte.Text = LbTotalGeneral.Text + UpGral.Update() - ' End If + End If - ' ObjContratos.Dispose() + ObjContratos.Dispose() - ' If RowNoEncontrados.Length > 0 Then - ' Alert($"Productos no encontrados
{RowNoEncontrados} ") - ' End If + If RowNoEncontrados.Length > 0 Then + Alert($"Productos no encontrados
{RowNoEncontrados} ") + End If - 'End Sub + End Sub From 15e6608bbf47ec88925a172a5f51ffa482e945b3 Mon Sep 17 00:00:00 2001 From: rrene Date: Wed, 9 Dec 2020 19:53:13 -0700 Subject: [PATCH 07/39] txtps de txt a textarea --- Ventas/ProductosServicios.aspx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Ventas/ProductosServicios.aspx b/Ventas/ProductosServicios.aspx index 7a5c4faa1..d83ba7ada 100644 --- a/Ventas/ProductosServicios.aspx +++ b/Ventas/ProductosServicios.aspx @@ -132,7 +132,7 @@
- + From 100ac0754035f6b16e93f3bcb9e50998097fe32b Mon Sep 17 00:00:00 2001 From: rrene Date: Wed, 9 Dec 2020 19:53:27 -0700 Subject: [PATCH 08/39] usacomplementarias --- Bancos/ProveedoresAbonar.aspx.vb | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/Bancos/ProveedoresAbonar.aspx.vb b/Bancos/ProveedoresAbonar.aspx.vb index d8325a81b..c16a3ca10 100644 --- a/Bancos/ProveedoresAbonar.aspx.vb +++ b/Bancos/ProveedoresAbonar.aspx.vb @@ -446,7 +446,7 @@ Partial Class Bancos_ProveedoresAbonar HlSaldarCuentasSinPagar.Visible = True End If - If UsuarioActual.CveEmpresa = 119 And CveUsuarioProgramo <> -1 Then + If UsuarioActual.CveEmpresa.Contiene(119, 158) And CveUsuarioProgramo <> -1 Then LnkPDFSolicitud.Visible = True LnkExcelSolicitud.Visible = True End If @@ -942,6 +942,9 @@ Partial Class Bancos_ProveedoresAbonar Dim TipoCambioGeneral As Decimal = 0 Dim tipoCambioCompraValuacion As Decimal = 1 + Dim UsaComplementariaBancos As Boolean = If(UsuarioActual.CveEmpresa.Contiene(119, 158), True, False) + Dim UsaComplementariaProveedores As Boolean = If(UsuarioActual.CveEmpresa.Contiene(119, 158), True, False) + Dim FuncionalidadFluctuacionImpuestos As Boolean = If(UsuarioActual.Empresa.Funcionalidad(159) = "1", True, False) Dim TipoCambioFluctuacion As Decimal = 1 @@ -1046,7 +1049,7 @@ Partial Class Bancos_ProveedoresAbonar ConceptoMovimiento += $" TC:{tipoCambioCompra} ${ImporteMovimiento.FormatoNumero(2)}" IdCtaContable = IdCtaContComplementaria CveCuenta = CveCuentaProveedorExtranjera - If ImporteMovimiento <> 0 AndAlso (UsuarioActual.CveEmpresa = 119 Or IdCtaContable > 0) Then 'Cuando tiene complementaria lo dividimos en dos + If ImporteMovimiento <> 0 AndAlso (UsaComplementariaProveedores Or IdCtaContable > 0) Then 'Cuando tiene complementaria lo dividimos en dos importeMX = ImporteMovimiento If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, 0.00D, Referencia, CveConceptoComplementaria, ConceptoMovimiento, FechaMovimiento, IdCtaContable, -1, CveIE, CveCompra:=gvr.DataKey("CveCompra").ToEntero, CveProveedor:=CveProveedor, ImporteMX:=Math.Round(ImporteMovimiento * tipoCambioCompraValuacion - ImporteMovimiento, 2, MidpointRounding.AwayFromZero), ImporteME:=ImporteMovimiento, TipoCambio:=tipoCambioCompraValuacion, CveCuenta:=CveCuentaComplementaria) Then MsgError = "No se pudo insertar la póliza" @@ -2034,7 +2037,7 @@ Partial Class Bancos_ProveedoresAbonar If (Not DivTarjeta.Visible Or DdlTarjeta.SelectedValue.ToEntero = -1) Then If TipoCambioPago > 1 AndAlso CveMoneda = 2 Then - If UsuarioActual.CveEmpresa = 119 Or (CveCuentaBancariaComplementaria > 0 OrElse IdCuentaBancariaComplementaria > 0) Then + If UsaComplementariaBancos Or (CveCuentaBancariaComplementaria > 0 OrElse IdCuentaBancariaComplementaria > 0) Then If CveMoneda = 2 AndAlso CveMonedaFiltro = 1 Then 'Si la venta viene en pesos y se va a pagar en DOLARES TipoCambioPago = TxtTCDolares.Text.ToDecimal ElseIf CveMoneda = 2 AndAlso CveMonedaFiltro = 2 Then @@ -3121,6 +3124,7 @@ Partial Class Bancos_ProveedoresAbonar Dim CveMoneda As Integer = gr.DataKey("CveMoneda").ToEntero Dim FechaCompra As Date = gr.DataKey("Fecha").ToDate Dim CveSubProyecto As Integer = gr.DataKey("CveSubProyecto").ToEntero + Dim UsaComplementariaProveedores As Boolean = If(UsuarioActual.CveEmpresa.Contiene(119, 158), True, False) Dim CveConceptoContablePago As Integer = 17 If gr.DataKey("CveTipoConcepto").ToEntero = 2 Then CveConceptoContablePago = 308 'cuando es acreedor @@ -3141,7 +3145,7 @@ Partial Class Bancos_ProveedoresAbonar CvePrePoliza = ObjConta.AddPrePolizas("Bancos/ProveedoresAbonar/Saldar", 98, gr.DataKey("Saldo").ToDecimal, gr.DataKey("Saldo").ToDecimal, gr.DataKey("CveMoneda").ToEntero, TxtFechaIncobrable.Text.ToDate, ConceptoPartida, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) - If CveMoneda > 1 AndAlso (IdCtaContComplementaria > 0 Or UsuarioActual.CveEmpresa = 119) Then + If CveMoneda > 1 AndAlso (IdCtaContComplementaria > 0 Or UsaComplementariaProveedores) Then IdCtaContable = IdCtaContComplementaria CveCuenta = CveCuentaProveedorExtranjera If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, 0.00D, gr.DataKey("SerieFolio").ToString, CveConceptoContableComplementaria, ConceptoPartida, Now, IdCtaContable:=IdCtaContable, CveIE:=-1, IdSegmentoNegocio:=-1, CveProveedor:=gr.DataKey("CveProveedor").ToEntero, CveCompra:=gr.DataKey("CveCompra").ToEntero, ImporteMX:=Math.Round(Saldo * TCCompra - Saldo, 2, MidpointRounding.AwayFromZero), ImporteME:=Saldo, TipoCambio:=TCCompra, CveCuenta:=CveCuentaComplementaria) Then From 218e4773628a0656d8da2c907db4be0201079cf6 Mon Sep 17 00:00:00 2001 From: rrene Date: Thu, 10 Dec 2020 11:40:32 -0700 Subject: [PATCH 09/39] -- complementarias 158 --- Compras/Compras.aspx.vb | 42 ++++++++++++++++++----------------------- 1 file changed, 18 insertions(+), 24 deletions(-) diff --git a/Compras/Compras.aspx.vb b/Compras/Compras.aspx.vb index b3be5f8a9..fb272a042 100644 --- a/Compras/Compras.aspx.vb +++ b/Compras/Compras.aspx.vb @@ -4604,19 +4604,18 @@ Partial Class Compras_Compras CveEstatusFactura = 6 End If 'hay amortización directa como descuento. RMF Temporal - If UsuarioActual.CveEmpresa = 119 Then - 'If LblAmortizacion.Text.ToDouble > 0 AndAlso TxtDescuento.Text.ToDouble = 0 Then - ' TxtDescuento.Text = LblAmortizacion.Text - ' LblAmortizacion.Text = "0.00" - 'End If - 'o si el descuento es igual a la amortizacion - 'If LblAmortizacion.Text.ToDouble = TxtDescuento.Text.ToDouble Then - ' TxtDescuento.Text = LblAmortizacion.Text - ' LblAmortizacion.Text = "0.00" - 'End If + 'If LblAmortizacion.Text.ToDouble > 0 AndAlso TxtDescuento.Text.ToDouble = 0 Then + ' TxtDescuento.Text = LblAmortizacion.Text + ' LblAmortizacion.Text = "0.00" + 'End If + + 'o si el descuento es igual a la amortizacion + 'If LblAmortizacion.Text.ToDouble = TxtDescuento.Text.ToDouble Then + ' TxtDescuento.Text = LblAmortizacion.Text + ' LblAmortizacion.Text = "0.00" + 'End If - End If 'si el registro es manual, toma el mismo dato If CveFactura <= 0 Then TotalOriginal = TxtTotal.Text.ToDecimal @@ -5030,7 +5029,7 @@ Partial Class Compras_Compras Dim AutoConta As Boolean = UsuarioActual.Empresa.Funcionalidad(200) = "1" - If UsuarioActual.CveEmpresa = 119 AndAlso (DdlPersonalReembolso.SelectedValue.ToEntero > 0 Or DdlCuentaCajaChicaReembolso.SelectedValue.ToEntero > 0 Or DdlTipoComprobante.SelectedValue = "Ant") Then + If UsuarioActual.CveEmpresa.Contiene(119, 158) AndAlso (DdlPersonalReembolso.SelectedValue.ToEntero > 0 Or DdlCuentaCajaChicaReembolso.SelectedValue.ToEntero > 0 Or DdlTipoComprobante.SelectedValue = "Ant") Then AutoConta = False End If @@ -6897,7 +6896,7 @@ Partial Class Compras_Compras If Not RegistroCuentaPuente AndAlso Not ChkNCInvNC.Checked Then 'GASTO - If UsuarioActual.CveEmpresa = 119 Then + If UsuarioActual.CveEmpresa.Contiene(119, 158) Then DT = TmpDT Else DT = TmpDT.FiltraParametros("ISNULL(AplicaCostoIndirecto,0) <> 1") @@ -7034,6 +7033,7 @@ Partial Class Compras_Compras End If Case 5 'Proveedores If CveTipoConcepto = 2 Then ConceptoContable = 305 'cuando es acreedor + Dim UsaComplementaria As Boolean = UsuarioActual.CveEmpresa.Contiene(119, 158) If tipoCambioActual <> 1 Then Select Case ConceptoContable Case 5 @@ -7059,7 +7059,7 @@ Partial Class Compras_Compras Else IdCtaContable = CtaProveedorComplementaria CveCuenta = CveCuentaProveedorComplementaria - If importeMovimiento <> 0 AndAlso (IdCtaContable > 0 Or CveCuenta > 0 Or UsuarioActual.CveEmpresa = 119) Then 'Cuando tiene complementaria lo dividimos en dos Then + If importeMovimiento <> 0 AndAlso (IdCtaContable > 0 Or CveCuenta > 0 OrElse UsaComplementaria) Then 'Cuando tiene complementaria lo dividimos en dos Then importeMN = importeMovimiento If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, 0, Referencia, CveConceptoContableComplementaria, Concepto, FechaMovimiento, IdCtaContable, -1, CveIE, CveCompra:=CveCompra, CveProveedor:=CveProveedor, ImporteMX:=importeMovimiento * tipoCambioActual - importeMovimiento, ImporteME:=importeMovimiento, CveCuenta:=CveCuenta, TipoCambio:=tipoCambioActual, Contabilizable:=SeContabiliza) Then ErrorPrepoliza = True @@ -15228,7 +15228,7 @@ Partial Class Compras_Compras 'SI PUEDE RECIBIR POR OC Y COMPRA ' si usa almacen, si tiene activado que reciba por OC, y que si la compra tipo Proveedor. que lo muestre - If UsuarioActual.CveEmpresa = 119 AndAlso UsuarioActual.Empresa.UsaInventarios And UsuarioActual.Empresa.Funcionalidad(131).ToEntero > 0 AndAlso CveTipoConcepto = 1 Then + If UsuarioActual.CveEmpresa.Contiene(119, 158) AndAlso UsuarioActual.Empresa.UsaInventarios And UsuarioActual.Empresa.Funcionalidad(131).ToEntero > 0 AndAlso CveTipoConcepto = 1 Then DivOCVinculaInv.Visible = True End If @@ -15270,7 +15270,7 @@ Partial Class Compras_Compras 'PROMOCIONES LtOCPromocion.Text = StrPromos.ToString - If LtOCPromocion.Text.Length > 0 And UsuarioActual.CveEmpresa = 119 Then + If LtOCPromocion.Text.Length > 0 And UsuarioActual.CveEmpresa.Contiene(119, 158) Then DivOCPromocion.Visible = True End If @@ -15544,12 +15544,6 @@ Partial Class Compras_Compras 'If DdlOCVinculaInv.SelectedValue.ToEntero = 237 And Not CveFlete > 0 Then Alert("Necesita vincular un flete si selecciona Factura de Flete", TipoMensaje.MsgAdvertencia) : Exit Sub 'If DdlOCVinculaInv.SelectedValue.ToEntero = 240 And Not CveImportacion > 0 Then Alert("Necesita vincular una Importación si selecciona Factura de Importación", TipoMensaje.MsgAdvertencia) : Exit Sub - 'If UsuarioActual.CveEmpresa = 119 And DdlTipoComprobante.SelectedValue = "Fac" Then - ' If Not VerificarProductosCompraConOC() Then - ' Exit Sub - ' End If - 'End If - Dim SubTotalGV = 0.0D Dim Amortizacion As Decimal = TmpDT.SUMD("Total") If ListaDocumentos IsNot Nothing AndAlso ListaDocumentos.Count > 0 AndAlso ArrAnticipos IsNot Nothing AndAlso ArrAnticipos.Count > 0 Then @@ -15612,7 +15606,7 @@ Partial Class Compras_Compras 'SI PUEDE RECIBIR POR OC Y COMPRA - If UsuarioActual.CveEmpresa = 119 AndAlso UsuarioActual.Empresa.UsaInventarios And UsuarioActual.Empresa.Funcionalidad(131).ToEntero > 0 AndAlso CveTipoConcepto = 1 Then + If UsuarioActual.CveEmpresa.Contiene(119, 158) AndAlso UsuarioActual.Empresa.UsaInventarios And UsuarioActual.Empresa.Funcionalidad(131).ToEntero > 0 AndAlso CveTipoConcepto = 1 Then If DdlOCVinculaInv.SelectedValue.ToEntero <= 0 Then Alert("El campo Tipo de recepción almacén es necesario. Por favor verifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia) @@ -17275,7 +17269,7 @@ Partial Class Compras_Compras LblAmortizacion.Text = "0.00" End If - If UsuarioActual.CveEmpresa = 119 AndAlso TieneAmortizacion Then + If UsuarioActual.CveEmpresa.Contiene(119, 158) AndAlso TieneAmortizacion Then Amortizacion = LblAmortizacion.Text.Trim.ToDecimal TxtSubTotal.Text = (TxtSubTotal.Text.ToDouble + Amortizacion).ToString End If From 7ef47b8bacaaea729fcccf28e9037cce2aa2d8e9 Mon Sep 17 00:00:00 2001 From: rrene Date: Thu, 10 Dec 2020 23:05:19 -0700 Subject: [PATCH 10/39] -- existencias ps, el parametro de Excluyetransitorios --- App_Code/ClsInventarios.vb | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/App_Code/ClsInventarios.vb b/App_Code/ClsInventarios.vb index e2d1d8327..b89221914 100644 --- a/App_Code/ClsInventarios.vb +++ b/App_Code/ClsInventarios.vb @@ -1875,7 +1875,7 @@ Public Class ClsInventarios Optional Serie As String = "-1", Optional Lote As String = "-1", Optional FechaCaducidad As Date = MinFecha, Optional CveVendedor As Integer = -1, Optional CveCliente As Integer = -1, Optional ExcluyeAdelantado As Integer = -1, Optional PendientePorSurtir As Integer = -1, - Optional ExcluyeApartados As Integer = 1, Optional RestringirAlmacenes As Integer = -1) As Decimal + Optional ExcluyeApartados As Integer = 1, Optional RestringirAlmacenes As Integer = -1, Optional ExcluyeTransitorios As Integer = -1) As Decimal Dim Retorno As Decimal = -1 If FechaMovto = "-1" Then @@ -1900,6 +1900,7 @@ Public Class ClsInventarios .Add("@ExcluyeAdelantado", SqlDbType.Int).Value = ExcluyeAdelantado .Add("@PendientePorSurtir", SqlDbType.Int).Value = PendientePorSurtir .Add("@ExcluyeApartados", SqlDbType.Int).Value = ExcluyeApartados + .Add("@ExcluyeTransitorios", SqlDbType.Int).Value = ExcluyeTransitorios .Add("@RestringirAlmacenes", SqlDbType.Int).Value = RestringirAlmacenes .Add("@Existencia", SqlDbType.Money).Direction = ParameterDirection.Output @@ -1927,7 +1928,7 @@ Public Class ClsInventarios Optional FechaMovto As String = "-1", Optional CveVendedor As Integer = -1, Optional CveCliente As Integer = -1, Optional Serie As String = "-1", Optional Lote As String = "-1", Optional Caducidad As Date = MinFecha, Optional ExcluyeAdelantado As Integer = -1, Optional PendientePorSurtir As Integer = -1, - Optional ExcluyeApartados As Integer = 1, Optional RestringirAlmacenes As Integer = -1, Optional TopSelect As Integer = 10000) As Boolean + Optional ExcluyeApartados As Integer = 1, Optional RestringirAlmacenes As Integer = -1, Optional ExcluyeTransitorios As Integer = -1, Optional TopSelect As Integer = 10000) As Boolean Dim Retorno As Boolean = False DataAdapter("PA_Inv_ExistenciasGet") @@ -1948,6 +1949,7 @@ Public Class ClsInventarios .Add("@ExcluyeAdelantado", SqlDbType.Int).Value = ExcluyeAdelantado .Add("@PendientePorSurtir", SqlDbType.Int).Value = PendientePorSurtir .Add("@ExcluyeApartados", SqlDbType.Int).Value = ExcluyeApartados + .Add("@ExcluyeTransitorios", SqlDbType.Int).Value = ExcluyeTransitorios .Add("@RestringirAlmacenes", SqlDbType.Int).Value = RestringirAlmacenes .Add("@TopSelect", SqlDbType.Int).Value = TopSelect From 7e3785aabaf8468edfd9c96970688dcac06085a3 Mon Sep 17 00:00:00 2001 From: rrene Date: Thu, 10 Dec 2020 23:05:34 -0700 Subject: [PATCH 11/39] mas alta el popup existencia --- Site.master | 1416 +++++++++++++++++++++++++-------------------------- 1 file changed, 708 insertions(+), 708 deletions(-) diff --git a/Site.master b/Site.master index 5c6489dad..30390b077 100644 --- a/Site.master +++ b/Site.master @@ -1,672 +1,672 @@ -<%@ Master Language="VB" CodeFile="Site.master.vb" Inherits="Site" %> - -<%@ Import Namespace="System.Web.Optimization" %> - - - - - - Sistema de Información Gerencial - - - - - - - <%: Scripts.Render("~/bundles/modernizr") %> - <%: Styles.Render("~/Content/AjaxControlToolkit/Styles/Bundle") %> - - - <%-- - - --%> - <%: Styles.Render("~/Metronic/assets/global/css/css") %> - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - <%--Site Scripts--%> - - - - <%: Scripts.Render("~/bundles/scripts") %> - - - - -
- -
- - - - -
-
- - -
- - -
- -
- - - -
-
- -
-
-

- - -

-
+<%@ Master Language="VB" CodeFile="Site.master.vb" Inherits="Site" %> + +<%@ Import Namespace="System.Web.Optimization" %> + + + + + + Sistema de Información Gerencial + + + + + + + <%: Scripts.Render("~/bundles/modernizr") %> + <%: Styles.Render("~/Content/AjaxControlToolkit/Styles/Bundle") %> + + + <%-- + + --%> + <%: Styles.Render("~/Metronic/assets/global/css/css") %> + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + <%--Site Scripts--%> + + + + <%: Scripts.Render("~/bundles/scripts") %> + + + + +
+ +
+ + + + +
+
+ + +
+ + +
+ +
+ + + +
+
+ +
+
+

+ + +

+
-
-
-
- - - -
-
-
-
- -
-
- - -
- - -
-
-
- - -
-
-
-
- - - - -
-
- -
-
- -
- - - - <%-- MODAL SOPORTE --%> - <%-- --%> - <%-- END MODAL SOPORTE --%> - - - - - - <%----%> - - - +
+
+
+ + + +
+
+
+
+ +
+
+ + +
+ + +
+
+
+ + +
+
+
+
+ + + + +
+
+ +
+
+ +
+ + + + <%-- MODAL SOPORTE --%> + <%-- --%> + <%-- END MODAL SOPORTE --%> + + + + + + <%----%> + + + @@ -723,44 +723,44 @@
- - - - - - - - - <%: Scripts.Render("~/Metronic/assets/global/scripts/JS") %> - - - - - - - - - - + + + + + + + + + <%: Scripts.Render("~/Metronic/assets/global/scripts/JS") %> + + + + + + + + + + From 8601facfd90148a0b45460d58533702363629b4f Mon Sep 17 00:00:00 2001 From: rrene Date: Thu, 10 Dec 2020 23:06:14 -0700 Subject: [PATCH 12/39] mas alto el modal --- Inventarios/PopUpExistenciasAlmacen.aspx | 4 ++-- Inventarios/PopUpExistenciasAlmacen.aspx.vb | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Inventarios/PopUpExistenciasAlmacen.aspx b/Inventarios/PopUpExistenciasAlmacen.aspx index b618d6320..3588e3237 100644 --- a/Inventarios/PopUpExistenciasAlmacen.aspx +++ b/Inventarios/PopUpExistenciasAlmacen.aspx @@ -45,7 +45,7 @@ -
+
@@ -138,7 +138,7 @@
-
+
diff --git a/Inventarios/PopUpExistenciasAlmacen.aspx.vb b/Inventarios/PopUpExistenciasAlmacen.aspx.vb index 9e7fbd992..08d54fcc4 100644 --- a/Inventarios/PopUpExistenciasAlmacen.aspx.vb +++ b/Inventarios/PopUpExistenciasAlmacen.aspx.vb @@ -100,7 +100,7 @@ Partial Class Inventarios_Default If ValidarFiltrosSeleccionados() OrElse CvePS > 0 Then Dim ObjInventarios As New ClsInventarios() If ObjInventarios.GetExistenciasProducto(CvePS, -1, UsuarioActual.CveEmpresa, -1, FechaMovto:=DateTime.Today.AddDays(1).ToString("yyyy/MM/dd HH:mm"), - ExcluyeApartados:=-1, ExcluyeAdelantado:=1, CveSubProyecto:=DdlSubProyecto.SelectedValue.ToEntero, TopSelect:=100) Then + ExcluyeApartados:=-1, ExcluyeAdelantado:=1, CveSubProyecto:=DdlSubProyecto.SelectedValue.ToEntero, ExcluyeTransitorios:=1, TopSelect:=100) Then Dim dr As Data.DataRow = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePS).FiltroPrimero("") If dr IsNot Nothing Then From ce8c6cc9df5b5e238e13729c21aafe123c9d1d2c Mon Sep 17 00:00:00 2001 From: rrene Date: Fri, 11 Dec 2020 11:52:33 -0700 Subject: [PATCH 13/39] -- en la agrupacion por compra, que se visualice el concepto de provision --- Compras/ProveedoresAuxiliar.aspx.vb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Compras/ProveedoresAuxiliar.aspx.vb b/Compras/ProveedoresAuxiliar.aspx.vb index 529a6887d..41bcfe68c 100644 --- a/Compras/ProveedoresAuxiliar.aspx.vb +++ b/Compras/ProveedoresAuxiliar.aspx.vb @@ -83,7 +83,7 @@ Partial Class Compras_ProveedoresAuxiliar If ObjConta.GetProveedoresAuxiliar(DdlProveeedores.SelectedValue.ToEntero, -1, txtFechaI.Text.ToDate, txtFechaF.Text.ToDate, UsuarioActual.CveEmpresa, DdlOpcion.SelectedValue.ToEntero, DdlTipoProveedor.SelectedValue.ToEntero, DdlOpcionContabilizable.SelectedValue.ToEntero) Then If DdlOpcion.SelectedValue.ToEntero = 2 Then - GvP.DataSource = ObjConta.DtResultados.FiltraParametros($" IIF(ISNULL(CveConceptoContable,0) = 5 AND Importe >= 0,0,1) = 1 ") + GvP.DataSource = ObjConta.DtResultados '.FiltraParametros($" IIF(ISNULL(CveConceptoContable,0) in (5,311) AND Importe >= 0,0,1) = 1 ") 'excluye las provisiones Else GvP.DataSource = ObjConta.DtResultados End If From 17348ffe57bb112e5d1268029eb6f53a3300656e Mon Sep 17 00:00:00 2001 From: Rakcsle Supertramp Date: Fri, 11 Dec 2020 12:46:26 -0700 Subject: [PATCH 14/39] Contratos --- App_Code/ClsContratos.vb | 16 +- App_Code/ClsPaginas.vb | 37 ++++ App_Code/ClsRH.vb | 45 ++-- Contratos/ContratoObra.aspx.vb | 315 ++++++++++++++++++++-------- Inventarios/TraspasoAlmacen.aspx.vb | 4 +- 5 files changed, 309 insertions(+), 108 deletions(-) diff --git a/App_Code/ClsContratos.vb b/App_Code/ClsContratos.vb index 2f6dc4b60..81bfc0d90 100644 --- a/App_Code/ClsContratos.vb +++ b/App_Code/ClsContratos.vb @@ -1007,14 +1007,15 @@ Public Class ClsContratos End Try Return Retorno - End Function - - - + End Function + + + #End Region - + #Region "CONTRATOS DETALLE" - Public Function AddContratosDetalle(CveContrato As Integer, CvePS As Integer, Cantidad As Double, PU As Double, CveUsuario As Integer, CveTipoPresupuesto As Integer, NoIdentificacion As String, LimitarCantidad As Boolean, OCInterna As String, Optional Observacion As String = "") As Boolean + Public Function AddContratosDetalle(CveContrato As Integer, CvePS As Integer, Cantidad As Double, PU As Double, CveUsuario As Integer, CveTipoPresupuesto As Integer, NoIdentificacion As String, LimitarCantidad As Boolean, OCInterna As String, + Optional Observacion As String = "", Optional CveRubro As Integer = -1, Optional CveActividad As Integer = -1, Optional CveSubTipoActivoFijo As Integer = -1) As Boolean Dim Retorno = False DataAdapter("PA_Con_ContratosDetalleAdd") @@ -1029,6 +1030,9 @@ Public Class ClsContratos .Add("@OCInterna", SqlDbType.VarChar).Value = OCInterna .Add("@LimitarCantidad", SqlDbType.Bit).Value = If(LimitarCantidad, 1, 0) .Add("@Observacion", SqlDbType.VarChar).Value = Observacion + .Add("@CveRubro", SqlDbType.Int).Value = CveRubro + .Add("@CveActividad", SqlDbType.Int).Value = CveActividad + .Add("@CveSubTipoActivoFijo", SqlDbType.Int).Value = CveSubTipoActivoFijo 'NoIdentificacion End With diff --git a/App_Code/ClsPaginas.vb b/App_Code/ClsPaginas.vb index 850cbb1c6..be81c310e 100644 --- a/App_Code/ClsPaginas.vb +++ b/App_Code/ClsPaginas.vb @@ -634,6 +634,8 @@ Public Class ClsPaginas Application("GlobalDTEmpresas") = value End Set End Property + + Property GlobalDTClasificaciones(Optional CveEmpresa As Integer = -1, Optional CveCategoria As Integer = -1, Optional UsoClasificacion As Integer = -1, Optional CveClasificacion As Integer = -1) As DataTable Get Dim AppNombre As String = String.Format("GlobalDTClasificaciones-{0}", CveEmpresa) @@ -664,6 +666,41 @@ Public Class ClsPaginas Application(AppNombre) = value End Set End Property + + + + + Property GlobalDTRHActividades(CveEmpresa As Integer) As DataTable + Get + Dim AppNombre As String = String.Format("GlobalDTRHActividades-{0}", CveEmpresa) + 'sino existe, recarga los datos + If Application(AppNombre) Is Nothing Then + + Dim ObjRH As New ClsRH + If ObjRH.GetActividades(CveEmpresa) Then Application(AppNombre) = ObjRH.DtResultados + ObjRH.Dispose() + + End If + + If CveEmpresa <> -1 Then + Dim Str As New StringBuilder + Str.AppendFormat("CveEmpresa = {0}", CveEmpresa) + Dim Dv As New DataView(DirectCast(Application(AppNombre), DataTable), Str.ToString(), "", DataViewRowState.CurrentRows) + GlobalDTRHActividades = Dv.ToTable + Dv.Dispose() + Else + GlobalDTRHActividades = DirectCast(Application(AppNombre), DataTable) + End If + + + + End Get + Set(value As DataTable) + Dim AppNombre As String = String.Format("GlobalDTRHActividades-{0}", CveEmpresa) + Application(AppNombre) = value + End Set + End Property + Property GlobalDTClasificaciones2(Optional CveEmpresa As Integer = -1, Optional CveCategoria As Integer = -1) As DataTable Get Dim AppNombre As String = String.Format("GlobalDTClasificaciones2-{0}", CveEmpresa) diff --git a/App_Code/ClsRH.vb b/App_Code/ClsRH.vb index de7538cf9..66e53ec8a 100644 --- a/App_Code/ClsRH.vb +++ b/App_Code/ClsRH.vb @@ -6865,21 +6865,40 @@ chkAplicaVacacion As Boolean, chkAplicaIncapacidad As Boolean, chkAplicaRetardo OnError("Ocurrió un error al eliminar el checador", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) End Try Return Retorno - End Function + End Function #End Region - - - 'Public msgsError As New StringBuilder() - 'Public Sub OnError(Mensaje As String, Exeption As Exception, Optional InfoAdicional As String = "") - ' GuardaLog(String.Format("{0} DESCRIPCIÓN DETALLADA: {1} {2} {3}", Mensaje, Exeption.ToString, vbCrLf, InfoAdicional)) - ' msgsError.AppendLine(Mensaje) - ' msgsError.Append("
") - ' 'Alert(Obj, Mensaje, TipoMensaje.MsgError) - ' 'If WebConfigurationManager.AppSettings("SiteName") IsNot Nothing AndAlso WebConfigurationManager.AppSettings("SiteName").ToString = "1" Then MandaCorreoError(String.Format("{0} DESCRIPCIÓN DETALLADA: {1} {2} {3}", Mensaje, Exeption.ToString, vbCrLf, InfoAdicional)) - 'End Sub - + +#Region " A C T I V I D A D E S" + + + Public Function GetActividades(CveEmpresa As Integer) As Boolean + Dim Retorno As Boolean = False + DataAdapter("PA_RH_ActividadesGet") + With SqlAdapter.SelectCommand.Parameters + .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + End With + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al obtener el listado de checadores", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End Try + Return Retorno + End Function +#End Region + + + 'Public msgsError As New StringBuilder() + 'Public Sub OnError(Mensaje As String, Exeption As Exception, Optional InfoAdicional As String = "") + ' GuardaLog(String.Format("{0} DESCRIPCIÓN DETALLADA: {1} {2} {3}", Mensaje, Exeption.ToString, vbCrLf, InfoAdicional)) + ' msgsError.AppendLine(Mensaje) + ' msgsError.Append("
") + ' 'Alert(Obj, Mensaje, TipoMensaje.MsgError) + ' 'If WebConfigurationManager.AppSettings("SiteName") IsNot Nothing AndAlso WebConfigurationManager.AppSettings("SiteName").ToString = "1" Then MandaCorreoError(String.Format("{0} DESCRIPCIÓN DETALLADA: {1} {2} {3}", Mensaje, Exeption.ToString, vbCrLf, InfoAdicional)) + 'End Sub + #Region " IDisposable Support " - ' IDisposable + ' IDisposable Protected Overridable Sub Dispose(ByVal disposing As Boolean) 'If msgsError.ToString().Length > 0 Then ' Alert(msgsError.ToString(), TipoMensaje.MsgError) diff --git a/Contratos/ContratoObra.aspx.vb b/Contratos/ContratoObra.aspx.vb index e04960ae0..15bce85a9 100644 --- a/Contratos/ContratoObra.aspx.vb +++ b/Contratos/ContratoObra.aspx.vb @@ -596,6 +596,16 @@ Partial Class Contratos_ContratoObra TmpDT.Columns.Add("LimitarCantidad", GetType(Integer)) TmpDT.Columns.Add("OCInterna", GetType(String)) TmpDT.Columns.Add("Observacion", GetType(String)) + + TmpDT.Columns.Add("CveRubro", GetType(Integer)) + TmpDT.Columns.Add("CveActividad", GetType(Integer)) + TmpDT.Columns.Add("CveSubTipoActivoFijo", GetType(Integer)) + + TmpDT.Columns.Add("Rubro", GetType(String)) + TmpDT.Columns.Add("Actividad", GetType(String)) + TmpDT.Columns.Add("SubTipoActivoFijo", GetType(String)) + + End Sub Protected Sub Limpiar() TxtNumeroContrato.Text = "" @@ -4126,27 +4136,58 @@ Partial Class Contratos_ContratoObra Protected Sub BtnCargaPresupuesto_Click(sender As Object, e As EventArgs) Dim DTCargaPresupuesto As New DataTable - DTCargaPresupuesto = CargaPreSupuestoExcel() + Dim DTCargaPresupuestoInsumos As New DataTable + Dim DTCargaPresupuestoManoObra As New DataTable + Dim DTCargaPresupuestoFlotillas As New DataTable + + + If TipoCargaPresupuesto = EnumTipoCargaPresupuesto.Ventas Then + DTCargaPresupuesto = CargaPreSupuestoExcel("Presupuesto") + + + If DTCargaPresupuesto.Rows.Count > 0 Then + ProcesaDatosCargaPresupuesto(DTCargaPresupuesto, Nothing, Nothing) + Else + Alert("No se encintraron partidas en el documento", TipoMensaje.MsgAdvertencia) + End If + - If DTCargaPresupuesto.Rows.Count > 0 Then - ProcesaDatosCargaPresupuesto(DTCargaPresupuesto) Else - Alert("No se encintraron partidas en el documento", TipoMensaje.MsgAdvertencia) + + DTCargaPresupuesto = CargaPreSupuestoExcel("Insumos") + DTCargaPresupuestoManoObra = CargaPreSupuestoExcel("ManoObra") + DTCargaPresupuestoFlotillas = CargaPreSupuestoExcel("Flotillas") + + ProcesaDatosCargaPresupuesto(DTCargaPresupuesto, DTCargaPresupuestoManoObra, DTCargaPresupuestoFlotillas) + End If + TxtModalCargaPresupuesto.Text = "" + End Sub Protected Sub BtnDecargaFormato_Click(sender As Object, e As EventArgs) - Dim FI As New IO.FileInfo($"{Extensiones.DirectorioBaseEmpresas}\Empresas\Grales\Formatos\FormatoPresupuestoObra.xlsx") + If TipoCargaPresupuesto = EnumTipoCargaPresupuesto.Ventas Then + FI = New IO.FileInfo($"{Extensiones.DirectorioBaseEmpresas}\Empresas\Grales\Formatos\FormatoPresupuestoObra.xlsx") + Else + FI = New IO.FileInfo($"{Extensiones.DirectorioBaseEmpresas}\Empresas\Grales\Formatos\FormatoPresupuestoObraInterno.xlsx") + End If + If FI.Exists Then Response.ContentType = "application/octet-stream" - Response.AppendHeader("Content-Disposition", $"attachment; filename=FormatoPresupuestoObra.xlsx") + + If TipoCargaPresupuesto = EnumTipoCargaPresupuesto.Ventas Then + Response.AppendHeader("Content-Disposition", $"attachment; filename=FormatoPresupuestoObra.xlsx") + Else + Response.AppendHeader("Content-Disposition", $"attachment; filename=FormatoPresupuestoObraInterno.xlsx") + End If + Response.TransmitFile(FI.FullName) Response.End() @@ -4156,7 +4197,7 @@ Partial Class Contratos_ContratoObra End Sub - Private Function CargaPreSupuestoExcel() As DataTable + Private Function CargaPreSupuestoExcel(Hoja As String) As DataTable Dim FileExtension As String = "-1" Dim Filesgral As List(Of Archivo) = TxtModalCargaPresupuesto.getfiles().Archivos @@ -4178,7 +4219,7 @@ Partial Class Contratos_ContratoObra tempArray = fileItem.filename.ToString().Split("-".ToCharArray()) SpreadsheetInfo.SetLicense(Extensiones.SerialGemBoxSpreadsheet) Dim workbook = ExcelFile.Load(fileItem.FileUrl) - Dim worksheet = workbook.Worksheets(0) + Dim worksheet = workbook.Worksheets(Hoja) DTPS = worksheet.CreateDataTable(New CreateDataTableOptions() With { .ColumnHeaders = True, @@ -4190,7 +4231,7 @@ Partial Class Contratos_ContratoObra Next - TxtModalCargaPresupuesto.Text = "" + RegistraScript("$('#ModalUploadPresupuesto').modal('hide')") @@ -4201,7 +4242,25 @@ Partial Class Contratos_ContratoObra End Function - Private Sub ProcesaDatosCargaPresupuesto(DTPresupuesto As DataTable) + Private Sub ProcesaDatosCargaPresupuesto(DTPresupuesto As DataTable, DTCargaPresupuestoManoObra As DataTable, DTCargaPresupuestoFlotillas As DataTable) + + + If Not DTPresupuesto Is Nothing Then + DTPresupuesto.CaseSensitive = False + End If + + If Not DTCargaPresupuestoManoObra Is Nothing Then + DTCargaPresupuestoManoObra.CaseSensitive = False + End If + + If Not DTCargaPresupuestoFlotillas Is Nothing Then + DTCargaPresupuestoFlotillas.CaseSensitive = False + End If + + + + + Dim DTPS = New DataTable DTPS.Columns.Add("CveContratoDetalle", GetType(Integer)) @@ -4228,65 +4287,141 @@ Partial Class Contratos_ContratoObra DTPS.Columns.Add("OCInterna", GetType(String)) DTPS.Columns.Add("Observacion", GetType(String)) + DTPS.Columns.Add("CveRubro", GetType(Integer)) + DTPS.Columns.Add("CveActividad", GetType(Integer)) + DTPS.Columns.Add("CveSubTipoActivoFijo", GetType(Integer)) + + DTPS.Columns.Add("Rubro", GetType(String)) + DTPS.Columns.Add("Actividad", GetType(String)) + DTPS.Columns.Add("SubTipoActivoFijo", GetType(String)) + Dim RowNoEncontrados As String = "" - For Each DrowPS As DataRow In DTPresupuesto.Rows + If Not DTPresupuesto Is Nothing Then + For Each DrowPS As DataRow In DTPresupuesto.Rows - Dim StrArray() As String = GetPS("PS", DrowPS("PS").ToString).Split("|"c) - Dim CvePS As Integer - Dim CveUM As Integer + Dim StrArray() As String = GetPS("PS", DrowPS("Producto").ToString).Split("|"c) + Dim CvePS As Integer + Dim CveUM As Integer - If StrArray.Length > 0 Then - If CBool(StrArray(0)) = True Then - CvePS = StrArray(1).ToEntero - Else - RowNoEncontrados &= StrArray(1) & "<\BR>" + If StrArray.Length > 0 Then + If CBool(StrArray(0)) = True Then + CvePS = StrArray(1).ToEntero + Else + RowNoEncontrados &= StrArray(1) & "<\BR>" + End If End If - End If - - If CvePS > 0 And DrowPS("Cantidad").ToString.ToDouble > 0 Then - - CveUM = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePS).FiltroPrimeroValor("CveUnidadMedida", "").ToString.ToEntero - - Dim Row As DataRow = DTPS.NewRow() - Row("Cantidad") = DrowPS("Cantidad").ToString.ToDouble - Row("CantidadContratada") = DrowPS("Cantidad").ToString.ToDouble - Row("CveUM") = CveUM - Row("UM") = "" - Row("CveClasificacion") = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePS).FiltroPrimeroValor("CveClasificacion", "").ToString.ToEntero - Row("Clasificacion") = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltroPrimeroValor("Clasificacion", $"CveClasificacion = '{ Row("CveClasificacion").ToString }'").ToString - Row("CvePS") = CvePS - Row("PS") = DrowPS("PS").ToString - Row("CodigoPS") = DrowPS("PS").ToString - Row("PU") = DrowPS("PU").ToString.ToDouble - Row("Total") = DrowPS("Cantidad").ToString.ToDouble * DrowPS("PU").ToString.ToDouble - - - Select Case TipoCargaPresupuesto - Case EnumTipoCargaPresupuesto.Ventas - Row("CveTipoPresupuesto") = 2 - Exit Select - Case EnumTipoCargaPresupuesto.Control - Row("CveTipoPresupuesto") = 1 - Exit Select - Case Else - Row("CveTipoPresupuesto") = 1 - End Select - - - Row("NoIdentificacion") = "" - Row("OCInterna") = "" - Row("LimitarCantidad") = 0 - Row("Observacion") = "" - - DTPS.Rows.Add(Row) - - End If - Next + If CvePS > 0 And DrowPS("Cantidad").ToString.ToDouble > 0 Then + + + + CveUM = GlobalDTUnidadesMedida(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveUnidadMedida", $" UnidadMedida = '{ DrowPS("UnidadMedida").ToString.Trim }' OR Abreviatura = '{ DrowPS("UnidadMedida").ToString.Trim }'").ToEntero + + If CveUM <= 0 Then + CveUM = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePS).FiltroPrimeroValor("CveUnidadMedida", "").ToString.ToEntero + End If + + + Dim Row As DataRow = DTPS.NewRow() + Row("Cantidad") = DrowPS("Cantidad").ToString.ToDouble + Row("CantidadContratada") = DrowPS("Cantidad").ToString.ToDouble + Row("CveUM") = CveUM + Row("UM") = "" + Row("CveClasificacion") = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePS).FiltroPrimeroValor("CveClasificacion", "").ToString.ToEntero + Row("Clasificacion") = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltroPrimeroValor("Clasificacion", $"CveClasificacion = '{ Row("CveClasificacion").ToString }'").ToString + Row("CvePS") = CvePS + Row("PS") = DrowPS("Producto").ToString + Row("CodigoPS") = DrowPS("Producto").ToString + Row("PU") = DrowPS("PU").ToString.ToDouble + Row("Total") = DrowPS("Cantidad").ToString.ToDouble * DrowPS("PU").ToString.ToDouble + + + + + Select Case TipoCargaPresupuesto + Case EnumTipoCargaPresupuesto.Ventas + + Row("CveTipoPresupuesto") = 2 + Row("CveRubro") = 1 + Row("CveActividad") = -1 + Row("CveSubTipoActivoFijo") = -1 + + Exit Select + Case EnumTipoCargaPresupuesto.Control + Row("CveTipoPresupuesto") = 1 + Row("CveRubro") = 2 + Row("CveActividad") = -1 + Row("CveSubTipoActivoFijo") = -1 + Exit Select + Case Else + Row("CveTipoPresupuesto") = 1 + Row("CveActividad") = -1 + Row("CveSubTipoActivoFijo") = -1 + End Select + + + Row("NoIdentificacion") = "" + Row("OCInterna") = "" + Row("LimitarCantidad") = 0 + Row("Observacion") = "" + + DTPS.Rows.Add(Row) + + End If + Next + + End If + + + + If Not DTCargaPresupuestoManoObra Is Nothing Then + + + For Each DrowPS As DataRow In DTCargaPresupuestoManoObra.Rows + + Dim CveActividad As Integer = 0 + + CveActividad = GlobalDTRHActividades(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveActividad", $" Actividad = '{ DrowPS("Actividad").ToString.Trim }'").ToEntero + + If CveActividad > 0 And DrowPS("Cantidad").ToString.ToDouble > 0 Then + + Dim Row As DataRow = DTPS.NewRow() + Row("Cantidad") = DrowPS("Cantidad").ToString.ToDouble + Row("CantidadContratada") = DrowPS("Cantidad").ToString.ToDouble + Row("CveUM") = -1 + Row("UM") = "" + Row("CveClasificacion") = -1 + Row("Clasificacion") = "" + Row("CvePS") = -1 + Row("PS") = DrowPS("Actividad").ToString + Row("CodigoPS") = DrowPS("Actividad").ToString + Row("PU") = DrowPS("PU").ToString.ToDouble + Row("Total") = DrowPS("Cantidad").ToString.ToDouble * DrowPS("PU").ToString.ToDouble + + Row("CveTipoPresupuesto") = 2 + Row("CveRubro") = 3 + Row("CveActividad") = CveActividad + Row("CveSubTipoActivoFijo") = -1 + + Row("NoIdentificacion") = "" + Row("OCInterna") = "" + Row("LimitarCantidad") = 0 + Row("Observacion") = "" + + DTPS.Rows.Add(Row) + + End If + Next + + End If + + If Not DTCargaPresupuestoFlotillas Is Nothing Then + + End If Dim ErrorProceso = False Dim ObjContratos As New ClsContratos @@ -4295,10 +4430,12 @@ Partial Class Contratos_ContratoObra For Each Row As DataRow In DTPS.Rows - 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 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, CveRubro:=Row("CveRubro").ToString.ToEntero, + CveActividad:=Row("CveActividad").ToString.ToEntero, CveSubTipoActivoFijo:=Row("CveSubTipoActivoFijo").ToString.ToEntero) 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")) + Dim msj As String = String.Format("Se agregaron {0} {1} del producto {2} con rubro {4} con un precio ${3}.", Row("Cantidad"), Row("UM"), Row("PS"), Row("PU"), Row("CveRubro")) guardarBitacora(msj) End If @@ -4322,6 +4459,14 @@ Partial Class Contratos_ContratoObra NrowTmpDT("LimitarCantidad") = Row("LimitarCantidad") NrowTmpDT("Observacion") = Row("Observacion") + NrowTmpDT("CveRubro") = Row("CveRubro") + NrowTmpDT("CveActividad") = Row("CveActividad") + NrowTmpDT("CveSubTipoActivoFijo") = Row("CveSubTipoActivoFijo") + + NrowTmpDT("Rubro") = Row("Rubro") + NrowTmpDT("Actividad") = Row("Actividad") + NrowTmpDT("SubTipoActivoFijo") = Row("SubTipoActivoFijo") + NrowTmpDT("CveContratoDetalle") = ObjContratos.DtResultados.Rows(0)("CveContratoDetalle") @@ -4606,42 +4751,38 @@ Partial Class Contratos_ContratoObra Con.Dispose() - If DTDatos.Rows.Count > 0 Then + Try + If DTDatos.Rows.Count > 0 Then - Dim CantidadAvance As Decimal = DTDatos.Rows(0)("Cantidad").ToString.ToDecimal - Dim ImporteAvance As Decimal = DTDatos.Rows(0)("AvanceImporte").ToString.ToDecimal - Dim TotalAvancePorcentaje As Decimal = If(ImporteAvance > 0, (ImporteAvance * 100 / TotalAvanceVentas).RoundSQL(2), 0) + Dim CantidadAvance As Decimal = DTDatos.Rows(0)("Cantidad").ToString.ToDecimal + Dim ImporteAvance As Decimal = DTDatos.Rows(0)("AvanceImporte").ToString.ToDecimal + Dim TotalAvancePorcentaje As Decimal = If(ImporteAvance > 0, (ImporteAvance * 100 / TotalAvanceVentas).RoundSQL(2), 0) - Dim CantidadInterno As Decimal = DTDatos.Rows(0)("CantidadInterno").ToString.ToDecimal - Dim ImporteInterno As Decimal = DTDatos.Rows(0)("ImporteInterno").ToString.ToDecimal - Dim TotalFaltantePorcentaje As Decimal = If(ImporteInterno > 0, (ImporteInterno * 100 / TotalAvanceInterno).RoundSQL(2), 0) + Dim CantidadInterno As Decimal = DTDatos.Rows(0)("CantidadInterno").ToString.ToDecimal + Dim ImporteInterno As Decimal = DTDatos.Rows(0)("ImporteInterno").ToString.ToDecimal + Dim TotalFaltantePorcentaje As Decimal = If(ImporteInterno > 0, (ImporteInterno * 100 / TotalAvanceInterno).RoundSQL(2), 0) - LtlAvanceImporte.Text = $"$ { ImporteAvance.ToString("###,###,###.00") }" - LtlAvanceImporteProcentaje1.Text = $"{TotalAvancePorcentaje.ToString("###.00")} %" - LtlAvanceImporteProcentaje2.Text = $"{TotalAvancePorcentaje.ToString("###.00")}%" - SPAvance1.Attributes.Add("style", $"width:{TotalAvancePorcentaje.ToString.ToEntero}%") + LtlAvanceImporte.Text = $"$ { ImporteAvance.ToString("###,###,###.00") }" + LtlAvanceImporteProcentaje1.Text = $"{TotalAvancePorcentaje.ToString("###.00")} %" + LtlAvanceImporteProcentaje2.Text = $"{TotalAvancePorcentaje.ToString("###.00")}%" + SPAvance1.Attributes.Add("style", $"width:{TotalAvancePorcentaje.ToString.ToEntero}%") - LtlAvanceInternoImporte.Text = $"$ {DTDatos.Rows(0)("ImporteInterno").ToString.ToDecimal.ToString("###,###,###.00")}" - LtlAvanceInternoImportePorcentaje1.Text = $"{TotalFaltantePorcentaje.ToString("###.00")} %" - LtlAvanceInternoImportePorcentaje2.Text = $"{TotalFaltantePorcentaje.ToString("###.00")}%" - SPFaltante.Attributes.Add("style", $"width:{TotalFaltantePorcentaje.ToString.ToEntero}%") + LtlAvanceInternoImporte.Text = $"$ {DTDatos.Rows(0)("ImporteInterno").ToString.ToDecimal.ToString("###,###,###.00")}" + LtlAvanceInternoImportePorcentaje1.Text = $"{TotalFaltantePorcentaje.ToString("###.00")} %" + LtlAvanceInternoImportePorcentaje2.Text = $"{TotalFaltantePorcentaje.ToString("###.00")}%" + SPFaltante.Attributes.Add("style", $"width:{TotalFaltantePorcentaje.ToString.ToEntero}%") - End If + End If + + Catch ex As Exception + + End Try - 'Dim TotalContratos As Decimal = DTDatos.SUM("Importe") - 'Dim TotalAvance As Decimal = DTDatos.SUM("AvanceImporte") - 'Dim TotalFaltante As Decimal = TotalContratos - TotalAvance - 'Dim TotalAvancePorcentaje As Decimal = ((TotalAvance * 100) / TotalContratos).RoundAD(2) - 'Dim TotalFaltantePorcentaje As Decimal = (100 - TotalAvancePorcentaje).RoundAD(2) - - - ' LtlGrafNumeroContratos.Text = NumeroContratos.ToString - 'LtlGrafTotal.Text = TotalContratos.ToString("###,###,###.00") DVGraficas.Visible = True diff --git a/Inventarios/TraspasoAlmacen.aspx.vb b/Inventarios/TraspasoAlmacen.aspx.vb index 434eaf4fb..4af10e301 100644 --- a/Inventarios/TraspasoAlmacen.aspx.vb +++ b/Inventarios/TraspasoAlmacen.aspx.vb @@ -1525,7 +1525,7 @@ Partial Class Inventarios_TraspasoAlmacen FolioBusqueda = If(TxtFolioRecepcion.Text = "", -1, TxtFolioRecepcion.Text.ToEntero) Dim ObjInventarios As New ClsInventarios - If ObjInventarios.GetMovimientosTransitorios(DdlAlmacenRecepcion.SelectedValue.ToEntero, -1, DdlAlmacenTransitorioRecepcion.SelectedValue.ToEntero, -1, FolioBusqueda, UsuarioActual.CveEmpresa) Then + If ObjInventarios.GetMovimientosTransitorios(DdlAlmacenRecepcion.SelectedValue.ToEntero, -1, DdlAlmacenTransitorioRecepcion.SelectedValue.ToEntero, -1, FolioBusqueda, UsuarioActual.CveEmpresa, UsuarioActual.CveUsuario) Then Dtt = ObjInventarios.DtResultados.FiltraParametros(String.Format("CveTipoAlmacenDestino <> 4")) Else Alert("Ocurrió un error al consultar los movimientos transitorios. Por favor vuelva a intentar.", TipoMensaje.MsgAdvertencia) @@ -1820,7 +1820,7 @@ Partial Class Inventarios_TraspasoAlmacen Dim ObjConta As New ClsContabilidad(ObjInventario.IniciaTransacSQL()) '' verifica que no se halla recibido previamente, si ya se recibió da salida - If ObjInventario.GetMovimientosTransitorios(CveAlmacenDestino, -1, CveAlmacenTransitorio, -1, FolioBusqueda, UsuarioActual.CveEmpresa) Then + If ObjInventario.GetMovimientosTransitorios(CveAlmacenDestino, -1, CveAlmacenTransitorio, -1, FolioBusqueda, UsuarioActual.CveEmpresa, UsuarioActual.CveUsuario) Then Dtt = ObjInventario.DtResultados.FiltraParametros(String.Format("CveTipoAlmacenDestino <> 4"), "", {"CveMovimientoDetalle", "Codigo", "Cantidad"}) If Dtt IsNot Nothing AndAlso Dtt.FiltraParametros("Cantidad < 0").Rows.Count > 0 Then From 9c6039c77d28778225f6d952f10667292fe9e5db Mon Sep 17 00:00:00 2001 From: Rakcsle Supertramp Date: Fri, 11 Dec 2020 13:56:32 -0700 Subject: [PATCH 15/39] Rep Compras Detalle cambio de fecha --- App_Code/ClsContratos.vb | 3 ++- Compras/RepComprasDetalle.aspx.vb | 7 +++++-- Contratos/ContratoObra.aspx.vb | 21 ++++++++++++--------- 3 files changed, 19 insertions(+), 12 deletions(-) diff --git a/App_Code/ClsContratos.vb b/App_Code/ClsContratos.vb index 81bfc0d90..09656d558 100644 --- a/App_Code/ClsContratos.vb +++ b/App_Code/ClsContratos.vb @@ -1015,7 +1015,7 @@ Public Class ClsContratos #Region "CONTRATOS DETALLE" Public Function AddContratosDetalle(CveContrato As Integer, CvePS As Integer, Cantidad As Double, PU As Double, CveUsuario As Integer, CveTipoPresupuesto As Integer, NoIdentificacion As String, LimitarCantidad As Boolean, OCInterna As String, - Optional Observacion As String = "", Optional CveRubro As Integer = -1, Optional CveActividad As Integer = -1, Optional CveSubTipoActivoFijo As Integer = -1) As Boolean + Optional Observacion As String = "", Optional CveRubro As Integer = -1, Optional CveActividad As Integer = -1, Optional CveSubTipoActivoFijo As Integer = -1, Optional Dias As Integer = -1) As Boolean Dim Retorno = False DataAdapter("PA_Con_ContratosDetalleAdd") @@ -1033,6 +1033,7 @@ Public Class ClsContratos .Add("@CveRubro", SqlDbType.Int).Value = CveRubro .Add("@CveActividad", SqlDbType.Int).Value = CveActividad .Add("@CveSubTipoActivoFijo", SqlDbType.Int).Value = CveSubTipoActivoFijo + .Add("@Dias", SqlDbType.Int).Value = Dias 'NoIdentificacion End With diff --git a/Compras/RepComprasDetalle.aspx.vb b/Compras/RepComprasDetalle.aspx.vb index e7a5e5439..9e2776116 100644 --- a/Compras/RepComprasDetalle.aspx.vb +++ b/Compras/RepComprasDetalle.aspx.vb @@ -291,7 +291,10 @@ Partial Class Compras_RepComprasDetalle FechaICaptura = If(IsDate(TxtFechaICaptura.Text.Trim()), TxtFechaICaptura.Text.Trim(), "-1") FechaFCaptura = If(IsDate(TxtFechaFCaptura.Text.Trim()), TxtFechaFCaptura.Text.Trim(), "-1") - + Dim AnioMes As String = If(FechaF <> "-1", "-1", IfNull(Request("AnioMes"), "-1").ToString()) + + + If RblTipoCambio.SelectedValue.ToEntero = 3 And TxtEspecifico.Text <> "" Then TCEspecifico = TxtEspecifico.Text.ToDouble Else @@ -301,7 +304,7 @@ Partial Class Compras_RepComprasDetalle Dim SubProyectos As String = IIf(DdlSubProyecto.GetSelectedValuesM = "", "-1", DdlSubProyecto.GetSelectedValuesM).ToString Dim TipoGasto As String = IIf(DdlTipoGasto.GetSelectedValuesM = "", "-1", DdlTipoGasto.GetSelectedValuesM).ToString - If ObjCompras.GetRepComprasDetalle(DdlGrupo.SelectedValue.ToEntero, IfNull(Request("Anio"), Now.Year).ToString.ToEntero, IfNull(Request("Mes"), "-1").ToString.ToEntero, IfNull(Request("AnioMes"), "-1").ToString(), IfNull(Request("Fecha"), "-1").ToString(), + If ObjCompras.GetRepComprasDetalle(DdlGrupo.SelectedValue.ToEntero, IfNull(Request("Anio"), Now.Year).ToString.ToEntero, IfNull(Request("Mes"), "-1").ToString.ToEntero, AnioMes, IfNull(Request("Fecha"), "-1").ToString(), DdlProveedores.SelectedValue.ToEntero, CveMoneda, DdlUsuario.SelectedValue.ToEntero, FechaI, FechaF, DDlUsuarioCaptura.SelectedValue.ToEntero, IfNull(Request("NumeroRemesa"), "-1").ToString.ToEntero, IfNull(Request("CveUsuarioRemesa"), "-1").ToString.ToEntero, FechaICaptura, FechaFCaptura, IfNull(Request("FechaCaptura"), "-1").ToString, SubProyectos, DdlTipoDocto.SelectedValue, UsuarioActual.CveEmpresa, diff --git a/Contratos/ContratoObra.aspx.vb b/Contratos/ContratoObra.aspx.vb index 15bce85a9..a6c87309f 100644 --- a/Contratos/ContratoObra.aspx.vb +++ b/Contratos/ContratoObra.aspx.vb @@ -595,8 +595,9 @@ Partial Class Contratos_ContratoObra TmpDT.Columns.Add("NoIdentificacion", GetType(String)) TmpDT.Columns.Add("LimitarCantidad", GetType(Integer)) TmpDT.Columns.Add("OCInterna", GetType(String)) - TmpDT.Columns.Add("Observacion", GetType(String)) - + TmpDT.Columns.Add("Observacion", GetType(String)) + + TmpDT.Columns.Add("CveRubro", GetType(Integer)) TmpDT.Columns.Add("CveActividad", GetType(Integer)) TmpDT.Columns.Add("CveSubTipoActivoFijo", GetType(Integer)) @@ -605,6 +606,8 @@ Partial Class Contratos_ContratoObra TmpDT.Columns.Add("Actividad", GetType(String)) TmpDT.Columns.Add("SubTipoActivoFijo", GetType(String)) + TmpDT.Columns.Add("Dias", GetType(Integer)) + End Sub Protected Sub Limpiar() @@ -2204,9 +2207,6 @@ Partial Class Contratos_ContratoObra End If - - - If ObjContratos.GetReporteContratosAvancesDetalleControl(CveContrato, UsuarioActual.CveEmpresa) Then GvDatosAvanceControl.DataSource = ObjContratos.DtResultados @@ -4294,6 +4294,7 @@ Partial Class Contratos_ContratoObra DTPS.Columns.Add("Rubro", GetType(String)) DTPS.Columns.Add("Actividad", GetType(String)) DTPS.Columns.Add("SubTipoActivoFijo", GetType(String)) + DTPS.Columns.Add("Dias", GetType(Integer)) Dim RowNoEncontrados As String = "" @@ -4327,6 +4328,7 @@ Partial Class Contratos_ContratoObra Dim Row As DataRow = DTPS.NewRow() + Row("Cantidad") = DrowPS("Cantidad").ToString.ToDouble Row("CantidadContratada") = DrowPS("Cantidad").ToString.ToDouble Row("CveUM") = CveUM @@ -4339,9 +4341,6 @@ Partial Class Contratos_ContratoObra Row("PU") = DrowPS("PU").ToString.ToDouble Row("Total") = DrowPS("Cantidad").ToString.ToDouble * DrowPS("PU").ToString.ToDouble - - - Select Case TipoCargaPresupuesto Case EnumTipoCargaPresupuesto.Ventas @@ -4349,6 +4348,7 @@ Partial Class Contratos_ContratoObra Row("CveRubro") = 1 Row("CveActividad") = -1 Row("CveSubTipoActivoFijo") = -1 + Row("Dias") = 0 Exit Select Case EnumTipoCargaPresupuesto.Control @@ -4356,11 +4356,13 @@ Partial Class Contratos_ContratoObra Row("CveRubro") = 2 Row("CveActividad") = -1 Row("CveSubTipoActivoFijo") = -1 + Row("Dias") = 0 Exit Select Case Else Row("CveTipoPresupuesto") = 1 Row("CveActividad") = -1 Row("CveSubTipoActivoFijo") = -1 + Row("Dias") = 0 End Select @@ -4406,6 +4408,7 @@ Partial Class Contratos_ContratoObra Row("CveRubro") = 3 Row("CveActividad") = CveActividad Row("CveSubTipoActivoFijo") = -1 + Row("Dias") = DrowPS("Dias").ToString.ToEntero Row("NoIdentificacion") = "" Row("OCInterna") = "" @@ -4432,7 +4435,7 @@ Partial Class Contratos_ContratoObra 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, CveRubro:=Row("CveRubro").ToString.ToEntero, - CveActividad:=Row("CveActividad").ToString.ToEntero, CveSubTipoActivoFijo:=Row("CveSubTipoActivoFijo").ToString.ToEntero) Then + CveActividad:=Row("CveActividad").ToString.ToEntero, CveSubTipoActivoFijo:=Row("CveSubTipoActivoFijo").ToString.ToEntero, Dias:=Row("Dias").ToString.ToEntero) Then If Autorizado Then Dim msj As String = String.Format("Se agregaron {0} {1} del producto {2} con rubro {4} con un precio ${3}.", Row("Cantidad"), Row("UM"), Row("PS"), Row("PU"), Row("CveRubro")) From 7a0ce67ee5c3a282af68782f33e9d071d7590844 Mon Sep 17 00:00:00 2001 From: Rakcsle Supertramp Date: Fri, 11 Dec 2020 20:43:57 -0700 Subject: [PATCH 16/39] Contratos --- App_Code/ClsContratos.vb | 10 +- App_Code/ClsRH.vb | 29 ++- Contratos/ContratoObra.aspx | 60 +++-- Contratos/ContratoObra.aspx.vb | 442 ++++++++++++++++++++++----------- 4 files changed, 376 insertions(+), 165 deletions(-) diff --git a/App_Code/ClsContratos.vb b/App_Code/ClsContratos.vb index 09656d558..e7b9a2971 100644 --- a/App_Code/ClsContratos.vb +++ b/App_Code/ClsContratos.vb @@ -1014,6 +1014,7 @@ Public Class ClsContratos #End Region #Region "CONTRATOS DETALLE" + Public Function AddContratosDetalle(CveContrato As Integer, CvePS As Integer, Cantidad As Double, PU As Double, CveUsuario As Integer, CveTipoPresupuesto As Integer, NoIdentificacion As String, LimitarCantidad As Boolean, OCInterna As String, Optional Observacion As String = "", Optional CveRubro As Integer = -1, Optional CveActividad As Integer = -1, Optional CveSubTipoActivoFijo As Integer = -1, Optional Dias As Integer = -1) As Boolean Dim Retorno = False @@ -1049,7 +1050,8 @@ Public Class ClsContratos End Function - Public Function UpdateContratosDetalle(CveContratoDetalle As Integer, CveContrato As Integer, CvePS As Integer, Cantidad As Double, PU As Double, CveUsuario As Integer, NoIdentificacion As String, LimitarCantidad As Boolean, OCInterna As String, Optional Observacion As String = "") As Boolean + Public Function UpdateContratosDetalle(CveContratoDetalle As Integer, CveContrato As Integer, CvePS As Integer, Cantidad As Double, PU As Double, CveUsuario As Integer, NoIdentificacion As String, LimitarCantidad As Boolean, OCInterna As String, + Optional Observacion As String = "", Optional CveRubro As Integer = -1, Optional CveActividad As Integer = -1, Optional CveSubTipoActivoFijo As Integer = -1, Optional Dias As Integer = -1) As Boolean Dim Retorno = False DataAdapter("PA_Con_ContratosDetalleUpdate") @@ -1063,7 +1065,11 @@ Public Class ClsContratos .Add("@NoIdentificacion", SqlDbType.VarChar).Value = NoIdentificacion .Add("@OCInterna", SqlDbType.VarChar).Value = OCInterna .Add("@LimitarCantidad", SqlDbType.Bit).Value = If(LimitarCantidad, 1, 0) - .Add("@Observacion", SqlDbType.VarChar).Value = Observacion + .Add("@Observacion", SqlDbType.VarChar).Value = Observacion + .Add("@CveRubro", SqlDbType.Int).Value = CveRubro + .Add("@CveActividad", SqlDbType.Int).Value = CveActividad + .Add("@CveSubTipoActivoFijo", SqlDbType.Int).Value = CveSubTipoActivoFijo + .Add("@Dias", SqlDbType.Int).Value = Dias End With diff --git a/App_Code/ClsRH.vb b/App_Code/ClsRH.vb index 66e53ec8a..9d5bfabce 100644 --- a/App_Code/ClsRH.vb +++ b/App_Code/ClsRH.vb @@ -1359,6 +1359,8 @@ chkAplicaVacacion As Boolean, chkAplicaIncapacidad As Boolean, chkAplicaRetardo Public Property CveUniforme As Integer + Public Property CveActividad As Integer + Public ReadOnly Property DtResultados() As DataTable Get @@ -6881,10 +6883,35 @@ chkAplicaVacacion As Boolean, chkAplicaIncapacidad As Boolean, chkAplicaRetardo SqlAdapter.Fill(Data) Retorno = True Catch ex As Exception - OnError("Ocurrió un error al obtener el listado de checadores", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + OnError("Ocurrió un error al obtener el listado de actividades ", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) End Try Return Retorno End Function + + + Public Function AddActividades(Actividad As String, CveUsuario As Integer, CveEmpresa As Integer) As Boolean + + CveActividad = -1 + Dim Retorno As Boolean = False + DataAdapter("PA_RH_ActividadesAdd") + With SqlAdapter.SelectCommand.Parameters + .Add("@Actividad", SqlDbType.VarChar).Value = Actividad + .Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario + .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + .Add("@CveActividad", SqlDbType.Int).Direction = ParameterDirection.Output + End With + Try + SqlAdapter.Fill(Data) + + CveActividad = SqlAdapter.SelectCommand.Parameters("@CveActividad").Value.ToString.ToEntero + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al obtener el listado de ", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End Try + Return Retorno + End Function + + #End Region diff --git a/Contratos/ContratoObra.aspx b/Contratos/ContratoObra.aspx index 56c505e65..ef3d982e3 100644 --- a/Contratos/ContratoObra.aspx +++ b/Contratos/ContratoObra.aspx @@ -942,7 +942,7 @@
@@ -997,6 +997,13 @@ + + + + + + + @@ -2696,7 +2703,15 @@
- <%--
- - -
--%> - - <%--
- - -
--%> - - -
+
-
+
- - +
-
+
@@ -2744,10 +2746,28 @@
+ + + +
+ + + + + +
+ +
+ + + + +
-
+
+
diff --git a/Contratos/ContratoObra.aspx.vb b/Contratos/ContratoObra.aspx.vb index a6c87309f..f627ea687 100644 --- a/Contratos/ContratoObra.aspx.vb +++ b/Contratos/ContratoObra.aspx.vb @@ -1490,10 +1490,14 @@ Partial Class Contratos_ContratoObra Row("LimitarCantidad") = False 'If(ChkLimitarVenta.Checked, 1, 0) Row("Observacion") = "" 'TxtObservacionesDetalles.Text + Row("CveRubro") = 1 + + + 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, False, "", Observacion:=Row("Observacion").ToString) Then + 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, False, "", Observacion:=Row("Observacion").ToString, CveRubro:=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")) @@ -1548,7 +1552,7 @@ Partial Class Contratos_ContratoObra Dim ObjContratos As New ClsContratos - If ObjContratos.UpdateContratosDetalle(CveContratoDetalleEditar, CveContrato, CvePS, Cantidad, PU, UsuarioActual.CveUsuario, NoIdentificacion, False, "", Observaciones) Then + If ObjContratos.UpdateContratosDetalle(CveContratoDetalleEditar, CveContrato, CvePS, Cantidad, PU, UsuarioActual.CveUsuario, NoIdentificacion, False, "", Observaciones, CveRubro:=1) 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}", @@ -1809,25 +1813,59 @@ Partial Class Contratos_ContratoObra 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") = False + Row("CveRubro") = DdlRubro.SelectedValue.ToEntero + Row("Rubro") = DdlRubro.SelectedItem.Text + + If DdlRubro.SelectedValue.ToEntero = 3 Then + Row("CveActividad") = DdlActividades.SelectedValue.ToEntero + Row("Actividad") = DdlActividades.SelectedItem.Text + Row("Dias") = TxtDias.Text.ToEntero + Row("CveSubTipoActivoFijo") = -1 + + + Row("CveUM") = -1 + Row("UM") = "" + Row("CveClasificacion") = -1 + Row("Clasificacion") = "" + Row("CvePS") = -1 + Row("PS") = DdlActividades.SelectedItem.Text + Row("CodigoPS") = DdlActividades.SelectedItem.Text + + Else + Row("CveActividad") = -1 + Row("Actividad") = "" + Row("CveSubTipoActivoFijo") = -1 + Row("Dias") = 0 + + + 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 + + + + End If + + 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, False, "") 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 + 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, False, "", + CveRubro:=Row("CveRubro").ToString.ToEntero, CveActividad:=Row("CveActividad").ToString.ToEntero, CveSubTipoActivoFijo:=Row("CveSubTipoActivoFijo").ToString.ToEntero, Dias:=Row("Dias").ToString.ToEntero) 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 @@ -1856,22 +1894,34 @@ Partial Class Contratos_ContratoObra Dim Cantidad, PU As Double Dim CvePS, CveUM As Integer - 'Dim NoIdentificacion As String = "" - 'Dim LimitarCantidad As Boolean + + Dim CveRubro As Integer = DdlRubro.SelectedValue.ToEntero + + Dim CveActividad As Integer = -1 + Dim CveSubTipoActivoFijo As Integer = -1 + Dim Dias As Integer = 0 + + If CveRubro = 3 Then + + CveActividad = DdlActividades.SelectedValue.ToEntero + Dias = TxtDias.Text.ToEntero + + CvePS = -1 + CveUM = -1 + Else + CvePS = DdlProductowsInsumos.SelectedValue.ToEntero + CveUM = DdlUMInsumos.SelectedValue.ToEntero + End If + Cantidad = TxtCantidadInsumos.Text.ToDouble PU = TxtPUInsumos.Text.ToDouble - CvePS = DdlProductowsInsumos.SelectedValue.ToEntero - CveUM = DdlUMInsumos.SelectedValue.ToEntero - 'NoIdentificacion = TxtNoIdentificacionvInsumos.Text.Trim - 'LimitarCantidad = If(ChkLimitarInsumos.Checked, True, False) + Dim row = TmpDT.Select(String.Format(" CveContratoDetalle={0}", CveContratoDetalleEditar))(0) - - Dim ObjContratos As New ClsContratos - If ObjContratos.UpdateContratosDetalle(CveContratoDetalleEditar, CveContrato, CvePS, Cantidad, PU, UsuarioActual.CveUsuario, "", False, "") Then + If ObjContratos.UpdateContratosDetalle(CveContratoDetalleEditar, CveContrato, CvePS, Cantidad, PU, UsuarioActual.CveUsuario, "", False, "", CveRubro:=CveRubro, CveActividad:=CveActividad, CveSubTipoActivoFijo:=CveSubTipoActivoFijo, Dias:=Dias) 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}", @@ -4018,17 +4068,10 @@ Partial Class Contratos_ContratoObra Dim GvRow As GridViewRow = DirectCast((DirectCast(sender, LinkButton)).NamingContainer, GridViewRow) LimpiarModalVentas() - 'CveContratoDetalle,CveUM,CvePS,Cantidad,PU,CveTipoPresupuesto,CveClasificacion,CodigoPS,LimitarCantidad - CveContratoDetalleEditar = GvRow.DataKey("CveContratoDetalle").ToEntero - - 'TxtOCInterna.Text = GvRow.DataKey("OCInterna") TxtCantidad.Text = GvRow.DataKey("CantidadContratada").ToDouble.ToString - 'ChkLimitarVenta.Checked = Boolean.Parse(GvRow.DataKey("LimitarCantidad")) - - 'TxtNoIdentificacionv.Text = GvRow.DataKey("NoIdentificacion").ToDouble.ToString DdlClasificacionAdd.SelectedValueExist(GvRow.DataKey("CveClasificacion").ToEntero) DdlProductows.txtText.Value = GvRow.DataKey("PS").ToString @@ -4050,14 +4093,17 @@ Partial Class Contratos_ContratoObra RegistraScript("$('#ModalVentasAddPS').modal('show')") End Sub Protected Sub LnkEditarPresupuestoControlDetalle_Click(sender As Object, e As EventArgs) + Dim gvRow As GridViewRow = DirectCast((DirectCast(sender, LinkButton)).NamingContainer, GridViewRow) + + Dim CveRubro As Integer = gvRow.DataKey("CveRubro").ToEntero + LimpiarModalControl() CveContratoDetalleEditar = gvRow.DataKey("CveContratoDetalle").ToEntero TxtCantidadInsumos.Text = gvRow.DataKey("CantidadContratada").ToDouble.ToString - 'ChkLimitarInsumos.Checked = Boolean.Parse(gvRow.DataKey("LimitarCantidad")) - ' TxtNoIdentificacionvInsumos.Text = gvRow.DataKey("NoIdentificacion") + DdlClasificacionAddInsumos.SelectedValueExist(gvRow.DataKey("CveClasificacion").ToEntero) @@ -4069,16 +4115,42 @@ Partial Class Contratos_ContratoObra DdlUMInsumos.DataBind() DdlUMInsumos.SelectedValueExist(gvRow.DataKey("CveUM").ToDouble.ToString) - - TxtPUInsumos.Text = gvRow.DataKey("PU").ToDouble.ToString + DdlRubro.SelectedValueExist(gvRow.DataKey("CveRubro").ToString) + + If CveRubro = 3 Then + + DVDias.Visible = True + DVActividadesRH.Visible = True + + DVClasificacion.Visible = False + DVPS.Visible = False + DVUM.Visible = False + + DdlActividades.SelectedValueExist(gvRow.DataKey("CveActividad")) + TxtDias.Text = gvRow.DataKey("Dias") + Else + DVDias.Visible = False + DVActividadesRH.Visible = False + + DVClasificacion.Visible = True + DVPS.Visible = True + DVUM.Visible = True + + DdlActividades.SelectedValueExist(-1) + TxtDias.Text = "0" + + End If + ModalControlPSAdd = False ChkContinualAgregandoControl.Visible = False ChkContinualAgregandoControl.Checked = False + UpModalControlAddPS.Update() + RegistraScript("$('#ModalControlAddPS').modal('show')") End Sub @@ -4108,7 +4180,12 @@ Partial Class Contratos_ContratoObra End Sub Private Sub LimpiarModalControl() + DdlActividades.Items.Clear() + DdlActividades.DataSource = GlobalDTRHActividades(UsuarioActual.CveEmpresa) + DdlActividades.DataBind() + + DdlActividades.Items.Insert(0, New ListItem("Seleccione una", "-1")) TxtCantidadInsumos.Text = "" 'ChkLimitarInsumos.Checked = False @@ -4120,6 +4197,21 @@ Partial Class Contratos_ContratoObra DdlUMInsumos.SelectedValueExist(-1) TxtPUInsumos.Text = "" + DdlRubro.SelectedValue = "2" + ' DdlRubro_SelectedIndexChanged(Nothing, Nothing) + + + DVClasificacion.Visible = True + DVPS.Visible = True + DVUM.Visible = True + + DVDias.Visible = False + DVActividadesRH.Visible = False + + TxtDias.Text = "" + DdlActividades.SelectedValueExist(-1) + + If ModalControlPSAdd = True Then LtlModalControlPSTitulo.Text = "Agregar Producto Presupuesto Control" @@ -4142,8 +4234,8 @@ Partial Class Contratos_ContratoObra If TipoCargaPresupuesto = EnumTipoCargaPresupuesto.Ventas Then - DTCargaPresupuesto = CargaPreSupuestoExcel("Presupuesto") + DTCargaPresupuesto = CargaPreSupuestoExcel("Presupuesto") If DTCargaPresupuesto.Rows.Count > 0 Then ProcesaDatosCargaPresupuesto(DTCargaPresupuesto, Nothing, Nothing) @@ -4151,7 +4243,6 @@ Partial Class Contratos_ContratoObra Alert("No se encintraron partidas en el documento", TipoMensaje.MsgAdvertencia) End If - Else DTCargaPresupuesto = CargaPreSupuestoExcel("Insumos") @@ -4257,6 +4348,7 @@ Partial Class Contratos_ContratoObra DTCargaPresupuestoFlotillas.CaseSensitive = False End If + Dim ErrorProceso = False @@ -4372,7 +4464,8 @@ Partial Class Contratos_ContratoObra Row("Observacion") = "" DTPS.Rows.Add(Row) - + Else + ErrorProceso = True End If Next @@ -4380,44 +4473,77 @@ Partial Class Contratos_ContratoObra - If Not DTCargaPresupuestoManoObra Is Nothing Then + If Not DTCargaPresupuestoManoObra Is Nothing And Not ErrorProceso Then For Each DrowPS As DataRow In DTCargaPresupuestoManoObra.Rows Dim CveActividad As Integer = 0 + Dim Actividad As String - CveActividad = GlobalDTRHActividades(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveActividad", $" Actividad = '{ DrowPS("Actividad").ToString.Trim }'").ToEntero - If CveActividad > 0 And DrowPS("Cantidad").ToString.ToDouble > 0 Then + If DrowPS("Actividad").ToString.Trim.Length > 0 Then + GlobalDTRHActividades(UsuarioActual.CveEmpresa) = Nothing + CveActividad = GlobalDTRHActividades(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveActividad", $" Actividad = '{ DrowPS("Actividad").ToString.Trim }'").ToEntero - Dim Row As DataRow = DTPS.NewRow() - Row("Cantidad") = DrowPS("Cantidad").ToString.ToDouble - Row("CantidadContratada") = DrowPS("Cantidad").ToString.ToDouble - Row("CveUM") = -1 - Row("UM") = "" - Row("CveClasificacion") = -1 - Row("Clasificacion") = "" - Row("CvePS") = -1 - Row("PS") = DrowPS("Actividad").ToString - Row("CodigoPS") = DrowPS("Actividad").ToString - Row("PU") = DrowPS("PU").ToString.ToDouble - Row("Total") = DrowPS("Cantidad").ToString.ToDouble * DrowPS("PU").ToString.ToDouble + If CveActividad <= 0 Then - Row("CveTipoPresupuesto") = 2 - Row("CveRubro") = 3 - Row("CveActividad") = CveActividad - Row("CveSubTipoActivoFijo") = -1 - Row("Dias") = DrowPS("Dias").ToString.ToEntero - Row("NoIdentificacion") = "" - Row("OCInterna") = "" - Row("LimitarCantidad") = 0 - Row("Observacion") = "" + Dim ObjRH As New ClsRH() - DTPS.Rows.Add(Row) + If ObjRH.AddActividades(DrowPS("Actividad").ToString.Trim, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then + CveActividad = ObjRH.CveActividad + + If CveActividad <= 0 Then + ErrorProceso = True + End If + + GlobalDTRHActividades(UsuarioActual.CveEmpresa) = Nothing + + Else + ErrorProceso = True + End If + + ObjRH.Dispose() + + End If + + + If CveActividad > 0 And DrowPS("Cantidad").ToString.ToDouble > 0 And Not ErrorProceso Then + + Actividad = GlobalDTRHActividades(UsuarioActual.CveEmpresa).FiltroPrimeroValor("Actividad", $" CveActividad = {CveActividad}") + + Dim Row As DataRow = DTPS.NewRow() + Row("Cantidad") = DrowPS("Cantidad").ToString.ToDouble + Row("CantidadContratada") = DrowPS("Cantidad").ToString.ToDouble + Row("CveUM") = -1 + Row("UM") = "Actividad RH" + Row("CveClasificacion") = -1 + Row("Clasificacion") = "" + Row("CvePS") = -1 + Row("PS") = Actividad + Row("CodigoPS") = Actividad + Row("PU") = DrowPS("PU").ToString.ToDouble + Row("Total") = DrowPS("Cantidad").ToString.ToDouble * DrowPS("PU").ToString.ToDouble + + Row("CveTipoPresupuesto") = 1 + Row("CveRubro") = 3 + Row("CveActividad") = CveActividad + Row("CveSubTipoActivoFijo") = -1 + Row("Dias") = DrowPS("Dias").ToString.ToEntero + + Row("NoIdentificacion") = "" + Row("OCInterna") = "" + Row("LimitarCantidad") = 0 + Row("Observacion") = "" + + DTPS.Rows.Add(Row) + + End If End If + + Next End If @@ -4426,101 +4552,114 @@ Partial Class Contratos_ContratoObra End If - Dim ErrorProceso = False - Dim ObjContratos As New ClsContratos - Dim TotalRow As Double = 0 - ObjContratos.IniciaTransacSQL() - - For Each Row As DataRow In DTPS.Rows - 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, CveRubro:=Row("CveRubro").ToString.ToEntero, - CveActividad:=Row("CveActividad").ToString.ToEntero, CveSubTipoActivoFijo:=Row("CveSubTipoActivoFijo").ToString.ToEntero, Dias:=Row("Dias").ToString.ToEntero) Then + If Not ErrorProceso Then - If Autorizado Then - Dim msj As String = String.Format("Se agregaron {0} {1} del producto {2} con rubro {4} con un precio ${3}.", Row("Cantidad"), Row("UM"), Row("PS"), Row("PU"), Row("CveRubro")) - guardarBitacora(msj) + Dim ObjContratos As New ClsContratos + Dim TotalRow As Double = 0 + ObjContratos.IniciaTransacSQL() + + For Each Row As DataRow In DTPS.Rows + + 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, CveRubro:=Row("CveRubro").ToString.ToEntero, + CveActividad:=Row("CveActividad").ToString.ToEntero, CveSubTipoActivoFijo:=Row("CveSubTipoActivoFijo").ToString.ToEntero, Dias:=Row("Dias").ToString.ToEntero) Then + + If Autorizado Then + Dim msj As String = String.Format("Se agregaron {0} {1} del producto {2} con rubro {4} con un precio ${3}.", Row("Cantidad"), Row("UM"), Row("PS"), Row("PU"), Row("CveRubro")) + guardarBitacora(msj) + End If + + Dim NrowTmpDT As DataRow = TmpDT.NewRow + + + NrowTmpDT("Cantidad") = Row("Cantidad") + NrowTmpDT("CantidadContratada") = Row("CantidadContratada") + NrowTmpDT("CveUM") = Row("CveUM") + NrowTmpDT("UM") = Row("UM") + NrowTmpDT("CveClasificacion") = Row("CveClasificacion") + NrowTmpDT("Clasificacion") = Row("Clasificacion") + NrowTmpDT("CvePS") = Row("CvePS") + + + NrowTmpDT("PS") = Row("PS") + NrowTmpDT("CodigoPS") = Row("CodigoPS") + + + + + NrowTmpDT("PU") = Row("PU") + NrowTmpDT("Total") = Row("Total") + NrowTmpDT("CveTipoPresupuesto") = Row("CveTipoPresupuesto") + NrowTmpDT("NoIdentificacion") = Row("NoIdentificacion") + NrowTmpDT("OCInterna") = Row("OCInterna") + NrowTmpDT("LimitarCantidad") = Row("LimitarCantidad") + NrowTmpDT("Observacion") = Row("Observacion") + + NrowTmpDT("CveRubro") = Row("CveRubro") + NrowTmpDT("CveActividad") = Row("CveActividad") + NrowTmpDT("CveSubTipoActivoFijo") = Row("CveSubTipoActivoFijo") + + NrowTmpDT("Rubro") = Row("Rubro") + NrowTmpDT("Actividad") = Row("Actividad") + NrowTmpDT("SubTipoActivoFijo") = Row("SubTipoActivoFijo") + + + NrowTmpDT("CveContratoDetalle") = ObjContratos.DtResultados.Rows(0)("CveContratoDetalle") + + TmpDT.Rows.Add(NrowTmpDT) + TmpDT.AcceptChanges() + + TotalRow = TotalRow + NrowTmpDT("Total").ToString.ToDouble + Else + ErrorProceso = True + Exit For End If - - Dim NrowTmpDT As DataRow = TmpDT.NewRow + Next - NrowTmpDT("Cantidad") = Row("Cantidad") - NrowTmpDT("CantidadContratada") = Row("CantidadContratada") - NrowTmpDT("CveUM") = Row("CveUM") - NrowTmpDT("UM") = Row("UM") - NrowTmpDT("CveClasificacion") = Row("CveClasificacion") - NrowTmpDT("Clasificacion") = Row("Clasificacion") - NrowTmpDT("CvePS") = Row("CvePS") - NrowTmpDT("PS") = Row("PS") - NrowTmpDT("CodigoPS") = Row("CodigoPS") - NrowTmpDT("PU") = Row("PU") - NrowTmpDT("Total") = Row("Total") - NrowTmpDT("CveTipoPresupuesto") = Row("CveTipoPresupuesto") - NrowTmpDT("NoIdentificacion") = Row("NoIdentificacion") - NrowTmpDT("OCInterna") = Row("OCInterna") - NrowTmpDT("LimitarCantidad") = Row("LimitarCantidad") - NrowTmpDT("Observacion") = Row("Observacion") - - NrowTmpDT("CveRubro") = Row("CveRubro") - NrowTmpDT("CveActividad") = Row("CveActividad") - NrowTmpDT("CveSubTipoActivoFijo") = Row("CveSubTipoActivoFijo") - - NrowTmpDT("Rubro") = Row("Rubro") - NrowTmpDT("Actividad") = Row("Actividad") - NrowTmpDT("SubTipoActivoFijo") = Row("SubTipoActivoFijo") - - - NrowTmpDT("CveContratoDetalle") = ObjContratos.DtResultados.Rows(0)("CveContratoDetalle") - - TmpDT.Rows.Add(NrowTmpDT) - TmpDT.AcceptChanges() - - TotalRow = TotalRow + NrowTmpDT("Total").ToString.ToDouble + If ErrorProceso Then + ObjContratos.RollBack() + Alert("Se presento un error al cargar el presupuesto.", TipoMensaje.MsgError) Else - ErrorProceso = True - Exit For + + ObjContratos.Commit() + Alert("Presupuesto Cargado correctamente") + + + Select Case TipoCargaPresupuesto + Case EnumTipoCargaPresupuesto.Ventas + CargaGVPresupuestos(TmpDT.FiltraParametros("CveTipoPresupuesto=2")) + UpGV.Update() + Exit Select + Case EnumTipoCargaPresupuesto.Control + CargaGVPresupuestosInsumos(TmpDT.FiltraParametros("CveTipoPresupuesto=1")) + UpGVInsumos.Update() + Exit Select + Case Else + + End Select + + LbTotalGeneral.Text = (LbTotalGeneral.Text.ToDouble + TotalRow).ToString.FormatoNumero + LblImporte.Text = LbTotalGeneral.Text + UpGral.Update() + End If - Next + ObjContratos.Dispose() - If ErrorProceso Then - ObjContratos.RollBack() - Alert("Se presento un error al cargar el presupuesto.", TipoMensaje.MsgError) - Else - - ObjContratos.Commit() - Alert("Presupuesto Cargado correctamente") - - - Select Case TipoCargaPresupuesto - Case EnumTipoCargaPresupuesto.Ventas - CargaGVPresupuestos(TmpDT.FiltraParametros("CveTipoPresupuesto=2")) - UpGV.Update() - Exit Select - Case EnumTipoCargaPresupuesto.Control - CargaGVPresupuestosInsumos(TmpDT.FiltraParametros("CveTipoPresupuesto=1")) - UpGVInsumos.Update() - Exit Select - Case Else - - End Select - - LbTotalGeneral.Text = (LbTotalGeneral.Text.ToDouble + TotalRow).ToString.FormatoNumero - LblImporte.Text = LbTotalGeneral.Text - UpGral.Update() End If - ObjContratos.Dispose() - If RowNoEncontrados.Length > 0 Then Alert($"Productos no encontrados
{RowNoEncontrados} ") End If + + End Sub @@ -4784,10 +4923,6 @@ Partial Class Contratos_ContratoObra End Try - - - - DVGraficas.Visible = True UpGrafica.Update() @@ -4797,6 +4932,29 @@ Partial Class Contratos_ContratoObra + Protected Sub DdlRubro_SelectedIndexChanged(sender As Object, e As EventArgs) + + + If DdlRubro.SelectedValue.ToEntero = 3 Then + DVDias.Visible = True + DVActividadesRH.Visible = True + + DVClasificacion.Visible = False + DVPS.Visible = False + DVUM.Visible = False + Else + DVDias.Visible = False + DVActividadesRH.Visible = False + + DVClasificacion.Visible = True + DVPS.Visible = True + DVUM.Visible = True + + End If + + UpModalControlAddPS.Update() + + End Sub End Class From a380977f663203949c30e9513e4f8e3f47dbe912 Mon Sep 17 00:00:00 2001 From: Rakcsle Supertramp Date: Sat, 12 Dec 2020 12:15:27 -0700 Subject: [PATCH 17/39] Compras viaticos solo mostrar personal activo --- Compras/Compras.aspx.vb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Compras/Compras.aspx.vb b/Compras/Compras.aspx.vb index fb272a042..af6b2a37b 100644 --- a/Compras/Compras.aspx.vb +++ b/Compras/Compras.aspx.vb @@ -1314,7 +1314,7 @@ Partial Class Compras_Compras Dim ObjPersonal As New ClsRH ObjPersonal.GetPersonal(-1, UsuarioActual.CveEmpresa) DdlPersonal.DataSource = ObjPersonal.DtResultados - DdlPersonalReembolso.DataSource = ObjPersonal.DtResultados + DdlPersonalReembolso.DataSource = ObjPersonal.DtResultados.FiltraParametros("CveEstatusPersonal = 1") ObjPersonal.Dispose() DdlPersonal.DataBind() DdlPersonalReembolso.DataBind() From 388b7fbb27b03d21b7b04d120b7ef23f4311e94e Mon Sep 17 00:00:00 2001 From: Antonio Gonzalez Date: Sat, 12 Dec 2020 17:45:05 -0700 Subject: [PATCH 18/39] retirando cambios en el inventario fisico --- Inventarios/InventarioFisicoDetalle.aspx.vb | 60 ++++++++++----------- Inventarios/RepAnomalias.aspx.vb | 3 +- 2 files changed, 32 insertions(+), 31 deletions(-) diff --git a/Inventarios/InventarioFisicoDetalle.aspx.vb b/Inventarios/InventarioFisicoDetalle.aspx.vb index a5abf5a98..a3a248298 100644 --- a/Inventarios/InventarioFisicoDetalle.aspx.vb +++ b/Inventarios/InventarioFisicoDetalle.aspx.vb @@ -328,37 +328,37 @@ Partial Class Inventarios_InventarioFisicoDetalle End If FechaCaducidad = If(TxtFechaCaducidad.Text.Length > 0, TxtFechaCaducidad.Text, MinFecha.ToString) End If - If AplicaSeccion Then - Dim ObjInv As New ClsInventarios - Dim SeccionesAlmacenDelProducto As New DataTable - If ObjInv.GetProductosServiciosAlmacenSeccion(CveProducto, -1, -1, UsuarioActual.CveEmpresa) Then - SeccionesAlmacenDelProducto = ObjInv.DtResultados.FiltraParametros(String.Format("CveAlmacen IN ({0})", CveAlmacenes)) - End If - 'Dim SeccionesAlmacenDelProducto As DataTable = (UsuarioActual.CveEmpresa, -1, CveProducto) '.FiltraParametros(String.Format("CveAlmacen IN ({0})", CveAlmacenes)) - 'Alert(SeccionesAlmacenDelProducto.Rows.Count.ToString) - If SeccionesAlmacenDelProducto.Rows.Count = 1 Then - CveSeccionAlmacen = SeccionesAlmacenDelProducto.FiltroPrimeroValor("CveSeccionAlmacen") - Else - divSeccion.Visible = AplicaSeccion - If DdlSeccionAlmacen.Items.Count = 0 Then - DdlSeccionAlmacen.DataSource = SeccionesAlmacenDelProducto - DdlSeccionAlmacen.DataBind() - DdlSeccionAlmacen.Items.Insert(0, New ListItem("Seleccione", "-1")) - End If + 'If AplicaSeccion Then + ' Dim ObjInv As New ClsInventarios + ' Dim SeccionesAlmacenDelProducto As New DataTable + ' If ObjInv.GetProductosServiciosAlmacenSeccion(CveProducto, -1, -1, UsuarioActual.CveEmpresa) Then + ' SeccionesAlmacenDelProducto = ObjInv.DtResultados.FiltraParametros(String.Format("CveAlmacen IN ({0})", CveAlmacenes)) + ' End If + ' 'Dim SeccionesAlmacenDelProducto As DataTable = (UsuarioActual.CveEmpresa, -1, CveProducto) '.FiltraParametros(String.Format("CveAlmacen IN ({0})", CveAlmacenes)) + ' 'Alert(SeccionesAlmacenDelProducto.Rows.Count.ToString) + ' If SeccionesAlmacenDelProducto.Rows.Count = 1 Then + ' CveSeccionAlmacen = SeccionesAlmacenDelProducto.FiltroPrimeroValor("CveSeccionAlmacen") + ' Else + ' divSeccion.Visible = AplicaSeccion + ' If DdlSeccionAlmacen.Items.Count = 0 Then + ' DdlSeccionAlmacen.DataSource = SeccionesAlmacenDelProducto + ' DdlSeccionAlmacen.DataBind() + ' DdlSeccionAlmacen.Items.Insert(0, New ListItem("Seleccione", "-1")) + ' End If - If DdlSeccionAlmacen.SelectedValue = "-1" Then - RfvSeccionAlmacen.Enabled = True - RfvSeccionAlmacen.Visible = True - RfvSeccionAlmacen.SetFocusOnError = True - RfvSeccionAlmacen.Validate() - RfvSeccionAlmacen.ValidationGroup = " " - Exit Sub - End If - CveSeccionAlmacen = DdlSeccionAlmacen.SelectedValue.ToEntero - End If - ObjInv.Dispose() - SeccionAlmacen = GlobalDTSeccionAlmacen(UsuarioActual.CveEmpresa, -1).FiltroPrimeroValor("SeccionAlmacen", String.Format("CveSeccionAlmacen = {0}", CveSeccionAlmacen)) - End If + ' If DdlSeccionAlmacen.SelectedValue = "-1" Then + ' RfvSeccionAlmacen.Enabled = True + ' RfvSeccionAlmacen.Visible = True + ' RfvSeccionAlmacen.SetFocusOnError = True + ' RfvSeccionAlmacen.Validate() + ' RfvSeccionAlmacen.ValidationGroup = " " + ' Exit Sub + ' End If + ' CveSeccionAlmacen = DdlSeccionAlmacen.SelectedValue.ToEntero + ' End If + ' ObjInv.Dispose() + ' SeccionAlmacen = GlobalDTSeccionAlmacen(UsuarioActual.CveEmpresa, -1).FiltroPrimeroValor("SeccionAlmacen", String.Format("CveSeccionAlmacen = {0}", CveSeccionAlmacen)) + 'End If RFVSerie.ValidationGroup = "GrpIngresar" RFVSerie.Enabled = False diff --git a/Inventarios/RepAnomalias.aspx.vb b/Inventarios/RepAnomalias.aspx.vb index 12433a1ec..57f6afc1a 100644 --- a/Inventarios/RepAnomalias.aspx.vb +++ b/Inventarios/RepAnomalias.aspx.vb @@ -194,9 +194,10 @@ Partial Class Inventarios_RepAnomalias e.Row.Cells(8).Text = "0" End If - If e.Row.Cells(7).Text = MinFecha Then + If e.Row.Cells(7).Text = MinFecha.ToString Then e.Row.Cells(7).Text = "" End If + e.Row.FCLabel("Lblc").Text = e.Row.RowIndex + 1 End If From 66d671bc0f4cca250589f939f8b8ce6805572144 Mon Sep 17 00:00:00 2001 From: Rakcsle Supertramp Date: Mon, 14 Dec 2020 12:00:45 -0700 Subject: [PATCH 19/39] Ventas contratos Egresos --- Compras/ReembolsosComprobaciones.aspx.vb | 49 ++++++++++++++---------- Ventas/Ventas.aspx | 4 +- Ventas/Ventas.aspx.vb | 14 +++++-- vwd.webinfo | 4 ++ 4 files changed, 45 insertions(+), 26 deletions(-) diff --git a/Compras/ReembolsosComprobaciones.aspx.vb b/Compras/ReembolsosComprobaciones.aspx.vb index f5d83d58c..4b00fbc2c 100644 --- a/Compras/ReembolsosComprobaciones.aspx.vb +++ b/Compras/ReembolsosComprobaciones.aspx.vb @@ -93,33 +93,40 @@ Partial Class Compras_ReembolsosComprobaciones Dim ObjPersonal As New ClsRH ObjPersonal.GetPersonal(-1, UsuarioActual.CveEmpresa) - DdlPersonal.DataSource = ObjPersonal.DtResultados.FiltraParametros("CveEstatusPersonal = 1") - ObjPersonal.Dispose() - DdlPersonal.DataBind() - CargaTipoTransaccion() - - If UsuarioActual.Empresa.Funcionalidad(506) = "1" Then - CbPermitirExcedente.Visible = True + If UsuarioActual.CveEmpresa.Contiene(119, 158) Then + DdlPersonal.DataSource = ObjPersonal.DtResultados Else - CbPermitirExcedente.Visible = False + DdlPersonal.DataSource = ObjPersonal.DtResultados.FiltraParametros("CveEstatusPersonal = 1") End If - If UsuarioActual.CveEmpresa.Contiene(1, 4, 7, 11, 12, 72, 80, 119) Then - rowComisiones.Visible = True + + ObjPersonal.Dispose() + DdlPersonal.DataBind() + + CargaTipoTransaccion() + + If UsuarioActual.Empresa.Funcionalidad(506) = "1" Then + CbPermitirExcedente.Visible = True + Else + CbPermitirExcedente.Visible = False + End If + + If UsuarioActual.CveEmpresa.Contiene(1, 4, 7, 11, 12, 72, 80, 119) Then + rowComisiones.Visible = True + End If + + If UsuarioActual.CveEmpresa = 119 Then + ChkReembolsarSinBancos.Visible = True + End If + + TxtFechaPrePoliza.Text = Date.Now.ToShortDateString + + 'CargaCuentasDiferencia() + + 'TableDiferencia.Visible = False End If - If UsuarioActual.CveEmpresa = 119 Then - ChkReembolsarSinBancos.Visible = True - End If - - TxtFechaPrePoliza.Text = Date.Now.ToShortDateString - - 'CargaCuentasDiferencia() - - 'TableDiferencia.Visible = False - End If - End Sub #Region " FILTROS " diff --git a/Ventas/Ventas.aspx b/Ventas/Ventas.aspx index 08553cbad..4dc1dfa02 100644 --- a/Ventas/Ventas.aspx +++ b/Ventas/Ventas.aspx @@ -2822,9 +2822,9 @@
- - <%----%> + +
diff --git a/Ventas/Ventas.aspx.vb b/Ventas/Ventas.aspx.vb index 215665354..063add67b 100644 --- a/Ventas/Ventas.aspx.vb +++ b/Ventas/Ventas.aspx.vb @@ -9115,7 +9115,7 @@ Partial Class Ventas ObjFactura.NumeroPersonas = 0 - If ObjFactura.TipoDocto = "Ant" And DdlContratosModal.SelectedValue.ToEntero > 0 Or ObjFactura.TipoDocto = "Ing" And DdlContratosModal.SelectedValue.ToEntero > 0 Then + If ObjFactura.TipoDocto = "Ant" And DdlContratosModal.SelectedValue.ToEntero > 0 Or ObjFactura.TipoDocto = "Ing" And DdlContratosModal.SelectedValue.ToEntero > 0 Or ObjFactura.TipoDocto = "Egs" And DdlContratosModal.SelectedValue.ToEntero > 0 Then CveContrato = DdlContratosModal.SelectedValue.ToEntero End If @@ -16384,6 +16384,10 @@ Partial Class Ventas Dim TotalCalculableImpuestosIVA As Decimal = 0 PU = PU.RoundAD(6) ' el precio unitario puede llevar hasta 6 decimales permitidos + If Not TmpDT.Columns.Contains("RetIVA") Then + TmpDT.Columns.Add("RetIVA", GetType(Decimal)) + End If + Row = TmpDT.NewRow() Row("CveProyecto") = CveProyecto Row("Proyecto") = Proyecto @@ -16510,7 +16514,11 @@ Partial Class Ventas Row("IVA") = Row("PorcentajeIVA") Row("ImporteIVA") = (Row("PorcentajeIVA").ToString().ToDecimal * TotalCalculableImpuestosIVA).RoundAD(NumeroDecimales) Row("ImporteRetIVA") = (ClienteRetIVA * TotalCalculableImpuestos).RoundAD(NumeroDecimales) + + + Row("RetIVA") = (ClienteRetIVA * TotalCalculableImpuestos).RoundAD(NumeroDecimales) + Row("ImporteRetISR") = (ClienteRetISR * TotalCalculableImpuestos).RoundAD(NumeroDecimales) Row("PorcentajeRetIVA") = ClienteRetIVA Row("PorcentajeRetISR") = ClienteRetISR @@ -28702,11 +28710,11 @@ Partial Class Ventas Alert("Se selecciono un contrato de obra, para continuar seleccione una estimación.", TipoMensaje.MsgAdvertencia) End If - ElseIf DdlTipoComprobante.SelectedValue = "Ant" Then + ElseIf DdlTipoComprobante.SelectedValue = "Ant" Or DdlTipoComprobante.SelectedValue = "Egs" Then Respuesta = True Else Alert("Tipo de documento no valido para contratos de obra.", TipoMensaje.MsgAdvertencia) - Respuesta = True + Respuesta = False End If Else diff --git a/vwd.webinfo b/vwd.webinfo index ce767c892..02418376d 100644 --- a/vwd.webinfo +++ b/vwd.webinfo @@ -140,6 +140,10 @@ + + + + From 164d37d7df3ab87cee9194563b483db51a362fda Mon Sep 17 00:00:00 2001 From: Rakcsle Supertramp Date: Mon, 14 Dec 2020 19:40:27 -0700 Subject: [PATCH 20/39] Contatos Compras --- App_Code/ClsCompras.vb | 12 ++++---- Compras/Compras.aspx | 61 +++++++++++++++++++++++++++++++++++++++++ Compras/Compras.aspx.vb | 52 ++++++++++++++++++++++++++++++++++- 3 files changed, 119 insertions(+), 6 deletions(-) diff --git a/App_Code/ClsCompras.vb b/App_Code/ClsCompras.vb index 0fe3e20d1..277667dc0 100644 --- a/App_Code/ClsCompras.vb +++ b/App_Code/ClsCompras.vb @@ -195,7 +195,8 @@ Public Class ClsCompras AplicaNotaCredito As Boolean, Observaciones As String, CveEstatusCompra As Integer, CvePrePoliza As Integer, CveUsuario As Integer, CveEmpresa As Integer, Optional IdPoliza As Integer = -1, Optional CveOC As Integer = -1, Optional CveCajaChica As Integer = -1, Optional CvePersonal As Integer = -1, Optional NumeroReembolso As String = "-1", Optional CveProveedorSucursal As Integer = -1, Optional AplicoPromocion As Boolean = False, Optional PorcentajeIVA As Double = 0, Optional CveMetodoPago As Integer = -1, Optional CveRetIVAConcepto As Integer = -1, Optional CveConceptoContableAlmacen As Integer = -1, - Optional CveRetISRConcepto As Integer = -1, Optional NoDeducible As Boolean = False, Optional CveTipoCompra As Integer = -1, Optional TotalOriginal As Double = 0, Optional CveTipoConcepto As Integer = 1, Optional CveFactura As Integer = -1) As Boolean + Optional CveRetISRConcepto As Integer = -1, Optional NoDeducible As Boolean = False, Optional CveTipoCompra As Integer = -1, Optional TotalOriginal As Double = 0, Optional CveTipoConcepto As Integer = 1, Optional CveFactura As Integer = -1, + Optional CveContrato As Integer = -1) As Boolean Dim Retorno As Boolean = False @@ -246,6 +247,7 @@ Public Class ClsCompras .Add("@TotalOriginal", SqlDbType.Money).Value = TotalOriginal .Add("@CveTipoConcepto", SqlDbType.Int).Value = CveTipoConcepto .Add("@CveFactura", SqlDbType.Int).Value = CveFactura + .Add("@CveContrato", SqlDbType.Int).Value = CveContrato End With Try @@ -267,10 +269,9 @@ Public Class ClsCompras Return Retorno End Function Public Function UpdateCompra(Descripcion As String, FolioSecundario As String, FechaVencimiento As Date, AplicaNotaCredito As Boolean, Observaciones As String, CveEstatusCompra As Integer, - Descuento As Double, SubTotal As Double, IVA As Double, Total As Double, CveUsuario As Integer, - CveCompra As Integer, Optional CveCajaChica As Integer = -1, Optional CvePersonal As Integer = -1, - Optional CveProveedorSucursal As Integer = -1, Optional PorcentajeIVA As Double = 0, - Optional NumeroReembolso As String = "", Optional CveTipoCompra As Integer = -1, Optional NoDeducible As Boolean = False, Optional CveFactura As Integer = -1) As Boolean + Descuento As Double, SubTotal As Double, IVA As Double, Total As Double, CveUsuario As Integer, CveCompra As Integer, Optional CveCajaChica As Integer = -1, Optional CvePersonal As Integer = -1, + Optional CveProveedorSucursal As Integer = -1, Optional PorcentajeIVA As Double = 0, Optional NumeroReembolso As String = "", Optional CveTipoCompra As Integer = -1, Optional NoDeducible As Boolean = False, + Optional CveFactura As Integer = -1, Optional CveContrato As Integer = -1) As Boolean Dim Retorno As Boolean = False @@ -297,6 +298,7 @@ Public Class ClsCompras .Add("@CveTipoCompra", SqlDbType.Int).Value = CveTipoCompra .Add("@NoDeducible", SqlDbType.Bit).Value = NoDeducible .Add("@CveFactura", SqlDbType.Int).Value = CveFactura + .Add("@CveContrato", SqlDbType.Int).Value = CveContrato End With Try diff --git a/Compras/Compras.aspx b/Compras/Compras.aspx index d0118d925..b5bfea7dd 100644 --- a/Compras/Compras.aspx +++ b/Compras/Compras.aspx @@ -80,6 +80,17 @@ + + + + +
  • + Contratos +
  • + +
    +
    + @@ -5134,10 +5145,60 @@
    + + + + + + + +
    + + + diff --git a/Compras/Compras.aspx.vb b/Compras/Compras.aspx.vb index af6b2a37b..596aa860d 100644 --- a/Compras/Compras.aspx.vb +++ b/Compras/Compras.aspx.vb @@ -1165,6 +1165,26 @@ Partial Class Compras_Compras End Set End Property + + Private Property CveContratoObra As Integer + Get + If ViewState("CveContratoObra") Is Nothing Then + Return -1 + Else + Return ViewState("CveContratoObra").ToString.ToEntero + End If + End Get + Set(value As Integer) + ViewState("CveContratoObra") = value + End Set + End Property + + + + + + + Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load If Not IsPostBack Then 'ImgBtnBuscarOC.Attributes.Add("data-toggle", "tooltip") @@ -1186,6 +1206,7 @@ Partial Class Compras_Compras CveConceptoContableAlmacen = 0 EsNoDeducible = False CveTipoConcepto = 1 + CargaContratos() '******** Prorrateo ******************************************** If UsuarioActual.Empresa.Funcionalidad(117) <> "" Then btnProrateo.Visible = True @@ -1442,6 +1463,8 @@ Partial Class Compras_Compras DivEsNoDeducible.Visible = True DivActualizarVincular.Visible = True + 'LiAccionesContratos.Visible = False + Else ViewState("CveProveedor") = -1 @@ -4636,7 +4659,7 @@ Partial Class Compras_Compras TxtRedondeo.Text.ToDouble, TxtTotal.Text.ToDouble, TxtFecha.Text.Trim.ToDate, DdlMoneda.SelectedValue.ToEntero, TipoCambio, TxtFechaPago.Text.Trim.ToDate, ChkAplicaNotaCredito.Checked, TxtObsFact.Text.Trim, CveEstatusFactura, CvePrePoliza, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, IdPoliza, CveCajaChica:=CveCajaChica, CvePersonal:=CvePersonal, NumeroReembolso:=NumeroReembolso, CveProveedorSucursal:=DdlProveedorSucursal.SelectedValue.ToEntero, AplicoPromocion:=ChkOCPromocion.Checked, PorcentajeIVA:=PorcentajeIVA, CveMetodoPago:=CveMetodoPago, CveRetIVAConcepto:=If(DdlRetIVAConcepto.Items.Count > 0, DdlRetIVAConcepto.SelectedValue.ToEntero, -1), CveConceptoContableAlmacen:=CveConceptoContableAlmacen, - CveRetISRConcepto:=If(DdlRetISRConcepto.Items.Count > 0, DdlRetISRConcepto.SelectedValue.ToEntero, -1), NoDeducible:=EsNoDeducible, CveTipoCompra:=DdlTipoCompra.SelectedValue.ToEntero, TotalOriginal:=TotalOriginal, CveTipoConcepto:=CveTipoConcepto) Then + CveRetISRConcepto:=If(DdlRetISRConcepto.Items.Count > 0, DdlRetISRConcepto.SelectedValue.ToEntero, -1), NoDeducible:=EsNoDeducible, CveTipoCompra:=DdlTipoCompra.SelectedValue.ToEntero, TotalOriginal:=TotalOriginal, CveTipoConcepto:=CveTipoConcepto, CveContrato:=CveContratoObra) Then ViewState("CveCompra") = ObjCompras.CveCompra If ObjCompras.DtResultados.Rows.Count > 0 Then ViewState("CompraFolio") = ObjCompras.DtResultados.Rows(0)("vFolio").ToString @@ -16597,12 +16620,19 @@ Partial Class Compras_Compras Protected Sub DdlTipoComprobante_SelectedIndexChanged(sender As Object, e As EventArgs) + LiAccionesContratos.Visible = False If DdlTipoComprobante.SelectedValue.Contiene("NC", "DEV", "Ant") Then If DdlTipoComprobante.SelectedValue = "NC" Then DivReembolso.Visible = False RBLPago.Items(2).Enabled = False + + + If Not CveCompra > 0 Then + LiAccionesContratos.Visible = True + End If + Else DivReembolso.Visible = True RBLPago.Items(2).Enabled = True @@ -16626,6 +16656,8 @@ Partial Class Compras_Compras End If + + UpAccionesContratos.Update() UPCondicionesPago.Update() End Sub @@ -20441,6 +20473,24 @@ Partial Class Compras_Compras End If Return True End Function + + + Private Sub CargaContratos() + DdlContrato.DataSource = GlobalDTContratos.FiltraParametros($"CveEmpresa = {UsuarioActual.CveEmpresa} AND CveContratoTipo IN(30,31) ") + DdlContrato.DataBind() + DdlContrato.Items.Insert(0, New System.Web.UI.WebControls.ListItem("Todos", "-1")) + End Sub + + Protected Sub BtnModalContratos_Click(sender As Object, e As EventArgs) + + RegistraScript("$('#DvModalContratos').modal('hide');") + CveContratoObra = DdlContrato.SelectedValue.ToEntero + + + End Sub + Protected Sub LnkContratos_Click(sender As Object, e As EventArgs) + RegistraScript("$('#DvModalContratos').modal('show');") + End Sub End Class Public Class MMensajeDevolucion From b332d9b83d6e278db778dd3d0ed18c80d48fb214 Mon Sep 17 00:00:00 2001 From: Rakcsle Supertramp Date: Tue, 15 Dec 2020 15:18:02 -0700 Subject: [PATCH 21/39] ClientesAbonar --- Ventas/ClientesAbonar.aspx | 12 ++++++++++-- Ventas/ClientesAbonar.aspx.vb | 23 +++++++++++++++++++++++ 2 files changed, 33 insertions(+), 2 deletions(-) diff --git a/Ventas/ClientesAbonar.aspx b/Ventas/ClientesAbonar.aspx index b3a9d6d14..6887e39d7 100644 --- a/Ventas/ClientesAbonar.aspx +++ b/Ventas/ClientesAbonar.aspx @@ -261,7 +261,7 @@ @@ -358,7 +358,15 @@ CveVenta - + + + + + + + Complemento Pago + + diff --git a/Ventas/ClientesAbonar.aspx.vb b/Ventas/ClientesAbonar.aspx.vb index 98735344f..8b4334e83 100644 --- a/Ventas/ClientesAbonar.aspx.vb +++ b/Ventas/ClientesAbonar.aspx.vb @@ -636,6 +636,17 @@ Partial Class Ventas_ClientesAbonar e.Row.FCCheckBox("Chk").Visible = False End If + + If e.Row.DBCampo("CveVenta").ToEntero > 0 Then + If e.Row.DataKey("ClaveMetodoPagoSAT") = "PUE" Then + e.Row.FCLinkButton("LnkComplemento").Text = "" + e.Row.FCLinkButton("LnkComplemento").CssClass = "text-danger" + End If + Else + e.Row.FCLinkButton("LnkComplemento").Visible = False + End If + + End If End Sub @@ -2505,6 +2516,18 @@ Partial Class Ventas_ClientesAbonar 'For i = 0 To CveVentas.Count - 1 Dim ObjBancos As New ClsBancos + + + If ObjBancos.GetComplementoPagosRep(-1, Now.AddYears(-2), Now, CveIE, -1, If(CveIESustitucion > 0, 2, 1), UsuarioActual.CveEmpresa, -1) Then + If Not ObjBancos.DtResultados.Rows.Count > 0 Then + ObjBancos.Dispose() + Alert("No se generaron complementos de pago porque no hay facturas con método de pago PPD", TipoMensaje.MsgAdvertencia) + Return "" + End If + End If + + + ObjBancos.IniciaTransacSQL() If ObjBancos.GeneraTimbrePago(CveIE, -1, UsuarioActual, CveCliente, CFDIRelacionado:=CFDIRelacionadoSustitucion, EsRegeneracion:=If(CveIESustitucion > 0, True, False)) Then From 16a192aafa890a9364e4402cc181728541c18b3b Mon Sep 17 00:00:00 2001 From: rrene Date: Tue, 15 Dec 2020 16:52:50 -0700 Subject: [PATCH 22/39] -- columna procentajeiva, que afectaba la visualizacion del total el reporte y otros renglones --- Empresas/Grales/Formatos/RepIVA.rpt | Bin 147456 -> 147456 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/Empresas/Grales/Formatos/RepIVA.rpt b/Empresas/Grales/Formatos/RepIVA.rpt index a9b34948e79bda72fe952c5f39c2834944c64f5a..299e52f3a338c6f94c00626bf994d6aeb897ca2b 100644 GIT binary patch delta 20860 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 NfVseT#1A3<{{ZZtbgTdX From 8c984b7d3dbedaf585644c6593bfa62df324bc6e Mon Sep 17 00:00:00 2001 From: rrene Date: Tue, 15 Dec 2020 16:53:19 -0700 Subject: [PATCH 23/39] -- seguir registrando --- Contabilidad/PlantillasPolizasDetalle.aspx | 26 +++++++++++++++---- Contabilidad/PlantillasPolizasDetalle.aspx.vb | 11 +++++--- 2 files changed, 29 insertions(+), 8 deletions(-) diff --git a/Contabilidad/PlantillasPolizasDetalle.aspx b/Contabilidad/PlantillasPolizasDetalle.aspx index c4351d6ed..34fb74f4f 100644 --- a/Contabilidad/PlantillasPolizasDetalle.aspx +++ b/Contabilidad/PlantillasPolizasDetalle.aspx @@ -229,16 +229,21 @@
    - + + + + +
    - + + - + + diff --git a/Contabilidad/PlantillasPolizasDetalle.aspx.vb b/Contabilidad/PlantillasPolizasDetalle.aspx.vb index 282658576..8b5143a0e 100644 --- a/Contabilidad/PlantillasPolizasDetalle.aspx.vb +++ b/Contabilidad/PlantillasPolizasDetalle.aspx.vb @@ -231,9 +231,14 @@ Partial Class Contabilidad_PlantillasPolizasDetalle If CvePlantillaPoliza > 0 Then If ObjPlantillaPolizaDetalle.AddConta_PlantillasPolizasDetalles(CvePlantillaPoliza, DdlConcepto.SelectedValue.ToEntero, DdlTipoMovimiento.SelectedValue.ToEntero, DdlCtaContable.SelectedValue.ToEntero, TxtOrden.Text.Trim.ToEntero, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, DDLSubProyecto.SelectedValue.ToEntero, DDLProveedor.SelectedValue.ToEntero, DdlPersonal.SelectedValue.ToEntero, DdlPorcentajeImpuesto.SelectedValue.ToDecimal) Then TxtOrden.Text = "" - updatatos() - Alert("El nuevo Registro se guardó correctamente.", TipoMensaje.MsgInformacion) - UpTitulos.Update() + If Not ChkSeguirAgregando.Checked Then + updatatos() + Alert("El nuevo Registro se guardó correctamente.", TipoMensaje.MsgInformacion) + Else + RegistraScript(String.Format("$('#{0}').modal();", "divAgregarSucursal")) + UpModal.Update() + End If + Else ErrorDetalle = True End If From f0ce66af6591a2e362af95d8105e0f23e2fb5636 Mon Sep 17 00:00:00 2001 From: rrene Date: Tue, 15 Dec 2020 16:53:30 -0700 Subject: [PATCH 24/39] mejoras parametro --- Inventarios/Consignaciones.aspx.vb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Inventarios/Consignaciones.aspx.vb b/Inventarios/Consignaciones.aspx.vb index 8da1e3b5e..43ef04fd9 100644 --- a/Inventarios/Consignaciones.aspx.vb +++ b/Inventarios/Consignaciones.aspx.vb @@ -1235,7 +1235,7 @@ Partial Class Inventarios_Consignaciones Dim ObjInventarios As New ClsInventarios Dim Dt As DataTable = Nothing - If ObjInventarios.GetMovimientosTransitorios(DdlAlmacenRecepcion.SelectedValue.ToEntero, 4, DdlAlmacenTransitorioRecepcion.SelectedValue.ToEntero, -1, If(TxtFolioRecepcion.Text = "", -1, TxtFolioRecepcion.Text.ToEntero), UsuarioActual.CveEmpresa) Then + If ObjInventarios.GetMovimientosTransitorios(DdlAlmacenRecepcion.SelectedValue.ToEntero, 4, DdlAlmacenTransitorioRecepcion.SelectedValue.ToEntero, -1, If(TxtFolioRecepcion.Text = "", -1, TxtFolioRecepcion.Text.ToEntero), UsuarioActual.CveEmpresa, UsuarioActual.CveUsuario) Then Dt = ObjInventarios.DtResultados Else Alert("Ocurrió un error al consultar los movimientos transitorios. Por favor vuelva a intentar.", TipoMensaje.MsgError) From eea21a3c2d4043452252dcbab35a1336b55941a5 Mon Sep 17 00:00:00 2001 From: rrene Date: Tue, 15 Dec 2020 16:53:43 -0700 Subject: [PATCH 25/39] texto de destino/devolucion --- Inventarios/EntradasSalidas.aspx | 2 +- Inventarios/EntradasSalidas.aspx.vb | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/Inventarios/EntradasSalidas.aspx b/Inventarios/EntradasSalidas.aspx index 5ab3e99df..7128c409a 100644 --- a/Inventarios/EntradasSalidas.aspx +++ b/Inventarios/EntradasSalidas.aspx @@ -260,7 +260,7 @@
    diff --git a/Inventarios/EntradasSalidas.aspx.vb b/Inventarios/EntradasSalidas.aspx.vb index cb2f16ade..47d5174c7 100644 --- a/Inventarios/EntradasSalidas.aspx.vb +++ b/Inventarios/EntradasSalidas.aspx.vb @@ -728,7 +728,13 @@ Partial Class Inventarios_EntradasSalidas TxtObservaciones.Text = Mov.Observaciones TxtResponsable.Text = Mov.Recibio - If Mov.CveAlmacenDestino > 0 Then divDestino.Visible = True : LtlAlmacenDestino.Text = Mov.AlmacenDestino + If Mov.CveAlmacenDestino > 0 Then + divDestino.Visible = True + LtlAlmacenDestino.Text = Mov.AlmacenDestino + If DtMov.Rows(0)("Origen").ToString = "1" Then + LblDestino.Text = "Origen:" + End If + End If CveMovimientoRelacionado = Mov.CveMovimientoRelacionado FolioRelacionado = Mov.FolioRelacionado From 8e84982a17b4a37794e989284152e264f633ba34 Mon Sep 17 00:00:00 2001 From: rrene Date: Tue, 15 Dec 2020 16:53:58 -0700 Subject: [PATCH 26/39] modal de comparativo --- Contabilidad/RepIVA.aspx | 6 +++--- Contabilidad/RepIVA.aspx.cs | 15 +++++++++++++-- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/Contabilidad/RepIVA.aspx b/Contabilidad/RepIVA.aspx index 2418a9532..1d8e59b17 100644 --- a/Contabilidad/RepIVA.aspx +++ b/Contabilidad/RepIVA.aspx @@ -298,14 +298,14 @@
    -
    Esquema Nuevo:
    +
    ProForma:
    From c4a74c9216ad8f4bf64fa59765aaa7f7b6499e04 Mon Sep 17 00:00:00 2001 From: rrene Date: Wed, 16 Dec 2020 16:33:45 -0700 Subject: [PATCH 35/39] Revert "-- clonar producto, actualizar global de ps" This reverts commit 7c02807c4e77eae0e308a7063a087e988b02a556. --- App_Code/Timbrado.vb | 604 ------------ .../Cancelacion/cancelacion.wsdl | 369 -------- Compras/Compras.aspx.vb | 6 +- Empresas/141/Formatos/Cotizacion.rdlc | 553 ++++++----- Empresas/141/Formatos/Factura.rdlc | 863 +++++++++--------- Empresas/141/Formatos/RepPS.rdlc | 9 +- Ventas/ProductosServicios.aspx.vb | 3 - Ventas/RepComisionesJAM.aspx | 2 +- 8 files changed, 761 insertions(+), 1648 deletions(-) delete mode 100644 App_WebReferences/Cancelacion/cancelacion.wsdl diff --git a/App_Code/Timbrado.vb b/App_Code/Timbrado.vb index afbac5a8a..e4cda96bc 100644 --- a/App_Code/Timbrado.vb +++ b/App_Code/Timbrado.vb @@ -653,12 +653,6 @@ Public Class Timbrado Dim Ret As String = TimbrarFacturaGoCFDIv33(Ventas, UsuarioActual, CvePACEspecial) If Ret <> "" Then MensajeErrorCFDI = Ret Retorno = If(Ret = "", True, False) - Case 5 - - Dim Ret As String = TimbrarFacturaProdigiav33(Ventas, UsuarioActual, CvePACEspecial) - If Ret <> "" Then MensajeErrorCFDI = Ret - Retorno = If(Ret = "", True, False) - End Select @@ -2191,604 +2185,6 @@ Public Class Timbrado GuardaLogTimbrado(swTiempo.ToString, CvePACEspecial) Return Retorno End Function - - Public Function TimbrarFacturaProdigiav33(Ventas As Modelos.Factura, UsuarioActual As Usuario, Optional CvePACEspecial As Integer = -1) As String - If CvePACEspecial = -1 Then - CvePACEspecial = UsuarioActual.Empresa.CvePAC - End If - Dim sw As New Diagnostics.Stopwatch - Dim swmili As Long = 0 - Dim swTiempo As New StringBuilder - sw.Start() - Dim Retorno As String = "" - Dim ObjCFDITimbre As CFDITimbre = Ventas.Timbre - ' 'Sucursal matriz de la empresa - Dim ArchivoLLave As String = String.Format("{0}Certificados\{1}", UsuarioActual.Empresa.Ruta, UsuarioActual.Empresa.ArchivoKey) - Dim ArchivoCertificado As String = String.Format("{0}Certificados\{1}", UsuarioActual.Empresa.Ruta, UsuarioActual.Empresa.ArchivoCer) - Dim UsuarioServicio As String = If(CvePACEspecial = 2, UsuarioActual.Empresa.RFC, "rene.molina@adsistemas.mx") - Dim ClaveServicio As String = If(CvePACEspecial = 2, UsuarioActual.Empresa.RFC.ToLower, "rene2018") - Dim Clave As String = UsuarioActual.Empresa.ContraseñaKey - Dim EmisorRFC As String = UsuarioActual.Empresa.RFC - Dim UrlServicio As String = "" ' Produccion - Dim RutaArchivo As String = String.Format("{0}XML\{1}\", UsuarioActual.Empresa.Ruta, Ventas.TipoDocto) - Dim NombreArchivoXML As String = ObjCFDITimbre.Comprobante.SerieFolio - Dim SubTotal As Decimal = 0 - Dim TimbraProduccion As Boolean = True - If Not Directory.Exists(RutaArchivo) Then Directory.CreateDirectory(RutaArchivo) - Select Case CvePACEspecial - Case 2 - UrlServicio = "http://generacfdi.com.mx/rvltimbrado/service1.asmx?WSDL" 'productivo - Case 4 - 'UrlServicio = "http://juancalderon-001-site1.ftempurl.com/timbrado.asmx?WSDL" - UrlServicio = "http://alterno.gofac.com.mx/cfdi/timbrado.asmx?WSDL" ' alterno - End Select - - If Not UsuarioActual.Empresa.FacturaProduccion OrElse UsuarioActual.CveEmpresa = 1 Then - - EmisorRFC = "AAA010101AAA" - ArchivoLLave = $"{UsuarioActual.Empresa.Ruta}Certificados\CSD01_AAA010101AAA.key" - ArchivoCertificado = $"{UsuarioActual.Empresa.Ruta}Certificados\CSD01_AAA010101AAA.cer" - Clave = "12345678a" - TimbraProduccion = False - Select Case CvePACEspecial - Case 2 - UsuarioServicio = "fgomez" - ClaveServicio = "12121212" - UrlServicio = "http://generacfdi.com.mx/rvltimbrado/service1.asmx?WSDL" '"http://108.60.211.43/rvltimbrado/service1.asmx" - Case 4 - UsuarioServicio = "UserTest" - ClaveServicio = "1234567890" - UrlServicio = "http://juancalderon-001-site1.ftempurl.com/timbrado.asmx?WSDL" - End Select - End If - -#Region "Valida" - If Not File.Exists(ArchivoCertificado) Then - Alert("El archivo de certificado no existe", TipoMensaje.MsgError) - Return "El archivo de certificado no existe" - End If - If Not File.Exists(ArchivoLLave) Then - Alert("El archivo de llave privada no existe", TipoMensaje.MsgError) - Return "El archivo de llave privada no existe" - End If - If UsuarioActual.Empresa.ContraseñaKey = "" Then - Alert("La clave no puede ser vacía", TipoMensaje.MsgError) - Return "La clave no puede ser vacía" - End If -#End Region - -#Region "Variables" - Dim llaveByte As Byte(), certByte As Byte() - Dim llaveBase64 As String, certBase64 As String - Dim cfdi As New GoFac.GoCfdi() - Dim complemento As String = "" - Dim complementoConcepto As String = "" - -#End Region - -#Region "Verifica" - Try - llaveByte = System.IO.File.ReadAllBytes(ArchivoLLave) - llaveBase64 = Convert.ToBase64String(llaveByte) - Catch ex As Exception - Alert($"Error al leer la llave privada: {ex.Message}", TipoMensaje.MsgError) - Return "Error al leer la llave privada" - End Try - - - Try - certByte = System.IO.File.ReadAllBytes(ArchivoCertificado) - certBase64 = Convert.ToBase64String(certByte) - Catch ex As Exception - Alert($"Error al leer el certificado: {ex.Message}", TipoMensaje.MsgError) - Return "Error al leer el certificado" - - End Try -#End Region - - - sw.Stop() - swTiempo.AppendFormat("Verificado : ({0}) {1} ", sw.ElapsedMilliseconds - swmili, sw.ElapsedMilliseconds) - swmili = sw.ElapsedMilliseconds - sw.Start() - - ' cfdi.saltarValidacion("bNtMuvZockPVhEjaPj0E") - ' cfdi.Decimales = 4 -#Region "Certificado" - cfdi.CertificadoArchivo(ArchivoCertificado) -#End Region - - - sw.Stop() - swTiempo.AppendFormat("Certificado : ({0}) {1} ", sw.ElapsedMilliseconds - swmili, sw.ElapsedMilliseconds) - swmili = sw.ElapsedMilliseconds - sw.Start() - -#Region "Comprobante" - - cfdi.Comprobante33( - ObjCFDITimbre.Comprobante.Serie, - ObjCFDITimbre.Comprobante.Folio, - ObjCFDITimbre.Comprobante.Fecha.ToString("yyyy-MM-ddTHH:mm:ss"), - ObjCFDITimbre.Comprobante.FormadePago, - ObjCFDITimbre.Comprobante.CondicionesdePago, - ObjCFDITimbre.Comprobante.Subtotal, - ObjCFDITimbre.Comprobante.Descuentos, - ObjCFDITimbre.Comprobante.Moneda, - ObjCFDITimbre.Comprobante.TipoCambio.ToString, - ObjCFDITimbre.Comprobante.Total, - ObjCFDITimbre.Comprobante.TipoComprobante, - ObjCFDITimbre.Comprobante.MetodoPago, - ObjCFDITimbre.Comprobante.LugarExpedicion, - ObjCFDITimbre.Comprobante.Confirmacion) - - If ObjCFDITimbre.CFDIRelacionados.TipoRelacion <> "" Then - cfdi.CfdiRelacionados(ObjCFDITimbre.CFDIRelacionados.TipoRelacion) - For Each uid As String In ObjCFDITimbre.CFDIRelacionados.UUID - cfdi.CfdiRelacionado(uid) - Next - End If -#Region "Emisor" - ' cfdi.agregarCfdiRelacionados() - cfdi.Emisor(EmisorRFC, UsuarioActual.Empresa.Empresa, UsuarioActual.Empresa.CodigoRegimenFiscal) - -#End Region - -#Region "Receptor" - - cfdi.Receptor(ObjCFDITimbre.Receptor.RFC, ObjCFDITimbre.Receptor.Nombre, ObjCFDITimbre.Receptor.ResidenciaFiscal, ObjCFDITimbre.Receptor.NumeroRegistroTributario, ObjCFDITimbre.Receptor.UsoCFDI) - -#End Region - -#End Region - -#Region "Conceptos" - - 'Nodo conceptos, se agregan los PS - - If ObjCFDITimbre.Conceptos IsNot Nothing AndAlso ObjCFDITimbre.Conceptos.Count > 0 Then - For Each concep As CFDIConceptos In ObjCFDITimbre.Conceptos - cfdi.Concepto(concep.ClaveProdServ, concep.Noidentificacion, concep.Cantidad, concep.ClaveUnidad, concep.Unidad, concep.Descripcion, concep.ValorUnitario, concep.Importe, concep.Descuento) - For Each imp As CFDIConceptosImpuestos In concep.Impuestos - If imp.TrasladooRetencion = "T" Then - cfdi.ImpuestoConceptoTraslado(imp.Base, imp.Impuesto, imp.TipoFactor, imp.TasaOCuota, imp.Importe) - Else - cfdi.ImpuestoConceptoRetenido(imp.Base, imp.Impuesto, imp.TipoFactor, imp.TasaOCuota, imp.Importe) - End If - Next - If concep.CuentaPredial <> "" Then cfdi.CuentaPredial(concep.CuentaPredial) - If concep.NumeroPedimento <> "" Then cfdi.InformacionAduanera(concep.NumeroPedimento) - Next - End If - -#End Region - - If ObjCFDITimbre.Comprobante.TipoComprobante.Contiene("I", "E") Then - -#Region "Impuestos" - 'SI NO ES FACTURA EN 0 AGREGA LOS IMPUESTOS - If Ventas.Total <> 0 OrElse (ObjCFDITimbre.TotalImpuestosRetenidos > 0 OrElse ObjCFDITimbre.TotalImpuestosTrasladados > 0) Then - cfdi.Impuestos(ObjCFDITimbre.TotalImpuestosRetenidos, ObjCFDITimbre.TotalImpuestosTrasladados) - End If -#End Region -#Region " Traslados y Retenciones" - - - If ObjCFDITimbre.Retenciones.Sum(Function(x) x.Importe) > 0 Then - ''se acumulan los importes - For Each Ret In ObjCFDITimbre.Retenciones - cfdi.Retencion(Ret.Impuesto, Ret.Importe) - Next - End If - - ''se acumulan los importes - For Each Tras In ObjCFDITimbre.Traslados - cfdi.Traslado(Tras.Impuesto, Tras.TipoFactor, Tras.TasaOCuota, Tras.Importe) - Next -#End Region - -#Region "Impuestos Locales" - - If ObjCFDITimbre.RetencionesLocales.Sum(Function(x) x.Importe) > 0 OrElse ObjCFDITimbre.TrasladosLocales.Sum(Function(x) x.Importe) > 0 Then - - cfdi.ImpuestosLocales(ObjCFDITimbre.RetencionesLocales.Sum(Function(x) x.Importe), ObjCFDITimbre.TrasladosLocales.Sum(Function(x) x.Importe)) - - For Each ret As CFDIRetencionesLocales In ObjCFDITimbre.RetencionesLocales - If ret.Importe > 0 Then - cfdi.RetencionLocal(ret.ImpuestoLocalRetenido, ret.TasaRetencion, ret.Importe) - End If - Next - - For Each ret As CFDITrasladosLocales In ObjCFDITimbre.TrasladosLocales - If ret.Importe > 0 Then - cfdi.TrasladoLocal(ret.ImpuestoLocalTraslado, ret.TasaTraslado, ret.Importe) - End If - Next - End If - - If Ventas.CveComplementoTimbrado > 0 Then - - Select Case Ventas.CveComplementoTimbrado - Case 5 'INE Proceso Ordinario Directivo Estatal" - cfdi.Ine11("Ordinario", "Directivo Estatal", "0") - - cfdi.IneEntidad(Ventas.ComplementoINE.INEEntidad, "") - cfdi.IneContabilidad(Ventas.ComplementoINE.INEIdContabilidad) - Case 6 'INE Proceso Ordinario Ejecutivo Estatal" - cfdi.Ine11("Ordinario", "Ejecutivo Estatal", "0") - - cfdi.IneEntidad(Ventas.ComplementoINE.INEEntidad, "") - cfdi.IneContabilidad(Ventas.ComplementoINE.INEIdContabilidad) - Case 7 'INE Proceso Ordinario Ejecutivo Nacional" - - cfdi.Ine11("Ordinario", "Ejecutivo Nacional", Ventas.ComplementoINE.INEIdContabilidad.ToString) - Case 8 'INE PreCampaña - cfdi.Ine11(Ventas.ComplementoINE.INETipoProceso, "", "0") - - cfdi.IneEntidad(Ventas.ComplementoINE.INEEntidad, Ventas.ComplementoINE.INETipoComite) - cfdi.IneContabilidad(Ventas.ComplementoINE.INEIdContabilidad) - End Select - - End If - - - -#End Region - - -#Region "Comercio Exterior" - - If Ventas.Cliente.AplicaComercioExterior And ObjCFDITimbre.Complementos.ComercioExterior11.AplicaComercioExteriorSubProyecto Then - If ObjCFDITimbre.Complementos.ComercioExterior11 IsNot Nothing Then - - 'DATOS GENERALES - cfdi.ComercioExterior11(ObjCFDITimbre.Complementos.ComercioExterior11.MotivoTraslado, - ObjCFDITimbre.Complementos.ComercioExterior11.TipoOperacion, - ObjCFDITimbre.Complementos.ComercioExterior11.ClavedePedimento, - ObjCFDITimbre.Complementos.ComercioExterior11.CertificadoOrigen, - ObjCFDITimbre.Complementos.ComercioExterior11.NumCertificadoOrigen, - ObjCFDITimbre.Complementos.ComercioExterior11.NumeroExportadorConfiable, - ObjCFDITimbre.Complementos.ComercioExterior11.Incoterm, - ObjCFDITimbre.Complementos.ComercioExterior11.Subdivision, - ObjCFDITimbre.Complementos.ComercioExterior11.Observaciones, - ObjCFDITimbre.Complementos.ComercioExterior11.TipoCambioUSD, - ObjCFDITimbre.Complementos.ComercioExterior11.TotalUSD) - 'EMISOR - cfdi.ComercioExterior11Emisor(If(EmisorRFC.Length >= 12, "", ObjCFDITimbre.Complementos.ComercioExterior11.Emisor.CURP)) - cfdi.ComercioExterior11Domicilio(ObjCFDITimbre.Complementos.ComercioExterior11.Emisor.Calle, - ObjCFDITimbre.Complementos.ComercioExterior11.Emisor.NumeroExterior, - ObjCFDITimbre.Complementos.ComercioExterior11.Emisor.NumeroInterior, - ObjCFDITimbre.Complementos.ComercioExterior11.Emisor.Colonia, - ObjCFDITimbre.Complementos.ComercioExterior11.Emisor.Localidad, - ObjCFDITimbre.Complementos.ComercioExterior11.Emisor.Referencia, - ObjCFDITimbre.Complementos.ComercioExterior11.Emisor.Municipio, - ObjCFDITimbre.Complementos.ComercioExterior11.Emisor.Estado, - ObjCFDITimbre.Complementos.ComercioExterior11.Emisor.Pais, - ObjCFDITimbre.Complementos.ComercioExterior11.Emisor.CP) - 'RECEPTOR - cfdi.ComercioExterior11Receptor(ObjCFDITimbre.Complementos.ComercioExterior11.Receptor.NumRegIdTrib) - cfdi.ComercioExterior11DomicilioReceptor(ObjCFDITimbre.Complementos.ComercioExterior11.Receptor.Calle, - ObjCFDITimbre.Complementos.ComercioExterior11.Receptor.NumeroExterior, - ObjCFDITimbre.Complementos.ComercioExterior11.Receptor.NumeroInterior, - ObjCFDITimbre.Complementos.ComercioExterior11.Receptor.Colonia, - ObjCFDITimbre.Complementos.ComercioExterior11.Receptor.Localidad, - ObjCFDITimbre.Complementos.ComercioExterior11.Receptor.Referencia, - ObjCFDITimbre.Complementos.ComercioExterior11.Receptor.Municipio, - ObjCFDITimbre.Complementos.ComercioExterior11.Receptor.Estado, - ObjCFDITimbre.Complementos.ComercioExterior11.Receptor.Pais, - ObjCFDITimbre.Complementos.ComercioExterior11.Receptor.CP) - cfdi.ComercioExterior11Destinatario(ObjCFDITimbre.Complementos.ComercioExterior11.Destinatario.NumRegIdTrib, - ObjCFDITimbre.Complementos.ComercioExterior11.Destinatario.Nombre, - ObjCFDITimbre.Complementos.ComercioExterior11.Destinatario.Calle, - ObjCFDITimbre.Complementos.ComercioExterior11.Destinatario.NumeroExterior, - ObjCFDITimbre.Complementos.ComercioExterior11.Destinatario.NumeroInterior, - ObjCFDITimbre.Complementos.ComercioExterior11.Destinatario.Colonia, - ObjCFDITimbre.Complementos.ComercioExterior11.Destinatario.Localidad, - ObjCFDITimbre.Complementos.ComercioExterior11.Destinatario.Referencia, - ObjCFDITimbre.Complementos.ComercioExterior11.Destinatario.Municipio, - ObjCFDITimbre.Complementos.ComercioExterior11.Destinatario.Estado, - ObjCFDITimbre.Complementos.ComercioExterior11.Destinatario.Pais, - ObjCFDITimbre.Complementos.ComercioExterior11.Destinatario.CP) - 'MERCANCIAS - If ObjCFDITimbre.Complementos.ComercioExterior11.Mercancias IsNot Nothing AndAlso ObjCFDITimbre.Complementos.ComercioExterior11.Mercancias.Count > 0 Then - For Each concep As CFDIComercioExterior11Mercancias In ObjCFDITimbre.Complementos.ComercioExterior11.Mercancias - cfdi.ComercioExterior11Mercancia(concep.NoIdentificacion, concep.FraccionArancelaria, concep.CantidadAduana, concep.UnidadAduana, concep.ValorUnitarioAduana, concep.ValorDolares) - If concep.DescripcionesEspecificas.Marca <> "" Then - cfdi.ComercioExterior11MercanciaDescripcionesEspeciales(concep.DescripcionesEspecificas.Marca, - concep.DescripcionesEspecificas.Modelo, - concep.DescripcionesEspecificas.SubModelo, - concep.DescripcionesEspecificas.NumeroSerie) - End If - Next - - End If - - - End If - End If - -#End Region - - - End If - -#Region "Complemento Pago" - - If ObjCFDITimbre.Comprobante.TipoComprobante = "P" Then - - cfdi.Pago(ObjCFDITimbre.ComplementoPagos.FechaPago.ToString("yyyy-MM-ddTHH:mm:ss"), - ObjCFDITimbre.ComplementoPagos.FormaDePagoP, - ObjCFDITimbre.ComplementoPagos.MonedaP, - ObjCFDITimbre.ComplementoPagos.TipoCambioP, - ObjCFDITimbre.ComplementoPagos.Monto, - ObjCFDITimbre.ComplementoPagos.NumOperacion, - ObjCFDITimbre.ComplementoPagos.RfcEmisorCtaOrd, - ObjCFDITimbre.ComplementoPagos.NomBancoOrdExt, - ObjCFDITimbre.ComplementoPagos.CtaOrdenante, - ObjCFDITimbre.ComplementoPagos.RfcEmisorCtaBen, - ObjCFDITimbre.ComplementoPagos.CtaBeneficiario, - ObjCFDITimbre.ComplementoPagos.TipoCadPago, - ObjCFDITimbre.ComplementoPagos.CertPago, - ObjCFDITimbre.ComplementoPagos.CadPago, - ObjCFDITimbre.ComplementoPagos.SelloPago) - - - If ObjCFDITimbre.ComplementoPagos.DocumentosRelacionados.Count > 0 Then - - - For Each doc As CFDIComplementoPagosDocsRelacionados In ObjCFDITimbre.ComplementoPagos.DocumentosRelacionados - cfdi.PagoDoctoRelacionado(doc.IdDocumento, - doc.Serie, - doc.Folio, - doc.MonedaDR, - doc.TipoCambioDR, - doc.MetodoDePagoDR, - doc.NumParcialidad, - doc.ImpSaldoAnt, - doc.ImpPagado, - doc.ImpSaldoInsoluto) - - Next - - 'Estos impuestos aplicarían para anticipos - If ObjCFDITimbre.ComplementoPagos.TotalImpuestosRetenidos > 0 OrElse ObjCFDITimbre.ComplementoPagos.TotalImpuestosTrasladados > 0 Then - - cfdi.PagoImpuestos(ObjCFDITimbre.ComplementoPagos.TotalImpuestosRetenidos, ObjCFDITimbre.ComplementoPagos.TotalImpuestosTrasladados) - If (ObjCFDITimbre.ComplementoPagos.Impuestos).Where(Function(x) x.TrasladooRetencion = "R").Count > 0 Then - For Each Ret As CFDIConceptosImpuestos In (ObjCFDITimbre.ComplementoPagos.Impuestos).Where(Function(x) x.TrasladooRetencion = "R") - cfdi.PagoRetencion(Ret.Impuesto, Ret.Importe) - Next - End If - If (ObjCFDITimbre.ComplementoPagos.Impuestos).Where(Function(x) x.TrasladooRetencion = "T").Count > 0 Then - For Each Tra As CFDIConceptosImpuestos In (ObjCFDITimbre.ComplementoPagos.Impuestos).Where(Function(x) x.TrasladooRetencion = "T") - cfdi.PagoTraslado(Tra.Impuesto, Tra.TipoFactor, Tra.TasaOCuota, Tra.Importe) - Next - End If - - End If - - - - End If - - End If -#End Region - - - -#Region "Nomina12" - If ObjCFDITimbre.Comprobante.TipoComprobante = "N" Then - - 'cfdi.Esquema.AgregarEsquema("http://www.sat.gob.mx/nomina12 http://www.sat.gob.mx/sitio_internet/cfd/nomina/nomina12.xsd") - cfdi.Nomina12(ObjCFDITimbre.Nomina.TipoNomina, ObjCFDITimbre.Nomina.FechaPago.ToString("yyyy-MM-dd"), ObjCFDITimbre.Nomina.FechaInicio.ToDate().ToString("yyyy-MM-dd"), ObjCFDITimbre.Nomina.FechaFin.ToDate().ToString("yyyy-MM-dd"), ObjCFDITimbre.Nomina.NumDiasPagados, If(ObjCFDITimbre.Nomina.Percepciones IsNot Nothing AndAlso ObjCFDITimbre.Nomina.Percepciones.Count > 0, ObjCFDITimbre.Nomina.TotalPercepciones, 0), If(ObjCFDITimbre.Nomina.Deducciones IsNot Nothing AndAlso ObjCFDITimbre.Nomina.Deducciones.Count > 0, ObjCFDITimbre.Nomina.TotalDeducciones, 0), If(ObjCFDITimbre.Nomina.OtrosPagos IsNot Nothing AndAlso ObjCFDITimbre.Nomina.OtrosPagos.Count > 0, ObjCFDITimbre.Nomina.TotalOtrosPagos, 0)) - - cfdi.Nomina12Emisor(ObjCFDITimbre.Emisor.CURP, If(ObjCFDITimbre.Nomina.Receptor.TipoContrato = "99", "", ObjCFDITimbre.Emisor.RegistroPatronal), ObjCFDITimbre.Emisor.RFC) - - If UsuarioActual.Empresa.UsaAC Then cfdi.Nomina12EntidadSNCF("IF", 90) - - -#Region "Receptor" - - cfdi.Nomina12Receptor(ObjCFDITimbre.Nomina.Receptor.CURP, - ObjCFDITimbre.Nomina.Receptor.NSS, - ObjCFDITimbre.Nomina.Receptor.FechaInicioContrato.ToDate().ToString("yyyy-MM-dd"), - ObjCFDITimbre.Nomina.Receptor.Antiguedad, - ObjCFDITimbre.Nomina.Receptor.TipoContrato, - ObjCFDITimbre.Nomina.Receptor.Sindicalizado, - ObjCFDITimbre.Nomina.Receptor.CodigoTipoJornada, - ObjCFDITimbre.Nomina.Receptor.CodigoRegimenContratacion, - ObjCFDITimbre.Nomina.Receptor.CodigoEmpleado, - ObjCFDITimbre.Nomina.Receptor.Departamento, - ObjCFDITimbre.Nomina.Receptor.Puesto, - ObjCFDITimbre.Nomina.Receptor.CodigoRiesgoPuesto, - If(ObjCFDITimbre.Nomina.TipoNomina = "E", "99", ObjCFDITimbre.Nomina.Receptor.TipoPeriodo), - ObjCFDITimbre.Nomina.Receptor.CodigoBanco, - ObjCFDITimbre.Nomina.Receptor.NumeroCuenta, - ObjCFDITimbre.Nomina.Receptor.SBC, - ObjCFDITimbre.Nomina.Receptor.SDI, - ObjCFDITimbre.Nomina.Receptor.CodigoEntidadFederativa) - 'cfdi.Nomina12SubContratacion("", "0") - 'cfdi.agregarNominaPercepcionesPercepcionAccionesOTitulos12("100", "200"); - 'cfdi.agregarNominaPercepcionesSeparacionIndemnizacion12("100", "10", "1000", "100", "50"); - 'cfdi.agregarNominaPercepcionesJubilacionPensionRetiro12("50", "100", "10", "100", "0"); - - - End If -#End Region - If ObjCFDITimbre.Nomina IsNot Nothing Then - - If ObjCFDITimbre.Nomina.Percepciones IsNot Nothing AndAlso ObjCFDITimbre.Nomina.Percepciones.Count > 0 Then - cfdi.Nomina12Percepciones(ObjCFDITimbre.Nomina.TotalSueldos, ObjCFDITimbre.Nomina.TotalIndemnizacion, ObjCFDITimbre.Nomina.TotalJubilacion, ObjCFDITimbre.Nomina.TotalPercepcionesGravado, ObjCFDITimbre.Nomina.TotalPercepcionesExento) - For Each percep As CFDINominaPercepciones In ObjCFDITimbre.Nomina.Percepciones - cfdi.Nomina12Percepcion(percep.TipoPercepcion, percep.Clave, percep.Concepto, Math.Round(percep.ImporteGravado, 2), Math.Round(percep.ImporteExento, 2)) - Next - End If - - 'deducciones al final - If ObjCFDITimbre.Nomina.Deducciones IsNot Nothing AndAlso ObjCFDITimbre.Nomina.Deducciones.Count > 0 Then - cfdi.Nomina12Deducciones(ObjCFDITimbre.Nomina.TotalDeduccionesOtras, Math.Round(ObjCFDITimbre.Nomina.TotalDeduccionesImpuestosRetenidos, 2)) - For Each deduc As CFDINominaDeducciones In ObjCFDITimbre.Nomina.Deducciones - cfdi.Nomina12Deduccion(deduc.TipoDeduccion, deduc.Clave, deduc.Concepto, Math.Round(deduc.Importe, 2)) - Next - End If - - If ObjCFDITimbre.Nomina.HorasExtras IsNot Nothing AndAlso ObjCFDITimbre.Nomina.HorasExtras.Count > 0 Then - For Each HoraExtra As CFDINominaHorasExtras In ObjCFDITimbre.Nomina.HorasExtras - cfdi.Nomina12HorasExtra(HoraExtra.Dias.ToEntero, HoraExtra.TipoHoras, HoraExtra.HorasExtra, HoraExtra.ImportePagado) - Next - End If - - If ObjCFDITimbre.Nomina.Incapacidades IsNot Nothing AndAlso ObjCFDITimbre.Nomina.Incapacidades.Count > 0 Then - For Each Incap As CFDINominaIncapacidades In ObjCFDITimbre.Nomina.Incapacidades - cfdi.Nomina12Incapacidad(Incap.DiasIncapacidad.ToEntero, Incap.TipoIncapacidad, Incap.Importe) - Next - End If - - If ObjCFDITimbre.Nomina.OtrosPagos IsNot Nothing Then - ' cfdi.agregarNominaOtrosPagosOtroPago12("002", "002", "Subsidio", "10.00"); - ' cfdi.agregarNominaOtrosPagosOtroPagoSubsidioAlEmpleo12("10.00"); - If ObjCFDITimbre.Nomina.OtrosPagos IsNot Nothing AndAlso ObjCFDITimbre.Nomina.OtrosPagos.Count > 0 Then - For Each otpag As CFDINominaOtrosPagos In ObjCFDITimbre.Nomina.OtrosPagos - cfdi.Nomina12OtroPago(otpag.TipoOtroPago, otpag.Clave, otpag.Concepto, otpag.Importe) - If otpag.TipoOtroPago = "002" Then - cfdi.Nomina12SubsidioAlEmpleo(otpag.Subsidiocausado) - End If - - Next - End If - End If - End If -#End Region - - sw.Stop() - swTiempo.AppendFormat("Armado: ({0}) {1} ", sw.ElapsedMilliseconds - swmili, sw.ElapsedMilliseconds) - swmili = sw.ElapsedMilliseconds - sw.Start() -#Region "Genera XML" - Dim ArchivoGenerado As Boolean = False - Try - cfdi.GenerarXMLB64(llaveBase64, Clave) - ArchivoGenerado = True - Catch ex As Exception - Retorno = cfdi.MensajeError - If Retorno = "" OrElse IsNothing(Retorno) Then - Retorno = $"llaveBase64 ={llaveBase64}
    Clave ={Clave}
    {ex.ToString()}" - End If - MensajeErrorCFDI = Retorno - End Try - -#End Region - sw.Stop() - swTiempo.AppendFormat("Genera: ({0}) {1} ", sw.ElapsedMilliseconds - swmili, sw.ElapsedMilliseconds) - swmili = sw.ElapsedMilliseconds - sw.Start() - -#Region "Timbra" - If ArchivoGenerado Then - - 'cfdi.TimbrarCfdi(UsuarioServicio, ClaveServicio, UrlServicio, TimbraProduccion) - - 'sw.Stop() - 'swTiempo.AppendFormat("Timbrado: ({0}) {1} ", sw.ElapsedMilliseconds - swmili, sw.ElapsedMilliseconds) - 'swmili = sw.ElapsedMilliseconds - 'sw.Start() - 'Verifica el error - 'If cfdi.CodigoError = 0 Then - - ' Dim FolioFiscal As String - - ' UUID = cfdi.UUID - ' FolioFiscal = cfdi.UUID 'obtenerAtributo(cfdi.XmlTimbrado, "TimbreFiscalDigital", "UUID") 'XmlDoc.DocumentElement("cfdi:Complemento").FirstChild.Attributes("UUID").InnerText - - ' If FolioFiscal <> "" Then - - ' cfdi.EscribirXML(cfdi.Xml, RutaArchivo, NombreArchivoXML) - - ' sw.Stop() - ' swTiempo.AppendFormat("Guardado: ({0}) {1} ", sw.ElapsedMilliseconds - swmili, sw.ElapsedMilliseconds) - ' swmili = sw.ElapsedMilliseconds - ' sw.Start() - - ' If ObjCFDITimbre.Comprobante.TipoComprobante <> "P" Then - - ' 'Actualiza Estatus Factura - ' If Ventas.CveVenta > 0 Then - - ' Using ObjVentas As New ClsVentas() - - ' If ObjVentas.UpdateEstatusFactura(3, FolioFiscal, "", ObjCFDITimbre.Comprobante.Fecha, Ventas.CveVenta, CvePAC:=CvePACEspecial) Then - ' Retorno = "" - ' Else - ' Retorno = "Error" - ' End If - ' End Using - - ' 'Genero la addenda Ford - ' If Ventas.Cliente.Ford_GSDB <> "" Then - - ' Dim RutaCadena As String = String.Format("{0}{1}.xml", RutaArchivo, NombreArchivoXML) 'If(UsuarioActual.Empresa.FacturaProduccion, String.Format("{0}XML\{1}\{2}.xml", Ruta, Ventas.SerieFolio), String.Format("{0}XML\{1}\{2}.xml", Ruta, Ventas.TipoDocto, Ventas.SerieFolio)) - - ' Dim FolioFactura As String = "" - ' If UsuarioActual.CveEmpresa = 8 Then FolioFactura = Ventas.Folio.ToString ' sogo, pordefault manda el folio de la factura - ' GeneraAddendaFord(RutaCadena, FolioFactura, Ventas.FordASN, Ventas.FordGSDB) - - ' End If - - ' End If - - ' If ObjCFDITimbre.Comprobante.TipoComprobante = "N" Then - ' Using ObjNomina2 As New ClsNominas() - - ' If ObjNomina2.UpdateEstatusNomNominas(3, CvePACEspecial, FolioFiscal, "", ("01/01/2000").ToDate, ObjCFDITimbre.Nomina.CveNomina, 0, 0, 0, 0, 0) Then - ' Retorno = "" - ' Else - ' Retorno = "Error" - ' End If - ' End Using - ' End If - - ' If ObjCFDITimbre.Comprobante.TipoComprobante = "T" Then - ' Using ObjInv As New ClsInventarios() - ' If ObjInv.UpdateMovimientoTimbrado(Ventas.Inv_CveMovimiento, 1, FolioFiscal, MinFecha) Then - ' Retorno = "" - ' Else - ' Retorno = "Error" - ' End If - ' End Using - ' End If - ' End If - - ' If Not IO.Directory.Exists($"{UsuarioActual.Empresa.Ruta}CBB\") Then IO.Directory.CreateDirectory($"{UsuarioActual.Empresa.Ruta}CBB\") - - ' Try - ' Dim RutaCBB As String = $"{UsuarioActual.Empresa.Ruta}CBB\{ObjCFDITimbre.Comprobante.SerieFolio}.jpg" - ' Dim b As Byte() = cfdi.QrCode($"?re={UsuarioActual.Empresa.RFC}&rr={ObjCFDITimbre.Receptor.RFC}&tt={String.Format("{0,12:F6}", ObjCFDITimbre.Comprobante.Total).Trim()}&id={FolioFiscal}") - ' File.WriteAllBytes(RutaCBB, b) - ' Catch ex As Exception - ' OnError("Ocurrió un error al generar el QR", ex) - ' End Try - ' Retorno = "" - ' Else - ' Retorno = "No se pudo timbrar ante el SAT. UUID no generado." - ' End If - ' sw.Stop() - ' swTiempo.AppendFormat("Actualizado: ({0}) {1} ", sw.ElapsedMilliseconds - swmili, sw.ElapsedMilliseconds) - ' swmili = sw.ElapsedMilliseconds - ' sw.Start() - - 'Else - ' Retorno = cfdi.MensajeError - ' MensajeErrorCFDI = cfdi.MensajeError - ' If cfdi.Xml <> "" Then cfdi.EscribirXML(cfdi.Xml, RutaArchivo, NombreArchivoXML) - - 'End If - End If - -#End Region - GuardaLogTimbrado(swTiempo.ToString, CvePACEspecial) - Return Retorno - End Function - Public Sub GuardaLogTimbrado(Str As String, CvePAC As Integer) Dim ArchivoW As StreamWriter Dim strLineaTMP As String diff --git a/App_WebReferences/Cancelacion/cancelacion.wsdl b/App_WebReferences/Cancelacion/cancelacion.wsdl deleted file mode 100644 index 12503b338..000000000 --- a/App_WebReferences/Cancelacion/cancelacion.wsdl +++ /dev/null @@ -1,369 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Cancela un Cfdi en pruebas - - - - - Obtiene el estatus de un Cfdi en producción - - - - - Obtiene el estatus de un Cfdi en pruebas - - - - - Obtiene los Uuid pendientes de aceptar/rechazar de un Receptor (Producción) - - - - - Obtiene los Uuid pendientes de aceptar/rechazar de un Receptor (Pruebas) - - - - - Acepta/Rechaza una solicitud pendiente de cancelación (Producción) - - - - - Acepta/Rechaza una solicitud pendiente de cancelación (Pruebas) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Compras/Compras.aspx.vb b/Compras/Compras.aspx.vb index 998d47301..596aa860d 100644 --- a/Compras/Compras.aspx.vb +++ b/Compras/Compras.aspx.vb @@ -6882,7 +6882,7 @@ Partial Class Compras_Compras End If - If UsuarioActual.CveEmpresa.Contiene(119, 158) Then + If UsuarioActual.CveEmpresa.Contiene(119) Then Dim ContienePSNeteoBonif As Boolean = False For Each Dr As DataRow In TmpDT.Rows If Dr("CveClasificacion").ToString.ToEntero.Contiene(20319) Or DdlTipoCompra.SelectedValue.ToEntero = 11 Then 'clasificación de Bonificación, no se incluirá en el neteo @@ -7017,7 +7017,7 @@ Partial Class Compras_Compras End If Dim usacomplementariaProveedor As Boolean = False - usacomplementariaProveedor = If(tipoCambioActual > 1 AndAlso UsuarioActual.CveEmpresa.Contiene(1, 119, 158), True, False) + usacomplementariaProveedor = If(tipoCambioActual > 1 AndAlso UsuarioActual.CveEmpresa.Contiene(1, 119), True, False) If usacomplementariaProveedor AndAlso DdlTipoComprobante.SelectedValue = "Ant" Then 'importeMovimiento @@ -8395,7 +8395,7 @@ Partial Class Compras_Compras 'CUANDO ES REEMBOLSO COMPROBACION Y CAJA CHICA - If UsuarioActual.CveEmpresa.Contiene(1, 119, 158) AndAlso TxtNumeroReembolso.Text.Trim <> "" AndAlso (DdlPersonalReembolso.SelectedValue.ToEntero > 0 Or DdlCuentaCajaChicaReembolso.SelectedValue.ToEntero > 0) Then + If UsuarioActual.CveEmpresa.Contiene(1, 119) AndAlso TxtNumeroReembolso.Text.Trim <> "" AndAlso (DdlPersonalReembolso.SelectedValue.ToEntero > 0 Or DdlCuentaCajaChicaReembolso.SelectedValue.ToEntero > 0) Then If ObjCompras.GetComprobacion(DdlPersonalReembolso.SelectedValue.ToEntero, DdlCuentaCajaChicaReembolso.SelectedValue.ToEntero, TxtNumeroReembolso.Text.Trim, UsuarioActual.CveEmpresa) Then Dim CvePreComprobacion As Integer If ObjCompras.DtResultados.Rows.Count = 0 Then diff --git a/Empresas/141/Formatos/Cotizacion.rdlc b/Empresas/141/Formatos/Cotizacion.rdlc index 67f6d1a19..0b05ae519 100644 --- a/Empresas/141/Formatos/Cotizacion.rdlc +++ b/Empresas/141/Formatos/Cotizacion.rdlc @@ -1525,11 +1525,117 @@ 2pt + + true + true + true + + + + + Folio Fiscal: + + + + =Parameters!FolioFiscal.Value + + + + + + + =Parameters!FechaCertificacion.Value + + + + + + + =Parameters!SerieCertificadoSAT.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + true true true + + + + No. de Serie del Certificado del CSD: + + + + =Parameters!CertificadoContribuyente.Value + + + + @@ -1672,7 +1778,7 @@ 0.25136cm 0.74611cm 13.82025cm - 10 + 11 @@ -1705,7 +1811,7 @@ 14.07729cm 0.57354cm 2.90753cm - 11 + 12 @@ -1740,7 +1846,7 @@ 0.26772cm 0.52062cm 9.72441cm - 12 + 13 @@ -1778,7 +1884,7 @@ 1.68221cm 1.05328cm 17.71415cm - 13 + 14 =IIF((Sum(IIF(Fields!CveClasificacion.Value = 20345,1,0), "DsOC") > 0),false,true) @@ -1910,7 +2016,7 @@ 0.22108cm 2.03224cm 20.79751cm - 14 + 15 @@ -1940,7 +2046,7 @@ 0.19009cm 0.05496cm 20.88652cm - 15 + 16 @@ -1952,6 +2058,21 @@ 2pt + + Embedded + ID5 + FitProportional + 11.02339cm + 0.17151cm + 0.96488cm + 3.75909cm + 17 + + + + true true @@ -1979,7 +2100,7 @@ 0.19008cm 0.40655cm 12.88812cm - 16 + 18 @@ -1990,6 +2111,51 @@ 2pt + + Embedded + ID4 + FitProportional + 11.02339cm + 4.34941cm + 0.91769cm + 3.03541cm + 19 + + + + + + Embedded + ID1 + FitProportional + 11.02339cm + 7.56121cm + 0.97656cm + 4.16281cm + 20 + + + + + + Embedded + ID6 + FitProportional + 11.02339cm + 11.90634cm + 1.01184cm + 3.76809cm + 21 + + + + Embedded ID3 @@ -1998,7 +2164,7 @@ 15.67443cm 0.93046cm 5.37042cm - 17 + 22 @@ -2030,7 +2196,61 @@ 15.67443cm 0.50299cm 5.42547cm - 18 + 23 + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Ord. Compra: + + + + =Parameters!OC.Value + + + + + + + @@ -2048,7 +2268,61 @@ - Pago: + Tipo de Comprobante:I Ingreso,Moneda: + + + + =Parameters!MonedaAbreviatura.Value + + + + , Uso de CFDI: + + + + =Parameters!UsoCFDI.Value + + + + , Forma de Pago: + + + + =Parameters!FormaPago.Value + + + + , Método de Pago: @@ -2156,7 +2430,7 @@ 6.24049in 0.21875in 0.94607in - 20 + 26 @@ -2191,7 +2465,7 @@ 6.24048in 0.21875in 0.94607in - 21 + 27 @@ -2226,7 +2500,7 @@ 6.24048in 0.21875in 0.94607in - 22 + 28 @@ -2261,7 +2535,7 @@ 6.24048in 0.21875in 0.94607in - 23 + 29 @@ -2297,7 +2571,7 @@ 6.24048in 0.21875in 0.94607in - 24 + 30 @@ -2333,7 +2607,7 @@ 7.18656in 0.21875in 0.98426in - 25 + 31 @@ -2368,7 +2642,7 @@ 7.18656in 0.20486in 0.98425in - 26 + 32 @@ -2403,7 +2677,7 @@ 7.18656in 0.19899in 0.98425in - 27 + 33 @@ -2439,7 +2713,7 @@ 7.18656in 0.19284in 0.98425in - 28 + 34 @@ -2475,7 +2749,7 @@ 7.18656in 0.19596in 0.98425in - 29 + 35 @@ -2510,7 +2784,7 @@ 4.32565cm 0.82021cm 7.93893cm - 30 + 36 @@ -2540,7 +2814,7 @@ 0.19009cm 0.05496cm 20.88652cm - 31 + 37 @@ -2552,84 +2826,6 @@ 2pt - - true - true - - - - - Este documento es una cotización sin efectos fiscales ni tampoco es un comprobante de pago - - - - - - 2pt - 2pt - 2pt - 2pt - - - - Embedded - Screenshot_2 - FitProportional - 10.94818cm - 0.22202cm - 0.95717cm - 4.40152cm - 33 - - - - - - Embedded - Screenshot_3 - FitProportional - 10.94818cm - 6.07789cm - 0.92189cm - 3.75114cm - 34 - - - - - - Embedded - Screenshot_4 - FitProportional - 10.97239cm - 11.40131cm - 0.93296cm - 3.82833cm - 35 - - - - 15.93202cm + + + + + + + + Sahuaro (662) 2161471 - Solidaridad (662) 216-0935 - Palo Verde (662) 4363254 - Progreso (662) 3105781 - Quiroga (662) 261- 0838 - Caborca (637) 3724214 - Magdalena (632) 322-4080 + + + + + + + + + Nogales (631) 319-0093 - Cananea (645) 332 20 40 - Guaymas (622) 222-2417 - Obregón (644)412-2002 Obregón II (644) 413-1543- Obregón III (644) 4134501 - Navojoa (642) 422-9852 + + + + + + + + + Sinaloa: Los Mochis (668) 817-0209 - Los Mochis II (668) 176-5802 - Guasave (687) 871-5317 - Calzada (667) 729-2112 - Zapata (667) 992-0876 - Tierra Blanca (667) 716-6997 - Sanalona (667) 713-667 + + + + + + + + + Tres Ríos (667) 455-4621 - Mazatlán (669) 910-2122 - Baja California: Tijuana1 (664) 622-5221 - Tijuana3 (664) 626-2615 - Rosarito (661) 612-4461 - Mexicali (686) 567-6102 - Mexicali3 (686) 326 02 79 + + + + + + + + + Tecate (665) 5212080 - Ensenada (646) 172-4075 - Ensenada2 (646) 176-2703 - Baja California Sur: La Paz (612) 146-3656 - La Paz 2 (612) 121-3185 - Los Cabos (624) 688 3552 + + + + + + + Textbox4 + 9.91718cm + 0.22108cm + 2.03224cm + 20.79751cm + + + 2pt + 2pt + 2pt + 2pt + + @@ -477,10 +612,11 @@ true - 6.06618in + 6.31618in 0.06752in 1.42169in 8.23953in + 1 @@ -1275,7 +1411,7 @@ 0.09836in 0.36206in 8.16629in - 1 + 2 @@ -1297,11 +1433,11 @@ Textbox5 - 8.32309cm + 9.27559cm 0.28014cm 0.05496cm 20.88652cm - 2 + 3 @@ -1345,11 +1481,11 @@ Textbox1 - 8.41332cm + 9.36582cm 2.01402cm 0.51608cm 19.15264cm - 3 + 4 @@ -1368,7 +1504,7 @@ 1.15361cm 2.413cm 2.75323cm - 4 + 5 @@ -1448,7 +1584,7 @@ 4.32565cm 2.70968cm 7.93893cm - 5 + 6 @@ -1528,7 +1664,7 @@ 12.68838cm 2.70968cm 5.11312cm - 6 + 7 @@ -1562,7 +1698,7 @@ 18.23008cm 0.96018cm 2.79101cm - 7 + 8 @@ -1598,7 +1734,7 @@ 18.23008cm 0.6cm 2.79101cm - 8 + 9 @@ -1649,7 +1785,7 @@ 18.23008cm 0.86903cm 2.79101cm - 9 + 10 @@ -1740,7 +1876,7 @@ 0.28014cm 1.09007cm 9.71199cm - 10 + 11 @@ -1820,7 +1956,7 @@ 10.06268cm 0.7927cm 9.71199cm - 11 + 12 @@ -2001,7 +2137,7 @@ 0.25136cm 0.74611cm 13.82025cm - 12 + 13 @@ -2034,7 +2170,7 @@ 14.07729cm 0.57354cm 2.90753cm - 13 + 14 @@ -2068,11 +2204,11 @@ Textbox4 - 5.8751cm + 6.1926cm 1.74571cm 1.05328cm 17.71415cm - 14 + 15 =IIF((Sum(IIF(Fields!CveClasificacion.Value = 20345,1,0), "DsOC") > 0),false,true) @@ -2086,142 +2222,6 @@ 2pt - - true - true - true - - - - - Sonora: Veracruz (662) 210-0041 - Morelos (662) 211-0805 - Colosio (662) 2608088 - Colosio2 (662) 1189939 - Reforma (662) 213-8724 - Perisur (662) 254-4849 - Rodríguez (662) 213-0388 - - - - - - - - - Sahuaro (662) 2161471 - Solidaridad (662) 216-0935 - Palo Verde (662) 4363254 - Progreso (662) 3105781 - Quiroga (662) 261- 0838 - Caborca (637) 3724214 - Magdalena (632) 322-4080 - - - - - - - - - Nogales (631) 319-0093 - Cananea (645) 332 20 40 - Guaymas (622) 222-2417 - Obregón (644)412-2002 Obregón II (644) 413-1543- Obregón III (644) 4134501 - Navojoa (642) 422-9852 - - - - - - - - - Sinaloa: Los Mochis (668) 817-0209 - Los Mochis II (668) 176-5802 - Guasave (687) 871-5317 - Calzada (667) 729-2112 - Zapata (667) 992-0876 - Tierra Blanca (667) 716-6997 - Sanalona (667) 713-667 - - - - - - - - - Tres Ríos (667) 455-4621 - Mazatlán (669) 910-2122 - Baja California: Tijuana1 (664) 622-5221 - Tijuana3 (664) 626-2615 - Rosarito (661) 612-4461 - Mexicali (686) 567-6102 - Mexicali3 (686) 326 02 79 - - - - - - - - - Tecate (665) 5212080 - Ensenada (646) 172-4075 - Ensenada2 (646) 176-2703 - Baja California Sur: La Paz (612) 146-3656 - La Paz 2 (612) 121-3185 - Los Cabos (624) 688 3552 - - - - - - - Textbox4 - 8.96468cm - 0.22108cm - 2.03224cm - 20.79751cm - 15 - - - 2pt - 2pt - 2pt - 2pt - - true true @@ -2237,7 +2237,7 @@ Textbox5 - 12.60759cm + 13.24259cm 0.24983cm 0.05496cm 20.88652cm @@ -2253,57 +2253,6 @@ 2pt - - Embedded - ID3 - FitProportional - 21.4598cm - 0.28014cm - 0.93046cm - 5.37042cm - 17 - - - - - - true - true - - - - - DESCARGA NUESTRA NUEVA APLICACIÓN - - - - - - - Textbox60 - 19.12502cm - 0.28014cm - 0.6882cm - 20.71217cm - 18 - - - 2pt - 2pt - 2pt - 2pt - - true true @@ -2346,7 +2295,7 @@ 17.09066cm 0.64028cm 3.90165cm - 19 + 17 @@ -2509,11 +2458,11 @@ Textbox4 - 12.76838cm + 13.40338cm 0.16383cm 2.44366cm 15.51057cm - 20 + 18 @@ -2544,11 +2493,11 @@ Textbox19 - 5.01303in + 5.26303in 6.21617in 0.17708in 0.94607in - 21 + 19 @@ -2579,11 +2528,11 @@ Textbox19 - 5.2055in + 5.4555in 6.21616in 0.17966in 0.94607in - 22 + 20 @@ -2614,11 +2563,11 @@ Textbox19 - 5.40449in + 5.65449in 6.21616in 0.18819in 0.94607in - 23 + 21 @@ -2649,11 +2598,11 @@ Textbox19 - 5.61074in + 5.86074in 6.22658in 0.17119in 0.94607in - 24 + 22 @@ -2685,11 +2634,11 @@ Textbox19 - 5.80137in + 6.05137in 6.237in 0.19596in 0.94607in - 25 + 23 @@ -2721,11 +2670,11 @@ Textbox42 - 5.03803in + 5.28803in 7.16224in 0.17708in 0.98426in - 26 + 24 @@ -2756,11 +2705,11 @@ Textbox42 - 5.2305in + 5.4805in 7.16224in 0.17966in 0.98425in - 27 + 25 @@ -2791,11 +2740,11 @@ Textbox42 - 5.42949in + 5.67949in 7.17266in 0.18819in 0.98425in - 28 + 26 @@ -2827,11 +2776,11 @@ Textbox42 - 5.63574in + 5.88574in 7.17266in 0.17119in 0.98425in - 29 + 27 @@ -2863,11 +2812,11 @@ Textbox42 - 5.82637in + 6.07637in 7.18308in 0.19596in 0.98425in - 30 + 28 @@ -2904,7 +2853,7 @@ 6.75122cm 0.82021cm 5.51336cm - 31 + 29 @@ -2930,11 +2879,11 @@ Textbox5 - 15.2826cm + 15.9176cm 0.10579cm 0.05496cm 20.88652cm - 32 + 30 @@ -2946,55 +2895,6 @@ 2pt - - true - true - true - - - - - ** SI LAS LLANTAS NO SON INSTALADAS EN ECONOLLANTAS PIERDE SU GARANTÍA DE FABRICA ** - - - - - - - - - 2pt - 2pt - 2pt - 2pt - - true true @@ -3003,7 +2903,7 @@ - < ** Toda corrección de los datos del comprobante debera efectuarse a más tardar tres dias despues de su expedición. ** > + < ** Toda corrección de los datos del comprobante debera efectuarse a más tardar tres dias despues de su expedición. ** > + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + + + + Black + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + + + + Black + 2pt + 2pt + 2pt + 2pt + + + + Embedded + rockblade + FitProportional + 12.06211cm + 6.5919cm + 0.62223cm + 4.03523cm 34 + + + + + + Embedded + yokohama2 + FitProportional + 12.06211cm + 0.58737cm + 0.62223cm + 4.03523cm + 35 + + + + + + Embedded + mastercraft + FitProportional + 12.12228cm + 17.02729cm + 0.62223cm + 4.03523cm + 36 + + + + + + Embedded + coopertires + FitProportional + 12.18225cm + 11.79701cm + 0.62223cm + 4.03523cm + 37 + + + + + + true + true + true + + + + + ESTAS LLANTAS SOLO TENDRAN GARANTÍA DE POR VIDA CONTRA DEFECTO DE FABRICA. +*SI LAS LLANTAS NO SON INSTALADAS EN ECONOLLANTAS PIERDE SU GARANTÍA DE FABRICA*. + + + + =IIF(IIF((Sum(IIF(Fields!CveClasificacion.Value = 20345,1,0), "DsOC") = 0) and (Sum(IIF(Fields!CveClasificacion.Value = 20342 or Fields!CveClasificacion.Value = 20341,1,0), "DsOC") > 0),false,true),"","<br/>**EL CLIENTE NO ACEPTA PÓLIZA DE SEGURO**") + HTML + + + + + + + + + PARA UNA OPTIMA DURACION DE SUS LLANTAS, ESTAS DEBEN ALINEARSE BALANCEARSE Y ROTAR CADA 6 MESES O 1O MIL KILOMETROS. + + + + PARA HACER VALIDA UNA RECLAMACIÓN DEBERAN CUMPLIR CON EL ANTERIOR REQUISITO + + + + + + 2pt + 2pt + 2pt + 2pt + + + + Embedded + ID3 + FitProportional + 22.13416cm + 0.22725cm + 0.93046cm + 5.37042cm + 39 + + + + + + true + true + + + + + DESCARGA NUESTRA NUEVA APLICACIÓN + + + + + + + Textbox60 + 19.79938cm + 0.22725cm + 0.6882cm + 20.71217cm + 40 @@ -3038,11 +3176,11 @@ =System.Convert.FromBase64String(Parameters!QRDescarga.Value) image/png FitProportional - 8.0685in - 6.67743in + 8.33399in + 6.65661in 0.6035in 0.78275in - 35 + 41 @@ -3091,11 +3229,11 @@ Textbox60 - 19.5698cm - 0.28014cm + 20.24416cm + 0.22725cm 1.49135cm 5.37042cm - 36 + 42 @@ -3106,68 +3244,6 @@ 2pt - - true - true - - - - - - - - Black - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - - - - Black - 2pt - 2pt - 2pt - 2pt - - true true @@ -3246,11 +3322,11 @@ Textbox60 - 19.5698cm - 7.45145cm + 20.24416cm + 7.39856cm 2.45709cm 6.56105cm - 39 + 43 @@ -3285,11 +3361,11 @@ Textbox60 - 19.56002cm - 14.67145cm + 20.23438cm + 14.61856cm 1.46939cm 6.32076cm - 40 + 44 @@ -3300,68 +3376,24 @@ 2pt - - Embedded - rockblade - FitProportional - 11.19428cm - 5.58835cm - 0.86918cm - 4.08628cm - 41 + + + Start + + true + 19.90494cm + 0cm + 3.07798cm + 21.09991cm + 45 - - - Embedded - yokohama2 - FitProportional - 11.33186cm - 0.58737cm - 0.65751cm - 4.35272cm - 42 - - - - - - Embedded - mastercraft - FitProportional - 11.30011cm - 17.06617cm - 0.93972cm - 3.99634cm - 43 - - - - - - Embedded - coopertires - FitProportional - 11.33186cm - 10.33489cm - 0.65751cm - 6.09184cm - 44 - - - - + - 22.57045cm + 23.17899cm diff --git a/Ventas/ProductosServicios.aspx.vb b/Ventas/ProductosServicios.aspx.vb index 8277745fb..18dbbe908 100644 --- a/Ventas/ProductosServicios.aspx.vb +++ b/Ventas/ProductosServicios.aspx.vb @@ -2853,8 +2853,6 @@ Partial Class ProductosyServicios ClaveImpuestoUM:=DdlImpUM.SelectedValue.ToString, ClaveCategoriaToxicidad:=DdlCategoriaToxicidad.SelectedValue.ToString, ClaveImpuestoTipoProducto:=DdlImpTipoProducto.SelectedValue.ToString, EsOutSourcing:=ChkEsOutSourcing.Checked, TiempoCaducidad:=TxtTiempoCaducidad.Text.ToEntero()) > 0 Then 'Alert(String.Format("Error al agregar el nuevo producto en la franquicia: '{0}'", GlobalDTEmpresas(Franquicia).FiltroPrimeroValor("Empresa"))) - - GlobalDTPSSimplificado(Franquicia) = Nothing Return True End If @@ -2874,7 +2872,6 @@ Partial Class ProductosyServicios ClaveImpuestoUM:=DdlImpUM.SelectedValue.ToString, ClaveCategoriaToxicidad:=DdlCategoriaToxicidad.SelectedValue.ToString, ClaveImpuestoTipoProducto:=DdlImpTipoProducto.SelectedValue.ToString, EsOutSourcing:=ChkEsOutSourcing.Checked, AplicaSerie:=ChkSerie.Checked, AplicaLote:=ChkLote.Checked, AplicaCaducidad:=ChkCaducidad.Checked, AplicaSeccion:=ChkSeccion.Checked, TiempoCaducidad:=TxtTiempoCaducidad.Text.ToEntero()) Then - GlobalDTPSSimplificado(Franquicia) = Nothing Return True End If diff --git a/Ventas/RepComisionesJAM.aspx b/Ventas/RepComisionesJAM.aspx index f3ef9926b..cf06867b3 100644 --- a/Ventas/RepComisionesJAM.aspx +++ b/Ventas/RepComisionesJAM.aspx @@ -86,7 +86,7 @@
    -
    ProForma:
    +
    Esquema Nuevo:
    From 1682cd0f755c81d4669c3ae7eb7b8f5359e8a874 Mon Sep 17 00:00:00 2001 From: rrene Date: Thu, 17 Dec 2020 10:02:39 -0700 Subject: [PATCH 36/39] -- orden rin/medida --- Inventarios/KardexAlmacenHorizontal.aspx | 1 + 1 file changed, 1 insertion(+) diff --git a/Inventarios/KardexAlmacenHorizontal.aspx b/Inventarios/KardexAlmacenHorizontal.aspx index f96654277..767cf5d47 100644 --- a/Inventarios/KardexAlmacenHorizontal.aspx +++ b/Inventarios/KardexAlmacenHorizontal.aspx @@ -194,6 +194,7 @@ +
    From 91b692867681213d28c6a816772678e5f5dec0e5 Mon Sep 17 00:00:00 2001 From: rrene Date: Thu, 17 Dec 2020 10:02:50 -0700 Subject: [PATCH 37/39] filtro de aplicaventa en ps --- Ventas/PV.aspx.vb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Ventas/PV.aspx.vb b/Ventas/PV.aspx.vb index 152d2e3cc..791e4e1d0 100644 --- a/Ventas/PV.aspx.vb +++ b/Ventas/PV.aspx.vb @@ -2700,6 +2700,8 @@ Partial Class PV Objeto.Attributes.Add("data-cvesubproyecto", DdlSubProyectoDatos.SelectedValue) 'Objeto.ddlWS.Attributes.Add("data-cveclasificacion", CveClasificacion.ToString) Objeto.ddlWS.Attributes.Add("data-cveclasificacion", "-1") + Objeto.ddlWS.Attributes.Add("data-aplicaparaventa", "1") + If AplicaAlmacen Then Objeto.ddlWS.Attributes.Add("data-pagina", "ventas/ventas") Else From 020ee48910e7657c6f4a67ec836166969dbd8682 Mon Sep 17 00:00:00 2001 From: rrene Date: Thu, 17 Dec 2020 10:16:51 -0700 Subject: [PATCH 38/39] -- productos de NC por pronto pago --- Ventas/ClientesAbonar.aspx.vb | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/Ventas/ClientesAbonar.aspx.vb b/Ventas/ClientesAbonar.aspx.vb index 8b4334e83..4a8e19e4e 100644 --- a/Ventas/ClientesAbonar.aspx.vb +++ b/Ventas/ClientesAbonar.aspx.vb @@ -2082,8 +2082,13 @@ Partial Class Ventas_ClientesAbonar Dim SubProyecto = DrSubProyecto("SubProyecto").ToString Dim Proyecto = DrSubProyecto("Proyecto").ToString - Dim CveSATNC = "84111506" - Dim DrPS = GlobalDTPS(UsuarioActual.CveEmpresa, SATClavePS:=CveSATNC, AplicaParaVenta:=1).FiltroPrimero("") + Dim CveSATNC As Integer + Dim ArrayNC As String() = UsuarioActual.Empresa.Funcionalidad(591).Split(",".ToCharArray()) + Dim NCBonificacion As Integer = 0 + If ArrayNC.Length > 6 Then 'CONCEPTO DE PRONTO PAGO + CveSATNC = ArrayNC(6).ToEntero() + End If + Dim DrPS = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CveSATNC, AplicaParaVenta:=1).FiltroPrimero("") For Each Dr As DataRow In DtImpuestos.Rows AgregaTempDTNC(ObjFacturaDevolucion.DtDetalle, DrPS("CvePS").ToString.ToEntero, DrPS("PS").ToString, DrPS("Codigo").ToString, DrPS("PSCodigo").ToString, DrPS("CveTipoPS").ToString.ToEntero, DrPS("Inv_CveMetodoInventario").ToString.ToEntero, From 49178fb0267da1938917c61a4824ee4bdba28d43 Mon Sep 17 00:00:00 2001 From: rrene Date: Thu, 17 Dec 2020 10:17:34 -0700 Subject: [PATCH 39/39] -- renglon 4 de acumulados --- Ventas/Clientes.aspx.vb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Ventas/Clientes.aspx.vb b/Ventas/Clientes.aspx.vb index 55ce1f097..a01b7bf92 100644 --- a/Ventas/Clientes.aspx.vb +++ b/Ventas/Clientes.aspx.vb @@ -9141,7 +9141,7 @@ Partial Class Clientes End If Dim ImporteBonificacion As Decimal = 0 - If ObjAcum.GetMovimientosDistribuidorResumen(CveCliente, UsuarioActual.CveEmpresa) AndAlso ObjAcum.DtResultados.Rows.Count > 0 Then + If ObjAcum.GetMovimientosDistribuidorResumen(CveCliente, UsuarioActual.CveEmpresa) AndAlso ObjAcum.DtResultados.Rows.Count >= 4 Then GvUsadosResumen.DataSource = ObjAcum.DtResultados ImporteBonificacion = ObjAcum.DtResultados.Rows(4)("Valor").ToString().ToDecimal() End If