Advertisement
Guest User

GraficoController

a guest
Dec 18th, 2017
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 16.45 KB | None | 0 0
  1. using ProyectoV1.Models;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Web.Helpers;
  6. using System.Web.Mvc;
  7. using System.Web.UI;
  8. using System.Data;
  9. using System.Data.Entity;
  10. using System;
  11. using System.Web.UI.WebControls;
  12. using PagedList;
  13.  
  14. namespace ProyectoV1.Controllers
  15. {
  16. public class GraficoController : Controller
  17. {
  18. public string Nombre;
  19. private bdagricolaEntities db = new bdagricolaEntities();
  20. // GET: Grafico
  21.  
  22. public ActionResult CantidadMuertes()
  23. {
  24. return View();
  25. }
  26.  
  27. public ActionResult GraficoProduccion()
  28. {
  29. return View();
  30. }
  31.  
  32. public ActionResult TipoPrueba()
  33. {
  34. return View();
  35. }
  36. public ActionResult GraficoTipos()
  37. {
  38. return View();
  39. }
  40. public ActionResult GraficoInseminaciones()
  41. {
  42. return View();
  43. }
  44. public ActionResult GraficoGanancias()
  45. {
  46. return View();
  47. }
  48. public ActionResult GraficoRazas()
  49. {
  50. return View();
  51. }
  52. public ActionResult Produccion(int? id)
  53. {
  54.  
  55. var _context = new bdagricolaEntities();
  56.  
  57. ArrayList xValor = new ArrayList();
  58. ArrayList yValor = new ArrayList();
  59.  
  60.  
  61.  
  62. var results = (from c in _context.ordena select c);
  63.  
  64. results.ToList().ForEach(rs => xValor.Add(rs.fecha));
  65. results.ToList().ForEach(rs => yValor.Add(rs.litros));
  66. new Chart(width: 800, height: 500, theme: ChartTheme.Blue)
  67. .AddTitle("PRODUCCION DE LECHE")
  68. .AddLegend(title: "Produccion")
  69. .AddSeries(name: "Litros", chartType: "Column", xValue: xValor, yValues: yValor)
  70.  
  71.  
  72. .Write("bmp");
  73. return null;
  74.  
  75.  
  76.  
  77. }
  78. public ActionResult SexoAnimales()
  79. {
  80.  
  81. var bd = new bdagricolaEntities();
  82. int machos = bd.animal.Where(m => m.sexo == "M").Count();
  83. int hembras = bd.animal.Where(m => m.sexo == "H").Count();
  84. List<int> yValues = new List<int>();
  85. yValues.Add(machos);
  86. yValues.Add(hembras);
  87. List<string> xValues = new List<string>();
  88. xValues.Add("MACHOS");
  89. xValues.Add("HEMBRAS");
  90.  
  91. new Chart(width: 500, height: 400, theme: ChartTheme.Blue)
  92.  
  93. .AddTitle("SEXO DE ANIMALES")
  94.  
  95. .AddLegend(title: "SEXO")
  96. .AddSeries(chartType: "Pie", xValue: xValues, yValues: yValues, name: "Animales")
  97.  
  98.  
  99. .Write("bmp")
  100. ;
  101.  
  102. return null;
  103. }
  104. public ActionResult TipoAnimales()
  105. {
  106.  
  107. var bd = new bdagricolaEntities();
  108. int terneros = bd.animal.Where(m => m.tipo.nombre == "Ternero").Count();
  109. int vacas = bd.animal.Where(m => m.tipo.nombre == "Vaca").Count();
  110. int novillos = bd.animal.Where(m => m.tipo.nombre == "Novillo").Count();
  111. int toros = bd.animal.Where(m => m.tipo.nombre == "Toro").Count();
  112. int terneras = bd.animal.Where(m => m.tipo.nombre == "Ternera").Count();
  113.  
  114.  
  115.  
  116. List<int> yValues = new List<int>();
  117. yValues.Add(terneros);
  118. yValues.Add(vacas);
  119. yValues.Add(novillos);
  120. yValues.Add(toros);
  121. yValues.Add(terneras);
  122. List<string> xValues = new List<string>();
  123. xValues.Add("TERNEROS");
  124. xValues.Add("VACAS");
  125. xValues.Add("NOVILLOS");
  126. xValues.Add("TOROS");
  127. xValues.Add("TERNERAS");
  128.  
  129. new Chart(width: 450, height: 450, theme: ChartTheme.Blue)
  130. .AddTitle("TIPO DE ANIMALES")
  131. .AddLegend(title: "TIPOS")
  132. .AddSeries(chartType: "Pie", xValue: xValues, yValues: yValues, name: "Animales")
  133.  
  134. .Write("bmp")
  135.  
  136. ;
  137. return null;
  138.  
  139. }
  140.  
  141.  
  142. public ActionResult GraficoSexo(int? page)
  143. {
  144. var animal = db.animal;
  145. return View(animal.ToList().ToPagedList(page ?? 1, 5));
  146. }
  147.  
  148. public JsonResult GetSalesData()
  149. {
  150. List<ordena> sd = new List<ordena>();
  151.  
  152. using (bdagricolaEntities dc = new bdagricolaEntities())
  153. {
  154. sd = dc.ordena.OrderBy(a => a.fecha).ToList();
  155.  
  156. }
  157. List<ordenaJornada> chartData = new List<ordenaJornada>();
  158.  
  159. DateTime fechaAnterior = DateTime.Today;
  160. var fecha = DateTime.Today;
  161.  
  162. foreach (var ordena in sd)
  163. {
  164. var litrosM = 0;
  165. var litrosT = 0;
  166. var tieneOrdena = false;
  167. if (ordena.jornada == "M")
  168. {
  169. litrosM = ordena.litros;
  170. }
  171. if (ordena.jornada == "T")
  172. {
  173. litrosT = ordena.litros;
  174. }
  175.  
  176. while (fecha.Subtract(fechaAnterior).Days > 1)
  177. {
  178. chartData.Add(new ordenaJornada(fechaAnterior.AddDays(1), 0, 0));
  179. fechaAnterior = fechaAnterior.AddDays(1);
  180. }
  181.  
  182. fechaAnterior = fecha.Date;
  183. fecha = ordena.fecha.Date;
  184. chartData.Add(new ordenaJornada(fecha.Date, litrosM, litrosT));
  185.  
  186. }
  187.  
  188. chartData.Sort();
  189. var datos = new List<ordenaJornadaStr>();
  190. var datosCh = new List<object[]>();
  191.  
  192. var fAnterior = new DateTime(1, 1, 1);
  193. var i = 0;
  194. foreach (var ch in chartData)
  195. {
  196. if (fAnterior == new DateTime(1, 1, 1))
  197. {
  198. datos.Add(new ordenaJornadaStr(ch.Fecha.Date, ch.LitrosManana, ch.LitrosTarde));
  199. }
  200. else
  201. {
  202. var fActual = ch.Fecha;
  203. if (fAnterior != fActual)
  204. {
  205. datos.Add(new ordenaJornadaStr(ch.Fecha.Date, ch.LitrosManana, ch.LitrosTarde));
  206. }
  207. else
  208. {
  209. var datoActual = ch;
  210. if (datoActual.LitrosManana > 0)
  211. {
  212. datos[i - 1].LitrosManana += datoActual.LitrosManana;
  213. }
  214. if (datoActual.LitrosTarde > 0)
  215. {
  216. datos[i - 1].LitrosTarde += datoActual.LitrosTarde;
  217. }
  218. i--;
  219. }
  220. }
  221. fAnterior = ch.Fecha.Date;
  222. i++;
  223. }
  224.  
  225. foreach (var d in datos)
  226. {
  227. datosCh.Add(new object[] { d.Fecha.ToString("dd/MM/yyyy"), d.LitrosManana, d.LitrosTarde });
  228.  
  229. }
  230. return new JsonResult { Data = datosCh, JsonRequestBehavior = JsonRequestBehavior.AllowGet };
  231. }
  232. [HttpPost]
  233. public JsonResult GetSalesData(DateTime fecha1, DateTime fecha2)
  234. {
  235. List<ordena> sd = new List<ordena>();
  236.  
  237. using (bdagricolaEntities dc = new bdagricolaEntities())
  238. {
  239. sd = dc.ordena.Where(a => a.fecha >= fecha1 && a.fecha <= fecha2).OrderBy(a => a.fecha).ToList();
  240.  
  241. }
  242. List<ordenaJornada> chartData = new List<ordenaJornada>();
  243.  
  244. DateTime fechaAnterior = DateTime.Today;
  245. var fecha = DateTime.Today;
  246.  
  247. foreach (var ordena in sd)
  248. {
  249. var litrosM = 0;
  250. var litrosT = 0;
  251. var tieneOrdena = false;
  252. if (ordena.jornada == "M")
  253. {
  254. litrosM = ordena.litros;
  255. }
  256. if (ordena.jornada == "T")
  257. {
  258. litrosT = ordena.litros;
  259. }
  260.  
  261. while (fecha.Subtract(fechaAnterior).Days > 1)
  262. {
  263. chartData.Add(new ordenaJornada(fechaAnterior.AddDays(1), 0, 0));
  264. fechaAnterior = fechaAnterior.AddDays(1);
  265. }
  266.  
  267. fechaAnterior = fecha.Date;
  268. fecha = ordena.fecha.Date;
  269. chartData.Add(new ordenaJornada(fecha.Date, litrosM, litrosT));
  270.  
  271. }
  272.  
  273. chartData.Sort();
  274. var datos = new List<ordenaJornadaStr>();
  275. var datosCh = new List<object[]>();
  276.  
  277. var fAnterior = new DateTime(1, 1, 1);
  278. var i = 0;
  279. foreach (var ch in chartData)
  280. {
  281. if (fAnterior == new DateTime(1, 1, 1))
  282. {
  283. datos.Add(new ordenaJornadaStr(ch.Fecha.Date, ch.LitrosManana, ch.LitrosTarde));
  284. }
  285. else
  286. {
  287. var fActual = ch.Fecha;
  288. if (fAnterior != fActual)
  289. {
  290. datos.Add(new ordenaJornadaStr(ch.Fecha.Date, ch.LitrosManana, ch.LitrosTarde));
  291. }
  292. else
  293. {
  294. var datoActual = ch;
  295. if (datoActual.LitrosManana > 0)
  296. {
  297. datos[i - 1].LitrosManana += datoActual.LitrosManana;
  298. }
  299. if (datoActual.LitrosTarde > 0)
  300. {
  301. datos[i - 1].LitrosTarde += datoActual.LitrosTarde;
  302. }
  303. i--;
  304. }
  305. }
  306. fAnterior = ch.Fecha.Date;
  307. i++;
  308. }
  309.  
  310. foreach (var d in datos)
  311. {
  312. datosCh.Add(new object[] { d.Fecha.ToString("dd/MM/yyyy"), d.LitrosManana, d.LitrosTarde });
  313.  
  314. }
  315. return new JsonResult { Data = datosCh, JsonRequestBehavior = JsonRequestBehavior.AllowGet };
  316. }
  317. public JsonResult ObtenerTiposAnimal()
  318. {
  319. var bd = new bdagricolaEntities();
  320. List<animal> animales = new List<animal>();
  321. List<tipo> tipos = new List<tipo>();
  322. using (bdagricolaEntities dc = new bdagricolaEntities())
  323. {
  324. animales = dc.animal.Where(a => a.estado.nombre != "Vendido" && a.estado.nombre != "Muerto").ToList();
  325.  
  326. tipos = dc.tipo.ToList();
  327. }
  328. var chartData = new List<object[]>();
  329.  
  330. var query = from x in animales
  331. group x.tipo.nombre by x.tipo.nombre into g
  332. let count = g.Count()
  333. orderby g.Key ascending
  334. select new { tipo = g.Key, cantidad = count };
  335. chartData.Add(new object[] { "Tipo", "Cantidad" });
  336. foreach (var d in query)
  337. {
  338. chartData.Add(new object[] { d.tipo, d.cantidad });
  339. }
  340. return new JsonResult { Data = chartData, JsonRequestBehavior = JsonRequestBehavior.AllowGet };
  341. }
  342. public JsonResult ObtenerSexoAnimales()
  343. {
  344. var bd = new bdagricolaEntities();
  345. List<animal> sd = new List<animal>();
  346. using (bdagricolaEntities dc = new bdagricolaEntities())
  347. {
  348. sd = dc.animal.Where(a => a.estado.nombre != "Vendido" && a.estado.nombre != "Muerto").ToList();
  349.  
  350. }
  351. int machos = sd.Where(m => m.sexo == "M").Count();
  352. int hembras = sd.Where(m => m.sexo == "H").Count();
  353.  
  354. var chartData = new object[3];
  355. chartData[0] = new object[]{
  356. "Sexo",
  357. "Cantidad"
  358. };
  359.  
  360. chartData[1] = new object[] { "Machos", machos };
  361. chartData[2] = new object[] { "Hembras", hembras };
  362.  
  363. return new JsonResult { Data = chartData, JsonRequestBehavior = JsonRequestBehavior.AllowGet };
  364. }
  365. public JsonResult ObtenerCantidadMuertes()
  366. {
  367. List<muerte> muertes = new List<muerte>();
  368.  
  369. using (bdagricolaEntities dc = new bdagricolaEntities())
  370. {
  371. muertes = dc.muerte.OrderBy(a => a.fecha).ToList();
  372.  
  373. }
  374. var chartData = new List<object[]>();
  375.  
  376. var query = from x in muertes
  377. group x.fecha.Year by x.fecha.Year into g
  378. let count = g.Count()
  379. orderby g.Key ascending
  380. select new { año = g.Key, cantidad = count };
  381. chartData.Add(new object[] { "Año", "Cantidad de Muertes" });
  382. foreach (var d in query)
  383. {
  384. chartData.Add(new object[] { d.año.ToString(), d.cantidad });
  385. }
  386. return new JsonResult { Data = chartData, JsonRequestBehavior = JsonRequestBehavior.AllowGet };
  387. }
  388.  
  389.  
  390.  
  391. public JsonResult ObtenerInseminacionesAnuales()
  392. {
  393. List<inseminacion> inseminaciones = new List<inseminacion>();
  394.  
  395. using (bdagricolaEntities dc = new bdagricolaEntities())
  396. {
  397. inseminaciones = dc.inseminacion.OrderBy(a => a.fecha).ToList();
  398.  
  399. }
  400. var chartData = new List<object[]>();
  401.  
  402. var query = from x in inseminaciones
  403. group x.fecha.Year by x.fecha.Year into g
  404. let count = g.Count()
  405. orderby g.Key ascending
  406. select new { año = g.Key, cantidad = count };
  407. chartData.Add(new object[] { "Año", "Cantidad de Inseminaciones" });
  408. foreach (var d in query)
  409. {
  410. chartData.Add(new object[] { d.año.ToString(""), d.cantidad });
  411. }
  412. return new JsonResult { Data = chartData, JsonRequestBehavior = JsonRequestBehavior.AllowGet };
  413. }
  414. public JsonResult ObtenerGanancias()
  415. {
  416. List<venta> ventas = new List<venta>();
  417.  
  418. using (bdagricolaEntities dc = new bdagricolaEntities())
  419. {
  420. ventas = dc.venta.OrderBy(a => a.fecha.Year).ToList();
  421.  
  422. }
  423.  
  424.  
  425. var query = from x in ventas
  426. group x.precio by x.fecha.Year into g
  427. let count = g.Sum()
  428. orderby g.Key ascending
  429. select new { año = g.Key, cantidad = count };
  430. var chartData = new List<object[]>();
  431. chartData.Add(new object[] { "Año", "Recaudacion de Ventas de Animales" });
  432. foreach (var d in query)
  433. {
  434. chartData.Add(new object[] { d.año.ToString(""), d.cantidad });
  435. }
  436. return new JsonResult { Data = chartData, JsonRequestBehavior = JsonRequestBehavior.AllowGet };
  437. }
  438. public JsonResult ObtenerRaza()
  439. {
  440. var bd = new bdagricolaEntities();
  441. List<animal> animales = new List<animal>();
  442. List<raza> razas = new List<raza>();
  443. using (bdagricolaEntities dc = new bdagricolaEntities())
  444. {
  445. animales = dc.animal.Where(a => a.estado.nombre != "Vendido" && a.estado.nombre != "Muerto").ToList();
  446.  
  447. razas = dc.raza.ToList();
  448. }
  449. var chartData = new List<object[]>();
  450.  
  451. var query = from x in animales
  452. group x.raza.nombre by x.raza.nombre into g
  453. let count = g.Count()
  454. orderby g.Key ascending
  455. select new { raza = g.Key, cantidad = count };
  456. chartData.Add(new object[] { "Raza", "Cantidad" });
  457. foreach (var d in query)
  458. {
  459. chartData.Add(new object[] { d.raza, d.cantidad });
  460. }
  461. return new JsonResult { Data = chartData, JsonRequestBehavior = JsonRequestBehavior.AllowGet };
  462. }
  463. protected override void Dispose(bool disposing)
  464. {
  465. if (disposing)
  466. {
  467. db.Dispose();
  468. }
  469. base.Dispose(disposing);
  470. }
  471.  
  472.  
  473. }
  474. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement