/// <summary>
 /// Metodo que detecta si existe un archivo de ordenes de compra y de ser asi genera las ventas pendientes correspondientes en la tabla Venta de la base Distribuidora
 /// </summary>
 public void CargarVentasPendientes()
 {
     //Lee el archivo xml con las ordenes de compra externas
     if (Distribuidora.Leer())
     {
         //Genera las ventas pendientes en base a las ordenes
         Distribuidora.GenerarVentasPendientes(Distribuidora.listaDeOrdenesDeCompra);
         //Actualiza la lista de ventas con las nuevas ventas
         Distribuidora.listaDeVentas = HelperBD.TraerVentas();
         //Carga las nuevas ventas pendientes en la cola de ventas pendientes
         Distribuidora.EncolarVentasPendientes();
         dgvVentasPendientes.DataSource = null;
         dgvVentasPendientes.DataSource = Distribuidora.colaVentasPendientes.ToArray();
     }
     else
     {
         //Si el archivo no existe informa que no hay ventas externas para procesar
         lblmensajeventas.Text = "No hay ventas externas para procesar";
     }
 }
Exemple #2
0
        private Distribuidora CarregarDistribuidoraDoForm()
        {
            Distribuidora p = new Distribuidora();

            try
            {
                String cnpj = text_cnpj.Text.Replace(".", "").Replace(".", "");
                p.cnpj   = Convert.ToInt32(cnpj);
                p.nome   = text_nome.Text;
                p.cidade = text_cidade.Text;
                p.estado = text_estado.Text;
                string valor = text_valor.Text.Replace(".", "").Replace(".", "");
                p.valor = Convert.ToInt32(valor);
            }
            catch (Exception ex)
            {
                MessageBox.Show("ERRO: " + ex.Message);
            }

            return(p);
        }
Exemple #3
0
        public Boolean AlterarNoBD(Distribuidora _f)
        {
            bool reultado = false;

            try
            {
                String SQL = String.Format("UPDATE Distribuidora SET cnpj = {0}, nome = '{1}', cidade = '{2}', estado = '{3}' , valor = '{4}'  WHERE cnpj = {0};",


                                           // + "WHERE codigo = {4};",
                                           _f.cnpj,
                                           _f.nome,
                                           _f.cidade,
                                           _f.estado,
                                           _f.valor);



                // "UPDATE cliente SET id = {0}, nome = '{1}', tel = '{2}'  WHERE id = {0};",

                //string SQL = String.Format("UPDATE Produto SET nome = '{0}',valor'{1}',categoria'{2}',deposito'{3}' WHERE codigo = {4}",
                // f.codigo,f.nome,f.valor,f.categoria,f.deposito);


                int linhasAfetadas = BD.ExecutarIDU(SQL);

                if (linhasAfetadas > 0)
                {
                    resultado = true;
                }

                //return BD.ExecutarIDU(SQL);
            }
            catch (Exception ex)
            {
                throw new Exception("ERRO AO ALTERAR Produto NO BD: " + ex.Message);
            }
            return(reultado);
        }
 /// <summary>
 /// Metodo que maneja el evento click del control btnAceptar. Este evento genera la carga de una nueva venta
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void btnAceptar_Click(object sender, EventArgs e)
 {
     try
     {
         //Carga los datos de entrada en variables auxiliares realizando las validaciones correspondientes
         Tienda   auxtiendaSeleccionada   = (Tienda)cmbListatiendas.SelectedItem;
         Articulo auxArticuloSeleccionado = (Articulo)cmbListaArticulos.SelectedItem;
         Validaciones.validarEntradaCantidad(txtCantidad.Text);
         int auxCantidad = int.Parse(txtCantidad.Text);
         //Confirma el stock disponible para el articulo seleccionado
         Distribuidora.ConfirmarStock(auxArticuloSeleccionado.IdArticulo, auxCantidad);
         //Calcula el monto de la venta
         float auxmonto = Distribuidora.CalcularMontoVenta(auxCantidad, auxArticuloSeleccionado.PrecioUnitario);
         //Genera la nueva venta. Las ventas directas se generan con estado Conforme
         Venta nuevaVenta = HelperBD.GenerarVenta(auxtiendaSeleccionada.IdTienda, auxArticuloSeleccionado.IdArticulo, auxCantidad, auxmonto, Venta.EEstadoVenta.Conforme.ToString());
         auxArticuloSeleccionado.Cantidad = auxArticuloSeleccionado.Cantidad - auxCantidad;
         HelperBD.ActualizarStockArticulo(auxArticuloSeleccionado);
         //Genera un ticket de venta con los datos de la venta. (Tema Archivos)
         Distribuidora.GenerarTicketVenta(nuevaVenta, auxtiendaSeleccionada);
         MessageBox.Show(String.Concat("Venta realizada con exito!\n Monto Total: ", auxmonto.ToString()));
         DialogResult = DialogResult.OK;
     }
     catch (ImputException ex)
     {
         MessageBox.Show(ex.Message);
     }
     catch (StockException ex)
     {
         MessageBox.Show(ex.Message);
     }
     catch (NullReferenceException)
     {
         MessageBox.Show("Seleccione correctamente la tienda y el articulo");
     }
     catch (Exception)
     {
         MessageBox.Show("Ha ocurrido un error. Verifique los datos");
     }
 }
Exemple #5
0
        private void btnSalvar_Click(object sender, EventArgs e)
        {
            try
            {
                Distribuidora p = CarregarDistribuidoraDoForm();

                Distribuidoractrl control = new Distribuidoractrl();


                if ((bool)control.BD('i', p))
                {
                    MessageBox.Show("Cadastro efetuado com sucesso!!!");
                }
                else
                {
                    MessageBox.Show("Cadastro não efetuado");
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Erro:" + ex.Message);
            }
        }
Exemple #6
0
        private void btnGuardar_Click(object sender, EventArgs e)
        {
            string nombre    = this.txtBoxNombreDistribuidora.Text.ToUpper();
            string direccion = this.txtBoxDireccion.Text.ToUpper();
            string telefono  = this.txtBoxTelefono.Text;
            string categoria = this.txtBoxCategoria.Text.ToUpper();

            if (nombre == "" || telefono == "")
            {
                MessageBox.Show("DEBE INGRESAR TODOS LOS ESPACIOS OBLIGADOS");
                return;
            }

            DialogResult result = MessageBox.Show("¿SEGURO QUE DESEA INSERTAR DISTRIBUIDORA?", "INSERTAR DISTRIBUIDORA", MessageBoxButtons.YesNo);

            if (result == DialogResult.Yes)
            {
                distribuidora = new Distribuidora(-1, nombre, direccion, telefono, categoria);
                bd.insertarDistribuidora(distribuidora);
                cargarDatos();
                limpiar();
                MessageBox.Show("DISTRIBUIDORA INSERTADA EXITOSAMENTE");
            }
        }
Exemple #7
0
        public List <Distribuidora> TraerDatos2()
        {
            List <Distribuidora> listaDatos = new List <Distribuidora>();

            Distribuidora d1 = new Distribuidora()
            {
                Id        = 1,
                Provincia = "Buenos Aires",
                Nombre    = "Hola",
                Direccion = "Av lola 2211"
            };

            listaDatos.Add(d1);

            d1 = new Distribuidora()
            {
                Id        = 2,
                Provincia = "Buenos Aires",
                Nombre    = "REFRES NOW S.A",
                Direccion = "Brig. Juan M. de Rosas 25150"
            };
            listaDatos.Add(d1);
            return(listaDatos);
        }
Exemple #8
0
 public FormDistribuidora(Distribuidora d)
 {
     InitializeComponent();
     distribuidora = d;
 }
Exemple #9
0
        //
        // GET: /Distribuidora/Delete/5

        public ActionResult Delete(int id)
        {
            Distribuidora distribuidora = db.Distribuidoras.Find(id);

            return(View(distribuidora));
        }
Exemple #10
0
        //
        // GET: /Distribuidora/Details/5

        public ViewResult Details(int id)
        {
            Distribuidora distribuidora = db.Distribuidoras.Find(id);

            return(View(distribuidora));
        }
Exemple #11
0
 private async Task Comercios(Distribuidora DistribuidorSeleccionado)
 {
     await Navigation.PushAsync(new ComercioPage(DistribuidorSeleccionado));
 }
Exemple #12
0
        static void Main(string[] args)
        {
            try
            {
                //Consultas a la base de datos para cargar listas (tema Bases de Datos)
                Console.WriteLine("------------------------------------------------------");
                Console.WriteLine("Probando traer la lista de Tiendas de la Base de Datos");
                Distribuidora.listaDeTiendas = HelperBD.TraerTiendas();
                foreach (Tienda item in Distribuidora.listaDeTiendas)
                {
                    Console.WriteLine("DATOS DE LA TIENDA");
                    Console.WriteLine(item.Mostrar());
                    Console.WriteLine("----------------------");
                }
                Console.WriteLine("Se han mostrado todas las tiendas en la base de datos");
                Console.WriteLine("Presione una tecla para continuar");
                Console.ReadKey();
                Console.Clear();

                Console.WriteLine("------------------------------------------------------");
                Console.WriteLine("Probando traer la lista de Articulos de la Base de Datos");
                Distribuidora.listaDeArticulos = HelperBD.TraerArticulos();
                foreach (Articulo item in Distribuidora.listaDeArticulos)
                {
                    Console.WriteLine("DATOS DEl ARTICULO");
                    Console.WriteLine(item.Mostrar());
                    Console.WriteLine("----------------------");
                }
                Console.WriteLine("Se han mostrado todas las Articulos en la base de datos");
                Console.WriteLine("Presione una tecla para continuar");
                Console.ReadKey();
                Console.Clear();

                Console.WriteLine("------------------------------------------------------");
                Console.WriteLine("Probando traer la lista de Ventas de la Base de Datos");
                Distribuidora.listaDeVentas = HelperBD.TraerVentas();
                foreach (Venta item in Distribuidora.listaDeVentas)
                {
                    Console.WriteLine("DATOS DE LA VENTA");
                    Console.WriteLine(item.Mostrar(item));
                    Console.WriteLine("----------------------");
                }
                Console.WriteLine("Se han mostrado todas las Ventas en la base de datos");
                Console.WriteLine("Presione una tecla para continuar");
                Console.ReadKey();


                //Prueba de la funcionalidad de agregar productos
                Console.WriteLine("Probando el alta de un nuevo articulo!!");
                Articulo articulo1 = HelperBD.GenerarArticulo("Mouse inalambrico", 10, 800, Articulo.ETipoDeArticulo.Computacion.ToString());
                Console.WriteLine("Articulo Cargado con exito");
                Console.WriteLine(articulo1.Mostrar());
                Console.WriteLine("------------------------------------------");
                Console.WriteLine("Presione una tecla para continuar");
                Console.ReadKey();
                Console.Clear();

                Console.WriteLine("Probando la creacion de una nueva venta con el articulo generado en el paso anterior");
                int auxCantidad = 2;

                //Actualiza la lista de Articulos
                Distribuidora.listaDeArticulos = HelperBD.TraerArticulos();

                //Confirma el stock en caso de ser insuficiente lanzará una excepcion del tipo StockException (Tema Excepciones)
                Distribuidora.ConfirmarStock(articulo1.IdArticulo, auxCantidad);
                Venta nuevaVenta = HelperBD.GenerarVenta(1, 1, auxCantidad, 30000, Venta.EEstadoVenta.Conforme.ToString());
                Console.WriteLine("Nueva venta cargada con exito");
                Console.WriteLine(nuevaVenta.Mostrar(nuevaVenta));
                Console.WriteLine("------------------------------------------");
                Console.WriteLine("Presione una tecla para continuar");
                Console.ReadKey();
                Console.Clear();

                //Prueba de Lectura de archivo xml (tema Deserializacion)
                Console.WriteLine("Probando leer el archivo Xlm con las ordenes de compra");
                if (Distribuidora.Leer())
                {
                    Distribuidora.GenerarVentasPendientes(Distribuidora.listaDeOrdenesDeCompra);
                    Distribuidora.listaDeVentas = HelperBD.TraerVentas();
                    Distribuidora.EncolarVentasPendientes();
                    foreach (Venta item in Distribuidora.colaVentasPendientes)
                    {
                        Console.WriteLine(String.Concat(item.Mostrar(item), item.EstadoVenta.ToString(), "\n"));
                    }
                    Console.WriteLine("Se han mostrado todas las ventas pendientes cargadas a partir del arxhivo xlm");
                    Console.WriteLine("Presione una tecla para continuar");
                    Console.ReadKey();
                    Console.Clear();
                }
                else
                {
                    Console.WriteLine("No hay ventas externas para procesar");
                    Console.WriteLine("Presione una tecla para continuar");
                    Console.ReadKey();
                    Console.Clear();
                }

                //Prueba de manejo de ventas mediante Hilo que genera un evento. En caso de resultar en venta rechazada (Temas hilos, delegados y eventos)
                Console.WriteLine("------------------------------------------------------");
                Console.WriteLine("Probando el procesamiento de ventas pendientes mediante un hilo");
                Console.WriteLine("Se procesaran las ventas pendientes cargadas en el paso anterior");
                Console.WriteLine("El procesamiento tomara unos segundos dado el volumen de ventas. Presione cualquier tecla para comenzar el procesamiento");
                Console.ReadKey();
                Thread hiloDeVentas;
                hiloDeVentas = new Thread(Distribuidora.ProcesarVentasConsola);
                hiloDeVentas.Start();
                Console.WriteLine("Empieza procesamiento!");
                while (hiloDeVentas.IsAlive && Distribuidora.colaVentasPendientes.Count != 0)
                {
                    Console.WriteLine("Cantidad de ventas pendientes: " + Distribuidora.colaVentasPendientes.Count.ToString() + " --- Cantidad de ventas procesadas: " + Distribuidora.colaVentasProcesadas.Count.ToString());
                }
                Console.WriteLine("Cantidad de ventas pendientes: " + Distribuidora.colaVentasPendientes.Count.ToString() + " --- Cantidad de ventas procesadas: " + Distribuidora.colaVentasProcesadas.Count.ToString());
                Console.WriteLine("Procesamiento Finalizado!");

                //Uso de metodo de extensión para el calculo de monto total de ventas procesadas (tema metodos de extension)
                Console.WriteLine("Se genera al monto total de ventas procesadas usando el metodo de extensión");
                Console.WriteLine("Monto de ventas procesadas: ");
                Console.WriteLine(Distribuidora.colaVentasProcesadas.CalcularTotalVentasProcesadas().ToString());
                Console.WriteLine("Ingrese una tecla para continuar");
                Console.ReadKey();
                Console.Clear();

                //Se comprueba la creacion y se lee el archivo de log de ventas rechazadas (tema Archivos y se comprueba con esto el funcionamiento del evento ventarechazada)
                Console.WriteLine("----------------------------------------------------------");
                string path = String.Format("{0}\\logVentasRechazadas.txt", Environment.GetFolderPath(Environment.SpecialFolder.Desktop));
                if (File.Exists(path))
                {
                    Console.WriteLine("Se comprobo la creacion del archivo de texto con el log de ventas rechazadas generado por el evento ventaRechazada");
                    Console.WriteLine("Desea leer el contenido del archivo? Presione 'y' para ver el contenido del archivo");
                    if (Console.ReadKey().KeyChar == 'y')
                    {
                        string datos = "";
                        Texto  texto = new Texto();
                        texto.Leer(path, out datos);
                        Console.WriteLine(datos);
                        Console.ReadKey();
                    }
                    else
                    {
                        Console.WriteLine("Se cancelo la lectura del archivo.");
                        Console.WriteLine("Presiona una tecla para finalizar");
                        Console.ReadKey();
                    }
                }
                else
                {
                    Console.WriteLine("Archivo inexistente");
                }
                Console.WriteLine("Se han concluido las pruebas. Presione cualquier tecla para finalizar");
                Console.ReadKey();
            }
            catch (StockException ex)
            {
                Console.WriteLine(ex.Message);
                Console.WriteLine("Presione una tecla para continuar");
                Console.ReadKey();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
Exemple #13
0
 public ComercioPage(Distribuidora DistribuidorSeleccionado)
 {
     InitializeComponent();
     BindingContext = new ComercioPageViewModel(Navigation, DistribuidorSeleccionado);
 }
        /// <summary>
        /// Metodo que maneja el hilo que procesa de manera automatica las ventas y muestra los resultados por pantalla.
        /// </summary>
        public void ProcesarVentas()
        {
            bool continuar = true;

            try
            {
                hiloActivo = true;
                while (continuar == true)
                {
                    ActualizarDtvVentasPendientes();
                    Thread.Sleep(4000);
                    //Valida que existan ventas pendientes
                    if (Distribuidora.colaVentasPendientes.Count > 0)
                    {
                        Venta auxVenta = Distribuidora.colaVentasPendientes.Dequeue();
                        if (Distribuidora.ConfirmarStockVentasExternas(auxVenta))
                        {
                            //Busca el articulo a vender
                            Articulo auxArticulo = Distribuidora.buscarArticuloPorId(auxVenta.IdArticulo);
                            auxArticulo.Cantidad = auxArticulo.Cantidad - auxVenta.Cantidad;
                            //Actualiza el stock del articulo
                            HelperBD.ActualizarStockArticulo(auxArticulo);
                            //Actualiza el estado de la venta
                            auxVenta.EstadoVenta = Venta.EEstadoVenta.Conforme;
                            HelperBD.ActualizarEstadoVenta(auxVenta);
                            //Pasa la venta a la cola de ventas procesadas
                            Distribuidora.colaVentasProcesadas.Enqueue(auxVenta);
                            //Actualiza los DataGridView que van mostrando los resultados del proceso
                            ActualizarDtvVentasPendientes();
                            ActualizarDtvVentasProcesadas();
                            Thread.Sleep(4000);
                        }
                        else
                        {
                            //Si no se pudo conformar la venta se cambia su estado a rechazada
                            auxVenta.EstadoVenta = Venta.EEstadoVenta.Rechazada;
                            HelperBD.ActualizarEstadoVenta(auxVenta);
                            Distribuidora.colaVentasProcesadas.Enqueue(auxVenta);

                            //Suscribe el método GenerarLogVentasRechazadas al delegado ventaRechazada a fin de ser ejecutado al lanzar el evento
                            Distribuidora.ventaRechazada += Distribuidora.GenerarLogVentasRechazadas;
                            //Llamada al evento que desencadena la escritura del archivo de texto con el log de ventas rechazadas
                            Distribuidora.InvocarEvento(auxVenta);
                            ActualizarDtvVentasPendientes();
                            ActualizarDtvVentasProcesadas();
                            Thread.Sleep(4000);
                        }
                    }
                    else
                    {
                        //Si no hay más ventas pendientes lo informa por pantalla validando antes que se pueda llamar al control lblmensajeventas que es manejado por el hilo del formulario
                        if (this.lblmensajeventas.InvokeRequired)
                        {
                            this.lblmensajeventas.BeginInvoke((MethodInvoker) delegate()
                            {
                                lblmensajeventas.Visible   = true;
                                this.lblmensajeventas.Text = "No hay ventas externas para procesar";
                            });
                        }
                        else
                        {
                            lblmensajeventas.Visible   = true;
                            this.lblmensajeventas.Text = "No hay ventas externas para procesar";
                        }
                        continuar = false;
                    }
                }
                hiloActivo = false;
            }
            catch (Exception)
            {
                throw;
            }
        }
Exemple #15
0
        public IHttpActionResult PostDistribuidora([FromBody] Distribuidora distribuidora)
        {
            if (distribuidora == null || string.IsNullOrEmpty(distribuidora.Identificador) || distribuidora.UsuarioDistribuidora == null)
            {
                return(BadRequest("Objeto distribuidora vacio"));
            }
            List <Distribuidora> listaDistribuidoraRetornar;

            Negocio.Administracion.Distribuidora boDistribuidora = new Negocio.Administracion.Distribuidora();
            boDistribuidora.ObtenerDistribuidora(new FiltroDistribuidora()
            {
                Identificador = distribuidora.Identificador
            }, out listaDistribuidoraRetornar);

            if (listaDistribuidoraRetornar?.Count == 0)
            {
                distribuidora.FechaRegistro = DateTime.Now;
                distribuidora.EsNuevo       = true;
                if (distribuidora.UsuarioDistribuidora?.Count > 0)
                {
                    distribuidora.UsuarioDistribuidora.ToList().ForEach(f =>
                    {
                        f.FechaCreacion       = DateTime.Now;
                        f.FechaAceptacion     = DateTime.Now;
                        f.AceptaDistribuidora = true;
                        f.AceptaUsuario       = true;
                        f.EsAdmin             = true;
                    });
                }

                if (distribuidora.Documentos?.Count > 0)
                {
                    distribuidora.Documentos.ToList().ForEach(f => { f.FechaVigencia = DateTime.Now; });
                }

                boDistribuidora.GuardarDistribuidoras(new List <Distribuidora> {
                    distribuidora
                });

                //Estructura de la transacción
                //using (var trx = Datos.InitTransaction())
                //{
                //    try
                //    {

                //        Datos.InsertarDistribuidora(distribuidora);
                //        Datos.SaveAll();
                //        Datos.InsertarUsuario(new Usuario() { Cedula = "17-000-000" });

                //        trx.Commit();
                //    }catch
                //    {
                //        trx.Rollback();
                //    }
                //}
                //Datos.SaveAll();
                return(Ok(distribuidora));
            }
            else
            {
                return(BadRequest("Distribuidora existe"));
            }
        }
Exemple #16
0
        public static void Populate(ApplicationDbContext Context)
        {
            var c1 = new Combustible();

            c1.Precio      = 93;
            c1.Tipo        = "93";
            c1.NuevoPrecio = c1.Precio;

            var c2 = new Combustible();

            c2.Precio      = 95;
            c2.Tipo        = "95";
            c2.NuevoPrecio = c2.Precio;


            var c3 = new Combustible();

            c3.Precio      = 97;
            c3.Tipo        = "97";
            c3.NuevoPrecio = c3.Precio;


            var c4 = new Combustible();

            c4.Precio      = 999;
            c4.Tipo        = "Disel";
            c4.NuevoPrecio = c4.Precio;


            //surtidores
            var s1 = new Surtidor();
            var s2 = new Surtidor();


            //agregando combustible a sutridores
            var sc1 = new SurtidorCombustible();

            sc1.Combustible = c1;
            sc1.Surtidor    = s1;
            var sc2 = new SurtidorCombustible();

            sc2.Surtidor    = s1;
            sc2.Combustible = c4;
            //surtidor1 tiene combustible c1(93) y c4(disel)

            //
            var sc3 = new SurtidorCombustible();

            sc3.Combustible = c2;
            sc3.Surtidor    = s2;
            var sc4 = new SurtidorCombustible();

            sc4.Combustible = c3;
            sc4.Surtidor    = s2;
            //

            var d1 = new Distribuidora();

            d1.Nombre         = "Distribuidora 1";
            d1.FactorUtilidad = 0.1f; // 10%
            d1.Surtidores.Add(s1);
            d1.Surtidores.Add(s2);



            Context.Combustibles.Add(c1);
            Context.Combustibles.Add(c2);
            Context.Combustibles.Add(c3);
            Context.Combustibles.Add(c4);

            Context.Distribuidoras.Add(d1);

            Context.surtidorCombustibles.Add(sc1);
            Context.surtidorCombustibles.Add(sc2);
            Context.surtidorCombustibles.Add(sc3);
            Context.surtidorCombustibles.Add(sc4);

            Context.SaveChanges();
        }