public async Task <ActionResult> Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            var         maNhaThuoc  = this.GetNhaThuoc().MaNhaThuoc;
            PhieuThuChi phieuThuChi =
                await
                unitOfWork.PhieuThuChiRepository.GetMany(e => e.NhaThuoc.MaNhaThuoc == maNhaThuoc && e.MaPhieu == id)
                .FirstAsync();

            if (phieuThuChi == null)
            {
                return(HttpNotFound());
            }
            var model = new PhieuThuChiEditModel()
            {
                Amount        = phieuThuChi.Amount,
                DienGiai      = phieuThuChi.DienGiai,
                LoaiPhieu     = phieuThuChi.LoaiPhieu,
                MaKhachHang   = phieuThuChi.KhachHang != null ? phieuThuChi.KhachHang.MaKhachHang : 0,
                MaNhaCungCap  = phieuThuChi.NhaCungCap != null ? phieuThuChi.NhaCungCap.MaNhaCungCap : 0,
                MaNhaThuoc    = phieuThuChi.NhaThuoc.MaNhaThuoc,
                MaPhieu       = phieuThuChi.MaPhieu,
                NgayTao       = phieuThuChi.NgayTao,
                SoPhieu       = phieuThuChi.SoPhieu,
                NguoiNhan     = phieuThuChi.NguoiNhan,
                DiaChi        = phieuThuChi.DiaChi,
                NguoiLapPhieu = phieuThuChi.CreatedBy.TenDayDu
            };

            ViewBag.KhachHangs    = new SelectList(_getListKhachHang(), "MaKhachHang", "TenKhachHang", model.MaKhachHang);
            ViewBag.NhaCungCaps   = new SelectList(_getListNhaCungCap(), "MaNhaCungCap", "TenNhaCungCap", model.MaNhaCungCap);
            ViewBag.MaNhaThuoc    = this.GetNhaThuoc().MaNhaThuoc;
            ViewBag.CurrentUserId = WebSecurity.GetCurrentUserId;
            ViewBag.LoaiPhieu     = phieuThuChi.LoaiPhieu;
            ViewBag.LoaiPhieus    = new SelectList(GetThuChiKhac(), "Value", "Text", model.LoaiPhieu);
            ViewBag.SoPhieu       = phieuThuChi.SoPhieu;
            ViewBag.NguoiLapPhieu = phieuThuChi.CreatedBy.TenDayDu;
            if (phieuThuChi.KhachHang != null)
            {
                ViewBag.CongNo = GetNoKhachHang(phieuThuChi.KhachHang.MaKhachHang, phieuThuChi.NgayTao);
            }
            if (phieuThuChi.NhaCungCap != null)
            {
                ViewBag.CongNo = GetNoNhaCungCap(phieuThuChi.NhaCungCap.MaNhaCungCap, phieuThuChi.NgayTao);
            }
            return(View(model));
        }
        public async Task <ActionResult> Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            PhieuThuChi phieuThuChi = await db.PhieuThuChis.FindAsync(id);

            if (phieuThuChi == null)
            {
                return(HttpNotFound());
            }
            return(View(phieuThuChi));
        }
        // [Audit]
        public async Task <ActionResult> Create(PhieuThuChiEditModel phieuThuChi, string MaLoaiPhieu, int loaiPhieu)
        {
            ModelState.Remove("NgayTao");
            if (ModelState.IsValid)
            {
                var phieuThuChiMoi = new PhieuThuChi()
                {
                    LoaiPhieu = loaiPhieu,
                    Created   = DateTime.Now,
                    CreatedBy = unitOfWork.UserProfileRepository.GetById(WebSecurity.GetCurrentUserId),
                    Amount    = phieuThuChi.Amount,
                    DienGiai  = phieuThuChi.DienGiai,
                    NgayTao   = phieuThuChi.NgayTao,
                    NguoiNhan = phieuThuChi.NguoiNhan,
                    DiaChi    = phieuThuChi.DiaChi,
                    NhaThuoc  = unitOfWork.NhaThuocRepository.GetById(this.GetNhaThuoc().MaNhaThuoc),
                    SoPhieu   = _generateAvailableSoPhieu()
                };
                if (!String.IsNullOrEmpty(MaLoaiPhieu))
                {
                    phieuThuChiMoi.LoaiPhieu = Convert.ToInt32(MaLoaiPhieu);
                }

                if (phieuThuChi.MaKhachHang > 0)
                {
                    phieuThuChiMoi.KhachHang = unitOfWork.KhachHangRepository.GetById(phieuThuChi.MaKhachHang);
                }
                if (phieuThuChi.MaNhaCungCap > 0)
                {
                    phieuThuChiMoi.NhaCungCap = unitOfWork.NhaCungCapRespository.GetById(phieuThuChi.MaNhaCungCap);
                }

                unitOfWork.PhieuThuChiRepository.Insert(phieuThuChiMoi);
                unitOfWork.Save();
                //return RedirectToAction("In", new { id = phieuThuChiMoi.MaPhieu, loaiPhieu = phieuThuChiMoi.LoaiPhieu });
                return(RedirectToAction("InDetail", new { id = phieuThuChiMoi.MaPhieu }));
            }

            ViewBag.MaKhachHang   = new SelectList(_getListKhachHang(), "MaKhachHang", "TenKhachHang");
            ViewBag.MaNhaCungCap  = new SelectList(_getListNhaCungCap(), "MaNhaCungCap", "TenNhaCungCap");
            ViewBag.MaNhaThuoc    = this.GetNhaThuoc().MaNhaThuoc;
            ViewBag.CurrentUserId = WebSecurity.GetCurrentUserId;
            ViewBag.LoaiPhieu     = loaiPhieu;
            ViewBag.MaLoaiPhieu   = new SelectList(GetThuChiKhac(), "Value", "Text");
            ViewBag.SoPhieu       = _generateAvailableSoPhieu();
            return(View(phieuThuChi));
        }
        public async Task <ActionResult> Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            var         maNhaThuoc  = this.GetNhaThuoc().MaNhaThuoc;
            PhieuThuChi phieuThuChi =
                await
                unitOfWork.PhieuThuChiRepository.GetMany(e => e.NhaThuoc.MaNhaThuoc == maNhaThuoc && e.MaPhieu == id)
                .FirstAsync();

            if (phieuThuChi == null)
            {
                return(HttpNotFound());
            }
            ViewBag.LoaiPhieu = phieuThuChi.LoaiPhieu;
            ViewBag.SoPhieu   = phieuThuChi.SoPhieu;
            return(View(phieuThuChi));
        }
