public SingleResponeMessage <ExplanationDetailInfo> Get(int id, string _userID)
        {
            SingleResponeMessage <ExplanationDetailInfo> ret = new SingleResponeMessage <ExplanationDetailInfo>();

            try
            {
                ExplanationDetailInfo item = ExplanationService.GetInstance().getDetailExplanation(id, _userID);
                if (item == null)
                {
                    ret.isSuccess     = false;
                    ret.err.msgCode   = "001";
                    ret.err.msgString = "no Explanation found";
                    return(ret);
                }
                ret.item      = item;
                ret.isSuccess = true;
            }
            catch (Exception ex)
            {
                ret.isSuccess     = false;
                ret.err.msgCode   = "Internal Error !!!";
                ret.err.msgString = ex.ToString();
            }
            return(ret);
        }
        public ExplanationDetailInfo getExplanationDetail(SqlConnection connection, int ID, string _userID)
        {
            ExplanationDetailInfo result = null;

            using (var command = new SqlCommand("Select E.*, P.ProposalCode, P.DepartmentID,  D.DepartmentName, " +
                                                " P.ProposalType, PT.TypeName from (Select * " +
                                                " from tbl_Explanation where  1 = 1 ", connection))
            {
                command.CommandText += " and ExplanationID = @ExplanationID";
                AddSqlParameter(command, "@ExplanationID", ID, SqlDbType.Int);
                command.CommandText += "  ) as E " +
                                       " left join tbl_Proposal P on P.ProposalID = E.ProposalID" +
                                       " left join tbl_Department D on P.DepartmentID = D.DepartmentID " +
                                       " left join tbl_ProposalType PT on PT.TypeID = P.ProposalType  where 1 = 1";
                command.CommandText += " order by E.UpdateTime Desc ";
                if (!string.IsNullOrEmpty(_userID) && _userID != "admin")
                {
                    command.CommandText += " and ( E.UserAssign = @UserID ) or ( E.UserI = @UserID )";
                    AddSqlParameter(command, "@UserID", _userID, SqlDbType.VarChar);
                }
                WriteLogExecutingCommand(command);
                using (var reader = command.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        result = new ExplanationDetailInfo();
                        result.ExplanationID   = GetDbReaderValue <int>(reader["ExplanationID"]);
                        result.ExplanationCode = GetDbReaderValue <string>(reader["ExplanationCode"]);
                        result.ExplanationName = GetDbReaderValue <string>(reader["ExplanationName"]);
                        result.ProposalID      = GetDbReaderValue <int>(reader["ProposalID"]);
                        result.ProposalCode    = GetDbReaderValue <string>(reader["ProposalCode"]);
                        result.ProposalType    = GetDbReaderValue <int>(reader["ProposalType"]);
                        result.TypeName        = GetDbReaderValue <string>(reader["TypeName"]);
                        result.DepartmentID    = GetDbReaderValue <int>(reader["DepartmentID"]);
                        result.DepartmentName  = GetDbReaderValue <string>(reader["DepartmentName"]);
                        result.Necess          = GetDbReaderValue <bool>(reader["Necess"]);
                        result.Suitable        = GetDbReaderValue <bool>(reader["Suitable"]);
                        result.NBNum           = GetDbReaderValue <string>(reader["NBNum"]);
                        result.XNNum           = GetDbReaderValue <string>(reader["XNNum"]);
                        result.Available       = GetDbReaderValue <string>(reader["Available"]);
                        result.IsAvailable     = GetDbReaderValue <bool>(reader["IsAvailable"]);
                        result.Comment         = GetDbReaderValue <string>(reader["Comment"]);
                        result.TNCB            = GetDbReaderValue <string>(reader["TNCB"]);
                        result.Status          = GetDbReaderValue <string>(reader["Status"]);
                        result.DBLTCN          = GetDbReaderValue <string>(reader["DBLTCN"]);
                        result.NVHTTB          = GetDbReaderValue <string>(reader["NVHTTB"]);
                        result.DTNL            = GetDbReaderValue <string>(reader["DTNL"]);
                        result.NQL             = GetDbReaderValue <string>(reader["NQL"]);
                        result.HQKTXH          = GetDbReaderValue <string>(reader["HQKTXH"]);
                        result.ProductsName    = GetDbReaderValue <string>(reader["ProductsName"]);
                        result.UserI           = GetDbReaderValue <string>(reader["UserI"]);
                        result.InTime          = GetDbReaderValue <DateTime?>(reader["InTime"]);
                        result.UserU           = GetDbReaderValue <string>(reader["UserU"]);
                        result.UpdateTime      = GetDbReaderValue <DateTime>(reader["UpdateTime"]);
                    }
                }
                return(result);
            }
        }
Beispiel #3
0
        public ActionMessage DeleteExplanation(int id, string user, string _userID)
        {
            ActionMessage         ret  = new ActionMessage();
            ExplanationDetailInfo temp = getDetailExplanation(id, _userID);

            SqlConnectionFactory sqlConnection = new SqlConnectionFactory();

            using (SqlConnection connection = sqlConnection.GetConnection())
            {
                try
                {
                    UserLogInfo info = new UserLogInfo();
                    info.Action = "Delete";

                    if (temp != null)
                    {
                        info.Description = "code : " + temp.ExplanationCode + " id : " + id;
                    }
                    else
                    {
                        info.Description = " id : " + id;
                    }
                    info.Feature  = TableFile.Proposal.ToString();
                    info.Time     = DateTime.Now;
                    info.UserName = user;
                    info.UserID   = 1;
                    UserService.GetInstance().TrackUserAction(info);

                    ExplanationDataLayer.GetInstance().Delete(connection, id);
                    ret.isSuccess = true;
                }
                catch (Exception ex)
                {
                    ret.isSuccess     = false;
                    ret.err.msgCode   = "Internal Error";
                    ret.err.msgString = ex.ToString();
                }
            }
            return(ret);
        }
