public int Insert(SolicitudAsignacionBienMuebleVob solicitud)
        {
            var solAsigBienMuebleRepositorio = new GCPSolicitudAsignacionBienMueble();
            GCPAsignacionBienMuebleNegocio asigNegocio = new GCPAsignacionBienMuebleNegocio();
            int idEstado = 2; // Estado "Pendiente" por defecto 

            /*
             * GCP_RN16
             * Verifica que el usuario solicitante no tenga solicitudes pendientes
             * para el mismo producto, cantidad y Usuario Responsable
             */
            IList<AsignacionBienMuebleVob> asignaciones = asigNegocio.SelectAsignacionesPendientesXSolicitante(solicitud.IdUsuarioTrabajador);
            var cont = (from a in asignaciones
                        join s in solicitud.AsignacionBienMueble
                        on new { a.IdBienMueble, a.IdUsuarioTrabajador, a.Cantidad } equals new { s.IdBienMueble, s.IdUsuarioTrabajador, s.Cantidad }
                        select a).Count();

            if (cont > 0)
                idEstado = 4; // Rechazado

            return solAsigBienMuebleRepositorio.Insert(solicitud, idEstado);
        }
Ejemplo n.º 2
0
        public int Insert(SolicitudAsignacionBienMuebleVob solicitud)
        {
            var solAsigBienMuebleRepositorio           = new GCPSolicitudAsignacionBienMueble();
            GCPAsignacionBienMuebleNegocio asigNegocio = new GCPAsignacionBienMuebleNegocio();
            int idEstado = 2; // Estado "Pendiente" por defecto

            /*
             * GCP_RN16
             * Verifica que el usuario solicitante no tenga solicitudes pendientes
             * para el mismo producto, cantidad y Usuario Responsable
             */
            IList <AsignacionBienMuebleVob> asignaciones = asigNegocio.SelectAsignacionesPendientesXSolicitante(solicitud.IdUsuarioTrabajador);
            var cont = (from a in asignaciones
                        join s in solicitud.AsignacionBienMueble
                        on new { a.IdBienMueble, a.IdUsuarioTrabajador, a.Cantidad } equals new { s.IdBienMueble, s.IdUsuarioTrabajador, s.Cantidad }
                        select a).Count();

            if (cont > 0)
            {
                idEstado = 4; // Rechazado
            }
            return(solAsigBienMuebleRepositorio.Insert(solicitud, idEstado));
        }
        public ActionResult Guardar(SolicitudAsignacionBienMuebleVob SolicitudAsignacion, int id = 0)
        {
            try
            {
                var solicitudNegocio = new GCPSolicitudAsignacionBienMuebleNegocio();
                var asignacionBienNegocio = new GCPAsignacionBienMuebleNegocio();
                int nroSolicitud = id;

                ICollection<AsignacionBienMuebleVob> asignaciones = GetCache<ICollection<AsignacionBienMuebleVob>>(SolicitudAsignacion.AsignacionBienMueble);
                SolicitudAsignacion.AsignacionBienMueble = asignaciones;

                int codigo;

                if (id > 0)
                {
                    SolicitudAsignacion.Estado = new EstadoVob();
                    SolicitudAsignacion.Estado.IdEstado = 1;
                    SolicitudAsignacion.IdEstado = 1; // Registrado

                    SolicitudAsignacion.Area = new AreaVob();
                    SolicitudAsignacion.Area.IdArea = SolicitudAsignacion.IdArea;

                    solicitudNegocio.Update(SolicitudAsignacion);
                    codigo = SolicitudAsignacion.IdSolicitudAsignacion;

                    // Elimino las asignaciones
                    asignacionBienNegocio.DeleteAll(codigo);
                }
                else
                    codigo = solicitudNegocio.Insert(SolicitudAsignacion);

                foreach (AsignacionBienMuebleVob a in asignaciones)
                    asignacionBienNegocio.Insert(a, codigo);

                return RedirectToAction("Index");
            }
            catch (Exception ex)
            {
                return RedirectToAction("ErrorSistema", "Error", new { mensaje = ex.Message });
            }
        }