コード例 #1
0
        public string GetCustomerIdByName(string name, PharmacyDbContext db)
        {
            if (name == "")
            {
                name = "Unknown";
            }
            Customer customer = db.Customer.FirstOrDefault(i => i.Name == name);

            if (customer != null)
            {
                return(customer.Id);
            }
            else
            {
                customer = new Customer
                {
                    Id          = UniqueNumber.GenerateUniqueNumber(),
                    Name        = name,
                    Mobile      = txtPhone.Text,
                    CreatedBy   = currentUser,
                    CreatedDate = DateTime.Now
                };
                db.Customer.Add(customer);
                db.SaveChanges();
                return(customer.Id);
            }
        }
コード例 #2
0
        private void btnRemove_Click(object sender, EventArgs e)
        {
            string recordId = SelectedRowId();

            if (recordId == null)
            {
                return;
            }

            var choice = XtraMessageBox.Show("Sure want to delete this record?", "?? :D ??", MessageBoxButtons.YesNo);

            if (choice == DialogResult.Yes)
            {
                try
                {
                    using (var context = PharmacyDbContext.Create())
                    {
                        var commodity = new Commodity {
                            Id = int.Parse(recordId)
                        };
                        context.Commodities.Attach(commodity);
                        context.Commodities.Remove(commodity);
                        context.SaveChanges();
                    }
                    XtraMessageBox.Show("Remove successfully", "Pharmacy management");
                    RefillGrid();
                }
                catch (Exception ex)
                {
                    XtraMessageBox.Show($"Some error occured\nDetails:\n{ex.Message}", "Xome Pug Found");
                }
            }
        }
コード例 #3
0
        private void btnTodayDue_Click(object sender, EventArgs e)
        {
            DateTime          today = DateTime.Today;
            PharmacyDbContext db    = new PharmacyDbContext();
            int rowNo = 1;
            var data  = db.Voucher
                        .ToList()
                        .Where(d => d.CreatedDate.Date == today.Date && d.CustomerId != null)
                        .GroupBy(o => o.CustomerId)
                        .Select(x => new
            {
                SL           = rowNo++,
                CustomerId   = x.Key,
                CustomerName = x.Select(a => a.Customer.Name).FirstOrDefault(),
                Mobile       = x.Select(a => a.Customer.Mobile).FirstOrDefault(),
                Due          = x.Where(c => c.GLCode == GLCode.AccountReceivable).Sum(a => a.Dr - a.Cr) < 0 ? 0 : x.Where(c => c.GLCode == GLCode.AccountReceivable).Sum(a => a.Dr - a.Cr),
                Paid         = x.Where(c => c.GLCode == GLCode.Cash).Sum(a => a.Dr),
                TotalSale    = x.Where(c => c.GLCode == GLCode.SaleMedicine).Sum(a => a.Cr),
                Date         = x.Select(a => a.CreatedDate).FirstOrDefault().ToString("d")
            }).ToList();

            db.Dispose();
            dgvDue.Columns.Clear();
            dgvDue.DataSource = data;

            lblDueTotal.Text  = data.Sum(x => x.Due).ToString();    // db.Voucher.Where(a => a.GLCode == GLCode.AccountReceivable && a.CustomerId != null).ToList().Sum(x => x.Dr-x.Cr).ToString();
            lblPaidTotal.Text = data.Sum(x => x.Paid).ToString();   //db.Voucher.Where(a=>a.GLCode == GLCode.Cash && a.CustomerId != null).ToList().Sum(x => x.Dr).ToString();
            lblTotal.Text     = data.Sum(x => x.TotalSale).ToString();

            AddButton();

            MakeFullWidthScreen();
        }
コード例 #4
0
        private void btnLogin_Click(object sender, EventArgs e)
        {
            string username = txtUserName.Text;
            string password = txtPassword.Text;

            try
            {
                PharmacyDbContext db   = new PharmacyDbContext();
                AppUser           user = db.AppUser.ToList()
                                         .FirstOrDefault(x => x.Email == username && x.Password == password);
                if (user != null)
                {
                    Home home = new Home(username);
                    home.Show();
                    this.Hide();
                }
                else
                {
                    MessageBox.Show("Login failed");
                }
            }
            catch (Exception exception)
            {
                Console.WriteLine(exception);
            }
        }
