/// <summary> /// 作用: /// 作者:汪建龙 /// 编写时间:2016年11月16日15:46:10 /// </summary> /// <param name="hid">账单头文件ID</param> /// <param name="list">追加的列表</param> /// <returns></returns> public List <string> Input(int hid, List <BillOne> list, int year, int month, Company company) { var errors = new List <string>(); var preSerialNumber = 1; BillOne preEntry = null; foreach (var item in list) { var error = string.Empty; if (preEntry != null) { if (!BillClass.CheckLogic(item, preEntry)) { error = "序号前后不一致,应递增,账户余额收支前后不一致;"; } if (!BillClass.CheckTime(item, year, month)) { error += string.Format("交易日期不在{0}年{1}月,请核对!", year, month); } } else { if (item.SerialNumber == 1) { BillRecord last = null; if (month == 1) { last = Core.Bill_RecordManager.GetLast(year - 1, 12, company); } else { last = Core.Bill_RecordManager.GetLast(year, month - 1, company); } if (last != null) { if (!BillClass.CheckLogic(last, item)) { error += string.Format("当前月初第一笔收支与上个月不符,请核对!"); } } } } if (!string.IsNullOrEmpty(error)) { errors.Add(string.Format("第{0}个数据存在如下错误:{1}", preSerialNumber, error)); continue; } item.HID = hid; if (Add(item) == 0) { errors.Add(string.Format("第{0}个数据:保存到数据库失败;", preSerialNumber)); } preEntry = item; preSerialNumber++; } return(errors); }
/// <summary> /// 作用:添加BillOne 存在则替换 不存在追加 /// 作者:汪建龙 /// 编写时间:2016年11月16日16:11:02 /// </summary> /// <param name="billOne"></param> /// <returns></returns> public int Add(BillOne billOne) { if (billOne != null) { return(Core.Bill_RecordManager.Add(new BillRecord { ID = billOne.ID, SerialNumber = billOne.SerialNumber, Date = billOne.Date, Time = billOne.Time, Voucher = billOne.Voucher, Budget = billOne.Budget, Money = billOne.Money, Balance = billOne.Balance, CounterPart = billOne.CounterPart, Account = billOne.Account, Summary = billOne.Summary, Remark = billOne.Remark, Remark2 = billOne.Remark2, Cost = billOne.Cost, //Category = billOne.Category, HID = billOne.HID, Sync = billOne.Sync })); } return(0); //using (var db = GetDbContext()) //{ // var entry = db.BillOnes.FirstOrDefault(e => e.SerialNumber == billOne.SerialNumber && e.HID == billOne.HID); // if (entry != null) // { // billOne.ID = entry.ID; // db.Entry(entry).CurrentValues.SetValues(billOne); // } // else // { // db.BillOnes.Add(billOne); // } // db.SaveChanges(); // return billOne.ID; //} }