Пример #1
0
        private void Fill()
        {
            string strSql = "SELECT a.*, b.NoAgent, b.NoCustomer, b.NoUnit, b.CaraBayar"
                + " FROM MS_KOMISI a"
                + " INNER JOIN MS_KONTRAK b ON a.NoKontrak = b.NoKontrak"
                + " WHERE a.NoKontrak = '" + NoKontrak + "'"
                + " AND a.NoAgent = " + NoAgent
                ;
            DataTable rs = Db.Rs(strSql);

            if (rs.Rows.Count == 0)
                Response.Redirect("/CustomError/Deleted.html");
            else
            {
                lblNoKontrak.Text = rs.Rows[0]["NoKontrak"].ToString();
                lblAgent.Text = Db.SingleString("SELECT Nama FROM MS_AGENT WHERE NoAgent = " + Cf.Pk(rs.Rows[0]["NoAgent"]));
                lblPrincipal.Text = Db.SingleString("SELECT Principal FROM MS_AGENT WHERE NoAgent = " + Cf.Pk(rs.Rows[0]["NoAgent"]));
                lblCustomer.Text = Db.SingleString("SELECT Nama FROM MS_CUSTOMER WHERE NoCustomer = " + Cf.Pk(rs.Rows[0]["NoCustomer"]));
                lblUnit.Text = rs.Rows[0]["NoUnit"].ToString();

                if (cbStatus.Checked)
                {
                    //tbNota.Text = rs.Rows[0]["NoNota"].ToString().PadLeft(7, '0');
                    tbTglBayar.Text = Cf.Day(rs.Rows[0]["TglBayar"]);
                    tbNilai.Text = Cf.Num(rs.Rows[0]["NilaiBayar"]);
                    //acc.Items.Add(new ListItem("Tidak berubah: " + rs.Rows[0]["AccKomisi"], rs.Rows[0]["AccKomisi"].ToString()));
                   // acc.SelectedIndex = acc.Items.Count - 1;
                }
                else
                {
                    int NoNota = Db.SingleInteger("SELECT ISNULL(MAX(NoNota), 0) FROM MS_KOMISI");
                    NoNota += 1;
                    //tbNota.Text = NoNota.ToString().PadLeft(7, '0');
                    tbTglBayar.Text = Cf.Day(DateTime.Now);
                    //tbNilai.Text = Cf.Num(rs.Rows[0]["NilaiKomisi"]);
                    decimal nilaiKomisi = Convert.ToDecimal(rs.Rows[0]["NilaiKomisi"]);
                    decimal closingFee = Convert.ToDecimal(rs.Rows[0]["ClosingFee"]);
                    komisi40 = Convert.ToDecimal(rs.Rows[0]["Komisi40"]);
                    komisi60 = Convert.ToDecimal(rs.Rows[0]["Komisi60"]);
                    sisaKomisi = Convert.ToDecimal(rs.Rows[0]["SisaKomisi"]);
                    for (int i = 0; i < rs.Rows.Count; i++)
                    {
                        btnid = BtnID.Substring(0, 6);
                        if (btnid == "CAIR40")
                        {
                            if (Convert.ToDecimal(rs.Rows[i]["NilaiBayarKomisi40"]) == 0)
                            {
                                tbNilai.Text = Cf.Num(komisi40);
                            }
                            else
                            {
                                decimal nilaiCair = Convert.ToDecimal(rs.Rows[i]["Komisi40"]) - Convert.ToDecimal(rs.Rows[i]["NilaiBayarKomisi40"]);
                                tbNilai.Text = Cf.Num(nilaiCair);
                            }
                        }
                        else if (btnid == "CAIR60")
                        {
                            if (Convert.ToDecimal(rs.Rows[i]["NilaiBayarKomisi60"]) == 0)
                            {
                                tbNilai.Text = Cf.Num(komisi60);
                            }
                            else
                            {
                                decimal nilaiCair = Convert.ToDecimal(rs.Rows[i]["Komisi60"]) - Convert.ToDecimal(rs.Rows[i]["NilaiBayarKomisi60"]);
                                tbNilai.Text = Cf.Num(nilaiCair);
                            }
                        }
                        else if (btnid == "CAIRCF")
                        {
                            if (Convert.ToDecimal(rs.Rows[i]["NilaiBayarCF"]) == 0)
                            {
                                tbNilai.Text = Cf.Num(closingFee);
                            }
                            else
                            {
                                decimal nilaiCair = Convert.ToDecimal(rs.Rows[i]["ClosingFee"]) - Convert.ToDecimal(rs.Rows[i]["NilaiBayarCF"]);
                                tbNilai.Text = Cf.Num(nilaiCair);
                            }
                        }
                        else
                        {
                            if (Convert.ToDecimal(rs.Rows[i]["NilaiBayarSisaKomisi"]) == 0)
                            {
                                tbNilai.Text = Cf.Num(sisaKomisi);
                            }
                            else
                            {
                                decimal nilaiCair = Convert.ToDecimal(rs.Rows[i]["SisaKomisi"]) - Convert.ToDecimal(rs.Rows[i]["NilaiBayarSisaKomisi"]);
                                tbNilai.Text = Cf.Num(nilaiCair);
                            }
                        }
                    }
                    
                }

                tbNilai.Attributes["onfocus"] = "tempnum=CalcFocus(this);";
                tbNilai.Attributes["onkeyup"] = "CalcType(this,tempnum);";
                tbNilai.Attributes["onblur"] = "CalcBlur(this);";

                if (Convert.ToBoolean(rs.Rows[0]["FOBOKomisi"]))
                    btnOK.Enabled = false;
            }
        }
