Пример #1
0
        public bool Update(ProposalTrackerRelationEntity model)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("update ProposalTrackerRelation set ");
            strSql.Append("WID=@WID,");
            strSql.Append("TID=@TID,");
            strSql.Append("CreatedOn=@CreatedOn,");
            strSql.Append("CreatedBy=@CreatedBy");
            strSql.Append(" where ID=@ID ");
            Database db = DatabaseFactory.CreateDatabase();

            using (DbCommand dbCommand = db.GetSqlStringCommand(strSql.ToString()))
            {
                db.AddInParameter(dbCommand, "ID", DbType.Int32, model.ID);
                db.AddInParameter(dbCommand, "WID", DbType.Int32, model.WID);
                db.AddInParameter(dbCommand, "TID", DbType.String, model.TID);
                db.AddInParameter(dbCommand, "CreatedOn", DbType.DateTime, model.CreatedOn);
                db.AddInParameter(dbCommand, "CreatedBy", DbType.Int32, model.CreatedBy);
                int rows = db.ExecuteNonQuery(dbCommand);

                if (rows > 0)
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
        }
        public ProposalTrackerRelationEntity GetProposalTrackerByTid(int Tid)
        {
            ProposalTrackerRelationEntity model = new ProposalTrackerRelationEntity();
            StringBuilder strSql = new StringBuilder();

            strSql.Append(@"SELECT * from ProposalTrackerRelation where TID=@Tid");
            Database db = DatabaseFactory.CreateDatabase();

            using (DbCommand dbCommand = db.GetSqlStringCommand(strSql.ToString()))
            {
                try
                {
                    db.AddInParameter(dbCommand, "Tid", DbType.Int32, Tid);
                    using (IDataReader dataReader = db.ExecuteReader(dbCommand))
                        while (dataReader.Read())
                        {
                            model = (ProposalTrackerRelationEntity.ReaderBind(dataReader));
                        }
                }
                catch (Exception ex)
                {
                    WebLogAgent.Write(string.Format("[SQLText:{0},{1}Messages:\r\n{2}]"
                                                    , strSql.ToString(), base.FormatParameters(dbCommand.Parameters), ex.Message));
                    return(null);
                }
            }
            return(model);
        }
Пример #3
0
        public int Insert(ProposalTrackerRelationEntity model)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("insert into ProposalTrackerRelation(");
            strSql.Append("WID,TID,CreatedOn,CreatedBy)");

            strSql.Append(" values (");
            strSql.Append("@WID,@TID,@CreatedOn,@CreatedBy)");
            strSql.Append(";select ISNULL( SCOPE_IDENTITY(),0);");
            Database db = DatabaseFactory.CreateDatabase();

            using (DbCommand dbCommand = db.GetSqlStringCommand(strSql.ToString()))
            {
                db.AddInParameter(dbCommand, "WID", DbType.Int32, model.WID);
                db.AddInParameter(dbCommand, "TID", DbType.String, model.TID);
                db.AddInParameter(dbCommand, "CreatedOn", DbType.DateTime, DateTime.Now);
                db.AddInParameter(dbCommand, "CreatedBy", DbType.Int32, model.CreatedBy);
                int    result;
                object obj = db.ExecuteScalar(dbCommand);
                if (!int.TryParse(obj.ToString(), out result))
                {
                    return(0);
                }
                return(result);
            }
        }
Пример #4
0
        public int AddProposalTrackerRelation(ProposalTrackerRelationEntity model)
        {
            this.ClearBrokenRuleMessages();
            int id = relationMgr.Add(model);

            this.AddBrokenRuleMessages(mgr.BrokenRuleMessages);
            return(id);
        }
        public void ProcessRequest(HttpContext context)
        {
            if (IdentityContext.UserID <= 0)
            {
                return;
            }
            UsersEntity userEntity = new App.UserApplication().GetUser(IdentityContext.UserID);

            if (userEntity.Role != RolesEnum.ADMIN && userEntity.Role != RolesEnum.PM && userEntity.Role != RolesEnum.Sales)
            {
                return;
            }

            context.Response.ContentType = "text/plain";

            String checkboxList = context.Request["checkboxList"] + "";
            String wid          = context.Request["wid"];
            int    proposaltrackerId;

            if (!int.TryParse(wid, out proposaltrackerId))
            {
                return;
            }

            checkboxList = checkboxList.Trim();
            if (string.IsNullOrEmpty(checkboxList))
            {
                return;
            }

            ProposalTrackerRelationEntity WRDTO = new ProposalTrackerRelationEntity();

            if (checkboxList.EndsWith(","))
            {
                checkboxList = checkboxList.Remove(checkboxList.Length - 1);
            }


            string[] tidArray = checkboxList.Split(',');

            foreach (string item in tidArray)
            {
                if (item.Length > 0)
                {
                    WRDTO.WID = Convert.ToInt32(wid);

                    WRDTO.TID = Convert.ToInt32(item);

                    WRDTO.CreatedBy = IdentityContext.UserID;

                    app.AddProposalTrackerRelation(WRDTO);
                }
            }
        }
