<?php

/**
 * Base class that represents a row from the 'katao_config' table.
 *
 * 
 *
 * @package    lib.model.om
 */
abstract class BaseKataoConfig extends BaseObject  implements Persistent {


	/**
	 * The Peer class.
	 * Instance provides a convenient way of calling static methods on a class
	 * that calling code may not be able to identify.
	 * @var        KataoConfigPeer
	 */
	protected static $peer;


	/**
	 * The value for the id field.
	 * @var        int
	 */
	protected $id;


	/**
	 * The value for the katao_member_id field.
	 * @var        int
	 */
	protected $katao_member_id;


	/**
	 * The value for the name field.
	 * @var        string
	 */
	protected $name;


	/**
	 * The value for the address field.
	 * @var        string
	 */
	protected $address;


	/**
	 * The value for the phone field.
	 * @var        string
	 */
	protected $phone;


	/**
	 * The value for the email field.
	 * @var        string
	 */
	protected $email;


	/**
	 * The value for the siret_number field.
	 * @var        string
	 */
	protected $siret_number;


	/**
	 * The value for the tva_number field.
	 * @var        string
	 */
	protected $tva_number;


	/**
	 * The value for the rcs_number field.
	 * @var        string
	 */
	protected $rcs_number;


	/**
	 * The value for the capital field.
	 * @var        int
	 */
	protected $capital;


	/**
	 * The value for the initial_transactions_count field.
	 * @var        int
	 */
	protected $initial_transactions_count = 0;


	/**
	 * The value for the initial_transactions_sum field.
	 * @var        double
	 */
	protected $initial_transactions_sum = 0;


	/**
	 * The value for the default_product_picture field.
	 * @var        string
	 */
	protected $default_product_picture;


	/**
	 * The value for the default_product_margin field.
	 * @var        int
	 */
	protected $default_product_margin = 15;


	/**
	 * The value for the default_product_sol_percent field.
	 * @var        int
	 */
	protected $default_product_sol_percent = 5;


	/**
	 * The value for the mailing_list_email field.
	 * @var        string
	 */
	protected $mailing_list_email;


	/**
	 * The value for the cart_validation_days_number field.
	 * @var        int
	 */
	protected $cart_validation_days_number = 1;


	/**
	 * The value for the accounting_code_prefix_purchase field.
	 * @var        string
	 */
	protected $accounting_code_prefix_purchase;


	/**
	 * The value for the accounting_code_prefix_sell field.
	 * @var        string
	 */
	protected $accounting_code_prefix_sell;


	/**
	 * The value for the accounting_code_bank field.
	 * @var        string
	 */
	protected $accounting_code_bank;


	/**
	 * The value for the accounting_code_bank_sol field.
	 * @var        string
	 */
	protected $accounting_code_bank_sol;


	/**
	 * The value for the accounting_code_credit field.
	 * @var        string
	 */
	protected $accounting_code_credit;


	/**
	 * The value for the accounting_code_error_adjustment_positive field.
	 * @var        string
	 */
	protected $accounting_code_error_adjustment_positive;


	/**
	 * The value for the accounting_code_error_adjustment_negative field.
	 * @var        string
	 */
	protected $accounting_code_error_adjustment_negative;


	/**
	 * The value for the accounting_code_sol_discount field.
	 * @var        string
	 */
	protected $accounting_code_sol_discount;


	/**
	 * The value for the accounting_code_fees_shipping field.
	 * @var        string
	 */
	protected $accounting_code_fees_shipping;


	/**
	 * The value for the accounting_code_fees_billing field.
	 * @var        string
	 */
	protected $accounting_code_fees_billing;


	/**
	 * The value for the accounting_code_discount field.
	 * @var        string
	 */
	protected $accounting_code_discount;


	/**
	 * The value for the member_fee field.
	 * @var        double
	 */
	protected $member_fee = 0;


	/**
	 * The value for the additional_currency_name field.
	 * @var        string
	 */
	protected $additional_currency_name;


	/**
	 * The value for the debug_email field.
	 * @var        string
	 */
	protected $debug_email;


	/**
	 * The value for the bank_name field.
	 * @var        string
	 */
	protected $bank_name;


	/**
	 * The value for the bank_account field.
	 * @var        string
	 */
	protected $bank_account;

	/**
	 * @var        KataoMember
	 */
	protected $aKataoMember;

	/**
	 * Flag to prevent endless save loop, if this object is referenced
	 * by another object which falls in this transaction.
	 * @var        boolean
	 */
	protected $alreadyInSave = false;

	/**
	 * Flag to prevent endless validation loop, if this object is referenced
	 * by another object which falls in this transaction.
	 * @var        boolean
	 */
	protected $alreadyInValidation = false;

	/**
	 * Get the [id] column value.
	 * 
	 * @return     int
	 */
	public function getId()
	{

		return $this->id;
	}

	/**
	 * Get the [katao_member_id] column value.
	 * 
	 * @return     int
	 */
	public function getKataoMemberId()
	{

		return $this->katao_member_id;
	}

	/**
	 * Get the [name] column value.
	 * 
	 * @return     string
	 */
	public function getName()
	{

		return $this->name;
	}

	/**
	 * Get the [address] column value.
	 * 
	 * @return     string
	 */
	public function getAddress()
	{

		return $this->address;
	}

	/**
	 * Get the [phone] column value.
	 * 
	 * @return     string
	 */
	public function getPhone()
	{

		return $this->phone;
	}

	/**
	 * Get the [email] column value.
	 * 
	 * @return     string
	 */
	public function getEmail()
	{

		return $this->email;
	}

	/**
	 * Get the [siret_number] column value.
	 * 
	 * @return     string
	 */
	public function getSiretNumber()
	{

		return $this->siret_number;
	}

	/**
	 * Get the [tva_number] column value.
	 * 
	 * @return     string
	 */
	public function getTvaNumber()
	{

		return $this->tva_number;
	}

	/**
	 * Get the [rcs_number] column value.
	 * 
	 * @return     string
	 */
	public function getRcsNumber()
	{

		return $this->rcs_number;
	}

	/**
	 * Get the [capital] column value.
	 * 
	 * @return     int
	 */
	public function getCapital()
	{

		return $this->capital;
	}

	/**
	 * Get the [initial_transactions_count] column value.
	 * 
	 * @return     int
	 */
	public function getInitialTransactionsCount()
	{

		return $this->initial_transactions_count;
	}

	/**
	 * Get the [initial_transactions_sum] column value.
	 * 
	 * @return     double
	 */
	public function getInitialTransactionsSum()
	{

		return $this->initial_transactions_sum;
	}

	/**
	 * Get the [default_product_picture] column value.
	 * 
	 * @return     string
	 */
	public function getDefaultProductPicture()
	{

		return $this->default_product_picture;
	}

	/**
	 * Get the [default_product_margin] column value.
	 * 
	 * @return     int
	 */
	public function getDefaultProductMargin()
	{

		return $this->default_product_margin;
	}

	/**
	 * Get the [default_product_sol_percent] column value.
	 * 
	 * @return     int
	 */
	public function getDefaultProductSolPercent()
	{

		return $this->default_product_sol_percent;
	}

	/**
	 * Get the [mailing_list_email] column value.
	 * 
	 * @return     string
	 */
	public function getMailingListEmail()
	{

		return $this->mailing_list_email;
	}

	/**
	 * Get the [cart_validation_days_number] column value.
	 * 
	 * @return     int
	 */
	public function getCartValidationDaysNumber()
	{

		return $this->cart_validation_days_number;
	}

	/**
	 * Get the [accounting_code_prefix_purchase] column value.
	 * 
	 * @return     string
	 */
	public function getAccountingCodePrefixPurchase()
	{

		return $this->accounting_code_prefix_purchase;
	}

	/**
	 * Get the [accounting_code_prefix_sell] column value.
	 * 
	 * @return     string
	 */
	public function getAccountingCodePrefixSell()
	{

		return $this->accounting_code_prefix_sell;
	}

	/**
	 * Get the [accounting_code_bank] column value.
	 * 
	 * @return     string
	 */
	public function getAccountingCodeBank()
	{

		return $this->accounting_code_bank;
	}

	/**
	 * Get the [accounting_code_bank_sol] column value.
	 * 
	 * @return     string
	 */
	public function getAccountingCodeBankSol()
	{

		return $this->accounting_code_bank_sol;
	}

