コード例 #1
0
        public bool S2IsOpen_TurnOn()
        {
            ResultManager.IsCorrect = false;

            //initial validations
            //-sys validations

            //update item
            try
            {
                //-business validations

                AppConfigurationController configurationController = new AppConfigurationController(Configurations);
                ResultManager.IsCorrect = configurationController.Update(PSD.Model.Keys.AppConfigurationKey.BenefitProgram_Coupon_S2_IsOpen, "true");
            }
            catch (Exception ex)
            {
                ResultManager.Add(ErrorDefault, Trace + "S2IsOpen_TurnOff.511 Excepción al actualizar la configuración" + ex.Message);
            }

            if (ResultManager.IsCorrect)
            {
                ResultManager.Add("El semestre 2 ha sido desbloqueado");
            }

            return(ResultManager.IsCorrect);
        }
コード例 #2
0
        public bool Delete(int contractId)
        {
            ResultManager.IsCorrect = false;

            // validate bayer contract associated
            ContractDistributor item = Repository.ContractsDistributor.Get(contractId);

            if (item.ContractDistributorStatusId == 1 || item.ContractDistributorStatusId == 2)
            {
                ResultManager.Add(ErrorDefault, Trace + "DeleteContractDistributor.### El Convenio con Distribuidor seleccionado no se puede eliminar, su estatus es activo / vencido.");
                return(false);
            }

            // now proceed with the delete operation
            try
            {
                Repository.ContractsDistributor.Remove(contractId);

                Repository.Complete();
                ResultManager.IsCorrect = true;
            }
            catch (Exception ex)
            {
                ErrorManager.Add(Trace + "", ErrorDefault, "Exception while deleting distributor contract ", ex);
                ResultManager.IsCorrect = false;
            }

            return(ResultManager.IsCorrect);
        }
コード例 #3
0
        public News Retrieve(int id = -1)
        {
            ResultManager.IsCorrect = false;
            //initial validations
            //-sys validations
            if (id == -1 || id == 0)
            {//no id was received
                ResultManager.Add(ErrorDefault, Trace + "Retrieve.131 No se recibio el id del Aviso/Promocion");
                return(null);
            }

            News auxItem = null;

            try
            {
                auxItem = Repository.News.Get(id);
                if (auxItem == null)
                {
                    ResultManager.Add(ErrorDefault, Trace + "Retrieve.511 No se encontró un item con id '" + id + "'");
                }
                else
                {
                    ResultManager.IsCorrect = true;
                }
            }
            catch (Exception ex)
            {
                ResultManager.Add(ErrorDefault, Trace + "Retrieve.511 Excepción al obtener el item: " + ex.Message);
            }

            return(auxItem);
        }
コード例 #4
0
        public List <ContractSubdistributor> RetrieveActiveContracts()
        {
            ResultManager.Clear();

            //initial validations
            //-sys validations
            if (false)
            {
                ResultManager.Add(ErrorDefault, Trace + "ProcessS2.111 ");
                return(new List <ContractSubdistributor>());
            }

            List <ContractSubdistributor> currentContracts = new List <ContractSubdistributor>();

            try
            {
                currentContracts        = Repository.ContractsSubdistributor.GetAllActive();
                ResultManager.IsCorrect = true;
            }
            catch (Exception ex)
            {
                ResultManager.Add(ErrorDefault, Trace + "ProcessS1.511 Excepción al procesar el semestre 1, la tabla de configuraciones podría haberse corrompido", ex);
            }

            if (ResultManager.IsCorrect)
            {
            }

            return(currentContracts);;
        }
コード例 #5
0
        /// <summary>
        /// Provides a list of Contract Distributor as a result of filtering the DB on specific filters
        /// </summary>
        /// <returns></returns>
        public List <ContractDistributor> FilteredItems()
        {
            ResultManager.IsCorrect = false;
            List <ContractDistributor> items = new List <ContractDistributor>();

            try
            {
                // implementing filtering pipeline
                var contractDistributorList = RetrieveAllToFilter();
                ContractDistributorFilteringPipeline pipeline = new ContractDistributorFilteringPipeline();

                if (Identity.CurrentUser.IsInRole(UserRole.EmployeeManagerOperation + "," + UserRole.EmployeeManagerView + "," + UserRole.EmployeeRTVOperation + "," + UserRole.EmployeeRTVView))
                {
                    EmployeeController employee = new EmployeeController(Configurations);
                    List <string>      zones    = employee.GetBayerEmployeeZones(CurrentUser.Id);
                    pipeline.Register(new RegisteredZoneNameListFilter(zones));
                    //pipeline.Register(new AssignedGRVFilter(CurrentUser.Id));
                }

                items = pipeline.Process(contractDistributorList).ToList();
                ResultManager.IsCorrect = true;
            }
            catch (Exception ex)
            {
                ResultManager.Add(ErrorDefault, Trace + "Index.311: Error while retrieving ContractDistributor list from DB: " + ex.Message);
            }
            return(items);
        }
コード例 #6
0
        /// <summary>
        /// Provides a list of Subdistributor as a result of filtering the DB on specific filters
        /// </summary>
        /// <returns></returns>
        public List <Subdistributor> FilteredItems()
        {
            ResultManager.IsCorrect = false;
            List <Subdistributor> items = new List <Subdistributor>();

            try
            {
                // implement new pipeline filtering
                var subdistributorList = RetrieveAllToFilter();
                SubdistributorFilteringPipeline pipeline = new SubdistributorFilteringPipeline();

                if (Identity.CurrentUser.IsInRole(UserRole.EmployeeManagerOperation + "," + UserRole.EmployeeManagerView + "," + UserRole.EmployeeRTVOperation + "," + UserRole.EmployeeRTVView))
                {
                    List <string> zones = GetBayerEmployeeZones(CurrentUser.Id);
                    pipeline.Register(new ZoneListFilter(zones));
                }

                if (Identity.CurrentUser.IsInRole(UserRole.CustomerDistributorOperation + "," + UserRole.CustomerDistributorView))
                {
                    pipeline.Register(new RelatedByActiveContractDistributorIdFilter(CurrentUser.Id));
                }

                items = pipeline.Process(subdistributorList).ToList();
                ResultManager.IsCorrect = true;
            }
            catch (Exception ex)
            {
                ResultManager.Add(ErrorDefault, Trace + "Index.311: Error while retrieving Subdistributor list from DB: " + ex.Message);
            }
            return(items);
        }
コード例 #7
0
        /*
         * public List<Cat_CropCategory> CropCategoryRetrieveAll()
         * {
         *  ResultManager.IsCorrect = false;
         *  List<Cat_CropCategory> cropCategories;
         *  try
         *  {
         *      cropCategories = (List<Cat_CropCategory>)Repository.CropCategories.GetAll();
         *      ResultManager.IsCorrect = true;
         *      return cropCategories;
         *  }
         *  catch (Exception ex)
         *  {
         *      ResultManager.Add(ErrorDefault, Trace + "CropCategoryRetrieveAll.511 Excepción al obtener el listado de cultivos: " + ex.Message);
         *  }
         *
         *  return null;
         * }*/
        public Cat_Crop CropRetrieve(int id = -1)
        {
            ResultManager.IsCorrect = false;
            //initial validations
            //-sys validations
            if (id == -1 || id == 0)
            {//no crop id was received
                ResultManager.Add(ErrorDefault, Trace + "CropRetrieve.131 No se recibio el id del cultivo");
                return(null);
            }

            Cat_Crop auxCrop = null;

            try
            {
                auxCrop = Repository.Crops.Get(id);
                if (auxCrop == null)
                {
                    ResultManager.Add(ErrorDefault, Trace + "CropRetrieve.511 No se encontró un cultivo con id '" + id + "'");
                }
                else
                {
                    ResultManager.IsCorrect = true;
                }
            }
            catch (Exception ex)
            {
                ResultManager.Add(ErrorDefault, Trace + "CropRetrieve.511 Excepción al obtener el cultivo a editar: " + ex.Message);
            }

            return(auxCrop);
        }
コード例 #8
0
        public bool Update(string key, string newValue)
        {
            ResultManager.IsCorrect = false;

            //initial validations
            //-sys validations
            if (string.IsNullOrWhiteSpace(key))
            {
                ResultManager.Add(ErrorDefault, Trace + "Update.111 No se recibio el parámetro 'key'");
                return(false);
            }

            //update item
            try
            {
                AppConfiguration auxConfiguration = Repository.AppConfigurations.GetByKey(key);
                auxConfiguration.Value = newValue;

                Repository.Complete();

                Configurations = RetrieveConfigurations(Configurations);

                ResultManager.IsCorrect = true;
            }
            catch (Exception ex)
            {
                ResultManager.Add(ErrorDefault, Trace + "Update.511 Excepción al actualizar la configuración '" + key + "' con el nuevo valor '" + newValue + "'", ex);
            }

            return(ResultManager.IsCorrect);
        }
コード例 #9
0
        public Cat_Zone ZoneRetrieve(int id = -1)
        {
            ResultManager.IsCorrect = false;
            //initial validations
            //-sys validations
            if (id == -1 || id == 0)
            {//no zone id was received
                ResultManager.Add(ErrorDefault, Trace + "ZoneRetrieve.131 No se recibio el id de la zona");
                return(null);
            }

            Cat_Zone auxZone = null;

            try
            {
                auxZone = Repository.Zones.Get(id);
                if (auxZone == null)
                {
                    ResultManager.Add(ErrorDefault, Trace + "ZoneRetrieve.511 No se encontró una zona con id '" + id + "'");
                }
                else
                {
                    ResultManager.IsCorrect = true;
                }
            }
            catch (Exception ex)
            {
                ResultManager.Add(ErrorDefault, Trace + "ZoneRetrieve.511 Excepción al obtener la zona a editar: " + ex.Message);
            }

            return(auxZone);
        }
コード例 #10
0
        /// <summary>
        /// Retrieve all the contacts assoicated to one subdistributor id
        /// </summary>
        /// <param name="subdistributorId"></param>
        /// <returns></returns>
        public List <SubdistributorContact> ContactsRetrieveAll(int subdistributorId = -1)
        {
            ResultManager.IsCorrect = false;
            //initial validations
            //-sys validations
            if (subdistributorId == -1 || subdistributorId == 0)
            {//no subdistributor id was received
                ResultManager.Add(ErrorDefault, Trace + "ContactsRetrieveAll.131 No se recibio el id del subdistribuidor para recuperar contactos");
                return(null);
            }

            List <SubdistributorContact> subDistributorContacts = new List <SubdistributorContact>();

            try
            {
                subDistributorContacts = Repository.SubdistributorContacts
                                         .Find(x => x.SubdistributorId == subdistributorId)
                                         .ToList();
                if (subDistributorContacts == null)
                {
                    ResultManager.Add(ErrorDefault, Trace + "ContactsRetrieveAll.511 No se encontró un subdistribuidor con id '" + subdistributorId + "'");
                }
                else
                {
                    ResultManager.IsCorrect = true;
                }
            }
            catch (Exception ex)
            {
                ResultManager.Add(ErrorDefault, Trace + "ContactsRetrieveAll.511 Excepción al obtener el listado de contactos de subdistribuidor a editar: " + ex.Message);
            }

            return(subDistributorContacts);
        }
コード例 #11
0
        public bool Delete(int id = -1)
        {
            ResultManager.IsCorrect = false;

            //initial validations
            //-sys validations
            if (id == -1 || id == 0)
            {//no id was received
                ResultManager.Add(ErrorDefault, Trace + "Delete.111 No se recibió el id del usuario Bayer a eliminar");
                return(false);
            }

            //mark item as deleted
            try
            {
                BayerEmployee item = Repository.BayerEmployees.Get(id);
                if (item == null)
                {
                    throw new Exception("No se encontró un usuario Bayer con id '" + id + "'");
                }
                item.User.Cat_UserStatusId = 2;//2:deleted
                item.User.Hash             = null;
                item.User.Salt             = null;
                Repository.Complete();
                ResultManager.IsCorrect = true;
                return(true);
            }
            catch (Exception ex)
            {
                ResultManager.Add(ErrorDefault, Trace + "Delete.511 Excepción al eliminar el usuario Bayer con id '" + id + "'", ex);
            }
            return(false);
        }
コード例 #12
0
        /// <summary>
        /// Retrieve one contact based on its Id
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public SubdistributorContact ContactRetrieve(int id = -1)
        {
            ResultManager.IsCorrect = false;
            //initial validations
            //-sys validations
            if (id == -1 || id == 0)
            {//no conatact id was received
                ResultManager.Add(ErrorDefault, Trace + "ContactRetrieve.131 No se recibio el id del contacto");
                return(null);
            }

            SubdistributorContact auxContact = null;

            try
            {
                auxContact = Repository.SubdistributorContacts.Get(id);
                if (auxContact == null)
                {
                    ResultManager.Add(ErrorDefault, Trace + "ContactRetrieve.511 No se encontró un contacto con id '" + id + "'");
                }
                else
                {
                    ResultManager.IsCorrect = true;
                }
            }
            catch (Exception ex)
            {
                ResultManager.Add(ErrorDefault, Trace + "ContactRetrieve.511 Excepción al obtener el contacto a editar: " + ex.Message);
            }

            return(auxContact);
        }
