diff --git a/App_Code/ClsPuntoVenta.vb b/App_Code/ClsPuntoVenta.vb index bae4421c5..d84033315 100644 --- a/App_Code/ClsPuntoVenta.vb +++ b/App_Code/ClsPuntoVenta.vb @@ -267,15 +267,15 @@ Public Class ClsPuntoVenta End Function - Public Function GetVta_ReporteCortes(CveEmpresa As Integer, FechaI As Date, FechaF As Date, Optional CveSubProyecto As Integer = -1) As Boolean + Public Function GetVta_ReporteCortes(CveEmpresa As Integer, FechaI As Date, FechaF As Date, Optional CveSubProyecto As Integer = -1, Optional CveCorte As Integer = -1) As Boolean Dim Retorno As Boolean = False DataAdapter("PA_Vta_ReporteCortesGet") SqlAdapter.SelectCommand.Parameters.Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa SqlAdapter.SelectCommand.Parameters.Add("@FechaInicio", SqlDbType.Date).Value = FechaI SqlAdapter.SelectCommand.Parameters.Add("@FechaFin", SqlDbType.Date).Value = FechaF - SqlAdapter.SelectCommand.Parameters.Add("@CveSubProyecto", SqlDbType.Int).Value = CveSubProyecto - + SqlAdapter.SelectCommand.Parameters.Add("@CveSubProyecto", SqlDbType.Int).Value = CveSubProyecto + SqlAdapter.SelectCommand.Parameters.Add("@CveCorte", SqlDbType.Int).Value = CveCorte Try SqlAdapter.Fill(Data) Retorno = True diff --git a/Compras/Compras.aspx.vb b/Compras/Compras.aspx.vb index 70ccf97f9..be4a3e3bf 100644 --- a/Compras/Compras.aspx.vb +++ b/Compras/Compras.aspx.vb @@ -20274,6 +20274,12 @@ Partial Class Compras_Compras Dim respuesta As Boolean = False + If DdlTipoComprobante.SelectedValue <> "Fac" Then + Return True + End If + + + If UsuarioActual.Empresa.Funcionalidad(532) = "1" Then Dim ObjCon As New ClsContratos @@ -20308,11 +20314,11 @@ Partial Class Compras_Compras .Clasificacion = Clasificacion, .CveClasificacion = CveClasificacion, .CveTipoGasto = CveTipoGasto, - .TipoGasto = TipoGasto, - .TotalSum = Group.Sum(Function(r) r.Field(Of Decimal)("Total")) + .TipoGasto = TipoGasto, + .TotalSum = Group.Sum(Function(r) If(IsDBNull(r("Total")), 0D, Convert.ToDecimal(r("Total")))) }).ToList() - + ''.TotalSum = Group.Sum(Function(r) r.Field(Of Decimal)("Total")) If Opcion = 1 Then diff --git a/Compras/PopUpVerFactura.aspx.vb b/Compras/PopUpVerFactura.aspx.vb index 53321fbca..facb2a11a 100644 --- a/Compras/PopUpVerFactura.aspx.vb +++ b/Compras/PopUpVerFactura.aspx.vb @@ -1566,13 +1566,15 @@ Partial Class PopUpVerFactura Dim ObjPuntoVenta As New ClsPuntoVenta Dim DtCortesVentasResumen As DataTable = Nothing Dim DtCortesVentas As DataTable = Nothing + Dim DtReporteCorte As DataTable = Nothing + Dim Fecha As String = "", Nombre As String = "" If ObjVenta.GetCortesDetalleVentasResumen(CveCorte, CveSubProyecto, UsuarioActual.CveEmpresa) Then - DtCortesVentasResumen = ObjVenta.DtResultados + DtCortesVentasResumen = ObjVenta.DtResultados.Copy() End If If ObjPuntoVenta.GetCortesDetalleVentas(CveCorte, CveSubProyecto, UsuarioActual.CveEmpresa) Then - DtCortesVentas = ObjPuntoVenta.DtResultados + DtCortesVentas = ObjPuntoVenta.DtResultados.Copy() If DtCortesVentas.Rows.Count > 0 Then Dim RowInfo As DataRow = DtCortesVentas.FiltroPrimero("CveVenta > 0") @@ -1581,27 +1583,142 @@ Partial Class PopUpVerFactura End If End If + If UsuarioActual.Empresa.Funcionalidad(109) = "1" Then + If ObjPuntoVenta.GetVta_ReporteCortes(UsuarioActual.CveEmpresa, MinFecha, MaxFecha, CveSubProyecto, CveCorte:=CveCorte) Then + DtReporteCorte = ObjPuntoVenta.DtResultados.FiltraParametros("CveCorte > 0") + End If + End If + ObjVenta.Dispose() ObjPuntoVenta.Dispose() + Dim FechaCorte As String = $" Fecha fin: {Fecha}" Dim Usuario As String = $" Usuario: {Nombre}" If DtCortesVentas.Rows.Count > 0 Or DtCortesVentasResumen.Rows.Count > 0 Then + Dim lrds As New List(Of ReportDataSource) + + Dim rds As New ReportDataSource With {.Name = "DataSet1", .Value = DtCortesVentasResumen} + lrds.Add(rds) + Dim rds2 As New ReportDataSource With {.Name = "DataSet2", .Value = DtCortesVentas} + lrds.Add(rds2) + + Dim DirFormato As String = "Empresas/Grales/Formatos/RepCortes.rdlc" + If File.Exists(UsuarioActual.Empresa.Ruta + "\Formatos\RepCortes.rdlc") Then + DirFormato = UsuarioActual.Empresa.Ruta + "\Formatos\RepCortes.rdlc" + End If + Dim params As New List(Of ReportParameter) params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa)) params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre)) params.Add(New ReportParameter("FechaImpresion", NowADS().ToDateTime.ToShortDateString)) params.Add(New ReportParameter("AgrupoPor", $"{FechaCorte}{Usuario}")) params.Add(New ReportParameter("LogoPath", RutaImagenLogo)) - Dim lrds As New List(Of ReportDataSource) - Dim rds As New ReportDataSource With {.Name = "DataSet1", .Value = DtCortesVentasResumen} - lrds.Add(rds) - Dim rds2 As New ReportDataSource With {.Name = "DataSet2", .Value = DtCortesVentas} - lrds.Add(rds2) - ImprimirPDF("Empresas/Grales/Formatos/RepCortes.rdlc", lrds, params, "ReporteCortes", Formato) + + If UsuarioActual.Empresa.Funcionalidad(109) = "1" Then + If DtReporteCorte IsNot Nothing Then + Dim DtTT = GenerateTransposedTable(DtReporteCorte) + Dim DtDatosResumen As New DataTable() + DtDatosResumen.Columns.Add(New DataColumn("Orden", GetType(Integer))) + DtDatosResumen.Columns.Add(New DataColumn("Columna", GetType(String))) + DtDatosResumen.Columns.Add(New DataColumn("Importe", GetType(Decimal))) + + For Each row As DataRow In DtTT.Rows + Dim Total = row(1).ToString() + If IsNumeric(Total) Then + Dim Orden As Integer = 0 + Dim rowData = DtDatosResumen.NewRow() + Select Case row(0).ToString() + Case "ImporteInicial" + rowData("Columna") = "Importe Inicial" + Orden = 1 + Case "VentasCorte" + rowData("Columna") = "Total Ventas" + Orden = 2 + Case "NotasCredito" + rowData("Columna") = "N.C." + Orden = 3 + Case "VentasCredito" + rowData("Columna") = "Ventas Crédito" + Orden = 4 + 'Case "TotalEfectivo" + ' rowData("Columna") = "Total Efectivo" + 'Case "TotalCheque" + ' rowData("Columna") = "Total Cheque" + 'Case "TarjDebito" + ' rowData("Columna") = "Tarj. Débito" + 'Case "TarjCredito" + ' rowData("Columna") = "Tarj. Crédito" + 'Case "VentasTransferencia" + ' rowData("Columna") = "Total Transf." + Case "TotalRetiros" + rowData("Columna") = "Total Retiro" + Orden = 6 + Case "TotalIngresos" + rowData("Columna") = "Total Ingreso" + Orden = 5 + Case "Devoluciones" + rowData("Columna") = "Devoluciones" + Orden = 7 + Case "TotalCaja" + rowData("Columna") = "Total Caja" + Orden = 8 + 'Case "TotalCorte" + ' rowData("Columna") = "Total Corte" + Case Else + rowData("Columna") = row(0).ToString() + Orden = 0 + End Select + + rowData("Importe") = Total.ToDecimal() + rowData("Orden") = Orden + DtDatosResumen.Rows.Add(rowData) + End If + Next + + Dim rds3 As New ReportDataSource With {.Name = "DataSet3", .Value = DtDatosResumen.FiltraParametros("Orden > 0", "Orden")} + lrds.Add(rds3) + + 'params.Add(New ReportParameter("VentasCorte", RowCorte("VentasCorte").ToString())) + 'params.Add(New ReportParameter("NotasCredito", RowCorte("NotasCredito").ToString())) + 'params.Add(New ReportParameter("NotasCredito", RowCorte("NotasCredito").ToString())) + 'params.Add(New ReportParameter("VentasCredito", RowCorte("VentasCorte").ToString())) + 'params.Add(New ReportParameter("VentasCorte", RowCorte("VentasCorte").ToString())) + 'params.Add(New ReportParameter("VentasCorte", RowCorte("VentasCorte").ToString())) + End If + End If + + + + + ImprimirPDF(DirFormato, lrds, params, "ReporteCortes", Formato) End If End Sub + Private Function GenerateTransposedTable(ByVal inputTable As DataTable) As DataTable + Dim outputTable As DataTable = New DataTable() + outputTable.Columns.Add(inputTable.Columns(0).ColumnName.ToString()) + + For Each inRow As DataRow In inputTable.Rows + Dim newColName As String = inRow(0).ToString() + outputTable.Columns.Add(newColName) + Next + + For rCount As Integer = 1 To inputTable.Columns.Count - 1 + Dim newRow As DataRow = outputTable.NewRow() + newRow(0) = inputTable.Columns(rCount).ColumnName.ToString() + + For cCount As Integer = 0 To inputTable.Rows.Count - 1 + Dim colValue As String = inputTable.Rows(cCount)(rCount).ToString() + newRow(cCount + 1) = colValue + Next + + outputTable.Rows.Add(newRow) + Next + + Return outputTable + End Function + #End Region #Region " OP = FACTURA - IMPRIME COMPRA" diff --git a/OC/OC.aspx.vb b/OC/OC.aspx.vb index 15bdaa1e6..c00d99534 100644 --- a/OC/OC.aspx.vb +++ b/OC/OC.aspx.vb @@ -9013,7 +9013,7 @@ Partial Class OC_OC .CveSubProyecto = CveSubProyecto, .Clasificacion = Clasificacion, .CveClasificacion = CveClasificacion, - .TotalSum = Group.Sum(Function(r) r.Field(Of Decimal)("Total")) + .TotalSum = Group.Sum(Function(r) If(IsDBNull(r("Total")), 0D, Convert.ToDecimal(r("Total")))) }).ToList() diff --git a/Ventas/Clientes.aspx.vb b/Ventas/Clientes.aspx.vb index 7ece57268..61a5959bd 100644 --- a/Ventas/Clientes.aspx.vb +++ b/Ventas/Clientes.aspx.vb @@ -723,20 +723,18 @@ Partial Class Clientes TabCuentasEquipos.Visible = True End If - If UsuarioActual.Empresa.Funcionalidad(504).ToEntero() > 0 Then - If UsuarioActual.TienePermisoProceso(162) Then - ChkPermiteCredito.Enabled = True - TxtLimiteCreditoSucursal.Enabled = True - TxtFechaLimiteCredito.Enabled = True - Else - ChkPermiteCredito.Enabled = False - TxtLimiteCreditoSucursal.Enabled = False - TxtFechaLimiteCredito.Enabled = False - End If - ChkEstado.Enabled = False - If UsuarioActual.TienePermisoProceso(180) Then - ChkEstado.Enabled = True - End If + If UsuarioActual.TienePermisoProceso(162) Then + ChkPermiteCredito.Enabled = True + TxtLimiteCreditoSucursal.Enabled = True + TxtFechaLimiteCredito.Enabled = True + Else + ChkPermiteCredito.Enabled = False + TxtLimiteCreditoSucursal.Enabled = False + TxtFechaLimiteCredito.Enabled = False + End If + ChkEstado.Enabled = False + If UsuarioActual.TienePermisoProceso(180) Then + ChkEstado.Enabled = True End If If UsuarioActual.Empresa.Funcionalidad(579) = "1" Then diff --git a/Ventas/Ventas.aspx.vb b/Ventas/Ventas.aspx.vb index b201724b4..a6b34145e 100644 --- a/Ventas/Ventas.aspx.vb +++ b/Ventas/Ventas.aspx.vb @@ -8446,7 +8446,7 @@ Partial Class Ventas End If End If - If UsuarioActual.Empresa.Funcionalidad(360) = "1" AndAlso e.Row.DBCampo("CvePrecioLista").ToEntero() > 0 Then + If (UsuarioActual.Empresa.Funcionalidad(360) = "1" OrElse UsuarioActual.Empresa.Funcionalidad(109) = "1") AndAlso e.Row.DBCampo("CvePrecioLista").ToEntero() > 0 Then e.Row.FCLiteral("LtlPrecioLista").Visible = True End If @@ -18656,6 +18656,9 @@ Partial Class Ventas Else If Me.CvePrecioLista > 0 Then CvePrecioListaPS = Me.CvePrecioLista + If UsuarioActual.Empresa.Funcionalidad(109) = "1" Then + PrecioListaPS = GlobalDTPrecioListas(UsuarioActual.CveEmpresa).FiltroPrimeroValor("PrecioLista", $"CvePrecioLista={CvePrecioListaPS}") + End If End If End If