public async Task<Response<Subfamilia>> DeleteAsync(Subfamilia modelo)
        {
            var response = new Response<Subfamilia>();
            response.IsSuccess = false;
            try
            {
                Estado estado = await db.Estados.FirstOrDefaultAsync(e => e.ID_Estado == modelo.Estado.ID_Estado);
                modelo.Estado = estado;
                Subfamilia subfamilia = await db.Subfamilia.FirstOrDefaultAsync(Sb => Sb.ID_Subfamilia == modelo.ID_Subfamilia);
                Familia familia = await db.Familias.FirstOrDefaultAsync(f => f.ID_Familia == modelo.Familia.ID_Familia);
                modelo.Familia = familia;

                if (subfamilia == null)
                {
                    response.Message = "Debe proveer la información solicitada...";
                    return response;
                }

                //
                db.Remove(subfamilia);
                await db.SaveChangesAsync();

                //
                response.IsSuccess = true;
                response.Result = subfamilia;
            }
            catch (Exception ex)
            {
                response.Message = ex.Message;
            }
            //
            return response;
        }
        public async Task<Response<Subfamilia>> UpdateAsync(Subfamilia modelo)
        {
            var response = new Response<Subfamilia>();
            response.IsSuccess = false;
            try
            {
                Subfamilia subfamilia = await db.Subfamilia.FirstOrDefaultAsync(Sb => Sb.ID_Subfamilia == modelo.ID_Subfamilia);
                Estado estado = await db.Estados.FirstOrDefaultAsync(e => e.ID_Estado == modelo.Estado.ID_Estado);
                modelo.Estado = estado;

                Familia familia = await db.Familias.FirstOrDefaultAsync(f => f.ID_Familia == modelo.Familia.ID_Familia);
                modelo.Familia = familia;

                if (subfamilia == null)
                {
                    response.Message = "Debe proveer la información solicitada...";
                    return response;
                }

                if (await db.Subfamilia.AsNoTracking().AnyAsync(sf => sf.N_Subfamilia.ToLower() == modelo.N_Subfamilia.ToLower() && sf.ID_Subfamilia != modelo.ID_Subfamilia))
                {
                    response.Message = "Error la descripcón ya existe...";
                    return response;
                }

                //Asignación de nuevos atributos. 
                subfamilia.N_Subfamilia = modelo.N_Subfamilia;
                subfamilia.Estado = estado;
                subfamilia.Familia = familia; 

                //Reasignación de tablas anexas
                db.Subfamilia.Update(subfamilia);
                await db.SaveChangesAsync();
                db.Entry(subfamilia).State = EntityState.Detached;
                db.Entry(subfamilia.Estado).State = EntityState.Detached;
                db.Entry(subfamilia.Familia).State = EntityState.Detached;
                //
                response.IsSuccess = true;
                response.Result = modelo;
            }
            catch (Exception ex)
            {
                response.Message = ex.Message;
            }
            //
            return response;
        }
        public async Task<Response<Subfamilia>> CreateAsync(Subfamilia modelo)
        {
            var response = new Response<Subfamilia>();
            response.IsSuccess = false;
            try
            {
            
                Estado estado = await db.Estados.FirstOrDefaultAsync(e => e.ID_Estado == modelo.Estado.ID_Estado);
                modelo.Estado = estado;

                Familia familia = await db.Familias.FirstOrDefaultAsync(f => f.ID_Familia == modelo.Familia.ID_Familia);
                modelo.Familia = familia;

                if (modelo == null)
                {
                    response.Message = "Debe proveer la información solicitada...";
                    return response;
                }

                if (await db.Subfamilia.AsNoTracking().AnyAsync(tm => tm.ID_Subfamilia == modelo.ID_Subfamilia))
                {
                    response.Message = "Error el identificador ya existe...";
                    return response;
                }

                if (await db.Subfamilia.AsNoTracking().AnyAsync(tm => tm.N_Subfamilia.ToLower() == modelo.N_Subfamilia.ToLower()))
                {
                    response.Message = "Error el registro ya existe...";
                    return response;
                }
                //

                db.Add(modelo);

                await db.SaveChangesAsync();

                //
                response.IsSuccess = true;
                response.Result = modelo;
            }
            catch (Exception ex)
            {
                response.Message = ex.Message;
            }
            //
            return response;
        }
