コード例 #1
0
ファイル: ExpensesForm.cs プロジェクト: thachgiasoft/RPOS
 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;
 }
コード例 #2
0
        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);
        }
コード例 #3
0
ファイル: ExpensesForm.cs プロジェクト: thachgiasoft/RPOS
        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);
            }
        }