public ActionResult Create([Bind(Include = "SalaryInstalmentsID,TeacherID,Title,Amount,Dop")] SalaryBookTeacher salaryinstalments)
        {
            bool      result = false;
            errordata data   = new errordata();

            data.type      = "error";
            Session["err"] = "Error, Please Check Input Fields";
            Session["msg"] = "";
            if (ModelState.IsValid)
            {
                SalaryBookTeacher exist = db.SalaryBookTeachers.Where(s => s.Title == salaryinstalments.Title && s.TeacherID == salaryinstalments.TeacherID).FirstOrDefault();
                if (exist != null)
                {
                    Session["err"] = "Salary Instalment already exists";
                    data.message   = Session["err"].ToString();
                    return(Json(data, JsonRequestBehavior.AllowGet));
                }
                db.SalaryBookTeachers.Add(salaryinstalments);
                db.SaveChanges();

                ModelState.Clear();

                result = true;
                if (result == true)
                {
                    //Account
                    int feedebitaccount    = 0;
                    int salarydebitaccount = 0;

                    int feecreditaccount    = 0;
                    int salarycreditaccount = 0;

                    var acheadassignList = db.AccountHeadAssigns.ToList();
                    foreach (AccountHeadAssign acheadassign in acheadassignList)
                    {
                        if (acheadassign.HeadAssignID == 1)
                        {
                            feedebitaccount = acheadassign.AccountHeadID;
                        }

                        if (acheadassign.HeadAssignID == 2)
                        {
                            feecreditaccount = acheadassign.AccountHeadID;
                        }
                        if (acheadassign.HeadAssignID == 3)
                        {
                            salarydebitaccount = acheadassign.AccountHeadID;
                        }
                        if (acheadassign.HeadAssignID == 4)
                        {
                            salarycreditaccount = acheadassign.AccountHeadID;
                        }
                    }

                    Teacher teacher         = db.Teachers.Find(salaryinstalments.TeacherID);
                    string  voucherno       = "EM" + teacher.IdCard + "-" + salaryinstalments.SalaryBookID.ToString();
                    var     accountjournals = db.AccountJournals.Where(a => a.VoucherNo == voucherno).ToList();
                    foreach (AccountJournal accountjournal1 in accountjournals)
                    {
                        var accountjournaldetails = db.AccountJournalDetails.Where(a => a.AccountJournalID == accountjournal1.AccountJournalID).ToList();
                        foreach (AccountJournalDetail accountjournaldetail1 in accountjournaldetails)
                        {
                            db.AccountJournalDetails.Remove(accountjournaldetail1);
                        }
                        db.SaveChanges();
                        db.AccountJournals.Remove(accountjournal1);
                    }
                    db.SaveChanges();

                    AccountJournal accountjournal = new AccountJournal();
                    accountjournal.VoucherNo       = voucherno;
                    accountjournal.VoucherType     = voucherno.Substring(0, 2);
                    accountjournal.TransactionDate = salaryinstalments.Dop;
                    accountjournal.BranchID        = int.Parse(Session["SchoolID"].ToString());
                    accountjournal.FinancialYearID = int.Parse(Session["AcademicYearID"].ToString());
                    accountjournal.UserID          = Session["UserID"].ToString();
                    accountjournal.Remarks         = "Teacher Salary";
                    db.AccountJournals.Add(accountjournal);
                    db.SaveChanges();

                    //debit
                    AccountJournalDetail accountjournaldetail = new AccountJournalDetail();
                    if (salaryinstalments.Amount > 0)
                    {
                        accountjournaldetail.AccountJournalID = accountjournal.AccountJournalID;
                        accountjournaldetail.AccountHeadID    = feedebitaccount;
                        accountjournaldetail.AnalysisHeadID   = 0;
                        accountjournaldetail.Amount           = salaryinstalments.Amount;
                        accountjournaldetail.Remarks          = "Teacher Salary: " + teacher.Name + ", Detail: " + salaryinstalments.Title + ", salary Debit";
                        db.AccountJournalDetails.Add(accountjournaldetail);
                        db.SaveChanges();
                    }

                    //credit
                    if (salaryinstalments.Amount > 0)
                    {
                        accountjournaldetail = new AccountJournalDetail();
                        accountjournaldetail.AccountJournalID = accountjournal.AccountJournalID;
                        accountjournaldetail.AccountHeadID    = feecreditaccount;
                        accountjournaldetail.AnalysisHeadID   = 0;
                        accountjournaldetail.Amount           = salaryinstalments.Amount * -1;
                        accountjournaldetail.Remarks          = "Teacher Salary: " + teacher.Name + ", Detail: " + salaryinstalments.Title + ", salary credit";
                        db.AccountJournalDetails.Add(accountjournaldetail);
                        db.SaveChanges();
                    }
                }

                Session["err"] = "";
                Session["msg"] = "Created Successfully";
            }
            data.message = Session["msg"].ToString();
            data.type    = "success";
            return(Json(data, JsonRequestBehavior.AllowGet));
        }
