예제 #1
0
        internal static Bodega agregar(Bodega estaBodega)
        {
            Context db = new Context();

            db.Bodegas.Add(estaBodega);
            db.SaveChanges();
            return(estaBodega);
        }
예제 #2
0
        internal static void agregar(List <FormatoExcelBaseDespacho> datos)
        {
            Context db = new Context();

            List <Bodega>    bodegas         = new List <Bodega>();
            List <Cliente>   nuevosClientes  = new List <Cliente>();
            List <productos> nuevosProductos = new List <productos>();
            List <Despacho>  nuevosDespachos = new List <Despacho>();

            foreach (FormatoExcelBaseDespacho dato in datos)
            {
                //Si el cliente no existe se agrega, sino se actualiza su nombre
                Cliente esteCliente;

                if (db.Clientes.Any(s => s.codigoCliente == dato.codigoCliente))
                {
                    esteCliente = db.Clientes.Where(s => s.codigoCliente == dato.codigoCliente).ToList()[0];
                    esteCliente.nombreCliente = dato.nombreCliente;
                }
                else
                {
                    if (!nuevosClientes.Any(s => s.codigoCliente == dato.codigoCliente))
                    {
                        esteCliente = new Cliente();
                        esteCliente.codigoCliente = dato.codigoCliente;
                        esteCliente.nombreCliente = dato.nombreCliente;
                        db.Clientes.Add(esteCliente);
                        nuevosClientes.Add(esteCliente);
                    }
                    else
                    {
                        esteCliente = nuevosClientes.Where(s => s.codigoCliente == dato.codigoCliente).ToList()[0];
                    }
                }

                //Si el producto no existe se agrega, sino se actualiza su descripción
                productos esteProducto;

                if (db.productos.Any(s => s.codigo == dato.codigoProducto))
                {
                    esteProducto                 = db.productos.Where(s => s.codigo == dato.codigoProducto).ToList()[0];
                    esteProducto.descripcion     = dato.descripcionProducto;
                    db.Entry(esteProducto).State = System.Data.Entity.EntityState.Modified;
                }
                else
                {
                    if (!nuevosProductos.Any(s => s.codigo == dato.codigoProducto))
                    {
                        esteProducto             = new productos();
                        esteProducto.codigo      = dato.codigoProducto;
                        esteProducto.descripcion = dato.descripcionProducto;

                        db.productos.Add(esteProducto);
                        nuevosProductos.Add(esteProducto);
                    }
                    else
                    {
                        esteProducto = nuevosProductos.Where(s => s.codigo == dato.codigoProducto).ToList()[0];
                    }
                }

                Bodega estaBodega;

                //Si la bodega no existe se agrega
                if (!db.Bodegas.Any(s => s.nombre == dato.codigoLocal))
                {
                    if (!bodegas.Any(s => s.nombre == dato.codigoLocal))
                    {
                        estaBodega = new Bodega();

                        estaBodega.nombre    = dato.codigoLocal;
                        estaBodega.ciudad    = "-";
                        estaBodega.direccion = "-";
                        db.Bodegas.Add(estaBodega);
                        bodegas.Add(estaBodega);
                    }
                    else
                    {
                        estaBodega = bodegas.Where(s => s.nombre == dato.codigoLocal).ToList()[0];
                    }
                }
                else
                {
                    estaBodega = db.Bodegas.Where(s => s.nombre == dato.codigoLocal).ToList()[0];
                }

                //Se agregan o modifican los datos de despacho
                if (db.Despachos.Any(s => s.NumeroDocumento == dato.numeroDocumento))
                {
                    Despacho despacho = db.Despachos.Where(s => s.NumeroDocumento == dato.numeroDocumento).ToList()[0];

                    despacho.NombreDocumento   = dato.nombreDocumento;
                    despacho.Cliente           = esteCliente;
                    despacho.DireccionDespacho = dato.direccionDespacho;
                    despacho.Bodega            = estaBodega;
                    despacho.Fecha             = dato.fecha;
                    despacho.BodegaOrigen      = dato.bodegaOrigen;
                    despacho.Linea             = dato.lineaOrigen;
                    //despacho.Status = "NUEVO";

                    //detalle
                    if (db.DetalleDespacho.Any(s => s.DespachoID == despacho.DespachoID && s.productosID == esteProducto.productosID))
                    {
                        DetalleDespacho detalle = db.DetalleDespacho.Where(s => s.DespachoID == despacho.DespachoID && s.productosID == esteProducto.productosID).ToList()[0];
                        detalle.productos       = esteProducto;
                        detalle.Cantidad        = dato.cantidad;
                        detalle.PrecioUnitario  = dato.precioUnitario;
                        detalle.TotalNetoLinea  = dato.totalNetoLinea;
                        detalle.CostoVigente    = dato.costoVigente;
                        db.Entry(detalle).State = System.Data.Entity.EntityState.Modified;
                    }
                    else
                    {
                        DetalleDespacho detalle = new DetalleDespacho();
                        detalle.Despacho       = despacho;
                        detalle.productos      = esteProducto;
                        detalle.Cantidad       = dato.cantidad;
                        detalle.PrecioUnitario = dato.precioUnitario;
                        detalle.TotalNetoLinea = dato.totalNetoLinea;
                        detalle.CostoVigente   = dato.costoVigente;
                        db.DetalleDespacho.Add(detalle);
                    }

                    db.Entry(despacho).State = System.Data.Entity.EntityState.Modified;
                }
                else
                {
                    if (!nuevosDespachos.Any(s => s.NumeroDocumento == dato.numeroDocumento))
                    {
                        Despacho despacho = new Despacho();

                        despacho.NumeroDocumento   = dato.numeroDocumento;
                        despacho.NombreDocumento   = dato.nombreDocumento;
                        despacho.Cliente           = esteCliente;
                        despacho.DireccionDespacho = dato.direccionDespacho;
                        despacho.Bodega            = estaBodega;
                        despacho.Fecha             = dato.fecha;
                        despacho.BodegaOrigen      = dato.bodegaOrigen;
                        despacho.Linea             = dato.lineaOrigen;
                        despacho.Status            = "CARGADO";

                        //detalle
                        DetalleDespacho detalle = new DetalleDespacho();
                        detalle.Despacho       = despacho;
                        detalle.productos      = esteProducto;
                        detalle.Cantidad       = dato.cantidad;
                        detalle.PrecioUnitario = dato.precioUnitario;
                        detalle.TotalNetoLinea = dato.totalNetoLinea;
                        detalle.CostoVigente   = dato.costoVigente;
                        db.DetalleDespacho.Add(detalle);

                        db.Despachos.Add(despacho);
                        nuevosDespachos.Add(despacho);
                    }
                    else
                    {
                        Despacho despacho = nuevosDespachos.Where(s => s.NumeroDocumento == dato.numeroDocumento).ToList()[0];

                        despacho.NombreDocumento   = dato.nombreDocumento;
                        despacho.Cliente           = esteCliente;
                        despacho.DireccionDespacho = dato.direccionDespacho;
                        despacho.Bodega            = estaBodega;
                        despacho.Fecha             = dato.fecha;
                        despacho.BodegaOrigen      = dato.bodegaOrigen;
                        despacho.Linea             = dato.lineaOrigen;
                        //despacho.Status = "NUEVO";

                        //detalle
                        DetalleDespacho detalle = new DetalleDespacho();
                        detalle.Despacho       = despacho;
                        detalle.productos      = esteProducto;
                        detalle.Cantidad       = dato.cantidad;
                        detalle.PrecioUnitario = dato.precioUnitario;
                        detalle.TotalNetoLinea = dato.totalNetoLinea;
                        detalle.CostoVigente   = dato.costoVigente;
                        db.DetalleDespacho.Add(detalle);
                    }
                }
            }
            db.SaveChanges();
        }
