diff --git a/addons/account/i18n/ru.po b/addons/account/i18n/ru.po index f16c1a81618..16b60927980 100644 --- a/addons/account/i18n/ru.po +++ b/addons/account/i18n/ru.po @@ -7,14 +7,14 @@ msgstr "" "Project-Id-Version: OpenERP Server 6.0dev\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2011-01-11 11:14+0000\n" -"PO-Revision-Date: 2011-04-15 19:34+0000\n" -"Last-Translator: Chertykov Denis \n" +"PO-Revision-Date: 2011-06-27 05:16+0000\n" +"Last-Translator: Andrew Yashchuk \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-04-29 05:09+0000\n" -"X-Generator: Launchpad (build 12758)\n" +"X-Launchpad-Export-Date: 2011-06-28 04:40+0000\n" +"X-Generator: Launchpad (build 13168)\n" #. module: account #: model:process.transition,name:account.process_transition_supplierreconcilepaid0 @@ -33,7 +33,7 @@ msgid "No End of year journal defined for the fiscal year" msgstr "Не определен журнал конца года для финансового года" #. module: account -#: code:addons/account/account.py:506 +#: code:addons/account/account.py:516 #, python-format msgid "" "You cannot remove/deactivate an account which is set as a property to any " @@ -67,10 +67,10 @@ msgid "Residual" msgstr "Остаток" #. module: account -#: code:addons/account/invoice.py:785 +#: code:addons/account/invoice.py:793 #, python-format msgid "Please define sequence on invoice journal" -msgstr "Пожалуйста, определите последовательность в журнале счетов" +msgstr "Пожалуйста, определите нумерацию в журнале счетов" #. module: account #: constraint:account.period:0 @@ -85,12 +85,12 @@ msgstr "Валюта счета" #. module: account #: view:account.tax:0 msgid "Children Definition" -msgstr "" +msgstr "Определение наследников" #. module: account #: model:ir.model,name:account.model_report_aged_receivable msgid "Aged Receivable Till Today" -msgstr "" +msgstr "Просроченная задолженность на сегодня" #. module: account #: field:account.partner.ledger,reconcil:0 @@ -127,6 +127,8 @@ msgid "" "If you unreconciliate transactions, you must also verify all the actions " "that are linked to those transactions because they will not be disabled" msgstr "" +"Если вы отмените сверку транзакций, то вы должны проверить все действия, " +"связанные с этими транзакциями так, как они не будут отключены" #. module: account #: report:account.tax.code.entries:0 @@ -134,10 +136,10 @@ msgid "Accounting Entries-" msgstr "Бухгалтерские проводки-" #. module: account -#: code:addons/account/account.py:1291 +#: code:addons/account/account.py:1305 #, python-format msgid "You can not delete posted movement: \"%s\"!" -msgstr "Нельзя удалить проведенное перемещение: \"%s\"!" +msgstr "Нельзя удалить проведенную операцию: \"%s\"!" #. module: account #: report:account.invoice:0 @@ -176,11 +178,11 @@ msgid "" "If the active field is set to False, it will allow you to hide the payment " "term without removing it." msgstr "" -"Если поле 'Активно' имеет значение Ложь, вы сможете скрыть срок оплаты, не " -"удаляя его." +"Если поле \"Активно\" имеет значение Ложь, вы сможете скрыть условие оплаты, " +"не удаляя его." #. module: account -#: code:addons/account/invoice.py:1421 +#: code:addons/account/invoice.py:1436 #, python-format msgid "Warning!" msgstr "Предупреждение!" @@ -219,6 +221,8 @@ msgid "" "invoice) to create analytic entries, OpenERP will look for a matching " "journal of the same type." msgstr "" +"Дает тип журнала аналитики. Когда для документа (для счета) надо создать " +"проводки аналитики, OpenERP будет искать подходящий журнал такого типа." #. module: account #: model:ir.actions.act_window,name:account.action_account_tax_template_form @@ -232,7 +236,7 @@ msgid "account.tax" msgstr "account.tax" #. module: account -#: code:addons/account/account.py:901 +#: code:addons/account/account.py:915 #, python-format msgid "" "No period defined for this date: %s !\n" @@ -244,7 +248,7 @@ msgstr "" #. module: account #: model:ir.model,name:account.model_account_move_line_reconcile_select msgid "Move line reconcile select" -msgstr "Выбор сверки действия" +msgstr "Выбор сверки операций" #. module: account #: help:account.model.line,sequence:0 @@ -252,8 +256,7 @@ msgid "" "The sequence field is used to order the resources from lower sequences to " "higher ones" msgstr "" -"Поле \"последовательность\" используется для сортировки. От младшего к " -"старшему." +"Поле \"нумерация\" используется для сортировки. От младшего к старшему." #. module: account #: help:account.tax.code,notprintable:0 @@ -266,7 +269,7 @@ msgstr "" "налога появился в счетах-фактурах" #. module: account -#: code:addons/account/invoice.py:1210 +#: code:addons/account/invoice.py:1224 #, python-format msgid "Invoice '%s' is paid partially: %s%s of %s%s (%s%s remaining)" msgstr "Счет '%s' оплачивается частично: %s%s из %s%s (%s%s остаток)" @@ -282,7 +285,7 @@ msgid "Belgian Reports" msgstr "Бельгийские отчеты" #. module: account -#: code:addons/account/account_move_line.py:1176 +#: code:addons/account/account_move_line.py:1182 #, python-format msgid "You can not add/modify entries in a closed journal." msgstr "В не можете добавить/исправить проводки в закрытом журнале" @@ -320,7 +323,7 @@ msgid "St." msgstr "ул." #. module: account -#: code:addons/account/invoice.py:529 +#: code:addons/account/invoice.py:532 #, python-format msgid "Invoice line account company does not match with invoice company." msgstr "" @@ -336,8 +339,8 @@ msgid "" "Installs localized accounting charts to match as closely as possible the " "accounting needs of your company based on your country." msgstr "" -"Устанавливает локализованный план счетов, чтобы соответствовать как можно " -"ближе потребностям учета вашей компании на основе учета в вашей стране." +"Устанавливает локализованный план счетов для наибольшего соответствия " +"потребностям учёта в вашей организации для вашей страны." #. module: account #: code:addons/account/wizard/account_move_journal.py:63 @@ -348,6 +351,10 @@ msgid "" "You can create one in the menu: \n" "Configuration/Financial Accounting/Accounts/Journals." msgstr "" +"Не найден журнал счета типа %s для этой компании.\n" +"\n" +"Вы можете создать его в меню:\n" +"Настройки/Финансы и бухгалтерия/Журналы" #. module: account #: model:ir.model,name:account.model_account_unreconcile @@ -524,7 +531,7 @@ msgstr "Подтвердить выбранные счета" #. module: account #: field:account.addtmpl.wizard,cparent_id:0 msgid "Parent target" -msgstr "" +msgstr "Родительская цель" #. module: account #: field:account.bank.statement,account_id:0 @@ -571,7 +578,7 @@ msgid "Not reconciled transactions" msgstr "Не сверенные транзакции" #. module: account -#: code:addons/account/account_cash_statement.py:348 +#: code:addons/account/account_cash_statement.py:349 #, python-format msgid "CashBox Balance is not matching with Calculated Balance !" msgstr "Баланс кассы не совпадает с рассчитанным балансом !" @@ -647,7 +654,7 @@ msgstr "Централизованный журнал" #. module: account #: sql_constraint:account.sequence.fiscalyear:0 msgid "Main Sequence must be different from current !" -msgstr "" +msgstr "Основная нумерация должна отличаться от текущей!" #. module: account #: field:account.invoice.tax,tax_amount:0 @@ -655,7 +662,7 @@ msgid "Tax Code Amount" msgstr "" #. module: account -#: code:addons/account/account.py:2779 +#: code:addons/account/account.py:2823 #: code:addons/account/installer.py:434 #, python-format msgid "SAJ" @@ -688,11 +695,12 @@ msgid "Journal Period" msgstr "Период журнала" #. module: account -#: code:addons/account/account_move_line.py:732 -#: code:addons/account/account_move_line.py:776 +#: code:addons/account/account_move_line.py:723 +#: code:addons/account/account_move_line.py:767 #, python-format msgid "To reconcile the entries company should be the same for all entries" -msgstr "Для сверки проводок компания должна быть одна во всех проводках." +msgstr "" +"Для проведения сверки, организация в проводках не должна различаться." #. module: account #: view:account.account:0 @@ -729,7 +737,7 @@ msgstr "Проверка" #. module: account #: field:account.partner.reconcile.process,today_reconciled:0 msgid "Partners Reconciled Today" -msgstr "Партнеры сверенные сегодня" +msgstr "Контрагенты сверенные сегодня" #. module: account #: selection:account.payment.term.line,value:0 @@ -750,7 +758,7 @@ msgid "Analytic Entries by line" msgstr "Аналитические проводки по строкам" #. module: account -#: code:addons/account/wizard/account_change_currency.py:39 +#: code:addons/account/wizard/account_change_currency.py:38 #, python-format msgid "You can only change currency for Draft Invoice !" msgstr "Вы можете изменить валюту только в черновике счета !" @@ -805,7 +813,7 @@ msgstr "Вычисление срока" #. module: account #: report:account.analytic.account.quantity_cost_ledger:0 msgid "J.C./Move name" -msgstr "" +msgstr "Код журн./Операция" #. module: account #: selection:account.entries.report,month:0 @@ -834,6 +842,8 @@ msgid "" "Can not %s invoice which is already reconciled, invoice should be " "unreconciled first. You can only Refund this invoice" msgstr "" +"Нельзя \"%s\" счет, который уже сверен, сначала надо отменить сверку. Вы " +"можете только вернуть счет." #. module: account #: model:ir.actions.act_window,name:account.action_subscription_form_new @@ -848,10 +858,10 @@ msgstr "Вычисления" #. module: account #: view:account.move.line:0 msgid "Next Partner to reconcile" -msgstr "Следующий партнер для сверки" +msgstr "Следующий контрагент для сверки" #. module: account -#: code:addons/account/account_move_line.py:1191 +#: code:addons/account/account_move_line.py:1197 #, python-format msgid "" "You can not do this modification on a confirmed entry ! Please note that you " @@ -937,7 +947,7 @@ msgstr "Выписка банка" #. module: account #: field:account.analytic.line,move_id:0 msgid "Move Line" -msgstr "Действие" +msgstr "Операция" #. module: account #: help:account.move.line,tax_amount:0 @@ -975,11 +985,11 @@ msgid "Code" msgstr "Код" #. module: account -#: code:addons/account/account.py:2083 +#: code:addons/account/account.py:2097 #: code:addons/account/account_bank_statement.py:350 -#: code:addons/account/account_move_line.py:170 +#: code:addons/account/account_move_line.py:169 #: code:addons/account/invoice.py:73 -#: code:addons/account/invoice.py:670 +#: code:addons/account/invoice.py:678 #: code:addons/account/wizard/account_use_model.py:81 #, python-format msgid "No Analytic Journal !" @@ -1003,7 +1013,7 @@ msgstr "Название счета." #: field:account.chart.template,property_reserve_and_surplus_account:0 #: field:res.company,property_reserve_and_surplus_account:0 msgid "Reserve and Profit/Loss Account" -msgstr "" +msgstr "Счет резервов и прибылей/убытков" #. module: account #: field:report.account.receivable,name:0 @@ -1040,7 +1050,7 @@ msgstr "" #. module: account #: view:account.tax:0 msgid "Applicability Options" -msgstr "" +msgstr "Опции применимости" #. module: account #: report:account.partner.balance:0 @@ -1060,7 +1070,6 @@ msgstr "Прибыль и убыток (счета расходов)" #. module: account #: report:account.analytic.account.journal:0 -#: report:account.move.voucher:0 #: report:account.third_party_ledger:0 #: report:account.third_party_ledger_other:0 msgid "-" @@ -1095,7 +1104,7 @@ msgstr "Подтвердить документ" #: field:account.fiscal.position.tax,tax_dest_id:0 #: field:account.fiscal.position.tax.template,tax_dest_id:0 msgid "Replacement Tax" -msgstr "" +msgstr "Замещающий налог" #. module: account #: selection:account.move.line,centralisation:0 @@ -1110,6 +1119,11 @@ msgid "" "purchase orders or receipts. This way, you can control the invoice from your " "supplier according to what you purchased or received." msgstr "" +"\"Счета поставщиков\" позволяют вам управлять счетами выставленными вашими " +"поставщиками. OpenERP может генерировать черновики счетов автоматически из " +"заказов на закупку или прихода товара. В таком случае вы можете " +"контролировать соответствие счета, полученного от поставщика, закупленному " +"или полученному." #. module: account #: view:account.invoice.cancel:0 @@ -1132,12 +1146,12 @@ msgstr "Код налога" #. module: account #: field:account.account,currency_mode:0 msgid "Outgoing Currencies Rate" -msgstr "" +msgstr "Исходящий курс валют" #. module: account #: help:account.move.line,move_id:0 msgid "The move of this entry line." -msgstr "Перемещение этой проводки." +msgstr "Операция этой проводки" #. module: account #: field:account.move.line.reconcile,trans_nbr:0 @@ -1146,6 +1160,7 @@ msgstr "# транзакции" #. module: account #: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 #: report:account.tax.code.entries:0 #: report:account.third_party_ledger:0 #: report:account.third_party_ledger_other:0 @@ -1153,7 +1168,7 @@ msgid "Entry Label" msgstr "Метка проводки" #. module: account -#: code:addons/account/account.py:976 +#: code:addons/account/account.py:990 #, python-format msgid "You can not modify/delete a journal with entries for this period !" msgstr "Вы не можете изменить/удалить журнал с записями за этот период !" @@ -1291,7 +1306,6 @@ msgid "Journal Items Analysis" msgstr "Анализ элементов журнала" #. module: account -#: model:ir.actions.act_window,name:account.action_partner_all #: model:ir.ui.menu,name:account.next_id_22 msgid "Partners" msgstr "Контрагенты" @@ -1321,7 +1335,7 @@ msgid "Central Journal" msgstr "Центральный журнал" #. module: account -#: code:addons/account/account_move_line.py:1271 +#: code:addons/account/account_move_line.py:1277 #, python-format msgid "You can not use this general account in this journal !" msgstr "Вы не можете использовать этот общий счет в этом журнале!" @@ -1416,15 +1430,18 @@ msgstr "Возвраты поставщику" msgid "" "Example: at 14 net days 2 percents, remaining amount at 30 days end of month." msgstr "" +"Пример: 2 процента через 14 дней, остаток через 30 дней после конца месяца." #. module: account -#: code:addons/account/invoice.py:815 +#: code:addons/account/invoice.py:823 #, python-format msgid "" "Cannot create the invoice !\n" "The payment term defined gives a computed amount greater than the total " "invoiced amount." msgstr "" +"Невозможно создать счет!\n" +"Сумма, рассчитанная по условию оплаты больше чем итоговая сумма счета." #. module: account #: field:account.installer.modules,account_anglo_saxon:0 @@ -1440,7 +1457,7 @@ msgstr "Англосаксонский бухгалтерский учет" #: selection:account.fiscalyear,state:0 #: selection:account.period,state:0 msgid "Closed" -msgstr "Закрыто" +msgstr "Закрыт" #. module: account #: model:ir.ui.menu,name:account.menu_finance_recurrent_entries @@ -1455,7 +1472,7 @@ msgstr "Шаблон для системы налогообложения" #. module: account #: model:account.tax.code,name:account.account_tax_code_0 msgid "Tax Code Test" -msgstr "" +msgstr "Проверка налогового кода" #. module: account #: field:account.automatic.reconcile,reconciled:0 @@ -1534,6 +1551,11 @@ msgid "" "the Payment column of a line, you can press F1 to open the reconciliation " "form." msgstr "" +"Банковская выписка является отражением всех финансовых операций, прошедших в " +"течение определенного периода по банковскому счету, кредитной карте или " +"любому другому виду финансового счета. Начальный баланс будет предложен " +"автоматически, а конечное сальдо должно быть в выписке. Когда вы находитесь " +"в столбце Оплата, вы можете нажать F1, чтобы открыть форму сверки." #. module: account #: report:account.analytic.account.cost_ledger:0 @@ -1576,10 +1598,9 @@ msgstr "Последовательность финансовых лет" #. module: account #: field:wizard.multi.charts.accounts,seq_journal:0 msgid "Separated Journal Sequences" -msgstr "Отдельные последовательности журнала" +msgstr "Раздельные нумерации журнала" #. module: account -#: field:account.bank.statement,user_id:0 #: view:account.invoice:0 msgid "Responsible" msgstr "Ответственный" @@ -1627,7 +1648,7 @@ msgstr "Годовая сумма" #. module: account #: model:ir.actions.report.xml,name:account.report_account_voucher_new msgid "Print Voucher" -msgstr "" +msgstr "Печать ваучера" #. module: account #: view:account.change.currency:0 @@ -1641,7 +1662,7 @@ msgid "" "Have a complete tree view of all journal items per account code by clicking " "on an account." msgstr "" -"Отображение плана счетов вашей компании на финансовый год с фильтром по " +"Отображение плана счетов вашей организации на финансовый год с фильтром по " "периодам. Отображается как древовидная структура всех элементов журнала по " "коду счета при нажатии на счет." @@ -1651,7 +1672,7 @@ msgid "Error! You cannot define overlapping fiscal years" msgstr "Ошибка! Вы не можете определить перекрывающиеся отчетные года" #. module: account -#: code:addons/account/account_move_line.py:808 +#: code:addons/account/account_move_line.py:799 #, python-format msgid "The account is not defined to be reconciled !" msgstr "Счет не определен для сверки !" @@ -1678,7 +1699,7 @@ msgstr "Дебет по поставщику" #. module: account #: help:account.model.line,quantity:0 msgid "The optional quantity on entries" -msgstr "" +msgstr "Необязательное количество проводок" #. module: account #: model:ir.actions.act_window,name:account.act_account_partner_account_move_all @@ -1686,7 +1707,7 @@ msgid "Receivables & Payables" msgstr "Дебиторы и кредиторы" #. module: account -#: code:addons/account/account_move_line.py:815 +#: code:addons/account/account_move_line.py:806 #, python-format msgid "You have to provide an account for the write off entry !" msgstr "Вы должны указать счет для проводки списания!" @@ -1722,7 +1743,7 @@ msgid "Customer Ref:" msgstr "Ссылка на клиента:" #. module: account -#: code:addons/account/account_cash_statement.py:328 +#: code:addons/account/account_cash_statement.py:329 #, python-format msgid "User %s does not have rights to access %s journal !" msgstr "Пользователь %s не имеет прав доступа к журналу %s !" @@ -1743,10 +1764,10 @@ msgid "Tax Declaration: Credit Notes" msgstr "" #. module: account -#: code:addons/account/account.py:499 +#: code:addons/account/account.py:509 #, python-format msgid "You cannot deactivate an account that contains account moves." -msgstr "Вы не можете отключить счет, по которому есть движение." +msgstr "Вы не можете отключить счет, по которому есть операции." #. module: account #: field:account.move.line.reconcile,credit:0 @@ -1756,10 +1777,10 @@ msgstr "Сумма кредита" #. module: account #: constraint:account.move.line:0 msgid "You can not create move line on closed account." -msgstr "Нельзя сделать действие по закрытому счету." +msgstr "Нельзя сделать операцию по закрытому счету." #. module: account -#: code:addons/account/account.py:519 +#: code:addons/account/account.py:529 #, python-format msgid "" "You cannot change the type of account from 'Closed' to any other type which " @@ -1771,7 +1792,7 @@ msgstr "" #. module: account #: view:res.company:0 msgid "Reserve And Profit/Loss Account" -msgstr "" +msgstr "Счет резервов и прибылей/убытков" #. module: account #: sql_constraint:account.move.line:0 @@ -1788,7 +1809,7 @@ msgstr "Анализ счетов" #. module: account #: model:ir.model,name:account.model_account_period_close msgid "period close" -msgstr "" +msgstr "закрытие периода" #. module: account #: view:account.installer:0 @@ -1829,7 +1850,7 @@ msgstr "Финансовый анализ" #. module: account #: constraint:res.company:0 msgid "Error! You can not create recursive companies." -msgstr "Ошибка! Вы не можете создавать рекурсивные компании." +msgstr "Ошибка ! Нельзя создать организации рекурсивно." #. module: account #: view:account.analytic.account:0 @@ -1902,7 +1923,8 @@ msgid "" "It adds the currency column if the currency is different then the company " "currency" msgstr "" -"Добавляет столбец валюты , если валюта отличается, от валюты компании." +"Добавляет столбец валюты. Если валюта отличается — указывается валюта " +"организации" #. module: account #: help:account.journal,allow_date:0 @@ -1952,6 +1974,9 @@ msgid "" "be with same name as statement name. This allows the statement entries to " "have the same references than the statement itself" msgstr "" +"Если вы вводите название отличное от \"/\", то созданные операции проводок " +"будут иметь названия как у документа. Это позволяет проводкам в документе " +"иметь названия как и у самого документа" #. module: account #: model:ir.actions.act_window,name:account.action_account_unreconcile @@ -2039,7 +2064,7 @@ msgid " Journal" msgstr " журнал" #. module: account -#: code:addons/account/account.py:1319 +#: code:addons/account/account.py:1333 #, python-format msgid "" "There is no default default debit account defined \n" @@ -2059,6 +2084,10 @@ msgid "" "partners accounts (for debit/credit computations), closed for depreciated " "accounts." msgstr "" +"Этот тип используется, чтобы различать типы со специальными эффектами в " +"OpenERP: вид - не может иметь проводок, объединение - счета которые могут " +"иметь субсчета для консолидации нескольких компаний, кредитовые/дебетовые - " +"для контрагентов (вычисление задолженностей), закрыт - для ненужных счетов." #. module: account #: view:account.chart.template:0 @@ -2096,7 +2125,7 @@ msgid "Description" msgstr "Описание" #. module: account -#: code:addons/account/account.py:2844 +#: code:addons/account/account.py:2888 #: code:addons/account/installer.py:498 #, python-format msgid "ECNJ" @@ -2116,7 +2145,7 @@ msgid "Income Account" msgstr "Cчёт доходов и расходов" #. module: account -#: code:addons/account/invoice.py:352 +#: code:addons/account/invoice.py:351 #, python-format msgid "There is no Accounting Journal of type Sale/Purchase defined!" msgstr "Не определен журнал покупок / продаж." @@ -2127,6 +2156,7 @@ msgid "Accounting Properties" msgstr "Установки бухгалтерии" #. module: account +#: report:account.general.ledger_landscape:0 #: report:account.journal.period.print:0 #: field:account.print.journal,sort_selection:0 msgid "Entries Sorted By" @@ -2155,6 +2185,7 @@ msgstr "Шаблон продукта" #: field:account.fiscalyear,name:0 #: report:account.general.journal:0 #: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 #: field:account.journal.period,fiscalyear_id:0 #: report:account.journal.period.print:0 #: report:account.partner.balance:0 @@ -2206,7 +2237,7 @@ msgstr "Основная Последовательность" #: model:ir.model,name:account.model_account_payment_term #: field:res.partner,property_payment_term:0 msgid "Payment Term" -msgstr "Условия оплаты" +msgstr "Условие оплаты" #. module: account #: model:ir.actions.act_window,name:account.action_account_fiscal_position_form @@ -2264,7 +2295,7 @@ msgid "Account Tax Code" msgstr "Код налогового счёта" #. module: account -#: code:addons/account/invoice.py:545 +#: code:addons/account/invoice.py:552 #, python-format msgid "" "Can't find any account journal of %s type for this company.\n" @@ -2272,6 +2303,10 @@ msgid "" "You can create one in the menu: \n" "Configuration\\Financial Accounting\\Accounts\\Journals." msgstr "" +"Для этой компании не найден журнал типа %s.\n" +"\n" +"Вы можете создать его в меню:\n" +"Настройка\\Финансы и бухгалтерия\\Счета\\Журналы." #. module: account #: field:account.invoice.tax,base_code_id:0 @@ -2326,7 +2361,7 @@ msgstr "День" #. module: account #: model:ir.actions.act_window,name:account.act_account_renew_view msgid "Accounts to Renew" -msgstr "" +msgstr "Счета для обновления" #. module: account #: model:ir.model,name:account.model_account_model_line @@ -2334,11 +2369,11 @@ msgid "Account Model Entries" msgstr "Проводки модели счета" #. module: account -#: code:addons/account/account.py:2796 +#: code:addons/account/account.py:2840 #: code:addons/account/installer.py:454 #, python-format msgid "EXJ" -msgstr "" +msgstr "ЖР" #. module: account #: field:product.template,supplier_taxes_id:0 @@ -2354,11 +2389,10 @@ msgid "" "date empty, it means direct payment. The payment term may compute several " "due dates, for example 50% now, 50% in one month." msgstr "" -"При использовании условий платежа, дата валютирования будет сгенерирована " -"автоматически при создании проводок. Если вы оставляете условия платежа и " -"дату валютирования незаполненными - это будет подразумевать прямой платеж. " -"Условия платежа могут включать в себя несколько дат валютирования, например " -"50% сегодня, 50% в следующем месяце." +"При использовании условий оплаты, срок будет вычислен автоматически при " +"создании проводок. Если вы оставляете условие оплаты и срок незаполненными - " +"это будет подразумевать прямой платеж. Условие оплаты может включать в себя " +"несколько сроков, например 50% сразу, 50% в этом месяце." #. module: account #: view:account.analytic.cost.ledger.journal.report:0 @@ -2373,7 +2407,7 @@ msgstr "Выписки" #. module: account #: report:account.analytic.account.journal:0 msgid "Move Name" -msgstr "Имя перемещения" +msgstr "Название операции" #. module: account #: help:res.partner,property_account_position:0 @@ -2425,7 +2459,7 @@ msgid "Accounts" msgstr "Счета" #. module: account -#: code:addons/account/invoice.py:351 +#: code:addons/account/invoice.py:350 #, python-format msgid "Configuration Error!" msgstr "Ошибка конфигурации!" @@ -2437,20 +2471,19 @@ msgid "Average Price" msgstr "Средняя цена" #. module: account -#: report:account.move.voucher:0 #: report:account.overdue:0 msgid "Date:" msgstr "Дата:" #. module: account -#: code:addons/account/account.py:640 +#: code:addons/account/account.py:654 #, python-format msgid "" "You cannot modify company of this journal as its related record exist in " "Entry Lines" msgstr "" -"Вы не можете изменить компанию этого журнала, так как существуют связанные с " -"ним проводки." +"Вы не можете изменять организацию, связанную с этим журналом, так как " +"существуют связанные с ним проводки." #. module: account #: report:account.journal.period.print:0 @@ -2477,10 +2510,11 @@ msgstr "Сверка банковской выписки" #. module: account #: report:account.invoice:0 msgid "Disc.(%)" -msgstr "Скид.(%)" +msgstr "Скидка (%)" #. module: account #: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 #: report:account.journal.period.print:0 #: report:account.overdue:0 #: report:account.third_party_ledger:0 @@ -2549,7 +2583,7 @@ msgstr "" #: model:ir.actions.act_window,name:account.action_account_aged_balance_view #: model:ir.ui.menu,name:account.menu_aged_trial_balance msgid "Aged Partner Balance" -msgstr "" +msgstr "Баланс партнера по периодам" #. module: account #: model:process.transition,name:account.process_transition_entriesreconcile0 @@ -2580,7 +2614,7 @@ msgstr "" #: model:ir.actions.server,name:account.ir_actions_server_action_wizard_multi_chart #: model:ir.ui.menu,name:account.menu_act_ir_actions_bleble msgid "New Company Financial Setting" -msgstr "Финансовые настройки новой компании" +msgstr "Финансовые настройки новой организации" #. module: account #: model:ir.actions.act_window,name:account.action_report_account_sales_tree_all @@ -2595,16 +2629,16 @@ msgid "This wizard will create recurring accounting entries" msgstr "Этот мастер создаст повторяющиеся бухгалтерские проводки" #. module: account -#: code:addons/account/account.py:1181 +#: code:addons/account/account.py:1195 #, python-format msgid "No sequence defined on the journal !" msgstr "Нумерация в журнале не определена !" #. module: account -#: code:addons/account/account.py:2083 +#: code:addons/account/account.py:2097 #: code:addons/account/account_bank_statement.py:350 -#: code:addons/account/account_move_line.py:170 -#: code:addons/account/invoice.py:670 +#: code:addons/account/account_move_line.py:169 +#: code:addons/account/invoice.py:678 #: code:addons/account/wizard/account_use_model.py:81 #, python-format msgid "You have to define an analytic journal on the '%s' journal!" @@ -2677,11 +2711,14 @@ msgid "" "The optional quantity expressed by this line, eg: number of product sold. " "The quantity is not a legal requirement but is very useful for some reports." msgstr "" +"Необязательное количество отраженное в этой строке, например, количество " +"проданных товаров. Количество не является обязательным, но оно очень полезно " +"для некоторых отчетов." #. module: account #: view:account.payment.term.line:0 msgid "Line 2:" -msgstr "" +msgstr "Строка 2:" #. module: account #: field:account.journal.column,required:0 @@ -2710,7 +2747,7 @@ msgstr "" #. module: account #: field:account.invoice.tax,base_amount:0 msgid "Base Code Amount" -msgstr "" +msgstr "Сумма по основному коду" #. module: account #: field:wizard.multi.charts.accounts,sale_tax:0 @@ -2724,6 +2761,8 @@ msgid "" "between the creation date or the creation date of the entries plus the " "partner payment terms." msgstr "" +"Дата проведения созданных проводок для этой модели. Вы можете выбрать между " +"датой создания и датой создания проводок плюс условия оплаты партнера." #. module: account #: model:ir.ui.menu,name:account.menu_finance_accounting @@ -2757,6 +2796,8 @@ msgid "" "It adds initial balance row on report which display previous sum amount of " "debit/credit/balance" msgstr "" +"Добавляет колонку начального баланса к отчету который выводит предыдущую " +"сумму дебета/кредита/баланса." #. module: account #: view:account.analytic.line:0 @@ -2765,7 +2806,7 @@ msgid "Analytic Entries" msgstr "Проводки аналитического учета" #. module: account -#: code:addons/account/account.py:822 +#: code:addons/account/account.py:836 #, python-format msgid "" "No fiscal year defined for this date !\n" @@ -2897,7 +2938,7 @@ msgid "BNK%s" msgstr "БНК%s" #. module: account -#: code:addons/account/account.py:2906 +#: code:addons/account/account.py:2950 #: code:addons/account/installer.py:296 #, python-format msgid "BNK" @@ -2921,12 +2962,12 @@ msgstr "Кредит контрагенту" #. module: account #: model:ir.model,name:account.model_account_tax_code_template msgid "Tax Code Template" -msgstr "" +msgstr "Шаблон налогового кода" #. module: account #: view:account.subscription:0 msgid "Starts on" -msgstr "" +msgstr "Начинается с" #. module: account #: model:ir.model,name:account.model_account_partner_ledger @@ -2948,7 +2989,7 @@ msgstr "Налоговая декларация" #: help:account.account.template,currency_id:0 #: help:account.bank.accounts.wizard,currency_id:0 msgid "Forces all moves for this account to have this secondary currency." -msgstr "" +msgstr "Все операции по этому счету принудительно будут иметь вторую валюту." #. module: account #: model:ir.actions.act_window,help:account.action_validate_account_move_line @@ -2956,6 +2997,8 @@ msgid "" "This wizard will validate all journal entries of a particular journal and " "period. Once journal entries are validated, you can not update them anymore." msgstr "" +"Этот мастер утверждает все проводки журнала для конкретного журнала и " +"периода. После утверждения проводок вы не сможете их изменить." #. module: account #: model:ir.actions.act_window,name:account.action_account_chart_template_form @@ -3006,6 +3049,7 @@ msgstr "Оставьте пустым для использования счет #: field:account.common.report,journal_ids:0 #: report:account.general.journal:0 #: field:account.general.journal,journal_ids:0 +#: report:account.general.ledger_landscape:0 #: view:account.journal.period:0 #: report:account.partner.balance:0 #: field:account.partner.balance,journal_ids:0 @@ -3066,7 +3110,7 @@ msgid "Starting Balance" msgstr "Начальный баланс" #. module: account -#: code:addons/account/invoice.py:1284 +#: code:addons/account/invoice.py:1298 #, python-format msgid "No Partner Defined !" msgstr "Партнер не определен!" @@ -3094,6 +3138,7 @@ msgid "" "The amount expressed in the related account currency if not equal to the " "company one." msgstr "" +"Сумма выражена в валюте связанного счета, если не равна валюте компании." #. module: account #: report:account.move.voucher:0 @@ -3108,7 +3153,6 @@ msgstr "Журнал:" #: view:account.invoice.report:0 #: selection:account.invoice.report,state:0 #: selection:account.journal.period,state:0 -#: report:account.move.voucher:0 #: view:account.subscription:0 #: selection:account.subscription,state:0 #: selection:report.invoice.created,state:0 @@ -3162,7 +3206,7 @@ msgstr "" "больше не сможете изменять их бухгалтерские поля." #. module: account -#: code:addons/account/invoice.py:370 +#: code:addons/account/invoice.py:373 #, python-format msgid "Cannot delete invoice(s) that are already opened or paid !" msgstr "Нельзя удалить открытый или оплаченный счет !" @@ -3180,7 +3224,7 @@ msgstr "Переводы" #. module: account #: view:account.payment.term.line:0 msgid " value amount: n.a" -msgstr "" +msgstr " значение суммы: неопределено" #. module: account #: view:account.chart:0 @@ -3200,7 +3244,7 @@ msgstr "Ваши банковские и денежные счета" #. module: account #: view:account.move:0 msgid "Search Move" -msgstr "Искать проводку" +msgstr "Искать операцию" #. module: account #: field:account.tax.code,name:0 @@ -3225,7 +3269,7 @@ msgstr "" "состоянии \"Отменено\" или \"Сделано\" !" #. module: account -#: code:addons/account/account.py:522 +#: code:addons/account/account.py:532 #, python-format msgid "" "You cannot change the type of account from '%s' to '%s' type as it contains " @@ -3235,6 +3279,7 @@ msgstr "" #. module: account #: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 msgid "Counterpart" msgstr "Корреспондирующая сторона" @@ -3340,6 +3385,7 @@ msgstr "" #: field:account.entries.report,date:0 #: selection:account.general.journal,filter:0 #: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 #: field:account.invoice.report,date:0 #: report:account.journal.period.print:0 #: view:account.move:0 @@ -3383,22 +3429,24 @@ msgid "Chart of Accounts Template" msgstr "Шаблон плана счетов" #. module: account -#: code:addons/account/account.py:2095 +#: code:addons/account/account.py:2109 #, python-format msgid "" "Maturity date of entry line generated by model line '%s' of model '%s' is " "based on partner payment term!\n" "Please define partner on it!" msgstr "" +"Дата исполнения проводки созданной строкой \"%s\" модели \"%s\" основана на " +"условии оплаты контрагента." #. module: account -#: code:addons/account/account_move_line.py:810 +#: code:addons/account/account_move_line.py:801 #, python-format msgid "Some entries are already reconciled !" msgstr "Некоторые записи уже сверены!" #. module: account -#: code:addons/account/account.py:1204 +#: code:addons/account/account.py:1218 #, python-format msgid "" "You cannot validate a Journal Entry unless all journal items are in same " @@ -3479,7 +3527,7 @@ msgstr "Судебный спор" #. module: account #: view:account.analytic.line:0 msgid "Search Analytic Lines" -msgstr "" +msgstr "Искать проводки аналитики" #. module: account #: field:res.partner,property_account_payable:0 @@ -3491,8 +3539,8 @@ msgstr "Счета к оплате" msgid "" "You cannot create entries on different periods/journals in the same move" msgstr "" -"Вы не можете создавать проводки по разным периодам / журналам в одном " -"действии." +"Вы не можете создавать проводки по разным периодам / журналам в одной " +"операции." #. module: account #: model:process.node,name:account.process_node_supplierpaymentorder0 @@ -3523,7 +3571,7 @@ msgid "Analytic Items" msgstr "Элементы аналитики" #. module: account -#: code:addons/account/account_move_line.py:1128 +#: code:addons/account/account_move_line.py:1134 #, python-format msgid "Unable to change tax !" msgstr "Невозможно изменить налог !" @@ -3534,19 +3582,20 @@ msgid "#Entries" msgstr "#Проводок" #. module: account -#: code:addons/account/invoice.py:1422 +#: code:addons/account/invoice.py:1437 #, python-format msgid "" "You selected an Unit of Measure which is not compatible with the product." msgstr "Вы выбрали единицу измерения не совместимую с ТМЦ." #. module: account -#: code:addons/account/invoice.py:473 +#: code:addons/account/invoice.py:476 #, python-format msgid "" "The Payment Term of Supplier does not have Payment Term Lines(Computation) " "defined !" msgstr "" +"Условие оплаты поставщика не содержит строк условий оплаты(расчетов)!" #. module: account #: view:account.state.open:0 @@ -3584,7 +3633,7 @@ msgstr "" #. module: account #: field:account.move.line,date:0 msgid "Effective date" -msgstr "Действительно до" +msgstr "Дата вступления в силу" #. module: account #: code:addons/account/wizard/account_move_bank_reconcile.py:53 @@ -3605,7 +3654,7 @@ msgstr "Журнал аналитических проводок" #: view:product.template:0 #: view:res.partner:0 msgid "Accounting" -msgstr "Бухгалтерия" +msgstr "Учёт" #. module: account #: help:account.central.journal,amount_currency:0 @@ -3616,6 +3665,7 @@ msgid "" "Print Report with the currency column if the currency is different then the " "company currency" msgstr "" +"Печать отчета с колонкой валюты, если валюта отличается от валюты компании" #. module: account #: view:account.analytic.line:0 @@ -3669,6 +3719,8 @@ msgstr "Утвердить" #: sql_constraint:account.model.line:0 msgid "Wrong credit or debit value in model (Credit Or Debit Must Be \"0\")!" msgstr "" +"В модели указано неверное значение прихода или расхода (Приход или Расход " +"должен быть равен \"0\")!" #. module: account #: model:ir.actions.act_window,help:account.action_account_invoice_report_all @@ -3807,6 +3859,8 @@ msgid "" "This account will be used to value outgoing stock for the current product " "category using sale price" msgstr "" +"Этот счет будет использоваться для стоимости исходящих ТМЦ для текущей " +"категории ТМЦ продажной цене" #. module: account #: selection:account.automatic.reconcile,power:0 @@ -3819,6 +3873,8 @@ msgid "" "Analytic costs (timesheets, some purchased products, ...) come from analytic " "accounts. These generate draft supplier invoices." msgstr "" +"Анализ себестоимости (учет времени, некоторой закупаемой продукции, ...) " +"берется из счетов аналитики. Генерирует черновик счетов поставщика." #. module: account #: view:account.bank.statement:0 @@ -3837,7 +3893,7 @@ msgid "Acc.Type" msgstr "Тип счета" #. module: account -#: code:addons/account/invoice.py:714 +#: code:addons/account/invoice.py:722 #, python-format msgid "Global taxes defined, but are not in invoice lines !" msgstr "" @@ -3883,7 +3939,7 @@ msgstr "Позиции налога" #. module: account #: field:account.tax,base_code_id:0 msgid "Account Base Code" -msgstr "" +msgstr "Основной код счёта" #. module: account #: help:account.move,state:0 @@ -3894,9 +3950,14 @@ msgid "" "the system on document validation (invoices, bank statements...) and will be " "created in 'Posted' state." msgstr "" +"Все созданные вручную новые проводки в журнале обычно в состоянии \"Не " +"проведено\", но вы можете установить опцию для пропуска этого состояния в " +"журнале. Проводки в этом случае, как и создаваемые системой при обработке " +"документов (счетов, банковских выписок, ...), будут создаваться со статусом " +"\"Проведено\"." #. module: account -#: code:addons/account/account_analytic_line.py:91 +#: code:addons/account/account_analytic_line.py:90 #, python-format msgid "There is no expense account defined for this product: \"%s\" (id:%d)" msgstr "Счет расходов не определен для этого товара: \"%s\" (id:%d)" @@ -3949,7 +4010,7 @@ msgstr "Ошибка ! Неверная продолжительность фи #. module: account #: field:report.aged.receivable,name:0 msgid "Month Range" -msgstr "" +msgstr "Месячный период" #. module: account #: help:account.analytic.balance,empty_acc:0 @@ -3983,7 +4044,7 @@ msgid "" "When new move line is created the state will be 'Draft'.\n" "* When all the payments are done it will be in 'Valid' state." msgstr "" -"Когда новое перемещение создается, его состояние 'Черновик'.\n" +"Когда новая операция создается, ее состояние 'Черновик'.\n" "* Когда все платежи произведены состояние будет 'Проведено'." #. module: account @@ -3994,7 +4055,7 @@ msgstr "Режим вывода" #. module: account #: model:process.node,note:account.process_node_importinvoice0 msgid "Statement from invoice or payment" -msgstr "" +msgstr "Документ из счета или платежа" #. module: account #: view:account.payment.term.line:0 @@ -4032,7 +4093,7 @@ msgstr "Банковские выписки введены в систему." #: code:addons/account/wizard/account_reconcile.py:133 #, python-format msgid "Reconcile Writeoff" -msgstr "" +msgstr "Сверить списание" #. module: account #: field:account.model.line,date_maturity:0 @@ -4070,10 +4131,10 @@ msgstr "Печать счета" #. module: account #: view:account.tax.template:0 msgid "Credit Notes" -msgstr "" +msgstr "Кредит-ноты" #. module: account -#: code:addons/account/account.py:2067 +#: code:addons/account/account.py:2081 #: code:addons/account/wizard/account_use_model.py:69 #, python-format msgid "Unable to find a valid period !" @@ -4146,11 +4207,11 @@ msgid "Change" msgstr "Изменить" #. module: account -#: code:addons/account/account.py:1290 -#: code:addons/account/account.py:1318 -#: code:addons/account/account.py:1325 -#: code:addons/account/account_move_line.py:1055 -#: code:addons/account/invoice.py:896 +#: code:addons/account/account.py:1304 +#: code:addons/account/account.py:1332 +#: code:addons/account/account.py:1339 +#: code:addons/account/account_move_line.py:1061 +#: code:addons/account/invoice.py:904 #: code:addons/account/wizard/account_automatic_reconcile.py:152 #: code:addons/account/wizard/account_fiscalyear_close.py:78 #: code:addons/account/wizard/account_fiscalyear_close.py:81 @@ -4164,7 +4225,7 @@ msgstr "UserError" #. module: account #: field:account.journal,type_control_ids:0 msgid "Type Controls" -msgstr "" +msgstr "Контроль типа" #. module: account #: help:account.journal,default_credit_account_id:0 @@ -4221,14 +4282,14 @@ msgstr "Генерировать проводки" #. module: account #: help:account.vat.declaration,chart_tax_id:0 msgid "Select Charts of Taxes" -msgstr "" +msgstr "Выбрать налоговые планы счетов" #. module: account #: view:account.fiscal.position:0 #: field:account.fiscal.position,account_ids:0 #: field:account.fiscal.position.template,account_ids:0 msgid "Account Mapping" -msgstr "" +msgstr "Отображение счета" #. module: account #: selection:account.bank.statement.line,type:0 @@ -4256,13 +4317,16 @@ msgid "You must define an analytic journal of type '%s' !" msgstr "Вы должны определить журнал аналитики типа '%s' !" #. module: account -#: code:addons/account/account.py:1397 +#: code:addons/account/account.py:1411 #, python-format msgid "" "Couldn't create move with currency different from the secondary currency of " "the account \"%s - %s\". Clear the secondary currency field of the account " "definition if you want to accept all currencies." msgstr "" +"Нельзя сделать операцию по счету с валютой отличной от второй валюты счета " +"\"%s - %s\". Очистите поле ввода второй валюты в форме ввода счета, если " +"желаете использовать все валюты." #. module: account #: field:account.invoice.refund,date:0 @@ -4323,7 +4387,7 @@ msgid "Invoices" msgstr "Счета" #. module: account -#: code:addons/account/invoice.py:804 +#: code:addons/account/invoice.py:812 #, python-format msgid "" "Please verify the price of the invoice !\n" @@ -4434,28 +4498,27 @@ msgstr "Баланс (счета активов)" #. module: account #: report:account.tax.code.entries:0 msgid "Third Party (Country)" -msgstr "" +msgstr "Третье лицо (Страна)" #. module: account -#: code:addons/account/account.py:938 -#: code:addons/account/account.py:940 -#: code:addons/account/account.py:1181 -#: code:addons/account/account.py:1393 -#: code:addons/account/account.py:1397 -#: code:addons/account/account_cash_statement.py:249 -#: code:addons/account/account_move_line.py:780 -#: code:addons/account/account_move_line.py:803 -#: code:addons/account/account_move_line.py:805 -#: code:addons/account/account_move_line.py:808 -#: code:addons/account/account_move_line.py:810 -#: code:addons/account/account_move_line.py:1117 +#: code:addons/account/account.py:952 +#: code:addons/account/account.py:954 +#: code:addons/account/account.py:1195 +#: code:addons/account/account.py:1407 +#: code:addons/account/account.py:1411 +#: code:addons/account/account_cash_statement.py:250 +#: code:addons/account/account_move_line.py:771 +#: code:addons/account/account_move_line.py:794 +#: code:addons/account/account_move_line.py:796 +#: code:addons/account/account_move_line.py:799 +#: code:addons/account/account_move_line.py:801 +#: code:addons/account/account_move_line.py:1123 #: code:addons/account/report/common_report_header.py:92 -#: code:addons/account/wizard/account_change_currency.py:39 -#: code:addons/account/wizard/account_change_currency.py:60 -#: code:addons/account/wizard/account_change_currency.py:65 -#: code:addons/account/wizard/account_change_currency.py:71 +#: code:addons/account/wizard/account_change_currency.py:38 +#: code:addons/account/wizard/account_change_currency.py:59 +#: code:addons/account/wizard/account_change_currency.py:64 +#: code:addons/account/wizard/account_change_currency.py:70 #: code:addons/account/wizard/account_move_bank_reconcile.py:49 -#: code:addons/account/wizard/account_open_closed_fiscalyear.py:40 #: code:addons/account/wizard/account_report_common.py:120 #: code:addons/account/wizard/account_report_common.py:126 #, python-format @@ -4477,7 +4540,7 @@ msgid "Bank Details" msgstr "Банковская информация" #. module: account -#: code:addons/account/invoice.py:720 +#: code:addons/account/invoice.py:728 #, python-format msgid "Taxes missing !" msgstr "Налоги отсутствуют !" @@ -4513,13 +4576,13 @@ msgstr "Закрыть" #. module: account #: field:account.bank.statement.line,move_ids:0 msgid "Moves" -msgstr "Проводки" +msgstr "Операции" #. module: account #: model:ir.actions.act_window,name:account.action_account_vat_declaration #: model:ir.model,name:account.model_account_vat_declaration msgid "Account Vat Declaration" -msgstr "" +msgstr "Декларация НДС счета" #. module: account #: view:account.period:0 @@ -4529,10 +4592,10 @@ msgstr "Закрыть" #. module: account #: field:account.journal,allow_date:0 msgid "Check Date not in the Period" -msgstr "" +msgstr "Дата проверки не входит в период" #. module: account -#: code:addons/account/account.py:1210 +#: code:addons/account/account.py:1224 #, python-format msgid "" "You can not modify a posted entry of this journal !\n" @@ -4554,7 +4617,7 @@ msgid "Child Tax Accounts" msgstr "" #. module: account -#: code:addons/account/account.py:940 +#: code:addons/account/account.py:954 #, python-format msgid "Start period should be smaller then End period" msgstr "Начало периода должно быть меньше, чем конец периода" @@ -4584,6 +4647,7 @@ msgstr "Остаток по аналитике" #: report:account.general.journal:0 #: field:account.general.journal,target_move:0 #: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 #: report:account.journal.period.print:0 #: field:account.move.journal,target_move:0 #: report:account.partner.balance:0 @@ -4597,7 +4661,7 @@ msgstr "Остаток по аналитике" #: report:account.third_party_ledger_other:0 #: field:account.vat.declaration,target_move:0 msgid "Target Moves" -msgstr "Цель перемещений" +msgstr "Цель операции" #. module: account #: field:account.subscription,period_type:0 @@ -4625,7 +4689,7 @@ msgstr "Проводка" #: field:account.tax,python_compute_inv:0 #: field:account.tax.template,python_compute_inv:0 msgid "Python Code (reverse)" -msgstr "" +msgstr "Код на Python (реверс)" #. module: account #: model:ir.actions.act_window,name:account.action_payment_term_form @@ -4642,7 +4706,7 @@ msgstr "Название столбца" #: view:account.general.journal:0 msgid "" "This report gives you an overview of the situation of your general journals" -msgstr "" +msgstr "Этот доклад дает вам обзор ситуации по общим журналам" #. module: account #: field:account.entries.report,year:0 @@ -4663,10 +4727,10 @@ msgstr "Открытие кассы" #. module: account #: view:account.payment.term.line:0 msgid "Line 1:" -msgstr "" +msgstr "Строка 1:" #. module: account -#: code:addons/account/account.py:1167 +#: code:addons/account/account.py:1181 #, python-format msgid "Integrity Error !" msgstr "Ошибка целостности!" @@ -4695,7 +4759,7 @@ msgstr "Описание счетов" #. module: account #: field:account.partner.reconcile.process,next_partner_id:0 msgid "Next Partner to Reconcile" -msgstr "Следующий партнер для сверки" +msgstr "Следующий контрагент для сверки" #. module: account #: field:account.invoice.tax,account_id:0 @@ -4811,10 +4875,11 @@ msgstr "Налог на детей" #: constraint:account.move.line:0 msgid "" "You can not create move line on receivable/payable account without partner" -msgstr "Нельзя сделать действие по дебетовому/кредитовому счету без партнера" +msgstr "" +"Нельзя сделать действие по дебетовому/кредитовому счету без контрагента" #. module: account -#: code:addons/account/account.py:2067 +#: code:addons/account/account.py:2081 #: code:addons/account/wizard/account_use_model.py:69 #, python-format msgid "No period found !" @@ -4884,9 +4949,11 @@ msgid "" "Number of days to add before computation of the day of month.If Date=15/01, " "Number of Days=22, Day of Month=-1, then the due date is 28/02." msgstr "" +"Количество дней для добавления перед вычислением дня месяца. Если " +"дата=15/01, количество дней=22, день месяца=-1, то срок 28/02." #. module: account -#: code:addons/account/account.py:2896 +#: code:addons/account/account.py:2940 #: code:addons/account/installer.py:283 #: code:addons/account/installer.py:295 #, python-format @@ -4914,7 +4981,7 @@ msgid "Start of period" msgstr "Начало периода" #. module: account -#: code:addons/account/account_move_line.py:1193 +#: code:addons/account/account_move_line.py:1199 #, python-format msgid "" "You can not do this modification on a reconciled entry ! Please note that " @@ -4972,12 +5039,12 @@ msgstr "Журнал проводок конца года" #. module: account #: code:addons/account/account_bank_statement.py:331 -#: code:addons/account/invoice.py:405 -#: code:addons/account/invoice.py:505 -#: code:addons/account/invoice.py:520 -#: code:addons/account/invoice.py:528 -#: code:addons/account/invoice.py:545 -#: code:addons/account/invoice.py:1347 +#: code:addons/account/invoice.py:408 +#: code:addons/account/invoice.py:508 +#: code:addons/account/invoice.py:523 +#: code:addons/account/invoice.py:531 +#: code:addons/account/invoice.py:552 +#: code:addons/account/invoice.py:1361 #: code:addons/account/wizard/account_move_journal.py:63 #, python-format msgid "Configuration Error !" @@ -5054,7 +5121,7 @@ msgid "Sort By" msgstr "Сортировать по" #. module: account -#: code:addons/account/account.py:1326 +#: code:addons/account/account.py:1340 #, python-format msgid "" "There is no default default credit account defined \n" @@ -5066,7 +5133,7 @@ msgstr "" #: field:account.model.line,amount_currency:0 #: field:account.move.line,amount_currency:0 msgid "Amount Currency" -msgstr "Валюта суммы" +msgstr "Сумма в валюте" #. module: account #: code:addons/account/wizard/account_validate_account_move.py:39 @@ -5100,7 +5167,7 @@ msgstr "Количество" #. module: account #: view:account.move.line:0 msgid "Number (Move)" -msgstr "Номер (перемещение)" +msgstr "Операция" #. module: account #: view:account.invoice.refund:0 @@ -5120,8 +5187,8 @@ msgid "" "The sequence field is used to order the payment term lines from the lowest " "sequences to the higher ones" msgstr "" -"Поле \"последовательность\" используется для упорядочения строк в платежном " -"документе от наименьшего номера к наибольшему" +"Поле \"последовательность\" используется для упорядочения строк в условии " +"оплаты от наименьшего номера к наибольшему" #. module: account #: view:account.fiscal.position.template:0 @@ -5195,7 +5262,7 @@ msgstr "Элемент журнала" #. module: account #: model:ir.model,name:account.model_account_move_journal msgid "Move journal" -msgstr "" +msgstr "Журнал операций" #. module: account #: model:ir.actions.act_window,name:account.action_account_fiscalyear_close @@ -5204,7 +5271,7 @@ msgid "Generate Opening Entries" msgstr "Генерировать открывающие проводки" #. module: account -#: code:addons/account/account_move_line.py:738 +#: code:addons/account/account_move_line.py:729 #, python-format msgid "Already Reconciled!" msgstr "Уже сверено !" @@ -5240,7 +5307,7 @@ msgstr "Подчиненный счет" #. module: account #: view:account.move.line.reconcile:0 -#: code:addons/account/account_move_line.py:830 +#: code:addons/account/account_move_line.py:821 #, python-format msgid "Write-Off" msgstr "Списание" @@ -5314,7 +5381,7 @@ msgstr "" #: model:ir.actions.act_window,name:account.action_account_state_open #: model:ir.model,name:account.model_account_state_open msgid "Account State Open" -msgstr "" +msgstr "Состояние счета открытый" #. module: account #: report:account.analytic.account.quantity_cost_ledger:0 @@ -5338,6 +5405,8 @@ msgid "" "document shows your debit and credit taking in consideration some criteria " "you can choose by using the search tool." msgstr "" +"Этот вид предназначен для анализа различных финансовых счетов. Документ " +"показывает дебет и кредит в соответствии с выбранными критериями поиска." #. module: account #: model:ir.actions.act_window,help:account.action_tax_code_list @@ -5353,6 +5422,9 @@ msgid "" "Shows you the progress made today on the reconciliation process. Given by \n" "Partners Reconciled Today \\ (Remaining Partners + Partners Reconciled Today)" msgstr "" +"Показывает прогресс, достигнутый сегодня по сверке. Определяется как\n" +"Контрагенты сверенные сегодня / (Оставшиеся контрагенты + Контрагенты " +"сверенные сегодня)" #. module: account #: help:account.payment.term.line,value:0 @@ -5361,6 +5433,9 @@ msgid "" "that you should have your last line with the type 'Balance' to ensure that " "the whole amount will be threated." msgstr "" +"Выберите вид расчета относящийся к этой строке условия оплаты. Отметим, что " +"последняя строка должна быть с типом \"Баланс\" для проверки обработки всей " +"суммы." #. module: account #: field:account.invoice,period_id:0 @@ -5377,7 +5452,7 @@ msgid "# of Lines" msgstr "# строк" #. module: account -#: code:addons/account/wizard/account_change_currency.py:60 +#: code:addons/account/wizard/account_change_currency.py:59 #, python-format msgid "New currency is not confirured properly !" msgstr "Новая валюта неправильно настроена !" @@ -5402,14 +5477,14 @@ msgid "Filter by" msgstr "Фильтровать по" #. module: account -#: code:addons/account/account_move_line.py:1131 -#: code:addons/account/account_move_line.py:1214 +#: code:addons/account/account_move_line.py:1137 +#: code:addons/account/account_move_line.py:1220 #, python-format msgid "You can not use an inactive account!" msgstr "Нельзя использовать неактивный счет !" #. module: account -#: code:addons/account/account_move_line.py:803 +#: code:addons/account/account_move_line.py:794 #, python-format msgid "Entries are not of the same account or already reconciled ! " msgstr "Проводки не по одному счету и тому же счету или уже сверены! " @@ -5444,7 +5519,7 @@ msgstr "7" #. module: account #: code:addons/account/account_bank_statement.py:391 -#: code:addons/account/invoice.py:370 +#: code:addons/account/invoice.py:373 #, python-format msgid "Invalid action !" msgstr "Invalid action !" @@ -5513,7 +5588,7 @@ msgstr "не реализовано" #. module: account #: help:account.journal,company_id:0 msgid "Company related to this journal" -msgstr "Компания связанная с этим журналом" +msgstr "Организация, связанная с этим журналом" #. module: account #: code:addons/account/wizard/account_invoice_state.py:44 @@ -5561,6 +5636,10 @@ msgid "" "line of the expense account. OpenERP will propose to you automatically the " "Tax related to this account and the counterpart \"Account Payable\"." msgstr "" +"Здесь можно быстро вводить бухгалтерские проводки. Если вы хотите отразить " +"счет-фактуру поставщика, начните с записи движения по счету расходов. " +"OpenERP автоматически предложит вам налог, относящийся к этому счету и " +"корреспондирующий счет \"Кредиторская задолженность\"." #. module: account #: field:account.entries.report,date_created:0 @@ -5578,6 +5657,7 @@ msgid "" "The code will be used to generate the numbers of the journal entries of this " "journal." msgstr "" +"Код будет использоваться для генерации номеров записей этого журнала." #. module: account #: view:account.invoice:0 @@ -5613,7 +5693,7 @@ msgstr "Дата последней сверки" #. module: account #: model:ir.model,name:account.model_account_analytic_line msgid "Analytic Line" -msgstr "" +msgstr "Позиция аналитики" #. module: account #: field:product.template,taxes_id:0 @@ -5634,7 +5714,7 @@ msgstr "Настройка отчетов" #. module: account #: constraint:account.move.line:0 msgid "Company must be same for its related account and period." -msgstr "Для счета и периода должна быть одна компания." +msgstr "Для счета и периода должна быть одна организация." #. module: account #: field:account.tax,type:0 @@ -5646,25 +5726,27 @@ msgstr "Тип налога" #: model:ir.actions.act_window,name:account.action_account_template_form #: model:ir.ui.menu,name:account.menu_action_account_template_form msgid "Account Templates" -msgstr "Счет: Шаблоны" +msgstr "Шаблоны счетов" #. module: account #: report:account.vat.declaration:0 msgid "Tax Statement" -msgstr "" +msgstr "Налоговая декларация" #. module: account #: model:ir.model,name:account.model_res_company msgid "Companies" -msgstr "Компании" +msgstr "Организации" #. module: account -#: code:addons/account/account.py:532 +#: code:addons/account/account.py:546 #, python-format msgid "" "You cannot modify Company of account as its related record exist in Entry " "Lines" msgstr "" +"Нельзя изменить компанию счета так, как связанные с ней записи существуют в " +"проводках" #. module: account #: help:account.fiscalyear.close.state,fy_id:0 @@ -5789,7 +5871,7 @@ msgstr " количество дней: 30" #. module: account #: help:account.analytic.line,currency_id:0 msgid "The related account currency if not equal to the company one." -msgstr "" +msgstr "Валюта связанного счета, если не одинакова с валютой компании." #. module: account #: view:account.analytic.account:0 @@ -5819,7 +5901,7 @@ msgstr "Мощность" #. module: account #: field:account.invoice.refund,filter_refund:0 msgid "Refund Type" -msgstr "" +msgstr "Тип возмещения" #. module: account #: report:account.invoice:0 @@ -5878,6 +5960,9 @@ msgid "" "higher ones. The order is important if you have a tax that has several tax " "children. In this case, the evaluation order is important." msgstr "" +"Поле \"последовательность\" используется для упорядочивания позиций налогов " +"от меньшего к большему. Последовательность важна при наличии субналогов . В " +"таком случае важна последовательность вычислений." #. module: account #: selection:account.account,type:0 @@ -5899,6 +5984,10 @@ msgid "" "year. Note that you can run this wizard many times for the same fiscal year: " "it will simply replace the old opening entries with the new ones." msgstr "" +"Этот мастер генерирует проводки конца года в журнале для выбранного " +"финансового года. Заметим, что вы можете запустить этот мастер много раз для " +"того же финансового года: старые проводки открытия просто будут заменены на " +"новые." #. module: account #: model:ir.ui.menu,name:account.menu_finance_bank_and_cash @@ -5913,25 +6002,29 @@ msgid "" "the tool search to analyse information about analytic entries generated in " "the system." msgstr "" +"Этот вид позволяет анализировать проводки аналитики в соответствии со счетом " +"аналитики, который вы создали исходя из особенностей вашего бизнеса. " +"Используйте поиск для анализа информации о проводках аналитики созданных в " +"системе." #. module: account #: sql_constraint:account.journal:0 msgid "The name of the journal must be unique per company !" -msgstr "Название журнала должно быть уникальным по компании !" +msgstr "Название журнала должно быть уникальным внутри организации!" #. module: account #: field:account.account.template,nocreate:0 msgid "Optional create" -msgstr "" +msgstr "Создать дополнительно" #. module: account -#: code:addons/account/invoice.py:406 -#: code:addons/account/invoice.py:506 -#: code:addons/account/invoice.py:1348 +#: code:addons/account/invoice.py:409 +#: code:addons/account/invoice.py:509 +#: code:addons/account/invoice.py:1362 #, python-format msgid "Can not find account chart for this company, Please Create account." msgstr "" -"Не удалось найти план счетов для компании. Пожалуйста, создайте счет." +"Не удалось найти план счетов для организации. Пожалуйста, создайте счет." #. module: account #: code:addons/account/wizard/account_report_aged_partner_balance.py:57 @@ -6010,6 +6103,8 @@ msgid "" "Percentages for Payment Term Line must be between 0 and 1, Example: 0.02 for " "2% " msgstr "" +"Проценты для позиции условий оплаты должен быть между 0 и 1, например: 0,02 " +"для 2% " #. module: account #: model:ir.model,name:account.model_account_sequence_fiscalyear @@ -6077,8 +6172,8 @@ msgid "Analytic Entries Statistics" msgstr "Статистика аналитических проводок" #. module: account -#: code:addons/account/account_analytic_line.py:143 -#: code:addons/account/account_move_line.py:905 +#: code:addons/account/account_analytic_line.py:141 +#: code:addons/account/account_move_line.py:897 #, python-format msgid "Entries: " msgstr "Проводки: " @@ -6089,10 +6184,10 @@ msgid "Create manual recurring entries in a chosen journal." msgstr "Создать вручную повторяющиеся проводки в выбранном журнале" #. module: account -#: code:addons/account/account.py:1393 +#: code:addons/account/account.py:1407 #, python-format msgid "Couldn't create move between different companies" -msgstr "" +msgstr "Нельзя создать перемещение между разными организациями" #. module: account #: model:ir.actions.act_window,help:account.action_account_type_form @@ -6129,7 +6224,7 @@ msgid "Total debit" msgstr "Всего по дебету" #. module: account -#: code:addons/account/account_move_line.py:781 +#: code:addons/account/account_move_line.py:772 #, python-format msgid "Entry \"%s\" is not valid !" msgstr "Проводка \"%s\" не верна !" @@ -6171,6 +6266,8 @@ msgstr "Код на Python" msgid "" "Please define the Reserve and Profit/Loss account for current user company !" msgstr "" +"Пожалуйста, определите счет резервов и прибылей/убытков для компании " +"пользователя !" #. module: account #: help:account.journal,update_posted:0 @@ -6178,6 +6275,8 @@ msgid "" "Check this box if you want to allow the cancellation the entries related to " "this journal or of the invoice related to this journal" msgstr "" +"Отметьте, если вы хотите позволить отменять проводки связанные с этим " +"журналом или счетом связанным с этим журналом" #. module: account #: view:account.fiscalyear.close:0 @@ -6195,30 +6294,31 @@ msgid " valuation: percent" msgstr " оценка: процент" #. module: account -#: code:addons/account/account.py:499 -#: code:addons/account/account.py:501 -#: code:addons/account/account.py:822 -#: code:addons/account/account.py:901 -#: code:addons/account/account.py:976 -#: code:addons/account/account.py:1204 -#: code:addons/account/account.py:1210 -#: code:addons/account/account.py:2095 -#: code:addons/account/account.py:2333 -#: code:addons/account/account_analytic_line.py:90 -#: code:addons/account/account_analytic_line.py:99 +#: code:addons/account/account.py:509 +#: code:addons/account/account.py:511 +#: code:addons/account/account.py:836 +#: code:addons/account/account.py:915 +#: code:addons/account/account.py:990 +#: code:addons/account/account.py:1218 +#: code:addons/account/account.py:1224 +#: code:addons/account/account.py:2109 +#: code:addons/account/account.py:2357 +#: code:addons/account/account_analytic_line.py:89 +#: code:addons/account/account_analytic_line.py:98 #: code:addons/account/account_bank_statement.py:292 #: code:addons/account/account_bank_statement.py:305 #: code:addons/account/account_bank_statement.py:345 -#: code:addons/account/account_cash_statement.py:328 -#: code:addons/account/account_cash_statement.py:348 -#: code:addons/account/account_move_line.py:1176 -#: code:addons/account/account_move_line.py:1191 -#: code:addons/account/account_move_line.py:1193 -#: code:addons/account/invoice.py:785 -#: code:addons/account/invoice.py:815 -#: code:addons/account/invoice.py:1008 +#: code:addons/account/account_cash_statement.py:329 +#: code:addons/account/account_cash_statement.py:349 +#: code:addons/account/account_move_line.py:1182 +#: code:addons/account/account_move_line.py:1197 +#: code:addons/account/account_move_line.py:1199 +#: code:addons/account/invoice.py:793 +#: code:addons/account/invoice.py:823 +#: code:addons/account/invoice.py:1014 #: code:addons/account/wizard/account_invoice_refund.py:100 #: code:addons/account/wizard/account_invoice_refund.py:102 +#: code:addons/account/wizard/account_open_closed_fiscalyear.py:40 #: code:addons/account/wizard/account_use_model.py:44 #, python-format msgid "Error !" @@ -6255,6 +6355,10 @@ msgid "" "reconcile in a series of accounts. It finds entries for each partner where " "the amounts correspond." msgstr "" +"Для счета, который считается оплаченным, проводки на основе этого счета " +"должны сверяться с их корреспондирующими частями, обычно платежами. В " +"процессе автоматической сверки, OpenERP ищет проводки в ряде счетов. Система " +"ищет проводки с соответствующей суммой для каждого контрагента." #. module: account #: view:account.move:0 @@ -6292,6 +6396,7 @@ msgstr "" msgid "" "Selected Entry Lines does not have any account move enties in draft state" msgstr "" +"Выбранные проводки не содержат ни одной операции в состоянии \"Черновик\"." #. module: account #: selection:account.aged.trial.balance,target_move:0 @@ -6332,7 +6437,7 @@ msgid "Journal Select" msgstr "Выбор журнала" #. module: account -#: code:addons/account/wizard/account_change_currency.py:65 +#: code:addons/account/wizard/account_change_currency.py:64 #, python-format msgid "Currnt currency is not confirured properly !" msgstr "Текущая валюта неправильно настроена !" @@ -6349,9 +6454,11 @@ msgstr "Налоги системы налогообложения" #. module: account #: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 #: view:account.report.general.ledger:0 #: model:ir.actions.act_window,name:account.action_account_general_ledger_menu #: model:ir.actions.report.xml,name:account.account_general_ledger +#: model:ir.actions.report.xml,name:account.account_general_ledger_landscape #: model:ir.ui.menu,name:account.menu_general_ledger msgid "General Ledger" msgstr "Главная книга" @@ -6394,7 +6501,7 @@ msgstr "Параметры" #. module: account #: model:ir.model,name:account.model_account_tax_chart msgid "Account tax chart" -msgstr "" +msgstr "План налоговых счетов" #. module: account #: report:account.analytic.account.cost_ledger:0 @@ -6407,7 +6514,7 @@ msgid "Total:" msgstr "Всего:" #. module: account -#: code:addons/account/account.py:2050 +#: code:addons/account/account.py:2064 #, python-format msgid "" "You can specify year, month and date in the name of the model using the " @@ -6436,16 +6543,16 @@ msgstr "Счета доходов" #. module: account #: help:report.invoice.created,origin:0 msgid "Reference of the document that generated this invoice report." -msgstr "" +msgstr "Ссылка на документ, создавший этот отчет о счете." #. module: account #: field:account.tax.code,child_ids:0 #: field:account.tax.code.template,child_ids:0 msgid "Child Codes" -msgstr "" +msgstr "Субкоды" #. module: account -#: code:addons/account/invoice.py:473 +#: code:addons/account/invoice.py:476 #: code:addons/account/wizard/account_invoice_refund.py:137 #, python-format msgid "Data Insufficient !" @@ -6529,7 +6636,7 @@ msgstr "Налоги" #. module: account #: help:account.tax,amount:0 msgid "For taxes of type percentage, enter % ratio between 0-1." -msgstr "" +msgstr "Для процентных налогов, введите % как число от 0 до 1." #. module: account #: model:ir.actions.act_window,help:account.action_subscription_form @@ -6594,6 +6701,11 @@ msgid "" "Most of the OpenERP operations (invoices, timesheets, expenses, etc) " "generate analytic entries on the related account." msgstr "" +"Обычный план счетов имеет структуру определяемую правовыми требованиями " +"страны. Структура аналитического плана счетов должна отражать требования " +"вашего бизнеса. Обычно он структурирован по контрактам, проектам, ТМЦ или " +"отделам. Большинство операций в OpenERP (счета, бюллетени, затраты и т.д.) " +"создают проводки аналитики в соответствующих счетах." #. module: account #: field:account.analytic.journal,line_ids:0 @@ -6602,14 +6714,14 @@ msgid "Lines" msgstr "Строк" #. module: account -#: code:addons/account/invoice.py:521 +#: code:addons/account/invoice.py:524 #, python-format msgid "" "Can not find account chart for this company in invoice line account, Please " "Create account." msgstr "" -"Не могу найти план счетов для этой компании в позиции счета, пожалуйста " -"создайте бух. счет." +"Невозможно найти план счетов для этой организации в позиции счёта. " +"Пожалуйста, создайте счёт." #. module: account #: view:account.tax.template:0 @@ -6730,6 +6842,9 @@ msgid "" "new counterpart but will share the same counterpart. This is used in fiscal " "year closing." msgstr "" +"Отметьте, для определения того, что каждая проводка в этом журнале не " +"создает новой корреспондирующей части, а использует одну и ту же. Это " +"используется при закрытии финансового года." #. module: account #: field:account.bank.statement,closing_date:0 @@ -6775,10 +6890,10 @@ msgstr "" "домена." #. module: account -#: code:addons/account/account.py:938 +#: code:addons/account/account.py:952 #, python-format msgid "You should have chosen periods that belongs to the same company" -msgstr "" +msgstr "Вы должны выбрать периоды принадлежащие одной компании." #. module: account #: field:account.fiscalyear.close,report_name:0 @@ -6798,7 +6913,7 @@ msgstr "Отчетность" #. module: account #: sql_constraint:account.journal:0 msgid "The code of the journal must be unique per company !" -msgstr "Код журнала должен быть уникальным для компании !" +msgstr "Код журнала должен быть уникальным внутри организации!" #. module: account #: field:account.bank.statement,ending_details_ids:0 @@ -6823,6 +6938,8 @@ msgid "" "the system to go through the reconciliation process, based on the latest day " "it have been reconciled." msgstr "" +"Это поле показывает вам следующего контрагента, который автоматически выбран " +"системой для сверки. Выбор основан на дате последней сверки." #. module: account #: field:account.move.line.reconcile.writeoff,comment:0 @@ -6879,7 +6996,7 @@ msgid "Sign on Reports" msgstr "Знак в отчётах" #. module: account -#: code:addons/account/account_cash_statement.py:249 +#: code:addons/account/account_cash_statement.py:250 #, python-format msgid "You can not have two open register for the same journal" msgstr "Вы не можете иметь два открытых регистра для одного журнала" @@ -6908,7 +7025,6 @@ msgstr "" #. module: account #: report:account.invoice:0 #: view:account.invoice:0 -#: report:account.move.voucher:0 msgid "PRO-FORMA" msgstr "Проформа" @@ -6940,6 +7056,7 @@ msgstr "Доп. информация" #. module: account #: view:account.analytic.line:0 +#: field:account.bank.statement,user_id:0 #: view:account.journal:0 #: field:account.journal,user_id:0 #: view:analytic.entries.report:0 @@ -6965,13 +7082,13 @@ msgid "" msgstr "" #. module: account -#: code:addons/account/account_move_line.py:1271 +#: code:addons/account/account_move_line.py:1277 #, python-format msgid "Bad account !" msgstr "Неверный счет !" #. module: account -#: code:addons/account/account.py:2777 +#: code:addons/account/account.py:2821 #: code:addons/account/installer.py:432 #, python-format msgid "Sales Journal" @@ -6989,10 +7106,10 @@ msgid "Invoice Tax" msgstr "Налог по счету" #. module: account -#: code:addons/account/account_move_line.py:1246 +#: code:addons/account/account_move_line.py:1252 #, python-format msgid "No piece number !" -msgstr "" +msgstr "Нет номера части !" #. module: account #: view:product.product:0 @@ -7100,7 +7217,7 @@ msgstr "Оплата счетов" #: field:account.tax,sequence:0 #: field:account.tax.template,sequence:0 msgid "Sequence" -msgstr "Последовательность" +msgstr "Нумерация" #. module: account #: model:ir.model,name:account.model_account_bs_report @@ -7188,7 +7305,7 @@ msgstr "" #. module: account #: model:ir.ui.menu,name:account.menu_finance_legal_statement msgid "Legal Reports" -msgstr "" +msgstr "Официальные отчеты" #. module: account #: field:account.tax.code,sum_period:0 @@ -7202,6 +7319,9 @@ msgid "" "to the higher ones. The order is important if you have a tax with several " "tax children. In this case, the evaluation order is important." msgstr "" +"Поле \"последовательность\" используется для упорядочивания позиций налогов " +"от меньшего к большему. Последовательность важна при наличии субналогов . В " +"таком случае важна последовательность вычислений." #. module: account #: model:ir.model,name:account.model_account_cashbox_line @@ -7229,17 +7349,17 @@ msgid "Fixed" msgstr "Фиксированный" #. module: account -#: code:addons/account/account.py:506 -#: code:addons/account/account.py:519 -#: code:addons/account/account.py:522 +#: code:addons/account/account.py:516 +#: code:addons/account/account.py:529 #: code:addons/account/account.py:532 -#: code:addons/account/account.py:640 -#: code:addons/account/account.py:927 -#: code:addons/account/account_move_line.py:732 -#: code:addons/account/account_move_line.py:776 -#: code:addons/account/invoice.py:714 -#: code:addons/account/invoice.py:717 -#: code:addons/account/invoice.py:720 +#: code:addons/account/account.py:546 +#: code:addons/account/account.py:654 +#: code:addons/account/account.py:941 +#: code:addons/account/account_move_line.py:723 +#: code:addons/account/account_move_line.py:767 +#: code:addons/account/invoice.py:722 +#: code:addons/account/invoice.py:725 +#: code:addons/account/invoice.py:728 #, python-format msgid "Warning !" msgstr "Warning !" @@ -7247,13 +7367,13 @@ msgstr "Warning !" #. module: account #: field:account.entries.report,move_line_state:0 msgid "State of Move Line" -msgstr "Состояние действия" +msgstr "Состояние операции" #. module: account #: model:ir.model,name:account.model_account_move_line_reconcile #: model:ir.model,name:account.model_account_move_line_reconcile_writeoff msgid "Account move line reconcile" -msgstr "Сверка действия по счету" +msgstr "Сверка операции по счету" #. module: account #: view:account.subscription.generate:0 @@ -7271,6 +7391,7 @@ msgstr "Величина (прописью):" #: view:account.entries.report:0 #: field:account.entries.report,partner_id:0 #: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 #: view:account.invoice:0 #: field:account.invoice,partner_id:0 #: field:account.invoice.line,partner_id:0 @@ -7298,10 +7419,10 @@ msgstr "Выбрать валюту применяемую в счете" #: code:addons/account/wizard/account_invoice_refund.py:100 #, python-format msgid "Can not %s draft/proforma/cancel invoice." -msgstr "" +msgstr "Нельзя %s черновик/проформу/отмененный счет." #. module: account -#: code:addons/account/invoice.py:787 +#: code:addons/account/invoice.py:795 #, python-format msgid "No Invoice Lines !" msgstr "Нет позиций в счете !" @@ -7332,6 +7453,7 @@ msgid "" "Select Fiscal Year which you want to remove entries for its End of year " "entries journal" msgstr "" +"Выберите финансовый год для удаления проводок из журнала \"Конец года\"" #. module: account #: field:account.tax.template,type_tax_use:0 @@ -7350,7 +7472,7 @@ msgid "Deferral Method" msgstr "Метод отсрочки" #. module: account -#: code:addons/account/invoice.py:359 +#: code:addons/account/invoice.py:360 #, python-format msgid "Invoice '%s' is paid." msgstr "Счет '%s' оплачен." @@ -7415,7 +7537,7 @@ msgid "Associated Partner" msgstr "Связанный контрагент" #. module: account -#: code:addons/account/invoice.py:1284 +#: code:addons/account/invoice.py:1298 #, python-format msgid "You must first select a partner !" msgstr "Сначала вы должны выбрать партнера !" @@ -7472,7 +7594,7 @@ msgstr "Проформа" #. module: account #: report:account.analytic.account.cost_ledger:0 msgid "J.C. /Move name" -msgstr "" +msgstr "Код журн./Операция" #. module: account #: model:ir.model,name:account.model_account_open_closed_fiscalyear @@ -7480,7 +7602,7 @@ msgid "Choose Fiscal Year" msgstr "Закрыть отчетный год" #. module: account -#: code:addons/account/account.py:2841 +#: code:addons/account/account.py:2885 #: code:addons/account/installer.py:495 #, python-format msgid "Purchase Refund Journal" @@ -7489,7 +7611,7 @@ msgstr "Журнал возврата покупок" #. module: account #: help:account.tax.template,amount:0 msgid "For Tax Type percent enter % ratio between 0-1." -msgstr "" +msgstr "Для налога типа \"процент\" введите %, как число от 0 до 1." #. module: account #: selection:account.automatic.reconcile,power:0 @@ -7517,6 +7639,7 @@ msgstr "Бухучет и управление финансами" #: view:account.entries.report:0 #: field:account.entries.report,period_id:0 #: view:account.fiscalyear:0 +#: report:account.general.ledger_landscape:0 #: view:account.invoice:0 #: view:account.invoice.report:0 #: field:account.journal.period,period_id:0 @@ -7610,7 +7733,7 @@ msgstr "Тел. :" #. module: account #: field:account.account,company_currency_id:0 msgid "Company Currency" -msgstr "Валюта компании" +msgstr "Валюта организации" #. module: account #: report:account.general.ledger:0 @@ -7673,7 +7796,7 @@ msgstr "Виды журналов" #. module: account #: model:ir.model,name:account.model_account_move_bank_reconcile msgid "Move bank reconcile" -msgstr "Сверка проводки по банку" +msgstr "Сверка операции по банку" #. module: account #: model:ir.actions.act_window,name:account.action_account_type_form @@ -7682,7 +7805,7 @@ msgid "Account Types" msgstr "Типы счетов" #. module: account -#: code:addons/account/invoice.py:897 +#: code:addons/account/invoice.py:905 #, python-format msgid "Cannot create invoice move on centralised journal" msgstr "" @@ -7732,6 +7855,7 @@ msgstr "Журнал возвратов" #: report:account.account.balance:0 #: report:account.central.journal:0 #: report:account.general.journal:0 +#: report:account.general.ledger_landscape:0 #: report:account.partner.balance:0 msgid "Filter By" msgstr "Фильтровать по" @@ -7744,13 +7868,17 @@ msgid "" "sales orders or deliveries. You should only confirm them before sending them " "to your customers." msgstr "" +"Вы можете создавать счета заказчикам и управлять счетами выставленными вашим " +"клиентам. OpenERP может создавать черновики счетов автоматически по заказам " +"на продажу и доставку. Вы должны только подтвердить их пред выставлением " +"заказчикам." #. module: account #: view:account.entries.report:0 #: view:board.board:0 #: model:ir.actions.act_window,name:account.action_company_analysis_tree msgid "Company Analysis" -msgstr "Анализ компании" +msgstr "Анализ организации" #. module: account #: help:account.invoice,account_id:0 @@ -7770,7 +7898,7 @@ msgid "Payment Term Line" msgstr "Позиция условий оплаты" #. module: account -#: code:addons/account/account.py:2794 +#: code:addons/account/account.py:2838 #: code:addons/account/installer.py:452 #, python-format msgid "Purchase Journal" @@ -7839,7 +7967,7 @@ msgstr "" #. module: account #: view:account.payment.term.line:0 msgid " valuation: balance" -msgstr "" +msgstr " расчет: баланс" #. module: account #: view:account.tax.code:0 @@ -7860,7 +7988,7 @@ msgstr "Закрыть финансовый год" #. module: account #: sql_constraint:account.account:0 msgid "The code of the account must be unique per company !" -msgstr "Код счета должен быть уникальным для компании !" +msgstr "Код счета должен быть уникальным внутри организации!" #. module: account #: model:ir.actions.act_window,name:account.act_account_journal_2_account_invoice_opened @@ -7939,8 +8067,8 @@ msgid "" msgstr "" #. module: account -#: code:addons/account/account_move_line.py:1131 -#: code:addons/account/account_move_line.py:1214 +#: code:addons/account/account_move_line.py:1137 +#: code:addons/account/account_move_line.py:1220 #, python-format msgid "Bad account!" msgstr "Плохой счет!" @@ -7951,7 +8079,7 @@ msgid "Keep empty for all open fiscal years" msgstr "Оставьте пустым для всех открытых финансовых лет" #. module: account -#: code:addons/account/account_move_line.py:1056 +#: code:addons/account/account_move_line.py:1062 #, python-format msgid "The account move (%s) for centralisation has been confirmed!" msgstr "" @@ -7962,6 +8090,7 @@ msgid "" "The amount expressed in an optional other currency if it is a multi-currency " "entry." msgstr "" +"Сумма выражается в дополнительный валюте, если эта проводка мульти-валютная." #. module: account #: view:account.account:0 @@ -7972,6 +8101,7 @@ msgstr "" #: field:account.entries.report,currency_id:0 #: report:account.general.journal:0 #: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 #: field:account.invoice,currency_id:0 #: field:account.invoice.report,currency_id:0 #: field:account.journal,currency:0 @@ -8062,7 +8192,7 @@ msgstr "неизвестен" #. module: account #: field:account.fiscalyear.close,journal_id:0 msgid "Opening Entries Journal" -msgstr "Открытие журнала проводок" +msgstr "Журнал проводок открытия" #. module: account #: model:process.transition,note:account.process_transition_customerinvoice0 @@ -8145,14 +8275,14 @@ msgid "Period from" msgstr "Период с" #. module: account -#: code:addons/account/account.py:2817 +#: code:addons/account/account.py:2861 #: code:addons/account/installer.py:476 #, python-format msgid "Sales Refund Journal" msgstr "Журнал возврата продаж" #. module: account -#: code:addons/account/account.py:927 +#: code:addons/account/account.py:941 #, python-format msgid "" "You cannot modify company of this period as its related record exist in " @@ -8201,7 +8331,7 @@ msgid "Purchase Tax(%)" msgstr "Налог на покупку(%)" #. module: account -#: code:addons/account/invoice.py:787 +#: code:addons/account/invoice.py:795 #, python-format msgid "Please create some invoice lines." msgstr "Пожалуйста, создайте позиции счета" @@ -8217,7 +8347,7 @@ msgid "Configure Your Accounting Application" msgstr "Настройка модуля бухучета" #. module: account -#: code:addons/account/account.py:2820 +#: code:addons/account/account.py:2864 #: code:addons/account/installer.py:479 #, python-format msgid "SCNJ" @@ -8255,6 +8385,7 @@ msgstr "Управление напоминаниями" #: report:account.central.journal:0 #: report:account.general.journal:0 #: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 #: report:account.journal.period.print:0 #: report:account.partner.balance:0 #: report:account.third_party_ledger:0 @@ -8264,7 +8395,7 @@ msgid "Start Period" msgstr "Начало периода" #. module: account -#: code:addons/account/account.py:2333 +#: code:addons/account/account.py:2357 #, python-format msgid "Cannot locate parent code for template account!" msgstr "Не удается найти родительский код для шаблона счета!" @@ -8277,7 +8408,7 @@ msgstr "Направление анализа" #. module: account #: field:res.partner,ref_companies:0 msgid "Companies that refers to partner" -msgstr "Ссылающиеся на партнера компании" +msgstr "Связанные с партнёром организации" #. module: account #: view:account.journal:0 @@ -8301,7 +8432,7 @@ msgid "Accountant validates the accounting entries coming from the invoice. " msgstr "Бухгалтер утверждает проводки созданные по счет-фактуре. " #. module: account -#: code:addons/account/invoice.py:1008 +#: code:addons/account/invoice.py:1014 #, python-format msgid "" "You cannot cancel the Invoice which is Partially Paid! You need to " @@ -8328,10 +8459,10 @@ msgstr "Документ: выписка клиенту со счета" #. module: account #: constraint:account.move.line:0 msgid "You can not create move line on view account." -msgstr "Нельзя создать действие по счету с типом Вид." +msgstr "Нельзя создать операцию по счету с типом Вид." #. module: account -#: code:addons/account/wizard/account_change_currency.py:71 +#: code:addons/account/wizard/account_change_currency.py:70 #, python-format msgid "Current currency is not confirured properly !" msgstr "Текущая валюта неправильно настроена !" @@ -8380,6 +8511,7 @@ msgstr "Оставьте пустым для использования дохо #: field:account.entries.report,balance:0 #: report:account.general.journal:0 #: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 #: field:account.move.line,balance:0 #: report:account.partner.balance:0 #: selection:account.payment.term.line,value:0 @@ -8398,6 +8530,7 @@ msgstr "Вручную или автоматически введенные в #. module: account #: report:account.account.balance:0 +#: report:account.general.ledger_landscape:0 msgid "Display Account" msgstr "Вывод счета" @@ -8512,14 +8645,15 @@ msgstr "Проводка вручную" #. module: account #: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 #: report:account.journal.period.print:0 #: field:account.move.line,move_id:0 #: field:analytic.entries.report,move_id:0 msgid "Move" -msgstr "Перемещение" +msgstr "Операция" #. module: account -#: code:addons/account/account_move_line.py:1128 +#: code:addons/account/account_move_line.py:1134 #, python-format msgid "You can not change the tax, you should remove and recreate lines !" msgstr "" @@ -8528,7 +8662,7 @@ msgstr "" #. module: account #: report:account.central.journal:0 msgid "A/C No." -msgstr "" +msgstr "Счет №" #. module: account #: model:ir.actions.act_window,name:account.act_account_journal_2_account_bank_statement @@ -8616,6 +8750,7 @@ msgstr "Аналитический баланс" #: report:account.central.journal:0 #: report:account.general.journal:0 #: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 #: report:account.journal.period.print:0 #: report:account.partner.balance:0 #: report:account.third_party_ledger:0 @@ -8646,7 +8781,7 @@ msgstr "План счетов" #. module: account #: field:account.move.line,date_maturity:0 msgid "Due date" -msgstr "Срок" +msgstr "Срок оплаты" #. module: account #: view:account.move.journal:0 @@ -8659,7 +8794,7 @@ msgid "Account Subscription" msgstr "Счет подписки" #. module: account -#: code:addons/account/invoice.py:717 +#: code:addons/account/invoice.py:725 #, python-format msgid "" "Tax base different !\n" @@ -8686,6 +8821,7 @@ msgstr "Проводка подписки" #: report:account.general.journal:0 #: field:account.general.journal,date_from:0 #: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 #: field:account.installer,date_start:0 #: report:account.journal.period.print:0 #: report:account.partner.balance:0 @@ -8714,7 +8850,7 @@ msgid "Unreconciled" msgstr "Не сверенные" #. module: account -#: code:addons/account/invoice.py:804 +#: code:addons/account/invoice.py:812 #, python-format msgid "Bad total !" msgstr "Плохой итог !" @@ -8722,7 +8858,7 @@ msgstr "Плохой итог !" #. module: account #: field:account.journal,sequence_id:0 msgid "Entry Sequence" -msgstr "Последовательный номер проводки" +msgstr "Нумерация проводок" #. module: account #: model:ir.actions.act_window,help:account.action_account_period_tree @@ -8772,19 +8908,22 @@ msgid "Active" msgstr "Активен" #. module: account -#: code:addons/account/invoice.py:354 +#: code:addons/account/invoice.py:353 #, python-format msgid "Unknown Error" msgstr "Неизвестная ошибка" #. module: account -#: code:addons/account/account.py:1167 +#: code:addons/account/account.py:1181 #, python-format msgid "" "You cannot validate a non-balanced entry !\n" "Make sure you have configured Payment Term properly !\n" "It should contain atleast one Payment Term Line with type \"Balance\" !" msgstr "" +"Вы не можете утвердить несбалансированную проводку!\n" +"Проверьте правильность настройки условия оплаты!\n" +"Должна быть хотя бы одна строка условия оплаты с типом \"Баланс\"!" #. module: account #: help:res.partner,property_account_payable:0 @@ -8808,7 +8947,7 @@ msgstr "Вторичная валюта" #. module: account #: model:ir.model,name:account.model_validate_account_move msgid "Validate Account Move" -msgstr "Утвердить действие по счету" +msgstr "Утвердить операцию по счету" #. module: account #: field:account.account,credit:0 @@ -8821,10 +8960,10 @@ msgstr "Утвердить действие по счету" #: field:account.entries.report,credit:0 #: report:account.general.journal:0 #: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 #: report:account.journal.period.print:0 #: field:account.model.line,credit:0 #: field:account.move.line,credit:0 -#: report:account.move.voucher:0 #: report:account.partner.balance:0 #: report:account.tax.code.entries:0 #: report:account.third_party_ledger:0 @@ -8866,6 +9005,9 @@ msgid "" "payment term!\n" "Please define partner on it!" msgstr "" +"Дата исполнения проводки созданной строкой \"%s\" основана на условии оплаты " +"контрагента!\n" +"Пожалуйста, задайте контрагента!" #. module: account #: field:account.cashbox.line,number:0 @@ -9065,7 +9207,6 @@ msgstr "Выберите период" #: view:account.move:0 #: selection:account.move,state:0 #: view:account.move.line:0 -#: report:account.move.voucher:0 msgid "Posted" msgstr "Проведено" @@ -9084,6 +9225,7 @@ msgstr "Проведено" #: report:account.general.journal:0 #: field:account.general.journal,date_to:0 #: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 #: field:account.installer,date_stop:0 #: report:account.journal.period.print:0 #: report:account.partner.balance:0 @@ -9102,7 +9244,7 @@ msgstr "Дата окончания" #: model:ir.actions.act_window,name:account.action_account_open_closed_fiscalyear #: model:ir.ui.menu,name:account.menu_wizard_account_open_closed_fiscalyear msgid "Cancel Opening Entries" -msgstr "Отмена открывающих проводок" +msgstr "Отмена проводок открытия" #. module: account #: field:account.payment.term.line,days2:0 @@ -9137,7 +9279,7 @@ msgid "This is a model for recurring accounting entries" msgstr "Это модель для повторяющихся проводок" #. module: account -#: code:addons/account/account_analytic_line.py:100 +#: code:addons/account/account_analytic_line.py:99 #, python-format msgid "There is no income account defined for this product: \"%s\" (id:%d)" msgstr "Не определен счет доходов для ТМЦ: \"%s\" (id:%d)" @@ -9210,7 +9352,7 @@ msgstr "Журнал: Все" #: field:analytic.entries.report,company_id:0 #: field:wizard.multi.charts.accounts,company_id:0 msgid "Company" -msgstr "Компания" +msgstr "Организация" #. module: account #: model:ir.ui.menu,name:account.menu_action_subscription_form @@ -9289,8 +9431,8 @@ msgid "End period" msgstr "Конец периода" #. module: account -#: code:addons/account/account_move_line.py:738 -#: code:addons/account/account_move_line.py:815 +#: code:addons/account/account_move_line.py:729 +#: code:addons/account/account_move_line.py:806 #: code:addons/account/wizard/account_invoice_state.py:44 #: code:addons/account/wizard/account_invoice_state.py:68 #: code:addons/account/wizard/account_report_balance_sheet.py:70 @@ -9320,7 +9462,7 @@ msgstr "" #: view:account.automatic.reconcile:0 #: view:account.move.line.reconcile.writeoff:0 msgid "Write-Off Move" -msgstr "" +msgstr "Операция списания" #. module: account #: model:process.node,note:account.process_node_paidinvoice0 @@ -9358,10 +9500,10 @@ msgstr "Счет поставщика" #: field:account.entries.report,debit:0 #: report:account.general.journal:0 #: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 #: report:account.journal.period.print:0 #: field:account.model.line,debit:0 #: field:account.move.line,debit:0 -#: report:account.move.voucher:0 #: report:account.partner.balance:0 #: report:account.tax.code.entries:0 #: report:account.third_party_ledger:0 @@ -9395,7 +9537,7 @@ msgid "Recurring" msgstr "Повторение" #. module: account -#: code:addons/account/account_move_line.py:805 +#: code:addons/account/account_move_line.py:796 #, python-format msgid "Entry is already reconciled" msgstr "Проводка уже сверена" @@ -9408,7 +9550,7 @@ msgstr "Дебиторская задолженность" #. module: account #: selection:account.model.line,date_maturity:0 msgid "Partner Payment Term" -msgstr "Условия платежа партнера" +msgstr "Условие оплаты контрагента" #. module: account #: field:temp.range,name:0 @@ -9416,7 +9558,7 @@ msgid "Range" msgstr "Диапазон" #. module: account -#: code:addons/account/account_move_line.py:1246 +#: code:addons/account/account_move_line.py:1252 #, python-format msgid "" "Can not create an automatic sequence for this piece !\n" @@ -9432,7 +9574,7 @@ msgstr "" #: selection:account.pl.report,display_account:0 #: selection:account.report.general.ledger,display_account:0 msgid "With movements" -msgstr "" +msgstr "С движением" #. module: account #: view:account.analytic.account:0 @@ -9489,7 +9631,7 @@ msgstr "Этот период уже закрыт !" #. module: account #: help:account.move.line,currency_id:0 msgid "The optional other currency if it is a multi-currency entry." -msgstr "Дополнительная валюта, если эта запись мульти-валютная." +msgstr "Дополнительная валюта, если эта проводка мульти-валютная." #. module: account #: model:process.transition,note:account.process_transition_invoiceimport0 @@ -9518,12 +9660,12 @@ msgid "" "may keep several types of specialized journals such as a cash journal, " "purchase journal, sales journal..." msgstr "" -"Создание и управление журналами вашей компании. Журнал используется для " -"записи всех операций учета данных связанных с ежедневной деятельностью вашей " -"компании используя двойную запись. В зависимости от характера деятельности " -"и количества ежедневных операций, компания может использовать несколько " -"типов специализированных журналов таких, как кассовый журнал, журнал " -"покупок, журнал продаж..." +"Создавайте журналы организации и управляйте ими в этом меню. Журнал " +"используется для отражения всех данных операций бухгалтерского учёта, " +"связанных с повседневной деятельностью вашей организации по принципу двойной " +"записи. В зависимости от характера деятельности и количества операций, " +"организация может вести несколько типов специализированных журналов, таких " +"как кассовый журнал, журнал покупок, журнал продаж…" #. module: account #: model:ir.model,name:account.model_account_analytic_chart @@ -9553,7 +9695,7 @@ msgid "Accounts Mapping" msgstr "" #. module: account -#: code:addons/account/invoice.py:346 +#: code:addons/account/invoice.py:345 #, python-format msgid "Invoice '%s' is waiting for validation." msgstr "Счет '%s' ожидает утверждения." @@ -9578,7 +9720,7 @@ msgid "The income or expense account related to the selected product." msgstr "" #. module: account -#: code:addons/account/account_move_line.py:1117 +#: code:addons/account/account_move_line.py:1123 #, python-format msgid "The date of your Journal Entry is not in the defined period!" msgstr "Дата вашей записи в журнале вне определенного периода!" @@ -9636,7 +9778,7 @@ msgstr "Бухгалтерские документы" #. module: account #: model:ir.model,name:account.model_validate_account_move_lines msgid "Validate Account Move Lines" -msgstr "Утвердить действия по счету" +msgstr "Утвердить операции по счету" #. module: account #: model:ir.actions.act_window,name:account.action_account_analytic_cost_ledger_journal @@ -9776,7 +9918,7 @@ msgstr "" #. module: account #: field:account.analytic.line,amount_currency:0 msgid "Amount currency" -msgstr "Валюта суммы" +msgstr "Сумма в валюте" #. module: account #: code:addons/account/wizard/account_report_aged_partner_balance.py:55 @@ -9785,7 +9927,7 @@ msgid "You must enter a period length that cannot be 0 or below !" msgstr "Вы должны ввести длину периода больше 0 !" #. module: account -#: code:addons/account/account.py:501 +#: code:addons/account/account.py:511 #, python-format msgid "You cannot remove an account which has account entries!. " msgstr "Нельзя удалить счет по которому есть проводки ! " diff --git a/addons/account/security/account_security.xml b/addons/account/security/account_security.xml index b7271fec84b..016c147be91 100644 --- a/addons/account/security/account_security.xml +++ b/addons/account/security/account_security.xml @@ -97,6 +97,13 @@ ['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])] + + Invoice Analysis multi-company + + + ['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])] + + Account fiscal Mapping company rule diff --git a/addons/account_accountant/i18n/fi.po b/addons/account_accountant/i18n/fi.po new file mode 100644 index 00000000000..1e1c0a25072 --- /dev/null +++ b/addons/account_accountant/i18n/fi.po @@ -0,0 +1,33 @@ +# Finnish translation for openobject-addons +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2011-01-11 11:14+0000\n" +"PO-Revision-Date: 2011-06-22 05:51+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Finnish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2011-06-23 04:56+0000\n" +"X-Generator: Launchpad (build 13168)\n" + +#. module: account_accountant +#: model:ir.module.module,description:account_accountant.module_meta_information +msgid "" +"\n" +"This module gives the admin user the access to all the accounting features " +"like the journal\n" +"items and the chart of accounts.\n" +" " +msgstr "" + +#. module: account_accountant +#: model:ir.module.module,shortdesc:account_accountant.module_meta_information +msgid "Accountant" +msgstr "Kirjanpitäjä" diff --git a/addons/account_anglo_saxon/i18n/fi.po b/addons/account_anglo_saxon/i18n/fi.po new file mode 100644 index 00000000000..4806d363e98 --- /dev/null +++ b/addons/account_anglo_saxon/i18n/fi.po @@ -0,0 +1,111 @@ +# Finnish translation for openobject-addons +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2011-01-11 11:14+0000\n" +"PO-Revision-Date: 2011-06-29 08:04+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Finnish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2011-06-30 04:34+0000\n" +"X-Generator: Launchpad (build 13168)\n" + +#. module: account_anglo_saxon +#: view:product.category:0 +msgid " Accounting Property" +msgstr " Kirjanpito-ominaisuus" + +#. module: account_anglo_saxon +#: sql_constraint:purchase.order:0 +msgid "Order Reference must be unique !" +msgstr "Tilauksen viite tulee olla yksilöllinen!" + +#. module: account_anglo_saxon +#: constraint:product.category:0 +msgid "Error ! You can not create recursive categories." +msgstr "Virhe ! Et voi luoda rekursiivisia luokkia." + +#. module: account_anglo_saxon +#: constraint:product.template:0 +msgid "" +"Error: The default UOM and the purchase UOM must be in the same category." +msgstr "" +"Virhe: Oletus mittayksikkö ja ostojen mittayksikkö täytyy olla samassa " +"kategoriassa." + +#. module: account_anglo_saxon +#: model:ir.model,name:account_anglo_saxon.model_account_invoice_line +msgid "Invoice Line" +msgstr "Laskun rivi" + +#. module: account_anglo_saxon +#: model:ir.model,name:account_anglo_saxon.model_purchase_order +msgid "Purchase Order" +msgstr "Ostotilaus" + +#. module: account_anglo_saxon +#: model:ir.model,name:account_anglo_saxon.model_product_template +msgid "Product Template" +msgstr "Tuotteen malli" + +#. module: account_anglo_saxon +#: model:ir.model,name:account_anglo_saxon.model_product_category +msgid "Product Category" +msgstr "Tuotteen kategoria" + +#. module: account_anglo_saxon +#: model:ir.module.module,shortdesc:account_anglo_saxon.module_meta_information +msgid "Stock Accounting for Anglo Saxon countries" +msgstr "Varastokirjanpito anglosaksalaisille maille" + +#. module: account_anglo_saxon +#: field:product.category,property_account_creditor_price_difference_categ:0 +#: field:product.template,property_account_creditor_price_difference:0 +msgid "Price Difference Account" +msgstr "Hintaerotuksen tili" + +#. module: account_anglo_saxon +#: model:ir.model,name:account_anglo_saxon.model_account_invoice +msgid "Invoice" +msgstr "Lasku" + +#. module: account_anglo_saxon +#: model:ir.model,name:account_anglo_saxon.model_stock_picking +msgid "Picking List" +msgstr "Keräilylista" + +#. module: account_anglo_saxon +#: model:ir.module.module,description:account_anglo_saxon.module_meta_information +msgid "" +"This module will support the Anglo-Saxons accounting methodology by\n" +" changing the accounting logic with stock transactions. The difference " +"between the Anglo-Saxon accounting countries\n" +" and the Rhine or also called Continental accounting countries is the " +"moment of taking the Cost of Goods Sold versus Cost of Sales.\n" +" Anglo-Saxons accounting does take the cost when sales invoice is " +"created, Continental accounting will take the cost at the moment the goods " +"are shipped.\n" +" This module will add this functionality by using a interim account, to " +"store the value of shipped goods and will contra book this interim account\n" +" when the invoice is created to transfer this amount to the debtor or " +"creditor account.\n" +" Secondly, price differences between actual purchase price and fixed " +"product standard price are booked on a separate account" +msgstr "" + +#. module: account_anglo_saxon +#: help:product.category,property_account_creditor_price_difference_categ:0 +#: help:product.template,property_account_creditor_price_difference:0 +msgid "" +"This account will be used to value price difference between purchase price " +"and cost price." +msgstr "" +"Tätä tiliä käytetään arvostamaan hintaeroa ostohinnan ja kustannushinnan " +"välillä" diff --git a/addons/account_coda/i18n/fi.po b/addons/account_coda/i18n/fi.po new file mode 100644 index 00000000000..8daf08f08c8 --- /dev/null +++ b/addons/account_coda/i18n/fi.po @@ -0,0 +1,261 @@ +# Finnish translation for openobject-addons +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2011-01-11 11:14+0000\n" +"PO-Revision-Date: 2011-06-28 09:19+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Finnish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2011-06-29 04:43+0000\n" +"X-Generator: Launchpad (build 13168)\n" + +#. module: account_coda +#: help:account.coda,journal_id:0 +#: field:account.coda.import,journal_id:0 +msgid "Bank Journal" +msgstr "Pankkitapahtumat" + +#. module: account_coda +#: view:account.coda:0 +#: field:account.coda.import,note:0 +msgid "Log" +msgstr "Loki" + +#. module: account_coda +#: model:ir.model,name:account_coda.model_account_coda_import +msgid "Account Coda Import" +msgstr "Tilien Coda tuonti" + +#. module: account_coda +#: field:account.coda,name:0 +msgid "Coda file" +msgstr "Coda tiedosto" + +#. module: account_coda +#: view:account.coda:0 +msgid "Group By..." +msgstr "Ryhmittely.." + +#. module: account_coda +#: field:account.coda.import,awaiting_account:0 +msgid "Default Account for Unrecognized Movement" +msgstr "Oletustili tuntemattomille siirroille" + +#. module: account_coda +#: help:account.coda,date:0 +msgid "Import Date" +msgstr "Tuontipäivä" + +#. module: account_coda +#: field:account.coda,note:0 +msgid "Import log" +msgstr "Tuontiloki" + +#. module: account_coda +#: view:account.coda.import:0 +msgid "Import" +msgstr "Tuo" + +#. module: account_coda +#: view:account.coda:0 +msgid "Coda import" +msgstr "Coda tuonti" + +#. module: account_coda +#: code:addons/account_coda/account_coda.py:51 +#, python-format +msgid "Coda file not found for bank statement !!" +msgstr "Coda tiedostoa ei löytynyt tiliotteelle" + +#. module: account_coda +#: help:account.coda.import,awaiting_account:0 +msgid "" +"Set here the default account that will be used, if the partner is found but " +"does not have the bank account, or if he is domiciled" +msgstr "" + +#. module: account_coda +#: view:account.coda:0 +#: field:account.coda,company_id:0 +msgid "Company" +msgstr "Yritys" + +#. module: account_coda +#: help:account.coda.import,def_payable:0 +msgid "" +"Set here the payable account that will be used, by default, if the partner " +"is not found" +msgstr "" + +#. module: account_coda +#: view:account.coda:0 +msgid "Search Coda" +msgstr "Hae coda" + +#. module: account_coda +#: view:account.coda:0 +#: field:account.coda,user_id:0 +msgid "User" +msgstr "Käyttäjä" + +#. module: account_coda +#: view:account.coda:0 +#: field:account.coda,date:0 +msgid "Date" +msgstr "Päiväys" + +#. module: account_coda +#: model:ir.ui.menu,name:account_coda.menu_account_coda_statement +msgid "Coda Import Logs" +msgstr "Coda tuontilokit" + +#. module: account_coda +#: model:ir.model,name:account_coda.model_account_coda +msgid "coda for an Account" +msgstr "Coda tilille" + +#. module: account_coda +#: field:account.coda.import,def_payable:0 +msgid "Default Payable Account" +msgstr "Oletus maksutili" + +#. module: account_coda +#: help:account.coda,name:0 +msgid "Store the detail of bank statements" +msgstr "Talleta tiliotteiden yksityiskohdat" + +#. module: account_coda +#: view:account.coda.import:0 +msgid "Cancel" +msgstr "Peruuta" + +#. module: account_coda +#: view:account.coda.import:0 +msgid "Open Statements" +msgstr "Avaa tiliotteet" + +#. module: account_coda +#: code:addons/account_coda/wizard/account_coda_import.py:167 +#, python-format +msgid "The bank account %s is not defined for the partner %s.\n" +msgstr "" + +#. module: account_coda +#: model:ir.ui.menu,name:account_coda.menu_account_coda_import +msgid "Import Coda Statements" +msgstr "Tuo Coda tiedot" + +#. module: account_coda +#: view:account.coda.import:0 +#: model:ir.actions.act_window,name:account_coda.action_account_coda_import +msgid "Import Coda Statement" +msgstr "Tuo Coda tiedot" + +#. module: account_coda +#: model:ir.module.module,description:account_coda.module_meta_information +msgid "" +"\n" +" Module provides functionality to import\n" +" bank statements from coda files.\n" +" " +msgstr "" + +#. module: account_coda +#: view:account.coda:0 +msgid "Statements" +msgstr "Tiliotteet" + +#. module: account_coda +#: field:account.bank.statement,coda_id:0 +msgid "Coda" +msgstr "Coda" + +#. module: account_coda +#: view:account.coda.import:0 +msgid "Results :" +msgstr "Tulokset :" + +#. module: account_coda +#: view:account.coda.import:0 +msgid "Result of Imported Coda Statements" +msgstr "Tulos tuoduista Coda tiliotteista" + +#. module: account_coda +#: help:account.coda.import,def_receivable:0 +msgid "" +"Set here the receivable account that will be used, by default, if the " +"partner is not found" +msgstr "" +"Valitse tähän oletustili jota käytetään jos saapuneen maksun kumppania ei " +"löydetä" + +#. module: account_coda +#: field:account.coda.import,coda:0 +#: model:ir.actions.act_window,name:account_coda.act_account_payment_account_bank_statement +msgid "Coda File" +msgstr "Coda tiedosto" + +#. module: account_coda +#: model:ir.model,name:account_coda.model_account_bank_statement +msgid "Bank Statement" +msgstr "Pankin tiliote" + +#. module: account_coda +#: model:ir.actions.act_window,name:account_coda.action_account_coda +msgid "Coda Logs" +msgstr "Coda lokit" + +#. module: account_coda +#: code:addons/account_coda/wizard/account_coda_import.py:311 +#, python-format +msgid "Result" +msgstr "Tulos" + +#. module: account_coda +#: view:account.coda.import:0 +msgid "Click on 'New' to select your file :" +msgstr "Valitse 'uusi' valitaksesi tiedostosi :" + +#. module: account_coda +#: field:account.coda.import,def_receivable:0 +msgid "Default Receivable Account" +msgstr "Oletus saamistili" + +#. module: account_coda +#: view:account.coda.import:0 +msgid "Close" +msgstr "Sulje" + +#. module: account_coda +#: field:account.coda,statement_ids:0 +msgid "Generated Bank Statements" +msgstr "Luodut tiliotteet" + +#. module: account_coda +#: model:ir.module.module,shortdesc:account_coda.module_meta_information +msgid "Account CODA - import bank statements from coda file" +msgstr "" + +#. module: account_coda +#: view:account.coda.import:0 +msgid "Configure Your Journal and Account :" +msgstr "" + +#. module: account_coda +#: view:account.coda:0 +msgid "Coda Import" +msgstr "" + +#. module: account_coda +#: view:account.coda:0 +#: field:account.coda,journal_id:0 +msgid "Journal" +msgstr "" diff --git a/addons/account_sequence/i18n/nb.po b/addons/account_sequence/i18n/nb.po new file mode 100644 index 00000000000..f77793fcb3e --- /dev/null +++ b/addons/account_sequence/i18n/nb.po @@ -0,0 +1,221 @@ +# Norwegian Bokmal translation for openobject-addons +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2011-01-11 11:14+0000\n" +"PO-Revision-Date: 2011-06-24 11:23+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Norwegian Bokmal \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2011-06-25 04:59+0000\n" +"X-Generator: Launchpad (build 13168)\n" + +#. module: account_sequence +#: view:account.sequence.installer:0 +#: model:ir.actions.act_window,name:account_sequence.action_account_seq_installer +msgid "Account Sequence Application Configuration" +msgstr "" + +#. module: account_sequence +#: constraint:account.move:0 +msgid "" +"You cannot create entries on different periods/journals in the same move" +msgstr "" + +#. module: account_sequence +#: help:account.move,internal_sequence_number:0 +#: help:account.move.line,internal_sequence_number:0 +msgid "Internal Sequence Number" +msgstr "Internt sekvensnummer" + +#. module: account_sequence +#: help:account.sequence.installer,number_next:0 +msgid "Next number of this sequence" +msgstr "Neste nummer på denne sekvensen" + +#. module: account_sequence +#: field:account.sequence.installer,number_next:0 +msgid "Next Number" +msgstr "Neste nummer" + +#. module: account_sequence +#: field:account.sequence.installer,number_increment:0 +msgid "Increment Number" +msgstr "" + +#. module: account_sequence +#: model:ir.module.module,description:account_sequence.module_meta_information +msgid "" +"\n" +" This module maintains internal sequence number for accounting entries.\n" +" " +msgstr "" + +#. module: account_sequence +#: model:ir.module.module,shortdesc:account_sequence.module_meta_information +msgid "Entries Sequence Numbering" +msgstr "" + +#. module: account_sequence +#: help:account.sequence.installer,number_increment:0 +msgid "The next number of the sequence will be incremented by this number" +msgstr "" + +#. module: account_sequence +#: view:account.sequence.installer:0 +msgid "Configure Your Account Sequence Application" +msgstr "" + +#. module: account_sequence +#: field:account.sequence.installer,progress:0 +msgid "Configuration Progress" +msgstr "" + +#. module: account_sequence +#: help:account.sequence.installer,suffix:0 +msgid "Suffix value of the record for the sequence" +msgstr "" + +#. module: account_sequence +#: field:account.sequence.installer,company_id:0 +msgid "Company" +msgstr "" + +#. module: account_sequence +#: help:account.journal,internal_sequence_id:0 +msgid "" +"This sequence will be used to maintain the internal number for the journal " +"entries related to this journal." +msgstr "" + +#. module: account_sequence +#: field:account.sequence.installer,padding:0 +msgid "Number padding" +msgstr "" + +#. module: account_sequence +#: model:ir.model,name:account_sequence.model_account_move_line +msgid "Journal Items" +msgstr "" + +#. module: account_sequence +#: field:account.move,internal_sequence_number:0 +#: field:account.move.line,internal_sequence_number:0 +msgid "Internal Number" +msgstr "" + +#. module: account_sequence +#: constraint:account.move.line:0 +msgid "Company must be same for its related account and period." +msgstr "" + +#. module: account_sequence +#: help:account.sequence.installer,padding:0 +msgid "" +"OpenERP will automatically adds some '0' on the left of the 'Next Number' to " +"get the required padding size." +msgstr "" + +#. module: account_sequence +#: field:account.sequence.installer,name:0 +msgid "Name" +msgstr "" + +#. module: account_sequence +#: constraint:account.move.line:0 +msgid "You can not create move line on closed account." +msgstr "" + +#. module: account_sequence +#: constraint:account.move:0 +msgid "" +"You cannot create more than one move per period on centralized journal" +msgstr "" + +#. module: account_sequence +#: sql_constraint:account.move.line:0 +msgid "Wrong credit or debit value in accounting entry !" +msgstr "" + +#. module: account_sequence +#: field:account.journal,internal_sequence_id:0 +msgid "Internal Sequence" +msgstr "" + +#. module: account_sequence +#: model:ir.model,name:account_sequence.model_account_sequence_installer +msgid "account.sequence.installer" +msgstr "" + +#. module: account_sequence +#: view:account.sequence.installer:0 +msgid "Configure" +msgstr "" + +#. module: account_sequence +#: help:account.sequence.installer,prefix:0 +msgid "Prefix value of the record for the sequence" +msgstr "" + +#. module: account_sequence +#: model:ir.model,name:account_sequence.model_account_move +msgid "Account Entry" +msgstr "" + +#. module: account_sequence +#: field:account.sequence.installer,suffix:0 +msgid "Suffix" +msgstr "" + +#. module: account_sequence +#: field:account.sequence.installer,config_logo:0 +msgid "Image" +msgstr "" + +#. module: account_sequence +#: view:account.sequence.installer:0 +msgid "title" +msgstr "" + +#. module: account_sequence +#: sql_constraint:account.journal:0 +msgid "The name of the journal must be unique per company !" +msgstr "" + +#. module: account_sequence +#: field:account.sequence.installer,prefix:0 +msgid "Prefix" +msgstr "" + +#. module: account_sequence +#: sql_constraint:account.journal:0 +msgid "The code of the journal must be unique per company !" +msgstr "" + +#. module: account_sequence +#: constraint:account.move.line:0 +msgid "" +"You can not create move line on receivable/payable account without partner" +msgstr "" + +#. module: account_sequence +#: model:ir.model,name:account_sequence.model_account_journal +msgid "Journal" +msgstr "" + +#. module: account_sequence +#: view:account.sequence.installer:0 +msgid "You can enhance the Account Sequence Application by installing ." +msgstr "" + +#. module: account_sequence +#: constraint:account.move.line:0 +msgid "You can not create move line on view account." +msgstr "" diff --git a/addons/analytic/i18n/fi.po b/addons/analytic/i18n/fi.po new file mode 100644 index 00000000000..5822cb824d2 --- /dev/null +++ b/addons/analytic/i18n/fi.po @@ -0,0 +1,261 @@ +# Finnish translation for openobject-addons +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2011-01-11 11:14+0000\n" +"PO-Revision-Date: 2011-06-29 06:16+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Finnish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2011-06-30 04:34+0000\n" +"X-Generator: Launchpad (build 13168)\n" + +#. module: analytic +#: field:account.analytic.account,child_ids:0 +msgid "Child Accounts" +msgstr "Alatason tilit" + +#. module: analytic +#: field:account.analytic.account,name:0 +msgid "Account Name" +msgstr "Tilin nimi" + +#. module: analytic +#: help:account.analytic.line,unit_amount:0 +msgid "Specifies the amount of quantity to count." +msgstr "Määrittelee laskettavan määrän" + +#. module: analytic +#: model:ir.module.module,description:analytic.module_meta_information +msgid "" +"Module for defining analytic accounting object.\n" +" " +msgstr "" +"Moduuli analyyttisten tilien määrittelyyn.\n" +" " + +#. module: analytic +#: field:account.analytic.account,state:0 +msgid "State" +msgstr "Tila" + +#. module: analytic +#: field:account.analytic.account,user_id:0 +msgid "Account Manager" +msgstr "Asiakas päällikkö" + +#. module: analytic +#: selection:account.analytic.account,state:0 +msgid "Draft" +msgstr "Luonnos" + +#. module: analytic +#: selection:account.analytic.account,state:0 +msgid "Closed" +msgstr "Suljettu" + +#. module: analytic +#: field:account.analytic.account,debit:0 +msgid "Debit" +msgstr "Debet" + +#. 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 "Tilityyppi" + +#. module: analytic +#: selection:account.analytic.account,state:0 +msgid "Template" +msgstr "Mallipohja" + +#. module: analytic +#: selection:account.analytic.account,state:0 +msgid "Pending" +msgstr "Odottava" + +#. module: analytic +#: model:ir.model,name:analytic.model_account_analytic_line +msgid "Analytic Line" +msgstr "Analyyttinen rivi" + +#. module: analytic +#: field:account.analytic.account,description:0 +#: field:account.analytic.line,name:0 +msgid "Description" +msgstr "Kuvaus" + +#. module: analytic +#: selection:account.analytic.account,type:0 +msgid "Normal" +msgstr "Tavallinen" + +#. module: analytic +#: field:account.analytic.account,company_id:0 +#: field:account.analytic.line,company_id:0 +msgid "Company" +msgstr "Yritys" + +#. module: analytic +#: field:account.analytic.account,quantity_max:0 +msgid "Maximum Quantity" +msgstr "Maksimimäärä" + +#. module: analytic +#: field:account.analytic.line,user_id:0 +msgid "User" +msgstr "Käyttäjä" + +#. module: analytic +#: field:account.analytic.account,parent_id:0 +msgid "Parent Analytic Account" +msgstr "Ylempi analyyttinen tili" + +#. module: analytic +#: field:account.analytic.line,date:0 +msgid "Date" +msgstr "Päiväys" + +#. module: analytic +#: field:account.analytic.account,currency_id:0 +msgid "Account currency" +msgstr "Tilin valuutta" + +#. module: analytic +#: field:account.analytic.account,quantity:0 +#: field:account.analytic.line,unit_amount:0 +msgid "Quantity" +msgstr "Määrä" + +#. module: analytic +#: help:account.analytic.line,amount:0 +msgid "" +"Calculated by multiplying the quantity and the price given in the Product's " +"cost price. Always expressed in the company main currency." +msgstr "" +"Laskettu kertomalla määrä ja tuotteen kustannushinta. Yrityksen " +"päävaluutassa." + +#. module: analytic +#: help:account.analytic.account,quantity_max:0 +msgid "Sets the higher limit of quantity of hours." +msgstr "Asettaa tuntien määrän ylärajan" + +#. module: analytic +#: field:account.analytic.account,credit:0 +msgid "Credit" +msgstr "Kredit" + +#. module: analytic +#: field:account.analytic.line,amount:0 +msgid "Amount" +msgstr "Määrä" + +#. module: analytic +#: field:account.analytic.account,contact_id:0 +msgid "Contact" +msgstr "Yhteyshenkilö" + +#. module: analytic +#: constraint:account.analytic.account:0 +msgid "" +"Error! The currency has to be the same as the currency of the selected " +"company" +msgstr "Virhe! Valuutan tulee olla sama kun valitun yrityksen valutta." + +#. module: analytic +#: selection:account.analytic.account,state:0 +msgid "Cancelled" +msgstr "Peruttu" + +#. module: analytic +#: field:account.analytic.account,balance:0 +msgid "Balance" +msgstr "Saldo" + +#. module: analytic +#: constraint:account.analytic.account:0 +msgid "Error! You can not create recursive analytic accounts." +msgstr "Virhe! Et voi luoda sisäkkäisiä analyyttisiä tilejä." + +#. module: analytic +#: help:account.analytic.account,type:0 +msgid "" +"If you select the View Type, it means you won't allow to create journal " +"entries using that account." +msgstr "" +"Jos valitset näkymätyypin, se tarkoittaa että et voi luoda " +"päiväkirjamerkintöjä käyttäen sitä tiliä." + +#. module: analytic +#: field:account.analytic.account,date:0 +msgid "Date End" +msgstr "Loppupäiväys" + +#. module: analytic +#: field:account.analytic.account,code:0 +msgid "Account Code" +msgstr "Tilikoodi" + +#. module: analytic +#: field:account.analytic.account,complete_name:0 +msgid "Full Account Name" +msgstr "Tilin kokonimi" + +#. 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 "Analyyttinen tili" + +#. module: analytic +#: selection:account.analytic.account,type:0 +msgid "View" +msgstr "Näkymä" + +#. module: analytic +#: field:account.analytic.account,partner_id:0 +msgid "Partner" +msgstr "Kumppani" + +#. module: analytic +#: field:account.analytic.account,date_start:0 +msgid "Date Start" +msgstr "Aloituspäivämäärä" + +#. module: analytic +#: selection:account.analytic.account,state:0 +msgid "Open" +msgstr "Avoin" + +#. module: analytic +#: field:account.analytic.account,line_ids:0 +msgid "Analytic Entries" +msgstr "Analyyttiset viennit" diff --git a/addons/analytic_user_function/i18n/fi.po b/addons/analytic_user_function/i18n/fi.po new file mode 100644 index 00000000000..78387b7f6bd --- /dev/null +++ b/addons/analytic_user_function/i18n/fi.po @@ -0,0 +1,103 @@ +# Finnish translation for openobject-addons +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2011-01-03 16:56+0000\n" +"PO-Revision-Date: 2011-06-29 05:53+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Finnish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2011-06-30 04:34+0000\n" +"X-Generator: Launchpad (build 13168)\n" + +#. module: analytic_user_function +#: field:analytic_user_funct_grid,product_id:0 +msgid "Product" +msgstr "Tuote" + +#. module: analytic_user_function +#: code:addons/analytic_user_function/analytic_user_function.py:96 +#: code:addons/analytic_user_function/analytic_user_function.py:131 +#, python-format +msgid "Error !" +msgstr "Virhe !" + +#. module: analytic_user_function +#: model:ir.model,name:analytic_user_function.model_hr_analytic_timesheet +msgid "Timesheet Line" +msgstr "Tuntilistan rivi" + +#. module: analytic_user_function +#: field:analytic_user_funct_grid,account_id:0 +#: model:ir.model,name:analytic_user_function.model_account_analytic_account +msgid "Analytic Account" +msgstr "Analyyttinen tili" + +#. module: analytic_user_function +#: view:account.analytic.account:0 +#: field:account.analytic.account,user_product_ids:0 +msgid "Users/Products Rel." +msgstr "Käyttäjän/Tuotteen suhde" + +#. module: analytic_user_function +#: field:analytic_user_funct_grid,user_id:0 +msgid "User" +msgstr "Käyttäjä" + +#. module: analytic_user_function +#: constraint:account.analytic.account:0 +msgid "" +"Error! The currency has to be the same as the currency of the selected " +"company" +msgstr "Virhe! Valuutan tulee olla sama kun valitun yrityksen valutta." + +#. module: analytic_user_function +#: code:addons/analytic_user_function/analytic_user_function.py:97 +#: code:addons/analytic_user_function/analytic_user_function.py:132 +#, python-format +msgid "There is no expense account define for this product: \"%s\" (id:%d)" +msgstr "Tuotteelle ei ole määritelty kulutiliä: \"%s\" (id:%d)" + +#. module: analytic_user_function +#: model:ir.model,name:analytic_user_function.model_analytic_user_funct_grid +msgid "Relation table between users and products on a analytic account" +msgstr "Viitetaulu käyttäjien ja tuotteiden välillä analyyttisellä tilillä" + +#. module: analytic_user_function +#: model:ir.module.module,description:analytic_user_function.module_meta_information +msgid "" +"\n" +"\n" +" This module allows you to define what is the default function of a " +"specific user on a given account. This is mostly used when a user encodes " +"his timesheet: the values are retrieved and the fields are auto-filled... " +"but the possibility to change these values is still available.\n" +"\n" +" Obviously if no data has been recorded for the current account, the " +"default value is given as usual by the employee data so that this module is " +"perfectly compatible with older configurations.\n" +"\n" +" " +msgstr "" + +#. module: analytic_user_function +#: model:ir.module.module,shortdesc:analytic_user_function.module_meta_information +msgid "Analytic User Function" +msgstr "Analyyttinen käyttäjätoiminto" + +#. module: analytic_user_function +#: constraint:account.analytic.account:0 +msgid "Error! You can not create recursive analytic accounts." +msgstr "Virhe! Et voi luoda sisäkkäisiä analyyttisiä tilejä." + +#. module: analytic_user_function +#: view:analytic_user_funct_grid:0 +msgid "User's Product for this Analytic Account" +msgstr "Käyttäjän tuote tälle analyyttiselle tilille" diff --git a/addons/anonymization/i18n/fi.po b/addons/anonymization/i18n/fi.po new file mode 100644 index 00000000000..9526b2a0f71 --- /dev/null +++ b/addons/anonymization/i18n/fi.po @@ -0,0 +1,227 @@ +# Finnish translation for openobject-addons +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2011-01-11 11:14+0000\n" +"PO-Revision-Date: 2011-06-30 09:52+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Finnish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2011-07-01 04:54+0000\n" +"X-Generator: Launchpad (build 13168)\n" + +#. module: anonymization +#: model:ir.model,name:anonymization.model_ir_model_fields_anonymize_wizard +msgid "ir.model.fields.anonymize.wizard" +msgstr "" + +#. module: anonymization +#: field:ir.model.fields.anonymization,field_name:0 +msgid "Field Name" +msgstr "Kentän nimi" + +#. module: anonymization +#: field:ir.model.fields.anonymization,field_id:0 +msgid "Field" +msgstr "Kenttä" + +#. module: anonymization +#: field:ir.model.fields.anonymization.history,state:0 +#: field:ir.model.fields.anonymize.wizard,state:0 +msgid "State" +msgstr "Tila" + +#. module: anonymization +#: field:ir.model.fields.anonymize.wizard,file_import:0 +msgid "Import" +msgstr "Tuo" + +#. module: anonymization +#: model:ir.model,name:anonymization.model_ir_model_fields_anonymization +msgid "ir.model.fields.anonymization" +msgstr "" + +#. module: anonymization +#: model:ir.module.module,shortdesc:anonymization.module_meta_information +msgid "Database anonymization module" +msgstr "Tietokannan anonymisointi moduuli" + +#. module: anonymization +#: field:ir.model.fields.anonymization.history,direction:0 +msgid "Direction" +msgstr "suunta" + +#. module: anonymization +#: model:ir.actions.act_window,name:anonymization.action_ir_model_fields_anonymization_tree +#: view:ir.model.fields.anonymization:0 +#: model:ir.ui.menu,name:anonymization.menu_administration_anonymization_fields +msgid "Anonymized Fields" +msgstr "Anonymisoidut kentät" + +#. module: anonymization +#: model:ir.ui.menu,name:anonymization.menu_administration_anonymization +msgid "Database anonymization" +msgstr "Tietokannan anonymisointi" + +#. module: anonymization +#: code:addons/anonymization/anonymization.py:55 +#: sql_constraint:ir.model.fields.anonymization:0 +#, python-format +msgid "You cannot have two records having the same model and the same field" +msgstr "" +"Sinulla ei voi olla kahta tietuetta joilla on sama malli ja sama kenttä" + +#. module: anonymization +#: selection:ir.model.fields.anonymization,state:0 +#: selection:ir.model.fields.anonymize.wizard,state:0 +msgid "Anonymized" +msgstr "Anonymisoitu" + +#. module: anonymization +#: field:ir.model.fields.anonymization,state:0 +msgid "unknown" +msgstr "Tuntematon" + +#. module: anonymization +#: field:ir.model.fields.anonymization,model_id:0 +msgid "Object" +msgstr "Objekti" + +#. module: anonymization +#: field:ir.model.fields.anonymization.history,filepath:0 +msgid "File path" +msgstr "Tiedoston polku" + +#. module: anonymization +#: field:ir.model.fields.anonymization.history,date:0 +msgid "Date" +msgstr "Päiväys" + +#. module: anonymization +#: field:ir.model.fields.anonymize.wizard,file_export:0 +msgid "Export" +msgstr "Vie" + +#. module: anonymization +#: view:ir.model.fields.anonymize.wizard:0 +msgid "Reverse the Database Anonymization" +msgstr "Poista tietokannan anonymisointi" + +#. module: anonymization +#: view:ir.model.fields.anonymize.wizard:0 +msgid "Database Anonymization" +msgstr "Tietokannan anonymisointi" + +#. module: anonymization +#: model:ir.ui.menu,name:anonymization.menu_administration_anonymization_wizard +msgid "Anonymize database" +msgstr "Anonymisoi tietokanta" + +#. module: anonymization +#: view:ir.model.fields.anonymization.history:0 +#: field:ir.model.fields.anonymization.history,field_ids:0 +msgid "Fields" +msgstr "Kentät" + +#. module: anonymization +#: selection:ir.model.fields.anonymization,state:0 +#: selection:ir.model.fields.anonymize.wizard,state:0 +msgid "Clear" +msgstr "Tyhjennä" + +#. module: anonymization +#: selection:ir.model.fields.anonymization.history,direction:0 +msgid "clear -> anonymized" +msgstr "näkyvä -> anonymisoitu" + +#. module: anonymization +#: view:ir.model.fields.anonymize.wizard:0 +#: field:ir.model.fields.anonymize.wizard,summary:0 +msgid "Summary" +msgstr "Yhteenveto" + +#. module: anonymization +#: view:ir.model.fields.anonymization:0 +msgid "Anonymized Field" +msgstr "" + +#. module: anonymization +#: model:ir.module.module,description:anonymization.module_meta_information +msgid "" +"\n" +"This module allows you to anonymize a database.\n" +" " +msgstr "" + +#. module: anonymization +#: selection:ir.model.fields.anonymize.wizard,state:0 +msgid "Unstable" +msgstr "Epävakaa" + +#. module: anonymization +#: selection:ir.model.fields.anonymization.history,state:0 +msgid "Exception occured" +msgstr "Poikkeus tapahtui" + +#. module: anonymization +#: selection:ir.model.fields.anonymization,state:0 +#: selection:ir.model.fields.anonymize.wizard,state:0 +msgid "Not Existing" +msgstr "Ei ole olemassa" + +#. module: anonymization +#: field:ir.model.fields.anonymization,model_name:0 +msgid "Object Name" +msgstr "Objektin nimi" + +#. module: anonymization +#: model:ir.actions.act_window,name:anonymization.action_ir_model_fields_anonymization_history_tree +#: view:ir.model.fields.anonymization.history:0 +#: model:ir.ui.menu,name:anonymization.menu_administration_anonymization_history +msgid "Anonymization History" +msgstr "Anonymisoinnin historia" + +#. module: anonymization +#: model:ir.model,name:anonymization.model_ir_model_fields_anonymization_history +msgid "ir.model.fields.anonymization.history" +msgstr "" + +#. module: anonymization +#: model:ir.actions.act_window,name:anonymization.action_ir_model_fields_anonymize_wizard +#: view:ir.model.fields.anonymize.wizard:0 +msgid "Anonymize Database" +msgstr "Anonymisoi tietokanta" + +#. module: anonymization +#: field:ir.model.fields.anonymize.wizard,name:0 +msgid "File Name" +msgstr "Tiedostonimi" + +#. module: anonymization +#: selection:ir.model.fields.anonymization.history,direction:0 +msgid "anonymized -> clear" +msgstr "Anonymisoitu -> näkyvä" + +#. module: anonymization +#: selection:ir.model.fields.anonymization.history,state:0 +msgid "Started" +msgstr "Käynnistetty" + +#. module: anonymization +#: selection:ir.model.fields.anonymization.history,state:0 +msgid "Done" +msgstr "Valmis" + +#. module: anonymization +#: view:ir.model.fields.anonymization.history:0 +#: field:ir.model.fields.anonymization.history,msg:0 +#: field:ir.model.fields.anonymize.wizard,msg:0 +msgid "Message" +msgstr "Viesti" diff --git a/addons/association/i18n/fi.po b/addons/association/i18n/fi.po new file mode 100644 index 00000000000..9a1eae464cb --- /dev/null +++ b/addons/association/i18n/fi.po @@ -0,0 +1,141 @@ +# Finnish translation for openobject-addons +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2011-01-11 11:14+0000\n" +"PO-Revision-Date: 2011-06-27 10:43+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Finnish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2011-06-28 04:40+0000\n" +"X-Generator: Launchpad (build 13168)\n" + +#. module: association +#: field:profile.association.config.install_modules_wizard,wiki:0 +msgid "Wiki" +msgstr "" + +#. module: association +#: view:profile.association.config.install_modules_wizard:0 +msgid "Event Management" +msgstr "Tapahtumienhallinta" + +#. module: association +#: field:profile.association.config.install_modules_wizard,project_gtd:0 +msgid "Getting Things Done" +msgstr "Saada asiat tehtyä" + +#. module: association +#: model:ir.module.module,description:association.module_meta_information +msgid "This module is to create Profile for Associates" +msgstr "Tämä moduuli mahdollistaa yhdistysjäsenprofiilien luonnin" + +#. module: association +#: field:profile.association.config.install_modules_wizard,progress:0 +msgid "Configuration Progress" +msgstr "Konfiguraation eteneminen" + +#. module: association +#: view:profile.association.config.install_modules_wizard:0 +msgid "" +"Here are specific applications related to the Association Profile you " +"selected." +msgstr "" +"Tässä on määritellyt ohjelmat jotka liittyvät valitsemaasi " +"yhdistysprofiiliin." + +#. module: association +#: view:profile.association.config.install_modules_wizard:0 +msgid "title" +msgstr "otsikko" + +#. module: association +#: help:profile.association.config.install_modules_wizard,event_project:0 +msgid "Helps you to manage and organize your events." +msgstr "Auttaa sinua hallitsemaan ja organisoimaan tapahtumia" + +#. module: association +#: field:profile.association.config.install_modules_wizard,config_logo:0 +msgid "Image" +msgstr "Kuva" + +#. module: association +#: help:profile.association.config.install_modules_wizard,hr_expense:0 +msgid "" +"Tracks and manages employee expenses, and can automatically re-invoice " +"clients if the expenses are project-related." +msgstr "" +"Seuraa ja hallitsee työntekijäkuluja ja voi automaattisesti laskuttaa " +"asiakasta, jos kulut liittyvät projektiin." + +#. module: association +#: help:profile.association.config.install_modules_wizard,project_gtd:0 +msgid "" +"GTD is a methodology to efficiently organise yourself and your tasks. This " +"module fully integrates GTD principle with OpenERP's project management." +msgstr "" + +#. module: association +#: view:profile.association.config.install_modules_wizard:0 +msgid "Resources Management" +msgstr "Resurssienhallinta" + +#. module: association +#: model:ir.module.module,shortdesc:association.module_meta_information +msgid "Association profile" +msgstr "Yhdistysprofiili" + +#. module: association +#: field:profile.association.config.install_modules_wizard,hr_expense:0 +msgid "Expenses Tracking" +msgstr "Kulujenseuranta" + +#. module: association +#: model:ir.actions.act_window,name:association.action_config_install_module +#: view:profile.association.config.install_modules_wizard:0 +msgid "Association Application Configuration" +msgstr "Jäsenhakemuksen konfiguraatio" + +#. module: association +#: help:profile.association.config.install_modules_wizard,wiki:0 +msgid "" +"Lets you create wiki pages and page groups in order to keep track of " +"business knowledge and share it with and between your employees." +msgstr "" + +#. module: association +#: help:profile.association.config.install_modules_wizard,project:0 +msgid "" +"Helps you manage your projects and tasks by tracking them, generating " +"plannings, etc..." +msgstr "" +"Auttaa sinua hallitsemaan projektejasi ja tehtäviäsi seuraamalla niitä, " +"luomalla suunnitelmia yms." + +#. module: association +#: model:ir.model,name:association.model_profile_association_config_install_modules_wizard +msgid "profile.association.config.install_modules_wizard" +msgstr "" + +#. module: association +#: field:profile.association.config.install_modules_wizard,event_project:0 +msgid "Events" +msgstr "Tapahtumat" + +#. module: association +#: view:profile.association.config.install_modules_wizard:0 +#: field:profile.association.config.install_modules_wizard,project:0 +msgid "Project Management" +msgstr "Projektinhallinta" + +#. module: association +#: view:profile.association.config.install_modules_wizard:0 +msgid "Configure" +msgstr "Konfiguroi" diff --git a/addons/base_action_rule/base_action_rule.py b/addons/base_action_rule/base_action_rule.py index 2a4e2c0e4e1..80c1ab464f1 100644 --- a/addons/base_action_rule/base_action_rule.py +++ b/addons/base_action_rule/base_action_rule.py @@ -487,21 +487,24 @@ base_action_rule() class ir_cron(osv.osv): - _inherit = 'ir.cron' - + _inherit = 'ir.cron' + _init_done = False + def _poolJobs(self, db_name, check=False): - try: - db = pooler.get_db(db_name) - except: - return False - cr = db.cursor() - try: - next = datetime.now().strftime('%Y-%m-%d %H:00:00') - # Putting nextcall always less than current time in order to call it every time - cr.execute('UPDATE ir_cron set nextcall = \'%s\' where numbercall<>0 and active and model=\'base.action.rule\' ' % (next)) - finally: - cr.commit() - cr.close() + if not self._init_done: + self._init_done = True + try: + db = pooler.get_db(db_name) + except: + return False + cr = db.cursor() + try: + next = datetime.now().strftime('%Y-%m-%d %H:00:00') + # Putting nextcall always less than current time in order to call it every time + cr.execute('UPDATE ir_cron set nextcall = \'%s\' where numbercall<>0 and active and model=\'base.action.rule\' ' % (next)) + finally: + cr.commit() + cr.close() super(ir_cron, self)._poolJobs(db_name, check=check) diff --git a/addons/base_calendar/__openerp__.py b/addons/base_calendar/__openerp__.py index 5688c0e05b5..a01cf0df8cf 100644 --- a/addons/base_calendar/__openerp__.py +++ b/addons/base_calendar/__openerp__.py @@ -1,11 +1,55 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2004-2010 Tiny SPRL (). +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## + { - "name": "Base calendar", - "version": "2.0", - "depends": ['base'], - "js": [ - 'static/lib/dhtmlxScheduler/codebase/dhtmlxscheduler.js', - 'static/src/js/calendar.js' + "name" : "Basic Calendar Functionality", + "version" : "1.0", + "depends" : ["base"], + 'description': """ +This is a full-featured calendar system. +======================================== + +It supports: + - Calendar of events + - Alerts (create requests) + - Recurring events + - Invitations to people""", + "author" : "OpenERP SA", + 'category': 'Tools', + 'website': 'http://www.openerp.com', + "init_xml" : [ + 'base_calendar_data.xml' ], - "css": ['static/lib/dhtmlxScheduler/codebase/dhtmlxscheduler.css'], - 'active': True + "demo_xml" : [], + "update_xml" : [ + 'security/calendar_security.xml', + 'security/ir.model.access.csv', + 'wizard/base_calendar_invite_attendee_view.xml', + 'base_calendar_view.xml' + ], + "test" : ['test/base_calendar_test.yml'], + "installable" : True, + "active" : False, + "certificate" : "00694071962960352821", + 'images': ['images/base_calendar1.jpeg','images/base_calendar2.jpeg','images/base_calendar3.jpeg','images/base_calendar4.jpeg',], } + +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/base_calendar/base_calendar.py b/addons/base_calendar/base_calendar.py index bfcccb3dfe0..4df126e191e 100644 --- a/addons/base_calendar/base_calendar.py +++ b/addons/base_calendar/base_calendar.py @@ -22,6 +22,7 @@ from datetime import datetime, timedelta, date from dateutil import parser from dateutil import rrule +from dateutil.relativedelta import relativedelta from osv import fields, osv from service import web_services from tools.translate import _ @@ -47,20 +48,22 @@ def get_recurrent_dates(rrulestring, exdate, startdate=None, exrule=None): def todate(date): val = parser.parse(''.join((re.compile('\d')).findall(date))) return val - + if not startdate: startdate = datetime.now() + if not exdate: exdate = [] + rset1 = rrule.rrulestr(str(rrulestring), dtstart=startdate, forceset=True) - for date in exdate: datetime_obj = todate(date) rset1._exdate.append(datetime_obj) + if exrule: rset1.exrule(rrule.rrulestr(str(exrule), dtstart=startdate)) - return list(rset1._iter()) + return list(rset1) def base_calendar_id2real_id(base_calendar_id=None, with_date=False): """ @@ -373,7 +376,8 @@ property or property parameter."), multi='event_end_date'), 'ref': fields.reference('Event Ref', selection=_links_get, size=128), 'availability': fields.selection([('free', 'Free'), ('busy', 'Busy')], 'Free/Busy', readonly="True"), - } + } + _defaults = { 'state': 'needs-action', 'role': 'req-participant', @@ -411,7 +415,7 @@ property or property parameter."), cal = vobject.iCalendar() event = cal.add('vevent') if not event_obj.date_deadline or not event_obj.date: - raise osv.except_osv(_('Warning !'),_("Couldn't Invite because date is not specified!")) + raise osv.except_osv(_('Warning !'),_("Couldn't Invite because date is not specified!")) event.add('created').value = ics_datetime(time.strftime('%Y-%m-%d %H:%M:%S')) event.add('dtstart').value = ics_datetime(event_obj.date) event.add('dtend').value = ics_datetime(event_obj.date_deadline) @@ -456,7 +460,7 @@ property or property parameter."), trigger.value = delta # Compute other details valarm.add('DESCRIPTION').value = alarm_data['name'] or 'OpenERP' - + for attendee in event_obj.attendee_ids: attendee_add = event.add('attendee') attendee_add.params['CUTYPE'] = [str(attendee.cutype)] @@ -674,7 +678,7 @@ true, it will allow you to hide the event alarm information without removing it. new_res_alarm = alarm_ids[0] cr.execute('UPDATE %s ' % model_obj._table + \ ' SET base_calendar_alarm_id=%s, alarm_id=%s ' \ - ' WHERE id=%s', + ' WHERE id=%s', (cal_alarm.id, new_res_alarm, data.id)) self.do_alarm_unlink(cr, uid, [data.id], model) @@ -806,7 +810,6 @@ class calendar_alarm(osv.osv): @param use_new_cursor: False or the dbname @param context: A standard dictionary for contextual values """ - return True # XXX FIXME REMOVE THIS AFTER FIXING get_recurrent_dates!! if context is None: context = {} current_datetime = datetime.now() @@ -914,22 +917,6 @@ class calendar_event(osv.osv): def _tz_get(self, cr, uid, context=None): return [(x.lower(), x) for x in pytz.all_timezones] - def onchange_allday(self, cr, uid, ids, allday, context=None): - """Sets duration as 24 Hours if event is selected for all day - @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 calendar event’s IDs. - @param allday: Value of allday boolean - @param context: A standard dictionary for contextual values - """ - if not allday or not ids: - return {} - value = { - 'duration': 24 - } - return {'value': value} - def onchange_dates(self, cr, uid, ids, start_date, duration=False, end_date=False, allday=False, context=None): """Returns duration and/or end date based on values passed @param self: The object pointer @@ -952,8 +939,13 @@ class calendar_event(osv.osv): value['duration'] = duration if allday: # For all day event - value = {'duration': 24} + value = {'duration': 24.0} duration = 24.0 + if start_date: + start = datetime.strptime(start_date, "%Y-%m-%d %H:%M:%S") + start_date = datetime.strftime(datetime(start.year, start.month, start.day, 0,0,0), "%Y-%m-%d %H:%M:%S") + value['date'] = start_date + start = datetime.strptime(start_date, "%Y-%m-%d %H:%M:%S") if end_date and not duration: @@ -966,7 +958,7 @@ class calendar_event(osv.osv): value['date_deadline'] = end.strftime("%Y-%m-%d %H:%M:%S") elif end_date and duration and not allday: # we have both, keep them synchronized: - # set duration based on end_date (arbitrary decision: this avoid + # set duration based on end_date (arbitrary decision: this avoid # getting dates like 06:31:48 instead of 06:32:00) end = datetime.strptime(end_date, "%Y-%m-%d %H:%M:%S") diff = end - start @@ -982,88 +974,10 @@ class calendar_event(osv.osv): """ if context is None: context = {} - cr.execute('select id from '+self._table+' where recurrent_uid in %s', (tuple(ids),)) - r_ids = map(lambda x: x[0], cr.fetchall()) - self.unlink(cr, uid, r_ids, context=context) - return True - - def _set_rrulestring(self, cr, uid, id, name, value, arg, context=None): - """ - Sets values of fields that defines event recurrence from the value of rrule string - @param self: The object pointer - @param cr: the current row, from the database cursor, - @param id: List of calendar event's ids. - @param context: A standard dictionary for contextual values - @return: dictionary of rrule value. - """ - if context is None: - context = {} - cr.execute("UPDATE %s set freq='None',interval=0,count=0,end_date=Null,\ - mo=False,tu=False,we=False,th=False,fr=False,sa=False,su=False,\ - day=0,select1='date',month_list=Null ,byday=Null where id=%%s" % (self._table), (id,)) - - if not value: - cr.execute("UPDATE %s set rrule_type='none' where id=%%s" % self._table,(id,)) - return True - val = {} - for part in value.split(';'): - if part.lower().__contains__('freq') and len(value.split(';')) <=2: - rrule_type = part.lower()[5:] - break - else: - rrule_type = 'custom' - break - ans = value.split(';') - for i in ans: - val[i.split('=')[0].lower()] = i.split('=')[1].lower() - if not val.get('interval'): - rrule_type = 'custom' - elif int(val.get('interval')) > 1: #If interval is other than 1 rule is custom - rrule_type = 'custom' - - qry = "UPDATE \"%s\" set rrule_type=%%s " % self._table - qry_args = [ rrule_type, ] - new_val = val.copy() - for k, v in val.items(): - if val['freq'] == 'weekly' and val.get('byday'): - for day in val['byday'].split(','): - new_val[day] = True - val.pop('byday') - - if val.get('until'): - until = parser.parse(''.join((re.compile('\d')).findall(val.get('until')))) - new_val['end_date'] = until.strftime('%Y-%m-%d') - val.pop('until') - new_val.pop('until') - - if val.get('bymonthday'): - new_val['day'] = val.get('bymonthday') - val.pop('bymonthday') - new_val['select1'] = 'date' - new_val.pop('bymonthday') - - if val.get('byday'): - d = val.get('byday') - if '-' in d: - new_val['byday'] = d[:2] - new_val['week_list'] = d[2:4].upper() - else: - new_val['byday'] = d[:1] - new_val['week_list'] = d[1:3].upper() - new_val['select1'] = 'day' - - if val.get('bymonth'): - new_val['month_list'] = val.get('bymonth') - val.pop('bymonth') - new_val.pop('bymonth') - - for k, v in new_val.items(): - qry += ", %s=%%s" % k - qry_args.append(v) - - qry = qry + " where id=%s" - qry_args.append(id) - cr.execute(qry, qry_args) + for event_id in ids: + cr.execute("select id from %s where recurrent_uid=%%s" % (self._table), (event_id,)) + r_ids = map(lambda x: x[0], cr.fetchall()) + self.unlink(cr, uid, r_ids, context=context) return True def _get_rulestring(self, cr, uid, ids, name, arg, context=None): @@ -1075,28 +989,15 @@ class calendar_event(osv.osv): @param context: A standard dictionary for contextual values @return: dictionary of rrule value. """ + result = {} - for datas in self.read(cr, uid, ids, context=context): + for datas in self.read(cr, uid, ids, ['id','byday','recurrency', 'month_list','end_date', 'rrule_type', 'select1', 'interval', 'count', 'end_type', 'mo', 'tu', 'we', 'th', 'fr', 'sa', 'su', 'exrule', 'day', 'week_list' ], context=context): event = datas['id'] - if datas.get('rrule_type'): - if datas.get('rrule_type') == 'none': - result[event] = False - cr.execute("UPDATE %s set exrule=Null where id=%%s" % self._table,( event,)) - if datas.get('rrule_type') : - if datas.get('interval', 0) < 0: - raise osv.except_osv(_('Warning!'), _('Interval can not be Negative')) - if datas.get('count', 0) < 0: - raise osv.except_osv(_('Warning!'), _('Count can not be Negative')) - rrule_custom = self.compute_rule_string(cr, uid, datas, \ - context=context) - result[event] = rrule_custom - else: - result[event] = self.compute_rule_string(cr, uid, {'freq': datas.get('rrule_type').upper(), 'interval': 1}, context=context) - - for id, myrule in result.items(): - #Remove the events generated from recurrent event - if not myrule: - self.unlink_events(cr, uid, [id], context=context) + if datas.get('interval', 0) < 0: + raise osv.except_osv(_('Warning!'), _('Interval can not be Negative')) + if datas.get('count', 0) < 0: + raise osv.except_osv(_('Warning!'), _('Count can not be Negative')) + result[event] = self.compute_rule_string(datas) return result _columns = { @@ -1122,14 +1023,10 @@ defines the list of date/time exceptions for a recurring calendar component."), 'exrule': fields.char('Exception Rule', size=352, help="Defines a \ rule or repeating pattern of time to exclude from the recurring rule."), 'rrule': fields.function(_get_rulestring, type='char', size=124, method=True, \ - string='Recurrent Rule', store=True, \ - fnct_inv=_set_rrulestring, help='Defines a\ - rule or repeating pattern for recurring events\n\ -e.g.: Every other month on the last Sunday of the month for 10 occurrences:\ - FREQ=MONTHLY;INTERVAL=2;COUNT=10;BYDAY=-1SU'), + store=True, string='Recurrent Rule'), 'rrule_type': fields.selection([('none', ''), ('daily', 'Daily'), \ ('weekly', 'Weekly'), ('monthly', 'Monthly'), \ - ('yearly', 'Yearly'),], + ('yearly', 'Yearly'),], 'Recurrency', states={'done': [('readonly', True)]}, help="Let the event automatically repeat at that interval"), 'alarm_id': fields.many2one('res.alarm', 'Alarm', states={'done': [('readonly', True)]}, @@ -1141,14 +1038,7 @@ e.g.: Every other month on the last Sunday of the month for 10 occurrences:\ 'user_id': fields.many2one('res.users', 'Responsible', states={'done': [('readonly', True)]}), 'organizer': fields.char("Organizer", size=256, states={'done': [('readonly', True)]}), # Map with Organizer Attribure of VEvent. 'organizer_id': fields.many2one('res.users', 'Organizer', states={'done': [('readonly', True)]}), - 'freq': fields.selection([('None', 'No Repeat'), - ('hourly', 'Hours'), - ('daily', 'Days'), - ('weekly', 'Weeks'), - ('monthly', 'Months'), - ('yearly', 'Years'), ], 'Frequency'), - - 'end_type' : fields.selection([('forever', 'Forever'), ('count', 'Fix amout of times'), ('end_date','End date')], 'Way to end reccurency'), + 'end_type' : fields.selection([('count', 'Fix amout of times'), ('end_date','End date')], 'Way to end reccurency'), 'interval': fields.integer('Repeat every', help="Repeat every (Days/Week/Month/Year)"), 'count': fields.integer('Repeat', help="Repeat x times"), 'mo': fields.boolean('Mon'), @@ -1158,7 +1048,7 @@ e.g.: Every other month on the last Sunday of the month for 10 occurrences:\ 'fr': fields.boolean('Fri'), 'sa': fields.boolean('Sat'), 'su': fields.boolean('Sun'), - 'select1': fields.selection([('date', 'Date of month'), + 'select1': fields.selection([('date', 'Date of month'), ('day', 'Day of month')], 'Option'), 'day': fields.integer('Date of month'), 'week_list': fields.selection([('MO', 'Monday'), ('TU', 'Tuesday'), \ @@ -1175,8 +1065,8 @@ e.g.: Every other month on the last Sunday of the month for 10 occurrences:\ 'allday': fields.boolean('All Day', states={'done': [('readonly', True)]}), '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."), - 'recurrency': fields.boolean('Recurrent', help="Recurrent Meeting"), - 'edit_all': fields.boolean('Edit All', help="Edit all Occurrences of recurrent Meeting."), + 'recurrency': fields.boolean('Recurrent', help="Recurrent Meeting"), + 'edit_all': fields.boolean('Edit All', help="Edit all Occurrences of recurrent Meeting."), } def default_organizer(self, cr, uid, context=None): user_pool = self.pool.get('res.users') @@ -1187,11 +1077,12 @@ e.g.: Every other month on the last Sunday of the month for 10 occurrences:\ return res _defaults = { - 'end_type' : 'forever', + 'end_type' : 'count', + 'count' : 1, + 'rrule_type' : 'none', 'state': 'tentative', 'class': 'public', 'show_as': 'busy', - 'freq': 'None', 'select1': 'date', 'interval': 1, 'active': 1, @@ -1200,43 +1091,7 @@ e.g.: Every other month on the last Sunday of the month for 10 occurrences:\ 'edit_all' : False, } - def onchange_edit_all(self, cr, uid, ids, rrule_type,edit_all, context=None): - if not context: - context = {} - - value = {} - if edit_all and rrule_type: - for id in ids: - base_calendar_id2real_id(id) - return value - - def modify_all(self, cr, uid, event_ids, defaults, context=None, *args): - """ - Modifies the recurring event - @param cr: the current row, from the database cursor, - @param uid: the current user’s ID for security checks, - @param event_ids: List of crm meeting’s IDs. - @param context: A standard dictionary for contextual values - @return: True - """ - for event_id in event_ids: - event_id = base_calendar_id2real_id(event_id) - - defaults.pop('id') - defaults.update({'table': self._table}) - - qry = "UPDATE %(table)s set name = '%(name)s', \ - date = '%(date)s', date_deadline = '%(date_deadline)s'" - if defaults.get('alarm_id'): - qry += ", alarm_id = %(alarm_id)s" - if defaults.get('location'): - qry += ", location = '%(location)s'" - qry += "WHERE id = %s" % (event_id) - cr.execute(qry, defaults) - - return True - - def get_recurrent_ids(self, cr, uid, select, base_start_date, base_until_date, limit=100): + def get_recurrent_ids(self, cr, uid, select, base_start_date, base_until_date, limit=100, context=None): """Gives virtual event ids for recurring events based on value of Recurrence Rule This method gives ids of dates that comes between start date and end date of calendar views @param self: The object pointer @@ -1245,46 +1100,32 @@ e.g.: Every other month on the last Sunday of the month for 10 occurrences:\ @param base_start_date: Get Start Date @param base_until_date: Get End Date @param limit: The Number of Results to Return """ + if not context: + context = {} + + virtual_id = context and context.get('virtual_id', False) or False - if not limit: - limit = 100 if isinstance(select, (str, int, long)): ids = [select] else: ids = select result = [] - recur_dict = [] - if ids and (base_start_date or base_until_date): - cr.execute("select m.id, m.rrule, m.date, m.date_deadline, m.duration, \ - m.exdate, m.exrule, m.recurrent_id, m.recurrent_uid from " + self._table + \ - " m where m.id = ANY(%s)", (ids,) ) - - count = 0 - for data in cr.dictfetchall(): + if ids and virtual_id: + for data in super(calendar_event, self).read(cr, uid, ids, context=context): start_date = base_start_date and datetime.strptime(base_start_date[:10]+ ' 00:00:00' , "%Y-%m-%d %H:%M:%S") or False until_date = base_until_date and datetime.strptime(base_until_date[:10]+ ' 23:59:59', "%Y-%m-%d %H:%M:%S") or False - if count > limit: - break event_date = datetime.strptime(data['date'], "%Y-%m-%d %H:%M:%S") # To check: If the start date is replace by event date .. the event date will be changed by that of calendar code - start_date = event_date + if not data['rrule']: if start_date and (event_date < start_date): continue if until_date and (event_date > until_date): continue - idval = real_id2base_calendar_id(data['id'], data['date']) - if not data['recurrent_id']: - result.append(idval) - count += 1 - else: - ex_id = real_id2base_calendar_id(data['recurrent_uid'], data['recurrent_id']) - ls = base_calendar_id2real_id(ex_id, with_date=data and data.get('duration', 0) or 0) - if not isinstance(ls, (str, int, long)) and len(ls) >= 2: - if ls[1] == data['recurrent_id']: - result.append(idval) - recur_dict.append(ex_id) + idval = data['id'] + result.append(idval) else: + start_date = event_date exdate = data['exdate'] and data['exdate'].split(',') or [] rrule_str = data['rrule'] new_rrule_str = [] @@ -1300,6 +1141,8 @@ e.g.: Every other month on the last Sunday of the month for 10 occurrences:\ until_date = rrule_until_date if until_date: value = until_date.strftime("%Y%m%d%H%M%S") + else: + value = value.strftime("%Y%m%d%H%M%S") new_rule = '%s=%s' % (name, value) new_rrule_str.append(new_rule) if not is_until and until_date: @@ -1309,6 +1152,7 @@ e.g.: Every other month on the last Sunday of the month for 10 occurrences:\ new_rrule_str.append(new_rule) new_rrule_str = ';'.join(new_rrule_str) rdates = get_recurrent_dates(str(new_rrule_str), exdate, start_date, data['exrule']) + for r_date in rdates: if start_date and r_date < start_date: continue @@ -1316,77 +1160,75 @@ e.g.: Every other month on the last Sunday of the month for 10 occurrences:\ continue idval = real_id2base_calendar_id(data['id'], r_date.strftime("%Y-%m-%d %H:%M:%S")) result.append(idval) - count += 1 + if result: - ids = list(set(result)-set(recur_dict)) + ids = list(set(result)) if isinstance(select, (str, int, long)): return ids and ids[0] or False return ids - def compute_rule_string(self, cr, uid, datas, context=None, *args): + def compute_rule_string(self, datas): """ Compute rule string according to value type RECUR of iCalendar from the values given. @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 datas: dictionary of freq and interval value. - @param context: A standard dictionary for contextual values - @return: String value of the format RECUR of iCalendar """ - - weekdays = ['mo', 'tu', 'we', 'th', 'fr', 'sa', 'su'] - weekstring = '' - monthstring = '' - yearstring = '' - freq=datas.get('rrule_type') - if freq == 'none': + + def get_week_string(freq, datas): + weekdays = ['mo', 'tu', 'we', 'th', 'fr', 'sa', 'su'] + if freq == 'weekly': + byday = map(lambda x: x.upper(), filter(lambda x: datas.get(x) and x in weekdays, datas)) + if byday: + return ';BYDAY=' + ','.join(byday) + return '' + + def get_month_string(freq, datas): + if freq == 'monthly': + if datas.get('select1')=='date' and (datas.get('day') < 1 or datas.get('day') > 31): + raise osv.except_osv(_('Error!'), ("Please select proper Day of month")) + + if datas.get('select1')=='day': + return ';BYDAY=' + datas.get('byday') + datas.get('week_list') + elif datas.get('select1')=='date': + return ';BYMONTHDAY=' + str(datas.get('day')) return '' + + def get_end_date(datas): + if datas.get('end_date'): + datas['end_date_new'] = ''.join((re.compile('\d')).findall(datas.get('end_date'))) + 'T235959Z' - interval_srting = datas.get('interval') and (';INTERVAL=' + str(datas.get('interval'))) or '' - - if freq == 'weekly': - byday = map(lambda x: x.upper(), filter(lambda x: datas.get(x) and x in weekdays, datas)) - if byday: - weekstring = ';BYDAY=' + ','.join(byday) - - elif freq == 'monthly': - if datas.get('select1')=='date' and (datas.get('day') < 1 or datas.get('day') > 31): - raise osv.except_osv(_('Error!'), ("Please select proper Day of month")) - if datas.get('select1')=='day': - monthstring = ';BYDAY=' + datas.get('byday') + datas.get('week_list') - elif datas.get('select1')=='date': - monthstring = ';BYMONTHDAY=' + str(datas.get('day')) - + return (datas.get('end_type') == 'count' and (';COUNT=' + str(datas.get('count'))) or '') +\ + ((datas.get('end_date_new') and datas.get('end_type') == 'end_date' and (';UNTIL=' + datas.get('end_date_new'))) or '') - if datas.get('end_date'): - datas['end_date'] = ''.join((re.compile('\d')).findall(datas.get('end_date'))) + 'T235959Z' - enddate = (datas.get('count') and (';COUNT=' + str(datas.get('count'))) or '') +\ - ((datas.get('end_date') and (';UNTIL=' + datas.get('end_date'))) or '') + freq=datas.get('rrule_type') + if freq == 'none': + return '' + interval_srting = datas.get('interval') and (';INTERVAL=' + str(datas.get('interval'))) or '' + return 'FREQ=' + freq.upper() + get_week_string(freq, datas) + interval_srting + get_end_date(datas) + get_month_string(freq, datas) - rrule_string = 'FREQ=' + freq.upper() + weekstring + interval_srting \ - + enddate + monthstring + yearstring - return rrule_string - - def search(self, cr, uid, args, offset=0, limit=100, order=None, + def remove_virtual_id(self, ids): + if isinstance(ids, (str, int)): + return base_calendar_id2real_id(ids) + + if isinstance(ids, (list, tuple)): + res = [] + for id in ids: + res.append(base_calendar_id2real_id(id)) + return res + + def search(self, cr, uid, args, offset=0, limit=0, order=None, context=None, count=False): - """ - Overrides orm search method. - @param cr: the current row, from the database cursor, - @param user: the current user’s ID for security checks, - @param args: list of tuples of form [(‘name_of_the_field’, ‘operator’, value), ...]. - @param offset: The Number of Results to Pass - @param limit: The Number of Results to Return - @param context: A standard dictionary for contextual values - @param count: If its True the method returns number of records instead of ids - @return: List of id - """ args_without_date = [] start_date = False until_date = False for arg in args: - if arg[0] not in ('date', unicode('date'), 'date_deadline', unicode('date_deadline')): + if arg[0] == "id": + new_id = self.remove_virtual_id(arg[2]) + new_arg = (arg[0], arg[1], new_id) + args_without_date.append(new_arg) + elif arg[0] not in ('date', unicode('date'), 'date_deadline', unicode('date_deadline')): args_without_date.append(arg) else: if arg[1] in ('>', '>='): @@ -1397,12 +1239,17 @@ e.g.: Every other month on the last Sunday of the month for 10 occurrences:\ if until_date: continue until_date = arg[2] + res = super(calendar_event, self).search(cr, uid, args_without_date, \ - offset, limit, order, context, count) + 0, 0, order, context, count=False) + res = self.get_recurrent_ids(cr, uid, res, start_date, until_date, limit, context=context) + if count: + return len(res) + elif limit: + return res[offset:offset+limit] + else: + return res - res = self.get_recurrent_ids(cr, uid, res, start_date, until_date, limit) - return res - def get_edit_all(self, cr, uid, id, vals=None): """ @@ -1413,22 +1260,25 @@ e.g.: Every other month on the last Sunday of the month for 10 occurrences:\ if(vals and 'edit_all' in vals): #we jsut check edit_all return vals['edit_all'] else: #it's a recurrent event and edit_all is already check - return meeting['recurrency'] and meeting['edit_all'] + return meeting['recurrency'] and meeting['edit_all'] + def _get_data(self, cr, uid, id, context=None): + res = self.read(cr, uid, [id],['date', 'date_deadline']) + return res[0] - - + def need_to_update(self, event_id, vals): + split_id = str(event_id).split("-") + if len(split_id) < 2: + return False + else: + date_start = vals.get('date', '') + try: + date_start = datetime.strptime(date_start, '%Y-%m-%d %H:%M:%S').strftime("%Y%m%d%H%M%S") + return date_start == split_id[1] + except Exception: + return True + def write(self, cr, uid, ids, vals, context=None, check=True, update_check=True): - """ - Overrides orm write method. - @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 crm meeting's ids - @param vals: Dictionary of field value. - @param context: A standard dictionary for contextual values - @return: True - """ if context is None: context = {} if isinstance(ids, (str, int, long)): @@ -1440,12 +1290,15 @@ e.g.: Every other month on the last Sunday of the month for 10 occurrences:\ for event_id in select: real_event_id = base_calendar_id2real_id(event_id) - - if(self.get_edit_all(cr, uid, event_id, vals=vals)): + edit_all = self.get_edit_all(cr, uid, event_id, vals=vals) + if edit_all: + if self.need_to_update(event_id, vals): + res = self._get_data(cr, uid, real_event_id, context=context) + vals.update(res) event_id = real_event_id - - - if len(str(event_id).split('-')) > 1: + + #if edit one instance of a reccurrent id + if len(str(event_id).split('-')) > 1 and not edit_all: data = self.read(cr, uid, event_id, ['date', 'date_deadline', \ 'rrule', 'duration', 'exdate']) if data.get('rrule'): @@ -1458,15 +1311,15 @@ e.g.: Every other month on the last Sunday of the month for 10 occurrences:\ 'edit_all': False, 'recurrency' : False, }) - + new_id = self.copy(cr, uid, real_event_id, default=data, context=context) - + date_new = event_id.split('-')[1] date_new = time.strftime("%Y%m%dT%H%M%S", \ time.strptime(date_new, "%Y%m%d%H%M%S")) exdate = (data['exdate'] and (data['exdate'] + ',') or '') + date_new res = self.write(cr, uid, [real_event_id], {'exdate': exdate}) - + context.update({'active_id': new_id, 'active_ids': [new_id]}) continue if not real_event_id in new_ids: @@ -1482,10 +1335,6 @@ e.g.: Every other month on the last Sunday of the month for 10 occurrences:\ vals.get('allday', False), context=context) vals.update(updated_vals.get('value', {})) - - if not 'edit_all' in vals: - vals['edit_all'] = False - if new_ids: res = super(calendar_event, self).write(cr, uid, new_ids, vals, context=context) @@ -1494,18 +1343,9 @@ e.g.: Every other month on the last Sunday of the month for 10 occurrences:\ # change alarm details alarm_obj = self.pool.get('res.alarm') alarm_obj.do_alarm_create(cr, uid, new_ids, self._name, 'date', context=context) - return res + return res or True and False def browse(self, cr, uid, ids, context=None, list_class=None, fields_process=None): - """ - Overrides orm browse method. - @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 crm meeting's ids - @param context: A standard dictionary for contextual values - @return: the object list. - """ if isinstance(ids, (str, int, long)): select = [ids] else: @@ -1518,19 +1358,29 @@ e.g.: Every other month on the last Sunday of the month for 10 occurrences:\ return res + def read_group(self, cr, uid, domain, fields, groupby, offset=0, limit=None, context=None, orderby=False): + if not context: + context = {} + + if 'date' in groupby: + raise osv.except_osv(_('Warning !'), _('Group by date not supported, use the calendar view instead')) + virtual_id = context.get('virtual_id', False) + context.update({'virtual_id': False}) + res = super(calendar_event, self).read_group(cr, uid, domain, fields, groupby, offset=offset, limit=limit, context=context, orderby=orderby) + for re in res: + #remove the count, since the value is not consistent with the result of the search when expand the group + for groupname in groupby: + if re.get(groupname + "_count"): + del re[groupname + "_count"] + re.get('__context').update({'virtual_id' : virtual_id}) + return res + def read(self, cr, uid, ids, fields=None, context=None, load='_classic_read'): - """ - Overrides orm Read method.Read List of fields for calendar event. - @param cr: the current row, from the database cursor, - @param user: the current user’s ID for security checks, - @param ids: List of calendar event's id. - @param fields: List of fields. - @param context: A standard dictionary for contextual values - @return: List of Dictionary of form [{‘name_of_the_field’: value, ...}, ...] - """ # FIXME This whole id mangling has to go! if context is None: context = {} + + if isinstance(ids, (str, int, long)): select = [ids] @@ -1544,9 +1394,10 @@ e.g.: Every other month on the last Sunday of the month for 10 occurrences:\ fields.append('duration') - for base_calendar_id, real_id in select: + for base_calendar_id, real_id in select: #REVET: Revision ID: olt@tinyerp.com-20100924131709-cqsd1ut234ni6txn res = super(calendar_event, self).read(cr, uid, real_id, fields=fields, context=context, load=load) + if not res : continue ls = base_calendar_id2real_id(base_calendar_id, with_date=res and res.get('duration', 0) or 0) @@ -1558,41 +1409,34 @@ e.g.: Every other month on the last Sunday of the month for 10 occurrences:\ result.append(res) if isinstance(ids, (str, int, long)): return result and result[0] or False + return result def copy(self, cr, uid, id, default=None, context=None): - """ - Duplicate record on specified id. - @param self: the object pointer. - @param cr: the current row, from the database cursor, - @param id: id of record from which we duplicated. - @param context: A standard dictionary for contextual values - @return: Duplicate record id. - """ if context is None: context = {} + res = super(calendar_event, self).copy(cr, uid, base_calendar_id2real_id(id), default, context) alarm_obj = self.pool.get('res.alarm') alarm_obj.do_alarm_create(cr, uid, [res], self._name, 'date', context=context) - return res - + + def unlink(self, cr, uid, ids, context=None): - """ - Deletes records specified in ids. - @param self: the object pointer. - @param cr: the current row, from the database cursor, - @param id: List of calendar event's id. - @param context: A standard dictionary for contextual values - @return: True - """ - res = False - for event_datas in self.read(cr, uid, ids, ['date', 'rrule', 'exdate'], context=context): - event_id = event_datas['id'] + if not isinstance(ids, list): + ids = [ids] + res = False + for id in ids: + data_list = self.read(cr, uid, [id], ['date', 'rrule', 'exdate'], context=context) + if len(data_list) < 1: + continue + event_data = data_list[0] + event_id = event_data['id'] + if self.get_edit_all(cr, uid, event_id, vals=None): event_id = base_calendar_id2real_id(event_id) - + if isinstance(event_id, (int, long)): res = super(calendar_event, self).unlink(cr, uid, event_id, context=context) self.pool.get('res.alarm').do_alarm_unlink(cr, uid, [event_id], self._name) @@ -1600,11 +1444,11 @@ e.g.: Every other month on the last Sunday of the month for 10 occurrences:\ else: str_event, date_new = event_id.split('-') event_id = int(str_event) - if event_datas['rrule']: + if event_data['rrule']: # Remove one of the recurrent event date_new = time.strftime("%Y%m%dT%H%M%S", \ time.strptime(date_new, "%Y%m%d%H%M%S")) - exdate = (event_datas['exdate'] and (event_datas['exdate'] + ',') or '') + date_new + exdate = (event_data['exdate'] and (event_data['exdate'] + ',') or '') + date_new res = self.write(cr, uid, [event_id], {'exdate': exdate}) else: res = super(calendar_event, self).unlink(cr, uid, [event_id], context=context) @@ -1613,15 +1457,6 @@ e.g.: Every other month on the last Sunday of the month for 10 occurrences:\ return res def create(self, cr, uid, vals, context=None): - """ - Create new record. - @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 vals: dictionary of every field value. - @param context: A standard dictionary for contextual values - @return: new created record id. - """ if context is None: context = {} @@ -1635,11 +1470,13 @@ e.g.: Every other month on the last Sunday of the month for 10 occurrences:\ vals.get('allday', False), context=context) vals.update(updated_vals.get('value', {})) - res = super(calendar_event, self).create(cr, uid, vals, context) alarm_obj = self.pool.get('res.alarm') alarm_obj.do_alarm_create(cr, uid, [res], self._name, 'date', context=context) + return res + + def do_tentative(self, cr, uid, ids, context=None, *args): """ Makes event invitation as Tentative @@ -1710,7 +1547,7 @@ class calendar_todo(osv.osv): @param args: list of tuples of form [(‘name_of_the_field’, ‘operator’, value), ...]. @param context: A standard dictionary for contextual values """ - + assert name == 'date' return self.write(cr, uid, id, { 'date_start': value }, context=context) @@ -1742,9 +1579,9 @@ class ir_attachment(osv.osv): for arg in args: args1.append(map(lambda x:str(x).split('-')[0], arg)) return super(ir_attachment, self).search_count(cr, user, args1, context) - - - + + + def create(self, cr, uid, vals, context=None): if context: id = context.get('default_res_id', False) diff --git a/addons/base_calendar/base_calendar_view.xml b/addons/base_calendar/base_calendar_view.xml index d5525e48e74..451152b2b58 100644 --- a/addons/base_calendar/base_calendar_view.xml +++ b/addons/base_calendar/base_calendar_view.xml @@ -242,8 +242,7 @@ widget="selection" /> - + diff --git a/addons/base_calendar/i18n/tr.po b/addons/base_calendar/i18n/tr.po index 2f343554c2f..ba228085c56 100644 --- a/addons/base_calendar/i18n/tr.po +++ b/addons/base_calendar/i18n/tr.po @@ -8,13 +8,13 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-01-11 11:14+0000\n" -"PO-Revision-Date: 2011-06-20 20:46+0000\n" +"PO-Revision-Date: 2011-06-23 19:26+0000\n" "Last-Translator: Ayhan KIZILTAN \n" "Language-Team: Turkish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-06-21 04:37+0000\n" +"X-Launchpad-Export-Date: 2011-06-24 05:00+0000\n" "X-Generator: Launchpad (build 13168)\n" #. module: base_calendar @@ -925,7 +925,7 @@ msgstr "Yinele" msgid "" "Reference to the URIthat points to the directory information corresponding " "to the attendee." -msgstr "" +msgstr "Katılımcıyla ilgili dizin bilgisine yönlendiren URL ile ilişkilidir." #. module: base_calendar #: selection:base.calendar.set.exrule,month_list:0 @@ -1166,6 +1166,8 @@ msgid "" "If the active field is set to true, it will allow you to hide the event " "alarm information without removing it." msgstr "" +"Etkin alan yanlış olarak ayarlıysa, etkinlik alarmını kaldırmadan " +"gizlemenizi sağlar." #. module: base_calendar #: field:calendar.event,recurrent_id:0 @@ -1253,6 +1255,8 @@ msgid "" "calendar component, than that provided by the " "\"SUMMARY\" property" msgstr "" +"Takvim bileşeninin tanımını \"ÖZET\" özelliğinden eldeedilenden daha tam " +"olarak belirtir." #. module: base_calendar #: view:calendar.event:0 @@ -1327,6 +1331,8 @@ msgstr "Muafşyet Kuralı" msgid "" "To specify the language for text values in aproperty or property parameter." msgstr "" +"Bir özellikteki ya da özellik parametresine ait metin değerlerinin dilini " +"belirler." #. module: base_calendar #: view:calendar.event:0 @@ -1668,6 +1674,12 @@ msgid "" " * Points to a procedure resource, which is invoked when " " the alarm is triggered for procedure." msgstr "" +"* Alarmın ses çalması için tetiklendiği durumuna benzeterek, Bir ses " +"kaynağını işaret eder.\n" +" * Bir epostaya mesal eki olarak gönderilmek istenen " +"dosya,\n" +" * Alarm işlem için tetiklendiğinde işlem kaynağını " +"işaret eder." #. module: base_calendar #: selection:base.calendar.set.exrule,byday:0 diff --git a/addons/base_calendar/test/base_calendar_test.yml b/addons/base_calendar/test/base_calendar_test.yml index 4c0f3fc126f..5512839e635 100644 --- a/addons/base_calendar/test/base_calendar_test.yml +++ b/addons/base_calendar/test/base_calendar_test.yml @@ -15,7 +15,8 @@ Now I will set recurrence for this event to occur monday and friday of week - !python {model: calendar.event}: | - self.write(cr, uid, [ref("calendar_event_technicalpresentation0")], {'fr': 1, 'mo': 1, 'interval': 1, 'rrule_type': 'weekly'}) + data = {'fr': 1, 'mo': 1, 'interval': 1, 'rrule_type': 'weekly', 'end_type': 'end_date', 'end_date': '2011-05-31 00:00:00'} + self.write(cr, uid, [ref("calendar_event_technicalpresentation0")], data) - | In order to check that recurrent events are views successfully in calendar view, I will open calendar view of events @@ -27,7 +28,7 @@ I will search for one of the recurrent event and count the number of events - !python {model: calendar.event}: | - ids = self.search(cr, uid, [('date', '>=', '2011-04-30 16:00:00'), ('date', '<=', '2011-05-31 00:00:00')] ) + ids = self.search(cr, uid, [('date', '>=', '2011-04-30 16:00:00'), ('date', '<=', '2011-05-31 00:00:00')], context={'virtual_id': True} ) assert len(ids) == 9 - | Now I will make All day event and test it diff --git a/addons/base_calendar/wizard/__init__.py b/addons/base_calendar/wizard/__init__.py index 8b45dc18a17..cd0690b1dc0 100644 --- a/addons/base_calendar/wizard/__init__.py +++ b/addons/base_calendar/wizard/__init__.py @@ -19,9 +19,7 @@ # ############################################################################## -import calendar_event_edit_all import base_calendar_invite_attendee -import base_calendar_set_exrule # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/base_calendar/wizard/base_calendar_set_exrule.py b/addons/base_calendar/wizard/base_calendar_set_exrule.py deleted file mode 100644 index 80fe1e44720..00000000000 --- a/addons/base_calendar/wizard/base_calendar_set_exrule.py +++ /dev/null @@ -1,163 +0,0 @@ -# -*- coding: utf-8 -*- -############################################################################## -# -# OpenERP, Open Source Management Solution -# Copyright (C) 2004-2009 Tiny SPRL (). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -############################################################################## - -from base_calendar import base_calendar -from osv import fields, osv -from tools.translate import _ -import tools -import re - - -months = { - 1: "January", 2: "February", 3: "March", 4: "April", \ - 5: "May", 6: "June", 7: "July", 8: "August", 9: "September", \ - 10: "October", 11: "November", 12: "December" -} - -class base_calendar_set_exrule(osv.osv_memory): - """ - Set Exrule. - """ - - _name = "base.calendar.set.exrule" - _description = "Set Exrule" - - _columns = { - 'freq': fields.selection([('None', 'No Repeat'), \ - ('secondly', 'Secondly'), \ - ('minutely', 'Minutely'), \ - ('hourly', 'Hourly'), \ - ('daily', 'Daily'), \ - ('weekly', 'Weekly'), \ - ('monthly', 'Monthly'), \ - ('yearly', 'Yearly')], 'Frequency',required=True), - 'interval': fields.integer('Interval'), - 'count': fields.integer('Count'), - 'mo': fields.boolean('Mon'), - 'tu': fields.boolean('Tue'), - 'we': fields.boolean('Wed'), - 'th': fields.boolean('Thu'), - 'fr': fields.boolean('Fri'), - 'sa': fields.boolean('Sat'), - 'su': fields.boolean('Sun'), - 'select1': fields.selection([('date', 'Date of month'), \ - ('day', 'Day of month')], 'Option'), - 'day': fields.integer('Date of month'), - 'week_list': fields.selection([('MO', 'Monday'), ('TU', 'Tuesday'), \ - ('WE', 'Wednesday'), ('TH', 'Thursday'), \ - ('FR', 'Friday'), ('SA', 'Saturday'), \ - ('SU', 'Sunday')], 'Weekday'), - 'byday': fields.selection([('1', 'First'), ('2', 'Second'), \ - ('3', 'Third'), ('4', 'Fourth'), \ - ('5', 'Fifth'), ('-1', 'Last')], 'By day'), - 'month_list': fields.selection(months.items(),'Month'), - 'end_date': fields.date('Repeat Until'), - - } - - def view_init(self, cr, uid, fields, context=None): - """ - This function checks for precondition before wizard executes - @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 fields: List of fields for default value - @param context: A standard dictionary for contextual values - """ - if context is None: - context = {} - event_obj = self.pool.get(context.get('active_model')) - for event in event_obj.browse(cr, uid, context.get('active_ids', []), context=context): - if not event.rrule: - raise osv.except_osv(_("Warning !"), _("Please Apply Recurrency before applying Exception Rule.")) - return False - - def compute_exrule_string(self, cr, uid, ids, context=None): - """ - Compute rule string. - @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 datas: dictionary of freq and interval value. - @return: string value which compute FREQILY;INTERVAL - """ - - weekdays = ['mo', 'tu', 'we', 'th', 'fr', 'sa', 'su'] - weekstring = '' - monthstring = '' - yearstring = '' - if context is None: - context = {} - ex_id = base_calendar.base_calendar_id2real_id(context.get('active_id', False)) - model = context.get('model', False) - model_obj = self.pool.get(model) - for datas in self.read(cr, uid, ids, context=context): - freq = datas.get('freq') - if freq == 'None': - model_obj.write(cr, uid, ex_id,{'exrule': ''}) - return{} - - interval_srting = datas.get('interval') and (';INTERVAL=' + str(datas.get('interval'))) or '' - - if freq == 'weekly': - - byday = map(lambda x: x.upper(), filter(lambda x: datas.get(x) and x in weekdays, datas)) - if byday: - weekstring = ';BYDAY=' + ','.join(byday) - - elif freq == 'monthly': - if datas.get('select1')=='date' and (datas.get('day') < 1 or datas.get('day') > 31): - raise osv.except_osv(_('Error!'), ("Please select proper Day of month")) - if datas.get('select1')=='day': - monthstring = ';BYDAY=' + datas.get('byday') + datas.get('week_list') - elif datas.get('select1')=='date': - monthstring = ';BYMONTHDAY=' + str(datas.get('day')) - - elif freq == 'yearly': - if datas.get('select1')=='date' and (datas.get('day') < 1 or datas.get('day') > 31): - raise osv.except_osv(_('Error!'), ("Please select proper Day of month")) - bymonth = ';BYMONTH=' + str(datas.get('month_list')) - if datas.get('select1')=='day': - bystring = ';BYDAY=' + datas.get('byday') + datas.get('week_list') - elif datas.get('select1')=='date': - bystring = ';BYMONTHDAY=' + str(datas.get('day')) - yearstring = bymonth + bystring - - if datas.get('end_date'): - datas['end_date'] = ''.join((re.compile('\d')).findall(datas.get('end_date'))) + '235959Z' - enddate = (datas.get('count') and (';COUNT=' + str(datas.get('count'))) or '') +\ - ((datas.get('end_date') and (';UNTIL=' + datas.get('end_date'))) or '') - - exrule_string = 'FREQ=' + freq.upper() + weekstring + interval_srting \ - + enddate + monthstring + yearstring - - model_obj.write(cr, uid, ex_id,{'exrule': exrule_string}) - return {'type': 'ir.actions.act_window_close'} - - _defaults = { - 'freq': lambda *x: 'None', - 'select1': lambda *x: 'date', - 'interval': lambda *x: 1, - } - -base_calendar_set_exrule() - -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: \ No newline at end of file diff --git a/addons/base_calendar/wizard/base_calendar_set_exrule_view.xml b/addons/base_calendar/wizard/base_calendar_set_exrule_view.xml deleted file mode 100644 index 2a2d6412d4b..00000000000 --- a/addons/base_calendar/wizard/base_calendar_set_exrule_view.xml +++ /dev/null @@ -1,71 +0,0 @@ - - - - - base.calendar.set.exrule.form - base.calendar.set.exrule - form - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -