Ejemplo n.º 1
0
 // Code for Page_Load
 protected override void PageLoad(object oContainer, IFormURLPara para, IUIShadow UIShadow)
 {
     oPage       = (Page)oContainer;
     oUIControls = (GDSExceptionHandlingUIShadow)UIShadow;
     oPara       = para;
     this.InitialPageControls();
     base.PageLoad(oContainer, para, UIShadow);
 }
    // Code for Page_Load
    protected override void PageLoad(object oContainer, IFormURLPara para, IUIShadow UIShadow)
    {
        oPage       = (Page)oContainer;
        oUIControls = (NPIGating_HISUIShadow)UIShadow;
        oPara       = para;

        this.InitialPageControls();
        base.PageLoad(oContainer, para, UIShadow);
    }
    public override void Print(int iTaskId, SPMTaskVariables SPMTaskVars, EFFormFields FormFields, object oContainer, IUIShadow UIShadow)
    {
        if (iTaskId < 0)
        {
            NPIGating_HISUIShadow lControls = (NPIGating_HISUIShadow)UIShadow;
        }
        //else
        //{

        //}

        base.Print(iTaskId, SPMTaskVars, FormFields, oContainer, UIShadow);
    }
    // Fill SPM's EFFormFieldData
    public override void PrepareEFFormFields(SPMSubmitMethod SubmitMethod, SPMProcessMethod ProcessMethod, SPMTaskVariables TaskVars, ref EFFormFields FormFields, ref IInterfaceHandleResult HandleResult, object oContainer, IUIShadow UIShadow, ref string ApplicantInfo)
    {
        NPIGating_HISUIShadow lUIControls = (NPIGating_HISUIShadow)UIShadow;

        FormFields.SetOrAdd("txtFormNo".ToUpper(), lUIControls.txtFormNo.Text);
        FormFields.SetOrAdd("txtSite".ToUpper(), lUIControls.lblSite.Text);
        FormFields.SetOrAdd("txtBu".ToUpper(), lUIControls.lblBu.Text);
        FormFields.SetOrAdd("txtBuilding".ToUpper(), lUIControls.cmbPlant.SelectedItem.Text);
        base.PrepareEFFormFields(SubmitMethod, ProcessMethod, TaskVars, ref FormFields, ref HandleResult, oContainer, UIShadow, ref ApplicantInfo);
    }
    public string BeginFormFieldsValidation(IUIShadow UIShadow)
    {
        NPIGating_HISUIShadow lUIControls = (NPIGating_HISUIShadow)UIShadow;
        NPIMgmt       oMgmt     = new NPIMgmt(lUIControls.lblSite.Text, lUIControls.lblBu.Text);
        NPI_Standard  oStandard = oMgmt.InitialLeaveMgmt();
        StringBuilder sbErrMsg  = new StringBuilder();
        string        ErrMsg    = string.Empty;

        if (string.IsNullOrEmpty(lUIControls.txtCustomer.Text))
        {
            sbErrMsg.Append("Custmer不允许为空</br>");
        }
        if (string.IsNullOrEmpty(lUIControls.cmbPlant.SelectedItem.Text))
        {
            sbErrMsg.Append(" 廠別不允许为空</br>");
        }
        if (string.IsNullOrEmpty(lUIControls.cbProductType.SelectedItem.Text))
        {
            sbErrMsg.Append(" 產品類別不允许为空</br>");
        }
        if (string.IsNullOrEmpty(lUIControls.txtModel.Text))
        {
            sbErrMsg.Append("幾種名稱不允许为空</br>");
        }
        if (string.IsNullOrEmpty(lUIControls.cmbPhase.SelectedItem.Text))
        {
            sbErrMsg.Append("階段不允许为空</br>");
        }


        if (string.IsNullOrEmpty(lUIControls.txtPM.Text))
        {
            sbErrMsg.Append("PM不允许为空</br>");
        }
        if (string.IsNullOrEmpty(lUIControls.txtRD.Text))
        {
            sbErrMsg.Append("RD不允许为空</br>");
        }
        if (string.IsNullOrEmpty(lUIControls.txtSales.Text))
        {
            sbErrMsg.Append("Sales不允许为空</br>");
        }
        //if (lUIControls.txtPM.Text.Length > 0)
        //{

        //    ErrMsg= oStandard.GetGlobalUserInfo(lUIControls.txtPM.Text);
        //    if (ErrMsg.Length > 0)
        //    {
        //        sbErrMsg.Append(ErrMsg + "</br>");
        //    }
        //}
        //if (lUIControls.txtRD.Text.Length > 0)
        //{

        //     ErrMsg = oStandard.GetGlobalUserInfo(lUIControls.txtRD.Text);
        //    if (ErrMsg.Length > 0)
        //    {
        //        sbErrMsg.Append(ErrMsg);
        //    }
        //}
        //if (lUIControls.txtSales.Text.Length > 0)
        //{

        //     ErrMsg = oStandard.GetGlobalUserInfo(lUIControls.txtSales.Text);
        //    if (ErrMsg.Length > 0)
        //    {
        //        sbErrMsg.Append(ErrMsg);
        //    }
        //}

        string ErrMsgAttachment = GetAttachmentInfo();

        if (ErrMsgAttachment.Length > 0)
        {
            sbErrMsg.Append(ErrMsgAttachment);
        }

        return(sbErrMsg.ToString());
    }
    // Validate contols before submit
    public override bool EFFormFieldsValidation(SPMSubmitMethod SubmitMethod, SPMProcessMethod ProcessMethod, SPMTaskVariables SPMTaskVars, ref IInterfaceHandleResult HandleResult, object oContainer, IUIShadow UIShadow)
    {
        NPIGating_HISUIShadow lUIControls = (NPIGating_HISUIShadow)UIShadow;
        string ErrMsg = string.Empty;

        if (SubmitMethod == SPMSubmitMethod.CreateNewCase)
        {
            #region [ check list]

            //ErrMsg = BeginFormFieldsValidation(UIShadow);

            if (ErrMsg.Length > 0)
            {
                HandleResult.IsSuccess     = false;
                HandleResult.CustomMessage = ErrMsg;
                return(false);
            }
            ////依DOA获取待签关卡及签核人资讯
            if (HandleResult.IsSuccess)
            {
                NPIMgmt      oMgmt     = new NPIMgmt(lUIControls.lblSite.Text, lUIControls.lblBu.Text);
                NPI_Standard oStandard = oMgmt.InitialLeaveMgmt();

                Model_NPI_DOA_Parameter oModel_NPI_DOA_Parameter = new Model_NPI_DOA_Parameter();

                //oModel_NPI_DOA_Parameter._BU = "HIS";
                oModel_NPI_DOA_Parameter._BU       = lUIControls.lblBu.Text;
                oModel_NPI_DOA_Parameter._BUILDING = lUIControls.cmbPlant.SelectedItem.Text;
                oModel_NPI_DOA_Parameter._CASE_ID  = oPara.CaseId;
                oModel_NPI_DOA_Parameter._FORM_NO  = lUIControls.txtFormNo.Text;
                oModel_NPI_DOA_Parameter._PHASE    = lUIControls.cmbPhase.SelectedItem.Text;

                oModel_NPI_DOA_HandlerInfo = oStandard.GenerateStepAndHandler(oModel_NPI_DOA_Parameter);

                if (!oModel_NPI_DOA_HandlerInfo._RESULT)
                {
                    HandleResult.IsSuccess     = false;
                    HandleResult.CustomMessage = oModel_NPI_DOA_HandlerInfo._ERROR_MSG;
                }
            }
            #endregion
        }
        else
        {
            string stepName = (string)(SPMTaskVars.ReadDatum("STEPNAME"));
            if (SubmitMethod != SPMSubmitMethod.CreateNewCase)
            {
                HandleResult.IsSuccess = true;
            }
            if (stepName == "Begin" || stepName == "開始")
            {
                HandleResult.IsSuccess     = false;
                HandleResult.CustomMessage = "退簽單據不可重複送簽!";
            }
            else
            {
                if (!(lUIControls.rdResultY.Checked || lUIControls.rdResultN.Checked || lUIControls.rdReulutCondition.Checked))
                {
                    HandleResult.IsSuccess     = false;
                    HandleResult.CustomMessage = "請勾选签核結果!";
                }
            }
        }
        return(base.EFFormFieldsValidation(SubmitMethod, ProcessMethod, SPMTaskVars, ref HandleResult, oContainer, UIShadow));
    }
    public override void InitialDisableContainer(SPMTaskVariables SPMTaskVars, EFFormFields FormFields, ref object oContainer, IUIShadow UIShadow)
    {
        NPIGating_HISUIShadow lUIControls = (NPIGating_HISUIShadow)UIShadow;

        ShowFormDetail(FormFields, lUIControls, SPMTaskVars, "");
        DisableField(FormFields, lUIControls, SPMTaskVars, "");
        base.InitialDisableContainer(SPMTaskVars, FormFields, ref oContainer, UIShadow);
    }
 public NPIGating_HISLogics(object oContainer, IUIShadow UIShadow)
     : base(oContainer)
 {
     this.SetUIShadow(UIShadow);
 }
