Пример #1
0
        void NavigateToDetailPage(VatInfo item)
        {
            throw new NotImplementedException();

            // Navigator.Push<>()
            // Navigate to viewModel
            // HostScreen.Router.Navigate.Execute(new DetailViewModel(item)).Subscribe();
        }
Пример #2
0
        private void PopulateVatInfos(Dictionary <double, double> vatRates)
        {
            if (_vatInfos.Count > 0)
            {
                _vatInfos.Clear();
            }

            foreach (var vatRate in vatRates)
            {
                var vatNotIncludedInfo = new VatInfo(vatRate.Key, vatRate.Value, false);
                _vatInfos.Add(vatNotIncludedInfo);

                var vatIncludedInfo = new VatInfo(vatRate.Key, vatRate.Value, true);
                _vatInfos.Add(vatIncludedInfo);
            }
        }
Пример #3
0
        public void Compute_amount_with__vat_not_included()
        {
            // Given
            const double vatRate = 21;
            const double amount  = 100;

            // When
            var vatInfo = new VatInfo(vatRate, amount, vatIncluded: false);

            // Then
            const double vatBase     = 100;
            const double vatAmount   = 21;
            const double totalAmount = 121;

            Assert.AreEqual(vatBase, vatInfo.VatBase);
            Assert.AreEqual(vatAmount, vatInfo.VatAmount);
            Assert.AreEqual(totalAmount, vatInfo.TotalAmount);
        }
    public static void RunVatUpdate(IOrganizationService conn)
    {
        var vats        = VatInfo.GetVatList();
        var pagingQuery = new QueryExpression("account");

        pagingQuery.ColumnSet = new ColumnSet("accountnumber");
        Queue <Entity> allEnts = new Queue <Entity>();

        while (true)
        {
            var results = conn.RetrieveMultiple(pagingQuery);
            if (results.Entities != null && results.Entities.Any())
            {
                results.Entities.ToList().ForEach(allEnts.Enqueue);
            }
            if (!results.MoreRecords)
            {
                break;
            }
            pagingQuery.PageInfo.PageNumber++;
            pagingQuery.PageInfo.PagingCookie = results.PagingCookie;
        }
        ExecuteMultipleRequest emr = null;

        while (allEnts.Any())
        {
            if (emr == null)
            {
                emr = new ExecuteMultipleRequest()
                {
                    Settings = new ExecuteMultipleSettings()
                    {
                        ContinueOnError = true,
                        ReturnResponses = true
                    },
                    Requests = new OrganizationRequestCollection()
                }
            }
            ;
            var ent = allEnts.Dequeue();
            if (vats.ContainsKey(ent.GetAttributeValue <string>("accountnumber")))
            {
                var newEnt = new Entity("account", ent.Id);
                newEnt.Attributes.Add("new_vatno", vats[ent.GetAttributeValue <string>("accountnumber")].TaxNumber);
                newEnt.Attributes.Add("new_registrationnumber", vats[ent.GetAttributeValue <string>("accountnumber")].RegistrationNumber);
                emr.Requests.Add(new UpdateRequest()
                {
                    Target = newEnt
                });
            }
            if (emr.Requests.Count >= maxBatchSize)
            {
                try
                {
                    var emResponse = (ExecuteMultipleResponse)conn.Execute(emr);
                    foreach (
                        var responseItem in emResponse.Responses.Where(responseItem => responseItem.Fault != null))
                    {
                        DisplayFault(emr.Requests[responseItem.RequestIndex],
                                     responseItem.RequestIndex, responseItem.Fault);
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine($"Exception during ExecuteMultiple: {ex.Message}");
                    throw;
                }
                emr = null;
            }
        }
    }