Ejemplo n.º 1
0
        public JsonResult InsertHolding(HOLDING holding, int numberOfCN, string recommendID)
        {
            string composite = "";
            string message   = shelfBusiness.InsertHolding(holding, numberOfCN, recommendID, ref composite);

            return(Json(new { Message = message, Composite = composite }, JsonRequestBehavior.AllowGet));
        }
        public PartialViewResult CheckOut(
            string strPatronCode,
            string strDueDate,
            int intLoanMode,
            int intHoldIgnore,
            string strCopyNumbers,
            string strCheckOutDate,
            bool boolAllowDuplacate
            )
        {
            string      PatronCode = strPatronCode.Trim();
            bool        duplicate  = false;
            int         PatronID   = db.CIR_PATRON.Where(a => a.Code == PatronCode).First().ID;
            var         cIR_LOANs  = db.CIR_LOAN.Where(a => a.PatronID == PatronID).ToList();
            string      CopyNumber = strCopyNumbers.Trim();
            List <int?> ItemIds    = new List <int?>();

            Getpatrondetail(PatronCode);
            int     onloan   = db.SP_GET_PATRON_ONLOAN_COPIES(PatronID).ToList <SP_GET_PATRON_ONLOAN_COPIES_Result>().Count();
            HOLDING itemHold = new HOLDING();

            if (db.HOLDINGs.Where(a => a.CopyNumber == CopyNumber).Count() != 0)
            {
                itemHold = (HOLDING)db.HOLDINGs.Where(a => a.CopyNumber == CopyNumber).First();
            }
            //int b = db.HOLDINGs.Where(a => (a.ItemID == itemHold.ItemID) && (a.InUsed == false)).Count();
            //int c = db.CIR_HOLDING.Where(a => (a.ItemID == itemHold.ItemID) && (((a.CheckMail == true) && (a.InTurn == true)) || ((a.CheckMail == false) && (a.InTurn == true)))).Count();
            //kiểm tra cùng 1 người thực hiện ghi mượn
            if (patroncode != PatronCode)
            {
                strTransactionIDs = "0";
            }
            if (db.HOLDINGs.Where(a => a.CopyNumber == CopyNumber).Count() == 0)
            {
                ViewBag.message = "ĐKCB không đúng";
                ViewBag.HiddenCheckduplicate = "";
            }
            else if (db.CIR_LOAN.Where(a => a.CopyNumber == CopyNumber).Count() != 0)
            {
                ViewBag.message = "ĐKCB đang được ghi mượn";
                ViewBag.HiddenCheckduplicate = "";
            }
            else if (db.CIR_HOLDING.Where(a => (a.PatronCode == PatronCode) && (a.ItemID == itemHold.ItemID) && (((a.InTurn == true) && (a.CheckMail == true))) || ((a.InTurn == true) && (a.CheckMail == false))).Count() != 0)
            {
                if (!Checkonloanquota(PatronID, intLoanMode))
                {
                    ViewBag.message = "Hết hạn ngạch tối đa có thể mượn";
                    ViewBag.HiddenCheckduplicate = "";
                }
                else
                {
                    int ItemID = db.HOLDINGs.Where(a => a.CopyNumber == CopyNumber).First().ItemID;
                    foreach (CIR_LOAN loan in cIR_LOANs)
                    {
                        ItemIds.Add(loan.ItemID);
                    }
                    foreach (int?id in ItemIds)
                    {
                        if (ItemID == id)
                        {
                            duplicate = true;
                        }
                    }
                    if (duplicate == true && boolAllowDuplacate == false)
                    {
                        ViewBag.HiddenCheckduplicate = "duplicate";
                    }
                    else
                    {
                        int success = db.SP_CHECKOUT(PatronCode, (int)Session["UserID"], intLoanMode, CopyNumber, strDueDate, strCheckOutDate, intHoldIgnore,
                                                     new ObjectParameter("intOutValue", typeof(int)),
                                                     new ObjectParameter("intOutID", typeof(int)));
                        string lastid = db.CIR_LOAN.Max(a => a.ID).ToString();

                        if (success == -1)
                        {
                            ViewBag.message = "Ghi mượn thất bại";
                        }
                        else
                        {
                            if (patroncode == PatronCode)
                            {
                                strTransactionIDs = strTransactionIDs + "," + lastid;
                            }
                            else
                            {
                                strTransactionIDs = lastid;
                            }
                            db.ExcuteSQL("update CIR_HOLDING set CheckMail=1, InTurn=0 where PatronCode='" + PatronCode + "' and ItemID= " + itemHold.ItemID);
                        }
                        ViewBag.HiddenCheckduplicate = "";
                    }
                }
            }

            else if ((db.HOLDINGs.Where(a => (a.ItemID == itemHold.ItemID) && (a.InUsed == false) && ((a.LibID == 81) || (a.LocationID == 13) || (a.LocationID == 15) || (a.LocationID == 16) || (a.LocationID == 27))).Count() <= db.CIR_HOLDING.Where(a => (a.ItemID == itemHold.ItemID) && (((a.CheckMail == true) && (a.InTurn == true)) || ((a.CheckMail == false) && (a.InTurn == true)))).Count()))
            {
                ViewBag.message = "Cuốn này đang được đặt mượn";
                ViewBag.HiddenCheckduplicate = "";
            }


            else
            {
                if (!Checkonloanquota(PatronID, intLoanMode))
                {
                    ViewBag.message = "Hết hạn ngạch tối đa có thể mượn";
                    ViewBag.HiddenCheckduplicate = "";
                }
                else
                {
                    int ItemID = db.HOLDINGs.Where(a => a.CopyNumber == CopyNumber).First().ItemID;
                    foreach (CIR_LOAN loan in cIR_LOANs)
                    {
                        ItemIds.Add(loan.ItemID);
                    }
                    foreach (int?id in ItemIds)
                    {
                        if (ItemID == id)
                        {
                            duplicate = true;
                        }
                    }
                    if (duplicate == true && boolAllowDuplacate == false)
                    {
                        ViewBag.HiddenCheckduplicate = "duplicate";
                    }
                    else
                    {
                        int success = db.SP_CHECKOUT(PatronCode, (int)Session["UserID"], intLoanMode, CopyNumber, strDueDate, strCheckOutDate, intHoldIgnore,
                                                     new ObjectParameter("intOutValue", typeof(int)),
                                                     new ObjectParameter("intOutID", typeof(int)));
                        string lastid = db.CIR_LOAN.Max(a => a.ID).ToString();

                        if (success == -1)
                        {
                            ViewBag.message = "Ghi mượn thất bại";
                        }
                        else
                        {
                            if (patroncode == PatronCode)
                            {
                                strTransactionIDs = strTransactionIDs + "," + lastid;
                            }
                            else
                            {
                                strTransactionIDs = lastid;
                            }
                        }
                        ViewBag.HiddenCheckduplicate = "";
                    }
                }
            }
            ViewBag.HiddenDuplicateCopyNumber = CopyNumber;
            Getcurrentloandetail();
            patroncode = PatronCode;
            return(PartialView("_checkoutSuccess"));
        }
