예제 #1
0
            public async Task <Unit> Handle(RunPut request, CancellationToken cancellationToken)
            {
                var producto = await _productoRepository.Get(request.ProductoId);

                if (producto == null)
                {
                    throw new ManejadorError(HttpStatusCode.NotFound, new { mensaje = "No se encontro el Producto" });
                }

                var productoModel = new ProductoModel
                {
                    ProductoId     = request.ProductoId,
                    NombreProducto = request.NombreProducto ?? producto.NombreProducto,
                    Descripcion    = request.Descripcion ?? producto.Descripcion,
                    // Stock = request.Stock,
                    PrecioVenta = request.PrecioVenta ?? producto.PrecioVenta,
                    CategoriaId = request.CategoriaId ?? producto.CategoriaId
                };

                var result = await _productoRepository.Put(productoModel);

                if (result > 0)
                {
                    return(Unit.Value);
                }

                throw new Exception("No se pudo actualizar el Producto");
            }
예제 #2
0
 public IList <Producto> GetAll()
 {
     try
     {
         return(repository.Get());
     }
     catch (Exception ex)
     {
         throw new Exception(ex.Message);
     }
 }
예제 #3
0
        public async Task <OsinergminResponse> RegistrarActualizarDetalle(GuiaEntity guiaEntity)
        {
            foreach (var detalleGuia in guiaEntity.Detalles)
            {
                var productoActual = detalleGuia.Producto ?? await _productoRepository.Get(detalleGuia.ProductoId);

                var responseClienteDetalleOsinergmin = await _osinergminClient.registrarGuiaMuestrasDetalleAsync(
                    new detalleMuestra
                {
                    loginUsuario              = _osinergminConfig.Usuario,
                    claveUsuario              = _osinergminConfig.Password,
                    cantidadMuestras          = detalleGuia.CantidadMuestras,
                    codigoEstablecimiento     = detalleGuia.CodigoEstablecimiento,
                    codigoProducto            = productoActual.Codigo,
                    fechaMuestreo             = detalleGuia.FechaMuestreo.ToString("dd/MM/yyyy"),
                    numeroActa                = detalleGuia.NumeroActa,
                    numeroGuia                = guiaEntity.NumeroGuia,
                    numeroMuestra             = detalleGuia.NumeroMuestra,
                    numeroPrecintoDirimencia  = detalleGuia.NumeroPrescintoDirimencia,
                    numeroPrecintoLaboratorio = detalleGuia.NumeroPrescintoLaboratorio,
                    origenProducto            = detalleGuia.OrigenProducto,
                    tipoEnvase                = detalleGuia.TipoEnvase,
                    observaciones             = detalleGuia.Observaciones,
                    nombreFoto                = detalleGuia.NombreArchivo,
                    fotoMuestra               = detalleGuia.FotoMuestra,
                    cantidadMuestrasSpecified = true,
                    numeroGuiaSpecified       = true,
                    numeroMuestraSpecified    = true
                });

                var respuestaDetalleOsinergmin = responseClienteDetalleOsinergmin.registrarGuiaMuestrasDetalleResponse1;

                if (respuestaDetalleOsinergmin.codigoResultado == TipoResultadoOsinergmin.Error)
                {
                    return(new OsinergminResponse
                    {
                        Exito = false,
                        Mensaje = Codigos.MENSAJES_ERROR[respuestaDetalleOsinergmin.codigoError]
                    });
                }

                detalleGuia.Version = respuestaDetalleOsinergmin.version;
            }

            return(new OsinergminResponse {
                Exito = true
            });
        }
예제 #4
0
            public async Task <Unit> Handle(RunDelete request, CancellationToken cancellationToken)
            {
                var producto = await _productoRepository.Get(request.ProductoId);

                if (producto == null)
                {
                    throw new ManejadorError(HttpStatusCode.NotFound, new { mensaje = "No se encontro el Producto" });
                }

                var result = await _productoRepository.Delete(request.ProductoId);

                if (result > 0)
                {
                    return(Unit.Value);
                }

                throw new Exception("No se pudo Eliminar el Producto");
            }
예제 #5
0
            public async Task <List <ProductoDTO> > Handle(RunGet request, CancellationToken cancellationToken)
            {
                var resultProducto = await _productoRepository.Get();

                List <ProductoDTO> listProductoDTO = null;

                listProductoDTO = _mapper.Map <List <ProductoDTO> >(resultProducto.ToList());

                foreach (var producto in listProductoDTO)
                {
                    var resultCombo = await _comboRepository.Get(producto.ProductoId);

                    var comboDTO = _mapper.Map <List <ComboDTO> >(resultCombo.ToList());
                    producto.Combos = comboDTO;
                }

                return(listProductoDTO);
            }
예제 #6
0
        public async Task <OperacionDto <ResponseSimpleDto> > InsertInvoice(InsertFacturaRequestDto requestDto)
        {
            var operationValidate = UtilityValidation.ModelValidate <ResponseSimpleDto>(requestDto);

            if (!operationValidate.Completado)
            {
                return(operationValidate);
            }

            var product = await _productoRepository.Get(requestDto.ProductId);

            if (product == null)
            {
                return(new OperacionDto <ResponseSimpleDto>(CodigosOperacionDto.NotExist, "No existe el producto"));
            }

            var seller = await _vendedorRepository.Get(requestDto.VendedorId);

            if (seller == null)
            {
                return(new OperacionDto <ResponseSimpleDto>(CodigosOperacionDto.NotExist, "No existe el vendedor"));
            }

            var client = await _clienteRepository.Get(requestDto.ClienteId);

            if (client == null)
            {
                return(new OperacionDto <ResponseSimpleDto>(CodigosOperacionDto.NotExist, "No existe el cliente"));
            }

            if (requestDto.Cantidad < 1)
            {
                return(new OperacionDto <ResponseSimpleDto>(CodigosOperacionDto.Invalid, "La cantidad de los productos debe ser mayor a 0"));
            }

            await _facturaRepository.InsertInvoice(requestDto.Serie, requestDto.Codigo, requestDto.VendedorId, requestDto.ClienteId, requestDto.Fecha, requestDto.Moneda, requestDto.ProductId, requestDto.Cantidad, requestDto.Precio);

            return(new OperacionDto <ResponseSimpleDto>(new ResponseSimpleDto()
            {
                Suceso = true,
                Mensaje = "Factura creada satisfactoriamente"
            }));
        }
예제 #7
0
            public async Task <ProductoDTO> Handle(RunGetId request, CancellationToken cancellationToken)
            {
                var producto = await _productoRepository.Get(request.ProductoId);

                if (producto == null)
                {
                    throw new ManejadorError(HttpStatusCode.NotFound, new { mensaje = "No se encontro el Producto" });
                }

                ProductoDTO productoDTO = null;

                productoDTO = _mapper.Map <ProductoDTO>(producto);

                var resultCombo = await _comboRepository.Get(productoDTO.ProductoId);

                var comboDTO = _mapper.Map <List <ComboDTO> >(resultCombo.ToList());

                productoDTO.Combos = comboDTO;

                return(productoDTO);
            }
예제 #8
0
 public Producto Get(long id)
 {
     return(ProductoReposistory.Get(id));
 }
예제 #9
0
 public ProductoViewModel ObtenerProductoPorId(int id)
 {
     return(ProductoRepository.Get(id).ToViewModel());
 }
예제 #10
0
 public Producto Get(int id)
 {
     return(productoRepository.Get(id));
 }
예제 #11
0
        public async Task <string> GetNombreProducto(string sku)
        {
            var entidad = await _productoRepository.Get(sku);

            return(entidad.Nombre);
        }