Exemplo n.º 1
0
        /// <summary>
        /// Crea un nuevo empleado en el sistema
        /// </summary>
        /// <param name="empleado">Empleado a crear</param>
        public void Crear(Empleado empleado)
        {
            ValidarEmpleado(empleado);

            Datos.LocalidadesDAL dalLocalidades = dal.ObtenerLocalidadesDAL();
            Datos.Localidad      localidadDAL   = dalLocalidades.Obtener(empleado.Localidad.Id);

            if (localidadDAL == null)
            {
                throw new OBMCateringException(string.Format(Resources.BL_Validaciones_LocalidadInvalida, empleado.Localidad.Nombre));
            }

            Datos.Empleado empleadoDAL = new Datos.Empleado
            {
                CUIT            = empleado.CUIT,
                Nombre          = empleado.Nombre,
                FechaNacimiento = empleado.FechaNacimiento,
                Domicilio       = empleado.Domicilio,
                Localidad       = localidadDAL,
                CodigoPostal    = empleado.CodigoPostal,
                Telefono        = empleado.Telefono,
                Email           = empleado.Email,
                FechaAlta       = empleado.FechaAlta,
                FechaBaja       = empleado.FechaBaja
            };

            Datos.EmpleadosDAL dalEmpleados = dal.ObtenerEmpleadosDAL();

            dalEmpleados.Crear(empleadoDAL);
            dal.Guardar();
        }
Exemplo n.º 2
0
        /// <summary>
        /// Crea un nuevo usuario en el sistema
        /// </summary>
        /// <param name="usuario">Usuario a crear</param>
        public void Crear(Usuario usuario)
        {
            ValidarUsuario(usuario);

            Datos.UsuariosDAL   dalUsuarios = dal.ObtenerUsuariosDAL();
            Datos.PerfilUsuario perfilDAL   = dalUsuarios.ObtenerPerfil(usuario.Perfil.ToString());

            if (perfilDAL == null)
            {
                throw new OBMCateringException(string.Format(Resources.UsuariosBL_Validaciones_PerfilInvalido, usuario.Perfil));
            }

            Datos.Usuario usuarioDAL = new Datos.Usuario
            {
                Nick            = usuario.Nick,
                Nombre          = usuario.Nombre,
                Email           = usuario.Email,
                Password        = usuario.Password,
                Perfil          = perfilDAL,
                CambiarPassword = usuario.CambiarPassword
            };

            dalUsuarios.Crear(usuarioDAL);
            dal.Guardar();
        }
Exemplo n.º 3
0
        /// <summary>
        /// Crea un nuevo proveedor en el sistema
        /// </summary>
        /// <param name="proveedor">Proveedor a crear</param>
        public void Crear(Proveedor proveedor)
        {
            ValidarProveedor(proveedor);

            Datos.LocalidadesDAL dalLocalidades = dal.ObtenerLocalidadesDAL();
            Datos.Localidad      localidadDAL   = dalLocalidades.Obtener(proveedor.Localidad.Id);

            if (localidadDAL == null)
            {
                throw new OBMCateringException(string.Format(Resources.BL_Validaciones_LocalidadInvalida, proveedor.Localidad.Nombre));
            }

            Datos.Proveedor proveedorDAL = new Datos.Proveedor
            {
                CUIT         = proveedor.CUIT,
                Nombre       = proveedor.Nombre,
                Domicilio    = proveedor.Domicilio,
                Localidad    = localidadDAL,
                CodigoPostal = proveedor.CodigoPostal,
                Telefono     = proveedor.Telefono,
                Email        = proveedor.Email,
                FechaAlta    = proveedor.FechaAlta,
                FechaBaja    = proveedor.FechaBaja
            };

            Datos.ProveedoresDAL dalProveedores = dal.ObtenerProveedoresDAL();

            dalProveedores.Crear(proveedorDAL);
            dal.Guardar();
        }