Example #4
0
        public async Task <Response <Data.Entities.Producto> > CreateAsync(Data.Entities.Producto modelo)
        {
            var response = new Response <Data.Entities.Producto>();

            response.IsSuccess = false;
            try
            {
                Estado          estado         = db.Estados.Find(modelo.Estado.ID_Estado);
                TipoDescuento   tipo_Descuento = db.Tipo_Descuentos.Find(modelo.TipoDescuento.ID_Tipo_Descuento);
                Unidad          unidad         = db.Unidades.Find(modelo.Unidad.ID_Unidad);
                Marca           marca          = db.Marca.Find(modelo.Marca.ID_Marca);
                Familia         familia        = db.Familias.Find(modelo.Familia.ID_Familia);
                Subfamilia      subfamilia     = db.Subfamilia.Find(modelo.SubFamilia.ID_Subfamilia);
                Tipo_producto   tipoProducto   = db.Tipo_Productos.Find(modelo.TipoProducto.ID_Tipo_Producto);
                Tipo_inventario tipoInventario = db.Tipo_Inventario.Find(modelo.TipoInventario.ID_Tipo_Inventario);
                Tipo_material   tipoMaterial   = db.Tipo_Material.Find(modelo.TipoMaterial.ID_Tipo_Material);
                Data.Entities.ClienteProveedor clienteProveedor = db.ClienteProveedors.Find(modelo.ClienteProveedor.ID_Cliente_Proveedor);

                modelo.Estado           = estado;
                modelo.TipoDescuento    = tipo_Descuento;
                modelo.Unidad           = unidad;
                modelo.Marca            = marca;
                modelo.Familia          = familia;
                modelo.SubFamilia       = subfamilia;
                modelo.TipoProducto     = tipoProducto;
                modelo.TipoInventario   = tipoInventario;
                modelo.TipoMaterial     = tipoMaterial;
                modelo.ClienteProveedor = clienteProveedor;

                if (modelo == null)
                {
                    response.Message = "Se debe ingresar la información";
                    return(response);
                }

                if (tipo_Descuento == null && tipoInventario == null && tipoMaterial == null && tipoProducto == null && marca == null &&
                    unidad == null && familia == null && subfamilia == null && clienteProveedor == null && estado == null)
                {
                    response.Message = "Debe asignar un estado";
                    return(response);
                }

                if (tipo_Descuento == null)
                {
                    response.Message = "Debe asignar un tipo de descuento";
                    return(response);
                }

                //if (tipoInventario == null)
                //{
                //    response.Message = "Debe asignar un tipo de inventario válido";
                //    return response;
                //}

                if (tipoMaterial == null)
                {
                    response.Message = "Debe asignar un tipo de material";
                    return(response);
                }

                if (tipoProducto == null)
                {
                    response.Message = "Debe asignar un tipo de producto";
                    return(response);
                }

                if (marca == null)
                {
                    response.Message = "Debe asignar una marca válida";
                    return(response);
                }

                if (unidad == null)
                {
                    response.Message = "Debe asignar una unidad";
                    return(response);
                }

                if (familia == null)
                {
                    response.Message = "Debe asignar una familia de productos";
                    return(response);
                }

                if (subfamilia == null)
                {
                    response.Message = "Debe asignar una subfamilia correspondiente";
                    return(response);
                }

                if (clienteProveedor == null)
                {
                    response.Message = "Debe asignar un cliente o proveedor";
                    return(response);
                }

                if (estado == null)
                {
                    response.Message = "Debe asignar un estado";
                    return(response);
                }

                if (await db.Productos.AsNoTracking().AnyAsync(p => p.ID_Producto == modelo.ID_Producto))
                {
                    response.Message = "Error el identificador ya existe...";
                    return(response);
                }

                //if (await db.Productos.AsNoTracking().AnyAsync(p => p.N_Producto.ToLower() == modelo.N_Producto.ToLower()))
                //{
                //    response.Message = "Error el registro ya existe...";
                //    return response;
                //}

                db.Add(modelo);
                db.SaveChanges();
                //
                response.IsSuccess = true;
                response.Result    = modelo;
            }
            catch (Exception ex)
            {
                response.Message = ex.Message;
            }
            //
            return(response);
        }
