コード例 #1
0
        public ActionResult Edit([Bind(Include = "Id,id_cliente,id_empleado,id_producto,id_metodopago,fecha,cantidad_venta,precio_final")] tblVenta tblVenta)
        {
            if (ModelState.IsValid)
            {
                var venta_actual    = db.tblVenta.AsNoTracking().Where(c => c.Id == tblVenta.Id).SingleOrDefault();
                var producto_actual = db.tblProducto.Find(venta_actual.id_producto);
                producto_actual.cantidad += venta_actual.cantidad_venta;

                var producto_actualizar = db.tblProducto.Find(tblVenta.id_producto);
                producto_actualizar.cantidad -= tblVenta.cantidad_venta;



                var kardex = db.tblKardex.Where(k => k.id_venta == tblVenta.Id).SingleOrDefault();
                kardex.id_producto      = tblVenta.id_producto;
                kardex.fecha            = tblVenta.fecha;
                kardex.cantidad_inicial = db.tblProducto.Where(p => p.Id == tblVenta.id_producto).SingleOrDefault().cantidad + tblVenta.cantidad_venta;



                db.Entry(tblVenta).State = EntityState.Modified;
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }
            ViewBag.id_cliente    = new SelectList(db.tblCliente, "Id", "nombre_compañia", tblVenta.id_cliente);
            ViewBag.id_empleado   = new SelectList(db.tblEmpleado, "Id", "nombre", tblVenta.id_empleado);
            ViewBag.id_metodopago = new SelectList(db.tblMetodoPago, "Id", "nombre", tblVenta.id_metodopago);
            ViewBag.id_producto   = new SelectList(db.tblProducto, "Id", "nombre_producto", tblVenta.id_producto);
            return(View(tblVenta));
        }
コード例 #2
0
        protected void Button1_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrWhiteSpace(txtAbono.Text))
            {
                this.ClientScript.RegisterStartupScript(this.GetType(), "SweetAlert", "vacio()", true);
            }
            else
            {
                DateTime          fechact  = DateTime.Now;
                ControllerCliente ctrlClie = new ControllerCliente();
                tblVenta          ven      = new tblVenta();
                ControllerAlmacen ctrlAlm  = new ControllerAlmacen();

                var ultimoregistro = (from ha in contexto.tblHistorialAbono
                                      where ha.fkVenta == int.Parse(Session["desgloce"].ToString())
                                      orderby ha.idHistorialAbono descending
                                      select ha).FirstOrDefault();

                var ventas = (from venta in contexto.tblVenta
                              where venta.idVenta == int.Parse(Session["desgloce"].ToString())
                              select new { fecha = venta.Fecha, fin = venta.FechaCredito, total = venta.dblTotal }).FirstOrDefault();

                var suma = ultimoregistro.dblCantidadAnterior + decimal.Parse(txtAbono.Text);

                if (suma < ventas.total)
                {
                    tblHistorialAbono HisAbo = new tblHistorialAbono();
                    HisAbo.Fecha               = fechact;
                    HisAbo.dblCantidad         = decimal.Parse(txtAbono.Text);
                    HisAbo.dblCantidadAnterior = suma;
                    HisAbo.fkVenta             = int.Parse(Session["desgloce"].ToString());
                    HisAbo.fkValidacionUsuario = int.Parse(Session["idUsuario"].ToString());

                    ctrlClie.InsertarHistorialAbono(HisAbo);
                    this.Response.Redirect("./AbonoExito.aspx", true);
                }
                else if (suma == ventas.total)
                {
                    tblHistorialAbono HisAbo = new tblHistorialAbono();
                    HisAbo.Fecha               = fechact;
                    HisAbo.dblCantidad         = decimal.Parse(txtAbono.Text);
                    HisAbo.dblCantidadAnterior = suma;
                    HisAbo.fkVenta             = int.Parse(Session["desgloce"].ToString());
                    HisAbo.fkValidacionUsuario = int.Parse(Session["idUsuario"].ToString());

                    ctrlClie.InsertarHistorialAbono(HisAbo);
                    ven.idVenta   = int.Parse(Session["desgloce"].ToString());
                    ven.strEstado = "VENTA A CREDITO FINALIZADA";

                    ctrlAlm.EditarFinalizadoCredito(ven);

                    this.Response.Redirect("./AlertaExito.aspx", true);
                }
                else
                {
                    this.Response.Redirect("./AlertaErrorAbono.aspx", true);
                }
            }
        }