Exemplo n.º 4
0
        /// <summary>
        /// Crea una nueva orden de pago en el sistema, lo que implica que una determinada orden de compra ha sido finalizada
        /// </summary>
        /// <param name="ordenPago">Orden de pago a crear</param>
        public void Crear(OrdenPago ordenPago)
        {
            ValidarOrdenPago(ordenPago);

            Datos.ProveedoresDAL dalProveedores = dal.ObtenerProveedoresDAL();
            Datos.Proveedor      proveedorDAL   = dalProveedores.Obtener(ordenPago.Proveedor.CUIT);

            if (proveedorDAL == null)
            {
                throw new OBMCateringException(string.Format(Resources.BL_Validaciones_ProveedorInvalido, ordenPago.Proveedor.CUIT));
            }

            Datos.OrdenesCompraDAL     dalOrdenesCompra    = dal.ObtenerOrdenesCompraDAL();
            List <Datos.ItemOrdenPago> itemsOrdenesPagoDAL = new List <Datos.ItemOrdenPago>();

            foreach (ItemOrdenPago itemOrdenPago in ordenPago.Items)
            {
                Datos.ItemOrdenCompra itemOrdenCompraDAL = dalOrdenesCompra.ObtenerItem(itemOrdenPago.ItemOrdenCompra.Id);

                if (itemOrdenCompraDAL == null)
                {
                    throw new OBMCateringException(Resources.OrdenesPagoBL_Validaciones_ItemOrdenCompraInvalido);
                }

                Datos.ItemOrdenPago itemOrdenPagoDAL = new Datos.ItemOrdenPago
                {
                    ItemOrdenCompra = itemOrdenCompraDAL,
                    Precio          = itemOrdenPago.Precio
                };

                itemsOrdenesPagoDAL.Add(itemOrdenPagoDAL);
            }

            Datos.OrdenPago ordenPagoDAL = new Datos.OrdenPago
            {
                Fecha            = ordenPago.Fecha,
                Pagada           = ordenPago.Pagada,
                Proveedor        = proveedorDAL,
                ItemsOrdenesPago = itemsOrdenesPagoDAL
            };

            Datos.OrdenesPagoDAL dalOrdenesPago = dal.ObtenerOrdenesPagoDAL();

            dalOrdenesPago.Crear(ordenPagoDAL);
            dal.Guardar();
        }
Exemplo n.º 5
0
        /// <summary>
        /// Crea una nueva receta dentro del sistema
        /// </summary>
        /// <param name="receta">Receta a crear</param>
        public void Crear(Receta receta)
        {
            ValidarReceta(receta);

            Datos.RecetasDAL   dalRecetas = dal.ObtenerRecetasDAL();
            Datos.EstadoReceta estadoDAL  = dalRecetas.ObtenerEstado(EstadoReceta.SinIngredientes.ToString());

            Datos.Receta recetaDAL = new Datos.Receta
            {
                Nombre  = receta.Nombre,
                Detalle = receta.Detalle,
                Estado  = estadoDAL
            };

            dalRecetas.Crear(recetaDAL);
            dal.Guardar();
        }
Exemplo n.º 6
0
        /// <summary>
        /// Crea una nueva orden de venta o pedido en el sistema
        /// Las ordenes de venta son la informacion central del sistema ya que a partir de ellas se mueve el negocio,
        /// se preparan recetas, se generan ordenes de compra, facturas, ordenes de pago, etc.
        /// </summary>
        /// <param name="ordenVenta">Orden de venta a crear</param>
        public void Crear(OrdenVenta ordenVenta)
        {
            ValidarOrdenVenta(ordenVenta);

            Datos.ClientesDAL dalClientes = dal.ObtenerClientesDAL();
            Datos.Cliente     clienteDAL  = dalClientes.Obtener(ordenVenta.Cliente.CUIT);

            if (clienteDAL == null)
            {
                throw new OBMCateringException(string.Format(Resources.BL_Validaciones_ClienteInvalido, ordenVenta.Cliente.CUIT));
            }

            Datos.RecetasDAL    dalRecetas = dal.ObtenerRecetasDAL();
            List <Datos.Receta> recetasDAL = new List <Datos.Receta>();

            foreach (Receta receta in ordenVenta.Recetas)
            {
                Datos.Receta recetaDAL = dalRecetas.Obtener(receta.Id);

                if (recetaDAL == null)
                {
                    throw new OBMCateringException(string.Format(Resources.OrdenesVentaBL_Validaciones_RecetaInvalida, receta.Nombre));
                }

                recetasDAL.Add(recetaDAL);
            }

            Datos.OrdenVenta ordenVentaDAL = new Datos.OrdenVenta
            {
                FechaInicio = ordenVenta.FechaInicio,
                FechaFin    = ordenVenta.FechaFin,
                Comensales  = ordenVenta.Comensales,
                Precio      = ordenVenta.Precio,
                Aprobada    = ordenVenta.Aprobada,
                Cliente     = clienteDAL,
                Recetas     = recetasDAL
            };

            Datos.OrdenesVentaDAL dalOrdenesVenta = dal.ObtenerOrdenesVentaDAL();

            dalOrdenesVenta.Crear(ordenVentaDAL);
            dal.Guardar();
        }
