Exemplo n.º 1
0
        public void EnviarPedido(PedidoCliente pedido)
        {
            var factory = new ConnectionFactory()
            {
                HostName = "localhost"
            };

            using (var connection = factory.CreateConnection())
                using (var channel = connection.CreateModel())
                {
                    channel.QueueDeclare(queue: "PedidosClientes",
                                         durable: false,
                                         exclusive: false,
                                         autoDelete: false,
                                         arguments: null);

                    string message = JsonConvert.SerializeObject(pedido);

                    var body = Encoding.UTF8.GetBytes(message);

                    channel.BasicPublish(exchange: "",
                                         routingKey: "PedidosClientes",
                                         basicProperties: null,
                                         body: body);
                }
        }
        private string RenderViewToString(string viewNameDocumento, PedidoCliente pedido)
        {
            var renderedView = new StringBuilder();

            var controller = this;


            using (var responseWriter = new StringWriter(renderedView))
            {
                var fakeResponse = new HttpResponse(responseWriter);

                var fakeContext = new HttpContext(System.Web.HttpContext.Current.Request, fakeResponse);

                var fakeControllerContext = new ControllerContext(new HttpContextWrapper(fakeContext), controller.ControllerContext.RouteData,
                                                                  controller.ControllerContext.Controller);

                var oldContext = System.Web.HttpContext.Current;
                System.Web.HttpContext.Current = fakeContext;

                using (var viewPage = new ViewPage())
                {
                    var viewContext = new ViewContext(fakeControllerContext, new FakeView(), new ViewDataDictionary(), new TempDataDictionary(), responseWriter);

                    var html = new HtmlHelper(viewContext, viewPage);
                    html.RenderPartial(viewNameDocumento, pedido);
                    System.Web.HttpContext.Current = oldContext;
                }
            }

            return(renderedView.ToString());
        }
Exemplo n.º 3
0
        public async Task GetListaPedidos()
        {
            try
            {
                RabbitManager manager = new RabbitManager();
                PedidoCliente pedido  = manager.GetPedidos();

                if (pedido != null)
                {
                    _context.Add(pedido);
                    _context.SaveChanges();

                    //Save JSON file
                }
                else
                {
                    List <PedidoCliente> pedidos = _context.PedidosClientes.ToList();
                    int x = 10;
                }
            }
            catch (Exception)
            {
                throw;
            }
        }
Exemplo n.º 4
0
        public async Task <IActionResult> PostPedidoCliente([FromBody] PedidoCliente pedidoCliente)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest(ModelState));
                }

                pedidoCliente.TotalPedido = (pedidoCliente.QtdAdultos * 500) + (pedidoCliente.QtdCriancas * 250) + (pedidoCliente.QtdBebes * 50);

                if (pedidoCliente.IdaVolta == 2)
                {
                    pedidoCliente.TotalPedido = pedidoCliente.TotalPedido * 2;
                }

                RabbitManager send = new RabbitManager();
                send.EnviarPedido(pedidoCliente);

                return(Created("PostPedidoCliente", pedidoCliente));
            }
            catch (Exception)
            {
                throw;
            }
        }