コード例 #13
0
        public bool SendContactMail(string name, string mail, string message)
        {
            ResultManager.IsCorrect = false;
            //initial validations
            //-sys validations
            //-business validations
            if (string.IsNullOrEmpty(name))
            {
                ResultManager.Add(ErrorDefault, Trace + "SendContactMail.111 No se recibio el nombre del contacto");
                return(false);
            }
            if (string.IsNullOrEmpty(mail))
            {
                ResultManager.Add(ErrorDefault, Trace + "SendContactMail.111 No se recibio el e mail del contacto");
                return(false);
            }
            if (string.IsNullOrEmpty(message))
            {
                ResultManager.Add(ErrorDefault, Trace + "SendContactMail.111 No se recibio el mensaje del contacto");
                return(false);
            }

            if (SendContactEmail(name, mail, message))
            {
                ResultManager.IsCorrect = true;
                ResultManager.Add("Se ha enviado un correo con la informacion de contacto", "");
            }
            else
            {
                ResultManager.Add("No se pudo enviar informacion de contacto");
            }

            return(ResultManager.IsCorrect);
        }
コード例 #14
0
        /// <summary>
        /// Retrieve a new instance of a subdistributor contract, setting the initial information (discount type, last contract amounts, etc)
        /// </summary>
        /// <param name="id">Subdistributor id</param>
        /// <returns></returns>
        public ContractSubdistributor InitializeNew(int id)
        {
            ResultManager.Clear();
            ContractSubdistributor item = null;

            try
            {
                PSD.Controller.SubdistributorController subdistributorController = new Controller.SubdistributorController(Configurations);

                item = ContractSubdistributor.NewEmpty();
                item.Subdistributor       = subdistributorController.RetrieveSubdistributor(id);
                item.SubdistributorId     = id;
                item.RegisteredRegionName = item.Subdistributor.BNAddress.AddressColony.AddressPostalCode.AddressMunicipality.Zone.RegionName;
                item.RegisteredZoneName   = item.Subdistributor.BNAddress.AddressColony.AddressPostalCode.AddressMunicipality.Zone.Name;

                //set discount type (for benefits program->coupons->discountTable)
                ContractSubdistributor auxLastContract = Repository.ContractsSubdistributor.GetPastYearSubdistributorContract(id);
                if (auxLastContract == null)
                {//first contract
                    item.DiscountType = 0;
                }
                else
                {//contract renovation
                    item.DiscountType = auxLastContract.DiscountType + 1;
                }

                ResultManager.IsCorrect = true;
            }
            catch (Exception ex)
            {
                ResultManager.Add(ErrorDefault, Trace + "InitializeNew.511 Excepción al inicializar el nuevo elemento" + ex.Message);
            }
            return(item);
        }
コード例 #15
0
        public bool Delete(int id = -1)
        {
            ResultManager.IsCorrect = false;

            //initial validations
            //-sys validations
            if (id == -1 || id == 0)
            {//no id was received
                ResultManager.Add(ErrorDefault, Trace + "Delete.131 No se recibio el id del item a editar");
                return(false);
            }

            //delete item
            try
            {
                Repository.ContentLinks.Remove(id);
                Repository.Complete();
                ResultManager.IsCorrect = true;
                return(true);
            }
            catch (Exception ex)
            {
                ResultManager.Add(ErrorDefault, Trace + "Delete.511 Excepción al eliminar el item con id '" + id + "': " + ex.Message);
            }
            return(false);
        }
コード例 #16
0
        public ContractSubdistributor Retrieve(int id)
        {
            ResultManager.IsCorrect = false;
            //initial validations
            //-sys validations
            if (id == -1 || id == 0)
            {//no id was received
                ResultManager.Add(ErrorDefault, Trace + "Retrieve.131 No se recibio el parametro id");
                return(null);
            }

            ContractSubdistributor auxItem = null;

            try
            {
                auxItem = Repository.ContractsSubdistributor.Get(id);
                if (auxItem == null)
                {
                    ResultManager.Add(ErrorDefault, Trace + "Retrieve.511 No se encontró un convenio con id '" + id + "'");
                }
                else
                {
                    ResultManager.IsCorrect = true;
                }
            }
            catch (Exception ex)
            {
                ResultManager.Add(ErrorDefault, Trace + "Retrieve.511 Excepción al obtener el convenio a editar: " + ex.Message);
            }

            return(auxItem);
        }
コード例 #17
0
        public bool Approve(int id)
        {
            ResultManager.IsCorrect = false;
            //initial validations
            //-sys validations
            if (id == -1)
            {
                ResultManager.Add(ErrorDefault, Trace + "Approve.111 No se recibio el parámetro id");
                return(false);
            }
            //-business validations

            ContractDistributor auxContract = null;

            try
            {
                auxContract = Repository.ContractsDistributor.Get(id);
            }
            catch (Exception ex)
            {
                ResultManager.Add(ErrorDefault, Trace + "Approve.511 Excepción al obtener la información del contrato id '" + id + "'" + ex.Message);
                return(false);
            }

            return(Approve(auxContract));
        }