Exemplo n.º 7
0
        /// <summary>
        /// Crea entradas en el listado de precios para los ingredientes que aun no figuren en el mismo,
        /// es decir para nuevos ingredientes de una receta.
        /// Las entradas se crearan con el precio como faltante, ya que solo los usuarios autorizados podran asignar precios a los ingredientes
        /// </summary>
        /// <param name="receta">Receta para analizar sus ingredientes y crear precios faltantes si es necesario</param>
        public void CrearFaltantes(Receta receta)
        {
            if (receta == null)
            {
                throw new OBMCateringException(Resources.BL_Validaciones_RecetaNull);
            }

            Datos.IngredientesDAL        dalIngredientes        = dal.ObtenerIngredientesDAL();
            Datos.PreciosIngredientesDAL dalPreciosIngredientes = dal.ObtenerPreciosIngredientesDAL();

            foreach (IngredienteReceta ingredienteReceta in receta.Ingredientes)
            {
                Datos.Ingrediente       ingredienteDAL       = dalIngredientes.Obtener(ingredienteReceta.Ingrediente.Nombre);
                Datos.PrecioIngrediente precioIngredienteDAL = dalPreciosIngredientes.Obtener(ingredienteDAL);

                if (precioIngredienteDAL == null)
                {
                    Datos.RecetasDAL   dalRecetas      = dal.ObtenerRecetasDAL();
                    Datos.UnidadMedida unidadMedidaDAL = dalRecetas.ObtenerUnidad(ingredienteReceta.Unidad.ToString());

                    if (unidadMedidaDAL == null)
                    {
                        throw new OBMCateringException(string.Format(Resources.BL_Validaciones_UnidadMedidaInvalida, ingredienteReceta.Unidad));
                    }

                    precioIngredienteDAL = new Datos.PrecioIngrediente
                    {
                        Ingrediente = ingredienteDAL,
                        Unidad      = unidadMedidaDAL
                    };

                    dalPreciosIngredientes.Crear(precioIngredienteDAL);
                }
            }

            dal.Guardar();
        }
Exemplo n.º 8
0
        /// <summary>
        /// Crea un nuevo cliente en el sistema
        /// </summary>
        /// <param name="cliente">Cliente a crear</param>
        public void Crear(Cliente cliente)
        {
            ValidarCliente(cliente);

            Datos.LocalidadesDAL dalLocalidades = dal.ObtenerLocalidadesDAL();
            Datos.Localidad      localidadDAL   = dalLocalidades.Obtener(cliente.Localidad.Id);

            if (localidadDAL == null)
            {
                throw new OBMCateringException(string.Format(Resources.BL_Validaciones_LocalidadInvalida, cliente.Localidad.Nombre));
            }

            Datos.ClientesDAL dalClientes    = dal.ObtenerClientesDAL();
            Datos.TipoCliente tipoClienteDAL = dalClientes.ObtenerTipo(cliente.Tipo.ToString());

            if (tipoClienteDAL == null)
            {
                throw new OBMCateringException(string.Format(Resources.ClientesBL_Validaciones_TipoInvalido, cliente.Tipo));
            }

            Datos.Cliente clienteDAL = new Datos.Cliente
            {
                CUIT         = cliente.CUIT,
                Nombre       = cliente.Nombre,
                Domicilio    = cliente.Domicilio,
                Localidad    = localidadDAL,
                CodigoPostal = cliente.CodigoPostal,
                Telefono     = cliente.Telefono,
                Email        = cliente.Email,
                Tipo         = tipoClienteDAL,
                FechaAlta    = cliente.FechaAlta,
                Activo       = cliente.Activo
            };

            dalClientes.Crear(clienteDAL);
            dal.Guardar();
        }
