コード例 #1
0
        public static List <MCatalog> fnListTableCatalog(int?IdCatalog = null, string IdTable = null, int?IdCatalogDetail = null, string IdTableDetail = null, bool?Status = null)
        {
            List <MCatalog>       ListTableCatalog = new List <MCatalog>();
            MMEnterprisesEntities db = new MMEnterprisesEntities();

            ListTableCatalog = (from result in db.GNListCatalog(IdCatalog, IdTable).ToList()
                                select new MCatalog
            {
                IdCatalog = result.IdCatalog,
                IdTable = result.IdTable,
                Description = result.Description,
                TableDetails = (from result2 in db.GNListCatalogDetail(result.IdCatalog, result.IdTable, IdCatalogDetail, IdTableDetail, Status).ToList()
                                select new MCatalogDetail
                {
                    IdCatalogDetail = result2.IdCatalogDetail,
                    IdTableDetail = result2.IdTableDetail,
                    IdCatalog = result2.IdCatalog,
                    Description = result2.DetailDesc,
                    Status = result2.DetailStatus,
                    StatusDesc = result2.DetailStatus == true ? "Activo" : "Inactivo"
                }).ToList()
            }).ToList();

            return(ListTableCatalog);
        }
コード例 #2
0
        public static List <MPosition> fnListPosition(int?IdPosition = null, int?IdDepartment = null, int?IdPositionLevel = null, bool?Status = null)
        {
            List <MPosition>      ListPosition = new List <MPosition>();
            MMEnterprisesEntities db           = new MMEnterprisesEntities();


            ListPosition = (from result in db.GNListPosition(IdPosition, IdDepartment, IdPositionLevel, Status).ToList()
                            select new MPosition
            {
                IdPosition = result.IdPosition,
                Description = result.Description,
                IdDepartment = result.IdDepartment,
                Department = result.Department,
                IdPositionLevel = result.IdPositionLevel,
                PositionLevel = result.PositionLevel,
                Status = result.Status,
                StatusDesc = result.Status == true ? "Activo" : "Inactivo",
                listAssociatePosition = (List <MAssociatePosition>)(from result2 in db.GNListAssociatePosition(result.IdPosition, null).ToList()
                                                                    select new MAssociatePosition
                {
                    IdPosition = result2.IdPosition,
                    IdAssociate = result2.IdAssociate,
                    PositionDesc = result2.PositionDesc,
                    AssociateDesc = result2.AssociateDesc
                }).ToList()
            }).ToList();



            return(ListPosition);
        }
コード例 #3
0
        public static int fnGNTranConfigTkOnBehalfOf(List <MConfigTkOnBehalfOf> ListConfigTkOnBehalfOf, string TransactionType, ref string Mensaje)
        {
            try
            {
                MMEnterprisesEntities db = new MMEnterprisesEntities();

                int IdConfig = 0;
                int SqlResult;

                if (ListConfigTkOnBehalfOf != null && ListConfigTkOnBehalfOf.Count() > 0)
                {
                    //actualizar, se eliminan los registros para volver a insertar
                    if (TransactionType == "U")
                    {
                        SqlResult = db.Database.ExecuteSqlCommand("GNTranConfigTkOnBehalfOf @TransactionType, @IdConfig OUT " +
                                                                  ", @IdUserOnBehalfOf, @IdUser ",
                                                                  new SqlParameter[] {
                            new SqlParameter("@TransactionType", TransactionType),
                            new SqlParameter("@IdConfig", DBNull.Value),
                            new SqlParameter("@IdUserOnBehalfOf", ListConfigTkOnBehalfOf.First().IdUserOnBehalfOf),
                            new SqlParameter("@IdUser", DBNull.Value)
                        }
                                                                  );
                    }

                    foreach (var item in ListConfigTkOnBehalfOf)
                    {
                        if (item.Status != false)
                        {
                            SqlParameter paramOutIdConfig = new SqlParameter();
                            paramOutIdConfig.ParameterName = "@IdConfig";
                            paramOutIdConfig.SqlDbType     = System.Data.SqlDbType.Int;
                            paramOutIdConfig.Direction     = System.Data.ParameterDirection.InputOutput;
                            paramOutIdConfig.Value         = item.IdConfig;

                            SqlResult = db.Database.ExecuteSqlCommand("GNTranConfigTkOnBehalfOf @TransactionType, @IdConfig OUT " +
                                                                      ", @IdUserOnBehalfOf, @IdUser ",
                                                                      new SqlParameter[] {
                                new SqlParameter("@TransactionType", "I"),
                                paramOutIdConfig,
                                new SqlParameter("@IdUserOnBehalfOf", item.IdUserOnBehalfOf),
                                new SqlParameter("@IdUser", item.IdUser)
                            }
                                                                      );
                            IdConfig = Int32.Parse(paramOutIdConfig.Value.ToString());
                        }
                    }
                    Mensaje = "Datos grabados exitosamente.";
                }

                return(IdConfig);
            }
            catch (SqlException ex)
            {
                Mensaje = "Error al grabar datos: " + ex.Message;
                return(0);
            }
        }
コード例 #4
0
        public ActionResult GetTableCatalog(string idTable)
        {
            object ListTableCatalog;
            MMEnterprisesEntities db = new MMEnterprisesEntities();

            ListTableCatalog = db.VWListCatalog.Where(t => t.IdTable == idTable).ToList();

            return(Json(ListTableCatalog, JsonRequestBehavior.AllowGet));
        }
コード例 #5
0
        public ActionResult GetConfigTkOnBehalfOf(int IdUser)
        {
            object ListMConfigTkOnBehalfOf;
            MMEnterprisesEntities db = new MMEnterprisesEntities();

            ListMConfigTkOnBehalfOf = fnListMConfigTkOnBehalfOf(IdUser, null, null).ToList();

            return(Json(ListMConfigTkOnBehalfOf, JsonRequestBehavior.AllowGet));
        }
コード例 #6
0
        public String GetDescDetailTableCatalog(string idTable, int idDetail)
        {
            string DetailDesc;
            MMEnterprisesEntities db = new MMEnterprisesEntities();

            DetailDesc = db.VWListCatalog.Where(t => t.IdTable == idTable && t.IdCatalogDetail == idDetail).First().DetailDesc;

            return(DetailDesc);
        }
コード例 #7
0
        /// <summary>
        /// Busca informacion basica minima de un usuario Con sus accesos.
        /// Se puede buscar Usuario por IdUser o por IdPerson
        /// </summary>
        /// <param optional name="IdUser"></param> <param optional name="Status"></param> <param optional name="IdPerson"></param>
        /// <returns>Objeto de tipo MUser</returns>
        public static MSerUser fnSearchUserSession(int?IdUser = null, bool?Status = null, int?IdPerson = null)
        {
            MSerUser objMUser        = new MSerUser();
            MMEnterprisesEntities db = new MMEnterprisesEntities();

            objMUser = (from result in db.GNListUser(IdUser, Status, IdPerson).ToList()
                        select new MSerUser
            {
                IdUser = result.IdUser,
                Login = result.Login,
                PersonEmployee = (MSerPerson)(from result2 in db.GNListPerson(result.IdPerson, 2, null, null, null).ToList()
                                              select new MSerPerson
                {
                    IdPerson = result2.IdPerson,
                    Name = result2.Name,
                    LastName = result2.LastName,
                    Email = result2.Email
                }).ToList().First(),
                UserAcces = (from result3 in db.GNListRoleUserPermission(result.IdUser, null).ToList()
                             select new MSerAcces
                {
                    IdOption = result3.IdOption,
                    OptionName = result3.OptionName,
                    Visible = result3.Visible == null ? false : (bool)result3.Visible,
                    Create = result3.Create == null ? false : (bool)result3.Create,
                    Search = result3.Search == null ? false : (bool)result3.Search,
                    Edit = result3.Edit == null ? false : (bool)result3.Edit,
                    Delete = result3.Edit == null ? false : (bool)result3.Delete,
                    IdAssociated = result3.IdAssociated,
                    Action = result3.Action,
                    Controller = result3.Controller
                }).ToList(),

                UserAccesPadre = (from result3 in db.GNListRoleUserPermission(null, null).ToList()
                                  select new MSerAcces
                {
                    IdOption = result3.IdOption,
                    OptionName = result3.OptionName,
                    Visible = result3.Visible == null ? false : (bool)result3.Visible,
                    Create = result3.Create == null ? false : (bool)result3.Create,
                    Search = result3.Search == null ? false : (bool)result3.Search,
                    Edit = result3.Edit == null ? false : (bool)result3.Edit,
                    Delete = result3.Edit == null ? false : (bool)result3.Delete,
                    IdAssociated = result3.IdAssociated,
                    Action = result3.Action,
                    Controller = result3.Controller
                }).ToList()
            }).First();

            return(objMUser);
        }
コード例 #8
0
        public static List <MPerson> fnListPerson(int?idPerson, int?PersonType, int?Department = null, bool?PersonStatus = null, int?IdUser = null)
        {
            List <MPerson>        ListPerson = new List <MPerson>();
            MMEnterprisesEntities db         = new MMEnterprisesEntities();

            MUser objUser = new MUser();

            ListPerson = (from result in db.GNListPerson(idPerson, PersonType, PersonStatus, Department, IdUser).ToList()
                          select new MPerson
            {
                IdPerson = result.IdPerson,
                IdPersonType = result.IdPersonType,
                PersonType = result.PersonType,
                IdIdentificationType = result.IdIdentificationType,
                IdentificationType = result.IdentificationType,
                NumIdentification = objUser.Desencriptar(result.NumIdentification),
                Name = result.Name,
                LastName = result.LastName,
                Birthday = result.Birthday,
                Address = objUser.Desencriptar(result.Address),
                Email = result.Email,
                IdContactType = result.IdContactType,
                ContactType = result.ContactType,
                IdPosition = result.IdPosition,
                Position = result.Position,
                ClientPermission = result.ClientPermission,
                Status = result.Status,
                StatusDesc = result.Status == true ? "Activo" : "Inactivo",
                IdDepartment = result.IdDepartment,
                Department = result.Department,
                listPersonContact = (List <MPersonContact>)(from result2 in db.GNListPersonContact(result.IdPerson, result.IdPersonType, null).ToList()
                                                            select new MPersonContact
                {
                    IdContact = result2.IdContact,
                    IdPerson = result2.IdPerson,
                    IdPhoneNumberType = result2.IdPhoneNumberType,
                    PhoneNumberType = result2.PhoneNumberType,
                    IdIsoCountry = result2.IdIsoCountry,
                    CountryAreaCode = result2.CountryAreaCode,
                    PhoneNumber = objUser.Desencriptar(result2.PhoneNumber),
                    Status = result2.Status
                }).ToList()
            }).ToList();



            return(ListPerson);
        }