コード例 #18
0
        public bool UpdateAndApprove(ContractDistributor model)
        {
            ResultManager.IsCorrect = false;
            //initial validations
            //-sys validations
            if (model == null)
            {
                ResultManager.Add(ErrorDefault, Trace + "UpdateAndApprove.111 No se recibio el modelo");
                return(false);
            }
            //-business validations

            //approve
            ContractDistributor auxContract = null;
            BayerEmployee       auxRTV      = new BayerEmployee();

            try
            {
                auxContract = Repository.ContractsDistributor.Get(model.Id);

                auxContract.AmountGoalQ1    = model.AmountGoalQ1;
                auxContract.AmountGoalQ2    = model.AmountGoalQ2;
                auxContract.AmountGoalQ3    = model.AmountGoalQ3;
                auxContract.AmountGoalQ4    = model.AmountGoalQ4;
                auxContract.AmountGoalTotal = model.AmountGoalTotal;

                auxContract.ContractDistributorStatusId = 3;

                //set rtv info for email send (will be lost from auxContract after Repository.Complete())
                auxRTV.EMail = auxContract.RTVBayerEmployee.EMail;
                auxRTV.Name  = auxContract.RTVBayerEmployee.NameDisplay;

                Repository.Complete();
                ResultManager.IsCorrect = true;
            }
            catch (Exception ex)
            {
                ResultManager.Add(ErrorDefault, Trace + "UpdateAndApprove.511 Excepción al crear el nuevo elemento" + ex.Message);
            }

            if (ResultManager.IsCorrect)
            {
                ResultManager.Add("El convenio ha sido actualizado", "");

                if (SendEmailContractApproved(auxRTV.Name, auxRTV.EMail, auxContract.Id, auxContract.IdB))
                {
                    ResultManager.Add("Se ha enviado un correo al RTV para la aprobación final", "");
                }
                else
                {
                    ResultManager.Add("No se pudo enviar actualización por correo al RTV");
                }
            }

            return(ResultManager.IsCorrect);
        }
コード例 #19
0
        public bool ProcessS1()
        {
            ResultManager.Clear();

            //initial validations
            //-sys validations
            if (false)
            {
                ResultManager.Add(ErrorDefault, Trace + "ProcessS1.111 ");
                return(false);
            }

            //process contracts for semester1
            try
            {
                //ContractSubdistributor contractController = new ContractSubdistributor(Configurations);
                List <ContractSubdistributor> currentContracts = Repository.ContractsSubdistributor.GetAllActive();

                foreach (ContractSubdistributor item in currentContracts)
                {
                    if (true)//item.SubdistributorDiscountCoupon.HasCouponS1)
                    {
                        foreach (DistributorPurchasesXContractSubdistributor purchaseDistributor in item.DistributorPurchases)
                        {
                            purchaseDistributor.CouponSharePercentageS1 = item.PurchaseTotalS1 <= 0 ? 0 : (purchaseDistributor.PurchaseTotalS1 / item.PurchaseTotalS1) * 100;
                            purchaseDistributor.CouponShareAmountS1     = item.SubdistributorDiscountCoupon.CouponAmountS1 * (purchaseDistributor.CouponSharePercentageS1 / 100);
                        }
                    }

                    item.SubdistributorDiscountCoupon.IsCalculatedS1  = true;
                    item.SubdistributorPromotionCoupon.IsCalculatedS1 = true;
                }

                Repository.Complete();

                AppConfigurationController configurationController = new AppConfigurationController(Configurations);
                if (configurationController.Update(PSD.Model.Keys.AppConfigurationKey.BenefitProgram_Coupon_S1_IsCalculated, "true") &&
                    configurationController.Update(PSD.Model.Keys.AppConfigurationKey.BenefitProgram_Coupon_S1_IsOpen, "false"))
                {
                    ResultManager.IsCorrect = true;
                }
            }
            catch (Exception ex)
            {
                ResultManager.Add(ErrorDefault, Trace + "ProcessS1.511 Excepción al procesar el semestre 1, la tabla de configuraciones podría haberse corrompido", ex);
            }

            if (ResultManager.IsCorrect)
            {
                ResultManager.Add("El semestre 1 ha sido procesado correctamente");
            }

            return(ResultManager.IsCorrect);
        }
