This commit is contained in:
Rene Molina
2019-08-28 17:48:43 -07:00
9 changed files with 777 additions and 244 deletions

View File

@@ -39,8 +39,10 @@
#chartdiv {
width: 100%;
height: 500px;
height: 600px;
}
</style>
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="E" runat="Server">
@@ -170,8 +172,9 @@
</asp:UpdatePanel>
<asp:UpdatePanel ID="UpIndicador" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div class="row" >
<div id="DivNeto" runat="server" class="col-md-offset-4 col-md-3">
<div class="row" >
<div class="col-md-3"></div>
<div id="DivNeto" runat="server" class="col-md-3">
<div id="DivClaseNeto" runat="server" class="dashboard-stat dashboard-stat-v2 green">
<div class="visual"><i class="fa fa-bar-chart-o" '=""></i></div>
<div class="details"><div class="number"><asp:Label ID="LblNombreNeto" runat="server"></asp:Label></div>
@@ -183,6 +186,18 @@
</div>
</div>
</div>
<div id="DivRentabilidad" runat="server" class=" col-md-3">
<div id="DivClaseRentabilidad" runat="server" class="dashboard-stat dashboard-stat-v2 green">
<div class="visual"><i class="fa fa-bar-chart-o" '=""></i></div>
<div class="details"><div class="number"><asp:Label ID="LblNombreRentabilidad" runat="server"></asp:Label></div>
<div class="desc"><label id="LblRentabilidadIndicador" runat="server" class="indicadortipo2 col-md-6 tooltips" data-original-title="Rentabilidad">
<asp:Label ID="LblRentabilidad" runat="server"></asp:Label>%</label>
</div>
</div>
</div>
</div>
</div>
<br />
</ContentTemplate>
@@ -194,12 +209,16 @@
<Columns>
<asp:HyperLinkField ItemStyle-HorizontalAlign="Left" Target="_blank" HeaderText="Grupo" DataTextField="GPO" DataNavigateUrlFields="FechaI,FechaF,CveSubProyecto,CveCliente,CveVendedor,Grupo,GPO,CvePS,CveClasificacion" DataNavigateUrlFormatString="RepVentasUtilidad.aspx?FechaI={0}&FechaF={1}&CveSubProyecto={2}&CveCliente={3}&CveVendedor={4}&Gpo={5}&CveGpo={6}&CvePS={7}&CveClasificacion={8}" />
<asp:BoundField ItemStyle-HorizontalAlign="Right" HeaderText="Ventas" DataField="Ventas" DataFormatString="{0:N2}" />
<asp:BoundField ItemStyle-HorizontalAlign="Right" HeaderText="Descuento" DataField="Descuento" DataFormatString="{0:N2}" />
<asp:BoundField ItemStyle-HorizontalAlign="Right" HeaderText="Bonificacion" DataField="Bonificacion" DataFormatString="{0:N2}" />
<asp:BoundField ItemStyle-HorizontalAlign="Right" HeaderText="Costo" DataField="Costo" DataFormatString="{0:N2}" />
<asp:BoundField ItemStyle-HorizontalAlign="Right" HeaderText="Utilidad" DataField="Utilidad" DataFormatString="{0:N2}" />
<asp:BoundField ItemStyle-HorizontalAlign="Right" HeaderText="%" DataField="PorUtilidad" ItemStyle-Width="7px" DataFormatString="{0:N2}" />
<asp:BoundField ItemStyle-HorizontalAlign="Right" HeaderText="Perdida" DataField="Perdida" DataFormatString="{0:N2}" />
<asp:BoundField ItemStyle-HorizontalAlign="Right" HeaderText="%" DataField="PorPerdida" ItemStyle-Width="7px" DataFormatString="{0:N2}" />
<asp:BoundField ItemStyle-HorizontalAlign="Right" HeaderText="Neto" DataField="Neto" DataFormatString="{0:N2}" />
<asp:BoundField ItemStyle-HorizontalAlign="Right" HeaderText="%" DataField="PorNeto" ItemStyle-Width="7px" DataFormatString="{0:N2}" />
<asp:BoundField ItemStyle-HorizontalAlign="Right" HeaderText="% Rentabilidad" DataField="Rentabilidad" ItemStyle-Width="7px" DataFormatString="{0:N2}" />
</Columns>
</asp:GridView>
</ContentTemplate>
@@ -215,8 +234,20 @@
</h4>
</div>
<div class="modal-body">
<div id="chartdiv"></div>
<div class="row">
<label class="col-md-1 truncate">Ver:</label>
<div class="col-md-2">
<asp:DropDownList ID="DdlVer" runat="server" AutoPostBack="true" OnSelectedIndexChanged="DdlVer_SelectedIndexChanged" AppendDataBoundItems="true" Class="table-group-action-input form-control input-inline input-small input-sm select2me">
<asp:ListItem Selected="True" Text="Neto" Value="1"></asp:ListItem>
<asp:ListItem Text="Rentabilidad" Value="2"></asp:ListItem>
</asp:DropDownList>
</div>
</div>
<br />
<div id="chartdiv"></div>
<div class="modal-footer">
<button type="button" class="btn btn-danger" data-dismiss="modal">Cerrar</button>
</div>
@@ -232,7 +263,7 @@
<link rel="stylesheet" href="https://www.amcharts.com/lib/3/plugins/export/export.css" type="text/css" media="all" />
<script src="https://www.amcharts.com/lib/3/themes/light.js"></script>
<script>
function CargaGraficaCompracion(data) {
function CargaGraficaBarrasNeto(data) {
var chart = AmCharts.makeChart("chartdiv", {
"theme": "light",
"type": "serial",
@@ -251,21 +282,12 @@
"startDuration": 1,
"graphs": [
{
"balloonText": "Perdida [[category]]: <b>[[value]] [[moneda]]</b>",
"balloonText": "Neto [[category]]: <b>[[value]] [[moneda]]</b>",
"fillAlphas": 0.9,
"lineAlpha": 0.2,
"type": "column",
"valueField": "perdida",
"title": "Perdida"
},
{
"balloonText": "Utilidad [[category]]: <b>[[value]] [[moneda]]</b>",
"fillAlphas": 0.9,
"lineAlpha": 0.2,
"type": "column",
"valueField": "utilidad",
"title": "Utilidad"
"valueField": "neto",
"title": "Neto"
}],
"plotAreaFillAlphas": 0.1,
"depth3D": 60,
@@ -295,6 +317,62 @@
chart.validateNow();
});
}
function CargaGraficaBarrasRentabilidad(data) {
var chart = AmCharts.makeChart("chartdiv", {
"theme": "light",
"type": "serial",
"dataProvider": data,
"legend": {
"horizontalGap": 10,
"maxColumns": 1,
"position": "right",
"useGraphSettings": true,
"markerSize": 10
},
"valueAxes": [{
"stackType": "3d",
"position": "left"
}],
"startDuration": 1,
"graphs": [
{
"balloonText": "Rentabilidad [[category]]: <b>[[value]] [[moneda]]</b>",
"fillAlphas": 0.9,
"lineAlpha": 0.2,
"type": "column",
"valueField": "rentabilidad",
"title": "Rentabilidad"
}],
"plotAreaFillAlphas": 0.1,
"depth3D": 60,
"angle": 30,
"categoryField": "gpo",
"categoryAxis": {
"gridPosition": "start",
"labelRotation": 90
},
"export": {
"enabled": true
}
});
jQuery('.chart-input').off().on('input change', function () {
var property = jQuery(this).data('property');
var target = chart;
chart.startDuration = 0;
if (property == 'topRadius') {
target = chart.graphs[0];
if (this.value == 0) {
this.value = undefined;
}
}
target[property] = this.value;
chart.validateNow();
});
}
</script>
</asp:Content>

View File

@@ -136,6 +136,12 @@ Partial Class Ventas_RepVentasUtilidadPadre
LblNeto.Text = Neto.ToString("N2")
LblPorNeto.Text = PorNeto.ToString("N2")
End If
LblNombreRentabilidad.Text = "Rentabilidad"
DivClaseRentabilidad.Attributes.Add("class", "dashboard-stat dashboard-stat-v2 green")
LblRentabilidadIndicador.Attributes.Add("data-original-title", "Rentabilidad")
LblRentabilidad.Text = DtDatos.Rows(0)("Rentabilidad").ToString.ToDouble.ToString("N2")
End If
ObjVentas.Dispose()
@@ -161,26 +167,52 @@ Partial Class Ventas_RepVentasUtilidadPadre
LblTituloGrafica.Text = $"Agrupado por: {Agrupador}"
RegistraScript("$('#DivModalGrafica').modal('show')")
Dim Dt As New DataTable()
Dt.Columns.Add("gpo")
Dt.Columns.Add("utilidad")
Dt.Columns.Add("perdida")
For Each Dr As DataRow In DtDatos.Rows
If Dr("GPO").ToString <> "" Then
Dim Row As DataRow = Nothing
Row = Dt.NewRow()
Row("gpo") = Dr("GPO").ToString
Row("utilidad") = Dr("Utilidad").ToString.FormatoNumero
Row("perdida") = Dr("Perdida").ToString.FormatoNumero
Dt.Rows.Add(Row)
End If
Next
CargaGrafica()
End Sub
Private Sub CargaGrafica()
If DdlVer.SelectedValue.ToEntero = 1 Then
Dim Dt As New DataTable()
Dt.Columns.Add("gpo")
Dt.Columns.Add("neto")
For Each Dr As DataRow In DtDatos.Rows
If Dr("GPO").ToString <> "" Then
Dim Row As DataRow = Nothing
Row = Dt.NewRow()
Row("gpo") = Dr("GPO").ToString
Row("neto") = Dr("Neto").ToString.FormatoNumero
Dt.Rows.Add(Row)
End If
Next
Dim query = From s In Dt.AsEnumerable() Select New With {.gpo = s("gpo").ToString(), .neto = s("neto").ToString().ToDouble()}
Dim json As String = Newtonsoft.Json.JsonConvert.SerializeObject(query)
RegistraScript($"CargaGraficaBarrasNeto({json})", "22")
ElseIf DdlVer.SelectedValue.ToEntero = 2 Then
Dim Dt2 As New DataTable()
Dt2.Columns.Add("gpo")
Dt2.Columns.Add("rentabilidad")
For Each Dr As DataRow In DtDatos.Rows
If Dr("GPO").ToString <> "" Then
Dim Row As DataRow = Nothing
Row = Dt2.NewRow()
Row("gpo") = Dr("GPO").ToString
Row("rentabilidad") = Dr("Rentabilidad").ToString.FormatoNumero
Dt2.Rows.Add(Row)
End If
Next
Dim query2 = From s In Dt2.AsEnumerable() Select New With {.gpo = s("gpo").ToString(), .rentabilidad = s("rentabilidad").ToString().ToDouble()}
Dim json2 As String = Newtonsoft.Json.JsonConvert.SerializeObject(query2)
RegistraScript($"CargaGraficaBarrasRentabilidad({json2})", "23")
End If
Dim query = From s In Dt.AsEnumerable() Select New With {.gpo = s("gpo").ToString(), .utilidad = s("utilidad").ToString().ToDouble(), .perdida = s("perdida").ToString().ToDouble}
Dim json As String = Newtonsoft.Json.JsonConvert.SerializeObject(query)
RegistraScript($"CargaGraficaCompracion({json})", "22")
UPModalProd.Update()
End Sub
Protected Sub DdlVer_SelectedIndexChanged(sender As Object, e As EventArgs)
CargaGrafica()
End Sub
#End Region
@@ -197,7 +229,12 @@ Partial Class Ventas_RepVentasUtilidadPadre
e.Row.DBCampo("FechaI"), e.Row.DBCampo("FechaF"), e.Row.DBCampo("CveSubProyecto"), e.Row.DBCampo("CveCliente"), e.Row.DBCampo("CveVendedor"),
e.Row.DBCampo("Grupo"), e.Row.DBCampo("GPO"), e.Row.DBCampo("CvePS"), e.Row.DBCampo("CveClasificacion"))
e.Row.Cells(0).Text = "<a class=""" & Css & """ href=""" & Liga & """>" & e.Row.Cells(0).Text & "</a>"
Else
e.Row.Cells(9).BackColor = Drawing.Color.LightGray
End If
End If
End Sub
@@ -234,6 +271,7 @@ Partial Class Ventas_RepVentasUtilidadPadre
params.Add(New ReportParameter("Filtros", StrFiltro.ToString))
params.Add(New ReportParameter("Neto", LblNeto.Text))
params.Add(New ReportParameter("PorNeto", $"{LblPorNeto.Text}%"))
params.Add(New ReportParameter("Rentabilidad", $"{LblRentabilidad.Text}%"))
If Imagen.Exists Then
params.Add(New ReportParameter("LogoPath", logouri))
@@ -248,4 +286,5 @@ Partial Class Ventas_RepVentasUtilidadPadre
End Class