@@ -798,8 +798,8 @@
|
||||
<field name="arch" type="xml">
|
||||
<search string="Search Entry Lines">
|
||||
<group col='10' colspan='4'>
|
||||
<filter icon="terp-account" string="Draft" domain="[('state','=','draft')]" help="Draft Move Lines"/>
|
||||
<filter icon="terp-account" string="Posted" domain="[('state','=','valid')]" help="Posted Move Lines"/>
|
||||
<filter icon="terp-account" string="Draft" domain="[('state','=','draft')]" help="Draft Entry Lines"/>
|
||||
<filter icon="terp-account" string="Posted" domain="[('state','=','valid')]" help="Posted Entry Lines"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="date" select='1'/>
|
||||
<field name="account_id" select='1'/>
|
||||
|
||||
@@ -7,13 +7,13 @@ msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.0\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2010-01-02 04:23+0000\n"
|
||||
"Last-Translator: Federico Vera <Unknown>\n"
|
||||
"PO-Revision-Date: 2010-02-08 18:04+0000\n"
|
||||
"Last-Translator: Hilario J. Montoliu (hjmf) <Unknown>\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-01-03 04:45+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-02-09 05:11+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account
|
||||
@@ -435,7 +435,7 @@ msgstr "Negativo"
|
||||
#. module: account
|
||||
#: rml:account.partner.balance:0
|
||||
msgid "(Account/Partner) Name"
|
||||
msgstr "(Cuenta/Socio) Nombre"
|
||||
msgstr "Nombre de Cuenta/Empresa"
|
||||
|
||||
#. module: account
|
||||
#: selection:account.move,type:0
|
||||
|
||||
+14
-14
@@ -8,13 +8,13 @@ msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2009-12-23 08:57+0000\n"
|
||||
"Last-Translator: Normunds <Unknown>\n"
|
||||
"PO-Revision-Date: 2010-02-08 18:27+0000\n"
|
||||
"Last-Translator: sraps (KN dati) <Unknown>\n"
|
||||
"Language-Team: Latvian <lv@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2009-12-24 04:40+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-02-09 05:11+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account
|
||||
@@ -470,7 +470,7 @@ msgstr ""
|
||||
#: model:ir.actions.wizard,name:account.action_account_bank_reconcile_tree
|
||||
#: model:ir.ui.menu,name:account.menu_action_account_bank_reconcile_check_tree
|
||||
msgid "Bank reconciliation"
|
||||
msgstr "Bankas sasaiste"
|
||||
msgstr "Kontējumu sasaiste"
|
||||
|
||||
#. module: account
|
||||
#: rml:account.invoice:0
|
||||
@@ -844,7 +844,7 @@ msgstr "6"
|
||||
#. module: account
|
||||
#: model:ir.ui.menu,name:account.next_id_30
|
||||
msgid "Bank Reconciliation"
|
||||
msgstr "Bankas Sasaiste"
|
||||
msgstr "Kontējumu sasaiste"
|
||||
|
||||
#. module: account
|
||||
#: model:ir.model,name:account.model_account_account_template
|
||||
@@ -1195,7 +1195,7 @@ msgstr ""
|
||||
#. module: account
|
||||
#: view:res.partner:0
|
||||
msgid "Bank account"
|
||||
msgstr ""
|
||||
msgstr "Bankas konts"
|
||||
|
||||
#. module: account
|
||||
#: field:account.chart.template,tax_template_ids:0
|
||||
@@ -1542,7 +1542,7 @@ msgstr ""
|
||||
#. module: account
|
||||
#: field:account.invoice,move_id:0
|
||||
msgid "Invoice Movement"
|
||||
msgstr ""
|
||||
msgstr "Rēķina Grāmatojums"
|
||||
|
||||
#. module: account
|
||||
#: model:ir.actions.act_window,name:account.action_wizard_multi_chart
|
||||
@@ -2473,7 +2473,7 @@ msgstr ""
|
||||
#: model:process.node,name:account.process_node_bankstatement0
|
||||
#: model:process.node,name:account.process_node_supplierbankstatement0
|
||||
msgid "Bank Statement"
|
||||
msgstr ""
|
||||
msgstr "Bankas konta izraksts"
|
||||
|
||||
#. module: account
|
||||
#: wizard_view:account.invoice.pay,addendum:0
|
||||
@@ -3384,7 +3384,7 @@ msgstr ""
|
||||
#. module: account
|
||||
#: model:ir.actions.act_window,name:account.act_account_journal_2_account_bank_statement
|
||||
msgid "Bank statements"
|
||||
msgstr ""
|
||||
msgstr "Bankas konta izraksts"
|
||||
|
||||
#. module: account
|
||||
#: model:ir.ui.menu,name:account.next_id_22
|
||||
@@ -3838,7 +3838,7 @@ msgstr ""
|
||||
#. module: account
|
||||
#: selection:account.general.ledger.report,checktype,sortbydate:0
|
||||
msgid "Movement"
|
||||
msgstr ""
|
||||
msgstr "Grāmatojums"
|
||||
|
||||
#. module: account
|
||||
#: help:account.period,special:0
|
||||
@@ -4321,7 +4321,7 @@ msgstr ""
|
||||
#. module: account
|
||||
#: selection:account.move,type:0
|
||||
msgid "Bank Payment"
|
||||
msgstr ""
|
||||
msgstr "Bankas maksājums"
|
||||
|
||||
#. module: account
|
||||
#: selection:account.move,state:0
|
||||
@@ -4766,7 +4766,7 @@ msgstr ""
|
||||
#: field:account.bank.statement.reconcile,statement_line:0
|
||||
#: model:ir.model,name:account.model_account_bank_statement_line
|
||||
msgid "Bank Statement Line"
|
||||
msgstr ""
|
||||
msgstr "Konta izraksta rinda"
|
||||
|
||||
#. module: account
|
||||
#: wizard_button:account.automatic.reconcile,reconcile,end:0
|
||||
@@ -5458,7 +5458,7 @@ msgstr "account.tax.template"
|
||||
#. module: account
|
||||
#: field:wizard.multi.charts.accounts,bank_accounts_id:0
|
||||
msgid "Bank Accounts"
|
||||
msgstr ""
|
||||
msgstr "Bankas Konti"
|
||||
|
||||
#. module: account
|
||||
#: constraint:account.period:0
|
||||
@@ -5735,7 +5735,7 @@ msgstr ""
|
||||
#: field:account.chart.template,bank_account_view_id:0
|
||||
#: field:account.invoice,partner_bank:0
|
||||
msgid "Bank Account"
|
||||
msgstr ""
|
||||
msgstr "Bankas Konts"
|
||||
|
||||
#. module: account
|
||||
#: model:ir.actions.act_window,name:account.action_model_form
|
||||
|
||||
@@ -193,7 +193,7 @@ class account_invoice(osv.osv):
|
||||
temp_lines = map(lambda x: x.id, m.reconcile_partial_id.line_partial_ids)
|
||||
lines += [x for x in temp_lines if x not in lines]
|
||||
src.append(m.id)
|
||||
|
||||
|
||||
lines = filter(lambda x: x not in src, lines)
|
||||
result[invoice.id] = lines
|
||||
return result
|
||||
@@ -230,7 +230,7 @@ class account_invoice(osv.osv):
|
||||
_order = "number"
|
||||
_columns = {
|
||||
'name': fields.char('Description', size=64, select=True,readonly=True, states={'draft':[('readonly',False)]}),
|
||||
'origin': fields.char('Origin', size=64, help="Reference of the document that produced this invoice."),
|
||||
'origin': fields.char('Source Document', size=64, help="Reference of the document that produced this invoice."),
|
||||
'type': fields.selection([
|
||||
('out_invoice','Customer Invoice'),
|
||||
('in_invoice','Supplier Invoice'),
|
||||
@@ -1000,7 +1000,7 @@ class account_invoice(osv.osv):
|
||||
if invoice.type in ('in_invoice', 'in_refund'):
|
||||
ref = invoice.reference
|
||||
else:
|
||||
ref = self._convert_ref(cr, uid, invoice.number)
|
||||
ref = self._convert_ref(cr, uid, invoice.number)
|
||||
# Pay attention to the sign for both debit/credit AND amount_currency
|
||||
l1 = {
|
||||
'debit': direction * pay_amount>0 and direction * pay_amount,
|
||||
@@ -1240,11 +1240,11 @@ class account_invoice_line(osv.osv):
|
||||
|
||||
company = self.pool.get('res.company').browse(cr, uid, company_id)
|
||||
currency = self.pool.get('res.currency').browse(cr, uid, currency_id)
|
||||
|
||||
|
||||
if not currency.company_id.id == company.id:
|
||||
raise osv.except_osv(_('Configration Error !'),
|
||||
_('Can not select currency that is not related to any company.\nPlease select accordingly !.'))
|
||||
|
||||
|
||||
if company.currency_id.id != currency.id:
|
||||
new_price = res_final['value']['price_unit'] * currency.rate
|
||||
res_final['value']['price_unit'] = new_price
|
||||
|
||||
@@ -7,13 +7,13 @@ msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.0\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2009-12-01 15:54+0000\n"
|
||||
"PO-Revision-Date: 2010-02-08 06:26+0000\n"
|
||||
"Last-Translator: Wei \"oldrev\" Li <oldrev@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: 2009-12-16 05:04+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-02-09 05:10+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account_report
|
||||
@@ -154,12 +154,12 @@ msgstr ""
|
||||
#: wizard_button:print.indicators,next,print:0
|
||||
#: wizard_button:print.indicators.pdf,init,print:0
|
||||
msgid "Print"
|
||||
msgstr ""
|
||||
msgstr "打印"
|
||||
|
||||
#. module: account_report
|
||||
#: field:account.report.report,type:0
|
||||
msgid "Type"
|
||||
msgstr ""
|
||||
msgstr "类型"
|
||||
|
||||
#. module: account_report
|
||||
#: model:ir.actions.report.xml,name:account_report.report_indicator_pdf
|
||||
@@ -175,27 +175,27 @@ msgstr ""
|
||||
#: view:account.report.report:0
|
||||
#: selection:account.report.report,status:0
|
||||
msgid "Good"
|
||||
msgstr ""
|
||||
msgstr "良好"
|
||||
|
||||
#. module: account_report
|
||||
#: view:account.report.history:0
|
||||
msgid "Account Report History"
|
||||
msgstr ""
|
||||
msgstr "科目报表历史记录"
|
||||
|
||||
#. module: account_report
|
||||
#: constraint:ir.ui.view:0
|
||||
msgid "Invalid XML for View Architecture!"
|
||||
msgstr ""
|
||||
msgstr "无效的XML视图结构!"
|
||||
|
||||
#. module: account_report
|
||||
#: help:account.report.report,badness_limit:0
|
||||
msgid "This Value sets the limit of badness."
|
||||
msgstr ""
|
||||
msgstr "此值设置好坏评估标准的限制"
|
||||
|
||||
#. module: account_report
|
||||
#: wizard_field:print.indicators,init,select_base:0
|
||||
msgid "Choose Criteria"
|
||||
msgstr ""
|
||||
msgstr "选择标准"
|
||||
|
||||
#. module: account_report
|
||||
#: view:account.report.report:0
|
||||
@@ -221,18 +221,18 @@ msgstr ""
|
||||
#: view:account.report.report:0
|
||||
#: selection:account.report.report,status:0
|
||||
msgid "Very Good"
|
||||
msgstr ""
|
||||
msgstr "非常好"
|
||||
|
||||
#. module: account_report
|
||||
#: field:account.report.report,note:0
|
||||
msgid "Note"
|
||||
msgstr ""
|
||||
msgstr "备注"
|
||||
|
||||
#. module: account_report
|
||||
#: rml:accounting.report:0
|
||||
#: rml:print.indicators:0
|
||||
msgid "Currency:"
|
||||
msgstr ""
|
||||
msgstr "货币:"
|
||||
|
||||
#. module: account_report
|
||||
#: field:account.report.report,status:0
|
||||
|
||||
@@ -421,6 +421,16 @@ class basic_calendar_line(osv.osv):
|
||||
'domain': lambda *a: '[]',
|
||||
}
|
||||
|
||||
def create(self, cr, uid, vals, context={}):
|
||||
cr.execute("Select count(id) from basic_calendar_lines \
|
||||
where name='%s' and calendar_id=%s" % (vals.get('name'), vals.get('calendar_id')))
|
||||
res = cr.fetchone()
|
||||
if res:
|
||||
if res[0] > 0:
|
||||
raise osv.except_osv(_('Warning !'), _('Can not create \
|
||||
line "%s" more than once' % (vals.get('name'))))
|
||||
return super(basic_calendar_line, self).create(cr, uid, vals, context=context)
|
||||
|
||||
basic_calendar_line()
|
||||
|
||||
class basic_calendar_attribute(osv.osv):
|
||||
@@ -482,7 +492,7 @@ class basic_calendar_fields(osv.osv):
|
||||
res = cr.fetchone()
|
||||
if res:
|
||||
if res[0] > 0:
|
||||
raise osv.except_osv(_('Warning !'), _('Can not map same field more than once'))
|
||||
raise osv.except_osv(_('Warning !'), _('Can not map the field more than once'))
|
||||
return super(basic_calendar_fields, self).create(cr, uid, vals, context=context)
|
||||
|
||||
def write(self, cr, uid, ids, vals, context=None):
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
@@ -15,7 +15,7 @@
|
||||
# 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/>.
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
'description': """
|
||||
This module creates a dashboards for Manufaturing that includes:
|
||||
* List of next production orders
|
||||
* List of deliveries (out packing)
|
||||
* List of deliveries (out picking)
|
||||
* Graph of work center load
|
||||
* List of procurement in exception
|
||||
""",
|
||||
|
||||
+12
-2
@@ -190,7 +190,7 @@ class invite_attendee_wizard(osv.osv_memory):
|
||||
to send an Email to Invited Person')
|
||||
}
|
||||
|
||||
def do_invite(self, cr, uid, ids, context={}):
|
||||
def do_invite(self, cr, uid, ids, context={}):
|
||||
datas = self.read(cr, uid, ids)[0]
|
||||
model = False
|
||||
model_field = False
|
||||
@@ -386,7 +386,7 @@ request was delegated to"),
|
||||
'language': fields.function(_compute_data, method=True, string='Language', type="selection", selection=_lang_get, multi='language', store=True, help="To specify the language for text values in a property or property parameter."),
|
||||
'user_id': fields.many2one('res.users', 'User'),
|
||||
'partner_address_id': fields.many2one('res.partner.address', 'Contact'),
|
||||
'partner_id':fields.related('partner_address_id', 'partner_id', type='many2one', relation='res.partner', string='Partner'),
|
||||
'partner_id': fields.related('partner_address_id', 'partner_id', type='many2one', relation='res.partner', string='Partner'),
|
||||
'email': fields.char('Email', size=124, required=True),
|
||||
'event_date': fields.function(_compute_data, method=True, string='Event Date', type="datetime", multi='event_date'),
|
||||
'event_end_date': fields.function(_compute_data, method=True, string='Event End Date', type="datetime", multi='event_end_date'),
|
||||
@@ -753,6 +753,16 @@ rule or repeating pattern for anexception to a recurrence set"),
|
||||
'class': lambda *a: 'public',
|
||||
'show_as': lambda *a: 'busy',
|
||||
}
|
||||
|
||||
def onchange_user_id(self, cr, uid, ids, user_id, *args, **argv):
|
||||
if not user_id:
|
||||
return {'value': {'vtimezone': ''}}
|
||||
value = {}
|
||||
cr.execute('select context_tz from res_users where id=%s' % (user_id))
|
||||
timezone = cr.fetchone()
|
||||
if timezone:
|
||||
value.update({'vtimezone': timezone[0].lower()})
|
||||
return {'value': value}
|
||||
|
||||
def export_cal(self, cr, uid, ids, context={}):
|
||||
ids = map(lambda x: caldav_id2real_id(x), ids)
|
||||
|
||||
@@ -156,37 +156,47 @@
|
||||
<field name="type">search</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Search Leads">
|
||||
<group col="3" colspan="1">
|
||||
<filter icon="gtk-home" string=" Today "
|
||||
separator="1"
|
||||
domain="[('date::date','=',time.strftime('%%Y-%%m-%%d'))]"
|
||||
help="Todays's Leads"
|
||||
/>
|
||||
<filter icon="gtk-media-rewind" string=" 7 Days "
|
||||
separator="1" help="Leads during last 7 days"
|
||||
domain="[('date','<', time.strftime('%%Y-%%m-%%d')), ('date','>=',(datetime.date.today()-datetime.timedelta(days=7)).strftime('%%Y-%%m-%%d'))]"
|
||||
/>
|
||||
</group>
|
||||
<separator orientation="vertical"/>
|
||||
<group col="6" colspan="2">
|
||||
<field name="name" select="1"/>
|
||||
<field name="user_id" select="1" widget="selection">
|
||||
<filter icon="terp-partner"
|
||||
domain="[('user_id','=',uid)]" help="My Leads"
|
||||
default="1"
|
||||
/>
|
||||
</field>
|
||||
<field name="state" select="1">
|
||||
<filter icon="gtk-new" domain="[('state','in',('draft', 'open'))]" help="Current Leads" default="1"/>
|
||||
<filter icon="gtk-yes" domain="[('state','=','open')]" help="Open Leads"/>
|
||||
</field>
|
||||
<field name="section_id" select="1" default="context.get('section_id', False)" widget="selection" string="Section">
|
||||
<filter icon="terp-crm"
|
||||
domain="[('section_id','=',context.get('section_id',False))]"
|
||||
help="My section"
|
||||
/>
|
||||
</field>
|
||||
</group>
|
||||
<group colspan="4">
|
||||
<group col="3" colspan="1">
|
||||
<filter icon="gtk-home" string=" Today "
|
||||
separator="1"
|
||||
domain="[('date::date','=',time.strftime('%%Y-%%m-%%d'))]"
|
||||
help="Todays's Leads"
|
||||
/>
|
||||
<filter icon="gtk-media-rewind" string=" 7 Days "
|
||||
separator="1" help="Leads during last 7 days"
|
||||
domain="[('date','<', time.strftime('%%Y-%%m-%%d')), ('date','>=',(datetime.date.today()-datetime.timedelta(days=7)).strftime('%%Y-%%m-%%d'))]"
|
||||
/>
|
||||
</group>
|
||||
<separator orientation="vertical"/>
|
||||
<group col="6" colspan="2">
|
||||
<field name="name" select="1"/>
|
||||
<field name="user_id" select="1" widget="selection">
|
||||
<filter icon="terp-partner"
|
||||
domain="[('user_id','=',uid)]" help="My Leads"
|
||||
default="1"
|
||||
/>
|
||||
</field>
|
||||
<field name="state" select="1">
|
||||
<filter icon="gtk-new" domain="[('state','in',('draft', 'open'))]" help="Current Leads" default="1"/>
|
||||
<filter icon="gtk-yes" domain="[('state','=','open')]" help="Open Leads"/>
|
||||
</field>
|
||||
<field name="section_id" select="1" default="context.get('section_id', False)" widget="selection" string="Section">
|
||||
<filter icon="terp-crm"
|
||||
domain="[('section_id','=',context.get('section_id',False))]"
|
||||
help="My section"
|
||||
/>
|
||||
</field>
|
||||
</group>
|
||||
</group>
|
||||
<newline/>
|
||||
<group expand="1" string="Group By..." colspan="4" col="20">
|
||||
<filter string="By Status" icon="terp-crm" domain="[]" context="{'group_by':'stage_id'}"/>
|
||||
<filter string="By Lead Source" icon="terp-crm" domain="[]" context="{'group_by':'categ_id'}"/>
|
||||
<filter string="By Responsible" icon="terp-crm" domain="[]" context="{'group_by':'user_id'}"/>
|
||||
<filter string="By Create Date" icon="terp-crm" domain="[]" context="{'group_by':'date'}"/>
|
||||
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
@@ -87,7 +87,7 @@
|
||||
<field name="priority"/>
|
||||
<field name="show_as"/>
|
||||
<field name="class"/>
|
||||
<field name="user_id"/>
|
||||
<field name="user_id" on_change="onchange_user_id(user_id)"/>
|
||||
<field name="section_id" widget="selection"
|
||||
/>
|
||||
<field name="vtimezone"/>
|
||||
|
||||
@@ -71,7 +71,7 @@
|
||||
<field name="type_id" select="1" string="Campaign"/>
|
||||
<field name="section_id" colspan="1" widget="selection"/>
|
||||
<field name="priority" string="Priority"/>
|
||||
|
||||
<field name="date" string="Create Date"/>
|
||||
</group>
|
||||
|
||||
|
||||
@@ -156,8 +156,9 @@
|
||||
<field name="name" string="Opportunities"/>
|
||||
<field name="stage_id" string="Sales Stage"/>
|
||||
<field name="partner_id" string="Partner"/>
|
||||
<field name="planned_revenue"/>
|
||||
<field name="probability"/>
|
||||
<field name="planned_revenue" sum="Total of Planned Revenue"/>
|
||||
<field name="probability" avg="Avg. of Probability"/>
|
||||
<field name="date" string="Create Date"/>
|
||||
<field name="date_deadline" string="Excepted Close Date"/>
|
||||
<field name="user_id"/>
|
||||
<field name="state"/>
|
||||
@@ -187,36 +188,46 @@
|
||||
<field name="type">search</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Search Opportunities">
|
||||
<group col="3" colspan="1">
|
||||
<filter icon="gtk-home" string=" Today "
|
||||
separator="1"
|
||||
domain="[('date::date','=',time.strftime('%%Y-%%m-%%d'))]"
|
||||
help="Todays's Opportunities"
|
||||
/>
|
||||
<filter icon="gtk-media-rewind" string=" 7 Days "
|
||||
separator="1" help="Opportunities during last 7 days"
|
||||
domain="[('date','<', time.strftime('%%Y-%%m-%%d')), ('date','>=',(datetime.date.today()-datetime.timedelta(days=7)).strftime('%%Y-%%m-%%d'))]"
|
||||
/>
|
||||
</group>
|
||||
<separator orientation="vertical"/>
|
||||
<group col="6" colspan="2">
|
||||
<field name="name" select="1" string="Opportunity"/>
|
||||
<field name="user_id" select="1" widget="selection">
|
||||
<filter icon="terp-partner"
|
||||
domain="[('user_id','=',uid)]"
|
||||
help="My Opportunities" default="1"
|
||||
/>
|
||||
</field>
|
||||
<field name="partner_id" select="1"/>
|
||||
<field name="state" select="1">
|
||||
<filter icon="gtk-index" domain="[('state','in',('open','draft'))]" help="Current " default="1"/>
|
||||
</field>
|
||||
<field name="section_id" default="context.get('section_id', False)" select="1" widget="selection" string="Section">
|
||||
<filter icon="terp-crm"
|
||||
domain="[('section_id','=',context.get('section_id',False))]"
|
||||
help="My section"/>
|
||||
</field>
|
||||
</group>
|
||||
<group colspan="4">
|
||||
<group col="3" colspan="1">
|
||||
<filter icon="gtk-home" string=" Today "
|
||||
separator="1"
|
||||
domain="[('date::date','=',time.strftime('%%Y-%%m-%%d'))]"
|
||||
help="Todays's Opportunities"
|
||||
/>
|
||||
<filter icon="gtk-media-rewind" string=" 7 Days "
|
||||
separator="1" help="Opportunities during last 7 days"
|
||||
domain="[('date','<', time.strftime('%%Y-%%m-%%d')), ('date','>=',(datetime.date.today()-datetime.timedelta(days=7)).strftime('%%Y-%%m-%%d'))]"
|
||||
/>
|
||||
</group>
|
||||
<separator orientation="vertical"/>
|
||||
<group col="6" colspan="2">
|
||||
<field name="name" select="1" string="Opportunity"/>
|
||||
<field name="user_id" select="1" widget="selection">
|
||||
<filter icon="terp-partner"
|
||||
domain="[('user_id','=',uid)]"
|
||||
help="My Opportunities" default="1"
|
||||
/>
|
||||
</field>
|
||||
<field name="partner_id" select="1"/>
|
||||
<field name="state" select="1">
|
||||
<filter icon="gtk-index" domain="[('state','in',('open','draft'))]" help="Current " default="1"/>
|
||||
</field>
|
||||
<field name="section_id" default="context.get('section_id', False)" select="1" widget="selection" string="Section">
|
||||
<filter icon="terp-crm"
|
||||
domain="[('section_id','=',context.get('section_id',False))]"
|
||||
help="My section"/>
|
||||
</field>
|
||||
</group>
|
||||
</group>
|
||||
<newline/>
|
||||
<group expand="1" string="Group By..." colspan="4">
|
||||
<filter string="By Stage" icon="terp-crm" domain="[]" context="{'group_by':'stage_id'}"/>
|
||||
<filter string="By Partner" icon="terp-crm" domain="[]" context="{'group_by':'partner_id'}"/>
|
||||
<filter string="By Responsible" icon="terp-crm" domain="[]" context="{'group_by':'user_id'}"/>
|
||||
<filter string="By Create Date" icon="terp-crm" domain="[]" context="{'group_by':'date'}"/>
|
||||
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
+66
-53
@@ -7,19 +7,19 @@ msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.0\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2010-01-05 05:59+0000\n"
|
||||
"PO-Revision-Date: 2010-01-06 06:23+0000\n"
|
||||
"Last-Translator: mra (Open ERP) <mra@tinyerp.com>\n"
|
||||
"PO-Revision-Date: 2010-02-08 23:58+0000\n"
|
||||
"Last-Translator: Sebastien LANGE - http://www.Syleam.fr <Unknown>\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-01-07 04:49+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-02-09 05:11+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: crm
|
||||
#: field:crm.email.add.cc,name:0
|
||||
msgid "Send to"
|
||||
msgstr ""
|
||||
msgstr "Envoyer à :"
|
||||
|
||||
#. module: crm
|
||||
#: help:crm.meeting,exdate:0
|
||||
@@ -27,22 +27,26 @@ msgid ""
|
||||
"This property defines the list of date/time exceptions for "
|
||||
"arecurring calendar component."
|
||||
msgstr ""
|
||||
"Cette propriété définit la liste des exceptions de dates / temps pour les "
|
||||
"composant de calendrier récurent."
|
||||
|
||||
#. module: crm
|
||||
#: help:crm.case.rule,act_mail_to_user:0
|
||||
msgid ""
|
||||
"Check this if you want the rule to send an email to the responsible person."
|
||||
msgstr ""
|
||||
"Cochez cette case si vous voulez que la règle envoie un email à la personne "
|
||||
"responsable."
|
||||
|
||||
#. module: crm
|
||||
#: view:crm.meeting:0
|
||||
msgid "Title"
|
||||
msgstr ""
|
||||
msgstr "Titre"
|
||||
|
||||
#. module: crm
|
||||
#: model:ir.model,name:crm.model_report_crm_case_section_categ2
|
||||
msgid "Cases by section and category2"
|
||||
msgstr ""
|
||||
msgstr "Cas par section et catégorie2"
|
||||
|
||||
#. module: crm
|
||||
#: wizard_field:crm.lead.partner_create,init,close:0
|
||||
@@ -55,17 +59,17 @@ msgstr "Cloture une affaire"
|
||||
#: view:crm.opportunity:0
|
||||
#: view:crm.phonecall:0
|
||||
msgid " 7 Days "
|
||||
msgstr ""
|
||||
msgstr " 7 Jours "
|
||||
|
||||
#. module: crm
|
||||
#: help:crm.menu.config_wizard,helpdesk:0
|
||||
msgid "Manages an Helpdesk service."
|
||||
msgstr ""
|
||||
msgstr "Gérer un service de support"
|
||||
|
||||
#. module: crm
|
||||
#: view:crm.job:0
|
||||
msgid "Pending Jobs"
|
||||
msgstr ""
|
||||
msgstr "Travaux en attente."
|
||||
|
||||
#. module: crm
|
||||
#: field:crm.case.rule,trg_state_to:0
|
||||
@@ -80,12 +84,12 @@ msgstr "Coûts planifiés"
|
||||
#. module: crm
|
||||
#: wizard_field:crm.job.partner_create,init,close:0
|
||||
msgid "Close job request"
|
||||
msgstr ""
|
||||
msgstr "Fermer la demande d’emploi."
|
||||
|
||||
#. module: crm
|
||||
#: field:crm.case.stage,name:0
|
||||
msgid "Stage Name"
|
||||
msgstr ""
|
||||
msgstr "Nom de l'étape"
|
||||
|
||||
#. module: crm
|
||||
#: view:crm.case:0
|
||||
@@ -109,12 +113,12 @@ msgstr ""
|
||||
#. module: crm
|
||||
#: model:ir.ui.menu,name:crm.menu_hr
|
||||
msgid "Human Resources"
|
||||
msgstr ""
|
||||
msgstr "Ressources humaines"
|
||||
|
||||
#. module: crm
|
||||
#: model:ir.ui.menu,name:crm.menu_action_report_crm_case_oppor_categ_categ2
|
||||
msgid "Cases by Opportunities, Category and Type"
|
||||
msgstr ""
|
||||
msgstr "Cas par opportunités, catégorie et type"
|
||||
|
||||
#. module: crm
|
||||
#: help:crm.menu.config_wizard,claims:0
|
||||
@@ -122,22 +126,24 @@ msgid ""
|
||||
"Manages the supplier and customers claims, including your corrective or "
|
||||
"preventive actions."
|
||||
msgstr ""
|
||||
"Gérér les réclamations fournisseurs et clients, incluant vos actions "
|
||||
"correctives ou préventives."
|
||||
|
||||
#. module: crm
|
||||
#: view:crm.fundraising:0
|
||||
msgid "Amount"
|
||||
msgstr ""
|
||||
msgstr "Montant"
|
||||
|
||||
#. module: crm
|
||||
#: model:process.transition,note:crm.process_transition_opportunitymeeting0
|
||||
msgid "Normal or phone meeting for opportunity"
|
||||
msgstr ""
|
||||
msgstr "Rendez-vous ou conférence téléphonique pour l'opportunité"
|
||||
|
||||
#. module: crm
|
||||
#: model:crm.case.stage,name:crm.stage_claim2
|
||||
#: model:crm.case.stage,name:crm.stage_meet1
|
||||
msgid "Fixed"
|
||||
msgstr ""
|
||||
msgstr "Fixé"
|
||||
|
||||
#. module: crm
|
||||
#: code:addons/crm/crm.py:0
|
||||
@@ -153,33 +159,35 @@ msgstr "Avertissement !"
|
||||
#, python-format
|
||||
msgid "Please specify user's email address !"
|
||||
msgstr ""
|
||||
"S'il vous plaît indiquez l'adresse de messagerie électronique de "
|
||||
"l'utilisateur !"
|
||||
|
||||
#. module: crm
|
||||
#: model:crm.case.categ,name:crm.categ_oppor5
|
||||
msgid "Campaign"
|
||||
msgstr ""
|
||||
msgstr "Campagne"
|
||||
|
||||
#. module: crm
|
||||
#: view:crm.opportunity:0
|
||||
msgid "Search Opportunities"
|
||||
msgstr ""
|
||||
msgstr "Recherche d’opportunité"
|
||||
|
||||
#. module: crm
|
||||
#: model:ir.ui.menu,name:crm.menu_crm_case_section_stage_tree
|
||||
#: view:report.crm.case.section.stage:0
|
||||
msgid "Cases by Section and Stage"
|
||||
msgstr ""
|
||||
msgstr "Cas par section et étape"
|
||||
|
||||
#. module: crm
|
||||
#: wizard_field:crm.job.meeting_set,init,duration:0
|
||||
#: wizard_field:crm.phonecall.meeting_set,init,duration:0
|
||||
msgid "Duration (Hours)"
|
||||
msgstr ""
|
||||
msgstr "Durée (heures)"
|
||||
|
||||
#. module: crm
|
||||
#: selection:crm.meeting,transparent:0
|
||||
msgid "TRANSPARENT"
|
||||
msgstr ""
|
||||
msgstr "TRANSPARENT"
|
||||
|
||||
#. module: crm
|
||||
#: help:crm.case.rule,server_action_id:0
|
||||
@@ -187,6 +195,8 @@ msgid ""
|
||||
"Describes the action name.eg:on which object which ation to be taken on "
|
||||
"basis of which condition"
|
||||
msgstr ""
|
||||
"Décrit le nom de l'action. par exemple : sur quel objet quel action de base "
|
||||
"doit prendre quel condition"
|
||||
|
||||
#. module: crm
|
||||
#: help:crm.case,section_id:0
|
||||
@@ -194,6 +204,8 @@ msgid ""
|
||||
"Section to which Case belongs to. Define Responsible user and Email account "
|
||||
"for mail gateway."
|
||||
msgstr ""
|
||||
"Section à laquelle l'affaire appartient. Préciser l'utilisateur responsable "
|
||||
"et le compte de messagerie pour la passerelle de messagerie."
|
||||
|
||||
#. module: crm
|
||||
#: view:crm.case:0
|
||||
@@ -227,12 +239,13 @@ msgstr "Section du cas"
|
||||
#. module: crm
|
||||
#: view:crm.job:0
|
||||
msgid "Proposed Salary"
|
||||
msgstr ""
|
||||
msgstr "Salaire proposé"
|
||||
|
||||
#. module: crm
|
||||
#: help:crm.case.section,sequence:0
|
||||
msgid "Gives the sequence order when displaying a list of case sections."
|
||||
msgstr ""
|
||||
"Donne l'ordre de séquence lors de l'affichage d'une liste de cas.de sections"
|
||||
|
||||
#. module: crm
|
||||
#: code:addons/crm/wizard/crm_job_wizard.py:0
|
||||
@@ -240,12 +253,12 @@ msgstr ""
|
||||
#: model:crm.case.categ,name:crm.categ_meet3
|
||||
#, python-format
|
||||
msgid "Phone Call"
|
||||
msgstr ""
|
||||
msgstr "Appel téléphonique"
|
||||
|
||||
#. module: crm
|
||||
#: model:ir.model,name:crm.model_report_crm_case_section_stage
|
||||
msgid "Cases by section and stage"
|
||||
msgstr ""
|
||||
msgstr "Cas par section et étape"
|
||||
|
||||
#. module: crm
|
||||
#: field:crm.case.rule,act_mail_to_email:0
|
||||
@@ -260,7 +273,7 @@ msgstr "Aucune"
|
||||
#. module: crm
|
||||
#: view:crm.case.rule:0
|
||||
msgid "Special Keywords to Be Used in The Body"
|
||||
msgstr "Des mots clés spéciaux peuvent être utiliser dans le corps"
|
||||
msgstr "Des mots clés spéciaux peuvent être utilisés dans le corps"
|
||||
|
||||
#. module: crm
|
||||
#: view:crm.case:0
|
||||
@@ -270,7 +283,7 @@ msgstr "Des mots clés spéciaux peuvent être utiliser dans le corps"
|
||||
#: view:crm.lead:0
|
||||
#: view:crm.opportunity:0
|
||||
msgid "Send New Email"
|
||||
msgstr ""
|
||||
msgstr "Envoyez un nouveau courriel."
|
||||
|
||||
#. module: crm
|
||||
#: view:crm.case.history:0
|
||||
@@ -291,12 +304,12 @@ msgstr "Sections"
|
||||
#. module: crm
|
||||
#: help:crm.menu.config_wizard,opportunity:0
|
||||
msgid "Tracks identified business opportunities for your sales pipeline."
|
||||
msgstr ""
|
||||
msgstr "Suivi des occasions identifiées d'affaires pour vos canaux de vente."
|
||||
|
||||
#. module: crm
|
||||
#: view:crm.meeting:0
|
||||
msgid "Exception Dates"
|
||||
msgstr ""
|
||||
msgstr "Exceptions de date"
|
||||
|
||||
#. module: crm
|
||||
#: selection:crm.case.rule,trg_date_type:0
|
||||
@@ -306,12 +319,12 @@ msgstr "Date de la dernière action"
|
||||
#. module: crm
|
||||
#: view:crm.job:0
|
||||
msgid "Appreciation"
|
||||
msgstr ""
|
||||
msgstr "Appréciation"
|
||||
|
||||
#. module: crm
|
||||
#: model:crm.case.stage,name:crm.stage_job3
|
||||
msgid "Second Interview"
|
||||
msgstr ""
|
||||
msgstr "Second entretien"
|
||||
|
||||
#. module: crm
|
||||
#: model:ir.actions.wizard,name:crm.wizard_crm_cal_subscribe
|
||||
@@ -328,7 +341,7 @@ msgstr "Catégories"
|
||||
#: code:addons/crm/wizard/wizard_crm_new_send_email.py:0
|
||||
#, python-format
|
||||
msgid "Warning!"
|
||||
msgstr ""
|
||||
msgstr "Avertissement !"
|
||||
|
||||
#. module: crm
|
||||
#: view:crm.case:0
|
||||
@@ -354,12 +367,12 @@ msgstr ""
|
||||
#: view:crm.fundraising:0
|
||||
#: view:crm.opportunity:0
|
||||
msgid "Description Information"
|
||||
msgstr ""
|
||||
msgstr "Description de l'information"
|
||||
|
||||
#. module: crm
|
||||
#: view:crm.lead:0
|
||||
msgid "Contact Name"
|
||||
msgstr ""
|
||||
msgstr "Nom du contact"
|
||||
|
||||
#. module: crm
|
||||
#: selection:crm.lead.opportunity_set,create_partner,action:0
|
||||
@@ -380,12 +393,12 @@ msgstr "Après délai"
|
||||
#: view:crm.opportunity:0
|
||||
#: view:crm.phonecall:0
|
||||
msgid "Contact"
|
||||
msgstr ""
|
||||
msgstr "Contact"
|
||||
|
||||
#. module: crm
|
||||
#: view:crm.job:0
|
||||
msgid "Next Interview"
|
||||
msgstr ""
|
||||
msgstr "Prochain entretien"
|
||||
|
||||
#. module: crm
|
||||
#: field:crm.case.rule,regex_history:0
|
||||
@@ -448,23 +461,23 @@ msgstr "%(email_from)s = Email partenaire"
|
||||
#. module: crm
|
||||
#: model:crm.case.stage,name:crm.stage_lead6
|
||||
msgid "Dead"
|
||||
msgstr ""
|
||||
msgstr "Perdu"
|
||||
|
||||
#. module: crm
|
||||
#: view:crm.meeting:0
|
||||
msgid "Confirm Meeting"
|
||||
msgstr ""
|
||||
msgstr "Confirmer le rendez-vous"
|
||||
|
||||
#. module: crm
|
||||
#: model:crm.case.categ,name:crm.categ_lead1
|
||||
#: model:crm.case.categ,name:crm.categ_oppor1
|
||||
msgid "Existing Customer"
|
||||
msgstr ""
|
||||
msgstr "Client existant"
|
||||
|
||||
#. module: crm
|
||||
#: model:crm.case.category2,name:crm.category_meet2
|
||||
msgid "Home"
|
||||
msgstr ""
|
||||
msgstr "Accueil"
|
||||
|
||||
#. module: crm
|
||||
#: field:crm.case,categ_id:0
|
||||
@@ -483,7 +496,7 @@ msgstr "Catégorie"
|
||||
#: model:ir.ui.menu,name:crm.menu_crm_case_section_categ_stage_tree
|
||||
#: view:report.crm.case.section.categ.stage:0
|
||||
msgid "Cases by Section, Category and Stage"
|
||||
msgstr ""
|
||||
msgstr "Cas par section catégorie et étape"
|
||||
|
||||
#. module: crm
|
||||
#: help:crm.case.rule,act_mail_to_watchers:0
|
||||
@@ -495,7 +508,7 @@ msgstr ""
|
||||
#. module: crm
|
||||
#: field:crm.meeting,class:0
|
||||
msgid "Privacy"
|
||||
msgstr ""
|
||||
msgstr "Privé"
|
||||
|
||||
#. module: crm
|
||||
#: view:crm.case.rule:0
|
||||
@@ -528,7 +541,7 @@ msgstr ""
|
||||
#. module: crm
|
||||
#: constraint:ir.actions.act_window:0
|
||||
msgid "Invalid model name in the action definition."
|
||||
msgstr ""
|
||||
msgstr "Nom de modèle invalide pour la définition de l'action"
|
||||
|
||||
#. module: crm
|
||||
#: view:crm.case.rule:0
|
||||
@@ -555,7 +568,7 @@ msgstr "État"
|
||||
#: model:ir.actions.wizard,name:crm.wizard_partner_create_opportunity
|
||||
#: model:ir.actions.wizard,name:crm.wizard_partner_create_opportunity1
|
||||
msgid "Create Opportunity"
|
||||
msgstr ""
|
||||
msgstr "Créer une opportunité"
|
||||
|
||||
#. module: crm
|
||||
#: selection:report.crm.case.section.categ.categ2,month:0
|
||||
@@ -563,12 +576,12 @@ msgstr ""
|
||||
#: selection:report.crm.case.section.categ2,month:0
|
||||
#: selection:report.crm.case.section.stage,month:0
|
||||
msgid "August"
|
||||
msgstr ""
|
||||
msgstr "Août"
|
||||
|
||||
#. module: crm
|
||||
#: view:crm.meeting:0
|
||||
msgid "Meetings Tree"
|
||||
msgstr ""
|
||||
msgstr "Liste des rendez vous"
|
||||
|
||||
#. module: crm
|
||||
#: code:addons/crm/crm.py:0
|
||||
@@ -585,12 +598,12 @@ msgstr "Escalader"
|
||||
#. module: crm
|
||||
#: model:ir.ui.menu,name:crm.menu_crm_case_categ_meet
|
||||
msgid "All Meetings"
|
||||
msgstr ""
|
||||
msgstr "Tous les rendez-vous"
|
||||
|
||||
#. module: crm
|
||||
#: model:ir.module.module,shortdesc:crm.module_meta_information
|
||||
msgid "Customer & Supplier Relationship Management"
|
||||
msgstr ""
|
||||
msgstr "Gestion de la relation Client & Fournisseur"
|
||||
|
||||
#. module: crm
|
||||
#: view:crm.email.add.cc:0
|
||||
@@ -604,7 +617,7 @@ msgstr ""
|
||||
#: selection:report.crm.case.section.categ2,month:0
|
||||
#: selection:report.crm.case.section.stage,month:0
|
||||
msgid "June"
|
||||
msgstr ""
|
||||
msgstr "Juin"
|
||||
|
||||
#. module: crm
|
||||
#: field:crm.segmentation,som_interval_default:0
|
||||
@@ -614,7 +627,7 @@ msgstr "Facteur par défaut"
|
||||
#. module: crm
|
||||
#: model:crm.case.stage,name:crm.stage_job7
|
||||
msgid "Refused by Company"
|
||||
msgstr ""
|
||||
msgstr "Refusé par la société"
|
||||
|
||||
#. module: crm
|
||||
#: field:crm.case,planned_revenue:0
|
||||
@@ -624,7 +637,7 @@ msgstr "Revenus prévus"
|
||||
#. module: crm
|
||||
#: field:crm.case.section,allow_unlink:0
|
||||
msgid "Allow Delete"
|
||||
msgstr ""
|
||||
msgstr "Autoriser la suppression"
|
||||
|
||||
#. module: crm
|
||||
#: selection:report.crm.case.section.categ.categ2,month:0
|
||||
@@ -632,12 +645,12 @@ msgstr ""
|
||||
#: selection:report.crm.case.section.categ2,month:0
|
||||
#: selection:report.crm.case.section.stage,month:0
|
||||
msgid "October"
|
||||
msgstr ""
|
||||
msgstr "Octobre"
|
||||
|
||||
#. module: crm
|
||||
#: model:crm.case.stage,name:crm.stage_oppor3
|
||||
msgid "Value Proposition"
|
||||
msgstr ""
|
||||
msgstr "Nouvelle proposition"
|
||||
|
||||
#. module: crm
|
||||
#: view:crm.case.rule:0
|
||||
@@ -647,7 +660,7 @@ msgstr "%(case_id)s = ID du cas"
|
||||
#. module: crm
|
||||
#: model:crm.case.category2,name:crm.category_oppor2
|
||||
msgid "New Business"
|
||||
msgstr ""
|
||||
msgstr "Nouveau marché"
|
||||
|
||||
#. module: crm
|
||||
#: help:crm.case,email_from:0
|
||||
|
||||
+416
-209
File diff suppressed because it is too large
Load Diff
@@ -1,6 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
@@ -15,7 +15,7 @@
|
||||
# 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/>.
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
@@ -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 packing. 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.""",
|
||||
'description': """Allows you to add delivery methods in sales 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.""",
|
||||
'author': 'Tiny',
|
||||
'depends': ['sale', 'purchase', 'stock'],
|
||||
'init_xml': ['delivery_data.xml'],
|
||||
|
||||
@@ -2,28 +2,28 @@
|
||||
<openerp>
|
||||
<data>
|
||||
<record id="survey_2" model="survey">
|
||||
<field name="title">EMPLOYEE EVALUATION</field>
|
||||
<field name="title">Employee Evaluation</field>
|
||||
<field name="max_response_limit">20</field>
|
||||
<field eval="[(6,0,[])]" name="users"/>
|
||||
</record>
|
||||
</data>
|
||||
<data>
|
||||
<record id="survey_3" model="survey">
|
||||
<field name="title">EMPLOYEE OPINION</field>
|
||||
<field name="title">Employee Opinion</field>
|
||||
<field name="max_response_limit">20</field>
|
||||
<field eval="[(6,0,[])]" name="users"/>
|
||||
</record>
|
||||
</data>
|
||||
<data>
|
||||
<record id="survey_page_1" model="survey.page">
|
||||
<field name="title">EMPLOYEE EVALUATION FORM</field>
|
||||
<field name="title">Employee Evaluation Form</field>
|
||||
<field name="survey_id" ref="survey_2"/>
|
||||
<field eval="1" name="sequence"/>
|
||||
</record>
|
||||
</data>
|
||||
<data>
|
||||
<record id="survey_page_2" model="survey.page">
|
||||
<field name="title">PROCESS</field>
|
||||
<field name="title">Process</field>
|
||||
<field name="survey_id" ref="survey_3"/>
|
||||
<field eval="1" name="sequence"/>
|
||||
</record>
|
||||
@@ -31,14 +31,14 @@
|
||||
|
||||
<data>
|
||||
<record id="survey_page_5" model="survey.page">
|
||||
<field name="title">WORK PLAN</field>
|
||||
<field name="title">Work Plan</field>
|
||||
<field name="survey_id" ref="survey_2"/>
|
||||
<field eval="2" name="sequence"/>
|
||||
</record>
|
||||
</data>
|
||||
<data>
|
||||
<record id="survey_page_6" model="survey.page">
|
||||
<field name="title">EMPLOYEE PERFORMANCE IN KEY AREAS</field>
|
||||
<field name="title">Employee Performance In Key Areas</field>
|
||||
<field name="survey_id" ref="survey_2"/>
|
||||
<field eval="3" name="sequence"/>
|
||||
<field name="note">The appraiser should rate the employee’s major work accomplishments and performance according to the metric provided below :
|
||||
@@ -52,7 +52,7 @@
|
||||
|
||||
<data>
|
||||
<record id="survey_page_16" model="survey.page">
|
||||
<field name="title">PROFESSIONAL DEVELOPMENT AND PERFORMANCE PLAN (optional)</field>
|
||||
<field name="title">Professional Development And Performance Plan (optional)</field>
|
||||
<field name="survey_id" ref="survey_2"/>
|
||||
<field eval="4" name="sequence"/>
|
||||
<field name="note">Identify professional, performance, or project objectives you recommend for employee’s continued career development over the coming year. </field>
|
||||
@@ -61,7 +61,7 @@
|
||||
|
||||
<data>
|
||||
<record id="survey_page_26" model="survey.page">
|
||||
<field name="title">EMPLOYEE COMMENTS</field>
|
||||
<field name="title">Employee Comments</field>
|
||||
<field name="survey_id" ref="survey_2"/>
|
||||
<field eval="5" name="sequence"/>
|
||||
</record>
|
||||
@@ -69,7 +69,7 @@
|
||||
|
||||
<data>
|
||||
<record id="survey_page_10" model="survey.page">
|
||||
<field name="title">SURVEY</field>
|
||||
<field name="title">Survey</field>
|
||||
<field name="survey_id" ref="survey_3"/>
|
||||
<field eval="5" name="sequence"/>
|
||||
</record>
|
||||
@@ -138,7 +138,7 @@
|
||||
<field eval="0" name="rating_allow_one_column_require"/>
|
||||
<field name="req_error_msg">This question requires an answer.</field>
|
||||
<field eval="1" name="sequence"/>
|
||||
<field name="question">ENGAGEMENT</field>
|
||||
<field name="question">Engagement</field>
|
||||
<field eval="0" name="is_require_answer"/>
|
||||
<field name="type">matrix_of_choices_only_one_ans</field>
|
||||
<field name="comment_valid_err_msg">The comment you entered is in an invalid format.</field>
|
||||
@@ -162,10 +162,10 @@
|
||||
<field eval="0" name="rating_allow_one_column_require"/>
|
||||
<field name="req_error_msg">This question requires an answer.</field>
|
||||
<field eval="1" name="sequence"/>
|
||||
<field name="question">SUBJECT</field>
|
||||
<field name="question">Subject</field>
|
||||
<field eval="0" name="is_require_answer"/>
|
||||
<field name="type">matrix_of_choices_only_one_ans</field>
|
||||
<field name="column_name">RECOMMENDATIONS / EVALUATIONS</field>
|
||||
<field name="column_name">Recommendations / Evaluations</field>
|
||||
<field name="comment_valid_err_msg">The comment you entered is in an invalid format.</field>
|
||||
<field eval="0" name="make_comment_field"/>
|
||||
<field eval="0" name="in_visible_menu_choice"/>
|
||||
@@ -188,7 +188,7 @@
|
||||
<field eval="0" name="rating_allow_one_column_require"/>
|
||||
<field name="req_error_msg">This question requires an answer.</field>
|
||||
<field eval="2" name="sequence"/>
|
||||
<field name="question">LEADERSHIP</field>
|
||||
<field name="question">Leadership</field>
|
||||
<field eval="0" name="is_require_answer"/>
|
||||
<field name="type">matrix_of_choices_only_one_ans</field>
|
||||
<field eval="0" name="in_visible_menu_choice"/>
|
||||
@@ -209,7 +209,7 @@
|
||||
<field eval="0" name="rating_allow_one_column_require"/>
|
||||
<field name="req_error_msg">This question requires an answer.</field>
|
||||
<field eval="2" name="sequence"/>
|
||||
<field name="question">PROCESS</field>
|
||||
<field name="question">Process</field>
|
||||
<field eval="0" name="is_require_answer"/>
|
||||
<field name="type">comment</field>
|
||||
<field name="comment_valid_err_msg">The comment you entered is in an invalid format.</field>
|
||||
@@ -236,7 +236,7 @@
|
||||
<field name="question">Supervisors only : </field>
|
||||
<field eval="0" name="is_require_answer"/>
|
||||
<field name="type">matrix_of_choices_only_one_ans</field>
|
||||
<field name="column_name">RECOMMENDATIONS / EVALUATIONS </field>
|
||||
<field name="column_name">Recommendations / Evaluations</field>
|
||||
<field name="comment_valid_err_msg">The comment you entered is in an invalid format.</field>
|
||||
<field eval="0" name="make_comment_field"/>
|
||||
<field eval="0" name="in_visible_menu_choice"/>
|
||||
@@ -259,7 +259,7 @@
|
||||
<field eval="0" name="rating_allow_one_column_require"/>
|
||||
<field name="req_error_msg">This question requires an answer.</field>
|
||||
<field eval="1" name="sequence"/>
|
||||
<field name="question">WORK PLAN</field>
|
||||
<field name="question">Work Plan</field>
|
||||
<field eval="0" name="is_require_answer"/>
|
||||
<field name="type">table</field>
|
||||
<field name="comment_valid_err_msg">The comment you entered is in an invalid format.</field>
|
||||
@@ -269,7 +269,7 @@
|
||||
<field name="comment_label">Other</field>
|
||||
<field eval="0" name="in_visible_rating_weight"/>
|
||||
<field eval="0" name="allow_comment"/>
|
||||
<field eval="5" name="no_of_rows"/>
|
||||
<field eval="10" name="no_of_rows"/>
|
||||
</record>
|
||||
</data>
|
||||
|
||||
@@ -285,7 +285,7 @@
|
||||
<field eval="0" name="rating_allow_one_column_require"/>
|
||||
<field name="req_error_msg">This question requires an answer.</field>
|
||||
<field eval="3" name="sequence"/>
|
||||
<field name="question">EFFECTIVENESS</field>
|
||||
<field name="question">Effectiveness</field>
|
||||
<field eval="0" name="is_require_answer"/>
|
||||
<field name="type">matrix_of_choices_only_one_ans</field>
|
||||
<field name="comment_valid_err_msg">The comment you entered is in an invalid format.</field>
|
||||
@@ -312,7 +312,7 @@
|
||||
<field eval="0" name="rating_allow_one_column_require"/>
|
||||
<field name="req_error_msg">This question requires an answer.</field>
|
||||
<field eval="4" name="sequence"/>
|
||||
<field name="question">CONTINUOUS IMPROVEMENT</field>
|
||||
<field name="question">Continuous Improvement</field>
|
||||
<field eval="0" name="is_require_answer"/>
|
||||
<field name="type">matrix_of_choices_only_one_ans</field>
|
||||
<field name="comment_valid_err_msg">The comment you entered is in an invalid format.</field>
|
||||
@@ -362,7 +362,7 @@
|
||||
<field eval="0" name="rating_allow_one_column_require"/>
|
||||
<field name="req_error_msg">This question requires an answer.</field>
|
||||
<field eval="5" name="sequence"/>
|
||||
<field name="question">OPENNESS</field>
|
||||
<field name="question">Openness</field>
|
||||
<field eval="0" name="is_require_answer"/>
|
||||
<field name="type">matrix_of_choices_only_one_ans</field>
|
||||
<field name="comment_valid_err_msg">The comment you entered is in an invalid format.</field>
|
||||
@@ -389,7 +389,7 @@
|
||||
<field eval="0" name="rating_allow_one_column_require"/>
|
||||
<field name="req_error_msg">This question requires an answer.</field>
|
||||
<field eval="3" name="sequence"/>
|
||||
<field name="question">OVERALL PERFORMANCE SUMMARY RATING</field>
|
||||
<field name="question">Overall Performance Summary Rating</field>
|
||||
<field eval="0" name="is_require_answer"/>
|
||||
<field name="type">descriptive_text</field>
|
||||
<field name="comment_valid_err_msg">The comment you entered is in an invalid format.</field>
|
||||
@@ -415,7 +415,7 @@
|
||||
<field eval="0" name="rating_allow_one_column_require"/>
|
||||
<field name="req_error_msg">This question requires an answer.</field>
|
||||
<field eval="2" name="sequence"/>
|
||||
<field name="question">OVERALL PURPOSE OF EMPLOYEE APPRAISAL</field>
|
||||
<field name="question">Overall Purpose Of Employee Appraisal</field>
|
||||
<field eval="0" name="is_require_answer"/>
|
||||
<field name="type">descriptive_text</field>
|
||||
<field name="comment_valid_err_msg">The comment you entered is in an invalid format.</field>
|
||||
@@ -442,7 +442,7 @@
|
||||
<field eval="0" name="rating_allow_one_column_require"/>
|
||||
<field name="req_error_msg">This question requires an answer.</field>
|
||||
<field eval="6" name="sequence"/>
|
||||
<field name="question">MISCELLANEOUS</field>
|
||||
<field name="question">Miscellaneous</field>
|
||||
<field eval="0" name="is_require_answer"/>
|
||||
<field name="type">matrix_of_choices_only_one_ans</field>
|
||||
<field name="comment_valid_err_msg">The comment you entered is in an invalid format.</field>
|
||||
@@ -590,7 +590,7 @@ Once the form had been filled, the employee send it to his supervisor.
|
||||
<field eval="0" name="rating_allow_one_column_require"/>
|
||||
<field name="req_error_msg">This question requires an answer.</field>
|
||||
<field eval="3" name="sequence"/>
|
||||
<field name="question">EVALUATION PROCESS</field>
|
||||
<field name="question">Evaluation Process</field>
|
||||
<field eval="0" name="is_require_answer"/>
|
||||
<field name="type">descriptive_text</field>
|
||||
<field name="comment_valid_err_msg">The comment you entered is in an invalid format.</field>
|
||||
@@ -634,7 +634,7 @@ Once the form had been filled, the employee send it to his supervisor.
|
||||
<field eval="0" name="rating_allow_one_column_require"/>
|
||||
<field name="req_error_msg">This question requires an answer.</field>
|
||||
<field eval="2" name="sequence"/>
|
||||
<field name="question">PROFESSIONAL DEVELOPMENT OBJECTIVES </field>
|
||||
<field name="question">Professional Development Objectives </field>
|
||||
<field eval="0" name="is_require_answer"/>
|
||||
<field name="type">comment</field>
|
||||
<field name="comment_valid_err_msg">The comment you entered is in an invalid format.</field>
|
||||
@@ -659,7 +659,7 @@ Once the form had been filled, the employee send it to his supervisor.
|
||||
<field eval="0" name="rating_allow_one_column_require"/>
|
||||
<field name="req_error_msg">This question requires an answer.</field>
|
||||
<field eval="2" name="sequence"/>
|
||||
<field name="question">PERSONAL PERFORMANCE OBJECTIVES</field>
|
||||
<field name="question">Personal Performance Objectives</field>
|
||||
<field eval="0" name="is_require_answer"/>
|
||||
<field name="type">comment</field>
|
||||
<field name="comment_valid_err_msg">The comment you entered is in an invalid format.</field>
|
||||
@@ -684,7 +684,7 @@ Once the form had been filled, the employee send it to his supervisor.
|
||||
<field eval="0" name="rating_allow_one_column_require"/>
|
||||
<field name="req_error_msg">This question requires an answer.</field>
|
||||
<field eval="4" name="sequence"/>
|
||||
<field name="question">PROJECT OBJECTIVES</field>
|
||||
<field name="question">Project Objectives</field>
|
||||
<field eval="0" name="is_require_answer"/>
|
||||
<field name="type">comment</field>
|
||||
<field name="comment_valid_err_msg">The comment you entered is in an invalid format.</field>
|
||||
|
||||
@@ -7,13 +7,13 @@ msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.4\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2010-02-07 22:30+0000\n"
|
||||
"PO-Revision-Date: 2010-02-08 18:31+0000\n"
|
||||
"Last-Translator: Selma <Unknown>\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-02-08 04:45+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-02-09 05:10+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: membership
|
||||
@@ -61,7 +61,7 @@ msgstr "Definiraj članski proizvod"
|
||||
#. module: membership
|
||||
#: field:product.product,membership_date_to:0
|
||||
msgid "Date to"
|
||||
msgstr "Datum do"
|
||||
msgstr "Do datuma:"
|
||||
|
||||
#. module: membership
|
||||
#: model:process.transition,name:membership.process_transition_waitingtoinvoice0
|
||||
@@ -101,7 +101,7 @@ msgstr ""
|
||||
#. module: membership
|
||||
#: field:product.product,membership_date_from:0
|
||||
msgid "Date from"
|
||||
msgstr "Datum od"
|
||||
msgstr "Od datuma:"
|
||||
|
||||
#. module: membership
|
||||
#: field:membership.membership_line,partner:0
|
||||
@@ -132,7 +132,7 @@ msgstr "Od"
|
||||
#. module: membership
|
||||
#: constraint:membership.membership_line:0
|
||||
msgid "Error, this membership product is out of date"
|
||||
msgstr ""
|
||||
msgstr "Greška: ovom članskom proizvodu je istekao rok."
|
||||
|
||||
#. module: membership
|
||||
#: wizard_button:wizard_invoice_membership,init,ok:0
|
||||
@@ -142,7 +142,7 @@ msgstr "Potvrdi"
|
||||
#. module: membership
|
||||
#: model:process.transition.action,name:membership.process_transition_action_create0
|
||||
msgid "Create"
|
||||
msgstr "Kreiraj"
|
||||
msgstr "Napravi"
|
||||
|
||||
#. module: membership
|
||||
#: constraint:ir.ui.view:0
|
||||
@@ -195,12 +195,12 @@ msgstr "Nije član"
|
||||
#. module: membership
|
||||
#: model:process.node,note:membership.process_node_invoicedmember0
|
||||
msgid "Open invoice."
|
||||
msgstr "Otvorena faktira."
|
||||
msgstr "Otvorena faktura"
|
||||
|
||||
#. module: membership
|
||||
#: model:ir.ui.menu,name:membership.menu_conf
|
||||
msgid "Configuration"
|
||||
msgstr "Konfiguracija"
|
||||
msgstr "Podešavanje"
|
||||
|
||||
#. module: membership
|
||||
#: model:process.transition,note:membership.process_transition_producttomember0
|
||||
@@ -210,7 +210,7 @@ msgstr "Definiraj proizvod za članstvo"
|
||||
#. module: membership
|
||||
#: model:process.transition,note:membership.process_transition_invoicetoassociate0
|
||||
msgid "Invoiced member may be Associated member."
|
||||
msgstr ""
|
||||
msgstr "Fakturisani član može biti udruženi član."
|
||||
|
||||
#. module: membership
|
||||
#: constraint:product.template:0
|
||||
@@ -221,7 +221,7 @@ msgstr ""
|
||||
#: model:ir.ui.menu,name:membership.menu_membership_products
|
||||
#: view:product.product:0
|
||||
msgid "Membership products"
|
||||
msgstr ""
|
||||
msgstr "Članski proizvodi"
|
||||
|
||||
#. module: membership
|
||||
#: model:ir.ui.menu,name:membership.menu_members_waiting
|
||||
@@ -236,12 +236,12 @@ msgstr ""
|
||||
#. module: membership
|
||||
#: model:product.template,name:membership.member_product_1_product_template
|
||||
msgid "Membership Product - 2"
|
||||
msgstr ""
|
||||
msgstr "Članski proizvod - 2"
|
||||
|
||||
#. module: membership
|
||||
#: model:product.template,name:membership.member_product_0_product_template
|
||||
msgid "Membership Product - 1"
|
||||
msgstr ""
|
||||
msgstr "Članski proizvod - 1"
|
||||
|
||||
#. module: membership
|
||||
#: field:report.partner_member.year,canceled_amount:0
|
||||
@@ -338,7 +338,7 @@ msgstr "Članstvo"
|
||||
#. module: membership
|
||||
#: help:product.product,membership:0
|
||||
msgid "Specify if this product is a membership product"
|
||||
msgstr ""
|
||||
msgstr "Naznačite da li je ovaj proizvod članski proizvod"
|
||||
|
||||
#. module: membership
|
||||
#: selection:membership.membership_line,state:0
|
||||
@@ -456,7 +456,7 @@ msgstr "Otkazani član"
|
||||
#: model:product.price.type,name:membership.product_price_type_memberprice
|
||||
#: field:product.template,member_price:0
|
||||
msgid "Member Price"
|
||||
msgstr ""
|
||||
msgstr "Cijena člana"
|
||||
|
||||
#. module: membership
|
||||
#: field:res.partner,free_member:0
|
||||
@@ -505,7 +505,7 @@ msgstr ""
|
||||
#: model:process.node,name:membership.process_node_membershipproduct0
|
||||
#: wizard_field:wizard_invoice_membership,init,product:0
|
||||
msgid "Membership product"
|
||||
msgstr "Proizvod članstva"
|
||||
msgstr "Članski proizvod"
|
||||
|
||||
#. module: membership
|
||||
#: constraint:product.product:0
|
||||
|
||||
+7
-7
@@ -394,7 +394,7 @@ class mrp_production(osv.osv):
|
||||
|
||||
_columns = {
|
||||
'name': fields.char('Reference', size=64, required=True),
|
||||
'origin': fields.char('Origin', size=64, help="Reference of the document that generated this production order request."),
|
||||
'origin': fields.char('Source Document', size=64, help="Reference of the document that generated this production order request."),
|
||||
'priority': fields.selection([('0','Not urgent'),('1','Normal'),('2','Urgent'),('3','Very Urgent')], 'Priority'),
|
||||
|
||||
'product_id': fields.many2one('product.product', 'Product', required=True, domain=[('type','<>','service')]),
|
||||
@@ -426,7 +426,7 @@ class mrp_production(osv.osv):
|
||||
'product_lines': fields.one2many('mrp.production.product.line', 'production_id', 'Scheduled goods'),
|
||||
'workcenter_lines': fields.one2many('mrp.production.workcenter.line', 'production_id', 'Work Centers Utilisation'),
|
||||
'state': fields.selection([('draft','Draft'),('picking_except', 'Picking Exception'),('confirmed','Waiting Goods'),('ready','Ready to Produce'),('in_production','In Production'),('cancel','Cancelled'),('done','Done')],'State', readonly=True,
|
||||
help='When the production order is created the state is set to \'Draft\'.\n If the order is confirmed the state is set to \'Waiting Goods\'.\n If any exceptions are there, the state is set to \'Packing Exception\'.\
|
||||
help='When the production order is created the state is set to \'Draft\'.\n If the order is confirmed the state is set to \'Waiting Goods\'.\n If any exceptions are there, the state is set to \'Picking Exception\'.\
|
||||
\nIf the stock is available then the state is set to \'Ready to Produce\'.\n When the production get started then the state is set to \'In Production\'.\n When the production is over, the state is set to \'Done\'.'),
|
||||
'hour_total': fields.function(_production_calc, method=True, type='float', string='Total Hours', multi='workorder'),
|
||||
'cycle_total': fields.function(_production_calc, method=True, type='float', string='Total Cycles', multi='workorder'),
|
||||
@@ -784,7 +784,7 @@ class mrp_procurement(osv.osv):
|
||||
_order = 'priority,date_planned'
|
||||
_columns = {
|
||||
'name': fields.char('Name', size=64, required=True, help='Requisition name.'),
|
||||
'origin': fields.char('Origin', size=64,
|
||||
'origin': fields.char('Source Document', size=64,
|
||||
help="Reference of the document that created this Requisition.\n"
|
||||
"This is automatically completed by Open ERP."),
|
||||
'priority': fields.selection([('0','Not urgent'),('1','Normal'),('2','Urgent'),('3','Very Urgent')], 'Priority', required=True),
|
||||
@@ -801,8 +801,8 @@ class mrp_procurement(osv.osv):
|
||||
|
||||
'close_move': fields.boolean('Close Move at end', required=True),
|
||||
'location_id': fields.many2one('stock.location', 'Location', required=True, states={'draft':[('readonly',False)]}, readonly=True),
|
||||
'procure_method': fields.selection([('make_to_stock','from stock'),('make_to_order','on order')], 'Requisition Method', states={'draft':[('readonly',False)], 'confirmed':[('readonly',False)]},
|
||||
readonly=True, required=True, help="If you encode manually a Requisition, you probably want to use" \
|
||||
'procure_method': fields.selection([('make_to_stock','from stock'),('make_to_order','on order')], 'Procurement Method', states={'draft':[('readonly',False)], 'confirmed':[('readonly',False)]},
|
||||
readonly=True, required=True, help="If you encode manually a Procurement, you probably want to use" \
|
||||
" a make to order method."),
|
||||
|
||||
'purchase_id': fields.many2one('purchase.order', 'Purchase Order'),
|
||||
@@ -810,7 +810,7 @@ class mrp_procurement(osv.osv):
|
||||
|
||||
'property_ids': fields.many2many('mrp.property', 'mrp_procurement_property_rel', 'procurement_id','property_id', 'Properties'),
|
||||
|
||||
'message': fields.char('Latest error', size=64),
|
||||
'message': fields.char('Latest error', size=64, help="Exception occurred while computing procurement orders."),
|
||||
'state': fields.selection([
|
||||
('draft','Draft'),
|
||||
('confirmed','Confirmed'),
|
||||
@@ -1087,7 +1087,7 @@ class mrp_procurement(osv.osv):
|
||||
|
||||
#Passing partner_id to context for purchase order line integrity of Line name
|
||||
context.update({'lang':partner.lang, 'partner_id':partner_id})
|
||||
|
||||
|
||||
product=self.pool.get('product.product').browse(cr,uid,procurement.product_id.id,context=context)
|
||||
|
||||
line = {
|
||||
|
||||
+18
-15
@@ -675,15 +675,13 @@
|
||||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Procurement Lines" colors="red:state=='draft';black:state=='running';green:state=='confirmed';gray:state in ['done','cancel']">
|
||||
<field name="name"/>
|
||||
<field name="origin"/>
|
||||
<field name="date_planned" widget="date"/>
|
||||
<field name="product_id"/>
|
||||
<field name="product_qty"/>
|
||||
<field name="product_uom" string="UOM"/>
|
||||
<field name="date_planned"/>
|
||||
<field name="procure_method"/>
|
||||
<field name="origin"/>
|
||||
<field name="state"/>
|
||||
<field name="message"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
@@ -701,7 +699,7 @@
|
||||
</group>
|
||||
<group col="2" colspan="2">
|
||||
<separator colspan="2" string="Planification"/>
|
||||
<field name="date_planned" select="1"/>
|
||||
<field name="date_planned" select="1" widget="date"/>
|
||||
<field name="procure_method" select="2"/>
|
||||
<field name="priority" groups="base.group_extended"/>
|
||||
</group>
|
||||
@@ -733,8 +731,10 @@
|
||||
<field name="date_close" select="2"/>
|
||||
<field name="close_move" groups="base.group_extended"/>
|
||||
<field name="purchase_id"/>
|
||||
<separator colspan="4" string="Properties"/>
|
||||
<field colspan="4" name="property_ids" nolabel="1" groups="base.group_extended"/>
|
||||
<group colspan="4" groups="base.group_extended">
|
||||
<separator colspan="4" string="Properties" />
|
||||
<field colspan="4" name="property_ids" nolabel="1"/>
|
||||
</group>
|
||||
</page>
|
||||
<page string="Notes">
|
||||
<separator colspan="4" string="Note" />
|
||||
@@ -750,18 +750,20 @@
|
||||
<field name="type">search</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Search Procurement">
|
||||
<group col='8' colspan='4'>
|
||||
<group col='10' colspan='4'>
|
||||
<filter icon="terp-mrp" string="Current" domain="[('state','in',('draft','confirmed'))]" default="1" help="Procurement Orders in draft or open state."/>
|
||||
<filter icon="terp-mrp" string="Exceptions" domain="[('state','=','exception')]" help="Procurement Orders with exceptions"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="name" select='1'/>
|
||||
<field name="product_id" select='1'/>
|
||||
<field name="date_planned" select='1'/>
|
||||
<field name="state" select='1'/>
|
||||
<field name="name"/>
|
||||
<field name="origin"/>
|
||||
<field name="product_id" />
|
||||
<field name="date_planned" widget="date"/>
|
||||
<field name="state" />
|
||||
</group>
|
||||
<group expand="context.get('report',False)" string="Group By..." colspan="4" col="8">
|
||||
<group expand="1" string="Group By..." colspan="4" col="8">
|
||||
<filter string="By Product" icon="terp-mrp" domain="[]" context="{'group_by':'product_id'}"/>
|
||||
<filter string="By State" icon="terp-mrp" domain="[]" context="{'group_by':'state'}"/>
|
||||
<filter string="Scheduled Date" icon="terp-mrp" domain="[]" context="{'group_by':'date_planned'}"/>
|
||||
<filter string="By Procurement Reason" icon="terp-mrp" domain="[]" context="{'group_by':'name'}"/>
|
||||
<filter string="By Scheduled Date" icon="terp-mrp" domain="[]" context="{'group_by':'date_planned'}"/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
@@ -783,6 +785,7 @@
|
||||
<field name="res_model">mrp.procurement</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="search_view_id" ref="view_mrp_procurement_filter"/>
|
||||
<field name="domain">[]</field>
|
||||
<field name="context">{}</field>
|
||||
</record>
|
||||
|
||||
@@ -89,7 +89,7 @@
|
||||
<field name="model_id" ref="mrp.model_mrp_procurement"/>
|
||||
<field eval=""""subflow"""" name="kind"/>
|
||||
<field eval=""""Product type is service"""" name="note"/>
|
||||
<field eval=""""Service Product"""" name="name"/>
|
||||
<field eval=""""Service"""" name="name"/>
|
||||
<field name="subflow_id" ref="process_process_serviceproductprocess0"/>
|
||||
<field name="process_id" ref="process_process_procurementprocess0"/>
|
||||
<field eval=""""object.state in ('draft', 'confirmed', 'cancel', 'exception', 'running', 'done', 'waiting')"""" name="model_states"/>
|
||||
|
||||
@@ -8,13 +8,13 @@ msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2009-12-08 11:46+0000\n"
|
||||
"PO-Revision-Date: 2010-01-26 11:01+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"PO-Revision-Date: 2010-02-08 20:23+0000\n"
|
||||
"Last-Translator: Nikolay Chesnokov <chesnokov_n@msn.com>\n"
|
||||
"Language-Team: Russian <ru@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-01-29 04:53+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-02-09 05:11+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: multi_company
|
||||
@@ -27,6 +27,8 @@ msgstr ""
|
||||
msgid ""
|
||||
"The Object name must start with x_ and not contain any special character !"
|
||||
msgstr ""
|
||||
"Название объекта должно начинаться с x_ и не должно содержать специальных "
|
||||
"символов !"
|
||||
|
||||
#. module: multi_company
|
||||
#: constraint:product.template:0
|
||||
@@ -37,12 +39,12 @@ msgstr ""
|
||||
#. module: multi_company
|
||||
#: constraint:res.partner:0
|
||||
msgid "The VAT doesn't seem to be correct."
|
||||
msgstr ""
|
||||
msgstr "НДС выглядит неправильно"
|
||||
|
||||
#. module: multi_company
|
||||
#: constraint:ir.actions.act_window:0
|
||||
msgid "Invalid model name in the action definition."
|
||||
msgstr ""
|
||||
msgstr "Недопустимое имя модели в определении действия"
|
||||
|
||||
#. module: multi_company
|
||||
#: model:res.company,overdue_msg:multi_company.res_company_odoo
|
||||
@@ -64,13 +66,13 @@ msgstr ""
|
||||
#. module: multi_company
|
||||
#: field:multi_company.default,object_id:0
|
||||
msgid "Object"
|
||||
msgstr ""
|
||||
msgstr "Объект"
|
||||
|
||||
#. module: multi_company
|
||||
#: model:ir.module.module,shortdesc:multi_company.module_meta_information
|
||||
#: view:multi_company.default:0
|
||||
msgid "Multi Company"
|
||||
msgstr ""
|
||||
msgstr "Концерн"
|
||||
|
||||
#. module: multi_company
|
||||
#: model:ir.module.module,description:multi_company.module_meta_information
|
||||
@@ -83,12 +85,12 @@ msgstr ""
|
||||
#. module: multi_company
|
||||
#: field:multi_company.default,company_id:0
|
||||
msgid "Main Company"
|
||||
msgstr ""
|
||||
msgstr "Головная компания"
|
||||
|
||||
#. module: multi_company
|
||||
#: view:multi_company.default:0
|
||||
msgid "Condition"
|
||||
msgstr ""
|
||||
msgstr "Условие"
|
||||
|
||||
#. module: multi_company
|
||||
#: help:multi_company.default,company_dest_id:0
|
||||
@@ -98,17 +100,17 @@ msgstr ""
|
||||
#. module: multi_company
|
||||
#: constraint:ir.ui.view:0
|
||||
msgid "Invalid XML for View Architecture!"
|
||||
msgstr ""
|
||||
msgstr "Некорректный формат XML структуры для просмотра."
|
||||
|
||||
#. module: multi_company
|
||||
#: field:multi_company.default,name:0
|
||||
msgid "Name"
|
||||
msgstr ""
|
||||
msgstr "Имя"
|
||||
|
||||
#. module: multi_company
|
||||
#: constraint:product.template:0
|
||||
msgid "Error: UOS must be in a different category than the UOM"
|
||||
msgstr ""
|
||||
msgstr "Ошибка. UOS и UOM должны принадлежать к разным категориям."
|
||||
|
||||
#. module: multi_company
|
||||
#: model:product.category,name:multi_company.Odoo1
|
||||
@@ -118,7 +120,7 @@ msgstr ""
|
||||
#. module: multi_company
|
||||
#: constraint:res.company:0
|
||||
msgid "Error! You can not create recursive companies."
|
||||
msgstr ""
|
||||
msgstr "Ошибка! Невозможно создать рекурсивную компанию."
|
||||
|
||||
#. module: multi_company
|
||||
#: help:multi_company.default,name:0
|
||||
@@ -128,7 +130,7 @@ msgstr ""
|
||||
#. module: multi_company
|
||||
#: model:ir.ui.menu,name:multi_company.menu_custom_multicompany
|
||||
msgid "Multi company"
|
||||
msgstr ""
|
||||
msgstr "Концерн"
|
||||
|
||||
#. module: multi_company
|
||||
#: model:ir.model,name:multi_company.model_multi_company_default
|
||||
@@ -148,7 +150,7 @@ msgstr ""
|
||||
#. module: multi_company
|
||||
#: field:multi_company.default,expression:0
|
||||
msgid "Expression"
|
||||
msgstr ""
|
||||
msgstr "Выражение"
|
||||
|
||||
#. module: multi_company
|
||||
#: model:product.template,name:multi_company.product_product_odoo1_product_template
|
||||
@@ -158,17 +160,17 @@ msgstr ""
|
||||
#. module: multi_company
|
||||
#: field:multi_company.default,sequence:0
|
||||
msgid "Sequence"
|
||||
msgstr ""
|
||||
msgstr "Последовательность"
|
||||
|
||||
#. module: multi_company
|
||||
#: constraint:product.category:0
|
||||
msgid "Error ! You can not create recursive categories."
|
||||
msgstr ""
|
||||
msgstr "Ошибка ! Невозможно создать рекурсивную категорию."
|
||||
|
||||
#. module: multi_company
|
||||
#: constraint:product.product:0
|
||||
msgid "Error: Invalid ean code"
|
||||
msgstr ""
|
||||
msgstr "Ошибка: Неправильный штрих-код"
|
||||
|
||||
#. module: multi_company
|
||||
#: help:multi_company.default,expression:0
|
||||
@@ -184,9 +186,9 @@ msgstr ""
|
||||
#: code:addons/multi_company/multi_company.py:0
|
||||
#, python-format
|
||||
msgid " (copy)"
|
||||
msgstr ""
|
||||
msgstr " (копия)"
|
||||
|
||||
#. module: multi_company
|
||||
#: view:multi_company.default:0
|
||||
msgid "Matching"
|
||||
msgstr ""
|
||||
msgstr "Сопоставление"
|
||||
|
||||
@@ -77,7 +77,7 @@
|
||||
-->
|
||||
<button name="set_to_draft" string="Set to draft" states="paid" icon="gtk-execute" type="object" />
|
||||
|
||||
<button name="%(pos_return_picking)d" string="Return Packing" type="action" icon="gtk-ok" states="paid"
|
||||
<button name="%(pos_return_picking)d" string="Return Picking" type="action" icon="gtk-ok" states="paid"
|
||||
attrs="{'invisible':[('state','!=','paid'),('state','!=','invoiced')]}"/>
|
||||
|
||||
</group>
|
||||
|
||||
@@ -250,7 +250,7 @@
|
||||
<record id="ir_model_access_accountmove0" model="ir.model.access">
|
||||
<field name="model_id" ref="account.model_account_move"/>
|
||||
<field eval="1" name="perm_read"/>
|
||||
<field eval=""""Account Move"""" name="name"/>
|
||||
<field eval=""""Ledger Posting"""" name="name"/>
|
||||
<field eval="0" name="perm_unlink"/>
|
||||
<field eval="1" name="perm_write"/>
|
||||
<field eval="1" name="perm_create"/>
|
||||
|
||||
@@ -253,7 +253,7 @@
|
||||
<record id="ir_model_access_accountmove0" model="ir.model.access">
|
||||
<field name="model_id" ref="account.model_account_move"/>
|
||||
<field eval="1" name="perm_read"/>
|
||||
<field eval=""""Account Move"""" name="name"/>
|
||||
<field eval=""""Ledger Posting"""" name="name"/>
|
||||
<field eval="0" name="perm_unlink"/>
|
||||
<field eval="1" name="perm_write"/>
|
||||
<field eval="1" name="perm_create"/>
|
||||
|
||||
@@ -0,0 +1,304 @@
|
||||
# Serbian translation for openobject-addons
|
||||
# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2010-02-08 10:39+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Serbian <sr@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-02-09 05:11+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: process
|
||||
#: view:process.node:0
|
||||
#: view:process.process:0
|
||||
msgid "Process Node"
|
||||
msgstr ""
|
||||
|
||||
#. module: process
|
||||
#: constraint:ir.model:0
|
||||
msgid ""
|
||||
"The Object name must start with x_ and not contain any special character !"
|
||||
msgstr ""
|
||||
|
||||
#. module: process
|
||||
#: constraint:ir.actions.act_window:0
|
||||
msgid "Invalid model name in the action definition."
|
||||
msgstr ""
|
||||
|
||||
#. module: process
|
||||
#: view:process.node:0
|
||||
#: view:process.process:0
|
||||
#: view:process.transition:0
|
||||
msgid "Roles from Workflow"
|
||||
msgstr ""
|
||||
|
||||
#. module: process
|
||||
#: field:process.node,menu_id:0
|
||||
msgid "Related Menu"
|
||||
msgstr ""
|
||||
|
||||
#. module: process
|
||||
#: view:process.node:0
|
||||
#: view:process.process:0
|
||||
#: field:process.transition,action_ids:0
|
||||
msgid "Buttons"
|
||||
msgstr ""
|
||||
|
||||
#. module: process
|
||||
#: selection:process.node,kind:0
|
||||
msgid "State"
|
||||
msgstr ""
|
||||
|
||||
#. module: process
|
||||
#: view:process.node:0
|
||||
#: view:process.process:0
|
||||
#: view:process.transition:0
|
||||
msgid "Details"
|
||||
msgstr ""
|
||||
|
||||
#. module: process
|
||||
#: field:process.node,help_url:0
|
||||
msgid "Help URL"
|
||||
msgstr ""
|
||||
|
||||
#. module: process
|
||||
#: model:ir.actions.act_window,name:process.action_process_node_form
|
||||
#: model:ir.model,name:process.model_process_node
|
||||
#: model:ir.ui.menu,name:process.menu_process_node_form
|
||||
#: view:process.node:0
|
||||
#: view:process.process:0
|
||||
msgid "Process Nodes"
|
||||
msgstr ""
|
||||
|
||||
#. module: process
|
||||
#: view:process.process:0
|
||||
#: field:process.process,node_ids:0
|
||||
msgid "Nodes"
|
||||
msgstr ""
|
||||
|
||||
#. module: process
|
||||
#: view:process.node:0
|
||||
#: field:process.node,condition_ids:0
|
||||
#: view:process.process:0
|
||||
msgid "Conditions"
|
||||
msgstr ""
|
||||
|
||||
#. module: process
|
||||
#: field:process.condition,node_id:0
|
||||
msgid "Node"
|
||||
msgstr ""
|
||||
|
||||
#. module: process
|
||||
#: selection:process.transition.action,state:0
|
||||
msgid "Workflow Trigger"
|
||||
msgstr ""
|
||||
|
||||
#. module: process
|
||||
#: field:process.transition,note:0
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
|
||||
#. module: process
|
||||
#: model:ir.model,name:process.model_process_transition_action
|
||||
msgid "Process Transitions Actions"
|
||||
msgstr ""
|
||||
|
||||
#. module: process
|
||||
#: field:process.condition,model_id:0
|
||||
#: field:process.node,model_id:0
|
||||
#: field:process.process,model_id:0
|
||||
msgid "Object"
|
||||
msgstr ""
|
||||
|
||||
#. module: process
|
||||
#: field:process.transition,source_node_id:0
|
||||
msgid "Source Node"
|
||||
msgstr ""
|
||||
|
||||
#. module: process
|
||||
#: field:process.transition,transition_ids:0
|
||||
msgid "Workflow Transitions"
|
||||
msgstr ""
|
||||
|
||||
#. module: process
|
||||
#: field:process.transition.action,action:0
|
||||
msgid "Action ID"
|
||||
msgstr ""
|
||||
|
||||
#. module: process
|
||||
#: view:process.transition:0
|
||||
msgid "Process Transition"
|
||||
msgstr ""
|
||||
|
||||
#. module: process
|
||||
#: model:ir.model,name:process.model_process_condition
|
||||
#: view:process.node:0
|
||||
#: view:process.process:0
|
||||
msgid "Condition"
|
||||
msgstr ""
|
||||
|
||||
#. module: process
|
||||
#: selection:process.transition.action,state:0
|
||||
msgid "Dummy"
|
||||
msgstr ""
|
||||
|
||||
#. module: process
|
||||
#: constraint:ir.ui.view:0
|
||||
msgid "Invalid XML for View Architecture!"
|
||||
msgstr ""
|
||||
|
||||
#. module: process
|
||||
#: field:process.condition,name:0
|
||||
#: field:process.node,name:0
|
||||
#: field:process.process,name:0
|
||||
#: field:process.transition,name:0
|
||||
#: field:process.transition.action,name:0
|
||||
msgid "Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: process
|
||||
#: field:process.transition,role_ids:0
|
||||
msgid "Roles"
|
||||
msgstr ""
|
||||
|
||||
#. module: process
|
||||
#: field:process.node,transition_in:0
|
||||
msgid "Starting Transitions"
|
||||
msgstr ""
|
||||
|
||||
#. module: process
|
||||
#: field:process.node,note:0
|
||||
#: field:process.process,note:0
|
||||
#: view:process.transition:0
|
||||
msgid "Notes"
|
||||
msgstr ""
|
||||
|
||||
#. module: process
|
||||
#: view:process.node:0
|
||||
#: view:process.process:0
|
||||
#: field:process.transition.action,transition_id:0
|
||||
msgid "Transition"
|
||||
msgstr ""
|
||||
|
||||
#. module: process
|
||||
#: view:process.node:0
|
||||
#: view:process.process:0
|
||||
#: view:process.transition:0
|
||||
msgid "Roles Required"
|
||||
msgstr ""
|
||||
|
||||
#. module: process
|
||||
#: view:process.node:0
|
||||
#: view:process.process:0
|
||||
msgid "Extra Information"
|
||||
msgstr ""
|
||||
|
||||
#. module: process
|
||||
#: selection:process.node,kind:0
|
||||
#: field:process.node,subflow_id:0
|
||||
msgid "Subflow"
|
||||
msgstr ""
|
||||
|
||||
#. module: process
|
||||
#: field:process.process,active:0
|
||||
msgid "Active"
|
||||
msgstr ""
|
||||
|
||||
#. module: process
|
||||
#: selection:process.transition.action,state:0
|
||||
msgid "Action"
|
||||
msgstr ""
|
||||
|
||||
#. module: process
|
||||
#: field:process.node,flow_start:0
|
||||
msgid "Starting Flow"
|
||||
msgstr ""
|
||||
|
||||
#. module: process
|
||||
#: field:process.condition,model_states:0
|
||||
msgid "Expression"
|
||||
msgstr ""
|
||||
|
||||
#. module: process
|
||||
#: field:process.transition.action,state:0
|
||||
msgid "Type"
|
||||
msgstr ""
|
||||
|
||||
#. module: process
|
||||
#: field:process.node,transition_out:0
|
||||
msgid "Ending Transitions"
|
||||
msgstr ""
|
||||
|
||||
#. module: process
|
||||
#: model:ir.actions.act_window,name:process.action_process_form
|
||||
#: model:ir.model,name:process.model_process_process
|
||||
#: model:ir.ui.menu,name:process.menu_process_form
|
||||
#: field:process.node,process_id:0
|
||||
#: view:process.process:0
|
||||
msgid "Process"
|
||||
msgstr ""
|
||||
|
||||
#. module: process
|
||||
#: model:ir.module.module,shortdesc:process.module_meta_information
|
||||
msgid "Enterprise Process"
|
||||
msgstr ""
|
||||
|
||||
#. module: process
|
||||
#: view:process.node:0
|
||||
#: view:process.process:0
|
||||
#: view:process.transition:0
|
||||
msgid "Actions"
|
||||
msgstr ""
|
||||
|
||||
#. module: process
|
||||
#: field:process.node,model_states:0
|
||||
msgid "States Expression"
|
||||
msgstr ""
|
||||
|
||||
#. module: process
|
||||
#: model:ir.actions.act_window,name:process.action_process_transition_form
|
||||
#: model:ir.model,name:process.model_process_transition
|
||||
#: model:ir.ui.menu,name:process.menu_process_transition_form
|
||||
msgid "Process Transitions"
|
||||
msgstr ""
|
||||
|
||||
#. module: process
|
||||
#: field:process.transition,target_node_id:0
|
||||
msgid "Target Node"
|
||||
msgstr ""
|
||||
|
||||
#. module: process
|
||||
#: field:process.node,kind:0
|
||||
msgid "Kind of Node"
|
||||
msgstr ""
|
||||
|
||||
#. module: process
|
||||
#: view:process.node:0
|
||||
#: view:process.process:0
|
||||
msgid "Outgoing Transitions"
|
||||
msgstr ""
|
||||
|
||||
#. module: process
|
||||
#: model:ir.ui.menu,name:process.menu_process
|
||||
msgid "Enterprise Processes"
|
||||
msgstr ""
|
||||
|
||||
#. module: process
|
||||
#: view:process.node:0
|
||||
#: view:process.process:0
|
||||
msgid "Transitions"
|
||||
msgstr ""
|
||||
|
||||
#. module: process
|
||||
#: selection:process.transition.action,state:0
|
||||
msgid "Object Method"
|
||||
msgstr ""
|
||||
@@ -7,13 +7,13 @@ msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.4\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2010-02-08 01:47+0000\n"
|
||||
"PO-Revision-Date: 2010-02-08 21:27+0000\n"
|
||||
"Last-Translator: Oktay Altunergil <Unknown>\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-02-08 04:45+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-02-09 05:10+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: project
|
||||
@@ -375,7 +375,7 @@ msgstr "Bütün Projeler"
|
||||
#. module: project
|
||||
#: model:process.transition,note:project.process_transition_draftopentask0
|
||||
msgid "From draft state, it will come into the open state."
|
||||
msgstr ""
|
||||
msgstr "Taslak durumundan Faal duruma geçecektir."
|
||||
|
||||
#. module: project
|
||||
#: wizard_view:project.task.delegate,init:0
|
||||
@@ -611,7 +611,7 @@ msgstr "Proje'nin Üyeleri"
|
||||
#. module: project
|
||||
#: model:process.transition,note:project.process_transition_taskinvoice0
|
||||
msgid "After task is completed, Create its invoice."
|
||||
msgstr ""
|
||||
msgstr "Görev tamamlandıktan sonra Faturasını Oluştur."
|
||||
|
||||
#. module: project
|
||||
#: help:project.task,progress:0
|
||||
@@ -667,7 +667,7 @@ msgstr "E-Postalar"
|
||||
#. module: project
|
||||
#: model:process.node,note:project.process_node_triggerinvoice0
|
||||
msgid "Trigger invoices from sale order lines"
|
||||
msgstr ""
|
||||
msgstr "Satış Emri satırlarından fatura tetikle."
|
||||
|
||||
#. module: project
|
||||
#: model:process.transition.action,name:project.process_transition_action_opendrafttask0
|
||||
@@ -775,7 +775,7 @@ msgstr "Ay"
|
||||
#. module: project
|
||||
#: model:process.transition,note:project.process_transition_opendonetask0
|
||||
msgid "When task is completed, it will come into the done state."
|
||||
msgstr ""
|
||||
msgstr "Görev sona erince tamamlanmış duruma geçecektir."
|
||||
|
||||
#. module: project
|
||||
#: field:project.task.work,date:0
|
||||
@@ -1010,7 +1010,7 @@ msgstr "Onaylama Görevi"
|
||||
#. module: project
|
||||
#: field:project.task,work_ids:0
|
||||
msgid "Work done"
|
||||
msgstr ""
|
||||
msgstr "Tamamlanmış İş"
|
||||
|
||||
#. module: project
|
||||
#: selection:project.project,state:0
|
||||
@@ -1049,7 +1049,7 @@ msgstr "Yeni Özellik"
|
||||
#. module: project
|
||||
#: model:process.node,note:project.process_node_opentask0
|
||||
msgid "Encode your working hours."
|
||||
msgstr ""
|
||||
msgstr "Mesai saatlerinizi giriniz."
|
||||
|
||||
#. module: project
|
||||
#: wizard_field:project.task.delegate,init,prefix:0
|
||||
@@ -1108,7 +1108,7 @@ msgstr "Onay Durumu"
|
||||
#. module: project
|
||||
#: constraint:project.project:0
|
||||
msgid "Error ! You can not create recursive projects."
|
||||
msgstr ""
|
||||
msgstr "Hata. İç içe projeler oluşturamazsınız."
|
||||
|
||||
#. module: project
|
||||
#: field:project.task,date_deadline:0
|
||||
|
||||
@@ -24,6 +24,8 @@ import pooler
|
||||
from tools.translate import _
|
||||
import datetime
|
||||
from resource.faces import *
|
||||
from new import classobj
|
||||
import operator
|
||||
|
||||
compute_form = """<?xml version="1.0" ?>
|
||||
<form string="Compute Scheduling of Tasks">
|
||||
@@ -32,7 +34,7 @@ compute_form = """<?xml version="1.0" ?>
|
||||
|
||||
success_msg = """<?xml version="1.0" ?>
|
||||
<form string="Compute Scheduling of Tasks">
|
||||
<label string="Task Scheduling completed scccessfully."/>
|
||||
<label string="Task Scheduling completed successfully."/>
|
||||
</form>"""
|
||||
|
||||
compute_fields = {
|
||||
@@ -40,18 +42,18 @@ compute_fields = {
|
||||
|
||||
}
|
||||
def timeformat_convert(cr, uid, time_string, context={}):
|
||||
# Function to convert input time string:: 8.5 to output time string 8:30
|
||||
|
||||
strg = str(time_string)[-2:]
|
||||
last_strg = str(time_string)[0:-2]
|
||||
if strg != '.0':
|
||||
if '.' not in strg:
|
||||
strg = '.' + strg
|
||||
last_strg = str(time_string)[:-3]
|
||||
|
||||
new_strg = round(float(strg) / 0.016666667)
|
||||
converted_strg = last_strg + ':' + str(new_strg)[:-2]
|
||||
else:
|
||||
converted_strg = last_strg + ':00'
|
||||
|
||||
return converted_strg
|
||||
|
||||
class wizard_compute_tasks(wizard.interface):
|
||||
@@ -63,115 +65,145 @@ class wizard_compute_tasks(wizard.interface):
|
||||
resource_pool = pool.get('resource.resource')
|
||||
resource_leaves_pool = pool.get('resource.calendar.leaves')
|
||||
resource_week_pool = pool.get('resource.calendar.week')
|
||||
|
||||
user_pool = pool.get('res.users')
|
||||
|
||||
project_id = data['form']['project_id']
|
||||
project = project_pool.browse(cr,uid,project_id)
|
||||
task_ids = task_pool.search(cr,uid,[('project_id','=',project_id)])
|
||||
if task_ids:
|
||||
wktime_cal = []
|
||||
leaves = []
|
||||
task_ids.sort()
|
||||
task_obj = task_pool.browse(cr,uid,task_ids)
|
||||
task_1 = task_obj[0]
|
||||
if task_1.date_start:
|
||||
date_dt = datetime.datetime.strptime(task_1.date_start,"%Y-%m-%d %H:%M:%S")
|
||||
else:
|
||||
date_dt = datetime.datetime.strptime(project.date_start,"%Y-%m-%d")
|
||||
dt = datetime.datetime.strftime(date_dt,"%Y-%m-%d %H:%M")
|
||||
dt_start = datetime.datetime.strftime(datetime.datetime.strptime(project.date_start,"%Y-%m-%d"),"%Y-%m-%d %H:%M")
|
||||
calendar_id = project.resource_calendar_id.id
|
||||
|
||||
for i in range(len(task_obj)):
|
||||
final_lst = []
|
||||
leaves = []
|
||||
if task_obj[i].user_id.id:
|
||||
resource_id = resource_pool.search(cr,uid,[('user_id','=',task_obj[i].user_id.id)])
|
||||
if resource_id :
|
||||
resource_obj = resource_pool.browse(cr,uid,resource_id)[0]
|
||||
if resource_obj.calendar_id:
|
||||
calendar_id = resource_obj.calendar_id.id
|
||||
resource_leave_ids = resource_leaves_pool.search(cr,uid,[('resource_id','=',resource_id)])
|
||||
else:
|
||||
calendar_id = project.resource_calendar_id.id
|
||||
resource_leave_ids = resource_leaves_pool.search(cr,uid,[('calendar_id','=',project.resource_calendar_id.id)])
|
||||
# If project has a working calendar then that would be used otherwise
|
||||
# the default faces calendar would be used
|
||||
if calendar_id:
|
||||
resource_leave_ids = resource_leaves_pool.search(cr,uid,[('calendar_id','=',project.resource_calendar_id.id)])
|
||||
time_range = "8:00-8:00"
|
||||
non_working = ""
|
||||
wk = {"0":"mon","1":"tue","2":"wed","3":"thu","4":"fri","5":"sat","6":"sun"}
|
||||
wk_days = {}
|
||||
wk_time = {}
|
||||
wktime_list = []
|
||||
week_ids = resource_week_pool.search(cr,uid,[('calendar_id','=',calendar_id)])
|
||||
week_obj = resource_week_pool.read(cr,uid,week_ids,['dayofweek','hour_from','hour_to'])
|
||||
|
||||
time_range = "8:00-8:00"
|
||||
non_working = ""
|
||||
wk = {"0":"mon","1":"tue","2":"wed","3":"thu","4":"fri","5":"sat","6":"sun"}
|
||||
wk_days = {}
|
||||
wk_time = {}
|
||||
tlist = []
|
||||
week_ids = resource_week_pool.search(cr,uid,[('calendar_id','=',calendar_id)])
|
||||
week_obj = resource_week_pool.read(cr,uid,week_ids,['dayofweek','hour_from','hour_to'])
|
||||
# Converting time formats into appropriate format required
|
||||
# and creating a list like [('mon', '8:00-12:00'), ('mon', '13:00-18:00')]
|
||||
for week in week_obj:
|
||||
res_str = ""
|
||||
if wk.has_key(week['dayofweek']):
|
||||
day = wk[week['dayofweek']]
|
||||
wk_days[week['dayofweek']] = wk[week['dayofweek']]
|
||||
|
||||
for week in week_obj:
|
||||
res_str = ""
|
||||
if wk.has_key(week['dayofweek']):
|
||||
day = wk[week['dayofweek']]
|
||||
wk_days[week['dayofweek']] = wk[week['dayofweek']]
|
||||
hour_from_str = timeformat_convert(cr,uid,week['hour_from'])
|
||||
hour_to_str = timeformat_convert(cr,uid,week['hour_to'])
|
||||
res_str = hour_from_str + '-' + hour_to_str
|
||||
wktime_list.append((day,res_str))
|
||||
|
||||
hour_from_str = timeformat_convert(cr,uid,week['hour_from'])
|
||||
hour_to_str = timeformat_convert(cr,uid,week['hour_to'])
|
||||
res_str = hour_from_str + '-' + hour_to_str
|
||||
tlist.append((day,res_str))
|
||||
# Converting it to format like [('mon', '8:00-12:00', '13:00-18:00')]
|
||||
for item in wktime_list:
|
||||
if wk_time.has_key(item[0]):
|
||||
wk_time[item[0]].append(item[1])
|
||||
else:
|
||||
wk_time[item[0]] = [item[0]]
|
||||
wk_time[item[0]].append(item[1])
|
||||
|
||||
for item in tlist:
|
||||
if wk_time.has_key(item[0]):
|
||||
wk_time[item[0]].append(item[1])
|
||||
else:
|
||||
wk_time[item[0]] = [item[0]]
|
||||
wk_time[item[0]].append(item[1])
|
||||
for k,v in wk_time.items():
|
||||
wktime_cal.append(tuple(v))
|
||||
|
||||
for k,v in wk_time.items():
|
||||
final_lst.append(tuple(v))
|
||||
# For non working days adding [('tue,wed,fri,sat,sun', '8:00-8:00')]
|
||||
for k,v in wk_days.items():
|
||||
if wk.has_key(k):
|
||||
wk.pop(k)
|
||||
for v in wk.itervalues():
|
||||
non_working += v + ','
|
||||
if non_working:
|
||||
wktime_cal.append((non_working[:-1],time_range))
|
||||
|
||||
for k,v in wk_days.items():
|
||||
if wk.has_key(k):
|
||||
wk.pop(k)
|
||||
for v in wk.itervalues():
|
||||
non_working += v + ','
|
||||
if non_working:
|
||||
final_lst.append((non_working[:-1],time_range))
|
||||
# If project working calendar has any leaves
|
||||
if resource_leave_ids:
|
||||
res_leaves = resource_leaves_pool.read(cr,uid,resource_leave_ids,['date_from','date_to'])
|
||||
for leave in range(len(res_leaves)):
|
||||
dt_start = datetime.datetime.strptime(res_leaves[leave]['date_from'],'%Y-%m-%d %H:%M:%S')
|
||||
dt_end = datetime.datetime.strptime(res_leaves[leave]['date_to'],'%Y-%m-%d %H:%M:%S')
|
||||
no = dt_end - dt_start
|
||||
leave_days = no.days + 1
|
||||
[leaves.append((dt_start + datetime.timedelta(days=x)).strftime('%Y-%m-%d')) for x in range(int(leave_days))]
|
||||
leaves.sort()
|
||||
|
||||
if resource_leave_ids:
|
||||
res_leaves = resource_leaves_pool.read(cr,uid,resource_leave_ids,['date_from','date_to'])
|
||||
for leave in range(len(res_leaves)):
|
||||
dt_start = datetime.datetime.strptime(res_leaves[leave]['date_from'],'%Y-%m-%d %H:%M:%S')
|
||||
dt_end = datetime.datetime.strptime(res_leaves[leave]['date_to'],'%Y-%m-%d %H:%M:%S')
|
||||
no = dt_end - dt_start
|
||||
leave_days = no.days + 1
|
||||
[leaves.append((dt_start + datetime.timedelta(days=x)).strftime('%Y-%m-%d')) for x in range(int(leave_days))]
|
||||
leaves.sort()
|
||||
# To create resources which are the Project Members
|
||||
resource = project.members
|
||||
resource_objs = []
|
||||
for no in range(len(resource)):
|
||||
resource_id = resource_pool.search(cr,uid,[('user_id','=',resource[no].id)])
|
||||
resource_objs.append(classobj(str(resource[no].name),(Resource,),{'__doc__':resource[no].name,'__name__':resource[no].name}))
|
||||
|
||||
# To create dynamic no of tasks
|
||||
def tasks(j,eff):
|
||||
def task():
|
||||
"""
|
||||
task is a dynamic method!
|
||||
"""
|
||||
effort = eff
|
||||
task.__doc__ = "TaskNO%d" %j
|
||||
task.__name__ = "task%d" %j
|
||||
return task
|
||||
|
||||
hours = task_obj[i].remaining_hours / task_obj[i].occupation_rate
|
||||
hours = str(hours)[:-2] + 'H'
|
||||
# To create dynamic no of tasks with the resource specified
|
||||
def tasks_resource(j,eff,obj):
|
||||
def task():
|
||||
"""
|
||||
task is a dynamic method!
|
||||
"""
|
||||
effort = eff
|
||||
resource = obj
|
||||
task.__doc__ = "TaskNO%d" %j
|
||||
task.__name__ = "task%d" %j
|
||||
return task
|
||||
|
||||
class user(Resource):
|
||||
pass
|
||||
# Creating the project with all the tasks and resources
|
||||
def Project():
|
||||
resource = reduce(operator.or_,resource_objs)
|
||||
title = project.name
|
||||
start = dt_start
|
||||
|
||||
if i == 0:
|
||||
new_dt = dt
|
||||
else:
|
||||
data = task_pool.read(cr,uid,[task_obj[i-1].id],['date_end'])[0]
|
||||
new_dt = data['date_end'][0:16]
|
||||
|
||||
def Project_1():
|
||||
resource = user
|
||||
title = project.name
|
||||
start = new_dt
|
||||
effort = hours
|
||||
|
||||
if final_lst or leaves:
|
||||
working_days = final_lst
|
||||
# If project has calendar
|
||||
if wktime_cal or leaves:
|
||||
working_days = wktime_cal
|
||||
vacation = tuple(leaves)
|
||||
|
||||
def task1():
|
||||
start = new_dt
|
||||
effort = hours
|
||||
title = task_obj[i].name
|
||||
|
||||
project_1 = BalancedProject(Project_1)
|
||||
s_date = project_1.calendar.WorkingDate(project_1.task1.start).to_datetime()
|
||||
e_date = project_1.calendar.WorkingDate(project_1.task1.end).to_datetime()
|
||||
task_pool.write(cr,uid,[task_obj[i].id],{'date_start':s_date,'date_end':e_date})
|
||||
# Dynamic Creation of tasks
|
||||
for i in range(len(task_obj)):
|
||||
hours = str(task_obj[i].planned_hours / task_obj[i].occupation_rate)[:-2] + 'H'
|
||||
if task_obj[i].user_id:
|
||||
for resource_object in resource_objs:
|
||||
if resource_object.__name__ == task_obj[i].user_id.name:
|
||||
task = tasks_resource(i,hours,resource_object)
|
||||
else:
|
||||
task = tasks(i,hours)
|
||||
|
||||
project = BalancedProject(Project)
|
||||
task_no = len(task_obj)
|
||||
loop_no = 0
|
||||
for t in project:
|
||||
no2 = loop_no
|
||||
while loop_no <= task_no:
|
||||
s_date = t.start.to_datetime()
|
||||
e_date = t.end.to_datetime()
|
||||
print 'Start Date And End Date:::',s_date,e_date,t.name,t.booked_resource
|
||||
if loop_no != 0:
|
||||
user_id = user_pool.search(cr,uid,[('name','=',t.booked_resource[0].__name__)])
|
||||
task_pool.write(cr,uid,[task_obj[loop_no - 1].id],{'date_start':s_date,'date_end':e_date,'user_id':user_id[0]})
|
||||
loop_no = task_no + 1
|
||||
loop_no = no2
|
||||
loop_no +=1
|
||||
return {}
|
||||
|
||||
states = {
|
||||
'init': {
|
||||
'actions': [],
|
||||
@@ -180,7 +212,8 @@ class wizard_compute_tasks(wizard.interface):
|
||||
('compute', 'Compute')
|
||||
]},
|
||||
},
|
||||
|
||||
|
||||
|
||||
'compute': {
|
||||
'actions': [_compute_date],
|
||||
'result': {'type':'form','arch':success_msg,'fields':{}, 'state':[('end', 'Ok')]},
|
||||
@@ -190,4 +223,3 @@ wizard_compute_tasks('wizard.compute.tasks')
|
||||
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
|
||||
+14
-12
@@ -7,13 +7,13 @@ msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.4\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2009-12-24 09:00+0000\n"
|
||||
"Last-Translator: adnan <adnankraljic@yahoo.com>\n"
|
||||
"PO-Revision-Date: 2010-02-08 18:46+0000\n"
|
||||
"Last-Translator: Selma <Unknown>\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: 2009-12-25 04:40+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-02-09 05:10+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: purchase
|
||||
@@ -39,7 +39,7 @@ msgstr ""
|
||||
#. module: purchase
|
||||
#: rml:purchase.order:0
|
||||
msgid "Validated By"
|
||||
msgstr ""
|
||||
msgstr "Potvrđeno od"
|
||||
|
||||
#. module: purchase
|
||||
#: constraint:ir.actions.act_window:0
|
||||
@@ -64,7 +64,7 @@ msgstr "Količina"
|
||||
#. module: purchase
|
||||
#: selection:purchase.order,invoice_method:0
|
||||
msgid "From Order"
|
||||
msgstr ""
|
||||
msgstr "Iz naloga"
|
||||
|
||||
#. module: purchase
|
||||
#: model:process.node,name:purchase.process_node_confirmpurchaseorder0
|
||||
@@ -111,6 +111,8 @@ msgid ""
|
||||
"The pricelist sets the currency used for this purchase order. It also "
|
||||
"computes the supplier price for the selected products/quantities."
|
||||
msgstr ""
|
||||
"Cjenovnik postavlja valutu koja se koristi u nabavnom nalogu. Također, isti "
|
||||
"izračunava nabavnu cijenu za odabrane proizvode i količinu."
|
||||
|
||||
#. module: purchase
|
||||
#: model:process.process,name:purchase.process_process_purchaseprocess0
|
||||
@@ -280,7 +282,7 @@ msgstr "Red naloga"
|
||||
#. module: purchase
|
||||
#: selection:purchase.order,state:0
|
||||
msgid "Confirmed"
|
||||
msgstr ""
|
||||
msgstr "Potvrđeno"
|
||||
|
||||
#. module: purchase
|
||||
#: model:process.node,name:purchase.process_node_productrecept0
|
||||
@@ -775,13 +777,13 @@ msgstr ""
|
||||
#. module: purchase
|
||||
#: rml:purchase.quotation:0
|
||||
msgid "Expected Delivery address:"
|
||||
msgstr ""
|
||||
msgstr "Adresa očekivane isporuke:"
|
||||
|
||||
#. module: purchase
|
||||
#: model:ir.actions.act_window,name:purchase.purchase_form_action3
|
||||
#: model:ir.ui.menu,name:purchase.menu_purchase_form_action3
|
||||
msgid "Purchase Order Waiting Approval"
|
||||
msgstr ""
|
||||
msgstr "Nabavni nalog - potrebno odobrenje"
|
||||
|
||||
#. module: purchase
|
||||
#: model:process.transition,name:purchase.process_transition_confirmingpurchaseorder0
|
||||
@@ -796,7 +798,7 @@ msgstr "Proizvod UOM"
|
||||
#. module: purchase
|
||||
#: field:purchase.order.line,move_ids:0
|
||||
msgid "Reservation"
|
||||
msgstr ""
|
||||
msgstr "Rezervacija"
|
||||
|
||||
#. module: purchase
|
||||
#: model:process.node,note:purchase.process_node_confirmpurchaseorder0
|
||||
@@ -816,7 +818,7 @@ msgstr ""
|
||||
#. module: purchase
|
||||
#: rml:purchase.order:0
|
||||
msgid "Purchase Order Confirmation N°"
|
||||
msgstr ""
|
||||
msgstr "Broj potvrde nabavnog naloga"
|
||||
|
||||
#. module: purchase
|
||||
#: view:purchase.order:0
|
||||
@@ -826,12 +828,12 @@ msgstr "Ukupni iznos"
|
||||
#. module: purchase
|
||||
#: rml:purchase.order:0
|
||||
msgid "Date Ordered"
|
||||
msgstr ""
|
||||
msgstr "Datum naruđbe"
|
||||
|
||||
#. module: purchase
|
||||
#: view:purchase.order:0
|
||||
msgid "Purchase Control"
|
||||
msgstr ""
|
||||
msgstr "Kontrola nabavke"
|
||||
|
||||
#. module: purchase
|
||||
#: model:ir.actions.act_window,name:purchase.purchase_form_action2
|
||||
|
||||
@@ -144,7 +144,7 @@ class purchase_order(osv.osv):
|
||||
|
||||
_columns = {
|
||||
'name': fields.char('Order Reference', size=64, required=True, select=True),
|
||||
'origin': fields.char('Origin', size=64,
|
||||
'origin': fields.char('Source Document', size=64,
|
||||
help="Reference of the document that generated this purchase order request."
|
||||
),
|
||||
'partner_ref': fields.char('Supplier Reference', size=64),
|
||||
@@ -471,7 +471,7 @@ class purchase_order_line(osv.osv):
|
||||
return super(purchase_order_line, self).copy_data(cr, uid, id, default, context)
|
||||
|
||||
def product_id_change(self, cr, uid, ids, pricelist, product, qty, uom,
|
||||
partner_id, date_order=False, fiscal_position=False, date_planned=False,
|
||||
partner_id, date_order=False, fiscal_position=False, date_planned=False,
|
||||
name=False, price_unit=False, notes=False):
|
||||
if not pricelist:
|
||||
raise osv.except_osv(_('No Pricelist !'), _('You have to select a pricelist in the purchase form !\nPlease set one before choosing a product.'))
|
||||
@@ -513,7 +513,7 @@ class purchase_order_line(osv.osv):
|
||||
prod_name = self.pool.get('product.product').name_get(cr, uid, [prod.id])[0][1]
|
||||
|
||||
|
||||
res = {'value': {'price_unit': price, 'name': name or prod_name,
|
||||
res = {'value': {'price_unit': price, 'name': name or prod_name,
|
||||
'taxes_id':map(lambda x: x.id, prod.supplier_taxes_id),
|
||||
'date_planned': date_planned or dt,'notes': notes or prod.description_purchase,
|
||||
'product_qty': qty,
|
||||
|
||||
@@ -153,17 +153,16 @@
|
||||
<separator orientation="vertical"/>
|
||||
<filter icon="terp-purchase" string="To Invoice" domain="[('invoiced','=',1)]" separator="1"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="name" select="1"/>
|
||||
<field name="name" select="1" string="Reference"/>
|
||||
<field name="partner_id" select="1"/>
|
||||
<field name="product_id" select="1"/>
|
||||
<field name="create_uid" select="1" widget="selection">
|
||||
<filter icon="terp-purchase" domain="[('create_uid','=',uid)]" help="My Purchase Orders"/>
|
||||
<filter icon="terp-purchase" domain="[('create_uid','child_of',[uid])]" help="My Departments Purchase Orders"/>
|
||||
<filter icon="terp-partner" domain="[('create_uid','=',uid)]" help="My Purchase Orders"/>
|
||||
</field>
|
||||
</group>
|
||||
<group expand="context.get('report',False)" string="Group By..." colspan="4" col="10">
|
||||
<filter string="By Supplier" icon="terp-purchase" domain="[]" context="{'group_by':'partner_id'}"/>
|
||||
<filter string="By State" icon="terp-purchase" domain="[]" context="{'group_by':'state'}"/>
|
||||
<group expand="1" string="Group By..." colspan="4" col="10">
|
||||
<filter string="By Supplier" icon="terp-purchase" domain="[]" context="{'group_by':'partner_id'}"/>
|
||||
<filter string="By State" icon="terp-sale" domain="[]" context="{'group_by':'state'}"/>
|
||||
<filter string="By Order Date" icon="terp-purchase" domain="[]" context="{'group_by':'date_order'}"/>
|
||||
</group>
|
||||
</search>
|
||||
@@ -176,10 +175,11 @@
|
||||
<field name="res_model">purchase.order</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="domain">[('state','=','draft')]</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="search_view_id" ref="view_purchase_order_filter"/>
|
||||
</record>
|
||||
<menuitem action="purchase_rfq" id="menu_purchase_rfq" parent="menu_procurement_management"
|
||||
name="Request for Quotations" sequence="6" />
|
||||
<menuitem action="purchase_rfq" id="menu_purchase_rfq" parent="menu_procurement_management"
|
||||
name="Request for Quotations" sequence="6"/>
|
||||
|
||||
<record id="purchase_form_action" model="ir.actions.act_window">
|
||||
<field name="name">Purchase Orders</field>
|
||||
@@ -207,15 +207,16 @@
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Purchase Order">
|
||||
<field name="name" string="Reference"/>
|
||||
<field name="date_order"/>
|
||||
<field name="company_id" groups="base.group_multi_company" widget="selection"/>
|
||||
<field name="minimum_planned_date"/>
|
||||
<field name="origin"/>
|
||||
<field name="date_order" string="Order Date"/>
|
||||
<field name="partner_id"/>
|
||||
<field name="company_id" groups="base.group_multi_company" widget="selection"/>
|
||||
<field name="location_id"/>
|
||||
<field name="minimum_planned_date"/>
|
||||
<field name="invoiced_rate" widget="progressbar"/>
|
||||
<field name="shipped_rate" widget="progressbar"/>
|
||||
<field name="amount_untaxed"/>
|
||||
<field name="origin"/>
|
||||
<field name="amount_untaxed" sum="Total Untaxed amount"/>
|
||||
<field name="amount_total" sum="Total amount"/>
|
||||
<field name="state"/>
|
||||
</tree>
|
||||
</field>
|
||||
@@ -233,7 +234,7 @@
|
||||
<field context="partner_id=parent.partner_id,quantity=product_qty,pricelist=parent.pricelist_id,uom=product_uom,warehouse=parent.warehouse_id" name="product_qty" on_change="product_id_change(parent.pricelist_id,product_id,product_qty,product_uom,parent.partner_id,parent.date_order,parent.fiscal_position,date_planned,name,price_unit,notes)"/>
|
||||
<field name="product_uom" on_change="product_uom_change(parent.pricelist_id,product_id,product_qty,product_uom,parent.partner_id, parent.date_order)"/>
|
||||
<field colspan="4" name="name"/>
|
||||
<field name="date_planned"/>
|
||||
<field name="date_planned" widget="date"/>
|
||||
<field name="price_unit"/>
|
||||
<field name="company_id" groups="base.group_multi_company" widget="selection"/>
|
||||
<field name="price_subtotal" readonly="1"/>
|
||||
@@ -263,7 +264,7 @@
|
||||
<tree colors="red:date_planned<=current_date;black:date_planned>current_date" string="Purchase Order Lines">
|
||||
<field name="order_id"/>
|
||||
<field name="name"/>
|
||||
<field name="date_planned"/>
|
||||
<field name="date_planned" widget="date"/>
|
||||
<field name="product_id"/>
|
||||
<field name="product_qty"/>
|
||||
<field name="product_uom"/>
|
||||
|
||||
@@ -178,7 +178,7 @@ class report_invoice_created(osv.osv):
|
||||
('paid','Done'),
|
||||
('cancel','Cancelled')
|
||||
],'State', readonly=True),
|
||||
'origin': fields.char('Origin', size=64, readonly=True, help="Reference of the document that generated this invoice report."),
|
||||
'origin': fields.char('Source Document', size=64, readonly=True, help="Reference of the document that generated this invoice report."),
|
||||
'create_date' : fields.datetime('Create Date', readonly=True)
|
||||
}
|
||||
_order = 'create_date'
|
||||
|
||||
@@ -65,7 +65,7 @@ class report_intrastat(osv.osv):
|
||||
'month':fields.selection([('01','January'), ('02','February'), ('03','March'), ('04','April'), ('05','May'), ('06','June'),
|
||||
('07','July'), ('08','August'), ('09','September'), ('10','October'), ('11','November'), ('12','December')],'Month',readonly=True),
|
||||
'supply_units':fields.float('Supply Units', readonly=True),
|
||||
'ref':fields.char('Origin',size=64, readonly=True),
|
||||
'ref':fields.char('Source document',size=64, readonly=True),
|
||||
'code': fields.char('Country code', size="2", readonly=True),
|
||||
'intrastat_id': fields.many2one('report.intrastat.code', 'Intrastat code', readonly=True),
|
||||
'weight': fields.float('Weight', readonly=True),
|
||||
|
||||
@@ -13,7 +13,7 @@ msgstr ""
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-02-08 04:45+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-02-09 05:11+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: report_mrp
|
||||
|
||||
@@ -1941,7 +1941,7 @@ class Task(object):
|
||||
|
||||
func.task_func = instrumented # will be used in the gui
|
||||
self._function = instrumented
|
||||
self.name = name
|
||||
self.name = func.func_name
|
||||
self.up = parent
|
||||
self.children = []
|
||||
self._sources = {} # all tasks, I am linked to
|
||||
|
||||
@@ -7,10 +7,11 @@
|
||||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Sale Orders">
|
||||
<field name="partner_id" invisible="True"/>
|
||||
<field name="name"/>
|
||||
<field name="partner_id"/>
|
||||
<field name="date_order"/>
|
||||
<field name="invoiced_rate"/>
|
||||
<field name="picked_rate"/>
|
||||
<field name="invoiced_rate" widget="progressbar"/>
|
||||
<field name="picked_rate" widget="progressbar"/>
|
||||
<field name="amount_untaxed"/>
|
||||
<field name="amount_tax"/>
|
||||
<field name="amount_total" sum="Total Amount"/>
|
||||
@@ -20,7 +21,7 @@
|
||||
</record>
|
||||
|
||||
<record id="action_sale_order_report_all" model="ir.actions.act_window">
|
||||
<field name="name">Sale Orders By Customer </field>
|
||||
<field name="name">Sale Orders By Partner </field>
|
||||
<field name="res_model">sale.order</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,graph</field>
|
||||
@@ -49,8 +50,7 @@
|
||||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Sale Orders by Product">
|
||||
<field name="name"/>
|
||||
<field name="order_id" invisible="True"/>
|
||||
<field name="order_id"/>
|
||||
<field name="product_uom_qty" />
|
||||
<field name="product_uos_qty"/>
|
||||
<field name="product_uos"/>
|
||||
|
||||
+9
-9
@@ -183,7 +183,7 @@ class sale_order(osv.osv):
|
||||
_columns = {
|
||||
'name': fields.char('Order Reference', size=64, required=True, select=True),
|
||||
'shop_id': fields.many2one('sale.shop', 'Shop', required=True, readonly=True, states={'draft': [('readonly', False)]}),
|
||||
'origin': fields.char('Origin', size=64, help="Reference of the document that generated this sale order request."),
|
||||
'origin': fields.char('Source document', size=64, help="Reference of the document that generated this sale order request."),
|
||||
'client_order_ref': fields.char('Customer Reference', size=64),
|
||||
|
||||
'state': fields.selection([
|
||||
@@ -214,10 +214,10 @@ class sale_order(osv.osv):
|
||||
('picking', 'Invoice from Picking'),
|
||||
], 'Shipping Policy', required=True, readonly=True, states={'draft': [('readonly', False)]},
|
||||
help="""The Shipping Policy is used to synchronise invoice and delivery operations.
|
||||
- The 'Pay before delivery' choice will first generate the invoice and then generate the packing order after the payment of this invoice.
|
||||
- The 'Shipping & Manual Invoice' will create the packing order directly and wait for the user to manually click on the 'Invoice' button to generate the draft invoice.
|
||||
- The 'Pay before delivery' choice will first generate the invoice and then generate the picking order after the payment of this invoice.
|
||||
- The 'Shipping & Manual Invoice' will create the picking order directly and wait for the user to manually click on the 'Invoice' button to generate the draft invoice.
|
||||
- The 'Invoice on Order After Delivery' choice will generate the draft invoice based on sale order after all picking lists have been finished.
|
||||
- The 'Invoice from the picking' choice is used to create an invoice during the packing process."""),
|
||||
- The 'Invoice from the picking' choice is used to create an invoice during the picking process."""),
|
||||
'pricelist_id': fields.many2one('product.pricelist', 'Pricelist', required=True, readonly=True, states={'draft': [('readonly', False)]}),
|
||||
'project_id': fields.many2one('account.analytic.account', 'Analytic Account', readonly=True, states={'draft': [('readonly', False)]}),
|
||||
|
||||
@@ -452,13 +452,13 @@ class sale_order(osv.osv):
|
||||
self.pool.get('sale.order.line').write(cr, uid, [line.id], {'invoiced': invoiced})
|
||||
self.write(cr, uid, ids, {'state': 'invoice_except', 'invoice_ids': False})
|
||||
return True
|
||||
|
||||
|
||||
def action_invoice_end(self, cr, uid, ids, context={}):
|
||||
for order in self.browse(cr, uid, ids):
|
||||
val = {'invoiced': True}
|
||||
if order.state == 'invoice_except':
|
||||
val['state'] = 'progress'
|
||||
|
||||
|
||||
for line in order.order_line:
|
||||
towrite = []
|
||||
if line.state == 'exception':
|
||||
@@ -466,9 +466,9 @@ class sale_order(osv.osv):
|
||||
if towrite:
|
||||
self.pool.get('sale.order.line').write(cr, uid, towrite, {'state': 'confirmed'}, context=context)
|
||||
self.write(cr, uid, [order.id], val)
|
||||
|
||||
|
||||
return True
|
||||
|
||||
|
||||
def action_cancel(self, cr, uid, ids, context={}):
|
||||
ok = True
|
||||
sale_order_line_obj = self.pool.get('sale.order.line')
|
||||
@@ -477,7 +477,7 @@ class sale_order(osv.osv):
|
||||
if pick.state not in ('draft', 'cancel'):
|
||||
raise osv.except_osv(
|
||||
_('Could not cancel sale order !'),
|
||||
_('You must first cancel all packing attached to this sale order.'))
|
||||
_('You must first cancel all picking attached to this sale order.'))
|
||||
for r in self.read(cr, uid, ids, ['picking_ids']):
|
||||
for pick in r['picking_ids']:
|
||||
wf_service = netsvc.LocalService("workflow")
|
||||
|
||||
@@ -82,7 +82,8 @@
|
||||
<field name="partner_shipping_id"/>
|
||||
<field name="picked_rate" widget="progressbar"/>
|
||||
<field name="invoiced_rate" widget="progressbar"/>
|
||||
<field name="amount_untaxed"/>
|
||||
<field name="amount_untaxed" sum="Total Untaxed amount"/>
|
||||
<field name="amount_total" sum="Total amount"/>
|
||||
<field name="state"/>
|
||||
</tree>
|
||||
</field>
|
||||
@@ -231,20 +232,19 @@
|
||||
<field name="type">search</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Search Sales Order">
|
||||
<group col='8' colspan='4'>
|
||||
<group col='10' colspan='4'>
|
||||
<filter icon="terp-sale" string="Quotation" domain="[('state','=','draft')]"/>
|
||||
<filter icon="terp-sale" string="Running" domain="[('state','in',('manual','progress'))]"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="name" select="1"/>
|
||||
<field name="partner_id" select="1"/>
|
||||
<field name="user_id" select="1" widget="selection">
|
||||
<filter icon="terp-sale" domain="[('user_id','=',uid)]" help="My Sale Orders"/>
|
||||
<filter icon="terp-sale" domain="[('user_id','child_of',[uid])]" help="My Departments Sale Orders"/>
|
||||
<filter icon="terp-partner" domain="[('user_id','=',uid)]" help="My Sale Orders"/>
|
||||
</field>
|
||||
<field name="date_order" select="1"/>
|
||||
</group>
|
||||
<group expand="context.get('report',False)" string="Group By..." colspan="4" col="8">
|
||||
<filter string="By Customer" icon="terp-sale" domain="[]" default="1" context="{'group_by':'partner_id'}"/>
|
||||
<group expand="1" string="Group By..." colspan="4" col="8">
|
||||
<filter string="By Customer" icon="terp-sale" domain="[]" context="{'group_by':'partner_id'}"/>
|
||||
<filter string="By State" icon="terp-sale" domain="[]" context="{'group_by':'state'}"/>
|
||||
<filter string="By Order Date" icon="terp-sale" domain="[]" context="{'group_by':'date_order'}"/>
|
||||
</group>
|
||||
@@ -414,7 +414,7 @@
|
||||
<group expand="context.get('report',False)" string="Group By..." colspan="4" col="8">
|
||||
<filter string="By Product" icon="terp-sale" default="1" domain="[]" context="{'group_by':'product_id'}"/>
|
||||
<filter string="By Order" icon="terp-sale" domain="[]" context="{'group_by':'order_id'}"/>
|
||||
<filter string="By Scheduled" icon="terp-sale" domain="[]" context="{'group_by':'state'}"/>
|
||||
<filter string="By State" icon="terp-sale" domain="[]" context="{'group_by':'state'}"/>
|
||||
</group>
|
||||
|
||||
</group>
|
||||
|
||||
@@ -26,6 +26,21 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="view_sales_order_filter_inherit" model="ir.ui.view">
|
||||
<field name="name">sale.order.list.select</field>
|
||||
<field name="model">sale.order</field>
|
||||
<field name="type">search</field>
|
||||
<field name="inherit_id" ref="sale.view_sales_order_filter"/>
|
||||
<field name="arch" type="xml">
|
||||
<field name="date_order" position="after">
|
||||
<field name="section_id" default="context.get('section_id', False)" select="1" widget="selection" string="Section">
|
||||
<filter icon="terp-crm"
|
||||
domain="[('section_id','=',context.get('section_id',False))]"
|
||||
help="My section"/>
|
||||
</field>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
@@ -15,7 +15,7 @@
|
||||
# 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/>.
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
'category': 'Generic Modules/Sales & Purchases',
|
||||
'description': """
|
||||
The sale journal modules allows you to categorise your
|
||||
sales and deliveries (packing lists) between different journals.
|
||||
sales and deliveries (picking lists) between different journals.
|
||||
This module is very helpful for bigger companies that
|
||||
works by departments.
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
</group>
|
||||
</page>
|
||||
<page string="Picking">
|
||||
<button string="Cancel Packing" name="button_picking_cancel" states="draft,open" type="object" icon="gtk-cancel"/>
|
||||
<button string="Cancel Picking" name="button_picking_cancel" states="draft,open" type="object" icon="gtk-cancel"/>
|
||||
<newline/>
|
||||
<field name="picking_stats_ids" colspan="4" nolabel="1"/>
|
||||
</page><page string="Notes">
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
<field name="model">sale_journal.invoice.type.stats</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Packing by invoice method">
|
||||
<tree string="Picking by invoice method">
|
||||
<field name="name"/>
|
||||
<field name="month"/>
|
||||
<field name="invoice_state"/>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
@@ -15,7 +15,7 @@
|
||||
# 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/>.
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
@@ -33,7 +33,7 @@ class res_partner(osv.osv):
|
||||
method=True,
|
||||
view_load=True,
|
||||
group_name="Accounting Properties",
|
||||
help="The type of journal used for sales and packing."),
|
||||
help="The type of journal used for sales and picking."),
|
||||
}
|
||||
res_partner()
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@ import tools
|
||||
|
||||
class report_sale_journal_invoice_type_stats(osv.osv):
|
||||
_name = "sale_journal.invoice.type.stats"
|
||||
_description = "Stats on packing by invoice method"
|
||||
_description = "Stats on picking by invoice method"
|
||||
_auto = False
|
||||
_columns = {
|
||||
'name': fields.char('Year',size=64,required=False, readonly=True),
|
||||
@@ -96,7 +96,7 @@ class report_sale_journal_picking(osv.osv):
|
||||
'count': fields.integer('# of Lines', readonly=True),
|
||||
'month':fields.selection([('01','January'), ('02','February'), ('03','March'), ('04','April'), ('05','May'), ('06','June'),
|
||||
('07','July'), ('08','August'), ('09','September'), ('10','October'), ('11','November'), ('12','December')],'Month',readonly=True),
|
||||
|
||||
|
||||
}
|
||||
_order = 'journal_id,name desc,price_total desc'
|
||||
def init(self, cr):
|
||||
|
||||
@@ -437,7 +437,7 @@ class stock_picking(osv.osv):
|
||||
|
||||
_columns = {
|
||||
'name': fields.char('Reference', size=64, select=True),
|
||||
'origin': fields.char('Origin', size=64, help="Reference of the document that produced this picking."),
|
||||
'origin': fields.char('Source document', size=64, help="Reference of the document that produced this picking."),
|
||||
'backorder_id': fields.many2one('stock.picking', 'Back Order', help="If the picking is splitted then the picking id in available state of move for this picking is stored in Backorder."),
|
||||
'type': fields.selection([('out', 'Sending Goods'), ('in', 'Getting Goods'), ('internal', 'Internal'), ('delivery', 'Delivery')], 'Shipping Type', required=True, select=True, help="Shipping type specify, goods coming in or going out."),
|
||||
'active': fields.boolean('Active', help="If the active field is set to true, it will allow you to hide the picking without removing it."),
|
||||
@@ -1065,14 +1065,14 @@ class stock_move(osv.osv):
|
||||
'note': fields.text('Notes'),
|
||||
|
||||
'state': fields.selection([('draft', 'Draft'), ('waiting', 'Waiting'), ('confirmed', 'Confirmed'), ('assigned', 'Available'), ('done', 'Done'), ('cancel', 'Cancelled')], 'State', readonly=True, select=True,
|
||||
help='When the stock move is created it is in the \'Draft\' state.\n After that it is set to \'Confirmed\' state.\n If stock is available state is set to \'Avaiable\'.\n When the packing it done the state is \'Done\'.\
|
||||
help='When the stock move is created it is in the \'Draft\' state.\n After that it is set to \'Confirmed\' state.\n If stock is available state is set to \'Avaiable\'.\n When the picking it done the state is \'Done\'.\
|
||||
\nThe state is \'Waiting\' if the move is waiting for another one.'),
|
||||
'price_unit': fields.float('Unit Price',
|
||||
digits=(16, int(config['price_accuracy']))),
|
||||
'company_id': fields.many2one('res.company', 'Company', required=True,select=1),
|
||||
'partner_id': fields.related('picking_id','address_id','partner_id',type='many2one', relation="res.partner", string="Partner"),
|
||||
'backorder_id': fields.related('picking_id','backorder_id',type='many2one', relation="stock.picking", string="Back Orders"),
|
||||
'origin': fields.related('picking_id','origin',type='char', size=64, relation="stock.picking", string="Origin"),
|
||||
'origin': fields.related('picking_id','origin',type='char', size=64, relation="stock.picking", string="Source document"),
|
||||
'move_stock_return_history': fields.many2many('stock.move', 'stock_move_return_history', 'move_id', 'return_move_id', 'Move Return History',readonly=True),
|
||||
}
|
||||
_constraints = [
|
||||
|
||||
@@ -612,7 +612,7 @@
|
||||
<button name="action_cancel" states="assigned" string="Cancel" type="object" icon="gtk-cancel"/>
|
||||
</group>
|
||||
</page>
|
||||
<page string="Return Packing History">
|
||||
<page string="Return Picking History">
|
||||
<field name="move_stock_return_history" nolabel="1"/>
|
||||
</page>
|
||||
</notebook>
|
||||
@@ -740,7 +740,7 @@
|
||||
<button name="action_cancel" states="assigned" string="Cancel" type="object" icon="gtk-cancel"/>
|
||||
</group>
|
||||
</page>
|
||||
<page string="Return Packing History">
|
||||
<page string="Return Picking History">
|
||||
<field name="move_stock_return_history" nolabel="1"/>
|
||||
</page>
|
||||
</notebook>
|
||||
@@ -899,7 +899,7 @@
|
||||
<button name="action_cancel" states="assigned" string="Cancel" type="object" icon="gtk-cancel"/>
|
||||
</group>
|
||||
</page>
|
||||
<page string="Return Packing History">
|
||||
<page string="Return Picking History">
|
||||
<field name="move_stock_return_history" nolabel="1"/>
|
||||
</page>
|
||||
</notebook>
|
||||
@@ -1067,7 +1067,7 @@
|
||||
<button name="action_cancel" states="assigned" string="Cancel" type="object" icon=""/>
|
||||
</group>
|
||||
</page>
|
||||
<page string="Return Packing History">
|
||||
<page string="Return Picking History">
|
||||
<field name="move_stock_return_history" nolabel="1"/>
|
||||
</page>
|
||||
</notebook>
|
||||
@@ -1256,7 +1256,7 @@
|
||||
<button name="action_done" states="assigned" string="Make Parcel" type="object" icon="gtk-jump-to"/>
|
||||
</group>
|
||||
</page>
|
||||
<page string="Return Packing History">
|
||||
<page string="Return Picking History">
|
||||
<field name="move_stock_return_history" nolabel="1"/>
|
||||
</page>
|
||||
</notebook>
|
||||
@@ -1381,7 +1381,7 @@
|
||||
<button name="action_done" states="assigned" string="Done" type="object" icon="gtk-jump-to"/>
|
||||
</group>
|
||||
</page>
|
||||
<page string="Return Packing History">
|
||||
<page string="Return Picking History">
|
||||
<field name="move_stock_return_history" nolabel="1"/>
|
||||
</page>
|
||||
</notebook>
|
||||
|
||||
@@ -40,11 +40,11 @@ def _get_returns(self, cr, uid, data, context):
|
||||
pool = pooler.get_pool(cr.dbname)
|
||||
pick_obj = pool.get('stock.picking')
|
||||
pick = pick_obj.browse(cr, uid, [data['id']])[0]
|
||||
|
||||
|
||||
if pick.state != 'done':
|
||||
raise wizard.except_wizard(_('Warning !'), _("The Packing is not completed yet!\nYou cannot return packing which is not in 'Done' state!"))
|
||||
raise wizard.except_wizard(_('Warning !'), _("The Picking is not completed yet!\nYou cannot return picking which is not in 'Done' state!"))
|
||||
res = {}
|
||||
|
||||
|
||||
return_history = {}
|
||||
for m_line in pick.move_lines:
|
||||
return_history[m_line.id] = 0
|
||||
@@ -59,10 +59,10 @@ def _get_returns(self, cr, uid, data, context):
|
||||
arch_lst.append('<field name="return%s"/>\n<newline/>' % (m.id,))
|
||||
fields['return%s' % m.id]={'string':m.name, 'type':'float', 'required':True, 'default':make_default(quantity - return_history[m.id])}
|
||||
res.setdefault('returns', []).append(m.id)
|
||||
|
||||
|
||||
if not res.get('returns',False):
|
||||
raise wizard.except_wizard(_('Warning!'),_('There is no product to return!'))
|
||||
|
||||
|
||||
arch_lst.append('<field name="invoice_state"/>\n<newline/>')
|
||||
if pick.invoice_state=='invoiced':
|
||||
new_invoice_state='2binvoiced'
|
||||
@@ -96,16 +96,16 @@ def _create_returns(self, cr, uid, data, context):
|
||||
'move_lines':[], 'state':'draft', 'type':new_type,
|
||||
'date':date_cur, 'invoice_state':data['form']['invoice_state'],})
|
||||
new_location=move.location_dest_id.id
|
||||
|
||||
|
||||
new_qty = data['form']['return%s' % move.id]
|
||||
returned_qty = move.product_qty
|
||||
|
||||
|
||||
for rec in move.move_stock_return_history:
|
||||
returned_qty -= rec.product_qty
|
||||
|
||||
|
||||
if returned_qty != new_qty:
|
||||
set_invoice_state_to_none = False
|
||||
|
||||
|
||||
new_move=move_obj.copy(cr, uid, move.id, {
|
||||
'product_qty': new_qty,
|
||||
'product_uos_qty': uom_obj._compute_qty(cr, uid, move.product_uom.id,
|
||||
@@ -114,10 +114,10 @@ def _create_returns(self, cr, uid, data, context):
|
||||
'location_id':new_location, 'location_dest_id':move.location_id.id,
|
||||
'date':date_cur, 'date_planned':date_cur,})
|
||||
move_obj.write(cr, uid, [move.id], {'move_stock_return_history':[(4,new_move)]})
|
||||
|
||||
|
||||
if set_invoice_state_to_none:
|
||||
pick_obj.write(cr, uid, [pick.id], {'invoice_state':'none'})
|
||||
|
||||
|
||||
if new_picking:
|
||||
wf_service = netsvc.LocalService("workflow")
|
||||
if new_picking:
|
||||
|
||||
@@ -28,13 +28,61 @@ import time
|
||||
|
||||
class survey_browse_response(report_rml):
|
||||
def create(self, cr, uid, ids, datas, context):
|
||||
rml ="""<document filename="Survey Analysis Report.pdf">
|
||||
<template pageSize="(595.0,842.0)" title="Test" author="Martin Simon" allowSplitting="20">
|
||||
_divide_columns_for_matrix = 0.7
|
||||
_display_ans_in_rows = 5
|
||||
_pageSize = ('29.7cm','21.1cm')
|
||||
if datas.has_key('form') and datas['form']['orientation']=='vertical':
|
||||
if datas['form']['paper_size']=='letter':
|
||||
_pageSize = ('21.6cm','27.9cm')
|
||||
elif datas['form']['paper_size']=='legal':
|
||||
_pageSize = ('21.6cm','35.6cm')
|
||||
elif datas['form']['paper_size']=='a4':
|
||||
_pageSize = ('21.1cm','29.7cm')
|
||||
elif datas.has_key('form') and datas['form']['orientation']=='horizontal':
|
||||
if datas['form']['paper_size']=='letter':
|
||||
_pageSize = ('27.9cm','21.6cm')
|
||||
elif datas['form']['paper_size']=='legal':
|
||||
_pageSize = ('35.6cm','21.6cm')
|
||||
elif datas['form']['paper_size']=='a4':
|
||||
_pageSize = ('29.7cm','21.1cm')
|
||||
|
||||
_frame_width = tools.ustr(_pageSize[0])
|
||||
_frame_height = tools.ustr(float(_pageSize[1].replace('cm','')) - float(1.90))+'cm'
|
||||
_tbl_widths = tools.ustr(float(_pageSize[0].replace('cm','')) - float(2.10))+'cm'
|
||||
rml ="""<document filename="Survey Response Report.pdf">
|
||||
<template pageSize="("""+_pageSize[0]+""","""+_pageSize[1]+""")" title='Survey Response.pdf' author="Martin Simon" allowSplitting="20" >
|
||||
<pageTemplate id="first">
|
||||
<frame id="first" x1="57.0" y1="57.0" width="481" height="728"/>
|
||||
</pageTemplate>
|
||||
</template>
|
||||
<frame id="first" x1="0.0cm" y1="1.0cm" width='"""+_frame_width+"""' height='"""+_frame_height+"""'/>
|
||||
<pageGraphics>
|
||||
<lineMode width="1.0"/>
|
||||
<lines>1.0cm """+tools.ustr(float(_pageSize[1].replace('cm','')) - float(1.00))+'cm'+""" """+tools.ustr(float(_pageSize[0].replace('cm','')) - float(1.00))+'cm'+""" """+tools.ustr(float(_pageSize[1].replace('cm','')) - float(1.00))+'cm'+"""</lines>
|
||||
<lines>1.0cm """+tools.ustr(float(_pageSize[1].replace('cm','')) - float(1.00))+'cm'+""" 1.0cm 1.00cm</lines>
|
||||
<lines>"""+tools.ustr(float(_pageSize[0].replace('cm','')) - float(1.00))+'cm'+""" """+tools.ustr(float(_pageSize[1].replace('cm','')) - float(1.00))+'cm'+""" """+tools.ustr(float(_pageSize[0].replace('cm','')) - float(1.00))+'cm'+""" 1.00cm</lines>
|
||||
<lines>1.0cm 1.00cm """+tools.ustr(float(_pageSize[0].replace('cm','')) - float(1.00))+'cm'+""" 1.00cm</lines>"""
|
||||
if datas.has_key('form') and datas['form']['page_number']:
|
||||
rml +="""
|
||||
<fill color="gray"/>
|
||||
<setFont name="Helvetica" size="10"/>
|
||||
<drawRightString x='"""+tools.ustr(float(_pageSize[0].replace('cm','')) - float(1.00))+'cm'+"""' y="0.6cm">Page : <pageNumber/> </drawRightString>"""
|
||||
rml +="""</pageGraphics>
|
||||
</pageTemplate>
|
||||
</template>
|
||||
<stylesheet>
|
||||
<blockTableStyle id="tbl_white">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,0" stop="-1,-1"/>
|
||||
<lineStyle kind="LINEBEFORE" colorName="#777777" start="0,0" stop="-1,-1"/>
|
||||
<lineStyle kind="LINEAFTER" colorName="#777777" start="0,0" stop="-1,-1"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="tbl_gainsboro">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,0" stop="-1,-1"/>
|
||||
<lineStyle kind="LINEBEFORE" colorName="#777777" start="0,0" stop="-1,-1"/>
|
||||
<lineStyle kind="LINEAFTER" colorName="#777777" start="0,0" stop="-1,-1"/>
|
||||
<blockBackground colorName="gainsboro" start="0,0" stop="-1,-1"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="ans_tbl_white">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
@@ -46,7 +94,7 @@ class survey_browse_response(report_rml):
|
||||
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,0" stop="-1,-1"/>
|
||||
<blockBackground colorName="gainsboro" start="0,0" stop="-1,-1"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table1">
|
||||
<blockTableStyle id="simple_table">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#e6e6e6"/>
|
||||
@@ -91,22 +139,25 @@ class survey_browse_response(report_rml):
|
||||
<blockTableStyle id="Table_heading">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="0,0" stop="-1,-1"/>
|
||||
<lineStyle kind="LINEAFTER" colorName="#e6e6e6" start="0,0" stop="-1,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,0" stop="-1,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="0,0" stop="-1,-1"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table_head_2">
|
||||
<blockTableStyle id="title_tbl">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="0,0" stop="-1,-1"/>
|
||||
<lineStyle kind="LINEAFTER" colorName="#e6e6e6" start="0,0" stop="-1,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,0" stop="-1,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="0,0" stop="-1,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#000000" start="0,-1" stop="1,-1"/>
|
||||
<blockBackground colorName="black" start="0,0" stop="-1,-1"/>
|
||||
<blockTextColor colorName="white" start="0,0" stop="0,0"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="page_tbl">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#000000" start="0,-1" stop="1,-1"/>
|
||||
<blockBackground colorName="gray" start="0,0" stop="-1,-1"/>
|
||||
<blockTextColor colorName="white" start="0,0" stop="0,0"/>
|
||||
</blockTableStyle>
|
||||
<initialize>
|
||||
<paraStyle name="all" alignment="justify"/>
|
||||
</initialize>
|
||||
<paraStyle name="title" fontName="helvetica-bold" fontSize="18.0" leftIndent="0.0" textColor="white"/>
|
||||
<paraStyle name="answer_right" alignment="RIGHT" fontName="helvetica" fontSize="09.0" leftIndent="2.0"/>
|
||||
<paraStyle name="Standard1" fontName="helvetica-bold" alignment="RIGHT" fontSize="09.0"/>
|
||||
<paraStyle name="Standard" alignment="LEFT" fontName="Helvetica-Bold" fontSize="11.0"/>
|
||||
@@ -123,107 +174,96 @@ class survey_browse_response(report_rml):
|
||||
<paraStyle name="P1" fontName="Helvetica" fontSize="9.0" leading="12" spaceBefore="0.0" spaceAfter="1.0"/>
|
||||
<paraStyle name="terp_tblheader_Details" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="6.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="terp_default_9" fontName="Helvetica" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_tblheader_General_Centre" fontName="Helvetica-Bold" fontSize="9.0" leading="10" alignment="CENTER" spaceBefore="6.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="terp_default_Centre_8" fontName="Helvetica" fontSize="9.0" leading="10" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_tblheader_General_Centre_simple" fontName="Helvetica" fontSize="10.0" leading="10" alignment="LEFT" spaceBefore="6.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="terp_tblheader_General_Centre" fontName="Helvetica-Bold" fontSize="10.0" leading="10" alignment="LEFT" spaceBefore="6.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="terp_tblheader_General_right_simple" fontName="Helvetica" fontSize="10.0" leading="10" alignment="RIGHT" spaceBefore="6.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="terp_tblheader_General_right" fontName="Helvetica-Bold" fontSize="10.0" leading="10" alignment="RIGHT" spaceBefore="6.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="descriptive_text" fontName="helvetica-bold" fontSize="18.0" leftIndent="0.0" textColor="white"/>
|
||||
<paraStyle name="descriptive_text_heading" fontName="helvetica-bold" fontSize="18.0" alignment="RIGHT" leftIndent="0.0" textColor="white"/>
|
||||
</stylesheet>
|
||||
<images/>
|
||||
<story>
|
||||
<para style="Title"><u>Browse Responses </u></para>
|
||||
<para style="Standard"><font></font></para>
|
||||
<para style="P2">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
"""
|
||||
<story>"""
|
||||
surv_resp_obj = pooler.get_pool(cr.dbname).get('survey.response')
|
||||
if datas.has_key('form') and datas['form'].has_key('response_ids'):
|
||||
response_id = datas['form']['response_ids'][0][2]
|
||||
elif context.has_key('response_id'):
|
||||
response_id = [int(context['response_id'])]
|
||||
else:
|
||||
response_id = surv_resp_obj.search(cr, uid, [('survey_id','in',ids)])
|
||||
response_id = surv_resp_obj.search(cr, uid, [('survey_id', 'in', ids)])
|
||||
surv_resp_line_obj = pooler.get_pool(cr.dbname).get('survey.response.line')
|
||||
surv_obj = pooler.get_pool(cr.dbname).get('survey')
|
||||
surv_ans_obj = pooler.get_pool(cr.dbname).get('survey.answer')
|
||||
for response in surv_resp_obj.browse(cr,uid, response_id):
|
||||
for response in surv_resp_obj.browse(cr, uid, response_id):
|
||||
for survey in surv_obj.browse(cr, uid, [response.survey_id.id]):
|
||||
tbl_width = float(_tbl_widths.replace('cm', ''))
|
||||
colwidth = "4.6cm,5cm," + str(tbl_width - 16.4) +"cm,4cm,3cm"
|
||||
rml += """<blockTable colWidths='""" + colwidth + """' style="Table_heading">
|
||||
<tr>
|
||||
<td><para style="terp_tblheader_General_Centre">Response Create Date:- </para></td>
|
||||
<td><para style="terp_tblheader_General_Centre_simple">""" + to_xml(time.strftime('%d-%m-%Y %I:%M:%S %p', time.strptime(response.date_create.split('.')[0], '%Y-%m-%d %H:%M:%S'))) + """</para></td>
|
||||
<td><para style="terp_tblheader_General_Centre"></para></td>
|
||||
<td><para style="terp_tblheader_General_right">Response By:- </para></td>
|
||||
<td><para style="terp_tblheader_General_right_simple">""" + to_xml(response.user_id.name) + """</para></td>
|
||||
</tr>
|
||||
</blockTable><para style="P2"></para>"""
|
||||
status = "Not Finished"
|
||||
if response.state == "done":
|
||||
status = "Finished"
|
||||
rml += """<blockTable colWidths="210.0,120.0,100.0,70" style="Table_heading">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="terp_tblheader_General_Centre">Survey Title </para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_General_Centre">Response Create Date </para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_General_Centre">Response By </para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_General_Centre">Status</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<blockTable colWidths="210.0,120.0,100.0,70" style="Table_head_2">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="terp_default_Centre_8">""" + to_xml(tools.ustr(survey.title)) + """</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Centre_8">""" + to_xml(time.strftime('%d-%m-%Y %I:%M:%S %p', time.strptime(response.date_create.split('.')[0], '%Y-%m-%d %H:%M:%S'))) + """</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Centre_8">""" + to_xml(response.user_id.name) + """</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Centre_8">""" + status + """</para>
|
||||
</td>
|
||||
</tr>
|
||||
if response.state == "done": status = "Finished"
|
||||
colwidth = str(tbl_width - 7) + "cm,"
|
||||
colwidth += "7cm"
|
||||
rml += """<blockTable colWidths='""" + str(colwidth) + """' style="title_tbl">
|
||||
<tr>
|
||||
<td><para style="title">""" + to_xml(tools.ustr(survey.title)) + """</para><para style="P2"><font></font></para></td>
|
||||
<td><para style="descriptive_text_heading">Status :- """ + to_xml(tools.ustr(status)) + """</para><para style="P2"><font></font></para></td>
|
||||
</tr>
|
||||
</blockTable>"""
|
||||
if survey.note:
|
||||
rml += """<blockTable colWidths='""" + _tbl_widths + """' style="note_table">
|
||||
<tr><td><para style="descriptive_text">""" + to_xml(tools.ustr(survey.note)) + """</para><para style="P2"><font></font></para></td></tr>
|
||||
</blockTable>"""
|
||||
for page in survey.page_ids:
|
||||
rml += """<para style="P2"></para>
|
||||
<blockTable colWidths="500" style="Table4">
|
||||
<tr>
|
||||
<td><para style="page">Page :- """ + to_xml(tools.ustr(page.title)) + """</para></td>
|
||||
</tr>
|
||||
</blockTable>"""
|
||||
rml += """<blockTable colWidths='""" + str(_tbl_widths) + """' style="page_tbl">
|
||||
<tr><td><para style="page">Page :- """ + to_xml(tools.ustr(page.title)) + """</para></td></tr>
|
||||
</blockTable>"""
|
||||
if page.note:
|
||||
rml += """<para style="P2"></para>
|
||||
<blockTable colWidths="500" style="note_table">
|
||||
<tr>
|
||||
<td><para style="response">""" + to_xml(tools.ustr(page.note)) + """</para></td>
|
||||
</tr>
|
||||
</blockTable>"""
|
||||
<blockTable colWidths='""" + str(_tbl_widths) + """' style="note_table">
|
||||
<tr><td><para style="response">""" + to_xml(tools.ustr(page.note)) + """</para></td></tr>
|
||||
</blockTable>"""
|
||||
for que in page.question_ids:
|
||||
rml += """<para style="P2"></para>
|
||||
<blockTable colWidths="500" style="Table5">
|
||||
<tr>
|
||||
<td><para style="question">Que : """ + to_xml(to_xml(que.question)) + """</para></td>
|
||||
</tr>
|
||||
</blockTable>"""
|
||||
answer = surv_resp_line_obj.browse(cr,uid, surv_resp_line_obj.search(cr, uid, [('question_id','=',que.id),('response_id','=',response.id)]))
|
||||
<blockTable colWidths='""" + str(_tbl_widths) + """' style="Table5">
|
||||
<tr><td><para style="question">Que : """ + to_xml(to_xml(que.question)) + """</para></td></tr>
|
||||
</blockTable>"""
|
||||
answer = surv_resp_line_obj.browse(cr ,uid, surv_resp_line_obj.search(cr, uid, [('question_id', '=', que.id),('response_id', '=', response.id)]))
|
||||
if que.type in ['descriptive_text']:
|
||||
rml +="""<blockTable colWidths="500" style="Table1">
|
||||
<tr> <td> <para style="response">""" + to_xml(tools.ustr(que.descriptive_text)) + """</para></td> </tr>
|
||||
</blockTable>"""
|
||||
rml +="""<blockTable colWidths='""" + str(_tbl_widths) + """' style="simple_table">
|
||||
<tr><td> <para style="response">""" + to_xml(tools.ustr(que.descriptive_text)) + """</para></td> </tr>
|
||||
</blockTable>"""
|
||||
elif que.type in ['table']:
|
||||
if len(answer) and answer[0].state == "done":
|
||||
col_heading = pooler.get_pool(cr.dbname).get('survey.tbl.column.heading')
|
||||
cols_widhts = []
|
||||
for col in range(0, len(que.column_heading_ids)):
|
||||
cols_widhts.append(float(500 / (len(que.column_heading_ids))))
|
||||
colWidths = ",".join(map(tools.ustr, cols_widhts))
|
||||
tbl_width = float(_tbl_widths.replace('cm', ''))
|
||||
for i in range(0, len(que.column_heading_ids)):
|
||||
cols_widhts.append(tbl_width / float(len(que.column_heading_ids)))
|
||||
colWidths = "cm,".join(map(tools.ustr, cols_widhts))
|
||||
colWidths = colWidths + 'cm'
|
||||
matrix_ans = []
|
||||
rml +="""<para style="P2"></para><blockTable colWidths=" """ + str(colWidths) + """ " style="Table41"><tr>"""
|
||||
for col in que.column_heading_ids:
|
||||
if col.title not in matrix_ans:
|
||||
matrix_ans.append(col.title)
|
||||
rml +="""<td> <para style="terp_tblheader_Details">""" + to_xml(tools.ustr(col.title)) +"""</para></td>"""
|
||||
rml += """<td> <para style="terp_tblheader_Details">""" + to_xml(tools.ustr(col.title)) +"""</para></td>"""
|
||||
rml += """</tr></blockTable>"""
|
||||
i = 0
|
||||
for row in range(0, que.no_of_rows):
|
||||
rml +="""<blockTable colWidths=" """ + str(colWidths) + """ " style="Table51"><tr>"""
|
||||
table_data = col_heading.browse(cr, uid, col_heading.search(cr, uid, [('response_table_id', '=', answer[0].id),('name','=',row)]))
|
||||
if i%2!=0:
|
||||
style='tbl_white'
|
||||
else:
|
||||
style='tbl_gainsboro'
|
||||
i+=1
|
||||
rml += """<blockTable colWidths=" """ + str(colWidths) + """ " style='"""+style+"""'><tr>"""
|
||||
table_data = col_heading.browse(cr, uid, col_heading.search(cr, uid, [('response_table_id', '=', answer[0].id), ('name', '=', row)]))
|
||||
for column in matrix_ans:
|
||||
value = False
|
||||
for col in table_data:
|
||||
@@ -235,19 +275,15 @@ class survey_browse_response(report_rml):
|
||||
rml += """<td><para style="terp_default_9"><font color ="white"> </font></para></td>"""
|
||||
rml += """</tr></blockTable>"""
|
||||
else:
|
||||
rml +="""<blockTable colWidths="500" style="Table1">
|
||||
<tr> <td> <para style="response">No Response</para></td> </tr>
|
||||
</blockTable>"""
|
||||
rml +="""<blockTable colWidths='""" + str(_tbl_widths) + """' style="simple_table">
|
||||
<tr><td> <para style="response">No Response</para></td> </tr>
|
||||
</blockTable>"""
|
||||
elif que.type in ['multiple_choice_only_one_ans','multiple_choice_multiple_ans']:
|
||||
if len(answer) and answer[0].state == "done":
|
||||
ans_list = []
|
||||
for ans in answer[0].response_answer_ids:
|
||||
ans_list.append(to_xml(tools.ustr(ans.answer_id.answer)))
|
||||
|
||||
answer_choice=[]
|
||||
_divide_columns_for_matrix = 20
|
||||
_display_ans_in_rows = 5
|
||||
_tbl_widths = 500
|
||||
for ans in que['answer_choice_ids']:
|
||||
answer_choice.append(to_xml(tools.ustr((ans.answer))))
|
||||
|
||||
@@ -257,38 +293,35 @@ class survey_browse_response(report_rml):
|
||||
divide_list = divide_list(answer_choice,_display_ans_in_rows)
|
||||
for lst in divide_list:
|
||||
if que.type == 'multiple_choice_multiple_ans':
|
||||
if len(lst)<>0 and len(lst)<>int(round(float(len(answer_choice))/_display_ans_in_rows,0)):
|
||||
if len(lst) <> 0 and len(lst) <> int(round(float(len(answer_choice)) / _display_ans_in_rows, 0)):
|
||||
lst.append('')
|
||||
if not lst:
|
||||
del divide_list[divide_list.index(lst):]
|
||||
for divide in divide_list:
|
||||
a = _divide_columns_for_matrix*len(divide)
|
||||
b = float(_tbl_widths) - float(a)
|
||||
cols_widhts=[]
|
||||
for div in range(0,len(divide)):
|
||||
cols_widhts.append(float(a/len(divide)))
|
||||
cols_widhts.append(float(b/len(divide)))
|
||||
colWidths = ",".join(map(tools.ustr, cols_widhts))
|
||||
rml+="""<blockTable colWidths=" """ + colWidths + """ " style="Table1">
|
||||
<tr>"""
|
||||
for div in range(0,len(divide)):
|
||||
if divide[div]!='':
|
||||
a = _divide_columns_for_matrix * len(divide)
|
||||
b = float(_tbl_widths.replace('cm', '')) - float(a)
|
||||
cols_widhts = []
|
||||
for div in range(0, len(divide)):
|
||||
cols_widhts.append(float(a / len(divide)))
|
||||
cols_widhts.append(float(b / len(divide)))
|
||||
colWidths = "cm,".join(map(tools.ustr, cols_widhts))
|
||||
colWidths = colWidths +'cm'
|
||||
rml += """<blockTable colWidths=" """ + colWidths + """ " style="simple_table"><tr>"""
|
||||
for div in range(0, len(divide)):
|
||||
if divide[div] != '':
|
||||
if que.type == 'multiple_choice_multiple_ans':
|
||||
if divide[div] in ans_list:
|
||||
rml += """<td><illustration><fill color="white"/>
|
||||
<rect x="0.1cm" y="-0.45cm" width="0.5 cm" height="0.5cm" fill="yes" stroke="yes" round="0.1cm"/>
|
||||
<fill color="gray"/>
|
||||
<rect x="0.2cm" y="-0.35cm" width="0.3 cm" height="0.3cm" fill="yes" stroke="no" round="0.1cm"/>
|
||||
</illustration></td>
|
||||
<td><para style="answer">""" + divide[div] + """</para></td>"""
|
||||
<rect x="0.1cm" y="-0.45cm" width="0.5 cm" height="0.5cm" fill="yes" stroke="yes" round="0.1cm"/>
|
||||
<fill color="gray"/>
|
||||
<rect x="0.2cm" y="-0.35cm" width="0.3 cm" height="0.3cm" fill="yes" stroke="no" round="0.1cm"/>
|
||||
</illustration></td>
|
||||
<td><para style="answer">""" + divide[div] + """</para></td>"""
|
||||
else:
|
||||
rml+="""
|
||||
<td>
|
||||
<illustration>
|
||||
rml+="""<td><illustration>
|
||||
<rect x="0.1cm" y="-0.45cm" width="0.5 cm" height="0.5cm" fill="no" stroke="yes" round="0.1cm"/>
|
||||
</illustration>
|
||||
</td>
|
||||
<td><para style="answer">""" + divide[div] + """</para></td>"""
|
||||
</illustration></td>
|
||||
<td><para style="answer">""" + divide[div] + """</para></td>"""
|
||||
else:
|
||||
if divide[div] in ans_list:
|
||||
rml += """<td><illustration><fill color="white"/>
|
||||
@@ -298,154 +331,162 @@ class survey_browse_response(report_rml):
|
||||
</illustration></td>
|
||||
<td><para style="answer">""" + divide[div] + """</para></td>"""
|
||||
else:
|
||||
rml+="""
|
||||
<td>
|
||||
<illustration>
|
||||
<circle x="0.3cm" y="-0.18cm" radius="0.23 cm" fill="no" stroke="yes" round="0.1cm"/>
|
||||
</illustration>
|
||||
</td>
|
||||
<td><para style="answer">""" + divide[div] + """</para></td>"""
|
||||
rml += """<td>
|
||||
<illustration>
|
||||
<circle x="0.3cm" y="-0.18cm" radius="0.23 cm" fill="no" stroke="yes" round="0.1cm"/>
|
||||
</illustration>
|
||||
</td>
|
||||
<td><para style="answer">""" + divide[div] + """</para></td>"""
|
||||
else:
|
||||
rml+="""
|
||||
<td></td>
|
||||
<td></td>"""
|
||||
rml+="""</tr></blockTable>"""
|
||||
rml += """<td></td><td></td>"""
|
||||
rml += """</tr></blockTable>"""
|
||||
if que.is_comment_require and answer[0].comment:
|
||||
rml+="""<blockTable colWidths="500" style="Table1"><tr>
|
||||
rml += """<blockTable colWidths='""" + str(_tbl_widths) + """' style="simple_table"><tr>
|
||||
<td><para style="answer">""" + to_xml(tools.ustr(answer[0].comment)) + """</para></td></tr></blockTable>"""
|
||||
|
||||
else:
|
||||
rml +="""<blockTable colWidths="500" style="Table1">
|
||||
<tr> <td> <para style="response">No Response</para></td> </tr>
|
||||
</blockTable>"""
|
||||
rml += """<blockTable colWidths='""" + str(_tbl_widths) + """' style="simple_table">
|
||||
<tr><td> <para style="response">No Response</para></td> </tr>
|
||||
</blockTable>"""
|
||||
elif que.type in ['multiple_textboxes_diff_type','multiple_textboxes','date','date_and_time','numerical_textboxes','multiple_textboxes_diff_type']:
|
||||
if len(answer) and answer[0].state == "done":
|
||||
cols_widhts = []
|
||||
cols_widhts.append(float(_tbl_widths.replace('cm',''))/2)
|
||||
cols_widhts.append(float(_tbl_widths.replace('cm',''))/2)
|
||||
colWidths = "cm,".join(map(tools.ustr, cols_widhts))
|
||||
colWidths = tools.ustr(colWidths) + 'cm'
|
||||
answer_list = {}
|
||||
for ans in answer[0].response_answer_ids:
|
||||
answer_list[ans.answer_id.answer] = ans.answer
|
||||
for que_ans in que['answer_choice_ids']:
|
||||
if que_ans.answer in answer_list:
|
||||
rml +="""<blockTable colWidths="200,300" style="Table1">
|
||||
<tr> <td> <para style="response">""" + to_xml(tools.ustr(que_ans.answer)) + """</para></td>
|
||||
<td> <para style="response">""" + to_xml(tools.ustr(answer_list[que_ans.answer])) + """</para></td></tr>
|
||||
</blockTable>"""
|
||||
rml += """<blockTable colWidths='""" + str(colWidths) + """' style="simple_table">
|
||||
<tr> <td> <para style="response">""" + to_xml(tools.ustr(que_ans.answer)) + """</para></td>
|
||||
<td> <para style="response">""" + to_xml(tools.ustr(answer_list[que_ans.answer])) + """</para></td></tr>
|
||||
</blockTable>"""
|
||||
else:
|
||||
rml +="""<blockTable colWidths="200,300" style="Table1">
|
||||
<tr> <td> <para style="response">""" + to_xml(tools.ustr(que_ans.answer)) + """</para></td>
|
||||
<td> <para style="response"></para></td></tr>
|
||||
</blockTable>"""
|
||||
rml += """<blockTable colWidths='""" + str(colWidths) + """' style="simple_table">
|
||||
<tr> <td> <para style="response">""" + to_xml(tools.ustr(que_ans.answer)) + """</para></td>
|
||||
<td> <para style="response"></para></td></tr>
|
||||
</blockTable>"""
|
||||
else:
|
||||
rml +="""<blockTable colWidths="500" style="Table1">
|
||||
<tr> <td> <para style="response">No Response</para></td> </tr>
|
||||
</blockTable>"""
|
||||
rml += """<blockTable colWidths='""" + str(_tbl_widths) + """' style="simple_table">
|
||||
<tr> <td> <para style="response">No Response</para></td> </tr>
|
||||
</blockTable>"""
|
||||
elif que.type in ['single_textbox']:
|
||||
if len(answer) and answer[0].state == "done":
|
||||
rml +="""<blockTable colWidths="500" style="Table1">
|
||||
<tr> <td> <para style="response">""" + to_xml(tools.ustr(answer[0].single_text)) + """</para></td></tr>
|
||||
</blockTable>"""
|
||||
rml += """<blockTable colWidths='""" + str(_tbl_widths) + """' style="simple_table">
|
||||
<tr> <td> <para style="response">""" + to_xml(tools.ustr(answer[0].single_text)) + """</para></td></tr>
|
||||
</blockTable>"""
|
||||
else:
|
||||
rml +="""<blockTable colWidths="500" style="Table1">
|
||||
<tr> <td> <para style="response">No Response</para></td> </tr>
|
||||
</blockTable>"""
|
||||
rml += """<blockTable colWidths='""" + str(_tbl_widths) + """' style="simple_table">
|
||||
<tr> <td> <para style="response">No Response</para></td> </tr>
|
||||
</blockTable>"""
|
||||
elif que.type in ['comment']:
|
||||
if len(answer) and answer[0].state == "done":
|
||||
rml +="""<blockTable colWidths="500" style="Table1">
|
||||
<tr> <td> <para style="response">""" + to_xml(tools.ustr(answer[0].comment)) + """</para></td></tr>
|
||||
</blockTable>"""
|
||||
rml += """<blockTable colWidths='""" + str(_tbl_widths) + """' style="simple_table">
|
||||
<tr> <td> <para style="response">""" + to_xml(tools.ustr(answer[0].comment)) + """</para></td></tr>
|
||||
</blockTable>"""
|
||||
else:
|
||||
rml +="""<blockTable colWidths="500" style="Table1">
|
||||
<tr> <td> <para style="response">No Response</para></td> </tr>
|
||||
</blockTable>"""
|
||||
elif que.type in ['matrix_of_choices_only_one_ans','matrix_of_choices_only_multi_ans','rating_scale','matrix_of_drop_down_menus']:
|
||||
rml += """<blockTable colWidths='""" + str(_tbl_widths) + """' style="simple_table">
|
||||
<tr> <td> <para style="response">No Response</para></td> </tr>
|
||||
</blockTable>"""
|
||||
elif que.type in ['matrix_of_choices_only_one_ans','matrix_of_choices_only_multi_ans', 'rating_scale', 'matrix_of_drop_down_menus']:
|
||||
if len(answer) and answer[0].state == "done":
|
||||
if que.type in ['matrix_of_choices_only_one_ans','rating_scale'] and que.comment_column:
|
||||
if que.type in ['matrix_of_choices_only_one_ans', 'rating_scale'] and que.comment_column:
|
||||
pass
|
||||
cols_widhts = []
|
||||
cols_widhts.append(200)
|
||||
len_col_heading = len(que.column_heading_ids)
|
||||
for col in range(0, len_col_heading):
|
||||
cols_widhts.append(float(300 / len_col_heading))
|
||||
tmp=0.0
|
||||
sum = 0.0
|
||||
if len(que.column_heading_ids):
|
||||
cols_widhts.append(float(_tbl_widths.replace('cm','')) / float(2.0))
|
||||
for col in que.column_heading_ids:
|
||||
cols_widhts.append(float((float(_tbl_widths.replace('cm','')) / float(2.0)) / len(que.column_heading_ids)))
|
||||
else:
|
||||
cols_widhts.append(float(_tbl_widths.replace('cm','')))
|
||||
tmp = 0.0
|
||||
sum = 0.0
|
||||
i = 0
|
||||
if que.type in ['matrix_of_choices_only_one_ans','rating_scale'] and que.comment_column:
|
||||
for col in cols_widhts:
|
||||
if i==0:
|
||||
cols_widhts[i] = cols_widhts[i]/2.0
|
||||
if i == 0:
|
||||
cols_widhts[i] = cols_widhts[i] / 2.0
|
||||
tmp = cols_widhts[i]
|
||||
sum += col
|
||||
i+=1
|
||||
cols_widhts.append(round(tmp,2))
|
||||
colWidths = ",".join(map(tools.ustr, cols_widhts))
|
||||
matrix_ans = [(0,''),]
|
||||
i += 1
|
||||
cols_widhts.append(round(tmp, 2))
|
||||
colWidths = "cm,".join(map(tools.ustr, cols_widhts))
|
||||
colWidths = colWidths + 'cm'
|
||||
matrix_ans = [(0, ''),]
|
||||
for col in que.column_heading_ids:
|
||||
if col.title not in matrix_ans:
|
||||
matrix_ans.append((col.id,col.title))
|
||||
matrix_ans.append((col.id, col.title))
|
||||
len_matrix = len(matrix_ans)
|
||||
if que.type in ['matrix_of_choices_only_one_ans','rating_scale'] and que.comment_column:
|
||||
if que.type in ['matrix_of_choices_only_one_ans', 'rating_scale'] and que.comment_column:
|
||||
matrix_ans.append(que.column_name)
|
||||
rml+="""<blockTable colWidths=" """ + colWidths + """ " style="Table1"><tr>"""
|
||||
rml += """<blockTable colWidths=" """ + colWidths + """ " style="simple_table"><tr>"""
|
||||
for mat_col in range(0, len(matrix_ans)):
|
||||
rml+="""<td><para style="response">""" + to_xml(tools.ustr(matrix_ans[mat_col][1])) + """</para></td>"""
|
||||
rml +="""</tr>"""
|
||||
rml+="""</blockTable>"""
|
||||
i=0
|
||||
for ans in que.answer_choice_ids:
|
||||
if i%2!=0:
|
||||
style='ans_tbl_white'
|
||||
if i%2 != 0:
|
||||
style = 'ans_tbl_white'
|
||||
else:
|
||||
style='ans_tbl_gainsboro'
|
||||
i+=1
|
||||
rml+="""<blockTable colWidths=" """ + colWidths + """ " style='"""+style+"""'>
|
||||
<tr><td><para style="response">""" + to_xml(tools.ustr(ans.answer)) + """</para></td>"""
|
||||
style = 'ans_tbl_gainsboro'
|
||||
i += 1
|
||||
rml += """<blockTable colWidths=" """ + colWidths + """ " style='"""+style+"""'>
|
||||
<tr><td><para style="response">""" + to_xml(tools.ustr(ans.answer)) + """</para></td>"""
|
||||
comment_value = ""
|
||||
for mat_col in range(1, len_matrix):
|
||||
value = """"""
|
||||
for res_ans in answer[0].response_answer_ids:
|
||||
if res_ans.answer_id.id == ans.id and res_ans.column_id.id == matrix_ans[mat_col][0]:
|
||||
comment_value = to_xml(tools.ustr(res_ans.comment_field))
|
||||
comment_value = to_xml(tools.ustr(res_ans.comment_field))
|
||||
if que.type in ['matrix_of_drop_down_menus']:
|
||||
value = """<para style="response">""" + to_xml(tools.ustr(res_ans.value_choice)) + """</para>"""
|
||||
elif que.type in ['matrix_of_choices_only_one_ans','rating_scale']:
|
||||
elif que.type in ['matrix_of_choices_only_one_ans', 'rating_scale']:
|
||||
value = """<illustration><fill color="white"/>
|
||||
<circle x="0.3cm" y="-0.18cm" radius="0.22 cm" fill="yes" stroke="yes"/>
|
||||
<fill color="gray"/>
|
||||
<circle x="0.3cm" y="-0.18cm" radius="0.10 cm" fill="yes" stroke="no"/>
|
||||
</illustration>"""
|
||||
<circle x="0.3cm" y="-0.18cm" radius="0.22 cm" fill="yes" stroke="yes"/>
|
||||
<fill color="gray"/>
|
||||
<circle x="0.3cm" y="-0.18cm" radius="0.10 cm" fill="yes" stroke="no"/>
|
||||
</illustration>"""
|
||||
elif que.type in ['matrix_of_choices_only_multi_ans']:
|
||||
value = """<illustration>
|
||||
<fill color="white"/>
|
||||
<rect x="0.1cm" y="-0.45cm" width="0.5 cm" height="0.5cm" fill="yes" stroke="yes" round="0.1cm"/>
|
||||
<fill color="gray"/>
|
||||
<rect x="0.2cm" y="-0.35cm" width="0.3 cm" height="0.3cm" fill="yes" stroke="no" round="0.1cm"/>
|
||||
</illustration>"""
|
||||
<fill color="white"/>
|
||||
<rect x="0.1cm" y="-0.45cm" width="0.5 cm" height="0.5cm" fill="yes" stroke="yes" round="0.1cm"/>
|
||||
<fill color="gray"/>
|
||||
<rect x="0.2cm" y="-0.35cm" width="0.3 cm" height="0.3cm" fill="yes" stroke="no" round="0.1cm"/>
|
||||
</illustration>"""
|
||||
break
|
||||
else:
|
||||
if que.type in ['matrix_of_drop_down_menus']:
|
||||
value = """"""
|
||||
elif que.type in ['matrix_of_choices_only_one_ans','rating_scale']:
|
||||
value = """<illustration><fill color="white"/>
|
||||
<circle x="0.3cm" y="-0.18cm" radius="0.22 cm" fill="yes" stroke="yes" round="0.1cm"/>
|
||||
</illustration>"""
|
||||
<circle x="0.3cm" y="-0.18cm" radius="0.22 cm" fill="yes" stroke="yes" round="0.1cm"/>
|
||||
</illustration>"""
|
||||
elif que.type in ['matrix_of_choices_only_multi_ans']:
|
||||
value = """<illustration><fill color="white"/>
|
||||
<rect x="0.1cm" y="-0.45cm" width="0.5 cm" height="0.5cm" fill="yes" stroke="yes" round="0.1cm"/>
|
||||
</illustration>"""
|
||||
<rect x="0.1cm" y="-0.45cm" width="0.5 cm" height="0.5cm" fill="yes" stroke="yes" round="0.1cm"/>
|
||||
</illustration>"""
|
||||
rml+= """<td>""" + value + """</td>"""
|
||||
if que.type in ['matrix_of_choices_only_one_ans','rating_scale'] and que.comment_column:
|
||||
if comment_value=='False':
|
||||
if comment_value == 'False':
|
||||
comment_value = ''
|
||||
rml+= """<td><para style="response">"""+ to_xml(tools.ustr(comment_value)) + """</para></td>"""
|
||||
rml+=""" </tr></blockTable>"""
|
||||
rml += """<td><para style="response">""" + to_xml(tools.ustr(comment_value)) + """</para></td>"""
|
||||
rml += """</tr></blockTable>"""
|
||||
if que.is_comment_require:
|
||||
rml+="""<blockTable colWidths="500" style="Table1"><tr>
|
||||
rml += """<blockTable colWidths='""" + str(_tbl_widths) + """' style="simple_table"><tr>
|
||||
<td><para style="answer">""" + to_xml(tools.ustr(answer[0].comment or '')) + """</para></td></tr></blockTable>"""
|
||||
else:
|
||||
rml +="""<blockTable colWidths="500" style="Table1">
|
||||
<tr> <td> <para style="response">No Response</para></td> </tr>
|
||||
</blockTable>"""
|
||||
|
||||
rml += """<pageBreak/>"""
|
||||
rml += """<blockTable colWidths='""" + str(_tbl_widths) + """' style="simple_table">
|
||||
<tr><td> <para style="response">No Response</para></td> </tr>
|
||||
</blockTable>"""
|
||||
if datas.has_key('form') and not datas['form']['without_pagebreak']:
|
||||
rml += """<pageBreak/>"""
|
||||
elif not datas.has_key('form'):
|
||||
rml += """<pageBreak/>"""
|
||||
else:
|
||||
rml += """<para style="P2"><font></font></para>"""
|
||||
rml += """</story></document>"""
|
||||
report_type = datas.get('report_type', 'pdf')
|
||||
create_doc = self.generators[report_type]
|
||||
@@ -455,4 +496,3 @@ class survey_browse_response(report_rml):
|
||||
survey_browse_response('report.survey.browse.response', 'survey','','')
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
|
||||
@@ -72,6 +72,21 @@ class survey_form(report_rml):
|
||||
<blockValign value="TOP"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,0" stop="-1,-1"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="tbl_white">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,0" stop="-1,-1"/>
|
||||
<lineStyle kind="LINEBEFORE" colorName="#777777" start="0,0" stop="-1,-1"/>
|
||||
<lineStyle kind="LINEAFTER" colorName="#777777" start="0,0" stop="-1,-1"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="tbl_gainsboro">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,0" stop="-1,-1"/>
|
||||
<lineStyle kind="LINEBEFORE" colorName="#777777" start="0,0" stop="-1,-1"/>
|
||||
<lineStyle kind="LINEAFTER" colorName="#777777" start="0,0" stop="-1,-1"/>
|
||||
<blockBackground colorName="gainsboro" start="0,0" stop="-1,-1"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="ans_tbl_white">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
@@ -106,20 +121,13 @@ class survey_form(report_rml):
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table4">
|
||||
<blockTableStyle id="tbl">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#000000" start="0,0" stop="-1,-1"/>
|
||||
<lineStyle kind="LINEBEFORE" colorName="#777777" start="0,0" stop="-1,-1"/>
|
||||
<lineStyle kind="LINEAFTER" colorName="#777777" start="0,0" stop="-1,-1"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table5">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,0" stop="-1,-1"/>
|
||||
<lineStyle kind="LINEBEFORE" colorName="#777777" start="0,0" stop="-1,-1"/>
|
||||
<lineStyle kind="LINEAFTER" colorName="#777777" start="0,0" stop="-1,-1"/>
|
||||
</blockTableStyle>
|
||||
<initialize>
|
||||
<paraStyle name="all" alignment="justify"/>
|
||||
</initialize>
|
||||
@@ -144,6 +152,12 @@ class survey_form(report_rml):
|
||||
<blockTable colWidths='"""+_tbl_widths+"""' style="title_tbl">
|
||||
<tr><td><para style="title">""" + to_xml(tools.ustr(survey.title)) + """</para><para style="P2"><font></font></para></td></tr>
|
||||
</blockTable>"""
|
||||
if survey.note:
|
||||
rml += """
|
||||
<para style="P2"></para>
|
||||
<blockTable colWidths='"""+_tbl_widths+"""' style="note_table">
|
||||
<tr><td><para style="descriptive_text">""" + to_xml(tools.ustr(survey.note)) + """</para><para style="P2"><font></font></para></td></tr>
|
||||
</blockTable>"""
|
||||
seq = 0
|
||||
for page in survey.page_ids:
|
||||
seq+=1
|
||||
@@ -273,7 +287,6 @@ class survey_form(report_rml):
|
||||
<rect x="-0.1cm" y="-0.45cm" width='""" + tools.ustr(cols_widhts[-1] - 0.5) +"cm" + """' height="0.5cm" fill="yes" stroke="yes" round="0.1cm"/>"""
|
||||
elif que.type in ['matrix_of_choices_only_one_ans','rating_scale']:
|
||||
value = """ <fill color="white"/>
|
||||
<!--rect x="0.25cm" y="-0.5cm" width="0.8 cm" height="0.5cm" fill="yes" stroke="yes" round="0.1cm"/-->
|
||||
<circle x="0.35cm" y="-0.18cm" radius="0.25 cm" fill="yes" stroke="yes"/>"""
|
||||
else:
|
||||
value = """ <fill color="white"/>
|
||||
@@ -336,18 +349,22 @@ class survey_form(report_rml):
|
||||
cols_widhts.append(tbl_width/float(len(que.column_heading_ids)))
|
||||
colWidths = "cm,".join(map(tools.ustr, cols_widhts))
|
||||
colWidths = colWidths+'cm'
|
||||
rml+="""<blockTable colWidths=" """ + colWidths + """ " style="Table4"><tr>"""
|
||||
rml+="""<blockTable colWidths=" """ + colWidths + """ " style="tbl"><tr>"""
|
||||
for col in que.column_heading_ids:
|
||||
rml+="""<td><para style="terp_tblheader_Details">""" + to_xml(tools.ustr(col.title)) + """</para></td>"""
|
||||
rml+="""</tr></blockTable>
|
||||
<blockTable colWidths=" """ + colWidths + """ " style="Table5">"""
|
||||
rml+="""</tr></blockTable>"""
|
||||
i=0
|
||||
for r in range(0,que.no_of_rows):
|
||||
rml+="""<tr>"""
|
||||
if i%2!=0:
|
||||
style='tbl_white'
|
||||
else:
|
||||
style='tbl_gainsboro'
|
||||
i+=1
|
||||
rml+="""<blockTable colWidths=" """ + colWidths + """ " style='"""+style+"""'><tr>"""
|
||||
for c in que.column_heading_ids:
|
||||
rml+="""
|
||||
<td><para style="terp_default_9"><font color="white"> </font></para></td>"""
|
||||
rml+="""</tr>"""
|
||||
rml+="""</blockTable>"""
|
||||
rml+="""</tr></blockTable>"""
|
||||
if datas.has_key('form') and not datas['form']['without_pagebreak']:
|
||||
rml+="""<pageBreak/>"""
|
||||
elif not datas.has_key('form'):
|
||||
|
||||
@@ -2137,6 +2137,7 @@
|
||||
<data noupdate="1">
|
||||
<record id="survey_0_Community" model="survey">
|
||||
<field name="title">Community Survey</field>
|
||||
<field name="note">Please take a few minutes to complete this survey on the quality of service we provide. We welcome your feedback and appreciate your honesty. With your help, we hope to strengthen the bond between our clients.</field>
|
||||
<field eval="1" name="response_user"/>
|
||||
<field name="state">draft</field>
|
||||
<field name="responsible_id" ref="base.user_root"/>
|
||||
@@ -2146,7 +2147,6 @@
|
||||
</data>
|
||||
<data>
|
||||
<record id="survey_page_0_Community" model="survey.page">
|
||||
<field name="note">Please take a few minutes to complete this survey on the quality of service we provide. We welcome your feedback and appreciate your honesty. With your help, we hope to strengthen the bond between our clients.</field>
|
||||
<field name="title">Service Characteristics</field>
|
||||
<field name="survey_id" ref="survey_0_Community"/>
|
||||
<field eval="1" name="sequence"/>
|
||||
@@ -2805,13 +2805,4 @@
|
||||
<field eval="8" name="sequence"/>
|
||||
</record>
|
||||
</data>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</openerp>
|
||||
@@ -30,11 +30,32 @@ from tools.translate import _
|
||||
|
||||
_survey_form = '''<?xml version="1.0"?>
|
||||
<form string="Browse Answer">
|
||||
<field name="response_ids" colspan="4" nolabel="1"/>
|
||||
<separator string="Responses" colspan="4"/>
|
||||
<field name="response_ids" colspan="4" nolabel="1"/>
|
||||
<separator string="Print Option" colspan="4"/>
|
||||
<field name="orientation" colspan="4"/>
|
||||
<field name="paper_size" colspan="4"/>
|
||||
<field name="page_number" colspan="4"/>
|
||||
<field name="without_pagebreak" colspan="4"/>
|
||||
</form>'''
|
||||
|
||||
_survey_fields = {
|
||||
'response_ids': {'string': 'Survey', 'type': 'many2many', 'relation': 'survey.response'},
|
||||
'response_ids': {'string': 'Survey', 'type': 'many2many', 'relation': 'survey.response','required':'1'},
|
||||
'orientation':{
|
||||
'string':"Orientation",
|
||||
'type':'selection',
|
||||
'selection':[('vertical','Portrait(Vertical)'),
|
||||
('horizontal','Landscape(Horizontal)')],
|
||||
'default': lambda *a:'vertical'},
|
||||
'paper_size':{
|
||||
'string':"Paper Size",
|
||||
'type':'selection',
|
||||
'selection':[('letter','Letter (8.5" x 11")'),
|
||||
('legal','Legal (8.5" x 14")'),
|
||||
('a4','A4 (210mm x 297mm)')],
|
||||
'default': lambda *a:'letter'},
|
||||
'page_number': {'string':'Include Page Numbers', 'type':'boolean', 'default':lambda *a: 0},
|
||||
'without_pagebreak': {'string':'Print Without Page Breaks', 'type':'boolean', 'default':lambda *a: 0},
|
||||
}
|
||||
|
||||
class browse_answer_wizard(wizard.interface):
|
||||
|
||||
Reference in New Issue
Block a user