bzr revid: ruchakpatel@gmail.com-20081027052130-3ckmhgybzqmr3or4
This commit is contained in:
Rucha Patel
2008-10-27 10:51:30 +05:30
72 changed files with 6000 additions and 4941 deletions
-17
View File
@@ -1,17 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>pso-newaddons</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.python.pydev.PyDevBuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.python.pydev.pythonNature</nature>
</natures>
</projectDescription>
+24 -5
View File
@@ -281,7 +281,16 @@ class account_account(osv.osv):
'parent_left': fields.integer('Parent Left', select=1),
'parent_right': fields.integer('Parent Right', select=1),
'check_history': fields.boolean('Display History', help="Check this box if you want to print all entries when printing the General Ledger, otherwise it will only print its balance.")
'currency_mode': fields.selection([('current','At Date'),('average','Average Rate')], 'Outgoing Currencies Rate',
help=
'This will select how is computed the current currency rate for outgoing transactions. '\
'In most countries the legal method is "average" but only a few softwares are able to '\
'manage this. So if you import from another software, you may have to use the rate at date. ' \
'Incoming transactions, always use the rate at date.', \
required=True),
'check_history': fields.boolean('Display History',
help="Check this box if you want to print all entries when printing the General Ledger, "\
"otherwise it will only print its balance.")
}
def _default_company(self, cr, uid, context={}):
@@ -296,6 +305,7 @@ class account_account(osv.osv):
'company_id': _default_company,
'active': lambda *a: True,
'check_history': lambda *a: True,
'currency_mode': lambda *a: 'current'
}
def _check_recursion(self, cr, uid, ids):
@@ -552,6 +562,17 @@ class account_period(osv.osv):
if not ids:
raise osv.except_osv(_('Error !'), _('No period defined for this date !\nPlease create a fiscal year.'))
return ids
def action_draft(self, cr, uid, ids, *args):
users_roles = self.pool.get('res.users').browse(cr, uid, uid).roles_id
for role in users_roles:
if role.name=='Period':
mode = 'draft'
for id in ids:
cr.execute('update account_journal_period set state=%s where period_id=%d', (mode, id))
cr.execute('update account_period set state=%s where id=%d', (mode, id))
return True
account_period()
class account_journal_period(osv.osv):
@@ -1035,7 +1056,7 @@ class account_tax_code(osv.osv):
_rec_name = 'code'
_columns = {
'name': fields.char('Tax Case Name', size=64, required=True),
'code': fields.char('Case Code', size=16),
'code': fields.char('Case Code', size=64),
'info': fields.text('Description'),
'sum': fields.function(_sum, method=True, string="Year Sum"),
'sum_period': fields.function(_sum_period, method=True, string="Period Sum"),
@@ -1685,7 +1706,7 @@ class account_tax_code_template(osv.osv):
_rec_name = 'code'
_columns = {
'name': fields.char('Tax Case Name', size=64, required=True),
'code': fields.char('Case Code', size=16),
'code': fields.char('Case Code', size=64),
'info': fields.text('Description'),
'parent_id': fields.many2one('account.tax.code.template', 'Parent Code', select=True),
'child_ids': fields.one2many('account.tax.code.template', 'parent_id', 'Childs Codes'),
@@ -1929,7 +1950,6 @@ class wizard_multi_charts_accounts(osv.osv_memory):
code_acc = account_template.code
if code_main<=dig and account_template.type != 'view':
code_acc=str(code_acc) + (str('0'*(dig-code_main)))
vals={
'name': (obj_acc_root.id == account_template.id) and obj_multi.company_id.name or account_template.name,
#'sign': account_template.sign,
@@ -1946,7 +1966,6 @@ class wizard_multi_charts_accounts(osv.osv_memory):
}
new_account = obj_acc.create(cr,uid,vals)
acc_template_ref[account_template.id] = new_account
#reactivate the parent_store functionnality on account_account
self.pool._init = False
self.pool.get('account.account')._parent_store_compute(cr)
+28 -27
View File
@@ -191,8 +191,14 @@ class account_bank_statement(osv.osv):
continue
torec = []
if move.amount >= 0:
account_id = st.journal_id.default_credit_account_id.id
else:
account_id = st.journal_id.default_debit_account_id.id
acc_cur = ((move.amount<=0) and st.journal_id.default_debit_account_id) or move.account_id
amount = res_currency_obj.compute(cr, uid, st.currency.id,
company_currency_id, move.amount, context=context)
company_currency_id, move.amount, context=context,
account=acc_cur)
if move.reconcile_id and move.reconcile_id.line_new_ids:
for newline in move.reconcile_id.line_new_ids:
amount += newline.amount
@@ -213,7 +219,8 @@ class account_bank_statement(osv.osv):
}
amount = res_currency_obj.compute(cr, uid, st.currency.id,
company_currency_id, move.amount, context=context)
company_currency_id, move.amount, context=context,
account=acc_cur)
if move.account_id and move.account_id.currency_id:
val['currency_id'] = move.account_id.currency_id.id
@@ -221,7 +228,8 @@ class account_bank_statement(osv.osv):
amount_cur = move.amount
else:
amount_cur = res_currency_obj.compute(cr, uid, company_currency_id,
move.account_id.currency_id.id, amount, context=context)
move.account_id.currency_id.id, amount, context=context,
account=acc_cur)
val['amount_currency'] = amount_cur
torec.append(account_move_line_obj.create(cr, uid, val , context=context))
@@ -242,11 +250,6 @@ class account_bank_statement(osv.osv):
'period_id': st.period_id.id,
}, context=context)
if amount >= 0:
account_id = st.journal_id.default_credit_account_id.id
else:
account_id = st.journal_id.default_debit_account_id.id
# Fill the secondary amount/currency
# if currency is not the same than the company
amount_currency = False
@@ -370,10 +373,16 @@ class account_bank_statement_reconcile(osv.osv):
context=context).company_id.currency_id.id
currency_id = context.get('currency_id', company_currency_id)
acc_cur = None
if context.get('journal_id', False) and context.get('account_id',False):
st =self.pool.get('account.journal').browse(cursor, user, context['journal_id'])
acc = self.pool.get('account.account').browse(cursor, user, context['account_id'])
acc_cur = (( context.get('amount',0.0)<=0) and st.default_debit_account_id) or acc
for reconcile_id in ids:
res[reconcile_id] = res_currency_obj.compute(cursor, user,
currency_id, company_currency_id,
context.get('amount', 0.0), context=context)
context.get('amount', 0.0), context=context, account=acc_cur)
return res
def _default_amount(self, cursor, user, context=None):
@@ -386,9 +395,15 @@ class account_bank_statement_reconcile(osv.osv):
context=context).company_id.currency_id.id
currency_id = context.get('currency_id', company_currency_id)
acc_cur = None
if context.get('journal_id', False) and context.get('account_id',False):
st =self.pool.get('account.journal').browse(cursor, user, context['journal_id'])
acc = self.pool.get('account.account').browse(cursor, user, context['account_id'])
acc_cur = (( context.get('amount',0.0)<=0) and st.default_debit_account_id) or acc
return res_currency_obj.compute(cursor, user,
currency_id, company_currency_id,
context.get('amount', 0.0), context=context)
context.get('amount', 0.0), context=context, account=acc_cur)
def _total_currency(self, cursor, user, ids, name, attrs, context=None):
res = {}
@@ -423,25 +438,11 @@ class account_bank_statement_reconcile(osv.osv):
def name_get(self, cursor, user, ids, context=None):
res= []
res_currency_obj = self.pool.get('res.currency')
res_users_obj = self.pool.get('res.users')
company_currency_id = res_users_obj.browse(cursor, user, user,
context=context).company_id.currency_id.id
for o in self.browse(cursor, user, ids, context=context):
td = ''
if o.statement_line:
currency_id = o.statement_line[0].statement_id.currency.id
if abs(o.statement_line[0].amount - (o.total_entry - o.total_new))>0.01:
td = 'P '
else:
currency_id = company_currency_id
res.append((o.id, '%s[%.2f-%.2f]' % (td,
res_currency_obj.compute(cursor, user, company_currency_id,
currency_id, o.total_entry, context=context),
res_currency_obj.compute(cursor, user, company_currency_id,
currency_id, o.total_new, context=context))))
if o.total_amount:
td = 'P '
res.append((o.id, '%s[%.2f]' % (td, o.total_amount)))
return res
_columns = {
+40 -1
View File
@@ -145,7 +145,9 @@ class account_move_line(osv.osv):
ref_id = False
move = self.pool.get('account.move').browse(cr, uid, move_id, context)
acc1 = False
for l in move.line_id:
acc1 = l.account_id
partner_id = partner_id or l.partner_id.id
ref_id = ref_id or l.ref
total += (l.debit or 0.0) - (l.credit or 0.0)
@@ -175,6 +177,17 @@ class account_move_line(osv.osv):
s = -total
data['debit'] = s>0 and s or 0.0
data['credit'] = s<0 and -s or 0.0
if account.currency_id:
data['currency_id'] = account.currency_id.id
acc = account
if s>0:
acc = acc1
v = self.pool.get('res.currency').compute(cr, uid,
account.company_id.currency_id.id,
data['currency_id'],
s, account=acc, account_invert=True)
data['amount_currency'] = v
return data
def _on_create_write(self, cr, uid, id, context={}):
@@ -325,12 +338,19 @@ class account_move_line(osv.osv):
context=context)
dt = period.date_start
return dt
def _get_currency(self, cr, uid, context={}):
if not context.get('journal_id', False):
return False
cur = self.pool.get('account.journal').browse(cr, uid, context['journal_id']).currency
return cur and cur.id or False
_defaults = {
'blocked': lambda *a: False,
'centralisation': lambda *a: 'normal',
'date': _get_date,
'date_created': lambda *a: time.strftime('%Y-%m-%d'),
'state': lambda *a: 'draft',
'currency_id': _get_currency,
'journal_id': lambda self, cr, uid, c: c.get('journal_id', False),
'period_id': lambda self, cr, uid, c: c.get('period_id', False),
}
@@ -368,6 +388,21 @@ class account_move_line(osv.osv):
#TODO: ONCHANGE_ACCOUNT_ID: set account_tax_id
def onchange_currency(self, cr, uid, ids, account_id, amount, currency_id, date=False, journal=False):
if (not currency_id) or (not account_id):
return {}
result = {}
acc =self.pool.get('account.account').browse(cr, uid, account_id)
if (amount>0) and journal:
x = self.pool.get('account.journal').browse(cr, uid, journal).default_credit_account_id
if x: acc = x
v = self.pool.get('res.currency').compute(cr, uid, currency_id,acc.company_id.currency_id.id, amount, account=acc)
result['value'] = {
'debit': v>0 and v or 0.0,
'credit': v<0 and -v or 0.0
}
return result
def onchange_partner_id(self, cr, uid, ids, move_id, partner_id, account_id=None, debit=0, credit=0, date=False, journal=False):
val = {}
val['date_maturity'] = False
@@ -603,6 +638,8 @@ class account_move_line(osv.osv):
attrs.append('required="1"')
else:
attrs.append('required="0"')
if field.field in ('amount_currency','currency_id'):
attrs.append('on_change="onchange_currency(account_id,amount_currency,currency_id,date,((\'journal_id\' in context) and context[\'journal_id\']) or {})"')
if field.field == 'partner_id':
attrs.append('on_change="onchange_partner_id(move_id,partner_id,account_id,debit,credit,((\'journal_id\' in context) and context[\'journal_id\']) or {})"')
if field.field in widths:
@@ -749,7 +786,9 @@ class account_move_line(osv.osv):
ctx = {}
if 'date' in vals:
ctx['date'] = vals['date']
vals['amount_currency'] = cur_obj.compute(cr, uid, account.company_id.currency_id.id, account.currency_id.id, vals.get('debit', 0.0)-vals.get('credit', 0.0), context=ctx)
vals['amount_currency'] = cur_obj.compute(cr, uid, account.company_id.currency_id.id,
account.currency_id.id, vals.get('debit', 0.0)-vals.get('credit', 0.0),
context=ctx)
if not ok:
raise osv.except_osv(_('Bad account !'), _('You can not use this general account in this journal !'))
+5 -5
View File
@@ -2,20 +2,20 @@
<openerp>
<data>
<report auto="False" id="account_general_ledger" menu="False" model="account.account" name="account.general.ledger" rml="account/report/general_ledger.rml" string="General Ledger"/>
<report auto="False" id="account_3rdparty_ledger" menu="False" model="res.partner" name="account.third_party_ledger" rml="account/report/third_party_ledger.rml" string="Partner ledger"/>
<report auto="False" id="account_account_balance" menu="False" model="account.account" name="account.account.balance" rml="account/report/account_balance.rml" string="Account balance"/>
<report auto="False" id="account_3rdparty_account_balance" menu="False" model="account.account" name="account.partner.balance" rml="account/report/partner_balance.rml" string="Partner balance"/>
<report auto="False" id="account_3rdparty_ledger" menu="False" model="res.partner" name="account.third_party_ledger" rml="account/report/third_party_ledger.rml" string="Partner Ledger"/>
<report auto="False" id="account_account_balance" menu="False" model="account.account" name="account.account.balance" rml="account/report/account_balance.rml" string="Account Balance"/>
<report auto="False" id="account_3rdparty_account_balance" menu="False" model="account.account" name="account.partner.balance" rml="account/report/partner_balance.rml" string="Partner Balance"/>
<report auto="False" id="account_central_journal" model="account.journal.period" name="account.central.journal" rml="account/report/central_journal.rml" string="Print Central Journal"/>
<report auto="False" id="account_general_journal" model="account.journal.period" name="account.general.journal" rml="account/report/general_journal.rml" string="Print General Journal"/>
<report auto="False" id="account_journal" model="account.journal.period" name="account.journal.period.print" rml="account/report/account_journal.rml" string="Print Journal"/>
<report auto="False" id="account_overdue" model="res.partner" name="account.overdue" rml="account/report/overdue.rml" string="Overdue payments"/>
<report auto="False" id="account_overdue" model="res.partner" name="account.overdue" rml="account/report/overdue.rml" string="Overdue Payments"/>
<report auto="False" id="account_invoices" model="account.invoice" name="account.invoice" rml="account/report/invoice.rml" string="Invoices" attachment="print-"/>
<report id="account_transfers" model="account.transfer" name="account.transfer" string="Transfers" xml="account/report/transfer.xml" xsl="account/report/transfer.xsl"/>
<report auto="False" id="account_intracom" menu="False" model="account.move.line" name="account.intracom" string="IntraCom"/>
<report id="account_move_line_list" model="account.tax.code" name="account.tax.code.entries" rml="account/report/account_tax_code.rml" string="All Entries"/>
<report auto="False" id="account_vat_declaration" menu="False" model="account.tax.code" name="account.vat.declaration" rml="account/report/tax_report.rml" string="Taxes report"/>
<report auto="False" id="account_vat_declaration" menu="False" model="account.tax.code" name="account.vat.declaration" rml="account/report/tax_report.rml" string="Taxes Report"/>
<menuitem
id="menu_tax_report"
+9 -3
View File
@@ -60,6 +60,9 @@
<!--
Period
-->
<record id="res_role_period" model="res.roles">
<field eval="&quot;&quot;&quot;Period&quot;&quot;&quot;" name="name"/>
</record>
<record id="view_account_period_form" model="ir.ui.view">
<field name="name">account.period.form</field>
@@ -74,6 +77,7 @@
<field name="fiscalyear_id"/>
<separator colspan="4" string="States"/>
<field name="state" select="1"/>
<button name="action_draft" states="done" string="Set to Draft" type="object"/>
</form>
</field>
</record>
@@ -122,8 +126,9 @@
<page string="General Information">
<newline/>
<field name="currency_id" select="2"/>
<field name="active" select="2"/>
<field name="currency_mode" select="2"/>
<field name="reconcile"/>
<field name="active" select="2"/>
<field name="check_history"/>
<newline/>
<newline/>
@@ -323,7 +328,7 @@
<field name="partner_id" on_change="onchange_partner_id(partner_id, type, parent.currency)"/>
<field domain="[('journal_id','=',parent.journal_id)]" name="account_id"/>
<field name="amount"/>
<field context="{'partner_id': partner_id, 'amount': amount, 'account_id': account_id, 'currency_id': parent.currency}" name="reconcile_id"/>
<field context="{'partner_id': partner_id, 'amount': amount, 'account_id': account_id, 'currency_id': parent.currency, 'journal_id': parent.journal_id}" name="reconcile_id"/>
<field invisible="1" name="reconcile_amount"/>
</tree>
<form string="Statement lines">
@@ -333,7 +338,7 @@
<field name="partner_id" on_change="onchange_partner_id(partner_id, type, parent.currency)"/>
<field domain="[('journal_id', '=', parent.journal_id), ('type', '&lt;&gt;', 'view')]" name="account_id"/>
<field name="amount"/>
<field context="{'partner_id':partner_id,'amount':amount,'account_id':account_id}" name="reconcile_id"/>
<field context="{'partner_id':partner_id,'amount':amount,'account_id':account_id,'journal_id':parent.journal_id}" name="reconcile_id"/>
<field name="ref"/>
<separator colspan="4" string="Notes"/>
<field colspan="4" name="note" nolabel="1"/>
@@ -605,6 +610,7 @@
<field name="res_model">account.tax</field>
<field name="view_type">form</field>
<field name="view_id" ref="view_tax_tree"/>
<field name="domain">[('parent_id','=',False)]</field>
</record>
<menuitem action="action_tax_form" id="menu_action_tax_form" parent="next_id_27"/>
+9 -4
View File
@@ -80,15 +80,20 @@
<wizard string="Open State" model="account.invoice" name="account.wizard_paid_open" menu="False" id="wizard_paid_open"/>
<!-- generic report wizard -->
<wizard id="wizard_account_balance_report" menu="False" model="account.account" name="account.account.balance.report" string="Account balance"/>
<wizard id="wizard_account_balance_report" menu="False" model="account.account" name="account.account.balance.report" string="Account Balance"/>
<menuitem icon="STOCK_PRINT" action="wizard_account_balance_report" id="menu_account_balance_report" parent="account.menu_generic_report" type="wizard"/>
<wizard id="wizard_general_ledger" menu="False" model="account.account" name="account.general.ledger.report" string="General ledger"/>
<wizard id="wizard_general_ledger" menu="False" model="account.account" name="account.general.ledger.report" string="General Ledger"/>
<menuitem icon="STOCK_PRINT" action="wizard_general_ledger" id="menu_general_ledger" parent="account.menu_generic_report" type="wizard"/>
<wizard id="wizard_print_journal" menu="False" model="account.journal.period" name="account.print.journal.report" string="Print journal"/>
<menuitem icon="STOCK_PRINT" action="wizard_print_journal" id="menu_print_journal" parent="account.menu_generic_report" type="wizard"/>
<wizard id="wizard_print_journal" menu="False" model="account.journal.period" name="account.print.journal.report" string="Print Journal" />
<menuitem icon="STOCK_PRINT" action="wizard_print_journal" id="menu_print_journal" parent="account.menu_generic_report" type="wizard" />
<wizard id="wizard_central_journal" menu="False" model="account.journal.period" name="account.central.journal.report" string="Print Central journal" />
<menuitem icon="STOCK_PRINT" action="wizard_central_journal" id="menu_central_journal" parent="account.menu_generic_report" type="wizard" />
<wizard id="wizard_general_journal" menu="False" model="account.journal.period" name="account.general.journal.report" string="Print General journal" />
<menuitem icon="STOCK_PRINT" action="wizard_general_journal" id="menu_general_journal" parent="account.menu_generic_report" type="wizard" />
</data>
</openerp>
+12 -24
View File
@@ -142,6 +142,18 @@
<field eval="True" name="required"/>
<field eval="6" name="sequence"/>
</record>
<record id="bank_col17_multi" model="account.journal.column">
<field name="view_id" ref="account_journal_bank_view_multi"/>
<field name="name">Currency Amt.</field>
<field name="field">amount_currency</field>
<field eval="8" name="sequence"/>
</record>
<record id="bank_col18_multi" model="account.journal.column">
<field name="view_id" ref="account_journal_bank_view_multi"/>
<field name="name">Currency</field>
<field name="field">currency_id</field>
<field eval="9" name="sequence"/>
</record>
<record id="bank_col9_multi" model="account.journal.column">
<field name="view_id" ref="account_journal_bank_view_multi"/>
<field name="name">Debit</field>
@@ -154,30 +166,6 @@
<field name="field">credit</field>
<field eval="11" name="sequence"/>
</record>
<record id="bank_col11_multi" model="account.journal.column">
<field name="view_id" ref="account_journal_bank_view_multi"/>
<field name="name">Tax</field>
<field name="field">account_tax_id</field>
<field eval="12" name="sequence"/>
</record>
<record id="bank_col12_multi" model="account.journal.column">
<field name="view_id" ref="account_journal_bank_view_multi"/>
<field name="name">Analytic Account</field>
<field name="field">analytic_account_id</field>
<field eval="13" name="sequence"/>
</record>
<record id="bank_col17_multi" model="account.journal.column">
<field name="view_id" ref="account_journal_bank_view_multi"/>
<field name="name">Currency Amt.</field>
<field name="field">amount_currency</field>
<field eval="14" name="sequence"/>
</record>
<record id="bank_col18_multi" model="account.journal.column">
<field name="view_id" ref="account_journal_bank_view_multi"/>
<field name="name">Currency</field>
<field name="field">currency_id</field>
<field eval="15" name="sequence"/>
</record>
<record id="bank_col3_multi" model="account.journal.column">
<field name="view_id" ref="account_journal_bank_view_multi"/>
<field name="name">Ref</field>
+2 -2
View File
@@ -237,7 +237,7 @@ msgstr "Taxes fournisseurs"
#. module: account
#: rml:account.vat.declaration:0
msgid "Tax Report"
msgstr "Déclaration TVA"
msgstr "Taxes Statement"
#. module: account
#: selection:account.tax.template,type:0
@@ -727,7 +727,7 @@ msgstr "Grand livre analytique"
#. module: account
#: model:ir.actions.wizard,name:account.wizard_vat_declaration
msgid "VAT Declaration"
msgstr "Déclaration TVA"
msgstr "Taxes Statement"
#. module: account
#: model:ir.actions.act_window,name:account.report_account_analytic_journal_tree
+1 -1
View File
@@ -287,7 +287,7 @@ class account_invoice(osv.osv):
pt_obj= self.pool.get('account.payment.term')
if not date_invoice :
date_invoice = self._defaults["date_invoice"](cr,uid,{})
date_invoice = time.strftime('%Y-%m-%d')
pterm_list= pt_obj.compute(cr, uid, payment_term_id, value=1, date_ref=date_invoice)
@@ -17,7 +17,7 @@
<!--COL 1-->
<drawString x="1.0cm" y="28.1cm">[[ company.name ]]</drawString>
<drawRightString x="20cm" y="28.1cm">Analytic Balance</drawRightString>
<drawRightString x="20cm" y="28.1cm">Analytic Balance - [[ company.currency_id.name ]]</drawRightString>
<!-- Header -->
@@ -10,7 +10,7 @@
<!--COL 1-->
<drawString x="1.0cm" y="28.1cm">[[ company.name ]]</drawString>
<drawRightString x="20cm" y="28.1cm">Cost Ledger-[[ company.currency_id.name ]]</drawRightString>
<drawRightString x="20cm" y="28.1cm">Cost Ledger - [[ company.currency_id.name ]]</drawRightString>
<!-- Header -->
@@ -113,13 +113,13 @@
<paraStyle name="terp_header" fontName="Helvetica-Bold" fontSize="12.0" leading="15" alignment="LEFT" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="Heading 9" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_General" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_Details" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_Details" fontName="Helvetica" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_default_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Bold_8" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_tblheader_General_Centre" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_General_Right" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_Details_Centre" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_Details_Right" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_Details_Centre" fontName="Helvetica" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_Details_Right" fontName="Helvetica" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_default_Right_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Centre_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_header_Right" fontName="Helvetica-Bold" fontSize="12.0" leading="15" alignment="RIGHT" spaceBefore="12.0" spaceAfter="6.0"/>
@@ -181,13 +181,13 @@
<blockTable colWidths="178.0,178.0,178.0" style="Table_Sub_Content">
<tr>
<td>
<para style="terp_tblheader_General_Centre">[[ data['form']['date1'] ]]</para>
<para style="terp_default_Centre_8">[[ data['form']['date1'] ]]</para>
</td>
<td>
<para style="terp_tblheader_General_Centre">[[ data['form']['date2'] ]]</para>
<para style="terp_default_Centre_8">[[ data['form']['date2'] ]]</para>
</td>
<td>
<para style="terp_tblheader_General_Centre">[[ time.strftime('%Y-%m-%d') ]] at [[ time.strftime('%H:%M:%S') ]]</para>
<para style="terp_default_Centre_8">[[ time.strftime('%Y-%m-%d') ]] at [[ time.strftime('%H:%M:%S') ]]</para>
</td>
</tr>
</blockTable>
@@ -10,7 +10,7 @@
<!--COL 1-->
<drawString x="1.0cm" y="28.1cm">[[ company.name ]]</drawString>
<drawRightString x="20cm" y="28.1cm">Cost Ledger-[[ company.currency_id.name ]]</drawRightString>
<drawRightString x="20cm" y="28.1cm">Cost Ledger - [[ company.currency_id.name ]]</drawRightString>
<!-- Header -->
@@ -114,13 +114,13 @@
<paraStyle name="terp_header" fontName="Helvetica-Bold" fontSize="12.0" leading="15" alignment="LEFT" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="Heading 9" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_General" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_Details" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_Details" fontName="Helvetica" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_default_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Bold_8" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_tblheader_General_Centre" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_General_Right" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_Details_Centre" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_Details_Right" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_Details_Centre" fontName="Helvetica" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_Details_Right" fontName="Helvetica" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_default_Right_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Centre_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_header_Right" fontName="Helvetica-Bold" fontSize="12.0" leading="15" alignment="RIGHT" spaceBefore="12.0" spaceAfter="6.0"/>
@@ -181,13 +181,13 @@
<blockTable colWidths="161.0,161.0,161.0" style="Table_Date_Content">
<tr>
<td>
<para style="terp_tblheader_General_Centre">[[ data['form']['date1'] ]]</para>
<para style="terp_default_Centre_8">[[ data['form']['date1'] ]]</para>
</td>
<td>
<para style="terp_tblheader_General_Centre">[[ data['form']['date2'] ]]</para>
<para style="terp_default_Centre_8">[[ data['form']['date2'] ]]</para>
</td>
<td>
<para style="terp_tblheader_General_Centre">[[ time.strftime('%Y-%m-%d') ]] at [[ time.strftime('%H:%M:%S') ]]</para>
<para style="terp_default_Centre_8">[[ time.strftime('%Y-%m-%d') ]] at [[ time.strftime('%H:%M:%S') ]]</para>
</td>
</tr>
</blockTable>
+54 -6
View File
@@ -77,6 +77,47 @@ class account_balance(report_sxw.rml_parse):
result+=r[0]+", "
return str(result and result[:-1]) or ''
def transform_both_into_date_array(self,data):
if not data['periods'][0][2] :
periods_id = self.pool.get('account.period').search(self.cr, self.uid, [('fiscalyear_id','=',data['form']['fiscalyear'])])
else:
periods_id = data['periods'][0][2]
date_array = []
for period_id in periods_id:
period_obj = self.pool.get('account.period').browse(self.cr, self.uid, period_id)
date_array = date_array + self.date_range(period_obj.date_start,period_obj.date_stop)
period_start_date = date_array[0]
date_start_date = data['date_from']
period_stop_date = date_array[-1]
date_stop_date = data['date_to']
if period_start_date<date_start_date:
start_date = period_start_date
else :
start_date = date_start_date
if date_stop_date<period_stop_date:
stop_date = period_stop_date
else :
stop_date = date_stop_date
final_date_array = []
final_date_array = final_date_array + self.date_range(start_date, stop_date)
self.date_lst = final_date_array
self.date_lst.sort()
def transform_none_into_date_array(self,data):
sql = "SELECT min(date) as start_date from account_move_line"
self.cr.execute(sql)
start_date = self.cr.fetchone()[0]
sql = "SELECT max(date) as start_date from account_move_line"
self.cr.execute(sql)
stop_date = self.cr.fetchone()[0]
array= []
array = array + self.date_range(start_date, stop_date)
self.date_lst = array
self.date_lst.sort()
def lines(self, form, ids={}, done=None, level=1):
if not ids:
ids = self.ids
@@ -90,14 +131,18 @@ class account_balance(report_sxw.rml_parse):
res={}
result_acc=[]
ctx = self.context.copy()
if form.has_key('fiscalyear'):
if form['state']=='byperiod' :
self.transform_period_into_date_array(form)
ctx['fiscalyear'] = form['fiscalyear']
ctx['periods'] = form['periods'][0][2]
else:
elif form['state']== 'bydate':
self.transform_date_into_date_array(form)
ctx['date_from'] = form['date_from']
ctx['date_to'] = form['date_to']
elif form['state'] == 'all' :
self.transform_both_into_date_array(form)
elif form['state'] == 'none' :
self.transform_none_into_date_array(form)
# ctx['date_from'] = form['date_from']
# ctx['date_to'] = form['date_to']
accounts = self.pool.get('account.account').browse(self.cr, self.uid, ids, ctx)
def cmp_code(x, y):
@@ -169,9 +214,12 @@ class account_balance(report_sxw.rml_parse):
"LEFT JOIN account_journal j " \
"ON (l.journal_id = j.id) " \
"WHERE l.account_id = '"+str(ids)+"' " \
"AND l.date IN (" + self.date_lst_string + ") " \
"AND l.date >= '"+self.date_lst[0]+"' " \
"AND l.date <= '"+self.date_lst[-1]+"' " \
"ORDER BY l.id")
res = self.cr.dictfetchall()
sum = 0.0
for r in res:
sum = r['debit1'] - r['credit1']
@@ -227,5 +275,5 @@ class account_balance(report_sxw.rml_parse):
def _sum_debit(self):
return self.sum_debit
report_sxw.report_sxw('report.account.account.balance', 'account.account', 'addons/account/report/account_balance.rml', parser=account_balance, header=False)
report_sxw.report_sxw('report.account.account.balance', 'account.account', 'addons/account/report/account_balance.rml', parser=account_balance, header=False)
+18 -5
View File
@@ -43,20 +43,33 @@ class journal_print(report_sxw.rml_parse):
'sum_debit': self._sum_debit,
'sum_credit': self._sum_credit
})
def lines(self, period_id, journal_id, *args):
if type(period_id)==type([]):
ids_final = []
for journal in journal_id:
for period in period_id:
ids_journal_period = self.pool.get('account.journal.period').search(self.cr,self.uid, [('journal_id','=',journal),('period_id','=',period)])
if ids_journal_period:
self.cr.execute('select a.code, a.name, sum(debit) as debit, sum(credit) as credit from account_move_line l left join account_account a on (l.account_id=a.id) where l.period_id=%d and l.journal_id=%d and l.state<>\'draft\' group by a.id, a.code, a.name, l.journal_id, l.period_id', (period, journal))
res = self.cr.dictfetchall()
a = {'journal':self.pool.get('account.journal').browse(self.cr, self.uid, journal),'period':self.pool.get('account.period').browse(self.cr, self.uid, period)}
res[0].update(a)
ids_final.append(res)
return ids_final
self.cr.execute('select a.code, a.name, sum(debit) as debit, sum(credit) as credit from account_move_line l left join account_account a on (l.account_id=a.id) where l.period_id=%d and l.journal_id=%d and l.state<>\'draft\' group by a.id, a.code, a.name', (period_id, journal_id))
return self.cr.dictfetchall()
res = self.cr.dictfetchall()
return res
def _sum_debit(self, period_id, journal_id):
self.cr.execute('select sum(debit) from account_move_line where period_id=%d and journal_id=%d and state<>\'draft\'', (period_id, journal_id))
return self.cr.fetchone()[0] or 0.0
def _sum_credit(self, period_id, journal_id):
self.cr.execute('select sum(credit) from account_move_line where period_id=%d and journal_id=%d and state<>\'draft\'', (period_id, journal_id))
return self.cr.fetchone()[0] or 0.0
report_sxw.report_sxw('report.account.central.journal', 'account.journal.period', 'addons/account/report/central_journal.rml',parser=journal_print, header=False)
report_sxw.report_sxw('report.account.central.journal.wiz', 'account.journal.period', 'addons/account/report/wizard_central_journal.rml',parser=journal_print, header=False)
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+7 -7
View File
@@ -10,7 +10,7 @@
<!--COL 1-->
<drawString x="1.0cm" y="28.1cm">[[ company.name ]]</drawString>
<drawRightString x="20cm" y="28.1cm">Central Journal-[[ company.currency_id.name ]]</drawRightString>
<drawRightString x="20cm" y="28.1cm">Central Journal - [[ company.currency_id.name ]]</drawRightString>
<!-- Header -->
@@ -103,13 +103,13 @@
<paraStyle name="terp_header" fontName="Helvetica-Bold" fontSize="12.0" leading="15" alignment="LEFT" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="Heading 9" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_General" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_Details" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_Details" fontName="Helvetica" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_default_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Bold_8" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_tblheader_General_Centre" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_General_Right" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_Details_Centre" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_Details_Right" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_Details_Centre" fontName="Helvetica" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_Details_Right" fontName="Helvetica" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_default_Right_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Centre_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_header_Right" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="LEFT" spaceBefore="12.0" spaceAfter="6.0"/>
@@ -162,13 +162,13 @@
<blockTable colWidths="180.0,180.0,180.0" style="Table_Subheader_Content_detail">
<tr>
<td>
<para style="terp_tblheader_General_Centre">[[ o.journal_id.code or '' ]]</para>
<para style="terp_default_Centre_8">[[ o.journal_id.code or '' ]]</para>
</td>
<td>
<para style="terp_tblheader_General_Centre">[[ o.journal_id.name ]]</para>
<para style="terp_default_Centre_8">[[ o.journal_id.name ]]</para>
</td>
<td>
<para style="terp_tblheader_General_Centre">[[ time.strftime('%Y-%m-%d') ]] at [[ time.strftime('%H:%M:%S') ]]</para>
<para style="terp_default_Centre_8">[[ time.strftime('%Y-%m-%d') ]] at [[ time.strftime('%H:%M:%S') ]]</para>
</td>
</tr>
</blockTable>
+47 -12
View File
@@ -66,38 +66,73 @@ class journal_print(report_sxw.rml_parse):
return not res
filtered_objs = filter(filter_unique, journal_period_objs)
return map(lambda x: x.period_id, filtered_objs)
def lines(self, period_id):
def lines(self, period_id, journal_id=[]):
if type(period_id)==type([]):
ids_final = []
for journal in journal_id:
for period in period_id:
ids_journal_period = self.pool.get('account.journal.period').search(self.cr,self.uid, [('journal_id','=',journal),('period_id','=',period)])
if ids_journal_period:
ids_final.append(ids_journal_period[0])
data_jour_period = self.pool.get('account.journal.period').browse(self.cr, self.uid, ids_final)
lines_data = []
periods = []
for data in data_jour_period:
if not data.period_id.id in periods:
periods.append(data.period_id.id)
for period in periods:
period_data = self.pool.get('account.period').browse(self.cr, self.uid, period)
self.cr.execute('select j.code, j.name, sum(l.debit) as debit, sum(l.credit) as credit from account_move_line l left join account_journal j on (l.journal_id=j.id) where period_id=%d and journal_id in (' + ','.join(map(str, journal_id)) + ') and l.state<>\'draft\' group by j.id, j.code, j.name', (period,))
res = self.cr.dictfetchall()
res[0].update({'period_name':period_data.name})
res[0].update({'pid':period})
lines_data.append(res)
return lines_data
if not self.journal_ids:
return []
self.cr.execute('select j.code, j.name, sum(l.debit) as debit, sum(l.credit) as credit from account_move_line l left join account_journal j on (l.journal_id=j.id) where period_id=%d and journal_id in (' + self.journal_ids + ') and l.state<>\'draft\' group by j.id, j.code, j.name', (period_id,))
return self.cr.dictfetchall()
def _sum_debit_period(self, period_id):
res = self.cr.dictfetchall()
return res
def _sum_debit_period(self, period_id,journal_id=None):
if type(journal_id)==type([]):
self.cr.execute('select sum(debit) from account_move_line where period_id=%d and journal_id in (' + ','.join(map(str, journal_id)) + ') and state<>\'draft\'', (period_id,))
return self.cr.fetchone()[0] or 0.0
if not self.journal_ids:
return 0.0
self.cr.execute('select sum(debit) from account_move_line where period_id=%d and journal_id in (' + self.journal_ids + ') and state<>\'draft\'', (period_id,))
return self.cr.fetchone()[0] or 0.0
def _sum_credit_period(self, period_id):
def _sum_credit_period(self, period_id,journal_id=None):
if type(journal_id)==type([]):
self.cr.execute('select sum(credit) from account_move_line where period_id=%d and journal_id in (' + ','.join(map(str, journal_id)) + ') and state<>\'draft\'', (period_id,))
return self.cr.fetchone()[0] or 0.0
if not self.journal_ids:
return 0.0
self.cr.execute('select sum(credit) from account_move_line where period_id=%d and journal_id in (' + self.journal_ids + ') and state<>\'draft\'', (period_id,))
return self.cr.fetchone()[0] or 0.0
def _sum_debit(self):
def _sum_debit(self,period_id=None,journal_id=None):
if type(period_id)==type([]):
self.cr.execute('select sum(debit) from account_move_line where period_id in (' + ','.join(map(str, period_id)) + ') and journal_id in (' + ','.join(map(str, journal_id)) + ') and state<>\'draft\'')
return self.cr.fetchone()[0] or 0.0
if not self.journal_ids or not self.period_ids:
return 0.0
self.cr.execute('select sum(debit) from account_move_line where period_id in (' + self.period_ids + ') and journal_id in (' + self.journal_ids + ') and state<>\'draft\'')
return self.cr.fetchone()[0] or 0.0
def _sum_credit(self):
def _sum_credit(self,period_id=None,journal_id=None):
if type(period_id)==type([]):
self.cr.execute('select sum(credit) from account_move_line where period_id in (' + ','.join(map(str, period_id)) + ') and journal_id in (' + ','.join(map(str, journal_id)) + ') and state<>\'draft\'')
return self.cr.fetchone()[0] or 0.0
if not self.journal_ids or not self.period_ids:
return 0.0
self.cr.execute('select sum(credit) from account_move_line where period_id in (' + self.period_ids + ') and journal_id in (' + self.journal_ids + ') and state<>\'draft\'')
return self.cr.fetchone()[0] or 0.0
report_sxw.report_sxw('report.account.general.journal', 'account.journal.period', 'addons/account/report/general_journal.rml',parser=journal_print, header=False)
report_sxw.report_sxw('report.account.general.journal.wiz', 'account.journal.period', 'addons/account/report/wizard_general_journal.rml',parser=journal_print, header=False)
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+4 -4
View File
@@ -82,13 +82,13 @@
<paraStyle name="terp_header" fontName="Helvetica-Bold" fontSize="12.0" leading="15" alignment="LEFT" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="Heading 9" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_General" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_Details" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_Details" fontName="Helvetica" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_default_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Bold_8" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_tblheader_General_Centre" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_General_Right" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_Details_Centre" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_Details_Right" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_Details_Centre" fontName="Helvetica" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_Details_Right" fontName="Helvetica" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_default_Right_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Centre_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_header_Right" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="LEFT" spaceBefore="12.0" spaceAfter="6.0"/>
@@ -130,7 +130,7 @@
<para style="terp_default_Bold_9">Printing Date :</para>
</td>
<td>
<para style="terp_default_Bold_9">[[ time.strftime('%Y-%m-%d') ]] at [[ time.strftime('%H:%M:%S') ]]</para>
<para style="terp_default_9">[[ time.strftime('%Y-%m-%d') ]] at [[ time.strftime('%H:%M:%S') ]]</para>
</td>
</tr>
</blockTable>
+89 -25
View File
@@ -32,6 +32,7 @@ from report import report_sxw
import xml
import rml_parse
import pooler
from osv import osv
class general_ledger(rml_parse.rml_parse):
_name = 'report.account.general.ledger'
@@ -40,7 +41,11 @@ class general_ledger(rml_parse.rml_parse):
def preprocess(self, objects, data, ids):
##
self.borne_date = self.get_min_date(data['form'])
##
new_ids = []
if (data['model'] == 'account.account'):
@@ -54,6 +59,7 @@ class general_ledger(rml_parse.rml_parse):
def __init__(self, cr, uid, name, context):
super(general_ledger, self).__init__(cr, uid, name, context)
self.date_borne = {}
self.query = ""
self.child_ids = ""
self.tot_currency = 0.0
@@ -109,6 +115,7 @@ class general_ledger(rml_parse.rml_parse):
return result
def get_children_accounts(self, account, form):
self.child_ids = self.pool.get('account.account').search(self.cr, self.uid,
[('parent_id', 'child_of', self.ids)])
res = []
@@ -116,21 +123,25 @@ class general_ledger(rml_parse.rml_parse):
## We will make the test for period or date
## We will now make the test
#
if form.has_key('fiscalyear'):
if form.has_key('fiscalyear'):
ctx['fiscalyear'] = form['fiscalyear']
ctx['periods'] = form['periods'][0][2]
else:
ctx['date_from'] = form['date_from']
ctx['date_to'] = form['date_to']
##
#
#
self.query = self.pool.get('account.move.line')._query_get(self.cr, self.uid, context=ctx)
for child_id in self.pool.get('account.account').search(self.cr, self.uid,
[('parent_id', 'child_of', [account.id])]):
child_account = self.pool.get('account.account').browse(self.cr, self.uid, child_id)
sold_account = self._sum_solde_account(child_account,form)
self.sold_accounts[child_account.id] = sold_account
if form['display_account'] == 'bal_mouvement':
if child_account.type != 'view' \
and len(self.pool.get('account.move.line').search(self.cr, self.uid,
@@ -153,16 +164,24 @@ class general_ledger(rml_parse.rml_parse):
res.append(child_account)
##
if form['soldeinit']:
## We will now compute solde initiaux
## We will now compute solde initiaux
if not len(res):
return[account]
else:
for move in res:
SOLDEINIT = "SELECT sum(l.debit) AS sum_debit, sum(l.credit) AS sum_credit FROM account_move_line l WHERE l.account_id = " + str(move.id) + " AND l.date < '" + self.borne_date['max_date'] + "'" + " AND l.date > '" + self.borne_date['min_date'] + "'"
SOLDEINIT = "SELECT sum(l.debit) AS sum_debit, sum(l.credit) AS sum_credit FROM account_move_line l WHERE l.account_id = " + str(move.id) + " AND l.date <= '" + self.borne_date['max_date'] + "'" + " AND l.date >= '" + self.borne_date['min_date'] + "'"
self.cr.execute(SOLDEINIT)
resultat = self.cr.dictfetchall()
resultat = self.cr.dictfetchall()
if resultat[0] :
if resultat[0]['sum_debit'] == None:
sum_debit = 0
else:
sum_debit = resultat[0]['sum_debit']
if resultat[0]['sum_credit'] == None:
sum_credit = 0
@@ -175,47 +194,83 @@ class general_ledger(rml_parse.rml_parse):
else:
move.init_credit = 0
move.init_debit = 0
##
return res
def get_min_date(self,form):
## Get max born from account_fiscal year
#
sql = """ select min(fy.date_start) from account_fiscalyear
sql = """ select min(fy.date_start) as start_date,max(fy.date_stop) as stop_date from account_fiscalyear
As fy where fy.state <> 'close'
"""
self.cr.execute(sql)
res = self.cr.dictfetchall()
borne_min = res[0]['min']
#
##
if form.has_key('fiscalyear'):
borne_min = res[0]['start_date']
borne_max = res[0]['stop_date']
if form['state'] == 'byperiod':
## This function will return the most aged date
periods = form['periods'][0][2]
if not periods:
sql = """
Select min(p.date_start) from account_period as p where p.fiscalyear_id = """ + str(form['fiscalyear']) + """
Select min(p.date_start) as start_date,max(p.date_stop) as stop_date from account_period as p where p.fiscalyear_id = """ + str(form['fiscalyear']) + """
"""
else:
periods_id = ','.join(map(str, periods))
sql = """
Select min(p.date_start) from account_period as p where p.id in ( """ + periods_id + """)
Select min(p.date_start) as start_date,max(p.date_stop) as stop_date from account_period as p where p.id in ( """ + periods_id + """)
"""
self.cr.execute(sql)
res = self.cr.dictfetchall()
borne_max = res[0]['min']
else:
borne_max = form['date_from']
date_borne = {
borne_min = res[0]['start_date']
borne_max = res[0]['stop_date']
elif form['state'] == 'bydate':
borne_min = form['date_from']
borne_max = form['date_to']
elif form['state'] == 'all':
periods = form['periods'][0][2]
if not periods:
sql = """
Select min(p.date_start) as start_date,max(p.date_stop) as stop_date from account_period as p where p.fiscalyear_id = """ + str(form['fiscalyear']) + """
"""
else:
periods_id = ','.join(map(str, periods))
sql = """
Select min(p.date_start) as start_date,max(p.date_stop) as stop_date from account_period as p where p.id in ( """ + periods_id + """)
"""
self.cr.execute(sql)
res = self.cr.dictfetchall()
period_min = res[0]['start_date']
period_max = res[0]['stop_date']
date_min = form['date_from']
date_max = form['date_to']
if period_min<date_min:
borne_min = period_min
else :
borne_min = date_min
if date_max<period_max:
borne_max = period_max
else :
borne_max = date_max
elif form['state'] == 'none':
sql = """
SELECT min(date) as start_date,max(date) as stop_date FROM account_move_line """
self.cr.execute(sql)
res = self.cr.dictfetchall()
borne_min = res[0]['start_date']
borne_max = res[0]['stop_date']
self.date_borne = {
'min_date': borne_min,
'max_date': borne_max,
}
return date_borne
return self.date_borne
def lines(self, account, form):
inv_types = {
'out_invoice': 'CI: ',
'in_invoice': 'SI: ',
@@ -223,18 +278,27 @@ class general_ledger(rml_parse.rml_parse):
'in_refund': 'SR: ',
}
### We will now compute solde initaux
if form['sortbydate'] == 'sort_date':
sorttag = 'l.date'
else:
sorttag = 'j.code'
sql = """
SELECT l.id, l.date, j.code,c.code AS currency_code,l.amount_currency,l.ref, l.name , l.debit, l.credit, l.period_id
FROM account_move_line l LEFT JOIN res_currency c on (l.currency_id=c.id) JOIN account_journal j on (l.journal_id=j.id)
AND account_id = %d AND %s
ORDER by %s"""%(account.id,self.query,sorttag)
SELECT l.id, l.date, j.code,c.code AS currency_code,l.amount_currency,l.ref, l.name , l.debit, l.credit, l.period_id
FROM account_move_line as l
LEFT JOIN res_currency c on (l.currency_id=c.id)
JOIN account_journal j on (l.journal_id=j.id)
AND account_id = %d
AND %s
WHERE l.date<='%s'
AND l.date>='%s'
ORDER by %s"""%(account.id,self.query,self.date_borne['max_date'],self.date_borne['min_date'],sorttag)
self.cr.execute(sql)
res = self.cr.dictfetchall()
res = self.cr.dictfetchall()
sum = 0.0
account_move_line_obj = pooler.get_pool(self.cr.dbname).get('account.move.line')
for l in res:
+69 -228
View File
@@ -35,16 +35,15 @@
<blockTableStyle id="tbl_header">
<lineStyle kind="LINEBELOW" colorName="#000000" start="0,0" stop="-1,0"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,2" stop="-1,-1"/>
<blockValign value="TOP"/>
<blockAlignment value="RIGHT" start="2,1" stop="-1,-1"/>
</blockTableStyle>
<blockTableStyle id="tbl_content">
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,1" stop="-1,-1"/>
<blockValign value="TOP"/>
<blockAlignment value="RIGHT" start="2,1" stop="-1,-1"/>
</blockTableStyle>
@@ -91,244 +90,86 @@
<paraStyle name="Index" fontName="Helvetica"/>
</stylesheet>
<story>
<blockTable colWidths="54.0,135.0,70.0,40.0,80.0,59.0,52.0,54.0" style="tbl_header" repeatRows="1">[[ data['form']['amount_currency'] == False or removeParentNode('blockTable') ]]
<tr>
<td>
<para style="P3_centre">Date</para>
</td>
<td>
<para style="P3">Partner</para>
</td>
<td>
<para style="P3">Ref</para>
</td>
<td>
<para style="P3">Mvt</para>
</td>
<td>
<para style="P3">Entry Label</para>
</td>
<td>
<para style="P4">Debit</para>
</td>
<td>
<para style="P4">Crebit</para>
</td>
<td>
<para style="P9">Balance</para>
</td>
<td><para style="P3">Date</para></td>
<td><para style="P3">Partner</para></td>
<td><para style="P3">Ref</para></td>
<td><para style="P3">Mvt</para></td>
<td><para style="P3">Entry Label</para></td>
<td><para style="P4">Debit</para></td>
<td><para style="P4">Crebit</para></td>
<td><para style="P9">Balance</para></td>
</tr>
<para>[[ repeatIn(objects, 'a') ]]</para>
<para>[[ repeatIn(get_children_accounts(a,data['form']), 'o') ]]</para>
<tr>
<para>[[ repeatIn(objects, 'a') ]]</para>
<para>[[ repeatIn(get_children_accounts(a,data['form']), 'o') ]]</para>
<td>
<blockTable colWidths="48.0,135.0,70.0,40.0,80.0,59.0,52.0,54.0" style="tbl_content">
<tr>
<td>
<blockTable colWidths="273.00,100.0,52.5,52.5,52.5" style="Table5">
<tr>
<td><para style="Standard">[[ o.code ]] [[ o.name ]]</para></td>
<td><para style="Standard"></para></td>
<td alignment="right">
<para style="P9b"><u>[[ sum_debit_account(o, data['form']) or '0.0' ]]</u></para>
</td>
<td alignment="right">
<para style="P9b"><u>[[sum_credit_account(o, data['form']) or '0.0' ]]</u></para>
</td>
<td>
<para style="P9b"><u>[[sum_solde_account(o, data['form']) or '0.0' ]]</u></para>
</td>
</tr>
</blockTable>
</td>
</tr>
<tr>
[[ data['form']['soldeinit'] == True or removeParentNode('tr') ]]
<td>
<para style="P16"></para>
</td>
<td>
<para style="P3">Balance Initial</para>
</td>
<td>
<para style="P3"></para>
</td>
<td>
<para style="P3"></para>
</td>
<td>
<para style="P3"></para>
</td>
<td>
<para style="P4">[[ o.init_debit or '0.0' ]]</para>
</td>
<td>
<para style="P4">[[ o.init_credit or '0.0' ]]</para>
</td>
<td>
<para style="P4">[[ (o.init_debit - o.init_credit) or '0.0' ]]</para>
</td>
</tr>
<tr>[[ repeatIn(lines(o, data['form']), 'line') ]]
<td>
<para style="P3">[[ line['date'] ]]</para>
</td>
<td>
<para style="P3">[[ line['partner'] ]]</para>
</td>
<td>
<para style="P3">[[ line['ref'] ]]</para>
</td>
<td>
<para style="P3">[[ line['move'] ]]</para>
</td>
<td>
<para style="P3">[[ line['name'] ]]</para>
</td>
<td>
<para style="P4">[[ line['debit'] and line['debit'] or '0.0' ]]</para>
</td>
<td>
<para style="P4">[[ line['credit'] and line['credit'] or '0.0' ]]</para>
</td>
<td>
<para style="P4">[[ line['progress'] and line['progress'] or '0.0' ]]</para>
</td>
</tr>
</blockTable>
</td>
<blockTable colWidths="280.0,100.0,52.5,52.5,52.5" style="Table5">
<tr>
<td><para style="Standard">[[ o.code or '']] [[ o.name or '']]</para></td>
<td><para style="Standard"></para></td>
<td alignment="right"><para style="P9b"><u>[[ sum_debit_account(o, data['form']) or '0.0' ]]</u></para></td>
<td alignment="right"><para style="P9b"><u>[[sum_credit_account(o, data['form']) or '0.0' ]]</u></para></td>
<td><para style="P9b"><u>[[sum_solde_account(o, data['form']) or '0.0' ]]</u></para></td>
</tr>
</blockTable>
</td>
</tr>
<tr>[[ repeatIn(lines(o, data['form']), 'line') ]]
<td><para style="P3">[[ line['date'] or '' ]]</para></td>
<td><para style="P3">[[ line['partner'] or '']]</para></td>
<td><para style="P3">[[ line['ref'] or '']]</para></td>
<td><para style="P3">[[ line['move'] or '']]</para></td>
<td><para style="P3">[[ line['name'] or '' ]]</para></td>
<td><para style="P4">[[ line['debit'] and line['debit'] or '0.0' ]]</para></td>
<td><para style="P4">[[ line['credit'] and line['credit'] or '0.0' ]]</para></td>
<td><para style="P4">[[ line['progress'] and line['progress'] or '0.0' ]]</para></td>
</tr>
</blockTable>
<blockTable colWidths="59.0,105.0,66.0,40.0,100.0,50.0,50.0,50.0,40.0" style="tbl_header" repeatRows="1">[[ data['form']['amount_currency'] == True or removeParentNode('blockTable') ]]
<tr>
<td>
<para style="P3_centre">Date</para>
</td>
<td>
<para style="P3">Partner</para>
</td>
<td>
<para style="P3">Ref</para>
</td>
<td>
<para style="P3">Mvt</para>
</td>
<td>
<para style="P3">Entry Label</para>
</td>
<td>
<para style="P4">Debit</para>
</td>
<td>
<para style="P4">Crebit</para>
</td>
<td>
<para style="P4">Balance</para>
</td>
<td>
<para style="P4">Currency</para>
</td>
</tr>
<blockTable colWidths="59.0,105.0,66.0,40.0,100.0,50.0,50.0,50.0,40.0" style="tbl_header" repeatRows="1">[[ data['form']['amount_currency'] == True or removeParentNode('blockTable') ]]
<tr>
<td><para style="P3">Date</para></td>
<td><para style="P3">Partner</para></td>
<td><para style="P3">Ref</para></td>
<td><para style="P3">Mvt</para></td>
<td><para style="P3">Entry Label</para></td>
<td><para style="P4">Debit</para></td>
<td><para style="P4">Crebit</para></td>
<td><para style="P4">Balance</para></td>
<td><para style="P4">Currency</para></td>
</tr>
<para>[[ repeatIn(objects, 'a') ]]</para>
<para>[[ repeatIn(get_children_accounts(a,data['form']), 'o') ]]</para>
<td>
<blockTable colWidths="54.0,105.0,66.0,40.0,100.0,50.0,50.0,50.0,40.0" style="tbl_content" >
<tr>
<td>
<blockTable colWidths="259.00,100.0,50.0,50.0,49.0,40.00" style="Table5">
<tr>
<td><para style="Standard">[[ o.code ]] [[ o.name ]]</para></td>
<td><para style="Standard"></para></td>
<td alignment="right">
<para style="P9b"><u>[[ sum_debit_account(o, data['form']) or '0.0' ]]</u></para>
</td>
<td alignment="right">
<para style="P9b"><u>[[sum_credit_account(o, data['form']) or '0.0' ]]</u></para>
</td>
<td>
<para style="P9b"><u>[[sum_solde_account(o, data['form']) or '0.0' ]]</u></para>
</td>
<td>
<para style="P9b"><u> [[ sum_currency_amount_account(a, data['form']) or '0.0' ]]</u></para>
</td>
</tr>
</blockTable>
</td>
</tr>
<tr>[[ data['form']['soldeinit'] == True or removeParentNode('tr') ]]
<td>
<para style="P16"></para>
</td>
<td>
<para style="P3">Balance Initial</para>
</td>
<td>
<para style="P3"></para>
</td>
<td>
<para style="P3"></para>
</td>
<td>
<para style="P3"></para>
</td>
<td>
<para style="P4">[[ o.init_debit or '0.0' ]]</para>
</td>
<td>
<para style="P4">[[ o.init_credit or '0.0' ]]</para>
</td>
<td>
<para style="P4">[[ (o.init_debit - o.init_credit) or '0.0' ]]</para>
</td>
<td>
<para style="P4"> </para>
</td>
<para>[[ repeatIn(get_children_accounts(a,data['form']), 'o') ]]</para>
<tr>
<td>
<blockTable colWidths="264.00,100.0,50.0,50.0,49.0,40.00" style="Table5">
<tr>
<td><para style="Standard">[[ o.code or '' ]] [[ o.name or '' ]]</para></td>
<td><para style="Standard"></para></td>
<td alignment="right"><para style="P9b"><u>[[ sum_debit_account(o, data['form']) or '0.0' ]]</u></para></td>
<td alignment="right"><para style="P9b"><u>[[sum_credit_account(o, data['form']) or '0.0' ]]</u></para></td>
<td><para style="P9b"><u>[[sum_solde_account(o, data['form']) or '0.0' ]]</u></para></td>
<td><para style="P9b"><u> [[ sum_currency_amount_account(a, data['form']) or '0.0' ]]</u></para></td>
</tr>
</blockTable>
</td>
</tr>
<tr>[[ repeatIn(lines(o, data['form']), 'line') ]]
<td>
<para style="P3">[[ line['date'] ]]</para>
</td>
<td>
<para style="P3">[[ line['partner'] ]]</para>
</td>
<td>
<para style="P3">[[ line['ref'] ]]</para>
</td>
<td>
<para style="P3">[[ line['move'] ]]</para>
</td>
<td>
<para style="P3">[[ line['name'] ]]</para>
</td>
<td>
<para style="P4">[[ line['debit'] and line['debit'] or '0.0' ]]</para>
</td>
<td>
<para style="P4">[[ line['credit'] and line['credit'] or '0.0' ]]</para>
</td>
<td>
<para style="P4">[[ line['progress'] and line['progress'] or '0.0' ]]</para>
</td>
<td>
<para style="P4">[[ line['amount_currency'] or '0.0' ]] [[ line['currency_code'] ]]</para>
</td>
<tr>[[ repeatIn(lines(o, data['form']), 'line') ]]
<td><para style="P3">[[ line['date'] or '' ]]</para></td>
<td><para style="P3">[[ line['partner'] or '' ]]</para></td>
<td><para style="P3">[[ line['ref'] or '']]</para></td>
<td><para style="P3">[[ line['move'] or '' ]]</para></td>
<td><para style="P3">[[ line['name'] or '' ]]</para></td>
<td><para style="P4">[[ line['debit'] and line['debit'] or '0.0' ]]</para></td>
<td><para style="P4">[[ line['credit'] and line['credit'] or '0.0' ]]</para></td>
<td><para style="P4">[[ line['progress'] and line['progress'] or '0.0' ]]</para></td>
<td><para style="P4">[[ line['amount_currency'] or '0.0' ]] [[ line['currency_code'] or '']]</para></td>
</tr>
</blockTable>
</td>
</tr>
</blockTable>
</blockTable>
</story>
@@ -53,6 +53,7 @@ class general_ledger_landscape(rml_parse.rml_parse):
def __init__(self, cr, uid, name, context):
super(general_ledger_landscape, self).__init__(cr, uid, name, context)
self.date_borne = {}
self.query = ""
self.child_ids = ""
self.tot_currency = 0.0
@@ -106,44 +107,80 @@ class general_ledger_landscape(rml_parse.rml_parse):
return result
def get_min_date(self,form):
## Get max born from account_fiscal year
#
sql = """ select min(fy.date_start) from account_fiscalyear
sql = """ select min(fy.date_start) as start_date,max(fy.date_stop) as stop_date from account_fiscalyear
As fy where fy.state <> 'close'
"""
self.cr.execute(sql)
res = self.cr.dictfetchall()
borne_min = res[0]['min']
#
##
if form.has_key('fiscalyear'):
borne_min = res[0]['start_date']
borne_max = res[0]['stop_date']
if form['state'] == 'byperiod':
## This function will return the most aged date
periods = form['periods'][0][2]
if not periods:
sql = """
Select min(p.date_start) from account_period as p where p.fiscalyear_id = """ + str(form['fiscalyear']) + """
Select min(p.date_start) as start_date,max(p.date_stop) as stop_date from account_period as p where p.fiscalyear_id = """ + str(form['fiscalyear']) + """
"""
else:
else:
periods_id = ','.join(map(str, periods))
sql = """
Select min(p.date_start) from account_period as p where p.id in ( """ + periods_id + """)
Select min(p.date_start) as start_date,max(p.date_stop) as stop_date from account_period as p where p.id in ( """ + periods_id + """)
"""
self.cr.execute(sql)
res = self.cr.dictfetchall()
borne_max = res[0]['min']
else:
borne_max = form['date_from']
date_borne = {
borne_min = res[0]['start_date']
borne_max = res[0]['stop_date']
elif form['state'] == 'bydate':
borne_min = form['date_from']
borne_max = form['date_to']
elif form['state'] == 'all':
periods = form['periods'][0][2]
if not periods:
sql = """
Select min(p.date_start) as start_date,max(p.date_stop) as stop_date from account_period as p where p.fiscalyear_id = """ + str(form['fiscalyear']) + """
"""
else:
periods_id = ','.join(map(str, periods))
sql = """
Select min(p.date_start) as start_date,max(p.date_stop) as stop_date from account_period as p where p.id in ( """ + periods_id + """)
"""
self.cr.execute(sql)
res = self.cr.dictfetchall()
period_min = res[0]['start_date']
period_max = res[0]['stop_date']
date_min = form['date_from']
date_max = form['date_to']
if period_min<date_min:
borne_min = period_min
else :
borne_min = date_min
if date_max<period_max:
borne_max = period_max
else :
borne_max = date_max
elif form['state'] == 'none':
sql = """
SELECT min(date) as start_date,max(date) as stop_date FROM account_move_line """
self.cr.execute(sql)
res = self.cr.dictfetchall()
borne_min = res[0]['start_date']
borne_max = res[0]['stop_date']
self.date_borne = {
'min_date': borne_min,
'max_date': borne_max,
}
return date_borne
return self.date_borne
def get_children_accounts(self, account, form):
self.child_ids = self.pool.get('account.account').search(self.cr, self.uid,
[('parent_id', 'child_of', self.ids)])
#
@@ -187,7 +224,10 @@ class general_ledger_landscape(rml_parse.rml_parse):
context=ctx)) <> 0 :
res.append(child_account)
##
if form['soldeinit']:
if not len(res):
return [account]
else:
## We will now compute solde initiaux
for move in res:
SOLDEINIT = "SELECT sum(l.debit) AS sum_debit, sum(l.credit) AS sum_credit FROM account_move_line l WHERE l.account_id = " + str(move.id) + " AND l.date < '" + self.borne_date['max_date'] + "'" + " AND l.date > '" + self.borne_date['min_date'] + "'"
@@ -210,7 +250,7 @@ class general_ledger_landscape(rml_parse.rml_parse):
move.init_credit = 0
move.init_debit = 0
##
return res
def lines(self, account, form):
@@ -226,12 +266,19 @@ class general_ledger_landscape(rml_parse.rml_parse):
else:
sorttag = 'j.code'
sql = """
SELECT l.id, l.date, j.code,c.code AS currency_code,l.amount_currency,l.ref, l.name, l.debit, l.credit, l.period_id
FROM account_move_line l LEFT JOIN res_currency c on (l.currency_id=c.id) JOIN account_journal j on (l.journal_id=j.id)
AND account_id = %d AND %s
ORDER by %s"""%(account.id,self.query,sorttag)
SELECT l.id, l.date, j.code,c.code AS currency_code,l.amount_currency,l.ref, l.name , l.debit, l.credit, l.period_id
FROM account_move_line as l
LEFT JOIN res_currency c on (l.currency_id=c.id)
JOIN account_journal j on (l.journal_id=j.id)
AND account_id = %d
AND %s
WHERE l.date<='%s'
AND l.date>='%s'
ORDER by %s"""%(account.id,self.query,self.date_borne['max_date'],self.date_borne['min_date'],sorttag)
self.cr.execute(sql)
res = self.cr.dictfetchall()
res = self.cr.dictfetchall()
sum = 0.0
account_move_line_obj = pooler.get_pool(self.cr.dbname).get('account.move.line')
for l in res:
@@ -37,9 +37,8 @@
<blockTableStyle id="tbl_header">
<lineStyle kind="LINEBELOW" colorName="#000000" start="0,0" stop="-1,0"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,2" stop="-1,-1"/>
<blockValign value="TOP"/>
<blockAlignment value="RIGHT" start="2,1" stop="-1,-1"/>
</blockTableStyle>
<blockTableStyle id="tbl_content">
@@ -92,335 +91,93 @@
<paraStyle name="Index" fontName="Helvetica"/>
</stylesheet>
<story>
<blockTable colWidths="55.0,35.0,150.0, 90.0,60.0,345.0,50.0,69.0,72.0,64.0,58.0" style="tbl_header" repeatRows="1">[[ data['form']['amount_currency'] == True or removeParentNode('blockTable') ]]
<blockTable colWidths="55.0,35.0,150.0, 90.0,60.0,345.0,50.0,69.0,72.0,64.0,58.0" style="tbl_header" repeatRows="1">[[ data['form']['amount_currency'] == True or removeParentNode('blockTable') ]]
<tr>
<td><para style="P12"><font color="white"> </font></para><para style="P2">Date</para></td>
<td><para style="P12"><font color="white"> </font></para><para style="P2">JNRL</para></td>
<td><para style="P12"><font color="white"> </font></para><para style="P2">Partner</para></td>
<td><para style="P12"><font color="white"> </font></para><para style="P2">Ref</para></td>
<td><para style="P12"><font color="white"> </font></para><para style="P2">Mvt</para></td>
<td><para style="P12"><font color="white"> </font></para><para style="P3">Entry Label</para></td>
<td><para style="P12"><font color="white"> </font> </para><para style="P3">Counterpart</para></td>
<td><para style="P12"><font color="white"> </font></para><para style="P4">Debit</para></td>
<td><para style="P12"><font color="white"> </font></para><para style="P4">Credit</para></td>
<td><para style="P12"><font color="white"> </font></para><para style="P4">Balance</para></td>
<td><para style="P12"><font color="white"> </font></para><para style="P4">Currency</para></td>
</tr>
<para>[[ repeatIn(objects, 'a') ]]</para>
<para>[[ repeatIn(get_children_accounts(a,data['form']), 'o') ]]</para>
<tr>
<td>
<blockTable colWidths="404.0,375.0,69.0,72.0,64.0,59.00" style="Table5">
<tr>
<td><para style="Standard">[[ o.code ]] [[ o.name ]]</para></td>
<td><para style="Standard"></para></td>
<td alignment="right"><para style="P9b"><u>[[ sum_debit_account(o, data['form']) or '0.0' ]]</u></para></td>
<td alignment="right"><para style="P9b"><u>[[ sum_credit_account(o, data['form']) or '0.0' ]]</u></para></td>
<td><para style="P9b"><u>[[ sum_solde_account(o, data['form']) or '0.0' ]]</u></para></td>
<td><para style="P9b"><u> [[ sum_currency_amount_account(o, data['form']) or '0.0' ]]</u></para></td>
</tr>
</blockTable>
</td>
</tr>
<tr>
[[ repeatIn(lines(o, data['form']), 'line') ]]
<td><para style="P2_content">[[ line['date'] ]]</para></td>
<td><para style="P2_content">[[ line['code'] ]]</para></td>
<td><para style="P2_content">[[ line['partner'] ]]</para></td>
<td><para style="P2_content">[[ line['ref'] ]]</para></td>
<td><para style="P2_content">[[ line['move'] ]]</para></td>
<td><para style="P3_content">[[ line['name'] ]]</para></td>
<td><para style="P3_content">[[ strip_name(line['line_corresp'],55) ]]</para></td>
<td><para style="P4_content">[[ line['debit'] and line['debit'] or '0.0' ]]</para></td>
<td><para style="P4_content">[[ line['credit'] and line['credit'] or '0.0' ]]</para></td>
<td><para style="P4_content">[[ line['progress'] and line['progress'] or '0.0' ]]</para></td>
<td><para style="P4_content">[[ line['amount_currency'] or '0.0' ]] [[ line['currency_code'] ]]</para></td>
</tr>
</blockTable>
<blockTable colWidths="55.0,35.0,166.0,90.0,60.0,390.0,50.0,69.0,72.0,64.0" style="tbl_header" repeatRows="1">[[ data['form']['amount_currency'] == False or removeParentNode('blockTable') ]]
<tr>
<td><para style="P12"><font color="white"> </font></para><para style="P2">Date</para></td>
<td><para style="P12"><font color="white"> </font></para><para style="P2">JNRL</para></td>
<td><para style="P12"><font color="white"> </font></para><para style="P2">Partner</para></td>
<td><para style="P12"><font color="white"> </font></para><para style="P2">Ref</para></td>
<td><para style="P12"><font color="white"> </font></para><para style="P2">Mvt</para></td>
<td><para style="P12"><font color="white"> </font></para><para style="P3">Entry Label</para></td>
<td><para style="P12"><font color="white"> </font></para><para style="P3">Counterpart</para></td>
<td><para style="P12"><font color="white"> </font></para><para style="P4">Debit</para></td>
<td><para style="P12"><font color="white"> </font></para><para style="P4">Credit</para></td>
<td><para style="P12"><font color="white"> </font></para><para style="P4">Balance</para></td>
</tr>
<para>[[ repeatIn(objects, 'a') ]]</para>
<para>[[ repeatIn(get_children_accounts(a,data['form']), 'o') ]]</para>
<tr>
<td>
<para style="P12"><font color="white"> </font></para>
<para style="date">Date</para>
</td>
<td>
<para style="P12"><font color="white"> </font></para>
<para style="date">JNRL</para>
</td>
<td>
<para style="P12"><font color="white"> </font></para>
<para style="P2">Partner</para>
</td>
<td>
<para style="P12"><font color="white"> </font></para>
<para style="P2">Ref</para>
</td>
<td>
<para style="P12"><font color="white"> </font></para>
<para style="P2">Mvt</para>
</td>
<td>
<para style="P12"><font color="white"> </font></para>
<para style="P3">Entry Label</para>
</td>
<td>
<para style="P12"><font color="white"> </font> </para>
<para style="P3">Counterpart</para>
</td>
<td>
<para style="P12"><font color="white"> </font></para>
<para style="P4">Debit</para>
</td>
<td>
<para style="P12"><font color="white"> </font></para>
<para style="P4">Credit</para>
</td>
<td>
<para style="P12"><font color="white"> </font></para>
<para style="P4">Balance</para>
</td>
<td>
<para style="P12"><font color="white"> </font></para>
<para style="P4">Currency</para>
</td>
<blockTable colWidths="405.0,435.0,69.0,72.0,64.0" style="Table5">
<tr>
<td><para style="Standard">[[ o.code ]] [[ o.name ]]</para></td>
<td><para style="Standard"></para></td>
<td alignment="right"><para style="P9b"><u>[[ sum_debit_account(o, data['form']) or '0.0']]</u></para></td>
<td alignment="right"><para style="P9b"><u>[[sum_credit_account(o, data['form']) or '0.0']]</u></para></td>
<td><para style="P9b"><u>[[sum_solde_account(o, data['form']) or '0.0' ]]</u></para></td>
</tr>
</blockTable>
</td>
</tr>
<tr>
<para>[[ repeatIn(objects, 'a') ]]</para>
<para>[[ repeatIn(get_children_accounts(a,data['form']), 'o') ]]</para>
<td>
<blockTable colWidths="50.0,35.0,150.0, 90.0,60.0,345.0,50.0,69.0,72.0,64.0,58.0" style="tbl_content" >
<tr>
<td>
<blockTable colWidths="400.0,374.0,69.0,72.0,64.0,59.00" style="Table5">
<tr>
<td><para style="Standard">[[ o.code ]] [[ o.name ]]</para></td>
<td><para style="Standard"></para></td>
<td alignment="right">
<para style="P9b"><u>[[ sum_debit_account(o, data['form']) or '0.0' ]]</u></para>
</td>
<td alignment="right">
<para style="P9b"><u>[[ sum_credit_account(o, data['form']) or '0.0' ]]</u></para>
</td>
<td>
<para style="P9b"><u>[[ sum_solde_account(o, data['form']) or '0.0' ]]</u></para>
</td>
<td>
<para style="P9b"><u> [[ sum_currency_amount_account(o, data['form']) or '0.0' ]]</u></para>
</td>
</tr>
</blockTable>
</td>
</tr>
<tr>[[ data['form']['soldeinit'] == True or removeParentNode('tr') ]]
<td>
<para style="P3_content">Balance Initial</para>
</td>
<td>
<para style="P3_content"></para>
</td>
<td>
<para style="P3_content"></para>
</td>
<td>
<para style="P3_content"></para>
</td>
<td>
<para style="P3_content"></para>
</td>
<td>
<para style="P3_content"></para>
</td>
<td>
<para style="P3_content"></para>
</td>
<td>
<para style="P4_content">[[ o.init_debit or '0.0' ]]</para>
</td>
<td>
<para style="P4_content">[[ o.init_credit or '0.0' ]]</para>
</td>
<td>
<para style="P4_content">[[ (o.init_debit - o.init_credit) or '0.0' ]]</para>
</td>
<td>
<para style="P4_content"> </para>
</td>
<tr>
[[ repeatIn(lines(o, data['form']), 'line') ]]
<td><para style="P2_content">[[ line['date'] ]]</para></td>
<td><para style="P2_content">[[ line['code'] ]]</para></td>
<td><para style="P2_content">[[ line['partner'] ]]</para></td>
<td><para style="P2_content">[[ line['ref'] ]]</para></td>
<td><para style="P2_content">[[ line['move'] ]]</para></td>
<td><para style="P3_content">[[ line['name'] ]]</para></td>
<td><para style="P3_content">[[ strip_name(line['line_corresp'],55) ]]</para></td>
<td><para style="P4_content">[[ line['debit'] and line['debit'] or '0.0' ]]</para></td>
<td><para style="P4_content">[[ line['credit'] and line['credit'] or '0.0' ]]</para></td>
<td><para style="P4_content">[[ line['progress'] and line['progress'] or '0.0' ]]</para></td>
</tr>
<tr>
[[ repeatIn(lines(o, data['form']), 'line') ]]
<td>
<para style="P2_content">[[ line['date'] ]]</para>
</td>
<td>
<para style="P2_content">[[ line['code'] ]]</para>
</td>
<td>
<para style="P2_content">[[ line['partner'] ]]</para>
</td>
<td>
<para style="P2_content">[[ line['ref'] ]]</para>
</td>
<td>
<para style="P2_content">[[ line['move'] ]]</para>
</td>
<td>
<para style="P3_content">[[ line['name'] ]]</para>
</td>
<td>
<para style="P3_content">[[ strip_name(line['line_corresp'],55) ]]</para>
</td>
<td>
<para style="P4_content">[[ line['debit'] and line['debit'] or '0.0' ]]</para>
</td>
<td>
<para style="P4_content">[[ line['credit'] and line['credit'] or '0.0' ]]</para>
</td>
<td>
<para style="P4_content">[[ line['progress'] and line['progress'] or '0.0' ]]</para>
</td>
<td>
<para style="P4_content">[[ line['amount_currency'] or '0.0' ]] [[ line['currency_code'] ]]</para>
</td>
</tr>
</blockTable>
</td>
</tr>
</blockTable>
<blockTable colWidths="55.0,35.0,166.0,90.0,60.0,390.0,50.0,69.0,72.0,64.0" style="tbl_header" repeatRows="1">[[ data['form']['amount_currency'] == False or removeParentNode('blockTable') ]]
<tr>
<td>
<para style="P12">
<font color="white"> </font>
</para>
<para style="date">Date</para>
</td>
<td>
<para style="P12">
<font color="white"> </font>
</para>
<para style="date">JNRL</para>
</td>
<td>
<para style="P12">
<font color="white"> </font>
</para>
<para style="P2">Partner</para>
</td>
<td>
<para style="P12">
<font color="white"> </font>
</para>
<para style="P2">Ref</para>
</td>
<td>
<para style="P12">
<font color="white"> </font>
</para>
<para style="P2">Mvt</para>
</td>
<td>
<para style="P12">
<font color="white"> </font>
</para>
<para style="P3">Entry Label</para>
</td>
<td>
<para style="P12">
<font color="white"> </font>
</para>
<para style="P3">Counterpart</para>
</td>
<td>
<para style="P12">
<font color="white"> </font>
</para>
<para style="P4">Debit</para>
</td>
<td>
<para style="P12">
<font color="white"> </font>
</para>
<para style="P4">Credit</para>
</td>
<td>
<para style="P12">
<font color="white"> </font>
</para>
<para style="P4">Balance</para>
</td>
</tr>
<tr>
<td>
<para>[[ repeatIn(objects, 'a') ]]</para>
<para>[[ repeatIn(get_children_accounts(a,data['form']), 'o') ]]</para>
<blockTable colWidths="50.0,35.0,196.0, 90.0,30.0,390.0,50.0,69.0,72.0,64.0" style="tbl_content" >[[ data['form']['amount_currency'] == False or removeParentNode('blockTable') ]]
<tr>
<td>
<blockTable colWidths="400.0,435.0,69.0,72.0,64.0" style="Table5">
<tr>
<td><para style="Standard">[[ o.code ]] [[ o.name ]]</para></td>
<td><para style="Standard"></para></td>
<td alignment="right">
<para style="P9b"><u>[[ sum_debit_account(o, data['form']) or '0.0']]</u></para>
</td>
<td alignment="right">
<para style="P9b"><u>[[sum_credit_account(o, data['form']) or '0.0']]</u></para>
</td>
<td>
<para style="P9b"><u>[[sum_solde_account(o, data['form']) or '0.0' ]]</u></para>
</td>
</tr>
</blockTable>
</td>
</tr>
<tr>[[ data['form']['soldeinit'] == True or removeParentNode('tr') ]]
<td>
<para style="P3_content"></para>
</td>
<td>
<para style="P3_content">Solde Initial</para>
</td>
<td>
<para style="P3_content"></para>
</td>
<td>
<para style="P3_content"></para>
</td>
<td>
<para style="P3_content"></para>
</td>
<td>
<para style="P3_content"></para>
</td>
<td>
<para style="P3_content"></para>
</td>
<td>
<para style="P4_content">[[ o.init_debit or '0.0' ]]</para>
</td>
<td>
<para style="P4_content">[[ o.init_credit or '0.0' ]]</para>
</td>
<td>
<para style="P4_content">[[ o.init_debit - o.init_credit or '0.0' ]]</para>
</td>
</tr>
<tr>[[ repeatIn(lines(o, data['form']), 'line') ]]
<td>
<para style="P2_content">[[ line['date'] ]]</para>
</td>
<td>
<para style="P2_content">[[ line['code'] ]]</para>
</td>
<td>
<para style="P2_content">[[ line['partner'] ]]</para>
</td>
<td>
<para style="P2_content">[[ line['ref'] ]]</para>
</td>
<td>
<para style="P2_content">[[ line['move'] ]]</para>
</td>
<td>
<para style="P3_content">[[ line['name'] ]]</para>
</td>
<td>
<para style="P3_content">[[ strip_name(line['line_corresp'],55) ]]</para>
</td>
<td>
<para style="P4_content">[[ line['debit'] and line['debit'] or '0.0' ]]</para>
</td>
<td>
<para style="P4_content">[[ line['credit'] and line['credit'] or '0.0' ]]</para>
</td>
<td>
<para style="P4_content">[[ line['progress'] and line['progress'] or '0.0' ]]</para>
</td>
</tr>
</blockTable>
</td>
</tr>
</blockTable>
<para style="P12">
<font color="white"> </font>
</para>
</story>
</blockTable>
</story>
</document>
+12 -12
View File
@@ -73,7 +73,8 @@ class partner_balance(report_sxw.rml_parse):
## Get All Period Date
#
# If we have no period we will take all perdio in the FiscalYear.
print"data['form']['periods'][0][2]",data['form']['periods'][0][2]
if not data['form']['periods'][0][2] :
periods_id = self.pool.get('account.period').search(self.cr, self.uid, [('fiscalyear_id','=',data['form']['fiscalyear'])])
else:
@@ -116,15 +117,14 @@ class partner_balance(report_sxw.rml_parse):
else :
stop_date = date_stop_date
print"===start_date===",start_date
print"===stop_date===",stop_date
final_date_array = []
final_date_array = final_date_array + self.date_range(start_date,stop_date)
self.date_lst = final_date_array
self.date_lst.sort()
def transform_none_into_date_array(self,data):
print"======transform_none_into_date_array====="
sql = "SELECT min(date) as start_date from account_move_line"
self.cr.execute(sql)
start_date = self.cr.fetchone()[0]
@@ -132,7 +132,7 @@ class partner_balance(report_sxw.rml_parse):
sql = "SELECT max(date) as start_date from account_move_line"
self.cr.execute(sql)
stop_date = self.cr.fetchone()[0]
print"stop_date",stop_date
array = []
array = array + self.date_range(start_date,stop_date)
@@ -159,16 +159,16 @@ class partner_balance(report_sxw.rml_parse):
#
#
if data['form']['state'] == 'none':
print"========none=========="
self.transform_none_into_date_array(data)
elif data['form']['state'] == 'bydate':
print"========bydate=========="
self.transform_date_into_date_array(data)
elif data['form']['state'] == 'byperiod':
print"========byperiod=========="
self.transform_period_into_date_array(data)
elif data['form']['state'] == 'all':
print"========both=========="
self.transform_both_into_date_array(data)
@@ -213,7 +213,7 @@ class partner_balance(report_sxw.rml_parse):
#
#
if data['form']['soldeinit'] :
print"=====self.date_lst[0]=====",self.date_lst[0]
self.cr.execute(
"SELECT p.ref, p.name,l.account_id,ac.name as account_name,ac.code as code , sum(debit) as debit, sum(credit) as credit, " \
"CASE WHEN sum(debit) > sum(credit) " \
@@ -525,7 +525,7 @@ class partner_balance(report_sxw.rml_parse):
'l.date IN (' + self.date_lst_string + ') ' \
'GROUP BY partner_id')
a = self.cr.fetchone()[0]
print"====self.cr.fetchone()====",a
if self.cr.fetchone() != None:
result_tmp = result_tmp + (a or 0.0)
else:
@@ -555,7 +555,7 @@ class partner_balance(report_sxw.rml_parse):
'AND l.reconcile_id IS NULL ' \
'GROUP BY partner_id',
(self.date_lst[0],))
print"self.cr.fetchone()[0]",self.cr.fetchone()
if self.cr.fetchone() != None:
result_tmp = float(self.cr.fetchone()[0]) or 0.0
else:
+3 -3
View File
@@ -217,13 +217,13 @@
<para style="P4"></para>
</td>
<td>
<para style="P5">[[ (line['debit']) or '' ]]</para>
<para style="P5">[[ (line['debit']) or '0.0' ]]</para>
</td>
<td>
<para style="P5">[[ (line['credit']) or '' ]]</para>
<para style="P5">[[ (line['credit']) or '0.0' ]]</para>
</td>
<td>
<para style="P5">[[ (line['progress']) or '' ]]</para>
<para style="P5">[[ (line['progress']) or '0.0' ]]</para>
</td>
</tr>
</blockTable>
@@ -0,0 +1,247 @@
<?xml version="1.0"?>
<document filename="test.pdf">
<template pageSize="(595.0,842.0)" title="Test" author="Martin Simon" allowSplitting="20">
<pageTemplate id="first">
<frame id="first" x1="57.0" y1="57.0" width="481" height="728"/>
<header>
<pageGraphics>
<setFont name="Helvetica-Bold" size="9"/>
<!--COL 1-->
<drawString x="1.0cm" y="28.1cm">[[ company.name ]]</drawString>
<drawRightString x="20cm" y="28.1cm">Central Journal-[[ company.currency_id.name ]]</drawRightString>
<!-- Header -->
<setFont name="Helvetica" size="9"/>
<drawString x="1.0cm" y="1cm"> [[ time.strftime("%Y-%m-%d %H:%M", time.localtime()) ]]</drawString>
<drawString x="19.0cm" y="1cm">Page <pageNumber/></drawString>
<!--<drawRightString x="19.8cm" y="28cm">[[ company.rml_header1 ]]</drawRightString>-->
<lineMode width="0.7"/>
<lines>1cm 27.7cm 20cm 27.7cm</lines>
<setFont name="Helvetica" size="8"/>
</pageGraphics>
</header>
</pageTemplate>
</template>
<stylesheet>
<blockTableStyle id="Standard_Outline">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Table_header_Content">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Table_Sub_Header_Content">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="0,0" stop="0,-1"/>
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="0,0" stop="0,0"/>
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="0,-1" stop="0,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="1,0" stop="1,-1"/>
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="1,0" stop="1,0"/>
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="1,-1" stop="1,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="2,0" stop="2,-1"/>
<lineStyle kind="LINEAFTER" colorName="#cccccc" start="2,0" stop="2,-1"/>
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="2,0" stop="2,0"/>
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="2,-1" stop="2,-1"/>
</blockTableStyle>
<blockTableStyle id="Table_Subheader_Content_detail">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="0,0" stop="0,-1"/>
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="0,0" stop="0,0"/>
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="0,-1" stop="0,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="1,0" stop="1,-1"/>
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="1,0" stop="1,0"/>
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="1,-1" stop="1,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="2,0" stop="2,-1"/>
<lineStyle kind="LINEAFTER" colorName="#cccccc" start="2,0" stop="2,-1"/>
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="2,0" stop="2,0"/>
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="2,-1" stop="2,-1"/>
</blockTableStyle>
<blockTableStyle id="Table_Account_detail_Title">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="0,0" stop="-1,0"/>
</blockTableStyle>
<blockTableStyle id="Table_Final_Total">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="0,-1" stop="0,-1"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="1,-1" stop="1,-1"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="2,-1" stop="2,-1"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="3,-1" stop="3,-1"/>
</blockTableStyle>
<blockTableStyle id="Table_Journal_Line_Content">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,-1" stop="0,-1"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="1,-1" stop="1,-1"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="2,-1" stop="2,-1"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="3,-1" stop="3,-1"/>
</blockTableStyle>
<initialize>
<paraStyle name="all" alignment="justify"/>
</initialize>
<paraStyle name="Standard" fontName="Times-Roman"/>
<paraStyle name="Text body" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="List" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="Table Contents" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="Table Heading" fontName="Times-Roman" alignment="CENTER" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="Caption" fontName="Times-Roman" fontSize="10.0" leading="13" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="Index" fontName="Times-Roman"/>
<paraStyle name="Heading" fontName="Helvetica" fontSize="12.0" leading="15" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="Footer" fontName="Times-Roman"/>
<paraStyle name="Horizontal Line" fontName="Times-Roman" fontSize="6.0" leading="8" spaceBefore="0.0" spaceAfter="14.0"/>
<paraStyle name="terp_header" fontName="Helvetica-Bold" fontSize="12.0" leading="15" alignment="LEFT" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="Heading 9" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_General" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_Details" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_default_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Bold_8" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_tblheader_General_Centre" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_General_Right" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_Details_Centre" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_Details_Right" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_default_Right_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Centre_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_header_Right" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="LEFT" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="terp_header_Centre" fontName="Helvetica-Bold" fontSize="12.0" leading="15" alignment="CENTER" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="terp_default_address" fontName="Helvetica" fontSize="10.0" leading="13" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_9" fontName="Helvetica" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Bold_9" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Centre_9" fontName="Helvetica" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Right_9" fontName="Helvetica" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_2" fontName="Helvetica" fontSize="2.0" leading="3" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Bold_9_Right" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
</stylesheet>
<images/>
<story>
<!--blockTable colWidths="180.0,180.0,180.0" style="Table_header_Content">
<tr>
<td>
<para style="terp_header">[[ company.name ]]</para>
</td>
<td>
<para style="terp_header">
<font color="white"> </font>
</para>
</td>
<td>
<para style="terp_header">Central Journal-[[ company.currency_id.name ]]</para>
</td>
</tr>
</blockTable-->
<para style="terp_default_8">
<font color="white"> </font>
</para>
<para style="terp_default_8">
<font color="white"> </font>
</para>
<para style="terp_default_8">[[ repeatIn(objects, 'o') ]]</para>
<para style="terp_default_8">[[ repeatIn(lines(data['form']['period_id'][0][2],data['form']['journal_id'][0][2]), 'line') ]]</para>
<blockTable colWidths="180.0,180.0,180.0" style="Table_Sub_Header_Content">
<tr>
<td>
<para style="terp_tblheader_General_Centre">Journal Code</para>
</td>
<td>
<para style="terp_tblheader_General_Centre">Journal Name</para>
</td>
<td>
<para style="terp_tblheader_General_Centre">Printing Date</para>
</td>
</tr>
</blockTable>
<blockTable colWidths="180.0,180.0,180.0" style="Table_Subheader_Content_detail">
<tr>
<td>
<para style="terp_tblheader_General_Centre">[[ line[0]['journal'].code or '' ]]</para>
</td>
<td>
<para style="terp_tblheader_General_Centre">[[ line[0]['journal'].name ]]</para>
</td>
<td>
<para style="terp_tblheader_General_Centre">[[ time.strftime('%Y-%m-%d') ]] at [[ time.strftime('%H:%M:%S') ]]</para>
</td>
</tr>
</blockTable>
<para style="terp_default_8">
<font color="white"> </font>
</para>
<para style="terp_default_8">
<font color="white"> </font>
</para>
<blockTable colWidths="83.0,272.0,95.0,89.0" style="Table_Account_detail_Title" repeatRows="1">
<tr>
<td>
<para style="terp_tblheader_Details_Centre">Account Num.</para>
</td>
<td>
<para style="terp_tblheader_Details">Account Name</para>
</td>
<td>
<para style="terp_tblheader_Details_Right">Debit</para>
</td>
<td>
<para style="terp_tblheader_Details_Right">Credit</para>
</td>
</tr>
<tr>
<td>
<blockTable colWidths="80.0,272.0,94.0,87.0" style="Table_Final_Total">
<tr>
<td>
<para style="terp_default_Bold_9">Total:</para>
</td>
<td>
<para style="terp_default_Bold_9">
<font color="white"> </font>
</para>
</td>
<td>
<para style="terp_default_Bold_9_Right">[[ '%.2f' % sum_debit(line[0]['period'].id, line[0]['journal'].id) ]]</para>
</td>
<td>
<para style="terp_default_Bold_9_Right">[[ '%.2f' % sum_credit(line[0]['period'].id, line[0]['journal'].id) ]]</para>
</td>
</tr>
</blockTable>
</td>
</tr>
<tr>
<td>
<blockTable colWidths="80.0,272.0,94.0,87.0" style="Table_Journal_Line_Content">
<para style="terp_default_8">[[repeatIn(line,'l')]]</para>
<tr>
<td>
<para style="terp_default_9">[[ l['code'] ]]</para>
</td>
<td>
<para style="terp_default_9">[[ l['name'] ]]</para>
</td>
<td>
<para style="terp_default_Right_9">[[ formatLang(l['debit']) and '%.2f' % l['debit'] or '0.00' ]]</para>
</td>
<td>
<para style="terp_default_Right_9">[[ formatLang(l['credit']) and '%.2f' % l['credit'] or '0.00' ]]</para>
</td>
</tr>
</blockTable>
</td>
</tr>
</blockTable>
<para style="terp_default_8">
<font color="white"> </font>
</para>
</story>
</document>
@@ -0,0 +1,250 @@
<?xml version="1.0"?>
<document filename="test.pdf">
<template pageSize="(596.0,842.0)" title="Test" author="Martin Simon" allowSplitting="20">
<pageTemplate id="first">
<frame id="first" x1="57.0" y1="57.0" width="481" height="728"/>
<header>
<pageGraphics>
<setFont name="Helvetica-Bold" size="9"/>
<!--COL 1-->
<drawString x="1.0cm" y="28.1cm">[[ company.name ]]</drawString>
<drawRightString x="20cm" y="28.1cm">General Journal - [[ company.currency_id.name ]]</drawRightString>
<!-- Header -->
<setFont name="Helvetica" size="9"/>
<drawString x="1.0cm" y="1cm"> [[ time.strftime("%Y-%m-%d %H:%M", time.localtime()) ]]</drawString>
<drawString x="19.0cm" y="1cm">Page <pageNumber/></drawString>
<!--<drawRightString x="19.8cm" y="28cm">[[ company.rml_header1 ]]</drawRightString>-->
<lineMode width="0.7"/>
<lines>1cm 27.7cm 20cm 27.7cm</lines>
<setFont name="Helvetica" size="8"/>
</pageGraphics>
</header>
</pageTemplate>
</template>
<stylesheet>
<blockTableStyle id="Standard_Outline">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Table_Header_Title">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Table_Print_Current_datetime">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Table_Journal_Title">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="0,0" stop="-1,0"/>
</blockTableStyle>
<blockTableStyle id="Table_Final_Total">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="0,-1" stop="0,-1"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="1,-1" stop="1,-1"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="2,-1" stop="2,-1"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="3,-1" stop="3,-1"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="4,-1" stop="4,-1"/>
</blockTableStyle>
<blockTableStyle id="Table_Sub_Total">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="LINEBELOW" colorName="#b3b3b3" start="0,0" stop="2,2"/>
<lineStyle kind="LINEBELOW" colorName="white" start="0,1" stop="-1,1"/>
</blockTableStyle>
<blockTableStyle id="Table_Journal_Detail">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
</blockTableStyle>
<initialize>
<paraStyle name="all" alignment="justify"/>
</initialize>
<paraStyle name="Standard" fontName="Times-Roman"/>
<paraStyle name="Text body" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="Table Contents" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="Table Heading" fontName="Times-Roman" alignment="CENTER" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="Heading" fontName="Helvetica" fontSize="12.0" leading="15" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="List" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="Caption" fontName="Helvetica-Oblique" fontSize="9.0" leading="11" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="Index" fontName="Helvetica"/>
<paraStyle name="Footer" fontName="Times-Roman"/>
<paraStyle name="Horizontal Line" fontName="Times-Roman" fontSize="6.0" leading="8" spaceBefore="0.0" spaceAfter="14.0"/>
<paraStyle name="terp_header" fontName="Helvetica-Bold" fontSize="12.0" leading="15" alignment="LEFT" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="Heading 9" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_General" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_Details" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_default_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Bold_8" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_tblheader_General_Centre" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_General_Right" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_Details_Centre" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_Details_Right" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_default_Right_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Centre_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_header_Right" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="LEFT" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="terp_header_Centre" fontName="Helvetica-Bold" fontSize="12.0" leading="15" alignment="CENTER" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="terp_default_address" fontName="Helvetica" fontSize="10.0" leading="13" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_9" fontName="Helvetica" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Bold_9" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Centre_9" fontName="Helvetica" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Right_9" fontName="Helvetica" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_2" fontName="Helvetica" fontSize="2.0" leading="3" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Bold_9_Right" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
</stylesheet>
<images/>
<story>
<para style="terp_default_8">
<font color="white"> </font>
</para>
<!--blockTable colWidths="180.0,180.0,180.0" style="Table_Header_Title">
<tr>
<td>
<para style="terp_header">[[ company.name ]]</para>
</td>
<td>
<para style="terp_header">
<font color="white"> </font>
</para>
</td>
<td>
<para style="terp_header">General Journal - [[ company.currency_id.name ]]</para>
</td>
</tr>
</blockTable-->
<para style="terp_default_8">
<font color="white"> </font>
</para>
<blockTable colWidths="75.0,465.0" style="Table_Print_Current_datetime">
<tr>
<td>
<para style="terp_default_Bold_9">Printing Date :</para>
</td>
<td>
<para style="terp_default_Bold_9">[[ time.strftime('%Y-%m-%d') ]] at [[ time.strftime('%H:%M:%S') ]]</para>
</td>
</tr>
</blockTable>
<para style="terp_default_8">
<font color="white"> </font>
</para>
<para style="terp_default_8">
<font color="white"> </font>
</para>
<section>
<blockTable colWidths="61.0,228.0,95.0,80.0,73.0" style="Table_Journal_Title" repeatRows="1">
<tr>
<td>
<para style="terp_tblheader_Details">Jrl Code</para>
</td>
<td>
<para style="terp_tblheader_Details">Journal Name</para>
</td>
<td>
<para style="terp_tblheader_Details">Period</para>
</td>
<td>
<para style="terp_tblheader_Details_Right">Debit Trans.</para>
</td>
<td>
<para style="terp_tblheader_Details_Right">Credit Trans.</para>
</td>
</tr>
<tr>
<td>
<blockTable colWidths="64.0,226.0,82.0,82.0,76.0" style="Table_Final_Total">
<tr>
<td>
<para style="terp_default_Bold_9">Total:</para>
</td>
<td>
<para style="terp_default_Bold_9">
<font color="white"> </font>
</para>
</td>
<td>
<para style="terp_default_Bold_9">
<font color="white"> </font>
</para>
</td>
<td>
<para style="terp_default_Bold_9_Right"><u>[[ '%.2f' % sum_debit(data['form']['period_id'][0][2],data['form']['journal_id'][0][2]) ]]</u></para>
</td>
<td>
<para style="terp_default_Bold_9_Right"><u>[[ '%.2f' % sum_credit(data['form']['period_id'][0][2],data['form']['journal_id'][0][2]) ]]</u></para>
</td>
</tr>
</blockTable>
</td>
</tr>
<tr>
<td>
<para style="terp_default_9"><font>[[ repeatIn( lines( data['form']['period_id'][0][2], data['form']['journal_id'][0][2] ),'line')]]</font></para>
<blockTable colWidths="175.0,115.0,82.0,82.0,75.0" style="Table_Sub_Total">
<tr>
<td>
<para style="terp_default_Bold_9">[[ line[0]['period_name'] ]] :</para>
</td>
<td>
<para style="terp_default_Bold_9">
<font color="white"> </font>
</para>
</td>
<td>
<para style="terp_default_Bold_9">
<font color="white"> </font>
</para>
</td>
<td>
<para style="terp_default_Bold_9_Right"><u>[[ '%.2f' % sum_debit_period( line[0]['pid'],data['form']['journal_id'][0][2]) ]]</u></para>
</td>
<td>
<para style="terp_default_Bold_9_Right"><u>[[ '%.2f' % sum_credit_period(line[0]['pid'],data['form']['journal_id'][0][2]) ]]</u></para>
</td>
</tr>
<tr>
<td>
<blockTable colWidths="60.0,219.0,88.0,80.0,76.0" style="Table_Journal_Detail">
<tr>
<td>
<para style="terp_default_9">[[ repeatIn(line,'l') ]]</para>
<para style="terp_default_9">[[ l['code'] ]]</para>
</td>
<td>
<para style="terp_default_9">[[ l['name'] ]]</para>
</td>
<td>
<para style="terp_default_9">[[ line[0]['period_name'] ]]</para>
</td>
<td>
<para style="terp_default_Right_9">[[ l['debit'] and ('%.2f' % l['debit']) or '' ]]</para>
</td>
<td>
<para style="terp_default_Right_9">[[ l['credit'] and ('%.2f' % l['credit']) or '' ]]</para>
</td>
</tr>
</blockTable>
</td>
</tr>
</blockTable>
</td>
</tr>
</blockTable>
</section>
<para style="terp_default_8">
<font color="white"> </font>
</para>
</story>
</document>
+6 -7
View File
@@ -13,6 +13,7 @@
"access_account_journal_period_manager","account.journal.period manager","model_account_journal_period","account.group_account_manager",1,1,1,1
"access_account_journal_period","account.journal.period","model_account_journal_period","account.group_account_user",1,1,1,1
"access_account_move","account.move","model_account_move","account.group_account_user",1,1,1,1
"access_account_move_line","account.move.line","model_account_move_line","account.group_account_user",1,1,1,1
"access_account_move_reconcile","account.move.reconcile","model_account_move_reconcile","account.group_account_user",1,1,1,1
"access_account_tax_code","account.tax.code","model_account_tax_code",,1,0,0,0
"access_account_tax","account.tax","model_account_tax",,1,0,0,0
@@ -27,7 +28,6 @@
"access_account_tax_template","account.tax.template","model_account_tax_template","account.group_account_manager",1,1,1,1
"access_wizard_multi_charts_accounts","wizard.multi.charts.accounts","model_wizard_multi_charts_accounts","account.group_account_manager",1,1,1,1
"access_account_bank_accounts_wizard","account.bank.accounts.wizard","model_account_bank_accounts_wizard","account.group_account_manager",1,1,1,1
"access_account_move_line","account.move.line invoice","model_account_move_line","account.group_account_invoice",1,1,1,1
"access_account_bank_statement","account.bank.statement","model_account_bank_statement","account.group_account_user",1,1,1,1
"access_account_bank_statement_reconcile","account.bank.statement.reconcile","model_account_bank_statement_reconcile","account.group_account_user",1,1,1,1
"access_account_bank_statement_reconcile_line","account.bank.statement.reconcile.line","model_account_bank_statement_reconcile_line","account.group_account_user",1,1,1,1
@@ -41,6 +41,7 @@
"access_account_invoice_tax_uinvoice","account.invoice.tax","model_account_invoice_tax","account.group_account_invoice",1,1,1,1
"access_account_analytic_line_uinvoice","account.analytic.line","model_account_analytic_line","account.group_account_user",1,1,1,1
"access_account_move_uinvoice","account.move","model_account_move","account.group_account_invoice",1,1,1,1
"access_account_move_line_uinvoice","account.move.line invoice","model_account_move_line","account.group_account_invoice",1,1,1,1
"access_account_move_reconcile_uinvoice","account.move.reconcile","model_account_move_reconcile","account.group_account_invoice",1,1,1,1
"access_account_journal_period_uinvoice","account.journal.period","model_account_journal_period","account.group_account_invoice",1,1,1,1
"access_account_payment_term_manager","account.payment.term","model_account_payment_term","account.group_account_manager",1,1,1,1
@@ -66,16 +67,14 @@
"access_res_currency_rate_account_manager","res.currency.rate account manager","base.model_res_currency_rate","group_account_manager",1,1,1,1
"access_account_config_wizard_account_manager","account.config.wizard account manager","model_account_config_wizard","group_account_manager",1,1,1,1
"access_account_config_wizard_system_manager","account.config.wizard system manager","model_account_config_wizard","base.group_system",1,1,1,1
"access_account_invoice_partner_manager","account.invoice partner manager","model_account_invoice","base.group_partner_manager",1,0,0,0
"access_account_invoice_line_partner_manager","account.invoice.line partner manager","model_account_invoice_line","base.group_partner_manager",1,0,0,0
"access_account_invoice_tax_partner_manager","account.invoice.tax partner manager","model_account_invoice_tax","base.group_partner_manager",1,0,0,0
"access_account_invoice_user","account.invoice user","model_account_invoice","base.group_user",1,0,0,0
"access_account_invoice_user","account.invoice.line user","model_account_invoice_line","base.group_user",1,0,0,0
"access_account_invoice_user","account.invoice.tax user","model_account_invoice_tax","base.group_user",1,0,0,0
"access_account_payment_term_partner_manager","account.payment.term partner manager","model_account_payment_term","base.group_user",1,0,0,0
"access_account_payment_term_line_partner_manager","account.payment.term.line partner manager","model_account_payment_term_line","base.group_user",1,0,0,0
"access_account_account_product_manager","account.account product manager","model_account_account","product.group_product_manager",1,0,0,0
"access_account_journal_product_manager","account.journal product manager","model_account_journal","product.group_product_manager",1,0,0,0
"access_account_fiscal_position_product_manager","account.fiscal.position account.manager","model_account_fiscal_position","account.group_account_manager",1,1,1,1
"access_account_fiscal_position","account.fiscal.position all","model_account_fiscal_position","base.group_user",1,0,0,0
"access_account_fiscal_position_tax_product_manager","account.fiscal.position.tax account.manager","model_account_fiscal_position_tax","account.group_account_manager",1,1,1,1
"access_account_fiscal_position_tax","account.fiscal.position.tax all","model_account_fiscal_position_tax","base.group_user",1,0,0,0
"access_account_fiscal_position_account_product_manager","account.fiscal.position account.manager","model_account_fiscal_position_account","account.group_account_manager",1,1,1,1
"access_account_fiscal_position","account.fiscal.position all","model_account_fiscal_position","base.group_user",1,0,0,0
"access_account_fiscal_position_account","account.fiscal.position all","model_account_fiscal_position_account","base.group_user",1,0,0,0
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
13 access_account_journal_period_manager account.journal.period manager model_account_journal_period account.group_account_manager 1 1 1 1
14 access_account_journal_period account.journal.period model_account_journal_period account.group_account_user 1 1 1 1
15 access_account_move account.move model_account_move account.group_account_user 1 1 1 1
16 access_account_move_line account.move.line model_account_move_line account.group_account_user 1 1 1 1
17 access_account_move_reconcile account.move.reconcile model_account_move_reconcile account.group_account_user 1 1 1 1
18 access_account_tax_code account.tax.code model_account_tax_code 1 0 0 0
19 access_account_tax account.tax model_account_tax 1 0 0 0
28 access_account_tax_template account.tax.template model_account_tax_template account.group_account_manager 1 1 1 1
29 access_wizard_multi_charts_accounts wizard.multi.charts.accounts model_wizard_multi_charts_accounts account.group_account_manager 1 1 1 1
30 access_account_bank_accounts_wizard account.bank.accounts.wizard model_account_bank_accounts_wizard account.group_account_manager 1 1 1 1
access_account_move_line account.move.line invoice model_account_move_line account.group_account_invoice 1 1 1 1
31 access_account_bank_statement account.bank.statement model_account_bank_statement account.group_account_user 1 1 1 1
32 access_account_bank_statement_reconcile account.bank.statement.reconcile model_account_bank_statement_reconcile account.group_account_user 1 1 1 1
33 access_account_bank_statement_reconcile_line account.bank.statement.reconcile.line model_account_bank_statement_reconcile_line account.group_account_user 1 1 1 1
41 access_account_invoice_tax_uinvoice account.invoice.tax model_account_invoice_tax account.group_account_invoice 1 1 1 1
42 access_account_analytic_line_uinvoice account.analytic.line model_account_analytic_line account.group_account_user 1 1 1 1
43 access_account_move_uinvoice account.move model_account_move account.group_account_invoice 1 1 1 1
44 access_account_move_line_uinvoice account.move.line invoice model_account_move_line account.group_account_invoice 1 1 1 1
45 access_account_move_reconcile_uinvoice account.move.reconcile model_account_move_reconcile account.group_account_invoice 1 1 1 1
46 access_account_journal_period_uinvoice account.journal.period model_account_journal_period account.group_account_invoice 1 1 1 1
47 access_account_payment_term_manager account.payment.term model_account_payment_term account.group_account_manager 1 1 1 1
67 access_res_currency_rate_account_manager res.currency.rate account manager base.model_res_currency_rate group_account_manager 1 1 1 1
68 access_account_config_wizard_account_manager account.config.wizard account manager model_account_config_wizard group_account_manager 1 1 1 1
69 access_account_config_wizard_system_manager account.config.wizard system manager model_account_config_wizard base.group_system 1 1 1 1
70 access_account_invoice_partner_manager access_account_invoice_user account.invoice partner manager account.invoice user model_account_invoice base.group_partner_manager base.group_user 1 0 0 0
71 access_account_invoice_line_partner_manager access_account_invoice_user account.invoice.line partner manager account.invoice.line user model_account_invoice_line base.group_partner_manager base.group_user 1 0 0 0
72 access_account_invoice_tax_partner_manager access_account_invoice_user account.invoice.tax partner manager account.invoice.tax user model_account_invoice_tax base.group_partner_manager base.group_user 1 0 0 0
73 access_account_payment_term_partner_manager account.payment.term partner manager model_account_payment_term base.group_user 1 0 0 0
74 access_account_payment_term_line_partner_manager account.payment.term.line partner manager model_account_payment_term_line base.group_user 1 0 0 0
75 access_account_account_product_manager account.account product manager model_account_account product.group_product_manager 1 0 0 0
76 access_account_journal_product_manager account.journal product manager model_account_journal product.group_product_manager 1 0 0 0
77 access_account_fiscal_position_product_manager account.fiscal.position account.manager model_account_fiscal_position account.group_account_manager 1 1 1 1
access_account_fiscal_position account.fiscal.position all model_account_fiscal_position base.group_user 1 0 0 0
access_account_fiscal_position_tax_product_manager account.fiscal.position.tax account.manager model_account_fiscal_position_tax account.group_account_manager 1 1 1 1
access_account_fiscal_position_tax account.fiscal.position.tax all model_account_fiscal_position_tax base.group_user 1 0 0 0
78 access_account_fiscal_position_account_product_manager account.fiscal.position account.manager model_account_fiscal_position_account account.group_account_manager 1 1 1 1
79 access_account_fiscal_position account.fiscal.position all model_account_fiscal_position base.group_user 1 0 0 0
80 access_account_fiscal_position_account account.fiscal.position all model_account_fiscal_position_account base.group_user 1 0 0 0
+2
View File
@@ -65,6 +65,8 @@ import wizard_state_open
import wizard_statement_from_invoice
import wizard_print_journal
import wizard_central_journal
import wizard_general_journal
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
@@ -30,37 +30,38 @@ import wizard
import pooler
import time
report_type = '''<?xml version="1.0"?>
<form string="Select Report Type">
</form>'''
dates_form = '''<?xml version="1.0"?>
<form string="Select period">
<field name="date_from" colspan="4"/>
<field name="date_to" colspan="4"/>
<field name="display_account" colspan="4"/>
</form>'''
dates_fields = {
'date_from': {'string':"Start date",'type':'date','required':True ,'default': lambda *a: time.strftime('%Y-01-01')},
'date_to': {'string':"End date",'type':'date','required':True, 'default': lambda *a: time.strftime('%Y-%m-%d')},
'display_account':{'string':"Filter on Accounts",'type':'selection','selection':[('bal_mouvement','With Entries'),('bal_all','All Accounts'),('bal_solde','With Balance Different Than 0')]}
}
period_form = '''<?xml version="1.0"?>
<form string="Select period">
<field name="fiscalyear" colspan="4"/>
<field name="periods" colspan="4"/>
<field name="display_account" colspan="4"/>
<field name="company_id"/>
<field name="display_account" required = "True"/>
<newline/>
<field name="fiscalyear"/>
<label colspan="2" string="(Keep empty for all open fiscal years)" align="0.0"/>
<newline/>
<separator string="Filters" colspan="4"/>
<field name="state" required="True"/>
<newline/>
<group attrs="{'invisible':[('state','=','byperiod'),('state','=','none')]}" colspan="4">
<separator string="Date Filter" colspan="4"/>
<field name="date_from"/>
<field name="date_to"/>
</group>
<group attrs="{'invisible':[('state','=','bydate'),('state','=','none')]}" colspan="4">
<separator string="Filter on Periods" colspan="4"/>
<field name="periods" colspan="4" nolabel="1"/>
</group>
</form>'''
period_fields = {
'company_id': {'string': 'Company', 'type': 'many2one', 'relation': 'res.company', 'required': True},
'state':{
'string':"Date/Period Filter",
'type':'selection',
'selection':[('bydate','By Date'),('byperiod','By Period'),('all','By Date and Period'),('none','No Filter')],
'default': lambda *a:'bydate'
},
'fiscalyear': {
'string':'Fiscal year',
'type':'many2one',
@@ -68,7 +69,9 @@ period_fields = {
'help':'Keep empty for all open fiscal year'
},
'periods': {'string': 'Periods', 'type': 'many2many', 'relation': 'account.period', 'help': 'All periods if empty'},
'display_account':{'string':"Display accounts ",'type':'selection','selection':[('bal_mouvement','With movements'),('bal_all','All'),('bal_solde','With balance is not equal to 0')]}
'display_account':{'string':"Display accounts ",'type':'selection','selection':[('bal_mouvement','With Movements'),('bal_solde','With Balance != 0'),('bal_all','All')]},
'date_from': {'string':"Start date",'type':'date','required':True ,'default': lambda *a: time.strftime('%Y-01-01')},
'date_to': {'string':"End date",'type':'date','required':True, 'default': lambda *a: time.strftime('%Y-%m-%d')},
}
account_form = '''<?xml version="1.0"?>
@@ -80,9 +83,14 @@ account_fields = {
'Account_list': {'string':'Account', 'type':'many2one', 'relation':'account.account', 'required':True ,'domain':[('parent_id','=',False)]},
}
class wizard_report(wizard.interface):
def _get_defaults(self, cr, uid, data, context):
user = pooler.get_pool(cr.dbname).get('res.users').browse(cr, uid, uid, context=context)
if user.company_id:
company_id = user.company_id.id
else:
company_id = pooler.get_pool(cr.dbname).get('res.company').search(cr, uid, [('parent_id', '=', False)])[0]
data['form']['company_id'] = company_id
fiscalyear_obj = pooler.get_pool(cr.dbname).get('account.fiscalyear')
periods_obj=pooler.get_pool(cr.dbname).get('account.period')
data['form']['fiscalyear'] = fiscalyear_obj.find(cr, uid)
@@ -90,17 +98,20 @@ class wizard_report(wizard.interface):
data['form']['display_account']='bal_all'
return data['form']
def _get_defaults_fordate(self, cr, uid, data, context):
data['form']['display_account']='bal_all'
def _check_state(self, cr, uid, data, context):
if data['form']['state'] == 'bydate':
self._check_date(cr, uid, data, context)
data['form']['fiscalyear'] = 0
else :
data['form']['fiscalyear'] = 1
return data['form']
def _check_path(self, cr, uid, data, context):
if data['model'] == 'account.account':
return 'checktype'
return 'checktype'
else:
return 'account_selection'
return 'account_selection'
def _check_date(self, cr, uid, data, context):
sql = """
@@ -112,7 +123,6 @@ class wizard_report(wizard.interface):
raise wizard.except_wizard('UserError','Date to must be set between ' + res[0]['date_start'] + " and " + res[0]['date_stop'])
else:
return 'report'
else:
raise wizard.except_wizard('UserError','Date not in a defined fiscal year')
@@ -127,27 +137,12 @@ class wizard_report(wizard.interface):
'result': {'type':'form', 'arch':account_form,'fields':account_fields, 'state':[('end','Cancel'),('checktype','Print')]}
},
'checktype': {
'actions': [],
'result': {'type':'form', 'arch':report_type,'fields':{}, 'state':[('with_period','Use with Period'),('with_date','Use with Date')]}
},
'with_period': {
'actions': [_get_defaults],
'result': {'type':'form', 'arch':period_form, 'fields':period_fields, 'state':[('end','Cancel'),('report','Print')]}
},
'with_date': {
'actions': [_get_defaults_fordate],
'result': {'type':'form', 'arch':dates_form, 'fields':dates_fields, 'state':[('end','Cancel'),('checkdate','Print')]}
},
'checkdate': {
'actions': [],
'result': {'type':'choice','next_state':_check_date}
},
'report': {
'actions': [],
'actions': [_check_state],
'result': {'type':'print', 'report':'account.account.balance', 'state':'end'}
}
}
wizard_report('account.account.balance.report')
@@ -0,0 +1,60 @@
# -*- encoding: utf-8 -*-
##############################################################################
#
# Copyright (c) 2004-2008 TINY SPRL. (http://tiny.be) All Rights Reserved.
#
# $Id$
#
# WARNING: This program as such is intended to be used by professional
# programmers who take the whole responsability of assessing all potential
# consequences resulting from its eventual inadequacies and bugs
# End users who are looking for a ready-to-use solution with commercial
# garantees and support are strongly adviced to contract a Free Software
# Service Company
#
# This program is Free Software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# 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 General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
##############################################################################
import wizard
import pooler
form = '''<?xml version="1.0"?>
<form string="Print Central Journal">
<field name="journal_id"/>
<field name="period_id"/>
</form>'''
fields = {
'journal_id': {'string': 'Journal', 'type': 'many2many', 'relation': 'account.journal', 'required': True},
'period_id': {'string': 'Period', 'type': 'many2many', 'relation': 'account.period', 'required': True},
}
class wizard_print_journal(wizard.interface):
states = {
'init': {
'actions': [],
'result': {'type': 'form', 'arch': form, 'fields': fields, 'state': (('end', 'Cancel'), ('print', 'Print'))},
},
'print': {
'actions': [],
'result': {'type':'print', 'report':'account.central.journal.wiz', 'state':'end'},
},
}
wizard_print_journal('account.central.journal.report')
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
@@ -0,0 +1,60 @@
# -*- encoding: utf-8 -*-
##############################################################################
#
# Copyright (c) 2004-2008 TINY SPRL. (http://tiny.be) All Rights Reserved.
#
# $Id$
#
# WARNING: This program as such is intended to be used by professional
# programmers who take the whole responsability of assessing all potential
# consequences resulting from its eventual inadequacies and bugs
# End users who are looking for a ready-to-use solution with commercial
# garantees and support are strongly adviced to contract a Free Software
# Service Company
#
# This program is Free Software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# 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 General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
##############################################################################
import wizard
import pooler
form = '''<?xml version="1.0"?>
<form string="Print General Journal">
<field name="journal_id"/>
<field name="period_id"/>
</form>'''
fields = {
'journal_id': {'string': 'Journal', 'type': 'many2many', 'relation': 'account.journal', 'required': True},
'period_id': {'string': 'Period', 'type': 'many2many', 'relation': 'account.period', 'required': True},
}
class wizard_print_journal(wizard.interface):
states = {
'init': {
'actions': [],
'result': {'type': 'form', 'arch': form, 'fields': fields, 'state': (('end', 'Cancel'), ('print', 'Print'))},
},
'print': {
'actions': [],
'result': {'type':'print', 'report':'account.general.journal.wiz', 'state':'end'},
},
}
wizard_print_journal('account.general.journal.report')
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
@@ -29,64 +29,94 @@ import pooler
import locale
import time
report_type = '''<?xml version="1.0"?>
<form string="Select Report Type">
</form>'''
dates_form = '''<?xml version="1.0"?>
<form string="Select period ">
<field name="date_from" colspan="4"/>
<field name="date_to" colspan="4"/>
<field name="sortbydate" colspan="4"/>
<field name="display_account" colspan="4"/>
<field name="landscape" colspan="4"/>
<field name="soldeinit"/>
<field name="amount_currency" colspan="4"/>
</form>'''
dates_fields = {
'date_from': {'string':"Start date",'type':'date','required':True ,'default': lambda *a: time.strftime('%Y-01-01')},
'date_to': {'string':"End date",'type':'date','required':True, 'default': lambda *a: time.strftime('%Y-%m-%d')},
'sortbydate':{'string':"Sort by",'type':'selection','selection':[('sort_date','Date'),('sort_mvt','Mouvement')]},
'display_account':{'string':"Display accounts ",'type':'selection','selection':[('bal_mouvement','With movements'),('bal_all','All'),('bal_solde','With balance is not equal to 0')]},
'landscape':{'string':"Print in Landscape Mode",'type':'boolean'},
'soldeinit':{'string':"Inclure les soldes initiaux",'type':'boolean'},
'amount_currency':{'string':"with amount in currency",'type':'boolean'}
}
#report_type = '''<?xml version="1.0"?>
#<form string="Select Report Type">
#</form>'''
#
#dates_form = '''<?xml version="1.0"?>
#<form string="Select period ">
# <field name="date_from" colspan="4"/>
# <field name="date_to" colspan="4"/>
# <field name="sortbydate" colspan="4"/>
# <field name="display_account" colspan="4"/>
# <field name="landscape" colspan="4"/>
# <field name="soldeinit"/>
# <field name="amount_currency" colspan="4"/>
#</form>'''
#
#dates_fields = {
# 'date_from': {'string':"Start date",'type':'date','required':True ,'default': lambda *a: time.strftime('%Y-01-01')},
# 'date_to': {'string':"End date",'type':'date','required':True, 'default': lambda *a: time.strftime('%Y-%m-%d')},
# 'sortbydate':{'string':"Sort by",'type':'selection','selection':[('sort_date','Date'),('sort_mvt','Mouvement')]},
# 'display_account':{'string':"Display accounts ",'type':'selection','selection':[('bal_mouvement','With movements'),('bal_all','All'),('bal_solde','With balance is not equal to 0')]},
# 'landscape':{'string':"Print in Landscape Mode",'type':'boolean'},
# 'soldeinit':{'string':"Inclure les soldes initiaux",'type':'boolean'},
# 'amount_currency':{'string':"with amount in currency",'type':'boolean'}
#
#}
account_form = '''<?xml version="1.0"?>
<form string="Select parent account">
<form string="Select Chart">
<field name="Account_list" colspan="4"/>
</form>'''
account_fields = {
'Account_list': {'string':'Account', 'type':'many2one', 'relation':'account.account', 'required':True ,'domain':[('parent_id','=',False)]},
'Account_list': {'string':'Chart of Accounts', 'type':'many2one', 'relation':'account.account', 'required':True ,'domain':[('parent_id','=',False)]},
}
period_form = '''<?xml version="1.0"?>
<form string="Select period ">
<field name="fiscalyear" colspan="4"/>
<field name="periods" colspan="4"/>
<field name="sortbydate" colspan="4"/>
<field name="display_account" colspan="4"/>
<field name="landscape" colspan="4"/>
<field name="soldeinit"/>
<field name="amount_currency" colspan="4"/>
<form string="Select Date-Period">
<field name="company_id" colspan="4"/>
<newline/>
<field name="fiscalyear"/>
<label colspan="2" string="(Keep empty for all open fiscal years)" align="0.0"/>
<newline/>
<field name="display_account" required="True"/>
<field name="sortbydate" required="True"/>
<field name="landscape"/>
<field name="amount_currency"/>
<newline/>
<separator string="Filters" colspan="4"/>
<field name="state" required="True"/>
<newline/>
<group attrs="{'invisible':[('state','=','byperiod'),('state','=','none')]}" colspan="4">
<separator string="Date Filter" colspan="4"/>
<field name="date_from"/>
<field name="date_to"/>
</group>
<group attrs="{'invisible':[('state','=','bydate'),('state','=','none')]}" colspan="4">
<separator string="Filter on Periods" colspan="4"/>
<field name="periods" colspan="4" nolabel="1"/>
</group>
</form>'''
period_fields = {
'company_id': {'string': 'Company', 'type': 'many2one', 'relation': 'res.company', 'required': True},
'state':{
'string':"Date/Period Filter",
'type':'selection',
'selection':[('bydate','By Date'),('byperiod','By Period'),('all','By Date and Period'),('none','No Filter')],
'default': lambda *a:'bydate'
},
'fiscalyear': {'string': 'Fiscal year', 'type': 'many2one', 'relation': 'account.fiscalyear',
'help': 'Keep empty for all open fiscal year'},
'periods': {'string': 'Periods', 'type': 'many2many', 'relation': 'account.period', 'help': 'All periods if empty'},
'sortbydate':{'string':"Sort by:",'type':'selection','selection':[('sort_date','Date'),('sort_mvt','Mouvement')]},
'display_account':{'string':"Display accounts ",'type':'selection','selection':[('bal_mouvement','With movements'),('bal_all','All'),('bal_solde','With balance is not equal to 0')]},
'landscape':{'string':"Print in Landscape Mode",'type':'boolean'},
'landscape':{'string':"Landscape Mode",'type':'boolean'},
'soldeinit':{'string':"Inclure les soldes initiaux",'type':'boolean'},
'amount_currency':{'string':"with amount in currency",'type':'boolean'}
'amount_currency':{'string':"With Currency",'type':'boolean'},
'date_from': {'string':" Start date",'type':'date','required':True ,'default': lambda *a: time.strftime('%Y-01-01')},
'date_to': {'string':"End date",'type':'date','required':True, 'default': lambda *a: time.strftime('%Y-%m-%d')},
}
def _check_path(self, cr, uid, data, context):
if data['model'] == 'account.account':
@@ -101,6 +131,7 @@ def _check(self, cr, uid, data, context):
return 'report'
def _check_date(self, cr, uid, data, context):
sql = """
SELECT f.id, f.date_start, f.date_stop FROM account_fiscalyear f Where '%s' between f.date_start and f.date_stop """%(data['form']['date_from'])
cr.execute(sql)
@@ -113,24 +144,36 @@ def _check_date(self, cr, uid, data, context):
else:
raise wizard.except_wizard('UserError','Date not in a defined fiscal year')
def _check_state(self, cr, uid, data, context):
if data['form']['state'] == 'bydate':
_check_date(self, cr, uid, data, context)
data['form']['fiscalyear'] = 0
else :
data['form']['fiscalyear'] = 1
return data['form']
class wizard_report(wizard.interface):
def _get_defaults(self, cr, uid, data, context):
user = pooler.get_pool(cr.dbname).get('res.users').browse(cr, uid, uid, context=context)
if user.company_id:
company_id = user.company_id.id
else:
company_id = pooler.get_pool(cr.dbname).get('res.company').search(cr, uid, [('parent_id', '=', False)])[0]
data['form']['company_id'] = company_id
fiscalyear_obj = pooler.get_pool(cr.dbname).get('account.fiscalyear')
data['form']['fiscalyear'] = fiscalyear_obj.find(cr, uid)
periods_obj=pooler.get_pool(cr.dbname).get('account.period')
data['form']['periods'] =periods_obj.search(cr, uid, [('fiscalyear_id','=',data['form']['fiscalyear'])])
data['form']['sortbydate'] = 'sort_date'
data['form']['display_account']='bal_all'
data['form']['landscape']=True
data['form']['amount_currency'] = True
return data['form']
def _get_defaults_fordate(self, cr, uid, data, context):
data['form']['sortbydate'] = 'sort_date'
data['form']['display_account']='bal_all'
data['form']['landscape']=True
data['form']['amount_currency'] = True
return data['form']
states = {
'init': {
@@ -142,31 +185,19 @@ class wizard_report(wizard.interface):
'result': {'type':'form', 'arch':account_form,'fields':account_fields, 'state':[('end','Cancel'),('checktype','Print')]}
},
'checktype': {
'actions': [],
'result': {'type':'form', 'arch':report_type,'fields':{}, 'state':[('with_period','Use with Period'),('with_date','Use with Date')]}
},
'with_period': {
'actions': [_get_defaults],
'result': {'type':'form', 'arch':period_form, 'fields':period_fields, 'state':[('end','Cancel'),('checkreport','Print')]}
},
'with_date': {
'actions': [_get_defaults_fordate],
'result': {'type':'form', 'arch':dates_form, 'fields':dates_fields, 'state':[('end','Cancel'),('checkdate','Print')]}
},
'checkdate': {
'actions': [],
'result': {'type':'choice','next_state':_check_date}
},
'checkreport': {
'actions': [],
'result': {'type':'choice','next_state':_check}
},
'report_landscape': {
'actions': [],
'actions': [_check_state],
'result': {'type':'print', 'report':'account.general.ledger_landscape', 'state':'end'}
},
'report': {
'actions': [],
'actions': [_check_state],
'result': {'type':'print', 'report':'account.general.ledger', 'state':'end'}
}
}
@@ -30,7 +30,7 @@ import wizard
import pooler
period_form = '''<?xml version="1.0"?>
<form string="Select period" colspan="4">
<form string="Select Date-Period">
<field name="company_id"/>
<field name="result_selection"/>
<newline/>
@@ -51,9 +51,6 @@ fields = {
}
def print_journal(self, cr, uid, data, context):
return {}
class wizard_print_journal(wizard.interface):
states = {
'init': {
@@ -61,7 +58,7 @@ class wizard_print_journal(wizard.interface):
'result': {'type': 'form', 'arch': form, 'fields': fields, 'state': (('end', 'Cancel'), ('print', 'Print'))},
},
'print': {
'actions': [print_journal],
'actions': [],
'result': {'type':'print', 'report':'account.journal.period.print.wiz', 'state':'end'},
},
}
@@ -31,7 +31,7 @@ import pooler
period_form = '''<?xml version="1.0"?>
<form string="Select period">
<form string="Select Date-Period">
<field name="company_id"/>
<field name="result_selection"/>
@@ -3,6 +3,12 @@
<template pageSize="(595.0,842.0)" title="Test" author="Martin Simon" allowSplitting="20">
<pageTemplate id="first">
<frame id="first" x1="34.0" y1="28.0" width="527" height="786"/>
<pageGraphics>
<setFont name="Helvetica" size="8.5"/>
<drawString x="10.5cm" y="1cm"><pageNumber/></drawString>
<setFont name="Helvetica" size="9"/>
</pageGraphics>
</pageTemplate>
</template>
<stylesheet>
@@ -17,90 +23,75 @@
</blockTableStyle>
<blockTableStyle id="Table2">
<blockAlignment value="LEFT"/>
<lineStyle kind="LINEBELOW" colorName="#b3b3b3" start="0,0" stop="-1,-1"/>
<blockValign value="TOP"/>
<blockBackground colorName="#e6e6e6" start="0,0" stop="0,0"/>
<blockBackground colorName="#e6e6e6" start="1,0" stop="1,0"/>
<blockBackground colorName="#e6e6e6" start="2,0" stop="2,0"/>
<blockBackground colorName="#e6e6e6" start="0,1" stop="0,1"/>
<blockBackground colorName="#e6e6e6" start="1,1" stop="1,1"/>
<blockBackground colorName="#e6e6e6" start="2,1" stop="2,1"/>
</blockTableStyle>
<blockTableStyle id="Table4">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="GRID" colorName="black"/>
<blockBackground colorName="#e6e6e6" start="0,0" stop="0,0"/>
<blockBackground colorName="#e6e6e6" start="1,0" stop="1,0"/>
<blockBackground colorName="#e6e6e6" start="2,0" stop="2,0"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="0,0" stop="-1,-1"/>
</blockTableStyle>
<blockTableStyle id="Table3">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,0" stop="-1,-1"/>
</blockTableStyle>
<blockTableStyle id="Table6">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="1,0" stop="1,-1"/>
</blockTableStyle>
<initialize>
<paraStyle name="all" alignment="justify"/>
</initialize>
<paraStyle name="P1" fontName="Times-Roman" fontSize="8.0" leading="10" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P2" fontName="Times-Roman" fontSize="10.0" leading="13" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P1" alignment="CENTER" fontName="Helvetica" fontSize="8.5" leading="10" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P2" fontName="Helvetica" fontSize="10.0" leading="13" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P3" fontName="Times-BoldItalic" fontSize="10.0" leading="13" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P4" fontName="Times-Bold" fontSize="18.0" leading="22" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P5" fontName="Times-Roman" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P6" fontName="Times-Roman" fontSize="13.0" leading="16" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P7" fontName="Times-Roman" fontSize="10.0" leading="13" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P8" fontName="Times-Bold" fontSize="11.0" leading="14" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P9" fontName="Times-Roman" fontSize="8.0" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P10" fontName="Times-Roman" fontSize="16.0" leading="20" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P11" fontName="Times-Roman" fontSize="10.0" leading="14" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P12" fontName="Times-Roman" fontSize="11.0" leading="14" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P13" fontName="Times-Roman" fontSize="11.0" leading="14" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P14" fontName="Times-Roman" fontSize="11.0" leading="14" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="Standard" fontName="Times-Roman"/>
<paraStyle name="Text body" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="List" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="Table Contents" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P4" fontName="Helvetica" fontSize="10.0" leading="14" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P5" fontName="Helvetica" fontSize="8.5" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P6" fontName="Helvetica" fontSize="11.0" leading="14" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P7" fontName="Helvetica" fontSize="10.0" leading="13" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P8" fontName="Helvetica-Bold" fontSize="11.0" leading="14" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P9" fontName="Helvetica" fontSize="8.0" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P10" fontName="Helvetica" fontSize="16.0" leading="20" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P11" fontName="Helvetica" fontSize="9.0" leading="14" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P12" fontName="Helvetica" fontSize="11.0" leading="14" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P13" fontName="Helvetica" fontSize="11.0" leading="14" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P14" fontName="Helvetica" fontSize="10.0" leading="14" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="Standard" fontName="Helvetica"/>
<paraStyle name="Text body" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="List" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="Table Contents" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="Table Heading" fontName="Times-Roman" alignment="CENTER" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="Caption" fontName="Times-Roman" fontSize="10.0" leading="13" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="Index" fontName="Times-Roman"/>
<paraStyle name="terp_header_Centre" fontName="Helvetica-Bold" fontSize="12.0" leading="19" alignment="CENTER" spaceBefore="12.0" spaceAfter="6.0"/>
</stylesheet>
<images/>
<story>
<blockTable colWidths="146.0,223.0,158.0" repeatRows="1" style="Table2">
<tr>
<td>
<para style="P9">
<font color="white"> </font>
</para>
</td>
<td>
<para style="P10">Indicators</para>
</td>
<td>
<para style="P2">
<font color="white"> </font>
</para>
</td>
</tr>
<tr>
<td>
<para style="P5">[[ company.name ]]</para>
</td>
<td>
<para style="P4">
<font color="white"> </font>
</para>
</td>
<td>
<para style="P2">Currency: <font face="Times-Roman" size="11.0">[[ company.currency_id.name]]</font>
</para>
</td>
</tr>
<blockTable colWidths="520.0" style="Standard_Outline">
<tr>
<td>
<para style="terp_header_Centre">Indicators</para>
</td>
</tr>
</blockTable>
<blockTable colWidths="264.0,264.0" style="Table2">
<tr>
<td>
<para style="P14">[[ company.name ]]</para>
</td>
<td>
<para style="P4">Currency: <font face="Times-Roman" size="11.0">[[ company.currency_id.name]]</font>
</para>
</td>
</tr>
</blockTable>
<para style="P4">
<font color="white"> </font>
</para>
<para style="P3">Printing date: [[ time.strftime('%Y-%m-%d') ]] at [[ time.strftime('%H:%M:%S') ]]</para>
<blockTable colWidths="362.0,166.0" repeatRows="1" style="Table4">
<para style="P1">Printing date: [[ time.strftime('%Y-%m-%d') ]] at [[ time.strftime('%H:%M:%S') ]]</para>
<blockTable colWidths="362.0,166.0" style="Table4">
<tr>
<td>
<para style="P6">Name</para>
@@ -119,10 +110,10 @@
<blockTable colWidths="362.0,166.0" style="Table3">
<tr>
<td>
<para style="P11"><b>(<seq/>)</b> [[ o['type']=='view' and setTag('para','para',{'fontName':'Helvetica-Bold'}) ]]<u>[[ o['name'] ]]</u></para>
<para style="P11"><b>(<seq/>)</b> [[ o['type']=='view' and setTag('para','para',{'fontName':'Helvetica-Bold','fontSize':'10.5'}) ]]<u>[[ o['name'] ]]</u></para>
</td>
<td>
<para style="P11">[[ o['type']=='view' and setTag('para','para',{'fontName':'Helvetica-Bold'}) ]]<u>[[ o['code'] ]]</u></para>
<para style="P11">[[ o['type']=='view' and setTag('para','para',{'fontName':'Helvetica-Bold','fontSize':'10.5'}) ]]<u>[[ o['code'] ]]</u></para>
</td>
</tr>
</blockTable>
@@ -140,37 +131,50 @@
<td>
<para style="P9"> </para>
</td>
</tr>
</tr>
<tr>
<td>
<td>
<para style="P9"> </para>
</td>
</tr>
</blockTable>
</blockTable>
</section>
<para style="P3">
<font color="white"> </font>
</para>
<blockTable colWidths="528.0" repeatRows="1" style="Table3">
<blockTable colWidths="14.0,500.0,14.0" repeatRows="1" style="Table6">
<tr>
<td>
<para style="P11"><b>Expression :</b> [[ o['expression'] ]]</para>
<para style="P9"> </para>
</td>
<td>
<para style="P5"><b>Expression :</b> [[ o['expression'] ]]</para>
</td>
<td>
<para style="P9"> </para>
</td>
</tr>
</blockTable>
<para style="P3">
<font color="white"> </font>
</para>
<blockTable colWidths="528.0" repeatRows="1" style="Table3">
<blockTable colWidths="14.0,500.0,14.0" repeatRows="1" style="Table6">
<tr>
<td>
<para style="P11"><b>Notes :</b> [[ o['note'] ]]</para>
<para style="P9"> </para>
</td>
<td>
<para style="P5"><b>Notes :</b> [[ o['note'] ]]</para>
</td>
<td>
<para style="P9"> </para>
</td>
</tr>
</blockTable>
<para style="P3">
<font color="white"> </font>
</para>
<hr color="black" thickness="1.5"/>
</section>
</story>
</document>
+54 -50
View File
@@ -27,40 +27,40 @@
<field name="first_name" select="1"/>
<notebook colspan="4" >
<page string="General">
<newline/>
<separator string="General Information" colspan="4"/>
<field name="mobile" select="2"/>
<field name="title" select="1" />
<field name="website"/>
<field name="lang_id"/>
<field name="active"/>
<separator string="Functions" colspan="4"/>
<field name="job_ids" colspan="4" nolabel="1" mode="tree, form">
<form string="Functions">
<field name="function_id"/>
<field name="address_id"/>
<field name="name"/>
<field name="sequence_contact"/>
<field name="phone"/>
<field name="email"/>
<field name="date_start" />
<field name="date_stop" />
<field name="state" />
</form>
<tree string="Functions">
<field name="sequence_contact" string="Seq."/>
<field name="function_id"/>
<field name="name"/>
<field name="address_id"/>
<field name="phone"/>
<field name="email"/>
<field name="state" />
</tree>
</field>
<newline/>
<separator string="General Information" colspan="4"/>
<field name="mobile" select="2"/>
<field name="title" select="1" />
<field name="website"/>
<field name="lang_id"/>
<field name="active"/>
<separator string="Functions" colspan="4"/>
<field name="job_ids" colspan="4" nolabel="1" mode="tree, form">
<form string="Functions">
<field name="function_id"/>
<field name="address_id"/>
<field name="name"/>
<field name="sequence_contact"/>
<field name="phone"/>
<field name="email"/>
<field name="date_start" />
<field name="date_stop" />
<field name="state" />
</form>
<tree string="Functions">
<field name="sequence_contact" string="Seq."/>
<field name="function_id"/>
<field name="name"/>
<field name="address_id"/>
<field name="phone"/>
<field name="email"/>
<field name="state" />
</tree>
</field>
</page>
<page string="Extra Information">
<field name="country_id"/>
<field name="birthdate" select="1" />
<field name="country_id"/>
<field name="birthdate" select="1" />
</page>
</notebook>
</form>
@@ -105,14 +105,14 @@
<newline/>
<field name="job_ids" mode="tree, form" colspan="4">
<tree string="Contacts" editable="top">
<field name="sequence_partner"/>
<field name="sequence_partner"/>
<field name="contact_id"/>
<field name="function_id"/>
<field name="phone"/>
<field name="email"/>
</tree>
<form string="Contacts">
<field name="sequence_partner"/>
<field name="sequence_partner"/>
<field name="contact_id"/>
<field name="function_id"/>
<field name="phone"/>
@@ -240,7 +240,7 @@
</field>
</record>
<!-- Views for res.partner.job -->
<!-- Views for res.partner.job -->
<record model="ir.ui.view" id="view_partner_job_tree">
<field name="name">res.partner.job.tree</field>
<field name="model">res.partner.job</field>
@@ -253,6 +253,7 @@
<field name="function_id"/>
<field name="email"/>
<field name="phone"/>
<field name="state" />
</tree>
</field>
</record>
@@ -273,26 +274,29 @@
<field name="phone" select="2"/>
<field name="sequence_contact" select="2"/>
<field name="sequence_partner" select="2"/>
<field name="date_start" />
<field name="date_stop" />
<field name="state" select="2" />
</page>
</notebook>
</form>
</field>
</record>
<!-- Menuitem for res.partner.job -->
<record model="ir.actions.act_window" id="action_res_partner_job">
<field name="name">Functions</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">res.partner.job</field>
<field name="view_type">form</field>
</record>
<menuitem name="Partners/Functions" action="action_res_partner_job" id="menu_action_res_partner_job"/>
<!-- Act window defining a shorcut on partners to open all his contacts -->
<act_window name="Open all Partner's Function"
domain="[('name', '=', active_id)]"
res_model="res.partner.job"
src_model="res.partner"
view_mode='tree,form'
id="act_res_partner_jobs"/>
<!-- Menuitem for res.partner.job -->
<record model="ir.actions.act_window" id="action_res_partner_job">
<field name="name">Functions</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">res.partner.job</field>
<field name="view_type">form</field>
</record>
<menuitem name="Partners/Functions" action="action_res_partner_job" id="menu_action_res_partner_job"/>
<!-- Act window defining a shorcut on partners to open all his contacts -->
<act_window name="Open all Partner's Function"
domain="[('name', '=', active_id)]"
res_model="res.partner.job"
src_model="res.partner"
view_mode='tree,form'
id="act_res_partner_jobs"/>
</data>
</openerp>
+139 -140
View File
@@ -1,144 +1,143 @@
<?xml version="1.0"?>
<openerp>
<data>
# ------------------------------------------------------
# Meetings
# ------------------------------------------------------
<data>
# ------------------------------------------------------
# Meetings
# ------------------------------------------------------
<record model="ir.ui.view" id="crm_case_form_view_meet">
<field name="name">CRM - Meetings Form</field>
<field name="model">crm.case</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Meetings Form">
<notebook>
<page string="Meeting">
<field name="name" select="1" string="Title"/>
<field name="section_id"/>
<newline/>
<field name="date" string="Next Meeting"/>
<field name="duration" colspan="1" string="Meeting Duration"/>
<newline/>
<field name="partner_id" on_change="onchange_partner_id(partner_id, email_from)" />
<field name="partner_address_id" on_change="onchange_partner_address_id(partner_address_id, email_from)"/>
<newline/>
<field name="user_id" select="2" string="Responsible"/>
<field name="email_from"/>
<newline/>
<field name="categ_id" select="2" on_change="onchange_categ_id(categ_id)"/>
<field name="priority" select="2"/>
<newline/>
<field name="stage_id" select="1"/>
<field name="category2_id" select="1" string="Location"/>
<newline/>
<separator string="Description" colspan="4"/>
<field name="note" nolabel="1" colspan="4" />
<separator colspan="4"/>
<group col="8" colspan="4">
<field name="state" select="2"/>
<button name="case_close" string="Done" states="open,draft,pending" type="object"/>
<button name="case_open" string="Open" states="draft,pending" type="object"/>
<button name="case_cancel" string="Cancel Meeting" states="draft,open,pending" type="object"/>
<button name="case_pending" string="Pending" states="draft,open" type="object"/>
<button name="case_escalate" string="Escalate" states="open,draft,pending" type="object"/>
<button name="case_reset" string="Reset to Draft" states="done,cancel" type="object"/>
</group>
</page>
<page string="Extra Info">
<group colspan="4">
<field name="id"/>
<field name="active" select="2"/>
<newline/>
<field name="email_cc" colspan="1"/>
<field name="date_deadline" select="2" string="Deadlines"/>
<newline/>
<separator colspan="4" string="Dates"/>
<field name="create_date"/>
<field name="date_closed"/>
<field name="date_action_last"/>
<field name="date_action_next"/>
</group>
<separator colspan="4"/>
<field name="history_line" colspan="2" nolabel="1" mode="tree,form">
<form string="Communication history">
<group col="6" colspan="4">
<field name="date"/>
<field name="email"/>
<field name="canal_id"/>
</group>
<newline/>
<field name="description" colspan="4" nolabel="1"/>
</form>
<tree string="Communication history">
<field name="description"/>
<field name="email"/>
<field name="date"/>
</tree>
</field>
<group col="2" colspan="2" expand="1">
<field name="canal_id"/>
<field name="som"/>
<button name="add_reply" string="Add Last Mail for Replying"
states="open" type="object" colspan="2"/>
<field name="description" colspan="2" nolabel="1"/>
<button name="case_log_reply"
string="Send Partner &amp; Historize" states="open"
type="object"/>
<button name="case_log" string="Historize" states="open"
type="object"/>
</group>
<separator colspan="4" string="References"/>
<field name="ref" colspan="4"/>
<field name="ref2" colspan="4"/>
</page>
<page string="History">
<field name="log_ids" nolabel="1" colspan="4">
<form string="Actions">
<separator string="Action Information" colspan="4"/>
<field name="name" colspan="4"/>
<field name="date"/>
<field name="user_id"/>
<field name="som"/>
<field name="canal_id"/>
</form>
</field>
</page>
</notebook>
</form>
</field>
</record>
<record model="ir.ui.view" id="crm_case_tree_view_meet">
<field name="name">CRM - Meetings Tree</field>
<field name="model">crm.case</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Meetings Tree" colors="red:state=='open'">
<field name="id"/>
<field name="name" string="Title"/>
<field name="date" string="Next Meeting"/>
<field name="section_id"/>
<field name="priority"/>
<field name="stage_id"/>
<field name="categ_id"/>
<field name="category2_id" string="Type"/>
<field name="user_id"/>
<field name="state"/>
</tree>
</field>
</record>
<record model="ir.ui.view" id="crm_case_calendar_view_meet">
<field name="name">CRM - Meetings Calendar</field>
<field name="model">crm.case</field>
<field name="type">calendar</field>
<field name="priority" eval="2"/>
<field name="arch" type="xml">
<calendar string="Meetings" date_start="date" color="user_id" date_delay="duration">
<field name="name"/>
<field name="section_id"/>
</calendar>
</field>
</record>
</data>
<record model="ir.ui.view" id="crm_case_form_view_meet">
<field name="name">CRM - Meetings Form</field>
<field name="model">crm.case</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Meetings Form">
<group colspan="4" col="6">
<field name="name" select="1" string="Title"/>
<field name="partner_id" on_change="onchange_partner_id(partner_id, email_from)" />
<field name="section_id"/>
<newline/>
<field name="date" string="Next Meeting"/>
<field name="duration" colspan="1" string="Meeting Duration"/>
<field name="categ_id" select="2" on_change="onchange_categ_id(categ_id)"/>
</group>
<notebook>
<page string="Meeting">
<field name="partner_address_id" on_change="onchange_partner_address_id(partner_address_id, email_from)"/>
<field name="priority" select="2"/>
<newline/>
<field name="user_id" select="2" string="Responsible"/>
<field name="email_from"/>
<newline/>
<field name="stage_id" select="1"/>
<field name="category2_id" select="1" string="Location"/>
<newline/>
<separator string="Description" colspan="4"/>
<field name="note" nolabel="1" colspan="4" />
<separator colspan="4"/>
<group col="8" colspan="4">
<field name="state" select="2"/>
<button name="case_close" string="Done" states="open,draft,pending" type="object"/>
<button name="case_open" string="Open" states="draft,pending" type="object"/>
<button name="case_cancel" string="Cancel Meeting" states="draft,open,pending" type="object"/>
<button name="case_pending" string="Pending" states="draft,open" type="object"/>
<button name="case_escalate" string="Escalate" states="open,draft,pending" type="object"/>
<button name="case_reset" string="Reset to Draft" states="done,cancel" type="object"/>
</group>
</page>
<page string="Extra Info">
<group colspan="4">
<field name="id"/>
<field name="active" select="2"/>
<newline/>
<field name="email_cc" colspan="1"/>
<field name="date_deadline" select="2" string="Deadlines"/>
<newline/>
<separator colspan="4" string="Dates"/>
<field name="create_date"/>
<field name="date_closed"/>
<field name="date_action_last"/>
<field name="date_action_next"/>
</group>
<separator colspan="4"/>
<field name="history_line" colspan="2" nolabel="1" mode="tree,form">
<form string="Communication history">
<group col="6" colspan="4">
<field name="date"/>
<field name="email"/>
<field name="canal_id"/>
</group>
<newline/>
<field name="description" colspan="4" nolabel="1"/>
</form>
<tree string="Communication history">
<field name="description"/>
<field name="email"/>
<field name="date"/>
</tree>
</field>
<group col="2" colspan="2" expand="1">
<field name="canal_id"/>
<field name="som"/>
<button name="add_reply" string="Add Last Mail for Replying"
states="open" type="object" colspan="2"/>
<field name="description" colspan="2" nolabel="1"/>
<button name="case_log_reply"
string="Send Partner &amp; Historize" states="open"
type="object"/>
<button name="case_log" string="Historize" states="open"
type="object"/>
</group>
<separator colspan="4" string="References"/>
<field name="ref" colspan="4"/>
<field name="ref2" colspan="4"/>
</page>
<page string="History">
<field name="log_ids" nolabel="1" colspan="4">
<form string="Actions">
<separator string="Action Information" colspan="4"/>
<field name="name" colspan="4"/>
<field name="date"/>
<field name="user_id"/>
<field name="som"/>
<field name="canal_id"/>
</form>
</field>
</page>
</notebook>
</form>
</field>
</record>
<record model="ir.ui.view" id="crm_case_tree_view_meet">
<field name="name">CRM - Meetings Tree</field>
<field name="model">crm.case</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Meetings Tree" colors="red:state=='open'">
<field name="id"/>
<field name="name" string="Title"/>
<field name="date" string="Next Meeting"/>
<field name="section_id"/>
<field name="priority"/>
<field name="stage_id"/>
<field name="categ_id"/>
<field name="category2_id" string="Type"/>
<field name="user_id"/>
<field name="state"/>
</tree>
</field>
</record>
<record model="ir.ui.view" id="crm_case_calendar_view_meet">
<field name="name">CRM - Meetings Calendar</field>
<field name="model">crm.case</field>
<field name="type">calendar</field>
<field name="priority" eval="2"/>
<field name="arch" type="xml">
<calendar string="Meetings" date_start="date" color="user_id" date_delay="duration">
<field name="name"/>
<field name="section_id"/>
</calendar>
</field>
</record>
</data>
</openerp>
File diff suppressed because it is too large Load Diff
+11 -11
View File
@@ -5,7 +5,7 @@
<record model="document.directory" id="dir_root">
<field name="name">Main Repository</field>
<field name="user_id" ref="base.user_admin"/>
<field name="ressource_id" eval="0"/>
</record>
@@ -13,7 +13,7 @@
<field name="name">My Folder</field>
<field name="parent_id" ref="dir_root"/>
<field name="user_id" ref="base.user_admin"/>
<field name="ressource_id" eval="0"/>
</record>
<record model="document.directory" id="dir_partner_category">
@@ -23,7 +23,7 @@
<field name="ressource_tree">1</field>
<field name="ressource_type_id" search="[('model','=','res.partner.category')]" />
<field name="user_id" ref="base.user_admin"/>
<field name="ressource_id" eval="0"/>
</record>
@@ -35,7 +35,7 @@
<field name="ressource_type_id" search="[('model','=','res.partner')]" />
<field name="ressource_parent_type_id" search="[('model','=','res.partner.category')]" />
<field name="user_id" ref="base.user_admin"/>
<field name="ressource_id" eval="0"/>
</record>
<record model="document.directory" id="dir_partner_contacts">
@@ -45,48 +45,48 @@
<field name="ressource_type_id" search="[('model','=','res.partner.address')]" />
<field name="ressource_parent_type_id" search="[('model','=','res.partner')]" />
<field name="user_id" ref="base.user_admin"/>
<field name="ressource_id" eval="0"/>
</record>
<record model="document.directory" id="dir_my_partner">
<field name="name">My Folder</field>
<field name="user_id" ref="base.user_admin"/>
<field name="ressource_parent_type_id" search="[('model','=','res.partner')]" />
<field name="ressource_id" eval="0"/>
</record>
<record model="document.directory" id="dir_personnal_folder">
<field name="name">Personnal Folders</field>
<field name="parent_id" ref="dir_root"/>
<field name="user_id" ref="base.user_admin"/>
<field name="ressource_id" eval="0"/>
</record>
<record model="document.directory" id="dir_sale_order">
<field name="name">Sales Order</field>
<field name="user_id" ref="base.user_admin"/>
<field name="parent_id" ref="dir_root"/>
<field name="ressource_id" eval="0"/>
</record>
<record model="document.directory" id="dir_sale_order_all">
<field name="name">All Sales Order</field>
<field name="user_id" ref="base.user_admin"/>
<field name="parent_id" ref="dir_sale_order"/>
<field name="ressource_id" eval="0"/>
</record>
<record model="document.directory" id="dir_sale_order_salesman">
<field name="name">Sales by Salesman</field>
<field name="user_id" ref="base.user_admin"/>
<field name="parent_id" ref="dir_sale_order"/>
<field name="ressource_id" eval="0"/>
</record>
<record model="document.directory" id="dir_project">
<field name="name">Projects</field>
<field name="user_id" ref="base.user_admin"/>
<field name="parent_id" ref="dir_root"/>
<field name="ressource_id" eval="0"/>
</record>
</data>
+4 -1
View File
@@ -24,8 +24,11 @@
"demo_xml" : ["event_demo.xml"],
"init_xml" : ["event_data.xml"],
"update_xml" : [
"event_wizard.xml",
"event_view.xml",
"event_sequence.xml",
"security/event_security.xml",
"security/ir.model.access.csv",
"event_wizard.xml","event_view.xml","event_sequence.xml"
],
"active" : False,
"installable" : True,
+13
View File
@@ -0,0 +1,13 @@
<?xml version="1.0"?>
<openerp>
<data>
<record id="menu_event_config" model="ir.ui.menu">
<field name="groups_id" eval="[(6,0,[ref('crm.group_crm_manager')])]"/>
</record>
<record id="menu_report_event" model="ir.ui.menu">
<field name="groups_id" eval="[(6,0,[ref('crm.group_crm_manager')])]"/>
</record>
</data>
</openerp>
+2 -1
View File
@@ -1,5 +1,6 @@
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
"access_event_type","event.type","model_event_type","crm.group_crm_user",1,1,1,1
"access_event_type","event.type","model_event_type","crm.group_crm_user",1,0,0,0
"access_event_type_manager","event.type manager","model_event_type","crm.group_crm_manager",1,1,1,1
"access_event_event","event.event","model_event_event","crm.group_crm_user",1,1,1,1
"access_event_registration","event.registration","model_event_registration","crm.group_crm_user",1,1,1,1
"access_report_event_registration","report.event.registration","model_report_event_registration","crm.group_crm_user",1,0,0,0
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_event_type event.type model_event_type crm.group_crm_user 1 1 0 1 0 1 0
3 access_event_type_manager event.type manager model_event_type crm.group_crm_manager 1 1 1 1
4 access_event_event event.event model_event_event crm.group_crm_user 1 1 1 1
5 access_event_registration event.registration model_event_registration crm.group_crm_user 1 1 1 1
6 access_report_event_registration report.event.registration model_report_event_registration crm.group_crm_user 1 0 0 0
+4 -1
View File
@@ -122,9 +122,12 @@ class hr_analytic_timesheet(osv.osv):
res = super(hr_analytic_timesheet, self).create(cr, uid, vals, context)
return res
except Exception,e:
if 'journal_id' in e.args[0]:
if '"journal_id" viol' in e.args[0]:
raise except_orm(_('ValidateError'),
_('No analytic journal available for this employee.\nDefine an employee for the selected user and assign an analytic journal.'))
elif '"account_id" viol' in e.args[0]:
raise except_orm(_('ValidateError'),
_('No analytic account defined on the project.\nPlease set one or we can not automatically fill the timesheet.'))
else:
raise
+5 -4
View File
@@ -6,15 +6,16 @@
"author" : "Tiny",
"website" : "http://openerp.com",
"category" : "Tools",
"description": """This module allows your user to easily and efficiently participate in the innovation of the enterprise. It allows everybody to express ideas about different subjects. Then, others userscan comment these ideas and vote for particular ideas. Each idea as a score based on the different votes. The managers can obtain an easy view on best ideas from all the users. Once installed, check the menu 'Ideas' in the 'Tools' main menu.""",
"description": """This module allows your user to easily and efficiently participate in the innovation of the enterprise. It allows everybody to express ideas about different subjects. Then, others users can comment these ideas and vote for particular ideas. Each idea as a score based on the different votes. The managers can obtain an easy view on best ideas from all the users. Once installed, check the menu 'Ideas' in the 'Tools' main menu.""",
"depends" : ['base'],
"init_xml" : [ ],
"demo_xml" : [ ],
"update_xml" : [
"security/ir.model.access.csv",
'idea_view.xml',
'idea_workflow.xml'
],
'idea_workflow.xml',
"security/idea_security.xml",
"security/ir.model.access.csv",
],
"installable": True
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+13
View File
@@ -0,0 +1,13 @@
<?xml version="1.0"?>
<openerp>
<data>
<record id="idea.menu_config" model="ir.ui.menu">
<field name="groups_id" eval="[(6,0,[ref('base.group_system')])]"/>
</record>
<record id="idea.menu_reporting" model="ir.ui.menu">
<field name="groups_id" eval="[(6,0,[ref('base.group_system')])]"/>
</record>
</data>
</openerp>
-6
View File
@@ -1,6 +0,0 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_idea_category,idea.category,model_idea_category,base.group_system,1,1,1,1
access_idea_idea,idea.idea,model_idea_idea,base.group_user,1,1,1,1
access_idea_comment,idea.comment,model_idea_comment,base.group_user,1,1,1,1
access_idea_vote,idea.vote,model_idea_vote,base.group_user,1,1,1,1
access_idea_vote_stat,idea.vote.stat,model_idea_vote_stat,base.group_user,1,1,1,1
+7 -6
View File
@@ -1,6 +1,7 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_idea_category,idea.category,model_idea_category,base.group_user,1,0,0,0
access_idea_idea,idea.idea,model_idea_idea,base.group_user,1,0,0,0
access_idea_comment,idea.comment,model_idea_comment,base.group_user,1,0,0,0
access_idea_vote,idea.vote,model_idea_vote,base.group_user,1,0,0,0
access_idea_vote_stat,idea.vote.stat,model_idea_vote_stat,base.group_user,1,0,0,0
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
"access_idea_category","idea.category","model_idea_category","base.group_user",1,0,0,0
"access_idea_idea","idea.idea","model_idea_idea","base.group_user",1,1,1,1
"access_idea_comment","idea.comment","model_idea_comment","base.group_user",1,1,1,1
"access_idea_vote","idea.vote","model_idea_vote","base.group_user",1,1,1,1
"access_idea_vote_stat","idea.vote.stat","model_idea_vote_stat","base.group_user",1,0,0,0
"access_idea_category_system","idea.category system","model_idea_category","base.group_system",1,1,1,1
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_idea_category idea.category model_idea_category base.group_user 1 0 0 0
3 access_idea_idea idea.idea model_idea_idea base.group_user 1 0 1 0 1 0 1
4 access_idea_comment idea.comment model_idea_comment base.group_user 1 0 1 0 1 0 1
5 access_idea_vote idea.vote model_idea_vote base.group_user 1 0 1 0 1 0 1
6 access_idea_vote_stat idea.vote.stat model_idea_vote_stat base.group_user 1 0 0 0
7 access_idea_category_system idea.category system model_idea_category base.group_system 1 1 1 1
+2 -2
View File
@@ -15,12 +15,12 @@
id="partner_wizard_vat_menu"/>
<wizard
string="VAT Declaration"
string="Taxes Statement"
name="wizard.account.xml.vat.declaration"
menu="False"
id="wizard_xml_vat_declaration"/>
<menuitem
name="VAT Declaration"
name="Taxes Statement"
parent="account.menu_finance_legal_statement"
action="wizard_xml_vat_declaration"
type="wizard"
+1 -1
View File
@@ -37,7 +37,7 @@
"name" : "France - Plan comptable Societe - 99-03",
"version" : "1.1",
"author" : "SISalp-NBconseil",
"category" : "Localisation/Account charts",
"category" : "Localisation/Account Charts",
"website": "http://erp-libre.info",
"depends" : ["base", "account", "account_chart", 'base_vat'],
"init_xml" : [],
+7
View File
@@ -6,6 +6,13 @@
<menuitem action="wizard_chart_report" id="menu_fr_chart_report" parent="account.menu_finance_reporting" type="wizard"/>
<record id="config_call_account_template" model="ir.actions.todo">
<field name="name">Generate Chart of Accounts from a Chart Template</field>
<field name="note">Generate Chart of Accounts from a Chart Template. You will be asked to pass the name of the company, the chart template to follow, the no. of digits to generate the code for your accounts and Bank account, currency to create Journals. Thus,the pure copy of chart Template is generated.
This is the same wizard that runs from Financial Managament/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template.</field>
<field name="action_id" ref="account.action_wizard_multi_chart"/>
<field name="state">open</field>
</record>
</data>
</openerp>
File diff suppressed because it is too large Load Diff
+638 -264
View File
File diff suppressed because it is too large Load Diff
+78 -23
View File
@@ -14,19 +14,19 @@
<!-- Nouveaux types de comptes -->
<record id="account_type_dettes" model="account.account.type">
<field name="name">dettes long terme</field>
<field name="name">Dettes long terme</field>
<field name="code">dettes</field>
<field name="close_method">balance</field>
</record>
<record id="account_type_immobilisations" model="account.account.type">
<field name="name">immobilisations</field>
<field name="code">immobilisations</field>
<field name="name">Immobilisations</field>
<field name="code">immobilization</field>
<field name="close_method">balance</field>
</record>
<record id="account_type_stocks" model="account.account.type">
<field name="name">stocks</field>
<field name="name">Stocks</field>
<field name="code">stocks</field>
<field name="close_method">balance</field>
</record>
@@ -34,31 +34,86 @@
<record id="account_type_cloture" model="account.account.type">
<field name="name">Cloture</field>
<field name="code">cloture</field>
<field name="close_method">none</field>
<field name="close_method">balance</field>
</record>
<record model="account.account.type" id="account_type_receivable" >
<field name="name">Receivable</field>
<field name="code">receivable</field>
<field name="close_method">unreconciled</field>
</record>
<record model="account.account.type" id="account_type_payable" >
<field name="name">Payable</field>
<field name="code">payable</field>
<field name="close_method">unreconciled</field>
</record>
<record model="account.account.type" id="account_type_view">
<field name="name">View</field>
<field name="code">view</field>
<field name="close_method">none</field>
</record>
<record model="account.account.type" id="account_type_income" >
<field name="name">Income</field>
<field name="code">income</field>
<field name="close_method">none</field>
</record>
<!-- Journaux de saisie -->
<record id="operations_journal" model="account.journal">
<field name="name">Journal des opérations diverses</field>
<field name="code">Op-Div</field>
<field name="type">purchase</field>
<field name="view_id" ref="account.account_journal_view"/>
<field name="sequence_id" ref="account.sequence_journal"/>
<field model="account.account" name="default_debit_account_id" search="[('type','=','payable')]"/>
<field model="account.account" name="default_credit_account_id" search="[('type','=','receivable')]"/>
</record>
<record id="bilan_journal" model="account.journal">
<field name="name">Journal d'ouverture</field>
<field name="code">Ouverture</field>
<field name="type">situation</field>
<field name="centralisation">True</field>
<field name="view_id" ref="account.account_journal_view"/>
<field name="sequence_id" ref="account.sequence_journal"/>
</record>
<record model="account.account.type" id="account_type_expense">
<field name="name">Expense</field>
<field name="code">expense</field>
<field name="close_method">none</field>
</record>
<record model="account.account.type" id="account_type_tax">
<field name="name">Tax</field>
<field name="code">tax</field>
<field name="close_method">balance</field>
</record>
<record model="account.account.type" id="account_type_cash">
<field name="name">Cash</field>
<field name="code">cash</field>
<field name="close_method">balance</field>
</record>
<record model="account.account.type" id="account_type_asset">
<field name="name">Asset</field>
<field name="code">asset</field>
<field name="close_method">balance</field>
</record>
<record model="account.account.type" id="account_type_equity">
<field name="name">Equity</field>
<field name="code">equity</field>
<field name="close_method">balance</field>
</record>
<record model="account.account.type" id="account_type_provision">
<field name="name">Provisions</field>
<field name="code">provision</field>
<field name="close_method">balance</field>
</record>
<record model="account.account.type" id="account_type_commitment">
<field name="name">Engagements</field>
<field name="code">commitment</field>
<field name="close_method">balance</field>
</record>
<record model="account.account.type" id="account_type_stock">
<field name="name">Actif circulant</field>
<field name="code">current asset</field>
<field name="close_method">balance</field>
</record>
<record model="account.account.type" id="account_type_special">
<field name="name">Comptes spéciaux</field>
<field name="code">special</field>
<field name="close_method">none</field>
</record>
</data>
</openerp>
+1 -1
View File
@@ -7,6 +7,6 @@
menu="False"
model="account.tax.code"
name="l10n_lu.tax.report.print"
string="Luxemburg VAT Declaration"/>
string="Luxembourg VAT Declaration"/>
</data>
</openerp>
+2 -2
View File
@@ -13,7 +13,7 @@ This is the same wizard that runs from Financial Managament/Configuration/Financ
<menuitem
id="legal_lu"
parent="account.menu_finance_legal_statement"
name="Luxemburg"/>
name="Luxembourg"/>
<wizard
id="wizard_print_vat"
@@ -21,7 +21,7 @@ This is the same wizard that runs from Financial Managament/Configuration/Financ
model="account.tax.code"
name="l10n_lu.tax.report.wizard" string="VAT Declaration"/>
<menuitem
<menuitem
id="legal_lu_vat"
parent="legal_lu"
type="wizard"
+1 -1
View File
@@ -82,7 +82,7 @@ class wizard_report(wizard.interface):
states = {
'init': {
'actions': [],
'result': {'type':'form', 'arch':_tax_form, 'fields':_tax_fields, 'state':[('end','Cancel'),('pdf','Print VAT Declaration')]},
'result': {'type':'form', 'arch':_tax_form, 'fields':_tax_fields, 'state':[('end','Cancel'),('pdf','Print Taxes Statement')]},
},
'pdf': {
'actions': [],
+1 -1
View File
@@ -1013,7 +1013,7 @@ class mrp_procurement(osv.osv):
}
taxes_ids = procurement.product_id.product_tmpl_id.supplier_taxes_id
self.pool.get('account.fiscal.position').map_tax(cr, uid, partner, taxes)
self.pool.get('account.fiscal.position').map_tax(cr, uid, partner, taxes_ids)
line.update({
'taxes_id':[(6,0,taxes_ids)]
})
+39 -48
View File
@@ -58,7 +58,7 @@ class mrp_production_workcenter_line(osv.osv):
'product':fields.related('production_id','product_id',type='many2one',relation='product.product',string='Product'),
'qty':fields.related('production_id','product_qty',type='float',string='Qty'),
'uom':fields.related('production_id','product_uom',type='many2one',relation='product.uom',string='UOM'),
}
_defaults = {
@@ -70,8 +70,8 @@ class mrp_production_workcenter_line(osv.osv):
wf_service = netsvc.LocalService("workflow")
oper_obj=self.browse(cr,uid,ids)[0]
prod_obj=self.pool.get('mrp.production').browse(cr,uid,[oper_obj.production_id.id])[0]
if action=='start':
if prod_obj.state =='ready':
if action=='start':
if prod_obj.state =='ready':
wf_service.trg_validate(uid, 'mrp.production', prod_obj.id, 'button_produce', cr)
elif prod_obj.state =='in_production':
return
@@ -87,35 +87,29 @@ class mrp_production_workcenter_line(osv.osv):
if flag:
wf_service.trg_validate(uid, 'mrp.production', oper_obj.production_id.id, 'button_produce_done', cr)
return
def action_draft(self, cr, uid, ids):
self.write(cr, uid, ids, {'state':'draft'})
# self.write(cr, uid, ids, {'state':'draft','date_start':None})
return True
def action_start_working(self, cr, uid, ids):
self.modify_production_order_state(cr,uid,ids,'start')
self.write(cr, uid, ids, {'state':'startworking'})
# self.write(cr, uid, ids, {'state':'confirm','date_start':DateTime.now().strftime('%Y-%m-%d %H:%M:%S')})
return True
def action_done(self, cr, uid, ids):
self.write(cr, uid, ids, {'state':'done'})
self.modify_production_order_state(cr,uid,ids,'done')
# self.write(cr, uid, ids, {'state':'done','date_finnished':DateTime.now().strftime('%Y-%m-%d %H:%M:%S')})
return True
def action_cancel(self, cr, uid, ids):
self.write(cr, uid, ids, {'state':'cancel'})
# self.write(cr, uid, ids, {'state':'cancel','date_start':None})
return True
def action_pause(self, cr, uid, ids):
print "callled THE ACTUAL PAUSE"
self.write(cr, uid, ids, {'state':'pause'})
# self.write(cr, uid, ids, {'state':'draft','date_start':None})
return True
def action_resume(self, cr, uid, ids):
self.write(cr, uid, ids, {'state':'startworking'})
return True
@@ -127,18 +121,12 @@ class mrp_production(osv.osv):
_inherit = 'mrp.production'
_description = 'Production'
# def action_confirm(self, cr, uid, ids):
# obj=self.browse(cr,uid,ids)[0]
# for workcenter_line in obj.workcenter_lines:
# tmp=self.pool.get('mrp.production.workcenter.line').action_start_working(cr,uid,[workcenter_line.id])
# return super(mrp_production,self).action_confirm(cr,uid,ids)
def action_production_end(self, cr, uid, ids):
obj=self.browse(cr,uid,ids)[0]
for workcenter_line in obj.workcenter_lines:
tmp=self.pool.get('mrp.production.workcenter.line').action_done(cr,uid,[workcenter_line.id])
return super(mrp_production,self).action_production_end(cr,uid,ids)
#
def action_cancel(self, cr, uid, ids):
obj=self.browse(cr,uid,ids)[0]
for workcenter_line in obj.workcenter_lines:
@@ -158,32 +146,32 @@ mrp_operations_operation_code()
class mrp_operations_operation(osv.osv):
_name="mrp_operations.operation"
def _order_date_search_production(self,cr,uid,ids):
operation_ids=self.pool.get('mrp_operations.operation').search(cr,uid,[('production_id','=',ids[0])])
return operation_ids
def _get_order_date(self, cr, uid, ids, field_name, arg, context):
res={}
operation_obj=self.browse(cr, uid, ids, context=context)
for operation in operation_obj:
res[operation.id]=operation.production_id.date_planned
return res
def calc_delay(self,cr,uid,vals):
code_lst=[]
time_lst=[]
code_ids=self.pool.get('mrp_operations.operation.code').search(cr,uid,[('id','=',vals['code_id'])])
code=self.pool.get('mrp_operations.operation.code').browse(cr,uid,code_ids)[0]
oper_ids=self.search(cr,uid,[('production_id','=',vals['production_id']),('workcenter_id','=',vals['workcenter_id'])])
oper_objs=self.browse(cr,uid,oper_ids)
for oper in oper_objs:
code_lst.append(oper.code_id.start_stop)
time_lst.append(oper.date_start)
code_lst.append(code.start_stop)
time_lst.append(vals['date_start'])
h=m=s=days=0
@@ -211,34 +199,34 @@ class mrp_operations_operation(osv.osv):
h=0
delay=str(days) +" Days "+ str(h) + " hrs and " + str(m)+ " mins"
return delay
def check_operation(self,cr,uid,vals):
code_ids=self.pool.get('mrp_operations.operation.code').search(cr,uid,[('id','=',vals['code_id'])])
code=self.pool.get('mrp_operations.operation.code').browse(cr,uid,code_ids)[0]
code_lst = []
oper_ids=self.search(cr,uid,[('production_id','=',vals['production_id']),('workcenter_id','=',vals['workcenter_id'])])
oper_objs=self.browse(cr,uid,oper_ids)
if not oper_objs:
if code.start_stop!='start':
raise osv.except_osv(_('Sorry!'),_('Operation is not started yet !'))
return False
else:
else:
for oper in oper_objs:
code_lst.append(oper.code_id.start_stop)
if code.start_stop=='start':
if 'start' in code_lst:
if 'start' in code_lst:
raise osv.except_osv(_('Sorry!'),_('Operation has already started !' 'You can either Pause /Finish/Cancel the operation'))
return False
if code.start_stop=='pause':
if code_lst[len(code_lst)-1]!='resume' and code_lst[len(code_lst)-1]!='start':
if code_lst[len(code_lst)-1]!='resume' and code_lst[len(code_lst)-1]!='start':
raise osv.except_osv(_('Error!'),_('You cannot Pause the Operation other then Start/Resume state !'))
return False
if code.start_stop=='resume':
if code_lst[len(code_lst)-1]!='pause':
if code.start_stop=='resume':
if code_lst[len(code_lst)-1]!='pause':
raise osv.except_osv(_('Error!'),_(' You cannot Resume the operation other then Pause state !'))
return False
if code.start_stop=='done':
if code_lst[len(code_lst)-1]!='start' and code_lst[len(code_lst)-1]!='resume':
raise osv.except_osv(_('Sorry!'),_('You cannot finish the operation without Starting/Resuming it !'))
@@ -254,24 +242,24 @@ class mrp_operations_operation(osv.osv):
raise osv.except_osv(_('Error!'),_('Operation is already finished !'))
return False
return True
def write(self, cr, uid, ids, vals, context=None):
oper_objs=self.browse(cr,uid,ids)[0]
vals['production_id']=oper_objs.production_id.id
vals['workcenter_id']=oper_objs.workcenter_id.id
if 'code_id' in vals:
self.check_operation(cr, uid, vals)
if 'date_start' in vals:
vals['date_start']=vals['date_start']
vals['code_id']=oper_objs.code_id.id
delay=self.calc_delay(cr, uid, vals)
wc_op_id=self.pool.get('mrp.production.workcenter.line').search(cr,uid,[('workcenter_id','=',vals['workcenter_id']),('production_id','=',vals['production_id'])])
self.pool.get('mrp.production.workcenter.line').write(cr,uid,wc_op_id,{'delay':delay})
return super(mrp_operations_operation, self).write(cr, uid, ids, vals, context=context)
def create(self, cr, uid, vals, context=None):
wf_service = netsvc.LocalService('workflow')
code_ids=self.pool.get('mrp_operations.operation.code').search(cr,uid,[('id','=',vals['code_id'])])
@@ -281,31 +269,34 @@ class mrp_operations_operation(osv.osv):
if not wc_op_id:
production_obj=self.pool.get('mrp.production').browse(cr,uid,vals['production_id'])
wc_op_id.append(self.pool.get('mrp.production.workcenter.line').create(cr,uid,{'production_id':vals['production_id'],'name':production_obj.product_id.name,'workcenter_id':vals['workcenter_id']}))
if code.start_stop=='start':
tmp=self.pool.get('mrp.production.workcenter.line').action_start_working(cr,uid,wc_op_id)
wf_service.trg_validate(uid, 'mrp.production.workcenter.line', wc_op_id[0], 'button_start_working', cr)
if code.start_stop=='done':
tmp=self.pool.get('mrp.production.workcenter.line').action_done(cr,uid,wc_op_id)
wf_service.trg_validate(uid, 'mrp.production.workcenter.line', wc_op_id[0], 'button_done', cr)
self.pool.get('mrp.production').write(cr,uid,vals['production_id'],{'date_finnished':DateTime.now().strftime('%Y-%m-%d %H:%M:%S')})
if code.start_stop=='pause':
print "in PAUSE"
tmp=self.pool.get('mrp.production.workcenter.line').action_pause(cr,uid,wc_op_id)
wf_service.trg_validate(uid, 'mrp.production.workcenter.line', wc_op_id[0], 'button_pause', cr)
if code.start_stop=='resume':
tmp=self.pool.get('mrp.production.workcenter.line').action_resume(cr,uid,wc_op_id)
wf_service.trg_validate(uid, 'mrp.production.workcenter.line', wc_op_id[0], 'button_resume', cr)
if code.start_stop=='cancel':
tmp=self.pool.get('mrp.production.workcenter.line').action_cancel(cr,uid,wc_op_id)
wf_service.trg_validate(uid, 'mrp.production.workcenter.line', wc_op_id[0], 'button_cancel', cr)
if not self.check_operation(cr, uid, vals):
return
delay=self.calc_delay(cr, uid, vals)
self.pool.get('mrp.production.workcenter.line').write(cr,uid,wc_op_id,{'delay':delay})
return super(mrp_operations_operation, self).create(cr, uid, vals, context=context)
_columns={
'production_id':fields.many2one('mrp.production','Production',required=True),
'workcenter_id':fields.many2one('mrp.workcenter','Workcenter',required=True),
@@ -10,7 +10,7 @@
<field name="arch" type="xml">
<field name="hour" position="after">
<button name="button_done" string="Finished" states="startworking"/>
<button name="button_start_working" string="Start working" states="draft,pause"/>
<button name="button_start_working" string="Start working" states="draft,pause"/>
<field name="uom"/>
<field name="qty"/>
<field name="product"/>
@@ -167,7 +167,7 @@
</field>
</record>
<!--<record model="ir.ui.view" id="mrp_production_operation_form_view">
<field name="name">mrp.production.operation.form</field>
@@ -191,12 +191,12 @@
<field name="view_id" ref="mrp_production_operation_tree_view"/>
</record>
<menuitem
<menuitem
name="Work Order Events Using Bar Codes"
parent="mrp.menu_mrp_root"
id="menu_mrp_production_operation_action"
parent="mrp.menu_mrp_root"
id="menu_mrp_production_operation_action"
action="mrp_production_operation_action"/>
<record model="ir.ui.view" id="operation_calendar_view">
<field name="name">mrp.perations.calendar</field>
<field name="model">mrp_operations.operation</field>
@@ -49,7 +49,7 @@
<field name="flow_stop">True</field>
<field name="action">action_done()</field>
</record>
# -----------------------------------------------------------
# Transition
# -----------------------------------------------------------
@@ -84,11 +84,29 @@
<field name="act_to" ref="prod_act_wc_pause"/>
<field name="signal">button_pause</field>
</record>
<record model="workflow.transition" id="prod_trans_wc_pause_resume">
<field name="act_from" ref="prod_act_wc_pause"/>
<field name="act_to" ref="prod_act_wc_resume"/>
<field name="signal">button_resume</field>
</record>
<record model="workflow.transition" id="prod_trans_wc_resume_pause">
<field name="act_from" ref="prod_act_wc_resume"/>
<field name="act_to" ref="prod_act_wc_pause"/>
<field name="signal">button_pause</field>
</record>
<record model="workflow.transition" id="prod_trans_wc_resume_cancel">
<field name="act_from" ref="prod_act_wc_resume"/>
<field name="act_to" ref="prod_act_wc_cancel"/>
<field name="signal">button_cancel</field>
</record>
<record model="workflow.transition" id="prod_trans_wc_resume_done">
<field name="act_from" ref="prod_act_wc_resume"/>
<field name="act_to" ref="prod_act_wc_done"/>
<field name="signal">button_done</field>
</record>
</data>
</openerp>
+50 -48
View File
@@ -2,76 +2,78 @@
<openerp>
<data>
<wizard id="action_open_margin" menu="False" model="product.product" name="product.margins" string="Product Margins"/>
<wizard id="action_open_margin" menu="False" model="product.product" name="product.margins" string="Product Margins"/>
<menuitem id="menu_product_reporting" name="Reporting" parent ="product.menu_main_product" />
<menuitem icon="STOCK_JUSTIFY_FILL" action="action_open_margin" id="menu_action_product_margin" type="wizard" sequence="5" parent="menu_product_reporting" />
<record model="ir.ui.view" id="view_product_margin_graph">
<record model="ir.ui.view" id="view_product_margin_graph">
<field name="name">product.margin.graph</field>
<field name="model">product.product</field>
<field name="type">graph</field>
<field name="priority" eval="50"/>
<field name="arch" type="xml">
<graph string="Product Margins" type="bar">
<field name="name"/>
<field name="turnover" operator="+"/>
<field name="total_cost" operator="+"/>
<field name="total_cost" operator="+"/>
</graph>
</field>
</record>
<record id="view_product_margin_form" model="ir.ui.view">
<record id="view_product_margin_form" model="ir.ui.view">
<field name="name">product.margin.form.inherit</field>
<field name="model">product.product</field>
<field name="type">form</field>
<field name="priority">5</field>
<field name="arch" type="xml">
<form string="Product Margins">
<group col="6" colspan="4">
<field name="type">form</field>
<field name="priority">50</field>
<field name="arch" type="xml">
<form string="Product Margins">
<group col="6" colspan="4">
<field name="name" select="1"/>
<field name="default_code" select="1"/>
</group>
<notebook colspan="4">
<page string="Margins">
<separator string="Analysis Criteria" colspan="4"/>
<field name="date_from"/>
<field name="date_to"/>
<newline/>
<field name="invoice_state" />
<separator string="Sales" colspan="4"/>
<field name="sale_avg_price"/>
<field name="list_price" string="Catalog Price" readonly="1"/>
<field name="sale_num_invoiced" />
<field name="sales_gap" />
<field name="turnover" />
<field name="sale_expected" />
<separator string="Purchases" colspan="4"/>
<field name="purchase_avg_price"/>
<field name="standard_price" string="Standard Price" readonly="1"/>
<field name="purchase_num_invoiced" />
<field name="purchase_gap" />
<field name="total_cost" />
<field name="normal_cost" />
<separator string="Margins" colspan="4"/>
<field name="total_margin"/>
<field name="expected_margin"/>
<field name="total_margin_rate" widget="progressbar"/>
<field name="expected_margin_rate" widget="progressbar"/>
</page>
</notebook>
</group>
<notebook colspan="4">
<page string="Margins">
<separator string="Analysis Criteria" colspan="4"/>
<field name="date_from"/>
<field name="date_to"/>
<newline/>
<field name="invoice_state" />
<separator string="Sales" colspan="4"/>
<field name="sale_avg_price"/>
<field name="list_price" string="Catalog Price" readonly="1"/>
<field name="sale_num_invoiced" />
<field name="sales_gap" />
<field name="turnover" />
<field name="sale_expected" />
<separator string="Purchases" colspan="4"/>
<field name="purchase_avg_price"/>
<field name="standard_price" string="Standard Price" readonly="1"/>
<field name="purchase_num_invoiced" />
<field name="purchase_gap" />
<field name="total_cost" />
<field name="normal_cost" />
<separator string="Margins" colspan="4"/>
<field name="total_margin"/>
<field name="expected_margin"/>
<field name="total_margin_rate" widget="progressbar"/>
<field name="expected_margin_rate" widget="progressbar"/>
</page>
</notebook>
</form>
</field>
</record>
<record id="view_product_margin_tree" model="ir.ui.view">
<record id="view_product_margin_tree" model="ir.ui.view">
<field name="name">product.margin.tree</field>
<field name="model">product.product</field>
<field name="type">tree</field>
<field name="priority" eval="50"/>
<field name="arch" type="xml">
<tree string="Product Margins">
<field name="name" select="1"/>
@@ -89,6 +91,6 @@
</tree>
</field>
</record>
</data>
</openerp>
@@ -43,9 +43,9 @@ def _action_open_window(self, cr, uid, data, context):
'res_model':'product.product',
'type': 'ir.actions.act_window',
'view_id': view_res,
}
}
class product_margins(wizard.interface):
form1 = '''<?xml version="1.0"?>
<form string="View Stock of Products">
@@ -58,13 +58,13 @@ class product_margins(wizard.interface):
'from_date': {
'string': 'From',
'type': 'date',
'default': lambda *a:time.strftime('%Y-01-01'),
'default': lambda *a:time.strftime('%Y-01-01'),
},
'to_date': {
'string': 'To',
'type': 'date',
'default': lambda *a:time.strftime('%Y-12-31'),
'default': lambda *a:time.strftime('%Y-12-31'),
},
'invoice_state': {
@@ -59,7 +59,7 @@ class profile_accounting_config_install_modules_wizard(osv.osv_memory):
ids += mod_obj.search(cr, uid, [('name', '=', r)])
mod_obj.action_install(cr, uid, ids, context=context)
cr.commit()
db, pool = pooler.restart_pool(cr.dbname,force_demo=True, update_module=True)
db, pool = pooler.restart_pool(cr.dbname,update_module=True)
return {
'view_type': 'form',
"view_mode": 'form',
@@ -58,7 +58,7 @@ class profile_association_config_install_modules_wizard(osv.osv_memory):
ids = mod_obj.search(cr, uid, [('name', '=', r)])
mod_obj.action_install(cr, uid, ids, context=context)
cr.commit()
db, pool = pooler.restart_pool(cr.dbname,force_demo=True, update_module=True)
db, pool = pooler.restart_pool(cr.dbname, update_module=True)
return {
'view_type': 'form',
"view_mode": 'form',
@@ -90,7 +90,7 @@ class profile_manufacturing_config_install_modules_wizard(osv.osv_memory):
ids = mod_obj.search(cr, uid, [('name', '=', r)])
mod_obj.action_install(cr, uid, ids, context=context)
cr.commit()
db, pool = pooler.restart_pool(cr.dbname,force_demo=True, update_module=True)
db, pool = pooler.restart_pool(cr.dbname,update_module=True)
return {
'view_type': 'form',
"view_mode": 'form',
+1 -1
View File
@@ -63,7 +63,7 @@ class profile_service_config_install_modules_wizard(osv.osv_memory):
ids = mod_obj.search(cr, uid, [('name', '=', r)])
mod_obj.action_install(cr,uid,ids,context=context)
cr.commit()
db, pool = pooler.restart_pool(cr.dbname,force_demo=True, update_module=True)
db, pool = pooler.restart_pool(cr.dbname, update_module=True)
return {
'view_type': 'form',
"view_mode": 'form',
@@ -12,5 +12,12 @@
<field name="name">Project / User</field>
</record>
<record model="ir.ui.menu" id="menu_definitions">
<field name="groups_id" eval="[(6,0,[ref('group_project_manager'), ref('group_project_finance')])]"/>
</record>
<record model="ir.ui.menu" id="menu_open_view_project">
<field name="groups_id" eval="[(6,0,[ref('group_project_manager')])]"/>
</record>
</data>
</openerp>
@@ -25,7 +25,6 @@ class project_work(osv.osv):
vals_line['amount']=(-1) * vals['hours']*obj.browse(cr,uid,timeline_id).product_id.standard_price
obj.write(cr, uid,[timeline_id],vals_line,{})
vals['hr_analytic_timesheet_id']=timeline_id
return super(project_work,self).create(cr, uid, vals, *args, **kwargs)
def write(self, cr, uid, ids,vals,context={}):
+36 -2
View File
@@ -154,7 +154,7 @@ class purchase_order(osv.osv):
_columns = {
'name': fields.char('Order Reference', size=64, required=True, select=True),
'origin': fields.char('Origin', size=64,
'origin': fields.char('Origin', size=64,
help="Reference of the document that generated this purchase order request."
),
'partner_ref': fields.char('Partner Ref.', size=64),
@@ -173,7 +173,7 @@ class purchase_order(osv.osv):
'pricelist_id':fields.many2one('product.pricelist', 'Pricelist', required=True, states={'confirmed':[('readonly',True)], 'approved':[('readonly',True)]}, help="The pricelist sets the currency used for this purchase order. It also computes the supplier price for the selected products/quantities."),
'state': fields.selection([('draft', 'Request for Quotation'), ('wait', 'Waiting'), ('confirmed', 'Confirmed'), ('approved', 'Approved'),('except_picking', 'Shipping Exception'), ('except_invoice', 'Invoice Exception'), ('done', 'Done'), ('cancel', 'Cancelled')], 'Order Status', readonly=True, help="The state of the purchase order or the quotation request. A quotation is a purchase order in a 'Draft' state. Then the order has to be confirmed by the user, the state switch to 'Confirmed'. Then the supplier must confirm the order to change the state to 'Approved'. When the purchase order is paid and received, the state becomes 'Done'. If a cancel action occurs in the invoice or in the reception of goods, the state becomes in exception.", select=True),
'order_line': fields.one2many('purchase.order.line', 'order_id', 'Order Lines', states={'confirmed':[('readonly',True)], 'approved':[('readonly',True)]}),
'order_line': fields.one2many('purchase.order.line', 'order_id', 'Order Lines', states={'approved':[('readonly',True)]}),
'validator' : fields.many2one('res.users', 'Validated by', readonly=True),
'notes': fields.text('Notes'),
'invoice_id': fields.many2one('account.invoice', 'Invoice', readonly=True),
@@ -285,6 +285,15 @@ class purchase_order(osv.osv):
'account_analytic_id': ol.account_analytic_id.id,
})
def action_cancel_draft(self, cr, uid, ids, *args):
if not len(ids):
return False
self.write(cr, uid, ids, {'state':'draft','shipped':0})
wf_service = netsvc.LocalService("workflow")
for p_id in ids:
wf_service.trg_create(uid, 'purchase.order', p_id, cr)
return True
def action_invoice_create(self, cr, uid, ids, *args):
res = False
for o in self.browse(cr, uid, ids):
@@ -329,6 +338,31 @@ class purchase_order(osv.osv):
return True
return False
def action_cancel(self, cr, uid, ids, context={}):
ok = True
purchase_order_line_obj = self.pool.get('purchase.order.line')
for purchase in self.browse(cr, uid, ids):
for pick in purchase.picking_ids:
if pick.state not in ('draft','cancel'):
raise osv.except_osv(
_('Could not cancel purchase order !'),
_('You must first cancel all packings attached to this purchase order.'))
for r in self.read(cr,uid,ids,['picking_ids']):
for pick in r['picking_ids']:
wf_service = netsvc.LocalService("workflow")
wf_service.trg_validate(uid, 'stock.picking', pick, 'button_cancel', cr)
for inv in purchase.invoice_ids:
if inv.state not in ('draft','cancel'):
raise osv.except_osv(
_('Could not cancel this purchase order !'),
_('You must first cancel all invoices attached to this purchase order.'))
for r in self.read(cr,uid,ids,['invoice_ids']):
for inv in r['invoice_ids']:
wf_service = netsvc.LocalService("workflow")
wf_service.trg_validate(uid, 'account.invoice', inv, 'invoice_cancel', cr)
self.write(cr,uid,ids,{'state':'cancel'})
return True
def action_picking_create(self,cr, uid, ids, *args):
picking_id = False
for order in self.browse(cr, uid, ids):
+2 -2
View File
@@ -63,8 +63,8 @@
<button name="purchase_appbuyer" states="wait_auth" string="Approve Purchase"/>
<button name="purchase_approve" states="confirmed" string="Approved by Supplier"/>
<button name="purchase_cancel" states="draft,confirmed,wait_auth" string="Cancel Purchase Order"/>
<button name="purchase_cancel" states="approved" string="Cancel Purchase Order"/>
<button name="action_cancel_draft" states="cancel" string="Set to Draft" type="object"/>
<button name="action_cancel" states="approved" string="Cancel Purchase Order" type="object"/>
<button name="shipping_ok" states="except_shipping" string="Shipping Done"/>
<button name="invoice_ok" states="except_invoice" string="Invoice Done"/>
+5 -6
View File
@@ -1,13 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<record id="purchase_order" model="workflow">
<field name="name">Purchase Order Basic Workflow</field>
<field name="osv">purchase.order</field>
<field name="on_create">True</field>
</record>
<record id="act_draft" model="workflow.activity">
<field name="wkf_id" ref="purchase_order"/>
<field name="flow_start">True</field>
@@ -22,9 +22,8 @@
<record id="act_cancel" model="workflow.activity">
<field name="wkf_id" ref="purchase_order"/>
<field name="name">cancel</field>
<field name="kind">function</field>
<field name="action">write({'state':'cancel'})</field>
<field name="kind">stopall</field>
<field name="flow_stop">True</field>
</record>
<record id="act_except_invoice" model="workflow.activity">
<field name="wkf_id" ref="purchase_order"/>
@@ -84,7 +83,7 @@
<field name="flow_stop">True</field>
<field name="join_mode">AND</field>
</record>
<record id="trans_draft_confirmed" model="workflow.transition">
<field name="act_from" ref="act_draft"/>
<field name="act_to" ref="act_confirmed"/>
@@ -177,6 +176,6 @@
<field name="act_from" ref="act_invoice_end"/>
<field name="act_to" ref="act_done"/>
</record>
</data>
</openerp>