Beispiel #4
0
        public ExplanationDetailInfo getDetailExplanation(int _ID, string _userID)
        {
            ExplanationDetailInfo record        = new ExplanationDetailInfo();
            SqlConnectionFactory  sqlConnection = new SqlConnectionFactory();

            using (SqlConnection connection = sqlConnection.GetConnection())
            {
                record = ExplanationDataLayer.GetInstance().getExplanationDetail(connection, _ID, _userID);
                if (record == null)
                {
                    return(null);
                }

                //Get document
                DocumentSeachCriteria documentCriteria = new DocumentSeachCriteria();
                documentCriteria.TableName = TableFile.Explanation.ToString();
                documentCriteria.PreferId  = _ID.ToString();
                record.ListDocument        = DocumentService.GetInstance().GetDocument(documentCriteria);

                record.Items = new List <ItemPropsalInfo>();
                record.Items = ProposalDataLayer.GetInstance().GetPropsalItems(connection, record.ProposalID);

                //get Comment
                CommentSeachCriteria commentCriteria = new CommentSeachCriteria();
                commentCriteria.TableName = TableFile.Explanation.ToString();
                commentCriteria.PreferId  = _ID.ToString();
                record.ListComment        = CommentService.GetInstance().getComment(commentCriteria);
                foreach (var item in record.ListComment)
                {
                    DocumentSeachCriteria documentCriteria2 = new DocumentSeachCriteria();
                    documentCriteria2.TableName = TableFile.Comment.ToString();
                    documentCriteria2.PreferId  = item.AutoID.ToString();
                    item.ListDocument           = DocumentService.GetInstance().GetDocument(documentCriteria2);
                }
                return(record);
            }
        }
Beispiel #5
0
        public static MemoryStream GetTemplate(int id, string path, out string code, string _userID)
        {
            var memoryStream           = new MemoryStream();
            ExplanationDetailInfo item = ExplanationService.GetInstance().getDetailExplanation(id, _userID);

            // var index = item.ProposalType - 1;
            using (var fileStream = new FileStream(path, FileMode.Open, FileAccess.Read))
                fileStream.CopyTo(memoryStream);
            code = item.ProposalCode;
            using (var document = WordprocessingDocument.Open(memoryStream, true))
            {
                document.ChangeDocumentType(WordprocessingDocumentType.Document); // change from template to document
                DateTime date        = DateTime.Now;
                string   currentDate = "Ngày " + date.ToString("dd/MM/yyyy");
                var      body        = document.MainDocumentPart.Document.Body;
                var      paras       = body.Elements <Paragraph>();

                var itemName = "";
                foreach (ItemPropsalInfo record in item.Items)
                {
                    itemName = itemName + record.ItemName + ", ";
                }
                itemName = itemName.Substring(0, itemName.Length - 1);

                foreach (var text in body.Descendants <Text>())
                {
                    text.Text = text.Text.Replace("#", "");
                    text.Text = text.Text.Replace("itemname", WordUtils.checkNull(itemName));
                    text.Text = text.Text.Replace("nbNumber", WordUtils.checkNull(item.NBNum));
                    text.Text = text.Text.Replace("xnNumber", WordUtils.checkNull(item.XNNum));
                    text.Text = text.Text.Replace("numberMachine", WordUtils.checkNull(item.Available.ToString()));
                    text.Text = text.Text.Replace("explainationcode", WordUtils.checkNull(item.ExplanationCode));
                    text.Text = text.Text.Replace("reason", WordUtils.checkNull(item.Comment));
                    text.Text = text.Text.Replace("tncb", WordUtils.checkNull(item.TNCB));
                    text.Text = text.Text.Replace("dbltcn", WordUtils.checkNull(item.DBLTCN));
                    text.Text = text.Text.Replace("nvh", WordUtils.checkNull(item.NVHTTB));
                    text.Text = text.Text.Replace("dtnl", WordUtils.checkNull(item.DTNL));
                    text.Text = text.Text.Replace("nql", WordUtils.checkNull(item.NQL));
                    text.Text = text.Text.Replace("hqktcxh", WordUtils.checkNull(item.HQKTXH));
                }
                List <int> Checks = new List <int>();
                if (item.Necess == true)
                {
                    Checks.Add(0);
                }
                else
                {
                    Checks.Add(1);
                }

                if (item.Suitable == true)
                {
                    Checks.Add(2);
                }
                else
                {
                    Checks.Add(3);
                }

                if (item.IsAvailable == true)
                {
                    Checks.Add(4);
                }
                else
                {
                    Checks.Add(5);
                }
                int i = 0;
                foreach (SdtContentCheckBox ctrl in body.Descendants <SdtContentCheckBox>())
                {
                    if (Checks.IndexOf(i) > -1)
                    {
                        ctrl.Checked.Val = OnOffValues.One;
                        ctrl.Parent.Parent.Descendants <Run>().First().GetFirstChild <Text>().Text = "☒";
                    }
                    i++;
                }
                document.Save();
                document.Close();
            }
            return(memoryStream);
        }