	/**
	 * Get the [accounting_code_credit] column value.
	 * 
	 * @return     string
	 */
	public function getAccountingCodeCredit()
	{

		return $this->accounting_code_credit;
	}

	/**
	 * Get the [accounting_code_error_adjustment_positive] column value.
	 * 
	 * @return     string
	 */
	public function getAccountingCodeErrorAdjustmentPositive()
	{

		return $this->accounting_code_error_adjustment_positive;
	}

	/**
	 * Get the [accounting_code_error_adjustment_negative] column value.
	 * 
	 * @return     string
	 */
	public function getAccountingCodeErrorAdjustmentNegative()
	{

		return $this->accounting_code_error_adjustment_negative;
	}

	/**
	 * Get the [accounting_code_sol_discount] column value.
	 * 
	 * @return     string
	 */
	public function getAccountingCodeSolDiscount()
	{

		return $this->accounting_code_sol_discount;
	}

	/**
	 * Get the [accounting_code_fees_shipping] column value.
	 * 
	 * @return     string
	 */
	public function getAccountingCodeFeesShipping()
	{

		return $this->accounting_code_fees_shipping;
	}

	/**
	 * Get the [accounting_code_fees_billing] column value.
	 * 
	 * @return     string
	 */
	public function getAccountingCodeFeesBilling()
	{

		return $this->accounting_code_fees_billing;
	}

	/**
	 * Get the [accounting_code_discount] column value.
	 * 
	 * @return     string
	 */
	public function getAccountingCodeDiscount()
	{

		return $this->accounting_code_discount;
	}

	/**
	 * Get the [member_fee] column value.
	 * 
	 * @return     double
	 */
	public function getMemberFee()
	{

		return $this->member_fee;
	}

	/**
	 * Get the [additional_currency_name] column value.
	 * 
	 * @return     string
	 */
	public function getAdditionalCurrencyName()
	{

		return $this->additional_currency_name;
	}

	/**
	 * Get the [debug_email] column value.
	 * 
	 * @return     string
	 */
	public function getDebugEmail()
	{

		return $this->debug_email;
	}

	/**
	 * Get the [bank_name] column value.
	 * 
	 * @return     string
	 */
	public function getBankName()
	{

		return $this->bank_name;
	}

	/**
	 * Get the [bank_account] column value.
	 * 
	 * @return     string
	 */
	public function getBankAccount()
	{

		return $this->bank_account;
	}

	/**
	 * Set the value of [id] column.
	 * 
	 * @param      int $v new value
	 * @return     void
	 */
	public function setId($v)
	{

		// Since the native PHP type for this column is integer,
		// we will cast the input value to an int (if it is not).
		if ($v !== null && !is_int($v) && is_numeric($v)) {
			$v = (int) $v;
		}

		if ($this->id !== $v) {
			$this->id = $v;
			$this->modifiedColumns[] = KataoConfigPeer::ID;
		}

	} // setId()

	/**
	 * Set the value of [katao_member_id] column.
	 * 
	 * @param      int $v new value
	 * @return     void
	 */
	public function setKataoMemberId($v)
	{

		// Since the native PHP type for this column is integer,
		// we will cast the input value to an int (if it is not).
		if ($v !== null && !is_int($v) && is_numeric($v)) {
			$v = (int) $v;
		}

		if ($this->katao_member_id !== $v) {
			$this->katao_member_id = $v;
			$this->modifiedColumns[] = KataoConfigPeer::KATAO_MEMBER_ID;
		}

		if ($this->aKataoMember !== null && $this->aKataoMember->getId() !== $v) {
			$this->aKataoMember = null;
		}

	} // setKataoMemberId()

	/**
	 * Set the value of [name] column.
	 * 
	 * @param      string $v new value
	 * @return     void
	 */
	public function setName($v)
	{

		// Since the native PHP type for this column is string,
		// we will cast the input to a string (if it is not).
		if ($v !== null && !is_string($v)) {
			$v = (string) $v; 
		}

		if ($this->name !== $v) {
			$this->name = $v;
			$this->modifiedColumns[] = KataoConfigPeer::NAME;
		}

	} // setName()

	/**
	 * Set the value of [address] column.
	 * 
	 * @param      string $v new value
	 * @return     void
	 */
	public function setAddress($v)
	{

		// Since the native PHP type for this column is string,
		// we will cast the input to a string (if it is not).
		if ($v !== null && !is_string($v)) {
			$v = (string) $v; 
		}

		if ($this->address !== $v) {
			$this->address = $v;
			$this->modifiedColumns[] = KataoConfigPeer::ADDRESS;
		}

	} // setAddress()

	/**
	 * Set the value of [phone] column.
	 * 
	 * @param      string $v new value
	 * @return     void
	 */
	public function setPhone($v)
	{

		// Since the native PHP type for this column is string,
		// we will cast the input to a string (if it is not).
		if ($v !== null && !is_string($v)) {
			$v = (string) $v; 
		}

		if ($this->phone !== $v) {
			$this->phone = $v;
			$this->modifiedColumns[] = KataoConfigPeer::PHONE;
		}

	} // setPhone()

	/**
	 * Set the value of [email] column.
	 * 
	 * @param      string $v new value
	 * @return     void
	 */
	public function setEmail($v)
	{

		// Since the native PHP type for this column is string,
		// we will cast the input to a string (if it is not).
		if ($v !== null && !is_string($v)) {
			$v = (string) $v; 
		}

		if ($this->email !== $v) {
			$this->email = $v;
			$this->modifiedColumns[] = KataoConfigPeer::EMAIL;
		}

	} // setEmail()

	/**
	 * Set the value of [siret_number] column.
	 * 
	 * @param      string $v new value
	 * @return     void
	 */
	public function setSiretNumber($v)
	{

		// Since the native PHP type for this column is string,
		// we will cast the input to a string (if it is not).
		if ($v !== null && !is_string($v)) {
			$v = (string) $v; 
		}

		if ($this->siret_number !== $v) {
			$this->siret_number = $v;
			$this->modifiedColumns[] = KataoConfigPeer::SIRET_NUMBER;
		}

	} // setSiretNumber()

	/**
	 * Set the value of [tva_number] column.
	 * 
	 * @param      string $v new value
	 * @return     void
	 */
	public function setTvaNumber($v)
	{

		// Since the native PHP type for this column is string,
		// we will cast the input to a string (if it is not).
		if ($v !== null && !is_string($v)) {
			$v = (string) $v; 
		}

		if ($this->tva_number !== $v) {
			$this->tva_number = $v;
			$this->modifiedColumns[] = KataoConfigPeer::TVA_NUMBER;
		}

	} // setTvaNumber()

	/**
	 * Set the value of [rcs_number] column.
	 * 
	 * @param      string $v new value
	 * @return     void
	 */
	public function setRcsNumber($v)
	{

		// Since the native PHP type for this column is string,
		// we will cast the input to a string (if it is not).
		if ($v !== null && !is_string($v)) {
			$v = (string) $v; 
		}

		if ($this->rcs_number !== $v) {
			$this->rcs_number = $v;
			$this->modifiedColumns[] = KataoConfigPeer::RCS_NUMBER;
		}

	} // setRcsNumber()

	/**
	 * Set the value of [capital] column.
	 * 
	 * @param      int $v new value
	 * @return     void
	 */
	public function setCapital($v)
	{

		// Since the native PHP type for this column is integer,
		// we will cast the input value to an int (if it is not).
		if ($v !== null && !is_int($v) && is_numeric($v)) {
			$v = (int) $v;
		}

		if ($this->capital !== $v) {
			$this->capital = $v;
			$this->modifiedColumns[] = KataoConfigPeer::CAPITAL;
		}

	} // setCapital()

	/**
	 * Set the value of [initial_transactions_count] column.
	 * 
	 * @param      int $v new value
	 * @return     void
	 */
	public function setInitialTransactionsCount($v)
	{

		// Since the native PHP type for this column is integer,
		// we will cast the input value to an int (if it is not).
		if ($v !== null && !is_int($v) && is_numeric($v)) {
			$v = (int) $v;
		}

		if ($this->initial_transactions_count !== $v || $v === 0) {
			$this->initial_transactions_count = $v;
			$this->modifiedColumns[] = KataoConfigPeer::INITIAL_TRANSACTIONS_COUNT;
		}

	} // setInitialTransactionsCount()

