예제 #1
0
        public ActionResult ConfirmOdr(int TotalAmount, int[] IDs)
        {
            var         CurrentUserId = User.Identity.GetUserId();
            AspNetOrder order         = new AspNetOrder();

            order.TotalAmount = TotalAmount;
            order.Status      = "Pending";
            order.OrderType   = "Postpaid";


            order.PublishDate = DateTime.Now;


            db.AspNetOrders.Add(order);

            db.SaveChanges();


            int OrderId = order.Id;

            List <AspNetNotesOrder> AllNotesOrder = db.AspNetNotesOrders.ToList();

            List <AspNetNotesOrder> OrdersToModify = new List <AspNetNotesOrder>();

            foreach (var OrderIds in IDs)
            {
                foreach (var findOrder in AllNotesOrder)
                {
                    if (OrderIds == findOrder.Id)

                    {
                        OrdersToModify.Add(findOrder);
                    }
                }
            }

            foreach (var OrderModify in OrdersToModify)
            {
                OrderModify.OrderId = OrderId;
                OrderModify.Status  = "Pending";

                db.Entry(OrderModify).State = EntityState.Modified;
                db.SaveChanges();
            }



            return(Json("", JsonRequestBehavior.AllowGet));
        }
예제 #2
0
        public ActionResult ApproveOrders(int OrderId, string OrderType)
        {
            AspNetOrder OrderToModify = db.AspNetOrders.Where(x => x.Id == OrderId).FirstOrDefault();

            OrderToModify.Status = "Paid";


            db.Entry(OrderToModify).State = EntityState.Modified;
            db.SaveChanges();


            List <AspNetNotesOrder> NotesOrderToModify = db.AspNetNotesOrders.Where(x => x.OrderId == OrderId).ToList();

            foreach (var NotesOrder in NotesOrderToModify)
            {
                NotesOrder.Status = "Paid";

                db.Entry(NotesOrder).State = EntityState.Modified;

                db.SaveChanges();
            }
            var result = from Notes in db.AspNetNotes
                         join OrderNotes in db.AspNetNotesOrders on Notes.Id equals OrderNotes.NotesID
                         join Order in db.AspNetOrders on OrderNotes.OrderId equals Order.Id
                         join Student in db.AspNetStudents on OrderNotes.StudentID equals Student.Id
                         join User in db.AspNetUsers on Student.StudentID equals User.Id
                         where Order.Id == OrderId
                         select new
            {
                classId       = Student.ClassID,
                Title         = Notes.Title,
                Quantity      = OrderNotes.Quantity,
                GrandTotal    = Notes.GrandTotal,
                PhotoCopier   = Notes.PhotoCopierPrice,
                NameOfStudent = User.Name,
                StudentId     = Student.Id,

                TotalPhotoCopierPrice = (Notes.PhotoCopierPrice * OrderNotes.Quantity)
            };

            var NameOfStudent = result.FirstOrDefault().NameOfStudent;
            var classIdd      = result.FirstOrDefault().classId;
            var SessionIdd    = db.AspNetClasses.Where(x => x.Id == classIdd).FirstOrDefault().SessionID;
            var SessionName   = db.AspNetSessions.Where(x => x.Id == SessionIdd).FirstOrDefault().SessionName;

            double TotalPriceOfPhotoCopier = 0;

            foreach (var item in result)
            {
                TotalPriceOfPhotoCopier = Convert.ToDouble(TotalPriceOfPhotoCopier + item.TotalPhotoCopierPrice);
            }

            var     id       = User.Identity.GetUserId();
            var     username = db.AspNetUsers.Where(x => x.Id == id).Select(x => x.Name).FirstOrDefault();
            Voucher voucher  = new Voucher();

            voucher.Name      = "Notes paid by Student " + NameOfStudent + " Session Name " + SessionName;
            voucher.Notes     = "Cash received for notes";
            voucher.Date      = GetLocalDateTime.GetLocalDateTimeFunction();
            voucher.StudentId = result.FirstOrDefault().StudentId;

            voucher.CreatedBy = username;
            voucher.SessionID = SessionID;
            int?VoucherObj = db.Vouchers.Max(x => x.VoucherNo);

            voucher.VoucherNo = Convert.ToInt32(VoucherObj) + 1;
            db.Vouchers.Add(voucher);
            db.SaveChanges();

            if (OrderType == "Postpaid")
            {
                var           Leadger        = db.Ledgers.Where(x => x.Name == "Admin Drawer").FirstOrDefault();
                int           AdminDrawerId  = Leadger.Id;
                decimal?      CurrentBalance = Leadger.CurrentBalance;
                VoucherRecord voucherRecord  = new VoucherRecord();
                decimal?      AfterBalance   = CurrentBalance + OrderToModify.TotalAmount;
                voucherRecord.LedgerId       = AdminDrawerId;
                voucherRecord.Type           = "Dr";
                voucherRecord.Amount         = OrderToModify.TotalAmount;
                voucherRecord.CurrentBalance = CurrentBalance;

                voucherRecord.AfterBalance = AfterBalance;
                voucherRecord.VoucherId    = voucher.Id;
                voucherRecord.Description  = "Notes paid by student (" + NameOfStudent + ") (" + SessionName + ")";
                Leadger.CurrentBalance     = AfterBalance;
                db.VoucherRecords.Add(voucherRecord);
                db.SaveChanges();

                VoucherRecord voucherRecord1 = new VoucherRecord();

                var LeadgerNotes = db.Ledgers.Where(x => x.Name == "Notes").FirstOrDefault();

                decimal?CurrentBalanceOfNotes = LeadgerNotes.CurrentBalance;
                decimal?AfterBalanceOfNotes   = CurrentBalanceOfNotes + OrderToModify.TotalAmount;
                voucherRecord1.LedgerId       = LeadgerNotes.Id;
                voucherRecord1.Type           = "Cr";
                voucherRecord1.Amount         = OrderToModify.TotalAmount;
                voucherRecord1.CurrentBalance = CurrentBalanceOfNotes;
                voucherRecord1.AfterBalance   = AfterBalanceOfNotes;
                voucherRecord1.VoucherId      = voucher.Id;
                voucherRecord1.Description    = "Notes against order ID " + OrderId;
                LeadgerNotes.CurrentBalance   = AfterBalanceOfNotes;

                db.VoucherRecords.Add(voucherRecord1);
                db.SaveChanges();
            }//end of if

            VoucherRecord voucherRecord2 = new VoucherRecord();

            var IdofLedger = from Ledger in db.Ledgers
                             join LedgerHd in db.LedgerHeads on Ledger.LedgerHeadId equals LedgerHd.Id
                             where LedgerHd.Name == "Liabilities" && Ledger.Name == "Photocopier"
                             select new
            {
                Ledger.Id
            };


            int photoCopierId       = Convert.ToInt32(IdofLedger.FirstOrDefault().Id);
            var LeadgerPhotoCopierL = db.Ledgers.Where(x => x.Id == photoCopierId).FirstOrDefault();

            decimal?CurrentBalanceOfPhotoCopiter = LeadgerPhotoCopierL.CurrentBalance;
            decimal?AfterBalanceOfPhotoCopier    = CurrentBalanceOfPhotoCopiter + Convert.ToDecimal(TotalPriceOfPhotoCopier);

            voucherRecord2.LedgerId            = LeadgerPhotoCopierL.Id;
            voucherRecord2.Type                = "Cr";
            voucherRecord2.Amount              = Convert.ToDecimal(TotalPriceOfPhotoCopier);
            voucherRecord2.CurrentBalance      = CurrentBalanceOfPhotoCopiter;
            voucherRecord2.AfterBalance        = AfterBalanceOfPhotoCopier;
            voucherRecord2.VoucherId           = voucher.Id;
            voucherRecord2.Description         = "Notes against order ID " + OrderId;
            LeadgerPhotoCopierL.CurrentBalance = AfterBalanceOfPhotoCopier;
            db.VoucherRecords.Add(voucherRecord2);

            db.SaveChanges();

            VoucherRecord voucherRecord3 = new VoucherRecord();

            var IdofLedger1 = from Ledger in db.Ledgers
                              join LedgerHd in db.LedgerHeads on Ledger.LedgerHeadId equals LedgerHd.Id
                              where LedgerHd.Name == "Expense" && Ledger.Name == "Photocopier"
                              select new
            {
                Ledger.Id
            };

            int photoCopierIdOfExpense = Convert.ToInt32(IdofLedger1.FirstOrDefault().Id);
            var LeadgerPhotoCopierE    = db.Ledgers.Where(x => x.Id == photoCopierIdOfExpense).FirstOrDefault();

            decimal?CurrentBalanceOfPhotoCopiterE = LeadgerPhotoCopierE.CurrentBalance;
            decimal?AfterBalanceOfPhotoCopierE    = CurrentBalanceOfPhotoCopiterE + Convert.ToDecimal(TotalPriceOfPhotoCopier);

            voucherRecord3.LedgerId            = LeadgerPhotoCopierE.Id;
            voucherRecord3.Type                = "Dr";
            voucherRecord3.Amount              = Convert.ToDecimal(TotalPriceOfPhotoCopier);
            voucherRecord3.CurrentBalance      = CurrentBalanceOfPhotoCopiterE;
            voucherRecord3.AfterBalance        = AfterBalanceOfPhotoCopierE;
            voucherRecord3.VoucherId           = voucher.Id;
            voucherRecord3.Description         = "Notes against order ID " + OrderId;
            LeadgerPhotoCopierE.CurrentBalance = AfterBalanceOfPhotoCopierE;

            db.VoucherRecords.Add(voucherRecord3);
            db.SaveChanges();



            return(Json("", JsonRequestBehavior.AllowGet));
        }