Пример #1
0
        public int InsertarPesado(GuiaRecepcionMateriaPrima guiaRecepcionMateriaPrima)
        {
            int result = 0;

            var parameters = new DynamicParameters();

            parameters.Add("@EmpresaId", guiaRecepcionMateriaPrima.EmpresaId);
            parameters.Add("@Numero", guiaRecepcionMateriaPrima.Numero);
            parameters.Add("@NumeroReferencia", guiaRecepcionMateriaPrima.NumeroReferencia);
            parameters.Add("@TipoProvedorId", guiaRecepcionMateriaPrima.TipoProvedorId);
            parameters.Add("@SocioId", guiaRecepcionMateriaPrima.SocioId);
            parameters.Add("@TerceroId", guiaRecepcionMateriaPrima.TerceroId);
            parameters.Add("@IntermediarioId", guiaRecepcionMateriaPrima.IntermediarioId);
            parameters.Add("@ProductoId", guiaRecepcionMateriaPrima.ProductoId);
            parameters.Add("@SubProductoId", guiaRecepcionMateriaPrima.SubProductoId);
            parameters.Add("@FechaCosecha", guiaRecepcionMateriaPrima.FechaCosecha);
            parameters.Add("@FechaPesado", guiaRecepcionMateriaPrima.FechaPesado);
            parameters.Add("@UsuarioPesado", guiaRecepcionMateriaPrima.UsuarioPesado);
            parameters.Add("@UnidadMedidaIdPesado", guiaRecepcionMateriaPrima.UnidadMedidaIdPesado);
            parameters.Add("@ContratoAsignadoId", guiaRecepcionMateriaPrima.ContratoAsignadoId);


            parameters.Add("@CantidadPesado", guiaRecepcionMateriaPrima.CantidadPesado);
            parameters.Add("@KilosBrutosPesado", guiaRecepcionMateriaPrima.KilosBrutosPesado);
            parameters.Add("@KilosNetosPesado", guiaRecepcionMateriaPrima.KilosNetosPesado);
            parameters.Add("@TaraPesado", guiaRecepcionMateriaPrima.TaraPesado);
            parameters.Add("@ObservacionPesado", guiaRecepcionMateriaPrima.ObservacionPesado);
            parameters.Add("@EstadoId", guiaRecepcionMateriaPrima.EstadoId);
            parameters.Add("@SocioFincaId", guiaRecepcionMateriaPrima.SocioFincaId);
            parameters.Add("@TerceroFincaId", guiaRecepcionMateriaPrima.TerceroFincaId);
            parameters.Add("@IntermediarioFinca", guiaRecepcionMateriaPrima.IntermediarioFinca);
            parameters.Add("@SocioFincaCertificacion", guiaRecepcionMateriaPrima.SocioFincaCertificacion);


            parameters.Add("@FechaRegistro", guiaRecepcionMateriaPrima.FechaRegistro);
            parameters.Add("@UsuarioRegistro", guiaRecepcionMateriaPrima.UsuarioRegistro);
            parameters.Add("@TipoProduccionId", guiaRecepcionMateriaPrima.TipoProduccionId);

            parameters.Add("@GuiaRecepcionMateriaPrimaId", dbType: DbType.Int32, direction: ParameterDirection.Output);


            using (IDbConnection db = new SqlConnection(_connectionString.Value.CoffeeConnectDB))
            {
                result = db.Execute("uspGuiaRecepcionMateriaPrimaPesadoInsertar", parameters, commandType: CommandType.StoredProcedure);
            }

            int id = parameters.Get <int>("GuiaRecepcionMateriaPrimaId");

            return(id);
        }
