Пример #1
0
        public ClienteViewModel()
        {
            if (Customer == null)
            {
                Customer = new Customer();
            }

            context   = new DALContext();
            Countries = context.Countries.All().OrderBy(p => p.Name).ToList();
            Cities    = new List <City>();
            States    = context.States.All().OrderBy(p => p.Name).ToList();
            States.Insert(0, new State()
            {
                Id = 0, Name = "SELECIONE..."
            });

            CondicoesPagamento = context.PaymentTerms.All().ToList();
            CondicoesPagamento.Insert(0, new PaymentTerm()
            {
                Id = 0, Description = "SELECIONE..."
            });

            ModolidadeTransporte = context.ShippingModes.All().ToList();
            ModolidadeTransporte.Insert(0, new ShippingMode()
            {
                Id = 0, Name = "SELECIONE..."
            });

            Vendedores = context.VendorsCustomer.Filter(p => p.CustomerID == Customer.Id).Select(p => p.Vendor).ToList();
        }
        public async Task <List <ParcelasCompra> > gerarParcelas(ParcelasDTO parcela)
        {
            CondicoesPagamentoDAO condicaoDao = new CondicoesPagamentoDAO();

            CondicoesPagamento condicao = await condicaoDao.BuscarPorID(parcela.codigoCondicaoPagamento);

            List <ParcelasCompra> listParcelas = new List <ParcelasCompra>();

            foreach (var p in condicao.parcelas)
            {
                var itemParcela = new ParcelasCompra
                {
                    numeroParcela        = p.numeroParcela,
                    dtEmissao            = DateTime.Now,
                    dtVencimento         = parcela.dtEmissao.AddDays((double)p.numeroDias),
                    codigoFormaPagamento = p.codigoFormaPagamento,
                    descricaoForma       = p.formaPagamento.descricao,
                    valorParcela         = decimal.Round(((p.porcentagem / 100) * parcela.valorTotal), 2)
                };
                listParcelas.Add(itemParcela);
            }

            var totalParcelas = listParcelas.Sum(k => k.valorParcela);

            if (totalParcelas != parcela.valorTotal)
            {
                if (totalParcelas < parcela.valorTotal)
                {
                    var dif  = parcela.valorTotal - totalParcelas;
                    var list = listParcelas.OrderBy(u => u.numeroParcela);
                    list.Last().valorParcela = list.Last().valorParcela + dif;
                    listParcelas = list.ToList();
                }
                if (totalParcelas > parcela.valorTotal)
                {
                    var dif  = totalParcelas - parcela.valorTotal;
                    var list = listParcelas.OrderBy(u => u.numeroParcela);
                    list.Last().valorParcela = list.Last().valorParcela - dif;
                    listParcelas = list.ToList();
                }
            }

            return(listParcelas);
        }