示例#1
0
        public JsonResult InserirItemResumido(int codigoPedido, int codigoProduto, int quantidade, decimal valorVenda, bool cobrarEncargos, int?codigoMotivo)
        {
            string        mensagemErro;
            ProdutoBLL    produtoBLL    = new ProdutoBLL();
            ItemPedidoBLL itemPedidoBLL = new ItemPedidoBLL();

            //Buscar o produto
            Produto produto = produtoBLL.GetProdutoById(codigoProduto, out mensagemErro);

            //CRIAR ITEM VENDIDO
            ItemPedido itemPedido = new ItemPedido();

            itemPedido.Produto.Codigo = codigoProduto;
            itemPedido.CodigoPedido   = codigoPedido;
            itemPedido.Quantidade     = quantidade;

            //ATRIBUIR DATAS
            itemPedido.DataInicioVigencia = DateTime.Now.AddDays(7);
            itemPedido.DataExpiracao      = DateTime.Now.AddDays(7).AddMonths(produto.MesesVigencia);

            //CALCULAR OS ENCARGOS
            decimal valorEncargo = 0;

            if (cobrarEncargos)
            {
                valorEncargo = valorVenda * (produto.PercentualIIS / 100);
            }
            itemPedido.ValorEncargos = quantidade * valorEncargo;

            //CALCULAR VALOR DE DESCONTO
            itemPedido.ValorDesconto = (produto.ValorPorPessoa - valorVenda > 0 ? produto.ValorPorPessoa - valorVenda : 0);

            //CALCULAR VALORES TOTAIS
            itemPedido.valorFinal = valorVenda;
            itemPedido.Subtotal   = (valorVenda * quantidade) + itemPedido.ValorEncargos;

            //DADOS GERAIS
            itemPedido.Confirmado         = false;
            itemPedido.CodigoMotivoPedido = (codigoMotivo.HasValue && codigoMotivo > 0 ? (int)codigoMotivo : 1);
            itemPedido.ValorDesconto      = 0;

            //VERIFICAR SE O PRODUTO JÁ FOI VENDIDO
            List <ItemPedido> retorno = itemPedidoBLL.getItemPedido(codigoProduto, codigoPedido, out mensagemErro);

            if (retorno == null || retorno.Count == 0)
            {
                //INSERIR O ITEM
                if (itemPedidoBLL.insertItemPedido(itemPedido, out mensagemErro))
                {
                    return(Json(new { sucesso = true, item = itemPedido }));
                }
                else
                {
                    return(Json(new { sucesso = false, mensagemErro = mensagemErro }));
                }
            }
            else
            {
                //ATUALIZA O ITEM
                if (itemPedidoBLL.updateItemPedido(itemPedido, out mensagemErro))
                {
                    return(Json(new { sucesso = true, item = itemPedido }));
                }
                else
                {
                    return(Json(new { sucesso = false, mensagemErro = mensagemErro }));
                }
            }
        }