Пример #1
0
        /// <summary>
        /// Metrodo para obtener un listado de contratos por estado
        /// </summary>
        internal List <ContratoInfo> ObtenerPorEstado(EstatusEnum estatus)
        {
            List <ContratoInfo> result;

            try
            {
                Logger.Info();
                var contratoDAL = new ContratoDAL();
                result = contratoDAL.ObtenerPorEstado(estatus);
                if (result != null)
                {
                    foreach (var contratoInfo in result)
                    {
                        if (contratoInfo.Organizacion.OrganizacionID > 0)
                        {
                            var organizacionBl = new OrganizacionBL();
                            contratoInfo.Organizacion =
                                organizacionBl.ObtenerPorID(contratoInfo.Organizacion.OrganizacionID);
                        }

                        if (contratoInfo.Producto.ProductoId > 0)
                        {
                            var productoBl = new ProductoBL();
                            contratoInfo.Producto = productoBl.ObtenerPorID(contratoInfo.Producto);
                        }

                        if (contratoInfo.Proveedor.ProveedorID > 0)
                        {
                            var proveedorBl = new ProveedorBL();
                            contratoInfo.Proveedor =
                                proveedorBl.ObtenerPorID(contratoInfo.Proveedor.ProveedorID);
                        }

                        if (contratoInfo.TipoContrato.TipoContratoId > 0)
                        {
                            var tipoContratoBl = new TipoContratoBL();
                            contratoInfo.TipoContrato =
                                tipoContratoBl.ObtenerPorId(contratoInfo.TipoContrato.TipoContratoId);
                        }

                        if (contratoInfo.TipoFlete.TipoFleteId > 0)
                        {
                            var tipoFleteBl = new TipoFleteBL();
                            contratoInfo.TipoFlete =
                                tipoFleteBl.ObtenerPorId(contratoInfo.TipoFlete.TipoFleteId);
                        }

                        if (contratoInfo.ContratoId <= 0)
                        {
                            continue;
                        }
                        var contratoDetalleBl = new ContratoDetalleBL();
                        contratoInfo.ListaContratoDetalleInfo = contratoDetalleBl.ObtenerPorContratoId(contratoInfo);
                    }
                }
            }
            catch (ExcepcionGenerica)
            {
                throw;
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
            return(result);
        }
Пример #2
0
        /// <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);
        }