Ejemplo n.º 1
0
        private static void GenerateDataProvider(KBModel kbModel, Table tabla, SDT Sdt)
        {
            Artech.Genexus.Common.Objects.DataProvider dp = new Artech.Genexus.Common.Objects.DataProvider(kbModel);
            string dpName   = "DP_" + tabla.Name;
            string sdtparam = "Param_" + Sdt.Name;

            dp.Name = dpName;
            string Source;

            Source = Sdt.Name + Environment.NewLine;

            Source += GenerateWhereSDT(tabla, sdtparam);
            Source += "{" + Environment.NewLine;
            Source += GenerateListaAtt(tabla);
            Source += "}";

            dp.DataProviderSource.Source = Source;

            AddSDTVariableToDP(kbModel, dp, Sdt, sdtparam);
            AddSDTVariableToDP(kbModel, dp, Sdt, Sdt.Name);

            dp.Rules.Source = GenerateParmRuleINSDT(sdtparam);

            dp.Description = "Data Provider for table  " + tabla.Name + ".";

            dp.SetPropertyValue(Properties.DPRV.Output, new KBObjectReference(Sdt));
            dp.SetPropertyValue(Properties.DPRV.Collection, true);
            dp.Save();

            // KBObject obj = kbModel.Objects.GetByName("Objects",,"DP_DSASOC")
        }
Ejemplo n.º 2
0
        public frmDetailKQKB(int KhamBenh_Id)
        {
            InitializeComponent();
            var obj = new KQKBBUS(this).NVGetByKhamBenhId(KhamBenh_Id);

            if (obj != null)
            {
                TenBenhNhan.FormatTextFromTag(obj.TenBenhNhan);
                MaYTe.FormatTextFromTag(obj.MaYTe);
                Tuoi.FormatTextFromTag(obj.Tuoi);
                GioiTinh.FormatTextFromTag(obj.GioiTinh);
                DiaChi.FormatTextFromTag(obj.DiaChi);
                SDT.FormatTextFromTag(obj.SoDienThoai);
                THoiGianKham.FormatTextFromTag(obj.ThoiGianKham);
                NoiDungKham.FormatTextFromTag(obj.NoiDungKham);
                TrieuChungLamSang.FormatTextFromTag(obj.TrieuChungLamSang);
                ChuanDoanLamSang.FormatTextFromTag(obj.ChanDoanKhoaKham);
                TenPhongBan.FormatTextFromTag(obj.TenPhongBan);
                HuyeAp.FormatTextFromTag(obj.HuyetAp);
                Mach.FormatTextFromTag(obj.Mach);
                NhietDo.FormatTextFromTag(obj.NhietDo);
                NhipTho.FormatTextFromTag(obj.NhipTho);
                ChieuCao.FormatTextFromTag(obj.ChieuCao);
                CanNang.FormatTextFromTag(obj.CanNang);
                SoBHYT.FormatTextFromTag(obj.SoBHYT);
                NguoiLienHe.FormatTextFromTag(obj.NguoiLienHe);
                NgayhentaiKham.FormatTextFromTag(obj.NgayHenTaiKham);
                MaBenh.FormatTextFromTag(obj.MaBenh);
                MaBenhPhu.FormatTextFromTag(obj.MaBenhPhu);
            }
        }
        public override void BeforeSaveObjects(PatternInstance instance, InstanceObjects instanceObjects)
        {
            base.BeforeSaveObjects(instance, instanceObjects);

            foreach (InstanceObject instanceObject in instanceObjects)
            {
                string outputSDTName;

                List <KeyValuePair <string, object> > props = new List <KeyValuePair <string, object> >();
                if (instanceObject.Name.EndsWith("DataProvider"))
                {
                    props.Add(new KeyValuePair <string, object>("OutputCollection", true));
                    props.Add(new KeyValuePair <string, object>("OutputCollectionName", "DataCollection"));

                    outputSDTName = "Data";
                }
                else
                {
                    outputSDTName = "Definition";
                }

                SDT outputSDT = SDT.Get(instanceObject.Model, new QualifiedName("GeneXusAI.Custom", outputSDTName));
                if (outputSDT != null)
                {
                    props.Add(new KeyValuePair <string, object>("OutputSDT", new DataProviderOutputReference(outputSDT)));
                }

                instanceObject.GeneratedObject.SetPropertyValues(props);
            }
        }