Пример #6
0
        public int Add(ProposalTrackerRelationEntity entity)
        {
            if (entity.WID == 0)
            {
                this.AddBrokenRuleMessage("Project", "Please select Work Request");
                return(0);
            }
            if (entity.TID == 0)
            {
                this.AddBrokenRuleMessage("Payment", "Please select Ticket");
                return(0);
            }
            int id = proposalTrackerRelationRepository.Insert(entity);

            if (id <= 0)
            {
                this.AddBrokenRuleMessage();
                return(0);
            }
            return(id);
        }
Пример #7
0
        public ProposalTrackerRelationEntity Get(int WID)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("select ID,WID,TID,CreatedOn,CreatedBy from ProposalTrackerRelation ");
            strSql.Append(" where WID=@WID ");
            Database db = DatabaseFactory.CreateDatabase();

            using (DbCommand dbCommand = db.GetSqlStringCommand(strSql.ToString()))
            {
                db.AddInParameter(dbCommand, "WID", DbType.Int32, WID);
                ProposalTrackerRelationEntity model = null;
                using (IDataReader dataReader = db.ExecuteReader(dbCommand))
                {
                    if (dataReader.Read())
                    {
                        model = ProposalTrackerRelationEntity.ReaderBind(dataReader);
                    }
                }
                return(model);
            }
        }
        public bool UpdateProposalByProposal(ProposalTrackerRelationEntity model)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("update ProposalTrackerRelation set ");
            strSql.Append("WID=@wid,");
            strSql.Append("TID=@tid");

            strSql.Append(" where ID=@id ");
            Database db = DatabaseFactory.CreateDatabase();

            using (DbCommand dbCommand = db.GetSqlStringCommand(strSql.ToString()))
            {
                try
                {
                    db.AddInParameter(dbCommand, "wid", DbType.Int32, model.WID);
                    db.AddInParameter(dbCommand, "tid", DbType.Int32, model.TID);
                    db.AddInParameter(dbCommand, "id", DbType.Int32, model.ID);
                    int rows = db.ExecuteNonQuery(dbCommand);

                    if (rows > 0)
                    {
                        return(true);
                    }
                    else
                    {
                        return(false);
                    }
                }
                catch (Exception ex)
                {
                    WebLogAgent.Write(string.Format("[SQLText:{0},{1}Messages:\r\n{2}]",
                                                    strSql.ToString(), base.FormatParameters(dbCommand.Parameters), ex.Message));
                    return(false);
                }
            }
        }
Пример #9
0
 public bool UpdateProposalByProposal(ProposalTrackerRelationEntity model)
 {
     return(mgr.UpdateProposalByProposal(model));
 }
Пример #10
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                if (ticketID > 0)
                {
                    ticketsEntity = ticketApp.GetTickets(ticketID);

                    //创建者
                    TicketUsersEntity ticketUser = ticketApp.GetTicketCreateUser(ticketID);
                    UsersEntity       createUser = userApp.GetUser(ticketUser.UserID);
                    if (createUser.Role == RolesEnum.CLIENT)
                    {
                        HiddenField_TicketCreateId.Value = "-1";
                    }
                    else
                    {
                        HiddenField_TicketCreateId.Value = ticketUser.UserID.ToString();;
                    }


                    ProposalTrackerRelationEntity model = wrApp.GetProposalTrackerByTid(ticketID);
                    if (model != null && model.ID != 0)
                    {
                        ddl_Proposal.SelectedValue = model.WID.ToString();
                    }
                    ddlResponsibleUser.Items.Add(new ListItem("System", "-1"));
                }
                if (projectID > 0)
                {
                    ProposalTrackerApplication wrApp = new ProposalTrackerApplication();

                    List <ProposalTrackerEntity> proposalTracker = wrApp.GetProposalTrackerByPid(projectID);
                    ddl_Proposal.DataSource     = proposalTracker;
                    ddl_Proposal.DataValueField = "ProposalTrackerID";
                    ddl_Proposal.DataTextField  = "Title";
                    ddl_Proposal.DataBind();
                    ddl_Proposal.Items.Insert(0, new ListItem("Please select... ", ""));
                }
            }
            if (ticketsEntity != null)
            {
                if (!IsPostBack)
                {
                    if (ticketsEntity.Status >= TicketsState.PM_Reviewed &&
                        ticketsEntity.Status <= TicketsState.Estimation_Approved && ticketsEntity.TicketType == TicketsType.Bug)
                    {
                        dvChangeRequest.Style.Add("display", "block");
                    }
                    else
                    {
                        dvChangeRequest.Style.Add("display", "none");
                    }
                    litHead.Text = string.Format("Ticket ID: {0}, {1}&nbsp;&nbsp; ; &nbsp;&nbsp;Status: {2}"
                                                 , ticketsEntity.TicketID, ticketsEntity.Title, ticketsEntity.Status.ToText());
                    TicketUsersEntity ticketUsersEntity = ticketApp.GetTicketCreateUser(ticketsEntity.TicketID);
                    SetEstimation(ticketUsersEntity);
                    SetEditClient(ticketUsersEntity);
                    BindStatus();

                    txtProprosalName.Text = ticketsEntity.ProprosalName;
                    txtWorkPlanName.Text  = ticketsEntity.WorkPlanName;
                    txtWorkScope.Text     = ticketsEntity.WorkScope;
                    txtInvoice.Text       = ticketsEntity.Invoice;
                }
            }
            else
            {
                ShowFailMessageToClient();
            }
        }
