Ejemplo n.º 1
0
        public void guardarProveedor(proveedor proveedor)
        {
            proveedor proveedorExiste = obtenerProveedorID(proveedor.id);

            using (contextData cdt = new contextData())
            {
                cdt.Configuration.LazyLoadingEnabled = false;

                try
                {
                    if (proveedorExiste == null)
                    {
                        //Guarda el proveedor
                        cdt.proveedor.Add(proveedor);
                        cdt.SaveChanges();
                    }
                    else
                    {
                        //Guarda el proveedor modificado
                        cdt.proveedor.Add(proveedor);
                        cdt.Entry(proveedor).State = EntityState.Modified;
                        cdt.SaveChanges();
                    }
                }
                catch (Exception ex)
                {
                    string mensaje = "";
                    Log.Error(ex, System.Reflection.MethodBase.GetCurrentMethod(), ref mensaje);
                    throw;
                }
            }
        }
Ejemplo n.º 2
0
        public bool actualizarExistDB(int id, int cantUsu, bool esSalida)
        {
            using (contextData cdt = new contextData())
            {
                cdt.Configuration.LazyLoadingEnabled = false;
                try
                {
                    producto oldProd = obtenerProductoID(id);
                    oldProd.TipoCategoria   = null;
                    oldProd.productoEstante = null;
                    oldProd.proveedor       = null;

                    if (esSalida)
                    {
                        oldProd.totalStock -= cantUsu;
                        if (oldProd.totalStock < oldProd.cantMinima)
                        {
                            return(false);
                        }
                    }
                    else
                    {
                        oldProd.totalStock += cantUsu;
                        if (oldProd.totalStock > oldProd.cantMaxima)
                        {
                            return(false);
                        }
                    }

                    cdt.producto.Add(oldProd);
                    cdt.Entry(oldProd).State = EntityState.Modified;
                    cdt.SaveChanges();
                    return(true);
                }
                catch (Exception ex)
                {
                    string mensaje = "";
                    Log.Error(ex, System.Reflection.MethodBase.GetCurrentMethod(), ref mensaje);
                    throw;
                }
            }
        }
Ejemplo n.º 3
0
        public void editarUsuario(usuario usuarioEdicion)
        {
            using (contextData cdt = new contextData())
            {
                cdt.Configuration.LazyLoadingEnabled = false;

                try
                {
                    usuarioEdicion.tipoUsuario = null;
                    cdt.usuario.Add(usuarioEdicion);
                    cdt.Entry(usuarioEdicion).State = EntityState.Modified;
                    cdt.SaveChanges();
                }
                catch (Exception e)
                {
                    string mensaje = "";
                    Log.Error(e, System.Reflection.MethodBase.GetCurrentMethod(), ref mensaje);
                    throw;
                }
            }
        }
Ejemplo n.º 4
0
        public void GuardarContactos(contactos contactos)
        {
            proveedor proveedor       = repositoryProveedor.obtenerProveedorID(contactos.idProveedor);
            contactos contractoExiste = obtenerContactoID(contactos.id);

            using (contextData cdt = new contextData())
            {
                cdt.Configuration.LazyLoadingEnabled = false;

                try
                {
                    if (contractoExiste == null)
                    {
                        //Guarda el contacto
                        cdt.contactos.Add(contactos);
                        cdt.SaveChanges();
                    }
                    else
                    {
                        //modifica el contacto modificado
                        if (contractoExiste.nombre != contactos.nombre || contractoExiste.idProveedor != contactos.idProveedor || contractoExiste.numero != contactos.numero)
                        {
                            cdt.contactos.Add(contactos);
                            cdt.Entry(contactos).State = EntityState.Modified;
                            cdt.SaveChanges();
                        }
                    }
                }
                catch (Exception ex)
                {
                    string mensaje = "";
                    Log.Error(ex, System.Reflection.MethodBase.GetCurrentMethod(), ref mensaje);
                    throw;
                }
            }
        }
Ejemplo n.º 5
0
        public void guardarProducto(producto producto, String[] idProveedor, String[] idEstante)
        {
            proveedor pro;
            producto  produExist = obtenerProductoID(producto.id);

            using (contextData cdt = new contextData())
            {
                cdt.Configuration.LazyLoadingEnabled = false;

                try
                {
                    if (produExist == null)
                    {
                        //si producto no existe, es nuevo
                        //carga los proveedores a la tabla intermedia
                        foreach (var idPro in idProveedor)
                        {
                            pro = repoPro.obtenerProveedorID(int.Parse(idPro));
                            cdt.proveedor.Attach(pro);
                            producto.proveedor.Add(pro);
                        }

                        //salva el producto
                        cdt.producto.Add(producto);

                        //carga la tabla intermedia de ubicacion
                        foreach (var idEsta in idEstante)
                        {
                            productoEstante pe = new productoEstante();
                            pe.idProducto = producto.id;
                            pe.idEstante  = int.Parse(idEsta);
                            pe.cantidad   = producto.totalStock;
                            producto.productoEstante.Add(pe);
                        }


                        cdt.SaveChanges();
                    }
                    else
                    {
                        //actualiza el producto
                        cdt.producto.Add(producto);
                        cdt.Entry(producto).State = EntityState.Modified;


                        //actualiza los proveedores a la tabla intermedia
                        var proveedoresLista = new HashSet <string>(idProveedor);
                        cdt.Entry(producto).Collection(p => p.proveedor).Load();
                        var nuevoProveedorLista = cdt.proveedor.Where(x => proveedoresLista.Contains(x.id.ToString())).Include(x => x.pais).Include(x => x.contactos).Include(x => x.detalleFactura).ToList();
                        producto.proveedor        = nuevoProveedorLista;
                        cdt.Entry(producto).State = EntityState.Modified;


                        //actualizar tabla intermedia de ubicacion usando muchos a muchos
                        //idEstante arreglo de los identificadores de las ubicaciones o estantes
                        if (idEstante != null)
                        {
                            //Obtener los estantes registrados del producto a modificar
                            List <productoEstante> estantesdelProducto = cdt.productoEstante.Where(x => x.idProducto == producto.id).ToList();
                            // Borrar los estantes existentes del producto
                            foreach (var item in estantesdelProducto)
                            {
                                producto.productoEstante.Remove(item);
                            }
                            //Registrar los estantes especificados
                            foreach (var estante in idEstante)
                            {
                                productoEstante pe = new productoEstante();
                                pe.idProducto = producto.id;
                                pe.idEstante  = int.Parse(estante);
                                pe.cantidad   = 0;
                                cdt.productoEstante.Add(pe);
                            }
                        }
                        cdt.SaveChanges();
                    }
                }
                catch (Exception e)
                {
                    string mensaje = "";
                    Log.Error(e, System.Reflection.MethodBase.GetCurrentMethod(), ref mensaje);
                    throw;
                }
            }
        }