public static ENTKardex SelectKardexByIDProducto(int IDProducto) { ENTKardex miKardex = null; KardexDataTable miTabla = adaptador.SelectKardexByIDProducto(IDProducto); if (miTabla.Rows.Count == 0) { return(miKardex); } KardexRow miRegistro = (KardexRow)miTabla.Rows[0]; miKardex = new ENTKardex { IDKardex = miRegistro.IDKardex, Fecha = miRegistro.Fecha, Concepto = miRegistro.Concepto, Entrada = (float)miRegistro.Entrada, Salida = (float)miRegistro.Salida, Existencia = (float)miRegistro.Existencia, CostoUnitario = miRegistro.CostoUnitario, Debe = miRegistro.Debe, Haber = miRegistro.Haber, Saldo = miRegistro.Saldo, CostoPromedio = miRegistro.CostoPromedio, IDProducto = miRegistro.IDProducto }; return(miKardex); }
public ActionResult Index(string inicio, string final, int producto) { sendFillData(); DateTime fecha_inicio = Convert.ToDateTime(inicio); DateTime fecha_final = Convert.ToDateTime(final); var filteredData = db.tblKardex.Where(p => p.tblProducto.Id == producto).Where(t => t.fecha >= fecha_inicio && t.fecha <= fecha_final); if (filteredData.Any()) { kardexRows = new List <KardexRow>(); KardexRow inventario_inicial = new KardexRow(); inventario_inicial.fecha = filteredData.FirstOrDefault().fecha; inventario_inicial.descripcion = "Inventario inicial"; inventario_inicial.saldo_Q = filteredData.FirstOrDefault().cantidad_inicial; inventario_inicial.saldo_cu = filteredData.FirstOrDefault().tblProducto.precio; inventario_inicial.saldo_ct = filteredData.FirstOrDefault().tblProducto.precio *filteredData.FirstOrDefault().cantidad_inicial; kardexRows.Add(inventario_inicial); List <tblKardex> kardex_list = filteredData.ToList(); for (int i = 0; i < kardex_list.Count; i++) { kardexRows.Add(toKardexRow(kardex_list[i], kardexRows[i])); } foreach (var trans in kardexRows) { ViewBag.tbody += "<tr>"; ViewBag.tbody += "<td>" + trans.fecha.Value.ToShortDateString() + "</td>"; ViewBag.tbody += "<td>" + trans.descripcion + "</td>"; ViewBag.tbody += "<td>" + trans.entrada_Q + "</td>"; ViewBag.tbody += "<td>" + string.Format("{0:0.00}", trans.entrada_cu).Replace(".00", "") + "</td>"; ViewBag.tbody += "<td>" + string.Format("{0:0.00}", trans.entrada_ct).Replace(".00", "") + "</td>"; ViewBag.tbody += "<td>" + trans.salida_Q + "</td>"; ViewBag.tbody += "<td>" + string.Format("{0:0.00}", trans.salida_cu).Replace(".00", "") + "</td>"; ViewBag.tbody += "<td>" + string.Format("{0:0.00}", trans.salida_ct).Replace(".00", "") + "</td>"; ViewBag.tbody += "<td>" + trans.saldo_Q + "</td>"; ViewBag.tbody += "<td>" + string.Format("{0:0.00}", trans.saldo_cu).Replace(".00", "") + "</td>"; ViewBag.tbody += "<td>" + string.Format("{0:0.00}", trans.saldo_ct).Replace(".00", "") + "</td>"; ViewBag.tbody += "</tr>"; if (trans.Equals(kardexRows.Last())) { ViewBag.Saldo = trans.saldo_Q; ViewBag.Total = string.Format("{0:0.00}", trans.saldo_ct).Replace(".00", ""); } } } var tblKardex = db.tblKardex.Include(t => t.tblProducto); return(View(tblKardex.ToList())); }
private KardexRow toKardexRow(tblKardex actual_kardex, KardexRow previous_kardex) { KardexRow kr = new KardexRow(); kr.fecha = actual_kardex.fecha; if (actual_kardex.id_compra != null) { tblCompra compra = db.tblCompra.Where(c => c.Id == actual_kardex.id_compra).SingleOrDefault(); kr.id_compra = compra.Id; kr.entrada_Q = compra.cantidad_compra; kr.entrada_cu = (compra.precio_compra / compra.cantidad_compra); kr.entrada_ct = compra.precio_compra; kr.saldo_Q = previous_kardex.saldo_Q + compra.cantidad_compra; kr.saldo_cu = (previous_kardex.saldo_ct + compra.precio_compra) / kr.saldo_Q; //Formula de Promedio ponderado kr.saldo_ct = kr.saldo_Q * kr.saldo_cu; kr.descripcion = "Compra de productos factura #" + kr.id_compra; } else if (actual_kardex.id_venta != null) { tblVenta venta = db.tblVenta.Where(v => v.Id == actual_kardex.id_venta).SingleOrDefault(); kr.id_venta = venta.Id; kr.salida_Q = venta.cantidad_venta; kr.salida_cu = previous_kardex.saldo_cu; kr.salida_ct = kr.salida_Q * kr.salida_cu; kr.saldo_Q = previous_kardex.saldo_Q - venta.cantidad_venta; kr.saldo_cu = previous_kardex.saldo_cu; kr.saldo_ct = kr.saldo_Q * kr.saldo_cu; kr.descripcion = "Venta de productos factura #" + kr.id_venta; } else if (actual_kardex.id_devolucion != null) { var devolucion = db.tblDevoluciones.Where(v => v.Id == actual_kardex.id_devolucion).SingleOrDefault(); if (devolucion.id_venta != null) { var venta = kardexRows.Where(k => k.id_venta == devolucion.id_venta).SingleOrDefault(); kr.salida_Q = devolucion.cantidad * -1; kr.salida_cu = venta.salida_cu; kr.salida_ct = kr.salida_Q * kr.salida_cu; kr.saldo_Q = previous_kardex.saldo_Q - kr.salida_Q; kr.saldo_cu = previous_kardex.saldo_cu; kr.saldo_ct = kr.saldo_Q * kr.saldo_cu; kr.descripcion = "Devolución de venta factura #" + devolucion.id_venta; } else if (devolucion.id_compra != null) { var compra = kardexRows.Where(k => k.id_compra == devolucion.id_compra).SingleOrDefault(); kr.entrada_Q = devolucion.cantidad * -1; kr.entrada_cu = compra.entrada_cu; kr.entrada_ct = kr.entrada_Q * kr.entrada_cu; kr.saldo_Q = previous_kardex.saldo_Q + kr.entrada_Q; kr.saldo_cu = (previous_kardex.saldo_ct + kr.entrada_ct) / kr.saldo_Q; kr.saldo_ct = kr.saldo_Q * kr.saldo_cu; kr.descripcion = "Devolución de compra factura #" + devolucion.id_compra; } } return(kr); }