示例#1
0
        public async Task <ContratoDetallesPedido> DetalleProductoPedido(int idProductoPedido)
        {
            ContratoDetallesPedido detalleProductoPedido = new ContratoDetallesPedido();
            ProdSerXVendidosPed    productoPedido        = _pEPedidoBiz.GetProductoPedidoPorId(idProductoPedido);

            System.Diagnostics.Debug.WriteLine(productoPedido);

            if (productoPedido != null)
            {
                ProductosServiciosPc producto = await _cOContenidoFachada.GetPublicacionPorIdPublicacion(productoPedido.Idproductoservico);

                if (producto != null)
                {
                    detalleProductoPedido.Id       = producto.Id;
                    detalleProductoPedido.Precio   = producto.Preciounitario;
                    detalleProductoPedido.Cantidad = productoPedido.Cantidadespedida;
                    detalleProductoPedido.Fecha    = productoPedido.Creacion;
                }
                else
                {
                    throw new COExcepcion("El producto no existe.");
                }
            }
            else
            {
                throw new COExcepcion("El producto solicitado no existe.");
            }
            return(detalleProductoPedido);
        }
        internal async Task <RespuestaDatos> GuardarProductoPedido(ProdSerXVendidosPed productoPedido, PedidosPed pedido)
        {
            RespuestaDatos respuestaDatos;

            if (pedido != null)
            {
                try
                {
                    respuestaDatos = await _repoProdSerXVendidosPed.GuardarProductoPedido(productoPedido);
                }
                catch (COExcepcion e)
                {
                    RepoErrorLog.AddErrorLog(new ErrorLog
                    {
                        Mensaje   = e.Message,
                        Traza     = e.StackTrace,
                        Usuario   = "no_aplica",
                        Creacion  = DateTime.Now,
                        Tipoerror = COErrorLog.ENVIO_CORREO
                    });
                    throw e;
                }
            }
            else
            {
                throw new COExcepcion("El pedido ingresado no existe.");
            }
            return(respuestaDatos);
        }
示例#3
0
        internal async Task <RespuestaDatos> GuardarProductoPedido(ProdSerXVendidosPed productoPedido)
        {
            using FeContext context = new FeContext();
            RespuestaDatos respuestaDatos;

            try
            {
                context.Add(productoPedido);
                System.Diagnostics.Debug.WriteLine("Lo añadió :)");
                System.Diagnostics.Debug.WriteLine(productoPedido.Creacion);
                context.SaveChanges();
                System.Diagnostics.Debug.WriteLine("Khe");
                respuestaDatos = new RespuestaDatos {
                    Codigo = COCodigoRespuesta.OK, Mensaje = "Producto pedido creado exitosamente."
                };
            }
            catch (Exception e)
            {
                RepoErrorLog.AddErrorLog(new ErrorLog
                {
                    Mensaje   = e.Message,
                    Traza     = e.StackTrace,
                    Usuario   = "no_aplica",
                    Creacion  = DateTime.Now,
                    Tipoerror = COErrorLog.ENVIO_CORREO
                });
                throw new COExcepcion("Ocurrió un problema al intentar realizar la creación del detalle de producto de pedido");
            }
            return(respuestaDatos);
        }
示例#4
0
        public async Task <Boolean> ValidarPrecioProductoPedido(ProdSerXVendidosPed productoPedido)
        {
            ProductosServiciosPc producto = new ProductosServiciosPc();

            //System.Diagnostics.Debug.WriteLine(productoPedido.Idproductoservico);
            producto = await _cOContenidoFachada.GetPublicacionPorIdPublicacion(productoPedido.Idproductoservico);

            //System.Diagnostics.Debug.WriteLine(producto);
            bool validacion = false;

            if (producto != null)
            {
                bool check1 = unchecked (producto.Preciounitario == (int)producto.Preciounitario);
                bool check2 = unchecked (productoPedido.Preciototal == (int)productoPedido.Preciototal);
                if (check1 && check2)
                {
                    System.Diagnostics.Debug.WriteLine("Si entró");
                    System.Diagnostics.Debug.WriteLine(productoPedido.Preciototal);
                    System.Diagnostics.Debug.WriteLine(producto.Preciounitario);
                    System.Diagnostics.Debug.WriteLine(productoPedido.Cantidadespedida);
                    if (productoPedido.Preciototal == producto.Preciounitario * productoPedido.Cantidadespedida)
                    {
                        System.Diagnostics.Debug.WriteLine("Si entró al otro");
                        validacion = true;
                    }
                }
            }
            else
            {
                throw new COExcepcion("El producto solicitado no existe.");
            }

            return(validacion);
        }
