module PgRails::PrintHelper
def dmy(date)
def dmy(date) date = parsear_fecha(date) if date.is_a? String return unless date.present? date.strftime('%d/%m/%Y') end
def dmy_time(date)
def dmy_time(date) date = parsear_tiempo(date) if date.is_a? String return unless date.present? date.strftime('%d/%m/%Y %H:%M') end
def dmyg(date)
def dmyg(date) date = parsear_fecha(date) if date.is_a? String return unless date.present? date.strftime('%d-%m-%Y') end
def mostrar_con_link(objeto, options = {})
def mostrar_con_link(objeto, options = {}) return unless objeto.present? if policy(objeto).show? content = truncate_title(block_given? ? yield : objeto) if options[:new_tab] content += " <i class='fa fa-external-link'>".html_safe link_to content.html_safe, objeto, target: :_blank else link_to content.html_safe, objeto end else truncate_title(block_given? ? yield : objeto) end end
def myg(date)
def myg(date) date = parsear_fecha(date) if date.is_a? String return unless date.present? date.strftime('%m-%Y') end
def parsear_fecha(date)
def parsear_fecha(date) return nil unless date.present? Date.parse(date) rescue ArgumentError raise FechaInvalidaError, date end
def parsear_tiempo(datetime)
def parsear_tiempo(datetime) return nil unless datetime.present? DateTime.parse(datetime) rescue ArgumentError raise FechaInvalidaError, datetime end
def pg_ajax_link(url, options = {})
Es igual a los links con remote: true, pero evita que abran el link en otra
Genera un falso link que al clickear carga la url por ajax
def pg_ajax_link(url, options = {}) content_tag :span, class: 'pg_ajax_link', data: options.merge(url: url) do block_given? ? yield : '' end end
def print_boolean(boolean)
def print_boolean(boolean) return if boolean.nil? return 'Si' if boolean 'No' end
def print_cuit(cuit_number)
def print_cuit(cuit_number) return '' unless cuit_number.present? str = cuit_number.to_s "#{str[0..1]}-#{str[2..9]}-#{str[10]}" end
def print_currency(number, moneda = 'pesos')
def print_currency(number, moneda = 'pesos') return unless number.present? "<span class='currency #{moneda}'>#{number_with_precision(number, delimiter: '.', separator: ',', precision: 2)}</span>".html_safe end
def print_currency2(number, moneda = 'pesos')
def print_currency2(number, moneda = 'pesos') return unless number.present? "#{simbolo_moneda(moneda)} #{number_with_precision(number, delimiter: '.', separator: ',', precision: 2)}" end
def print_number(number)
def print_number(number) number_with_precision(number, delimiter: ',', separator: '.', precision: 2) end
def print_number_coma(number)
def print_number_coma(number) number_with_precision(number, delimiter: '.', separator: ',', precision: 2) end
def print_value(nombre_clase, field, value)
def print_value(nombre_clase, field, value) if !value.nil? == value # es booleano value ? 'Si' : 'No' elsif value.nil? '-' else begin if nombre_clase.constantize.defined_enums[field].present? valor = nombre_clase.constantize.defined_enums[field].invert[value] I18n.t("enums.#{nombre_clase.downcase}.#{field}.#{valor}", default: valor) else truncate_title(value.to_s.encode('UTF-8', invalid: :replace, undef: :replace)) end rescue NameError truncate_title(value.to_s.encode('UTF-8', invalid: :replace, undef: :replace)) end end end
def show_percentage(value)
def show_percentage(value) return unless value.present? "#{value.round(2)} %" end
def simbolo_moneda(moneda)
def simbolo_moneda(moneda) return '$' if moneda == 'pesos' return 'U$S' if moneda == 'dolares' return '€' if moneda == 'euros' return 'R$' if moneda == 'reales' return 'CLP' if moneda == 'pesos_chilenos' return 'MXN' if moneda == 'pesos_mexicanos' '$' end
def truncate_title(input, length = 20)
def truncate_title(input, length = 20) string = input.to_s if string.length > length content_tag :span, title: input, rel: :tooltip do truncate string, length: length end else string end end
def ymd(date)
def ymd(date) date = parsear_fecha(date) if date.is_a? String return unless date.present? date.strftime('%Y/%m/%d') end
def ymdg(date)
def ymdg(date) date = parsear_fecha(date) if date.is_a? String return unless date.present? date.strftime('%Y-%m-%d') end