@@ -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
|
||||
|
||||
@@ -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-02-04 00:48+0000\n"
|
||||
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\n"
|
||||
"PO-Revision-Date: 2010-02-09 17:31+0000\n"
|
||||
"Last-Translator: Antoni Górski <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-16 05:25+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-02-10 04:43+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: board_document
|
||||
@@ -76,7 +76,7 @@ msgstr ""
|
||||
#. module: board_document
|
||||
#: model:ir.ui.menu,name:board_document.menu_board_document
|
||||
msgid "Document"
|
||||
msgstr ""
|
||||
msgstr "Dokument"
|
||||
|
||||
#. module: board_document
|
||||
#: view:board.board:0
|
||||
|
||||
@@ -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
-13
@@ -241,8 +241,7 @@ class invite_attendee_wizard(osv.osv_memory):
|
||||
})
|
||||
att_id = att_obj.create(cr, uid, vals)
|
||||
if model_field:
|
||||
obj.write(cr, uid, res_obj.id, {model_field: [(4, att_id)],
|
||||
'state': 'delegated'})
|
||||
obj.write(cr, uid, res_obj.id, {model_field: [(4, att_id)]})
|
||||
|
||||
if datas.get('send_mail'):
|
||||
att_obj._send_mail(cr, uid, [att_id], mail_to, \
|
||||
@@ -665,13 +664,13 @@ or contains the text to be used for display"""),
|
||||
mail_to = [alarm.user_id.address_id.email]
|
||||
for att in alarm.attendee_ids:
|
||||
mail_to.append(att.user_id.address_id.email)
|
||||
|
||||
tools.email_send(
|
||||
tools.config.get('email_from', False),
|
||||
mail_to,
|
||||
sub,
|
||||
body
|
||||
)
|
||||
if mail_to:
|
||||
tools.email_send(
|
||||
tools.config.get('email_from', False),
|
||||
mail_to,
|
||||
sub,
|
||||
body
|
||||
)
|
||||
self.write(cr, uid, [alarm.id], {'state':'done'})
|
||||
return True
|
||||
|
||||
@@ -756,12 +755,12 @@ rule or repeating pattern for anexception to a recurrence set"),
|
||||
|
||||
def onchange_user_id(self, cr, uid, ids, user_id, *args, **argv):
|
||||
if not user_id:
|
||||
return {'value': {'vtimezone': ''}}
|
||||
value = {}
|
||||
return {'value': {'vtimezone': None}}
|
||||
value = {'vtimezone': None}
|
||||
cr.execute('select context_tz from res_users where id=%s' % (user_id))
|
||||
timezone = cr.fetchone()
|
||||
timezone = cr.fetchone()[0]
|
||||
if timezone:
|
||||
value.update({'vtimezone': timezone[0].lower()})
|
||||
value.update({'vtimezone': timezone.lower()})
|
||||
return {'value': value}
|
||||
|
||||
def export_cal(self, cr, uid, ids, context={}):
|
||||
|
||||
+1
-1
@@ -904,7 +904,7 @@ class users(osv.osv):
|
||||
_inherit = 'res.users'
|
||||
_description = "Users"
|
||||
_columns = {
|
||||
'context_section_id': fields.selection(_section_get, 'Sales Section'),
|
||||
'context_section_id': fields.many2one('crm.case.section', 'Sales Section'),
|
||||
}
|
||||
users()
|
||||
|
||||
|
||||
@@ -9,9 +9,9 @@
|
||||
<field name="name">Helpdesk Categories</field>
|
||||
<field name="res_model">crm.case.categ</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_id" ref="crm.crm_case_categ_tree-view"/>
|
||||
<field name="domain">[('object_id.model', '=', 'crm.helpdesk')]</field>
|
||||
<field name="context">{'object_id':'crm.helpdesk'}</field>
|
||||
<field name="view_id" ref="crm.crm_case_categ_tree-view"/>
|
||||
<field name="domain">[('object_id.model', '=', 'crm.helpdesk')]</field>
|
||||
<field name="context">{'object_id':'crm.helpdesk'}</field>
|
||||
</record>
|
||||
<menuitem action="crm_helpdesk_categ_action" id="menu_crm_case_helpdesk-act" parent="crm.menu_crm_case_categ"/>
|
||||
# ------------------------------------------------------
|
||||
@@ -26,9 +26,9 @@
|
||||
<field name="arch" type="xml">
|
||||
<form string="Helpdesk Support">
|
||||
<group colspan="4" col="4">
|
||||
<field colspan="4" name="name" select="1"/>
|
||||
<field colspan="4" name="name" select="1"/>
|
||||
<field name="date" select="1"/>
|
||||
<field name="date_deadline" select="2"/>
|
||||
<field name="date_deadline" select="2"/>
|
||||
</group>
|
||||
<notebook colspan="4">
|
||||
<page string="General">
|
||||
@@ -36,10 +36,10 @@
|
||||
<group col="7" colspan="4">
|
||||
<field name="partner_id" on_change="onchange_partner_id(partner_id, email_from)" select="1"/>
|
||||
<field name="partner_address_id" on_change="onchange_partner_address_id(partner_address_id, email_from)" select="2"/>
|
||||
|
||||
|
||||
<field name="email_from" select="2"/>
|
||||
<button name="remind_partner" states="open,pending" string="Send Reminder" type="object" icon="gtk-go-forward"/>
|
||||
|
||||
|
||||
</group>
|
||||
<separator colspan="4" string="Categarization"/>
|
||||
<group col="7" colspan="4">
|
||||
@@ -158,7 +158,7 @@
|
||||
</calendar>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="view_crm_case_helpdesk_filter" model="ir.ui.view">
|
||||
<field name="name">CRM - Helpdesk Search</field>
|
||||
<field name="model">crm.helpdesk</field>
|
||||
@@ -186,11 +186,11 @@
|
||||
<field name="state" select="1">
|
||||
<filter icon="gtk-index" domain="[('state','in',('open','draft' ))]" help="Current " default="1"/>
|
||||
</field>
|
||||
<field name="section_id" select="1" widget="selection" string="Section">
|
||||
<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>
|
||||
help="My section"/>
|
||||
</field>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
|
||||
@@ -638,7 +638,7 @@
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<page string="Current Activity" position="inside">
|
||||
<field name="context_section_id" completion="1"/>
|
||||
<field name="context_section_id" completion="1" widget="selection" context="{'user_prefence':True}"/>
|
||||
</page>
|
||||
</field>
|
||||
</record>
|
||||
@@ -651,7 +651,7 @@
|
||||
<field eval="18" name="priority"/>
|
||||
<field name="arch" type="xml">
|
||||
<field name="password" position="after">
|
||||
<field name="context_section_id" completion="1"/>
|
||||
<field name="context_section_id" completion="1" widget="selection"/>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
+552
-478
File diff suppressed because it is too large
Load Diff
+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'],
|
||||
|
||||
@@ -43,11 +43,11 @@
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
<!-- <menuitem
|
||||
<menuitem
|
||||
name="Storage Media"
|
||||
action="action_document_storage_form"
|
||||
id="menu_document_storage_media"
|
||||
parent="menu_document_configuration"/>-->
|
||||
parent="menu_document_management_configuration"/>
|
||||
|
||||
<record model="ir.ui.view" id="view_document_directory_form">
|
||||
<field name="name">document.directory</field>
|
||||
@@ -173,14 +173,13 @@
|
||||
<field name="priority" eval="1"/>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Files">
|
||||
<form string="Documents">
|
||||
<group colspan="4" col="6">
|
||||
<field name="name" select="1" />
|
||||
<field name="title" select="1"/>
|
||||
<field name="partner_id"/>
|
||||
<field name="user_id"/>
|
||||
<field name="create_uid" select="2"/>
|
||||
<field name="create_date" select="2"/>
|
||||
<field name="parent_id" select="2"/>
|
||||
</group>
|
||||
<notebook colspan="4">
|
||||
<page string="Attachment">
|
||||
@@ -208,17 +207,18 @@
|
||||
<field name="index_content" nolabel="1" colspan="4" select="1"/>
|
||||
</page><page string="Security">
|
||||
<field name="group_ids" colspan="4" nolabel="1"/>
|
||||
</page><page string="Others Info">
|
||||
<group colspan="2" col="2">
|
||||
<separator string="History" colspan="2"/>
|
||||
<field name="write_date"/>
|
||||
</page><page string="Others Info">
|
||||
<group colspan="4" col="4">
|
||||
<separator string="File Information" colspan="4"/>
|
||||
<field name="file_size" readonly="1"/>
|
||||
<newline/>
|
||||
<separator string="History" colspan="4"/>
|
||||
<field name="create_uid"/>
|
||||
<field name="create_date"/>
|
||||
<field name="write_uid"/>
|
||||
</group>
|
||||
<group colspan="2" col="2">
|
||||
<separator string="File Information" colspan="2"/>
|
||||
<field name="file_size" readonly="1"/>
|
||||
<field name="parent_id" select="2"/>
|
||||
</group>
|
||||
<field name="write_date"/>
|
||||
</group>
|
||||
|
||||
</page><page string="Notes">
|
||||
<field colspan="4" name="description" nolabel="1"/>
|
||||
</page>
|
||||
@@ -232,7 +232,7 @@
|
||||
<field name="type">tree</field>
|
||||
<field name="priority" eval="1"/>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Files">
|
||||
<tree string="Documents">
|
||||
<field name="name"/>
|
||||
<field name="title" />
|
||||
<field name="partner_id"/>
|
||||
@@ -251,7 +251,7 @@
|
||||
</record>
|
||||
<menuitem name="Documents" id="menu_document_doc" parent="base.menu_document" sequence="5"/>
|
||||
<menuitem
|
||||
name="Search a File"
|
||||
name="Documents"
|
||||
action="action_document_file_form"
|
||||
id="menu_document_files"
|
||||
parent="menu_document_doc"/>
|
||||
|
||||
@@ -598,7 +598,8 @@ class node_file(node_class):
|
||||
if fil.parent_id:
|
||||
self.storage_id = fil.parent_id.storage_id.id
|
||||
else:
|
||||
self.storage_id = None
|
||||
self.storage_id = None
|
||||
|
||||
|
||||
def get_data(self, cr, fil_obj = None):
|
||||
""" Retrieve the data for some file.
|
||||
@@ -607,12 +608,20 @@ class node_file(node_class):
|
||||
the browse object. """
|
||||
# this is where storage kicks in..
|
||||
stor = self.storage_id
|
||||
if not stor:
|
||||
data_obj = self.context._dirobj.pool.get('ir.model.data')
|
||||
data_id = data_obj._get_id(cr, self.context.uid, 'document', 'storage_db')
|
||||
if data_id:
|
||||
stor = data_obj.browse(cr, self.context.uid, data_id, context=self.context.context).res_id
|
||||
assert stor
|
||||
stobj = self.context._dirobj.pool.get('document.storage')
|
||||
return stobj.get_data(cr,self.context.uid,stor, self,self.context.context, fil_obj)
|
||||
|
||||
def get_data_len(self, cr, fil_obj = None):
|
||||
# TODO: verify with the storage object!
|
||||
bin_size = self.context.context.get('bin_size', False)
|
||||
if bin_size and not self.content_length:
|
||||
self.content_length = fil_obj.db_datas
|
||||
return self.content_length
|
||||
|
||||
def set_data(self, cr, data, fil_obj = None):
|
||||
|
||||
@@ -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>
|
||||
@@ -167,7 +167,7 @@
|
||||
</record>
|
||||
<menuitem name="Point of Sale" id="menu_point_root" sequence="10"/>
|
||||
<menuitem name="Point of Sale" id="menu_point_of_sale" parent="menu_point_root" sequence="1" />
|
||||
<menuitem name="New Sale" parent="menu_point_of_sale" id="menu_point_ofsale" action="action_pos_pos_form" sequence="1"/>
|
||||
<menuitem name="Sales Order" parent="menu_point_of_sale" id="menu_point_ofsale" action="action_pos_pos_form" sequence="1"/>
|
||||
<menuitem action="product.product_normal_action" id="menu_pos_products" parent="menu_point_of_sale" sequence="2" name="Products"/>
|
||||
|
||||
<!-- POS Order view (date_payment) -->
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -46,6 +46,21 @@ class project(osv.osv):
|
||||
_name = "project.project"
|
||||
_description = "Project"
|
||||
_inherits = {'account.analytic.account':"category_id"}
|
||||
|
||||
def search(self, cr, user, args, offset=0, limit=None, order=None,
|
||||
context=None, count=False):
|
||||
if user==1:
|
||||
return super(project, self).search(cr, user, args, offset=offset, limit=limit, order=order,
|
||||
context=context, count=count)
|
||||
if context and context.has_key('user_prefence') and context['user_prefence']:
|
||||
cr.execute("""SELECT project.id FROM project_project project
|
||||
LEFT JOIN account_analytic_account account ON account.id = project.category_id
|
||||
WHERE (account.user_id = %s)"""%(user))
|
||||
res = cr.fetchall()
|
||||
return [(r[0]) for r in res]
|
||||
return super(project, self).search(cr, user, args, offset=offset, limit=limit, order=order,
|
||||
context=context, count=count)
|
||||
|
||||
def _complete_name(self, cr, uid, ids, name, args, context):
|
||||
res = {}
|
||||
for m in self.browse(cr, uid, ids, context=context):
|
||||
@@ -557,8 +572,8 @@ class users(osv.osv):
|
||||
_inherit = 'res.users'
|
||||
_description = "Users"
|
||||
_columns = {
|
||||
'context_project_id': fields.selection(_project_get, 'Project'),
|
||||
}
|
||||
'context_project_id': fields.many2one('project.project', 'Project')
|
||||
}
|
||||
users()
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
@@ -121,6 +121,7 @@
|
||||
<field name="field_parent">child_ids</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Projects">
|
||||
<field name="sequence" invisible="1"/>
|
||||
<field name="name" string="Project Name"/>
|
||||
<field name="user_id" string="Project Manager"/>
|
||||
<field name="partner_id" string="Partner"/>
|
||||
@@ -183,37 +184,6 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="view_my_project" model="ir.ui.view">
|
||||
<field name="name">project.project.tree</field>
|
||||
<field name="model">project.project</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="field_parent">child_ids</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="My projects">
|
||||
<field name="name" string="Project Name"/>
|
||||
<field name="partner_id" string="Partner"/>
|
||||
<field name="planned_hours" widget="float_time"/>
|
||||
<field name="effective_hours" widget="float_time"/>
|
||||
<field name="progress_rate" widget="progressbar"/>
|
||||
<field name="state"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="open_view_my_project_open" model="ir.actions.act_window">
|
||||
<field name="name">Projects Structure</field>
|
||||
<field name="res_model">project.project</field>
|
||||
<field name="view_type">tree</field>
|
||||
<field name="domain">[('parent_id','=',False)]</field>
|
||||
<field name="view_id" ref="view_my_project"/>
|
||||
</record>
|
||||
<!--<menuitem
|
||||
action="open_view_my_project_open"
|
||||
id="menu_open_view_my_project_open"
|
||||
parent="project.menu_all_project"/>-->
|
||||
|
||||
<!-- Wizard for compute remaining hours -->
|
||||
|
||||
<record id="view_config_compute_remaining" model="ir.ui.view">
|
||||
<field name="name">Compute Remaining Hours </field>
|
||||
<field name="model">config.compute.remaining</field>
|
||||
@@ -349,6 +319,7 @@
|
||||
<field name="name"/>
|
||||
<field name="project_id" icon="gtk-indent"/>
|
||||
<field name="user_id"/>
|
||||
<field name="delegated_user_id" invisible="context.get('show_delegated', True)"/>
|
||||
<field name="remaining_hours" widget="float_time" sum="Remaining Hours" invisible="context.get('set_visible',False)"/>
|
||||
<field name="date_deadline" invisible="context.get('set_visible',False)"/>
|
||||
<field name="type" groups="base.group_extended" invisible="context.get('set_visible',False)"/>
|
||||
@@ -364,7 +335,7 @@
|
||||
<field name="progress" widget="progressbar" invisible="context.get('set_visible',False)"/>
|
||||
<field name="state" invisible="context.get('set_visible',False)"/>
|
||||
<button name="do_open" states="pending,draft" string="Start Task" type="object" icon="gtk-execute" help="For changing to open state" invisible="context.get('set_visible',False)"/>
|
||||
<button groups="base.group_extended" name="%(wizard_delegate_task)d" states="pending,open,draft" string="Delegate" type="action" icon="gtk-execute" help="For changing to delegate state" invisible="context.get('show_delegated',True)" />
|
||||
<button groups="base.group_extended" name="%(wizard_delegate_task)d" states="pending,open,draft" string="Delegate" type="action" icon="gtk-execute" help="For changing to delegate state"/>
|
||||
<button name="%(wizard_close_task)d" states="pending,open" string="Done" type="action" icon="gtk-jump-to" help="For changing to done state"/>
|
||||
<button name="do_cancel" states="draft,open,pending" string="Cancel" type="object" icon="gtk-cancel" help="For cancelling the task"/>
|
||||
</tree>
|
||||
@@ -570,7 +541,7 @@
|
||||
<field eval="18" name="priority"/>
|
||||
<field name="arch" type="xml">
|
||||
<field name="password" position="after">
|
||||
<field name="context_project_id" completion="1"/>
|
||||
<field name="context_project_id" completion="1" widget="selection"/>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
@@ -583,7 +554,7 @@
|
||||
<field eval="18" name="priority"/>
|
||||
<field name="arch" type="xml">
|
||||
<page string="Current Activity" position="inside">
|
||||
<field name="context_project_id" completion="1" />
|
||||
<field name="context_project_id" completion="1" widget="selection" context="{'user_prefence':True}"/>
|
||||
</page>
|
||||
</field>
|
||||
</record>
|
||||
@@ -595,15 +566,15 @@
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Messages">
|
||||
<group colspan="6">
|
||||
<group colspan="6">
|
||||
<field name="subject" select="1" string="Title"/>
|
||||
<field name="project_id"/>
|
||||
<field name="user_id" select="1"/>
|
||||
<field name="date" select="2"/>
|
||||
</group>
|
||||
<separator string="Description" colspan="4"/>
|
||||
<field name="description" nolabel="1" colspan="4"/>
|
||||
</form>
|
||||
<field name="user_id" select="1"/>
|
||||
<field name="date" select="2"/>
|
||||
</group>
|
||||
<separator string="Description" colspan="4"/>
|
||||
<field name="description" nolabel="1" colspan="4"/>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
@@ -89,6 +89,7 @@ class wizard_compute_tasks(wizard.interface):
|
||||
task_ids.sort()
|
||||
task_obj = task_pool.browse(cr,uid,task_ids)
|
||||
task_1 = task_obj[0]
|
||||
|
||||
date_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
|
||||
|
||||
@@ -210,7 +211,6 @@ class wizard_compute_tasks(wizard.interface):
|
||||
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]})
|
||||
|
||||
@@ -34,11 +34,11 @@
|
||||
<field eval=""""Trigger Invoice"""" name="name"/>
|
||||
<field name="subflow_id" ref="account.process_process_invoiceprocess0"/>
|
||||
<field eval=""""Trigger invoices from sale order lines"""" name="note"/>
|
||||
<field name="process_id" ref="process_process_tasksprocess0"/>
|
||||
<field name="process_id" ref="project.process_process_tasksprocess0"/>
|
||||
<field eval=""""object.state=='paid'"""" name="model_states"/>
|
||||
<field eval="0" name="flow_start"/>
|
||||
</record>
|
||||
|
||||
|
||||
|
||||
<!--
|
||||
Process Transition
|
||||
@@ -70,8 +70,8 @@
|
||||
<field model="process.node" name="target_node_id" ref="process_node_triggerinvoice0"/>
|
||||
<field model="process.node" name="source_node_id" ref="project.process_node_donetask0"/>
|
||||
</record>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
+29
-23
@@ -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"
|
||||
"PO-Revision-Date: 2010-02-09 23:39+0000\n"
|
||||
"Last-Translator: adnan <adnankraljic@yahoo.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-25 04:40+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-02-10 04:43+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
|
||||
@@ -463,6 +465,8 @@ msgid ""
|
||||
"customer.In this case, it will remove the warehouse link and set the "
|
||||
"customer location."
|
||||
msgstr ""
|
||||
"Postavi adresu ukoliko želite predati direktno od dobavljača kupac. U ovom "
|
||||
"slučaju, to će se maknuti link skladišta i postaviti lokaciju kupca."
|
||||
|
||||
#. module: purchase
|
||||
#: rml:purchase.quotation:0
|
||||
@@ -616,7 +620,7 @@ msgstr "Nije moguće imati dva cjenovnika koja se preklapaju!"
|
||||
#. module: purchase
|
||||
#: view:purchase.order:0
|
||||
msgid "Cancel Purchase Order"
|
||||
msgstr ""
|
||||
msgstr "Otkaži nabavni nalog"
|
||||
|
||||
#. module: purchase
|
||||
#: model:process.transition,name:purchase.process_transition_createpackinglist0
|
||||
@@ -636,7 +640,7 @@ msgstr ""
|
||||
#. module: purchase
|
||||
#: view:purchase.order.line:0
|
||||
msgid "History"
|
||||
msgstr "Historija"
|
||||
msgstr "Historijat"
|
||||
|
||||
#. module: purchase
|
||||
#: field:purchase.order,state:0
|
||||
@@ -736,17 +740,17 @@ msgstr ""
|
||||
#. module: purchase
|
||||
#: model:process.node,note:purchase.process_node_productrecept0
|
||||
msgid "Control invoices on receptions"
|
||||
msgstr ""
|
||||
msgstr "Kontrolisati račun prilikom primke"
|
||||
|
||||
#. module: purchase
|
||||
#: rml:purchase.order:0
|
||||
msgid "Date Req."
|
||||
msgstr ""
|
||||
msgstr "Datum upita"
|
||||
|
||||
#. module: purchase
|
||||
#: field:purchase.order,date_approve:0
|
||||
msgid "Date Approved"
|
||||
msgstr ""
|
||||
msgstr "Datum odobrenja"
|
||||
|
||||
#. module: purchase
|
||||
#: model:ir.module.module,description:purchase.module_meta_information
|
||||
@@ -754,6 +758,8 @@ msgid ""
|
||||
"Module for purchase management\n"
|
||||
" Request for quotation, Create Supplier Invoice, Print Order..."
|
||||
msgstr ""
|
||||
"Modul za upravljanje nabavkom \n"
|
||||
"Zahtjev za ponudu, kreiranje računa dobavljača, printanje naloga..."
|
||||
|
||||
#. module: purchase
|
||||
#: field:purchase.order.line,product_id:0
|
||||
@@ -775,18 +781,18 @@ 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
|
||||
msgid "Confirming Purchase Order"
|
||||
msgstr ""
|
||||
msgstr "Potvrdite nabavni nalog"
|
||||
|
||||
#. module: purchase
|
||||
#: field:purchase.order.line,product_uom:0
|
||||
@@ -796,12 +802,12 @@ 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
|
||||
msgid "Purchase order is confirmed by the user."
|
||||
msgstr ""
|
||||
msgstr "Nabavni nalog je potvrđen od strane korisnika."
|
||||
|
||||
#. module: purchase
|
||||
#: model:process.transition,name:purchase.process_transition_purchaseinvoice0
|
||||
@@ -811,12 +817,12 @@ msgstr ""
|
||||
#. module: purchase
|
||||
#: rml:purchase.order:0
|
||||
msgid "Your Order Reference"
|
||||
msgstr ""
|
||||
msgstr "Referenca vašeg naloga"
|
||||
|
||||
#. 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 +832,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
|
||||
@@ -842,7 +848,7 @@ msgstr "Zahtjevi za ponudu"
|
||||
#. module: purchase
|
||||
#: field:purchase.order,invoice_method:0
|
||||
msgid "Invoicing Control"
|
||||
msgstr ""
|
||||
msgstr "Kontrola fakturisanja"
|
||||
|
||||
#. module: purchase
|
||||
#: model:process.transition.action,name:purchase.process_transition_action_approvingpurchaseorder0
|
||||
@@ -867,17 +873,17 @@ msgstr "Ukupno"
|
||||
#. module: purchase
|
||||
#: wizard_view:purchase.order.merge,init:0
|
||||
msgid "Are you sure you want to merge these orders ?"
|
||||
msgstr ""
|
||||
msgstr "Da li ste sigurni da želite sastaviti ove naruđbe?"
|
||||
|
||||
#. module: purchase
|
||||
#: model:process.transition,name:purchase.process_transition_approvingpurchaseorder0
|
||||
msgid "Approving Purchase Order"
|
||||
msgstr ""
|
||||
msgstr "Odobriti nabavni nalog"
|
||||
|
||||
#. module: purchase
|
||||
#: model:process.transition,note:purchase.process_transition_invoicefrompurchase0
|
||||
msgid "After approved purchase order , it comes into the supplier invoice"
|
||||
msgstr ""
|
||||
msgstr "Nakon što je nabavni nalog odobren prelazi u račun dobavljača."
|
||||
|
||||
#. module: purchase
|
||||
#: view:purchase.order.line:0
|
||||
|
||||
@@ -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-11-17 10:17+0000\n"
|
||||
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\n"
|
||||
"PO-Revision-Date: 2010-02-09 17:33+0000\n"
|
||||
"Last-Translator: Antoni Górski <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-16 05:06+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-02-10 04:43+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: purchase
|
||||
@@ -575,7 +575,7 @@ msgstr "Tworzy fakturę z listy przesunięć (przyjęć)"
|
||||
#. module: purchase
|
||||
#: help:purchase.order,date_order:0
|
||||
msgid "Date on which this document has been created."
|
||||
msgstr ""
|
||||
msgstr "Data utworzenia dokumentu."
|
||||
|
||||
#. module: purchase
|
||||
#: view:purchase.order:0
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -68,7 +68,7 @@
|
||||
<field name="view_mode">tree</field>
|
||||
<field name="search_view_id" ref="view_task_project_user_search"/>
|
||||
</record>
|
||||
<menuitem action="action_project_task_user_tree" id="menu_project_task_user_tree" parent="report_task.next_id_57"/>
|
||||
<menuitem action="action_project_task_user_tree" id="menu_project_task_user_tree" parent="base.menu_project_report"/>
|
||||
|
||||
<!-- Tasks by projects -->
|
||||
|
||||
@@ -133,7 +133,7 @@
|
||||
<field name="view_mode">tree</field>
|
||||
<field name="search_view_id" ref="view_task_project_search"/>
|
||||
</record>
|
||||
<menuitem action="action_project_task_tree" id="menu_project_task_tree" parent="report_task.next_id_57"/>
|
||||
<menuitem action="action_project_task_tree" id="menu_project_task_tree" parent="base.menu_project_report"/>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
@@ -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="response">""" + to_xml(tools.ustr(survey.note or '')) + """</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 or '')) + """</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 or '')) + """</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:
|
||||
|
||||
|
||||
@@ -31,6 +31,7 @@ from tools import to_xml
|
||||
import tools
|
||||
from mx.DateTime import *
|
||||
import netsvc
|
||||
import os
|
||||
|
||||
class survey_type(osv.osv):
|
||||
_name = 'survey.type'
|
||||
@@ -902,7 +903,7 @@ class survey_question_wiz(osv.osv_memory):
|
||||
context.update({'response_id':response_id})
|
||||
report = self.create_report(cr, uid, [int(survey_id)], 'report.survey.browse.response', survey_data.title,context)
|
||||
attachments = []
|
||||
file = open("/tmp/" + survey_data.title + ".pdf")
|
||||
file = open(tools.config['addons_path'] + '/survey/report/' + survey_data.title + ".pdf")
|
||||
file_data = ""
|
||||
while 1:
|
||||
line = file.readline()
|
||||
@@ -910,6 +911,8 @@ class survey_question_wiz(osv.osv_memory):
|
||||
if not line:
|
||||
break
|
||||
attachments.append((survey_data.title + ".pdf",file_data))
|
||||
file.close()
|
||||
os.remove(tools.config['addons_path'] + '/survey/report/' + survey_data.title + ".pdf")
|
||||
user_email = False
|
||||
resp_email = False
|
||||
if user_obj.browse(cr, uid, uid).address_id.id:
|
||||
@@ -938,7 +941,7 @@ class survey_question_wiz(osv.osv_memory):
|
||||
if not report_name or not res_ids:
|
||||
return (False, Exception('Report name and Resources ids are required !!!'))
|
||||
try:
|
||||
ret_file_name = '/tmp/'+file_name+'.pdf'
|
||||
ret_file_name = tools.config['addons_path'] + '/survey/report/' + file_name + '.pdf'
|
||||
service = netsvc.LocalService(report_name);
|
||||
(result, format) = service.create(cr, uid, res_ids, {}, context)
|
||||
fp = open(ret_file_name, 'wb+');
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<data>
|
||||
|
||||
<!-- <menuitem name="Survey Management" id="main_menu_survey" icon="terp-crm" sequence="1" groups="group_survey_manager,group_survey_user"/>-->
|
||||
<menuitem icon="STOCK_PREFERENCES" id="base.menu_tools" name="Tools"/>
|
||||
<menuitem icon="STOCK_PREFERENCES" id="base.menu_tools" name="Tools" sequence="15"/>
|
||||
<menuitem name="Survey" id="main_menu_survey"
|
||||
sequence="3" groups="group_survey_manager,group_survey_user"
|
||||
parent="base.menu_tools" />
|
||||
|
||||
@@ -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):
|
||||
|
||||
@@ -114,7 +114,7 @@ def send_mail(self, cr, uid, data, context):
|
||||
attachments = []
|
||||
for id in survey_ref.browse(cr, uid, data['ids']):
|
||||
report = create_report(cr, uid, [id.id], 'report.survey.form', id.title)
|
||||
file = open("/tmp/" + id.title +".pdf")
|
||||
file = open(tools.config['addons_path'] + '/survey/report/' + id.title +".pdf")
|
||||
file_data = ""
|
||||
while 1:
|
||||
line = file.readline()
|
||||
@@ -122,6 +122,8 @@ def send_mail(self, cr, uid, data, context):
|
||||
if not line:
|
||||
break
|
||||
attachments.append((id.title +".pdf",file_data))
|
||||
file.close()
|
||||
os.remove(tools.config['addons_path'] + '/survey/report/' + id.title + ".pdf")
|
||||
|
||||
for partner in pool.get('res.partner').browse(cr, uid, partner_ids):
|
||||
for addr in partner.address:
|
||||
@@ -191,7 +193,7 @@ def create_report(cr, uid, res_ids, report_name=False, file_name=False):
|
||||
if not report_name or not res_ids:
|
||||
return (False, Exception('Report name and Resources ids are required !!!'))
|
||||
try:
|
||||
ret_file_name = '/tmp/'+file_name+'.pdf'
|
||||
ret_file_name = tools.config['addons_path'] + '/survey/report/' + file_name + '.pdf'
|
||||
service = netsvc.LocalService(report_name);
|
||||
(result, format) = service.create(cr, uid, res_ids, {}, {})
|
||||
fp = open(ret_file_name, 'wb+');
|
||||
|
||||
Reference in New Issue
Block a user