billing_information.rb 1.7 KB

1234567891011121314151617181920212223242526272829
  1. class BillingInformation < ActiveRecord::Base
  2. ##--- Associaciones
  3. belongs_to :customer
  4. belongs_to :supplier
  5. belongs_to :spmx_county, :foreign_key => "county_id"
  6. belongs_to :spmx_state, :foreign_key => "state_id"
  7. ##--- Llevar registro de Actividad del usuario
  8. # audited
  9. enum status: [:erased, :active, :inactive]
  10. ##--- Validaciones previas de guardar
  11. validates_presence_of :name, message: "Debe capturar el nombre de la razón social."
  12. validates :rfc, :presence => {message: "Debe capturar el RFC del cliente."}, length:{ maximum: 13, too_long: "El RFC no debe ser mayor a %{count} caracteres." }
  13. validates_presence_of :state_id, message: "Debe especificar el estado."
  14. validates_presence_of :county_id, message: "Debe especificar el municipio."
  15. # validates_presence_of :city, message: "Debe especificar la ciudad o localidad."
  16. # validates_presence_of :suburb, message: "Debe especificar la colonia."
  17. # validates_presence_of :address, message: "Debe capturar la dirección de la Empresa."
  18. validates :zipcode, :presence => { :message => "Debe especificar el código postal"}, :numericality => { :only_integer => true, :message => "El código postal debe ser numérico.", allow_nil: true }
  19. validates :num_ext, length: { maximum: 10, too_long: "El no. ext no debe ser mayor a %{count} caracteres." }, :unless => Proc.new {|c| c.num_ext.blank?}
  20. validates :num_int, length: { maximum: 10, too_long: "El no. int no debe ser mayor a %{count} caracteres." }, :unless => Proc.new {|c| c.num_int.blank?}
  21. ##--- Funciones personalizadas
  22. def address_complete
  23. "#{self.address} No. #{num_ext}" + (self.num_int != '' ? "Int. #{num_int}," : ",") +" C.P. #{zipcode} \n #{suburb}, #{city}, #{spmx_county.name}, #{spmx_state.name} "
  24. end
  25. end