Пример #11
0
        protected void btnSave_Click(object sender, EventArgs e)
        {
            int          tmpState    = int.Parse(ddlStatus.SelectedValue);
            TicketsState selectState = (TicketsState)tmpState;

            if (rdoAccounting.SelectedValue == "1")
            {
                //int wid = int.Parse(ddl_Proposal.SelectedValue);
                int wid = int.Parse(hid_Proposal.Value);
                ProposalTrackerRelationEntity model = wrApp.GetProposalTrackerByTid(ticketID);
                if (model == null || model.ID == 0)
                {
                    model.CreatedBy = IdentityContext.UserID;
                    model.TID       = ticketID;
                    model.WID       = wid;
                    wrApp.AddProposalTrackerRelation(model);
                }
                else
                {
                    if (model.TID != ticketID || model.WID != wid)
                    {
                        model.TID = ticketID;
                        model.WID = wid;
                        wrApp.UpdateProposalByProposal(model);
                    }
                }
            }
            else
            {
                ProposalTrackerRelationEntity model = wrApp.GetProposalTrackerByTid(ticketID);
                if (model != null || model.ID > 0)
                {
                    wrApp.DelProposalTrackerRelationByID(model.ID);
                }
            }

            bool result = false;
            //指定初次估时者
            int estimationUserID = 0;

            bool isEstimation = rdoEstimationYes.Checked;

            if (isEstimation && selectState == TicketsState.PM_Reviewed)
            {
                if (!int.TryParse(QF(ddlEstUser.UniqueID), out estimationUserID))
                {
                    ShowFailMessageToClient("Invalid extimation user.");
                    return;
                }
            }

            //选择accounting

            string accounting = (rdoAccounting.SelectedValue == "" ? "0" : rdoAccounting.SelectedValue);

            ticketsEntity.Accounting = (AccountingState)int.Parse(accounting);


            //指派最终确认估时者
            int confirmEstmateUserId = 0;

            if (selectState == TicketsState.Waiting_Confirm)
            {
                if (!int.TryParse(QF(ddlConfirmEstmateUserId.UniqueID), out confirmEstmateUserId))
                {
                    ShowFailMessageToClient("Invalid Waiting Confirm user.");
                    return;
                }
            }

            decimal initialtionHours;

            //初次估时
            if (!decimal.TryParse(txtInitialTime.Text, out initialtionHours))
            {
                ShowFailMessageToClient("Invalid extimation hour.");
                return;
            }

            decimal extimationHours;

            ///最终估时
            if (!decimal.TryParse(txtBoxExtimationHours.Text, out extimationHours))
            {
                ShowFailMessageToClient("Invalid extimation hour.");
                return;
            }


            ///没有达到预期要求
            if (((TicketsState)int.Parse(ddlStatus.SelectedValue)) == TicketsState.PM_Deny)
            {
                HttpFileCollection files            = Request.Files;
                string             fileuploadErrMsg = string.Empty;
                for (int i = 0; i < files.Count; i++)
                {
                    if (files[i].ContentLength > 0 || txtBoxDenyReason.Text.Trim().Length > 0)
                    {
                        FeedBacksEntity feedbacksEntity = GetFeedbacksEntity();
                        feedbacksEntity.ID = fbAPP.AddFeedBacks(feedbacksEntity);
                        result             = feedbacksEntity.ID > 0;
                        if (!result)
                        {
                            ShowFailMessageToClient(fbAPP.BrokenRuleMessages);
                            return;
                        }
                        if (files[i].ContentLength > 0 && IsValidFile(files[i].FileName))
                        {
                            if (!InsertFile(files[i], ticketsEntity.ProjectID, false,
                                            feedbacksEntity.ID))
                            {
                                fileuploadErrMsg += files[i].FileName + " Upload failed.";
                                result            = false;
                            }
                        }
                    }
                }
            }

            if (selectState == TicketsState.Estimation_Approved)
            {
                ticketsEntity.ProprosalName = txtProprosalName.Text;
                ticketsEntity.WorkPlanName  = txtWorkPlanName.Text;
                ticketsEntity.WorkScope     = txtWorkScope.Text;
                ticketsEntity.Invoice       = txtInvoice.Text;
            }



            int responsibleUserId;

            int.TryParse(QF(ddlResponsibleUser.UniqueID), out responsibleUserId);
            int oldResponsibleUserId = ticketsEntity.ResponsibleUser;

            ticketsEntity.ResponsibleUser = responsibleUserId;

            ProjectsEntity projectEntity = projApp.Get(ticketsEntity.ProjectID);

            int newClientId = -1;

            if (ddlClient.Visible == true)
            {
                if (ddlClient.SelectedValue != "-1")
                {
                    newClientId = int.Parse(ddlClient.SelectedValue);
                }
            }

            result = ticketApp.PMReview(ticketsEntity, UserInfo, rdoRequestYes.Checked,
                                        ddlStatus.SelectedValue, isEstimation, estimationUserID, confirmEstmateUserId, initialtionHours, extimationHours
                                        , ticketUsersView.GetSelectedUserList(), txtBoxConvertDescr.Text,
                                        txtBoxDenyReason.Text.Trim(), projectEntity.PMID, newClientId);

            if (ddlClient.Visible == true)
            {
                if (ddlClient.SelectedValue != "-1")
                {
                    ticketApp.UpdateCreateUser(int.Parse(ddlClient.SelectedValue), ticketsEntity.TicketID);
                }
            }

            if (result)
            {
                //sent email to responsible user 2017/10/23
                if (oldResponsibleUserId != ticketsEntity.ResponsibleUser)
                {
                    ticketApp.SendEmailToResponsibile(ticketsEntity, UserInfo);
                }
                // 更新所有相关人员的WorkingOn状态
                ticketApp.UpdateWorkingOnStatus(ticketID, selectState);
                Redirect(EmptyPopPageUrl, false, true);
            }
            else
            {
                ShowFailMessageToClient();
            }
        }
