Beispiel #1
0
        protected override bool ExecMacDoorCommand(byte flag, TMJDoorInfo doorInfo, ref string MacMsg)
        {
            bool   ret     = base.ExecMacDoorCommand(flag, doorInfo, ref MacMsg);
            bool   IsError = false;
            int    Index   = 0;
            UInt32 cardNo1 = 0;
            UInt32 cardNo2 = 0;

            switch (flag)
            {
            case 0:
                AccessV2API.TYPE_MulitCardDat cardInfo = new AccessV2API.TYPE_MulitCardDat();
                cardInfo.GroupA = new UInt32[50];
                cardInfo.GroupB = new UInt32[50];
                cardInfo.GroupC = new UInt32[50];
                cardInfo.GroupD = new UInt32[50];
                cardInfo.GroupE = new UInt32[50];
                cardInfo.GroupF = new UInt32[50];
                cardInfo.GroupG = new UInt32[50];
                cardInfo.GroupH = new UInt32[50];
                cardInfo.GroupI = new UInt32[50];
                cardInfo.GroupJ = new UInt32[50];
                AccessV2API.TYPE_MulitCardMap CardMap = new AccessV2API.TYPE_MulitCardMap();
                CardMap.ProgramA = new UInt32[10];
                CardMap.ProgramB = new UInt32[10];
                CardMap.ProgramC = new UInt32[10];
                CardMap.ProgramD = new UInt32[10];
                if (doorInfo.ExtField[0] == "Y")
                {
                    TMacMoreCardNew card = new TMacMoreCardNew(doorInfo.ExtField[1]);
                    for (int i = 0; i < 10; i++)
                    {
                        if (card.EmpList[i] != "")
                        {
                            DataTableReader dr = null;
                            try
                            {
                                string sql = "";
                                if (SystemInfo.HasFaCard)
                                {
                                    sql = Pub.GetSQL(DBCode.DB_003001, new string[] { "108", card.EmpList[i] });
                                }
                                else
                                {
                                    sql = Pub.GetSQL(DBCode.DB_003001, new string[] { "301", card.EmpList[i] });
                                }
                                dr    = db.GetDataReader(sql);
                                Index = 0;
                                while (dr.Read())
                                {
                                    UInt32.TryParse(dr["CardPhysicsNo10"].ToString(), out cardNo1);
                                    UInt32.TryParse(dr["OtherCardNo"].ToString(), out cardNo2);
                                    switch (i)
                                    {
                                    case 0:
                                        cardInfo.GroupA[Index] = SystemInfo.AdvUseOtherCard && cardNo2 > 0 ? cardNo2 : cardNo1;
                                        break;

                                    case 1:
                                        cardInfo.GroupB[Index] = SystemInfo.AdvUseOtherCard && cardNo2 > 0 ? cardNo2 : cardNo1;
                                        break;

                                    case 2:
                                        cardInfo.GroupC[Index] = SystemInfo.AdvUseOtherCard && cardNo2 > 0 ? cardNo2 : cardNo1;
                                        break;

                                    case 3:
                                        cardInfo.GroupD[Index] = SystemInfo.AdvUseOtherCard && cardNo2 > 0 ? cardNo2 : cardNo1;
                                        break;

                                    case 4:
                                        cardInfo.GroupE[Index] = SystemInfo.AdvUseOtherCard && cardNo2 > 0 ? cardNo2 : cardNo1;
                                        break;

                                    case 5:
                                        cardInfo.GroupF[Index] = SystemInfo.AdvUseOtherCard && cardNo2 > 0 ? cardNo2 : cardNo1;
                                        break;

                                    case 6:
                                        cardInfo.GroupG[Index] = SystemInfo.AdvUseOtherCard && cardNo2 > 0 ? cardNo2 : cardNo1;
                                        break;

                                    case 7:
                                        cardInfo.GroupH[Index] = SystemInfo.AdvUseOtherCard && cardNo2 > 0 ? cardNo2 : cardNo1;
                                        break;

                                    case 8:
                                        cardInfo.GroupI[Index] = SystemInfo.AdvUseOtherCard && cardNo2 > 0 ? cardNo2 : cardNo1;
                                        break;

                                    case 9:
                                        cardInfo.GroupJ[Index] = SystemInfo.AdvUseOtherCard && cardNo2 > 0 ? cardNo2 : cardNo1;
                                        break;
                                    }
                                    Index += 1;
                                }
                            }
                            catch (Exception E)
                            {
                                IsError = true;
                                Pub.ShowErrorMsg(E);
                            }
                            finally
                            {
                                if (dr != null)
                                {
                                    dr.Close();
                                }
                                dr = null;
                            }
                        }
                    }
                    switch (doorInfo.DoorID)
                    {
                    case 1:
                        for (int i = 0; i < 10; i++)
                        {
                            CardMap.ProgramA[i] = (UInt32)card.CountList[i];
                        }
                        break;

                    case 2:
                        for (int i = 0; i < 10; i++)
                        {
                            CardMap.ProgramB[i] = (UInt32)card.CountList[i];
                        }
                        break;

                    case 3:
                        for (int i = 0; i < 10; i++)
                        {
                            CardMap.ProgramC[i] = (UInt32)card.CountList[i];
                        }
                        break;

                    case 4:
                        for (int i = 0; i < 10; i++)
                        {
                            CardMap.ProgramD[i] = (UInt32)card.CountList[i];
                        }
                        break;
                    }
                }
                if (!IsError)
                {
                    ret = DeviceObject.objMJNew.SetMultiCardDat(doorInfo.DoorID, cardInfo);
                    if (ret)
                    {
                        ret = DeviceObject.objMJNew.SetMultiCardMap(CardMap);
                    }
                    if (ret)
                    {
                        AccessV2API.TYPE_DoorBasic  basic  = new AccessV2API.TYPE_DoorBasic();
                        AccessV2API.TYPE_DoorExpert expert = new AccessV2API.TYPE_DoorExpert();
                        ret = DeviceObject.objMJNew.ReadDoorInfo(doorInfo.DoorID, ref basic, ref expert);
                        if (ret)
                        {
                            if (doorInfo.ExtField[0] == "Y")
                            {
                                expert.EnableMulitCard = 1;
                            }
                            else
                            {
                                expert.EnableMulitCard = 0;
                            }

                            ret = DeviceObject.objMJNew.SetDoorExpertInfo(doorInfo.DoorID, expert);
                        }
                    }
                }
                break;
            }
            return(ret);
        }
        private void LoadData()
        {
            string          IsMoreCard  = "";
            string          MacMoreCard = "";
            DataTableReader dr          = null;

            try
            {
                if (!db.IsOpen)
                {
                    db.Open(SystemInfo.ConnStr);
                }
                dr = db.GetDataReader(Pub.GetSQL(DBCode.DB_003001, new string[] { "102", SysID }));
                if (dr.Read())
                {
                    IsMoreCard  = dr["IsMoreCard"].ToString();
                    MacMoreCard = dr["MacMoreCard"].ToString();
                }
                dr.Close();
                TMacMoreCardNew card = new TMacMoreCardNew(MacMoreCard);
                for (int i = 0; i < 10; i++)
                {
                    if (card.EmpList[i] != "")
                    {
                        string sql = "";
                        if (SystemInfo.HasFaCard)
                        {
                            sql = Pub.GetSQL(DBCode.DB_003001, new string[] { "108", card.EmpList[i] });
                        }
                        else
                        {
                            sql = Pub.GetSQL(DBCode.DB_003001, new string[] { "301", card.EmpList[i] });
                        }
                        dr = db.GetDataReader(sql);
                        while (dr.Read())
                        {
                            switch (i)
                            {
                            case 0:
                                QuickSearchNormalCardByEmpSysID(dr["EmpSysID"].ToString(), cardGrid0, MaxCard);
                                break;

                            case 1:
                                QuickSearchNormalCardByEmpSysID(dr["EmpSysID"].ToString(), cardGrid1, MaxCard);
                                break;

                            case 2:
                                QuickSearchNormalCardByEmpSysID(dr["EmpSysID"].ToString(), cardGrid2, MaxCard);
                                break;

                            case 3:
                                QuickSearchNormalCardByEmpSysID(dr["EmpSysID"].ToString(), cardGrid3, MaxCard);
                                break;

                            case 4:
                                QuickSearchNormalCardByEmpSysID(dr["EmpSysID"].ToString(), cardGrid4, MaxCard);
                                break;

                            case 5:
                                QuickSearchNormalCardByEmpSysID(dr["EmpSysID"].ToString(), cardGrid5, MaxCard);
                                break;

                            case 6:
                                QuickSearchNormalCardByEmpSysID(dr["EmpSysID"].ToString(), cardGrid6, MaxCard);
                                break;

                            case 7:
                                QuickSearchNormalCardByEmpSysID(dr["EmpSysID"].ToString(), cardGrid7, MaxCard);
                                break;

                            case 8:
                                QuickSearchNormalCardByEmpSysID(dr["EmpSysID"].ToString(), cardGrid8, MaxCard);
                                break;

                            case 9:
                                QuickSearchNormalCardByEmpSysID(dr["EmpSysID"].ToString(), cardGrid9, MaxCard);
                                break;
                            }
                        }
                    }
                    dataGrid[1, i].Value = card.CountList[i];
                }
            }
            catch (Exception E)
            {
                Pub.ShowErrorMsg(E);
            }
            finally
            {
                if (dr != null)
                {
                    dr.Close();
                }
                dr = null;
            }
            chkEnabled.Checked = IsMoreCard.ToUpper() == "Y";
            chkEnabled_CheckedChanged(null, null);
        }