コード例 #9
0
        public ActionResult DetailTask(int?id)  //string id / MUser objMUser / MParameterUrl objMParameter
        {
            if (Session["Usuario"] == null)
            {
                return(RedirectToAction("Login", "User"));
            }
            else
            {
                var ObjAccesUser = ((MSerUser)Session["Usuario"]).UserAcces;
                var ObjAcces     = ObjAccesUser.Where(p => p.Action == "ListTask").First();
                if (ObjAcces != null)
                {
                    if (ObjAcces.Search == false)
                    {
                        return(RedirectToAction("Index", "Home"));
                    }
                }

                //Aqui se trae el modelo enviado por POST desde la Lista, para que no se vea en la Url
                if (TempData["DataTask"] != null)
                {
                    var objTempData = Newtonsoft.Json.JsonConvert.DeserializeObject <MTask>((string)TempData["DataTask"]);
                    if (objTempData != null && objTempData.IdTask > 0)
                    {
                        id = objTempData.IdTask;
                    }
                    else
                    {
                        return(RedirectToAction("ListTask", "Task"));
                    }
                }
                if (id == null)
                {
                    return(RedirectToAction("ListTask", "Task"));
                }
                //-----------------------------------------------------

                MUser ObjUser            = new MUser();
                int?  IdUser             = ((MSerUser)Session["Usuario"]).IdUser;
                MMEnterprisesEntities db = new MMEnterprisesEntities();

                //Convert.ToInt32(id)
                var objListTask = fnListTask(id, null, null, null, null, null, null, null, null, IdUser, null);

                return(View(objListTask.First()));
            }
        }
コード例 #10
0
        public ActionResult Index()
        {
            if (Session["Usuario"] == null)
            {
                return(RedirectToAction("Login", "User"));
            }
            else
            {
                MStatistics objStatistics = new MStatistics();

                int intEmployee = PersonController.fnListPerson(null, 2, null, true).Count(); //2-empleado
                objStatistics.NroEmployee = intEmployee;

                int intClient = PersonController.fnListPerson(null, 1, null, true).Count(); //1-Client
                objStatistics.NroClient = intClient;

                objStatistics.ServicesProcess   = 0;
                objStatistics.servicesCompleted = 0;

                MMEnterprisesEntities db = new MMEnterprisesEntities();
                var Service = ServiceRequestController.fnListServiceRequest(null, null, null, null, null); //1-Client
                if (Service != null && Service.Count > 0)
                {
                    var ListTableCatalog = db.VWListCatalog.Where(t => t.IdTable == "SERVICESTATUS").ToList();
                    if (ListTableCatalog.Count > 0)
                    {
                        var objProcesando = ListTableCatalog.Where(p => p.DetailDesc == "Procesando").First();
                        var objFinalizado = ListTableCatalog.Where(p => p.DetailDesc == "Finalizado").First();
                        if (objProcesando != null)
                        {
                            var ServicesProcess = Service.FindAll(p => p.IdServiceStatus == objProcesando.IdCatalogDetail).ToList();
                            objStatistics.ServicesProcess = ServicesProcess.Count();
                        }

                        if (objFinalizado != null)
                        {
                            var servicesCompleted = Service.FindAll(p => p.IdServiceStatus == objFinalizado.IdCatalogDetail).ToList();
                            objStatistics.servicesCompleted = servicesCompleted.Count();
                        }
                    }
                }



                return(View(objStatistics));
            }
        }
コード例 #11
0
        public ActionResult AddTask()
        {
            if (Session["Usuario"] == null)
            {
                return(RedirectToAction("Login", "User"));
            }
            var ObjAccesUser = ((MSerUser)Session["Usuario"]).UserAcces;
            var ObjAcces     = ObjAccesUser.Where(p => p.Action == "ListTask").First();

            if (ObjAcces != null)
            {
                if (ObjAcces.Create == false)
                {
                    return(RedirectToAction("Index", "Home"));
                }
            }


            List <MTask>          listTask = new List <MTask>();
            MMEnterprisesEntities db       = new MMEnterprisesEntities();

            MUser objUser = new MUser();
            MTask objMask = new MTask();

            objMask.listTaskPerson = new List <MTaskPerson>();
            objMask.IdCreatedBy    = ((MSerUser)Session["Usuario"]).IdUser;
            objMask.IdUser         = ((MSerUser)Session["Usuario"]).IdUser;

            //var ListUserCreate = (from result in db.GNListConfigTkOnBehalfOf(((MSerUser)Session["Usuario"]).IdUser, null, null).ToList()
            //                      select new MConfigTkOnBehalfOf
            //                      {
            //                          IdUser = result.IdUserOnBehalfOf,
            //                          Name = objUser.Desencriptar(result.NumIdentificationOnBehalfOf) + " - " + result.LastNameOnBehalfOf + (result.NameOnBehalfOf != "" ? " " + result.NameOnBehalfOf : ""),
            //                      }).ToList();

            //SelectList ListUserCreateSelectList = new SelectList(ListUserCreate, "IdUser", "Name");

            //objMask.ListUserCreate = ListUserCreateSelectList;

            if (TempData["Success"] != null)
            {
                ViewBag.SuccessSave = TempData["Success"];
            }

            return(View(objMask));
        }
コード例 #12
0
        public static List <MCatalogDetail> fnListStatusServiceType(int?IdServiceType, int?IdServiceStatus, bool?StatusServiceType = null, bool?StatusServiceStatus = null)
        {
            List <MCatalogDetail> ListStatusServiceType = new List <MCatalogDetail>();
            MMEnterprisesEntities db = new MMEnterprisesEntities();

            ListStatusServiceType = (from result in db.GNListStatusServiceType(IdServiceType, IdServiceStatus, StatusServiceType, StatusServiceStatus).ToList()
                                     select new MCatalogDetail
            {
                IdCatalogDetail = result.IdServiceStatus,
                IdTableDetail = result.IdTableDetail,
                Description = result.ServiceStatus
            }).ToList();



            return(ListStatusServiceType);
        }
コード例 #13
0
        // GET: User/Create
        public ActionResult AddUser()
        {
            if (Session["Usuario"] == null)
            {
                return(RedirectToAction("Login", "User"));
            }
            else
            {
                var ObjAccesUser = ((MSerUser)Session["Usuario"]).UserAcces;
                var ObjAcces     = ObjAccesUser.Where(p => p.Action == "ListUser").First();
                if (ObjAcces != null)
                {
                    if (ObjAcces.Create == false)
                    {
                        return(RedirectToAction("Index", "Home"));
                    }
                }

                MUser ObjUser            = new MUser();
                MMEnterprisesEntities db = new MMEnterprisesEntities();

                ObjUser.UserAccesPadre = (from result3 in db.GNListUserAcces(null, null, null).ToList()
                                          select new MUserAcces
                {
                    IdOption = result3.IdOption,
                    OptionName = result3.OptionName,
                    Visible = result3.Visible == null ? false : (bool)result3.Visible,
                    Create = result3.Create == null ? false : (bool)result3.Create,
                    Search = result3.Search == null ? false : (bool)result3.Search,
                    Edit = result3.Edit == null ? false : (bool)result3.Edit,
                    Delete = result3.Edit == null ? false : (bool)result3.Delete,
                    IdAssociated = result3.IdAssociated
                }).ToList();

                ObjUser.UserAcces = new List <MUserAcces>();
                ObjUser.Roles     = new List <MRole>();

                if (TempData["Success"] != null)
                {
                    ViewBag.SuccessSave = TempData["Success"];
                }

                return(View(ObjUser));
            }
        }
コード例 #14
0
        public static List <MConfigurationParameter> fnListMConfigurationParameter(int?IdConfig = null, string strAbbreviation = null)
        {
            List <MConfigurationParameter> listMConfigurationParameter = new List <MConfigurationParameter>();
            MMEnterprisesEntities          db = new MMEnterprisesEntities();

            MUser objUser = new MUser();


            listMConfigurationParameter = (List <MConfigurationParameter>)(from CP in db.GNLisConfigurationParameter(IdConfig, strAbbreviation).ToList()
                                                                           select new MConfigurationParameter
            {
                IdConfig     = CP.IdConfig,
                Description  = CP.Description,
                Abbreviation = CP.Abbreviation,
                Value        = CP.Value
            }).ToList();
            return(listMConfigurationParameter);
        }
コード例 #15
0
        public ActionResult GetListCountry()
        {
            List <MCountry>       ListCountry = new List <MCountry>();
            MMEnterprisesEntities db          = new MMEnterprisesEntities();

            ListCountry = (from result in db.GNListCountry(null, null).ToList()
                           select new MCountry
            {
                IdCountry = result.IdCountry,
                IdIsoCountry = result.IdIsoCountry,
                Country = result.Country,
                CountryAreaCode = result.CountryAreaCode,
                Status = result.Status,
                StatusDesc = result.Status == true ? "Activo" : "Inactivo"
            }).ToList();

            return(Json(ListCountry, JsonRequestBehavior.AllowGet));
        }
