Example #1
0
 /// <summary>
 /// 進行功過相抵作業
 /// </summary>
 public void RunOffsetAtoB()
 {
     if (獎勵 > 懲戒)
     {
         //餘獎勵
         int   獎懲功過相抵和 = 獎勵 - 懲戒;
         Crett ccc     = cha(MeritAtoB, MeritBtoC, 獎懲功過相抵和);
         歷年功過相抵大功 = ccc.歷年功過相抵A;
         歷年功過相抵小功 = ccc.歷年功過相抵B;
         歷年功過相抵嘉獎 = ccc.歷年功過相抵C;
     }
     else if (獎勵 < 懲戒)
     {
         //餘懲戒
         int   獎懲功過相抵和 = 懲戒 - 獎勵;
         Crett ccc     = cha(DemeritAtoB, DemeritBtoC, 獎懲功過相抵和);
         歷年功過相抵大過 = ccc.歷年功過相抵A;
         歷年功過相抵小過 = ccc.歷年功過相抵B;
         歷年功過相抵警告 = ccc.歷年功過相抵C;
     }
     else
     {
         //相抵後為0
     }
 }
Example #2
0
        public Crett cha(int ab, int bc, int 總和)
        {
            Crett ccc = new Crett();
            int   比值A = ab * bc;
            int   比值B = ab;

            ccc.歷年功過相抵A = 總和 / 比值A;

            //餘數是否大於0
            //大於0則是嘉獎資料
            if (總和 % 比值A > 0)
            {
                //
                int d = 總和 % 比值A;
                if (d >= 比值B)
                {
                    ccc.歷年功過相抵B = d / 比值B;
                    ccc.歷年功過相抵C = d % 比值B;
                }
                else
                {
                    ccc.歷年功過相抵C = d;
                }
            }
            return(ccc);
        }
Example #3
0
        /// <summary>
        /// 進行功過換算作業
        /// </summary>
        public void RunOffset()
        {
            foreach (MeritRecord meric in MeritList)
            {
                int 大功換算 = 0;
                int 小功換算 = 0;
                int 獎換算  = meric.MeritC.HasValue ? meric.MeritC.Value : 0;
                if (meric.MeritA.HasValue && meric.MeritA.Value != 0)
                {
                    大功換算 = meric.MeritA.Value * DemeritAtoB * DemeritBtoC;
                }

                if (meric.MeritB.HasValue && meric.MeritB.Value != 0)
                {
                    小功換算 = meric.MeritB.Value * DemeritBtoC;
                }

                獎勵 += 獎換算 + 小功換算 + 大功換算;
            }

            foreach (DemeritRecord demeric in DemeritList)
            {
                //資料必須為未銷過
                if (demeric.Cleared == "")
                {
                    int 大過換算 = 0;
                    int 小過換算 = 0;
                    int 警告換算 = demeric.DemeritC.HasValue ? demeric.DemeritC.Value : 0;

                    if (demeric.DemeritA.HasValue && demeric.DemeritA.Value != 0)
                    {
                        大過換算 = demeric.DemeritA.Value * DemeritAtoB * DemeritBtoC;
                    }

                    if (demeric.DemeritB.HasValue && demeric.DemeritB.Value != 0)
                    {
                        小過換算 = demeric.DemeritB.Value * DemeritBtoC;
                    }

                    懲戒 += 警告換算 + 小過換算 + 大過換算;
                }
            }

            if (MeritList.Count > 0)
            {
                Crett ccc = cha(MeritAtoB, MeritBtoC, 獎勵);
                歷年功過換算大功 = ccc.歷年功過相抵A;
                歷年功過換算小功 = ccc.歷年功過相抵B;
                歷年功過換算嘉獎 = ccc.歷年功過相抵C;
            }

            if (DemeritList.Count > 0)
            {
                Crett ccc = cha(MeritAtoB, MeritBtoC, 懲戒);
                歷年功過換算大過 = ccc.歷年功過相抵A;
                歷年功過換算小過 = ccc.歷年功過相抵B;
                歷年功過換算警告 = ccc.歷年功過相抵C;
            }
        }