<commit_before># == Schema Information
#
# Table name: factura_compras
#
#  id                   :integer          not null, primary key
#  proveedor_id         :integer
#  user_id              :integer
#  numero               :integer
#  observacion          :string(255)
#  fecha_de_emision     :datetime
#  fecha_de_vencimiento :datetime
#  subtotal_0           :float            not null
#  iva                  :float            not null
#  total                :float            not null
#  created_at           :datetime
#  updated_at           :datetime
#  subtotal_12          :float
#

class FacturaCompra < ActiveRecord::Base
  belongs_to :proveedor
  belongs_to :user
  has_many :factura_compras_productos
  has_many :productos, :through => :factura_compras_productos
  accepts_nested_attributes_for :factura_compras_productos, :proveedor

  #callbacks
  before_save :set_values
  after_save :add_liquidacion

  def proveedor_attributes=(attributes)
    if attributes['id'].present?
      self.proveedor = Proveedor.find(attributes['id'])
    end
    super
  end

  def set_values
    self.fecha_de_emision = Time.now
    self.fecha_de_vencimiento = Time.now + 30.days
  end

  def add_liquidacion
    Liquidacion.add_compra(self)
  end
end<commit_msg>some validations<commit_after># == Schema Information
#
# Table name: factura_compras
#
#  id                   :integer          not null, primary key
#  proveedor_id         :integer
#  user_id              :integer
#  numero               :integer
#  observacion          :string(255)
#  fecha_de_emision     :datetime
#  fecha_de_vencimiento :datetime
#  subtotal_0           :float            not null
#  iva                  :float            not null
#  total                :float            not null
#  created_at           :datetime
#  updated_at           :datetime
#  subtotal_12          :float
#

class FacturaCompra < ActiveRecord::Base
  belongs_to :proveedor
  belongs_to :user
  has_many :factura_compras_productos
  has_many :productos, :through => :factura_compras_productos
  accepts_nested_attributes_for :factura_compras_productos, :proveedor

  #validations
  validates :numero, :fecha_de_emision, :proveedor_id, :presence =>true

  #callbacks
  before_save :set_values
  after_save :add_liquidacion

  def proveedor_attributes=(attributes)
    if attributes['id'].present?
      self.proveedor = Proveedor.find(attributes['id'])
    end
    super
  end

  def set_values
    # self.fecha_de_emision = Time.now
    self.fecha_de_vencimiento = Time.now + 30.days
  end

  def add_liquidacion
    Liquidacion.add_compra(self)
  end
end
{'fraction_non_alphanumeric': 0.07058374666157954, 'fraction_numerical': 0.006104540251812286, 'mean_word_length': 2.4545454545454546, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 6, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1977634', 'n_tokens_mistral': 876, 'n_tokens_neox': 841, 'n_words': 177}