public RegularTeachingBussiness(RegularClassManagement regularClass, TraineeManagementBussiness traineeManagement)
        {
            RegularClasses        = regularClass;
            RegularClassOperation = new RegularClassOperationBussiness(regularClass);
            RegularClasses.ChangeRegularClassEvent += (operation, model) =>
            {
                if (operation == Common.OperationType.Select)
                {
                    RegularTrainee.GetTrainees(model.ClassID);
                }
                else
                {
                    RegularClassOperation.Enable(operation, model);
                }
            };

            TraineeManagement = traineeManagement;
            RegularTrainee    = new RegularTraineeBussiness(TraineeManagement.Dal);
            RegularTrainee.TraineeChangedEvent += (opreation, trainee, newIndex) =>
            {
                if (opreation == Common.OperationType.Add && trainee.IsNew)
                {
                    TraineeManagement.AddTrainee(trainee);
                }
                else if (opreation == Common.OperationType.Update || opreation == Common.OperationType.Delete)
                {
                    TraineeManagement.UpdateTrainee(trainee);
                }
                TraineeCountChanged?.Invoke(null, EventArgs.Empty);
            };
        }
 public void FillPresence(List <NameCallingModel> callings, RegularClassManagement regular, string traineeID)
 {
     Details = new List <PresenceDetail>();
     foreach (NameCallingModel item in callings ?? new List <NameCallingModel>())
     {
         PresenceDetail detail = new PresenceDetail();
         detail.ClassDate = item.ClassDate;
         detail.ClassID   = item.ClassID;
         detail.ClassName = regular.GetClassNameInHis(item.ClassID, item.ClassDate);
         if (item.PresenceTrainees.Contains(traineeID))
         {
             detail.State = CallingState.Presence;
         }
         else if (item.LeaveTrainees.Contains(traineeID))
         {
             detail.State = CallingState.Leave;
         }
         else if (item.AbsenceTrainees.Contains(traineeID))
         {
             detail.State = CallingState.Absence;
         }
         else
         {
             detail.State = CallingState.Giving;
         }
         Details.Add(detail);
     }
 }
示例#3
0
 public TeachingStatisticBussiness(NameCallingBussiness calling, RegularClassManagement regularClass, BlockClassManagement blocks)
 {
     _calling             = calling;
     _regularClass        = regularClass;
     _blocks              = blocks;
     _teachingCountGroups = new List <TeachingCountGroup>();
 }