コード例 #16
0
        public static List <MRole> fnListRole(int?IdRole = null, bool?Status = null)
        {
            List <MRole>          ListRole = new List <MRole>();
            MMEnterprisesEntities db       = new MMEnterprisesEntities();

            ListRole = (from result in db.GNListRole(IdRole, Status).ToList()
                        select new MRole
            {
                IdRole = result.IdRole,
                NameRole = result.NameRole,
                Status = result.Status,
                StatusDesc = result.Status == true ? "Activo" : "Inactivo",
                RoleAcces = (from result3 in db.GNListRoleAcces(result.IdRole, null).ToList()
                             select new MRoleAcces
                {
                    IdOption = result3.IdOption,
                    OptionName = result3.OptionName,
                    Visible = result3.Visible == null ? false : (bool)result3.Visible,
                    Create = result3.Create == null ? false : (bool)result3.Create,
                    Search = result3.Search == null ? false : (bool)result3.Search,
                    Edit = result3.Edit == null ? false : (bool)result3.Edit,
                    Delete = result3.Edit == null ? false : (bool)result3.Delete,
                    IdAssociated = result3.IdAssociated,
                    Action = result3.Action,
                    Controller = result3.Controller
                }).ToList(),
                RoleAccesPadre = (from result3 in db.GNListRoleAcces(null, null).ToList()
                                  select new MRoleAcces
                {
                    IdOption = result3.IdOption,
                    OptionName = result3.OptionName,
                    Visible = result3.Visible == null ? false : (bool)result3.Visible,
                    Create = result3.Create == null ? false : (bool)result3.Create,
                    Search = result3.Search == null ? false : (bool)result3.Search,
                    Edit = result3.Edit == null ? false : (bool)result3.Edit,
                    Delete = result3.Edit == null ? false : (bool)result3.Delete,
                    IdAssociated = result3.IdAssociated,
                    Action = result3.Action,
                    Controller = result3.Controller
                }).ToList()
            }).ToList();

            return(ListRole);
        }
コード例 #17
0
        public ActionResult DetailMenuOption(int IdRole, int IdAssociated)
        {
            List <MRoleAcces>     ObjRoleAcces = new List <MRoleAcces>();
            MMEnterprisesEntities db           = new MMEnterprisesEntities();

            ObjRoleAcces = (from result3 in db.GNListRoleAcces(IdRole, IdAssociated).ToList()
                            select new MRoleAcces
            {
                IdOption = result3.IdOption,
                OptionName = result3.OptionName,
                Visible = result3.Visible == null ? false : (bool)result3.Visible,
                Create = result3.Create == null ? false : (bool)result3.Create,
                Search = result3.Search == null ? false : (bool)result3.Search,
                Edit = result3.Edit == null ? false : (bool)result3.Edit,
                Delete = result3.Edit == null ? false : (bool)result3.Delete,
                IdAssociated = result3.IdAssociated
            }).ToList();

            return(Json(ObjRoleAcces, JsonRequestBehavior.AllowGet));
        }
コード例 #18
0
        /// <summary>
        /// Lista usuarios con informacion basica Sin accesos.
        /// Se puede Filtrar por IdUser, Status, IdPerson.
        /// </summary>
        /// <param optional name="IdUser"></param> <param optional name="Status"></param> <param optional name="IdPerson"></param>
        /// <returns>Lista de tipo MUser</returns>
        public List <MUser> fnListUser(int?IdUser = null, bool?Status = null, int?IdPerson = null)
        {
            List <MUser>          ListUser = new List <MUser>();
            MMEnterprisesEntities db       = new MMEnterprisesEntities();

            MUser ObjUser = new MUser();

            ListUser = (from result in db.GNListUser(IdUser, Status, IdPerson).ToList()
                        select new MUser
            {
                IdUser = result.IdUser,
                IdPerson = result.IdPerson,
                Login = result.Login,
                Status = result.Status,
                StatusDesc = result.Status == true ? "Activo" : "Inactivo",
                PersonEmployee = (MPerson)(from result2 in db.GNListPerson(result.IdPerson, 2, null, null, null).ToList()
                                           select new MPerson
                {
                    //IdPerson = result2.IdPerson,
                    //IdPersonType = result2.IdPersonType,
                    //PersonType = result2.PersonType,
                    //IdIdentificationType = result2.IdIdentificationType,
                    //IdentificationType = result2.IdentificationType,
                    NumIdentification = ObjUser.Desencriptar(result2.NumIdentification),
                    Name = result2.Name,
                    LastName = result2.LastName,
                    //Birthday = result2.Birthday,
                    //Address = ObjUser.Desencriptar(result2.Address),
                    //Email = result2.Email,
                    //IdContactType = result2.IdContactType,
                    //ContactType = result2.ContactType,
                    //IdPosition = result2.IdPosition,
                    Position = result2.Position //,
                                                //ClientPermission = result2.ClientPermission,
                                                //Status = result2.Status
                }).ToList().FirstOrDefault(),
                UserRolesNames = String.Join(",", db.GNListUserRole(null, result.IdUser).Select(c => c.NameRole).ToList())
            }).ToList();

            return(ListUser);
        }
コード例 #19
0
        public static List <MCalendar> fnListCalendar(int?IdTask = null, DateTime?dttDateIni = null, DateTime?dttDateEnd = null, int?IdResponsable = null, string strTittle = "", int?IdPriority = null, int?IdStatus = null, int?IdTypeTask = null, int?IdServiceRequest = null, int?IdUser = null, int?IdFatherTask = null)
        {
            List <MCalendar>      listMCalendar = new List <MCalendar>();
            MMEnterprisesEntities db            = new MMEnterprisesEntities();

            MUser objUser = new MUser();


            listMCalendar = (List <MCalendar>)(from tsk in db.GNListTask(IdTask, dttDateIni, dttDateEnd, IdResponsable, strTittle, IdPriority, IdStatus, IdTypeTask, IdServiceRequest, IdUser, IdFatherTask, null, null).ToList()
                                               select new MCalendar
            {
                IdTask     = tsk.IdTask,
                Tittle     = tsk.Tittle,
                Activity   = tsk.Activity,
                DateIni    = tsk.DateIni.ToString("yyyy-MM-dd"),
                DateEnd    = tsk.DateEnd.ToString("yyyy-MM-dd"),
                HourIni    = tsk.HourIni.ToString(),
                HourEnd    = tsk.HourEnd.ToString(),
                StatusTask = tsk.Status
            }).ToList();
            return(listMCalendar);
        }
コード例 #20
0
        /// <summary>
        /// Filtrar por "IdUserOnBehalfOf" para la pantalla "ListConfigTkOnBehalfOf" , la tabla se llena con  IdConfig,IdUser,NumIdentification,Name,LastName.
        /// Filtrar por "IdUser" para la pantalla "AddTask" y para llenar el combobox usar IdUserOnBehalfOf,NumIdentificationOnBehalfOf,NameOnBehalfOf,LastNameOnBehalfOf.
        /// </summary>
        public static List <MConfigTkOnBehalfOf> fnListMConfigTkOnBehalfOf(int?IdUser = null, int?IdUserOnBehalfOf = null, int?IdConfig = null)
        {
            List <MConfigTkOnBehalfOf> ListConfigTkOnBehalfOf = new List <MConfigTkOnBehalfOf>();
            MMEnterprisesEntities      db = new MMEnterprisesEntities();

            MUser objUser = new MUser();

            ListConfigTkOnBehalfOf = (from result in db.GNListConfigTkOnBehalfOf(IdUser, IdUserOnBehalfOf, IdConfig).ToList()
                                      select new MConfigTkOnBehalfOf
            {
                IdConfig = result.IdConfig,
                IdUserOnBehalfOf = result.IdUserOnBehalfOf,
                NumIdentificationOnBehalfOf = objUser.Desencriptar(result.NumIdentificationOnBehalfOf),
                NameOnBehalfOf = result.NameOnBehalfOf,
                LastNameOnBehalfOf = result.LastNameOnBehalfOf,
                IdUser = result.IdUser,
                NumIdentification = objUser.Desencriptar(result.NumIdentification),
                Name = result.Name,
                LastName = result.LastName
            }).ToList();

            return(ListConfigTkOnBehalfOf);
        }
コード例 #21
0
        public static List <MNotificationSettings> fnListMNotificationSettings(int?IdUser = null, int?IdPerson = null)
        {
            List <MNotificationSettings> listNotificacionSetting = new List <MNotificationSettings>();
            MMEnterprisesEntities        db = new MMEnterprisesEntities();

            MUser objUser = new MUser();


            listNotificacionSetting = (List <MNotificationSettings>)(from Notif in db.GNLisNotificationSettings(IdUser, IdPerson).ToList()
                                                                     select new MNotificationSettings
            {
                IdSetting       = Notif.IdSetting,
                IdUser          = Notif.IdUser,
                SendAddComment  = Notif.SendAddComment,
                SendColaborator = Notif.SendColaborator,
                SendEditComment = Notif.SendEditComment,
                SendFollower    = Notif.SendFollower,
                SendResponsable = Notif.SendResponsable,
                Email           = Notif.Email,
                LisMNotificationSettingsPriority = (List <MNotificationSettingsPriority>)(from NP in db.GNLisNotificationSettingsPriority(Notif.IdSetting).ToList()
                                                                                          select new MNotificationSettingsPriority
                {
                    IdPriority = NP.IdPriority,
                    IdSetting  = NP.IdSetting,
                    Priority   = NP.Priority
                }).ToList(),
                LisNotificationSettingsStatus = (List <MNotificationSettingsStatus>)(from NS in db.GNLisNotificationSettingsStatus(Notif.IdSetting).ToList()
                                                                                     select new MNotificationSettingsStatus
                {
                    IdSetting = NS.IdSetting,
                    IdStatus  = NS.IdStatus,
                    Status    = NS.Status
                }).ToList(),
            }).ToList();
            return(listNotificacionSetting);
        }
