예제 #1
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);
        }
예제 #2
0
        public ConsultaSocioFincaEstimadoPorSocioFincaIdBE ConsultarSocioFincaEstimadoPorSocioFincaId(ConsultaSocioFincaEstimadoPorSocioFincaIdRequest request)
        {
            List <ConsultaSocioFincaEstimadoPorSocioFincaIdBE> fincaEstimados = _ISocioFincaRepository.ConsultarSocioFincaEstimadoPorSocioFincaId(request.SocioFincaId).ToList();

            ConsultaSocioFincaEstimadoPorSocioFincaIdBE fincaEstima = null;

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

                fincaEstima = fincaEstimados.Where(x => x.Anio == anioActual).FirstOrDefault();
                if (fincaEstima != null)
                {
                    fincaEstima.SaldoPendiente = fincaEstima.Estimado - fincaEstima.Consumido;
                }
            }
            return(fincaEstima);
        }
예제 #3
0
        public int ActualizarPesadoGuiaRecepcionMateriaPrima(RegistrarActualizarPesadoGuiaRecepcionMateriaPrimaRequestDTO request)
        {
            GuiaRecepcionMateriaPrima guiaRecepcionMateriaPrima = new GuiaRecepcionMateriaPrima();

            decimal kilosNetosPesado = request.KilosBrutosPesado - request.TaraPesado;


            guiaRecepcionMateriaPrima.GuiaRecepcionMateriaPrimaId = request.GuiaRecepcionMateriaPrimaId;
            guiaRecepcionMateriaPrima.EmpresaId            = request.EmpresaId;
            guiaRecepcionMateriaPrima.TipoProvedorId       = request.TipoProvedorId;
            guiaRecepcionMateriaPrima.NumeroReferencia     = request.NumeroReferencia;
            guiaRecepcionMateriaPrima.SocioId              = request.SocioId;
            guiaRecepcionMateriaPrima.TerceroId            = request.TerceroId;
            guiaRecepcionMateriaPrima.IntermediarioId      = request.IntermediarioId;
            guiaRecepcionMateriaPrima.ProductoId           = request.ProductoId;
            guiaRecepcionMateriaPrima.SubProductoId        = request.SubProductoId;
            guiaRecepcionMateriaPrima.FechaCosecha         = request.FechaCosecha;
            guiaRecepcionMateriaPrima.FechaPesado          = DateTime.Now;
            guiaRecepcionMateriaPrima.UsuarioPesado        = request.UsuarioPesado;
            guiaRecepcionMateriaPrima.UnidadMedidaIdPesado = request.UnidadMedidaIdPesado;
            guiaRecepcionMateriaPrima.CantidadPesado       = request.CantidadPesado;
            guiaRecepcionMateriaPrima.KilosBrutosPesado    = request.KilosBrutosPesado;
            guiaRecepcionMateriaPrima.KilosNetosPesado     = kilosNetosPesado;

            guiaRecepcionMateriaPrima.TaraPesado              = request.TaraPesado;
            guiaRecepcionMateriaPrima.ObservacionPesado       = request.ObservacionPesado;
            guiaRecepcionMateriaPrima.SocioFincaId            = request.SocioFincaId;
            guiaRecepcionMateriaPrima.SocioFincaCertificacion = request.SocioFincaCertificacion;
            guiaRecepcionMateriaPrima.IntermediarioFinca      = request.IntermediarioFinca;
            guiaRecepcionMateriaPrima.TerceroFincaId          = request.TerceroFincaId;
            guiaRecepcionMateriaPrima.TipoProduccionId        = request.TipoProduccionId;
            guiaRecepcionMateriaPrima.EstadoId = GuiaRecepcionMateriaPrimaEstados.Pesado;
            guiaRecepcionMateriaPrima.FechaUltimaActualizacion   = DateTime.Now;
            guiaRecepcionMateriaPrima.UsuarioUltimaActualizacion = request.UsuarioPesado;



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

            ConsultaGuiaRecepcionMateriaPrimaPorIdBE consultaGuiaRecepcionMateriaPrimaPorIdBE = _IGuiaRecepcionMateriaPrimaRepository.ConsultarGuiaRecepcionMateriaPrimaPorId(guiaRecepcionMateriaPrima.GuiaRecepcionMateriaPrimaId);

            int affected = _IGuiaRecepcionMateriaPrimaRepository.ActualizarPesado(guiaRecepcionMateriaPrima);

            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);
                    }
                }
            }

            if (request.ProductoId == productoIdCafePergamino && request.SubProductoId == subProductoIdCafeSeco && request.SocioFincaCertificacion != String.Empty)
            {
                List <ConsultaSocioFincaEstimadoPorSocioFincaIdBE> fincaEstimados = _ISocioFincaRepository.ConsultarSocioFincaEstimadoPorSocioFincaId(request.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, request.KilosBrutosPesado);
                    }
                }
            }



            return(affected);
        }