Ejemplo n.º 4
0
 private static void ListSDTStructure(SDT sdtToList, StreamWriter file)
 {
     if (sdtToList != null)
     {
         PrintSectionHeader("SDT STRUCTURE", file);
         ListStructure(sdtToList.SDTStructure.Root, 0, file);
     }
 }
Ejemplo n.º 5
0
 private static void ListSDTStructure(SDT sdtToList, StreamWriter file)
 {
     if (sdtToList != null)
     {
         file.WriteLine(Environment.NewLine + "=== STRUCTURE ===");
         ListStructure(sdtToList.SDTStructure.Root, 0, file);
     }
 }
Ejemplo n.º 6
0
        /// <summary>
        /// Crea un procedure con todos los SDT seleccionados por el usuario.
        /// </summary>
        public static void CreateProcedureSDT()
        {
            IKBService kB = UIServices.KB;

            if (kB != null && kB.CurrentModel != null)
            {
                SelectObjectOptions selectObjectOption = new SelectObjectOptions();
                selectObjectOption.MultipleSelection = true;
                KBModel kbModel = UIServices.KB.CurrentModel;

                Artech.Genexus.Common.Objects.Procedure proc = new Artech.Genexus.Common.Objects.Procedure(kbModel);
                string procName = "SDTForceGenerate";

                proc.Name = procName;
                proc.ProcedurePart.Source = "// Generated by KBDoctor, to generate SDT source";
                proc.SetPropertyValue("IsMain", true);
                proc.Save();

                //MUESTRO LOS SDT A REGENERAR
                selectObjectOption.ObjectTypes.Add(KBObjectDescriptor.Get <SDT>());
                foreach (KBObject kBObject in UIServices.SelectObjectDialog.SelectObjects(selectObjectOption))
                {
                    SDT sdtObj = (SDT)kBObject;
                    CodeGeneration.AddSDTVariable(kbModel, proc, sdtObj);
                    Application.DoEvents();
                }

                proc.Save();


                //Para cada uno de los generadores del environment, genero el proc con los SDT.

                GxModel gm = UIServices.KB.WorkingEnvironment.TargetModel.GetAs <GxModel>();

                foreach (var gen in gm.Environments)
                {
                    int generator = gen.Generator;

                    KBObject copy = BLServices.KnowledgeManager.Clone(proc);
                    copy.Name = procName + "_" + generator.ToString();
                    copy.SetPropertyValue(Artech.Genexus.Common.Properties.TRN.Generator, new EnvironmentCategoryReference {
                        Definition = gen
                    });
                    UIServices.Objects.Save(copy);

                    GenexusUIServices.Build.Rebuild(copy.Key);

                    do
                    {
                        Application.DoEvents();
                    } while (GenexusUIServices.Build.IsBuilding);
                    copy.Delete();
                }
                proc.Delete();
            }
        }
Ejemplo n.º 7
0
        private static string GenerateForEachToSDT(Table tabla, SDT sdt)
        {
            string Source = "for each" + Environment.NewLine;

            Source += GenerateWhere(tabla);
            Source += GenerateAssignToSDT(tabla, sdt);
            Source += "endfor" + Environment.NewLine;

            return(Source);
        }
