예제 #1
0
        public SaveResponse Create(IUnitOfWork uow, SaveRequest <MyRow> request)
        {
            var ListEmp = request.Entity.UserIdList;

            foreach (var item in ListEmp)
            {
                MyRow deductions = new MyRow
                {
                    Deduction        = request.Entity.Deduction,
                    DeductionsDate   = request.Entity.DeductionsDate,
                    DeductionsReason = request.Entity.DeductionsReason,
                    UserId           = item
                };
                uow.Connection.Insert <MyRow>(deductions);
                var BalanceAccountListRow = uow.Connection.List <BalanceAccountRow>().Where(x => x.User_ID == item).ToList();

                DateTime DeductionsDateR = request.Entity.DeductionsDate.Value;

                foreach (var balance in BalanceAccountListRow)
                {
                    DateTime DateEnd    = balance.DateEnd.Value;
                    DateTime DateBeginn = balance.DateBeginn.Value;

                    if (DeductionsDateR.Ticks >= DateBeginn.Ticks && DeductionsDateR.Ticks <= DateEnd.Ticks)
                    {
                        balance.NetIncome = balance.NetIncome - request.Entity.Deduction;
                        var EditedRow = BalanceAccountListRow.FirstOrDefault(x => x.User_ID == item && x.DateEnd == DateEnd && x.DateBeginn == DateBeginn);
                        uow.Connection.UpdateById <BalanceAccountRow>(EditedRow);
                    }
                }
            }

            return(new SaveResponse());
        }
예제 #2
0
        public SaveResponse Update(IUnitOfWork uow, SaveRequest <MyRow> request)
        {
            MyRow    deductionsEdit        = uow.Connection.List <MyRow>().FirstOrDefault(x => x.Id == int.Parse(request.Entity.Id.ToString()));
            var      UserId                = request.Entity.UserId;
            DateTime DeductionsDateR       = request.Entity.DeductionsDate.Value;
            DateTime DeductionsDate_DB     = deductionsEdit.DeductionsDate.Value;
            var      DeductionDb           = deductionsEdit.Deduction;
            var      DeductionR            = request.Entity.Deduction;
            var      BalanceAccountListRow = uow.Connection.List <BalanceAccountRow>().Where(x => x.User_ID == UserId).ToList();

            if (DeductionsDate_DB != DeductionsDateR && DeductionR == DeductionDb) // Modify on Only Deducions Date
            {
                foreach (var balance in BalanceAccountListRow)
                {
                    DateTime DateEnd    = balance.DateEnd.Value;
                    DateTime DateBeginn = balance.DateBeginn.Value;

                    if (DeductionsDate_DB.Ticks >= DateBeginn.Ticks && DeductionsDate_DB.Ticks <= DateEnd.Ticks)
                    {
                        balance.NetIncome += deductionsEdit.Deduction;

                        var EditedRow = BalanceAccountListRow.FirstOrDefault(x => x.User_ID == UserId && x.DateEnd == DateEnd && x.DateBeginn == DateBeginn);
                        uow.Connection.UpdateById <BalanceAccountRow>(EditedRow);
                    }
                    if (DeductionsDateR.Ticks > DateBeginn.Ticks && DeductionsDateR.Ticks < DateEnd.Ticks)
                    {
                        balance.NetIncome -= request.Entity.Deduction;
                        var EditedRow = BalanceAccountListRow.FirstOrDefault(x => x.User_ID == UserId && x.DateEnd == DateEnd && x.DateBeginn == DateBeginn);
                        uow.Connection.UpdateById <BalanceAccountRow>(EditedRow);
                    }
                }
            }

            if (DeductionR != DeductionDb && DeductionsDate_DB == DeductionsDateR)  // Modify on Deduction Only
            {
                foreach (var balance in BalanceAccountListRow)
                {
                    DateTime DateEnd    = balance.DateEnd.Value;
                    DateTime DateBeginn = balance.DateBeginn.Value;
                    if (DeductionsDateR.Ticks >= DateBeginn.Ticks && DeductionsDateR.Ticks <= DateEnd.Ticks)
                    {
                        balance.NetIncome += deductionsEdit.Deduction;
                        balance.NetIncome -= request.Entity.Deduction;
                        var EditedRow = BalanceAccountListRow.FirstOrDefault(x => x.User_ID == UserId && x.DateEnd == DateEnd && x.DateBeginn == DateBeginn);
                        uow.Connection.UpdateById <BalanceAccountRow>(EditedRow);
                    }
                }
            }

            if (DeductionR != DeductionDb && DeductionsDate_DB != DeductionsDateR) // Modifiy on Date and Dedudction
            {
                foreach (var balance in BalanceAccountListRow)
                {
                    DateTime DateEnd    = balance.DateEnd.Value;
                    DateTime DateBeginn = balance.DateBeginn.Value;

                    if (DeductionR != DeductionDb)
                    {
                        //2lly h check 3lih
                        if (DeductionsDate_DB.Ticks >= DateBeginn.Ticks && DeductionsDate_DB.Ticks <= DateEnd.Ticks) // Modify on Deduction
                        {
                            balance.NetIncome += DeductionDb /*request.Entity.Deduction*/;
                            var EditedRow = BalanceAccountListRow.FirstOrDefault(x => x.User_ID == UserId && x.DateEnd == DateEnd && x.DateBeginn == DateBeginn);
                            uow.Connection.UpdateById <BalanceAccountRow>(EditedRow);
                        }
                    }
                }
                foreach (var balance in BalanceAccountListRow)
                {
                    DateTime DateEnd    = balance.DateEnd.Value;
                    DateTime DateBeginn = balance.DateBeginn.Value;
                    if (DeductionsDate_DB != DeductionsDateR)
                    {
                        if (DeductionsDateR.Ticks >= DateBeginn.Ticks && DeductionsDateR.Ticks <= DateEnd.Ticks) // Modify on Deduction Date
                        {
                            balance.NetIncome -= DeductionR;
                            var EditedRow = BalanceAccountListRow.FirstOrDefault(x => x.User_ID == UserId && x.DateEnd == DateEnd && x.DateBeginn == DateBeginn);
                            uow.Connection.UpdateById <BalanceAccountRow>(EditedRow);
                        }
                    }
                }
            }

            return(new MyRepository().Update(uow, request));
        }