/// <summary> /// obtiene el almacen movimiento /// </summary> /// <param name="almacenMovimientoInfo"></param> /// <param name="activo"></param> /// <returns></returns> public IList <AlmacenMovimientoInfo> ObtenerListaAlmacenMovimiento(AlmacenMovimientoInfo almacenMovimientoInfo, int activo) { try { Logger.Info(); var almacenDAL = new AlmacenDAL(); IList <AlmacenMovimientoInfo> resultado = new List <AlmacenMovimientoInfo>(); IList <AlmacenMovimientoInfo> result = almacenDAL.ObtenerListaAlmacenMovimiento(almacenMovimientoInfo, activo); if (result != null) { foreach (var movimientoInfo in result) { if (movimientoInfo.Status == (int)EstatusInventario.Pendiente) { resultado.Add(movimientoInfo); } } } return(resultado); } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
/// <summary> /// Obtiene una entidad Almacen por su descripción /// </summary> /// <param name="almacenMovimientoInfo"></param> /// <returns></returns> public AlmacenMovimientoInfo ObtenerAlmacenMovimiento(AlmacenMovimientoInfo almacenMovimientoInfo) { try { Logger.Info(); var almacenDAL = new AlmacenDAL(); AlmacenMovimientoInfo result = almacenDAL.ObtenerAlmacenMovimiento(almacenMovimientoInfo); if (result != null) { AlmacenMovimientoDetalleBL almacenMovimientoDetalleBl = new AlmacenMovimientoDetalleBL(); result.ListaAlmacenMovimientoDetalle = new List <AlmacenMovimientoDetalle> { almacenMovimientoDetalleBl.ObtenerPorAlmacenMovimientoID(result.AlmacenMovimientoID) }; AlmacenMovimientoCostoBL almacenMovimientoCostoBl = new AlmacenMovimientoCostoBL(); result.ListaAlmacenMovimientoCosto = almacenMovimientoCostoBl.ObtenerPorAlmacenMovimientoId(result); } return(result); } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
/// <summary> /// Método que obtiene una lista paginada /// </summary> /// <param name="ds"></param> /// <returns></returns> public static ResultadoInfo <TraspasoMpPaMedInfo> ObtenerPorPagina(DataSet ds) { try { var contratoDAL = new ContratoDAL(); var almacenDAL = new AlmacenDAL(); var almacenInventarioLoteDAL = new AlmacenInventarioLoteDAL(); var cuentaSAPDAL = new CuentaSAPDAL(); var productoDAL = new ProductoDAL(); Logger.Info(); DataTable dt = ds.Tables[ConstantesDAL.DtDatos]; List <TraspasoMpPaMedInfo> lista = (from info in dt.AsEnumerable() select new TraspasoMpPaMedInfo { TraspasoMateriaPrimaID = info.Field <int>("TraspasoMateriaPrimaID"), ContratoOrigen = info.Field <int?>("ContratoOrigenID") != null ? contratoDAL.ObtenerPorId(new ContratoInfo { ContratoId = info.Field <int>("ContratoOrigenID") }) : new ContratoInfo(), ContratoDestino = info.Field <int?>("ContratoDestinoID") != null ? contratoDAL.ObtenerPorId(new ContratoInfo { ContratoId = info.Field <int>("ContratoDestinoID") }) : new ContratoInfo(), FolioTraspaso = info.Field <long>("FolioTraspaso"), AlmacenOrigen = almacenDAL.ObtenerPorID(info.Field <int>("AlmacenOrigenID")), AlmacenDestino = almacenDAL.ObtenerPorID(info.Field <int>("AlmacenDestinoID")), LoteMpOrigen = info.Field <int?>("InventarioLoteOrigenID") != null ? almacenInventarioLoteDAL.ObtenerAlmacenInventarioLotePorId(info.Field <int>("InventarioLoteOrigenID")) : new AlmacenInventarioLoteInfo(), LoteMpDestino = info.Field <int?>("InventarioLoteDestinoID") != null ? almacenInventarioLoteDAL.ObtenerAlmacenInventarioLotePorId(info.Field <int>("InventarioLoteDestinoID")) : new AlmacenInventarioLoteInfo(), CuentaContable = info.Field <int?>("CuentaSAPID") != null ? cuentaSAPDAL.ObtenerPorID(info.Field <int>("CuentaSAPID")) : new CuentaSAPInfo(), JustificacionDestino = info.Field <string>("Justificacion"), CantidadTraspasarOrigen = info.Field <decimal>("CantidadSalida"), CantidadTraspasarDestino = info.Field <decimal>("CantidadEntrada"), ProductoOrigen = productoDAL.ObtenerPorID(new ProductoInfo { ProductoId = info.Field <int>("ProductoID") }), FechaTraspaso = info.Field <DateTime>("FechaMovimiento") //AlmacenMovimientoOrigen = new AlmacenMovimientoInfo { AlmacenMovimientoID = info.Field<long>("AlmacenMovimientoID")}, //AlmacenMovimientoDestino = new AlmacenMovimientoInfo { AlmacenMovimientoID = info.Field<long>("AlmacenMovimientoID")}, //Activo = info.Field<bool>("Activo").BoolAEnum(), }).ToList(); int totalRegistros = Convert.ToInt32(ds.Tables[ConstantesDAL.DtContador].Rows[0]["TotalReg"]); var resultado = new ResultadoInfo <TraspasoMpPaMedInfo> { Lista = lista, TotalRegistros = totalRegistros }; return(resultado); } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
internal void ActualizarFolioAlmacen(int almacenID) { var almacenDAL = new AlmacenDAL(); var filtroCierreDiaAlmacen = new FiltroCierreDiaInventarioInfo { AlmacenID = almacenID, TipoMovimientoID = TipoMovimiento.DiferenciasDeInventario.GetHashCode() }; almacenDAL.ActualizarFolioAlmacen(filtroCierreDiaAlmacen); }
/// <summary> /// Método que obtiene un traspaso de materia prima por su folio /// </summary> /// <param name="ds"></param> /// <returns></returns> public static TraspasoMpPaMedInfo ObtenerPorFolio(DataSet ds) { try { var contratoDAL = new ContratoDAL(); var almacenDAL = new AlmacenDAL(); var almacenInventarioLoteDAL = new AlmacenInventarioLoteDAL(); var cuentaSAPDAL = new CuentaSAPDAL(); var productoDAL = new ProductoDAL(); Logger.Info(); DataTable dt = ds.Tables[ConstantesDAL.DtDatos]; TraspasoMpPaMedInfo result = (from info in dt.AsEnumerable() select new TraspasoMpPaMedInfo { TraspasoMateriaPrimaID = info.Field <int>("TraspasoMateriaPrimaID"), ContratoOrigen = info.Field <int?>("ContratoOrigenID") != null ? contratoDAL.ObtenerPorId(new ContratoInfo { ContratoId = info.Field <int>("ContratoOrigenID") }) : new ContratoInfo(), ContratoDestino = info.Field <int?>("ContratoDestinoID") != null ? contratoDAL.ObtenerPorId(new ContratoInfo { ContratoId = info.Field <int>("ContratoDestinoID") }) : new ContratoInfo(), FolioTraspaso = info.Field <long>("FolioTraspaso"), AlmacenOrigen = almacenDAL.ObtenerPorID(info.Field <int>("AlmacenOrigenID")), AlmacenDestino = almacenDAL.ObtenerPorID(info.Field <int>("AlmacenDestinoID")), LoteMpOrigen = info.Field <int?>("InventarioLoteOrigenID") != null ? almacenInventarioLoteDAL.ObtenerAlmacenInventarioLotePorId(info.Field <int>("InventarioLoteOrigenID")) : new AlmacenInventarioLoteInfo(), LoteMpDestino = info.Field <int?>("InventarioLoteDestinoID") != null ? almacenInventarioLoteDAL.ObtenerAlmacenInventarioLotePorId(info.Field <int>("InventarioLoteDestinoID")) : new AlmacenInventarioLoteInfo(), CuentaContable = info.Field <int?>("CuentaSAPID") != null ? cuentaSAPDAL.ObtenerPorID(info.Field <int>("CuentaSAPID")) : new CuentaSAPInfo(), JustificacionDestino = info.Field <string>("Justificacion"), CantidadTraspasarOrigen = info.Field <decimal>("CantidadSalida"), CantidadTraspasarDestino = info.Field <decimal>("CantidadEntrada"), ProductoOrigen = productoDAL.ObtenerPorID(new ProductoInfo { ProductoId = info.Field <int>("ProductoID") }), FechaTraspaso = info.Field <DateTime>("FechaMovimiento") }).First(); return(result); } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
/// <summary> /// Metodo que elimina en AlmacenMovimientoDetalle /// </summary> /// <param name="almacenInventarioDetalle"></param> public void EliminaAlmacenMovimientoDetalle(AlmacenMovimientoDetalle almacenInventarioDetalle) { try { Logger.Info(); var almacenDAL = new AlmacenDAL(); almacenDAL.EliminarAlmacenMovimientoDetalle(almacenInventarioDetalle); } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
/// <summary> /// Se almacena el detalle de almacen Movimiento /// </summary> /// <param name="almacenDetalle"></param> /// <returns></returns> public AlmacenMovimientoDetalle GuardarAlmacenMovimientoDetalleProducto(AlmacenMovimientoDetalle almacenDetalle) { try { Logger.Info(); var almacenDAL = new AlmacenDAL(); return(almacenDAL.GuardarAlmacenMovimientoDetalleProducto(almacenDetalle)); } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
/// <summary> /// Obtiene el valor del folio para ese almacen /// </summary> /// <param name="filtros"></param> /// <returns></returns> internal int ObtenerFolioAlmacenConsulta(FiltroCierreDiaInventarioInfo filtros) { try { Logger.Info(); var almacenDal = new AlmacenDAL(); return(almacenDal.ObtenerFolioAlmacenConsulta(filtros)); } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
/// <summary> /// Obtiene los almacenes por organizacion y tipo de almacen /// </summary> /// <param name="datos"></param> /// <returns></returns> public AlmacenInventarioInfo ObtenerAlmacenInventarioPorOrganizacionTipoAlmacen(ParametrosOrganizacionTipoAlmacenProductoActivo datos) { try { Logger.Info(); var almacenDal = new AlmacenDAL(); return(almacenDal.ObtenerAlmacenInventarioPorOrganizacionTipoAlmacen(datos)); } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
/// <summary> /// Obtiene el valor del folio para ese almacen /// </summary> /// <param name="organizacionID"></param> /// <returns></returns> internal List <AlmacenesCierreDiaInventarioPAModel> ObtenerAlmacenesOrganizacion(int organizacionID) { try { Logger.Info(); var almacenDal = new AlmacenDAL(); return(almacenDal.ObtenerAlmacenesOrganizacion(organizacionID)); } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
/// <summary> /// Metodo que actualiza un registro en AlmacenInventario /// </summary> /// <param name="almacenInventarioInfo"></param> public void ActualizarAlmacenInventario(AlmacenInventarioInfo almacenInventarioInfo) { try { Logger.Info(); var almacenDAL = new AlmacenDAL(); almacenDAL.ActualizarAlmacenInventario(almacenInventarioInfo); } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
/// <summary> /// Obtiene un almacen por su clave /// </summary> /// <param name="almacen"></param> /// <returns></returns> internal AlmacenInfo ObtenerPorAlmacenPoliza(AlmacenInfo almacen) { try { Logger.Info(); var almacenDal = new AlmacenDAL(); return(almacenDal.ObtenerPorAlmacenPoliza(almacen)); } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
internal decimal GuardarAlmacenMovimientoDetalle(List <AlmacenMovimientoDetalle> almacenDetalleLista, int almacenID) { try { Logger.Info(); var almacenDAL = new AlmacenDAL(); decimal resultado = almacenDAL.GuardarAlmacenMovimientoDetalle(almacenDetalleLista, almacenID); return(resultado); } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
/// <summary> /// Guarda el almacen movimiento /// </summary> /// <param name="almacenMovimientoNuevo"></param> /// <returns></returns> internal AlmacenMovimientoInfo GuardarAlmacenMovimiento(AlmacenMovimientoInfo almacenMovimientoNuevo) { try { Logger.Info(); var almacenDAL = new AlmacenDAL(); AlmacenMovimientoInfo resultado = almacenDAL.GuardarAlmacenMovimiento(almacenMovimientoNuevo); return(resultado); } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
/// <summary> /// Obtiene una lista filtrando por el estatus Activo = 1, Inactivo = 0 /// </summary> /// <returns></returns> internal IList <AlmacenInfo> ObtenerTodos(EstatusEnum estatus) { try { Logger.Info(); var almacenDAL = new AlmacenDAL(); IList <AlmacenInfo> result = almacenDAL.ObtenerTodos(estatus); return(result); } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
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> /// Obtener productos almacen /// </summary> /// <param name="almacenId"></param> /// <param name="organizacionId"></param> /// <returns></returns> public IList <AlmacenCierreDiaInventarioInfo> ObtenerProductosAlamcen(int almacenId, int organizacionId) { try { Logger.Info(); var almacenDAL = new AlmacenDAL(); IList <AlmacenCierreDiaInventarioInfo> result = almacenDAL.ObtenerProductosAlamcen(almacenId, organizacionId); return(result); } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
/// <summary> /// ObtenerDatosAlmacenInventario /// </summary> /// <param name="cierreInventarioInfo"></param> /// <returns></returns> public AlmacenCierreDiaInventarioInfo ObtenerDatosAlmacenInventario(AlmacenCierreDiaInventarioInfo cierreInventarioInfo) { try { Logger.Info(); var almacenDAL = new AlmacenDAL(); AlmacenCierreDiaInventarioInfo result = almacenDAL.ObtenerDatosAlmacenInventario(cierreInventarioInfo); return(result); } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
/// <summary> /// Obtiene los almacenes por organizacion /// </summary> /// <param name="organizacionId"></param> /// <returns></returns> public IList <AlmacenInfo> ObtenerAlmacenPorOrganizacion(int organizacionId) { try { Logger.Info(); var almacenDAL = new AlmacenDAL(); IList <AlmacenInfo> result = almacenDAL.ObtenerAlmacenPorOrganizacion(organizacionId); return(result); } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
/// <summary> /// Obtiene una entidad Almacen por su descripción /// </summary> /// <param name="descripcion"></param> /// <returns></returns> internal AlmacenInfo ObtenerPorDescripcion(string descripcion) { try { Logger.Info(); var almacenDAL = new AlmacenDAL(); AlmacenInfo result = almacenDAL.ObtenerPorDescripcion(descripcion); return(result); } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
/// <summary> /// Obtiene los movimeintos por contrato /// (resc) /// </summary> /// <param name="contrato"></param> /// <returns></returns> internal List <AlmacenMovimientoDetalle> ObtenerAlmacenMovimientoPorContrato(ContratoInfo contrato) { try { Logger.Info(); var almacenDAL = new AlmacenDAL(); List <AlmacenMovimientoDetalle> resultado = almacenDAL.ObtenerAlmacenMovimientoPorContrato(contrato); return(resultado); } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
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> /// Obtiene un almacen por id y tipo almacen /// </summary> /// <param name="filtro"></param> /// <returns></returns> internal AlmacenInfo ObtenerPorIdFiltroTipoAlmacen(AlmacenInfo filtro) { try { Logger.Info(); var almacenDAL = new AlmacenDAL(); AlmacenInfo result = almacenDAL.ObtenerPorIdFiltroTipoAlmacen(filtro); return(result); } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
/// <summary> /// Obtiene un lista paginada /// </summary> /// <param name="pagina"></param> /// <param name="filtro"></param> /// <returns></returns> internal ResultadoInfo <AlmacenInfo> ObtenerPorPaginaTipoAlmacen(PaginacionInfo pagina, AlmacenInfo filtro) { try { Logger.Info(); var almacenDAL = new AlmacenDAL(); ResultadoInfo <AlmacenInfo> result = almacenDAL.ObtenerPorPaginaTipoAlmacen(pagina, filtro); return(result); } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
/// <summary> /// Obtiene un Almacen por su Id /// </summary> /// <returns> </returns> internal AlmacenInfo ObtenerPorID(int almacenID) { AlmacenInfo info; try { Logger.Info(); var almacenDAL = new AlmacenDAL(); info = almacenDAL.ObtenerPorID(almacenID); } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } return(info); }
/// <summary> /// Valida si existe Inventario en el almacen para el producto o medicamento /// </summary> /// <param name="itemProducto"></param> /// <param name="almacenID"></param> internal AlmacenInventarioInfo ObtenerCantidadProductoEnInventario(ProductoInfo itemProducto, int almacenID) { AlmacenInventarioInfo info; try { Logger.Info(); var almacenDAL = new AlmacenDAL(); info = almacenDAL.ObtenerCantidadProductoEnInventario(itemProducto, almacenID); } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } return(info); }
/// <summary> /// Validar que no queden ajustes pendientes por aplicar para el almacen(Diferencias de inventario) /// </summary> /// <param name="almacenMovimientoInfo"></param> /// <returns></returns> internal bool ExistenAjustesPendientesParaAlmacen(AlmacenMovimientoInfo almacenMovimientoInfo) { bool info; try { Logger.Info(); var almacenDAL = new AlmacenDAL(); info = almacenDAL.ExistenAjustesPendientesParaAlmacen(almacenMovimientoInfo); } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } return(info); }
/// <summary> /// Validar si el producto tiene existencias en algun Almacen /// </summary> /// <param name="productoID"></param> /// <returns></returns> internal bool ValidarExistenciasProductoEnAlmacen(int productoID) { bool info; try { Logger.Info(); var almacenDAL = new AlmacenDAL(); info = almacenDAL.ValidarExistenciasProductoEnAlmacen(productoID); } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } return(info); }
/// <summary> /// Metodo para Guardar/Modificar una entidad Almacen /// </summary> /// <param name="info"></param> internal int Guardar(AlmacenInfo info) { try { Logger.Info(); var almacenDAL = new AlmacenDAL(); int result = info.AlmacenID; bool esModificacion = result > 0; using (var scope = new TransactionScope()) { if (info.AlmacenID == 0) { result = almacenDAL.Crear(info); } else { almacenDAL.Actualizar(info); } if (info.Proveedor != null && info.Proveedor.ProveedorID > 0) { var proveedorAlmacenDAL = new ProveedorAlmacenDAL(); var proveedorAlmacen = new ProveedorAlmacenInfo { Proveedor = info.Proveedor, Almacen = new AlmacenInfo { AlmacenID = result } }; if (esModificacion) { ProveedorAlmacenInfo proveedorAlmacenExiste = proveedorAlmacenDAL.ObtenerPorAlmacenID(result); if (info.Activo == EstatusEnum.Inactivo) { if (proveedorAlmacenExiste != null) { proveedorAlmacenExiste.Activo = EstatusEnum.Inactivo; proveedorAlmacenExiste.UsuarioModificacionID = info.UsuarioModificacionID; proveedorAlmacenDAL.Actualizar(proveedorAlmacenExiste); scope.Complete(); return(result); } } if (proveedorAlmacenExiste != null) { proveedorAlmacenExiste.UsuarioModificacionID = info.UsuarioModificacionID.HasValue ? info.UsuarioModificacionID.Value : 0; proveedorAlmacenExiste.Proveedor = info.Proveedor; proveedorAlmacenDAL.Actualizar(proveedorAlmacenExiste); scope.Complete(); return(result); } } else { proveedorAlmacen.UsuarioCreacionID = info.UsuarioCreacionID; } proveedorAlmacenDAL.Crear(proveedorAlmacen); } scope.Complete(); } return(result); } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
/// <summary> /// Funcion para guardar los tratamientos en almacen movimiento y descontarlos del inventario /// </summary> /// <param name="listaTratamientos"></param> /// <param name="almacenMovimientoInfo"></param> internal int GuardarDescontarTratamientos(List <TratamientoInfo> listaTratamientos, AlmacenMovimientoInfo almacenMovimientoInfo) { var info = 0; try { Logger.Info(); var almacenDAL = new AlmacenDAL(); var resp = almacenDAL.GuardarAlmacenMovimiento(almacenMovimientoInfo); //Almacenar el MovimientoDetalle if (resp != null) { almacenMovimientoInfo.AlmacenMovimientoID = resp.AlmacenMovimientoID; almacenMovimientoInfo.FolioMovimiento = resp.FolioMovimiento; almacenMovimientoInfo.FechaCreacion = resp.FechaCreacion; almacenMovimientoInfo.FechaMovimiento = resp.FechaMovimiento; //Se obtiene la lista de productos y tratamientos a insertar var listaAlmacenMovimientoDetalle = ( from tratamiento in listaTratamientos from producto in tratamiento.Productos select new AlmacenMovimientoDetalle { TratamientoID = tratamiento.TratamientoID, ProductoID = producto.ProductoId, Precio = 0, Cantidad = producto.Dosis, Importe = 0, AlmacenMovimientoID = almacenMovimientoInfo.AlmacenMovimientoID, UsuarioCreacionID = almacenMovimientoInfo.UsuarioCreacionID }).ToList(); var lista = new List <AlmacenMovimientoDetalle>(); foreach (var almacenMovimintoDetalle in listaAlmacenMovimientoDetalle) { var existe = true; foreach (var almacenMovimintoDetalleInfo in lista) { if (almacenMovimintoDetalle.ProductoID == almacenMovimintoDetalleInfo.ProductoID) { existe = false; } } if (existe) { lista.Add(almacenMovimintoDetalle); } } //Se almacena el detalle del movimiento var costoTotal = almacenDAL.GuardarAlmacenMovimientoDetalle(lista, almacenMovimientoInfo.AlmacenID); var animalCosto = new AnimalCostoInfo { AnimalID = almacenMovimientoInfo.AnimalID, CostoID = almacenMovimientoInfo.CostoID, FolioReferencia = almacenMovimientoInfo.AlmacenMovimientoID, Importe = costoTotal, UsuarioCreacionID = almacenMovimientoInfo.UsuarioCreacionID }; //Almacenr el costo en Animal Costo var animalBL = new AnimalBL(); info = animalBL.GuardarAnimalCosto(animalCosto); } } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } return(info); }