// GET: admin/Receipt
        public ActionResult Index()
        {
            string permissions = "";
            int    stat        = 0;

            if (HasPermission("[receipt]", ref permissions, ref stat))
            {
                return(RedirectToAction("AccessDeny"));
            }
            ViewBag.permissions = permissions;
            ViewBag.stat        = stat;

            ViewBag.Title = "فیش های بانکی";
            List <BankReceipt> requests = null;

            try
            {
                Dictionary <string, string> parameter = new Dictionary <string, string>();
                requests = new BankReceipt().GetAll(parameter);
            }
            catch (Exception ex)
            {
                ErrorLog log = new ErrorLog();
                log.Description = ex.Message;
                if (ex.InnerException != null)
                {
                    log.Description += ";" + ex.Message;
                }
                log.ErrorDate  = DateTime.Now;
                log.CustomerId = long.Parse(Session["customer_id"].ToString());
                log.Add();
            }
            return(View(requests));
        }
 private void BalanceChangedHandler(BankReceipt receipt)
 {
     if (receipt.CurrencyName == mCurrency.Name)
     {
         NewBalanceHandler(receipt.Balance);
     }
 }
        // GET: profile/Receipt
        public ActionResult Index()
        {
            ViewBag.Title = "فیش های بانکی";
            List <BankReceipt> requests = null;

            try
            {
                Dictionary <string, string> parameter = new Dictionary <string, string>();
                parameter.Add("customer_id", Session["customer_id"].ToString());
                requests = new BankReceipt().GetAll(parameter);
            }
            catch (Exception ex)
            {
                ErrorLog log = new ErrorLog();
                log.Description = ex.Message;
                if (ex.InnerException != null)
                {
                    log.Description += ";" + ex.Message;
                }
                log.ErrorDate  = DateTime.Now;
                log.CustomerId = long.Parse(Session["customer_id"].ToString());
                log.Add();
            }
            return(View(requests));
        }
        public PartialViewResult DashboardNewBuyRequest()
        {
            List <BankReceipt>          requests  = null;
            Dictionary <string, string> parameter = new Dictionary <string, string>();

            parameter.Add("recipt_type", "1");
            parameter.Add("status", "1");
            requests = new BankReceipt().GetAll(parameter);
            return(PartialView("_partials/DashboardNewBuyRequest", requests));
        }
        public ActionResult Display(string receiptId, string status, string receiptNumber)
        {
            string permissions = "";
            int    stat        = 0;

            if (HasPermission("[receipt]", ref permissions, ref stat))
            {
                return(RedirectToAction("AccessDeny"));
            }
            ViewBag.permissions = permissions;
            ViewBag.stat        = stat;
            ViewBag.Title       = "اطلاعات فیش پرداختی";
            BankReceipt tk = new BankReceipt();

            try
            {
                tk.Id            = long.Parse(receiptId);
                tk               = tk.GetOne();
                tk.ReceiptNumber = receiptNumber;
                tk.Statuse       = int.Parse(status);
                tk.Update();
                if (tk.Statuse == 2)
                {
                    Order ord = new Order();
                    ord.Id = tk.OrderId;
                    ord    = ord.GetOne();
                    CustomerToken token = new CustomerToken();
                    token.Count            = ord.Count;
                    token.CustomerId       = tk.CustomerId;
                    token.OrderId          = tk.OrderId;
                    token.RialPrice        = ord.Rial;
                    token.DollarPrice      = ord.Dollar;
                    token.UroPrice         = ord.Uro;
                    token.PondPrice        = ord.Pond;
                    token.Action           = 1;
                    token.ActionBy         = 1;
                    token.ActionCustomerId = 0;
                    token.Date             = DateTime.Now;
                    token.Add();
                }
                return(RedirectToAction("", "Receipt"));
            }
            catch (Exception ex)
            {
                ErrorLog log = new ErrorLog();
                log.Description = ex.Message;
                if (ex.InnerException != null)
                {
                    log.Description += ";" + ex.Message;
                }
                log.ErrorDate = DateTime.Now;
                log.Add();
            }
            return(View(tk));
        }
    public void BindBankRDetails()
    {
        string page = Request.Url.Segments[Request.Url.Segments.Length - 1].ToString().ToLower();

        if (page != "bankreceipt.aspx")
        {
            GrdBankRDetails.DataSource         = BankReceipt.GetBankReceipt((txtbankcoder.Text.Trim()), fdt, tdt);
            GrdBankRDetails.Columns[7].Visible = false;
        }
        GrdBankRDetails.DataBind();
    }
        public ActionResult UpdateBankReceipt(BankReceipt bankReceipt)
        {
            RBACUser rUser = new RBACUser(Session["UserName"].ToString());

            if (!rUser.HasPermission("BankReceipt_Update"))
            {
                return(Json("U", JsonRequestBehavior.AllowGet));
            }
            List <BankOperationVModel> CashOPVM = new List <BankOperationVModel>();
            var gset = _gsetService.All().LastOrDefault();

            try
            {
                bankReceipt.BranchCode   = Session["BranchCode"].ToString();
                bankReceipt.FinYear      = Session["FinYear"].ToString();
                bankReceipt.bankAccode   = Session["BankAccode"].ToString();
                bankReceipt.NewChart     = _NewChartService.All().ToList().FirstOrDefault(x => x.Accode == bankReceipt.purAccode.Trim());
                bankReceipt.bankNewChart = _NewChartService.All().ToList().FirstOrDefault(x => x.Accode == bankReceipt.bankAccode.Trim());

                using (var transaction = new TransactionScope())
                {
                    try
                    {
                        _BankReceiptAppService.Update(bankReceipt);
                        _BankReceiptAppService.Save();
                        //delete to provision
                        //var entryNo = Convert.ToInt64(bankReceipt.VoucherNo.Substring(2, 8)).ToString().PadLeft(8, '0');
                        var entryNo = bankReceipt.BReceiptNo;
                        LoadDropDown.journalVoucherRemoval("BR", entryNo, bankReceipt.VoucherNo, bankReceipt.FinYear);
                        var sysSet = _sysSetService.All().FirstOrDefault();
                        if (sysSet.CashRule == "O")
                        {
                            LoadDropDown.journalVoucherSave("BR", "I", bankReceipt.BReceiptNo, bankReceipt.VoucherNo, bankReceipt.FinYear, "01", bankReceipt.BranchCode, bankReceipt.BReceiptDate, bankReceipt.bankAccode, Session["UserName"].ToString());
                        }
                        //insert to provision
                        LoadDropDown.journalVoucherSave("BR", "I", bankReceipt.BReceiptNo, bankReceipt.VoucherNo, bankReceipt.FinYear, "01", bankReceipt.BranchCode, bankReceipt.BReceiptDate, bankReceipt.bankAccode, Session["UserName"].ToString());
                        TransactionLogService.SaveTransactionLog(_transactionLogService, "Bank Receipt", "Update", bankReceipt.BReceiptNo, User.Identity.Name);

                        CashOPVM = GetAllRemittances(bankReceipt.BReceiptDate, bankReceipt.BranchCode, bankReceipt.bankAccode);
                        transaction.Complete();
                    }
                    catch (Exception)
                    {
                        transaction.Dispose();
                    }
                }

                return(Json(CashOPVM, JsonRequestBehavior.AllowGet));
            }
            catch (Exception)
            {
                return(Json("0", JsonRequestBehavior.AllowGet));
            }
        }