コード例 #5
0
        private void btnSave_Click(object sender, EventArgs e)
        {
            //try
            //{
            PharmacyDbContext db = new PharmacyDbContext();

            foreach (ListViewItem item in lvMedicine.Items)
            {
                Medicine medicine = new Medicine();

                medicine.Name        = item.SubItems[2].Text;
                medicine.Id          = UniqueNumber.GenerateUniqueNumber();
                medicine.CreatedBy   = currentUser;
                medicine.CreatedDate = DateTime.Now;
                medicine.GroupId     = GroupFactory.GetGroupId(item.SubItems[3].Text, currentUser);
                medicine.CompanyId   = CompanyFactory.GetCompanyId(item.SubItems[4].Text, currentUser);
                db.Medicine.Add(medicine);
            }
            db.SaveChanges();
            db.Dispose();
            MessageBox.Show(@"Save successful!", "Success!", MessageBoxButtons.OK, MessageBoxIcon.Information);
            lvMedicine.Items.Clear();
            //}
            //catch (Exception exception)
            //{
            //    MessageBox.Show("Saving Error:" + exception.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            //}
        }
コード例 #6
0
        private void SaveVoucher(decimal total, string invoiceId, PharmacyDbContext db)
        {
            int count = 1;
            //Debit Entry

            Voucher voucher = new Voucher
            {
                Id          = Guid.NewGuid().ToString(),
                EntryNo     = count++,
                GLCode      = GLCode.Expense,
                Dr          = total,
                Cr          = 0,
                InvoiceId   = invoiceId,
                CreatedDate = DateTime.Now,
                CreatedBy   = currentUser
            };

            db.Voucher.Add(voucher);


            //Credit Entry
            Voucher voucherCr1 = new Voucher
            {
                Id          = Guid.NewGuid().ToString(),
                Cr          = total,
                GLCode      = GLCode.Cash,
                Dr          = 0,
                EntryNo     = count++,
                InvoiceId   = invoiceId,
                CreatedDate = DateTime.Now,
                CreatedBy   = currentUser
            };

            db.Voucher.Add(voucherCr1);
        }
