private async Task <JsonResult> SaveConfiguration(PayrollCompanyConfiguration data)
        {
            var lstPayrollCompanyConfig = new List <PayrollCompanyConfiguration>();

            lstPayrollCompanyConfig.Add(data);

            await _clientConfiguration.UpdateAsync(lstPayrollCompanyConfig, SessionModel.CompanyID);

            return(Json(data));
        }
Exemple #2
0
        public async Task <InitializationResult> InitializeAsync(string authTkn, Guid licenseServiceID, string socialReason, string RFC,
                                                                 PayrollCompanyConfiguration payrollCompanyConfiguration, EmployerRegistration employerRegistration)

        {
            var mgr = new InitializationManager();

            return(await mgr.InitializeAsync(new InitializationParams
            {
                AuthTkn = authTkn,
                LicenseServiceID = licenseServiceID,
                SocialReason = socialReason,
                RFC = RFC,
                PayrollCompanyConfiguration = payrollCompanyConfiguration,
                EmployerRegistration = employerRegistration
            }));
        }
        public async Task Should_Create_Delete()
        {
            using var scope = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled);

            List <PayrollCompanyConfiguration> payrollCompanyConfigurations = new List <PayrollCompanyConfiguration>();
            var identityWorkId = Guid.NewGuid();

            //Fills the dummyData
            var payrollConfig = new PayrollCompanyConfiguration();

            payrollConfig.Active              = true;
            payrollConfig.company             = identityWorkId;
            payrollConfig.CurrentExerciseYear = 2014;
            payrollConfig.ID            = Guid.NewGuid();
            payrollConfig.InstanceID    = Guid.NewGuid();
            payrollConfig.StartDate     = new DateTime(2014, 1, 1).Date;
            payrollConfig.Timestamp     = DateTime.Now;
            payrollConfig.user          = Guid.Empty;
            payrollConfig.CurrencyID    = Guid.NewGuid();
            payrollConfig.CurrentPeriod = 1;

            payrollCompanyConfigurations.Add(payrollConfig);

            //Act
            var middlewareManager = new MiddlewareManager <PayrollCompanyConfiguration>(new BaseRecordManager <PayrollCompanyConfiguration>(), new PayrollCompanyConfigurationValidator());
            await middlewareManager.CreateAsync(payrollCompanyConfigurations, identityWorkId);

            //Asserts
            //Get
            var result = await middlewareManager
                         .GetByIdsAsync(payrollCompanyConfigurations.Select(p => p.ID).ToList(), identityWorkId);

            Assert.True(result.Any());

            //Delete
            await middlewareManager.DeleteAsync(payrollCompanyConfigurations.Select(p => p.ID).ToList(), identityWorkId);

            Assert.True(result.FirstOrDefault().ID == payrollCompanyConfigurations.FirstOrDefault().ID);

            //Get it again to verify if the registry it was deleted
            var result2 = await middlewareManager
                          .GetByIdsAsync(payrollCompanyConfigurations.Select(p => p.ID).ToList(), identityWorkId);

            Assert.True(!result2.Any());
        }
        public async Task <(string, DateTime)> GetZipCode(Overdraft overdraft, PayrollCompanyConfiguration payrollCompanyConfiguration)
        {
            var zipCode = String.Empty;

            if (!String.IsNullOrEmpty(overdraft.HistoricEmployee.EmployerRegistrationZipCode))
            {
                zipCode = overdraft.HistoricEmployee.EmployerRegistrationZipCode;
            }
            else if (!String.IsNullOrEmpty(payrollCompanyConfiguration.Address?.ZipCode))
            {
                zipCode = payrollCompanyConfiguration.Address?.ZipCode;
            }
            else
            {
                zipCode = "44600";
            }

            return(zipCode, await getDateByZipCode(zipCode));
        }
        public async Task Should_Fail_When_company_Is_Empty()
        {
            using var scope = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled);

            Client <PayrollCompanyConfiguration> client = new Client <PayrollCompanyConfiguration>("",
                                                                                                   ClientConfiguration.ClientAdapter.Local);

            List <PayrollCompanyConfiguration> payrollCompanyConfigurations = new List <PayrollCompanyConfiguration>();
            var identityWorkId = Guid.Empty;

            //Fills the dummyData
            var payrollConfig = new PayrollCompanyConfiguration();

            payrollConfig.Active              = true;
            payrollConfig.company             = identityWorkId;
            payrollConfig.CurrentExerciseYear = 2014;
            payrollConfig.ID         = Guid.NewGuid();
            payrollConfig.InstanceID = Guid.NewGuid();
            payrollConfig.StartDate  = new DateTime(2014, 1, 1).Date;
            payrollConfig.Timestamp  = DateTime.Now;
            payrollConfig.user       = Guid.Empty;
            payrollConfig.CurrencyID = Guid.NewGuid();

            payrollCompanyConfigurations.Add(payrollConfig);
            try
            {
                await client.CreateAsync(payrollCompanyConfigurations, identityWorkId);
            }
            catch (AggregateException ex)
            {
                var resex = ex.InnerExceptions.First() as CotorraException;

                var res = resex.ValidationInfo;
                Assert.NotEmpty(res);
                Assert.Equal(1301, resex.ErrorCode);
            }
            catch (Exception ex)
            {
                var e = ex;
            }
        }
        public async Task <InitializationResult> InitializeAsync(string authTkn, Guid licenseServiceID, string socialReason,
                                                                 string RFC, PayrollCompanyConfiguration payrollCompanyConfiguration, EmployerRegistration employerRegistration)
        {
            var createParmas = new InitializationParams()
            {
                AuthTkn          = authTkn,
                LicenseServiceID = licenseServiceID,
                SocialReason     = socialReason,
                RFC = RFC,
                PayrollCompanyConfiguration = payrollCompanyConfiguration,
                EmployerRegistration        = employerRegistration
            };

            string serializedResult = await ServiceHelperExtensions.CallRestServiceAsync(Format.JSON, RestMethod.POST, _authorizationHeader,
                                                                                         new Uri($"{_cotorraUri}"), new object[] { createParmas });

            if (!String.IsNullOrEmpty(serializedResult))
            {
                return(JsonConvert.DeserializeObject <InitializationResult>(serializedResult));
            }
            return(default);
Exemple #7
0
        public async Task <JsonResult> Create(CompanyCreateModel ccm, EmployerRegistrationController.EmployerRegistration er)
        {
            //Create payment periodicity
            PaymentPeriodicity pp;

            if (ccm.PeriodType == "Weekly")
            {
                pp = PaymentPeriodicity.Weekly;
            }
            else if (ccm.PeriodType == "BiWeekly")
            {
                pp = PaymentPeriodicity.Biweekly;
            }
            else
            {
                pp = PaymentPeriodicity.Monthly;
            }

            //Create employer registration
            EmployerRegistration employerRegistration = null;

            if (ccm.HasIMSS)
            {
                var employerRegistrationAddress = new Address
                {
                    ID             = Guid.NewGuid(),
                    ZipCode        = er.ZipCode,
                    FederalEntity  = er.FederalEntity,
                    Municipality   = er.Municipality,
                    Reference      = "",
                    ExteriorNumber = "",
                    InteriorNumber = "",
                    Street         = "",
                    Suburb         = "",

                    //Common
                    Name         = String.Empty,
                    Description  = String.Empty,
                    StatusID     = 1,
                    user         = SessionModel.IdentityID,
                    Timestamp    = DateTime.Now,
                    DeleteDate   = null,
                    Active       = true,
                    company      = SessionModel.CompanyID,
                    InstanceID   = SessionModel.InstanceID,
                    CreationDate = DateTime.Now,
                };

                employerRegistration = new EmployerRegistration
                {
                    ID                = Guid.NewGuid(),
                    Code              = er.Code.ToUpper(),
                    RiskClass         = er.RiskClass,
                    RiskClassFraction = er.RiskClassFraction,
                    AddressID         = employerRegistrationAddress.ID,
                    Address           = employerRegistrationAddress,

                    //Common
                    Active       = true,
                    company      = SessionModel.CompanyID,
                    InstanceID   = SessionModel.InstanceID,
                    CreationDate = DateTime.Now,
                    Description  = String.Empty,
                    StatusID     = 1,
                    user         = SessionModel.IdentityID,
                    Timestamp    = DateTime.Now,
                    DeleteDate   = null,
                    Name         = String.Empty,
                };
            }

            //Create company and employer registration addresses
            var companyAddress = new Address
            {
                ID             = Guid.NewGuid(),
                ZipCode        = er.ZipCode,
                FederalEntity  = er.FederalEntity,
                Municipality   = er.Municipality,
                Reference      = "",
                ExteriorNumber = "",
                InteriorNumber = "",
                Street         = "",
                Suburb         = "",

                //Common
                Name         = String.Empty,
                Description  = String.Empty,
                StatusID     = 1,
                user         = SessionModel.IdentityID,
                Timestamp    = DateTime.Now,
                DeleteDate   = null,
                Active       = true,
                company      = SessionModel.CompanyID,
                InstanceID   = SessionModel.InstanceID,
                CreationDate = DateTime.Now,
            };

            //Create payroll configuration
            var payrollConfiguration = new PayrollCompanyConfiguration()
            {
                //Step 1
                RFC  = ccm.CompanyRFC.ToUpper(),
                CURP = String.IsNullOrEmpty(ccm.CompanyCURP) ? "" : ccm.CompanyCURP.ToUpper(),

                SocialReason = ccm.CompanySocialReason,
                SalaryZone   = Enum.Parse <SalaryZone>(ccm.SalaryZone),
                FiscalRegime = ccm.FiscalRegime,
                AddressID    = companyAddress.ID,
                Address      = companyAddress,
                CurrencyID   = ccm.CurrencyID,

                //Step 2
                //EmployerRegistration

                //Step 3
                PaymentPeriodicity  = pp, //This is used as PeriodType (...)
                CurrentExerciseYear = ccm.CurrentFiscalYear,
                PeriodInitialDate   = ccm.InitialDate,
                CurrentPeriod       = ccm.CurrentPeriod,
                //PeriodTotalDays = ccm.PeriodTotalDays, (internally calculated)
                PaymentDays        = ccm.PaymentDays,
                WeeklySeventhDay   = ccm.WeeklySeventhDay,
                AdjustmentPay      = ccm.FortnightPaymentDays,
                NonDeducibleFactor = ccm.NonDeductibleFactor,

                //Step 4
                CompanyInformation    = ccm.CompanyInformation,
                ComercialName         = ccm.ComercialName,
                CompanyScope          = ccm.CompanyScope,
                CompanyBusinessSector = ccm.CompanyBusinessSector,
                CompanyCreationDate   = ccm.CompanyCreationDate,
                CompanyWebSite        = ccm.CompanyWebSite,
                Facebook  = ccm.Facebook,
                Instagram = ccm.Instagram
            };

            var res = await client.InitializeAsync(
                SessionModel.AuthorizationHeader,
                Guid.Parse(CommonUX.SecurityUX.DecryptString(ccm.LicenseServiceID)),
                ccm.CompanySocialReason,
                ccm.CompanyRFC.ToUpper(),
                payrollConfiguration,
                employerRegistration
                );

            return(Json(new
            {
                CompanyID = CommonUX.SecurityUX.EncryptString(res.CompanyID.ToString(), SessionModel.EncryptKey),
                InstanceID = CommonUX.SecurityUX.EncryptString(res.InstanceID.ToString(), SessionModel.EncryptKey),
                LicenseID = CommonUX.SecurityUX.EncryptString(res.LicenseID.ToString(), SessionModel.EncryptKey),
                LicenseServiceID = CommonUX.SecurityUX.EncryptString(res.LicenseServiceID.ToString(), SessionModel.EncryptKey)
            }));
        }
 public async Task <InitializationResult> InitializeAsync(string authTkn, Guid licenseServiceID, string socialReason, string RFC,
                                                          PayrollCompanyConfiguration payrollCompanyConfiguration, EmployerRegistration employerRegistration)
 {
     return(await _client.InitializeAsync(authTkn, licenseServiceID, socialReason, RFC, payrollCompanyConfiguration, employerRegistration));
 }