using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;

using System.Xml;
using System.IO;
using System.Data;
using ABC.NhanVien;
using ABC.DanhMuc.KhachHang;
using DevExpress.XtraEditors;
using DevExpress.XtraLayout;
using ABC.DanhMuc.NhomKhachHang;
using ABC.File;
using System.Text.RegularExpressions;
using ABC.KetNoi;

namespace ABC.DanhMuc.KhachHang
{
    
    public partial class KhachHang_Form1 : DevExpress.XtraEditors.XtraForm {
        KhachHang_Class _KhachHang_Class = new KhachHang_Class();
        public DataRow dr; 
        #region hàm dựng
        public KhachHang_Form1()
        {           
            InitializeComponent();           
            this.Text = Get_CauHinh.Dt_DAT.Rows[0]["Name_Soft"].ToString();      
            simpleButton_ok.Click += new EventHandler(simpleButton_ok_Click);
            _ID1.Properties.DataSource = DuLieu.List_Nhom_KhachHang.Tables[0];
        }
        #endregion
        private bool KiemtraNhapLieu(string chuoi)
        {
            bool isTrung = false;
            foreach (char item in chuoi)
            {
                if (char.IsLetterOrDigit(item) == false && char.IsWhiteSpace(item) == false)
                {
                    isTrung = true;
                    break;
                }
            }
            return isTrung;
        }
        #region ham save
        public void save()
        {
            #region
            bool Next = true;
            string ms = "";
            if (txtCongNo.Text == "")
            {
                Next = false;
                ms = "Vui lòng nhập giới hạn công nợ.";
            }
            if (txtName.Text == "")
            {
                Next = false;
                ms = "Bạn Chưa nhập tên.";
            }
            if (Next == true)
            {
                
                if (_ID1.EditValue==null)
                {
                    Next = false;
                    ms = "Bạn chưa chọn nhóm..";
                }

            }
            if (KiemtraNhapLieu(txtName.Text.Trim()))
            {
                Next = false;
                ms = "Vui lòng tên nhập không chứa kí tự đặc biệt!";
            }    
            if (Next == true)
            {
                DataRow[] dr = DuLieu.List_KhachHang.Tables[0].Select("Name = '" + txtName.Text.ToUpper() + "'");
                if (dr.Length > 0)
                {
                    Next = false;
                    ms = "Trùng tên.";
                }

            }

            if (Next == true)
            {
                string _ID = Guid.NewGuid().ToString().ToUpper();
                string sql = "Tbl_KhachHang_insert2019 ";
                sql += "N'" + _ID + "',";
                sql += "N'" + txtName.Text.ToUpper() + "',";
                sql += "N'" + Note.Text + "',";
                
                sql += "N'" + Get_CauHinh.Ngay_DN + "',";
                sql += "N'" + Get_CauHinh.Dt_Login.Rows[0]["ID"].ToString().ToUpper() + "',";
                sql += "N'1',";

                sql += "N'" + _Text1.Text + "',";
                sql += "N'" + _Text2.Text + "',";
                sql += "N'" + _Text3.Text + "',";
                sql += "N'" + _Text4.Text + "',";
                sql += "N'',";
                sql += "N'',";
                sql += "N'',";
                sql += "N'',";
                sql += "N'',";

                sql += "NULL,";
                sql += "NULL,";
                sql += "NULL,";

                sql += "N'"+_ID1.EditValue.ToString()+"',";
                sql += "NULL,";
                sql += "NULL,";
                sql += double.Parse(txtCongNo.Text)+",";
                sql +="N'"+ txtMatKhau.Text.Trim()+"',";
                sql += false;
                _KhachHang_Class.set(sql);
                DuLieu.LuuLuocSu(Main_Form._tk, this.Name, "", txtName.Text.ToUpper(), "Thêm");
                //update trang thai column Chon
                string sql1 = "update Tbl_KhachHang set Chon=0 where ID='"+ _ID+"'";
                _KhachHang_Class.updateTable(sql1);
                //
                this.Text = this.Text + ".";
                #region gui Telegram
                // string _NoiDung = string.Format("Ngày: {0} đã thêm khách hàng mới tên:{1}",DateTime.Now.ToString("dd/MM/yyyy hh:mm:ss"), txtName.Text.ToUpper());
                string _NoiDung = string.Format(
     "Ngày: {0}\n👤 Đã thêm khách hàng mới tên:\n     {1}",
     DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss"),
     txtName.Text.ToUpper()
 );

                //Telegram_bot clsBot = new Telegram_bot();
                //clsBot.FormGui = this.Name;//dong nay rat quan trong
                //clsBot.GoiNoiDungQuaTelegram(_NoiDung);
               // GoiNoiDungQuaSlack(_NoiDung);
                SlackHelper.GoiNoiDungQuaSlack($"```{_NoiDung}```", "themkhachhang", "🧾 Thêm Khách Hàng"); // đã tạo class chung là SlackHelper 




                #endregion
                if (msgbox.dialog_yes_no("Đã lưu \n \n Bạn muốn tiếp tục không ?") == DialogResult.Yes)
                {
                    txtName.Focus();
                    txtName.BackColor = Color.NavajoWhite;
                    txtName.Focus();
                }
                else
                {
                    this.Close();
                }



            }
            else
            {
                msgbox.dialog_OK_warning(ms);
            }

            #endregion
        }
    //    public void GoiNoiDungQuaSlack(string message)
    //    {
    //        string slackWebhookUrl = "https://hooks.slack.com/services/TDTGQ2/BHS9/JHVVvFS3FL3CX0JC1"; // Thay URL bằng của bạn _đây là channel tên là addkhachhang

