E172 Rep Indicador Resumen: + Totales en Portlets, Promedio precio VxP, Fila totales Comp Productores y + info en grafica de pastel
This commit is contained in:
@@ -83,38 +83,51 @@ Partial Class General_RepIndicadorResumen
|
||||
GvCxC.HeaderRow.Cells(2).Text = "<a href=""/Ventas/RepRecuperacion.aspx"" target=""_blank"">Recuperado</a>"
|
||||
End If
|
||||
|
||||
'Mostrar gráficos solo si hay datos en su respectiva tabla
|
||||
'Mostrar gráficos y totales en portlets solo si hay datos en su respectiva tabla
|
||||
If GvVxP.Rows.Count > 0 Then
|
||||
UPGraficaVxP.Visible = True
|
||||
PLVxPTot.InnerHtml = "<span style=""font-weight:800"">" + "Cantidad: " + "</span>" + String.Format("{0:n} Kg", CType(GvVxP.DataSource, DataTable).SUM("Cantidad", "Orden IS NOT NULL")) _
|
||||
+ "<span style=""font-weight:800; margin-left:1em"">" + "Total: " + "</span>" + String.Format("{0:c} MXN", CType(GvVxP.DataSource, DataTable).SUM("SubTotalMN", "Orden IS NOT NULL"))
|
||||
Else
|
||||
UPGraficaVxP.Visible = False
|
||||
PLVxPTot.InnerHtml = Nothing
|
||||
End If
|
||||
If GvCompProductores.Rows.Count > 0 Then
|
||||
UPGraficaCompProductores.Visible = True
|
||||
PLCompProductoresTot.InnerHtml = "<span style=""font-weight:800"">" + "Cantidad: " + "</span>" + String.Format("{0:n} Kg", CType(GvCompProductores.DataSource, DataTable).SUM("Cantidad", ""))
|
||||
Else
|
||||
UPGraficaCompProductores.Visible = False
|
||||
PLCompProductoresTot.InnerHtml = Nothing
|
||||
End If
|
||||
If GvCompAcreed.Rows.Count > 0 Then
|
||||
UPGraficaCompAcreed.Visible = True
|
||||
PLGastosTot.InnerHtml = "<span style=""font-weight:800"">" + "Importe: " + "</span>" + String.Format("{0:c} MXN", CType(GvCompAcreed.DataSource, DataTable).SUM("SubTotalMN", "CveClasificacion IS NOT NULL"))
|
||||
Else
|
||||
UPGraficaCompAcreed.Visible = False
|
||||
PLGastosTot.InnerHtml = Nothing
|
||||
End If
|
||||
If GvCxC.Rows.Count > 0 Then
|
||||
UPGraficaCxC.Visible = True
|
||||
'UPGraficaCxCRec.Visible = True
|
||||
PLCxCTot.InnerHtml = "<span style=""font-weight:800"">" + "Saldo: " + "</span>" + String.Format("{0:c} MXN", CType(GvCxC.DataSource, DataTable).SUM("SaldoMN", "CveCliente IS NOT NULL"))
|
||||
Dim Recuper As Double = CType(GvCxC.DataSource, DataTable).SUM("RecuperadoMN", "CveCliente IS NOT NULL")
|
||||
If (Recuper > 0) Then PLCxCTot.InnerHtml += "<span style="" font-weight:800; margin-left:1em"">" + "Rec: " + "</span>" + String.Format("{0:c} MXN", CType(GvCxC.DataSource, DataTable).SUM("RecuperadoMN", "CveCliente IS NOT NULL"))
|
||||
Else
|
||||
UPGraficaCxC.Visible = False
|
||||
'UPGraficaCxCRec.Visible = False
|
||||
PLCxCTot.InnerHtml = Nothing
|
||||
End If
|
||||
If GvCxP192.Rows.Count > 0 Then
|
||||
UPGraficaCxP192.Visible = True
|
||||
PLCxP192Tot.InnerHtml = "<span style=""font-weight:800"">" + "Saldo: " + "</span>" + String.Format("{0:c} MXN", CType(GvCxP192.DataSource, DataTable).SUM("SaldoMN", "CveProveedor IS NOT NULL"))
|
||||
Else
|
||||
UPGraficaCxP192.Visible = False
|
||||
PLCxP192Tot.InnerHtml = Nothing
|
||||
End If
|
||||
If GvCxP.Rows.Count > 0 Then
|
||||
UPGraficaCxP.Visible = True
|
||||
PLCxPTot.InnerHtml = "<span style=""font-weight:800"">" + "Saldo: " + "</span>" + String.Format("{0:c} MXN", CType(GvCxP.DataSource, DataTable).SUM("SaldoMN", "CveProveedor IS NOT NULL"))
|
||||
Else
|
||||
UPGraficaCxP.Visible = False
|
||||
PLCxPTot.InnerHtml = Nothing
|
||||
End If
|
||||
|
||||
'Si no había datos en ninguna tabla no cargar función de gráficos
|
||||
@@ -149,6 +162,32 @@ Partial Class General_RepIndicadorResumen
|
||||
End If
|
||||
End If
|
||||
End Sub
|
||||
Dim CompProductoresTotales As Decimal() = New Decimal(5 - 1) {}
|
||||
Protected Sub GvCompProductores_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GvCompProductores.RowDataBound
|
||||
'Esto tambien se podría meter en el Stored Procedure
|
||||
If e.Row.RowType = DataControlRowType.DataRow Then
|
||||
CompProductoresTotales(0) += Convert.ToDecimal(IfNull(DataBinder.Eval(e.Row.DataItem, "Cantidad"), 0))
|
||||
CompProductoresTotales(1) += Convert.ToDecimal(IfNull(DataBinder.Eval(e.Row.DataItem, "SubTotal"), 0))
|
||||
CompProductoresTotales(2) += Convert.ToDecimal(IfNull(DataBinder.Eval(e.Row.DataItem, "PUPromedioKG"), 0))
|
||||
CompProductoresTotales(3) += Convert.ToDecimal(IfNull(DataBinder.Eval(e.Row.DataItem, "Saldo"), 0))
|
||||
CompProductoresTotales(4) += Convert.ToDecimal(IfNull(DataBinder.Eval(e.Row.DataItem, "Abonado"), 0))
|
||||
ElseIf e.Row.RowType = DataControlRowType.Footer Then
|
||||
'Movemos el pie a la primera fila de la tabla
|
||||
Dim footerRow As GridViewRow = e.Row
|
||||
GvCompProductores.Controls(0).Controls.Remove(footerRow)
|
||||
GvCompProductores.Controls(0).Controls.AddAt(1, footerRow)
|
||||
'Ahora se registran los datos
|
||||
e.Row.Cells(0).Text = "Totales"
|
||||
e.Row.Cells(1).Text = CompProductoresTotales(0).ToString("N")
|
||||
e.Row.Cells(2).Text = CompProductoresTotales(1).ToString("C")
|
||||
e.Row.Cells(3).Text = (CompProductoresTotales(2) / GvCompProductores.Rows.Count).ToString("C") 'Promedio
|
||||
e.Row.Cells(4).Text = CompProductoresTotales(3).ToString("C")
|
||||
e.Row.Cells(5).Text = CompProductoresTotales(4).ToString("C")
|
||||
For i As Integer = 1 To e.Row.Cells.Count - 1
|
||||
e.Row.Cells(i).CssClass = "margenbound"
|
||||
Next
|
||||
End If
|
||||
End Sub
|
||||
Protected Sub GvComprasAcreed_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GvCompAcreed.RowDataBound
|
||||
If e.Row.RowType = DataControlRowType.DataRow Then
|
||||
If e.Row.DBCampo("CveClasificacion") = "" Then
|
||||
@@ -230,32 +269,40 @@ Partial Class General_RepIndicadorResumen
|
||||
'Dim group_resto_vxp = From e In resto_vxp Group e By e.Texto Into gpo = Group
|
||||
'Dim group_resto_vxp = resto_vxp.GroupBy(Function(e) New With {Key e.Texto, Key e.Valor, Key e.Color, Key e.Unidad}).ToList()
|
||||
|
||||
'Compras ProveedorClasificacion=192
|
||||
'Compras Productores ProveedorClasificacion=192
|
||||
DtCompProductores.Reset()
|
||||
DtCompProductores.Columns.Add("Texto")
|
||||
DtCompProductores.Columns.Add("Valor")
|
||||
DtCompProductores.Columns.Add("Unidad")
|
||||
DtCompProductores.Columns.Add("Cantidad")
|
||||
DtCompProductores.Columns.Add("Importe")
|
||||
DtCompProductores.Columns.Add("UnidadC")
|
||||
DtCompProductores.Columns.Add("UnidadI")
|
||||
For Each Dr As DataRow In GvCompProductores.DataSource.Rows
|
||||
Dim Row = DtCompProductores.NewRow()
|
||||
Row("Texto") = Dr("RazonSocial").ToString
|
||||
Row("Valor") = Dr("Cantidad").ToString.FormatoNumero
|
||||
Row("Unidad") = "Kg"
|
||||
Row("Cantidad") = Dr("Cantidad").ToString.FormatoNumero
|
||||
Row("Importe") = Dr("SubTotal").ToString.FormatoNumero
|
||||
Row("UnidadC") = "Kg"
|
||||
Row("UnidadI") = "MXN"
|
||||
DtCompProductores.Rows.Add(Row)
|
||||
Next
|
||||
Dim comp_productores = From s In DtCompProductores.AsEnumerable() Select New With {.Texto = s("Texto").ToString(), .Valor = s("Valor").ToString().ToDouble(), .Unidad = s("Unidad").ToString()}
|
||||
Dim comp_productores = From s In DtCompProductores.AsEnumerable() Select New With {.Texto = s("Texto").ToString(), .Cantidad = s("Cantidad").ToString().ToDouble(), .Importe = s("Importe").ToString().ToDouble(), .UnidadC = s("UnidadC").ToString(), .UnidadI = s("UnidadI").ToString()}
|
||||
Dim group_comp_productores = comp_productores.GroupBy(Function(x) x.Texto).[Select](Function(g) New With {
|
||||
.Texto = g.Key,
|
||||
.Valor = Math.Round(g.Sum(Function(x) x.Valor), 2),
|
||||
.Unidad = "MXN"
|
||||
.Cantidad = Math.Round(g.Sum(Function(x) x.Cantidad), 2),
|
||||
.Importe = Math.Round(g.Sum(Function(x) x.Importe), 2),
|
||||
.UnidadC = "Kg",
|
||||
.UnidadI = "MXN"
|
||||
}).ToDataTable
|
||||
Dim top_comp_productores = From s In group_comp_productores.AsEnumerable().Take(10) Select New With {.Texto = s("Texto").ToString(), .Valor = s("Valor").ToString().ToDouble(), .Unidad = s("Unidad").ToString()}
|
||||
Dim resto_comp_productores = From s In group_comp_productores.AsEnumerable().Skip(10) Select New With {.Texto = "Otros", .Valor = s("Valor").ToString().ToDouble(), .Unidad = s("Unidad").ToString()}
|
||||
Dim top_comp_productores = From s In group_comp_productores.AsEnumerable().Take(10) Select New With {.Texto = s("Texto").ToString(), .Cantidad = s("Cantidad").ToString().ToDouble(), .Importe = s("Importe").ToString().ToDouble(), .UnidadC = s("UnidadC").ToString(), .UnidadI = s("UnidadI").ToString()}
|
||||
Dim resto_comp_productores = From s In group_comp_productores.AsEnumerable().Skip(10) Select New With {.Texto = "Otros", .Cantidad = s("Cantidad").ToString().ToDouble(), .Importe = s("Importe").ToString().ToDouble(), .UnidadC = s("UnidadC").ToString(), .UnidadI = s("UnidadI").ToString()}
|
||||
Dim group_resto_comp_productores = resto_comp_productores.GroupBy(Function(x) x.Texto).[Select](Function(g) New With {
|
||||
.Texto = "Otros",
|
||||
.Valor = Math.Round(g.Sum(Function(x) x.Valor), 2),
|
||||
.Unidad = "MXN"
|
||||
.Cantidad = Math.Round(g.Sum(Function(x) x.Cantidad), 2),
|
||||
.Importe = Math.Round(g.Sum(Function(x) x.Importe), 2),
|
||||
.UnidadC = "Kg",
|
||||
.UnidadI = "MXN"
|
||||
})
|
||||
Dim query_comp_productores = top_comp_productores.Union(group_resto_comp_productores).OrderByDescending(Function(x) x.Valor)
|
||||
Dim query_comp_productores = top_comp_productores.Union(group_resto_comp_productores).OrderByDescending(Function(x) x.Cantidad)
|
||||
|
||||
'Compras TipoProveedor=1 Acreedores (Gastos)
|
||||
DtCompAcreed.Reset()
|
||||
@@ -403,6 +450,7 @@ Partial Class General_RepIndicadorResumen
|
||||
})
|
||||
Dim query_cxp = top_cxp.Union(group_resto_cxp).OrderByDescending(Function(x) x.Valor)
|
||||
|
||||
|
||||
'Serializar datos agrupándolos por su respectivo DataTable, todos en un solo JSON
|
||||
Dim json As String = Newtonsoft.Json.JsonConvert.SerializeObject(New With {.VxP = query_vxp, .CompProductores = query_comp_productores, .CompAcreed = query_comp_acreed, .CxC = query_cxc, .CxCR = query_cxcr, .CxP192 = query_cxp192, .CxP = query_cxp})
|
||||
'Alert(json)
|
||||
|
||||
Reference in New Issue
Block a user