Ejemplo n.º 2
0
        public ActionResult Edit(List <tempJournalVoucherDetail> journalVoucherDetailList, List <tempJournalVoucher> journalVoucherList, string create)
        {
            Session["err"] = "Error, Please Check Input Fields";
            Session["msg"] = "";
            int journalvoucherid = 0;

            foreach (tempJournalVoucherDetail t in journalVoucherDetailList.ToList())
            {
                journalvoucherid = t.journalvoucherid;
                try
                {
                    JournalVoucherDetail journalvoucherdetail = db.JournalVoucherDetails.Find(t.journalvoucherdetailid);
                    if (journalvoucherdetail == null)
                    {
                        JournalVoucherDetail journalvoucherdetail1 = new JournalVoucherDetail();
                        journalvoucherdetail1.JournalVoucherID = t.journalvoucherid;
                        journalvoucherdetail1.AccountHeadID    = t.accountheadid;
                        journalvoucherdetail1.DebitCreditID    = t.debitcreditid;
                        journalvoucherdetail1.Amount           = decimal.Round(Convert.ToDecimal(t.amount.Replace(",", "")), 2, MidpointRounding.AwayFromZero);
                        journalvoucherdetail1.Remarks          = t.remarks;
                        db.JournalVoucherDetails.Add(journalvoucherdetail1);
                        db.SaveChanges();
                    }
                    else
                    {
                        journalvoucherdetail.JournalVoucherID = t.journalvoucherid;
                        journalvoucherdetail.AccountHeadID    = t.accountheadid;
                        journalvoucherdetail.DebitCreditID    = t.debitcreditid;
                        if (t.debitcreditid == 1)
                        {
                            journalvoucherdetail.Amount = decimal.Round(Convert.ToDecimal(t.amount.Replace(",", "")), 2, MidpointRounding.AwayFromZero);
                        }
                        else
                        {
                            journalvoucherdetail.Amount = decimal.Round(Convert.ToDecimal(t.amount.Replace(",", "")) * -1, 2, MidpointRounding.AwayFromZero);
                        }

                        journalvoucherdetail.Remarks         = t.remarks;
                        db.Entry(journalvoucherdetail).State = EntityState.Modified;
                        db.SaveChanges();
                    }

                    journalvoucherid = t.journalvoucherid;
                }
                catch { }
            }

            try
            {
                var journalvoucherdetailfinal = db.JournalVoucherDetails.Where(b => b.JournalVoucherID == journalvoucherid).OrderBy(b => b.JournalVoucherDetailID).Skip(1).ToList();
                foreach (JournalVoucherDetail cvd in journalvoucherdetailfinal)
                {
                    if (cvd.Amount == 0)
                    {
                        db.JournalVoucherDetails.Remove(cvd);
                        db.SaveChanges();
                    }
                }
            }
            catch {}


            if (create == "1")
            {
                try
                {
                    JournalVoucherDetail journalvoucherdetail1 = new JournalVoucherDetail();
                    journalvoucherdetail1.JournalVoucherID = journalvoucherid;
                    journalvoucherdetail1.AccountHeadID    = 1;
                    journalvoucherdetail1.DebitCreditID    = 1;
                    journalvoucherdetail1.Amount           = 0.00M;
                    journalvoucherdetail1.Remarks          = "";
                    db.JournalVoucherDetails.Add(journalvoucherdetail1);
                    db.SaveChanges();
                }
                catch { }
            }

            decimal debittotalamt  = 0;
            decimal credittotalamt = 0;

            try
            {
                debittotalamt = db.JournalVoucherDetails.Where(u => u.JournalVoucherID == journalvoucherid).Where(u => u.DebitCreditID == 1).Sum(u => (decimal)u.Amount);
            }
            catch { }
            try
            {
                credittotalamt = db.JournalVoucherDetails.Where(u => u.JournalVoucherID == journalvoucherid).Where(u => u.DebitCreditID == 2).Sum(u => (decimal)u.Amount);
            }
            catch { }


            try {
                foreach (tempJournalVoucher bv in journalVoucherList.ToList())
                {
                    JournalVoucher journalvoucherfinal = db.JournalVouchers.Find(bv.journalvoucherid);
                    journalvoucherfinal.VoucherNo         = "JV-" + journalvoucherid.ToString("D" + 6);
                    journalvoucherfinal.VoucherDate       = bv.voucherdate;
                    journalvoucherfinal.Narration         = bv.narration;
                    journalvoucherfinal.DebitTotalAmount  = decimal.Round(Convert.ToDecimal(debittotalamt), 2, MidpointRounding.AwayFromZero);
                    journalvoucherfinal.CreditTotalAmount = decimal.Round(Convert.ToDecimal(credittotalamt), 2, MidpointRounding.AwayFromZero);
                    journalvoucherfinal.DiffTotalAmount   = decimal.Round(Convert.ToDecimal((debittotalamt - Convert.ToDecimal(credittotalamt.ToString().Replace("-", "")))), 2, MidpointRounding.AwayFromZero);
                    db.Entry(journalvoucherfinal).State   = EntityState.Modified;
                    db.SaveChanges();

                    if (create == "0")
                    {
                        journalvoucherfinal.Flag            = true;
                        db.Entry(journalvoucherfinal).State = EntityState.Modified;
                        db.SaveChanges();

                        var accountjournals = db.AccountJournals.Where(a => a.VoucherNo == journalvoucherfinal.VoucherNo).ToList();
                        foreach (AccountJournal accountjournal1 in accountjournals)
                        {
                            var accountjournaldetails = db.AccountJournalDetails.Where(a => a.AccountJournalID == accountjournal1.AccountJournalID).ToList();
                            foreach (AccountJournalDetail accountjournaldetail1 in accountjournaldetails)
                            {
                                db.AccountJournalDetails.Remove(accountjournaldetail1);
                            }
                            db.SaveChanges();
                            db.AccountJournals.Remove(accountjournal1);
                        }
                        db.SaveChanges();

                        AccountJournal accountjournal = new AccountJournal();
                        accountjournal.VoucherNo       = journalvoucherfinal.VoucherNo;
                        accountjournal.VoucherType     = journalvoucherfinal.VoucherNo.Substring(0, 2);
                        accountjournal.TransactionDate = journalvoucherfinal.VoucherDate;
                        accountjournal.BranchID        = int.Parse(Session["BranchID"].ToString());
                        accountjournal.FinancialYearID = int.Parse(Session["FinancialYearID"].ToString());
                        accountjournal.UserID          = Session["UserID"].ToString();
                        accountjournal.Remarks         = "Journal Voucher";
                        db.AccountJournals.Add(accountjournal);
                        db.SaveChanges();

                        var journalvoucherdetail = db.JournalVoucherDetails.Where(d => d.JournalVoucherID == journalvoucherfinal.JournalVoucherID).ToList();

                        foreach (JournalVoucherDetail d in journalvoucherdetail)
                        {
                            AccountJournalDetail accountjournaldetail = new AccountJournalDetail();
                            accountjournaldetail.AccountJournalID = accountjournal.AccountJournalID;
                            accountjournaldetail.AccountHeadID    = d.AccountHeadID;
                            accountjournaldetail.AnalysisHeadID   = 0;
                            if (d.DebitCreditID == 1)
                            {
                                accountjournaldetail.Amount  = d.Amount;
                                accountjournaldetail.Remarks = "Journal Voucher Debit";
                            }
                            else
                            {
                                accountjournaldetail.Amount  = d.Amount * -1;
                                accountjournaldetail.Remarks = "Journal Voucher Credit";
                            }
                            db.AccountJournalDetails.Add(accountjournaldetail);
                            db.SaveChanges();
                        }
                    }

                    Session["msg"] = "Modified Successfully";
                    Session["err"] = "";
                }
            }
            catch {}
            return(Json(Session["err"], JsonRequestBehavior.AllowGet));
        }
        public ActionResult Edit(List <tempBankVoucherDetail> bankVoucherDetailList, List <tempBankVoucher> bankVoucherList, string create)
        {
            Session["err"] = "Error, Please Check Input Fields";
            Session["msg"] = "";
            int bankvoucherid = 0;

            foreach (tempBankVoucherDetail t in bankVoucherDetailList.ToList())
            {
                bankvoucherid = t.bankvoucherid;
                if (Convert.ToDecimal(t.amount.Replace(",", "")) > 0)
                {
                    try
                    {
                        BankVoucherDetail bankvoucherdetail = db.BankVoucherDetails.Find(t.bankvoucherdetailid);
                        if (bankvoucherdetail == null)
                        {
                            BankVoucherDetail bankvoucherdetail1 = new BankVoucherDetail();
                            bankvoucherdetail1.BankVoucherID = t.bankvoucherid;
                            bankvoucherdetail1.AccountHeadID = t.accountheadid;
                            bankvoucherdetail1.Amount        = decimal.Round(Convert.ToDecimal(t.amount.Replace(",", "")), 2, MidpointRounding.AwayFromZero);
                            bankvoucherdetail1.Remarks       = t.remarks;
                            db.BankVoucherDetails.Add(bankvoucherdetail1);
                            db.SaveChanges();
                        }
                        else
                        {
                            bankvoucherdetail.BankVoucherID   = t.bankvoucherid;
                            bankvoucherdetail.AccountHeadID   = t.accountheadid;
                            bankvoucherdetail.Amount          = decimal.Round(Convert.ToDecimal(t.amount.Replace(",", "")), 2, MidpointRounding.AwayFromZero);
                            bankvoucherdetail.Remarks         = t.remarks;
                            db.Entry(bankvoucherdetail).State = EntityState.Modified;
                            db.SaveChanges();
                        }

                        bankvoucherid = t.bankvoucherid;
                    }
                    catch { }
                }
            }

            try
            {
                var bankvoucherdetailfinal = db.BankVoucherDetails.Where(b => b.BankVoucherID == bankvoucherid).OrderBy(b => b.BankVoucherDetailID).Skip(1).ToList();
                foreach (BankVoucherDetail cvd in bankvoucherdetailfinal)
                {
                    if (cvd.Amount == 0)
                    {
                        db.BankVoucherDetails.Remove(cvd);
                        db.SaveChanges();
                    }
                }
            }
            catch {}

            if (create == "1")
            {
                try
                {
                    BankVoucherDetail bankvoucherdetail1 = new BankVoucherDetail();
                    bankvoucherdetail1.BankVoucherID = bankvoucherid;
                    bankvoucherdetail1.AccountHeadID = 1;
                    bankvoucherdetail1.Amount        = 0.00M;
                    bankvoucherdetail1.Remarks       = "";
                    db.BankVoucherDetails.Add(bankvoucherdetail1);
                    db.SaveChanges();
                }
                catch { }
            }
            decimal totalamt = 0;

            try
            {
                totalamt = db.BankVoucherDetails.Where(u => u.BankVoucherID == bankvoucherid).Sum(u => (decimal)u.Amount);
            }
            catch { }
            try {
                foreach (tempBankVoucher bv in bankVoucherList.ToList())
                {
                    BankVoucher bankvoucherfinal = db.BankVouchers.Find(bv.bankvoucherid);
                    if (bv.vouchertypeid == 1)
                    {
                        bankvoucherfinal.VoucherNo = "CRV-" + bankvoucherid.ToString("D" + 6);
                    }
                    else
                    {
                        bankvoucherfinal.VoucherNo = "CPV-" + bankvoucherid.ToString("D" + 6);
                    }
                    bankvoucherfinal.VoucherTypeID   = bv.vouchertypeid;
                    bankvoucherfinal.EmployeeID      = bv.employeeid;
                    bankvoucherfinal.AccountHeadID   = bv.accountheadid;
                    bankvoucherfinal.VoucherDate     = bv.voucherdate;
                    bankvoucherfinal.ReferenceNo     = bv.referenceno;
                    bankvoucherfinal.ReferenceDate   = bv.referencedate;
                    bankvoucherfinal.Narration       = bv.narration;
                    bankvoucherfinal.TotalAmount     = decimal.Round(Convert.ToDecimal(totalamt.ToString("#.##")), 2, MidpointRounding.AwayFromZero);
                    db.Entry(bankvoucherfinal).State = EntityState.Modified;
                    db.SaveChanges();
                    if (create == "0" && bankvoucherfinal.TotalAmount > 0)
                    {
                        bankvoucherfinal.Flag            = true;
                        db.Entry(bankvoucherfinal).State = EntityState.Modified;
                        db.SaveChanges();

                        var accountjournals = db.AccountJournals.Where(a => a.VoucherNo == bankvoucherfinal.VoucherNo).ToList();
                        foreach (AccountJournal accountjournal1 in accountjournals)
                        {
                            var accountjournaldetails = db.AccountJournalDetails.Where(a => a.AccountJournalID == accountjournal1.AccountJournalID).ToList();
                            foreach (AccountJournalDetail accountjournaldetail1 in accountjournaldetails)
                            {
                                db.AccountJournalDetails.Remove(accountjournaldetail1);
                            }
                            db.SaveChanges();
                            db.AccountJournals.Remove(accountjournal1);
                        }
                        db.SaveChanges();

                        AccountJournal accountjournal = new AccountJournal();
                        accountjournal.VoucherNo       = bankvoucherfinal.VoucherNo;
                        accountjournal.VoucherType     = bankvoucherfinal.VoucherNo.Substring(0, 2);
                        accountjournal.TransactionDate = bankvoucherfinal.VoucherDate;
                        accountjournal.BranchID        = int.Parse(Session["BranchID"].ToString());
                        accountjournal.FinancialYearID = int.Parse(Session["FinancialYearID"].ToString());
                        accountjournal.UserID          = Session["UserID"].ToString();
                        accountjournal.Remarks         = "Bank Voucher";
                        db.AccountJournals.Add(accountjournal);
                        db.SaveChanges();

                        var bankvoucherdetail = db.BankVoucherDetails.Where(d => d.BankVoucherID == bankvoucherfinal.BankVoucherID).ToList();
                        int voucheracc        = 0;
                        foreach (BankVoucherDetail d in bankvoucherdetail)
                        {
                            AccountJournalDetail accountjournaldetail = new AccountJournalDetail();
                            if (voucheracc == 0)
                            {
                                voucheracc = bankvoucherfinal.AccountHeadID;
                                accountjournaldetail.AccountJournalID = accountjournal.AccountJournalID;
                                accountjournaldetail.AccountHeadID    = bankvoucherfinal.AccountHeadID;
                                accountjournaldetail.AnalysisHeadID   = 0;
                                if (bankvoucherfinal.VoucherTypeID == 1)
                                {
                                    accountjournaldetail.Amount  = bankvoucherfinal.TotalAmount * -1;
                                    accountjournaldetail.Remarks = "Bank Voucher Receipt";
                                }
                                else
                                {
                                    accountjournaldetail.Amount  = bankvoucherfinal.TotalAmount;
                                    accountjournaldetail.Remarks = "Bank Voucher Payment";
                                }

                                db.AccountJournalDetails.Add(accountjournaldetail);
                                db.SaveChanges();
                            }
                            accountjournaldetail = new AccountJournalDetail();
                            accountjournaldetail.AccountJournalID = accountjournal.AccountJournalID;
                            accountjournaldetail.AccountHeadID    = d.AccountHeadID;
                            accountjournaldetail.AnalysisHeadID   = 0;
                            if (bankvoucherfinal.VoucherTypeID == 1)
                            {
                                accountjournaldetail.Amount  = d.Amount;
                                accountjournaldetail.Remarks = "Bank Voucher Receipt";
                            }
                            else
                            {
                                accountjournaldetail.Amount  = d.Amount * -1;
                                accountjournaldetail.Remarks = "Bank Voucher Payment";
                            }
                            db.AccountJournalDetails.Add(accountjournaldetail);
                            db.SaveChanges();
                        }
                    }

                    Session["msg"] = "Modified Successfully";
                    Session["err"] = "";
                }
            }
            catch {}
            return(Json(Session["err"], JsonRequestBehavior.AllowGet));
        }