Exemple #1
0
        public List<DetalleOrden> GetDetallePorNroOrden(Venta.Orden iOrden)
        {
            List<DetalleOrden> detalleOrden = new List<DetalleOrden>();
            try
            {
                DataSet data = new DataSet();

                this.Conexion.NombrePaquete = "administra_detalleorden";
                this.Conexion.QuerySQL = "getdetallepororden";

                this.Conexion.SetValorParametroInput("i_orden", iOrden.Id);

                this.Conexion.ExecuteProcedure(out data);

                this.Conexion.ValidaRespuesta("o_codigo", "o_mensaje");

                if (!Funcion.IsDataSetEmpty(data))
                    if (!Funcion.IsDataTableEmpty(data.Tables[0]))
                    {
                        data.Tables[0].Columns["idorden"].ColumnName = "Orden.Id";
                        data.Tables[0].Columns["idproducto"].ColumnName = "Producto.Id";
                        data.Tables[0].Columns["nombreproducto"].ColumnName = "Producto.Descripcion";
                        data.Tables[0].Columns["precioventa"].ColumnName = "Producto.PrecioVenta";
                        data.Tables[0].Columns["comision"].ColumnName = "Producto.Comision";
                        data.Tables[0].Columns["imagenproducto"].ColumnName = "Producto.Imagen";

                        detalleOrden = Funcion.ConvertToList<DetalleOrden>(data.Tables[0]);
                    }
            }
            catch (Exception)
            {
                throw;
            }
            return detalleOrden;
        }
 private void Cargar(string periodoContable)
 {
     DataTable dataTable;
     Venta venta = new Venta(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
     dataTable = venta.ObtenerVentasAIU(periodoContable);
     GridView_HOJA_DE_TRABAJO.DataSource = dataTable;
     GridView_HOJA_DE_TRABAJO.DataBind();
 }
 private void Cargar(string año)
 {
     DataTable dataTable;
     Venta venta = new Venta(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
     dataTable = venta.ObtenerCumplimentoVentas(año);
     Configurar(dataTable);
     GridView_HOJA_DE_TRABAJO.DataSource = dataTable;
     GridView_HOJA_DE_TRABAJO.DataBind();
     Configurar(GridView_HOJA_DE_TRABAJO);
 }
        public void AgregarServicios(Venta v, DetalleVentaServicio item)
        {
            db.cmd.CommandText = "INSERT INTO DetalleVentaServicio(idServicio,idVenta,estado,idProducto) VALUES(@idServicio,@idVenta,@estado,@idProducto)";
            db.cmd.Parameters.AddWithValue("@idServicio", item.IdServicio);
            db.cmd.Parameters.AddWithValue("@idVenta", v.IdVenta);
            db.cmd.Parameters.AddWithValue("@estado", v.Estado);
            db.cmd.Parameters.AddWithValue("@idProducto", item.IdProducto);

            try
            {
                if (tipo) db.conn.Open();
                db.cmd.ExecuteNonQuery();
                if (tipo) db.conn.Close();
                db.cmd.Parameters.Clear();
            }
            catch (SqlException e)
            {
                MessageBox.Show(e.Message);
            }
        }
        public void Agregar(Venta v, DetalleVenta dv)
        {
            db.cmd.CommandText = "INSERT INTO DetalleVenta(cantidad,descuento,precio,idVenta,idProducto) VALUES(@cantidad,@descuento,@precio,@idVenta,@idProducto)";
            db.cmd.Parameters.AddWithValue("@cantidad", dv.Cantidad);
            db.cmd.Parameters.AddWithValue("@descuento", dv.Descuento);
            db.cmd.Parameters.AddWithValue("@precio", dv.Precio);
            db.cmd.Parameters.AddWithValue("@idVenta", v.IdVenta);
            db.cmd.Parameters.AddWithValue("@idProducto", dv.IdProducto);

            try
            {
                if (tipo) db.conn.Open();
                db.cmd.ExecuteNonQuery();
                if (tipo) db.conn.Close();
                db.cmd.Parameters.Clear();

            }
            catch (SqlException e)
            {
                MessageBox.Show(e.Message);
            }
        }
Exemple #6
0
        public static void guardarVenta(Venta venta, List<DetalleVenta> listadetallesventa)
        {
            string conexionCadena = ConfigurationManager.ConnectionStrings["FOCAdbstring"].ConnectionString;
            SqlConnection connection = new SqlConnection();
            SqlTransaction transaction = null;
            try
            {
                connection.ConnectionString = conexionCadena;
                connection.Open();
                transaction = connection.BeginTransaction();

                string sqlnroFactura = "Select MAX(nroFactura) from VENTAS";
                SqlCommand comandnrofactura = new SqlCommand();
                comandnrofactura.CommandText = sqlnroFactura;
                comandnrofactura.Connection = connection;
                comandnrofactura.Transaction = transaction;
                int nroFactura = Convert.ToInt32(comandnrofactura.ExecuteScalar());
                nroFactura++;

                string sql = "INSERT INTO VENTAS (nroFactura, fecha, cliente, monto)  VALUES (@NroFactura, @Fecha, @Cliente, @monto); SELECT @@Identity as ID;";
                SqlCommand comand = new SqlCommand();
                comand.CommandText = sql;
                comand.Connection = connection;
                comand.Transaction = transaction;
                //comand.Parameters.AddWithValue("@NroFactura", venta.nroFactura);
                comand.Parameters.AddWithValue("@NroFactura", nroFactura);
                comand.Parameters.AddWithValue("@Fecha", venta.fecha);
                comand.Parameters.AddWithValue("@Cliente", venta.cliente);
                comand.Parameters.AddWithValue("@monto", venta.monto);

                int idVenta = Convert.ToInt32(comand.ExecuteScalar());

                //DETALLES INICIO

                foreach (DetalleVenta item in listadetallesventa)
                {
                    string sqlVerStock = "select stock from ARTICULOS where id_Articulo = @idArticulo and disponible = 1";
                    SqlCommand comand4 = new SqlCommand();
                    comand4.CommandText = sqlVerStock;
                    comand4.Connection = connection;
                    comand4.Transaction = transaction;
                    comand4.Parameters.AddWithValue("@idArticulo", item.articulo);
                    int stockActual = Convert.ToInt32(comand4.ExecuteScalar());
                    int restante = stockActual - item.cantidad;
                    if (restante < 0) throw new Exception();

                    string sqlDetalle = "INSERT INTO DETALLE_VENTA VALUES (@NroFactura, @Articulo, @Cantidad, @SubTotal)";
                    SqlCommand comand3 = new SqlCommand();
                    comand3.CommandText = sqlDetalle;
                    comand3.Connection = connection;
                    comand3.Transaction = transaction;
                    //comand3.Parameters.AddWithValue("@NroFactura", item.nroFactura);
                    comand3.Parameters.AddWithValue("@NroFactura", idVenta);
                    comand3.Parameters.AddWithValue("@Articulo", item.articulo);
                    comand3.Parameters.AddWithValue("@Cantidad", item.cantidad);
                    comand3.Parameters.AddWithValue("@SubTotal", item.subTotal);
                    comand3.ExecuteNonQuery();

                    string sqlupdateStock = "update Articulos set stock = @Restante where id_articulo = @idArticulo";
                    SqlCommand comand5 = new SqlCommand();
                    comand5.CommandText = sqlupdateStock;
                    comand5.Connection = connection;
                    comand5.Transaction = transaction;
                    comand5.Parameters.AddWithValue("@Restante", restante);
                    comand5.Parameters.AddWithValue("@idArticulo", item.articulo);
                    comand5.ExecuteNonQuery();

                }

                //DETALLES FIN

                //sql = "Insert into AUDITORIA (fecha, descripcion) values (GETDATE(),@descripcion)";
                //SqlCommand comand2 = new SqlCommand();
                //comand2.CommandText = sql;
                //comand2.Connection = connection;
                //comand2.Transaction = transaction;
                //comand2.Parameters.AddWithValue("@descripcion", "Se grabó la reparacion con ID:" + idRepracion.ToString());
                //comand2.ExecuteNonQuery();

                transaction.Commit(); //confirmo los cambios
            }
            catch (SqlException ex)
            {
                if (connection.State == ConnectionState.Open)
                    transaction.Rollback(); //Vuelvo atras los cambios
                throw new ApplicationException("Error al guardar la venta.");
            }
            catch (Exception nostock)
            {
                if (connection.State == ConnectionState.Open)
                    transaction.Rollback(); //Vuelvo atras los cambios
                throw new ApplicationException("Error al guardar la venta, no hay suficiente stock.");
            }
            finally
            {
                if (connection.State == ConnectionState.Open)
                    connection.Close();
            }
        }
        public void GuardarVenta(string cmbTipoVenta)
        {
            int numFilas = LstVenta.Count();
            if (numFilas > 0)
            {
                if (Validar())
                {
                    Venta v = new Venta();
                    v.LstDetalle = new List<DetalleVenta>();
                    v.LstPagos = new List<VentaPago>();
                    v.LstDetalleServicio = new List<DetalleVentaServicio>();
                    //guardar datos de la venta

                    if (tipoVenta[cmbTipoVenta] == 0)
                        v.TipoDocPago = "Boleta";
                    else
                    {
                        v.TipoDocPago = "Factura";
                        if (String.IsNullOrEmpty(TxtRazonSocial) || String.IsNullOrEmpty(TxtRuc))
                        {
                            MessageBox.Show("Se requiere Razón Social y ruc para la factura", "AVISO", MessageBoxButton.OK, MessageBoxImage.Error);
                            return;
                        }
                    }

                    v.NumDocPago = null;
                    v.IdUsuario = Convert.ToInt32(Thread.CurrentPrincipal.Identity.Name);
                    v.Direccion = TxtDireccion;
                    v.Telefono = TxtTelefono;
                    v.IdCliente = cli.Cliente.Id;
                    v.CodTarjeta = Convert.ToInt32(cli.CodTarjeta);

                    v.FechaReg = System.DateTime.Now;
                    v.FechaDespacho = fechaDespacho;
                    v.TipoVenta = "Obra";
                    v.Estado = 1;

                    //guardar detalle de productos de la venta
                    foreach (DetalleVenta dv in lstVenta)
                    {
                        v.LstDetalle.Add(dv);
                    }

                    //guardar detalle de servicios de la venta, si es que hay
                    if (LstVentaServicios.Count() > 0)
                    {
                        foreach (DetalleVentaServicio dvs in LstVentaServicios)
                        {
                            v.LstDetalleServicio.Add(dvs);
                        }
                    }

                    v.Monto = total;
                    v.Descuento = desc;
                    v.Igv = igv_total;
                    v.PtosGanados = Convert.ToInt32(v.Monto / PUNTO);

                    //guardar el pago de la venta
                    foreach (VentaPago vp in lstPagos)
                    {
                        if (vp.Nombre.Equals("Efectivo"))
                        {
                            vp.Monto -= Double.Parse(txtVuelto);
                        }
                        v.LstPagos.Add(vp);
                    }

                    //insertar la venta en la base de datos
                    DBConexion db = new DBConexion();
                    db.conn.Open();
                    SqlTransaction trans = db.conn.BeginTransaction(IsolationLevel.Serializable);
                    db.cmd.Transaction = trans;
                    VentaSQL vsql = new VentaSQL(db);
                    int k = vsql.AgregarVentaObra(v);
                    if (k != 0)
                    {
                        trans.Commit();
                        MessageBox.Show("Venta Realizada con Exito");
                        Limpiar();
                        if (v.TipoDocPago.Equals("Boleta"))
                        {
                            GenerarPDFBoletaProductos(v);
                            if (v.LstDetalleServicio.Count() > 0)
                                GenerarPDFBoletaServicios(v);
                        }
                        else
                        {
                            GenerarPDFFacturaProductos(v);
                            if (v.LstDetalleServicio.Count() > 0)
                                GenerarPDFFacturaServicios(v);
                        }
                    }
                    else
                    {
                        trans.Rollback();
                        MessageBox.Show("Ocurrio un Error en el proceso");
                    }
                }

            }
            else
            {
                MessageBox.Show("Falta ingresar produtos", "AVISO", MessageBoxButton.OK, MessageBoxImage.Error);
                return;
            }
        }
Exemple #8
0
 public bool DarAltaVenta(Venta pVenta)//la venta parametro no debe estar previamente en nuestra bd.
 {
     return(bd.AnadirVenta(pVenta));
 }
        public void GuardarVenta(string cmbTipoVenta)
        {
            int numFilas = LstVenta.Count();
            if (numFilas > 0)
            {
                Venta v = new Venta();
                v.LstDetalle = new List<DetalleVenta>();
                v.LstPagos = new List<VentaPago>();
                v.LstDetalleServicio = new List<DetalleVentaServicio>();
                //guardar datos de la venta
                //completar
                if (tipoVenta[cmbTipoVenta] == 0)
                    v.TipoDocPago = "Boleta";
                else
                {
                    v.TipoDocPago = "Factura";
                    //validar que los datos de ruc y razon social
                    if (!string.IsNullOrEmpty(TxtRuc) && !string.IsNullOrEmpty(TxtRazonSocial))
                    {
                        v.Ruc = TxtRuc;
                        v.RazonSocial = TxtRazonSocial;
                    }
                    else
                    {
                        MessageBox.Show("Falta ingresar Ruc o Razón Social", "AVISO", MessageBoxButton.OK, MessageBoxImage.Error);
                        return;
                    }
                }

                v.NumDocPago = null;
                v.TipoVenta = "Tienda";
                v.Estado = 1;
                v.FechaReg = System.DateTime.Now;
                v.IdUsuario = Convert.ToInt32(Thread.CurrentPrincipal.Identity.Name);
                //idCliente desde la tarjeta de este si es que hay
                if (!string.IsNullOrEmpty(TxtCliente))
                {
                    v.IdCliente = Convert.ToInt32(cliente.Id);
                    v.CodTarjeta = Convert.ToInt32(TxtCliente);
                }
                else
                {
                    v.IdCliente = -1;
                    v.CodTarjeta = -1;
                }

                //guardar detalle de la venta
                foreach (DetalleVenta dv in lstVenta)
                {
                    v.LstDetalle.Add(dv);
                }
                v.Monto = total;
                v.Descuento = desc;
                v.Igv = igv_total;

                v.PtosGanados = Convert.ToInt32(v.Monto / PUNTO);

                foreach (VentaPago vp in lstPagos)
                {
                    if (vp.Nombre.Equals("Efectivo"))
                    {
                        vp.Monto -= Double.Parse(txtVuelto);
                    }
                    v.LstPagos.Add(vp);
                }

                //guardar detalle de servicios de la venta, si es que hay
                if (LstVentaServicios.Count() > 0)
                {
                    foreach (DetalleVentaServicio dvs in LstVentaServicios)
                    {
                        v.LstDetalleServicio.Add(dvs);
                    }
                }

                //insertar en la base de datos
                DBConexion db = new DBConexion();
                db.conn.Open();
                SqlTransaction trans = db.conn.BeginTransaction(IsolationLevel.Serializable);
                db.cmd.Transaction = trans;
                VentaSQL vsql = new VentaSQL(db);
                if (v.IdCliente == -1)
                {
                    int k = vsql.AgregarSinCliente(v);
                    if (k != 0)
                    {

                        NotaISSQL ntgw = new NotaISSQL();
                        NotaIS nota = new NotaIS();
                        AlmacenSQL asql = new AlmacenSQL();
                        nota.IdAlmacen = asql.BuscarAlmacen(-1, idTienda, 2).IdAlmacen;
                        // Logica de  Referencia de documento

                        //Si existe documento de referencia colocar el ID
                        nota.IdDoc = v.IdVenta;

                        nota.IdMotivo = 9;
                        nota.IdResponsable = v.IdUsuario;
                        nota.Observaciones = "Venta en Cajero";
                        nota.Tipo = 2;
                        List<ProductoCant> LstProductos = new List<ProductoCant>();
                        List<ProductoCant> lpcan = new List<ProductoCant>();

                        for (int i = 0; i < v.LstDetalle.Count; i++)
                        {
                            Producto p = new ProductoSQL().Buscar_por_CodigoProducto(v.LstDetalle.ElementAt(i).IdProducto);
                            ProductoCant pcan = new ProductoCant();
                            pcan.IdProducto = p.IdProducto;
                            pcan.CodigoProd = p.CodigoProd;
                            pcan.Nombre = p.Nombre;
                            pcan.CanAtender = v.LstDetalle.ElementAt(i).Cantidad.ToString();
                            lpcan.Add(pcan);

                        }
                        LstProductos = new List<ProductoCant>(lpcan);

                        nota.LstProducto = LstProductos;

                        nota.IdNota = ntgw.AgregarNota(nota);

                        trans.Commit();
                        ntgw.AgregarNotaxSector(nota);
                        MessageBox.Show("Venta Realizada con Exito");
                        Limpiar();
                    }
                    else
                    {
                        trans.Rollback();
                        MessageBox.Show("Ocurrio un Error en el proceso");
                    }
                }
                else
                {
                    int k = vsql.Agregar(v);
                    if (k != 0)
                    {

                        NotaISSQL ntgw = new NotaISSQL();
                        NotaIS nota = new NotaIS();
                        AlmacenSQL asql = new AlmacenSQL();
                        nota.IdAlmacen = asql.BuscarAlmacen(-1, idTienda, 2).IdAlmacen;
                        // Logica de  Referencia de documento

                        //Si existe documento de referencia colocar el ID
                        nota.IdDoc = v.IdVenta;

                        nota.IdMotivo = 9;
                        nota.IdResponsable = v.IdUsuario;
                        nota.Observaciones = "Venta en Cajero";
                        nota.Tipo = 2;
                        List<ProductoCant> LstProductos = new List<ProductoCant>();
                        List<ProductoCant> lpcan = new List<ProductoCant>();

                        for (int i = 0; i < v.LstDetalle.Count; i++)
                        {
                            Producto p = new ProductoSQL().Buscar_por_CodigoProducto(v.LstDetalle.ElementAt(i).IdProducto);
                            ProductoCant pcan = new ProductoCant();
                            pcan.IdProducto = p.IdProducto;
                            pcan.CodigoProd = p.CodigoProd;
                            pcan.Nombre = p.Nombre;
                            pcan.CanAtender = v.LstDetalle.ElementAt(i).Cantidad.ToString();
                            lpcan.Add(pcan);

                        }
                        LstProductos = new List<ProductoCant>(lpcan);

                        nota.LstProducto = LstProductos;

                        nota.IdNota = ntgw.AgregarNota(nota);

                        trans.Commit();

                        ntgw.AgregarNotaxSector(nota);
                        MessageBox.Show("Venta Realizada con Exito");
                        Limpiar();
                    }
                    else
                    {
                        trans.Rollback();
                        MessageBox.Show("Ocurrio un Error en el proceso");
                    }
                }

                if (v.TipoDocPago.Equals("Boleta"))
                {
                    GenerarPDFBoletaProductos(v);
                    if (v.LstDetalleServicio.Count() > 0)
                        GenerarPDFBoletaServicios(v);
                }
                else
                {
                    GenerarPDFFacturaProductos(v);
                    if (v.LstDetalleServicio.Count() > 0)
                        GenerarPDFFacturaServicios(v);
                }

            }
            else
            {
                MessageBox.Show("Debe ingreasar datos de la venta");
                return;
            }
        }
Exemple #10
0
 public Venta ObtenerInfoVenta(Venta pVenta)//la Venta pasado como parametro es un envoltorio para el codigo(lo unico que nos interesa), uso esta idea en todos los metodos con una Venta como parámetro. como precondición el codigo de dicho articulo debe existir en la base de datos.
 {
     return(bd.BuscarVenta(pVenta));
 }
Exemple #11
0
        private int InsertaOrdenDeDespacho(Venta v)
        {
            int idTienda = new TiendaSQL().obtenerTienda(v.IdUsuario);

            db.cmd.CommandText = "SELECT * FROM Almacen WHERE idTienda=@idTienda AND tipo=@tipo";
            db.cmd.Parameters.AddWithValue("@idTienda", idTienda);
            db.cmd.Parameters.AddWithValue("@tipo", 1);
            SqlDataReader rs2 = db.cmd.ExecuteReader();
            rs2.Read();
            int idAlmacen = Convert.ToInt32(rs2["idAlmacen"].ToString());
            rs2.Close();
            db.cmd.Parameters.Clear();

            int k = 0;

            db.cmd.CommandText = "INSERT INTO OrdenDespacho(idVenta,fechaDespacho,estado,idAlmacen,direccion,telefono)" +
                                  " VALUES (@idVenta,@fechaDespacho,@estado,@idAlmacen,@direccion,@telefono)";
            db.cmd.Parameters.AddWithValue("@idVenta", v.IdVenta);
            db.cmd.Parameters.AddWithValue("@fechaDespacho", v.FechaDespacho);
            db.cmd.Parameters.AddWithValue("@estado", 1);
            db.cmd.Parameters.AddWithValue("@idAlmacen", idAlmacen);
            db.cmd.Parameters.AddWithValue("@direccion", v.Direccion);
            db.cmd.Parameters.AddWithValue("@telefono", v.Telefono);

            try
            {
                if (tipo) db.conn.Open();
                k = db.cmd.ExecuteNonQuery();
                if (tipo) db.conn.Close();
                db.cmd.Parameters.Clear();
            }
            catch (SqlException e)
            {
                MessageBox.Show(e.Message);
            }

            return k;
        }
Exemple #12
0
        public object Buscar(params object[] filters)
        {
            DBConexion db = new DBConexion();
            List<Venta> lista = new List<Venta>();
            lista = null;

            // LstVentas = new VentaSQL().Buscar(TxtDocPago,  MontoMin, MontoMax,client,fechaInicio,fechaFin) as List<Venta>;
            String txtDocPago = filters[0] as String;
            String MontoMin = filters[1] as String;
            String MontoMax = filters[2] as String;
            Cliente client = filters[3] as Cliente;
            DateTime fechaIni = Convert.ToDateTime(filters[4]);
            DateTime fechaFin = Convert.ToDateTime(filters[5]);
            int estado = Convert.ToInt32(filters[6]);
            string sql = "";

            sql = "SELECT v.idVenta,v.idUsuario,v.tipoVenta,v.codTarjeta,v.descuento,v.estado,v.fechaReg,v.idCliente   " +
                  " , c.tipoCliente as tipoC , c.razonSocial as rsC , c.nombre as nombreC      " +
                  " ,v.numDocPagoProducto,v.tipoDocPago,v.monto,v.descuento,v.IGV,v.ptosGanados,v.numDocPagoServicio " +
                    "FROM  Venta v LEFT JOIN  Cliente c ON c.IdCliente = v.IdCliente  ";

            string where = " WHERE 1=1 ";

            if (client != null)
            {

                where += "and  v.IdCliente = " + client.Id;

            }

            if (estado >= 0)
            {

                where += " and v.estado = " + estado;

            }

            if (!String.IsNullOrEmpty(txtDocPago))
            {
                where += " and ( v.numDocPagoProducto like '" + txtDocPago + "' ";
                where += " or v.numDocPagoServicio like '" + txtDocPago + "' ) ";
            }

            if (!String.IsNullOrEmpty(MontoMin))
            {

                where += " and  v.monto >= " + MontoMin;
            }

            if (!String.IsNullOrEmpty(MontoMax))
            {

                where += " and  v.monto <= " + MontoMax;
            }

            if (fechaIni != null)
            {
                where += " and CONVERT(DATE,'" + fechaIni.ToString("yyyy-MM-dd") + "')   <=  CONVERT(DATE,v.fechaReg,103) ";
            }

            if (fechaFin != null)
            {
                where += " and CONVERT(DATE,'" + fechaFin.ToString("yyyy-MM-dd") + "')   >=  CONVERT(DATE,v.fechaReg,103) ";
            }

            db.cmd.CommandText = sql + where + "order by fechaReg DESC";

            try
            {
                db.conn.Open();
                SqlDataReader reader = db.cmd.ExecuteReader();
                while (reader.Read())
                {
                    if (lista == null) lista = new List<Venta>();
                    Venta v = new Venta();
                    v.IdVenta = Convert.ToInt32(reader["idVenta"]);
                    v.NumDocPago = reader.IsDBNull(reader.GetOrdinal("numDocPagoProducto")) ? "" : reader["numDocPagoProducto"].ToString();
                    v.NumDocPagoServicio = reader.IsDBNull(reader.GetOrdinal("numDocPagoServicio")) ? "" : reader["numDocPagoServicio"].ToString(); ;
                    v.IdCliente = reader.IsDBNull(reader.GetOrdinal("idCliente")) ? 0 : Convert.ToInt32(reader["idCliente"]);
                    v.Monto = Convert.ToDouble(reader["monto"]);
                    v.Estado = Convert.ToInt32(reader["estado"]);
                    v.TipoVenta = reader["tipoVenta"].ToString();
                    v.IdUsuario = Convert.ToInt32(reader["idUsuario"].ToString());

                    if (v.IdCliente != 0)
                    {
                        v.NombreCliente = (Convert.ToInt32(reader["tipoC"]) == 0) ? Convert.ToString(reader["nombreC"]) : Convert.ToString(reader["rsC"]);

                    }
                    else
                    {
                        v.NombreCliente = "NR";
                    }

                    v.FechaRegS = Convert.ToDateTime(reader["fechaReg"]).ToString();

                    v.EstadoS = (v.Estado == 0) ? "ANULADA" : "REALIZADA";
                    // t.tipoCliente as tipoC , t.razonSocial as rsC , t.nombre as nombreC

                    lista.Add(v);

                }
                db.cmd.Parameters.Clear();
                db.conn.Close();
            }
            catch (SqlException e)
            {
                MessageBox.Show(e.StackTrace.ToString());
            }

            return lista;
        }
 public string Insertar(Venta cat)
 {
     return(cdao.agregar(cat));
 }
Exemple #14
0
        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                Venta venta = new Venta();
                foreach (DataGridViewRow dr in gdvDatos.Rows)
                {
                    if (Convert.ToBoolean(dr.Cells[0].Value))
                    {
                        int onekey = Convert.ToInt32(dr.Cells[1].Value);

                        var s4 = dr.Cells[4].Value;

                        var Total      = dr.Cells[10].Value;
                        var MontoTotal = dr.Cells[12].Value;

                        string codigo  = Convert.ToString(dr.Cells[3].Value);
                        int    idVenta = Convert.ToInt32(dr.Cells[4].Value);

                        Venta data = DatVenta.ObtenerVenta(idVenta);


                        venta.Id         = data.Id;
                        venta.MontoTotal = data.MontoTotal - Convert.ToDecimal(Total);
                        if (data.Vuelto < 0)
                        {
                            venta.Vuelto = data.Vuelto + Convert.ToDecimal(Total);
                        }
                        else if (data.Vuelto >= 0 && data.Saldo == 0)
                        {
                            venta.Vuelto = data.Vuelto + Convert.ToDecimal(Total);
                        }

                        if (data.Saldo > 0)
                        {
                            venta.Saldo  = data.Saldo - Convert.ToDecimal(Total);
                            venta.Vuelto = venta.Saldo < 0 ? venta.Saldo * (-1) : venta.Saldo;
                            venta.Saldo  = venta.Saldo < 0 ? 0 : venta.Saldo;
                        }

                        venta.EstadoPago = venta.Saldo <= 0 ? "PAGADO" : "PENDIENTE";

                        new DatDetalleVenta().EditarDevolucion_DetalleVenta(onekey);
                        DatVenta.EditarDatos_Devoluciones(venta);
                        Producto p = new BusProducto().ObtenerProducto(codigo);
                        if (p.usaInventario == "SI")
                        {
                            string presentancion = Convert.ToString(dr.Cells[7].Value);
                            if (p.precioMayoreo == Convert.ToDecimal(dr.Cells[6].Value) || presentancion.Equals("PQTE") || presentancion.Equals("SIX") ||
                                presentancion.Equals("CJA") || presentancion.Equals("BTO") || presentancion.Equals("RJA"))
                            {
                                decimal cantidadVendida = Convert.ToDecimal(p.TotalUnidades * Convert.ToDecimal(dr.Cells[6].Value));
                                new BusProducto().Actualizar_Stock(p.Id, (Convert.ToDecimal(p.stock) + cantidadVendida));
                            }
                            else
                            {
                                new BusProducto().Actualizar_Stock(p.Id, (Convert.ToDecimal(p.stock) + Convert.ToDecimal(dr.Cells[6].Value)));
                            }
                        }
                    }
                }

                DialogResult result = MessageBox.Show("Desea Reimprimir el ticket", "Operación realizada", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

                if (result == DialogResult.Yes)
                {
                    ImprimirTicket(venta);
                }

                pnlProcesar.Visible   = false;
                lblTotalDevuelto.Text = "0.00";
                gdvDatos.DataSource   = null;
                Limpiar_campos();
            }
            catch (Exception ex)
            {
                MessageBox.Show("Ocurrió un error al actualizar los datos : " + ex.Message, "Error de actualización", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
 public void Agregar(Venta venta)
 {
     ventas.Add(venta);
 }
Exemple #16
0
 public bool Modificar(Venta entidad)
 {
     return(repositorio.Editar(entidad));
 }
Exemple #17
0
 public bool Agregar(Venta entidad)
 {
     return(repositorio.Crear(entidad));
 }
Exemple #18
0
        public void Test_NuevaVentaException()
        {
            Venta miVenta = null;

            Comercio.ConfirmarVenta(miVenta);
        }
Exemple #19
0
        public void ServiceActulizarVent(Venta producto)
        {
            NegocioVenta auxn = new NegocioVenta();

            auxn.actualizarVent(producto);
        }
Exemple #20
0
        public void Serviceinsertarproducto(Venta producto)
        {
            NegocioVenta auxn = new NegocioVenta();

            auxn.insertarVenta(producto);
        }
Exemple #21
0
        public int AnularVentaObra(Venta v)
        {
            int k = 0;
            int estado=0;

            //verificar si la venta ha sido despachada
            db.cmd.CommandText = "select estado from OrdenDespacho where idVenta=@idVenta";
            db.cmd.Parameters.AddWithValue("@idVenta", v.IdVenta);
            try
            {
                if (tipo) db.conn.Open();
                SqlDataReader reader = db.cmd.ExecuteReader();
                reader.Read();
                estado = Convert.ToInt32(reader["estado"].ToString());
                reader.Close();
                db.cmd.Parameters.Clear();
                if (tipo) db.conn.Close();
            }
            catch (SqlException e)
            {
                MessageBox.Show(e.Message);
            }

            if (estado == 2)
            {
                //la venta ya fue atendida
                return 3;
            }

            if (estado == 1)
            {
                //la venta aun no ha sido atendida
                db.cmd.CommandText = "UPDATE Venta SET estado=0 WHERE idVenta = @idVenta; UPDATE OrdenDespacho SET estado=3 where idVenta=@idVenta";
                db.cmd.Parameters.AddWithValue("@idVenta", v.IdVenta);

                try
                {
                    if (tipo) db.conn.Open();
                    k = db.cmd.ExecuteNonQuery();
                    db.cmd.Parameters.Clear();
                    if (tipo) db.conn.Close();
                }
                catch (SqlException e)
                {
                    MessageBox.Show(e.Message);
                }
            }

            return k;
        }
Exemple #22
0
 /// <summary>
 /// Creates the instance of Factura with all its parameters
 /// and a due date of 15 by default.
 /// </summary>
 /// <param name="venta">Sale to add in the instance.</param>
 /// <param name="tf">Type of instance.</param>
 public Factura(Venta venta, TipoFactura tf)
     : this(venta, 15, tf)
 {
 }
Exemple #23
0
        private void actualizaNumDocServicios(Venta v)
        {
            if(v.TipoDocPago.Equals("Boleta"))
                db.cmd.CommandText = "UPDATE Venta SET numDocPagoServicio='BOL' + right('0000000000' + cast( @numDocPagoServicio as varchar(10)), 10) WHERE idVenta=@idVenta";
            else
                db.cmd.CommandText = "UPDATE Venta SET numDocPagoServicio='FAC' + right('0000000000' + cast( @numDocPagoServicio as varchar(10)), 10) WHERE idVenta=@idVenta";

            db.cmd.Parameters.AddWithValue("@numDocPagoServicio", v.NumDocPagoServicio);
            db.cmd.Parameters.AddWithValue("@idVenta", v.IdVenta);

            try
            {
                if (tipo) db.conn.Open();
                db.cmd.ExecuteNonQuery();
                db.cmd.Parameters.Clear();
                if (tipo) db.conn.Close();
            }
            catch (SqlException e)
            {
                MessageBox.Show(e.Message);
            }
        }
Exemple #24
0
        public string Insertar(Venta Venta, List <Detalle_Venta> Detalle)
        {
            string        rpta   = "";
            SqlConnection SqlCon = new SqlConnection();

            try
            {
                SqlCon.ConnectionString = Conexion.Cn;
                SqlCon.Open();
                SqlTransaction SqlTra = SqlCon.BeginTransaction();
                SqlCommand     SqlCmd = new SqlCommand();
                SqlCmd.Connection  = SqlCon;
                SqlCmd.Transaction = SqlTra;
                SqlCmd.CommandText = "spinsertar_venta";
                SqlCmd.CommandType = CommandType.StoredProcedure;

                SqlParameter ParIdventa = new SqlParameter();
                ParIdventa.ParameterName = "@idventa";
                ParIdventa.SqlDbType     = SqlDbType.Int;
                ParIdventa.Direction     = ParameterDirection.Output;
                SqlCmd.Parameters.Add(ParIdventa);

                SqlParameter ParIdCliente = new SqlParameter();
                ParIdCliente.ParameterName = "@idcliente";
                ParIdCliente.SqlDbType     = SqlDbType.Int;
                ParIdCliente.Value         = Venta.Idcliente;
                SqlCmd.Parameters.Add(ParIdCliente);

                SqlParameter ParIdtrabajador = new SqlParameter();
                ParIdtrabajador.ParameterName = "@idtrabajador";
                ParIdtrabajador.SqlDbType     = SqlDbType.Int;
                ParIdtrabajador.Value         = Venta.Idtrabajador;
                SqlCmd.Parameters.Add(ParIdtrabajador);

                SqlParameter ParFecha = new SqlParameter();
                ParFecha.ParameterName = "@fecha";
                ParFecha.SqlDbType     = SqlDbType.Date;
                ParFecha.Value         = Venta.Fecha;
                SqlCmd.Parameters.Add(ParFecha);

                SqlParameter ParTipo_Comprobante = new SqlParameter();
                ParTipo_Comprobante.ParameterName = "@tipo_comprobante";
                ParTipo_Comprobante.SqlDbType     = SqlDbType.VarChar;
                ParTipo_Comprobante.Size          = 20;
                ParTipo_Comprobante.Value         = Venta.Tipo_Comprobante;
                SqlCmd.Parameters.Add(ParTipo_Comprobante);

                SqlParameter ParSerie = new SqlParameter();
                ParSerie.ParameterName = "@serie";
                ParSerie.SqlDbType     = SqlDbType.VarChar;
                ParSerie.Size          = 4;
                ParSerie.Value         = Venta.Serie;
                SqlCmd.Parameters.Add(ParSerie);

                SqlParameter ParCorrelativo = new SqlParameter();
                ParCorrelativo.ParameterName = "@correlativo";
                ParCorrelativo.SqlDbType     = SqlDbType.VarChar;
                ParCorrelativo.Size          = 7;
                ParCorrelativo.Value         = Venta.Correlativo;
                SqlCmd.Parameters.Add(ParCorrelativo);

                SqlParameter ParIgv = new SqlParameter();
                ParIgv.ParameterName = "@igv";
                ParIgv.SqlDbType     = SqlDbType.Decimal;
                ParIgv.Precision     = 4;
                ParIgv.Scale         = 2;
                ParIgv.Value         = Venta.Igv;
                SqlCmd.Parameters.Add(ParIgv);



                rpta = SqlCmd.ExecuteNonQuery() == 1 ? "OK" : "NO se Ingreso el Registro";

                if (rpta.Equals("OK"))
                {
                    dDetalle_Venta deting = new dDetalle_Venta();
                    Venta.Idventa = Convert.ToInt32(SqlCmd.Parameters["@idventa"].Value);
                    foreach (Detalle_Venta det in Detalle)
                    {
                        det.Idventa = Venta.Idventa;
                        rpta        = deting.Insertar(det, ref SqlCon, ref SqlTra);
                        if (!rpta.Equals("OK"))
                        {
                            break;
                        }
                        else
                        {
                            rpta = DisminuirStock(det.Iddetalle_ingreso, det.Cantidad);
                            if (!rpta.Equals("OK"))
                            {
                                break;
                            }
                        }
                    }
                }
                if (rpta.Equals("OK"))
                {
                    SqlTra.Commit();
                }
                else
                {
                    SqlTra.Rollback();
                }
            }
            catch (Exception ex)
            {
                rpta = ex.Message;
            }
            finally
            {
                if (SqlCon.State == ConnectionState.Open)
                {
                    SqlCon.Close();
                }
            }
            return(rpta);
        }
Exemple #25
0
        private int numero(Venta v,int tipo2)
        {
            int k = 0;
            db.cmd.CommandText = "SELECT count(*) as C FROM Venta WHERE tipoDocPago=@tipoDocPago";
            db.cmd.Parameters.AddWithValue("@tipoDocPago", v.TipoDocPago);
            try
            {
                if (tipo) db.conn.Open();
                SqlDataReader rs = db.cmd.ExecuteReader();
                rs.Read();
                k = Convert.ToInt32(rs["C"].ToString());
                if (tipo) db.conn.Close();
                db.cmd.Parameters.Clear();
                rs.Close();

            }
            catch (SqlException e)
            {
                MessageBox.Show(e.Message);
            }

            int k2 = 0;
            db.cmd.CommandText = "SELECT count(*) as C FROM Venta WHERE tipoDocPago=@tipoDocPago AND numDocPagoServicio is not null";
            db.cmd.Parameters.AddWithValue("@tipoDocPago", v.TipoDocPago);
            try
            {
                if (tipo) db.conn.Open();
                SqlDataReader rs2 = db.cmd.ExecuteReader();
                rs2.Read();
                k2 = Convert.ToInt32(rs2["C"].ToString());
                if (tipo) db.conn.Close();
                db.cmd.Parameters.Clear();
                rs2.Close();

            }
            catch (SqlException e)
            {
                MessageBox.Show(e.Message);
            }

            if (tipo2 == 2) return k + 1 + k2;
            else return k + k2;
        }
Exemple #26
0
        static void Main(string[] args)
        {
            Congelado c1 = new Congelado(1, "Espinaca", "Carrefour", 50, DateTime.Now.AddDays(30));
            Congelado c2 = new Congelado(2, "Hamburguesas", "Paty", 150.50, DateTime.Now.AddDays(10));
            Congelado c3 = new Congelado(3, "Espinaca", "Carrefour", 50, DateTime.Now.AddDays(20));

            Bazar b1 = new Bazar(4, "Balde", "Colombraro", 300, EMaterial.Plastico);
            Bazar b2 = new Bazar(5, "Jarra", "Luxury", 122.35, EMaterial.Vidrio);
            Bazar b3 = new Bazar(6, "Silla", "Maderera San Juan", 1500, EMaterial.Madera);

            Comercio c = new Comercio();

            try
            {
                Venta <Producto> v1 = new Venta <Producto>(1, "Juan Perez", ECaja.CajaUno);
                v1.CambioEstado += venta_EventoCambioEstado;
                v1 += c1;
                v1 += b1;

                Console.WriteLine("Nueva venta: \n{0}", v1.ToString());
                c += v1;

                Venta <Producto> v2 = new Venta <Producto>(2, "Jorge Rojas", ECaja.CajaDos);
                v2.CambioEstado += venta_EventoCambioEstado;
                v2 += c2;
                v2 += c3;

                Console.WriteLine("Nueva venta: \n{0}", v2.ToString());
                c += v2;

                Venta <Producto> v3 = new Venta <Producto>(1, "Pedro Gonzales", ECaja.CajaTres);
                v3.CambioEstado += venta_EventoCambioEstado;
                v3 += b2;
                v3 += b3;

                Console.WriteLine("Nueva venta: \n{0}", v3.ToString());
                c += v3;
            }
            catch (FacturaRepetidaException ex)
            {
                Console.WriteLine(ex.Message);
            }

            System.Threading.Thread.Sleep(11000);
            Console.WriteLine("Presione una tecla para continuar ...");
            Console.ReadKey();

            Console.Clear();
            Console.WriteLine(c.ToString());
            Console.WriteLine("Presione una tecla para continuar ...");
            Console.ReadKey();

            Console.Clear();
            Exportador <List <Venta <Producto> > > exp = new Exportador <List <Venta <Producto> > >();
            string archivo = Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + "\\ventas.xml";

            try
            {
                exp.Exportar(archivo, c.Ventas);
                Console.WriteLine("Se ha exportado los datos de ventas al archivo '{0}'", archivo);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }

            Console.WriteLine("Fin del test. Presione una tecla para terminar ...");
            Console.ReadKey();
        }
        public string formatoFS(Venta v)
        {
            double valorVenta = 0;
            string content =
                @"<html>
                    <body>
                        <table>
                            <tr>
                                <td>
                                    <span style='text-align: center; text-decoration: underline; font-size: 1em; font-weight: bold'>MadeInHouse S.A.</span><br>
                                    <span style='text-align: center; font-size: 0.5em'>
                                        Av. Priority N° xxx - San Miguel - Lima<br>
                                        Telf: 999-9999<br>
                                        www.MadeInHouse.com Email: [email protected]
                                    </span>
                                </td>
                                <td></td>
                                <td border=1>
                                    <span style='text-align: center; font-size: 1em'>
                                        R.U.C. N° XXXXXXXXXXX<br>
                                        FACTURA<br>
                                        001 - N° " + v.NumDocPagoServicio.ToString().PadLeft(10, '0');
            content += "</span>" +
                                "</td>" +
                            "</tr>" +
                        "</table>" +
                        "<br>" +
                        "<table width=100%>" +
                            "<tr>" +
                                "<td width=200 border=1>";
            if (v.IdCliente != -1)
            {
                ClienteSQL cSQL = new ClienteSQL();
                Cliente cli = cSQL.BuscarClienteByIdCliente(v.IdCliente);
                content += "<span style='font-size: 0.5em'>" +
                                        "Señor (es): " + cli.RazonSocial + "<br>" +
                                        "Dirección : " + cli.Direccion + "<br>" +
                                        "R.U.C. N° : " + cli.Ruc +
                                    "</span>";
            }
            else
            {
                content += "<span style='font-size: 0.5em'>" +
                                        "Señor (es): " + v.RazonSocial + "<br>" +
                                        "Dirección : " + v.Direccion + "<br>" +
                                        "R.U.C. N° : " + v.Ruc +
                                    "</span>";
            }
            content += "</td>" +
                                "<td width=100>" +
                                    "<table border=1 width=150 align=center>" +
                                        "<tr><td><span style='text-align: center; font-size: 0.5em'>FECHA DE EMISIÓN</span></td></tr>" +
                                        "<tr><td><span style='text-align: center; font-size: 0.5em'>" + DateTime.Now.ToString("dd/MM/yyyy") + "</span></td></tr>" +
                                    "</table>" +
                                "</td>" +
                            "</tr>" +
                        "</table>" +
                        "<br>" +
                        "<table border=1 height=700>" +
                            "<tr>" +
                                "<th><span style='font-size: 0.5em'>DESCRIPCION</span></th>" +
                                "<th><span style='font-size: 0.5em'>VALOR (S/.)</span></th>" +
                            "</tr>";
            if (v.LstDetalle != null)
            {
                foreach (DetalleVentaServicio dvs in v.LstDetalleServicio)
                {
                    content += "<tr>" +
                                "<td><span style='font-size: 0.5em'>" + dvs.Descripcion + "</span></th>" +
                                "<td><span style='font-size: 0.5em'>" + Math.Round(valorVenta += (dvs.Precio / 1.18), 2) + "</span></th>" +
                                "</tr>";
                }
            }
            content += "</table>" +
                        "<br>" +
                        "<table border=1>" +
                            "<tr>" +
                                "<td><span style='font-size: 0.5em'>VALOR VENTA (S/.)</span></td>" +
                                "<td><span style='font-size: 0.5em'>" + Math.Round(valorVenta, 2) + "</span></td>" +
                                "<td><span style='font-size: 0.5em'>IGV (S/.)</span></td>" +
                                "<td><span style='font-size: 0.5em'>" + Math.Round(0.18 * valorVenta, 2) + "</span></td>" +
                                "<td><span style='font-size: 0.5em'>TOTAL A PAGAR (S/.)</span></td>" +
                                "<td><span style='font-size: 0.5em'>" + Math.Round(1.18 * valorVenta, 2) + "</span></td>" +
                            "</tr>" +
                        "</table>" +
                    "</body>" +
                "</html>";

            return content;
        }
        /// <summary>
        /// Cliente existente en momento de compra
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnClienteExiste_Click(object sender, EventArgs e)
        {
            if (auxMontoTotal > 0)
            {
                FrmClienteExistente auxClienteExistente = new FrmClienteExistente();

                if (auxClienteExistente.ShowDialog() == DialogResult.OK)
                {
                    if (TiendaApu.ValidarCliente(auxClienteExistente.AuxCliente))
                    {
                        TiendaApu.ListaVentas.Add(new Venta(TiendaApu.EmpleadoLogueado, auxClienteExistente.AuxCliente,
                                                            this.listaCompras, this.auxMontoTotal));
                        // si es miembro de la familia Simpson aplica descuento

                        MessageBox.Show("Por ser miembro de la familia Simpson tiene un descuentos del 13%!!", "Descuento!!", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                        double descuento     = (auxMontoTotal) * 13 / 100;
                        double montoOriginal = auxMontoTotal;
                        auxMontoTotal = montoOriginal - descuento;
                        MessageBox.Show(String.Format("Total compras: ${0:#,###.00}\n Descuentos (13%): S{1:#,###.00}\n Montos abonados: ${2:#,###.00}", "Informacion",
                                                      montoOriginal, descuento, auxMontoTotal, MessageBoxButtons.OK, MessageBoxIcon.Exclamation));


                        Venta venta1 = (new Venta(TiendaApu.EmpleadoLogueado, auxClienteExistente.AuxCliente, this.listaCompras, this.auxMontoTotal));
                        TiendaApu.AgregarVenta(venta1);


                        // genera comprobante de compra

                        StreamWriter auxComprobante = new StreamWriter(String.Concat(directorio, "/ticketCompra"));
                        auxComprobante.WriteLine(DateTime.Now.ToLongDateString());
                        auxComprobante.WriteLine(DateTime.Now.ToString("hh:mm:ss"));
                        foreach (var item in this.listaCompras)
                        {
                            auxComprobante.WriteLine("Item: {0: -10} Precio: ${1:###,##.00}", item.Descripcion, item.Precio);
                        }
                        auxComprobante.WriteLine("Monto: ${0:###,##.00}", montoOriginal);
                        auxComprobante.WriteLine("Descuento SIMPSON: ${0:###,##.00}", descuento);
                        auxComprobante.WriteLine("Total a abonar: ${0:###,##.00}", auxMontoTotal);
                        auxComprobante.WriteLine("Gracias! Vuelva prontosss");
                        auxComprobante.Close();
                    }
                    else
                    {
                        MessageBox.Show(String.Format("Montos abonados: ${0:#,###.00}", auxMontoTotal), "Informacion", MessageBoxButtons.OK, MessageBoxIcon.Information);

                        // genera comprobante de compra

                        StreamWriter auxComprobante = new StreamWriter(String.Concat(directorio, "/ticketCompra"));

                        auxComprobante.WriteLine(DateTime.Now.ToLongDateString());
                        auxComprobante.WriteLine(DateTime.Now.ToString("hh:mm:ss"));
                        auxComprobante.WriteLine(String.Format($"Cliente: {auxClienteExistente.AuxCliente.Nombre} {auxClienteExistente.AuxCliente.Apellido}"));
                        foreach (var item in this.listaCompras)
                        {
                            auxComprobante.WriteLine("Item: {0: -10} Precio: ${1:###,##.00}", item.Descripcion, item.Precio);
                        }
                        auxComprobante.WriteLine("Total a abonar: ${0:###,##.00}", auxMontoTotal);
                        auxComprobante.WriteLine("Gracias! Vuelva prontosss");

                        auxComprobante.Close();
                    }

                    // Agrega venta a la lista de ventas

                    TiendaApu.ListaVentas.Add(new Venta(TiendaApu.EmpleadoLogueado, auxClienteExistente.AuxCliente,
                                                        this.listaCompras, this.auxMontoTotal));

                    auxSonido.Play();
                    DialogResult = DialogResult.OK;
                }
            }
            else
            {
                MessageBox.Show("Debe seleccionar algun articulos para continuar con la compras!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
        public static List<Venta> BuscarVentaxTienda(string tienda)
        {
            List<Venta> lstVenta = new List<Venta>();
            SqlConnection conn = new SqlConnection(Properties.Settings.Default.inf245g4ConnectionString);
            SqlCommand cmd = new SqlCommand();
            SqlDataReader reader;

            cmd.CommandText = "SELECT * FROM venta v join usuario u on (v.idUsuario = u.idUsuario) join tienda t on u.idTienda = t.idTienda where t.nombre = '" + tienda + "'";
            cmd.CommandType = CommandType.Text;
            cmd.Connection = conn;

            try
            {
                conn.Open();
                reader = cmd.ExecuteReader();
                while (reader.Read())
                {
                    Venta e = new Venta();
                    e.IdVenta = Convert.ToInt32(reader["idVenta"]);
                    e.TipoDocPago = reader["tipoDocPago"].ToString();
                    e.NumDocPago = reader["numDocPagoProducto"].ToString();
                    e.IdUsuario = Convert.ToInt32(reader["idUsuario"]);
                    e.IdCliente = reader.IsDBNull(reader.GetOrdinal("idCliente")) ? 0 : Convert.ToInt32(reader["idCliente"]);
                    e.Monto = Convert.ToDouble(reader["monto"].ToString());
                    e.PtosGanados = Convert.ToInt32(reader["ptosGanados"]);
                    e.Igv = Convert.ToDouble(reader["IGV"]);
                    e.CodTarjeta = reader.IsDBNull(reader.GetOrdinal("codTarjeta")) ? 0 : Convert.ToInt32(reader["codTarjeta"]);
                    e.TipoVenta = reader["tipoVenta"].ToString();
                    e.Estado = Convert.ToInt32(reader["estado"]);
                    e.FechaReg = Convert.ToDateTime(reader["fechaReg"].ToString());
                    e.FechaMod = reader.IsDBNull(reader.GetOrdinal("fechaMod")) ? new DateTime(1/1/1) : Convert.ToDateTime(reader["fechaMod"].ToString());
                    e.FechaDespacho = reader.IsDBNull(reader.GetOrdinal("fechaDespacho")) ? new DateTime(1 / 1 / 1) : Convert.ToDateTime(reader["fechaDespacho"].ToString());
                    lstVenta.Add(e);

                }

                conn.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.StackTrace.ToString());
            }

            return lstVenta;
        }
        public ActionResult GuardarVenta(string Fecha, string modoPago, string IdCliente, string Total, List <DetalleVenta> ListadoDetalle)
        {
            string mensaje       = "";
            double iva           = 18;
            string idVendedor    = "DML19";
            int    codigoPago    = 0;
            long   codigoCliente = 0;
            double total         = 0;

            if (Fecha == "" || modoPago == "" || IdCliente == "" || Total == "")
            {
                if (Fecha == "")
                {
                    mensaje = "ERROR EN EL CAMPO FECHA";
                }
                if (modoPago == "")
                {
                    mensaje = "SELECCIONE UN MODO DE PAGO";
                }
                if (IdCliente == "")
                {
                    mensaje = "ERROR CON EL CODIGO DEL CLIENTE";
                }
                if (Total == "")
                {
                    mensaje = "ERROR EN EL CAMPO TOTAL";
                }
            }
            else
            {
                codigoPago    = Convert.ToInt32(modoPago);
                codigoCliente = Convert.ToInt64(IdCliente);
                total         = Convert.ToDouble(Total);

                //REGISTRO DE VENTA
                Venta  objVenta    = new Venta(total, codigoCliente, idVendedor, Fecha, iva);
                string codigoVenta = objVentaNeg.create(objVenta);
                if (codigoVenta == "" || codigoVenta == null)
                {
                    mensaje = "ERROR AL REGISTRAR LA VENTA";
                }
                else
                {
                    Session["idVenta"] = codigoVenta;
                    //REGISTRO DE FACTURA
                    Factura objFactura    = new Factura(Fecha, iva, total, codigoPago);
                    string  codigoFactura = objFacturaNeg.create(objFactura);
                    if (codigoFactura == "" || codigoFactura == null)
                    {
                        mensaje = "ERROR AL REGISTRAR LA FACTURA";
                    }
                    else
                    {
                        foreach (var data in ListadoDetalle)
                        {
                            string       idProducto      = data.IdProducto.ToString();
                            int          cantidad        = Convert.ToInt32(data.Cantidad.ToString());
                            double       descuento       = Convert.ToDouble(data.Descuento.ToString());
                            double       subtotal        = Convert.ToDouble(data.SubTotal.ToString());
                            DetalleVenta objDetalleVenta = new DetalleVenta(Convert.ToInt64(codigoFactura), Convert.ToInt64(codigoVenta), idProducto, subtotal, descuento, cantidad);
                            objDetalleVentaNeg.create(objDetalleVenta);
                        }
                        mensaje = "VENTA GUARDADA CON EXITO...";
                    }
                }
            }

            return(Json(mensaje));
        }
Exemple #31
0
 public bool DarBajaVenta(Venta pVenta)//el Venta parametro debe estar previamente en nuestra bd.
 {
     return(bd.EliminarVenta(pVenta));
 }
Exemple #32
0
        private bool Agregar9500()
        {
            // Se valida la parte de "Partes"
            if (!this.ctlPartes.Validar())
                return false;
            // Se pide el efectivo, si aplica
            if (!this.ctlCobro.CompletarCobro())
                return false;
            // Se valida que exista una Medida genérica, para las nuevas partes
            if (Datos.GetEntity<Medida>(q => q.MedidaID == Cat.Medidas.Pieza && q.Estatus) == null)
            {
                UtilLocal.MensajeAdvertencia("No existe una Medida genérica para asignarle a las partes nuevas. No se puede continuar.");
                return false;
            }

            // Se solicitan la autorizaciones, si se requiere
            int iAutorizoID = 0;
            if (this.ctlPartes.AutorizacionRequeridaPrecio || this.ctlPartes.AutorizacionRequeridaAnticipo)
            {
                string sPermiso = (this.ctlPartes.AutorizacionRequeridaPrecio ? "Autorizaciones.Ventas.9500.PrecioFueraDeRango" :
                    "Autorizaciones.Ventas.9500.NoAnticipo");
                var Res = UtilLocal.ValidarObtenerUsuario(sPermiso, "Autorización");
                iAutorizoID = (Res.Respuesta == null ? 0 : Res.Respuesta.UsuarioID);
            }

            // Se procede a guardar los datos
            DateTime dAhora = DateTime.Now;
            // Se genera la Cotización 9500
            var o9500 = this.ctlPartes.Generar9500();
            o9500.Fecha = dAhora;
            o9500.RealizoUsuarioID = this.ctlCobro.VendodorID;
            if (this.ctlCobro.ComisionistaID > 0)
                o9500.ComisionistaClienteID = this.ctlCobro.ComisionistaID;
            // Se genera el detalle del 9500
            var oParteGanancia = this.ctlPartes.ObtenerParteGanancia(null);
            var o9500Detalle = new List<Cotizacion9500Detalle>();
            foreach (var Parte9500 in this.ctlPartes.Detalle)
            {
                // Si la parte no existe, se agrega
                if (Parte9500.Value.ParteID <= 0)
                {
                    int iFila = UtilLocal.findRowIndex(this.ctlPartes.dgvPartes, "Llave", Parte9500.Key);
                    string sNumeroDeParte = Util.Cadena(this.ctlPartes.dgvPartes["NumeroDeParte", iFila].Value);
                    string sDescripcion = Util.Cadena(this.ctlPartes.dgvPartes["Descripcion", iFila].Value);
                    var oLinea = Datos.GetEntity<Linea>(q => q.LineaID == Parte9500.Value.LineaID && q.Estatus);
                    Parte oParte = new Parte()
                    {
                        NumeroParte = sNumeroDeParte,
                        LineaID = Parte9500.Value.LineaID,
                        MarcaParteID = Parte9500.Value.MarcaParteID,
                        ProveedorID = Parte9500.Value.ProveedorID,
                        NombreParte = sDescripcion,
                        Es9500 = true,
                        SubsistemaID = oLinea.SubsistemaID.Valor()
                    };

                    // Se agregan los precios
                    PartePrecio oPartePrecio = null;
                    if (oParteGanancia != null)
                    {
                        oPartePrecio = new PartePrecio()
                        {
                            Costo = Parte9500.Value.Costo,
                            PorcentajeUtilidadUno = oParteGanancia.PorcentajeDeGanancia1,
                            PorcentajeUtilidadDos = oParteGanancia.PorcentajeDeGanancia2,
                            PorcentajeUtilidadTres = oParteGanancia.PorcentajeDeGanancia3,
                            PorcentajeUtilidadCuatro = oParteGanancia.PorcentajeDeGanancia4,
                            PorcentajeUtilidadCinco = oParteGanancia.PorcentajeDeGanancia5,
                            PrecioUno = UtilTheos.AplicarRedondeo(Parte9500.Value.Costo * oParteGanancia.PorcentajeDeGanancia1),
                            PrecioDos = UtilTheos.AplicarRedondeo(Parte9500.Value.Costo * oParteGanancia.PorcentajeDeGanancia2),
                            PrecioTres = UtilTheos.AplicarRedondeo(Parte9500.Value.Costo * oParteGanancia.PorcentajeDeGanancia3),
                            PrecioCuatro = UtilTheos.AplicarRedondeo(Parte9500.Value.Costo * oParteGanancia.PorcentajeDeGanancia4),
                            PrecioCinco = UtilTheos.AplicarRedondeo(Parte9500.Value.Costo * oParteGanancia.PorcentajeDeGanancia5)
                        };
                    }

                    // Se guarda
                    Guardar.Parte(oParte, oPartePrecio);
                    Parte9500.Value.ParteID = oParte.ParteID;
                }

                // Se agrega la parte al detalle del 9500
                o9500Detalle.Add(Parte9500.Value);
            }

            // Se guardan los datos de 9500
            Guardar.c9500(o9500, o9500Detalle);

            // Se genera la venta con el anticipo
            var oVenta = new Venta()
            {
                ClienteID = o9500.ClienteID,
                RealizoUsuarioID = o9500.RealizoUsuarioID
            };
            var oPrecioAnticipo = Datos.GetEntity<PartePrecio>(c => c.ParteID == Cat.Partes.AnticipoClientes && c.Estatus);
            var oVentaDetalle = new VentaDetalle()
            {
                ParteID = Cat.Partes.AnticipoClientes,
                Cantidad = 1,
                PrecioUnitario = o9500.Anticipo,
                Costo = oPrecioAnticipo.Costo.Valor(),
                CostoConDescuento = (oPrecioAnticipo.CostoConDescuento ?? oPrecioAnticipo.Costo.Valor())
            };
            Guardar.Venta(oVenta, new List<VentaDetalle>() { oVentaDetalle });

            // Se guarda el dato de la venta con el anticipo en el registro de 9500
            o9500.AnticipoVentaID = oVenta.VentaID;
            Datos.Guardar<Cotizacion9500>(o9500);

            // Se guardan las autorizaciones, si hubiera
            if (this.ctlPartes.AutorizacionRequeridaPrecio)
                VentasProc.GenerarAutorizacion(Cat.AutorizacionesProcesos.c9500PrecioFueraDeRango, Cat.Tablas.Tabla9500, o9500.Cotizacion9500ID, iAutorizoID);
            if (this.ctlPartes.AutorizacionRequeridaAnticipo)
                VentasProc.GenerarAutorizacion(Cat.AutorizacionesProcesos.c9500SinAnticipo, Cat.Tablas.Tabla9500, o9500.Cotizacion9500ID, iAutorizoID);

            // Se muestra una notifiación con el resultado
            UtilLocal.MostrarNotificacion("Cotización 9500 guardada correctamente.");

            return true;
        }
 private void Cargar(string año, string idRegional, string idCiudad)
 {
     DataTable dataTable;
     Venta venta = new Venta(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
     dataTable = venta.ObtenerEstadisticaComportamiento(año, idRegional, idCiudad);
     GridView_HOJA_DE_TRABAJO.DataSource = dataTable;
     GridView_HOJA_DE_TRABAJO.DataBind();
 }
Exemple #34
0
        public static ResAcc Venta(Venta oVenta, List<VentaDetalle> Detalle)
        {
            bool bMod = (oVenta.VentaID > 0);
            if (bMod) throw new Exception("No se ha programado funcionalidad para cuando la Venta ya exista.");

            // Se generan datos predeterminados o globales, en caso de que apliquen
            oVenta.Fecha = (oVenta.Fecha != DateTime.MinValue ? oVenta.Fecha : DateTime.Now);
            oVenta.VentaEstatusID = (oVenta.VentaEstatusID > 0 ? oVenta.VentaEstatusID : Cat.VentasEstatus.Realizada);
            oVenta.RealizoUsuarioID = (oVenta.RealizoUsuarioID > 0 ? oVenta.RealizoUsuarioID : Theos.UsuarioID);
            oVenta.SucursalID = (oVenta.SucursalID > 0 ? oVenta.SucursalID : Theos.SucursalID);
            oVenta.ComisionistaClienteID = (oVenta.ComisionistaClienteID > 0 ? oVenta.ComisionistaClienteID : null);
            oVenta.ClienteVehiculoID = (oVenta.ClienteVehiculoID > 0 ? oVenta.ClienteVehiculoID : null);

            // Se obtiene el folio correspondiente
            /* string sFolio = Config.Valor("Ventas.Folio");
            Config.EstablecerValor("Ventas.Folio", (Util.ConvertirEntero(sFolio) + 1).ToString().PadLeft(7, '0'));
            oVenta.Folio = sFolio; */

            // Se guarda la venta
            Datos.Guardar<Venta>(oVenta);

            // Se guarda el detalle
            foreach (var ParteDetalle in Detalle)
            {
                if (ParteDetalle.VentaDetalleID > 0) continue;  // No es una venta nueva, no se ha especificado que hacer en estos casos

                ParteDetalle.VentaID = oVenta.VentaID;
                Datos.Guardar<VentaDetalle>(ParteDetalle);

                // Se afecta la existencia
                // AdmonProc.AgregarExistencia(ParteDetalle.ParteID, oVenta.SucursalID, (ParteDetalle.Cantidad * -1), Cat.Tablas.Venta, oVenta.VentaID);
                // Se meten datos a kardex que se actualizarán posteriormente, al cobrar la venta
                AdmonProc.AfectarExistenciaYKardex(ParteDetalle.ParteID, oVenta.SucursalID, Cat.OperacionesKardex.Venta, null, oVenta.RealizoUsuarioID, "", "", ""
                    , (ParteDetalle.Cantidad * -1), 0, Cat.Tablas.Venta, oVenta.VentaID);
            }

            // Se generar datos relevantes al cliente comisionista, si hubiera
            if (oVenta.ComisionistaClienteID.Valor() > 0)
            {
                // Se calcula el importe de la comisión
                decimal mComision = UtilDatos.VentaComisionCliente(oVenta.VentaID, oVenta.ComisionistaClienteID.Valor());
                // Se genera una nota de crédito, por la comisión
                if (mComision > 0)
                    VentasProc.GenerarNotaDeCredito(oVenta.ComisionistaClienteID.Valor(), mComision, "", Cat.OrigenesNotaDeCredito.Comision, oVenta.VentaID);
            }

            return new ResAcc(true);
        }
Exemple #35
0
        private bool Agregar9500()
        {
            // Se valida la parte de "Partes"
            if (!this.ctlPartes.Validar())
            {
                return(false);
            }
            // Se pide el efectivo, si aplica
            if (!this.ctlCobro.CompletarCobro())
            {
                return(false);
            }
            // Se valida que exista una Medida genérica, para las nuevas partes
            if (Datos.GetEntity <Medida>(q => q.MedidaID == Cat.Medidas.Pieza && q.Estatus) == null)
            {
                UtilLocal.MensajeAdvertencia("No existe una Medida genérica para asignarle a las partes nuevas. No se puede continuar.");
                return(false);
            }

            // Se solicitan la autorizaciones, si se requiere
            int iAutorizoID = 0;

            if (this.ctlPartes.AutorizacionRequeridaPrecio || this.ctlPartes.AutorizacionRequeridaAnticipo)
            {
                string sPermiso = (this.ctlPartes.AutorizacionRequeridaPrecio ? "Autorizaciones.Ventas.9500.PrecioFueraDeRango" :
                                   "Autorizaciones.Ventas.9500.NoAnticipo");
                var Res = UtilLocal.ValidarObtenerUsuario(sPermiso, "Autorización");
                iAutorizoID = (Res.Respuesta == null ? 0 : Res.Respuesta.UsuarioID);
            }

            // Se procede a guardar los datos
            DateTime dAhora = DateTime.Now;
            // Se genera la Cotización 9500
            var o9500 = this.ctlPartes.Generar9500();

            o9500.Fecha            = dAhora;
            o9500.RealizoUsuarioID = this.ctlCobro.VendodorID;
            if (this.ctlCobro.ComisionistaID > 0)
            {
                o9500.ComisionistaClienteID = this.ctlCobro.ComisionistaID;
            }
            // Se genera el detalle del 9500
            var oParteGanancia = this.ctlPartes.ObtenerParteGanancia(null);
            var o9500Detalle   = new List <Cotizacion9500Detalle>();

            foreach (var Parte9500 in this.ctlPartes.Detalle)
            {
                // Si la parte no existe, se agrega
                if (Parte9500.Value.ParteID <= 0)
                {
                    int    iFila          = UtilLocal.findRowIndex(this.ctlPartes.dgvPartes, "Llave", Parte9500.Key);
                    string sNumeroDeParte = Util.Cadena(this.ctlPartes.dgvPartes["NumeroDeParte", iFila].Value);
                    string sDescripcion   = Util.Cadena(this.ctlPartes.dgvPartes["Descripcion", iFila].Value);
                    var    oLinea         = Datos.GetEntity <Linea>(q => q.LineaID == Parte9500.Value.LineaID && q.Estatus);
                    Parte  oParte         = new Parte()
                    {
                        NumeroParte  = sNumeroDeParte,
                        LineaID      = Parte9500.Value.LineaID,
                        MarcaParteID = Parte9500.Value.MarcaParteID,
                        ProveedorID  = Parte9500.Value.ProveedorID,
                        NombreParte  = sDescripcion,
                        Es9500       = true,
                        SubsistemaID = oLinea.SubsistemaID.Valor()
                    };

                    // Se agregan los precios
                    PartePrecio oPartePrecio = null;
                    if (oParteGanancia != null)
                    {
                        oPartePrecio = new PartePrecio()
                        {
                            Costo = Parte9500.Value.Costo,
                            PorcentajeUtilidadUno    = oParteGanancia.PorcentajeDeGanancia1,
                            PorcentajeUtilidadDos    = oParteGanancia.PorcentajeDeGanancia2,
                            PorcentajeUtilidadTres   = oParteGanancia.PorcentajeDeGanancia3,
                            PorcentajeUtilidadCuatro = oParteGanancia.PorcentajeDeGanancia4,
                            PorcentajeUtilidadCinco  = oParteGanancia.PorcentajeDeGanancia5,
                            PrecioUno    = UtilTheos.AplicarRedondeo(Parte9500.Value.Costo * oParteGanancia.PorcentajeDeGanancia1),
                            PrecioDos    = UtilTheos.AplicarRedondeo(Parte9500.Value.Costo * oParteGanancia.PorcentajeDeGanancia2),
                            PrecioTres   = UtilTheos.AplicarRedondeo(Parte9500.Value.Costo * oParteGanancia.PorcentajeDeGanancia3),
                            PrecioCuatro = UtilTheos.AplicarRedondeo(Parte9500.Value.Costo * oParteGanancia.PorcentajeDeGanancia4),
                            PrecioCinco  = UtilTheos.AplicarRedondeo(Parte9500.Value.Costo * oParteGanancia.PorcentajeDeGanancia5)
                        };
                    }

                    // Se guarda
                    Guardar.Parte(oParte, oPartePrecio);
                    Parte9500.Value.ParteID = oParte.ParteID;
                }

                // Se agrega la parte al detalle del 9500
                o9500Detalle.Add(Parte9500.Value);
            }

            // Se guardan los datos de 9500
            Guardar.c9500(o9500, o9500Detalle);

            // Se genera la venta con el anticipo
            var oVenta = new Venta()
            {
                ClienteID        = o9500.ClienteID,
                RealizoUsuarioID = o9500.RealizoUsuarioID
            };
            var oPrecioAnticipo = Datos.GetEntity <PartePrecio>(c => c.ParteID == Cat.Partes.AnticipoClientes && c.Estatus);
            var oVentaDetalle   = new VentaDetalle()
            {
                ParteID           = Cat.Partes.AnticipoClientes,
                Cantidad          = 1,
                PrecioUnitario    = o9500.Anticipo,
                Costo             = oPrecioAnticipo.Costo.Valor(),
                CostoConDescuento = (oPrecioAnticipo.CostoConDescuento ?? oPrecioAnticipo.Costo.Valor())
            };

            Guardar.Venta(oVenta, new List <VentaDetalle>()
            {
                oVentaDetalle
            });

            // Se guarda el dato de la venta con el anticipo en el registro de 9500
            o9500.AnticipoVentaID = oVenta.VentaID;
            Datos.Guardar <Cotizacion9500>(o9500);

            // Se guardan las autorizaciones, si hubiera
            if (this.ctlPartes.AutorizacionRequeridaPrecio)
            {
                VentasProc.GenerarAutorizacion(Cat.AutorizacionesProcesos.c9500PrecioFueraDeRango, Cat.Tablas.Tabla9500, o9500.Cotizacion9500ID, iAutorizoID);
            }
            if (this.ctlPartes.AutorizacionRequeridaAnticipo)
            {
                VentasProc.GenerarAutorizacion(Cat.AutorizacionesProcesos.c9500SinAnticipo, Cat.Tablas.Tabla9500, o9500.Cotizacion9500ID, iAutorizoID);
            }

            // Se muestra una notifiación con el resultado
            UtilLocal.MostrarNotificacion("Cotización 9500 guardada correctamente.");

            return(true);
        }
Exemple #36
0
 public void registrarVenta(Venta v)
 {
 }
Exemple #37
0
        private bool Completar9500()
        {
            // Se validan las partes
            if (!this.ctlComDetalle.Validar())
            {
                return(false);
            }

            //if (Util.ControlAlFrente(this.pnlCompletar) == this.ctlComDetalle)
            //{
            //}

            // Se verifica que se haya hecho el pago del anticipo
            Cotizacion9500 o9500 = this.ctlPartes.oCotizacion9500;

            if (!Datos.Exists <Venta>(c => c.VentaID == o9500.AnticipoVentaID &&
                                      (c.VentaEstatusID == Cat.VentasEstatus.Completada || c.VentaEstatusID == Cat.VentasEstatus.Cobrada)))
            {
                UtilLocal.MensajeAdvertencia("Al parecer no se ha realizado el pago correspondiente al Anticipo. No se puede continuar.");
                return(false);
            }

            // Se confirma la operación
            if (UtilLocal.MensajePregunta(string.Format("¿Estás seguro que deseas completar el 9500 con el folio {0}?\n\n{1}"
                                                        , this.ctlPartes.oCotizacion9500.Cotizacion9500ID, this.ctlPartes.o9500Sel["lisDescripcion"])) != DialogResult.Yes)
            {
                return(false);
            }

            // Se guardan los datos
            DateTime dAhora = DateTime.Now;

            // Se cancela la venta del anticipo

            /* Ya no. Ahora todo esto se hace al cobrar la venta final
             * oVenta.VentaEstatusID = Cat.VentasEstatus.Cancelada;
             * Datos.Guardar<Venta>(oVenta);
             * // Se genera una devolución de efectivo (si se realizó un pago) de la venta cancelada, pues se generará una nueva venta con el importe total
             * if (oVentaPago != null)
             *  VentasProc.GenerarDevolucionDeEfectivo(o9500.AnticipoVentaID.Valor(), o9500.Anticipo);
             */

            // Se genera la venta correspondiente al 9500
            // var o9500Detalle = General.GetListOf<Cotizacion9500Detalle>(q => q.Estatus && q.Cotizacion9500ID == oCotizacion9500.Cotizacion9500ID);
            var oCliente = Datos.GetEntity <Cliente>(q => q.ClienteID == o9500.ClienteID && q.Estatus);
            var oDetalle = this.ctlComDetalle.ProductosSel();
            var oVenta   = new Venta()
            {
                Fecha                 = dAhora,
                ClienteID             = o9500.ClienteID,
                VentaEstatusID        = Cat.VentasEstatus.Realizada,
                RealizoUsuarioID      = o9500.RealizoUsuarioID,
                ComisionistaClienteID = o9500.ComisionistaClienteID
            };
            var oVentaDetalle = new List <VentaDetalle>();

            foreach (var oParte in oDetalle)
            {
                // Se toma el precio de la tabla "PartePrecio", pues pudo haber sido cambiado por el encargado de Compras
                var     oPartePrecio = Datos.GetEntity <PartePrecio>(q => q.ParteID == oParte.ParteID);
                decimal mPrecio      = UtilDatos.PartePrecioDeVenta(oPartePrecio, oCliente.ListaDePrecios);
                // Se agrega la parte al detalle de la venta
                oVentaDetalle.Add(new VentaDetalle()
                {
                    ParteID           = oParte.ParteID,
                    Costo             = oPartePrecio.Costo.Valor(),
                    CostoConDescuento = (oPartePrecio.CostoConDescuento ?? oPartePrecio.Costo.Valor()),
                    Cantidad          = oParte.Cantidad,
                    PrecioUnitario    = UtilTheos.ObtenerPrecioSinIva(mPrecio, 3),
                    Iva = UtilTheos.ObtenerIvaDePrecio(mPrecio, 3)
                });
            }
            // Se guarda la venta
            Guardar.Venta(oVenta, oVentaDetalle);

            // Se modifica el dato de la venta correspondiente al 9500
            o9500.VentaID           = oVenta.VentaID;
            o9500.EstatusGenericoID = Cat.EstatusGenericos.PorCompletar;
            Datos.Guardar <Cotizacion9500>(o9500);

            // Se restaura
            this.ctlPartes.ComCliente = null;
            this.pnlEnTotales.Controls.Remove(this.pnlCompletar);
            this.pnlCompletar.Dispose();
            this.pnlCompletar = null;
            this.CambiarOpcion(eOpcion.Agregar);
            this.ctlPartes.tab9500.SelectedIndex = 0;

            // Se muestra una notifiación con el resultado
            UtilLocal.MostrarNotificacion("Cotización 9500 guardada correctamente.");

            // Se retorna falso para que no se quite la opción de 9500
            return(false);
        }
        private async void btnCobrar_Click(object sender, EventArgs e)
        {
            try
            {
                Venta Resultado = new Venta();

                int res;

                BindingList <FormaPago> ListaFormaPago = (BindingList <FormaPago>)GridFormaPago.DataSource;
                this.CleanErrors(errorProvider1, typeof(VentasViewModel));
                TotalVenta();
                if (ValidarPagos(ListaFormaPago))
                {
                    if (TotalFormaPago == Model.Total)
                    {
                        decimal EfectivoIngresado = ObtenerEfectivo(ListaFormaPago);
                        if (Model.Efectivo >= EfectivoIngresado)
                        {
                            Model.TablaFormaPago = ObtenerDatosTabla(ListaFormaPago);

                            if (EsAbono)
                            {
                                res = await Model.GuardarAbono(CurrentSession.IdCuentaUsuario);

                                Resultado.Resultado = res;
                            }
                            else
                            {
                                Resultado = await Model.GuardarVenta(CurrentSession.IdCuentaUsuario, CurrentSession.IdSucursal);
                            }
                            var idVenta = await Model.ObtenerVenta(CurrentSession.IdSucursal, CurrentSession.IdCuentaUsuario);

                            var ticket = await Model.ObtenerTicket(idVenta);

                            if (ticket != null)
                            {
                                ImprimirVenta IV = new ImprimirVenta(ticket);
                            }
                            if (Resultado.Resultado == 1)
                            {
                                pnlCambio.BringToFront();
                                CambioControl.Text = (Model.Efectivo - EfectivoIngresado).ToString("C2");
                                this.resultado     = true;
                            }
                            else
                            {
                                CIDMessageBox.ShowAlert(Messages.SystemName, Messages.ErrorMessage, TypeMessage.error);
                            }
                        }
                        else
                        {
                            errorProvider1.SetError(EfectivoControl, "Debe ingresar mas efectivo");
                        }
                    }
                    else
                    {
                        errorProvider1.SetError(ErrorControl, "La suma de las cantidades debe ser igua al total");
                    }
                }
                else
                {
                    errorProvider1.SetError(ErrorControl, "Agregue al menos una forma de pago");
                }
            }
            catch (Exception)
            {
                throw;
            }


            //this.Close();
        }
Exemple #39
0
        private bool Completar9500()
        {
            // Se validan las partes
            if (!this.ctlComDetalle.Validar())
                return false;

            //if (Util.ControlAlFrente(this.pnlCompletar) == this.ctlComDetalle)
            //{
            //}

            // Se verifica que se haya hecho el pago del anticipo
            Cotizacion9500 o9500 = this.ctlPartes.oCotizacion9500;
            if (!Datos.Exists<Venta>(c => c.VentaID == o9500.AnticipoVentaID
                && (c.VentaEstatusID == Cat.VentasEstatus.Completada || c.VentaEstatusID == Cat.VentasEstatus.Cobrada)))
            {
                UtilLocal.MensajeAdvertencia("Al parecer no se ha realizado el pago correspondiente al Anticipo. No se puede continuar.");
                return false;
            }

            // Se confirma la operación
            if (UtilLocal.MensajePregunta(string.Format("¿Estás seguro que deseas completar el 9500 con el folio {0}?\n\n{1}"
                , this.ctlPartes.oCotizacion9500.Cotizacion9500ID, this.ctlPartes.o9500Sel["lisDescripcion"])) != DialogResult.Yes)
                return false;

            // Se guardan los datos
            DateTime dAhora = DateTime.Now;

            // Se cancela la venta del anticipo
            /* Ya no. Ahora todo esto se hace al cobrar la venta final
            oVenta.VentaEstatusID = Cat.VentasEstatus.Cancelada;
            Datos.Guardar<Venta>(oVenta);
            // Se genera una devolución de efectivo (si se realizó un pago) de la venta cancelada, pues se generará una nueva venta con el importe total
            if (oVentaPago != null)
                VentasProc.GenerarDevolucionDeEfectivo(o9500.AnticipoVentaID.Valor(), o9500.Anticipo);
            */

            // Se genera la venta correspondiente al 9500
            // var o9500Detalle = General.GetListOf<Cotizacion9500Detalle>(q => q.Estatus && q.Cotizacion9500ID == oCotizacion9500.Cotizacion9500ID);
            var oCliente = Datos.GetEntity<Cliente>(q => q.ClienteID == o9500.ClienteID && q.Estatus);
            var oDetalle = this.ctlComDetalle.ProductosSel();
            var oVenta = new Venta()
            {
                Fecha = dAhora,
                ClienteID = o9500.ClienteID,
                VentaEstatusID = Cat.VentasEstatus.Realizada,
                RealizoUsuarioID = o9500.RealizoUsuarioID,
                ComisionistaClienteID = o9500.ComisionistaClienteID
            };
            var oVentaDetalle = new List<VentaDetalle>();
            foreach (var oParte in oDetalle)
            {
                // Se toma el precio de la tabla "PartePrecio", pues pudo haber sido cambiado por el encargado de Compras
                var oPartePrecio = Datos.GetEntity<PartePrecio>(q => q.ParteID == oParte.ParteID);
                decimal mPrecio = UtilDatos.PartePrecioDeVenta(oPartePrecio, oCliente.ListaDePrecios);
                // Se agrega la parte al detalle de la venta
                oVentaDetalle.Add(new VentaDetalle()
                {
                    ParteID = oParte.ParteID,
                    Costo = oPartePrecio.Costo.Valor(),
                    CostoConDescuento = (oPartePrecio.CostoConDescuento ?? oPartePrecio.Costo.Valor()),
                    Cantidad = oParte.Cantidad,
                    PrecioUnitario = UtilTheos.ObtenerPrecioSinIva(mPrecio, 3),
                    Iva = UtilTheos.ObtenerIvaDePrecio(mPrecio, 3)
                });
            }
            // Se guarda la venta
            Guardar.Venta(oVenta, oVentaDetalle);

            // Se modifica el dato de la venta correspondiente al 9500
            o9500.VentaID = oVenta.VentaID;
            o9500.EstatusGenericoID = Cat.EstatusGenericos.PorCompletar;
            Datos.Guardar<Cotizacion9500>(o9500);

            // Se restaura
            this.ctlPartes.ComCliente = null;
            this.pnlEnTotales.Controls.Remove(this.pnlCompletar);
            this.pnlCompletar.Dispose();
            this.pnlCompletar = null;
            this.CambiarOpcion(eOpcion.Agregar);
            this.ctlPartes.tab9500.SelectedIndex = 0;

            // Se muestra una notifiación con el resultado
            UtilLocal.MostrarNotificacion("Cotización 9500 guardada correctamente.");

            // Se retorna falso para que no se quite la opción de 9500
            return false;
        }
Exemple #40
0
 public Comprobante(Venta venta)
 {
     this.venta = venta;
 }
Exemple #41
0
 public void AgregarPagoVenta(Venta v, VentaPago vp)
 {
     db.cmd.CommandText = "INSERT INTO Pago(monto,idVenta,idModoPago) VALUES(@monto,@idVenta,@idModoPago)";
     db.cmd.Parameters.AddWithValue("@monto", vp.Monto);
     db.cmd.Parameters.AddWithValue("@idVenta", v.IdVenta);
     db.cmd.Parameters.AddWithValue("@idModoPago", vp.IdModoPago);
     try
     {
         if (tipo) db.conn.Open();
         db.cmd.ExecuteNonQuery();
         if (tipo) db.conn.Close();
         db.cmd.Parameters.Clear();
     }
     catch (SqlException e)
     {
         Console.WriteLine(e.Message);
         Console.WriteLine(e.StackTrace.ToString());
     }
 }
Exemple #42
0
        /// <summary>
        /// Método de instancia que genera un ticket de la venta en forma de txt
        /// </summary>
        private void GenerarTicket()
        {
            Venta <Producto> .Guardar(this.listaDeVentas);

            MessageBox.Show("Se generó un ticket con la venta realizada! El mismo se guarda en la ruta predeterminada((...)Entidades de WinForms\\bin\\Debug)");
        }
Exemple #43
0
        public int AnularVentaTienda(Venta v)
        {
            int k = 0;

            db.cmd.CommandText = "UPDATE Venta SET estado=0 WHERE idVenta = @idVenta";
            db.cmd.Parameters.AddWithValue("@idVenta", v.IdVenta);

            try
            {
                if (tipo) db.conn.Open();
                k = db.cmd.ExecuteNonQuery();
                db.cmd.Parameters.Clear();
                if (tipo) db.conn.Close();
            }
            catch (SqlException e)
            {
                MessageBox.Show(e.Message);
            }

            if (k != 0)
            {
                //devolver el detalle de la venta a la tienda
                DetalleVentaSQL dvsql = new DetalleVentaSQL(db);
                List<DetalleVenta> detalle = dvsql.BuscarTodos(v.IdVenta);
                foreach (DetalleVenta dv in detalle)
                {
                    descontarDeSector(v, dv, 2);
                }
            }

            return k;
        }
Exemple #44
0
 public bool find(Venta objVenta)
 {
     return(objVentaDao.find(objVenta));
 }
Exemple #45
0
        public Venta buscarVentaPorId(int idVenta)
        {
            Venta v = null;

            db.cmd.CommandText = "SELECT * FROM Venta WHERE idVenta=@idVenta ";
            db.cmd.Parameters.AddWithValue("@idVenta", idVenta);

            try
            {
                db.conn.Open();
                SqlDataReader reader;
                reader = db.cmd.ExecuteReader();

                if (reader.Read())
                {
                    v = new Venta();

                    v.IdVenta = Int32.Parse(reader["idVenta"].ToString());
                    v.TipoDocPago = reader["tipoDocPago"].ToString();
                    v.Monto = Double.Parse(reader["monto"].ToString());
                    v.Descuento = Double.Parse(reader["descuento"].ToString());
                    v.Igv = Double.Parse(reader["IGV"].ToString());
                    v.PtosGanados = Int32.Parse(reader["ptosGanados"].ToString());
                    v.FechaReg = DateTime.Parse(reader["fechaReg"].ToString());
                    v.Estado = Int32.Parse(reader["estado"].ToString());
                    v.IdUsuario = Int32.Parse(reader["idUsuario"].ToString());
                    v.IdCliente = Int32.Parse(reader["idCliente"].ToString());
                    v.TipoVenta = reader["tipoDocPago"].ToString();
                    v.CodTarjeta = Int32.Parse(reader["codTarjeta"].ToString());

                }
                else
                    db.conn.Close();
                db.cmd.Parameters.Clear();

            }
            catch (Exception e)
            {
                MessageBox.Show(e.StackTrace.ToString());
            }

            return v;
        }
 public Factura(Venta venta, TipoFactura tipoDeFactura) : base(venta)
 {
     this.tipoFactura      = tipoDeFactura;
     this.fechaVencimiento = DateTime.Now.AddDays(15);
 }
Exemple #47
0
        private void descontarDeSector(Venta v, DetalleVenta dv, int tipoDescuento=1)
        {
            int idTienda = new TiendaSQL().obtenerTienda(v.IdUsuario);

            db.cmd.CommandText = "SELECT * FROM Almacen WHERE idTienda=@idTienda AND tipo=@tipo";
            db.cmd.Parameters.AddWithValue("@idTienda", idTienda);
            db.cmd.Parameters.AddWithValue("@tipo", 2);
            SqlDataReader rs2 = db.cmd.ExecuteReader();
            rs2.Read();
            int idAlmacen = Convert.ToInt32(rs2["idAlmacen"].ToString());
            rs2.Close();
            db.cmd.Parameters.Clear();

            if (tipoDescuento == 2) // cuando se tiene que reponer el stock
            {
                db.cmd.CommandText = "UPDATE Sector SET cantidad=cantidad+@cantidad WHERE idAlmacen=@idAlmacen AND idProducto=@idProducto; UPDATE ProductoxTienda SET stockActual=stockActual+@cantidad WHERE idTienda=@idTienda AND idProducto=@idProducto";
            }
            else
            {
                db.cmd.CommandText = "UPDATE Sector SET cantidad=cantidad-@cantidad WHERE idAlmacen=@idAlmacen AND idProducto=@idProducto; UPDATE ProductoxTienda SET stockActual=stockActual-@cantidad WHERE idTienda=@idTienda AND idProducto=@idProducto";
            }
            db.cmd.Parameters.AddWithValue("@cantidad", dv.Cantidad);
            db.cmd.Parameters.AddWithValue("@idAlmacen", idAlmacen);
            db.cmd.Parameters.AddWithValue("@idProducto", dv.IdProducto);
            db.cmd.Parameters.AddWithValue("@idTienda", idTienda);
            try
            {
                if (tipo) db.conn.Open();
                db.cmd.ExecuteNonQuery();
                db.cmd.Parameters.Clear();
                if (tipo) db.conn.Close();
            }
            catch (SqlException e)
            {
                MessageBox.Show(e.Message);
            }
        }
 public Factura(Venta venta, int diasParaVencimiento, TipoFactura tipoDeFactura) : this(venta, tipoDeFactura)
 {
     this.fechaVencimiento = DateTime.Now.AddDays(diasParaVencimiento);
 }
Exemple #49
0
        public int Agregar(Venta v)
        {
            int k = 0;

            db.cmd.CommandText = "INSERT INTO Venta(monto,descuento,IGV,ptosGanados,estado,idCliente,tipoVenta,fechaReg,tipoDocPago,idUsuario,codTarjeta)" +
                                  "OUTPUT INSERTED.idVenta VALUES (@monto,@descuento,@IGV,@ptsGanados,@estado,@idCliente,@tipoVenta,@fechaReg,@tipoDocPago,@idUsuario,@codTarjeta)";
            //db.cmd.Parameters.AddWithValue("@numDocPago", v.NumDocPago);
            db.cmd.Parameters.AddWithValue("@tipoDocPago", v.TipoDocPago);
            db.cmd.Parameters.AddWithValue("@monto", v.Monto);
            db.cmd.Parameters.AddWithValue("@descuento", v.Descuento);
            db.cmd.Parameters.AddWithValue("@IGV", v.Igv);
            db.cmd.Parameters.AddWithValue("@ptsGanados", v.PtosGanados);
            db.cmd.Parameters.AddWithValue("@fechaReg", v.FechaReg);
            db.cmd.Parameters.AddWithValue("@estado", v.Estado);
            db.cmd.Parameters.AddWithValue("@idUsuario", v.IdUsuario);
            db.cmd.Parameters.AddWithValue("@idCliente", v.IdCliente);
            db.cmd.Parameters.AddWithValue("@tipoVenta", v.TipoVenta);
            db.cmd.Parameters.AddWithValue("@codTarjeta", v.CodTarjeta);

            try
            {
                if (tipo) db.conn.Open();
                k = (int)db.cmd.ExecuteScalar();
                v.IdVenta = k;
                if (tipo) db.conn.Close();
                db.cmd.Parameters.Clear();

                //guardar el detalle de la venta
                DetalleVentaSQL dvm = new DetalleVentaSQL(db);
                foreach (DetalleVenta dv in v.LstDetalle)
                {
                    dvm.Agregar(v,dv);
                    descontarDeSector(v,dv);
                }

                foreach (VentaPago vp in v.LstPagos)
                {
                    AgregarPagoVenta(v, vp);
                }
                //agregar numDocPagoProducto
                v.NumDocPago = SacaNumDocPago(v,1);
                actualizaNumDocProductos(v);

                foreach (VentaPago vp in v.LstPagos)
                {
                    AgregarPagoVenta(v, vp);
                }

                if (v.LstDetalleServicio.Count() > 0)
                {
                    foreach (DetalleVentaServicio item in v.LstDetalleServicio)
                    {
                        dvm.AgregarServicios(v, item);
                    }
                    //agregar numDocPagoServicio
                    v.NumDocPagoServicio = SacaNumDocPago(v,2);
                    actualizaNumDocServicios(v);
                }

            }
            catch (SqlException e)
            {
                MessageBox.Show(e.StackTrace.ToString());
            }

            return k;
        }
 public ActionResult SeleccionarPlazo(Venta venta)
 {
     ViewBag.PlazoMaximo = db.Configuracion.FirstOrDefault().PlazoMaximo;
     return(View("SeleccionarPlazo", venta));
 }
Exemple #51
0
 private string SacaNumDocPago(Venta v,int tipo)
 {
     return numero(v, tipo).ToString();
 }
Exemple #52
0
        private void btnVenta_Click(object sender, EventArgs e)
        {
            Venta vt = new Venta();

            vt.Show();
        }
        public string formatoBP(Venta v)
        {
            double valorVenta = 0;
            double precioReal;
            string content =
                @"<html>
                    <body>
                        <table>
                            <tr>
                                <td>
                                    <span style='text-align: center; text-decoration: underline; font-size: 1em; font-weight: bold'>MadeInHouse S.A.</span><br>
                                    <span style='text-align: center; font-size: 0.5em'>
                                        Av. Priority N° xxx - San Miguel - Lima<br>
                                        Telf: 999-9999<br>
                                        www.MadeInHouse.com Email: [email protected]
                                    </span>
                                </td>
                                <td></td>
                                <td border=1>
                                    <span style='text-align: center; font-size: 1em'>
                                        R.U.C. N° XXXXXXXXXXX<br>
                                        BOLETA<br>
                                        001 - N° " + v.NumDocPago.ToString().PadLeft(10,'0');
            content += "</span>" +
                                "</td>" +
                            "</tr>" +
                        "</table>" +
                        "<br>" +
                        "<table width=100%>" +
                            "<tr>" +
                                "<td width=200 border=1>";
            if (v.IdCliente != -1)
            {
                ClienteSQL cSQL = new ClienteSQL();
                Cliente cli = cSQL.BuscarClienteByIdCliente(v.IdCliente);
                content += "<span style='font-size: 0.5em'>" +
                                        "Señor (es): " + cli.ApePaterno + " " + cli.ApeMaterno + ", " + cli.Nombre + "<br>" +
                                        "Dirección : " + cli.Direccion + "<br>" +
                                    "</span>";
            }
            else
            {
                content += "<span style='font-size: 0.5em'>" +
                                        "DNI: " + v.dni + "<br>" +
                                    "</span>";
            }
            content += "</td>" +
                                "<td width=100>" +
                                    "<table border=1 width=150 align=center>" +
                                        "<tr><td><span style='text-align: center; font-size: 0.5em'>FECHA DE EMISIÓN</span></td></tr>" +
                                        "<tr><td><span style='text-align: center; font-size: 0.5em'>" + DateTime.Now.ToString("dd/MM/yyyy") + "</span></td></tr>" +
                                    "</table>" +
                                "</td>" +
                            "</tr>" +
                        "</table>" +
                        "<br>" +
                        "<table border=1 height=700>" +
                            "<tr>" +
                                "<th><span style='font-size: 0.5em'>CODIGO</span></th>" +
                                "<th><span style='font-size: 0.5em'>CANTIDAD</span></th>" +
                                "<th><span style='font-size: 0.5em'>DESCRIPCION</span></th>" +
                                "<th><span style='font-size: 0.5em'>PRECIO (S/.)</span></th>" +
                                "<th><span style='font-size: 0.5em'>SUB TOTAL (S/.)</span></th>" +
                            "</tr>";
            if (v.LstDetalle != null)
            {
                foreach (DetalleVenta dv in v.LstDetalle)
                {
                    content += "<tr>" +
                                "<td><span style='font-size: 0.5em'>" + dv.CodProducto + "</span></th>" +
                                "<td><span style='font-size: 0.5em'>" + dv.Cantidad + "</span></th>" +
                                "<td><span style='font-size: 0.5em'>" + dv.Descripcion + "</span></th>" +
                                "<td><span style='font-size: 0.5em'>" + Math.Round(precioReal = (dv.Precio / 1.18), 2) + "</span></th>" +
                                "<td><span style='font-size: 0.5em'>" + Math.Round(valorVenta += dv.Cantidad * precioReal, 2) + "</span></th>" +
                                "</tr>";
                }
            }
            content += "</table>" +
                        "<br>" +
                        "<table border=1>" +
                            "<tr>" +
                                "<td><span style='font-size: 0.5em'>VALOR VENTA (S/.)</span></td>" +
                                "<td><span style='font-size: 0.5em'>" + Math.Round(valorVenta, 2) + "</span></td>" +
                                "<td><span style='font-size: 0.5em'>IGV (S/.)</span></td>" +
                                "<td><span style='font-size: 0.5em'>" + Math.Round(0.18 * valorVenta, 2) + "</span></td>" +
                                "<td><span style='font-size: 0.5em'>TOTAL A PAGAR (S/.)</span></td>" +
                                "<td><span style='font-size: 0.5em'>" + Math.Round(1.18 * valorVenta, 2) + "</span></td>" +
                            "</tr>" +
                        "</table>" +
                    "</body>" +
                "</html>";

            return content;
        }
Exemple #54
0
        public void ImprimirTicket()
        {
            try
            {
                switch (TipoTicket)
                {
                case 1:
                case 2: Venta Aux = new Venta {
                        IDVenta = this.ID, Conexion = Comun.Conexion
                };
                    Ticket_Negocio TN = new Ticket_Negocio();
                    TN.ObtenerDetalleVenta(Aux);
                    if (Aux.Completado)
                    {
                        this.ResumenVenta = Aux;
                    }
                    break;

                case 3: Caja DatosAuxCaja = new Caja {
                        IDCaja = this.IDCaja, Conexion = Comun.Conexion, IDUsuario = Comun.IDUsuario
                };
                    Caja_Negocio CN = new Caja_Negocio();
                    CN.ObtenerReporteTicketCaja(DatosAuxCaja);
                    if (DatosAuxCaja.Completado)
                    {
                        this.ResumenCaja = DatosAuxCaja;
                    }
                    else
                    {
                        return;
                    }
                    break;

                case 4: Garantia DatosAuxGarantia = new Garantia {
                        IDGarantia = this.ID, Conexion = Comun.Conexion
                };
                    Garantia_Negocio GN = new Garantia_Negocio();
                    DatosAuxGarantia = GN.ObtenerDetalleGarantia(DatosAuxGarantia);
                    if (DatosAuxGarantia.Completado)
                    {
                        this.ResumenGarantia = DatosAuxGarantia;
                    }
                    else
                    {
                        return;
                    }
                    break;

                default: ResumenVenta = new Venta();
                    break;
                }
                for (int i = 0; i < TotalCopias; i++)
                {
                    PositionY = 10;
                    this.ImpresionTicket();
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
 public void GenerarPDFFacturaServicios(Venta v)
 {
     string pathString = Environment.CurrentDirectory + @"\Archivos\DocumentosPago";
     System.IO.Directory.CreateDirectory(pathString);
     GenerarPDF pdf = new GenerarPDF();
     string body = formatoFS(v).ToString();
     string date = DateTime.Now.ToString("yyyyMMddHHmmss");
     pdf.createPDF(body, "\\Archivos\\DocumentosPago\\FS" + date + ".pdf", true);
 }
Exemple #56
0
        private void btnGuardar_Click(object sender, RoutedEventArgs e)
        {
            if (ValidarVenta())
            {
                using (var bd = new EmpeñosDataContext())
                {
                    bool insertando = false;

                    var venta = bd.Ventas.SingleOrDefault(v => v.Código == txtCódigo.AsInt);

                    if (venta == null)
                    {
                        venta = new Venta {
                            Código = txtCódigo.AsInt
                        };
                        bd.Ventas.InsertOnSubmit(venta);
                        insertando = true;
                    }

                    venta.Código_Cliente = ((KeyValuePair <string, string>)txtClientes.SelectedItem).Key;
                    venta.Fecha          = dtpFecha.SelectedDate.Value;
                    venta.Notas          = txtNotasVentas.Text;
                    venta.Estado         = Convert.ToByte(cmbEstado.SelectedIndex);

                    if (!insertando)
                    {
                        bd.VentasDetalles.DeleteAllOnSubmit(venta.VentasDetalles);
                        bd.VentasAbonos.DeleteAllOnSubmit(venta.VentasAbonos);
                    }

                    for (int cont = 0; cont < listaArtículos.Count; cont++)
                    {
                        Artículo art = bd.Artículos.SingleOrDefault(a => a.Código == listaArtículos[cont].Código);

                        if (art != null)
                        {
                            art.Precio = listaArtículos[cont].Precio;
                            art.Estado = (byte)EstadosActículos.Vendido;

                            venta.VentasDetalles.Add(new VentasDetalle {
                                Código_Venta = venta.Código, Código_Artículo = art.Código
                            });
                        }
                        else
                        {
                            MessageBox.Show("El artículo " + listaArtículos[cont].Código + " ya no existe en la base de datos");
                            return;
                        }
                    }

                    int cuota = 0;
                    venta.VentasAbonos.Add(new VentasAbono {
                        Cuota = ++cuota, Fecha = DateTime.Now, Monto = txtTotalMontoVenta.AsInt
                    });
                    venta.Impuesto = txtIVA.AsDecimal;
                    venta.Total    = (int)txtMontoAPagar.AsDecimal;

                    bd.SubmitChanges();

                    this.DialogResult = true;
                }
            }
        }
Exemple #57
0
        public bool Ejecutar()
        {
            // Se verifica si ya se hizo el cierre de caja
            if (UtilDatos.VerCierreDeDaja())
            {
                UtilLocal.MensajeAdvertencia("Ya se hizo el Corte de Caja. No se puede continuar.");
                return false;
            }

            // Se valida el cliente
            if (this.oControlVentas.Cliente == null)
            {
                UtilLocal.MensajeAdvertencia("No hay ningún cliente seleccionado o cliente inválido.");
                return false;
            }

            // Se validan los productos
            if (!this.oControlVentas.Validar())
                return false;

            // Se validan si hay una parte de cobro de diferencia de casco, sea la única en la venta
            var oVentaDet = this.oControlVentas.GenerarVentaDetalle();
            foreach (var oReg in oVentaDet)
            {
                if (Datos.Exists<Parte>(c => c.ParteID == oReg.ParteID && c.EsCascoPara > 0) || oReg.ParteID == Cat.Partes.DiferenciaDeCascos)
                {
                    if (oVentaDet.Count > 1)
                    {
                        UtilLocal.MensajeAdvertencia("La venta contiene un artículo Casco, por lo cual no puede contener otros artículos.");
                        return false;
                    }
                }
            }

            // Se verifica si se debe mostrar la opción de cobro
            if (!this.oControlVentas.CobroAlFrente)
            {
                if (this.oControlVentas.ctlCobro == null)
                {
                    this.oControlVentas.ctlCobro = new Cobro() { Dock = DockStyle.Fill };
                    this.oControlVentas.pnlContenidoDetalle.Controls.Add(this.oControlVentas.ctlCobro);

                    // Se configura el evento Click para el botón de cotización
                    this.oControlVentas.ctlCobro.Cotizacion_Click += new EventHandler((s, e) =>
                    {
                        this.GenerarCotizacion();
                    });
                }
                this.oControlVentas.ctlCobro.CambiarCliente(this.oControlVentas.Cliente.ClienteID);
                this.oControlVentas.ctlCobro.Total = this.oControlVentas.Total;

                // Sólo se permite cambiar el vendedor, no cobrar
                this.oControlVentas.ctlCobro.HabilitarTipoDePago = false;
                this.oControlVentas.ctlCobro.MostrarFacturar = false;
                this.oControlVentas.ctlCobro.MostrarFacturarDividir = false;
                this.oControlVentas.ctlCobro.HabilitarCotizacion = true;
                this.oControlVentas.ctlCobro.HabilitarFormasDePago = false;
                this.oControlVentas.ctlCobro.Total = 0;

                this.oControlVentas.ctlCobro.BringToFront();
                return false;
            }

            // Se verifica si es cotización
            if (this.oControlVentas.EsCotizacion)
            {
                UtilLocal.MensajeAdvertencia("No se puede realizar la venta porque esta es sólo una cotización.");
                return false;
            }

            // Se intenta completar
            if (!this.oControlVentas.ctlCobro.CompletarCobro())
                return false;
            decimal mImportePato = Util.Decimal(Config.Valor("Ventas.ImportePato"));
            bool esPato = false;
            if (this.oControlVentas.Total >= mImportePato)
            {
                var hunt = new Duck(UtilLocal.RutaRecursos() + "huntduck2.wmv");
                hunt.Show(Principal.Instance);
                esPato = true;
            } else      // Se muestra la ventana de "Cargando.."
                Cargando.Mostrar();

            // Se procede a guardar la venta
            DateTime dAhora = DateTime.Now;
            // Se crea el objeto de la nueva venta
            Venta oVenta = new Venta()
            {
                Fecha = dAhora,
                ClienteID = this.oControlVentas.Cliente.ClienteID,
                VentaEstatusID = Cat.VentasEstatus.Realizada,
                RealizoUsuarioID = this.oControlVentas.ctlCobro.VendodorID,
                RepartidorID = (this.oControlVentas.ctlCobro.RepartidorID > 0 ? (int?)this.oControlVentas.ctlCobro.RepartidorID : null),
                ComisionistaClienteID = this.oControlVentas.ctlCobro.ComisionistaID,
                ClienteVehiculoID = this.oControlVentas.ctlCobro.ClienteVehiculoID,
                Kilometraje = this.oControlVentas.ctlCobro.Kilometraje
            };
            // Se manda a guardar la venta
            var oVentaDetalle = this.oControlVentas.GenerarVentaDetalle();
            Guardar.Venta(oVenta, oVentaDetalle);

            // Se agrega al Kardex
            // ** Se hace al momento de cobrar :\

            // Se generan los datos de pago (no en la primer versión)
            /* var oPago = this.ctlCobro.GenerarPago();
            oPago.VentaID = oVenta.VentaID;
            oPago.Fecha = dAhora;
            var oPagoDetalle = this.ctlCobro.GenerarPagoDetalle();
            // Se mandan guardar los datos del pago
            Guardar.VentaPago(oPago, oPagoDetalle);
            */

            // Se imprimen los tickets correspondientes
            // .. aquí no hay tickets, sino hasta que se paga, creo

            // Se guarda la leyenda, para usarla en el ticket, después de cobrar
            if (this.oControlVentas.ctlCobro.Leyenda != "")
                VentasProc.AgregarLeyenda(oVenta.VentaID, this.oControlVentas.ctlCobro.Leyenda);

            // Se hace verificación para control de cascos
            foreach (var oReg in oVentaDetalle)
            {
                if (Datos.Exists<Parte>(c => c.ParteID == oReg.ParteID && c.RequiereCascoDe > 0 && c.Estatus))
                {
                    // Se agrega el registro para casco, uno por cada casco según la cantidad
                    for (int i = 0; i < oReg.Cantidad; i++)
                    {
                        var oCascoReg = new CascoRegistro()
                        {
                            Fecha = dAhora,
                            VentaID = oVenta.VentaID,
                            ParteID = oReg.ParteID
                        };
                        Datos.Guardar<CascoRegistro>(oCascoReg);
                    }
                }
            }

            // Se guardan los datos de la aplicación, si hubiera
            if (this.oControlVentas.oAplicaciones != null && this.oControlVentas.oAplicaciones.Count > 0)
            {
                foreach (var oReg in this.oControlVentas.oAplicaciones)
                {
                    var oRegVentaD = oVentaDetalle.FirstOrDefault(c => c.ParteID == oReg.ParteID);
                    oReg.VentaID = oVenta.VentaID;
                    oReg.Cantidad = oRegVentaD.Cantidad;
                    Datos.Guardar<VentaParteAplicacion>(oReg);
                }
            }

            // Se cierra la ventana de "Cargando.."
            if(!esPato)
                Cargando.Cerrar();

            // Se muestra notificación y se limpia el formulario
            UtilLocal.MostrarNotificacion("La Venta ha sido guardada correctamente.");

            return true;
        }
        public Venta BuscarVenta(string docPago = null)
        {
            Venta vent = null;
            int posDNI, posIdVenta;
            string where = "";

            if (!String.IsNullOrEmpty(docPago))
            {
                where += " WHERE (v.numDocPagoProducto = UPPER(@docPago) OR v.numDocPagoServicio = UPPER(@docPago)) ";
                db.cmd.Parameters.Add(new SqlParameter("docPago", docPago));

                db.cmd.CommandText = "SELECT * FROM Venta v " + where;

                if (db.cmd.Transaction == null) db.conn.Open();
                SqlDataReader reader = db.cmd.ExecuteReader();

                if (reader.Read())
                {
                    if (vent == null) vent = new Venta();
                    posDNI = reader.GetOrdinal("dni");
                    posIdVenta = reader.GetOrdinal("idVenta");
                    vent.IdVenta = reader.IsDBNull(posIdVenta) ? -1 : reader.GetInt32(posIdVenta);
                    vent.dni = reader.IsDBNull(posDNI) ? null : reader.GetString(posDNI);
                }

                db.cmd.Parameters.Clear();
                if (db.cmd.Transaction == null) db.conn.Close();
            }
            return vent;
        }
Exemple #59
0
        public List<Fichaje> GetFichajePorNroOrden(Venta.Orden iOrden)
        {
            List<Fichaje> fichaje = new List<Fichaje>();
            try
            {
                DataSet data = new DataSet();

                this.Conexion.NombrePaquete = "administra_detallefichaje";
                this.Conexion.QuerySQL = "getfichajepororden";

                this.Conexion.SetValorParametroInput("i_orden", iOrden.Id);

                this.Conexion.ExecuteProcedure(out data);

                this.Conexion.ValidaRespuesta("o_codigo", "o_mensaje");

                if (!Funcion.IsDataSetEmpty(data))
                    if (!Funcion.IsDataTableEmpty(data.Tables[0]))
                    {
                        data.Tables[0].Columns["idorden"].ColumnName = "Orden.Id";
                        data.Tables[0].Columns["idfichador"].ColumnName = "Trabajador.Id";
                        data.Tables[0].Columns["nombretrabajador"].ColumnName = "Trabajador.Nombres";
                        data.Tables[0].Columns["fechaproceso"].ColumnName = "AuditoriaSistema.FechaSistema";
                        data.Tables[0].Columns["monto"].ColumnName = "Monto";
                        data.Tables[0].Columns["estado"].ColumnName = "Estado";

                        fichaje = Funcion.ConvertToList<Fichaje>(data.Tables[0]);
                    }
            }
            catch (Exception)
            {
                throw;
            }
            return fichaje;
        }
    public void CrearVenta()
    {
        Console.WriteLine("= Creando Venta =");
        Console.WriteLine("");

        Console.WriteLine("Ingrese el codigo del cliente: ");
        string codigoCliente = Console.ReadLine();

        Cliente cliente = ListadeClientes.Find(c => c.Codigo.ToString() == codigoCliente);

        if (cliente == null)
        {
            Console.WriteLine("Cliente no encontrado");
            Console.ReadLine();
            return;
        }
        else
        {
            Console.WriteLine("Cliente: " + cliente.Nombre);
            Console.WriteLine("");
        }

        Console.WriteLine("Ingrese el codigo del vendedor: ");
        string codigoVendedor = Console.ReadLine();

        Vendedor vendedor = ListadeVendedores.Find(v => v.Codigo.ToString() == codigoVendedor);

        if (vendedor == null)
        {
            Console.WriteLine("Vendedor no encontrado");
            Console.ReadLine();
            return;
        }
        else
        {
            Console.WriteLine("Vendedor: " + vendedor.Nombre);
            Console.WriteLine("");
        }

        int nuevoCodigo = ListaVentas.Count + 1;

        Venta nuevaVenta = new Venta(nuevoCodigo, DateTime.Now, "San Pedro Sula" + nuevoCodigo, cliente, vendedor);

        ListaVentas.Add(nuevaVenta);

        while (true)
        {
            Console.WriteLine("Ingrese el producto: ");
            string   codigoProducto = Console.ReadLine();
            Producto producto       = ListadeProductos.Find(p => p.Codigo.ToString() == codigoProducto);
            if (producto == null)
            {
                Console.WriteLine("Producto no encontrado");
                Console.ReadLine();
            }
            else
            {
                Console.WriteLine("Producto agregado: " + producto.Descripcion + " con precio de: " + producto.Precio);
                nuevaVenta.AgregarProducto(producto);
            }

            Console.WriteLine("Desea continuar? s/n");
            string continuar = Console.ReadLine();
            if (continuar.ToLower() == "n")
            {
                break;
            }
        }

        Console.WriteLine("SubTotal de la venta es de: " + nuevaVenta.SubTotal);

        Console.WriteLine("Impuesto de la venta es de: " + nuevaVenta.Impuesto);

        Console.WriteLine("Total de la venta es de: " + nuevaVenta.Total);
        Console.ReadLine();
    }