public static sysGlobalClass.CResutlWebMethod RoleSelected(string sRoleID)
    {
        sysGlobalClass.CResutlWebMethod result = new sysGlobalClass.CResutlWebMethod();
        //if (!UserAcc.UserExpired())
        //{
        //    PTTPIMSAssessmentEntities db = new PTTPIMSAssessmentEntities();
        //    int nRoleID = SystemFunction2.ParseInt(sRoleID);
        //    var query = db.TGroupUser.FirstOrDefault(w => w.nGroupID == nRoleID && w.cActive == "1");
        //    if (query != null)
        //    {
        //        UserAcc.GetObjUser().nRoleID = query.nGroupID;
        //        UserAcc.GetObjUser().sACTIONROLE = query.sGroupname;

        //        HttpContext.Current.Session["ROLE"] = query.nGroupID;
        //        HttpContext.Current.Session["ACTIONROLE"] = query.sGroupname;

        //        result.Status = SystemFunction2.process_Success;
        //        result.Content = SystemFunction2.GetPageDefault();
        //    }
        //    else
        //    {
        //        result.Status = SystemFunction2.process_Failed;
        //        result.Msg = "ไม่พบ Role !";
        //    }
        //}
        //else
        //{
        //    result.Status = SystemFunction2.process_SessionExpired;
        //}
        return(result);
    }
 public static sysGlobalClass.CResutlWebMethod DeleteData(string[] arrValue)
 {
     sysGlobalClass.CResutlWebMethod result = new sysGlobalClass.CResutlWebMethod();
     if (!UserAcc.UserExpired())
     {
         PTTGC_EPIEntities db       = new PTTGC_EPIEntities();
         List <int>        lstDelID = new List <int>();
         if (arrValue != null)
         {
             lstDelID = arrValue.Select(s => s.toIntNullToZero()).ToList();
         }
         int nUserID = UserAcc.GetObjUser().nUserID;
         db.mTCompany.Where(w => w.ID != EPIFunc.DataType.Company.PTTGCID && lstDelID.Contains(w.ID)).ToList().ForEach(x =>
         {
             x.cDel     = "Y";
             x.dUpdate  = DateTime.Now;
             x.UpdateID = nUserID;
         });
         db.mTFacility.Where(w => lstDelID.Contains(w.CompanyID)).ToList().ForEach(x =>
         {
             x.cDel     = "Y";
             x.dUpdate  = DateTime.Now;
             x.UpdateID = nUserID;
         });
         db.SaveChanges();
         result.Status = SystemFunction.process_Success;
     }
     else
     {
         result.Status = SystemFunction.process_SessionExpired;
     }
     return(result);
 }
Beispiel #3
0
    public static sysGlobalClass.CResutlWebMethod ApproveWithEditContent(int FormID)
    {
        PTTGC_EPIEntities env = new PTTGC_EPIEntities();

        sysGlobalClass.CResutlWebMethod r = new sysGlobalClass.CResutlWebMethod();
        int nOperationType = 0;

        if (!UserAcc.UserExpired())
        {
            var gData = env.TEPI_Forms.FirstOrDefault(f => f.FormID == FormID);
            if (gData != null)
            {
                r.Msg    = SystemFunction.ReturnPath(gData.IDIndicator, gData.OperationTypeID, gData.FacilityID.ToString(), gData.sYear, "27");
                r.Status = SystemFunction.process_Success;
            }
            else
            {
                r.Msg    = "";
                r.Status = SystemFunction.process_Failed;
            }
        }
        else
        {
            r.Msg    = "";
            r.Status = SystemFunction.process_SessionExpired;
        }
        return(r);
    }
Beispiel #4
0
    public static sysGlobalClass.CResutlWebMethod SaveAction(List <int> lstMonth, int FormID, string sComment, string sMode)
    {
        sysGlobalClass.CResutlWebMethod r = new sysGlobalClass.CResutlWebMethod();

        if (!UserAcc.UserExpired())
        {
            int nRoleID = UserAcc.GetObjUser().nRoleID;
            int nUserID = UserAcc.GetObjUser().nUserID;
            if (nRoleID == 3)
            {
                r = new Workflow().WorkFlowAction(FormID, lstMonth, sMode, nUserID, nRoleID, sComment);
            }// L1
            else if (nRoleID == 2)
            {
            }//
            else if (nRoleID == 4)
            {
                r = new Workflow().WorkFlowAction(FormID, lstMonth, sMode, nUserID, nRoleID, sComment);
            }//L2
        }
        else
        {
            r.Status = SystemFunction.process_SessionExpired;
            r.Msg    = "";
        }

        //r = new Workflow().WorkFlowAction();
        return(r);
    }
    public static sysGlobalClass.CResutlWebMethod getOperationTypePTT(string sFacilityPTT_ID)
    {
        sysGlobalClass.CResutlWebMethod result = new sysGlobalClass.CResutlWebMethod();
        PTTGC_EPIEntities db = new PTTGC_EPIEntities();

        if (!UserAcc.UserExpired())
        {
            int nFacilityPTT_ID = SystemFunction.GetIntNullToZero(sFacilityPTT_ID);
            var item            = db.mTFacility.FirstOrDefault(w => w.ID == nFacilityPTT_ID);
            if (item != null)
            {
                result.Content = item.OperationTypeID + "";
                result.Status  = SystemFunction.process_Success;
            }
            else
            {
                result.Msg    = "Data operation type not found.";
                result.Status = SystemFunction.process_Failed;
            }
        }
        else
        {
            result.Status = SystemFunction.process_SessionExpired;
        }
        return(result);
    }
Beispiel #6
0
    public static sysGlobalClass.CResutlWebMethod ForgetPassword(string sEmail, string sUsername)
    {
        PTTGC_EPIEntities db = new PTTGC_EPIEntities();

        sysGlobalClass.CResutlWebMethod result = new sysGlobalClass.CResutlWebMethod();
        sEmail    = sEmail.ToLower();
        sUsername = sUsername.ToLower();

        var lstUser = db.mTUser.Where(w => w.cActive == "Y" && w.cDel == "N" && w.Username.ToLower() == sUsername && w.Email.ToLower() == sEmail).ToList();

        if (lstUser.Any())
        {
            var Data = lstUser.First();

            string sTitle  = "";
            string sText   = "";
            string subject = "";
            string message = "";
            string sURL    = "";
            string sFoot   = "";// "Should you have any questions about RD&T work process.";

            // sURL = Applicationpath + "login_forget.aspx?str=" + SystemFunction.Encrypt_UrlEncrypt(nDocID + "");

            subject = "Password Confirmation | " + SystemFunction.SystemName + "";

            sText += "<p>Your password is " + STCrypt.Decrypt(Data.PasswordEncrypt) + "</p>";

            string From = SystemFunction.GetSystemMail;
            string To   = Data.Email;
            message = string.Format(GET_TemplateEmail(),
                                    "Dear " + Data.Firstname + ' ' + Data.Lastname,
                                    sText,
                                    sURL,
                                    sFoot,
                                    "",
                                    "");
            Workflow.DataMail_log log = new Workflow.DataMail_log();
            log           = SystemFunction.SendMailAll(From, To, "", "", subject, message, "");
            log.nDataID   = SystemFunction.GetIntNullToZero(Data.ID + "");
            log.sPageName = "login.aspx";
            new Workflow().SaveLogMail(log);
            if (log.bStatus)
            {
                result.Status = SystemFunction.process_Success;
            }
        }
        else
        {
            result.Status = SystemFunction.process_Failed;
            result.Msg    = "data not found user";
        }
        return(result);
    }
 public static sysGlobalClass.CResutlWebMethod SelectedRole(string sUserID, string sRoleID)
 {
     sysGlobalClass.CResutlWebMethod result = new sysGlobalClass.CResutlWebMethod();
     if (new bypass().SetUserLogin(sUserID, sRoleID))
     {
         result.Status  = SystemFunction.process_Success;
         result.Content = "epi_mytask.aspx";
     }
     else
     {
         result.Status = SystemFunction.process_Failed;
         result.Msg    = "data not found";
     }
     return(result);
 }
    public static sysGlobalClass.CResutlWebMethod ApproveAll(List <DataApproveAll> arrValue)
    {
        sysGlobalClass.CResutlWebMethod result = new sysGlobalClass.CResutlWebMethod();
        if (!UserAcc.UserExpired())
        {
            PTTGC_EPIEntities env = new PTTGC_EPIEntities();
            int nUserID           = UserAcc.GetObjUser().nUserID;
            int nRoleID           = UserAcc.GetObjUser().nRoleID;


            var gForm  = arrValue.Select(s => s.nFormID).Distinct().ToList();
            int FormID = 0;
            if (gForm.Any())
            {
                gForm.ForEach(f =>
                {
                    FormID = f;
                    List <int> lstMonth = new List <int>();
                    arrValue.ForEach(f2 =>
                    {
                        if (f == f2.nFormID)
                        {
                            lstMonth.Add(f2.nMonth);
                        }
                    });

                    if (lstMonth.Any())
                    {
                        result = new Workflow().WorkFlowAction(FormID, lstMonth, "AP", nUserID, nRoleID, "");
                    }
                });
            }
        }
        else
        {
            result.Status = SystemFunction.process_SessionExpired;
        }
        return(result);
    }
Beispiel #9
0
 public static sysGlobalClass.CResutlWebMethod DeleteDataGC(string[] arrValue)
 {
     sysGlobalClass.CResutlWebMethod result = new sysGlobalClass.CResutlWebMethod();
     if (!UserAcc.UserExpired())
     {
         PTTGC_EPIEntities db       = new PTTGC_EPIEntities();
         List <int>        lstDelID = new List <int>();
         if (arrValue != null)
         {
             lstDelID = arrValue.Select(s => s.toIntNullToZero()).ToList();
         }
         int nUserID = UserAcc.GetObjUser().nUserID;
         db.mTFacility.Where(w => lstDelID.Contains(w.ID)).ToList().ForEach(x =>
         {
             db.mTFacility_Operationtype.RemoveRange(db.mTFacility_Operationtype.Where(w => w.nFacID == x.ID));
             x.cDel     = "Y";
             x.dUpdate  = DateTime.Now;
             x.UpdateID = nUserID;
         });
         foreach (var item in lstDelID)
         {
             var qDelSubFac = db.mTFacility.Where(w => w.nLevel == 2 && w.nHeaderID == item);
             foreach (var itemS in qDelSubFac)
             {
                 itemS.cDel     = "Y";
                 itemS.dUpdate  = DateTime.Now;
                 itemS.UpdateID = nUserID;
             }
         }
         db.SaveChanges();
         result.Status = SystemFunction.process_Success;
     }
     else
     {
         result.Status = SystemFunction.process_SessionExpired;
     }
     return(result);
 }
    public static sysGlobalClass.CResutlWebMethod DeleteData(string[] arrValue)
    {
        sysGlobalClass.CResutlWebMethod result = new sysGlobalClass.CResutlWebMethod();
        if (!UserAcc.UserExpired())
        {
            PTTGC_EPIEntities db       = new PTTGC_EPIEntities();
            List <int>        lstDelID = new List <int>();
            if (arrValue != null)
            {
                foreach (var item in arrValue)
                {
                    string[] strArr    = null;
                    char[]   splitchar = { ',' };
                    strArr = item.Split(splitchar);

                    int nFacID   = int.Parse(strArr[0]);
                    int nGroupID = int.Parse(strArr[1]);
                    int nUserID  = UserAcc.GetObjUser().nUserID;
                    db.mTWorkFlow.Where(w => w.IDFac == nFacID && w.IDIndicator == nGroupID).ToList().ForEach(x =>
                    {
                        db.mTWorkFlow.Remove(x);
                        //x.cDel = "Y";
                        //x.dUpdate = DateTime.Now;
                        //x.nUpdateID = nUserID;
                    });
                }
            }
            db.SaveChanges();
            result.Status = SystemFunction.process_Success;
        }
        else
        {
            result.Status = SystemFunction.process_SessionExpired;
        }
        return(result);
    }
