public void generarSolicitud(FormCollection collection)
        {
            string  _docSolicitado = collection[1].ToString();
            int     _idUsuario     = Convert.ToInt32(((Usuarios)this.Session["USUARIO"]).IdUsuario);
            decimal _negId         = Convert.ToDecimal(collection[0].ToString());

            decimal noTiquet = Convert.ToDecimal(dbo.spAlm_CrearSolicitudPrestamo(_docSolicitado, _idUsuario, _negId).SingleOrDefault().ToString());
            long    _CUD     = long.Parse(dbo.spAlm_ObtenerCUD(_negId).SingleOrDefault().ToString());


            //Obtener el valor maximo de la captura
            int numCaptura = (from a in dbo.alm_CapturaUD
                              where a.CUD == _CUD
                              select a.NumCaptura).Max();

            //Se guarda la captura del CUD seleccionado
            for (int i = 2; i < collection.Count; i++)
            {
                alm_CapturaUD data = new alm_CapturaUD();
                data.CUD        = _CUD;
                data.NumCaptura = numCaptura + 1;
                data.CampId     = Convert.ToInt32(collection.Keys[i].ToString());
                data.Valor      = collection[i].ToString();
                data.Usuario    = _idUsuario;
                data.Fecha      = DateTime.Now;

                dbo.alm_CapturaUD.AddObject(data);
                dbo.SaveChanges();
            }
            Response.Redirect("/Solicitud/Confirmar?noTiquet=" + noTiquet);
        }
        public void guardarFormato(FormCollection collection)
        {
            GestorDocumentalEnt dbo = new GestorDocumentalEnt();
            int _idUsuario          = Convert.ToInt32(((Usuarios)this.Session["USUARIO"]).IdUsuario);

            //Se guarda la captura del CUD seleccionado
            for (int i = 1; i < collection.Count; i++)
            {
                alm_CapturaUD data = new alm_CapturaUD();
                data.CUD     = long.Parse(collection[0].ToString());
                data.CampId  = Convert.ToInt32(collection.Keys[i].ToString());
                data.Valor   = collection[i].ToString();
                data.Usuario = _idUsuario;
                data.Fecha   = DateTime.Now;

                dbo.alm_CapturaUD.AddObject(data);
                dbo.SaveChanges();
            }

            dbo.spAlm_CrearAsignacionTareaEnvio(Convert.ToInt32(collection[0].ToString()), _idUsuario);
            Response.Redirect("Index");
        }
        public ActionResult Guardar(FormCollection collection)
        {
            alm_UnidadDocumental  unidadDObjeto = new alm_UnidadDocumental();
            alm_GruposCUD         grupoAlmacenado;
            alm_CapturaUD         capturaUD;
            List <alm_GruposCUD>  listaGrupos  = new List <alm_GruposCUD>();
            List <alm_CapturaUD>  listCaptura  = new List <alm_CapturaUD>();
            UnidadDocumentalModel unidadDModel = new UnidadDocumentalModel(db);
            ParametrosController  parametros   = new ParametrosController(db);

            unidadDObjeto.Cliente         = ((GestorDocumental.Models.Clientes)Session["CLIENTE"]).CliNit;
            unidadDObjeto.TipoContenedor  = Convert.ToInt32(collection["tipoContenedor"]);
            unidadDObjeto.DestinoId       = Convert.ToInt32(collection["destinoAlmacenamiento"]);
            unidadDObjeto.FechaCreacion   = DateTime.Now;
            unidadDObjeto.UsuarioCreacion = ((Usuarios)Session["USUARIO_LOGUEADO"]).IdUsuario;
            unidadDObjeto.Estado          = 1;
            unidadDObjeto.Oficina         = Convert.ToInt32(collection["oficina"]);

            //Guarda el los dato de la unidad documental creada
            //Y crea la nueva asignacion de tareas para la Unidad documental creada
            long   CUD = unidadDModel.Add(unidadDObjeto);
            string parametroImpresion = parametros.get("TYPO_PRINT_ALM");

            var llaves = collection.AllKeys;

            for (int i = 0; i < llaves.Length; i++)
            {
                //Busca los subproudctos seleccionados
                if (llaves[i].Contains("subProc_"))
                {
                    grupoAlmacenado       = new alm_GruposCUD();
                    grupoAlmacenado.CUD   = CUD;
                    grupoAlmacenado.GruId = Convert.ToInt32(llaves[i].Split(new String[] { "subProc_" },
                                                                            StringSplitOptions.RemoveEmptyEntries)[0].ToString());
                    grupoAlmacenado.Activo = true;
                    listaGrupos.Add(grupoAlmacenado);
                }

                //Busca los los campos dinamicos pintados
                IEnumerable <dynamic> campos = Session["listaCamposDinamicos"] as dynamic;

                if (llaves[i].Contains("idCampo_"))
                {
                    capturaUD = new alm_CapturaUD();

                    string idcampo = llaves[i].Split(new String[] { "idCampo_" },
                                                     StringSplitOptions.RemoveEmptyEntries)[0].ToString();

                    var campo = campos.Where(x => Extends.ObtenerValorReflexion(x, "CampId").ToString() == idcampo).FirstOrDefault();

                    if (campo.TcId == 5)
                    {
                        capturaUD.CUD     = CUD;
                        capturaUD.CampId  = int.Parse(idcampo);
                        capturaUD.Valor   = CodigoDelItemLista(int.Parse(collection[llaves[i]]));
                        capturaUD.Usuario = ((Usuarios)Session["USUARIO_LOGUEADO"]).IdUsuario;
                        capturaUD.Fecha   = DateTime.Now;
                    }
                    else
                    {
                        capturaUD.CUD     = CUD;
                        capturaUD.CampId  = int.Parse(idcampo);
                        capturaUD.Valor   = collection[llaves[i]];
                        capturaUD.Usuario = ((Usuarios)Session["USUARIO_LOGUEADO"]).IdUsuario;
                        capturaUD.Fecha   = DateTime.Now;
                    }

                    listCaptura.Add(capturaUD);
                }
            }

            //Guarda los datos de los grupos que estan almacenado en esa unidad documental
            unidadDModel.Add(listaGrupos);

            //Guarda los datos adicionales de la unidad documental
            unidadDModel.Add(listCaptura);

            ViewData["CUD"] = CUD;
            ViewData["parametroImpresion"] = parametroImpresion;

            if (parametroImpresion == "2")
            {
                //Queda pendiente crear el codigo de la zebra
            }

            return(View());
        }