private void btnprtInvoice_Click(object sender, EventArgs e)
 {
     Statement.frmInvoiceReport rpt = new frmInvoiceReport();
     rpt.StartPosition = FormStartPosition.CenterScreen;   // กำหนด frm ย่อย ให้อยู่ตรงกลาง
     int numVal = Int32.Parse(Id);
     rpt.InvoiceId = numVal;
     rpt.ShowDialog();
 }
        private void btnsave_Click(object sender, EventArgs e)
        {
            if (txtDiscount.Text.Trim() == "")
            {
                MessageBox.Show("กรุณาป้อนยอดหักส่วนลด", "ตรวจสอบ", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                txtDiscount.Focus();
                return;
            }
            if (MessageBox.Show("คุณต้องการบันทึกรายการสเตทเม้นท์  " + txtnameCustomer.Text.Trim() + " ใช่หรือไม่ ?", "คำยืนยัน", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.Yes)
            {

                tr = Conn.BeginTransaction();
                try
                {
                    string sqlSaveStHead;
                    sb = new StringBuilder();
                    sb.Remove(0, sb.Length);
                    sb.Append("INSERT INTO STATEMENT_HEAD ");
                    sb.Append("(StatementHeadId, CustomerId, StatementReceiveMoney, StatementHeadDatetime, MoneyDiscount, BankAccountId,Bank_Charges, UserName, InvoiceNumber, RINumber, Remark ) ");
                    sb.Append("VALUES ");
                    sb.Append("(@StatementHeadId, @CustomerId, @StatementReceiveMoney, @StatementHeadDatetime, @MoneyDiscount, @BankAccountId,@Bank_Charges, @UserName, @InvoiceNumber, @RINumber, @Remark )");

                    sqlSaveStHead = sb.ToString();

                    Com.Parameters.Clear();
                    Com.Transaction = tr;
                    Com.CommandText = sqlSaveStHead;
                    Com.Parameters.Add("@StatementHeadId", SqlDbType.Int).Value = HeadId;
                    Com.Parameters.Add("@CustomerId", SqlDbType.Int).Value = txtidCustomer.Text.Trim();
                    Com.Parameters.Add("@StatementReceiveMoney", SqlDbType.Decimal).Value = Convert.ToDecimal(txtNet.Text.Trim());
                    Com.Parameters.Add("@StatementHeadDatetime", SqlDbType.DateTime).Value = dtpReceiveDate.Value.ToString("dd/MM/yyyy HH:mm:ss");
                    Com.Parameters.Add("@MoneyDiscount", SqlDbType.Decimal).Value = Convert.ToDecimal(txtDiscount.Text.Trim());
                    Com.Parameters.Add("@BankAccountId", SqlDbType.Int).Value = COMBO_BANK.SelectedValue.ToString();
                    Com.Parameters.Add("@Bank_Charges", SqlDbType.Decimal).Value = Convert.ToDecimal(txtBank_Charges.Text.Trim());
                    Com.Parameters.Add("@UserName", SqlDbType.NVarChar).Value = UserName;
                    Com.Parameters.Add("@InvoiceNumber", SqlDbType.NVarChar).Value = txtInvoiceNumber.Text.Trim();
                    Com.Parameters.Add("@RINumber", SqlDbType.NVarChar).Value = txtHandId.Text.Trim();
                    Com.Parameters.Add("@Remark", SqlDbType.NVarChar).Value = txtRemark.Text.Trim();
                    Com.ExecuteNonQuery();

                    for (int i = 0; i <= dgvDetailStatement.Rows.Count - 1; i++)
                    {
                        sb.Remove(0, sb.Length);
                        sb.Append("INSERT INTO STATEMENT_DETAIL ");
                        sb.Append("(StatementHeadId, SaleHeadId, moneyPay , Deposit_Pay ,Bill) ");
                        sb.Append("VALUES ");
                        sb.Append("(@StatementHeadId, @SaleHeadId, @moneyPay , @Deposit_Pay ,@Bill ) ");

                        if (dgvDetailStatement.Rows[i].Cells[6].Value.ToString() == "0.00")
                        {
                            sb.Append("UPDATE SETDEBT SET StatusDebtId = 2 WHERE SaleHeadId = @SaleHeadId ");
                            //sb.Append("UPDATE OLD_SETDEBT SET StatusDebtId = 2 WHERE Bill = @SaleHeadId AND CustomerId = @CustomerId ");
                        }
                        if (dgvDetailStatement.Rows[i].Cells[6].Value.ToString() != "0.00")
                        {
                            sb.Append("UPDATE SETDEBT SET StatusDebtId = 1 WHERE SaleHeadId = @SaleHeadId");
                            //sb.Append("UPDATE OLD_SETDEBT SET StatusDebtId = 1 WHERE Bill = @SaleHeadId");
                        }
                        sb.Append(" UPDATE SALE_HEAD SET Deposit_Status = 1 WHERE SaleHeadId = @SaleHeadId");
                        //sb.Append(" UPDATE SALE_HEAD SET Deposit_Pay = 0 WHERE SaleHeadId = @SaleHeadId");

                        sqlSaveStHead = sb.ToString();

                        Com.Parameters.Clear();
                        Com.CommandText = sqlSaveStHead;
                        Com.Parameters.Add("@StatementHeadId", SqlDbType.Int).Value = HeadId;
                        Com.Parameters.Add("@SaleHeadId", SqlDbType.NVarChar).Value = dgvDetailStatement.Rows[i].Cells[0].Value.ToString();
                        Com.Parameters.Add("@moneyPay", SqlDbType.Decimal).Value = Convert.ToDecimal(dgvDetailStatement.Rows[i].Cells[5].Value.ToString());
                        Com.Parameters.Add("@Deposit_Pay", SqlDbType.Decimal).Value = Convert.ToDecimal(dgvDetailStatement.Rows[i].Cells[4].Value.ToString());
                        Com.Parameters.Add("@Bill", SqlDbType.Decimal).Value = Convert.ToDecimal(dgvDetailStatement.Rows[i].Cells[6].Value.ToString());
                        Com.Parameters.Add("@CustomerId", SqlDbType.Int).Value = txtidCustomer.Text.Trim();
                        Com.ExecuteNonQuery();
                    }

                    MessageBox.Show("บันทึกรายการรายการสเตทเม้นท์เรียบร้อยแล้ว!!!", "ผลการยืนยัน", MessageBoxButtons.OK, MessageBoxIcon.None);
                    tr.Commit();

                    DialogResult dlg = MessageBox.Show("ต้องการพิมพ์ใบเสร็จรับเงินหรือไม่!!!", "ผลการทำงาน", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
                    if (dlg == DialogResult.OK)
                    {

                        Statement.frmInvoiceReport rpt = new frmInvoiceReport();
                        rpt.StartPosition = FormStartPosition.CenterScreen;   // กำหนด frm ย่อย ให้อยู่ตรงกลาง
                        rpt.InvoiceId = HeadId;
                        rpt.ShowDialog();

                    }
                    MaxStatementIndex();
                    ClearAfterSave();
                }
                catch (Exception ex)
                {
                    MessageBox.Show("ไม่สามารถบันทึกรายการสเตทเม้นท์ได้ เนื่องจาก " + ex.Message, "ข้อผิดพลาด", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    tr.Rollback();
                }
            }
        }