Beispiel #11
0
    public static sysGlobalClass.CResutlWebMethod SaveData(CSaveData data)
    {
        sysGlobalClass.CResutlWebMethod result = new sysGlobalClass.CResutlWebMethod();
        if (!UserAcc.UserExpired())
        {
            PTTGC_EPIEntities db = new PTTGC_EPIEntities();

            Func <string, int?, bool> CheckDuplicateName = (name, id) =>
            {
                bool Isdup = false;
                var  q     = db.mTCompany.Where(w => (id.HasValue ? w.ID != id : true) && w.Name == name && w.cDel == "N");
                Isdup = q.Any();
                return(Isdup);
            };
            Func <string, int?, bool> CheckDuplicateCode = (code, id) =>
            {
                bool Isdup = false;
                var  q     = db.mTCompany.Where(w => (id.HasValue ? w.ID != id : true) && w.sCode == code && w.cDel == "N");
                Isdup = q.Any();
                return(Isdup);
            };
            string sCompID = data.sCompID.STCDecrypt();
            if (!string.IsNullOrEmpty(sCompID))
            {
                int nCompID = sCompID.toIntNullToZero();
                if (!CheckDuplicateName(data.sCompName, nCompID))
                {
                    if (!CheckDuplicateCode(data.sCode, nCompID))
                    {
                        var query = db.mTCompany.FirstOrDefault(w => w.ID == nCompID);
                        if (query != null)
                        {
                            query.Name        = data.sCompName.Trims();
                            query.sCode       = data.sCode.Trims();
                            query.Description = data.sDesc;
                            query.cActive     = data.sStatus;
                            query.dUpdate     = DateTime.Now;
                            query.UpdateID    = UserAcc.GetObjUser().nUserID;
                            if (data.sStatus == "N")
                            {
                                query.sRemark = data.sRemark.Trims();
                            }
                            else
                            {
                                query.sRemark = "";
                            }
                            db.SaveChanges();
                            result.Status = SystemFunction.process_Success;
                        }
                        else
                        {
                            result.Status = SystemFunction.process_Failed;
                            result.Msg    = "Not found data !";
                        }
                    }
                    else
                    {
                        result.Msg    = "Duplicate SAP code !";
                        result.Status = SystemFunction.process_Failed;
                    }
                }
                else
                {
                    result.Msg    = "Duplicate company name !";
                    result.Status = SystemFunction.process_Failed;
                }
            }
            else
            {
                if (!CheckDuplicateName(data.sCompName, null))
                {
                    if (!CheckDuplicateCode(data.sCode, null))
                    {
                        int       nCompID = db.mTCompany.Any() ? db.mTCompany.Max(x => x.ID) + 1 : 1;
                        mTCompany t       = new mTCompany();
                        t.ID          = nCompID;
                        t.Name        = data.sCompName.Trims();
                        t.sCode       = data.sCode.Trims();
                        t.Description = data.sDesc;
                        t.cActive     = data.sStatus;
                        if (data.sStatus == "N")
                        {
                            t.sRemark = data.sRemark.Trims();
                        }
                        t.CreateID = UserAcc.GetObjUser().nUserID;
                        t.dCreate  = DateTime.Now;
                        t.UpdateID = UserAcc.GetObjUser().nUserID;
                        t.dUpdate  = DateTime.Now;
                        t.cDel     = "N";
                        db.mTCompany.Add(t);
                        db.SaveChanges();
                        result.Status = SystemFunction.process_Success;
                    }
                    else
                    {
                        result.Msg    = "Duplicate SAP code !";
                        result.Status = SystemFunction.process_Failed;
                    }
                }
                else
                {
                    result.Msg    = "Duplicate company name !";
                    result.Status = SystemFunction.process_Failed;
                }
            }
        }
        else
        {
            result.Status = SystemFunction.process_SessionExpired;
        }
        return(result);
    }
    public static sysGlobalClass.CResutlWebMethod SaveData(CSaveData data)
    {
        sysGlobalClass.CResutlWebMethod result = new sysGlobalClass.CResutlWebMethod();
        PTTGC_EPIEntities db = new PTTGC_EPIEntities();

        if (UserAcc.UserExpired())
        {
            result.Status = SystemFunction.process_SessionExpired;
        }
        else
        {
            int nProductID = 0;
            Func <string, int?, bool> CheckDuplicateName = (name, id) =>
            {
                bool Isdup = false;
                var  q     = db.TM_Emission_OtherProduct.Where(w => (id.HasValue ? w.nProductID != id : true) && w.sName == name && w.cDel == "N");
                Isdup = q.Any();
                return(Isdup);
            };

            if (string.IsNullOrEmpty(data.sProductID)) // NEW
            {
                nProductID = db.TM_Emission_OtherProduct.Any() ? db.TM_Emission_OtherProduct.Max(m => m.nProductID) + 1 : 1;
                TM_Emission_OtherProduct t = new TM_Emission_OtherProduct();

                if (!CheckDuplicateName(data.sName, null))
                {
                    t.nProductID = nProductID;
                    t.sName      = data.sName.Trim();
                    t.cActive    = data.sStatus;
                    t.cDel       = "N";
                    t.nAddBy     = UserAcc.GetObjUser().nUserID;
                    t.dAdd       = DateTime.Now;
                    t.nUpdateBy  = UserAcc.GetObjUser().nUserID;
                    t.dUpdate    = DateTime.Now;
                    db.TM_Emission_OtherProduct.Add(t);
                }
                else
                {
                    result.Msg    = "Duplicate Name !";
                    result.Status = SystemFunction.process_Failed;
                    return(result);
                }
            }
            else
            {
                nProductID = int.Parse(data.sProductID);
                if (!CheckDuplicateName(data.sName, nProductID))
                {
                    var Query = db.TM_Emission_OtherProduct.FirstOrDefault(w => w.nProductID == nProductID);
                    if (Query != null)
                    {
                        Query.sName     = data.sName.Trim();
                        Query.cActive   = data.sStatus;
                        Query.cDel      = "N";
                        Query.nUpdateBy = UserAcc.GetObjUser().nUserID;
                        Query.dUpdate   = DateTime.Now;
                    }
                }
                else
                {
                    result.Msg    = "Duplicate Name !";
                    result.Status = SystemFunction.process_Failed;
                    return(result);
                }
            }
            db.SaveChanges();
            result.Status = SystemFunction.process_Success;
        }
        return(result);
    }
    public static sysGlobalClass.CResutlWebMethod SaveToDB(CSave_Data item, List <dataFileContactUs> objFile)
    {
        sysGlobalClass.CResutlWebMethod result = new sysGlobalClass.CResutlWebMethod();
        PTTGC_EPIEntities db  = new PTTGC_EPIEntities();
        DateTime          now = DateTime.Now;

        if (UserAcc.UserExpired())
        {
            result.Status = SystemFunction.process_SessionExpired;
        }
        else
        {
            UserAcc ua = UserAcc.GetObjUser();
            try
            {
                string     sPathSend = "";
                int        nID       = db.TContactUs.Any() ? db.TContactUs.Max(m => m.nContactID) + 1 : 1;
                TContactUs t         = new TContactUs();
                t.nContactID    = nID;
                t.sContactName  = item.sName;
                t.sContactEmail = item.sEmail;
                t.sContactTel   = item.sTel;
                t.sSubject      = item.sSubject;
                t.sDetail       = item.sDec;
                t.dCreate       = now;
                t.dUpdate       = now;
                t.cDel          = "N";
                if (objFile.Count > 0 && objFile != null)
                {
                    string sPathSave = string.Format(sFolderInPathSave, nID);
                    SystemFunction.CreateDirectory(sPathSave);
                    //string sPathSave = string.Format(sFolderInPathSave, nID);
                    //SystemFunction.CreateDirectory(sPathSave);
                    var    f = objFile.First();
                    string sSystemFileName = nID + "_" + "-" + DateTime.Now.ToString("ddMMyyyyHHmmss") + "." + SystemFunction.GetFileNameFromFileupload(f.sFileName, ""); //SystemFunction2.GetFileType(item.SaveToFileName);
                    SystemFunction.UpFile2Server(f.sPath, sPathSave, f.sSysFileName, sSystemFileName);

                    t.sContactFile    = f.sFileName;
                    t.sContactSysFile = sSystemFileName;
                    t.sContactPath    = sPathSave;
                    sPathSend         = HttpContext.Current.Server.MapPath("./") + sPathSave + sSystemFileName;
                }
                //t.cStatusAns = "NULL";
                db.TContactUs.Add(t);
                var Ispass = db.SaveChanges() > 0;

                if (Ispass)
                {
                    string From    = "";
                    var    lstUser = db.mTUser.FirstOrDefault(w => w.ID == ua.nUserID);
                    if (lstUser != null)
                    {
                        From = lstUser.Email;
                    }

                    // string From = item.sEmail;
                    #region Get_Email_Admin
                    string AdminContactmail = "";
                    var    lst_Email_Admin  = db.TMenu_Permission.Where(w => w.nRoleID == 1 && w.nMenuID == 65 && w.nPermission == 2).ToList();
                    if (lst_Email_Admin.Any())
                    {
                        lst_Email_Admin.ForEach(f =>
                        {
                            int nUserID   = f.nUserID;
                            var lst_Tuser = db.mTUser.FirstOrDefault(w => w.cActive == "Y" && w.ID == nUserID);
                            if (lst_Tuser != null)
                            {
                                AdminContactmail += "," + lst_Tuser.Email + " ";
                            }
                        });
                        AdminContactmail = AdminContactmail.Remove(0, 1);
                    }
                    else
                    {
                        AdminContactmail = WebConfigurationManager.AppSettings["ContactMail"] + "";
                    }
                    #endregion



                    string To       = "*****@*****.**";
                    string sSubject = SystemFunction.sAbbrSystem + " : Contact Us." + item.sSubject;
                    string sGurl    = SystemFunction.RequestUrl() + WebConfigurationManager.AppSettings["DefaultPage"] + "";
                    string sHtml    = @"
                    <table align='left'  border='0' cellspacing='2' cellpadding='3'>

                        <tr>
                            <td align='left'>Dear administrator: " + SystemFunction.SystemName + @" </td>
                        </tr>
                         <tr>
                           <td align='left'>Subject: " + item.sSubject + @"</td>
                        </tr>
                         <tr>
                           <td align='left'>Description: " + item.sDec + @"</td>
                        </tr>
                         <tr>
                           <td align='left'>From: " + item.sName + " E-mail: " + item.sEmail + " Contact phone number: " + item.sTel + @"</td>
                        </tr>
                        <tr>
                            <td align='left'><b>Check out more details.</b>: <a href='" + sGurl + @"' target='_blank'>Please click here</a></td>
                        </tr>
                       
                    </table>";
                    //sPathSend != "" ? sPathSend.Replace("/", "\\") : ""
                    Workflow.DataMail_log log = new Workflow.DataMail_log();
                    log           = SystemFunction.SendMailAll(From, AdminContactmail, "", "", sSubject, sHtml, sPathSend != "" ? sPathSend.Replace("/", "\\") : "");
                    log.nDataID   = SystemFunction.GetIntNullToZero(nID + "");
                    log.sPageName = "f_ContactUs.aspx";
                    new Workflow().SaveLogMail(log);
                    if (log.bStatus)
                    {
                        result.Status = SystemFunction.process_Success;
                    }
                }
            }
            catch (Exception e)
            {
                result.Msg    = e.Message;
                result.Status = SystemFunction.process_Failed;
            }

            result.Status = SystemFunction.process_Success;
        }

        return(result);
    }
    public static sysGlobalClass.CResutlWebMethod SaveToDB(cDataSave arrData)
    {
        sysGlobalClass.CResutlWebMethod result = new sysGlobalClass.CResutlWebMethod();
        PTTGC_EPIEntities            db        = new PTTGC_EPIEntities();
        Func <List <string>, string> Sum       = (lstData) =>
        {
            string sReusltData = "";
            int    Total       = 0;
            foreach (var item in lstData)
            {
                if (item.Trim() != "" && item.ToLower().Trim() != "n/a")
                {
                    Total += int.Parse(item);
                }
            }
            return(sReusltData);
        };

        if (!UserAcc.UserExpired())
        {
            var  itemEPI_FORM = db.TEPI_Forms.FirstOrDefault(w => w.sYear == arrData.sYear && w.IDIndicator == arrData.nIndicatorID && w.OperationTypeID == arrData.nOperationID && w.FacilityID == arrData.nFacilityID);
            bool IsNew        = itemEPI_FORM != null ? false : true;
            int  FORM_ID      = itemEPI_FORM != null ? itemEPI_FORM.FormID : (db.TEPI_Forms.Any() ? db.TEPI_Forms.Max(m => m.FormID) + 1 : 1);

            #region EPI_FORM
            var EPI_FORM = db.TEPI_Forms.FirstOrDefault(w => w.FormID == FORM_ID);
            if (IsNew)
            {
                EPI_FORM                   = new TEPI_Forms();
                EPI_FORM.FormID            = FORM_ID;
                EPI_FORM.sYear             = arrData.sYear;
                EPI_FORM.IDIndicator       = arrData.nIndicatorID;
                EPI_FORM.OperationTypeID   = arrData.nOperationID;
                EPI_FORM.FacilityID        = arrData.nFacilityID;
                EPI_FORM.sAddBy            = UserAcc.GetObjUser().nUserID;
                EPI_FORM.dAddDate          = DateTime.Now;
                EPI_FORM.ResponsiblePerson = UserAcc.GetObjUser().nUserID;
                EPI_FORM.sUpdateBy         = UserAcc.GetObjUser().nUserID;
                EPI_FORM.dUpdateDate       = DateTime.Now;
                db.TEPI_Forms.Add(EPI_FORM);
            }
            else
            {
                if (!SystemFunction.IsSuperAdmin())
                {
                    EPI_FORM.ResponsiblePerson = UserAcc.GetObjUser().nUserID;
                    EPI_FORM.sUpdateBy         = UserAcc.GetObjUser().nUserID;
                    EPI_FORM.dUpdateDate       = DateTime.Now;
                }
            }
            db.SaveChanges();
            #endregion

            #region EPI Workflow
            int nWkFlowID = db.TEPI_Workflow.Any() ? db.TEPI_Workflow.Max(m => m.nReportID) + 1 : 1;
            for (int i = 1; i <= 12; i++)
            {
                int nStatus = 0;
                if (arrData.nStatus != 0)
                {
                    var itemData = arrData.lstMonthSubmit.FirstOrDefault(a => a == i);
                    if (itemData != null && itemData != 0)
                    {
                        nStatus = arrData.nStatus;
                    }
                }
                var wkflow = db.TEPI_Workflow.FirstOrDefault(w => w.FormID == FORM_ID && w.nMonth == i);
                if (wkflow == null)
                {
                    wkflow           = new TEPI_Workflow();
                    wkflow.nReportID = nWkFlowID;
                    wkflow.FormID    = FORM_ID;
                    wkflow.nMonth    = i;
                    wkflow.nStatusID = nStatus;
                    wkflow.nActionBy = UserAcc.GetObjUser().nUserID;
                    wkflow.dAction   = DateTime.Now;
                    db.TEPI_Workflow.Add(wkflow);
                    nWkFlowID++;
                }
            }
            db.SaveChanges();
            #endregion

            #region Product
            if (arrData.nStatus != 24)
            {
                if (!IsNew)
                {
                    db.TComplaint_Product.RemoveRange(db.TComplaint_Product.Where(w => w.FormID == FORM_ID));
                    db.TComplaint.RemoveRange(db.TComplaint.Where(w => w.FormID == FORM_ID));
                    db.TComplaint_Impact.RemoveRange(db.TComplaint_Impact.Where(w => w.FormID == FORM_ID));
                    db.SaveChanges();
                }

                #region TComplaint_Product
                TComplaint_Product dataComplaintPrd = new TComplaint_Product();
                dataComplaintPrd.FormID    = FORM_ID;
                dataComplaintPrd.ProductID = arrData.incData.ProductID;
                dataComplaintPrd.UnitID    = arrData.incData.nUnitID;
                dataComplaintPrd.Target    = arrData.incData.sTarget;
                dataComplaintPrd.M1        = arrData.incData.M1;
                dataComplaintPrd.M2        = arrData.incData.M2;
                dataComplaintPrd.M3        = arrData.incData.M3;
                dataComplaintPrd.M4        = arrData.incData.M4;
                dataComplaintPrd.M5        = arrData.incData.M5;
                dataComplaintPrd.M6        = arrData.incData.M6;
                dataComplaintPrd.M7        = arrData.incData.M7;
                dataComplaintPrd.M8        = arrData.incData.M8;
                dataComplaintPrd.M9        = arrData.incData.M9;
                dataComplaintPrd.M10       = arrData.incData.M10;
                dataComplaintPrd.M11       = arrData.incData.M11;
                dataComplaintPrd.M12       = arrData.incData.M12;

                dataComplaintPrd.IsCheckM1  = arrData.incData.IsCheckM1;
                dataComplaintPrd.IsCheckM2  = arrData.incData.IsCheckM2;
                dataComplaintPrd.IsCheckM3  = arrData.incData.IsCheckM3;
                dataComplaintPrd.IsCheckM4  = arrData.incData.IsCheckM4;
                dataComplaintPrd.IsCheckM5  = arrData.incData.IsCheckM5;
                dataComplaintPrd.IsCheckM6  = arrData.incData.IsCheckM6;
                dataComplaintPrd.IsCheckM7  = arrData.incData.IsCheckM7;
                dataComplaintPrd.IsCheckM8  = arrData.incData.IsCheckM8;
                dataComplaintPrd.IsCheckM9  = arrData.incData.IsCheckM9;
                dataComplaintPrd.IsCheckM10 = arrData.incData.IsCheckM10;
                dataComplaintPrd.IsCheckM11 = arrData.incData.IsCheckM11;
                dataComplaintPrd.IsCheckM12 = arrData.incData.IsCheckM12;

                List <string> lstForSum = new List <string> {
                    arrData.incData.M1, arrData.incData.M2, arrData.incData.M3, arrData.incData.M4, arrData.incData.M5,
                    arrData.incData.M6, arrData.incData.M7, arrData.incData.M8, arrData.incData.M9, arrData.incData.M10, arrData.incData.M11, arrData.incData.M12
                };
                dataComplaintPrd.nTotal = Sum(lstForSum);
                db.TComplaint_Product.Add(dataComplaintPrd);
                db.SaveChanges();
                #endregion

                #region TComplaint
                int nComplaint = 1;
                arrData.lstComplaint.ForEach(f =>
                {
                    if (f.IsShow && f.IsSubmited)
                    {
                        TComplaint data        = new TComplaint();
                        data.FormID            = FORM_ID;
                        data.nComplaintID      = nComplaint;
                        data.nComplaintTypeID  = f.nComplaintTypeID;
                        data.ComplaintDate     = DateTime.ParseExact(f.sIssueDate, "dd/MM/yyyy", null);
                        data.sIssueBy          = f.sIssueBy;
                        data.sSubject          = f.sSubject;
                        data.sDetail           = f.sDetail;
                        data.sCorrectiveAction = f.sCorrectiveAction;
                        data.nComplaintByID    = f.nComplaintByID;
                        data.sComplaintByOther = f.sComplaintByOther;
                        data.sStatus           = f.sStatus;
                        data.nAddBy            = UserAcc.GetObjUser().nUserID;
                        data.dAdd = DateTime.Now;
                        db.TComplaint.Add(data);

                        f.lstImpact.ForEach(f2 =>
                        {
                            TComplaint_Impact dataImpact = new TComplaint_Impact();
                            dataImpact.FormID            = FORM_ID;
                            dataImpact.nComplaintID      = nComplaint;
                            dataImpact.nImpactTypeID     = f2.nImpactTypeID;
                            dataImpact.sOther            = f2.sOther;
                            db.TComplaint_Impact.Add(dataImpact);
                        });
                        db.SaveChanges();

                        #region TComplaint_File
                        if (f.lstFile.Any())
                        {
                            string sPathSave = string.Format(sFolderInPathSave, FORM_ID);
                            SystemFunction.CreateDirectory(sPathSave);

                            //ลบไฟล์เดิมที่เคยมีและกดลบจากหน้าเว็บ
                            var qDelFile = f.lstFile.Where(w => w.IsNewFile == false && w.sDelete == "Y").ToList();
                            if (qDelFile.Any())
                            {
                                foreach (var qf in qDelFile)
                                {
                                    var query = db.TComplaint_File.FirstOrDefault(w => w.FormID == FORM_ID && w.nComplaintID == f.nComplaintID && w.sSysFileName == qf.SaveToFileName);
                                    if (query != null)
                                    {
                                        new SystemFunction().DeleteFileInServer(query.sPath, query.sSysFileName);
                                        // new SystemFunction2().DeleteFileInServer(query.sSysPath, query.sSysFileName);
                                        db.TComplaint_File.Remove(query);
                                        ///db.TAuditPlan_AttachFile.Remove(query);
                                    }
                                }
                                db.SaveChanges();
                            }
                            //Update Description
                            f.lstFile.Where(w => w.IsNewFile == false && w.sDelete == "N").ToList().ForEach(f2U =>
                            {
                                var data2Update = db.TComplaint_File.FirstOrDefault(w => w.FormID == FORM_ID && w.nComplaintID == f.nComplaintID && w.nFileID == f2U.ID);
                                if (data2Update != null)
                                {
                                    data2Update.sDescription = f2U.sDescription;
                                }
                            });

                            //Save New File Only
                            var lstSave = f.lstFile.Where(w => w.IsNewFile == true && w.sDelete == "N").ToList();
                            if (lstSave.Any())
                            {
                                int nFileID = db.TComplaint_File.Where(w => w.FormID == FORM_ID && w.nComplaintID == f.nComplaintID).Any() ? db.TComplaint_File.Where(w => w.FormID == FORM_ID && w.nComplaintID == f.nComplaintID).Max(m => m.nFileID) + 1 : 1;

                                foreach (var s in lstSave)
                                {
                                    string sSystemFileName = FORM_ID + "_" + f.nComplaintID + "_" + nFileID + "-" + DateTime.Now.ToString("ddMMyyyyHHmmss") + "." + SystemFunction.GetFileNameFromFileupload(s.SaveToFileName, ""); //+ "." + SystemFunction.GetFileNameFromFileupload(s.SaveToFileName, "") SystemFunction2.GetFileType(item.SaveToFileName);
                                    SystemFunction.UpFile2Server(s.SaveToPath, sPathSave, s.SaveToFileName, sSystemFileName);

                                    // SystemFunction2.UpFile2Server(item.SaveToPath, sPathSave, item.SaveToFileName, sSystemFileName);
                                    TComplaint_File t = new TComplaint_File();
                                    t.FormID          = FORM_ID;
                                    t.nComplaintID    = f.nComplaintID;
                                    t.nFileID         = nFileID;
                                    t.sSysFileName    = sSystemFileName;
                                    t.sFileName       = s.FileName;
                                    t.sPath           = sPathSave;
                                    t.sDescription    = s.sDescription;
                                    db.TComplaint_File.Add(t);
                                    nFileID++;
                                }
                            }
                            db.SaveChanges();
                        }
                        #endregion

                        nComplaint++;
                    }
                });
                #endregion

                new EPIFunc().RecalculateComplaint(arrData.nOperationID, arrData.nFacilityID, arrData.sYear);
            }
            #endregion

            if (arrData.nStatus != 27)
            {
                new Workflow().UpdateHistoryStatus(FORM_ID);
            }

            if (arrData.nStatus != 0 && arrData.nStatus != 9999)
            {
                string sMode = "";
                switch (arrData.nStatus)
                {
                case 1:
                    sMode = "SM";
                    break;

                case 2:
                    sMode = "RQ";
                    break;

                case 24:
                    sMode = "RC";
                    break;

                case 27:
                    sMode = "APC";
                    break;
                }
                result = new Workflow().WorkFlowAction(FORM_ID, arrData.lstMonthSubmit, sMode, UserAcc.GetObjUser().nUserID, UserAcc.GetObjUser().nRoleID, arrData.sRemarkRequestEdit);
            }
            else
            {
                if (arrData.nStatus != 0)
                {
                    if (UserAcc.GetObjUser().nRoleID == 4)//ENVI Corporate (L2) >> Req.09.04.2019 Send email to L0 on L2 Modified data.
                    {
                        new Workflow().SendEmailToL0onL2EditData(arrData.sYear, arrData.nIndicatorID, arrData.nFacilityID, arrData.nOperationID);
                    }
                }
                result.Status = SystemFunction.process_Success;
            }
        }
        else
        {
            result.Status = SystemFunction.process_SessionExpired;
        }
        return(result);
    }
    public static sysGlobalClass.CResutlWebMethod SaveData(DataSave itemSave)
    {
        sysGlobalClass.CResutlWebMethod result = new sysGlobalClass.CResutlWebMethod();
        PTTGC_EPIEntities db = new PTTGC_EPIEntities();

        if (UserAcc.UserExpired())
        {
            result.Status = SystemFunction.process_SessionExpired;
        }
        else
        {
            Func <string, int?, bool> CheckDuplicateName = (name, id) =>
            {
                bool Isdup = false;
                var  q     = db.mOperationType.Where(w => (id.HasValue ? w.ID != id : true) && w.Name == name);
                Isdup = q.Any();
                return(Isdup);
            };

            string sOperationID = itemSave.sID.STCDecrypt();
            if (!string.IsNullOrEmpty(sOperationID))
            {
                int nOperationID = sOperationID.toIntNullToZero();
                if (!CheckDuplicateName(itemSave.sOperationName, nOperationID))
                {
                    var query = db.mOperationType.FirstOrDefault(f => f.ID == nOperationID);
                    if (query != null)
                    {
                        query.Name        = itemSave.sOperationName.Trims();
                        query.Description = itemSave.sDesc;
                        query.cActive     = itemSave.sStatus;
                        query.nUpdateID   = UserAcc.GetObjUser().nUserID;
                        query.dUpdate     = DateTime.Now;
                        if (itemSave.sStatus == "N")
                        {
                            query.sRemark = itemSave.sRemark.Trims();
                        }
                        else
                        {
                            query.sRemark = "";
                        }
                        db.SaveChanges();
                        result.Status = SystemFunction.process_Success;
                    }
                    else
                    {
                        result.Status = SystemFunction.process_Failed;
                        result.Msg    = "Not found data !";
                    }
                }
                else
                {
                    result.Msg    = "Duplicate Operation name !";
                    result.Status = SystemFunction.process_Failed;
                }
            }
            else
            {
                if (!CheckDuplicateName(itemSave.sOperationName, null))
                {
                    int            nID = db.mOperationType.Any() ? db.mOperationType.Max(m => m.ID) + 1 : 1;
                    mOperationType t   = new mOperationType();
                    t.ID          = nID;
                    t.Name        = itemSave.sOperationName.Trims();
                    t.Description = itemSave.sDesc;
                    t.cActive     = itemSave.sStatus;
                    if (itemSave.sStatus == "N")
                    {
                        t.sRemark = itemSave.sRemark.Trims();
                    }
                    t.nCreateID = UserAcc.GetObjUser().nUserID;
                    t.dCreate   = DateTime.Now;
                    t.nUpdateID = UserAcc.GetObjUser().nUserID;
                    t.dUpdate   = DateTime.Now;
                    t.cDel      = "N";
                    t.cManage   = "Y";
                    db.mOperationType.Add(t);
                    db.SaveChanges();
                    result.Status = SystemFunction.process_Success;
                }
                else
                {
                    result.Msg    = "Duplicate Operation name !";
                    result.Status = SystemFunction.process_Failed;
                }
            }
        }

        return(result);
    }
    public static sysGlobalClass.CResutlWebMethod saveToDB(DataValue dataValue)
    {
        sysGlobalClass.CResutlWebMethod result = new sysGlobalClass.CResutlWebMethod();
        PTTGC_EPIEntities db = new PTTGC_EPIEntities();

        if (!UserAcc.UserExpired())
        {
            dataValue.sComID      = STCrypt.Decrypt(dataValue.sComID);
            dataValue.sFacilityID = !string.IsNullOrEmpty(dataValue.sFacilityID) ? STCrypt.Decrypt(dataValue.sFacilityID) : "";
            Func <string, int, int?, int, bool> CheckDuplicateName = (name, comID, facID, nLevel) =>
            {
                bool Isdup = false;
                var  q     = db.mTFacility.Where(w => w.CompanyID == comID && w.nLevel == nLevel && (facID.HasValue ? w.ID != facID : true) && w.Name == name && w.cDel == "N");
                Isdup = q.Any();
                return(Isdup);
            };
            #region  Add / Update
            if (CheckDuplicateName(dataValue.sFacilityName, SystemFunction.GetIntNullToZero(dataValue.sComID), dataValue.IsNew ? (int?)null : SystemFunction.GetIntNullToZero(dataValue.sFacilityID), (dataValue.sComType == "GC" ? 1 : 0)))
            {
                result.Status = SystemFunction.process_Failed;
                result.Msg    = "Duplicate Facility name";
                return(result);
            }

            int nFacility_PTT = SystemFunction.GetIntNullToZero(dataValue.sFacilityPTT_ID);
            int nFacilityID   = SystemFunction.GetIntNullToZero(dataValue.sFacilityID);
            if (dataValue.sComType == "GC" && nFacility_PTT != 0)
            {
                var query = db.mTFacility.Where(w => w.cDel == "N" && w.nLevel == 1 && w.nHeaderID == nFacility_PTT && w.ID != nFacilityID);
                if (query.Any())
                {
                    result.Status = SystemFunction.process_Failed;
                    result.Msg    = "Cannot reference PTT facility, because exist used.";
                    return(result);
                }
            }

            int nComID       = SystemFunction.GetIntNullToZero(dataValue.sComID);
            var itemFacility = db.mTFacility.FirstOrDefault(w => w.ID == nFacilityID && w.CompanyID == nComID);
            int nMaxID       = db.mTFacility.Any() ? db.mTFacility.Max(m => m.ID) + 1 : 1;
            if (dataValue.IsNew)
            {
                itemFacility          = new mTFacility();
                itemFacility.ID       = nMaxID;
                itemFacility.cDel     = "N";
                itemFacility.CreateID = UserAcc.GetObjUser().nUserID;
                itemFacility.dCreate  = DateTime.Now;
            }
            itemFacility.sMappingCodePTT = (dataValue.sMapPTTCode + "").Trim();
            itemFacility.Name            = dataValue.sFacilityName;
            itemFacility.nLevel          = dataValue.sComType == "GC" ? 1 : 0;
            itemFacility.nHeaderID       = dataValue.sComType == "GC" ? (nFacility_PTT == 0 ? (int?)null : nFacility_PTT) : (int?)null;
            itemFacility.sRelation       = dataValue.sComType == "GC" ? (nFacility_PTT == 0 ? itemFacility.ID + "" : nFacility_PTT + "-" + itemFacility.ID) : itemFacility.ID + "";
            //itemFacility.sRelation = dataValue.sComType == "GC" ? nFacility_PTT + "-" + itemFacility.ID : itemFacility.ID + "";
            itemFacility.OperationTypeID = SystemFunction.GetIntNullToZero(dataValue.sOperationTypePTT_ID);
            itemFacility.CompanyID       = SystemFunction.GetIntNullToZero(dataValue.sComID);
            itemFacility.Description     = dataValue.sDescription;
            itemFacility.cActive         = dataValue.sActive;
            itemFacility.sRemark         = dataValue.sActive == "Y" ? null : dataValue.sRemark;
            itemFacility.UpdateID        = dataValue.IsNew ? (int?)null : UserAcc.GetObjUser().nUserID;
            itemFacility.dUpdate         = DateTime.Now;
            if (dataValue.IsNew)
            {
                db.mTFacility.Add(itemFacility);
            }

            if (dataValue.sComType == "GC")
            {
                //db.mTFacility_Operationtype.RemoveRange(db.mTFacility_Operationtype.Where(w => w.nFacID == itemFacility.ID));
                //foreach (var item in dataValue.lstOperationTypeGC_ID)
                //{
                //    mTFacility_Operationtype oprt = new mTFacility_Operationtype();
                //    oprt.nFacID = itemFacility.ID;
                //    oprt.nOperationtypeID = SystemFunction.GetIntNullToZero(item);
                //    db.mTFacility_Operationtype.Add(oprt);
                //}
            }
            else
            {
                if (!dataValue.IsNew)
                {
                    db.mTFacility.Where(w => w.nHeaderID == itemFacility.ID && w.cDel == "N").ToList().ForEach(f =>
                    {
                        f.OperationTypeID = itemFacility.OperationTypeID;
                    });
                }
            }
            db.SaveChanges();
            result.Status = SystemFunction.process_Success;
            #endregion
        }
        else
        {
            result.Status = SystemFunction.process_SessionExpired;
        }
        return(result);
    }
    public static sysGlobalClass.CResutlWebMethod SaveData(CSaveData data)
    {
        sysGlobalClass.CResutlWebMethod result = new sysGlobalClass.CResutlWebMethod();
        PTTGC_EPIEntities db = new PTTGC_EPIEntities();

        if (UserAcc.UserExpired())
        {
            result.Status = SystemFunction.process_SessionExpired;
        }
        else
        {
            Func <string, int?, bool> CheckDuplicateName = (name, id) =>
            {
                bool Isdup = false;
                var  q     = db.mTUser.Where(w => (id.HasValue ? w.ID != id : true) && w.Username == name);
                Isdup = q.Any();
                return(Isdup);
            };

            if (!string.IsNullOrEmpty(data.sUserID))
            {
                int nUserID = data.sUserID.toIntNullToZero();

                var query = db.mTUser.FirstOrDefault(w => w.ID == nUserID);
                if (query != null)
                {
                    if (query.cUserType == "0") //Employee_GC
                    {
                        if (!CheckDuplicateName(data.sUserCode, nUserID))
                        {
                            query.Firstname = data.sName.Trim();
                            query.Email     = data.sEmail.Trim();
                            query.Company   = data.sOrg.Trim();
                            //query.sUserCode = data.sUserCode.Trim();
                            //query.Username = data.sUserCode.Trim();
                        }
                        else
                        {
                            result.Msg    = "Duplicate Employee Code !";
                            result.Status = SystemFunction.process_Failed;
                            return(result);
                        }
                    }
                    else //Employee_Other
                    {
                        if (!CheckDuplicateName(data.sUsername, nUserID))
                        {
                            query.Username  = data.sUsername.Trim();
                            query.Email     = data.sEmail.Trim();
                            query.Company   = data.sOrg.Trim();
                            query.Firstname = data.sName.Trim();
                            query.Lastname  = data.sSurName.Trim();
                            if (!string.IsNullOrEmpty(data.sPassword))
                            {
                                query.Password        = STCrypt.encryptMD5(data.sPassword.Trim());
                                query.PasswordEncrypt = STCrypt.Encrypt(data.sPassword.Trim());
                            }
                        }
                        else
                        {
                            result.Msg    = "Duplicate Username !";
                            result.Status = SystemFunction.process_Failed;
                            return(result);
                        }
                    }
                    query.nUpdateID = UserAcc.GetObjUser().nUserID;
                    query.dUpdate   = DateTime.Now;

                    db.SaveChanges();
                    result.Status = SystemFunction.process_Success;
                }
            }
            else
            {
                result.Status = SystemFunction.process_Failed;
                result.Msg    = "Not found data !";
                return(result);
            }
        }

        return(result);
    }
    public static sysGlobalClass.CResutlWebMethod SaveToDB(string sDesc, string sID, List <dataFileContactUs> objFile)
    {
        sysGlobalClass.CResutlWebMethod result = new sysGlobalClass.CResutlWebMethod();
        PTTGC_EPIEntities db  = new PTTGC_EPIEntities();
        DateTime          now = DateTime.Now;

        if (UserAcc.UserExpired())
        {
            result.Status = SystemFunction.process_SessionExpired;
        }
        else
        {
            try
            {
                UserAcc ua = UserAcc.GetObjUser();
                if (!string.IsNullOrEmpty(sID))
                {
                    string sPathSend = "";
                    int    nID       = int.Parse(STCrypt.Decrypt(sID));
                    var    Query     = db.TContactUs.FirstOrDefault(w => w.cDel == "N" && w.nContactID == nID);
                    if (Query != null)
                    {
                        Query.sAnswer    = sDesc;
                        Query.cStatusAns = "2";
                        Query.dAnswer    = now;
                        Query.dUpdate    = now;
                        Query.nAnswerBy  = UserAcc.GetObjUser().nUserID;

                        if (objFile.Count > 0 && objFile != null)
                        {
                            string sPathSave = string.Format(sFolderInPathSave, nID);
                            SystemFunction.CreateDirectory(sPathSave);
                            //string sPathSave = string.Format(sFolderInPathSave, nID);
                            //SystemFunction.CreateDirectory(sPathSave);
                            var    f = objFile.First();
                            string sSystemFileName = nID + "_" + "-" + DateTime.Now.ToString("ddMMyyyyHHmmss") + "." + SystemFunction.GetFileNameFromFileupload(f.sFileName, ""); //SystemFunction2.GetFileType(item.SaveToFileName);
                            SystemFunction.UpFile2Server(f.sPath, sPathSave, f.sSysFileName, sSystemFileName);

                            Query.sAnsFile    = f.sFileName;
                            Query.sAnsSysFile = sSystemFileName;
                            Query.sAnsPath    = sPathSave;
                            sPathSend         = HttpContext.Current.Server.MapPath("./") + sPathSave + sSystemFileName;
                        }

                        var Ispass = db.SaveChanges() > 0;
                        if (Ispass)
                        {
                            string To = Query.sContactEmail;                                                   // Contact Mail
                            string AdminContactmail = WebConfigurationManager.AppSettings["ContactMail"] + ""; // Mail Admin
                            //string To1 = "*****@*****.**";

                            string sSubject           = SystemFunction.sAbbrSystem + " : Contact Us." + Query.sSubject;
                            string sGurl              = SystemFunction.RequestUrl() + WebConfigurationManager.AppSettings["DefaultPage"] + "";
                            string sHtml              = @"
                                    <table align='left'  border='0' cellspacing='2' cellpadding='3'>

                                        <tr>
                                            <td align='left'>Dear: " + Query.sContactName + @"</td>
                                        </tr>
                                         <tr>
                                           <td align='left'>Subject: " + Query.sSubject + @"</td>
                                        </tr>
                                         <tr>
                                           <td align='left'>Description: " + Query.sDetail + @"</td>
                                        </tr>
                                        <tr>
                                           <td align='left'>Answer: " + Query.sAnswer + @"</td>
                                        </tr>

                                    </table>";
                            Workflow.DataMail_log log = new Workflow.DataMail_log();

                            string ccMail  = "";
                            var    lstUser = db.mTUser.FirstOrDefault(w => w.ID == ua.nUserID);
                            if (lstUser != null)
                            {
                                ccMail = lstUser.Email;
                            }

                            log           = SystemFunction.SendMailAll(AdminContactmail, To, ccMail, "", sSubject, sHtml, sPathSend != "" ? sPathSend.Replace("/", "\\") : "");
                            log.nDataID   = SystemFunction.GetIntNullToZero(nID + "");
                            log.sPageName = "admin_ContactUs_update.aspx";
                            new Workflow().SaveLogMail(log);
                            if (log.bStatus)
                            {
                                result.Status = SystemFunction.process_Success;
                            }
                        }
                    }
                }
            }
            catch (Exception e)
            {
                result.Msg    = e.Message;
                result.Status = SystemFunction.process_Failed;
            }

            result.Status = SystemFunction.process_Success;
        }

        return(result);
    }
Beispiel #19
0
    public static sysGlobalClass.CResutlWebMethod saveToDB(DataValue dataValue)
    {
        sysGlobalClass.CResutlWebMethod result = new sysGlobalClass.CResutlWebMethod();
        PTTGC_EPIEntities db = new PTTGC_EPIEntities();

        if (!UserAcc.UserExpired())
        {
            dataValue.sFacilityID = STCrypt.Decrypt(dataValue.sFacilityID);
            dataValue.sAssetID    = !string.IsNullOrEmpty(dataValue.sAssetID) ? STCrypt.Decrypt(dataValue.sAssetID) : "";

            Func <string, int?, bool> CheckDuplicateName = (name, AssetID) =>
            {
                bool Isdup = false;
                var  q     = db.mTFacility.Where(w => (AssetID.HasValue ? w.ID != AssetID : true) && w.nLevel == 2 && w.Name.Trim().ToLower() == name.Trim().ToLower() && w.cDel == "N");
                Isdup = q.Any();
                return(Isdup);
            };

            Func <string, int?, bool> CheckDuplicateNameSAP = (name, AssetID) =>
            {
                bool Isdup = false;
                var  q     = db.mTFacility.Where(w => (AssetID.HasValue ? w.ID != AssetID : true) && w.nLevel == 2 && w.sSAPName.Trim().ToLower() == name.Trim().ToLower() && w.cDel == "N");
                Isdup = q.Any();
                return(Isdup);
            };

            Func <string, int?, bool> CheckDuplicateCodeSAP = (code, AssetID) =>
            {
                bool Isdup = false;
                var  q     = db.mTFacility.Where(w => (AssetID.HasValue ? w.ID != AssetID : true) && w.nLevel == 2 && w.sRefFacCode.Trim().ToLower() == code.Trim().ToLower() && w.cDel == "N");
                Isdup = q.Any();
                return(Isdup);
            };

            #region  Add / Update
            if (dataValue.sRefFacType == "N" && CheckDuplicateName(dataValue.sAssetName, dataValue.IsNew ? (int?)null : SystemFunction.GetIntNullToZero(dataValue.sAssetID)))
            {
                result.Status = SystemFunction.process_Failed;
                result.Msg    = "Already Sub-facility Name !";
                return(result);
            }

            if (dataValue.sRefFacType == "P" && !string.IsNullOrEmpty(dataValue.sRefFacCode))
            {
                if (CheckDuplicateCodeSAP(dataValue.sRefFacCode, dataValue.IsNew ? (int?)null : SystemFunction.GetIntNullToZero(dataValue.sAssetID)))
                {
                    result.Status = SystemFunction.process_Failed;
                    result.Msg    = "Already SAP Code !";
                    return(result);
                }
            }

            bool IsPass       = true;
            int  sAssetID     = SystemFunction.GetIntNullToZero(dataValue.sAssetID);
            int  nFacilityID  = SystemFunction.GetIntNullToZero(dataValue.sFacilityID);
            var  itemAsset    = db.mTFacility.FirstOrDefault(w => w.ID == sAssetID);
            var  itemFacility = db.mTFacility.FirstOrDefault(w => w.ID == nFacilityID);
            int  nMaxID       = db.mTFacility.Any() ? db.mTFacility.Max(m => m.ID) + 1 : 1;
            if (dataValue.IsNew)
            {
                itemAsset          = new mTFacility();
                itemAsset.ID       = nMaxID;
                itemAsset.cDel     = "N";
                itemAsset.CreateID = UserAcc.GetObjUser().nUserID;
                itemAsset.dCreate  = DateTime.Now;
            }

            if (dataValue.sRefFacType == "P")
            {
                #region SAP Master
                var dataComp = db.mTCompany.FirstOrDefault(w => w.ID == itemFacility.CompanyID);
                if (dataComp != null)
                {
                    var qSAPFac = db.v_TM_SAP_ALLFAC.FirstOrDefault(w => w.sCode == dataValue.sRefFacCode && w.sCompCode == dataComp.sCode);
                    if (qSAPFac != null)
                    {
                        itemAsset.sRefFacCode    = dataValue.sRefFacCode;
                        itemAsset.Name           = qSAPFac.sName.Trims();
                        itemAsset.sRefFacSubType = qSAPFac.sType;
                        itemAsset.sInternalCode  = "";
                    }
                    else
                    {
                        IsPass        = false;
                        result.Status = SystemFunction.process_Failed;
                        result.Msg    = "Not found SAP master data !";
                    }
                }
                else
                {
                    IsPass        = false;
                    result.Status = SystemFunction.process_Failed;
                    result.Msg    = "Not found company data !";
                }
                #endregion
            }
            else
            {
                #region Manual Create
                var dataComp = db.mTCompany.FirstOrDefault(w => w.ID == itemFacility.CompanyID);
                if (dataComp != null)
                {
                    if (!string.IsNullOrEmpty(dataValue.sRefFacCode))//มีการอัพเดท SAP Code หลังจากที่ manual create
                    {
                        var qSAPFac = db.v_TM_SAP_ALLFAC.FirstOrDefault(w => w.sCode == dataValue.sRefFacCode && w.sCompCode == dataComp.sCode);
                        if (qSAPFac != null)
                        {
                            itemAsset.sRefFacCode = dataValue.sRefFacCode;
                            itemAsset.Name        = qSAPFac.sName.Trims();
                        }
                        else
                        {
                            IsPass        = false;
                            result.Status = SystemFunction.process_Failed;
                            result.Msg    = "Not found SAP master data !";
                        }
                    }
                    else
                    {
                        itemAsset.Name        = dataValue.sAssetName;
                        itemAsset.sRefFacCode = "";
                    }

                    itemAsset.sRefFacSubType = dataValue.sRefFacSubType;
                    if (dataValue.IsNew || string.IsNullOrEmpty(itemAsset.sInternalCode))
                    {
                        string sType = dataValue.sRefFacSubType == "O" ? "Z" : dataValue.sRefFacSubType;
                        char   cType = '-';
                        switch (sType)
                        {
                        case "O": cType = 'Z'; break;

                        case "S": cType = 'S'; break;

                        case "P": cType = 'P'; break;
                        }

                        Func <string, int> GetNumber = (code) =>
                        {
                            string[] arr = code.Split(cType);
                            return((arr[arr.Length - 1]).toIntNullToZero());
                        };

                        var qFacInternalCode = db.mTFacility.Where(w => w.cDel == "N" && w.CompanyID == itemFacility.CompanyID && w.sInternalCode.Contains(sType)).AsEnumerable().Select(s => new
                        {
                            nNumber = GetNumber(s.sInternalCode)
                        }).ToList();
                        int nNumber = qFacInternalCode.Any() ? qFacInternalCode.Max(x => x.nNumber) + 1 : 1;
                        itemAsset.sInternalCode = dataComp.sCode + sType + nNumber; //EX. 10Z1
                    }
                }
                else
                {
                    IsPass        = false;
                    result.Status = SystemFunction.process_Failed;
                    result.Msg    = "Not found company data !";
                }
                #endregion
            }

            if (IsPass)
            {
                itemAsset.sRefFacType     = dataValue.sRefFacType;
                itemAsset.nLevel          = 2;
                itemAsset.nHeaderID       = itemFacility.ID;
                itemAsset.sRelation       = itemFacility.sRelation + "-" + itemAsset.ID;
                itemAsset.OperationTypeID = itemFacility.OperationTypeID;
                itemAsset.CompanyID       = itemFacility.CompanyID;
                itemAsset.Description     = dataValue.sDescription;
                itemAsset.cActive         = dataValue.sActive;
                itemAsset.sRemark         = dataValue.sActive == "Y" ? null : dataValue.sRemark;
                itemAsset.UpdateID        = dataValue.IsNew ? (int?)null : UserAcc.GetObjUser().nUserID;
                itemAsset.dUpdate         = DateTime.Now;
                if (dataValue.IsNew)
                {
                    db.mTFacility.Add(itemAsset);
                }

                db.SaveChanges();
                result.Status = SystemFunction.process_Success;
            }
            #endregion
        }
        else
        {
            result.Status = SystemFunction.process_SessionExpired;
        }
        return(result);
    }