示例#4
0
        public MainWindowBussiness(string userID)
        {
            RegularClassManagement     regular = new RegularClassManagement();
            BlockClassManagement       block   = new BlockClassManagement();
            TraineeManagementBussiness trainee = new TraineeManagementBussiness();

            Teaching    = new TeachingManagementBussiness(regular, trainee, block);
            Calling     = new NameCallingMangementBussiness(block, regular, trainee.Dal, trainee);
            Payment     = new PaymentManagementBussiness(block, regular, trainee.Dal, Calling.NameCalling);
            Overdue     = new OverdueManagementBussiness(block, regular);
            Statistic   = new StatisticManagementBussiness(Payment.PaymentDAL, trainee, block, regular, Calling.NameCalling, trainee.Dal, Overdue);
            UserSetting = new UserSettingManagementBussiness(userID);

            //新增常规班缴费时,如果剩余课时回正,删除催费信息
            //新增独舞课缴费时,删除对应的催费信息
            //添加点名信息时,出勤/旷课会扣减剩余课时,如果剩余课时<=0,增加催费信息
            //删除点名信息,原来记录为出勤/旷课的学员会剩余课时+1,如果剩余课时>0,删除催费信息
            //在独舞班添加学员时,增加催费记录
            //在学员常规班发生变化时,如果存在常规班变化,更新催费记录中的金额和班级
            //在常规班级信息发生改变时,如果学费发生了变化,更新催费记录中所有该班级的未交费信息的金额
            //如果学员删除,会同时删除该学员当前的所有催费提醒
            //如果学员恢复,会根据常规剩余课数和独舞课的缴费情况,重新激活催费提醒
            Payment.ClassPayment.ClassFee.OverdueChangedEvent   += Overdue.Refresh;
            Calling.NameCalling.OverdueChangedEvent             += Overdue.Refresh;
            Teaching.Block.BlockTrainee.OverdueChangedEvent     += Overdue.Refresh;
            Teaching.Regular.RegularTrainee.OverdueChangedEvent += Overdue.Refresh;
            Teaching.Regular.RegularClasses.OverdueChangedEvent += Overdue.Refresh;

            Teaching.TraineeCountChanged += (sender, args) => Statistic.General.RefreshTraineeCount();

            Payment.ClassPayment.CapitalChanged     += (sender, args) => Statistic.General.RefreshCurrentCapital();
            Payment.NormalPayment.CapitalChanged    += (sender, args) => Statistic.General.RefreshCurrentCapital();
            Statistic.Finance.GeneralCapitalChanged += (sender, args) => Statistic.General.RefreshCurrentCapital();
        }
        public ClassPaymentBussiness(BlockClassManagement block, RegularClassManagement regular, TraineeInfo trainee, PaymentInfo dal, NameCallingBussiness nameCalling)
        {
            ClassFee   = new ClassFeeBussiness(block, regular, trainee, dal);
            TeacherFee = new TeacherFeeBussiness(nameCalling);

            ClassFee.GeneralCapitalChanged   += (sender, args) => CapitalChanged?.Invoke(sender, args);
            TeacherFee.GeneralCapitalChanged += (sender, args) => CapitalChanged?.Invoke(sender, args);
        }
 public GeneralAndExportBussiness(TraineeInfo traineeDal, GeneralInfo generalDal, BlockClassManagement blocks,
                                  RegularClassManagement regulars, TraineeManagementBussiness trainees)
 {
     _traineeDal   = traineeDal;
     _generalDal   = generalDal;
     _billExporter = new PDFExporterBill(blocks, regulars, trainees);
     _dbRelated    = new DBExporterGeneral();
 }
        public TeachingManagementBussiness(RegularClassManagement regular, TraineeManagementBussiness traineeManagement, BlockClassManagement block)
        {
            Regular = new RegularTeachingBussiness(regular, traineeManagement);
            Block   = new BlockTeachingBussiness(block, traineeManagement);
            Others  = new OthersBussiness(traineeManagement.Dal);

            Regular.TraineeCountChanged += (sender, args) => TraineeCountChanged?.Invoke(sender, args);
            Block.TraineeCountChanged   += (sender, args) => TraineeCountChanged?.Invoke(sender, args);
        }
 public EditNameCallingBussiness(NameCallingBussiness calling, BlockClassManagement block, RegularClassManagement regular, ClassSelecterBussiness classSelecter,
                                 TraineeManagementBussiness trainees)
 {
     Calling       = calling;
     ClassSelecter = classSelecter;
     _block        = block;
     _regular      = regular;
     _trainees     = trainees;
 }
示例#9
0
        public ClassFeeBussiness(BlockClassManagement block, RegularClassManagement regular, TraineeInfo trainee, PaymentInfo dal)
        {
            ClassSelecter = new ClassSelecterBussiness(regular, block, new RegularTraineeBussiness(trainee), new BlockTraineeBussiness(trainee), true);
            CountPayment  = new PaymentInCountBussiness();
            _dal          = dal;

            ClassSelecter.ClassTypeChangedEvent     += CountPayment.OnClassTypeChanged;
            ClassSelecter.SelectedClassChangedEvent += CountPayment.OnClassModelChanged;
        }
 public FinanceStatisticBussiness(PaymentInfo paymentDal, TraineeManagementBussiness trainees, BlockClassManagement blocks, RegularClassManagement regulars,
                                  GeneralInfo generalDal)
 {
     _paymentDal           = paymentDal;
     _trainees             = trainees;
     _blockClasses         = blocks;
     _regularClasses       = regulars;
     _generalDal           = generalDal;
     _normalStatisticGroup = new List <FinanceStatisticGroup <AccountInfoModel> >();
 }
