public MetaResponse GetSubProgramLists()
 {
     try
     {
         string         msg = "";
         REQUEST_DETAIL DAL_REQUEST_DETAIL = new REQUEST_DETAIL(con);
         DataTable      dt = DAL_REQUEST_DETAIL.GetSubProgramLists(out msg);
         response.Data = Utility.Utility_Component.DtToJSon(dt, "Usage Application : Sub Program Lists");
         if (dt.Rows.Count > 0)
         {
             response.Status = 1;
         }
         else
         {
             if (msg == "")
             {
                 response.Status  = 1;
                 response.Message = "There is no data to display.";
             }
             else
             {
                 response.Status  = 0;
                 response.Message = msg;
             }
         }
         timer.Stop();
         response.Meta.Duration = timer.Elapsed.TotalSeconds;
         return(response);
     }
     catch (Exception ex)
     {
         return(ResponseUtility.GetUnexpectedResponse(response, timer, ex));
     }
 }
        public MetaResponse UpdateRequestDetail(string list)
        {
            try
            {
                DataTable dgvList = Utility.Utility_Component.JsonToDt(list);

                for (int i = 0; i < dgvList.Rows.Count; i++)
                {
                    BOL_REQUEST_DETAIL oREQUEST_DETAIL = new BOL_REQUEST_DETAIL();
                    oREQUEST_DETAIL = Cast_REQUEST_DETAIL(dgvList.Rows[i]);
                    BOL_REQUEST_ID oREQUEST_ID = new BOL_REQUEST_ID();
                    oREQUEST_ID = Cast_REQUEST_ID(dgvList.Rows[i]);

                    switch (dgvList.Rows[i]["MK"].ToString())
                    {
                    case "M":
                        HandleModify(oREQUEST_DETAIL, oREQUEST_ID, dgvList.Rows[i]);
                        break;

                    default:
                        break;
                    }
                }
                response.Status = 1;
                response.Data   = Utility.Utility_Component.DtToJSon(dgvList, "Application List Update");;
                timer.Stop();
                response.Meta.Duration = timer.Elapsed.TotalSeconds;
                return(response);
            }
            catch (Exception ex)
            {
                return(ResponseUtility.GetUnexpectedResponse(response, timer, ex));
            }
        }
 public MetaResponse getInitialData(string COMPANY_NO_BOX, string REQ_SEQ)
 {
     try
     {
         string         msg = "";
         REQUEST_DETAIL DAL_REQUEST_DETAIL = new REQUEST_DETAIL(con);
         DataTable      dt = DAL_REQUEST_DETAIL.Search(COMPANY_NO_BOX, REQ_SEQ, out msg);
         response.Data = Utility.Utility_Component.DtToJSon(dt, "Initial Data");
         if (dt.Rows.Count > 0)
         {
             response.Status = 1;
         }
         else
         {
             if (msg == "")
             {
                 response.Status  = 1;
                 response.Message = "There is no data to display.";
             }
             else
             {
                 response.Status  = 0;
                 response.Message = msg;
             }
         }
         return(response);
     }
     catch (Exception ex)
     {
         return(ResponseUtility.GetUnexpectedResponse(response, timer, ex));
     }
 }
Example #4
0
        public MetaResponse SendMail(string CompanyCodeList)
        {
            try
            {
                string    strMsg  = "";
                DataTable dgvList = Utility.Utility_Component.JsonToDt(CompanyCodeList);

                for (int i = 0; i < dgvList.Rows.Count; i++)
                {
                    //cast to REQUEST_ID object
                    BOL_REQUEST_ID oREQUEST_ID = new BOL_REQUEST_ID();
                    oREQUEST_ID = Cast_REQUEST_ID(dgvList.Rows[i]);

                    REQUEST_ID DAL_REQUEST_ID = new REQUEST_ID(con);

                    if (!DAL_REQUEST_ID.IsAlreadyUpdated(oREQUEST_ID, out strMsg)) // If updated_at is not already modified
                    {
                        bool mailSuccess = PrepareAndSendMail(oREQUEST_ID);

                        if (mailSuccess)
                        {
                            //update email sent date
                            oREQUEST_ID.EMAIL_SEND_DATE = TEMP;
                            DAL_REQUEST_ID.UpdateMailDate(oREQUEST_ID, CURRENT_DATETIME, CURRENT_USER, out strMsg);
                            if (String.IsNullOrEmpty(strMsg))
                            {
                                //success message
                                dgvList.Rows[i]["EMAIL_SEND_DATE"] = UPDATED_AT_DATETIME;
                                ResponseUtility.ReturnMailSuccessMessage(dgvList.Rows[i], UPDATED_AT_DATETIME, CURRENT_DATETIME, CURRENT_USER);
                            }
                            else
                            {
                                //fail message
                                ResponseUtility.MailSendingFail(dgvList.Rows[i]);
                            }
                        }
                        else
                        {
                            ResponseUtility.MailSendingFail(dgvList.Rows[i]);
                        }
                    }
                    else
                    {
                        ResponseUtility.ReturnFailMessage(dgvList.Rows[i]);
                    }
                }
                response.Status = 1;
                response.Data   = Utility.Utility_Component.DtToJSon(dgvList, "Mail status");;
                timer.Stop();
                response.Meta.Duration = timer.Elapsed.TotalSeconds;
                return(response);
            }
            catch (Exception ex)
            {
                return(ResponseUtility.GetUnexpectedResponse(response, timer, ex));
            }
        }
        public MetaResponse GDConfirmRequest(string list)
        {
            try
            {
                string    msg     = "";
                DataTable dgvList = Utility.Utility_Component.JsonToDt(list);

                for (int i = 0; i < dgvList.Rows.Count; i++)
                {
                    BOL_REQUEST_DETAIL oREQUEST_DETAIL = new BOL_REQUEST_DETAIL();
                    BOL_REQUEST_ID     oREQUEST_ID     = new BOL_REQUEST_ID();

                    //cast into objects
                    oREQUEST_ID     = Cast_REQUEST_ID(dgvList.Rows[i]);
                    oREQUEST_DETAIL = Cast_REQUEST_DETAIL(dgvList.Rows[i]);

                    //send mail
                    bool mailSuccess = PrepareAndSendMail(oREQUEST_DETAIL, true, null);

                    if (mailSuccess)
                    {
                        REQUEST_ID DAL_REQUEST_ID = new REQUEST_ID(con);
                        if (!DAL_REQUEST_ID.IsAlreadyUpdated(oREQUEST_ID, out msg))
                        {
                            //set GD to 1
                            oREQUEST_ID.GD = 1;

                            //insert the record
                            DAL_REQUEST_ID.GDConfirmationRequestUpdate(oREQUEST_ID, CURRENT_DATETIME, CURRENT_USER, out msg);

                            //return message and MK value
                            if (String.IsNullOrEmpty(msg)) //success
                            {
                                ResponseUtility.ReturnSuccessMessage(dgvList.Rows[i], UPDATED_AT_DATETIME, CURRENT_DATETIME, CURRENT_USER, string.Format(Utility.Messages.Jimugo.I000ZZ016, "GD確認依頼"));
                            }
                            else //failed
                            {
                                ResponseUtility.ReturnFailMessage(dgvList.Rows[i]);
                            }
                        }
                    }
                    else
                    {
                        ResponseUtility.MailSendingFail(dgvList.Rows[i]);
                    }
                }
                response.Status = 1;
                response.Data   = Utility.Utility_Component.DtToJSon(dgvList, "GD Confirm Request");;
                timer.Stop();
                response.Meta.Duration = timer.Elapsed.TotalSeconds;
                return(response);
            }
            catch (Exception ex)
            {
                return(ResponseUtility.GetUnexpectedResponse(response, timer, ex));
            }
        }
        public MetaResponse UpdateApplicationCancel(string list)
        {
            try
            {
                string    msg     = "";
                DataTable dgvList = Utility.Utility_Component.JsonToDt(list);

                for (int i = 0; i < dgvList.Rows.Count; i++)
                {
                    BOL_REQUEST_DETAIL oREQUEST_DETAIL = new BOL_REQUEST_DETAIL();
                    oREQUEST_DETAIL = Cast_REQUEST_DETAIL(dgvList.Rows[i]);

                    REQUEST_DETAIL DAL_REQUEST_DETAIL = new REQUEST_DETAIL(con);

                    //already setting
                    if (oREQUEST_DETAIL.SYSTEM_SETTING_STATUS != 0)
                    {
                        ResponseUtility.ReturnFailMessage(dgvList.Rows[i], Messages.Jimugo.E000WB011);
                    }
                    else
                    {
                        if (!DAL_REQUEST_DETAIL.IsAlreadyUpdated(oREQUEST_DETAIL, out msg)) // If updated_at is not already modified
                        {
                            //insert the record
                            DAL_REQUEST_DETAIL.ApplicationCancelUpdate(oREQUEST_DETAIL, CURRENT_DATETIME, CURRENT_USER, out msg);

                            //return message and MK value
                            if (String.IsNullOrEmpty(msg)) //success
                            {
                                dgvList.Rows[i]["REQ_STATUS"] = "申請取消";
                                ResponseUtility.ReturnSuccessMessage(dgvList.Rows[i], UPDATED_AT_DATETIME, CURRENT_DATETIME, CURRENT_USER, string.Format(Utility.Messages.Jimugo.I000ZZ016, "申請取消"));
                            }
                            else //failed
                            {
                                ResponseUtility.ReturnFailMessage(dgvList.Rows[i]);
                            }
                        }
                        else
                        {
                            ResponseUtility.ReturnFailMessage(dgvList.Rows[i]);
                        }
                    }
                }
                response.Status = 1;
                response.Data   = Utility.Utility_Component.DtToJSon(dgvList, "Application Cancel ");;
                timer.Stop();
                response.Meta.Duration = timer.Elapsed.TotalSeconds;
                return(response);
            }
            catch (Exception ex)
            {
                return(ResponseUtility.GetUnexpectedResponse(response, timer, ex));
            }
        }
        public MetaResponse GDConfirmComplete(string list)
        {
            try
            {
                string    msg     = "";
                DataTable dgvList = Utility.Utility_Component.JsonToDt(list);

                for (int i = 0; i < dgvList.Rows.Count; i++)
                {
                    //cast into objects
                    BOL_REQUEST_DETAIL oREQUEST_DETAIL = new BOL_REQUEST_DETAIL();
                    BOL_REQUEST_ID     oREQUEST_ID     = new BOL_REQUEST_ID();
                    oREQUEST_DETAIL = Cast_REQUEST_DETAIL(dgvList.Rows[i]);
                    oREQUEST_ID     = Cast_REQUEST_ID(dgvList.Rows[i]);

                    //get GD code By COMPANY NO BOX
                    REQUEST_ID DAL_REQUEST_ID = new REQUEST_ID(con);
                    string     GD_CODE        = DAL_REQUEST_ID.GetGDCode(oREQUEST_ID.COMPANY_NO_BOX.ToString(), out msg);

                    if (string.IsNullOrEmpty(msg))
                    {
                        #region Send Mail
                        bool mailSuccess = PrepareAndSendMail(oREQUEST_DETAIL, false, GD_CODE);

                        if (mailSuccess) //success
                        {
                            ResponseUtility.ReturnSuccessMessage(dgvList.Rows[i], UPDATED_AT_DATETIME, CURRENT_DATETIME, CURRENT_USER, string.Format(Utility.Messages.Jimugo.I000ZZ016, "GD確認完了"));
                        }
                        else //failed
                        {
                            ResponseUtility.MailSendingFail(dgvList.Rows[i]);
                        }
                        #endregion
                    }
                    else
                    {
                        ResponseUtility.ReturnFailMessage(dgvList.Rows[i]);
                    }
                }
                response.Status = 1;
                response.Data   = Utility.Utility_Component.DtToJSon(dgvList, "GD Confirmation Complete");;
                timer.Stop();
                response.Meta.Duration = timer.Elapsed.TotalSeconds;
                return(response);
            }
            catch (Exception ex)
            {
                return(ResponseUtility.GetUnexpectedResponse(response, timer, ex));
            }
        }
Example #8
0
        public MetaResponse UpdateClientCertificateList(string ClientCertificateList, string authHeader)
        {
            try
            {
                DataTable dgvList = Utility.Utility_Component.JsonToDt(ClientCertificateList);

                for (int i = 0; i < dgvList.Rows.Count; i++)
                {
                    BOL_CLIENT_CERTIFICATE oCLIENT_CERTIFICATE = new BOL_CLIENT_CERTIFICATE();
                    oCLIENT_CERTIFICATE = Cast_CLIENT_CERTIFICATE(dgvList.Rows[i]);

                    //assign login ID

                    switch (dgvList.Rows[i]["MK"].ToString())
                    {
                    case "I":
                        HandleInsert(oCLIENT_CERTIFICATE, "I", dgvList.Rows[i]);
                        break;

                    case "C":
                        HandleInsert(oCLIENT_CERTIFICATE, "C", dgvList.Rows[i]);
                        break;

                    case "M":
                        HandleModify(oCLIENT_CERTIFICATE, "M", dgvList.Rows[i]);
                        break;

                    case "D":
                        HandleDelete(oCLIENT_CERTIFICATE, dgvList.Rows[i]);
                        break;

                    default:
                        break;
                    }
                }

                response.Data = Utility.Utility_Component.DtToJSon(dgvList, "CompanyCodeList Update");
                timer.Stop();
                response.Meta.Duration = timer.Elapsed.TotalMilliseconds;
                return(response);
            }
            catch (Exception ex)
            {
                return(ResponseUtility.GetUnexpectedResponse(response, timer, ex));
            }
        }
        public MetaResponse SettingCompleteMail(string UsageInfoRegList)
        {
            try
            {
                string    msg     = "";
                DataTable dgvList = Utility.Utility_Component.JsonToDt(UsageInfoRegList);

                for (int i = 0; i < dgvList.Rows.Count; i++)
                {
                    USAGE_INFO_REGISTRATION oUSAGE_INFO_REG = new USAGE_INFO_REGISTRATION();
                    oUSAGE_INFO_REG = CAST_TO_USAGE_INFO_REGISTRATION(dgvList.Rows[i]);

                    REQUEST_DETAIL DAL_REQUEST_DETAIL = new REQUEST_DETAIL(con);
                    DAL_REQUEST_DETAIL.UpdateSystemSettingStatus(2, oUSAGE_INFO_REG.COMPNAY_NO_BOX, CURRENT_USER, CURRENT_DATETIME, out msg);

                    if (string.IsNullOrEmpty(msg))
                    {
                        bool mailSuccess = PrepareAndSendMail(oUSAGE_INFO_REG);

                        if (mailSuccess)
                        {
                            dgvList.Rows[i]["SYSTEM_SETTING_STATUS"] = 2;
                            ResponseUtility.ReturnMailSuccessMessage(dgvList.Rows[i], UPDATED_AT_DATETIME, CURRENT_DATETIME, CURRENT_USER);
                        }
                        else
                        {
                            ResponseUtility.MailSendingFail(dgvList.Rows[i]);
                        }
                    }
                    else
                    {
                        ResponseUtility.MailSendingFail(dgvList.Rows[i]);
                    }
                }

                response.Data = Utility.Utility_Component.DtToJSon(dgvList, "Mail status");;
                timer.Stop();
                response.Meta.Duration = timer.Elapsed.TotalSeconds;
                return(response);
            }
            catch (Exception ex)
            {
                return(ResponseUtility.GetUnexpectedResponse(response, timer, ex));
            }
        }
Example #10
0
        public MetaResponse UpdateCompanyCodeList(string CompanyCodeList)
        {
            try
            {
                DataTable dgvList = Utility.Utility_Component.JsonToDt(CompanyCodeList);

                for (int i = 0; i < dgvList.Rows.Count; i++)
                {
                    BOL_REQUEST_ID oREQUEST_ID = new BOL_REQUEST_ID();
                    oREQUEST_ID = Cast_REQUEST_ID(dgvList.Rows[i]);

                    switch (dgvList.Rows[i]["MK"].ToString())
                    {
                    case "I":
                        HandleInsert(oREQUEST_ID, "I", dgvList.Rows[i]);
                        break;

                    case "C":
                        HandleInsert(oREQUEST_ID, "C", dgvList.Rows[i]);
                        break;

                    case "M":
                        HandleModify(oREQUEST_ID, dgvList.Rows[i]);
                        break;

                    case "D":
                        HandleDelete(oREQUEST_ID, dgvList.Rows[i]);
                        break;

                    default:
                        break;
                    }
                }
                response.Status = 1;
                response.Data   = Utility.Utility_Component.DtToJSon(dgvList, "CompanyCodeList Update");;
                timer.Stop();
                response.Meta.Duration = timer.Elapsed.TotalSeconds;
                return(response);
            }
            catch (Exception ex)
            {
                return(ResponseUtility.GetUnexpectedResponse(response, timer, ex));
            }
        }
        public MetaResponse UpdateUsageRegistrationList(string UsageInfoRegList)
        {
            try
            {
                DataTable dgvList = Utility.Utility_Component.JsonToDt(UsageInfoRegList);
                for (int i = 0; i < dgvList.Rows.Count; i++)
                {
                    //CAST usage info registration list into view model
                    USAGE_INFO_REGISTRATION oUSAGE_INFO_REG = CAST_TO_USAGE_INFO_REGISTRATION(dgvList.Rows[i]);

                    switch (dgvList.Rows[i]["MK"].ToString())
                    {
                    case "I":
                        HandleInsert(oUSAGE_INFO_REG, "I", dgvList.Rows[i]);
                        break;

                    case "C":
                        HandleInsert(oUSAGE_INFO_REG, "C", dgvList.Rows[i]);
                        break;

                    case "M":
                        HandleModify(oUSAGE_INFO_REG, dgvList.Rows[i]);
                        break;

                    case "D":
                        HandleDelete(oUSAGE_INFO_REG, dgvList.Rows[i]);
                        break;

                    default:
                        break;
                    }
                }
                response.Status = 1;
                response.Data   = Utility.Utility_Component.DtToJSon(dgvList, "Usage Application Registration Update");;
                timer.Stop();
                response.Meta.Duration = timer.Elapsed.TotalSeconds;
                return(response);
            }
            catch (Exception ex)
            {
                return(ResponseUtility.GetUnexpectedResponse(response, timer, ex));
            }
        }
Example #12
0
        public MetaResponse GeneratePassword()
        {
            try
            {
                //generate raw password
                string raw_password = Crypto.GenerateRawPassword();

                #region PreparePasswordResultTable
                DataTable dt = new DataTable();
                dt.Columns.Add("PASSWORD");
                dt.Columns.Add("PASSWORD_SET_DATE");
                dt.Columns.Add("PASSWORD_EXPIRATION_DATE");
                #endregion

                //get expire date from config tbl
                BOL_CONFIG config = new BOL_CONFIG("CTS010", con);

                //add row and data
                DateTime startDate = DateTime.Now;
                DateTime stopDate  = DateTime.Today.AddDays(config.getIntValue("password.days.add") + 1).AddTicks(-1);

                DataRow dr = dt.NewRow();
                dr["PASSWORD"]          = raw_password;
                dr["PASSWORD_SET_DATE"] = startDate.ToString("yyyy/MM/dd HH:mm");

                //get from config table
                dr["PASSWORD_EXPIRATION_DATE"] = stopDate.ToString("yyyy/MM/dd HH:mm");
                dt.Rows.Add(dr);

                response.Data = Utility.Utility_Component.DtToJSon(dt, "Password Generate");

                //return response
                response.Status = 1;
                timer.Stop();
                response.Meta.Duration = timer.Elapsed.TotalSeconds;
                return(response);
            }
            catch (Exception ex)
            {
                return(ResponseUtility.GetUnexpectedResponse(response, timer, ex));
            }
        }
Example #13
0
 public MetaResponse getCompanyCodeList(string COMPANY_NO_BOX, string COMPANY_NAME, string EMAIL, int OFFSET, int LIMIT)
 {
     try
     {
         string     strMessage     = "";
         int        TOTAL          = 0;
         REQUEST_ID DAL_REQUEST_ID = new REQUEST_ID(con);
         DataTable  dt             = DAL_REQUEST_ID.GetCompanyCodeList(COMPANY_NO_BOX, COMPANY_NAME, EMAIL, OFFSET, LIMIT, out strMessage, out TOTAL);
         response.Data = Utility.Utility_Component.DtToJSon(dt, "CompnayCodeList");
         if (dt.Rows.Count > 0)
         {
             response.Status = 1;
         }
         else
         {
             if (strMessage == "")
             {
                 response.Status  = 1;
                 response.Message = "There is no data to display.";
             }
             else
             {
                 response.Status  = 0;
                 response.Message = strMessage;
             }
         }
         response.Meta.Offset = OFFSET;
         response.Meta.Limit  = LIMIT;
         response.Meta.Total  = TOTAL;
         timer.Stop();
         response.Meta.Duration = timer.Elapsed.TotalSeconds;
         return(response);
     }
     catch (Exception ex)
     {
         return(ResponseUtility.GetUnexpectedResponse(response, timer, ex));
     }
 }
 public MetaResponse getRequestDetailList(String COMPANY_NO_BOX, String COMPANY_NAME, String CLOSE_FLAG, String GD, String REQUEST_STATUS, String REQ_DATE_FROM, String REQ_DATE_TO, String QUOTATION_DATE_FROM, String QUOTATION_DATE_TO, String ORDER_DATE_FROM, String ORDER_DATE_TO, String SYSTEM_SETTING_STATUS, int OFFSET, int LIMIT)
 {
     try
     {
         string         strMessage         = "";
         int            TOTAL              = 0;
         REQUEST_DETAIL DAL_REQUEST_DETAIL = new REQUEST_DETAIL(con);
         DataTable      dt = DAL_REQUEST_DETAIL.GetRequestDetailList(COMPANY_NO_BOX, COMPANY_NAME, CLOSE_FLAG, GD, REQUEST_STATUS, REQ_DATE_FROM, REQ_DATE_TO, QUOTATION_DATE_FROM, QUOTATION_DATE_TO, ORDER_DATE_FROM, ORDER_DATE_TO, SYSTEM_SETTING_STATUS, OFFSET, LIMIT, out strMessage, out TOTAL);
         response.Data = Utility.Utility_Component.DtToJSon(dt, "UsageApplicatioList");
         if (dt.Rows.Count > 0)
         {
             response.Status = 1;
         }
         else
         {
             if (strMessage == "")
             {
                 response.Status  = 1;
                 response.Message = "There is no data to display.";
             }
             else
             {
                 response.Status  = 0;
                 response.Message = strMessage;
             }
         }
         response.Meta.Offset = OFFSET;
         response.Meta.Limit  = LIMIT;
         response.Meta.Total  = TOTAL;
         timer.Stop();
         response.Meta.Duration = timer.Elapsed.TotalSeconds;
         return(response);
     }
     catch (Exception ex)
     {
         return(ResponseUtility.GetUnexpectedResponse(response, timer, ex));
     }
 }
        public MetaResponse SubmitOrderRegister(string list, System.Web.HttpPostedFile file)
        {
            using (TransactionScope dbTxn = new TransactionScope())
            {
                try
                {
                    string msg = "";
                    //set global PARAMETERS
                    PARAMETERS = Utility.Utility_Component.JsonToDt(list);

                    #region Update REQUEST_DETAIL
                    //cast to REQUEST DETAIL OBJECT
                    BOL_REQUEST_DETAIL oREQUEST_DETAIL = new BOL_REQUEST_DETAIL();
                    oREQUEST_DETAIL = Cast_REQUEST_DETAIL();
                    oREQUEST_DETAIL.SYSTEM_SETTING_STATUS = 1;

                    REQUEST_DETAIL DAL_REQUEST_DETAIL = new REQUEST_DETAIL(con);
                    DAL_REQUEST_DETAIL.Update(oREQUEST_DETAIL, CURRENT_DATETIME, CURRENT_USER, out msg);

                    //rollback if not success
                    if (!String.IsNullOrEmpty(msg))
                    {
                        dbTxn.Dispose();
                        return(ResponseUtility.ReturnFailMessage(response, timer, BodyMessage));
                    }
                    #endregion

                    #region Insert CUSTOMER MASTER
                    //COUNT IN CUSTOMER MASTER
                    string   COMPANY_NAME     = GetParameterByKey("COMPANY_NAME");
                    string   COMPANY_NO_BOX   = GetParameterByKey("COMPANY_NO_BOX");
                    string   CONTRACT_PLAN    = GetParameterByKey("CONTRACT_PLAN");
                    int      TRANSACTION_TYPE = int.Parse(GetParameterByKey("TRANSACTION_TYPE"));
                    int      REQ_SEQ          = int.Parse(GetParameterByKey("REQ_SEQ"));
                    int      REQ_TYPE         = int.Parse(GetParameterByKey("REQ_TYPE"));
                    DateTime START_USE_DATE   = DateTime.Parse(GetParameterByKey("START_USE_DATE"));

                    CUSTOMER_MASTER DAL_CUSTOMER_MASTER = new CUSTOMER_MASTER(con);
                    int             customer_count      = DAL_CUSTOMER_MASTER.getCustomerCountByKeys(COMPANY_NO_BOX, TRANSACTION_TYPE, START_USE_DATE, REQ_SEQ, out msg);

                    if (customer_count == 0) //if customer not found
                    {
                        DataTable           LatestCustomer   = new DataTable();
                        BOL_CUSTOMER_MASTER oCUSTOMER_MASTER = new BOL_CUSTOMER_MASTER();

                        if (REQ_TYPE == 2)
                        {
                            LatestCustomer = DAL_CUSTOMER_MASTER.GetTopCustomerByKeys(COMPANY_NO_BOX, TRANSACTION_TYPE, START_USE_DATE, out msg);

                            if (LatestCustomer.Rows.Count > 0)
                            {
                                oCUSTOMER_MASTER = Cast_CUSTOMER_MASTER(LatestCustomer.Rows[0]);
                                oCUSTOMER_MASTER.UPDATE_CONTENT = 3;
                            }
                            else //Need another message?
                            {
                                dbTxn.Dispose();
                                return(ResponseUtility.ReturnFailMessage(response, timer, BodyMessage));
                            }
                        }
                        if (REQ_TYPE == 1)
                        {
                            oCUSTOMER_MASTER.UPDATE_CONTENT = 1;
                        }
                        //insert info form screen
                        oCUSTOMER_MASTER.COMPANY_NO_BOX   = COMPANY_NO_BOX;
                        oCUSTOMER_MASTER.TRANSACTION_TYPE = TRANSACTION_TYPE;
                        oCUSTOMER_MASTER.EFFECTIVE_DATE   = START_USE_DATE;
                        oCUSTOMER_MASTER.REQ_SEQ          = REQ_SEQ;

                        DAL_CUSTOMER_MASTER.Insert(oCUSTOMER_MASTER, CURRENT_DATETIME, CURRENT_USER, out msg);

                        //rollback if not success
                        if (!String.IsNullOrEmpty(msg))
                        {
                            dbTxn.Dispose();
                            return(ResponseUtility.ReturnFailMessage(response, timer, BodyMessage));
                        }

                        #region Insert Browsing supplier CUSTOMER MASTER
                        BOL_CUSTOMER_MASTER oBROWSING_SUPPLIER = new BOL_CUSTOMER_MASTER();


                        if (CONTRACT_PLAN == "PRODUCT" && REQ_TYPE == 2)
                        {
                            DateTime NEW_EFFECTIVE_DATE = Convert.ToDateTime(DAL_CUSTOMER_MASTER.GetEffectiveDateForNewApplyingTime(oREQUEST_DETAIL.COMPANY_NO_BOX, TRANSACTION_TYPE, START_USE_DATE, out msg));
                            if ((NEW_EFFECTIVE_DATE.Month + NEW_EFFECTIVE_DATE.Day) != (START_USE_DATE.Month + START_USE_DATE.Day))
                            {
                                oBROWSING_SUPPLIER = Cast_CUSTOMER_MASTER(LatestCustomer.Rows[0]);
                                oBROWSING_SUPPLIER.COMPANY_NO_BOX   = COMPANY_NO_BOX;
                                oBROWSING_SUPPLIER.TRANSACTION_TYPE = TRANSACTION_TYPE;
                                oBROWSING_SUPPLIER.EFFECTIVE_DATE   = Convert.ToDateTime(START_USE_DATE.Year + "/" + NEW_EFFECTIVE_DATE.Month + "/" + NEW_EFFECTIVE_DATE.Day);
                                oBROWSING_SUPPLIER.UPDATE_CONTENT   = 3;
                                oBROWSING_SUPPLIER.REQ_SEQ          = REQ_SEQ;
                                DAL_CUSTOMER_MASTER.Insert(oBROWSING_SUPPLIER, CURRENT_DATETIME, CURRENT_USER, out msg);
                            }

                            //rollback if not success
                            if (!String.IsNullOrEmpty(msg))
                            {
                                dbTxn.Dispose();
                                return(ResponseUtility.ReturnFailMessage(response, timer, BodyMessage));
                            }
                        }
                        #endregion
                    }
                    #endregion

                    #region Insert REPORT_HISTORY
                    //Insert Report_History
                    BOL_REPORT_HISTORY oREPORT_HISTORY = new BOL_REPORT_HISTORY();
                    oREPORT_HISTORY.COMPANY_NO_BOX = COMPANY_NO_BOX;
                    oREPORT_HISTORY.REQ_SEQ        = REQ_SEQ;
                    oREPORT_HISTORY.REPORT_TYPE    = 4;

                    REPORT_HISTORY DAL_REPORT_HISTORY = new REPORT_HISTORY(con);
                    int            HISTORY_SEQ        = DAL_REPORT_HISTORY.GetReportHistorySEQ(COMPANY_NO_BOX, oREPORT_HISTORY.REPORT_TYPE, oREPORT_HISTORY.REQ_SEQ, out msg);

                    //rollback if not success
                    if (!String.IsNullOrEmpty(msg))
                    {
                        dbTxn.Dispose();
                        return(ResponseUtility.ReturnFailMessage(response, timer, BodyMessage));
                    }

                    oREPORT_HISTORY.REPORT_HISTORY_SEQ = HISTORY_SEQ;
                    oREPORT_HISTORY.OUTPUT_AT          = Utility_Component.dtColumnToDateTime(DateTime.Now.ToString());
                    oREPORT_HISTORY.OUTPUT_FILE        = COMPANY_NO_BOX + "-1-" + REQ_SEQ + "_注文書_" + COMPANY_NAME + "様.pdf";
                    oREPORT_HISTORY.EMAIL_ADDRESS      = null;

                    DAL_REPORT_HISTORY.Insert(oREPORT_HISTORY, CURRENT_DATETIME, CURRENT_USER, out msg);

                    //rollback if not success
                    if (!String.IsNullOrEmpty(msg))
                    {
                        dbTxn.Dispose();
                        return(ResponseUtility.MailSendingFail(response, timer, BodyMessage));
                    }
                    #endregion

                    #region Save File
                    //get destination path form config table
                    BOL_CONFIG config      = new BOL_CONFIG("CTS050", con);
                    string     destination = config.getStringValue("fileSavePath.purchaseOrder");
                    SaveFile(file, destination, oREPORT_HISTORY.OUTPUT_FILE, out msg);

                    if (!string.IsNullOrEmpty(msg))
                    {
                        dbTxn.Dispose();
                        response.Status = 0;
                        timer.Stop();
                        response.Meta.Duration = timer.Elapsed.TotalSeconds;
                        response.Message       = "File Path Not Found";
                        //add in body message
                        DataRow row = BodyMessage.NewRow();
                        row["Error Message"] = "File Path Not Found";
                        BodyMessage.Rows.Add(row);
                        response.Data = Utility_Component.DtToJSon(BodyMessage, "Message");
                        return(response);
                    }
                    #endregion

                    #region SendMail
                    bool mailSuccess = PrepareAndSendMail();

                    if (!mailSuccess)
                    {
                        dbTxn.Dispose();
                        return(ResponseUtility.MailSendingFail(response, timer, BodyMessage));
                    }
                    #endregion

                    //all process success
                    dbTxn.Complete();
                    response.Status  = 1;
                    response.Message = string.Format(Utility.Messages.Jimugo.I000ZZ016, "注文登録");
                    DataRow dr = BodyMessage.NewRow();
                    dr["Message"]        = response.Message;
                    dr["UPDATED_AT"]     = UPDATED_AT_DATETIME;
                    dr["UPDATED_AT_RAW"] = CURRENT_DATETIME;
                    BodyMessage.Rows.Add(dr);
                    response.Data = Utility_Component.DtToJSon(BodyMessage, "Message");
                    timer.Stop();
                    response.Meta.Duration = timer.Elapsed.TotalSeconds;
                    return(response);
                }
                catch (Exception ex)
                {
                    dbTxn.Dispose();
                    ResponseUtility.GetUnexpectedResponse(response, timer, ex);
                    //add in body message
                    DataRow dr = BodyMessage.NewRow();
                    dr["Error Message"] = "something went wrong.";
                    BodyMessage.Rows.Add(dr);
                    response.Data = Utility_Component.DtToJSon(BodyMessage, "Message");
                    return(response);
                }
            }
        }
        public MetaResponse SendMailCreate(string list)  //add more parameter
        {
            #region Parameters
            //message for pop up
            DataTable messagecode = new DataTable();
            messagecode.Columns.Add("Error Message");

            DataTable dtParameter = Utility.Utility_Component.JsonToDt(list);

            COMPANY_NO_BOX = dtParameter.Rows[0]["COMPANY_NO_BOX"].ToString();
            REQ_SEQ        = Convert.ToInt32(dtParameter.Rows[0]["REQ_SEQ"].ToString());
            QUOTATION_DATE = dtParameter.Rows[0]["QUOTATION_DATE"].ToString();
            ORDER_DATE     = dtParameter.Rows[0]["ORDER_DATE"].ToString();
            COMPLETION_NOTIFICATION_DATE = dtParameter.Rows[0]["COMPLETION_NOTIFICATION_DATE"].ToString();
            COMPANY_NAME  = dtParameter.Rows[0]["COMPANY_NAME"].ToString();
            EMAIL_ADDRESS = dtParameter.Rows[0]["EMAIL_ADDRESS"].ToString();
            EDI_ACCOUNT   = dtParameter.Rows[0]["EDI_ACCOUNT"].ToString();
            FILENAME      = dtParameter.Rows[0]["FILENAME"].ToString();
            #endregion
            string msg = "";
            try
            {
                using (TransactionScope dbtnx = new TransactionScope())
                {
                    #region Update RequestDetail For CompleteNotificationSending
                    DAL_REQUEST_DETAIL.SendMailUpdate(TEMP.ToString("yyyy/MM/dd"), COMPANY_NO_BOX, REQ_SEQ, CURRENT_DATETIME, CURRENT_USER, out msg);
                    #endregion

                    if (String.IsNullOrEmpty(msg))
                    {
                        #region InsertReportHistroy
                        DateTime now = DateTime.Now;

                        string outputFile = COMPANY_NO_BOX + "-" + "3" + "-" + REQ_SEQ.ToString().PadLeft(2, '0') + "_完了通知書(" + EDI_ACCOUNT.Replace("@", "") + ")_" + COMPANY_NAME + "様" + ".pdf";
                        string msgText    = outputFile;

                        int REPORTHISTORY_SEQ = DAL_REPORT_HISTORY.GetReportHistorySEQ(COMPANY_NO_BOX, 5, REQ_SEQ, out msg);

                        if (string.IsNullOrEmpty(msg))
                        {
                            DAL_REPORT_HISTORY.InsertNotiSending(COMPANY_NO_BOX, REQ_SEQ, REPORTHISTORY_SEQ, outputFile, EMAIL_ADDRESS, CURRENT_USER, UPDATED_AT_DATETIME, CURRENT_DATETIME, out msg);

                            if (string.IsNullOrEmpty(msg))
                            {
                                BOL_CONFIG config  = new BOL_CONFIG("CTS060", con);
                                BOL_CONFIG config1 = new BOL_CONFIG("SYSTEM", con);

                                string temPath = config1.getStringValue("temp.dir");
                                temPath = temPath + "/" + FILENAME;

                                string pdfSavePath = config.getStringValue("fileSavePath.completionNotice");
                                pdfSavePath = pdfSavePath + "/" + outputFile;

                                //CopyAndMove File
                                int res = MovePdfFile(temPath, pdfSavePath);

                                if (res == 1)
                                {
                                    //BOL_CONFIG config1 = new BOL_CONFIG("SYSTEM", con);
                                    string zipStorageFolder = config1.getStringValue("temp.dir") + "/" + outputFile.Replace(".pdf", ".zi_");

                                    string PASSWORD = config.getStringValue("password.Attachment");

                                    //Create ZipFile With Password
                                    bool zipgenerate = ZipGenerator(temPath, PASSWORD, zipStorageFolder, outputFile);

                                    if (zipgenerate)
                                    {
                                        #region SendMail
                                        String emailAddressCC = config.getStringValue("emailAddress.cc");
                                        string tempString     = PrepareAndSendMail(COMPANY_NAME, PASSWORD);

                                        if (tempString != null)
                                        {
                                            string    subjectString = config.getStringValue("emailSubject.notice");
                                            DataTable result        = new DataTable();
                                            result.Clear();
                                            result.Columns.Add("ZipFileName");
                                            result.Columns.Add("EmailAddressCC");
                                            result.Columns.Add("TemplateString");
                                            result.Columns.Add("SubjectString");
                                            result.Columns.Add("COMPLETE_NOTIFICATION_DATE");
                                            result.Columns.Add("UPDATED_AT");
                                            result.Columns.Add("UPDATED_AT_RAW");

                                            DataRow dtRow = result.NewRow();
                                            dtRow["ZipFileName"]                = outputFile.Replace(".pdf", ".zi_");
                                            dtRow["EmailAddressCC"]             = emailAddressCC;
                                            dtRow["TemplateString"]             = tempString;
                                            dtRow["SubjectString"]              = subjectString.Replace("${companyName}", COMPANY_NAME);
                                            dtRow["COMPLETE_NOTIFICATION_DATE"] = TEMP.ToString("yyyy/MM/dd");
                                            dtRow["UPDATED_AT"]     = UPDATED_AT_DATETIME;
                                            dtRow["UPDATED_AT_RAW"] = CURRENT_DATETIME;

                                            result.Rows.Add(dtRow);
                                            dbtnx.Complete();
                                            response.Data   = Utility.Utility_Component.DtToJSon(result, "pdfData");
                                            response.Status = 1;
                                            return(response);
                                        }
                                        else
                                        {
                                            return(ResponseUtility.ReturnFailMessage(response, timer, messagecode, Utility.Messages.Jimugo.E000WB018));
                                        }
                                        #endregion
                                    }
                                    else
                                    {
                                        return(ResponseUtility.ReturnFailMessage(response, timer, messagecode, Utility.Messages.Jimugo.E000WB007));
                                    }
                                }
                                else
                                {
                                    return(ResponseUtility.ReturnFailMessage(response, timer, messagecode, String.Format(Utility.Messages.Jimugo.E000WB001, msgText)));
                                }
                            }
                            else
                            {
                                return(ResponseUtility.ReturnFailMessage(response, timer, messagecode, Utility.Messages.Jimugo.E000WB003));
                            }
                        }
                        else
                        {
                            return(ResponseUtility.ReturnFailMessage(response, timer, messagecode, Utility.Messages.Jimugo.E000WB002));
                        }

                        #endregion
                    }
                    else
                    {
                        return(ResponseUtility.ReturnFailMessage(response, timer, messagecode, Utility.Messages.Jimugo.E000WB002));
                    }
                }
            }
            catch (Exception ex)
            {
                return(ResponseUtility.GetUnexpectedResponse(response, timer, ex));
            }
        }
        public MetaResponse Disapprove(string COMPANY_NO_BOX, int REQ_TYPE, string CHANGED_ITEMS, string SYSTEM_EFFECTIVE_DATE, string SYSTEM_REGIST_DEADLINE, string List)
        {
            try
            {
                DataSet   ds      = new DataSet();
                DataTable Listing = Utility_Component.JsonToDt(List);
                DataRow   row;

                if (Listing.Rows.Count > 1)
                {
                    row = Listing.Rows[1];
                }
                else
                {
                    row = Listing.Rows[0];
                }

                string             msg             = "";
                BOL_REQUEST_DETAIL oREQUEST_DETAIL = new BOL_REQUEST_DETAIL();
                oREQUEST_DETAIL.REQ_STATUS = 3;
                if (REQ_TYPE == 1 || REQ_TYPE == 9 || (REQ_TYPE == 2 && !string.IsNullOrEmpty(CHANGED_ITEMS.Trim())))
                {
                    oREQUEST_DETAIL.AMIGO_COOPERATION = 1;
                }
                else
                {
                    oREQUEST_DETAIL.AMIGO_COOPERATION = 2;
                }

                oREQUEST_DETAIL.AMIGO_COOPERATION_CHENGED_ITEMS = CHANGED_ITEMS.Trim();
                try
                {
                    oREQUEST_DETAIL.SYSTEM_EFFECTIVE_DATE = Convert.ToDateTime(SYSTEM_EFFECTIVE_DATE);
                }
                catch (Exception)
                {
                }
                try
                {
                    oREQUEST_DETAIL.SYSTEM_REGIST_DEADLINE = Convert.ToDateTime(SYSTEM_REGIST_DEADLINE);
                }
                catch (Exception)
                {
                }

                oREQUEST_DETAIL.REQ_SEQ        = int.Parse(row["REQ_SEQ"].ToString());
                oREQUEST_DETAIL.UPDATED_AT     = row["UPDATED_AT_RAW"].ToString();
                oREQUEST_DETAIL.COMPANY_NO_BOX = COMPANY_NO_BOX;

                REQUEST_DETAIL DAL_REQUEST_DETAIL = new REQUEST_DETAIL(con);
                DAL_REQUEST_DETAIL.Disapprove(oREQUEST_DETAIL, CURRENT_USER, CURRENT_DATETIME, out msg);
                if (!string.IsNullOrEmpty(msg))
                {
                    return(ResponseError(response, Utility.Messages.Jimugo.I000ZZ005, Listing, ds, row));
                }

                CUSTOMER_MASTER     DAL_CUSTOMER_MASTER = new CUSTOMER_MASTER(con);
                BOL_CUSTOMER_MASTER oCUSTOMER_MASTER    = new BOL_CUSTOMER_MASTER();
                oCUSTOMER_MASTER.COMPANY_NO_BOX = COMPANY_NO_BOX;
                oCUSTOMER_MASTER.REQ_SEQ        = oREQUEST_DETAIL.REQ_SEQ;
                DAL_CUSTOMER_MASTER.Delete(oCUSTOMER_MASTER, out msg);

                if (string.IsNullOrEmpty(msg))
                {
                    DataTable dtMail  = new DataTable();
                    bool      success = DisapproveSendMail(row["COMPANY_NAME"].ToString(), row["INPUT_PERSON"].ToString(), row["INPUT_PERSON_EMAIL_ADDRESS"].ToString(), out dtMail);

                    if (success)
                    {
                        response.Status       = 1;
                        row["UPDATED_AT"]     = UPDATED_AT_DATETIME;
                        row["UPDATED_AT_RAW"] = CURRENT_DATETIME;
                        row["UPDATED_BY"]     = CURRENT_USER;
                        row["UPDATE_MESSAGE"] = string.Format(Messages.Jimugo.I000ZZ016, "否認");
                        Listing.TableName     = "LISTING";
                        ds.Tables.Add(Listing.Copy());
                        dtMail.TableName = "MAIL";
                        ds.Tables.Add(dtMail.Copy());
                    }
                    else
                    {
                        return(ResponseError(response, Utility.Messages.Jimugo.I000ZZ005, Listing, ds, row));
                    }
                }
                else
                {
                    return(ResponseError(response, Utility.Messages.Jimugo.I000ZZ005, Listing, ds, row));
                }

                response.Data = Utility.Utility_Component.DsToJSon(ds, "Approval");
                timer.Stop();
                response.Meta.Duration = timer.Elapsed.TotalSeconds;
                return(response);
            }
            catch (Exception ex)
            {
                return(ResponseUtility.GetUnexpectedResponse(response, timer, ex));
            }
        }
        public MetaResponse getInitialData(string COMPANY_NO_BOX, string REQ_SEQ, int REQ_STATUS, int REQ_TYPE)
        {
            try
            {
                DataSet ds = new DataSet();

                string         strMessage         = "";
                REQUEST_DETAIL DAL_REQUEST_DETAIL = new REQUEST_DETAIL(con);
                DataTable      dtList             = DAL_REQUEST_DETAIL.GetInitialDataForApproval(COMPANY_NO_BOX, REQ_SEQ, REQ_STATUS, REQ_TYPE, out strMessage);
                dtList.TableName = "LISTING";
                ds.Tables.Add(dtList);
                if (dtList.Rows.Count > 0)
                {
                    response.Status = 1;
                    //SERVICE DESK POP UP
                    REQ_ADDRESS DAL_REQ_ADDRESS = new REQ_ADDRESS(con);
                    string      _REQ_SEQ        = dtList.Rows[0]["REQ_SEQ"].ToString().Trim();
                    if (REQ_TYPE == 2)
                    {
                        DataTable SERVICE_DESK_CURRENT = DAL_REQ_ADDRESS.GetServiceDeskPopUp(COMPANY_NO_BOX, _REQ_SEQ, out strMessage);
                        SERVICE_DESK_CURRENT.TableName = "SERVICE_DESK_CURRENT";
                        ds.Tables.Add(SERVICE_DESK_CURRENT);
                    }
                    DataTable SERVICE_DESK_NEW = DAL_REQ_ADDRESS.GetServiceDeskPopUp(COMPANY_NO_BOX, REQ_SEQ, out strMessage);
                    SERVICE_DESK_NEW.TableName = "SERVICE_DESK_CHANGE";
                    ds.Tables.Add(SERVICE_DESK_NEW);

                    //ERROR NOTI POP UP
                    if (REQ_TYPE == 2)
                    {
                        DataTable ERROR_NOTI_CURRENT = DAL_REQ_ADDRESS.GetErrorNotificationPopUp(COMPANY_NO_BOX, _REQ_SEQ, out strMessage);
                        ERROR_NOTI_CURRENT.TableName = "ERROR_NOTI_CURRENT";
                        ds.Tables.Add(ERROR_NOTI_CURRENT);
                    }
                    DataTable ERROR_NOTI_NEW = DAL_REQ_ADDRESS.GetErrorNotificationPopUp(COMPANY_NO_BOX, REQ_SEQ, out strMessage);
                    ERROR_NOTI_NEW.TableName = "ERROR_NOTI_CHANGE";
                    ds.Tables.Add(ERROR_NOTI_NEW);

                    //BREAK DOWN
                    if (REQ_TYPE == 2)
                    {
                        DataTable BREAKDOWN_CURRENT = DAL_REQ_ADDRESS.GetUsageChargeBreakDownPopUp(COMPANY_NO_BOX, _REQ_SEQ, out strMessage);
                        BREAKDOWN_CURRENT.TableName = "BREAKDOWN_CURRENT";
                        ds.Tables.Add(BREAKDOWN_CURRENT);
                    }
                    DataTable BREAKDOWN_NEW = DAL_REQ_ADDRESS.GetUsageChargeBreakDownPopUp(COMPANY_NO_BOX, REQ_SEQ, out strMessage);
                    BREAKDOWN_NEW.TableName = "BREAKDOWN_CHANGE";
                    ds.Tables.Add(BREAKDOWN_NEW);
                }
                else
                {
                    if (string.IsNullOrEmpty(strMessage))
                    {
                        response.Status  = 1;
                        response.Message = "There is no data to display.";
                    }
                    else
                    {
                        response.Status  = 0;
                        response.Message = strMessage;
                    }
                }
                response.Data = Utility.Utility_Component.DsToJSon(ds, "INITIAL DATA");
                timer.Stop();
                response.Meta.Duration = timer.Elapsed.TotalSeconds;
                return(response);
            }
            catch (Exception ex)
            {
                return(ResponseUtility.GetUnexpectedResponse(response, timer, ex));
            }
        }
        public MetaResponse Approve(string COMPANY_NO_BOX, int REQ_TYPE, string REQ_TYPE_RAW, string CHANGED_ITEMS, string SYSTEM_EFFECTIVE_DATE, string SYSTEM_REGIST_DEADLINE, string List)
        {
            try
            {
                DataSet   ds      = new DataSet();
                DataTable Listing = Utility_Component.JsonToDt(List);
                DataRow   row;
                if (Listing.Rows.Count > 1)
                {
                    row = Listing.Rows[1];
                }
                else
                {
                    row = Listing.Rows[0];
                }

                string   EMIAL_SENDING_TARGET_FLG = row["MAIL_SENDING_TARGET_FLG"].ToString().Trim();
                string   MAIL_DESTINATION         = row["MAIL_DESTINATION"].ToString().Trim();
                int      TRANSACTION_TYPE         = getTRANSACTION_TYPE(row["TRANSACTION_TYPE"].ToString().Trim());
                DateTime START_USE_DATE           = Convert.ToDateTime(row["START_USE_DATE"].ToString().Trim());

                using (TransactionScope dbTxn = new TransactionScope())
                {
                    #region Approve
                    BOL_REQUEST_DETAIL oREQUEST_DETAIL = new BOL_REQUEST_DETAIL();
                    oREQUEST_DETAIL.COMPANY_NO_BOX = COMPANY_NO_BOX;
                    oREQUEST_DETAIL.REQ_STATUS     = 2;
                    if (REQ_TYPE == 1 || REQ_TYPE == 9 || (REQ_TYPE == 2 && !string.IsNullOrEmpty(CHANGED_ITEMS.Trim())))
                    {
                        oREQUEST_DETAIL.AMIGO_COOPERATION = 1;
                    }
                    else
                    {
                        oREQUEST_DETAIL.AMIGO_COOPERATION = 2;
                    }
                    oREQUEST_DETAIL.AMIGO_COOPERATION_CHENGED_ITEMS = CHANGED_ITEMS.Trim();
                    try
                    {
                        oREQUEST_DETAIL.SYSTEM_EFFECTIVE_DATE = Convert.ToDateTime(SYSTEM_EFFECTIVE_DATE);
                    }
                    catch (Exception)
                    {
                    }
                    try
                    {
                        oREQUEST_DETAIL.SYSTEM_REGIST_DEADLINE = Convert.ToDateTime(SYSTEM_REGIST_DEADLINE);
                    }
                    catch (Exception)
                    {
                    }
                    oREQUEST_DETAIL.REQ_SEQ = int.Parse(row["REQ_SEQ"].ToString());

                    if (MAIL_DESTINATION == "1")
                    {
                        oREQUEST_DETAIL.SYSTEM_SETTING_STATUS = 1;
                    }
                    else
                    {
                        oREQUEST_DETAIL.SYSTEM_SETTING_STATUS = 0;
                    }
                    oREQUEST_DETAIL.UPDATED_AT = row["UPDATED_AT_RAW"].ToString();

                    string         msg = "";
                    REQUEST_DETAIL DAL_REQUEST_DETAIL = new REQUEST_DETAIL(con);

                    DAL_REQUEST_DETAIL.Approve(oREQUEST_DETAIL, CURRENT_USER, CURRENT_DATETIME, out msg);

                    if (!string.IsNullOrEmpty(msg))
                    {
                        return(ResponseError(response, Utility.Messages.Jimugo.I000ZZ005, Listing, ds, row));
                    }
                    #endregion

                    if (EMIAL_SENDING_TARGET_FLG == "*" && TRANSACTION_TYPE == 3)
                    {
                        DataTable       LatestCustomer      = new DataTable();
                        CUSTOMER_MASTER DAL_CUSTOMER_MASTER = new CUSTOMER_MASTER(con);
                        if (REQ_TYPE == 2 || REQ_TYPE == 9)
                        {
                            LatestCustomer = DAL_CUSTOMER_MASTER.GetTopCustomerByKeys(oREQUEST_DETAIL.COMPANY_NO_BOX, TRANSACTION_TYPE, START_USE_DATE, out msg);
                        }

                        #region CONDUCT NEW CUSTOMER MASTER
                        BOL_CUSTOMER_MASTER oCUSTOMER_MASTER = new BOL_CUSTOMER_MASTER();

                        if (LatestCustomer.Rows.Count > 0 && REQ_TYPE != 1)
                        {
                            oCUSTOMER_MASTER = Cast_CUSTOMER_MASTER(LatestCustomer.Rows[0]);
                        }
                        oCUSTOMER_MASTER.COMPANY_NO_BOX   = COMPANY_NO_BOX;
                        oCUSTOMER_MASTER.TRANSACTION_TYPE = TRANSACTION_TYPE;
                        oCUSTOMER_MASTER.EFFECTIVE_DATE   = START_USE_DATE;
                        oCUSTOMER_MASTER.REQ_SEQ          = oREQUEST_DETAIL.REQ_SEQ;
                        oCUSTOMER_MASTER.UPDATE_CONTENT   = REQ_TYPE;
                        DAL_CUSTOMER_MASTER.Delete(oCUSTOMER_MASTER, out msg);
                        if (!string.IsNullOrEmpty(msg))
                        {
                            return(ResponseError(response, Utility.Messages.Jimugo.I000ZZ005, Listing, ds, row));
                        }
                        DAL_CUSTOMER_MASTER.Insert(oCUSTOMER_MASTER, CURRENT_DATETIME, CURRENT_USER, out msg);

                        if (!string.IsNullOrEmpty(msg))
                        {
                            return(ResponseError(response, Utility.Messages.Jimugo.I000ZZ005, Listing, ds, row));
                        }

                        #endregion

                        string CONTRACT_PLAN = row["CONTRACT_PLAN_RAW"].ToString().ToString();
                        if (CONTRACT_PLAN == "PRODUCT" && REQ_TYPE == 9)
                        {
                            //get latest customer for new applying time
                            DateTime NEW_EFFECTIVE_DATE = Convert.ToDateTime(DAL_CUSTOMER_MASTER.GetEffectiveDateForNewApplyingTime(oREQUEST_DETAIL.COMPANY_NO_BOX, TRANSACTION_TYPE, START_USE_DATE, out msg));

                            if ((NEW_EFFECTIVE_DATE.Month + NEW_EFFECTIVE_DATE.Day) != (START_USE_DATE.Month + START_USE_DATE.Day))
                            {
                                #region Insert Browsing CUSTOMER MASTER
                                BOL_CUSTOMER_MASTER oCUSTOMER_MASTER_BROWSING = new BOL_CUSTOMER_MASTER();
                                oCUSTOMER_MASTER_BROWSING = Cast_CUSTOMER_MASTER(LatestCustomer.Rows[0]);
                                oCUSTOMER_MASTER_BROWSING.COMPANY_NO_BOX   = COMPANY_NO_BOX;
                                oCUSTOMER_MASTER_BROWSING.TRANSACTION_TYPE = TRANSACTION_TYPE;
                                oCUSTOMER_MASTER_BROWSING.EFFECTIVE_DATE   = Convert.ToDateTime(START_USE_DATE.Year + "/" + NEW_EFFECTIVE_DATE.Month + "/" + NEW_EFFECTIVE_DATE.Day);
                                oCUSTOMER_MASTER_BROWSING.REQ_SEQ          = oREQUEST_DETAIL.REQ_SEQ;
                                oCUSTOMER_MASTER_BROWSING.UPDATE_CONTENT   = REQ_TYPE;

                                DAL_CUSTOMER_MASTER = new CUSTOMER_MASTER(con);
                                DAL_CUSTOMER_MASTER.Insert(oCUSTOMER_MASTER_BROWSING, CURRENT_DATETIME, CURRENT_USER, out msg);

                                if (!string.IsNullOrEmpty(msg))
                                {
                                    return(ResponseError(response, Utility.Messages.Jimugo.I000ZZ005, Listing, ds, row));
                                }
                                #endregion
                            }
                        }
                    }
                    DataTable dtMail      = new DataTable();
                    bool      mailSuccess = false;
                    if (EMIAL_SENDING_TARGET_FLG == "*" && MAIL_DESTINATION == "1")
                    {
                        mailSuccess = SendMailToMaintenance(COMPANY_NO_BOX, REQ_TYPE_RAW, row["COMPANY_NAME"].ToString(), CHANGED_ITEMS, SYSTEM_REGIST_DEADLINE, out dtMail);
                        if (mailSuccess)
                        {
                            dbTxn.Complete();
                            return(SetSuccessMessage(row, Listing, dtMail, ds));
                        }
                        else
                        {
                            return(ResponseError(response, Utility.Messages.Jimugo.I000ZZ005, Listing, ds, row));
                        }
                    }
                    else if (EMIAL_SENDING_TARGET_FLG == "*" && MAIL_DESTINATION == "2")
                    {
                        mailSuccess = SendMailToSupplier(row["COMPANY_NAME"].ToString(), row["INPUT_PERSON"].ToString(), row["INPUT_PERSON_EMAIL_ADDRESS"].ToString(), out dtMail);

                        if (mailSuccess)
                        {
                            dbTxn.Complete();
                            return(SetSuccessMessage(row, Listing, dtMail, ds));
                        }
                        else
                        {
                            return(ResponseError(response, Utility.Messages.Jimugo.I000ZZ005, Listing, ds, row));
                        }
                    }
                    dbTxn.Complete();
                    return(SetSuccessMessage(row, Listing, dtMail, ds));
                }
            }
            catch (Exception ex)
            {
                return(ResponseUtility.GetUnexpectedResponse(response, timer, ex));
            }
        }
        public MetaResponse ApproveCancel(string COMPANY_NO_BOX, string REQ_SEQ, string List)
        {
            try
            {
                string    msg     = "";
                DataSet   ds      = new DataSet();
                DataTable Listing = Utility_Component.JsonToDt(List);
                DataRow   row;
                if (Listing.Rows.Count > 1)
                {
                    row = Listing.Rows[1];
                }
                else
                {
                    row = Listing.Rows[0];
                }

                REQUEST_DETAIL DAL_REQUEST_DETAIL = new REQUEST_DETAIL(con);
                //serch with COMPANY_NO_BOX AND REQ_SEQ
                DataTable APPROVAL_CHECK = DAL_REQUEST_DETAIL.GetDataToCheckApproveCancel(COMPANY_NO_BOX, REQ_SEQ, out msg);


                //IF QUOTATION DATE NOT NULL THEN ERROR
                if (!string.IsNullOrEmpty(APPROVAL_CHECK.Rows[0]["QUOTATION_DATE"].ToString()))
                {
                    return(ResponseError(response, Utility.Messages.Jimugo.E000ZZ037, Listing, ds, row));
                }
                //IF SYSTEM_SETTING_STATUS NOT NULL THEN ERROR
                if (APPROVAL_CHECK.Rows[0]["SYSTEM_SETTING_STATUS"].ToString() != "0")
                {
                    return(ResponseError(response, Utility.Messages.Jimugo.E000WB015, Listing, ds, row));
                }

                DAL_REQUEST_DETAIL.ApproveCancel(COMPANY_NO_BOX, row["REQ_SEQ"].ToString(), CURRENT_USER, CURRENT_DATETIME, out msg);
                if (!string.IsNullOrEmpty(msg))
                {
                    return(ResponseError(response, Utility.Messages.Jimugo.I000ZZ005, Listing, ds, row));
                }

                CUSTOMER_MASTER     DAL_CUSTOMER_MASTER = new CUSTOMER_MASTER(con);
                BOL_CUSTOMER_MASTER oCUSTOMER_MASTER    = new BOL_CUSTOMER_MASTER();
                oCUSTOMER_MASTER.COMPANY_NO_BOX = COMPANY_NO_BOX;
                oCUSTOMER_MASTER.REQ_SEQ        = Convert.ToInt32(row["REQ_SEQ"]);
                DAL_CUSTOMER_MASTER.Delete(oCUSTOMER_MASTER, out msg);

                if (!string.IsNullOrEmpty(msg))
                {
                    return(ResponseError(response, Utility.Messages.Jimugo.I000ZZ005, Listing, ds, row));
                }
                else
                {
                    response.Status       = 1;
                    row["UPDATE_MESSAGE"] = string.Format(Messages.Jimugo.I000ZZ016, "承認解除");
                    Listing.TableName     = "LISTING";
                    ds.Tables.Add(Listing.Copy());
                }
                response.Data = Utility.Utility_Component.DsToJSon(ds, "Approval");
                timer.Stop();
                response.Meta.Duration = timer.Elapsed.TotalSeconds;
                return(response);
            }
            catch (Exception ex)
            {
                return(ResponseUtility.GetUnexpectedResponse(response, timer, ex));
            }
        }
        public MetaResponse NotiSendingPreview(string COMPANY_NAME, string COMPANY_NO_BOX, string REQ_SEQ, string EDI_ACCOUNT, string authHeader)
        {
            try
            {
                //int status;
                //message for pop up
                DataTable messagecode = new DataTable();
                messagecode.Columns.Add("Message");
                DataRow dr = messagecode.NewRow();

                string strMessage = "";
                //get config object for CTS060
                BOL_CONFIG config = new BOL_CONFIG("SYSTEM", con);
                int        FY     = config.getIntValue("client.certificate.FY");
                status = 1;
                int clientCertificateDiff = DAL_REQUEST_DETAIL.GetClientCertificateDiff(COMPANY_NO_BOX, REQ_SEQ, FY.ToString(), out strMessage);

                using (TransactionScope dbTxn = new TransactionScope())
                {
                    for (int i = 1; i <= clientCertificateDiff; i++)
                    {
                        #region SearchClientCertificateNo
                        string clientCertificateNo = DAL_CLIENT_CERTIFICATE.GetClientCertificateNo(FY.ToString(), out strMessage);
                        if (!string.IsNullOrEmpty(clientCertificateNo))
                        {
                            #region UpdateWithClientCertificateNo
                            status = UpdateWithClientCertificateNO(clientCertificateNo, COMPANY_NO_BOX, CURRENT_USER, strMessage);
                            #endregion
                            if (status == 0)
                            {
                                dbTxn.Dispose();
                                response.Status  = 0;
                                response.Message = Utility.Messages.Jimugo.E000WB005;
                                dr["Message"]    = Utility.Messages.Jimugo.E000WB005;
                                messagecode.Rows.Add(dr);
                                response.Data = Utility_Component.DtToJSon(messagecode, "Message");
                                return(response);
                            }
                        }
                        else
                        {
                            response.Status  = 0;
                            response.Message = Utility.Messages.Jimugo.E000WB004;
                            dr["Message"]    = Utility.Messages.Jimugo.E000WB004;
                            messagecode.Rows.Add(dr);
                            response.Data = Utility_Component.DtToJSon(messagecode, "Message");
                            return(response);
                        }
                        #endregion
                    }
                    if (status == 2)
                    {
                        dbTxn.Complete();
                    }
                }

                if (status == 1 || status == 2)
                {
                    #region GetPDFData

                    DataTable dtPDFData = DAL_REQUEST_DETAIL.GetPDFData(COMPANY_NO_BOX, REQ_SEQ, out strMessage);

                    DataTable dtPDFData1 = DAL_REQ_ADDRESS.GetPDFData1(COMPANY_NO_BOX, REQ_SEQ, out strMessage);

                    DataTable dtPDFData2 = DAL_REQ_ADDRESS.GetPDFData2(COMPANY_NO_BOX, REQ_SEQ, out strMessage);

                    string req_seq = REQ_SEQ.Length != 1 ? REQ_SEQ :  REQ_SEQ.ToString().PadLeft(2, '0');

                    string saveFileName = COMPANY_NO_BOX + "-" + "3" + "-" + req_seq + "_完了通知書(" + EDI_ACCOUNT.Replace("@", "") + ")_" + COMPANY_NAME + "様_" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".pdf";

                    response = getPDF(COMPANY_NO_BOX, COMPANY_NAME, dtPDFData, dtPDFData1, dtPDFData2, saveFileName, status);

                    #endregion
                }
                else
                {
                    response.Status  = 0;
                    response.Message = Utility.Messages.Jimugo.I000WB001;
                    dr["Message"]    = Utility.Messages.Jimugo.I000WB001;
                    messagecode.Rows.Add(dr);
                    response.Data = Utility_Component.DtToJSon(messagecode, "Message");
                    return(response);
                }

                return(response); //process 3 successful
            }
            catch (Exception ex)
            {
                return(ResponseUtility.GetUnexpectedResponse(response, timer, ex));
            }
        }
Example #22
0
        public MetaResponse getInvoiceList(String BILLING_DATE, int OFFSET, int LIMIT)
        {
            try
            {
                string strMessage       = "";
                int    TOTAL            = 0;
                string checkGetOrCreate = "GET";

                #region Declare
                decimal Key_source_Monthly_usage_fee_REQ_SEQ       = 0;
                decimal Key_source_Monthly_usage_fee               = 0;
                decimal Key_source_Monthly_usage_fee_DISCOUNTED    = 0;
                decimal Key_source_Monthly_usage_fee_TAX           = 0;
                decimal Key_source_Monthly_usage_fee_INCLUDING_TAX = 0;

                decimal Supplier_Initial_expense_REQ_SEQ       = 0;
                decimal Supplier_Initial_expense               = 0;
                decimal Supplier_Initial_expense_DISCOUNTED    = 0;
                decimal Supplier_Initial_expense_TAX           = 0;
                decimal Supplier_Initial_expense_INCLUDING_TAX = 0;

                decimal Supplier_Monthly_usage_fee_REQ_SEQ       = 0;
                decimal supplier_Monthly_usage_fee               = 0;
                decimal Supplier_Monthly_usage_fee_DISCOUNTED    = 0;
                decimal Supplier_Monthly_usage_fee_TAX           = 0;
                decimal Supplier_Monthly_usage_fee_INCLUDING_TAX = 0;

                decimal Production_information_browsing_Initial_expense_REQ_SEQ    = 0;
                decimal Production_information_browsing_Initial_expense            = 0;
                decimal Production_information_browsing_Initial_expense_DISCOUNTED = 0;
                decimal Production_information_browsing_Initial_expense_TAX;
                decimal Production_information_browsing_Initial_expense_INCLUDING_TAX = 0;

                decimal View_production_information_Annual_usage_fee_REQ_SEQ       = 0;
                decimal Viewing_production_information_Annual_usage_fee            = 0;
                decimal View_production_information_Annual_usage_fee_DISCOUNTED    = 0;
                decimal View_production_information_Annual_usage_fee_TAX           = 0;
                decimal View_production_information_Annual_usage_fee_INCLUDING_TAX = 0;
                #endregion

                INVOICE_INFO DAL_INVOICE_INFO = new INVOICE_INFO(con);
                DataTable    dt = DAL_INVOICE_INFO.GetInvoiceList(BILLING_DATE, OFFSET, LIMIT, checkGetOrCreate, out strMessage, out TOTAL);

                DataTable dtAll = DAL_INVOICE_INFO.GetInvoiceListTotal(BILLING_DATE, out strMessage);

                #region Create Datatable
                DataTable dtResult = new DataTable();
                dtResult.Columns.Add("No");
                dtResult.Columns.Add("COMPANY_NO_BOX");
                dtResult.Columns.Add("COMPANY_NAME");
                dtResult.Columns.Add("KEY_SOURCE_MONTHLY_USAGE_FEE", typeof(decimal));
                dtResult.Columns.Add("SUPPLIER_INITIAL_EXPENSE", typeof(decimal));
                dtResult.Columns.Add("SUPPLIER_MONTHLY_USAGE_FEE", typeof(decimal));
                dtResult.Columns.Add("BROWSING_INITIAL_EXPENSE", typeof(decimal));
                dtResult.Columns.Add("YEARLY_USAGE_FEE", typeof(decimal));
                dtResult.Columns.Add("POSTAL_MAIL");
                dtResult.Columns.Add("WEB");
                dtResult.Columns.Add("Email");
                dtResult.Columns.Add("CREDIT_CARD");
                dtResult.Columns.Add("OTHER");
                dtResult.Columns.Add("Key_source_Monthly_usage_fee_REQ_SEQ");
                dtResult.Columns.Add("Supplier_Initial_expense_REQ_SEQ");
                dtResult.Columns.Add("Supplier_Monthly_usage_fee_REQ_SEQ");
                dtResult.Columns.Add("Production_information_browsing_Initial_expense_REQ_SEQ");
                dtResult.Columns.Add("View_production_information_Annual_usage_fee_REQ_SEQ");
                #endregion

                #region Create Datatable ForTotal
                DataTable dtTotal = new DataTable();
                dtTotal.Columns.Add("KEY_SOURCE_MONTHLY_USAGE_FEE", typeof(decimal));
                dtTotal.Columns.Add("SUPPLIER_INITIAL_EXPENSE", typeof(decimal));
                dtTotal.Columns.Add("SUPPLIER_MONTHLY_USAGE_FEE", typeof(decimal));
                dtTotal.Columns.Add("BROWSING_INITIAL_EXPENSE", typeof(decimal));
                dtTotal.Columns.Add("YEARLY_USAGE_FEE", typeof(decimal));
                dtTotal.Columns.Add("POSTAL_MAIL");
                dtTotal.Columns.Add("WEB");
                dtTotal.Columns.Add("Email");
                dtTotal.Columns.Add("CREDIT_CARD");
                dtTotal.Columns.Add("OTHER");
                #endregion

                foreach (DataRow row in dt.Rows)
                {
                    #region SetValue To DataTable
                    DataRow newRow = dtResult.NewRow();
                    newRow["No"]             = row["No"];
                    newRow["COMPANY_NO_BOX"] = row["COMPANY_NO_BOX"];
                    newRow["COMPANY_NAME"]   = row["COMPANY_NAME"];

                    Key_source_Monthly_usage_fee_REQ_SEQ       = NullOrEmpty(row["Key_source_Monthly_usage_fee_REQ_SEQ"].ToString());
                    Key_source_Monthly_usage_fee               = NullOrEmpty(row["Key_source_Monthly_usage_fee"].ToString());
                    Key_source_Monthly_usage_fee_DISCOUNTED    = NullOrEmpty(row["Key_source_Monthly_usage_fee_DISCOUNTED"].ToString());
                    Key_source_Monthly_usage_fee_TAX           = NullOrEmpty(row["Key_source_Monthly_usage_fee_TAX"].ToString());
                    Key_source_Monthly_usage_fee_INCLUDING_TAX = NullOrEmpty(row["Key_source_Monthly_usage_fee_INCLUDING_TAX"].ToString());

                    Supplier_Initial_expense_REQ_SEQ       = NullOrEmpty(row["Supplier_Initial_expense_REQ_SEQ"].ToString());
                    Supplier_Initial_expense               = NullOrEmpty(row["Supplier_Initial_expense"].ToString());
                    Supplier_Initial_expense_DISCOUNTED    = NullOrEmpty(row["Supplier_Initial_expense_DISCOUNTED"].ToString());
                    Supplier_Initial_expense_TAX           = NullOrEmpty(row["Supplier_Initial_expense_TAX"].ToString());
                    Supplier_Initial_expense_INCLUDING_TAX = NullOrEmpty(row["Supplier_Initial_expense_INCLUDING_TAX"].ToString());

                    Supplier_Monthly_usage_fee_REQ_SEQ       = NullOrEmpty(row["Supplier_Monthly_usage_fee_REQ_SEQ"].ToString());
                    supplier_Monthly_usage_fee               = NullOrEmpty(row["Supplier_Monthly_usage_fee"].ToString());
                    Supplier_Monthly_usage_fee_DISCOUNTED    = NullOrEmpty(row["Supplier_Monthly_usage_fee_DISCOUNTED"].ToString());
                    Supplier_Monthly_usage_fee_TAX           = NullOrEmpty(row["Supplier_Monthly_usage_fee_TAX"].ToString());
                    Supplier_Monthly_usage_fee_INCLUDING_TAX = NullOrEmpty(row["Supplier_Monthly_usage_fee_INCLUDING_TAX"].ToString());

                    Production_information_browsing_Initial_expense_REQ_SEQ       = NullOrEmpty(row["Production_information_browsing_Initial_expense_REQ_SEQ"].ToString());
                    Production_information_browsing_Initial_expense               = NullOrEmpty(row["Production_information_browsing_Initial_expense"].ToString());
                    Production_information_browsing_Initial_expense_DISCOUNTED    = NullOrEmpty(row["Production_information_browsing_Initial_expense_DISCOUNTED"].ToString());
                    Production_information_browsing_Initial_expense_TAX           = NullOrEmpty(row["Production_information_browsing_Initial_expense_TAX"].ToString());
                    Production_information_browsing_Initial_expense_INCLUDING_TAX = NullOrEmpty(row["Production_information_browsing_Initial_expense_INCLUDING_TAX"].ToString());

                    View_production_information_Annual_usage_fee_REQ_SEQ       = NullOrEmpty(row["View_production_information_Annual_usage_fee_REQ_SEQ"].ToString());
                    Viewing_production_information_Annual_usage_fee            = NullOrEmpty(row["Viewing_production_information_Annual_usage_fee"].ToString());
                    View_production_information_Annual_usage_fee_DISCOUNTED    = NullOrEmpty(row["View_production_information_Annual_usage_fee_DISCOUNTED"].ToString());
                    View_production_information_Annual_usage_fee_TAX           = NullOrEmpty(row["View_production_information_Annual_usage_fee_TAX"].ToString());
                    View_production_information_Annual_usage_fee_INCLUDING_TAX = NullOrEmpty(row["View_production_information_Annual_usage_fee_INCLUDING_TAX"].ToString());

                    decimal usageFee = Key_source_Monthly_usage_fee_REQ_SEQ + Key_source_Monthly_usage_fee + Key_source_Monthly_usage_fee_DISCOUNTED + Key_source_Monthly_usage_fee_TAX + Key_source_Monthly_usage_fee_INCLUDING_TAX;
                    newRow["KEY_SOURCE_MONTHLY_USAGE_FEE"] = usageFee;

                    decimal supplierInitialExpense = Supplier_Initial_expense_REQ_SEQ + Supplier_Initial_expense + Supplier_Initial_expense_DISCOUNTED + Supplier_Initial_expense_TAX + Supplier_Initial_expense_INCLUDING_TAX;
                    newRow["SUPPLIER_INITIAL_EXPENSE"] = supplierInitialExpense;

                    decimal supplierMonthlyUsageFee = Supplier_Monthly_usage_fee_REQ_SEQ + supplier_Monthly_usage_fee + Supplier_Monthly_usage_fee_DISCOUNTED + Supplier_Monthly_usage_fee_TAX + Supplier_Monthly_usage_fee_INCLUDING_TAX;
                    newRow["SUPPLIER_MONTHLY_USAGE_FEE"] = supplierMonthlyUsageFee;

                    decimal browsingInitialExpense = Production_information_browsing_Initial_expense_REQ_SEQ + Production_information_browsing_Initial_expense + Production_information_browsing_Initial_expense_DISCOUNTED + Production_information_browsing_Initial_expense_TAX + Production_information_browsing_Initial_expense_INCLUDING_TAX;
                    newRow["BROWSING_INITIAL_EXPENSE"] = browsingInitialExpense;

                    decimal yearlyUsageFee = View_production_information_Annual_usage_fee_REQ_SEQ + Viewing_production_information_Annual_usage_fee + View_production_information_Annual_usage_fee_DISCOUNTED + View_production_information_Annual_usage_fee_TAX + View_production_information_Annual_usage_fee_INCLUDING_TAX;
                    newRow["YEARLY_USAGE_FEE"] = yearlyUsageFee;


                    //newRow["INVOICE_METHOD"] = row["BILL_METHOD"];
                    string invoiceMethod = row["BILL_METHOD"].ToString();
                    if (invoiceMethod.Length == 5)
                    {
                        if (invoiceMethod.Substring(0, 1) == "1")
                        {
                            newRow["POSTAL_MAIL"] = "●";
                        }
                        if (invoiceMethod.Substring(1, 1) == "1")
                        {
                            newRow["WEB"] = "●";
                        }
                        if (invoiceMethod.Substring(2, 1) == "1")
                        {
                            newRow["Email"] = "●";
                        }
                        if (invoiceMethod.Substring(3, 1) == "1")
                        {
                            newRow["CREDIT_CARD"] = "●";
                        }
                        if (invoiceMethod.Substring(4, 1) == "1")
                        {
                            newRow["OTHER"] = "●";
                        }
                    }
                    newRow["Key_source_Monthly_usage_fee_REQ_SEQ"] = row["Key_source_Monthly_usage_fee_REQ_SEQ"];
                    newRow["Supplier_Initial_expense_REQ_SEQ"]     = row["Supplier_Initial_expense_REQ_SEQ"];
                    newRow["Supplier_Monthly_usage_fee_REQ_SEQ"]   = row["Supplier_Monthly_usage_fee_REQ_SEQ"];
                    newRow["Production_information_browsing_Initial_expense_REQ_SEQ"] = row["Production_information_browsing_Initial_expense_REQ_SEQ"];
                    newRow["View_production_information_Annual_usage_fee_REQ_SEQ"]    = row["View_production_information_Annual_usage_fee_REQ_SEQ"];
                    dtResult.Rows.Add(newRow);
                    #endregion
                }


                foreach (DataRow row in dtAll.Rows)
                {
                    #region Declare
                    Key_source_Monthly_usage_fee_REQ_SEQ       = 0;
                    Key_source_Monthly_usage_fee               = 0;
                    Key_source_Monthly_usage_fee_DISCOUNTED    = 0;
                    Key_source_Monthly_usage_fee_TAX           = 0;
                    Key_source_Monthly_usage_fee_INCLUDING_TAX = 0;

                    Supplier_Initial_expense_REQ_SEQ       = 0;
                    Supplier_Initial_expense               = 0;
                    Supplier_Initial_expense_DISCOUNTED    = 0;
                    Supplier_Initial_expense_TAX           = 0;
                    Supplier_Initial_expense_INCLUDING_TAX = 0;

                    Supplier_Monthly_usage_fee_REQ_SEQ       = 0;
                    supplier_Monthly_usage_fee               = 0;
                    Supplier_Monthly_usage_fee_DISCOUNTED    = 0;
                    Supplier_Monthly_usage_fee_TAX           = 0;
                    Supplier_Monthly_usage_fee_INCLUDING_TAX = 0;

                    Production_information_browsing_Initial_expense_REQ_SEQ       = 0;
                    Production_information_browsing_Initial_expense               = 0;
                    Production_information_browsing_Initial_expense_DISCOUNTED    = 0;
                    Production_information_browsing_Initial_expense_TAX           = 0;
                    Production_information_browsing_Initial_expense_INCLUDING_TAX = 0;

                    View_production_information_Annual_usage_fee_REQ_SEQ       = 0;
                    Viewing_production_information_Annual_usage_fee            = 0;
                    View_production_information_Annual_usage_fee_DISCOUNTED    = 0;
                    View_production_information_Annual_usage_fee_TAX           = 0;
                    View_production_information_Annual_usage_fee_INCLUDING_TAX = 0;
                    #endregion

                    #region SetValue to DataTable
                    DataRow newRow = dtTotal.NewRow();

                    Key_source_Monthly_usage_fee_REQ_SEQ       = NullOrEmpty(row["Key_source_Monthly_usage_fee_REQ_SEQ"].ToString());
                    Key_source_Monthly_usage_fee               = NullOrEmpty(row["Key_source_Monthly_usage_fee"].ToString());
                    Key_source_Monthly_usage_fee_DISCOUNTED    = NullOrEmpty(row["Key_source_Monthly_usage_fee_DISCOUNTED"].ToString());
                    Key_source_Monthly_usage_fee_TAX           = NullOrEmpty(row["Key_source_Monthly_usage_fee_TAX"].ToString());
                    Key_source_Monthly_usage_fee_INCLUDING_TAX = NullOrEmpty(row["Key_source_Monthly_usage_fee_INCLUDING_TAX"].ToString());

                    Supplier_Initial_expense_REQ_SEQ       = NullOrEmpty(row["Supplier_Initial_expense_REQ_SEQ"].ToString());
                    Supplier_Initial_expense               = NullOrEmpty(row["Supplier_Initial_expense"].ToString());
                    Supplier_Initial_expense_DISCOUNTED    = NullOrEmpty(row["Supplier_Initial_expense_DISCOUNTED"].ToString());
                    Supplier_Initial_expense_TAX           = NullOrEmpty(row["Supplier_Initial_expense_TAX"].ToString());
                    Supplier_Initial_expense_INCLUDING_TAX = NullOrEmpty(row["Supplier_Initial_expense_INCLUDING_TAX"].ToString());

                    Supplier_Monthly_usage_fee_REQ_SEQ       = NullOrEmpty(row["Supplier_Monthly_usage_fee_REQ_SEQ"].ToString());
                    supplier_Monthly_usage_fee               = NullOrEmpty(row["Supplier_Monthly_usage_fee"].ToString());
                    Supplier_Monthly_usage_fee_DISCOUNTED    = NullOrEmpty(row["Supplier_Monthly_usage_fee_DISCOUNTED"].ToString());
                    Supplier_Monthly_usage_fee_TAX           = NullOrEmpty(row["Supplier_Monthly_usage_fee_TAX"].ToString());
                    Supplier_Monthly_usage_fee_INCLUDING_TAX = NullOrEmpty(row["Supplier_Monthly_usage_fee_INCLUDING_TAX"].ToString());

                    Production_information_browsing_Initial_expense_REQ_SEQ       = NullOrEmpty(row["Production_information_browsing_Initial_expense_REQ_SEQ"].ToString());
                    Production_information_browsing_Initial_expense               = NullOrEmpty(row["Production_information_browsing_Initial_expense"].ToString());
                    Production_information_browsing_Initial_expense_DISCOUNTED    = NullOrEmpty(row["Production_information_browsing_Initial_expense_DISCOUNTED"].ToString());
                    Production_information_browsing_Initial_expense_TAX           = NullOrEmpty(row["Production_information_browsing_Initial_expense_TAX"].ToString());
                    Production_information_browsing_Initial_expense_INCLUDING_TAX = NullOrEmpty(row["Production_information_browsing_Initial_expense_INCLUDING_TAX"].ToString());

                    View_production_information_Annual_usage_fee_REQ_SEQ       = NullOrEmpty(row["View_production_information_Annual_usage_fee_REQ_SEQ"].ToString());
                    Viewing_production_information_Annual_usage_fee            = NullOrEmpty(row["Viewing_production_information_Annual_usage_fee"].ToString());
                    View_production_information_Annual_usage_fee_DISCOUNTED    = NullOrEmpty(row["View_production_information_Annual_usage_fee_DISCOUNTED"].ToString());
                    View_production_information_Annual_usage_fee_TAX           = NullOrEmpty(row["View_production_information_Annual_usage_fee_TAX"].ToString());
                    View_production_information_Annual_usage_fee_INCLUDING_TAX = NullOrEmpty(row["View_production_information_Annual_usage_fee_INCLUDING_TAX"].ToString());

                    decimal usageFee = Key_source_Monthly_usage_fee_REQ_SEQ + Key_source_Monthly_usage_fee + Key_source_Monthly_usage_fee_DISCOUNTED + Key_source_Monthly_usage_fee_TAX + Key_source_Monthly_usage_fee_INCLUDING_TAX;
                    newRow["KEY_SOURCE_MONTHLY_USAGE_FEE"] = usageFee;

                    decimal supplierInitialExpense = Supplier_Initial_expense_REQ_SEQ + Supplier_Initial_expense + Supplier_Initial_expense_DISCOUNTED + Supplier_Initial_expense_TAX + Supplier_Initial_expense_INCLUDING_TAX;
                    newRow["SUPPLIER_INITIAL_EXPENSE"] = supplierInitialExpense;

                    decimal supplierMonthlyUsageFee = Supplier_Monthly_usage_fee_REQ_SEQ + supplier_Monthly_usage_fee + Supplier_Monthly_usage_fee_DISCOUNTED + Supplier_Monthly_usage_fee_TAX + Supplier_Monthly_usage_fee_INCLUDING_TAX;
                    newRow["SUPPLIER_MONTHLY_USAGE_FEE"] = supplierMonthlyUsageFee;

                    decimal browsingInitialExpense = Production_information_browsing_Initial_expense_REQ_SEQ + Production_information_browsing_Initial_expense + Production_information_browsing_Initial_expense_DISCOUNTED + Production_information_browsing_Initial_expense_TAX + Production_information_browsing_Initial_expense_INCLUDING_TAX;
                    newRow["BROWSING_INITIAL_EXPENSE"] = browsingInitialExpense;

                    decimal yearlyUsageFee = View_production_information_Annual_usage_fee_REQ_SEQ + Viewing_production_information_Annual_usage_fee + View_production_information_Annual_usage_fee_DISCOUNTED + View_production_information_Annual_usage_fee_TAX + View_production_information_Annual_usage_fee_INCLUDING_TAX;
                    newRow["YEARLY_USAGE_FEE"] = yearlyUsageFee;


                    //newRow["INVOICE_METHOD"] = row["BILL_METHOD"];
                    string invoiceMethod = row["BILL_METHOD"].ToString();
                    if (invoiceMethod.Length == 5)
                    {
                        if (invoiceMethod.Substring(0, 1) == "1")
                        {
                            newRow["POSTAL_MAIL"] = "●";
                        }
                        if (invoiceMethod.Substring(1, 1) == "1")
                        {
                            newRow["WEB"] = "●";
                        }
                        if (invoiceMethod.Substring(2, 1) == "1")
                        {
                            newRow["Email"] = "●";
                        }
                        if (invoiceMethod.Substring(3, 1) == "1")
                        {
                            newRow["CREDIT_CARD"] = "●";
                        }
                        if (invoiceMethod.Substring(4, 1) == "1")
                        {
                            newRow["OTHER"] = "●";
                        }
                    }

                    dtTotal.Rows.Add(newRow);
                    #endregion
                }

                DataSet ds = new DataSet();
                ds.Tables.Add(dtResult);
                ds.Tables.Add(dtTotal);

                response.Data = Utility.Utility_Component.DsToJSon(ds, "UsageApplicatioList");
                if (dtResult.Rows.Count > 0)
                {
                    response.Status = 1;
                }
                else
                {
                    if (strMessage == "")
                    {
                        response.Status  = 1;
                        response.Message = "There is no data to display.";
                    }
                    else
                    {
                        response.Status  = 0;
                        response.Message = strMessage;
                    }
                }
                response.Meta.Offset = OFFSET;
                response.Meta.Limit  = LIMIT;
                response.Meta.Total  = TOTAL;
                timer.Stop();
                response.Meta.Duration = timer.Elapsed.TotalSeconds;
                return(response);
            }
            catch (Exception ex)
            {
                return(ResponseUtility.GetUnexpectedResponse(response, timer, ex));
            }
        }