コード例 #3
0
        public void EditarFinalizadoCredito(tblVenta ven)
        {
            tblVenta venBd = contexto.tblVenta
                             .Where(t => t.idVenta == ven.idVenta).FirstOrDefault();

            if (venBd != null)
            {
                venBd.strEstado = "VENTA A CREDITO FINALIZADA";
                contexto.SubmitChanges();
            }
        }
コード例 #4
0
        public void EditarPendiente(tblVenta ven)
        {
            tblVenta venBd = contexto.tblVenta
                             .Where(t => t.idVenta == ven.idVenta).FirstOrDefault();

            if (venBd != null)
            {
                venBd.strEstado = "PENDIENTE";
                contexto.SubmitChanges();
            }
        }
コード例 #5
0
        public void EditarProcesoCredito(tblVenta ven)
        {
            tblVenta venBd = contexto.tblVenta
                             .Where(t => t.idVenta == ven.idVenta).FirstOrDefault();

            if (venBd != null)
            {
                venBd.strEstado = "CREDITO (EN PROCESO)";
                contexto.SubmitChanges();
            }
        }
コード例 #6
0
 public void AddVentaKardex(tblVenta tblVenta)
 {
     db.tblKardex.Add(new tblKardex
     {
         id_producto      = tblVenta.id_producto,
         id_compra        = null,
         id_venta         = tblVenta.Id,
         fecha            = tblVenta.fecha,
         cantidad_inicial = db.tblProducto.Where(p => p.Id == tblVenta.id_producto).SingleOrDefault().cantidad + tblVenta.cantidad_venta
     });
     db.SaveChanges();
 }
コード例 #7
0
 public void RemoveVentaKardex(tblVenta tblVenta)
 {
     try
     {
         tblKardex tblKardex = db.tblKardex.Where(k => k.id_venta == tblVenta.Id).SingleOrDefault();
         db.tblKardex.Remove(tblKardex);
         db.SaveChanges();
     }
     catch (System.ArgumentNullException)
     {
         Debug.WriteLine("No hay kardex asociado a esta venta");
     }
 }
コード例 #8
0
        // GET: Ventas/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            tblVenta tblVenta = db.tblVenta.Find(id);

            if (tblVenta == null)
            {
                return(HttpNotFound());
            }
            return(View(tblVenta));
        }
コード例 #9
0
        public ActionResult DeleteConfirmed(int id)
        {
            tblVenta tblVenta = db.tblVenta.Find(id);

            int?cantidad_actual = db.tblProducto.Where(p => p.Id == tblVenta.id_producto).SingleOrDefault().cantidad;
            int?nueva_cantidad  = cantidad_actual + tblVenta.cantidad_venta;

            var producto = db.tblProducto.Find(tblVenta.id_producto);

            producto.cantidad = nueva_cantidad;

            new KardexController().RemoveVentaKardex(tblVenta);
            db.tblVenta.Remove(tblVenta);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
コード例 #10
0
        public bool InsertarVenta(tblVenta _TBL_Venta)
        {
            bool respuesta = false;

            try
            {
                contexto.tblVenta.InsertOnSubmit(_TBL_Venta);
                contexto.SubmitChanges();
                respuesta = true;
            }
            catch (Exception ex)
            {
                System.Console.WriteLine(ex.ToString());
                respuesta = false;
            }
            return(respuesta);
        }
コード例 #11
0
        // GET: Ventas/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            tblVenta tblVenta = db.tblVenta.Find(id);

            if (tblVenta == null)
            {
                return(HttpNotFound());
            }
            ViewBag.id_cliente    = new SelectList(db.tblCliente, "Id", "nombre_compañia", tblVenta.id_cliente);
            ViewBag.id_empleado   = new SelectList(db.tblEmpleado, "Id", "nombre", tblVenta.id_empleado);
            ViewBag.id_metodopago = new SelectList(db.tblMetodoPago, "Id", "nombre", tblVenta.id_metodopago);
            ViewBag.id_producto   = new SelectList(db.tblProducto, "Id", "nombre_producto", tblVenta.id_producto);
            return(View(tblVenta));
        }