コード例 #7
0
        private void btnSave_Click(object sender, EventArgs e)
        {
            string expenseType = txtExpenseType.Text;

            if (expenseType == "")
            {
                MessageBox.Show("Expense can't be empty!", "Warning!", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            PharmacyDbContext db           = new PharmacyDbContext();
            ExpenseType       expenseTypes = new ExpenseType()
            {
                CreatedBy   = currentUser,
                CreatedDate = DateTime.Now,
                Id          = Guid.NewGuid().ToString(),
                Type        = expenseType
            };

            db.ExpenseType.Add(expenseTypes);
            db.SaveChanges();
            db.Dispose();
            MessageBox.Show("Save successful!", "Success!", MessageBoxButtons.OK, MessageBoxIcon.Information);

            txtExpenseType.Text = "";
        }
コード例 #8
0
        private void GetAutocompleteForMedicine(PharmacyDbContext db)
        {
            var source = new AutoCompleteStringCollection();

            source.AddRange(db.Medicine.ToList().Select(x => x.Name).ToArray());
            txtMedicine.AutoCompleteCustomSource = source;
        }
コード例 #9
0
        private void GetAutocompleteForCustomer(PharmacyDbContext db)
        {
            var source = new AutoCompleteStringCollection();

            source.AddRange(db.Customer.ToList().Select(x => x.Name + ". Mobile: " + x.Mobile).ToArray());
            txtCustomerName.AutoCompleteCustomSource = source;
        }
コード例 #10
0
        private void SaveVoucher(PharmacyDbContext db, string invoiceId, decimal amount)
        {
            int count = 1;
            //Debit entry
            Voucher voucher = new Voucher
            {
                Id          = Guid.NewGuid().ToString(),
                CustomerId  = _customerId,
                EntryNo     = count++,
                GLCode      = GLCode.Cash,
                Dr          = amount,
                Cr          = 0,
                InvoiceId   = invoiceId,
                CreatedDate = DateTime.Now,
                CreatedBy   = currentUser
            };

            db.Voucher.Add(voucher);
            //credit entry
            Voucher voucherCr2 = new Voucher
            {
                Id          = Guid.NewGuid().ToString(),
                CustomerId  = _customerId,
                Cr          = amount,
                GLCode      = GLCode.AccountReceivable,
                Dr          = 0,
                InvoiceId   = invoiceId,
                EntryNo     = count,
                CreatedDate = DateTime.Now,
                CreatedBy   = currentUser
            };

            db.Voucher.Add(voucherCr2);
        }
コード例 #11
0
        public string GetMedicinePriceByName(string name)
        {
            PharmacyDbContext db   = new PharmacyDbContext();
            string            rate = db.Medicine.Where(x => x.Name == name).Select(p => p.GroupId).FirstOrDefault();

            return(rate);
        }
コード例 #12
0
        private string GetGroup(string id)
        {
            PharmacyDbContext db   = new PharmacyDbContext();
            string            name = db.Groups.Where(g => g.Id == id).Select(s => s.Name).FirstOrDefault();

            db.Dispose();
            return(name);
        }
コード例 #13
0
        private string GetMedicineName(string id)
        {
            PharmacyDbContext db   = new PharmacyDbContext();
            string            name = db.Medicine.Where(s => s.Id == id).Select(a => a.Name).FirstOrDefault();

            db.Dispose();
            return(name);
        }
コード例 #14
0
        private void Autocomplete()
        {
            PharmacyDbContext db = new PharmacyDbContext();
            var source           = new AutoCompleteStringCollection();

            source.AddRange(db.ExpenseType.ToList().Select(x => x.Type).ToArray());
            txtExpenseType.AutoCompleteCustomSource = source;
        }
コード例 #15
0
        private void UpdateCustomerMain(PharmacyDbContext db)
        {
            SaleMain main =
                db.SaleMain.Where(a => a.CustomerId == _customerId).OrderByDescending(x => x.Id).FirstOrDefault();

            main.DuePaid        += Convert.ToDecimal(txtDuePay.Text);
            db.Entry(main).State = EntityState.Modified;
        }
コード例 #16
0
        private void txtMedicine_Leave(object sender, System.EventArgs e)
        {
            PharmacyDbContext db       = new PharmacyDbContext();
            string            medicine = txtMedicine.Text;
            decimal           rate     = db.Medicine.Where(x => x.Name == medicine).Select(o => o.UnitPrice).FirstOrDefault();

            txtUnitPrice.Text = rate.ToString();
        }
コード例 #17
0
        private void btnPay_Click(object sender, EventArgs e)
        {
            PharmacyDbContext db = new PharmacyDbContext();

            SaveInvoice(db);
            db.SaveChanges();
            db.Dispose();
            MessageBox.Show("Save successful", "Paid!", MessageBoxButtons.OK, MessageBoxIcon.Hand);
        }
コード例 #18
0
        private void SetLabelValue()
        {
            PharmacyDbContext db = new PharmacyDbContext();

            lblMedicine.Text = db.Medicine.Count().ToString();
            lblGroup.Text    = db.Groups.Count().ToString();
            lblcompany.Text  = db.Company.Count().ToString();
            db.Dispose();
        }
コード例 #19
0
        public SaveMedicine(string currentUser)
        {
            this.currentUser = currentUser;
            InitializeComponent();
            PharmacyDbContext db = new PharmacyDbContext();

            GetAutocompleteForCompany(db);
            GetAutocompleteForGroup(db);
            db.Dispose();
        }
コード例 #20
0
        private decimal GetPurchaseMedicine(string medicineId)
        {
            PharmacyDbContext db = new PharmacyDbContext();
            var count            = db.PurchaseSub.Where(m => m.MedicinId == medicineId)
                                   .ToList()
                                   .Sum(x => x.Quantity);

            db.Dispose();
            return(count);
        }
コード例 #21
0
        private bool hasMadicineInStore(string medicine, string qty)
        {
            PharmacyDbContext db         = new PharmacyDbContext();
            string            medicineId = MedicineFactory.GetMedicineIdByName(medicine, db);
            int  totalPurchased          = db.PurchaseSub.Where(i => i.MedicinId == medicineId).ToList().Sum(o => o.Quantity);
            int  totalSale = db.SaleSub.Where(i => i.MedicinId == medicineId).ToList().Sum(o => o.Quantity);
            bool result    = totalPurchased > (totalSale + Convert.ToInt32(qty));

            return(result);
        }
コード例 #22
0
        private void GetDueDetails(string mainId)
        {
            PharmacyDbContext db = new PharmacyDbContext();
            int count            = 1;

            ShowExpenseDetails expenseDetails = new ShowExpenseDetails(mainId);

            expenseDetails.ShowDialog();
            expenseDetails.FormClosed += DueDetails_FormClosed;
        }
コード例 #23
0
        public Salemedicine(string user)
        {
            currentUser = user;
            InitializeComponent();
            PharmacyDbContext db = new PharmacyDbContext();

            GetAutocompleteForMedicine(db);
            GetAutocompleteForCustomer(db);
            db.Dispose();
        }
コード例 #24
0
        private void dgvExpense_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.ColumnIndex == 7)
            {
                PharmacyDbContext db         = new PharmacyDbContext();
                DataGridView      va         = sender as DataGridView;
                string            purchaseId = va.Rows[e.RowIndex].Cells[1].Value.ToString();

                GetDueDetails(purchaseId);
            }
        }
