diff --git a/app/assets/javascripts/backend/bank_statements.js.coffee b/app/assets/javascripts/backend/bank_statements.js.coffee index 1f8ab4df1a..87b348fdac 100644 --- a/app/assets/javascripts/backend/bank_statements.js.coffee +++ b/app/assets/javascripts/backend/bank_statements.js.coffee @@ -89,6 +89,27 @@ $(document).on "change", "#hide-lettered", -> bankReconciliation.uiUpdate() + $(document).on "datepicker-change", "#set_period", (event, dates) -> + current_params = document.location.search + + start = dates.date1 + start = "period_start=#{start.getFullYear()}-#{start.getMonth()+1}-#{start.getDate()}" + param_space = new RegExp("(&|\\?)period_start=[^\&]*") + if param_space.exec(current_params) + current_params = current_params.replace(param_space, "$1" + start) + else + current_params += (if current_params.length > 0 then '&' else '?') + start + + end = dates.date2 + end = "period_end=#{end.getFullYear()}-#{end.getMonth()+1}-#{end.getDate()}" + param_space = new RegExp("(&|\\?)period_end=[^\&]*") + if param_space.exec(current_params) + current_params = current_params.replace(param_space, "$1" + end) + else + current_params += (if current_params.length > 0 then '&' else '?') + end + + document.location.search = current_params + class BankReconciliation constructor: (@precision) -> diff --git a/app/assets/javascripts/form/dates.js.coffee b/app/assets/javascripts/form/dates.js.coffee index a54c480c23..a614e9e6f7 100644 --- a/app/assets/javascripts/form/dates.js.coffee +++ b/app/assets/javascripts/form/dates.js.coffee @@ -23,10 +23,9 @@ $.extend options, format: "YYYY-MM-DD" language: locale - singleMonth: true showShortcuts: false showTopbar: false - separator: ' -> ' + separator: ' – ' element.dateRangePicker options element.attr "autocomplete", "off" return diff --git a/app/controllers/backend/bank_reconciliation_gaps_controller.rb b/app/controllers/backend/bank_reconciliation_gaps_controller.rb index c7459dd4d7..9cdda6fb8a 100644 --- a/app/controllers/backend/bank_reconciliation_gaps_controller.rb +++ b/app/controllers/backend/bank_reconciliation_gaps_controller.rb @@ -36,12 +36,12 @@ def create items_attributes: { '0' => { - name: 'Gap', + name: "#{'rest.actions.payment_gap'.t} #{Time.zone.today.l} - #{debit_account.name}", real_debit: gap.abs, account_id: debit_account.id }, '-1' => { - name: 'Gap', + name: "#{'rest.actions.payment_gap'.t} #{Time.zone.today.l} - #{credit_account.name}", real_credit: gap.abs, account_id: credit_account.id } diff --git a/app/controllers/backend/bank_statements_controller.rb b/app/controllers/backend/bank_statements_controller.rb index 24820463d5..edd64874f0 100644 --- a/app/controllers/backend/bank_statements_controller.rb +++ b/app/controllers/backend/bank_statements_controller.rb @@ -70,7 +70,11 @@ def import def reconciliation return unless @bank_statement = find_and_check bank_statement_items = @bank_statement.items.order('ABS(debit-credit)') - journal_entry_items = @bank_statement.eligible_journal_entry_items.order('ABS(real_debit-real_credit)') + @period_start = @bank_statement.started_on - 20.days + @period_end = @bank_statement.started_on + 20.days + @period_start = Date.strptime(params[:period_start], '%Y-%m-%d') if params[:period_start] + @period_end = Date.strptime(params[:period_end ], '%Y-%m-%d') if params[:period_end ] + journal_entry_items = @bank_statement.eligible_journal_entry_items.between(@period_start, @period_end).order('ABS(real_debit-real_credit)') unless journal_entry_items.any? notify_error :need_entries_to_reconciliate redirect_to params[:redirect] || { action: :show, id: @bank_statement.id } diff --git a/app/models/bank_statement.rb b/app/models/bank_statement.rb index 49589b64da..c669cf1b07 100644 --- a/app/models/bank_statement.rb +++ b/app/models/bank_statement.rb @@ -158,8 +158,8 @@ def letter_items(statement_items, journal_entry_items) end def eligible_journal_entry_items - margin = 20.days - unpointed = cash.unpointed_journal_entry_items.between(started_on - margin, stopped_on + margin) + # margin = 20.days + unpointed = cash.unpointed_journal_entry_items # .between(started_on - margin, stopped_on + margin) pointed = JournalEntryItem.pointed_by(self) JournalEntryItem.where(id: unpointed.pluck(:id) + pointed.pluck(:id)) end diff --git a/app/themes/tekyla/stylesheets/all.scss b/app/themes/tekyla/stylesheets/all.scss index 9578f35ea0..87e43acd3c 100644 --- a/app/themes/tekyla/stylesheets/all.scss +++ b/app/themes/tekyla/stylesheets/all.scss @@ -31,6 +31,7 @@ @import "beehives"; @import "calendars"; @import "charts"; +@import "daterangepicker"; @import "datetimepickers"; @import "equipments"; @import "forms"; diff --git a/app/themes/tekyla/stylesheets/bank_statements.scss b/app/themes/tekyla/stylesheets/bank_statements.scss index 30426d950c..a1fe43e5d9 100644 --- a/app/themes/tekyla/stylesheets/bank_statements.scss +++ b/app/themes/tekyla/stylesheets/bank_statements.scss @@ -18,9 +18,14 @@ } .details { + width: unset; display: flex; justify-content: center; align-items: center; + * { + @include margin-left($default-gap); + text-align: center; + } } } diff --git a/app/views/backend/bank_statements/reconciliation.html.haml b/app/views/backend/bank_statements/reconciliation.html.haml index 3b3bcd6ba2..2307f50c33 100644 --- a/app/views/backend/bank_statements/reconciliation.html.haml +++ b/app/views/backend/bank_statements/reconciliation.html.haml @@ -13,6 +13,7 @@ - SaleNature.find_each do |nature| - menu.item nature.name, new_backend_quick_sale_path(nature_id: nature.id, redirect: url_for), tabindex: -1, method: :get, class: 'from-selected-bank', title: nature.name .details + %input#set_period{ type: 'daterange', value: "#{@period_start} – #{@period_end}".html_safe } %label %input#hide-lettered{ type: :checkbox, checked: true } = :hide_lettered_lines.tl