Exemplo n.º 5
0
        public PedidoCliente GetPedidos()
        {
            PedidoCliente pedido = null;

            var factory = new ConnectionFactory()
            {
                HostName = "localhost"
            };

            using (var connection = factory.CreateConnection())
                using (var channel = connection.CreateModel())
                {
                    BasicGetResult data;
                    using (var cha = connection.CreateModel())
                    {
                        data = cha.BasicGet("PedidosClientes", true);
                    }

                    if (data != null)
                    {
                        pedido = JsonConvert.DeserializeObject <PedidoCliente>(Encoding.UTF8.GetString(data.Body));
                    }
                }

            return(pedido);
        }
        public void RealizaVenda(PedidoCliente pedidoCliente, DadosPedido dadosPedido)
        {
            using (var transaction = contexto.Database.BeginTransaction())
            {
                try
                {
                    EmailService emailService = new EmailService();

                    pedidoCliente.CodigoRastreio = "4WEB" + (new Random().Next(0, 1000000)).ToString().PadLeft(8, '0');

                    pedidoCliente.Numero = (new Random().Next(0, 1000000));

                    foreach (var item in pedidoCliente.Produtos)
                    {
                        item.IdProduto = item.Produto.IdProduto;
                        Produto p = contexto.Produto.FirstOrDefault(x => x.IdProduto == item.IdProduto);
                        p.QuantidadeEmEstoque  -= item.Quantidade;
                        contexto.Entry(p).State = System.Data.Entity.EntityState.Modified;

                        if (p.QuantidadeEmEstoque < p.QuantidadeEstoqueMinimo)
                        {
                            try
                            {
                                string email = ConfigurationManager.AppSettings["emailResponsavel"]?.ToString();
                                emailService.SendEmail(new List <string> {
                                    email
                                }, "Produto em falta", $"O produto {p.Nome} encontra-se com baixa quantidade em estoque. Repor imediatamente.");
                            } catch { }
                        }

                        item.Produto = null;
                    }

                    contexto.PedidoCliente.Add(pedidoCliente);
                    contexto.SaveChanges();

                    Faturamento faturamento = new Faturamento();
                    Pagamento   pagamento   = new Pagamento();
                    pagamento.Data          = DateTime.Now;
                    pagamento.MeioPagamento = (Dominio.Enums.MeioPagamento)dadosPedido.MeioPagamento;
                    pagamento.Origem        = pedidoCliente.IdCliente;
                    contexto.Pagamento.Add(pagamento);
                    contexto.SaveChanges();

                    faturamento.Pagamento     = pagamento;
                    faturamento.PedidoCliente = pedidoCliente;
                    contexto.Faturamento.Add(faturamento);
                    contexto.SaveChanges();

                    transaction.Commit();
                }
                catch (Exception ex)
                {
                    transaction.Rollback();
                    throw ex;
                }
            }
        }
        public ActionResult Resumo()
        {
            PedidoCliente pedido     = Session["PedidoCliente"] as PedidoCliente;
            float         valorFrete = float.Parse(Session["ValorFrete"].ToString());

            float somaPedido = pedido.Produtos.Sum(x => x.Quantidade * x.Produto.Preco);

            ViewBag.ValorTotalPedido = valorFrete + somaPedido;

            return(View(pedido));
        }
 public void EnviarEmailComNotaFiscal(string notaFiscal, PedidoCliente pedido)
 {
     servicoEmail.SendEmail(
         new List <string>()
     {
         pedido.Cliente.Email
     },
         "Pagamento",
         "Olá " + pedido.Cliente.Nome +
         ", \n O pagamento do seu pedido de número " + pedido.Numero + " foi confirmado. Segue nota fiscal do mesmo:" + notaFiscal);
 }
 public void EnviarEmailPedidoCancelado(PedidoCliente pedido)
 {
     servicoEmail.SendEmail(
         new List <string>()
     {
         pedido.Cliente.Email
     },
         "Pagamento",
         "Olá " + pedido.Cliente.Nome +
         ", \n O pagamento do seu pedido de número " + pedido.Numero + " não foi confirmado, por isso seu pedido foi cancelado.");
 }
Exemplo n.º 10
0
        public IHttpActionResult GettblPedidosCliente(int id)
        {
            tblPedidosCliente tblPedidosCliente = db.tblPedidosClientes.Find(id);

            if (tblPedidosCliente == null)
            {
                return(NotFound());
            }
            PedidoCliente pedidoCliente  = new PedidoCliente(tblPedidosCliente);
            var           pedidosCliente = JsonConvert.SerializeObject(pedidoCliente);

            return(Ok(pedidosCliente));
        }