Пример #2
0
        public int ActualizarPesado(GuiaRecepcionMateriaPrima guiaRecepcionMateriaPrima)
        {
            int result = 0;

            var parameters = new DynamicParameters();

            parameters.Add("@GuiaRecepcionMateriaPrimaId", guiaRecepcionMateriaPrima.GuiaRecepcionMateriaPrimaId);
            parameters.Add("@NumeroReferencia", guiaRecepcionMateriaPrima.NumeroReferencia);
            parameters.Add("@EmpresaId", guiaRecepcionMateriaPrima.EmpresaId);
            parameters.Add("@TipoProvedorId", guiaRecepcionMateriaPrima.TipoProvedorId);
            parameters.Add("@SocioId", guiaRecepcionMateriaPrima.SocioId);
            parameters.Add("@TerceroId", guiaRecepcionMateriaPrima.TerceroId);
            parameters.Add("@IntermediarioId", guiaRecepcionMateriaPrima.IntermediarioId);
            parameters.Add("@ProductoId", guiaRecepcionMateriaPrima.ProductoId);
            parameters.Add("@SubProductoId", guiaRecepcionMateriaPrima.SubProductoId);
            parameters.Add("@FechaCosecha", guiaRecepcionMateriaPrima.FechaCosecha);
            parameters.Add("@FechaPesado", guiaRecepcionMateriaPrima.FechaPesado);
            parameters.Add("@UsuarioPesado", guiaRecepcionMateriaPrima.UsuarioPesado);
            parameters.Add("@UnidadMedidaIdPesado", guiaRecepcionMateriaPrima.UnidadMedidaIdPesado);
            parameters.Add("@CantidadPesado", guiaRecepcionMateriaPrima.CantidadPesado);
            parameters.Add("@KilosBrutosPesado", guiaRecepcionMateriaPrima.KilosBrutosPesado);
            parameters.Add("@TaraPesado", guiaRecepcionMateriaPrima.TaraPesado);
            parameters.Add("@ObservacionPesado", guiaRecepcionMateriaPrima.ObservacionPesado);
            parameters.Add("@EstadoId", guiaRecepcionMateriaPrima.EstadoId);
            parameters.Add("@SocioFincaId", guiaRecepcionMateriaPrima.SocioFincaId);
            parameters.Add("@TerceroFincaId", guiaRecepcionMateriaPrima.TerceroFincaId);
            parameters.Add("@IntermediarioFinca", guiaRecepcionMateriaPrima.IntermediarioFinca);
            parameters.Add("@KilosNetosPesado", guiaRecepcionMateriaPrima.KilosNetosPesado);
            parameters.Add("@FechaUltimaActualizacion", guiaRecepcionMateriaPrima.FechaUltimaActualizacion);
            parameters.Add("@UsuarioUltimaActualizacion", guiaRecepcionMateriaPrima.UsuarioUltimaActualizacion);
            parameters.Add("@TipoProduccionId", guiaRecepcionMateriaPrima.TipoProduccionId);
            parameters.Add("@SocioFincaCertificacion", guiaRecepcionMateriaPrima.SocioFincaCertificacion);

            using (IDbConnection db = new SqlConnection(_connectionString.Value.CoffeeConnectDB))
            {
                result = db.Execute("uspGuiaRecepcionMateriaPrimaPesadoActualizar", parameters, commandType: CommandType.StoredProcedure);
            }



            return(result);
        }
