示例#1
0
 private void drugOrder_dtGridView_CellClick(object sender, DataGridViewCellEventArgs e)
 {
     try
     {
         n = drugOrder_dtGridView.CurrentCell.RowIndex;
         DrugOrder drugorder = orders[n];
         productName_txtBox.Text = drugorder.drug.MedName;
         ProductCnt_txtBox.Text  = drugorder.count.ToString();
     }
     catch (Exception ex)
     {
         MessageBox.Show("해당 인덱스에 값이 없습니다.");
         Console.WriteLine(ex.Message + "\n" + ex.StackTrace);
     }
 }
        public ActionResult UpdateStatus(int deliveryScheduleID)
        {
            var deliverySchedule            = unitOfWork.DeliveryScheduleRepository.GetByID(deliveryScheduleID);
            var listDeliveryScheduleDetails = deliverySchedule.DeliveryScheduleDetails;

            deliverySchedule.Status = (int)Status.StatusEnum.Complete;
            var drugOrder = new DrugOrder();

            for (int i = 0; i < listDeliveryScheduleDetails.Count; i++)
            {
                var item = listDeliveryScheduleDetails.ElementAt(i);
                drugOrder = new DrugOrder();
                drugOrder = unitOfWork.DrugOrderRepository.GetByID(item.DrugOrderID);
                var drugstore = drugOrder.Drugstore;
                drugOrder.Status = (int)Status.StatusEnum.Complete;
                unitOfWork.DrugOrderRepository.Update(drugOrder);
                unitOfWork.DrugOrderRepository.SaveChanges();
                var payment        = new Payment();
                var paymentHistory = unitOfWork.PaymentRepository.Get(b => b.DrugstoreID == drugOrder.DrugstoreID);
                if (paymentHistory.Count() == 0)
                {
                    payment.DrugstoreID = drugOrder.DrugstoreID;
                    payment.Amount      = drugOrder.TotalPrice;
                    payment.Balance     = 0 - drugOrder.TotalPrice;
                    drugstore.Debt      = 0 - drugOrder.TotalPrice;
                }
                else
                {
                    payment.DrugstoreID = drugOrder.DrugstoreID;
                    payment.Amount      = drugOrder.TotalPrice;
                    payment.Balance     = paymentHistory.Last().Balance - drugOrder.TotalPrice;
                    drugstore.Debt      = drugstore.Debt - drugOrder.TotalPrice;
                }
                payment.FullName    = drugstore.Account.AccountProfile.FullName;
                payment.PhoneNumber = drugstore.Account.AccountProfile.Phone;
                payment.Date        = DateTime.Now;
                payment.PaymentType = true;
                payment.IsActive    = true;
                unitOfWork.DrugStoreRepository.Update(drugstore);
                unitOfWork.DrugStoreRepository.SaveChanges();
                unitOfWork.PaymentRepository.Insert(payment);
                unitOfWork.PaymentRepository.SaveChanges();
            }

            unitOfWork.DeliveryScheduleRepository.Update(deliverySchedule);
            unitOfWork.DeliveryScheduleRepository.SaveChanges();
            return(null);
        }
示例#3
0
 private void drugOrder_dtGridView_CellClick(object sender, DataGridViewCellEventArgs e)
 {
     try
     {
         n = drugOrder_dtGridView.CurrentCell.RowIndex;
         DrugOrder drugorder = orders[n];
         productName_txtBox.Text = drugorder.drug.MedName;
         ProductCnt_txtBox.Text  = drugorder.count.ToString();
     }
     catch (Exception ex)
     {
         MessageBox.Show("해당 인덱스에 값이 없습니다.");
         errMsg = $"[폼 위치 : {FORM_NAME}] [ex.Message] : {ex.Message}, \n[ex.StackTrace] : {ex.StackTrace}\n";
         Printlog.printLog(errMsg, DateTime.Now.ToString("yyyy_MM_dd"));
     }
 }