Пример #12
0
        /// <summary>
        /// save : 1:save ; 2:draft ;3 save and new
        /// </summary>
        /// <param name="save"></param>
        private void SaveTicket(int save)
        {
            ProjectsEntity projectsEntity = new ProjectApplication().Get(int.Parse(ddlProject.SelectedValue));
            TicketsEntity  ticketsEntity  = GetEntity(save, projectsEntity.ProjectID, projectsEntity.CompanyID);

            int result = new TicketsApplication().AddTickets(ticketsEntity);

            if (result > 0)
            {
                ticketsEntity.TicketID = result;
                List <int> userIds;

                AddDefaultTicketUsers(projectsEntity, ticketsEntity, result, out userIds);
                AssignTicketUsers(ticketsEntity, userIds);
                AddIniHistroy(ticketsEntity);

                if (rdoShareKnowlege.Checked)
                {
                    ShareEntity shareEntity = new ShareEntity(UserInfo.ID, ObjectFactory.GetInstance <ISystemDateTime>());
                    int         type        = 0;
                    shareEntity.Title            = ticketsEntity.Title;
                    shareEntity.Note             = ticketsEntity.FullDescription;
                    shareEntity.Type             = type;
                    shareEntity.TicketID         = result;
                    shareEntity.TypeEntity.Title = ticketsEntity.Title;
                    _shareApp.Save(shareEntity);
                }

                if (!ticketsEntity.IsInternal)
                {
                    new SendHandler(() => ex.SendEmailToPMWhenTicketAdd(ticketsEntity, UserInfo))
                    .BeginInvoke(null, null);
                }

                string fileName = hidUploadFile.Value;

                if (fileName.Trim() != string.Empty)
                {
                    string[] files = fileName.Split('|');
                    foreach (string str in files)
                    {
                        InsertFile(str, ticketsEntity.ProjectID, result, ticketsEntity.CompanyID);
                    }
                }
                ProposalTrackerRelationEntity model = new ProposalTrackerRelationEntity();
                if (hid_Proposal.Value != "")
                {
                    model.CreatedBy = IdentityContext.UserID;
                    model.TID       = ticketsEntity.TicketID;
                    model.WID       = int.Parse(this.hid_Proposal.Value);
                    wrApp.AddProposalTrackerRelation(model);
                }


                switch (save)
                {
                case 1:
                    Redirect("/SunnetTicket/Index.aspx", true);
                    break;

                case 3:
                    Redirect("/SunnetTicket/New.aspx?project=" + ddlProject.SelectedValue, true);
                    break;
                }
            }
            else
            {
                ShowFailMessageToClient();
            }
        }