Пример #2
0
        //private void cekNilai()
        //{
            
        //}

        //private bool isDuplikat()
        //{
        //    bool x = false;
        //    string s = "";

        //    int intNoNota = Db.SingleInteger("SELECT NoNota FROM MS_KOMISI WHERE NoKontrak = '" + NoKontrak + "' AND NoAgent = " + NoAgent);
            //if (cbStatus.Checked && (Convert.ToInt32(tbNota.Text) != intNoNota))
            //{
            //    if (Db.SingleInteger("SELECT COUNT(*) FROM MS_KOMISI WHERE NoNota = " + Convert.ToInt32(tbNota.Text)) > 0)
            //    {
            //        x = true;

            //        if (s == "")
            //            s = tbNota.ID;

            //        lblNotac.Text = "Duplikat";
            //    }
            //    else
            //        lblNotac.Text = "";
            //}
            //else if (!cbStatus.Checked)
            //{
            //    if (Db.SingleInteger("SELECT COUNT(*) FROM MS_KOMISI WHERE NoNota = " + Convert.ToInt32(tbNota.Text)) > 0)
            //    {
            //        x = true;

            //        if (s == "")
            //            s = tbNota.ID;

            //        lblNotac.Text = "Duplikat";
            //    }
            //    else
            //        lblNotac.Text = "";
            //}

        //    if (x)
        //    {
        //        this.RegisterStartupScript(
        //            "focusScript2"
        //            , "<script language='javascript' type='text/javascript'>"
        //            + "document.getElementById('" + s + "').focus();"
        //            + "</script>"
        //            );
        //    }

        //    return x;
        //}

        private void Save()
        {

            DataTable rs = Db.Rs("SELECT "
            + " NoKontrak AS [No. Kontrak]"
            + ", NoUrut AS [No. Urut]"
            + ", Tipe"
            + ", NamaKomisi AS [Nama Komisi]"
            + ", Jadwal"
            + ", CaraBayar"
            + ", NilaiKomisi"
            + ", Komisi40"
            + ", Komisi60"
            + ", ClosingFee"
            + ", FlagCF"
            + ", NilaiBayarCF"
            + ", NilaiBayarKomisi40"
            + ", NilaiBayarKomisi60"
            + ", Kompensasi"
            + ", TermCair AS [Term Cair]"
            + ", NilaiKomisi AS [Nilai Komisi]"
            + ", CONVERT(VARCHAR, TglBolehBayar, 106) AS [Tgl. Boleh Bayar]"
            + " FROM MS_KOMISI"
            + " WHERE NoKontrak = '" + NoKontrak + "' AND NoAgent = " + NoAgent);

            //int NoNota = Convert.ToInt32(tbNota.Text);
            DateTime TglBayar;
            TglBayar = Convert.ToDateTime(tbTglBayar.Text);
            NilaiBayar = Convert.ToDecimal(tbNilai.Text);
            btnid = BtnID.Substring(0, 6);
            string strtgl, strBayarKomisi="";
            decimal nilaiBayarKomisi= 0;


            if (btnid == "CAIR40")
            {
                strtgl = " TglBayar =";
                strBayarKomisi = " NilaiBayarKomisi40 =";
                nilaiBayarKomisi = Db.SingleDecimal("SELECT NilaiBayarKomisi40 FROM MS_KOMISI WHERE NoKontrak = '" + NoKontrak + "' AND NoAgent = '" + NoAgent + "'");
                nilaiBayarKomisi += NilaiBayar;
            }
            else if (btnid == "CAIR60")
            {
                strtgl = " TglBayarKomisi60 =";
                strBayarKomisi = " NilaiBayarKomisi60 =";
                nilaiBayarKomisi = Db.SingleDecimal("SELECT NilaiBayarKomisi60 FROM MS_KOMISI WHERE NoKontrak = '" + NoKontrak + "' AND NoAgent = '" + NoAgent + "'");
                nilaiBayarKomisi += NilaiBayar;
            }
            else if (btnid == "CAIRCF")
            {
                strtgl = " TglBayarCF =";
                strBayarKomisi = " NilaiBayarCF =";
                nilaiBayarKomisi = Db.SingleDecimal("SELECT NilaiBayarCF FROM MS_KOMISI WHERE NoKontrak = '" + NoKontrak + "' AND NoAgent = '" + NoAgent + "'");
                nilaiBayarKomisi += NilaiBayar;
            }
            else
            {
                strtgl = " TglBayarSisaKomisi =";
                strBayarKomisi = " NilaiBayarSisaKomisi =";
                nilaiBayarKomisi = Db.SingleDecimal("SELECT NilaiBayarSisaKomisi FROM MS_KOMISI WHERE NoKontrak = '" + NoKontrak + "' AND NoAgent = '" + NoAgent + "'");
                nilaiBayarKomisi += NilaiBayar;
            }


            DataTable rsBef = Db.Rs("SELECT "
                + " NoNota AS [No. Nota]"
                + ", CONVERT(VARCHAR, TglBayar, 106) AS [Tgl. Bayar]"
                + ", NilaiBayar AS [Nilai Bayar]"
                + ", AccKomisi AS [Rekening Bank]"
                + " FROM MS_KOMISI"
                + " WHERE NoKontrak = '" + NoKontrak + "' AND NoAgent = " + NoAgent);

            string strSql = "UPDATE MS_KOMISI"
                //+ " SET NoNota = " + NoNota
                + " SET " + strtgl + "'" + TglBayar + "'"
                + ", " + strBayarKomisi + "'" + nilaiBayarKomisi + "'"
                //+ ", NilaiBayar = " + akumulasiNilaiBayar
                //+ ", SudahBayar = 1"
                //+ ", AccKomisi = '" + acc.SelectedValue + "'"
                + " WHERE NoKontrak = '" + NoKontrak + "'"
                + " AND NoAgent = " + NoAgent
                ;
            Db.Execute(strSql);
            
            //Update FlagKomisi
            DataTable rs2 = Db.Rs("SELECT * FROM MS_KOMISI WHERE NoKontrak='"+NoKontrak+"' AND NoAgent='"+NoAgent+"'");
            if (Convert.ToDecimal(rs2.Rows[0]["NilaiBayarKomisi40"]) == Convert.ToDecimal(rs2.Rows[0]["Komisi40"]))
            {
                Db.Execute("UPDATE MS_KOMISI SET FlagKomisi40=1 WHERE NoKontrak='" + NoKontrak + "' AND NoAgent='" + NoAgent + "'");
            }

            if (Convert.ToDecimal(rs2.Rows[0]["NilaiBayarKomisi60"]) == Convert.ToDecimal(rs2.Rows[0]["Komisi60"]))
            {
                Db.Execute("UPDATE MS_KOMISI SET FlagKomisi60=1 WHERE NoKontrak='" + NoKontrak + "' AND NoAgent='" + NoAgent + "'");
            }

            if (Convert.ToDecimal(rs2.Rows[0]["NilaiBayarCF"]) == Convert.ToDecimal(rs2.Rows[0]["ClosingFee"]))
            {
                Db.Execute("UPDATE MS_KOMISI SET FlagCF=1 WHERE NoKontrak='" + NoKontrak + "' AND NoAgent='" + NoAgent + "'");
            }

            if (Convert.ToDecimal(rs2.Rows[0]["NilaiBayarSisaKomisi"]) == Convert.ToDecimal(rs2.Rows[0]["SisaKomisi"]))
            {
                Db.Execute("UPDATE MS_KOMISI SET FlagSisaKomisi=1 WHERE NoKontrak='" + NoKontrak + "' AND NoAgent='" + NoAgent + "'");
            }

            DataTable rsAft = Db.Rs("SELECT "
                + " NoNota AS [No. Nota]"
                + ", CONVERT(VARCHAR, TglBayar, 106) AS [Tgl. Bayar]"
                + ", NilaiBayar AS [Nilai Bayar]"
                + ", AccKomisi AS [Rekening Bank]"
                + " FROM MS_KOMISI"
                + " WHERE NoKontrak = '" + NoKontrak + "' AND NoAgent = " + NoAgent);

            //Cek Cara Bayar
            //string caraBayar = rs.Rows[0]["CaraBayar"].ToString();
            //string caraBayar2= Db.SingleString("SELECT CaraBayar FROM MS_KONTRAK WHERE NoKontrak='" + NoKontrak + "' AND NoAgent='" + NoAgent + "'");

            //if (Convert.ToInt32(rs.Rows[0]["Kompensasi"]) == 0 )
            //{
            //    if (caraBayar == "CASH KERAS")
            //    {
            //        if (caraBayar != caraBayar2)
            //        {
            //            if (caraBayar2 != "CASH KERAS")
            //            {
            //                decimal nilaikomisi = Convert.ToDecimal(rs.Rows[0]["NilaiKomisi"]);
            //                decimal kompensasi = (decimal)0.015 * nilaikomisi;
            //                Db.Execute("UPDATE MS_KOMISI SET Kompensasi='" + kompensasi + "' WHERE NoKontrak='" + NoKontrak + "' AND NoAgent='" + NoAgent + "'");
            //            }
            //        }
            //    }
            //}

            string Ket = "";
            if (!cbStatus.Checked)
            {
                Ket = Cf.LogCapture(rs)
                    + "<br>---BAYAR KOMISI---<br>"
                    + Cf.LogCapture(rsAft)
                    ;
            }
            else
            {
                Ket = Cf.LogCapture(rs)
                    + "<br>---EDIT KOMISI---<br>"
                    + Cf.LogCompare(rsBef, rsAft)
                    ;
            }

            Db.Execute("EXEC spLogKontrak"
                + " 'EJK'"
                + ",'" + Act.UserID + "'"
                + ",'" + Act.IP + "'"
                + ",'" + Ket + "'"
                + ",'" + NoKontrak + "'"
                );

            decimal LogID = Db.SingleDecimal("SELECT TOP 1 LogID FROM MS_KONTRAK_LOG ORDER BY LogID DESC");
            string Project = Db.SingleString("SELECT Project FROM MS_KONTRAK WHERE NoKontrak = '" + NoKontrak + "'");
            Db.Execute("UPDATE MS_KONTRAK_LOG SET Project = '" + Project + "' WHERE LogID  = " + LogID);

            this.RegisterStartupScript(
                "closeScript"
                , "<script type='text/javascript'>"
                + "dialogArguments.location.href = 'AgentJadwalKomisi.aspx?NoAgent=" + NoAgent+"';"
                + "window.close();"
                + "</script>"
                );
        }