コード例 #12
0
        protected void Button3_Click(object sender, EventArgs e)
        {
            this.Calcular();

            var vacio = 0.0000;

            if (double.Parse(lblTotal.Text) == vacio)
            {
                this.Response.Redirect("./AlertaError.aspx", true);
            }

            else
            {
                DateTime          fechact = DateTime.Now;
                ControllerCliente ctrlCli = new ControllerCliente();

                tblVenta ven = new tblVenta();
                ven.Fecha          = fechact;
                ven.dblTotal       = decimal.Parse(lblTotal.Text);
                ven.dblSubTotal    = decimal.Parse(lblSubTotal.Text);
                ven.dblIGV         = decimal.Parse(lblIGV.Text);
                ven.strEstado      = "PENDIENTE ONLINE";
                ven.strFechaEntega = fechaEntrega.Text;
                ven.strHoraEntega  = txtHora.Text;
                ven.fkCliente      = int.Parse(Session["id"].ToString());
                ctrlCli.InsertarVenta(ven);



                foreach (GridViewRow row in GridView1.Rows)
                {
                    ControllerCliente ctrlClie = new ControllerCliente();
                    tblDetalleVenta   detalle  = new tblDetalleVenta();
                    detalle.Fecha       = fechact;
                    detalle.intCantidad = int.Parse(((TextBox)row.Cells[4].FindControl("TextBox1")).Text);
                    detalle.dblPrecio   = decimal.Parse(Convert.ToString(row.Cells[3].Text));
                    detalle.fkProducto  = int.Parse(row.Cells[1].Text);
                    detalle.fkVenta     = ven.idVenta;
                    detalle.fkEmpleado  = null;
                    ctrlClie.InsertarDetalle(detalle);
                }
                this.Response.Redirect("./AlertaExito.aspx", true);
            }
        }
コード例 #13
0
        protected void Button3_Click(object sender, EventArgs e)
        {
            DateTime          fechact = DateTime.Now;
            ControllerCliente ctrlCli = new ControllerCliente();

            tblVenta ven = new tblVenta();

            ven.Fecha = fechact;
            //ven.dblTotal = decimal.Parse(lblTotal.Text);
            //ven.dblSubTotal = decimal.Parse(lblSubTotal.Text);
            //ven.dblIGV = decimal.Parse(lblIGV.Text);
            ven.strEstado  = "FINALIZADO";
            ven.dblAbono   = null;
            ven.dblInteres = null;

            if ((Session["cliente"].ToString() == "MOSTRADOR"))
            {
                ven.fkCliente = null;
            }
            else
            {
                ven.fkCliente = int.Parse(Session["cliente"].ToString());
            }
            ctrlCli.InsertarVenta(ven);



            foreach (GridViewRow row in GridView1.Rows)
            {
                ControllerCliente ctrlClie = new ControllerCliente();
                tblDetalleVenta   detalle  = new tblDetalleVenta();
                detalle.Fecha       = fechact;
                detalle.intCantidad = int.Parse(((TextBox)row.Cells[4].FindControl("TextBox1")).Text);
                detalle.dblPrecio   = decimal.Parse(Convert.ToString(row.Cells[3].Text));
                detalle.fkProducto  = int.Parse(row.Cells[1].Text);
                detalle.fkVenta     = ven.idVenta;
                detalle.fkEmpleado  = int.Parse(Session["id"].ToString());
                ctrlClie.InsertarDetalle(detalle);
            }
            Response.Redirect("AlertaExito.aspx");

            Response.Redirect("MostradorVenta.aspx");
        }
