private void LLenarComboDivision(bool nuevo) { if (nuevo) { var organizacionPL = new OrganizacionPL(); var listDivision = organizacionPL.ObtenerTipoGanaderas(); if (listDivision != null && listDivision.Any()) { AgregarElementoInicialDivision(listDivision); Contexto.ListDivision = listDivision; } } else { var list = new OrganizacionInfo { OrganizacionID = Contexto.Division.OrganizacionID, Descripcion = Contexto.Division.Descripcion }; Contexto.ListDivision.Insert(0, list); cboDivision.SelectedIndex = 0; } }
/// <summary> /// Obtiene todos los almacenes por los tipo de almacen y organizacion. /// </summary> /// <param name="tiposAlmacen"></param> /// <param name="organizacion"></param> /// <returns></returns> public List <AlmacenInfo> ObtenerAlmacenPorTiposAlmacen(List <TipoAlmacenEnum> tiposAlmacen, OrganizacionInfo organizacion) { List <AlmacenInfo> almacenes = null; try { if (tiposAlmacen != null && tiposAlmacen.Count > 0) { Logger.Info(); var almacenBl = new AlmacenBL(); almacenes = almacenBl.ObtenerAlmacenPorTiposAlmacen(tiposAlmacen, organizacion); } } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } return(almacenes); }
/// <summary> /// Obtiene la lista de premezclas por organizacion /// </summary> /// <param name="organizacion"></param> /// <returns></returns> internal List <PremezclaInfo> ObtenerPorOrganizacion(OrganizacionInfo organizacion) { try { List <PremezclaInfo> result = null; try { Logger.Info(); Dictionary <string, object> parametros = AuxPremezclaDAL.ObtenerParametrosPorOrganizacion(organizacion); DataSet ds = Retrieve("Premezcla_ObtenerPorOrganizacionID", parametros); if (ValidateDataSet(ds)) { result = MapPremezclaDAL.ObtenerTodos(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); } catch (Exception ex) { Logger.Error(ex); } return(null); }
/// <summary> /// Obtiene un lista paginada de organizaciones /// </summary> /// <param name="filtro"></param> /// <param name="dependencias"> </param> /// <returns></returns> public OrganizacionInfo ObtenerPorDependenciasOrigenID(OrganizacionInfo filtro , IList <IDictionary <IList <String>, Object> > dependencias) { OrganizacionInfo resultadoOrganizacion; try { Logger.Info(); var organizacionBL = new OrganizacionBL(); resultadoOrganizacion = organizacionBL.ObtenerPorDependenciasOrigenID(filtro, dependencias); } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } return(resultadoOrganizacion); }
internal static Dictionary <string, object> ObtenerParametrosPorTipoOrigen(OrganizacionInfo filtro, IList <IDictionary <IList <string>, object> > dependencias) { Dictionary <string, object> parametros; try { Logger.Info(); parametros = new Dictionary <string, object> { { "@OrganizacionID", filtro.OrganizacionID } }; AuxDAL.ObtenerDependencias(parametros, dependencias); } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } return(parametros); }
/// <summary> /// Metodo que actualiza un Organizacion /// </summary> /// <param name="info"></param> internal void Actualizar(OrganizacionInfo info) { try { Dictionary <string, object> parameters = AuxOrganizacionDAL.ObtenerParametrosActualizar(info); Update("[dbo].[Organizacion_Actualizar]", parameters); } 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 ResultadoInfo <OrganizacionInfo> ObtenerPorDependencia(PaginacionInfo pagina , OrganizacionInfo organizacionInfo , IList <IDictionary <IList <string>, object> > dependencias) { ResultadoInfo <OrganizacionInfo> resultadoOrganizacion; try { Logger.Info(); var organizacionBL = new OrganizacionBL(); resultadoOrganizacion = organizacionBL.ObtenerPorDependencias(pagina, organizacionInfo, dependencias); } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } return(resultadoOrganizacion); }
/// <summary> /// Obtener la ayuda de seleccion de organizacion /// </summary> private void AgregarAyudaOrganizacion(StackPanel stackPanel) { try { var organizacionInfo = new OrganizacionInfo { Activo = EstatusEnum.Activo }; skAyudaOrganizacion = new SKAyuda <OrganizacionInfo>(200, false, organizacionInfo , "PropiedadClaveCatalogoParametroOrganizacion" , "PropiedadDescripcionCatalogoParametroOrganizacion", "", false, 50, 9, true) { AyudaPL = new OrganizacionPL(), MensajeClaveInexistente = Properties.Resources.ReporteBitacoraLlegada_AyudaOrganizacionClaveInexistente, MensajeBusquedaCerrar = Properties.Resources.ReporteBitacoraLlegada_AyudaOrganizacionSalirSinSeleccionar, MensajeBusqueda = Properties.Resources.ReporteBitacoraLlegada_AyudaOrganizacionMensajeBusqueda, MensajeAgregar = Properties.Resources.ReporteBitacoraLlegada_AyudaOrganizacionMensajeAgregar, TituloEtiqueta = Properties.Resources.ReporteBitacoraLlegada_AyudaOrganizacionTituloEtiqueta, TituloPantalla = Properties.Resources.ReporteBitacoraLlegada_AyudaOrganizacionTituloPantalla }; skAyudaOrganizacion.ObtenerDatos += ObtenerDatosOrganizacion; skAyudaOrganizacion.LlamadaMetodosNoExistenDatos += LimpiarOrganizacion; skAyudaOrganizacion.AsignaTabIndex(0); stackPanel.Children.Clear(); stackPanel.Children.Add(skAyudaOrganizacion); skAyudaOrganizacion.TabIndex = 0; } catch (Exception ex) { Logger.Error(ex); } }
/// <summary> /// Asigna los costos de los subproductos al costo /// ya generado /// </summary> /// <param name="lista"></param> /// <param name="productoId"></param> /// <param name="organizacionID"> </param> private void AsignarCostosSubProductos(List <ReporteInventarioMateriaPrimaInfo> lista, int productoId, int organizacionID) { var productoBL = new ProductoBL(); var producto = new ProductoInfo { ProductoId = productoId }; producto = productoBL.ObtenerPorID(producto); if (producto != null) { switch ((FamiliasEnum)producto.Familia.FamiliaID) { case FamiliasEnum.Premezclas: var organizacion = new OrganizacionInfo { OrganizacionID = organizacionID, Activo = EstatusEnum.Activo }; var almacenBL = new AlmacenBL(); var tiposAlmacen = new List <TipoAlmacenEnum> { TipoAlmacenEnum.MateriasPrimas }; List <AlmacenInfo> almacenes = almacenBL.ObtenerAlmacenPorTiposAlmacen(tiposAlmacen, organizacion); var almacenMovimientoBL = new AlmacenMovimientoBL(); IEnumerable <AlmacenMovimientoSubProductosModel> productosPremezcla = lista.Select(x => new AlmacenMovimientoSubProductosModel { FechaMovimiento = x.FechaMovimiento, ProductoID = productoId }); productosPremezcla = almacenMovimientoBL.ObtenerMovimientosSubProductos(productosPremezcla); if (productosPremezcla != null) { var premezclaDetalleBL = new PremezclaBL(); List <PremezclaInfo> premezclas = premezclaDetalleBL.ObtenerPorOrganizacionDetalle(organizacion); PremezclaInfo premezcla; List <ReporteInventarioMateriaPrimaInfo> entradasMateriaPrima = lista.Where(entrada => entrada.CostoId > 0).ToList(); if (entradasMateriaPrima != null) { ReporteInventarioMateriaPrimaInfo entradaMateriaPrima; for (var index = 0; index < entradasMateriaPrima.Count; index++) { premezcla = premezclas.FirstOrDefault( id => id.Producto.ProductoId == productoId); if (premezcla != null) { entradaMateriaPrima = entradasMateriaPrima[index]; int almacenID = productosPremezcla.Where( almMov => almMov.AlmacenMovimientoID == entradaMateriaPrima.AlmacenMovimientoID). Select(id => id.AlmacenID).FirstOrDefault(); if (almacenes.Any(id => id.AlmacenID == almacenID)) { AlmacenMovimientoSubProductosModel almacenMovimientoSubProductosModel = productosPremezcla.FirstOrDefault( prod => prod.ProductoID == premezcla.Producto.ProductoId && prod.FechaMovimiento.ToShortDateString().Equals( entradaMateriaPrima.FechaMovimiento.ToShortDateString())); if (almacenMovimientoSubProductosModel != null) { IEnumerable <AlmacenMovimientoSubProductosModel> subProductos = productosPremezcla .Join(premezcla.ListaPremezclaDetalleInfos, pp => pp.ProductoID, pd => pd.Producto.ProductoId, (pp, pd) => pp).Where( fechaInicio => fechaInicio.AlmacenMovimientoID == (almacenMovimientoSubProductosModel.AlmacenMovimientoID + 1) && fechaInicio.FechaMovimiento.ToShortDateString().Equals( entradaMateriaPrima.FechaMovimiento.ToShortDateString())); if (subProductos != null && subProductos.Any()) { entradaMateriaPrima.ImporteSubProductos = subProductos.Sum(imp => imp.Importe); } } } } } } } break; } } }
internal static Dictionary <string, object> ObtenerParametrosGuardarConsumoAlimento(List <AlmacenInventarioInfo> listaActualizadaProductos, OrganizacionInfo organizacion) { Dictionary <string, object> parametros; try { Logger.Info(); var xml = new XElement("ROOT", from detalle in listaActualizadaProductos select new XElement("AlmacenInventario", new XElement("OrganizacionID", organizacion.OrganizacionID), new XElement("AlmacenID", detalle.AlmacenID), new XElement("ProductoID", detalle.ProductoID), new XElement("Cantidad", detalle.Cantidad), new XElement("Importe", detalle.Importe), new XElement("UsuarioCreacionID", organizacion.UsuarioCreacionID) )); parametros = new Dictionary <string, object> { { "@XmlAlmacenInventario", xml.ToString() } }; return(parametros); } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
/// <summary> /// Constructor por default de la pantalla /// </summary> public EnvioDeAlimento() { try { InitializeComponent(); InicializaContexto(); _envioAlimentoPL = new EnvioAlimentoPL(); _tiposOrganizacionDestino = new List <TipoOrganizacionInfo>(); _tiposOrganizacionDestino = new TipoOrganizacionPL().ObtenerTodos().Where( tipo => tipo.TipoOrganizacionID != TipoOrganizacion.Ganadera.GetHashCode()).Where( tipo2 => tipo2.TipoOrganizacionID != TipoOrganizacion.Corporativo.GetHashCode()).ToList(); if (_tiposOrganizacionDestino != null) { EnvioAlimento.Destino.ListaTiposOrganizacion = _tiposOrganizacionDestino; } EnvioAlimento.Destino.Activo = EstatusEnum.Activo; // this.skAyudaProducto.ObjetoNegocio = new ProductoPL(); this.skAyudaProducto.AyudaConDatos += (sender2, args) => { try { if (EnvioAlimento.Producto != null) { EnvioAlimento.Producto.SubfamiliaId = int.Parse(cmbSubFamilia.SelectedValue.ToString()); if (EnvioAlimento.Producto.ProductoId == 0) { cmbAlmacen.ItemsSource = new List <AlmacenInfo>(); } } } catch (Exception ex) { Logger.Error(ex); SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal], Properties.Resources.Tratamiento_ErrorInicial, MessageBoxButton.OK, MessageImage.Error); } }; this.skAyudaProducto.AyudaLimpia += skAyudaProducto_AyudaLimpia; this.skAyudaDestino.txtClave.Focus(); skAyudaDestino.AyudaLimpia += skAyudaDestino_AyudaLimpia; skAyudaDestino.ObjetoNegocio = new OrganizacionPL(); skAyudaDestino.AyudaConDatos += (o, args) => { try { if (_tiposOrganizacionDestino != null) { EnvioAlimento.Destino.ListaTiposOrganizacion = this._tiposOrganizacionDestino; } OrganizacionInfo destino = (OrganizacionInfo)skAyudaDestino.DataContext; if (destino.Activo == EstatusEnum.Inactivo) { EnvioAlimento.Destino = new OrganizacionInfo(); destino = new OrganizacionInfo(); destino.Activo = EstatusEnum.Activo; destino.ListaTiposOrganizacion = this._tiposOrganizacionDestino; EnvioAlimento.Destino.Activo = EstatusEnum.Activo; EnvioAlimento.Destino.ListaTiposOrganizacion = this._tiposOrganizacionDestino; skAyudaDestino.LimpiarCampos(); skAyudaDestino.txtClave.Focus(); SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal], Properties.Resources.EnvioAlimento_MsgOrganizacionDestinoNoEncontrada, MessageBoxButton.OK, MessageImage.Stop); } } catch (Exception ex) { Logger.Error(ex); SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal], Properties.Resources.Tratamiento_ErrorInicial, MessageBoxButton.OK, MessageImage.Error); } }; this.OcultarLote(System.Windows.Visibility.Hidden); } catch (Exception ex) { Logger.Error(ex); } }
/// <summary> /// Obtiene todos los almacenes por los tipo de almacen y organizacion. /// </summary> /// <param name="tiposAlmacen"></param> /// <param name="organizacion"></param> /// <returns></returns> internal List <AlmacenInfo> ObtenerAlmacenPorTiposAlmacen(List <TipoAlmacenEnum> tiposAlmacen, OrganizacionInfo organizacion) { List <AlmacenInfo> listaAlmacen = null; try { if (tiposAlmacen != null && tiposAlmacen.Count > 0) { IList <AlmacenInfo> listaAlmacenes = ObtenerAlmacenPorOrganizacion(organizacion.OrganizacionID); if (listaAlmacenes != null && listaAlmacenes.Count > 0) { listaAlmacen = new List <AlmacenInfo>(); foreach (var tipoAlmacen in tiposAlmacen) { listaAlmacen.AddRange((from almacen in listaAlmacenes where almacen.TipoAlmacen.TipoAlmacenID == (int)tipoAlmacen select almacen)); } } } } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } return(listaAlmacen); }
internal static Dictionary <string, object> ObtenerParametrosObtenerProductosAlmacenInventario(AlmacenInfo almacen, OrganizacionInfo organizacion) { try { Logger.Info(); var parametros = new Dictionary <string, object> { { "@AlmacenID", almacen.AlmacenID }, { "@OrganizacionID", organizacion.OrganizacionID } }; return(parametros); } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
/// <summary> /// Obtiene la descripcion de la sociedad, su id y la division /// </summary> /// <param name="reader"></param> /// <returns></returns> internal static OrganizacionInfo ObtenerOrganizacionSociedadDivision(IDataReader reader) { OrganizacionInfo organizacion = null; try { Logger.Info(); while (reader.Read()) { organizacion = new OrganizacionInfo { OrganizacionID = Convert.ToInt32(reader["OrganizacionId"]), Sociedad = Convert.ToString(reader["Sociedad"]), Division = Convert.ToString(reader["Division"]), TituloPoliza = Convert.ToString(reader["TituloPoliza"]), TipoOrganizacion = new TipoOrganizacionInfo { TipoOrganizacionID = Convert.ToInt32(reader["TipoOrganizacionID"]), Descripcion = Convert.ToString(reader["TipoOrganizacion"]), TipoProceso = new TipoProcesoInfo { TipoProcesoID = Convert.ToInt32( reader[ "TipoProcesoID"]), Descripcion = Convert.ToString(reader[ "DescripcionTipoProceso" ]), }, DescripcionTipoProceso = Convert.ToString( reader["DescripcionTipoProceso"]) }, Descripcion = Convert.ToString(reader["Descripcion"]), Direccion = Convert.ToString(reader["Direccion"]), Activo = Convert.ToBoolean(reader["Activo"]).BoolAEnum(), Iva = new IvaInfo { IvaID = Convert.ToInt32(reader["IvaID"]), Descripcion = Convert.ToString(reader["DescripcionIva"]), TasaIva = Convert.ToDecimal(reader["TasaIva"]), IndicadorIvaPagar = Convert.ToString(reader["IndicadorIvaPagar"]), IndicadorIvaRecuperar = Convert.ToString(reader["IndicadorIvaRecuperar"]), CuentaPagar = new CuentaInfo { ClaveCuenta = Convert.ToString( reader["CuentaPagar"]) }, CuentaRecuperar = new CuentaInfo { ClaveCuenta = Convert.ToString( reader["CuentaRecuperar"]) } } }; } } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } return(organizacion); }
internal int GuardarConsumoAlimento(List <AlmacenInventarioInfo> listaActualizadaProductos, OrganizacionInfo organizacion) { try { Logger.Info(); var almacenDAL = new AlmacenDAL(); int resultado = almacenDAL.GuardarConsumoAlimento(listaActualizadaProductos, organizacion); return(resultado); } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
/// <summary> /// Genera la conciliacion de SAP contra SIAP /// </summary> /// <param name="polizasSAP"></param> /// <param name="polizasSIAP"></param> private void GenerarConciliacion(List <PolizaSAPInfo> polizasSAP, List <PolizaInfo> polizasSIAP) { OrganizacionInfo organizacion = ObtenerOrganizacion(); PolizaInfo polizaSIAP; StringBuilder sb; List <PolizaSAPInfo> polizasFaltantes; var conjuntoPolizas = new HashSet <string>(); HashSet <string> prefijosCuenta; switch (Contexto.TipoCuenta) { case 1: prefijosCuenta = new HashSet <string> { "1151", "2104", "4001", "5001", }; break; case 2: prefijosCuenta = new HashSet <string> { "1154", }; break; default: prefijosCuenta = new HashSet <string> { "1153", "1156", }; break; } polizasSIAP = polizasSIAP.Where(x => x.Cuenta.Length > 0 && prefijosCuenta.Contains(x.Cuenta.Substring(0, 4))).ToList(); for (var indexPolizaSIAP = 0; indexPolizaSIAP < polizasSIAP.Count; indexPolizaSIAP++) { polizaSIAP = polizasSIAP[indexPolizaSIAP]; sb = new StringBuilder(); sb.AppendFormat("{0}.{1}.{2}", polizaSIAP.FechaDocumento.Substring(6, 2), polizaSIAP.FechaDocumento.Substring(4, 2), polizaSIAP.FechaDocumento.Substring(0, 4)); polizasFaltantes = polizasSAP.Where( sap => sap.Cuenta.Trim().Equals(polizaSIAP.Cuenta.Trim()) && !sap.Cuenta.Trim().Equals(organizacion.Iva.CuentaRecuperar.ClaveCuenta) && sap.ClaseDocumento.Trim().Equals(polizaSIAP.ClaseDocumento.Trim()) && polizaSIAP.Concepto.Trim().Contains(sap.Concepto.Trim()) && polizaSIAP.Referencia3.Trim().Contains(sap.Ref3.Trim()) && sap.Sociedad.Trim().Equals(organizacion.Sociedad.Trim()) && sap.Division.Trim().Equals(organizacion.Division.Trim()) && sap.FechaDocumento.Trim().Equals(sb.ToString())).ToList(); if (polizasFaltantes == null || !polizasFaltantes.Any()) { if (conjuntoPolizas.Contains(polizaSIAP.Referencia3)) { continue; } Contexto.Polizas.Add(polizaSIAP); } conjuntoPolizas.Add(polizaSIAP.Referencia3); } }
private IList <PolizaInfo> ObtenerPoliza(List <AnimalCostoInfo> costosAnimales) { var polizasSalidaMuerte = new List <PolizaInfo>(); var costosAgrupados = costosAnimales.Where(imp => imp.Importe > 0).GroupBy(costo => new { costo.CostoID, costo.AnimalID }) .Select(animal => new { Importe = animal.Sum(imp => imp.Importe), animal.Key.CostoID, animal.Key.AnimalID, Arete = animal.Select(ani => ani.Arete).FirstOrDefault(), FolioReferencia = animal.Select(folio => folio.FolioReferencia).FirstOrDefault(), FechaCosto = animal.Select(fecha => fecha.FechaCosto).FirstOrDefault(), OrganizacionID = animal.Select(org => org.OrganizacionID).FirstOrDefault() }).ToList(); if (costosAgrupados != null && costosAgrupados.Any()) { TipoPolizaInfo tipoPoliza = TiposPoliza.FirstOrDefault(clave => clave.TipoPolizaID == TipoPoliza.SalidaMuerte.GetHashCode()); if (tipoPoliza == null) { throw new ExcepcionServicio(string.Format("{0} {1}", "EL TIPO DE POLIZA", TipoPoliza.SalidaMuerte)); } string textoDocumento = tipoPoliza.TextoDocumento; string tipoMovimiento = tipoPoliza.ClavePoliza; string postFijoRef3 = tipoPoliza.PostFijoRef3; var 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(); } List <AnimalInfo> animales = costosAgrupados.Select(ani => new AnimalInfo { AnimalID = ani.AnimalID }).ToList(); List <AnimalMovimientoInfo> animalesMovimiento = ObtenerUltimoMovimiento(animales); for (var indexCostos = 0; indexCostos < costosAgrupados.Count; indexCostos++) { var costoAnimal = costosAgrupados[indexCostos]; CostoInfo costo = costos.FirstOrDefault( tipo => tipo.CostoID == costoAnimal.CostoID); if (costo == null) { costo = new CostoInfo(); } string numeroReferencia = costoAnimal.Arete; OrganizacionInfo organizacion = ObtenerOrganizacionIVA(costoAnimal.OrganizacionID); if (organizacion == null) { organizacion = new OrganizacionInfo { TipoOrganizacion = new TipoOrganizacionInfo() }; } 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.SalidaMuerte); if (claveContableCargo == null) { throw new ExcepcionServicio(string.Format("{0} {1}", "NO EXISTE CONFIGURACION PARA EL COSTO", costo.Descripcion)); } ParametroOrganizacionInfo parametroCentroCosto = ObtenerParametroOrganizacionPorClave(organizacion.OrganizacionID, ParametrosEnum.CTACENTROCOSTOENG.ToString()); if (parametroCentroCosto == null) { throw new ExcepcionServicio(string.Format("{0}", "CENTRO DE COSTO NO CONFIGURADO")); } int peso = animalesMovimiento.Where(kilos => kilos.AnimalID == costoAnimal.AnimalID && kilos.TipoMovimientoID == TipoMovimiento.Muerte.GetHashCode()) .Select(proyeccion => proyeccion.Peso).FirstOrDefault(); DateTime fecha = animalesMovimiento.Where(kilos => kilos.AnimalID == costoAnimal.AnimalID && kilos.TipoMovimientoID == TipoMovimiento.Muerte.GetHashCode()) .Select(proyeccion => proyeccion.FechaMovimiento).FirstOrDefault(); if (fecha != null && fecha > default(DateTime)) { string archivoFolio = ObtenerArchivoFolio(fecha); var datos = new DatosPolizaInfo { NumeroReferencia = numeroReferencia, FechaEntrada = fecha, Folio = numeroReferencia, Importe = string.Format("{0}", costoAnimal.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} {2} kgs", tipoMovimiento, numeroReferencia, peso), Sociedad = organizacion.Sociedad, Segmento = string.Format("{0}{1}", PrefijoSegmento, organizacion.Sociedad), }; PolizaInfo polizaSalida = GeneraRegistroPoliza(datos); polizasSalidaMuerte.Add(polizaSalida); datos = new DatosPolizaInfo { NumeroReferencia = numeroReferencia, FechaEntrada = fecha, Folio = numeroReferencia, Importe = string.Format("{0}", (costoAnimal.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} {2} kgs", tipoMovimiento, numeroReferencia, peso), Sociedad = organizacion.Sociedad, Segmento = string.Format("{0}{1}", PrefijoSegmento, organizacion.Sociedad), }; polizaSalida = GeneraRegistroPoliza(datos); polizasSalidaMuerte.Add(polizaSalida); } } } return(polizasSalidaMuerte); }
private IList <PolizaInfo> ObtenerPoliza(GastoInventarioInfo gastoInventario) { var polizasGastosInventario = new List <PolizaInfo>(); var costos = new List <int> { gastoInventario.Costo.CostoID }; var retencionBL = new RetencionBL(); var retenciones = retencionBL.ObtenerRetencionesConCosto(costos); IList <CuentaSAPInfo> cuentasSap = ObtenerCuentasSAP(); TipoPolizaInfo tipoPoliza = TiposPoliza.FirstOrDefault(clave => clave.TipoPolizaID == TipoPoliza.GastosInventario.GetHashCode()); if (tipoPoliza == null) { throw new ExcepcionServicio(string.Format("{0} {1}", "EL TIPO DE POLIZA", TipoPoliza.GastosInventario)); } string textoDocumento = tipoPoliza.TextoDocumento; string tipoMovimiento = tipoPoliza.ClavePoliza; string postFijoRef3 = tipoPoliza.PostFijoRef3; 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; string numeroReferencia = ObtenerNumeroReferenciaFolio(gastoInventario.FolioGasto); DateTime fecha = gastoInventario.FechaGasto; string archivoFolio = ObtenerArchivoFolio(fecha); OrganizacionInfo organizacion = ObtenerOrganizacionIVA(gastoInventario.Organizacion.OrganizacionID); if (organizacion == null) { organizacion = new OrganizacionInfo { TipoOrganizacion = new TipoOrganizacionInfo() }; } bool esProveedor = gastoInventario.Proveedor != null && gastoInventario.Proveedor.ProveedorID > 0; bool tieneRetencion = gastoInventario.Retencion; var renglon = 0; ClaveContableInfo claveContableInfo = ObtenerCuentaInventario(gastoInventario.Costo , gastoInventario.Organizacion.OrganizacionID , 0); CuentaSAPInfo cuentaSapProvision = null; if (!esProveedor) { cuentaSapProvision = cuentasSap.FirstOrDefault( clave => clave.CuentaSAPID == gastoInventario.CuentaSAP.CuentaSAPID); if (cuentaSapProvision == null) { cuentaSapProvision = cuentasSap.FirstOrDefault( clave => clave.CuentaSAP.Equals(gastoInventario.CuentaGasto, StringComparison.InvariantCultureIgnoreCase)); if (cuentaSapProvision == null) { throw new ExcepcionServicio( string.Format("No se encuentra configurada la cuenta de provisión, para el costo {0}", gastoInventario.Costo.Descripcion)); } } } string complementoConcepto; if (gastoInventario.Corral != null) { complementoConcepto = string.Format("Corral {0}", gastoInventario.Corral.Codigo); } else { complementoConcepto = string.Format("{0} Corrales", gastoInventario.TotalCorrales); } PolizaInfo polizaEntrada; if (esProveedor) { if (!gastoInventario.IVA && !tieneRetencion) { renglon++; var datos = new DatosPolizaInfo { NumeroReferencia = numeroReferencia, FechaEntrada = gastoInventario.FechaGasto, Folio = gastoInventario.FolioGasto.ToString(CultureInfo.InvariantCulture), ClaseDocumento = postFijoRef3, Importe = string.Format("{0}", Cancelacion ? (gastoInventario.Importe * -1).ToString("F2") : gastoInventario.Importe.ToString("F2")), Renglon = Convert.ToString(renglon), Division = organizacion.Division, ImporteIva = "0", Ref3 = ref3.ToString(), Cuenta = claveContableInfo.Valor, ArchivoFolio = archivoFolio, DescripcionCosto = claveContableInfo.Descripcion, PesoOrigen = 0, TipoDocumento = textoDocumento, Concepto = String.Format("{0}-{1},{2}", tipoMovimiento, gastoInventario.FolioGasto , complementoConcepto), Sociedad = organizacion.Sociedad, Segmento = string.Format("{0}{1}", PrefijoSegmento, organizacion.Sociedad), }; polizaEntrada = GeneraRegistroPoliza(datos); polizasGastosInventario.Add(polizaEntrada); renglon++; datos = new DatosPolizaInfo { NumeroReferencia = numeroReferencia, FechaEntrada = gastoInventario.FechaGasto, Folio = gastoInventario.FolioGasto.ToString(CultureInfo.InvariantCulture), ClaveProveedor = gastoInventario.Proveedor.CodigoSAP, ClaseDocumento = postFijoRef3, Importe = string.Format("{0}", Cancelacion ? gastoInventario.Importe.ToString("F2") : (gastoInventario.Importe * -1).ToString("F2")), Renglon = Convert.ToString(renglon), ImporteIva = "0", Ref3 = ref3.ToString(), ArchivoFolio = archivoFolio, DescripcionCosto = gastoInventario.Proveedor.Descripcion, PesoOrigen = 0, Division = organizacion.Division, TipoDocumento = textoDocumento, Concepto = String.Format("{0}-{1},{2}", tipoMovimiento, gastoInventario.FolioGasto , complementoConcepto), Sociedad = organizacion.Sociedad, Segmento = string.Format("{0}{1}", PrefijoSegmento, organizacion.Sociedad), }; polizaEntrada = GeneraRegistroPoliza(datos); polizasGastosInventario.Add(polizaEntrada); } else { if (gastoInventario.IVA) { CuentaSAPInfo cuentaIva = cuentasSap.FirstOrDefault( clave => clave.CuentaSAP.Equals(organizacion.Iva.CuentaRecuperar.ClaveCuenta)); if (cuentaIva == null) { throw new ExcepcionServicio(string.Format("No se encuentra configurada la cuenta de iva, para la organización.")); } renglon++; var importeIva = gastoInventario.Importe * (organizacion.Iva.TasaIva / 100); var datos = new DatosPolizaInfo { NumeroReferencia = numeroReferencia, FechaEntrada = gastoInventario.FechaGasto, Folio = gastoInventario.FolioGasto.ToString(CultureInfo.InvariantCulture), Division = organizacion.Division, ClaseDocumento = postFijoRef3, Importe = string.Format("{0}", Cancelacion ? (gastoInventario.Importe * -1).ToString("F2") : gastoInventario.Importe.ToString("F2")), Renglon = Convert.ToString(renglon), ImporteIva = "0", Ref3 = ref3.ToString(), Cuenta = claveContableInfo.Valor, ArchivoFolio = archivoFolio, DescripcionCosto = claveContableInfo.Descripcion, PesoOrigen = 0, TipoDocumento = textoDocumento, Concepto = String.Format("{0}-{1},{2}", tipoMovimiento, gastoInventario.FolioGasto , complementoConcepto), Sociedad = organizacion.Sociedad, Segmento = string.Format("{0}{1}", PrefijoSegmento, organizacion.Sociedad), }; polizaEntrada = GeneraRegistroPoliza(datos); polizasGastosInventario.Add(polizaEntrada); renglon++; datos = new DatosPolizaInfo { NumeroReferencia = numeroReferencia, FechaEntrada = gastoInventario.FechaGasto, Folio = gastoInventario.FolioGasto.ToString(CultureInfo.InvariantCulture), ClaseDocumento = postFijoRef3, Importe = string.Format("{0}", Cancelacion ? (importeIva * -1).ToString("F2") : importeIva.ToString("F2")) , Renglon = Convert.ToString(renglon), ImporteIva = gastoInventario.Importe.ToString("F2"), ClaveImpuesto = ClaveImpuesto, CondicionImpuesto = CondicionImpuesto, IndicadorImpuesto = organizacion.Iva.IndicadorIvaRecuperar, Ref3 = ref3.ToString(), Division = organizacion.Division, Cuenta = organizacion.Iva.CuentaRecuperar.ClaveCuenta, ArchivoFolio = archivoFolio, DescripcionCosto = cuentaIva.Descripcion, PesoOrigen = 0, TipoDocumento = textoDocumento, Concepto = String.Format("{0}-{1},{2}", tipoMovimiento, gastoInventario.FolioGasto , complementoConcepto), Sociedad = organizacion.Sociedad, Segmento = string.Format("{0}{1}", PrefijoSegmento, organizacion.Sociedad), }; polizaEntrada = GeneraRegistroPoliza(datos); polizasGastosInventario.Add(polizaEntrada); renglon++; datos = new DatosPolizaInfo { NumeroReferencia = numeroReferencia, FechaEntrada = gastoInventario.FechaGasto, Folio = gastoInventario.FolioGasto.ToString(CultureInfo.InvariantCulture), Division = organizacion.Division, ClaveProveedor = gastoInventario.Proveedor.CodigoSAP, ClaseDocumento = postFijoRef3, Importe = string.Format("{0}", Cancelacion ? (gastoInventario.Importe + importeIva).ToString("F2") : ((gastoInventario.Importe + importeIva) * -1).ToString("F2")), Renglon = Convert.ToString(renglon), ImporteIva = "0", Ref3 = ref3.ToString(), ArchivoFolio = archivoFolio, DescripcionCosto = gastoInventario.Proveedor.Descripcion, PesoOrigen = 0, TipoDocumento = textoDocumento, Concepto = String.Format("{0}-{1},{2}", tipoMovimiento, gastoInventario.FolioGasto , complementoConcepto), Sociedad = organizacion.Sociedad, Segmento = string.Format("{0}{1}", PrefijoSegmento, organizacion.Sociedad), }; polizaEntrada = GeneraRegistroPoliza(datos); polizasGastosInventario.Add(polizaEntrada); } if (tieneRetencion) { RetencionInfo retencion; if (retenciones != null && retenciones.Any()) { retencion = retenciones.Where( costo => costo.CostoID.Equals(gastoInventario.Costo.CostoID)). Select(ret => ret).FirstOrDefault(); if (retencion == null) { throw new ExcepcionServicio(string.Format("No se encuentra configurada retención para el costo {0}", gastoInventario.Costo.Descripcion)); } } else { throw new ExcepcionServicio(string.Format("No se encuentra configurada retención para el costo {0}", gastoInventario.Costo.Descripcion)); } var parametrosRetencion = new StringBuilder(); parametrosRetencion.Append(String.Format("{0}{1}" , retencion.IndicadorRetencion , retencion.TipoRetencion)); var datos = new DatosPolizaInfo { NumeroReferencia = numeroReferencia, FechaEntrada = gastoInventario.FechaGasto, Folio = gastoInventario.FolioGasto.ToString(CultureInfo.InvariantCulture), Division = organizacion.Division, ClaveProveedor = gastoInventario.Proveedor.CodigoSAP, ClaseDocumento = postFijoRef3, IndicadorImpuesto = parametrosRetencion.ToString(), Importe = string.Format("{0}{1}", Cancelacion ? string.Empty : "-", "0"), Renglon = Convert.ToString(renglon), ImporteIva = "0", Ref3 = ref3.ToString(), CodigoRetencion = retencion.IndicadorImpuesto, TipoRetencion = retencion.IndicadorRetencion, ArchivoFolio = archivoFolio, DescripcionCosto = gastoInventario.Proveedor.Descripcion, PesoOrigen = 0, TipoDocumento = textoDocumento, Concepto = String.Format("{0}-{1},{2}", tipoMovimiento, gastoInventario.FolioGasto , complementoConcepto), Sociedad = organizacion.Sociedad, Segmento = string.Format("{0}{1}", PrefijoSegmento, organizacion.Sociedad), }; polizaEntrada = GeneraRegistroPoliza(datos); polizasGastosInventario.Add(polizaEntrada); if (!gastoInventario.IVA) { renglon++; datos = new DatosPolizaInfo { NumeroReferencia = numeroReferencia, FechaEntrada = gastoInventario.FechaGasto, Folio = gastoInventario.FolioGasto.ToString(CultureInfo.InvariantCulture), Division = organizacion.Division, ClaveProveedor = gastoInventario.Proveedor.CodigoSAP, ClaseDocumento = postFijoRef3, Importe = string.Format("{0}", Cancelacion ? gastoInventario.Importe.ToString("F2") : (gastoInventario.Importe * -1).ToString("F2")) , Renglon = Convert.ToString(renglon), ImporteIva = "0", Ref3 = ref3.ToString(), ArchivoFolio = archivoFolio, DescripcionCosto = gastoInventario.Proveedor.Descripcion, PesoOrigen = 0, TipoDocumento = textoDocumento, Concepto = String.Format("{0}-{1},{2}", tipoMovimiento, gastoInventario.FolioGasto , complementoConcepto), Sociedad = organizacion.Sociedad, Segmento = string.Format("{0}{1}", PrefijoSegmento, organizacion.Sociedad), }; polizaEntrada = GeneraRegistroPoliza(datos); polizasGastosInventario.Add(polizaEntrada); renglon++; datos = new DatosPolizaInfo { NumeroReferencia = numeroReferencia, FechaEntrada = gastoInventario.FechaGasto, Folio = gastoInventario.FolioGasto.ToString(CultureInfo.InvariantCulture), Division = organizacion.Division, ClaseDocumento = postFijoRef3, Importe = string.Format("{0}", Cancelacion ? (gastoInventario.Importe * -1).ToString("F2") : gastoInventario.Importe.ToString("F2")), Renglon = Convert.ToString(renglon), ImporteIva = "0", Ref3 = ref3.ToString(), Cuenta = claveContableInfo.Valor, ArchivoFolio = archivoFolio, DescripcionCosto = claveContableInfo.Descripcion, PesoOrigen = 0, TipoDocumento = textoDocumento, Concepto = String.Format("{0}-{1},{2}", tipoMovimiento, gastoInventario.FolioGasto , complementoConcepto), Sociedad = organizacion.Sociedad, Segmento = string.Format("{0}{1}", PrefijoSegmento, organizacion.Sociedad), }; polizaEntrada = GeneraRegistroPoliza(datos); polizasGastosInventario.Add(polizaEntrada); } } } } else { renglon++; var datos = new DatosPolizaInfo { NumeroReferencia = numeroReferencia, FechaEntrada = gastoInventario.FechaGasto, Folio = gastoInventario.FolioGasto.ToString(CultureInfo.InvariantCulture), Division = organizacion.Division, ClaseDocumento = postFijoRef3, Importe = string.Format("{0}", Cancelacion ? (gastoInventario.Importe * -1).ToString("F2") : gastoInventario.Importe.ToString("F2")), Renglon = Convert.ToString(renglon), ImporteIva = "0", Ref3 = ref3.ToString(), Cuenta = claveContableInfo.Valor, ArchivoFolio = archivoFolio, DescripcionCosto = claveContableInfo.Descripcion, PesoOrigen = 0, TipoDocumento = textoDocumento, Concepto = String.Format("{0}-{1},{2}", tipoMovimiento, gastoInventario.FolioGasto , complementoConcepto), Sociedad = organizacion.Sociedad, Segmento = string.Format("{0}{1}", PrefijoSegmento, organizacion.Sociedad), }; polizaEntrada = GeneraRegistroPoliza(datos); polizasGastosInventario.Add(polizaEntrada); renglon++; datos = new DatosPolizaInfo { NumeroReferencia = numeroReferencia, FechaEntrada = gastoInventario.FechaGasto, Folio = gastoInventario.FolioGasto.ToString(CultureInfo.InvariantCulture), Division = organizacion.Division, ClaseDocumento = postFijoRef3, Importe = string.Format("{0}", Cancelacion ? gastoInventario.Importe.ToString("F2") : (gastoInventario.Importe * -1).ToString("F2")), CentroCosto = gastoInventario.CentroCosto, Renglon = Convert.ToString(renglon), ImporteIva = "0", Ref3 = ref3.ToString(), Cuenta = cuentaSapProvision.CuentaSAP, ArchivoFolio = archivoFolio, DescripcionCosto = cuentaSapProvision.Descripcion, PesoOrigen = 0, TipoDocumento = textoDocumento, Concepto = String.Format("{0}-{1},{2}", tipoMovimiento, gastoInventario.FolioGasto , complementoConcepto), Sociedad = organizacion.Sociedad, Segmento = string.Format("{0}{1}", PrefijoSegmento, organizacion.Sociedad), }; polizaEntrada = GeneraRegistroPoliza(datos); polizasGastosInventario.Add(polizaEntrada); } return(polizasGastosInventario); }
public override MemoryStream ImprimePoliza(object datosPoliza, IList <PolizaInfo> polizas) { try { PolizaModel = new PolizaModel(); polizaImpresion = new PolizaImpresion <PolizaModel>(PolizaModel, TipoPoliza.GastosInventario); var almacenesInventarioLote = datosPoliza as List <AlmacenInventarioLoteInfo>; IList <FormulaInfo> formulas = ObtenerFormulas(); AlmacenInventarioLoteInfo almacenFormula = almacenesInventarioLote.FirstOrDefault( alm => alm.AlmacenInventario.Producto.SubfamiliaId == SubFamiliasEnum.AlimentoFormulado.GetHashCode()); if (almacenFormula != null) { FormulaInfo formulaProducida = formulas.FirstOrDefault( form => form.Producto.ProductoId == almacenFormula.AlmacenInventario.Producto.ProductoId); if (formulaProducida != null) { formulaGenerada = formulaProducida.Descripcion; } } if (almacenesInventarioLote == null) { return(null); } var primerAlmacenInventarioLote = almacenesInventarioLote.FirstOrDefault(); if (primerAlmacenInventarioLote == null) { return(null); } long folioVenta = 1; //almacenInventarioLote.Select(folio => folio.AnimalID).FirstOrDefault(); int organizacionID = primerAlmacenInventarioLote.AlmacenInventario.Almacen.Organizacion.OrganizacionID; DateTime fechaVenta = primerAlmacenInventarioLote.FechaProduccionFormula; OrganizacionInfo organizacionOrigen = ObtenerOrganizacionIVA(organizacionID); PolizaModel.Encabezados = new List <PolizaEncabezadoModel> { new PolizaEncabezadoModel { Descripcion = organizacionOrigen.Descripcion, Desplazamiento = 0 }, new PolizaEncabezadoModel { Descripcion = "Por Producción", Desplazamiento = 0 } }; polizaImpresion.GeneraCabecero(new[] { "100", "100" }, "NombreGanadera"); PolizaModel.Encabezados = new List <PolizaEncabezadoModel> { new PolizaEncabezadoModel { Descripcion = "Nota de Salida de almacen", Desplazamiento = 0 }, new PolizaEncabezadoModel { Descripcion = string.Format("{0} {1}", "FOLIO No.", folioVenta), Desplazamiento = 0 }, }; polizaImpresion.GeneraCabecero(new[] { "100", "100" }, "NombreGanadera"); GeneraLinea(2); polizaImpresion.GeneraCabecero(new[] { "50", "50" }, "NombreGanadera"); PolizaModel.Encabezados = new List <PolizaEncabezadoModel> { new PolizaEncabezadoModel { Descripcion = "CARGO A:", Desplazamiento = 0 }, new PolizaEncabezadoModel { Descripcion = string.Format("{0}:{1}", "FECHA", fechaVenta.ToShortDateString()), }, }; polizaImpresion.GeneraCabecero(new[] { "50", "50" }, "Folio"); PolizaModel.Encabezados = new List <PolizaEncabezadoModel> { new PolizaEncabezadoModel { Descripcion = "TRANSPORTE:" }, new PolizaEncabezadoModel { Descripcion = "REFERENCIA:" }, }; polizaImpresion.GeneraCabecero(new[] { "50", "50" }, "FECHA"); GeneraLinea(2); polizaImpresion.GeneraCabecero(new[] { "50", "50" }, "FECHA"); GeneraLineaEncabezadoDetalle(); GeneraLineasDetalle(almacenesInventarioLote); GeneraLinea(9); polizaImpresion.GeneraCabecero(new[] { "100" }, "Detalle"); GeneraLineaTotales(almacenesInventarioLote.Where(alm => alm.AlmacenInventario.Producto.SubfamiliaId != SubFamiliasEnum.AlimentoFormulado.GetHashCode())); GeneraLinea(9); polizaImpresion.GenerarDetalles("Detalle"); GeneraLinea(5); polizaImpresion.GenerarLineaEnBlanco(); GeneraLineaEncabezadoRegistroContable(folioVenta); polizaImpresion.GeneraCabecero(new[] { "30", "60", "65", "25", "25" }, "RegistroContable"); GeneraLineaSubEncabezadoRegistroContable(true, "Codigo", "Debe", "Abono"); polizaImpresion.GeneraCabecero(new[] { "30", "60", "65", "25", "25" }, "RegistroContable"); IList <PolizaInfo> cargos; IList <PolizaInfo> abonos; GeneraLineaRegistroContable(polizas, out cargos, out abonos); polizaImpresion.GenerarRegistroContable("RegistroContable"); GeneraLinea(5); polizaImpresion.GeneraCabecero(new[] { "100" }, "RegistroContable"); GenerarLineaSumaRegistroContable(polizas, "Financiero"); polizaImpresion.GeneraCabecero(new[] { "30", "60", "65", "25", "25" }, "RegistroContable"); GeneraLinea(5); polizaImpresion.GeneraCabecero(new[] { "100" }, "RegistroContable"); polizaImpresion.GenerarLineaEnBlanco("RegistroContable", 5); polizaImpresion.GenerarLineaEnBlanco("RegistroContable", 5); polizaImpresion.GenerarLineaEnBlanco("RegistroContable", 5); GenerarLineaRevisoRecibio(); polizaImpresion.GeneraCabecero(new[] { "30", "60", "65", "25" }, "RegistroContable"); return(polizaImpresion.GenerarArchivo()); } catch (Exception ex) { Logger.Error(ex); throw; } }
public override MemoryStream ImprimePoliza(object datosPoliza, IList <PolizaInfo> polizas) { try { PolizaModel = new PolizaModel(); polizaImpresion = new PolizaImpresion <PolizaModel>(PolizaModel, TipoPoliza.EntradaTraspaso); var traspasoMp = datosPoliza as TraspasoMpPaMedInfo; if (traspasoMp == null) { return(null); } long folioTraspaso = traspasoMp.FolioTraspaso; //int organizacionOrigenID = traspasoMp.OrganizacionOrigen.OrganizacionID; int organizacionDestinoID = traspasoMp.OrganizacionDestino.OrganizacionID; DateTime fechaVenta = traspasoMp.FechaTraspaso; OrganizacionInfo organizacionDestino = ObtenerOrganizacionIVA(organizacionDestinoID); PolizaModel.Encabezados = new List <PolizaEncabezadoModel> { new PolizaEncabezadoModel { Descripcion = organizacionDestino.Descripcion, Desplazamiento = 0 }, new PolizaEncabezadoModel { Descripcion = "Por Traspaso", Desplazamiento = 0 } }; polizaImpresion.GeneraCabecero(new[] { "100", "100" }, "NombreGanadera"); PolizaModel.Encabezados = new List <PolizaEncabezadoModel> { new PolizaEncabezadoModel { Descripcion = "Nota de Salida de almacen", Desplazamiento = 0 }, new PolizaEncabezadoModel { Descripcion = string.Format("{0} {1}", "FOLIO No.", folioTraspaso), Desplazamiento = 0 }, }; polizaImpresion.GeneraCabecero(new[] { "100", "100" }, "NombreGanadera"); GeneraLinea(2); polizaImpresion.GeneraCabecero(new[] { "50", "50" }, "NombreGanadera"); PolizaModel.Encabezados = new List <PolizaEncabezadoModel> { new PolizaEncabezadoModel { Descripcion = string.Format("CARGO A: {0}", traspasoMp.AlmacenDestino.Descripcion), Desplazamiento = 0 }, new PolizaEncabezadoModel { Descripcion = string.Format("{0}:{1}", "FECHA", fechaVenta.ToShortDateString()), }, }; polizaImpresion.GeneraCabecero(new[] { "50", "50" }, "Folio"); GeneraLinea(2); polizaImpresion.GeneraCabecero(new[] { "50", "50" }, "FECHA"); GeneraLineaEncabezadoDetalle(); GeneraLineasDetalle(traspasoMp); GeneraLinea(6); polizaImpresion.GeneraCabecero(new[] { "100" }, "Detalle"); GeneraLineaTotales(traspasoMp); GeneraLinea(6); polizaImpresion.GenerarDetalles("Detalle"); GeneraLinea(5); polizaImpresion.GenerarLineaEnBlanco(); GeneraLineaEncabezadoRegistroContable(folioTraspaso); polizaImpresion.GeneraCabecero(new[] { "30", "60", "65", "25", "25" }, "RegistroContable"); GeneraLineaSubEncabezadoRegistroContable(true, "Código", "Debe", "Haber"); polizaImpresion.GeneraCabecero(new[] { "30", "60", "65", "25", "25" }, "RegistroContable"); IList <PolizaInfo> cargos; IList <PolizaInfo> abonos; GeneraLineaRegistroContable(polizas, out cargos, out abonos); polizaImpresion.GenerarRegistroContable("RegistroContable"); GeneraLinea(5); polizaImpresion.GeneraCabecero(new[] { "100" }, "RegistroContable"); GenerarLineaSumaRegistroContable(polizas, "Total=====>"); polizaImpresion.GeneraCabecero(new[] { "30", "60", "65", "25", "25" }, "RegistroContable"); GeneraLinea(5); polizaImpresion.GeneraCabecero(new[] { "100" }, "RegistroContable"); polizaImpresion.GenerarLineaEnBlanco("RegistroContable", 5); polizaImpresion.GenerarLineaEnBlanco("RegistroContable", 5); polizaImpresion.GenerarLineaEnBlanco("RegistroContable", 5); GenerarLineaRevisoRecibio(); polizaImpresion.GeneraCabecero(new[] { "30", "60", "65", "25" }, "RegistroContable"); return(polizaImpresion.GenerarArchivo()); } catch (Exception ex) { Logger.Error(ex); throw; } }
private IList <PolizaInfo> ObtenerPoliza(TraspasoMpPaMedInfo traspasoMp) { var polizasSalidaTraspaso = new List <PolizaInfo>(); IList <ClaseCostoProductoInfo> cuentasAlmacenProductoSalida = ObtenerCostosProducto(traspasoMp.AlmacenOrigen.AlmacenID); IList <ClaseCostoProductoInfo> cuentasAlmacenProductoEntrada = ObtenerCostosProducto(traspasoMp.AlmacenDestino.AlmacenID); if (cuentasAlmacenProductoSalida == null) { throw new ExcepcionServicio("No se encuentran cuentas configuradas, para productos del almacén origen"); } if (cuentasAlmacenProductoEntrada == null) { throw new ExcepcionServicio("No se encuentran cuentas configuradas, para productos del almacén de destino"); } TipoPolizaInfo tipoPoliza = TiposPoliza.FirstOrDefault(clave => clave.TipoPolizaID == TipoPoliza.EntradaTraspaso.GetHashCode()); if (tipoPoliza == null) { throw new ExcepcionServicio(string.Format("{0} {1}", "EL TIPO DE POLIZA", TipoPoliza.EntradaTraspaso)); } IList <CuentaSAPInfo> cuentasSap = ObtenerCuentasSAP(); string textoDocumento = tipoPoliza.TextoDocumento; string tipoMovimiento = tipoPoliza.ClavePoliza; string postFijoRef3 = tipoPoliza.PostFijoRef3; var linea = 1; //TO DO REVISAR SI CAMBIARA EL REF 3 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); var almacenMovimientoBL = new AlmacenMovimientoBL(); AlmacenMovimientoInfo almacenMovimiento = almacenMovimientoBL.ObtenerPorId(traspasoMp.AlmacenMovimientoID); string numeroReferencia = ObtenerNumeroReferenciaFolio(almacenMovimiento.FolioMovimiento); //string numeroReferencia = ObtenerNumeroReferencia; DateTime fecha = traspasoMp.FechaTraspaso; string archivoFolio = ObtenerArchivoFolio(fecha); var organizacionBL = new OrganizacionBL(); OrganizacionInfo organizacionOrigen = organizacionBL.ObtenerPorAlmacenID(traspasoMp.AlmacenOrigen.AlmacenID); if (organizacionOrigen == null) { organizacionOrigen = new OrganizacionInfo { TipoOrganizacion = new TipoOrganizacionInfo() }; } OrganizacionInfo organizacionDestino = organizacionBL.ObtenerPorAlmacenID(traspasoMp.AlmacenDestino.AlmacenID); if (organizacionDestino == null) { organizacionDestino = new OrganizacionInfo { TipoOrganizacion = new TipoOrganizacionInfo() }; } IList <CuentaAlmacenSubFamiliaInfo> cuentasSubFamiliaSalida = ObtenerCostosSubFamilia(traspasoMp.AlmacenOrigen.AlmacenID); IList <CuentaAlmacenSubFamiliaInfo> cuentasSubFamiliaEntrada = ObtenerCostosSubFamilia(traspasoMp.AlmacenDestino.AlmacenID); ParametroOrganizacionInfo parametroCentroCostoOrigen = ObtenerParametroOrganizacionPorClave(organizacionOrigen.OrganizacionID, ParametrosEnum.CTACENTROCOSTOMP.ToString()); if (parametroCentroCostoOrigen == null) { throw new ExcepcionServicio(string.Format("{0}", "CENTRO DE COSTO NO CONFIGURADO")); } ParametroOrganizacionInfo parametroCentroCostoDestino = ObtenerParametroOrganizacionPorClave(organizacionDestino.OrganizacionID, ParametrosEnum.CTACENTROCOSTOMP.ToString()); if (parametroCentroCostoDestino == null) { throw new ExcepcionServicio(string.Format("{0}", "CENTRO DE COSTO NO CONFIGURADO")); } bool afectaCosto; CuentaSAPInfo claveContableCargo; afectaCosto = ValidarAfectacionCuentaCosto(traspasoMp.ProductoOrigen); if (!afectaCosto && (traspasoMp.AlmacenDestino.TipoAlmacen.TipoAlmacenID == TipoAlmacenEnum.Enfermeria.GetHashCode() || traspasoMp.AlmacenDestino.TipoAlmacen.TipoAlmacenID == TipoAlmacenEnum.ManejoGanado.GetHashCode() || traspasoMp.AlmacenDestino.TipoAlmacen.TipoAlmacenID == TipoAlmacenEnum.ReimplanteGanado.GetHashCode()) || traspasoMp.AlmacenDestino.TipoAlmacen.TipoAlmacenID == TipoAlmacenEnum.GeneralGanadera.GetHashCode()) { var cuentaSapSubFamiliaEntrada = cuentasSubFamiliaEntrada.FirstOrDefault( cuenta => cuenta.SubFamiliaID == traspasoMp.ProductoOrigen.SubFamilia.SubFamiliaID); if (cuentaSapSubFamiliaEntrada == null) { cuentaSapSubFamiliaEntrada = new CuentaAlmacenSubFamiliaInfo(); } claveContableCargo = cuentasSap.FirstOrDefault(sap => sap.CuentaSAPID == cuentaSapSubFamiliaEntrada.CuentaSAPID); } else { var cuentaSapEntrada = cuentasAlmacenProductoEntrada.FirstOrDefault( cuenta => cuenta.ProductoID == traspasoMp.ProductoOrigen.ProductoId); if (cuentaSapEntrada == null) { cuentaSapEntrada = new ClaseCostoProductoInfo(); } claveContableCargo = cuentasSap.FirstOrDefault(sap => sap.CuentaSAPID == cuentaSapEntrada.CuentaSAPID); } if (traspasoMp.AlmacenDestino.TipoAlmacen.TipoAlmacenID == TipoAlmacenEnum.CentroAcopio.GetHashCode()) { ParametroOrganizacionInfo cuentaMedicamento = ObtenerParametroOrganizacionPorClave(organizacionDestino.OrganizacionID, ParametrosEnum.CuentaMedicamentoTransito.ToString()); if (cuentaMedicamento == null) { cuentaMedicamento = new ParametroOrganizacionInfo { Valor = string.Empty }; } claveContableCargo = cuentasSap.FirstOrDefault( sap => sap.CuentaSAP.Equals(cuentaMedicamento.Valor, StringComparison.InvariantCultureIgnoreCase)); } if (claveContableCargo == null) { throw new ExcepcionServicio(string.Format("No se encontró configurada la cuenta del producto {0}", traspasoMp.ProductoOrigen.ProductoDescripcion)); } linea = 0; linea++; var datos = new DatosPolizaInfo { NumeroReferencia = numeroReferencia, FechaEntrada = fecha, Folio = numeroReferencia, ClaseDocumento = postFijoRef3, Importe = string.Format("{0}", traspasoMp.ImporteTraspaso.ToString("F2")), Renglon = Convert.ToString(linea), ImporteIva = "0", Ref3 = ref3.ToString(), Cuenta = claveContableCargo.CuentaSAP, CentroCosto = claveContableCargo.CuentaSAP.StartsWith(PrefijoCuentaCentroCosto) ? parametroCentroCostoDestino.Valor : string.Empty, Division = organizacionDestino.Division, ArchivoFolio = archivoFolio, PesoOrigen = 0, TipoDocumento = textoDocumento, Concepto = String.Format("{0}-{1} {2} {3} {4}", tipoMovimiento, numeroReferencia, traspasoMp.ProductoOrigen.ProductoDescripcion, string.Format("{0} {1}.", traspasoMp.CantidadTraspasarDestino.ToString("N2"), traspasoMp.ProductoOrigen.UnidadMedicion.ClaveUnidad), traspasoMp.PrecioTraspasoDestino.ToString("C2")), Sociedad = organizacionDestino.Sociedad, DescripcionProducto = claveContableCargo.Descripcion, Segmento = string.Format("{0}{1}", PrefijoSegmento, organizacionDestino.Sociedad), }; PolizaInfo polizaSalida = GeneraRegistroPoliza(datos); polizasSalidaTraspaso.Add(polizaSalida); #region CuentaAbono CuentaSAPInfo claveContableAbono = null; afectaCosto = ValidarAfectacionCuentaCosto(traspasoMp.ProductoOrigen); if (!afectaCosto && (traspasoMp.AlmacenOrigen.TipoAlmacen.TipoAlmacenID == TipoAlmacenEnum.Enfermeria.GetHashCode() || traspasoMp.AlmacenOrigen.TipoAlmacen.TipoAlmacenID == TipoAlmacenEnum.ManejoGanado.GetHashCode() || traspasoMp.AlmacenOrigen.TipoAlmacen.TipoAlmacenID == TipoAlmacenEnum.ReimplanteGanado.GetHashCode()) || traspasoMp.AlmacenDestino.TipoAlmacen.TipoAlmacenID == TipoAlmacenEnum.GeneralGanadera.GetHashCode()) { var cuentaSapSubFamiliaSalida = cuentasSubFamiliaSalida.FirstOrDefault( cuenta => cuenta.SubFamiliaID == traspasoMp.ProductoOrigen.SubFamilia.SubFamiliaID); if (cuentaSapSubFamiliaSalida == null) { cuentaSapSubFamiliaSalida = new CuentaAlmacenSubFamiliaInfo(); } claveContableAbono = cuentasSap.FirstOrDefault(sap => sap.CuentaSAPID == cuentaSapSubFamiliaSalida.CuentaSAPID); } else { var cuentaSapSalida = cuentasAlmacenProductoSalida.FirstOrDefault( cuenta => cuenta.ProductoID == traspasoMp.ProductoOrigen.ProductoId); if (cuentaSapSalida == null) { cuentaSapSalida = new ClaseCostoProductoInfo(); } claveContableAbono = cuentasSap.FirstOrDefault(sap => sap.CuentaSAPID == cuentaSapSalida.CuentaSAPID); } if (traspasoMp.AlmacenOrigen.TipoAlmacen.TipoAlmacenID == TipoAlmacenEnum.CentroAcopio.GetHashCode()) { ParametroOrganizacionInfo cuentaMedicamento = ObtenerParametroOrganizacionPorClave(organizacionOrigen.OrganizacionID, ParametrosEnum.CuentaMedicamentoTransito.ToString()); if (cuentaMedicamento == null) { cuentaMedicamento = new ParametroOrganizacionInfo { Valor = string.Empty }; } claveContableAbono = cuentasSap.FirstOrDefault( sap => sap.CuentaSAP.Equals(cuentaMedicamento.Valor, StringComparison.InvariantCultureIgnoreCase)); } if (claveContableAbono == null) { throw new ExcepcionServicio(string.Format("No se encontró configurada la cuenta del producto {0}", traspasoMp.ProductoOrigen.ProductoDescripcion)); } #endregion CuentaAbono linea++; datos = new DatosPolizaInfo { NumeroReferencia = numeroReferencia, FechaEntrada = fecha, Folio = numeroReferencia, ClaseDocumento = postFijoRef3, Importe = string.Format("{0}", (traspasoMp.ImporteTraspaso * -1).ToString("F2")), Renglon = Convert.ToString(linea), ImporteIva = "0", Ref3 = ref3.ToString(), Cuenta = claveContableAbono.CuentaSAP, ArchivoFolio = archivoFolio, CentroCosto = claveContableAbono.CuentaSAP.StartsWith(PrefijoCuentaCentroCosto) ? parametroCentroCostoOrigen.Valor : string.Empty, Division = organizacionOrigen.Division, PesoOrigen = 0, TipoDocumento = textoDocumento, Concepto = String.Format("{0}-{1} {2} {3} {4}", tipoMovimiento, numeroReferencia, traspasoMp.ProductoOrigen.ProductoDescripcion, string.Format("{0} {1}.", traspasoMp.CantidadTraspasarOrigen.ToString("N2"), traspasoMp.ProductoOrigen.UnidadMedicion.ClaveUnidad), traspasoMp.PrecioTraspasoOrigen.ToString("C2")), Sociedad = organizacionOrigen.Sociedad, DescripcionProducto = claveContableAbono.Descripcion, Segmento = string.Format("{0}{1}", PrefijoSegmento, organizacionOrigen.Sociedad), }; polizaSalida = GeneraRegistroPoliza(datos); polizasSalidaTraspaso.Add(polizaSalida); return(polizasSalidaTraspaso); }
/// <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); } }
public override MemoryStream ImprimePoliza(object datosPoliza, IList <PolizaInfo> polizas) { try { var ajustesDeInventario = datosPoliza as List <PolizaEntradaSalidaPorAjusteModel>; PolizaModel = new PolizaModel(); polizaImpresion = new PolizaImpresion <PolizaModel>(PolizaModel, TipoPoliza.EntradaAjuste); var almacenMovimientoBL = new AlmacenMovimientoBL(); List <AlmacenMovimientoDetalle> almancenMovimientosDetalle = ajustesDeInventario.Select(mov => new AlmacenMovimientoDetalle { AlmacenMovimientoDetalleID = mov.AlmacenMovimientoDetalleID }).ToList(); AlmacenMovimientoInfo almacenMovimiento = almacenMovimientoBL.ObtenerMovimientoPorClaveDetalle(almancenMovimientosDetalle); if (almacenMovimiento == null) { almacenMovimiento = new AlmacenMovimientoInfo(); } AlmacenInfo almacen = ObtenerAlmacen(almacenMovimiento.AlmacenID); if (almacen == null) { almacen = new AlmacenInfo { Organizacion = new OrganizacionInfo() }; } OrganizacionInfo organizacion = ObtenerOrganizacionIVA(almacen.Organizacion.OrganizacionID); if (organizacion == null) { organizacion = new OrganizacionInfo { TipoOrganizacion = new TipoOrganizacionInfo() }; } PolizaModel.Encabezados = new List <PolizaEncabezadoModel> { new PolizaEncabezadoModel { Descripcion = organizacion.Descripcion, Desplazamiento = 0 }, }; polizaImpresion.GeneraCabecero(new[] { "100" }, "NombreGanadera"); PolizaModel.Encabezados = new List <PolizaEncabezadoModel> { new PolizaEncabezadoModel { Descripcion = "Entrada De Almacen por Ajuste", Desplazamiento = 0 }, }; polizaImpresion.GeneraCabecero(new[] { "100" }, "NombreGanadera"); PolizaModel.Encabezados = new List <PolizaEncabezadoModel> { new PolizaEncabezadoModel { Descripcion = string.Format("{0} {1}", "FECHA:", almacenMovimiento.FechaMovimiento.ToShortDateString()), Desplazamiento = 0 }, new PolizaEncabezadoModel { Descripcion = string.Format("{0} {1}", "FOLIO No.", almacenMovimiento.FolioMovimiento), Desplazamiento = 0 }, }; polizaImpresion.GeneraCabecero(new[] { "50", "50" }, "Folio"); GeneraLinea(2); polizaImpresion.GeneraCabecero(new[] { "100" }, "Folio"); GenerarLineasEncabezadoDetalleEntrada(); GenerarLineasDetalle(ajustesDeInventario); polizaImpresion.GenerarDetalles("Detalle"); polizaImpresion.GenerarLineaEnBlanco("Detalle", 11); GeneraLineaTotalDetalle(ajustesDeInventario); GeneraLinea(11); polizaImpresion.GeneraCabecero(new[] { "100" }, "Detalle"); GeneraLineaObservaciones(ajustesDeInventario); GeneraLinea(2); polizaImpresion.GeneraCabecero(new[] { "100" }, "Observaciones"); polizaImpresion.GenerarLineaEnBlanco(); GeneraLineaEncabezadoRegistroContable(almacenMovimiento.FolioMovimiento); polizaImpresion.GeneraCabecero(new[] { "30", "60", "65", "25", "25" }, "RegistroContable"); GeneraLineaSubEncabezadoRegistroContable(true, "Código", "Debe", "Haber"); polizaImpresion.GeneraCabecero(new[] { "30", "60", "65", "25", "25" }, "RegistroContable"); GeneraLinea(5); polizaImpresion.GeneraCabecero(new[] { "100" }, "RegistroContable"); IList <PolizaInfo> cargos; IList <PolizaInfo> abonos; GeneraLineaRegistroContable(polizas, out cargos, out abonos); polizaImpresion.GenerarRegistroContable("RegistroContable"); GeneraLinea(5); polizaImpresion.GeneraCabecero(new[] { "100" }, "RegistroContable"); GenerarLineaSumaRegistroContable(polizas, "Total=====>"); polizaImpresion.GeneraCabecero(new[] { "30", "60", "65", "25", "25" }, "RegistroContable"); GeneraLinea(5); polizaImpresion.GeneraCabecero(new[] { "100" }, "RegistroContable"); return(polizaImpresion.GenerarArchivo()); } catch (Exception ex) { Logger.Error(ex); throw; } }
/// <summary> /// Inicializa el Contexto /// </summary> private void InicializaContexto() { Contexto = new OrganizacionInfo(); }
private IList <PolizaInfo> ObtenerPoliza(List <PolizaEntradaSalidaPorAjusteModel> ajustesDeInventario) { var polizasSalidaAjuste = new List <PolizaInfo>(); TipoPolizaInfo tipoPoliza = TiposPoliza.FirstOrDefault(clave => clave.TipoPolizaID == TipoPoliza.EntradaAjuste.GetHashCode()); if (tipoPoliza == null) { throw new ExcepcionServicio(string.Format("{0} {1}", "EL TIPO DE POLIZA", TipoPoliza.EntradaAjuste)); } string textoDocumento = tipoPoliza.TextoDocumento; string tipoMovimiento = tipoPoliza.ClavePoliza; string postFijoRef3 = tipoPoliza.PostFijoRef3; var linea = 1; var almacenMovimientoBL = new AlmacenMovimientoBL(); List <AlmacenMovimientoDetalle> almancenMovimientosDetalle = ajustesDeInventario.Select(mov => new AlmacenMovimientoDetalle { AlmacenMovimientoDetalleID = mov.AlmacenMovimientoDetalleID }).ToList(); AlmacenMovimientoInfo almacenMovimiento = almacenMovimientoBL.ObtenerMovimientoPorClaveDetalle(almancenMovimientosDetalle); if (almacenMovimiento == null) { almacenMovimiento = new AlmacenMovimientoInfo(); } string archivoFolio = ObtenerArchivoFolio(almacenMovimiento.FechaMovimiento); AlmacenInfo almacen = ObtenerAlmacen(almacenMovimiento.AlmacenID); if (almacen == null) { almacen = new AlmacenInfo { Organizacion = new OrganizacionInfo() }; } OrganizacionInfo organizacion = ObtenerOrganizacionIVA(almacen.Organizacion.OrganizacionID); if (organizacion == null) { organizacion = new OrganizacionInfo { TipoOrganizacion = new TipoOrganizacionInfo() }; } 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; string numeroReferencia = ObtenerNumeroReferenciaFolio(almacenMovimiento.FolioMovimiento); IList <CuentaSAPInfo> cuentasSAP = ObtenerCuentasSAP(); IList <ClaseCostoProductoInfo> almacenesProductos = ObtenerCostosProducto(almacen.AlmacenID); ParametroOrganizacionInfo parametroOrganizacionSuperavit; if (almacen.TipoAlmacen.TipoAlmacenID == TipoAlmacenEnum.Enfermeria.GetHashCode() || almacen.TipoAlmacen.TipoAlmacenID == TipoAlmacenEnum.ManejoGanado.GetHashCode() || almacen.TipoAlmacen.TipoAlmacenID == TipoAlmacenEnum.ReimplanteGanado.GetHashCode()) { parametroOrganizacionSuperavit = ObtenerParametroOrganizacionPorClave(organizacion.OrganizacionID, ParametrosEnum.CTASUPERAVITENG.ToString()); } else { parametroOrganizacionSuperavit = ObtenerParametroOrganizacionPorClave(organizacion.OrganizacionID, ParametrosEnum.CTASUPERAVIT.ToString()); } if (parametroOrganizacionSuperavit == null) { throw new ExcepcionServicio(string.Format("{0}", "CUENTA DE SUPERAVIT NO CONFIGURADA")); } IList <ProductoInfo> productos = ObtenerProductos(); IList <UnidadMedicionInfo> unidades = ObtenerUnidadesMedicion(); IList <CuentaAlmacenSubFamiliaInfo> almacenesSubFamilia = ObtenerCostosSubFamilia(almacen.AlmacenID); ProductoInfo producto; PolizaEntradaSalidaPorAjusteModel ajuste; ClaseCostoProductoInfo almacenProducto; CuentaSAPInfo cuentaSAP; CuentaAlmacenSubFamiliaInfo almacenSubFamilia; ParametroOrganizacionInfo parametroCentroCosto = ObtenerParametroOrganizacionPorClave(organizacion.OrganizacionID, ParametrosEnum.CTACENTROCOSTOMP.ToString()); if (parametroCentroCosto == null) { throw new ExcepcionServicio(string.Format("{0}", "CENTRO DE COSTO NO CONFIGURADO")); } bool afectaCosto; for (var indexAjustes = 0; indexAjustes < ajustesDeInventario.Count; indexAjustes++) { ajuste = ajustesDeInventario[indexAjustes]; cuentaSAP = null; producto = productos.FirstOrDefault(clave => clave.ProductoId == ajuste.ProductoID); afectaCosto = ValidarAfectacionCuentaCosto(producto); if (!afectaCosto && (almacen.TipoAlmacen.TipoAlmacenID == TipoAlmacenEnum.Enfermeria.GetHashCode() || almacen.TipoAlmacen.TipoAlmacenID == TipoAlmacenEnum.ManejoGanado.GetHashCode() || almacen.TipoAlmacen.TipoAlmacenID == TipoAlmacenEnum.ReimplanteGanado.GetHashCode())) { almacenSubFamilia = almacenesSubFamilia.FirstOrDefault(sub => sub.SubFamiliaID == producto.SubfamiliaId); if (almacenSubFamilia != null) { cuentaSAP = cuentasSAP.FirstOrDefault(cuenta => cuenta.CuentaSAPID == almacenSubFamilia.CuentaSAPID); } } else { almacenProducto = almacenesProductos.FirstOrDefault(prod => prod.ProductoID == producto.ProductoId); if (almacenProducto != null) { cuentaSAP = cuentasSAP.FirstOrDefault(cuenta => cuenta.CuentaSAPID == almacenProducto.CuentaSAPID); } } if (cuentaSAP == null) { throw new ExcepcionServicio(string.Format("{0} {1} {2}", "CUENTA PARA PRODUCTO", producto.ProductoDescripcion, "NO CONFIGURADA")); } UnidadMedicionInfo unidad = unidades.FirstOrDefault(uni => uni.UnidadID == producto.UnidadId); if (unidad == null) { unidad = new UnidadMedicionInfo(); } var datos = new DatosPolizaInfo { NumeroReferencia = numeroReferencia, FechaEntrada = almacenMovimiento.FechaMovimiento, Folio = almacenMovimiento.FolioMovimiento.ToString(), ClaseDocumento = postFijoRef3, Importe = string.Format("{0}", ajuste.Importe.ToString("F2")), Renglon = Convert.ToString(linea++), ImporteIva = "0", Ref3 = ref3.ToString(), Cuenta = cuentaSAP.CuentaSAP, Division = organizacion.Division, ArchivoFolio = archivoFolio, DescripcionCosto = cuentaSAP.Descripcion, CentroCosto = cuentaSAP.CuentaSAP.StartsWith(PrefijoCuentaCentroCosto) || cuentaSAP.CuentaSAP.StartsWith(PrefijoCuentaCentroGasto) ? parametroCentroCosto.Valor : string.Empty, PesoOrigen = Math.Round(ajuste.Cantidad, 0), TipoDocumento = textoDocumento, Concepto = String.Format("{0}-{1} {2} {3} {4}", tipoMovimiento, almacenMovimiento.FolioMovimiento, producto.ProductoDescripcion, string.Format("{0} {1}", ajuste.Cantidad.ToString("N2"), unidad.ClaveUnidad), ajuste.Precio.ToString("C2")), Sociedad = organizacion.Sociedad, Segmento = string.Format("{0}{1}", PrefijoSegmento, organizacion.Sociedad), }; PolizaInfo polizaSalida = GeneraRegistroPoliza(datos); polizasSalidaAjuste.Add(polizaSalida); datos = new DatosPolizaInfo { NumeroReferencia = numeroReferencia, FechaEntrada = almacenMovimiento.FechaMovimiento, Folio = almacenMovimiento.FolioMovimiento.ToString(), Importe = string.Format("{0}", (ajuste.Importe * -1).ToString("F2")), Renglon = Convert.ToString(linea++), ImporteIva = "0", Ref3 = ref3.ToString(), Cuenta = parametroOrganizacionSuperavit.Valor, CentroCosto = parametroOrganizacionSuperavit.Valor.StartsWith(PrefijoCuentaCentroCosto) || parametroOrganizacionSuperavit.Valor.StartsWith(PrefijoCuentaCentroGasto) ? parametroCentroCosto.Valor : string.Empty, Division = organizacion.Division, ArchivoFolio = archivoFolio, DescripcionCosto = cuentaSAP.Descripcion, PesoOrigen = Math.Round(ajuste.Cantidad, 0), TipoDocumento = textoDocumento, ClaseDocumento = postFijoRef3, Concepto = String.Format("{0}-{1} {2} {3} {4}", tipoMovimiento, almacenMovimiento.FolioMovimiento, producto.ProductoDescripcion, string.Format("{0} {1}", ajuste.Cantidad.ToString("N2"), unidad.ClaveUnidad), ajuste.Precio.ToString("C2")), Sociedad = organizacion.Sociedad, Segmento = string.Format("{0}{1}", PrefijoSegmento, organizacion.Sociedad), }; polizaSalida = GeneraRegistroPoliza(datos); polizasSalidaAjuste.Add(polizaSalida); } return(polizasSalidaAjuste); }
/// <summary> /// Metodo que valida los datos para guardar /// </summary> /// <returns></returns> private bool ValidaGuardar() { bool resultado = true; string mensaje = string.Empty; try { if (string.IsNullOrWhiteSpace(txtDescripcion.Text)) { resultado = false; mensaje = Properties.Resources.OrganizacionEdicion_MsgDescripcionRequerida; txtDescripcion.Focus(); } else if (cmbTipoOrganizacion.SelectedItem == null || Contexto.TipoOrganizacion.TipoOrganizacionID == 0) { resultado = false; mensaje = Properties.Resources.OrganizacionEdicion_MsgTipoOrganizacionRequerida; cmbTipoOrganizacion.Focus(); } else if (cmbIva.SelectedItem == null || Contexto.Iva.IvaID == 0) { resultado = false; mensaje = Properties.Resources.OrganizacionEdicion_MsgIvaRequerida; cmbIva.Focus(); } else { int organizacionId = Extensor.ValorEntero(txtOrganizacionId.Text); string descripcion = txtDescripcion.Text.Trim(); if (skAyudaZona.Clave != string.Empty && !skAyudaZona.Clave.Equals("0")) { Contexto.Zona.ZonaID = Convert.ToInt32(skAyudaZona.Clave); } else { Contexto.Zona.ZonaID = null; } var organizacionPL = new OrganizacionPL(); OrganizacionInfo organizacion = organizacionPL.ObtenerPorDescripcion(descripcion); if (organizacion != null && (organizacionId == 0 || organizacionId != organizacion.OrganizacionID)) { resultado = false; mensaje = string.Format(Properties.Resources.OrganizacionEdicion_MsgDescripcionExistente, organizacion.OrganizacionID); } } } catch (Exception ex) { throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } if (!string.IsNullOrWhiteSpace(mensaje)) { SkMessageBox.Show(this, mensaje, MessageBoxButton.OK, MessageImage.Warning); } return(resultado); }
public override MemoryStream ImprimePoliza(object datosPoliza, IList <PolizaInfo> polizas) { try { PolizaModel = new PolizaModel(); polizaImpresion = new PolizaImpresion <PolizaModel>(PolizaModel, TipoPoliza.SalidaMuerte); var costosAnimal = datosPoliza as List <AnimalCostoInfo>; var animalCostoAgrupado = (from costo in costosAnimal group costo by new { costo.AnimalID, costo.CostoID } into agrupado select new AnimalCostoInfo { AnimalID = agrupado.Key.AnimalID, Arete = agrupado.Select(ani => ani.Arete).FirstOrDefault(), CostoID = agrupado.Key.CostoID, Importe = agrupado.Sum(cos => cos.Importe), FolioReferencia = agrupado.Select(cos => cos.FolioReferencia).FirstOrDefault(), FechaCosto = agrupado.Select(cos => cos.FechaCosto).FirstOrDefault(), OrganizacionID = agrupado.Select(org => org.OrganizacionID).FirstOrDefault() }).ToList(); costosAnimal = animalCostoAgrupado; long folioVenta = Convert.ToInt64(costosAnimal.Select(folio => folio.Arete).FirstOrDefault()); int organizacionID = costosAnimal.Select(org => org.OrganizacionID).FirstOrDefault(); DateTime fechaVenta = DateTime.Today; OrganizacionInfo organizacionOrigen = ObtenerOrganizacionIVA(organizacionID); PolizaModel.Encabezados = new List <PolizaEncabezadoModel> { new PolizaEncabezadoModel { Descripcion = organizacionOrigen.Descripcion, Desplazamiento = 0 }, }; polizaImpresion.GeneraCabecero(new[] { "100" }, "NombreGanadera"); PolizaModel.Encabezados = new List <PolizaEncabezadoModel> { new PolizaEncabezadoModel { Descripcion = "Salida De Ganado x Muerte", Desplazamiento = 0 }, }; polizaImpresion.GeneraCabecero(new[] { "100" }, "NombreGanadera"); PolizaModel.Encabezados = new List <PolizaEncabezadoModel> { new PolizaEncabezadoModel { Descripcion = string.Format("{0} {1}", "FECHA:", fechaVenta.ToShortDateString()), Desplazamiento = 0 }, new PolizaEncabezadoModel { Descripcion = string.Format("{0} {1}", "FOLIO No.", folioVenta), Desplazamiento = 0 }, }; polizaImpresion.GeneraCabecero(new[] { "50", "50" }, "Folio"); polizaImpresion.GenerarLineaEnBlanco("Folio", 2); PolizaModel.Encabezados = new List <PolizaEncabezadoModel> { new PolizaEncabezadoModel { Descripcion = string.Format("{0}:{1}", "REFERENCIA", organizacionOrigen.Descripcion), }, new PolizaEncabezadoModel { Descripcion = string.Format("{0}:{1}", "FECHA", fechaVenta.ToShortDateString()), }, }; polizaImpresion.GeneraCabecero(new[] { "50", "50" }, "FECHA"); GeneraLinea(2); polizaImpresion.GeneraCabecero(new[] { "50", "50" }, "FECHA"); GeneraLineaEncabezadoDetalle(); var tipoGanadoBL = new TipoGanadoBL(); List <long> animalId = costosAnimal.Select(id => id.AnimalID).Distinct().ToList(); List <AnimalInfo> animales = animalId.Select(ani => new AnimalInfo { AnimalID = ani }).Distinct().ToList(); List <ContenedorTipoGanadoPoliza> tipoGanadoPolizas = tipoGanadoBL.ObtenerTipoPorAnimal(animales, TipoMovimiento. Muerte); List <ContenedorVentaGanado> ventasGanado = costosAnimal .Select(venta => new ContenedorVentaGanado { CausaPrecio = new CausaPrecioInfo(), VentaGanado = new VentaGanadoInfo(), VentaGanadoDetalle = new VentaGanadoDetalleInfo { Animal = new AnimalInfo { AnimalID = venta.AnimalID } } }).ToList(); GeneraLineasDetalle(tipoGanadoPolizas, costosAnimal, ventasGanado); GeneraLinea(12); polizaImpresion.GeneraCabecero(new[] { "100" }, "Detalle"); GeneraLineaEncabezadoCostos(); polizaImpresion.GeneraCabecero(new[] { "30", "20", "20", "5", "40" }, "Costos"); GeneraLineaCostos(costosAnimal, string.Empty); polizaImpresion.GeneraCostos("Costos"); GeneraLineaCostosTotales(); polizaImpresion.GeneraCabecero(new[] { "30", "20", "20", "5", "40" }, "Costos"); GeneraLineaTotalCostos(costosAnimal); GeneraLinea(5); polizaImpresion.GeneraCabecero(new[] { "100" }, "Costos"); polizaImpresion.GenerarLineaEnBlanco(); GeneraLineaEncabezadoRegistroContable(folioVenta); polizaImpresion.GeneraCabecero(new[] { "30", "60", "65", "25", "25" }, "RegistroContable"); GeneraLineaSubEncabezadoRegistroContable(false, "No DE CUENTA", "CARGOS", "ABONOS"); polizaImpresion.GeneraCabecero(new[] { "30", "60", "65", "25", "25" }, "RegistroContable"); IList <PolizaInfo> cargos; IList <PolizaInfo> abonos; GeneraLineaRegistroContable(polizas, out cargos, out abonos); polizaImpresion.GenerarRegistroContable("RegistroContable"); GeneraLinea(5); polizaImpresion.GeneraCabecero(new[] { "100" }, "RegistroContable"); GenerarLineaSumaRegistroContable(polizas, "*= SUMAS -=>"); polizaImpresion.GeneraCabecero(new[] { "30", "60", "65", "25", "25" }, "RegistroContable"); GeneraLinea(5); polizaImpresion.GeneraCabecero(new[] { "100" }, "RegistroContable"); return(polizaImpresion.GenerarArchivo()); } catch (Exception ex) { Logger.Error(ex); throw; } }
internal List <AlmacenInventarioInfo> ObtenerProductosAlmacenInventario(AlmacenInfo almacen, OrganizacionInfo organizacion) { try { Logger.Info(); var almacenDAL = new AlmacenDAL(); List <AlmacenInventarioInfo> resultado = almacenDAL.ObtenerProductosAlmacenInventario(almacen, organizacion); return(resultado); } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
/// <summary> /// Método obtener el reporte Operacion de Sanidad /// </summary> /// <param name="encabezado"></param> /// <param name="organizacion"></param> /// <returns></returns> private List <ReporteDetalleCorteModel> ObtenerReporteDetalleCorte(ReporteEncabezadoInfo encabezado, OrganizacionInfo organizacion) { try { var reporteDetalleCortePl = new ReporteDetalleCortePL(); DateTime fechaIni = DtpFechaInicial.SelectedDate.HasValue ? DtpFechaInicial.SelectedDate.Value : new DateTime(); DateTime fechaFin = DtpFechaFinal.SelectedDate.HasValue ? DtpFechaFinal.SelectedDate.Value : fechaIni; int idUsuario = AuxConfiguracion.ObtenerUsuarioLogueado(); List <ReporteDetalleCorteModel> resultadoInfo = reporteDetalleCortePl.ObtenerReporteDetalleCorte(encabezado, organizacion.OrganizacionID, fechaIni, fechaFin, idUsuario, TipoMovimiento.Corte.GetHashCode()); return(resultadoInfo); } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
/// <summary> /// Genera Incidencias SIAP /// </summary> internal void GenerarIncidenciasSIAP() { try { List <IncidenciasInfo> listaIncidencias = new List <IncidenciasInfo>(); List <IncidenciasInfo> listaNuevasIncidencias = new List <IncidenciasInfo>(); List <XDocument> listaNew = new List <XDocument>(); var usuarioBL = new UsuarioBL(); usuario = usuarioBL.ObtenerPorActiveDirectory(UsuarioProcesosEnum.AlertaSIAP.ToString()); IList <OrganizacionInfo> ListaOrganizacion = new List <OrganizacionInfo>(); var organizacionBL = new OrganizacionBL(); ListaOrganizacion = organizacionBL.ObtenerTodos(); var IncidenciasDal = new IncidenciasDAL(); listaAlertaConfiguracion = IncidenciasDal.ObtenerConfiguracionAlertas(EstatusEnum.Activo); listaIncidencias = ObtenerIncidenciasActivas(); if (listaAlertaConfiguracion != null && listaAlertaConfiguracion.Any()) { foreach (AlertaInfo alertaInfo in listaAlertaConfiguracion) { List <XDocument> listaNueva = new List <XDocument>(); string query = CrearQuery(alertaInfo.ConfiguracionAlerta); XDocument resultadoQuery = IncidenciasDal.EjecutarQuery(query); if (resultadoQuery != null) { if (resultadoQuery.Root != null) { var result = resultadoQuery.Root.Elements().ToList(); listaNueva.AddRange(result.Select(xElement => XDocument.Parse(xElement.ToString()))); } if (listaIncidencias != null && listaIncidencias.Any()) { List <XDocument> listaRegistrada = new List <XDocument>(); var incidencias = listaIncidencias.Where(x => x.Alerta.AlertaID == alertaInfo.AlertaID).ToList(); listaRegistrada.AddRange(incidencias.Select(incidenciasInfo => XDocument.Parse(incidenciasInfo.XmlConsulta.ToString()))); if (incidencias.Any()) { List <XDocument> registradas = new List <XDocument>(); foreach (var xDocument in listaRegistrada) { var xdocumetCopy = new XDocument ( new XElement("Table", from row in xDocument.Root.Elements() select new XElement(row.Name, row.Value))); foreach (var document in listaNueva.Where(document => XNode.DeepEquals(xdocumetCopy, document))) { listaNew.Add(document); registradas.Add(xDocument); } } if (alertaInfo.TerminadoAutomatico == EstatusEnum.Activo) { listaRegistrada = listaRegistrada.Except(registradas).ToList(); if (listaRegistrada != null && listaRegistrada.Any()) { foreach (IncidenciasInfo incidencia in listaRegistrada .Select(xDocument => incidencias.FirstOrDefault(x => XNode.DeepEquals(x.XmlConsulta, xDocument))) .Where(incidencia => incidencia != null).Where(incidencia => incidencia.Estatus.EstatusId != Estatus.CerrarAler.GetHashCode())) { CerrarIncidenciaAutomatico(incidencia); } } } listaNueva = listaNueva.Except(listaNew).ToList(); } } if (listaNueva.Any()) { foreach (var xDocument in listaNueva) { int organizacionID = 0; foreach (var xElement in xDocument.Root.Elements()) { if (xElement.Name.ToString().ToUpper() == "OrganizacionID".ToUpper()) { int xElementOrganizacionID; if (int.TryParse(xElement.Value, out xElementOrganizacionID)) { OrganizacionInfo organizacion = ListaOrganizacion.FirstOrDefault(o => o.OrganizacionID == (int.Parse(xElement.Value)) && o.TipoOrganizacion.TipoOrganizacionID == TipoOrganizacion.Ganadera.GetHashCode()); if (organizacion != null) { organizacionID = organizacion.OrganizacionID; } } break; } if (xElement.Name.ToString().ToUpper() == "Nombre_Del_Centro".ToUpper()) { OrganizacionInfo organizacion = ListaOrganizacion.FirstOrDefault(o => o.Descripcion.ToUpper() == (xElement.Value.ToUpper())); organizacion = ListaOrganizacion.FirstOrDefault( o => organizacion != null && o.Division.ToUpper() == organizacion.Division.ToUpper() && o.TipoOrganizacion.TipoOrganizacionID == TipoOrganizacion.Ganadera.GetHashCode()); if (organizacion != null) { organizacionID = organizacion.OrganizacionID; } break; } } IncidenciasInfo incidenciasInfo = new IncidenciasInfo { Organizacion = new OrganizacionInfo { OrganizacionID = organizacionID }, Alerta = new AlertaInfo { AlertaID = alertaInfo.AlertaID, HorasRespuesta = alertaInfo.HorasRespuesta, ConfiguracionAlerta = new ConfiguracionAlertasInfo { NivelAlerta = new NivelAlertaInfo { NivelAlertaId = alertaInfo.ConfiguracionAlerta.NivelAlerta.NivelAlertaId } } }, XmlConsulta = xDocument, Estatus = new EstatusInfo { EstatusId = Estatus.NuevaAlert.GetHashCode() }, UsuarioCreacionID = usuario.UsuarioID, Activo = EstatusEnum.Activo }; listaNuevasIncidencias.Add(incidenciasInfo); } } } } } using (var transaction = new TransactionScope()) { if (listaNuevasIncidencias.Any()) { GuardarNuevasIncidencias(listaNuevasIncidencias, TipoFolio.AlertaSiap.GetHashCode()); } ProcesarIncicencias(); transaction.Complete(); } } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }