Exemplo n.º 1
0
    protected void btnLink_Click(object sender, DirectEventArgs e)
    {
        DataTable dtHead   = oStandard.GetdtHead(txtRDocNo.Text.Trim());
        DataTable dtDetail = oStandard.GetdtDetail(txtRDocNo.Text.Trim());

        if (dtHead.Rows.Count > 0) //Check是否符合應退未退的條件
        {
            DataRow drHead = dtHead.Rows[0];
            if (drHead["APTYP"].ToString() == "I1")
            {
                if (drHead["RTNIF"].ToString() == "Y")//符合條件時,加載基本資料
                {
                    txtDocNo.Text       = oStandard.CreateFormNo(txtRDocNo.Text.Trim());
                    txtCostCenter.Text  = drHead["KOSTL"].ToString(); //成本中心
                    txtDepartment.Text  = drHead["ABTEI"].ToString(); //部門
                    txtApplication.Text = drHead["ERNAM"].ToString(); //LoginID
                    txtReturn.Text      = drHead["RTNIF"].ToString(); // Return Flag
                    txtWERKS.Text       = drHead["WERKS"].ToString();
                    txtAPTYP.Text       = drHead["APTYP"].ToString();

                    string xmlstrHead = oStandard.DataTableToXMLStr(dtHead);
                    txtHead.Text = xmlstrHead;                                               //Head
                    string xmlstrDetail = oStandard.DataTableToXMLStr(dtDetail);
                    txtDetail.Text = xmlstrDetail;                                           //Detail

                    string        tempWEKS = DOA.GetXMLConfigName(dtHead);                   //CALL FUNCTION獲取XML配置檔名
                    SettingParser x        = new SettingParser(tempWEKS, txtAPTYP.Text);     //讀取XML配置檔信息
                    txtDOA.Text = x.ApproveXML.Replace("&lt1;", "<").Replace("&gt1;", ">");; //抓取DOA的簽核邏輯

                    //計算總金額
                    double amount = 0;
                    foreach (DataRow dr in dtDetail.Rows)
                    {
                        amount += double.Parse(dr["STPRS"].ToString());
                    }
                    txtAmount.Text = amount.ToString("n");
                }
                else
                {
                    Alert("此單號不符合應退未退的條件!");
                    Refresh();
                    return;
                }
            }
            else
            {
                Alert("Link單號必須是I1單!");
                Refresh();
                return;
            }
        }
        else
        {
            Alert("此單號不存在!");
            Refresh();
            return;
        }
    }
Exemplo n.º 2
0
    private void Awake()
    {
        //time interval of each frame before snake is moved
        gridPosition     = new Vector2Int(10, 10);
        gridmoveTimerMax = .3f;
        gridmoveTimer    = gridmoveTimerMax;
        //starts of facing right
        movedirection = DIRECTION.right;

        //list of where the snake has been
        snakepositionlist = new List <singleGridPos>();
        snakebodysize     = 0;
        //list of the snakes bodies that will grow
        tranformsnakebody = new List <SnakeBodyPart>();
        doa = DOA.Alive;
    }
Exemplo n.º 3
0
    private void Update()
    {
        if (doa == DOA.Alive)
        {
            Inputs();
            gridmoveTimer += Time.deltaTime;
            if (gridmoveTimer >= gridmoveTimerMax)
            {
                //reset timer
                gridmoveTimer = gridmoveTimer - gridmoveTimerMax;

                //update snake position
                singleGridPos previousSnakeMove = null;
                if (snakepositionlist.Count > 0)
                {
                    previousSnakeMove = snakepositionlist[0];
                }
                singleGridPos snakeMovePosition = new singleGridPos(previousSnakeMove, gridPosition, movedirection);
                snakepositionlist.Insert(0, snakeMovePosition);

                Vector2Int gridMoveDirectionVector;
                //move the snake one spot forward from where it was
                switch (movedirection)
                {
                default:
                case DIRECTION.right: gridMoveDirectionVector = new Vector2Int(+1, 0); break;

                case DIRECTION.left: gridMoveDirectionVector = new Vector2Int(-1, 0); break;

                case DIRECTION.up: gridMoveDirectionVector = new Vector2Int(0, +1); break;

                case DIRECTION.down: gridMoveDirectionVector = new Vector2Int(0, -1); break;
                }

                gridPosition = gridPosition + gridMoveDirectionVector;

                gridPosition = levelGrid.validGridPos(gridPosition);
                //grow the snake after eating
                bool snakehaseaten = levelGrid.SnakeMoves(gridPosition);
                if (snakehaseaten)
                {
                    snakebodysize++;
                    CreateSnakeBodyPart();
                }

                if (snakepositionlist.Count >= snakebodysize + 1)
                {
                    snakepositionlist.RemoveAt(snakepositionlist.Count - 1);
                }

                UpdateSnakeBodyParts();

                //Death scenario if snake eats snake
                foreach (SnakeBodyPart snakebodypart in tranformsnakebody)
                {
                    Vector2Int snakebodypartgridpos = snakebodypart.GetGridPosition();
                    if (gridPosition == snakebodypartgridpos)
                    {
                        doa = DOA.Dead;
                        gamehandler.Snakedeath();
                    }
                }

                transform.position    = new Vector3(gridPosition.x, gridPosition.y);
                transform.eulerAngles = new Vector3(0, 0, GetAngleFunction(gridMoveDirectionVector) - 90);
            }
        }
    }