Exemplo n.º 9
0
        /// <summary>
        /// Crea una nueva factura en el sistema, lo que implica que una determinada orden de venta ha sido aprobada
        /// Por cada orden de venta o pedido debera crearse una factura que la respalde
        /// </summary>
        /// <param name="factura">Factura a crear</param>
        public void Crear(Factura factura)
        {
            ValidarFactura(factura);

            Datos.OrdenesVentaDAL dalOrdenesVenta = dal.ObtenerOrdenesVentaDAL();
            Datos.OrdenVenta      ordenVentaDAL   = dalOrdenesVenta.Obtener(factura.OrdenVenta.Id);

            if (ordenVentaDAL == null)
            {
                throw new OBMCateringException(Resources.BL_Validaciones_OrdenVentaInvalida);
            }

            Datos.Factura facturaDAL = new Datos.Factura
            {
                Fecha      = factura.Fecha,
                Cobrada    = factura.Cobrada,
                OrdenVenta = ordenVentaDAL
            };

            Datos.FacturasDAL dalFacturas = dal.ObtenerFacturasDAL();

            dalFacturas.Crear(facturaDAL);
            dal.Guardar();
        }
Exemplo n.º 10
0
        /// <summary>
        /// Registra un nuevo evento en el sistema
        /// </summary>
        /// <param name="mensaje">Mensaje del evento</param>
        /// <param name="tipo">Tipo de evento</param>
        public void Registrar(string mensaje, TipoMensajeBitacora tipo)
        {
            if (string.IsNullOrEmpty(mensaje))
            {
                throw new OBMCateringException(Resources.BitacoraBL_Validaciones_MensajeNull);
            }

            Datos.BitacoraDAL         dalBitacoras   = dal.ObtenerBitacoraDAL();
            Datos.TipoMensajeBitacora tipoMensajeDAL = dalBitacoras.ObtenerTipo(tipo.ToString());

            if (tipoMensajeDAL == null)
            {
                throw new OBMCateringException(string.Format(Resources.BitacoraBL_Validaciones_TipoInvalido, tipo));
            }

            Usuario usuarioAutenticado = contexto.ObtenerUsuarioAutenticado();

            Datos.Usuario usuarioDAL = null;

            if (usuarioAutenticado != null)
            {
                Datos.UsuariosDAL dalUsuarios = dal.ObtenerUsuariosDAL();

                usuarioDAL = dalUsuarios.Obtener(usuarioAutenticado.Nick);
            }

            Datos.Bitacora bitacoraDAL = new Datos.Bitacora
            {
                Fecha   = DateTime.Now,
                Mensaje = mensaje,
                Tipo    = tipoMensajeDAL,
                Usuario = usuarioDAL
            };

            dalBitacoras.Crear(bitacoraDAL);
            dal.Guardar();
        }