	/**
	 * Set the value of [initial_transactions_sum] column.
	 * 
	 * @param      double $v new value
	 * @return     void
	 */
	public function setInitialTransactionsSum($v)
	{

		if ($this->initial_transactions_sum !== $v || $v === 0) {
			$this->initial_transactions_sum = $v;
			$this->modifiedColumns[] = KataoConfigPeer::INITIAL_TRANSACTIONS_SUM;
		}

	} // setInitialTransactionsSum()

	/**
	 * Set the value of [default_product_picture] column.
	 * 
	 * @param      string $v new value
	 * @return     void
	 */
	public function setDefaultProductPicture($v)
	{

		// Since the native PHP type for this column is string,
		// we will cast the input to a string (if it is not).
		if ($v !== null && !is_string($v)) {
			$v = (string) $v; 
		}

		if ($this->default_product_picture !== $v) {
			$this->default_product_picture = $v;
			$this->modifiedColumns[] = KataoConfigPeer::DEFAULT_PRODUCT_PICTURE;
		}

	} // setDefaultProductPicture()

	/**
	 * Set the value of [default_product_margin] column.
	 * 
	 * @param      int $v new value
	 * @return     void
	 */
	public function setDefaultProductMargin($v)
	{

		// Since the native PHP type for this column is integer,
		// we will cast the input value to an int (if it is not).
		if ($v !== null && !is_int($v) && is_numeric($v)) {
			$v = (int) $v;
		}

		if ($this->default_product_margin !== $v || $v === 15) {
			$this->default_product_margin = $v;
			$this->modifiedColumns[] = KataoConfigPeer::DEFAULT_PRODUCT_MARGIN;
		}

	} // setDefaultProductMargin()

	/**
	 * Set the value of [default_product_sol_percent] column.
	 * 
	 * @param      int $v new value
	 * @return     void
	 */
	public function setDefaultProductSolPercent($v)
	{

		// Since the native PHP type for this column is integer,
		// we will cast the input value to an int (if it is not).
		if ($v !== null && !is_int($v) && is_numeric($v)) {
			$v = (int) $v;
		}

		if ($this->default_product_sol_percent !== $v || $v === 5) {
			$this->default_product_sol_percent = $v;
			$this->modifiedColumns[] = KataoConfigPeer::DEFAULT_PRODUCT_SOL_PERCENT;
		}

	} // setDefaultProductSolPercent()

	/**
	 * Set the value of [mailing_list_email] column.
	 * 
	 * @param      string $v new value
	 * @return     void
	 */
	public function setMailingListEmail($v)
	{

		// Since the native PHP type for this column is string,
		// we will cast the input to a string (if it is not).
		if ($v !== null && !is_string($v)) {
			$v = (string) $v; 
		}

		if ($this->mailing_list_email !== $v) {
			$this->mailing_list_email = $v;
			$this->modifiedColumns[] = KataoConfigPeer::MAILING_LIST_EMAIL;
		}

	} // setMailingListEmail()

	/**
	 * Set the value of [cart_validation_days_number] column.
	 * 
	 * @param      int $v new value
	 * @return     void
	 */
	public function setCartValidationDaysNumber($v)
	{

		// Since the native PHP type for this column is integer,
		// we will cast the input value to an int (if it is not).
		if ($v !== null && !is_int($v) && is_numeric($v)) {
			$v = (int) $v;
		}

		if ($this->cart_validation_days_number !== $v || $v === 1) {
			$this->cart_validation_days_number = $v;
			$this->modifiedColumns[] = KataoConfigPeer::CART_VALIDATION_DAYS_NUMBER;
		}

	} // setCartValidationDaysNumber()

	/**
	 * Set the value of [accounting_code_prefix_purchase] column.
	 * 
	 * @param      string $v new value
	 * @return     void
	 */
	public function setAccountingCodePrefixPurchase($v)
	{

		// Since the native PHP type for this column is string,
		// we will cast the input to a string (if it is not).
		if ($v !== null && !is_string($v)) {
			$v = (string) $v; 
		}

		if ($this->accounting_code_prefix_purchase !== $v) {
			$this->accounting_code_prefix_purchase = $v;
			$this->modifiedColumns[] = KataoConfigPeer::ACCOUNTING_CODE_PREFIX_PURCHASE;
		}

	} // setAccountingCodePrefixPurchase()

	/**
	 * Set the value of [accounting_code_prefix_sell] column.
	 * 
	 * @param      string $v new value
	 * @return     void
	 */
	public function setAccountingCodePrefixSell($v)
	{

		// Since the native PHP type for this column is string,
		// we will cast the input to a string (if it is not).
		if ($v !== null && !is_string($v)) {
			$v = (string) $v; 
		}

		if ($this->accounting_code_prefix_sell !== $v) {
			$this->accounting_code_prefix_sell = $v;
			$this->modifiedColumns[] = KataoConfigPeer::ACCOUNTING_CODE_PREFIX_SELL;
		}

	} // setAccountingCodePrefixSell()

	/**
	 * Set the value of [accounting_code_bank] column.
	 * 
	 * @param      string $v new value
	 * @return     void
	 */
	public function setAccountingCodeBank($v)
	{

		// Since the native PHP type for this column is string,
		// we will cast the input to a string (if it is not).
		if ($v !== null && !is_string($v)) {
			$v = (string) $v; 
		}

		if ($this->accounting_code_bank !== $v) {
			$this->accounting_code_bank = $v;
			$this->modifiedColumns[] = KataoConfigPeer::ACCOUNTING_CODE_BANK;
		}

	} // setAccountingCodeBank()

	/**
	 * Set the value of [accounting_code_bank_sol] column.
	 * 
	 * @param      string $v new value
	 * @return     void
	 */
	public function setAccountingCodeBankSol($v)
	{

		// Since the native PHP type for this column is string,
		// we will cast the input to a string (if it is not).
		if ($v !== null && !is_string($v)) {
			$v = (string) $v; 
		}

		if ($this->accounting_code_bank_sol !== $v) {
			$this->accounting_code_bank_sol = $v;
			$this->modifiedColumns[] = KataoConfigPeer::ACCOUNTING_CODE_BANK_SOL;
		}

	} // setAccountingCodeBankSol()

	/**
	 * Set the value of [accounting_code_credit] column.
	 * 
	 * @param      string $v new value
	 * @return     void
	 */
	public function setAccountingCodeCredit($v)
	{

		// Since the native PHP type for this column is string,
		// we will cast the input to a string (if it is not).
		if ($v !== null && !is_string($v)) {
			$v = (string) $v; 
		}

		if ($this->accounting_code_credit !== $v) {
			$this->accounting_code_credit = $v;
			$this->modifiedColumns[] = KataoConfigPeer::ACCOUNTING_CODE_CREDIT;
		}

	} // setAccountingCodeCredit()

	/**
	 * Set the value of [accounting_code_error_adjustment_positive] column.
	 * 
	 * @param      string $v new value
	 * @return     void
	 */
	public function setAccountingCodeErrorAdjustmentPositive($v)
	{

		// Since the native PHP type for this column is string,
		// we will cast the input to a string (if it is not).
		if ($v !== null && !is_string($v)) {
			$v = (string) $v; 
		}

		if ($this->accounting_code_error_adjustment_positive !== $v) {
			$this->accounting_code_error_adjustment_positive = $v;
			$this->modifiedColumns[] = KataoConfigPeer::ACCOUNTING_CODE_ERROR_ADJUSTMENT_POSITIVE;
		}

	} // setAccountingCodeErrorAdjustmentPositive()

	/**
	 * Set the value of [accounting_code_error_adjustment_negative] column.
	 * 
	 * @param      string $v new value
	 * @return     void
	 */
	public function setAccountingCodeErrorAdjustmentNegative($v)
	{

		// Since the native PHP type for this column is string,
		// we will cast the input to a string (if it is not).
		if ($v !== null && !is_string($v)) {
			$v = (string) $v; 
		}

		if ($this->accounting_code_error_adjustment_negative !== $v) {
			$this->accounting_code_error_adjustment_negative = $v;
			$this->modifiedColumns[] = KataoConfigPeer::ACCOUNTING_CODE_ERROR_ADJUSTMENT_NEGATIVE;
		}

	} // setAccountingCodeErrorAdjustmentNegative()

