/// <summary> /// Obtiene una lista de CondicionJaula /// </summary> /// <returns></returns> internal IEnumerable <CondicionJaulaInfo> ObtenerTodos() { try { Logger.Info(); IMapBuilderContext <CondicionJaulaInfo> mapeo = MapCondicionJaulaDAL.ObtenerMapeoCondicionJaula(); IEnumerable <CondicionJaulaInfo> condicionesJaula = GetDatabase().ExecuteSprocAccessor <CondicionJaulaInfo>( "CondicionJaula_ObtenerTodos", mapeo.Build()); return(condicionesJaula); } catch (SqlException ex) { Logger.Error(ex); throw new ExcepcionServicio(MethodBase.GetCurrentMethod(), ex); } catch (DataException ex) { Logger.Error(ex); throw new ExcepcionServicio(MethodBase.GetCurrentMethod(), ex); } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
/// <summary> /// Obtiene una lista de gastos de materia prima /// por sus movimientos de almacen /// </summary> /// <param name="almacenesMovimiento"></param> /// <returns></returns> internal IEnumerable <GastoMateriaPrimaInfo> ObtenerGastosMateriaPrimaPorAlmacenMovimientoXML(List <AlmacenMovimientoInfo> almacenesMovimiento) { try { Logger.Info(); Dictionary <string, object> parameters = AuxGastoMateriaPrimaDAL.ObtenerParametrosPorAlmacenMovimientoXML(almacenesMovimiento); IMapBuilderContext <GastoMateriaPrimaInfo> mapeo = MapGastoMateriaPrimaDAL.ObtenerPolizasConciliacion(); IEnumerable <GastoMateriaPrimaInfo> foliosFaltantes = GetDatabase().ExecuteSprocAccessor <GastoMateriaPrimaInfo>( "GastoMateriaPrima_ObtenerConciliacionMovimientosSIAP", mapeo.Build(), new[] { parameters["@XmlAlmacenMovimiento"] }); return(foliosFaltantes); } catch (SqlException ex) { Logger.Error(ex); throw new ExcepcionServicio(MethodBase.GetCurrentMethod(), ex); } catch (DataException ex) { Logger.Error(ex); throw new ExcepcionServicio(MethodBase.GetCurrentMethod(), ex); } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
/// <summary> /// Obtiene los movimientos de muerte /// </summary> /// <param name="fechaMuerte"></param> /// <returns></returns> internal IEnumerable <AnimalMovimientoInfo> ObtenerMovimientosMuertes(DateTime fechaMuerte) { try { Logger.Info(); IMapBuilderContext <AnimalMovimientoInfo> mapeoAnimal = MapAnimalMovimientosHistoricoDAL.ObtenerMapeoAnimalHistorico(); IEnumerable <AnimalMovimientoInfo> movimientosMuerte = GetDatabase().ExecuteSprocAccessor <AnimalMovimientoInfo>( "AnimalMovimientoHistorico_ObtenerMuertesPorFecha", mapeoAnimal.Build(), new object[] { fechaMuerte }); return(movimientosMuerte); } catch (SqlException ex) { Logger.Error(ex); throw new ExcepcionServicio(MethodBase.GetCurrentMethod(), ex); } catch (DataException ex) { Logger.Error(ex); throw new ExcepcionServicio(MethodBase.GetCurrentMethod(), ex); } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
/// <summary> /// Obtiene un enumerable de almacen movimiento costo /// </summary> /// <param name="movimientosAlmacen"></param> /// <returns></returns> internal IEnumerable <AlmacenMovimientoCostoInfo> ObtenerAlmacenMovimientoCostoPorAlmacenMovimientoXML(IEnumerable <AlmacenMovimientoInfo> movimientosAlmacen) { try { Logger.Info(); IMapBuilderContext <AlmacenMovimientoCostoInfo> mapeo = MapAlmacenMovimientoCostoDAL.ObtenerMapeoAlmacenMovimientoCosto(); string parametro = AuxAlmacenMovimientoCostoDAL.ObtenerParametrosObtenerAlmacenMovimientoXML(movimientosAlmacen); IEnumerable <AlmacenMovimientoCostoInfo> corrales = GetDatabase().ExecuteSprocAccessor <AlmacenMovimientoCostoInfo>( "AlmacenMovimientoCosto_ObtenerPorAlmacenMovimientoXML", mapeo.Build(), new object[] { parametro }); return(corrales); } catch (SqlException ex) { Logger.Error(ex); throw new ExcepcionServicio(MethodBase.GetCurrentMethod(), ex); } catch (DataException ex) { Logger.Error(ex); throw new ExcepcionServicio(MethodBase.GetCurrentMethod(), ex); } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
/// <summary> /// Obtiene una coleccion de gastos por inventario /// </summary> /// <param name="organizacionID"></param> /// <param name="fechaInicial"></param> /// <param name="fechaFinal"></param> /// <returns></returns> internal IEnumerable <GastoInventarioInfo> ObtenerGastosInventarioPorFechaConciliacion(int organizacionID, DateTime fechaInicial, DateTime fechaFinal) { try { Logger.Info(); IMapBuilderContext <GastoInventarioInfo> mapeo = MapGastoInventarioDAL.ObtenerGastosInventarioConciliacion(); IEnumerable <GastoInventarioInfo> foliosFaltantes = GetDatabase().ExecuteSprocAccessor <GastoInventarioInfo>( "GastoInventario_ObtenerPorFechaConciliacion", mapeo.Build(), new object[] { organizacionID, fechaInicial, fechaFinal }); return(foliosFaltantes); } catch (SqlException ex) { Logger.Error(ex); throw new ExcepcionServicio(MethodBase.GetCurrentMethod(), ex); } catch (DataException ex) { Logger.Error(ex); throw new ExcepcionServicio(MethodBase.GetCurrentMethod(), ex); } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
/// <summary> /// Obtiene los movimientos de los subproductos de premezcla /// </summary> /// <param name="productosPremezcla"></param> /// <returns></returns> internal IEnumerable <AlmacenMovimientoSubProductosModel> ObtenerMovimientosSubProductos(IEnumerable <AlmacenMovimientoSubProductosModel> productosPremezcla) { try { Logger.Info(); IMapBuilderContext <AlmacenMovimientoSubProductosModel> mapeo = MapAlmacenMovimientoDAL.ObtenerMapeoAlmacenMovimientoSubProductos(); string parameters = AuxAlmacenMovimientoDAL.ObtenerParametrosMovimientosSubProductos(productosPremezcla); IEnumerable <AlmacenMovimientoSubProductosModel> movimientosSubProductos = GetDatabase().ExecuteSprocAccessor <AlmacenMovimientoSubProductosModel>( "AlmacenMoviento_ObtenerSubProductos", mapeo.Build(), new object[] { parameters }); return(movimientosSubProductos); } 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> /// Método que obtiene el listado de pólizas de la organización en el rango de fechas indicado. /// </summary> /// <param name="conciliacionParametros"></param> internal List <PolizaInfo> ObtenerPolizasConciliacionSapSiap(ConciliaciionParametros conciliacionParametros) { try { Logger.Info(); IMapBuilderContext <PolizaInfo> mapeo = MapPolizaDAL.ObtenerPolizasConciliacionSapSiap(); var xmlDivisiones = AuxPolizaDAL.ObtenerParametrosObtenerPolizasConciliacionSapSiap(conciliacionParametros.diviciones); var foliosFaltantes = GetDatabase().ExecuteSprocAccessor( "Poliza_ObtenerConciliacionSapSiapPorFechas", mapeo.Build(), new object[] { conciliacionParametros.Organizacion.OrganizacionID, conciliacionParametros.fechaInicio, conciliacionParametros.fechaFin, xmlDivisiones, conciliacionParametros.Prefijo }).ToList(); return(foliosFaltantes); } catch (SqlException ex) { Logger.Error(ex); throw new ExcepcionServicio(MethodBase.GetCurrentMethod(), ex); } catch (DataException ex) { Logger.Error(ex); throw new ExcepcionServicio(MethodBase.GetCurrentMethod(), ex); } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
/// <summary> /// Obtiene los movimientos para su conciliacion /// </summary> /// <param name="organizacionID"></param> /// <param name="fechaInicio"></param> /// <param name="fechaFin"></param> /// <param name="claseDocumento"> </param> /// <returns></returns> internal IEnumerable <PolizaInfo> ObtenerPolizasConciliacion(int organizacionID, DateTime fechaInicio, DateTime fechaFin , string claseDocumento) { try { Logger.Info(); IMapBuilderContext <PolizaInfo> mapeo = MapPolizaDAL.ObtenerPolizasConciliacion(); IEnumerable <PolizaInfo> foliosFaltantes = GetDatabase().ExecuteSprocAccessor( "Poliza_ObtenerConciliacionPorFechas", mapeo.Build(), new object[] { organizacionID, fechaInicio, fechaFin, claseDocumento }); return(foliosFaltantes); } 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> /// Tạo mapper /// </summary> /// <typeparam name="T">Kiểu đối tượng</typeparam> /// <param name="reader">Đối tượng IDataReader</param> /// <param name="sqlName">Tên đầy đủ của câu sql. VD: Sql.BT0000.GetAll</param> /// <returns></returns> private static IRowMapper <T> GetRowMapper <T>(IDataReader reader, string sqlName = "") where T : new() { IRowMapper <T> result = null; Type type = typeof(T); bool cache = !string.IsNullOrEmpty(sqlName); int hashCode = (type.FullName + sqlName).GetHashCode(); // Kiểm tra mapper đã được cache hay chưa if (cache && RowMappers.ContainsKey(hashCode)) { result = (IRowMapper <T>)RowMappers[hashCode]; } // Nếu không được cache thì tạo mới else { IMapBuilderContext <T> context = MapBuilder <T> .MapNoProperties(); PropertyInfo property = null; string propertyName = string.Empty; for (int i = reader.FieldCount - 1; i >= 0; i--) { propertyName = reader.GetName(i); property = type.GetProperty(propertyName); // Trường hợp không lấy đc property thì lấy theo column name if (property == null) { // Lấy dữ liệu property theo column của Object property = type.GetProperties().FirstOrDefault(prop => prop.GetCustomAttributes(false) .OfType <ColumnAttribute>() .Any(attribute => attribute.Name == propertyName)); } // Chỉ map những field vừa có trong câu sql vừa có trong đối tượng if (property != null && property.CanRead && property.CanWrite) { context.MapByName(property); } } result = context.Build(); // Nếu có yêu cầu cache thì lưu vào cache if (reader.FieldCount > 0 && cache) { RowMappers.Add(hashCode, result); } } return(result); }
/// <summary> /// Obtiene una lista con /// los sacrificios generados /// </summary> /// <param name="organizacionID"></param> /// <param name="fechaInicial"></param> /// <param name="fechaFinal"></param> /// <returns></returns> internal IEnumerable <PolizaSacrificioModel> ObtenerPolizasSacrificioConciliacion(int organizacionID, DateTime fechaInicial, DateTime fechaFinal) { try { IMapBuilderContext <PolizaSacrificioModel> mapeo = MapLoteSacrificioDAL.ObtenerMapeoPolizasSacrificioConciliacion(); IEnumerable <PolizaSacrificioModel> almacenMovimientoCostoPorAlmacenMovimiento = GetDatabase(). ExecuteSprocAccessor <PolizaSacrificioModel>( "SalidaSacrificio_ObtenerPolizaConciliacion", mapeo.Build(), new object[] { organizacionID, fechaInicial, fechaFinal }); return(almacenMovimientoCostoPorAlmacenMovimiento); } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
/// <summary> /// Obtiene una lista con las entradas de producto /// </summary> /// <param name="movimientosEntrada"></param> /// <returns></returns> internal IEnumerable <EntradaProductoInfo> ObtenerEntradasPorAlmacenMovimientoXML(List <AlmacenMovimientoInfo> movimientosEntrada) { try { Dictionary <string, object> parametros = AuxEntradaProductoDAL.ObtenerParametrosEntradasPorAlmacenMovimientoXML(movimientosEntrada); IMapBuilderContext <EntradaProductoInfo> mapeo = MapEntradaProductoDAL.ObtenerMapeoEntradaProducto(); IEnumerable <EntradaProductoInfo> listaEntradaProductos = GetDatabase().ExecuteSprocAccessor <EntradaProductoInfo>( "EntradaProducto_ObtenerConciliacionAlmacenMovimientoXML", mapeo.Build(), new [] { parametros["@AlmacenMovimientoXML"] }); return(listaEntradaProductos); } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
/// <summary> /// Obtiene los datos para cancelar /// las polizas de sacrificio por fecha /// </summary> /// <param name="fecha"></param> /// <returns></returns> internal IEnumerable <PolizaSacrificioModel> ObtenerDatosPolizaSacrificioCanceladas(DateTime fecha) { try { IMapBuilderContext <PolizaSacrificioModel> mapeo = MapLoteSacrificioDAL.ObtenerMapeoPolizasSacrificioServicio(); IEnumerable <PolizaSacrificioModel> datosPolizasSacrificio = GetDatabase(). ExecuteSprocAccessor <PolizaSacrificioModel>( "LoteSacrificio_ObtenerDatosPorFechaCancelacion", mapeo.Build(), new object[] { fecha }); return(datosPolizasSacrificio); } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
/// <summary> /// Obtiene una lista con los animales muertos a conciliar /// </summary> /// <param name="organizacionID"> </param> /// <param name="fechaInicial"></param> /// <param name="fechaFinal"></param> /// <returns></returns> internal IEnumerable <AnimalMovimientoInfo> ObtenerAnimalesMuertos(int organizacionID, DateTime fechaInicial, DateTime fechaFinal) { try { IMapBuilderContext <AnimalMovimientoInfo> mapeo = MapAnimalMovimientosDAL.ObtenerAnimalMovimientoMuertos(); IEnumerable <AnimalMovimientoInfo> almacenAnimalMovimientosMuertes = GetDatabase(). ExecuteSprocAccessor <AnimalMovimientoInfo>( "MuerteGanado_ObtenerMuertesPolizaConciliacion", mapeo.Build(), new object[] { organizacionID, fechaInicial, fechaFinal }); return(almacenAnimalMovimientosMuertes); } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
/// <summary> /// Obtiene una lista de movimientos costos por almacen movimiento /// </summary> /// <returns></returns> internal IEnumerable <AlmacenMovimientoCostoInfo> ObtenerAlmacenMovimientoCostoPorContratoXML(List <ContratoInfo> contratosParciales) { try { string parametro = AuxAlmacenMovimientoCostoDAL.ObtenerParametrosAlmacenMovimientoCostoPorContratoXML(contratosParciales); IMapBuilderContext <AlmacenMovimientoCostoInfo> mapeo = MapAlmacenMovimientoCostoDAL.ObtenerAlmacenMovimientoCostoPorContratoXML(); IEnumerable <AlmacenMovimientoCostoInfo> almacenMovimientoCostoPorAlmacenMovimiento = GetDatabase(). ExecuteSprocAccessor <AlmacenMovimientoCostoInfo>( "AlmacenMovimientoCosto_ObtenerPorContratoXML", mapeo.Build(), new object[] { parametro }); return(almacenMovimientoCostoPorAlmacenMovimiento); } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
/// <summary> /// Ejecuta procedimiento almacenado con sus parametros /// </summary> /// <param name="procedimientoAlmacenado"></param> /// <param name="parametros"></param> /// <returns></returns> private IEnumerable <CondicionJaulaInfo> ObtenerCondicionesJaula(string procedimientoAlmacenado, object[] parametros) { try { Logger.Info(); IMapBuilderContext <CondicionJaulaInfo> mapeo = MapCondicionJaulaDAL.ObtenerMapeoCondicionJaula(); IEnumerable <CondicionJaulaInfo> condicionesJaula = GetDatabase().ExecuteSprocAccessor <CondicionJaulaInfo>(procedimientoAlmacenado, mapeo.Build(), parametros); return(condicionesJaula); } 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); } }