Esempio n. 1
0
        public LineaPresupuesto DTOALineaPresupuesto(LineaPresupuestoDTO pLinea) // TESTEAR CUANDO HAYA UN PRESUPUESTO EN BASE DE DATOS
        {
            LineaPresupuesto lin  = new LineaPresupuesto();
            Repositorio      repo = new Repositorio();

            lin.Id                  = pLinea.Id;
            lin.Cantidad            = pLinea.Cantidad;
            lin.PorcentajeDescuento = pLinea.PorcentajeDescuento;
            Presupuesto presupuesto = repo.Presupuestos.Find(pLinea.IdPresupuesto);

            if (presupuesto == null)
            {
                throw new Exception("Id " + pLinea.IdPresupuesto + " no existe en Presupuestos");
            }
            lin.Presupuesto = presupuesto;
            Producto producto = repo.Productos.Find(pLinea.IdProducto);

            if (presupuesto == null)
            {
                throw new Exception("Id " + pLinea.IdProducto + " no existe en Productos");
            }
            lin.Producto = producto;
            lin.Subtotal = pLinea.Subtotal;
            return(lin);
        }
Esempio n. 2
0
 /// <summary>
 /// Método que permite agregar una línea correspondiente a un presupuesto y un producto, pasando los siguientes parámetros.
 /// </summary>
 /// <param name="pPrecioVenta"></param>
 /// <param name="pCantidad"></param>
 /// <param name="pDescripcion"></param>
 /// <param name="pIdPresupuesto"></param>
 /// <param name="pIdProducto"></param>
 public int AgregarModificarLinea(LineaPresupuestoDTO pLineaPresupuestoDTO)
 {
     using (var repo = new Repositorio())
     {
         List <LineaPresupuesto> lineapresupuestos = repo.LineaPresupuestos.Include("Presupuesto").Include("Producto").Where(p => p.Presupuesto.Id == pLineaPresupuestoDTO.IdPresupuesto && p.Producto.Id == pLineaPresupuestoDTO.IdProducto).ToList();
         LineaPresupuesto        lineapres         = new LineaPresupuesto();
         if (lineapresupuestos.Count != 0)
         {
             lineapres = lineapresupuestos.First();
         }
         LineaPresupuesto lineaAAgregar = this.DTOALineaPresupuesto(pLineaPresupuestoDTO);
         Producto         pro           = repo.Productos.Find(pLineaPresupuestoDTO.IdProducto);
         lineaAAgregar.Producto = pro;
         Presupuesto pres = repo.Presupuestos.Find(pLineaPresupuestoDTO.IdPresupuesto);
         lineaAAgregar.Presupuesto = pres;
         if (lineapres.Id == 0)  // Crear linea presupuesto (si no existe)
         {
             repo.LineaPresupuestos.Add(lineaAAgregar);
             repo.SaveChanges();
             return(lineaAAgregar.Id);
         }
         else  // Modificar linea presupuesto (si ya existe)
         {
             lineapres.Cantidad            = lineaAAgregar.Cantidad;
             lineapres.PorcentajeDescuento = lineaAAgregar.PorcentajeDescuento;
             lineapres.Subtotal            = lineaAAgregar.Subtotal;
             return(lineapres.Id);
         }
     }
 }
        /// <summary>
        /// El primer elemento de la tupla indica el idPresupuesto, el segundo indica si se guardó correctamente
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        /// <returns></returns>
        private Tuple <int, Boolean> GuardarPresupuesto(object sender, EventArgs e)
        {
            Boolean Guardado      = false;
            Boolean errorCantidad = false;

            foreach (DataGridViewRow row in dataGridView1.Rows)
            {
                if (row.Cells[2].Value.ToString() == "0" && !errorCantidad)
                {
                    errorCantidad = true;
                }
            }


            if (IdCliente == 0)
            {
                MessageBox.Show("Debe seleccionar un cliente");
            }
            else if (dataGridView1.Rows.Count < 1)
            {
                MessageBox.Show("Debe seleccionar al menos un producto");
            }
            else if (errorCantidad)
            {
                MessageBox.Show("Hay al menos un producto que tiene cantidad 0, modifiquelo");
            }
            else if (FechaVencimiento.Date < DateTime.Now.Date)
            {
                MessageBox.Show("Debe seleccionar una fecha de Vencimiento posterior a la seleccionada");
            }
            else if (DescuentoTotal.Text == "")
            {
                DescuentoTotal.Text = "0";
            }
            else
            {
                PresupuestoDTO pre = new PresupuestoDTO();
                pre.FechaGeneracion  = DateTime.Now;
                pre.IdCliente        = IdCliente;
                pre.FechaVencimiento = FechaVencimiento;
                pre.Id          = IdPresupuesto;
                pre.Descuento   = Convert.ToDouble(DescuentoTotal.Text);
                pre.Observacion = Observacion.Text;
                IdPresupuesto   = controladorFachada.AgregarModificarPresupuesto(pre);

                foreach (DataGridViewRow row in dataGridView1.Rows)
                {
                    LineaPresupuestoDTO lin = new LineaPresupuestoDTO();
                    lin.Cantidad            = int.Parse(row.Cells[2].Value.ToString());
                    lin.IdPresupuesto       = IdPresupuesto;
                    lin.IdProducto          = int.Parse(row.Cells[0].Value.ToString());
                    lin.PorcentajeDescuento = double.Parse(row.Cells[4].Value.ToString());
                    lin.Subtotal            = double.Parse(row.Cells[5].Value.ToString());
                    controladorFachada.AgregarLinea(lin);
                }
                Guardado = true;
            }
            return(Tuple.Create(IdPresupuesto, Guardado));
        }
