diff --git a/app/controllers/admin/bank_transactions_controller.rb b/app/controllers/admin/bank_transactions_controller.rb index ca1da48a8..1aaf452a8 100644 --- a/app/controllers/admin/bank_transactions_controller.rb +++ b/app/controllers/admin/bank_transactions_controller.rb @@ -1,6 +1,25 @@ class Admin::BankTransactionsController < AdminController load_and_authorize_resource + def new + @bank_statement = BankStatement.find(params[:bank_statement_id]) + @bank_transaction = BankTransaction.new(currency: 'EUR') + end + + def create + @bank_transaction = BankTransaction.new( + bank_transaction_params.merge(bank_statement_id: params[:bank_statement_id]) + ) + + if @bank_transaction.save + flash[:notice] = I18n.t('record_created') + redirect_to [:admin, @bank_transaction] + else + flash.now[:alert] = I18n.t('failed_to_create_record') + render 'new' + end + end + def update if @bank_transaction.update(bank_transaction_params) flash[:notice] = I18n.t('record_updated') @@ -24,6 +43,10 @@ class Admin::BankTransactionsController < AdminController private def bank_transaction_params - params.require(:bank_transaction).permit(:description, :sum, :reference_no) + params.require(:bank_transaction).permit( + :description, :sum, :reference_no, :document_no, + :bank_reference, :iban, :buyer_bank_code, :buyer_iban, + :buyer_name, :currency, :paid_at + ) end end diff --git a/app/views/admin/bank_statements/show.haml b/app/views/admin/bank_statements/show.haml index c0051d447..db8d64004 100644 --- a/app/views/admin/bank_statements/show.haml +++ b/app/views/admin/bank_statements/show.haml @@ -34,7 +34,13 @@ %dt= t(:import_file) %dd= link_to(t(:download), download_import_file_admin_bank_statement_path(@bank_statement)) -%h2.text-center-xs= t(:bank_transactions) +.row + .col-sm-6 + %h3.text-center-xs + = t(:bank_transactions) + .col-sm-6.text-right + %h3.text-right.text-center-xs + = link_to(t(:add), new_admin_bank_statement_bank_transaction_path(@bank_statement), class: 'btn btn-primary') %hr .row .col-md-12 diff --git a/app/views/admin/bank_transactions/_form.haml b/app/views/admin/bank_transactions/_form.haml new file mode 100644 index 000000000..c3a3c011f --- /dev/null +++ b/app/views/admin/bank_transactions/_form.haml @@ -0,0 +1,71 @@ += form_for([:admin, @bank_statement, @bank_transaction], html: { class: 'form-horizontal' }) do |f| + = render 'shared/full_errors', object: @bank_transaction + + .row + .col-md-8 + - if @bank_transaction.persisted? + .form-group + = f.label :status, class: 'col-md-4 control-label' + - c = @bank_transaction.binded? ? 'text-success' : 'text-danger' + .col-md-8.form-control-static{class: c} + = @bank_transaction.binded? ? t(:binded) : t(:not_binded) + + .form-group + = f.label :description, class: 'col-md-4 control-label' + .col-md-8 + = f.text_field(:description, class: 'form-control') + + .form-group + = f.label :sum, class: 'col-md-4 control-label' + .col-md-8 + = f.text_field(:sum, class: 'form-control') + + .form-group + = f.label :reference_no, class: 'col-md-4 control-label' + .col-md-8 + = f.text_field(:reference_no, class: 'form-control') + + .form-group + = f.label :document_no, class: 'col-md-4 control-label' + .col-md-8 + = f.text_field(:document_no, class: 'form-control') + + .form-group + = f.label :bank_reference, class: 'col-md-4 control-label' + .col-md-8 + = f.text_field(:bank_reference, class: 'form-control') + + .form-group + = f.label :iban, class: 'col-md-4 control-label' + .col-md-8 + = f.text_field(:iban, class: 'form-control') + + .form-group + = f.label :buyer_bank_code, class: 'col-md-4 control-label' + .col-md-8 + = f.text_field(:buyer_bank_code, class: 'form-control') + + .form-group + = f.label :buyer_iban, class: 'col-md-4 control-label' + .col-md-8 + = f.text_field(:buyer_iban, class: 'form-control') + + .form-group + = f.label :buyer_name, class: 'col-md-4 control-label' + .col-md-8 + = f.text_field(:buyer_name, class: 'form-control') + + .form-group + = f.label :currency, class: 'col-md-4 control-label' + .col-md-8 + = f.text_field(:currency, class: 'form-control', readonly: true) + + .form-group + = f.label :paid_at, class: 'col-md-4 control-label' + .col-md-8 + = f.text_field(:paid_at, class: 'form-control datepicker') + + %hr + .row + .col-md-8.text-right + = button_tag(t(:save), class: 'btn btn-warning') diff --git a/app/views/admin/bank_transactions/edit.haml b/app/views/admin/bank_transactions/edit.haml index 5c38ea6e0..8bb5a2666 100644 --- a/app/views/admin/bank_transactions/edit.haml +++ b/app/views/admin/bank_transactions/edit.haml @@ -2,73 +2,4 @@ = link_to(t(:back), admin_bank_transaction_path(@bank_transaction), class: 'btn btn-default') = render 'shared/title', name: t(:bank_transaction) -= form_for([:admin, @bank_transaction], html: { class: 'form-horizontal' }) do |f| - = render 'shared/full_errors', object: @bank_transaction - - .row - .col-md-8 - .form-group - = f.label :status, class: 'col-md-2 control-label' - - c = @bank_transaction.binded? ? 'text-success' : 'text-danger' - .col-md-10.form-control-static{class: c} - = @bank_transaction.binded? ? t(:binded) : t(:not_binded) - - .form-group - = f.label :description, class: 'col-md-2 control-label' - .col-md-10 - = f.text_field(:description, class: 'form-control') - - .form-group - = f.label :sum, class: 'col-md-2 control-label' - .col-md-10 - = f.text_field(:sum, class: 'form-control') - - .form-group - = f.label :reference_no, class: 'col-md-2 control-label' - .col-md-10 - = f.text_field(:reference_no, class: 'form-control') - - .form-group - = f.label :document_no, class: 'col-md-2 control-label' - .col-md-10 - = f.text_field(:document_no, class: 'form-control', disabled: :disabled) - - .form-group - = f.label :bank_reference, class: 'col-md-2 control-label' - .col-md-10 - = f.text_field(:bank_reference, class: 'form-control', disabled: :disabled) - - .form-group - = f.label :iban, class: 'col-md-2 control-label' - .col-md-10 - = f.text_field(:iban, class: 'form-control', disabled: :disabled) - - .form-group - = f.label :buyer_bank_code, class: 'col-md-2 control-label' - .col-md-10 - = f.text_field(:buyer_bank_code, class: 'form-control', disabled: :disabled) - - .form-group - = f.label :buyer_iban, class: 'col-md-2 control-label' - .col-md-10 - = f.text_field(:buyer_iban, class: 'form-control', disabled: :disabled) - - .form-group - = f.label :buyer_name, class: 'col-md-2 control-label' - .col-md-10 - = f.text_field(:buyer_name, class: 'form-control', disabled: :disabled) - - .form-group - = f.label :currency, class: 'col-md-2 control-label' - .col-md-10 - = f.text_field(:currency, class: 'form-control', disabled: :disabled) - - .form-group - = f.label :paid_at, class: 'col-md-2 control-label' - .col-md-10 - = f.text_field(:paid_at, class: 'form-control', disabled: :disabled) - - %hr - .row - .col-md-8.text-right - = button_tag(t(:save), class: 'btn btn-primary') += render 'form' diff --git a/app/views/admin/bank_transactions/new.haml b/app/views/admin/bank_transactions/new.haml new file mode 100644 index 000000000..403eb415e --- /dev/null +++ b/app/views/admin/bank_transactions/new.haml @@ -0,0 +1,6 @@ +- content_for :actions do + = link_to(t(:back), admin_bank_statement_path(@bank_statement), class: 'btn btn-default') + += render 'shared/title', name: t(:create_bank_transaction) + += render 'form' diff --git a/config/locales/en.yml b/config/locales/en.yml index d46aa048e..04b370c61 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -832,3 +832,4 @@ en: domain_validation_rules: 'Domain validation rules' bank_statement_desc: 'Import file row will match only when matching following attributes:
ref number
payment amount
invoice number (the very first number in comment field)
.' create_bank_statement: 'Create bank statement' + create_bank_transaction: 'Create bank transaction' diff --git a/config/routes.rb b/config/routes.rb index 7b7025179..632e55e54 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -161,6 +161,7 @@ Rails.application.routes.draw do resources :pricelists resources :bank_statements do + resources :bank_transactions collection do get 'import' post 'create_from_import'