public IEnumerable <ConsultaSocioFincaCertificacionPorSocioFincaId> ConsultarSocioFincaCertificacionPorSocioFincaId(ConsultaSocioFincaCertificacionPorSocioFincaIdRequestDTO request)
 {
     return(_ISocioFincaRepository.ConsultarSocioFincaCertificacionPorSocioFincaId(request.SocioFincaId));
 }
        /*
         *
         *
         *
         *
         *              parameters.Add("@TotalGramosAnalisisFisico", notaIngresoAlmacen.TotalGramosAnalisisFisico);
         *              parameters.Add("@TotalPorcentajeAnalisisFisico", notaIngresoAlmacen.TotalPorcentajeAnalisisFisico);
         *              parameters.Add("@HumedadPorcentajeAnalisisFisico", notaIngresoAlmacen.HumedadPorcentajeAnalisisFisico);
         *              parameters.Add("@Observacion", notaIngresoAlmacen.Observacion);
         *              parameters.Add("@EstadoId", notaIngresoAlmacen.EstadoId);
         *              parameters.Add("@FechaRegistro", notaIngresoAlmacen.FechaRegistro);
         *              parameters.Add("@UsuarioRegistro", notaIngresoAlmacen.UsuarioRegistro);
         *              parameters.Add("@FechaUltimaActualizacion", notaIngresoAlmacen.FechaUltimaActualizacion);
         *              parameters.Add("@UsuarioUltimaActualizacion", notaIngresoAlmacen.UsuarioUltimaActualizacion);
         *              parameters.Add("@Activo", notaIngresoAlmacen.Activo);
         *
         */

        public int Registrar(EnviarAlmacenGuiaRecepcionMateriaPrimaRequestDTO request)
        {
            ConsultaGuiaRecepcionMateriaPrimaPorIdBE guiaRecepcionMateriaPrima = _IGuiaRecepcionMateriaPrimaRepository.ConsultarGuiaRecepcionMateriaPrimaPorId(request.GuiaRecepcionMateriaPrimaId);

            NotaIngresoAlmacen notaIngresoAlmacen = new NotaIngresoAlmacen();

            notaIngresoAlmacen.GuiaRecepcionMateriaPrimaId = request.GuiaRecepcionMateriaPrimaId;

            notaIngresoAlmacen.EmpresaId            = guiaRecepcionMateriaPrima.EmpresaId;
            notaIngresoAlmacen.Numero               = _ICorrelativoRepository.Obtener(guiaRecepcionMateriaPrima.EmpresaId, Documentos.NotaIngresoAlmacen);
            notaIngresoAlmacen.AlmacenId            = null;
            notaIngresoAlmacen.TipoProvedorId       = guiaRecepcionMateriaPrima.TipoProvedorId;
            notaIngresoAlmacen.SocioId              = guiaRecepcionMateriaPrima.SocioId;
            notaIngresoAlmacen.TerceroId            = guiaRecepcionMateriaPrima.TerceroId;
            notaIngresoAlmacen.TipoProduccionId     = guiaRecepcionMateriaPrima.TipoProduccionId;
            notaIngresoAlmacen.IntermediarioId      = guiaRecepcionMateriaPrima.IntermediarioId;
            notaIngresoAlmacen.ProductoId           = guiaRecepcionMateriaPrima.ProductoId;
            notaIngresoAlmacen.SubProductoId        = guiaRecepcionMateriaPrima.SubProductoId;
            notaIngresoAlmacen.UnidadMedidaIdPesado = guiaRecepcionMateriaPrima.UnidadMedidaIdPesado;
            notaIngresoAlmacen.CantidadPesado       = guiaRecepcionMateriaPrima.CantidadPesado;
            notaIngresoAlmacen.KilosBrutosPesado    = guiaRecepcionMateriaPrima.KilosBrutosPesado;
            notaIngresoAlmacen.TaraPesado           = guiaRecepcionMateriaPrima.TaraPesado;
            notaIngresoAlmacen.KilosNetosPesado     = guiaRecepcionMateriaPrima.KilosBrutosPesado - notaIngresoAlmacen.TaraPesado;
            notaIngresoAlmacen.QQ55 = notaIngresoAlmacen.KilosNetosPesado / Convert.ToDecimal(55.2);
            notaIngresoAlmacen.ExportableGramosAnalisisFisico     = guiaRecepcionMateriaPrima.ExportableGramosAnalisisFisico;
            notaIngresoAlmacen.ExportablePorcentajeAnalisisFisico = guiaRecepcionMateriaPrima.ExportablePorcentajeAnalisisFisico;
            notaIngresoAlmacen.DescarteGramosAnalisisFisico       = guiaRecepcionMateriaPrima.DescarteGramosAnalisisFisico;
            notaIngresoAlmacen.DescartePorcentajeAnalisisFisico   = guiaRecepcionMateriaPrima.DescartePorcentajeAnalisisFisico;
            notaIngresoAlmacen.CascarillaGramosAnalisisFisico     = guiaRecepcionMateriaPrima.CascarillaGramosAnalisisFisico;
            notaIngresoAlmacen.CascarillaPorcentajeAnalisisFisico = guiaRecepcionMateriaPrima.CascarillaPorcentajeAnalisisFisico;
            notaIngresoAlmacen.TotalGramosAnalisisFisico          = guiaRecepcionMateriaPrima.TotalGramosAnalisisFisico;
            notaIngresoAlmacen.TotalPorcentajeAnalisisFisico      = guiaRecepcionMateriaPrima.TotalPorcentajeAnalisisFisico;
            notaIngresoAlmacen.TotalAnalisisSensorial             = guiaRecepcionMateriaPrima.TotalAnalisisSensorial;
            notaIngresoAlmacen.HumedadPorcentajeAnalisisFisico    = guiaRecepcionMateriaPrima.HumedadPorcentajeAnalisisFisico.Value;

            List <ConsultaSocioFincaCertificacionPorSocioFincaId> certificacionesSocio = _ISocioFincaCertificacionRepository.ConsultarSocioFincaCertificacionPorSocioFincaId(guiaRecepcionMateriaPrima.SocioFincaId.Value).ToList();

            string certificaciones = String.Empty;
            string certificadoras  = String.Empty;
            int    contador        = 1;


            foreach (ConsultaSocioFincaCertificacionPorSocioFincaId certificacion in certificacionesSocio)
            {
                if (contador == 1)
                {
                    certificaciones = certificacion.TipoCertificacionId + "|";
                    certificadoras  = certificacion.EntidadCertificadoraId + "|";
                }
                else
                {
                    certificaciones = certificaciones + certificacion.TipoCertificacionId + "|";
                    certificadoras  = certificadoras + certificacion.EntidadCertificadoraId + "|";
                }
                contador = contador + 1;
            }

            notaIngresoAlmacen.TipoCertificacionId    = certificaciones;
            notaIngresoAlmacen.EntidadCertificadoraId = certificadoras;

            if (guiaRecepcionMateriaPrima.TotalGramosAnalisisFisico.HasValue && guiaRecepcionMateriaPrima.TotalGramosAnalisisFisico > 0)
            {
                notaIngresoAlmacen.RendimientoPorcentaje = (guiaRecepcionMateriaPrima.ExportableGramosAnalisisFisico / guiaRecepcionMateriaPrima.TotalGramosAnalisisFisico) * 100;
            }
            else
            {
                notaIngresoAlmacen.RendimientoPorcentaje = 0;
            }
            //notaIngresoAlmacen.Observacion = guiaRecepcionMateriaPrima.Observacion;
            notaIngresoAlmacen.UsuarioRegistro = request.Usuario;
            notaIngresoAlmacen.FechaRegistro   = DateTime.Now;
            notaIngresoAlmacen.EstadoId        = NotaIngresoAlmacenEstados.Ingresado;



            int affected = _INotaIngresoAlmacenRepository.Insertar(notaIngresoAlmacen);

            _IGuiaRecepcionMateriaPrimaRepository.ActualizarEstado(request.GuiaRecepcionMateriaPrimaId, DateTime.Now, request.Usuario, GuiaRecepcionMateriaPrimaEstados.EnviadoAlmacen);

            return(affected);
        }