Example #1
0
 public static void Create(LogsMoneyInfo info)
 {
     DataProvider.Instance().MoneyLogs_Insert(info.TienHVNop, info.TienBanGoi, info.NoteChuyenKhoan, info.NguoiTao, info.NgayThucThu, info.KieuThanhToan, info.DiaPhuong, info.CreateDate, info.ContactId, info.Code, info.ChuDuToan, info.TrangThai, info.HistoryId);
 }
Example #2
0
        public ActionResult FixedMoneyManagerConsulant(FormCollection forms)
        {
            var valueRow = Request["countRowTable"].ToInt32();

            List <ContactFixedMoney> lstInfoCts       = new List <ContactFixedMoney>();
            AllDealMoney             listDealSesssion = new AllDealMoney();

            listDealSesssion.pricing  = new List <ContactInfoMoney>();
            listDealSesssion.deposit  = new List <ContactInfoMoney>();
            listDealSesssion.transfer = new List <ContactInfoMoneyTranfer>();
            listDealSesssion.balance  = new List <ContactInfoMoneyBalance>();

            string notes = Request["NotesManagerConsulant"].ToString();

            var userTVTS = UserContext.GetCurrentUser();

            for (int i = 1; i <= valueRow; i++)
            {
                ContactInfoMoney infoCts = new ContactInfoMoney();

                infoCts.ContactId      = Request["CodeCts_" + i.ToString()].ToString();
                infoCts.UserName       = Request["NameCts_" + i.ToString()].ToString();
                infoCts.UserPhone      = forms.Get("MobileCts_" + i.ToString()).ToString();
                infoCts.UserEmail      = Request["EmailCts_" + i.ToString()].ToString();
                infoCts.TransactionBy  = "CRM";
                infoCts.Reason         = Request["NotesManagerConsulant"].ToString();
                infoCts.OtherInfo      = "";
                infoCts.Time           = DateTime.Now.ToString();
                infoCts.DisableWarning = true;

                if (forms.Get("FeeEdu_" + i.ToString()).ToInt32() > forms.Get("FeeEduChange_" + i.ToString()).ToInt32())
                {
                    int feeEdu       = forms.Get("FeeEdu_" + i.ToString()).ToInt32();
                    int feeEduChange = forms.Get("FeeEduChange_" + i.ToString()).ToInt32();
                    int feeReturn    = forms.Get("FeeReturn_" + i.ToString()).ToInt32();

                    infoCts.Value = (forms.Get("FeeEdu_" + i.ToString()).ToInt32()
                                     - forms.Get("FeeEduChange_" + i.ToString()).ToInt32()
                                     - forms.Get("FeeReturn_" + i.ToString()).ToInt32()).ToString();
                    if (infoCts.Value != "0")
                    {
                        listDealSesssion.pricing.Add(infoCts);
                    }
                }
                else if (forms.Get("FeeEdu_" + i.ToString()).ToInt32() < forms.Get("FeeEduChange_" + i.ToString()).ToInt32())
                {
                    infoCts.Value = (forms.Get("FeeEduChange_" + i.ToString()).ToInt32()
                                     - forms.Get("FeeEdu_" + i.ToString()).ToInt32()
                                     - forms.Get("FeeReturn_" + i.ToString()).ToInt32()).ToString();
                    listDealSesssion.deposit.Add(infoCts);
                }
                else
                {
                    //nothing
                }

                if (forms.Get("FeeReturn_" + i.ToString()).ToInt32() > 0)
                {
                    //tranfer
                    ContactInfoMoneyTranfer infoCtsTranfer = new ContactInfoMoneyTranfer();

                    infoCtsTranfer.ContactId      = Request["CodeCts_" + i.ToString()].ToString();
                    infoCtsTranfer.Value          = Request["NameCts_" + i.ToString()].ToString();
                    infoCtsTranfer.UserPhone      = forms.Get("MobileCts_" + i.ToString()).ToString();
                    infoCtsTranfer.UserEmail      = Request["EmailCts_" + i.ToString()].ToString();
                    infoCtsTranfer.TransactionBy  = "CRM";
                    infoCtsTranfer.Reason         = Request["NotesManagerConsulant"].ToString();
                    infoCtsTranfer.OtherInfo      = "";
                    infoCtsTranfer.Time           = DateTime.Now.ToString();
                    infoCtsTranfer.DisableWarning = true;

                    infoCtsTranfer.Value = forms.Get("FeeReturn_" + i.ToString()).ToString();
                    listDealSesssion.transfer.Add(infoCtsTranfer);

                    //balance
                    ContactInfoMoneyBalance infoCtsBalance = new ContactInfoMoneyBalance();

                    infoCtsBalance.ContactId      = Request["CodeCts_" + i.ToString()].ToString();
                    infoCtsBalance.Value          = Request["NameCts_" + i.ToString()].ToString();
                    infoCtsBalance.UserPhone      = forms.Get("MobileCts_" + i.ToString()).ToString();
                    infoCtsBalance.UserEmail      = Request["EmailCts_" + i.ToString()].ToString();
                    infoCtsBalance.Type           = "-1";
                    infoCtsBalance.BillNumber     = "0";
                    infoCtsBalance.TransactionBy  = "CRM";
                    infoCtsBalance.Reason         = Request["NotesManagerConsulant"].ToString();
                    infoCtsBalance.OtherInfo      = "";
                    infoCtsBalance.Time           = DateTime.Now.ToString();
                    infoCtsBalance.DisableWarning = true;

                    infoCtsBalance.Value = forms.Get("FeeReturn_" + i.ToString()).ToString();
                    listDealSesssion.balance.Add(infoCtsBalance);
                }
            }

            JsonResult retVal = new JsonResult()
            {
                Data = listDealSesssion, JsonRequestBehavior = JsonRequestBehavior.AllowGet
            };
            string sRetVal = JsonConvert.SerializeObject(retVal.Data);

            //===============Goi API LocMX =============//

            string username       = "******";
            string password       = "******";
            string linkApiPayment = ConfigurationManager.AppSettings["LinkAPIPayment"].ToString();

            var client = new RestClient(linkApiPayment);

            client.Authenticator = new HttpBasicAuthenticator(username, password);
            var request = new RestRequest("Tcoin/CrmTransactionBatch", Method.POST);

            request.AddHeader("Accept", "application/json");

            request.AddParameter("key", "6WxDCFTjlgjH6L6YLA03LNW1JbJbCZGCLHa0DIXT");
            request.AddParameter("data", sRetVal);
            request.JsonSerializer.ContentType = "application/json; charset=utf-8";

            IRestResponse           response = client.Execute(request);
            string                  s        = response.Content;
            ReturnApiCallFixedMoney output   = JsonConvert.DeserializeObject <ReturnApiCallFixedMoney>(s);

            //Neu goi thanh cong tao log save lai giao dich trong bang LogFixedMoney
            if (output.status_code == "DONE_ALL")
            {
                SqlTransaction tran = null;
                try
                {
                    string        conString = getNewConnection;
                    SqlConnection conn      = new SqlConnection(conString);
                    conn.Open();
                    tran = conn.BeginTransaction();

                    //Update FeeEdu, PackageSale
                    for (int i = 1; i <= valueRow; i++)
                    {
                        var sCode   = Request["CodeCts_" + i.ToString()].ToString();
                        var sFeeEdu = Request["FeeEduChange_" + i.ToString()].ToInt32();
                        ContactLevelInfoRepository.Update_FeeEdu_PackagePriceSale(sCode, sFeeEdu);
                    }
                    var log = new LogFixedMoney
                    {
                        Description         = sRetVal,
                        Notes               = notes,
                        UserConsulantCreate = userTVTS.UserName,
                        CreateDate          = DateTime.Now
                    };

                    LogFixMoneyRepository.Create(log, tran);

                    int idMax = GetIdentity("LogFixMoney", conn, tran); //lay ID max trong bang LogFixMoney

                    foreach (var a in listDealSesssion.pricing)
                    {
                        var logmoney_pricing = new LogsMoneyInfo
                        {
                            TienHVNop       = a.Value.ToInt32(),
                            TienBanGoi      = 0, //hoi lai
                            NoteChuyenKhoan = a.Reason,
                            NguoiTao        = a.UserName,
                            NgayThucThu     = DateTime.Now,
                            KieuThanhToan   = 0,
                            DiaPhuong       = 1,
                            CreateDate      = DateTime.Now,
                            ContactId       = 0,
                            Code            = a.ContactId,
                            ChuDuToan       = 0,
                            TrangThai       = true,
                            HistoryId       = 0,
                            IdFixMoney      = idMax
                        };
                        MoneyLogsRepository.Create(logmoney_pricing, tran);
                    }

                    foreach (var a in listDealSesssion.deposit)
                    {
                        var logmoney_deposit = new LogsMoneyInfo
                        {
                            TienHVNop       = a.Value.ToInt32(),
                            TienBanGoi      = 0, //hoi lai
                            NoteChuyenKhoan = a.Reason,
                            NguoiTao        = a.UserName,
                            NgayThucThu     = DateTime.Now,
                            KieuThanhToan   = 0,
                            DiaPhuong       = 1,
                            CreateDate      = DateTime.Now,
                            ContactId       = 0,
                            Code            = a.ContactId,
                            ChuDuToan       = 0,
                            TrangThai       = true,
                            HistoryId       = 0,
                            IdFixMoney      = idMax
                        };
                        MoneyLogsRepository.Create(logmoney_deposit, tran);
                    }

                    foreach (var a in listDealSesssion.transfer)
                    {
                        var logmoney_transfer = new LogsMoneyInfo
                        {
                            TienHVNop       = a.Value.ToInt32(),
                            TienBanGoi      = 0, //hoi lai
                            NoteChuyenKhoan = a.Reason,
                            NguoiTao        = "",
                            NgayThucThu     = DateTime.Now,
                            KieuThanhToan   = 0,
                            DiaPhuong       = 1,
                            CreateDate      = DateTime.Now,
                            ContactId       = 0,
                            Code            = a.ContactId,
                            ChuDuToan       = 0,
                            TrangThai       = true,
                            HistoryId       = 0,
                            IdFixMoney      = idMax
                        };
                        MoneyLogsRepository.Create(logmoney_transfer, tran);
                    }
                    tran.Commit();

                    ViewBag.Message = "Giao dịch chuyển tiền thành công";

                    return(FixedMoneyManagerConsulant());
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message + " " + ex.Data);
                    if (tran != null)
                    {
                        tran.Rollback();
                    }
                    ViewBag.Message = "Có lỗi xảy ra, vui lòng thực hiện lại";
                    return(FixedMoneyManagerConsulant());
                }
            }
            else
            {
                //return lỗi ko thành công.
                ViewBag.Message = "Giao dịch chuyển tiền không thành công: " + output.msg;
                return(FixedMoneyManagerConsulant());
            }
        }