Пример #3
0
        protected void btnOK_Click(object sender, System.EventArgs e)
        {

            if (Valid())
            {
                string btnid = BtnID.Substring(0, 6);
                decimal nilaiBayar = Convert.ToDecimal(tbNilai.Text);
                decimal nilaiBelumCair;
                DataTable rs2 = Db.Rs("SELECT * FROM MS_KOMISI WHERE NoKontrak='" + NoKontrak + "' AND NoAgent='" + NoAgent + "'");

                if (btnid == "CAIR40")
                {
                    if (nilaiBayar > (Convert.ToDecimal(rs2.Rows[0]["Komisi40"]) - Convert.ToDecimal(rs2.Rows[0]["NilaiBayarKomisi40"])) || nilaiBayar < (decimal)0)
                    {
                        if (Convert.ToDecimal(rs2.Rows[0]["NilaiBayarKomisi40"]) == 0)
                        {
                            Js.Alert(
                            this
                            , "Input Tidak Valid.\\n\\n"
                            + "Nilai cair kurang / melebihi nilai komisi.\\n"
                            , "document.getElementById('"+tbNilai.ClientID+"').focus();"
                            );
                            tbNilai.Text = Cf.Num(Convert.ToDecimal(rs2.Rows[0]["Komisi40"]));
                        }
                        else
                        {
                            Js.Alert(
                            this
                            , "Input Tidak Valid.\\n\\n"
                            + "Nilai cair kurang / melebihi nilai komisi.\\n"
                            , "document.getElementById('" + tbNilai.ClientID + "').focus();"
                            );
                            nilaiBelumCair = Convert.ToDecimal(rs2.Rows[0]["Komisi40"]) - Convert.ToDecimal(rs2.Rows[0]["NilaiBayarKomisi40"]);
                            tbNilai.Text = Cf.Num(nilaiBelumCair);
                        }

                    }
                    else
                    {
                        Save();
                    }
                }
                else if (btnid == "CAIR60")
                {
                    if (nilaiBayar > (Convert.ToDecimal(rs2.Rows[0]["Komisi60"]) - Convert.ToDecimal(rs2.Rows[0]["NilaiBayarKomisi60"])) || nilaiBayar < (decimal)0)
                    {
                        if (Convert.ToDecimal(rs2.Rows[0]["NilaiBayarKomisi60"]) == 0)
                        {
                            Js.Alert(
                            this
                            , "Input Tidak Valid.\\n\\n"
                            + "Nilai cair kurang / melebihi nilai komisi.\\n"
                            , "document.getElementById('" + tbNilai.ClientID + "').focus();"
                            );
                            tbNilai.Text = Cf.Num(Convert.ToDecimal(rs2.Rows[0]["Komisi60"]));
                        }
                        else
                        {
                            Js.Alert(
                            this
                            , "Input Tidak Valid.\\n\\n"
                            + "Nilai cair kurang / melebihi nilai komisi.\\n"
                            , "document.getElementById('" + tbNilai.ClientID + "').focus();"
                            );
                            nilaiBelumCair = Convert.ToDecimal(rs2.Rows[0]["Komisi60"]) - Convert.ToDecimal(rs2.Rows[0]["NilaiBayarKomisi60"]);
                            tbNilai.Text = Cf.Num(nilaiBelumCair);
                        }

                    }
                    else
                    {
                         Save();
                    }
                }
                else if (btnid == "CAIRCF")
                {
                    if (nilaiBayar > (Convert.ToDecimal(rs2.Rows[0]["ClosingFee"]) - Convert.ToDecimal(rs2.Rows[0]["NilaiBayarCF"])) || nilaiBayar < (decimal)0)
                    {
                        if (Convert.ToDecimal(rs2.Rows[0]["NilaiBayarCF"]) == 0)
                        {
                            Js.Alert(
                            this
                            , "Input Tidak Valid.\\n\\n"
                            + "Nilai cair kurang / melebihi nilai komisi.\\n"
                            , "document.getElementById('" + tbNilai.ClientID + "').focus();"
                            );
                            tbNilai.Text = Cf.Num(Convert.ToDecimal(rs2.Rows[0]["ClosingFee"]));
                        }
                        else
                        {
                            Js.Alert(
                            this
                            , "Input Tidak Valid.\\n\\n"
                            + "Nilai cair kurang / melebihi nilai komisi.\\n"
                            , "document.getElementById('" + tbNilai.ClientID + "').focus();"
                            );
                            nilaiBelumCair = Convert.ToDecimal(rs2.Rows[0]["ClosingFee"]) - Convert.ToDecimal(rs2.Rows[0]["NilaiBayarCF"]);
                            tbNilai.Text = Cf.Num(nilaiBelumCair);
                        }
                    }
                    else
                    {
                        Save();
                    }
                }
                else
                {
                    if (nilaiBayar > (Convert.ToDecimal(rs2.Rows[0]["SisaKomisi"]) - Convert.ToDecimal(rs2.Rows[0]["NilaiBayarSisaKomisi"])) || nilaiBayar < (decimal)0)
                    {
                        if (Convert.ToDecimal(rs2.Rows[0]["NilaiBayarSisaKomisi"]) == 0)
                        {
                            Js.Alert(
                            this
                            , "Input Tidak Valid.\\n\\n"
                            + "Nilai cair kurang / melebihi nilai komisi.\\n"
                            , "document.getElementById('" + tbNilai.ClientID + "').focus();"
                            );
                            tbNilai.Text = Cf.Num(Convert.ToDecimal(rs2.Rows[0]["SisaKomisi"]));
                        }
                        else
                        {
                            Js.Alert(
                            this
                            , "Input Tidak Valid.\\n\\n"
                            + "Nilai cair kurang / melebihi nilai komisi.\\n"
                            , "document.getElementById('" + tbNilai.ClientID + "').focus();"
                            );
                            nilaiBelumCair = Convert.ToDecimal(rs2.Rows[0]["SisaKomisi"]) - Convert.ToDecimal(rs2.Rows[0]["NilaiBayarSisaKomisi"]);
                            tbNilai.Text = Cf.Num(nilaiBelumCair);
                        }
                    }
                    else
                    {
                        Save();
                    }
                }
            }
        }