示例#4
0
        public ActionResult CreateOrder(string note)
        {
            if (Session["Cart"] != null)
            {
                var cartList     = (List <Cart>)Session["Cart"];
                var user         = (Account)Session["User"];
                var order        = new DrugOrder();
                var orderDetails = new DrugOrderDetail();
                var drugstore    =
                    unitOfWork.DrugStoreRepository.Get(b => b.OwnerID == user.AccountID).SingleOrDefault();
                order.DrugstoreID = drugstore.DrugstoreID;
                double totalprice = 0;
                double actualvalue;
                for (int i = 0; i < cartList.Count; i++)
                {
                    orderDetails                  = new DrugOrderDetail();
                    orderDetails.DrugId           = cartList[i].Drug.DrugID;
                    orderDetails.Quantity         = cartList[i].Quantity;
                    orderDetails.DeliveryQuantity = cartList[i].Quantity;
                    orderDetails.UnitID           = cartList[i].Unit.UnitId;
                    orderDetails.UnitPrice        = cartList[i].Drug.Prices.Where(b => b.UnitID == orderDetails.UnitID).Select(b => b.UnitPrice).SingleOrDefault() * orderDetails.Quantity *
                                                    (100 - cartList[i].Drug.DiscountRates.Where(b => b.DrugstoreTypeID == drugstore.DrugstoreTypeID).Select(b => b.Discount).SingleOrDefault()) / 100;
                    totalprice = totalprice +
                                 cartList[i].Drug.Prices.Where(b => b.UnitID == orderDetails.UnitID).Select(b => b.UnitPrice).SingleOrDefault() * orderDetails.Quantity *
                                 (100 - cartList[i].Drug.DiscountRates.Where(b => b.DrugstoreTypeID == drugstore.DrugstoreTypeID).Select(b => b.Discount).SingleOrDefault()) / 100;
                    order.DrugOrderDetails.Add(orderDetails);
                }
                order.DateOrder  = DateTime.Now;
                order.TotalPrice = totalprice;

                order.IsActive   = true;
                order.Note       = note;
                order.Status     = (int)Status.StatusEnum.NotApprove;
                order.SalesmanID = drugstore.District.SalesmanID;
                bool check = unitOfWork.DrugOrderRepository.Insert(order);
                unitOfWork.DrugOrderRepository.SaveChanges();
                unitOfWork.DrugOrderDetailRepository.SaveChanges();
                //drugstore.Debt = drugstore.Debt + totalprice;
                unitOfWork.DrugStoreRepository.Update(drugstore);
                unitOfWork.DrugStoreRepository.SaveChanges();
                if (check)
                {
                    Session["Cart"] = null;
                }
            }
            return(View());
        }
        private List <DrugOrder> ParseDrugOrderResultsData(JObject input, string patientUuid)
        {
            List <DrugOrder> drugOrders = new List <DrugOrder>();

            foreach (var drugOrderInput in input.GetValue("visitDrugOrders"))
            {
                DrugOrder drugOrder = new DrugOrder(
                    patientUuid,
                    drugOrderInput["concept"]["name"].ToString(),
                    drugOrderInput["dosingInstructions"]["dose"].ToString(),
                    drugOrderInput["dosingInstructions"]["doseUnits"].ToString(),
                    convertTime(Convert.ToInt64(drugOrderInput["effectiveStartDate"].ToString())),
                    convertTime(Convert.ToInt64(drugOrderInput["effectiveStopDate"].ToString())),
                    "3");
                drugOrders.Add(drugOrder);
            }
            return(drugOrders);
        }
示例#6
0
        private void btn_DrugCntEdit_Click(object sender, EventArgs e)
        {
            drugOrder_dtGridView.Rows.Clear();
            DrugOrder temp = orders[n];

            temp.drug.MedName = productName_txtBox.Text;
            temp.count        = int.Parse(ProductCnt_txtBox.Text); // int로 변환하는 이유는 재고에 더해주기 위해

            try
            {
                foreach (var item in orders)
                {
                    drugOrder_dtGridView.Rows.Add(item.drug.MedName, item.entp.entpName, item.count);
                }
            }
            catch (Exception)
            {
                MessageBox.Show("추가 불가");
            }
        }
        public ActionResult DeleteSchedule(int deliveryScheduleID)
        {
            var deliverySchedule            = unitOfWork.DeliveryScheduleRepository.GetByID(deliveryScheduleID);
            var listDeliveryScheduleDetails = deliverySchedule.DeliveryScheduleDetails;
            var drugOrder = new DrugOrder();

            for (int i = listDeliveryScheduleDetails.Count - 1; i >= 0; i--)
            {
                var item = listDeliveryScheduleDetails.ElementAt(i);
                drugOrder        = new DrugOrder();
                drugOrder        = unitOfWork.DrugOrderRepository.GetByID(item.DrugOrderID);
                drugOrder.Status = (int)Status.StatusEnum.Approved;
                unitOfWork.DrugOrderRepository.Update(drugOrder);
                unitOfWork.DrugOrderRepository.SaveChanges();
            }
            deliverySchedule.Status = (int)Status.StatusEnum.Deleted;
            unitOfWork.DeliveryScheduleRepository.Update(deliverySchedule);
            unitOfWork.DeliveryScheduleRepository.SaveChanges();
            unitOfWork.DeliveryScheduleDetailsRepository.SaveChanges();
            return(null);
        }