示例#5
0
        public async Task <RespuestaDatos> ModificarProductoPedido(ProdSerXVendidosPed productoPedido)
        {
            RespuestaDatos respuestaDatos;

            try
            {
                respuestaDatos = await _pEPedidoBiz.ModificarProductoPedido(productoPedido);
            }
            catch (COExcepcion e)
            {
                throw e;
            }
            return(respuestaDatos);
        }
        internal ProdSerXFacturaFac ProductoPedidoAProductoFactura(ProdSerXVendidosPed productoPedido, int idFactura)
        {
            ProdSerXFacturaFac productoFactura = new ProdSerXFacturaFac();

            if (productoPedido != null && idFactura != -1)
            {
                productoFactura.Id = 0;
                productoFactura.Preciofacturado    = productoPedido.Preciototal;
                productoFactura.Cantidadfacturado  = productoPedido.Cantidadespedida;
                productoFactura.Idproductoservicio = productoPedido.Idproductoservico;
                productoFactura.Idfactura          = idFactura;
            }

            return(productoFactura);
        }
示例#7
0
        public async Task <Boolean> ValidarCantidadProductoPedido(ProdSerXVendidosPed productoPedido)
        {
            ProductosServiciosPc producto = await _cOContenidoFachada.GetPublicacionPorIdPublicacion(productoPedido.Idproductoservico);

            bool validacion = false;

            if (producto != null)
            {
                if (producto.Cantidadtotal >= productoPedido.Cantidadespedida)
                {
                    validacion = true;
                }
            }
            else
            {
                throw new COExcepcion("El producto no existe");
            }
            return(validacion);
        }
        internal async Task <RespuestaDatos> ModificarProductoPedido(ProdSerXVendidosPed productoPedido)
        {
            RespuestaDatos respuestaDatos;

            try
            {
                respuestaDatos = await _repoProdSerXVendidosPed.ModificarProductoPedido(productoPedido);
            }
            catch (COExcepcion e)
            {
                RepoErrorLog.AddErrorLog(new ErrorLog
                {
                    Mensaje   = e.Message,
                    Traza     = e.StackTrace,
                    Usuario   = "no_aplica",
                    Creacion  = DateTime.Now,
                    Tipoerror = COErrorLog.ENVIO_CORREO
                });
                throw e;
            }
            return(respuestaDatos);
        }
示例#9
0
        internal async Task <RespuestaDatos> ModificarProductoPedido(ProdSerXVendidosPed productoPedido)
        {
            using FeContext context = new FeContext();
            RespuestaDatos      respuestaDatos;
            ProdSerXVendidosPed prodPed = GetProductoPedidoPorId(productoPedido.Id);

            if (prodPed != null)
            {
                try
                {
                    context.Attach(prodPed);
                    prodPed.Idproductoservico = productoPedido.Idproductoservico;
                    prodPed.Idpedido          = productoPedido.Idpedido;
                    prodPed.Preciototal       = productoPedido.Preciototal;
                    prodPed.Cantidadespedida  = productoPedido.Cantidadespedida;
                    context.SaveChanges();
                    respuestaDatos = new RespuestaDatos {
                        Codigo = COCodigoRespuesta.OK, Mensaje = "Producto pedido modificado exitosamente."
                    };
                }
                catch (Exception e)
                {
                    RepoErrorLog.AddErrorLog(new ErrorLog
                    {
                        Mensaje   = e.Message,
                        Traza     = e.StackTrace,
                        Usuario   = "no_aplica",
                        Creacion  = DateTime.Now,
                        Tipoerror = COErrorLog.ENVIO_CORREO
                    });
                    throw new COExcepcion("Ocurrió un problema al intentar modificar el producto pedido.");
                }
            }
            else
            {
                throw new COExcepcion("El producto pedido no existe");
            }
            return(respuestaDatos);
        }