Ejemplo n.º 3
0
        public PartialViewResult CheckInByDKCB(
            int intType,
            int intAutoPaid,
            string strCopyNumbers,
            string strCheckInDate,
            string strPatronCode
            )
        {
            string CopyNumber = strCopyNumbers.Trim();
            int    success    = -1;

            if (!sessionpcode.Equals(""))
            {
                Getpatrondetail(sessionpcode);
            }
            else
            {
                ViewBag.PatronDetail = null;
            }
            if (db.HOLDINGs.Where(a => a.CopyNumber == CopyNumber).Count() == 0)
            {
                ViewBag.message = "ĐKCB không đúng";
            }
            else if (db.CIR_LOAN.Where(a => a.CopyNumber == CopyNumber).Count() == 0)
            {
                ViewBag.message = "ĐKCB chưa được ghi mượn";
            }
            else
            {
                string patroncode = db.CIR_LOAN.Where(a => a.CopyNumber == CopyNumber).First().CIR_PATRON.Code;
                success = db.SP_CHECKIN((int)Session["UserID"], intType, intAutoPaid, CopyNumber, strCheckInDate,
                                        new ObjectParameter("strTransIDs", typeof(string)),
                                        new ObjectParameter("strPatronCode", typeof(string)),
                                        new ObjectParameter("intError", typeof(int)));
                if (success == -1)
                {
                    ViewBag.CurrentCheckin = null;
                    ViewBag.message        = "Ghi trả thất bại";
                }
                else
                {
                    int    lastid    = db.CIR_LOAN_HISTORY.Max(a => a.ID);
                    int    id        = db.CIR_LOAN_HISTORY.Where(b => b.ID == lastid).First().ItemID;
                    String fieldcode = "245";
                    ViewBag.message        = "";
                    ViewBag.CurrentCheckin = new CurrentCheckIn
                    {
                        Title        = f.OnFormatHoldingTitle(db.FIELD200S.Where(a => a.ItemID == id).Where(a => a.FieldCode == fieldcode).First().Content),
                        Copynumber   = db.CIR_LOAN_HISTORY.Where(a => a.ID == lastid).First().CopyNumber,
                        CheckOutDate = db.CIR_LOAN_HISTORY.Where(a => a.ID == lastid).First().CheckOutdate.ToString("dd/MM/yyyy"),
                        CheckInDate  = db.CIR_LOAN_HISTORY.Where(a => a.ID == lastid).First().CheckInDate.ToString("dd/MM/yyyy"),
                        OverdueFine  = db.CIR_LOAN_HISTORY.Where(a => a.ID == lastid).First().OverdueFine.ToString()
                    };
                    sessionpcode = patroncode;
                }
                Getpatrondetail(patroncode);
                HOLDING holding = db.HOLDINGs.Where(a => a.CopyNumber == CopyNumber).First();


                if (db.CIR_HOLDING.Where(a => a.ItemID == holding.ItemID).Count() != 0)
                {
                    if (db.CIR_HOLDING.Where(a => (a.ItemID == holding.ItemID) && (a.InTurn == false) && (a.CheckMail == false)).Count() != 0)
                    {
                        CIR_HOLDING cIR_HOLDING = db.CIR_HOLDING.Where(a => (a.ItemID == holding.ItemID) && (a.InTurn == false) && (a.CheckMail == false)).OrderByDescending(x => x.CreatedDate).First();
                        CIR_PATRON  cIR_PATRON  = db.CIR_PATRON.Where(a => a.Code == cIR_HOLDING.PatronCode).First();
                        ViewBag.message = "Bạn đọc " + cIR_PATRON.FirstName + " " + cIR_PATRON.MiddleName + " " + cIR_PATRON.LastName + " .Mã SV:" + cIR_PATRON.Code + " đang đợi mượn cuốn này!";
                    }
                }
                if (db.CIR_PATRON_LOCK.Where(a => a.PatronCode == patroncode).Count() == 0)
                {
                    ViewBag.active = 1;
                }
                else
                {
                    ViewBag.active = 0;
                }
            }
            if (db.CIR_PATRON_LOCK.Where(a => a.PatronCode == strPatronCode).Count() == 0)
            {
                ViewBag.active = 1;
            }
            else
            {
                ViewBag.active = 0;
            }

            return(PartialView("_checkinByDKCB"));
        }