コード例 #22
0
        public ActionResult GetListTask(MTask objFilter)
        {
            List <MTask>          objListTask = new List <MTask>();
            MMEnterprisesEntities db          = new MMEnterprisesEntities();

            int?     IdTask           = null;
            DateTime?dttDateIni       = null;
            DateTime?dttDateEnd       = null;
            int?     IdResponsable    = null;
            int?     IdPriority       = null;
            int?     IdStatus         = null;
            int?     IdTypeTask       = null;
            int?     IdServiceRequest = null;
            int?     IdUser           = ((MSerUser)Session["Usuario"]).IdUser;
            int?     IdFatherTask     = null;
            string   strtittle        = "";
            int?     IdColaborator    = null;
            int?     IdFollower       = null;

            if (objFilter.IdTask > 0)
            {
                IdTask = objFilter.IdTask;
            }

            if (objFilter.DateIni != null)
            {
                dttDateIni = objFilter.DateIni;
            }

            if (objFilter.DateEnd != null)
            {
                dttDateEnd = objFilter.DateEnd;
            }

            if (objFilter.IdPersonEmployee != null && objFilter.IdPersonEmployee > 0)
            {
                IdResponsable = objFilter.IdPersonEmployee;
            }

            if (objFilter.IdPriority > 0)
            {
                IdPriority = objFilter.IdPriority;
            }

            if (objFilter.IdStatus > 0)
            {
                IdStatus = objFilter.IdStatus;
            }

            if (objFilter.IdTypeTask > 0)
            {
                IdTypeTask = objFilter.IdTypeTask;
            }

            if (objFilter.IdServiceRequest != null)
            {
                IdServiceRequest = objFilter.IdServiceRequest;
            }

            if (objFilter.IdUser > 0)
            {
                IdUser = objFilter.IdUser;
            }

            if (objFilter.Tittle != null)
            {
                strtittle = objFilter.Tittle;
            }

            if (objFilter.IdFatherTask != null)
            {
                IdFatherTask = objFilter.IdFatherTask;
            }

            if (objFilter.Tittle != null)
            {
                strtittle = objFilter.Tittle;
            }

            if (objFilter.IdColaborator != null)
            {
                IdColaborator = objFilter.IdColaborator;
            }

            if (objFilter.IdFollower != null)
            {
                IdFollower = objFilter.IdFollower;
            }

            objListTask = fnListTask(IdTask, dttDateIni, dttDateEnd, IdResponsable, strtittle, IdPriority, IdStatus, IdTypeTask, IdServiceRequest, IdUser, IdFatherTask, IdColaborator, IdFollower);

            return(Json(objListTask, JsonRequestBehavior.AllowGet));
        }
コード例 #23
0
        public ActionResult Login(MUser objUser)
        {
            //Session.Timeout = 30; //Se coloco en el web config
            try
            {
                //objUser.IdPerson = 1;

                if (string.IsNullOrEmpty(objUser.Login) || string.IsNullOrEmpty(objUser.Password))
                {
                    return(View(objUser));
                }

                MMEnterprisesEntities db = new MMEnterprisesEntities();
                MUser OUser = new MUser();

                int SqlResult;

                SqlParameter paramOutIdUsuario = new SqlParameter();
                paramOutIdUsuario.ParameterName = "@IdUser";
                paramOutIdUsuario.SqlDbType     = System.Data.SqlDbType.Int;
                paramOutIdUsuario.Direction     = System.Data.ParameterDirection.Output;
                paramOutIdUsuario.Value         = objUser.IdUser;

                SqlResult = db.Database.ExecuteSqlCommand("GNAuthenticationUser @strLogin, @strPassword, @IdUser OUT ",
                                                          new SqlParameter[] {
                    new SqlParameter("@strLogin", objUser.Login),
                    new SqlParameter("@strPassword", OUser.Encriptar(objUser.Password)),
                    paramOutIdUsuario
                }
                                                          );

                if (SqlResult != 0)
                {
                    int IdUser = Int32.Parse(paramOutIdUsuario.Value.ToString());
                    if (IdUser != 0)
                    {
                        MSerUser ObjUser = new MSerUser();

                        ObjUser = fnSearchUserSession(IdUser);

                        Session["Usuario"] = ObjUser;

                        return(RedirectToAction("Index", "Home"));
                    }
                    else
                    {
                        ViewBag.ErrorSave = "Error al Autenticar";
                        return(View(objUser));
                    }
                }
                else
                {
                    ViewBag.ErrorSave = "Error al Autenticar";
                    return(View(objUser));
                }
            }
            catch (Exception e)
            {
                ViewBag.ErrorSave = e.Message;
                return(View(objUser));
            }
        }
コード例 #24
0
        public List <object> CreatedataTable(Mperformace objDatos)
        {
            MEstadistica objEsta = new MEstadistica();
            DataTable    dt      = new DataTable();

            dt.Columns.Add("label", System.Type.GetType("System.String"));
            dt.Columns.Add("backgroundColor", System.Type.GetType("System.String"));
            dt.Columns.Add("borderColor", System.Type.GetType("System.String"));
            dt.Columns.Add("Estado", System.Type.GetType("System.Object"));
            dt.Columns.Add("data", System.Type.GetType("System.Object"));


            List <MPerformance>   listMPerformance = new List <MPerformance>();
            MMEnterprisesEntities db = new MMEnterprisesEntities();

            listMPerformance = (List <MPerformance>)(from tsk in db.GNLisChart(objDatos.XEmployee, objDatos.IdEmployee, objDatos.XDepartament, objDatos.IdDepartment, objDatos.XMonth, objDatos.Year, objDatos.XYear, objDatos.YearIni, objDatos.YearEnd, objDatos.XDate, objDatos.DateIni, objDatos.DateEnd, objDatos.Xtype, objDatos.IdTypeTask).ToList()
                                                     select new MPerformance
            {
                Nombre     = tsk.Nombre,
                StatusTask = tsk.StatusTask,
                Cantidad   = (int)tsk.Cantidad
            }).ToList();


            var grouped = from p in listMPerformance
                          group p by new
            {
                Nombre = p.Nombre
            } into d
                select new { d.Key };

            List <string>        objLista         = new List <string>();
            List <VWListCatalog> ListTableCatalog = null;

            if (objDatos.Xtype == true)
            {
                ListTableCatalog = db.VWListCatalog.Where(t => t.IdTable == "TYPETASK").ToList();
            }
            else
            {
                ListTableCatalog = db.VWListCatalog.Where(t => t.IdTable == "STATETASK").ToList();
            }
            List <string> objListEstado = new List <string>();

            foreach (var item in ListTableCatalog)
            {
                objListEstado.Add(item.DetailDesc);
            }


            if (ListTableCatalog.Count > 0)
            {
                foreach (var itemg in grouped)
                {
                    objLista.Add(itemg.Key.Nombre);

                    List <int> objLisCant = new List <int>();


                    foreach (var item in ListTableCatalog)
                    {
                        var LisResp = listMPerformance.Where(x => x.Nombre == itemg.Key.Nombre && x.StatusTask == item.DetailDesc).ToList();
                        if (LisResp.Count > 0)
                        {
                            objLisCant.Add(LisResp[0].Cantidad);
                        }
                        else
                        {
                            objLisCant.Add(0);
                        }
                    }

                    dt.Rows.Add(itemg.Key.Nombre, " ", "", objLisCant.ToArray(), objListEstado.ToArray());
                }
            }

            var listColor = (from tsk in db.GNLisColor() select new { tsk.backgroundColor, tsk.borderColor }).ToList();

            int h = 0;

            for (int i = 0; i < dt.Rows.Count; i++)
            {
                while (i < listColor.Count - 1)
                {
                    dt.Rows[i]["backgroundColor"] = listColor[i].backgroundColor;
                    dt.Rows[i]["borderColor"]     = listColor[i].borderColor;
                    break;
                }
            }

            dt.AcceptChanges();


            objEsta.Nombre = objLista;
            objEsta.Data   = dt;
            List <object> iData = new List <object>();

            foreach (DataColumn dc in dt.Columns)
            {
                List <object> x = new List <object>();
                x = (from DataRow drr in dt.Rows select drr[dc.ColumnName]).ToList();
                iData.Add(x);
            }

            return(iData);
        }