	/**
	 * Set the value of [accounting_code_sol_discount] column.
	 * 
	 * @param      string $v new value
	 * @return     void
	 */
	public function setAccountingCodeSolDiscount($v)
	{

		// Since the native PHP type for this column is string,
		// we will cast the input to a string (if it is not).
		if ($v !== null && !is_string($v)) {
			$v = (string) $v; 
		}

		if ($this->accounting_code_sol_discount !== $v) {
			$this->accounting_code_sol_discount = $v;
			$this->modifiedColumns[] = KataoConfigPeer::ACCOUNTING_CODE_SOL_DISCOUNT;
		}

	} // setAccountingCodeSolDiscount()

	/**
	 * Set the value of [accounting_code_fees_shipping] column.
	 * 
	 * @param      string $v new value
	 * @return     void
	 */
	public function setAccountingCodeFeesShipping($v)
	{

		// Since the native PHP type for this column is string,
		// we will cast the input to a string (if it is not).
		if ($v !== null && !is_string($v)) {
			$v = (string) $v; 
		}

		if ($this->accounting_code_fees_shipping !== $v) {
			$this->accounting_code_fees_shipping = $v;
			$this->modifiedColumns[] = KataoConfigPeer::ACCOUNTING_CODE_FEES_SHIPPING;
		}

	} // setAccountingCodeFeesShipping()

	/**
	 * Set the value of [accounting_code_fees_billing] column.
	 * 
	 * @param      string $v new value
	 * @return     void
	 */
	public function setAccountingCodeFeesBilling($v)
	{

		// Since the native PHP type for this column is string,
		// we will cast the input to a string (if it is not).
		if ($v !== null && !is_string($v)) {
			$v = (string) $v; 
		}

		if ($this->accounting_code_fees_billing !== $v) {
			$this->accounting_code_fees_billing = $v;
			$this->modifiedColumns[] = KataoConfigPeer::ACCOUNTING_CODE_FEES_BILLING;
		}

	} // setAccountingCodeFeesBilling()

	/**
	 * Set the value of [accounting_code_discount] column.
	 * 
	 * @param      string $v new value
	 * @return     void
	 */
	public function setAccountingCodeDiscount($v)
	{

		// Since the native PHP type for this column is string,
		// we will cast the input to a string (if it is not).
		if ($v !== null && !is_string($v)) {
			$v = (string) $v; 
		}

		if ($this->accounting_code_discount !== $v) {
			$this->accounting_code_discount = $v;
			$this->modifiedColumns[] = KataoConfigPeer::ACCOUNTING_CODE_DISCOUNT;
		}

	} // setAccountingCodeDiscount()

	/**
	 * Set the value of [member_fee] column.
	 * 
	 * @param      double $v new value
	 * @return     void
	 */
	public function setMemberFee($v)
	{

		if ($this->member_fee !== $v || $v === 0) {
			$this->member_fee = $v;
			$this->modifiedColumns[] = KataoConfigPeer::MEMBER_FEE;
		}

	} // setMemberFee()

	/**
	 * Set the value of [additional_currency_name] column.
	 * 
	 * @param      string $v new value
	 * @return     void
	 */
	public function setAdditionalCurrencyName($v)
	{

		// Since the native PHP type for this column is string,
		// we will cast the input to a string (if it is not).
		if ($v !== null && !is_string($v)) {
			$v = (string) $v; 
		}

		if ($this->additional_currency_name !== $v) {
			$this->additional_currency_name = $v;
			$this->modifiedColumns[] = KataoConfigPeer::ADDITIONAL_CURRENCY_NAME;
		}

	} // setAdditionalCurrencyName()

	/**
	 * Set the value of [debug_email] column.
	 * 
	 * @param      string $v new value
	 * @return     void
	 */
	public function setDebugEmail($v)
	{

		// Since the native PHP type for this column is string,
		// we will cast the input to a string (if it is not).
		if ($v !== null && !is_string($v)) {
			$v = (string) $v; 
		}

		if ($this->debug_email !== $v) {
			$this->debug_email = $v;
			$this->modifiedColumns[] = KataoConfigPeer::DEBUG_EMAIL;
		}

	} // setDebugEmail()

	/**
	 * Set the value of [bank_name] column.
	 * 
	 * @param      string $v new value
	 * @return     void
	 */
	public function setBankName($v)
	{

		// Since the native PHP type for this column is string,
		// we will cast the input to a string (if it is not).
		if ($v !== null && !is_string($v)) {
			$v = (string) $v; 
		}

		if ($this->bank_name !== $v) {
			$this->bank_name = $v;
			$this->modifiedColumns[] = KataoConfigPeer::BANK_NAME;
		}

	} // setBankName()

	/**
	 * Set the value of [bank_account] column.
	 * 
	 * @param      string $v new value
	 * @return     void
	 */
	public function setBankAccount($v)
	{

		// Since the native PHP type for this column is string,
		// we will cast the input to a string (if it is not).
		if ($v !== null && !is_string($v)) {
			$v = (string) $v; 
		}

		if ($this->bank_account !== $v) {
			$this->bank_account = $v;
			$this->modifiedColumns[] = KataoConfigPeer::BANK_ACCOUNT;
		}

	} // setBankAccount()

	/**
	 * Hydrates (populates) the object variables with values from the database resultset.
	 *
	 * An offset (1-based "start column") is specified so that objects can be hydrated
	 * with a subset of the columns in the resultset rows.  This is needed, for example,
	 * for results of JOIN queries where the resultset row includes columns from two or
	 * more tables.
	 *
	 * @param      ResultSet $rs The ResultSet class with cursor advanced to desired record pos.
	 * @param      int $startcol 1-based offset column which indicates which restultset column to start with.
	 * @return     int next starting column
	 * @throws     PropelException  - Any caught Exception will be rewrapped as a PropelException.
	 */
	public function hydrate(ResultSet $rs, $startcol = 1)
	{
		try {

			$this->id = $rs->getInt($startcol + 0);

			$this->katao_member_id = $rs->getInt($startcol + 1);

			$this->name = $rs->getString($startcol + 2);

			$this->address = $rs->getString($startcol + 3);

			$this->phone = $rs->getString($startcol + 4);

			$this->email = $rs->getString($startcol + 5);

			$this->siret_number = $rs->getString($startcol + 6);

			$this->tva_number = $rs->getString($startcol + 7);

			$this->rcs_number = $rs->getString($startcol + 8);

			$this->capital = $rs->getInt($startcol + 9);

			$this->initial_transactions_count = $rs->getInt($startcol + 10);

			$this->initial_transactions_sum = $rs->getFloat($startcol + 11);

			$this->default_product_picture = $rs->getString($startcol + 12);

			$this->default_product_margin = $rs->getInt($startcol + 13);

			$this->default_product_sol_percent = $rs->getInt($startcol + 14);

			$this->mailing_list_email = $rs->getString($startcol + 15);

			$this->cart_validation_days_number = $rs->getInt($startcol + 16);

			$this->accounting_code_prefix_purchase = $rs->getString($startcol + 17);

			$this->accounting_code_prefix_sell = $rs->getString($startcol + 18);

			$this->accounting_code_bank = $rs->getString($startcol + 19);

			$this->accounting_code_bank_sol = $rs->getString($startcol + 20);

			$this->accounting_code_credit = $rs->getString($startcol + 21);

			$this->accounting_code_error_adjustment_positive = $rs->getString($startcol + 22);

			$this->accounting_code_error_adjustment_negative = $rs->getString($startcol + 23);

			$this->accounting_code_sol_discount = $rs->getString($startcol + 24);

			$this->accounting_code_fees_shipping = $rs->getString($startcol + 25);

			$this->accounting_code_fees_billing = $rs->getString($startcol + 26);

			$this->accounting_code_discount = $rs->getString($startcol + 27);

			$this->member_fee = $rs->getFloat($startcol + 28);

			$this->additional_currency_name = $rs->getString($startcol + 29);

			$this->debug_email = $rs->getString($startcol + 30);

			$this->bank_name = $rs->getString($startcol + 31);

			$this->bank_account = $rs->getString($startcol + 32);

			$this->resetModified();

			$this->setNew(false);

			// FIXME - using NUM_COLUMNS may be clearer.
			return $startcol + 33; // 33 = KataoConfigPeer::NUM_COLUMNS - KataoConfigPeer::NUM_LAZY_LOAD_COLUMNS).

		} catch (Exception $e) {
			throw new PropelException("Error populating KataoConfig object", $e);
		}
	}