Ejemplo n.º 9
0
 public override void Print(int iTaskId, SPMTaskVariables SPMTaskVars, EFFormFields FormFields, object oContainer, IUIShadow UIShadow)
 {
     base.Print(iTaskId, SPMTaskVars, FormFields, oContainer, UIShadow);
 }
Ejemplo n.º 10
0
    // Fill SPM's EFFormFieldData
    public override void PrepareEFFormFields(SPMSubmitMethod SubmitMethod, SPMProcessMethod ProcessMethod, SPMTaskVariables TaskVars, ref EFFormFields FormFields, ref IInterfaceHandleResult HandleResult, object oContainer, IUIShadow UIShadow, ref string ApplicantInfo)
    {
        GDSExceptionHandlingUIShadow lUIControls = (GDSExceptionHandlingUIShadow)UIShadow;

        //基本資料
        FormFields.SetOrAdd("txtLogonID".ToUpper(), lUIControls.txtLogonID.Text);
        FormFields.SetOrAdd("txtName".ToUpper(), lUIControls.txtName.Text);
        FormFields.SetOrAdd("txtPlant".ToUpper(), lUIControls.txtPlant.Text);
        FormFields.SetOrAdd("txtDept".ToUpper(), lUIControls.txtDept.Text);
        FormFields.SetOrAdd("txtEMail".ToUpper(), lUIControls.txtEMail.Text);
        FormFields.SetOrAdd("txtExtNO".ToUpper(), lUIControls.txtExtNO.Text);

        FormFields.SetOrAdd("txtRDocNo".ToUpper(), lUIControls.txtRDocNo.Text);
        FormFields.SetOrAdd("txtDocNo".ToUpper(), lUIControls.txtDocNo.Text);
        FormFields.SetOrAdd("txtCostCenter".ToUpper(), lUIControls.txtCostCenter.Text);
        FormFields.SetOrAdd("txtDepartment".ToUpper(), lUIControls.txtDepartment.Text);
        FormFields.SetOrAdd("txtApplication".ToUpper(), lUIControls.txtApplication.Text);
        FormFields.SetOrAdd("txtMaterial".ToUpper(), lUIControls.txtMaterial.Text);
        FormFields.SetOrAdd("txtReturnQuantity".ToUpper(), lUIControls.txtReturnQuantity.Text);
        FormFields.SetOrAdd("txtReason".ToUpper(), lUIControls.txtReason.Text);
        FormFields.SetOrAdd("txtRemark".ToUpper(), lUIControls.txtRemark.Text);
        FormFields.SetOrAdd("txtReturn".ToUpper(), lUIControls.txtReturn.Text);
        FormFields.SetOrAdd("txtIADocNo".ToUpper(), lUIControls.txtIADocNo.Text);
        FormFields.SetOrAdd("txtI6DocNo".ToUpper(), lUIControls.txtI6DocNo.Text);
        FormFields.SetOrAdd("txtZEILE".ToUpper(), lUIControls.txtZEILE.Text);
        FormFields.SetOrAdd("txtAmount".ToUpper(), lUIControls.txtAmount.Text);


        //SOURCE DATA
        FormFields.SetOrAdd("txtHead".ToUpper(), lUIControls.txtHead.Text);
        FormFields.SetOrAdd("txtDetail".ToUpper(), lUIControls.txtDetail.Text);
        FormFields.SetOrAdd("txtDOA".ToUpper(), lUIControls.txtDOA.Text);
        FormFields.SetOrAdd("txtWERKS".ToUpper(), lUIControls.txtWERKS.Text);
        FormFields.SetOrAdd("txtAPTYP".ToUpper(), lUIControls.txtAPTYP.Text);


        base.PrepareEFFormFields(SubmitMethod, ProcessMethod, TaskVars, ref FormFields, ref HandleResult, oContainer, UIShadow, ref ApplicantInfo);
    }
Ejemplo n.º 11
0
    // Validate contols before submit
    public override bool EFFormFieldsValidation(SPMSubmitMethod SubmitMethod, SPMProcessMethod ProcessMethod, SPMTaskVariables SPMTaskVars, ref IInterfaceHandleResult HandleResult, object oContainer, IUIShadow UIShadow)
    {
        GDSExceptionHandlingUIShadow lUIControls = (GDSExceptionHandlingUIShadow)UIShadow;
        GDS_Helper    oStandard = new GDS_Helper();
        StringBuilder ErrMsg    = new StringBuilder();


        string stepName = (string)(SPMTaskVars.ReadDatum("STEPNAME"));
        string curDOA   = lUIControls.txtDOA.Text;
        string plant    = lUIControls.txtWERKS.Text;
        string apType   = lUIControls.txtAPTYP.Text;

        DOA    spmDOA     = new DOA();
        string sApplicant = lUIControls.txtApplication.Text.Trim();
        //獲取 表頭及表身DATA
        string    formDetail = lUIControls.txtDetail.Text.Trim().Replace("&lt1;", "<").Replace("&gt1;", ">");
        string    formHead   = lUIControls.txtHead.Text.Trim().Replace("&lt1;", "<").Replace("&gt1;", ">");
        DataTable dtHead     = LiteOn.GDS.Utility.Tools.BuildHeadTable();

        System.IO.StringReader reader = new System.IO.StringReader(formHead);
        dtHead.ReadXml(reader);
        System.IO.StringReader reader2 = new System.IO.StringReader(formDetail);
        DataTable dtDetail             = LiteOn.GDS.Utility.Tools.BuildDetailTable();

        dtDetail.ReadXml(reader2);
        if (SubmitMethod == SPMSubmitMethod.CreateNewCase)
        {
            #region 欄位的非空驗證

            #endregion

            #region Check單據是否已經過帳
            string I1DocNo = oUIControls.txtRDocNo.Text;
            string IADocNo = oUIControls.txtIADocNo.Text;
            string I6DocNo = oUIControls.txtI6DocNo.Text;
            string WERKS   = oUIControls.txtWERKS.Text;
            //Check此I1單(領料單)和關聯的IA,I6單(退料單)是否都已經過賬 (Call SAP BAPI Z_BAPI_GDS_SEND MBLNR不為空則表示已經過賬)
            if (!oStandard.CheckFormNoIsPass(I1DocNo, IADocNo, I6DocNo, WERKS))
            {
                HandleResult.IsSuccess     = false;
                HandleResult.CustomMessage = "I1(領料單)或者IA,I6(退料單)存在未過賬的單子!";
            }
            #endregion
        }
        else
        {
            //only  approve action check controls
            if (SubmitMethod == SPMSubmitMethod.HandleCase_Approve)
            {
                int    caseId    = int.Parse((string)(SPMTaskVars.ReadDatum("CASEID")));
                string curStepId = SPMAppLine.GetCurrentStep(curDOA);
                //調用FUNCTION作FormFieldsValidation
                string errMsg = DOA.FieldsValidationByStepId(plant, apType, curStepId, caseId);
                if (errMsg.Length > 0)
                {
                    HandleResult.IsSuccess     = false;
                    HandleResult.CustomMessage = errMsg;
                }
                else
                {
                    try
                    {
                        //CALL FUNCTION獲取下關簽核人
                        DOAHandler = spmDOA.GetStepHandler(sApplicant, curDOA, dtHead, dtDetail, false);
                        oStandard.UpdateSettingxml(oUIControls.txtDocNo.Text, DOAHandler._sDOA.ToString());
                    }
                    catch (Exception ex)
                    {
                        HandleResult.IsSuccess     = false;
                        HandleResult.CustomMessage = ex.Message;
                    }
                }

                if (ErrMsg.ToString().Length > 0)
                {
                    HandleResult.IsSuccess     = false;
                    HandleResult.CustomMessage = ErrMsg.ToString();
                }

                //簽核人防呆檢查
                if (DOAHandler._sEndFlag == "N" && DOAHandler._sHandler.Length == 0)
                {
                    HandleResult.IsSuccess     = false;
                    HandleResult.CustomMessage = "Can't find next step handler, pls contact sys administrator";
                }
                string sCurLogonID  = (string)(SPMTaskVars.ReadDatum("SYS_LOGONID"));
                string sCurRoleCode = SPMAppLine.GetCurrentApprover(curDOA).Replace("{", "").Replace("}", "");

                //簽核人重復簽核防呆
                if (DOAHandler._sEndFlag == "N" && DOAHandler._sRoleCode == sCurRoleCode && DOAHandler._sHandler.ToUpper() == sCurLogonID.ToUpper())
                {
                    HandleResult.IsSuccess     = false;
                    HandleResult.CustomMessage = "Server or network is busy now, pls try again";
                }
            }
        }
        return(base.EFFormFieldsValidation(SubmitMethod, ProcessMethod, SPMTaskVars, ref HandleResult, oContainer, UIShadow));
    }