コード例 #20
0
        public bool SendToDistributor(int id)
        {
            ResultManager.IsCorrect = false;
            //initial validations
            //-sys validations
            //-business validations
            if (id < 1)
            {
                ResultManager.Add(ErrorDefault, Trace + "SendToDistributor.111 No se recibio el parámetro id");
                return(false);
            }

            //update status to 4: review-distributor
            ContractDistributor auxContract = null;

            try
            {
                auxContract = Repository.ContractsDistributor.Get(id);
                auxContract.ContractDistributorStatusId = 4;

                Repository.Complete();
                ResultManager.IsCorrect = true;
            }
            catch (Exception ex)
            {
                ResultManager.Add(ErrorDefault, Trace + "SendToDistributor.511 Excepción al actualizar el elemento" + ex.Message);
            }

            if (ResultManager.IsCorrect)
            {
                ResultManager.Add("El convenio ha sido actualizado", "");
                try
                {
                    //send email to subdistributor
                    DistributorEmployee auxDistributorEmployee = Repository.Distributors.Get(id).DistributorUsers.FirstOrDefault();
                    if (SendEmailToDistributorRequestApproval(auxDistributorEmployee.NameDisplay, auxDistributorEmployee.EMail, auxDistributorEmployee.Distributor.CurrentContract.Id, auxDistributorEmployee.Distributor.CurrentContract.IdB))
                    {
                        ResultManager.Add("Se ha enviado un correo al distribuidor", "");
                    }
                    else
                    {
                        ResultManager.Add("No se pudo enviar actualización por correo al distribuidor");
                    }
                }
                catch (Exception ex)
                {
                    ResultManager.Add(ErrorDefault, Trace + "Create.511 Excepción al crear el convenio: " + ex.Message);
                }
            }

            return(ResultManager.IsCorrect);
        }
コード例 #21
0
 protected bool SendEmail(string toSingleEMail, string messageSubject, string messageBody, Dictionary <string, string> emailParams)
 {
     PSD.Util.Mailer mailer = new Util.Mailer(Configurations.MailServerFromEmail, Configurations.MailServerFromPassword, Configurations.MailServerSmtpAddress, Configurations.MailServerSmtpPort, Configurations.MailServerMailUseSSL);
     if (mailer.SendSingle(toSingleEMail, messageSubject, messageBody, emailParams))
     {
         return(true);
     }
     else
     {
         ResultManager.Add("Error al enviar mensaje a '" + toSingleEMail + "'", Trace + "SendEmail.911 Error al enviar mensaje a '" + toSingleEMail + "'. Detalle: " + mailer.ResultDetails[0]);
         return(false);
     }
 }
コード例 #22
0
        public bool StartNewCycle()
        {
            ResultManager.Clear();

            //initial validations
            //-sys validations
            if (false)
            {
                ResultManager.Add(ErrorDefault, Trace + "StartNewCycle.111 ");
                return(false);
            }

            //process contracts for semester1
            try
            {
                //ContractSubdistributor contractController = new ContractSubdistributor(Configurations);
                List <ContractSubdistributor> currentContracts = Repository.ContractsSubdistributor.GetAllActive();

                foreach (ContractSubdistributor item in currentContracts)
                {
                    item.ContractSubdistributorStatusId = 2;//expired
                    item.Subdistributor.CurrentContract = null;
                }

                Repository.Complete();

                AppConfigurationController configurationController = new AppConfigurationController(Configurations);
                if (configurationController.Update(PSD.Model.Keys.AppConfigurationKey.BenefitProgram_Coupon_S1_IsCalculated, "false") &&
                    configurationController.Update(PSD.Model.Keys.AppConfigurationKey.BenefitProgram_Coupon_S2_IsCalculated, "false") &&
                    configurationController.Update(PSD.Model.Keys.AppConfigurationKey.BenefitProgram_Coupon_IsCalculated, "false") &&
                    configurationController.Update(PSD.Model.Keys.AppConfigurationKey.BenefitProgram_Coupon_S1_IsOpen, "true") &&
                    configurationController.Update(PSD.Model.Keys.AppConfigurationKey.BenefitProgram_Coupon_S2_IsOpen, "true") &&
                    configurationController.Update(PSD.Model.Keys.AppConfigurationKey.BenefitProgram_Coupon_IsOpen, "true")
                    )
                {
                    ResultManager.IsCorrect = true;
                }
            }
            catch (Exception ex)
            {
                ResultManager.Add(ErrorDefault, Trace + "StartNewCycle.511 Excepción al iniciar nuevo ciclo, la tabla de configuraciones podría haberse corrompido", ex);
            }

            if (ResultManager.IsCorrect)
            {
                ResultManager.Add("Ciclo reiniciado, todos los convenios has sido caducados");
            }

            return(ResultManager.IsCorrect);
        }