示例#8
0
        private void btn_DrugCntEdit_Click(object sender, EventArgs e)
        {
            drugOrder_dtGridView.Rows.Clear();
            DrugOrder temp = orders[n];

            temp.drug.MedName = productName_txtBox.Text;
            temp.count        = int.Parse(ProductCnt_txtBox.Text);

            try
            {
                foreach (var item in orders)
                {
                    drugOrder_dtGridView.Rows.Add(item.drug.MedName, item.entp.entpName, item.count);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("추가 불가");
                errMsg = $"[폼 위치 : {FORM_NAME}] [ex.Message] : {ex.Message}, \n[ex.StackTrace] : {ex.StackTrace}\n";
                Printlog.printLog(errMsg, DateTime.Now.ToString("yyyy_MM_dd"));
            }
        }
示例#9
0
 public EmailForm(DrugOrder order)
 {
     InitializeComponent();
     this.order = order;
 }
        public ActionResult CreateSchedule(string deliveryManID)
        {
            List <int> listOrderID = new List <int>();

            if (Session["ListOrderID"] != null)
            {
                var schedule = new DeliverySchedule();
                listOrderID          = (List <int>)Session["ListOrderID"];
                schedule.DeliveryMan = unitOfWork.DeliverymanRepository.GetByID(int.Parse(deliveryManID));
                //schedule.DueDate = DateTime.Parse(dueDate);
                schedule.CreateDate = DateTime.Now;
                var   scheduleDetail = new DeliveryScheduleDetail();
                var   order          = new DrugOrder();
                Point startPoint     = new Point();
                startPoint.x = 10.7972388;
                startPoint.y = 106.6803467;
                List <Point> listOrder = new List <Point>();
                for (int i = 0; i < listOrderID.Count; i++)
                {
                    Point drugOrderPoint = new Point();
                    drugOrderPoint.DrugOrder = unitOfWork.DrugOrderRepository.GetByID(listOrderID[i]);
                    var      drugstoreCoordinate  = drugOrderPoint.DrugOrder.Drugstore.Coordinate;
                    string[] drugstoreCoordinates = drugstoreCoordinate.Split(',');
                    drugOrderPoint.x = double.Parse(drugstoreCoordinates[0]);
                    drugOrderPoint.y = double.Parse(drugstoreCoordinates[1]);
                    listOrder.Add(drugOrderPoint);
                }
                var          tempPoint   = new Point();
                List <Point> resuledList = new List <Point>();
                bool         flag        = true;
                tempPoint = startPoint;
                for (int i = listOrder.Count - 1; i >= 0; i--)
                {
                    if (listOrder.Count > 0)
                    {
                        tempPoint = NearestPoint(tempPoint, listOrder);
                        resuledList.Add(tempPoint);
                        listOrder.Remove(tempPoint);
                    }
                }
                for (int i = 0; i < resuledList.Count; i++)
                {
                    scheduleDetail             = new DeliveryScheduleDetail();
                    order                      = new DrugOrder();
                    scheduleDetail.DrugOrderID = resuledList[i].DrugOrder.DrugOrderID;
                    scheduleDetail.Status      = (int)Status.StatusEnum.Inprogress;
                    order                      = resuledList[i].DrugOrder;
                    order.Status               = (int)Status.StatusEnum.Inprogress;
                    unitOfWork.DrugOrderRepository.Update(order);
                    schedule.DeliveryScheduleDetails.Add(scheduleDetail);
                }
                schedule.Status = (int)Status.StatusEnum.Inprogress;
                bool check = unitOfWork.DeliveryScheduleRepository.Insert(schedule);
                if (check)
                {
                    Session["ListOrderID"] = null;
                }
                unitOfWork.DeliveryScheduleRepository.SaveChanges();
                unitOfWork.DeliveryScheduleDetailsRepository.SaveChanges();
                unitOfWork.DrugOrderRepository.SaveChanges();
            }

            return(Json(listOrderID));
        }
示例#11
0
        private void btnFinishDoc_Click(object sender, EventArgs e)
        {
            try
            {
                //cap nhat lai thong tin ho so kham
                if (cbbDoctor.SelectedIndex == -1)
                {
                    Common.WarningMessageBox("Vui lòng chọn bác sỹ khám");
                    xtcExam.SelectedTabPageIndex = 0;
                    cbbDoctor.Focus();
                    return;
                }
                string doctor = cbbDoctor.SelectedValue.ToString();

                try
                {
                    var date = DateTime.ParseExact(mtbExamDate.Text, "dd/MM/yyyy HH:mm", System.Globalization.CultureInfo.InvariantCulture);
                }
                catch
                {
                    Common.ErrorMessageBox("Vui lòng nhập định dạng ngày khám dd/mm/yyyy HH:mm");
                    xtcExam.SelectedTabPageIndex = 0;
                    mtbExamDate.Focus();
                    return;
                }
                string examdate = mtbExamDate.Text;

                string diagnostic = actDiagnostic.Text;
                if (string.IsNullOrEmpty(diagnostic))
                {
                    Common.ErrorMessageBox("Vui lòng nhập chẩn đoán");
                    xtcExam.SelectedTabPageIndex = 0;
                    actDiagnostic.Focus();
                    return;
                }
                string patientno = txtPatientno.Text;

                try
                {
                    docno = long.Parse(txtDocno.Text);
                }
                catch
                {
                    Common.ErrorMessageBox("Số hồ sơ không hợp lệ");
                }
                string symptom = actSymptom.Text;
                string advice  = actAdvice.Text;
                if (new Docs().Confirm(docno, patientno, symptom, diagnostic, advice, examdate, doctor) != 1)
                {
                    Common.ErrorMessageBox("Lỗi tạo hồ sơ khám");
                    return;
                }
                //----> ket thuc phan cap nhat ho so kham

                //xu ly don thuoc

                if ((lstFee == null || lstFee.Where(x => x.type == "D").ToList().Count == 0) && DialogResult.No == Common.ConfirmMessage("Chưa kê thuốc", "Bạn vẫn muốn tiếp tục?"))
                {
                    xtcExam.SelectedTabPageIndex = 2;
                    return;
                }

                if (lstFee != null && lstFee.Where(x => x.type == "D").ToList().Count > 0)
                {
                    long id = new DrugOrder().Insert(docno, doctor, examdate, examdate);
                    if (id > 0)
                    {
                        var chk = true;
                        foreach (var t in lstFee.Where(x => x.type == "D").ToList())
                        {
                            var rs = new DrugOrderLine().Insert(id, t.id, t.price, t.quantity, t.usage);
                            if (rs == 0)
                            {
                                chk = false;
                                Common.ErrorMessageBox("Số lượng thuốc không đủ");
                                break;
                            }
                            if (rs == -1)
                            {
                                chk = false;
                                break;
                            }
                        }
                        if (!chk)
                        {
                            return;
                        }
                    }
                    else
                    {
                        Common.WarningMessageBox("Thêm đơn thuốc thất bại");
                        return;
                    }
                }
                // ket thuc xu ly don thuoc

                //xu ly cls
                if (lstFee != null && lstFee.Where(x => x.type == "S").ToList().Count > 0)
                {
                    long orderid = new FeeOrder().Insert(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), docno, "admin");
                    if (orderid > 0)
                    {
                        var chk = true;
                        foreach (var item in lstFee.Where(x => x.type == "S").ToList())
                        {
                            if (new FeeOrderLine().Insert(orderid, item.id, item.quantity, item.price) <= 0)
                            {
                                chk = false;
                                break;
                            }
                        }
                        if (!chk)
                        {
                            Common.ErrorMessageBox("Thêm phí dịch vụ thất bại");
                            return;
                        }
                    }
                    else
                    {
                        return;
                    }
                }
                //---> ket thuc xu ly cls

                //in đơn thuốc
                if (ckbDrugPrint.Checked)
                {
                    frmDrugReport f = new frmDrugReport();
                    f.PrintOrder(s.SelectValue("clinic_name"), s.SelectValue("clinic_phone"), s.SelectValue("clinic_address"), txtPatientno.Text, txtDocno.Text, DateTime.Now.ToString("dd/MM/yyyy HH:mm"), txtFullname.Text, mtbBirthdate.Text, cbbGender.Text, actAddress.Text, txtPhone.Text, actSymptom.Text, actDiagnostic.Text, actAdvice.Text, cbbDoctor.Text, lstFee.Where(x => x.type == "D").ToList());
                    f.ShowInTaskbar = false;
                    f.ShowDialog();
                }

                //--->kết thúc in đơn thuốc


                //  in hóa đơn
                if (ckbPrint.Checked)
                {
                    frmInvoiceReport frm = new frmInvoiceReport();
                    frm.Invoice(s.SelectValue("clinic_name"), s.SelectValue("clinic_phone"), s.SelectValue("clinic_address"), txtPatientno.Text, txtDocno.Text, DateTime.Now.ToString("dd/MM/yyyy HH:mm"), txtFullname.Text, mtbBirthdate.Text, cbbGender.Text, actAddress.Text, txtPhone.Text, actSymptom.Text, actDiagnostic.Text, actAdvice.Text, cbbDoctor.Text, lstFee);
                    frm.ShowInTaskbar = false;
                    frm.ShowDialog();
                }
                //----->kết thúc in hóa đơn
                lstFee = null;
                dgvFeeList.DataSource  = null;
                dgvFees.DataSource     = null;
                dgvPharmacy.DataSource = null;
                btnSearch.PerformClick();
                SetEnableComponents(false);
                ResetComponents();
            }
            catch (Exception ex)
            {
                Common.ErrorMessageBox("Lỗi kết thúc hồ sơ: " + ex.Message);
            }
        }