コード例 #25
0
        private void SaveInvoice(PharmacyDbContext db)
        {
            Invoice invoice = new Invoice();

            invoice.Id          = Guid.NewGuid().ToString();
            invoice.CreatedDate = DateTime.Now;
            invoice.CreatedBy   = currentUser;
            invoice.IsActive    = true;
            db.Invoice.Add(invoice);
            SaveSaleMain(db, invoice.Id);
        }
コード例 #26
0
        private void btnSubmit_click(object sender, EventArgs e)
        {
            PharmacyDbContext db = new PharmacyDbContext();

            SaveInvoice(db);
            db.SaveChanges();
            db.Dispose();
            MessageBox.Show("Save successful!", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information);

            ClearFields();
        }
コード例 #27
0
        private void UpdateUnitPrice(string medicineName, string rate, DateTime exDate)
        {
            PharmacyDbContext db       = new PharmacyDbContext();
            decimal           price    = Convert.ToDecimal(rate);
            Medicine          medicine = db.Medicine.FirstOrDefault(x => x.Name == medicineName);

            medicine.UnitPrice   = price;
            medicine.ExpiredDate = exDate;
            db.SaveChanges();
            db.Dispose();
        }
コード例 #28
0
        public ShowDueDetails(List <SaleDetail> saleDetail, string customerId, string user)
        {
            currentUser = user;
            _customerId = customerId;
            InitializeComponent();
            dgvSaleDetails.DataSource = saleDetail;
            PharmacyDbContext db = new PharmacyDbContext();

            lblDue.Text = Convert.ToString(db.Voucher
                                           .Where(x => x.GLCode == GLCode.AccountReceivable && x.CustomerId == _customerId)
                                           .Sum(a => a.Dr - a.Cr));
        }
コード例 #29
0
        public PurchaseMedicine(string user)
        {
            currentUser = user;
            InitializeComponent();
            PharmacyDbContext db = new PharmacyDbContext();

            GetAutocompleteForMedicine(db);
            GetAutocompleteForSupplier(db);
            GetAutocompleteForCompany(db);
            GetAutocompleteForGroup(db);
            db.Dispose();
        }
コード例 #30
0
        private void btnSubmit_click(object sender, EventArgs e)
        {
            PharmacyDbContext db = new PharmacyDbContext();

            SaveInvoice(db);
            db.SaveChanges();
            db.Dispose();
            MessageBox.Show("Save successful!", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information);
            btnPrint.Enabled = true;
            txtNote.Text     = "";
            lvExpense.Items.Clear();
        }