示例#10
0
        internal async Task <RespuestaDatos> RemoverProductoPedido(int idProductoPedido)
        {
            using FeContext context = new FeContext();
            RespuestaDatos      respuestaDatos;
            ProdSerXVendidosPed prodPed = GetProductoPedidoPorId(idProductoPedido);

            if (prodPed != null)
            {
                try
                {
                    context.ProdSerXVendidosPeds.Attach(prodPed);
                    context.ProdSerXVendidosPeds.Remove(prodPed);
                    context.SaveChanges();
                    respuestaDatos = new RespuestaDatos {
                        Codigo = COCodigoRespuesta.OK, Mensaje = "Producto pedido eliminado exitosamente."
                    };
                }
                catch (Exception e)
                {
                    RepoErrorLog.AddErrorLog(new ErrorLog
                    {
                        Mensaje   = e.Message,
                        Traza     = e.StackTrace,
                        Usuario   = "no_aplica",
                        Creacion  = DateTime.Now,
                        Tipoerror = COErrorLog.ENVIO_CORREO
                    });
                    throw new COExcepcion("Ocurrió un problema al intentar eliminar el producto pedido");
                }
            }
            else
            {
                throw new COExcepcion("El producto pedido no existe");
            }
            return(respuestaDatos);
        }
示例#11
0
        public async Task <RespuestaDatos> ModificarProductoPedido([FromBody] ProdSerXVendidosPed productoPedido)
        {
            RespuestaDatos respuestaDatos;

            try
            {
                respuestaDatos = await _peFachada.ModificarProductoPedido(productoPedido);
            }
            catch (COExcepcion e)
            {
                RepoErrorLog.AddErrorLog(new ErrorLog
                {
                    Mensaje   = e.Message,
                    Traza     = e.StackTrace,
                    Usuario   = "no_aplica",
                    Creacion  = DateTime.Now,
                    Tipoerror = COErrorLog.ENVIO_CORREO
                });
                respuestaDatos = new RespuestaDatos {
                    Codigo = COCodigoRespuesta.ERROR, Mensaje = e.Message
                };
            }
            return(respuestaDatos);
        }
示例#12
0
        public async Task <RespuestaDatos> GuardarProductoPedido(ProdSerXVendidosPed productoPedido)
        {
            RespuestaDatos       respuestaDatos;
            ProductosServiciosPc producto = await _cOContenidoFachada.GetPublicacionPorIdPublicacion(productoPedido.Idproductoservico);

            System.Diagnostics.Debug.WriteLine("Este es el ID:");
            System.Diagnostics.Debug.WriteLine(productoPedido.Idproductoservico);
            if (producto != null)
            {
                if (await ValidarPrecioProductoPedido(productoPedido))
                {
                    TipoPublicacionPc tipoProductoPedido = _cOContenidoFachada.GetTipoPublicacionPorID(producto.Idtipopublicacion);
                    productoPedido.Creacion = DateTime.Now;
                    if (tipoProductoPedido != null)
                    {
                        System.Diagnostics.Debug.WriteLine("Este es el tipo:");
                        System.Diagnostics.Debug.WriteLine(tipoProductoPedido.Nombre);
                        if (tipoProductoPedido.Id == 2)
                        {
                            try
                            {
                                PedidosPed pedido = _pEPedidoBiz.GetPedidoPorId(productoPedido.Idpedido);
                                respuestaDatos = respuestaDatos = await _pEPedidoBiz.GuardarProductoPedido(productoPedido, pedido);
                            }
                            catch (COExcepcion e)
                            {
                                RepoErrorLog.AddErrorLog(new ErrorLog
                                {
                                    Mensaje   = e.Message,
                                    Traza     = e.StackTrace,
                                    Usuario   = "no_aplica",
                                    Creacion  = DateTime.Now,
                                    Tipoerror = COErrorLog.ENVIO_CORREO
                                });
                                throw e;
                            }
                        }
                        else
                        {
                            if (await ValidarCantidadProductoPedido(productoPedido))
                            {
                                try
                                {
                                    PedidosPed pedido = _pEPedidoBiz.GetPedidoPorId(productoPedido.Idpedido);
                                    respuestaDatos = respuestaDatos = await _pEPedidoBiz.GuardarProductoPedido(productoPedido, pedido);
                                }
                                catch (COExcepcion e)
                                {
                                    RepoErrorLog.AddErrorLog(new ErrorLog
                                    {
                                        Mensaje   = e.Message,
                                        Traza     = e.StackTrace,
                                        Usuario   = "no_aplica",
                                        Creacion  = DateTime.Now,
                                        Tipoerror = COErrorLog.ENVIO_CORREO
                                    });
                                    throw e;
                                }
                            }
                            else
                            {
                                throw new COExcepcion("No hay suficiente cantidad del producto deseado");
                            }
                        }
                    }
                    else
                    {
                        throw new COExcepcion("Hay un inconveniente con el tipo del producto");
                    }
                }
                else
                {
                    throw new COExcepcion("Hay un inconveniente con el precio total del producto pedido");
                }
            }
            else
            {
                throw new COExcepcion("El producto deseado no existe");
            }
            return(respuestaDatos);
        }