public IActionResult Anular([FromBody] AnularGuiaRecepcionMateriaPrimaRequestDTO request)
        {
            Guid guid = Guid.NewGuid();

            _log.RegistrarEvento($"{guid.ToString()}{Environment.NewLine}{Newtonsoft.Json.JsonConvert.SerializeObject(request)}");

            AnularGuiaRecepcionMateriaPrimaResponseDTO response = new AnularGuiaRecepcionMateriaPrimaResponseDTO();

            try
            {
                response.Result.Data = _guiaRecepcionMateriaPrimaService.AnularGuiaRecepcionMateriaPrima(request);

                response.Result.Success = true;
            }
            catch (ResultException ex)
            {
                response.Result = new Result()
                {
                    Success = true, ErrCode = ex.Result.ErrCode, Message = ex.Result.Message
                };
            }
            catch (Exception ex)
            {
                response.Result = new Result()
                {
                    Success = false, Message = "Ocurrio un problema en el servicio, intentelo nuevamente."
                };
                _log.RegistrarEvento(ex, guid.ToString());
            }

            _log.RegistrarEvento($"{guid.ToString()}{Environment.NewLine}{Newtonsoft.Json.JsonConvert.SerializeObject(response)}");

            return(Ok(response));
        }
Example #2
0
        public int AnularGuiaRecepcionMateriaPrima(AnularGuiaRecepcionMateriaPrimaRequestDTO request)
        {
            ConsultaGuiaRecepcionMateriaPrimaPorIdBE consultaGuiaRecepcionMateriaPrimaPorIdBE = _IGuiaRecepcionMateriaPrimaRepository.ConsultarGuiaRecepcionMateriaPrimaPorId(request.GuiaRecepcionMateriaPrimaId);
            int contratoId = consultaGuiaRecepcionMateriaPrimaPorIdBE.ContratoAsignadoId;

            ConsultaContratoPorIdBE consultaContratoPorIdBE = _IContratoRepository.ConsultarContratoPorId(contratoId);

            if (consultaContratoPorIdBE.EstadoId == ContratoEstados.Completado)
            {
                //throw new ResultException(new Result { ErrCode = "04", Message = "Acopio.GuiaRecepcionMateriaPrima.ContratoCompletado.Label" });
                throw new ResultException(new Result {
                    ErrCode = "04", Message = "No se puede anular una guía con contrato asignado completado."
                });
            }
            else if (consultaContratoPorIdBE.EstadoId == ContratoEstados.Asignado)
            {
                decimal kilosNetosPesado = consultaGuiaRecepcionMateriaPrimaPorIdBE.KilosNetosPesado;

                _IContratoRepository.ActualizarSaldoPendienteAsignacionAcopio(contratoId, kilosNetosPesado * (-1));
            }


            int affected = _IGuiaRecepcionMateriaPrimaRepository.AnularGuiaRecepcionMateriaPrima(request.GuiaRecepcionMateriaPrimaId, DateTime.Now, request.Usuario, GuiaRecepcionMateriaPrimaEstados.Anulado);

            string productoIdCafePergamino = _ParametrosSettings.Value.ProductoIdCafePergamino;
            string subProductoIdCafeSeco   = _ParametrosSettings.Value.SubProductoIdCafeSeco;



            if (consultaGuiaRecepcionMateriaPrimaPorIdBE.ProductoId == productoIdCafePergamino && consultaGuiaRecepcionMateriaPrimaPorIdBE.SubProductoId == subProductoIdCafeSeco && consultaGuiaRecepcionMateriaPrimaPorIdBE.SocioFincaCertificacion != String.Empty)
            {
                List <ConsultaSocioFincaEstimadoPorSocioFincaIdBE> fincaEstimados = _ISocioFincaRepository.ConsultarSocioFincaEstimadoPorSocioFincaId(consultaGuiaRecepcionMateriaPrimaPorIdBE.SocioFincaId.Value).ToList();

                if (fincaEstimados.Count > 0)
                {
                    int anioActual = DateTime.Now.Year;

                    ConsultaSocioFincaEstimadoPorSocioFincaIdBE fincaEstima = null;

                    fincaEstima = fincaEstimados.Where(x => x.Anio == anioActual).FirstOrDefault();

                    if (fincaEstima != null)
                    {
                        _ISocioFincaRepository.ActualizarSocioFincaEstimadoConsumido(fincaEstima.SocioFincaEstimadoId, consultaGuiaRecepcionMateriaPrimaPorIdBE.KilosBrutosPesado * -1);
                    }
                }
            }

            return(affected);
        }