Exemplo n.º 11
0
        public IEnumerable <PedidoCliente> SepararPedidos(List <Pedido> pedidos)
        {
            var pedidosSeparados = new List <PedidoCliente>();

            var categoriaAlimento = new List <string>();

            var IDAlimentos = new List <int>();

            if (pedidos.Count > 0)
            {
                var pedidoAux = pedidos[0];

                foreach (Pedido pedido in pedidos)
                {
                    if (pedidoAux.Num_IDCliente != pedido.Num_IDCliente)
                    {
                        var pedidoCliente = new PedidoCliente
                        {
                            Num_IDCliente     = pedidoAux.Num_IDCliente,
                            Nom_Cliente       = pedidoAux.Nom_Cliente,
                            CategoriaAlimento = categoriaAlimento,
                            Num_IDAlimentos   = IDAlimentos,
                            Ind_Ativo         = pedidoAux.Ind_Ativo
                        };

                        pedidosSeparados.Add(pedidoCliente);

                        categoriaAlimento = new List <string>();
                        IDAlimentos       = new List <int>();
                    }

                    categoriaAlimento.Add(pedido.Nom_Categoria + ": " + pedido.Nom_Alimento);
                    IDAlimentos.Add(pedido.Num_IDAlimento);

                    pedidoAux = pedido;
                }

                var pedidocliente = new PedidoCliente
                {
                    Num_IDCliente     = pedidoAux.Num_IDCliente,
                    Nom_Cliente       = pedidoAux.Nom_Cliente,
                    CategoriaAlimento = categoriaAlimento,
                    Num_IDAlimentos   = IDAlimentos,
                    Ind_Ativo         = pedidoAux.Ind_Ativo
                };

                pedidosSeparados.Add(pedidocliente);
            }
            return(pedidosSeparados);
        }
Exemplo n.º 12
0
        public async Task <IActionResult> PutPedidoCliente([FromBody] PedidoCliente pedidoCliente)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            pedidoCliente.PedidoConfirmado = true;

            RabbitManager send = new RabbitManager();

            send.EnviarPedido(pedidoCliente);

            return(Ok());
        }
Exemplo n.º 13
0
        public async Task <IActionResult> Put(Guid idLote, [FromBody] PedidoCliente pedidoCliente)
        {
            if (idLote != pedidoCliente.IdLote || pedidoCliente.IdCliente == Guid.Empty)
            {
                return(NotFound("Cliente ou lote não localizado"));
            }
            var pedidos = await _service.PedidosByIdLote(idLote);

            var cliente = await _service.GetCliente(pedidoCliente.IdCliente);

            if (pedidos == null || cliente == null)
            {
                return(NotFound("Cliente ou lote não localizado"));
            }

            await _service.UpdateLoteCliente(idLote, pedidoCliente.IdCliente);

            return(Ok(true));
        }
Exemplo n.º 14
0
 protected void Unificar_Pedidos(Object Sender, EventArgs e)
 {
     //Primero se verifican si los dos pedidos son el mismo
     if (((prefijoPedidoOrigen.SelectedValue.ToString()) == (prefijoPedidoDestino.SelectedValue.ToString())) && ((numeroPedidoOrigen.SelectedItem.ToString()) == (numeroPedidoDestino.SelectedItem.ToString())))
     {
         Utils.MostrarAlerta(Response, "Pedidos Iguales. Operación No Valida");
     }
     else
     {
         //llamamos la funcion de unificacion de pedidos de la clase PedidoCliente
         PedidoCliente pedidoActualizacion = new PedidoCliente();
         if (pedidoActualizacion.Unificar_Pedidos(prefijoPedidoOrigen.SelectedValue.ToString(), numeroPedidoOrigen.SelectedItem.ToString(), prefijoPedidoDestino.SelectedValue.ToString(), numeroPedidoDestino.SelectedItem.ToString()))
         {
             lb.Text += "<br>Proceso realizado Satisfactoriamente, se han Unificado los pedidos ..!!! ";
         }
         else
         {
             lb.Text += pedidoActualizacion.ProcessMsg;
         }
     }
 }
        public bool ConfirmarCompra()
        {
            ProdutoCadastro produtoNeg = new ProdutoCadastro();

            DadosPedido   dadosPedido   = Session["DadosPedido"] as DadosPedido;
            PedidoCliente pedidoCliente = Session["PedidoCliente"] as PedidoCliente;

            Session["Carrinho"]      = null;
            Session["DadosPedido"]   = null;
            Session["PedidoCliente"] = null;

            try
            {
                produtoNeg.RealizaVenda(pedidoCliente, dadosPedido);
            }
            catch (Exception ex)
            {
                return(false);
            }
            return(true);
        }
