예제 #1
0
        protected override void ExcuteSelf()
        {
            try
            {
                using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required))
                {
                    int _CurrentId = _OutApplicationDal.InsertOutApplication(_OutApplication);
                    _OutApplication.PKID = _CurrentId;
                    if (_OutApplication.Item != null)
                    {
                        foreach (OutApplicationItem item in _OutApplication.Item)
                        {
                            if (_OutApplication.OutType == OutType.OutCity)
                            {
                                item.Adjust     = true;
                                item.AdjustHour =
                                    new UpdateAdjustRestByOut(item, _OutApplication.Account.Id).GetItemAdjustHour();
                            }
                            int itemid = _OutApplicationDal.InsertOutApplicationItem(_CurrentId, item);

                            if (item.Status == RequestStatus.Submit)
                            {
                                OutApplicationFlow flow =
                                    new OutApplicationFlow(0, _OutApplication.Account, _OutApplication.SubmitDate,
                                                           _OutApplication.Reason,
                                                           item.Status, 1);
                                _OutApplicationDal.InsertOutApplicationFlow(itemid, flow);
                            }
                        }
                    }
                    ts.Complete();
                }
            }
            catch
            {
                HrmisUtility.ThrowException(HrmisUtility._DbError);
            }
            new OutMailAndPhoneDelegate().SubmitOperation(_OutApplication.PKID, _CCList);
        }