예제 #3
0
        internal static void agregar(List <FormatoExcelMaestro> datos)
        {
            Context db = new Context();

            List <Bodega> bodegas = new List <Bodega>();

            foreach (FormatoExcelMaestro dato in datos)
            {
                //Si el producto no existe se agrega, sino se actualiza su descripción
                productos esteProducto;

                if (db.productos.Any(s => s.codigo == dato.codigo))
                {
                    esteProducto                    = db.productos.Where(s => s.codigo == dato.codigo).ToList()[0];
                    esteProducto.descripcion        = dato.descripcion;
                    esteProducto.codigoBarra        = dato.codigoBarra;
                    esteProducto.codigoBarraInterno = dato.codigoBarraInterno;
                    db.Entry(esteProducto).State    = System.Data.Entity.EntityState.Modified;
                }
                else
                {
                    esteProducto                    = new productos();
                    esteProducto.codigo             = dato.codigo;
                    esteProducto.descripcion        = dato.descripcion;
                    esteProducto.codigoBarra        = dato.codigoBarra;
                    esteProducto.codigoBarraInterno = dato.codigoBarraInterno;

                    db.productos.Add(esteProducto);
                }

                Bodega estaBodega;

                //Si la bodega no existe se agrega
                if (!db.Bodegas.Any(s => s.nombre == dato.bodega))
                {
                    if (!bodegas.Any(s => s.nombre == dato.bodega))
                    {
                        estaBodega = new Bodega();

                        estaBodega.nombre    = dato.bodega;
                        estaBodega.ciudad    = "-";
                        estaBodega.direccion = "-";
                        db.Bodegas.Add(estaBodega);
                        bodegas.Add(estaBodega);
                    }
                    else
                    {
                        estaBodega = bodegas.Where(s => s.nombre == dato.bodega).ToList()[0];
                    }
                }
                else
                {
                    estaBodega = db.Bodegas.Where(s => s.nombre == dato.bodega).ToList()[0];
                }

                //Si el producto nunca se ha ingresado a la tabla de productos_bodega se agrega, sino se actualizan sus datos
                if (db.ProductoBodega.Any(s => s.productosID == esteProducto.productosID && s.bodegaID == estaBodega.BodegaID))
                {
                    productoBodega datoProductoBodega = db.ProductoBodega.Where(s => s.productosID == esteProducto.productosID && s.bodegaID == estaBodega.BodegaID).ToList()[0];

                    datoProductoBodega.cantidadMaxima = dato.stockMaximo;
                    datoProductoBodega.cantidadMinima = dato.stockMinimo;

                    db.Entry(datoProductoBodega).State = System.Data.Entity.EntityState.Modified;
                }
                else
                {
                    productoBodega datoProductoBodega = new productoBodega();
                    datoProductoBodega.alertarStockBajo = true;
                    datoProductoBodega.Bodega           = estaBodega;
                    datoProductoBodega.cantidadMaxima   = dato.stockMaximo;
                    datoProductoBodega.cantidadMinima   = dato.stockMinimo;
                    datoProductoBodega.productos        = esteProducto;

                    db.ProductoBodega.Add(datoProductoBodega);
                }
            }
            db.SaveChanges();
        }