# -*- coding: utf-8 -*-
from openerp import models, fields, tools, api

class accountBankStatementConfig(models.Model):
    _name = "account.bank.statement.config"

    name = fields.Char('Name', required=True, default="Configuración Cajas")
    active = fields.Boolean('Active', default=True)
    ## Forma de Importar Pagso en caja Ventas/compras/RRHH
    import_statement_payments = fields.Selection([('automatic_import', 'Automático'),('manual_import','Manual')],'Importar pagos en caja',default='automatic_import',help='Tipo de importar los pago en caja', required=True)
    import_statement_payslip = fields.Selection([('automatic_import', 'Automático'),('manual_import','Manual')],'Importar pagos de RRHH en caja',default='automatic_import',help='Tipo de importar los pago en caja', required=True)

    ## TRANSFERENCIA
    transfer_user_ids = fields.Many2many('res.users', 'statement_config_transfer_user', 'account_bank_statement_config_id','res_users_id', string='statement_transfer_user')
    transfer_statement_ids = fields.Many2many('account.bank.statement.type', 'statement_config_transfer_statement', 'account_bank_statement_config_id', 'account_bank_statement_type_id', string="statement_config_transfer_statement")
    transfer_negative_amount = fields.Boolean('transfer_negative_amount', default=False, help="Permitir transferencia sin saldo en caja")
    delete_transfer_user_ids = fields.Many2many('res.users', 'statement_config_deleted_transfer_user', 'account_bank_statement_config_id','res_users_id', string='statement_delete_transfer_user')

    ## Poner Dinero
    input_cash_box_user_id = fields.Many2many('res.users', 'statement_config_input_user', 'account_bank_statement_config_id', 'res_users_id', string='statement_input_user')
    input_cash_box_statement_ids = fields.Many2many('account.bank.statement.type', 'statement_config_input_statement', 'account_bank_statement_config_id', 'account_bank_statement_type_id', string="statement_config_input_statement")
    delete_input_user_ids = fields.Many2many('res.users', 'statement_config_deleted_input_user', 'account_bank_statement_config_id','res_users_id', string='statement_delete_input_user')

    ## Sacar Dinero
    output_cash_box_user_id = fields.Many2many('res.users', 'statement_config_output_user', 'account_bank_statement_config_id', 'res_users_id', string='statement_output_user')
    output_cash_box_statement_ids = fields.Many2many('account.bank.statement.type', 'statement_config_output_statement', 'account_bank_statement_config_id', 'account_bank_statement_type_id', string="statement_config_output_statement")
    output_negative_amount = fields.Boolean('output_negative_amount', default=False, help="Permitir sacar dinero sin saldo en caja")
    delete_output_user_ids = fields.Many2many('res.users', 'statement_config_deleted_output_user', 'account_bank_statement_config_id','res_users_id', string='statement_delete_output_user')

    ## Abrir Cajas
    statement_open_config = fields.Boolean('statement_open_config', default=False, help="Permitir abrir mas de una caja(por usuario, por diario, por tipo de caja)")

    ## statement confirm
    statement_confirm_user = fields.Many2many('res.users', 'statement_config_confirm_user', 'account_bank_statement_config_id', 'res_users_id', string='Usuario permitido para cerrar Caja ')
    statement_confirm_transfer_user = fields.Many2many('res.users', 'statement_config_confirm_transfer_user', 'account_bank_statement_config_id', 'res_users_id', string='Usuario permitido para realizar transferencia')
    statement_confirm_balance = fields.Many2many('res.users', 'statement_config_confirm_balance', 'account_bank_statement_config_id', 'res_users_id', string='Usuario permitido para ajuste de cierre')
    statement_confirm_negative_amount = fields.Many2many('res.users', 'statement_confirm_negative_amount', 'account_bank_statement_config_id', 'res_users_id', string='Usuario permitido para cerrar caja sin saldo ')

    ## statement Cancel
    statement_cancel_user = fields.Many2many('res.users', 'statement_config_cancel_user', 'account_bank_statement_config_id', 'res_users_id', string='Usuario permitido para cancelar Caja')


    '''
    ### Configuración de caja. ###

    ## Forma de Importar Pagso en caja Ventas/compras/RRHH. ##
        :fields import_statement_payments   : Forma que se importaran los pagos de ventas/compra/devoluciones en caja.
        :fields import_statement_payslip    : Forma que se importaran los pagos de nomina y adelanto en caja.

    ## TRANSFERENCIA. ##
        :fields transfer_user_ids           : Usuario permitido a realizar transferencia.
        :fields transfer_statement_ids      : Cajas permitidas para realizar transferencia.
        :fields transfer_negative_amount    : Usuario que puedan borrar las transferencia.
        :fields delete_transfer_user_ids    : Permitir Transferencia cuando la caja no tenga saldo.

    ## Poner Dinero. ##
        :fields input_cash_box_user_id          : Usuarios permitido para colocar dinero en la caja.
        :fields input_cash_box_statement_ids    : Tipo de caja que se permita colocar dinero.
        :fields delete_input_user_ids           : Usuario que puedan eliminar  la entrada de dinero.

    ## Sacar Dinero. ##
        :fields output_cash_box_user_id         : Usuarios permitido para sacar dinero en la caja.
        :fields output_cash_box_statement_ids   : Tipo de caja que se permita sacar dinero.
        :fields output_negative_amount          : Permitir sacar dinero si saldo en caja.
        :fields delete_output_user_ids          : Usuario que puedan eliminar  las salida de dinero.

    ## Abrir Cajas. ##
        :fields statement_open_config   : Permitir abrir mas de una  caja por usuario.

    ## statement confirm(Cerrar Caja). ##
        :fields statement_confirm_user              : Usuario permitido a cerrar caja.
        :fields statement_confirm_transfer_user     : Usuario permitido a realizar transferencia.
        :fields statement_confirm_balance           : Usuario permitido a realizar Ajuste de caja.
        :fields statement_confirm_negative_amount   : Permitir cerrar las caja con saldo negativo.

    ## statement Cancel (Cancelar caja). ##
        :fields statement_cancel_user       : Usuario permitido a cancelar caja.

    '''