Ejemplo n.º 8
0
        //insert theo khách hàng theo từng bàn

        private void button1_Click(object sender, EventArgs e)
        {
            String str    = label1.Text;
            String result = "";

            foreach (Char x in str.ToCharArray())
            {
                if (Char.IsDigit(x))
                {
                    result += x;
                }
            }
            Char[] Soban = result.ToCharArray();
            if (SDT.Text == "")
            {
                MessageBox.Show("Bạn thiếu Số điện thoại khách hàng", "Nhập thiếu thông tin khách hàng", MessageBoxButtons.OK, MessageBoxIcon.Error);
                SDT.Focus();
                return;
            }
            if (TenKH.Text == "")
            {
                MessageBox.Show("Bạn thiếu tên khách hàng", "Nhập thiếu thông tin khách hàng", MessageBoxButtons.OK, MessageBoxIcon.Error);
                TenKH.Focus(); return;
            }
            if (!radioButton1.Checked && !radioButton2.Checked)
            {
                MessageBox.Show("Bạn Chưa lựa chọn hình thức tính điểm tích lũy cho khách hàng", "Nhập thiếu thông tin khách hàng", MessageBoxButtons.OK, MessageBoxIcon.Error);
                groupBox1.Focus(); return;
            }
            if (ThoiGianTra.Value.Subtract(ThoiGianDat.Value).TotalHours < 2)
            {
                MessageBox.Show("Thời gian tối thiểu để đặt bàn là từ 2 tiếng", "Nhập Sai thông tin yêu cầu", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            else
            {
                if (radioButton1.Checked)
                {
                    bll.insertCustomers(TenKH.Text, DiaChi.Text, SDT.Text, 0, NgayGiaNhap.Value);

                    foreach (Char i in Soban)
                    {
                        bll.insertDATBAN(MaKH.Text, "BAN" + i, ThoiGianDat.Value, ThoiGianTra.Value, 1);
                    }
                }
                else if (radioButton2.Checked)
                {
                    bll.insertCustomers(TenKH.Text, DiaChi.Text, SDT.Text, NgayGiaNhap.Value);
                    foreach (Char i in Soban)
                    {
                        bll.insertDATBAN(MaKH.Text, "MaBan" + i, ThoiGianDat.Value, ThoiGianTra.Value, 1);
                    }
                }
            }
        }
Ejemplo n.º 9
0
        public static void AddSDTVariableToDP(KBModel kbModel, DataProvider dp, SDT sdtobj, string sdtname)
        {
            Variable oVariableNew = new Variable(dp.Variables);

            oVariableNew.Name = sdtname;
            oVariableNew.Type = eDBType.GX_SDT;

            DataType.ParseInto(kbModel, sdtobj.Name, oVariableNew);

            dp.Variables.Add(oVariableNew);
        }
Ejemplo n.º 10
0
        private static string GenerateParmRule(Table tabla, SDT sdt, string INorOut)
        {
            string Rules = "parm(";

            foreach (TableAttribute pk in tabla.TableStructure.PrimaryKey)
            {
                Rules += "in:&" + pk.Name + ",";
            }
            Rules += INorOut + "&" + sdt.Name + ");";
            return(Rules);
        }
Ejemplo n.º 11
0
 //FrmLoaiXe7Cho LoaiXe = new FrmLoaiXe7Cho();
 public void HoaDonTinhTien_Load(object sender, EventArgs e)
 {
     txtTuyenDuong.Text = Tuyen.ToString();
     txtSoGhe.Text      = Ghe.ToString();
     txtGiaCuoc.Text    = Tien.ToString();
     txtSoXe.Text       = SoXe.ToString();
     txtGioKH.Text      = Ngay.ToString();
     txtGio.Text        = Gio.ToString();
     txtHanhKhach.Text  = THK.ToString();
     txtSDTHK.Text      = SDT.ToString();
 }
Ejemplo n.º 12
0
        private static void WriteObjectContent(KBObject obj, StreamWriter file)
        {
            ListRulePart(obj, file);
            ListVariables(obj, file);
            ListStats(obj, file);

            ListEvents(obj, file);

            switch (obj.TypeDescriptor.Name)
            {
            case "Attribute":
                ListAttribute(obj, file);
                break;

            case "Procedure":
                ListProcedureSource(obj, file);
                break;

            case "Transaction":
                ListTransactionStructure(obj, file);
                break;

            case "WorkPanel":
                break;

            case "WebPanel":
                break;

            case "WebComponent":
                break;

            case "Table":
                Table tbl = (Table)obj;
                ListTableStructure(tbl, file);
                break;

            case "SDT":
                SDT sdtToList = (SDT)obj;
                ListSDTStructure(sdtToList, file);
                break;

            default:
                //Unknown object. Use export format.
                file.Write(SerializeObject(obj).ToString());
                break;
            }


            ListProperties(obj, file);
            ListCategories(obj, file);
            //ListNavigation(obj, file);
        }
Ejemplo n.º 13
0
        private static string GenerateAssignFromSDT(Table tabla, SDT sdt)
        {
            String Source = Environment.NewLine;

            foreach (TableAttribute atr in tabla.TableStructure.Attributes)
            {
                if (!atr.IsKey)
                {
                    Source += "          " + atr.Name + " = &" + sdt.Name + "." + atr.Name + Environment.NewLine;
                }
            }
            Source += Environment.NewLine;
            return(Source);
        }
Ejemplo n.º 14
0
        /// <summary>
        /// Bearbeitet eine Diensttabelle.
        /// </summary>
        /// <param name="table">Die zu verarbeitende Tabelle.</param>
        private void ProcessServiceTable(SDT table)
        {
            // Count
            m_sdtProcessed++;

            // Must use legacy implementation
            var sdt = table.Table;

            if (!sdt.IsValid)
            {
                return;
            }

            // Remember
            m_lastSDT = sdt;
        }
Ejemplo n.º 15
0
        public static void CreateProcedureGetSet()
        {
            IKBService kB = UIServices.KB;

            if (kB != null && kB.CurrentModel != null)
            {
                SelectObjectOptions selectObjectOption = new SelectObjectOptions();
                selectObjectOption.MultipleSelection = false;
                KBModel kbModel = UIServices.KB.CurrentModel;

                selectObjectOption.ObjectTypes.Add(KBObjectDescriptor.Get <Table>());
                List <Table> tablas = UIServices.SelectObjectDialog.SelectObjects(selectObjectOption) as List <Table>;
                foreach (Table tabla in tablas)
                {
                    string         title  = "KBDoctor - Generating Get/Set/Insert/Delete for table " + tabla.Name;
                    IOutputService output = CommonServices.Output;
                    output.StartSection(title);

                    try
                    {
                        output.AddLine(" Generating SDT");
                        SDT Sdt = GenerateSdt(tabla);

                        output.AddLine(" Generating Procedure GET");
                        GenerateGetProcedure(kbModel, tabla, Sdt);

                        output.AddLine(" Generating Procedure SET");
                        GenerateSetProcedure(kbModel, tabla, Sdt);

                        output.AddLine(" Generating Procedure INSERT");
                        GenerateInsertProcedure(kbModel, tabla, Sdt);

                        output.AddLine(" Generating DataProvider");
                        GenerateDataProvider(kbModel, tabla, Sdt);

                        output.AddLine(" Generating Exist");
                        GenerateExistProcedure(kbModel, tabla, Sdt);
                    }
                    catch (Exception ex)
                    {
                        output.AddErrorLine(ex);
                    }
                    Application.DoEvents();
                    output.EndSection(title, true);
                }
            }
        }
Ejemplo n.º 16
0
        private static void GenerateInsertProcedure(KBModel kbModel, Table tabla, SDT Sdt)
        {
            Artech.Genexus.Common.Objects.Procedure proc = new Artech.Genexus.Common.Objects.Procedure(kbModel);
            string procName = "NEW_" + tabla.Name;

            proc.Name = procName;
            string Source = "// Generated by KBDoctor " + DateTime.Now.ToString() + Environment.NewLine;


            AddSDTVariable(kbModel, proc, Sdt);
            Source += GenerateNewFromSDT(tabla, Sdt);
            proc.ProcedurePart.Source = Source;
            proc.Rules.Source         = GenerateParmRuleINSDT(Sdt.Name);
            AddVariables(kbModel, proc, tabla);
            proc.Description = "Insert for Table " + tabla.Name + ".";
            proc.Save();
        }
Ejemplo n.º 17
0
        private static SDT GenerateSdt(Table tabla)
        {
            SDT Sdt = SDT.Create(UIServices.KB.CurrentModel);

            Sdt.Name = "SDT_" + tabla.Name;

            Sdt.Description = tabla.Description;

            // Añadir los atributos de la tabla.

            foreach (TableAttribute atr in tabla.TableStructure.Attributes)
            {
                SDTItem item = new SDTItem(Sdt.SDTStructure);
                item.Name             = atr.Name;
                item.Description      = atr.Attribute.Description;
                item.AttributeBasedOn = atr;
                Sdt.SDTStructure.Root.AddItem(item);
            }
            Sdt.Save();
            return(Sdt);
        }
Ejemplo n.º 18
0
        private static string GenerateNewFromSDT(Table tabla, SDT sdt)
        {
            string Source  = "New" + Environment.NewLine;
            string Comment = "/*" + Environment.NewLine;


            foreach (TableAttribute atr in tabla.TableStructure.Attributes)
            {
                if (!atr.IsFormula)
                {
                    Source += "          " + atr.Name + " = &" + sdt.Name + "." + atr.Name + Environment.NewLine;
                }
                Comment += " &" + sdt.Name + "." + atr.Name + " = " + atr.Name;
            }
            Source += "when duplicate /*nothing*/ " + Environment.NewLine;
            Source += "endnew" + Environment.NewLine;

            Source += Comment + Environment.NewLine + "*/";

            return(Source);
        }
Ejemplo n.º 19
0
        private static void GenerateExistProcedure(KBModel kbModel, Table tabla, SDT sdt)
        {
            Artech.Genexus.Common.Objects.Procedure proc = new Artech.Genexus.Common.Objects.Procedure(kbModel);
            string procName = "EXISTS_" + tabla.Name;

            AddSDTVariable(kbModel, proc, sdt);

            proc.Name = procName;
            string Source;

            Source  = "for each" + Environment.NewLine;
            Source += GenerateWhere(tabla);
            Source += "         &Exists=true" + Environment.NewLine;
            Source += "     when none " + Environment.NewLine;
            Source += "         &Exists=false" + Environment.NewLine;
            Source += "endfor" + Environment.NewLine;

            proc.ProcedurePart.Source = Source;

            string Rules = "parm(";

            foreach (TableAttribute pk in tabla.TableStructure.PrimaryKey)
            {
                Rules += "in:&" + pk.Name + ",";
            }
            Rules            += "out:&Exists);";
            proc.Rules.Source = Rules;
            AddVariables(kbModel, proc, tabla);

            Variable oVariableNew = new Variable(proc.Variables);

            oVariableNew.Name = "Exists";
            oVariableNew.Type = eDBType.Boolean;

            proc.Variables.Add(oVariableNew);
            proc.Description = "Exists record in Table " + tabla.Name + ".";
            proc.Save();
        }
        private static void WriteObjectContent(KBObject obj, StreamWriter file)
        {
            RulesPart rp = obj.Parts.Get <RulesPart>();

            if (rp != null)
            {
                file.WriteLine(Environment.NewLine + "=== RULES ===");
                file.WriteLine(rp.Source);
            }

            EventsPart ep = obj.Parts.Get <EventsPart>();

            if (ep != null)
            {
                file.WriteLine(Environment.NewLine + "=== EVENTS SOURCE ===");
                file.WriteLine(ep.Source);
            }

            switch (obj.TypeDescriptor.Name)
            {
            case "Attribute":

                Artech.Genexus.Common.Objects.Attribute att = (Artech.Genexus.Common.Objects.Attribute)obj;

                file.WriteLine(Functions.ReturnPicture(att));
                if (att.Formula == null)
                {
                    file.WriteLine("");
                }
                else
                {
                    file.WriteLine(att.Formula.ToString());
                }
                break;

            case "Procedure":
                ProcedurePart pp = obj.Parts.Get <ProcedurePart>();
                if (pp != null)
                {
                    file.WriteLine(Environment.NewLine + "=== PROCEDURE SOURCE ===");
                    file.WriteLine(pp.Source);
                }
                break;

            case "Transaction":
                StructurePart sp = obj.Parts.Get <StructurePart>();
                if (sp != null)
                {
                    file.WriteLine(Environment.NewLine + "=== STRUCTURE ===");
                    file.WriteLine(sp.ToString());
                }
                break;

            case "WorkPanel":
                break;

            case "WebPanel":
                break;

            case "WebComponent":
                break;

            case "Table":
                Table tbl = (Table)obj;

                foreach (TableAttribute attr in tbl.TableStructure.Attributes)
                {
                    String line = "";
                    if (attr.IsKey)
                    {
                        line = "*";
                    }
                    else
                    {
                        line = " ";
                    }

                    line += attr.Name + "  " + attr.GetPropertiesObject().GetPropertyValueString("DataTypeString") + "-" + attr.GetPropertiesObject().GetPropertyValueString("Formula");

                    if (attr.IsExternalRedundant)
                    {
                        line += " External_Redundant";
                    }

                    line += " Null=" + attr.IsNullable;
                    if (attr.IsRedundant)
                    {
                        line += " Redundant";
                    }

                    file.WriteLine(line);
                }
                break;


            case "SDT":
                SDT sdtToList = (SDT)obj;
                if (sdtToList != null)
                {
                    file.WriteLine(Environment.NewLine + "=== STRUCTURE ===");
                    ListStructure(sdtToList.SDTStructure.Root, 0, file);
                }
                break;

            default:

                //Unknown object. Use export format.
                file.Write(SerializeObject(obj).ToString());
                break;
            }

            file.WriteLine(Environment.NewLine + "====== PROPERTIES =======");
            foreach (Property prop in obj.Properties)
            {
                if (!prop.IsDefault)
                {
                    file.WriteLine(prop.Name + " -> " + prop.Value.ToString());
                }
                else
                {
                    if ((prop.Name == "CommitOnExit") || (prop.Name == "TRNCMT") || (prop.Name == "GenerateObject"))
                    {
                        file.WriteLine(prop.Name + " -> " + prop.Value.ToString());
                    }
                }
            }

            //CATEGORIES
            IEnumerable <Artech.Udm.Framework.References.EntityReference> refe = obj.GetReferences();

            string        GUIDCatString = "00000000-0000-0000-0000-000000000006";
            List <string> categories    = new List <string>();

            foreach (Artech.Udm.Framework.References.EntityReference reference in refe)
            {
                Guid   GUIDRefTo       = reference.To.Type;
                string GUIDRefToString = GUIDRefTo.ToString();

                if (GUIDRefToString == GUIDCatString)
                {
                    KBCategory cat = KBCategory.Get(UIServices.KB.CurrentModel, reference.To.Id);
                    categories.Add(cat.Name);
                }
            }

            if (categories.Count > 0)
            {
                file.WriteLine(Environment.NewLine + "====== CATEGORIES =======");
                foreach (string name in categories)
                {
                    file.WriteLine(name);
                }
            }
        }
Ejemplo n.º 21
0
 internal bool MergeSDT(SDT obj, PatternInstanceElement c, UpdateObject uo, ObjectTemplate t)
 {
     int saveObject = 0;
     bool overwrite = (uo == UpdateObject.OverWrite ? true : false);
     saveObject += MergeSDTStructure(obj.SDTStructure, c, t.Source, overwrite);
     return saveObject > 0;
 }
Ejemplo n.º 22
0
        public static void AddSDTVariable(KBModel kbModel, Artech.Genexus.Common.Objects.Procedure proc, SDT sdtobj)
        {
            Variable oVariableNew = new Variable(proc.Variables);

            oVariableNew.Name = sdtobj.Name;
            oVariableNew.Type = eDBType.GX_SDT;

            DataType.ParseInto(kbModel, sdtobj.Name, oVariableNew);

            proc.Variables.Add(oVariableNew);
        }
Ejemplo n.º 23
0
        private void button1_Click_1(object sender, EventArgs e)
        {
            if (SDT.Text == "")
            {
                MessageBox.Show("Bạn thiếu Số điện thoại khách hàng", "Nhập thiếu thông tin khách hàng", MessageBoxButtons.OK, MessageBoxIcon.Error);
                SDT.Focus();
                return;
            }
            if (TenKH.Text == "")
            {
                MessageBox.Show("Bạn thiếu tên khách hàng", "Nhập thiếu thông tin khách hàng", MessageBoxButtons.OK, MessageBoxIcon.Error);
                TenKH.Focus();
                return;
            }
            if (!radioButton1.Checked && !radioButton2.Checked)
            {
                MessageBox.Show("Bạn Chưa lựa chọn hình thức tính điểm tích lũy cho khách hàng", "Nhập thiếu thông tin khách hàng", MessageBoxButtons.OK, MessageBoxIcon.Error);
                groupBox1.Focus();
                return;
            }
            if (dateTimePicker2.Value.Subtract(dateTimePicker1.Value).TotalHours < 2)
            {
                //MessageBox.Show(dateTimePicker2.Value.Subtract(dateTimePicker1.Value).TotalHours.ToString());
                MessageBox.Show("Thời gian tối thiểu để đặt bàn là từ 2 tiếng", "Nhập Sai thông tin yêu cầu", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            else
            {
                DataTable dt = BLL.getCustomerExixs(SDT.Text);
                if (dt.Rows.Count >= 1)
                {
                    MessageBox.Show("khách hàng đã tồm tại");
                    int landat = 1;
                    if (int.Parse(bll.getLatDatBan("BAN" + maban, MaKH.Text)) > 0)
                    {
                        landat++;
                        if (radioButton1.Checked)
                        {
                            bll.insertCustomers(TenKH.Text, DiaChi.Text, SDT.Text, 0, DateTime.Today);

                            // MessageBox.Show("insert Thành công với có làm thẻ tích lũy\n tiếp theo là insert Datban voi mã bàn và MaKH là:" + maban + MaKH.Text);

                            bll.insertDATBAN(MaKH.Text, "BAN" + maban, dateTimePicker1.Value, dateTimePicker2.Value, landat);
                            // MessageBox.Show("đã insert Datban voi ma ban la:" + maban);\
                        }
                        else if (radioButton2.Checked)
                        {
                            bll.insertCustomers(TenKH.Text, DiaChi.Text, SDT.Text, DateTime.Today);
                            // MessageBox.Show("insert thành công với không làm thẻ tích lũy\n tiếp theo là insert Datban voi mã bàn và MaKH là:" + maban+MaKH.Text);
                            bll.insertDATBAN(MaKH.Text, "BAN" + maban, dateTimePicker1.Value, dateTimePicker2.Value, landat);
                            //MessageBox.Show("đã insert Datban voi ma ban la:" + maban);
                        }
                    }
                    else
                    {
                        if (radioButton1.Checked)
                        {
                            bll.insertCustomers(TenKH.Text, DiaChi.Text, SDT.Text, 0, DateTime.Today);

                            // MessageBox.Show("insert Thành công với có làm thẻ tích lũy\n tiếp theo là insert Datban voi mã bàn và MaKH là:" + maban + MaKH.Text);

                            bll.insertDATBAN(MaKH.Text, "BAN" + maban, dateTimePicker1.Value, dateTimePicker2.Value, 1);
                            // MessageBox.Show("đã insert Datban voi ma ban la:" + maban);\
                        }
                        else if (radioButton2.Checked)
                        {
                            bll.insertCustomers(TenKH.Text, DiaChi.Text, SDT.Text, DateTime.Today);
                            // MessageBox.Show("insert thành công với không làm thẻ tích lũy\n tiếp theo là insert Datban voi mã bàn và MaKH là:" + maban+MaKH.Text);
                            bll.insertDATBAN(MaKH.Text, "BAN" + maban, dateTimePicker1.Value, dateTimePicker2.Value, 1);
                            //MessageBox.Show("đã insert Datban voi ma ban la:" + maban);
                        }
                    }
                }
                else
                {
                    MessageBox.Show("khách hàng chưa có");
                    int landat = 1;
                    if (int.Parse(bll.getLatDatBan("BAN" + maban, MaKH.Text)) > 0)
                    {
                        landat++;
                        if (radioButton1.Checked)
                        {
                            // MessageBox.Show("insert Thành công với có làm thẻ tích lũy\n tiếp theo là insert Datban voi mã bàn và MaKH là:" + maban + MaKH.Text);

                            bll.insertDATBAN(MaKH.Text, "BAN" + maban, dateTimePicker1.Value, dateTimePicker2.Value, landat);
                            // MessageBox.Show("đã insert Datban voi ma ban la:" + maban);\
                        }
                        else if (radioButton2.Checked)
                        {
                            // MessageBox.Show("insert thành công với không làm thẻ tích lũy\n tiếp theo là insert Datban voi mã bàn và MaKH là:" + maban+MaKH.Text);
                            bll.insertDATBAN(MaKH.Text, "BAN" + maban, dateTimePicker1.Value, dateTimePicker2.Value, landat);
                            //MessageBox.Show("đã insert Datban voi ma ban la:" + maban);
                        }
                    }
                    else
                    {
                        if (radioButton1.Checked)
                        {
                            bll.insertCustomers(TenKH.Text, DiaChi.Text, SDT.Text, 0, DateTime.Today);

                            // MessageBox.Show("insert Thành công với có làm thẻ tích lũy\n tiếp theo là insert Datban voi mã bàn và MaKH là:" + maban + MaKH.Text);

                            bll.insertDATBAN(MaKH.Text, "BAN" + maban, dateTimePicker1.Value, dateTimePicker2.Value, 1);
                            // MessageBox.Show("đã insert Datban voi ma ban la:" + maban);\
                        }
                        else if (radioButton2.Checked)
                        {
                            bll.insertCustomers(TenKH.Text, DiaChi.Text, SDT.Text, DateTime.Today);
                            // MessageBox.Show("insert thành công với không làm thẻ tích lũy\n tiếp theo là insert Datban voi mã bàn và MaKH là:" + maban+MaKH.Text);
                            bll.insertDATBAN(MaKH.Text, "BAN" + maban, dateTimePicker1.Value, dateTimePicker2.Value, 1);
                            //MessageBox.Show("đã insert Datban voi ma ban la:" + maban);
                        }
                    }
                }
            }


            loadDataGirdView(ListCustomersDiningTable, dataGridView1);
            frmBanAn frmBanAn = new frmBanAn();

            frmBanAn.ShowDialog();
        }