コード例 #23
0
        public bool Update(ContentLink item)
        {
            ResultManager.IsCorrect = false;

            //initial validations
            //-sys validations
            if (item == null)
            {
                ResultManager.Add(ErrorDefault, Trace + "Update.111 No se recibio el objeto del item a editar");
                return(false);
            }
            if (item.Id == -1 || item.Id == 0)
            {//no id was received
                ResultManager.Add(ErrorDefault, Trace + "Update.131 No se recibio el id del item a editar");
                return(false);
            }
            //-business validations
            if (string.IsNullOrWhiteSpace(item.DisplayName))
            {
                ResultManager.Add("El texto a mostrar no puede estar vacío");
                return(false);
            }
            if (string.IsNullOrWhiteSpace(item.Url))
            {
                ResultManager.Add("La url no puede estar vacía");
                return(false);
            }

            //update item
            try
            {
                ContentLink auxItem = Repository.ContentLinks.Get(item.Id);
                if (auxItem == null)
                {
                    ResultManager.Add(ErrorDefault, Trace + "Update.311 item con id '" + item.Id + "' no encontrado en bd");
                    return(false);
                }
                auxItem.DisplayName = item.DisplayName;
                auxItem.Url         = item.Url;
                Repository.Complete();
                ResultManager.IsCorrect = true;
                return(true);
            }
            catch (Exception ex)
            {
                ResultManager.Add(ErrorDefault, Trace + "Update.511 Excepción al editar el item con id '" + item.Id + "': " + ex.Message);
            }
            return(false);
        }
コード例 #24
0
        public bool CropUpdate(Cat_Crop item)
        {
            ResultManager.IsCorrect = false;

            //initial validations
            //-sys validations
            if (item == null)
            {
                ResultManager.Add(ErrorDefault, Trace + "CropEdit.111 No se recibio el objeto del cultivo a editar");
                return(false);
            }
            if (item.Id == -1 || item.Id == 0)
            {//no crop id was received
                ResultManager.Add(ErrorDefault, Trace + "CropEdit.131 No se recibio el id del cultivo a editar");
                return(false);
            }
            //-business validations
            if (string.IsNullOrWhiteSpace(item.Name))
            {
                ResultManager.Add("El nombre del cultivo no puede estar vacio");
                return(false);
            }
            if (item.CropCategoryId == 0 || item.CropCategoryId == -1)
            {
                ResultManager.Add("Se debe seleccionar un cultivo straco");
                return(false);
            }

            //update item
            try
            {
                Cat_Crop auxCrop = Repository.Crops.Get(item.Id);
                if (auxCrop == null)
                {
                    ResultManager.Add(ErrorDefault, Trace + "CropEdit.311 Cultivo con id '" + item.Id + "' no encontrado en bd");
                    return(false);
                }
                auxCrop.Name           = item.Name;
                auxCrop.CropCategoryId = item.CropCategoryId;
                Repository.Complete();
                ResultManager.IsCorrect = true;
                return(true);
            }
            catch (Exception ex)
            {
                ResultManager.Add(ErrorDefault, Trace + "CropEdit.511 Excepción al editar el cultivo con id '" + item.Id + "': " + ex.Message);
            }
            return(false);
        }
コード例 #25
0
        public BayerEmployee RetrieveEmployee(int id)
        {
            ResultManager.Clear();
            BayerEmployee auxEmployee = null;

            try
            {
                auxEmployee             = Repository.BayerEmployees.Get(id);
                ResultManager.IsCorrect = true;
            }
            catch (Exception ex)
            {
                ResultManager.Add(ErrorDefault, Trace + "RetrieveEmployee.111: Error al obtener item con id  '" + id + "'. Exception:", ex);
            }
            return(auxEmployee);
        }