コード例 #25
0
        public static int fnGNTranPerson(MPerson objPerson, string TransactionType, ref string Mensaje)
        {
            try
            {
                TextInfo ti = CultureInfo.CurrentCulture.TextInfo; //para capitalizar textos

                MMEnterprisesEntities db = new MMEnterprisesEntities();

                int IdPerson;
                int IdContact;
                int SqlResultPerson;
                int SqlResult;

                SqlParameter paramOutIdPerson = new SqlParameter();
                paramOutIdPerson.ParameterName = "@IdPerson";
                paramOutIdPerson.SqlDbType     = System.Data.SqlDbType.Int;
                paramOutIdPerson.Direction     = System.Data.ParameterDirection.InputOutput;
                paramOutIdPerson.Value         = objPerson.IdPerson;

                SqlParameter paramIdContactType = new SqlParameter();
                paramIdContactType.ParameterName = "@IdContactType";
                paramIdContactType.SqlDbType     = System.Data.SqlDbType.Int;
                paramIdContactType.Direction     = System.Data.ParameterDirection.Input;
                paramIdContactType.IsNullable    = true;
                if (objPerson.IdContactType != null)
                {
                    paramIdContactType.Value = objPerson.IdContactType;
                }
                else
                {
                    paramIdContactType.Value = DBNull.Value;
                }

                SqlParameter paramIdPosition = new SqlParameter();
                paramIdPosition.ParameterName = "@IdPosition";
                paramIdPosition.SqlDbType     = System.Data.SqlDbType.Int;
                paramIdPosition.Direction     = System.Data.ParameterDirection.Input;
                paramIdPosition.IsNullable    = true;
                if (objPerson.IdPosition != null)
                {
                    paramIdPosition.Value = objPerson.IdPosition;
                }
                else
                {
                    paramIdPosition.Value = DBNull.Value;
                }

                SqlParameter paramIdDepartment = new SqlParameter();
                paramIdDepartment.ParameterName = "@IdDepartment";
                paramIdDepartment.SqlDbType     = System.Data.SqlDbType.Int;
                paramIdDepartment.Direction     = System.Data.ParameterDirection.Input;
                paramIdDepartment.IsNullable    = true;
                if (objPerson.IdDepartment != null)
                {
                    paramIdDepartment.Value = objPerson.IdDepartment;
                }
                else
                {
                    paramIdDepartment.Value = DBNull.Value;
                }

                MUser objUser = new MUser();

                SqlResultPerson = db.Database.ExecuteSqlCommand("GNTranPerson @TransactionType, @IdPerson OUT, @IdPersonType " +
                                                                ", @IdIdentificationType, @strNumIdentification, @strName, @strLastName, @dttBirthday " +
                                                                ", @strAddress, @strEmail, @IdContactType, @IdPosition, @btClientPermission, @btStatus, @IdDepartment ",
                                                                new SqlParameter[] {
                    new SqlParameter("@TransactionType", TransactionType),
                    paramOutIdPerson,
                    new SqlParameter("@IdPersonType", objPerson.IdPersonType),
                    new SqlParameter("@IdIdentificationType", objPerson.IdIdentificationType),
                    new SqlParameter("@strNumIdentification", objUser.Encriptar(objPerson.NumIdentification)),
                    new SqlParameter("@strName", ti.ToTitleCase(objPerson.Name)),
                    new SqlParameter("@strLastName", ti.ToTitleCase(objPerson.LastName)),
                    new SqlParameter("@dttBirthday", objPerson.Birthday),
                    new SqlParameter("@strAddress", objUser.Encriptar(objPerson.Address)),
                    new SqlParameter("@strEmail", objPerson.Email),
                    paramIdContactType,
                    paramIdPosition,
                    new SqlParameter("@btClientPermission", objPerson.ClientPermission),
                    new SqlParameter("@btStatus", objPerson.Status),
                    paramIdDepartment
                }
                                                                );

                IdPerson = Int32.Parse(paramOutIdPerson.Value.ToString());

                if (IdPerson != 0)
                {
                    if (objPerson.listPersonContact != null)
                    {
                        if (objPerson.listPersonContact.Count() > 0)
                        {
                            //si va a actualizar, se eliminan los telefonos de contacto para volver a insertar
                            if (TransactionType == "U")
                            {
                                SqlParameter paramOutIdContact = new SqlParameter("@IdContact", System.Data.SqlDbType.Int);
                                paramOutIdContact.Direction = System.Data.ParameterDirection.Output;

                                SqlResult = db.Database.ExecuteSqlCommand("GNTranPersonContact @TransactionType, @IdContact OUT, @IdPerson " +
                                                                          ", @IdPhoneNumberType, @strIdIsoCountry, @strPhoneNumber, @btStatus ",
                                                                          new SqlParameter[] {
                                    new SqlParameter("@TransactionType", TransactionType),
                                    paramOutIdContact,
                                    new SqlParameter("@IdPerson", IdPerson),
                                    new SqlParameter("@IdPhoneNumberType", DBNull.Value),
                                    new SqlParameter("@strIdIsoCountry", DBNull.Value),
                                    new SqlParameter("@strPhoneNumber", DBNull.Value),
                                    new SqlParameter("@btStatus", DBNull.Value)
                                }
                                                                          );
                            }

                            //Inserta los telefonos de contacto
                            foreach (var item in objPerson.listPersonContact)
                            {
                                SqlParameter paramOutIdContact = new SqlParameter("@IdContact", System.Data.SqlDbType.Int);
                                paramOutIdContact.Direction = System.Data.ParameterDirection.Output;

                                SqlResult = db.Database.ExecuteSqlCommand("GNTranPersonContact @TransactionType, @IdContact OUT, @IdPerson " +
                                                                          ", @IdPhoneNumberType, @strIdIsoCountry, @strPhoneNumber, @btStatus ",
                                                                          new SqlParameter[] {
                                    new SqlParameter("@TransactionType", "I"),
                                    paramOutIdContact,
                                    new SqlParameter("@IdPerson", IdPerson),
                                    new SqlParameter("@IdPhoneNumberType", item.IdPhoneNumberType),
                                    new SqlParameter("@strIdIsoCountry", item.IdIsoCountry),
                                    new SqlParameter("@strPhoneNumber", objUser.Encriptar(item.PhoneNumber)),
                                    new SqlParameter("@btStatus", true)
                                }
                                                                          );
                                IdContact = Int32.Parse(paramOutIdContact.Value.ToString());
                            }
                        }
                    }

                    //Mensaje = "Datos grabados exitosamente para el Código de empleado: (" + IdPerson + ").";
                    Mensaje = "Datos grabados exitosamente.";
                }
                else
                {
                    Mensaje = "No se pudo realizar la transaccion, intente nuevamente.";
                }

                return(SqlResultPerson);
            }
            catch (SqlException ex)
            {
                Mensaje = "Error al grabar datos: " + ex.Message;
                return(0);
            }
        }