Exemple #8
0
    protected void btnget_Click(object sender, EventArgs e)
    {
        try
        {
            string BnkCode = txtbankcoder.Text.Trim();

            frdate = txtFromDate.Text.Split('/')[2] + "/" + txtFromDate.Text.Split('/')[1] + "/" + txtFromDate.Text.Split('/')[0];
            todate = txttoDate.Text.Split('/')[2] + "/" + txttoDate.Text.Split('/')[1] + "/" + txttoDate.Text.Split('/')[0];

            tdt = Convert.ToDateTime(todate);
            fdt = Convert.ToDateTime(frdate);

            if (tdt >= fdt)
            {
                DataSet ds = new DataSet();
                ds = BankReceipt.GetBankReceipt(BnkCode, fdt, tdt);
                if (ds.Tables[0].Rows.Count > 0)
                {
                    Session["Data"] = ds.Tables[0];
                    FillReport(ds.Tables[0]);
                    //string page = Request.Url.Segments[Request.Url.Segments.Length - 1].ToString().ToLower();
                    //if (page != "bankreceipt.aspx")
                    //{
                    //    GrdBankRDetails.Columns[7].Visible = false;
                    //}
                    //GrdBankRDetails.DataBind();

                    PnlBankRDetails.Visible = true;
                }
                else
                {
                    PnlBankRDetails.Visible = false;
                    MessageBox("Records Not Available ");
                }
            }
            else
            {
                PnlBankRDetails.Visible = false;
                MessageBox("From Date is greater than To Date");
            }

            txtbankcoder.Focus();
        }
        catch (Exception ex)
        {
            MessageBox(ex.Message.ToString());
            txtbankcoder.Focus();
        }
    }
    protected void btnget_Click(object sender, EventArgs e)
    {
        //Response.Write("Hello");

        string BnkCode = txtbankcoder.Text.Trim();

        frdate = txtFromDate.Text.Split('/')[2] + "/" + txtFromDate.Text.Split('/')[1] + "/" + txtFromDate.Text.Split('/')[0];
        todate = txttoDate.Text.Split('/')[2] + "/" + txttoDate.Text.Split('/')[1] + "/" + txttoDate.Text.Split('/')[0];

        tdt = Convert.ToDateTime(todate);
        fdt = Convert.ToDateTime(frdate);

        if (tdt >= fdt)
        {
            DataSet ds = new DataSet();
            ds = BankReceipt.GetBankReceipt(BnkCode, fdt, tdt);
            if (ds.Tables[0].Rows.Count > 0)
            {
                GrdBankRDetails.DataSource = ds;
                string page = Request.Url.Segments[Request.Url.Segments.Length - 1].ToString().ToLower();
                if (page != "bankreceipt.aspx")
                {
                    GrdBankRDetails.Columns[7].Visible = false;
                }
                GrdBankRDetails.DataBind();

                PnlBankRDetails.Visible = true;
            }
            else
            {
                PnlBankRDetails.Visible = false;
                MessageBox("Records Not Available ");
            }
        }
        else
        {
            PnlBankRDetails.Visible = false;
            MessageBox("From Date is greater than To Date");
        }

        txtbankcoder.Focus();
        UpdatePanel4.Update();
    }
        public ActionResult Display(long Id)
        {
            string permissions = "";
            int    stat        = 0;

            if (HasPermission("[receipt]", ref permissions, ref stat))
            {
                return(RedirectToAction("AccessDeny"));
            }
            ViewBag.permissions = permissions;
            ViewBag.stat        = stat;
            ViewBag.Title       = "اطلاعات فیش پرداختی";
            BankReceipt tk = new BankReceipt();

            try
            {
                tk.Id = Id;
                tk    = tk.GetOne();
                Order ord = new Order();
                ord.Id        = tk.OrderId;
                ord           = ord.GetOne();
                ViewBag.Count = ord.Count;
                //    if (tk.Statuse==2)
                //   {
                //      return RedirectToAction("", "Receipt");
                //d }
            }
            catch (Exception ex)
            {
                ErrorLog log = new ErrorLog();
                log.Description = ex.Message;
                if (ex.InnerException != null)
                {
                    log.Description += ";" + ex.Message;
                }
                log.ErrorDate = DateTime.Now;
                log.Add();
            }
            return(View(tk));
        }
 public ActionResult BankReceiptNoIncreement(BankReceipt model)
 {
     try
     {
         model.BranchCode = Session["BranchCode"].ToString();
         var    brcptNo       = _BankReceiptAppService.All().Where(x => x.BranchCode == model.BranchCode).LastOrDefault();
         int    brNo          = Convert.ToInt32(brcptNo.BReceiptNo);
         string BankReceiptNo = (brNo + 1).ToString();
         string BankRecptNo   = "";
         if (BankReceiptNo.Length > 7)
         {
             BankRecptNo = BankReceiptNo.ToString();
         }
         else
         {
             BankRecptNo = "0" + BankReceiptNo.ToString();
         }
         return(Json(BankRecptNo, JsonRequestBehavior.AllowGet));
     }
     catch (Exception)
     {
         return(Json("0", JsonRequestBehavior.AllowGet));
     }
 }
Exemple #12
0
    protected void btn_Save_Click(object sender, EventArgs e)
    {
        int srcptno;

        docdate = txtdocDate.Text.Split('/')[2] + "/" + txtdocDate.Text.Split('/')[1] + "/" + txtdocDate.Text.Split('/')[0];
        ddt     = Convert.ToDateTime(docdate);
        string BankCode = txtbankcode.Text.Trim();

        if (txtSrcptno.Text.Trim() == "")
        {
            txtSrcptno.Text = "0";
        }
        srcptno = Convert.ToInt32(txtSrcptno.Text.Trim());

        BankReceipt obBnkrcpt = new BankReceipt();

        txtdocno.Text = BankReceipt.Get_BankPaymentDocNo(BankCode);
        // txtdocDate.Text = DateTime.Now.ToString("dd/MM/yyyy");

        if (Session["UserName"] != null)
        {
            try
            {
                obBnkrcpt.BankReceiptID     = Convert.ToInt32(LblBankRID.Text);
                obBnkrcpt.BankCode          = txtbankcode.Text.Trim();
                obBnkrcpt.DocumentNo        = Convert.ToInt32(txtdocno.Text.Trim());
                obBnkrcpt.SerialNo          = 1;
                obBnkrcpt.DocumentDate      = ddt;
                obBnkrcpt.AccountCode       = txtAccode.Text.Trim();;
                obBnkrcpt.PersonInCharge    = txtperson.Text.Trim();
                obBnkrcpt.ReportCode        = txtreportcode.Text.Trim();
                obBnkrcpt.SalesmanReceiptNo = srcptno;
                obBnkrcpt.Cash_Cheque_DD    = DDLCCDD.SelectedItem.Text;
                // obBnkrcpt.Type = txtType.Text.Trim();
                obBnkrcpt.Cheque_DD_NO = txtCCDDNo.Text.Trim();
                obBnkrcpt.Amount       = Convert.ToDecimal(txtAmt.Text.Trim());
                obBnkrcpt.DrawnOn      = txtDrawnon.Text.Trim();
                obBnkrcpt.Remarks      = txtRemark.Text.Trim();
                obBnkrcpt.Isactive     = CheckActive.Checked;
                obBnkrcpt.CreatedBy    = Session["UserName"].ToString();
                obBnkrcpt.strFY        = Convert.ToInt32(strFY);
                obBnkrcpt.Save(out DocNo);
                if (DocNo.ToString() == "-3")
                {
                    MessageBox("Receipt No Already Used.");
                }
                else if (DocNo.ToString() == "-2")
                {
                    MessageBox("Receipt No Not allocated to any SalesMan.");
                }
                else
                {
                    txtdocno.Text = Convert.ToString(DocNo);
                    // MessageBox("Record saved successfully");
                    MessageBox(Constants.save + "\\r\\n Document No: " + (txtdocno.Text));
                    loder("Last saved Document no. : " + txtdocno.Text);
                    // GrdBankRDetails.DataBind();


                    txtbankcode.Text = "";
                    lblbankname.Text = "";
                    txtdocno.Text    = "";
                    txtdocDate.Text  = DateTime.Now.ToString("dd/MM/yyyy");
                    // txtsrno.Text = "";
                    txtAccode.Text        = "";
                    lblaccname.Text       = "";
                    txtperson.Text        = "";
                    txtreportcode.Text    = "";
                    lblacname.Text        = "";
                    txtSrcptno.Text       = "";
                    DDLCCDD.SelectedIndex = 0;
                    // txtType.Text = "";
                    txtCCDDNo.Text      = "";
                    txtAmt.Text         = "";
                    txtDrawnon.Text     = "";
                    lblDrawnonname.Text = "";
                    txtRemark.Text      = "";
                    CheckActive.Checked = true;

                    btn_Save.Text           = "Save";
                    PnlAddBankR.Visible     = true;
                    Pnldate.Visible         = false;
                    PnlBankRDetails.Visible = false;
                }
            }
            catch
            {
            }
        }
    }
Exemple #13
0
        public ActionResult Buy(string money, string reciption_date, string reciption_bank, string reciption_number, string payMode, string descript, string step, string count, string income_price, HttpPostedFileBase cover)
        {
            ViewBag.Title = "خرید توکن";
            if (step == "1")
            {
                int c = 0;
                try
                {
                    c = int.Parse(count);
                }
                catch
                {
                }
                if (c <= 0)
                {
                    ViewBag.step          = 1;
                    ViewBag.DangerMessage = "لطفا تعداد توکن مورد نظر را وارد نمایید";
                }
                else
                {
                    ViewBag.step  = 2;
                    ViewBag.count = c;
                    Setting set = new Setting();
                    set.Id = 1;
                    set    = set.GetOne();

                    long income = ((c * set.Rial) * set.GlobalIncomePercent) / 100;
                    ViewBag.rial = (c * set.Rial) + income;

                    income      = ((c * set.Uro) * set.GlobalIncomePercent) / 100;
                    ViewBag.uro = (c * set.Uro) + income;

                    income         = ((c * set.Dollar) * set.GlobalIncomePercent) / 100;
                    ViewBag.dollar = (c * set.Dollar) + income;

                    income       = ((c * set.Pond) * set.GlobalIncomePercent) / 100;
                    ViewBag.pond = (c * set.Pond) + income;

                    ViewBag.income_price = income;
                }
            }
            if (step == "2")
            {
                try
                {
                    bool valid = true;
                    if (string.IsNullOrEmpty(payMode))
                    {
                        ViewBag.DangerMessage = "لطفا نحوه پرداخت وجه را مشخص نمایید";
                        valid = false;
                    }
                    if (valid)
                    {
                        string attachment = "";
                        if (cover != null)
                        {
                            string rnd = DateTime.Now.Year.ToString("0000") + DateTime.Now.Month.ToString("00") + DateTime.Now.Day.ToString("00") + DateTime.Now.Hour.ToString("00") + DateTime.Now.Minute.ToString("00") + DateTime.Now.Second.ToString("00") + Path.GetExtension(cover.FileName);
                            cover.SaveAs(Server.MapPath("~/media/receipt/" + rnd));
                            attachment = rnd;
                        }

                        Setting set = new Setting();
                        set.Id = 1;
                        set    = set.GetOne();

                        Order o = new Order();
                        o.Currency      = 1;
                        o.IncomePercent = set.GlobalIncomePercent;
                        o.IncomePrice   = long.Parse(income_price);
                        o.Rial          = set.Rial;
                        o.Uro           = set.Uro;
                        o.Dollar        = set.Dollar;
                        o.Pond          = set.Pond;
                        o.Amount        = long.Parse(money);
                        o.Count         = long.Parse(count);
                        o.CreateDate    = DateTime.Now;
                        o.ModifyDate    = DateTime.Now;
                        o.CustomerId    = long.Parse(Session["customer_id"].ToString());
                        o.Description   = "";
                        o.Status        = 1;
                        o.Add();
                        if (payMode == "1")
                        {
                            BankReceipt recipt = new BankReceipt();
                            recipt.Amount        = o.Amount;
                            recipt.BankName      = reciption_bank;
                            recipt.CustomerId    = o.CustomerId;
                            recipt.Description   = descript;
                            recipt.OrderId       = o.Id;
                            recipt.PayDate       = Common.PersianDate.ConvertPersianDateToEnglishDate(reciption_date);
                            recipt.ReciptType    = 1;
                            recipt.Statuse       = 1;
                            recipt.ReceiptNumber = reciption_number;
                            recipt.Attachment    = attachment;
                            recipt.Add();
                            return(RedirectToAction("done", "token"));
                        }
                        if (payMode == "2")
                        {
                            return(RedirectToAction("pay", "Payment", new { Id = o.Id, area = "" }));
                        }
                    }
                }
                catch (Exception ex)
                {
                    ErrorLog log = new ErrorLog();
                    log.Description = ex.Message;
                    if (ex.InnerException != null)
                    {
                        log.Description += ";" + ex.Message;
                    }
                    log.ErrorDate  = DateTime.Now;
                    log.CustomerId = long.Parse(Session["customer_id"].ToString());
                    log.Add();
                }
            }
            return(View());
        }
        public ActionResult UpdateCheRec(ChequeReceipt CheRec)
        {
            RBACUser rUser = new RBACUser(Session["UserName"].ToString());

            if (!rUser.HasPermission("ChequeReceipt_Update"))
            {
                return(Json("U", JsonRequestBehavior.AllowGet));
            }
            using (var transaction = new TransactionScope())
            {
                try
                {
                    var VchrExist   = _vchrMainService.All().FirstOrDefault(s => s.VchrNo == CheRec.VchrNo);
                    var chqArcExist = _chequeArchiveService.All().ToList().Where(x => x.ChqNo == CheRec.oldChqNo).Select(s => s.ChqStatus).ToList();
                    if (chqArcExist.Contains("Receive") && CheRec.ChqStatus == "Receive" || chqArcExist.Contains("Receive") && CheRec.ChqStatus == "Deposit" || chqArcExist.Contains("Deposit") && CheRec.ChqStatus == "Encash" ||
                        chqArcExist.Contains("Encash") && CheRec.ChqStatus != "Dishonour" && CheRec.ChqStatus != "Return")
                    {
                        if (VchrExist == null)
                        {
                            ChequeReceipt cr = new ChequeReceipt();
                            cr            = CheRec;
                            cr.MRTing     = 0;
                            cr.MRTingTime = null;
                            cr.ProjCode   = Session["ProjCode"].ToString();
                            cr.FinYear    = Session["FinYear"].ToString();

                            _chequeReceiptService.Update(cr);
                            _chequeReceiptService.Save();

                            var chqArc = _chequeArchiveService.All().FirstOrDefault(s => s.ChqNo == CheRec.oldChqNo && s.ChqStatus == CheRec.ChqStatus);
                            if (chqArc != null && chqArc.ChqStatus == CheRec.ChqStatus)
                            {
                                chqArc.ChqNo      = CheRec.ChqNo;
                                chqArc.UpdateBy   = CheRec.UpdateBy;
                                chqArc.UpdateDate = CheRec.UpdateDate;
                                chqArc.Reason     = CheRec.Reason;
                                chqArc.Remarks    = CheRec.Remarks;
                                _chequeArchiveService.Update(chqArc);
                                _chequeArchiveService.Save();
                            }
                            else
                            {
                                ChequeArchive ca = new ChequeArchive();
                                ca.ChqStatus  = CheRec.ChqStatus;
                                ca.ChqNo      = CheRec.ChqNo;
                                ca.UpdateBy   = CheRec.UpdateBy;
                                ca.UpdateDate = CheRec.UpdateDate;
                                ca.Reason     = CheRec.Reason;
                                ca.Remarks    = CheRec.Remarks;
                                _chequeArchiveService.Add(ca);
                                _chequeArchiveService.Save();
                            }

                            BankReceipt br = _bankReceiptService.All().Where(s => s.RefNo == CheRec.ChqReceiptNo && s.ChequeNo == CheRec.ChqNo).FirstOrDefault();
                            if (CheRec.ChqStatus == "Deposit")
                            {
                                br.BReceiptDate = CheRec.ChqReceiptDate;
                                br.purAccode    = CheRec.MRAgainst.ToString();
                                br.RefNo        = CheRec.ChqReceiptNo;
                                br.bankAccode   = CheRec.DepositBank;
                                br.ChequeNo     = CheRec.ChqNo;
                                br.ChequeDate   = CheRec.ChqDate;
                                br.Amount       = (double)CheRec.Amount;
                                br.Advance      = false;
                                br.Remarks      = CheRec.Remarks;
                                br.FinYear      = Session["FinYear"].ToString();
                                br.GLPost       = CheRec.GLPost;
                                br.BranchCode   = CheRec.BranchCode;
                                br.VoucherNo    = CheRec.VchrNo;
                                br.SubCode      = CheRec.SubCode;
                                br.bankCode     = CheRec.BankCode;
                                _bankReceiptService.Update(br);
                                _bankReceiptService.Save();
                            }

                            var MoneyR = _moneyReceiptService.All().Where(s => s.MRNo == CheRec.ChqReceiptNo).FirstOrDefault();
                            //insert to provision and money receipt table
                            if (CheRec.ChqStatus == "Encash" && (MoneyR == null ? "000000" : MoneyR.MRNo) != CheRec.ChqReceiptNo)
                            {
                                MoneyReceipt MR = new MoneyReceipt();
                                MR.MRSL        = LoadDropDown.GenerateRecvSlNo(_moneyReceiptService, CheRec.BranchCode, Session["BranchCode"].ToString(), CheRec.ProjCode, Session["VchrConv"].ToString());
                                MR.BranchCode  = (CheRec.BranchCode == null) ? Session["BranchCode"].ToString() : CheRec.BranchCode;
                                MR.ProjCode    = (CheRec.ProjCode == null) ? Session["ProjCode"].ToString() : CheRec.ProjCode;
                                MR.MRNo        = CheRec.ChqReceiptNo;
                                MR.MRDate      = CheRec.ChqReceiptDate;
                                MR.MRAgainst   = CheRec.MRAgainst;
                                MR.VchrNo      = CheRec.VchrNo;
                                MR.PayMode     = "Cq";
                                MR.Posted      = CheRec.PostDated;
                                MR.AdjWithBill = CheRec.AdjWithBill;
                                MR.MRAmount    = CheRec.Amount;
                                MR.Accode      = CheRec.MRAgainst;
                                MR.CustCode    = CheRec.SubCode;
                                MR.FinYear     = Session["FinYear"].ToString();
                                MR.Remarks     = CheRec.Remarks;
                                MR.JobNo       = CheRec.JobNo;
                                MR.Ca_Bk       = CheRec.DepositBank;
                                MR.ChqNo       = CheRec.ChqNo;
                                MR.ChqDate     = CheRec.ChqDate;
                                MR.EncashDate  = CheRec.EncashDate;
                                MR.DepositBank = CheRec.DepositBank;
                                _moneyReceiptService.Add(MR);
                                _moneyReceiptService.Save();

                                var chqExt = _chqRecExtService.All().ToList().Where(s => s.ChqReceiptID == CheRec.ChqReceiptId);
                                foreach (var chqExtitem in chqExt)
                                {
                                    MoneyReceiptExt MRExt = new MoneyReceiptExt();
                                    MRExt.MRId   = _moneyReceiptService.All().OrderBy(s => s.MRId).LastOrDefault().MRId;
                                    MRExt.SaleNo = chqExtitem.BillNo;
                                    MRExt.Amount = chqExtitem.BillAmount;
                                    _moneyReceiptExtService.Add(MRExt);
                                    _moneyReceiptExtService.Save();
                                }
                                LoadDropDown.journalVoucherSave("BR", "I", br.BReceiptNo, CheRec.VchrNo, Session["FinYear"].ToString(), Session["ProjCode"].ToString(), CheRec.BranchCode, CheRec.ChqReceiptDate, CheRec.DepositBank, Session["UserName"].ToString());
                            }
                            ////update to provision
                            //LoadDropDown.journalVoucherRemoval("BR", CheRec.ChqReceiptNo, CheRec.VchrNo, Session["FinYear"].ToString());
                            //LoadDropDown.journalVoucherSave("BR", "I", CheRec.ChqReceiptNo, CheRec.VchrNo, Session["FinYear"].ToString(), Session["ProjCode"].ToString(), CheRec.BranchCode, CheRec.ChqReceiptDate, CheRec.DepositBank, Session["UserName"].ToString());
                            TransactionLogService.SaveTransactionLog(_transactionLogService, "ChequeReceipt", "Update", CheRec.ChqReceiptNo, Session["UserName"].ToString());

                            transaction.Complete();
                            return(Json("1", JsonRequestBehavior.AllowGet));
                        }
                        else
                        {
                            return(Json("2", JsonRequestBehavior.AllowGet));
                        }
                    }
                    else
                    {
                        return(Json("3", JsonRequestBehavior.AllowGet));
                    }
                }
                catch (Exception)
                {
                    transaction.Dispose();
                    return(Json("0", JsonRequestBehavior.AllowGet));
                }
            }
        }
        public ActionResult SaveCheRec(ChequeReceipt CheRec, List <ChequeReceiptExt> AdjBills)
        {
            using (var transaction = new TransactionScope())
            {
                try
                {
                    RBACUser rUser = new RBACUser(Session["UserName"].ToString());
                    if (!rUser.HasPermission("ChequeReceipt_Insert"))
                    {
                        return(Json("X", JsonRequestBehavior.AllowGet));
                    }

                    string BrNo   = "";
                    var    items  = _chequeReceiptService.All().ToList().FirstOrDefault(x => x.ChqReceiptNo == CheRec.ChqReceiptNo);
                    var    chqArc = _chequeArchiveService.All().ToList().Where(x => x.ChqNo == CheRec.ChqNo).Select(s => s.ChqStatus).ToList();
                    if (chqArc.Count == 0 || chqArc.Contains("Deposit") && CheRec.ChqStatus != "Receive" || chqArc.Contains("Encash") && CheRec.ChqStatus != "Deposit" ||
                        chqArc.Contains("Dishonour") && CheRec.ChqStatus != "Encash" || chqArc.Contains("Return") && CheRec.ChqStatus != "Dishonour")
                    {
                        if (items == null)
                        {
                            ChequeReceipt cr = new ChequeReceipt();
                            cr            = CheRec;
                            cr.MRTing     = 0;
                            cr.MRTingTime = null;
                            cr.ProjCode   = Session["ProjCode"].ToString();
                            cr.FinYear    = Session["FinYear"].ToString();
                            _chequeReceiptService.Add(cr);
                            _chequeReceiptService.Save();

                            ChequeArchive CA = new ChequeArchive();
                            CA.ChqNo      = CheRec.ChqNo;
                            CA.ChqStatus  = CheRec.ChqStatus;
                            CA.UpdateBy   = CheRec.UpdateBy;
                            CA.UpdateDate = CheRec.UpdateDate;
                            CA.Reason     = CheRec.Reason;
                            CA.Remarks    = CheRec.Remarks;
                            _chequeArchiveService.Add(CA);
                            _chequeArchiveService.Save();

                            BankReceipt br = new BankReceipt();
                            br.BReceiptNo   = GenerateBankReceiptNo(CheRec.BranchCode);
                            BrNo            = br.BReceiptNo;
                            br.BReceiptDate = CheRec.ChqReceiptDate;
                            br.purAccode    = CheRec.MRAgainst.ToString();
                            br.RefNo        = CheRec.ChqReceiptNo;
                            br.bankAccode   = CheRec.DepositBank;
                            br.ChequeNo     = CheRec.ChqNo;
                            br.ChequeDate   = CheRec.ChqDate;
                            br.Amount       = (double)CheRec.Amount;
                            br.Advance      = false;
                            br.Remarks      = CheRec.Remarks;
                            br.FinYear      = Session["FinYear"].ToString();
                            br.GLPost       = CheRec.GLPost;
                            br.BranchCode   = CheRec.BranchCode;
                            br.VoucherNo    = CheRec.VchrNo;
                            br.SubCode      = CheRec.SubCode;
                            br.bankCode     = CheRec.BankCode;
                            _bankReceiptService.Add(br);
                            _bankReceiptService.Save();

                            if (AdjBills != null)
                            {
                                decimal TotAmt = CheRec.Amount;
                                foreach (var bill in AdjBills)
                                {
                                    ChequeReceiptExt chqExt = new ChequeReceiptExt();
                                    var saleMain            = _salesMainService.All().Where(s => s.SaleNo == bill.BillNo).FirstOrDefault();
                                    chqExt.ChqReceiptID = _chequeReceiptService.All().LastOrDefault().ChqReceiptId;
                                    chqExt.BillNo       = bill.BillNo;
                                    chqExt.BillDate     = saleMain.SaleDate;
                                    if (TotAmt >= bill.BillAmount)
                                    {
                                        chqExt.BillAmount = bill.BillAmount;
                                        TotAmt            = TotAmt - bill.BillAmount;

                                        saleMain.ReceiptNo  = CheRec.ChqReceiptNo;
                                        saleMain.ReceiptAmt = bill.BillAmount;
                                        saleMain.IsPaid     = true;
                                        _salesMainService.Update(saleMain);
                                        _salesMainService.Save();

                                        _chqRecExtService.Add(chqExt);
                                        _chqRecExtService.Save();
                                    }
                                    else
                                    {
                                        if (bill.IsPaid_mre)
                                        {
                                            saleMain.IsPaid  = true;
                                            chqExt.AdjAmount = TotAmt;
                                        }
                                        else
                                        {
                                            saleMain.IsPaid  = false;
                                            chqExt.AdjAmount = TotAmt;
                                        }

                                        chqExt.BillAmount = TotAmt;
                                        _chqRecExtService.Add(chqExt);
                                        _chqRecExtService.Save();

                                        string sql = string.Format("select sm.ReceiptAmt, sm.SaleNo as BillNo, sm.SaleDate as BillDate, (sm.NetAmount - isnull(sum(cre.BillAmount),0)) as Billamount from SalesMain sm left join ChequeReceiptExt cre on cre.BillNo = sm.SaleNo where sm.CustCode = " + CheRec.SubCode + " and sm.IsPaid = 'false'  group by sm.ReceiptAmt, cre.BillNo, sm.NetAmount, sm.SaleNo, sm.SaleDate, cre.BillAmount order by sm.SaleNo");
                                        IEnumerable <billShow> BillLst;
                                        using (AcclineERPContext dbContext = new AcclineERPContext())
                                        {
                                            BillLst = dbContext.Database.SqlQuery <billShow>(sql).ToList();
                                        }
                                        foreach (var Salebill in BillLst)
                                        {
                                            if (Salebill.BillAmount == 0)
                                            {
                                                saleMain.ReceiptNo  = CheRec.ChqReceiptNo;
                                                saleMain.ReceiptAmt = ((Salebill.ReceiptAmt == null) ? 0 : Salebill.ReceiptAmt) + TotAmt;
                                                saleMain.IsPaid     = true;
                                                _salesMainService.Update(saleMain);
                                                _salesMainService.Save();
                                            }
                                        }
                                    }
                                }
                            }

                            TransactionLogService.SaveTransactionLog(_transactionLogService, "ChequeReceipt", "Save", CheRec.ChqReceiptNo, Session["UserName"].ToString());
                            transaction.Complete();
                            return(Json("1", JsonRequestBehavior.AllowGet));
                        }
                        else
                        {
                            return(Json("2", JsonRequestBehavior.AllowGet));
                        }
                    }
                    else
                    {
                        return(Json("3", JsonRequestBehavior.AllowGet));
                    }
                }
                catch (Exception)
                {
                    transaction.Dispose();
                    return(Json("0", JsonRequestBehavior.AllowGet));
                }
            }
        }
    protected void btn_Save_Click(object sender, EventArgs e)
    {
        int srcptno;

        docdate = txtdocDate.Text.Split('/')[2] + "/" + txtdocDate.Text.Split('/')[1] + "/" + txtdocDate.Text.Split('/')[0];
        ddt     = Convert.ToDateTime(docdate);
        string BankCode = txtbankcode.Text.Trim();

        if (txtSrcptno.Text.Trim() == "")
        {
            txtSrcptno.Text = "0";
        }
        srcptno = Convert.ToInt32(txtSrcptno.Text.Trim());

        BankReceipt obBnkrcpt = new BankReceipt();

        txtdocno.Text = BankReceipt.Get_BankPaymentDocNo(BankCode);

        #region Xml Cash Grid Data Insert With XML Formate

        if (PanelPopup.Visible == true)
        {
            string      XMlData;
            XmlDocument doc  = new XmlDocument();
            XmlNode     note = doc.CreateElement("r");
            XmlNode     nd   = doc.CreateElement("t");

            for (int i = 0; i < grdPopup.Rows.Count; i++)
            {
                XmlNode           elem = doc.CreateElement("d");
                HtmlInputCheckBox ch   = (HtmlInputCheckBox)grdPopup.Rows[i].FindControl("chk");
                if (ch.Checked)
                {
                    nd           = doc.CreateElement("n");
                    nd.InnerText = Convert.ToInt32(ch.Checked).ToString();
                    elem.AppendChild(nd);
                    note.AppendChild(elem);

                    nd           = doc.CreateElement("i");
                    nd.InnerText = Convert.ToInt32(((HiddenField)grdPopup.Rows[i].FindControl("hiddenId")).Value).ToString();
                    elem.AppendChild(nd);
                    note.AppendChild(elem);
                }
            }
            obBnkrcpt.UpdatedBy = "!" + note.OuterXml.ToString();
        }
        #endregion

        if (Session["UserName"] != null)
        {
            try
            {
                obBnkrcpt.BankReceiptID     = Convert.ToInt32(LblBankRID.Text);
                obBnkrcpt.BankCode          = txtbankcode.Text.Trim();
                obBnkrcpt.DocumentNo        = Convert.ToInt32(txtdocno.Text.Trim());
                obBnkrcpt.SerialNo          = 1;
                obBnkrcpt.DocumentDate      = ddt;
                obBnkrcpt.AccountCode       = txtAccode.Text.Trim();;
                obBnkrcpt.PersonInCharge    = txtperson.Text.Trim();
                obBnkrcpt.ReportCode        = txtreportcode.Text.Trim();
                obBnkrcpt.SalesmanReceiptNo = srcptno;
                obBnkrcpt.Cash_Cheque_DD    = DDLCCDD.SelectedItem.Text;
                // obBnkrcpt.Type = txtType.Text.Trim();
                obBnkrcpt.Cheque_DD_NO = txtCCDDNo.Text.Trim();
                obBnkrcpt.Amount       = Convert.ToDecimal(txtAmt.Text.Trim());
                obBnkrcpt.DrawnOn      = txtDrawnon.Text.Trim();
                obBnkrcpt.Remarks      = txtRemark.Text.Trim();
                obBnkrcpt.Isactive     = CheckActive.Checked;
                obBnkrcpt.CreatedBy    = Session["UserName"].ToString();
                obBnkrcpt.strFY        = Convert.ToInt32(strFY);
                obBnkrcpt.Save(out DocNo);
                string AccountName = "";
                string Amount      = "";
                AccountName = txtbankcode.Text.Trim();
                partyName   = lblaccname.Text.ToString();
                Amount      = txtAmt.Text.Trim();
                docdate1    = txtdocDate.Text.ToString();



                if (DocNo.ToString() == "-3")
                {
                    MessageBox("Receipt No Already Used.");
                }
                else if (DocNo.ToString() == "-2")
                {
                    MessageBox("Receipt No Not allocated to any SalesMan.");
                }
                else
                {
                    txtdocno.Text = Convert.ToString(DocNo);
                    // MessageBox("Record saved successfully");
                    MessageBox(Constants.save + "\\r\\n Document No: " + (txtdocno.Text));
                    loder("Last saved Document no. : " + txtdocno.Text);


                    GrdBankRDetails.DataBind();


                    txtbankcode.Text = "";
                    lblbankname.Text = "";
                    txtdocno.Text    = "";
                    txtdocDate.Text  = DateTime.Now.ToString("dd/MM/yyyy");
                    // txtsrno.Text = "";
                    txtAccode.Text        = "";
                    lblaccname.Text       = "";
                    txtperson.Text        = "";
                    txtreportcode.Text    = "";
                    lblacname.Text        = "";
                    txtSrcptno.Text       = "";
                    DDLCCDD.SelectedIndex = 0;
                    // txtType.Text = "";
                    txtCCDDNo.Text      = "";
                    txtAmt.Text         = "";
                    txtDrawnon.Text     = "";
                    lblDrawnonname.Text = "";
                    txtRemark.Text      = "";
                    CheckActive.Checked = true;

                    btn_Save.Text           = "Save";
                    PnlAddBankR.Visible     = true;
                    Pnldate.Visible         = false;
                    PnlBankRDetails.Visible = false;
                    PanelPopup.Visible      = false;
                    btnCashEntry.Visible    = false;
                    ddlMonth.Visible        = false;

                    if (lblPhone.Text != "")
                    {
                        Phone = lblPhone.Text;
                    }
                    if (Phone != null)
                    {
                        GetHtmlStringA(Phone, Convert.ToString(obBnkrcpt.SalesmanReceiptNo), AccountName, Amount);
                    }
                }

                BnkCode = txtbankcoder.Text.Trim();

                //Response.Redirect("SendSms.aspx?Phone='8356029474'&DocNo=" + Convert.ToString(DocNo) + "&AccountName='" + AccountName + "'&Amount='" + Amount + "'&BnkCode='" + BnkCode + "'");
            }
            catch
            {
            }
        }
    }
        public SaveResult ExchangeBankReceipt(string token, BankReceipt receipt)
        {
            PortalFacade pf = new PortalFacade(token);

            return(pf.ExchangeBankReceipt(receipt));
        }
        public ActionResult SaveBankReceipt(BankReceipt bankReceipt)
        {
            RBACUser rUser = new RBACUser(Session["UserName"].ToString());

            if (!rUser.HasPermission("BankReceipt_Insert"))
            {
                return(Json("X", JsonRequestBehavior.AllowGet));
            }
            List <BankOperationVModel> CashOPVM = new List <BankOperationVModel>();
            var gset = _gsetService.All().LastOrDefault();

            try
            {
                var IfExit = _BankReceiptAppService.All().Where(x => x.BReceiptNo == bankReceipt.BReceiptNo).FirstOrDefault();
                if (IfExit == null)
                {
                    if (!string.IsNullOrEmpty(bankReceipt.purAccode) && bankReceipt.purAccode.Trim() != "Select Purpose")
                    {
                        bankReceipt.BranchCode   = Session["BranchCode"].ToString();
                        bankReceipt.bankAccode   = Session["BankAccode"].ToString();
                        bankReceipt.FinYear      = Session["FinYear"].ToString();
                        bankReceipt.NewChart     = _NewChartService.All().ToList().FirstOrDefault(x => x.Accode == bankReceipt.purAccode.Trim());
                        bankReceipt.bankNewChart = _NewChartService.All().ToList().FirstOrDefault(x => x.Accode == bankReceipt.bankAccode.Trim());


                        var           openBal       = GetOpenBal(bankReceipt.BReceiptDate);
                        var           rcecBal       = GetAllRemittances(bankReceipt.BReceiptDate, bankReceipt.BranchCode, bankReceipt.bankAccode).Sum(x => x.Amount);
                        var           payTotal      = GetAllPayment(bankReceipt.BReceiptDate, bankReceipt.BranchCode, bankReceipt.bankAccode).Sum(x => x.Amount);
                        var           closBal       = openBal + rcecBal - payTotal;
                        BankOperation bankOperation = new BankOperation(bankReceipt.BReceiptDate, openBal, bankReceipt.Amount, 0.0, closBal, bankReceipt.BranchCode, bankReceipt.FinYear, false, bankReceipt.bankAccode);


                        //cashReceipt.Customer = _CustomerService.All().ToList().FirstOrDefault(x => x.CustCode == cashReceipt.CustCode);
                        //BankOperation bankOperation = new BankOperation(bankReceipt.BReceiptDate, 0.0, 0.0, 0.0, 0.0, bankReceipt.BranchCode, bankReceipt.FinYear, false, bankReceipt.bankAccode);
                        var isAlreadySaved = _BankOperationService.All().ToList().FirstOrDefault(x => x.TrDate.ToString("MM-dd-yyyy") == bankReceipt.BReceiptDate.ToString("MM-dd-yyyy") && x.BranchCode == bankReceipt.BranchCode && x.bankAccode == bankReceipt.bankAccode);

                        if (isAlreadySaved == null)
                        {
                            using (var transaction = new TransactionScope())
                            {
                                try
                                {
                                    _BankOperationService.Add(bankOperation);
                                    _BankOperationService.Save();

                                    _BankReceiptAppService.Add(bankReceipt);
                                    _BankReceiptAppService.Save();

                                    //insert to provision
                                    LoadDropDown.journalVoucherSave("BR", "I", bankReceipt.BReceiptNo, bankReceipt.VoucherNo, bankReceipt.FinYear, "01", bankReceipt.BranchCode, bankReceipt.BReceiptDate, bankReceipt.bankAccode, Session["UserName"].ToString());

                                    TransactionLogService.SaveTransactionLog(_transactionLogService, "BankReceipt", "Save", bankReceipt.BReceiptNo, User.Identity.Name);
                                    CashOPVM = GetAllRemittances(bankReceipt.BReceiptDate, bankReceipt.BranchCode, bankReceipt.bankAccode);
                                    transaction.Complete();
                                }
                                catch (Exception)
                                {
                                    transaction.Dispose();
                                    return(Json("0", JsonRequestBehavior.AllowGet));
                                }
                            }
                            return(Json(CashOPVM, JsonRequestBehavior.AllowGet));
                        }
                        else
                        {
                            var rcecBals = GetAllRemittances(bankReceipt.BReceiptDate, bankReceipt.BranchCode, bankReceipt.bankAccode).Sum(x => x.Amount);
                            isAlreadySaved.RecTotal = rcecBals + bankReceipt.Amount;
                            isAlreadySaved.CloseBal = isAlreadySaved.OpenBal + isAlreadySaved.RecTotal - isAlreadySaved.PayTotal;

                            using (var transaction = new TransactionScope())
                            {
                                try
                                {
                                    _BankOperationService.Update(isAlreadySaved);
                                    _BankReceiptAppService.Save();

                                    _BankReceiptAppService.Add(bankReceipt);
                                    _BankReceiptAppService.Save();
                                    var sysSet = _sysSetService.All().FirstOrDefault();
                                    if (sysSet.CashRule == "O")
                                    {
                                        LoadDropDown.journalVoucherSave("BR", "I", bankReceipt.BReceiptNo, bankReceipt.VoucherNo, bankReceipt.FinYear, "01", bankReceipt.BranchCode, bankReceipt.BReceiptDate, bankReceipt.bankAccode, Session["UserName"].ToString());
                                    }
                                    //insert to provision
                                    LoadDropDown.BankRecalculate(bankReceipt.BReceiptDate, Convert.ToDecimal(bankReceipt.Amount), Session["ProjCode"].ToString(), bankReceipt.BranchCode, bankReceipt.FinYear, bankReceipt.bankAccode);
                                    TransactionLogService.SaveTransactionLog(_transactionLogService, "BankReceipt", "Save", bankReceipt.BReceiptNo, User.Identity.Name);
                                    CashOPVM = GetAllRemittances(bankReceipt.BReceiptDate, bankReceipt.BranchCode, bankReceipt.bankAccode);
                                    transaction.Complete();
                                }
                                catch (Exception)
                                {
                                    transaction.Dispose();
                                    return(Json("0", JsonRequestBehavior.AllowGet));
                                }
                            }

                            return(Json(CashOPVM, JsonRequestBehavior.AllowGet));
                        }
                    }
                    else
                    {
                        return(Json("0", JsonRequestBehavior.AllowGet));
                    }
                }
                else
                {
                    return(Json("1", JsonRequestBehavior.AllowGet));
                }
            }

            catch (Exception)
            {
                return(Json("0", JsonRequestBehavior.AllowGet));
            }
        }
        public ActionResult SaveMROnline(MROnlineVM MrVM, List <MoneyReceiptExt> AdjBills)
        {
            using (var transaction = new TransactionScope())
            {
                try
                {
                    RBACUser rUser = new RBACUser(Session["UserName"].ToString());
                    if (!rUser.HasPermission("MoneyReceiptOnline_Insert"))
                    {
                        return(Json("X", JsonRequestBehavior.AllowGet));
                    }
                    var IfExit = _moneyReceiptService.All().Where(x => x.MRSL == MrVM.MRSL && x.MRNo == MrVM.MRNo).FirstOrDefault();
                    if (IfExit == null)
                    {
                        //var todayDate = DateTime.Now;
                        //CashReceipt CR = new CashReceipt();
                        BankReceipt  br = new BankReceipt();
                        MoneyReceipt MR = new MoneyReceipt();
                        MR.MRSL       = MrVM.MRSL;
                        MR.BranchCode = (MrVM.BranchCode == null) ? Session["BranchCode"].ToString() : MrVM.BranchCode;
                        MR.ProjCode   = (MrVM.ProjCode == null) ? Session["ProjCode"].ToString() : MrVM.ProjCode;
                        MR.MRNo       = MrVM.MRNo;
                        MR.MRDate     = MrVM.MRDate; //.AddHours(todayDate.Hour).AddMinutes(todayDate.Minute).AddSeconds(todayDate.Second).AddMilliseconds(todayDate.Millisecond);
                        MR.MRAgainst  = MrVM.MRAgainst;
                        MR.VchrNo     = MrVM.VchrNo;
                        MR.PayMode    = "Ca";
                        //MR.Posted = MrVM.Posted;
                        //MR.AdjWithBill = MrVM.AdjWithBill;
                        MR.MRAmount = MrVM.MRAmount;
                        MR.Accode   = MrVM.MRAgainst;
                        //if (MrVM.Accode == "0")
                        //{
                        //    MR.Accode = _defACService.All().ToList().FirstOrDefault().CashAc;
                        //}
                        MR.CustCode    = MrVM.CustCode;
                        MR.FinYear     = Session["FinYear"].ToString();
                        MR.Remarks     = MrVM.Remarks;
                        MR.JobNo       = MrVM.JobNo;
                        MR.CollectedBy = MrVM.CollectedBy;
                        MR.GetwayId    = MrVM.GetwayId;
                        MR.DepositBank = MrVM.DepositBank;
                        MR.EncashDate  = MrVM.DepositDate;

                        br.BReceiptNo   = MrVM.MRSL;
                        br.BReceiptDate = (DateTime)MrVM.MRDate;
                        br.purAccode    = MrVM.MRAgainst;
                        br.RefNo        = MrVM.MRNo;
                        br.bankAccode   = MrVM.DepositBank;
                        br.ChequeNo     = "Online";
                        br.ChequeDate   = DateTime.Now;
                        br.Amount       = (double)MrVM.MRAmount;
                        br.Advance      = false;
                        br.Remarks      = MrVM.Remarks;
                        br.FinYear      = Session["FinYear"].ToString();
                        br.GLPost       = false;
                        br.BranchCode   = (MrVM.BranchCode == null) ? Session["BranchCode"].ToString() : MrVM.BranchCode;
                        br.VoucherNo    = MrVM.VchrNo;
                        br.SubCode      = MrVM.CustCode;
                        br.bankCode     = MrVM.DepositBank;


                        //CR.ReceiptNo = MrVM.MRNo;
                        //CR.ReceiptDate = (DateTime)MrVM.MRDate;
                        //CR.purAccode = MrVM.MRAgainst;
                        ////if (MrVM.Accode == "0")
                        ////{
                        ////    CR.purAccode = _defACService.All().ToList().FirstOrDefault().CashAc;
                        ////}
                        //CR.RefNo = MrVM.MRSL;
                        //CR.Amount = (Double)MrVM.MRAmount;
                        //CR.Advance = false;
                        //CR.Remarks = MrVM.Remarks;
                        //CR.GLPost = false;
                        //CR.BranchCode = MrVM.BranchCode;
                        //CR.VoucherNo = MrVM.VchrNo;
                        //CR.JobNo = MrVM.JobNo;
                        //CR.FinYear = Session["FinYear"].ToString();
                        _moneyReceiptService.Add(MR);
                        //_CashReceiptService.Add(CR);
                        //_CashReceiptService.Save();
                        _bankReceiptService.Add(br);

                        _moneyReceiptService.Save();

                        _bankReceiptService.Save();


                        //List<MoneyReceiptExt> MRExtList = new List<MoneyReceiptExt>();

                        if (AdjBills != null)
                        {
                            decimal TotAmt = MrVM.MRAmount;
                            foreach (var bill in AdjBills)
                            {
                                MoneyReceiptExt MRExt    = new MoneyReceiptExt();
                                var             saleMain = _salesMainService.All().Where(s => s.SaleNo == bill.SaleNo).FirstOrDefault();
                                MRExt.MRId        = _moneyReceiptService.All().OrderBy(x => x.MRId).LastOrDefault().MRId;
                                MRExt.SaleNo      = bill.SaleNo;
                                MRExt.InstallNo   = _moneyReceiptExtService.All().OrderBy(s => s.InstallNo).Where(x => x.SaleNo == bill.SaleNo).Select(s => s.InstallNo).LastOrDefault();
                                MRExt.InstallNo   = MRExt.InstallNo + 1;
                                MRExt.InstallDate = DateTime.Now;
                                if (TotAmt >= bill.Amount)
                                {
                                    MRExt.Amount = bill.Amount;
                                    TotAmt       = TotAmt - bill.Amount;

                                    saleMain.ReceiptNo  = MrVM.MRNo;
                                    saleMain.ReceiptAmt = bill.Amount;
                                    saleMain.IsPaid     = true;
                                    _salesMainService.Update(saleMain);
                                    _salesMainService.Save();

                                    _moneyReceiptExtService.Add(MRExt);
                                    _moneyReceiptExtService.Save();
                                }
                                else
                                {
                                    if (bill.IsPaid_mre)
                                    {
                                        saleMain.IsPaid = true;
                                        MRExt.Amount    = TotAmt;
                                    }
                                    else
                                    {
                                        saleMain.IsPaid = false;
                                        MRExt.Amount    = TotAmt;
                                    }

                                    saleMain.ReceiptNo  = MrVM.MRNo;
                                    saleMain.ReceiptAmt = bill.Amount;
                                    //MRExt.Amount = TotAmt;
                                    _moneyReceiptExtService.Add(MRExt);
                                    _moneyReceiptExtService.Save();

                                    string sql = string.Format("select sm.ReceiptAmt,sm.SaleNo, sm.SaleDate, (sm.NetAmount - isnull(sum(mre.Amount),0)) as Billamount from SalesMain sm left join MoneyReceiptExt mre on mre.SaleNo = sm.SaleNo where sm.CustCode = " + MrVM.CustCode + " and sm.IsPaid = 'false'  group by sm.ReceiptAmt, mre.SaleNo, sm.NetAmount, sm.SaleNo, sm.SaleDate, mre.Amount order by sm.SaleNo");
                                    IEnumerable <billShow> BillLst;
                                    using (AcclineERPContext dbContext = new AcclineERPContext())
                                    {
                                        BillLst = dbContext.Database.SqlQuery <billShow>(sql).ToList();
                                    }
                                    foreach (var Salebill in BillLst)
                                    {
                                        if (Salebill.BillAmount == 0)
                                        {
                                            saleMain.ReceiptNo  = MrVM.MRNo;
                                            saleMain.ReceiptAmt = ((Salebill.ReceiptAmt == null) ? 0 : Salebill.ReceiptAmt) + TotAmt;
                                            saleMain.IsPaid     = true;
                                            _salesMainService.Update(saleMain);
                                            _salesMainService.Save();
                                        }
                                    }
                                }
                            }
                        }

                        //var GCa = _AcBrService.All().Where(s => s.BranchCode == MR.BranchCode && s.Ca_Ba == "Ba").Select(x => x.Accode).FirstOrDefault();
                        //if (GCa == null)
                        //{
                        //    var gset = _gsetService.All().LastOrDefault();
                        //    GCa = gset.GCa;
                        //}

                        TransactionLogService.SaveTransactionLog(_transactionLogService, "Online MR", "Save", MR.MRSL, Session["UserName"].ToString());

                        LoadDropDown.journalVoucherSave("BR", "I", MrVM.MRSL, MrVM.VchrNo, Session["FinYear"].ToString(), Session["ProjCode"].ToString(), Session["BranchCode"].ToString(), Convert.ToDateTime(MrVM.MRDate), MrVM.DepositBank, Session["UserName"].ToString());

                        transaction.Complete();
                        return(Json("1", JsonRequestBehavior.AllowGet));
                    }
                    else
                    {
                        transaction.Dispose();
                        return(Json("3", JsonRequestBehavior.AllowGet));
                    }
                }

                catch (Exception)
                {
                    transaction.Dispose();
                    return(Json("0", JsonRequestBehavior.AllowGet));
                }
            }
        }