Пример #3
0
        public int ActualizarAnalisisCalidad(GuiaRecepcionMateriaPrima guiaRecepcionMateriaPrima)
        {
            int result = 0;

            var parameters = new DynamicParameters();

            parameters.Add("@GuiaRecepcionMateriaPrimaId", guiaRecepcionMateriaPrima.GuiaRecepcionMateriaPrimaId);
            parameters.Add("@ExportableGramosAnalisisFisico", guiaRecepcionMateriaPrima.ExportableGramosAnalisisFisico);
            parameters.Add("@ExportablePorcentajeAnalisisFisico", guiaRecepcionMateriaPrima.ExportablePorcentajeAnalisisFisico);
            parameters.Add("@DescarteGramosAnalisisFisico", guiaRecepcionMateriaPrima.DescarteGramosAnalisisFisico);
            parameters.Add("@DescartePorcentajeAnalisisFisico", guiaRecepcionMateriaPrima.DescartePorcentajeAnalisisFisico);
            parameters.Add("@CascarillaGramosAnalisisFisico", guiaRecepcionMateriaPrima.CascarillaGramosAnalisisFisico);
            parameters.Add("@CascarillaPorcentajeAnalisisFisico", guiaRecepcionMateriaPrima.CascarillaPorcentajeAnalisisFisico);
            parameters.Add("@TotalGramosAnalisisFisico", guiaRecepcionMateriaPrima.TotalGramosAnalisisFisico);
            parameters.Add("@TotalPorcentajeAnalisisFisico", guiaRecepcionMateriaPrima.TotalPorcentajeAnalisisFisico);
            parameters.Add("@HumedadPorcentajeAnalisisFisico", guiaRecepcionMateriaPrima.HumedadPorcentajeAnalisisFisico);
            parameters.Add("@TotalAnalisisSensorial", guiaRecepcionMateriaPrima.TotalAnalisisSensorial);

            parameters.Add("@SubTotalAnalisisSensorial", guiaRecepcionMateriaPrima.SubTotalAnalisisSensorial);
            parameters.Add("@DefectosTasaAnalisisSensorial", guiaRecepcionMateriaPrima.DefectosTasaAnalisisSensorial);
            parameters.Add("@DefectosIntensidadAnalisisSensorial", guiaRecepcionMateriaPrima.DefectosIntensidadAnalisisSensorial);


            parameters.Add("@ObservacionAnalisisFisico", guiaRecepcionMateriaPrima.ObservacionAnalisisFisico);
            parameters.Add("@FechaCalidad", guiaRecepcionMateriaPrima.FechaCalidad);
            parameters.Add("@UsuarioCalidad", guiaRecepcionMateriaPrima.UsuarioCalidad);
            parameters.Add("@ObservacionRegistroTostado", guiaRecepcionMateriaPrima.ObservacionRegistroTostado);
            parameters.Add("@ObservacionAnalisisSensorial", guiaRecepcionMateriaPrima.ObservacionAnalisisSensorial);
            parameters.Add("@EstadoId", guiaRecepcionMateriaPrima.EstadoId);
            parameters.Add("@FechaUltimaActualizacion", guiaRecepcionMateriaPrima.FechaCalidad);
            parameters.Add("@UsuarioUltimaActualizacion", guiaRecepcionMateriaPrima.UsuarioCalidad);


            using (IDbConnection db = new SqlConnection(_connectionString.Value.CoffeeConnectDB))
            {
                result = db.Execute("uspGuiaRecepcionMateriaPrimaCalidadActualizar", parameters, commandType: CommandType.StoredProcedure);
            }

            return(result);
        }