コード例 #26
0
        public static int fnGNTranTask(MTask objTask, string TransactionType, ref int IdTask, ref string Mensaje)
        {
            try
            {
                MMEnterprisesEntities db           = new MMEnterprisesEntities();
                Utilities             objUtilities = new Utilities();

                string activity       = "";
                string strfromaddress = ConfigurationParameterController.fnListMConfigurationParameter(null, "MAILNOTIFICACIONES").FirstOrDefault().Value;
                string strSubject     = ConfigurationParameterController.fnListMConfigurationParameter(null, "SUBJECTNOTIFICACIONES").FirstOrDefault().Value;
                string strPassword    = ConfigurationParameterController.fnListMConfigurationParameter(null, "PASSWORDNOTIFICACIONES").FirstOrDefault().Value;
                string strHost        = ConfigurationParameterController.fnListMConfigurationParameter(null, "HOSTNOTIFICACIONES").FirstOrDefault().Value;
                string strPuerto      = ConfigurationParameterController.fnListMConfigurationParameter(null, "PORTNOTIFICACIONES").FirstOrDefault().Value;
                string strMiembros    = "";
                if (objTask.listTaskPerson.Count() > 0)
                {
                    strMiembros = objTask.listTaskPerson.Select(x => { return(x.PersonEmployeeLastName); }).ToList().Aggregate((a, b) => $"{a},{b}");
                }

                if (objTask.PersonEmployeeLastName != "")
                {
                    if (strMiembros != "")
                    {
                        strMiembros = strMiembros + ", ";
                    }

                    strMiembros = strMiembros + objTask.PersonEmployeeLastName;
                }


                string strBody = "";
                if (objTask.TypeTask == "Reunión")
                {
                    strBody = ConfigurationParameterController.fnListMConfigurationParameter(null, "BODYNOTIFICACIONESMEETING").FirstOrDefault().Value;
                    strBody = strBody.Replace("[Members]", strMiembros);
                    strBody = strBody.Replace("[Place]", objTask.Place == null ? "" : objTask.Place);
                }
                else
                {
                    strBody = ConfigurationParameterController.fnListMConfigurationParameter(null, "BODYNOTIFICACIONESTASK").FirstOrDefault().Value;
                    strBody = strBody.Replace("[Type]", objTask.TypeTask == null ? "" : objTask.TypeTask.ToString());
                }

                strBody = strBody.Replace("[Title]", objTask.Tittle == null ? "" : objTask.Tittle.ToString());
                strBody = strBody.Replace("[DateIni]", objTask.DateIni == null ? "" : objTask.DateIni.Value.ToShortDateString());
                strBody = strBody.Replace("[DateEnd]", objTask.DateEnd.Value.ToShortDateString());
                DateTime timeIni        = DateTime.Today.Add(objTask.HourIni);
                string   displayTimeIni = timeIni.ToString("hh:mm tt");
                strBody = strBody.Replace("[HourIni]", displayTimeIni);

                DateTime timeEnd        = DateTime.Today.Add(objTask.HourEnd);
                string   displayTimeEnd = timeEnd.ToString("hh:mm tt");
                strBody = strBody.Replace("[HourEnd]", displayTimeEnd);
                strBody = strBody.Replace("[Priority]", objTask.PriorityTask == null ? "" : objTask.PriorityTask.ToString());
                strBody = strBody.Replace("[Status]", objTask.Status == null ? "" : objTask.Status.ToString());

                int SqlResult;
                int SqlResultTask;

                SqlParameter paramOutIdTask = new SqlParameter();
                paramOutIdTask.ParameterName = "@IdTask";
                paramOutIdTask.SqlDbType     = System.Data.SqlDbType.Int;
                paramOutIdTask.Direction     = System.Data.ParameterDirection.InputOutput;
                paramOutIdTask.Value         = objTask.IdTask;

                SqlParameter paramTransactionType = new SqlParameter();
                paramTransactionType.ParameterName = "@TransactionType";
                if (objTask.IdTask == 0 && TransactionType == "U")
                {
                    //la task no existe, debe ser creada.
                    paramTransactionType.Value = "I";
                }
                else
                {
                    paramTransactionType.Value = TransactionType;
                }

                SqlParameter paramIdFatherTask = new SqlParameter();
                paramIdFatherTask.ParameterName = "@IdFatherTask";
                paramIdFatherTask.SqlDbType     = System.Data.SqlDbType.Int;
                paramIdFatherTask.Direction     = System.Data.ParameterDirection.Input;
                paramIdFatherTask.IsNullable    = true;
                if (objTask.IdFatherTask != null)
                {
                    paramIdFatherTask.Value = objTask.IdFatherTask;
                }
                else
                {
                    paramIdFatherTask.Value = DBNull.Value;
                }

                SqlParameter paramPlace = new SqlParameter();
                paramPlace.ParameterName = "@strPlace";

                if (objTask.Place != null)
                {
                    paramPlace.Value = objTask.Place;
                }
                else
                {
                    paramPlace.Value = "";
                }

                if (objTask.DateEnd == null)
                {
                    objTask.DateEnd = DateTime.Today;
                }

                if (objTask.DateIni == null)
                {
                    objTask.DateIni = DateTime.Today;
                }


                if (objTask.HourEnd == null)
                {
                    objTask.HourEnd = TimeSpan.Zero;
                }


                if (objTask.HourIni == null)
                {
                    objTask.HourIni = TimeSpan.Zero;
                }

                SqlParameter IdResponsable = new SqlParameter();
                IdResponsable.ParameterName = "@IdResponsable";
                IdResponsable.SqlDbType     = System.Data.SqlDbType.Int;
                IdResponsable.Direction     = System.Data.ParameterDirection.Input;
                IdResponsable.IsNullable    = true;
                if (objTask.IdPersonEmployee != null)
                {
                    IdResponsable.Value = objTask.IdPersonEmployee;
                }
                else
                {
                    IdResponsable.Value = DBNull.Value;
                }

                if (objTask.IdUser == 0)
                {
                    objTask.IdUser = (int)objTask.IdCreatedBy;
                }

                bool blnAddComment     = false;
                bool blnEditComment    = false;
                bool blnModifiPriority = false;
                bool blnModistatus     = false;

                MTask objTaskAnt = null;

                if (objTask.IdTask > 0)
                {
                    objTaskAnt = fnListTask(objTask.IdTask, null, null, null, null, null, null, null, null, objTask.IdUser, null).First();


                    if (objTask.listMTaskComment != null)
                    {
                        if ((objTask.listMTaskComment.Where(z => z.Comment != null).ToList().Count() > 0 && objTaskAnt.listMTaskComment == null) || (objTask.listMTaskComment.Where(z => z.Comment != null).ToList().Count() > objTaskAnt.listMTaskComment.Count()))
                        {
                            blnAddComment = true;
                            activity      = "Se Agrego un comentario";
                        }

                        int ClisCount = 0;
                        if (objTask.listMTaskComment.Where(z => z.Comment != null).ToList().Count() > 0 && objTaskAnt.listMTaskComment.Where(z => z.Comment != null).ToList().Count() > 0)
                        {
                            var resultado = from TaskAnt in objTaskAnt.listMTaskComment
                                            join TaskN in objTask.listMTaskComment on
                                            TaskAnt.Comment equals TaskN.Comment
                                            select TaskAnt;
                            ClisCount = resultado.ToList().Count;

                            if (ClisCount != objTask.listMTaskComment.Where(z => z.Comment != null).ToList().Count())
                            {
                                blnEditComment = true;
                                if (activity != "")
                                {
                                    activity = activity + "-";
                                }

                                activity = activity + "Se Modifico un comentario";
                            }
                        }
                    }

                    if (objTaskAnt.IdPriority != objTask.IdPriority)
                    {
                        blnModifiPriority = true;
                        if (activity != "")
                        {
                            activity = activity + "-";
                        }

                        activity = activity + "Se Modifico la Prioridad";
                    }

                    if (objTaskAnt.IdStatus != objTask.IdStatus)
                    {
                        blnModistatus = true;
                        if (activity != "")
                        {
                            activity = activity + "-";
                        }

                        activity = activity + "Se Modifico el Estado";
                    }
                }

                MUser objUser = new MUser();


                SqlResultTask = db.Database.ExecuteSqlCommand("GNTranTask @TransactionType, @IdTask OUT, @IdUser " +
                                                              ", @dttDateIni, @dttDateEnd, @tHourIni, @tHourEnd, @strPlace " +
                                                              ", @IdFatherTask, @IdResponsable, @strTittle, @IdPriority, @IdStatus, @IdTypeTask,@strActivity,@blnConfidential,@IdCreatedBy ",
                                                              new SqlParameter[] {
                    new SqlParameter("@TransactionType", TransactionType),
                    paramOutIdTask,
                    new SqlParameter("@IdUser", objTask.IdUser),
                    new SqlParameter("@dttDateIni", objTask.DateIni),
                    new SqlParameter("@dttDateEnd", objTask.DateEnd),
                    new SqlParameter("@tHourIni", objTask.HourIni),
                    new SqlParameter("@tHourEnd", objTask.HourEnd),
                    paramPlace,
                    paramIdFatherTask,
                    IdResponsable,
                    new SqlParameter("@strTittle", objTask.Tittle),
                    new SqlParameter("@IdPriority", objTask.IdPriority),
                    new SqlParameter("@IdStatus", objTask.IdStatus),
                    new SqlParameter("@IdTypeTask", objTask.IdTypeTask),
                    new SqlParameter("@strActivity", objTask.Activity),
                    new SqlParameter("@blnConfidential", objTask.Confidential),
                    new SqlParameter("@IdCreatedBy", objTask.IdCreatedBy),
                }
                                                              );

                IdTask = Int32.Parse(paramOutIdTask.Value.ToString());



                if (IdTask != 0)
                {
                    strBody = strBody.Replace("[IdTicket]", IdTask.ToString());

                    if (objTask.listMTaskComment != null)
                    {
                        if (objTask.listMTaskComment.Count() > 0)
                        {
                            //Inserta los Comentarios
                            foreach (var item in objTask.listMTaskComment)
                            {
                                if (item.IdComment != null && item.Comment != null)
                                {
                                    if (item.Date == null)
                                    {
                                        item.Date = DateTime.Now;
                                    }

                                    if (item.IdUser == null)
                                    {
                                        item.IdUser = objTask.IdUser;
                                    }

                                    int          IdComment         = (int)item.IdComment;
                                    SqlParameter paramOutIdComment = new SqlParameter("@IdComment", System.Data.SqlDbType.Int);
                                    paramOutIdComment.Direction = System.Data.ParameterDirection.InputOutput;
                                    paramOutIdComment.Value     = IdComment;

                                    SqlResult = db.Database.ExecuteSqlCommand("GNTranCommentTask @TransactionType, @IdComment OUT, @IdTask " +
                                                                              ", @strComment,@IdUser, @dttDate ",
                                                                              new SqlParameter[] {
                                        new SqlParameter("@TransactionType", "I"),
                                        paramOutIdComment,
                                        new SqlParameter("@IdTask", IdTask),
                                        new SqlParameter("@strComment", item.Comment),
                                        new SqlParameter("@IdUser", item.IdUser),
                                        new SqlParameter("@dttDate", item.Date),
                                    }
                                                                              );
                                    IdComment      = Int32.Parse(paramOutIdComment.Value.ToString());
                                    item.IdComment = IdComment;
                                }
                            }
                        }
                    }

                    if (objTask.listTaskPerson != null)
                    {
                        if (objTask.listTaskPerson.Count() > 0)
                        {
                            //si va a actualizar, se eliminan los Comentarios de las actividades para volver a insertar
                            if (TransactionType == "U")
                            {
                                int IdPerson = 0;
                                SqlResult = db.Database.ExecuteSqlCommand("GNTranPersonTask @TransactionType, @IdTask, @IdPerson,@Iscolaborator ",
                                                                          new SqlParameter[] {
                                    new SqlParameter("@TransactionType", "U"),
                                    new SqlParameter("@IdTask", IdTask),
                                    new SqlParameter("@IdPerson", IdPerson),
                                    new SqlParameter("@Iscolaborator", false)
                                }
                                                                          );
                            }

                            bool blnItemModifiPriority = blnModifiPriority;
                            bool blnItemModistatus     = blnModistatus;
                            //Inserta los Comentarios
                            foreach (var item in objTask.listTaskPerson)
                            {
                                SqlResult = db.Database.ExecuteSqlCommand("GNTranPersonTask @TransactionType, @IdTask, @IdPerson,@blnIsColaborator ",
                                                                          new SqlParameter[] {
                                    new SqlParameter("@TransactionType", "I"),
                                    new SqlParameter("@IdTask", IdTask),
                                    new SqlParameter("@IdPerson", item.IdPersonEmployee),
                                    new SqlParameter("@blnIsColaborator", item.Iscolaborator)
                                }
                                                                          );

                                //// se envia correo segun los seguidores
                                ////Buscamos correo de Colaborador- seguidor para ver si tiene configurado
                                if (item.IdPersonEmployee != null)
                                {
                                    var objNoti = NotificationSettingsController.fnListMNotificationSettings(null, item.IdPersonEmployee);
                                    if (objNoti.Count > 0)
                                    {
                                        if (objNoti[0].Email != "")
                                        {
                                            if (blnModifiPriority == true)
                                            {
                                                var objPriot = objNoti.First().LisMNotificationSettingsPriority.Select(x => x.IdPriority == objTask.IdPriority).Count();
                                                if (objPriot == 0)
                                                {
                                                    blnItemModifiPriority = false;
                                                }
                                            }

                                            if (blnModistatus == true)
                                            {
                                                var objStatus = objNoti.First().LisNotificationSettingsStatus.Select(x => x.IdStatus == objTask.IdStatus).Count();
                                                if (objStatus == 0)
                                                {
                                                    blnItemModistatus = false;
                                                }
                                            }


                                            if (objNoti[0].SendColaborator || objNoti[0].SendFollower)
                                            {
                                                if (blnAddComment == true || blnEditComment == true || blnItemModifiPriority == true || blnItemModistatus == true || objTaskAnt == null)
                                                {
                                                    Utilities objutilities = new Utilities();
                                                    strSubject = strSubject.Replace("[NRO]", IdTask.ToString());
                                                    if (activity != "")
                                                    {
                                                        strSubject = strSubject + " - " + activity;
                                                    }
                                                    objutilities.SendMail(strfromaddress, objNoti[0].Email, strBody, strSubject, strPassword, strHost, Convert.ToInt32(strPuerto));
                                                }
                                            }
                                        }
                                    }
                                }

                                blnItemModifiPriority = blnModifiPriority;
                                blnItemModistatus     = blnModistatus;
                            }
                        }
                    }

                    if (objTask.IdServiceRequest != null)
                    {
                        //si va a actualizar, se eliminan los Comentarios de las actividades para volver a insertar
                        if (TransactionType == "U")
                        {
                            int IdTask0 = 0;
                            SqlResult = db.Database.ExecuteSqlCommand("GNTranServiceRequestTask @TransactionType, @IdTask, @IdServiceRequest ",
                                                                      new SqlParameter[] {
                                new SqlParameter("@TransactionType", TransactionType),                     //TransactionType
                                new SqlParameter("@IdTask", IdTask0),
                                new SqlParameter("@IdServiceRequest", objTask.IdServiceRequest)
                            }
                                                                      );
                        }

                        //Se asocia la actividad con el servicio si esta insertando
                        if (paramTransactionType.Value.ToString() == "I") //TransactionType == "I"
                        {
                            if (objTask.IdServiceRequest != null)
                            {
                                SqlResult = db.Database.ExecuteSqlCommand("GNTranServiceRequestTask @TransactionType, @IdTask, @IdServiceRequest ",
                                                                          new SqlParameter[] {
                                    new SqlParameter("@TransactionType", TransactionType),                    //TransactionType
                                    new SqlParameter("@IdTask", IdTask),
                                    new SqlParameter("@IdServiceRequest", objTask.IdServiceRequest)
                                }
                                                                          );
                            }
                        }
                    }

                    ////Buscamos correo de responsable para ver si tiene configurado
                    if (objTask.IdPersonEmployee != null)
                    {
                        var objNoti = NotificationSettingsController.fnListMNotificationSettings(null, (int)IdResponsable.Value);
                        if (objNoti.Count > 0)
                        {
                            if (objNoti[0].Email != "")
                            {
                                if (blnModifiPriority == true)
                                {
                                    var objPriot = objNoti.First().LisMNotificationSettingsPriority.Select(x => x.IdPriority == objTask.IdPriority).Count();
                                    if (objPriot == 0)
                                    {
                                        blnModifiPriority = false;
                                    }
                                }

                                if (blnModistatus == true)
                                {
                                    var objStatus = objNoti.First().LisNotificationSettingsStatus.Select(x => x.IdStatus == objTask.IdStatus).Count();
                                    if (objStatus == 0)
                                    {
                                        blnModistatus = false;
                                    }
                                }

                                if (objNoti[0].SendResponsable)
                                {
                                    if (blnAddComment == true || blnEditComment == true || blnModifiPriority == true || blnModistatus == true || objTaskAnt == null)
                                    {
                                        Utilities objutilities = new Utilities();



                                        strSubject = strSubject.Replace("[NRO]", IdTask.ToString());
                                        objutilities.SendMail(strfromaddress, objNoti[0].Email, strBody, strSubject, strPassword, strHost, Convert.ToInt32(strPuerto));
                                    }
                                }
                            }
                        }
                    }

                    //Mensaje = "Datos grabados exitosamente para el Código de empleado: (" + IdPerson + ").";
                    Mensaje = "Datos grabados exitosamente.";
                }
                else
                {
                    Mensaje = "No se pudo realizar la transaccion, intente nuevamente.";
                }

                return(SqlResultTask);
            }
            catch (SqlException ex)
            {
                Mensaje = "Error al grabar datos: " + ex.Message;
                return(0);
            }
        }
