public List<Finance> FinanceTableToList(DataTable dt) { List<Finance> list = new List<Finance>(); foreach (DataRow row in dt.Rows) { Finance info = new Finance(); info.FinId = Convert.ToInt32(row["FinId"]); info.FinDate = (string)row["FinDate"]; info.Description = (string)row["Description"]; info.EventType = (string)row["EventType"]; info.Amount = Convert.ToDouble(row["Amount"]); info.Currency = (string)row["Currency"]; info.TotalAmount = Convert.ToDouble(row["TotalAmount"]); info.Rate = Convert.ToDouble(row["Rate"]); info.Association = (string)row["Association"]; info.Account = (string)row["Account"]; info.ReferenceNo = Convert.IsDBNull(row["ReferenceNo"]) ? "" : (string)row["ReferenceNo"]; info.ReceivePaymentor = (string)row["ReceivePaymentor"]; info.Customer = Convert.IsDBNull(row["Customer"])?"":(string)row["Customer"]; info.ItemType = (string)row["ItemType"]; info.Remark = Convert.IsDBNull(row["Remark"])?"":(string)row["Remark"]; list.Add(info); } return list; }
public void LoadEditData(Finance finance) { if (finance == null) return; this.Tag = finance; this.Description.Text = finance.Description; this.FinDate.Text = finance.FinDate; this.Remark.Text = finance.Remark; this.Association.Text = finance.Association; this.ReceivePaymentor.Text = finance.ReceivePaymentor; this.Customer.Text = finance.Customer; this.ReferenceNo.Text = finance.ReferenceNo; this.TotalAmount.Text = "¥" + finance.TotalAmount.ToString("#,##0.00"); this.Amount.Text = finance.Amount.ToString("#,##0.00"); this.Rate.Text = finance.Rate.ToString("#,##0.0000"); AliHelperUtils.LoadAppDicComboBoxValue(this.ItemType, finance.ItemType); AliHelperUtils.LoadAppDicComboBoxValue(this.EventType, finance.EventType); AliHelperUtils.LoadAppDicComboBoxValue(this.Curreny, finance.Currency); AliHelperUtils.LoadAppDicComboBoxValue(this.Account, finance.Account); AliHelperUtils.LoadAppDicComboBoxValue(this.Association, finance.Association); foreach (FinDetails detail in finance.Details) { int index = DetailView.Rows.Add(); DetailView.Rows[index].Cells["DetailDescription"].Value = detail.Description; DetailView.Rows[index].Cells["DetailOrderNo"].Value = detail.OrderNo; DetailView.Rows[index].Cells["DetailAssociation"].Value = detail.Association; DetailView.Rows[index].Cells["DetailRemark"].Value = detail.Remark; DetailView.Rows[index].Cells["DetailAmount"].Value = detail.Amount.ToString("#,##0.00"); DetailView.Rows[index].Cells["DetailTotalAmount"].Value = "¥"+detail.TotalAmount.ToString("#,##0.00"); } }
public void InsertOrUpdateFinance(Finance finance) { string InsSql = @"INSERT INTO Finance(FinDate, Description, EventType, ItemType, Account, ReferenceNo, ReceivePaymentor, Customer, Association,Amount,Rate,Currency,Remark, CreatedTime,ModifiedTime)" + "values(@FinDate, @Description, @EventType, @ItemType, @Account, @ReferenceNo, @ReceivePaymentor, @Customer, @Association,@Amount,@Rate,@Currency,@Remark, @CreatedTime, @ModifiedTime)"; string UpdSql = @"update Finance set Description=@Description,FinDate=@FinDate,EventType=@EventType,Amount=@Amount,Association=@Association," + "ReceivePaymentor=@ReceivePaymentor,Account=@Account,ItemType=@ItemType,ReferenceNo=@ReferenceNo,Customer=@Customer,Remark=@Remark,Currency=@Currency,Rate =@Rate,ModifiedTime=@ModifiedTime " + "WHERE FinId=@FinId"; string ExistRecordSql = "SELECT count(1) FROM Finance WHERE FinId = "; List<MySqlParameter[]> InsertParameters = new List<MySqlParameter[]>(); List<MySqlParameter[]> UpdateParameters = new List<MySqlParameter[]>(); DateTime CurrentTime = DateTime.Now; MySqlParameter[] parameter = new MySqlParameter[] { new MySqlParameter("@FinId",finance.FinId), new MySqlParameter("@FinDate",finance.FinDate), new MySqlParameter("@Description",finance.Description), new MySqlParameter("@EventType",finance.EventType), new MySqlParameter("@Account",finance.Account), new MySqlParameter("@ItemType",finance.ItemType), new MySqlParameter("@ReferenceNo",finance.ReferenceNo), new MySqlParameter("@ReceivePaymentor",finance.ReceivePaymentor), new MySqlParameter("@Customer",finance.Customer), new MySqlParameter("@Association",finance.Association), new MySqlParameter("@Amount",finance.Amount), new MySqlParameter("@Rate",finance.Rate), new MySqlParameter("@Currency",finance.Currency), new MySqlParameter("@Remark",finance.Remark), new MySqlParameter("@CreatedTime", CurrentTime), new MySqlParameter("@ModifiedTime",CurrentTime) }; int record = Convert.ToInt32(dbHelper.ExecuteScalar(ExistRecordSql + finance.FinId, null)); using (MySqlConnection connection = dbHelper.GetConnection()) { connection.Open(); using (DbTransaction transaction = connection.BeginTransaction()) { if (record == 0) { dbHelper.ExecuteNonQuery(transaction, InsSql, parameter); int LasertInsertId = dbHelper.GetLastInsertId(transaction); foreach (FinDetails detail in finance.Details) { detail.FinId = LasertInsertId; } } else { dbHelper.ExecuteNonQuery(transaction, UpdSql, parameter); dbHelper.ExecuteNonQuery(transaction, "delete from FinDetails where FinId =" + finance.FinId); } InsertOrUpdateDetails(transaction, finance.Details); transaction.Commit(); } connection.Close(); } }
public void InsertOrUpdateFinance(Finance obj) { financeDao.InsertOrUpdateFinance(obj); FireEditFinanceEvent(obj); }
private void Confirm_Click(object sender, EventArgs e) { Finance finance; if (this.Tag == null) { finance = new Finance(); } else { finance = (Finance)this.Tag; } finance.Description = this.Description.Text.Trim(); finance.EventType = ((AppDic)this.EventType.SelectedItem).Key; finance.FinDate = this.FinDate.Value.ToString(Constants.DateFormat); finance.ItemType = ((AppDic)this.ItemType.SelectedItem).Key; ; finance.Remark = this.Remark.Text.Trim(); finance.Association = ((AppDic)this.Association.SelectedItem).Key; finance.Rate = Convert.ToDouble(this.Rate.Text.Trim()); finance.Currency = ((AppDic)this.Curreny.SelectedItem).Key; finance.Amount = Convert.ToDouble(this.Amount.Text); finance.ReceivePaymentor = this.ReceivePaymentor.Text.Trim(); finance.Account = ((AppDic)this.Account.SelectedItem).Key; finance.ReferenceNo = this.ReferenceNo.Text.Trim(); finance.Customer = this.Customer.Text.Trim(); if (finance.Amount == 0) { return; } if (string.IsNullOrEmpty(finance.Description)) { return; } if (string.IsNullOrEmpty(finance.Association)) { return; } bool HasError = false; List<FinDetails> details = new List<FinDetails>(); foreach (DataGridViewRow row in DetailView.Rows) { string desc = (string)row.Cells["DetailDescription"].Value; if (string.IsNullOrEmpty(desc)) { HasError = true; row.Cells["DetailDescription"].ErrorText = "不能为空"; } string orderNo = (string)row.Cells["DetailOrderNo"].Value; if (string.IsNullOrEmpty(orderNo)) { HasError = true; row.Cells["DetailOrderNo"].ErrorText = "不能为空"; } double amount = Convert.ToDouble(row.Cells["DetailAmount"].Value); if (amount == 0.00) { HasError = true; row.Cells["DetailAmount"].ErrorText = "不能为零"; } string association = (string)row.Cells["DetailAssociation"].Value; if (string.IsNullOrEmpty(association)) { HasError = true; row.Cells["DetailAssociation"].ErrorText = "不能为空"; } string remark = (string)row.Cells["DetailRemark"].Value; FinDetails detail = new FinDetails(); detail.FinId = finance.FinId; detail.FinDate = finance.FinDate; detail.ItemType = finance.ItemType; detail.EventType = finance.EventType; detail.Currency = finance.Currency; detail.Rate = finance.Rate; detail.Description = desc; detail.OrderNo = orderNo; detail.Amount = amount; detail.Association = association; detail.Remark = remark; details.Add(detail); } if (HasError) { return; } finance.Details = details; finOrderManager.InsertOrUpdateFinance(finance); this.Close(); }