/// <summary> /// Obtiene datos de reparto y reparto detalle /// </summary> /// <returns></returns> internal List <GenerarArchivoDatalinkInfo> ObtenerDatosRepartoDetalle(RepartoInfo repartoInfo, int tipoServicioID) { try { Logger.Info(); var parameters = AuxGenerarArchivoDatalinkDAL.ObtenerParametrosObtenerRepartoDetalle(repartoInfo, tipoServicioID); var ds = Retrieve("GenerarArchivoDataLink_ObtenerRepartoDetalle", parameters); List <GenerarArchivoDatalinkInfo> result = null; if (ValidateDataSet(ds)) { result = MapGenerarArchivoDatalinkDAL.ObtenerRepartoDetalle(ds); } return(result); } catch (SqlException ex) { Logger.Error(ex); throw new ExcepcionServicio(MethodBase.GetCurrentMethod(), ex); } catch (DataException ex) { Logger.Error(ex); throw new ExcepcionServicio(MethodBase.GetCurrentMethod(), ex); } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
public static RepartoInfo ObtenerSiguienteCorral() { var seguridad = HttpContext.Current.Session["Seguridad"] as SeguridadInfo; RepartoInfo reparto = null; var repartoPl = new RepartoPL(); try { if (seguridad != null) { if (seguridad.Usuario.Operador == null) { var operadorPL = new OperadorPL(); seguridad.Usuario.Operador = operadorPL.ObtenerPorUsuarioId(seguridad.Usuario.UsuarioID, seguridad.Usuario.OrganizacionID); } reparto = repartoPl.ObtenerRepartoPorOperadorId(seguridad.Usuario.Operador, new CorralInfo()); } } catch (Exception ex) { Logger.Error(ex); reparto = null; } return(reparto); }
public static RepartoDetalleInfo ObtenerOrdenRepartoDetalleTarde(int loteID, int repartoID, int corralID, string fechaReparto) { IList <RepartoDetalleInfo> repartoDetalleLista = null; RepartoDetalleInfo repartoDetalle = null; LoteInfo lote = null; RepartoInfo reparto = new RepartoInfo(); RepartoPL repartoPL = new RepartoPL(); LotePL lotePL = new LotePL(); var corralPL = new CorralPL(); try { var fecha = DateTime.Parse(fechaReparto.ToString(CultureInfo.InvariantCulture)); var seguridad = (SeguridadInfo)HttpContext.Current.Session["Seguridad"]; if (seguridad != null) { lote = lotePL.ObtenerPorId(loteID); CorralInfo corral = corralPL.ObtenerPorId(corralID); /*DateTime fecha = new DateTime(); * fecha = DateTime.Now; * fecha = fecha.AddDays(-1);*/ if (lote != null) { reparto = repartoPL.ObtnerPorLote(lote, fecha); } else { reparto = repartoPL.ObtnerPorFechaCorral(corral, fecha); } if (reparto != null) { repartoDetalleLista = repartoPL.ObtenerDetalle(reparto); if (repartoDetalleLista != null) { for (int i = 0; i < repartoDetalleLista.Count; i++) { if (repartoDetalleLista[i].TipoServicioID == (int)TipoServicioEnum.Vespertino) { repartoDetalle = repartoDetalleLista[i]; } } } } } } catch (Exception ex) { Logger.Error(ex); } return(repartoDetalle); }
public static ResultadoOperacion GenerarArchivo(String fechaReparto, int tipoServicioID) { var repartoInfo = new RepartoInfo() { OrganizacionID = organizacionID, Fecha = Convert.ToDateTime(fechaReparto) }; var generarArchivoDatalinkPl = new GenerarArchivoDatalinkPL(); return(generarArchivoDatalinkPl.GenerarArchivoDatalink(repartoInfo, tipoServicioID)); }
/// <summary> /// Obtiene un Almacen por su Id /// </summary> /// <returns> </returns> public ResultadoOperacion GenerarArchivoDatalink(RepartoInfo repartoInfo, int tipoServicioID) { try { Logger.Info(); var generarArchivoDatalinkBL = new GenerarArchivoDatalinkBL(); return(generarArchivoDatalinkBL.GenerarArchivoDatalink(repartoInfo, tipoServicioID)); } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
public static RepartoInfo ObtenerRepartoPorCorral(CorralInfo corral) { var seguridad = HttpContext.Current.Session["Seguridad"] as SeguridadInfo; RepartoInfo reparto = null; var repartoPl = new RepartoPL(); try { if (seguridad != null) { reparto = repartoPl.ObtenerRepartoPorOperadorId(seguridad.Usuario.Operador, corral); } } catch (Exception ex) { Logger.Error(ex); reparto = null; } return(reparto); }
/// <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); }
internal static Dictionary <string, object> ObtenerParametrosObtenerRepartoDetalle(RepartoInfo repartoInfo, int tipoServicioID) { try { Logger.Info(); var parametros = new Dictionary <string, object> { { "@OrganizacionID", repartoInfo.OrganizacionID }, { "@TipoServicioID", tipoServicioID }, { "@FechaReparto", repartoInfo.Fecha } }; return(parametros); } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
/// <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); }
public static int GuardarReparto(List <CambiosReporteInfo> cambiosDetalle, string fechaReparto) { int valorRetorno = 0; try { var repartoPl = new RepartoPL(); var corralPL = new CorralPL(); var lotePL = new LotePL(); var seguridad = (SeguridadInfo)HttpContext.Current.Session["Seguridad"]; //informacion del la organzacion y usuario if (seguridad != null) { int organizacionId = seguridad.Usuario.Organizacion.OrganizacionID; int usuario = seguridad.Usuario.UsuarioID; var fecha = DateTime.Parse(fechaReparto.ToString(CultureInfo.InvariantCulture)); List <string> codigosCorral = cambiosDetalle.Select(det => det.CorralInfo.Codigo).Distinct().ToList(); List <CorralInfo> corralesOrganizacion = corralPL.ObtenerCorralesPorCodigosCorral(codigosCorral, organizacionId); List <CambiosReporteInfo> repartosInactivar = new List <CambiosReporteInfo>(); int cantidadManiana = 0; bool bandera = false; foreach (CambiosReporteInfo t in cambiosDetalle) { t.OrganizacionID = organizacionId; t.UsuarioModificacionID = usuario; t.FechaReparto = fecha; #region Eliminar Duplicados if (t.RepartoID == 0) { CorralInfo corralCompleto = corralesOrganizacion.FirstOrDefault( cor => cor.Codigo.Trim().Equals(t.CorralInfo.Codigo.Trim(), StringComparison.InvariantCultureIgnoreCase)); if (corralCompleto == null) { continue; } var corral = new CorralInfo { Organizacion = new OrganizacionInfo { OrganizacionID = organizacionId }, CorralID = corralCompleto.CorralID }; RepartoInfo repartoCorral = repartoPl.ObtnerPorFechaCorral(corral, fecha); if (repartoCorral != null) { RepartoDetalleInfo repartoDetalleMatutino = repartoCorral.DetalleReparto.FirstOrDefault( rep => rep.TipoServicioID == TipoServicioEnum.Matutino.GetHashCode()); RepartoDetalleInfo repartoDetalleVespertino = repartoCorral.DetalleReparto.FirstOrDefault( rep => rep.TipoServicioID == TipoServicioEnum.Vespertino.GetHashCode()); LoteInfo lote = lotePL.ObtenerLotesActivos(organizacionId, corralCompleto.CorralID); if (t.TipoServicioID == (int)TipoServicioEnum.Matutino) //&& t.Servido == 1) { if (repartoDetalleMatutino != null) { //cantidadManiana = t.CantidadServida; //if(repartoCorral.Fecha.Date == DateTime.Now.Date) //{ // t.NoModificar = true; //} cantidadManiana = repartoDetalleMatutino.CantidadProgramada; bandera = true; } } if (repartoDetalleMatutino != null) { if (repartoCorral.LoteID == 0 || !repartoDetalleMatutino.Servido) { t.Lote = lote.Lote; t.Cabezas = lote.Cabezas; t.CambiarLote = true; t.RepartoID = repartoCorral.RepartoID; //t.RepartoDetalleIdManiana = repartoDetalleMatutino.RepartoDetalleID; if (repartoDetalleVespertino != null) { t.RepartoDetalleIdTarde = repartoDetalleVespertino.RepartoDetalleID; } } else if (repartoCorral.LoteID != lote.LoteID) { if (t.TipoServicioID == (int)TipoServicioEnum.Vespertino) { if (repartoDetalleVespertino != null) { var repartoInactivar = new CambiosReporteInfo { RepartoDetalleIdTarde = repartoDetalleVespertino.RepartoDetalleID, InactivarDetalle = true, CorralInfo = new CorralInfo(), UsuarioModificacionID = usuario, FechaReparto = fecha }; repartosInactivar.Add(repartoInactivar); } t.Lote = lote.Lote; } else { t.RepartoDetalleIdManiana = repartoDetalleMatutino.RepartoDetalleID; } } } } } #endregion Eliminar Duplicados var repartoDetalleManiana = new RepartoDetalleInfo(); if (t.RepartoID > 0) { IList <RepartoDetalleInfo> detalleRepartos = repartoPl.ObtenerDetalle(new RepartoInfo { RepartoID = t.RepartoID }); if (detalleRepartos != null && detalleRepartos.Any()) { repartoDetalleManiana = detalleRepartos.FirstOrDefault( det => det.TipoServicioID == TipoServicioEnum.Matutino.GetHashCode()); } } if (t.TipoServicioID == (int)TipoServicioEnum.Matutino) //&& t.Servido == 1) { if (repartoDetalleManiana != null) { //cantidadManiana = t.CantidadServida; if (t.FechaReparto.Date == DateTime.Now.Date && t.Servido == 1) { t.NoModificar = true; } if (t.Servido == 1) { cantidadManiana = repartoDetalleManiana.CantidadServida; } else { cantidadManiana = repartoDetalleManiana.CantidadProgramada; } bandera = true; } } if (bandera && t.TipoServicioID == (int)TipoServicioEnum.Vespertino) { if (t.CantidadProgramada == 0) { t.CantidadProgramada = 0; } else { t.CantidadProgramada = t.CantidadProgramada - cantidadManiana; } if (cantidadManiana == 0) { t.ValidaPorcentaje = 0; } else { t.ValidaPorcentaje = 1; } bandera = false; cantidadManiana = 0; } } cambiosDetalle.AddRange(repartosInactivar); valorRetorno = repartoPl.GenerarOrdenRepartoConfiguracionAjustes(cambiosDetalle.Where(cam => cam.NoModificar == false).ToList()); } } catch (Exception ex) { valorRetorno = -1; } return(valorRetorno); }
public static RepartoInfo ObtenerOrdenReparto(int loteID, int corralID, string fechaReparto) { RepartoInfo reparto = null; LoteInfo lote = null; RepartoPL repartoPL = new RepartoPL(); LotePL lotePL = new LotePL(); var corralPL = new CorralPL(); var fecha = DateTime.Parse(fechaReparto); try { var seguridad = (SeguridadInfo)HttpContext.Current.Session["Seguridad"]; if (seguridad != null) { lote = lotePL.ObtenerPorId(loteID); CorralInfo corral = corralPL.ObtenerPorId(corralID); //if (lote != null) //{ if (lote != null) { reparto = repartoPL.ObtnerPorLote(lote, fecha); } else { reparto = repartoPL.ObtnerPorFechaCorral(corral, fecha); } if (lote != null && reparto == null) { reparto = repartoPL.ObtnerPorFechaCorral(corral, fecha); if (reparto == null || reparto.LoteID == 0 || reparto.LoteID != lote.LoteID) { reparto = null; } } if (reparto != null && reparto.DetalleReparto != null /* && * reparto.DetalleReparto.Count == * reparto.DetalleReparto.Where(dato => dato.Servido == true).ToList().Count()*/) { var matutinosServidos = 0; var vespertinoServidos = 0; matutinosServidos = reparto.DetalleReparto.Count( tmpDetalleReparto => tmpDetalleReparto.TipoServicioID == (int)TipoServicioEnum.Matutino && tmpDetalleReparto.Servido); if (matutinosServidos > 0) { reparto.TotalRepartos = 1; } vespertinoServidos = reparto.DetalleReparto.Count( tmpDetalleReparto => tmpDetalleReparto.TipoServicioID == (int)TipoServicioEnum.Vespertino && tmpDetalleReparto.Servido); reparto.CantidadPedido = reparto.DetalleReparto.Where( tmpDetalleReparto => tmpDetalleReparto.TipoServicioID == (int)TipoServicioEnum.Vespertino || tmpDetalleReparto.TipoServicioID == (int)TipoServicioEnum.Matutino) .ToList().Sum(tmpDetalleReparto => tmpDetalleReparto.CantidadProgramada); if (vespertinoServidos > 0) { reparto.TotalRepartos = 2; } if (reparto.TotalRepartos == 0) { reparto.TotalRepartos = 3; } RepartoDetalleInfo repartoMatutino = reparto.DetalleReparto.FirstOrDefault( tmpDetalleReparto => tmpDetalleReparto.TipoServicioID == (int)TipoServicioEnum.Matutino); if (repartoMatutino != null) { reparto.CantidadProgramadaManiana = repartoMatutino.CantidadProgramada; } } else { reparto = new RepartoInfo { Fecha = fecha, TotalRepartos = 0 }; } } } catch (Exception ex) { Logger.Error(ex); } return(reparto); }
//const string saltoLinea = "\n"; /// <summary> /// Obtiene registros de RepartoDetalle /// </summary> /// <returns> </returns> public ResultadoOperacion GenerarArchivoDatalink(RepartoInfo repartoInfo, int tipoServicioID) { ResultadoOperacion resultadoOperacion; var parametroOrganizacionBL = new ParametroOrganizacionBL(); var ruta = parametroOrganizacionBL.ObtenerPorOrganizacionIDClaveParametro(repartoInfo.OrganizacionID, ParametrosEnum.rutaGenerarArchivoDatalink.ToString()); var nombre = parametroOrganizacionBL.ObtenerPorOrganizacionIDClaveParametro(repartoInfo.OrganizacionID, ParametrosEnum.nombreGenerarArchivoDatalink.ToString()); var archivo = String.Format("{0}{1}", ruta.Valor, nombre.Valor); try { Logger.Info(); var generarArchivoDatalinkDAL = new GenerarArchivoDatalinkDAL(); var listadoDetalle = generarArchivoDatalinkDAL.ObtenerDatosRepartoDetalle(repartoInfo, tipoServicioID); if (listadoDetalle != null) { if (File.Exists(archivo)) { File.Delete(archivo); } using (var sw = new StreamWriter(archivo)) { var cabecero = string.Format("{0}{1}{0}", comillas, letraP); sw.WriteLine(cabecero); foreach (var generarArchivoDatalinkInfo in listadoDetalle) { var contenido = string.Format("{0}{1}{0}{2}{0}{3}{0}{2}{0}{4}{0}{2}{5}{2}{6}{2}{7}{2}{8}", comillas, generarArchivoDatalinkInfo.Servicio, coma, generarArchivoDatalinkInfo.Corral.Trim().PadLeft(numeroCaracteres, espacio), generarArchivoDatalinkInfo.Formula.ToString(CultureInfo.InvariantCulture).Trim().PadLeft(numeroCaracteres, espacio), generarArchivoDatalinkInfo.Kilos.ToString(CultureInfo.InvariantCulture).Trim().PadLeft(numeroCaracteres, espacio), generarArchivoDatalinkInfo.Cero.ToString(CultureInfo.InvariantCulture).Trim().PadLeft(numeroCaracteres, espacio), generarArchivoDatalinkInfo.Seccion, generarArchivoDatalinkInfo.Uno.ToString(CultureInfo.InvariantCulture).Trim().PadLeft(numeroCaracteres, espacio)); sw.WriteLine(contenido); } var pie = string.Format("{0}{1}{0}", comillas, simboloPeso); sw.WriteLine(pie); } resultadoOperacion = new ResultadoOperacion() { Resultado = true }; } else { if (File.Exists(archivo)) { File.Delete(archivo); } using (var sw = new StreamWriter(archivo)) { var cabecero = string.Format("{0}{1}{0}", comillas, letraP); sw.WriteLine(cabecero); var pie = string.Format("{0}{1}{0}", comillas, simboloPeso); sw.WriteLine(pie); } resultadoOperacion = new ResultadoOperacion() { Resultado = true }; } } catch (ExcepcionGenerica ex) { Logger.Error(ex); return(new ResultadoOperacion() { Resultado = false }); } catch (Exception ex) { Logger.Error(ex); return(new ResultadoOperacion() { Resultado = false }); } return(resultadoOperacion); }