Ejemplo n.º 4
0
        public PartialViewResult CheckInByDKCBs(
            string strPatronCode,
            int intType,
            int intAutoPaid,
            string[] strCopyNumbers,
            string strCheckInDate
            )
        {
            string pcode   = strPatronCode.Trim();
            int    success = -1;

            if (strCopyNumbers != null)
            {
                foreach (string CopyNumber in strCopyNumbers)
                {
                    success = db.SP_CHECKIN((int)Session["UserID"], intType, intAutoPaid, CopyNumber, strCheckInDate,
                                            new ObjectParameter("strTransIDs", typeof(string)),
                                            new ObjectParameter("strPatronCode", typeof(string)),
                                            new ObjectParameter("intError", typeof(int)));
                }
            }
            Getpatrondetail(sessionpcode);
            //FPT_SP_UNLOCK_PATRON_CARD_LIST("'" + strPatronCode + "'");
            if (db.CIR_PATRON_LOCK.Where(a => a.PatronCode == strPatronCode).Count() == 0)
            {
                ViewBag.active = 1;
            }
            else
            {
                ViewBag.active = 0;
            }
            if (success == -1)
            {
                ViewBag.message        = "Ghi trả thất bại";
                ViewBag.CurrentCheckin = null;
            }
            else
            {
                int    lastid    = db.CIR_LOAN_HISTORY.Max(a => a.ID);
                int    id        = db.CIR_LOAN_HISTORY.Where(b => b.ID == lastid).First().ItemID;
                String fieldcode = "245";
                ViewBag.message        = "";
                ViewBag.CurrentCheckin = new CurrentCheckIn
                {
                    Title        = f.OnFormatHoldingTitle(db.FIELD200S.Where(a => a.ItemID == id).Where(a => a.FieldCode == fieldcode).First().Content),
                    Copynumber   = db.CIR_LOAN_HISTORY.Where(a => a.ID == lastid).First().CopyNumber,
                    CheckOutDate = db.CIR_LOAN_HISTORY.Where(a => a.ID == lastid).First().CheckOutdate.ToString("dd/MM/yyyy"),
                    CheckInDate  = db.CIR_LOAN_HISTORY.Where(a => a.ID == lastid).First().CheckInDate.ToString("dd/MM/yyyy"),
                    OverdueFine  = db.CIR_LOAN_HISTORY.Where(a => a.ID == lastid).First().OverdueFine.ToString()
                };
                string messageOrder = "";
                foreach (string item in strCopyNumbers)
                {
                    HOLDING holding = db.HOLDINGs.Where(a => a.CopyNumber == item).First();
                    //check this book is on exist in table order
                    if (db.CIR_HOLDING.Where(a => a.ItemID == holding.ItemID).Count() != 0)
                    {
                        if (db.CIR_HOLDING.Where(a => (a.ItemID == holding.ItemID) && (a.InTurn == false) && (a.CheckMail == false)).Count() != 0)
                        {
                            CIR_HOLDING cIR_HOLDING = db.CIR_HOLDING.Where(a => (a.ItemID == holding.ItemID) && (a.InTurn == false) && (a.CheckMail == false)).OrderByDescending(x => x.CreatedDate).First();
                            CIR_PATRON  cIR_PATRON  = db.CIR_PATRON.Where(a => a.Code == cIR_HOLDING.PatronCode).First();
                            ITEM        temp        = db.ITEMs.Where(a => a.ID == cIR_HOLDING.ItemID).First();
                            messageOrder = messageOrder + "Mã SV:" + cIR_PATRON.Code + " đang đợi mượn tài liệu " + temp.Code + "\n";
                        }
                    }
                }
                ViewBag.message = messageOrder;
            }
            return(PartialView("_checkinByDKCB"));
        }