/// <summary> /// Guarda los costos de los movimientos /// </summary> /// <param name="distribucionDeIngredientes"></param> /// <param name="almacenMovimientoID"></param> /// <param name="distribucionorganizaciones"></param> /// <returns></returns> internal bool GuardarCosto(DistribucionDeIngredientesInfo distribucionDeIngredientes, long almacenMovimientoID, DistribucionDeIngredientesOrganizacionInfo distribucionorganizaciones) { bool regreso = true; try { var cuentaSAPBL = new CuentaSAPBL(); IList <CuentaSAPInfo> cuentasSAP = cuentaSAPBL.ObtenerTodos(EstatusEnum.Activo); var almacenMovimientoCostoBl = new AlmacenMovimientoCostoBL(); if (almacenMovimientoID > 0) { //Se obtiene el porcentaje a cobrar cargar por organizacion decimal porcentajeSurtido = distribucionDeIngredientes.CantidadTotal > 0 ? (decimal)distribucionorganizaciones.CantidadSurtir / (decimal)distribucionDeIngredientes.CantidadTotal : 0; foreach (var costoDistribucion in distribucionDeIngredientes.ListaPremezclaDistribucionCosto) { var almacenMovimientoCosto = new AlmacenMovimientoCostoInfo { AlmacenMovimientoId = almacenMovimientoID, Iva = costoDistribucion.Iva, Retencion = costoDistribucion.Retencion, CostoId = costoDistribucion.Costo.CostoID, Importe = costoDistribucion.Importe * porcentajeSurtido, UsuarioCreacionId = costoDistribucion.UsuarioCreacionID }; if (costoDistribucion.TieneCuenta) { CuentaSAPInfo cuenta = cuentasSAP.FirstOrDefault( sap => sap.CuentaSAP.Trim().Equals(costoDistribucion.CuentaSAP.CuentaSAP.Trim())); if (cuenta != null) { almacenMovimientoCosto.CuentaSAPID = cuenta.CuentaSAPID; almacenMovimientoCosto.TieneCuenta = costoDistribucion.TieneCuenta; } } else { almacenMovimientoCosto.ProveedorId = costoDistribucion.Proveedor.ProveedorID; } almacenMovimientoCostoBl.Crear(almacenMovimientoCosto); } } } catch (ExcepcionGenerica) { regreso = false; throw; } catch (Exception ex) { regreso = false; Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } return(regreso); }
/// <summary> /// Obtiene una salida de producto por id /// </summary> /// <param name="salidaProducto"></param> /// <returns></returns> internal SalidaProductoInfo ObtenerPorSalidaProductoId(SalidaProductoInfo salidaProducto) { try { var salidaProductoDal = new SalidaProductoDAL(); salidaProducto = salidaProductoDal.ObtenerPorSalidaProductoId(salidaProducto); if (salidaProducto != null) { if (salidaProducto.Organizacion.OrganizacionID > 0) { var organizacionBl = new OrganizacionBL(); salidaProducto.Organizacion = organizacionBl.ObtenerPorID(salidaProducto.Organizacion.OrganizacionID); } if (salidaProducto.OrganizacionDestino.OrganizacionID > 0) { var organizacionBl = new OrganizacionBL(); salidaProducto.Organizacion = organizacionBl.ObtenerPorID(salidaProducto.OrganizacionDestino.OrganizacionID); } if (salidaProducto.Almacen.AlmacenID > 0) { var almacenBl = new AlmacenBL(); salidaProducto.Almacen = almacenBl.ObtenerPorID(salidaProducto.Almacen.AlmacenID); } if (salidaProducto.AlmacenInventarioLote.AlmacenInventarioLoteId > 0) { var almacenInventarioLoteBl = new AlmacenInventarioLoteBL(); salidaProducto.AlmacenInventarioLote = almacenInventarioLoteBl.ObtenerAlmacenInventarioLotePorId( salidaProducto.AlmacenInventarioLote.AlmacenInventarioLoteId); } if (salidaProducto.Cliente.ClienteID > 0) { var clienteBl = new ClienteBL(); salidaProducto.Cliente = clienteBl.ObtenerPorID(salidaProducto.Cliente.ClienteID); } if (salidaProducto.CuentaSAP.CuentaSAPID > 0) { var cuentaSapBl = new CuentaSAPBL(); salidaProducto.CuentaSAP = cuentaSapBl.ObtenerPorID(salidaProducto.CuentaSAP.CuentaSAPID); } if (salidaProducto.TipoMovimiento.TipoMovimientoID > 0) { var tipoMovimientoBl = new TipoMovimientoBL(); salidaProducto.TipoMovimiento = tipoMovimientoBl.ObtenerPorID(salidaProducto.TipoMovimiento.TipoMovimientoID); } } } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } return(salidaProducto); }
/// <summary> /// Obtiene un contrato por id /// </summary> /// <param name="contratoInfo"></param> /// <returns>ContratoInfo</returns> internal ContratoInfo ObtenerPorId(ContratoInfo contratoInfo) { ContratoInfo contrato; try { Logger.Info(); var contratoDAL = new ContratoDAL(); contrato = contratoDAL.ObtenerPorId(contratoInfo); if (contrato != null) { if (contrato.Organizacion.OrganizacionID > 0) { var organizacionBl = new OrganizacionBL(); contrato.Organizacion = organizacionBl.ObtenerPorID(contrato.Organizacion.OrganizacionID); } if (contrato.Producto.ProductoId > 0) { var productoBl = new ProductoBL(); contrato.Producto = productoBl.ObtenerPorID(contrato.Producto); } if (contrato.Proveedor.ProveedorID > 0) { var proveedorBl = new ProveedorBL(); contrato.Proveedor = proveedorBl.ObtenerPorID(contrato.Proveedor.ProveedorID); } if (contrato.TipoContrato.TipoContratoId > 0) { var tipoContratoBl = new TipoContratoBL(); contrato.TipoContrato = tipoContratoBl.ObtenerPorId(contrato.TipoContrato.TipoContratoId); contrato.tipocontratodescripcion = contrato.TipoContrato.Descripcion.ToString(); } if (contrato.TipoFlete != null && contrato.TipoFlete.TipoFleteId > 0) { var tipoFleteBl = new TipoFleteBL(); contrato.TipoFlete = tipoFleteBl.ObtenerPorId(contrato.TipoFlete.TipoFleteId); } if (contrato.TipoCambio != null && contrato.TipoCambio.TipoCambioId > 0) { var tipoCambioBl = new TipoCambioBL(); contrato.TipoCambio = tipoCambioBl.ObtenerPorId(contrato.TipoCambio.TipoCambioId); } if (contrato.ContratoId > 0) { var contratoDetalleBl = new ContratoDetalleBL(); contrato.ListaContratoDetalleInfo = contratoDetalleBl.ObtenerPorContratoId(contrato); } //Obtener precio y cantidad por tonelada contrato.CantidadToneladas = (int)(contrato.Cantidad / 1000); if (contrato.TipoCambio != null) { if (contrato.TipoCambio.Descripcion == Properties.ResourceServices.ContratoBL_DescripcionMonedaDolarMayuscula) { contrato.PrecioToneladas = (contrato.Precio * 1000) / contrato.TipoCambio.Cambio; } else { contrato.PrecioToneladas = contrato.Precio * 1000; } } if (contrato.Cuenta != null) { if (contrato.Cuenta.CuentaSAPID > 0) { CuentaSAPBL cuentaSapBl = new CuentaSAPBL(); contrato.Cuenta.Activo = EstatusEnum.Activo; contrato.Cuenta = cuentaSapBl.ObtenerPorFiltroSinTipo(contrato.Cuenta); } } // } } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } return(contrato); }