[MERGE]: merge with lp:~openerp-dev/openobject-addons/trunk-dev-addons3
bzr revid: atp@tinyerp.co.in-20100527053425-ombfy3edopdxuwtb
This commit is contained in:
@@ -239,7 +239,7 @@
|
||||
<field name="arch" type="xml">
|
||||
<form string="Journal View">
|
||||
<field colspan="4" name="name" select="1"/>
|
||||
<field colspan="4" name="columns_id" widget="one2many_list"/>
|
||||
<field colspan="4" name="columns_id" nolabel="1" widget="one2many_list"/>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
@@ -277,20 +277,41 @@
|
||||
|
||||
<notebook colspan="4">
|
||||
<page string="General Information">
|
||||
<field name="view_id"/>
|
||||
<field name="currency"/>
|
||||
<field name="sequence_id"/>
|
||||
<field name="invoice_sequence_id"/>
|
||||
<field name="default_debit_account_id" attrs="{'required':[('type','=','cash')]}" domain="[('type','<>','view'),('type','<>','consolidation')]"/>
|
||||
<field name="default_credit_account_id" attrs="{'required':[('type','=','cash')]}" domain="[('type','<>','view'),('type','<>','consolidation')]"/>
|
||||
<field name="user_id" groups="base.group_extended"/>
|
||||
<field name="allow_date" groups="base.group_extended"/>
|
||||
<field name="company_id" groups="base.group_multi_company"/>
|
||||
<newline/>
|
||||
<field name="centralisation"/>
|
||||
<field name="group_invoice_lines"/>
|
||||
<field name="update_posted"/>
|
||||
<field name="entry_posted"/>
|
||||
<group colspan="2" col="2">
|
||||
<separator string="Journal View" colspan="4"/>
|
||||
<field name="view_id"/>
|
||||
</group>
|
||||
|
||||
<group colspan="2" col="2">
|
||||
<separator string="Sequence" colspan="4"/>
|
||||
<field name="sequence_id"/>
|
||||
<field name="invoice_sequence_id"/>
|
||||
</group>
|
||||
|
||||
<group colspan="2" col="2">
|
||||
<separator string="Accounts" colspan="4"/>
|
||||
<field name="default_debit_account_id" attrs="{'required':[('type','=','cash')]}" domain="[('type','<>','view'),('type','<>','consolidation')]"/>
|
||||
<field name="default_credit_account_id" attrs="{'required':[('type','=','cash')]}" domain="[('type','<>','view'),('type','<>','consolidation')]"/>
|
||||
</group>
|
||||
|
||||
<group colspan="2" col="2">
|
||||
<separator string="Validations" colspan="4"/>
|
||||
<field name="allow_date" groups="base.group_extended"/>
|
||||
</group>
|
||||
|
||||
<group colspan="2" col="2">
|
||||
<separator string="Company" colspan="4"/>
|
||||
<field name="company_id" groups="base.group_multi_company"/>
|
||||
<field name="user_id" groups="base.group_extended"/>
|
||||
<field name="currency"/>
|
||||
</group>
|
||||
<group colspan="2" col="2">
|
||||
<separator string="Other Configuration" colspan="4"/>
|
||||
<field name="centralisation"/>
|
||||
<field name="group_invoice_lines"/>
|
||||
<field name="update_posted"/>
|
||||
<field name="entry_posted"/>
|
||||
</group>
|
||||
</page>
|
||||
<page string="Entry Controls">
|
||||
<separator colspan="4" string="Accounts Type Allowed (empty for no control)"/>
|
||||
@@ -342,7 +363,7 @@
|
||||
<group colspan="2" col="3">
|
||||
<!-- <button name="%(action_view_account_statement_from_invoice)d"-->
|
||||
<!-- string="Import Invoice" type="action" attrs="{'invisible':[('state','=','confirm')]}" icon="gtk-open"/>-->
|
||||
<button name="button_import_invoice" string="Import Invoice" attrs="{'invisible':[('state','=','confirm')]}" type="object" icon="gtk-apply"/>
|
||||
<button name="button_import_invoice" string="Import Invoice" attrs="{'invisible':[('state','=','confirm')]}" type="object" icon="gtk-apply"/>
|
||||
</group>
|
||||
<newline/>
|
||||
<field name="balance_start"/>
|
||||
|
||||
@@ -23,7 +23,6 @@ import time
|
||||
import decimal_precision as dp
|
||||
|
||||
import netsvc
|
||||
|
||||
from osv import fields, osv, orm
|
||||
import pooler
|
||||
from tools import config
|
||||
|
||||
@@ -58,7 +58,7 @@
|
||||
<filter icon="terp-account"
|
||||
string="Pending"
|
||||
domain="[('state','=','pending')]"/>
|
||||
<separator orientation="vertical"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="name"/>
|
||||
<field name="user_id" widget="selection">
|
||||
<filter icon="terp-account"
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
You can define your multiple levels of recall through the menu:
|
||||
Financial Management/Configuration/Payment Terms/Follow-Ups
|
||||
|
||||
Once it's defined, you can automatically prints recall every days
|
||||
Once it's defined, you can automatically print recalls every day
|
||||
through simply clicking on the menu:
|
||||
Financial_Management/Periodical_Processing/Print_Follow-Ups
|
||||
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
* add titles, comment lines, sub total lines
|
||||
* draw horizontal lines and put page breaks
|
||||
|
||||
Moreover, there is one option which allow you to print all the selected invoices with a given special message at the bottom of it. This feature can be very useful for printing your invoices with end-of-year wishes, special punctual conditions...
|
||||
Moreover, there is one option which allows you to print all the selected invoices with a given special message at the bottom of it. This feature can be very useful for printing your invoices with end-of-year wishes, special punctual conditions...
|
||||
|
||||
""",
|
||||
'author': 'Tiny',
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
"depends": ["account"],
|
||||
"init_xml": [],
|
||||
"description": """
|
||||
This module provide :
|
||||
This module provides :
|
||||
* a more efficient way to manage invoice payment.
|
||||
* a basic mechanism to easily plug various automated payment.
|
||||
""",
|
||||
|
||||
@@ -24,8 +24,8 @@
|
||||
"version" : "1.0",
|
||||
"author" : 'Tiny & Axelor',
|
||||
"description": """
|
||||
India Accounting module includes all the basic requirenment of
|
||||
Basic Accounting, plus new things which available are
|
||||
Indian Accounting module includes all the basic requirenments of
|
||||
Basic Accounting, plus new things which are available :
|
||||
* Indian Account Chart
|
||||
* New Invoice - (Local, Retail)
|
||||
* Invoice Report
|
||||
@@ -36,7 +36,10 @@
|
||||
""",
|
||||
"category" : "Generic Modules/Accounting",
|
||||
"website" : "http://tinyerp.com",
|
||||
"depends" : ["base", "account"],
|
||||
"depends" : [
|
||||
"base",
|
||||
"account"
|
||||
],
|
||||
"init_xml" : [
|
||||
],
|
||||
|
||||
@@ -46,10 +49,12 @@
|
||||
"update_xml" : [
|
||||
"security/ir.model.access.csv",
|
||||
"voucher_sequence.xml",
|
||||
"voucher_workflow.xml",
|
||||
"voucher_report.xml",
|
||||
"voucher_view.xml",
|
||||
"voucher_wizard.xml",
|
||||
"wizard/account_voucher_open_view.xml",
|
||||
|
||||
],
|
||||
'certificate': '0037580727101',
|
||||
"active": False,
|
||||
|
||||
@@ -28,6 +28,17 @@ import mx.DateTime
|
||||
from mx.DateTime import RelativeDateTime
|
||||
from tools import config
|
||||
|
||||
type2journal = {
|
||||
'rec_voucher': 'cash',
|
||||
'bank_rec_voucher': 'cash',
|
||||
'pay_voucher': 'cash',
|
||||
'bank_pay_voucher': 'cash',
|
||||
'cont_voucher': 'cash',
|
||||
'journal_sale_vou': 'sale',
|
||||
'journal_pur_voucher': 'purchase',
|
||||
'journal_voucher':'expanse'
|
||||
}
|
||||
|
||||
class ir_sequence_type(osv.osv):
|
||||
_inherit = "ir.sequence.type"
|
||||
_columns = {
|
||||
@@ -36,7 +47,15 @@ class ir_sequence_type(osv.osv):
|
||||
}
|
||||
ir_sequence_type()
|
||||
|
||||
class account_journal(osv.osv):
|
||||
_inherit = "account.journal"
|
||||
_columns = {
|
||||
'max_amount': fields.float('Verify Transection', digits=(16, int(config['price_accuracy'])), help="Validate voucher entry twice before posting it, if transection amount more then entered here"),
|
||||
}
|
||||
account_journal()
|
||||
|
||||
class account_voucher(osv.osv):
|
||||
|
||||
def _get_period(self, cr, uid, context):
|
||||
periods = self.pool.get('account.period').find(cr, uid)
|
||||
if periods:
|
||||
@@ -45,34 +64,22 @@ class account_voucher(osv.osv):
|
||||
return False
|
||||
|
||||
def _get_type(self, cr, uid, context={}):
|
||||
type = context.get('type', 'rec_voucher')
|
||||
type = context.get('type', 'bank_rec_voucher')
|
||||
return type
|
||||
|
||||
def _get_reference_type(self, cursor, user, context=None):
|
||||
return [('none', 'Free Reference')]
|
||||
|
||||
def _get_journal(self, cr, uid, context):
|
||||
type_inv = 'rec_voucher'
|
||||
|
||||
if type(context) == type(''):
|
||||
type_inv = context
|
||||
elif type(context) == type({}):
|
||||
type_inv = context.get('type', 'rec_voucher')
|
||||
|
||||
type2journal = {
|
||||
'rec_voucher': 'cash',
|
||||
'bank_rec_voucher': 'cash',
|
||||
'pay_voucher': 'cash',
|
||||
'bank_pay_voucher': 'cash',
|
||||
'cont_voucher': 'cash',
|
||||
'journal_sale_vou': 'sale',
|
||||
'journal_pur_voucher': 'purchase',
|
||||
'journal_voucher':'expanse'
|
||||
}
|
||||
|
||||
journal_obj = self.pool.get('account.journal')
|
||||
ttype = type2journal.get(type_inv, 'cash')
|
||||
res = journal_obj.search(cr, uid, [('type', '=', ttype)], limit=1)
|
||||
def _get_journal(self, cr, uid, context={}):
|
||||
journal_pool = self.pool.get('account.journal')
|
||||
|
||||
if context.get('journal_id', False):
|
||||
return context.get('journal_id')
|
||||
|
||||
type_inv = context.get('type', 'rec_voucher')
|
||||
|
||||
ttype = type2journal.get(type_inv, type_inv)
|
||||
res = journal_pool.search(cr, uid, [('type', '=', ttype)], limit=1)
|
||||
|
||||
if res:
|
||||
return res[0]
|
||||
@@ -80,7 +87,7 @@ class account_voucher(osv.osv):
|
||||
return False
|
||||
|
||||
def _get_currency(self, cr, uid, context):
|
||||
user = pooler.get_pool(cr.dbname).get('res.users').browse(cr, uid, [uid])[0]
|
||||
user = pooler.get_pool(cr.dbname).get('res.users').browse(cr, uid, uid)
|
||||
if user.company_id:
|
||||
return user.company_id.currency_id.id
|
||||
else:
|
||||
@@ -92,13 +99,13 @@ class account_voucher(osv.osv):
|
||||
_columns = {
|
||||
'name':fields.char('Name', size=256, required=True, readonly=True, states={'draft':[('readonly',False)]}),
|
||||
'type': fields.selection([
|
||||
('pay_voucher','Cash Payment Voucher'),
|
||||
('bank_pay_voucher','Bank Payment Voucher'),
|
||||
('rec_voucher','Cash Receipt Voucher'),
|
||||
('bank_rec_voucher','Bank Receipt Voucher'),
|
||||
('cont_voucher','Contra Voucher'),
|
||||
('journal_sale_vou','Journal Sale Voucher'),
|
||||
('journal_pur_voucher','Journal Purchase Voucher'),
|
||||
('pay_voucher','Cash Payment'),
|
||||
('bank_pay_voucher','Bank Payment'),
|
||||
('rec_voucher','Cash Receipt'),
|
||||
('bank_rec_voucher','Bank Receipt'),
|
||||
('cont_voucher','Contra'),
|
||||
('journal_sale_vou','Journal Sale'),
|
||||
('journal_pur_voucher','Journal Purchase'),
|
||||
('journal_voucher','Journal Voucher'),
|
||||
],'Type', readonly=True, select=True , size=128),
|
||||
'date':fields.date('Date', readonly=True, states={'draft':[('readonly',False)]}),
|
||||
@@ -110,16 +117,17 @@ class account_voucher(osv.osv):
|
||||
'currency_id': fields.many2one('res.currency', 'Currency', required=True, readonly=True, states={'draft':[('readonly',False)]}),
|
||||
'company_id': fields.many2one('res.company', 'Company', required=True),
|
||||
'state':fields.selection(
|
||||
[('draft','Draft'),
|
||||
('proforma','Pro-forma'),
|
||||
('posted','Posted'),
|
||||
('cancel','Cancel')
|
||||
], 'State',
|
||||
readonly=True,
|
||||
help=' * The \'Draft\' state is used when a user is encoding a new and unconfirmed Voucher. \
|
||||
[('draft','Draft'),
|
||||
('proforma','Pro-forma'),
|
||||
('posted','Posted'),
|
||||
('recheck','Waiting for Re-checking'),
|
||||
('cancel','Cancel'),
|
||||
('audit','Audit Complete')
|
||||
], 'State', readonly=True, size=32,
|
||||
help=' * The \'Draft\' state is used when a user is encoding a new and unconfirmed Voucher. \
|
||||
\n* The \'Pro-forma\' when voucher is in Pro-forma state,voucher does not have an voucher number. \
|
||||
\n* The \'Posted\' state is used when user create voucher,a voucher number is generated and voucher entries are created in account \
|
||||
\n* The \'Cancelled\' state is used when user cancel voucher.'),
|
||||
\n* The \'Cancelled\' state is used when user cancel voucher.'),
|
||||
'amount':fields.float('Amount', readonly=True),
|
||||
'number':fields.char('Number', size=32, readonly=True),
|
||||
'reference': fields.char('Voucher Reference', size=64),
|
||||
@@ -433,14 +441,14 @@ class account_voucher(osv.osv):
|
||||
if not len(ids):
|
||||
return []
|
||||
types = {
|
||||
'pay_voucher': 'CPV: ',
|
||||
'rec_voucher': 'CRV: ',
|
||||
'cont_voucher': 'CV: ',
|
||||
'bank_pay_voucher': 'BPV: ',
|
||||
'bank_rec_voucher': 'BRV: ',
|
||||
'journal_sale_vou': 'JSV: ',
|
||||
'journal_pur_voucher': 'JPV: ',
|
||||
'journal_voucher':'JV'
|
||||
'pay_voucher': 'CPV: ',
|
||||
'rec_voucher': 'CRV: ',
|
||||
'cont_voucher': 'CV: ',
|
||||
'bank_pay_voucher': 'BPV: ',
|
||||
'bank_rec_voucher': 'BRV: ',
|
||||
'journal_sale_vou': 'JSV: ',
|
||||
'journal_pur_voucher': 'JPV: ',
|
||||
'journal_voucher':'JV'
|
||||
}
|
||||
return [(r['id'], types[r['type']]+(r['number'] or '')+' '+(r['name'] or '')) for r in self.read(cr, uid, ids, ['type', 'number', 'name'], context, load='_classic_write')]
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<field name="model">account.voucher</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Vouchers">
|
||||
<tree string="Accounting Vouchers">
|
||||
<field name="date"/>
|
||||
<field name="number"/>
|
||||
<field name="name"/>
|
||||
@@ -25,7 +25,7 @@
|
||||
<field name="model">account.voucher</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Voucher">
|
||||
<form string="Accounting Voucher">
|
||||
<group col="6" colspan="4">
|
||||
<field name="name" colspan="4"/>
|
||||
<field name="journal_id" select="1" on_change="onchange_journal(journal_id,type)"/>
|
||||
@@ -36,8 +36,8 @@
|
||||
<!--field name="partner_id"/-->
|
||||
</group>
|
||||
<notebook colspan="4">
|
||||
<page string="Entry Lines">
|
||||
<field name="payment_ids" colspan="4" nolabel="1" height="275">
|
||||
<page string="Journal Entries">
|
||||
<field name="payment_ids" colspan="4" nolabel="1" height="260">
|
||||
<tree string="Voucher Lines" editable="top">
|
||||
<field name="account_analytic_id"/>
|
||||
<field name="partner_id" on_change="onchange_partner(partner_id,type,parent.type)"/>
|
||||
@@ -49,13 +49,14 @@
|
||||
</tree>
|
||||
</field>
|
||||
<separator string="Narration" colspan="4"/>
|
||||
<field name="narration" colspan="4" nolabel="1"/>
|
||||
<field name="narration" colspan="4" nolabel="1" height="50"/>
|
||||
<group col="6" colspan="6">
|
||||
<field name="state"/>
|
||||
<button name="open_voucher" string="Pro-forma" states="draft" type="object" icon="gtk-open"/>
|
||||
<button name="proforma_voucher" string="Create" states="proforma" type="object" icon="gtk-go-forward"/>
|
||||
<button name="cancel_voucher" string="Cancel" states="draft,proforma,posted" type="object" icon="gtk-cancel"/>
|
||||
<button name="action_cancel_draft" states="cancel" type="object" string="Set to Draft" icon="gtk-convert"/>
|
||||
<button name="open_voucher" string="Pro-forma" states="draft"/>
|
||||
<button name="proforma_voucher" string="Create" states="proforma"/>
|
||||
<button name="recheck_voucher" string="Validate" states="recheck"/>
|
||||
<button name="cancel_voucher" string="Cancel" states="draft,proforma,recheck" type="object"/>
|
||||
<button name="action_cancel_draft" states="cancel" string="Set to Draft" type="object"/>
|
||||
</group>
|
||||
</page>
|
||||
<page string="Other Info">
|
||||
@@ -103,19 +104,9 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.actions.act_window" id="action_voucher_list">
|
||||
<field name="name">Vouchers</field>
|
||||
<field name="res_model">account.voucher</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="view_id" eval="view_voucher_tree"/>
|
||||
</record>
|
||||
<menuitem action="action_voucher_list" id="menu_action_voucher_list"
|
||||
name="Voucher Entries" parent="account.menu_finance_entries" sequence="60"/>
|
||||
|
||||
<!-- Receipt Vouchers -->
|
||||
<record model="ir.actions.act_window" id="action_receipt_vou_voucher_list">
|
||||
<field name="name">Receipt Vouchers</field>
|
||||
<field name="name">Receivable Entries</field>
|
||||
<field name="res_model">account.voucher</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
@@ -123,8 +114,8 @@
|
||||
<field name="domain">[('type','like','rec_voucher')]</field>
|
||||
<field name="context">{'type':'rec_voucher'}</field>
|
||||
</record>
|
||||
<menuitem name="Receipt Vouchers" id="menu_action_receipt_vou_voucher_list"
|
||||
action="action_receipt_vou_voucher_list" parent="menu_action_voucher_list"/>
|
||||
<menuitem id="menu_action_receipt_vou_voucher_list"
|
||||
action="action_receipt_vou_voucher_list" parent="account.menu_finance_entries" sequence="8"/>
|
||||
|
||||
<record model="ir.actions.act_window" id="action_receipt_cashreceipt_voucher_list">
|
||||
<field name="name">Cash Receipt</field>
|
||||
@@ -135,7 +126,7 @@
|
||||
<field name="domain">[('type','=','rec_voucher')]</field>
|
||||
<field name="context">{'type':'rec_voucher'}</field>
|
||||
</record>
|
||||
<menuitem name="Cash Receipts" id="menu_action_receipt_cashreceipt_voucher_list"
|
||||
<menuitem id="menu_action_receipt_cashreceipt_voucher_list"
|
||||
action="action_receipt_cashreceipt_voucher_list" parent="menu_action_receipt_vou_voucher_list"/>
|
||||
|
||||
<record model="ir.actions.act_window" id="action_receipt_bakreceipt_voucher_list">
|
||||
@@ -147,7 +138,7 @@
|
||||
<field name="domain">[('type','=','bank_rec_voucher')]</field>
|
||||
<field name="context">{'type':'bank_rec_voucher'}</field>
|
||||
</record>
|
||||
<menuitem name="Bank Receipts" id="menu_action_receipt_bakreceipt_voucher_list"
|
||||
<menuitem id="menu_action_receipt_bakreceipt_voucher_list"
|
||||
action="action_receipt_bakreceipt_voucher_list" parent="menu_action_receipt_vou_voucher_list"/>
|
||||
|
||||
<!-- End Receipt Vouchers -->
|
||||
@@ -155,7 +146,7 @@
|
||||
|
||||
<!-- Payment Vouchers -->
|
||||
<record model="ir.actions.act_window" id="action_payments_voucher_list">
|
||||
<field name="name">Payment Vouchers</field>
|
||||
<field name="name">Payable Entries</field>
|
||||
<field name="res_model">account.voucher</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
@@ -163,11 +154,11 @@
|
||||
<field name="domain">[('type','like','pay_voucher')]</field>
|
||||
<field name="context">{'type':'pay_voucher'}</field>
|
||||
</record>
|
||||
<menuitem name="Payment Vouchers" id="menu_action_payments_voucher_list"
|
||||
action="action_payments_voucher_list" parent="menu_action_voucher_list"/>
|
||||
<menuitem id="menu_action_payments_voucher_list"
|
||||
action="action_payments_voucher_list" parent="account.menu_finance_entries" sequence="8"/>
|
||||
|
||||
<record model="ir.actions.act_window" id="action_payments_cashpay_voucher_list">
|
||||
<field name="name">Payment Vouchers</field>
|
||||
<field name="name">Cash Payment</field>
|
||||
<field name="res_model">account.voucher</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
@@ -175,11 +166,11 @@
|
||||
<field name="domain">[('type','=','pay_voucher')]</field>
|
||||
<field name="context">{'type':'pay_voucher'}</field>
|
||||
</record>
|
||||
<menuitem name="Cash Payments" id="menu_action_payments_cashpay_voucher_list"
|
||||
<menuitem id="menu_action_payments_cashpay_voucher_list"
|
||||
action="action_payments_cashpay_voucher_list" parent="menu_action_payments_voucher_list"/>
|
||||
|
||||
<record model="ir.actions.act_window" id="action_payments_bankpay_voucher_list">
|
||||
<field name="name">Payment Vouchers</field>
|
||||
<field name="name">Bank Payment</field>
|
||||
<field name="res_model">account.voucher</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
@@ -187,24 +178,24 @@
|
||||
<field name="domain">[('type','=','bank_pay_voucher')]</field>
|
||||
<field name="context">{'type':'bank_pay_voucher'}</field>
|
||||
</record>
|
||||
<menuitem name="Bank Payments" id="menu_action_payments_bankpay_voucher_list"
|
||||
<menuitem id="menu_action_payments_bankpay_voucher_list"
|
||||
action="action_payments_bankpay_voucher_list" parent="menu_action_payments_voucher_list"/>
|
||||
|
||||
<!-- End Payment Vouchers -->
|
||||
|
||||
<!-- Other Voucher Enries -->
|
||||
<record model="ir.actions.act_window" id="action_other_voucher_list">
|
||||
<field name="name">Other Vouchers</field>
|
||||
<field name="name">Other Entries</field>
|
||||
<field name="res_model">account.voucher</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="view_id" eval="view_voucher_tree"/>
|
||||
</record>
|
||||
<menuitem name="Other Vouchers" id="menu_action_other_voucher_list"
|
||||
action="action_other_voucher_list" parent="menu_action_voucher_list"/>
|
||||
<menuitem id="menu_action_other_voucher_list"
|
||||
action="action_other_voucher_list" parent="account.menu_finance_entries" sequence="8"/>
|
||||
|
||||
<record model="ir.actions.act_window" id="action_view_cont_voucher_form">
|
||||
<field name="name">Contra Voucher</field>
|
||||
<field name="name">Contra Entries</field>
|
||||
<field name="res_model">account.voucher</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
@@ -212,11 +203,11 @@
|
||||
<field name="domain">[('type','=','cont_voucher')]</field>
|
||||
<field name="context">{'type':'cont_voucher'}</field>
|
||||
</record>
|
||||
<menuitem name="Contra Voucher" id="menu_action_view_cont_voucher_form"
|
||||
<menuitem id="menu_action_view_cont_voucher_form"
|
||||
action="action_view_cont_voucher_form" parent="menu_action_other_voucher_list"/>
|
||||
|
||||
<record model="ir.actions.act_window" id="action_view_jour_sale_voucher_form">
|
||||
<field name="name">Journal Sale Voucher</field>
|
||||
<field name="name">Journal Sale</field>
|
||||
<field name="res_model">account.voucher</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
@@ -224,11 +215,11 @@
|
||||
<field name="domain">[('type','=','journal_sale_vou')]</field>
|
||||
<field name="context">{'type':'journal_sale_vou'}</field>
|
||||
</record>
|
||||
<menuitem name="Journal Sale Voucher" id="menu_action_view_jour_sale_voucher_form"
|
||||
<menuitem id="menu_action_view_jour_sale_voucher_form"
|
||||
action="action_view_jour_sale_voucher_form" parent="menu_action_other_voucher_list"/>
|
||||
|
||||
<record model="ir.actions.act_window" id="action_view_jour_pur_voucher_form">
|
||||
<field name="name">Journal Purchase Voucher</field>
|
||||
<field name="name">Journal Purchase</field>
|
||||
<field name="res_model">account.voucher</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
@@ -236,7 +227,7 @@
|
||||
<field name="domain">[('type','=','journal_pur_voucher')]</field>
|
||||
<field name="context">{'type':'journal_pur_voucher'}</field>
|
||||
</record>
|
||||
<menuitem name="Journal Purchase Voucher" id="menu_action_view_jour_pur_voucher_form"
|
||||
<menuitem id="menu_action_view_jour_pur_voucher_form"
|
||||
action="action_view_jour_pur_voucher_form" parent="menu_action_other_voucher_list"/>
|
||||
|
||||
<record model="ir.actions.act_window" id="action_view_jour_voucher_form">
|
||||
@@ -248,9 +239,28 @@
|
||||
<field name="domain">[('type','=','journal_voucher')]</field>
|
||||
<field name="context">{'type':'journal_voucher'}</field>
|
||||
</record>
|
||||
<menuitem
|
||||
name="Journal Voucher" id="menu_action_view_jour_voucher_form"
|
||||
<menuitem id="menu_action_view_jour_voucher_form"
|
||||
action="action_view_jour_voucher_form" parent="menu_action_other_voucher_list"/>
|
||||
|
||||
|
||||
<record model="ir.ui.view" id="view_account_journal_form_inherit">
|
||||
<field name="name">account.journal.form.inherit</field>
|
||||
<field name="model">account.journal</field>
|
||||
<field name="type">form</field>
|
||||
<field name="inherit_id" ref="account.view_account_journal_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<field name="allow_date" position="after">
|
||||
<field name="max_amount" select="1"/>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<act_window
|
||||
domain="[('journal_id', '=', active_id)]"
|
||||
id="act_journal_voucher_open"
|
||||
name="Voucher Entries"
|
||||
context="{'journal_id': active_id, 'type':type}"
|
||||
res_model="account.voucher"
|
||||
src_model="account.journal"/>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
@@ -1,20 +1,18 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
|
||||
<!-- <wizard
|
||||
id="wizard_account_voucher_open"
|
||||
model="account.voucher"
|
||||
name="account.voucher.open"
|
||||
menu="False"
|
||||
string="Open a Voucher Entry"/>
|
||||
<menuitem
|
||||
action="wizard_account_voucher_open"
|
||||
id="menu_wizard_account_voucher_open"
|
||||
name="Open Vouchers"
|
||||
sequence="0"
|
||||
type="wizard"
|
||||
parent="menu_action_voucher_list"/> -->
|
||||
|
||||
</data>
|
||||
<data>
|
||||
<!-- <wizard-->
|
||||
<!-- id="wizard_account_voucher_open"-->
|
||||
<!-- model="account.voucher"-->
|
||||
<!-- name="account.voucher.open"-->
|
||||
<!-- menu="False"-->
|
||||
<!-- string="Open a Voucher Entry"/>-->
|
||||
<!-- <menuitem-->
|
||||
<!-- action="wizard_account_voucher_open"-->
|
||||
<!-- id="menu_wizard_account_voucher_open"-->
|
||||
<!-- name="Open Vouchers"-->
|
||||
<!-- sequence="0"-->
|
||||
<!-- type="wizard"-->
|
||||
<!-- parent="menu_action_voucher_list"/>-->
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
@@ -1,75 +1,80 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
|
||||
<record id="wkf_voucher" model="workflow">
|
||||
<data>
|
||||
<record id="wkf" model="workflow">
|
||||
<field name="name">account.voucher.basic</field>
|
||||
<field name="osv">account.voucher</field>
|
||||
<field name="on_create">True</field>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="act_draft" model="workflow.activity">
|
||||
<field name="wkf_id" ref="wkf_voucher"/>
|
||||
<field name="wkf_id" ref="wkf"/>
|
||||
<field name="flow_start">True</field>
|
||||
<field name="name">draft</field>
|
||||
</record>
|
||||
|
||||
<record id="act_performa" model="workflow.activity">
|
||||
<field name="wkf_id" ref="wkf_voucher"/>
|
||||
<field name="name">performa</field>
|
||||
<field name="action">open_voucher()</field>
|
||||
<field name="action">write({'state':'draft'})</field>
|
||||
<field name="kind">function</field>
|
||||
</record>
|
||||
|
||||
<record id="act_posted" model="workflow.activity">
|
||||
<field name="wkf_id" ref="wkf_voucher"/>
|
||||
<field name="name">posted</field>
|
||||
<field name="action">proforma_voucher()</field>
|
||||
<record id="act_proforma" model="workflow.activity">
|
||||
<field name="wkf_id" ref="wkf"/>
|
||||
<field name="name">proforma</field>
|
||||
<field name="action">write({'state':'proforma'})
|
||||
open_voucher()</field>
|
||||
<field name="kind">function</field>
|
||||
</record>
|
||||
|
||||
<record id="act_done" model="workflow.activity">
|
||||
<field name="wkf_id" ref="wkf"/>
|
||||
<field name="name">done</field>
|
||||
<field name="action">write({'state':'posted'})
|
||||
proforma_voucher()</field>
|
||||
<field name="flow_stop">True</field>
|
||||
<field name="kind">function</field>
|
||||
</record>
|
||||
|
||||
<record id="act_cancel" model="workflow.activity">
|
||||
<field name="wkf_id" ref="wkf_voucher"/>
|
||||
<field name="name">cancel</field>
|
||||
<field name="action">cancel_voucher()</field>
|
||||
<record id="act_recheck" model="workflow.activity">
|
||||
<field name="wkf_id" ref="wkf"/>
|
||||
<field name="name">recheck</field>
|
||||
<field name="action">write({'state':'recheck'})</field>
|
||||
<field name="kind">function</field>
|
||||
</record>
|
||||
|
||||
<record id="t1" model="workflow.transition">
|
||||
<field name="act_from" ref="act_draft"/>
|
||||
<field name="act_to" ref="act_performa"/>
|
||||
<field name="act_to" ref="act_proforma"/>
|
||||
<field name="signal">open_voucher</field>
|
||||
</record>
|
||||
|
||||
<record id="t2" model="workflow.transition">
|
||||
<field name="act_from" ref="act_performa"/>
|
||||
<field name="act_to" ref="act_posted"/>
|
||||
<field name="act_from" ref="act_proforma"/>
|
||||
<field name="act_to" ref="act_done"/>
|
||||
<field name="signal">proforma_voucher</field>
|
||||
<field name="condition">amount <= journal_id.max_amount</field>
|
||||
</record>
|
||||
|
||||
<record id="t3" model="workflow.transition">
|
||||
<field name="act_from" ref="act_performa"/>
|
||||
<field name="act_to" ref="act_cancel"/>
|
||||
<field name="signal">cancel_voucher</field>
|
||||
<field name="act_from" ref="act_proforma"/>
|
||||
<field name="act_to" ref="act_recheck"/>
|
||||
<field name="signal">proforma_voucher</field>
|
||||
<field name="condition">amount > journal_id.max_amount</field>
|
||||
</record>
|
||||
|
||||
<record id="t4" model="workflow.transition">
|
||||
<field name="act_from" ref="act_recheck"/>
|
||||
<field name="act_to" ref="act_done"/>
|
||||
<field name="signal">recheck_voucher</field>
|
||||
</record>
|
||||
|
||||
<record id="t5" model="workflow.transition">
|
||||
<field name="act_from" ref="act_draft"/>
|
||||
<field name="act_to" ref="act_cancel"/>
|
||||
<field name="signal">cancel_voucher</field>
|
||||
<field name="act_from" ref="act_recheck"/>
|
||||
<field name="act_to" ref="act_draft"/>
|
||||
<field name="signal">action_cancel_draft</field>
|
||||
</record>
|
||||
|
||||
<record id="t6" model="workflow.transition">
|
||||
<field name="act_from" ref="act_posted"/>
|
||||
<field name="act_to" ref="act_cancel"/>
|
||||
<field name="signal">cancel_voucher</field>
|
||||
<field name="act_from" ref="act_proforma"/>
|
||||
<field name="act_to" ref="act_draft"/>
|
||||
<field name="signal">action_cancel_draft</field>
|
||||
</record>
|
||||
|
||||
<record id="t7" model="workflow.transition">
|
||||
<field name="act_from" ref="act_cancel"/>
|
||||
<field name="act_to" ref="act_performa"/>
|
||||
<field name="signal">open_voucher</field>
|
||||
</record>
|
||||
</data>
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
@@ -31,11 +31,11 @@ _types = {
|
||||
'journal_pur_voucher':'Journal Purchase Voucher'
|
||||
}
|
||||
_states = {
|
||||
'draft':'Draft',
|
||||
'proforma':'Pro-forma',
|
||||
'posted':'Posted',
|
||||
'cancel':'Cancel'
|
||||
}
|
||||
'draft':'Draft',
|
||||
'proforma':'Pro-forma',
|
||||
'posted':'Posted',
|
||||
'cancel':'Cancel'
|
||||
}
|
||||
|
||||
class account_open_voucher(osv.osv_memory):
|
||||
_name = "account.open.voucher"
|
||||
@@ -43,18 +43,18 @@ class account_open_voucher(osv.osv_memory):
|
||||
|
||||
_columns = {
|
||||
'type': fields.selection([('pay_voucher','Cash Payment Voucher'),
|
||||
('bank_pay_voucher','Bank Payment Voucher'),
|
||||
('rec_voucher','Cash Receipt Voucher'),
|
||||
('bank_rec_voucher','Bank Receipt Voucher'),
|
||||
('cont_voucher','Contra Voucher'),
|
||||
('journal_sale_vou','Journal Sale Voucher'),
|
||||
('journal_pur_voucher','Journal Purchase Voucher')],'Voucher Type', required=True),
|
||||
('bank_pay_voucher','Bank Payment Voucher'),
|
||||
('rec_voucher','Cash Receipt Voucher'),
|
||||
('bank_rec_voucher','Bank Receipt Voucher'),
|
||||
('cont_voucher','Contra Voucher'),
|
||||
('journal_sale_vou','Journal Sale Voucher'),
|
||||
('journal_pur_voucher','Journal Purchase Voucher')],'Voucher Type', required=True),
|
||||
'state': fields.selection([('draft','Draft'),
|
||||
('proforma','Pro-forma'),
|
||||
('posted','Posted'),
|
||||
('cancel','Cancel')], 'State', required=True),
|
||||
('proforma','Pro-forma'),
|
||||
('posted','Posted'),
|
||||
('cancel','Cancel')], 'State', required=True),
|
||||
'period_ids': fields.many2many('account.period', 'voucher_period_rel', 'voucher_id', 'period_id', 'Periods'),
|
||||
}
|
||||
}
|
||||
|
||||
def action_open_window(self, cr, uid, ids, context=None):
|
||||
obj_period = self.pool.get('account.period')
|
||||
@@ -83,4 +83,4 @@ class account_open_voucher(osv.osv_memory):
|
||||
|
||||
account_open_voucher()
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
@@ -31,12 +31,12 @@
|
||||
<field name="target">new</field>
|
||||
</record>
|
||||
|
||||
<menuitem
|
||||
icon="STOCK_EXECUTE"
|
||||
name="Open Vouchers"
|
||||
action="action_account_open_vouchers"
|
||||
id="menu_account_voucher_open"
|
||||
parent="menu_action_voucher_list"/>
|
||||
<!-- <menuitem-->
|
||||
<!-- icon="STOCK_EXECUTE"-->
|
||||
<!-- name="Open Vouchers"-->
|
||||
<!-- action="action_account_open_vouchers"-->
|
||||
<!-- id="menu_account_voucher_open"-->
|
||||
<!-- parent="menu_action_voucher_list"/>-->
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
Executable
+24
@@ -0,0 +1,24 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
import account_voucher_payment
|
||||
import account_voucher_unreconcile
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
Executable
+48
@@ -0,0 +1,48 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
{
|
||||
"name" : "Invoice Payment/Receipt by Vouchers.",
|
||||
"version" : "1.0",
|
||||
"author" : 'Tiny & Axelor',
|
||||
"description": """This module includes :
|
||||
* It reconcile the invoice (supplier, customer) while paying through
|
||||
Accounting Vouchers
|
||||
""",
|
||||
"category" : "Generic Modules/Indian Accounting",
|
||||
"website" : "http://tinyerpindia.com",
|
||||
"depends" : [
|
||||
"base",
|
||||
"account",
|
||||
"account_voucher",
|
||||
],
|
||||
"init_xml" : [
|
||||
],
|
||||
|
||||
"demo_xml" : [],
|
||||
"update_xml" : [
|
||||
"account_voucher_payment_view.xml",
|
||||
"account_voucher_payment_wizard.xml"
|
||||
],
|
||||
"active": False,
|
||||
"installable": True,
|
||||
}
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
+290
@@ -0,0 +1,290 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
from osv import fields, osv
|
||||
from tools.translate import _
|
||||
|
||||
|
||||
class account_move_line(osv.osv):
|
||||
_inherit = "account.move.line"
|
||||
_columns = {
|
||||
'voucher_invoice': fields.many2one('account.invoice', 'Invoice', readonly=True),
|
||||
}
|
||||
account_move_line()
|
||||
|
||||
class account_voucher(osv.osv):
|
||||
_inherit = 'account.voucher'
|
||||
_columns = {
|
||||
'voucher_line_ids':fields.one2many('account.voucher.line','voucher_id','Voucher Lines', readonly=False, states={'proforma':[('readonly',True)]}),
|
||||
}
|
||||
|
||||
def action_move_line_create(self, cr, uid, ids, *args):
|
||||
|
||||
for inv in self.browse(cr, uid, ids):
|
||||
if inv.move_id:
|
||||
continue
|
||||
company_currency = inv.company_id.currency_id.id
|
||||
|
||||
line_ids = self.read(cr, uid, [inv.id], ['payment_ids'])[0]['payment_ids']
|
||||
ils = self.pool.get('account.voucher.line').read(cr, uid, line_ids)
|
||||
|
||||
iml = self._get_analytic_lines(cr, uid, inv.id)
|
||||
|
||||
diff_currency_p = inv.currency_id.id <> company_currency
|
||||
|
||||
total = 0
|
||||
if inv.type in ('pay_voucher', 'journal_voucher', 'rec_voucher','cont_voucher','bank_pay_voucher','bank_rec_voucher','journal_sale_voucher','journal_pur_voucher'):
|
||||
ref = inv.reference
|
||||
else:
|
||||
ref = self._convert_ref(cr, uid, inv.number)
|
||||
|
||||
date = inv.date
|
||||
total_currency = 0
|
||||
for i in iml:
|
||||
partner_id=i['partner_id']
|
||||
acc_id = i['account_id']
|
||||
if inv.currency_id.id != company_currency:
|
||||
i['currency_id'] = inv.currency_id.id
|
||||
i['amount_currency'] = i['amount']
|
||||
else:
|
||||
i['amount_currency'] = False
|
||||
i['currency_id'] = False
|
||||
if inv.type in ('rec_voucher','bank_rec_voucher','journal_pur_voucher','journal_voucher'):
|
||||
total += i['amount']
|
||||
total_currency += i['amount_currency'] or i['amount']
|
||||
i['amount'] = - i['amount']
|
||||
else:
|
||||
total -= i['amount']
|
||||
total_currency -= i['amount_currency'] or i['amount']
|
||||
|
||||
name = inv['name'] or '/'
|
||||
totlines = False
|
||||
|
||||
iml.append({
|
||||
'type': 'dest',
|
||||
'name': name,
|
||||
'amount': total or False,
|
||||
'account_id': acc_id,
|
||||
'amount_currency': diff_currency_p \
|
||||
and total_currency or False,
|
||||
'currency_id': diff_currency_p \
|
||||
and inv.currency_id.id or False,
|
||||
'ref': ref,
|
||||
'partner_id':partner_id or False,
|
||||
})
|
||||
|
||||
date = inv.date
|
||||
inv.amount=total
|
||||
|
||||
line = map(lambda x:(0,0,self.line_get_convert(cr, uid, x,date, context={})) ,iml)
|
||||
an_journal_id=inv.journal_id.analytic_journal_id.id
|
||||
journal_id = inv.journal_id.id
|
||||
|
||||
journal = self.pool.get('account.journal').browse(cr, uid, journal_id)
|
||||
if journal.sequence_id:
|
||||
name = self.pool.get('ir.sequence').get_id(cr, uid, journal.sequence_id.id)
|
||||
|
||||
move = {
|
||||
'name': name,
|
||||
'journal_id': journal_id,
|
||||
'voucher_type':inv.type,
|
||||
'narration' : inv.narration,
|
||||
'data':date
|
||||
}
|
||||
|
||||
if inv.period_id:
|
||||
move['period_id'] = inv.period_id.id
|
||||
for i in line:
|
||||
i[2]['period_id'] = inv.period_id.id
|
||||
move_id = self.pool.get('account.move').create(cr, uid, move)
|
||||
ref=move['name']
|
||||
amount=0.0
|
||||
#create the first line our self
|
||||
move_line = {
|
||||
'name': inv.name,
|
||||
'voucher_invoice' : iml and iml[0]['invoice'] and iml[0]['invoice'].id or False,
|
||||
'debit': False,
|
||||
'credit':False,
|
||||
'account_id': inv.account_id.id or False,
|
||||
'move_id':move_id ,
|
||||
'journal_id':journal_id ,
|
||||
'period_id':inv.period_id.id,
|
||||
'partner_id': False,
|
||||
'ref': ref,
|
||||
'date': date
|
||||
}
|
||||
if inv.type in ('rec_voucher', 'bank_rec_voucher', 'journal_pur_voucher', 'journal_voucher'):
|
||||
move_line['debit'] = inv.amount
|
||||
else:
|
||||
move_line['credit'] = inv.amount * (-1)
|
||||
self.pool.get('account.move.line').create(cr, uid, move_line)
|
||||
id_mapping_dict = {}
|
||||
mline_ids = []
|
||||
for line in inv.voucher_line_ids:
|
||||
move_line = {
|
||||
'name':line.name,
|
||||
'voucher_invoice' : iml and iml[0]['invoice'] and iml[0]['invoice'].id or False,
|
||||
'debit':False,
|
||||
'credit':False,
|
||||
'move_id':move_id,
|
||||
'account_id':line.account_id.id or False,
|
||||
'journal_id':journal_id ,
|
||||
'period_id':inv.period_id.id,
|
||||
'partner_id':line.partner_id.id or False,
|
||||
'ref':ref,
|
||||
'date':date
|
||||
}
|
||||
|
||||
if line.type == 'dr':
|
||||
move_line['debit'] = line.amount or False
|
||||
amount=line.amount
|
||||
elif line.type == 'cr':
|
||||
move_line['credit'] = line.amount or False
|
||||
amount=line.amount * (-1)
|
||||
ml_id=self.pool.get('account.move.line').create(cr, uid, move_line)
|
||||
id_mapping_dict[line.id] = ml_id
|
||||
|
||||
total = 0.0
|
||||
mline = self.pool.get('account.move.line')
|
||||
if line.invoice_id.id:
|
||||
invoice = self.pool.get('account.invoice').browse(cr, uid, line.invoice_id.id)
|
||||
src_account_id = invoice.account_id.id
|
||||
cr.execute('select id from account_move_line where move_id in ('+str(invoice.move_id.id)+')')
|
||||
temp_ids = map(lambda x: x[0], cr.fetchall())
|
||||
temp_ids.append(ml_id)
|
||||
mlines = mline.browse(cr, uid, temp_ids)
|
||||
for ml in mlines:
|
||||
if ml.account_id.id==src_account_id:
|
||||
mline_ids.append(ml.id)
|
||||
total += (ml.debit or 0.0) - (ml.credit or 0.0)
|
||||
#end if line.invoice_id.id:
|
||||
if inv.narration:
|
||||
line.name=inv.narration
|
||||
else:
|
||||
line.name=line.name
|
||||
|
||||
if line.account_analytic_id:
|
||||
an_line = {
|
||||
'name':line.name,
|
||||
'date':date,
|
||||
'amount':amount,
|
||||
'account_id':line.account_analytic_id.id or False,
|
||||
'move_id':ml_id,
|
||||
'journal_id':an_journal_id ,
|
||||
'general_account_id':line.account_id.id,
|
||||
'ref':ref
|
||||
}
|
||||
self.pool.get('account.analytic.line').create(cr,uid,an_line)
|
||||
if mline_ids:
|
||||
self.pool.get('account.move.line').reconcile_partial(cr, uid, mline_ids, 'manual', context={})
|
||||
self.write(cr, uid, [inv.id], {'move_id': move_id})
|
||||
obj=self.pool.get('account.move').browse(cr, uid, move_id)
|
||||
|
||||
for line in obj.line_id :
|
||||
cr.execute('insert into voucher_id (account_id,rel_account_move) values (%d, %d)',(int(ids[0]),int(line.id)))
|
||||
|
||||
return True
|
||||
|
||||
account_voucher()
|
||||
|
||||
class VoucherLine(osv.osv):
|
||||
_inherit = 'account.voucher.line'
|
||||
|
||||
def default_get(self, cr, uid, fields, context={}):
|
||||
data = super(VoucherLine, self).default_get(cr, uid, fields, context)
|
||||
self.voucher_context = context
|
||||
return data
|
||||
|
||||
_columns = {
|
||||
'invoice_id' : fields.many2one('account.invoice','Invoice'),
|
||||
}
|
||||
|
||||
|
||||
def move_line_get_item(self, cr, uid, line, context={}):
|
||||
res = super(VoucherLine, self).move_line_get_item(cr, uid, line, context)
|
||||
res['invoice'] = line.invoice_id or False
|
||||
return res
|
||||
|
||||
def onchange_invoice_id(self, cr, uid, ids, invoice_id, context={}):
|
||||
lines = []
|
||||
if 'lines' in self.voucher_context:
|
||||
lines = [x[2] for x in self.voucher_context['lines']]
|
||||
if not invoice_id:
|
||||
return {'value':{}}
|
||||
else:
|
||||
invoice_obj = self.pool.get('account.invoice').browse(cr, uid, invoice_id, context)
|
||||
residual = invoice_obj.residual
|
||||
same_invoice_amounts = [x['amount'] for x in lines if x['invoice_id']==invoice_id]
|
||||
residual -= sum(same_invoice_amounts)
|
||||
return {'value' : {'amount':residual}}
|
||||
|
||||
def onchange_line_account(self, cr, uid, ids, account_id, type, type1):
|
||||
if not account_id:
|
||||
return {'value' : {'account_id' : False, 'type' : False ,'amount':False}}
|
||||
obj = self.pool.get('account.account')
|
||||
acc_id = False
|
||||
|
||||
if type1 in ('rec_voucher','bank_rec_voucher', 'journal_voucher'):
|
||||
acc_id = obj.browse(cr, uid, account_id)
|
||||
balance = acc_id.credit
|
||||
type = 'cr'
|
||||
elif type1 in ('pay_voucher','bank_pay_voucher','cont_voucher') :
|
||||
acc_id = obj.browse(cr, uid, account_id)
|
||||
balance = acc_id.debit
|
||||
type = 'dr'
|
||||
elif type1 in ('journal_sale_vou') :
|
||||
acc_id = obj.browse(cr, uid, account_id)
|
||||
balance = acc_id.credit
|
||||
type = 'dr'
|
||||
elif type1 in ('journal_pur_voucher') :
|
||||
acc_id = obj.browse(cr, uid, account_id)
|
||||
balance = acc_id.debit
|
||||
type = 'cr'
|
||||
|
||||
return {
|
||||
'value' : {'type' : type, 'amount':balance}
|
||||
}
|
||||
|
||||
VoucherLine()
|
||||
|
||||
|
||||
|
||||
class account_invoice(osv.osv):
|
||||
_inherit = "account.invoice"
|
||||
|
||||
def action_cancel(self, cr, uid, ids, *args):
|
||||
|
||||
res = super(account_invoice, self).action_cancel(cr, uid, ids, *args)
|
||||
|
||||
invoices = self.read(cr, uid, ids, ['move_id'])
|
||||
voucher_db = self.pool.get('account.voucher')
|
||||
voucher_ids = voucher_db.search(cr, uid, [])
|
||||
voucher_obj = voucher_db.browse(cr, uid, voucher_ids)
|
||||
move_db = self.pool.get('account.move')
|
||||
move_ids = move_db.search(cr, uid, [])
|
||||
move_obj = move_db.browse(cr, uid, move_ids)
|
||||
|
||||
return res
|
||||
|
||||
account_invoice()
|
||||
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
@@ -0,0 +1,69 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
<!--
|
||||
Voucher line extension
|
||||
-->
|
||||
|
||||
<record id="view_voucher_form" model="ir.ui.view">
|
||||
<field name="name">account.voucher.line.form.inherit</field>
|
||||
<field name="model">account.voucher.line</field>
|
||||
<field name="type">form</field>
|
||||
<field name="inherit_id" ref="account_voucher.view_voucher_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<field name="name" position="after">
|
||||
<field name="invoice_id" on_change="onchange_invoice_id(invoice_id)" domain="[('partner_id','=',partner_id),('state','=','open')]"/>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="view_voucher_form" model="ir.ui.view">
|
||||
<field name="name">account.voucher.form.inherit</field>
|
||||
<field name="model">account.voucher</field>
|
||||
<field name="type">form</field>
|
||||
<field name="inherit_id" ref="account_voucher.view_voucher_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<field name="payment_ids" position="replace">
|
||||
<field name="voucher_line_ids" default_get="{'lines': voucher_line_ids }" colspan="4" nolabel="1" height="275">
|
||||
<tree string="Voucher Lines" editable="top">
|
||||
<field name="account_analytic_id"/>
|
||||
<field name="partner_id" on_change="onchange_partner(partner_id, type, parent.type)"/>
|
||||
<field name="account_id" on_change="onchange_line_account(account_id, type, parent.type)"/>
|
||||
<field name="name"/>
|
||||
<field name="invoice_id" on_change="onchange_invoice_id(invoice_id)" domain="[('partner_id','=',partner_id),('state','=','open'),('residual','>',0.0)]"/>
|
||||
<field name="type"/>
|
||||
<field name="amount"/>
|
||||
<field name="ref"/>
|
||||
</tree>
|
||||
</field>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="view_move_line_form" model="ir.ui.view">
|
||||
<field name="name">account.move.line.form.inherit</field>
|
||||
<field name="model">account.move.line</field>
|
||||
<field name="type">form</field>
|
||||
<field name="inherit_id" ref="account.view_move_line_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<field name="invoice" position="replace">
|
||||
<field name="voucher_invoice"/>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="view_move_line_tree" model="ir.ui.view">
|
||||
<field name="name">account.move.line.form.inherit</field>
|
||||
<field name="model">account.move.line</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="inherit_id" ref="account.view_move_line_tree"/>
|
||||
<field name="arch" type="xml">
|
||||
<field name="invoice" position="replace">
|
||||
<field name="voucher_invoice"/>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
|
||||
<wizard
|
||||
id="wizard_unreconcile_voucher"
|
||||
menu="True"
|
||||
model="account.voucher"
|
||||
name="account.voucher.unreconcile"
|
||||
string="Unreconcile entries"/>
|
||||
</data>
|
||||
</openerp>
|
||||
@@ -0,0 +1,56 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
import wizard
|
||||
import pooler
|
||||
|
||||
_info_form = '''<?xml version="1.0"?>
|
||||
<form string="Unreconciliation">
|
||||
<separator string="Unreconciliation transactions" colspan="4"/>
|
||||
<image name="gtk-dialog-info" colspan="2"/>
|
||||
<label string="If you unreconciliate transactions, you must also verify all the actions that are linked to those transactions because they will not be disable" colspan="2"/>
|
||||
</form>'''
|
||||
|
||||
def _trans_unrec(self, cr, uid, data, context):
|
||||
pool = pooler.get_pool(cr.dbname)
|
||||
voucher = pool.get('account.voucher').browse(cr, uid, data.get('id'))
|
||||
recs = None
|
||||
for line in voucher.move_ids:
|
||||
if line.reconcile_id:
|
||||
recs = [line.reconcile_id.id]
|
||||
|
||||
for rec in recs:
|
||||
pool.get('account.move.reconcile').unlink(cr, uid, rec)
|
||||
return {}
|
||||
|
||||
class wiz_unreconcile(wizard.interface):
|
||||
states = {
|
||||
'init': {
|
||||
'actions': [],
|
||||
'result': {'type': 'form', 'arch': _info_form, 'fields': {}, 'state':[('end', 'Cancel'), ('unrec', 'Unreconcile')]}
|
||||
},
|
||||
'unrec': {
|
||||
'actions': [_trans_unrec],
|
||||
'result': {'type': 'state', 'state':'end'}
|
||||
}
|
||||
}
|
||||
wiz_unreconcile('account.voucher.unreconcile')
|
||||
|
||||
@@ -0,0 +1,82 @@
|
||||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * account_voucher_payment
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.0\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-05-13 20:11:36+0000\n"
|
||||
"PO-Revision-Date: 2009-05-13 20:11:36+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
"Plural-Forms: \n"
|
||||
|
||||
#. module: account_voucher_payment
|
||||
#: constraint:ir.ui.view:0
|
||||
msgid "Invalid XML for View Architecture!"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_voucher_payment
|
||||
#: wizard_view:account.voucher.unreconcile,init:0
|
||||
msgid "Unreconciliation transactions"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_voucher_payment
|
||||
#: model:ir.module.module,description:account_voucher_payment.module_name_translation
|
||||
msgid "This module includes :\n"
|
||||
" * It reconcile the invoice (supplier, customer) while paying through \n"
|
||||
" Accounting Vouchers\n"
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#. module: account_voucher_payment
|
||||
#: wizard_view:account.voucher.unreconcile,init:0
|
||||
msgid "If you unreconciliate transactions, you must also verify all the actions that are linked to those transactions because they will not be disable"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_voucher_payment
|
||||
#: view:account.voucher:0
|
||||
#: field:account.voucher,voucher_line_ids:0
|
||||
msgid "Voucher Lines"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_voucher_payment
|
||||
#: model:ir.module.module,shortdesc:account_voucher_payment.module_name_translation
|
||||
msgid "Invoice Payment/Receipt by Vouchers."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_voucher_payment
|
||||
#: model:ir.actions.wizard,name:account_voucher_payment.wizard_unreconcile_voucher
|
||||
msgid "Unreconcile entries"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_voucher_payment
|
||||
#: field:account.move.line,voucher_invoice:0
|
||||
#: field:account.voucher.line,invoice_id:0
|
||||
msgid "Invoice"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_voucher_payment
|
||||
#: wizard_button:account.voucher.unreconcile,init,end:0
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_voucher_payment
|
||||
#: field:account.voucher,partner_id:0
|
||||
msgid "Partner"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_voucher_payment
|
||||
#: wizard_button:account.voucher.unreconcile,init,unrec:0
|
||||
msgid "Unreconcile"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_voucher_payment
|
||||
#: wizard_view:account.voucher.unreconcile,init:0
|
||||
msgid "Unreconciliation"
|
||||
msgstr ""
|
||||
|
||||
@@ -0,0 +1,94 @@
|
||||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * account_voucher_payment
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.0\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-05-13 20:11+0000\n"
|
||||
"PO-Revision-Date: 2010-01-26 11:00+0000\n"
|
||||
"Last-Translator: Jordi Esteve (www.zikzakmedia.com) "
|
||||
"<jesteve@zikzakmedia.com>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-05-21 03:47+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account_voucher_payment
|
||||
#: constraint:ir.ui.view:0
|
||||
msgid "Invalid XML for View Architecture!"
|
||||
msgstr "XML invàlid per a la definició de la vista!"
|
||||
|
||||
#. module: account_voucher_payment
|
||||
#: wizard_view:account.voucher.unreconcile,init:0
|
||||
msgid "Unreconciliation transactions"
|
||||
msgstr "Trenca conciliació de transaccions"
|
||||
|
||||
#. module: account_voucher_payment
|
||||
#: model:ir.module.module,description:account_voucher_payment.module_name_translation
|
||||
msgid ""
|
||||
"This module includes :\n"
|
||||
" * It reconcile the invoice (supplier, customer) while paying through \n"
|
||||
" Accounting Vouchers\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"Aquest mòdul inclou:\n"
|
||||
" * Concilia factures de proveïdors i clients mentre són pagades "
|
||||
"mitjançant \n"
|
||||
" comprovants comptables\n"
|
||||
" "
|
||||
|
||||
#. module: account_voucher_payment
|
||||
#: wizard_view:account.voucher.unreconcile,init:0
|
||||
msgid ""
|
||||
"If you unreconciliate transactions, you must also verify all the actions "
|
||||
"that are linked to those transactions because they will not be disable"
|
||||
msgstr ""
|
||||
"Si trenqueu conciliació de transaccions, també heu de comprovar totes les "
|
||||
"accions que estan relacionades amb aquestes transaccions ja que no seran "
|
||||
"eliminades"
|
||||
|
||||
#. module: account_voucher_payment
|
||||
#: view:account.voucher:0
|
||||
#: field:account.voucher,voucher_line_ids:0
|
||||
msgid "Voucher Lines"
|
||||
msgstr "Línies de comprovant"
|
||||
|
||||
#. module: account_voucher_payment
|
||||
#: model:ir.module.module,shortdesc:account_voucher_payment.module_name_translation
|
||||
msgid "Invoice Payment/Receipt by Vouchers."
|
||||
msgstr "Pagaments i rebuts de factures per comprovant."
|
||||
|
||||
#. module: account_voucher_payment
|
||||
#: model:ir.actions.wizard,name:account_voucher_payment.wizard_unreconcile_voucher
|
||||
msgid "Unreconcile entries"
|
||||
msgstr "Trenca conciliació entrades"
|
||||
|
||||
#. module: account_voucher_payment
|
||||
#: field:account.move.line,voucher_invoice:0
|
||||
#: field:account.voucher.line,invoice_id:0
|
||||
msgid "Invoice"
|
||||
msgstr "Factura"
|
||||
|
||||
#. module: account_voucher_payment
|
||||
#: wizard_button:account.voucher.unreconcile,init,end:0
|
||||
msgid "Cancel"
|
||||
msgstr "Cancel·la"
|
||||
|
||||
#. module: account_voucher_payment
|
||||
#: field:account.voucher,partner_id:0
|
||||
msgid "Partner"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_voucher_payment
|
||||
#: wizard_button:account.voucher.unreconcile,init,unrec:0
|
||||
msgid "Unreconcile"
|
||||
msgstr "Trenca conciliació"
|
||||
|
||||
#. module: account_voucher_payment
|
||||
#: wizard_view:account.voucher.unreconcile,init:0
|
||||
msgid "Unreconciliation"
|
||||
msgstr "Trenca conciliació"
|
||||
@@ -0,0 +1,81 @@
|
||||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * account_voucher_payment
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.0\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-05-13 19:47:47+0000\n"
|
||||
"PO-Revision-Date: 2009-05-16 18:57+0100\n"
|
||||
"Last-Translator: Jordi Esteve <jesteve@zikzakmedia.com>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: \n"
|
||||
|
||||
#. module: account_voucher_payment
|
||||
#: constraint:ir.ui.view:0
|
||||
msgid "Invalid XML for View Architecture!"
|
||||
msgstr "XML invàlid per a la definició de la vista!"
|
||||
|
||||
#. module: account_voucher_payment
|
||||
#: wizard_view:account.voucher.unreconcile,init:0
|
||||
msgid "Unreconciliation transactions"
|
||||
msgstr "Trenca conciliació de transaccions"
|
||||
|
||||
#. module: account_voucher_payment
|
||||
#: field:account.move.line,voucher_invoice:0
|
||||
#: field:account.voucher.line,invoice_id:0
|
||||
msgid "Invoice"
|
||||
msgstr "Factura"
|
||||
|
||||
#. module: account_voucher_payment
|
||||
#: wizard_view:account.voucher.unreconcile,init:0
|
||||
msgid "If you unreconciliate transactions, you must also verify all the actions that are linked to those transactions because they will not be disable"
|
||||
msgstr "Si trenqueu conciliació de transaccions, també heu de comprovar totes les accions que estan relacionades amb aquestes transaccions ja que no seran eliminades"
|
||||
|
||||
#. module: account_voucher_payment
|
||||
#: view:account.voucher:0
|
||||
#: field:account.voucher,voucher_line_ids:0
|
||||
msgid "Voucher Lines"
|
||||
msgstr "Línies de comprovant"
|
||||
|
||||
#. module: account_voucher_payment
|
||||
#: model:ir.module.module,shortdesc:account_voucher_payment.module_name_translation
|
||||
msgid "Invoice Payment/Receipt by Vouchers."
|
||||
msgstr "Pagaments i rebuts de factures per comprovant."
|
||||
|
||||
#. module: account_voucher_payment
|
||||
#: model:ir.actions.wizard,name:account_voucher_payment.wizard_unreconcile_voucher
|
||||
msgid "Unreconcile entries"
|
||||
msgstr "Trenca conciliació entrades"
|
||||
|
||||
#. module: account_voucher_payment
|
||||
#: model:ir.module.module,description:account_voucher_payment.module_name_translation
|
||||
msgid ""
|
||||
"This module includes :\n"
|
||||
" * It reconcile the invoice (supplier, customer) while paying through \n"
|
||||
" Accounting Vouchers\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"Aquest mòdul inclou:\n"
|
||||
" * Concilia factures de proveïdors i clients mentre són pagades mitjançant \n"
|
||||
" comprovants comptables\n"
|
||||
|
||||
#. module: account_voucher_payment
|
||||
#: wizard_button:account.voucher.unreconcile,init,end:0
|
||||
msgid "Cancel"
|
||||
msgstr "Cancel·la"
|
||||
|
||||
#. module: account_voucher_payment
|
||||
#: wizard_button:account.voucher.unreconcile,init,unrec:0
|
||||
msgid "Unreconcile"
|
||||
msgstr "Trenca conciliació"
|
||||
|
||||
#. module: account_voucher_payment
|
||||
#: wizard_view:account.voucher.unreconcile,init:0
|
||||
msgid "Unreconciliation"
|
||||
msgstr "Trenca conciliació"
|
||||
|
||||
@@ -0,0 +1,92 @@
|
||||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * account_voucher_payment
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.0\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-05-13 20:11+0000\n"
|
||||
"PO-Revision-Date: 2010-02-19 05:54+0000\n"
|
||||
"Last-Translator: Luis Alejandro Rangel Sánchez <xlarsx@gmail.com>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-05-21 03:47+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account_voucher_payment
|
||||
#: constraint:ir.ui.view:0
|
||||
msgid "Invalid XML for View Architecture!"
|
||||
msgstr "¡XML inválido para la definición de la vista!"
|
||||
|
||||
#. module: account_voucher_payment
|
||||
#: wizard_view:account.voucher.unreconcile,init:0
|
||||
msgid "Unreconciliation transactions"
|
||||
msgstr "Romper conciliación de transacciones"
|
||||
|
||||
#. module: account_voucher_payment
|
||||
#: model:ir.module.module,description:account_voucher_payment.module_name_translation
|
||||
msgid ""
|
||||
"This module includes :\n"
|
||||
" * It reconcile the invoice (supplier, customer) while paying through \n"
|
||||
" Accounting Vouchers\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"Este módulo incluye :\n"
|
||||
" * Concilia facturas de proveedores y clientes mientras son pagadas "
|
||||
"mediante \n"
|
||||
" comprobantes contables\n"
|
||||
" "
|
||||
|
||||
#. module: account_voucher_payment
|
||||
#: wizard_view:account.voucher.unreconcile,init:0
|
||||
msgid ""
|
||||
"If you unreconciliate transactions, you must also verify all the actions "
|
||||
"that are linked to those transactions because they will not be disable"
|
||||
msgstr ""
|
||||
"Si rompe conciliación de transacciones, también debe verificar todas las "
|
||||
"acciones que están enlazadas a estas transacciones porque no serán eliminadas"
|
||||
|
||||
#. module: account_voucher_payment
|
||||
#: view:account.voucher:0
|
||||
#: field:account.voucher,voucher_line_ids:0
|
||||
msgid "Voucher Lines"
|
||||
msgstr "Líneas de comprobante"
|
||||
|
||||
#. module: account_voucher_payment
|
||||
#: model:ir.module.module,shortdesc:account_voucher_payment.module_name_translation
|
||||
msgid "Invoice Payment/Receipt by Vouchers."
|
||||
msgstr "Pagos y recibos de facturas por comprobantes."
|
||||
|
||||
#. module: account_voucher_payment
|
||||
#: model:ir.actions.wizard,name:account_voucher_payment.wizard_unreconcile_voucher
|
||||
msgid "Unreconcile entries"
|
||||
msgstr "Romper concilación entradas"
|
||||
|
||||
#. module: account_voucher_payment
|
||||
#: field:account.move.line,voucher_invoice:0
|
||||
#: field:account.voucher.line,invoice_id:0
|
||||
msgid "Invoice"
|
||||
msgstr "Factura"
|
||||
|
||||
#. module: account_voucher_payment
|
||||
#: wizard_button:account.voucher.unreconcile,init,end:0
|
||||
msgid "Cancel"
|
||||
msgstr "Cancelar"
|
||||
|
||||
#. module: account_voucher_payment
|
||||
#: field:account.voucher,partner_id:0
|
||||
msgid "Partner"
|
||||
msgstr "Compañero"
|
||||
|
||||
#. module: account_voucher_payment
|
||||
#: wizard_button:account.voucher.unreconcile,init,unrec:0
|
||||
msgid "Unreconcile"
|
||||
msgstr "Romper conciliación"
|
||||
|
||||
#. module: account_voucher_payment
|
||||
#: wizard_view:account.voucher.unreconcile,init:0
|
||||
msgid "Unreconciliation"
|
||||
msgstr "Romper conciliación"
|
||||
@@ -0,0 +1,81 @@
|
||||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * account_voucher_payment
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.0\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-05-13 19:47:47+0000\n"
|
||||
"PO-Revision-Date: 2009-05-16 18:57+0100\n"
|
||||
"Last-Translator: Jordi Esteve <jesteve@zikzakmedia.com>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: \n"
|
||||
|
||||
#. module: account_voucher_payment
|
||||
#: constraint:ir.ui.view:0
|
||||
msgid "Invalid XML for View Architecture!"
|
||||
msgstr "¡XML inválido para la definición de la vista!"
|
||||
|
||||
#. module: account_voucher_payment
|
||||
#: wizard_view:account.voucher.unreconcile,init:0
|
||||
msgid "Unreconciliation transactions"
|
||||
msgstr "Romper conciliación de transacciones"
|
||||
|
||||
#. module: account_voucher_payment
|
||||
#: field:account.move.line,voucher_invoice:0
|
||||
#: field:account.voucher.line,invoice_id:0
|
||||
msgid "Invoice"
|
||||
msgstr "Factura"
|
||||
|
||||
#. module: account_voucher_payment
|
||||
#: wizard_view:account.voucher.unreconcile,init:0
|
||||
msgid "If you unreconciliate transactions, you must also verify all the actions that are linked to those transactions because they will not be disable"
|
||||
msgstr "Si rompe conciliación de transacciones, también debe verificar todas las acciones que están enlazadas a estas transacciones porque no serán eliminadas"
|
||||
|
||||
#. module: account_voucher_payment
|
||||
#: view:account.voucher:0
|
||||
#: field:account.voucher,voucher_line_ids:0
|
||||
msgid "Voucher Lines"
|
||||
msgstr "Líneas de comprobante"
|
||||
|
||||
#. module: account_voucher_payment
|
||||
#: model:ir.module.module,shortdesc:account_voucher_payment.module_name_translation
|
||||
msgid "Invoice Payment/Receipt by Vouchers."
|
||||
msgstr "Pagos y recibos de facturas por comprobantes."
|
||||
|
||||
#. module: account_voucher_payment
|
||||
#: model:ir.actions.wizard,name:account_voucher_payment.wizard_unreconcile_voucher
|
||||
msgid "Unreconcile entries"
|
||||
msgstr "Romper concilación entradas"
|
||||
|
||||
#. module: account_voucher_payment
|
||||
#: model:ir.module.module,description:account_voucher_payment.module_name_translation
|
||||
msgid ""
|
||||
"This module includes :\n"
|
||||
" * It reconcile the invoice (supplier, customer) while paying through \n"
|
||||
" Accounting Vouchers\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"Este módulo incluye :\n"
|
||||
" * Concilia facturas de proveedores y clientes mientras son pagadas mediante \n"
|
||||
" comprobantes contables\n"
|
||||
|
||||
#. module: account_voucher_payment
|
||||
#: wizard_button:account.voucher.unreconcile,init,end:0
|
||||
msgid "Cancel"
|
||||
msgstr "Cancelar"
|
||||
|
||||
#. module: account_voucher_payment
|
||||
#: wizard_button:account.voucher.unreconcile,init,unrec:0
|
||||
msgid "Unreconcile"
|
||||
msgstr "Romper conciliación"
|
||||
|
||||
#. module: account_voucher_payment
|
||||
#: wizard_view:account.voucher.unreconcile,init:0
|
||||
msgid "Unreconciliation"
|
||||
msgstr "Romper conciliación"
|
||||
|
||||
@@ -0,0 +1,77 @@
|
||||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * account_voucher_payment
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.6\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-11-26 06:54:11+0000\n"
|
||||
"PO-Revision-Date: 2009-11-26 06:54:11+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
"Plural-Forms: \n"
|
||||
|
||||
#. module: account_voucher_payment
|
||||
#: constraint:ir.ui.view:0
|
||||
msgid "Invalid XML for View Architecture!"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_voucher_payment
|
||||
#: wizard_view:account.voucher.unreconcile,init:0
|
||||
msgid "Unreconciliation transactions"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_voucher_payment
|
||||
#: field:account.move.line,voucher_invoice:0
|
||||
#: field:account.voucher.line,invoice_id:0
|
||||
msgid "Invoice"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_voucher_payment
|
||||
#: wizard_view:account.voucher.unreconcile,init:0
|
||||
msgid "If you unreconciliate transactions, you must also verify all the actions that are linked to those transactions because they will not be disable"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_voucher_payment
|
||||
#: view:account.voucher:0
|
||||
#: field:account.voucher,voucher_line_ids:0
|
||||
msgid "Voucher Lines"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_voucher_payment
|
||||
#: model:ir.module.module,shortdesc:account_voucher_payment.module_meta_information
|
||||
msgid "Invoice Payment/Receipt by Vouchers."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_voucher_payment
|
||||
#: model:ir.actions.wizard,name:account_voucher_payment.wizard_unreconcile_voucher
|
||||
msgid "Unreconcile entries"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_voucher_payment
|
||||
#: model:ir.module.module,description:account_voucher_payment.module_meta_information
|
||||
msgid "This module includes :\n"
|
||||
" * It reconcile the invoice (supplier, customer) while paying through \n"
|
||||
" Accounting Vouchers\n"
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#. module: account_voucher_payment
|
||||
#: wizard_button:account.voucher.unreconcile,init,end:0
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_voucher_payment
|
||||
#: wizard_button:account.voucher.unreconcile,init,unrec:0
|
||||
msgid "Unreconcile"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_voucher_payment
|
||||
#: wizard_view:account.voucher.unreconcile,init:0
|
||||
msgid "Unreconciliation"
|
||||
msgstr ""
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
'category': 'Generic Modules/Others',
|
||||
'description': """
|
||||
|
||||
This module allows you to define what is the default invoicing rate for a specific journal on a given account. This is mostly used when a user encode his timesheet: the values are retrieved and the fields are auto-filled... but the possibility to change these values is still available.
|
||||
This module allows you to define what is the default invoicing rate for a specific journal on a given account. This is mostly used when a user encodes his timesheet: the values are retrieved and the fields are auto-filled... but the possibility to change these values is still available.
|
||||
|
||||
Obviously if no data has been recorded for the current account, the default value is given as usual by the account data so that this module is perfectly compatible with older configurations.
|
||||
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
'category': 'Generic Modules/Others',
|
||||
'description': """
|
||||
|
||||
This module allows you to define what is the default function of a specific user on a given account. This is mostly used when a user encode his timesheet: the values are retrieved and the fields are auto-filled... but the possibility to change these values is still available.
|
||||
This module allows you to define what is the default function of a specific user on a given account. This is mostly used when a user encodes his timesheet: the values are retrieved and the fields are auto-filled... but the possibility to change these values is still available.
|
||||
|
||||
Obviously if no data has been recorded for the current account, the default value is given as usual by the employee data so that this module is perfectly compatible with older configurations.
|
||||
|
||||
|
||||
@@ -20,10 +20,11 @@
|
||||
##############################################################################
|
||||
|
||||
{
|
||||
"name" : "Basic Calendar Functionality",
|
||||
"version" : "1.0",
|
||||
"depends" : ["base"],
|
||||
'description': """Full featured calendar system that support:
|
||||
"name" : "Basic Calendar Functionality",
|
||||
"version" : "1.0",
|
||||
"depends" : ["base"],
|
||||
'description': """Full featured calendar system that supports:
|
||||
|
||||
- Alerts (create requests)
|
||||
- Recurring events (*)
|
||||
- Invitations to others people""",
|
||||
|
||||
@@ -1660,9 +1660,10 @@ class ir_model(osv.osv):
|
||||
@param ids: List of IR Model’s IDs.
|
||||
@param context: A standard dictionary for contextual values
|
||||
"""
|
||||
new_ids = isinstance(ids, (str, int, long)) and [ids] or ids
|
||||
if not context:
|
||||
context = {}
|
||||
data = super(ir_model, self).read(cr, uid, ids, fields=fields, \
|
||||
data = super(ir_model, self).read(cr, uid, new_ids, fields=fields, \
|
||||
context=context, load=load)
|
||||
if data:
|
||||
for val in data:
|
||||
|
||||
@@ -25,14 +25,14 @@
|
||||
'version': '1.0',
|
||||
'category': 'Generic Modules/Base',
|
||||
'description': """
|
||||
This module allows you to manage entirely your contacts.
|
||||
This module allows you to manage your contacts entirely.
|
||||
|
||||
It lets you define
|
||||
*contacts unrelated to a partner,
|
||||
*contacts working at several addresses (possibly for different partners),
|
||||
*contacts with possibly different functions for each of its job's addresses
|
||||
|
||||
It also add new menu items located in
|
||||
It also adds new menu items located in
|
||||
Partners \ Contacts
|
||||
Partners \ Functions
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
'version': '1.0',
|
||||
'category': 'Generic Modules/Base',
|
||||
'description': """
|
||||
This module install the base for IBAN (International Bank Account Number) bank accounts and checks for its validity
|
||||
This module installs the base for IBAN (International Bank Account Number) bank accounts and checks for its validity
|
||||
|
||||
""",
|
||||
'author': 'Tiny',
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
'description': """
|
||||
This module's aim is to check the quality of other modules.
|
||||
|
||||
It defines a wizard on the list of modules in OpenERP, which allow you to
|
||||
It defines a wizard on the list of modules in OpenERP, which allows you to
|
||||
evaluate them on different criteria such as: the respect of OpenERP coding
|
||||
standards, the speed efficiency...
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@ for custom configurations and demo/testing data.
|
||||
|
||||
How to use it:
|
||||
Run Administration/Customization/Module Creation/Export Customizations As a Module wizard.
|
||||
Select datetime critearea of recording and objects to be recorded and Record module.
|
||||
Select datetime critearia of recording and objects to be recorded and Record module.
|
||||
""",
|
||||
'author': 'Tiny',
|
||||
'website': 'http://www.openerp.com',
|
||||
|
||||
@@ -24,8 +24,8 @@
|
||||
'name': 'Report Creator',
|
||||
'version': '1.0',
|
||||
'category': 'Generic Modules/Base',
|
||||
'description': """This modules allows you to create any statistic
|
||||
report on several object. It's a SQL query builder and browser
|
||||
'description': """This module allows you to create any statistic
|
||||
report on several objects. It's a SQL query builder and browser
|
||||
for and users.
|
||||
|
||||
After installing the module, it adds a menu to define custom report in
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
'version': '1.0',
|
||||
'category': 'Board/Manufacturing',
|
||||
'description': """
|
||||
This module creates a dashboards for Manufaturing that includes:
|
||||
This module creates a dashboard for Manufaturing that includes:
|
||||
* List of next production orders
|
||||
* List of deliveries (out picking)
|
||||
* Graph of work center load
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
'version': '1.0',
|
||||
'category': 'Board/Projects & Services',
|
||||
'description': """
|
||||
This module implements a dashboard for project member that includes:
|
||||
This module implements a dashboard for project members that includes:
|
||||
* List of my open tasks
|
||||
* List of messages
|
||||
* Members list of project
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
'version': '1.0',
|
||||
'category': 'Board/Purchase',
|
||||
'description': """
|
||||
This module implements a dashboard for purcgase management that includes:
|
||||
This module implements a dashboard for purchase management that includes:
|
||||
* Current Purchase Orders
|
||||
* Draft Purchase Orders
|
||||
* Graph for quantity and amount per month
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
'category': 'Board/Sales & Purchase',
|
||||
'description': """
|
||||
This module implements a dashboard for salesman that includes:
|
||||
* You open quotations
|
||||
* Your open quotations
|
||||
* Top 10 sales of the month
|
||||
* Cases statistics
|
||||
* Graph of sales by product
|
||||
|
||||
@@ -32,12 +32,12 @@ assignment, resolution and notification.
|
||||
|
||||
Open ERP ensures that all cases are successfully tracked by users, customers and
|
||||
suppliers. It can automatically send reminders, escalate the request, trigger
|
||||
specific methods and lots of others actions based on your enterprise own rules.
|
||||
specific methods and lots of other actions based on your own enterprise rules.
|
||||
|
||||
The greatest thing about this system is that users don't need to do anything
|
||||
special. They can just send email to the request tracker. Open ERP will take
|
||||
care of thanking them for their message, automatically routing it to the
|
||||
appropriate staff, and making sure all future correspondence gets to the right
|
||||
appropriate staff, and make sure all future correspondence gets to the right
|
||||
place.
|
||||
|
||||
The CRM module has a email gateway for the synchronisation interface
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<openerp>
|
||||
<data>
|
||||
|
||||
<!--Lead Stage Form view -->
|
||||
<!--Lead Stage Form view -->
|
||||
|
||||
<record id="crm_lead_stage_act" model="ir.actions.act_window">
|
||||
<field name="name">Lead Stages</field>
|
||||
@@ -16,7 +16,7 @@
|
||||
groups="base.group_extended"
|
||||
parent="crm.menu_crm_case_stage" />
|
||||
|
||||
<!-- Resource Type Form View -->
|
||||
<!-- Resource Type Form View -->
|
||||
|
||||
<record id="crm_lead_resource_act" model="ir.actions.act_window">
|
||||
<field name="name">Lead Resource Type</field>
|
||||
@@ -31,7 +31,7 @@
|
||||
groups="base.group_extended"
|
||||
parent="crm.menu_crm_case_resource_type" />
|
||||
|
||||
<!-- CRM Lead Form View -->
|
||||
<!-- CRM Lead Form View -->
|
||||
|
||||
<record model="ir.ui.view" id="crm_case_form_view_leads">
|
||||
<field name="name">CRM - Leads Form</field>
|
||||
@@ -190,7 +190,7 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- CRM Lead Tree View -->
|
||||
<!-- CRM Lead Tree View -->
|
||||
|
||||
<record model="ir.ui.view" id="crm_case_tree_view_leads">
|
||||
<field name="name">CRM - Leads Tree</field>
|
||||
@@ -239,7 +239,7 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- CRM Lead Calendar View -->
|
||||
<!-- CRM Lead Calendar View -->
|
||||
|
||||
<record model="ir.ui.view" id="crm_case_calendar_view_leads">
|
||||
<field name="name">CRM - Leads Calendar</field>
|
||||
@@ -257,7 +257,7 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- CRM Lead Search View -->
|
||||
<!-- CRM Lead Search View -->
|
||||
|
||||
<record id="view_crm_case_leads_filter" model="ir.ui.view">
|
||||
<field name="name">CRM - Leads Search</field>
|
||||
@@ -322,6 +322,5 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<openerp>
|
||||
<data>
|
||||
|
||||
<!-- CRM Meetings Categories Form View -->
|
||||
<!-- CRM Meetings Categories Form View -->
|
||||
|
||||
<record id="crm_meeting_categ_action" model="ir.actions.act_window">
|
||||
<field name="name">Meeting Categories</field>
|
||||
@@ -16,7 +16,7 @@
|
||||
<menuitem action="crm_meeting_categ_action"
|
||||
id="menu_crm_case_meeting-act" parent="crm.menu_crm_case_categ" />
|
||||
|
||||
<!-- CRM Meetings Form View -->
|
||||
<!-- CRM Meetings Form View -->
|
||||
|
||||
<record model="ir.ui.view" id="crm_case_form_view_meet">
|
||||
<field name="name">CRM - Meetings Form</field>
|
||||
@@ -204,7 +204,7 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- CRM Meeting Tree View -->
|
||||
<!-- CRM Meeting Tree View -->
|
||||
|
||||
<record model="ir.ui.view" id="crm_case_tree_view_meet">
|
||||
<field name="name">CRM - Meetings Tree</field>
|
||||
@@ -222,7 +222,7 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- CRM Meeting Calendar -->
|
||||
<!-- CRM Meeting Calendar -->
|
||||
|
||||
<record model="ir.ui.view" id="crm_case_calendar_view_meet">
|
||||
<field name="name">CRM - Meetings Calendar</field>
|
||||
@@ -238,7 +238,7 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- CRM Meeting Gantt -->
|
||||
<!-- CRM Meeting Gantt -->
|
||||
|
||||
<record id="crm_case_gantt_view_meet" model="ir.ui.view">
|
||||
<field name="name">CRM - Meetings Gantt</field>
|
||||
@@ -254,7 +254,7 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- CRM Meeting Search View -->
|
||||
<!-- CRM Meeting Search View -->
|
||||
|
||||
<record id="view_crm_case_meetings_filter" model="ir.ui.view">
|
||||
<field name="name">CRM - Meetings Search</field>
|
||||
@@ -296,7 +296,7 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Calendar Attendee Form View -->
|
||||
<!-- Calendar Attendee Form View -->
|
||||
|
||||
<record id="attendee_form_view_inherit" model="ir.ui.view">
|
||||
<field name="name">calendar.attendee.form.inherit</field>
|
||||
@@ -310,7 +310,7 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Calendar Attendee Tree View -->
|
||||
<!-- Calendar Attendee Tree View -->
|
||||
|
||||
<record id="attendee_tree_view_inherit" model="ir.ui.view">
|
||||
<field name="name">calendar.attendee.tree.inherit</field>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<openerp>
|
||||
<data>
|
||||
|
||||
<!-- Opportunity Categories Form View -->
|
||||
<!-- Opportunity Categories Form View -->
|
||||
|
||||
<record id="crm_opportunity_categ_action" model="ir.actions.act_window">
|
||||
<field name="name">Opportunity Categories</field>
|
||||
@@ -17,7 +17,7 @@
|
||||
id="menu_crm_case_opportunity-act"
|
||||
parent="crm.menu_crm_case_categ" />
|
||||
|
||||
<!-- Opportunity Stages Form View-->
|
||||
<!-- Opportunity Stages Form View-->
|
||||
|
||||
<record id="crm_opportunity_stage_act" model="ir.actions.act_window">
|
||||
<field name="name">Opportunity Stages</field>
|
||||
@@ -32,7 +32,7 @@
|
||||
id="menu_crm_opportunity_stage_act"
|
||||
parent="crm.menu_crm_case_stage" />
|
||||
|
||||
<!-- Opportunity Resource Type Form View -->
|
||||
<!-- Opportunity Resource Type Form View -->
|
||||
|
||||
<record id="crm_opportunity_resource_act" model="ir.actions.act_window">
|
||||
<field name="name">Opportunity Resource Type</field>
|
||||
@@ -47,7 +47,7 @@
|
||||
id="menu_crm_opportunity_resource_act"
|
||||
parent="crm.menu_crm_case_resource_type" />
|
||||
|
||||
<!-- Opportunities Form View -->
|
||||
<!-- Opportunities Form View -->
|
||||
|
||||
<record model="ir.ui.view" id="crm_case_form_view_oppor">
|
||||
<field name="name">Opportunities</field>
|
||||
@@ -204,7 +204,7 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Opportunities Tree View -->
|
||||
<!-- Opportunities Tree View -->
|
||||
|
||||
<record model="ir.ui.view" id="crm_case_tree_view_oppor">
|
||||
<field name="name">Opportunities Tree</field>
|
||||
@@ -246,7 +246,7 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Opportunities Graph View -->
|
||||
<!-- Opportunities Graph View -->
|
||||
|
||||
<record model="ir.ui.view" id="crm_case_graph_view_opportunity">
|
||||
<field name="name">CRM - Opportunity Graph</field>
|
||||
@@ -261,7 +261,7 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Opportunities Search View -->
|
||||
<!-- Opportunities Search View -->
|
||||
|
||||
<record id="view_crm_case_opportunities_filter" model="ir.ui.view">
|
||||
<field name="name">CRM - Opportunities Search</field>
|
||||
@@ -293,11 +293,10 @@
|
||||
<field name="user_id" widget="selection">
|
||||
<filter icon="terp-partner"
|
||||
domain="[('user_id','=',uid)]"
|
||||
help="My Opportunities" default="1"
|
||||
/>
|
||||
help="My Opportunities" default="1"/>
|
||||
<filter icon="terp-partner"
|
||||
domain="[('user_id','=', uid)]"
|
||||
help="Unassigned Opportunities" />
|
||||
help="Unassigned Opportunities"/>
|
||||
</field>
|
||||
<field name="section_id"
|
||||
default="context.get('section_id', False)" select="1"
|
||||
@@ -309,23 +308,24 @@
|
||||
<newline/>
|
||||
<group expand="1" string="Group By...">
|
||||
<filter string="Stage" icon="terp-crm" domain="[]"
|
||||
context="{'group_by':'stage_id'}" />
|
||||
context="{'group_by':'stage_id'}"/>
|
||||
<filter string="Priority" icon="terp-crm" domain="[]"
|
||||
context="{'group_by':'priority'}" />
|
||||
context="{'group_by':'priority'}"/>
|
||||
<filter string="Category" icon="terp-crm"
|
||||
domain="[]" context="{'group_by':'categ_id'}" />
|
||||
domain="[]" context="{'group_by':'categ_id'}"/>
|
||||
|
||||
<separator orientation="vertical" />
|
||||
<separator orientation="vertical"/>
|
||||
<filter string="Salesman" icon="terp-crm"
|
||||
domain="[('user_id','=',uid)]" context="{'group_by':'user_id'}" />
|
||||
<separator orientation="vertical" />
|
||||
domain="[('user_id','=',uid)]" context="{'group_by':'user_id'}"/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter string="Creation" icon="terp-project"
|
||||
domain="[]" context="{'group_by':'create_date'}" />
|
||||
domain="[]" context="{'group_by':'create_date'}"/>
|
||||
<filter string="Exp.Closing" icon="terp-project"
|
||||
domain="[]" context="{'group_by':'date_deadline'}" />
|
||||
domain="[]" context="{'group_by':'date_deadline'}"/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
+17
-18
@@ -45,7 +45,7 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Case Sections Tree View -->
|
||||
<!-- Case Sections Tree View -->
|
||||
|
||||
<record id="crm_case_section_view_tree" model="ir.ui.view">
|
||||
<field name="name">crm.case.section.tree</field>
|
||||
@@ -61,7 +61,7 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Case Sections Action -->
|
||||
<!-- Case Sections Action -->
|
||||
|
||||
<record id="crm_case_section_act" model="ir.actions.act_window">
|
||||
<field name="name">Sales Team</field>
|
||||
@@ -70,7 +70,7 @@
|
||||
<field name="view_id" ref="crm_case_section_view_tree"/>
|
||||
</record>
|
||||
|
||||
<!-- CRM Stage Tree View -->
|
||||
<!-- CRM Stage Tree View -->
|
||||
|
||||
<record model="ir.ui.view" id="crm_case_stage_tree">
|
||||
<field name="name">crm.case.stage.tree</field>
|
||||
@@ -87,7 +87,7 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- CRM Stage Form View -->
|
||||
<!-- CRM Stage Form View -->
|
||||
|
||||
<record model="ir.ui.view" id="crm_case_stage_form">
|
||||
<field name="name">crm.case.stage.form</field>
|
||||
@@ -108,7 +108,7 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- CRM Stage Action -->
|
||||
<!-- CRM Stage Action -->
|
||||
|
||||
<record id="crm_case_stage_act" model="ir.actions.act_window">
|
||||
<field name="name">Stages</field>
|
||||
@@ -119,7 +119,7 @@
|
||||
|
||||
<menuitem id="menu_crm_case_stage" name="Stages" parent="base.menu_crm_configuration" groups="base.group_extended"/>
|
||||
|
||||
<!-- Case Categories Form View -->
|
||||
<!-- Case Categories Form View -->
|
||||
|
||||
<record id="crm_case_categ-view" model="ir.ui.view">
|
||||
<field name="name">crm.case.categ.form</field>
|
||||
@@ -134,7 +134,7 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Case Categories Tree View -->
|
||||
<!-- Case Categories Tree View -->
|
||||
|
||||
<record id="crm_case_categ_tree-view" model="ir.ui.view">
|
||||
<field name="name">crm.case.categ.tree</field>
|
||||
@@ -148,7 +148,7 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Case Categories Action -->
|
||||
<!-- Case Categories Action -->
|
||||
|
||||
<record id="crm_case_categ-act" model="ir.actions.act_window">
|
||||
<field name="name">Categories</field>
|
||||
@@ -163,7 +163,7 @@
|
||||
parent="base.menu_crm_configuration" />
|
||||
|
||||
|
||||
<!-- Resource Type of case Tree View -->
|
||||
<!-- Resource Type of case Tree View -->
|
||||
|
||||
<record model="ir.ui.view" id="crm_case_resource_type_tree">
|
||||
<field name="name">crm.case.resource.type.tree</field>
|
||||
@@ -178,7 +178,7 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Resource Type of case Form View -->
|
||||
<!-- Resource Type of case Form View -->
|
||||
|
||||
<record model="ir.ui.view" id="crm_case_resource_type_form">
|
||||
<field name="name">crm.case.resource.type.form</field>
|
||||
@@ -193,7 +193,7 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Resource Type of case Action -->
|
||||
<!-- Resource Type of case Action -->
|
||||
|
||||
<record id="crm_case_resource_type_act" model="ir.actions.act_window">
|
||||
<field name="name">Resource Type</field>
|
||||
@@ -212,7 +212,7 @@
|
||||
<field name="view_id" ref="crm_case_section_view_tree"/>
|
||||
</record>
|
||||
|
||||
<!-- Cases Tree View -->
|
||||
<!-- Cases Tree View -->
|
||||
|
||||
<record id="crm_case_log_tree-view" model="ir.ui.view">
|
||||
<field name="name">crm.case.log.tree</field>
|
||||
@@ -232,8 +232,7 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
<!-- Segmentation line Tree View -->
|
||||
<!-- Segmentation line Tree View -->
|
||||
|
||||
<record id="crm_segmentation_line_tree-view" model="ir.ui.view">
|
||||
<field name="name">crm.segmentation.line.tree</field>
|
||||
@@ -250,7 +249,7 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Segmentation line Form View -->
|
||||
<!-- Segmentation line Form View -->
|
||||
|
||||
<record id="crm_segmentation_line-view" model="ir.ui.view">
|
||||
<field name="name">crm.segmentation.line.form</field>
|
||||
@@ -270,7 +269,7 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- CRM Segmentation Form View -->
|
||||
<!-- CRM Segmentation Form View -->
|
||||
|
||||
<record id="crm_segmentation-view" model="ir.ui.view">
|
||||
<field name="name">crm.segmentation.form</field>
|
||||
@@ -315,7 +314,7 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- CRM Segmentation Tree View -->
|
||||
<!-- CRM Segmentation Tree View -->
|
||||
|
||||
<record id="crm_segmentation_tree-view" model="ir.ui.view">
|
||||
<field name="name">crm.segmentation.tree</field>
|
||||
@@ -375,7 +374,7 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Inherit View From Partner -->
|
||||
<!-- Inherit View From Partner -->
|
||||
|
||||
<record id="view_partners_form_crm1" model="ir.ui.view">
|
||||
<field name="name">view.res.partner.form.crm.inherited1</field>
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
'name': 'Carriers and deliveries',
|
||||
'version': '1.0',
|
||||
'category': 'Generic Modules/Sales & Purchases',
|
||||
'description': """Allows you to add delivery methods in sales orders and picking.
|
||||
'description': """Allows you to add delivery methods in sale orders and picking.
|
||||
You can define your own carrier and delivery grids for prices.
|
||||
When creating invoices from picking, Open ERP is able to add and compute the shipping line.
|
||||
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
ATTENTION:
|
||||
- When you install this module in a running company that have already PDF files stored into the database,
|
||||
you will lose them all.
|
||||
- After installing this module PDF's are not longer stored into the database,
|
||||
- After installing this module PDF's are no longer stored into the database,
|
||||
but in the servers rootpad like /server/bin/filestore.
|
||||
""",
|
||||
'author': 'Tiny',
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
'category': 'Generic Modules/Others',
|
||||
'description': """This is a support FTP Interface with document management system.
|
||||
With this module you would not only be able to access documents through open erp
|
||||
also you would be able to connect with them through the file system using the FTP protocol.
|
||||
but you would also be able to connect with them through the file system using the FTP protocol.
|
||||
""",
|
||||
'author': 'Tiny',
|
||||
'website': 'http://www.openerp.com',
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
"version" : "1.0",
|
||||
"depends" : ["base"],
|
||||
"author" : "Tiny",
|
||||
"description": """Fetchail:
|
||||
"description": """Fetchmail:
|
||||
* Fetch email from Pop / IMAP server
|
||||
* Support SSL
|
||||
* Integrated with all Modules
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
"depends" : ["hr",'hr_recruitment','survey'],
|
||||
"description": """
|
||||
Ability to create employees evaluation.
|
||||
An evaluation can be created by employee for subordinates
|
||||
An evaluation can be created by employee for subordinates,
|
||||
juniors as well as his manager.The evaluation is done under a plan
|
||||
in which various surveys can be created and it can be defined which
|
||||
level of employee hierarchy fills what and final review and evaluation
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
* Validation by the accountant and invoice creation
|
||||
* Payment of the invoice to the employee
|
||||
|
||||
This module also use the analytic accounting and is compatible with
|
||||
This module also uses the analytic accounting and is compatible with
|
||||
the invoice on timesheet module so that you will be able to automatically
|
||||
re-invoice your customer's expenses if your work by project.
|
||||
""",
|
||||
|
||||
@@ -31,7 +31,7 @@ class hr_holidays_status(osv.osv):
|
||||
_name = "hr.holidays.status"
|
||||
_description = "Leave Type"
|
||||
|
||||
def get_days_cat(self, cr, uid, ids, category_id, return_false, context={}):
|
||||
def get_days_cat(self, cr, uid, ids, category_id, return_false, context=None):
|
||||
res = {}
|
||||
for record in self.browse(cr, uid, ids, context):
|
||||
res[record.id] = {}
|
||||
@@ -48,7 +48,7 @@ class hr_holidays_status(osv.osv):
|
||||
res[record.id]['remaining_leaves'] = max_leaves - leaves_taken
|
||||
return res
|
||||
|
||||
def get_days(self, cr, uid, ids, employee_id, return_false, context={}):
|
||||
def get_days(self, cr, uid, ids, employee_id, return_false, context=None):
|
||||
res = {}
|
||||
for record in self.browse(cr, uid, ids, context=context):
|
||||
res[record.id] = {}
|
||||
@@ -65,7 +65,7 @@ class hr_holidays_status(osv.osv):
|
||||
res[record.id]['remaining_leaves'] = max_leaves - leaves_taken
|
||||
return res
|
||||
|
||||
def _user_left_days(self, cr, uid, ids, name, args, context={}):
|
||||
def _user_left_days(self, cr, uid, ids, name, args, context=None):
|
||||
return_false = False
|
||||
employee_id = False
|
||||
res = {}
|
||||
@@ -148,6 +148,17 @@ class hr_holidays(osv.osv):
|
||||
'holiday_type': 'employee'
|
||||
}
|
||||
|
||||
def _create_resource_leave(self, cr, uid, vals, context=None):
|
||||
'''This method will create entry in resource calendar leave object at the time of holidays validated '''
|
||||
obj_res_leave = self.pool.get('resource.calendar.leaves')
|
||||
return obj_res_leave.create(cr, uid, vals)
|
||||
|
||||
def _remove_resouce_leave(self, cr, uid, ids, context=None):
|
||||
'''This method will create entry in resource calendar leave object at the time of holidays cancel/removed'''
|
||||
obj_res_leave = self.pool.get('resource.calendar.leaves')
|
||||
leave_ids = obj_res_leave.search(cr, uid, [('holiday_id', 'in', ids)])
|
||||
return obj_res_leave.unlink(cr, uid, leave_ids)
|
||||
|
||||
def create(self, cr, uid, vals, context=None):
|
||||
if context is None:
|
||||
context = {}
|
||||
@@ -217,14 +228,11 @@ class hr_holidays(osv.osv):
|
||||
|
||||
_constraints = [(_check_date, 'Start date should not be larger than end date!\nNumber of Days should be greater than 1!', ['number_of_days_temp'])]
|
||||
|
||||
def unlink(self, cr, uid, ids, context={}):
|
||||
leave_obj = self.pool.get('resource.calendar.leaves')
|
||||
def unlink(self, cr, uid, ids, context=None):
|
||||
self._update_user_holidays(cr, uid, ids)
|
||||
leave_ids = leave_obj.search(cr, uid, [('holiday_id', 'in', ids)])
|
||||
leave_obj.unlink(cr, uid, leave_ids)
|
||||
self._remove_resouce_leave(cr, uid, ids, context=context)
|
||||
return super(hr_holidays, self).unlink(cr, uid, ids, context)
|
||||
|
||||
|
||||
def onchange_date_from(self, cr, uid, ids, date_to, date_from):
|
||||
result = {}
|
||||
if date_to and date_from:
|
||||
@@ -253,14 +261,14 @@ class hr_holidays(osv.osv):
|
||||
return {'warning': warning}
|
||||
|
||||
def set_to_draft(self, cr, uid, ids, *args):
|
||||
wf_service = netsvc.LocalService("workflow")
|
||||
self.write(cr, uid, ids, {
|
||||
'state':'draft',
|
||||
'manager_id': False,
|
||||
'number_of_days': 0,
|
||||
})
|
||||
wf_service = netsvc.LocalService("workflow")
|
||||
for holiday_id in ids:
|
||||
wf_service.trg_create(uid, 'hr.holidays', holiday_id, cr)
|
||||
for id in ids:
|
||||
wf_service.trg_create(uid, 'hr.holidays', id, cr)
|
||||
return True
|
||||
|
||||
def holidays_validate2(self, cr, uid, ids, *args):
|
||||
@@ -275,7 +283,6 @@ class hr_holidays(osv.osv):
|
||||
return True
|
||||
|
||||
def holidays_validate(self, cr, uid, ids, *args):
|
||||
obj_res_leave = self.pool.get('resource.calendar.leaves')
|
||||
obj_emp = self.pool.get('hr.employee')
|
||||
data_holiday = self.browse(cr, uid, ids)
|
||||
self.check_holidays(cr, uid, ids)
|
||||
@@ -300,7 +307,7 @@ class hr_holidays(osv.osv):
|
||||
'resource_id': record.employee_id.resource_id.id,
|
||||
'holiday_id': record.id
|
||||
}
|
||||
obj_res_leave.create(cr, uid, vals)
|
||||
self._create_resource_leave(cr, uid, vals)
|
||||
elif record.holiday_type=='category' and record.type=='remove':
|
||||
emp_ids = obj_emp.search(cr, uid, [('category_id', '=', record.category_id.id)])
|
||||
for emp in obj_emp.browse(cr, uid, emp_ids):
|
||||
@@ -313,7 +320,7 @@ class hr_holidays(osv.osv):
|
||||
'resource_id': emp.resource_id.id,
|
||||
'holiday_id':record.id
|
||||
}
|
||||
obj_res_leave.create(cr, uid, vals)
|
||||
self._create_resource_leave(cr, uid, vals)
|
||||
return True
|
||||
|
||||
def holidays_confirm(self, cr, uid, ids, *args):
|
||||
@@ -356,20 +363,17 @@ class hr_holidays(osv.osv):
|
||||
return True
|
||||
|
||||
def holidays_cancel(self, cr, uid, ids, *args):
|
||||
leave_obj = self.pool.get('resource.calendar.leaves')
|
||||
self._update_user_holidays(cr, uid, ids)
|
||||
self.write(cr, uid, ids, {
|
||||
'state':'cancel'
|
||||
})
|
||||
leave_ids = leave_obj.search(cr, uid, [('holiday_id', 'in', ids)])
|
||||
leave_obj.unlink(cr, uid, leave_ids)
|
||||
self._remove_resouce_leave(cr, uid, ids)
|
||||
return True
|
||||
|
||||
def holidays_draft(self, cr, uid, ids, *args):
|
||||
self.write(cr, uid, ids, {
|
||||
'state':'draft'
|
||||
})
|
||||
self.pool.get('resource.calendar.leaves')
|
||||
return True
|
||||
|
||||
def check_holidays(self, cr, uid, ids):
|
||||
@@ -441,7 +445,9 @@ class hr_holidays(osv.osv):
|
||||
}
|
||||
case_id = self.pool.get('crm.meeting').create(cr,uid,vals)
|
||||
self.write(cr, uid, ids, {'case_id':case_id})
|
||||
|
||||
return True
|
||||
|
||||
hr_holidays()
|
||||
|
||||
class resource_calendar_leaves(osv.osv):
|
||||
@@ -449,7 +455,8 @@ class resource_calendar_leaves(osv.osv):
|
||||
_description = "Leave Detail"
|
||||
_columns = {
|
||||
'holiday_id': fields.many2one("hr.holidays", "Holiday"),
|
||||
}
|
||||
}
|
||||
|
||||
resource_calendar_leaves()
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
@@ -15,7 +15,7 @@
|
||||
<separator orientation="vertical"/>
|
||||
<field name="user_id" widget="selection"/>
|
||||
<field name="department_id" widget="selection">
|
||||
<filter icon="terp-hr"
|
||||
<filter icon="terp-hr" help="My Department Holidays"
|
||||
domain="[('department_id.manager_id','=',uid)]"
|
||||
/>
|
||||
</field>
|
||||
|
||||
@@ -68,8 +68,18 @@
|
||||
domain="[('date','<=', time.strftime('%%Y-%%m-%%d')), ('date','>',(datetime.date.today()-datetime.timedelta(days=7)).strftime('%%Y-%%m-%%d'))]"
|
||||
help="Leaves during last 7 days"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="employee_id" widget="selection"/>
|
||||
<field name="user_id" widget="selection"/>
|
||||
|
||||
<field name="employee_id"/>
|
||||
<field name="user_id" widget="selection">
|
||||
<filter icon="terp-hr"
|
||||
string="My Leaves"
|
||||
domain="[('user_id','=',uid)]"/>
|
||||
</field>
|
||||
</group>
|
||||
<newline/>
|
||||
<group expand="0" string="Extended options..." colspan="10" col="12">
|
||||
<field name="holiday_status_id" widget="selection"/>
|
||||
<field name="department_id" widget="selection"/>
|
||||
</group>
|
||||
<newline/>
|
||||
<group expand="1" string="Group By..." colspan="10" col="12">
|
||||
@@ -95,7 +105,6 @@
|
||||
<field name="view_mode">tree,graph</field>
|
||||
<field name="context">{'search_default_month':1,'search_default_User':1,'group_by':[], "search_default_user_id": uid}</field>
|
||||
<field name="view_id" ref="view_hr_available_holidays_report_search"/>
|
||||
|
||||
</record>
|
||||
|
||||
<record model="ir.actions.act_window.view" id="action_hr_available_holidays_report_tree">
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
<data>
|
||||
|
||||
<record id="view_hr_holidays_report_tree" model="ir.ui.view">
|
||||
<field name="name">hr.holidays.report.tree</field>
|
||||
<field name="model">hr.holidays.report</field>
|
||||
@@ -152,5 +153,6 @@
|
||||
</graph>
|
||||
</field>
|
||||
</record>
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
'category': 'Generic Modules/Human Resources',
|
||||
'description': """
|
||||
Manages job positions and the recruitement process. It's integrated with the
|
||||
survey module to allows you to define interview for different jobs.
|
||||
survey module to allow you to define interview for different jobs.
|
||||
|
||||
This module is integrated with the mail gateway to automatically tracks email
|
||||
sent to jobs@YOURCOMPANY.com. It's also integrated with the document management
|
||||
|
||||
@@ -25,9 +25,9 @@
|
||||
'version': '1.0',
|
||||
'category': 'Generic Modules/Human Resources',
|
||||
'description': """
|
||||
This module implement a timesheet system. Each employee can encode and
|
||||
This module implements a timesheet system. Each employee can encode and
|
||||
track their time spent on the different projects. A project is an
|
||||
analytic account and the time spent on a project generate costs on
|
||||
analytic account and the time spent on a project generates costs on
|
||||
the analytic account.
|
||||
|
||||
Lots of reporting on time and employee tracking are provided.
|
||||
|
||||
@@ -25,21 +25,21 @@
|
||||
'version': '1.0',
|
||||
'category': 'Generic Modules/Human Resources',
|
||||
'description': """
|
||||
This module help you easily encode and validate timesheet and attendances
|
||||
This module helps you to easily encode and validate timesheet and attendances
|
||||
within the same view. The upper part of the view is for attendances and
|
||||
track (sign in/sign out) events. The lower part is for timesheet.
|
||||
|
||||
Others tabs contains statistics views to help you analyse your
|
||||
Other tabs contains statistics views to help you analyse your
|
||||
time or the time of your team:
|
||||
* Time spent by day (with attendances)
|
||||
* Time spent by project
|
||||
|
||||
This module also implement a complete timesheet validation process:
|
||||
This module also implements a complete timesheet validation process:
|
||||
* Draft sheet
|
||||
* Confirmation at the end of the period by the employee
|
||||
* Validation by the project manager
|
||||
|
||||
The validation can be configured in te company:
|
||||
The validation can be configured in the company:
|
||||
* Period size (day, week, month, year)
|
||||
* Maximal difference between timesheet and attendances
|
||||
""",
|
||||
|
||||
@@ -27,8 +27,8 @@
|
||||
'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.
|
||||
Then, other users can comment on these ideas and vote for particular ideas.
|
||||
Each idea has 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.""",
|
||||
'author': 'Tiny',
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
|
||||
After Installing this module,The Configuration wizard for accounting is launched.
|
||||
* We have the account templates which can be helpful to generate Charts of Accounts.
|
||||
* On that particular wizard,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 account and Bank account,currency to create Journals.
|
||||
* On that particular wizard,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 account 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 Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template.
|
||||
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
"name" : "Switzerland localisation corrected by Camptocamp",
|
||||
"description" : """
|
||||
Swiss localisation :
|
||||
- DTA generation for a lot of paiment types
|
||||
- DTA generation for a lot of payment types
|
||||
- BVR management (number generation, report, etc..)
|
||||
- Import account move from the bank file (like v11 etc..)
|
||||
- Simplify the way you handle the bank statement for reconciliation
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
"name": "Lunch Module",
|
||||
"author": "Tiny",
|
||||
"Description": """
|
||||
The lunch module is for keeping record of the order placing and payment of the orders.
|
||||
The lunch module is for keeping record of the order placed and payment of the orders.
|
||||
The products are defined under categories and the payment records are maintained user wise
|
||||
Every user has a cashbox which keeps track of the amount paid for a particular order.
|
||||
|
||||
|
||||
@@ -37,10 +37,12 @@
|
||||
'update_xml': [
|
||||
'marketing_campaign_view.xml',
|
||||
'marketing_campaign_data.xml',
|
||||
'marketing_campaign_workflow.xml',
|
||||
'marketing_campaign_workflow.xml',
|
||||
'report/campaign_analysis_view.xml',
|
||||
],
|
||||
'demo_xml': [],
|
||||
'demo_xml': [
|
||||
'marketing_campaign_demo.xml',
|
||||
],
|
||||
'installable': True,
|
||||
'active': False,
|
||||
}
|
||||
|
||||
@@ -40,9 +40,11 @@ class marketing_campaign(osv.osv): #{{{
|
||||
|
||||
_columns = {
|
||||
'name': fields.char('Name', size=64, required=True),
|
||||
'object_id': fields.many2one('ir.model', 'Objects', required=True),
|
||||
'object_id': fields.many2one('ir.model', 'Objects', required=True,
|
||||
help="Choose the Object on which you want \
|
||||
this campaign to be run"),
|
||||
'mode':fields.selection([('test', 'Test'),
|
||||
('test_realtime', 'Realtime Time'),
|
||||
('test_realtime', 'Realtime'),
|
||||
('manual', 'Manual'),
|
||||
('active', 'Active')],
|
||||
'Mode', required=True),
|
||||
@@ -53,7 +55,8 @@ class marketing_campaign(osv.osv): #{{{
|
||||
'State',),
|
||||
'activity_ids': fields.one2many('marketing.campaign.activity',
|
||||
'campaign_id', 'Activities'),
|
||||
'fixed_cost': fields.float('Fixed Cost'),
|
||||
'fixed_cost': fields.float('Fixed Cost', help="The fixed cost is cost\
|
||||
you required for the campaign"),
|
||||
|
||||
}
|
||||
|
||||
@@ -102,7 +105,7 @@ class marketing_campaign_segment(osv.osv): #{{{
|
||||
'object_id': fields.related('campaign_id','object_id',
|
||||
type='many2one', relation='ir.model',
|
||||
string='Object'),
|
||||
'ir_filter_id': fields.many2one('ir.filters', 'Filter'),
|
||||
'ir_filter_id': fields.many2one('ir.filters', 'Filter', help=""),
|
||||
'sync_last_date': fields.datetime('Date'),
|
||||
'sync_mode': fields.selection([('create_date', 'Create'),
|
||||
('write_date', 'Write')],
|
||||
@@ -199,8 +202,11 @@ class marketing_campaign_activity(osv.osv): #{{{
|
||||
'object_id': fields.related('campaign_id','object_id',
|
||||
type='many2one', relation='ir.model',
|
||||
string='Object'),
|
||||
'start': fields.boolean('Start'),
|
||||
'condition': fields.char('Condition', size=256, required=True, help="Condition that is to be tested before action is executed"),
|
||||
'start': fields.boolean('Start',help= "Its necessary to start activity \
|
||||
before running campaign"),
|
||||
'condition': fields.char('Condition', size=256, required=True,
|
||||
help="Condition that is to be tested before \
|
||||
action is executed"),
|
||||
'type': fields.selection([('email', 'E-mail'),
|
||||
('paper', 'Paper'),
|
||||
('action', 'Action'),
|
||||
@@ -208,10 +214,11 @@ class marketing_campaign_activity(osv.osv): #{{{
|
||||
'Type', required=True),
|
||||
'email_template_id': fields.many2one('poweremail.templates','Email Template'),
|
||||
'report_id': fields.many2one('ir.actions.report.xml', 'Reports', ),
|
||||
'report_directory_id': fields.many2one('document.directory',
|
||||
'Directory to Store Reports',
|
||||
help="Folder is used to store the genreated reports"),
|
||||
'server_action_id': fields.many2one('ir.actions.server', string='Action'),
|
||||
'report_directory_id': fields.many2one('document.directory','Directory',
|
||||
help="Folder is used to store the generated reports"),
|
||||
'server_action_id': fields.many2one('ir.actions.server', string='Action',
|
||||
help= "Describes the action name.\n"
|
||||
"eg:On which object which action to be taken on basis of which condition"),
|
||||
'to_ids': fields.one2many('marketing.campaign.transition',
|
||||
'activity_from_id',
|
||||
'Next Activities'),
|
||||
@@ -251,7 +258,7 @@ class marketing_campaign_activity(osv.osv): #{{{
|
||||
workitem = workitem_obj.browse(cr, uid, wi_id)
|
||||
if activity.type == 'paper' :
|
||||
service = netsvc.LocalService('report.%s'%activity.report_id.report_name)
|
||||
(report_data, format) = service.create(cr, uid, [activity.report_id.id], {}, {})
|
||||
(report_data, format) = service.create(cr, uid, [], {}, {})
|
||||
attach_vals = {
|
||||
'name': '%s_%s_%s'%(activity.report_id.report_name,
|
||||
activity.name,workitem.partner_id.name),
|
||||
@@ -367,7 +374,7 @@ class marketing_campaign_workitem(osv.osv): #{{{
|
||||
|
||||
def process(self, cr, uid, workitem_ids, context={}):
|
||||
for wi in self.browse(cr, uid, workitem_ids):
|
||||
if wi.state == 'todo' :# we searched the wi which are in todo state
|
||||
if wi.state == 'todo':# we searched the wi which are in todo state
|
||||
#then y v keep this filter again
|
||||
eval_context = {
|
||||
'pool': self.pool,
|
||||
@@ -375,23 +382,23 @@ class marketing_campaign_workitem(osv.osv): #{{{
|
||||
'uid': uid,
|
||||
'wi': wi,
|
||||
'object': wi.activity_id,
|
||||
'transition' : wi.activity_id.to_ids
|
||||
'transition': wi.activity_id.to_ids
|
||||
}
|
||||
expr = eval(str(wi.activity_id.condition), cxt)
|
||||
expr = eval(str(wi.activity_id.condition), eval_context)
|
||||
if expr:
|
||||
try :
|
||||
res = self.pool.get('marketing.campaign.activity').process(
|
||||
cr, uid, wi.activity_id.id, wi.id, context)
|
||||
if res :
|
||||
self.write(cr, uid, wi.id, {'state':'done'})
|
||||
self.write(cr, uid, wi.id, {'state': 'done'})
|
||||
self.process_chain(cr, uid, wi.id, context)
|
||||
else :
|
||||
self.write(cr, uid, wi.id, {'state':'exception',
|
||||
'error_msg' : res['error_msg']})
|
||||
self.write(cr, uid, wi.id, {'state': 'exception',
|
||||
'error_msg': res['error_msg']})
|
||||
except Exception,e:
|
||||
self.write(cr, uid, wi.id, {'state':'exception'})
|
||||
self.write(cr, uid, wi.id, {'state': 'exception'})
|
||||
else :
|
||||
self.write(cr, uid, wi.id, {'state':'cancelled'})
|
||||
self.write(cr, uid, wi.id, {'state': 'cancelled'})
|
||||
|
||||
return True
|
||||
|
||||
@@ -407,7 +414,7 @@ class poweremail_templates(osv.osv):
|
||||
_inherit = "poweremail.templates"
|
||||
|
||||
_defaults = {
|
||||
'object_name' : lambda obj, cr, uid, context : context.get('object_id',False),
|
||||
'object_name': lambda obj, cr, uid, context: context.get('object_id',False),
|
||||
}
|
||||
poweremail_templates()
|
||||
|
||||
@@ -416,12 +423,12 @@ class report_xml(osv.osv):
|
||||
_inherit = 'ir.actions.report.xml'
|
||||
|
||||
def search(self, cr, uid, args, offset=0, limit=None, order=None, context=None, count=False):
|
||||
if not context :
|
||||
if not context:
|
||||
context = {}
|
||||
if context and 'object_id' in context and context['object_id']:
|
||||
model = self.pool.get('ir.model').browse(cr, uid,
|
||||
context['object_id']).model
|
||||
args.append(('model','=',model))
|
||||
args.append(('model', '=', model))
|
||||
return super(report_xml, self).search(cr, uid, args, offset, limit, order, context, count)
|
||||
|
||||
report_xml()
|
||||
|
||||
@@ -0,0 +1,89 @@
|
||||
<?xml version="1.0" ?>
|
||||
<openerp>
|
||||
<data>
|
||||
|
||||
<!-- Document directory -->
|
||||
<record id="document_directory_marketingcampaign" model="document.directory">
|
||||
<field eval="0" name="ressource_tree"/>
|
||||
<field eval="[(6,0,[])]" name="group_ids"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field eval=""""Marketing Campaign"""" name="name"/>
|
||||
<field eval=""""[]"""" name="domain"/>
|
||||
<field eval=""""directory"""" name="type"/>
|
||||
</record>
|
||||
<record id="document_directory_campaign1" model="document.directory">
|
||||
<field eval="0" name="ressource_tree"/>
|
||||
<field eval="[(6,0,[])]" name="group_ids"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field eval=""""OpenERP OnDemand Free Trial 2010"""" name="name"/>
|
||||
<field eval=""""[]"""" name="domain"/>
|
||||
<field name="parent_id" ref="document_directory_marketingcampaign"/>
|
||||
<field eval=""""ressource"""" name="type"/>
|
||||
<field name="ressource_type_id" ref="model_marketing_campaign"/>
|
||||
</record>
|
||||
<!-- Power email tempalte -->
|
||||
<record id="poweremail_templates_foropenerpondemandfreetrial0" model="poweremail.templates">
|
||||
<field name="def_subject">Thanks for showing interest in OpenERP</field>
|
||||
<field name="def_to">info@tinyerp.com</field>
|
||||
<field eval="[(6,0,[])]" name="allowed_groups"/>
|
||||
<field eval="0" name="auto_email"/>
|
||||
<field model="ir.actions.act_window" name="ref_ir_act_window" search="[('name', '=', u'For OpenERP OnDemand Free Trial 2010 Mail Form')]"/>
|
||||
<field eval="[(6,0,[])]" name="table_required_fields"/>
|
||||
<field model="ir.values" name="ref_ir_value" search="[('name', '=', u'Send Mail (For OpenERP OnDemand Free Trial 2010)')]"/>
|
||||
<field name="object_name" ref="crm.model_crm_lead"/>
|
||||
<field eval="0" name="use_sign"/>
|
||||
<field name="def_body_text">Hello,
|
||||
Thanks for generous interest you have shown in the open ERP.
|
||||
Regards,
|
||||
OpenERP Team,</field>
|
||||
<field name="template_language">mako</field>
|
||||
<field eval="0" name="send_on_create"/>
|
||||
<field name="name">For OpenERP OnDemand Free Trial 2010</field>
|
||||
<field name="model_int_name">crm.lead</field>
|
||||
<field eval="0" name="send_on_write"/>
|
||||
</record>
|
||||
<!-- Report -->
|
||||
<record id="mc_crm_lead_demo_report" model="ir.actions.report.xml">
|
||||
<field name="name">Marketing campaign demo report</field>
|
||||
<field name="type">ir.actions.report.xml</field>
|
||||
<field name="model">crm.lead</field>
|
||||
<field name="report_name">crm.lead.demo</field>
|
||||
<field name="report_rml">marketing_campaign/report/crm_lead_mc_demo_report.rml</field>
|
||||
<field name="report_type">pdf</field>
|
||||
</record>
|
||||
<!-- Campaign -->
|
||||
<record id="marketing_campaign_openerpondemandfreetrial0" model="marketing.campaign">
|
||||
<field name="name">OpenERP OnDemand Free Trial 2010</field>
|
||||
<field name="object_id" ref="crm.model_crm_lead"/>
|
||||
</record>
|
||||
<!-- Activity -->
|
||||
<record id="marketing_campaign_activity_0" model="marketing.campaign.activity">
|
||||
<field name="name">Propose a 1 month free trial for an OnDemand offer</field>
|
||||
<field name="server_action_id" ref="base.action_start_configurator"/>
|
||||
<field model="marketing.campaign" name="campaign_id" ref="marketing_campaign_openerpondemandfreetrial0"/>
|
||||
<field name="report_directory_id" ref="document_directory_campaign1"/>
|
||||
<field name="type">paper</field>
|
||||
<field eval="1" name="start"/>
|
||||
<field name="report_id" ref="mc_crm_lead_demo_report"/>
|
||||
</record>
|
||||
<record id="marketing_campaign_activity_1" model="marketing.campaign.activity">
|
||||
<field name="name">Thanks for showing interest</field>
|
||||
<field name="server_action_id" ref="base.action_start_configurator"/>
|
||||
<field model="marketing.campaign" name="campaign_id" ref="marketing_campaign_openerpondemandfreetrial0"/>
|
||||
</record>
|
||||
<!-- Tranisition -->
|
||||
<record id="marketing_campaign_transition_0" model="marketing.campaign.transition">
|
||||
<field model="marketing.campaign.activity" name="activity_from_id" ref = "marketing_campaign_activity_0"/>
|
||||
<field model="marketing.campaign.activity" name="activity_to_id" ref = "marketing_campaign_activity_1"/>
|
||||
</record>
|
||||
<!-- Segment -->
|
||||
<record id="marketing_campaign_segment_bosslistusassociationslist0" model="marketing.campaign.segment">
|
||||
<field eval="time.strftime('%Y-%m-%d %H:%M:%S')" name="date_run"/>
|
||||
<field name="name">BossList US Associations List-0/90</field>
|
||||
<field name="sync_mode">create_date</field>
|
||||
<field name="campaign_id" ref="marketing_campaign_openerpondemandfreetrial0"/>
|
||||
<field name="state">draft</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
@@ -139,18 +139,18 @@
|
||||
<field name="type">search</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Campaigns">
|
||||
<filter icon="terp-project" string="Draft" name = "draft" domain="[('state','=','draft')]"/>
|
||||
<filter icon="terp-project" string="Running" domain="[('state','=','running')]"/>
|
||||
<filter icon="terp-marketing" string="Draft" name = "draft" domain="[('state','=','draft')]"/>
|
||||
<filter icon="terp-marketing" string="Running" domain="[('state','=','running')]"/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter icon="terp-project" string="Test Mode" name = "test" domain="[('mode','=','test')]"/>
|
||||
<filter icon="terp-project" string="Manual Mode" domain="[('mode','=','manual')]"/>
|
||||
<filter icon="terp-marketing" string="Test Mode" name = "test" domain="[('mode','=','test')]"/>
|
||||
<filter icon="terp-marketing" string="Manual Mode" domain="[('mode','=','manual')]"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="name" select="1"/>
|
||||
<field name="object_id" select="1"/>
|
||||
<newline/>
|
||||
<group expand="1" string="Group By..." colspan="10" col="12">
|
||||
<filter string="Object" name="Object" icon="terp-project" context="{'group_by':'object_id'}" />
|
||||
<filter string="State" name="State" icon="terp-project" context="{'group_by':'state'}" />
|
||||
<filter string="Object" name="Object" icon="terp-marketing" context="{'group_by':'object_id'}" />
|
||||
<filter string="State" name="State" icon="terp-marketing" context="{'group_by':'state'}" />
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
@@ -231,11 +231,11 @@
|
||||
<field name="type">search</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Segments">
|
||||
<filter icon="terp-project" string="Draft" name="draft" domain="[('state','=','draft')]"/>
|
||||
<filter icon="terp-project" string="Running" domain="[('state','=','running')]"/>
|
||||
<filter icon="terp-marketing" string="Draft" name="draft" domain="[('state','=','draft')]"/>
|
||||
<filter icon="terp-marketing" string="Running" domain="[('state','=','running')]"/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter icon="terp-project" string="Create Date" name="create_date" domain="[('sync_mode','=','create_date')]"/>
|
||||
<filter icon="terp-project" string="Write Date" domain="[('sync_mode','=','write_date')]"/>
|
||||
<filter icon="terp-marketing" string="Create Date" name="create_date" domain="[('sync_mode','=','create_date')]"/>
|
||||
<filter icon="terp-marketing" string="Write Date" domain="[('sync_mode','=','write_date')]"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="name" select="1"/>
|
||||
<field name="object_id" select="1"/>
|
||||
@@ -243,9 +243,9 @@
|
||||
<field name="date_run" select="1"/>
|
||||
<newline/>
|
||||
<group expand="1" string="Group By..." colspan="10" col="12">
|
||||
<filter string="Campaign" name="Campaign" icon="terp-project" context="{'group_by':'campaign_id'}" />
|
||||
<filter string="Date Run" name="Date Run" icon="terp-project" context="{'group_by':'date_run'}" />
|
||||
<filter string="State" name="State" icon="terp-project" context="{'group_by':'state'}" />
|
||||
<filter string="Campaign" name="Campaign" icon="terp-marketing" context="{'group_by':'campaign_id'}" />
|
||||
<filter string="Date Run" name="Date Run" icon="terp-marketing" context="{'group_by':'date_run'}" />
|
||||
<filter string="State" name="State" icon="terp-marketing" context="{'group_by':'state'}" />
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
|
||||
@@ -30,14 +30,14 @@
|
||||
<field name="arch" type="xml">
|
||||
<search string="Marketing Reports">
|
||||
<group>
|
||||
<filter icon="terp-account"
|
||||
<filter icon="terp-marketing"
|
||||
string="This Year"
|
||||
domain="[('year','=',time.strftime('%%Y'))]"/>
|
||||
<filter icon="terp-account"
|
||||
<filter icon="terp-marketing"
|
||||
string="This Month"
|
||||
domain="[('month','=',time.strftime('%%m'))]"/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter icon="terp-account"
|
||||
<filter icon="terp-marketing"
|
||||
string="Date"
|
||||
domain="[('date','=',time.strftime('%%Y/%%m/%%d'))]"/>
|
||||
<separator orientation="vertical"/>
|
||||
@@ -49,12 +49,12 @@
|
||||
</group>
|
||||
<newline/>
|
||||
<group expand="1" string="Group By..." colspan="10" col="12">
|
||||
<filter string="Campaign" name="Campaign" icon="terp-sale" context="{'group_by':'campaign_id'}" />
|
||||
<filter string="Segment" name ="Segment" icon="terp-sale" context="{'group_by':'segment_id'}" />
|
||||
<filter string="Partner" icon="terp-sale" context="{'group_by':'partner_id'}"/>
|
||||
<filter string="Campaign" name="Campaign" icon="terp-marketing" context="{'group_by':'campaign_id'}" />
|
||||
<filter string="Segment" name ="Segment" icon="terp-marketing" context="{'group_by':'segment_id'}" />
|
||||
<filter string="Partner" icon="terp-marketing" context="{'group_by':'partner_id'}"/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter string="Month" icon="terp-sale" context="{'group_by':'month'}"/>
|
||||
<filter string="Year" icon="terp-sale" context="{'group_by':'year'}"/>
|
||||
<filter string="Month" icon="terp-marketing" context="{'group_by':'month'}"/>
|
||||
<filter string="Year" icon="terp-marketing" context="{'group_by':'year'}"/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
<?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"/>
|
||||
</pageTemplate>
|
||||
</template>
|
||||
<stylesheet>
|
||||
<blockTableStyle id="Standard_Outline">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
</blockTableStyle>
|
||||
<initialize>
|
||||
<paraStyle name="all" alignment="justify"/>
|
||||
</initialize>
|
||||
<paraStyle name="Standard" fontName="Helvetica"/>
|
||||
<paraStyle name="Heading" fontName="Helvetica" fontSize="14.0" leading="17" spaceBefore="12.0" spaceAfter="6.0"/>
|
||||
<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="Caption" fontName="Helvetica-Oblique" fontSize="12.0" leading="15" spaceBefore="6.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="Index" fontName="Helvetica"/>
|
||||
<images/>
|
||||
</stylesheet>
|
||||
<story>
|
||||
<para style="Standard">[[ repeatIn(objects,'lead') ]]</para>
|
||||
<para style="Standard">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
<para style="Text body">Partner : [[ lead.company_id.partner_id.name ]]</para>
|
||||
<para style="Standard">Company : [[ lead.company_id.parent_id.name ]]</para>
|
||||
</story>
|
||||
</document>
|
||||
@@ -26,7 +26,7 @@
|
||||
'category': 'Generic Modules/Base',
|
||||
'description': """
|
||||
This module shows the basic processes involved
|
||||
in the selected modules and in the sequence these
|
||||
in the selected modules and in the sequence they
|
||||
occur
|
||||
|
||||
Note: This applies to the modules containing modulename_process_xml
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
'category': 'Custom',
|
||||
'description': """
|
||||
Adds a reporting menu in products that computes sales, purchases, margins
|
||||
and others interesting indicators based on invoices. The wizard to launch
|
||||
and other interesting indicators based on invoices. The wizard to launch
|
||||
the report has several options to help you get the data you need.
|
||||
""",
|
||||
'author': 'Tiny',
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
"category" : "Generic Modules/Projects & Services",
|
||||
"depends" : ["product", "analytic", "process", "mail_gateway"],
|
||||
"description": """Project management module that track multi-level projects, tasks,
|
||||
works done on tasks, eso. It is able to render planning, order tasks, eso.
|
||||
work done on tasks, eso. It is able to render planning, order tasks, eso.
|
||||
""",
|
||||
"init_xml" : [],
|
||||
"update_xml": [
|
||||
|
||||
@@ -215,7 +215,7 @@
|
||||
</record>
|
||||
|
||||
<!-- Views and action for project dashboard -->
|
||||
<record id="view_task_by_days_vs_planned_hours_tree" model="ir.ui.view">
|
||||
<record id="view_task_by_days_vs_planned_hours_tree" model="ir.ui.view">
|
||||
<field name="name">task.by.days.vs.planned.hours.tree</field>
|
||||
<field name="model">task.by.days.vs.planned.hours</field>
|
||||
<field name="type">tree</field>
|
||||
@@ -247,5 +247,6 @@
|
||||
<field name="view_mode">graph,tree</field>
|
||||
<field name="view_id" ref="view_task_by_days_vs_planned_hours_graph"/>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
|
||||
Long Term Project management module that track planning, scheduling, resources allocation.
|
||||
Mainly used with Big project management.
|
||||
- Project Phases will be maintain by Manager of the project
|
||||
- Project Phases will be maintained by Manager of the project
|
||||
- Compute Phase Scheduling: Compute start date and end date of the phases which are in draft,open and pending state of the project given.
|
||||
If no project given then all the draft,open and pending states phases will be taken
|
||||
- Compute Task Scheduling: This works same as the scheduler button on project.phase. It takes the project as arguement and computes all the open,draft and pending tasks
|
||||
|
||||
@@ -32,7 +32,7 @@ This module is based on the analytic accounting and is totally integrated with
|
||||
* the holidays management
|
||||
* the project management
|
||||
|
||||
So that, each department manager can know if someone in his team has still unaloccated time for a given planning (taking in consideration the validated leaves) or if he still needs to encode tasks.
|
||||
So that, each department manager can know if someone in his team has still unallocated time for a given planning (taking in consideration the validated leaves) or if he still needs to encode tasks.
|
||||
|
||||
At the end of the month, the planning manager can also check if the encoded timesheets are respecting the planned time on each analytic account.
|
||||
""",
|
||||
|
||||
@@ -112,11 +112,7 @@
|
||||
<button name="do_reopen" states="done,cancelled" string="Reactivate" type="object" icon="gtk-convert"/>
|
||||
<button name="do_pending" states="open" string="Pending" type="object" icon="gtk-media-pause"/>
|
||||
<button groups="base.group_extended" name="%(project.action_project_task_delegate)d" states="pending,open" string="Delegate" type="action" icon="gtk-sort-descending"/>
|
||||
<<<<<<< TREE
|
||||
<button name="do_close" states="pending,open" string="Done" type="object" icon="gtk-jump-to"/>
|
||||
=======
|
||||
<button name="%(project.action_project_close_task)d" states="pending,open" string="Done" type="action" icon="gtk-jump-to"/>
|
||||
>>>>>>> MERGE-SOURCE
|
||||
<button name="do_cancel" states="draft,open,pending" string="Cancel" type="object" icon="gtk-cancel"/>
|
||||
|
||||
</group>
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
'version': '0.1',
|
||||
'category': 'Generic Modules/Projects & Services',
|
||||
'description': """
|
||||
- If deadline date of project is changed will
|
||||
- If deadline date of project is changed
|
||||
then the deadline date for all the tasks will change to the same """,
|
||||
'author': 'Tiny',
|
||||
'depends': ['base', 'project'],
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
'category': 'Generic Modules/Inventory Control',
|
||||
'description': """
|
||||
A module that adds intrastat reports.
|
||||
This module gives the details of the goods traded between the countries of Europan Union """,
|
||||
This module gives the details of the goods traded between the countries of European Union """,
|
||||
'author': 'Tiny',
|
||||
'website': 'http://www.openerp.com',
|
||||
'depends': ['base', 'product', 'stock', 'sale', 'purchase'],
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
The sale journal modules allows you to categorise your
|
||||
sales and deliveries (picking lists) between different journals.
|
||||
This module is very helpful for bigger companies that
|
||||
works by departments.
|
||||
work by departments.
|
||||
|
||||
You can use journal for different purposes, some examples:
|
||||
* isolate sales of different departments
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
'version': '1.0',
|
||||
'category': 'Enterprise Specific Modules/Information Technology',
|
||||
'description': """
|
||||
This modules implements all concepts defined by the scrum project
|
||||
This module implements all concepts defined by the scrum project
|
||||
management methodology for IT companies:
|
||||
* Project with sprints, product owner, scrum master
|
||||
* Sprints with reviews, daily meetings, feedbacks
|
||||
@@ -36,10 +36,10 @@
|
||||
* Mid-term, long-term road-map
|
||||
* Customers/functional requests VS technical ones
|
||||
|
||||
It also create a new reporting:
|
||||
It also creates a new reporting:
|
||||
* Burn-down chart
|
||||
|
||||
The scrum projects and tasks inherits from the real projects and
|
||||
The scrum projects and tasks inherit from the real projects and
|
||||
tasks, so you can continue working on normal tasks that will also
|
||||
include tasks from scrum projects.
|
||||
|
||||
|
||||
@@ -95,7 +95,7 @@ class stock_report_tracklots(osv.osv):
|
||||
}
|
||||
|
||||
def init(self, cr):
|
||||
drop_view_if_exists(cr, 'stock_report_prodlots')
|
||||
drop_view_if_exists(cr, 'stock_report_tracklots')
|
||||
cr.execute("""
|
||||
create or replace view stock_report_tracklots as (
|
||||
|
||||
@@ -150,7 +150,7 @@ class report_stock_lines_date(osv.osv):
|
||||
'date': fields.datetime('Latest Inventory Date'),
|
||||
}
|
||||
def init(self, cr):
|
||||
drop_view_if_exists(cr, 'stock_report_prodlots')
|
||||
drop_view_if_exists(cr, 'report_stock_lines_date')
|
||||
cr.execute("""
|
||||
create or replace view report_stock_lines_date as (
|
||||
select
|
||||
|
||||
@@ -1214,7 +1214,7 @@ class stock_move(osv.osv):
|
||||
'priority': fields.selection([('0', 'Not urgent'), ('1', 'Urgent')], 'Priority'),
|
||||
|
||||
'date': fields.datetime('Created Date'),
|
||||
'date_planned': fields.datetime('Date', required=True, help="Scheduled date for the movement of the products or real date if the move is done."),
|
||||
'date_planned': fields.datetime('Date Planned', required=True, help="Scheduled date for the movement of the products or real date if the move is done."),
|
||||
'date_expected': fields.datetime('Date Expected', readonly=True,required=True, help="Scheduled date for the movement of the products"),
|
||||
'product_id': fields.many2one('product.product', 'Product', required=True, select=True),
|
||||
|
||||
|
||||
+37
-31
@@ -341,7 +341,7 @@
|
||||
<field name="location_dest_id" />
|
||||
<field name="date" />
|
||||
<field name="date_planned" string="Date"/>
|
||||
<field name="date_expected" string="Date Expected"/>
|
||||
<field name="date_expected" string="Date Expected"/>
|
||||
<field name="state"/>
|
||||
</tree>
|
||||
</field>
|
||||
@@ -652,7 +652,7 @@
|
||||
<field colspan="4" invisible="1" name="name"/>
|
||||
<field invisible="1" name="date"/>
|
||||
<field name="date_planned"/>
|
||||
<field name="date_expected" string="Date Expected"/>
|
||||
<field name="date_expected" string="Date Expected"/>
|
||||
<field name="address_id" context="{'contact_display':'partner'}"/>
|
||||
<field groups="base.group_extended" name="product_packaging" domain="[('product_id','=',product_id)]"/>
|
||||
<field name="prodlot_id" groups="base.group_extended"
|
||||
@@ -738,7 +738,7 @@
|
||||
<field name="arch" type="xml">
|
||||
<tree colors="blue:state in ('draft');grey:state in ('cancel');red:state not in ('cancel', 'done') and date < current_date" string="Picking list">
|
||||
<field name="name"/>
|
||||
<field name="address_id"/>
|
||||
<field name="address_id"/>
|
||||
<field name="backorder_id" groups="base.group_extended"/>
|
||||
<field name="origin"/>
|
||||
<field name="date"/>
|
||||
@@ -777,7 +777,7 @@
|
||||
<field name="location_id"/>
|
||||
<field name="location_dest_id"/>
|
||||
<field name="date_planned"/>
|
||||
<field name="date_expected" string="Date Expected"/>
|
||||
<field name="date_expected" string="Date Expected"/>
|
||||
<field name="state"/>
|
||||
<button
|
||||
name="%(stock.track_line)d"
|
||||
@@ -804,7 +804,7 @@
|
||||
<field colspan="4" invisible="1" name="name"/>
|
||||
<field invisible="1" name="date"/>
|
||||
<field name="date_planned"/>
|
||||
<field name="date_expected" string="Date Expected"/>
|
||||
<field name="date_expected" string="Date Expected"/>
|
||||
<field groups="base.group_extended" name="product_packaging" domain="[('product_id','=',product_id)]"/>
|
||||
<field name="prodlot_id" groups="base.group_extended"
|
||||
context="{'location_id':location_id, 'product_id':product_id}"
|
||||
@@ -957,7 +957,7 @@
|
||||
<field name="location_id"/>
|
||||
<field name="location_dest_id"/>
|
||||
<field name="date_planned"/>
|
||||
<field name="date_expected" string="Date Expected"/>
|
||||
<field name="date_expected" string="Date Expected"/>
|
||||
<field name="state"/>
|
||||
<button
|
||||
name="%(stock.track_line)d"
|
||||
@@ -984,7 +984,7 @@
|
||||
<field colspan="4" invisible="1" name="name"/>
|
||||
<field invisible="1" name="date"/>
|
||||
<field name="date_planned"/>
|
||||
<field name="date_expected" string="Date Expected"/>
|
||||
<field name="date_expected" string="Date Expected"/>
|
||||
<field groups="base.group_extended" name="product_packaging" domain="[('product_id','=',product_id)]"/>
|
||||
<field name="prodlot_id" groups="base.group_extended"
|
||||
context="{'location_id':location_id, 'product_id':product_id}"
|
||||
@@ -1159,7 +1159,7 @@
|
||||
<field groups="product.group_uos" name="product_uos_qty"/>
|
||||
<field colspan="4" invisible="1" name="name" />
|
||||
<field groups="base.group_extended" name="date_planned"/>
|
||||
<field name="date_expected" groups="base.group_extended" string="Date Expected"/>
|
||||
<field name="date_expected" groups="base.group_extended" string="Date Expected"/>
|
||||
<newline/>
|
||||
<newline/>
|
||||
<field groups="base.group_extended" name="product_packaging" domain="[('product_id','=',product_id)]"/>
|
||||
@@ -1225,7 +1225,7 @@
|
||||
</group>
|
||||
<newline/>
|
||||
<group expand="1" string="Group By..." colspan="4" col="8">
|
||||
<filter icon="terp-stock" name="state" string="State" domain="[]" context="{'group_by':'state'}"/>
|
||||
<filter icon="terp-stock" name="state" string="State" domain="[]" context="{'group_by':'state'}"/>
|
||||
<separator orientation="vertical" />
|
||||
<filter string="Partner" icon="terp-stock" domain="[]" context="{'group_by':'address_id'}"/>
|
||||
<separator orientation="vertical" />
|
||||
@@ -1286,7 +1286,7 @@
|
||||
<group expand="1" string="Group By..." colspan="4" col="8">
|
||||
<filter string="State" icon="terp-stock" domain="[]" context="{'group_by':'state'}"/>
|
||||
<filter string="Partner" icon="terp-stock" domain="[]" context="{'group_by':'address_id'}"/>
|
||||
<filter string="Order Date" icon="terp-stock" domain="[]" context="{'group_by':'date'}"/>
|
||||
<filter string="Order Date" icon="terp-stock" domain="[]" context="{'group_by':'date'}"/>
|
||||
<filter string="Expected Date" icon="terp-stock" domain="[]" context="{'group_by':'min_date'}"/>
|
||||
<filter string="Origin" icon="terp-stock" domain="[]" context="{'group_by':'origin'}"/>
|
||||
</group>
|
||||
@@ -1312,18 +1312,16 @@
|
||||
<field name="type">tree</field>
|
||||
<field eval="6" name="priority"/>
|
||||
<field name="arch" type="xml">
|
||||
<tree colors="grey:state in ('cancel');red:date_planned > current_date" string="Moves">
|
||||
<field name="name" string="Move Name"/>
|
||||
<tree colors="grey:state in ('cancel');red:(state not in ('cancel','done')) and date_planned > current_date" string="Moves">
|
||||
<field name="picking_id" select="1"/>
|
||||
<field name="product_id"/>
|
||||
<field name="product_qty" on_change="onchange_quantity(product_id, product_qty, product_uom, product_uos)"/>
|
||||
<field name="product_uom" string="Unit Of Measure"/>
|
||||
<field name="picking_id" select="1"/>
|
||||
|
||||
<field name="product_uom" string="Unit Of Measure"/>
|
||||
<field name="prodlot_id" groups="base.group_extended"/>
|
||||
<field name="location_id"/>
|
||||
<field name="location_dest_id"/>
|
||||
<field name="date_planned"/>
|
||||
<field name="date_expected"/>
|
||||
<field name="date_expected"/>
|
||||
<field name="state"/>
|
||||
</tree>
|
||||
</field>
|
||||
@@ -1362,7 +1360,7 @@
|
||||
<separator string="Dates & Priority" colspan="2" />
|
||||
<field name="date"/>
|
||||
<field name="date_planned"/>
|
||||
<field name="date_expected"/>
|
||||
<field name="date_expected"/>
|
||||
<field name="priority"/>
|
||||
</group>
|
||||
|
||||
@@ -1395,31 +1393,39 @@
|
||||
<field name="name">stock.move.search</field>
|
||||
<field name="model">stock.move</field>
|
||||
<field name="type">search</field>
|
||||
<field eval="6" name="priority"/>
|
||||
<field eval="3" name="priority"/>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Stock Moves">
|
||||
<group col="8" colspan="4">
|
||||
<filter icon="terp-stock" string="Available" name="Available" domain="[('state','=','assigned')]" help="Available"/>
|
||||
<filter icon="terp-stock" string="Done" name="done" domain="[('state','=','done')]" help="Stock moves"/>
|
||||
<filter icon="terp-stock" string="Future" name="future" domain="[('state','in',('assigned','confirmed','waiting'))]" help="Future stock moves"/>
|
||||
<filter icon="terp-stock" string="Ready" name="ready" domain="[('state','=','assigned')]" help="Future stock moves that are ready"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="product_id"/>
|
||||
<field name="location_id"/>
|
||||
<field name="location_dest_id"/>
|
||||
<field name="location_id" string="Location" domain="['|',('location_id','ilike',self),('location_dest_id','ilike',self)]"/>
|
||||
<field name="address_id" string="Partner" context="{'contact_display':'partner'}" domain="[('picking_id.address_id','ilike',self)]"/>
|
||||
<field name="date_planned"/>
|
||||
</group>
|
||||
<newline/>
|
||||
<group expand="1" string="Group By..." colspan="4" col="8">
|
||||
<filter icon="terp-stock" string="Inventory" domain="[]" context="{'group_by':'name'}" />
|
||||
<filter icon="terp-stock" string="State" domain="[]" context="{'group_by':'state'}" />
|
||||
<filter string="Product" icon="terp-stock" domain="[]" context="{'group_by':'product_id'}"/>
|
||||
<filter string="Source Location" icon="terp-stock" domain="[]" context="{'group_by':'location_id'}"/>
|
||||
<filter string="Dest. Location" icon="terp-stock" domain="[]" context="{'group_by':'location_dest_id'}"/>
|
||||
<filter string="Date" icon="terp-stock" domain="[]" context="{'group_by':'date'}"/>
|
||||
<filter string="Product" name="by_product" icon="terp-stock" domain="[]" context="{'group_by':'product_id'}"/>
|
||||
<filter string="Lot" name="prodlot_id" icon="terp-stock" domain="[]" context="{'group_by':'prodlot_id'}"/>
|
||||
<filter string="Packing" name="picking_id" icon="terp-stock" domain="[]" context="{'group_by':'picking_id'}"/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter string="Source" icon="terp-stock" domain="[]" context="{'group_by':'location_id'}"/>
|
||||
<filter string="Destination" icon="terp-stock" domain="[]" context="{'group_by':'location_dest_id'}"/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter icon="terp-stock" string="State" domain="[]" context="{'group_by':'state'}" />
|
||||
<separator orientation="vertical"/>
|
||||
<filter string="Creation" icon="terp-stock" domain="[]" context="{'group_by':'date'}"/>
|
||||
<filter string="Expected" icon="terp-stock" domain="[]" context="{'group_by':'date_planned'}"/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="action_move_form2" model="ir.actions.act_window">
|
||||
<field name="name">All Moves</field>
|
||||
<field name="name">Stock Moves</field>
|
||||
<field name="res_model">stock.move</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="view_type">form</field>
|
||||
@@ -1611,10 +1617,10 @@
|
||||
src_model="stock.location"/>
|
||||
|
||||
<act_window
|
||||
context="{'location': active_id}"
|
||||
context="{'location': active_id, 'search_default_done': 1}"
|
||||
domain="[('product_id','=',active_id)]"
|
||||
id="act_product_stock_move_open"
|
||||
name="All Stock Moves"
|
||||
name="Stock Moves"
|
||||
res_model="stock.move"
|
||||
src_model="product.product"/>
|
||||
|
||||
@@ -1626,7 +1632,7 @@
|
||||
src_model="stock.move"/>
|
||||
|
||||
<act_window
|
||||
context="{'location': active_id}"
|
||||
context="{'location': active_id, 'search_default_future': 1}"
|
||||
domain="[('product_id','=',active_id),('state','in',('waiting','confirmed','assigned'))]"
|
||||
id="act_product_stock_move_futur_open"
|
||||
name="Future Stock Moves"
|
||||
|
||||
@@ -38,7 +38,7 @@ Because we have another module sale_forecast which uses terms "Sales Forecast" a
|
||||
|
||||
Activity with this module is divided to three steps:
|
||||
- Creating Periods. Mandatory step.
|
||||
- Creating Sale Forecasts and entering quantities to them. Optional step but useful for farther planning.
|
||||
- Creating Sale Forecasts and entering quantities to them. Optional step but useful for further planning.
|
||||
- Creating Planning lines, entering quantities to them and making Procurement. Making procurement is the final step for the Period.
|
||||
|
||||
Periods
|
||||
@@ -52,7 +52,7 @@ Creating periods is the first step you have to do to use modules features. You c
|
||||
Remarks:
|
||||
- These periods (officially Stock and Sales Periods) are separated of Financial or other periods in the system.
|
||||
- Periods are not assigned to companies (when you use multicompany feature at all). Module suppose that you use the same periods across companies. If you wish to use different periods for different companies define them as you wish (they can overlap). Later on in this text will be indications how to use such periods.
|
||||
- When periods are created automatically their start and finish dates are with with start hour 00:00:00 and end hour 23:59:00. Fe. when you create daily periods they will have start date 31.01.2010 00:00:00 and end date 31.01.2010 23:59:00. It works only in automatic creation of periods. When you create periods manually you have to take care about hours because you can have incorrect values form sales or stock.
|
||||
- When periods are created automatically their start and finish dates are with start hour 00:00:00 and end hour 23:59:00. Fe. when you create daily periods they will have start date 31.01.2010 00:00:00 and end date 31.01.2010 23:59:00. It works only in automatic creation of periods. When you create periods manually you have to take care about hours because you can have incorrect values form sales or stock.
|
||||
- If you use overlapping periods for the same product, warehouse and company results can be unpredictable.
|
||||
- If current date doesn't belong to any period or you have holes between periods results can be unpredictable.
|
||||
|
||||
@@ -65,13 +65,13 @@ You have few menus for Sales forecast in "Sales Management - Sales Forecasts".
|
||||
Menu "Create Sales Forecasts for Sales Periods" creates Forecasts for products from selected Category, for selected Period and for selected Warehouse. It is an option "Copy Last Forecast" to copy forecast and other settings of period before this one to created one.
|
||||
|
||||
Remarks:
|
||||
- This tool doesn't create lines if relevant lines (for the same Product, Period, Warehouse and validated or created by you) already exists. If you wish to create another forecast if relevant lines exists you have to do it manually using menus described bellow.
|
||||
- This tool doesn't create lines, if relevant lines (for the same Product, Period, Warehouse and validated or created by you) already exists. If you wish to create another forecast, if relevant lines exists you have to do it manually using menus described bellow.
|
||||
- When created lines are validated by someone else you can use this tool to create another lines for the same Period, Product and Warehouse.
|
||||
- When you choose "Copy Last Forecast" created line takes quantity and some settings from your (validated by you or created by you if not validated yet) forecast which is for last period before period of created forecast. If there are few your forecasts for period before this one (it is possible) system takes one of them (no rule which of them).
|
||||
|
||||
|
||||
Menus "Sales Forecasts"
|
||||
On "Sales Forecast" form mainly you have to enter a forecast quantity in "Product Quantity". Farther calculation can work for draft forecasts. But validation can save your data against any accidental changes. You can click "Validate" button but it is not mandatory.
|
||||
On "Sales Forecast" form mainly you have to enter a forecast quantity in "Product Quantity". Further calculation can work for draft forecasts. But validation can save your data against any accidental changes. You can click "Validate" button but it is not mandatory.
|
||||
|
||||
Instead of forecast quantity you can enter amount of forecast sales in field "Product Amount". System will count quantity from amount according to Sale price of the Product.
|
||||
|
||||
@@ -94,7 +94,7 @@ Menu "Create Stock Planning Lines" allows you to create quickly Planning lines f
|
||||
|
||||
Under menu "Master Procurement Scheduler" you can generally change the values "Planned Out" and "Planned In" to observe the field "Stock Simulation" and decide if this value would be accurate for end of the Period.
|
||||
"Planned Out" can be based on "Warehouse Forecast" which is the sum of all forecasts for Period and Warehouse. But your planning can be based on any other information you have. It is not necessary to have any forecast.
|
||||
"Planned In" quantity is used to calculate field "Incoming Left" which is the quantity to be procured to make stock as indicated in "Stock Simulation" at the and of Period. You can compare "Stock Simulation" quantity to minimum stock rules visible on the form. But you can plan different quantity than in Minimum Stock Rules. Calculation is made for whole Warehouse by default. But if you want to see values for Stock location of calculated warehouse you can use check box "Stock Location Only".
|
||||
"Planned In" quantity is used to calculate field "Incoming Left" which is the quantity to be procured to make stock as indicated in "Stock Simulation" at the end of Period. You can compare "Stock Simulation" quantity to minimum stock rules visible on the form. But you can plan different quantity than in Minimum Stock Rules. Calculation is made for whole Warehouse by default. But if you want to see values for Stock location of calculated warehouse you can use check box "Stock Location Only".
|
||||
|
||||
If after few tries you decide that you found correct quantities for "Planned Out" and "Planned In" and you are satisfied with end of period stock calculated in "Stock Simulation" you can click "Procure Incoming Left" button to procure quantity of field "Incoming Left" into the Warehouse. System creates appropriate Procurement Order. You can decide if procurement will be made to Stock or Input location of calculated Warehouse.
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
'version': '1.0',
|
||||
'category': 'Tools',
|
||||
'description': """
|
||||
This module is used for surveing. It depends on the answers or reviews of some questions by different users.
|
||||
This module is used for surveying. It depends on the answers or reviews of some questions by different users.
|
||||
A survey may have multiple pages. Each page may contain multiple questions and each question may have multiple answers.
|
||||
Different users may give different answers of question and according to that survey is done.
|
||||
Partners are also sent mails with user name and password for the invitation of the survey
|
||||
|
||||
Reference in New Issue
Block a user