Exemplo n.º 4
0
    // Fill SPM Variable
    public override void PrepareSPMVariables(SPMSubmitMethod SubmitMethod, SPMProcessMethod ProcessMethod, SPMTaskVariables SPMTaskVars, ref SPMVariables Variables, ref SPMRoutingVariable RoutingVariable, ref string strSPMUid, string strMemo, string strNotesForNextApprover, EFFormFields FormFields, ref IInterfaceHandleResult HandleResult, ref string SuccessMessage)
    {
        if (SubmitMethod == SPMSubmitMethod.CreateNewCase)
        {
            GDS_Helper    oStandard = new GDS_Helper();
            StringBuilder ErrMsg    = new StringBuilder();


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


            DOA    spmDOA     = new DOA();
            string sApplicant = oUIControls.txtApplication.Text.Trim();
            //獲取 表頭及表身DATA
            string    formDetail          = oUIControls.txtDetail.Text.Trim().Replace("&lt1;", "<").Replace("&gt1;", ">");
            string    formHead            = oUIControls.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);
            try
            {
                //抓取第一關簽核人
                DOAHandler = spmDOA.GetStepHandler(sApplicant, curDOA, dtHead, dtDetail, true);
                Variables.Add(SPMVariableKey.Subject, "[部門領料_應退未退---測試] [" + FormFields["txtDocNo".ToUpper()] + "]");
                RoutingVariable = new SPMRoutingVariable(SPMRoutingVariableKey.spm_Jump, "DOA(" + DOAHandler._sHandler + ")");
            }
            catch (Exception ex)
            {
                HandleResult.IsSuccess     = false;
                HandleResult.CustomMessage = ex.Message;
            }
        }
        else
        {
            try
            {
                if (DOAHandler._sEndFlag == "N")
                {
                    //簽核人防呆檢查
                    if (DOAHandler._sHandler.Length == 0)
                    {
                        HandleResult.IsSuccess     = false;
                        HandleResult.CustomMessage = "Operation fail(server or network is busy now), pls refresh this page and try again";
                    }
                    else
                    {
                        RoutingVariable = new SPMRoutingVariable(SPMRoutingVariableKey.spm_Jump, "DOA(" + DOAHandler._sHandler + ")");
                        // 20121105 Add QX NA
                        if (DOAHandler._cc.Length > 0)
                        {
                            Variables.Add(SPMVariableKey.NextCC, DOAHandler._cc);
                        }
                        // 20121105 End QX NA
                    }
                }
                else
                {
                    RoutingVariable = new SPMRoutingVariable(SPMRoutingVariableKey.spm_Jump, "End");
                }

                // DBIO.RecordTraceLog("D", "OK", DOAHandler);
            }
            catch (Exception)
            {
                DBIO.RecordTraceLog("D", "NG", DOAHandler);
                throw;
            }
        }

        base.PrepareSPMVariables(SubmitMethod, ProcessMethod, SPMTaskVars, ref Variables, ref RoutingVariable, ref strSPMUid, strMemo, strNotesForNextApprover, FormFields, ref HandleResult, ref SuccessMessage);
    }
Exemplo n.º 5
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));
    }