@ -0,0 +1,5 @@ |
|||
# -*- coding: utf-8 -*- |
|||
|
|||
from . import report |
|||
from . import models |
|||
|
@ -0,0 +1,45 @@ |
|||
# -*- coding: utf-8 -*- |
|||
################################################################################### |
|||
# |
|||
# Cybrosys Technologies Pvt. Ltd. |
|||
# Copyright (C) 2019-TODAY Cybrosys Technologies(<http://www.cybrosys.com>). |
|||
# Author: LINTO C.T.(<https://www.cybrosys.com>) |
|||
# |
|||
# This program is free software: you can modify |
|||
# it under the terms of the GNU Affero General Public License (AGPL) as |
|||
# published by the Free Software Foundation, either version 3 of the |
|||
# License, or (at your option) any later version. |
|||
# |
|||
# This program is distributed in the hope that it will be useful, |
|||
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
# GNU Affero General Public License for more details. |
|||
# |
|||
# You should have received a copy of the GNU Affero General Public License |
|||
# along with this program. If not, see <http://www.gnu.org/licenses/>. |
|||
# |
|||
################################################################################### |
|||
{ |
|||
'name': 'Aged Partner Balance In Excel', |
|||
'version': '11.0.1.0.0', |
|||
'category': 'Accounting', |
|||
'summary': 'Bill-Wise Aged Partner Balance in Excel Format', |
|||
'description': """ |
|||
This module provides features to take an excel report of bill-wise aged partner balance. |
|||
""", |
|||
'author': 'Cybrosys Techno Solutions', |
|||
'website': "https://www.cybrosys.com", |
|||
'company': 'Cybrosys Techno Solutions', |
|||
'maintainer': 'Cybrosys Techno Solutions', |
|||
'depends': ['report_xlsx', 'account'], |
|||
'data': [ |
|||
'views/report_aged_partner_billwise.xml', |
|||
'report/aged_partner_report.xml' |
|||
], |
|||
'demo': [], |
|||
'images': ['static/description/banner.jpg'], |
|||
'license': 'LGPL-3', |
|||
'installable': True, |
|||
'application': False, |
|||
'auto_install': False, |
|||
} |
@ -0,0 +1,5 @@ |
|||
# -*- coding: utf-8 -*- |
|||
|
|||
from . import report_aged_partner_balance |
|||
|
|||
|
@ -0,0 +1,36 @@ |
|||
from datetime import datetime |
|||
from dateutil.relativedelta import relativedelta |
|||
from odoo import models, fields, api |
|||
from odoo.exceptions import UserError |
|||
|
|||
|
|||
class AgedTrialBalanceBillwise(models.TransientModel): |
|||
_name = 'account.aged.trial.balance.xls' |
|||
_inherit = 'account.aged.trial.balance' |
|||
_description = 'Account Aged Trial balance Report Bill-wise' |
|||
|
|||
@api.multi |
|||
def _print_report(self, data): |
|||
res = {} |
|||
data = self.pre_print_report(data) |
|||
|
|||
data['form'].update(self.read(['period_length'])[0]) |
|||
period_length = data['form']['period_length'] |
|||
if period_length <= 0: |
|||
raise UserError(_('You must set a period length greater than 0.')) |
|||
if not data['form']['date_from']: |
|||
raise UserError(_('You must set a start date.')) |
|||
|
|||
start = datetime.strptime(data['form']['date_from'], "%Y-%m-%d") |
|||
|
|||
for i in range(5)[::-1]: |
|||
stop = start - relativedelta(days=period_length - 1) |
|||
res[str(i)] = { |
|||
'name': (i != 0 and (str((5 - (i + 1)) * period_length) + '-' + str((5 - i) * period_length)) or ( |
|||
'+' + str(4 * period_length))), |
|||
'stop': start.strftime('%Y-%m-%d'), |
|||
'start': (i != 0 and stop.strftime('%Y-%m-%d') or False), |
|||
} |
|||
start = stop - relativedelta(days=1) |
|||
data['form'].update(res) |
|||
return self.env.ref('partner_ageing_billwise_xlsx.financial_report_xlsx').with_context(landscape=True).report_action(self, data=data) |
@ -0,0 +1,5 @@ |
|||
# -*- coding: utf-8 -*- |
|||
|
|||
from . import account_aged_partner_balance |
|||
|
|||
|
@ -0,0 +1,355 @@ |
|||
# -*- coding: utf-8 -*- |
|||
|
|||
import time |
|||
from odoo import models,api |
|||
from datetime import datetime |
|||
from odoo import _ |
|||
# from odoo.addons.report_xlsx.report.report_xlsx import ReportXlsx |
|||
from odoo.tools import float_is_zero |
|||
from dateutil.relativedelta import relativedelta |
|||
|
|||
|
|||
class BillWiseBalance(models.AbstractModel): |
|||
_name = 'report.partner_ageing_billwise_xlsx.financial_report_xlsx' |
|||
_inherit = 'report.report_xlsx.abstract' |
|||
|
|||
def _get_billwise_move_lines(self, account_type, date_from, target_move, period_length): |
|||
# This method can receive the context key 'include_nullified_amount' {Boolean} |
|||
# Do an invoice and a payment and unreconcile. The amount will be nullified |
|||
# By default, the partner wouldn't appear in this report. |
|||
# The context key allow it to appear |
|||
periods = {} |
|||
start = datetime.strptime(date_from, "%Y-%m-%d") |
|||
for i in range(5)[::-1]: |
|||
stop = start - relativedelta(days=period_length) |
|||
periods[str(i)] = { |
|||
'name': (i!=0 and (str((5-(i+1)) * period_length) + '-' + str((5-i) * period_length)) or ('+'+str(4 * period_length))), |
|||
'stop': start.strftime('%Y-%m-%d'), |
|||
'start': (i!=0 and stop.strftime('%Y-%m-%d') or False), |
|||
} |
|||
start = stop - relativedelta(days=1) |
|||
res = [] |
|||
total = [] |
|||
cr = self.env.cr |
|||
company_ids = self.env.context.get('company_ids', (self.env.user.company_id.id,)) |
|||
user_company = self.env.user.company_id |
|||
user_currency = user_company.currency_id |
|||
ResCurrency = self.env['res.currency'].with_context(date=date_from) |
|||
move_state = ['draft', 'posted'] |
|||
if target_move == 'posted': |
|||
move_state = ['posted'] |
|||
arg_list = (tuple(move_state), tuple(account_type)) |
|||
#build the reconciliation clause to see what partner needs to be printed |
|||
reconciliation_clause = '(l.reconciled IS FALSE)' |
|||
cr.execute('SELECT debit_move_id, credit_move_id FROM account_partial_reconcile where create_date > %s', (date_from,)) |
|||
reconciled_after_date = [] |
|||
for row in cr.fetchall(): |
|||
reconciled_after_date += [row[0], row[1]] |
|||
if reconciled_after_date: |
|||
reconciliation_clause = '(l.reconciled IS FALSE OR l.id IN %s)' |
|||
arg_list += (tuple(reconciled_after_date),) |
|||
arg_list += (date_from, tuple(company_ids)) |
|||
query = ''' |
|||
SELECT DISTINCT l.partner_id, UPPER(res_partner.name) |
|||
FROM account_move_line AS l left join res_partner on l.partner_id = res_partner.id, account_account, account_move am |
|||
WHERE (l.account_id = account_account.id) |
|||
AND (l.move_id = am.id) |
|||
AND (am.state IN %s) |
|||
AND (account_account.internal_type IN %s) |
|||
AND ''' + reconciliation_clause + ''' |
|||
AND (l.date <= %s) |
|||
AND l.company_id IN %s |
|||
ORDER BY UPPER(res_partner.name)''' |
|||
cr.execute(query, arg_list) |
|||
partners = cr.dictfetchall() |
|||
# put a total of 0 |
|||
for i in range(7): |
|||
total.append(0) |
|||
|
|||
# Build a string like (1,2,3) for easy use in SQL query |
|||
partner_ids = [partner['partner_id'] for partner in partners if partner['partner_id']] |
|||
lines = dict((partner['partner_id'] or False, []) for partner in partners) |
|||
if not partner_ids: |
|||
return [], [], {}, periods |
|||
|
|||
# This dictionary will store the not due amount of all partners |
|||
undue_amounts = {} |
|||
query = '''SELECT l.id |
|||
FROM account_move_line AS l, account_account, account_move am |
|||
WHERE (l.account_id = account_account.id) AND (l.move_id = am.id) |
|||
AND (am.state IN %s) |
|||
AND (account_account.internal_type IN %s) |
|||
AND (COALESCE(l.date_maturity,l.date) >= %s)\ |
|||
AND ((l.partner_id IN %s) OR (l.partner_id IS NULL)) |
|||
AND (l.date <= %s) |
|||
AND l.company_id IN %s''' |
|||
cr.execute(query, (tuple(move_state), tuple(account_type), date_from, tuple(partner_ids), date_from, tuple(company_ids))) |
|||
aml_ids = cr.fetchall() |
|||
aml_ids = aml_ids and [x[0] for x in aml_ids] or [] |
|||
for line in self.env['account.move.line'].browse(aml_ids): |
|||
partner_id = line.partner_id.id or False |
|||
if partner_id not in undue_amounts: |
|||
undue_amounts[partner_id] = 0.0 |
|||
line_amount = line.balance |
|||
if line.balance == 0: |
|||
continue |
|||
for partial_line in line.matched_debit_ids: |
|||
if partial_line.max_date <= date_from: |
|||
line_amount += partial_line.amount |
|||
for partial_line in line.matched_credit_ids: |
|||
if partial_line.max_date <= date_from: |
|||
line_amount -= partial_line.amount |
|||
if not self.env.user.company_id.currency_id.is_zero(line_amount): |
|||
undue_amounts[partner_id] += line_amount |
|||
lines[partner_id].append({ |
|||
'line': line, |
|||
'amount': line_amount, |
|||
'period': 6, |
|||
}) |
|||
|
|||
# Use one query per period and store results in history (a list variable) |
|||
# Each history will contain: history[1] = {'<partner_id>': <partner_debit-credit>} |
|||
history = [] |
|||
for i in range(5): |
|||
args_list = (tuple(move_state), tuple(account_type), tuple(partner_ids),) |
|||
dates_query = '(COALESCE(l.date_maturity,l.date)' |
|||
if periods[str(i)]['start'] and periods[str(i)]['stop']: |
|||
dates_query += ' BETWEEN %s AND %s)' |
|||
args_list += (periods[str(i)]['start'], periods[str(i)]['stop']) |
|||
elif periods[str(i)]['start']: |
|||
dates_query += ' >= %s)' |
|||
args_list += (periods[str(i)]['start'],) |
|||
else: |
|||
dates_query += ' <= %s)' |
|||
args_list += (periods[str(i)]['stop'],) |
|||
args_list += (date_from, tuple(company_ids)) |
|||
|
|||
query = '''SELECT l.id |
|||
FROM account_move_line AS l, account_account, account_move am |
|||
WHERE (l.account_id = account_account.id) AND (l.move_id = am.id) |
|||
AND (am.state IN %s) |
|||
AND (account_account.internal_type IN %s) |
|||
AND ((l.partner_id IN %s) OR (l.partner_id IS NULL)) |
|||
AND ''' + dates_query + ''' |
|||
AND (l.date <= %s) |
|||
AND l.company_id IN %s''' |
|||
cr.execute(query, args_list) |
|||
partners_amount = {} |
|||
aml_ids = cr.fetchall() |
|||
aml_ids = aml_ids and [x[0] for x in aml_ids] or [] |
|||
for line in self.env['account.move.line'].browse(aml_ids).with_context(prefetch_fields=False): |
|||
partner_id = line.partner_id.id or False |
|||
if partner_id not in partners_amount: |
|||
partners_amount[partner_id] = 0.0 |
|||
line_amount = ResCurrency._compute(line.company_id.currency_id, user_currency, line.balance) |
|||
if user_currency.is_zero(line_amount): |
|||
continue |
|||
for partial_line in line.matched_debit_ids: |
|||
if partial_line.max_date <= date_from: |
|||
line_amount += ResCurrency._compute(partial_line.company_id.currency_id, user_currency, partial_line.amount) |
|||
for partial_line in line.matched_credit_ids: |
|||
if partial_line.max_date <= date_from: |
|||
line_amount -= ResCurrency._compute(partial_line.company_id.currency_id, user_currency, partial_line.amount) |
|||
if not self.env.user.company_id.currency_id.is_zero(line_amount): |
|||
partners_amount[partner_id] += line_amount |
|||
lines[partner_id].append({ |
|||
'line': line, |
|||
'amount': line_amount, |
|||
'period': i + 1, |
|||
}) |
|||
history.append(partners_amount) |
|||
for partner in partners: |
|||
if partner['partner_id'] is None: |
|||
partner['partner_id'] = False |
|||
at_least_one_amount = False |
|||
values = {} |
|||
undue_amt = 0.0 |
|||
if partner['partner_id'] in undue_amounts: # Making sure this partner actually was found by the query |
|||
undue_amt = undue_amounts[partner['partner_id']] |
|||
|
|||
total[6] = total[6] + undue_amt |
|||
values['direction'] = undue_amt |
|||
if not float_is_zero(values['direction'], precision_rounding=self.env.user.company_id.currency_id.rounding): |
|||
at_least_one_amount = True |
|||
|
|||
for i in range(5): |
|||
during = False |
|||
if partner['partner_id'] in history[i]: |
|||
during = [history[i][partner['partner_id']]] |
|||
# Adding counter |
|||
total[(i)] = total[(i)] + (during and during[0] or 0) |
|||
values[str(i)] = during and during[0] or 0.0 |
|||
if not float_is_zero(values[str(i)], precision_rounding=self.env.user.company_id.currency_id.rounding): |
|||
at_least_one_amount = True |
|||
values['total'] = sum([values['direction']] + [values[str(i)] for i in range(5)]) |
|||
## Add for total |
|||
total[(i + 1)] += values['total'] |
|||
values['partner_id'] = partner['partner_id'] |
|||
if partner['partner_id']: |
|||
browsed_partner = self.env['res.partner'].browse(partner['partner_id']) |
|||
values['name'] = browsed_partner.name and len(browsed_partner.name) >= 45 and browsed_partner.name[0:40] + '...' or browsed_partner.name |
|||
values['trust'] = browsed_partner.trust |
|||
else: |
|||
values['name'] = _('Unknown Partner') |
|||
values['trust'] = False |
|||
|
|||
if at_least_one_amount or (self._context.get('include_nullified_amount') and lines[partner['partner_id']]): |
|||
res.append(values) |
|||
return res, total, lines, periods |
|||
|
|||
@api.model |
|||
def generate_xlsx_report(self, workbook, data, lines): |
|||
currency = self.env.user.company_id.currency_id.symbol or '' |
|||
sheet = workbook.add_worksheet() |
|||
format1 = workbook.add_format({'font_size': 16, 'align': 'vcenter', 'bg_color': '#D3D3D3', 'bold': True}) |
|||
format1.set_font_color('#000080') |
|||
format2 = workbook.add_format({'font_size': 12}) |
|||
format3 = workbook.add_format({'font_size': 10, 'bold': True}) |
|||
format4 = workbook.add_format({'font_size': 10}) |
|||
format5 = workbook.add_format({'font_size': 12, 'bold': True, 'bg_color': '#D3D3D3'}) |
|||
format1.set_align('center') |
|||
format2.set_align('left') |
|||
format3.set_align('left') |
|||
format4.set_align('center') |
|||
|
|||
sheet.merge_range('A2:J3', 'Aged Partner Balance', format1) |
|||
row = 5 |
|||
col = 0 |
|||
# try: |
|||
if lines['result_selection'] == 'customer': |
|||
account_type = ['receivable'] |
|||
elif lines['result_selection'] == 'supplier': |
|||
account_type = ['payable'] |
|||
else: |
|||
account_type = ['payable', 'receivable'] |
|||
target_move = lines['target_move'] |
|||
|
|||
movelines, total, dummy, periods = self._get_billwise_move_lines(account_type, lines['date_from'], target_move, lines['period_length']) |
|||
for partner in dummy: |
|||
for line in dummy[partner]: |
|||
line['intervals'] = { |
|||
'0': 0, |
|||
'1': 0, |
|||
'2': 0, |
|||
'3': 0, |
|||
'4': 0, |
|||
'5': 0, |
|||
'total': 0 |
|||
} |
|||
line['intervals'][str(line['period'] - 1)] = line['amount'] |
|||
line['intervals']['total'] += line['amount'] |
|||
|
|||
form = lines |
|||
sheet.merge_range(row, col, row, col+2, 'Start Date :', format2) |
|||
sheet.merge_range(row, col+3, row, col+6, form['date_from'], format2) |
|||
row += 1 |
|||
sheet.merge_range(row, col, row, col+2, 'Period Length (days) :', format2) |
|||
sheet.merge_range(row, col+3, row, col+6, form['period_length'], format2) |
|||
row += 1 |
|||
account_type = "" |
|||
if form['result_selection'] == 'customer': |
|||
account_type = "Receivable Accounts" |
|||
elif lines['result_selection'] == 'supplier': |
|||
account_type = "Payable Accounts" |
|||
elif form['result_selection'] == 'customer_supplier': |
|||
account_type = "Receivable & Payable Accounts" |
|||
target_move = "" |
|||
if form['target_move'] == 'all': |
|||
target_move += "All Entries" |
|||
elif form['result_selection'] == 'posted': |
|||
target_move += "All Posted Entries" |
|||
sheet.merge_range(row, col, row, col+2, "Partner's :", format2) |
|||
sheet.merge_range(row, col + 3, row, col + 6, account_type, format2) |
|||
row += 1 |
|||
sheet.merge_range(row, col, row, col+2, 'Report Type :', format2) |
|||
sheet.merge_range(row, col+3, row, col+6, |
|||
"Bill-Wise", format2) |
|||
row += 2 |
|||
# constructing the table |
|||
sheet.merge_range(row, col, row, col+2, "Partners", format5) |
|||
sheet.set_column(col+2, col+9, 10) |
|||
sheet.write(row, col+3, "Not Due", format5) |
|||
sheet.write(row, col+4, periods['4']['name'], format5) |
|||
sheet.write(row, col+5, periods['3']['name'], format5) |
|||
sheet.write(row, col+6, periods['2']['name'], format5) |
|||
sheet.write(row, col+7, periods['1']['name'], format5) |
|||
sheet.write(row, col+8, periods['0']['name'], format5) |
|||
sheet.write(row, col+9, "Total", format5) |
|||
|
|||
row += 2 |
|||
sheet.merge_range(row, col, row, col+2, "Account Total", format3) |
|||
if total: |
|||
sheet.write(row, col + 3, |
|||
total[6] and str(total[6])+" "+currency or '__', |
|||
format2) |
|||
sheet.write(row, col + 4, |
|||
total[4] and str(total[4])+" "+currency or '__', |
|||
format2) |
|||
sheet.write(row, col + 5, |
|||
total[3] and str(total[3])+" "+currency or '__', |
|||
format2) |
|||
sheet.write(row, col + 6, |
|||
total[2] and str(total[2])+" "+currency or '__', |
|||
format2) |
|||
sheet.write(row, col + 7, |
|||
total[1] and str(total[1])+" "+currency or '__', |
|||
format2) |
|||
sheet.write(row, col + 8, |
|||
total[0] and str(total[0])+" "+currency or '__', |
|||
format2) |
|||
sheet.write(row, col + 9, |
|||
total[5] and str(total[5])+" "+currency or '__', |
|||
format2) |
|||
|
|||
row += 1 |
|||
for partner in movelines: |
|||
sheet.merge_range(row, col, row, col + 2, partner['name'], format3) |
|||
sheet.write(row, col + 3, |
|||
partner['direction'] and str(partner['direction'])+" "+currency or '__', |
|||
format2) |
|||
sheet.write(row, col + 4, |
|||
partner['4'] and str(partner['4'])+" "+currency or '__', |
|||
format2) |
|||
sheet.write(row, col + 5, |
|||
partner['3'] and str(partner['3'])+" "+currency or '__', |
|||
format2) |
|||
sheet.write(row, col + 6, |
|||
partner['2'] and str(partner['2'])+" "+currency or '__', |
|||
format2) |
|||
sheet.write(row, col + 7, |
|||
partner['1'] and str(partner['1'])+" "+currency or '__', |
|||
format2) |
|||
sheet.write(row, col + 8, |
|||
partner['0'] and str(partner['0'])+" "+currency or '__', |
|||
format2) |
|||
sheet.write(row, col + 9, |
|||
partner['total'] and str(partner['total'])+" "+currency or '__', |
|||
format2) |
|||
row += 1 |
|||
|
|||
for line in dummy[partner['partner_id']]: |
|||
if line['amount'] > 0: |
|||
sheet.merge_range(row, col, row, col + 2, line['line'].invoice_id.number, format4) |
|||
sheet.write(row, col + 3, |
|||
line['intervals'].get('5') and str(line['intervals'].get('5'))+" "+currency or '__', |
|||
format2) |
|||
sheet.write(row, col + 4, |
|||
line['intervals'].get('4') and str(line['intervals'].get('4'))+" "+currency or '__', |
|||
format2) |
|||
sheet.write(row, col + 5, |
|||
line['intervals'].get('3') and str(line['intervals'].get('3'))+" "+currency or '__', |
|||
format2) |
|||
sheet.write(row, col + 6, |
|||
line['intervals'].get('2') and str(line['intervals'].get('2'))+" "+currency or '__', |
|||
format2) |
|||
sheet.write(row, col + 7, |
|||
line['intervals'].get('1') and str(line['intervals'].get('1'))+" "+currency or '__', |
|||
format2) |
|||
sheet.write(row, col + 8, |
|||
line['intervals'].get('0') and str(line['intervals'].get('0'))+" "+currency or '__', |
|||
format2) |
|||
sheet.write(row, col + 9, |
|||
line['intervals'].get('total') and str(line['intervals'].get('total'))+" "+currency or '__', |
|||
format2) |
|||
row += 1 |
|||
row += 1 |
@ -0,0 +1,11 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
<odoo> |
|||
<report |
|||
id="financial_report_xlsx" |
|||
model="account.aged.trial.balance.xls" |
|||
string="Aged Partner Bill Wise Xlsx" |
|||
report_type="xlsx" |
|||
name="partner_ageing_billwise_xlsx.financial_report_xlsx" |
|||
file="partner_ageing_billwise_xlsx.financial_report_xlsx" |
|||
/> |
|||
</odoo> |
After Width: | Height: | Size: 43 KiB |
After Width: | Height: | Size: 150 KiB |
After Width: | Height: | Size: 50 KiB |
After Width: | Height: | Size: 38 KiB |
After Width: | Height: | Size: 36 KiB |
@ -0,0 +1,335 @@ |
|||
<section class="oe_container" style="background-image:url(https://www.cybrosys.com/images/odoo-index-header-banner.png);background-repeat:no-repeat;background-size:100%;padding: 4% 0% 2% 15%;background-position-y: -107px;"> |
|||
<div class="oe_row oe_spaced"> |
|||
<h2 class="oe_slogan" style="font-size: 35px;color: #fff;font-weight: 900;text-transform: uppercase;text-align: left;margin: 0;margin-bottom: 16px;"> |
|||
Aged Partner Balance in Excel(Bill-Wise) |
|||
</h2> |
|||
<h3 class="oe_slogan" style="font-size: 25px;color: #fff;font-weight: 600;text-align: left;opacity: 1;margin: 0 !important;"> |
|||
Bill-wise aged partner balance Report |
|||
</h3> |
|||
<h5 class="oe_slogan" style="text-align: left;background: #fff;width: 293px;padding: 10px;color: #080808 !important;opacity: 1 !important;font-weight: 600;font-size: 20px;"> |
|||
<a style="color: #080808 !important;" href="https://www.cybrosys.com" target="_blank">Cybrosys Technologies</a> |
|||
</h5> |
|||
<a style="color: #080808 !important;" href="https://www.cybrosys.com" target="_blank"> |
|||
<div style="width: 215px;margin-left: 57%;text-align: center;background: #ffffff;height: 215px;border-radius: 100%;display: flex;justify-content: center;align-items: center;box-shadow: 0 0 12px 4px #00000059;"> |
|||
<img src="https://www.cybrosys.com/images/cybro-logo-oca.png" alt="cybrosys technologies" style="width: 180px;"/> |
|||
</div> |
|||
</a> |
|||
</div> |
|||
</section> |
|||
<section class="oe_container" style="padding: 1% 0% 3% 15%;"> |
|||
<div class="oe_row oe_spaced"> |
|||
<h2 class="oe_slogan" style="text-align: left;font-size: 28px;font-weight: 600;margin: 0px !important;"> |
|||
Overview |
|||
</h2> |
|||
<h3 class="oe_slogan" style="text-align: left;font-size: 16px;width: 90%;margin: 0;margin-top: 14px;color: #000 !important;opacity: 1 !important;line-height: 24px;"> |
|||
By default, Odoo doesn't have a bill-wise aged partner balance report. |
|||
With this module, we can have an excel report of bill-wise aged partner balance report. |
|||
</h3> |
|||
</div> |
|||
</section> |
|||
<section class="oe_container" style="background-image:url(https://www.cybrosys.com/images/odoo-index-banner.png); background-repeat:no-repeat; background-size:cover;padding: 5% 0% 15% 15%;"> |
|||
<div class="oe_row oe_spaced"> |
|||
<h2 class="oe_slogan" style="text-align: left;font-size: 28px;font-weight: 600;margin: 0px !important;"> |
|||
Features |
|||
</h2> |
|||
<h3 class="oe_slogan" style="text-align: left;font-size: 16px;width: 90%;margin: 0;margin-top: 14px;color: #000 !important;opacity: 1 !important;line-height: 18px;"> |
|||
<i class="fa fa-check" aria-hidden="true" style="color: #cd2d47;font-size: 15px;"></i> |
|||
Bill-wise aged partner balance report in excel format |
|||
</h3> |
|||
</div> |
|||
</section> |
|||
<section class="oe_container" style="padding: 3% 0% 0% 15%;"> |
|||
<div class="oe_row oe_spaced"> |
|||
<h2 class="oe_slogan" style="text-align: left;font-size: 28px;font-weight: 600;margin: 0px !important;"> |
|||
Screenshots |
|||
</h2> |
|||
<h3 class="oe_slogan" style="text-align: left;padding: 5% 0% 0% 0%;font-size: 16px;width: 90%;margin: 0;margin-top: 14px;color: #000 !important;opacity: 1 !important;line-height: 24px;"> |
|||
<i class="fa fa-check" aria-hidden="true" style="color: #cd2d47;font-size: 15px;"></i> |
|||
New menu is added for excel aged partner balance. |
|||
</h3> |
|||
<div class="oe_row oe_spaced"> |
|||
<img src="partner-xlsx-report-cybrosys-1.png" alt="" style="width: 95%;"/> |
|||
</div> |
|||
<h3 class="oe_slogan" style="text-align: left;padding: 5% 0% 0% 0%;font-size: 16px;width: 90%;margin: 0;margin-top: 14px;color: #000 !important;opacity: 1 !important;line-height: 24px;"> |
|||
<div><i class="fa fa-check" aria-hidden="true" style="color: #cd2d47;font-size: 15px;"></i> |
|||
This menu will open a wizard where we can provide all the details such as period length, start date, account type etc.. |
|||
</div> |
|||
</h3> |
|||
<div class="oe_row oe_spaced"> |
|||
<img src="partner-xlsx-report-cybrosys-2.png" alt="" style="width: 95%;"/> |
|||
</div> |
|||
<h3 class="oe_slogan" style="text-align: left;padding: 5% 0% 0% 0%;font-size: 16px;width: 90%;margin: 0;margin-top: 14px;color: #000 !important;opacity: 1 !important;line-height: 24px;"> |
|||
<div><i class="fa fa-check" aria-hidden="true" style="color: #cd2d47;font-size: 15px;"></i> |
|||
Aged Partner Balance Report |
|||
</div> |
|||
</h3> |
|||
<div class="oe_row oe_spaced"> |
|||
<img src="partner-xlsx-report-cybrosys-3.png" alt="" style="width: 95%;"/> |
|||
</div> |
|||
</div> |
|||
</section> |
|||
<section class="oe_container" style="padding: 7px 0% 0% 3%;"> |
|||
<div class="oe_row oe_spaced"> |
|||
<a style="color: #080808 !important;" href="https://apps.odoo.com/apps/modules/browse?search=cybrosys" target="_blank"><img src="https://www.cybrosys.com/images/view-more-apps.jpg" alt="cybrosys technologies" style="width: 100%;margin-bottom: 50px;"/></a> |
|||
</div> |
|||
</section> |
|||
<section class="oe_container" style="padding: 1% 0% 0% 3%;"> |
|||
<div class="oe_row oe_spaced"> |
|||
<h2 class="oe_slogan" style="text-align: left;font-size: 28px;font-weight: 600;margin: 0px !important;"> |
|||
Our Services |
|||
</h2> |
|||
<div style="display:flex;padding-top: 20px;justify-content: space-between;"> |
|||
<div style="flex-basis: 18%;"> |
|||
|
|||
<div style="width:75px;height:75px;background:#fff; border-radius:100%;margin: auto;"> |
|||
<a href="https://www.cybrosys.com/odoo-customization-and-installation/" target="_blank"> |
|||
<img src="https://www.cybrosys.com/images/odoo-customization.png" style="width: 100%;border-radius: 100%;"/> |
|||
</a> |
|||
</div> |
|||
<h3 class="oe_slogan" style="font-weight: 800;text-align: center;font-size: 14px;width: 100%;margin: 0;margin-top: 14px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;"> |
|||
<a href="https://www.cybrosys.com/odoo-customization-and-installation/" target="_blank"> |
|||
Odoo Customization |
|||
</a> |
|||
</h3> |
|||
|
|||
</div> |
|||
<div style="flex-basis: 18%;"> |
|||
|
|||
<div style="width:75px;height:75px;background:#fff; border-radius:100%;margin: auto;"> |
|||
<a href="https://www.cybrosys.com/odoo-erp-implementation/" target="_blank"> |
|||
<img src="https://www.cybrosys.com/images/odoo-erp-implementation.png" style="width: 100%;border-radius: 100%;"/> |
|||
</a> |
|||
</div> |
|||
<h3 class="oe_slogan" style="font-weight: 800;text-align: center;font-size: 14px;width: 100%;margin: 0;margin-top: 14px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;"> |
|||
<a href="https://www.cybrosys.com/odoo-erp-implementation/" target="_blank"> |
|||
Odoo Implementation </a> |
|||
</h3> |
|||
|
|||
</div> |
|||
<div style="flex-basis: 18%;"> |
|||
|
|||
<div style="width:75px;height:75px;background:#fff; border-radius:100%;margin: auto;"> |
|||
<a href="https://www.cybrosys.com/odoo-erp-integration/" target="_blank"> |
|||
<img src="https://www.cybrosys.com/images/odoo-erp-integration.png" style="width: 100%;border-radius: 100%;"/> |
|||
</a> |
|||
</div> |
|||
<h3 class="oe_slogan" style="font-weight: 800;text-align: center;font-size: 14px;width: 100%;margin: 0;margin-top: 14px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;"> |
|||
<a href="https://www.cybrosys.com/odoo-erp-integration/" target="_blank"> |
|||
Odoo Integration |
|||
</a> |
|||
</h3> |
|||
|
|||
</div> |
|||
<div style="flex-basis: 18%;"> |
|||
|
|||
<div style="width:75px;height:75px;background:#fff; border-radius:100%;margin: auto;"> |
|||
<a href="https://www.cybrosys.com/odoo-erp-support/" target="_blank"> |
|||
<img src="https://www.cybrosys.com/images/odoo-erp-support.png" style="width: 100%;border-radius: 100%;"/> |
|||
</a> |
|||
</div> |
|||
<h3 class="oe_slogan" style="font-weight: 800;text-align: center;font-size: 14px;width: 100%;margin: 0;margin-top: 14px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;"> |
|||
<a href="https://www.cybrosys.com/odoo-erp-support/" target="_blank"> |
|||
Odoo Support</a> |
|||
</h3> |
|||
|
|||
</div> |
|||
<div style="flex-basis: 18%;"> |
|||
|
|||
<div style="width:75px;height:75px;background:#fff; border-radius:100%;margin: auto;"> |
|||
<a href="https://www.cybrosys.com/hire-odoo-developer/" target="_blank"> |
|||
<img src="https://www.cybrosys.com/images/hire-odoo-developer.png" style="width: 100%;border-radius: 100%;"/> |
|||
</a> |
|||
</div> |
|||
<h3 class="oe_slogan" style="font-weight: 800;text-align: center;font-size: 14px;width: 100%;margin: 0;margin-top: 14px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;"> |
|||
<a href="https://www.cybrosys.com/hire-odoo-developer/" target="_blank"> |
|||
Hire Odoo Developers</a> |
|||
</h3> |
|||
</a> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</section> |
|||
<section class="oe_container" style="padding: 1% 0% 0% 3%;"> |
|||
<div class="oe_row oe_spaced"> |
|||
<h2 class="oe_slogan" style="text-align: left;font-size: 28px;font-weight: 600;margin: 0px !important;"> |
|||
Our Industries |
|||
</h2> |
|||
<div style="display:flex;justify-content: space-between;flex-wrap:wrap;"> |
|||
<div style="flex-basis: 32%;padding-top: 20px;"> |
|||
|
|||
<div style="width:30%; float:left;"> |
|||
<div style="width:75px;height:75px;background:#CE2D48; border-radius:100%;float: left;text-align: left;"> |
|||
<a href="https://www.cybrosys.com/odoo/industries/best-trading-erp/" target="_blank"> |
|||
<img src="https://www.cybrosys.com/images/odoo-index-industry-1.png" alt="Odoo Industry" style=" border-radius: 100%;width:100%;"/> |
|||
</a> |
|||
</div> |
|||
</div> |
|||
<div style="width:70%;float:left;"> |
|||
<h3 class="oe_slogan" style=" text-align: left;font-size: 14px;font-weight:800;width: auto;margin: 0;margin-top: 14px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;float: left;margin-top: 4px;margin-left: 16px;"> |
|||
<a href="https://www.cybrosys.com/odoo/industries/best-trading-erp/" target="_blank"> |
|||
Trading |
|||
</a> |
|||
</h3> |
|||
<h3 class="oe_slogan" style=" text-align: left;font-size: 13px;width: auto;margin: 0;margin-top:5px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;float: left;margin-top: 5px;margin-left: 16px;"> |
|||
Easily procure and sell your products. |
|||
</h3> |
|||
</div> |
|||
|
|||
</div> |
|||
<div style="flex-basis: 32%;padding-top: 20px;"> |
|||
|
|||
<div style="width:30%; float:left;"> |
|||
<div style="width:75px;height:75px;background:#CE2D48; border-radius:100%;float: left;text-align: left;"> |
|||
<a href="https://www.cybrosys.com/odoo/industries/manufacturing-erp-software/" target="_blank"> |
|||
<img src="https://www.cybrosys.com/images/odoo-index-industry-2.png" alt="Odoo Industry" style=" border-radius: 100%;width:100%;"/> |
|||
</a> |
|||
</div> |
|||
</div> |
|||
<div style="width:70%;float:left;"> |
|||
<h3 class="oe_slogan" style=" text-align: left;font-size: 14px;font-weight:800;width: auto;margin: 0;margin-top: 14px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;float: left;margin-top: 4px;margin-left: 16px;"> |
|||
<a href="https://www.cybrosys.com/odoo/industries/manufacturing-erp-software/" target="_blank"> |
|||
Manufacturing</a> |
|||
</h3> |
|||
<h3 class="oe_slogan" style=" text-align: left;font-size: 13px;width: auto;margin: 0;margin-top:5px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;float: left;margin-top: 5px;margin-left: 16px;"> |
|||
Plan, track and schedule your operations. |
|||
</h3> |
|||
</div> |
|||
|
|||
</div> |
|||
<div style="flex-basis: 32%;padding-top: 20px;"> |
|||
|
|||
<div style="width:30%; float:left;"> |
|||
<div style="width:75px;height:75px;background:#CE2D48; border-radius:100%;float: left;text-align: left;"> |
|||
<a href="https://www.cybrosys.com/odoo/industries/restaurant-management/" target="_blank"> |
|||
<img src="https://www.cybrosys.com/images/odoo-index-industry-3.png" alt="Odoo Industry" style=" border-radius: 100%;width:100%;"/> |
|||
</a> |
|||
</div> |
|||
</div> |
|||
<div style="width:70%;float:left;"> |
|||
<h3 class="oe_slogan" style=" text-align: left;font-size: 14px;font-weight:800;width: auto;margin: 0;margin-top: 14px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;float: left;margin-top: 4px;margin-left: 16px;"> |
|||
<a href="https://www.cybrosys.com/odoo/industries/restaurant-management/" target="_blank"> |
|||
Restaurant</a> |
|||
</h3> |
|||
<h3 class="oe_slogan" style=" text-align: left;font-size: 13px;width: auto;margin: 0;margin-top:5px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;float: left;margin-top: 5px;margin-left: 16px;"> |
|||
Run your bar or restaurant methodical. |
|||
</h3> |
|||
</div> |
|||
|
|||
</div> |
|||
<div style="flex-basis: 32%;padding-top: 20px;"> |
|||
|
|||
<div style="width:30%; float:left;"> |
|||
<div style="width:75px;height:75px;background:#CE2D48; border-radius:100%;float: left;text-align: left;"> |
|||
<a href="https://www.cybrosys.com/odoo/industries/pos/" target="_blank"> |
|||
<img src="https://www.cybrosys.com/images/odoo-index-industry-4.png" alt="Odoo Industry" style=" border-radius: 100%;width:100%;"/> |
|||
</a> |
|||
</div> |
|||
</div> |
|||
<div style="width:70%;float:left;"> |
|||
<h3 class="oe_slogan" style=" text-align: left;font-size: 14px;font-weight:800;width: auto;margin: 0;margin-top: 14px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;float: left;margin-top: 4px;margin-left: 16px;"> |
|||
<a href="https://www.cybrosys.com/odoo/industries/pos/" target="_blank"> |
|||
POS</a> |
|||
</h3> |
|||
<h3 class="oe_slogan" style=" text-align: left;font-size: 13px;width: auto;margin: 0;margin-top:5px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;float: left;margin-top: 5px;margin-left: 16px;"> |
|||
Easy configuring and convivial selling. |
|||
</h3> |
|||
</div> |
|||
|
|||
</div> |
|||
<div style="flex-basis: 32%;padding-top: 20px;"> |
|||
|
|||
<div style="width:30%; float:left;"> |
|||
<div style="width:75px;height:75px;background:#CE2D48; border-radius:100%;float: left;text-align: left;"> |
|||
<a href="https://www.cybrosys.com/odoo/industries/ecommerce-website/" target="_blank"> |
|||
<img src="https://www.cybrosys.com/images/odoo-index-industry-5.png" alt="Odoo Industry" style=" border-radius: 100%;width:100%;"/> |
|||
</a> |
|||
</div> |
|||
</div> |
|||
<div style="width:70%;float:left;"> |
|||
<h3 class="oe_slogan" style=" text-align: left;font-size: 14px;font-weight:800;width: auto;margin: 0;margin-top: 14px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;float: left;margin-top: 0px;margin-left: 16px;"> |
|||
<a href="https://www.cybrosys.com/odoo/industries/ecommerce-website/" target="_blank"> |
|||
E-commerce & Website</a> |
|||
</h3> |
|||
<h3 class="oe_slogan" style=" text-align: left;font-size: 13px;width: auto;margin: 0;margin-top:5px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;float: left;margin-top: 5px;margin-left: 16px;"> |
|||
Mobile friendly, awe-inspiring product pages. |
|||
</h3> |
|||
</div> |
|||
</div> |
|||
<div style="flex-basis: 32%;padding-top: 20px;"> |
|||
|
|||
<div style="width:30%; float:left;"> |
|||
<div style="width:75px;height:75px;background:#CE2D48; border-radius:100%;float: left;text-align: left;"> |
|||
<a href="https://www.cybrosys.com/odoo/industries/hotel-management-erp/" target="_blank"> |
|||
<img src="https://www.cybrosys.com/images/odoo-index-industry-6.png" alt="Odoo Industry" style=" border-radius: 100%;width:100%;"/> |
|||
</a> |
|||
</div> |
|||
</div> |
|||
<div style="width:70%;float:left;"> |
|||
<h3 class="oe_slogan" style=" text-align: left;font-size: 14px;font-weight:800;width: auto;margin: 0;margin-top: 14px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;float: left;margin-top: 4px;margin-left: 16px;"> |
|||
<a href="https://www.cybrosys.com/odoo/industries/hotel-management-erp/" target="_blank"> |
|||
Hotel Management</a> |
|||
</h3> |
|||
<h3 class="oe_slogan" style=" text-align: left;font-size: 13px;width: auto;margin: 0;margin-top:5px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;float: left;margin-top: 5px;margin-left: 16px;"> |
|||
An all-inclusive hotel management application. |
|||
</h3> |
|||
</div> |
|||
</div> |
|||
<div style="flex-basis: 32%;padding-top: 20px;"> |
|||
|
|||
<div style="width:30%; float:left;"> |
|||
<div style="width:75px;height:75px;background:#CE2D48; border-radius:100%;float: left;text-align: left;"> |
|||
<a href="https://www.cybrosys.com/odoo/industries/education-erp-software/" target="_blank"> |
|||
<img src="https://www.cybrosys.com/images/odoo-index-industry-7.png" alt="Odoo Industry" style=" border-radius: 100%;width:100%;"/> |
|||
</a> |
|||
</div> |
|||
</div> |
|||
<div style="width:70%;float:left;"> |
|||
<h3 class="oe_slogan" style=" text-align: left;font-size: 14px;font-weight:800;width: auto;margin: 0;margin-top: 14px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;float: left;margin-top: 4px;margin-left: 16px;"> |
|||
<a href="https://www.cybrosys.com/odoo/industries/education-erp-software/" target="_blank"> |
|||
Education</a> |
|||
</h3> |
|||
<h3 class="oe_slogan" style=" text-align: left;font-size: 13px;width: auto;margin: 0;margin-top:5px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;float: left;margin-top: 5px;margin-left: 16px;"> |
|||
A Collaborative platform for educational management. |
|||
</h3> |
|||
</div> |
|||
</div> |
|||
<div style="flex-basis: 32%;padding-top: 20px;"> |
|||
|
|||
<div style="width:30%; float:left;"> |
|||
<div style="width:75px;height:75px;background:#CE2D48; border-radius:100%;float: left;text-align: left;"> |
|||
<a href="https://www.cybrosys.com/odoo/industries/service-management/" target="_blank"> |
|||
<img src="https://www.cybrosys.com/images/odoo-index-industry-8.png" alt="Odoo Industry" style=" border-radius: 100%;width:100%;"/> |
|||
</a> |
|||
</div> |
|||
</div> |
|||
<div style="width:70%;float:left;"> |
|||
<h3 class="oe_slogan" style=" text-align: left;font-size: 14px;font-weight:800;width: auto;margin: 0;margin-top: 14px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;float: left;margin-top: 4px;margin-left: 16px;"> |
|||
<a href="https://www.cybrosys.com/odoo/industries/service-management/" target="_blank"> |
|||
Service Management</a> |
|||
</h3> |
|||
<h3 class="oe_slogan" style=" text-align: left;font-size: 13px;width: auto;margin: 0;margin-top:5px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;float: left;margin-top: 5px;margin-left: 16px;"> |
|||
Keep track of services and invoice accordingly. |
|||
</h3> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</section> |
|||
<section class="oe_container" style="background-image:url(https://www.cybrosys.com/images/odoo-index-footer-bg.png); background-repeat:no-repeat; background-size:100%;padding: 13% 0% 6% 0%;"> |
|||
<div class="oe_slogan" style="margin-top:10px !important;margin-bottom: 0px;"> |
|||
<div> |
|||
<a style="color: #5c5c5c !important;border-radius: 0;background: none;border: none;background: #fff;box-shadow: 0 10px 40px 0 rgba(62,57,107,0.07), 0 2px 9px 0 rgba(62, 57, 107, 0.05);border-radius: 30px;font-size: 12px;padding: 9px 26px;margin-right: 9px;width: 200px;text-transform: capitalize;" class="btn btn-primary btn-lg mt8" style="color: #FFFFFF !important;border-radius: 0;" href="mailto:odoo@cybrosys.com"><i class="fa fa-envelope"></i> Email us </a> |
|||
<a style="color: #5c5c5c !important;border-radius: 0;background: none;border: none;background: #fff;box-shadow: 0 10px 40px 0 rgba(62,57,107,0.07), 0 2px 9px 0 rgba(62, 57, 107, 0.05);border-radius: 30px;font-size: 12px;padding: 9px 26px;margin-right: 9px;width: 200px;text-transform: capitalize;" class="btn btn-primary btn-lg mt8" style="color: #FFFFFF !important;border-radius: 0;" href="https://www.cybrosys.com/contact/"><i class="fa fa-phone"></i> Contact Us </a> |
|||
<a style="color: #5c5c5c !important;border-radius: 0;background: none;border: none;background: #fff;box-shadow: 0 10px 40px 0 rgba(62,57,107,0.07), 0 2px 9px 0 rgba(62, 57, 107, 0.05);border-radius: 30px;font-size: 12px;padding: 9px 26px;margin-right: 9px;width: 200px;text-transform: capitalize;" class="btn btn-primary btn-lg mt8" style="color: #FFFFFF !important;border-radius: 0;" href="https://www.cybrosys.com/contact/"><i class="fa fa-check-square"></i> Request Customization </a> |
|||
</div> |
|||
<br> |
|||
<img src="https://www.cybrosys.com/images/logo.png" style="width: 190px; margin-bottom: 25px;margin-top: 30px;" class="center-block"> |
|||
<div> |
|||
<a href="https://twitter.com/cybrosys" target="_blank"><i class="fa fa-2x fa-twitter" style="color:white;background: #00a0d1;width:35px;height: 35px;padding-top: 7px;font-size: 21px;margin-right: 6px;border-radius: 100%;"></i></a></td> |
|||
<a href="https://www.linkedin.com/company/cybrosys-technologies-pvt-ltd" target="_blank"><i class="fa fa-2x fa-linkedin" style="color:white;background: #31a3d6;width:35px;padding-left: 3px;height: 35px;padding-top: 7px;font-size: 21px;margin-right: 6px;border-radius: 100%;"></i></a></td> |
|||
<a href="https://www.facebook.com/cybrosystechnologies" target="_blank"><i class="fa fa-2x fa-facebook" style="color:white;background: #3b5998;width:35px; ;height: 35px;padding-top: 7px;font-size: 21px;margin-right: 6px;border-radius: 100%;"></i></a></td> |
|||
<a href="https://plus.google.com/106641282743045431892/about" target="_blank"><i class="fa fa-2x fa-google-plus" style="color:white;background: #c53c2c;width:35px;padding-left: 3px;height: 35px;padding-top: 7px;font-size: 21px;margin-right: 6px;border-radius: 100%;"></i></a></td> |
|||
<a href="https://in.pinterest.com/cybrosys" target="_blank"><i class="fa fa-2x fa-pinterest" style="color:white;background: #ac0f18;width:35px;padding-left: 3px;height: 35px;padding-top: 7px;font-size: 21px;margin-right: 6px;border-radius: 100%;"></i></a></td> |
|||
</div> |
|||
</div> |
|||
</section> |
After Width: | Height: | Size: 65 KiB |
After Width: | Height: | Size: 91 KiB |
After Width: | Height: | Size: 124 KiB |
After Width: | Height: | Size: 51 KiB |
After Width: | Height: | Size: 36 KiB |
@ -0,0 +1,39 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
<odoo> |
|||
<record id="aged_balance_view_billwise_xls" model="ir.ui.view"> |
|||
<field name="name">Aged Partner Balance Billwise Excel</field> |
|||
<field name="model">account.aged.trial.balance.xls</field> |
|||
<!--<field name="inherit_id" ref="account.account_aged_balance_view" />--> |
|||
<field name="arch" type="xml"> |
|||
<form string="Report Options"> |
|||
<separator string="Aged Partner Balance"/> |
|||
<label string="Aged Partner Balance is a more detailed report of your receivables by intervals. Odoo calculates a table of credit balance by start Date. So if you request an interval of 30 days Odoo generates an analysis of creditors for the past month, past two months, and so on. "/> |
|||
<group col="4"> |
|||
<field name="date_from"/> |
|||
<field name="period_length"/> |
|||
<newline/> |
|||
<field name="result_selection" widget="radio"/> |
|||
<field name="target_move" widget="radio"/> |
|||
</group> |
|||
<field name="journal_ids" required="0" invisible="1"/> |
|||
<footer> |
|||
<button name="check_report" string="Print" type="object" default_focus="1" class="oe_highlight"/> |
|||
or |
|||
<button string="Cancel" class="oe_link" special="cancel"/> |
|||
</footer> |
|||
</form> |
|||
</field> |
|||
</record> |
|||
<record id="action_aged_partner_balance_xls" model="ir.actions.act_window"> |
|||
<field name="name">Partner Ageing Billwise Excel</field> |
|||
<field name="res_model">account.aged.trial.balance.xls</field> |
|||
<field name="type">ir.actions.act_window</field> |
|||
<field name="view_type">form</field> |
|||
<field name="view_mode">form</field> |
|||
<field name="target">new</field> |
|||
</record> |
|||
<menuitem id="excel_reports_menu" name="Excel Reports" parent="account.menu_finance_reports"/> |
|||
<menuitem name="Aged Partner Bill Wise" parent="excel_reports_menu" |
|||
id="aged_partner_xls" sequence="1" |
|||
action="action_aged_partner_balance_xls"/> |
|||
</odoo> |