public int RegistrarAduana(RegistrarActualizarAduanaRequestDTO request)
        {
            Aduana Aduana = _Mapper.Map <Aduana>(request);

            Aduana.FechaRegistro = DateTime.Now;
            //Aduana.NombreArchivo = file.FileName;
            Aduana.UsuarioRegistro = request.Usuario;
            Aduana.Numero          = _ICorrelativoRepository.Obtener(request.EmpresaId, Documentos.Aduana);

            int id = _IAduanaRepository.Insertar(Aduana);

            List <AduanaCertificacionTipo> aduanaCertificacionTipoList = new List <AduanaCertificacionTipo>();

            request.Certificaciones.ForEach(z =>
            {
                AduanaCertificacionTipo item = new AduanaCertificacionTipo();
                item.AduanaId                     = id;
                item.CodigoCertificacion          = z.CodigoCertificacion;
                item.TipoCertificacionId          = z.TipoCertificacionId;
                item.EmpresaProveedoraAcreedoraId = z.EmpresaProveedoraAcreedoraId;
                item.TipoId = z.TipoId;

                aduanaCertificacionTipoList.Add(item);
            });

            _IAduanaRepository.ActualizarAduanaCertificacion(aduanaCertificacionTipoList, id);

            foreach (AduanaCargamento cargamento in request.Cargamentos)
            {
                cargamento.AduanaId = id;
                _IAduanaRepository.InsertarAduanaCargamento(cargamento);
            }

            return(id);
        }
        public int RegistrarNotaCompra(RegistrarActualizarNotaCompraRequestDTO request)
        {
            NotaCompra notaCompra = new NotaCompra();

            notaCompra.GuiaRecepcionMateriaPrimaId = request.GuiaRecepcionMateriaPrimaId;
            notaCompra.EmpresaId            = request.EmpresaId;
            notaCompra.Numero               = request.Numero;
            notaCompra.Numero               = _ICorrelativoRepository.Obtener(request.EmpresaId, Documentos.NotaCompra);
            notaCompra.UnidadMedidaIdPesado = request.UnidadMedidaIdPesado;
            notaCompra.CantidadPesado       = request.CantidadPesado;
            notaCompra.KilosBrutosPesado    = request.KilosBrutosPesado;
            notaCompra.TaraPesado           = request.TaraPesado;
            notaCompra.KilosNetosPesado     = request.KilosNetosPesado;
            notaCompra.DescuentoPorHumedad  = request.DescuentoPorHumedad;
            notaCompra.KilosNetosDescontar  = request.KilosNetosDescontar;
            notaCompra.KilosNetosPagar      = request.KilosNetosPagar;
            notaCompra.QQ55            = request.QQ55;
            notaCompra.TipoId          = request.TipoId;
            notaCompra.MonedaId        = request.MonedaId;
            notaCompra.PrecioGuardado  = request.PrecioGuardado;
            notaCompra.PrecioPagado    = request.PrecioPagado;
            notaCompra.Importe         = request.Importe;
            notaCompra.EstadoId        = NotaCompraEstados.PorLiquidar;
            notaCompra.FechaRegistro   = DateTime.Now;
            notaCompra.UsuarioRegistro = request.UsuarioNotaCompra;
            notaCompra.Observaciones   = request.Observaciones;
            notaCompra.ValorId         = request.ValorId;

            int affected = _INotaCompraRepository.Insertar(notaCompra);

            return(affected);
        }
Beispiel #3
0
        public int RegistrarProductor(RegistrarActualizarProductorRequestDTO request)
        {
            ConsultaProductorRequestDTO consultaProductorRequestDTO = new ConsultaProductorRequestDTO();

            consultaProductorRequestDTO.TipoDocumentoId = request.TipoDocumentoId;
            consultaProductorRequestDTO.NumeroDocumento = request.NumeroDocumento;

            var list = _IProductorRepository.ValidarProductor(consultaProductorRequestDTO);

            if (list.ToList().Count > 0)
            {
                throw new ResultException(new Result {
                    ErrCode = "01", Message = "El Productor ya se encuentra registrado."
                });
            }



            Productor productor = _Mapper.Map <Productor>(request);

            productor.FechaRegistro   = DateTime.Now;
            productor.UsuarioRegistro = request.Usuario;



            productor.Numero = _ICorrelativoRepository.Obtener(null, Documentos.Productor);

            int affected = _IProductorRepository.Insertar(productor);

            return(affected);
        }
Beispiel #4
0
        public int RegistrarUbigeo(RegistrarActualizarUbigeoRequestDTO request)
        {
            Ubigeo Ubigeo = _Mapper.Map <Ubigeo>(request);

            Ubigeo.FechaHoraCreacion = DateTime.Now;
            Ubigeo.UsuarioCreacion   = request.Usuario;
            Ubigeo.Codigo            = _ICorrelativoRepository.Obtener(request.EmpresaId, Documentos.UbigeoCiudad);

            int affected = _IUbigeoRepository.Insertar(Ubigeo);

            return(affected);
        }
        public int Registrar(RegistrarActualizarKardexProcesoRequestDTO request)
        {
            KardexProceso kardexProceso = _Mapper.Map <KardexProceso>(request);

            kardexProceso.Numero          = _ICorrelativoRepository.Obtener(request.EmpresaId, Documentos.KardexProceso);
            kardexProceso.FechaRegistro   = DateTime.Now;
            kardexProceso.UsuarioRegistro = request.Usuario;


            int affected = _IKardexProcesoRepository.Insertar(kardexProceso);

            return(affected);
        }
Beispiel #6
0
        public int RegistrarAnticipo(RegistrarActualizarAnticipoRequestDTO request)
        {
            Anticipo Anticipo = _Mapper.Map <Anticipo>(request);

            Anticipo.FechaRegistro = DateTime.Now;
            //Aduana.NombreArchivo = file.FileName;
            Anticipo.UsuarioRegistro = request.UsuarioRegistro;
            Anticipo.Numero          = _ICorrelativoRepository.Obtener(request.EmpresaId, Documentos.Anticipo);

            int id = _IAnticipoRepository.Insertar(Anticipo);

            return(id);
        }
        public int RegistrarOrdenProcesoPlanta(RegistrarActualizarOrdenProcesoPlantaRequestDTO request, IFormFile file)
        {
            OrdenProcesoPlanta OrdenProcesoPlanta = _Mapper.Map <OrdenProcesoPlanta>(request);

            OrdenProcesoPlanta.FechaRegistro   = DateTime.Now;
            OrdenProcesoPlanta.UsuarioRegistro = request.Usuario;
            OrdenProcesoPlanta.Numero          = _ICorrelativoRepository.Obtener(request.EmpresaId, Documentos.OrdenProcesoPlanta);

            var AdjuntoBl = new AdjuntarArchivosBL(_fileServerSettings);

            byte[] fileBytes = null;

            if (file != null)
            {
                if (file.Length > 0)
                {
                    using (var ms = new MemoryStream())
                    {
                        file.CopyTo(ms);
                        fileBytes = ms.ToArray();
                        string s = Convert.ToBase64String(fileBytes);
                    }

                    OrdenProcesoPlanta.NombreArchivo = file.FileName;
                    //Adjuntos
                    ResponseAdjuntarArchivoDTO response = AdjuntoBl.AgregarArchivo(new RequestAdjuntarArchivosDTO()
                    {
                        filtros = new AdjuntarArchivosDTO()
                        {
                            archivoStream = fileBytes,
                            filename      = file.FileName,
                        },
                        pathFile = _fileServerSettings.Value.OrdenProcesoPlanta
                    });
                    OrdenProcesoPlanta.PathArchivo = _fileServerSettings.Value.OrdenProcesoPlanta + "\\" + response.ficheroReal;
                }
            }

            int OrdenProcesoPlantaId = _IOrdenProcesoPlantaRepository.Insertar(OrdenProcesoPlanta);

            foreach (OrdenProcesoPlantaDetalle detalle in request.OrdenProcesoPlantaDetalle)
            {
                detalle.OrdenProcesoPlantaId = OrdenProcesoPlantaId;
                _IOrdenProcesoPlantaRepository.InsertarProcesoPlantaDetalle(detalle);
            }
            return(OrdenProcesoPlantaId);
        }
        public int RegistrarPesadoNotaIngresoPlanta(RegistrarActualizarPesadoNotaIngresoPlantaRequestDTO request)
        {
            NotaIngresoPlanta NotaIngresoPlanta = _Mapper.Map <NotaIngresoPlanta>(request);


            NotaIngresoPlanta.Numero = _ICorrelativoRepository.Obtener(request.EmpresaId, Documentos.NotaIngresoPlanta);

            NotaIngresoPlanta.FechaPesado     = DateTime.Now;
            NotaIngresoPlanta.EstadoId        = NotaIngresoPlantaEstados.Pesado;
            NotaIngresoPlanta.FechaRegistro   = DateTime.Now;
            NotaIngresoPlanta.UsuarioRegistro = request.UsuarioPesado;


            int affected = _INotaIngresoPlantaRepository.InsertarPesado(NotaIngresoPlanta);

            return(affected);
        }
Beispiel #9
0
        public int RegistrarSocio(RegistrarActualizarSocioRequestDTO request)
        {
            var list = _ISocioRepository.ValidarSocio(request.ProductorId);

            if (list.ToList().Count > 0)
            {
                throw new ResultException(new Result {
                    ErrCode = "01", Message = "El Socio ya se encuentra registrado."
                });
            }


            Socio socio = _Mapper.Map <Socio>(request);

            socio.FechaRegistro   = DateTime.Now;
            socio.UsuarioRegistro = request.Usuario;
            socio.Codigo          = _ICorrelativoRepository.Obtener(request.EmpresaId, Documentos.Socio);
            socio.EstadoId        = SocioEstados.Activo;
            int affected = _ISocioRepository.Insertar(socio);

            return(affected);
        }
Beispiel #10
0
        public int RegistrarLiquidacionProcesoPlanta(RegistrarActualizarLiquidacionProcesoPlantaRequestDTO request)
        {
            LiquidacionProcesoPlanta liquidacionProcesoPlanta = _Mapper.Map <LiquidacionProcesoPlanta>(request);

            liquidacionProcesoPlanta.FechaRegistro   = DateTime.Now;
            liquidacionProcesoPlanta.UsuarioRegistro = request.Usuario;
            liquidacionProcesoPlanta.Numero          = _ICorrelativoRepository.Obtener(request.EmpresaId, Documentos.LiquidacionProcesoPlanta);


            int LiquidacionProcesoPlantaId = _ILiquidacionProcesoPlantaRepository.Insertar(liquidacionProcesoPlanta);

            foreach (LiquidacionProcesoPlantaDetalle detalle in request.LiquidacionProcesoPlantaDetalle)
            {
                detalle.LiquidacionProcesoPlantaId = LiquidacionProcesoPlantaId;
                _ILiquidacionProcesoPlantaRepository.InsertarLiquidacionProcesoPlantaDetalle(detalle);
            }

            foreach (LiquidacionProcesoPlantaResultado detalle in request.LiquidacionProcesoPlantaResultado)
            {
                detalle.LiquidacionProcesoPlantaId = LiquidacionProcesoPlantaId;
                _ILiquidacionProcesoPlantaRepository.InsertarLiquidacionProcesoPlantaResultado(detalle);
            }
            return(LiquidacionProcesoPlantaId);
        }
        public int RegistrarOrdenServicioControlCalidad(RegistrarActualizarOrdenServicioControlCalidadRequestDTO request)
        {
            OrdenServicioControlCalidad OrdenServicioControlCalidad = new OrdenServicioControlCalidad();

            int affected = 0;

            OrdenServicioControlCalidad.EmpresaId            = request.EmpresaId;
            OrdenServicioControlCalidad.EmpresaProcesadoraId = request.EmpresaProcesadoraId;
            OrdenServicioControlCalidad.Numero           = _ICorrelativoRepository.Obtener(request.EmpresaId, Documentos.OrdenServicioControlCalidad);
            OrdenServicioControlCalidad.UnidadMedidaId   = request.UnidadMedidaId;
            OrdenServicioControlCalidad.CantidadPesado   = request.CantidadPesado;
            OrdenServicioControlCalidad.ProductoId       = request.ProductoId;
            OrdenServicioControlCalidad.SubProductoId    = request.SubProductoId;
            OrdenServicioControlCalidad.TipoProduccionId = request.TipoProduccionId;
            OrdenServicioControlCalidad.RendimientoEsperadoPorcentaje = request.RendimientoEsperadoPorcentaje;
            OrdenServicioControlCalidad.EstadoId        = OrdenServicioControlCalidadEstados.Ingresado;
            OrdenServicioControlCalidad.FechaRegistro   = DateTime.Now;
            OrdenServicioControlCalidad.UsuarioRegistro = request.UsuarioOrdenServicioControlCalidad;

            affected = _IOrdenServicioControlCalidadRepository.Insertar(OrdenServicioControlCalidad);
            OrdenServicioControlCalidad.OrdenServicioControlCalidadId = request.OrdenServicioControlCalidadId = affected;

            return(affected);
        }
