public int AnularGuiaRecepcionMateriaPrima(AnularGuiaRecepcionMateriaPrimaRequestDTO request) { ConsultaGuiaRecepcionMateriaPrimaPorIdBE consultaGuiaRecepcionMateriaPrimaPorIdBE = _IGuiaRecepcionMateriaPrimaRepository.ConsultarGuiaRecepcionMateriaPrimaPorId(request.GuiaRecepcionMateriaPrimaId); int contratoId = consultaGuiaRecepcionMateriaPrimaPorIdBE.ContratoAsignadoId; ConsultaContratoPorIdBE consultaContratoPorIdBE = _IContratoRepository.ConsultarContratoPorId(contratoId); if (consultaContratoPorIdBE.EstadoId == ContratoEstados.Completado) { //throw new ResultException(new Result { ErrCode = "04", Message = "Acopio.GuiaRecepcionMateriaPrima.ContratoCompletado.Label" }); throw new ResultException(new Result { ErrCode = "04", Message = "No se puede anular una guía con contrato asignado completado." }); } else if (consultaContratoPorIdBE.EstadoId == ContratoEstados.Asignado) { decimal kilosNetosPesado = consultaGuiaRecepcionMateriaPrimaPorIdBE.KilosNetosPesado; _IContratoRepository.ActualizarSaldoPendienteAsignacionAcopio(contratoId, kilosNetosPesado * (-1)); } int affected = _IGuiaRecepcionMateriaPrimaRepository.AnularGuiaRecepcionMateriaPrima(request.GuiaRecepcionMateriaPrimaId, DateTime.Now, request.Usuario, GuiaRecepcionMateriaPrimaEstados.Anulado); string productoIdCafePergamino = _ParametrosSettings.Value.ProductoIdCafePergamino; string subProductoIdCafeSeco = _ParametrosSettings.Value.SubProductoIdCafeSeco; if (consultaGuiaRecepcionMateriaPrimaPorIdBE.ProductoId == productoIdCafePergamino && consultaGuiaRecepcionMateriaPrimaPorIdBE.SubProductoId == subProductoIdCafeSeco && consultaGuiaRecepcionMateriaPrimaPorIdBE.SocioFincaCertificacion != String.Empty) { List <ConsultaSocioFincaEstimadoPorSocioFincaIdBE> fincaEstimados = _ISocioFincaRepository.ConsultarSocioFincaEstimadoPorSocioFincaId(consultaGuiaRecepcionMateriaPrimaPorIdBE.SocioFincaId.Value).ToList(); if (fincaEstimados.Count > 0) { int anioActual = DateTime.Now.Year; ConsultaSocioFincaEstimadoPorSocioFincaIdBE fincaEstima = null; fincaEstima = fincaEstimados.Where(x => x.Anio == anioActual).FirstOrDefault(); if (fincaEstima != null) { _ISocioFincaRepository.ActualizarSocioFincaEstimadoConsumido(fincaEstima.SocioFincaEstimadoId, consultaGuiaRecepcionMateriaPrimaPorIdBE.KilosBrutosPesado * -1); } } } return(affected); }
public ConsultaSocioFincaEstimadoPorSocioFincaIdBE ConsultarSocioFincaEstimadoPorSocioFincaId(ConsultaSocioFincaEstimadoPorSocioFincaIdRequest request) { List <ConsultaSocioFincaEstimadoPorSocioFincaIdBE> fincaEstimados = _ISocioFincaRepository.ConsultarSocioFincaEstimadoPorSocioFincaId(request.SocioFincaId).ToList(); ConsultaSocioFincaEstimadoPorSocioFincaIdBE fincaEstima = null; if (fincaEstimados.Count > 0) { int anioActual = DateTime.Now.Year; fincaEstima = fincaEstimados.Where(x => x.Anio == anioActual).FirstOrDefault(); if (fincaEstima != null) { fincaEstima.SaldoPendiente = fincaEstima.Estimado - fincaEstima.Consumido; } } return(fincaEstima); }
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); }
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); }