bzr revid: fp@tinyerp.com-20081117100837-mrf3jxh78feao8g1
This commit is contained in:
Fabien Pinckaers
2008-11-17 11:08:37 +01:00
41 changed files with 687 additions and 208 deletions
+9 -2
View File
@@ -154,6 +154,13 @@ class account_account(osv.osv):
args[pos] = ('id','in',ids1)
pos+=1
if context and context.has_key('consolidate_childs'): #add concolidated childs of accounts
ids = super(account_account,self).search(cr, uid, args, offset, limit,
order, context=context, count=count)
for consolidate_child in self.browse(cr, uid, context['account_id']).child_consol_ids:
ids.append(consolidate_child.id)
return ids
return super(account_account,self).search(cr, uid, args, offset, limit,
order, context=context, count=count)
@@ -925,11 +932,11 @@ class account_move(osv.osv):
if not company_id:
company_id = line.account_id.company_id.id
if not company_id == line.account_id.company_id.id:
raise osv.except_osv(_('Error'), _('Couldn\'t create move between different companies'))
raise osv.except_osv(_('Error'), _("Couldn't create move between different companies"))
if line.account_id.currency_id:
if line.account_id.currency_id.id != line.currency_id.id and (line.account_id.currency_id.id != line.account_id.company_id.currency_id.id or line.currency_id):
raise osv.except_osv(_('Error'), _('Couldn\'t create move with currency different than the secondary currency of the account "%s - %s". Clear the secondary currency field of the account definition if you want to accept all currencies.' % (line.account_id.code, line.account_id.name)))
raise osv.except_osv(_('Error'), _("""Couldn't create move with currency different than the secondary currency of the account "%s - %s". Clear the secondary currency field of the account definition if you want to accept all currencies.""" % (line.account_id.code, line.account_id.name)))
if abs(amount) < 0.0001:
if not len(line_draft_ids):
+2
View File
@@ -492,6 +492,8 @@ class account_move_line(osv.osv):
#TODO: move this check to a constraint in the account_move_reconcile object
if len(r) != 1:
raise osv.except_osv(_('Error'), _('Entries are not of the same account or already reconciled ! '))
if not unrec_lines:
raise osv.except_osv(_('Error'), _('Entry is already reconciled'))
account = self.pool.get('account.account').browse(cr, uid, account_id, context=context)
if not account.reconcile:
raise osv.except_osv(_('Error'), _('The account is not defined to be reconcile !'))
+12 -12
View File
@@ -4,16 +4,16 @@
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 4.3.0"
"Report-Msgid-Bugs-To: support@openerp.com"
"POT-Creation-Date: 2008-09-11 15:45:09+0000"
"PO-Revision-Date: 2008-09-11 15:45:09+0000"
"Last-Translator: <>"
"Language-Team: "
"MIME-Version: 1.0"
"Content-Type: text/plain; charset=UTF-8"
"Content-Transfer-Encoding: "
"Plural-Forms: "
"Project-Id-Version: OpenERP Server 4.3.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2008-09-11 15:45:09+0000\n"
"PO-Revision-Date: 2008-09-11 15:45:09+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
#. module: account
#, python-format
@@ -3915,7 +3915,7 @@ msgstr ""
#. module: account
#, python-format
#: code:addons/account/account.py:0
msgid "Couldn\'t create move between different companies"
msgid "Couldn't create move between different companies"
msgstr ""
#. module: account
@@ -4566,7 +4566,7 @@ msgstr ""
#. module: account
#, python-format
#: code:addons/account/account.py:0
msgid "Couldn\'t create move with currency different than the secondary currency of the account"
msgid "Couldn't create move with currency different than the secondary currency of the account"
msgstr ""
#. module: account
+2 -2
View File
@@ -3915,7 +3915,7 @@ msgstr ""
#. module: account
#, python-format
#: code:addons/account/account.py:0
msgid "Couldn\'t create move between different companies"
msgid "Couldn't create move between different companies"
msgstr ""
#. module: account
@@ -4566,7 +4566,7 @@ msgstr ""
#. module: account
#, python-format
#: code:addons/account/account.py:0
msgid "Couldn\'t create move with currency different than the secondary currency of the account"
msgid "Couldn't create move with currency different than the secondary currency of the account"
msgstr ""
#. module: account
+2 -2
View File
@@ -3915,7 +3915,7 @@ msgstr ""
#. module: account
#, python-format
#: code:addons/account/account.py:0
msgid "Couldn\'t create move between different companies"
msgid "Couldn't create move between different companies"
msgstr ""
#. module: account
@@ -4566,7 +4566,7 @@ msgstr ""
#. module: account
#, python-format
#: code:addons/account/account.py:0
msgid "Couldn\'t create move with currency different than the secondary currency of the account"
msgid "Couldn't create move with currency different than the secondary currency of the account"
msgstr ""
#. module: account
+2 -2
View File
@@ -3915,7 +3915,7 @@ msgstr "Días netos"
#. module: account
#, python-format
#: code:addons/account/account.py:0
msgid "Couldn\'t create move between different companies"
msgid "Couldn't create move between different companies"
msgstr ""
#. module: account
@@ -4566,7 +4566,7 @@ msgstr ""
#. module: account
#, python-format
#: code:addons/account/account.py:0
msgid "Couldn\'t create move with currency different than the secondary currency of the account"
msgid "Couldn't create move with currency different than the secondary currency of the account"
msgstr ""
#. module: account
+2 -2
View File
@@ -3915,7 +3915,7 @@ msgstr "Dias habiles(netos)"
#. module: account
#, python-format
#: code:addons/account/account.py:0
msgid "Couldn\'t create move between different companies"
msgid "Couldn't create move between different companies"
msgstr ""
#. module: account
@@ -4566,7 +4566,7 @@ msgstr ""
#. module: account
#, python-format
#: code:addons/account/account.py:0
msgid "Couldn\'t create move with currency different than the secondary currency of the account"
msgid "Couldn't create move with currency different than the secondary currency of the account"
msgstr ""
#. module: account
+50 -50
View File
@@ -1452,18 +1452,18 @@ msgstr "Transactions"
#: model:ir.ui.menu,name:account.menu_wizard
#: view:wizard.multi.charts.accounts:0
msgid "Generate Chart of Accounts from a Chart Template"
msgstr ""
msgstr "Générer le Plan des Comptes à partir du Modèle de Plan"
#. module: account
#, python-format
#: code:addons/account/account_bank_statement.py:0
msgid "The statement balance is incorrect !\n"
msgstr ""
msgstr "La balance du relevé est incorrecte !\n"
#. module: account
#: model:ir.ui.menu,name:account.menu_finance_legal_statement
msgid "Legal Statements"
msgstr ""
msgstr "Déclarations Légales"
#. module: account
#: field:account.tax.code,parent_id:0
@@ -1485,7 +1485,7 @@ msgstr "Ouvrir pour réconciliation"
#, python-format
#: code:addons/account/account.py:0
msgid "Purchase Journal"
msgstr ""
msgstr "Journal des Achats"
#. module: account
#: selection:account.tax,tax_group:0
@@ -1571,7 +1571,7 @@ msgstr "Type de comptes autorisés (vide pour aucun contrôle)"
#. module: account
#: model:process.node,name:account.process_node_electronicfile0
msgid "Electronic File"
msgstr ""
msgstr "Fichier Électronique"
#. module: account
#: field:account.bank.statement,balance_start:0
@@ -1582,7 +1582,7 @@ msgstr "Solde de début"
#, python-format
#: code:addons/account/invoice.py:0
msgid "No Partner Defined !"
msgstr ""
msgstr "Aucun Partenaire défini !"
#. module: account
#: field:account.tax,child_depend:0
@@ -1606,7 +1606,7 @@ msgstr "Déréconciliation"
#: code:addons/account/wizard/wizard_fiscalyear_close.py:0
#: code:addons/account/wizard/wizard_journal.py:0
msgid "UserError"
msgstr ""
msgstr "Erreur Utilisateur"
#. module: account
#: field:account.invoice,address_invoice_id:0
@@ -1631,7 +1631,7 @@ msgstr "TVA:"
#. module: account
#: wizard_button:populate_statement_from_inv,init,supplier:0
msgid "_Supplier invoices"
msgstr ""
msgstr "_Factures Fournisseur"
#. module: account
#: field:account.invoice,period_id:0
@@ -1652,7 +1652,7 @@ msgstr "Ré-Ouvrir"
#. module: account
#: help:account.invoice,number:0
msgid "Uniq number of the invoice, computed automatically when the invoice is created."
msgstr ""
msgstr "Nombre unique de la facture, calculé automatiquement lorsque la facture est créée."
#. module: account
#: rml:account.tax.code.entries:0
@@ -1664,12 +1664,12 @@ msgstr "Tiers (pays)"
#: wizard_button:populate_statement_from_inv,supplier,end:0
#: wizard_button:populate_statement_from_inv,init,end:0
msgid "_Cancel"
msgstr ""
msgstr "_Annuler"
#. module: account
#: rml:account.central.journal:0
msgid "Account Num."
msgstr ""
msgstr "Num. de Compte"
#. module: account
#: selection:account.analytic.account,state:0
@@ -1692,12 +1692,12 @@ msgstr "Grand Livre par période"
#. module: account
#: wizard_field:account.analytic.line,init,from_date:0
msgid "From"
msgstr ""
msgstr "De"
#. module: account
#: wizard_view:account.central.journal.report,init:0
msgid "Print Central Journal"
msgstr ""
msgstr "Imprimer le Journal Central"
#. module: account
#: field:account.analytic.account,code:0
@@ -1707,7 +1707,7 @@ msgstr "Code du compte"
#. module: account
#: model:process.node,note:account.process_node_accountingstatemententries0
msgid "Accounting entries can be draft or validated"
msgstr ""
msgstr "Les entrées Comptable peuvent être brouillon ou validée"
#. module: account
#: selection:account.payment.term.line,value:0
@@ -1735,7 +1735,7 @@ msgstr "Journal des ajustements"
#. module: account
#: help:res.partner,property_account_position:0
msgid "The fiscal position will determine taxes and the accounts used for the the partner."
msgstr ""
msgstr "La position fiscale détermine les taxes et les comptes utilisés pour le partenaire."
#. module: account
#: field:account.analytic.account,user_id:0
@@ -1746,7 +1746,7 @@ msgstr "Comptable"
#, python-format
#: code:addons/account/account_move_line.py:0
msgid "Entries are not of the same account or already reconciled ! "
msgstr ""
msgstr "Les Entrées ne sont pas du même compte ou sont déjà réconciliées !"
#. module: account
#: wizard_field:account.invoice.pay,init,date:0
@@ -1856,28 +1856,28 @@ msgstr "Code Python"
#. module: account
#: help:account.invoice,reference:0
msgid "The partner reference of this invoice."
msgstr ""
msgstr "La référence Partenaire de cette facture."
#. module: account
#: rml:account.analytic.account.cost_ledger:0
msgid "Total :"
msgstr ""
msgstr "Total :"
#. module: account
#: field:account.move,to_check:0
msgid "To Be Verified"
msgstr ""
msgstr "À Vérifier"
#. module: account
#: help:res.partner,credit:0
msgid "Total amount this customer owns you."
msgstr ""
msgstr "Montant total dû par ce client."
#. module: account
#, python-format
#: code:addons/account/invoice.py:0
msgid "Invalid action !"
msgstr ""
msgstr "Action non valide !"
#. module: account
#: model:ir.actions.report.xml,name:account.account_transfers
@@ -1900,7 +1900,7 @@ msgstr "Nom du Journal"
#: rml:account.analytic.account.cost_ledger:0
#: rml:account.analytic.account.quantity_cost_ledger:0
msgid "Printing date"
msgstr ""
msgstr "Date d'impression"
#. module: account
#: selection:account.account.type,close_method:0
@@ -1913,7 +1913,7 @@ msgstr "Aucun"
#: wizard_field:account.account.balance.report,checktype,date_from:0
#: wizard_field:account.partner.balance.report,init,date1:0
msgid " Start date"
msgstr ""
msgstr " date de Début"
#. module: account
#: wizard_view:account.analytic.account.journal.report,init:0
@@ -1945,7 +1945,7 @@ msgstr "Nom de la période du journal"
#, python-format
#: code:addons/account/wizard/wizard_fiscalyear_close.py:0
msgid "There are no periods defined on New Fiscal Year."
msgstr ""
msgstr "Il n'y a pas de périodes définies sur la Nouvelle Année Fiscale."
#. module: account
#: field:account.tax.code,name:0
@@ -2017,7 +2017,7 @@ msgstr "Factures impayées"
#. module: account
#: model:process.transition,name:account.process_transition_paymentreconcile0
msgid "Payment Reconcile"
msgstr ""
msgstr "Réconciliation du Paiement"
#. module: account
#: model:ir.actions.act_window,name:account.action_bank_statement_reconciliation_form
@@ -2045,7 +2045,7 @@ msgstr "Centre de coût parent"
#, python-format
#: code:addons/account/account.py:0
msgid "You can not modify a posted entry of this journal !"
msgstr ""
msgstr "Vous ne pouvez pas modifier une entrée postée de ce journal !"
#. module: account
#: view:account.analytic.line:0
@@ -2055,7 +2055,7 @@ msgstr "Entrée analytique"
#. module: account
#: model:process.node,note:account.process_node_accountingentries0
msgid "Validated accounting entries."
msgstr ""
msgstr "Entrées comptables Validées."
#. module: account
#: model:ir.actions.act_window,name:account.action_tax_code_tree
@@ -2118,7 +2118,7 @@ msgstr "Compte Racine"
#, python-format
#: code:addons/account/account_bank_statement.py:0
msgid "Configration Error !"
msgstr ""
msgstr "Erreur de Configuration !"
#. module: account
#: rml:account.overdue:0
@@ -2128,13 +2128,13 @@ msgstr "Sauf erreur de notre part, il semble que les factures suivantes demeuren
#. module: account
#: rml:account.invoice:0
msgid "VAT :"
msgstr ""
msgstr "TVA :"
#. module: account
#: rml:account.partner.balance:0
#: rml:account.vat.declaration:0
msgid "Débit"
msgstr ""
msgstr "Débit"
#. module: account
#: model:ir.actions.act_window,name:account.action_account_tree
@@ -2155,7 +2155,7 @@ msgstr "Modèle"
#, python-format
#: code:addons/account/wizard/wizard_pay_invoice.py:0
msgid "Your journal must have a default credit and debit account."
msgstr ""
msgstr "Votre journal doit avoir un compte de crédit et de débit par défaut."
#. module: account
#: rml:account.overdue:0
@@ -2170,13 +2170,13 @@ msgstr "Centralisation"
#. module: account
#: view:account.config.wizard:0
msgid "Create a Fiscal Year"
msgstr ""
msgstr "Créer une Année Fiscale"
#. module: account
#: selection:account.account.template,type:0
#: selection:account.account,type:0
msgid "Consolidation"
msgstr ""
msgstr "Consolidation"
#. module: account
#: field:account.invoice,date_invoice:0
@@ -2186,7 +2186,7 @@ msgstr "Date facture"
#. module: account
#: model:account.account.type,name:account.account_type_liability
msgid "Liability"
msgstr ""
msgstr "Passif"
#. module: account
#: rml:account.third_party_ledger:0
@@ -2208,7 +2208,7 @@ msgstr "Date"
#. module: account
#: model:process.transition,name:account.process_transition_confirmaccountingentries0
msgid "Confirm Accounting entries"
msgstr ""
msgstr "Confirmer les entrées Comptables"
#. module: account
#: field:account.invoice,reference_type:0
@@ -2230,13 +2230,13 @@ msgstr "Type de Taxe"
#. module: account
#: model:process.transition,name:account.process_transition_statemententries0
msgid "Statement Entries"
msgstr ""
msgstr "Entrées de la Déclaration"
#. module: account
#, python-format
#: code:addons/account/wizard/wizard_fiscalyear_close.py:0
msgid "The journal must have default credit and debit account"
msgstr ""
msgstr "Le journal doit avoir un compte de crédit et de débit par défaut"
#. module: account
#: field:account.invoice.tax,base_code_id:0
@@ -2265,13 +2265,13 @@ msgstr "Réconciliation automatique"
#. module: account
#: view:account.bank.statement:0
msgid "Import Invoice"
msgstr ""
msgstr "Importer la Facture"
#. module: account
#, python-format
#: code:addons/account/account_move_line.py:0
msgid "Some entries are already reconciled !"
msgstr ""
msgstr "Certaines entrées sont déjà réconciliées !"
#. module: account
#: model:process.node,note:account.process_node_reconciliationofentries0
@@ -2315,7 +2315,7 @@ msgstr ""
#. module: account
#: rml:account.central.journal:0
msgid "Journal Code"
msgstr ""
msgstr "Code du Journal"
#. module: account
#: field:account.model,lines_id:0
@@ -2356,13 +2356,13 @@ msgstr "Écritures"
#: model:ir.actions.wizard,name:account.wizard_central_journal
#: model:ir.ui.menu,name:account.menu_central_journal
msgid "Print Central journal"
msgstr ""
msgstr "Imprimer le Journal Central"
#. module: account
#, python-format
#: code:addons/account/invoice.py:0
msgid "No Analytic Journal !"
msgstr ""
msgstr "Pas de Journal Analytique !"
#. module: account
#: view:account.tax.template:0
@@ -2378,7 +2378,7 @@ msgstr "Ouvrir journal"
#. module: account
#: rml:account.vat.declaration:0
msgid "Solde"
msgstr ""
msgstr "Solde"
#. module: account
#: model:ir.actions.wizard,name:account.action_account_analytic_line
@@ -2413,7 +2413,7 @@ msgstr "Informations supplémentaires"
#. module: account
#: field:account.config.wizard,date2:0
msgid "Ending Date"
msgstr ""
msgstr "Date de Fin"
#. module: account
#: wizard_field:account.account.balance.report,checktype,fiscalyear:0
@@ -2427,7 +2427,7 @@ msgstr "Année fiscale"
#. module: account
#: wizard_field:account.general.ledger.report,checktype,landscape:0
msgid "Landscape Mode"
msgstr ""
msgstr "Mode Paysage"
#. module: account
#: model:process.transition,note:account.process_transition_analyticinvoice0
@@ -2494,7 +2494,7 @@ msgstr "Intitulé"
#: selection:account.account.template,type:0
#: selection:account.account,type:0
msgid "Receivable"
msgstr ""
msgstr "Recevable"
#. module: account
#: wizard_view:account.move.validate,init:0
@@ -2506,7 +2506,7 @@ msgstr "Information"
#. module: account
#: model:ir.ui.menu,name:account.menu_tax_report
msgid "Taxes Reports"
msgstr ""
msgstr "Rapports de Taxes"
#. module: account
#: field:res.partner,property_account_payable:0
@@ -2542,7 +2542,7 @@ msgstr "Le champ sequence est utilisé pour classer les lignes de taxes des plu
#, python-format
#: code:addons/account/account_move_line.py:0
msgid "Already Reconciled"
msgstr ""
msgstr "Déjà Réconciliées"
#. module: account
#: rml:account.analytic.account.journal:0
@@ -2571,7 +2571,7 @@ msgstr "En litige"
#, python-format
#: code:addons/account/account.py:0
msgid "No fiscal year defined for this date !\nPlease create one."
msgstr ""
msgstr "Pas d'année fiscale définie pour cette date !\nVeuillez en créer une."
#. module: account
#: rml:account.overdue:0
@@ -4376,7 +4376,7 @@ msgstr ""
#. module: account
#, python-format
#: code:addons/account/account.py:0
msgid "Couldn\'t create move between different companies"
msgid "Couldn't create move between different companies"
msgstr ""
#. module: account
+2 -2
View File
@@ -3915,7 +3915,7 @@ msgstr ""
#. module: account
#, python-format
#: code:addons/account/account.py:0
msgid "Couldn\'t create move between different companies"
msgid "Couldn't create move between different companies"
msgstr ""
#. module: account
@@ -4566,7 +4566,7 @@ msgstr ""
#. module: account
#, python-format
#: code:addons/account/account.py:0
msgid "Couldn\'t create move with currency different than the secondary currency of the account"
msgid "Couldn't create move with currency different than the secondary currency of the account"
msgstr ""
#. module: account
+2 -2
View File
@@ -3915,7 +3915,7 @@ msgstr "Giorni netti"
#. module: account
#, python-format
#: code:addons/account/account.py:0
msgid "Couldn\'t create move between different companies"
msgid "Couldn't create move between different companies"
msgstr ""
#. module: account
@@ -4566,7 +4566,7 @@ msgstr ""
#. module: account
#, python-format
#: code:addons/account/account.py:0
msgid "Couldn\'t create move with currency different than the secondary currency of the account"
msgid "Couldn't create move with currency different than the secondary currency of the account"
msgstr ""
#. module: account
+2 -2
View File
@@ -3915,7 +3915,7 @@ msgstr "Netto Dagen"
#. module: account
#, python-format
#: code:addons/account/account.py:0
msgid "Couldn\'t create move between different companies"
msgid "Couldn't create move between different companies"
msgstr ""
#. module: account
@@ -4566,7 +4566,7 @@ msgstr ""
#. module: account
#, python-format
#: code:addons/account/account.py:0
msgid "Couldn\'t create move with currency different than the secondary currency of the account"
msgid "Couldn't create move with currency different than the secondary currency of the account"
msgstr ""
#. module: account
+2 -2
View File
@@ -3915,7 +3915,7 @@ msgstr ""
#. module: account
#, python-format
#: code:addons/account/account.py:0
msgid "Couldn\'t create move between different companies"
msgid "Couldn't create move between different companies"
msgstr ""
#. module: account
@@ -4566,7 +4566,7 @@ msgstr ""
#. module: account
#, python-format
#: code:addons/account/account.py:0
msgid "Couldn\'t create move with currency different than the secondary currency of the account"
msgid "Couldn't create move with currency different than the secondary currency of the account"
msgstr ""
#. module: account
+2 -2
View File
@@ -3915,7 +3915,7 @@ msgstr "Dias"
#. module: account
#, python-format
#: code:addons/account/account.py:0
msgid "Couldn\'t create move between different companies"
msgid "Couldn't create move between different companies"
msgstr ""
#. module: account
@@ -4566,7 +4566,7 @@ msgstr ""
#. module: account
#, python-format
#: code:addons/account/account.py:0
msgid "Couldn\'t create move with currency different than the secondary currency of the account"
msgid "Couldn't create move with currency different than the secondary currency of the account"
msgstr ""
#. module: account
+2 -2
View File
@@ -3915,7 +3915,7 @@ msgstr ""
#. module: account
#, python-format
#: code:addons/account/account.py:0
msgid "Couldn\'t create move between different companies"
msgid "Couldn't create move between different companies"
msgstr ""
#. module: account
@@ -4566,7 +4566,7 @@ msgstr ""
#. module: account
#, python-format
#: code:addons/account/account.py:0
msgid "Couldn\'t create move with currency different than the secondary currency of the account"
msgid "Couldn't create move with currency different than the secondary currency of the account"
msgstr ""
#. module: account
+2 -2
View File
@@ -3915,7 +3915,7 @@ msgstr ""
#. module: account
#, python-format
#: code:addons/account/account.py:0
msgid "Couldn\'t create move between different companies"
msgid "Couldn't create move between different companies"
msgstr ""
#. module: account
@@ -4566,7 +4566,7 @@ msgstr ""
#. module: account
#, python-format
#: code:addons/account/account.py:0
msgid "Couldn\'t create move with currency different than the secondary currency of the account"
msgid "Couldn't create move with currency different than the secondary currency of the account"
msgstr ""
#. module: account
+2 -2
View File
@@ -3915,7 +3915,7 @@ msgstr ""
#. module: account
#, python-format
#: code:addons/account/account.py:0
msgid "Couldn\'t create move between different companies"
msgid "Couldn't create move between different companies"
msgstr ""
#. module: account
@@ -4566,7 +4566,7 @@ msgstr ""
#. module: account
#, python-format
#: code:addons/account/account.py:0
msgid "Couldn\'t create move with currency different than the secondary currency of the account"
msgid "Couldn't create move with currency different than the secondary currency of the account"
msgstr ""
#. module: account
+2 -2
View File
@@ -3915,7 +3915,7 @@ msgstr ""
#. module: account
#, python-format
#: code:addons/account/account.py:0
msgid "Couldn\'t create move between different companies"
msgid "Couldn't create move between different companies"
msgstr ""
#. module: account
@@ -4566,7 +4566,7 @@ msgstr ""
#. module: account
#, python-format
#: code:addons/account/account.py:0
msgid "Couldn\'t create move with currency different than the secondary currency of the account"
msgid "Couldn't create move with currency different than the secondary currency of the account"
msgstr ""
#. module: account
+2 -2
View File
@@ -3915,7 +3915,7 @@ msgstr ""
#. module: account
#, python-format
#: code:addons/account/account.py:0
msgid "Couldn\'t create move between different companies"
msgid "Couldn't create move between different companies"
msgstr ""
#. module: account
@@ -4566,7 +4566,7 @@ msgstr ""
#. module: account
#, python-format
#: code:addons/account/account.py:0
msgid "Couldn\'t create move with currency different than the secondary currency of the account"
msgid "Couldn't create move with currency different than the secondary currency of the account"
msgstr ""
#. module: account
+66 -68
View File
@@ -36,27 +36,27 @@ from osv import osv
class general_ledger(rml_parse.rml_parse):
_name = 'report.account.general.ledger'
def preprocess(self, objects, data, ids):
##
self.borne_date = self.get_min_date(data['form'])
##
new_ids = []
if (data['model'] == 'account.account'):
new_ids = ids
else:
new_ids.append(data['form']['Account_list'])
objects = self.pool.get('account.account').browse(self.cr, self.uid, new_ids)
super(general_ledger, self).preprocess(objects, data, new_ids)
def __init__(self, cr, uid, name, context):
super(general_ledger, self).__init__(cr, uid, name, context)
self.date_borne = {}
@@ -64,7 +64,7 @@ class general_ledger(rml_parse.rml_parse):
self.child_ids = ""
self.tot_currency = 0.0
self.period_sql = ""
self.sold_accounts = {}
self.sold_accounts = {}
self.localcontext.update( {
'time': time,
'lines': self.lines,
@@ -73,7 +73,7 @@ class general_ledger(rml_parse.rml_parse):
'sum_solde_account': self._sum_solde_account,
'sum_debit': self._sum_debit,
'sum_credit': self._sum_credit,
'sum_solde': self._sum_solde,
'sum_solde': self._sum_solde,
'get_children_accounts': self.get_children_accounts,
'sum_currency_amount_account': self._sum_currency_amount_account
})
@@ -82,7 +82,7 @@ class general_ledger(rml_parse.rml_parse):
result = {}
#for id in ids:
# result.setdefault(id, False)
for account_line in self.pool.get('account.move.line').browse(cr, uid, ids, context):
# For avoid long text in the field we will limit it to 5 lines
#
@@ -92,7 +92,7 @@ class general_ledger(rml_parse.rml_parse):
num_id_move = str(account_line.move_id.id)
num_id_line = str(account_line.id)
account_id = str(account_line.account_id.id)
# search the basic account
# search the basic account
# We have the account ID we will search all account move line from now until this time
# We are in the case of we are on the top of the account move Line
cr.execute('SELECT distinct(ac.code) as code_rest,ac.name as name_rest from account_account AS ac, account_move_line mv\
@@ -115,10 +115,8 @@ class general_ledger(rml_parse.rml_parse):
return result
def get_children_accounts(self, account, form):
self.child_ids = self.pool.get('account.account').search(self.cr, self.uid,
[('parent_id', 'child_of', self.ids)])
res = []
ctx = self.context.copy()
## We will make the test for period or date
@@ -130,20 +128,21 @@ class general_ledger(rml_parse.rml_parse):
else:
ctx['date_from'] = form['date_from']
ctx['date_to'] = form['date_to']
#
#
#
self.query = self.pool.get('account.move.line')._query_get(self.cr, self.uid, context=ctx)
for child_id in self.pool.get('account.account').search(self.cr, self.uid,
[('parent_id', 'child_of', [account.id])]):
if account and account.child_consol_ids: # add ids of consolidated childs also of selected account
ctx['consolidate_childs'] = True
ctx['account_id'] = account.id
ids_acc = self.pool.get('account.account').search(self.cr, self.uid,[('parent_id', 'child_of', [account.id])],context=ctx)
for child_id in ids_acc:
child_account = self.pool.get('account.account').browse(self.cr, self.uid, child_id)
sold_account = self._sum_solde_account(child_account,form)
self.sold_accounts[child_account.id] = sold_account
if form['display_account'] == 'bal_mouvement':
if child_account.type != 'view' \
and len(self.pool.get('account.move.line').search(self.cr, self.uid,
@@ -158,52 +157,51 @@ class general_ledger(rml_parse.rml_parse):
context=ctx)) <> 0 :
if ( sold_account <> 0.0):
res.append(child_account)
else:
else:
if child_account.type != 'view' \
and len(self.pool.get('account.move.line').search(self.cr, self.uid,
[('account_id','>=',child_account.id)],
context=ctx)) <> 0 :
res.append(child_account)
##
## We will now compute solde initiaux
if not len(res):
return[account]
else:
for move in res:
SOLDEINIT = "SELECT sum(l.debit) AS sum_debit, sum(l.credit) AS sum_credit FROM account_move_line l WHERE l.account_id = " + str(move.id) + " AND l.date <= '" + self.borne_date['max_date'] + "'" + " AND l.date >= '" + self.borne_date['min_date'] + "'"
self.cr.execute(SOLDEINIT)
resultat = self.cr.dictfetchall()
resultat = self.cr.dictfetchall()
if resultat[0] :
if resultat[0]['sum_debit'] == None:
sum_debit = 0
else:
sum_debit = resultat[0]['sum_debit']
if resultat[0]['sum_credit'] == None:
sum_credit = 0
else:
sum_credit = resultat[0]['sum_credit']
move.init_credit = sum_credit
move.init_debit = sum_debit
else:
move.init_credit = 0
move.init_debit = 0
##
return res
def get_min_date(self,form):
## Get max born from account_fiscal year
#
sql = """ select min(fy.date_start) as start_date,max(fy.date_stop) as stop_date from account_fiscalyear
@@ -218,9 +216,9 @@ class general_ledger(rml_parse.rml_parse):
periods = form['periods'][0][2]
if not periods:
sql = """
Select min(p.date_start) as start_date,max(p.date_stop) as stop_date from account_period as p where p.fiscalyear_id = """ + str(form['fiscalyear']) + """
Select min(p.date_start) as start_date,max(p.date_stop) as stop_date from account_period as p where p.fiscalyear_id = """ + str(form['fiscalyear']) + """
"""
else:
else:
periods_id = ','.join(map(str, periods))
sql = """
Select min(p.date_start) as start_date,max(p.date_stop) as stop_date from account_period as p where p.id in ( """ + periods_id + """)
@@ -236,9 +234,9 @@ class general_ledger(rml_parse.rml_parse):
periods = form['periods'][0][2]
if not periods:
sql = """
Select min(p.date_start) as start_date,max(p.date_stop) as stop_date from account_period as p where p.fiscalyear_id = """ + str(form['fiscalyear']) + """
Select min(p.date_start) as start_date,max(p.date_stop) as stop_date from account_period as p where p.fiscalyear_id = """ + str(form['fiscalyear']) + """
"""
else:
else:
periods_id = ','.join(map(str, periods))
sql = """
Select min(p.date_start) as start_date,max(p.date_stop) as stop_date from account_period as p where p.id in ( """ + periods_id + """)
@@ -270,8 +268,8 @@ class general_ledger(rml_parse.rml_parse):
}
return self.date_borne
def lines(self, account, form):
inv_types = {
'out_invoice': 'CI: ',
@@ -280,27 +278,27 @@ class general_ledger(rml_parse.rml_parse):
'in_refund': 'SR: ',
}
### We will now compute solde initaux
if form['sortbydate'] == 'sort_date':
sorttag = 'l.date'
else:
sorttag = 'j.code'
sql = """
SELECT l.id, l.date, j.code,c.code AS currency_code,l.amount_currency,l.ref, l.name , l.debit, l.credit, l.period_id
SELECT l.id, l.date, j.code,c.code AS currency_code,l.amount_currency,l.ref, l.name , l.debit, l.credit, l.period_id
FROM account_move_line as l
LEFT JOIN res_currency c on (l.currency_id=c.id)
LEFT JOIN res_currency c on (l.currency_id=c.id)
JOIN account_journal j on (l.journal_id=j.id)
AND account_id = %d
AND %s
WHERE l.date<='%s'
AND l.date>='%s'
ORDER by %s"""%(account.id,self.query,self.date_borne['max_date'],self.date_borne['min_date'],sorttag)
AND %s
WHERE l.date<='%s'
AND l.date>='%s'
ORDER by %s"""%(account.id,self.query,self.date_borne['max_date'],self.date_borne['min_date'],sorttag)
self.cr.execute(sql)
res = self.cr.dictfetchall()
res = self.cr.dictfetchall()
sum = 0.0
account_move_line_obj = pooler.get_pool(self.cr.dbname).get('account.move.line')
for l in res:
@@ -324,7 +322,7 @@ class general_ledger(rml_parse.rml_parse):
if (l['credit'] > 0):
if l['amount_currency'] != None:
l['amount_currency'] = abs(l['amount_currency']) * -1
#
if l['amount_currency'] != None:
self.tot_currency = self.tot_currency + l['amount_currency']
@@ -356,7 +354,7 @@ class general_ledger(rml_parse.rml_parse):
sum_credit += account.init_credit
#
##
return sum_credit
def _sum_solde_account(self, account, form):
@@ -366,7 +364,7 @@ class general_ledger(rml_parse.rml_parse):
sum_solde = self.cr.fetchone()[0] or 0.0
if form['soldeinit']:
sum_solde += account.init_debit - account.init_credit
return sum_solde
@@ -402,7 +400,7 @@ class general_ledger(rml_parse.rml_parse):
# "WHERE l.account_id in ("+','.join(map(str, child_ids))+") AND "+query+period_sql)
sum_solde = self.cr.fetchone()[0] or 0.0
return sum_solde
def _set_get_account_currency_code(self, account_id):
self.cr.execute("SELECT c.code as code "\
"FROM res_currency c,account_account as ac "\
@@ -412,20 +410,20 @@ class general_ledger(rml_parse.rml_parse):
self.account_currency = result[0]
else:
self.account_currency = False
def _sum_currency_amount_account(self, account, form):
self._set_get_account_currency_code(account.id)
self.cr.execute("SELECT sum(aml.amount_currency) FROM account_move_line as aml,res_currency as rc WHERE aml.currency_id = rc.id AND aml.account_id= %d "%account.id)
total = self.cr.fetchone()
if self.account_currency:
return_field = str(total[0]) + self.account_currency
return return_field
else:
currency_total = self.tot_currency = 0.0
return currency_total
report_sxw.report_sxw('report.account.general.ledger', 'account.account', 'addons/account/report/general_ledger.rml', parser=general_ledger, header=False)
@@ -199,8 +199,11 @@ class general_ledger_landscape(rml_parse.rml_parse):
#
self.query = self.pool.get('account.move.line')._query_get(self.cr, self.uid, context=ctx)
for child_id in self.pool.get('account.account').search(self.cr, self.uid,[('parent_id', 'child_of', [account.id])]):
if account and account.child_consol_ids: # add ids of consolidated childs also of selected account
ctx['consolidate_childs'] = True
ctx['account_id'] = account.id
ids_acc = self.pool.get('account.account').search(self.cr, self.uid,[('parent_id', 'child_of', [account.id])], context=ctx)
for child_id in ids_acc:
child_account = self.pool.get('account.account').browse(self.cr, self.uid, child_id)
sold_account = self._sum_solde_account(child_account,form)
self.sold_accounts[child_account.id] = sold_account
@@ -294,9 +297,9 @@ class general_ledger_landscape(rml_parse.rml_parse):
else :
l['partner'] = ''
sum = l['debit'] - l ['credit']
c = time.strptime(l['date'],"%Y-%m-%d")
l['date'] = time.strftime("%d-%m-%Y",c)
l['progress'] = sum
@@ -1,7 +1,7 @@
# -*- encoding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2008 Tiny SPRL (<http://tiny.be>). All Rights Reserved
# $Id$
#
@@ -27,6 +27,7 @@ class wizard_move_line_select(wizard.interface):
def _open_window(self, cr, uid, data, context):
mod_obj = pooler.get_pool(cr.dbname).get('ir.model.data')
act_obj = pooler.get_pool(cr.dbname).get('ir.actions.act_window')
account_obj = pooler.get_pool(cr.dbname).get('account.account')
fiscalyear_obj = pooler.get_pool(cr.dbname).get('account.fiscalyear')
if not context.get('fiscalyear', False):
@@ -48,6 +49,10 @@ class wizard_move_line_select(wizard.interface):
'fiscalyear': context.get('fiscalyear', False),
'account_id': data['id']
}
if data['id']:
acc_data = account_obj.browse(cr, uid, data['id']).child_consol_ids
if acc_data:
result['context'].update({'consolidate_childs': True})
result['domain']=result['domain'][0:-1]+','+domain+result['domain'][-1]
return result
+1 -1
View File
@@ -41,7 +41,7 @@
""",
"depends" : ["account"],
"init_xml" : [],
"demo_xml" : [],
"demo_xml" : ["crossovered_budget_demo.xml"],
"update_xml" : [
"security/ir.model.access.csv","account_budget_wizard.xml",
"crossovered_budget_view.xml","crossovered_budget_report.xml","crossovered_budget_workflow.xml"
@@ -0,0 +1,338 @@
<?xml version="1.0" ?>
<openerp>
<!-- Budgetary Positions -->
<data noupdate="1">
<record id="account_budget_post_sales0" model="account.budget.post">
<field eval="&quot;&quot;&quot;Sales&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;SAL&quot;&quot;&quot;" name="code"/>
<field eval="[(6,0,[ref('account.a_sale')])]" name="account_ids"/>
</record>
</data>
<data noupdate="1">
<record id="account_budget_post_purchase0" model="account.budget.post">
<field eval="&quot;&quot;&quot;Purchases&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;PUR&quot;&quot;&quot;" name="code"/>
<field eval="[(6,0,[ref('account.a_expense')])]" name="account_ids"/>
</record>
</data>
<!-- Budgetary Dotations -->
<data noupdate="1">
<record id="account_budget_post_dot1" model="account.budget.post.dotation">
<field eval="&quot;&quot;&quot;/&quot;&quot;&quot;" name="name"/>
<field eval="5000" name="amount"/>
<field name="post_id" ref="account_budget_post_sales0"/>
<field name="period_id" ref="account.period_1"/>
</record>
<record id="account_budget_post_dot2" model="account.budget.post.dotation">
<field eval="&quot;&quot;&quot;/&quot;&quot;&quot;" name="name"/>
<field eval="5000" name="amount"/>
<field name="post_id" ref="account_budget_post_sales0"/>
<field name="period_id" ref="account.period_2"/>
</record>
<record id="account_budget_post_dot3" model="account.budget.post.dotation">
<field eval="&quot;&quot;&quot;/&quot;&quot;&quot;" name="name"/>
<field eval="5000" name="amount"/>
<field name="post_id" ref="account_budget_post_sales0"/>
<field name="period_id" ref="account.period_3"/>
</record>
<record id="account_budget_post_dot4" model="account.budget.post.dotation">
<field eval="&quot;&quot;&quot;/&quot;&quot;&quot;" name="name"/>
<field eval="5000" name="amount"/>
<field name="post_id" ref="account_budget_post_sales0"/>
<field name="period_id" ref="account.period_4"/>
</record>
<record id="account_budget_post_dot5" model="account.budget.post.dotation">
<field eval="&quot;&quot;&quot;/&quot;&quot;&quot;" name="name"/>
<field eval="5000" name="amount"/>
<field name="post_id" ref="account_budget_post_sales0"/>
<field name="period_id" ref="account.period_5"/>
</record>
<record id="account_budget_post_dot6" model="account.budget.post.dotation">
<field eval="&quot;&quot;&quot;/&quot;&quot;&quot;" name="name"/>
<field eval="5000" name="amount"/>
<field name="post_id" ref="account_budget_post_sales0"/>
<field name="period_id" ref="account.period_6"/>
</record>
<record id="account_budget_post_dot7" model="account.budget.post.dotation">
<field eval="&quot;&quot;&quot;/&quot;&quot;&quot;" name="name"/>
<field eval="5000" name="amount"/>
<field name="post_id" ref="account_budget_post_sales0"/>
<field name="period_id" ref="account.period_7"/>
</record>
<record id="account_budget_post_dot8" model="account.budget.post.dotation">
<field eval="&quot;&quot;&quot;/&quot;&quot;&quot;" name="name"/>
<field eval="5000" name="amount"/>
<field name="post_id" ref="account_budget_post_sales0"/>
<field name="period_id" ref="account.period_8"/>
</record>
<record id="account_budget_post_dot9" model="account.budget.post.dotation">
<field eval="&quot;&quot;&quot;/&quot;&quot;&quot;" name="name"/>
<field eval="5000" name="amount"/>
<field name="post_id" ref="account_budget_post_sales0"/>
<field name="period_id" ref="account.period_9"/>
</record>
<record id="account_budget_post_dot10" model="account.budget.post.dotation">
<field eval="&quot;&quot;&quot;/&quot;&quot;&quot;" name="name"/>
<field eval="5000" name="amount"/>
<field name="post_id" ref="account_budget_post_sales0"/>
<field name="period_id" ref="account.period_10"/>
</record>
<record id="account_budget_post_dot11" model="account.budget.post.dotation">
<field eval="&quot;&quot;&quot;/&quot;&quot;&quot;" name="name"/>
<field eval="5000" name="amount"/>
<field name="post_id" ref="account_budget_post_sales0"/>
<field name="period_id" ref="account.period_11"/>
</record>
<record id="account_budget_post_dot12" model="account.budget.post.dotation">
<field eval="&quot;&quot;&quot;/&quot;&quot;&quot;" name="name"/>
<field eval="5000" name="amount"/>
<field name="post_id" ref="account_budget_post_sales0"/>
<field name="period_id" ref="account.period_12"/>
</record>
<record id="account_budget_post_dot_pur1" model="account.budget.post.dotation">
<field eval="&quot;&quot;&quot;/&quot;&quot;&quot;" name="name"/>
<field eval="-2000" name="amount"/>
<field name="post_id" ref="account_budget_post_purchase0"/>
<field name="period_id" ref="account.period_1"/>
</record>
<record id="account_budget_post_dot_pur2" model="account.budget.post.dotation">
<field eval="&quot;&quot;&quot;/&quot;&quot;&quot;" name="name"/>
<field eval="-2000" name="amount"/>
<field name="post_id" ref="account_budget_post_purchase0"/>
<field name="period_id" ref="account.period_2"/>
</record>
<record id="account_budget_post_dot_pur3" model="account.budget.post.dotation">
<field eval="&quot;&quot;&quot;/&quot;&quot;&quot;" name="name"/>
<field eval="-2000" name="amount"/>
<field name="post_id" ref="account_budget_post_purchase0"/>
<field name="period_id" ref="account.period_3"/>
</record>
<record id="account_budget_post_dot_pur4" model="account.budget.post.dotation">
<field eval="&quot;&quot;&quot;/&quot;&quot;&quot;" name="name"/>
<field eval="-2000" name="amount"/>
<field name="post_id" ref="account_budget_post_purchase0"/>
<field name="period_id" ref="account.period_4"/>
</record>
<record id="account_budget_post_dot_pur5" model="account.budget.post.dotation">
<field eval="&quot;&quot;&quot;/&quot;&quot;&quot;" name="name"/>
<field eval="-2000" name="amount"/>
<field name="post_id" ref="account_budget_post_purchase0"/>
<field name="period_id" ref="account.period_5"/>
</record>
<record id="account_budget_post_dot_pur6" model="account.budget.post.dotation">
<field eval="&quot;&quot;&quot;/&quot;&quot;&quot;" name="name"/>
<field eval="-2000" name="amount"/>
<field name="post_id" ref="account_budget_post_purchase0"/>
<field name="period_id" ref="account.period_6"/>
</record>
<record id="account_budget_post_dot_pur7" model="account.budget.post.dotation">
<field eval="&quot;&quot;&quot;/&quot;&quot;&quot;" name="name"/>
<field eval="-2000" name="amount"/>
<field name="post_id" ref="account_budget_post_purchase0"/>
<field name="period_id" ref="account.period_7"/>
</record>
<record id="account_budget_post_dot_pur8" model="account.budget.post.dotation">
<field eval="&quot;&quot;&quot;/&quot;&quot;&quot;" name="name"/>
<field eval="-2000" name="amount"/>
<field name="post_id" ref="account_budget_post_purchase0"/>
<field name="period_id" ref="account.period_8"/>
</record>
<record id="account_budget_post_dot_pur9" model="account.budget.post.dotation">
<field eval="&quot;&quot;&quot;/&quot;&quot;&quot;" name="name"/>
<field eval="-2000" name="amount"/>
<field name="post_id" ref="account_budget_post_purchase0"/>
<field name="period_id" ref="account.period_9"/>
</record>
<record id="account_budget_post_dot_pur10" model="account.budget.post.dotation">
<field eval="&quot;&quot;&quot;/&quot;&quot;&quot;" name="name"/>
<field eval="-2000" name="amount"/>
<field name="post_id" ref="account_budget_post_purchase0"/>
<field name="period_id" ref="account.period_10"/>
</record>
<record id="account_budget_post_dot_pur11" model="account.budget.post.dotation">
<field eval="&quot;&quot;&quot;/&quot;&quot;&quot;" name="name"/>
<field eval="-2000" name="amount"/>
<field name="post_id" ref="account_budget_post_purchase0"/>
<field name="period_id" ref="account.period_11"/>
</record>
<record id="account_budget_post_dot_pur12" model="account.budget.post.dotation">
<field eval="&quot;&quot;&quot;/&quot;&quot;&quot;" name="name"/>
<field eval="-2000" name="amount"/>
<field name="post_id" ref="account_budget_post_purchase0"/>
<field name="period_id" ref="account.period_12"/>
</record>
</data>
<!-- Budgets -->
<data noupdate="1">
<record id="crossovered_budget_budgetoptimistic0" model="crossovered.budget">
<field eval="&quot;&quot;&quot;+2008&quot;&quot;&quot;" name="code"/>
<field eval="&quot;&quot;&quot;Budget 2008: Optimistic&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;2008-01-01&quot;&quot;&quot;" name="date_from"/>
<field eval="&quot;&quot;&quot;draft&quot;&quot;&quot;" name="state"/>
<field eval="&quot;&quot;&quot;2008-12-31&quot;&quot;&quot;" name="date_to"/>
<field name="creating_user_id" ref="base.user_root"/>
</record>
</data>
<data noupdate="1">
<record id="crossovered_budget_budgetpessimistic0" model="crossovered.budget">
<field eval="&quot;&quot;&quot;-2008&quot;&quot;&quot;" name="code"/>
<field eval="&quot;&quot;&quot;Budget 2008: Pessimistic&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;2008-01-01&quot;&quot;&quot;" name="date_from"/>
<field eval="&quot;&quot;&quot;draft&quot;&quot;&quot;" name="state"/>
<field eval="&quot;&quot;&quot;2008-12-31&quot;&quot;&quot;" name="date_to"/>
<field name="creating_user_id" ref="base.user_root"/>
</record>
</data>
<!-- Budget lines -->
<data noupdate="1">
<record id="crossovered_budget_lines_0" model="crossovered.budget.lines">
<field name="analytic_account_id" ref="account.analytic_consultancy"/>
<field name="general_budget_id" ref="account_budget_post_purchase0"/>
<field eval="&quot;&quot;&quot;2008-01-01&quot;&quot;&quot;" name="date_from"/>
<field eval="-500.0" name="planned_amount"/>
<field name="crossovered_budget_id" ref="crossovered_budget_budgetpessimistic0"/>
<field eval="&quot;&quot;&quot;2008-12-31&quot;&quot;&quot;" name="date_to"/>
</record>
<record id="crossovered_budget_lines_1" model="crossovered.budget.lines">
<field name="analytic_account_id" ref="account.analytic_consultancy"/>
<field name="general_budget_id" ref="account_budget_post_purchase0"/>
<field eval="&quot;&quot;&quot;2008-01-01&quot;&quot;&quot;" name="date_from"/>
<field eval="-250.0" name="planned_amount"/>
<field name="crossovered_budget_id" ref="crossovered_budget_budgetoptimistic0"/>
<field eval="&quot;&quot;&quot;2008-12-31&quot;&quot;&quot;" name="date_to"/>
</record>
<record id="crossovered_budget_lines_2" model="crossovered.budget.lines">
<field name="analytic_account_id" ref="account.analytic_consultancy"/>
<field name="general_budget_id" ref="account_budget_post_sales0"/>
<field eval="&quot;&quot;&quot;2008-01-01&quot;&quot;&quot;" name="date_from"/>
<field eval="500.0" name="planned_amount"/>
<field name="crossovered_budget_id" ref="crossovered_budget_budgetpessimistic0"/>
<field eval="&quot;&quot;&quot;2008-12-31&quot;&quot;&quot;" name="date_to"/>
</record>
<record id="crossovered_budget_lines_3" model="crossovered.budget.lines">
<field name="analytic_account_id" ref="account.analytic_consultancy"/>
<field name="general_budget_id" ref="account_budget_post_sales0"/>
<field eval="&quot;&quot;&quot;2008-01-07&quot;&quot;&quot;" name="date_from"/>
<field eval="900.0" name="planned_amount"/>
<field name="crossovered_budget_id" ref="crossovered_budget_budgetoptimistic0"/>
<field eval="&quot;&quot;&quot;2008-12-31&quot;&quot;&quot;" name="date_to"/>
</record>
<record id="crossovered_budget_lines_4" model="crossovered.budget.lines">
<field name="analytic_account_id" ref="account.analytic_consultancy"/>
<field name="general_budget_id" ref="account_budget_post_sales0"/>
<field eval="&quot;&quot;&quot;2008-01-01&quot;&quot;&quot;" name="date_from"/>
<field eval="300.0" name="planned_amount"/>
<field name="crossovered_budget_id" ref="crossovered_budget_budgetoptimistic0"/>
<field eval="&quot;&quot;&quot;2008-12-06&quot;&quot;&quot;" name="date_to"/>
</record>
</data>
<data noupdate="1">
<record id="crossovered_budget_lines_5" model="crossovered.budget.lines">
<field name="analytic_account_id" ref="account.analytic_super_product_trainings"/>
<field name="general_budget_id" ref="account_budget_post_sales0"/>
<field eval="&quot;&quot;&quot;2008-09-01&quot;&quot;&quot;" name="date_from"/>
<field eval="375.0" name="planned_amount"/>
<field name="crossovered_budget_id" ref="crossovered_budget_budgetpessimistic0"/>
<field eval="&quot;&quot;&quot;2008-12-03&quot;&quot;&quot;" name="paid_date"/>
<field eval="&quot;&quot;&quot;2208-12-31&quot;&quot;&quot;" name="date_to"/>
</record>
<record id="crossovered_budget_lines_6" model="crossovered.budget.lines">
<field name="analytic_account_id" ref="account.analytic_super_product_trainings"/>
<field name="general_budget_id" ref="account_budget_post_purchase0"/>
<field eval="&quot;&quot;&quot;2008-09-01&quot;&quot;&quot;" name="date_from"/>
<field eval="-150.0" name="planned_amount"/>
<field name="crossovered_budget_id" ref="crossovered_budget_budgetpessimistic0"/>
<field eval="&quot;&quot;&quot;2008-12-31&quot;&quot;&quot;" name="date_to"/>
</record>
<record id="crossovered_budget_lines_7" model="crossovered.budget.lines">
<field name="analytic_account_id" ref="account.analytic_super_product_trainings"/>
<field name="general_budget_id" ref="account_budget_post_sales0"/>
<field eval="&quot;&quot;&quot;2008-09-01&quot;&quot;&quot;" name="date_from"/>
<field eval="375.0" name="planned_amount"/>
<field name="crossovered_budget_id" ref="crossovered_budget_budgetoptimistic0"/>
<field eval="&quot;&quot;&quot;2008-12-03&quot;&quot;&quot;" name="paid_date"/>
<field eval="&quot;&quot;&quot;2008-12-31&quot;&quot;&quot;" name="date_to"/>
</record>
</data>
<data noupdate="1">
<record id="crossovered_budget_lines_8" model="crossovered.budget.lines">
<field name="analytic_account_id" ref="account.analytic_seagate_p1"/>
<field name="general_budget_id" ref="account_budget_post_purchase0"/>
<field eval="&quot;&quot;&quot;2009-01-01&quot;&quot;&quot;" name="date_from"/>
<field eval="-7500.0" name="planned_amount"/>
<field name="crossovered_budget_id" ref="crossovered_budget_budgetpessimistic0"/>
<field eval="&quot;&quot;&quot;2009-12-31&quot;&quot;&quot;" name="date_to"/>
</record>
<record id="crossovered_budget_lines_9" model="crossovered.budget.lines">
<field name="analytic_account_id" ref="account.analytic_seagate_p1"/>
<field name="general_budget_id" ref="account_budget_post_purchase0"/>
<field eval="&quot;&quot;&quot;2008-01-01&quot;&quot;&quot;" name="date_from"/>
<field eval="-5000.0" name="planned_amount"/>
<field name="crossovered_budget_id" ref="crossovered_budget_budgetpessimistic0"/>
<field eval="&quot;&quot;&quot;2008-12-31&quot;&quot;&quot;" name="date_to"/>
</record>
<record id="crossovered_budget_lines_10" model="crossovered.budget.lines">
<field name="analytic_account_id" ref="account.analytic_seagate_p1"/>
<field name="general_budget_id" ref="account_budget_post_purchase0"/>
<field eval="&quot;&quot;&quot;2008-01-01&quot;&quot;&quot;" name="date_from"/>
<field eval="-2000.0" name="planned_amount"/>
<field name="crossovered_budget_id" ref="crossovered_budget_budgetoptimistic0"/>
<field eval="&quot;&quot;&quot;2009-12-31&quot;&quot;&quot;" name="date_to"/>
</record>
<record id="crossovered_budget_lines_11" model="crossovered.budget.lines">
<field name="analytic_account_id" ref="account.analytic_seagate_p1"/>
<field name="general_budget_id" ref="account_budget_post_sales0"/>
<field eval="&quot;&quot;&quot;2008-01-01&quot;&quot;&quot;" name="date_from"/>
<field eval="20000.0" name="planned_amount"/>
<field name="crossovered_budget_id" ref="crossovered_budget_budgetpessimistic0"/>
<field eval="&quot;&quot;&quot;2010-12-31&quot;&quot;&quot;" name="date_to"/>
</record>
<record id="crossovered_budget_lines_12" model="crossovered.budget.lines">
<field name="analytic_account_id" ref="account.analytic_seagate_p1"/>
<field name="general_budget_id" ref="account_budget_post_sales0"/>
<field eval="&quot;&quot;&quot;2008-01-01&quot;&quot;&quot;" name="date_from"/>
<field eval="20000.0" name="planned_amount"/>
<field name="crossovered_budget_id" ref="crossovered_budget_budgetoptimistic0"/>
<field eval="&quot;&quot;&quot;2009-12-31&quot;&quot;&quot;" name="date_to"/>
</record>
</data>
<data noupdate="1">
<record id="crossovered_budget_lines_13" model="crossovered.budget.lines">
<field name="analytic_account_id" ref="account.analytic_seagate_p2"/>
<field name="general_budget_id" ref="account_budget_post_purchase0"/>
<field eval="&quot;&quot;&quot;2008-01-01&quot;&quot;&quot;" name="date_from"/>
<field eval="-3000.0" name="planned_amount"/>
<field name="crossovered_budget_id" ref="crossovered_budget_budgetpessimistic0"/>
<field eval="&quot;&quot;&quot;2008-12-31&quot;&quot;&quot;" name="date_to"/>
</record>
<record id="crossovered_budget_lines_14" model="crossovered.budget.lines">
<field name="analytic_account_id" ref="account.analytic_seagate_p2"/>
<field name="general_budget_id" ref="account_budget_post_purchase0"/>
<field eval="&quot;&quot;&quot;2008-01-01&quot;&quot;&quot;" name="date_from"/>
<field eval="-1000.0" name="planned_amount"/>
<field name="crossovered_budget_id" ref="crossovered_budget_budgetoptimistic0"/>
<field eval="&quot;&quot;&quot;2008-12-31&quot;&quot;&quot;" name="date_to"/>
</record>
<record id="crossovered_budget_lines_15" model="crossovered.budget.lines">
<field name="analytic_account_id" ref="account.analytic_seagate_p2"/>
<field name="general_budget_id" ref="account_budget_post_sales0"/>
<field eval="&quot;&quot;&quot;2008-01-01&quot;&quot;&quot;" name="date_from"/>
<field eval="10000.0" name="planned_amount"/>
<field name="crossovered_budget_id" ref="crossovered_budget_budgetpessimistic0"/>
<field eval="&quot;&quot;&quot;2008-12-31&quot;&quot;&quot;" name="date_to"/>
</record>
<record id="crossovered_budget_lines_16" model="crossovered.budget.lines">
<field name="analytic_account_id" ref="account.analytic_seagate_p2"/>
<field name="general_budget_id" ref="account_budget_post_sales0"/>
<field eval="&quot;&quot;&quot;2008-01-01&quot;&quot;&quot;" name="date_from"/>
<field eval="10000.0" name="planned_amount"/>
<field name="crossovered_budget_id" ref="crossovered_budget_budgetoptimistic0"/>
<field eval="&quot;&quot;&quot;2008-12-31&quot;&quot;&quot;" name="date_to"/>
</record>
</data>
</openerp>
+4 -3
View File
@@ -1,7 +1,7 @@
# -*- encoding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2008 Tiny SPRL (<http://tiny.be>). All Rights Reserved
# $Id$
#
@@ -22,12 +22,13 @@
{
"name" : "Auction module",
"version" : "1.0",
"category" : "Generic Modules/Others",
"depends" : ["base","account","l10n_be","hr_attendance"],
"update_xml" : [
# FIXME: review security rules...
"security/ir.model.access.csv",
"auction_view.xml",
"auction_report.xml",
"auction_view.xml",
"auction_report.xml",
"auction_wizard.xml",
],
"demo_xml" : [
+6 -6
View File
@@ -1,7 +1,7 @@
# -*- encoding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2008 Tiny SPRL (<http://tiny.be>). All Rights Reserved
# $Id$
#
@@ -24,16 +24,16 @@
"version" : "1.0",
"author" : "Tiny",
"website" : "http://tinyerp.com",
"category" : "Generic Modules/Base Contact",
"category" : "Generic Modules/Base",
"description": """
This module allows you to manage entirely your contacts.
This module allows you to manage entirely your contacts.
It lets you define
It lets you define
*contacts unrelated to a partner,
*contacts working at several adresses (possibly for different partners),
*contacts working at several adresses (possibly for different partners),
*contacts with possibly different functions for each of its job's addresses
It also add new menuitems located in
It also add new menuitems located in
Partners \ Contacts
Partners \ Functions
+2 -2
View File
@@ -1,7 +1,7 @@
# -*- encoding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2008 Tiny SPRL (<http://tiny.be>). All Rights Reserved
# $Id$
#
@@ -23,7 +23,7 @@
"name":"Board for Auction",
"version":"1.0",
"author":"Tiny",
"category":"Board",
"category":"Board/Auction",
"depends":[
"board",
"auction",
+2 -2
View File
@@ -1,7 +1,7 @@
# -*- encoding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2008 Tiny SPRL (<http://tiny.be>). All Rights Reserved
# $Id$
#
@@ -23,7 +23,7 @@
"name":"Dashboard for CRM Configuration",
"version":"1.0",
"author":"Tiny",
"category":"Board",
"category":"Board/CRM",
"depends":["board","crm_configuration"],
"demo_xml":["board_crm_demo.xml"],
"update_xml":["board_crm_statistical_view.xml",
+2 -2
View File
@@ -1,7 +1,7 @@
# -*- encoding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2008 Tiny SPRL (<http://tiny.be>). All Rights Reserved
# $Id$
#
@@ -23,7 +23,7 @@
"name":"Board for manufacturing",
"version":"1.0",
"author":"Tiny",
"category":"Board",
"category":"Board/Manufacturing",
"depends":[
"board",
"mrp",
@@ -95,13 +95,13 @@ class email_parser(object):
def msg_new(self, msg):
message = self.msg_body_get(msg)
data = {
'name': self._decode_header(msg['Subject'][:64]),
'name': self._decode_header(msg['Subject']),
'section_id': self.section_id,
'email_from': self._decode_header(msg['From'])[:128],
'email_cc': self._decode_header(msg['Cc'] or '')[:252],
'email_from': self._decode_header(msg['From']),
'email_cc': self._decode_header(msg['Cc'] or ''),
'canal_id': self.canal_id,
'user_id': False,
'history_line': [(0, 0, {'description': message['body'], 'email': msg['From'][:84] })],
'history_line': [(0, 0, {'description': message['body'], 'email': msg['From'] })],
}
try:
data.update(self.partner_get(self._decode_header(msg['From'])))
@@ -114,9 +114,9 @@ class email_parser(object):
for attach in attachments or []:
data_attach = {
'name': str(attach)[:64],
'name': str(attach),
'datas':binascii.b2a_base64(str(attachments[attach])),
'datas_fname': str(attach)[:64],
'datas_fname': str(attach),
'description': 'Mail attachment',
'res_model': 'crm.case',
'res_id': id
@@ -181,7 +181,7 @@ class email_parser(object):
body['body'] = body_data
data = {
'history_line': [(0, 0, {'description': body['body'], 'email': msg['From'][:84]})],
'history_line': [(0, 0, {'description': body['body'], 'email': msg['From']})],
}
act = 'case_close'
@@ -285,7 +285,7 @@ class email_parser(object):
if self.email_default:
a = self._decode_header(msg['Subject'])
del msg['Subject']
msg['Subject'] = '[TinyERP-CaseError] ' + a
msg['Subject'] = '[OpenERP-CaseError] ' + a
self.msg_send(msg, self.email_default.split(','))
return emails
+5 -5
View File
@@ -1,7 +1,7 @@
# -*- encoding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2008 Tiny SPRL (<http://tiny.be>). All Rights Reserved
# $Id$
#
@@ -25,19 +25,19 @@
"depends" : ["base", "crm"],
"author" : "Tiny",
"description": """
This module allow users to perform segmentation within partners.
This module allow users to perform segmentation within partners.
It use the profiles criteria from the earlier segmentation module and improve it thanks to the new concept of questionnaire. You can now regroup questions into a questionnaire and directly use it on a partner.
It also has been merged with the earlier CRM & SRM segmentation tool because they were overlapping.
It also has been merged with the earlier CRM & SRM segmentation tool because they were overlapping.
The menu items related are in "CRM & SRM\Configuration\Segmentations\"
* Note: this module is not compatible with the module segmentation, since it's the same which has been renamed.
""",
"website" : "http://tinyerp.com/",
"category" : "Generic Modules/Project & Services",
"category" : "Generic Modules/CRM & SRM",
"init_xml" : [],
"demo_xml" : ["crm_profiling_demo.xml"],
"update_xml" : [
+5 -5
View File
@@ -471,7 +471,7 @@ def random_name():
def create_directory(path):
dir_name = random_name()
path = os.path.join(path,dir_name)
os.mkdir(path)
os.makedirs(path)
return dir_name
class document_file(osv.osv):
@@ -484,7 +484,7 @@ class document_file(osv.osv):
result[id] = d
elif m=='fs':
try:
path = os.path.join(os.getcwd(),'filestore')
path = os.path.join(os.getcwd(), 'filestore', cr.dbname)
value = file(os.path.join(path,r), 'rb').read()
result[id] = base64.encodestring(value)
except:
@@ -500,9 +500,9 @@ class document_file(osv.osv):
if not value:
return True
if (not context) or context.get('store_method','fs')=='fs':
path = os.path.join(os.getcwd(), "filestore")
path = os.path.join(os.getcwd(), "filestore", cr.dbname)
if not os.path.isdir(path):
os.mkdir(path)
os.makedirs(path)
flag = None
# This can be improved
for dirs in os.listdir(path):
@@ -620,7 +620,7 @@ class document_file(osv.osv):
for f in self.browse(cr, uid, ids, context):
if f.store_method=='fs':
try:
path = os.path.join(os.getcwd(),'filestore',f.store_fname)
path = os.path.join(os.getcwd(), cr.dbname, 'filestore',f.store_fname)
os.unlink(path)
except:
pass
+2 -2
View File
@@ -1,7 +1,7 @@
# -*- encoding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2008 Tiny SPRL (<http://tiny.be>). All Rights Reserved
# $Id$
#
@@ -24,7 +24,7 @@
"version" : "1.0",
"author" : "Tiny",
"website" : "http://tinyerp.com",
"category" : "Generic Modules",
"category" : "Generic Modules/Others",
"description": """The module adds google map field in partner address
so that we can directly open google map from the
url widget.""",
+2 -2
View File
@@ -39,7 +39,7 @@ si_so_fields = {
si_form = '''<?xml version="1.0" ?>
<form string="Sign in status">
<seperator string="This is the status of your sign in request. Check it out maybe you were already signed in." colspan="4" />
<separator string="This is the status of your sign in request. Check it out maybe you were already signed in." colspan="4" />
<field name="success" readonly="True" />
</form>'''
@@ -49,7 +49,7 @@ si_fields = {
so_form = '''<?xml version="1.0" ?>
<form string="Sign in status">
<seperator string="This is the status of your sign out request. Check it out maybe you were already signed out." colspan="4" />
<separator string="This is the status of your sign out request. Check it out maybe you were already signed out." colspan="4" />
<field name="success" readonly="True" />
</for>'''
+1 -1
View File
@@ -1,7 +1,7 @@
# -*- encoding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2008 Tiny SPRL (<http://tiny.be>). All Rights Reserved
# $Id$
#
+8 -1
View File
@@ -410,7 +410,13 @@
</graph>
</field>
</record>
<wizard
string="Change Product Qty."
model="mrp.production"
name="change_production_qty"
id="mrp.wizard_change_production_qty"
keyword="client_action_multi"
multi="True"/>
<record id="mrp_production_form_view" model="ir.ui.view">
<field name="name">mrp.production.form</field>
<field name="model">mrp.production</field>
@@ -424,6 +430,7 @@
<newline/>
<field name="product_id" on_change="product_id_change(product_id)" select="1"/>
<field name="product_qty"/>
<button type="action" name="%(wizard_change_production_qty)d" string="Change Qty"/>
<field name="product_uom"/>
<newline/>
<label string="" colspan="2"/>
+1
View File
@@ -26,6 +26,7 @@ import wizard_schedulers_all
import wizard_price
import wizard_workcenter_load
import wizard_track_prod
import wizard_change_production_qty
import make_procurement
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
@@ -0,0 +1,116 @@
# -*- encoding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2008 Tiny SPRL (<http://tiny.be>). All Rights Reserved
# $Id$
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
import time
import wizard
import ir
import pooler
from osv.osv import except_osv
from osv import fields,osv
import netsvc
form1 = '''<?xml version="1.0"?>
<form string="Change Product Qty">
<field name="product_qty"/>
</form>'''
form1_fields={
'product_qty': {'string': 'Product Qty', 'type':'float', 'required':True},
}
def _get_qty(self,cr,uid, data, state):
prod_obj = pooler.get_pool(cr.dbname).get('mrp.production')
prod = prod_obj.browse(cr, uid,data['ids'])[0]
form1_fields['product_qty']['default']=prod.product_qty
return {}
def _get_states(self, cr, uid, data, context):
prod_obj = pooler.get_pool(cr.dbname).get('mrp.production')
prod = prod_obj.browse(cr, uid,data['ids'])[0]
if prod.state in ('cancel', 'done'):
raise wizard.except_wizard('Warning !', 'The production is in "%s" state. You can not change the production quantity anymore' % (prod.state).upper() )
return 'end'
if prod.state in ('draft'):
#raise wizard.except_wizard('Warning !', 'The production is in "%s" state. You can change the production quantity directly...!!!' % (prod.state).upper() )
return 'end'
else:
return 'confirm'
def _change_prod_qty(self, cr, uid, data, context):
pool = pooler.get_pool(cr.dbname)
prod_obj = pool.get('mrp.production')
prod = prod_obj.browse(cr, uid,data['ids'])[0]
prod_obj.write(cr, uid,prod.id, {'product_qty' : data['form']['product_qty']})
prod_obj.action_compute(cr, uid, [prod.id])
move_lines_obj = pool.get('stock.move')
for move in prod.move_lines:
bom_point = prod.bom_id
bom_id = prod.bom_id.id
if not bom_point:
bom_id = pool.get('mrp.bom')._bom_find(cr, uid, prod.product_id.id, prod.product_uom.id, properties)
if not bom_id:
raise osv.except_osv('Error', "Couldn't find bill of material for product")
self.write(cr, uid, [prod.id], {'bom_id': bom_id})
bom_point = pool.get('mrp.bom').browse(cr, uid, [bom_id])[0]
if not bom_id:
raise osv.except_osv('Error', "Couldn't find bill of material for product")
factor = prod.product_qty * prod.product_uom.factor / bom_point.product_uom.factor
res = pool.get('mrp.bom')._bom_explode(cr, uid, bom_point, factor / bom_point.product_qty, [])
for r in res[0]:
if r['product_id']== move.product_id.id:
move_lines_obj.write(cr, uid,move.id, {'product_qty' : r['product_qty']})
product_lines_obj = pool.get('mrp.production.product.line')
for m in prod.move_created_ids:
move_lines_obj.write(cr, uid,m.id, {'product_qty' : data['form']['product_qty']})
return {}
class change_production_qty(wizard.interface):
states = {
'init' : {
'actions' : [],
'result' : {'type' : 'choice', 'next_state' : _get_states}
},
'confirm' : {
'actions' : [_get_qty],
'result': {'type': 'form', 'arch':form1, 'fields':form1_fields, 'state':[('end','Cancel'),('validate','Validate')]}
},
'validate': {
'actions': [],
'result': {'type':'action', 'action':_change_prod_qty, 'state':'end'}
},
'end' : {
'actions' : [],
'result': {'type': 'state', 'state': 'end'},
},
}
change_production_qty('change_production_qty')
@@ -32,7 +32,7 @@ class profile_accounting_config_install_modules_wizard(osv.osv_memory):
'account_payment':fields.boolean('Suppliers Payment Management'),
'account_asset':fields.boolean('Asset Management'),
'hr_timesheet_invoice':fields.boolean('Invoice on Analytic Entries'),
'account_budget_crossover':fields.boolean('Analytic Budgets'),
'account_budget':fields.boolean('Budgets', help="Helps you to manage financial and analytic budgets."),
'board_document':fields.boolean('Document Management',help= "The Document Management System of Open ERP allows you to store, browse, automatically index, search and preview all kind of documents (internal documents, printed reports, calendar system). It opens an FTP access for the users to easily browse association's document."),
@@ -12,7 +12,7 @@
<field name="account_analytic_plans"/>
<field name="account_payment"/>
<separator string="Resources Management" colspan="4"/>
<field name="account_budget_crossover"/>
<field name="account_budget"/>
<field name="account_asset"/>
<separator string="Services Management" colspan="4"/>
<field name="hr_timesheet_invoice"/>
+1 -1
View File
@@ -275,7 +275,7 @@
<para style="terp_default_9">[[ ', '.join(map(lambda x: x.name, line.taxes_id)) ]]</para>
</td>
<td>
<para style="terp_default_Centre_9">[[ line.date_planned]]</para>
<para style="terp_default_Centre_9">[[ time.strftime('%m/%d/%Y', time.strptime( line.date_planned, '%Y-%m-%d %H:%M:%S')) ]]</para>
</td>
<td>
<para style="terp_default_Right_9">[[ line.product_qty ]] </para>
@@ -14,3 +14,4 @@
"access_stock_inventory_line","stock.inventory.line","model_stock_inventory_line","stock.group_stock_user",1,1,1,1
"access_stock_report_prodlots","stock.report.prodlots","model_stock_report_prodlots","stock.group_stock_manager",1,0,0,0
"access_stock_location_product_manager","stock.location product manager","model_stock_location","product.group_product_manager",1,0,0,0
"access_stock_lines_date","report.stock.lines.date all","model_report_stock_lines_date",,1,0,0,0
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
14 access_stock_inventory_line stock.inventory.line model_stock_inventory_line stock.group_stock_user 1 1 1 1
15 access_stock_report_prodlots stock.report.prodlots model_stock_report_prodlots stock.group_stock_manager 1 0 0 0
16 access_stock_location_product_manager stock.location product manager model_stock_location product.group_product_manager 1 0 0 0
17 access_stock_lines_date report.stock.lines.date all model_report_stock_lines_date 1 0 0 0