summaryrefslogtreecommitdiff
path: root/dynamic_accounts_report/static/src/js
diff options
context:
space:
mode:
authorstephanchrst <stephanchrst@gmail.com>2022-05-10 17:14:58 +0700
committerstephanchrst <stephanchrst@gmail.com>2022-05-10 17:14:58 +0700
commit1ca3b3df3421961caec3b747a364071c80f5c7da (patch)
tree6778a1f0f3f9b4c6e26d6d87ccde16e24da6c9d6 /dynamic_accounts_report/static/src/js
parentb57188be371d36d96caac4b8d65a40745c0e972c (diff)
initial commit
Diffstat (limited to 'dynamic_accounts_report/static/src/js')
-rw-r--r--dynamic_accounts_report/static/src/js/action_manager.js52
-rw-r--r--dynamic_accounts_report/static/src/js/ageing.js405
-rw-r--r--dynamic_accounts_report/static/src/js/cash_flow.js335
-rw-r--r--dynamic_accounts_report/static/src/js/daybook.js387
-rw-r--r--dynamic_accounts_report/static/src/js/financial_reports.js357
-rw-r--r--dynamic_accounts_report/static/src/js/general_ledger.js453
-rw-r--r--dynamic_accounts_report/static/src/js/partner_ledger.js431
-rw-r--r--dynamic_accounts_report/static/src/js/trial_balance.js263
8 files changed, 2683 insertions, 0 deletions
diff --git a/dynamic_accounts_report/static/src/js/action_manager.js b/dynamic_accounts_report/static/src/js/action_manager.js
new file mode 100644
index 0000000..9eda3ec
--- /dev/null
+++ b/dynamic_accounts_report/static/src/js/action_manager.js
@@ -0,0 +1,52 @@
+odoo.define('dynamic_accounts_report.action_manager', function (require) {
+"use strict";
+/**
+ * The purpose of this file is to add the actions of type
+ * 'xlsx' to the ActionManager.
+ */
+var ActionManager = require('web.ActionManager');
+var framework = require('web.framework');
+var session = require('web.session');
+
+
+ActionManager.include({
+
+ /**
+ * Executes actions of type 'ir.actions.report'.
+ *
+ * @private
+ * @param {Object} action the description of the action to execute
+ * @param {Object} options @see doAction for details
+ * @returns {Promise} resolved when the action has been executed
+ */
+ _executedynamicxlsxReportDownloadAction: function (action) {
+ framework.blockUI();
+ var def = $.Deferred();
+ session.get_file({
+ url: '/dynamic_xlsx_reports',
+ data: action.data,
+ success: def.resolve.bind(def),
+ error: (error) => this.call('crash_manager', 'rpc_error', error),
+ complete: framework.unblockUI,
+ });
+ return def;
+ },
+ /**
+ * Overrides to handle the 'ir.actions.report' actions.
+ *
+ * @override
+ * @private
+ */
+
+ _handleAction: function (action, options) {
+
+ if (action.type === 'ir_actions_dynamic_xlsx_download') {
+ return this._executedynamicxlsxReportDownloadAction(action, options);
+ }
+ return this._super.apply(this, arguments);
+ },
+
+
+});
+
+});
diff --git a/dynamic_accounts_report/static/src/js/ageing.js b/dynamic_accounts_report/static/src/js/ageing.js
new file mode 100644
index 0000000..c5c2a41
--- /dev/null
+++ b/dynamic_accounts_report/static/src/js/ageing.js
@@ -0,0 +1,405 @@
+odoo.define('dynamic_accounts_report.ageing', function (require) {
+ 'use strict';
+ var AbstractAction = require('web.AbstractAction');
+ var core = require('web.core');
+ var field_utils = require('web.field_utils');
+ var rpc = require('web.rpc');
+ var session = require('web.session');
+ var utils = require('web.utils');
+ var QWeb = core.qweb;
+ var _t = core._t;
+
+ window.click_num = 0;
+ var PartnerAgeing = AbstractAction.extend({
+ template: 'AgeingTemp',
+ events: {
+ 'click .parent-line': 'journal_line_click',
+ 'click .child_col1': 'journal_line_click',
+ 'click #apply_filter': 'apply_filter',
+ 'click #pdf': 'print_pdf',
+ 'click #xlsx': 'print_xlsx',
+ 'click .gl-line': 'show_drop_down',
+ 'click .view-account-move': 'view_acc_move',
+ },
+
+ init: function(parent, action) {
+ this._super(parent, action);
+ this.currency=action.currency;
+ this.report_lines = action.report_lines;
+
+ this.wizard_id = action.context.wizard | null;
+
+ },
+
+
+ start: function() {
+ var self = this;
+ self.initial_render = true;
+ rpc.query({
+ model: 'account.partner.ageing',
+ method: 'create',
+ args: [{
+
+ }]
+ }).then(function(t_res) {
+ self.wizard_id = t_res;
+
+ self.load_data(self.initial_render);
+ })
+ },
+
+
+ load_data: function (initial_render = true) {
+
+ var self = this;
+
+ self.$(".categ").empty();
+ try{
+ var self = this;
+ self._rpc({
+ model: 'account.partner.ageing',
+ method: 'view_report',
+ args: [[this.wizard_id]],
+ }).then(function(datas) {
+ _.each(datas['report_lines'][0], function(rep_lines) {
+ rep_lines.total = self.format_currency(datas['currency'],rep_lines.total);
+ rep_lines[4] = self.format_currency(datas['currency'],rep_lines[4]);
+ rep_lines[3] = self.format_currency(datas['currency'],rep_lines[3]);
+ rep_lines[2] = self.format_currency(datas['currency'],rep_lines[2]);
+ rep_lines[1] = self.format_currency(datas['currency'],rep_lines[1]);
+ rep_lines[0] = self.format_currency(datas['currency'],rep_lines[0]);
+
+ rep_lines['direction'] = self.format_currency(datas['currency'],rep_lines['direction']);
+
+ });
+
+ if (initial_render) {
+ self.$('.filter_view_tb').html(QWeb.render('AgeingFilterView', {
+ filter_data: datas['filters'],
+ }));
+ self.$el.find('.partners').select2({
+ placeholder: ' Partners...',
+ });
+ self.$el.find('.category').select2({
+ placeholder: ' Partner Category...',
+ });
+ self.$el.find('.target_move').select2({
+ placeholder: ' Target Move...',
+ });
+ self.$el.find('.result_selection').select2({
+ placeholder: ' Account Type...',
+ });
+
+ }
+ var child=[];
+
+ self.$('.table_view_tb').html(QWeb.render('Ageingtable', {
+
+ report_lines : datas['report_lines'],
+ move_lines :datas['report_lines'][2],
+ filter : datas['filters'],
+ currency : datas['currency'],
+ }));
+
+ });
+
+ }
+ catch (el) {
+ window.location.href
+ }
+ },
+ format_currency: function(currency, amount) {
+ if (typeof(amount) != 'number') {
+ amount = parseFloat(amount);
+ }
+ var formatted_value = (parseInt(amount)).toLocaleString(currency[2],{
+ minimumFractionDigits: 2
+ })
+ return formatted_value
+ },
+
+ print_pdf: function(e) {
+ e.preventDefault();
+
+ var self = this;
+ self._rpc({
+ model: 'account.partner.ageing',
+ method: 'view_report',
+ args: [
+ [self.wizard_id]
+ ],
+ }).then(function(data) {
+ var action = {
+ 'type': 'ir.actions.report',
+ 'report_type': 'qweb-pdf',
+ 'report_name': 'dynamic_accounts_report.partner_ageing',
+ 'report_file': 'dynamic_accounts_report.partner_ageing',
+ 'data': {
+ 'report_data': data
+ },
+ 'context': {
+ 'active_model': 'account.partner.ageing',
+ 'landscape': 1,
+ 'ageing_pdf_report': true
+
+ },
+ 'display_name': 'Partner Ageing',
+ };
+
+ return self.do_action(action);
+ });
+ },
+
+
+
+ print_xlsx: function() {
+ var self = this;
+ self._rpc({
+ model: 'account.partner.ageing',
+ method: 'view_report',
+ args: [
+ [self.wizard_id]
+ ],
+ }).then(function(data) {
+
+ var action = {
+ 'type': 'ir_actions_dynamic_xlsx_download',
+ 'data': {
+ 'model': 'account.partner.ageing',
+ 'options': JSON.stringify(data['filters']),
+ 'output_format': 'xlsx',
+ 'report_data': JSON.stringify(data['report_lines']),
+ 'report_name': 'Partner Ageing',
+ 'dfr_data': JSON.stringify(data),
+ },
+ };
+ return self.do_action(action);
+ });
+ },
+
+
+
+
+
+ create_lines_with_style: function(rec, attr, datas) {
+ var temp_str = "";
+ var style_name = "border-bottom: 1px solid #e6e6e6;";
+ var attr_name = attr + " style="+style_name;
+
+
+
+ temp_str += "<td class='child_col1' "+attr_name+" >"+rec['code'] +rec['name'] +"</td>";
+ if(datas.currency[1]=='after'){
+ temp_str += "<td class='child_col2' "+attr_name+" >"+rec['debit'].toFixed(2)+datas.currency[0]+"</td>";
+ temp_str += "<td class='child_col3' "+attr_name+" >"+rec['credit'].toFixed(2) +datas.currency[0]+ "</td>";
+
+ }
+ else{
+ temp_str += "<td class='child_col2' "+attr_name+" >"+datas.currency[0]+rec['debit'].toFixed(2) + "</td>";
+ temp_str += "<td class='child_col3' "+attr_name+">"+datas.currency[0]+rec['credit'].toFixed(2) + "</td>";
+
+ }
+ return temp_str;
+ },
+
+
+ journal_line_click: function (el){
+
+ click_num++;
+ var self = this;
+ var line = $(el.target).parent().data('id');
+
+ return self.do_action({
+ type: 'ir.actions.act_window',
+ view_type: 'form',
+ view_mode: 'form',
+ res_model: 'account.move',
+ views: [
+ [false, 'form']
+ ],
+ res_id: line,
+ target: 'current',
+ });
+
+ },
+
+ show_drop_down: function(event) {
+ event.preventDefault();
+ var self = this;
+ var account_id = $(event.currentTarget).data('account-id');
+
+ var partner_id = $(event.currentTarget)[0].cells[0].innerText;
+
+ var offset = 0;
+ var td = $(event.currentTarget).next('tr').find('td');
+ if (td.length == 1) {
+
+ self._rpc({
+ model: 'account.partner.ageing',
+ method: 'view_report',
+ args: [
+ [self.wizard_id]
+ ],
+ }).then(function(data) {
+
+
+ _.each(data['report_lines'][0], function(rep_lines) {
+ _.each(rep_lines['child_lines'], function(child_line) {
+ child_line.amount = self.format_currency(data['currency'],child_line.amount);
+
+ });
+ });
+
+
+ for (var i = 0; i < data['report_lines'][0].length; i++) {
+ if (account_id == data['report_lines'][0][i]['partner_id'] ){
+ $(event.currentTarget).next('tr').find('td .gl-table-div').remove();
+ $(event.currentTarget).next('tr').find('td ul').after(
+ QWeb.render('SubSectional', {
+ account_data: data['report_lines'][0][i]['child_lines'],
+ }))
+ $(event.currentTarget).next('tr').find('td ul li:first a').css({
+ 'background-color': '#00ede8',
+ 'font-weight': 'bold',
+ });
+ }
+ }
+
+ });
+ }
+ },
+
+ view_acc_move: function(event) {
+ event.preventDefault();
+ var self = this;
+ var context = {};
+ var show_acc_move = function(res_model, res_id, view_id) {
+ var action = {
+ type: 'ir.actions.act_window',
+ view_type: 'form',
+ view_mode: 'form',
+ res_model: res_model,
+ views: [
+ [view_id || false, 'form']
+ ],
+ res_id: res_id,
+ target: 'current',
+ context: context,
+ };
+ return self.do_action(action);
+ };
+ rpc.query({
+ model: 'account.move',
+ method: 'search_read',
+ domain: [
+ ['id', '=', $(event.currentTarget).data('move-id')]
+ ],
+ fields: ['id'],
+ limit: 1,
+ })
+ .then(function(record) {
+ if (record.length > 0) {
+ show_acc_move('account.move', record[0].id);
+ } else {
+ show_acc_move('account.move', $(event.currentTarget).data('move-id'));
+ }
+ });
+ },
+
+
+ apply_filter: function(event) {
+
+ event.preventDefault();
+ var self = this;
+ self.initial_render = false;
+
+ var filter_data_selected = {};
+
+ if ($("#date_from").val()) {
+ var dateString = $("#date_from").val();
+
+ filter_data_selected.date_from= dateString;
+ }
+ var partner_ids = [];
+ var partner_text = [];
+ var span_res = document.getElementById("partner_res")
+ var partner_list = $(".partners").select2('data')
+ for (var i = 0; i < partner_list.length; i++) {
+ if(partner_list[i].element[0].selected === true)
+ {partner_ids.push(parseInt(partner_list[i].id))
+ if(partner_text.includes(partner_list[i].text) === false)
+ {partner_text.push(partner_list[i].text)
+ }
+ span_res.value = partner_text
+ span_res.innerHTML=span_res.value;
+ }
+ }
+ if (partner_list.length == 0){
+ span_res.value = ""
+ span_res.innerHTML="";
+ }
+ filter_data_selected.partner_ids = partner_ids
+
+ var partner_category_ids = [];
+ var partner_category_text = [];
+ var span_res = document.getElementById("category_res")
+ var category_list = $(".category").select2('data')
+
+ for (var i = 0; i < category_list.length; i++) {
+ if(category_list[i].element[0].selected === true)
+ {partner_category_ids.push(parseInt(category_list[i].id))
+ if(partner_category_text.includes(category_list[i].text) === false)
+ {partner_category_text.push(category_list[i].text)
+ }
+ span_res.value = partner_category_text
+ span_res.innerHTML=span_res.value;
+ }
+ }
+ if (category_list.length == 0){
+ span_res.value = ""
+ span_res.innerHTML="";
+ }
+ filter_data_selected.partner_category_ids = partner_category_ids
+
+
+ if ($(".target_move").length) {
+
+ var post_res = document.getElementById("post_res")
+ filter_data_selected.target_move = $(".target_move")[1].value
+
+ post_res.value = $(".target_move")[1].value
+ post_res.innerHTML=post_res.value;
+ if ($(".target_move")[1].value == "") {
+ post_res.innerHTML="posted";
+
+ }
+ }
+
+ if ($(".result_selection").length) {
+ var account_res = document.getElementById("account_res")
+ filter_data_selected.result_selection = $(".result_selection")[1].value
+ account_res.value = $(".result_selection")[1].value
+ account_res.innerHTML=account_res.value;
+ if ($(".result_selection")[1].value == "") {
+ account_res.innerHTML="customer";
+
+ }
+ }
+
+
+ rpc.query({
+ model: 'account.partner.ageing',
+ method: 'write',
+ args: [
+ self.wizard_id, filter_data_selected
+ ],
+ }).then(function(res) {
+ self.initial_render = false;
+ self.load_data(self.initial_render);
+ });
+ },
+
+ });
+ core.action_registry.add("p_a", PartnerAgeing);
+ return PartnerAgeing;
+}); \ No newline at end of file
diff --git a/dynamic_accounts_report/static/src/js/cash_flow.js b/dynamic_accounts_report/static/src/js/cash_flow.js
new file mode 100644
index 0000000..66219aa
--- /dev/null
+++ b/dynamic_accounts_report/static/src/js/cash_flow.js
@@ -0,0 +1,335 @@
+odoo.define('dynamic_cash_flow_statements.cash_flow', function (require) {
+ 'use strict';
+ var AbstractAction = require('web.AbstractAction');
+ var core = require('web.core');
+ var field_utils = require('web.field_utils');
+ var rpc = require('web.rpc');
+ var session = require('web.session');
+ var utils = require('web.utils');
+ var QWeb = core.qweb;
+ var _t = core._t;
+
+ window.click_num = 0;
+ var CashFlow = AbstractAction.extend({
+ template: 'CFTemp',
+ events: {
+ 'click .parent-line': 'journal_line_click',
+ 'click .child_col1': 'journal_line_click',
+ 'click #apply_filter': 'apply_filter',
+ 'click #pdf': 'print_pdf',
+ 'click #xlsx': 'print_xlsx',
+ 'click .cf-line': 'get_move_lines',
+ },
+
+ init: function(parent, action) {
+ this._super(parent, action);
+ this.currency=action.currency;
+ this.report_lines = action.report_lines;
+ this.wizard_id = action.context.wizard | null;
+ },
+
+
+ start: function() {
+ var self = this;
+ self.initial_render = true;
+ rpc.query({
+ model: 'account.cash.flow',
+ method: 'create',
+ args: [{
+
+ }]
+ }).then(function(t_res) {
+ self.wizard_id = t_res;
+ self.load_data(self.initial_render);
+ })
+ },
+
+ get_move_lines: function(event) {
+ event.preventDefault();
+ var self = this;
+ var account_id = $(event.currentTarget).data('account-id');
+ var offset = 0;
+ var td = $(event.currentTarget).next('tr').find('td');
+ if (td.length == 1) {
+ self._rpc({
+ model: 'account.cash.flow',
+ method: 'view_report',
+ args: [
+ [self.wizard_id]
+ ],
+ }).then(function(datas) {
+ _.each(datas['journal_res'], function(journal_lines) {
+ _.each(journal_lines['journal_lines'], function(rep_lines) {
+ rep_lines.total_debit = self.format_currency(datas['currency'],rep_lines.total_debit);
+ rep_lines.total_credit = self.format_currency(datas['currency'],rep_lines.total_credit);
+ rep_lines.balance = self.format_currency(datas['currency'],rep_lines.balance);
+
+
+
+
+ });
+
+ });
+ _.each(datas['account_res'], function(journal_lines) {
+ _.each(journal_lines['journal_lines'], function(rep_lines) {
+ rep_lines.total_debit = self.format_currency(datas['currency'],rep_lines.total_debit);
+ rep_lines.total_credit = self.format_currency(datas['currency'],rep_lines.total_credit);
+ rep_lines.total_balance = self.format_currency(datas['currency'],rep_lines.total_balance);
+
+
+ });
+ _.each(journal_lines['move_lines'], function(move_lines) {
+ move_lines.total_debit = self.format_currency(datas['currency'],move_lines.total_debit);
+ move_lines.total_credit = self.format_currency(datas['currency'],move_lines.total_credit);
+ move_lines.balance = self.format_currency(datas['currency'],move_lines.balance);
+
+
+
+
+ });
+ });
+
+
+ if(datas['levels']== 'detailed'){
+ $(event.currentTarget).next('tr').find('td ul').after(
+ QWeb.render('SubSectionCF', {
+ count: 3,
+ offset: 0,
+ account_data: datas['journal_res'],
+ level:datas['levels'],
+ currency : datas['currency'],
+ line_id:parseInt(event.currentTarget.attributes[3].value),
+ }))
+ }else if(datas['levels']== 'very' || datas['levels']== false){
+ $(event.currentTarget).next('tr').find('td ul').after(
+ QWeb.render('ChildSubSectionCF', {
+ count: 3,
+ offset: 0,
+ account_data: datas['account_res'],
+ level:datas['levels'],
+ currency : datas['currency'],
+ line_id:parseInt(event.currentTarget.attributes[3].value),
+ }))
+ }
+
+ $(event.currentTarget).next('tr').find('td ul li:first a').css({
+ 'background-color': '#00ede8',
+ 'font-weight': 'bold',
+ });
+ })
+ }
+ },
+
+
+ load_data: function (initial_render = true) {
+ var self = this;
+ self.$(".categ").empty();
+ try{
+ var self = this;
+ self._rpc({
+ model: 'account.cash.flow',
+ method: 'view_report',
+ args: [[this.wizard_id]],
+ }).then(function(datas) {
+
+
+ _.each(datas['fetched_data'], function(rep_lines) {
+ rep_lines.total_debit = self.format_currency(datas['currency'],rep_lines.total_debit);
+ rep_lines.total_credit = self.format_currency(datas['currency'],rep_lines.total_credit);
+ rep_lines.total_balance = self.format_currency(datas['currency'],rep_lines.total_balance);
+
+
+
+
+ });
+ if (initial_render) {
+ self.$('.filter_view_tb').html(QWeb.render('CashFilterView', {
+ filter_data: datas['filters'],
+ }));
+ self.$el.find('.journals').select2({
+ placeholder: 'Select Journals...',
+ });
+ self.$el.find('.target_move').select2({
+ placeholder: 'Target Move...',
+ });
+ self.$el.find('.levels').select2({
+ placeholder: 'Levels...',
+ });
+ }
+ var child=[];
+
+ self.$('.table_view_tb').html(QWeb.render('CashTable', {
+
+ account_data: datas['fetched_data'],
+ level:datas['levels'],
+ currency : datas['currency'],
+ }));
+
+ });
+
+ }
+ catch (el) {
+ window.location.href
+ }
+ },
+
+ format_currency: function(currency, amount) {
+ if (typeof(amount) != 'number') {
+ amount = parseFloat(amount);
+ }
+ var formatted_value = (parseInt(amount)).toLocaleString(currency[2],{
+ minimumFractionDigits: 2
+ })
+ return formatted_value
+ },
+
+ show_gl: function(e) {
+ var self = this;
+ var account_id = $(e.target).attr('data-account-id');
+ var options = {
+ account_ids: [account_id],
+ }
+
+ var action = {
+ type: 'ir.actions.client',
+ name: 'GL View',
+ tag: 'g_l',
+ target: 'new',
+
+ domain: [['account_ids','=', account_id]],
+
+
+ }
+ return this.do_action(action);
+
+ },
+ print_pdf: function(e) {
+ e.preventDefault();
+ var self = this;
+ self._rpc({
+ model: 'account.cash.flow',
+ method: 'view_report',
+ args: [
+ [self.wizard_id]
+ ],
+ }).then(function(data) {
+ var action = {
+ 'type': 'ir.actions.report',
+ 'report_type': 'qweb-pdf',
+ 'report_name': 'dynamic_accounts_report.cash_flow',
+ 'report_file': 'dynamic_accounts_report.cash_flow',
+ 'data': {
+ 'report_data': data
+ },
+ 'context': {
+ 'active_model': 'account.cash.flow',
+ 'landscape': 1,
+ 'trial_pdf_report': true
+ },
+ 'display_name': 'Cash Flow Statements',
+ };
+ return self.do_action(action);
+ });
+ },
+
+
+
+ print_xlsx: function() {
+ var self = this;
+ self._rpc({
+ model: 'account.cash.flow',
+ method: 'view_report',
+ args: [
+ [self.wizard_id]
+ ],
+ }).then(function(data) {
+ var action = {
+ 'type': 'ir_actions_dynamic_xlsx_download',
+ 'data': {
+ 'model': 'account.cash.flow',
+ 'options': JSON.stringify(data['filters']),
+ 'output_format': 'xlsx',
+ 'report_data': JSON.stringify(data['report_lines']),
+ 'report_name': 'Cash Flow Statements',
+ 'dfr_data': JSON.stringify(data),
+ },
+ };
+ return self.do_action(action);
+ });
+ },
+
+ journal_line_click: function (el){
+ click_num++;
+ var self = this;
+ var line = $(el.target).parent().data('id');
+ return self.do_action({
+ type: 'ir.actions.act_window',
+ view_type: 'form',
+ view_mode: 'form',
+ res_model: 'account.move',
+ views: [
+ [false, 'form']
+ ],
+ res_id: line,
+ target: 'current',
+ });
+
+ },
+
+
+ apply_filter: function(event) {
+
+ event.preventDefault();
+ var self = this;
+ self.initial_render = false;
+
+ var filter_data_selected = {};
+
+
+
+ if ($(".levels").length){
+ var level_res = document.getElementById("level_res")
+ filter_data_selected.levels = $(".levels")[1].value
+ level_res.value = $(".levels")[1].value
+ level_res.innerHTML=level_res.value;
+ if ($(".levels").value==""){
+ type_res.innerHTML="summary";
+ filter_data_selected.type = "Summary"
+ }
+ }
+
+ if ($("#date_from").val()) {
+ var dateString = $("#date_from").val();
+ filter_data_selected.date_from = dateString;
+ }
+ if ($("#date_to").val()) {
+ var dateString = $("#date_to").val();
+ filter_data_selected.date_to = dateString;
+ }
+
+ if ($(".target_move").length) {
+ var post_res = document.getElementById("post_res")
+ filter_data_selected.target_move = $(".target_move")[1].value
+ post_res.value = $(".target_move")[1].value
+ post_res.innerHTML=post_res.value;
+ if ($(".target_move")[1].value == "") {
+ post_res.innerHTML="posted";
+
+ }
+ }
+ rpc.query({
+ model: 'account.cash.flow',
+ method: 'write',
+ args: [
+ self.wizard_id, filter_data_selected
+ ],
+ }).then(function(res) {
+ self.initial_render = false;
+ self.load_data(self.initial_render);
+ });
+ },
+
+ });
+ core.action_registry.add("c_f", CashFlow);
+ return CashFlow;
+}); \ No newline at end of file
diff --git a/dynamic_accounts_report/static/src/js/daybook.js b/dynamic_accounts_report/static/src/js/daybook.js
new file mode 100644
index 0000000..47d98c1
--- /dev/null
+++ b/dynamic_accounts_report/static/src/js/daybook.js
@@ -0,0 +1,387 @@
+odoo.define('dynamic_partner_daybook.daybook', function (require) {
+ 'use strict';
+ var AbstractAction = require('web.AbstractAction');
+ var core = require('web.core');
+ var field_utils = require('web.field_utils');
+ var rpc = require('web.rpc');
+ var session = require('web.session');
+ var utils = require('web.utils');
+ var QWeb = core.qweb;
+ var _t = core._t;
+
+ window.click_num = 0;
+ var DayBook = AbstractAction.extend({
+ template: 'DaybookTemp',
+ events: {
+ 'click .parent-line': 'journal_line_click',
+ 'click .child_col1': 'journal_line_click',
+ 'click #apply_filter': 'apply_filter',
+ 'click #pdf': 'print_pdf',
+ 'click #xlsx': 'print_xlsx',
+ 'click .db-line': 'show_drop_down',
+ 'click .view-account-move': 'view_acc_move',
+ },
+
+ init: function(parent, action) {
+ this._super(parent, action);
+ this.currency=action.currency;
+ this.report_lines = action.report_lines;
+ this.wizard_id = action.context.wizard | null;
+ },
+
+
+ start: function() {
+ var self = this;
+ self.initial_render = true;
+ rpc.query({
+ model: 'account.day.book',
+ method: 'create',
+ args: [{
+
+ }]
+ }).then(function(t_res) {
+ self.wizard_id = t_res;
+ self.load_data(self.initial_render);
+ })
+ },
+
+
+ load_data: function (initial_render = true) {
+ var self = this;
+ self.$(".categ").empty();
+ try{
+ var self = this;
+ self._rpc({
+ model: 'account.day.book',
+ method: 'view_report',
+ args: [[this.wizard_id]],
+ }).then(function(datas) {
+ _.each(datas['report_lines'], function(rep_lines) {
+ rep_lines.debit = self.format_currency(datas['currency'],rep_lines.debit);
+ rep_lines.credit = self.format_currency(datas['currency'],rep_lines.credit);
+ rep_lines.balance = self.format_currency(datas['currency'],rep_lines.balance);
+
+ });
+
+ if (initial_render) {
+
+ self.$('.filter_view_db').html(QWeb.render('DayFilterView', {
+ filter_data: datas['filters'],
+ }));
+ self.$el.find('.journals').select2({
+ placeholder: ' Journals...',
+ });
+ self.$el.find('.account').select2({
+ placeholder: ' Accounts...',
+ });
+ self.$el.find('.target_move').select2({
+ placeholder: 'Target Move...',
+ });
+
+
+ }
+ var child=[];
+
+ self.$('.table_view_db').html(QWeb.render('Daytable', {
+
+ report_lines : datas['report_lines'],
+ filter : datas['filters'],
+ currency : datas['currency'],
+ }));
+
+ });
+
+ }
+ catch (el) {
+ window.location.href
+ }
+ },
+
+
+ format_currency: function(currency, amount) {
+ if (typeof(amount) != 'number') {
+ amount = parseFloat(amount);
+ }
+ var formatted_value = (parseInt(amount)).toLocaleString(currency[2],{
+ minimumFractionDigits: 2
+ })
+ return formatted_value
+ },
+
+ print_pdf: function(e) {
+ e.preventDefault();
+
+ var self = this;
+ self._rpc({
+ model: 'account.day.book',
+ method: 'view_report',
+ args: [
+ [self.wizard_id]
+ ],
+ }).then(function(data) {
+
+ var action = {
+ 'type': 'ir.actions.report',
+ 'report_type': 'qweb-pdf',
+ 'report_name': 'dynamic_accounts_report.day_book',
+ 'report_file': 'dynamic_accounts_report.day_book',
+ 'data': {
+ 'report_data': data
+ },
+ 'context': {
+ 'active_model': 'account.day.book',
+ 'landscape': 1,
+ 'daybook_pdf_report': true
+ },
+ 'display_name': 'Day Book',
+ };
+
+ return self.do_action(action);
+ });
+ },
+
+ print_xlsx: function() {
+ var self = this;
+ self._rpc({
+ model: 'account.day.book',
+ method: 'view_report',
+ args: [
+ [self.wizard_id]
+ ],
+ }).then(function(data) {
+
+ var action = {
+ 'type': 'ir_actions_dynamic_xlsx_download',
+ 'data': {
+ 'model': 'account.day.book',
+ 'options': JSON.stringify(data['filters']),
+ 'output_format': 'xlsx',
+ 'report_data': JSON.stringify(data['report_lines']),
+ 'report_name': 'Day Book',
+ 'dfr_data': JSON.stringify(data),
+ },
+ };
+ return self.do_action(action);
+ });
+ },
+
+ create_lines_with_style: function(rec, attr, datas) {
+
+ var temp_str = "";
+ var style_name = "border-bottom: 1px solid #e6e6e6;";
+ var attr_name = attr + " style="+style_name;
+ temp_str += "<td class='child_col1' "+attr_name+" >"+rec['code'] +rec['name'] +"</td>";
+ if(datas.currency[1]=='after'){
+ temp_str += "<td class='child_col2' "+attr_name+" >"+rec['debit'].toFixed(2)+datas.currency[0]+"</td>";
+ temp_str += "<td class='child_col3' "+attr_name+" >"+rec['credit'].toFixed(2) +datas.currency[0]+ "</td>";
+ }
+ else{
+ temp_str += "<td class='child_col2' "+attr_name+" >"+datas.currency[0]+rec['debit'].toFixed(2) + "</td>";
+ temp_str += "<td class='child_col3' "+attr_name+">"+datas.currency[0]+rec['credit'].toFixed(2) + "</td>";
+ }
+ return temp_str;
+ },
+
+
+ journal_line_click: function (el){
+ click_num++;
+ var self = this;
+ var line = $(el.target).parent().data('id');
+ return self.do_action({
+ type: 'ir.actions.act_window',
+ view_type: 'form',
+ view_mode: 'form',
+ res_model: 'account.move',
+ views: [
+ [false, 'form']
+ ],
+ res_id: line,
+ target: 'current',
+ });
+
+ },
+
+ show_drop_down: function(event) {
+ event.preventDefault();
+ var self = this;
+ var account_id = $(event.currentTarget).data('account-id');
+ var offset = 0;
+ var td = $(event.currentTarget).next('tr').find('td');
+ if (td.length == 1) {
+
+ self._rpc({
+ model: 'account.day.book',
+ method: 'view_report',
+ args: [
+ [self.wizard_id]
+ ],
+ }).then(function(data) {
+ _.each(data['report_lines'], function(rep_lines) {
+ _.each(rep_lines['child_lines'], function(move_line) {
+
+ move_line.debit = self.format_currency(data['currency'],move_line.debit);
+ move_line.credit = self.format_currency(data['currency'],move_line.credit);
+ move_line.balance = self.format_currency(data['currency'],move_line.balance);
+
+
+ });
+ });
+ for (var i = 0; i < data['report_lines'].length; i++) {
+
+ if (account_id == data['report_lines'][i]['id'] ){
+ $(event.currentTarget).next('tr').find('td .db-table-div').remove();
+ $(event.currentTarget).next('tr').find('td ul').after(
+ QWeb.render('SubSectiondb', {
+
+ account_data: data['report_lines'][i]['child_lines'],
+ currency_symbol : data.currency[0],
+ currency_position : data.currency[1],
+ }))
+
+ $(event.currentTarget).next('tr').find('td ul li:first a').css({
+ 'background-color': '#00ede8',
+ 'font-weight': 'bold',
+ });
+ }
+ }
+
+ });
+ }
+ },
+
+ view_acc_move: function(event) {
+
+ event.preventDefault();
+ var self = this;
+ var context = {};
+ var show_acc_move = function(res_model, res_id, view_id) {
+ var action = {
+ type: 'ir.actions.act_window',
+ view_type: 'form',
+ view_mode: 'form',
+ res_model: res_model,
+ views: [
+ [view_id || false, 'form']
+ ],
+ res_id: res_id,
+ target: 'current',
+ context: context,
+ };
+ return self.do_action(action);
+ };
+ rpc.query({
+ model: 'account.move',
+ method: 'search_read',
+ domain: [
+ ['id', '=', $(event.currentTarget).data('move-id')]
+ ],
+ fields: ['id'],
+ limit: 1,
+ })
+ .then(function(record) {
+
+ if (record.length > 0) {
+ show_acc_move('account.move', record[0].id);
+ } else {
+ show_acc_move('account.move', $(event.currentTarget).data('move-id'));
+ }
+ });
+ },
+
+
+ apply_filter: function(event) {
+
+ event.preventDefault();
+ var self = this;
+ self.initial_render = false;
+
+ var filter_data_selected = {};
+
+
+ var account_ids = [];
+ var account_text = [];
+
+ var account_res = document.getElementById("acc_res")
+
+ var account_list = $(".account").select2('data')
+ for (var i = 0; i < account_list.length; i++) {
+ if(account_list[i].element[0].selected === true){
+
+ account_ids.push(parseInt(account_list[i].id))
+ if(account_text.includes(account_list[i].text) === false){
+ account_text.push(account_list[i].text)
+ }
+ account_res.value = account_text
+ account_res.innerHTML=account_res.value;
+ }
+ }
+ if (account_list.length == 0){
+ account_res.value = ""
+ account_res.innerHTML="";
+
+ }
+
+ filter_data_selected.account_ids = account_ids
+
+
+
+ var journal_ids = [];
+ var journal_text = [];
+ var journal_res = document.getElementById("journal_res")
+ var journal_list = $(".journals").select2('data')
+ for (var i = 0; i < journal_list.length; i++) {
+ if(journal_list[i].element[0].selected === true){
+
+ journal_ids.push(parseInt(journal_list[i].id))
+ if(journal_text.includes(journal_list[i].text) === false){
+ journal_text.push(journal_list[i].text)
+ }
+ journal_res.value = journal_text
+ journal_res.innerHTML=journal_res.value;
+ }
+ }
+ if (journal_list.length == 0){
+ journal_res.value = ""
+ journal_res.innerHTML="";
+
+ }
+ filter_data_selected.journal_ids = journal_ids
+
+ if ($("#date_from").val()) {
+ var dateString = $("#date_from").val();
+
+ filter_data_selected.date_from = dateString;
+ }
+ if ($("#date_to").val()) {
+ var dateString = $("#date_to").val();
+ filter_data_selected.date_to = dateString;
+ }
+
+ if ($(".target_move").length) {
+
+ var post_res = document.getElementById("post_res")
+ filter_data_selected.target_move = $(".target_move")[1].value
+ post_res.value = $(".target_move")[1].value
+ post_res.innerHTML=post_res.value;
+ if ($(".target_move")[1].value == "") {
+ post_res.innerHTML="posted";
+
+ }
+ }
+
+ rpc.query({
+ model: 'account.day.book',
+ method: 'write',
+ args: [
+ self.wizard_id, filter_data_selected
+ ],
+ }).then(function(res) {
+ self.initial_render = false;
+ self.load_data(self.initial_render);
+ });
+ },
+
+ });
+ core.action_registry.add("d_b", DayBook);
+ return DayBook;
+});
diff --git a/dynamic_accounts_report/static/src/js/financial_reports.js b/dynamic_accounts_report/static/src/js/financial_reports.js
new file mode 100644
index 0000000..5d79f25
--- /dev/null
+++ b/dynamic_accounts_report/static/src/js/financial_reports.js
@@ -0,0 +1,357 @@
+odoo.define('dynamic_accounts_report.financial_reports', function (require) {
+ 'use strict';
+ var AbstractAction = require('web.AbstractAction');
+ var core = require('web.core');
+ var field_utils = require('web.field_utils');
+ var rpc = require('web.rpc');
+ var session = require('web.session');
+ var utils = require('web.utils');
+ var QWeb = core.qweb;
+ var _t = core._t;
+
+ window.click_num = 0;
+ var ProfitAndLoss = AbstractAction.extend({
+ template: 'dfr_template_new',
+ events: {
+ 'click .parent-line': 'journal_line_click',
+ 'click .child_col1': 'journal_line_click',
+ 'click #apply_filter': 'apply_filter',
+ 'click #pdf': 'print_pdf',
+ 'click #xlsx': 'print_xlsx',
+ 'click .show-gl': 'show_gl',
+ },
+
+ init: function(parent, action) {
+ this._super(parent, action);
+ this.currency=action.currency;
+ this.report_lines = action.report_lines;
+ this.wizard_id = action.context.wizard | null;
+ },
+ start: function() {
+ var self = this;
+ self.initial_render = true;
+ rpc.query({
+ model: 'dynamic.balance.sheet.report',
+ method: 'create',
+ args: [{
+ }]
+ }).then(function(t_res) {
+ self.wizard_id = t_res;
+ self.load_data(self.initial_render);
+ })
+ },
+
+ load_data: function (initial_render = true) {
+ var self = this;
+ var action_title = self._title;
+ self.$(".categ").empty();
+ try{
+ var self = this;
+ self._rpc({
+ model: 'dynamic.balance.sheet.report',
+ method: 'view_report',
+ args: [[this.wizard_id], action_title],
+ }).then(function(datas) {
+
+ if (initial_render) {
+ self.$('.filter_view_dfr').html(QWeb.render('DfrFilterView', {
+ filter_data: datas['filters'],
+ title : datas['name'],
+ }));
+ self.$el.find('.journals').select2({
+ placeholder: ' Journals...',
+ });
+ self.$el.find('.account').select2({
+ placeholder: ' Accounts...',
+ });
+ self.$el.find('.account-tag').select2({
+ placeholder: 'Account Tag...',
+ });
+ self.$el.find('.analytics').select2({
+ placeholder: 'Analytic Accounts...',
+ });
+ self.$el.find('.analytic-tag').select2({
+ placeholder: 'Analytic Tag...',
+ });
+ self.$el.find('.target_move').select2({
+ placeholder: 'Target Move...',
+ });
+
+ }
+ var child=[];
+ self.$('.table_view_dfr').html(QWeb.render('dfr_table', {
+
+ report_lines : datas['report_lines'],
+ filter : datas['filters'],
+ currency : datas['currency'],
+ credit_total : datas['credit_total'],
+ debit_total : datas['debit_total'],
+ debit_balance : datas['debit_balance'],
+ bs_lines : datas['bs_lines'],
+ }));
+ });
+ }
+ catch (el) {
+ window.location.href
+ }
+ },
+
+ format_currency: function(currency, amount) {
+ if (typeof(amount) != 'number') {
+ amount = parseFloat(amount);
+ }
+ var formatted_value = (parseInt(amount)).toLocaleString(currency[2],{
+ minimumFractionDigits: 2
+ })
+ return formatted_value
+ },
+
+ show_gl: function(e) {
+ var self = this;
+ var account_id = $(e.target).attr('data-account-id');
+ var options = {
+ account_ids: [account_id],
+ }
+ var action = {
+ type: 'ir.actions.client',
+ name: 'GL View',
+ tag: 'g_l',
+ target: 'new',
+ domain: [['account_ids','=', account_id]],
+
+ }
+ return this.do_action(action);
+ },
+
+ print_pdf: function(e) {
+ e.preventDefault();
+ var self = this;
+ var action_title = self._title;
+ self._rpc({
+ model: 'dynamic.balance.sheet.report',
+ method: 'view_report',
+ args: [
+ [self.wizard_id], action_title
+ ],
+ }).then(function(data) {
+ var action = {
+ 'type': 'ir.actions.report',
+ 'report_type': 'qweb-pdf',
+ 'report_name': 'dynamic_accounts_report.balance_sheet',
+ 'report_file': 'dynamic_accounts_report.balance_sheet',
+ 'data': {
+ 'report_data': data,
+ 'report_name': action_title
+ },
+ 'context': {
+ 'active_model': 'dynamic.balance.sheet.report',
+ 'landscape': 1,
+ 'bs_report': true
+ },
+ 'display_name': action_title,
+ };
+ return self.do_action(action);
+ });
+ },
+
+ print_xlsx: function() {
+ var self = this;
+ var action_title = self._title;
+ self._rpc({
+ model: 'dynamic.balance.sheet.report',
+ method: 'view_report',
+ args: [
+ [self.wizard_id], action_title
+ ],
+ }).then(function(data) {
+ var action = {
+ 'type': 'ir_actions_dynamic_xlsx_download',
+ 'data': {
+ 'model': 'dynamic.balance.sheet.report',
+ 'options': JSON.stringify(data['filters']),
+ 'output_format': 'xlsx',
+ 'report_data': action_title,
+ 'report_name': action_title,
+ 'dfr_data': JSON.stringify(data['bs_lines']),
+ },
+ };
+ return self.do_action(action);
+ });
+ },
+
+ journal_line_click: function (el){
+ click_num++;
+ var self = this;
+ var line = $(el.target).parent().data('id');
+ return self.do_action({
+ type: 'ir.actions.act_window',
+ view_type: 'form',
+ view_mode: 'form',
+ res_model: 'account.move',
+ views: [
+ [false, 'form']
+ ],
+ res_id: line,
+ target: 'current',
+ });
+
+ },
+
+ apply_filter: function(event) {
+
+ event.preventDefault();
+ var self = this;
+ self.initial_render = false;
+ var filter_data_selected = {};
+ var account_ids = [];
+ var account_text = [];
+ var account_res = document.getElementById("acc_res")
+ var account_list = $(".account").select2('data')
+ for (var i = 0; i < account_list.length; i++) {
+ if(account_list[i].element[0].selected === true){
+
+ account_ids.push(parseInt(account_list[i].id))
+ if(account_text.includes(account_list[i].text) === false){
+ account_text.push(account_list[i].text)
+ }
+ account_res.value = account_text
+ account_res.innerHTML=account_res.value;
+ }
+ }
+ if (account_list.length == 0){
+ account_res.value = ""
+ account_res.innerHTML="";
+
+ }
+ filter_data_selected.account_ids = account_ids
+
+
+ var journal_ids = [];
+ var journal_text = [];
+ var journal_res = document.getElementById("journal_res")
+ var journal_list = $(".journals").select2('data')
+ for (var i = 0; i < journal_list.length; i++) {
+ if(journal_list[i].element[0].selected === true){
+
+ journal_ids.push(parseInt(journal_list[i].id))
+ if(journal_text.includes(journal_list[i].text) === false){
+ journal_text.push(journal_list[i].text)
+ }
+ journal_res.value = journal_text
+ journal_res.innerHTML=journal_res.value;
+ }
+ }
+ if (journal_list.length == 0){
+ journal_res.value = ""
+ journal_res.innerHTML="";
+
+ }
+ filter_data_selected.journal_ids = journal_ids
+
+ var account_tag_ids = [];
+ var account_tag_text = [];
+ var account_tag_res = document.getElementById("acc_tag_res")
+
+ var account_tag_list = $(".account-tag").select2('data')
+ for (var i = 0; i < account_tag_list.length; i++) {
+ if(account_tag_list[i].element[0].selected === true){
+
+ account_tag_ids.push(parseInt(account_tag_list[i].id))
+ if(account_tag_text.includes(account_tag_list[i].text) === false){
+ account_tag_text.push(account_tag_list[i].text)
+ }
+
+ account_tag_res.value = account_tag_text
+ account_tag_res.innerHTML=account_tag_res.value;
+ }
+ }
+ if (account_tag_list.length == 0){
+ account_tag_res.value = ""
+ account_tag_res.innerHTML="";
+
+ }
+ filter_data_selected.account_tag_ids = account_tag_ids
+
+ var analytic_ids = []
+ var analytic_text = [];
+ var analytic_res = document.getElementById("analytic_res")
+ var analytic_list = $(".analytics").select2('data')
+
+ for (var i = 0; i < analytic_list.length; i++) {
+ if(analytic_list[i].element[0].selected === true){
+
+ analytic_ids.push(parseInt(analytic_list[i].id))
+ if(analytic_text.includes(analytic_list[i].text) === false){
+ analytic_text.push(analytic_list[i].text)
+ }
+ analytic_res.value = analytic_text
+ analytic_res.innerHTML=analytic_res.value;
+ }
+ }
+ if (analytic_list.length == 0){
+ analytic_res.value = ""
+ analytic_res.innerHTML="";
+
+ }
+ filter_data_selected.analytic_ids = analytic_ids
+
+ var analytic_tag_ids = [];
+ var analytic_tag_text = [];
+ var analytic_tag_res = document.getElementById("analic_tag_res")
+ var analytic_tag_list = $(".analytic-tag").select2('data')
+ for (var i = 0; i < analytic_tag_list.length; i++) {
+ if(analytic_tag_list[i].element[0].selected === true){
+
+ analytic_tag_ids.push(parseInt(analytic_tag_list[i].id))
+ if(analytic_tag_text.includes(analytic_tag_list[i].text) === false){
+ analytic_tag_text.push(analytic_tag_list[i].text)
+
+ }
+
+ analytic_tag_res.value = analytic_tag_text
+ analytic_tag_res.innerHTML=analytic_tag_res.value;
+ }
+ }
+ if (analytic_tag_list.length == 0){
+ analytic_tag_res.value = ""
+ analytic_tag_res.innerHTML="";
+
+ }
+ filter_data_selected.analytic_tag_ids = analytic_tag_ids
+
+
+ if ($("#date_from").val()) {
+ var dateString = $("#date_from").val();
+ filter_data_selected.date_from = dateString;
+ }
+ if ($("#date_to").val()) {
+ var dateString = $("#date_to").val();
+ filter_data_selected.date_to = dateString;
+ }
+
+ if ($(".target_move").length) {
+ var post_res = document.getElementById("post_res")
+ filter_data_selected.target_move = $(".target_move")[1].value
+ post_res.value = $(".target_move")[1].value
+ post_res.innerHTML=post_res.value;
+ if ($(".target_move")[1].value == "") {
+ post_res.innerHTML="posted";
+
+ }
+ }
+ rpc.query({
+ model: 'dynamic.balance.sheet.report',
+ method: 'write',
+ args: [
+ self.wizard_id, filter_data_selected
+ ],
+ }).then(function(res) {
+ self.initial_render = false;
+ self.load_data(self.initial_render);
+ });
+ },
+
+ });
+ core.action_registry.add("dfr_n", ProfitAndLoss);
+ return ProfitAndLoss;
+});
diff --git a/dynamic_accounts_report/static/src/js/general_ledger.js b/dynamic_accounts_report/static/src/js/general_ledger.js
new file mode 100644
index 0000000..b719a3e
--- /dev/null
+++ b/dynamic_accounts_report/static/src/js/general_ledger.js
@@ -0,0 +1,453 @@
+odoo.define('dynamic_cash_flow_statements.general_ledger', function (require) {
+ 'use strict';
+ var AbstractAction = require('web.AbstractAction');
+ var core = require('web.core');
+ var field_utils = require('web.field_utils');
+ var rpc = require('web.rpc');
+ var session = require('web.session');
+ var utils = require('web.utils');
+ var QWeb = core.qweb;
+ var _t = core._t;
+
+ window.click_num = 0;
+ var GeneralLedger = AbstractAction.extend({
+ template: 'GeneralTemp',
+ events: {
+ 'click .parent-line': 'journal_line_click',
+ 'click .child_col1': 'journal_line_click',
+ 'click #apply_filter': 'apply_filter',
+ 'click #pdf': 'print_pdf',
+ 'click #xlsx': 'print_xlsx',
+ 'click .gl-line': 'show_drop_down',
+ 'click .view-account-move': 'view_acc_move',
+ },
+
+ init: function(parent, action) {
+ this._super(parent, action);
+ this.currency=action.currency;
+ this.report_lines = action.report_lines;
+ this.wizard_id = action.context.wizard | null;
+ },
+
+
+ start: function() {
+ var self = this;
+ self.initial_render = true;
+ if (this.searchModel.config.domain.length != 0) {
+ rpc.query({
+ model: 'account.general.ledger',
+ method: 'create',
+ args: [{
+ account_ids : [this.searchModel.config.domain[0][2]]
+ }]
+ }).then(function(t_res) {
+ self.wizard_id = t_res;
+ self.load_data(self.initial_render);
+ })
+ }else{
+ rpc.query({
+ model: 'account.general.ledger',
+ method: 'create',
+ args: [{
+
+ }]
+ }).then(function(t_res) {
+ self.wizard_id = t_res;
+ self.load_data(self.initial_render);
+ })
+ }
+ },
+
+
+ load_data: function (initial_render = true) {
+ var self = this;
+ self.$(".categ").empty();
+ try{
+ var self = this;
+ var action_title = self._title
+ self._rpc({
+ model: 'account.general.ledger',
+ method: 'view_report',
+ args: [[this.wizard_id], action_title],
+ }).then(function(datas) {
+ _.each(datas['report_lines'], function(rep_lines) {
+ rep_lines.debit = self.format_currency(datas['currency'],rep_lines.debit);
+ rep_lines.credit = self.format_currency(datas['currency'],rep_lines.credit);
+ rep_lines.balance = self.format_currency(datas['currency'],rep_lines.balance);
+
+
+
+
+ });
+
+ if (initial_render) {
+ self.$('.filter_view_tb').html(QWeb.render('GLFilterView', {
+ filter_data: datas['filters'],
+ title : datas['name'],
+ }));
+ self.$el.find('.journals').select2({
+ placeholder: ' Journals...',
+ });
+ self.$el.find('.account').select2({
+ placeholder: ' Accounts...',
+ });
+ self.$el.find('.analytics').select2({
+ placeholder: 'Analytic Accounts...',
+ });
+ self.$el.find('.analytic_tags').select2({
+ placeholder: 'Analytic Tags...',
+ });
+ self.$el.find('.target_move').select2({
+ placeholder: 'Target Move...',
+ });
+
+ }
+ var child=[];
+
+ self.$('.table_view_tb').html(QWeb.render('GLTable', {
+
+ report_lines : datas['report_lines'],
+ filter : datas['filters'],
+ currency : datas['currency'],
+ credit_total : datas['credit_total'],
+ debit_total : datas['debit_total'],
+ debit_balance : datas['debit_balance']
+ }));
+
+ });
+
+ }
+ catch (el) {
+ window.location.href
+ }
+ },
+
+ print_pdf: function(e) {
+ e.preventDefault();
+ var self = this;
+ var action_title = self._title
+ self._rpc({
+ model: 'account.general.ledger',
+ method: 'view_report',
+ args: [
+ [self.wizard_id], action_title
+ ],
+ }).then(function(data) {
+ var action = {
+ 'type': 'ir.actions.report',
+ 'report_type': 'qweb-pdf',
+ 'report_name': 'dynamic_accounts_report.general_ledger',
+ 'report_file': 'dynamic_accounts_report.general_ledger',
+ 'data': {
+ 'report_data': data
+ },
+ 'context': {
+ 'active_model': 'account.general.ledger',
+ 'landscape': 1,
+ 'trial_pdf_report': true
+ },
+ 'display_name': action_title,
+ };
+ return self.do_action(action);
+ });
+ },
+
+ print_xlsx: function() {
+ var self = this;
+ var action_title = self._title
+ self._rpc({
+ model: 'account.general.ledger',
+ method: 'view_report',
+ args: [
+ [self.wizard_id], action_title
+ ],
+ }).then(function(data) {
+ var action = {
+ 'type': 'ir_actions_dynamic_xlsx_download',
+ 'data': {
+ 'model': 'account.general.ledger',
+ 'options': JSON.stringify(data['filters']),
+ 'output_format': 'xlsx',
+ 'report_data': JSON.stringify(data['report_lines']),
+ 'report_name': action_title,
+ 'dfr_data': JSON.stringify(data),
+ },
+ };
+ return self.do_action(action);
+ });
+ },
+
+
+
+
+
+ create_lines_with_style: function(rec, attr, datas) {
+ var temp_str = "";
+ var style_name = "border-bottom: 1px solid #e6e6e6;";
+ var attr_name = attr + " style="+style_name;
+
+ temp_str += "<td class='child_col1' "+attr_name+" >"+rec['code'] +rec['name'] +"</td>";
+ if(datas.currency[1]=='after'){
+ temp_str += "<td class='child_col2' "+attr_name+" >"+rec['debit'].toFixed(2)+datas.currency[0]+"</td>";
+ temp_str += "<td class='child_col3' "+attr_name+" >"+rec['credit'].toFixed(2) +datas.currency[0]+ "</td>";
+ }
+ else{
+ temp_str += "<td class='child_col2' "+attr_name+" >"+datas.currency[0]+rec['debit'].toFixed(2) + "</td>";
+ temp_str += "<td class='child_col3' "+attr_name+">"+datas.currency[0]+rec['credit'].toFixed(2) + "</td>";
+
+ }
+ return temp_str;
+ },
+
+
+ journal_line_click: function (el){
+ click_num++;
+ var self = this;
+ var line = $(el.target).parent().data('id');
+ return self.do_action({
+ type: 'ir.actions.act_window',
+ view_type: 'form',
+ view_mode: 'form',
+ res_model: 'account.move',
+ views: [
+ [false, 'form']
+ ],
+ res_id: line,
+ target: 'current',
+ });
+
+ },
+ format_currency: function(currency, amount) {
+ if (typeof(amount) != 'number') {
+ amount = parseFloat(amount);
+ }
+ var formatted_value = (parseInt(amount)).toLocaleString(currency[2],{
+ minimumFractionDigits: 2
+ })
+ return formatted_value
+ },
+
+ show_drop_down: function(event) {
+ event.preventDefault();
+ var self = this;
+ var account_id = $(event.currentTarget).data('account-id');
+ var offset = 0;
+ var td = $(event.currentTarget).next('tr').find('td');
+ if (td.length == 1) {
+ var action_title = self._title
+ self._rpc({
+ model: 'account.general.ledger',
+ method: 'view_report',
+ args: [
+ [self.wizard_id], action_title
+ ],
+ }).then(function(data) {
+ _.each(data['report_lines'], function(rep_lines) {
+ _.each(rep_lines['move_lines'], function(move_line) {
+
+ move_line.debit = self.format_currency(data['currency'],move_line.debit);
+ move_line.credit = self.format_currency(data['currency'],move_line.credit);
+ move_line.balance = self.format_currency(data['currency'],move_line.balance);
+
+
+ });
+ });
+
+ for (var i = 0; i < data['report_lines'].length; i++) {
+
+ if (account_id == data['report_lines'][i]['id'] ){
+
+ $(event.currentTarget).next('tr').find('td .gl-table-div').remove();
+ $(event.currentTarget).next('tr').find('td ul').after(
+ QWeb.render('SubSection', {
+ account_data: data['report_lines'][i]['move_lines'],
+ currency_symbol : data.currency[0],
+ currency_position : data.currency[1],
+
+ }))
+ $(event.currentTarget).next('tr').find('td ul li:first a').css({
+ 'background-color': '#00ede8',
+ 'font-weight': 'bold',
+ });
+ }
+ }
+
+ });
+ }
+ },
+
+ view_acc_move: function(event) {
+ event.preventDefault();
+ var self = this;
+ var context = {};
+ var show_acc_move = function(res_model, res_id, view_id) {
+ var action = {
+ type: 'ir.actions.act_window',
+ view_type: 'form',
+ view_mode: 'form',
+ res_model: res_model,
+ views: [
+ [view_id || false, 'form']
+ ],
+ res_id: res_id,
+ target: 'current',
+ context: context,
+ };
+ return self.do_action(action);
+ };
+ rpc.query({
+ model: 'account.move',
+ method: 'search_read',
+ domain: [
+ ['id', '=', $(event.currentTarget).data('move-id')]
+ ],
+ fields: ['id'],
+ limit: 1,
+ })
+ .then(function(record) {
+ if (record.length > 0) {
+ show_acc_move('account.move', record[0].id);
+ } else {
+ show_acc_move('account.move', $(event.currentTarget).data('move-id'));
+ }
+ });
+ },
+
+ apply_filter: function(event) {
+
+ event.preventDefault();
+ var self = this;
+ self.initial_render = false;
+
+ var filter_data_selected = {};
+
+
+ var account_ids = [];
+ var account_text = [];
+
+ var account_res = document.getElementById("acc_res")
+ var account_list = $(".account").select2('data')
+ for (var i = 0; i < account_list.length; i++) {
+ if(account_list[i].element[0].selected === true){
+
+ account_ids.push(parseInt(account_list[i].id))
+ if(account_text.includes(account_list[i].text) === false){
+ account_text.push(account_list[i].text)
+ }
+ account_res.value = account_text
+ account_res.innerHTML=account_res.value;
+ }
+ }
+ if (account_list.length == 0){
+ account_res.value = ""
+ account_res.innerHTML="";
+
+ }
+ filter_data_selected.account_ids = account_ids
+
+
+
+ var journal_ids = [];
+ var journal_text = [];
+ var journal_res = document.getElementById("journal_res")
+ var journal_list = $(".journals").select2('data')
+
+ for (var i = 0; i < journal_list.length; i++) {
+ if(journal_list[i].element[0].selected === true){
+
+ journal_ids.push(parseInt(journal_list[i].id))
+ if(journal_text.includes(journal_list[i].text) === false){
+ journal_text.push(journal_list[i].text)
+ }
+ journal_res.value = journal_text
+ journal_res.innerHTML=journal_res.value;
+ }
+ }
+ if (journal_list.length == 0){
+ journal_res.value = ""
+ journal_res.innerHTML="";
+
+ }
+ filter_data_selected.journal_ids = journal_ids
+
+ var analytic_ids = []
+ var analytic_text = [];
+ var analytic_res = document.getElementById("analytic_res")
+ var analytic_list = $(".analytics").select2('data')
+
+ for (var i = 0; i < analytic_list.length; i++) {
+ if(analytic_list[i].element[0].selected === true){
+
+ analytic_ids.push(parseInt(analytic_list[i].id))
+ if(analytic_text.includes(analytic_list[i].text) === false){
+ analytic_text.push(analytic_list[i].text)
+ }
+ analytic_res.value = analytic_text
+ analytic_res.innerHTML=analytic_res.value;
+ }
+ }
+ if (analytic_list.length == 0){
+ analytic_res.value = ""
+ analytic_res.innerHTML="";
+
+ }
+ filter_data_selected.analytic_ids = analytic_ids
+
+ var analytic_tag_ids = []
+ var analytic_tag_text = [];
+ var analytic_tag_res = document.getElementById("analytic_tag_res")
+ var analytic_tag_list = $(".analytic_tags").select2('data')
+ for (var i = 0; i < analytic_tag_list.length; i++) {
+ if(analytic_tag_list[i].element[0].selected === true){
+
+ analytic_tag_ids.push(parseInt(analytic_tag_list[i].id))
+ if(analytic_tag_text.includes(analytic_tag_list[i].text) === false){
+ analytic_tag_text.push(analytic_tag_list[i].text)
+ }
+ analytic_tag_res.value = analytic_tag_text
+ analytic_tag_res.innerHTML=analytic_tag_res.value;
+ }
+ }
+ if (analytic_tag_list.length == 0){
+ analytic_tag_res.value = ""
+ analytic_tag_res.innerHTML="";
+
+ }
+ filter_data_selected.analytic_tag_ids = analytic_tag_ids
+
+ if ($("#date_from").val()) {
+
+ var dateString = $("#date_from").val();
+ filter_data_selected.date_from = dateString;
+ }
+ if ($("#date_to").val()) {
+ var dateString = $("#date_to").val();
+ filter_data_selected.date_to = dateString;
+ }
+
+ if ($(".target_move").length) {
+ var post_res = document.getElementById("post_res")
+ filter_data_selected.target_move = $(".target_move")[1].value
+ post_res.value = $(".target_move")[1].value
+ post_res.innerHTML=post_res.value;
+ if ($(".target_move")[1].value == "") {
+ post_res.innerHTML="posted";
+
+ }
+ }
+ rpc.query({
+ model: 'account.general.ledger',
+ method: 'write',
+ args: [
+ self.wizard_id, filter_data_selected
+ ],
+ }).then(function(res) {
+ self.initial_render = false;
+ self.load_data(self.initial_render);
+ });
+ },
+
+ });
+ core.action_registry.add("g_l", GeneralLedger);
+ return GeneralLedger;
+}); \ No newline at end of file
diff --git a/dynamic_accounts_report/static/src/js/partner_ledger.js b/dynamic_accounts_report/static/src/js/partner_ledger.js
new file mode 100644
index 0000000..ba78c48
--- /dev/null
+++ b/dynamic_accounts_report/static/src/js/partner_ledger.js
@@ -0,0 +1,431 @@
+odoo.define('dynamic_accounts_report.partner_ledger', function (require) {
+ 'use strict';
+ var AbstractAction = require('web.AbstractAction');
+ var core = require('web.core');
+ var field_utils = require('web.field_utils');
+ var rpc = require('web.rpc');
+ var session = require('web.session');
+ var utils = require('web.utils');
+ var QWeb = core.qweb;
+ var _t = core._t;
+
+ window.click_num = 0;
+ var PartnerLedger = AbstractAction.extend({
+ template: 'PartnerTemp',
+ events: {
+ 'click .parent-line': 'journal_line_click',
+ 'click .child_col1': 'journal_line_click',
+ 'click #apply_filter': 'apply_filter',
+ 'click #pdf': 'print_pdf',
+ 'click #xlsx': 'print_xlsx',
+ 'click .pl-line': 'show_drop_down',
+ 'click .view-account-move': 'view_acc_move',
+
+ },
+
+ init: function(parent, action) {
+ this._super(parent, action);
+ this.currency=action.currency;
+ this.report_lines = action.report_lines;
+ this.wizard_id = action.context.wizard | null;
+ },
+
+ start: function() {
+ var self = this;
+ self.initial_render = true;
+ rpc.query({
+ model: 'account.partner.ledger',
+ method: 'create',
+ args: [{
+ }]
+ }).then(function(t_res) {
+ self.wizard_id = t_res;
+ self.load_data(self.initial_render);
+ })
+ },
+
+ load_data: function (initial_render = true) {
+ var self = this;
+ self.$(".categ").empty();
+ try{
+ var self = this;
+ self._rpc({
+ model: 'account.partner.ledger',
+ method: 'view_report',
+ args: [[this.wizard_id]],
+ }).then(function(datas) {
+ _.each(datas['report_lines'], function(rep_lines) {
+ rep_lines.debit = self.format_currency(datas['currency'],rep_lines.debit);
+ rep_lines.credit = self.format_currency(datas['currency'],rep_lines.credit);
+ rep_lines.balance = self.format_currency(datas['currency'],rep_lines.balance);
+
+
+
+
+ });
+
+
+
+ if (initial_render) {
+ self.$('.filter_view_tb').html(QWeb.render('PLFilterView', {
+ filter_data: datas['filters'],
+ }));
+ self.$el.find('.journals').select2({
+ placeholder: ' Journals...',
+ });
+
+ self.$el.find('.account').select2({
+ placeholder: ' Accounts...',
+ });
+ self.$el.find('.partners').select2({
+ placeholder: 'Partners...',
+ });
+ self.$el.find('.reconciled').select2({
+ placeholder: 'Reconciled status...',
+ });
+ self.$el.find('.type').select2({
+ placeholder: 'Account Type...',
+ });
+ self.$el.find('.category').select2({
+ placeholder: 'Partner Tag...',
+ });
+ self.$el.find('.acc').select2({
+ placeholder: 'Select Acc...',
+ });
+ self.$el.find('.target_move').select2({
+ placeholder: 'Target Move...',
+ });
+ }
+ var child=[];
+
+ self.$('.table_view_tb').html(QWeb.render('PLTable', {
+ report_lines : datas['report_lines'],
+ filter : datas['filters'],
+ currency : datas['currency'],
+ credit_total : datas['credit_total'],
+ debit_total : datas['debit_total'],
+ debit_balance : datas['debit_balance']
+ }));
+ });
+
+ }
+ catch (el) {
+ window.location.href
+ }
+ },
+
+
+
+ format_currency: function(currency, amount) {
+ if (typeof(amount) != 'number') {
+ amount = parseFloat(amount);
+ }
+ var formatted_value = (parseInt(amount)).toLocaleString(currency[2],{
+ minimumFractionDigits: 2
+ })
+ return formatted_value
+ },
+
+ print_pdf: function(e) {
+ e.preventDefault();
+ var self = this;
+ self._rpc({
+ model: 'account.partner.ledger',
+ method: 'view_report',
+ args: [
+ [self.wizard_id]
+ ],
+ }).then(function(data) {
+ var action = {
+ 'type': 'ir.actions.report',
+ 'report_type': 'qweb-pdf',
+ 'report_name': 'dynamic_accounts_report.partner_ledger',
+ 'report_file': 'dynamic_accounts_report.partner_ledger',
+ 'data': {
+ 'report_data': data
+ },
+ 'context': {
+ 'active_model': 'account.partner.ledger',
+ 'landscape': 1,
+ 'partner_ledger_pdf_report': true
+ },
+ 'display_name': 'Partner Ledger',
+ };
+ return self.do_action(action);
+ });
+ },
+
+
+
+ print_xlsx: function() {
+ var self = this;
+ self._rpc({
+ model: 'account.partner.ledger',
+ method: 'view_report',
+ args: [
+ [self.wizard_id]
+ ],
+ }).then(function(data) {
+ var action = {
+ 'type': 'ir_actions_dynamic_xlsx_download',
+ 'data': {
+ 'model': 'account.partner.ledger',
+ 'options': JSON.stringify(data['filters']),
+ 'output_format': 'xlsx',
+ 'report_data': JSON.stringify(data['report_lines']),
+ 'report_name': 'Partner Ledger',
+ 'dfr_data': JSON.stringify(data),
+ },
+ };
+ return self.do_action(action);
+ });
+ },
+
+ journal_line_click: function (el){
+ click_num++;
+ var self = this;
+ var line = $(el.target).parent().data('id');
+ return self.do_action({
+ type: 'ir.actions.act_window',
+ view_type: 'form',
+ view_mode: 'form',
+ res_model: 'account.move',
+ views: [
+ [false, 'form']
+ ],
+ res_id: line,
+ target: 'current',
+ });
+ },
+
+ show_drop_down: function(event) {
+ event.preventDefault();
+ var self = this;
+ var account_id = $(event.currentTarget).data('account-id');
+ var offset = 0;
+ var td = $(event.currentTarget).next('tr').find('td');
+ if (td.length == 1) {
+ self._rpc({
+ model: 'account.partner.ledger',
+ method: 'view_report',
+ args: [
+ [self.wizard_id]
+ ],
+ }).then(function(data) {
+ _.each(data['report_lines'], function(rep_lines) {
+ _.each(rep_lines['move_lines'], function(move_line) {
+
+ move_line.debit = self.format_currency(data['currency'],move_line.debit);
+ move_line.credit = self.format_currency(data['currency'],move_line.credit);
+ move_line.balance = self.format_currency(data['currency'],move_line.balance);
+
+
+ });
+ });
+ for (var i = 0; i < data['report_lines'].length; i++) {
+
+ if (account_id == data['report_lines'][i]['id'] ){
+ $(event.currentTarget).next('tr').find('td .pl-table-div').remove();
+ $(event.currentTarget).next('tr').find('td ul').after(
+ QWeb.render('SubSectionPL', {
+ account_data: data['report_lines'][i]['move_lines'],
+ }))
+ $(event.currentTarget).next('tr').find('td ul li:first a').css({
+ 'background-color': '#00ede8',
+ 'font-weight': 'bold',
+ });
+ }
+ }
+ });
+ }
+ },
+
+ view_acc_move: function(event) {
+ event.preventDefault();
+ var self = this;
+ var context = {};
+ var show_acc_move = function(res_model, res_id, view_id) {
+ var action = {
+ type: 'ir.actions.act_window',
+ view_type: 'form',
+ view_mode: 'form',
+ res_model: res_model,
+ views: [
+ [view_id || false, 'form']
+ ],
+ res_id: res_id,
+ target: 'current',
+ context: context,
+ };
+ return self.do_action(action);
+ };
+ rpc.query({
+ model: 'account.move',
+ method: 'search_read',
+ domain: [
+ ['id', '=', $(event.currentTarget).data('move-id')]
+ ],
+ fields: ['id'],
+ limit: 1,
+ })
+ .then(function(record) {
+ if (record.length > 0) {
+ show_acc_move('account.move', record[0].id);
+ } else {
+ show_acc_move('account.move', $(event.currentTarget).data('move-id'));
+ }
+ });
+ },
+
+ apply_filter: function(event) {
+ event.preventDefault();
+ var self = this;
+ self.initial_render = false;
+ var filter_data_selected = {};
+
+ var account_ids = [];
+ var account_text = [];
+ var span_res = document.getElementById("account_res")
+ var account_list = $(".account").select2('data')
+ for (var i = 0; i < account_list.length; i++) {
+ if(account_list[i].element[0].selected === true)
+ {account_ids.push(parseInt(account_list[i].id))
+ if(account_text.includes(account_list[i].text) === false)
+ {account_text.push(account_list[i].text)
+ }
+ span_res.value = account_text
+ span_res.innerHTML=span_res.value;
+ }
+ }
+ if (account_list.length == 0){
+ span_res.value = ""
+ span_res.innerHTML=""; }
+ filter_data_selected.account_ids = account_ids
+
+
+ var journal_ids = [];
+ var journal_text = [];
+ var journal_res = document.getElementById("journal_res")
+ var journal_list = $(".journals").select2('data')
+ for (var i = 0; i < journal_list.length; i++) {
+ if(journal_list[i].element[0].selected === true){
+ journal_ids.push(parseInt(journal_list[i].id))
+ if(journal_text.includes(journal_list[i].text) === false){
+ journal_text.push(journal_list[i].text)
+ }
+ journal_res.value = journal_text
+ journal_res.innerHTML=journal_res.value;
+ }
+ }
+ if (journal_list.length == 0){
+ journal_res.value = ""
+ journal_res.innerHTML="";
+ }
+ filter_data_selected.journal_ids = journal_ids
+
+ var partner_ids = [];
+ var partner_text = [];
+ var span_res = document.getElementById("partner_res")
+ var partner_list = $(".partners").select2('data')
+ for (var i = 0; i < partner_list.length; i++) {
+ if(partner_list[i].element[0].selected === true)
+ {partner_ids.push(parseInt(partner_list[i].id))
+ if(partner_text.includes(partner_list[i].text) === false)
+ {partner_text.push(partner_list[i].text)
+ }
+ span_res.value = partner_text
+ span_res.innerHTML=span_res.value;
+ }
+ }
+ if (partner_list.length == 0){
+ span_res.value = ""
+ span_res.innerHTML="";
+ }
+ filter_data_selected.partner_ids = partner_ids
+
+ var account_type_ids = [];
+ var account_type_ids_text = [];
+ var span_res = document.getElementById("type_res")
+ var type_list = $(".type").select2('data')
+ for (var i = 0; i < type_list.length; i++) {
+ if(type_list[i].element[0].selected === true)
+ {account_type_ids.push(parseInt(type_list[i].id))
+ if(account_type_ids_text.includes(type_list[i].text) === false)
+ {account_type_ids_text.push(type_list[i].text)
+ }
+ span_res.value = account_type_ids_text
+ span_res.innerHTML=span_res.value;
+ }
+ }
+ if (type_list.length == 0){
+ span_res.value = ""
+ span_res.innerHTML="";
+ }
+ filter_data_selected.account_type_ids = account_type_ids
+
+ var partner_category_ids = [];
+ var partner_category_text = [];
+ var span_res = document.getElementById("category_res")
+ var category_list = $(".category").select2('data')
+ for (var i = 0; i < category_list.length; i++) {
+ if(category_list[i].element[0].selected === true)
+ {partner_category_ids.push(parseInt(category_list[i].id))
+ if(partner_category_text.includes(category_list[i].text) === false)
+ {partner_category_text.push(category_list[i].text)
+ }
+ span_res.value = partner_category_text
+ span_res.innerHTML=span_res.value;
+ }
+ }
+ if (category_list.length == 0){
+ span_res.value = ""
+ span_res.innerHTML="";
+ }
+ filter_data_selected.partner_category_ids = partner_category_ids
+
+ if ($("#date_from").val()) {
+ var dateString = $("#date_from").val();
+ filter_data_selected.date_from = dateString;
+ }
+ if ($("#date_to").val()) {
+ var dateString = $("#date_to").val();
+ filter_data_selected.date_to = dateString;
+ }
+
+ if ($(".reconciled").length){
+ var reconciled_res = document.getElementById("reconciled_res")
+ filter_data_selected.reconciled = $(".reconciled")[0].value
+ reconciled_res.value = $(".reconciled")[0].value
+ reconciled_res.innerHTML=reconciled_res.value;
+ if ($(".reconciled").value==""){
+ reconciled_res.innerHTML="unreconciled";
+ filter_data_selected.reconciled = "unreconciled"
+ }
+ }
+
+ if ($(".target_move").length) {
+ var post_res = document.getElementById("post_res")
+ filter_data_selected.target_move = $(".target_move")[1].value
+ post_res.value = $(".target_move")[1].value
+ post_res.innerHTML=post_res.value;
+ if ($(".target_move")[1].value == "") {
+ post_res.innerHTML="posted";
+
+ }
+ }
+ rpc.query({
+ model: 'account.partner.ledger',
+ method: 'write',
+ args: [
+ self.wizard_id, filter_data_selected
+ ],
+ }).then(function(res) {
+ self.initial_render = false;
+ self.load_data(self.initial_render);
+ });
+ },
+
+ });
+ core.action_registry.add("p_l", PartnerLedger);
+ return PartnerLedger;
+});
diff --git a/dynamic_accounts_report/static/src/js/trial_balance.js b/dynamic_accounts_report/static/src/js/trial_balance.js
new file mode 100644
index 0000000..6d21445
--- /dev/null
+++ b/dynamic_accounts_report/static/src/js/trial_balance.js
@@ -0,0 +1,263 @@
+odoo.define('dynamic_cash_flow_statements.trial', function (require) {
+ 'use strict';
+ var AbstractAction = require('web.AbstractAction');
+ var core = require('web.core');
+ var field_utils = require('web.field_utils');
+ var rpc = require('web.rpc');
+ var session = require('web.session');
+ var utils = require('web.utils');
+ var QWeb = core.qweb;
+ var _t = core._t;
+
+ window.click_num = 0;
+ var TrialBalance = AbstractAction.extend({
+ template: 'TrialTemp',
+ events: {
+ 'click .parent-line': 'journal_line_click',
+ 'click .child_col1': 'journal_line_click',
+ 'click #apply_filter': 'apply_filter',
+ 'click #pdf': 'print_pdf',
+ 'click #xlsx': 'print_xlsx',
+ 'click .show-gl': 'show_gl',
+ },
+
+ init: function(parent, action) {
+ this._super(parent, action);
+ this.currency=action.currency;
+ this.report_lines = action.report_lines;
+ this.wizard_id = action.context.wizard | null;
+ },
+
+
+ start: function() {
+ var self = this;
+ self.initial_render = true;
+ rpc.query({
+ model: 'account.trial.balance',
+ method: 'create',
+ args: [{
+
+ }]
+ }).then(function(t_res) {
+ self.wizard_id = t_res;
+ self.load_data(self.initial_render);
+ })
+ },
+
+
+ load_data: function (initial_render = true) {
+ var self = this;
+ self.$(".categ").empty();
+ try{
+ var self = this;
+ self._rpc({
+ model: 'account.trial.balance',
+ method: 'view_report',
+ args: [[this.wizard_id]],
+ }).then(function(datas) {
+ _.each(datas['report_lines'], function(rep_lines) {
+ rep_lines.debit = self.format_currency(datas['currency'],rep_lines.debit);
+ rep_lines.credit = self.format_currency(datas['currency'],rep_lines.credit);
+ rep_lines.balance = self.format_currency(datas['currency'],rep_lines.balance);
+
+
+
+ });
+ if (initial_render) {
+ self.$('.filter_view_tb').html(QWeb.render('TrialFilterView', {
+ filter_data: datas['filters'],
+ }));
+ self.$el.find('.journals').select2({
+ placeholder: 'Select Journals...',
+ });
+ self.$el.find('.target_move').select2({
+ placeholder: 'Target Move...',
+ });
+ }
+ var child=[];
+
+ self.$('.table_view_tb').html(QWeb.render('TrialTable', {
+
+ report_lines : datas['report_lines'],
+ filter : datas['filters'],
+ currency : datas['currency'],
+ credit_total : self.format_currency(datas['currency'],datas['debit_total']),
+ debit_total : self.format_currency(datas['currency'],datas['debit_total']),
+ }));
+ });
+
+ }
+ catch (el) {
+ window.location.href
+ }
+ },
+
+ show_gl: function(e) {
+ var self = this;
+ var account_id = $(e.target).attr('data-account-id');
+ var options = {
+ account_ids: [account_id],
+ }
+
+ var action = {
+ type: 'ir.actions.client',
+ name: 'GL View',
+ tag: 'g_l',
+ target: 'new',
+
+ domain: [['account_ids','=', account_id]],
+
+
+ }
+ return this.do_action(action);
+
+ },
+
+ print_pdf: function(e) {
+ e.preventDefault();
+ var self = this;
+ self._rpc({
+ model: 'account.trial.balance',
+ method: 'view_report',
+ args: [
+ [self.wizard_id]
+ ],
+ }).then(function(data) {
+ var action = {
+ 'type': 'ir.actions.report',
+ 'report_type': 'qweb-pdf',
+ 'report_name': 'dynamic_accounts_report.trial_balance',
+ 'report_file': 'dynamic_accounts_report.trial_balance',
+ 'data': {
+ 'report_data': data
+ },
+ 'context': {
+ 'active_model': 'account.trial.balance',
+ 'landscape': 1,
+ 'trial_pdf_report': true
+ },
+ 'display_name': 'Trial Balance',
+ };
+ return self.do_action(action);
+ });
+ },
+
+
+ format_currency: function(currency, amount) {
+ if (typeof(amount) != 'number') {
+ amount = parseFloat(amount);
+ }
+ var formatted_value = (parseInt(amount)).toLocaleString(currency[2],{
+ minimumFractionDigits: 2
+ })
+ return formatted_value
+ },
+
+ print_xlsx: function() {
+ var self = this;
+ self._rpc({
+ model: 'account.trial.balance',
+ method: 'view_report',
+ args: [
+ [self.wizard_id]
+ ],
+ }).then(function(data) {
+ var action = {
+ 'type': 'ir_actions_dynamic_xlsx_download',
+ 'data': {
+ 'model': 'account.trial.balance',
+ 'options': JSON.stringify(data['filters']),
+ 'output_format': 'xlsx',
+ 'report_data': JSON.stringify(data['report_lines']),
+ 'report_name': 'Trial Balance',
+ 'dfr_data': JSON.stringify(data),
+ },
+ };
+ return self.do_action(action);
+ });
+ },
+
+ journal_line_click: function (el){
+ click_num++;
+ var self = this;
+ var line = $(el.target).parent().data('id');
+ return self.do_action({
+ type: 'ir.actions.act_window',
+ view_type: 'form',
+ view_mode: 'form',
+ res_model: 'account.move',
+ views: [
+ [false, 'form']
+ ],
+ res_id: line,
+ target: 'current',
+ });
+
+ },
+
+
+ apply_filter: function(event) {
+
+ event.preventDefault();
+ var self = this;
+ self.initial_render = false;
+
+ var filter_data_selected = {};
+ var journal_ids = [];
+ var journal_text = [];
+ var journal_res = document.getElementById("journal_res")
+ var journal_list = $(".journals").select2('data')
+
+ for (var i = 0; i < journal_list.length; i++) {
+ if(journal_list[i].element[0].selected === true){
+
+ journal_ids.push(parseInt(journal_list[i].id))
+ if(journal_text.includes(journal_list[i].text) === false){
+ journal_text.push(journal_list[i].text)
+ }
+ journal_res.value = journal_text
+ journal_res.innerHTML=journal_res.value;
+ }
+ }
+ if (journal_list.length == 0){
+ journal_res.value = ""
+ journal_res.innerHTML="";
+
+ }
+ filter_data_selected.journal_ids = journal_ids
+
+ if ($("#date_from").val()) {
+ var dateString = $("#date_from").val();
+ filter_data_selected.date_from = dateString;
+ }
+ if ($("#date_to").val()) {
+ var dateString = $("#date_to").val();
+ filter_data_selected.date_to = dateString;
+ }
+
+ if ($(".target_move").length) {
+ var post_res = document.getElementById("post_res")
+ filter_data_selected.target_move = $(".target_move")[1].value
+ post_res.value = $(".target_move")[1].value
+ post_res.innerHTML=post_res.value;
+ if ($(".target_move")[1].value == "") {
+ post_res.innerHTML="posted";
+
+ }
+ }
+ rpc.query({
+ model: 'account.trial.balance',
+ method: 'write',
+ args: [
+ self.wizard_id, filter_data_selected
+ ],
+ }).then(function(res) {
+ self.initial_render = false;
+ self.load_data(self.initial_render);
+ });
+ },
+
+ });
+ core.action_registry.add("t_b", TrialBalance);
+ return TrialBalance;
+}); \ No newline at end of file