예제 #4
0
        public int RegistrarPesadoGuiaRecepcionMateriaPrima(RegistrarActualizarPesadoGuiaRecepcionMateriaPrimaRequestDTO request)
        {
            string productoIdCafePergamino = _ParametrosSettings.Value.ProductoIdCafePergamino;
            string subProductoIdCafeSeco   = _ParametrosSettings.Value.SubProductoIdCafeSeco;

            ConsultaContratoAsignado consultaContratoAsignado = null;


            decimal kilosNetosPesado = request.KilosBrutosPesado - request.TaraPesado;

            int?contratoAsignadoId = null;

            if (request.ProductoId == productoIdCafePergamino && request.SubProductoId == subProductoIdCafeSeco)
            {
                consultaContratoAsignado = _IContratoRepository.ConsultarContratoAsignado(request.EmpresaId, ContratoEstados.Asignado);

                if (consultaContratoAsignado == null || consultaContratoAsignado.SaldoPendienteKGPergaminoAsignacion == 0)
                {
                    throw new ResultException(new Result {
                        ErrCode = "03", Message = "Acopio.GuiaRecepcionMateriaPrima.ValidacionContratoNoAsignado.Label"
                    });
                }



                if (kilosNetosPesado > consultaContratoAsignado.SaldoPendienteKGPergaminoAsignacion)
                {
                    throw new ResultException(new Result {
                        ErrCode = "04", Message = "Acopio.GuiaRecepcionMateriaPrima.ValidacionKilosNetosPesadoMayorContratoNoAsignado.Label"
                    });
                }

                contratoAsignadoId = consultaContratoAsignado.ContratoId;
            }



            GuiaRecepcionMateriaPrima guiaRecepcionMateriaPrima = new GuiaRecepcionMateriaPrima();

            guiaRecepcionMateriaPrima.EmpresaId               = request.EmpresaId;
            guiaRecepcionMateriaPrima.NumeroReferencia        = request.NumeroReferencia;
            guiaRecepcionMateriaPrima.Numero                  = _ICorrelativoRepository.Obtener(request.EmpresaId, Documentos.GuiaRecepcion);
            guiaRecepcionMateriaPrima.TipoProvedorId          = request.TipoProvedorId;
            guiaRecepcionMateriaPrima.SocioId                 = request.SocioId;
            guiaRecepcionMateriaPrima.TerceroId               = request.TerceroId;
            guiaRecepcionMateriaPrima.IntermediarioId         = request.IntermediarioId;
            guiaRecepcionMateriaPrima.ProductoId              = request.ProductoId;
            guiaRecepcionMateriaPrima.SubProductoId           = request.SubProductoId;
            guiaRecepcionMateriaPrima.FechaCosecha            = request.FechaCosecha;
            guiaRecepcionMateriaPrima.FechaPesado             = DateTime.Now;
            guiaRecepcionMateriaPrima.UsuarioPesado           = request.UsuarioPesado;
            guiaRecepcionMateriaPrima.UnidadMedidaIdPesado    = request.UnidadMedidaIdPesado;
            guiaRecepcionMateriaPrima.CantidadPesado          = request.CantidadPesado;
            guiaRecepcionMateriaPrima.KilosBrutosPesado       = request.KilosBrutosPesado;
            guiaRecepcionMateriaPrima.TaraPesado              = request.TaraPesado;
            guiaRecepcionMateriaPrima.ObservacionPesado       = request.ObservacionPesado;
            guiaRecepcionMateriaPrima.SocioFincaId            = request.SocioFincaId;
            guiaRecepcionMateriaPrima.SocioFincaCertificacion = request.SocioFincaCertificacion;
            guiaRecepcionMateriaPrima.IntermediarioFinca      = request.IntermediarioFinca;
            guiaRecepcionMateriaPrima.TerceroFincaId          = request.TerceroFincaId;
            guiaRecepcionMateriaPrima.TipoProduccionId        = request.TipoProduccionId;
            guiaRecepcionMateriaPrima.EstadoId                = GuiaRecepcionMateriaPrimaEstados.Pesado;
            guiaRecepcionMateriaPrima.FechaRegistro           = DateTime.Now;
            guiaRecepcionMateriaPrima.UsuarioRegistro         = request.UsuarioPesado;
            guiaRecepcionMateriaPrima.KilosNetosPesado        = kilosNetosPesado;

            guiaRecepcionMateriaPrima.ContratoAsignadoId = contratoAsignadoId;



            int affected = _IGuiaRecepcionMateriaPrimaRepository.InsertarPesado(guiaRecepcionMateriaPrima);

            if (request.ProductoId == productoIdCafePergamino && request.SubProductoId == subProductoIdCafeSeco && request.SocioFincaCertificacion != String.Empty)
            {
                List <ConsultaSocioFincaEstimadoPorSocioFincaIdBE> fincaEstimados = _ISocioFincaRepository.ConsultarSocioFincaEstimadoPorSocioFincaId(request.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)
                    {
                        fincaEstima.SaldoPendiente = fincaEstima.Estimado - fincaEstima.Consumido;

                        if (fincaEstima.SaldoPendiente > 0)
                        {
                            _ISocioFincaRepository.ActualizarSocioFincaEstimadoConsumido(fincaEstima.SocioFincaEstimadoId, request.KilosBrutosPesado);
                        }
                    }
                }
            }

            if (contratoAsignadoId.HasValue)
            {
                _IContratoRepository.ActualizarSaldoPendienteAsignacionAcopio(contratoAsignadoId.Value, kilosNetosPesado);

                if ((consultaContratoAsignado.SaldoPendienteKGPergaminoAsignacion - kilosNetosPesado) == 0)
                {
                    _IContratoRepository.ActualizarEstado(contratoAsignadoId.Value, DateTime.Now, request.UsuarioPesado, ContratoEstados.Completado);
                }
            }



            return(affected);
        }