示例#11
0
 public NameCallingMangementBussiness(BlockClassManagement block, RegularClassManagement regular, TraineeInfo trainee, TraineeManagementBussiness trainees)
 {
     RegularTrainee = new RegularTraineeBussiness(trainee);
     BlockTrainee   = new BlockTraineeBussiness(trainee);
     NameCalling    = new NameCallingBussiness();
     ClassSelecter  = new ClassSelecterBussiness(regular, block, RegularTrainee, BlockTrainee);
     EditCalling    = new EditNameCallingBussiness(NameCalling, block, regular,
                                                   new ClassSelecterBussiness(regular, block, new RegularTraineeBussiness(trainee), new BlockTraineeBussiness(trainee)),
                                                   trainees);
 }
示例#12
0
 public RegularClassListViewModel(RegularClassManagement bussiness) : base()
 {
     _bussiness = bussiness;
     if (_bussiness.RegularClassCollection != null)
     {
         _bussiness.RegularClassCollection.ForEach(c =>
         {
             Classes.Add(new ClassViewModel(c));
             Classes.Last().ClassOperatedEvent += OnClassOperated;
         });
     }
     _bussiness.RegularClassChangedEvent += OnRegularClassChanged;
 }
        public ClassSelecterBussiness(RegularClassManagement regular, BlockClassManagement block,
                                      RegularTraineeBussiness regularTrainees, BlockTraineeBussiness blockTrainees, bool isUsedForPayment = false)
        {
            _regular          = regular;
            _regularTrainees  = regularTrainees;
            _block            = block;
            _blockTrainees    = blockTrainees;
            CurrentClassType  = -1;
            _isUsedForPayment = isUsedForPayment;

            _regularTrainees.LoadTraineesEvent += trainees => TraineeCollectionChangedEvent?.Invoke(trainees);
            _blockTrainees.LoadTraineesEvnet   += trainees => TraineeCollectionChangedEvent?.Invoke(trainees);
        }
示例#14
0
        public PDFExporterCallingList(TraineeInfo traineeDAL) : base()
        {
            TotalCols = 13;
            if (!Directory.Exists(GlobalVariables.CallingListPDFExportPath))
            {
                Directory.CreateDirectory(GlobalVariables.CallingListPDFExportPath);
            }

            regular        = new RegularClassManagement();
            block          = new BlockClassManagement();
            regularTrainee = new RegularTraineeBussiness(traineeDAL);
            blockTrainee   = new BlockTraineeBussiness(traineeDAL);
        }
