Ejemplo n.º 1
0
        public JsonResult JsGetParcelas(int idCondicaoPagamento, decimal vlTotal, DateTime?dtIiniParcela)
        {
            var daoConPag    = new DAOCondicaoPagamento();
            var cond         = daoConPag.GetCondicaoPagamento(idCondicaoPagamento);
            var ListCondicao = cond.ListCondicao.OrderBy(k => k.nrParcela);

            var ListParcelas = new List <Models.Shared.ParcelasVM>();
            var dtInicio     = DateTime.Now;

            if (dtIiniParcela != null)
            {
                dtInicio = dtIiniParcela.GetValueOrDefault();
            }
            foreach (var parcela in ListCondicao)
            {
                var itemParcela = new Models.Shared.ParcelasVM
                {
                    nrParcela        = parcela.nrParcela,
                    dtVencimento     = dtInicio.AddDays((double)parcela.qtDias),
                    idFormaPagamento = parcela.codFormaPagamento,
                    nmFormaPagamento = parcela.nomeFormaPagamento,
                    vlParcela        = decimal.Round(((parcela.txPercentual / 100) * vlTotal), 2)
                };
                ListParcelas.Add(itemParcela);
            }
            var totalParcelas = ListParcelas.Sum(k => k.vlParcela);

            if (totalParcelas != vlTotal)
            {
                if (totalParcelas < vlTotal)
                {
                    var dif  = vlTotal - totalParcelas;
                    var list = ListParcelas.OrderBy(u => u.nrParcela);
                    list.Last().vlParcela = list.Last().vlParcela + dif;
                    ListParcelas = list.ToList();
                }
                if (totalParcelas > vlTotal)
                {
                    var dif  = totalParcelas - vlTotal;
                    var list = ListParcelas.OrderBy(u => u.nrParcela);
                    list.Last().vlParcela = list.Last().vlParcela - dif;
                    ListParcelas = list.ToList();
                }
            }

            var result = new
            {
                type     = "success",
                message  = "Parcelas geradas com sucesso!",
                parcelas = ListParcelas
            };

            return(Json(result, JsonRequestBehavior.AllowGet));
        }
Ejemplo n.º 2
0
        public ActionResult VendaOS(int id, Sistema.Models.VendasOS model)
        {
            model.codigo          = id;
            model.codOrdemServico = id;
            if (model.Funcionario.id == null)
            {
                ModelState.AddModelError("Funcionario.id", "Informe o vendedor");
            }
            if (model.Cliente.id == null)
            {
                ModelState.AddModelError("Cliente.id", "Informe o cliente");
            }
            if (model.ProdutosVenda != null && model.ProdutosVenda.Any() && model.CondicaoPagamentoDois.id != null && (model.ParcelasVendaProdutos == null || !model.ParcelasVendaProdutos.Any()))
            {
                ModelState.AddModelError("CondicaoPagamentoDois.id", "Informe as parcelas dos produtos");
            }
            if (ModelState.IsValid)
            {
                try
                {
                    var DAOVendas        = new DAOVendas();
                    var produtosVenda    = new List <Models.Vendas.ProdutosVM>();
                    var parcelasProdutos = new List <Models.Shared.ParcelasVM>();

                    //VENDA SERVIÇO
                    DAOVendas.InsertServico(model);

                    //VENDA PRODUTO
                    if (model.ProdutosVenda != null && model.ProdutosVenda.Any())
                    {
                        var vendaProduto = new Models.Vendas
                        {
                            Funcionario = new Select.Funcionarios.Select
                            {
                                id            = model.Funcionario.id,
                                nmFuncionario = model.Funcionario.text,
                            },
                            Cliente = new Select.Clientes.Select
                            {
                                id   = model.Cliente.id,
                                text = model.Cliente.text,
                            },
                            CondicaoPagamento = new Select.CondicaoPagamento.Select
                            {
                                id       = model.CondicaoPagamentoDois.id,
                                text     = model.CondicaoPagamentoDois.text,
                                desconto = model.CondicaoPagamentoDois.desconto,
                                multa    = model.CondicaoPagamentoDois.multa,
                                txJuros  = model.CondicaoPagamentoDois.txJuros
                            },
                            modelo          = "65",
                            codOrdemServico = model.codOrdemServico,
                        };
                        foreach (var item in model.ProdutosVenda)
                        {
                            var prod = new Models.Vendas.ProdutosVM
                            {
                                codProduto  = item.codProduto,
                                nomeProduto = item.nomeProduto,
                                qtProduto   = item.qtProduto,
                                txDesconto  = item.txDesconto,
                                unidade     = item.unidade,
                                vlVenda     = item.vlVenda,
                            };
                            produtosVenda.Add(prod);
                        }
                        vendaProduto.ProdutosVenda = produtosVenda;
                        foreach (var item in model.ParcelasVendaProdutos)
                        {
                            var par = new Models.Shared.ParcelasVM
                            {
                                idFormaPagamento = item.idFormaPagamento,
                                nmFormaPagamento = item.nmFormaPagamento,
                                nrParcela        = item.nrParcela,
                                vlParcela        = item.vlParcela,
                                dtPagamento      = item.dtPagamento,
                                dtVencimento     = item.dtVencimento,
                                situacao         = item.situacao,
                            };
                            parcelasProdutos.Add(par);
                        }
                        vendaProduto.ParcelasVenda = parcelasProdutos;

                        DAOVendas.InsertProduto(vendaProduto);
                    }
                    this.AddFlashMessage("Ordem de Serviço finalizada com sucesso");
                    return(RedirectToAction("Index", "OrdemServico"));
                }
                catch (Exception ex)
                {
                    this.AddFlashMessage(ex.Message, FlashMessage.ERROR);
                    return(View(model));
                }
            }
            else
            {
                return(View(model));
            }
        }