public static void ReCalculatePeriod() { using (var db = new RentBikeEntities()) { var contracts = db.Contracts.Where(c => c.CONTRACT_STATUS == true).ToList(); foreach (var contract in contracts) { List <PayPeriod> lstPay = db.PayPeriods.Where(c => c.CONTRACT_ID == contract.ID).ToList(); int div = lstPay.Count % 3; if (div > 0) { div = 3 - div; PayPeriod lastPay = lstPay.LastOrDefault(); for (int i = 1; i <= div; i++) { PayPeriod pp = new PayPeriod(); pp.CONTRACT_ID = contract.ID; pp.PAY_DATE = lastPay.PAY_DATE.AddDays(i * 10); pp.AMOUNT_PER_PERIOD = lastPay.AMOUNT_PER_PERIOD; pp.STATUS = true; pp.ACTUAL_PAY = 0; db.PayPeriods.Add(pp); } } } db.SaveChanges(); } }
public static void CreateDummyInout() { using (var db = new RentBikeEntities()) { var stores = db.Stores.Where(c => c.ACTIVE == true).ToList(); foreach (var store in stores) { if (db.InOuts.Any(c => c.INOUT_DATE == DateTime.Today && c.STORE_ID == store.ID)) { continue; } InOut io = new InOut(); io.IN_AMOUNT = 0; io.OUT_AMOUNT = 0; io.CONTRACT_ID = 1; io.PERIOD_ID = 1; io.RENT_TYPE_ID = 3; io.INOUT_TYPE_ID = 23; io.PERIOD_DATE = DateTime.Today; io.MORE_INFO = Constants.DUMMY_INOUT; io.STORE_ID = store.ID; io.SEARCH_TEXT = Constants.DUMMY_INOUT; io.INOUT_DATE = DateTime.Now; io.CREATED_BY = Constants.DUMMY_USER; io.CREATED_DATE = DateTime.Now; io.UPDATED_BY = Constants.DUMMY_USER; io.UPDATED_DATE = DateTime.Now; io.IS_DUMMY = true; db.InOuts.Add(io); } db.SaveChanges(); } }
public static void SaveSummaryPayFeeDaily() { using (var db = new RentBikeEntities()) { try { var stores = db.Stores.Where(c => c.ACTIVE == true).ToList(); foreach (var store in stores) { List <CONTRACT_FULL_VW> listContract = GetWarningData(DateTime.Today.ToString(), string.Empty, store.ID).Where(c => c.OVER_DATE <= 50).ToList(); foreach (var contract in listContract) { if (db.SummaryPayFeeDailies.Any(c => c.PERIOD_DATE == DateTime.Today && c.STORE_ID == store.ID)) { continue; } SummaryPayFeeDaily sum = new SummaryPayFeeDaily(); sum.CONTRACT_ID = contract.ID; sum.CONTRACT_NO = contract.CONTRACT_NO; sum.CUSTOMER_NAME = contract.CUSTOMER_NAME; sum.PHONE = contract.PHONE; sum.RENT_TYPE_ID = contract.RENT_TYPE_ID; sum.RENT_TYPE_NAME = contract.RENT_TYPE_NAME; sum.PERIOD_DATE = DateTime.Today; sum.PAY_FEE = contract.FEE_PER_DAY; sum.PAY_TIME = contract.PAYED_TIME; sum.PAY_MESSAGE = contract.PERIOD_MESSAGE; sum.STORE_ID = contract.STORE_ID; sum.STORE_NAME = contract.STORE_NAME; sum.NOTE = contract.NOTE; sum.SEARCH_TEXT = contract.SEARCH_TEXT; sum.CREATED_DATE = DateTime.Now; sum.UPDATED_DATE = DateTime.Now; db.SummaryPayFeeDailies.Add(sum); } } db.SaveChanges(); } catch (System.Data.Entity.Validation.DbEntityValidationException e) { foreach (var eve in e.EntityValidationErrors) { Logger.Log(string.Format("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:", eve.Entry.Entity.GetType().Name, eve.Entry.State)); foreach (var ve in eve.ValidationErrors) { Logger.Log(string.Format("- Property: \"{0}\", Error: \"{1}\"", ve.PropertyName, ve.ErrorMessage)); } } } catch (Exception ex) { Logger.Log(ex.Message + Environment.NewLine + ex.StackTrace); } } }
public static void WriteLog(string userName, string storeName, string action, bool isCrashed) { Log lg = new Log(); lg.ACCOUNT = userName; lg.STORE = storeName; lg.LOG_ACTION = action; lg.LOG_DATE = DateTime.Now; lg.IS_CRASH = isCrashed; lg.LOG_MSG = string.Format("Tài khoản {0} cửa hàng {1} thực hiện {2} vào lúc {3}", lg.ACCOUNT, storeName, lg.LOG_ACTION, lg.LOG_DATE); lg.SEARCH_TEXT = lg.LOG_MSG; using (var db = new RentBikeEntities()) { db.Logs.Add(lg); db.SaveChanges(); } }
public static void UpdatePeriodAmount() { using (var db = new RentBikeEntities()) { var contracts = db.Contracts.Where(c => c.CONTRACT_STATUS == true).ToList(); foreach (var contract in contracts) { List <PayPeriod> payList = db.PayPeriods.Where(c => c.CONTRACT_ID == contract.ID).ToList(); foreach (PayPeriod pp in payList) { var inOutList = db.InOuts.Where(c => c.PERIOD_ID == pp.ID); decimal total = inOutList.Select(c => c.IN_AMOUNT).DefaultIfEmpty(0).Sum(); pp.ACTUAL_PAY = total; } } db.SaveChanges(); } }
public static void WriteLog(string userName, string storeName, string action, string message, bool isCrashed) { Log lg = new Log(); lg.ACCOUNT = userName; lg.STORE = storeName; lg.LOG_ACTION = action; lg.LOG_DATE = DateTime.Now; lg.IS_CRASH = isCrashed; lg.LOG_MSG = message; lg.SEARCH_TEXT = lg.LOG_MSG; using (var db = new RentBikeEntities()) { db.Logs.Add(lg); db.SaveChanges(); } }
public static void AutoUpdateAmountPayPeriod() { using (var db = new RentBikeEntities()) { var contracts = db.Contracts.Where(c => c.CONTRACT_STATUS == true).ToList(); foreach (var contract in contracts) { List <PayPeriod> listPayPeriod = db.PayPeriods.Where(c => c.CONTRACT_ID == contract.ID).ToList(); foreach (PayPeriod pp in listPayPeriod) { var inoutList = db.InOuts.Where(s => s.PERIOD_ID == pp.ID); var sumPay = inoutList.Select(s => s.IN_AMOUNT).DefaultIfEmpty(0).Sum(); pp.ACTUAL_PAY = sumPay; } } db.SaveChanges(); } }
public static void UpdatePeriodAmountToZero() { using (var db = new RentBikeEntities()) { var contracts = db.Contracts.Where(c => c.CONTRACT_STATUS == true).ToList(); foreach (var contract in contracts) { if (contract.FEE_PER_DAY == 0) { List <PayPeriod> payList = db.PayPeriods.Where(c => c.CONTRACT_ID == contract.ID && c.AMOUNT_PER_PERIOD > 0).ToList(); foreach (PayPeriod pp in payList) { pp.AMOUNT_PER_PERIOD = 0; } } } db.SaveChanges(); } }
public static void RemoveRedundantPeriod() { using (var db = new RentBikeEntities()) { var contracts = db.Contracts.Where(c => c.CONTRACT_STATUS == true).ToList(); foreach (var contract in contracts) { List <PayPeriod> lstPay = db.PayPeriods.Where(c => c.CONTRACT_ID == contract.ID).ToList(); int div = lstPay.Count % 3; if (div > 0) { int index = lstPay.Count - 1; for (int i = 1; i <= div; i++) { db.PayPeriods.Remove(lstPay[index]); index -= 1; } } } db.SaveChanges(); } }
public static void AutoExtendPeriod(RentBikeEntities db, int contractId) { Contract contract = db.Contracts.FirstOrDefault(c => c.ID == contractId && c.CONTRACT_STATUS == true); if (contract != null) { var listPayPeriod = db.PayPeriods.Where(c => c.CONTRACT_ID == contract.ID).ToList(); PayPeriod lastPayPeriod = listPayPeriod.LastOrDefault(); DateTime extendEndDate = (contract.EXTEND_END_DATE == null || contract.EXTEND_END_DATE == contract.END_DATE) ? contract.END_DATE.AddDays(-10) : lastPayPeriod.PAY_DATE; int overDate = DateTime.Today.Subtract(extendEndDate).Days; if (overDate >= 0) { int percentDate = overDate / 30; DateTime endDateUpdated = extendEndDate.AddDays(30 * (percentDate + 1)); contract.EXTEND_END_DATE = endDateUpdated; int multipleFee; decimal increateFeeCar; decimal increateFeeEquip; decimal increateFeeOther; CalculatePeriodFee(db, contract, out multipleFee, out increateFeeCar, out increateFeeEquip, out increateFeeOther, false); for (int i = 0; i <= percentDate; i++) { if (lastPayPeriod.PAY_DATE.Subtract(contract.EXTEND_END_DATE.Value.AddDays(-10)).Days > 0) { break; } lastPayPeriod = CreateOneMorePayPeriod(db, contract, lastPayPeriod, multipleFee, increateFeeCar, increateFeeEquip, increateFeeOther, false); } contract.EXTEND_END_DATE = lastPayPeriod.PAY_DATE; db.SaveChanges(); } } }
public static void AutoUpdateAndRemovePeriod() { using (var db = new RentBikeEntities()) { var contracts = db.Contracts.Where(c => c.CONTRACT_STATUS == true).ToList(); foreach (var contract in contracts) { List <PayPeriod> lstPay = db.PayPeriods.Where(c => c.CONTRACT_ID == contract.ID).ToList(); DateTime extendDate = contract.END_DATE.AddDays(-10); if (!contract.EXTEND_END_DATE.HasValue || contract.EXTEND_END_DATE == contract.END_DATE) { contract.EXTEND_END_DATE = contract.END_DATE; extendDate = contract.EXTEND_END_DATE.Value.AddDays(-10); } else { extendDate = contract.EXTEND_END_DATE.Value; } db.PayPeriods.RemoveRange(lstPay.Where(c => c.PAY_DATE > extendDate)); } db.SaveChanges(); } }
public static void SaveSummaryPayFeeMonthly() { decimal totalSlowFee, totalDebtFee; using (var db = new RentBikeEntities()) { try { var stores = db.Stores.Where(c => c.ACTIVE == true).ToList(); foreach (var store in stores) { if (db.SummaryPayFeeMonthlies.Any(c => c.SUMMURY_DATE == DateTime.Today && c.STORE_ID == store.ID)) continue; GetSummuryFeeMonthly(out totalSlowFee, out totalDebtFee, store.ID); SummaryPayFeeMonthly sum1 = new SummaryPayFeeMonthly(); sum1.STORE_ID = store.ID; sum1.STORE_NAME = store.NAME; sum1.SUMMURY_FEE = totalSlowFee; sum1.SUMMURY_FEE_TYPE = (int)SUMMURY_FEE_TYPE.SLOW_FEE; sum1.SUMMURY_DATE = DateTime.Today; sum1.NOTE = Constants.SUMMURY_SLOW_FEE; sum1.CREATED_DATE = DateTime.Now; sum1.CREATED_BY = Constants.DUMMY_USER; sum1.UPDATED_DATE = DateTime.Now; sum1.UPDATED_BY = Constants.DUMMY_USER; db.SummaryPayFeeMonthlies.Add(sum1); SummaryPayFeeMonthly sum2 = new SummaryPayFeeMonthly(); sum2.STORE_ID = store.ID; sum2.STORE_NAME = store.NAME; sum2.SUMMURY_FEE = totalDebtFee; sum2.SUMMURY_FEE_TYPE = (int)SUMMURY_FEE_TYPE.DEBT_FEE; sum2.SUMMURY_DATE = DateTime.Today; sum2.NOTE = Constants.SUMMURY_DEBT_FEE; sum2.CREATED_DATE = DateTime.Now; sum2.CREATED_BY = Constants.DUMMY_USER; sum2.UPDATED_DATE = DateTime.Now; sum2.UPDATED_BY = Constants.DUMMY_USER; db.SummaryPayFeeMonthlies.Add(sum2); } db.SaveChanges(); } catch (System.Data.Entity.Validation.DbEntityValidationException e) { foreach (var eve in e.EntityValidationErrors) { Logger.Log(string.Format("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:", eve.Entry.Entity.GetType().Name, eve.Entry.State)); foreach (var ve in eve.ValidationErrors) { Logger.Log(string.Format("- Property: \"{0}\", Error: \"{1}\"", ve.PropertyName, ve.ErrorMessage)); } } } catch (Exception ex) { Logger.Log(ex.Message + Environment.NewLine + ex.StackTrace); } } }
public static void SaveSummaryPayFeeDaily() { using (var db = new RentBikeEntities()) { try { var stores = db.Stores.Where(c => c.ACTIVE == true).ToList(); foreach (var store in stores) { List<CONTRACT_FULL_VW> listContract = GetWarningData(DateTime.Today.ToString(), string.Empty, store.ID).Where(c => c.OVER_DATE <= 50).ToList(); foreach (var contract in listContract) { if (db.SummaryPayFeeDailies.Any(c => c.PERIOD_DATE == DateTime.Today && c.STORE_ID == store.ID)) continue; SummaryPayFeeDaily sum = new SummaryPayFeeDaily(); sum.CONTRACT_ID = contract.ID; sum.CONTRACT_NO = contract.CONTRACT_NO; sum.CUSTOMER_NAME = contract.CUSTOMER_NAME; sum.PHONE = contract.PHONE; sum.RENT_TYPE_ID = contract.RENT_TYPE_ID; sum.RENT_TYPE_NAME = contract.RENT_TYPE_NAME; sum.PERIOD_DATE = DateTime.Today; sum.PAY_FEE = contract.FEE_PER_DAY; sum.PAY_TIME = contract.PAYED_TIME; sum.PAY_MESSAGE = contract.PERIOD_MESSAGE; sum.STORE_ID = contract.STORE_ID; sum.STORE_NAME = contract.STORE_NAME; sum.NOTE = contract.NOTE; sum.SEARCH_TEXT = contract.SEARCH_TEXT; sum.CREATED_DATE = DateTime.Now; sum.UPDATED_DATE = DateTime.Now; db.SummaryPayFeeDailies.Add(sum); } } db.SaveChanges(); } catch (System.Data.Entity.Validation.DbEntityValidationException e) { foreach (var eve in e.EntityValidationErrors) { Logger.Log(string.Format("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:", eve.Entry.Entity.GetType().Name, eve.Entry.State)); foreach (var ve in eve.ValidationErrors) { Logger.Log(string.Format("- Property: \"{0}\", Error: \"{1}\"", ve.PropertyName, ve.ErrorMessage)); } } } catch (Exception ex) { Logger.Log(ex.Message + Environment.NewLine + ex.StackTrace); } } }
public static void RemoveRedundantPeriod() { using (var db = new RentBikeEntities()) { var contracts = db.Contracts.Where(c => c.CONTRACT_STATUS == true).ToList(); foreach (var contract in contracts) { List<PayPeriod> lstPay = db.PayPeriods.Where(c => c.CONTRACT_ID == contract.ID).ToList(); int div = lstPay.Count % 3; if (div > 0) { int index = lstPay.Count - 1; for (int i = 1; i <= div; i++) { db.PayPeriods.Remove(lstPay[index]); index -= 1; } } } db.SaveChanges(); } }
public static void ReCalculatePeriod() { using (var db = new RentBikeEntities()) { var contracts = db.Contracts.Where(c => c.CONTRACT_STATUS == true).ToList(); foreach (var contract in contracts) { List<PayPeriod> lstPay = db.PayPeriods.Where(c => c.CONTRACT_ID == contract.ID).ToList(); int div = lstPay.Count % 3; if (div > 0) { div = 3 - div; PayPeriod lastPay = lstPay.LastOrDefault(); for (int i = 1; i <= div; i++) { PayPeriod pp = new PayPeriod(); pp.CONTRACT_ID = contract.ID; pp.PAY_DATE = lastPay.PAY_DATE.AddDays(i * 10); pp.AMOUNT_PER_PERIOD = lastPay.AMOUNT_PER_PERIOD; pp.STATUS = true; pp.ACTUAL_PAY = 0; db.PayPeriods.Add(pp); } } } db.SaveChanges(); } }
public static void CreateDummyInout() { using (var db = new RentBikeEntities()) { var stores = db.Stores.Where(c => c.ACTIVE == true).ToList(); foreach (var store in stores) { if (db.InOuts.Any(c => c.INOUT_DATE == DateTime.Today && c.STORE_ID == store.ID)) continue; InOut io = new InOut(); io.IN_AMOUNT = 0; io.OUT_AMOUNT = 0; io.CONTRACT_ID = 1; io.PERIOD_ID = 1; io.RENT_TYPE_ID = 3; io.INOUT_TYPE_ID = 23; io.PERIOD_DATE = DateTime.Today; io.MORE_INFO = Constants.DUMMY_INOUT; io.STORE_ID = store.ID; io.SEARCH_TEXT = Constants.DUMMY_INOUT; io.INOUT_DATE = DateTime.Now; io.CREATED_BY = Constants.DUMMY_USER; io.CREATED_DATE = DateTime.Now; io.UPDATED_BY = Constants.DUMMY_USER; io.UPDATED_DATE = DateTime.Now; io.IS_DUMMY = true; db.InOuts.Add(io); } db.SaveChanges(); } }
private static PayPeriod CreateOneMorePayPeriod(RentBikeEntities db, Contract contract, PayPeriod lastPeriod, decimal multipleFee, decimal increateFeeCar, decimal increateFeeEquip, decimal increateFeeOther, bool bFirstCreated) { PayPeriod pp1 = new PayPeriod(); pp1.CONTRACT_ID = contract.ID; if (bFirstCreated) { pp1.PAY_DATE = lastPeriod.PAY_DATE; pp1.AMOUNT_PER_PERIOD = increateFeeCar; } else { pp1.PAY_DATE = lastPeriod.PAY_DATE.AddDays(10); if (contract.FEE_PER_DAY > 0) { switch (contract.RENT_TYPE_ID) { case 1: if (((contract.FEE_PER_DAY / multipleFee)) < RentCarFeePerDay) { var countPeriod = db.PayPeriods.Where(c => c.CONTRACT_ID == contract.ID).Count(); if (countPeriod <= 3) increateFeeCar = (contract.FEE_PER_DAY * 10) + (multipleFee * 50 * 10); else if (countPeriod > 3) increateFeeCar = (contract.FEE_PER_DAY * 10) + (multipleFee * 100 * 10); pp1.AMOUNT_PER_PERIOD = increateFeeCar; } else { if (contract.FEE_PER_DAY < (lastPeriod.AMOUNT_PER_PERIOD / 10)) pp1.AMOUNT_PER_PERIOD = lastPeriod.AMOUNT_PER_PERIOD; else { if (((contract.FEE_PER_DAY / multipleFee) * 10) < 4000) pp1.AMOUNT_PER_PERIOD = increateFeeCar; else pp1.AMOUNT_PER_PERIOD = increateFeeOther; } } break; case 2: if (contract.FEE_PER_DAY < (lastPeriod.AMOUNT_PER_PERIOD / 10)) pp1.AMOUNT_PER_PERIOD = lastPeriod.AMOUNT_PER_PERIOD; else { if (((contract.FEE_PER_DAY / multipleFee) * 10) < 4000) pp1.AMOUNT_PER_PERIOD = increateFeeCar; else pp1.AMOUNT_PER_PERIOD = increateFeeOther; } break; //case 2: // if (((contract.FEE_PER_DAY / multipleFee) * 10) < 6000) // pp1.AMOUNT_PER_PERIOD = increateFeeEquip; // else // pp1.AMOUNT_PER_PERIOD = increateFeeOther; // break; default: pp1.AMOUNT_PER_PERIOD = increateFeeOther; break; } } else pp1.AMOUNT_PER_PERIOD = increateFeeCar; } pp1.STATUS = true; pp1.ACTUAL_PAY = 0; PayPeriod pp2 = new PayPeriod(); pp2.CONTRACT_ID = contract.ID; if (bFirstCreated) pp2.PAY_DATE = pp1.PAY_DATE.AddDays(9); else pp2.PAY_DATE = pp1.PAY_DATE.AddDays(10); pp2.AMOUNT_PER_PERIOD = pp1.AMOUNT_PER_PERIOD; pp2.STATUS = true; pp2.ACTUAL_PAY = 0; PayPeriod pp3 = new PayPeriod(); pp3.CONTRACT_ID = contract.ID; pp3.PAY_DATE = pp2.PAY_DATE.AddDays(10); pp3.AMOUNT_PER_PERIOD = pp1.AMOUNT_PER_PERIOD; pp3.STATUS = true; pp3.ACTUAL_PAY = 0; db.PayPeriods.Add(pp1); db.PayPeriods.Add(pp2); db.PayPeriods.Add(pp3); db.SaveChanges(); return pp3; }
public static void UpdatePeriodAmount() { using (var db = new RentBikeEntities()) { var contracts = db.Contracts.Where(c => c.CONTRACT_STATUS == true).ToList(); foreach (var contract in contracts) { List<PayPeriod> payList = db.PayPeriods.Where(c => c.CONTRACT_ID == contract.ID).ToList(); foreach (PayPeriod pp in payList) { var inOutList = db.InOuts.Where(c => c.PERIOD_ID == pp.ID); decimal total = inOutList.Select(c => c.IN_AMOUNT).DefaultIfEmpty(0).Sum(); pp.ACTUAL_PAY = total; } } db.SaveChanges(); } }
public static void AutoUpdateAndRemovePeriod() { using (var db = new RentBikeEntities()) { var contracts = db.Contracts.Where(c => c.CONTRACT_STATUS == true).ToList(); foreach (var contract in contracts) { List<PayPeriod> lstPay = db.PayPeriods.Where(c => c.CONTRACT_ID == contract.ID).ToList(); DateTime extendDate = contract.END_DATE.AddDays(-10); if (!contract.EXTEND_END_DATE.HasValue || contract.EXTEND_END_DATE == contract.END_DATE) { contract.EXTEND_END_DATE = contract.END_DATE; extendDate = contract.EXTEND_END_DATE.Value.AddDays(-10); } else { extendDate = contract.EXTEND_END_DATE.Value; } db.PayPeriods.RemoveRange(lstPay.Where(c => c.PAY_DATE > extendDate)); } db.SaveChanges(); } }
public static void UpdatePeriodAmountToZero() { using (var db = new RentBikeEntities()) { var contracts = db.Contracts.Where(c => c.CONTRACT_STATUS == true).ToList(); foreach (var contract in contracts) { if (contract.FEE_PER_DAY == 0) { List<PayPeriod> payList = db.PayPeriods.Where(c => c.CONTRACT_ID == contract.ID && c.AMOUNT_PER_PERIOD > 0).ToList(); foreach (PayPeriod pp in payList) { pp.AMOUNT_PER_PERIOD = 0; } } } db.SaveChanges(); } }
private static PayPeriod CreateOneMorePayPeriod(RentBikeEntities db, Contract contract, PayPeriod lastPeriod, decimal multipleFee, decimal increateFeeCar, decimal increateFeeEquip, decimal increateFeeOther, bool bFirstCreated) { PayPeriod pp1 = new PayPeriod(); pp1.CONTRACT_ID = contract.ID; if (bFirstCreated) { pp1.PAY_DATE = lastPeriod.PAY_DATE; pp1.AMOUNT_PER_PERIOD = increateFeeCar; } else { pp1.PAY_DATE = lastPeriod.PAY_DATE.AddDays(10); if (contract.FEE_PER_DAY > 0) { switch (contract.RENT_TYPE_ID) { case 1: if (((contract.FEE_PER_DAY / multipleFee)) < RentCarFeePerDay) { var countPeriod = db.PayPeriods.Where(c => c.CONTRACT_ID == contract.ID).Count(); if (countPeriod <= 3) { increateFeeCar = (contract.FEE_PER_DAY * 10) + (multipleFee * 50 * 10); } else if (countPeriod > 3) { increateFeeCar = (contract.FEE_PER_DAY * 10) + (multipleFee * 100 * 10); } pp1.AMOUNT_PER_PERIOD = increateFeeCar; } else { if (contract.FEE_PER_DAY < (lastPeriod.AMOUNT_PER_PERIOD / 10)) { pp1.AMOUNT_PER_PERIOD = lastPeriod.AMOUNT_PER_PERIOD; } else { if (((contract.FEE_PER_DAY / multipleFee) * 10) < 4000) { pp1.AMOUNT_PER_PERIOD = increateFeeCar; } else { pp1.AMOUNT_PER_PERIOD = increateFeeOther; } } } break; case 2: if (contract.FEE_PER_DAY < (lastPeriod.AMOUNT_PER_PERIOD / 10)) { pp1.AMOUNT_PER_PERIOD = lastPeriod.AMOUNT_PER_PERIOD; } else { if (((contract.FEE_PER_DAY / multipleFee) * 10) < 4000) { pp1.AMOUNT_PER_PERIOD = increateFeeCar; } else { pp1.AMOUNT_PER_PERIOD = increateFeeOther; } } break; //case 2: // if (((contract.FEE_PER_DAY / multipleFee) * 10) < 6000) // pp1.AMOUNT_PER_PERIOD = increateFeeEquip; // else // pp1.AMOUNT_PER_PERIOD = increateFeeOther; // break; default: pp1.AMOUNT_PER_PERIOD = increateFeeOther; break; } } else { pp1.AMOUNT_PER_PERIOD = increateFeeCar; } } pp1.STATUS = true; pp1.ACTUAL_PAY = 0; PayPeriod pp2 = new PayPeriod(); pp2.CONTRACT_ID = contract.ID; if (bFirstCreated) { pp2.PAY_DATE = pp1.PAY_DATE.AddDays(9); } else { pp2.PAY_DATE = pp1.PAY_DATE.AddDays(10); } pp2.AMOUNT_PER_PERIOD = pp1.AMOUNT_PER_PERIOD; pp2.STATUS = true; pp2.ACTUAL_PAY = 0; PayPeriod pp3 = new PayPeriod(); pp3.CONTRACT_ID = contract.ID; pp3.PAY_DATE = pp2.PAY_DATE.AddDays(10); pp3.AMOUNT_PER_PERIOD = pp1.AMOUNT_PER_PERIOD; pp3.STATUS = true; pp3.ACTUAL_PAY = 0; db.PayPeriods.Add(pp1); db.PayPeriods.Add(pp2); db.PayPeriods.Add(pp3); db.SaveChanges(); return(pp3); }
public static void AutoUpdateAmountPayPeriod() { using (var db = new RentBikeEntities()) { var contracts = db.Contracts.Where(c => c.CONTRACT_STATUS == true).ToList(); foreach (var contract in contracts) { List<PayPeriod> listPayPeriod = db.PayPeriods.Where(c => c.CONTRACT_ID == contract.ID).ToList(); foreach (PayPeriod pp in listPayPeriod) { var inoutList = db.InOuts.Where(s => s.PERIOD_ID == pp.ID); var sumPay = inoutList.Select(s => s.IN_AMOUNT).DefaultIfEmpty(0).Sum(); pp.ACTUAL_PAY = sumPay; } } db.SaveChanges(); } }
public static void SaveSummaryPayFeeMonthly() { decimal totalSlowFee, totalDebtFee; using (var db = new RentBikeEntities()) { try { var stores = db.Stores.Where(c => c.ACTIVE == true).ToList(); foreach (var store in stores) { if (db.SummaryPayFeeMonthlies.Any(c => c.SUMMURY_DATE == DateTime.Today && c.STORE_ID == store.ID)) { continue; } GetSummuryFeeMonthly(out totalSlowFee, out totalDebtFee, store.ID); SummaryPayFeeMonthly sum1 = new SummaryPayFeeMonthly(); sum1.STORE_ID = store.ID; sum1.STORE_NAME = store.NAME; sum1.SUMMURY_FEE = totalSlowFee; sum1.SUMMURY_FEE_TYPE = (int)SUMMURY_FEE_TYPE.SLOW_FEE; sum1.SUMMURY_DATE = DateTime.Today; sum1.NOTE = Constants.SUMMURY_SLOW_FEE; sum1.CREATED_DATE = DateTime.Now; sum1.CREATED_BY = Constants.DUMMY_USER; sum1.UPDATED_DATE = DateTime.Now; sum1.UPDATED_BY = Constants.DUMMY_USER; db.SummaryPayFeeMonthlies.Add(sum1); SummaryPayFeeMonthly sum2 = new SummaryPayFeeMonthly(); sum2.STORE_ID = store.ID; sum2.STORE_NAME = store.NAME; sum2.SUMMURY_FEE = totalDebtFee; sum2.SUMMURY_FEE_TYPE = (int)SUMMURY_FEE_TYPE.DEBT_FEE; sum2.SUMMURY_DATE = DateTime.Today; sum2.NOTE = Constants.SUMMURY_DEBT_FEE; sum2.CREATED_DATE = DateTime.Now; sum2.CREATED_BY = Constants.DUMMY_USER; sum2.UPDATED_DATE = DateTime.Now; sum2.UPDATED_BY = Constants.DUMMY_USER; db.SummaryPayFeeMonthlies.Add(sum2); } db.SaveChanges(); } catch (System.Data.Entity.Validation.DbEntityValidationException e) { foreach (var eve in e.EntityValidationErrors) { Logger.Log(string.Format("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:", eve.Entry.Entity.GetType().Name, eve.Entry.State)); foreach (var ve in eve.ValidationErrors) { Logger.Log(string.Format("- Property: \"{0}\", Error: \"{1}\"", ve.PropertyName, ve.ErrorMessage)); } } } catch (Exception ex) { Logger.Log(ex.Message + Environment.NewLine + ex.StackTrace); } } }