public ExpensesForm() { InitializeComponent(); _expense = db.Expenses.Create(); _expense.Date = DateTime.Now; _expense.InsertedUserId = Convert.ToInt32(UserData.Default.UserID); _expense.BranchID = Convert.ToInt32(UserData.Default.BranchID); _expense.ShiftID = ModuleClass.shiftID; bindingSourceExpense.DataSource = _expense; }
private Dictionary <int, decimal> MigrateData(List <Expense> expenses) { Dictionary <int, decimal> totalExpenseByMonth = new Dictionary <int, decimal>(); if (expenses != null && expenses.Count > 0) { List <DataAccess.Expense> dbExpenses = new List <DataAccess.Expense>(); try { using (var dbContext = new Wave_X1_MainEntities()) { foreach (var expense in expenses) { int employeeId = GetOrSetEmployeeRecord(dbContext, expense.EmployeeName, expense.EmployeeAddress); int expenseCategoryId = GetOrSetExpenseCategory(dbContext, expense.Category); int taxId = GetOrSetTaxState(dbContext, expense.TaxName); DataAccess.Expense dbExpense = new DataAccess.Expense { EmployeeId = employeeId, ExpenseCategoryId = expenseCategoryId, TaxStateId = taxId, ExpenseDescription = expense.ExpenseDescription, PreTaxAmount = expense.PretaxAmount, TaxAmount = expense.TaxAmount, }; DateTime dt; bool isDateTime = DateTime.TryParse(expense.Date, out dt); if (isDateTime) { dbExpense.SubmissionDate = dt; } else { string sqlMinDt = SqlDateTime.MinValue.ToString(); dbExpense.SubmissionDate = Convert.ToDateTime(sqlMinDt); } if (totalExpenseByMonth.ContainsKey(dt.Month)) { totalExpenseByMonth[dt.Month] = totalExpenseByMonth[dt.Month] + expense.TotalExpenseAmount; } else { totalExpenseByMonth[dt.Month] = expense.TotalExpenseAmount; } dbExpenses.Add(dbExpense); lock (lockObject) { completed = completed + 1; } System.Console.WriteLine("Processing Completed:" + completed); UpdateMigrationProgress(total, completed); } dbContext.Expenses.AddRange(dbExpenses); dbContext.SaveChanges(); } } catch (Exception ex) { } } return(totalExpenseByMonth); }
private void btnSave_Click(object sender, EventArgs e) { try { if (isValid()) { int userID = _expense.UserID; string toUser = cmbExpensesTo.Text; DateTime from = new DateTime(_expense.Date.Year, _expense.Date.Month, _expense.Date.Day, 0, 0, 0); DateTime to = new DateTime(_expense.Date.Year, _expense.Date.Month, _expense.Date.Day, 23, 59, 59); int MaxExpensePerDay = Convert.ToInt32(db.Users.Where(s => s.ID == userID).SingleOrDefault().MaxExpensePerDay); var todayExpensePerDay = db.vw_Expense.Where(s => s.UserID == userID && (s.Date >= from && s.Date <= to)).DefaultIfEmpty().Sum(s => (decimal?)s.Amount ?? 0); if ((todayExpensePerDay + _expense.Amount) > MaxExpensePerDay) { MessageBox.Show("أقصي مبلغ يمكن صرفه ل " + toUser + " خلال اليوم هو " + MaxExpensePerDay + Environment.NewLine + " المنصرف اليومي حتي الآن " + todayExpensePerDay, "لا يمكن صرف المبلغ", MessageBoxButtons.OK, MessageBoxIcon.Stop); return; } int MaxExpensePerMonth = Convert.ToInt32(db.Users.Where(s => s.ID == userID).SingleOrDefault().MaxExpensePerMonth); from = new DateTime(_expense.Date.Year, _expense.Date.Month, 1, 0, 0, 0); to = new DateTime(_expense.Date.Year, _expense.Date.Month, DateTime.DaysInMonth(_expense.Date.Year, _expense.Date.Month), 23, 59, 59); var todayExpensePerMonth = db.vw_Expense.Where(s => s.UserID == userID && (s.Date >= from && s.Date <= to)).DefaultIfEmpty().Sum(s => (decimal?)s.Amount ?? 0); if ((todayExpensePerMonth + _expense.Amount) > MaxExpensePerMonth) { MessageBox.Show("أقصي مبلغ يمكن صرفه ل " + toUser + " خلال الشهر هو " + MaxExpensePerMonth + Environment.NewLine + " المنصرف الشهري حتي الآن " + todayExpensePerMonth, "لا يمكن صرف المبلغ", MessageBoxButtons.OK, MessageBoxIcon.Stop); return; } if (_expense.ShiftID == 0) { ////MessageBox.Show("لا يمكن حفظ البيانات، الرجاء مراجعة مسؤول النظام"); ////return; _expense.ShiftID = 30; } db.Expenses.Add(_expense); if (db.SaveChanges() > 0) { //Send To Whatsapp try { var ExpenseToUser = cmbExpensesTo.GetSelectedDataRow() as DataAccess.User; int userId = Convert.ToInt32(UserData.Default.UserID); var insertedUser = db.Users.Where(s => s.ID == userId).SingleOrDefault(); var usersMobileNos = db.Users.Where(s => s.IsEnable == true && s.IsAdmin == true).Select(s => s.MobileNo).ToList(); string recervers = ""; //foreach (var item in usersMobileNos) //{ // recervers += (item + ","); //} string message = "تم صرف مبلغ " + _expense.Amount + " لصالح " + ExpenseToUser.FullName + " عبارة عن " + _expense.Description + " تم الإدخال بواسطة " + insertedUser.FullName; var userPayment = db.UserPayments.Where(s => s.UserID == _expense.UserID).OrderByDescending(s => s.ID).Take(1).SingleOrDefault(); var amount = userPayment.Amount; var balance = userPayment.Balance; message += Environment.NewLine + " " + " آخر منصرف: " + amount + Environment.NewLine + " " + " المطالبة الحالية: " + balance + Environment.NewLine; Thread thread = new Thread(() => PushMessage.SendDialyExpense(insertedUser, ExpenseToUser, message)); thread.Start(); //send by Email //string EmailReceivers = emails;// UserData.Default.EmailReceivers; //Thread emailThread = new Thread(() => ModuleClass.SendEmail("", "منصرف", message)); //emailThread.Start(); MessageBox.Show(message, "تم حفظ المنصرف"); this.Close(); } catch (Exception ex) { //Do nothing } // MessageBox.Show("تم الحفظ"); this.Close(); _expense = db.Expenses.Create(); _expense.Date = DateTime.Now; _expense.InsertedUserId = Convert.ToInt32(UserData.Default.UserID); _expense.BranchID = Convert.ToInt32(UserData.Default.BranchID); bindingSourceExpense.DataSource = _expense; } } } catch (Exception ex) { ModuleClass.ShowExceptionMessage(this, ex, "خطأ", null); } }