Example #23
0
        public MetaResponse SendMail(string ClientCertificateList)
        {
            try
            {
                string    strMsg          = "";
                bool      mailSuccess     = false;
                ArrayList company_no_boxs = new ArrayList();

                DataTable dgvList = Utility.Utility_Component.JsonToDt(ClientCertificateList);

                List <string> l_SentMail = new List <string>();

                for (int i = 0; i < dgvList.Rows.Count; i++)
                {
                    DataRow dr = dgvList.Rows[i];
                    string  l_COMPANY_NO_BOX = dr["COMPANY_NO_BOX"].ToString();

                    var certificate_list = dgvList.AsEnumerable().Where(row => row.Field <string>("COMPANY_NO_BOX") == l_COMPANY_NO_BOX).Select(s => s.Field <string>("CLIENT_CERTIFICATE_NO")).ToArray();


                    BOL_CLIENT_CERTIFICATE oCLIENT_CERTIFICATE = new BOL_CLIENT_CERTIFICATE();

                    oCLIENT_CERTIFICATE = Cast_CLIENT_CERTIFICATE(dr);  //check method
                    BOL_REQUEST_DETAIL oREQUEST_DETAIL = new BOL_REQUEST_DETAIL();
                    oREQUEST_DETAIL = Cast_REQUEST_DETAIL(dr);


                    CLIENT_CERTIFICATE DAL_CLIENT_CERTIFICATE = new CLIENT_CERTIFICATE(con);

                    if (l_SentMail.Where(x => x == l_COMPANY_NO_BOX).ToList().Count <= 0)
                    {
                        l_SentMail.Add(l_COMPANY_NO_BOX);

                        mailSuccess = PrepareAndSendMail(certificate_list, oREQUEST_DETAIL.COMPANY_NAME, oREQUEST_DETAIL.CLIENT_CERTIFICATE_SEND_EMAIL_ADDRESS, oCLIENT_CERTIFICATE.EXPIRATION_DATE, oCLIENT_CERTIFICATE.PASSWORD, oCLIENT_CERTIFICATE.FY);

                        if (mailSuccess)
                        {
                            //update email sent date
                            DAL_CLIENT_CERTIFICATE.EmailButtonUpdate(oCLIENT_CERTIFICATE, UPDATED_AT_DATETIME, CURRENT_DATETIME, CURRENT_USER, out strMsg);

                            if (String.IsNullOrEmpty(strMsg))
                            {
                                //success
                                dr["DISTRIBUTION_DATE"] = UPDATED_AT_DATETIME;
                                ResponseUtility.ReturnMailSuccessMessage(dr, UPDATED_AT_DATETIME, CURRENT_DATETIME, CURRENT_USER);
                            }
                            else
                            {
                                //already use in another process
                                ResponseUtility.ReturnFailMessage(dr);
                            }
                        }
                        else
                        {
                            //fail message
                            ResponseUtility.MailSendingFail(dr);
                        }
                    }
                    else
                    {
                        //update email sent date
                        DAL_CLIENT_CERTIFICATE.EmailButtonUpdate(oCLIENT_CERTIFICATE, UPDATED_AT_DATETIME, CURRENT_DATETIME, CURRENT_USER, out strMsg);

                        if (String.IsNullOrEmpty(strMsg))
                        {
                            //success
                            dr["DISTRIBUTION_DATE"] = UPDATED_AT_DATETIME;
                            ResponseUtility.ReturnMailSuccessMessage(dr, UPDATED_AT_DATETIME, CURRENT_DATETIME, CURRENT_USER);
                        }
                        else
                        {
                            //already use in another process
                            ResponseUtility.ReturnFailMessage(dr);
                        }
                    }
                }

                response.Data = Utility.Utility_Component.DtToJSon(dgvList, "Mail status");;
                timer.Stop();
                response.Meta.Duration = timer.Elapsed.TotalSeconds;
                return(response);
            }
            catch (Exception ex)
            {
                return(ResponseUtility.GetUnexpectedResponse(response, timer, ex));
            }
        }