Пример #4
0
        private void HandleCallBoxRequest(object obj, CallBoxInfo CallBox)
        {
            try
            {
                //lock (HandCallBoxlockObj)
                //{
                LogHelper.WriteCallBoxLog("接受到:" + CallBox.CallBoxID.ToString() + "号按钮盒信息");
                NetEventArgs einfo = obj as NetEventArgs;
                if (einfo == null)
                {
                    return;
                }
                LogHelper.WriteCallBoxLog("开始解析按钮值");
                List <byte> Message       = einfo.MesContent;
                AppSession  ClientSession = einfo.Session;
                int         CallBoxID     = CallBox.CallBoxID;
                //本次被开的按钮
                List <int> CallBoxBtnList = new List <int>();
                //本次被关闭的按钮
                List <int> CallBoxBtnCloseList = new List <int>();
                //int ButID = (int)Message[3];
                //if (ButID == 0) { return; }
                //CallBoxBtnList.Add(ButID);
                ////最多支持9个按键
                //string BtnPortNextStr = Convert.ToString(Message[4], 2).PadLeft(8, '0');
                //LogHelper.WriteCallBoxLog(BtnPortNextStr);
                //if (BtnPortNextStr.Substring(7, 1) == "1")
                //{ CallBoxBtnList.Add(9); }
                string BtnPortStr = Convert.ToString(Message[3], 2).PadLeft(8, '0');
                if (BtnPortStr.Substring(0, 1) == "1")
                {
                    CallBoxBtnList.Add(8);
                }
                else
                {
                    CallBoxBtnCloseList.Add(8);
                }
                if (BtnPortStr.Substring(1, 1) == "1")
                {
                    CallBoxBtnList.Add(7);
                }
                else
                {
                    CallBoxBtnCloseList.Add(7);
                }
                if (BtnPortStr.Substring(2, 1) == "1")
                {
                    CallBoxBtnList.Add(6);
                }
                else
                {
                    CallBoxBtnCloseList.Add(6);
                }
                if (BtnPortStr.Substring(3, 1) == "1")
                {
                    CallBoxBtnList.Add(5);
                }
                else
                {
                    CallBoxBtnCloseList.Add(5);
                }
                if (BtnPortStr.Substring(4, 1) == "1")
                {
                    CallBoxBtnList.Add(4);
                }
                else
                {
                    CallBoxBtnCloseList.Add(4);
                }
                if (BtnPortStr.Substring(5, 1) == "1")
                {
                    CallBoxBtnList.Add(3);
                }
                else
                {
                    CallBoxBtnCloseList.Add(3);
                }
                if (BtnPortStr.Substring(6, 1) == "1")
                {
                    CallBoxBtnList.Add(2);
                }
                else
                {
                    CallBoxBtnCloseList.Add(2);
                }
                if (BtnPortStr.Substring(7, 1) == "1")
                {
                    CallBoxBtnList.Add(1);
                }
                else
                {
                    CallBoxBtnCloseList.Add(1);
                }


                //记忆上次被开的按钮
                string OldCallBoxBtnList = CallBox.CallBoxBtnList;
                CallBox.CallBoxBtnList = string.Join(",", CallBoxBtnList.Select(p => p));

                CallBoxInfo           BoxInfo    = AGVServerDAccess.LoadAllCallBoxByID(CallBoxID);
                IList <CallBoxDetail> BoxDetails = AGVServerDAccess.LoadCallBoxDetails(CallBoxID);
                //根据按钮盒信息处理业务逻辑
                foreach (int BtnID in CallBoxBtnList)
                {
                    CallBoxDetail CurrBoxDetail = BoxDetails.FirstOrDefault(p => p.CallBoxID == CallBoxID && p.ButtonID == BtnID);
                    if (CurrBoxDetail.OperaType != 3)
                    {
                        LightContrl(ClientSession, BtnID, 1);
                    }

                    //抽取当前按钮盒当前按钮对应的操作类型
                    LogHelper.WriteCallBoxLog("接受到" + CallBox.CallBoxID + "号按钮盒按键" + BtnID);

                    //处理按钮盒的过程为:
                    //1.接受到按钮盒的请求后,产生任务后将对应的按钮灯点亮
                    //2.当有车领取了该任务后将按钮等熄灭
                    #region 根据配置生成任务
                    if (BoxInfo == null)
                    {
                        LogHelper.WriteCallBoxLog("未配置按钮盒" + CallBox.CallBoxID.ToString() + "档案信息");
                        Thread.Sleep(1000 * 3);
                        LightContrl(ClientSession, BtnID, 0);
                        continue;
                    }

                    if (BoxDetails == null || (BoxDetails != null && BoxDetails.Count <= 0))
                    {
                        LogHelper.WriteCallBoxLog("未配置按钮盒" + CallBox.CallBoxID.ToString() + "明细档案信息1");
                        Thread.Sleep(1000 * 3);
                        LightContrl(ClientSession, BtnID, 0);
                        continue;
                    }


                    if (CurrBoxDetail == null)
                    {
                        LogHelper.WriteCallBoxLog("未配置按钮盒" + CallBox.CallBoxID.ToString() + "明细档案信息2");
                        Thread.Sleep(1000 * 3);
                        LightContrl(ClientSession, BtnID, 0);
                        continue;
                    }

                    if (CurrBoxDetail.OperaType == 0)//呼叫
                    {
                        bool HandleCallResult = HandleCallBoxCall(CallBox, CurrBoxDetail, BtnID);
                        if (!HandleCallResult)
                        {
                            Thread.Sleep(1000 * 3);
                            LightContrl(ClientSession, BtnID, 0);
                            continue;
                        }
                        else
                        {
                            Thread.Sleep(3000);
                            LightContrl(ClientSession, BtnID, 0);
                        }
                    }
                    else if (CurrBoxDetail.OperaType == 1)//监控
                    {
                        bool HandleCallBoxMonitorResult = HandleCallBoxMonitor(CallBox, CurrBoxDetail, BtnID);
                        if (!HandleCallBoxMonitorResult)
                        {
                            Thread.Sleep(1000 * 3);
                            LightContrl(ClientSession, BtnID, 0);
                            continue;
                        }
                        else
                        {
                            Thread.Sleep(3000);
                            LightContrl(ClientSession, BtnID, 0);
                        }
                    }
                    else if (CurrBoxDetail.OperaType == 3)//传感器监控
                    {
                        if (string.IsNullOrEmpty(OldCallBoxBtnList) || (!string.IsNullOrEmpty(OldCallBoxBtnList) && !OldCallBoxBtnList.Contains(BtnID.ToString())))
                        {
                            hs_PreReciveSensorTime[CurrBoxDetail.CallBoxID.ToString() + "," + CurrBoxDetail.ButtonID.ToString()] = DateTime.Now;
                        }
                        else
                        {
                            double FilterTime = 0;
                            //传感器监控需要增加滤波功能
                            string FilterTimeStr = CoreData.SysParameter["FilterTime"].ToString();
                            if (!string.IsNullOrEmpty(FilterTimeStr))
                            {
                                try
                                {
                                    FilterTime = Convert.ToDouble(FilterTimeStr);
                                }
                                catch
                                { }
                            }
                            ArrayList keyList = new ArrayList(hs_PreReciveSensorTime.Keys);
                            if (!keyList.Contains(CurrBoxDetail.CallBoxID.ToString() + "," + CurrBoxDetail.ButtonID.ToString()))
                            {
                                hs_PreReciveSensorTime[CurrBoxDetail.CallBoxID.ToString() + "," + CurrBoxDetail.ButtonID.ToString()] = DateTime.Now;
                            }
                            else
                            {
                                DateTime PreReciveSensorTime = Convert.ToDateTime(hs_PreReciveSensorTime[CurrBoxDetail.CallBoxID.ToString() + "," + CurrBoxDetail.ButtonID.ToString()]);
                                double   SpanTime            = (DateTime.Now - PreReciveSensorTime).TotalSeconds;
                                if (FilterTime <= SpanTime)
                                {
                                    HandleCallBoxMonitor(CallBox, CurrBoxDetail, BtnID);
                                    hs_PreReciveSensorTime[CurrBoxDetail.CallBoxID.ToString() + "," + CurrBoxDetail.ButtonID.ToString()] = DateTime.Now;
                                }
                                else
                                {
                                    continue;
                                }
                            }
                        }
                    }
                    else//确认放行
                    {
                        bool HandleCallBoxReleaseResult = HandleCallBoxRelease(CallBox, CurrBoxDetail, BtnID);
                        if (!HandleCallBoxReleaseResult)
                        {
                            Thread.Sleep(1000 * 3);
                            LightContrl(ClientSession, BtnID, 0);
                            continue;
                        }
                        else
                        {
                            Thread.Sleep(3000);
                            LightContrl(ClientSession, BtnID, 0);
                        }
                    }
                    #endregion
                    //Thread.Sleep(3000);
                    //LightContrl(ClientSession, BtnID, 0);
                }

                ///将传感器没有物品时需要将对应储位状态清空
                foreach (int BtnID in CallBoxBtnCloseList)
                {
                    if (BoxDetails == null || (BoxDetails != null && BoxDetails.Count <= 0))
                    {
                        LogHelper.WriteCallBoxLog("未配置按钮盒" + CallBox.CallBoxID.ToString() + "明细档案信息4");
                        continue;
                    }
                    CallBoxDetail CurrBoxDetail = BoxDetails.FirstOrDefault(p => p.CallBoxID == CallBoxID && p.ButtonID == BtnID);
                    if (CurrBoxDetail == null)
                    {
                        //LogHelper.WriteCallBoxLog("未配置按钮盒" + CallBox.CallBoxID.ToString() + "明细档案信息");
                        continue;
                    }
                    if (CurrBoxDetail.OperaType == 3)//传感器监控
                    {
                        ArrayList keyList = new ArrayList(hs_PreReciveSensorTime.Keys);
                        if (!keyList.Contains(CurrBoxDetail.CallBoxID.ToString() + "," + CurrBoxDetail.ButtonID.ToString()))
                        {
                            if (string.IsNullOrEmpty(OldCallBoxBtnList) || (!string.IsNullOrEmpty(OldCallBoxBtnList) && OldCallBoxBtnList.Contains(BtnID.ToString())))
                            {
                                hs_PreReciveSensorTime[CurrBoxDetail.CallBoxID.ToString() + "," + CurrBoxDetail.ButtonID.ToString()] = DateTime.Now;
                            }
                        }
                        else
                        {
                            double FilterTime = 0;
                            //传感器监控需要增加滤波功能
                            string FilterTimeStr = CoreData.SysParameter["FilterTime"].ToString();
                            if (!string.IsNullOrEmpty(FilterTimeStr))
                            {
                                try
                                {
                                    FilterTime = Convert.ToDouble(FilterTimeStr);
                                }
                                catch
                                { }
                            }
                            keyList = new ArrayList(hs_PreReciveSensorTime.Keys);
                            if (!keyList.Contains(CurrBoxDetail.CallBoxID.ToString() + "," + CurrBoxDetail.ButtonID.ToString()))
                            {
                                hs_PreReciveSensorTime[CurrBoxDetail.CallBoxID.ToString() + "," + CurrBoxDetail.ButtonID.ToString()] = DateTime.Now;
                            }
                            else
                            {
                                DateTime PreReciveSensorTime = Convert.ToDateTime(hs_PreReciveSensorTime[CurrBoxDetail.CallBoxID.ToString() + "," + CurrBoxDetail.ButtonID.ToString()]);
                                double   SpanTime            = (DateTime.Now - PreReciveSensorTime).TotalSeconds;
                                if (FilterTime <= SpanTime)
                                {
                                    CurrBoxDetail.LocationState = 0;
                                    HandleCallBoxMonitor(CallBox, CurrBoxDetail, BtnID);
                                    hs_PreReciveSensorTime[CurrBoxDetail.CallBoxID.ToString() + "," + CurrBoxDetail.ButtonID.ToString()] = DateTime.Now;
                                }
                                else
                                {
                                    continue;
                                }
                            }
                        }
                    }
                }
                //}
            }
            catch (Exception ex)
            { LogHelper.WriteCallBoxLog("呼叫器处理异常:" + ex.Message); }
        }