コード例 #14
0
        /// <summary> Consulta una venta. </summary>
        /// <param name="tintCodigo"> El código de la venta a consultar. </param>
        /// <returns> Una venta consultada. </returns>
        public tblVenta gmtdConsultar(int tintCodigo)
        {
            tblVenta objVenta = new tblVenta();

            try
            {
                List <SqlParameter> lstParameters = new List <SqlParameter>();
                lstParameters.Add(new SqlParameter("intCodVenta", tintCodigo));

                DataTable dt = new Utilidad().ejecutarSp(lstParameters, Sp.uspVentaConsultar);

                if (dt.Rows.Count > 0)
                {
                    objVenta.bitAnuladoVen       = Convert.ToBoolean(dt.Rows[0]["bitAnuladoVen"]);
                    objVenta.bitSocioVen         = Convert.ToBoolean(dt.Rows[0]["bitSocioVen"]);
                    objVenta.decAbonoEfectivoVen = Convert.ToDecimal(dt.Rows[0]["decAbonoEfectivoVen"]);
                    objVenta.decDebeVen          = Convert.ToDecimal(dt.Rows[0]["decDebeVen"]);
                    objVenta.decGranTotalVen     = Convert.ToDecimal(dt.Rows[0]["decGranTotalVen"]);
                    objVenta.dtmFechaAnuVen      = Convert.ToDateTime(dt.Rows[0]["dtmFechaAnuVen"]);
                    objVenta.dtmFechaVen         = Convert.ToDateTime(dt.Rows[0]["dtmFechaVen"]);
                    objVenta.intCodigoPreVen     = Convert.ToInt32(dt.Rows[0]["intCodigoPreVen"]);
                    objVenta.intCodigoRec        = Convert.ToInt32(dt.Rows[0]["intCodigoRec"]);
                    objVenta.intCodVenta         = Convert.ToInt32(dt.Rows[0]["intCodVenta"]);
                    objVenta.strCodigoCliVen     = dt.Rows[0]["strCodigoCliVen"].ToString();
                    objVenta.strNombreCliente    = dt.Rows[0]["strContacto"].ToString();
                }
                else
                {
                    objVenta.intCodVenta = -1;
                }
            }
            catch (Exception ex)
            {
                new dao().gmtdInsertarError(ex);
                objVenta.intCodigoRec = -1;
            }

            return(objVenta);
        }
コード例 #15
0
        protected void ListCreditoPendiente_ItemCommand(object source, DataListCommandEventArgs e)
        {
            string cod;

            if (e.CommandName == "Seleccionar")
            {
                ListCreditoPendiente.SelectedIndex = e.Item.ItemIndex;

                cod = ((Label)this.ListCreditoPendiente.SelectedItem.FindControl("idVentaLabel")).Text;
                Session["desgloce_req_alm"] = cod;

                Response.Redirect("/Almacen/DesgloceRequisicionAlmacen.aspx");
            }
            else if (e.CommandName == "Finalizar")
            {
                string confirmValue = Request.Form["confirm_value"];

                if (confirmValue == "Si")
                {
                    ControllerAlmacen ctrlAlm = new ControllerAlmacen();
                    tblVenta          ven     = new tblVenta();

                    ListCreditoPendiente.SelectedIndex = e.Item.ItemIndex;

                    cod           = ((Label)this.ListCreditoPendiente.SelectedItem.FindControl("idVentaLabel")).Text;
                    ven.idVenta   = Convert.ToInt32(cod);
                    ven.strEstado = "CREDITO (EN PROCESO)";

                    ctrlAlm.EditarProcesoCredito(ven);
                    this.Page.ClientScript.RegisterStartupScript(this.GetType(), "alert", "alert('Se puso en proceso la requisición')", true);
                }
                else
                {
                    this.Page.ClientScript.RegisterStartupScript(this.GetType(), "alert", "alert('Se cancelo la continuidad de la requisición')", true);
                }
            }
            Response.Redirect("/Almacen/RequisicionAlmacen.aspx");
        }
コード例 #16
0
        protected tblHistorialAbono GetVenta(tblHistorialAbono HisVen)
        {
            CultureInfo       culture  = new CultureInfo("en-US");
            DateTime          fechact  = DateTime.Now;
            ControllerCliente ctrlClie = new ControllerCliente();

            tblVenta ven = new tblVenta();

            ven.Fecha          = fechact;
            ven.FechaCredito   = Convert.ToDateTime(txtFechaFin.Text);
            ven.dblTotal       = decimal.Parse(lblTotal2.Text);
            ven.strEstado      = "CREDITO";
            ven.fkCliente      = int.Parse(Session["cliente"].ToString());
            ven.dblInteres     = decimal.Parse(txtInteres.Text);
            ven.dblAbono       = decimal.Parse(txtDinero.Text, culture);
            ven.strFechaEntega = fechaEntrega.Text;
            ven.strHoraEntega  = txtHora.Text;

            HisVen.tblVenta = ven;



            return(HisVen);
        }
コード例 #17
0
        public ActionResult Create([Bind(Include = "Id,id_cliente,id_empleado,id_producto,id_metodopago,fecha,cantidad_venta,precio_final")] tblVenta tblVenta)
        {
            if (ModelState.IsValid)
            {
                int?cantidad_actual = db.tblProducto.AsNoTracking().Where(p => p.Id == tblVenta.id_producto).SingleOrDefault().cantidad;
                int?nueva_cantidad  = cantidad_actual - tblVenta.cantidad_venta;

                var producto = db.tblProducto.Find(tblVenta.id_producto);
                producto.cantidad = nueva_cantidad;

                db.tblVenta.Add(tblVenta);
                db.SaveChanges();

                new KardexController().AddVentaKardex(tblVenta);

                return(RedirectToAction("Index"));
            }

            ViewBag.id_cliente    = new SelectList(db.tblCliente, "Id", "nombre_compañia", tblVenta.id_cliente);
            ViewBag.id_empleado   = new SelectList(db.tblEmpleado, "Id", "nombre", tblVenta.id_empleado);
            ViewBag.id_metodopago = new SelectList(db.tblMetodoPago, "Id", "nombre", tblVenta.id_metodopago);
            ViewBag.id_producto   = new SelectList(db.tblProducto, "Id", "nombre_producto", tblVenta.id_producto);
            return(View(tblVenta));
        }
コード例 #18
0
        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);
        }
コード例 #19
0
        protected void Button3_Click(object sender, EventArgs e)
        {
            var         vacio   = 0.0000;
            CultureInfo culture = new CultureInfo("en-US");

            this.Calcular();

            //Advertencia si el campo no se a calculado correctamente
            if (double.Parse(lblTotal2.Text) == vacio)
            {
                this.ClientScript.RegisterStartupScript(this.GetType(), "SweetAlert", "fallo()", true);
                this.Calcular();
            }

            //Advertencia si hay campos vacios de dinero, hora y fecha.
            else if (string.IsNullOrWhiteSpace(txtDinero.Text) ||
                     string.IsNullOrWhiteSpace(txtHora.Text) ||
                     string.IsNullOrWhiteSpace(fechaEntrega.Text))
            {
                this.ClientScript.RegisterStartupScript(this.GetType(), "SweetAlert", "vacio()", true);
                this.Calcular();
            }

            //Advertencia si el dinero no es el suficiente para liquidar la cuenta
            else if (double.Parse(txtDinero.Text, culture) >= double.Parse(lblTotal2.Text, culture))
            {
                this.ClientScript.RegisterStartupScript(this.GetType(), "SweetAlert", "fallo()", true);
                this.Calcular();
            }


            else
            {
                DateTime          fechact = DateTime.Now;
                ControllerCliente ctrlCli = new ControllerCliente();
                var      CanStock         = 0;
                tblVenta ven     = new tblVenta();
                var      ExStock = 0;

                //Si cae en que el cliente es mostrador significa que la venta
                //se esta realizando al momento y eso va a afectar en el descuento del inventario
                if ((Session["cliente"].ToString() == "MOSTRADOR"))
                {
                    foreach (GridViewRow row in GridView1.Rows)
                    {
                        var existente = (from existe in contexto.tblStock
                                         where existe.fkProducto == int.Parse(row.Cells[1].Text)
                                         select existe).FirstOrDefault();

                        var cantidadExistente = (from existe in contexto.tblStock
                                                 where existe.fkProducto == int.Parse(row.Cells[1].Text)
                                                 select existe);

                        //Si cae aqui significa que no hay un historial en stock
                        if (existente == null)
                        {
                            CanStock++;
                        }
                        else
                        {
                            foreach (tblStock ord in cantidadExistente)
                            {
                                //Aqui se hace la resta de la catidad solicitada menos lo que esxita en stock
                                var resta = ord.dblCantidad - int.Parse(((TextBox)row.Cells[3].FindControl("TextBox1")).Text);

                                if (resta >= 0)
                                {
                                }
                                else
                                {
                                    ExStock++;
                                }
                            }
                        }
                    }
                    //Alertas en caso de que haya caido en las validaciones anteriores
                    if (CanStock > 0)
                    {
                        this.ClientScript.RegisterStartupScript(this.GetType(), "SweetAlert", "falloCantidad()", true);
                    }
                    //Alertas en caso de que haya caido en las validaciones anteriores
                    else if (ExStock > 0)
                    {
                        this.ClientScript.RegisterStartupScript(this.GetType(), "SweetAlert", "alerta()", true);
                    }

                    else
                    {
                        ven.Fecha    = fechact;
                        ven.dblTotal = decimal.Parse(lblTotal2.Text, culture);
                        //ven.dblSubTotal = decimal.Parse(lblSubTotal.Text);
                        //ven.dblIGV = decimal.Parse(lblIGV.Text);
                        ven.strEstado      = "FINALIZADO";
                        ven.dblAbono       = decimal.Parse(txtDinero.Text, culture);;
                        ven.dblInteres     = null;
                        ven.strFechaEntega = fechaEntrega.Text;
                        ven.strHoraEntega  = txtHora.Text;
                        ven.fkCliente      = null;
                        ctrlCli.InsertarVenta(ven);

                        foreach (GridViewRow row in GridView1.Rows)
                        {
                            var cantidadExistente = (from existe in contexto.tblStock
                                                     where existe.fkProducto == int.Parse(row.Cells[1].Text)
                                                     select existe);

                            foreach (tblStock ord in cantidadExistente)
                            {
                                var resta = ord.dblCantidad - int.Parse(((TextBox)row.Cells[3].FindControl("TextBox1")).Text);

                                ControllerAlmacen ctrlAlm = new ControllerAlmacen();
                                tblMovimiento     mov     = new tblMovimiento();
                                mov.strTipo    = "VENTA NUMERO " + ven.idVenta;
                                mov.fecha      = fechact;
                                mov.dblValAnt  = ord.dblCantidad;
                                mov.dblValNvo  = resta;
                                mov.fkStock    = ord.idStock;
                                mov.fkEmpleado = Int32.Parse(Session["id"].ToString());
                                mov.strNumVen  = ven.idVenta.ToString();
                                mov.strFactura = "";

                                ctrlAlm.InsertarMovimientoAlmacen(mov);
                                ord.dblCantidad = resta;
                                contexto.SubmitChanges();
                            }


                            ControllerCliente ctrlClie = new ControllerCliente();
                            tblDetalleVenta   detalle  = new tblDetalleVenta();
                            detalle.Fecha       = fechact;
                            detalle.intCantidad = int.Parse(((TextBox)row.Cells[3].FindControl("TextBox1")).Text);
                            detalle.fkProducto  = int.Parse(row.Cells[1].Text);
                            detalle.dblPrecio   = decimal.Parse(((TextBox)row.Cells[4].FindControl("TextBox2")).Text, culture);
                            detalle.fkVenta     = ven.idVenta;
                            detalle.fkEmpleado  = int.Parse(Session["id"].ToString());
                            ctrlClie.InsertarDetalle(detalle);
                        }
                        Session["contado"] = null;
                        this.ClientScript.RegisterStartupScript(this.GetType(), "SweetAlert", "exito()", true);
                    }
                }
                else
                {
                    ven.Fecha    = fechact;
                    ven.dblTotal = decimal.Parse(lblTotal2.Text);
                    //ven.dblSubTotal = decimal.Parse(lblSubTotal.Text);
                    //ven.dblIGV = decimal.Parse(lblIGV.Text);
                    ven.strEstado      = "PENDIENTE";
                    ven.dblAbono       = decimal.Parse(txtDinero.Text, culture);;
                    ven.dblInteres     = null;
                    ven.strFechaEntega = fechaEntrega.Text;
                    ven.strHoraEntega  = txtHora.Text;
                    ven.fkCliente      = int.Parse(Session["cliente"].ToString());
                    ctrlCli.InsertarVenta(ven);

                    foreach (GridViewRow row in GridView1.Rows)
                    {
                        ControllerCliente ctrlClie = new ControllerCliente();
                        tblDetalleVenta   detalle  = new tblDetalleVenta();
                        detalle.Fecha       = fechact;
                        detalle.intCantidad = int.Parse(((TextBox)row.Cells[3].FindControl("TextBox1")).Text);
                        detalle.fkProducto  = int.Parse(row.Cells[1].Text);
                        detalle.dblPrecio   = decimal.Parse(((TextBox)row.Cells[4].FindControl("TextBox2")).Text, culture);
                        detalle.fkVenta     = ven.idVenta;
                        detalle.fkEmpleado  = int.Parse(Session["id"].ToString());
                        ctrlClie.InsertarDetalle(detalle);
                    }
                    Session["contado"] = null;
                    this.ClientScript.RegisterStartupScript(this.GetType(), "SweetAlert", "exito()", true);
                }

                this.Limpiar();
            }
        }