	/**
	 * Removes this object from datastore and sets delete attribute.
	 *
	 * @param      Connection $con
	 * @return     void
	 * @throws     PropelException
	 * @see        BaseObject::setDeleted()
	 * @see        BaseObject::isDeleted()
	 */
	public function delete($con = null)
	{

    foreach (sfMixer::getCallables('BaseKataoConfig:delete:pre') as $callable)
    {
      $ret = call_user_func($callable, $this, $con);
      if ($ret)
      {
        return;
      }
    }


		if ($this->isDeleted()) {
			throw new PropelException("This object has already been deleted.");
		}

		if ($con === null) {
			$con = Propel::getConnection(KataoConfigPeer::DATABASE_NAME);
		}

		try {
			$con->begin();
			KataoConfigPeer::doDelete($this, $con);
			$this->setDeleted(true);
			$con->commit();
		} catch (PropelException $e) {
			$con->rollback();
			throw $e;
		}
	

    foreach (sfMixer::getCallables('BaseKataoConfig:delete:post') as $callable)
    {
      call_user_func($callable, $this, $con);
    }

  }
	/**
	 * Stores the object in the database.  If the object is new,
	 * it inserts it; otherwise an update is performed.  This method
	 * wraps the doSave() worker method in a transaction.
	 *
	 * @param      Connection $con
	 * @return     int The number of rows affected by this insert/update and any referring fk objects' save() operations.
	 * @throws     PropelException
	 * @see        doSave()
	 */
	public function save($con = null)
	{

    foreach (sfMixer::getCallables('BaseKataoConfig:save:pre') as $callable)
    {
      $affectedRows = call_user_func($callable, $this, $con);
      if (is_int($affectedRows))
      {
        return $affectedRows;
      }
    }


		if ($this->isDeleted()) {
			throw new PropelException("You cannot save an object that has been deleted.");
		}

		if ($con === null) {
			$con = Propel::getConnection(KataoConfigPeer::DATABASE_NAME);
		}

		try {
			$con->begin();
			$affectedRows = $this->doSave($con);
			$con->commit();
    foreach (sfMixer::getCallables('BaseKataoConfig:save:post') as $callable)
    {
      call_user_func($callable, $this, $con, $affectedRows);
    }

			return $affectedRows;
		} catch (PropelException $e) {
			$con->rollback();
			throw $e;
		}
	}

	/**
	 * Stores the object in the database.
	 *
	 * If the object is new, it inserts it; otherwise an update is performed.
	 * All related objects are also updated in this method.
	 *
	 * @param      Connection $con
	 * @return     int The number of rows affected by this insert/update and any referring fk objects' save() operations.
	 * @throws     PropelException
	 * @see        save()
	 */
	protected function doSave($con)
	{
		$affectedRows = 0; // initialize var to track total num of affected rows
		if (!$this->alreadyInSave) {
			$this->alreadyInSave = true;


			// We call the save method on the following object(s) if they
			// were passed to this object by their coresponding set
			// method.  This object relates to these object(s) by a
			// foreign key reference.

			if ($this->aKataoMember !== null) {
				if ($this->aKataoMember->isModified()) {
					$affectedRows += $this->aKataoMember->save($con);
				}
				$this->setKataoMember($this->aKataoMember);
			}


			// If this object has been modified, then save it to the database.
			if ($this->isModified()) {
				if ($this->isNew()) {
					$pk = KataoConfigPeer::doInsert($this, $con);
					$affectedRows += 1; // we are assuming that there is only 1 row per doInsert() which
										 // should always be true here (even though technically
										 // BasePeer::doInsert() can insert multiple rows).

					$this->setId($pk);  //[IMV] update autoincrement primary key

					$this->setNew(false);
				} else {
					$affectedRows += KataoConfigPeer::doUpdate($this, $con);
				}
				$this->resetModified(); // [HL] After being saved an object is no longer 'modified'
			}

			$this->alreadyInSave = false;
		}
		return $affectedRows;
	} // doSave()

	/**
	 * Array of ValidationFailed objects.
	 * @var        array ValidationFailed[]
	 */
	protected $validationFailures = array();

	/**
	 * Gets any ValidationFailed objects that resulted from last call to validate().
	 *
	 *
	 * @return     array ValidationFailed[]
	 * @see        validate()
	 */
	public function getValidationFailures()
	{
		return $this->validationFailures;
	}

	/**
	 * Validates the objects modified field values and all objects related to this table.
	 *
	 * If $columns is either a column name or an array of column names
	 * only those columns are validated.
	 *
	 * @param      mixed $columns Column name or an array of column names.
	 * @return     boolean Whether all columns pass validation.
	 * @see        doValidate()
	 * @see        getValidationFailures()
	 */
	public function validate($columns = null)
	{
		$res = $this->doValidate($columns);
		if ($res === true) {
			$this->validationFailures = array();
			return true;
		} else {
			$this->validationFailures = $res;
			return false;
		}
	}

	/**
	 * This function performs the validation work for complex object models.
	 *
	 * In addition to checking the current object, all related objects will
	 * also be validated.  If all pass then <code>true</code> is returned; otherwise
	 * an aggreagated array of ValidationFailed objects will be returned.
	 *
	 * @param      array $columns Array of column names to validate.
	 * @return     mixed <code>true</code> if all validations pass; array of <code>ValidationFailed</code> objets otherwise.
	 */
	protected function doValidate($columns = null)
	{
		if (!$this->alreadyInValidation) {
			$this->alreadyInValidation = true;
			$retval = null;

			$failureMap = array();


			// We call the validate method on the following object(s) if they
			// were passed to this object by their coresponding set
			// method.  This object relates to these object(s) by a
			// foreign key reference.

			if ($this->aKataoMember !== null) {
				if (!$this->aKataoMember->validate($columns)) {
					$failureMap = array_merge($failureMap, $this->aKataoMember->getValidationFailures());
				}
			}


			if (($retval = KataoConfigPeer::doValidate($this, $columns)) !== true) {
				$failureMap = array_merge($failureMap, $retval);
			}



			$this->alreadyInValidation = false;
		}

		return (!empty($failureMap) ? $failureMap : true);
	}

	/**
	 * Retrieves a field from the object by name passed in as a string.
	 *
	 * @param      string $name name
	 * @param      string $type The type of fieldname the $name is of:
	 *                     one of the class type constants TYPE_PHPNAME,
	 *                     TYPE_COLNAME, TYPE_FIELDNAME, TYPE_NUM
	 * @return     mixed Value of field.
	 */
	public function getByName($name, $type = BasePeer::TYPE_PHPNAME)
	{
		$pos = KataoConfigPeer::translateFieldName($name, $type, BasePeer::TYPE_NUM);
		return $this->getByPosition($pos);
	}

	/**
	 * Retrieves a field from the object by Position as specified in the xml schema.
	 * Zero-based.
	 *
	 * @param      int $pos position in xml schema
	 * @return     mixed Value of field at $pos
	 */
	public function getByPosition($pos)
	{
		switch($pos) {
			case 0:
				return $this->getId();
				break;
			case 1:
				return $this->getKataoMemberId();
				break;
			case 2:
				return $this->getName();
				break;
			case 3:
				return $this->getAddress();
				break;
			case 4:
				return $this->getPhone();
				break;
			case 5:
				return $this->getEmail();
				break;
			case 6:
				return $this->getSiretNumber();
				break;
			case 7:
				return $this->getTvaNumber();
				break;
			case 8:
				return $this->getRcsNumber();
				break;
			case 9:
				return $this->getCapital();
				break;
			case 10:
				return $this->getInitialTransactionsCount();
				break;
			case 11:
				return $this->getInitialTransactionsSum();
				break;
			case 12:
				return $this->getDefaultProductPicture();
				break;
			case 13:
				return $this->getDefaultProductMargin();
				break;
			case 14:
				return $this->getDefaultProductSolPercent();
				break;
			case 15:
				return $this->getMailingListEmail();
				break;
			case 16:
				return $this->getCartValidationDaysNumber();
				break;
			case 17:
				return $this->getAccountingCodePrefixPurchase();
				break;
			case 18:
				return $this->getAccountingCodePrefixSell();
				break;
			case 19:
				return $this->getAccountingCodeBank();
				break;
			case 20:
				return $this->getAccountingCodeBankSol();
				break;
			case 21:
				return $this->getAccountingCodeCredit();
				break;
			case 22:
				return $this->getAccountingCodeErrorAdjustmentPositive();
				break;
			case 23:
				return $this->getAccountingCodeErrorAdjustmentNegative();
				break;
			case 24:
				return $this->getAccountingCodeSolDiscount();
				break;
			case 25:
				return $this->getAccountingCodeFeesShipping();
				break;
			case 26:
				return $this->getAccountingCodeFeesBilling();
				break;
			case 27:
				return $this->getAccountingCodeDiscount();
				break;
			case 28:
				return $this->getMemberFee();
				break;
			case 29:
				return $this->getAdditionalCurrencyName();
				break;
			case 30:
				return $this->getDebugEmail();
				break;
			case 31:
				return $this->getBankName();
				break;
			case 32:
				return $this->getBankAccount();
				break;
			default:
				return null;
				break;
		} // switch()
	}