Exemplo n.º 11
0
        /// <summary>
        /// Crea una nueva orden de compra en el sistema, lo que implica que una determinada orden de venta ha sido aprobada
        /// Por cada orden de venta o pedido debera crearse una orden de compra que la respalde
        /// </summary>
        /// <param name="ordenVenta">Orden de venta necesaria para poder crear la orden de compra</param>
        public void Crear(OrdenVenta ordenVenta)
        {
            if (ordenVenta == null)
            {
                throw new OBMCateringException(Resources.BL_Validaciones_OrdenVentaNull);
            }

            if (ordenVenta.Comensales <= 0)
            {
                throw new OBMCateringException(Resources.BL_Validaciones_OrdenVentaSinComensales);
            }

            Datos.OrdenCompra ordenCompraDAL = new Datos.OrdenCompra();
            Dictionary <string, Datos.ItemOrdenCompra> itemsDALPorIngrediente = new Dictionary <string, Datos.ItemOrdenCompra>();

            foreach (Receta receta in ordenVenta.Recetas)
            {
                foreach (IngredienteReceta ingredienteReceta in receta.Ingredientes)
                {
                    Datos.ItemOrdenCompra itemOrdenCompraDAL;
                    Ingrediente           ingrediente = ingredienteReceta.Ingrediente;

                    if (ingredienteReceta.Cantidad <= 0)
                    {
                        throw new OBMCateringException(string.Format(Resources.OrdenesCompraBL_Validaciones_RecetaSinIngredientes, ingrediente.Nombre, receta.Nombre));
                    }

                    decimal cantidad = ingredienteReceta.Cantidad * ordenVenta.Comensales;

                    if (itemsDALPorIngrediente.ContainsKey(ingrediente.Nombre))
                    {
                        itemOrdenCompraDAL          = itemsDALPorIngrediente[ingrediente.Nombre];
                        itemOrdenCompraDAL.Cantidad = itemOrdenCompraDAL.Cantidad + cantidad;
                    }
                    else
                    {
                        itemOrdenCompraDAL = new Datos.ItemOrdenCompra();

                        Datos.IngredientesDAL dalIngredientes = dal.ObtenerIngredientesDAL();
                        Datos.Ingrediente     ingredienteDAL  = dalIngredientes.Obtener(ingrediente.Nombre);

                        if (ingredienteDAL == null)
                        {
                            throw new OBMCateringException(string.Format(Resources.OrdenesCompraBL_Validaciones_IngredienteInvalido, ingrediente.Nombre, receta.Nombre));
                        }

                        Datos.RecetasDAL   dalRecetas = dal.ObtenerRecetasDAL();
                        Datos.UnidadMedida unidadDAL  = dalRecetas.ObtenerUnidad(ingredienteReceta.Unidad.ToString());

                        if (unidadDAL == null)
                        {
                            throw new OBMCateringException(string.Format(Resources.BL_Validaciones_UnidadMedidaInvalida, ingredienteReceta.Unidad));
                        }

                        itemOrdenCompraDAL.Ingrediente = ingredienteDAL;
                        itemOrdenCompraDAL.Cantidad    = cantidad;
                        itemOrdenCompraDAL.Unidad      = unidadDAL;
                    }

                    itemsDALPorIngrediente[ingrediente.Nombre] = itemOrdenCompraDAL;
                }
            }

            Datos.OrdenesVentaDAL dalOrdenesVenta = dal.ObtenerOrdenesVentaDAL();
            Datos.OrdenVenta      ordenVentaDAL   = dalOrdenesVenta.Obtener(ordenVenta.Id);

            if (ordenVentaDAL == null)
            {
                throw new OBMCateringException(Resources.BL_Validaciones_OrdenVentaInvalida);
            }

            Datos.OrdenesCompraDAL  dalOrdenesCompra = dal.ObtenerOrdenesCompraDAL();
            Datos.EstadoOrdenCompra estadoDAL        = dalOrdenesCompra.ObtenerEstado(EstadoOrdenCompra.Generada.ToString());

            ordenCompraDAL.Fecha      = DateTime.Now;
            ordenCompraDAL.Estado     = estadoDAL;
            ordenCompraDAL.OrdenVenta = ordenVentaDAL;

            foreach (Datos.ItemOrdenCompra itemOrdenCompra in itemsDALPorIngrediente.Values)
            {
                ordenCompraDAL.ItemsOrdenesCompra.Add(itemOrdenCompra);
            }

            dalOrdenesCompra.Crear(ordenCompraDAL);
            dal.Guardar();
        }