public AnimalInfo ObtenerAnimalPorAreteTestigo(string areteTestigo, int organizacionID) { AnimalInfo result; try { Logger.Info(); var animalBL = new AnimalBL(); result = animalBL.ObtenerAnimalPorAreteTestigo(areteTestigo, organizacionID); } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } return(result); }
/// <summary> /// Metodo que le da salida por venta al ganado /// </summary> /// <param name="salidaIndividual"></param> /// <returns></returns> internal MemoryStream GuardarSalidaIndividualGanadoVenta(SalidaIndividualInfo salidaIndividual) { MemoryStream retorno = null; try { PolizaAbstract poliza; IList <PolizaInfo> polizaSalidaVenta; TicketInfo Ticket = new TicketInfo(); Ticket.FolioTicket = salidaIndividual.FolioTicket; Ticket.Organizacion = salidaIndividual.Organizacion; Ticket.TipoVenta = salidaIndividual.TipoVenta; var ventaGanadoBL = new VentaGanadoBL(); VentaGanadoInfo salidaPorVentaGanado = ventaGanadoBL.ObtenerVentaGanadoPorTicket(Ticket); var loteBL = new LoteBL(); LoteInfo lote = loteBL.ObtenerPorID(salidaPorVentaGanado.LoteID); lote.Cabezas -= salidaIndividual.NumeroDeCabezas; AnimalBL animalBl = new AnimalBL(); using (var scope = new TransactionScope()) { Logger.Info(); var salidaIndividualDAL = new SalidaIndividualDAL(); VentaGanadoDetalleBL ventaGanadoDetalleBl = new VentaGanadoDetalleBL(); List <VentaGanadoDetalleInfo> listaVentaGanadoDetalle = ventaGanadoDetalleBl.ObtenerVentaGanadoPorTicket(salidaPorVentaGanado.VentaGanadoID); List <AnimalCostoInfo> animalCosto = new List <AnimalCostoInfo>(); AnimalCostoBL animalCostoBl = new AnimalCostoBL(); List <AnimalInfo> animalesConsulta = new List <AnimalInfo>(); List <AnimalInfo> animalesProcesar = new List <AnimalInfo>(); foreach (VentaGanadoDetalleInfo ventaGanado in listaVentaGanadoDetalle) { animalesConsulta = new List <AnimalInfo>(); ventaGanado.Animal = animalBl.ObtenerAnimalPorArete(ventaGanado.Arete, Ticket.Organizacion); if (ventaGanado.Animal == null) { ventaGanado.Animal = animalBl.ObtenerAnimalPorAreteTestigo(ventaGanado.AreteMetalico, Ticket.Organizacion); } animalesConsulta.Add(ventaGanado.Animal); animalCosto = animalCostoBl.ObtenerCostosAnimal(animalesConsulta); if (!animalCosto.Any(registro => registro.CostoID == Costo.CostoGanado.GetHashCode())) { animalesProcesar.Add(ventaGanado.Animal); } } if (animalesProcesar != null && animalesProcesar.Count > 0) { animalBl.ProcesoGenerarCostos(animalesProcesar); } salidaIndividualDAL.GuardarSalidaIndividualGanadoVenta(salidaIndividual); salidaIndividualDAL.GuardarCostosHistoricos(salidaIndividual); salidaIndividualDAL.GuardarConsumoHistoricos(salidaIndividual); salidaIndividualDAL.GuardarAnimalHistoricos(salidaIndividual); var filtroActualizaCabezas = new FiltroActualizarCabezasLote { LoteIDOrigen = lote.LoteID, LoteIDDestino = 0, CabezasProcesadas = salidaIndividual.NumeroDeCabezas, UsuarioModificacionID = salidaIndividual.Usuario }; loteBL.ActualizarCabezasProcesadas(filtroActualizaCabezas); //loteBL.ActualizaNoCabezasEnLote(lote, lote); #region Poliza List <ContenedorVentaGanado> ventasGanado = ventaGanadoBL.ObtenerVentaGanadoPorTicketPoliza(Ticket.FolioTicket, Ticket.Organizacion); if (ventasGanado != null && ventasGanado.Any()) { poliza = FabricaPoliza.ObtenerInstancia().ObtenerTipoPoliza(TipoPoliza.SalidaVenta); polizaSalidaVenta = poliza.GeneraPoliza(ventasGanado); if (polizaSalidaVenta != null && polizaSalidaVenta.Any()) { polizaSalidaVenta.ToList().ForEach( org => { org.OrganizacionID = Ticket.Organizacion; org.UsuarioCreacionID = salidaIndividual.Usuario; org.ArchivoEnviadoServidor = 1; }); retorno = poliza.ImprimePoliza(ventasGanado, polizaSalidaVenta); var polizaBL = new PolizaBL(); polizaBL.GuardarServicioPI(polizaSalidaVenta, TipoPoliza.SalidaVenta); } } // Genera el xml y lo guarda en la ruta especificada en la configuración var facturaBl = new FacturaBL(); facturaBl.GenerarDatosFacturaVentaDeGanado(Ticket.FolioTicket, Ticket.Organizacion); #endregion Poliza scope.Complete(); } return(retorno); } catch (ExcepcionServicio ex) { Logger.Error(ex); throw; } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }