public async Task <JsonResult> Edit([FromBody] BranchModel branchModel)
        {
            AppIdentityUser _user = await _userManager.FindByNameAsync(User.Identity.Name);

            BrhFrontDeskAccounts  brhFrontDeskAccounts = new BrhFrontDeskAccounts();
            BrhFrontPaymentDetial bfp = new BrhFrontPaymentDetial();
            var rtotal = _context.BrhFrontPaymentDetials.Where(x => x.FrontDeskAccountsId == branchModel.FrontDeskAccountsId).Sum(x => x.PayAmount);

            if (branchModel.PayAmount != 0)
            {
                bfp.FrontDeskAccountsId = branchModel.FrontDeskAccountsId;
                bfp.PayWay    = branchModel.PayWay;
                bfp.PayDate   = branchModel.PayDate;
                bfp.PayAmount = branchModel.PayAmount;
            }
            else
            {
                bfp.PayAmount = 0;
            }

            branchModel.Received = rtotal + bfp.PayAmount;
            if (branchModel.Receivable == branchModel.Received)
            {
                branchModel.IsFinish = true;
            }
            else
            {
                branchModel.IsFinish = false;
            }

            var ParentType = typeof(BrhFrontDeskAccounts);
            var Properties = ParentType.GetProperties();

            foreach (var Propertie in Properties)
            {
                //循环遍历属性
                if (Propertie.CanRead && Propertie.CanWrite)
                {
                    //进行属性拷贝
                    Propertie.SetValue(brhFrontDeskAccounts, Propertie.GetValue(branchModel, null), null);
                }
            }
            if (branchModel.PayAmount != 0)
            {
                brhFrontDeskAccounts.BrhFrontPaymentDetial.Add(bfp);
            }
            _context.Update(brhFrontDeskAccounts);
            _context.SaveChanges();
            Event eve = branchModel;

            return(Json(eve));
        }
        private Event AddFront(BranchModel bm)
        {
            var   brhFrontDeskAccounts = new BrhFrontDeskAccounts();
            Event eve = new Event();

            brhFrontDeskAccounts.Branch              = bm.Branch;
            brhFrontDeskAccounts.Channel             = bm.Channel;
            brhFrontDeskAccounts.Color               = bm.Color;
            brhFrontDeskAccounts.Count               = bm.Count;
            brhFrontDeskAccounts.CustomerCount       = bm.CustomerCount;
            brhFrontDeskAccounts.CustomerName        = bm.CustomerName;
            brhFrontDeskAccounts.EndDate             = bm.EndDate;
            brhFrontDeskAccounts.EnteringDate        = bm.EnteringDate;
            brhFrontDeskAccounts.EnteringStaff       = bm.EnteringStaff;
            brhFrontDeskAccounts.FrontDeskAccountsId = bm.FrontDeskAccountsId;
            brhFrontDeskAccounts.FrontDeskLeader     = bm.FrontDeskLeader;
            brhFrontDeskAccounts.HouseNumber         = bm.HouseNumber;
            brhFrontDeskAccounts.IsFinance           = bm.IsFinance;
            brhFrontDeskAccounts.IsFinish            = bm.IsFinish;
            brhFrontDeskAccounts.IsFront             = bm.IsFront;
            brhFrontDeskAccounts.Note          = bm.Note;
            brhFrontDeskAccounts.Phone         = bm.Phone;
            brhFrontDeskAccounts.Receivable    = bm.Receivable;
            brhFrontDeskAccounts.Received      = bm.Received;
            brhFrontDeskAccounts.RelationStaff = bm.RelationStaff;
            brhFrontDeskAccounts.StartDate     = bm.StartDate;
            brhFrontDeskAccounts.State         = bm.State;
            brhFrontDeskAccounts.Steward       = bm.Steward;
            brhFrontDeskAccounts.StewardLeader = bm.StewardLeader;
            brhFrontDeskAccounts.TotalPrice    = bm.TotalPrice;
            brhFrontDeskAccounts.UnitPrice     = bm.UnitPrice;
            eve.Branch              = bm.Branch;
            eve.Channel             = bm.Channel;
            eve.Color               = bm.Color;
            eve.Count               = bm.Count;
            eve.CustomerCount       = bm.CustomerCount;
            eve.CustomerName        = bm.CustomerName;
            eve.EndDate             = bm.EndDate;
            eve.EnteringDate        = bm.EnteringDate;
            eve.EnteringStaff       = bm.EnteringStaff;
            eve.FrontDeskAccountsId = bm.FrontDeskAccountsId;
            eve.FrontDeskLeader     = bm.FrontDeskLeader;
            eve.HouseNumber         = bm.HouseNumber;
            eve.IsFinance           = bm.IsFinance;
            eve.IsFinish            = bm.IsFinish;
            eve.IsFront             = bm.IsFront;
            eve.Note          = bm.Note;
            eve.Phone         = bm.Phone;
            eve.Receivable    = bm.Receivable;
            eve.Received      = bm.Received;
            eve.RelationStaff = bm.RelationStaff;
            eve.StartDate     = bm.StartDate;
            eve.State         = bm.State;
            eve.Steward       = bm.Steward;
            eve.StewardLeader = bm.StewardLeader;
            eve.TotalPrice    = bm.TotalPrice;
            eve.UnitPrice     = bm.UnitPrice;
            eve.id            = bm.FrontDeskAccountsId.ToString();
            eve.resourceId    = bm.HouseNumber;
            eve.title         = bm.title;
            eve.allDay        = bm.allDay;
            eve.start         = bm.StartDate.ToShortDateString();
            eve.end           = bm.EndDate.ToShortDateString();
            eve.className     = bm.className;
            eve.editable      = bm.editable;
            eve.isTitle       = bm.isTitle;
            eve.houseType     = bm.houseType;
            if (bm.PayAmount != 0)
            {
                var bfp = new BrhFrontPaymentDetial();
                bfp.FrontDeskAccountsId = brhFrontDeskAccounts.FrontDeskAccountsId;
                bfp.PayWay    = bm.PayWay;
                bfp.PayDate   = bm.PayDate;
                bfp.PayAmount = bm.PayAmount;
                brhFrontDeskAccounts.BrhFrontPaymentDetial.Add(bfp);
            }
            _context.Add(brhFrontDeskAccounts);
            _context.SaveChanges();
            return(eve);
        }
        public async Task <JsonResult> Create([FromBody] BranchModel branchModel)
        {
            AppIdentityUser _user = await _userManager.FindByNameAsync(User.Identity.Name);

            List <Event> eves = new List <Event>();

            if (branchModel.StartDate.Month == branchModel.EndDate.AddDays(-1).Month)
            {
                var frontId = Convert.ToInt64(_user.BranchId.ToString() + ConvertJson.DateTimeToStamp(DateTime.Now).ToString());
                branchModel.EnteringDate        = TimeZoneInfo.ConvertTime(DateTime.Now, TimeZoneInfo.FindSystemTimeZoneById("China Standard Time"));
                branchModel.FrontDeskAccountsId = frontId;
                if (branchModel.PayAmount != 0)
                {
                    branchModel.Received = branchModel.PayAmount;
                }
                else
                {
                    branchModel.Received = 0;
                }
                if (branchModel.Receivable == branchModel.Received)
                {
                    branchModel.IsFinish = true;
                }

                eves.Add(AddFront(branchModel));

                if (branchModel.SelectVal.Count > 0)
                {
                    foreach (var sel in branchModel.SelectVal)
                    {
                        branchModel.FrontDeskAccountsId += 1;
                        branchModel.HouseNumber          = sel;
                        eves.Add(AddFront(branchModel));
                    }
                }
                return(Json(eves));
            }
            else
            {
                var count1   = (branchModel.EndDate.AddDays(1 - branchModel.EndDate.Day) - branchModel.StartDate).Days;
                var count2   = (branchModel.EndDate - branchModel.EndDate.AddDays(1 - branchModel.EndDate.Day)).Days;
                var total    = (branchModel.EndDate - branchModel.StartDate).Days;
                var frontId1 = Convert.ToInt64(_user.BranchId.ToString() + ConvertJson.DateTimeToStamp(DateTime.Now).ToString());
                BrhFrontDeskAccounts brhFrontDeskAccounts1 = new BrhFrontDeskAccounts();
                BrhFrontDeskAccounts brhFrontDeskAccounts2 = new BrhFrontDeskAccounts();
                decimal payAmount1 = 0;
                decimal payAmount2 = 0;

                if (branchModel.PayAmount != 0)
                {
                    payAmount1 = branchModel.PayAmount / total * count1;
                    payAmount2 = branchModel.PayAmount / total * count2;
                }
                else
                {
                    payAmount1 = 0;
                    payAmount2 = 0;
                }
                branchModel.EnteringDate = TimeZoneInfo.ConvertTime(DateTime.Now, TimeZoneInfo.FindSystemTimeZoneById("China Standard Time"));
                var totalPrice = branchModel.TotalPrice;
                var receivable = branchModel.Receivable;
                var received   = branchModel.Received;
                var startDate  = branchModel.StartDate;
                var endDate    = branchModel.EndDate;

                branchModel.FrontDeskAccountsId = frontId1;
                branchModel.TotalPrice          = totalPrice / total * count1;
                branchModel.Receivable          = receivable / total * count1;
                branchModel.Received            = payAmount1;
                if (branchModel.Receivable == branchModel.Received)
                {
                    branchModel.IsFinish = true;
                }
                else
                {
                    branchModel.IsFinish = false;
                }
                branchModel.Count     = count1;
                branchModel.StartDate = startDate;
                branchModel.EndDate   = endDate.AddDays(1 - endDate.Day);
                branchModel.PayAmount = payAmount1;
                eves.Add(AddFront(branchModel));
                var tempNumber = branchModel.HouseNumber;
                if (branchModel.SelectVal.Count > 0)
                {
                    branchModel.FrontDeskAccountsId += 10000;
                    foreach (var sel in branchModel.SelectVal)
                    {
                        branchModel.FrontDeskAccountsId += 1;
                        branchModel.HouseNumber          = sel;
                        eves.Add(AddFront(branchModel));
                    }
                }

                branchModel.FrontDeskAccountsId = frontId1 + 1;
                branchModel.HouseNumber         = tempNumber;
                branchModel.TotalPrice          = totalPrice / total * count2;
                branchModel.Receivable          = receivable / total * count2;
                branchModel.Received            = payAmount2;
                if (branchModel.Receivable == branchModel.Received)
                {
                    branchModel.IsFinish = true;
                }
                else
                {
                    branchModel.IsFinish = false;
                }
                branchModel.Count     = count2;
                branchModel.StartDate = endDate.AddDays(1 - endDate.Day);
                branchModel.EndDate   = endDate;
                branchModel.PayAmount = payAmount2;
                eves.Add(AddFront(branchModel));
                if (branchModel.SelectVal.Count > 0)
                {
                    foreach (var sel in branchModel.SelectVal)
                    {
                        branchModel.FrontDeskAccountsId += 1;
                        branchModel.HouseNumber          = sel;
                        eves.Add(AddFront(branchModel));
                    }
                }

                return(Json(eves));
            }
        }