コード例 #26
0
        public bool ZoneAdd(Cat_Zone item)
        {
            ResultManager.IsCorrect = false;

            //initial validations
            //-sys validations
            if (item == null)
            {
                ResultManager.Add(ErrorDefault, Trace + "ZoneAdd.111 No se recibio el objeto de la zona a agregar");
                return(false);
            }
            //-business validations
            if (string.IsNullOrWhiteSpace(item.Name))
            {
                ResultManager.Add("El nombre de la zona no puede estar vacio");
                return(false);
            }

            //insert new item
            try
            {
                Cat_Zone auxZone = new Cat_Zone();
                auxZone.Name       = item.Name;
                auxZone.RegionName = item.RegionName;
                Repository.Zones.Add(auxZone);
                Repository.Complete();

                // update AddressMunicipality table
                foreach (AddressMunicipality municipality in item.AddressMunicipalities)
                {
                    AddressMunicipality aux = Repository.AddressMunicipalities
                                              .GetAll()
                                              .Where(x => x.Id == municipality.Id)
                                              .FirstOrDefault();
                    aux.Cat_ZoneId = auxZone.Id;
                }
                Repository.Complete();

                ResultManager.IsCorrect = true;
                return(true);
            }
            catch (Exception ex)
            {
                ResultManager.Add(ErrorDefault, Trace + "ZoneAdd.511 Excepción al agregar la zona nombre '" + item.Name + "': " + ex.Message);
            }
            return(false);
        }
コード例 #27
0
        public bool Approve(int contractId)
        {
            ResultManager.IsCorrect = false;
            //initial validations
            //-sys validations
            if (contractId == -1)
            {
                ResultManager.Add(ErrorDefault, Trace + "Approve.111 No se recibio el parámetro id");
                return(false);
            }
            //-business validations

            //approve
            int auxDistributorId            = -1;
            ContractDistributor auxContract = null;

            try
            {
                auxContract = Repository.ContractsDistributor.Get(contractId);
                auxContract.ContractDistributorStatusId = 3;

                auxDistributorId = auxContract.DistributorId;

                Repository.Complete();
                ResultManager.IsCorrect = true;
            }
            catch (Exception ex)
            {
                ResultManager.Add(ErrorDefault, Trace + "Approve.511 Excepción al crear el nuevo elemento" + ex.Message);
            }

            if (ResultManager.IsCorrect)
            {
                ResultManager.Add("El convenio ha sido actualizado", "");
                DistributorEmployee auxDistributorEmployee = Repository.Distributors.Get(auxDistributorId).DistributorUsers.FirstOrDefault();
                if (SendEmailContractApproved(auxDistributorEmployee.NameDisplay, auxDistributorEmployee.EMail, contractId, auxContract.IdB))
                {
                    ResultManager.Add("Se ha enviado un correo al distribuidor", "");
                }
                else
                {
                    ResultManager.Add("No se pudo enviar actualización por correo al distribuidor");
                }
            }

            return(ResultManager.IsCorrect);
        }
コード例 #28
0
        public List <News> RetrieveAll()
        {
            ResultManager.IsCorrect = false;
            List <News> auxList = null;

            try
            {
                auxList = Repository.News.GetAll().ToList();
                ResultManager.IsCorrect = true;
            }
            catch (Exception ex)
            {
                ResultManager.Add(ErrorDefault, Trace + "RetrieveAll.511 Excepción al obtener el listado de Aviso/Promocion: " + ex.Message);
            }

            return(auxList);
        }
コード例 #29
0
        public bool Update(ContentTypeKey key, string value)
        {
            ResultManager.IsCorrect = false;

            //initial validations
            //-sys validations
            if (value == null)
            {
                ResultManager.Add(ErrorDefault, Trace + "ContenDataEdit.111 Value del contenido a editar no puede ser nulo");
                return(false);
            }

            //update item
            try
            {
                string lookupKey = Keys.ContainsKey(key)
                                ? Keys[key]
                                : string.Empty;

                ContentData item            = Repository.ContentData.GetAll().Where(x => string.Equals(x.Key, lookupKey)).FirstOrDefault();
                bool        isNewContentKey = false;
                if (item == null)
                {
                    isNewContentKey = true;
                    item            = new ContentData();
                }

                item.Key   = Keys[key];
                item.Value = value;

                if (isNewContentKey)
                {
                    Repository.ContentData.Add(item);
                }

                Repository.Complete();
                ResultManager.IsCorrect = true;
                return(true);
            }
            catch (Exception ex)
            {
                ResultManager.Add(ErrorDefault, Trace + "ContenDataEdit.511 Excepción al editar el contenido con key '" + key + "': " + ex.Message);
            }
            return(false);
        }
コード例 #30
0
        public List <ContractDistributor> RetrieveAll()
        {
            ResultManager.IsCorrect = false;
            List <ContractDistributor> auxList;

            try
            {
                auxList = (List <ContractDistributor>)Repository.ContractsDistributor.GetAll();
                ResultManager.IsCorrect = true;
                return(auxList);
            }
            catch (Exception ex)
            {
                ResultManager.Add(ErrorDefault, Trace + "RetrieveAll.511 Excepción al obtener el listado de convenios Bayer-Distribuidor: " + ex.Message);
            }

            return(null);
        }