Esempio n. 1
0
        public ConsultaContratoAsignado ConsultarContratoAsignado(int empresaId, string estadoId)
        {
            ConsultaContratoAsignado itemBE = null;

            var parameters = new DynamicParameters();

            parameters.Add("@EmpresaId", empresaId);
            parameters.Add("@EstadoId", estadoId);

            using (IDbConnection db = new SqlConnection(_connectionString.Value.CoffeeConnectDB))
            {
                var list = db.Query <ConsultaContratoAsignado>("uspContratoAsignadoConsultar", parameters, commandType: CommandType.StoredProcedure);

                if (list.Any())
                {
                    itemBE = list.First();
                }
            }
            return(itemBE);
        }
Esempio n. 2
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);
        }