コード例 #27
0
        public static int fnGNTranRole(MRole objRole, string TransactionType, ref string Mensaje)
        {
            try
            {
                TextInfo ti = CultureInfo.CurrentCulture.TextInfo; //para capitalizar textos

                MMEnterprisesEntities db = new MMEnterprisesEntities();

                int IdRole;
                int SqlResult;

                SqlParameter paramOutIdRole = new SqlParameter();
                paramOutIdRole.ParameterName = "@IdRole";
                paramOutIdRole.SqlDbType     = System.Data.SqlDbType.Int;
                paramOutIdRole.Direction     = System.Data.ParameterDirection.InputOutput;
                paramOutIdRole.Value         = objRole.IdRole;

                SqlResult = db.Database.ExecuteSqlCommand("GNTranRole @TransactionType, @IdRole OUT, @NameRole, @Status ",
                                                          new SqlParameter[] {
                    new SqlParameter("@TransactionType", TransactionType),
                    paramOutIdRole,
                    new SqlParameter("@NameRole", ti.ToTitleCase(objRole.NameRole)),
                    new SqlParameter("@Status", objRole.Status)
                }
                                                          );

                IdRole = Int32.Parse(paramOutIdRole.Value.ToString());

                if (IdRole != 0)
                {
                    foreach (var item in objRole.RoleAcces)
                    {
                        SqlResult = db.Database.ExecuteSqlCommand("GNTranRoleAcces @IdRole, @IdOption, @blnVisible " +
                                                                  ", @blnCreate, @blnSearch, @blnEdit, @blnDelete ",
                                                                  new SqlParameter[] {
                            new SqlParameter("@IdRole", IdRole),
                            new SqlParameter("@IdOption", item.IdOption),
                            new SqlParameter("@blnVisible", item.Visible),
                            new SqlParameter("@blnCreate", item.Create),
                            new SqlParameter("@blnSearch", item.Search),
                            new SqlParameter("@blnEdit", item.Edit),
                            new SqlParameter("@blnDelete", item.Delete)
                        }
                                                                  );
                    }

                    //Mensaje = "Datos grabados exitosamente para el Código de empleado: (" + IdPerson + ").";
                    Mensaje = "Datos grabados exitosamente.";
                }
                else
                {
                    Mensaje = "No se pudo realizar la transaccion, intente nuevamente.";
                }

                return(SqlResult);
            }
            catch (SqlException ex)
            {
                Mensaje = "Error al grabar datos: " + ex.Message;
                return(0);
            }
        }
コード例 #28
0
        public static int fnGNTranNotificacionSettings(MNotificationSettings objMNotificacion, int IdUser, string TransactionType, ref int IdNotificacion, ref string Mensaje)
        {
            try
            {
                MMEnterprisesEntities db = new MMEnterprisesEntities();

                int SqlResult;
                int SqlResultTask;

                SqlParameter paramOutIdSetting = new SqlParameter();
                paramOutIdSetting.ParameterName = "@IdSetting";
                paramOutIdSetting.SqlDbType     = System.Data.SqlDbType.Int;
                paramOutIdSetting.Direction     = System.Data.ParameterDirection.InputOutput;
                paramOutIdSetting.Value         = objMNotificacion.IdSetting;

                SqlParameter paramTransactionType = new SqlParameter();
                paramTransactionType.ParameterName = "@TransactionType";
                if (objMNotificacion.IdSetting == 0 && TransactionType == "U")
                {
                    //la task no existe, debe ser creada.
                    paramTransactionType.Value = "I";
                }
                else
                {
                    paramTransactionType.Value = TransactionType;
                }


                MUser objUser = new MUser();


                SqlResultTask = db.Database.ExecuteSqlCommand("GNTranNotificationSettings @blnSendResponsable, @blnSendColaborator, @blnSendFollower, @blnSendAddComment, @blnSendEditComment " +
                                                              " , @IdUser  , @TransactionType, @IdSetting OUT ",
                                                              new SqlParameter[] {
                    new SqlParameter("@blnSendResponsable", objMNotificacion.SendResponsable),
                    new SqlParameter("@blnSendColaborator", objMNotificacion.SendColaborator),
                    new SqlParameter("@blnSendFollower", objMNotificacion.SendFollower),
                    new SqlParameter("@blnSendAddComment", objMNotificacion.SendAddComment),
                    new SqlParameter("@blnSendEditComment", objMNotificacion.SendEditComment),
                    new SqlParameter("@IdUser", IdUser),
                    new SqlParameter("@TransactionType", TransactionType),
                    paramOutIdSetting
                }
                                                              );

                IdNotificacion = Int32.Parse(paramOutIdSetting.Value.ToString());

                if (IdNotificacion != 0)
                {
                    if (objMNotificacion.LisMNotificationSettingsPriority != null)
                    {
                        if (objMNotificacion.LisMNotificationSettingsPriority.Count() > 0)
                        {
                            //si va a actualizar, se eliminan los Comentarios de las actividades para volver a insertar
                            int intPriority = 0;

                            SqlResult = db.Database.ExecuteSqlCommand("GNTranNotificationSettingsPriority @TransactionType, @IdSetting , @IdPriority",
                                                                      new SqlParameter[] {
                                new SqlParameter("@TransactionType", "U"),
                                new SqlParameter("@IdSetting", IdNotificacion),
                                new SqlParameter("@IdPriority", intPriority)
                            }
                                                                      );


                            //Inserta los Comentarios
                            foreach (var item in objMNotificacion.LisMNotificationSettingsPriority)
                            {
                                SqlResult = db.Database.ExecuteSqlCommand("GNTranNotificationSettingsPriority @TransactionType, @IdSetting , @IdPriority",
                                                                          new SqlParameter[] {
                                    new SqlParameter("@TransactionType", "I"),
                                    new SqlParameter("@IdSetting", IdNotificacion),
                                    new SqlParameter("@IdPriority", item.IdPriority)
                                }
                                                                          );
                            }
                        }
                    }


                    if (objMNotificacion.LisNotificationSettingsStatus != null)
                    {
                        if (objMNotificacion.LisNotificationSettingsStatus.Count() > 0)
                        {
                            int intIdStatus = 0;
                            //si va a actualizar, se eliminan los Comentarios de las actividades para volver a insertar

                            SqlResult = db.Database.ExecuteSqlCommand("GNTraNotificationSettingsStatus @TransactionType, @IdStatus, @IdSetting ",
                                                                      new SqlParameter[] {
                                new SqlParameter("@TransactionType", "U"),
                                new SqlParameter("@IdStatus", intIdStatus),
                                new SqlParameter("@IdSetting", IdNotificacion)
                            }
                                                                      );

                            //Inserta los Comentarios
                            foreach (var item in objMNotificacion.LisNotificationSettingsStatus)
                            {
                                SqlResult = db.Database.ExecuteSqlCommand("GNTraNotificationSettingsStatus @TransactionType, @IdStatus, @IdSetting ",
                                                                          new SqlParameter[] {
                                    new SqlParameter("@TransactionType", "I"),
                                    new SqlParameter("@IdStatus", item.IdStatus),
                                    new SqlParameter("@IdSetting", IdNotificacion)
                                }
                                                                          );
                            }
                        }
                    }

                    //Mensaje = "Datos grabados exitosamente para el Código de empleado: (" + IdPerson + ").";
                    Mensaje = "Datos grabados exitosamente.";
                }
                else
                {
                    Mensaje = "No se pudo realizar la transaccion, intente nuevamente.";
                }

                return(SqlResultTask);
            }
            catch (SqlException ex)
            {
                Mensaje = "Error al grabar datos: " + ex.Message;
                return(0);
            }
        }