Exemplo n.º 16
0
        protected void Page_Load(object sender, System.EventArgs e)
        {
            prefijoPedidoInfo = Request.QueryString["prefPed"];
            numeroPedidoInfo  = Request.QueryString["numPed"];
            PedidoCliente infoPedido = new PedidoCliente(prefijoPedidoInfo, numeroPedidoInfo);

            prefijoPedido.Text   = DBFunctions.SingleData("SELECT pdoc_nombre FROM pdocumento WHERE pdoc_codigo='" + prefijoPedidoInfo + "'");
            numeroPedido.Text    = numeroPedidoInfo;
            catalogo.Text        = infoPedido.Catalogo;
            colorPrimario.Text   = DBFunctions.SingleData("SELECT pcol_descripcion FROM pcolor WHERE pcol_codigo='" + infoPedido.ColorPrimario + "'");
            colorOpcional.Text   = DBFunctions.SingleData("SELECT pcol_descripcion FROM pcolor WHERE pcol_codigo='" + infoPedido.ColorOpcional + "'");
            claseVehiculo.Text   = DBFunctions.SingleData("SELECT tcla_nombre FROM tclasevehiculo WHERE tcla_clase='" + infoPedido.ClaseVehiculo + "'");
            anoModelo.Text       = infoPedido.AnoModelo;
            fechaPedido.Text     = infoPedido.FechaPedido;
            fechaEntrega.Text    = infoPedido.FechaProgEntrega;
            lbVendedor.Text      = DBFunctions.SingleData("SELECT pven_nombre FROM pvendedor WHERE pven_codigo='" + infoPedido.Vendedor + "'");
            sedeVenta.Text       = DBFunctions.SingleData("SELECT palm_descripcion FROM palmacen WHERE tvig_vigencia='V' and palm_almacen=(SELECT palm_almacen FROM pvendedor WHERE pven_codigo='" + infoPedido.Vendedor + "')");
            nitPrincipal.Text    = infoPedido.Nit;
            nombrePrincipal.Text = DBFunctions.SingleData("SELECT mnit_apellidos CONCAT ' ' CONCAT mnit_nombres FROM mnit WHERE mnit_nit='" + infoPedido.Nit + "'");
            nitAlterno.Text      = infoPedido.NitOpcional;
            nombreAlterno.Text   = DBFunctions.SingleData("SELECT mnit_apellidos CONCAT ' ' CONCAT mnit_nombres FROM mnit WHERE mnit_nit='" + infoPedido.NitOpcional + "'");
            MostrarAnticipos(infoPedido.TablaAnticipos);
            MostrarRetoma(infoPedido.VehiculosRetoma);
        }
        public JsonResult FinalizarPedido(DadosPedido pedido)
        {
            Cliente cliente = Session["Cliente"] as Cliente;

            Endereco enderecoEntrega = new Endereco();

            enderecoEntrega.Rua    = pedido.Endereco;
            enderecoEntrega.CEP    = Convert.ToInt64(pedido.CEP);
            enderecoEntrega.Numero = pedido.Numero;
            enderecoEntrega.Bairro = pedido.Bairro;

            Session["ValorFrete"]  = pedido.ValorFrete;
            Session["DadosPedido"] = pedido;

            CidadeCadastro cidadeNeg = new CidadeCadastro();

            Cidade cidade = cidadeNeg.BuscaCidade(pedido.Cidade);

            if (cidade == null)
            {
                return(Json(new { CodRetorno = "aviso", Mensagem = "Cidade não encontrada" }));
            }
            else
            {
                enderecoEntrega.Cidade = cidade;
            }

            enderecoEntrega.Complemento = pedido.Complemento;

            PedidoCliente pedidoCliente = new PedidoCliente
            {
                Data            = DateTime.Now,
                EnderecoEntrega = enderecoEntrega,
                IdCliente       = cliente.Id,
                Status          = Dominio.Enums.StatusPedido.AguardandoConfirmacaoPagamento
            };

            List <Produto> carrinho = Session["Carrinho"] as List <Produto> ?? new List <Produto>();

            ProdutoCadastro produtoNeg = new ProdutoCadastro();

            if (produtoNeg.ValidaQuantidadeEstoque(carrinho))
            {
                var produtos = carrinho
                               .GroupBy(x => x.IdProduto)
                               .Select(x => new PedidoClienteProduto
                {
                    Produto    = x.FirstOrDefault(),
                    Quantidade = x.Count()
                }).ToList();

                pedidoCliente.Produtos = produtos;

                Session["PedidoCliente"] = pedidoCliente;

                return(Json(new { CodRetorno = "sucesso", Mensagem = "Você será redirecionado para conclusão do pedido" }));
            }
            else
            {
                Session["Carrinho"]      = null;
                Session["DadosPedido"]   = null;
                Session["PedidoCliente"] = null;
                return(Json(new { CodRetorno = "erro", Mensagem = "Os produtos não estão mais disponíveis" }));
            }
        }
        public ActionResult VerPedidos()
        {
            List <Compra> compra;

            List <PedidoCliente>  pedidos = new List <PedidoCliente>();
            PedidoCliente         pedido;
            List <Detalle_compra> detalle_compra;
            List <ItemPedido>     itemPed = new List <ItemPedido>();

            ItemPedido iPed;

            string  correo = User.Identity.Name;
            Cliente cl     = (from c in db.Cliente
                              where c.email == correo
                              select c).ToList().FirstOrDefault();

            var query = from o in db.Compra
                        where o.id_cliente == cl.id_cliente
                        orderby o.fecha_compra ascending
                        select o;

            if (query.Count() > 0)
            {
                var comprass = query.FirstOrDefault();

                compra = query.ToList();


                var queryOrden = (from k in db.Oden_cliente
                                  where k.id_compra == comprass.id_compra
                                  select k).FirstOrDefault();

                foreach (Compra c in compra)
                {
                    pedido        = new PedidoCliente();
                    pedido.compra = c;
                    pedido.fecha  = c.fecha_compra.ToString();
                    if (queryOrden.fecha_envio.HasValue)
                    {
                        pedido.envio = queryOrden.fecha_envio.GetValueOrDefault().ToShortDateString();
                    }
                    else
                    {
                        pedido.envio = "Proximamente";
                    }
                    if (queryOrden.fecha_entrega.HasValue)
                    {
                        pedido.estatus = queryOrden.fecha_entrega.GetValueOrDefault().ToShortDateString();
                    }
                    else
                    {
                        pedido.estatus = "Sin entregar";
                    }
                    pedido.total = queryOrden.total.ToString();
                    pedidos.Add(pedido);
                    detalle_compra = (from oP in db.Detalle_compra
                                      where oP.Id_compra == c.id_compra
                                      select oP).ToList();
                    pedido.compraProductos = detalle_compra;
                    foreach (Detalle_compra op in detalle_compra)
                    {
                        iPed          = new ItemPedido();
                        iPed.idOrd    = op.Id_compra;
                        iPed.product  = db.Producto.First(p => p.Id_producto == op.id_producto);
                        iPed.Cantidad = op.cantidad;
                        itemPed.Add(iPed);
                    }
                }
            }


            Session["misPedidos"] = pedidos;
            Session["Pedido"]     = itemPed;

            return(View());
        }
Exemplo n.º 19
0
        protected void Realizar_Accion(Object Sender, EventArgs e)
        {
            switch (Request.QueryString["acci"])
            {
            case "A":
            {
                //Obtener si coincide el tipo de servicio. Para aplicar ipoconsumo.
                DataSet dsTipoServ = new DataSet();
                DBFunctions.Request(dsTipoServ, IncludeSchema.NO,
                                    "SELECT mp.tser_tiposerv FROM mcatalogovehiculo mc, mpedidovehiculo mp where  mc.pcat_codigo=mp.pcat_codigo " +
                                    "and mcat_vin=(select mcat_vin from MVEHICULO WHERE MVEH_INVENTARIO ='" + vin + "') and mp.pdoc_codigo='" + prefijoPedido.SelectedValue + "' and mp.mped_numepedi=" + numeroPedido.SelectedValue + " and (mp.tser_tiposerv=mc.tser_tiposerv or mp.tser_tiposerv='');");

                //Primero revisamos si los valores de numero pedido y numero de vin no sean vacias

                //if((hdnumpedi.Value=="")||(vinVehiculo.Items.Count==0))
                if ((numeroPedido.SelectedValue == "") || (vin == "") || (vin == null))
                {
                    Utils.MostrarAlerta(Response, "El número de Pedido es vacio,o no ha seleccionado un vehiculo.Por Favor Revise");
                }
                else if (dsTipoServ.Tables[0].Rows.Count == 0)
                {
                    Utils.MostrarAlerta(Response, "El tipo de servicio del catálogo seleccionado no coincide con el tipo de servicio de creación de pedido. Por favor seleccione el catálogo adecuado.");
                }
                else
                {
                    PedidoCliente pedidoAsignacion = new PedidoCliente();
                    String        fechaHoy         = DateTime.Now.Date.ToString("yyyy-MM-dd");;
                    String        usuario          = HttpContext.Current.User.Identity.Name.ToLower();

                    if (pedidoAsignacion.Asignar_Vehiculo_Pedido(prefijoPedido.SelectedValue.ToString(), numeroPedido.SelectedValue.ToString(), vin, fechaHoy, usuario))
                    {
                        Response.Redirect("" + indexPage + "?process=Vehiculos.AsignacionFacturacionVehiculos");
                    }
                    else
                    {
                        lb.Text = pedidoAsignacion.ProcessMsg;
                        Utils.MostrarAlerta(Response, "Error en Asignación");
                    }
                }
            }
            break;

            case "D":
            {
                //Primero revisamos si el numero de pedido es vacio o no
                if (numeroPedido.SelectedValue == "")
                {
                    Utils.MostrarAlerta(Response, "El número de Pedido es Vacio, Revise Por Favor");
                }
                else
                {
                    PedidoCliente pedidoDesasignacion = new PedidoCliente();
                    if (pedidoDesasignacion.Desasignar_Vehiculo_Pedido(prefijoPedido.SelectedValue.ToString(), numeroPedido.SelectedValue.ToString(), numeInventario.Text))
                    {
                        //lb.Text = "<br>bien : "+pedidoDesasignacion.ProcessMsg;
                        Response.Redirect("" + indexPage + "?process=Vehiculos.AsignacionFacturacionVehiculos");
                    }
                    else
                    {
                        //lb.Text = pedidoDesasignacion.ProcessMsg;
                        Utils.MostrarAlerta(Response, "Error en Desasignación");
                    }
                }
            }
            break;
            }
        }
 private void AlterarStatusParaEnviado(PedidoCliente pedido)
 {
     pedido.Status = Dominio.Enums.StatusPedido.Enviado;
     contexto.Entry(pedido).State = EntityState.Modified;
     contexto.SaveChanges();
 }
 private void AlterarStatusParaAguardandoColeta(PedidoCliente pedido)
 {
     pedido.Status = Dominio.Enums.StatusPedido.AguardandoColeta;
     contexto.Entry(pedido).State = EntityState.Modified;
     contexto.SaveChanges();
 }
 public void AlterarStatusParaPendenteDeEnvio(PedidoCliente pedido)
 {
     pedido.Status = Dominio.Enums.StatusPedido.PendenteEnvio;
     contexto.Entry(pedido).State = EntityState.Modified;
     contexto.SaveChanges();
 }