示例#15
0
 public PDFExporterBill(BlockClassManagement blocks, RegularClassManagement regulars, TraineeManagementBussiness trainees) : base()
 {
     TotalCols = 17;
     if (!Directory.Exists(GlobalVariables.BillExportPath))
     {
         Directory.CreateDirectory(GlobalVariables.BillExportPath);
     }
     _paymentDal = new PaymentInfo();
     _generalDal = new GeneralInfo();
     _blocks     = blocks;
     _regulars   = regulars;
     _trainees   = trainees;
 }
 public PresenceBussiness(TraineeManagementBussiness trainees, RegularClassManagement regular,
                          RegularTraineeBussiness regularTrainees, OverdueManagementBussiness overdue, NameCallingBussiness calling)
 {
     _regular         = regular;
     _trainees        = trainees;
     _overdue         = overdue;
     _calling         = calling;
     _regularTrainees = regularTrainees;
     _regular.RegularClassChangedEvent  += (op, model, index) => RegularClassChangedEvent?.Invoke();
     _regularTrainees.LoadTraineesEvent += traineeCollection =>
     {
         _currentTrainees = traineeCollection;
         TraineeChangedEvent?.Invoke(_currentTrainees);
     };
 }
        public OverdueManagementBussiness(BlockClassManagement block, RegularClassManagement regular)
        {
            _block   = block;
            _regular = regular;
            _dal     = new OverdueInfo();

            Overdues = _dal.GetList() ?? new List <OverdueModel>();
            Overdues.ForEach(o =>
            {
                o.ClassName = o.ClassType == 0 ?
                              _regular.RegularClassCollection.Where(c => c.ClassID == o.ClassID).First().ClassName :
                              _block.BlockClassCollection.Where(c => c.ClassID == o.ClassID).First().ClassName;
            });

            _exporter = new PDFExporterOverdue();
        }
        public RegularTraineeOperationViewModel(TraineeManagementBussiness trainees, TraineeOperationBussiness traineeOperation,
                                                RegularClassManagement regularClasses)
            : base(trainees)
        {
            _traineeOperation = traineeOperation;
            _traineeOperation.OperationEnableEvent += Enable;

            _regularClasses = regularClasses;
            _regularClasses.RegularClassCollection.ForEach(c => ClassCollection.Add(c.ClassName));
            _regularClasses.RegularClassChangedEvent += (operation, regularClass, newIndex) =>
            {
                ClassCollection.Clear();
                _regularClasses.RegularClassCollection.ForEach(c => ClassCollection.Add(c.ClassName));
            };

            ClassComboWidth = 100;
            VisRemain       = Visibility.Visible;
        }
        public TeachingCountGroup(TeachingStatisticTypeEnum statisticType, string teacherID, List <ClassInfoForTeacherModel> details,
                                  DateTime startDate, DateTime endDate, bool isSortByMonth, RegularClassManagement regularClass, BlockClassManagement blocks)
        {
            StatisticType = statisticType;
            TeacherID     = teacherID;
            TeacherName   = TeacherManagementBussiness.Instance.Teachers.Where(t => t.TeacherID == teacherID).First().TeacherName;
            List <DateTime> spans = PublicMathods.GetDateSpan(startDate, endDate, isSortByMonth);

            ClassCountGroup = new Dictionary <DateTime, int>();
            DetailsGroup    = new Dictionary <DateTime, List <ClassInfoForTeacherModel> >();
            foreach (DateTime span in spans)
            {
                ClassCountGroup.Add(span, details == null ?
                                    0 :
                                    details.Count(d => d.ClassDate >= span && d.ClassDate < (isSortByMonth ? span.AddMonths(1) : span.AddYears(1))));
                DetailsGroup.Add(span,
                                 details == null ?
                                 null :
                                 details.Where(d => d.ClassDate >= span && d.ClassDate < (isSortByMonth ? span.AddMonths(1) : span.AddYears(1))).ToList());
                if (DetailsGroup[span] != null)
                {
                    foreach (ClassInfoForTeacherModel item in DetailsGroup[span])
                    {
                        item.ClassName = item.ClassType == 0 ?
                                         regularClass.GetClassNameInHis(item.ClassID, item.ClassDate) :
                                         blocks.BlockClassCollection.Where(b => b.ClassID == item.ClassID).First().ClassName;
                    }
                }
            }
        }
 public RegularClassOperationBussiness(RegularClassManagement regularClass)
 {
     _bussiness = regularClass;
 }
示例#21
0
 public StatisticManagementBussiness(PaymentInfo paymentDal, TraineeManagementBussiness trainees, BlockClassManagement blocks, RegularClassManagement regulars,
                                     NameCallingBussiness calling, TraineeInfo trainee, OverdueManagementBussiness overdue)
 {
     GeneralDal = new GeneralInfo();
     Finance    = new FinanceStatisticBussiness(paymentDal, trainees, blocks, regulars, GeneralDal);
     Teacher    = new TeachingStatisticBussiness(calling, regulars, blocks);
     Trainee    = new TraineeStatisticBussiness(trainees, regulars, new RegularTraineeBussiness(trainee), overdue, calling);
     General    = new GeneralAndExportBussiness(trainees.Dal, GeneralDal, blocks, regulars, trainees);
 }
示例#22
0
 public PaymentManagementBussiness(BlockClassManagement block, RegularClassManagement regular, TraineeInfo trainee, NameCallingBussiness nameCalling)
 {
     PaymentDAL    = new PaymentInfo();
     ClassPayment  = new ClassPaymentBussiness(block, regular, trainee, PaymentDAL, nameCalling);
     NormalPayment = new NormalPaymentBussiness(PaymentDAL);
 }
示例#23
0
 public TraineeStatisticBussiness(TraineeManagementBussiness trainees, RegularClassManagement regular,
                                  RegularTraineeBussiness regularTrainees, OverdueManagementBussiness overdue, NameCallingBussiness calling)
 {
     Presence = new PresenceBussiness(trainees, regular, regularTrainees, overdue, calling);
 }