コード例 #29
0
        public static List <MTask> fnListTask(int?IdTask = null, DateTime?dttDateIni = null, DateTime?dttDateEnd = null, int?IdResponsable = null, string strTittle = "", int?IdPriority = null, int?IdStatus = null, int?IdTypeTask = null, int?IdServiceRequest = null, int?IdUser = null, int?IdFatherTask = null, int?IdColaborator = null, int?IdFollower = null)
        {
            List <MTask>          listTask = new List <MTask>();
            MMEnterprisesEntities db       = new MMEnterprisesEntities();

            MUser objUser = new MUser();

            listTask = (List <MTask>)(from tsk in db.GNListTask(IdTask, dttDateIni, dttDateEnd, IdResponsable, strTittle, IdPriority, IdStatus, IdTypeTask, IdServiceRequest, IdUser, IdFatherTask, IdColaborator, IdFollower).ToList()
                                      select new MTask
            {
                IdTask                 = tsk.IdTask,
                IdUser                 = tsk.IdUser,
                UserName               = tsk.UserName,
                UserLastName           = tsk.UserLastName,
                DateIni                = tsk.DateIni,
                DateEnd                = tsk.DateEnd,
                HourIni                = tsk.HourIni,
                HourEnd                = tsk.HourEnd,
                Place                  = tsk.Place,
                Status                 = tsk.Status,
                IdStatus               = tsk.IdStatus,
                IdFatherTask           = tsk.IdFatherTask,
                Tittle                 = tsk.Tittle,
                IdServiceRequest       = tsk.IdServiceRequest,
                IdTypeTask             = tsk.IdTypeTask,
                TypeTask               = tsk.TypeTask,
                IdPriority             = tsk.IdPriority,
                PriorityTask           = tsk.PriorityTask,
                IdPersonEmployee       = tsk.IdResponsable,
                PersonEmployeeName     = tsk.Name,
                PersonEmployeeLastName = tsk.LastName,
                Activity               = tsk.Activity,
                Confidential           = tsk.confidential == null ? false : (bool)tsk.confidential,
                listTaskPerson         = (List <MTaskPerson>)(from tp in db.GNListPersonTask(tsk.IdTask, null).ToList()
                                                              select new MTaskPerson
                {
                    IdPersonEmployee       = tp.IdPersonEmployee,
                    PersonEmployeeName     = tp.PersonEmployeeName,
                    PersonEmployeeLastName = tp.PersonEmployeeLastName,
                    NumIdentification      = objUser.Desencriptar(tp.NumIdentification),
                    Iscolaborator          = tp.Iscolaborator
                }).ToList()
                ,
                listMTaskComment = (List <MTaskComment>)(from tp in db.GNListBitacora(tsk.IdTask).ToList()
                                                         select new MTaskComment
                {
                    IdComment     = tp.IdComment,
                    IdTask        = tp.IdTask,
                    Comment       = tp.Comment,
                    IdUser        = tp.IdUser,
                    UserName      = tp.UserName,
                    DateOperation = tp.DateOperation,
                    Date          = tp.Date,
                    New           = 0,
                }).ToList(),

                Creator = (string)(from tt in db.GNListPerson(null, null, null, null, tsk.IdUser).ToList()
                                   select tt.LastName + " " + tt.Name).FirstOrDefault(),
                Colaborator   = tsk.Colaborator,
                Follower      = tsk.Seguidor,
                OperationDate = tsk.OperationDate,
                CreationDate  = tsk.CreationDate,
                IdCreatedBy   = tsk.IdCreatedBy,
            }).ToList();

            return(listTask);

            //ListUserCreate = (from result in db.GNListConfigTkOnBehalfOf(IdUser, null, null).ToList()
            //                  select new MConfigTkOnBehalfOf
            //                  {
            //                      IdUserOnBehalfOf = result.IdUserOnBehalfOf,
            //                      Name = objUser.Desencriptar(result.NumIdentificationOnBehalfOf) + " - " + result.LastNameOnBehalfOf + (result.NameOnBehalfOf != "" ? " " + result.NameOnBehalfOf : ""),
            //                  }).ToList()
        }
コード例 #30
0
        public static int fnGNTranTableCatalog(MCatalog objCatalog, string TransactionType, ref string Mensaje)
        {
            try
            {
                //TextInfo ti = CultureInfo.CurrentCulture.TextInfo; //para capitalizar textos

                MMEnterprisesEntities db = new MMEnterprisesEntities();

                int IdCatalog;
                int IdCatalogDetail;
                int SqlResultCatalog;
                int SqlResult;

                SqlParameter paramOutIdCatalog = new SqlParameter();
                paramOutIdCatalog.ParameterName = "@IdCatalog";
                paramOutIdCatalog.SqlDbType     = System.Data.SqlDbType.Int;
                paramOutIdCatalog.Direction     = System.Data.ParameterDirection.InputOutput;
                paramOutIdCatalog.Value         = objCatalog.IdCatalog;

                SqlResultCatalog = db.Database.ExecuteSqlCommand("GNTranCatalog @TransactionType, @IdCatalog OUT, @IdTable, @Description ",
                                                                 new SqlParameter[] {
                    new SqlParameter("@TransactionType", TransactionType),
                    paramOutIdCatalog,
                    new SqlParameter("@IdTable", objCatalog.IdTable.ToUpper()),
                    new SqlParameter("@Description", objCatalog.Description)
                }
                                                                 );

                IdCatalog = Int32.Parse(paramOutIdCatalog.Value.ToString());

                if (IdCatalog != 0)
                {
                    if (objCatalog.TableDetails != null && objCatalog.TableDetails.Count() > 0)
                    {
                        foreach (var item in objCatalog.TableDetails)
                        {
                            SqlParameter paramOutIdCatalogDetail = new SqlParameter();
                            paramOutIdCatalogDetail.ParameterName = "@IdCatalogDetail";
                            paramOutIdCatalogDetail.SqlDbType     = System.Data.SqlDbType.Int;
                            paramOutIdCatalogDetail.Direction     = System.Data.ParameterDirection.InputOutput;
                            paramOutIdCatalogDetail.Value         = item.IdCatalogDetail;

                            SqlParameter paramDescription = new SqlParameter();
                            paramDescription.ParameterName = "@Description";
                            if (item.Description != null)
                            {
                                paramDescription.Value = item.Description;
                            }
                            else
                            {
                                paramDescription.Value = DBNull.Value;
                            }

                            SqlParameter paramIdTableDetail = new SqlParameter();
                            paramIdTableDetail.ParameterName = "@IdTableDetail";
                            //paramIdTableDetail.SqlDbType = System.Data.SqlDbType.Int;
                            paramIdTableDetail.Direction  = System.Data.ParameterDirection.Input;
                            paramIdTableDetail.IsNullable = true;
                            if (!string.IsNullOrEmpty(item.IdTableDetail))
                            {
                                paramIdTableDetail.Value = item.IdTableDetail.ToUpper();
                            }
                            else
                            {
                                paramIdTableDetail.Value = DBNull.Value;
                            }

                            bool blStatus     = TransactionType == "I" ? true : item.Status;
                            int  intIdCatalog = TransactionType == "I" ? IdCatalog : item.IdCatalog;

                            SqlResult = db.Database.ExecuteSqlCommand("GNTranCatalogDetail @TransactionType, @IdCatalogDetail OUT, @IdTableDetail " +
                                                                      ", @IdCatalog, @Description, @Status ",
                                                                      new SqlParameter[] {
                                new SqlParameter("@TransactionType", TransactionType),
                                paramOutIdCatalogDetail,
                                paramIdTableDetail,
                                new SqlParameter("@IdCatalog", intIdCatalog),
                                paramDescription,
                                new SqlParameter("@Status", blStatus)
                            }
                                                                      );
                            IdCatalogDetail = Int32.Parse(paramOutIdCatalogDetail.Value.ToString());
                        }
                    }

                    Mensaje = "Datos grabados exitosamente.";
                }
                else
                {
                    Mensaje = "No se pudo realizar la transaccion, intente nuevamente.";
                }

                return(SqlResultCatalog);
            }
            catch (SqlException ex)
            {
                Mensaje = "Error al grabar datos: " + ex.Message;
                return(0);
            }
        }