Пример #4
0
        public int ActualizarGuiaRecepcionMateriaPrimaAnalisisCalidad(ActualizarGuiaRecepcionMateriaPrimaAnalisisCalidadRequestDTO request)
        {
            GuiaRecepcionMateriaPrima guiaRecepcionMateriaPrima = new GuiaRecepcionMateriaPrima();

            guiaRecepcionMateriaPrima.GuiaRecepcionMateriaPrimaId        = request.GuiaRecepcionMateriaPrimaId;
            guiaRecepcionMateriaPrima.ExportableGramosAnalisisFisico     = request.ExportableGramosAnalisisFisico;
            guiaRecepcionMateriaPrima.ExportablePorcentajeAnalisisFisico = request.ExportablePorcentajeAnalisisFisico;
            guiaRecepcionMateriaPrima.DescarteGramosAnalisisFisico       = request.DescarteGramosAnalisisFisico;
            guiaRecepcionMateriaPrima.DescartePorcentajeAnalisisFisico   = request.DescartePorcentajeAnalisisFisico;
            guiaRecepcionMateriaPrima.CascarillaGramosAnalisisFisico     = request.CascarillaGramosAnalisisFisico;
            guiaRecepcionMateriaPrima.CascarillaPorcentajeAnalisisFisico = request.CascarillaPorcentajeAnalisisFisico;
            guiaRecepcionMateriaPrima.TotalGramosAnalisisFisico          = request.TotalGramosAnalisisFisico;
            guiaRecepcionMateriaPrima.TotalPorcentajeAnalisisFisico      = request.TotalPorcentajeAnalisisFisico;
            guiaRecepcionMateriaPrima.HumedadPorcentajeAnalisisFisico    = request.HumedadPorcentajeAnalisisFisico;
            guiaRecepcionMateriaPrima.ObservacionAnalisisFisico          = request.ObservacionAnalisisFisico;
            guiaRecepcionMateriaPrima.UsuarioCalidad                      = request.UsuarioCalidad;
            guiaRecepcionMateriaPrima.ObservacionRegistroTostado          = request.ObservacionRegistroTostado;
            guiaRecepcionMateriaPrima.ObservacionAnalisisSensorial        = request.ObservacionAnalisisSensorial;
            guiaRecepcionMateriaPrima.DefectosTasaAnalisisSensorial       = request.DefectosTasaAnalisisSensorial;
            guiaRecepcionMateriaPrima.DefectosIntensidadAnalisisSensorial = request.DefectosIntensidadAnalisisSensorial;
            guiaRecepcionMateriaPrima.UsuarioCalidad                      = request.UsuarioCalidad;
            guiaRecepcionMateriaPrima.EstadoId     = GuiaRecepcionMateriaPrimaEstados.Analizado;
            guiaRecepcionMateriaPrima.FechaCalidad = DateTime.Now;

            decimal subTotalAnalisisSensorial = 0;

            if (request.AnalisisSensorialAtributoDetalleList.FirstOrDefault() != null)
            {
                List <GuiaRecepcionMateriaPrimaAnalisisSensorialAtributoDetalleTipo> AnalisisSensorialAtributoDetalle = new List <GuiaRecepcionMateriaPrimaAnalisisSensorialAtributoDetalleTipo>();

                request.AnalisisSensorialAtributoDetalleList.ForEach(z =>
                {
                    if (z.Valor.HasValue)
                    {
                        subTotalAnalisisSensorial = subTotalAnalisisSensorial + z.Valor.Value;
                    }
                });
            }



            guiaRecepcionMateriaPrima.SubTotalAnalisisSensorial = subTotalAnalisisSensorial;

            guiaRecepcionMateriaPrima.TotalAnalisisSensorial = subTotalAnalisisSensorial - (guiaRecepcionMateriaPrima.DefectosTasaAnalisisSensorial * guiaRecepcionMateriaPrima.DefectosIntensidadAnalisisSensorial);

            int affected = _IGuiaRecepcionMateriaPrimaRepository.ActualizarAnalisisCalidad(guiaRecepcionMateriaPrima);


            #region "Analisis Fisico Color"
            if (request.AnalisisFisicoColorDetalleList.FirstOrDefault() != null)
            {
                List <GuiaRecepcionMateriaPrimaAnalisisFisicoColorDetalleTipo> AnalisisFisicoColorDetalleList = new List <GuiaRecepcionMateriaPrimaAnalisisFisicoColorDetalleTipo>();

                request.AnalisisFisicoColorDetalleList.ForEach(z =>
                {
                    GuiaRecepcionMateriaPrimaAnalisisFisicoColorDetalleTipo item = new GuiaRecepcionMateriaPrimaAnalisisFisicoColorDetalleTipo();
                    item.ColorDetalleDescripcion     = z.ColorDetalleDescripcion;
                    item.ColorDetalleId              = z.ColorDetalleId;
                    item.GuiaRecepcionMateriaPrimaId = request.GuiaRecepcionMateriaPrimaId;
                    item.Valor = z.Valor;
                    AnalisisFisicoColorDetalleList.Add(item);
                });

                affected = _IGuiaRecepcionMateriaPrimaRepository.ActualizarGuiaRecepcionMateriaPrimaAnalisisFisicoColorDetalle(AnalisisFisicoColorDetalleList, request.GuiaRecepcionMateriaPrimaId);
            }
            #endregion

            #region Analisis Fisico Defecto Primario
            if (request.AnalisisFisicoDefectoPrimarioDetalleList.FirstOrDefault() != null)
            {
                List <GuiaRecepcionMateriaPrimaAnalisisFisicoDefectoPrimarioDetalleTipo> AnalisisFisicoDefectoPrimarioDetalleList = new List <GuiaRecepcionMateriaPrimaAnalisisFisicoDefectoPrimarioDetalleTipo>();

                request.AnalisisFisicoDefectoPrimarioDetalleList.ForEach(z =>
                {
                    GuiaRecepcionMateriaPrimaAnalisisFisicoDefectoPrimarioDetalleTipo item = new GuiaRecepcionMateriaPrimaAnalisisFisicoDefectoPrimarioDetalleTipo();
                    item.DefectoDetalleId            = z.DefectoDetalleId;
                    item.DefectoDetalleDescripcion   = z.DefectoDetalleDescripcion;
                    item.DefectoDetalleEquivalente   = z.DefectoDetalleEquivalente;
                    item.GuiaRecepcionMateriaPrimaId = request.GuiaRecepcionMateriaPrimaId;
                    item.Valor = z.Valor;
                    AnalisisFisicoDefectoPrimarioDetalleList.Add(item);
                });

                affected = _IGuiaRecepcionMateriaPrimaRepository.ActualizarGuiaRecepcionMateriaPrimaAnalisisFisicoDefectoPrimarioDetalle(AnalisisFisicoDefectoPrimarioDetalleList, request.GuiaRecepcionMateriaPrimaId);
            }
            #endregion

            #region "Analisis Fisico Defecto Secundario Detalle"
            if (request.AnalisisFisicoDefectoSecundarioDetalleList.FirstOrDefault() != null)
            {
                List <GuiaRecepcionMateriaPrimaAnalisisFisicoDefectoSecundarioDetalleTipo> AnalisisFisicoDefectoSecundarioDetalleList = new List <GuiaRecepcionMateriaPrimaAnalisisFisicoDefectoSecundarioDetalleTipo>();

                request.AnalisisFisicoDefectoSecundarioDetalleList.ForEach(z =>
                {
                    GuiaRecepcionMateriaPrimaAnalisisFisicoDefectoSecundarioDetalleTipo item = new GuiaRecepcionMateriaPrimaAnalisisFisicoDefectoSecundarioDetalleTipo();
                    item.DefectoDetalleId            = z.DefectoDetalleId;
                    item.DefectoDetalleDescripcion   = z.DefectoDetalleDescripcion;
                    item.DefectoDetalleEquivalente   = z.DefectoDetalleEquivalente;
                    item.GuiaRecepcionMateriaPrimaId = request.GuiaRecepcionMateriaPrimaId;
                    item.Valor = z.Valor;
                    AnalisisFisicoDefectoSecundarioDetalleList.Add(item);
                });

                affected = _IGuiaRecepcionMateriaPrimaRepository.ActualizarGuiaRecepcionMateriaPrimaAnalisisFisicoDefectoSecundarioDetalle(AnalisisFisicoDefectoSecundarioDetalleList, request.GuiaRecepcionMateriaPrimaId);
            }
            #endregion

            #region "Analisis Fisico Olor Detalle"
            if (request.AnalisisFisicoOlorDetalleList.FirstOrDefault() != null)
            {
                List <GuiaRecepcionMateriaPrimaAnalisisFisicoOlorDetalleTipo> AnalisisFisicoDefectoSecundarioDetalleList = new List <GuiaRecepcionMateriaPrimaAnalisisFisicoOlorDetalleTipo>();

                request.AnalisisFisicoOlorDetalleList.ForEach(z =>
                {
                    GuiaRecepcionMateriaPrimaAnalisisFisicoOlorDetalleTipo item = new GuiaRecepcionMateriaPrimaAnalisisFisicoOlorDetalleTipo();
                    item.GuiaRecepcionMateriaPrimaId = request.GuiaRecepcionMateriaPrimaId;
                    item.OlorDetalleDescripcion      = z.OlorDetalleDescripcion;
                    item.OlorDetalleId = z.OlorDetalleId;
                    item.Valor         = z.Valor;
                    AnalisisFisicoDefectoSecundarioDetalleList.Add(item);
                });

                affected = _IGuiaRecepcionMateriaPrimaRepository.ActualizarGuiaRecepcionMateriaPrimaAnalisisFisicoOlorDetalle(AnalisisFisicoDefectoSecundarioDetalleList, request.GuiaRecepcionMateriaPrimaId);
            }
            #endregion

            #region "Analisis Sensorial Atributo"
            if (request.AnalisisSensorialAtributoDetalleList.FirstOrDefault() != null)
            {
                List <GuiaRecepcionMateriaPrimaAnalisisSensorialAtributoDetalleTipo> AnalisisSensorialAtributoDetalle = new List <GuiaRecepcionMateriaPrimaAnalisisSensorialAtributoDetalleTipo>();

                request.AnalisisSensorialAtributoDetalleList.ForEach(z =>
                {
                    GuiaRecepcionMateriaPrimaAnalisisSensorialAtributoDetalleTipo item = new GuiaRecepcionMateriaPrimaAnalisisSensorialAtributoDetalleTipo();
                    item.GuiaRecepcionMateriaPrimaId = request.GuiaRecepcionMateriaPrimaId;
                    item.AtributoDetalleDescripcion  = z.AtributoDetalleDescripcion;
                    item.AtributoDetalleId           = z.AtributoDetalleId;
                    item.Valor = z.Valor;
                    AnalisisSensorialAtributoDetalle.Add(item);
                });

                affected = _IGuiaRecepcionMateriaPrimaRepository.ActualizarGuiaRecepcionMateriaPrimaAnalisisSensorialAtributoDetalle(AnalisisSensorialAtributoDetalle, request.GuiaRecepcionMateriaPrimaId);
            }
            #endregion

            if (request.AnalisisSensorialDefectoDetalleList.FirstOrDefault() != null)
            {
                List <GuiaRecepcionMateriaPrimaAnalisisSensorialDefectoDetalleTipo> AnalisisSensorialDefectoDetalle = new List <GuiaRecepcionMateriaPrimaAnalisisSensorialDefectoDetalleTipo>();

                request.AnalisisSensorialDefectoDetalleList.ForEach(z =>
                {
                    GuiaRecepcionMateriaPrimaAnalisisSensorialDefectoDetalleTipo item = new GuiaRecepcionMateriaPrimaAnalisisSensorialDefectoDetalleTipo();
                    item.GuiaRecepcionMateriaPrimaId = request.GuiaRecepcionMateriaPrimaId;
                    item.DefectoDetalleDescripcion   = z.DefectoDetalleDescripcion;
                    item.DefectoDetalleId            = z.DefectoDetalleId;

                    item.Valor = z.Valor;
                    AnalisisSensorialDefectoDetalle.Add(item);
                });

                affected = _IGuiaRecepcionMateriaPrimaRepository.ActualizarGuiaRecepcionMateriaPrimaAnalisisSensorialDefectoDetalle(AnalisisSensorialDefectoDetalle, request.GuiaRecepcionMateriaPrimaId);
            }


            if (request.RegistroTostadoIndicadorDetalleList.FirstOrDefault() != null)
            {
                List <GuiaRecepcionMateriaPrimaRegistroTostadoIndicadorDetalleTipo> RegistroTostadoIndicadorDetalle = new List <GuiaRecepcionMateriaPrimaRegistroTostadoIndicadorDetalleTipo>();

                request.RegistroTostadoIndicadorDetalleList.ForEach(z =>
                {
                    GuiaRecepcionMateriaPrimaRegistroTostadoIndicadorDetalleTipo item = new GuiaRecepcionMateriaPrimaRegistroTostadoIndicadorDetalleTipo();
                    item.GuiaRecepcionMateriaPrimaId = request.GuiaRecepcionMateriaPrimaId;
                    item.IndicadorDetalleDescripcion = z.IndicadorDetalleDescripcion;
                    item.IndicadorDetalleId          = z.IndicadorDetalleId;
                    item.Valor = z.Valor;

                    RegistroTostadoIndicadorDetalle.Add(item);
                });

                affected = _IGuiaRecepcionMateriaPrimaRepository.ActualizarGuiaRecepcionMateriaPrimaRegistroTostadoIndicadorDetalle(RegistroTostadoIndicadorDetalle, request.GuiaRecepcionMateriaPrimaId);
            }

            return(affected);
        }
Пример #5
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);
        }
Пример #6
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);
        }