private void GeneraLineasDetalle(GanadoIntensivoInfo muerteIntesiva) { EntradaGanadoInfo entradaGanado = muerteIntesiva.EntradaGanado; var pesoMuertePromedio = Math.Round((entradaGanado.PesoBruto - entradaGanado.PesoTara) / entradaGanado.CabezasRecibidas, 0); int cantidadCabezas = muerteIntesiva.Cabezas; decimal importe = muerteIntesiva.Importe; var concepto = muerteIntesiva.EntradaGanadoCosteo.ListaEntradaDetalle.Select(des => des.TipoGanado.Descripcion).FirstOrDefault(); PolizaModel.Detalle = new List <PolizaDetalleModel>(); PolizaDetalleModel detalleModel; detalleModel = new PolizaDetalleModel { CantidadCabezas = cantidadCabezas.ToString("F0"), TipoGanado = concepto, PesoTotal = (pesoMuertePromedio * cantidadCabezas).ToString("F0"), PesoPromedio = pesoMuertePromedio.ToString("F0"), PrecioPromedio = Math.Abs(importe / cantidadCabezas).ToString("N2"), ImportePromedio = Math.Abs(importe).ToString("N2"), //PrecioVenta = (detalle.Precio).ToString("N2"), //ImporteVenta = // ((detalle.Precio * (Math.Round(detalle.Peso * detalle.Cabezas, 0)))).ToString // ("N2"), Corral = muerteIntesiva.Corral.Codigo, Lote = muerteIntesiva.Lote.Lote }; PolizaModel.Detalle.Add(detalleModel); polizaImpresion.GenerarDetalles("Detalle"); }
/// <summary> /// Obtiene un CostoOrganizacionInfo por Id /// </summary> /// <param name="entradaGanadoInfo"></param> /// <returns></returns> internal List <CostoOrganizacionInfo> ObtenerPorOrganizacion(EntradaGanadoInfo entradaGanadoInfo) { List <CostoOrganizacionInfo> result = null; try { Logger.Info(); Dictionary <string, object> parameters = AuxCostoOrganizacionDAL.ObtenerParametroPorOrganizacion(entradaGanadoInfo); DataSet ds = Retrieve("[dbo].[CostoOrganizacion_ObtenerPorOganizacion]", parameters); if (ValidateDataSet(ds)) { result = MapCostoOrganizacionDAL.ObtenerPorOrganizacion(ds); } } 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); } return(result); }
/// <summary> /// Metodo que Obtiene los embarques que estan pendientes de recibir /// </summary> /// <param name="entradaGanado"></param> internal int PendientesRecibir(EntradaGanadoInfo entradaGanado) { int totalPendientes; try { Logger.Info(); Dictionary <string, object> parametros = AuxEmbarqueDAL.ObtenerParametrosPendientesRecibir(entradaGanado); totalPendientes = RetrieveValue <int>("Embarque_ObtenerPendientesRecibir", parametros); } 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); } return(totalPendientes); }
public static EntradaGanadoInfo ObtenerPartida(int corralID) { EntradaGanadoInfo retValue = null; try { var seguridad = (SeguridadInfo)HttpContext.Current.Session["Seguridad"]; int organizacionId = seguridad.Usuario.Organizacion.OrganizacionID; var corralPl = new CorralPL(); CorralInfo corral = corralPl.ObtenerPorId(corralID); if (corral != null && seguridad != null) { if (corral.GrupoCorral != GrupoCorralEnum.Recepcion.GetHashCode()) { retValue = new EntradaGanadoInfo(); } else { retValue = corralPl.ObtenerPartidaCorral(organizacionId, corralID); } } } catch (Exception ex) { Logger.Error(ex); } return(retValue); }
/// <summary> /// Metodo para seleccionar la partida seleccionado /// </summary> private void SeleccionarPartina() { try { if (GridResultado.SelectedIndex == -1) { SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal], Properties.Resources.CorteGanado_BusquedaSeleccionar, MessageBoxButton.OK, SuKarne.Controls.Enum.MessageImage.Warning); } else { ListaEntradaGanado = new List <EntradaGanadoInfo>(); var row = (DataGridRow)GridResultado.ItemContainerGenerator.ContainerFromIndex(GridResultado.SelectedIndex); if (row.IsSelected) { var listaAyuda = new EntradaGanadoInfo(); listaAyuda = ((EntradaGanadoInfo)(row.Item)); ListaEntradaGanado.Add(listaAyuda); } Close(); } } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
/// <summary> /// Obtener entrada de ganado /// </summary> /// <param name="animalInfo"></param> /// <returns></returns> internal EntradaGanadoInfo ObtenerEntradaGanado(AnimalInfo animalInfo) { EntradaGanadoInfo result = null; try { Logger.Info(); var parameters = AuxCorteTransferenciaGanado.ObtenerParametrosEntradaGanado(animalInfo); var ds = Retrieve("CorteTransferenciaGanado_ObtenerEntradaGanado", parameters); if (ValidateDataSet(ds)) { result = MapCorteTransferenciaGanadoDAL.ObtenerEntradaGanado(ds); } } 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); } return(result); }
/// <summary> /// Obtiene una Cantidad de Animales que se encuentran en enfermeria /// </summary> /// <param name="ganadoEnfermeria"></param> /// <param name="noTipoCorral"></param> /// <returns></returns> internal int ObtenerCabezasEnEnfermeria(EntradaGanadoInfo ganadoEnfermeria, int noTipoCorral) { var resp = 0; try { Dictionary <string, object> parametros = AuxCorteGanadoDAL.ObtenerParametrosCabezasEnEnfermeria(ganadoEnfermeria, noTipoCorral); DataSet ds = Retrieve("[dbo].[CorteGanado_ObtenerTotalGanadoEnEnfermeria]", parametros); if (ValidateDataSet(ds)) { resp = MapCorteGanadoDAL.ObtenerCabezasEnEnfermeria(ds); } } 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); } return(resp); }
/// <summary> /// Obtiene una Interface de Salida por SalidaID y OrganizacionID /// </summary> /// <param name="entradaGanado"></param> /// <returns></returns> internal List <InterfaceSalidaInfo> ObtenerPorEmbarqueIDConCompraDirecta(EntradaGanadoInfo entradaGanado) { List <InterfaceSalidaInfo> result = null; try { Logger.Info(); Dictionary <string, object> parameters = AuxInterfaceSalidaDAL.ObtenerParametrosPorEmbarqueID(entradaGanado); DataSet ds = Retrieve("[dbo].[InterfaceSalida_ObtenerPorEmbarqueIDConCompraDirecta]", parameters); if (ValidateDataSet(ds)) { result = MapInterfaceSalidaDAL.ObtenerPorEmbarqueID(ds); } } 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); } return(result); }
/// <summary> /// Metodo para agregar las dependencias a las ayudas de Organización Origen y Destino /// </summary> private void AsignaDependenciasAyudaOrganizacion(SKAyuda <OrganizacionInfo> controlAyuda) { controlAyuda.Dependencias = null; IList <IDictionary <IList <String>, Object> > dependencias = new List <IDictionary <IList <String>, Object> >(); IDictionary <IList <String>, Object> dependecia = new Dictionary <IList <String>, Object>(); var dependenciasGanado = new EntradaGanadoInfo(); IList <String> camposDependientes = new List <String>(); camposDependientes.Add("EmbarqueID"); dependecia.Add(camposDependientes, dependenciasGanado); dependencias.Add(dependecia); dependecia = new Dictionary <IList <String>, Object>(); camposDependientes = new List <String> { "TipoOrganizacionID" }; dependecia.Add(camposDependientes, new TipoOrganizacionInfo { TipoOrganizacionID = (int)Services.Info.Enums.TipoOrganizacion.Ganadera, Descripcion = Services.Info.Enums.TipoOrganizacion.Ganadera.ToString() }); dependencias.Add(dependecia); controlAyuda.Dependencias = dependencias; }
/// <summary> /// Valdiar si existen Compras directas en el ruteo /// </summary> /// <param name="entradaGanado"></param> /// <returns></returns> public List <EntradaGanadoInfo> ObtenerEntradasPorEmbarqueID(EntradaGanadoInfo entradaGanado) { List <EntradaGanadoInfo> result = null; try { Logger.Info(); Dictionary <string, object> parameters = AuxCostoEmbarqueDetalleDAL.ObtenerParametroPorEmbarqueID(entradaGanado); DataSet ds = Retrieve("[dbo].[CostoEmbarqueDetalle_ObtenerEntradasPorEmbarqueID]", parameters); if (ValidateDataSet(ds)) { result = MapCostoEmbarqueDetalleDAL.ObtenerEntradasPorEmbarqueID(ds); } } 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); } return(result); }
/// <summary> /// Metodo que actualiza el estatus a recibido de la programacion de embarque (Cabecero) /// </summary> /// <param name="entradaGanado"></param> /// <param name="estatus"></param> internal void ActualizarEstatus(EntradaGanadoInfo entradaGanado, Estatus estatus) { try { Logger.Info(); var embarqueDAL = new EmbarqueDAL(); embarqueDAL.ActualizarEstatus(entradaGanado, estatus); } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
/// <summary> /// Obtiene Parametros por EntradaGanadoId /// </summary> /// <param name="entradaGanado"></param> /// <returns></returns> internal static Dictionary <string, object> ObtenerPorSalidaOrganizacion(EntradaGanadoInfo entradaGanado) { try { Logger.Info(); var parametros = new Dictionary <string, object> { { "@OrganizacionID", entradaGanado.OrganizacionOrigenID }, { "@SalidaID", entradaGanado.FolioOrigen } }; return(parametros); } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
public EntradaGanadoInfo ObtenerPartidaCorral(int organizacionId, int corralID) { try { Logger.Info(); var corralBL = new CorralBL(); EntradaGanadoInfo result = corralBL.ObtenerPartidaCorral(organizacionId, corralID); return(result); } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
/// <summary> /// Obtiene los parametros para Ejecutar el Procedimiento Almacenado /// InsterfaceSalida_ObtenerPorEmbarqueID /// </summary> /// <param name="entradaGanado"></param> /// <returns></returns> internal static Dictionary <string, object> ObtenerParametrosPorEmbarqueID(EntradaGanadoInfo entradaGanado) { Dictionary <string, object> parametros; try { Logger.Info(); parametros = new Dictionary <string, object> { { "@EmbarqueID", entradaGanado.EmbarqueID } }; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } return(parametros); }
/// <summary> /// Obtiene la Lista de los Costos Automaticos, para la funcionalidad de Costeo Entrada Ganado /// </summary> /// <param name="entradaGanado"></param> /// <returns></returns> public List <EntradaGanadoCostoInfo> ObtenerCostosAutomaticos(EntradaGanadoInfo entradaGanado) { try { Logger.Info(); var costoOrganizacionBL = new CostoOrganizacionBL(); List <EntradaGanadoCostoInfo> lista = costoOrganizacionBL.ObtenerCostosAutomaticos(entradaGanado); return(lista); } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
/// <summary> /// Obtiene Parametros por Organizacion /// </summary> /// <param name="entradaGanadoInfo"></param> /// <returns></returns> internal static Dictionary <string, object> ObtenerParametroPorOrganizacion(EntradaGanadoInfo entradaGanadoInfo) { Dictionary <string, object> parametros; try { Logger.Info(); parametros = new Dictionary <string, object> { { "@TipoOrganizacionOrigenID", entradaGanadoInfo.TipoOrigen }, { "@OrganizacionDestinoID", entradaGanadoInfo.OrganizacionID }, }; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } return(parametros); }
/// <summary> /// Obtiene el numero de cabezas de enfermeria para reimplante /// </summary> /// <param name="ganadoEnfermeria"></param> /// <param name="tipoMovimiento"></param> /// <returns></returns> public int ObtenerCabezasEnEnfermeria(EntradaGanadoInfo ganadoEnfermeria, int tipoMovimiento) { try { Logger.Info(); var reimplanteBL = new ReimplanteBL(); var result = reimplanteBL.ObtenerCabezasEnEnfermeria(ganadoEnfermeria, tipoMovimiento); return(result); } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
/// <summary> /// Obtiene una Cantidad de Animales que se encuentran en enfermeria /// </summary> /// <param name="ganadoEnfermeria"></param> /// <param name="noTipoCorral"></param> /// <returns></returns> public int ObtenerCabezasEnEnfermeria(EntradaGanadoInfo ganadoEnfermeria, int noTipoCorral) { try { Logger.Info(); var corteGanadoBL = new CorteGanadoBL(); var result = corteGanadoBL.ObtenerCabezasEnEnfermeria(ganadoEnfermeria, noTipoCorral); return(result); } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
public Dictionary <int, decimal> ObtenerCostoFleteProrrateado(EntradaGanadoInfo entradaGanado, List <EntradaGanadoCostoInfo> listaCostosEmbarque, List <EntradaGanadoInfo> listaCompraDirecta) { Dictionary <int, decimal> importesProrrateados; try { Logger.Info(); var interfaceSalidaBL = new InterfaceSalidaBL(); importesProrrateados = interfaceSalidaBL.ObtenerCostoFleteProrrateado(entradaGanado, listaCostosEmbarque, listaCompraDirecta); } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } return(importesProrrateados); }
/// <summary> /// Metodo que Obtiene los embarques que estan pendientes de recibir /// </summary> /// <param name="entradaGanado"></param> internal int PendientesRecibir(EntradaGanadoInfo entradaGanado) { int totalPendientes; try { Logger.Info(); var embarqueDAL = new EmbarqueDAL(); totalPendientes = embarqueDAL.PendientesRecibir(entradaGanado); } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } return(totalPendientes); }
/// <summary> /// Obtiene una Interface de Salida por SalidaID y OrganizacionID /// </summary> /// <param name="entradaGanado"></param> /// <returns></returns> public EntradaGanadoCosteoInfo ObtenerPorSalidaOrganizacion(EntradaGanadoInfo entradaGanado) { EntradaGanadoCosteoInfo entradaGanadoCosteoInfo; try { Logger.Info(); var interfaceSalidaBL = new InterfaceSalidaBL(); entradaGanadoCosteoInfo = interfaceSalidaBL.ObtenerPorSalidaOrganizacion(entradaGanado); } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } return(entradaGanadoCosteoInfo); }
/// <summary> /// Valdiar si existen Compras directas en el ruteo /// </summary> /// <param name="entradaGanado"></param> /// <returns></returns> public List <EntradaGanadoInfo> ObtenerEntradasPorEmbarqueID(EntradaGanadoInfo entradaGanado) { List <EntradaGanadoInfo> info; try { Logger.Info(); var costoEmbarqueDetalleBL = new CostoEmbarqueDetalleBL(); info = costoEmbarqueDetalleBL.ObtenerEntradasPorEmbarqueID(entradaGanado); } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } return(info); }
/// <summary> /// Obtiene la Lista de Costos del Embarque /// </summary> /// <param name="entradaGanado"></param> /// <returns></returns> internal List <EntradaGanadoCostoInfo> ObtenerPorEmbarqueIDOrganizacionrigen(EntradaGanadoInfo entradaGanado) { List <EntradaGanadoCostoInfo> info; try { Logger.Info(); var costoEmbarqueDetalleDAL = new CostoEmbarqueDetalleDAL(); info = costoEmbarqueDetalleDAL.ObtenerPorEmbarqueIDOrganizacionOrigen(entradaGanado); } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } return(info); }
/// <summary> /// Obtener entrada de ganado /// </summary> /// <param name="ds"></param> /// <returns></returns> internal static EntradaGanadoInfo ObtenerEntradaGanado(DataSet ds) { var entradaGanadoInfo = new EntradaGanadoInfo(); try { Logger.Info(); var dt = ds.Tables[ConstantesDAL.DtDatos]; foreach (DataRow dr in dt.Rows) { entradaGanadoInfo.FechaEntrada = Convert.ToDateTime(dr["FechaEntrada"]); entradaGanadoInfo.EmbarqueID = dr.Field <int>("EmbarqueID"); entradaGanadoInfo.OrganizacionID = dr.Field <int>("OrganizacionID"); } } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } return(entradaGanadoInfo); }
/// <summary> /// Metodo para agregar las dependencias a las ayudas de Organización Origen y Destino /// </summary> private void AsignaDependenciasAyudaOrganizacion(SKAyuda <OrganizacionInfo> controlAyuda, ComboBox combo) { controlAyuda.Dependencias = null; IList <IDictionary <IList <String>, Object> > dependencias = new List <IDictionary <IList <String>, Object> >(); IDictionary <IList <String>, Object> dependecia = new Dictionary <IList <String>, Object>(); var dependenciasGanado = new EntradaGanadoInfo(); IList <String> camposDependientes = new List <String>(); camposDependientes.Add("EmbarqueID"); dependecia.Add(camposDependientes, dependenciasGanado); dependencias.Add(dependecia); dependecia = new Dictionary <IList <String>, Object>(); camposDependientes = new List <String> { "TipoOrganizacionID" }; dependecia.Add(camposDependientes, combo.SelectedItem); dependencias.Add(dependecia); controlAyuda.Dependencias = dependencias; }
/// <summary> /// Obtiene la Lista de los Costos Automaticos, para la funcionalidad de Costeo Entrada Ganado /// </summary> /// <param name="entradaGanado"></param> /// <returns></returns> internal List <EntradaGanadoCostoInfo> ObtenerCostosAutomaticos(EntradaGanadoInfo entradaGanado) { List <EntradaGanadoCostoInfo> listaEntradaGanadoCostos = new List <EntradaGanadoCostoInfo>(); try { Logger.Info(); var costoOrganizacionDAL = new CostoOrganizacionDAL(); var listaCostos = costoOrganizacionDAL.ObtenerPorOrganizacion(entradaGanado); if (listaCostos == null) { return(listaEntradaGanadoCostos); } listaCostos.ForEach(costo => { var entradaGanadoCosto = new EntradaGanadoCostoInfo { Costo = costo.Costo, Importe = costo.Importe }; listaEntradaGanadoCostos.Add(entradaGanadoCosto); }); } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } return(listaEntradaGanadoCostos); }
/// <summary> /// Metodo que actualiza el estatus a recibido de la programacion de embarque (Cabecero) /// </summary> /// <param name="entradaGanado"></param> /// <param name="estatus"></param> internal void ActualizarEstatus(EntradaGanadoInfo entradaGanado, Estatus estatus) { try { Logger.Info(); Dictionary <string, object> parametros = AuxEmbarqueDAL.ObtenerParametrosActualizarEstatus(entradaGanado, estatus); Update("Embarque_ActualizarEstatus", parametros); } 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); } }
/// <summary> /// Obtiene los valores para la reimpresion de /// la poliza de entrada de ganado /// </summary> /// <param name="entradaGanado"></param> /// <param name="polizaClave"> </param> private MemoryStream ReimprimirPolizaEntrada(EntradaGanadoInfo entradaGanado, TipoPolizaInfo polizaClave) { EntradaGanadoCosteoInfo entradaGanadoCosteo; var esGanadera = false; var entradaGanadoCosteoBL = new EntradaGanadoCosteoBL(); if (entradaGanado.TipoOrigen == TipoOrganizacion.Ganadera.GetHashCode()) { var interfaceSalidaTraspasoBL = new InterfaceSalidaTraspasoBL(); entradaGanadoCosteo = interfaceSalidaTraspasoBL.ObtenerDatosInterfaceSalidaTraspaso(entradaGanado.OrganizacionID, entradaGanado.FolioOrigen); esGanadera = true; EntradaGanadoCosteoInfo entradaGanadoCosteoComplementoCostos = entradaGanadoCosteoBL.ObtenerPorEntradaGanadoID(entradaGanado.EntradaGanadoID); entradaGanadoCosteo.ListaCostoEntrada.AddRange(entradaGanadoCosteoComplementoCostos.ListaCostoEntrada.Where(id => id.Costo.CostoID != 1)); } else { entradaGanadoCosteo = entradaGanadoCosteoBL.ObtenerPorEntradaGanadoID(entradaGanado.EntradaGanadoID); } MemoryStream pdf = null; if (entradaGanadoCosteo != null) { if (!esGanadera) { var cuentaPL = new CuentaBL(); const string CUENTA_INVENTARIO = "CTAINVTRAN"; entradaGanadoCosteo.ListaCostoEntrada.ForEach(costo => { if (!string.IsNullOrWhiteSpace(costo.DescripcionCuenta)) { return; } var claveContable = cuentaPL.ObtenerPorClaveCuentaOrganizacion(CUENTA_INVENTARIO, entradaGanado.OrganizacionOrigenID); if (claveContable != null) { costo.DescripcionCuenta = claveContable.Descripcion; } }); } var contenedorCosteoEntrada = new ContenedorCosteoEntradaGanadoInfo { EntradaGanado = entradaGanado, EntradaGanadoCosteo = entradaGanadoCosteo }; PolizaAbstract poliza; var tipoPoliza = esGanadera ? TipoPoliza.EntradaGanadoDurango : TipoPoliza.EntradaGanado; if (esGanadera) { poliza = FabricaPoliza.ObtenerInstancia().ObtenerTipoPoliza(tipoPoliza); } else { poliza = FabricaPoliza.ObtenerInstancia().ObtenerTipoPoliza(tipoPoliza); } var polizaBL = new PolizaBL(); int organizacionID = entradaGanado.OrganizacionID; IList <PolizaInfo> polizasEntrada = polizaBL.ObtenerPoliza(tipoPoliza, organizacionID, entradaGanado.FechaEntrada, entradaGanado.FolioEntrada.ToString(), polizaClave.ClavePoliza, 1); if (polizasEntrada != null) { polizasEntrada = poliza.GeneraPoliza(contenedorCosteoEntrada); pdf = poliza.ImprimePoliza(contenedorCosteoEntrada, polizasEntrada); } } return(pdf); }
/// <summary> /// Genera las Lineas del Detalle /// </summary> /// <param name="lineas"></param> /// <param name="contenedorCosteoEntrada"></param> private void GeneraLineasDetalle(IList <LineaImpresionInfo> lineas, IList <EntradaDetalleInfo> detalles, EntradaGanadoInfo entradaGanado) { var opcionesLinea = new OpcionesLinea { Fuente = new Font(NombreFuente, 10), MargenIzquierdo = 20 }; LineaImpresionInfo linea; EntradaDetalleInfo detalle; for (int indexDetalle = 0; indexDetalle < detalles.Count; indexDetalle++) { detalle = detalles[indexDetalle]; decimal pesoPromedio = decimal.Round(detalle.PesoOrigen / detalle.Cabezas, 0); decimal importePromedio = decimal.Round(detalle.Importe / detalle.Cabezas, 0); StringBuilder SB = new StringBuilder(); SB.Append("{0}").Append(String.Empty.PadRight(6)); SB.Append("{1}").Append(String.Empty.PadRight(6)); SB.Append("{2}").Append(String.Empty.PadRight(6)); SB.Append("{3}").Append(String.Empty.PadRight(6)); SB.Append("{4}").Append(String.Empty.PadRight(6)); SB.Append("{5}").Append(String.Empty.PadRight(6)); SB.Append("{6}-{7}").Append(String.Empty.PadRight(6)); SB.Append("{8}").Append(String.Empty.PadRight(6)); SB.Append("{9}"); linea = new LineaImpresionInfo { Texto = String.Format(SB.ToString() , detalle.PesoOrigen, detalle.PesoLlegada, detalle.Cabezas , detalle.TipoGanado.Descripcion, detalle.PrecioKilo, detalle.Importe , entradaGanado.Lote.Lote, entradaGanado.CodigoCorral, pesoPromedio, importePromedio), Opciones = opcionesLinea }; lineas.Add(linea); } }
/// <summary> /// Guarda la salida por muerte en necropsia /// </summary> /// <param name="muerte"></param> /// <returns></returns> internal int GuardarSalidaPorMuerteNecropsia(MuerteInfo muerte) { int retValue; try { Logger.Info(); var animalBL = new AnimalBL(); var animalMovimientoBL = new AnimalMovimientoBL(); var corralBL = new CorralBL(); var loteBL = new LoteBL(); var trampaBL = new TrampaBL(); var entradaGanadoBL = new EntradaGanadoBL(); var animalMovimientoInfo = new AnimalMovimientoInfo(); var corralInfo = new CorralInfo(); var muerteDAL = new MuerteDAL(); PolizaAbstract poliza; IList <PolizaInfo> polizaSalidaMuerte; AnimalInfo animalInfo = null; using (var transaccion = new TransactionScope()) { //Se obtiene la info del Corral if (muerte.CorralId > 0) { corralInfo = corralBL.ObtenerPorId(muerte.CorralId); } else if (muerte.CorralCodigo != "") { corralInfo = corralBL.ObtenerCorralPorCodigo(muerte.OrganizacionId, muerte.CorralCodigo); } //Se obtiene la info del Lote LoteInfo loteInfo; if (muerte.LoteId > 0) { loteInfo = loteBL.ObtenerPorID(muerte.LoteId); } else { loteInfo = loteBL.DeteccionObtenerPorCorral(muerte.OrganizacionId, corralInfo.CorralID); } /* Se valida el Grupo del corral */ switch (corralInfo.GrupoCorral) { case (int)GrupoCorralEnum.Recepcion: /* almacena el animal en el Inventario */ animalInfo = new AnimalInfo { Arete = muerte.Arete, AreteMetalico = muerte.AreteMetalico, FechaCompra = DateTime.Now, TipoGanadoID = 1, CalidadGanadoID = 1, //*** ClasificacionGanadoID = 1, //*** PesoCompra = 0, PesoLlegada = 0, //*** FolioEntrada = 1, OrganizacionIDEntrada = muerte.OrganizacionId, Paletas = 0, Venta = false, Cronico = false, Activo = true, UsuarioCreacionID = muerte.UsuarioCreacionID }; var interfazAnimalBl = new InterfaceSalidaAnimalBL(); var interfaceSalidoAnimalInfo = interfazAnimalBl.ObtenerNumeroAreteIndividual(muerte.Arete, muerte.OrganizacionId); int folioEntradaInterfaz = 0; if (interfaceSalidoAnimalInfo != null) { animalInfo.FechaCompra = interfaceSalidoAnimalInfo.FechaCompra; animalInfo.PesoCompra = (int)interfaceSalidoAnimalInfo.PesoCompra; animalInfo.TipoGanadoID = interfaceSalidoAnimalInfo.TipoGanado.TipoGanadoID; folioEntradaInterfaz = interfaceSalidoAnimalInfo.Partida; } EntradaGanadoInfo entradaGanadoInterfaz = entradaGanadoBL.ObtenerEntradasGanadoCosteado(folioEntradaInterfaz, muerte.OrganizacionId); /* Obtener la entrada de ganado del Corral-Lote para conocer el origen */ EntradaGanadoInfo entradaGanadoInfo = entradaGanadoBL.ObtenerEntradaPorLote(loteInfo); if (entradaGanadoInfo != null) { if (entradaGanadoInterfaz != null) { if (entradaGanadoInfo.EmbarqueID == entradaGanadoInterfaz.EmbarqueID) { animalInfo.FolioEntrada = entradaGanadoInterfaz.FolioEntrada; } } if (animalInfo.FolioEntrada == 1) { if (!entradaGanadoInfo.EsRuteo) { animalInfo.FolioEntrada = entradaGanadoInfo.FolioEntrada; } else { List <CabezasPartidasModel> partidasRuteo = entradaGanadoBL.ObtenerCabezasEntradasRuteo(entradaGanadoInfo.EmbarqueID); if (partidasRuteo != null && partidasRuteo.Any()) { CabezasPartidasModel partidaConPendientes = partidasRuteo.OrderByDescending(part => part.CabezasPendientes). FirstOrDefault(); if (partidaConPendientes != null) { animalInfo.FolioEntrada = partidaConPendientes.FolioEntrada; } } } } //if (entradaGanadoInfo.TipoOrganizacionOrigenId != (int)TipoOrganizacion.CompraDirecta) //{ //} //animalInfo.FolioEntrada = entradaGanadoInfo.FolioEntrada; } /* Se almacena el animalMovimiento */ animalInfo = animalBL.GuardarAnimal(animalInfo); break; default: if (muerte.AnimalId > 0) { animalInfo = animalBL.ObtenerAnimalAnimalID(muerte.AnimalId); /* Se busca el animal En Salida Animal */ AnimalSalidaInfo animalSalidaInfo = animalBL.ObtenerAnimalSalidaAnimalID(animalInfo.AnimalID); if (animalSalidaInfo != null) { /* Se valida si no esta en una corraleta de sacrificio */ CorralInfo corraleta = corralBL.ObtenerPorId(animalSalidaInfo.CorraletaId); if (corraleta != null && corraleta.TipoCorral.TipoCorralID == (int)TipoCorral.CorraletaSacrificio) { /* Se disminuyen las cabezas del lote en todas las ordenes de sacrificio */ var ordenSacrificioBL = new OrdenSacrificioBL(); ordenSacrificioBL.DecrementarAnimalMuerto(muerte.AnimalId); /* Eliminar AnimalSalida */ animalBL.EliminarAnimalSalida(animalInfo.AnimalID, loteInfo.LoteID); } } } else { var listaAnimales = animalBL.ObtenerAnimalesPorCorral(corralInfo, muerte.OrganizacionId); if (listaAnimales != null) //&& listaAnimales.Any()) { //animalInfo = listaAnimales.FirstOrDefault(registro => registro.UsuarioCreacionID == 1); animalInfo = listaAnimales.FirstOrDefault(registro => registro.UsuarioCreacionID == 1); if (animalInfo == null) { animalInfo = listaAnimales.OrderBy(ani => ani.AnimalID).FirstOrDefault(); } } } break; } if (animalInfo != null) { animalInfo.UsuarioCreacionID = muerte.UsuarioCreacionID; animalInfo.UsuarioModificacionID = muerte.UsuarioCreacionID; if (muerte.AnimalId == 0) { muerte.AnimalId = animalInfo.AnimalID; } } /* Se actualiza la muerte con salida por necropsia */ muerteDAL.GuardarSalidaPorMuerteNecropsia(muerte); if (animalInfo != null) { if (muerte.Peso == 0) { List <AnimalMovimientoInfo> ultimosMovimiento = animalMovimientoBL.ObtenerUltimoMovimientoAnimal(new List <AnimalInfo> { animalInfo }); if (ultimosMovimiento != null && ultimosMovimiento.Any()) { AnimalMovimientoInfo ultimoMovimientoAnimal = ultimosMovimiento.OrderByDescending(ani => ani.AnimalMovimientoID).FirstOrDefault(); if (ultimoMovimientoAnimal != null) { muerte.Peso = ultimoMovimientoAnimal.Peso; } } } /* Insertamos el movimiento de Muerte */ var trampaInfo = trampaBL.ObtenerPorHostName(TrampaGlobal.TrampaNecropsia.ToString()); if (trampaInfo != null) { animalMovimientoInfo.TrampaID = trampaInfo.TrampaID; } /* Se genera el animal Movimiento para almacenarlo*/ animalMovimientoInfo = new AnimalMovimientoInfo { AnimalID = animalInfo.AnimalID, OrganizacionID = muerte.OrganizacionId, CorralID = loteInfo.CorralID, LoteID = loteInfo.LoteID, Peso = muerte.Peso, Temperatura = 0, TipoMovimientoID = (int)TipoMovimiento.Muerte, TrampaID = trampaInfo != null ? trampaInfo.TrampaID : 1, OperadorID = muerte.OperadorNecropsiaId, Observaciones = muerte.Observaciones, Activo = EstatusEnum.Activo, UsuarioCreacionID = muerte.UsuarioCreacionID }; //Proceso para Guardar Costos AnimalCostoBL animalCostoBl = new AnimalCostoBL(); List <AnimalInfo> animales = new List <AnimalInfo>(); animales.Add(animalInfo); List <AnimalCostoInfo> listaCostos = animalCostoBl.ObtenerCostosAnimal(animales); if (listaCostos == null || listaCostos.Count <= 0) { animales = animalBL.ProcesoGenerarCostos(animales); } else { if (!listaCostos.Any(registro => registro.CostoID == Costo.CostoGanado.GetHashCode())) { animales = animalBL.ProcesoGenerarCostos(animales); } } //Proceso Armar Poliza if (animales != null && animales.Count > 0) { if (animales.FirstOrDefault().ListaCostosAnimal != null && animales.FirstOrDefault().ListaCostosAnimal.Count > 0) { poliza = FabricaPoliza.ObtenerInstancia().ObtenerTipoPoliza(TipoPoliza.SalidaMuerte); List <AnimalCostoInfo> listaCostosAnimal = animales.FirstOrDefault().ListaCostosAnimal; foreach (AnimalCostoInfo animalCosto in listaCostosAnimal) { animalCosto.OrganizacionID = muerte.OrganizacionId; } polizaSalidaMuerte = poliza.GeneraPoliza(listaCostosAnimal); if (polizaSalidaMuerte != null && polizaSalidaMuerte.Any()) { polizaSalidaMuerte.ToList().ForEach( org => { org.OrganizacionID = muerte.OrganizacionId; org.UsuarioCreacionID = muerte.UsuarioCreacionID; org.ArchivoEnviadoServidor = 1; }); //retorno = poliza.ImprimePoliza(ventasGanado, polizaSalidaMuerte); var polizaBL = new PolizaBL(); polizaBL.GuardarServicioPI(polizaSalidaMuerte, TipoPoliza.SalidaMuerte); } } } /* Se almacena el animalMovimiento */ animalMovimientoBL.GuardarAnimalMovimiento(animalMovimientoInfo); /* Se da de baja el animal */ animalBL.InactivarAnimal(animalInfo); /* Enviar al historico el animal inactivo */ var animalMuerto = new List <AnimalInfo> { animalInfo }; animalBL.EnviarAHistorico(animalMuerto); } /* Decrementar la cabeza del lote */ loteInfo.Cabezas = loteInfo.Cabezas - 1; loteInfo.UsuarioModificacionID = muerte.UsuarioCreacionID; var filtro = new FiltroActualizarCabezasLote { CabezasProcesadas = 1, LoteIDDestino = 0, LoteIDOrigen = loteInfo.LoteID, UsuarioModificacionID = muerte.UsuarioCreacionID }; CabezasActualizadasInfo resultadoCabezas = loteBL.ActualizarCabezasProcesadas(filtro); //Si ya no tenemos cabezas en el lote se actualizanb los pesos llegada if (resultadoCabezas.CabezasOrigen <= 0) { if (corralInfo.GrupoCorral == (int)GrupoCorralEnum.Recepcion) { /* Si el corral es de Recepcion */ var corteGanadoPl = new CorteGanadoBL(); corteGanadoPl.ObtenerPesosOrigenLlegada(muerte.OrganizacionId, loteInfo.CorralID, loteInfo.LoteID); } } transaccion.Complete(); retValue = 1; } } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } return(retValue); }