public ActionResult DeleteConfirmed(int id)
        {
            tblKardex tblKardex = db.tblKardex.Find(id);

            db.tblKardex.Remove(tblKardex);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
 public ActionResult Edit([Bind(Include = "Id,id_producto,id_compra,id_venta,fecha")] tblKardex tblKardex)
 {
     if (ModelState.IsValid)
     {
         db.Entry(tblKardex).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.id_producto = new SelectList(db.tblProducto, "Id", "nombre_producto", tblKardex.id_producto);
     return(View(tblKardex));
 }
 public void RemoveCompraKardex(tblCompra tblCompra)
 {
     try
     {
         tblKardex tblKardex = db.tblKardex.Where(k => k.id_compra == tblCompra.Id).SingleOrDefault();
         db.tblKardex.Remove(tblKardex);
         db.SaveChanges();
     }
     catch (System.ArgumentNullException)
     {
         Debug.WriteLine("No hay kardex asociado a esta compra");
     }
 }
        // GET: Kardex/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            tblKardex tblKardex = db.tblKardex.Find(id);

            if (tblKardex == null)
            {
                return(HttpNotFound());
            }
            return(View(tblKardex));
        }
        // GET: Kardex/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            tblKardex tblKardex = db.tblKardex.Find(id);

            if (tblKardex == null)
            {
                return(HttpNotFound());
            }
            ViewBag.id_producto = new SelectList(db.tblProducto, "Id", "nombre_producto", tblKardex.id_producto);
            return(View(tblKardex));
        }
        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);
        }