예제 #1
0
        /// <summary>
        /// Obtiene la lista de comisiones asignadas al proveedor identificado
        /// </summary>
        /// <param name="ProveedorID">ID del Proveedor</param>
        /// <returns></returns>
        public List <ComisionInfo> obtenerComisionesProveedor(int ProveedorID)
        {
            List <ComisionInfo> resultado = new List <ComisionInfo>();

            try
            {
                Logger.Info();
                var comisionDAL = new ComisionDAL();
                resultado = comisionDAL.obtenerComisionesProveedor(ProveedorID);
            }
            catch (ExcepcionGenerica)
            {
                throw;
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }

            return(resultado);
        }
예제 #2
0
        /// <summary>
        /// Obtiene el catalogo de tipos de comision
        /// </summary>
        /// <returns>Lista de tipos de comision</returns>
        public List <TipoComisionInfo> ObtenerTiposComision()
        {
            List <TipoComisionInfo> tiposComision = new List <TipoComisionInfo>();

            try
            {
                Logger.Info();
                var comisionDAL = new ComisionDAL();
                tiposComision = comisionDAL.ObtenerTiposComisiones();
            }
            catch (ExcepcionGenerica)
            {
                throw;
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }

            return(tiposComision);
        }
예제 #3
0
        /// <summary>
        /// Guarda las comisiones del proveedor
        /// </summary>
        /// <param name="comsiones">Lista de comisiones a guardar</param>
        /// <returns>Retorna verdadero cuando los datos se guardaron correctamente</returns>
        public bool GuardarComisiones(List <ComisionInfo> comsiones)
        {
            bool resultado = false;

            try
            {
                Logger.Info();
                var comisionDAL = new ComisionDAL();
                resultado = comisionDAL.GuardarComisiones(comsiones);
            }
            catch (ExcepcionGenerica)
            {
                throw;
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }

            return(resultado);
        }
예제 #4
0
        /// <summary>
        ///     Metodo que Guarda un proveedor
        /// </summary>
        /// <param name="info"></param>
        internal void Guardar(ProveedorInfo info)
        {
            try
            {
                Logger.Info();
                using (var tscope = new System.Transactions.TransactionScope(System.Transactions.TransactionScopeOption.Required))
                {
                    var proveedorDAL = new ProveedorDAL();
                    if (info.ProveedorID != 0)
                    {
                        proveedorDAL.Actualizar(info);
                        var provComisionDal = new ComisionDAL();
                        var provChofDAL     = new ProveedorChoferDAL();

                        var lista = (from p in info.Choferes
                                     select new ProveedorChoferInfo()
                        {
                            Proveedor = info,
                            Chofer = p,
                            Activo = EstatusEnum.Activo,
                            UsuarioCreacionID = info.UsuarioModificacionID ?? 0
                        }).ToList();

                        provChofDAL.Guardar(lista);
                        provComisionDal.GuardarComisiones(info.Comisiones);
                        if (info.TipoProveedor.TipoProveedorID == TipoProveedorEnum.Comisionistas.GetHashCode())
                        {
                            var listaRetenciones = new List <ProveedorRetencionInfo>();
                            ObtenerListaProveedorRetencion(listaRetenciones, info);
                            if (listaRetenciones.Any())
                            {
                                var proveedorRetencionBL = new ProveedorRetencionBL();
                                IList <ProveedorRetencionInfo> listaRetencionesGuardadas =
                                    proveedorRetencionBL.ObtenerPorProveedorID(info.ProveedorID);

                                if (listaRetencionesGuardadas != null && listaRetencionesGuardadas.Any())
                                {
                                    ProveedorRetencionInfo proveedorRetencionInfo;
                                    foreach (var retencion in listaRetenciones)
                                    {
                                        if (retencion.Iva != null)
                                        {
                                            proveedorRetencionInfo =
                                                listaRetencionesGuardadas.FirstOrDefault(ret => ret.Iva.IvaID > 0);
                                            if (proveedorRetencionInfo != null)
                                            {
                                                retencion.ProveedorRetencionID =
                                                    proveedorRetencionInfo.ProveedorRetencionID;
                                                retencion.UsuarioModificacionID = info.UsuarioModificacionID ?? 0;
                                            }
                                        }
                                        else
                                        {
                                            proveedorRetencionInfo =
                                                listaRetencionesGuardadas.FirstOrDefault(ret => ret.Retencion.TipoRetencion.Equals(retencion.Retencion.TipoRetencion));
                                            if (proveedorRetencionInfo != null)
                                            {
                                                retencion.ProveedorRetencionID =
                                                    proveedorRetencionInfo.ProveedorRetencionID;
                                                retencion.UsuarioModificacionID = info.UsuarioModificacionID ?? 0;
                                            }
                                        }
                                    }
                                }

                                proveedorRetencionBL.GuardarLista(listaRetenciones);
                            }
                        }
                    }
                    else
                    {
                        proveedorDAL.Crear(info);
                    }
                    tscope.Complete();
                }
            }
            catch (ExcepcionGenerica)
            {
                throw;
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
        }