コード例 #1
0
        /// <summary>
        /// Obtiene uan lista de linea de venta de una venta.
        /// Si no encuentra nada devuelve exceocion propia
        /// </summary>
        /// <param name="idVenta"></param>
        /// <param name="idArt"></param>
        /// <returns></returns>
        private List <VentaLinea> buscarListLineaVenta(int idVenta)
        {
            DataTable dt = selectLineasVentas(idVenta);

            if (dt == null || dt.Rows.Count == 0)
            {
                throw new ExcepcionPropia("No se han encontrado lineas de venta");
            }
            List <VentaLinea>    listLv      = new List <VentaLinea>();
            ControladorArticulos c_articulos = new ControladorArticulos(conn);

            foreach (DataRow row in dt.Rows)
            {
                VentaLinea lv = new VentaLinea();
                lv.Articulo       = c_articulos.BuscarArticulo(Convert.ToInt32(row["idarticulo"]));
                lv.Cantidad       = Convert.ToInt32(row["cantidad"]);
                lv.FechaBaja      = row["fecha_baja"] as DateTime?;
                lv.IdusuarioBaja  = row["idusuario_baja"] as int?;
                lv.Idventa        = Convert.ToInt32(row["idventa"]);
                lv.PrecioUnitario = Convert.ToDecimal(row["precio_unitario"]);
                if (row["idnota_credito"] != DBNull.Value)
                {
                    lv.NotaCredito = BuscarNotaCredito(Convert.ToInt32(row["idnota_credito"]));
                }

                listLv.Add(lv);
            }
            return(listLv);
        }
コード例 #2
0
        /// <summary>
        /// Realiza el cambio.
        ///
        /// </summary>
        /// <param name="lvNueva"></param>
        /// <param name="lvCambiada"></param>
        public void RealizarCambio(VentaLinea lvNueva, VentaLineaCambio lvCambiada)
        {
            BeginTransaction();
            try
            {
                string sql = "DELETE FROM venta_detalle WHERE idventa=:p1 AND idarticulo=:p2";
                conn.Execute(sql, lvCambiada.IdVenta, lvCambiada.IdArticuloAnterior);

                string sql1 = @"INSERT INTO venta_detalle_cambio
                                (
	                                idventa,
	                                idarticulo,
	                                cantidad,
	                                idusuario,
	                                fecha_cambio,
	                                idarticulo_anterior
                                )
                                VALUES
                                (
	                                :idventa,
	                                :idarticulo,
	                                :cantidad,
	                                :idusuario,
	                                :fecha_cambio,
	                                :idarticulo_anterior
                                )";
                conn.Execute(sql1, lvCambiada.IdVenta, lvCambiada.IdArticulo, lvCambiada.Cantidad, lvCambiada.IdUsuario, lvCambiada.FechaCambio, lvCambiada.IdArticuloAnterior);

                insertVentaLinea(lvNueva);

                ///Actualizo strock articulos
                Venta v = buscarVenta(lvCambiada.IdVenta);
                ControladorArticulos c_art = new ControladorArticulos(conn);
                c_art.ActualizarStockArticulo(lvNueva.Idarticulo, -lvNueva.Cantidad, v.IdSucursal);
                c_art.ActualizarStockArticulo(lvCambiada.ArticuloAnterior.Idarticulo, lvCambiada.Cantidad, v.IdSucursal);

                CommitTransaction();
            }
            catch (Npgsql.NpgsqlException ex)
            {
                RollbackTransaction();
                ControladorExcepcion.tiraExcepcion(ex);
            }
        }
コード例 #3
0
    protected void btnAceptarModalCambio_Click(object sender, EventArgs e)
    {
        try
        {
            Articulo artAModificar = new Articulo();
            artAModificar.Idarticulo = Convert.ToInt32(hfIdArticuloACambiar.Value);

            Articulo artNuevo = new Articulo();
            artNuevo.Idarticulo = Convert.ToInt32(cbxArticulosModal.SelectedValue);

            VentaLineaCambio vdc = new VentaLineaCambio();
            vdc.IdVenta          = ventaActual.Idventa;
            vdc.Articulo         = artNuevo;
            vdc.ArticuloAnterior = artAModificar;
            vdc.Cantidad         = Convert.ToInt32(txtCantidad.Text);
            vdc.FechaCambio      = DateTime.Today;
            vdc.IdUsuario        = ApplicationSesion.ActiveUser.Idusuario;


            VentaLinea vl = new VentaLinea();
            vl.Articulo       = artNuevo;
            vl.Cantidad       = Convert.ToInt32(txtCantidad.Text);
            vl.Idventa        = ventaActual.Idventa;
            vl.PrecioUnitario = ventaActual.ListLineaVenta.FirstOrDefault(lv => lv.Idarticulo == artAModificar.Idarticulo).PrecioUnitario;

            using (ControladorVentas c_vemtas = new ControladorVentas())
            {
                c_vemtas.RealizarCambio(vl, vdc);
            }
            Response.Redirect(ResolveUrl("~/Venta/Ventas.aspx?m='Cambio Realizado Correctamete'"));
        }
        catch (ExcepcionPropia ex)
        {
            cerrarModal(modalArticulo);
            mostrarExcepcion(ex.Message);
        }
        catch (FormatException ex)
        {
            cerrarModal(modalArticulo);
            mostrarExcepcion(ex.Message);
        }
    }
コード例 #4
0
        private void insertVentaLinea(VentaLinea lv)
        {
            string sql = @"INSERT INTO venta_detalle
                        (
	                        idventa,
	                        idarticulo,
	                        precio_unitario,
	                        cantidad
                        )
                        VALUES
                        (
	                        :idventa,
	                        :idarticulo,
	                        :precio_unitario,
	                        :cantidad

                        )";

            conn.Execute(sql, lv.Idventa, lv.Idarticulo, lv.PrecioUnitario, lv.Cantidad);
        }
コード例 #5
0
 protected void btnAgregar_Click(object sender, EventArgs e)
 {
     try
     {
         if (ventaActual.ListLineaVenta != null && ventaActual.ListLineaVenta.Exists(l => l.Articulo.Idarticulo == articuloActual.Idarticulo))
         {
             throw new ExcepcionPropia("El articulo articuloActualya existe en la venta");
         }
         VentaLinea lv = new VentaLinea();
         lv.Articulo       = articuloActual;
         lv.Cantidad       = Convert.ToInt32(txtCantidadModal.Text);
         lv.PrecioUnitario = articuloActual.Precio;
         if (ventaActual.ListLineaVenta == null)
         {
             ventaActual.ListLineaVenta = new List <VentaLinea>();
         }
         ventaActual.ListLineaVenta.Add(lv);
         txtTotal.Text           = ventaActual.ListLineaVenta.Sum(l => l.PrecioUnitario * l.Cantidad).ToString("0.00");
         dgvArticulos.DataSource = ventaActual.ListLineaVenta;
         dgvArticulos.DataBind();
         System.Text.StringBuilder sb = new System.Text.StringBuilder();
         sb.Append(@"<script type='text/javascript'>");
         sb.Append("$('#articuloModal').modal('hide');");
         sb.Append(@"</script>");
         ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "AddShowModalScript", sb.ToString(), false);
     }
     catch (ExcepcionPropia mye)
     {
         PanelError.Visible = true;
         lblError.Text      = mye.Message;
         System.Text.StringBuilder sb = new System.Text.StringBuilder();
         sb.Append(@"<script type='text/javascript'>");
         sb.Append("$('#articuloModal').modal('hide');");
         sb.Append(@"</script>");
         ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "AddShowModalScript", sb.ToString(), false);
     }
 }