Пример #1
0
        public void Execute(IServiceProvider serviceProvider)
        {
            try
            {
                var context        = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));
                var serviceFactory =
                    (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
                var service = serviceFactory.CreateOrganizationService(context.UserId);

                if (context.MessageName.ToLower() != "create" ||
                    context.PrimaryEntityName != SalesOrder.EntityLogicalName)
                {
                    return;
                }

                using (var orgContext = new OrganizationServiceContext(service))
                {
                    var order = (Entity)context.InputParameters["Target"];

                    var neworder = order.ToEntity <SalesOrder>();

                    var constanta = (from i in orgContext.CreateQuery <new_constant>()
                                     select i).FirstOrDefault();

                    var user = (from i in orgContext.CreateQuery <SystemUser>()
                                where i.Id == order.GetAttributeValue <EntityReference>("ownerid").Id
                                select i).FirstOrDefault();

                    StringBuilder nomer = new StringBuilder();
                    nomer.Append(string.Format("{0}-{1}/СЛГУ-{2}", constanta.new_salesordernumber,
                                               DateTime.Now.Year.ToString(),
                                               user.new_abbreviation));

                    //var updateOrder = new SalesOrder(){
                    //    Id = order.Id,
                    //    OrderNumber =
                    //}
                    neworder.new_ordernumber = nomer.ToString();

                    var updateConstanta = new new_constant()
                    {
                        Id = constanta.Id,
                        new_salesordernumber = (Convert.ToInt32(constanta.new_salesordernumber) + 1).ToString()
                    };
                    service.Update(updateConstanta);
                    orgContext.SaveChanges();
                }
            }
            catch (Exception)
            {
                throw;
            }
        }
Пример #2
0
        public void Execute(IServiceProvider serviceProvider)
        {
            try
            {
                var context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));
                var serviceFactory =
                    (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
                var service = serviceFactory.CreateOrganizationService(context.UserId);

                if (context.MessageName.ToLower() != "create" ||
                        context.PrimaryEntityName != SalesOrder.EntityLogicalName)
                    return;

                using (var orgContext = new OrganizationServiceContext(service))
                {
                    var order = (Entity)context.InputParameters["Target"];

                    var neworder = order.ToEntity<SalesOrder>();

                    var constanta = (from i in orgContext.CreateQuery<new_constant>()
                                     select i).FirstOrDefault();

                    var user = (from i in orgContext.CreateQuery<SystemUser>()
                                where i.Id == order.GetAttributeValue<EntityReference>("ownerid").Id
                                select i).FirstOrDefault();

                    StringBuilder nomer = new StringBuilder();
                    nomer.Append(string.Format("{0}-{1}/СЛГУ-{2}", constanta.new_salesordernumber,
                                                                    DateTime.Now.Year.ToString(),
                                                                    user.new_abbreviation));

                    //var updateOrder = new SalesOrder(){
                    //    Id = order.Id,
                    //    OrderNumber =
                    //}
                    neworder.new_ordernumber = nomer.ToString();

                    var updateConstanta = new new_constant()
                    {
                        Id = constanta.Id,
                        new_salesordernumber = (Convert.ToInt32(constanta.new_salesordernumber) + 1).ToString()
                    };
                    service.Update(updateConstanta);
                    orgContext.SaveChanges();
                }
            }
            catch (Exception)
            {
                throw;
            }
        }
Пример #3
0
        public void Execute(IServiceProvider serviceProvider)
        {
            try
            {
                var context        = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));
                var serviceFactory =
                    (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
                var service = serviceFactory.CreateOrganizationService(context.UserId);

                if (context.MessageName.ToLower() != "create" ||
                    context.PrimaryEntityName != Invoice.EntityLogicalName)
                {
                    return;
                }

                using (var orgContext = new OrganizationServiceContext(service))
                {
                    var invoice    = (Entity)context.InputParameters["Target"];
                    var newinvoice = invoice.ToEntity <Invoice>();

                    if (newinvoice.Name != null && !newinvoice.Name.Contains("СЛГУ"))
                    {
                        return;
                    }

                    var constanta = (from i in orgContext.CreateQuery <new_constant>()
                                     select i).FirstOrDefault();

                    var userAbbreviation = (from i in orgContext.CreateQuery <SystemUser>()
                                            where i.Id == newinvoice.OwnerId.Id
                                            select i.new_abbreviation).FirstOrDefault();
                    StringBuilder nomer = new StringBuilder();

                    nomer.Append(string.Format("{0}{1}-1", userAbbreviation, constanta.new_invoicenumder));
                    newinvoice.Name = nomer.ToString();

                    var updateConstanta = new new_constant()
                    {
                        Id = constanta.Id,
                        new_invoicenumder = (Convert.ToInt32(constanta.new_invoicenumder) + 1).ToString()
                    };
                    service.Update(updateConstanta);
                    orgContext.SaveChanges();
                }
            }
            catch (Exception ex)
            {
                throw new InvalidPluginExecutionException(ex.Message);
            }
        }
Пример #4
0
        public void Execute(IServiceProvider serviceProvider)
        {
            try
            {
                var context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));
                var serviceFactory =
                    (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
                var service = serviceFactory.CreateOrganizationService(context.UserId);

                if (context.MessageName.ToLower() != "create" ||
                        context.PrimaryEntityName != Invoice.EntityLogicalName)
                    return;

                using (var orgContext = new OrganizationServiceContext(service))
                {
                    var invoice = (Entity)context.InputParameters["Target"];
                    var newinvoice = invoice.ToEntity<Invoice>();

                    if (newinvoice.Name != null && !newinvoice.Name.Contains("СЛГУ"))
                    {
                        return;
                    }

                    var constanta = (from i in orgContext.CreateQuery<new_constant>()
                                     select i).FirstOrDefault();

                    var userAbbreviation = (from i in orgContext.CreateQuery<SystemUser>()
                                            where i.Id == newinvoice.OwnerId.Id
                                            select i.new_abbreviation).FirstOrDefault();
                    StringBuilder nomer = new StringBuilder();

                    nomer.Append(string.Format("{0}{1}-1", userAbbreviation, constanta.new_invoicenumder));
                    newinvoice.Name = nomer.ToString();

                    var updateConstanta = new new_constant()
                    {
                        Id = constanta.Id,
                        new_invoicenumder = (Convert.ToInt32(constanta.new_invoicenumder) + 1).ToString()
                    };
                    service.Update(updateConstanta);
                    orgContext.SaveChanges();
                }
            }
            catch (Exception ex)
            {
                throw new InvalidPluginExecutionException(ex.Message);
            }
        }
Пример #5
0
        public void Execute(IServiceProvider serviceProvider)
        {
            try
            {
                var context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));
                var factory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
                var service = factory.CreateOrganizationService(context.UserId);

                if (context.MessageName == "Create")
                {
                    object blok = new object();
                    int? number;
                    new_constant counter = new new_constant();
                    Entity entity = (Entity)context.InputParameters["Target"];

                    string correntYear = DateTime.Now.ToString("yy");

                    lock (blok)
                    {
                        using (var orgContext = new OrganizationServiceContext(service))
                        {
                            var getCounterValue = (from c in orgContext.CreateQuery<new_constant>()
                                                   select c).FirstOrDefault();

                            switch (entity.LogicalName)
                            {
                                case new_purchase_order.EntityLogicalName:
                                    number = getCounterValue.new_purchase_order;
                                    counter.new_purchase_order = ++number;
                                    if (entity.Attributes.Contains("new_name") == true)
                                        entity["new_name"] = $"{number}/{correntYear}";
                                    else
                                        entity.Attributes.Add("new_name", $"{number}/{correntYear}");
                                    break;
                                case new_purchase_order_change.EntityLogicalName:
                                    number = getCounterValue.new_purchase_order_change;
                                    counter.new_purchase_order_change = ++number;;
                                    if (entity.Attributes.Contains("new_name") == true)
                                        entity["new_name"] = $"{number}/{correntYear}";
                                    else
                                        entity.Attributes.Add("new_name", $"{number}/{correntYear}");
                                    break;
                                case new_purchase_deal.EntityLogicalName:
                                    number = getCounterValue.new_purchase_deal;
                                    counter.new_purchase_deal = ++number;
                                    if (entity.Attributes.Contains("new_name") == true)
                                        entity["new_name"] = $"{number}/{correntYear}";
                                    else
                                        entity.Attributes.Add("new_name", $"{number}/{correntYear}");
                                    break;
                                case new_purchase_task.EntityLogicalName:
                                    number = getCounterValue.new_purchase_deal;
                                    counter.new_purchase_task = ++number;
                                    if (entity.Attributes.Contains("new_name") == true)
                                        entity["new_name"] = $"{number}/{correntYear}";
                                    else
                                        entity.Attributes.Add("new_name", $"{number}/{correntYear}");
                                    break;
                                default:
                                    return;
                            }

                            counter.Id = getCounterValue.Id;
                            service.Update(counter);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                throw new InvalidPluginExecutionException(ex.Message);
            }
        }
Пример #6
0
        public void Execute(IServiceProvider serviceProvider)
        {
            try
            {
                IPluginExecutionContext     context        = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));
                IOrganizationServiceFactory serviceFactory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
                IOrganizationService        service        = serviceFactory.CreateOrganizationService(context.UserId);

                if (context.PrimaryEntityName != new_monitoring.EntityLogicalName)
                {
                    return;
                }

                Entity entity = null;
                if (context.MessageName.ToLower() == "create")
                {
                    entity = (Entity)context.InputParameters["Target"];
                }
                else if (context.MessageName.ToLower() == "update")
                {
                    entity = (Entity)context.PostEntityImages["Post"];
                }
                else
                {
                    return;
                }

                var correnctEntity = entity.ToEntity <new_monitoring>();
                if (!isTrust(correnctEntity.new_accountid, service))
                {
                    return;
                }

                if (correnctEntity.new_cropid == null)
                {
                    return;
                }

                /* if (DateTime.Now < DateTime.Now.Date.AddHours(11).AddMinutes(05))*/
                using (var orgContext = new OrganizationServiceContext(service))
                {
                    var          haveAprove = CheckaprovedEntity(orgContext, correnctEntity.new_cropid.Id);
                    var          currency   = getCurrency(orgContext) ?? 0;
                    new_constant cons       = getConstanta(orgContext);

                    if (cons == null)
                    {
                        throw new InvalidPluginExecutionException("Створіть запис константи");
                    }

                    var    margin         = cons.new_purchase_margin ?? new Money(0);
                    var    coefficient    = cons.GetAttributeValue <double?>("new_vat_return_coefficient") ?? 1;
                    double nikolaevUSD    = 0;
                    Money  nikolaevRec    = new Money(0);
                    double odesaUSD       = 0;
                    Money  odesaRec       = new Money(0);
                    double odesaRecUSD    = 0;
                    double nikolaevRecUSD = 0;

                    if (correnctEntity.new_purchase_price_nikolaev != null &&
                        correnctEntity.new_purchase_price_nikolaev.Value != 0)
                    {
                        nikolaevUSD    = ((double)correnctEntity.new_purchase_price_nikolaev?.Value / currency) * coefficient;
                        nikolaevRec    = new Money(correnctEntity.new_purchase_price_nikolaev.Value - margin.Value);
                        nikolaevRecUSD = ((double)nikolaevRec.Value / currency) * coefficient;
                    }
                    if (correnctEntity.new_purchase_price_odessa != null &&
                        correnctEntity.new_purchase_price_odessa.Value != 0)
                    {
                        odesaUSD    = ((double)correnctEntity.new_purchase_price_odessa?.Value / currency) * coefficient;
                        odesaRec    = new Money(correnctEntity.new_purchase_price_odessa.Value - margin.Value);
                        odesaRecUSD = ((double)odesaRec.Value / currency) * coefficient;
                    }

                    if (haveAprove == null)
                    {
                        var checkPurchase = (from i in orgContext.CreateQuery <new_aprove_price>()
                                             where i.CreatedOn >= DateTime.Now.Date.ToUniversalTime() &&
                                             i.CreatedOn <= DateTime.Now.AddDays(1).Date.ToUniversalTime() &&
                                             i.new_cropid.Id == correnctEntity.new_cropid.Id &&
                                             i.new_aproved != new OptionSetValue(100000002)
                                             select i).FirstOrDefault();

                        if (checkPurchase == null)
                        {
                            new_aprove_price CreateRecord = new new_aprove_price()
                            {
                                new_max_purchase_price_odessa   = correnctEntity.new_purchase_price_odessa,
                                new_max_purchase_price_nikolaev = correnctEntity.new_purchase_price_nikolaev,
                                new_cropid            = correnctEntity.new_cropid,
                                new_aproved           = new OptionSetValue(100000001),
                                new_trader_Odesaid    = correnctEntity.new_accountid,
                                new_trader_Mykolaivid = correnctEntity.new_accountid,

                                new_dollar_rate = currency,
                                new_max_purchase_mykolaiv_usd      = nikolaevUSD,
                                new_dollar_purchase_price_nikolaev = nikolaevRecUSD,
                                new_recom_purchase_price_nikolaev  = nikolaevRec,
                                new_recom_purchase_price_odessa    = odesaRec,
                                new_max_purchase_odesa_usd         = odesaUSD,
                                new_dollar_purchase_price_odessa   = odesaRecUSD,
                                new_purchase_margin = margin
                            };
                            service.Create(CreateRecord);
                        }
                        else
                        {
                            new_aprove_price UpdateRecord = new new_aprove_price();
                            UpdateRecord.Id = checkPurchase.Id;
                            bool flag = false;

                            if (checkPurchase.new_max_purchase_price_odessa?.Value < correnctEntity.new_purchase_price_odessa?.Value)
                            {
                                UpdateRecord.new_max_purchase_price_odessa = correnctEntity.new_purchase_price_odessa;
                                UpdateRecord.new_trader_Odesaid            = correnctEntity.new_accountid;
                                UpdateRecord.new_aproved        = new OptionSetValue(100000001);
                                UpdateRecord.new_trader_Odesaid = correnctEntity.new_accountid;
                                UpdateRecord.new_recom_purchase_price_odessa  = odesaRec;
                                UpdateRecord.new_max_purchase_odesa_usd       = odesaUSD;
                                UpdateRecord.new_dollar_purchase_price_odessa = odesaRecUSD;
                                UpdateRecord.new_purchase_margin = margin;
                                UpdateRecord.new_dollar_rate     = currency;
                                flag = true;
                            }

                            /* else
                             * {
                             *   UpdateRecord.new_max_purchase_price_odessa = checkPurchase.new_max_purchase_price_odessa;
                             *   UpdateRecord.new_trader_Odesaid = checkPurchase.new_trader_Odesaid;
                             *   UpdateRecord.new_dollar_rate = checkPurchase.new_dollar_rate;
                             *   UpdateRecord.new_max_purchase_odesa_usd = checkPurchase.new_max_purchase_mykolaiv_usd;
                             *   UpdateRecord.new_dollar_purchase_price_odessa = checkPurchase.new_dollar_purchase_price_nikolaev;
                             *   UpdateRecord.new_recom_purchase_price_odessa = checkPurchase.new_recom_purchase_price_nikolaev;
                             *   UpdateRecord.new_purchase_margin = checkPurchase.new_purchase_margin;
                             * }*/

                            if (checkPurchase.new_max_purchase_price_nikolaev?.Value < correnctEntity.new_purchase_price_nikolaev?.Value)
                            {
                                UpdateRecord.new_max_purchase_price_nikolaev = correnctEntity.new_purchase_price_nikolaev;
                                UpdateRecord.new_trader_Mykolaivid           = correnctEntity.new_accountid;
                                UpdateRecord.new_aproved                        = new OptionSetValue(100000001);
                                UpdateRecord.new_trader_Mykolaivid              = correnctEntity.new_accountid;
                                UpdateRecord.new_dollar_rate                    = currency;
                                UpdateRecord.new_max_purchase_mykolaiv_usd      = nikolaevUSD;
                                UpdateRecord.new_dollar_purchase_price_nikolaev = nikolaevRecUSD;
                                UpdateRecord.new_recom_purchase_price_nikolaev  = nikolaevRec;
                                UpdateRecord.new_purchase_margin                = margin;
                                flag = true;
                            }

                            /* else
                             * {
                             *   UpdateRecord.new_max_purchase_price_nikolaev = checkPurchase.new_max_purchase_price_nikolaev;
                             *   UpdateRecord.new_trader_Mykolaivid = checkPurchase.new_trader_Mykolaivid;
                             *   UpdateRecord.new_dollar_rate = checkPurchase.new_dollar_rate;
                             *   UpdateRecord.new_max_purchase_mykolaiv_usd = checkPurchase.new_max_purchase_mykolaiv_usd;
                             *   UpdateRecord.new_dollar_purchase_price_nikolaev = checkPurchase.new_dollar_purchase_price_nikolaev;
                             *   UpdateRecord.new_recom_purchase_price_nikolaev = checkPurchase.new_recom_purchase_price_nikolaev;
                             *   UpdateRecord.new_purchase_margin = checkPurchase.new_purchase_margin;
                             * }*/
                            if (flag)
                            {
                                service.Update(UpdateRecord);
                            }
                        }
                    }
                    else
                    {
                        new_aprove_price CreateRecord = new new_aprove_price();
                        bool             flag         = false;

                        if (haveAprove.new_max_purchase_price_odessa?.Value < correnctEntity.new_purchase_price_odessa?.Value)
                        {
                            CreateRecord.new_max_purchase_price_odessa = correnctEntity.new_purchase_price_odessa;
                            CreateRecord.new_trader_Odesaid            = correnctEntity.new_accountid;
                            CreateRecord.new_aproved                      = new OptionSetValue(100000001);
                            CreateRecord.new_cropid                       = correnctEntity.new_cropid;
                            CreateRecord.new_dollar_rate                  = currency;
                            CreateRecord.new_max_purchase_odesa_usd       = odesaUSD;
                            CreateRecord.new_recom_purchase_price_odessa  = odesaRec;
                            CreateRecord.new_dollar_purchase_price_odessa = odesaRecUSD;
                            CreateRecord.new_purchase_margin              = margin;
                            flag = true;
                        }
                        else
                        {
                            CreateRecord.new_max_purchase_price_odessa = haveAprove.new_max_purchase_price_odessa;
                            CreateRecord.new_trader_Odesaid            = haveAprove.new_trader_Odesaid;
                        }
                        if (haveAprove.new_max_purchase_price_nikolaev?.Value < correnctEntity.new_purchase_price_nikolaev?.Value)
                        {
                            CreateRecord.new_max_purchase_price_nikolaev = correnctEntity.new_purchase_price_nikolaev;
                            CreateRecord.new_trader_Mykolaivid           = correnctEntity.new_accountid;
                            CreateRecord.new_aproved     = new OptionSetValue(100000001);
                            CreateRecord.new_cropid      = correnctEntity.new_cropid;
                            CreateRecord.new_dollar_rate = currency;
                            CreateRecord.new_max_purchase_mykolaiv_usd      = nikolaevUSD;
                            CreateRecord.new_recom_purchase_price_nikolaev  = nikolaevRec;
                            CreateRecord.new_dollar_purchase_price_nikolaev = nikolaevRecUSD;
                            CreateRecord.new_purchase_margin = margin;
                            flag = true;
                        }
                        else
                        {
                            CreateRecord.new_max_purchase_price_nikolaev = haveAprove.new_max_purchase_price_nikolaev;
                            CreateRecord.new_trader_Mykolaivid           = haveAprove.new_trader_Mykolaivid;
                        }
                        if (flag)
                        {
                            service.Create(CreateRecord);
                            new_aprove_price updateToClose = new new_aprove_price();
                            updateToClose.Id = haveAprove.Id;
                            //updateToClose.new_aproved = new OptionSetValue(100000002);
                            service.Update(updateToClose);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                throw new InvalidPluginExecutionException(ex.Message);
            }
        }
Пример #7
0
        public void Execute(IServiceProvider serviceProvider)
        {
            try
            {
                var context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));
                var factory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
                var service = factory.CreateOrganizationService(context.UserId);

                if (context.MessageName == "Create")
                {
                    object       blok = new object();
                    int?         number;
                    new_constant counter = new new_constant();
                    Entity       entity  = (Entity)context.InputParameters["Target"];

                    string correntYear = DateTime.Now.ToString("yy");

                    lock (blok)
                    {
                        using (var orgContext = new OrganizationServiceContext(service))
                        {
                            var getCounterValue = (from c in orgContext.CreateQuery <new_constant>()
                                                   select c).FirstOrDefault();

                            switch (entity.LogicalName)
                            {
                            case new_purchase_order.EntityLogicalName:
                                number = getCounterValue.new_purchase_order;
                                counter.new_purchase_order = ++number;
                                if (entity.Attributes.Contains("new_name") == true)
                                {
                                    entity["new_name"] = $"{number}/{correntYear}";
                                }
                                else
                                {
                                    entity.Attributes.Add("new_name", $"{number}/{correntYear}");
                                }
                                break;

                            case new_purchase_order_change.EntityLogicalName:
                                number = getCounterValue.new_purchase_order_change;
                                counter.new_purchase_order_change = ++number;;
                                if (entity.Attributes.Contains("new_name") == true)
                                {
                                    entity["new_name"] = $"{number}/{correntYear}";
                                }
                                else
                                {
                                    entity.Attributes.Add("new_name", $"{number}/{correntYear}");
                                }
                                break;

                            case new_purchase_deal.EntityLogicalName:
                                number = getCounterValue.new_purchase_deal;
                                counter.new_purchase_deal = ++number;
                                if (entity.Attributes.Contains("new_name") == true)
                                {
                                    entity["new_name"] = $"{number}/{correntYear}";
                                }
                                else
                                {
                                    entity.Attributes.Add("new_name", $"{number}/{correntYear}");
                                }
                                break;

                            case new_purchase_task.EntityLogicalName:
                                number = getCounterValue.new_purchase_deal;
                                counter.new_purchase_task = ++number;
                                if (entity.Attributes.Contains("new_name") == true)
                                {
                                    entity["new_name"] = $"{number}/{correntYear}";
                                }
                                else
                                {
                                    entity.Attributes.Add("new_name", $"{number}/{correntYear}");
                                }
                                break;

                            default:
                                return;
                            }

                            counter.Id = getCounterValue.Id;
                            service.Update(counter);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                throw new InvalidPluginExecutionException(ex.Message);
            }
        }