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"); }
public int Guardar(GanadoIntensivoInfo ganadoIntensivo) { try { int result; Logger.Info(); var ganadoIntensivoDAL = new GanadoIntensivoDAL(); var loteBL = new LoteBL(); result = ganadoIntensivoDAL.Guardar(ganadoIntensivo); var filtroActualizarCabezasLote = new FiltroActualizarCabezasLote { CabezasProcesadas = ganadoIntensivo.Cabezas, LoteIDOrigen = ganadoIntensivo.Lote.LoteID, UsuarioModificacionID = ganadoIntensivo.UsuarioCreacionID, LoteIDDestino = 0 }; //loteBL.ActualizarCabezasProcesadas(filtroActualizarCabezasLote); return(result); } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
public GanadoIntensivoInfo ObtenerMuerteGanadoIntensivo(CorralInfo corral) { try { Dictionary <string, object> parameters = AuxGanadoIntensivoDAL.ObtenerParametrosMuerteGanadoIntensivo(corral); DataSet ds = Retrieve("[dbo].[MuerteGanadoIntensivo_ObtenerEntradaGanadoPorCorralID]", parameters); GanadoIntensivoInfo corralInfo = null; if (ValidateDataSet(ds)) { corralInfo = new GanadoIntensivoInfo(); //corralInfo = MapCorralDAL.ObtenerPorId(ds); } return(corralInfo); } 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> /// Se calcula costos de las cabezas. /// </summary> /// <param name="contexto"></param> /// <returns></returns> internal GanadoIntensivoInfo CalcularCostosDeCabezas(GanadoIntensivoInfo contexto) { List <GanadoIntensivoCostoInfo> listaganGanadoIntensivoCosto = new List <GanadoIntensivoCostoInfo>(); try { Logger.Info(); if (contexto.EntradaGanadoCosteo != null) { if (contexto.EntradaGanadoCosteo.ListaCostoEntrada != null && contexto.EntradaGanadoCosteo.ListaCostoEntrada.Any()) { List <int> ListaCostos = contexto.EntradaGanadoCosteo.ListaCostoEntrada.Select(lista => lista.Costo.CostoID) .Distinct() .ToList(); foreach (var costoID in ListaCostos) { decimal importe = contexto.EntradaGanadoCosteo.ListaCostoEntrada.Where( lista => lista.Costo.CostoID == costoID).Sum(imp => imp.Importe); var ganadoIntensivoCostoInfo = new GanadoIntensivoCostoInfo { Costos = new CostoInfo { CostoID = costoID }, Importe = Math.Round(((importe / contexto.EntradaGanado.CabezasRecibidas) * contexto.Cabezas), 2) }; listaganGanadoIntensivoCosto.Add(ganadoIntensivoCostoInfo); } } } if (listaganGanadoIntensivoCosto.Any()) { decimal importeTotal = listaganGanadoIntensivoCosto.Sum(imp => imp.Importe); contexto.Importe = importeTotal; } contexto.ListaGanadoIntensivoCosto = listaganGanadoIntensivoCosto; } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } return(contexto); }
/// <summary> /// Evento cuando la ayuda corral pierde el foco /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void SkAyudaCorral_OnLostFocus(object sender, RoutedEventArgs e) { if (Contexto.Corral.CorralID != 0) { GanadoIntensivoInfo ganadoIntensivoInfo = ObtenerDatosMuerteGanadoIntensivo(); if (ganadoIntensivoInfo != null) { if (ganadoIntensivoInfo.Lote != null) { if (ganadoIntensivoInfo.EntradaGanado != null) { Contexto.Importe = 0; Contexto.Observaciones = string.Empty; Contexto.CabezasText = "0"; Contexto.EntradaGanado = ganadoIntensivoInfo.EntradaGanado; Contexto.EntradaGanadoCosteo = ganadoIntensivoInfo.EntradaGanadoCosteo; Contexto.Lote = ganadoIntensivoInfo.Lote; Contexto.TotalCabezas = ganadoIntensivoInfo.TotalCabezas; } else { SkMessageBox.Show(Properties.Resources.MuerteGanadoIntensivo_MsjNoTieneEntradaGanado, MessageBoxButton.OK, MessageImage.Warning); InicializaContexto(); skAyudaCorral.Focus(); } } else { SkMessageBox.Show(Properties.Resources.MuerteGanadoIntensivo_MsjCorralSinLote, MessageBoxButton.OK, MessageImage.Warning); InicializaContexto(); skAyudaCorral.Focus(); } } else { InicializaContexto(); skAyudaCorral.Focus(); } } else { InicializaContexto(); skAyudaCorral.Focus(); } }
/// <summary> /// /// </summary> public GanadoIntensivoInfo MuerteGanadoIntensivo_Guardar(GanadoIntensivoInfo ganadoIntensivo) { try { var ganadoIntensivoBL = new GanadoIntensivoBL(); var result = ganadoIntensivoBL.MuerteGanadoIntensivo_Guardar(ganadoIntensivo); return(result); } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
/// <summary> /// Obtener muerte ganado intensivo /// </summary> /// <returns></returns> private GanadoIntensivoInfo ObtenerDatosMuerteGanadoIntensivo() { GanadoIntensivoInfo ganadoIntensivoInfo = null; try { var muerteGanadoIntensivoPL = new GanadoIntensivoPL(); ganadoIntensivoInfo = muerteGanadoIntensivoPL.ObtenerMuerteGanadoIntensivo(Contexto.Corral); } catch (Exception ex) { Logger.Error(ex); SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal], Properties.Resources.RecepcionGanado_ErrorConsultarUsuarioOperador, MessageBoxButton.OK, MessageImage.Error); } return(ganadoIntensivoInfo); }
/// <summary> /// Inicializa el contexto /// </summary> private void InicializaContexto() { var listaTipoCorral = new List <TipoCorralInfo> { new TipoCorralInfo() { TipoCorralID = TipoCorral.Intensivo.GetHashCode() }, new TipoCorralInfo() { TipoCorralID = TipoCorral.Maquila.GetHashCode() } }; Contexto = new GanadoIntensivoInfo { UsuarioCreacionID = AuxConfiguracion.ObtenerUsuarioLogueado(), Organizacion = new OrganizacionInfo { OrganizacionID = organiazcionID }, Activo = EstatusEnum.Activo, Corral = new CorralInfo { ListaTipoCorral = listaTipoCorral, Organizacion = new OrganizacionInfo { OrganizacionID = organiazcionID }, Activo = EstatusEnum.Activo }, TotalCabezas = 0, Importe = 0, Observaciones = string.Empty, TipoMovimientoID = TipoMovimiento.MuerteGanadoIntensivo, TipoFolio = TipoFolio.MuerteGanadoIntensivo }; skAyudaCorral.ObjetoNegocio = new CorralPL(); skAyudaCorral.AyudaConDatos += (sender, args) => { Contexto.Corral.ListaTipoCorral = listaTipoCorral; }; }
public GanadoIntensivoInfo CalcularCostosDeCabezas(GanadoIntensivoInfo contexto) { GanadoIntensivoInfo ganadoIntensivoInfo = null; try { var muerteGanadoIntensivoBL = new GanadoIntensivoBL(); ganadoIntensivoInfo = muerteGanadoIntensivoBL.CalcularCostosDeCabezas(contexto); } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } return(ganadoIntensivoInfo); }
/// <summary> /// Obtener muerte de ganado intensivo /// </summary> /// <param name="corral"></param> /// <returns></returns> public GanadoIntensivoInfo ObtenerMuerteGanadoIntensivo(CorralInfo corral) { GanadoIntensivoInfo ganadoIntensivoInfo = null; try { Logger.Info(); var muerteGanadoIntensivoBL = new GanadoIntensivoBL(); ganadoIntensivoInfo = muerteGanadoIntensivoBL.ObtenerMuerteGanadoIntensivo(corral); } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } return(ganadoIntensivoInfo); }
/// <summary> /// Se obtienen parametros para guardar ganado intensivo /// </summary> /// <param name="ganadoIntensivo"></param> /// <returns></returns> public static Dictionary <string, object> ObtenerParametrosGuardar(GanadoIntensivoInfo ganadoIntensivo) { Dictionary <string, object> parametros; try { Logger.Info(); var xml = new XElement("ROOT", from costo in ganadoIntensivo.ListaGanadoIntensivoCosto select new XElement("Costos", new XElement("CostoID", costo.Costos.CostoID), new XElement("Importe", costo.Importe)) ); parametros = new Dictionary <string, object> { { "@XMLCostos", xml.ToString() }, { "@TipoMovimientoID", ganadoIntensivo.TipoMovimientoID.GetHashCode() }, { "@LoteID", ganadoIntensivo.Lote.LoteID }, { "@Cabezas", ganadoIntensivo.Cabezas }, { "@CabezasAnterior", ganadoIntensivo.Lote.Cabezas }, { "@Importe", ganadoIntensivo.Importe }, { "@Observaciones", ganadoIntensivo.Observaciones }, { "@OrganizacionID", ganadoIntensivo.Organizacion.OrganizacionID }, { "@TipoFolio", ganadoIntensivo.TipoFolio.GetHashCode() }, { "@Activo", ganadoIntensivo.Activo.GetHashCode() }, { "@UsuarioID", ganadoIntensivo.UsuarioCreacionID }, { "@FolioTicket", ganadoIntensivo.FolioTicket }, { "@PesoBruto", ganadoIntensivo.PesoBruto } }; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } return(parametros); }
/// <summary> /// Obtener muerte de ganado intensivo /// </summary> /// <param name="corral"></param> /// <returns></returns> internal GanadoIntensivoInfo ObtenerMuerteGanadoIntensivo(CorralInfo corral) { try { Logger.Info(); var muerteGanadoIntensivoDAL = new GanadoIntensivoDAL(); GanadoIntensivoInfo muerteGanadoIntensivoInfo = new GanadoIntensivoInfo(); var loteBL = new LoteBL(); var entradaGanadoBL = new EntradaGanadoBL(); var entradaGanadoCosteoBL = new EntradaGanadoCosteoBL(); LoteInfo lote = loteBL.ObtenerLotesActivos(corral.Organizacion.OrganizacionID, corral.CorralID); if (lote != null) { muerteGanadoIntensivoInfo.Lote = lote; muerteGanadoIntensivoInfo.TotalCabezas = lote.Cabezas; var entrada = entradaGanadoBL.ObtenerEntradaGanadoLoteCorral(lote); if (entrada != null) { muerteGanadoIntensivoInfo.EntradaGanado = entrada; EntradaGanadoCosteoInfo entradaGanadoCosteo = entradaGanadoCosteoBL.ObtenerPorEntradaGanadoID(entrada.EntradaGanadoID); if (entradaGanadoCosteo != null) { muerteGanadoIntensivoInfo.EntradaGanadoCosteo = entradaGanadoCosteo; } } } return(muerteGanadoIntensivoInfo); } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
/// <summary> /// Metodo para calcular costos de cabezas /// </summary> private void CalcularCostosDeCabezas() { GanadoIntensivoInfo muerteGanadoIntensivoInfo = null; try { if (!string.IsNullOrEmpty(txtCabezas.Text) || Contexto.Cabezas > 0) { if (ValidarCabezas()) { var muerteGanadoIntensivoPL = new GanadoIntensivoPL(); muerteGanadoIntensivoInfo = muerteGanadoIntensivoPL.CalcularCostosDeCabezas(Contexto); //InicializaContexto(); Contexto.Importe = muerteGanadoIntensivoInfo.Importe; Contexto.ListaGanadoIntensivoCosto = muerteGanadoIntensivoInfo.ListaGanadoIntensivoCosto; } else { SkMessageBox.Show(Properties.Resources.MuerteGanadoIntensivo_msgNumCabezasInvalido, MessageBoxButton.OK, MessageImage.Warning); Contexto.CabezasText = "0"; } } else { Contexto.CabezasText = "0"; } } catch (Exception ex) { Logger.Error(ex); SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal], Properties.Resources.RecepcionGanado_ErrorConsultarUsuarioOperador, MessageBoxButton.OK, MessageImage.Error); } }
public int Guardar(GanadoIntensivoInfo ganadoIntensivo) { try { Dictionary <string, object> parameters = AuxGanadoIntensivoDAL.ObtenerParametrosGuardar(ganadoIntensivo); int result = Create("[dbo].[GanadoIntesivo_Guardar]", parameters); 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); } }
/// <summary> /// Guardar muerte de ganado intenvio /// </summary> /// <param name="ganadoIntensivo"></param> /// <returns></returns> public GanadoIntensivoInfo MuerteGanadoIntensivo_Guardar(GanadoIntensivoInfo ganadoIntensivo) { try { int result; Logger.Info(); MemoryStream polizaPDF = null; GanadoIntensivoInfo resultado = new GanadoIntensivoInfo(); using (var transaction = new TransactionScope()) { var loteBL = new LoteBL(); PolizaAbstract poliza; IList <PolizaInfo> polizaSalidaMuerteIntensiva; result = Guardar(ganadoIntensivo); resultado.FolioTicket = result; ganadoIntensivo.FolioTicket = result; var filtroActualizarCabezasLote = new FiltroActualizarCabezasLote { CabezasProcesadas = ganadoIntensivo.Cabezas, LoteIDOrigen = ganadoIntensivo.Lote.LoteID, UsuarioModificacionID = ganadoIntensivo.UsuarioCreacionID, LoteIDDestino = 0 }; loteBL.ActualizarCabezasProcesadas(filtroActualizarCabezasLote); #region Poliza if (ganadoIntensivo != null) { if (ganadoIntensivo.ListaGanadoIntensivoCosto != null && ganadoIntensivo.ListaGanadoIntensivoCosto.Any()) { poliza = FabricaPoliza.ObtenerInstancia().ObtenerTipoPoliza(TipoPoliza.SalidaMuerteIntensiva); polizaSalidaMuerteIntensiva = poliza.GeneraPoliza(ganadoIntensivo); if (polizaSalidaMuerteIntensiva != null && polizaSalidaMuerteIntensiva.Any()) { polizaSalidaMuerteIntensiva.ToList().ForEach( org => { org.OrganizacionID = ganadoIntensivo.Organizacion.OrganizacionID; org.UsuarioCreacionID = ganadoIntensivo.UsuarioCreacionID; org.ArchivoEnviadoServidor = 1; }); polizaPDF = poliza.ImprimePoliza(ganadoIntensivo, polizaSalidaMuerteIntensiva); var polizaBL = new PolizaBL(); polizaBL.GuardarServicioPI(polizaSalidaMuerteIntensiva, TipoPoliza.SalidaMuerteIntensiva); resultado.stream = polizaPDF; } } } #endregion Poliza transaction.Complete(); } return(resultado); } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
private IList <PolizaInfo> ObtenerPoliza(GanadoIntensivoInfo ganadoIntensivo) { var polizasSalidaMuerteIntensiva = new List <PolizaInfo>(); if (ganadoIntensivo.ListaGanadoIntensivoCosto != null && ganadoIntensivo.ListaGanadoIntensivoCosto.Any()) { TipoPolizaInfo tipoPoliza = TiposPoliza.FirstOrDefault(clave => clave.TipoPolizaID == TipoPoliza.SalidaMuerteIntensiva.GetHashCode()); if (tipoPoliza == null) { throw new ExcepcionServicio(string.Format("{0} {1}", "EL TIPO DE POLIZA", TipoPoliza.SalidaMuerteIntensiva)); } string textoDocumento = tipoPoliza.TextoDocumento; string tipoMovimiento = tipoPoliza.ClavePoliza; string postFijoRef3 = tipoPoliza.PostFijoRef3; int linea = 1; var ref3 = new StringBuilder(); ref3.Append("03"); ref3.Append( string.Format("{0}{1}{2}", DateTime.Today.Day, DateTime.Today.Month, DateTime.Today.Year).PadLeft( 10, ' ')); ref3.Append(new Random(10).Next(10, 20)); ref3.Append(new Random(30).Next(30, 40)); ref3.Append(DateTime.Now.Millisecond); ref3.Append(postFijoRef3); string numeroReferencia = ObtenerNumeroReferencia; if (costos == null) { costos = ObtenerCostos(); } foreach (var ganadoIntensivoCostoInfo in ganadoIntensivo.ListaGanadoIntensivoCosto) { CostoInfo costo = costos.FirstOrDefault(tipo => tipo.CostoID == ganadoIntensivoCostoInfo.Costos.CostoID); if (costo == null) { costo = new CostoInfo(); } //= ObtenerOrganizacionIVA(ganadoIntensivo.Organizacion.OrganizacionID); OrganizacionInfo organizacion = ObtenerOrganizacionSociedadDivision(ganadoIntensivo.Organizacion.OrganizacionID, SociedadEnum.SuKarne); if (organizacion == null) { organizacion = new OrganizacionInfo { TipoOrganizacion = new TipoOrganizacionInfo() }; } const int Corral_Intensivo = 4; const int Corral_Maquila = 6; int tipoOrganizacioID = 0; switch (ganadoIntensivo.Lote.TipoCorralID) { case Corral_Intensivo: tipoOrganizacioID = TipoOrganizacion.Intensivo.GetHashCode(); break; case Corral_Maquila: tipoOrganizacioID = TipoOrganizacion.Maquila.GetHashCode(); break; } if (tipoOrganizacioID > 0) { organizacion.TipoOrganizacion.TipoOrganizacionID = tipoOrganizacioID; } ClaveContableInfo claveContableAbono = ObtenerCuentaInventario(costo, organizacion.OrganizacionID, organizacion.TipoOrganizacion.TipoOrganizacionID); if (claveContableAbono == null) { throw new ExcepcionServicio(string.Format("{0} {1}", "NO EXISTE CONFIGURACION PARA EL COSTO", costo.Descripcion)); } ClaveContableInfo claveContableCargo = ObtenerCuentaInventario(costo, organizacion.OrganizacionID, TipoPoliza.SalidaMuerteIntensiva); if (claveContableCargo == null) { throw new ExcepcionServicio(string.Format("{0} {1}", "NO EXISTE CONFIGURACION PARA EL COSTO", costo.Descripcion)); } ParametroOrganizacionInfo parametroCentroCosto = ObtenerParametroOrganizacionPorClave(organizacion.OrganizacionID, ParametrosEnum.CTACENTROCTOINT.ToString()); if (parametroCentroCosto == null) { throw new ExcepcionServicio(string.Format("{0}", "CENTRO DE COSTO NO CONFIGURADO")); } EntradaGanadoInfo entradaGanado = ganadoIntensivo.EntradaGanado; var pesoMuerteTotal = Math.Round(((entradaGanado.PesoBruto - entradaGanado.PesoTara) / entradaGanado.CabezasRecibidas) * ganadoIntensivo.Cabezas, 0); //VALIDAR FECHA DateTime fecha = DateTime.Today; if (fecha != null) { string archivoFolio = ObtenerArchivoFolio(fecha); var datos = new DatosPolizaInfo { NumeroReferencia = numeroReferencia, FechaEntrada = fecha, Folio = ganadoIntensivo.FolioTicket.ToString(), Importe = string.Format("{0}", ganadoIntensivoCostoInfo.Importe.ToString("F2")), Renglon = Convert.ToString(linea++), ImporteIva = "0", Ref3 = ref3.ToString(), Cuenta = claveContableCargo.Valor, Division = organizacion.Division, ArchivoFolio = archivoFolio, CentroCosto = claveContableCargo.Valor.StartsWith(PrefijoCuentaCentroCosto) || claveContableCargo.Valor.StartsWith(PrefijoCuentaCentroGasto) ? parametroCentroCosto.Valor : string.Empty, //PesoOrigen = peso, TipoDocumento = textoDocumento, ClaseDocumento = postFijoRef3, ComplementoRef1 = string.Empty, Concepto = String.Format("{0}-{1} CABEZAS {2} kgs", tipoMovimiento, ganadoIntensivo.Cabezas, pesoMuerteTotal), Sociedad = organizacion.Sociedad, Segmento = string.Format("{0}{1}", PrefijoSegmento, organizacion.Sociedad), }; PolizaInfo polizaSalida = GeneraRegistroPoliza(datos); polizasSalidaMuerteIntensiva.Add(polizaSalida); datos = new DatosPolizaInfo { NumeroReferencia = numeroReferencia, FechaEntrada = fecha, Folio = ganadoIntensivo.FolioTicket.ToString(), Importe = string.Format("{0}", (ganadoIntensivoCostoInfo.Importe * -1).ToString("F2")), Renglon = Convert.ToString(linea++), ImporteIva = "0", Ref3 = ref3.ToString(), Cuenta = claveContableAbono.Valor, ArchivoFolio = archivoFolio, Division = organizacion.Division, // PesoOrigen = peso, TipoDocumento = textoDocumento, ClaseDocumento = postFijoRef3, Concepto = String.Format("{0}-{1}, CABEZAS, {2} kgs", tipoMovimiento, ganadoIntensivo.Cabezas, pesoMuerteTotal), Sociedad = organizacion.Sociedad, Segmento = string.Format("{0}{1}", PrefijoSegmento, organizacion.Sociedad), }; polizaSalida = GeneraRegistroPoliza(datos); polizasSalidaMuerteIntensiva.Add(polizaSalida); } } } return(polizasSalidaMuerteIntensiva); }
/// <summary> /// Metodo que da salida por venta al ganado intensivo cuano se selcciona tipoventa Externo /// </summary> /// <param name="salidaIndividual"></param> /// <returns></returns> internal MemoryStream GuardarSalidaGanadoVentaIntensiva(SalidaIndividualInfo salidaIndividual) { MemoryStream retorno = null; try { PolizaAbstract poliza; IList <PolizaInfo> polizaSalidaVenta; TicketInfo Ticket = new TicketInfo(); CorralInfo corralInfo = new CorralInfo(); CorralBL corralB = new CorralBL(); GanadoIntensivoBL salidaGanadoCosto = new GanadoIntensivoBL(); GanadoIntensivoInfo salidaGanadoInfo = new GanadoIntensivoInfo(); corralInfo = corralB.ObtenerCorralActivoPorCodigo(salidaIndividual.Organizacion, salidaIndividual.Corral); corralInfo.Organizacion = new OrganizacionInfo(); corralInfo.Organizacion.OrganizacionID = salidaIndividual.Organizacion; salidaGanadoInfo = salidaGanadoCosto.ObtenerMuerteGanadoIntensivo(corralInfo); salidaGanadoInfo.Organizacion = new OrganizacionInfo(); salidaGanadoInfo.Organizacion.OrganizacionID = salidaIndividual.Organizacion; salidaGanadoInfo.Observaciones = ""; Ticket.FolioTicket = salidaIndividual.FolioTicket; Ticket.Organizacion = salidaIndividual.Organizacion; var ventaGanadoBL = new VentaGanadoBL(); VentaGanadoInfo salidaPorVentaGanado = ventaGanadoBL.ObtenerVentaGanadoPorTicket(Ticket); var loteBL = new LoteBL(); CorralBL corralBl = new CorralBL(); LoteInfo lote = loteBL.ObtenerPorID(salidaPorVentaGanado.LoteID); int iCabezasTotalLote = lote.Cabezas; lote.Cabezas -= salidaIndividual.NumeroDeCabezas; //lote.Corral = corralBl.ObtenerCorralPorLoteID(lote.LoteID, salidaIndividual.Organizacion); //lote.Corral = corralBl.ObtenerCorralPorCodigo() using (var scope = new TransactionScope()) { Logger.Info(); var salidaIndividualDAL = new SalidaIndividualDAL(); var filtroActualizaCabezas = new FiltroActualizarCabezasLote { LoteIDOrigen = lote.LoteID, LoteIDDestino = 0, CabezasProcesadas = salidaIndividual.NumeroDeCabezas, UsuarioModificacionID = salidaIndividual.Usuario }; loteBL.ActualizarCabezasProcesadas(filtroActualizaCabezas); salidaGanadoInfo.ListaGanadoIntensivoCosto = new List <GanadoIntensivoCostoInfo>(); foreach ( var entradaCosteo in salidaGanadoInfo.EntradaGanadoCosteo.ListaCostoEntrada.OrderBy(id => id.Costo.CostoID)) { var costoInt = new GanadoIntensivoCostoInfo(); costoInt.Costos = new CostoInfo(); costoInt.Costos = entradaCosteo.Costo; costoInt.Costos.ImporteCosto = (entradaCosteo.Importe / salidaGanadoInfo.EntradaGanado.CabezasRecibidas) * salidaIndividual.NumeroDeCabezas; costoInt.Importe = costoInt.Costos.ImporteCosto; salidaGanadoInfo.ListaGanadoIntensivoCosto.Add(costoInt); } salidaGanadoInfo.TipoMovimientoID = TipoMovimiento.SalidaVentaIntensivo; //salidaIndividualDAL.GuardarSalidaIndividualGanadoVenta(salidaIndividual); salidaGanadoInfo.TotalCabezas = salidaIndividual.NumeroDeCabezas; salidaGanadoInfo.FolioTicket = salidaIndividual.FolioTicket; salidaGanadoInfo.TipoFolio = TipoFolio.VentaGanadoIntensivo; salidaGanadoInfo.PesoBruto = salidaIndividual.PesoBruto; salidaGanadoInfo.UsuarioCreacionID = salidaIndividual.Usuario; salidaGanadoInfo.Organizacion.OrganizacionID = salidaIndividual.Organizacion; salidaGanadoInfo.CabezasText = salidaIndividual.NumeroDeCabezas.ToString(); salidaGanadoCosto.Guardar(salidaGanadoInfo); #region Poliza List <ContenedorVentaGanado> ventasGanado = ventaGanadoBL.ObtenerVentaGanadoIntensivoPorTicketPoliza(Ticket); if (ventasGanado != null && ventasGanado.Any()) { poliza = FabricaPoliza.ObtenerInstancia().ObtenerTipoPoliza(TipoPoliza.SalidaVentaIntensiva); for (int i = 0; i < ventasGanado.Count; i++) { ventasGanado[i].EntradaGandoId = salidaGanadoInfo.EntradaGanado.EntradaGanadoID; ventasGanado[i].OrganizacionId = Ticket.Organizacion; ventasGanado[i].Lote = lote; } 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.SalidaVentaIntensiva); } } // Genera el xml y lo guarda en la ruta especificada en la configuración var facturaBl = new FacturaBL(); facturaBl.GenerarDatosFacturaVentaDeGanadoIntensivo(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); } }
private void GenerarMovimientosAnimalesMuertos(List <AnimalInfo> animalesMuertos, GanadoIntensivoInfo ganadoIntensivo, decimal pesoMuertoTotal) { var animalMovimientoBL = new AnimalMovimientoBL(); var operadorBL = new OperadorBL(); var animalBL = new AnimalBL(); var listaAnimalesMuertos = new List <AnimalInfo>(); int pesoPromedio = (int)pesoMuertoTotal / ganadoIntensivo.Cabezas; foreach (var animalMuerto in animalesMuertos) { var animalInfo = animalBL.ObtenerAnimalAnimalID(animalMuerto.AnimalID); AnimalMovimientoInfo ultimoMovimientoAnimal = null; List <AnimalMovimientoInfo> ultimosMovimiento = animalMovimientoBL.ObtenerUltimoMovimientoAnimal(new List <AnimalInfo> { animalInfo }); if (ultimosMovimiento != null && ultimosMovimiento.Any()) { ultimoMovimientoAnimal = ultimosMovimiento.OrderByDescending(ani => ani.AnimalMovimientoID).FirstOrDefault(); } /* Insertamos el movimiento de Muerte */ OperadorInfo operador = operadorBL.ObtenerPorUsuarioId(ganadoIntensivo.UsuarioCreacionID, ganadoIntensivo.Organizacion.OrganizacionID); /* Se genera el animal Movimiento para almacenarlo*/ if (ultimoMovimientoAnimal != null) { var animalMovimientoInfo = new AnimalMovimientoInfo { AnimalID = animalInfo.AnimalID, OrganizacionID = ultimoMovimientoAnimal.OrganizacionID, CorralID = ultimoMovimientoAnimal.CorralID, LoteID = ultimoMovimientoAnimal.LoteID, Peso = pesoPromedio, Temperatura = 0, TipoMovimientoID = (int)TipoMovimiento.SalidaPorVenta, TrampaID = ultimoMovimientoAnimal.TrampaID, OperadorID = operador != null ? operador.OperadorID : 0, Observaciones = ganadoIntensivo.Observaciones, Activo = EstatusEnum.Activo, UsuarioCreacionID = ganadoIntensivo.UsuarioCreacionID }; /* Se almacena el animalMovimiento */ animalMovimientoBL.GuardarAnimalMovimiento(animalMovimientoInfo); animalInfo.UsuarioModificacionID = ganadoIntensivo.UsuarioCreacionID; /* Se da de baja el animal */ animalBL.InactivarAnimal(animalInfo); /* Enviar al historico el animal inactivo */ listaAnimalesMuertos.Add(animalInfo); } } if (listaAnimalesMuertos.Any()) { animalBL.EnviarAHistorico(listaAnimalesMuertos); } }