Example #5
0
        public Task <Response <Data.Entities.Producto> > UpdateAsync(Data.Entities.Producto modelo)
        {
            var response = new Response <Data.Entities.Producto>();

            response.IsSuccess = false;
            try
            {
                Data.Entities.Producto producto = db.Productos.Find(modelo.ID_Producto);
                Estado        estado            = db.Estados.Find(modelo.Estado.ID_Estado);
                TipoDescuento tipo_Descuento    = db.Tipo_Descuentos.Find(modelo.TipoDescuento.ID_Tipo_Descuento);
                Unidad        unidad            = db.Unidades.Find(modelo.Unidad.ID_Unidad);
                Marca         marca             = db.Marca.Find(modelo.Marca.ID_Marca);
                Familia       familia           = db.Familias.Find(modelo.Familia.ID_Familia);
                Subfamilia    subfamilia        = db.Subfamilia.Find(modelo.SubFamilia.ID_Subfamilia);
                Tipo_producto tipoProducto      = db.Tipo_Productos.Find(modelo.TipoProducto.ID_Tipo_Producto);
                //TipoInventario tipoInventario = db.Tipo_Inventario.Find(modelo.Tipo_inventario.ID_Tipo_Inventario);
                Tipo_material tipoMaterial = db.Tipo_Material.Find(modelo.TipoMaterial.ID_Tipo_Material);
                Data.Entities.ClienteProveedor clienteProveedor = db.ClienteProveedors.Find(modelo.ClienteProveedor.ID_Cliente_Proveedor);

                modelo.Estado        = estado;
                modelo.TipoDescuento = tipo_Descuento;
                modelo.Unidad        = unidad;
                modelo.Marca         = marca;
                modelo.Familia       = familia;
                modelo.SubFamilia    = subfamilia;
                modelo.TipoProducto  = tipoProducto;
                //modelo.Tipo_inventario = tipoInventario;
                modelo.TipoMaterial     = tipoMaterial;
                modelo.ClienteProveedor = clienteProveedor;


                if (producto == null)
                {
                    response.Message = "Debe proveer la información solicitada...";
                    return(Task.FromResult(response));
                }

                if (tipo_Descuento == null && tipoMaterial == null && tipoProducto == null && marca == null &&
                    unidad == null && familia == null && subfamilia == null && clienteProveedor == null && estado == null)
                {
                    response.Message = "Debe asignar un estado";
                    return(Task.FromResult(response));
                }

                if (tipo_Descuento == null)
                {
                    response.Message = "Debe asignar un tipo de descuento";
                    return(Task.FromResult(response));
                }

                //if (tipoInventario == null)
                //{
                //    response.Message = "Debe asignar un tipo de inventario válido";
                //    return response;
                //}

                if (tipoMaterial == null)
                {
                    response.Message = "Debe asignar un tipo de material";
                    return(Task.FromResult(response));
                }

                if (tipoProducto == null)
                {
                    response.Message = "Debe asignar un tipo de producto";
                    return(Task.FromResult(response));
                }

                if (marca == null)
                {
                    response.Message = "Debe asignar una marca válida";
                    return(Task.FromResult(response));
                }

                if (unidad == null)
                {
                    response.Message = "Debe asignar una unidad";
                    return(Task.FromResult(response));
                }

                if (familia == null)
                {
                    response.Message = "Debe asignar una familia de productos";
                    return(Task.FromResult(response));
                }

                if (subfamilia == null)
                {
                    response.Message = "Debe asignar una subfamilia correspondiente";
                    return(Task.FromResult(response));
                }

                if (clienteProveedor == null)
                {
                    response.Message = "Debe asignar un cliente o proveedor";
                    return(Task.FromResult(response));
                }

                if (estado == null)
                {
                    response.Message = "Debe asignar un estado";
                    return(Task.FromResult(response));
                }

                //if (await db.Productos.AsNoTracking().AnyAsync(p => p.N_Producto.ToLower() == modelo.N_Producto.ToLower()))
                //{
                //    response.Message = "Error el registro ya existe...";
                //    return response;
                //}

                //Asignación de nuevos atributos



                producto.N_Producto       = modelo.N_Producto;
                producto.Descripcion      = modelo.Descripcion;
                producto.Observaciones    = modelo.Observaciones;
                producto.Precio_Venta     = modelo.Precio_Venta;
                producto.Precio_Web       = modelo.Precio_Web;
                producto.Valor_Compra     = modelo.Valor_Compra;
                producto.Valor_Costo      = modelo.Valor_Costo;
                producto.Valor_Flete      = modelo.Valor_Flete;
                producto.Valor_Margen     = modelo.Valor_Margen;
                producto.Valor_Descuento  = modelo.Valor_Descuento;
                producto.Codigo_Barra     = modelo.Codigo_Barra;
                producto.Codigo_Interno   = modelo.Codigo_Interno;
                producto.Codigo_Parte     = modelo.Codigo_Parte;
                producto.Codigo_Proveedor = modelo.Codigo_Proveedor;
                producto.TipoDescuento    = tipo_Descuento;
                //producto.Tipo_inventario = tipoInventario;
                producto.TipoMaterial     = tipoMaterial;
                producto.TipoProducto     = tipoProducto;
                producto.Unidad           = unidad;
                producto.Marca            = marca;
                producto.Familia          = familia;
                producto.SubFamilia       = subfamilia;
                producto.ClienteProveedor = clienteProveedor;
                producto.Estado           = estado;

                //Referenciación a tablas anexas.
                db.Productos.Update(producto);
                db.SaveChanges();
                db.Entry(producto).State = EntityState.Detached;
                db.Entry(producto.TipoProducto).State  = EntityState.Detached;
                db.Entry(producto.TipoDescuento).State = EntityState.Detached;
                //db.Entry(producto.Tipo_inventario).State = EntityState.Detached;
                db.Entry(producto.TipoMaterial).State     = EntityState.Detached;
                db.Entry(producto.Unidad).State           = EntityState.Detached;
                db.Entry(producto.Marca).State            = EntityState.Detached;
                db.Entry(producto.Familia).State          = EntityState.Detached;
                db.Entry(producto.SubFamilia).State       = EntityState.Detached;
                db.Entry(producto.ClienteProveedor).State = EntityState.Detached;
                db.Entry(producto.Estado).State           = EntityState.Detached;

                //
                response.IsSuccess = true;
                response.Result    = producto;
            }
            catch (Exception ex)
            {
                response.Message = ex.Message;
            }
            //
            return(Task.FromResult(response));
        }