	/**
	 * Exports the object as an array.
	 *
	 * You can specify the key type of the array by passing one of the class
	 * type constants.
	 *
	 * @param      string $keyType One of the class type constants TYPE_PHPNAME,
	 *                        TYPE_COLNAME, TYPE_FIELDNAME, TYPE_NUM
	 * @return     an associative array containing the field names (as keys) and field values
	 */
	public function toArray($keyType = BasePeer::TYPE_PHPNAME)
	{
		$keys = KataoConfigPeer::getFieldNames($keyType);
		$result = array(
			$keys[0] => $this->getId(),
			$keys[1] => $this->getKataoMemberId(),
			$keys[2] => $this->getName(),
			$keys[3] => $this->getAddress(),
			$keys[4] => $this->getPhone(),
			$keys[5] => $this->getEmail(),
			$keys[6] => $this->getSiretNumber(),
			$keys[7] => $this->getTvaNumber(),
			$keys[8] => $this->getRcsNumber(),
			$keys[9] => $this->getCapital(),
			$keys[10] => $this->getInitialTransactionsCount(),
			$keys[11] => $this->getInitialTransactionsSum(),
			$keys[12] => $this->getDefaultProductPicture(),
			$keys[13] => $this->getDefaultProductMargin(),
			$keys[14] => $this->getDefaultProductSolPercent(),
			$keys[15] => $this->getMailingListEmail(),
			$keys[16] => $this->getCartValidationDaysNumber(),
			$keys[17] => $this->getAccountingCodePrefixPurchase(),
			$keys[18] => $this->getAccountingCodePrefixSell(),
			$keys[19] => $this->getAccountingCodeBank(),
			$keys[20] => $this->getAccountingCodeBankSol(),
			$keys[21] => $this->getAccountingCodeCredit(),
			$keys[22] => $this->getAccountingCodeErrorAdjustmentPositive(),
			$keys[23] => $this->getAccountingCodeErrorAdjustmentNegative(),
			$keys[24] => $this->getAccountingCodeSolDiscount(),
			$keys[25] => $this->getAccountingCodeFeesShipping(),
			$keys[26] => $this->getAccountingCodeFeesBilling(),
			$keys[27] => $this->getAccountingCodeDiscount(),
			$keys[28] => $this->getMemberFee(),
			$keys[29] => $this->getAdditionalCurrencyName(),
			$keys[30] => $this->getDebugEmail(),
			$keys[31] => $this->getBankName(),
			$keys[32] => $this->getBankAccount(),
		);
		return $result;
	}

	/**
	 * Sets a field from the object by name passed in as a string.
	 *
	 * @param      string $name peer name
	 * @param      mixed $value field value
	 * @param      string $type The type of fieldname the $name is of:
	 *                     one of the class type constants TYPE_PHPNAME,
	 *                     TYPE_COLNAME, TYPE_FIELDNAME, TYPE_NUM
	 * @return     void
	 */
	public function setByName($name, $value, $type = BasePeer::TYPE_PHPNAME)
	{
		$pos = KataoConfigPeer::translateFieldName($name, $type, BasePeer::TYPE_NUM);
		return $this->setByPosition($pos, $value);
	}

	/**
	 * Sets a field from the object by Position as specified in the xml schema.
	 * Zero-based.
	 *
	 * @param      int $pos position in xml schema
	 * @param      mixed $value field value
	 * @return     void
	 */
	public function setByPosition($pos, $value)
	{
		switch($pos) {
			case 0:
				$this->setId($value);
				break;
			case 1:
				$this->setKataoMemberId($value);
				break;
			case 2:
				$this->setName($value);
				break;
			case 3:
				$this->setAddress($value);
				break;
			case 4:
				$this->setPhone($value);
				break;
			case 5:
				$this->setEmail($value);
				break;
			case 6:
				$this->setSiretNumber($value);
				break;
			case 7:
				$this->setTvaNumber($value);
				break;
			case 8:
				$this->setRcsNumber($value);
				break;
			case 9:
				$this->setCapital($value);
				break;
			case 10:
				$this->setInitialTransactionsCount($value);
				break;
			case 11:
				$this->setInitialTransactionsSum($value);
				break;
			case 12:
				$this->setDefaultProductPicture($value);
				break;
			case 13:
				$this->setDefaultProductMargin($value);
				break;
			case 14:
				$this->setDefaultProductSolPercent($value);
				break;
			case 15:
				$this->setMailingListEmail($value);
				break;
			case 16:
				$this->setCartValidationDaysNumber($value);
				break;
			case 17:
				$this->setAccountingCodePrefixPurchase($value);
				break;
			case 18:
				$this->setAccountingCodePrefixSell($value);
				break;
			case 19:
				$this->setAccountingCodeBank($value);
				break;
			case 20:
				$this->setAccountingCodeBankSol($value);
				break;
			case 21:
				$this->setAccountingCodeCredit($value);
				break;
			case 22:
				$this->setAccountingCodeErrorAdjustmentPositive($value);
				break;
			case 23:
				$this->setAccountingCodeErrorAdjustmentNegative($value);
				break;
			case 24:
				$this->setAccountingCodeSolDiscount($value);
				break;
			case 25:
				$this->setAccountingCodeFeesShipping($value);
				break;
			case 26:
				$this->setAccountingCodeFeesBilling($value);
				break;
			case 27:
				$this->setAccountingCodeDiscount($value);
				break;
			case 28:
				$this->setMemberFee($value);
				break;
			case 29:
				$this->setAdditionalCurrencyName($value);
				break;
			case 30:
				$this->setDebugEmail($value);
				break;
			case 31:
				$this->setBankName($value);
				break;
			case 32:
				$this->setBankAccount($value);
				break;
		} // switch()
	}

	/**
	 * Populates the object using an array.
	 *
	 * This is particularly useful when populating an object from one of the
	 * request arrays (e.g. $_POST).  This method goes through the column
	 * names, checking to see whether a matching key exists in populated
	 * array. If so the setByName() method is called for that column.
	 *
	 * You can specify the key type of the array by additionally passing one
	 * of the class type constants TYPE_PHPNAME, TYPE_COLNAME, TYPE_FIELDNAME,
	 * TYPE_NUM. The default key type is the column's phpname (e.g. 'authorId')
	 *
	 * @param      array  $arr     An array to populate the object from.
	 * @param      string $keyType The type of keys the array uses.
	 * @return     void
	 */
	public function fromArray($arr, $keyType = BasePeer::TYPE_PHPNAME)
	{
		$keys = KataoConfigPeer::getFieldNames($keyType);

		if (array_key_exists($keys[0], $arr)) $this->setId($arr[$keys[0]]);
		if (array_key_exists($keys[1], $arr)) $this->setKataoMemberId($arr[$keys[1]]);
		if (array_key_exists($keys[2], $arr)) $this->setName($arr[$keys[2]]);
		if (array_key_exists($keys[3], $arr)) $this->setAddress($arr[$keys[3]]);
		if (array_key_exists($keys[4], $arr)) $this->setPhone($arr[$keys[4]]);
		if (array_key_exists($keys[5], $arr)) $this->setEmail($arr[$keys[5]]);
		if (array_key_exists($keys[6], $arr)) $this->setSiretNumber($arr[$keys[6]]);
		if (array_key_exists($keys[7], $arr)) $this->setTvaNumber($arr[$keys[7]]);
		if (array_key_exists($keys[8], $arr)) $this->setRcsNumber($arr[$keys[8]]);
		if (array_key_exists($keys[9], $arr)) $this->setCapital($arr[$keys[9]]);
		if (array_key_exists($keys[10], $arr)) $this->setInitialTransactionsCount($arr[$keys[10]]);
		if (array_key_exists($keys[11], $arr)) $this->setInitialTransactionsSum($arr[$keys[11]]);
		if (array_key_exists($keys[12], $arr)) $this->setDefaultProductPicture($arr[$keys[12]]);
		if (array_key_exists($keys[13], $arr)) $this->setDefaultProductMargin($arr[$keys[13]]);
		if (array_key_exists($keys[14], $arr)) $this->setDefaultProductSolPercent($arr[$keys[14]]);
		if (array_key_exists($keys[15], $arr)) $this->setMailingListEmail($arr[$keys[15]]);
		if (array_key_exists($keys[16], $arr)) $this->setCartValidationDaysNumber($arr[$keys[16]]);
		if (array_key_exists($keys[17], $arr)) $this->setAccountingCodePrefixPurchase($arr[$keys[17]]);
		if (array_key_exists($keys[18], $arr)) $this->setAccountingCodePrefixSell($arr[$keys[18]]);
		if (array_key_exists($keys[19], $arr)) $this->setAccountingCodeBank($arr[$keys[19]]);
		if (array_key_exists($keys[20], $arr)) $this->setAccountingCodeBankSol($arr[$keys[20]]);
		if (array_key_exists($keys[21], $arr)) $this->setAccountingCodeCredit($arr[$keys[21]]);
		if (array_key_exists($keys[22], $arr)) $this->setAccountingCodeErrorAdjustmentPositive($arr[$keys[22]]);
		if (array_key_exists($keys[23], $arr)) $this->setAccountingCodeErrorAdjustmentNegative($arr[$keys[23]]);
		if (array_key_exists($keys[24], $arr)) $this->setAccountingCodeSolDiscount($arr[$keys[24]]);
		if (array_key_exists($keys[25], $arr)) $this->setAccountingCodeFeesShipping($arr[$keys[25]]);
		if (array_key_exists($keys[26], $arr)) $this->setAccountingCodeFeesBilling($arr[$keys[26]]);
		if (array_key_exists($keys[27], $arr)) $this->setAccountingCodeDiscount($arr[$keys[27]]);
		if (array_key_exists($keys[28], $arr)) $this->setMemberFee($arr[$keys[28]]);
		if (array_key_exists($keys[29], $arr)) $this->setAdditionalCurrencyName($arr[$keys[29]]);
		if (array_key_exists($keys[30], $arr)) $this->setDebugEmail($arr[$keys[30]]);
		if (array_key_exists($keys[31], $arr)) $this->setBankName($arr[$keys[31]]);
		if (array_key_exists($keys[32], $arr)) $this->setBankAccount($arr[$keys[32]]);
	}

	/**
	 * Build a Criteria object containing the values of all modified columns in this object.
	 *
	 * @return     Criteria The Criteria object containing all modified values.
	 */
	public function buildCriteria()
	{
		$criteria = new Criteria(KataoConfigPeer::DATABASE_NAME);

		if ($this->isColumnModified(KataoConfigPeer::ID)) $criteria->add(KataoConfigPeer::ID, $this->id);
		if ($this->isColumnModified(KataoConfigPeer::KATAO_MEMBER_ID)) $criteria->add(KataoConfigPeer::KATAO_MEMBER_ID, $this->katao_member_id);
		if ($this->isColumnModified(KataoConfigPeer::NAME)) $criteria->add(KataoConfigPeer::NAME, $this->name);
		if ($this->isColumnModified(KataoConfigPeer::ADDRESS)) $criteria->add(KataoConfigPeer::ADDRESS, $this->address);
		if ($this->isColumnModified(KataoConfigPeer::PHONE)) $criteria->add(KataoConfigPeer::PHONE, $this->phone);
		if ($this->isColumnModified(KataoConfigPeer::EMAIL)) $criteria->add(KataoConfigPeer::EMAIL, $this->email);
		if ($this->isColumnModified(KataoConfigPeer::SIRET_NUMBER)) $criteria->add(KataoConfigPeer::SIRET_NUMBER, $this->siret_number);
		if ($this->isColumnModified(KataoConfigPeer::TVA_NUMBER)) $criteria->add(KataoConfigPeer::TVA_NUMBER, $this->tva_number);
		if ($this->isColumnModified(KataoConfigPeer::RCS_NUMBER)) $criteria->add(KataoConfigPeer::RCS_NUMBER, $this->rcs_number);
		if ($this->isColumnModified(KataoConfigPeer::CAPITAL)) $criteria->add(KataoConfigPeer::CAPITAL, $this->capital);
		if ($this->isColumnModified(KataoConfigPeer::INITIAL_TRANSACTIONS_COUNT)) $criteria->add(KataoConfigPeer::INITIAL_TRANSACTIONS_COUNT, $this->initial_transactions_count);
		if ($this->isColumnModified(KataoConfigPeer::INITIAL_TRANSACTIONS_SUM)) $criteria->add(KataoConfigPeer::INITIAL_TRANSACTIONS_SUM, $this->initial_transactions_sum);
		if ($this->isColumnModified(KataoConfigPeer::DEFAULT_PRODUCT_PICTURE)) $criteria->add(KataoConfigPeer::DEFAULT_PRODUCT_PICTURE, $this->default_product_picture);
		if ($this->isColumnModified(KataoConfigPeer::DEFAULT_PRODUCT_MARGIN)) $criteria->add(KataoConfigPeer::DEFAULT_PRODUCT_MARGIN, $this->default_product_margin);
		if ($this->isColumnModified(KataoConfigPeer::DEFAULT_PRODUCT_SOL_PERCENT)) $criteria->add(KataoConfigPeer::DEFAULT_PRODUCT_SOL_PERCENT, $this->default_product_sol_percent);
		if ($this->isColumnModified(KataoConfigPeer::MAILING_LIST_EMAIL)) $criteria->add(KataoConfigPeer::MAILING_LIST_EMAIL, $this->mailing_list_email);
		if ($this->isColumnModified(KataoConfigPeer::CART_VALIDATION_DAYS_NUMBER)) $criteria->add(KataoConfigPeer::CART_VALIDATION_DAYS_NUMBER, $this->cart_validation_days_number);
		if ($this->isColumnModified(KataoConfigPeer::ACCOUNTING_CODE_PREFIX_PURCHASE)) $criteria->add(KataoConfigPeer::ACCOUNTING_CODE_PREFIX_PURCHASE, $this->accounting_code_prefix_purchase);
		if ($this->isColumnModified(KataoConfigPeer::ACCOUNTING_CODE_PREFIX_SELL)) $criteria->add(KataoConfigPeer::ACCOUNTING_CODE_PREFIX_SELL, $this->accounting_code_prefix_sell);
		if ($this->isColumnModified(KataoConfigPeer::ACCOUNTING_CODE_BANK)) $criteria->add(KataoConfigPeer::ACCOUNTING_CODE_BANK, $this->accounting_code_bank);
		if ($this->isColumnModified(KataoConfigPeer::ACCOUNTING_CODE_BANK_SOL)) $criteria->add(KataoConfigPeer::ACCOUNTING_CODE_BANK_SOL, $this->accounting_code_bank_sol);
		if ($this->isColumnModified(KataoConfigPeer::ACCOUNTING_CODE_CREDIT)) $criteria->add(KataoConfigPeer::ACCOUNTING_CODE_CREDIT, $this->accounting_code_credit);
		if ($this->isColumnModified(KataoConfigPeer::ACCOUNTING_CODE_ERROR_ADJUSTMENT_POSITIVE)) $criteria->add(KataoConfigPeer::ACCOUNTING_CODE_ERROR_ADJUSTMENT_POSITIVE, $this->accounting_code_error_adjustment_positive);
		if ($this->isColumnModified(KataoConfigPeer::ACCOUNTING_CODE_ERROR_ADJUSTMENT_NEGATIVE)) $criteria->add(KataoConfigPeer::ACCOUNTING_CODE_ERROR_ADJUSTMENT_NEGATIVE, $this->accounting_code_error_adjustment_negative);
		if ($this->isColumnModified(KataoConfigPeer::ACCOUNTING_CODE_SOL_DISCOUNT)) $criteria->add(KataoConfigPeer::ACCOUNTING_CODE_SOL_DISCOUNT, $this->accounting_code_sol_discount);
		if ($this->isColumnModified(KataoConfigPeer::ACCOUNTING_CODE_FEES_SHIPPING)) $criteria->add(KataoConfigPeer::ACCOUNTING_CODE_FEES_SHIPPING, $this->accounting_code_fees_shipping);
		if ($this->isColumnModified(KataoConfigPeer::ACCOUNTING_CODE_FEES_BILLING)) $criteria->add(KataoConfigPeer::ACCOUNTING_CODE_FEES_BILLING, $this->accounting_code_fees_billing);
		if ($this->isColumnModified(KataoConfigPeer::ACCOUNTING_CODE_DISCOUNT)) $criteria->add(KataoConfigPeer::ACCOUNTING_CODE_DISCOUNT, $this->accounting_code_discount);
		if ($this->isColumnModified(KataoConfigPeer::MEMBER_FEE)) $criteria->add(KataoConfigPeer::MEMBER_FEE, $this->member_fee);
		if ($this->isColumnModified(KataoConfigPeer::ADDITIONAL_CURRENCY_NAME)) $criteria->add(KataoConfigPeer::ADDITIONAL_CURRENCY_NAME, $this->additional_currency_name);
		if ($this->isColumnModified(KataoConfigPeer::DEBUG_EMAIL)) $criteria->add(KataoConfigPeer::DEBUG_EMAIL, $this->debug_email);
		if ($this->isColumnModified(KataoConfigPeer::BANK_NAME)) $criteria->add(KataoConfigPeer::BANK_NAME, $this->bank_name);
		if ($this->isColumnModified(KataoConfigPeer::BANK_ACCOUNT)) $criteria->add(KataoConfigPeer::BANK_ACCOUNT, $this->bank_account);

		return $criteria;
	}