Esempio n. 4
0
        public LineaPresupuestoDTO LineaPresupuestoADTO(LineaPresupuesto lineaPresupuesto)
        {
            LineaPresupuestoDTO linea = new LineaPresupuestoDTO();

            linea.Id                  = lineaPresupuesto.Id;
            linea.Cantidad            = lineaPresupuesto.Cantidad;
            linea.PorcentajeDescuento = lineaPresupuesto.PorcentajeDescuento;
            linea.IdProducto          = lineaPresupuesto.Producto.Id;
            linea.Subtotal            = lineaPresupuesto.Subtotal;
            linea.NombreProducto      = lineaPresupuesto.Producto.Nombre;
            //Precio unitario se calcula en base al subtotal precio de descuento y cantidad.
            linea.PrecioUnitario = linea.Subtotal / (linea.Cantidad * (1 - (linea.PorcentajeDescuento / 100)));
            return(linea);
        }
        public LineaPresupuestoDTO RowALineaPresupuestoDTO(DataGridViewRow row)
        {
            var linea = new LineaPresupuestoDTO()
            {
                Id                  = Convert.ToInt32(row.Cells[1].Value),
                NombreProducto      = Convert.ToString(row.Cells[2].Value),
                Cantidad            = Convert.ToInt32(row.Cells[3].Value),
                PrecioUnitario      = Convert.ToDouble(row.Cells[4].Value),
                PorcentajeDescuento = Convert.ToDouble(row.Cells[5].Value),
                Subtotal            = Convert.ToDouble(row.Cells[6].Value)
            };

            return(linea);
        }
Esempio n. 6
0
        public List <LineaPresupuestoDTO> ListarLineasPresupuesto(int pIdPresupuesto)
        {
            List <LineaPresupuestoDTO> ADevolver = new List <LineaPresupuestoDTO>();
            List <LineaPresupuesto>    lineas    = new List <LineaPresupuesto>();

            using (var repo = new Repositorio())
            {
                lineas = repo.LineaPresupuestos.Include("Producto").Where(p => p.Presupuesto.Id == pIdPresupuesto).ToList();
            }
            foreach (LineaPresupuesto lin in lineas)
            {
                LineaPresupuestoDTO lineaPresupuestoDTO = this.LineaPresupuestoADTO(lin);
                ADevolver.Add(lineaPresupuestoDTO);
            }
            return(ADevolver);
        }
Esempio n. 7
0
        public List <LineaPresupuestoDTO> ListarLineasConLotePresupuesto(int pIdPresupuesto)
        {
            ControladorFachada         controladorFachada = new ControladorFachada();
            List <LineaPresupuestoDTO> ADevolver          = new List <LineaPresupuestoDTO>();
            List <LineaPresupuesto>    lineas             = new List <LineaPresupuesto>();

            using (var repo = new Repositorio())
            {
                lineas = repo.LineaPresupuestos.Include("Producto").Where(p => p.Presupuesto.Id == pIdPresupuesto).ToList();
            }
            foreach (LineaPresupuesto lin in lineas)
            {
                if (controladorFachada.VerificarSiCategoriaVence(lin.Producto.Id))
                {
                    LineaPresupuestoDTO lineaPresupuestoDTO = new LineaPresupuestoDTO();
                    lineaPresupuestoDTO.NombreProducto = lin.Producto.Nombre;
                    lineaPresupuestoDTO.Cantidad       = lin.Cantidad;
                    lineaPresupuestoDTO.LoteYCantidad  = DeterminarLotes(lin.Producto.Id, lin.Cantidad);
                    ADevolver.Add(lineaPresupuestoDTO);
                }
            }
            return(ADevolver);
        }
Esempio n. 8
0
 /// <summary>
 /// Método que permite agregar una línea correspondiente a un presupuesto y un producto, pasando los siguientes parámetros.
 /// </summary>
 /// <param name="pPrecioVenta"></param>
 /// <param name="pCantidad"></param>
 /// <param name="pDescripcion"></param>
 /// <param name="pIdPresupuesto"></param>
 /// <param name="pIdProducto"></param>
 public void AgregarLinea(LineaPresupuestoDTO pPresupuestoDTO)
 {
     controladorPresupuesto.AgregarModificarLinea(pPresupuestoDTO);
 }