コード例 #20
0
        protected void DataList2_ItemCommand(object source, DataListCommandEventArgs e)
        {
            string cod;

            if (e.CommandName == "Seleccionar")
            {
                DataList2.SelectedIndex = e.Item.ItemIndex;

                cod = ((Label)this.DataList2.SelectedItem.FindControl("idVentaLabel")).Text;
                Session["desgloce_req_alm"] = cod;

                Response.Redirect("/Almacen/DesgloceRequisicionAlmacen.aspx");
            }

            else if (e.CommandName == "Finalizar")
            {
                string confirmValue = Request.Form["confirm_value"];

                if (confirmValue == "Si")
                {
                    ControllerAlmacen ctrlAlm = new ControllerAlmacen();
                    tblVenta          ven     = new tblVenta();
                    DateTime          fechact = DateTime.Now;

                    DataList2.SelectedIndex = e.Item.ItemIndex;

                    cod = ((Label)this.DataList2.SelectedItem.FindControl("idVentaLabel")).Text;

                    var Productos = (from prod in contexto.tblDetalleVenta
                                     where prod.fkVenta == Int32.Parse(cod)
                                     select prod);

                    foreach (tblDetalleVenta det in Productos)
                    {
                        var cantidadExistente = (from existe in contexto.tblStock
                                                 where existe.fkProducto == det.fkProducto
                                                 select existe);

                        var existente = (from existe in contexto.tblStock
                                         where existe.fkProducto == det.fkProducto
                                         select existe).FirstOrDefault();


                        if (existente == null)
                        {
                            Response.Redirect("/Almacen/AlertaFallo.aspx");
                        }
                        else
                        {
                            foreach (tblStock ord in cantidadExistente)
                            {
                                var resta = ord.dblCantidad - det.intCantidad;

                                if (resta >= 0)
                                {
                                    tblMovimiento mov = new tblMovimiento();
                                    mov.strTipo    = "VENTA NUMERO " + cod;
                                    mov.fecha      = fechact;
                                    mov.dblValAnt  = ord.dblCantidad;
                                    mov.dblValNvo  = resta;
                                    mov.fkStock    = ord.idStock;
                                    mov.fkEmpleado = Int32.Parse(lbEmpleado.Text);
                                    mov.strNumVen  = cod;
                                    mov.strFactura = "";

                                    ctrlAlm.InsertarMovimientoAlmacen(mov);
                                    ord.dblCantidad = resta;
                                    contexto.SubmitChanges();
                                    ven.idVenta   = Convert.ToInt32(cod);
                                    ven.strEstado = "FINALIZADO";

                                    ctrlAlm.EditarFinalizado(ven);
                                    Response.Redirect("/Almacen/AlertaExito.aspx");
                                }
                                else
                                {
                                    Response.Redirect("/Almacen/AlertaAlerta.aspx");
                                }
                            }
                        }
                    }
                }
            }

            else if (e.CommandName == "Pendiente")
            {
                string confirmValue = Request.Form["confirm_value"];

                if (confirmValue == "Si")
                {
                    ControllerAlmacen ctrlAlm = new ControllerAlmacen();
                    tblVenta          ven     = new tblVenta();

                    DataList2.SelectedIndex = e.Item.ItemIndex;

                    cod           = ((Label)this.DataList2.SelectedItem.FindControl("idVentaLabel")).Text;
                    ven.idVenta   = Convert.ToInt32(cod);
                    ven.strEstado = "PENDIENTE";

                    ctrlAlm.EditarPendiente(ven);
                    this.Page.ClientScript.RegisterStartupScript(this.GetType(), "alert", "alert('Se regreso a estado PENDIENTE la requisición')", true);
                }
                else
                {
                    this.Page.ClientScript.RegisterStartupScript(this.GetType(), "alert", "alert('Se cancelo la finalización de la requisición')", true);
                }
            }

            Response.Redirect("/Almacen/RequisicionAlmacen.aspx");
        }