	/**
	 * Builds a Criteria object containing the primary key for this object.
	 *
	 * Unlike buildCriteria() this method includes the primary key values regardless
	 * of whether or not they have been modified.
	 *
	 * @return     Criteria The Criteria object containing value(s) for primary key(s).
	 */
	public function buildPkeyCriteria()
	{
		$criteria = new Criteria(KataoConfigPeer::DATABASE_NAME);

		$criteria->add(KataoConfigPeer::ID, $this->id);

		return $criteria;
	}

	/**
	 * Returns the primary key for this object (row).
	 * @return     int
	 */
	public function getPrimaryKey()
	{
		return $this->getId();
	}

	/**
	 * Generic method to set the primary key (id column).
	 *
	 * @param      int $key Primary key.
	 * @return     void
	 */
	public function setPrimaryKey($key)
	{
		$this->setId($key);
	}

	/**
	 * Sets contents of passed object to values from current object.
	 *
	 * If desired, this method can also make copies of all associated (fkey referrers)
	 * objects.
	 *
	 * @param      object $copyObj An object of KataoConfig (or compatible) type.
	 * @param      boolean $deepCopy Whether to also copy all rows that refer (by fkey) to the current row.
	 * @throws     PropelException
	 */
	public function copyInto($copyObj, $deepCopy = false)
	{

		$copyObj->setKataoMemberId($this->katao_member_id);

		$copyObj->setName($this->name);

		$copyObj->setAddress($this->address);

		$copyObj->setPhone($this->phone);

		$copyObj->setEmail($this->email);

		$copyObj->setSiretNumber($this->siret_number);

		$copyObj->setTvaNumber($this->tva_number);

		$copyObj->setRcsNumber($this->rcs_number);

		$copyObj->setCapital($this->capital);

		$copyObj->setInitialTransactionsCount($this->initial_transactions_count);

		$copyObj->setInitialTransactionsSum($this->initial_transactions_sum);

		$copyObj->setDefaultProductPicture($this->default_product_picture);

		$copyObj->setDefaultProductMargin($this->default_product_margin);

		$copyObj->setDefaultProductSolPercent($this->default_product_sol_percent);

		$copyObj->setMailingListEmail($this->mailing_list_email);

		$copyObj->setCartValidationDaysNumber($this->cart_validation_days_number);

		$copyObj->setAccountingCodePrefixPurchase($this->accounting_code_prefix_purchase);

		$copyObj->setAccountingCodePrefixSell($this->accounting_code_prefix_sell);

		$copyObj->setAccountingCodeBank($this->accounting_code_bank);

		$copyObj->setAccountingCodeBankSol($this->accounting_code_bank_sol);

		$copyObj->setAccountingCodeCredit($this->accounting_code_credit);

		$copyObj->setAccountingCodeErrorAdjustmentPositive($this->accounting_code_error_adjustment_positive);

		$copyObj->setAccountingCodeErrorAdjustmentNegative($this->accounting_code_error_adjustment_negative);

		$copyObj->setAccountingCodeSolDiscount($this->accounting_code_sol_discount);

		$copyObj->setAccountingCodeFeesShipping($this->accounting_code_fees_shipping);

		$copyObj->setAccountingCodeFeesBilling($this->accounting_code_fees_billing);

		$copyObj->setAccountingCodeDiscount($this->accounting_code_discount);

		$copyObj->setMemberFee($this->member_fee);

		$copyObj->setAdditionalCurrencyName($this->additional_currency_name);

		$copyObj->setDebugEmail($this->debug_email);

		$copyObj->setBankName($this->bank_name);

		$copyObj->setBankAccount($this->bank_account);


		$copyObj->setNew(true);

		$copyObj->setId(NULL); // this is a pkey column, so set to default value

	}

	/**
	 * Makes a copy of this object that will be inserted as a new row in table when saved.
	 * It creates a new object filling in the simple attributes, but skipping any primary
	 * keys that are defined for the table.
	 *
	 * If desired, this method can also make copies of all associated (fkey referrers)
	 * objects.
	 *
	 * @param      boolean $deepCopy Whether to also copy all rows that refer (by fkey) to the current row.
	 * @return     KataoConfig Clone of current object.
	 * @throws     PropelException
	 */
	public function copy($deepCopy = false)
	{
		// we use get_class(), because this might be a subclass
		$clazz = get_class($this);
		$copyObj = new $clazz();
		$this->copyInto($copyObj, $deepCopy);
		return $copyObj;
	}

	/**
	 * Returns a peer instance associated with this om.
	 *
	 * Since Peer classes are not to have any instance attributes, this method returns the
	 * same instance for all member of this class. The method could therefore
	 * be static, but this would prevent one from overriding the behavior.
	 *
	 * @return     KataoConfigPeer
	 */
	public function getPeer()
	{
		if (self::$peer === null) {
			self::$peer = new KataoConfigPeer();
		}
		return self::$peer;
	}

	/**
	 * Declares an association between this object and a KataoMember object.
	 *
	 * @param      KataoMember $v
	 * @return     void
	 * @throws     PropelException
	 */
	public function setKataoMember($v)
	{


		if ($v === null) {
			$this->setKataoMemberId(NULL);
		} else {
			$this->setKataoMemberId($v->getId());
		}


		$this->aKataoMember = $v;
	}


	/**
	 * Get the associated KataoMember object
	 *
	 * @param      Connection Optional Connection object.
	 * @return     KataoMember The associated KataoMember object.
	 * @throws     PropelException
	 */
	public function getKataoMember($con = null)
	{
		if ($this->aKataoMember === null && ($this->katao_member_id !== null)) {
			// include the related Peer class
			$this->aKataoMember = KataoMemberPeer::retrieveByPK($this->katao_member_id, $con);

			/* The following can be used instead of the line above to
			   guarantee the related object contains a reference
			   to this object, but this level of coupling
			   may be undesirable in many circumstances.
			   As it can lead to a db query with many results that may
			   never be used.
			   $obj = KataoMemberPeer::retrieveByPK($this->katao_member_id, $con);
			   $obj->addKataoMembers($this);
			 */
		}
		return $this->aKataoMember;
	}


  public function __call($method, $arguments)
  {
    if (!$callable = sfMixer::getCallable('BaseKataoConfig:'.$method))
    {
      throw new sfException(sprintf('Call to undefined method BaseKataoConfig::%s', $method));
    }

    array_unshift($arguments, $this);

    return call_user_func_array($callable, $arguments);
  }


} // BaseKataoConfig
