Advertisement
touhid_xml

Bill Creation from C#

Feb 20th, 2017
386
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 62.94 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Windows.Forms;
  9. using MySql.Data.MySqlClient;
  10. using System.Threading;
  11. using System.Configuration;
  12. using System.Data.SQLite;
  13. using System.Drawing.Printing;
  14. using System.Globalization;
  15. using System.IO;
  16. using System.Runtime.CompilerServices;
  17. using FluentDate;
  18. using FluentDateTime;
  19. namespace Checkup_Diagnostic
  20. {
  21.     public partial class Bill_Creation : Form
  22.     {
  23.         private string conString = Properties.Settings.Default.connectionString;
  24.         private List<string> TestCatList = new List<string>();
  25.         private List<string> PatientList = new List<string>();
  26.  
  27.         private int BillingID;
  28.  
  29.         private int invoiceID;
  30.  
  31.         /* Patiend data */
  32.         private int patientID;
  33.         private string patientName;
  34.         private string patientMobile;
  35.         private string patientSex;
  36.         private string PatientAge;
  37.         /* Patiend data end */
  38.  
  39.         /* Doctor Data */
  40.         private int doctorID;
  41.         private string doctorName;
  42.         private string doctorMobile;
  43.         private string doctorProfile;
  44.         /* Doctor Data end */
  45.  
  46.         /* Refferer Data */
  47.  
  48.         private int reffererID;
  49.         private string reffererName;
  50.         private string reffererMobile;
  51.         private decimal totalAmount;
  52.         private decimal totalDiscount;
  53.  
  54.         /* Refferer Data  end*/
  55.  
  56.  
  57.         //user data
  58.         private int userId;
  59.         private string userName;
  60.         private string fullName;
  61.         private  int userRole;
  62.         private string loginTime;
  63.         // end of user data
  64.  
  65.         //temporary item data for delete row
  66.         private decimal tmpPC = 0;
  67.         private decimal tmpAmount = 0;
  68.         //end of temporary item data for delete row
  69.  
  70.  
  71.  
  72.        
  73.  
  74.  
  75.  
  76.         public Bill_Creation()
  77.         {
  78.            
  79.             InitializeComponent();
  80.         }
  81.  
  82.        
  83.        
  84.  
  85.         private void loadMainTestCategory()
  86.         {
  87.             MySqlConnection Con = new MySqlConnection(this.conString);
  88.             MySqlCommand Command = Con.CreateCommand();
  89.             Command.CommandText = "SELECT `tg_name` FROM `dms_testgroup` WHERE `status` = 1";
  90.  
  91.             Con.Open();
  92.             MySqlDataReader Reader = Command.ExecuteReader();
  93.  
  94.             while(Reader.Read()){
  95.                 TestCatList.Add(Reader["tg_name"].ToString());
  96.             }
  97.  
  98.             Con.Close();
  99.         }
  100.  
  101.        
  102.  
  103.         private void getBillId()
  104.         {
  105.             MySqlConnection Con = new MySqlConnection(this.conString);
  106.             MySqlCommand Command = Con.CreateCommand();
  107.             Command.CommandText = "SELECT `invoice_id` FROM `dms_invoice` ORDER BY `invoice_id` DESC LIMIT 0,1";
  108.             Con.Open();
  109.             MySqlDataReader Reader = Command.ExecuteReader();
  110.            
  111.             if(Reader.Read()){
  112.                 this.BillingID = int.Parse(Reader["invoice_id"].ToString());
  113.             }
  114.  
  115.             Con.Close();
  116.         }
  117.  
  118.         private void Bill_Creation_Load(object sender, EventArgs e)
  119.         {
  120.            
  121.             loadUserInfo();
  122.             //MessageBox.Show(fullName);
  123.            
  124.             getBillId();
  125.             tbxBillNo.Text = BillingID.ToString();
  126.          
  127.             tbxBillNo.Enabled = false;
  128.             tbxPatientID.Enabled = false;
  129.             tbxPatientMobile.Enabled = false;
  130.             tbxPatientName.Enabled = false;
  131.             cbxPatientGender.Enabled = false;
  132.             tbxAge.Enabled = false;
  133.             dateTimePicker1.Value = DateTime.Now;
  134.             /**
  135.           tbxRefferedBy.Enabled = false;
  136.           tbxRefference.Enabled = false;
  137.           dateTimePicker1.Value = DateTime.Now;
  138.           btnRefferedByNew.Enabled = false;
  139.           btnRefferenceNew.Enabled = false;
  140.           tbxSearch.Enabled = false;*/
  141.  
  142.             Load_Test_Item_Group();
  143.  
  144.           //  cbxItem.Enabled = true;
  145.           //  cbxItemGroup.Enabled = false;
  146.            // tbxPrice.Enabled = false;
  147.           //  tbxDiscount.Enabled = false;
  148.           //  btnAdd.Enabled = false;
  149.  
  150.             tbxOverallDiscount.Enabled = false;
  151.             tbxAdvance.Enabled = false;
  152.             dtmDelivery.Value = DateTime.Now.AddHours(3);
  153.  
  154.         }
  155.  
  156.         private void LoadPatientList()
  157.         {
  158.             MySqlConnection Con = new MySqlConnection(this.conString);
  159.             MySqlCommand Command = Con.CreateCommand();
  160.             Command.CommandText = "SELECT `patient_id` FROM `dms_patient` ORDER BY `patient_id` DESC";
  161.  
  162.             Con.Open();
  163.             MySqlDataReader Reader = Command.ExecuteReader();
  164.  
  165.             if (Reader.Read())
  166.             {
  167.                 ///this.BillingID = int.Parse(Reader["invoice_id"].ToString());
  168.                 PatientList.Add(Reader["patient_id"].ToString());
  169.             }
  170.  
  171.             Con.Close();
  172.         }
  173.  
  174.  
  175.  
  176.         private bool getPatientInfo(string term)
  177.         {
  178.             bool count;
  179.             MySqlConnection Con = new MySqlConnection(this.conString);
  180.             MySqlCommand Command = Con.CreateCommand();
  181.             Command.CommandText = "SELECT * FROM `dms_patient` WHERE `patient_id` = @pid OR  `patient_name` REGEXP @pname OR `patient_mobile` REGEXP @mobile ";
  182.             Command.Parameters.AddWithValue("@pid", term.Trim());
  183.             Command.Parameters.AddWithValue("@pname", term);
  184.             Command.Parameters.AddWithValue("@mobile", term);
  185.  
  186.  
  187.  
  188.  
  189.            // Command.Parameters.AddWithValue("@term", term);
  190.  
  191.             Con.Open();
  192.             MySqlDataReader Reader = Command.ExecuteReader();
  193.  
  194.            if(Reader.Read()){
  195.                count = true;
  196.                this.patientID = int.Parse(Reader["patient_id"].ToString());
  197.                this.patientName = Reader["patient_name"].ToString();
  198.                this.PatientAge = Reader["patient_age"].ToString();
  199.                this.patientMobile = Reader["patient_mobile"].ToString();
  200.                this.patientSex = Reader["patient_sex"].ToString();
  201.  
  202.              
  203.            }
  204.            else
  205.            {
  206.                count = false;
  207.            }
  208.            tbxRefferedBy.Focus();
  209.            return count;
  210.         }
  211.  
  212.         private void tbxSearch_KeyPress(object sender, KeyPressEventArgs e)
  213.         {
  214.  
  215.            
  216.             if (e.KeyChar == ' ')
  217.             {
  218.  
  219.                 if (tbxSearch.Text.Trim() != String.Empty)
  220.                 {
  221.                     //tbxPatientName.Text += tbxPatientID.Text;
  222.  
  223.  
  224.                     if (getPatientInfo(tbxSearch.Text.Trim().ToString()))
  225.                     {
  226.                         tbxPatientID.Text = this.patientID.ToString();
  227.                         tbxPatientName.Text = this.patientName;
  228.                         tbxPatientMobile.Text = this.patientMobile;
  229.                         tbxAge.Text = this.PatientAge;
  230.                         cbxPatientGender.SelectedIndex = cbxPatientGender.Items.IndexOf(this.patientSex);
  231.  
  232.                         tbxPatientID.Enabled = false;
  233.                         tbxPatientMobile.Enabled = false;
  234.                         tbxPatientName.Enabled = false;
  235.                         cbxPatientGender.Enabled = false;
  236.                         tbxAge.Enabled = false;
  237.                         tbxSearch.Enabled = false;
  238.                         tbxSearch.Enabled = true;
  239.  
  240.                     }
  241.                     else
  242.                     {
  243.                         MessageBox.Show("Search term doest not match", "Search Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
  244.                         tbxSearch.Focus();
  245.                     }
  246.                 }
  247.                 else
  248.                 {
  249.                     MessageBox.Show("Search term must not be empty", "Search Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
  250.                     tbxSearch.Focus();
  251.                 }
  252.  
  253.                    
  254.  
  255.            
  256.                
  257.              
  258.             }  
  259.         }
  260.  
  261.         private void tbxSearch_TextChanged(object sender, EventArgs e)
  262.         {
  263.            
  264.         }
  265.  
  266.         private void tbxSearch_KeyDown(object sender, KeyEventArgs e)
  267.         {
  268.             if (e.KeyValue == 32)
  269.             {
  270.            
  271.                
  272.             }
  273.            
  274.         }
  275.  
  276.         private void tbxSearch_Leave(object sender, EventArgs e)
  277.         {
  278.             tbxSearch.Clear();
  279.            
  280.         }
  281.  
  282.         private void btnRefferedByNew_Click(object sender, EventArgs e)
  283.         {
  284.            
  285.         }
  286.  
  287.         private void groupBox2_Enter(object sender, EventArgs e)
  288.         {
  289.  
  290.         }
  291.  
  292.         private void label12_Click(object sender, EventArgs e)
  293.         {
  294.            
  295.         }
  296.  
  297.         private void label13_Click(object sender, EventArgs e)
  298.         {
  299.  
  300.         }
  301.  
  302.         private void label15_Click(object sender, EventArgs e)
  303.         {
  304.  
  305.         }
  306.  
  307.         private void tbxRefferedBy_KeyPress(object sender, KeyPressEventArgs e)
  308.         {
  309.  
  310.             if (e.KeyChar == ' ')
  311.             {
  312.  
  313.                 if (tbxRefferedBy.Text.Trim() != String.Empty)
  314.                 {
  315.                     //tbxPatientName.Text += tbxPatientID.Text;
  316.  
  317.  
  318.                     if (getDoctorInfo(tbxRefferedBy.Text.Trim().ToString()))
  319.                     {
  320.                         lblDoctorID.Text = this.doctorID.ToString();
  321.                         lblDoctorName.Text = this.doctorName;
  322.                         lblDoctorPhone.Text = this.doctorMobile;
  323.                         lblDoctorProfile.Text = this.doctorProfile;
  324.                         tbxRefferedBy.Enabled = false;
  325.                         tbxRefferedBy.Enabled = true;
  326.  
  327.                         tbxRefference.Focus();
  328.  
  329.                     }
  330.                     else
  331.                     {
  332.                         MessageBox.Show("Search term doest not match", "Search Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
  333.                         tbxRefferedBy.Focus();
  334.                     }
  335.                 }
  336.                 else
  337.                 {
  338.                     MessageBox.Show("Search term must not be empty", "Search Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
  339.                     tbxRefferedBy.Focus();
  340.                 }
  341.  
  342.  
  343.  
  344.  
  345.  
  346.  
  347.             }  
  348.         }
  349.  
  350.         private bool getDoctorInfo(string term)
  351.         {
  352.             bool count;
  353.             MySqlConnection Con = new MySqlConnection(this.conString);
  354.             MySqlCommand Command = Con.CreateCommand();
  355.             Command.CommandText = "SELECT * FROM `doctors` WHERE `doctor_id` = @did OR `doctor_name` REGEXP @dname OR `doctor_phone` REGEXP @dobile";
  356.             Command.Parameters.AddWithValue("@did", term.Trim());
  357.             Command.Parameters.AddWithValue("@dname", term);
  358.             Command.Parameters.AddWithValue("@dobile", term);
  359.  
  360.  
  361.  
  362.  
  363.             // Command.Parameters.AddWithValue("@term", term);
  364.  
  365.             Con.Open();
  366.             MySqlDataReader Reader = Command.ExecuteReader();
  367.  
  368.             if (Reader.Read())
  369.             {
  370.                 count = true;
  371.                 this.doctorID = int.Parse(Reader["doctor_id"].ToString());
  372.                 this.doctorName = Reader["doctor_name"].ToString();
  373.                 this.doctorMobile = Reader["doctor_phone"].ToString();
  374.                 this.doctorProfile = Reader["doctor_degree"].ToString();
  375.  
  376.  
  377.             }
  378.                
  379.             else
  380.             {
  381.                 count = false;
  382.             }
  383.             Reader.Close();
  384.  
  385.             Con.Close();
  386.             return count;
  387.         }
  388.  
  389.         private void tbxRefferedBy_Leave(object sender, EventArgs e)
  390.         {
  391.  
  392.             tbxRefferedBy.Clear();
  393.         }
  394.  
  395.         private void tbxRefferedBy_KeyDown(object sender, KeyEventArgs e)
  396.         {
  397.  
  398.             if (e.KeyValue == 32)
  399.             {
  400.                
  401.                
  402.  
  403.             }
  404.            
  405.         }
  406.  
  407.         private void tbxRefferedBy_TextChanged(object sender, EventArgs e)
  408.         {
  409.  
  410.         }
  411.  
  412.         private void tbxRefferedBy_Enter(object sender, EventArgs e)
  413.         {
  414.             tbxRefferedBy.Clear();
  415.         }
  416.  
  417.  
  418.         private bool getReffererInfo(string term)
  419.         {
  420.      
  421.           bool count;
  422.             MySqlConnection Con = new MySqlConnection(this.conString);
  423.             MySqlCommand Command = Con.CreateCommand();
  424.             Command.CommandText = "SELECT * FROM `reference` WHERE `ref_id` = @rid OR `ref_name` REGEXP @rname  OR `ref_mobile` REGEXP @rmobile ";
  425.             Command.Parameters.AddWithValue("@rid", term);
  426.             Command.Parameters.AddWithValue("@rname", term);
  427.             Command.Parameters.AddWithValue("@rmobile", term);
  428.  
  429.  
  430.             Con.Open();
  431.             MySqlDataReader Reader = Command.ExecuteReader();
  432.  
  433.             if (Reader.Read())
  434.             {
  435.                 count = true;
  436.  
  437.                 this.reffererID = int.Parse(Reader["ref_id"].ToString());
  438.                 this.reffererName = Reader["ref_name"].ToString();
  439.                 this.reffererMobile = Reader["ref_mobile"].ToString();
  440.             }
  441.  
  442.             else
  443.             {
  444.                 count = false;
  445.             }
  446.             Reader.Close();
  447.  
  448.             Con.Close();
  449.             return count;
  450.  
  451.            
  452.         }
  453.  
  454.         private void tbxRefference_KeyPress(object sender, KeyPressEventArgs e)
  455.         {
  456.            
  457.             if (e.KeyChar == ' ')
  458.             {
  459.  
  460.                 if (tbxRefference.Text.Trim() != String.Empty)
  461.                 {
  462.                     //tbxPatientName.Text += tbxPatientID.Text;
  463.  
  464.  
  465.                     if (getReffererInfo(tbxRefference.Text.Trim().ToString()))
  466.                     {
  467.  
  468.                         lblReffererID.Text = this.reffererID.ToString();
  469.                         lblReffererName.Text = this.reffererName;
  470.                         lblReffererPhone.Text = this.reffererMobile;
  471.                        
  472.                         tbxRefference.Enabled = false;
  473.                         tbxRefference.Enabled = true;
  474.  
  475.                         cbxItemGroup.Focus();
  476.  
  477.                     }
  478.                     else
  479.                     {
  480.                         MessageBox.Show("Search term doest not match", "Search Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
  481.                         tbxRefference.Focus();
  482.                     }
  483.                 }
  484.                 else
  485.                 {
  486.                     MessageBox.Show("Search term must not be empty", "Search Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
  487.                     tbxRefference.Focus();
  488.                 }
  489.  
  490.  
  491.  
  492.  
  493.  
  494.  
  495.             }  
  496.         }
  497.  
  498.         private void lblReffererID_Click(object sender, EventArgs e)
  499.         {
  500.  
  501.         }
  502.  
  503.         private void tbxRefference_Leave(object sender, EventArgs e)
  504.         {
  505.             tbxRefference.Clear();
  506.         }
  507.  
  508.        
  509.  
  510.         private void Load_Test_Item_Group()
  511.         {
  512.             MySqlConnection con = new MySqlConnection(conString);
  513.             MySqlCommand command = con.CreateCommand();
  514.             command.CommandText = "SELECT * FROM `dms_testgroup` WHERE `status` = 1 ORDER BY `tg_id` DESC";
  515.             con.Open();
  516.             MySqlDataReader Reader = command.ExecuteReader();
  517.  
  518.             while (Reader.Read())
  519.             {
  520.  
  521.               //  MessageBox.Show(Reader["tg_name"].ToString());
  522.                 cbxItemGroup.Items.Add(new ComboBoxItem(Reader["tg_name"].ToString(),  Reader["tg_id"].ToString()));
  523.             }
  524.         }
  525.  
  526.  
  527.         private void LoadTestItems()
  528.         {
  529.             cbxItem.Items.Clear();
  530.                 int testGroupId = int.Parse(((ComboBoxItem)cbxItemGroup.SelectedItem).HiddenValue);
  531.           //  MessageBox.Show(testGroupId.ToString());
  532.             MySqlConnection con = new MySqlConnection(conString);
  533.             MySqlCommand command = con.CreateCommand();
  534.             command.CommandText = "SELECT * FROM `dms_testitems` WHERE `status` = 1 AND `item_cat` = @cat ORDER BY `item_id` DESC";
  535.             command.Parameters.AddWithValue("@cat", testGroupId);
  536.             con.Open();
  537.             MySqlDataReader Reader = command.ExecuteReader();
  538.  
  539.             while (Reader.Read())
  540.             {
  541.                 cbxItem.Items.Add(new ComboBoxItem(Reader["item_name"].ToString(), Reader["item_id"].ToString()));
  542.             }
  543.         }
  544.  
  545.        
  546.  
  547.         private void cbxItemGroup_SelectedIndexChanged(object sender, EventArgs e)
  548.         {
  549.             cbxItem.Enabled = true;
  550.             LoadTestItems();
  551.             cbxItem.Focus();
  552.         }
  553.  
  554.         private void cbxItem_SelectedIndexChanged_1(object sender, EventArgs e)
  555.         {
  556.             int itemId = int.Parse(((ComboBoxItem)cbxItem.SelectedItem).HiddenValue);
  557.             MySqlConnection con = new MySqlConnection(this.conString);
  558.             MySqlCommand command = con.CreateCommand();
  559.             command.CommandText = "SELECT `item_price` FROM `dms_testitems` WHERE `item_id` = @itemid ";
  560.             command.Parameters.AddWithValue("@itemid",itemId);
  561.             con.Open();
  562.             MySqlDataReader Reader = command.ExecuteReader();
  563.             if (Reader.Read())
  564.             {
  565.                 tbxPrice.Text = Reader["item_price"].ToString();
  566.                 tbxDiscount.Text = "0";
  567.             }
  568.             command.Cancel();
  569.             Reader.Close();
  570.             con.Close();
  571.  
  572.             btnAdd.Focus();
  573.         }
  574.  
  575.         private void button1_Click(object sender, EventArgs e)
  576.         {
  577.            
  578.  
  579.             if (is_valid())
  580.             {
  581.                 int itemId = int.Parse(((ComboBoxItem)cbxItem.SelectedItem).HiddenValue);
  582.                 MySqlConnection con = new MySqlConnection(this.conString);
  583.                 MySqlCommand command = con.CreateCommand();
  584.                 command.CommandText = "SELECT * FROM `dms_testitems` WHERE `item_id` = @itemid ";
  585.                 command.Parameters.AddWithValue("@itemid", itemId);
  586.                 con.Open();
  587.                 MySqlDataReader Reader = command.ExecuteReader();
  588.                 if (Reader.Read())
  589.                 {
  590.                     // decimal totalAmount = decimal.Parse(tbxPrice.Text) + decimal.Parse(tbxDiscount.Text);
  591.                      decimal totalAmount = decimal.Parse(tbxPrice.Text);
  592.                      int roomNo = getRoomNo(int.Parse(Reader["item_cat"].ToString()));
  593.                      this.dataGridView1.Rows.Add(Reader["item_name"], Reader["item_description"], tbxDiscount.Text, totalAmount.ToString(), roomNo);
  594.                     this.totalAmount += decimal.Parse(tbxPrice.Text);
  595.                     this.totalDiscount += decimal.Parse(tbxDiscount.Text);
  596.                     tbxPcPercentage.Text = this.totalDiscount.ToString();
  597.                     tbxSubTotal.Text = this.totalAmount.ToString();
  598.                     tbxGrandTotal.Text = this.totalAmount.ToString();
  599.  
  600.  
  601.                 }
  602.                 command.Cancel();
  603.                 // Reader.Close();
  604.  
  605.                 con.Close();
  606.  
  607.  
  608.                 btnPrint.Enabled = true;
  609.                 tbxOverallDiscount.Enabled = true;
  610.                 tbxAdvance.Enabled = true;
  611.                 cbxItemGroup.Focus();
  612.  
  613.                 //change payment status
  614.                 decimal value;
  615.                 bool isParsed = decimal.TryParse(tbxAdvance.Text.Trim(), out value);
  616.                 int grandTotal;
  617.                 int advance;
  618.                 grandTotal = decimal.ToInt32(decimal.Parse(tbxGrandTotal.Text));
  619.                 advance = decimal.ToInt32(value);
  620.                 if (grandTotal <= advance)
  621.                 {
  622.                     lblStatus.Text = "Paid";
  623.                     lblStatus.ForeColor = System.Drawing.Color.Green;
  624.                 }
  625.                 else
  626.                 {
  627.                     lblStatus.Text = "Due";
  628.                     lblStatus.ForeColor = System.Drawing.Color.Red;
  629.                 }
  630.             }
  631.             else
  632.             {
  633.                
  634.             }
  635.            
  636.         }
  637.  
  638.         private int getRoomNo(int roomId)
  639.         {
  640.             MySqlConnection con = new MySqlConnection(this.conString);
  641.             MySqlCommand command = con.CreateCommand();
  642.             command.CommandText = "SELECT `room_no` FROM `dms_testgroup` WHERE `tg_id` = @id ";
  643.             command.Parameters.AddWithValue("@id", roomId);
  644.             con.Open();
  645.             MySqlDataReader Reader = command.ExecuteReader();
  646.             if (Reader.Read())
  647.             {
  648.  
  649.                 return int.Parse(Reader["room_no"].ToString());
  650.  
  651.             }
  652.             command.Cancel();
  653.             // Reader.Close();
  654.  
  655.             con.Close();
  656.  
  657.             return -1;
  658.         }
  659.  
  660.         private bool is_valid()
  661.         {
  662.             if (cbxItemGroup.SelectedIndex == -1)
  663.             {
  664.                
  665.                 MessageBox.Show("Item group is not selected", "Item Add Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
  666.                 cbxItemGroup.Focus();
  667.                 return false;
  668.             }
  669.  
  670.             if (cbxItem.SelectedIndex == -1)
  671.             {
  672.                 MessageBox.Show("Item  is not selected", "Item Add Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
  673.                 cbxItem .Focus();
  674.                 return false;
  675.             }
  676.  
  677.  
  678.  
  679.             if (tbxPrice.Text.Trim() == String.Empty)
  680.             {
  681.                 MessageBox.Show("Item Price is empty", "Item Add Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
  682.                 tbxPrice.Focus();
  683.                 return false;
  684.             }
  685.  
  686.  
  687.  
  688.             if (tbxDiscount.Text.Trim() == String.Empty)
  689.             {
  690.                 MessageBox.Show("Discount is empty", "Item Add Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
  691.                 tbxDiscount.Focus();
  692.                 return false;
  693.             }
  694.  
  695.  
  696.             return true;
  697.         }
  698.  
  699.         private void btnPrint_Click(object sender, EventArgs e)
  700.         {
  701.            
  702.             if (is_valid_for_print())
  703.             {
  704.                 PrinterSettings ps = new PrinterSettings();
  705.                 printDocument1.PrinterSettings = ps;
  706.                 IEnumerable<PaperSize> paperSizes = ps.PaperSizes.Cast<PaperSize>();
  707.                 PaperSize sizeA4 = paperSizes.First<PaperSize>(size => size.Kind == PaperKind.A4); // setting paper size to A4 size
  708.                 //PaperSize paperSize = new PaperSize("My Envelope", 595, 842);
  709.                // paperSize.RawKind = (int)PaperKind.Custom;
  710.  
  711.                 printDocument1.DefaultPageSettings.PaperSize = sizeA4;
  712.        
  713.  
  714.                 printPreviewDialog1.Document = printDocument1;
  715.                 printPreviewDialog1.PrintPreviewControl.Zoom = 100 / 100f;
  716.                 ((Form)printPreviewDialog1).WindowState = FormWindowState.Maximized;
  717.                 printPreviewDialog1.ShowDialog();
  718.                
  719.             }
  720.            
  721.         }
  722.  
  723.         private bool is_valid_for_print()
  724.         {
  725.             if (dataGridView1.Rows.Count <= 1)
  726.             {
  727.                 MessageBox.Show("Must add some item", "Validation Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
  728.                 return false;
  729.             }
  730.             if (tbxPatientID.Text.Trim() == String.Empty)
  731.             {
  732.                 MessageBox.Show("Patient is not selected", "Validation Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
  733.                 return false;
  734.             }
  735.             return true;
  736.         }
  737.  
  738.         private bool saveInvoiceInfo()
  739.         {
  740.             bool isSaveSuccess = false;
  741.             decimal subTotal = 0, discount = 0, advance = 0, due = 0, grandTotal = 0;
  742.             bool isSubtotal, isDiscount, isAdvance;
  743.  
  744.             isSubtotal = decimal.TryParse(tbxSubTotal.Text.Trim(), out subTotal);
  745.             isDiscount = decimal.TryParse(tbxOverallDiscount.Text.Trim(), out discount);
  746.             isAdvance = decimal.TryParse(tbxAdvance.Text.Trim(), out advance);
  747.  
  748.             if (isDiscount)
  749.             {
  750.                 grandTotal = subTotal - discount;
  751.             }
  752.             else
  753.             {
  754.                 grandTotal = subTotal;
  755.             }
  756.  
  757.             if (isAdvance)
  758.             {
  759.                 due = grandTotal - advance;
  760.                 if (due < 0)
  761.                 {
  762.                     due = 0;
  763.                 }
  764.             }
  765.             else
  766.             {
  767.                 due = grandTotal;
  768.             }
  769.  
  770.  
  771.            
  772.             MySqlConnection con = new MySqlConnection(this.conString);
  773.  
  774.             try
  775.             {
  776.  
  777.                
  778.                 MySqlCommand command = con.CreateCommand();
  779.                 command.CommandText = "INSERT INTO `dms`.`dms_invoice` (`invoice_id`, `invoice_patient`, `invoice_creator`, `invoice_amount`, `invoice_discount`,`due`,`advance`,`delivery_date`, `invoice_date`, `invoice_refby`, `invoice_refferedby`, `time_added`, `time_updated`, `status`) VALUES (NULL, @patientid, @creator , @amount, @discount, @due , @advance , @delivery, @invoicedate  , @refby , @refferer, CURDATE() , CURRENT_TIMESTAMP , '1')";
  780.                 command.Parameters.AddWithValue("@patientid", this.patientID);
  781.                 command.Parameters.AddWithValue("@creator", this.userId);
  782.                 command.Parameters.AddWithValue("@amount", grandTotal);
  783.                 command.Parameters.AddWithValue("@discount", discount);
  784.                 command.Parameters.AddWithValue("@due", due);
  785.                 command.Parameters.AddWithValue("@delivery", dtmDelivery.Value);
  786.                 command.Parameters.AddWithValue("@advance", advance);
  787.                 command.Parameters.AddWithValue("@refby", this.doctorID);
  788.                 command.Parameters.AddWithValue("@refferer", this.reffererID);
  789.                
  790.                
  791.                
  792.                 command.Parameters.AddWithValue("@invoicedate", dateTimePicker1.Value.Date);
  793.  
  794.                 con.Open();
  795.                 int a = command.ExecuteNonQuery();
  796.                 if (a > 0)
  797.                 {
  798.                     int InvoiceID = int.Parse(command.LastInsertedId.ToString());
  799.                     this.BillingID = InvoiceID;
  800.  
  801.                     saveInvoiceItems(InvoiceID);
  802.  
  803.                     if (lblReffererID.Text.Trim() != "Refferer ID")
  804.                     {
  805.                         if (!save_pc_info(InvoiceID))
  806.                         {
  807.                             MessageBox.Show("Database operation failed", "P.C. info Save Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
  808.                         }
  809.                     }
  810.                     isSaveSuccess = true;
  811.  
  812.                 }
  813.                 else
  814.                 {
  815.                     isSaveSuccess = false;
  816.                 }
  817.  
  818.                
  819.             }
  820.  
  821.             catch (MySqlException e)
  822.             {
  823.                 MessageBox.Show(e.Message, "Mysql insertion error", MessageBoxButtons.OK, MessageBoxIcon.Error);
  824.             }
  825.  
  826.             con.Close();
  827.  
  828.  
  829.             return isSaveSuccess;
  830.  
  831.  
  832.         }
  833.  
  834.         private void saveInvoiceItems(int invoiceID)
  835.         {
  836.             MySqlConnection con = new MySqlConnection(this.conString);
  837.             foreach (DataGridViewRow row in dataGridView1.Rows)
  838.             {
  839.                 // MessageBox.Show(row.Cells[1].Value.ToString());
  840.                 if (row.Cells[1].Value != null)
  841.                 {
  842.                     MySqlCommand command = con.CreateCommand();
  843.                     command.CommandText = "INSERT INTO `dms`.`dms_invoiceitems` (`item_id`,  `item_description`, `item_discount`, `item_price`, `item_amount`, `inovice_id`, `status`) VALUES (NULL , @itemdesc , @discount , @price , @amount , @invoiceid , '1')";
  844.                  
  845.                     command.Parameters.AddWithValue("@itemdesc", row.Cells[0].Value.ToString());
  846.                     command.Parameters.AddWithValue("@discount", row.Cells[1].Value.ToString());
  847.                     command.Parameters.AddWithValue("@price", DBNull.Value);
  848.                     command.Parameters.AddWithValue("@amount", row.Cells[3].Value.ToString());
  849.                     command.Parameters.AddWithValue("@invoiceid", invoiceID);
  850.  
  851.                     con.Open();
  852.             int a = command.ExecuteNonQuery();
  853.                     if (a > 0)
  854.                     {
  855.                         //MessageBox.Show("Command Executed");
  856.                     }
  857.                     else
  858.                     {
  859.                        // MessageBox.Show("Command not executed");
  860.                     }
  861.  
  862.                     con.Close();
  863.  
  864.                    
  865.                    
  866.  
  867.                 }
  868.             }
  869.  
  870.            
  871.         }
  872.  
  873.         private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
  874.         {
  875.             decimal subTotal = 0, discount = 0, advance = 0, due = 0, grandTotal = 0;
  876.             bool isSubtotal, isDiscount, isAdvance;
  877.  
  878.             isSubtotal = decimal.TryParse(tbxSubTotal.Text.Trim(), out subTotal);
  879.             isDiscount = decimal.TryParse(tbxOverallDiscount.Text.Trim(), out discount);
  880.             isAdvance = decimal.TryParse(tbxAdvance.Text.Trim(), out advance);
  881.  
  882.             if (isDiscount)
  883.             {
  884.                 grandTotal = subTotal - discount;
  885.             }
  886.             else
  887.             {
  888.                 grandTotal = subTotal;
  889.             }
  890.  
  891.             if (isAdvance)
  892.             {
  893.                 due = grandTotal - advance;
  894.                 if (due < 0)
  895.                 {
  896.                     due = 0;
  897.                 }
  898.             }
  899.             else
  900.             {
  901.                 due = grandTotal;
  902.             }
  903.  
  904.  
  905.  
  906.  
  907.  
  908.             //totalDue = grandtotal <= totalAdvance ? 0 : ((grandtotal - overallDiscount) - totalAdvance);
  909.  
  910.  
  911.  
  912.            
  913.  
  914.  
  915.             string nameTitle;
  916.  
  917.             if (patientSex.Contains("Male"))
  918.             {
  919.                 nameTitle = "MR. ";
  920.             }
  921.             else
  922.             {
  923.                 nameTitle = "MRS. ";
  924.             }
  925.            
  926.            
  927.             /****************************
  928.              * Copy 1
  929.              **************************/
  930.  
  931.             /** Head Column 1**/
  932.             string colorcode = "#2F2F30";
  933.             int argb = Int32.Parse(colorcode.Replace("#", ""), NumberStyles.HexNumber);
  934.             Color clr = Color.FromArgb(argb);
  935.             //System.Drawing.Color col = System.Drawing.ColorTranslator.FromHtml("#2F2F30");
  936.             Pen blackPen = new Pen(Color.DimGray, 1);
  937.             int primaryHeight = 45;
  938.             e.Graphics.DrawRectangle(blackPen, 40, primaryHeight, 725, 90);
  939.             e.Graphics.DrawLine(blackPen, 460, 135, 460, primaryHeight);
  940.             primaryHeight += 0;
  941.             e.Graphics.DrawString("Check Up Diagnostic & Hospital ", new Font("Calibri", 14, FontStyle.Bold), new SolidBrush(Color.Black), new Point(45, primaryHeight));
  942.             primaryHeight += 25;
  943.             e.Graphics.DrawString("Balubari, Dinajpur", new Font("Calibri", 10, FontStyle.Bold), Brushes.Black, new Point(45, primaryHeight));
  944.             e.Graphics.DrawString("Tel:  +8801738765544", new Font("Calibri", 10, FontStyle.Bold), Brushes.Black, new Point(250, primaryHeight));
  945.             primaryHeight += 20;
  946.             e.Graphics.DrawString("Money Receipt / Voucher", new Font("Calibri", 12, FontStyle.Bold), Brushes.Black, new Point(130, primaryHeight));
  947.             primaryHeight += 20;
  948.             e.Graphics.DrawString("Ref. By: ", new Font("Calibri", 10, FontStyle.Regular), Brushes.Black, new Point(45, primaryHeight));
  949.             e.Graphics.DrawString(doctorName +", " + doctorProfile, new Font("Calibri",10, FontStyle.Bold), Brushes.Black, new Point(110, primaryHeight));
  950.  
  951.             /** End of Head Column 1**/
  952.  
  953.             /** Head Colum2**/
  954.             Random r = new Random();
  955.             int height2 = 45;
  956.             e.Graphics.DrawString("Voucher No:  "  + DateTime.Now.Year + "-" + DateTime.Now.Month + "-" + BillingID.ToString(), new Font("Calibri", 10, FontStyle.Regular), new SolidBrush(Color.Black), new Point(470, height2));
  957.             height2 += 15;
  958.             e.Graphics.DrawString("Name:", new Font("Calibri", 10, FontStyle.Regular), new SolidBrush(Color.Black), new Point(470, height2));
  959.             e.Graphics.DrawString(nameTitle + this.patientName.ToUpper(), new Font("Calibri", 10, FontStyle.Bold), new SolidBrush(Color.Black), new Point(540, height2));
  960.             height2 += 15;
  961.             e.Graphics.DrawString("Reg. No:", new Font("Calibri", 10, FontStyle.Regular), new SolidBrush(Color.Black), new Point(470, height2));
  962.             e.Graphics.DrawString("" + DateTime.Now.Year + "-" + DateTime.Now.Month + "-" + BillingID.ToString(), new Font("Calibri", 11, FontStyle.Regular), new SolidBrush(Color.Black), new Point(540, height2));
  963.             e.Graphics.DrawString("CN: C-" + r.Next(1000, 9999) + "-" + r.Next(1000, 9999), new Font("Calibri", 10, FontStyle.Regular), new SolidBrush(Color.Black), new Point(650, height2));
  964.             height2 += 15;
  965.             e.Graphics.DrawString("Date:  " + dateTimePicker1.Value.ToString("dd/MM/yyyy h:mm"), new Font("Calibri", 10, FontStyle.Regular), new SolidBrush(Color.Black), new Point(470, height2));
  966.             e.Graphics.DrawString("Age:  " + this.PatientAge.ToString() + " yrs.", new Font("Calibri", 10, FontStyle.Regular), new SolidBrush(Color.Black), new Point(670, height2));
  967.  
  968.             height2 += 15;
  969.             e.Graphics.DrawString("Delivery:  " + dtmDelivery.Value.ToString("dd/MM/yyyy h:mm  tt"), new Font("Calibri", 10, FontStyle.Regular), new SolidBrush(Color.Black), new Point(470, height2));
  970.  
  971.             /** End of Head Colum2**/
  972.  
  973.  
  974.             /**** Bar Code ***/
  975.             height2 += 35;
  976.             //var barcodeImg = System.Drawing.Image.FromFile(@"img\barcode.gif");
  977.            // var barcodeImg2 = System.Drawing.Image.FromFile(@"img\barcode2.gif");
  978.            // var barcodeImg3 = System.Drawing.Image.FromFile(@"img\barcode3.gif");
  979.  
  980.             e.Graphics.DrawImage(Properties.Resources.barcode, 45, height2, 180, 15);
  981.             e.Graphics.DrawString("CN", new Font("Calibri", 10, FontStyle.Bold), new SolidBrush(Color.Black), new Point(250, height2));
  982.  
  983.             e.Graphics.DrawImage(Properties.Resources.barcode, 310, height2, 180, 15);
  984.             e.Graphics.DrawString("HN", new Font("Calibri", 10, FontStyle.Bold), new SolidBrush(Color.Black), new Point(550, height2));
  985.  
  986.             e.Graphics.DrawImage(Properties.Resources.barcode, 585, height2, 180, 15);
  987.  
  988.  
  989.             /** End of barcode**/
  990.  
  991.             /** Column Rectangle**/
  992.             height2 += 20;
  993.             e.Graphics.DrawRectangle(blackPen, 40, height2, 725, 25);
  994.             /** end of Column Rectangle**/
  995.  
  996.  
  997.  
  998.  
  999.  
  1000.  
  1001.  
  1002.            
  1003.             /* Bill To*/
  1004.            // e.Graphics.DrawString("BILL TO", new Font("Arial", 11, FontStyle.Bold), Brushes.Black, new Point(40, 200));
  1005.          //   e.Graphics.DrawString("#2016-11-"+patientID.ToString(), new Font("Arial", 11, FontStyle.Regular), Brushes.Black, new Point(40, 220));
  1006.           //  e.Graphics.DrawString(patientName.ToString().ToUpper(), new Font("Arial", 11, FontStyle.Regular), Brushes.Black, new Point(40, 240));
  1007.           //  e.Graphics.DrawString(patientMobile, new Font("Arial", 11, FontStyle.Regular), Brushes.Black, new Point(40, 260));
  1008.             /* Bill to End*/
  1009.  
  1010.             /* Invoice*/
  1011.           //  e.Graphics.DrawString("INVOICE SUMMARY", new Font("Arial", 11, FontStyle.Bold), Brushes.Black, new Point(650, 200));
  1012.           //  e.Graphics.DrawString(String.Format("DATE: {0}-{1}-{2}", dateTimePicker1.Value.Day, dateTimePicker1.Value.Month, dateTimePicker1.Value.Year), new Font("Arial", 11, FontStyle.Regular), Brushes.Black, new Point(650, 220));
  1013.           //  e.Graphics.DrawString("INVOICE: # " + this.BillingID.ToString(), new Font("Arial", 11, FontStyle.Regular), Brushes.Black, new Point(650, 240));
  1014.             /* Invoice  End*/
  1015.  
  1016.             height2 += 5;
  1017.  
  1018.             /* Column Header */
  1019.             e.Graphics.DrawString("SL", new Font("Arial", 10, FontStyle.Regular), Brushes.Black, new Point(45, height2));
  1020.             e.Graphics.DrawString("Item Description", new Font("Arial", 10, FontStyle.Regular), Brushes.Black, new Point(75, height2));
  1021.            // e.Graphics.DrawString("Price", new Font("Arial", 10, FontStyle.Regular), Brushes.Black, new Point(500, height2));
  1022.             e.Graphics.DrawString("Room No.", new Font("Arial", 10, FontStyle.Regular), Brushes.Black, new Point(600, height2));
  1023.             e.Graphics.DrawString("Amount", new Font("Arial", 10, FontStyle.Regular), Brushes.Black, new Point(700, height2));
  1024.            
  1025.             /* Column Header  End*/
  1026.  
  1027.  
  1028.  
  1029.  
  1030.  
  1031.             int lineHeight = height2 + 25;
  1032.             int lineHeight2 = lineHeight + 250;
  1033.             int i = 1;
  1034.             foreach (DataGridViewRow row in dataGridView1.Rows)
  1035.             {
  1036.                 // MessageBox.Show(row.Cells[1].Value.ToString());
  1037.                 if (row.Cells[1].Value != null)
  1038.                 {
  1039.                     e.Graphics.DrawString(i.ToString(), new Font("Arial", 11, FontStyle.Bold), Brushes.Black, new Point(45,lineHeight));
  1040.                     e.Graphics.DrawString(row.Cells[1].Value.ToString(), new Font("Calibri", 11, FontStyle.Regular), Brushes.Black, new Point(75, lineHeight));
  1041.                    // e.Graphics.DrawString(row.Cells[3].Value.ToString(), new Font("Calibri", 11, FontStyle.Regular), Brushes.Black, new Point(500, lineHeight));
  1042.                     e.Graphics.DrawString(row.Cells[4].Value.ToString(), new Font("Calibri", 11, FontStyle.Regular), Brushes.Black, new Point(600, lineHeight));
  1043.                     e.Graphics.DrawString(row.Cells[3].Value.ToString(), new Font("Calibri", 11, FontStyle.Regular), Brushes.Black, new Point(700, lineHeight));
  1044.                 }
  1045.                 lineHeight += 20;
  1046.                 i++;
  1047.             }
  1048.  
  1049.             e.Graphics.DrawRectangle(blackPen, 40, lineHeight2,725, 120);
  1050.             e.Graphics.DrawLine(blackPen, 600, lineHeight2, 600, lineHeight2 + 90);
  1051.             lineHeight2 += 5;
  1052.  
  1053.             /** Footer Column 1**/
  1054.             int ftColLineHeigh1 = lineHeight2;
  1055.             e.Graphics.DrawString("Subtotal:", new Font("Calibri", 10, FontStyle.Regular), Brushes.Black, new Point(500, ftColLineHeigh1));
  1056.             e.Graphics.DrawString(subTotal.ToString(), new Font("Calibri", 10, FontStyle.Regular), Brushes.Black, new Point(700, ftColLineHeigh1));
  1057.  
  1058.             ftColLineHeigh1 += 20;
  1059.             e.Graphics.DrawString("Discount:", new Font("Calibri", 10, FontStyle.Regular), Brushes.Black, new Point(500, ftColLineHeigh1));
  1060.             e.Graphics.DrawString(discount.ToString(), new Font("Calibri", 10, FontStyle.Regular), Brushes.Black, new Point(700, ftColLineHeigh1));
  1061.  
  1062.             ftColLineHeigh1 += 20;
  1063.             e.Graphics.DrawString("Advance:", new Font("Calibri", 10, FontStyle.Regular), Brushes.Black, new Point(500, ftColLineHeigh1));
  1064.             e.Graphics.DrawString(advance.ToString(), new Font("Calibri", 10, FontStyle.Regular), Brushes.Black, new Point(700, ftColLineHeigh1));
  1065.  
  1066.  
  1067.             ftColLineHeigh1 += 20;
  1068.             e.Graphics.DrawString("Due:", new Font("Calibri", 10, FontStyle.Regular), Brushes.Black, new Point(500, ftColLineHeigh1));
  1069.             e.Graphics.DrawString(due.ToString(), new Font("Calibri", 10, FontStyle.Regular), Brushes.Black, new Point(700, ftColLineHeigh1));
  1070.            
  1071.  
  1072.  
  1073.            
  1074.  
  1075.  
  1076.  
  1077.  
  1078.             /** Footer Column 1 end**/
  1079.  
  1080.             e.Graphics.DrawString("Payment Types:  (Cash)", new Font("Calibri", 10, FontStyle.Regular), Brushes.Black, new Point(45, lineHeight2));
  1081.             e.Graphics.DrawString(grandTotal.ToString(), new Font("Calibri", 10, FontStyle.Bold), Brushes.Black, new Point(220, lineHeight2));
  1082.             lineHeight2 += 20;
  1083.             int totalAmount = decimal.ToInt32(grandTotal);
  1084.             string amountInWords = this.NumberToWords(totalAmount).ToUpper() + " ONLY";
  1085.             e.Graphics.DrawString(amountInWords, new Font("Calibri", 9, FontStyle.Regular), Brushes.Black, new Point(45, lineHeight2));
  1086.             lineHeight2 += 40;
  1087.  
  1088.             e.Graphics.DrawString("(This is computer generated signature, no need to sign.)", new Font("Calibri", 9, FontStyle.Bold), Brushes.Black, new Point(100, lineHeight2));
  1089.  
  1090.             ftColLineHeigh1 += 25;
  1091.             // Create points that define line.
  1092.             Point point1 = new Point(40, ftColLineHeigh1);
  1093.             Point point2 = new Point(765, ftColLineHeigh1);
  1094.  
  1095.             // Draw line to screen.
  1096.             e.Graphics.DrawLine(blackPen, point1, point2);
  1097.             e.Graphics.DrawLine(blackPen, 450, ftColLineHeigh1, 450, ftColLineHeigh1 + 30);
  1098.  
  1099.             ftColLineHeigh1 += 5;
  1100.             e.Graphics.DrawString("Cashier Signature:", new Font("Calibri", 10, FontStyle.Regular), Brushes.Black, new Point(45, ftColLineHeigh1));
  1101.             e.Graphics.DrawString(fullName, new Font("Calibri", 10, FontStyle.Regular), Brushes.Black, new Point(160, ftColLineHeigh1));
  1102.  
  1103.             e.Graphics.DrawString("Total Amount: ", new Font("Calibri", 11, FontStyle.Bold), Brushes.Black, new Point(470, ftColLineHeigh1));
  1104.             e.Graphics.DrawString(grandTotal.ToString(), new Font("Calibri", 11, FontStyle.Bold), Brushes.Black, new Point(700, ftColLineHeigh1));
  1105.  
  1106.             /****************************
  1107.              * Copy 1 End
  1108.              **************************/
  1109.  
  1110.  
  1111.             /****************************
  1112.            * Copy 2
  1113.            **************************/
  1114.  
  1115.             /** Head Column 1**/
  1116.          
  1117.             //System.Drawing.Color col = System.Drawing.ColorTranslator.FromHtml("#2F2F30");
  1118.  
  1119.             primaryHeight = ftColLineHeigh1+60;
  1120.             height2 = primaryHeight + 5;
  1121.             e.Graphics.DrawRectangle(blackPen, 40, primaryHeight, 725, 90);
  1122.             e.Graphics.DrawLine(blackPen, 460, primaryHeight, 460, primaryHeight+90);
  1123.             primaryHeight += 0;
  1124.             e.Graphics.DrawString("Check Up Diagnostic & Hospital ", new Font("Calibri", 14, FontStyle.Bold), new SolidBrush(Color.Black), new Point(45, primaryHeight));
  1125.             primaryHeight += 25;
  1126.             e.Graphics.DrawString("Balubari, Dinajpur", new Font("Calibri", 10, FontStyle.Bold), Brushes.Black, new Point(45, primaryHeight));
  1127.             e.Graphics.DrawString("Tel:  +8801738765544", new Font("Calibri", 10, FontStyle.Bold), Brushes.Black, new Point(250, primaryHeight));
  1128.             primaryHeight += 20;
  1129.             e.Graphics.DrawString("Money Receipt / Voucher", new Font("Calibri", 12, FontStyle.Bold), Brushes.Black, new Point(130, primaryHeight));
  1130.             primaryHeight += 20;
  1131.             e.Graphics.DrawString("Ref. By: ", new Font("Calibri", 10, FontStyle.Regular), Brushes.Black, new Point(45, primaryHeight));
  1132.             e.Graphics.DrawString(doctorName + ", " + doctorProfile, new Font("Calibri", 10, FontStyle.Bold), Brushes.Black, new Point(110, primaryHeight));
  1133.  
  1134.             /** End of Head Column 1**/
  1135.  
  1136.             /** Head Colum2**/
  1137.            
  1138.            
  1139.             e.Graphics.DrawString("Voucher No:  " + DateTime.Now.Year + "-" + DateTime.Now.Month + "-" + BillingID.ToString(), new Font("Calibri", 10, FontStyle.Regular), new SolidBrush(Color.Black), new Point(470, height2));
  1140.             height2 += 15;
  1141.             e.Graphics.DrawString("Name:", new Font("Calibri", 10, FontStyle.Regular), new SolidBrush(Color.Black), new Point(470, height2));
  1142.             e.Graphics.DrawString(nameTitle + this.patientName.ToUpper(), new Font("Calibri", 10, FontStyle.Bold), new SolidBrush(Color.Black), new Point(540, height2));
  1143.             height2 += 15;
  1144.             e.Graphics.DrawString("Reg. No:", new Font("Calibri", 10, FontStyle.Regular), new SolidBrush(Color.Black), new Point(470, height2));
  1145.             e.Graphics.DrawString("" + DateTime.Now.Year + "-" + DateTime.Now.Month + "-" + BillingID.ToString(), new Font("Calibri", 11, FontStyle.Regular), new SolidBrush(Color.Black), new Point(540, height2));
  1146.             e.Graphics.DrawString("CN: C-" + r.Next(1000, 9999) + "-" + r.Next(1000, 9999), new Font("Calibri", 10, FontStyle.Regular), new SolidBrush(Color.Black), new Point(650, height2));
  1147.             height2 += 15;
  1148.             e.Graphics.DrawString("Date:  " + dateTimePicker1.Value.ToString("dd/MM/yyyy"), new Font("Calibri", 10, FontStyle.Regular), new SolidBrush(Color.Black), new Point(470, height2));
  1149.             e.Graphics.DrawString("Age:  " + this.PatientAge.ToString() + " yrs.", new Font("Calibri", 10, FontStyle.Regular), new SolidBrush(Color.Black), new Point(670, height2));
  1150.  
  1151.             height2 += 15;
  1152.             e.Graphics.DrawString("Delivery:  " + dtmDelivery.Value.ToString("dd/MM/yyyy h:mm  tt"), new Font("Calibri", 10, FontStyle.Regular), new SolidBrush(Color.Black), new Point(470, height2));
  1153.  
  1154.             /** End of Head Colum2**/
  1155.  
  1156.  
  1157.             /**** Bar Code ***/
  1158.             height2 += 35;
  1159.             //var barcodeImg = System.Drawing.Image.FromFile(@"img\barcode.gif");
  1160.             // var barcodeImg2 = System.Drawing.Image.FromFile(@"img\barcode2.gif");
  1161.             // var barcodeImg3 = System.Drawing.Image.FromFile(@"img\barcode3.gif");
  1162.  
  1163.             e.Graphics.DrawImage(Properties.Resources.barcode, 45, height2, 180, 15);
  1164.             e.Graphics.DrawString("CN", new Font("Calibri", 10, FontStyle.Bold), new SolidBrush(Color.Black), new Point(250, height2));
  1165.  
  1166.             e.Graphics.DrawImage(Properties.Resources.barcode, 310, height2, 180, 15);
  1167.             e.Graphics.DrawString("HN", new Font("Calibri", 10, FontStyle.Bold), new SolidBrush(Color.Black), new Point(550, height2));
  1168.  
  1169.             e.Graphics.DrawImage(Properties.Resources.barcode, 585, height2, 180, 15);
  1170.  
  1171.  
  1172.             /** End of barcode**/
  1173.  
  1174.             /** Column Rectangle**/
  1175.             height2 += 20;
  1176.             e.Graphics.DrawRectangle(blackPen, 40, height2, 725, 25);
  1177.             /** end of Column Rectangle**/
  1178.  
  1179.  
  1180.  
  1181.  
  1182.  
  1183.  
  1184.  
  1185.  
  1186.             /* Bill To*/
  1187.             // e.Graphics.DrawString("BILL TO", new Font("Arial", 11, FontStyle.Bold), Brushes.Black, new Point(40, 200));
  1188.             //   e.Graphics.DrawString("#2016-11-"+patientID.ToString(), new Font("Arial", 11, FontStyle.Regular), Brushes.Black, new Point(40, 220));
  1189.             //  e.Graphics.DrawString(patientName.ToString().ToUpper(), new Font("Arial", 11, FontStyle.Regular), Brushes.Black, new Point(40, 240));
  1190.             //  e.Graphics.DrawString(patientMobile, new Font("Arial", 11, FontStyle.Regular), Brushes.Black, new Point(40, 260));
  1191.             /* Bill to End*/
  1192.  
  1193.             /* Invoice*/
  1194.             //  e.Graphics.DrawString("INVOICE SUMMARY", new Font("Arial", 11, FontStyle.Bold), Brushes.Black, new Point(650, 200));
  1195.             //  e.Graphics.DrawString(String.Format("DATE: {0}-{1}-{2}", dateTimePicker1.Value.Day, dateTimePicker1.Value.Month, dateTimePicker1.Value.Year), new Font("Arial", 11, FontStyle.Regular), Brushes.Black, new Point(650, 220));
  1196.             //  e.Graphics.DrawString("INVOICE: # " + this.BillingID.ToString(), new Font("Arial", 11, FontStyle.Regular), Brushes.Black, new Point(650, 240));
  1197.             /* Invoice  End*/
  1198.  
  1199.             height2 += 5;
  1200.  
  1201.             /* Column Header */
  1202.             e.Graphics.DrawString("SL", new Font("Arial", 10, FontStyle.Regular), Brushes.Black, new Point(45, height2));
  1203.             e.Graphics.DrawString("Item Description", new Font("Arial", 10, FontStyle.Regular), Brushes.Black, new Point(75, height2));
  1204.            // e.Graphics.DrawString("Price", new Font("Arial", 10, FontStyle.Regular), Brushes.Black, new Point(500, height2));
  1205.             e.Graphics.DrawString("Room No.", new Font("Arial", 10, FontStyle.Regular), Brushes.Black, new Point(600, height2));
  1206.             e.Graphics.DrawString("Amount", new Font("Arial", 10, FontStyle.Regular), Brushes.Black, new Point(700, height2));
  1207.  
  1208.             /* Column Header  End*/
  1209.  
  1210.  
  1211.  
  1212.  
  1213.  
  1214.           lineHeight = height2 + 25;
  1215.             lineHeight2 = lineHeight + 250;
  1216.             i = 1;
  1217.             foreach (DataGridViewRow row in dataGridView1.Rows)
  1218.             {
  1219.                 // MessageBox.Show(row.Cells[1].Value.ToString());
  1220.                 if (row.Cells[1].Value != null)
  1221.                 {
  1222.                     e.Graphics.DrawString(i.ToString(), new Font("Arial", 11, FontStyle.Bold), Brushes.Black, new Point(45, lineHeight));
  1223.                     e.Graphics.DrawString(row.Cells[1].Value.ToString(), new Font("Calibri", 11, FontStyle.Regular), Brushes.Black, new Point(75, lineHeight));
  1224.                    // e.Graphics.DrawString(row.Cells[3].Value.ToString(), new Font("Calibri", 11, FontStyle.Regular), Brushes.Black, new Point(500, lineHeight));
  1225.                     e.Graphics.DrawString(row.Cells[4].Value.ToString(), new Font("Calibri", 11, FontStyle.Regular), Brushes.Black, new Point(600, lineHeight));
  1226.                     e.Graphics.DrawString(row.Cells[3].Value.ToString(), new Font("Calibri", 11, FontStyle.Regular), Brushes.Black, new Point(700, lineHeight));
  1227.                 }
  1228.                 lineHeight += 20;
  1229.                 i++;
  1230.             }
  1231.  
  1232.            
  1233.             e.Graphics.DrawRectangle(blackPen, 40, lineHeight2, 725, 120);
  1234.             e.Graphics.DrawLine(blackPen, 600, lineHeight2, 600, lineHeight2 + 90);
  1235.             lineHeight2 += 5;
  1236.  
  1237.             /** Footer Column 1**/
  1238.            ftColLineHeigh1 = lineHeight2;
  1239.             e.Graphics.DrawString("Subtotal:", new Font("Calibri", 10, FontStyle.Regular), Brushes.Black, new Point(500, ftColLineHeigh1));
  1240.             e.Graphics.DrawString(subTotal.ToString(), new Font("Calibri", 10, FontStyle.Regular), Brushes.Black, new Point(700, ftColLineHeigh1));
  1241.  
  1242.             ftColLineHeigh1 += 20;
  1243.             e.Graphics.DrawString("Discount:", new Font("Calibri", 10, FontStyle.Regular), Brushes.Black, new Point(500, ftColLineHeigh1));
  1244.             e.Graphics.DrawString(discount.ToString(), new Font("Calibri", 10, FontStyle.Regular), Brushes.Black, new Point(700, ftColLineHeigh1));
  1245.  
  1246.             ftColLineHeigh1 += 20;
  1247.             e.Graphics.DrawString("Advance:", new Font("Calibri", 10, FontStyle.Regular), Brushes.Black, new Point(500, ftColLineHeigh1));
  1248.             e.Graphics.DrawString(advance.ToString(), new Font("Calibri", 10, FontStyle.Regular), Brushes.Black, new Point(700, ftColLineHeigh1));
  1249.  
  1250.  
  1251.             ftColLineHeigh1 += 20;
  1252.             e.Graphics.DrawString("Due:", new Font("Calibri", 10, FontStyle.Regular), Brushes.Black, new Point(500, ftColLineHeigh1));
  1253.             e.Graphics.DrawString(due.ToString(), new Font("Calibri", 10, FontStyle.Regular), Brushes.Black, new Point(700, ftColLineHeigh1));
  1254.  
  1255.  
  1256.  
  1257.  
  1258.  
  1259.  
  1260.  
  1261.  
  1262.             /** Footer Column 1 end**/
  1263.  
  1264.             e.Graphics.DrawString("Payment Types:  (Cash)", new Font("Calibri", 10, FontStyle.Regular), Brushes.Black, new Point(45, lineHeight2));
  1265.             e.Graphics.DrawString(grandTotal.ToString(), new Font("Calibri", 10, FontStyle.Bold), Brushes.Black, new Point(220, lineHeight2));
  1266.             lineHeight2 += 20;
  1267.             totalAmount = decimal.ToInt32(grandTotal);
  1268.             amountInWords = this.NumberToWords(totalAmount).ToUpper() + " ONLY";
  1269.             e.Graphics.DrawString(amountInWords, new Font("Calibri", 9, FontStyle.Regular), Brushes.Black, new Point(45, lineHeight2));
  1270.             lineHeight2 += 40;
  1271.  
  1272.             e.Graphics.DrawString("(This is computer generated signature, no need to sign.)", new Font("Calibri", 9, FontStyle.Bold), Brushes.Black, new Point(100, lineHeight2));
  1273.  
  1274.             ftColLineHeigh1 += 25;
  1275.             // Create points that define line.
  1276.            point1 = new Point(40, ftColLineHeigh1);
  1277.              point2 = new Point(765, ftColLineHeigh1);
  1278.  
  1279.             // Draw line to screen.
  1280.             e.Graphics.DrawLine(blackPen, point1, point2);
  1281.             e.Graphics.DrawLine(blackPen, 450, ftColLineHeigh1, 450, ftColLineHeigh1 + 30);
  1282.  
  1283.             ftColLineHeigh1 += 5;
  1284.             e.Graphics.DrawString("Cashier Signature:", new Font("Calibri", 10, FontStyle.Regular), Brushes.Black, new Point(45, ftColLineHeigh1));
  1285.             e.Graphics.DrawString(fullName, new Font("Calibri", 10, FontStyle.Regular), Brushes.Black, new Point(160, ftColLineHeigh1));
  1286.  
  1287.             e.Graphics.DrawString("Total Amount: ", new Font("Calibri", 11, FontStyle.Bold), Brushes.Black, new Point(470, ftColLineHeigh1));
  1288.             e.Graphics.DrawString(grandTotal.ToString(), new Font("Calibri", 11, FontStyle.Bold), Brushes.Black, new Point(710, ftColLineHeigh1));
  1289.  
  1290.             /****************************
  1291.              * Copy 2 End
  1292.              **************************/
  1293.  
  1294.  
  1295.  
  1296.             if (!saveInvoiceInfo())
  1297.             {
  1298.  
  1299.                 MessageBox.Show("Database operation failed", "Save Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
  1300.             }
  1301.             else
  1302.             {
  1303.          
  1304.  
  1305.  
  1306.             }
  1307.  
  1308.            
  1309.            
  1310.  
  1311.         }
  1312.  
  1313.         private  string NumberToWords(int number)
  1314.         {
  1315.             if (number == 0)
  1316.                 return "zero";
  1317.  
  1318.             if (number < 0)
  1319.                 return "minus " + NumberToWords(Math.Abs(number));
  1320.  
  1321.             string words = "";
  1322.  
  1323.             if ((number / 1000000) > 0)
  1324.             {
  1325.                 words += NumberToWords(number / 1000000) + " million ";
  1326.                 number %= 1000000;
  1327.             }
  1328.  
  1329.             if ((number / 1000) > 0)
  1330.             {
  1331.                 words += NumberToWords(number / 1000) + " thousand ";
  1332.                 number %= 1000;
  1333.             }
  1334.  
  1335.             if ((number / 100) > 0)
  1336.             {
  1337.                 words += NumberToWords(number / 100) + " hundred ";
  1338.                 number %= 100;
  1339.             }
  1340.  
  1341.             if (number > 0)
  1342.             {
  1343.                 if (words != "")
  1344.                     words += "and ";
  1345.  
  1346.                 var unitsMap = new[] { "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen" };
  1347.                 var tensMap = new[] { "zero", "ten", "twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety" };
  1348.  
  1349.                 if (number < 20)
  1350.                     words += unitsMap[number];
  1351.                 else
  1352.                 {
  1353.                     words += tensMap[number / 10];
  1354.                     if ((number % 10) > 0)
  1355.                         words += "-" + unitsMap[number % 10];
  1356.                 }
  1357.             }
  1358.  
  1359.             return words;
  1360.         }
  1361.  
  1362.         private void loadUserInfo()
  1363.         {
  1364.             try
  1365.             {
  1366.                 // SQLiteConnection.CreateFile("app.sqlite");
  1367.  
  1368.                 SQLiteConnection m_dbConnection = new SQLiteConnection("Data Source=app.sqlite;Version=3;");
  1369.                 m_dbConnection.Open();
  1370.  
  1371.  
  1372.  
  1373.  
  1374.                 string SQLTableRead = "SELECT * FROM login";
  1375.  
  1376.                 SQLiteCommand command3 = new SQLiteCommand(SQLTableRead, m_dbConnection);
  1377.                 //command2.ExecuteNonQuery();
  1378.                 command3.CommandText = SQLTableRead;
  1379.  
  1380.                 SQLiteDataReader TableReader = command3.ExecuteReader();
  1381.  
  1382.                 if (TableReader.Read())
  1383.                 {
  1384.                     //  MessageBox.Show(TableReader["id"].ToString());
  1385.                     this.userId = int.Parse(TableReader["loginid"].ToString());
  1386.                     this.userName = TableReader["username"].ToString();
  1387.                     this.fullName = TableReader["fullname"].ToString();
  1388.                     this.userRole = int.Parse(TableReader["role"].ToString());
  1389.                     this.loginTime = TableReader["time_added"].ToString();
  1390.                 }
  1391.  
  1392.                 TableReader.Close();
  1393.                 m_dbConnection.Close();
  1394.             }
  1395.             catch (Exception exc)
  1396.             {
  1397.  
  1398.                 MessageBox.Show("Unable to load systemetic info. " + exc.Message.ToString());
  1399.             }
  1400.  
  1401.  
  1402.         }
  1403.  
  1404.         private void button1_Click_1(object sender, EventArgs e)
  1405.         {
  1406.             Form createPatient = new CreatePatient(this);
  1407.             createPatient.Show();
  1408.         }
  1409.  
  1410.         private void printPreviewDialog1_Load(object sender, EventArgs e)
  1411.         {
  1412.  
  1413.         }
  1414.  
  1415.         private void tbxOverallDiscount_KeyDown(object sender, KeyEventArgs e)
  1416.         {
  1417.  
  1418.         }
  1419.  
  1420.         private void tbxOverallDiscount_KeyUp(object sender, KeyEventArgs e)
  1421.         {
  1422.  
  1423.             decimal value;
  1424.             bool isParsed = decimal.TryParse(tbxOverallDiscount.Text.Trim(), out value);
  1425.             if (!isParsed)
  1426.             {
  1427.                 MessageBox.Show("Invalid decimal value", "Input Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
  1428.                 tbxOverallDiscount.Clear();
  1429.                 tbxOverallDiscount.Focus();
  1430.             }
  1431.             else
  1432.             {
  1433.                
  1434.                 tbxGrandTotal.Text = (Decimal.Parse(tbxSubTotal.Text) - value).ToString();
  1435.                
  1436.                
  1437.             }
  1438.         }
  1439.  
  1440.         private void tbxAdvance_KeyUp(object sender, KeyEventArgs e)
  1441.         {
  1442.            
  1443.             decimal value;
  1444.             bool isParsed = decimal.TryParse(tbxAdvance.Text.Trim(), out value);
  1445.             if (!isParsed)
  1446.             {
  1447.                 MessageBox.Show("Invalid decimal value", "Input Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
  1448.                 tbxAdvance.Clear();
  1449.                 tbxAdvance.Focus();
  1450.             }
  1451.             else
  1452.             {
  1453.                 int grandTotal;
  1454.                 int advance;
  1455.                 grandTotal = decimal.ToInt32(decimal.Parse(tbxGrandTotal.Text));
  1456.                 advance = decimal.ToInt32(value);
  1457.                 if (grandTotal <= advance)
  1458.                 {
  1459.                     lblStatus.Text = "Paid";
  1460.                     lblStatus.ForeColor = System.Drawing.Color.Green;
  1461.                 }
  1462.                 else
  1463.                 {
  1464.                     lblStatus.Text = "Due";
  1465.                     lblStatus.ForeColor = System.Drawing.Color.Red;
  1466.                 }
  1467.             }
  1468.         }
  1469.  
  1470.         private void printDocument1_EndPrint(object sender, PrintEventArgs e)
  1471.         {
  1472.            
  1473.          
  1474.  
  1475.            
  1476.  
  1477.  
  1478.  
  1479.         }
  1480.  
  1481.         private bool save_pc_info(int invID)
  1482.         {
  1483.            // MessageBox.Show(invID.ToString());
  1484.             bool is_cussess = false;
  1485.  
  1486.             try
  1487.             {
  1488.                 MySqlConnection con = new MySqlConnection(this.conString);
  1489.                 MySqlCommand command = con.CreateCommand();
  1490.                 command.CommandText = "INSERT INTO `dms_pc_percentage` (`pp_id`, `pc_id`, `pp_amount`, `pp_invoice`, `pp_paid`, `time_added`, `time_updated`, `status`) VALUES (NULL, @pc_id , @pp_amount , @pp_invoice , NULL, CURDATE() , CURRENT_TIMESTAMP, '1');";
  1491.  
  1492.                 command.Parameters.AddWithValue("@pc_id", this.reffererID);
  1493.                 command.Parameters.AddWithValue("@pp_amount", decimal.Parse(tbxPcPercentage.Text.Trim()));
  1494.                 command.Parameters.AddWithValue("@pp_invoice", invID);
  1495.          
  1496.  
  1497.                
  1498.  
  1499.                 con.Open();
  1500.                 int a = command.ExecuteNonQuery();
  1501.                 if (a > 0)
  1502.                 {
  1503.                     is_cussess = true;
  1504.                 }
  1505.                 else
  1506.                 {
  1507.                     is_cussess = false;
  1508.                 }
  1509.  
  1510.                 con.Close();
  1511.             }
  1512.             catch (MySqlException exc)
  1513.             {
  1514.                 MessageBox.Show(exc.Message, "Database Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
  1515.             }
  1516.            
  1517.  
  1518.             return is_cussess;
  1519.  
  1520.         }
  1521.  
  1522.  
  1523.         private void disableAllControl()
  1524.         {
  1525.             btnPrint.Enabled = false;
  1526.         }
  1527.  
  1528.        
  1529.         private void dataGridView1_RowEnter(object sender, DataGridViewCellEventArgs e)
  1530.         {
  1531.             DataGridViewRow row = dataGridView1.Rows[e.RowIndex];
  1532.             if (row.Cells[2].Value != null)
  1533.             {
  1534.                 this.tmpPC = decimal.Parse(row.Cells[2].Value.ToString());
  1535.                 this.tmpAmount = decimal.Parse(row.Cells[3].Value.ToString());
  1536.             }
  1537.            
  1538.            
  1539.            
  1540.            
  1541.         }
  1542.  
  1543.  
  1544.         private void dataGridView1_RowsRemoved(object sender, DataGridViewRowsRemovedEventArgs e)
  1545.         {
  1546.             this.totalAmount -= this.tmpAmount;
  1547.             this.totalDiscount -= this.tmpPC;
  1548.             tbxPcPercentage.Text = this.totalDiscount.ToString();
  1549.             tbxSubTotal.Text = this.totalAmount.ToString();
  1550.             tbxGrandTotal.Text = this.totalAmount.ToString();
  1551.  
  1552.         }
  1553.  
  1554.         private void tbxOverallDiscount_Leave(object sender, EventArgs e)
  1555.         {
  1556.            
  1557.            
  1558.         }
  1559.  
  1560.         private void tbxOverallDiscount_TextChanged(object sender, EventArgs e)
  1561.         {
  1562.             if (tbxPcPercentage.Text.Trim() != String.Empty && (Decimal.Parse(tbxPcPercentage.Text) > Decimal.Parse(tbxOverallDiscount.Text)))
  1563.             {
  1564.                 Decimal totalPcPercentage = Decimal.Parse(tbxPcPercentage.Text) - Decimal.Parse(tbxOverallDiscount.Text);
  1565.                 tbxPcPercentage.Text = totalPcPercentage.ToString();
  1566.             }
  1567.         }
  1568.  
  1569.         private void printPreviewDialog1_FormClosed(object sender, FormClosedEventArgs e)
  1570.         {
  1571.             Form billCreation = new Bill_Creation();
  1572.             this.Dispose();
  1573.             billCreation.Show();
  1574.         }
  1575.  
  1576.         private bool getPatientInfoWithID(int patientId)
  1577.         {
  1578.             bool count;
  1579.             MySqlConnection Con = new MySqlConnection(this.conString);
  1580.             MySqlCommand Command = Con.CreateCommand();
  1581.             Command.CommandText = "SELECT * FROM `dms_patient` WHERE `patient_id` = @pid ";
  1582.             Command.Parameters.AddWithValue("@pid", patientId);
  1583.          
  1584.  
  1585.  
  1586.  
  1587.  
  1588.             // Command.Parameters.AddWithValue("@term", term);
  1589.  
  1590.             Con.Open();
  1591.             MySqlDataReader Reader = Command.ExecuteReader();
  1592.  
  1593.             if (Reader.Read())
  1594.             {
  1595.                 count = true;
  1596.                 this.patientID = int.Parse(Reader["patient_id"].ToString());
  1597.                 this.patientName = Reader["patient_name"].ToString();
  1598.                 this.PatientAge = Reader["patient_age"].ToString();
  1599.                 this.patientMobile = Reader["patient_mobile"].ToString();
  1600.                 this.patientSex = Reader["patient_sex"].ToString();
  1601.  
  1602.  
  1603.             }
  1604.             else
  1605.             {
  1606.                 count = false;
  1607.             }
  1608.             tbxRefferedBy.Focus();
  1609.             return count;
  1610.         }
  1611.  
  1612.         public void loadPatientDuringCreatePatient(int patientID)
  1613.         {
  1614.            // MessageBox.Show(patientID.ToString());
  1615.             if (getPatientInfoWithID(patientID))
  1616.             {
  1617.                 tbxPatientID.Text = this.patientID.ToString();
  1618.                 tbxPatientName.Text = this.patientName;
  1619.                 tbxPatientMobile.Text = this.patientMobile;
  1620.                 tbxAge.Text = this.PatientAge;
  1621.                 cbxPatientGender.SelectedIndex = cbxPatientGender.Items.IndexOf(this.patientSex);
  1622.  
  1623.                 tbxPatientID.Enabled = false;
  1624.                 tbxPatientMobile.Enabled = false;
  1625.                 tbxPatientName.Enabled = false;
  1626.                 cbxPatientGender.Enabled = false;
  1627.                 tbxAge.Enabled = false;
  1628.                 tbxSearch.Enabled = false;
  1629.                 tbxSearch.Enabled = true;
  1630.                 tbxRefferedBy.Focus();
  1631.             }
  1632.         }
  1633.  
  1634.        
  1635.  
  1636.  
  1637.     }
  1638.  
  1639.  
  1640. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement