/// <summary> /// Obtiene los dias de retiro /// </summary> /// <param name="lote">Informacion del lote</param> /// <returns>Numero de dias de retiro</returns> public int ObtenerDiasRetiro(LoteInfo lote) { int result; try { Logger.Info(); var repartoBl = new RepartoBL(); result = repartoBl.ObtenerDiasRetiro(lote); } catch (ExcepcionGenerica ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } return(result); }
/// <summary> /// Obtiene el Reparto por lote /// </summary> /// <param name="corral">Lote del cual se quiere obtener el reparto</param> /// <param name="fechaReparto">Fecha del reparto</param> /// <returns>Informacion del reaprto</returns> public RepartoInfo ObtnerPorFechaCorral(CorralInfo corral, DateTime fechaReparto) { RepartoInfo result; try { Logger.Info(); var repartoBl = new RepartoBL(); result = repartoBl.ObtenerRepartoPorFechaCorral(fechaReparto, corral); } catch (ExcepcionGenerica ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } return(result); }
/// <summary> /// Metodo que actualiza las formulas de los repartos de la mañana y tarde. /// </summary> /// <param name="cambiosDetalle"></param> /// <returns></returns> public int GuardarFormulasRepartoDetalle(List <CambiosReporteInfo> cambiosDetalle) { int result; try { Logger.Info(); var repartoBl = new RepartoBL(); result = repartoBl.GuardarFormulasRepartoDetalle(cambiosDetalle); } catch (ExcepcionGenerica ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } return(result); }
/// <summary> /// Obtiene los datos para la generacion de la /// poilza de consumo de alimento /// </summary> /// <param name="movimientoDetalles"></param> /// <param name="organizacionID"></param> /// <returns></returns> public PolizaConsumoAlimentoModel ObtenerDatosPolizaConsumo(List <AlmacenMovimientoDetalle> movimientoDetalles, int organizacionID) { PolizaConsumoAlimentoModel resultado; try { Logger.Info(); var repartoBl = new RepartoBL(); resultado = repartoBl.ObtenerDatosPolizaConsumo(movimientoDetalles, organizacionID); } catch (ExcepcionGenerica ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } return(resultado); }
/// <summary> /// Genera el reparto para los corrales que no tienen /// </summary> /// <param name="cambiosDetalle"></param> /// <returns></returns> public int GenerarOrdenRepartoConfiguracionAjustes(List <CambiosReporteInfo> cambiosDetalle) { int resultado = 0; try { Logger.Info(); var repartoBl = new RepartoBL(); resultado = repartoBl.GenerarOrdenRepartoConfiguracionAjustes(cambiosDetalle); } catch (ExcepcionGenerica ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } return(resultado); }
/// <summary> /// Obtiene el detalle de una orden de reparto /// </summary> /// <param name="reparto">Reparto</param> /// <returns>Lista con el detalle</returns> public IList <RepartoDetalleInfo> ObtenerDetalle(RepartoInfo reparto) { IList <RepartoDetalleInfo> result; try { Logger.Info(); var repartoBl = new RepartoBL(); result = repartoBl.ObtenerDetalle(reparto); } catch (ExcepcionGenerica ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } return(result); }
/// <summary> /// Obtiene el listado de repartos del operador logueado. /// </summary> /// <param name="operador">Informacion del operador</param> /// <param name="corral">Informacion del corral</param> /// <returns>Informacion del reparto</returns> public RepartoInfo ObtenerRepartoPorOperadorId(OperadorInfo operador, CorralInfo corral) { RepartoInfo result; try { Logger.Info(); var repartoBl = new RepartoBL(); result = repartoBl.ObtenerRepartoPorOperadorId(operador, corral); } catch (ExcepcionGenerica ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } return(result); }
/// <summary> /// Obtiene el avance del reparto /// </summary> /// <param name="usuarioId">Identificador del usuario</param> /// <returns>Informacion del avance del reparto</returns> public RepartoAvanceInfo ObtenerAvanceReparto(int usuarioId) { RepartoAvanceInfo resultado; try { Logger.Info(); var repartoBl = new RepartoBL(); resultado = repartoBl.ObtenerAvanceReparto(usuarioId); } catch (ExcepcionGenerica ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } return(resultado); }
/// <summary> /// Guarda el estatus de la distribucion /// </summary> /// <param name="corral">Informacion del corral</param> /// <param name="estatusDistribucion">Estatus de la distribucion</param> /// <returns></returns> public int GuardarEstatusDistribucion(CorralInfo corral, int estatusDistribucion) { int result; try { Logger.Info(); var repartoBl = new RepartoBL(); result = repartoBl.GuardarEstatusDistribucion(corral, estatusDistribucion); } catch (ExcepcionGenerica ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } return(result); }
/// <summary> /// Obtiene el Reparto por lote /// </summary> /// <param name="lote">Lote del cual se quiere obtener el reparto</param> /// <param name="fechaReparto">Fecha del reparto</param> /// <returns>Informacion del reaprto</returns> public RepartoInfo ObtnerPorLote(LoteInfo lote, DateTime fechaReparto) { RepartoInfo result; try { Logger.Info(); var repartoBl = new RepartoBL(); result = repartoBl.ObtenerPorLote(lote, fechaReparto); } catch (ExcepcionGenerica ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } return(result); }
/// <summary> /// Genera la orden de reparto /// </summary> /// <param name="ordenReparto">Informacion de la orden de reparto de alimentacion</param> /// <returns>Resultado de la operacion</returns> public ResultadoOperacion GenerarOrdenReparto(OrdenRepartoAlimentacionInfo ordenReparto) { ResultadoOperacion resultado; try { Logger.Info(); var repartoBl = new RepartoBL(); resultado = repartoBl.GenerarOrdenReparto(ordenReparto); } catch (ExcepcionGenerica ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } return(resultado); }
/// <summary> /// Valida la orden de reparto antes de ser guardada /// </summary> /// <param name="tipoServicioId">Identificador del tipo de servicio</param> /// <param name="organizacionId">Identificador de la organizacion</param> /// <returns></returns> public ResultadoValidacion ValidarOrdenReparto(int tipoServicioId, int organizacionId) { ResultadoValidacion resultado; try { Logger.Info(); var repartoBl = new RepartoBL(); resultado = repartoBl.ValidarOrdenReparto(tipoServicioId, organizacionId); } catch (ExcepcionGenerica ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } return(resultado); }
/// <summary> /// Obtiene las ordenes de reparto de la fecha actual /// </summary> /// <param name="lote">informacion del lote</param> /// <returns>Lista de repartos</returns> public List <RepartoInfo> ObtenerRepartoActual(LoteInfo lote) { List <RepartoInfo> resultado; try { Logger.Info(); var repartoBl = new RepartoBL(); resultado = repartoBl.ObtenerRepartoActual(lote); } catch (ExcepcionGenerica ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } return(resultado); }
/// <summary> /// Obtiene los tipos de servicio /// </summary> /// <returns>Lista con los servicios configurados</returns> public List <TipoServicioInfo> ObtenerTiposDeServicios() { List <TipoServicioInfo> resultado; try { Logger.Info(); var repartoBl = new RepartoBL(); resultado = repartoBl.ObtenerTiposDeServicios(); } catch (ExcepcionGenerica ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } return(resultado); }
/// <summary> /// Obtiene repartos por lote y organizacion /// </summary> /// <param name="corralID"></param> /// <param name="organizacionId"></param> /// <returns></returns> public List <RepartoInfo> ObtenerPorCorralOrganizacion(int corralID, int organizacionId) { List <RepartoInfo> result; try { Logger.Info(); var repartoBl = new RepartoBL(); result = repartoBl.ObtenerPorCorralOrganizacion(corralID, organizacionId); } catch (ExcepcionGenerica ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } return(result); }
/// <summary> /// Obtiene la consiguracion para la orden de reparto /// </summary> /// <param name="organizacionId">Identificador de la organizacion</param> /// <param name="parametro">Parametros solicitado</param> /// <returns></returns> public string LeerConfiguracion(int organizacionId, ParametrosEnum parametro) { string resultado; try { Logger.Info(); var repartoBl = new RepartoBL(); resultado = repartoBl.LeerConfiguracion(organizacionId, parametro); } catch (ExcepcionGenerica ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } return(resultado); }
/// <summary> /// Obtiene los consumos pendientes de aplicar /// </summary> /// <param name="filtros"></param> /// <returns></returns> public List <AplicacionConsumoDetalleModel> ObtenerConsumoPendiente(AplicacionConsumoModel filtros) { List <AplicacionConsumoDetalleModel> result; try { Logger.Info(); var repartoBl = new RepartoBL(); result = repartoBl.ObtenerConsumoPendiente(filtros); } catch (ExcepcionGenerica ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } return(result); }
/// <summary> /// Genera un reparto manual para cada corral especificado. /// </summary> /// <param name="corrales"></param> /// <param name="parametroConsumo"></param> /// <returns></returns> public ResultadoOperacion GenerarOrdenRepartoManual(List <CorralInfo> corrales, ParametroCapturaManualConsumoInfo parametroConsumo) { ResultadoOperacion resultado; try { Logger.Info(); var repartoBl = new RepartoBL(); resultado = repartoBl.GenerarOrdenRepartoManual(corrales, parametroConsumo); } catch (ExcepcionGenerica ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } return(resultado); }
/// <summary> /// Metodo que guarda ServicioAlimento /// </summary> /// <param name="info"></param> internal void Guardar(IList <ServicioAlimentoInfo> info) { try { Logger.Info(); var repartoBL = new RepartoBL(); var listaRepartosGuardar = new List <CambiosReporteInfo>(); var tipoServicio = TipoServicioEnum.Matutino; int organizacionID = info.Select(rep => rep.OrganizacionID).First(); var organizacionInfo = new OrganizacionInfo { OrganizacionID = organizacionID }; DateTime fechaHoy = DateTime.Now.Date; List <RepartoDetalleInfo> repartosDelDia = repartoBL.ObtenerRepartoDetallePorOrganizacionID(organizacionInfo, fechaHoy); if (repartosDelDia != null) { int repartosMatutino = repartosDelDia.Count( rep => rep.TipoServicioID == TipoServicioEnum.Matutino.GetHashCode()); int repartosServidosMatutino = repartosDelDia.Count( rep => rep.TipoServicioID == TipoServicioEnum.Matutino.GetHashCode() && rep.Servido); int porcentajeServido = (repartosServidosMatutino / repartosMatutino) * 100; if (porcentajeServido > 30) { tipoServicio = TipoServicioEnum.Vespertino; } } List <CorralInfo> listaCorrales = (from rep in info select new CorralInfo { CorralID = rep.CorralID }).ToList(); List <RepartoInfo> listaRepartosHoy = repartoBL.ObtenerRepartosPorFechaCorrales(fechaHoy, organizacionID, listaCorrales); List <RepartoInfo> listaRepartosManiana = repartoBL.ObtenerRepartosPorFechaCorrales(fechaHoy.AddDays(1), organizacionID, listaCorrales); if (listaRepartosHoy == null) { listaRepartosHoy = new List <RepartoInfo>(); } if (listaRepartosManiana == null) { listaRepartosManiana = new List <RepartoInfo>(); } foreach (var servicio in info) { var repartoActual = new CambiosReporteInfo(); RepartoDetalleInfo servicioMatutino; RepartoDetalleInfo servicioVespertino; RepartoInfo repartoHoy = listaRepartosHoy.FirstOrDefault(rep => rep.Corral.CorralID == servicio.CorralID); RepartoInfo repartoManiana = listaRepartosManiana.FirstOrDefault(rep => rep.Corral.CorralID == servicio.CorralID); repartoActual.RepartoID = 0; repartoActual.CantidadProgramada = servicio.KilosProgramados; repartoActual.Observaciones = servicio.Comentarios; repartoActual.EstadoComederoID = EstadoComederoEnum.Normal.GetHashCode(); if (repartoHoy != null) { repartoActual.FechaReparto = DateTime.Now.AddDays(1); } else { repartoActual.FechaReparto = DateTime.Now; } repartoActual.FormulaIDProgramada = servicio.FormulaID; repartoActual.OrganizacionID = servicio.OrganizacionID; repartoActual.UsuarioModificacionID = servicio.UsuarioCreacionID; repartoActual.TipoServicioID = tipoServicio.GetHashCode(); repartoActual.CorralInfo = new CorralInfo { CorralID = servicio.CorralID, Codigo = servicio.CodigoCorral }; if (repartoHoy != null) { repartoActual.RepartoID = repartoHoy.RepartoID; servicioMatutino = repartoHoy.DetalleReparto.FirstOrDefault( rep => rep.TipoServicioID == TipoServicioEnum.Matutino.GetHashCode()); servicioVespertino = repartoHoy.DetalleReparto.FirstOrDefault( rep => rep.TipoServicioID == TipoServicioEnum.Vespertino.GetHashCode()); if (servicioMatutino != null) { if (!servicioMatutino.Servido) { repartoActual.RepartoDetalleIdManiana = servicioMatutino.RepartoDetalleID; listaRepartosGuardar.Add(repartoActual); continue; } } if (servicioVespertino != null) { if (!servicioVespertino.Servido) { repartoActual.RepartoDetalleIdTarde = servicioVespertino.RepartoDetalleID; listaRepartosGuardar.Add(repartoActual); continue; } } } if (repartoManiana != null) { repartoActual.RepartoID = repartoManiana.RepartoID; servicioMatutino = repartoManiana.DetalleReparto.FirstOrDefault( rep => rep.TipoServicioID == TipoServicioEnum.Matutino.GetHashCode()); servicioVespertino = repartoManiana.DetalleReparto.FirstOrDefault( rep => rep.TipoServicioID == TipoServicioEnum.Vespertino.GetHashCode()); if (servicioMatutino != null) { if (!servicioMatutino.Servido) { repartoActual.RepartoDetalleIdManiana = servicioMatutino.RepartoDetalleID; listaRepartosGuardar.Add(repartoActual); continue; } } if (servicioVespertino != null) { if (!servicioVespertino.Servido) { repartoActual.RepartoDetalleIdTarde = servicioVespertino.RepartoDetalleID; listaRepartosGuardar.Add(repartoActual); continue; } } } listaRepartosGuardar.Add(repartoActual); } var servicioAlimentoDAL = new ServicioAlimentoDAL(); using (var transaccion = new TransactionScope()) { repartoBL.GuardarRepartosServicioCorrales(listaRepartosGuardar); servicioAlimentoDAL.Guardar(info); transaccion.Complete(); } } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
/// <summary> /// Carga el archivo data link en la orden de reparto /// </summary> /// <param name="validacionDatalink"></param> /// <param name="usuario"></param> /// <returns></returns> internal ResultadoOperacion CargarArchivoDatalink(ValidacionDataLink validacionDatalink, UsuarioInfo usuario) { var validar = new DataLinkInfo(); var resultado = new ResultadoOperacion { Resultado = true }; try { Logger.Info(); var corralBl = new CorralBL(); var loteBl = new LoteBL(); var repartoBl = new RepartoBL(); using (var camionRepartoBl = new CamionRepartoBL()) { var servicioAlimentoBL = new ServicioAlimentoBL(); var datalinks = new List <DataLinkInfo>(); var repartosServicioAlimentacion = new List <RepartoInfo>(); var repartosDetalles = new List <RepartoDetalleInfo>(); var corralesEliminar = new List <CorralInfo>(); var formulaBL = new FormulaBL(); IList <FormulaInfo> formulasExistentes = formulaBL.ObtenerTodos(EstatusEnum.Activo); IList <CamionRepartoInfo> camionesRepartoOrganizacion = camionRepartoBl.ObtenerPorOrganizacionID(usuario.Organizacion.OrganizacionID); foreach (var dataLink in validacionDatalink.ListaDataLink) { validar = dataLink; //CamionRepartoInfo camionRepartoInfo = camionRepartoBl.ObtenerPorNumeroEconomico(dataLink.NumeroCamion.Trim(), usuario.Organizacion.OrganizacionID); CamionRepartoInfo camionRepartoInfo = camionesRepartoOrganizacion.FirstOrDefault( cam => cam.NumeroEconomico.Equals(dataLink.NumeroCamion.Trim(), StringComparison.CurrentCultureIgnoreCase)); dataLink.CamionReparto = camionRepartoInfo; CorralInfo corral = corralBl.ObtenerPorCodicoOrganizacionCorral(new CorralInfo { Codigo = dataLink.CodigoCorral, Organizacion = new OrganizacionInfo { OrganizacionID = usuario.Organizacion.OrganizacionID }, Activo = EstatusEnum.Activo, }); if (corral != null) { var lote = loteBl.ObtenerPorCorralCerrado(usuario.Organizacion.OrganizacionID, corral.CorralID); if (lote == null) { lote = new LoteInfo(); } //if (lote != null) //{ var fecha = ObtenerFecha(dataLink.CadenaFechaReparto); var reparto = repartoBl.ObtenerRepartoPorFechaCorralServicio(fecha, corral, dataLink.TipoServicio); if (reparto != null) { //var formulaBl = new FormulaBL(); //int formulaId; //int.TryParse(dataLink.ClaveFormula, out formulaId); var formula = formulasExistentes.FirstOrDefault(fo => fo.Descripcion.Equals(dataLink.ClaveFormula.Trim(), StringComparison.CurrentCultureIgnoreCase)); if (formula != null) { dataLink.FormulaServida = formula; dataLink.Reparto = reparto; dataLink.UsuarioID = usuario.UsuarioID; dataLink.OrganizacionID = usuario.Organizacion.OrganizacionID; datalinks.Add(dataLink); } } //Si el Lote no se encuentra en el Reparto, buscarlo en la tabla ServicioAlimento else { ServicioAlimentoInfo servicioAlimentoInfo = servicioAlimentoBL.ObtenerPorCorralID(usuario.Organizacion.OrganizacionID, corral.CorralID); if (servicioAlimentoInfo != null) { LoteDescargaDataLinkModel datosLote = loteBl.ObtenerLoteDataLink(usuario.Organizacion.OrganizacionID, lote.LoteID); if (datosLote == null) { datosLote = new LoteDescargaDataLinkModel { PesoInicio = 0, FechaInicio = fecha, Cabezas = 0, }; } //var formulaBl = new FormulaBL(); //int formulaId; //int.TryParse(dataLink.ClaveFormula, out formulaId); //var formula = formulaBl.ObtenerPorID(formulaId); var formula = formulasExistentes.FirstOrDefault(fo => fo.Descripcion.Equals(dataLink.ClaveFormula.Trim(), StringComparison.CurrentCultureIgnoreCase)); if (formula != null) { var repartoNuevo = new RepartoInfo { OrganizacionID = usuario.Organizacion.OrganizacionID, LoteID = lote.LoteID, Corral = corral, Fecha = fecha, PesoInicio = datosLote.PesoInicio, PesoProyectado = 0, DiasEngorda = Convert.ToInt32((fecha - datosLote.FechaInicio).TotalDays), PesoRepeso = 0, DetalleReparto = new List <RepartoDetalleInfo>(), UsuarioCreacionID = usuario.UsuarioID, Activo = EstatusEnum.Activo }; var detalleReparto = new RepartoDetalleInfo { TipoServicioID = dataLink.TipoServicio, FormulaIDProgramada = servicioAlimentoInfo.FormulaID, FormulaIDServida = formula.FormulaId, CantidadProgramada = servicioAlimentoInfo.KilosProgramados, CantidadServida = dataLink.KilosServidos, HoraReparto = dataLink.Hora, CostoPromedio = 0, Importe = 0, Servido = true, Cabezas = datosLote.Cabezas == 0 ? 1 : datosLote.Cabezas, EstadoComederoID = EstadoComederoEnum.Normal.GetHashCode(), CamionRepartoID = dataLink.CamionReparto.CamionRepartoID, UsuarioCreacionID = usuario.UsuarioID, Activo = EstatusEnum.Activo }; repartoNuevo.DetalleReparto.Add(detalleReparto); repartosServicioAlimentacion.Add(repartoNuevo); var corralEliminar = new CorralInfo { CorralID = corral.CorralID, UsuarioModificacionID = usuario.UsuarioID }; corralesEliminar.Add(corralEliminar); } } } //} //else //{ // var bitacoraBL = new BitacoraIncidenciasBL(); // var errorInfo = new BitacoraErroresInfo // { // AccionesSiapID = AccionesSIAPEnum.DeDataLink, // Mensaje = "No es posible aplicar el consumo para el corral: " + corral.Codigo, // UsuarioCreacionID = usuario.UsuarioID // }; // //DescargarArchivoDataLink // bitacoraBL.GuardarError(errorInfo); //} } } if (datalinks.Count > 0) { if (datalinks.Any(x => x.CamionReparto == null)) { resultado.Resultado = false; resultado.DescripcionMensaje = ResourceServices.DescargaDataLink_msgCamionNoAsignado; } else { using (var transaccion = new TransactionScope()) { if (repartosServicioAlimentacion.Any()) { foreach (var repartoInfo in repartosServicioAlimentacion) { int repartoID = repartoBl.Guardar(repartoInfo); repartoInfo.DetalleReparto.ToList().ForEach(rep => rep.RepartoID = repartoID); repartosDetalles.AddRange(repartoInfo.DetalleReparto); } repartoBl.GuardarRepartoDetalle(repartosDetalles); if (corralesEliminar.Any()) { servicioAlimentoBL.EliminarXML(corralesEliminar); } } var res = repartoBl.CargarArchivoDatalink(datalinks); resultado.RegistrosAfectados = res; resultado.DescripcionMensaje = ResourceServices.DescargarDataLink_GuradadoOk; transaccion.Complete(); } RenombrarArchivos(validacionDatalink); } } else { resultado.Resultado = false; resultado.DescripcionMensaje = ResourceServices.DescargarDataLink_NoSecargo; } } } catch (ExcepcionGenerica) { if (validar != null) { } resultado.Resultado = false; throw; } catch (Exception ex) { if (validar != null) { } resultado.Resultado = false; Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } return(resultado); }