/// <summary> /// Metodo para Guardar/Modificar una entidad RepartoAlimentoDetalle /// </summary> /// <param name="info"></param> public int Guardar(RepartoAlimentoDetalleInfo info) { try { Logger.Info(); var repartoAlimentoDetalleDAL = new RepartoAlimentoDetalleDAL(); int result = info.RepartoAlimentoDetalleID; if (info.RepartoAlimentoDetalleID == 0) { result = repartoAlimentoDetalleDAL.Crear(info); } else { repartoAlimentoDetalleDAL.Actualizar(info); } return(result); } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
/// <summary> /// Metodo para Guardar/Modificar una entidad RepartoAlimento /// </summary> /// <param name="reparto"></param> /// <param name="repartoDetalle"></param> /// <param name="organizacionID"></param> public int Guardar(RepartoAlimentoInfo reparto, List <GridRepartosModel> repartoDetalle, int organizacionID) { try { Logger.Info(); var repartoAlimentoDAL = new RepartoAlimentoDAL(); int result = reparto.RepartoAlimentoID; var listaRepartosAlimentoDetalle = new List <RepartoAlimentoDetalleInfo>(); GenerarRepartoAlimentoDetalle(repartoDetalle, listaRepartosAlimentoDetalle, organizacionID, reparto.RepartoAlimentoID); using (var transaction = new TransactionScope()) { if (reparto.RepartoAlimentoID == 0) { result = repartoAlimentoDAL.Crear(reparto); } else { repartoAlimentoDAL.Actualizar(reparto); } listaRepartosAlimentoDetalle.ForEach(detalle => { detalle.RepartoAlimentoID = result; detalle.UsuarioCreacionID = reparto.UsuarioCreacionID; }); var repartoAlimentoDetalleDAL = new RepartoAlimentoDetalleDAL(); repartoAlimentoDetalleDAL.Guardar(listaRepartosAlimentoDetalle); if (reparto.ListaTiempoMuerto != null && reparto.ListaTiempoMuerto.Any()) { reparto.ListaTiempoMuerto.ForEach(tiempo => tiempo.UsuarioCreacionID = reparto.UsuarioCreacionID); var tiempoMuertoDAL = new TiempoMuertoDAL(); tiempoMuertoDAL.GuardarTiempoMuertoReparto(reparto.ListaTiempoMuerto.Where(tiempo => tiempo.TiempoMuertoID == 0).ToList(), result); } transaction.Complete(); } return(result); } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
/// <summary> /// Obtiene un lista de RepartoAlimentoDetalle /// </summary> /// <returns></returns> public IList <RepartoAlimentoDetalleInfo> ObtenerTodos() { try { Logger.Info(); var repartoAlimentoDetalleDAL = new RepartoAlimentoDetalleDAL(); IList <RepartoAlimentoDetalleInfo> result = repartoAlimentoDetalleDAL.ObtenerTodos(); return(result); } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
/// <summary> /// Obtiene un lista paginada /// </summary> /// <param name="pagina"></param> /// <param name="filtro"></param> /// <returns></returns> public ResultadoInfo <RepartoAlimentoDetalleInfo> ObtenerPorPagina(PaginacionInfo pagina, RepartoAlimentoDetalleInfo filtro) { try { Logger.Info(); var repartoAlimentoDetalleDAL = new RepartoAlimentoDetalleDAL(); ResultadoInfo <RepartoAlimentoDetalleInfo> result = repartoAlimentoDetalleDAL.ObtenerPorPagina(pagina, filtro); return(result); } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
/// <summary> /// Obtiene una entidad RepartoAlimentoDetalle por su descripción /// </summary> /// <param name="descripcion"></param> /// <returns></returns> public RepartoAlimentoDetalleInfo ObtenerPorDescripcion(string descripcion) { try { Logger.Info(); var repartoAlimentoDetalleDAL = new RepartoAlimentoDetalleDAL(); RepartoAlimentoDetalleInfo result = repartoAlimentoDetalleDAL.ObtenerPorDescripcion(descripcion); return(result); } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
private void GenerarRepartoAlimentoDetalle(List <GridRepartosModel> repartoDetalle, List <RepartoAlimentoDetalleInfo> listaRepartosAlimentoDetalle, int organizacionID, int repartoAlimentoID) { IList <RepartoAlimentoDetalleInfo> listaDetallesGuardadas = new List <RepartoAlimentoDetalleInfo>(); if (repartoAlimentoID > 0) { var repartoAlimentoDetalleDAL = new RepartoAlimentoDetalleDAL(); listaDetallesGuardadas = repartoAlimentoDetalleDAL.ObtenerPorRepartoAlimentoID(repartoAlimentoID); } var codigosCorral = new List <string>(); repartoDetalle.ForEach(rep => { codigosCorral.Add(rep.CorralInicio.Trim().PadLeft(3, '0')); codigosCorral.Add(rep.CorralFinal.Trim().PadLeft(3, '0')); }); var corralDAL = new CorralDAL(); List <CorralInfo> corrales = corralDAL.ObtenerCorralesPorCodigosCorral(codigosCorral, organizacionID); if (corrales == null) { return; } foreach (var detalle in repartoDetalle) { if (listaDetallesGuardadas != null && listaDetallesGuardadas.Any()) { RepartoAlimentoDetalleInfo detalleExiste = listaDetallesGuardadas.FirstOrDefault( deta => deta.FolioReparto == detalle.Reparto && deta.FormulaIDRacion == detalle.RacionFormula); if (detalleExiste != null) { continue; } } var repartoAlimentoDetalle = new RepartoAlimentoDetalleInfo(); repartoAlimentoDetalle.FolioReparto = detalle.Reparto; repartoAlimentoDetalle.FormulaIDRacion = detalle.RacionFormula; repartoAlimentoDetalle.Tolva = detalle.NumeroTolva.ToString(CultureInfo.InvariantCulture); repartoAlimentoDetalle.KilosEmbarcados = detalle.KilosEmbarcados; repartoAlimentoDetalle.KilosRepartidos = detalle.KilosRepartidos; repartoAlimentoDetalle.Sobrante = detalle.Sobrante; repartoAlimentoDetalle.PesoFinal = detalle.PesoFinal; CorralInfo corralInicio = corrales.FirstOrDefault( cor => cor.Codigo.ToUpper().Trim().Equals(detalle.CorralInicio.ToUpper().Trim().PadLeft(3, '0'))); if (corralInicio == null) { continue; } repartoAlimentoDetalle.CorralIDInicio = corralInicio.CorralID; CorralInfo corralFinal = corrales.FirstOrDefault( cor => cor.Codigo.ToUpper().Trim().Equals(detalle.CorralFinal.ToUpper().Trim().PadLeft(3, '0'))); if (corralFinal == null) { continue; } repartoAlimentoDetalle.CorralIDFinal = corralFinal.CorralID; repartoAlimentoDetalle.HoraRepartoInicio = detalle.HoraInicioReparto; repartoAlimentoDetalle.HoraRepartoFinal = detalle.HoraFinalReparto; repartoAlimentoDetalle.Observaciones = detalle.Observaciones; listaRepartosAlimentoDetalle.Add(repartoAlimentoDetalle); } }