bzr revid: vir@tinyerp.com-20100723064805-bbzk4115vynfwutg
This commit is contained in:
Vir (Open ERP)
2010-07-23 12:18:05 +05:30
44 changed files with 1793 additions and 1050 deletions
+15 -3
View File
@@ -656,9 +656,18 @@ class account_journal(osv.osv):
@param context: context arguments, like lang, time zone
@return: return a result
"""
journal_type = ('sale', 'sale_refund', 'purchase', 'purchase_refund')
journal_seq = {
'sale':'seq_out_invoice',
'purchase':'seq_in_invoice',
'purchase_refund':'seq_out_refund',
'sale_refund':'seq_in_refund'
}
seq_pool = self.pool.get('ir.sequence')
seq_typ_pool = self.pool.get('ir.sequence.type')
date_pool = self.pool.get('ir.model.data')
result = True
@@ -685,10 +694,13 @@ class account_journal(osv.osv):
res.update({
'sequence_id':seq_id
})
if not journal.invoice_sequence_id:
if journal.type in journal_type and not journal.invoice_sequence_id:
res_ids = date_pool.search(cr, uid, [('model','=','ir.sequence'), ('name','=',journal_seq.get(journal.type, 'sale'))])
inv_seq_id = date_pool.browse(cr, uid, res_ids[0]).res_id
inv_seq_id
res.update({
'invoice_sequence_id':seq_id
'invoice_sequence_id':inv_seq_id
})
result = self.write(cr, uid, [journal.id], res)
+11 -2
View File
@@ -16,7 +16,6 @@
<menuitem id="menu_finance_charts" name="Charts" parent="menu_finance" sequence="5"/>
<menuitem id="menu_finance_reporting" name="Reporting" parent="account.menu_finance" sequence="12"/>
<menuitem id="menu_finance_reporting_budgets" name="Budgets" parent="menu_finance_reporting"/>
<menuitem id="menu_generic_report" name="Management Reports" parent="menu_finance_reporting"/>
<menuitem id="menu_finance_legal_statement" name="Legal Reports" parent="menu_finance_reporting"/>
<menuitem id="menu_finance_management_belgian_reports" name="Belgian Reports" parent="menu_finance_reporting"/>
<menuitem id="menu_finance_configuration" name="Configuration" parent="menu_finance" sequence="13"/>
@@ -34,7 +33,6 @@
<!-- <menuitem id="menu_finance_reporting11" name="Reporting" parent="account.menu_finance" sequence="80"/>-->
<menuitem id="menu_finance_generic_reporting" name="Generic Reporting" parent="menu_finance_reporting" sequence="100"/>
<!-- <menuitem id="menu_finance_legal_statement1" name="Legal Statements" parent="account.menu_finance_reporting" sequence="200"/>-->
<!-- <menuitem id="menu_generic_report" name="Generic Reports" parent="account.menu_finance_legal_statement" sequence="8"/>-->
<menuitem id="menu_finance_entries" name="Accounting" parent="menu_finance" sequence="4"
groups="group_account_user"/>
@@ -46,6 +44,17 @@
<menuitem id="menu_account_end_year_treatments" name="End of Period" parent="menu_finance_periodical_processing"/>
<menuitem id="menu_finance_statistic_report_statement" name="Statistic Reports" parent="menu_finance_reporting" sequence="300"/>
<menuitem
parent="account.menu_finance_legal_statement"
id="final_accounting_reports"
name="Accounting Reports"/>
<menuitem
parent="account.menu_finance_legal_statement"
id="menu_journals_report"
name="Journals"/>
</data>
</openerp>
-1
View File
@@ -12,7 +12,6 @@
<field name="sequence">0</field>
<field name="res_id" ref="menu_board_account"/>
</record> -->
<record id="base.user_root" model="res.users">
<field name="action_id" ref="open_board_account"/>
</record>
+12 -12
View File
@@ -385,18 +385,18 @@
Product income and expense accounts, default parameters
-->
<record id="property_account_expense_prd" model="ir.property">
<field name="name">property_account_expense</field>
<field name="fields_id" search="[('model','=','product.template'),('name','=','property_account_expense')]"/>
<field eval="'account.account,'+str(ref('account.a_expense'))" name="value"/>
<field name="company_id" ref="base.main_company"/>
</record>
<record id="property_account_income_prd" model="ir.property">
<field name="name">property_account_income</field>
<field name="fields_id" search="[('model','=','product.template'),('name','=','property_account_income')]"/>
<field eval="'account.account,'+str(ref('account.a_sale'))" name="value"/>
<field name="company_id" ref="base.main_company"/>
</record>
<!-- <record id="property_account_expense_prd" model="ir.property">-->
<!-- <field name="name">property_account_expense</field>-->
<!-- <field name="fields_id" search="[('model','=','product.template'),('name','=','property_account_expense')]"/>-->
<!-- <field eval="'account.account,'+str(ref('account.a_expense'))" name="value"/>-->
<!-- <field name="company_id" ref="base.main_company"/>-->
<!-- </record>-->
<!-- <record id="property_account_income_prd" model="ir.property">-->
<!-- <field name="name">property_account_income</field>-->
<!-- <field name="fields_id" search="[('model','=','product.template'),('name','=','property_account_income')]"/>-->
<!-- <field eval="'account.account,'+str(ref('account.a_sale'))" name="value"/>-->
<!-- <field name="company_id" ref="base.main_company"/>-->
<!-- </record>-->
<record id="property_account_expense_categ" model="ir.property">
<field name="name">property_account_expense_categ</field>
<field name="fields_id" search="[('model','=','product.category'),('name','=','property_account_expense_categ')]"/>
+556 -261
View File
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+11 -11
View File
@@ -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-07-22 03:56+0000\n"
"X-Launchpad-Export-Date: 2010-07-23 04:08+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account
@@ -215,7 +215,7 @@ msgstr "明细"
#. module: account
#: wizard_view:account.aged.trial.balance,init:0
msgid "Aged Trial Balance"
msgstr "账龄试算平衡表"
msgstr "旧的试算表"
#. module: account
#: model:ir.ui.menu,name:account.menu_finance_recurrent_entries
@@ -239,7 +239,7 @@ msgstr "金额"
#: model:ir.actions.wizard,name:account.wizard_third_party_ledger
#: model:ir.ui.menu,name:account.menu_third_party_ledger
msgid "Partner Ledger"
msgstr "业务伙伴总帐"
msgstr "业务伙伴分类账"
#. module: account
#: field:product.template,supplier_taxes_id:0
@@ -460,7 +460,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 "银行对账"
msgstr "银行对帐单"
#. module: account
#: rml:account.invoice:0
@@ -680,7 +680,7 @@ msgstr "月"
#. module: account
#: field:account.analytic.account,partner_id:0
msgid "Associated Partner"
msgstr "相关业务伙伴"
msgstr "相关的业务伙伴"
#. module: account
#: view:account.invoice:0
@@ -795,7 +795,7 @@ msgstr "之前生成的记录:"
#: model:ir.actions.report.xml,name:account.account_analytic_account_cost_ledger
#: model:ir.actions.wizard,name:account.account_analytic_account_cost_ledger_report
msgid "Cost Ledger"
msgstr "成本分类帐"
msgstr "成本分类账"
#. module: account
#: wizard_view:account.account.balance.report,checktype:0
@@ -888,7 +888,7 @@ msgstr "补差额集合"
#: field:account.model.line,amount_currency:0
#: field:account.move.line,amount_currency:0
msgid "Amount Currency"
msgstr "货币金额"
msgstr "另一货币金额"
#. module: account
#: field:account.chart.template,property_account_expense_categ:0
@@ -1897,7 +1897,7 @@ msgstr "支付发票"
#. module: account
#: constraint:account.invoice:0
msgid "Error: Invalid Bvr Number (wrong checksum)."
msgstr "错误:无效的Bvr号(错误的检验和)"
msgstr "错误:无效的Bvr号(校验错误)"
#. module: account
#: model:ir.actions.act_window,name:account.action_invoice_tree5
@@ -4212,7 +4212,7 @@ msgstr "这序列提供记录集合列表的显示顺序"
#. module: account
#: field:account.journal,type_control_ids:0
msgid "Type Controls"
msgstr "类型控制"
msgstr "控制类型"
#. module: account
#: field:account.analytic.account,name:0
@@ -5182,7 +5182,7 @@ msgstr "从手动转为草稿"
#. module: account
#: model:ir.ui.menu,name:account.next_id_43
msgid "This Month"
msgstr "本月"
msgstr "这月"
#. module: account
#: field:account.account.type,sign:0
@@ -5209,7 +5209,7 @@ msgstr "在确认对帐单产生的会计分录"
#. module: account
#: wizard_view:account_use_models,create:0
msgid "Use Model"
msgstr "使用模型"
msgstr "使用模式"
#. module: account
#: wizard_button:account.wizard_paid_open,init,end:0
@@ -7,41 +7,41 @@
<field name="model">account.balance.report</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Select period">
<group width="650" height="200">
<field name="company_id" groups="base.group_multi_company"/>
<field name="display_account" required = "True"/>
<newline/>
<field name="fiscalyear"/>
<label colspan="2" string="(Keep empty for all open fiscal years)" align="0.0"/>
<newline/>
<separator string="Filters" colspan="4"/>
<field name="state" required="True"/>
<newline/>
<group attrs="{'invisible':[('state','=','none')]}" colspan="4">
<group attrs="{'invisible':[('state','=','byperiod')]}" colspan="4">
<separator string="Date Filter" colspan="4"/>
<field name="date_from"/>
<field name="date_to"/>
</group>
<group attrs="{'invisible':[('state','=','bydate')]}" colspan="4">
<separator string="Filter on Periods" colspan="4"/>
<field name="periods" colspan="4" nolabel="1"/>
</group>
</group>
<newline/>
<group colspan="4" col="6">
<separator colspan="4"/>
<newline/>
<button special="cancel" string="Cancel" icon="gtk-cancel"/>
<button name="check_state" string="Print" type="object" icon="gtk-print" default_focus="1"/>
</group>
</group>
</form>
<form string="Select period">
<group width="650" height="200">
<field name="company_id" groups="base.group_multi_company"/>
<field name="display_account" required = "True"/>
<newline/>
<field name="fiscalyear"/>
<label colspan="2" string="(Keep empty for all open fiscal years)" align="0.0"/>
<newline/>
<separator string="Filters" colspan="4"/>
<field name="state" required="True"/>
<newline/>
<group attrs="{'invisible':[('state','=','none')]}" colspan="4">
<group attrs="{'invisible':[('state','=','byperiod')]}" colspan="4">
<separator string="Date Filter" colspan="4"/>
<field name="date_from"/>
<field name="date_to"/>
</group>
<group attrs="{'invisible':[('state','=','bydate')]}" colspan="4">
<separator string="Filter on Periods" colspan="4"/>
<field name="periods" colspan="4" nolabel="1"/>
</group>
</group>
<newline/>
<group colspan="4" col="6">
<separator colspan="4"/>
<newline/>
<button special="cancel" string="Cancel" icon="gtk-cancel"/>
<button name="check_state" string="Print" type="object" icon="gtk-print" default_focus="1"/>
</group>
</group>
</form>
</field>
</record>
</record>
<record id="action_account_balance_report" model="ir.actions.act_window">
<record id="action_account_balance_report" model="ir.actions.act_window">
<field name="name">Account Balance</field>
<field name="res_model">account.balance.report</field>
<field name="type">ir.actions.act_window</field>
@@ -51,7 +51,7 @@
<field name="target">new</field>
</record>
<record model="ir.values" id="action_account_balance_report_values">
<record model="ir.values" id="action_account_balance_report_values">
<field name="model_id" ref="account.model_account_account" />
<field name="object" eval="1" />
<field name="name">Account Balance</field>
@@ -59,19 +59,19 @@
<field name="value" eval="'ir.actions.act_window,' +str(ref('action_account_balance_report'))" />
<field name="key">action</field>
<field name="model">account.account</field>
</record>
</record>
<record id="account_balance_report_account_view" model="ir.ui.view">
<record id="account_balance_report_account_view" model="ir.ui.view">
<field name="name">Account Balance</field>
<field name="model">account.balance.report</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Select Chart">
<field name="Account_list"/>
<separator colspan="4"/>
<button icon="gtk-cancel" special="cancel" string="Cancel"/>
<button name="next_view" string="Next" type="object" icon="gtk-go-forward" default_focus="1"/>
</form>
<form string="Select Chart">
<field name="Account_list"/>
<separator colspan="4"/>
<button icon="gtk-cancel" special="cancel" string="Cancel"/>
<button name="next_view" string="Next" type="object" icon="gtk-go-forward" default_focus="1"/>
</form>
</field>
</record>
@@ -86,11 +86,11 @@
<field name="target">new</field>
</record>
<menuitem icon="STOCK_PRINT"
name="Account Balance"
action="action_account_balance_account_report"
id="menu_account_balance_report"
parent="account.menu_generic_report"/>
<menuitem icon="STOCK_PRINT"
name="Account Balance"
action="action_account_balance_account_report"
id="menu_account_balance_report"
parent="account.final_accounting_reports"/>
</data>
</data>
</openerp>
@@ -2,27 +2,27 @@
<openerp>
<data>
<record id="view_account_central_journal" model="ir.ui.view">
<record id="view_account_central_journal" model="ir.ui.view">
<field name="name">Account central Journal</field>
<field name="model">account.central.journal</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Print Central Journal">
<group height="370" width="400">
<group>
<separator string="Journals"/><newline/>
<field name="journal_id" nolabel="1"/><newline/>
<separator string="Periods"/><newline/>
<field name="period_id" nolabel="1"/><newline/>
</group>
<newline/>
<group>
<separator colspan="4"/>
<button special="cancel" string="Cancel" icon='gtk-cancel'/>
<button name="check_data" string="Print" colspan="1" type="object" icon="gtk-ok"/>
</group>
</group>
</form>
<form string="Print Central Journal">
<group height="370" width="400">
<group>
<separator string="Journals"/><newline/>
<field name="journal_id" nolabel="1"/><newline/>
<separator string="Periods"/><newline/>
<field name="period_id" nolabel="1"/><newline/>
</group>
<newline/>
<group>
<separator colspan="4"/>
<button special="cancel" string="Cancel" icon='gtk-cancel'/>
<button name="check_data" string="Print" colspan="1" type="object" icon="gtk-ok"/>
</group>
</group>
</form>
</field>
</record>
@@ -35,12 +35,12 @@
<field name="target">new</field>
</record>
<menuitem
name="Central Journals"
parent="account.menu_generic_report"
action="action_account_central_journal"
id="menu_account_central_journal"
icon="STOCK_PRINT"/>
<menuitem
name="Central Journals"
parent="account.menu_journals_report"
action="action_account_central_journal"
id="menu_account_central_journal"
icon="STOCK_PRINT"/>
</data>
</openerp>
</data>
</openerp>
@@ -2,27 +2,27 @@
<openerp>
<data>
<record id="view_account_general_journal" model="ir.ui.view">
<record id="view_account_general_journal" model="ir.ui.view">
<field name="name">Account Genral Journal</field>
<field name="model">account.general.journal</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Print General Journal">
<group height="380" width="400">
<group>
<separator string="Journals"/><newline/>
<field name="journal_id" nolabel="1"/><newline/>
<separator string="Periods"/><newline/>
<field name="period_id" nolabel="1"/><newline/>
</group>
<newline/>
<group>
<separator colspan="4"/>
<button special="cancel" string="Cancel" icon='gtk-cancel'/>
<button name="check_data" string="Print" colspan="1" type="object" icon="gtk-ok"/>
</group>
</group>
</form>
<form string="Print General Journal">
<group height="380" width="400">
<group>
<separator string="Journals"/><newline/>
<field name="journal_id" nolabel="1"/><newline/>
<separator string="Periods"/><newline/>
<field name="period_id" nolabel="1"/><newline/>
</group>
<newline/>
<group>
<separator colspan="4"/>
<button special="cancel" string="Cancel" icon='gtk-cancel'/>
<button name="check_data" string="Print" colspan="1" type="object" icon="gtk-ok"/>
</group>
</group>
</form>
</field>
</record>
@@ -35,12 +35,12 @@
<field name="target">new</field>
</record>
<menuitem
name="General Journals"
parent="account.menu_generic_report"
action="action_account_general_journal"
id="menu_account_general_journal"
icon="STOCK_PRINT"/>
<menuitem
name="General Journals"
parent="account.menu_journals_report"
action="action_account_general_journal"
id="menu_account_general_journal"
icon="STOCK_PRINT"/>
</data>
</openerp>
</data>
</openerp>
@@ -96,7 +96,7 @@
<menuitem
icon="STOCK_PRINT"
name="General Ledger"
parent="account.menu_generic_report"
parent="account.final_accounting_reports"
action="action_account_general_ledger_menu"
id="menu_general_ledger"
/>
@@ -76,11 +76,6 @@
<field name="target">new</field>
</record>
<menuitem
parent="account.menu_finance_legal_statement"
id="final_accounting_reports"
name="Accounting Reports"/>
<menuitem icon="STOCK_PRINT"
name="Profit And Loss"
action="action_pl_balance_account_report"
@@ -61,7 +61,7 @@
<menuitem
name="Journals"
parent="account.menu_generic_report"
parent="account.menu_journals_report"
action="action_account_print_journal"
id="menu_account_print_journal"
icon="STOCK_PRINT"/>
@@ -10,7 +10,8 @@
<form string="Create Entries From Models">
<group height="240" width="510">
<separator string="This wizard will create recurring accounting entries" colspan="4"/>
<field name="model"/>
<label string="Select recurring to create a manualy recurring accounting entries" width="400"/>
<field name="model" colspan="4" nolabel="1"/>
<separator colspan="4"/>
<group colspan="4" col="2">
<button icon="gtk-cancel" special="cancel" string="Cancel"/>
+19 -12
View File
@@ -234,22 +234,29 @@ def _coda_parsing(self, cr, uid, data, context):
if rec_id:
reconcile_id = pool.get('account.bank.statement.reconcile').create(cr, uid, {
'line_ids': [(6, 0, rec_id)]
}, context=context)
}, context=context)
mv = pool.get('account.move.line').browse(cr, uid, rec_id[0], context=context)
if mv.partner_id:
line['partner_id'] = mv.partner_id.id
if line['amount'] < 0 :
line['account_id'] = mv.partner_id.property_account_payable.id
else :
line['account_id'] = mv.partner_id.property_account_receivable.id
str_not1 = ''
if line.has_key('contry_name') and line.has_key('cntry_number'):
str_not1="Partner name:%s \n Partner Account Number:%s \n Communication:%s \n Value Date:%s \n Entry Date:%s \n"%(line["contry_name"],line["cntry_number"],line["free_comm"]+line['extra_note'],line["val_date"][0],line["entry_date"][0])
id=pool.get('account.bank.statement.line').create(cr,uid,{
'name':line['name'],
'date': line['date'],
'type':line['amount']>0 and 'customer' or 'supplier',
'amount': line['amount'],
'partner_id':line['partner_id'] or 0,
'account_id':line['account_id'],
'statement_id': bk_st_id,
'reconcile_id': reconcile_id,
'note':str_not1,
'ref':line['ref'],
})
'name':line['name'],
'date': line['date'],
'type':line['amount']>0 and 'customer' or 'supplier',
'amount': line['amount'],
'partner_id':line['partner_id'] or 0,
'account_id':line['account_id'],
'statement_id': bk_st_id,
'reconcile_id': reconcile_id,
'note':str_not1,
'ref':line['ref'],
})
str_not= "\n \n Account Number: %s \n Account Holder Name: %s " %(statement["acc_number"],statement["acc_holder"])
std_log += "\nStatement : %s , Date : %s, Starting Balance : %.2f , Ending Balance : %.2f \n"\
+266
View File
@@ -0,0 +1,266 @@
# Estonian 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: 2010-06-18 10:59+0000\n"
"PO-Revision-Date: 2010-07-22 20:10+0000\n"
"Last-Translator: lyyser <logard.1961@gmail.com>\n"
"Language-Team: Estonian <et@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-07-23 04:08+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: analytic
#: field:account.analytic.account,child_ids:0
msgid "Child Accounts"
msgstr "Alamkontod"
#. module: analytic
#: help:account.analytic.line,amount_currency:0
msgid ""
"The amount expressed in the related account currency if not equal to the "
"company one."
msgstr ""
#. module: analytic
#: constraint:ir.model:0
msgid ""
"The Object name must start with x_ and not contain any special character !"
msgstr ""
"Objekti nimi peab algama x_'ga ja ei tohi sisaldada ühtegi erisümbolit !"
#. module: analytic
#: field:account.analytic.account,name:0
msgid "Account Name"
msgstr "Konto nimi"
#. module: analytic
#: help:account.analytic.line,unit_amount:0
msgid "Specifies the amount of quantity to count."
msgstr ""
#. module: analytic
#: help:account.analytic.line,currency_id:0
msgid "The related account currency if not equal to the company one."
msgstr ""
#. module: analytic
#: model:ir.module.module,description:analytic.module_meta_information
msgid ""
"Module for defining analytic accounting object.\n"
" "
msgstr ""
#. module: analytic
#: field:account.analytic.account,state:0
msgid "State"
msgstr "Riik/Osariik"
#. module: analytic
#: field:account.analytic.account,user_id:0
msgid "Account Manager"
msgstr "Konto haldur"
#. module: analytic
#: selection:account.analytic.account,state:0
msgid "Draft"
msgstr "Mustand"
#. module: analytic
#: selection:account.analytic.account,state:0
msgid "Closed"
msgstr "Suletud"
#. module: analytic
#: field:account.analytic.account,debit:0
msgid "Debit"
msgstr "Deebet"
#. module: analytic
#: help:account.analytic.account,state:0
msgid ""
"* When an account is created its in 'Draft' state. "
" \n"
"* If any associated partner is there, it can be in 'Open' state. "
" \n"
"* If any pending balance is there it can be in 'Pending'. "
" \n"
"* And finally when all the transactions are over, it can be in 'Close' "
"state. \n"
"* The project can be in either if the states 'Template' and 'Running'.\n"
" If it is template then we can make projects based on the template projects. "
"If its in 'Running' state it is a normal project. "
" \n"
" If it is to be reviewed then the state is 'Pending'.\n"
" When the project is completed the state is set to 'Done'."
msgstr ""
#. module: analytic
#: field:account.analytic.account,type:0
msgid "Account Type"
msgstr "Konto tüüp"
#. module: analytic
#: selection:account.analytic.account,state:0
msgid "Template"
msgstr "Mall"
#. module: analytic
#: selection:account.analytic.account,state:0
msgid "Pending"
msgstr "Ootel"
#. module: analytic
#: model:ir.model,name:analytic.model_account_analytic_line
msgid "Analytic Line"
msgstr ""
#. module: analytic
#: field:account.analytic.account,description:0
#: field:account.analytic.line,name:0
msgid "Description"
msgstr "Kirjeldus"
#. module: analytic
#: help:account.analytic.line,amount:0
msgid ""
"Calculated by multiplying the quantity and the price given in the Product's "
"cost price."
msgstr ""
#. module: analytic
#: field:account.analytic.account,company_id:0
#: field:account.analytic.line,company_id:0
msgid "Company"
msgstr "Ettevõte"
#. module: analytic
#: field:account.analytic.account,quantity_max:0
msgid "Maximum Quantity"
msgstr ""
#. module: analytic
#: field:account.analytic.line,user_id:0
msgid "User"
msgstr "Kasutaja"
#. module: analytic
#: field:account.analytic.account,parent_id:0
msgid "Parent Analytic Account"
msgstr "Ülem analüütiline konto"
#. module: analytic
#: field:account.analytic.line,date:0
msgid "Date"
msgstr "Kuupäev"
#. module: analytic
#: field:account.analytic.account,currency_id:0
#: field:account.analytic.line,currency_id:0
msgid "Account currency"
msgstr ""
#. module: analytic
#: selection:account.analytic.account,type:0
msgid "View"
msgstr "Vaade"
#. module: analytic
#: help:account.analytic.account,quantity_max:0
msgid "Sets the higher limit of quantity of hours."
msgstr ""
#. module: analytic
#: field:account.analytic.account,credit:0
msgid "Credit"
msgstr "Krediit"
#. module: analytic
#: field:account.analytic.line,amount:0
msgid "Amount"
msgstr "Kogus"
#. module: analytic
#: field:account.analytic.account,contact_id:0
msgid "Contact"
msgstr "Kontakt"
#. module: analytic
#: selection:account.analytic.account,state:0
msgid "Cancelled"
msgstr "Katkestatud"
#. module: analytic
#: field:account.analytic.account,balance:0
msgid "Balance"
msgstr "Balanss"
#. module: analytic
#: field:account.analytic.account,date_start:0
msgid "Date Start"
msgstr "Alguskuupäev"
#. module: analytic
#: field:account.analytic.account,quantity:0
#: field:account.analytic.line,unit_amount:0
msgid "Quantity"
msgstr "Kvantiteet"
#. module: analytic
#: field:account.analytic.account,date:0
msgid "Date End"
msgstr "Lõppkuupäev"
#. module: analytic
#: field:account.analytic.account,code:0
msgid "Account Code"
msgstr "Konto kood"
#. module: analytic
#: selection:account.analytic.account,type:0
msgid "Normal"
msgstr "Normaalne"
#. module: analytic
#: field:account.analytic.account,complete_name:0
msgid "Full Account Name"
msgstr "Täielik konto nimi"
#. module: analytic
#: field:account.analytic.line,account_id:0
#: model:ir.model,name:analytic.model_account_analytic_account
#: model:ir.module.module,shortdesc:analytic.module_meta_information
msgid "Analytic Account"
msgstr "Analüütiline konto"
#. module: analytic
#: field:account.analytic.account,company_currency_id:0
msgid "Currency"
msgstr "Rahaühik"
#. module: analytic
#: field:account.analytic.line,amount_currency:0
msgid "Amount currency"
msgstr ""
#. module: analytic
#: field:account.analytic.account,partner_id:0
msgid "Associated Partner"
msgstr "Seotud partner"
#. module: analytic
#: selection:account.analytic.account,state:0
msgid "Open"
msgstr "Ava"
#. module: analytic
#: field:account.analytic.account,line_ids:0
msgid "Analytic Entries"
msgstr "Analüütilised kirjed"
-1
View File
@@ -1147,7 +1147,6 @@ e.g.: Every other month on the last Sunday of the month for 10 occurrences:\
'active': fields.boolean('Active', help="If the active field is set to \
true, it will allow you to hide the event alarm information without removing it.")
}
_defaults = {
'state': 'tentative',
'class': 'public',
+60 -60
View File
@@ -6,69 +6,69 @@
<field name="type">form</field>
<field name="inherit_id" ref="base.res_config_view_base"/>
<field name="arch" type="xml">
<data>
<form position="attributes">
<attribute name="string">Main Company Setup</attribute>
</form>
<xpath expr="//label[@string='description']" position="attributes">
<attribute name="string">Information of your company will be used to custiomise your documents like Invoices, Sale Orders and many more.</attribute>
</xpath>
<xpath expr='//separator[@string="title"]' position='attributes'>
<attribute name='string'>Configure Your Company</attribute>
</xpath>
<xpath expr='//separator[@string="vsep"]' position='attributes'>
<attribute name='rowspan'>25</attribute>
<attribute name='string'></attribute>
</xpath>
<group string="res_config_contents" position="replace">
<group colspan="5">
<group colspan="2">
<field name="company_id" invisible="1"/>
<field name="name" required="True"/><field name="website"/>
<field name="street"/><field name="street2"/>
<field name="zip"/>
<field name="city"/>
<field name="country_id"/>
<field name="state_id"/>
<field name="phone"/>
<field name="email"/>
<field name="account_no"/>
<field name="currency" widget="selection"/>
</group>
<newline/>
<group colspan="2" groups="base.group_extended">
<!-- <separator string="Report Information" colspan="4" />-->
<field name="rml_header1" colspan="5" invisible="1"/>
<field name="rml_footer1" colspan="5" invisible="1"/>
<field name="rml_footer2" colspan="5" invisible="1"/>
<data>
<form position="attributes">
<attribute name="string">Main Company Setup</attribute>
</form>
<xpath expr="//label[@string='description']" position="attributes">
<attribute name="string">Information of your company will be used to custiomise your documents like Invoices, Sale Orders and many more.</attribute>
</xpath>
<xpath expr='//separator[@string="title"]' position='attributes'>
<attribute name='string'>Configure Your Company</attribute>
</xpath>
<xpath expr='//separator[@string="vsep"]' position='attributes'>
<attribute name='rowspan'>25</attribute>
<attribute name='string'></attribute>
</xpath>
<group string="res_config_contents" position="replace">
<group colspan="5">
<group colspan="2">
<field name="company_id" invisible="1"/>
<field name="name" required="True"/><field name="website"/>
<field name="street"/><field name="street2"/>
<field name="zip"/>
<field name="city"/>
<field name="country_id"/>
<field name="state_id"/>
<field name="phone"/>
<field name="email"/>
<field name="account_no"/>
<field name="currency" widget="selection"/>
</group>
<newline/>
<group colspan="2" groups="base.group_extended" >
<!-- <separator string="Report Information" colspan="4" />-->
<field name="rml_header1" colspan="5" invisible="1"/>
<field name="rml_footer1" colspan="5" invisible="1"/>
<field name="rml_footer2" colspan="5" invisible="1"/>
<separator colspan="4"
string="Your Logo - Use a size of about 450x150 pixels."/>
<field colspan="5" name="logo" widget="image"
nolabel="1" invisible="1"/>
</group>
</group>
</group>
<separator colspan="4"
string="Your Logo - Use a size of about 450x150 pixels."/>
<field colspan="5" name="logo" widget="image"
nolabel="1"/>
</group>
</group>
</group>
<xpath expr='//button[@name="action_skip"]' position='replace'/>
</data>
</field>
</record>
<xpath expr='//button[@name="action_skip"]' position='replace'/>
</data>
</field>
</record>
<record id="action_base_setup_company" model="ir.actions.act_window">
<field name="name">Setup company information</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">base.setup.company</field>
<field name="view_id" ref="view_base_setup_company"/>
<field name="view_type">form</field>
<field name="view_mode">form</field>
<field name="target">new</field>
</record>
<record id="action_base_setup_company" model="ir.actions.act_window">
<field name="name">Setup company information</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">base.setup.company</field>
<field name="view_id" ref="view_base_setup_company"/>
<field name="view_type">form</field>
<field name="view_mode">form</field>
<field name="target">new</field>
</record>
<record id="base_setup_company_todo" model="ir.actions.todo">
<field name="action_id" ref="action_base_setup_company"/>
<field name="sequence">3</field>
<field name="restart">onskip</field>
</record>
<record id="base_setup_company_todo" model="ir.actions.todo">
<field name="action_id" ref="action_base_setup_company"/>
<field name="sequence">3</field>
<field name="restart">onskip</field>
</record>
</data>
</openerp>
+7
View File
@@ -301,6 +301,13 @@ class crm_case(object):
self.write(cr, uid, ids, {'state': 'cancel',
'active': True})
self._action(cr, uid, cases, 'cancel')
for case in cases:
message = "The " + self._description + " '" + case.name + "' has been Cancelled."
#TODO: Need to differentiate lead and opportunity
# if hasattr(case, 'type'):
# #TO CHECK: hasattr gives warning for other crm objects that don't have field 'type'
# message = "The " + (case.type or 'Case').title() + " '" + case.name + "' has been Cancelled."
self.log(cr, uid, case.id, message)
return True
def case_pending(self, cr, uid, ids, *args):
+3 -3
View File
@@ -198,8 +198,8 @@ class crm_lead(osv.osv, crm_case):
self.write(cr, uid, ids, value)
for (id, name) in self.name_get(cr, uid, ids):
type = self.browse(cr, uid, id).type
message = (_('The ') + type.title() or 'Lead') + " '" + name + "' "+ _("has been written as Open.")
type = self.browse(cr, uid, id).type or 'Lead'
message = (_('The ') + type.title()) + " '" + name + "' "+ _("has been Opened.")
self.log(cr, uid, id, message)
return res
@@ -216,7 +216,7 @@ class crm_lead(osv.osv, crm_case):
for (id, name) in self.name_get(cr, uid, ids):
lead = self.browse(cr, uid, id)
if lead.type == 'lead':
message = _('The Lead') + " '" + name + "' "+ _("has been written as Closed.")
message = _('The Lead') + " '" + name + "' "+ _("has been Closed.")
self.log(cr, uid, id, message)
return res
+15 -1
View File
@@ -122,7 +122,21 @@ class crm_meeting(osv.osv, crm_case):
}
return value
def case_open(self, cr, uid, ids, *args):
"""Confirms meeting
@param self: The object pointer
@param cr: the current row, from the database cursor,
@param uid: the current user’s ID for security checks,
@param ids: List of Meeting Ids
@param *args: Tuple Value for additional Params
"""
res = super(crm_meeting, self).case_open(cr, uid, ids, args)
for (id, name) in self.name_get(cr, uid, ids):
message = _('The Meeting') + " '" + name + "' "+ _("has been Confirmed.")
self.log(cr, uid, id, message)
return res
crm_meeting()
class calendar_attendee(osv.osv):
+5 -5
View File
@@ -36,8 +36,6 @@ AVAILABLE_STATES = [
class crm_opportunity(osv.osv):
""" Opportunity Cases """
_name = "crm.lead"
_description = "Opportunity"
_order = "priority,date_action,id desc"
_inherit = 'crm.lead'
_columns = {
@@ -72,8 +70,10 @@ class crm_opportunity(osv.osv):
self.write(cr, uid, ids, value)
for (id, name) in self.name_get(cr, uid, ids):
message = _('The Opportunity') + " '" + name + "' "+ _("has been written as Won.")
self.log(cr, uid, id, message)
opp = self.browse(cr, uid, id)
if opp.type == 'opportunity':
message = _('The Opportunity') + " '" + name + "' "+ _("has been Won.")
self.log(cr, uid, id, message)
return res
def case_mark_lost(self, cr, uid, ids, *args):
@@ -95,7 +95,7 @@ class crm_opportunity(osv.osv):
for (id, name) in self.name_get(cr, uid, ids):
opp = self.browse(cr, uid, id)
if opp.type == 'opportunity':
message = _('The Opportunity') + " '" + name + "' "+ _("has been written as Lost.")
message = _('The Opportunity') + " '" + name + "' "+ _("has been Lost.")
self.log(cr, uid, id, message)
return res
+1 -1
View File
@@ -28,7 +28,7 @@ class crm_claim(osv.osv, crm.crm_case):
Crm claim
"""
_name = "crm.claim"
_description = "Claim Cases"
_description = "Claim"
_order = "id desc"
_inherit = ['mailgate.thread']
_columns = {
+1 -1
View File
@@ -26,7 +26,7 @@ class crm_fundraising(osv.osv, crm.crm_case):
""" Fund Raising Cases """
_name = "crm.fundraising"
_description = "Fund Raising Cases"
_description = "Fund Raising"
_order = "id desc"
_inherit = ['mailgate.thread']
_columns = {
+1 -1
View File
@@ -27,7 +27,7 @@ class crm_helpdesk(osv.osv, crm.crm_case):
""" Helpdesk Cases """
_name = "crm.helpdesk"
_description = "Helpdesk Cases"
_description = "Helpdesk"
_order = "id desc"
_inherit = ['mailgate.thread']
_columns = {
-1
View File
@@ -13,6 +13,5 @@
<field name="sequence">1</field>
<field name="res_id" ref="menu_board_document_manager"/>
</record> -->
</data>
</openerp>
+1 -1
View File
@@ -85,7 +85,7 @@
<field name="inherit_id" ref="base.view_users_form"/>
<field name="arch" type="xml">
<notebook position="inside">
<page string="Departements Informations" groups="base.group_extended">
<page string="Departments" groups="base.group_extended">
<field name="context_department_id" completion="1" widget="selection" string="Department"/>
<separator string="Managers" colspan="4"/>
<field name="parent_id" nolabel="1" colspan="4"/>
+1 -2
View File
@@ -1,4 +1,3 @@
#!/usr/bin/env python
#-*- coding:utf-8 -*-
##############################################################################
#
@@ -25,4 +24,4 @@ import hr_payroll
import report
import wizard
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+3 -5
View File
@@ -53,13 +53,11 @@
'wizard/hr_payroll_create_analytic.xml',
'wizard/hr_payroll_employees_detail.xml',
'wizard/hr_payroll_year_salary.xml',
],
'test': [
'test/payslip.yml',
'test/payment_advice.yml',
'test/payroll_register.yml',
'test/payslip.yml',
'test/payment_advice.yml',
'test/payroll_register.yml',
],
'demo_xml': [
'hr_payroll_demo.xml'
-21
View File
@@ -1145,27 +1145,6 @@ class hr_payslip_line(osv.osv):
_name = 'hr.payslip.line'
_description = 'Payslip Line'
# def _calculate(self, cr, uid, ids, field_names, arg, context):
# res = {}
# obj = {}
# for line in self.browse(cr, uid, ids, context):
# obj['basic'] = line.slip_id.basic
# amount = 0.0
#
# if line.amount_type == 'per' and line.base:
# print 'XXXXXXXXXXXXXXXX : ', obj
# amount = line.amount * eval(line.base, obj)
# elif line.amount_type in ('fix', 'func'):
# amount = line.amount
# cd = line.category_id.code.lower()
# obj[cd] = amount
# print 'XXXXXXXXXXXXXXXXXX : ', cd
#
# res[line.id] = amount
# print 'XXXXXXXXXXXX : ', obj
# return res
def onchange_category(self, cr, uid, ids, category_id):
seq = 0
res = {
-11
View File
@@ -25,16 +25,5 @@
parent="menu_hr_payroll_reporting"
name="Employee Salary Statement"
type="wizard"/>
<!-- <wizard id="wizard_payroll_analysis"-->
<!-- menu="False" -->
<!-- model="account.analytic.account" -->
<!-- name="payroll.analysis" -->
<!-- string="Create Analytic Structure"/>-->
<!-- <menuitem id="menu_wizard_payroll_analysis" -->
<!-- action="wizard_payroll_analysis" -->
<!-- parent="payroll_configure" -->
<!-- name="Create Analytic Structure"-->
<!-- type="wizard"/>-->
</data>
</openerp>
-11
View File
@@ -10,17 +10,6 @@
<form position="attributes">
<attribute name="string">Account Journal</attribute>
</form>
<separator string="title" position="attributes">
<attribute name="string">Define Account Journal</attribute>
</separator>
<xpath expr="//label[@string='description']"
position="attributes">
<attribute name="string"></attribute>
</xpath>
<xpath expr='//separator[@string="vsep"]' position='attributes'>
<attribute name='rowspan'>13</attribute>
<attribute name='string'></attribute>
</xpath>
<group string="res_config_contents" position="replace">
<label colspan="4" align="0.0"
string="Set accounts on financial journals defined by CamptoCamp l10n_ch module"/>
+6
View File
@@ -204,6 +204,7 @@
<field name="view_type">form</field>
<field name="view_id" ref="mrp_workcenter_tree_view"/>
<field name="search_view_id" ref="view_mrp_workcenter_search"/>
<field name="help">Work Centers are units of manufacture consisting of one or several people and/or machines that can be considered as a unit for the purposes of forecasting capacity and planning.</field>
</record>
<!--
@@ -278,6 +279,7 @@
<field name="res_model">mrp.routing</field>
<field name="view_type">form</field>
<field name="view_id" ref="mrp_routing_tree_view"/>
<field name="help">Routings define the assembly operations to be done in work centers for manufacturing a certain product. They are usually attached to bills of materials which will define the assembly of products required for manufacture or for finished products.</field>
</record>
<!-- <menuitem name="Routings" id="menu_mrp_routing_and_workcenters" parent="mrp.menu_mrp_bom" groups="base.group_extended"
sequence="100" />-->
@@ -398,6 +400,7 @@
<field name="view_type">form</field>
<field name="domain">[('bom_id','=',False)]</field>
<field name="search_view_id" ref="view_mrp_bom_filter"/>
<field name="help">Master Bills of Materials are documents that describe the list of raw materials used to make a finished product. You can generate documents for a product manufacturing (defining each manufacturing step) or you could define a single multi-level bill of materials.</field>
</record>
<record id="mrp_bom_form_action2" model="ir.actions.act_window">
<field name="name">Bill of Material Components</field>
@@ -405,6 +408,7 @@
<field name="res_model">mrp.bom</field>
<field name="view_type">form</field>
<field name="domain">[('bom_id','!=',False)]</field>
<field name="help">Bills of materials Components are components and sub-product used to create master bills of materials.</field>
</record>
<!-- BOM menus -->
@@ -762,6 +766,7 @@
<field name="view_id" eval="False"/>
<field name="search_view_id" ref="view_mrp_production_filter"/>
<field name="context">{'search_default_Current':1}</field>
<field name="help">Manufacturing Orders describe the operations that need to be carried out and the raw materials usage for each stage of production. You use specifications (bills of materials) to work out the raw material requirements and the manufacturing orders needed for the finished products. Once the bills of materials have been defined, Open ERP becomes capable of automatically deciding on the manufacturing route depending on the needs of the company.</field>
</record>
<menuitem action="mrp_production_action" id="menu_mrp_production_action" parent="menu_mrp_manufacturing" sequence="1"/>
@@ -772,6 +777,7 @@
<field name="view_type">form</field>
<field name="view_mode">gantt,tree,form,calendar,graph</field>
<field name="domain">[('state','in',('ready','confirmed','in_production'))]</field>
<field name="help">Manufacturing Orders describe the operations that need to be carried out and the raw materials usage for each stage of production. You use specifications (bills of materials or BoM) to work out the raw material requirements and the manufacturing orders needed for the finished products. Once the bills of materials have been defined, Open ERP becomes capable of automatically deciding on the manufacturing route depending on the needs of the company.</field>
</record>
<record id="mrp_production_action2" model="ir.actions.act_window">
@@ -109,8 +109,7 @@
<field name="view_mode">tree,graph</field>
<field name="view_id" ref="view_report_mrp_production_order_tree"/>
<field name="search_view_id" ref="view_report_mrp_production_order_filter"/>
<field name="context">{'search_default_Product': 1,'search_default_month':1,'group_by_no_leaf':1,'group_by':[]}</field>
<field name="context">{'search_default_Product': 1,'search_default_month':1,'group_by_no_leaf':1,'group_by':[]}</field>
</record>
<record model="ir.actions.act_window.view" id="action_report_mrp_production_order_tree">
+2
View File
@@ -49,6 +49,7 @@
<field name="res_model">report.workcenter.load</field>
<field name="view_type">form</field>
<field name="view_mode">graph,tree</field>
<field name="help">Work Center Load is a projection of load in a work center given a period. The load is express in hour and cycle (for machines).</field>
</record>
<menuitem id="next_id_77" name="Reporting"
parent="base.menu_mrp_root" sequence="49"/>
@@ -100,6 +101,7 @@
<field name="res_model">report.mrp.inout</field>
<field name="view_type">form</field>
<field name="view_mode">graph,tree</field>
<field name="help">Weekly Stock Value Variation enables you to track stock value evolution as a result of manufacturing activities (consumption of raw materials, production of finished goods, added accounting value of stock by the creation of value following the transformation of products).</field>
</record>
<menuitem action="action_report_in_out_picking_tree" id="menu_report_in_out_picking" parent="next_id_77"/>
@@ -194,6 +194,7 @@
<field name="view_type">form</field>
<field name="view_mode">tree,form,gantt,calendar,graph</field>
<field name="search_view_id" ref="view_mrp_production_workcenter_form_view_filter"/>
<field name="help">Work Orders are manufacturing operations required to produce or assemble products. The different work orders will have different impacts on the costs of manufacture and planning depending on the available workload.</field>
</record>
<record model="ir.actions.act_window" id="mrp_production_wc_action_planning">
@@ -203,6 +204,7 @@
<field name="view_type">form</field>
<field name="domain">[('production_state','in',('ready','confirmed','in_production'))]</field>
<field name="view_mode">tree,form,graph,calendar</field>
<field name="help">To manufacture or assemble products, as well as using raw materials and finished product you must also handle manufacturing operations. Manufacturing operations are often called work orders. The different operations will have different impacts on the costs of manufacture and planning depending on the available workload.</field>
</record>
+27 -7
View File
@@ -50,8 +50,10 @@ class pos_company_discount(osv.osv):
'company_discount': fields.float('Max Discount(%)', digits_compute= dp.get_precision('Point Of Sale')),
'max_diff': fields.float('Max Difference for Cashboxes', digits_compute= dp.get_precision('Point Of Sale Discount')),
}
pos_company_discount()
class pos_order(osv.osv):
""" Point of sale gives business owners a convenient way of checking out customers
@@ -62,6 +64,7 @@ class pos_order(osv.osv):
_order = "date_order, create_date desc"
_order = "date_order desc"
def unlink(self, cr, uid, ids, context={}):
for rec in self.browse(cr, uid, ids, context=context):
@@ -108,6 +111,7 @@ class pos_order(osv.osv):
# Todo need to check this function
""" Find payment Date
@param field_names: Names of fields.
@return: Dictionary of values """
@@ -197,6 +201,8 @@ class pos_order(osv.osv):
res[order.id]['amount_tax'] = cur_obj.round(cr, uid, cur, val)
return res
def _sale_journal_get(self, cr, uid, context):
""" To get sale journal for this order"
@@ -305,8 +311,7 @@ class pos_order(osv.osv):
'pickings': fields.one2many('stock.picking', 'pos_order', 'Picking', readonly=True),
'picking_id': fields.many2one('stock.picking', 'Last Output Picking', readonly=True),
'first_name': fields.char('First Name', size=64),
# 'state_2': fields.function(_get_v,type='selection',selection=[('to_verify', 'To Verify'), ('accepted', 'Accepted'),
# ('refused', 'Refused')], string='State', readonly=True, method=True, store=True),
# 'state_2': fields.function(_get_v,type='selection',selection=[('to_verify', 'To Verify'), ('accepted', 'Accepted'),('refused', 'Refused')], string='State', readonly=True, method=True, store=True),
'note': fields.text('Internal Notes'),
'nb_print': fields.integer('Number of Print', readonly=True),
'sale_journal': fields.many2one('account.journal', 'Journal', required=True, states={'draft': [('readonly', False)]}, readonly=True, ),
@@ -318,6 +323,7 @@ class pos_order(osv.osv):
'journal_entry': fields.boolean('Journal Entry'),
}
def _select_pricelist(self, cr, uid, context):
""" To get default pricelist for the order"
@@ -360,6 +366,7 @@ class pos_order(osv.osv):
'pricelist_id': _select_pricelist,
}
def test_order_lines(self, cr, uid, order, context={}):
""" Test order line is created or not for the order "
@@ -392,10 +399,12 @@ class pos_order(osv.osv):
def _get_qty_differences(self, orders, old_picking):
"""check if the customer changed the product quantity """
order_dict = {}
for order in orders:
for line in order.lines:
order_dict[line.product_id.id] = line
# check the quantity differences:
diff_dict = {}
for line in old_picking.move_lines:
@@ -555,7 +564,7 @@ class pos_order(osv.osv):
# """
# res_obj = self.pool.get('res.company')
# try:
# part_company=res_obj.browse(cr,uid,uid) and res_obj.browse(cr,uid,uid).parent_id and res_obj.browse(cr,uid,uid).parent_id.id or None
# part_company=res_obj.browse(cr,uid,uid) and res_obj.browse(cr,uid,uid).parent_id and res_obj.browse######(cr,uid,uid).parent_id.id or None
# except Exception, e:
# raise osv.except_osv(_('Error'), _('You don\'t have enough access to validate this sale!'))
# if part_company:
@@ -566,9 +575,10 @@ class pos_order(osv.osv):
# val=cr.fetchone()
# val=val and val[0] or None
# if val:
# cr.execute("Update pos_order set date_validation='%s', state_2 ='%s' where id = %d"%(val, 'accepted', order.id))
# cr.execute("Update pos_order set date_validation='%s', state_2 ='%s' where id = %d"%(val, 'accepted', order.id))
# return True
def cancel_order(self, cr, uid, ids, context=None):
""" Changes order state to cancel
@@ -676,6 +686,7 @@ class pos_order(osv.osv):
})
clone_list.append(clone_id)
for clone in self.browse(cr, uid, clone_list):
for order_line in clone.lines:
line_obj.write(cr, uid, [order_line.id], {
@@ -693,7 +704,6 @@ class pos_order(osv.osv):
product_obj= self.pool.get('product.product')
inv_ids = []
# for order in self.browse(cr, uid, ids, context):
for order in self.pool.get('pos.order').browse(cr, uid, ids, context):
curr_c = order.user_salesman_id.company_id
if order.invoice_id:
@@ -737,6 +747,7 @@ class pos_order(osv.osv):
inv_line['discount'] = line.discount
inv_line['account_id'] = acc
inv_line['name'] = inv_name
inv_line['invoice_line_tax_id'] = ('invoice_line_tax_id' in inv_line)\
and [(6, 0, inv_line['invoice_line_tax_id'])] or []
inv_line_ref.create(cr, uid, inv_line, context)
@@ -765,6 +776,7 @@ class pos_order(osv.osv):
to_reconcile = []
group_tax = {}
account_def = property_obj.get(cr, uid, 'property_account_receivable', 'res.partner', context=context).id
order_account = order.partner_id and order.partner_id.property_account_receivable and order.partner_id.property_account_receivable.id or account_def or curr_c.account_receivable.id
# Create an entry for the sale
@@ -813,6 +825,7 @@ class pos_order(osv.osv):
'account defined for this product: "%s" (id:%d)') \
% (line.product_id.name, line.product_id.id, ))
# Empty the tax list as long as there is no tax code:
tax_code_id = False
tax_amount = 0
@@ -874,6 +887,7 @@ class pos_order(osv.osv):
'tax_amount': tax_amount,
}, context=context)
# Create a move for each tax group
(tax_code_pos, base_code_pos, account_pos)= (0, 1, 2)
for key, amount in group_tax.items():
@@ -910,6 +924,7 @@ class pos_order(osv.osv):
'period_id': period,
}, context=context))
# search the account receivable for the payments:
account_receivable = order.sale_journal.default_credit_account_id.id
if not account_receivable:
@@ -947,6 +962,7 @@ class pos_order(osv.osv):
'statement_id': False,
'account_id':order_account
})
self.write(cr,uid,order.id,{'state':'done'})
return True
@@ -956,6 +972,7 @@ class pos_order(osv.osv):
self.pool.get('stock.picking').unlink(cr, uid, [picking.id], context)
return True
def action_payment(self, cr, uid, ids, context=None):
vals = {'state': 'payment'}
sequence_obj=self.pool.get('ir.sequence')
@@ -1058,6 +1075,7 @@ class pos_order_line(osv.osv):
def _amount_line(self, cr, uid, ids, field_name, arg, context):
res = {}
for line in self.browse(cr, uid, ids):
price = self.price_by_product(cr, uid, ids, line.order_id.pricelist_id.id, line.product_id.id, line.qty, line.order_id.partner_id.id)
if line.discount!=0.0:
@@ -1106,7 +1124,7 @@ class pos_order_line(osv.osv):
def onchange_dis(self, cr, uid,ids, qty, price_subtotal_incl, discount,*a):
price_sub = price_subtotal_incl
sub_total_discount = price_sub-(price_subtotal_incl*(discount*0.01))
return {'value': {'price_subtotal_incl':sub_total_discount}}
return {'value': {'price_subtotal_incl':sub_total_discount}}
def onchange_ded(self, cr, uid,ids, val_ded,price_u,*a):
pos_order = self.pool.get('pos.order.line')
@@ -1125,7 +1143,6 @@ class pos_order_line(osv.osv):
res_obj = self.pool.get('res.users')
res_company = self.pool.get('res.company')
company_disc = pos_order.browse(cr,uid,ids)
if discount:
if not company_disc:
comp=res_obj.browse(cr,uid,uid).company_id.company_discount or 0.0
@@ -1201,6 +1218,7 @@ class pos_order_line(osv.osv):
product = self.pool.get('product.product').read(cr, uid, product_id)
product_name = product[0]['name']
price = self.price_by_product(cr, uid, 0, pricelist_id[0]['pricelist_id'][0], product_id[0], 1)
order_line_ids = self.search(cr, uid, [('name','=',product_name),('order_id','=',order)])
if order_line_ids:
new_line = False
@@ -1232,6 +1250,7 @@ class pos_order_line(osv.osv):
pos_order_line()
class pos_payment(osv.osv):
_name = 'pos.payment'
_description = 'Pos Payment'
@@ -1299,6 +1318,7 @@ class account_move_line(osv.osv):
account_move_line()
class account_move(osv.osv):
_inherit = 'account.move'
+70 -70
View File
@@ -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/>.
#
##############################################################################
@@ -31,31 +31,31 @@ import pos_receipt
class pos_make_payment(osv.osv_memory):
_name = 'pos.make.payment'
_description = 'Point of Sale Payment'
def default_get(self, cr, uid, fields, context):
"""
"""
To get default values for the object.
@param self: The object pointer.
@param cr: A database cursor
@param uid: ID of the user currently logged in
@param fields: List of fields for which we want default values
@param context: A standard dictionary
@return: A dictionary which of fields with values.
@param fields: List of fields for which we want default values
@param context: A standard dictionary
@return: A dictionary which of fields with values.
"""
res = super(pos_make_payment, self).default_get(cr, uid, fields, context=context)
active_id = context and context.get('active_id',False)
if active_id:
active_id = context and context.get('active_id',False)
if active_id:
j_obj = self.pool.get('account.journal')
company_id = self.pool.get('res.users').browse(cr, uid, uid).company_id.id
journal = j_obj.search(cr, uid, [('type', '=', 'cash'), ('company_id', '=', company_id)])
if journal:
journal = journal[0]
else:
journal = None
wf_service = netsvc.LocalService("workflow")
order_obj=self.pool.get('pos.order')
order = order_obj.browse(cr, uid, active_id, context)
#get amount to pay
@@ -66,50 +66,50 @@ class pos_make_payment(osv.osv_memory):
elif order.amount_paid > 0.0:
order_obj.write(cr, uid, [active_id], {'state': 'advance'})
invoice_wanted_checked = False
current_date = time.strftime('%Y-%m-%d')
if 'journal' in fields:
res.update({'journal':journal})
res.update({'journal':journal})
if 'amount' in fields:
res.update({'amount':amount})
res.update({'amount':amount})
if 'invoice_wanted' in fields:
res.update({'invoice_wanted':invoice_wanted_checked})
res.update({'invoice_wanted':invoice_wanted_checked})
if 'payment_date' in fields:
res.update({'payment_date':current_date})
if 'payment_name' in fields:
res.update({'payment_name':'Payment'})
if 'payment_name' in fields:
res.update({'payment_name':'Payment'})
return res
def view_init(self, cr, uid, fields_list, context=None):
res = super(pos_make_payment, self).view_init(cr, uid, fields_list, context=context)
active_id = context and context.get('active_id', False) or False
active_id = context and context.get('active_id', False) or False
if active_id:
order = self.pool.get('pos.order').browse(cr, uid, active_id)
if not order.lines:
raise osv.except_osv('Error!','No order lines defined for this sale ')
return True
def fields_view_get(self, cr, uid, view_id=None, view_type='form', context=None, toolbar=False, submenu=False):
"""
"""
Changes the view dynamically
@param self: The object pointer.
@param cr: A database cursor
@param uid: ID of the user currently logged in
@param context: A standard dictionary
@param context: A standard dictionary
@return: New arch of view.
"""
result = super(pos_make_payment, self).fields_view_get(cr, uid, view_id=view_id, view_type=view_type, context=context, toolbar=toolbar,submenu=False)
active_model = context.get('active_model')
active_id = context.get('active_id', False)
if not active_id or (active_model and active_model != 'pos.order'):
return result
return result
order = self.pool.get('pos.order').browse(cr, uid, active_id)
if order.amount_total == order.amount_paid:
result['arch'] = """ <form string="Make Payment" colspan="4">
@@ -120,23 +120,23 @@ class pos_make_payment(osv.osv_memory):
<button name="print_report" string="Print Receipt" type="object" icon="gtk-print"/>
</group>
</form>
"""
"""
return result
def check(self, cr, uid, ids, context):
"""Check the order:
if the order is not paid: continue payment,
if the order is paid print invoice (if wanted) or ticket.
"""
active_id = context and context.get('active_id',False)
active_id = context and context.get('active_id',False)
order_obj = self.pool.get('pos.order')
jrnl_obj = self.pool.get('account.journal')
jrnl_obj = self.pool.get('account.journal')
order = order_obj.browse(cr, uid, active_id, context)
order_name = order.name
amount = order.amount_total - order.amount_paid
data = self.read(cr, uid, ids)[0]
# Todo need to check ...
if amount !=0.0:
invoice_wanted = data['invoice_wanted']
@@ -158,8 +158,8 @@ class pos_make_payment(osv.osv_memory):
if order.invoice_id:
inv_ids.append(order.invoice_id.id)
# continue
if not make_obj.partner_id:
raise osv.except_osv(_('Error'), _('Please provide a partner for the sale.'))
# if not make_obj.partner_id:
# raise osv.except_osv(_('Error'), _('Please provide a partner for the sale.'))
acc= make_obj.partner_id.property_account_receivable.id
inv = {
'name': 'Invoice from POS: '+order_name,
@@ -184,7 +184,7 @@ class pos_make_payment(osv.osv_memory):
'quantity': line.qty,
}
inv_name = product_obj.name_get(cr, uid, [line.product_id.id], context=context)[0][1]
inv_line.update(inv_line_ref.product_id_change(cr, uid, [],
line.product_id.id,
line.product_id.uom_id.id,
@@ -203,16 +203,16 @@ class pos_make_payment(osv.osv_memory):
for i in inv_ids:
wf_service = netsvc.LocalService("workflow")
wf_service.trg_validate(uid, 'account.invoice', i, 'invoice_open', cr)
# return inv_ids
# return inv_ids
# Todo need to check
# if amount<=0.0:
# context.update({'flag':True})
# order_obj.action_paid(cr,uid,[active_id],context)
# def test_paid(self, cr, uid, ids, context=None):
# """ Test all amount is paid for this order
# def test_paid(self, cr, uid, ids, context=None):
# """ Test all amount is paid for this order
# @return: True
# """
# """
# for order in self.browse(cr, uid, ids, context):
# if order.lines and not order.amount_total:
# return True
@@ -223,61 +223,61 @@ class pos_make_payment(osv.osv_memory):
# if order_obj.test_paid(cr, uid, [active_id]):
if order_obj.browse(cr, uid, [active_id]):
if make_obj.partner_id and make_obj.invoice_wanted:
order_obj.write(cr, uid, [active_id],{'state':'paid'})
order_obj.write(cr, uid, [active_id],{'state':'paid'})
if context.get('return'):
order_obj.write(cr, uid, [active_id],{'state':'done'})
order_obj.write(cr, uid, [active_id],{'state':'done'})
else:
order_obj.write(cr, uid, [active_id],{'state':'paid'})
return self.print_report(cr, uid, ids, context)
return self.print_report(cr, uid, ids, context)
# return self.create_invoice(cr, uid, ids, context)
else:
context.update({'flag': True})
order_obj.action_paid(cr, uid, [active_id], context)
context.update({'flag': True})
order_obj.action_paid(cr, uid, [active_id], context)
if context.get('return'):
order_obj.write(cr, uid, [active_id],{'state':'done'})
order_obj.write(cr, uid, [active_id],{'state':'done'})
else:
order_obj.write(cr, uid, [active_id],{'state':'paid'})
return self.print_report(cr, uid, ids, context)
order_obj.write(cr, uid, [active_id],{'state':'paid'})
return self.print_report(cr, uid, ids, context)
if order.amount_paid > 0.0:
context.update({'flag': True})
# Todo need to check
order_obj.action_paid(cr, uid, [active_id], context)
order_obj.action_paid(cr, uid, [active_id], context)
self.pool.get('pos.order').write(cr, uid, [active_id],{'state':'advance'})
return self.print_report(cr, uid, ids, context)
return self.print_report(cr, uid, ids, context)
# return {}
return inv_ids
def create_invoice(self, cr, uid, ids, context):
"""
Create a invoice
"""
Create a invoice
"""
wf_service = netsvc.LocalService("workflow")
active_ids = [context and context.get('active_id',False)]
active_ids = [context and context.get('active_id',False)]
for i in active_ids:
wf_service.trg_validate(uid, 'pos.order', i, 'invoice', cr)
datas = {'ids' : context.get('active_id', [])}
return {
datas = {'ids' : context.get('active_id', [])}
return {
'type' : 'ir.actions.report.xml',
'report_name':'pos.invoice',
'datas' : datas,
}
'datas' : datas,
}
def print_report(self, cr, uid, ids, context=None):
"""
@summary: To get the date and print the report
"""
@summary: To get the date and print the report
@param self: The object pointer.
@param cr: A database cursor
@param uid: ID of the user currently logged in
@param context: A standard dictionary
@param context: A standard dictionary
@return : retrun report
"""
"""
if not context:
context={}
active_id=context.get('active_id',[])
active_id=context.get('active_id',[])
datas = {'ids' : [active_id]}
res = {}
res = {}
datas['form'] = res
return {
@@ -303,7 +303,7 @@ class pos_make_payment(osv.osv_memory):
('paid', 'Paid'), ('done', 'Done'), ('invoiced', 'Invoiced'), ('cancel', 'Cancel')],
'State', readonly=True, ),
}
pos_make_payment()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+9 -7
View File
@@ -70,7 +70,7 @@
<group colspan="4" groups="base.group_extended">
<separator colspan="4" string="Properties" />
<field colspan="4" name="property_ids" nolabel="1"/>
</group>
</group>
</page>
<page string="Notes">
<separator colspan="4" string="Note" />
@@ -119,6 +119,7 @@
<field name="context">{'search_default_current':1}</field>
<field name="search_view_id" ref="view_procurement_filter"/>
<field name="context">{'search_default_Current':1}</field>
<field name="help">The procurement order will schedule a proposal for automatic procurement for the product concerned. This procurement will start a task, a purchase order form for the supplier or a production depending on the product configuration.</field>
</record>
<record id="procurement_action3" model="ir.actions.act_window">
@@ -139,6 +140,7 @@
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="domain">[('state','=','exception')]</field>
<field name="help"> For each customer order line or raw materials in a manufacturing order, there is a procurement form . In normal system use, procurement orders are automatically generated by Open ERP. But if there are configuration problems, the system can remain blocked by a procurement without generating a corresponding document. It is a procurement exception. Some problems are link to timing and will be correct automatically by the system. If there is no procurement rule, the exception must be corrected manually.</field>
</record>
<record id="procurement_action4" model="ir.actions.act_window">
@@ -261,12 +263,12 @@
res_model="stock.warehouse.orderpoint"
src_model="procurement.order"/>
<act_window
domain="[('id', '=', product_id)]"
id="act_product_product_2_stock_warehouse_orderpoint"
name="Product"
res_model="product.product"
src_model="procurement.order"/>
<!-- <act_window-->
<!-- domain="[('id', '=', product_id)]"-->
<!-- id="act_product_product_2_stock_warehouse_orderpoint"-->
<!-- name="Product"-->
<!-- res_model="product.product"-->
<!-- src_model="procurement.order"/>-->
</data>
</openerp>
+105
View File
@@ -0,0 +1,105 @@
# French 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-11-25 13:27+0000\n"
"PO-Revision-Date: 2010-07-22 09:16+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: French <fr@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-07-23 04:08+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: product_electronic
#: model:ir.module.module,description:product_electronic.module_meta_information
msgid "A module that add manufacturers and attributes on the product form"
msgstr ""
#. module: product_electronic
#: field:product.product,manufacturer_pref:0
msgid "Manufacturer product code"
msgstr ""
#. module: product_electronic
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
msgstr ""
#. module: product_electronic
#: view:product.electronic.attribute:0
msgid "Product Template Name"
msgstr ""
#. module: product_electronic
#: constraint:ir.model:0
msgid ""
"The Object name must start with x_ and not contain any special character !"
msgstr ""
#. module: product_electronic
#: model:ir.model,name:product_electronic.model_product_electronic_attribute
msgid "Product attributes"
msgstr ""
#. module: product_electronic
#: view:product.product:0
msgid "Manufacturing data"
msgstr ""
#. module: product_electronic
#: view:product.product:0
msgid "Product reference"
msgstr ""
#. module: product_electronic
#: field:product.electronic.attribute,name:0
msgid "Attribute"
msgstr ""
#. module: product_electronic
#: field:product.electronic.attribute,product_id:0
msgid "Product"
msgstr ""
#. module: product_electronic
#: field:product.electronic.attribute,value:0
msgid "Value"
msgstr ""
#. module: product_electronic
#: view:product.product:0
msgid "Manufacturing Data"
msgstr ""
#. module: product_electronic
#: view:product.product:0
msgid "Product name"
msgstr ""
#. module: product_electronic
#: view:product.product:0
#: field:product.product,attribute_ids:0
msgid "Attributes"
msgstr ""
#. module: product_electronic
#: model:ir.module.module,shortdesc:product_electronic.module_meta_information
msgid "Products Attributes & Manufacturers"
msgstr ""
#. module: product_electronic
#: field:product.product,manufacturer_pname:0
msgid "Manufacturer product name"
msgstr ""
#. module: product_electronic
#: field:product.product,manufacturer:0
msgid "Manufacturer"
msgstr ""
+2 -2
View File
@@ -305,13 +305,13 @@ class purchase_order(osv.osv):
def inv_line_create(self, cr, uid, a, ol):
return (0, False, {
'name': ol.name,
'account_id': a,
'account_id': a.id,
'price_unit': ol.price_unit or 0.0,
'quantity': ol.product_qty,
'product_id': ol.product_id.id or False,
'uos_id': ol.product_uom.id or False,
'invoice_line_tax_id': [(6, 0, [x.id for x in ol.taxes_id])],
'account_analytic_id': ol.account_analytic_id.id,
'account_analytic_id': ol.account_analytic_id.id or False,
})
def action_cancel_draft(self, cr, uid, ids, *args):
+4 -13
View File
@@ -561,13 +561,12 @@ class sale_order(osv.osv):
wf_service.trg_validate(uid, 'account.invoice', inv, 'invoice_cancel', cr)
sale_order_line_obj.write(cr, uid, [l.id for l in sale.order_line],
{'state': 'cancel'})
message = _('Sale order') + " '" + sale.name + _(" is cancelled")
self.log(cr, uid, sale.id, message)
self.write(cr, uid, ids, {'state': 'cancel'})
message = _('Sale order') + " '" + sale.name + "' "+ _("created on")+" '" +sale.create_date + _(" is cancelled")
self.log(cr, uid, id, message)
return True
def action_wait(self, cr, uid, ids, *args):
product=[]
product_obj = self.pool.get('product.product')
for o in self.browse(cr, uid, ids):
if (o.order_policy == 'manual'):
@@ -575,11 +574,8 @@ class sale_order(osv.osv):
else:
self.write(cr, uid, [o.id], {'state': 'progress', 'date_confirm': time.strftime('%Y-%m-%d')})
self.pool.get('sale.order.line').button_confirm(cr, uid, [x.id for x in o.order_line])
for line in o.order_line:
product.append(line.product_id.default_code)
params = ', '.join(map(lambda x : str(x),product))
message = _('Sale order ') + " '" + o.name + "' "+ _("created on")+" '" +o.create_date + "' "+_("for")+" '" +params + "' "+_("is confirmed")
self.log(cr, uid, id, message)
message = _('Quotation') + " '" + o.name + "' "+ _("is converted to Sale order")
self.log(cr, uid, o.id, message)
return True
def procurement_lines_get(self, cr, uid, ids, *args):
@@ -951,9 +947,6 @@ class sale_order_line(osv.osv):
def button_confirm(self, cr, uid, ids, context=None):
if context is None:
context = {}
for (id,name) in self.name_get(cr, uid, ids):
message = _('Sale order line') + " '" + name + "' "+ _("is confirmed")
self.log(cr, uid, id, message)
return self.write(cr, uid, ids, {'state': 'confirmed'})
def button_done(self, cr, uid, ids, context=None):
@@ -963,8 +956,6 @@ class sale_order_line(osv.osv):
res = self.write(cr, uid, ids, {'state': 'done'})
for line in self.browse(cr, uid, ids, context=context):
wf_service.trg_write(uid, 'sale.order', line.order_id.id, cr)
message = _('Sale order line') + " '" + line.name + "' "+_("is done")
self.log(cr, uid, id, message)
return res
def uos_change(self, cr, uid, ids, product_uos, product_uos_qty=0, product_id=None):
+2 -3
View File
@@ -62,9 +62,8 @@
<field name="inherit_id" ref="product.product_normal_form_view"/>
<field name="arch" type="xml">
<field name="standard_price" position="replace">
<label string="Cost Price" align="1.0"/>
<group col="2" colspan="1">
<field name="standard_price" readonly="True" nolabel="1"/>
<group col="4" colspan="2">
<field name="standard_price" readonly="True"/>
<button name="%(action_view_change_standard_price)d" string="Change Price" type="action" icon="gtk-execute"/>
</group>
</field>
+8 -7
View File
@@ -150,10 +150,10 @@
</para>
</td>
<td>
<para style="terp_tblheader_Details">[[ picking.sale_id and picking.sale_id.partner_shipping_id and 'Shipping Address :' or removeParentNode('para') ]] </para>
<para style="terp_default_9">[[ (picking.sale_id and picking.sale_id.partner_shipping_id and picking.sale_id.partner_shipping_id.title) or '' ]] [[ (picking.sale_id and picking.sale_id.partner_shipping_id and picking.sale_id.partner_shipping_id.name) or '' ]] </para>
<para style="terp_default_9">[[ (picking.sale_id and picking.sale_id.partner_shipping_id and picking.sale_id.partner_shipping_id.street) or '' ]] </para>
<para style="terp_default_9">[[ (picking.sale_id and picking.sale_id.partner_shipping_id and picking.sale_id.partner_shipping_id.zip) or '' ]] [[ (picking.sale_id and picking.sale_id.partner_shipping_id and picking.sale_id.partner_shipping_id.city) or '' ]] [[ (picking.address_id and picking.address_id.state_id and picking.address_id.state_id.name) or '' ]] </para>
<para style="terp_tblheader_Details">[[ picking.address_id and 'Shipping Address :' or removeParentNode('para') ]] </para>
<para style="terp_default_9">[[ ( picking.address_id and picking.address_id.title) or '' ]] [[ (picking.address_id and picking.address_id.name) or '' ]] </para>
<para style="terp_default_9">[[ (picking.address_id and picking.address_id.street) or '' ]] </para>
<para style="terp_default_9">[[ (picking.address_id and picking.address_id.zip) or '' ]] [[ (picking.address_id and picking.address_id.city) or '' ]] [[ (picking.address_id and picking.address_id.state_id and picking.address_id.state_id.name) or '' ]] </para>
<para style="terp_default_9">[[ (picking.address_id and picking.address_id.country_id and picking.address_id.country_id.name) or '' ]]</para>
</td>
</tr>
@@ -241,7 +241,7 @@
<font color="white"> </font>
</para>
<section>
<para style="terp_default_8">[[ repeatIn([line for line in picking.move_lines if (line.state == 'assigned' )],'move_lines') ]]</para>
<para style="terp_default_8">[[ repeatIn([line for line in picking.move_lines if (line.state == 'assigned' )],'move_lines') or removeParentNode('section') ]]</para>
<blockTable colWidths="257.0,58.0,61.0,46.0,26.0,74.0" style="Move_Line_Contect_Assign_State">
<tr>
<td>
@@ -267,10 +267,11 @@
<para style="terp_default_2">
<font color="white"> </font>
</para>
</section>
<para style="terp_default_5cm_Above_Space">[[ (move_lines.state == 'done' or move_lines.state == 'confirmed') and removeParentNode('para') ]]</para>
<para style="terp_default_5cm_Above_Space">[[ (move_lines.state == 'done' or move_lines.state == 'confirmed') and removeParentNode('s') ]]</para>
<para style="terp_default_Bold_9">Non Assigned Products: [[ ( move_lines.state == 'assigned' or move_lines.state == 'done' or move_lines.state == 'confirmed' ) and removeParentNode('para') ]]</para>
<para style="terp_default_1cm_above_space">[[ (move_lines.state == 'done' or move_lines.state == 'confirmed') and removeParentNode('para') ]]</para>
</section>
<section>
<para style="terp_default_8">[[ repeatIn([line for line in picking.move_lines if (line.state != 'assigned' )],'move_lines') ]]</para>
<blockTable colWidths="257.0,57.0,62.0,46.0,26.0,74.0" style="Move_Line_Content_Other_State">