예제 #1
0
        private void DoInvoice(bool print)
        {
            DataAccess.SaleInvoice invoice = new DataAccess.SaleInvoice();
            invoice.Date    = DateTime.Now;
            invoice.UserID  = Convert.ToInt32(UserData.Default.UserID);
            invoice.Remarks = "Sale";

            invoice.BranchID = branchID;
            invoice.Flag     = 0;

            db.SaleInvoices.Add(invoice);
            //I use a trigger to update inventory

            foreach (var item in details)
            {
                item.SaleInvoiceID = invoice.ID;
                invoice.SaleInvoiceDetails.Add(item);
            }
            invoice.Total    = Convert.ToDecimal(txtInvoiceTotal.Text);
            invoice.Discount = Convert.ToDecimal(txtDiscount.Text);
            int savedRows = db.SaveChanges();

            if (savedRows > 0)
            {
                invoice.Flag = 1;//To call trigger
                savedRows    = db.SaveChanges();
                if (print)
                {
                    DoPrint(invoice.ID);
                }
            }
        }
예제 #2
0
파일: Shif.cs 프로젝트: thachgiasoft/RPOS
 private void btnShiftStart_Click(object sender, EventArgs e)
 {
     try
     {
         if (isValid() && MessageBox.Show("هل أنت متأكد من صحة بيانات الوردية و حالة جميع الأجهزة؟", "الرجاء التأكد من البيانات قبل بدء الوردية", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.Yes)
         {
             if (db.SaveChanges() > 0)
             {
                 DataAccess.ShiftUser shiftUser = db.ShiftUsers.Create();
                 shiftUser.ShiftID    = _shift.ID;
                 shiftUser.UserID     = _shift.UserId;
                 shiftUser.LogInTime  = DateTime.Now;
                 shiftUser.LogoutTime = DateTime.Now;
                 shiftUser.Duration   = 0;
                 shiftUser.Flag       = 0;
                 _shift.ShiftUsers.Add(shiftUser);
                 if (db.SaveChanges() > 0)
                 {
                     ModuleClass.shiftID = _shift.ID;
                     if (!SendDevicesStatus())
                     {
                         MessageBox.Show("لم يستطع النظام ارسال حالة الأجهزة عن طريق رسائل الموبايل \nالرجاء تبليغ الإدارة بواسطة التلفون");
                     }
                     this.Hide();
                     //new SaleInvoiceForm(new DataAccess.SaleInvoice(), true, SaleInvoiceType.Sale).Show();
                     new NormalUserForm(db).Show();
                 }
             }
         }
     }
     catch (Exception ex)
     {
         ModuleClass.ShowExceptionMessage(this, ex, "خطأ", null);
     }
 }
예제 #3
0
 private void gridView1_RowUpdated(object sender, DevExpress.XtraGrid.Views.Base.RowObjectEventArgs e)
 {
     try
     {
         if (db.SaveChanges() > 0)
         {
         }
     }
     catch (Exception ex)
     {
         ModuleClass.ShowExceptionMessage(this, ex, "خطأ", null);
     }
 }
예제 #4
0
 private void btnSave_Click(object sender, EventArgs e)
 {
     try
     {
         if (db.SaveChanges() > 0)
         {
             //var list = db.vw_Stocking.Where(s => s.ItemCategoryId == invoice.ItemCategoryId && s.BranchID == BranchID );
             //foreach (var item in list)
             //{
             //    var child = db.StockingDetails.Create();
             //    child.
             //    invoice.StockingDetails.Add(child);
             //}
             MessageBox.Show("تم الجفظ");
             this.Close();
         }
         else
         {
             MessageBox.Show("لم يتم الجفظ");
         }
     }
     catch (Exception ex)
     {
         ModuleClass.ShowExceptionMessage(this, ex, "خطأ", null);
     }
 }
예제 #5
0
 private void btnClose_Click(object sender, EventArgs e)
 {
     if (MessageBox.Show("خروج من النظام؟", "نظام رضا بوكشوب", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.Yes)
     {
         int userID = Convert.ToInt32(UserData.Default.UserID);
         DataAccess.UserLogin login = db.UserLogins.Where(s => s.UserID == userID).LastOrDefault();
         login.LogOut = DateTime.Now;
         if (db.SaveChanges() > 0)
         {
             this.Hide();
             new Login().ShowDialog();
         }
         ////normalLogout = true;
         ////try
         ////{
         ////    Thread thread = new Thread(() => SendEmail(login, db.Users.Where(s => s.ID == login.UserID).SingleOrDefault()));
         ////    thread.Start();
         ////}
         ////catch (Exception ex)
         ////{
         ////    //Do nothing
         ////}
         //////Shared.SendEmail(login,db.Users.Where(s=>s.ID ==  login.UserID).SingleOrDefault());
     }
 }
예제 #6
0
 private void btnSave_Click(object sender, EventArgs e)
 {
     try
     {
         if (db.SaveChanges() > 0)
         {
             MainScreen parent = (MainScreen)this.Parent.Parent.Parent.Parent;
             parent.ShowMessageInStatusBar("تم حفظ اليانات", 9000);
             //  MessageBox.Show("Saved");
         }
     }
     catch (Exception ex)
     {
         ModuleClass.ShowExceptionMessage(this, ex, "خطأ", null);
     }
 }
예제 #7
0
 private void gridView1_RowUpdated(object sender, DevExpress.XtraGrid.Views.Base.RowObjectEventArgs e)
 {
     try
     {
         if (db.SaveChanges() > 0)
         {
             DataAccess.StockingDetail row = e.Row as DataAccess.StockingDetail;
             row.Status = 1;
             ShowMessageInStatusBar("تم حفظ اليانات", 9000);
         }
     }
     catch (Exception ex)
     {
         ModuleClass.ShowExceptionMessage(this, ex, "خطأ", null);
     }
 }
예제 #8
0
        private void btnSave_Click(object sender, EventArgs e)
        {
            try
            {
                if (MessageBox.Show("هل أنت متأكد من إرجاع الفاتور؟", "إرجاع الفاتور", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.Yes)
                {
                    var     saleInvoice = db.SaleInvoices.Where(s => s.ID == this._invoiceId).SingleOrDefault();
                    decimal tot         = 0;
                    foreach (var item in saleInvoice.SaleInvoiceDetails)
                    {
                        tot += (item.UnitPrice * item.Quanitity);
                    }
                    saleInvoice.Total = tot;
                    saleInvoice.Flag  = 2;

                    if (db.SaveChanges() > 0)
                    {
                        this.Close();
                    }
                }
            }
            catch (Exception ex)
            {
                ModuleClass.ShowExceptionMessage(this, ex, "خطأ", null);
            }
        }
예제 #9
0
 private void btnSave_Click(object sender, EventArgs e)
 {
     try
     {
         // MainScreen parent = (MainScreen)this.Parent.Parent.Parent.Parent;
         if (db.SaveChanges() > 0)
         {
             ShowMessageInStatusBar("تم حفظ اليانات", 9000);
         }
         else
         {
             ShowMessageInStatusBar("لا يوجد تغيير في البيانات يحتاج لحفظ", 9000);
         }
     }
     catch (Exception ex)
     {
         ModuleClass.ShowExceptionMessage(this, ex, "خطأ", null);
     }
 }
예제 #10
0
        public ItemForm(DataAccess.Item item)
        {
            InitializeComponent();
            bindingSourceCategory.DataSource = db.ItemCategories.ToList();
            this.item = db.Items.Where(s => s.ID == item.ID).SingleOrDefault();;
            //use to send notificationn when change price
            oldPrice = item.SalePrice;

            bindingSourceItem.DataSource        = this.item;
            bindingSourceItemBarcode.DataSource = /*this.item.ItemBarcodes;*/ db.ItemBarcodes.Where(s => s.ItemID == item.ID).ToList();
            // item.Name = p;
            txtName.Focus();

            var itm = db.Items.Where(s => s.Name.Contains("osman")).SingleOrDefault();

            itm.SalePrice = 20;
            if (db.SaveChanges() > 0)
            {
            }
        }
예제 #11
0
 private void btnSave_Click(object sender, EventArgs e)
 {
     try
     {
         if (db.SaveChanges() > 0)
         {
             string message = "";
             message += "تم تغير كمية الصنف:" + ItemName + "من" + OldQTY + "الي" + NewQTY + Environment.NewLine;
             message += "الموظف" + UserData.Default.UserName + Environment.NewLine;
             message += "@ Reda" + UserData.Default.BranchID + Environment.NewLine;
             gridControl1.DataSource = null;
             this.inventoryBindingSource.DataSource = null;
             txtSearch.Focus();
             PushMessage.SendDirectInventory(message);
         }
     }
     catch (Exception ex)
     {
         ModuleClass.ShowExceptionMessage(this, ex, "خطأ", null);
     }
 }
예제 #12
0
        private void btnAddUser_Click(object sender, EventArgs e)
        {
            try
            {
                if (!dxErrorProvider1.HasErrors)
                {
                    int userId = Convert.ToInt32(cmbUserName.EditValue);
                    int year   = DateTime.Now.Year;
                    int month  = DateTime.Now.Month;
                    int day    = DateTime.Now.Day;

                    string password  = txtPassword.EditValue.ToString().ToLower();
                    var    ValidUser = db.Users.Where(s => s.ID == userId && s.Password.ToLower() == password).SingleOrDefault();
                    var    _shift    = db.Shifts.Where(s => s.ID == ModuleClass.shiftID).SingleOrDefault();
                    if (ValidUser != null)
                    {
                        if (_shift.ShiftUsers.Where(s => s.UserID == userId).Any())
                        {
                            MessageBox.Show(" للوردية " + cmbUserName.Text + " لا يمكن إضافة المسخدم  ", "المستخدم موجود بالوردية");
                            return;
                        }

                        DataAccess.ShiftUser shiftUser = db.ShiftUsers.Create();
                        shiftUser.ShiftID    = _shift.ID;
                        shiftUser.UserID     = userId;
                        shiftUser.LogInTime  = DateTime.Now;
                        shiftUser.LogoutTime = DateTime.Now;
                        shiftUser.Duration   = 0;
                        shiftUser.Flag       = 0;
                        _shift.ShiftUsers.Add(shiftUser);
                        if (db.SaveChanges() > 0)
                        {
                            var message = "" + UserData.Default.BranchName + " فرع " + " للوردية   " + cmbUserName.Text + " تمت إضافة المستخدم ";
                            PushMessage.SendSignOnMessage(message);
                            MessageBox.Show(message);

                            Thread.Sleep(1500);
                            this.Close();
                        }
                    }
                    else
                    {
                        MessageBox.Show("الرجاء التأكد من اسم المستخدم وكلمة المرور");
                    }
                }
            }
            catch (Exception ex)
            {
                ModuleClass.ShowExceptionMessage(this, ex, "خطأ", null);
                db = ModuleClass.GetConnection();
            }
        }
예제 #13
0
파일: Login.cs 프로젝트: thachgiasoft/RPOS
        void WriteSesssion(DataAccess.User ValidUser, bool sendEmai, string emailTitle)
        {
            UserData.Default.UserName = ValidUser.UserName;
            UserData.Default.UserID   = ValidUser.ID.ToString();
            // UserData.Default.Password = ValidUser.Password;
            string BranchID = cmbBranches.GetColumnValue("ID").ToString();

            UserData.Default.BranchID = BranchID;
            UserData.Default.Save();
            DataAccess.UserLogin login = db.UserLogins.Create();
            login.LogIn    = DateTime.Now;
            login.LogOut   = login.LogIn;
            login.UserID   = ValidUser.ID;
            login.Type     = false;//Login
            login.BranchID = Convert.ToInt32(BranchID);
            db.UserLogins.Add(login);
            if (db.SaveChanges() > 0) // Add session info
            {
                ////if (sendEmai)
                ////{
                ////    try
                ////    {
                ////        ////Thread thread = new Thread(() => SendEmail(login, ValidUser));
                ////        ////thread.Start();
                ////        string title = emailTitle;
                ////        string message="";
                ////        if (login.Type)//Login Out
                ////        {
                ////            message = login.Date.Day.ToString("00") + "/" + login.Date.Month.ToString("00") + "-" + login.Date.Hour.ToString("00") + ":" + login.Date.Minute.ToString("00") + " :" + ValidUser.UserName + " :خروج" + "- " + UserData.Default.BranchName + "-" + "  " + System.Environment.MachineName;
                ////            //title = "خروج";
                ////        }
                ////        else//Login In
                ////        {
                ////            message = login.Date.Day.ToString("00") + "/" + login.Date.Month.ToString("00") + "-" + login.Date.Hour.ToString("00") + ":" + login.Date.Minute.ToString("00") + " :" + ValidUser.UserName + "   : دخول" + " " + UserData.Default.BranchName + " from pc:  " + System.Environment.MachineName;
                ////           // title = "دخول";
                ////        }

                ////       // string EmailReceivers = recervers;// UserData.Default.EmailReceivers;
                ////        Thread whatsApplThread = new Thread(() => PushMessage.SendSignOnMessage(message, UserData.Default.BranchName, login.Date, ValidUser.UserName));
                ////        whatsApplThread.Start();

                ////        ////Thread emailThread = new Thread(() => ModuleClass.SendEmail("", emailTitle, message));
                ////        ////emailThread.Start();
                ////    }
                ////    catch (Exception ex)
                ////    {
                ////        //Do nothing
                ////    }
                ////}
            }
        }
예제 #14
0
 private void btnSave_Click(object sender, EventArgs e)
 {
     try
     {
         if (db.SaveChanges() > 0)
         {
             MessageBox.Show("تم حفظ البيانات");
         }
     }
     catch (Exception ex)
     {
         ModuleClass.ShowExceptionMessage(this, ex, "خطأ", null);
     }
 }
예제 #15
0
        private void btnAddUser_Click(object sender, EventArgs e)
        {
            try
            {
                if (!dxErrorProvider1.HasErrors)
                {
                    DataAccess.Request request = db.Requests.Create();
                    itemID = 0;

                    userID = Convert.ToInt32(UserData.Default.UserID);
                    string UserName = Convert.ToString(UserData.Default.UserName);
                    branchID = Convert.ToInt32(UserData.Default.BranchID);
                    quantity = Convert.ToInt32(txtQuantity.EditValue);
                    string desciption = txtDescription.Text;


                    request.UserID      = userID;
                    request.BranchID    = branchID;
                    request.RequestDate = DateTime.Now;
                    request.Quantity    = quantity;
                    request.Description = desciption;
                    var itemObj = (ItemObject)listBoxControl1.SelectedItem;
                    request.ItemID = Convert.ToInt32(itemObj.Data);
                    db.Requests.Add(request);

                    if (db.SaveChanges() > 0)
                    {
#if !DEBUG
                        var message = "" + UserData.Default.BranchName + " فرع " + UserName + " من المستخدم   " + lblItem.Text + " تمت طلب الصنف ";
                        PushMessage.SendDirectMessage(message);
#endif
                        MessageBox.Show("تم حفظ الطلب و إرساله للإدارة", "شكرا لاهتمامك");
                        //  Thread.Sleep(1500);
                        // this.Close();
                    }
                    else
                    {
                        MessageBox.Show("توجد مشكلة في حفظ البيانات، الرجاء المحاولة مرة أخري");
                    }
                }
            }
            catch (Exception ex)
            {
                ModuleClass.ShowExceptionMessage(this, ex, "خطأ", null);
                db = ModuleClass.GetConnection();
            }
        }
예제 #16
0
 private void btnSave_Click(object sender, EventArgs e)
 {
     try
     {
         errorProvider1.Clear();
         int userID = Convert.ToInt32(UserData.Default.UserID);
         //var User = db.Users.Where(s => s.ID == userID).SingleOrDefault();
         if (txtOldPassword.EditValue.ToString() != User.Password)
         {
             errorProvider1.SetError(txtOldPassword, "كلمة السر القديمة غير صحيحة");
             return;
         }
         if (txtNewPassword.EditValue == null || txtConfirmPassword.EditValue == null)
         {
             errorProvider1.SetError(txtConfirmPassword, "كلمة السر غير صحيحه");
             return;
         }
         if (txtNewPassword.EditValue.ToString() != txtConfirmPassword.EditValue.ToString())
         {
             errorProvider1.SetError(txtConfirmPassword, "كلمة السر غير مطابقة");
             return;
         }
         //User.Password = "";
         User.Password = txtNewPassword.EditValue.ToString();
         //User.Email = txtEmail.EditValue.ToString();
         //User.MobileNo = txtMobileNo.EditValue.ToString();
         //User.
         if (!db.ChangeTracker.HasChanges())
         {
             MessageBox.Show("لم تقم بتغيير أي شي ");
             return;
         }
         if (db.SaveChanges() > 0)
         {
             MessageBox.Show("تم حفظ التغييرات");
             this.Close();
         }
         else
         {
             MessageBox.Show("لم يتم حفظ التغييرات");
         }
     }
     catch (Exception ex)
     {
         ModuleClass.ShowExceptionMessage(this, ex, "خطأ", null);
     }
 }
예제 #17
0
        private void btnSave_Click(object sender, EventArgs e)
        {
            try
            {
                if (CustomValidate())
                {
                    payment.Amount = payment.Amount * -1;
                    if (db.SaveChanges() > 0)
                    {
                        try
                        {
                            string message = "";
                            message += "  تم صرف قيمة " + AmountTextEdit.EditValue + Environment.NewLine;
                            message += "  عبارة عن " + txtDescription.Text + Environment.NewLine;
                            message += "  نوع المنصرف " + PaymentTypeIdTextEdit.Text + Environment.NewLine;
                            message += "   المستخدم " + UserData.Default.UserName + Environment.NewLine;

                            var    usersMobileNos = db.Users.Where(s => s.IsAdmin == true).Select(s => s.MobileNo).ToList();
                            Thread thread         = new Thread(() => PushMessage.SendPayment(message));// UserData.Default.WhatsAppReceivers, message));
                            thread.Start();

                            //send by Email
                            string EmailReceivers = db.Users.Where(s => s.IsAdmin == true).Select(s => s.Email).ToList().ToString();// UserData.Default.EmailReceivers;
                            //Thread emailThread = new Thread(() => ModuleClass.SendEmail("", "منصرف رئيسي ", message));
                            //emailThread.Start();
                        }
                        catch (Exception ex)
                        {
                            //Do nothing
                        }
                        this.Close();
                    }
                }
            }
            catch (Exception ex)
            {
                ModuleClass.ShowExceptionMessage(this, ex, "خطأ", null);
            }
        }
예제 #18
0
        private void btnImportAircraft_Click(object sender, EventArgs e)
        {
            try
            {
                DataAccess.Inventory inventory;
                DataSet mainDS = ImportExcelXLS("C:\\Excel Files\\Reda1.xls", true);

                DataTable dtSale = mainDS.Tables[1];
                ////var resultsSale = from myRow in dtSale.AsEnumerable()
                ////              //where myRow.Field<int>("RowNo") == 1
                ////              select myRow;

                DataTable dtDetails = mainDS.Tables[3];



                DataAccess.SaleInvoice saleInvoice = null;
                int Salecounter    = 0;
                int Detailscounter = 0;
                foreach (DataRow item in mainDS.Tables[1].Rows)
                {
                    string i  = item["ID"].ToString().Trim();
                    int    ID = 0;
                    Int32.TryParse(i, out ID);

                    Salecounter++;
                    string   d = item["Date"].ToString().Trim();
                    DateTime Date;
                    DateTime.TryParse(d, out Date);

                    string u      = item["UserID"].ToString().Trim();
                    int    UserID = 0;
                    Int32.TryParse(u, out UserID);

                    string f    = item["Flag"].ToString().Trim();
                    int    Flag = 0;
                    Int32.TryParse(f, out Flag);


                    string Remarks = item["Remarks"].ToString().Trim();

                    string  r     = item["Total"].ToString().Trim();
                    decimal Total = 0;
                    Decimal.TryParse(r, out Total);



                    string  dis      = item["Discount"].ToString().Trim();
                    decimal Discount = 0;
                    Decimal.TryParse(dis, out Discount);

                    int BranchID = 1;



                    if (Flag == 1)
                    {
                        saleInvoice          = db.SaleInvoices.Create();
                        saleInvoice.BranchID = BranchID;
                        saleInvoice.Date     = Date;
                        saleInvoice.Discount = Discount;
                        saleInvoice.Flag     = 9;
                        saleInvoice.Remarks  = "Reda1" + ID;
                        saleInvoice.Total    = Total;
                        saleInvoice.UserID   = UserID;
                        db.SaleInvoices.Add(saleInvoice);

                        var resultsDetails = from myRow in dtDetails.AsEnumerable()
                                             where myRow.Field <string>("SaleInvoiceID") == i
                                             select myRow;

                        DataAccess.SaleInvoiceDetail child;// = db.SaleInvoiceDetails.Create();
                        foreach (var details in resultsDetails)
                        {
                            child = db.SaleInvoiceDetails.Create();
                            Detailscounter++;

                            string it     = details["ItemID"].ToString().Trim();
                            int    ItemID = 0;
                            Int32.TryParse(it, out ItemID);

                            string inv         = details["InventoryID"].ToString().Trim();
                            int    InventoryID = 0;
                            Int32.TryParse(inv, out InventoryID);

                            string q         = details["Quanitity"].ToString().Trim();
                            int    Quanitity = 0;
                            Int32.TryParse(q, out Quanitity);

                            string  un        = details["UnitPrice"].ToString().Trim();
                            decimal UnitPrice = 0;
                            Decimal.TryParse(un, out UnitPrice);

                            child.CurrentQuanitity = 0;
                            child.InventoryID      = InventoryID;
                            child.ItemID           = ItemID;
                            child.PurchaseQuantity = 0;
                            child.Quanitity        = Quanitity;
                            child.Remarks          = i;
                            child.UnitPrice        = UnitPrice;
                            saleInvoice.SaleInvoiceDetails.Add(child);

                            inventory = db.Inventories.Where(s => s.ID == child.InventoryID).SingleOrDefault();
                            inventory.CurrentQuanity -= child.Quanitity;
                        }
                        int savedRow = db.SaveChanges();
                        if (savedRow > 0)
                        {
                        }
                    }
                }
                MessageBox.Show(Salecounter.ToString() + "  row inserted", " Details: " + Detailscounter);
            }
            catch (Exception ex)
            {
                ModuleClass.ShowExceptionMessage(this, ex, "خطأ", null);
            }
        }
예제 #19
0
        private void AddToInvoice(int ItemID)
        {
            // int ItemID = 0;
            // ItemID = Convert.ToInt32(cmbItem.EditValue);

            int quantity = 0;

            quantity = Convert.ToInt32(txtQunatity.Text);

            decimal purchasePrice = 0;

            purchasePrice = Convert.ToDecimal(txtPurchasePrice.Text);

            decimal salePrice = 0;

            salePrice = Convert.ToDecimal(txtSalePrice.Text);

            decimal discountPrice = 0;

            discountPrice = Convert.ToDecimal(txtItemDiscount.Text);

            /*
             * Validation
             * Check dupicated items
             */

            var found = (from s in purchaseDetails where s.ItemID == ItemID select s).Count();

            if (found != 0)
            {
                MessageBox.Show(cmbItem.Text + "  already in the invoice", "Duplicate item", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            DataAccess.PurchaseInvoiceDetail detail = db.PurchaseInvoiceDetails.Create();

            detail.PurchaseInvoiceID = invoice.ID;
            detail.ItemID            = ItemID;
            detail.Quantity          = quantity;
            detail.PurchasePrice     = purchasePrice;
            detail.SalePrice         = salePrice;
            detail.DiscountPrice     = discountPrice;

            purchaseDetails.Add(detail);
            if (checkEditAutoSave.Checked)
            {
                if (db.SaveChanges() > 0)
                {
                    ShowMessageInStatusBar("New item saved successfully", 9000);
                }
            }
            if (checkEditAutoPrint.Checked)
            {
                if (PrintDetails(detail, Convert.ToInt16(detail.Quantity)))
                {
                    ShowMessageInStatusBar("New item printed successfully", 9000);
                }
            }
            bindingSource2.ResetBindings(false);
            txtQunatity.EditValue      = 0;
            txtPurchasePrice.EditValue = 0;
            txtDiscount.EditValue      = 0;
            txtSalePrice.EditValue     = 0;

            cmbItem.Focus();
        }
예제 #20
0
        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);
            }
        }
예제 #21
0
        private void contextMenuStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
        {
            try
            {
                //Add or update items
                if (e.ClickedItem == invoiceDetailsToolStripMenuItem)
                {
                    DataAccess.vw_Stocking vw_invoice = (DataAccess.vw_Stocking)gridView1.GetFocusedRow();

                    DataAccess.Stocking invoice = db.Stockings.Where(s => s.ID == vw_invoice.ID).SingleOrDefault();
                    //rpt.DataSource = db.vw_StockingDetails.Where(s => s.StockingID == currentRow.ID).OrderBy(s => s.Name).ToList();
                    //if (invoice.Flag == 1) //Clased Invoice
                    //{
                    //    MessageBox.Show("You can not update closed invoice", "Update Invoice", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                    //    return;
                    //}

                    new StockingForm(vw_invoice.ID, false).Show();
                }

                //Close invoice
                if (e.ClickedItem == closeToolStripMenuItem)
                {
                    DataAccess.vw_Stocking currentRow = (DataAccess.vw_Stocking)gridView1.GetFocusedRow();
                    DataAccess.Stocking    invoice    = db.Stockings.Where(s => s.ID == currentRow.ID).SingleOrDefault();

                    if (currentRow.Flag == 1)
                    {
                        MessageBox.Show("Invoice already closed", "Closed Invoice", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                        return;
                    }

                    if (invoice.StockingDetails.Count == 0)
                    {
                        MessageBox.Show("You can not close invoice has no items", "Closed Invoice", MessageBoxButtons.OK, MessageBoxIcon.Stop);

                        return;
                    }

                    if (MessageBox.Show("Close invoice ?", "Close invoice", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                    {
                        invoice.Flag = 1;
                        if (db.SaveChanges() > 0)
                        {
                            ShowMessageInStatusBar("Invoice closed", 9000);
                        }
                    }
                }
                if (e.ClickedItem == printToolStripMenuItem)
                {
                    DataAccess.vw_Stocking currentRow = (DataAccess.vw_Stocking)gridView1.GetFocusedRow();
                    StockingRPT            rpt        = new StockingRPT();
                    rpt.parameterCategory.Value = currentRow.Category;
                    rpt.parameterBranch.Value   = currentRow.BranchName;
                    rpt.DataSource = db.vw_StockingDetails.Where(s => s.StockingID == currentRow.ID).OrderBy(s => s.Name).ToList();
                    ReportPrintTool tool = new ReportPrintTool(rpt);
                    tool.ShowRibbonPreview();
                }
            }
            catch (Exception ex)
            {
                ModuleClass.ShowExceptionMessage(this, ex, "خطأ", null);
            }
        }
예제 #22
0
        private void btnNumberOfhoursToUser_Click(object sender, EventArgs e)
        {
            try
            {
                dxErrorProvider1.ClearErrors();
                if (cmbUserName.EditValue == null)
                {
                    dxErrorProvider1.SetError(cmbUserName, "يجد تحديد الموظف   ");
                }
                if (txtHourNumbers.EditValue == "")
                {
                    dxErrorProvider1.SetError(txtHourNumbers, "يجد تحديد عدد الساعات للموظف");
                }
                if (txtDescription.Text == string.Empty || txtDescription.Text == "" || txtDescription.Text == null || txtDescription.Text.Length < 7)
                {
                    dxErrorProvider1.SetError(txtDescription, "يجد تحديد الغرض بصورة واضحة");
                }
                if (!dxErrorProvider1.HasErrors)
                {
                    int userId  = Convert.ToInt32(cmbUserName.EditValue);
                    int year    = DateTime.Now.Year;
                    int month   = DateTime.Now.Month;
                    int day     = DateTime.Now.Day;
                    var message = " تمت إضافة زمن للمستخدم " + cmbUserName.Text + " لمدة " + txtHourNumbers.Text + " ساعات ";
                    message += " الغرض ";
                    message += txtDescription.Text;

                    string  NumberOfhours = txtHourNumbers.EditValue.ToString().ToLower();
                    decimal balance       = db.UserPayments.Where(s => s.UserID == userId).Select(s => (decimal?)s.Amount).Sum() ?? 0;

                    //(SELECT SUM(Amount) FROM[dbo].[UserPayment] Where UserID = @UserID)
                    decimal hourRate = Convert.ToDecimal(cmbUserName.GetColumnValue("HourRate"));

                    var _userPayment = new DataAccess.UserPayment();
                    _userPayment.Amount      = Convert.ToDecimal(NumberOfhours) * hourRate;
                    _userPayment.Balance     = balance + _userPayment.Amount;
                    _userPayment.Date        = DateTime.Now;
                    _userPayment.Desciption  = message;
                    _userPayment.InvoiceID   = 0;
                    _userPayment.PaymentType = 1;
                    _userPayment.UserID      = userId;
                    db.UserPayments.Add(_userPayment);

                    /*
                     * var _shift = db.Shifts.Where(s => s.BranchID == 1).OrderBy(s => s.ID).First();// .LastOrDefault();//.SingleOrDefault();
                     * DataAccess.ShiftUser newShift = new DataAccess.ShiftUser();
                     * newShift.Duration = Convert.ToDecimal(NumberOfhours) * 60;
                     * newShift.ShiftID = _shift.ID;
                     * newShift.LogInTime = DateTime.Now.AddHours(-1 * Convert.ToDouble(NumberOfhours));
                     * newShift.LogoutTime = DateTime.Now;
                     * newShift.UserID = userId;
                     * newShift.Flag = 1;
                     * db.ShiftUsers.Add(newShift);
                     */
                    if (db.SaveChanges() > 0)
                    {
                        if (cmbUserName.GetColumnValue("PushoverID") != null)
                        {
                            string        pushid  = cmbUserName.GetColumnValue("PushoverID").ToString();
                            List <string> userIDs = new List <string>();
                            userIDs.Add(pushid);

                            var userPayment = db.UserPayments.Where(s => s.UserID == userId).OrderByDescending(s => s.ID).Take(1).SingleOrDefault();
                            var amount      = userPayment.Amount;
                            balance = userPayment.Balance;

                            message += Environment.NewLine + " " + "القيمة  " + amount + Environment.NewLine + " " + " المطالبة الحالية: " + balance + Environment.NewLine;


                            PushMessage.SendUserPaymentStatusMessage(message, userIDs);

                            MessageBox.Show(message);

                            Thread.Sleep(1500);
                        }
                        this.Close();
                    }
                }
            }
            catch (Exception ex)
            {
                ModuleClass.ShowExceptionMessage(this, ex, "خطأ", null);
                db = ModuleClass.GetConnection();
            }
        }