Ejemplo n.º 12
0
    // Code for 'Notice' and 'Log'. Disable all contols.
    public override void InitialDisableContainer(SPMTaskVariables SPMTaskVars, EFFormFields FormFields, ref object oContainer, IUIShadow UIShadow)
    {
        int caseID = int.Parse((string)(SPMTaskVars.ReadDatum("CASEID")));
        GDSExceptionHandlingUIShadow lUIControls = (GDSExceptionHandlingUIShadow)UIShadow;

        ShowRecord(lUIControls, FormFields, "Log", caseID, SPMTaskVars);
        base.InitialDisableContainer(SPMTaskVars, FormFields, ref oContainer, UIShadow);
    }
Ejemplo n.º 13
0
    // Code for 'draft' and 'pending for process'
    public override void InitialContainer(SPMTaskVariables SPMTaskVars, EFFormFields FormFields, ref object oContainer, IUIShadow UIShadow)
    {
        GDSExceptionHandlingUIShadow lUIControls = (GDSExceptionHandlingUIShadow)UIShadow;

        int    caseID   = int.Parse((string)(SPMTaskVars.ReadDatum("CASEID")));
        string stepName = SPMTaskVars.ReadDatum("STEPNAME").ToString();

        ShowRecord(lUIControls, FormFields, "Process", caseID, SPMTaskVars);
        base.InitialContainer(SPMTaskVars, FormFields, ref oContainer, UIShadow);
    }
Ejemplo n.º 14
0
 public GDSExceptionHandlingLogics(object oContainer, IUIShadow UIShadow)
     : base(oContainer)
 {
     this.SetUIShadow(UIShadow);
 }