public async Task <ActionResult> AddRegistration(std_registration mst)
        {
            std_registrationMain mstMain = new std_registrationMain();


            mst.reg_date = System.DateTime.Now.AddMinutes(dateTimeOffSet);

            if (mst.std_contact == null)
            {
                ModelState.AddModelError(String.Empty, "Primary contact is mandatory.");
                mst_classMain mstClass = new mst_classMain();

                mst_sessionMain sess = new mst_sessionMain();

                var class_list = mstClass.AllClassList(sess.findActive_Session());

                IEnumerable <SelectListItem> list1 = new SelectList(class_list, "class_id", "class_name");

                ViewData["class_id"] = list1;

                return(View(mst));
            }



            await mstMain.AddRegistration(mst);



            return(RedirectToAction("AllRegistrationList"));
        }
        public ActionResult EditRegistration(std_registration mst)
        {
            std_registrationMain stdMain = new std_registrationMain();

            stdMain.EditRegistration(mst);

            return(RedirectToAction("AllRegistrationList"));
        }
        public ActionResult EditRegistration(string sess, int reg, DateTime dt)
        {
            std_registrationMain stdMain = new std_registrationMain();
            var obj = stdMain.FindRegistration(sess, reg, dt);

            DDclass_name(obj);
            return(View(obj));
        }
        public ActionResult DeleteRegistration(string sess, int reg, DateTime dt, FormCollection collection)
        {
            try
            {
                using (MySqlConnection con = new MySqlConnection(ConfigurationManager.ConnectionStrings["DefaultConnection"].ToString()))
                {
                    string query = @"select count(*) from out_standing where reg_num = @reg and rmt_amount = 0 and session = @session";

                    int count = con.Query <int>(query, new { reg = reg, session = sess }).SingleOrDefault();

                    if (count > 0)
                    {
                        std_registrationMain stdMain = new std_registrationMain();

                        stdMain.DeleteRegistration(sess, reg, dt);

                        return(RedirectToAction("AllRegistrationList"));
                    }
                    else
                    {
                        //ModelState.AddModelError(String.Empty, "Payment made cannot delete the registration.");

                        //std_registrationMain stdMain = new std_registrationMain();

                        //ViewBag.message = "Payment made cannot delete the registration.";

                        return(View("cannotdelete"));
                    }
                }
            }
            catch (Exception ex)
            {
                // ModelState.AddModelError(String.Empty, "Sections are created cannot delete");

                return(RedirectToAction("AllRegistrationList"));
            }
        }
        public ActionResult AddStudent(string sess, int reg, DateTime dt)
        {
            std_registrationMain std_reg = new std_registrationMain();

            std_registration obj = std_reg.FindRegistration(sess, reg, dt);

            sr_register std = new sr_register();

            std.std_first_name = obj.std_first_name;
            std.std_last_name  = obj.std_last_name;
            std.adm_session    = obj.session;
            std.class_id       = obj.std_class_id;
            std.reg_no         = obj.reg_no;
            std.reg_date       = obj.reg_date;
            std.std_active     = "Y";
            std.std_address    = obj.std_address;
            std.std_address1   = obj.std_address1;
            std.std_address2   = obj.std_address2;

            std.std_admission_date_str = DateTime.Now.ToShortDateString();
            std.std_contact            = obj.std_contact;
            std.std_contact1           = obj.std_contact1;
            std.std_contact2           = obj.std_contact2;
            std.std_country            = obj.std_country;
            std.std_district           = obj.std_district;
            std.std_email       = obj.std_email;
            std.std_father_name = obj.std_father_name;
            std.std_mother_name = obj.std_mother_name;
            std.std_pincode     = obj.std_pincode;
            std.std_state       = obj.std_state;

            DDclass_name(std);

            DDtransport_id(std);

            return(View(std));
        }
        public ActionResult fees_collect(fees_collect col)
        {
            using (MySqlConnection con = new MySqlConnection(ConfigurationManager.ConnectionStrings["DefaultConnection"].ToString()))
            {
                mst_finMain fin = new mst_finMain();
                if (fin.checkFYnotExpired())
                {
                    try
                    {
                        mst_sessionMain sess = new mst_sessionMain();

                        if (sess.findActive_Session() == col.session)
                        {
                            string query = @"SELECT 
                                               ifnull(SUM(IFNULL(outstd_amount, 0)) - SUM(IFNULL(rmt_amount, 0)),0) amt
                                            FROM
                                                out_standing
                                            WHERE
                                                sr_number = @sr_number AND session != @session";

                            decimal amt = con.Query <decimal>(query, new { sr_number = col.sr_num, session = col.session }).SingleOrDefault();

                            if (amt != 0m)
                            {
                                ModelState.AddModelError(string.Empty, "Kindly clear previous session fees first.");
                                fees_collect fee = new fees_collect();

                                sr_registerMain stdMain = new sr_registerMain();

                                fee.list = stdMain.AllStudentList(GetDefaultSection());


                                DDsession_name();
                                DDClassWiseSection();



                                return(View(fee));
                            }
                        }

                        if (col.sr_num > 0)
                        {
                            sr_registerMain reg      = new sr_registerMain();
                            sr_register     register = new sr_register();

                            register = reg.FindStudent(col.sr_num, col.session);

                            if (register == null)
                            {
                                register = reg.FindStudent(col.sr_num, sess.findFinal_Session());
                            }

                            col.std_Name = register.std_first_name + " " + register.std_last_name;

                            col.std_father_name = register.std_father_name;

                            col.std_mother_name = register.std_mother_name;

                            col.std_contact = register.std_contact;

                            col.std_Email = register.std_email;

                            col.std_Class = register.class_name;

                            col.std_Section = register.section_name;

                            col.std_Pickup_point = register.pickup_point;

                            col.std_aadhar = register.std_aadhar;

                            return(View("submit_fees", col));
                        }
                        else if (col.reg_num > 0)
                        {
                            std_registrationMain reg          = new std_registrationMain();
                            std_registration     registration = new std_registration();


                            registration = reg.FindRegistrationForFees(col.reg_num);


                            col.std_Name = registration.std_first_name + " " + registration.std_last_name;

                            col.std_father_name = registration.std_father_name;

                            col.std_mother_name = registration.std_mother_name;

                            col.std_contact = registration.std_contact;

                            col.std_Email = registration.std_email;

                            col.std_Class = registration.class_name;

                            col.std_Section = "N/A";

                            col.std_Pickup_point = "N/A";

                            return(View("submit_fees", col));
                        }
                        else
                        {
                            fees_collect fee = new fees_collect();

                            sr_registerMain stdMain = new sr_registerMain();

                            fee.list = stdMain.AllStudentList(col.section_id);


                            DDsession_name();

                            DDClassWiseSection();



                            return(View(fee));
                        }
                    }
                    catch
                    {
                        ModelState.AddModelError(string.Empty, "Student record not found");
                        fees_collect fee = new fees_collect();

                        sr_registerMain stdMain = new sr_registerMain();

                        fee.list = stdMain.AllStudentList(GetDefaultSection());


                        DDsession_name();
                        DDClassWiseSection();



                        return(View(fee));
                    }
                }
                else
                {
                    ModelState.AddModelError(string.Empty, "Financial Year Expired cannot submit fees create new Financial  year.");

                    fees_collect fee = new fees_collect();

                    sr_registerMain stdMain = new sr_registerMain();

                    fee.list = stdMain.AllStudentList(col.section_id);

                    DDsession_name();

                    DDClassWiseSection();



                    return(View(fee));
                }
            }
        }
        public ActionResult AllRegistrationList()
        {
            std_registrationMain stdMain = new std_registrationMain();

            return(View(stdMain.AllRegistrationList()));
        }
        public ActionResult DeleteRegistration(string sess, int reg, DateTime dt)
        {
            std_registrationMain stdMain = new std_registrationMain();

            return(View(stdMain.FindRegistration(sess, reg, dt)));
        }