예제 #5
0
        public int SaveInOutCommingNote(string drugStoreCode, int currentUserId, InOutcommingNoteModel model)
        {
            var retVal   = 0;
            var noteDate = model.NoteDate.WithCurrentTime();

            var inOutCommingRepo = IoC.Container.Resolve <BaseRepositoryV2 <MedDbContext, PhieuThuChi> >();
            var receiverRepo     = IoC.Container.Resolve <BaseRepositoryV2 <MedDbContext, InOutPaymentReceiverNote> >();
            var deliveryRepo     = IoC.Container.Resolve <BaseRepositoryV2 <MedDbContext, PhieuXuat> >();
            var receiptRepo      = IoC.Container.Resolve <BaseRepositoryV2 <MedDbContext, PhieuNhap> >();

            if (model.NoteId > 0) // Edit mode
            {
                inOutCommingRepo.UpdateMany(i => i.MaPhieu == model.NoteId, i => new PhieuThuChi()
                {
                    ModifiedBy_UserId  = currentUserId,
                    Modified           = DateTime.Now,
                    UserProfile_UserId = currentUserId,
                    DienGiai           = model.Description,
                    Amount             = (decimal)model.PaymentAmount,
                    NgayTao            = noteDate
                });
                retVal = model.NoteId;
            }
            else // New mode
            {
                var newNote = new PhieuThuChi()
                {
                    Active              = true,
                    Created             = DateTime.Now,
                    DienGiai            = model.Description,
                    Amount              = (decimal)model.PaymentAmount,
                    LoaiPhieu           = model.NoteTypeId,
                    NhaThuoc_MaNhaThuoc = drugStoreCode,
                    CreatedBy_UserId    = currentUserId,
                    SoPhieu             = (int)model.NoteNumber,
                    NgayTao             = noteDate,
                    UserProfile_UserId  = currentUserId
                };
                if (model.NoteTypeId == (int)InOutCommingType.Incomming)
                {
                    newNote.KhachHang_MaKhachHang = model.ReceiverId;
                }
                else
                {
                    newNote.NhaCungCap_MaNhaCungCap = model.ReceiverId;
                }
                inOutCommingRepo.Add(newNote);
                inOutCommingRepo.Commit();
                retVal = newNote.MaPhieu;

                if (model.ReceiverNoteId == AllNoteIds && model.ReceiverNoteIds != null && model.ReceiverNoteIds.Length > 0) // All notes
                {
                    var paymentNotes = model.ReceiverNoteIds.Select(i => new InOutPaymentReceiverNote()
                    {
                        DrugStoreCode      = drugStoreCode,
                        InOutCommingNoteId = newNote.MaPhieu,
                        IsDeleted          = false,
                        ReceiverNoteId     = i,
                        ReceiverNoteTypeId = model.NoteTypeId == (int)InOutCommingType.Incomming ?
                                             (int)NoteInOutType.Delivery : (int)NoteInOutType.Receipt,
                        CreatedDateTime = DateTime.Now
                    }).ToList();
                    receiverRepo.InsertMany(paymentNotes);
                    if (model.NoteTypeId == (int)InOutCommingType.Incomming && model.ReceiverNoteIds.Any())
                    {
                        deliveryRepo.UpdateMany(i => model.ReceiverNoteIds.Contains(i.MaPhieuXuat), i => new PhieuXuat()
                        {
                            IsDebt = false
                        });
                    }
                    else if (model.ReceiverNoteIds.Any())
                    {
                        receiptRepo.UpdateMany(i => model.ReceiverNoteIds.Contains(i.MaPhieuNhap), i => new PhieuNhap()
                        {
                            IsDebt = false
                        });
                    }
                }
                else if (model.ReceiverNoteId > 0) // Specific note
                {
                    receiverRepo.Add(new InOutPaymentReceiverNote()
                    {
                        DrugStoreCode      = drugStoreCode,
                        InOutCommingNoteId = newNote.MaPhieu,
                        IsDeleted          = false,
                        ReceiverNoteId     = model.ReceiverNoteId,
                        ReceiverNoteTypeId = model.NoteTypeId == (int)InOutCommingType.Incomming ?
                                             (int)NoteInOutType.Delivery : (int)NoteInOutType.Receipt,
                        CreatedDateTime = DateTime.Now
                    });
                    receiptRepo.Commit();
                    if (model.NoteTypeId == (int)InOutCommingType.Incomming)
                    {
                        deliveryRepo.UpdateMany(i => model.ReceiverNoteId == i.MaPhieuXuat && model.PaymentAmountWithEsp >= (double)(i.TongTien - i.DaTra),
                                                i => new PhieuXuat()
                        {
                            IsDebt = false
                        });
                    }
                    else
                    {
                        receiptRepo.UpdateMany(i => model.ReceiverNoteId == i.MaPhieuNhap && model.PaymentAmountWithEsp >= (double)(i.TongTien - i.DaTra),
                                               i => new PhieuNhap()
                        {
                            IsDebt = false
                        });
                    }
                }
            }

            return(retVal);
        }
        // mọi thứ xử lý sẽ nằm trong này
        public MainViewModel()
        {
            LoadedWindowCommand = new RelayCommand <Window>((p) => { return(true); }, (p) => {
                //Isloaded = true;
                if (p == null)
                {
                    return;
                }
                //p.Hide();
                LoginWindow loginWindow = new LoginWindow();
                loginWindow.ShowDialog();

                //if (loginWindow.DataContext == null)
                //    return;

                var loginVM = loginWindow.DataContext as LoginViewModel;

                if (loginVM.IsLogin)
                {
                    p.Show();
                }
            });

            NhanVienWindowCommand = new RelayCommand <object>((p) => { return(true); }, (p) => {
                NhanVien nhanvienWindow = new NhanVien();
                nhanvienWindow.ShowDialog();
            });

            VatTuWindowCommand = new RelayCommand <object>((p) => { return(true); }, (p) => {
                VatTu vattuWindow = new VatTu();
                vattuWindow.ShowDialog();
            });

            KhoWindowCommand = new RelayCommand <object>((p) => { return(true); }, (p) => {
                Kho khoWindow = new Kho();
                khoWindow.ShowDialog();
            });

            NhapXuatVatTuWindowCommand = new RelayCommand <object>((p) => { return(true); }, (p) => {
                NhapXuatKho nhapxuatvattuWindow = new NhapXuatKho();
                nhapxuatvattuWindow.ShowDialog();
            });

            PhieuThuChiWindowCommand = new RelayCommand <object>((p) => { return(true); }, (p) => {
                PhieuThuChi phieuthuchiWindow = new PhieuThuChi();
                phieuthuchiWindow.ShowDialog();
            });

            LichSuNXVTWindowCommand = new RelayCommand <object>((p) => { return(true); }, (p) => {
                LichSuNXVT lichsunxvtWindow = new LichSuNXVT();
                lichsunxvtWindow.ShowDialog();
            });

            LoadedReportNhanVienCommand = new RelayCommand <object>((p) => { return(true); }, (p) => {
                ReportNhanVien reportnhanvienwindow = new ReportNhanVien();
                reportnhanvienwindow.ShowDialog();
            });

            LoadedReportVatTuCommand = new RelayCommand <object>((p) => { return(true); }, (p) => {
                ReportVatTu reportvattuwindow = new ReportVatTu();
                reportvattuwindow.ShowDialog();
            });

            LoadedReportChiTietNXCommand = new RelayCommand <object>((p) => { return(true); }, (p) => {
                ReportChiTietNX reportchitietnxwindow = new ReportChiTietNX();
                reportchitietnxwindow.ShowDialog();
            });

            LoadedReportTHNXCommand = new RelayCommand <object>((p) => { return(true); }, (p) => {
                ReportTHNX reportthnxwindow = new ReportTHNX();
                reportthnxwindow.ShowDialog();
            });
        }