    //        var payload = new
    //        {
    //            attachments = new[] {
    //    new {
    //        color = "#36a64f",
    //        title = "🧾Thêm Danh mục khách hàng",
    //        text = message
    //    }
    //}
    //        };

    //        string jsonPayload = Newtonsoft.Json.JsonConvert.SerializeObject(payload);

    //        using (var client = new System.Net.WebClient())
    //        {
    //            client.Encoding = System.Text.Encoding.UTF8; // 👈 Đây là dòng QUAN TRỌNG để hỗ trợ tiếng Việt
    //            client.Headers.Add("Content-Type", "application/json; charset=utf-8");
    //            client.UploadString(slackWebhookUrl, "POST", jsonPayload);
    //        }
    //    }           ĐÃ CẤU HÌNH CLAS DÙNG CHUNG NÊN KHÔNG CẦN PHẦN NÀY NỮA
        #endregion

        #region button event
        void simpleButton_ok_Click(object sender, EventArgs e)
        {
            save();
        }
        #endregion

        #region load
        private void CauHinh_Form_Load(object sender, EventArgs e)
        {
            if (dr != null)
            {
                txtName.Text = dr["Name"].ToString();
                Note.Text = dr["Note"].ToString();
                _Text1.Text = dr["_Text1"].ToString();
                _Text2.Text = dr["_Text2"].ToString();
                _Text3.Text = dr["_Text3"].ToString();
                _Text4.Text = dr["_Text4"].ToString();
                _ID1.Text = dr["_ID1_Name"].ToString();
                txtCongNo.Text = dr["HanMuc"].ToString();
                txtMatKhau.Text = dr["MatKhau"].ToString();

               
            }
        }
        #endregion  

        #region phim tat 
        protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
        {
            if (keyData == (Keys.Enter))
            {
               
            }
            if (keyData == (Keys.Control|Keys.S))
            {
                save();
            }
           return base.ProcessCmdKey(ref msg, keyData);
        }

        #endregion

        private void _ID1_EditValueChanged(object sender, EventArgs e)
        {

        }

        private void txtName_TextChanged(object sender, EventArgs e)
        {
            lock (this)
            {
                string sql = "select [Name] as Ten,_Text3 as DT from Tbl_KhachHang where [Name] like N'" + txtName.Text.Trim().ToUpper() + "%'";
                ABC.KetNoi.Class_KetNoi db = new KetNoi.Class_KetNoi();
                DataTable dt = db.T_opendataset(sql).Tables[0];
                if (dt.Rows.Count > 0 && txtName.Text != "")
                    labelControl1.Text = "Thông tin KH: có " + dt.Rows.Count.ToString() + " thông tin gần giống.Click!";
                else
                    labelControl1.Text = "Thông tin khách hàng";
              
            }
        }

        private void labelControl1_Click(object sender, EventArgs e)
        {
            if(labelControl1.Text.Contains("gần giống"))
            {
                string sql = "select [Name] as Ten,_Text3 as DT from Tbl_KhachHang where [Name] like N'" + txtName.Text.Trim().ToUpper() + "%'";
                Form frm = new frmPreview(sql);
                frm.ShowDialog();
            }    
        }
    }
}