Beispiel #12
0
        public int Registrar(EnviarAlmacenNotaIngresoPlantaRequestDTO request)
        {
            ConsultaNotaIngresoPlantaPorIdBE notaIngresoPlanta = _INotaIngresoPlantaRepository.ConsultarNotaIngresoPlantaPorId(request.NotaIngresoPlantaId);

            NotaIngresoAlmacenPlanta NotaIngresoAlmacenPlanta = new NotaIngresoAlmacenPlanta();

            NotaIngresoAlmacenPlanta.NotaIngresoPlantaId = request.NotaIngresoPlantaId;

            NotaIngresoAlmacenPlanta.EmpresaId              = notaIngresoPlanta.EmpresaId;
            NotaIngresoAlmacenPlanta.Numero                 = _ICorrelativoRepository.Obtener(notaIngresoPlanta.EmpresaId, Documentos.NotaIngresoAlmacenPlanta);
            NotaIngresoAlmacenPlanta.AlmacenId              = null;
            NotaIngresoAlmacenPlanta.CertificacionId        = notaIngresoPlanta.CertificacionId;
            NotaIngresoAlmacenPlanta.EntidadCertificadoraId = notaIngresoPlanta.EntidadCertificadoraId;
            NotaIngresoAlmacenPlanta.TipoProduccionId       = notaIngresoPlanta.TipoProduccionId;
            NotaIngresoAlmacenPlanta.ProductoId             = notaIngresoPlanta.ProductoId;
            NotaIngresoAlmacenPlanta.SubProductoId          = notaIngresoPlanta.SubProductoId;
            NotaIngresoAlmacenPlanta.UnidadMedidaIdPesado   = notaIngresoPlanta.EmpaqueId;
            NotaIngresoAlmacenPlanta.CantidadPesado         = notaIngresoPlanta.Cantidad;
            NotaIngresoAlmacenPlanta.KilosBrutosPesado      = notaIngresoPlanta.KilosBrutos;
            NotaIngresoAlmacenPlanta.TaraPesado             = notaIngresoPlanta.Tara;
            NotaIngresoAlmacenPlanta.KilosNetosPesado       = notaIngresoPlanta.KilosBrutos - notaIngresoPlanta.Tara;


            NotaIngresoAlmacenPlanta.ExportableGramosAnalisisFisico = notaIngresoPlanta.ExportableGramosAnalisisFisico;
            //NotaIngresoAlmacenPlanta.ExportableGramosAnalisisFisico = (notaIngresoPlanta.ExportableGramosAnalisisFisico.HasValue) ? notaIngresoPlanta.ExportableGramosAnalisisFisico.Value : 0;


            NotaIngresoAlmacenPlanta.ExportablePorcentajeAnalisisFisico = notaIngresoPlanta.ExportablePorcentajeAnalisisFisico;
            NotaIngresoAlmacenPlanta.DescarteGramosAnalisisFisico       = notaIngresoPlanta.DescarteGramosAnalisisFisico;
            NotaIngresoAlmacenPlanta.DescartePorcentajeAnalisisFisico   = notaIngresoPlanta.DescartePorcentajeAnalisisFisico;
            NotaIngresoAlmacenPlanta.CascarillaGramosAnalisisFisico     = notaIngresoPlanta.CascarillaGramosAnalisisFisico;
            NotaIngresoAlmacenPlanta.CascarillaPorcentajeAnalisisFisico = notaIngresoPlanta.CascarillaPorcentajeAnalisisFisico;
            NotaIngresoAlmacenPlanta.TotalGramosAnalisisFisico          = notaIngresoPlanta.TotalGramosAnalisisFisico;

            //NotaIngresoAlmacenPlanta.TotalGramosAnalisisFisico = (notaIngresoPlanta.TotalGramosAnalisisFisico.HasValue) ? notaIngresoPlanta.TotalGramosAnalisisFisico.Value : 0;

            NotaIngresoAlmacenPlanta.TotalPorcentajeAnalisisFisico   = notaIngresoPlanta.TotalPorcentajeAnalisisFisico;
            NotaIngresoAlmacenPlanta.TotalAnalisisSensorial          = notaIngresoPlanta.TotalAnalisisSensorial;
            NotaIngresoAlmacenPlanta.HumedadPorcentajeAnalisisFisico = notaIngresoPlanta.HumedadPorcentajeAnalisisFisico;


            NotaIngresoAlmacenPlanta.ExportablePorcentajeAnalisisFisico = notaIngresoPlanta.ExportablePorcentajeAnalisisFisico;

            if (notaIngresoPlanta.TotalGramosAnalisisFisico.HasValue && notaIngresoPlanta.TotalGramosAnalisisFisico.Value > 0)
            {
                NotaIngresoAlmacenPlanta.RendimientoPorcentaje = (notaIngresoPlanta.ExportableGramosAnalisisFisico / notaIngresoPlanta.TotalGramosAnalisisFisico) * 100;
            }
            else
            {
                NotaIngresoAlmacenPlanta.RendimientoPorcentaje = 0;
            }


            //NotaIngresoAlmacenPlanta.Observacion = guiaRecepcionMateriaPrima.Observacion;
            NotaIngresoAlmacenPlanta.UsuarioRegistro = request.Usuario;
            NotaIngresoAlmacenPlanta.FechaRegistro   = DateTime.Now;
            NotaIngresoAlmacenPlanta.EstadoId        = NotaIngresoPlantaEstados.Pesado;
            NotaIngresoAlmacenPlanta.PesoporSaco     = notaIngresoPlanta.PesoPorSaco;



            int affected = _INotaIngresoAlmacenPlantaRepository.Insertar(NotaIngresoAlmacenPlanta);

            _INotaIngresoPlantaRepository.ActualizarEstado(request.NotaIngresoPlantaId, DateTime.Now, request.Usuario, NotaIngresoPlantaEstados.EnviadoAlmacen);

            return(affected);
        }
        /*
         *
         *
         *
         *
         *              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);
        }
        public int RegistrarInspeccionInterna(RegistrarActualizarInspeccionInternaRequestDTO request, IFormFile file)
        {
            InspeccionInterna inspeccionInterna = _Mapper.Map <InspeccionInterna>(request);

            inspeccionInterna.FechaRegistro   = DateTime.Now;
            inspeccionInterna.UsuarioRegistro = request.Usuario;
            inspeccionInterna.Numero          = _ICorrelativoRepository.Obtener(request.EmpresaId, Documentos.InspeccionInterna);

            AdjuntarArchivosBL AdjuntoBl = new AdjuntarArchivosBL(_fileServerSettings);

            byte[] fileBytes = null;

            if (file != null)
            {
                if (file.Length > 0)
                {
                    using (var ms = new MemoryStream())
                    {
                        file.CopyTo(ms);
                        fileBytes = ms.ToArray();
                        string s = Convert.ToBase64String(fileBytes);
                        // act on the Base64 data
                    }

                    inspeccionInterna.NombreArchivo = file.FileName;
                    //Adjuntos
                    ResponseAdjuntarArchivoDTO response = AdjuntoBl.AgregarArchivo(new RequestAdjuntarArchivosDTO()
                    {
                        filtros = new AdjuntarArchivosDTO()
                        {
                            archivoStream = fileBytes,
                            filename      = file.FileName,
                        },
                        pathFile = _fileServerSettings.Value.InspeccionInterna
                    });
                    inspeccionInterna.PathArchivo = _fileServerSettings.Value.InspeccionInterna + "\\" + response.ficheroReal;
                }
            }

            int inspeccionInternaId = _IInspeccionInternaRepository.Insertar(inspeccionInterna);

            if (request.InspeccionInternaNormaList.FirstOrDefault() != null)
            {
                request.InspeccionInternaNormaList.ForEach(z =>
                {
                    z.InspeccionInternaId = inspeccionInternaId;
                });

                _IInspeccionInternaRepository.ActualizarInspeccionInternaNormas(request.InspeccionInternaNormaList, inspeccionInternaId);
            }

            if (request.InspeccionInternaParcelaList.FirstOrDefault() != null)
            {
                request.InspeccionInternaParcelaList.ForEach(z =>
                {
                    z.InspeccionInternaId = inspeccionInternaId;
                });

                _IInspeccionInternaRepository.ActualizarInspeccionInternaParcela(request.InspeccionInternaParcelaList, inspeccionInternaId);
            }

            if (request.InspeccionInternaLevantamientoNoConformidadList.FirstOrDefault() != null)
            {
                request.InspeccionInternaLevantamientoNoConformidadList.ForEach(z =>
                {
                    z.InspeccionInternaId = inspeccionInternaId;
                });

                _IInspeccionInternaRepository.ActualizarInspeccionInternaLevantamientoNoConformidad(request.InspeccionInternaLevantamientoNoConformidadList, inspeccionInternaId);
            }

            if (request.InspeccionInternaNoConformidadList.FirstOrDefault() != null)
            {
                request.InspeccionInternaNoConformidadList.ForEach(z =>
                {
                    z.InspeccionInternaId = inspeccionInternaId;
                });

                _IInspeccionInternaRepository.ActualizarInspeccionInternaNoConformidad(request.InspeccionInternaNoConformidadList, inspeccionInternaId);
            }

            return(inspeccionInternaId);
        }
        public int RegistrarDiagnostico(RegistrarActualizarDiagnosticoRequestDTO request, IFormFile file)
        {
            Diagnostico Diagnostico = _Mapper.Map <Diagnostico>(request);

            Diagnostico.FechaRegistro   = DateTime.Now;
            Diagnostico.UsuarioRegistro = request.Usuario;
            Diagnostico.Numero          = _ICorrelativoRepository.Obtener(request.EmpresaId, Documentos.Diagnostico);

            AdjuntarArchivosBL AdjuntoBl = new AdjuntarArchivosBL(_fileServerSettings);

            byte[] fileBytes = null;

            if (file != null)
            {
                if (file.Length > 0)
                {
                    using (var ms = new MemoryStream())
                    {
                        file.CopyTo(ms);
                        fileBytes = ms.ToArray();
                        string s = Convert.ToBase64String(fileBytes);
                        // act on the Base64 data
                    }

                    Diagnostico.NombreArchivo = file.FileName;
                    //Adjuntos
                    ResponseAdjuntarArchivoDTO response = AdjuntoBl.AgregarArchivo(new RequestAdjuntarArchivosDTO()
                    {
                        filtros = new AdjuntarArchivosDTO()
                        {
                            archivoStream = fileBytes,
                            filename      = file.FileName,
                        },
                        pathFile = _fileServerSettings.Value.Diagnostico
                    });
                    Diagnostico.PathArchivo = _fileServerSettings.Value.Diagnostico + "\\" + response.ficheroReal;
                }
            }

            int DiagnosticoId = _IDiagnosticoRepository.Insertar(Diagnostico);

            if (request.DiagnosticoCostoProduccionList.FirstOrDefault() != null)
            {
                request.DiagnosticoCostoProduccionList.ForEach(z =>
                {
                    z.DiagnosticoId = DiagnosticoId;
                });

                _IDiagnosticoRepository.ActualizarDiagnosticoCostoProduccion(request.DiagnosticoCostoProduccionList, DiagnosticoId);
            }

            if (request.DiagnosticoDatosCampoList.FirstOrDefault() != null)
            {
                request.DiagnosticoDatosCampoList.ForEach(z =>
                {
                    z.DiagnosticoId = DiagnosticoId;
                });

                _IDiagnosticoRepository.ActualizarDiagnosticoDatosCampo(request.DiagnosticoDatosCampoList, DiagnosticoId);
            }

            if (request.DiagnosticoInfraestructuraList.FirstOrDefault() != null)
            {
                request.DiagnosticoInfraestructuraList.ForEach(z =>
                {
                    z.DiagnosticoId = DiagnosticoId;
                });

                _IDiagnosticoRepository.ActualizarDiagnosticoInfraestructura(request.DiagnosticoInfraestructuraList, DiagnosticoId);
            }

            return(DiagnosticoId);
        }
        public int RegistrarNotaSalidaAlmacen(RegistrarNotaSalidaAlmacenRequestDTO request)
        {
            NotaSalidaAlmacen notaSalidaAlmacen = new NotaSalidaAlmacen();
            List <NotaSalidaAlmacenDetalle> lstnotaSalidaAlmacen = new List <NotaSalidaAlmacenDetalle>();
            int affected = 0;

            List <TablaIdsTipo> loteIdActualizar = new List <TablaIdsTipo>();

            notaSalidaAlmacen.EmpresaId                = request.EmpresaId;
            notaSalidaAlmacen.AlmacenId                = request.AlmacenId;
            notaSalidaAlmacen.Numero                   = _ICorrelativoRepository.Obtener(request.EmpresaId, Documentos.NotaSalidaAlmacen);
            notaSalidaAlmacen.MotivoTrasladoId         = request.MotivoTrasladoId;
            notaSalidaAlmacen.MotivoTrasladoReferencia = request.MotivoTrasladoReferencia;
            notaSalidaAlmacen.EmpresaIdDestino         = request.EmpresaIdDestino;
            notaSalidaAlmacen.EmpresaTransporteId      = request.EmpresaTransporteId;
            notaSalidaAlmacen.TransporteId             = request.TransporteId;
            notaSalidaAlmacen.NumeroConstanciaMTC      = request.NumeroConstanciaMTC;
            notaSalidaAlmacen.MarcaTractorId           = request.MarcaTractorId;
            notaSalidaAlmacen.PlacaTractor             = request.PlacaTractor;
            notaSalidaAlmacen.MarcaCarretaId           = request.MarcaCarretaId;
            notaSalidaAlmacen.PlacaCarreta             = request.PlacaCarreta;
            notaSalidaAlmacen.Conductor                = request.Conductor;
            notaSalidaAlmacen.Licencia                 = request.Licencia;
            notaSalidaAlmacen.Observacion              = request.Observacion;
            notaSalidaAlmacen.CantidadLotes            = request.CantidadLotes;
            //notaSalidaAlmacen.PromedioPorcentajeRendimiento = request.PromedioPorcentajeRendimiento;
            notaSalidaAlmacen.CantidadTotal   = request.CantidadTotal;
            notaSalidaAlmacen.PesoKilosBrutos = request.PesoKilosBrutos;


            notaSalidaAlmacen.EstadoId        = NotaSalidaAlmacenEstados.Ingresado;
            notaSalidaAlmacen.FechaRegistro   = DateTime.Now;
            notaSalidaAlmacen.UsuarioRegistro = request.UsuarioNotaSalidaAlmacen;

            notaSalidaAlmacen.NotaSalidaAlmacenId = _INotaSalidaAlmacenRepository.Insertar(notaSalidaAlmacen);

            if (notaSalidaAlmacen.NotaSalidaAlmacenId != 0)
            {
                request.ListNotaSalidaAlmacenDetalle.ForEach(x =>
                {
                    NotaSalidaAlmacenDetalle obj = new NotaSalidaAlmacenDetalle();
                    obj.LoteId = x.LoteId;
                    obj.NotaSalidaAlmacenId = notaSalidaAlmacen.NotaSalidaAlmacenId;

                    lstnotaSalidaAlmacen.Add(obj);


                    TablaIdsTipo tablaLoteIdsTipo = new TablaIdsTipo();
                    tablaLoteIdsTipo.Id           = x.LoteId;
                    loteIdActualizar.Add(tablaLoteIdsTipo);
                });

                affected = _INotaSalidaAlmacenRepository.ActualizarNotaSalidaAlmacenDetalle(lstnotaSalidaAlmacen, notaSalidaAlmacen.NotaSalidaAlmacenId);


                _LoteRepository.ActualizarEstadoPorIds(loteIdActualizar, DateTime.Now, request.UsuarioNotaSalidaAlmacen, LoteEstados.GeneradoNotaSalida);
            }


            #region Guia Remision
            int guiaRemisionAlmacenId;
            //GuiaRemisionAlmacen guiaRemisionAlmacen = new GuiaRemisionAlmacen();

            GuiaRemisionAlmacen guiaRemisionAlmacen = _Mapper.Map <GuiaRemisionAlmacen>(notaSalidaAlmacen);
            guiaRemisionAlmacen.Numero = _ICorrelativoRepository.Obtener(request.EmpresaId, Documentos.GuiaRemisionAlmacen);


            #region Comentado Guia de Remision

            string tipoProduccionId    = String.Empty;
            string tipoCertificacionId = String.Empty;

            List <ConsultaNotaSalidaAlmacenLotesDetallePorIdBE> NotaSalidaDetalle = _INotaSalidaAlmacenRepository.ConsultarNotaSalidaAlmacenLotesDetallePorIdBE(notaSalidaAlmacen.NotaSalidaAlmacenId).ToList();


            if (NotaSalidaDetalle.Count > 0)
            {
                tipoProduccionId    = NotaSalidaDetalle[0].TipoProduccionId;
                tipoCertificacionId = NotaSalidaDetalle[0].TipoCertificacionId;
            }

            guiaRemisionAlmacen.TipoProduccionId    = tipoProduccionId;
            guiaRemisionAlmacen.TipoCertificacionId = tipoCertificacionId;

            guiaRemisionAlmacenId = _IGuiaRemisionAlmacenRepository.Insertar(guiaRemisionAlmacen);

            if (guiaRemisionAlmacenId != 0)
            {
                List <GuiaRemisionAlmacenDetalleTipo> listaDetalle = new List <GuiaRemisionAlmacenDetalleTipo>();
                if (NotaSalidaDetalle.Any())
                {
                    NotaSalidaDetalle.ForEach(x =>
                    {
                        GuiaRemisionAlmacenDetalleTipo item = _Mapper.Map <GuiaRemisionAlmacenDetalleTipo>(x);
                        item.GuiaRemisionAlmacenId          = guiaRemisionAlmacenId;
                        item.FechaLote             = x.FechaRegistro;
                        item.UnidadMedidaIdPesado  = x.UnidadMedidaId;
                        item.ProductoId            = x.ProductoId;
                        item.SubProductoId         = x.SubProductoId;
                        item.NumeroLote            = x.NumeroLote;
                        item.CantidadPesado        = x.Cantidad;
                        item.KilosNetosPesado      = x.TotalKilosNetosPesado;
                        item.KilosBrutosPesado     = x.TotalKilosBrutosPesado;
                        item.RendimientoPorcentaje = x.RendimientoPorcentaje;
                        item.HumedadPorcentaje     = x.HumedadPorcentajeAnalisisFisico;
                        item.TipoProduccionId      = x.TipoProduccionId;
                        item.TipoCertificacionId   = x.TipoCertificacionId;
                        listaDetalle.Add(item);
                    });

                    _IGuiaRemisionAlmacenRepository.ActualizarGuiaRemisionAlmacenDetalle(listaDetalle);
                }
            }

            #endregion Comentado Guia de Remision


            #endregion

            return(affected);
        }
        public int RegistrarCliente(RegistrarActualizarClienteRequestDTO request)
        {
            int validarUsuario = _IUsersService.ValidarUsuario(request.CorreoElectronico);

            if (validarUsuario > 0)
            {
                throw new ResultException(new Result {
                    ErrCode = "01", Message = "Ya existe un cliente con el mismo Email"
                });
            }
            Cliente cliente = _Mapper.Map <Cliente>(request);

            cliente.FechaRegistro   = DateTime.Now;
            cliente.UsuarioRegistro = request.Usuario;
            cliente.Numero          = _ICorrelativoRepository.Obtener(request.EmpresaId, Documentos.Cliente);

            int clienteId = _IClienteRepository.Insertar(cliente);

            User user = new User();

            user.UserName    = request.CorreoElectronico;
            user.FullName    = request.RazonSocial;
            user.EmailId     = request.CorreoElectronico;
            user.Password    = cliente.Numero;
            user.CreatedDate = DateTime.Now;
            user.EmpresaId   = request.EmpresaId;
            user.ClienteId   = clienteId;
            user.Activo      = 1;
            user.EstadoId    = "01";



            int userId    = _IUsersService.RegistrarUsuario(user);
            int rolId     = int.Parse(_ParametrosSettings.Value.RoleId);
            int userRolId = _IUsersService.RegistrarRolUsuario(userId, rolId);

            EmailManager emailManager = new EmailManager();

            string pathPlantilla = String.Empty;
            string asunto        = String.Empty;

            Empresa empresa = _IEmpresaRepository.ObtenerEmpresaPorId(request.EmpresaId);


            string correoFrom = _ParametrosSettings.Value.CorreoFrom;
            string logo       = String.Empty;

            if (empresa != null && !String.IsNullOrEmpty(empresa.CorreoFrom))
            {
                //correoFrom = empresa.CorreoFrom;
                logo = empresa.Logo;
            }

            if (cliente.TipoClienteId == ClienteTipo.Nacional)
            {
                pathPlantilla = $"{this._webHostEnvironment.ContentRootPath}\\plantillas_correo\\bienvenidaES.html";
                asunto        = "Bienvenido a Coffee Connect!";
            }
            else
            {
                pathPlantilla = $"{this._webHostEnvironment.ContentRootPath}\\plantillas_correo\\bienvenidaEN.html";
                asunto        = "Welcome to Coffee Connect!";
            }
            //emailManager.SendEmail();


            string url = _ParametrosSettings.Value.UrlSistema;

            var responseTask = Task.Run(() => emailManager.SendEmailBienvenida(pathPlantilla, asunto, request.RazonSocial, request.CorreoElectronico, request.CorreoElectronico, cliente.Numero, url, correoFrom, "/assets/img/" + logo));

            return(clienteId);
        }
Beispiel #18
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);
        }
Beispiel #19
0
        public int GenerarLote(GenerarLoteRequestDTO request)
        {
            Lote lote = new Lote();

            lote.EmpresaId           = request.EmpresaId;
            lote.Numero              = _ICorrelativoRepository.Obtener(request.EmpresaId, Documentos.Lote);
            lote.EstadoId            = LoteEstados.Ingresado;
            lote.AlmacenId           = request.AlmacenId;
            lote.FechaRegistro       = DateTime.Now;
            lote.UsuarioRegistro     = request.Usuario;
            lote.ProductoId          = request.ProductoId;
            lote.SubProductoId       = request.SubProductoId;
            lote.TipoCertificacionId = request.TipoCertificacionId;

            int loteId = 0;

            decimal totalKilosNetosPesado      = 0;
            decimal totalKilosNetosDescontar   = 0;
            decimal totalKilosNetosPagar       = 0;
            decimal totalKilosBrutosPesado     = 0;
            decimal totalCantidad              = 0;
            string  unidadMedidaId             = String.Empty;
            decimal totalRendimientoPorcentaje = 0;
            decimal totalAnalisisSensorial     = 0;
            decimal totalHumedadPorcentaje     = 0;
            string  tipoProduccionId           = String.Empty;

            List <NotaIngresoAlmacen> notasIngreso = _INotaIngresoAlmacenRepository.ConsultarNotaIngresoPorIds(request.NotasIngresoAlmacenId).ToList();

            if (notasIngreso != null)
            {
                List <LoteDetalle> lotesDetalle = new List <LoteDetalle>();

                notasIngreso.ForEach(notaingreso =>
                {
                    LoteDetalle item           = new LoteDetalle();
                    item.LoteId                = loteId;
                    item.NotaIngresoAlmacenId  = notaingreso.NotaIngresoAlmacenId;
                    item.Numero                = notaingreso.Numero;
                    item.TipoProvedorId        = notaingreso.TipoProvedorId;
                    item.SocioId               = notaingreso.SocioId;
                    item.TerceroId             = notaingreso.TerceroId;
                    item.IntermediarioId       = notaingreso.IntermediarioId;
                    item.ProductoId            = notaingreso.ProductoId;
                    item.SubProductoId         = notaingreso.SubProductoId;
                    item.UnidadMedidaIdPesado  = notaingreso.UnidadMedidaIdPesado;
                    item.CantidadPesado        = notaingreso.CantidadPesado;
                    item.KilosNetosPesado      = notaingreso.KilosNetosPesado;
                    item.KilosBrutosPesado     = notaingreso.KilosBrutosPesado;
                    item.RendimientoPorcentaje = notaingreso.RendimientoPorcentaje;
                    item.HumedadPorcentaje     = notaingreso.HumedadPorcentajeAnalisisFisico;
                    if (notaingreso.TotalAnalisisSensorial != null)
                    {
                        item.TotalAnalisisSensorial = notaingreso.TotalAnalisisSensorial.Value;
                    }



                    item.NotaIngresoAlmacenId  = notaingreso.NotaIngresoAlmacenId;
                    totalKilosNetosPesado      = totalKilosNetosPesado + item.KilosNetosPesado;
                    totalKilosBrutosPesado     = totalKilosBrutosPesado + item.KilosBrutosPesado;
                    totalRendimientoPorcentaje = totalRendimientoPorcentaje + item.RendimientoPorcentaje.Value;
                    totalAnalisisSensorial     = totalAnalisisSensorial + item.TotalAnalisisSensorial;
                    totalKilosNetosPagar       = totalKilosNetosPagar + (notaingreso.KilosNetosPagar.HasValue ? notaingreso.KilosNetosPagar.Value : 0);
                    totalKilosNetosDescontar   = totalKilosNetosDescontar + (notaingreso.KilosNetosDescontar.HasValue ? notaingreso.KilosNetosDescontar.Value : 0);
                    totalHumedadPorcentaje     = totalHumedadPorcentaje + item.HumedadPorcentaje;
                    totalCantidad    = totalCantidad + item.CantidadPesado;
                    unidadMedidaId   = item.UnidadMedidaIdPesado;
                    tipoProduccionId = notaingreso.TipoProduccionId;
                    lotesDetalle.Add(item);
                });


                lote.TotalKilosNetosPesado    = totalKilosNetosPesado;
                lote.TotalKilosBrutosPesado   = totalKilosBrutosPesado;
                lote.TotalKilosNetosPagar     = totalKilosNetosPagar;
                lote.TotalKilosNetosDescontar = totalKilosNetosDescontar;
                //lote.PromedioRendimientoPorcentaje = totalRendimientoPorcentaje / lotesDetalle.Count;
                //lote.PromedioHumedadPorcentaje = totalHumedadPorcentaje / lotesDetalle.Count;
                lote.UnidadMedidaId   = unidadMedidaId;
                lote.TipoProduccionId = tipoProduccionId;
                //lote.PromedioTotalAnalisisSensorial = totalAnalisisSensorial / lotesDetalle.Count;

                lote.Cantidad = totalCantidad;

                loteId = _ILoteRepository.Insertar(lote);

                lotesDetalle.ForEach(loteDetalle =>
                {
                    loteDetalle.LoteId = loteId;
                });

                int affected = _ILoteRepository.InsertarLoteDetalle(lotesDetalle);

                notasIngreso.ForEach(notaingreso =>
                {
                    _INotaIngresoAlmacenRepository.ActualizarEstado(notaingreso.NotaIngresoAlmacenId, DateTime.Now, request.Usuario, NotaIngresoAlmacenEstados.Lotizado);
                });
            }

            return(loteId);
        }