Exemplo n.º 23
0
        protected void RealizarDevolucion(Object Sender, EventArgs e)
        {
            ArrayList sqlStrings = new ArrayList();

            bool valido = true;

            if (numeroPedidoOtro.Items.Count == 0)
            {
                Utils.MostrarAlerta(Response, "No se ha seleccionado un pedido para realizar la devolución. Revise Por Favor.");
                valido = false;
            }
            if (prefijoDevoluciones.Items.Count == 0)
            {
                Utils.MostrarAlerta(Response, "No se ha seleccionado un prefijo para la nota de devolución. Revise Por Favor.");
                valido = false;
            }
            if (ddlNotaDebito.Items.Count == 0)
            {
                Utils.MostrarAlerta(Response, "No se ha seleccionado un prefijo para la nota Débito. Revise Por Favor.");
                valido = false;
            }
            // Validamos que el estado del vehículo este en FACTURADO.
            if (Convert.ToInt32(DBFunctions.SingleData("Select count(*) from dbxschema.mvehiculo where test_tipoesta=40 and mveh_inventario = (Select mveh_inventario from dbxschema.masignacionvehiculo where pdoc_codigo='" + prefijoPedidoOtro.SelectedValue + "' and mped_numepedi=" + numeroPedidoOtro.SelectedValue + ")")) == 0)
            {
                Utils.MostrarAlerta(Response, "El vehículo NO se encuentra en estado facturado. Revise Por Favor.");
                valido = false;
            }
            // Validamos que el estado del pedido este en FACTURADO.
            if (Convert.ToInt32(DBFunctions.SingleData("Select count(*) from dbxschema.mpedidovehiculo where test_tipoesta=30 and pdoc_codigo='" + prefijoPedidoOtro.SelectedValue + "' and mped_numepedi=" + numeroPedidoOtro.SelectedValue)) == 0)
            {
                Utils.MostrarAlerta(Response, "El pedido no se encuentra en estado facturado. Revise Por Favor.");
                valido = false;
            }

            // validación de la fecha de devolución
            if (fechNota.Text == "")
            {
                Utils.MostrarAlerta(Response, "Olvidó insertar la fecha de la devolución ..");
                errorFecha = true;
                return;
            }
            DateTime fechaDevolucion = Convert.ToDateTime(fechNota.Text.Trim());
            string   anoyMes         = DBFunctions.SingleData("SELECT PANO_ANO concat '-' concat PMES_MES FROM CVEHICULOS");

            string[] anoMes = anoyMes.Split('-');
            if (fechaDevolucion.Year.ToString() != anoMes[0].ToString() || fechaDevolucion.Month.ToString() != anoMes[1].ToString())
            {
                Utils.MostrarAlerta(Response, "La fecha de la devolución " + fechaDevolucion.Year.ToString() + " - " + fechaDevolucion.Month.ToString() + "  es diferente a la vigencia de Vehículos " + anoyMes + ". Revise Por Favor");
                valido = false;
            }

            if (valido)
            {
                PedidoCliente pedidoDevolucion = new PedidoCliente(prefijoPedidoOtro.SelectedValue,
                                                                   numeroPedidoOtro.SelectedValue, prefijoDevoluciones.SelectedValue, fechaDevolucion.ToString());

                pedidoDevolucion.PrefNotaDebito = ddlNotaDebito.SelectedValue;
                pedidoDevolucion.NumeNotaDebito = Convert.ToUInt32(DBFunctions.SingleData("select pdoc_ultidocu + 1 from pdocumento where pdoc_codigo='" + ddlNotaDebito.SelectedValue + "';"));
                pedidoDevolucion.UsuarioActual  = HttpContext.Current.User.Identity.Name.ToLower();
                pedidoDevolucion.Observaciones  = TextArea1.Value;

                /*Retencion retencion = new Retencion(
                 *                          pedidoDevolucion.Nit,
                 *                          pedidoDevolucion.PrefijoNotaDevCli,
                 *                          (int)facturaVentaVehiculo.NumeroFactura,
                 *                          facturaVentaVehiculo.ValorFactura,
                 *                          facturaVentaVehiculo.ValorIva,
                 *                          "V");
                 */
                proceso = ViewState["eliminar"] == null ? "" : ViewState["eliminar"].ToString();
                //proceso = ViewState["eliminar"].ToString(); //esto no funciona porque el viewState puede venir null.

                if (proceso == "E")  // en eliminacion la fecha tiene que ser la misma de la factura
                {
                    string prefijoFactura = DBFunctions.SingleData("SELECT pdoc_codigo FROM mfacturapedidovehiculo WHERE mped_codigo='" + prefijoPedidoOtro.SelectedValue + "' AND mped_numepedi=" + numeroPedidoOtro.SelectedValue + "");
                    uint   numeroFactura  = Convert.ToUInt32(DBFunctions.SingleData("SELECT mfac_numedocu FROM mfacturapedidovehiculo WHERE mped_codigo='" + prefijoPedidoOtro.SelectedValue + "' AND mped_numepedi=" + numeroPedidoOtro.SelectedValue + ""));

                    if (!DBFunctions.RecordExist("SELECT MFAC_FACTURA FROM MFACTURACLIENTE MF, CVEHICULOS CV WHERE PDOC_CODIGO = '" + prefijoFactura + "' and mfac_numedocu = " + numeroFactura + " and year(mfac_factura) = cv.pano_ano and month(mfac_factura) = cv.pmes_mes "))
                    {
                        Utils.MostrarAlerta(Response, "La fecha de la Eliminacion No es igual a la fecha Original de la factura ");
                        return;
                    }
                }

                if (pedidoDevolucion.RealizarDevolucion(proceso))
                {
                    sqlStrings.Add(@"UPDATE MPEDIDOVEHICULO SET MPED_OBSERVACION = '" + TextArea1.Value + "' WHERE PDOC_CODIGO = '" + prefijoPedidoOtro.SelectedValue + "' AND   MPED_NUMEPEDI = " + numeroPedidoOtro.SelectedValue);
                    if (!DBFunctions.Transaction(sqlStrings))
                    {
                        Utils.MostrarAlerta(Response, "Error al Realizar Devolucion ");
                    }

                    Response.Redirect("" + indexPage + "?process=Vehiculos.DevolucionFacturaCliente&el=1&prefPed=" + prefijoPedidoOtro.SelectedValue + "&ped=" + numeroPedidoOtro.SelectedValue + "&prefNota=" + pedidoDevolucion.PrefijoNota + "&numNota=" + pedidoDevolucion.NumeroNota + "&prefNotaAcce=" + pedidoDevolucion.PrefNotaAccesorios + "&numNotaAcce=" + pedidoDevolucion.NumeNotaAccesorios);
                }
                else
                {
                    lb.Text += pedidoDevolucion.ProcessMsg;
                }
            }
        }