예제 #1
0
 /// <summary>
 /// Crea un  nuevo registro en la tabla undad dumental
 /// </summary>
 /// <param name="nuevo">Objeto unidad ducumental</param>
 /// <returns>long</returns>
 public long Add(alm_UnidadDocumental nuevo)
 {
     return(long.Parse(_db.spAlm_InsertarUnidadDocumental(nuevo.Cliente,
                                                          nuevo.Oficina, nuevo.TipoContenedor,
                                                          nuevo.FechaCreacion, nuevo.UsuarioCreacion,
                                                          nuevo.DestinoId).ToArray()[0].Identity.ToString()));
 }
        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());
        }