예제 #1
0
        public string GetPersonalizedQuery(CotorriaStatus status, string keySplitted, params object[] parameters)
        {
            ApplySettlementProcessParams setparams = parameters[0] as ApplySettlementProcessParams;

            if (status == CotorriaStatus.Unregistered)
            {
                string dateUnchange = Convert.ToDateTime(setparams.SettlementEmployeeSeparationDate).ToString("yyyy-MM-dd 00:00:00.00");
                return($"update  Employee set LocalStatus = {(int)status},  LastStatusChange = getdate() , UnregisteredDate = '{dateUnchange}'  where ID in ({keySplitted}) ");
            }
            return(string.Empty);
        }
예제 #2
0
        public async Task <JsonResult> ApplySettlement(ApplySettlementProcessParams applySettlementParameters)
        {
            applySettlementParameters.InstanceID       = SessionModel.InstanceID;
            applySettlementParameters.user             = SessionModel.IdentityID;
            applySettlementParameters.IdentityWorkID   = SessionModel.CompanyID;
            applySettlementParameters.LicenseServiceID = SessionModel.LicenseServiceID;
            applySettlementParameters.LicenseID        = SessionModel.LicenseID;
            applySettlementParameters.AuthTkn          = SessionModel.AuthorizationHeader;

            await settlementProcessClient.ApplySettlement(applySettlementParameters);

            return(Json("OK"));
        }
예제 #3
0
        public async Task <ApplySettlementProcessResult> ApplySettlement(ApplySettlementProcessParams parameters)
        {
            var result = await ServiceHelperExtensions.CallRestServiceAsync(Format.JSON, RestMethod.POST, _authorizationHeader,
                                                                            new Uri($"{_cotorraUri}/ApplySettlement"), new object[] { parameters }).ContinueWith((i) =>
            {
                if (i.Exception != null)
                {
                    throw i.Exception;
                }
                return(i.Result);
            });

            return(JsonConvert.DeserializeObject <ApplySettlementProcessResult>(result));
        }
        /// <summary>
        /// Applies the settlement.
        /// </summary>
        /// <param name="parameters">The parameters.</param>
        public async Task <ApplySettlementProcessResult> ApplySettlement(ApplySettlementProcessParams parameters)
        {
            var activeOverdraft = (await GetOverdrafts(parameters.EmployeeID, parameters.InstanceID,
                                                       parameters.IdentityWorkID, parameters.PeriodDetailID,
                                                       new List <OverdraftType>()
            {
                OverdraftType.Ordinary
            }));
            var mgr        = new AuthorizationManager();
            var overdrafts = new List <Guid>();

            if (parameters.OrdinaryID != Guid.Empty)
            {
                overdrafts.Add(parameters.OrdinaryID);
            }

            if (parameters.OrdinaryID != Guid.Empty)
            {
                overdrafts.Add(parameters.IndemnizationOverID);
            }

            using (var scope = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled))
            {
                if (parameters.ChangeOverdrafts)
                {
                    await UpdateDetails(parameters.OrdinaryID, parameters.IndemnizationOverID,
                                        parameters.OrdinaryOverDetailsIDs, parameters.IndemnizationOverDetailsIDs,
                                        parameters.IdentityWorkID, parameters.InstanceID);
                }
                await mgr.AuthorizationByOverdraftAsync(new AuthorizationByOverdraftParams()
                {
                    IdentityWorkID = parameters.IdentityWorkID,
                    InstanceID     = parameters.InstanceID,
                    OverdraftIDs   = overdrafts,
                    user           = parameters.user
                });

                await UnregisterEmployee(parameters);
                await DeleteOverdrafts(activeOverdraft, parameters.IdentityWorkID);

                scope.Complete();
            }

            return(new ApplySettlementProcessResult());
        }
예제 #5
0
        public async Task <ApplySettlementProcessResult> ApplySettlement(ApplySettlementProcessParams parameters)
        {
            SettlementProcessManager mgr = new SettlementProcessManager();

            return(await mgr.ApplySettlement(parameters));
        }
 private async Task UnregisterEmployee(ApplySettlementProcessParams parameters)
 {
     var statusManager = new StatusManager <Employee>(new EmployeeValidator());
     await statusManager.SetUnregistered(new List <Guid>() { parameters.EmployeeID }, parameters.IdentityWorkID,
                                         parameters);
 }
 public Task <ApplySettlementProcessResult> ApplySettlement(ApplySettlementProcessParams parameters)
 {
     return(_client.ApplySettlement(parameters));
 }