\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-11-05 05:22+0000\n"
-"X-Generator: Launchpad (build 14231)\n"
+"X-Launchpad-Export-Date: 2011-12-09 04:45+0000\n"
+"X-Generator: Launchpad (build 14450)\n"
#. module: account_invoice_layout
#: selection:account.invoice.line,state:0
msgid "Sub Total"
-msgstr "Međuzbroj"
+msgstr "Podzbroj"
#. module: account_invoice_layout
#: report:account.invoice.layout:0
#: report:notify_account.invoice:0
msgid "Note:"
-msgstr "Bilješka:"
+msgstr "Napomena:"
#. module: account_invoice_layout
#: report:account.invoice.layout:0
#: report:notify_account.invoice:0
msgid "Cancelled Invoice"
-msgstr "Poništeni račun"
+msgstr "Otkazani račun"
#. module: account_invoice_layout
#: selection:account.invoice.line,state:0
#: field:notify.message,name:0
msgid "Title"
-msgstr ""
+msgstr "Naslov"
#. module: account_invoice_layout
#: model:ir.actions.act_window,name:account_invoice_layout.action_account_invoice_special_msg
@@ -49,7 +49,7 @@ msgstr "Fakure sa izgledom i porukom"
#: report:account.invoice.layout:0
#: report:notify_account.invoice:0
msgid "Disc. (%)"
-msgstr "Popust (%)"
+msgstr "Pop.(%)"
#. module: account_invoice_layout
#: selection:account.invoice.line,state:0
@@ -59,13 +59,13 @@ msgstr "Bilješka"
#. module: account_invoice_layout
#: model:ir.model,name:account_invoice_layout.model_notify_message
msgid "Notify By Messages"
-msgstr ""
+msgstr "Obavijesti po porukama"
#. module: account_invoice_layout
#: help:notify.message,msg:0
msgid ""
"This notification will appear at the bottom of the Invoices when printed."
-msgstr "Ova poruka će se pojaviti na dnu ispisanih faktura."
+msgstr "Ova poruka će se ispisati na podnožju računa."
#. module: account_invoice_layout
#: report:account.invoice.layout:0
@@ -97,132 +97,132 @@ msgstr ""
#: report:account.invoice.layout:0
#: report:notify_account.invoice:0
msgid "VAT :"
-msgstr ""
+msgstr "PDV :"
#. module: account_invoice_layout
#: report:account.invoice.layout:0
#: report:notify_account.invoice:0
msgid "Tel. :"
-msgstr ""
+msgstr "Tel.:"
#. module: account_invoice_layout
#: report:account.invoice.layout:0
#: report:notify_account.invoice:0
msgid "PRO-FORMA"
-msgstr ""
+msgstr "Pro-forma"
#. module: account_invoice_layout
#: field:account.invoice,abstract_line_ids:0
msgid "Invoice Lines"
-msgstr ""
+msgstr "Stavke računa"
#. module: account_invoice_layout
#: view:account.invoice.line:0
msgid "Seq."
-msgstr ""
+msgstr "R.br."
#. module: account_invoice_layout
#: model:ir.ui.menu,name:account_invoice_layout.menu_finan_config_notify_message
msgid "Notification Message"
-msgstr ""
+msgstr "Notification Message"
#. module: account_invoice_layout
#: selection:account.invoice.line,state:0
msgid "Product"
-msgstr ""
+msgstr "Proizvod"
#. module: account_invoice_layout
#: report:account.invoice.layout:0
#: report:notify_account.invoice:0
msgid "Description"
-msgstr ""
+msgstr "Opis"
#. module: account_invoice_layout
#: help:account.invoice.line,sequence:0
msgid "Gives the sequence order when displaying a list of invoice lines."
-msgstr ""
+msgstr "Gives the sequence order when displaying a list of invoice lines."
#. module: account_invoice_layout
#: report:account.invoice.layout:0
#: report:notify_account.invoice:0
msgid "Price"
-msgstr ""
+msgstr "Cijena"
#. module: account_invoice_layout
#: report:account.invoice.layout:0
#: report:notify_account.invoice:0
msgid "Invoice Date"
-msgstr ""
+msgstr "Datum računa"
#. module: account_invoice_layout
#: report:account.invoice.layout:0
msgid "Taxes:"
-msgstr ""
+msgstr "Porezi:"
#. module: account_invoice_layout
#: field:account.invoice.line,functional_field:0
msgid "Source Account"
-msgstr ""
+msgstr "Konto"
#. module: account_invoice_layout
#: model:ir.actions.act_window,name:account_invoice_layout.notify_mesage_tree_form
msgid "Write Messages"
-msgstr ""
+msgstr "Write Messages"
#. module: account_invoice_layout
#: report:account.invoice.layout:0
#: report:notify_account.invoice:0
msgid "Base"
-msgstr ""
+msgstr "Osnovica"
#. module: account_invoice_layout
#: selection:account.invoice.line,state:0
msgid "Page Break"
-msgstr ""
+msgstr "Page Break"
#. module: account_invoice_layout
#: view:notify.message:0
#: field:notify.message,msg:0
msgid "Special Message"
-msgstr ""
+msgstr "Posebna poruka"
#. module: account_invoice_layout
#: help:account.invoice.special.msg,message:0
msgid "Message to Print at the bottom of report"
-msgstr ""
+msgstr "Poruka na kraju ispisa"
#. module: account_invoice_layout
#: report:account.invoice.layout:0
#: report:notify_account.invoice:0
msgid "Quantity"
-msgstr ""
+msgstr "Količina"
#. module: account_invoice_layout
#: report:account.invoice.layout:0
#: report:notify_account.invoice:0
msgid "Refund"
-msgstr ""
+msgstr "Povrat novca"
#. module: account_invoice_layout
#: report:account.invoice.layout:0
#: report:notify_account.invoice:0
msgid "Fax :"
-msgstr ""
+msgstr "Fax:"
#. module: account_invoice_layout
#: report:account.invoice.layout:0
msgid "Total:"
-msgstr ""
+msgstr "Ukupno:"
#. module: account_invoice_layout
#: view:account.invoice.special.msg:0
msgid "Select Message"
-msgstr ""
+msgstr "Select Message"
#. module: account_invoice_layout
#: view:notify.message:0
msgid "Messages"
-msgstr ""
+msgstr "Messages"
#. module: account_invoice_layout
#: model:ir.actions.report.xml,name:account_invoice_layout.account_invoices_1
@@ -233,66 +233,66 @@ msgstr ""
#: report:account.invoice.layout:0
#: report:notify_account.invoice:0
msgid "Description / Taxes"
-msgstr ""
+msgstr "Opis/Porezi"
#. module: account_invoice_layout
#: report:account.invoice.layout:0
#: report:notify_account.invoice:0
msgid "Amount"
-msgstr ""
+msgstr "Iznos"
#. module: account_invoice_layout
#: model:notify.message,msg:account_invoice_layout.demo_message1
msgid "ERP & CRM Solutions..."
-msgstr ""
+msgstr "ERP & CRM Solutions..."
#. module: account_invoice_layout
#: report:notify_account.invoice:0
msgid "Net Total :"
-msgstr ""
+msgstr "Net Total :"
#. module: account_invoice_layout
#: report:notify_account.invoice:0
msgid "Total :"
-msgstr ""
+msgstr "Ukupno :"
#. module: account_invoice_layout
#: report:account.invoice.layout:0
#: report:notify_account.invoice:0
msgid "Draft Invoice"
-msgstr ""
+msgstr "Nacrt računa"
#. module: account_invoice_layout
#: field:account.invoice.line,sequence:0
msgid "Sequence Number"
-msgstr ""
+msgstr "Redni br."
#. module: account_invoice_layout
#: model:ir.model,name:account_invoice_layout.model_account_invoice_special_msg
msgid "Account Invoice Special Message"
-msgstr ""
+msgstr "Posebna poruka na računu"
#. module: account_invoice_layout
#: report:account.invoice.layout:0
#: report:notify_account.invoice:0
msgid "Origin"
-msgstr ""
+msgstr "Izvor"
#. module: account_invoice_layout
#: field:account.invoice.line,state:0
msgid "Type"
-msgstr ""
+msgstr "Vrsta"
#. module: account_invoice_layout
#: selection:account.invoice.line,state:0
msgid "Separator Line"
-msgstr ""
+msgstr "Separator Line"
#. module: account_invoice_layout
#: report:account.invoice.layout:0
#: report:notify_account.invoice:0
msgid "Your Reference"
-msgstr ""
+msgstr "Vaša oznaka"
#. module: account_invoice_layout
#: model:ir.module.module,shortdesc:account_invoice_layout.module_meta_information
@@ -303,63 +303,63 @@ msgstr ""
#: report:account.invoice.layout:0
#: report:notify_account.invoice:0
msgid "Supplier Invoice"
-msgstr ""
+msgstr "Ulazni račun"
#. module: account_invoice_layout
#: view:account.invoice.special.msg:0
msgid "Print"
-msgstr ""
+msgstr "Ispis"
#. module: account_invoice_layout
#: report:account.invoice.layout:0
#: report:notify_account.invoice:0
msgid "Tax"
-msgstr ""
+msgstr "Porez"
#. module: account_invoice_layout
#: model:ir.model,name:account_invoice_layout.model_account_invoice_line
msgid "Invoice Line"
-msgstr ""
+msgstr "Stavka računa"
#. module: account_invoice_layout
#: report:account.invoice.layout:0
msgid "Net Total:"
-msgstr ""
+msgstr "Ukupno netto:"
#. module: account_invoice_layout
#: view:notify.message:0
msgid "Write a notification or a wishful message."
-msgstr ""
+msgstr "Write a notification or a wishful message."
#. module: account_invoice_layout
#: report:account.invoice.layout:0
#: model:ir.model,name:account_invoice_layout.model_account_invoice
#: report:notify_account.invoice:0
msgid "Invoice"
-msgstr ""
+msgstr "Račun"
#. module: account_invoice_layout
#: view:account.invoice.special.msg:0
msgid "Cancel"
-msgstr ""
+msgstr "Odustani"
#. module: account_invoice_layout
#: report:account.invoice.layout:0
#: report:notify_account.invoice:0
msgid "Supplier Refund"
-msgstr ""
+msgstr "Povrat URA"
#. module: account_invoice_layout
#: field:account.invoice.special.msg,message:0
msgid "Message"
-msgstr ""
+msgstr "Poruka"
#. module: account_invoice_layout
#: report:notify_account.invoice:0
msgid "Taxes :"
-msgstr ""
+msgstr "Taxes :"
#. module: account_invoice_layout
#: model:ir.ui.menu,name:account_invoice_layout.menu_notify_mesage_tree_form
msgid "All Notification Messages"
-msgstr ""
+msgstr "Sve poruke"
diff --git a/addons/account_invoice_layout/report/report_account_invoice_layout.rml b/addons/account_invoice_layout/report/report_account_invoice_layout.rml
index c2dc0e036bb..6a8a286b66c 100644
--- a/addons/account_invoice_layout/report/report_account_invoice_layout.rml
+++ b/addons/account_invoice_layout/report/report_account_invoice_layout.rml
@@ -193,11 +193,7 @@
[[ (o.partner_id and o.partner_id.title and o.partner_id.title.name) or '' ]] [[ (o.partner_id and o.partner_id.name) or '' ]]
- [[ (o.address_invoice_id and o.address_invoice_id.street) or '' ]]
- [[ (o.address_invoice_id and o.address_invoice_id.street2) or removeParentNode('para') ]]
- [[ (o.address_invoice_id and o.address_invoice_id.zip) or '' ]] [[ (o.address_invoice_id and o.address_invoice_id.city) or '' ]]
- [[ (o.address_invoice_id and o.address_invoice_id.state_id and o.address_invoice_id.state_id.name) or removeParentNode('para') ]]
- [[ (o.address_invoice_id and o.address_invoice_id.country_id and o.address_invoice_id.country_id.name) or '' ]]
+ [[ display_address(o.address_invoice_id) ]]
@@ -235,7 +231,7 @@
Origin
- Your Reference
+ Customer Code
diff --git a/addons/account_invoice_layout/report/special_message_invoice.rml b/addons/account_invoice_layout/report/special_message_invoice.rml
index c6fc9d236fc..bfef662db85 100644
--- a/addons/account_invoice_layout/report/special_message_invoice.rml
+++ b/addons/account_invoice_layout/report/special_message_invoice.rml
@@ -197,11 +197,7 @@
[[ (o.partner_id and o.partner_id.title and o.partner_id.title.name) or '' ]] [[ (o.partner_id and o.partner_id.name) or '' ]]
- [[ (o.address_invoice_id and o.address_invoice_id.street) or '' ]]
- [[ (o.address_invoice_id and o.address_invoice_id.street2) or removeParentNode('para') ]]
- [[ (o.address_invoice_id and o.address_invoice_id.zip) or '' ]] [[ (o.address_invoice_id and o.address_invoice_id.city) or '' ]]
- [[ (o.address_invoice_id and o.address_invoice_id.state_id and o.address_invoice_id.state_id.name) or removeParentNode('para') ]]
- [[ (o.address_invoice_id and o.address_invoice_id.country_id and o.address_invoice_id.country_id.name) or '' ]]
+ [[ display_address(o.address_invoice_id) ]]
diff --git a/addons/account_invoice_layout/security/ir.model.access.csv b/addons/account_invoice_layout/security/ir.model.access.csv
index c838392e6eb..98878fc91bf 100644
--- a/addons/account_invoice_layout/security/ir.model.access.csv
+++ b/addons/account_invoice_layout/security/ir.model.access.csv
@@ -1,2 +1,2 @@
-id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
-access_notify_message,notify.message,model_notify_message,account.group_account_invoice,1,1,1,1
+id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
+access_notify_message,notify.message,model_notify_message,account.group_account_invoice,1,1,1,1
diff --git a/addons/account_payment/account_payment_view.xml b/addons/account_payment/account_payment_view.xml
index 4881adc4ad1..3fc2d716e66 100644
--- a/addons/account_payment/account_payment_view.xml
+++ b/addons/account_payment/account_payment_view.xml
@@ -322,7 +322,5 @@
-
-
diff --git a/addons/account_payment/i18n/hr.po b/addons/account_payment/i18n/hr.po
index fbb8a4251ac..02d1ade77aa 100644
--- a/addons/account_payment/i18n/hr.po
+++ b/addons/account_payment/i18n/hr.po
@@ -7,19 +7,19 @@ 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-01-17 01:09+0000\n"
+"PO-Revision-Date: 2011-12-08 17:06+0000\n"
"Last-Translator: Goran Kliska \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-11-05 05:21+0000\n"
-"X-Generator: Launchpad (build 14231)\n"
+"X-Launchpad-Export-Date: 2011-12-09 04:45+0000\n"
+"X-Generator: Launchpad (build 14450)\n"
#. module: account_payment
#: field:payment.order,date_scheduled:0
msgid "Scheduled date if fixed"
-msgstr "Zakazani datum ako je fiskno"
+msgstr "Zakazani datum ako je fiksno"
#. module: account_payment
#: field:payment.line,currency:0
@@ -29,7 +29,7 @@ msgstr "Valuta partnera"
#. module: account_payment
#: view:payment.order:0
msgid "Set to draft"
-msgstr "Stavi u pripremu"
+msgstr "Postavi na nacrt"
#. module: account_payment
#: help:payment.order,mode:0
@@ -55,7 +55,7 @@ msgstr ""
#. module: account_payment
#: field:payment.order,line_ids:0
msgid "Payment lines"
-msgstr "Retci plaćanja"
+msgstr "Redci plaćanja"
#. module: account_payment
#: view:payment.line:0
@@ -71,6 +71,9 @@ msgid ""
" Once the bank is confirmed the state is set to 'Confirmed'.\n"
" Then the order is paid the state is 'Done'."
msgstr ""
+"When an order is placed the state is 'Draft'.\n"
+" Once the bank is confirmed the state is set to 'Confirmed'.\n"
+" Then the order is paid the state is 'Done'."
#. module: account_payment
#: help:account.invoice,amount_to_pay:0
@@ -84,7 +87,7 @@ msgstr ""
#. module: account_payment
#: field:payment.mode,company_id:0
msgid "Company"
-msgstr "Tvrtka"
+msgstr "Organizacija"
#. module: account_payment
#: field:payment.order,date_prefered:0
@@ -104,7 +107,7 @@ msgstr "Stavke"
#. module: account_payment
#: report:payment.order:0
msgid "Used Account"
-msgstr ""
+msgstr "Used Account"
#. module: account_payment
#: field:payment.line,ml_maturity_date:0
@@ -115,23 +118,23 @@ msgstr "Datum dospijeća"
#. module: account_payment
#: constraint:account.move.line:0
msgid "You can not create move line on closed account."
-msgstr ""
+msgstr "Ne možete kreirati stavke prometa za zatvoreni račun."
#. module: account_payment
#: view:account.move.line:0
msgid "Account Entry Line"
-msgstr "Stavke knjiženja"
+msgstr "Stavke"
#. module: account_payment
#: view:payment.order.create:0
msgid "_Add to payment order"
-msgstr ""
+msgstr "_Dodaj na nalog za plaćanje"
#. module: account_payment
#: model:ir.actions.act_window,name:account_payment.action_account_payment_populate_statement
#: model:ir.actions.act_window,name:account_payment.action_account_populate_statement_confirm
msgid "Payment Populate statement"
-msgstr ""
+msgstr "Popuni nalog za plaćanje"
#. module: account_payment
#: report:payment.order:0
@@ -142,17 +145,17 @@ msgstr "Iznos"
#. module: account_payment
#: sql_constraint:account.move.line:0
msgid "Wrong credit or debit value in accounting entry !"
-msgstr ""
+msgstr "Pogrešno kreditna ili debitnom vrijednost unešene stavke!"
#. module: account_payment
#: view:payment.order:0
msgid "Total in Company Currency"
-msgstr "Ukupno u valuti tvrtke"
+msgstr "Ukupno u valuti organizacije"
#. module: account_payment
#: selection:payment.order,state:0
msgid "Cancelled"
-msgstr "Poništeno"
+msgstr "Otkazani"
#. module: account_payment
#: model:ir.actions.act_window,name:account_payment.action_payment_order_tree_new
@@ -163,12 +166,12 @@ msgstr "Novi nalog za plaćanje"
#: report:payment.order:0
#: field:payment.order,reference:0
msgid "Reference"
-msgstr "Veza"
+msgstr "Vezna oznaka"
#. module: account_payment
#: sql_constraint:payment.line:0
msgid "The payment line name must be unique!"
-msgstr ""
+msgstr "Naziv stavke plaćanja mora biti jedinstven!"
#. module: account_payment
#: model:ir.actions.act_window,name:account_payment.action_payment_order_tree
@@ -225,7 +228,7 @@ msgstr "Stanje"
#: view:payment.line:0
#: view:payment.order:0
msgid "Transaction Information"
-msgstr "Podatci o transakciji"
+msgstr "Podaci o transakciji"
#. module: account_payment
#: model:ir.actions.act_window,name:account_payment.action_payment_mode_form
@@ -244,7 +247,7 @@ msgstr "Efektivni datum"
#. module: account_payment
#: field:payment.line,ml_inv_ref:0
msgid "Invoice Ref."
-msgstr ""
+msgstr "Poziv na br."
#. module: account_payment
#: help:payment.order,date_prefered:0
@@ -276,7 +279,7 @@ msgstr "Datum izvršenja"
#. module: account_payment
#: help:payment.mode,journal:0
msgid "Bank or Cash Journal for the Payment Mode"
-msgstr ""
+msgstr "Dnevnik banke ili blagajne za način plaćanja"
#. module: account_payment
#: selection:payment.order,date_prefered:0
@@ -297,7 +300,7 @@ msgstr "Ciljni konto"
#. module: account_payment
#: view:payment.order:0
msgid "Search Payment Orders"
-msgstr ""
+msgstr "Traži naloge za plaćanje"
#. module: account_payment
#: constraint:account.move.line:0
@@ -323,12 +326,12 @@ msgstr "Ukupni iznos u valuti"
#. module: account_payment
#: view:payment.order:0
msgid "Make Payments"
-msgstr "Napravite plaćanja"
+msgstr "Kreiraj plaćanja"
#. module: account_payment
#: field:payment.line,state:0
msgid "Communication Type"
-msgstr "Vrsta veze"
+msgstr "Vrsta komunikacije"
#. module: account_payment
#: model:ir.module.module,shortdesc:account_payment.module_meta_information
@@ -338,32 +341,32 @@ msgstr ""
#. module: account_payment
#: field:payment.line,bank_statement_line_id:0
msgid "Bank statement line"
-msgstr ""
+msgstr "Redak bankovnog izvoda"
#. module: account_payment
#: selection:payment.order,date_prefered:0
msgid "Due date"
-msgstr ""
+msgstr "Datum dospijeća"
#. module: account_payment
#: field:account.invoice,amount_to_pay:0
msgid "Amount to be paid"
-msgstr ""
+msgstr "Za uplatu"
#. module: account_payment
#: report:payment.order:0
msgid "Currency"
-msgstr ""
+msgstr "Valuta"
#. module: account_payment
#: view:account.payment.make.payment:0
msgid "Yes"
-msgstr ""
+msgstr "Da"
#. module: account_payment
#: help:payment.line,info_owner:0
msgid "Address of the Main Partner"
-msgstr ""
+msgstr "Address of the Main Partner"
#. module: account_payment
#: help:payment.line,date:0
@@ -371,42 +374,44 @@ msgid ""
"If no payment date is specified, the bank will treat this payment line "
"directly"
msgstr ""
+"If no payment date is specified, the bank will treat this payment line "
+"directly"
#. module: account_payment
#: model:ir.model,name:account_payment.model_account_payment_populate_statement
msgid "Account Payment Populate Statement"
-msgstr ""
+msgstr "Popuni izvod plaćanja"
#. module: account_payment
#: help:payment.mode,name:0
msgid "Mode of Payment"
-msgstr ""
+msgstr "Način plaćanja"
#. module: account_payment
#: report:payment.order:0
msgid "Value Date"
-msgstr ""
+msgstr "Value Date"
#. module: account_payment
#: report:payment.order:0
msgid "Payment Type"
-msgstr ""
+msgstr "Uvjet plaćanja"
#. module: account_payment
#: help:payment.line,amount_currency:0
msgid "Payment amount in the partner currency"
-msgstr ""
+msgstr "Iznos plaćanja u partnerovoj valuti"
#. module: account_payment
#: view:payment.order:0
#: selection:payment.order,state:0
msgid "Draft"
-msgstr ""
+msgstr "Nacrt"
#. module: account_payment
#: help:payment.line,communication2:0
msgid "The successor message of Communication."
-msgstr ""
+msgstr "The successor message of Communication."
#. module: account_payment
#: code:addons/account_payment/account_move_line.py:110
@@ -417,43 +422,43 @@ msgstr ""
#. module: account_payment
#: help:payment.line,info_partner:0
msgid "Address of the Ordering Customer."
-msgstr ""
+msgstr "Adresa Uplatitelja"
#. module: account_payment
#: view:account.payment.populate.statement:0
msgid "Populate Statement:"
-msgstr ""
+msgstr "Populate Statement:"
#. module: account_payment
#: view:account.move.line:0
msgid "Total credit"
-msgstr ""
+msgstr "Ukupno potražuje"
#. module: account_payment
#: help:payment.order,date_scheduled:0
msgid "Select a date if you have chosen Preferred Date to be fixed."
-msgstr ""
+msgstr "Select a date if you have chosen Preferred Date to be fixed."
#. module: account_payment
#: field:payment.order,user_id:0
msgid "User"
-msgstr ""
+msgstr "Korisnik"
#. module: account_payment
#: field:account.payment.populate.statement,lines:0
#: model:ir.actions.act_window,name:account_payment.act_account_invoice_2_payment_line
msgid "Payment Lines"
-msgstr ""
+msgstr "Stavke plaćanja"
#. module: account_payment
#: model:ir.model,name:account_payment.model_account_move_line
msgid "Journal Items"
-msgstr ""
+msgstr "Stavke glavne knjige"
#. module: account_payment
#: constraint:account.move.line:0
msgid "Company must be same for its related account and period."
-msgstr ""
+msgstr "Company must be same for its related account and period."
#. module: account_payment
#: help:payment.line,move_line_id:0
@@ -461,104 +466,106 @@ msgid ""
"This Entry Line will be referred for the information of the ordering "
"customer."
msgstr ""
+"This Entry Line will be referred for the information of the ordering "
+"customer."
#. module: account_payment
#: view:payment.order.create:0
msgid "Search"
-msgstr ""
+msgstr "Search"
#. module: account_payment
#: model:ir.actions.report.xml,name:account_payment.payment_order1
#: model:ir.model,name:account_payment.model_payment_order
msgid "Payment Order"
-msgstr ""
+msgstr "Nalog za plaćanje"
#. module: account_payment
#: field:payment.line,date:0
msgid "Payment Date"
-msgstr ""
+msgstr "Datum plaćanja"
#. module: account_payment
#: report:payment.order:0
msgid "Total:"
-msgstr ""
+msgstr "Ukupno:"
#. module: account_payment
#: field:payment.order,date_created:0
msgid "Creation date"
-msgstr ""
+msgstr "Datum kreiranja"
#. module: account_payment
#: view:account.payment.populate.statement:0
msgid "ADD"
-msgstr ""
+msgstr "ADD"
#. module: account_payment
#: view:account.bank.statement:0
msgid "Import payment lines"
-msgstr ""
+msgstr "Uvezi linije plaćanja"
#. module: account_payment
#: field:account.move.line,amount_to_pay:0
msgid "Amount to pay"
-msgstr ""
+msgstr "Iznos za platiti"
#. module: account_payment
#: field:payment.line,amount:0
msgid "Amount in Company Currency"
-msgstr ""
+msgstr "Iznos u valuti organizacije"
#. module: account_payment
#: help:payment.line,partner_id:0
msgid "The Ordering Customer"
-msgstr ""
+msgstr "The Ordering Customer"
#. module: account_payment
#: model:ir.model,name:account_payment.model_account_payment_make_payment
msgid "Account make payment"
-msgstr ""
+msgstr "Plaćanje"
#. module: account_payment
#: report:payment.order:0
msgid "Invoice Ref"
-msgstr ""
+msgstr "Poziv na br."
#. module: account_payment
#: field:payment.line,name:0
msgid "Your Reference"
-msgstr ""
+msgstr "Vaša oznaka"
#. module: account_payment
#: field:payment.order,mode:0
msgid "Payment mode"
-msgstr ""
+msgstr "Vrsta plaćanja"
#. module: account_payment
#: view:payment.order:0
msgid "Payment order"
-msgstr ""
+msgstr "Nalog za plaćanje"
#. module: account_payment
#: view:payment.line:0
#: view:payment.order:0
msgid "General Information"
-msgstr ""
+msgstr "Opći podaci"
#. module: account_payment
#: view:payment.order:0
#: selection:payment.order,state:0
msgid "Done"
-msgstr ""
+msgstr "Izvršeno"
#. module: account_payment
#: model:ir.model,name:account_payment.model_account_invoice
msgid "Invoice"
-msgstr ""
+msgstr "Račun"
#. module: account_payment
#: field:payment.line,communication:0
msgid "Communication"
-msgstr ""
+msgstr "Veza"
#. module: account_payment
#: view:account.payment.make.payment:0
@@ -566,13 +573,13 @@ msgstr ""
#: view:payment.order:0
#: view:payment.order.create:0
msgid "Cancel"
-msgstr ""
+msgstr "Odustani"
#. module: account_payment
#: view:payment.line:0
#: view:payment.order:0
msgid "Information"
-msgstr ""
+msgstr "Informacija"
#. module: account_payment
#: model:ir.actions.act_window,help:account_payment.action_payment_order_tree
@@ -582,26 +589,30 @@ msgid ""
"that should be done, keep track of all payment orders and mention the "
"invoice reference and the partner the payment should be done for."
msgstr ""
+"Nalog za plaćanje je zahtjev za plaćanjem za plaćanjem računa dobavljaču ili "
+"odobrenje kupca. Ovdje se mogu prijaviti svi nalozi za plaćanje koje je "
+"potrebno izvršiti, omogućuje također praćenje naloga za plaćanje i "
+"spomenutih računa i partnera koje je potrebno platiti."
#. module: account_payment
#: help:payment.line,amount:0
msgid "Payment amount in the company currency"
-msgstr ""
+msgstr "Iznos plaćanja u valuti organizacije"
#. module: account_payment
#: view:payment.order.create:0
msgid "Search Payment lines"
-msgstr ""
+msgstr "Traži stavke naloga za plaćanje"
#. module: account_payment
#: field:payment.line,amount_currency:0
msgid "Amount in Partner Currency"
-msgstr ""
+msgstr "Iznos u valuti partnera"
#. module: account_payment
#: field:payment.line,communication2:0
msgid "Communication 2"
-msgstr ""
+msgstr "Komunikacija 2"
#. module: account_payment
#: field:payment.line,bank_id:0
@@ -611,46 +622,46 @@ msgstr ""
#. module: account_payment
#: view:account.payment.make.payment:0
msgid "Are you sure you want to make payment?"
-msgstr ""
+msgstr "Želite dodati plaćanje?"
#. module: account_payment
#: view:payment.mode:0
#: field:payment.mode,journal:0
msgid "Journal"
-msgstr ""
+msgstr "Dnevnik"
#. module: account_payment
#: field:payment.mode,bank_id:0
msgid "Bank account"
-msgstr ""
+msgstr "Bankovni račun"
#. module: account_payment
#: view:payment.order:0
msgid "Confirm Payments"
-msgstr ""
+msgstr "Potvrdi plaćanja"
#. module: account_payment
#: field:payment.line,company_currency:0
#: report:payment.order:0
msgid "Company Currency"
-msgstr ""
+msgstr "Valuta organizacije"
#. module: account_payment
#: model:ir.ui.menu,name:account_payment.menu_main_payment
#: view:payment.line:0
#: view:payment.order:0
msgid "Payment"
-msgstr ""
+msgstr "Plaćanje"
#. module: account_payment
#: report:payment.order:0
msgid "Payment Order / Payment"
-msgstr ""
+msgstr "Nalog za plaćanje / plaćanje"
#. module: account_payment
#: field:payment.line,move_line_id:0
msgid "Entry line"
-msgstr ""
+msgstr "Redak"
#. module: account_payment
#: help:payment.line,communication:0
@@ -658,61 +669,63 @@ msgid ""
"Used as the message between ordering customer and current company. Depicts "
"'What do you want to say to the recipient about this order ?'"
msgstr ""
+"Used as the message between ordering customer and current company. Depicts "
+"'What do you want to say to the recipient about this order ?'"
#. module: account_payment
#: field:payment.mode,name:0
msgid "Name"
-msgstr ""
+msgstr "Naziv"
#. module: account_payment
#: report:payment.order:0
msgid "Bank Account"
-msgstr ""
+msgstr "Bankovni račun"
#. module: account_payment
#: view:payment.line:0
#: view:payment.order:0
msgid "Entry Information"
-msgstr ""
+msgstr "Informacije"
#. module: account_payment
#: model:ir.model,name:account_payment.model_payment_order_create
msgid "payment.order.create"
-msgstr ""
+msgstr "payment.order.create"
#. module: account_payment
#: field:payment.line,order_id:0
msgid "Order"
-msgstr ""
+msgstr "Order"
#. module: account_payment
#: field:payment.order,total:0
msgid "Total"
-msgstr ""
+msgstr "Ukupno"
#. module: account_payment
#: view:account.payment.make.payment:0
#: model:ir.actions.act_window,name:account_payment.action_account_payment_make_payment
msgid "Make Payment"
-msgstr ""
+msgstr "Plaćanje"
#. module: account_payment
#: field:payment.line,partner_id:0
#: report:payment.order:0
msgid "Partner"
-msgstr ""
+msgstr "Partner"
#. module: account_payment
#: model:ir.actions.act_window,name:account_payment.action_create_payment_order
msgid "Populate Payment"
-msgstr ""
+msgstr "Popuni plaćanje"
#. module: account_payment
#: help:payment.mode,bank_id:0
msgid "Bank Account for the Payment Mode"
-msgstr ""
+msgstr "Račun banke za vrstu plaćanja"
#. module: account_payment
#: constraint:account.move.line:0
msgid "You can not create move line on view account."
-msgstr ""
+msgstr "Ne može se knjižiti na sintetički konto."
diff --git a/addons/account_payment/i18n/sr@latin.po b/addons/account_payment/i18n/sr@latin.po
index 6efe331146d..13925099baf 100644
--- a/addons/account_payment/i18n/sr@latin.po
+++ b/addons/account_payment/i18n/sr@latin.po
@@ -8,19 +8,19 @@ 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: 2010-12-23 15:17+0000\n"
-"Last-Translator: Olivier Dony (OpenERP) \n"
+"PO-Revision-Date: 2011-12-13 15:21+0000\n"
+"Last-Translator: Milan Milosevic \n"
"Language-Team: Serbian latin \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-11-05 05:22+0000\n"
-"X-Generator: Launchpad (build 14231)\n"
+"X-Launchpad-Export-Date: 2011-12-14 04:45+0000\n"
+"X-Generator: Launchpad (build 14487)\n"
#. module: account_payment
#: field:payment.order,date_scheduled:0
msgid "Scheduled date if fixed"
-msgstr "Zakazani datum ako je fiskno"
+msgstr "Zakazani datum ako je fiksiran"
#. module: account_payment
#: field:payment.line,currency:0
@@ -30,7 +30,7 @@ msgstr "Valuta partnera"
#. module: account_payment
#: view:payment.order:0
msgid "Set to draft"
-msgstr "Postavi za obradu"
+msgstr "Postavi kao pripremu"
#. module: account_payment
#: help:payment.order,mode:0
@@ -41,7 +41,7 @@ msgstr "Odaberite način plaćanja koji će biti primenjen."
#: view:payment.mode:0
#: view:payment.order:0
msgid "Group By..."
-msgstr "Grupirano po"
+msgstr "Grupiši po..."
#. module: account_payment
#: model:ir.module.module,description:account_payment.module_meta_information
@@ -52,6 +52,11 @@ msgid ""
"* a basic mechanism to easily plug various automated payment.\n"
" "
msgstr ""
+"\n"
+"Ovaj modul omogućava:\n"
+"*efikasniji način za upravljanje isplaćivanja faktura\n"
+"*osnovni mehanizam za lako obrađivanje automatizovanih načina isplate\n"
+" "
#. module: account_payment
#: field:payment.order,line_ids:0
@@ -98,7 +103,7 @@ msgstr "Zeljeni Datum"
#. module: account_payment
#: selection:payment.line,state:0
msgid "Free"
-msgstr "slobodno"
+msgstr "Slobodno"
#. module: account_payment
#: field:payment.order.create,entries:0
@@ -108,18 +113,18 @@ msgstr "Stavke"
#. module: account_payment
#: report:payment.order:0
msgid "Used Account"
-msgstr "Koristeni Nalog"
+msgstr "Korišteni nalog"
#. module: account_payment
#: field:payment.line,ml_maturity_date:0
#: field:payment.order.create,duedate:0
msgid "Due Date"
-msgstr "Datum dospeća"
+msgstr "Krajnji rok"
#. module: account_payment
#: constraint:account.move.line:0
msgid "You can not create move line on closed account."
-msgstr ""
+msgstr "Ne možete da napravite poteznu liniju na zatvorenim računima."
#. module: account_payment
#: view:account.move.line:0
@@ -135,7 +140,7 @@ msgstr "_Dodaj u nalog za plaćanje"
#: model:ir.actions.act_window,name:account_payment.action_account_payment_populate_statement
#: model:ir.actions.act_window,name:account_payment.action_account_populate_statement_confirm
msgid "Payment Populate statement"
-msgstr "Ispuna sadrzaja fakture"
+msgstr "Ispunjavanje sadržaja fakture"
#. module: account_payment
#: report:payment.order:0
@@ -146,12 +151,12 @@ msgstr "Iznos"
#. module: account_payment
#: sql_constraint:account.move.line:0
msgid "Wrong credit or debit value in accounting entry !"
-msgstr ""
+msgstr "Pogrešna vrednost kredita ili debita u ulazu računa !"
#. module: account_payment
#: view:payment.order:0
msgid "Total in Company Currency"
-msgstr "Ukupno u valuti preduzeca"
+msgstr "Ukupno u valuti preduzeća"
#. module: account_payment
#: selection:payment.order,state:0
@@ -172,7 +177,7 @@ msgstr "Referenca"
#. module: account_payment
#: sql_constraint:payment.line:0
msgid "The payment line name must be unique!"
-msgstr ""
+msgstr "Red plaćanja mora biti jedinstven!"
#. module: account_payment
#: model:ir.actions.act_window,name:account_payment.action_payment_order_tree
@@ -212,7 +217,7 @@ msgstr "Efektivni datum fakture"
#. module: account_payment
#: report:payment.order:0
msgid "Execution Type"
-msgstr "Tip Izuzetka"
+msgstr "Tip Izvršavanja"
#. module: account_payment
#: selection:payment.line,state:0
@@ -229,7 +234,7 @@ msgstr "Stanje"
#: view:payment.line:0
#: view:payment.order:0
msgid "Transaction Information"
-msgstr "Informacije Transakcije"
+msgstr "Informacije o transakciji"
#. module: account_payment
#: model:ir.actions.act_window,name:account_payment.action_payment_mode_form
@@ -257,8 +262,8 @@ msgid ""
"by you.'Directly' stands for the direct execution.'Due date' stands for the "
"scheduled date of execution."
msgstr ""
-"Odaberite opciju za nalog za plaćanje: \"Fiksno\" znači datum naveden od "
-"vaše strane. \"Direktno\" znači direktno izvršenje. \"Datum odgode\" znači "
+"Odaberite opciju za nalog za plaćanje: \"Fiksirano\" znači datum naveden s "
+"Vaše strane. \"Direktno\" znači direktno izvršenje. \"Datum odgode\" znači "
"zakazan datum izvršenja."
#. module: account_payment
@@ -280,12 +285,12 @@ msgstr "Datum izvršenja"
#. module: account_payment
#: help:payment.mode,journal:0
msgid "Bank or Cash Journal for the Payment Mode"
-msgstr ""
+msgstr "Dnevnik banke ili keša za način plaćanja"
#. module: account_payment
#: selection:payment.order,date_prefered:0
msgid "Fixed date"
-msgstr "Fiksni datum"
+msgstr "Fiksirani datum"
#. module: account_payment
#: field:payment.line,info_partner:0
@@ -301,18 +306,19 @@ msgstr "Ciljni račun"
#. module: account_payment
#: view:payment.order:0
msgid "Search Payment Orders"
-msgstr "Pretrazi naloge za placanje"
+msgstr "Pretraži naloge za plaćanje"
#. module: account_payment
#: constraint:account.move.line:0
msgid ""
"You can not create move line on receivable/payable account without partner"
msgstr ""
+"Ne možete napraviti poteznu liniju na primaćem/platežnom računu bez partnera"
#. module: account_payment
#: field:payment.line,create_date:0
msgid "Created"
-msgstr "Kreirano"
+msgstr "Napravljeno"
#. module: account_payment
#: view:payment.order:0
@@ -327,17 +333,17 @@ msgstr "Ukupni iznos valute"
#. module: account_payment
#: view:payment.order:0
msgid "Make Payments"
-msgstr "Napravite plaćanja"
+msgstr "Izvršite plaćanja"
#. module: account_payment
#: field:payment.line,state:0
msgid "Communication Type"
-msgstr "Tip Komunikacije"
+msgstr "Tip komunikacije"
#. module: account_payment
#: model:ir.module.module,shortdesc:account_payment.module_meta_information
msgid "Payment Management"
-msgstr "Menadzment Plaćanja"
+msgstr "Upravljanje plaćanjem"
#. module: account_payment
#: field:payment.line,bank_statement_line_id:0
@@ -347,7 +353,7 @@ msgstr "Red Izvoda iz Banke"
#. module: account_payment
#: selection:payment.order,date_prefered:0
msgid "Due date"
-msgstr "Krajnji Rok"
+msgstr "Krajnji rok"
#. module: account_payment
#: field:account.invoice,amount_to_pay:0
@@ -391,7 +397,7 @@ msgstr "Način plaćanja"
#. module: account_payment
#: report:payment.order:0
msgid "Value Date"
-msgstr "Datum"
+msgstr "Datum valute"
#. module: account_payment
#: report:payment.order:0
@@ -412,23 +418,23 @@ msgstr "Priprema"
#. module: account_payment
#: help:payment.line,communication2:0
msgid "The successor message of Communication."
-msgstr "Nasljedna poruka komunikacije."
+msgstr "Naredna poruka komunikacije."
#. module: account_payment
#: code:addons/account_payment/account_move_line.py:110
#, python-format
msgid "No partner defined on entry line"
-msgstr "Partner nije definisan"
+msgstr "Partner nije definisan na redu stavke"
#. module: account_payment
#: help:payment.line,info_partner:0
msgid "Address of the Ordering Customer."
-msgstr "Adresa kupca naručitelja."
+msgstr "Adresa naručitelja."
#. module: account_payment
#: view:account.payment.populate.statement:0
msgid "Populate Statement:"
-msgstr "Popuni sadrzaj:"
+msgstr "Popuni sadržaj:"
#. module: account_payment
#: view:account.move.line:0
@@ -438,7 +444,7 @@ msgstr "Ukupno potražuje"
#. module: account_payment
#: help:payment.order,date_scheduled:0
msgid "Select a date if you have chosen Preferred Date to be fixed."
-msgstr "Odaberite datum ako ste odabrali fiksni željeni datum"
+msgstr "Odaberite datum ako ste odabrali fiksirani željeni datum"
#. module: account_payment
#: field:payment.order,user_id:0
@@ -454,12 +460,12 @@ msgstr "Redovi plaćanja"
#. module: account_payment
#: model:ir.model,name:account_payment.model_account_move_line
msgid "Journal Items"
-msgstr "Sadrzaj Dnevnika"
+msgstr "Stavke dnevnika"
#. module: account_payment
#: constraint:account.move.line:0
msgid "Company must be same for its related account and period."
-msgstr ""
+msgstr "Preduzeće mora biti isto za sve vezane račune i periode."
#. module: account_payment
#: help:payment.line,move_line_id:0
@@ -492,12 +498,12 @@ msgstr "Ukupno:"
#. module: account_payment
#: field:payment.order,date_created:0
msgid "Creation date"
-msgstr "Datum kreiranja"
+msgstr "Datum pravljenja"
#. module: account_payment
#: view:account.payment.populate.statement:0
msgid "ADD"
-msgstr "Dodaj"
+msgstr "DODAJ"
#. module: account_payment
#: view:account.bank.statement:0
@@ -517,22 +523,22 @@ msgstr "Iznos u valuti preduzeca"
#. module: account_payment
#: help:payment.line,partner_id:0
msgid "The Ordering Customer"
-msgstr "Kupac naručitelj"
+msgstr "Naručitelj"
#. module: account_payment
#: model:ir.model,name:account_payment.model_account_payment_make_payment
msgid "Account make payment"
-msgstr "Izvrsi placanje naloga"
+msgstr "Izvrši plaćanje naloga"
#. module: account_payment
#: report:payment.order:0
msgid "Invoice Ref"
-msgstr "Referenca fakture"
+msgstr "Ref. fakture"
#. module: account_payment
#: field:payment.line,name:0
msgid "Your Reference"
-msgstr "Vaše veze"
+msgstr "Vaš poziv na broj"
#. module: account_payment
#: field:payment.order,mode:0
@@ -578,7 +584,7 @@ msgstr "Otkaži"
#: view:payment.line:0
#: view:payment.order:0
msgid "Information"
-msgstr "Informacija"
+msgstr "Informacije"
#. module: account_payment
#: model:ir.actions.act_window,help:account_payment.action_payment_order_tree
@@ -588,6 +594,10 @@ msgid ""
"that should be done, keep track of all payment orders and mention the "
"invoice reference and the partner the payment should be done for."
msgstr ""
+"Nalog za plaćanje je zahtev za plaćanje od strane Vašeg preduzeća za isplatu "
+"faktura nabavke ili kupaca. Ovde možete snimiti sve naloge za plaćanje na "
+"čekanju, pratite sve naloge za plaćanje i pomenete poziv na broj za datu "
+"fakturu i kom partneru treba izvršiti isplatu."
#. module: account_payment
#: help:payment.line,amount:0
@@ -612,12 +622,12 @@ msgstr "Komunikacija 2"
#. module: account_payment
#: field:payment.line,bank_id:0
msgid "Destination Bank account"
-msgstr "Destinacioni bankovni račun"
+msgstr "Ciljni bankovni račun"
#. module: account_payment
#: view:account.payment.make.payment:0
msgid "Are you sure you want to make payment?"
-msgstr "Jeste li sigurni da zelite da izvrsite isplatu?"
+msgstr "Jeste li sigurni da želite da izvršite isplatu?"
#. module: account_payment
#: view:payment.mode:0
@@ -639,7 +649,7 @@ msgstr "Potvrdi plaćanja"
#: field:payment.line,company_currency:0
#: report:payment.order:0
msgid "Company Currency"
-msgstr "Valuta preduzeca"
+msgstr "Valuta preduzeća"
#. module: account_payment
#: model:ir.ui.menu,name:account_payment.menu_main_payment
@@ -651,7 +661,7 @@ msgstr "Isplata"
#. module: account_payment
#: report:payment.order:0
msgid "Payment Order / Payment"
-msgstr "Isplata Faktura / Placanje"
+msgstr "Isplata Faktura / Plaćanje"
#. module: account_payment
#: field:payment.line,move_line_id:0
@@ -664,13 +674,13 @@ msgid ""
"Used as the message between ordering customer and current company. Depicts "
"'What do you want to say to the recipient about this order ?'"
msgstr ""
-"Koristi se kao poruka izmedju narucioca i date kompanije. Objasnjava ' Sta "
-"ste to hteli reci kupcu o ovoj narudzbi?'"
+"Koristi se kao poruka između naručioca i date kompanije. Prikazuje ' Šta "
+"želite reći kupcu o ovoj narudžbini?'"
#. module: account_payment
#: field:payment.mode,name:0
msgid "Name"
-msgstr "Ime"
+msgstr "Naziv"
#. module: account_payment
#: report:payment.order:0
@@ -681,7 +691,7 @@ msgstr "Bankovni račun"
#: view:payment.line:0
#: view:payment.order:0
msgid "Entry Information"
-msgstr "Unos Informacije"
+msgstr "Informacije o unosu"
#. module: account_payment
#: model:ir.model,name:account_payment.model_payment_order_create
@@ -702,7 +712,7 @@ msgstr "Ukupno"
#: view:account.payment.make.payment:0
#: model:ir.actions.act_window,name:account_payment.action_account_payment_make_payment
msgid "Make Payment"
-msgstr "Izvrsi placanje"
+msgstr "Izvrši placanje"
#. module: account_payment
#: field:payment.line,partner_id:0
@@ -713,7 +723,7 @@ msgstr "Partner"
#. module: account_payment
#: model:ir.actions.act_window,name:account_payment.action_create_payment_order
msgid "Populate Payment"
-msgstr "Popuni Placanje"
+msgstr "Popuni plaćanje"
#. module: account_payment
#: help:payment.mode,bank_id:0
@@ -723,7 +733,7 @@ msgstr "Bankovni račun za način plaćanja"
#. module: account_payment
#: constraint:account.move.line:0
msgid "You can not create move line on view account."
-msgstr ""
+msgstr "Ne možete napraviti poteznu liniju na računu po viđenju"
#~ msgid "Invalid model name in the action definition."
#~ msgstr "Pogrešno ime modela u definiciji akcije."
diff --git a/addons/account_payment/security/ir.model.access.csv b/addons/account_payment/security/ir.model.access.csv
index a4b6fe0af5e..864b7656964 100644
--- a/addons/account_payment/security/ir.model.access.csv
+++ b/addons/account_payment/security/ir.model.access.csv
@@ -1,11 +1,8 @@
-"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
-"access_payment_mode","payment.mode","model_payment_mode","group_account_payment",1,1,1,1
-"access_payment_order","payment.order","model_payment_order","group_account_payment",1,1,1,1
-"access_payment_line","payment.line","model_payment_line","group_account_payment",1,1,1,1
-"access_account_journal_payement","account.journal payment","account.model_account_journal","group_account_payment",1,0,0,0
-"access_account_invoice_payment","account.invoice payment","account.model_account_invoice","group_account_payment",1,0,0,0
-"access_account_move_line_payment","account.move.line payment","account.model_account_move_line","group_account_payment",1,0,0,0
-"access_payment_order_accountant","payment.order accountant","model_payment_order","account.group_account_user",1,1,1,1
-"access_payment_order_manager","payment.order manager","model_payment_order","account.group_account_manager",1,0,0,0
-"access_payment_order_invoice","payment.order invoice","model_payment_order","account.group_account_invoice",1,1,1,1
-"access_payment_line_invoice","payment.line invoice","model_payment_line","account.group_account_invoice",1,1,1,1
+id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
+access_payment_mode,payment.mode,model_payment_mode,group_account_payment,1,1,1,1
+access_payment_order,payment.order,model_payment_order,group_account_payment,1,1,1,1
+access_payment_line,payment.line,model_payment_line,group_account_payment,1,1,1,1
+access_account_journal_payement,account.journal payment,account.model_account_journal,group_account_payment,1,0,0,0
+access_account_invoice_payment,account.invoice payment,account.model_account_invoice,group_account_payment,1,0,0,0
+access_account_move_line_payment,account.move.line payment,account.model_account_move_line,group_account_payment,1,0,0,0
+access_payment_order_manager,payment.order manager,model_payment_order,account.group_account_manager,1,0,0,0
diff --git a/addons/account_sequence/__openerp__.py b/addons/account_sequence/__openerp__.py
index 31d4f373e2f..7ad66a5b428 100644
--- a/addons/account_sequence/__openerp__.py
+++ b/addons/account_sequence/__openerp__.py
@@ -22,7 +22,7 @@
{
'name': 'Entries Sequence Numbering',
'version': '1.1',
- 'category': 'Hidden',
+ "category": 'Accounting & Finance',
'complexity': "easy",
'description': """
This module maintains internal sequence number for accounting entries.
diff --git a/addons/account_sequence/i18n/hr.po b/addons/account_sequence/i18n/hr.po
new file mode 100644
index 00000000000..14005991bb8
--- /dev/null
+++ b/addons/account_sequence/i18n/hr.po
@@ -0,0 +1,222 @@
+# Croatian 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-12-08 15:33+0000\n"
+"Last-Translator: Goran Kliska \n"
+"Language-Team: Croatian \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2011-12-09 04:46+0000\n"
+"X-Generator: Launchpad (build 14450)\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 "Postave brojčanih serija"
+
+#. module: account_sequence
+#: constraint:account.move:0
+msgid ""
+"You cannot create entries on different periods/journals in the same move"
+msgstr ""
+"Sva knjiženja na jednoj temeljnici moraju imati isti period i dnevnik."
+
+#. module: account_sequence
+#: help:account.move,internal_sequence_number:0
+#: help:account.move.line,internal_sequence_number:0
+msgid "Internal Sequence Number"
+msgstr "Interni broj"
+
+#. module: account_sequence
+#: help:account.sequence.installer,number_next:0
+msgid "Next number of this sequence"
+msgstr "Slijedeći broj ove brojčane serije"
+
+#. module: account_sequence
+#: field:account.sequence.installer,number_next:0
+msgid "Next Number"
+msgstr "Sljedeći broj"
+
+#. module: account_sequence
+#: field:account.sequence.installer,number_increment:0
+msgid "Increment Number"
+msgstr "Povećati za broj"
+
+#. 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 "Korak uvećanja brojača. 1 će uvećavati brojač za jedan, 10 za 10."
+
+#. module: account_sequence
+#: view:account.sequence.installer:0
+msgid "Configure Your Account Sequence Application"
+msgstr "Postavite vaše brojčane serije"
+
+#. module: account_sequence
+#: field:account.sequence.installer,progress:0
+msgid "Configuration Progress"
+msgstr "Napredak konfiguracije"
+
+#. module: account_sequence
+#: help:account.sequence.installer,suffix:0
+msgid "Suffix value of the record for the sequence"
+msgstr "Sufiks (poslije brojača) za ovu brojčanu seriju"
+
+#. module: account_sequence
+#: field:account.sequence.installer,company_id:0
+msgid "Company"
+msgstr "Organizacija"
+
+#. 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 "Dopunjavanje na duljinu"
+
+#. module: account_sequence
+#: model:ir.model,name:account_sequence.model_account_move_line
+msgid "Journal Items"
+msgstr "Stavke glavne knjige"
+
+#. module: account_sequence
+#: field:account.move,internal_sequence_number:0
+#: field:account.move.line,internal_sequence_number:0
+msgid "Internal Number"
+msgstr "Interni broj"
+
+#. 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 "Potreban broj vodećih \"0\" će se automatski dodati."
+
+#. module: account_sequence
+#: field:account.sequence.installer,name:0
+msgid "Name"
+msgstr "Naziv"
+
+#. module: account_sequence
+#: constraint:account.move.line:0
+msgid "You can not create move line on closed account."
+msgstr "Ne možete kreirati stavke prometa za zatvoreni račun."
+
+#. 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 "Pogrešna dugovna ili potražna vrijednost upisane stavke!"
+
+#. module: account_sequence
+#: field:account.journal,internal_sequence_id:0
+msgid "Internal Sequence"
+msgstr "Interna brojčana serija"
+
+#. 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 "Postavke"
+
+#. module: account_sequence
+#: help:account.sequence.installer,prefix:0
+msgid "Prefix value of the record for the sequence"
+msgstr "Prefiks za brojčanu seriju"
+
+#. module: account_sequence
+#: model:ir.model,name:account_sequence.model_account_move
+msgid "Account Entry"
+msgstr "Temeljnica"
+
+#. module: account_sequence
+#: field:account.sequence.installer,suffix:0
+msgid "Suffix"
+msgstr "Sufiks"
+
+#. module: account_sequence
+#: field:account.sequence.installer,config_logo:0
+msgid "Image"
+msgstr "Slika"
+
+#. module: account_sequence
+#: view:account.sequence.installer:0
+msgid "title"
+msgstr "naslov"
+
+#. module: account_sequence
+#: sql_constraint:account.journal:0
+msgid "The name of the journal must be unique per company !"
+msgstr "Naziv dnevnika mora biti jedinstven za jednu organizaciju!"
+
+#. module: account_sequence
+#: field:account.sequence.installer,prefix:0
+msgid "Prefix"
+msgstr "Prefiks"
+
+#. module: account_sequence
+#: sql_constraint:account.journal:0
+msgid "The code of the journal must be unique per company !"
+msgstr "Šifra dnevnika mora biti jedinstvena (za organizaciju) !"
+
+#. 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 "Dnevnik"
+
+#. 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 "Ne može se knjižiti na sintetički konto."
diff --git a/addons/account_sequence/i18n/pt.po b/addons/account_sequence/i18n/pt.po
index 84c22715b25..e2e827d4e57 100644
--- a/addons/account_sequence/i18n/pt.po
+++ b/addons/account_sequence/i18n/pt.po
@@ -8,14 +8,14 @@ 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-04-24 03:28+0000\n"
-"Last-Translator: FULL NAME \n"
+"PO-Revision-Date: 2011-12-09 10:09+0000\n"
+"Last-Translator: Paulino Ascenção \n"
"Language-Team: Portuguese \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-11-05 05:56+0000\n"
-"X-Generator: Launchpad (build 14231)\n"
+"X-Launchpad-Export-Date: 2011-12-10 04:56+0000\n"
+"X-Generator: Launchpad (build 14450)\n"
#. module: account_sequence
#: view:account.sequence.installer:0
@@ -28,12 +28,13 @@ msgstr ""
msgid ""
"You cannot create entries on different periods/journals in the same move"
msgstr ""
+"Não pode criar registos em períodos ou diários diferentes no mesmo movimento"
#. module: account_sequence
#: help:account.move,internal_sequence_number:0
#: help:account.move.line,internal_sequence_number:0
msgid "Internal Sequence Number"
-msgstr ""
+msgstr "Número interno de sequência"
#. module: account_sequence
#: help:account.sequence.installer,number_next:0
@@ -43,12 +44,12 @@ msgstr ""
#. module: account_sequence
#: field:account.sequence.installer,number_next:0
msgid "Next Number"
-msgstr ""
+msgstr "Próximo número"
#. module: account_sequence
#: field:account.sequence.installer,number_increment:0
msgid "Increment Number"
-msgstr ""
+msgstr "Incremento"
#. module: account_sequence
#: model:ir.module.module,description:account_sequence.module_meta_information
@@ -57,6 +58,10 @@ msgid ""
" This module maintains internal sequence number for accounting entries.\n"
" "
msgstr ""
+"\n"
+" Esse módulo gere os números de sequência internos dos lançamentos "
+"contabilísticos.\n"
+" "
#. module: account_sequence
#: model:ir.module.module,shortdesc:account_sequence.module_meta_information
diff --git a/addons/account_voucher/__openerp__.py b/addons/account_voucher/__openerp__.py
index 5e6e6ab0513..74e9097b57c 100644
--- a/addons/account_voucher/__openerp__.py
+++ b/addons/account_voucher/__openerp__.py
@@ -20,7 +20,7 @@
##############################################################################
{
- "name" : "Accounting Voucher Entries",
+ "name" : "eInvoicing & Payments",
"version" : "1.0",
"author" : 'OpenERP SA',
'complexity': "normal",
@@ -32,7 +32,7 @@ Account Voucher module includes all the basic requirements of Voucher Entries fo
* Voucher Receipt
* Cheque Register
""",
- "category" : "Hidden",
+ "category": 'Accounting & Finance',
"website" : "http://tinyerp.com",
"images" : ["images/customer_payment.jpeg","images/journal_voucher.jpeg","images/sales_receipt.jpeg","images/supplier_voucher.jpeg"],
"depends" : ["account"],
@@ -68,6 +68,7 @@ Account Voucher module includes all the basic requirements of Voucher Entries fo
],
'certificate': '0037580727101',
"active": False,
+ "application": True,
"installable": True,
}
diff --git a/addons/account_voucher/account_voucher.py b/addons/account_voucher/account_voucher.py
index fd6dac9f90d..2b63157ef30 100644
--- a/addons/account_voucher/account_voucher.py
+++ b/addons/account_voucher/account_voucher.py
@@ -90,6 +90,21 @@ class account_voucher(osv.osv):
return tax_id
return False
+ def _get_payment_rate_currency(self, cr, uid, context=None):
+ """
+ Return the default value for field payment_rate_currency_id: the currency of the journal
+ if there is one, otherwise the currency of the user's company
+ """
+ if context is None: context = {}
+ journal_pool = self.pool.get('account.journal')
+ journal_id = context.get('journal_id', False)
+ if journal_id:
+ journal = journal_pool.browse(cr, uid, journal_id, context=context)
+ if journal.currency:
+ return journal.currency.id
+ #no journal given in the context, use company currency as default
+ return self.pool.get('res.users').browse(cr, uid, uid, context=context).company_id.currency_id.id
+
def _get_currency(self, cr, uid, context=None):
if context is None: context = {}
journal_pool = self.pool.get('account.journal')
@@ -126,28 +141,31 @@ class account_voucher(osv.osv):
def fields_view_get(self, cr, uid, view_id=None, view_type=False, context=None, toolbar=False, submenu=False):
mod_obj = self.pool.get('ir.model.data')
if context is None: context = {}
- if not view_id and context.get('invoice_type', False):
- if context.get('invoice_type', False) in ('out_invoice', 'out_refund'):
- result = mod_obj.get_object_reference(cr, uid, 'account_voucher', 'view_vendor_receipt_form')
- else:
- result = mod_obj.get_object_reference(cr, uid, 'account_voucher', 'view_vendor_payment_form')
- result = result and result[1] or False
- view_id = result
- if not view_id and view_type == 'form' and context.get('line_type', False):
- if context.get('line_type', False) == 'customer':
- result = mod_obj.get_object_reference(cr, uid, 'account_voucher', 'view_vendor_receipt_form')
- else:
- result = mod_obj.get_object_reference(cr, uid, 'account_voucher', 'view_vendor_payment_form')
- result = result and result[1] or False
- view_id = result
+
+ if view_type == 'form':
+ if not view_id and context.get('invoice_type'):
+ if context.get('invoice_type') in ('out_invoice', 'out_refund'):
+ result = mod_obj.get_object_reference(cr, uid, 'account_voucher', 'view_vendor_receipt_form')
+ else:
+ result = mod_obj.get_object_reference(cr, uid, 'account_voucher', 'view_vendor_payment_form')
+ result = result and result[1] or False
+ view_id = result
+ if not view_id and context.get('line_type'):
+ if context.get('line_type') == 'customer':
+ result = mod_obj.get_object_reference(cr, uid, 'account_voucher', 'view_vendor_receipt_form')
+ else:
+ result = mod_obj.get_object_reference(cr, uid, 'account_voucher', 'view_vendor_payment_form')
+ result = result and result[1] or False
+ view_id = result
res = super(account_voucher, self).fields_view_get(cr, uid, view_id=view_id, view_type=view_type, context=context, toolbar=toolbar, submenu=submenu)
doc = etree.XML(res['arch'])
- nodes = doc.xpath("//field[@name='partner_id']")
+
if context.get('type', 'sale') in ('purchase', 'payment'):
+ nodes = doc.xpath("//field[@name='partner_id']")
for node in nodes:
node.set('domain', "[('supplier', '=', True)]")
- res['arch'] = etree.tostring(doc)
+ res['arch'] = etree.tostring(doc)
return res
def _compute_writeoff_amount(self, cr, uid, line_dr_ids, line_cr_ids, amount):
@@ -158,17 +176,25 @@ class account_voucher(osv.osv):
credit += l['amount']
return abs(amount - abs(credit - debit))
- def onchange_line_ids(self, cr, uid, ids, line_dr_ids, line_cr_ids, amount, context=None):
+ def onchange_line_ids(self, cr, uid, ids, line_dr_ids, line_cr_ids, amount, voucher_currency, context=None):
context = context or {}
if not line_dr_ids and not line_cr_ids:
return {'value':{}}
line_osv = self.pool.get("account.voucher.line")
line_dr_ids = resolve_o2m_operations(cr, uid, line_osv, line_dr_ids, ['amount'], context)
line_cr_ids = resolve_o2m_operations(cr, uid, line_osv, line_cr_ids, ['amount'], context)
- return {'value': {'writeoff_amount': self._compute_writeoff_amount(cr, uid, line_dr_ids, line_cr_ids, amount)}}
+
+ #loop into the lines to see if there is an amount allocated on a voucher line with a currency different than the voucher currency
+ is_multi_currency = False
+ for voucher_line in line_dr_ids+line_cr_ids:
+ if voucher_line.get('currency_id',False) != voucher_currency:
+ is_multi_currency = True
+ break
+ return {'value': {'writeoff_amount': self._compute_writeoff_amount(cr, uid, line_dr_ids, line_cr_ids, amount), 'is_multi_currency': is_multi_currency}}
def _get_writeoff_amount(self, cr, uid, ids, name, args, context=None):
if not ids: return {}
+ currency_obj = self.pool.get('res.currency')
res = {}
debit = credit = 0.0
for voucher in self.browse(cr, uid, ids, context=context):
@@ -176,15 +202,24 @@ class account_voucher(osv.osv):
debit += l.amount
for l in voucher.line_cr_ids:
credit += l.amount
- res[voucher.id] = abs(voucher.amount - abs(credit - debit))
+ currency = voucher.currency_id or voucher.company_id.currency_id
+ res[voucher.id] = currency_obj.round(cr, uid, currency, abs(voucher.amount - abs(credit - debit)))
return res
def _paid_amount_in_company_currency(self, cr, uid, ids, name, args, context=None):
if not ids: return {}
res = {}
- debit = credit = 0.0
+ voucher_rate = company_currency_rate = 1.0
for voucher in self.browse(cr, uid, ids, context=context):
- res[voucher.id] = voucher.amount / voucher.payment_rate
+ if voucher.currency_id:
+ ctx = context.copy()
+ ctx.update({'date': voucher.date})
+ voucher_rate = self.browse(cr, uid, voucher.id, context=ctx).currency_id.rate
+ if voucher.company_id.currency_id.id == voucher.payment_rate_currency_id.id:
+ company_currency_rate = voucher.payment_rate
+ else:
+ company_currency_rate = voucher.company_id.currency_id.rate
+ res[voucher.id] = voucher.amount / voucher_rate * company_currency_rate
return res
_name = 'account.voucher'
@@ -241,15 +276,16 @@ class account_voucher(osv.osv):
'payment_option':fields.selection([
('without_writeoff', 'Keep Open'),
('with_writeoff', 'Reconcile Payment Balance'),
- ], 'Payment Difference', required=True, readonly=True, states={'draft': [('readonly', False)]}),
- 'exchange_acc_id': fields.many2one('account.account', 'Exchange Diff. Account', readonly=True, states={'draft': [('readonly', False)]}),
+ ], 'Payment Difference', required=True, readonly=True, states={'draft': [('readonly', False)]}, help="This field helps you to choose what you want to do with the eventual difference between the paid amount and the sum of allocated amounts. You can either choose to keep open this difference on the partner's account, or reconcile it with the payment(s)"),
'writeoff_acc_id': fields.many2one('account.account', 'Counterpart Account', readonly=True, states={'draft': [('readonly', False)]}),
'comment': fields.char('Counterpart Comment', size=64, required=True, readonly=True, states={'draft': [('readonly', False)]}),
'analytic_id': fields.many2one('account.analytic.account','Write-Off Analytic Account', readonly=True, states={'draft': [('readonly', False)]}),
- 'writeoff_amount': fields.function(_get_writeoff_amount, string='Reconcile Amount', type='float', readonly=True),
- 'payment_rate': fields.float('Payment Rate', digits=(12,6), required=True, readonly=True, states={'draft': [('readonly', False)]},
- help='The rate between the journal currency and the company currency for this particular payment.'),
+ 'writeoff_amount': fields.function(_get_writeoff_amount, string='Difference Amount', type='float', readonly=True, help="Computed as the difference between the amount stated in the voucher and the sum of allocation on the voucher lines."),
+ 'payment_rate_currency_id': fields.many2one('res.currency', 'Payment Rate Currency', required=True, readonly=True, states={'draft':[('readonly',False)]}),
+ 'payment_rate': fields.float('Exchange Rate', digits=(12,6), required=True, readonly=True, states={'draft': [('readonly', False)]},
+ help='The specific rate that will be used, in this voucher, between the selected currency (in \'Payment Rate Currency\' field) and the voucher currency.'),
'paid_amount_in_company_currency': fields.function(_paid_amount_in_company_currency, string='Paid Amount in Company Currency', type='float', readonly=True),
+ 'is_multi_currency': fields.boolean('Multi Currency Voucher', help='Fields with internal purpose only that depicts if the voucher is a multi currency one or not'),
}
_defaults = {
'period_id': _get_period,
@@ -269,6 +305,7 @@ class account_voucher(osv.osv):
'payment_option': 'without_writeoff',
'comment': _('Write-Off'),
'payment_rate': 1.0,
+ 'payment_rate_currency_id': _get_payment_rate_currency,
}
def compute_tax(self, cr, uid, ids, context=None):
@@ -374,7 +411,7 @@ class account_voucher(osv.osv):
})
return {'value':default}
- def onchange_journal_voucher(self, cr, uid, ids, line_ids=False, tax_id=False, price=0.0, partner_id=False, journal_id=False, ttype=False, context=None):
+ def onchange_journal_voucher(self, cr, uid, ids, line_ids=False, tax_id=False, price=0.0, partner_id=False, journal_id=False, ttype=False, company_id=False, context=None):
"""price
Returns a dict that contains new values and context
@@ -413,25 +450,78 @@ class account_voucher(osv.osv):
default['value']['account_id'] = account_id
default['value']['type'] = ttype or tr_type
- vals = self.onchange_journal(cr, uid, ids, journal_id, line_ids, tax_id, partner_id, context)
+ vals = self.onchange_journal(cr, uid, ids, journal_id, line_ids, tax_id, partner_id, company_id, context)
default['value'].update(vals.get('value'))
return default
- def onchange_rate(self, cr, uid, ids, rate, amount, context=None):
- res = {'value': {'paid_amount_in_company_currency': 0.0}}
- if rate and amount:
- res['value']['paid_amount_in_company_currency'] = amount / rate
+ def onchange_rate(self, cr, uid, ids, rate, amount, currency_id, payment_rate_currency_id, company_id, context=None):
+ res = {'value': {'paid_amount_in_company_currency': amount}}
+ company_currency = self.pool.get('res.company').browse(cr, uid, company_id, context=context).currency_id
+ if rate and amount and currency_id:# and currency_id == payment_rate_currency_id:
+ voucher_rate = self.pool.get('res.currency').browse(cr, uid, currency_id, context).rate
+ if company_currency.id == payment_rate_currency_id:
+ company_rate = rate
+ else:
+ company_rate = self.pool.get('res.company').browse(cr, uid, company_id, context=context).currency_id.rate
+ res['value']['paid_amount_in_company_currency'] = amount / voucher_rate * company_rate
return res
- def onchange_amount(self, cr, uid, ids, amount, rate, partner_id, journal_id, currency_id, ttype, date, context=None):
- res = self.onchange_partner_id(cr, uid, ids, partner_id, journal_id, amount, currency_id, ttype, date, context=context)
- vals = self.onchange_rate(cr, uid, ids, rate, amount, context=context)
+ def onchange_amount(self, cr, uid, ids, amount, rate, partner_id, journal_id, currency_id, ttype, date, payment_rate_currency_id, company_id, context=None):
+ if context is None:
+ context = {}
+ res = self.recompute_voucher_lines(cr, uid, ids, partner_id, journal_id, amount, currency_id, ttype, date, context=context)
+ ctx = context.copy()
+ ctx.update({'date': date})
+ vals = self.onchange_rate(cr, uid, ids, rate, amount, currency_id, payment_rate_currency_id, company_id, context=ctx)
for key in vals.keys():
res[key].update(vals[key])
return res
- def onchange_partner_id(self, cr, uid, ids, partner_id, journal_id, price, currency_id, ttype, date, context=None):
+ def recompute_payment_rate(self, cr, uid, ids, vals, currency_id, date, ttype, journal_id, amount, context=None):
+ if context is None:
+ context = {}
+ #on change of the journal, we need to set also the default value for payment_rate and payment_rate_currency_id
+ currency_obj = self.pool.get('res.currency')
+ journal = self.pool.get('account.journal').browse(cr, uid, journal_id, context=context)
+ company_id = journal.company_id.id
+ payment_rate = 1.0
+ payment_rate_currency_id = currency_id
+ ctx = context.copy()
+ ctx.update({'date': date})
+ o2m_to_loop = False
+ if ttype == 'receipt':
+ o2m_to_loop = 'line_cr_ids'
+ elif ttype == 'payment':
+ o2m_to_loop = 'line_dr_ids'
+ if o2m_to_loop and 'value' in vals and o2m_to_loop in vals['value']:
+ for voucher_line in vals['value'][o2m_to_loop]:
+ if voucher_line['currency_id'] != currency_id:
+ # we take as default value for the payment_rate_currency_id, the currency of the first invoice that
+ # is not in the voucher currency
+ payment_rate_currency_id = voucher_line['currency_id']
+ tmp = currency_obj.browse(cr, uid, payment_rate_currency_id, context=ctx).rate
+ voucher_currency_id = currency_id or journal.company_id.currency_id.id
+ payment_rate = tmp / currency_obj.browse(cr, uid, voucher_currency_id, context=ctx).rate
+ break
+ res = self.onchange_rate(cr, uid, ids, payment_rate, amount, currency_id, payment_rate_currency_id, company_id, context=ctx)
+ for key in res.keys():
+ vals[key].update(res[key])
+ vals['value'].update({'payment_rate': payment_rate})
+ if payment_rate_currency_id:
+ vals['value'].update({'payment_rate_currency_id': payment_rate_currency_id})
+ return vals
+
+ def onchange_partner_id(self, cr, uid, ids, partner_id, journal_id, amount, currency_id, ttype, date, context=None):
+ if not journal_id:
+ return {}
+ res = self.recompute_voucher_lines(cr, uid, ids, partner_id, journal_id, amount, currency_id, ttype, date, context=context)
+ vals = self.recompute_payment_rate(cr, uid, ids, res, currency_id, date, ttype, journal_id, amount, context=context)
+ for key in vals.keys():
+ res[key].update(vals[key])
+ return res
+
+ def recompute_voucher_lines(self, cr, uid, ids, partner_id, journal_id, price, currency_id, ttype, date, context=None):
"""
Returns a dict that contains new values and context
@@ -502,9 +592,9 @@ class account_voucher(osv.osv):
#order the lines by most old first
ids.reverse()
- moves = move_line_pool.browse(cr, uid, ids, context=context)
+ account_move_lines = move_line_pool.browse(cr, uid, ids, context=context)
- for line in moves:
+ for line in account_move_lines:
if line.credit and line.reconcile_partial_id and ttype == 'receipt':
continue
if line.debit and line.reconcile_partial_id and ttype == 'payment':
@@ -533,7 +623,7 @@ class account_voucher(osv.osv):
total_debit += line.debit and line.amount_currency or 0.0
#voucher line creation
- for line in moves:
+ for line in account_move_lines:
if line.credit and line.reconcile_partial_id and ttype == 'receipt':
continue
if line.debit and line.reconcile_partial_id and ttype == 'payment':
@@ -544,6 +634,7 @@ class account_voucher(osv.osv):
else:
amount_original = currency_pool.compute(cr, uid, company_currency, currency_id, line.credit or line.debit or 0.0)
amount_unreconciled = currency_pool.compute(cr, uid, company_currency, currency_id, abs(line.amount_residual))
+ line_currency_id = line.currency_id and line.currency_id.id or company_currency
rs = {
'name':line.move_id.name,
'type': line.credit and 'dr' or 'cr',
@@ -554,11 +645,11 @@ class account_voucher(osv.osv):
'date_original':line.date,
'date_due':line.date_maturity,
'amount_unreconciled': amount_unreconciled,
+ 'currency_id': line_currency_id,
}
#split voucher amount by most old first, but only for lines in the same currency
if not move_line_found:
- line_currency_id = line.currency_id and line.currency_id.id or company_currency
if currency_id == line_currency_id:
if line.credit:
amount = min(amount_unreconciled, abs(total_debit))
@@ -569,7 +660,9 @@ class account_voucher(osv.osv):
rs['amount'] = amount
total_credit -= amount
- default['value']['line_ids'].append(rs)
+ if rs['amount_unreconciled'] == rs['amount']:
+ rs['reconcile'] = True
+
if rs['type'] == 'cr':
default['value']['line_cr_ids'].append(rs)
else:
@@ -582,30 +675,51 @@ class account_voucher(osv.osv):
default['value']['writeoff_amount'] = self._compute_writeoff_amount(cr, uid, default['value']['line_dr_ids'], default['value']['line_cr_ids'], price)
return default
- def onchange_date(self, cr, uid, ids, date, currency_id, amount, context=None):
+ def onchange_payment_rate_currency(self, cr, uid, ids, currency_id, payment_rate, payment_rate_currency_id, date, amount, company_id, context=None):
+ if context is None:
+ context = {}
+ res = {'value': {}}
+ #set the default payment rate of the voucher and compute the paid amount in company currency
+ if currency_id and currency_id == payment_rate_currency_id:
+ ctx = context.copy()
+ ctx.update({'date': date})
+ vals = self.onchange_rate(cr, uid, ids, payment_rate, amount, currency_id, payment_rate_currency_id, company_id, context=ctx)
+ for key in vals.keys():
+ res[key].update(vals[key])
+ return res
+
+ def onchange_date(self, cr, uid, ids, date, currency_id, payment_rate_currency_id, amount, company_id, context=None):
"""
@param date: latest value from user input for field date
@param args: other arguments
@param context: context arguments, like lang, time zone
@return: Returns a dict which contains new values, and context
"""
+ if context is None:
+ context ={}
res = {'value': {}}
#set the period of the voucher
period_pool = self.pool.get('account.period')
- pids = period_pool.search(cr, uid, [('date_start', '<=', date), ('date_stop', '>=', date)])
+ currency_obj = self.pool.get('res.currency')
+ ctx = context.copy()
+ ctx.update({'company_id': company_id})
+ pids = period_pool.find(cr, uid, date, context=ctx)
if pids:
res['value'].update({'period_id':pids[0]})
- #set the default payment rate of the voucher and compute the paid amount in company currency
- payment_rate = 1.0
- if currency_id:
- payment_rate = self.pool.get('res.currency').browse(cr, uid, currency_id, context={'date': date}).rate
- res['value'].update({'payment_rate': payment_rate})
- vals = self.onchange_rate(cr, uid, ids, payment_rate, amount, context=context)
- for key in vals.keys():
- res[key].update(vals[key])
+ if payment_rate_currency_id:
+ ctx.update({'date': date})
+ payment_rate = 1.0
+ if payment_rate_currency_id != currency_id:
+ tmp = currency_obj.browse(cr, uid, payment_rate_currency_id, context=ctx).rate
+ voucher_currency_id = currency_id or self.pool.get('res.company').browse(cr, uid, company_id, context=ctx).currency_id.id
+ payment_rate = tmp / currency_obj.browse(cr, uid, voucher_currency_id, context=ctx).rate
+ vals = self.onchange_payment_rate_currency(cr, uid, ids, currency_id, payment_rate, payment_rate_currency_id, date, amount, company_id, context=context)
+ vals['value'].update({'payment_rate': payment_rate})
+ for key in vals.keys():
+ res[key].update(vals[key])
return res
- def onchange_journal(self, cr, uid, ids, journal_id, line_ids, tax_id, partner_id, date, amount, ttype, context=None):
+ def onchange_journal(self, cr, uid, ids, journal_id, line_ids, tax_id, partner_id, date, amount, ttype, company_id, context=None):
if not journal_id:
return False
journal_pool = self.pool.get('account.journal')
@@ -620,11 +734,6 @@ class account_voucher(osv.osv):
currency_id = False
if journal.currency:
currency_id = journal.currency.id
- payment_rate = self.pool.get('res.currency').browse(cr, uid, currency_id, context={'date': date}).rate
- vals['value'].update({'payment_rate': payment_rate})
- res = self.onchange_rate(cr, uid, ids, payment_rate, amount, context=context)
- for key in res.keys():
- vals[key].update(res[key])
vals['value'].update({'currency_id': currency_id})
res = self.onchange_partner_id(cr, uid, ids, partner_id, journal_id, amount, currency_id, ttype, date, context)
for key in res.keys():
@@ -730,9 +839,9 @@ class account_voucher(osv.osv):
# TODO: Make this logic available.
# -for sale, purchase we have but for the payment and receipt we do not have as based on the bank/cash journal we can not know its payment or receipt
if voucher_brw.type in ('purchase', 'payment'):
- credit = voucher_brw.amount / voucher_brw.payment_rate
+ credit = voucher_brw.paid_amount_in_company_currency
elif voucher_brw.type in ('sale', 'receipt'):
- debit = voucher_brw.amount / voucher_brw.payment_rate
+ debit = voucher_brw.paid_amount_in_company_currency
if debit < 0: credit = -debit; debit = 0.0
if credit < 0: debit = -credit; credit = 0.0
sign = debit - credit < 0 and -1 or 1
@@ -788,9 +897,10 @@ class account_voucher(osv.osv):
def _get_exchange_lines(self, cr, uid, line, move_id, amount_residual, company_currency, current_currency, context=None):
'''
- Prepare the two lines due to currency rate difference.
+ Prepare the two lines in company currency due to currency rate difference.
- :param line: browse record of the voucher.line for which we want to create currency rate difference accounting entries
+ :param line: browse record of the voucher.line for which we want to create currency rate difference accounting
+ entries
:param move_id: Account move wher the move lines will be.
:param amount_residual: Amount to be posted.
:param company_currency: id of currency of the company to which the voucher belong
@@ -798,9 +908,17 @@ class account_voucher(osv.osv):
:return: the account move line and its counterpart to create, depicted as mapping between fieldname and value
:rtype: tuple of dict
'''
- if not line.voucher_id.exchange_acc_id.id:
- raise osv.except_osv(_('Error!'), _('You must provide an account for the exchange difference.'))
-
+ if amount_residual > 0:
+ account_id = line.voucher_id.company_id.expense_currency_exchange_account_id
+ if not account_id:
+ raise osv.except_osv(_('Warning'),_("Unable to create accounting entry for currency rate difference. You have to configure the field 'Income Currency Rate' on the company! "))
+ else:
+ account_id = line.voucher_id.company_id.income_currency_exchange_account_id
+ if not account_id:
+ raise osv.except_osv(_('Warning'),_("Unable to create accounting entry for currency rate difference. You have to configure the field 'Expense Currency Rate' on the company! "))
+ # Even if the amount_currency is never filled, we need to pass the foreign currency because otherwise
+ # the receivable/payable account may have a secondary currency, which render this field mandatory
+ account_currency_id = company_currency <> current_currency and current_currency or False
move_line = {
'journal_id': line.voucher_id.journal_id.id,
'period_id': line.voucher_id.period_id.id,
@@ -808,7 +926,7 @@ class account_voucher(osv.osv):
'account_id': line.account_id.id,
'move_id': move_id,
'partner_id': line.voucher_id.partner_id.id,
- 'currency_id': company_currency <> current_currency and current_currency or False,
+ 'currency_id': account_currency_id,
'amount_currency': 0.0,
'quantity': 1,
'credit': amount_residual > 0 and amount_residual or 0.0,
@@ -819,11 +937,11 @@ class account_voucher(osv.osv):
'journal_id': line.voucher_id.journal_id.id,
'period_id': line.voucher_id.period_id.id,
'name': _('change')+': '+(line.name or '/'),
- 'account_id': line.voucher_id.exchange_acc_id.id,
+ 'account_id': account_id.id,
'move_id': move_id,
'amount_currency': 0.0,
'partner_id': line.voucher_id.partner_id.id,
- 'currency_id': company_currency <> current_currency and current_currency or False,
+ 'currency_id': account_currency_id,
'quantity': 1,
'debit': amount_residual > 0 and amount_residual or 0.0,
'credit': amount_residual < 0 and -amount_residual or 0.0,
@@ -831,6 +949,31 @@ class account_voucher(osv.osv):
}
return (move_line, move_line_counterpart)
+ def _convert_amount(self, cr, uid, amount, voucher_id, context=None):
+ '''
+ This function convert the amount given in company currency. It takes either the rate in the voucher (if the
+ payment_rate_currency_id is relevant) either the rate encoded in the system.
+
+ :param amount: float. The amount to convert
+ :param voucher: id of the voucher on which we want the conversion
+ :param context: to context to use for the conversion. It may contain the key 'date' set to the voucher date
+ field in order to select the good rate to use.
+ :return: the amount in the currency of the voucher's company
+ :rtype: float
+ '''
+ currency_obj = self.pool.get('res.currency')
+ voucher = self.browse(cr, uid, voucher_id, context=context)
+ res = amount
+ if voucher.payment_rate_currency_id.id == voucher.company_id.currency_id.id:
+ # the rate specified on the voucher is for the company currency
+ rate_between_voucher_and_base = voucher.currency_id.rate or 1.0
+ rate_between_base_and_company = voucher.payment_rate or 1.0
+ res = currency_obj.round(cr, uid, voucher.company_id.currency_id, (amount / rate_between_voucher_and_base * rate_between_base_and_company))
+ else:
+ # the rate specified on the voucher is not relevant, we use all the rates in the system
+ res = currency_obj.compute(cr, uid, voucher.currency_id.id, voucher.company_id.currency_id.id, amount, context=context)
+ return res
+
def voucher_move_line_create(self, cr, uid, voucher_id, line_total, move_id, company_currency, current_currency, context=None):
'''
Create one account move line, on the given account move, per voucher line where amount is not 0.0.
@@ -843,25 +986,30 @@ class account_voucher(osv.osv):
:param company_currency: id of currency of the company to which the voucher belong
:param current_currency: id of currency of the voucher
:return: Tuple build as (remaining amount not allocated on voucher lines, list of account_move_line created in this method)
- :rtype: tuple(int, list of int)
+ :rtype: tuple(float, list of int)
'''
+ if context is None:
+ context = {}
move_line_obj = self.pool.get('account.move.line')
currency_obj = self.pool.get('res.currency')
tot_line = line_total
rec_lst_ids = []
- voucher_brw = self.pool.get('account.voucher').browse(cr,uid,voucher_id,context)
+ voucher_brw = self.pool.get('account.voucher').browse(cr, uid, voucher_id, context)
+ ctx = context.copy()
+ ctx.update({'date': voucher_brw.date})
for line in voucher_brw.line_ids:
#create one move line per voucher line where amount is not 0.0
if not line.amount:
continue
- #we check if the voucher line is fully paid or not and create a move line to balance the payment and initial invoice if needed
+ # convert the amount set on the voucher line into the currency of the voucher's company
+ amount = self._convert_amount(cr, uid, line.untax_amount or line.amount, voucher_brw.id, context=ctx)
+ # if the amount encoded in voucher is equal to the amount unreconciled, we need to compute the
+ # currency rate difference
if line.amount == line.amount_unreconciled:
- amount = (line.untax_amount or line.amount) / voucher_brw.payment_rate
- amount_residual = line.move_line_id.amount_residual - amount #residual amount in company currency
+ currency_rate_difference = line.move_line_id.amount_residual - amount
else:
- amount = (line.untax_amount or line.amount) / voucher_brw.payment_rate
- amount_residual = 0.0
+ currency_rate_difference = 0.0
move_line = {
'journal_id': voucher_brw.journal_id.id,
'period_id': voucher_brw.period_id.id,
@@ -869,7 +1017,7 @@ class account_voucher(osv.osv):
'account_id': line.account_id.id,
'move_id': move_id,
'partner_id': voucher_brw.partner_id.id,
- 'currency_id': company_currency <> current_currency and current_currency or False,
+ 'currency_id': line.move_line_id and (company_currency <> line.move_line_id.currency_id.id and line.move_line_id.currency_id.id) or False,
'analytic_account_id': line.account_analytic_id and line.account_analytic_id.id or False,
'quantity': 1,
'credit': 0.0,
@@ -900,18 +1048,58 @@ class account_voucher(osv.osv):
if not (tax_data.base_code_id and tax_data.tax_code_id):
raise osv.except_osv(_('No Account Base Code and Account Tax Code!'),_("You have to configure account base code and account tax code on the '%s' tax!") % (tax_data.name))
- sign = (move_line['debit'] - move_line['credit']) < 0 and -1 or 1
- move_line['amount_currency'] = company_currency <> current_currency and sign * line.amount or False
+ # compute the amount in foreign currency
+ foreign_currency_diff = 0.0
+ amount_currency = False
+ if line.move_line_id:
+ voucher_currency = voucher_brw.currency_id and voucher_brw.currency_id.id or voucher_brw.journal_id.company_id.currency_id.id
+ # We want to set it on the account move line as soon as the original line had a foreign currency
+ if line.move_line_id.currency_id and line.move_line_id.currency_id.id != company_currency:
+ # we compute the amount in that foreign currency.
+ if line.move_line_id.currency_id.id == current_currency:
+ # if the voucher and the voucher line share the same currency, there is no computation to do
+ sign = (move_line['debit'] - move_line['credit']) < 0 and -1 or 1
+ amount_currency = sign * (line.amount)
+ elif line.move_line_id.currency_id.id == voucher_brw.payment_rate_currency_id.id:
+ # if the rate is specified on the voucher, we must use it
+ voucher_rate = currency_obj.browse(cr, uid, voucher_currency, context=ctx).rate
+ amount_currency = (move_line['debit'] - move_line['credit']) * voucher_brw.payment_rate * voucher_rate
+ else:
+ # otherwise we use the rates of the system (giving the voucher date in the context)
+ amount_currency = currency_obj.compute(cr, uid, company_currency, line.move_line_id.currency_id.id, move_line['debit']-move_line['credit'], context=ctx)
+ if line.amount == line.amount_unreconciled and line.move_line_id.currency_id.id == voucher_currency:
+ foreign_currency_diff = line.move_line_id.amount_residual_currency + amount_currency
+
+ move_line['amount_currency'] = amount_currency
voucher_line = move_line_obj.create(cr, uid, move_line)
rec_ids = [voucher_line, line.move_line_id.id]
- if amount_residual:
- # Change difference entry
- exch_lines = self._get_exchange_lines(cr, uid, line, move_id, amount_residual, company_currency, current_currency, context=context)
+ if not currency_obj.is_zero(cr, uid, voucher_brw.company_id.currency_id, currency_rate_difference):
+ # Change difference entry in company currency
+ exch_lines = self._get_exchange_lines(cr, uid, line, move_id, currency_rate_difference, company_currency, current_currency, context=context)
new_id = move_line_obj.create(cr, uid, exch_lines[0],context)
move_line_obj.create(cr, uid, exch_lines[1], context)
rec_ids.append(new_id)
+ if line.move_line_id and line.move_line_id.currency_id and not currency_obj.is_zero(cr, uid, line.move_line_id.currency_id, foreign_currency_diff):
+ # Change difference entry in voucher currency
+ move_line_foreign_currency = {
+ 'journal_id': line.voucher_id.journal_id.id,
+ 'period_id': line.voucher_id.period_id.id,
+ 'name': _('change')+': '+(line.name or '/'),
+ 'account_id': line.account_id.id,
+ 'move_id': move_id,
+ 'partner_id': line.voucher_id.partner_id.id,
+ 'currency_id': line.move_line_id.currency_id.id,
+ 'amount_currency': -1 * foreign_currency_diff,
+ 'quantity': 1,
+ 'credit': 0.0,
+ 'debit': 0.0,
+ 'date': line.voucher_id.date,
+ }
+ new_id = move_line_obj.create(cr, uid, move_line_foreign_currency, context=context)
+ rec_ids.append(new_id)
+
if line.move_line_id.id:
rec_lst_ids.append(rec_ids)
@@ -958,6 +1146,7 @@ class account_voucher(osv.osv):
'debit': diff < 0 and -diff or 0.0,
'amount_currency': company_currency <> current_currency and voucher_brw.writeoff_amount or False,
'currency_id': company_currency <> current_currency and current_currency or False,
+ 'analytic_account_id': voucher_brw.analytic_id and voucher_brw.analytic_id.id or False,
}
return move_line
@@ -999,28 +1188,32 @@ class account_voucher(osv.osv):
continue
company_currency = self._get_company_currency(cr, uid, voucher.id, context)
current_currency = self._get_current_currency(cr, uid, voucher.id, context)
+ # we select the context to use accordingly if it's a multicurrency case or not
context = self._sel_context(cr, uid, voucher.id, context)
- #Create the account move record.
+ # But for the operations made by _convert_amount, we always need to give the date in the context
+ ctx = context.copy()
+ ctx.update({'date': voucher.date})
+ # Create the account move record.
move_id = move_pool.create(cr, uid, self.account_move_get(cr, uid, voucher.id, context=context), context=context)
# Get the name of the account_move just created
name = move_pool.browse(cr, uid, move_id, context=context).name
- #Create the first line of the voucher
+ # Create the first line of the voucher
move_line_id = move_line_pool.create(cr, uid, self.first_move_line_get(cr,uid,voucher.id, move_id, company_currency, current_currency, context), context)
move_line_brw = move_line_pool.browse(cr, uid, move_line_id, context=context)
line_total = move_line_brw.debit - move_line_brw.credit
rec_list_ids = []
if voucher.type == 'sale':
- line_total = line_total - (voucher.tax_amount / voucher.payment_rate)
+ line_total = line_total - self._convert_amount(cr, uid, voucher.tax_amount, voucher.id, context=ctx)
elif voucher.type == 'purchase':
- line_total = line_total + (voucher.tax_amount / voucher.payment_rate)
- #create one move line per voucher line where amount is not 0.0
+ line_total = line_total + self._convert_amount(cr, uid, voucher.tax_amount, voucher.id, context=ctx)
+ # Create one move line per voucher line where amount is not 0.0
line_total, rec_list_ids = self.voucher_move_line_create(cr, uid, voucher.id, line_total, move_id, company_currency, current_currency, context)
- #create the writeoff line if needed
+ # Create the writeoff line if needed
ml_writeoff = self.writeoff_move_line_get(cr, uid, voucher.id, line_total, move_id, name, company_currency, current_currency, context)
if ml_writeoff:
ml_writeoff_id = move_line_pool.create(cr, uid, ml_writeoff, context)
- #We post the voucher.
+ # We post the voucher.
self.write(cr, uid, [voucher.id], {
'move_id': move_id,
'state': 'posted',
@@ -1028,10 +1221,10 @@ class account_voucher(osv.osv):
})
if voucher.journal_id.entry_posted:
move_pool.post(cr, uid, [move_id], context={})
- #We automatically reconcile the account move lines.
+ # We automatically reconcile the account move lines.
for rec_ids in rec_list_ids:
if len(rec_ids) >= 2:
- move_line_pool.reconcile_partial(cr, uid, rec_ids, writeoff_acc_id=voucher.exchange_acc_id.id, writeoff_period_id=voucher.period_id.id, writeoff_journal_id=voucher.journal_id.id)
+ move_line_pool.reconcile_partial(cr, uid, rec_ids, writeoff_acc_id=voucher.writeoff_acc_id.id, writeoff_period_id=voucher.period_id.id, writeoff_journal_id=voucher.journal_id.id)
return True
def copy(self, cr, uid, id, default={}, context=None):
@@ -1083,13 +1276,28 @@ class account_voucher_line(osv.osv):
rs_data[line.id] = res
return rs_data
+ def _currency_id(self, cr, uid, ids, name, args, context=None):
+ '''
+ This function returns the currency id of a voucher line. It's either the currency of the
+ associated move line (if any) or the currency of the voucher or the company currency.
+ '''
+ res = {}
+ for line in self.browse(cr, uid, ids, context=context):
+ move_line = line.move_line_id
+ if move_line:
+ res[line.id] = move_line.currency_id and move_line.currency_id.id or move_line.company_id.currency_id.id
+ else:
+ res[line.id] = line.voucher_id.currency_id and line.voucher_id.currency_id.id or line.voucher_id.company_id.currency_id.id
+ return res
+
_columns = {
'voucher_id':fields.many2one('account.voucher', 'Voucher', required=1, ondelete='cascade'),
'name':fields.char('Description', size=256),
'account_id':fields.many2one('account.account','Account', required=True),
'partner_id':fields.related('voucher_id', 'partner_id', type='many2one', relation='res.partner', string='Partner'),
'untax_amount':fields.float('Untax Amount'),
- 'amount':fields.float('Amount', digits_compute=dp.get_precision('Account')),
+ 'amount':fields.float('Allocation', digits_compute=dp.get_precision('Account')),
+ 'reconcile': fields.boolean('Full Reconcile'),
'type':fields.selection([('dr','Debit'),('cr','Credit')], 'Dr/Cr'),
'account_analytic_id': fields.many2one('account.analytic.account', 'Analytic Account'),
'move_line_id': fields.many2one('account.move.line', 'Journal Item'),
@@ -1098,11 +1306,24 @@ class account_voucher_line(osv.osv):
'amount_original': fields.function(_compute_balance, multi='dc', type='float', string='Original Amount', store=True),
'amount_unreconciled': fields.function(_compute_balance, multi='dc', type='float', string='Open Balance', store=True),
'company_id': fields.related('voucher_id','company_id', relation='res.company', type='many2one', string='Company', store=True, readonly=True),
+ 'currency_id': fields.function(_currency_id, string='Currency', type='many2one', relation='res.currency', readonly=True),
}
_defaults = {
- 'name': ''
+ 'name': '',
}
+ def onchange_reconcile(self, cr, uid, ids, reconcile, amount, amount_unreconciled, context=None):
+ vals = { 'amount': 0.0}
+ if reconcile:
+ vals = { 'amount': amount_unreconciled}
+ return {'value': vals}
+
+ def onchange_amount(self, cr, uid, ids, amount, amount_unreconciled, context=None):
+ vals = {}
+ if amount:
+ vals['reconcile'] = (amount == amount_unreconciled)
+ return {'value': vals}
+
def onchange_move_line_id(self, cr, user, ids, move_line_id, context=None):
"""
Returns a dict that contains new values and context
@@ -1121,10 +1342,10 @@ class account_voucher_line(osv.osv):
ttype = 'dr'
else:
ttype = 'cr'
- account_id = move_line.account_id.id
res.update({
- 'account_id':account_id,
- 'type': ttype
+ 'account_id': move_line.account_id.id,
+ 'type': ttype,
+ 'currency_id': move_line.currency_id and move_line.currency_id.id or move_line.company_id.currency_id.id,
})
return {
'value':res,
@@ -1261,6 +1482,7 @@ def resolve_o2m_operations(cr, uid, target_osv, operations, fields, context):
result = operation[2]
elif operation[0] == 1:
result = target_osv.read(cr, uid, operation[1], fields, context=context)
+ if not result: result = {}
result.update(operation[2])
elif operation[0] == 4:
result = target_osv.read(cr, uid, operation[1], fields, context=context)
@@ -1268,4 +1490,19 @@ def resolve_o2m_operations(cr, uid, target_osv, operations, fields, context):
results.append(result)
return results
+class res_company(osv.osv):
+ _inherit = "res.company"
+ _columns = {
+ 'income_currency_exchange_account_id': fields.many2one(
+ 'account.account',
+ string="Income Currency Rate",
+ domain="[('type', '=', 'other')]",),
+ 'expense_currency_exchange_account_id': fields.many2one(
+ 'account.account',
+ string="Expense Currency Rate",
+ domain="[('type', '=', 'other')]",),
+ }
+
+res_company()
+
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/account_voucher/account_voucher_report.xml b/addons/account_voucher/account_voucher_report.xml
index 8af204efbbe..97de2b89f3a 100644
--- a/addons/account_voucher/account_voucher_report.xml
+++ b/addons/account_voucher/account_voucher_report.xml
@@ -11,13 +11,14 @@
header = "False"
menu="True"/> -->
-
+
diff --git a/addons/account_voucher/account_voucher_view.xml b/addons/account_voucher/account_voucher_view.xml
index 4e218e04714..cbe35b5fc5f 100644
--- a/addons/account_voucher/account_voucher_view.xml
+++ b/addons/account_voucher/account_voucher_view.xml
@@ -259,5 +259,19 @@
+
+
+ res.company.form.inherit
+
+ res.company
+ form
+
+
+
+
+
+
+
+
diff --git a/addons/account_voucher/i18n/hr.po b/addons/account_voucher/i18n/hr.po
index 3b1a5db220d..5904967f99a 100644
--- a/addons/account_voucher/i18n/hr.po
+++ b/addons/account_voucher/i18n/hr.po
@@ -7,19 +7,19 @@ 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-03-03 13:20+0000\n"
+"PO-Revision-Date: 2011-12-08 17:08+0000\n"
"Last-Translator: Goran Kliska \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-11-05 05:33+0000\n"
-"X-Generator: Launchpad (build 14231)\n"
+"X-Launchpad-Export-Date: 2011-12-09 04:46+0000\n"
+"X-Generator: Launchpad (build 14450)\n"
#. module: account_voucher
#: view:account.voucher.unreconcile:0
msgid "Unreconciliation transactions"
-msgstr ""
+msgstr "Transakcije poništavanja zatvaranja"
#. module: account_voucher
#: code:addons/account_voucher/account_voucher.py:247
@@ -30,12 +30,12 @@ msgstr "Otpis"
#. module: account_voucher
#: view:account.voucher:0
msgid "Payment Ref"
-msgstr ""
+msgstr "Oznaka plaćanja"
#. module: account_voucher
#: view:account.voucher:0
msgid "Open Customer Journal Entries"
-msgstr ""
+msgstr "Otvori temeljnice kupaca"
#. module: account_voucher
#: view:sale.receipt.report:0
@@ -85,7 +85,7 @@ msgstr ""
#: view:account.voucher:0
#: model:ir.actions.act_window,name:account_voucher.act_pay_bills
msgid "Bill Payment"
-msgstr ""
+msgstr "Plaćanje računa"
#. module: account_voucher
#: code:addons/account_voucher/account_voucher.py:746
@@ -105,7 +105,7 @@ msgstr "Uvoz stavki"
#. module: account_voucher
#: model:ir.model,name:account_voucher.model_account_voucher_unreconcile
msgid "Account voucher unreconcile"
-msgstr "Poništi zatvaranja plaćanja"
+msgstr "Poništi zatvaranja"
#. module: account_voucher
#: selection:sale.receipt.report,month:0
@@ -120,11 +120,14 @@ msgid ""
"automatically and you can record the customer payment related to this sales "
"receipt."
msgstr ""
+"Kada prodate proizvod kupci dužni ste mu izdati račun. Potvrdom računa "
+"kreiraju se knjigovodstvene stavke dugovanja kupca i tada možete "
+"evidentirati plaćanje kupca vezano na ovu prodaju."
#. module: account_voucher
#: view:account.voucher:0
msgid "Pay Bill"
-msgstr ""
+msgstr "Plati račun"
#. module: account_voucher
#: field:account.voucher,company_id:0
@@ -132,66 +135,66 @@ msgstr ""
#: view:sale.receipt.report:0
#: field:sale.receipt.report,company_id:0
msgid "Company"
-msgstr "Tvrtka"
+msgstr "Organizacija"
#. module: account_voucher
#: view:account.voucher:0
msgid "Set to Draft"
-msgstr ""
+msgstr "Postavi na nacrt"
#. module: account_voucher
#: help:account.voucher,reference:0
msgid "Transaction reference number."
-msgstr ""
+msgstr "Transaction reference number."
#. module: account_voucher
#: model:ir.actions.act_window,name:account_voucher.action_view_account_voucher_unreconcile
msgid "Unreconcile entries"
-msgstr ""
+msgstr "Otvori stavke"
#. module: account_voucher
#: view:account.voucher:0
msgid "Voucher Statistics"
-msgstr ""
+msgstr "Statistike vaučera"
#. module: account_voucher
#: view:account.voucher:0
msgid "Validate"
-msgstr ""
+msgstr "Potvrdi"
#. module: account_voucher
#: view:sale.receipt.report:0
#: field:sale.receipt.report,day:0
msgid "Day"
-msgstr ""
+msgstr "Dan"
#. module: account_voucher
#: view:account.voucher:0
msgid "Search Vouchers"
-msgstr ""
+msgstr "Traži vaučere"
#. module: account_voucher
#: selection:account.voucher,type:0
#: selection:sale.receipt.report,type:0
msgid "Purchase"
-msgstr ""
+msgstr "Nabava"
#. module: account_voucher
#: field:account.voucher,account_id:0
#: field:account.voucher.line,account_id:0
#: field:sale.receipt.report,account_id:0
msgid "Account"
-msgstr ""
+msgstr "Konto"
#. module: account_voucher
#: field:account.voucher,line_dr_ids:0
msgid "Debits"
-msgstr ""
+msgstr "Dugovanja"
#. module: account_voucher
#: view:account.statement.from.invoice.lines:0
msgid "Ok"
-msgstr ""
+msgstr "U redu"
#. module: account_voucher
#: model:ir.actions.act_window,help:account_voucher.action_sale_receipt_report_all
@@ -200,6 +203,8 @@ msgid ""
"customer as well as payment delays. The tool search can also be used to "
"personalise your Invoices reports and so, match this analysis to your needs."
msgstr ""
+"Pregled fakturiranih iznosa i kašnjenja plaćanja. Za prilagodbu izvještaja "
+"vašim potrebama koristite funkcionalnosti traženja i grupiranja."
#. module: account_voucher
#: field:account.voucher,date_due:0
@@ -207,12 +212,12 @@ msgstr ""
#: view:sale.receipt.report:0
#: field:sale.receipt.report,date_due:0
msgid "Due Date"
-msgstr ""
+msgstr "Datum dospijeća"
#. module: account_voucher
#: field:account.voucher,narration:0
msgid "Notes"
-msgstr ""
+msgstr "Bilješke"
#. module: account_voucher
#: model:ir.actions.act_window,help:account_voucher.action_vendor_receipt
@@ -223,22 +228,25 @@ msgid ""
"to you automatically the reconciliation of this payment with the open "
"invoices or sales receipts."
msgstr ""
+"Uplate kupaca evidentiraju primljena plaćanja kupaca. Upišite kupca, način "
+"plaćanja=dnevnik i iznos plaćanja. OpenERP će predložiti zatvaranje plaćanja "
+"s otvorenim računom(ima) ili drugim otvorenim stavkama tog partnera."
#. module: account_voucher
#: selection:account.voucher,type:0
#: selection:sale.receipt.report,type:0
msgid "Sale"
-msgstr ""
+msgstr "Prodaja"
#. module: account_voucher
#: field:account.voucher.line,move_line_id:0
msgid "Journal Item"
-msgstr ""
+msgstr "Stavka dnevnika"
#. module: account_voucher
#: field:account.voucher,reference:0
msgid "Ref #"
-msgstr ""
+msgstr "Ref #"
#. module: account_voucher
#: field:account.voucher.line,amount:0
@@ -249,28 +257,28 @@ msgstr ""
#. module: account_voucher
#: view:account.voucher:0
msgid "Payment Options"
-msgstr ""
+msgstr "Opcije plaćanja"
#. module: account_voucher
#: view:account.voucher:0
msgid "Other Information"
-msgstr ""
+msgstr "Ostali podaci"
#. module: account_voucher
#: selection:account.voucher,state:0
#: selection:sale.receipt.report,state:0
msgid "Cancelled"
-msgstr ""
+msgstr "Otkazani"
#. module: account_voucher
#: field:account.statement.from.invoice,date:0
msgid "Date payment"
-msgstr ""
+msgstr "Datum plaćanja"
#. module: account_voucher
#: model:ir.model,name:account_voucher.model_account_bank_statement_line
msgid "Bank Statement Line"
-msgstr ""
+msgstr "Redak bankovnog izvoda"
#. module: account_voucher
#: model:ir.actions.act_window,name:account_voucher.action_purchase_receipt
@@ -282,12 +290,12 @@ msgstr ""
#: view:account.voucher:0
#: view:account.voucher.unreconcile:0
msgid "Unreconcile"
-msgstr ""
+msgstr "Otvori stavke"
#. module: account_voucher
#: field:account.voucher,tax_id:0
msgid "Tax"
-msgstr ""
+msgstr "Porez"
#. module: account_voucher
#: report:voucher.print:0
@@ -298,32 +306,32 @@ msgstr ""
#: view:sale.receipt.report:0
#: field:sale.receipt.report,nbr:0
msgid "# of Voucher Lines"
-msgstr ""
+msgstr "# linija vaučera"
#. module: account_voucher
#: field:account.voucher.line,account_analytic_id:0
msgid "Analytic Account"
-msgstr ""
+msgstr "Konto analitike"
#. module: account_voucher
#: view:account.voucher:0
msgid "Payment Information"
-msgstr ""
+msgstr "Informacije uplate"
#. module: account_voucher
#: view:account.statement.from.invoice:0
msgid "Go"
-msgstr ""
+msgstr "Go"
#. module: account_voucher
#: view:account.voucher:0
msgid "Paid Amount"
-msgstr ""
+msgstr "Plaćeni iznos"
#. module: account_voucher
#: view:account.bank.statement:0
msgid "Import Invoices"
-msgstr ""
+msgstr "Uvoz računa"
#. module: account_voucher
#: report:voucher.print:0
@@ -334,7 +342,7 @@ msgstr ""
#: selection:account.voucher,type:0
#: selection:sale.receipt.report,type:0
msgid "Receipt"
-msgstr ""
+msgstr "Receipt"
#. module: account_voucher
#: report:voucher.print:0
@@ -349,7 +357,7 @@ msgstr ""
#. module: account_voucher
#: view:account.voucher:0
msgid "Sales Lines"
-msgstr ""
+msgstr "Stavke prodaje"
#. module: account_voucher
#: report:voucher.print:0
@@ -360,14 +368,14 @@ msgstr ""
#: view:account.voucher:0
#: field:account.voucher,period_id:0
msgid "Period"
-msgstr ""
+msgstr "Period"
#. module: account_voucher
#: view:account.voucher:0
#: field:account.voucher,state:0
#: view:sale.receipt.report:0
msgid "State"
-msgstr ""
+msgstr "Stanje"
#. module: account_voucher
#: model:ir.module.module,shortdesc:account_voucher.module_meta_information
@@ -378,18 +386,18 @@ msgstr ""
#: view:sale.receipt.report:0
#: field:sale.receipt.report,type:0
msgid "Type"
-msgstr ""
+msgstr "Vrsta"
#. module: account_voucher
#: field:account.voucher.unreconcile,remove:0
msgid "Want to remove accounting entries too ?"
-msgstr ""
+msgstr "Želite li ukloniti i knjigovodstvene unose?"
#. module: account_voucher
#: view:account.voucher:0
#: model:ir.actions.act_window,name:account_voucher.act_journal_voucher_open
msgid "Voucher Entries"
-msgstr ""
+msgstr "Stavke vaučera"
#. module: account_voucher
#: code:addons/account_voucher/account_voucher.py:645
@@ -400,24 +408,24 @@ msgstr ""
#. module: account_voucher
#: view:account.voucher:0
msgid "Supplier Voucher"
-msgstr ""
+msgstr "Vaučer dobavljača"
#. module: account_voucher
#: model:ir.actions.act_window,name:account_voucher.action_review_voucher_list
msgid "Vouchers Entries"
-msgstr ""
+msgstr "Stavke vaučera"
#. module: account_voucher
#: field:account.voucher,name:0
msgid "Memo"
-msgstr ""
+msgstr "Memo"
#. module: account_voucher
#: view:account.voucher:0
#: model:ir.actions.act_window,name:account_voucher.action_sale_receipt
#: model:ir.ui.menu,name:account_voucher.menu_action_sale_receipt
msgid "Sales Receipt"
-msgstr ""
+msgstr "Izdani vaučeri"
#. module: account_voucher
#: code:addons/account_voucher/account_voucher.py:596
@@ -428,30 +436,30 @@ msgstr ""
#. module: account_voucher
#: view:account.voucher:0
msgid "Bill Information"
-msgstr ""
+msgstr "Bill Information"
#. module: account_voucher
#: selection:sale.receipt.report,month:0
msgid "July"
-msgstr ""
+msgstr "Srpanj"
#. module: account_voucher
#: view:account.voucher.unreconcile:0
msgid "Unreconciliation"
-msgstr ""
+msgstr "Poništavanje zatvaranja IOS-a"
#. module: account_voucher
#: view:sale.receipt.report:0
#: field:sale.receipt.report,due_delay:0
msgid "Avg. Due Delay"
-msgstr ""
+msgstr "Pros. dugovanje"
#. module: account_voucher
#: view:account.invoice:0
#: code:addons/account_voucher/invoice.py:32
#, python-format
msgid "Pay Invoice"
-msgstr ""
+msgstr "Plaćanje"
#. module: account_voucher
#: code:addons/account_voucher/account_voucher.py:746
@@ -462,12 +470,12 @@ msgstr ""
#. module: account_voucher
#: field:account.voucher,tax_amount:0
msgid "Tax Amount"
-msgstr ""
+msgstr "Iznos poreza"
#. module: account_voucher
#: view:account.voucher:0
msgid "Voucher Entry"
-msgstr ""
+msgstr "Stavka vaučera"
#. module: account_voucher
#: view:account.voucher:0
@@ -476,82 +484,82 @@ msgstr ""
#: view:sale.receipt.report:0
#: field:sale.receipt.report,partner_id:0
msgid "Partner"
-msgstr ""
+msgstr "Partner"
#. module: account_voucher
#: field:account.voucher,payment_option:0
msgid "Payment Difference"
-msgstr ""
+msgstr "Razlika plaćanja"
#. module: account_voucher
#: constraint:account.bank.statement.line:0
msgid ""
"The amount of the voucher must be the same amount as the one on the "
"statement line"
-msgstr ""
+msgstr "Iznos vaučera mora biti jednak iznosu stavke izvoda banke/blagajne."
#. module: account_voucher
#: view:account.voucher:0
msgid "To Review"
-msgstr ""
+msgstr "Za provjeru"
#. module: account_voucher
#: view:account.voucher:0
msgid "Expense Lines"
-msgstr ""
+msgstr "Redak troška"
#. module: account_voucher
#: field:account.statement.from.invoice,line_ids:0
#: field:account.statement.from.invoice.lines,line_ids:0
msgid "Invoices"
-msgstr ""
+msgstr "Računi"
#. module: account_voucher
#: selection:sale.receipt.report,month:0
msgid "December"
-msgstr ""
+msgstr "Prosinac"
#. module: account_voucher
#: field:account.voucher,line_ids:0
#: view:account.voucher.line:0
#: model:ir.model,name:account_voucher.model_account_voucher_line
msgid "Voucher Lines"
-msgstr ""
+msgstr "Linije vaučera"
#. module: account_voucher
#: view:sale.receipt.report:0
#: field:sale.receipt.report,month:0
msgid "Month"
-msgstr ""
+msgstr "Mjesec"
#. module: account_voucher
#: field:account.voucher,currency_id:0
#: field:sale.receipt.report,currency_id:0
msgid "Currency"
-msgstr ""
+msgstr "Valuta"
#. module: account_voucher
#: view:account.statement.from.invoice.lines:0
msgid "Payable and Receivables"
-msgstr ""
+msgstr "Payable and Receivables"
#. module: account_voucher
#: selection:account.voucher,pay_now:0
#: selection:sale.receipt.report,pay_now:0
msgid "Pay Later or Group Funds"
-msgstr ""
+msgstr "Pay Later or Group Funds"
#. module: account_voucher
#: view:sale.receipt.report:0
#: field:sale.receipt.report,user_id:0
msgid "Salesman"
-msgstr ""
+msgstr "Prodavač"
#. module: account_voucher
#: view:sale.receipt.report:0
#: field:sale.receipt.report,delay_to_pay:0
msgid "Avg. Delay To Pay"
-msgstr ""
+msgstr "Pros. kašnjenje"
#. module: account_voucher
#: view:account.voucher:0
@@ -560,7 +568,7 @@ msgstr ""
#: selection:sale.receipt.report,state:0
#: report:voucher.print:0
msgid "Draft"
-msgstr ""
+msgstr "Nacrt"
#. module: account_voucher
#: field:account.voucher,writeoff_acc_id:0
@@ -576,7 +584,7 @@ msgstr ""
#: view:sale.receipt.report:0
#: field:sale.receipt.report,price_total_tax:0
msgid "Total With Tax"
-msgstr ""
+msgstr "Ukupno s porezom"
#. module: account_voucher
#: report:voucher.print:0
@@ -586,7 +594,7 @@ msgstr ""
#. module: account_voucher
#: selection:sale.receipt.report,month:0
msgid "August"
-msgstr ""
+msgstr "Kolovoz"
#. module: account_voucher
#: model:ir.actions.act_window,help:account_voucher.action_vendor_payment
@@ -596,16 +604,19 @@ msgid ""
"the payment, OpenERP will propose to reconcile your payment with the open "
"supplier invoices or bills."
msgstr ""
+"Nalozi za plaćanje omogućuju upravljanje plaćanjima obveza. Nakon odabira "
+"dobavljača, načina plaćanja i iznosa OpenERP će ponuditi zatvaranje "
+"otvorenih računa dobavljača, odnosno svih otvorenih stavki (IOS-a) partnera."
#. module: account_voucher
#: view:account.voucher:0
msgid "Total Amount"
-msgstr ""
+msgstr "Ukupni iznos"
#. module: account_voucher
#: selection:sale.receipt.report,month:0
msgid "June"
-msgstr ""
+msgstr "Lipanj"
#. module: account_voucher
#: field:account.voucher.line,type:0
@@ -620,30 +631,30 @@ msgstr ""
#. module: account_voucher
#: view:account.voucher:0
msgid "Payment Terms"
-msgstr ""
+msgstr "Uvjeti plaćanja"
#. module: account_voucher
#: view:account.voucher:0
msgid "Are you sure to unreconcile this record ?"
-msgstr ""
+msgstr "Sigurno želite otvoriti ovaj zapis?"
#. module: account_voucher
#: field:account.voucher,date:0
#: field:account.voucher.line,date_original:0
#: field:sale.receipt.report,date:0
msgid "Date"
-msgstr ""
+msgstr "Datum"
#. module: account_voucher
#: selection:sale.receipt.report,month:0
msgid "November"
-msgstr ""
+msgstr "Studeni"
#. module: account_voucher
#: view:account.voucher:0
#: view:sale.receipt.report:0
msgid "Extended Filters..."
-msgstr ""
+msgstr "Prošireni filtri..."
#. module: account_voucher
#: report:voucher.print:0
@@ -653,49 +664,49 @@ msgstr ""
#. module: account_voucher
#: field:account.bank.statement.line,amount_reconciled:0
msgid "Amount reconciled"
-msgstr ""
+msgstr "Zatvoreni iznos"
#. module: account_voucher
#: field:account.voucher,analytic_id:0
msgid "Write-Off Analytic Account"
-msgstr ""
+msgstr "Write-Off Analytic Account"
#. module: account_voucher
#: selection:account.voucher,pay_now:0
#: selection:sale.receipt.report,pay_now:0
msgid "Pay Directly"
-msgstr ""
+msgstr "Pay Directly"
#. module: account_voucher
#: selection:sale.receipt.report,month:0
msgid "October"
-msgstr ""
+msgstr "Listopad"
#. module: account_voucher
#: field:account.voucher,pre_line:0
msgid "Previous Payments ?"
-msgstr ""
+msgstr "Predhodna plaćanja ?"
#. module: account_voucher
#: selection:sale.receipt.report,month:0
msgid "January"
-msgstr ""
+msgstr "Siječanj"
#. module: account_voucher
#: model:ir.actions.act_window,name:account_voucher.action_voucher_list
#: model:ir.ui.menu,name:account_voucher.menu_encode_entries_by_voucher
msgid "Journal Vouchers"
-msgstr ""
+msgstr "Dnevnik vaučera"
#. module: account_voucher
#: view:account.voucher:0
msgid "Compute Tax"
-msgstr ""
+msgstr "Izračunaj porez"
#. module: account_voucher
#: selection:account.voucher.line,type:0
msgid "Credit"
-msgstr ""
+msgstr "Potražuje"
#. module: account_voucher
#: code:addons/account_voucher/account_voucher.py:645
@@ -706,7 +717,7 @@ msgstr ""
#. module: account_voucher
#: view:account.voucher:0
msgid "Open Supplier Journal Entries"
-msgstr ""
+msgstr "Otvori temeljnice dobavljača"
#. module: account_voucher
#: report:voucher.print:0
@@ -717,28 +728,28 @@ msgstr ""
#: model:ir.actions.act_window,name:account_voucher.action_vendor_payment
#: model:ir.ui.menu,name:account_voucher.menu_action_vendor_payment
msgid "Supplier Payment"
-msgstr ""
+msgstr "Plaćanja dobavljačima"
#. module: account_voucher
#: view:account.voucher:0
msgid "Post"
-msgstr ""
+msgstr "Post"
#. module: account_voucher
#: view:account.voucher:0
msgid "Invoices and outstanding transactions"
-msgstr ""
+msgstr "Računi i otvorene stavke"
#. module: account_voucher
#: view:sale.receipt.report:0
#: field:sale.receipt.report,price_total:0
msgid "Total Without Tax"
-msgstr ""
+msgstr "Uk. prije poreza"
#. module: account_voucher
#: view:account.voucher:0
msgid "Bill Date"
-msgstr ""
+msgstr "Datum računa"
#. module: account_voucher
#: help:account.voucher,state:0
@@ -752,55 +763,61 @@ msgid ""
"\n"
"* The 'Cancelled' state is used when user cancel voucher."
msgstr ""
+" * Vaučer je u stanju \"Nacrt\" za vrijeme upisa podataka i stavki vaučera "
+"dok se ne potvrdi ili otkaže. \n"
+" * U 'Pro-forma' stanju vaučeru još uvijek nije dodijeljen broj. \n"
+" * Stanje 'Knjižen' označava vaučer koji je dobio broj i za koji je izrađena "
+"temeljnica \n"
+" * U stanju 'Otkazan' su nevažeći vaučeri"
#. module: account_voucher
#: view:account.voucher:0
#: model:ir.model,name:account_voucher.model_account_voucher
msgid "Accounting Voucher"
-msgstr ""
+msgstr "Knjigovodstveni vaučer"
#. module: account_voucher
#: field:account.voucher,number:0
msgid "Number"
-msgstr ""
+msgstr "Broj"
#. module: account_voucher
#: model:ir.model,name:account_voucher.model_account_bank_statement
msgid "Bank Statement"
-msgstr ""
+msgstr "Izvod banke"
#. module: account_voucher
#: selection:sale.receipt.report,month:0
msgid "September"
-msgstr ""
+msgstr "Rujan"
#. module: account_voucher
#: view:account.voucher:0
msgid "Sales Information"
-msgstr ""
+msgstr "Informacije o prodaji"
#. module: account_voucher
#: model:ir.actions.act_window,name:account_voucher.action_sale_receipt_report_all
#: model:ir.ui.menu,name:account_voucher.menu_action_sale_receipt_report_all
#: view:sale.receipt.report:0
msgid "Sales Receipt Analysis"
-msgstr ""
+msgstr "Analiza izdanih vaučera"
#. module: account_voucher
#: field:account.voucher.line,voucher_id:0
#: model:res.request.link,name:account_voucher.req_link_voucher
msgid "Voucher"
-msgstr ""
+msgstr "Vaučer"
#. module: account_voucher
#: model:ir.model,name:account_voucher.model_account_invoice
msgid "Invoice"
-msgstr ""
+msgstr "Račun"
#. module: account_voucher
#: view:account.voucher:0
msgid "Voucher Items"
-msgstr ""
+msgstr "Sadržaj vaučera"
#. module: account_voucher
#: view:account.statement.from.invoice:0
@@ -808,20 +825,20 @@ msgstr ""
#: view:account.voucher:0
#: view:account.voucher.unreconcile:0
msgid "Cancel"
-msgstr ""
+msgstr "Odustani"
#. module: account_voucher
#: selection:account.voucher,state:0
#: view:sale.receipt.report:0
#: selection:sale.receipt.report,state:0
msgid "Pro-forma"
-msgstr ""
+msgstr "Pro-forma"
#. module: account_voucher
#: view:account.voucher:0
#: field:account.voucher,move_ids:0
msgid "Journal Items"
-msgstr ""
+msgstr "Stavke glavne knjige"
#. module: account_voucher
#: view:account.voucher:0
@@ -829,28 +846,28 @@ msgstr ""
#: model:ir.actions.act_window,name:account_voucher.action_vendor_receipt
#: model:ir.ui.menu,name:account_voucher.menu_action_vendor_receipt
msgid "Customer Payment"
-msgstr ""
+msgstr "Plaćanja kupaca"
#. module: account_voucher
#: view:account.statement.from.invoice:0
#: model:ir.actions.act_window,name:account_voucher.action_view_account_statement_from_invoice
msgid "Import Invoices in Statement"
-msgstr ""
+msgstr "Uvezi račune na nalog"
#. module: account_voucher
#: view:account.voucher:0
msgid "Pay"
-msgstr ""
+msgstr "Pay"
#. module: account_voucher
#: selection:account.voucher.line,type:0
msgid "Debit"
-msgstr ""
+msgstr "Duguje"
#. module: account_voucher
#: view:account.voucher:0
msgid "Are you sure to confirm this record ?"
-msgstr ""
+msgstr "Are you sure to confirm this record ?"
#. module: account_voucher
#: selection:account.voucher,payment_option:0
@@ -860,12 +877,12 @@ msgstr ""
#. module: account_voucher
#: view:account.voucher:0
msgid "Payment Method"
-msgstr ""
+msgstr "Način plaćanja"
#. module: account_voucher
#: field:account.voucher.line,name:0
msgid "Description"
-msgstr ""
+msgstr "Opis"
#. module: account_voucher
#: report:voucher.print:0
@@ -875,7 +892,7 @@ msgstr ""
#. module: account_voucher
#: selection:sale.receipt.report,month:0
msgid "May"
-msgstr ""
+msgstr "Svibanj"
#. module: account_voucher
#: field:account.statement.from.invoice,journal_ids:0
@@ -884,23 +901,23 @@ msgstr ""
#: view:sale.receipt.report:0
#: field:sale.receipt.report,journal_id:0
msgid "Journal"
-msgstr ""
+msgstr "Dnevnik"
#. module: account_voucher
#: view:account.voucher:0
msgid "Internal Notes"
-msgstr ""
+msgstr "Interne bilješke"
#. module: account_voucher
#: view:account.voucher:0
#: field:account.voucher,line_cr_ids:0
msgid "Credits"
-msgstr ""
+msgstr "Potraživanja"
#. module: account_voucher
#: field:account.voucher.line,amount_original:0
msgid "Original Amount"
-msgstr ""
+msgstr "Originalni iznos"
#. module: account_voucher
#: report:voucher.print:0
@@ -916,7 +933,7 @@ msgstr ""
#: field:sale.receipt.report,pay_now:0
#: selection:sale.receipt.report,type:0
msgid "Payment"
-msgstr ""
+msgstr "Plaćanje"
#. module: account_voucher
#: view:account.voucher:0
@@ -925,22 +942,22 @@ msgstr ""
#: selection:sale.receipt.report,state:0
#: report:voucher.print:0
msgid "Posted"
-msgstr ""
+msgstr "Proknjiženo"
#. module: account_voucher
#: view:account.voucher:0
msgid "Customer"
-msgstr ""
+msgstr "Kupac"
#. module: account_voucher
#: selection:sale.receipt.report,month:0
msgid "February"
-msgstr ""
+msgstr "Veljača"
#. module: account_voucher
#: view:account.voucher:0
msgid "Supplier Invoices and Outstanding transactions"
-msgstr ""
+msgstr "Ulazni računi i otvorene stavke"
#. module: account_voucher
#: field:account.voucher,comment:0
@@ -950,38 +967,38 @@ msgstr ""
#. module: account_voucher
#: selection:sale.receipt.report,month:0
msgid "April"
-msgstr ""
+msgstr "Travanj"
#. module: account_voucher
#: field:account.voucher,type:0
msgid "Default Type"
-msgstr ""
+msgstr "Uobičajeni tip"
#. module: account_voucher
#: model:ir.model,name:account_voucher.model_account_statement_from_invoice
#: model:ir.model,name:account_voucher.model_account_statement_from_invoice_lines
msgid "Entries by Statement from Invoices"
-msgstr ""
+msgstr "Stavke po izvodu iz računa"
#. module: account_voucher
#: field:account.voucher,move_id:0
msgid "Account Entry"
-msgstr ""
+msgstr "Temeljnica"
#. module: account_voucher
#: field:sale.receipt.report,state:0
msgid "Voucher State"
-msgstr ""
+msgstr "Stanje vaučera"
#. module: account_voucher
#: help:account.voucher,date:0
msgid "Effective date for accounting entries"
-msgstr ""
+msgstr "Effective date for accounting entries"
#. module: account_voucher
#: selection:account.voucher,payment_option:0
msgid "Keep Open"
-msgstr ""
+msgstr "Ostavi otvoreno"
#. module: account_voucher
#: view:account.voucher.unreconcile:0
@@ -989,31 +1006,36 @@ msgid ""
"If you unreconciliate transactions, you must also verify all the actions "
"that are linked to those transactions because they will not be disable"
msgstr ""
+"Ako želite poništiti zatvaranja transakcija, morate također provjeriti sve "
+"radnje koje su povezane sa tim transakcijama jer neće biti onemogućene"
#. module: account_voucher
#: field:account.voucher.line,untax_amount:0
msgid "Untax Amount"
-msgstr ""
+msgstr "Osnovica"
#. module: account_voucher
#: model:ir.model,name:account_voucher.model_sale_receipt_report
msgid "Sales Receipt Statistics"
-msgstr ""
+msgstr "Statistika izdanih vaučera"
#. module: account_voucher
#: view:sale.receipt.report:0
#: field:sale.receipt.report,year:0
msgid "Year"
-msgstr ""
+msgstr "Godina"
#. module: account_voucher
#: view:account.voucher:0
#: field:account.voucher.line,amount_unreconciled:0
msgid "Open Balance"
-msgstr ""
+msgstr "Otvoreni saldo"
#. module: account_voucher
#: view:account.voucher:0
#: field:account.voucher,amount:0
msgid "Total"
-msgstr ""
+msgstr "Ukupno"
+
+#~ msgid "Dr/Cr"
+#~ msgstr "Dr/Cr"
diff --git a/addons/account_voucher/security/ir.model.access.csv b/addons/account_voucher/security/ir.model.access.csv
index a8d9c7f580b..eac7fc13818 100644
--- a/addons/account_voucher/security/ir.model.access.csv
+++ b/addons/account_voucher/security/ir.model.access.csv
@@ -1,9 +1,7 @@
-"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
-"access_account_voucher_user","account.voucher","model_account_voucher","account.group_account_user",1,1,1,1
-"access_account_voucher_line_accountant","account.voucher.line.accountant","model_account_voucher_line","account.group_account_user",1,1,1,1
-"access_account_voucher_manager","account.voucher","model_account_voucher","account.group_account_manager",1,0,0,0
-"access_account_voucher_line_manager","account.voucher.line","model_account_voucher_line","account.group_account_manager",1,0,0,0
-"access_account_voucher_invoice","account.voucher invoice","model_account_voucher","account.group_account_invoice",1,1,1,1
-"access_account_voucher_line_invoice","account.voucher.line invoice","model_account_voucher_line","account.group_account_invoice",1,1,1,1
-"access_sale_receipt_report_manager","account.sale.receipt.report","model_sale_receipt_report","account.group_account_manager",1,1,1,1
-"access_sale_receipt_report_user","account.sale.receipt.report","model_sale_receipt_report","account.group_account_user",1,0,0,0
+id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
+access_account_voucher_manager,account.voucher,model_account_voucher,account.group_account_manager,1,0,0,0
+access_account_voucher_line_manager,account.voucher.line,model_account_voucher_line,account.group_account_manager,1,0,0,0
+access_account_voucher_invoice,account.voucher invoice,model_account_voucher,account.group_account_invoice,1,1,1,1
+access_account_voucher_line_invoice,account.voucher.line invoice,model_account_voucher_line,account.group_account_invoice,1,1,1,1
+access_sale_receipt_report_manager,account.sale.receipt.report,model_sale_receipt_report,account.group_account_manager,1,1,1,1
+access_sale_receipt_report_user,account.sale.receipt.report,model_sale_receipt_report,account.group_account_user,1,0,0,0
diff --git a/addons/account_voucher/static/src/img/icon.png b/addons/account_voucher/static/src/img/icon.png
new file mode 100644
index 00000000000..afad1331e2e
Binary files /dev/null and b/addons/account_voucher/static/src/img/icon.png differ
diff --git a/addons/account_voucher/test/account_voucher.yml b/addons/account_voucher/test/account_voucher.yml
index 33ae609e3f3..7e5482aa931 100644
--- a/addons/account_voucher/test/account_voucher.yml
+++ b/addons/account_voucher/test/account_voucher.yml
@@ -5,7 +5,6 @@
account_id: account.cash
amount: 1000.0
company_id: base.main_company
- currency_id: base.EUR
journal_id: account.bank_journal
name: Voucher for Axelor
narration: Basic Pc
diff --git a/addons/account_voucher/test/account_voucher_report.yml b/addons/account_voucher/test/account_voucher_report.yml
index b41c33e4470..85432f747aa 100644
--- a/addons/account_voucher/test/account_voucher_report.yml
+++ b/addons/account_voucher/test/account_voucher_report.yml
@@ -1,7 +1,7 @@
-
Demo for Account Voucher
-
- !record {model: account.voucher, id: account_voucher_voucheraxelor0}:
+ !record {model: account.voucher, id: account_voucher_voucheraxelor0again}:
account_id: account.cash
company_id: base.main_company
journal_id: account.bank_journal
@@ -19,6 +19,6 @@
-
!python {model: account.voucher}: |
import netsvc, tools, os
- (data, format) = netsvc.LocalService('report.voucher.cash_receipt.drcr').create(cr, uid, [ref("account_voucher_voucheraxelor0")], {}, {})
+ (data, format) = netsvc.LocalService('report.voucher.cash_receipt.drcr').create(cr, uid, [ref("account_voucher_voucheraxelor0again")], {}, {})
if tools.config['test_report_directory']:
file(os.path.join(tools.config['test_report_directory'], 'account_voucher-report.'+format), 'wb+').write(data)
diff --git a/addons/account_voucher/test/case1_usd_usd.yml b/addons/account_voucher/test/case1_usd_usd.yml
index e19e7e3ee46..3432d3cf27b 100644
--- a/addons/account_voucher/test/case1_usd_usd.yml
+++ b/addons/account_voucher/test/case1_usd_usd.yml
@@ -1,6 +1,15 @@
-
In order to check the Account_voucher module with multi-currency in OpenERP,
I create 2 Invoices in USD and make 2 Payments in USD based on the currency rating on that particular date
+-
+ I set the income and expense currency accounts on the main company
+-
+ !python {model: res.company}: |
+ from datetime import datetime
+ vals = {
+ 'income_currency_exchange_account_id': ref('account.o_expense'),
+ 'expense_currency_exchange_account_id': ref('account.o_expense')}
+ self.write(cr, uid, ref('base.main_company'), vals)
-
I create currency USD in OpenERP for January of 1.333333 Rate
-
@@ -131,39 +140,41 @@
assert (move_line.debit - move_line.credit == 80), "Invoice move is not correct for debtors account"
-
- I create the first voucher of payment
-
+ I set the context that will be used for the encoding of all the vouchers of this file
+-
+ !context
+ 'type': 'receipt'
+-
+ I create the first voucher of payment with values 240 USD, journal USD,
+-
+ !record {model: account.voucher, id: account_voucher_1_case1, view: view_vendor_receipt_form}:
+ account_id: account.cash
+ amount: 240.0
+ company_id: base.main_company
+ journal_id: bank_journal_USD
+ name: 'First payment: Case 1 USD/USD'
+ partner_id: base.res_partner_seagate
+ period_id: account.period_3
+ date: !eval time.strftime("%Y-03-01")
+ payment_option: 'with_writeoff'
+ writeoff_acc_id: account.a_expense
+ comment: 'Write Off'
+
+-
+ I fill amounts 180 for the invoice of 200$ and 70 for the invoice of 100$>
-
!python {model: account.voucher}: |
import netsvc, time
vals = {}
- res = self.onchange_partner_id(cr, uid, [], ref("base.res_partner_seagate"), ref('bank_journal_USD'), 240.00, 2, ttype='receipt', date=False)
- vals = {
- 'account_id': ref('account.cash'),
- 'amount': 240.00,
- 'company_id': ref('base.main_company'),
- 'currency_id': ref('base.USD'),
- 'journal_id': ref('bank_journal_USD'),
- 'partner_id': ref('base.res_partner_seagate'),
- 'period_id': ref('account.period_3'),
- 'type': 'receipt',
- 'date': time.strftime("%Y-%m-%d"),
- 'payment_option': 'with_writeoff',
- 'writeoff_acc_id': ref('account.a_expense'),
- 'comment': 'Write Off',
- 'name': 'First payment: Case 1 USD/USD',
- }
- vals.update(self.onchange_date(cr, uid, [], time.strftime('%Y-03-01'), ref('base.USD'), 240)['value'])
- if not res['value']['line_cr_ids']:
- res['value']['line_cr_ids'] = [{'type': 'cr', 'account_id': ref('account.a_recv'),}]
- for item in res['value']['line_cr_ids']:
- if item['amount_unreconciled'] == 200.00:
- item['amount'] = 180.00
+ voucher_id = self.browse(cr, uid, ref('account_voucher_1_case1'))
+ data = []
+ for item in voucher_id.line_cr_ids:
+ if item.amount_unreconciled == 200.00:
+ data += [(item.id, 180.0)]
else:
- item['amount'] = 70.00
- vals['line_cr_ids'] = [(0,0,i) for i in res['value']['line_cr_ids']]
- id = self.create(cr, uid, vals)
- voucher_id = self.browse(cr, uid, id)
+ data += [(item.id, 70.0)]
+ for line_id, amount in data:
+ self.pool.get('account.voucher.line').write(cr, uid, [line_id], {'amount': amount})
assert (voucher_id.state=='draft'), "Voucher is not in draft state"
-
I check that writeoff amount computed is 10.0
@@ -228,41 +239,35 @@
move_line = move_line_obj.browse(cr, uid, move_lines[0])
assert (move_line.amount_residual_currency == 30.0) , "Residual amount is not correct for first Invoice"
-
- I create the second voucher of payment
-
-
+ I create the second voucher of payment with values 45 USD, journal USD,
+-
+ !record {model: account.voucher, id: account_voucher_2_case1}:
+ account_id: account.cash
+ amount: 45.0
+ company_id: base.main_company
+ journal_id: bank_journal_USD
+ name: 'Second payment: Case 1'
+ partner_id: base.res_partner_seagate
+ period_id: account.period_3
+ date: !eval time.strftime("%Y-04-01")
+ payment_option: 'with_writeoff'
+ writeoff_acc_id: account.a_expense
+ comment: 'Write Off'
+-
+ I fill amounts 20 for the invoice of 200$ and 30 for the invoice of 100$
-
!python {model: account.voucher}: |
import netsvc, time
vals = {}
- res = self.onchange_partner_id(cr, uid, [], ref("base.res_partner_seagate"), ref('bank_journal_USD'), 45.00, 2, ttype='receipt', date=False)
- vals = {
- 'account_id': ref('account.cash'),
- 'amount': 45.00,
- 'exchange_acc_id': ref('account.o_expense'),
- 'company_id': ref('base.main_company'),
- 'currency_id': ref('base.USD'),
- 'journal_id': ref('bank_journal_USD'),
- 'partner_id': ref('base.res_partner_seagate'),
- 'period_id': ref('account.period_3'),
- 'type': 'receipt',
- 'date': time.strftime("%Y-%m-%d"),
- 'payment_option': 'with_writeoff',
- 'writeoff_acc_id': ref('account.a_expense'),
- 'comment': 'Write Off',
- 'name': 'Second payment: Case 1',
- }
- vals.update(self.onchange_date(cr, uid, [], time.strftime('%Y-04-01'), ref('base.USD'), 45.0)['value'])
- if not res['value']['line_cr_ids']:
- res['value']['line_cr_ids'] = [{'type': 'cr', 'account_id': ref('account.a_recv'),}]
- for item in res['value']['line_cr_ids']:
- if item['amount_unreconciled'] == 20.00:
- item['amount'] = 20.00
+ voucher_id = self.browse(cr, uid, ref('account_voucher_2_case1'))
+ data = []
+ for item in voucher_id.line_cr_ids:
+ if item.amount_unreconciled == 20.00:
+ data += [(item.id, 20.0)]
else:
- item['amount'] = 30.00
- vals['line_cr_ids'] = [(0,0,i) for i in res['value']['line_cr_ids']]
- id = self.create(cr, uid, vals)
- voucher_id = self.browse(cr, uid, id)
+ data += [(item.id, 30.0)]
+ for line_id, amount in data:
+ self.pool.get('account.voucher.line').write(cr, uid, [line_id], {'amount': amount})
assert (voucher_id.state=='draft'), "Voucher is not in draft state"
-
I check that writeoff amount computed is 5.0
diff --git a/addons/account_voucher/test/case2_suppl_usd_eur.yml b/addons/account_voucher/test/case2_suppl_usd_eur.yml
index 23f11d28803..0ad523b8004 100644
--- a/addons/account_voucher/test/case2_suppl_usd_eur.yml
+++ b/addons/account_voucher/test/case2_suppl_usd_eur.yml
@@ -1,6 +1,15 @@
-
In order to check the Account_voucher module with multi-currency in OpenERP,
I create 2 Invoices in USD and make 2 Payments one in USD and another in EUR, based on the currency rating on that particular date
+-
+ I set the income and expense currency accounts on the main company
+-
+ !python {model: res.company}: |
+ from datetime import datetime
+ vals = {
+ 'income_currency_exchange_account_id': ref('account.o_expense'),
+ 'expense_currency_exchange_account_id': ref('account.o_expense')}
+ self.write(cr, uid, ref('base.main_company'), vals)
-
I create a bank journal with EUR as currency
-
@@ -104,38 +113,41 @@
move_line = move_line_obj.browse(cr, uid, move_lines[0])
assert (move_line.debit - move_line.credit == -80), "Invoice move is incorrect for debtors account"
-
- I create the first voucher of payment
-
+ I set the context that will be used for the encoding of all the vouchers of this file
+-
+ !context
+ 'type': 'payment'
+-
+ I create the first voucher of payment with values 240 EUR, journal EUR
+-
+ !record {model: account.voucher, id: account_voucher_1_case2_suppl, view: view_vendor_payment_form}:
+ account_id: account.cash
+ amount: 240.0
+ company_id: base.main_company
+ journal_id: bank_journal_EUR
+ name: 'First payment: Case 2 SUPPL USD/EUR',
+ partner_id: base.res_partner_seagate
+ period_id: account.period_3
+ date: !eval time.strftime("%Y-03-01")
+ payment_option: 'with_writeoff'
+ writeoff_acc_id: account.a_expense
+ comment: 'Write Off'
+
+-
+ I fill amounts 180 for the invoice of 200$ and 70 for the invoice of 100$
-
!python {model: account.voucher}: |
import netsvc, time
vals = {}
- res = self.onchange_partner_id(cr, uid, [], ref("base.res_partner_seagate"), ref('bank_journal_EUR'), 240.0, 2, ttype='payment', date=False)
- vals = {
- 'account_id': ref('account.cash'),
- 'amount': 240.0,
- 'company_id': ref('base.main_company'),
- 'currency_id': ref('base.EUR'),
- 'journal_id': ref('bank_journal_EUR'),
- 'partner_id': ref('base.res_partner_seagate'),
- 'period_id': ref('account.period_3'),
- 'type': 'payment',
- 'date': time.strftime("%Y-03-01"),
- 'payment_option': 'with_writeoff',
- 'writeoff_acc_id': ref('account.a_expense'),
- 'comment': 'Write Off',
- 'name': 'First payment: Case 2 SUPPL USD/EUR',
- }
- if not res['value']['line_dr_ids']:
- res['value']['line_dr_ids'] = [{'type': 'dr', 'account_id': ref('account.a_pay'),}]
- for item in res['value']['line_dr_ids']:
- if item['amount_unreconciled'] == 200.00:
- item['amount'] = 180.00
+ voucher_id = self.browse(cr, uid, ref('account_voucher_1_case2_suppl'))
+ data = []
+ for item in voucher_id.line_cr_ids:
+ if item.amount_unreconciled == 200.00:
+ data += [(item.id, 180.0)]
else:
- item['amount'] = 70.00
- vals['line_dr_ids'] = [(0,0,i) for i in res['value']['line_dr_ids']]
- id = self.create(cr, uid, vals)
- voucher_id = self.browse(cr, uid, id)
+ data += [(item.id, 70.0)]
+ for line_id, amount in data:
+ self.pool.get('account.voucher.line').write(cr, uid, [line_id], {'amount': amount})
assert (voucher_id.state=='draft'), "Voucher is not in draft state"
-
I check that writeoff amount computed is -15.0
@@ -201,7 +213,7 @@
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', invoice_id.move_id.id), ('invoice', '=', invoice_id.id), ('account_id', '=', invoice_id.account_id.id)])
move_line = move_line_obj.browse(cr, uid, move_lines[0])
assert (move_line.amount_residual_currency == 20.0 and move_line.amount_residual == 15) , "Residual amount is not correct for first Invoice"
--
+-
I check the residual amuont of Invoice2, should be 30 in residual currency and 24 in amount_residual
-
!python {model: account.invoice}: |
@@ -210,40 +222,37 @@
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', invoice_id.move_id.id), ('invoice', '=', invoice_id.id), ('account_id', '=', invoice_id.account_id.id)])
move_line = move_line_obj.browse(cr, uid, move_lines[0])
assert (move_line.amount_residual_currency == 30 and move_line.amount_residual == 24) , "Residual amount is not correct for second Invoice"
--
- I create the second voucher of payment
-
+-
+ I create the second voucher of payment with values 45 USD, journal USD,
+-
+ !record {model: account.voucher, id: account_voucher_2_case2_suppl, view: view_vendor_payment_form}:
+ account_id: account.cash
+ amount: 45.0
+ company_id: base.main_company
+ journal_id: bank_journal_USD
+ partner_id: base.res_partner_seagate
+ period_id: account.period_3
+ date: !eval time.strftime("%Y-04-01")
+ payment_option: 'with_writeoff'
+ writeoff_acc_id: account.a_expense
+ comment: 'Write Off'
+ name: 'Second payment: Case 2 SUPPL USD/EUR'
+
+-
+ I fill amounts 20 for the invoice of 200$ and 30 for the invoice of 100$>
-
!python {model: account.voucher}: |
import netsvc, time
vals = {}
- res = self.onchange_partner_id(cr, uid, [], ref("base.res_partner_seagate"), ref('bank_journal_EUR'), 45.0, 2, ttype='payment', date=False)
- vals = {
- 'account_id': ref('account.cash'),
- 'amount': 45.0,
- 'company_id': ref('base.main_company'),
- 'currency_id': ref('base.USD'),
- 'journal_id': ref('bank_journal_USD'),
- 'partner_id': ref('base.res_partner_seagate'),
- 'period_id': ref('account.period_3'),
- 'type': 'payment',
- 'date': time.strftime("%Y-%m-%d"),
- 'payment_option': 'with_writeoff',
- 'writeoff_acc_id': ref('account.a_expense'),
- 'comment': 'Write Off',
- 'name': 'Second payment: Case 2 SUPPL USD/EUR',
- }
- vals.update(self.onchange_date(cr, uid, [], time.strftime('%Y-04-01'), ref('base.USD'), 45.0)['value'])
- if not res['value']['line_dr_ids']:
- res['value']['line_dr_ids'] = [{'type': 'dr', 'account_id': ref('account.a_pay'),}]
- for item in res['value']['line_dr_ids']:
- if item['amount_unreconciled'] == 20.00:
- item['amount'] = 20.00
+ voucher_id = self.browse(cr, uid, ref('account_voucher_2_case2_suppl'))
+ data = []
+ for item in voucher_id.line_cr_ids:
+ if item.amount_unreconciled == 20.00:
+ data += [(item.id, 20.0)]
else:
- item['amount'] = 30.00
- vals['line_dr_ids'] = [(0,0,i) for i in res['value']['line_dr_ids']]
- id = self.create(cr, uid, vals)
- voucher_id = self.browse(cr, uid, id)
+ data += [(item.id, 30.0)]
+ for line_id, amount in data:
+ self.pool.get('account.voucher.line').write(cr, uid, [line_id], {'amount': amount})
assert (voucher_id.state=='draft'), "Voucher is not in draft state"
-
I check that writeoff amount computed is -5.0
diff --git a/addons/account_voucher/test/case2_usd_eur_debtor_in_eur.yml b/addons/account_voucher/test/case2_usd_eur_debtor_in_eur.yml
index 67287591778..ac77aef622d 100644
--- a/addons/account_voucher/test/case2_usd_eur_debtor_in_eur.yml
+++ b/addons/account_voucher/test/case2_usd_eur_debtor_in_eur.yml
@@ -1,6 +1,15 @@
-
In order to check the Account_voucher module with multi-currency in OpenERP,
I create 2 Invoices in USD and make 2 Payments one in USD and another in EUR, based on the currency rating on that particular date
+-
+ I set the income and expense currency accounts on the main company
+-
+ !python {model: res.company}: |
+ from datetime import datetime
+ vals = {
+ 'income_currency_exchange_account_id': ref('account.o_expense'),
+ 'expense_currency_exchange_account_id': ref('account.o_expense')}
+ self.write(cr, uid, ref('base.main_company'), vals)
-
I modify the debtor account in order to make sure there is no currency_id linked
-
@@ -136,38 +145,41 @@
move_line = move_line_obj.browse(cr, uid, move_lines[0])
assert (move_line.debit - move_line.credit == 80), "Invoice move is incorrect for debtors account"
-
- I create the first voucher of payment
-
+ I set the context that will be used for the encoding of all the vouchers of this file
+-
+ !context
+ 'type': 'receipt'
+-
+ I create the first voucher of payment with values 200 EUR, journal EUR
+-
+ !record {model: account.voucher, id: account_voucher_1_case2a, view: view_vendor_receipt_form}:
+ account_id: account.cash
+ amount: 200.0
+ company_id: base.main_company
+ journal_id: bank_journal_EUR
+ partner_id: base.res_partner_seagate
+ period_id: account.period_3
+ date: !eval time.strftime("%Y-03-01")
+ payment_option: 'with_writeoff'
+ writeoff_acc_id: account.a_expense
+ comment: 'Write Off'
+ name: 'First payment: Case 2 USD/EUR DR EUR'
+
+-
+ I fill amounts 130 for the invoice of 200$ and 70 for the invoice of 100$
-
!python {model: account.voucher}: |
import netsvc, time
vals = {}
- res = self.onchange_partner_id(cr, uid, [], ref("base.res_partner_seagate"), ref('bank_journal_EUR'), 240.0, False, ttype='receipt', date=False)
- vals = {
- 'account_id': ref('account.cash'),
- 'amount': 200.0,
- 'company_id': ref('base.main_company'),
- 'currency_id': False,
- 'journal_id': ref('bank_journal_EUR'),
- 'partner_id': ref('base.res_partner_seagate'),
- 'period_id': ref('account.period_3'),
- 'type': 'receipt',
- 'date': time.strftime("%Y-03-01"),
- 'payment_option': 'with_writeoff',
- 'writeoff_acc_id': ref('account.a_expense'),
- 'comment': 'Write Off',
- 'name': 'First payment: Case 2 USD/EUR DR EUR',
- }
- if not res['value']['line_cr_ids']:
- res['value']['line_cr_ids'] = [{'type': 'cr', 'account_id': ref('account.a_recv'),}]
- for item in res['value']['line_cr_ids']:
- if item['amount_unreconciled'] == 150.00:
- item['amount'] = 130.00
+ voucher_id = self.browse(cr, uid, ref('account_voucher_1_case2a'))
+ data = []
+ for item in voucher_id.line_cr_ids:
+ if item.amount_unreconciled == 150.00:
+ data += [(item.id, 130.0)]
else:
- item['amount'] = 70.00
- vals['line_cr_ids'] = [(0,0,i) for i in res['value']['line_cr_ids']]
- id = self.create(cr, uid, vals)
- voucher_id = self.browse(cr, uid, id)
+ data += [(item.id, 70.0)]
+ for line_id, amount in data:
+ self.pool.get('account.voucher.line').write(cr, uid, [line_id], {'amount': amount})
assert (voucher_id.state=='draft'), "Voucher is not in draft state"
-
I confirm the voucher
@@ -187,18 +199,6 @@
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', voucher_id.move_id.id)])
for move_line in move_line_obj.browse(cr, uid, move_lines):
assert move_line.state == 'valid', "Voucher move is not valid"
--
- I check that my debtor account is correct
--
- I check that the debtor account has 2 new lines with 0 in amount_currency columns and their credit columns are 130 and 70
--
- !python {model: account.voucher}: |
- voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 2 USD/EUR DR EUR'), ('partner_id', '=', ref('base.res_partner_seagate'))])
- voucher_id = self.browse(cr, uid, voucher[0])
- move_line_obj = self.pool.get('account.move.line')
- move_lines = move_line_obj.search(cr, uid, [('move_id', '=', voucher_id.move_id.id)])
- for move_line in move_line_obj.browse(cr, uid, move_lines):
- assert move_line.amount_currency == 0.00, "A line has the 'amount_currency' column filled"
-
I check the residual amount of Invoice1, should be 55.56 in residual currency and 20 in amount_residual
-
@@ -217,41 +217,37 @@
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', invoice_id.move_id.id), ('invoice', '=', invoice_id.id), ('account_id', '=', invoice_id.account_id.id)])
move_line = move_line_obj.browse(cr, uid, move_lines[0])
assert (move_line.amount_residual_currency == 22.22 and move_line.amount_residual == 10) , "Residual amount is not correct for second Invoice"
--
- I create the second voucher of payment
-
+-
+ I create the second voucher of payment with values 80 USD, journal USD
+-
+ !record {model: account.voucher, id: account_voucher_2_case2a, view: view_vendor_receipt_form}:
+ account_id: account.cash
+ amount: 80
+ company_id: base.main_company
+ journal_id: bank_journal_USD
+ partner_id: base.res_partner_seagate
+ period_id: account.period_3
+ date: !eval time.strftime("%Y-04-01")
+ payment_option: 'with_writeoff'
+ writeoff_acc_id: account.a_expense
+ comment: 'Write Off'
+ name: 'Second payment: Case 2 SUPPL USD/EUR DR EUR'
+
+-
+ and I fully reconcile the 2 previous invoices
-
!python {model: account.voucher}: |
import netsvc, time
vals = {}
- res = self.onchange_partner_id(cr, uid, [], ref("base.res_partner_seagate"), ref('bank_journal_USD'), 80.0, 2, ttype='receipt', date=False)
- vals = {
- 'account_id': ref('account.cash'),
- 'amount': 80.0,
- 'company_id': ref('base.main_company'),
- 'currency_id': ref('base.USD'),
- 'journal_id': ref('bank_journal_USD'),
- 'partner_id': ref('base.res_partner_seagate'),
- 'period_id': ref('account.period_3'),
- 'type': 'receipt',
- 'date': time.strftime("%Y-%m-%d"),
- 'payment_option': 'with_writeoff',
- 'writeoff_acc_id': ref('account.a_expense'),
- 'exchange_acc_id': ref('account.o_expense'),
- 'comment': 'Write Off',
- 'name': 'Second payment: Case 2 SUPPL USD/EUR DR EUR',
- }
- vals.update(self.onchange_date(cr, uid, [], time.strftime('%Y-04-01'), ref('base.USD'), 80.0)['value'])
- if not res['value']['line_cr_ids']:
- res['value']['line_cr_ids'] = [{'type': 'cr', 'account_id': ref('account.a_recv'),}]
- for item in res['value']['line_cr_ids']:
- if item['amount_unreconciled'] == 55.56:
- item['amount'] = 55.56
+ voucher_id = self.browse(cr, uid, ref('account_voucher_2_case2a'))
+ data = []
+ for item in voucher_id.line_cr_ids:
+ if item.amount_unreconciled == 55.56:
+ data += [(item.id, 55.56)]
else:
- item['amount'] = 22.22
- vals['line_cr_ids'] = [(0,0,i) for i in res['value']['line_cr_ids']]
- id = self.create(cr, uid, vals)
- voucher_id = self.browse(cr, uid, id)
+ data += [(item.id, 22.22)]
+ for line_id, amount in data:
+ self.pool.get('account.voucher.line').write(cr, uid, [line_id], {'amount': amount})
assert (voucher_id.state=='draft'), "Voucher is not in draft state"
-
I check that writeoff amount computed is 2.22
diff --git a/addons/account_voucher/test/case2_usd_eur_debtor_in_usd.yml b/addons/account_voucher/test/case2_usd_eur_debtor_in_usd.yml
index ec4d653c8ab..a3a32a32082 100644
--- a/addons/account_voucher/test/case2_usd_eur_debtor_in_usd.yml
+++ b/addons/account_voucher/test/case2_usd_eur_debtor_in_usd.yml
@@ -1,6 +1,15 @@
-
In order to check the Account_voucher module with multi-currency in OpenERP,
I create 2 Invoices in USD and make 2 Payments one in USD and another in EUR, based on the currency rating on that particular date
+-
+ I set the income and expense currency accounts on the main company
+-
+ !python {model: res.company}: |
+ from datetime import datetime
+ vals = {
+ 'income_currency_exchange_account_id': ref('account.o_expense'),
+ 'expense_currency_exchange_account_id': ref('account.o_expense')}
+ self.write(cr, uid, ref('base.main_company'), vals)
-
I modify the debtor account in order to set the currency_id = USD
-
@@ -136,38 +145,41 @@
move_line = move_line_obj.browse(cr, uid, move_lines[0])
assert (move_line.debit - move_line.credit == 80), "Invoice move is incorrect for debtors account"
-
- I create the first voucher of payment
-
+ I set the context that will be used for the encoding of all the vouchers of this file
+-
+ !context
+ 'type': 'receipt'
+-
+ I create the first voucher of payment with values 200 EUR, journal EUR
+-
+ !record {model: account.voucher, id: account_voucher_1_case2b, view: view_vendor_receipt_form}:
+ account_id: account.cash
+ amount: 200.0
+ company_id: base.main_company
+ journal_id: bank_journal_EUR
+ partner_id: base.res_partner_seagate
+ period_id: account.period_3
+ date: !eval time.strftime("%Y-03-01")
+ payment_option: 'with_writeoff'
+ writeoff_acc_id: account.a_expense
+ comment: 'Write Off'
+ name: 'First payment: Case 2 USD/EUR DR USD'
+
+-
+ I fill amounts 130 for the invoice of 200$ and 70 for the invoice of 100$>
-
!python {model: account.voucher}: |
import netsvc, time
vals = {}
- res = self.onchange_partner_id(cr, uid, [], ref("base.res_partner_seagate"), ref('bank_journal_EUR'), 200.0, False, ttype='receipt', date=False)
- vals = {
- 'account_id': ref('account.cash'),
- 'amount': 200.0,
- 'company_id': ref('base.main_company'),
- 'currency_id': ref('base.EUR'),
- 'journal_id': ref('bank_journal_EUR'),
- 'partner_id': ref('base.res_partner_seagate'),
- 'period_id': ref('account.period_3'),
- 'type': 'receipt',
- 'date': time.strftime("%Y-03-01"),
- 'payment_option': 'with_writeoff',
- 'writeoff_acc_id': ref('account.a_expense'),
- 'comment': 'Write Off',
- 'name': 'First payment: Case 2 USD/EUR DR USD',
- }
- if not res['value']['line_cr_ids']:
- res['value']['line_cr_ids'] = [{'type': 'cr', 'account_id': ref('account.a_recv'),}]
- for item in res['value']['line_cr_ids']:
- if item['amount_unreconciled'] == 150.00:
- item['amount'] = 130.00
+ voucher_id = self.browse(cr, uid, ref('account_voucher_1_case2b'))
+ data = []
+ for item in voucher_id.line_cr_ids:
+ if item.amount_unreconciled == 150.00:
+ data += [(item.id, 130.0)]
else:
- item['amount'] = 70.00
- vals['line_cr_ids'] = [(0,0,i) for i in res['value']['line_cr_ids']]
- id = self.create(cr, uid, vals)
- voucher_id = self.browse(cr, uid, id)
+ data += [(item.id, 70.0)]
+ for line_id, amount in data:
+ self.pool.get('account.voucher.line').write(cr, uid, [line_id], {'amount': amount})
assert (voucher_id.state=='draft'), "Voucher is not in draft state"
-
I confirm the voucher
@@ -211,8 +223,8 @@
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', invoice_id.move_id.id), ('invoice', '=', invoice_id.id), ('account_id', '=', invoice_id.account_id.id)])
move_line = move_line_obj.browse(cr, uid, move_lines[0])
assert (move_line.amount_residual_currency == 55.56 and move_line.amount_residual == 20) , "Residual amount is not correct for first Invoice"
-- toto
- I check the residual amuont of Invoice2, should be 22.22 in residual currency and 10 in amount_residual
+-
+ I check the residual amount of Invoice2, should be 22.22 in residual currency and 10 in amount_residual
-
!python {model: account.invoice}: |
invoice_id = self.browse(cr, uid, ref("account_second_invoice_feb_michal"))
@@ -220,41 +232,37 @@
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', invoice_id.move_id.id), ('invoice', '=', invoice_id.id), ('account_id', '=', invoice_id.account_id.id)])
move_line = move_line_obj.browse(cr, uid, move_lines[0])
assert (move_line.amount_residual_currency == 22.22 and move_line.amount_residual == 10) , "Residual amount is not correct for second Invoice"
--
- I create the second voucher of payment
-
+-
+ I create the second voucher of payment with values 80 USD, journal USD
+-
+ !record {model: account.voucher, id: account_voucher_2_case2b, view: view_vendor_receipt_form}:
+ account_id: account.cash
+ amount: 80.0
+ company_id: base.main_company
+ journal_id: bank_journal_USD
+ partner_id: base.res_partner_seagate
+ period_id: account.period_3
+ date: !eval time.strftime("%Y-04-01")
+ payment_option: 'with_writeoff'
+ writeoff_acc_id: account.a_expense
+ comment: 'Write Off'
+ name: 'Second payment: Case 2 SUPPL USD/EUR DR USD'
+
+-
+ and I fully reconcil the 2 previous invoices
-
!python {model: account.voucher}: |
import netsvc, time
vals = {}
- res = self.onchange_partner_id(cr, uid, [], ref("base.res_partner_seagate"), ref('bank_journal_USD'), 80.0, ref('base.USD'), ttype='receipt', date=False)
- vals = {
- 'account_id': ref('account.cash'),
- 'amount': 80.0,
- 'company_id': ref('base.main_company'),
- 'currency_id': ref('base.USD'),
- 'journal_id': ref('bank_journal_USD'),
- 'partner_id': ref('base.res_partner_seagate'),
- 'period_id': ref('account.period_3'),
- 'type': 'receipt',
- 'date': time.strftime("%Y-%m-%d"),
- 'payment_option': 'with_writeoff',
- 'writeoff_acc_id': ref('account.a_expense'),
- 'exchange_acc_id': ref('account.o_expense'),
- 'comment': 'Write Off',
- 'name': 'Second payment: Case 2 SUPPL USD/EUR DR USD',
- }
- vals.update(self.onchange_date(cr, uid, [], time.strftime('%Y-04-01'), ref('base.USD'), 80.0)['value'])
- if not res['value']['line_cr_ids']:
- res['value']['line_cr_ids'] = [{'type': 'cr', 'account_id': ref('account.a_recv'),}]
- for item in res['value']['line_cr_ids']:
- if item['amount_unreconciled'] == 55.56:
- item['amount'] = 55.56
+ voucher_id = self.browse(cr, uid, ref('account_voucher_2_case2b'))
+ data = []
+ for item in voucher_id.line_cr_ids:
+ if item.amount_unreconciled == 55.56:
+ data += [(item.id, 55.56)]
else:
- item['amount'] = 22.22
- vals['line_cr_ids'] = [(0,0,i) for i in res['value']['line_cr_ids']]
- id = self.create(cr, uid, vals)
- voucher_id = self.browse(cr, uid, id)
+ data += [(item.id, 22.22)]
+ for line_id, amount in data:
+ self.pool.get('account.voucher.line').write(cr, uid, [line_id], {'amount': amount})
assert (voucher_id.state=='draft'), "Voucher is not in draft state"
-
I check that writeoff amount computed is 2.22
@@ -320,8 +328,8 @@
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', invoice_id.move_id.id), ('invoice', '=', invoice_id.id), ('account_id', '=', invoice_id.account_id.id)])
move_line = move_line_obj.browse(cr, uid, move_lines[0])
assert (move_line.amount_residual_currency == 0.0 and move_line.amount_residual == 0.0 and invoice_id.state == 'paid') , "Residual amount is not correct for first Invoice"
--
- I check the residual amuont of invoice 2, should be 0 in residual currency and 0 in amount_residual and paid
+-
+ I check the residual amount of invoice 2, should be 0 in residual currency and 0 in amount_residual and paid
-
!python {model: account.invoice}: |
invoice_id = self.browse(cr, uid, ref("account_second_invoice_feb_michal"))
diff --git a/addons/account_voucher/test/case3_eur_eur.yml b/addons/account_voucher/test/case3_eur_eur.yml
index 09034fadf51..a2fc39e1844 100644
--- a/addons/account_voucher/test/case3_eur_eur.yml
+++ b/addons/account_voucher/test/case3_eur_eur.yml
@@ -99,38 +99,41 @@
move_line = move_line_obj.browse(cr, uid, move_lines[0])
assert (move_line.debit - move_line.credit == 80.00), "Invoice move is incorrect for debtors account"
-
- I create the first voucher of payment
-
+ I set the context that will be used for the encoding of all the vouchers of this file
+-
+ !context
+ 'type': 'receipt'
+-
+ I create the first voucher of payment with values 120 EUR, journal EUR
+-
+ !record {model: account.voucher, id: account_voucher_1_case3, view: view_vendor_receipt_form}:
+ account_id: account.cash
+ amount: 120.0
+ company_id: base.main_company
+ journal_id: bank_journal_EUR
+ partner_id: base.res_partner_seagate
+ period_id: account.period_3
+ date: !eval time.strftime("%Y-03-01")
+ payment_option: 'with_writeoff'
+ writeoff_acc_id: account.a_expense
+ comment: 'Write Off'
+ name: 'First payment: Case 3'
+
+-
+ I fill amounts 100 for the invoice of 150€ and 20 for the invoice of 80€
-
!python {model: account.voucher}: |
import netsvc, time
vals = {}
- res = self.onchange_partner_id(cr, uid, [], ref("base.res_partner_seagate"), ref('bank_journal_EUR'), 120.00, False, ttype='receipt', date=False)
- vals = {
- 'account_id': ref('account.cash'),
- 'amount': 120.00,
- 'company_id': ref('base.main_company'),
- 'currency_id': ref('base.EUR'),
- 'journal_id': ref('bank_journal_EUR'),
- 'partner_id': ref('base.res_partner_seagate'),
- 'period_id': ref('account.period_3'),
- 'type': 'receipt',
- 'date': time.strftime("%Y-03-01"),
- 'payment_option': 'with_writeoff',
- 'writeoff_acc_id': ref('account.a_expense'),
- 'comment': 'Write Off',
- 'name': 'First payment: Case 3',
- }
- if not res['value']['line_cr_ids']:
- res['value']['line_cr_ids'] = [{'type': 'cr', 'account_id': ref('account.a_recv'),}]
- for item in res['value']['line_cr_ids']:
- if item['amount_unreconciled'] == 150.00:
- item['amount'] = 100.00
+ voucher_id = self.browse(cr, uid, ref('account_voucher_1_case3'))
+ data = []
+ for item in voucher_id.line_cr_ids:
+ if item.amount_unreconciled == 150.00:
+ data += [(item.id, 100.0)]
else:
- item['amount'] = 20.00
- vals['line_cr_ids'] = [(0,0,i) for i in res['value']['line_cr_ids']]
- id = self.create(cr, uid, vals)
- voucher_id = self.browse(cr, uid, id)
+ data += [(item.id, 20.0)]
+ for line_id, amount in data:
+ self.pool.get('account.voucher.line').write(cr, uid, [line_id], {'amount': amount})
assert (voucher_id.state=='draft'), "Voucher is not in draft state"
-
I check that writeoff amount computed is 0.00
@@ -181,7 +184,7 @@
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', invoice_id.move_id.id), ('invoice', '=', invoice_id.id), ('account_id', '=', invoice_id.account_id.id)])
move_line = move_line_obj.browse(cr, uid, move_lines[0])
assert (move_line.amount_residual_currency == 50.0 and move_line.amount_residual == 50.0) , "Residual amount is not correct for first Invoice"
--
+-
I check the residual amuont of Invoice2 is 60
-
!python {model: account.invoice}: |
@@ -191,38 +194,36 @@
move_line = move_line_obj.browse(cr, uid, move_lines[0])
assert (move_line.amount_residual_currency == 60.0 and move_line.amount_residual == 60.0) , "Residual amount is not correct for second Invoice"
-
- I create the second voucher of payment and check to let open the debtor overpaid amount.
-
+ I create the second voucher of payment with values 120€, journal EUR, and check to let open the debtor overpaid amount
+-
+ !record {model: account.voucher, id: account_voucher_2_case3, view: view_vendor_receipt_form}:
+ account_id: account.cash
+ amount: 120.0
+ company_id: base.main_company
+ journal_id: bank_journal_EUR
+ partner_id: base.res_partner_seagate
+ period_id: account.period_3
+ date: !eval time.strftime("%Y-04-01")
+ payment_option: 'with_writeoff'
+ writeoff_acc_id: account.a_expense
+ comment: 'Write Off'
+ name: 'Second payment: Case 3'
+
+-
+ I fill amounts 50 for the invoice of 150€ and 70 for the invoice of 80€
-
!python {model: account.voucher}: |
import netsvc, time
vals = {}
- res = self.onchange_partner_id(cr, uid, [], ref("base.res_partner_seagate"), ref('bank_journal_EUR'), 120.00, False, ttype='receipt', date=False)
- vals = {
- 'account_id': ref('account.cash'),
- 'amount': 120.00,
- 'company_id': ref('base.main_company'),
- 'currency_id': ref('base.EUR'),
- 'journal_id': ref('bank_journal_EUR'),
- 'partner_id': ref('base.res_partner_seagate'),
- 'period_id': ref('account.period_3'),
- 'type': 'receipt',
- 'date': time.strftime("%Y-04-01"),
- 'payment_option': 'with_writeoff',
- 'writeoff_acc_id': ref('account.a_expense'),
- 'comment': 'Write Off',
- 'name': 'Second payment: Case 3',
- }
- if not res['value']['line_cr_ids']:
- res['value']['line_cr_ids'] = [{'type': 'cr', 'account_id': ref('account.a_recv'),}]
- for item in res['value']['line_cr_ids']:
- if item['amount_unreconciled'] == 50.00:
- item['amount'] = 50.00
- elif item['amount_unreconciled'] == 60.00:
- item['amount'] = 70.00
- vals['line_cr_ids'] = [(0,0,i) for i in res['value']['line_cr_ids']]
- id = self.create(cr, uid, vals)
- voucher_id = self.browse(cr, uid, id)
+ voucher_id = self.browse(cr, uid, ref('account_voucher_2_case3'))
+ data = []
+ for item in voucher_id.line_cr_ids:
+ if item.amount_unreconciled == 50.00:
+ data += [(item.id, 50.0)]
+ elif item.amount_unreconciled == 60.00:
+ data += [(item.id, 70.00)]
+ for line_id, amount in data:
+ self.pool.get('account.voucher.line').write(cr, uid, [line_id], {'amount': amount})
assert (voucher_id.state=='draft'), "Voucher is not in draft state"
-
I check that writeoff amount computed is 0.00
diff --git a/addons/account_voucher/test/case4_cad_chf.yml b/addons/account_voucher/test/case4_cad_chf.yml
index b3abbb25e01..f31a7393a8e 100644
--- a/addons/account_voucher/test/case4_cad_chf.yml
+++ b/addons/account_voucher/test/case4_cad_chf.yml
@@ -1,6 +1,15 @@
-
In order to check the Account_voucher module with multi-currency in OpenERP,
I create an invoice in CAD and make its Payment in CHF based on the currency rating on that particular date.
+-
+ I set the income and expense currency accounts on the main company
+-
+ !python {model: res.company}: |
+ from datetime import datetime
+ vals = {
+ 'income_currency_exchange_account_id': ref('account.o_expense'),
+ 'expense_currency_exchange_account_id': ref('account.o_expense')}
+ self.write(cr, uid, ref('base.main_company'), vals)
-
I create currency CAD in OpenERP for January of 1.338800 Rate
-
@@ -89,38 +98,40 @@
move_line = move_line_obj.browse(cr, uid, move_lines[0])
assert (move_line.debit - move_line.credit == 149.39), "Invoice move is incorrect for debtors account"
-
- I create the first voucher of payment
-
+ I set the context that will be used for the encoding of all the vouchers of this file
+-
+ !context
+ 'type': 'receipt'
+-
+ I create the first voucher of payment with values 200 CHF, journal CHF
+-
+ !record {model: account.voucher, id: account_voucher_1_case4, view: view_vendor_receipt_form}:
+ account_id: account.cash
+ amount: 200
+ company_id: base.main_company
+ journal_id: bank_journal_CHF
+ partner_id: base.res_partner_seagate
+ period_id: account.period_3
+ date: !eval time.strftime("%Y-03-01")
+ payment_option: 'with_writeoff'
+ writeoff_acc_id: account.a_expense
+ comment: 'Write Off'
+ name: 'First payment: Case 4'
+-
+ I completly pay the invoice of 200 CAD
-
!python {model: account.voucher}: |
import netsvc, time
vals = {}
- res = self.onchange_partner_id(cr, uid, [], ref("base.res_partner_seagate"), ref('bank_journal_CHF'), 200.00, ref('base.CHF'), ttype='receipt', date=False)
- vals = {
- 'account_id': ref('account.cash'),
- 'amount': 200.00,
- 'company_id': ref('base.main_company'),
- 'currency_id': ref('base.CHF'),
- 'journal_id': ref('bank_journal_CHF'),
- 'partner_id': ref('base.res_partner_seagate'),
- 'period_id': ref('account.period_3'),
- 'type': 'receipt',
- 'date': time.strftime("%Y-%m-%d"),
- 'payment_option': 'with_writeoff',
- 'writeoff_acc_id': ref('account.a_expense'),
- 'exchange_acc_id': ref('account.o_expense'),
- 'comment': 'Write Off',
- 'name': 'First payment: Case 4',
- }
- vals.update(self.onchange_date(cr, uid, [], time.strftime('%Y-03-01'), ref('base.CHF'), 200.0)['value'])
- if not res['value']['line_cr_ids']:
- res['value']['line_cr_ids'] = [{'type': 'cr', 'account_id': ref('account.a_recv'),}]
- for item in res['value']['line_cr_ids']:
- if item['amount_unreconciled'] == 186.74:
- item['amount'] = 186.74
- vals['line_cr_ids'] = [(0,0,i) for i in res['value']['line_cr_ids']]
- id = self.create(cr, uid, vals)
- voucher_id = self.browse(cr, uid, id)
+ voucher_id = self.browse(cr, uid, ref('account_voucher_1_case4'))
+ data = []
+ for item in voucher_id.line_cr_ids:
+ if item.amount_unreconciled == 186.74:
+ data += [(item.id, 186.74)]
+ else:
+ data += [(item.id, 0.0)]
+ for line_id, amount in data:
+ self.pool.get('account.voucher.line').write(cr, uid, [line_id], {'amount': amount})
assert (voucher_id.state=='draft'), "Voucher is not in draft state"
-
I check that writeoff amount computed is 13.26
@@ -151,7 +162,7 @@
-
I check that my debtor account is correct
-
- I check that the debtor account has 1 new line with -186.74 as amount_currency columns and 149.39 of credit and currency is CHF.
+ I check that the debtor account has 1 new line with -298.78 as amount_currency columns and 149.39 of credit and currency is CAD.
-
I check that my currency rate difference is correct. 0 in debit with no amount_currency
-
@@ -165,7 +176,7 @@
for move_line in move_line_obj.browse(cr, uid, move_lines):
if move_line.amount_currency == 200:
assert move_line.debit == 160.00, "Bank account has wrong entry."
- elif move_line.amount_currency == -186.74:
+ elif move_line.amount_currency == -298.78:
assert move_line.credit == 149.39, "Debtor account has wrong entry."
elif move_line.debit == 0.00 and move_line.credit == 0.00:
assert move_line.amount_currency == 0.00, "Incorrect Currency Difference."
diff --git a/addons/account_voucher/test/sales_receipt.yml b/addons/account_voucher/test/sales_receipt.yml
index d3fd720ec6d..7ea4f7d1c55 100644
--- a/addons/account_voucher/test/sales_receipt.yml
+++ b/addons/account_voucher/test/sales_receipt.yml
@@ -5,7 +5,6 @@
account_id: account.a_recv
amount: 30000.0
company_id: base.main_company
- currency_id: base.EUR
journal_id: account.sales_journal
line_cr_ids:
- account_id: account.a_sale
diff --git a/addons/account_voucher/voucher_payment_receipt_view.xml b/addons/account_voucher/voucher_payment_receipt_view.xml
index 46720b2732c..01095d2f265 100644
--- a/addons/account_voucher/voucher_payment_receipt_view.xml
+++ b/addons/account_voucher/voucher_payment_receipt_view.xml
@@ -75,13 +75,13 @@
[[ o['partner'] and o['partner'].name or False]]
- [[o['partner'] and o['partner'].address[0].street or False]]
- [[o['partner'] and o['partner'].address[0].zip or False]][[o['partner'] and o['partner'].address[0].city or False]]
- [[o['partner'] and o['partner'].address[0].country_id.name or False]]
+ [[o['partner'] and o['partner'].address and display_address(o['partner'].address[0]) ]]
diff --git a/addons/auction/report/deposit_seller.rml b/addons/auction/report/deposit_seller.rml
index 3adc1152067..518f1f441df 100644
--- a/addons/auction/report/deposit_seller.rml
+++ b/addons/auction/report/deposit_seller.rml
@@ -84,9 +84,7 @@
[[o.bord_vnd_id.partner_id.title]]
[[o.bord_vnd_id.partner_id.name]]
- [[o.bord_vnd_id.partner_id.address[0].street]]
- [[o.bord_vnd_id.partner_id.address[0].zip]],[[o.bord_vnd_id.partner_id.address[0].city]]
- [[o.bord_vnd_id.partner_id.address[0].country_id.name]]
+ [[o.bord_vnd_id.partner_id.address and display_address(o.bord_vnd_id.partner_id.address[0]) ]]
diff --git a/addons/auction/report/seller_form_report.rml b/addons/auction/report/seller_form_report.rml
index c2d724eb259..d9cc1adaadf 100644
--- a/addons/auction/report/seller_form_report.rml
+++ b/addons/auction/report/seller_form_report.rml
@@ -74,9 +74,7 @@
[[ o['partner'] and o['partner'].name or False]]
- [[o['partner'] and o['partner'].address[0].street or False]]
- [[o['partner'] and o['partner'].address[0].zip or False]][[o['partner'] and o['partner'].address[0].city or False]]
- [[o['partner'] and o['partner'].address[0].country_id.name or False]]
+ [[ o['partner'] and o['partner'].address and display_address(o['partner'].address[0])
diff --git a/addons/auction/security/auction_security.xml b/addons/auction/security/auction_security.xml
index 3caf93a2430..087151cb6ea 100644
--- a/addons/auction/security/auction_security.xml
+++ b/addons/auction/security/auction_security.xml
@@ -2,11 +2,19 @@
+
+ Auction
+
+ 26
+
+
- Auction / User
+ User
+
- Auction / Manager
+ Manager
+
diff --git a/addons/auction/security/ir.model.access.csv b/addons/auction/security/ir.model.access.csv
index 94c9c1f83aa..351ca866f6d 100644
--- a/addons/auction/security/ir.model.access.csv
+++ b/addons/auction/security/ir.model.access.csv
@@ -1,35 +1,35 @@
-"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
-"access_auction_artists","auction.artists","model_auction_artists","group_auction_manager",1,1,1,1
-"access_auction_dates_user","auction.dates user","model_auction_dates","group_auction_user",1,0,0,0
-"access_auction_dates_manager","auction.dates manager","model_auction_dates","group_auction_manager",1,1,1,1
-"access_auction_deposit_manager","auction.deposit manager","model_auction_deposit","group_auction_manager",1,1,1,1
-"access_auction_deposit_user","auction.deposit user","model_auction_deposit","group_auction_user",1,0,0,0
-"access_auction_deposit_cost","auction.deposit.cost","model_auction_deposit_cost","group_auction_manager",1,1,1,1
-"access_auction_lot_category","auction.lot.category","model_auction_lot_category","group_auction_user",1,0,0,0
-"access_auction_lot_category_manager","auction.lot.category manager","model_auction_lot_category","group_auction_manager",1,1,1,1
-"access_auction_lots","auction.lots","model_auction_lots","group_auction_user",1,1,1,0
-"access_auction_lots_manager","auction.lots manager","model_auction_lots","group_auction_manager",1,0,0,0
-"access_auction_bid","auction.bid","model_auction_bid","group_auction_user",1,1,1,1
-"access_auction_bid_manager","auction.bid manager","model_auction_bid","group_auction_manager",1,0,0,0
-"access_auction_bid_line","auction.bid.line","model_auction_bid_line","group_auction_user",1,1,1,1
-"access_auction_bid_line_manager","auction.bid.line manager","model_auction_bid_line","group_auction_manager",1,0,0,0
-"access_auction_lot_history","auction.lot.history","model_auction_lot_history","group_auction_user",1,1,1,1
-"access_auction_lot_history_manager","auction.lot.history manager","model_auction_lot_history","group_auction_manager",1,0,0,0
-"access_report_auction","report.auction","model_report_auction","group_auction_manager",1,1,1,1
-"access_report_auction_object_date","report.auction.object.date","model_report_auction_object_date","group_auction_manager",1,1,1,1
-"access_report_auction_adjudication","report.auction.adjudication","model_report_auction_adjudication","group_auction_manager",1,1,1,1
-"access_report_object_encoded","report.object.encoded","model_report_object_encoded","group_auction_manager",1,1,1,1
-"access_aie_category","aie.category","model_aie_category","group_auction_manager",1,1,1,1
-"access_auction_account_tax_user","account.tax user","account.model_account_tax","group_auction_user",1,0,0,0
-"access_auction_account_tax","account.tax manager","account.model_account_tax","group_auction_manager",1,1,1,0
-"access_auction_account_fiscalyear","account.fiscalyear manager","account.model_account_fiscalyear","group_auction_manager",1,1,1,0
-"access_auction_account_journal","account.journal manager","account.model_account_journal","group_auction_manager",1,1,1,0
-"access_auction_account_invoice","account.invoice manager","account.model_account_invoice","group_auction_manager",1,1,1,0
-"access_auction_account_invoice_line","account.invoice.line manager","account.model_account_invoice_line","group_auction_manager",1,1,1,0
-"access_auction_account_invoice_tax","account.invoice.tax manager","account.model_account_invoice_tax","group_auction_manager",1,1,1,0
-"access_auction_account_analytic_journal","account.analytic.journal manager","account.model_account_analytic_journal","group_auction_manager",1,1,1,0
-"access_auction_account_period","account.period manager","account.model_account_period","group_auction_manager",1,1,1,0
-"access_auction_account_move","account.move manager","account.model_account_move","group_auction_manager",1,1,1,0
-"access_auction_account_move_line","account.move.line manager","account.model_account_move_line","group_auction_manager",1,1,1,0
-"access_auction_account_journal_period","account.journal.period manager","account.model_account_journal_period","group_auction_manager",1,1,1,0
-"access_auction_account_analytic_line","account.analytic.line manager","account.model_account_analytic_line","group_auction_manager",1,1,1,1
+id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
+access_auction_artists,auction.artists,model_auction_artists,group_auction_manager,1,1,1,1
+access_auction_dates_user,auction.dates user,model_auction_dates,group_auction_user,1,0,0,0
+access_auction_dates_manager,auction.dates manager,model_auction_dates,group_auction_manager,1,1,1,1
+access_auction_deposit_manager,auction.deposit manager,model_auction_deposit,group_auction_manager,1,1,1,1
+access_auction_deposit_user,auction.deposit user,model_auction_deposit,group_auction_user,1,0,0,0
+access_auction_deposit_cost,auction.deposit.cost,model_auction_deposit_cost,group_auction_manager,1,1,1,1
+access_auction_lot_category,auction.lot.category,model_auction_lot_category,group_auction_user,1,0,0,0
+access_auction_lot_category_manager,auction.lot.category manager,model_auction_lot_category,group_auction_manager,1,1,1,1
+access_auction_lots,auction.lots,model_auction_lots,group_auction_user,1,1,1,0
+access_auction_lots_manager,auction.lots manager,model_auction_lots,group_auction_manager,1,0,0,0
+access_auction_bid,auction.bid,model_auction_bid,group_auction_user,1,1,1,1
+access_auction_bid_manager,auction.bid manager,model_auction_bid,group_auction_manager,1,0,0,0
+access_auction_bid_line,auction.bid.line,model_auction_bid_line,group_auction_user,1,1,1,1
+access_auction_bid_line_manager,auction.bid.line manager,model_auction_bid_line,group_auction_manager,1,0,0,0
+access_auction_lot_history,auction.lot.history,model_auction_lot_history,group_auction_user,1,1,1,1
+access_auction_lot_history_manager,auction.lot.history manager,model_auction_lot_history,group_auction_manager,1,0,0,0
+access_report_auction,report.auction,model_report_auction,group_auction_manager,1,1,1,1
+access_report_auction_object_date,report.auction.object.date,model_report_auction_object_date,group_auction_manager,1,1,1,1
+access_report_auction_adjudication,report.auction.adjudication,model_report_auction_adjudication,group_auction_manager,1,1,1,1
+access_report_object_encoded,report.object.encoded,model_report_object_encoded,group_auction_manager,1,1,1,1
+access_aie_category,aie.category,model_aie_category,group_auction_manager,1,1,1,1
+access_auction_account_tax_user,account.tax user,account.model_account_tax,group_auction_user,1,0,0,0
+access_auction_account_tax,account.tax manager,account.model_account_tax,group_auction_manager,1,1,1,0
+access_auction_account_fiscalyear,account.fiscalyear manager,account.model_account_fiscalyear,group_auction_manager,1,1,1,0
+access_auction_account_journal,account.journal manager,account.model_account_journal,group_auction_manager,1,1,1,0
+access_auction_account_invoice,account.invoice manager,account.model_account_invoice,group_auction_manager,1,1,1,0
+access_auction_account_invoice_line,account.invoice.line manager,account.model_account_invoice_line,group_auction_manager,1,1,1,0
+access_auction_account_invoice_tax,account.invoice.tax manager,account.model_account_invoice_tax,group_auction_manager,1,1,1,0
+access_auction_account_analytic_journal,account.analytic.journal manager,account.model_account_analytic_journal,group_auction_manager,1,1,1,0
+access_auction_account_period,account.period manager,account.model_account_period,group_auction_manager,1,1,1,0
+access_auction_account_move,account.move manager,account.model_account_move,group_auction_manager,1,1,1,0
+access_auction_account_move_line,account.move.line manager,account.model_account_move_line,group_auction_manager,1,1,1,0
+access_auction_account_journal_period,account.journal.period manager,account.model_account_journal_period,group_auction_manager,1,1,1,0
+access_auction_account_analytic_line,account.analytic.line manager,account.model_account_analytic_line,group_auction_manager,1,1,1,1
diff --git a/addons/audittrail/__openerp__.py b/addons/audittrail/__openerp__.py
index 7d2a5955ac0..5bfd023ac39 100644
--- a/addons/audittrail/__openerp__.py
+++ b/addons/audittrail/__openerp__.py
@@ -23,7 +23,7 @@
{
'name': 'Audit Trail',
'version': '1.0',
- 'category': 'Hidden',
+ 'category': 'Tools',
'description': """
This module lets administrator track every user operation on all the objects of the system.
===========================================================================================
diff --git a/addons/audittrail/i18n/hr.po b/addons/audittrail/i18n/hr.po
index ce60dcea9cc..9d9a378c7fe 100644
--- a/addons/audittrail/i18n/hr.po
+++ b/addons/audittrail/i18n/hr.po
@@ -7,19 +7,19 @@ 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: 2009-09-08 13:23+0000\n"
+"PO-Revision-Date: 2011-12-08 17:09+0000\n"
"Last-Translator: Ivica Perić \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-11-05 05:32+0000\n"
-"X-Generator: Launchpad (build 14231)\n"
+"X-Launchpad-Export-Date: 2011-12-09 04:45+0000\n"
+"X-Generator: Launchpad (build 14450)\n"
#. module: audittrail
#: model:ir.module.module,shortdesc:audittrail.module_meta_information
msgid "Audit Trail"
-msgstr ""
+msgstr "Audit Trail"
#. module: audittrail
#: code:addons/audittrail/audittrail.py:81
@@ -30,18 +30,18 @@ msgstr ""
#. module: audittrail
#: field:audittrail.log.line,log_id:0
msgid "Log"
-msgstr "Dnevnik izmjena"
+msgstr "Zapisnik"
#. module: audittrail
#: view:audittrail.rule:0
#: selection:audittrail.rule,state:0
msgid "Subscribed"
-msgstr "Pretplaćeno"
+msgstr "Pretplaćen"
#. module: audittrail
#: model:ir.model,name:audittrail.model_audittrail_rule
msgid "Audittrail Rule"
-msgstr ""
+msgstr "Audittrail Pravila"
#. module: audittrail
#: view:audittrail.view.log:0
@@ -54,7 +54,7 @@ msgstr "Dnevnik izmjena"
#: view:audittrail.log:0
#: view:audittrail.rule:0
msgid "Group By..."
-msgstr ""
+msgstr "Grupiraj po..."
#. module: audittrail
#: view:audittrail.rule:0
@@ -65,7 +65,7 @@ msgstr "Stanje"
#. module: audittrail
#: view:audittrail.rule:0
msgid "_Subscribe"
-msgstr ""
+msgstr "_Pretplati"
#. module: audittrail
#: view:audittrail.rule:0
@@ -89,6 +89,8 @@ msgid ""
"Select this if you want to keep track of read/open on any record of the "
"object of this rule"
msgstr ""
+"Select this if you want to keep track of read/open on any record of the "
+"object of this rule"
#. module: audittrail
#: field:audittrail.log,method:0
@@ -98,22 +100,22 @@ msgstr "Metoda"
#. module: audittrail
#: field:audittrail.view.log,from:0
msgid "Log From"
-msgstr ""
+msgstr "Logiraj od"
#. module: audittrail
#: field:audittrail.log.line,log:0
msgid "Log ID"
-msgstr ""
+msgstr "Log ID"
#. module: audittrail
#: field:audittrail.log,res_id:0
msgid "Resource Id"
-msgstr ""
+msgstr "Id resursa"
#. module: audittrail
#: help:audittrail.rule,user_id:0
msgid "if User is not added then it will applicable for all users"
-msgstr ""
+msgstr "if User is not added then it will applicable for all users"
#. module: audittrail
#: help:audittrail.rule,log_workflow:0
@@ -121,6 +123,8 @@ msgid ""
"Select this if you want to keep track of workflow on any record of the "
"object of this rule"
msgstr ""
+"Odaberite ovu opciju ukoliko želite pratiti tijek rada na bilo koji zapis "
+"predmeta iz ovog pravila"
#. module: audittrail
#: field:audittrail.rule,user_id:0
@@ -130,14 +134,14 @@ msgstr "Korisnici"
#. module: audittrail
#: view:audittrail.log:0
msgid "Log Lines"
-msgstr ""
+msgstr "Log Lines"
#. module: audittrail
#: view:audittrail.log:0
#: field:audittrail.log,object_id:0
#: field:audittrail.rule,object_id:0
msgid "Object"
-msgstr "Objekt"
+msgstr "Object"
#. module: audittrail
#: view:audittrail.rule:0
@@ -147,7 +151,7 @@ msgstr "Pravilo praćenja promjena"
#. module: audittrail
#: field:audittrail.view.log,to:0
msgid "Log To"
-msgstr ""
+msgstr "Log To"
#. module: audittrail
#: view:audittrail.log:0
@@ -157,13 +161,13 @@ msgstr "Tekst nove vrijednosti: "
#. module: audittrail
#: view:audittrail.rule:0
msgid "Search Audittrail Rule"
-msgstr ""
+msgstr "Search Audittrail Rule"
#. module: audittrail
#: model:ir.actions.act_window,name:audittrail.action_audittrail_rule_tree
#: model:ir.ui.menu,name:audittrail.menu_action_audittrail_rule_tree
msgid "Audit Rules"
-msgstr ""
+msgstr "Pravila revizije"
#. module: audittrail
#: view:audittrail.log:0
@@ -173,7 +177,7 @@ msgstr "Stara vrijednost : "
#. module: audittrail
#: field:audittrail.log,name:0
msgid "Resource Name"
-msgstr ""
+msgstr "Resource Name"
#. module: audittrail
#: view:audittrail.log:0
@@ -187,16 +191,18 @@ msgid ""
"Select this if you want to keep track of modification on any record of the "
"object of this rule"
msgstr ""
+"Select this if you want to keep track of modification on any record of the "
+"object of this rule"
#. module: audittrail
#: field:audittrail.rule,log_create:0
msgid "Log Creates"
-msgstr ""
+msgstr "Log Creates"
#. module: audittrail
#: help:audittrail.rule,object_id:0
msgid "Select object for which you want to generate log."
-msgstr ""
+msgstr "Select object for which you want to generate log."
#. module: audittrail
#: view:audittrail.log:0
@@ -206,7 +212,7 @@ msgstr "Tekst stare vrijednosti : "
#. module: audittrail
#: field:audittrail.rule,log_workflow:0
msgid "Log Workflow"
-msgstr ""
+msgstr "Log Workflow"
#. module: audittrail
#: model:ir.module.module,description:audittrail.module_meta_information
@@ -224,7 +230,7 @@ msgstr ""
#. module: audittrail
#: field:audittrail.rule,log_read:0
msgid "Log Reads"
-msgstr ""
+msgstr "Log Reads"
#. module: audittrail
#: code:addons/audittrail/audittrail.py:82
@@ -235,7 +241,7 @@ msgstr ""
#. module: audittrail
#: field:audittrail.log,line_ids:0
msgid "Log lines"
-msgstr "Retci dnevnika"
+msgstr "Reci dnevnika"
#. module: audittrail
#: field:audittrail.log.line,field_id:0
@@ -253,6 +259,8 @@ msgid ""
"Select this if you want to keep track of deletion on any record of the "
"object of this rule"
msgstr ""
+"Select this if you want to keep track of deletion on any record of the "
+"object of this rule"
#. module: audittrail
#: view:audittrail.log:0
@@ -263,47 +271,47 @@ msgstr "Korisnik"
#. module: audittrail
#: field:audittrail.rule,action_id:0
msgid "Action ID"
-msgstr ""
+msgstr "Action ID"
#. module: audittrail
#: view:audittrail.rule:0
msgid "Users (if User is not added then it will applicable for all users)"
-msgstr ""
+msgstr "Korisnici (ako se ne upišu - vrijedi za sve korisnike)"
#. module: audittrail
#: view:audittrail.rule:0
msgid "UnSubscribe"
-msgstr ""
+msgstr "UnSubscribe"
#. module: audittrail
#: field:audittrail.rule,log_unlink:0
msgid "Log Deletes"
-msgstr ""
+msgstr "Log Deletes"
#. module: audittrail
#: field:audittrail.log.line,field_description:0
msgid "Field Description"
-msgstr ""
+msgstr "Field Description"
#. module: audittrail
#: view:audittrail.log:0
msgid "Search Audittrail Log"
-msgstr ""
+msgstr "Search Audittrail Log"
#. module: audittrail
#: field:audittrail.rule,log_write:0
msgid "Log Writes"
-msgstr ""
+msgstr "Log Writes"
#. module: audittrail
#: view:audittrail.view.log:0
msgid "Open Logs"
-msgstr ""
+msgstr "Open Logs"
#. module: audittrail
#: field:audittrail.log.line,new_value_text:0
msgid "New value Text"
-msgstr ""
+msgstr "New value Text"
#. module: audittrail
#: field:audittrail.rule,name:0
@@ -313,28 +321,29 @@ msgstr "Naziv pravila"
#. module: audittrail
#: field:audittrail.log.line,new_value:0
msgid "New Value"
-msgstr ""
+msgstr "New Value"
#. module: audittrail
#: view:audittrail.log:0
msgid "AuditTrail Logs"
-msgstr ""
+msgstr "AuditTrail Logs"
#. module: audittrail
#: model:ir.model,name:audittrail.model_audittrail_log
msgid "Audittrail Log"
-msgstr ""
+msgstr "Audittrail Log"
#. module: audittrail
#: help:audittrail.rule,log_action:0
msgid ""
"Select this if you want to keep track of actions on the object of this rule"
msgstr ""
+"Select this if you want to keep track of actions on the object of this rule"
#. module: audittrail
#: view:audittrail.log:0
msgid "New Value : "
-msgstr ""
+msgstr "Nova vrijednost : "
#. module: audittrail
#: sql_constraint:audittrail.rule:0
@@ -351,22 +360,22 @@ msgstr "Tekst stare vrijednosti"
#. module: audittrail
#: view:audittrail.view.log:0
msgid "Cancel"
-msgstr "Otkaži"
+msgstr "Odustani"
#. module: audittrail
#: model:ir.model,name:audittrail.model_audittrail_view_log
msgid "View Log"
-msgstr ""
+msgstr "Pogledaj Log"
#. module: audittrail
#: model:ir.model,name:audittrail.model_audittrail_log_line
msgid "Log Line"
-msgstr ""
+msgstr "Redak Prijave"
#. module: audittrail
#: field:audittrail.rule,log_action:0
msgid "Log Action"
-msgstr ""
+msgstr "Log Action"
#. module: audittrail
#: help:audittrail.rule,log_create:0
@@ -374,6 +383,8 @@ msgid ""
"Select this if you want to keep track of creation on any record of the "
"object of this rule"
msgstr ""
+"Select this if you want to keep track of creation on any record of the "
+"object of this rule"
#~ msgid "Name"
#~ msgstr "Naziv"
diff --git a/addons/audittrail/security/ir.model.access.csv b/addons/audittrail/security/ir.model.access.csv
index 877cf622ad4..25bba6a00b1 100644
--- a/addons/audittrail/security/ir.model.access.csv
+++ b/addons/audittrail/security/ir.model.access.csv
@@ -1,4 +1,4 @@
-"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
-"access_audittrail_rule_all_users","audittrail rule all","model_audittrail_rule","base.group_user",1,0,0,0
-"access_audittrail_log_all_users","audittrail log all","model_audittrail_log","base.group_user",1,0,1,0
-"access_audittrail_log_line_all_users","audittrail log line all","model_audittrail_log_line","base.group_user",1,0,1,0
+id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
+access_audittrail_rule_all_users,audittrail rule all,model_audittrail_rule,base.group_user,1,0,0,0
+access_audittrail_log_all_users,audittrail log all,model_audittrail_log,base.group_user,1,0,1,0
+access_audittrail_log_line_all_users,audittrail log line all,model_audittrail_log_line,base.group_user,1,0,1,0
diff --git a/addons/auth_openid/__openerp__.py b/addons/auth_openid/__openerp__.py
index 040a96a3995..6fa802b94e3 100644
--- a/addons/auth_openid/__openerp__.py
+++ b/addons/auth_openid/__openerp__.py
@@ -21,9 +21,9 @@
{
- 'name': 'OpenID',
+ 'name': 'OpenID Authentification',
'version': '2.0',
- 'category': 'Hidden',
+ 'category': 'Tools',
'description': """Allow users to login through OpenID.""",
'author': 'OpenERP s.a.',
'maintainer': 'OpenERP s.a.',
diff --git a/addons/base_action_rule/__openerp__.py b/addons/base_action_rule/__openerp__.py
index 18af8d09459..56da3350347 100644
--- a/addons/base_action_rule/__openerp__.py
+++ b/addons/base_action_rule/__openerp__.py
@@ -20,9 +20,9 @@
##############################################################################
{
- 'name': 'Action Rule',
+ 'name': 'Automated Action Rules',
'version': '1.0',
- 'category': 'Hidden',
+ 'category': 'Sales Management',
'description': """
This module allows to implement action rules for any object.
============================================================
diff --git a/addons/base_action_rule/security/ir.model.access.csv b/addons/base_action_rule/security/ir.model.access.csv
index 4d2e612b384..92d3d55649f 100644
--- a/addons/base_action_rule/security/ir.model.access.csv
+++ b/addons/base_action_rule/security/ir.model.access.csv
@@ -1,3 +1,3 @@
-"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
-"access_base_action_rule","base.action.rule","model_base_action_rule",,1,0,0,0
-"access_base_action_rule_config","base.action.rule config","model_base_action_rule",base.group_system,1,1,1,1
+id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
+access_base_action_rule,base.action.rule,model_base_action_rule,,1,0,0,0
+access_base_action_rule_config,base.action.rule config,model_base_action_rule,base.group_system,1,1,1,1
diff --git a/addons/base_calendar/__openerp__.py b/addons/base_calendar/__openerp__.py
index 0dd72a17038..c6ab9c4628e 100644
--- a/addons/base_calendar/__openerp__.py
+++ b/addons/base_calendar/__openerp__.py
@@ -20,7 +20,7 @@
##############################################################################
{
- "name" : "Basic Calendar Functionality",
+ "name" : "Calendar Layer",
"version" : "1.0",
"depends" : ["base", "mail"],
'complexity': "easy",
@@ -32,9 +32,12 @@ It supports:
- Calendar of events
- Alerts (create requests)
- Recurring events
- - Invitations to people""",
+ - Invitations to people
+
+If you need to manage your meetings, you should install the CRM module.
+ """,
"author" : "OpenERP SA",
- 'category': 'Hidden',
+ 'category': 'Hidden/Dependency',
'website': 'http://www.openerp.com',
"init_xml" : [
'base_calendar_data.xml'
diff --git a/addons/base_calendar/base_calendar.py b/addons/base_calendar/base_calendar.py
index 45624a280f1..9ce32429e5b 100644
--- a/addons/base_calendar/base_calendar.py
+++ b/addons/base_calendar/base_calendar.py
@@ -1009,10 +1009,19 @@ class calendar_event(osv.osv):
else:
result[event] = ""
return result
-
-
-
-
+
+ def _rrule_write(self, obj, cr, uid, ids, field_name, field_value, args, context=None):
+ data = self._get_empty_rrule_data()
+ if field_value:
+ data['recurrency'] = True
+ for event in self.browse(cr, uid, ids, context=context):
+ rdate = rule_date or event.date
+ update_data = self._parse_rrule(field_value, dict(data), rdate)
+ data.update(update_data)
+ super(calendar_event, obj).write(cr, uid, ids, data, context=context)
+ return True
+
+
_columns = {
'id': fields.integer('ID', readonly=True),
'sequence': fields.integer('Sequence'),
@@ -1023,7 +1032,7 @@ class calendar_event(osv.osv):
'duration': fields.float('Duration', states={'done': [('readonly', True)]}),
'description': fields.text('Description', states={'done': [('readonly', True)]}),
'class': fields.selection([('public', 'Public'), ('private', 'Private'), \
- ('confidential', 'Confidential')], 'Mark as', states={'done': [('readonly', True)]}),
+ ('confidential', 'Public for Employees')], 'Mark as', states={'done': [('readonly', True)]}),
'location': fields.char('Location', size=264, help="Location of Event", states={'done': [('readonly', True)]}),
'show_as': fields.selection([('free', 'Free'), ('busy', 'Busy')], \
'Show as', states={'done': [('readonly', True)]}),
@@ -1036,7 +1045,7 @@ 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, \
- store=True, string='Recurrent Rule'),
+ fnct_inv=_rrule_write, store=True, string='Recurrent Rule'),
'rrule_type': fields.selection([('none', ''), ('daily', 'Daily'), \
('weekly', 'Weekly'), ('monthly', 'Monthly'), \
('yearly', 'Yearly'),],
@@ -1079,7 +1088,6 @@ rule or repeating pattern of time to exclude from the recurring rule."),
'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."),
}
def default_organizer(self, cr, uid, context=None):
@@ -1102,83 +1110,68 @@ rule or repeating pattern of time to exclude from the recurring rule."),
'active': 1,
'user_id': lambda self, cr, uid, ctx: uid,
'organizer': default_organizer,
- 'edit_all' : False,
}
- def get_recurrent_ids(self, cr, uid, select, base_start_date, base_until_date, limit=100, context=None):
+ def get_recurrent_ids(self, cr, uid, select, domain, 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
@param cr: the current row, from the database cursor,
@param uid: the current user’s ID for security checks,
- @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 isinstance(select, (str, int, long)):
- ids = [select]
- else:
- ids = select
result = []
- 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
- event_date = datetime.strptime(data['date'], "%Y-%m-%d %H:%M:%S")
+ for data in super(calendar_event, self).read(cr, uid, select, context=context):
+ if not data['rrule']:
+ result.append(data['id'])
+ continue
+ 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
-
- if not data['rrule']:
- if start_date and (event_date < start_date):
- continue
- if until_date and (event_date > until_date):
- continue
- 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 = []
- rrule_until_date = False
- is_until = False
- for rule in rrule_str.split(';'):
- name, value = rule.split('=')
- if name == "UNTIL":
- is_until = True
- value = parser.parse(value)
- rrule_until_date = parser.parse(value.strftime("%Y-%m-%d %H:%M:%S"))
- if until_date and until_date >= rrule_until_date:
- 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:
- value = until_date.strftime("%Y%m%d%H%M%S")
- name = "UNTIL"
- new_rule = '%s=%s' % (name, value)
- 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
- if until_date and r_date > until_date:
- continue
- idval = real_id2base_calendar_id(data['id'], r_date.strftime("%Y-%m-%d %H:%M:%S"))
- result.append(idval)
- if result:
- ids = list(set(result))
+ if not data['rrule']:
+ continue
+
+ exdate = data['exdate'] and data['exdate'].split(',') or []
+ rrule_str = data['rrule']
+ new_rrule_str = []
+ rrule_until_date = False
+ is_until = False
+ for rule in rrule_str.split(';'):
+ name, value = rule.split('=')
+ if name == "UNTIL":
+ is_until = True
+ value = parser.parse(value)
+ rrule_until_date = parser.parse(value.strftime("%Y-%m-%d %H:%M:%S"))
+ value = value.strftime("%Y%m%d%H%M%S")
+ new_rule = '%s=%s' % (name, value)
+ new_rrule_str.append(new_rule)
+ new_rrule_str = ';'.join(new_rrule_str)
+ rdates = get_recurrent_dates(str(new_rrule_str), exdate, event_date, data['exrule'])
+ for r_date in rdates:
+ ok = True
+ for arg in domain:
+ if arg[0] in ('date', 'date_deadline'):
+ if (arg[1]=='='):
+ ok = ok and r_date.strftime('%Y-%m-%d')==arg[2]
+ if (arg[1]=='>'):
+ ok = ok and r_date.strftime('%Y-%m-%d')>arg[2]
+ if (arg[1]=='<'):
+ ok = ok and r_date.strftime('%Y-%m-%d')='):
+ ok = ok and r_date.strftime('%Y-%m-%d')>=arg[2]
+ if (arg[1]=='<='):
+ ok = ok and r_date.strftime('%Y-%m-%d')<=arg[2]
+ if not ok:
+ continue
+ idval = real_id2base_calendar_id(data['id'], r_date.strftime("%Y-%m-%d %H:%M:%S"))
+ result.append(idval)
+
if isinstance(select, (str, int, long)):
return ids and ids[0] or False
+ else:
+ ids = list(set(result))
return ids
def compute_rule_string(self, datas):
@@ -1243,17 +1236,17 @@ rule or repeating pattern of time to exclude from the recurring rule."),
'week_list' : False
}
- def _write_rrule(self, cr, uid, ids, field_value, rule_date=False, context=None):
- data = self._get_empty_rrule_data()
-
- if field_value:
- data['recurrency'] = True
- for event in self.browse(cr, uid, ids, context=context):
- rdate = rule_date or event.date
- update_data = self._parse_rrule(field_value, dict(data), rdate)
- data.update(update_data)
- #parse_rrule
- self.write(cr, uid, event.id, data, context=context)
+ #def _write_rrule(self, cr, uid, ids, field_value, rule_date=False, context=None):
+ # data = self._get_empty_rrule_data()
+ #
+ # if field_value:
+ # data['recurrency'] = True
+ # for event in self.browse(cr, uid, ids, context=context):
+ # rdate = rule_date or event.date
+ # update_data = self._parse_rrule(field_value, dict(data), rdate)
+ # data.update(update_data)
+ # #parse_rrule
+ # self.write(cr, uid, event.id, data, context=context)
def _parse_rrule(self, rule, data, date_start):
@@ -1311,9 +1304,9 @@ rule or repeating pattern of time to exclude from the recurring rule."),
return res
def search(self, cr, uid, args, offset=0, limit=0, order=None, context=None, count=False):
+ context = context or {}
args_without_date = []
- start_date = False
- until_date = False
+ filter_date = []
for arg in args:
if arg[0] == "id":
@@ -1323,17 +1316,18 @@ rule or repeating pattern of time to exclude from the recurring rule."),
elif arg[0] not in ('date', unicode('date'), 'date_deadline', unicode('date_deadline')):
args_without_date.append(arg)
else:
- if arg[1] in ('>', '>='):
- if start_date:
- continue
- start_date = arg[2]
- elif arg[1] in ('<', '<='):
- if until_date:
- continue
- until_date = arg[2]
+ if context.get('virtual_id', True):
+ args_without_date.append('|')
+ args_without_date.append(arg)
+ if context.get('virtual_id', True):
+ args_without_date.append(('recurrency','=',1))
+ filter_date.append(arg)
+
res = super(calendar_event, self).search(cr, uid, args_without_date, \
0, 0, order, context, count=False)
- res = self.get_recurrent_ids(cr, uid, res, start_date, until_date, limit, context=context)
+ if context.get('virtual_id', True):
+ res = self.get_recurrent_ids(cr, uid, res, args, limit, context=context)
+
if count:
return len(res)
elif limit:
@@ -1341,17 +1335,6 @@ rule or repeating pattern of time to exclude from the recurring rule."),
else:
return res
- def get_edit_all(self, cr, uid, id, vals=None):
- """
- return true if we have to edit all meeting from the same recurrent
- or only on occurency
- """
- meeting = self.read(cr,uid, id, ['edit_all', 'recurrency'] )
- 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']
-
def _get_data(self, cr, uid, id, context=None):
res = self.read(cr, uid, [id],['date', 'date_deadline'])
return res[0]
@@ -1370,101 +1353,63 @@ rule or repeating pattern of time to exclude from the recurring rule."),
def write(self, cr, uid, ids, vals, context=None, check=True, update_check=True):
- if context is None:
- context = {}
+ context = context or {}
if isinstance(ids, (str, int, long)):
- select = [ids]
- else:
- select = ids
-
-
-
- new_ids = []
+ ids = [ids]
res = False
- for event_id in select:
+
+ # Special write of complex IDS
+ for event_id in ids[:]:
+ if len(str(event_id).split('-')) == 1:
+ continue
+ ids.remove(event_id)
real_event_id = base_calendar_id2real_id(event_id)
- 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 not vals.get('recurrency', True):
+ ids.append(real_event_id)
+ continue
#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'):
- data.update(vals)
- data.update({
- 'recurrent_uid': real_event_id,
- 'recurrent_id': data.get('date'),
- 'rrule_type': 'none',
- 'rrule': '',
- 'edit_all': False,
- 'recurrency' : False,
- })
+ data = self.read(cr, uid, event_id, ['date', 'date_deadline', \
+ 'rrule', 'duration', 'exdate'])
+ if data.get('rrule'):
+ data.update(vals)
+ data.update({
+ 'recurrent_uid': real_event_id,
+ 'recurrent_id': data.get('date'),
+ 'rrule_type': 'none',
+ 'rrule': '',
+ 'recurrency' : False,
+ })
- new_id = self.copy(cr, uid, real_event_id, default=data, context=context)
+ 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})
+ 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:
- new_ids.append(real_event_id)
+ context.update({'active_id': new_id, 'active_ids': [new_id]})
+ continue
if vals.get('vtimezone', '') and vals.get('vtimezone', '').startswith('/freeassociation.sourceforge.net/tzfile/'):
vals['vtimezone'] = vals['vtimezone'][40:]
- updated_vals = self.onchange_dates(cr, uid, new_ids,
- vals.get('date', False),
- vals.get('duration', False),
- vals.get('date_deadline', False),
- vals.get('allday', False),
- context=context)
- vals.update(updated_vals.get('value', {}))
- if new_ids:
- if 'rrule' in vals.keys():
- if 'date' in vals.keys():
- date_to_write = vals['date']
- else:
- date_to_write = False
- self._write_rrule(cr, uid, new_ids, vals['rrule'], date_to_write, context)
-
- res = super(calendar_event, self).write(cr, uid, new_ids, vals, context=context)
+ res = super(calendar_event, self).write(cr, uid, ids, vals, context=context)
if ('alarm_id' in vals or 'base_calendar_alarm_id' in vals)\
or ('date' in vals or 'duration' in vals or 'date_deadline' in vals):
- # change alarm details
alarm_obj = self.pool.get('res.alarm')
- alarm_obj.do_alarm_create(cr, uid, new_ids, self._name, 'date', context=context)
+ alarm_obj.do_alarm_create(cr, uid, ids, self._name, 'date', context=context)
return res or True and False
- def browse(self, cr, uid, ids, context=None, list_class=None, fields_process=None):
- if isinstance(ids, (str, int, long)):
- select = [ids]
- else:
- select = ids
- select = map(lambda x: base_calendar_id2real_id(x), select)
- res = super(calendar_event, self).browse(cr, uid, select, context, \
- list_class, fields_process)
- if isinstance(ids, (str, int, long)):
- return res and res[0] or False
-
- 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)
+ virtual_id = context.get('virtual_id', True)
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:
@@ -1479,8 +1424,12 @@ rule or repeating pattern of time to exclude from the recurring rule."),
# FIXME This whole id mangling has to go!
if context is None:
context = {}
-
+ fields2 = fields and fields[:] or None
+ EXTRAFIELDS = ('class','user_id','date','duration')
+ for f in EXTRAFIELDS:
+ if fields and (f not in fields):
+ fields2.append(f)
if isinstance(ids, (str, int, long)):
select = [ids]
@@ -1488,17 +1437,13 @@ rule or repeating pattern of time to exclude from the recurring rule."),
select = ids
select = map(lambda x: (x, base_calendar_id2real_id(x)), select)
result = []
- if fields and 'date' not in fields:
- fields.append('date')
- if fields and 'duration' not in fields:
- fields.append('duration')
real_data = super(calendar_event, self).read(cr, uid,
[real_id for base_calendar_id, real_id in select],
- fields=fields, context=context, load=load)
+ fields=fields2, context=context, load=load)
real_data = dict(zip([x['id'] for x in real_data], real_data))
- for base_calendar_id, real_id in select:
+ for base_calendar_id, real_id in select:
res = real_data[real_id].copy()
ls = base_calendar_id2real_id(base_calendar_id, with_date=res and res.get('duration', 0) or 0)
if not isinstance(ls, (str, int, long)) and len(ls) >= 2:
@@ -1507,9 +1452,25 @@ rule or repeating pattern of time to exclude from the recurring rule."),
res['id'] = base_calendar_id
result.append(res)
+
+ for r in result:
+ if r['user_id']:
+ user_id = type(r['user_id']) in (tuple,list) and r['user_id'][0] or r['user_id']
+ if user_id==uid:
+ continue
+ if r['class']=='private':
+ for f in r.keys():
+ if f not in ('id','date','date_deadline','duration','user_id','state'):
+ r[f] = False
+ if f=='name':
+ r[f] = _('Busy')
+
+ for r in result:
+ for k in EXTRAFIELDS:
+ if (k in r) and ((not fields) or (k not in fields)):
+ del r[k]
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):
@@ -1520,68 +1481,49 @@ rule or repeating pattern of time to exclude from the recurring rule."),
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):
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:
+ for event_id in ids[:]:
+ if len(str(event_id).split('-')) == 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)
+ real_event_id = base_calendar_id2real_id(event_id)
+ data = self.read(cr, uid, real_event_id, ['exdate'], 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
+ self.write(cr, uid, [real_event_id], {'exdate': exdate})
+ ids.remove(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)
- self.unlink_events(cr, uid, [event_id], context=context)
- else:
- str_event, date_new = event_id.split('-')
- event_id = int(str_event)
- 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_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)
- self.pool.get('res.alarm').do_alarm_unlink(cr, uid, [event_id], self._name)
- self.unlink_events(cr, uid, [event_id], context=context)
+ res = super(calendar_event, self).unlink(cr, uid, ids, context=context)
+ self.pool.get('res.alarm').do_alarm_unlink(cr, uid, ids, self._name)
+ self.unlink_events(cr, uid, ids, context=context)
return res
+
def create(self, cr, uid, vals, context=None):
if context is None:
context = {}
if vals.get('vtimezone', '') and vals.get('vtimezone', '').startswith('/freeassociation.sourceforge.net/tzfile/'):
vals['vtimezone'] = vals['vtimezone'][40:]
-
- if 'date' in vals and 'rrule' in vals and vals['rrule']:
- update_datas = self._parse_rrule(vals['rrule'], self._get_empty_rrule_data(), vals['date'])
- update_datas['recurrency'] = True
- vals.update(update_datas)
- updated_vals = self.onchange_dates(cr, uid, [],
- vals.get('date', False),
- vals.get('duration', False),
- vals.get('date_deadline', False),
- vals.get('allday', False),
- context=context)
- vals.update(updated_vals.get('value', {}))
+ #updated_vals = self.onchange_dates(cr, uid, [],
+ # vals.get('date', False),
+ # vals.get('duration', False),
+ # vals.get('date_deadline', False),
+ # 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
diff --git a/addons/base_calendar/base_calendar_view.xml b/addons/base_calendar/base_calendar_view.xml
index 3ce934b4ded..16064762f9b 100644
--- a/addons/base_calendar/base_calendar_view.xml
+++ b/addons/base_calendar/base_calendar_view.xml
@@ -242,8 +242,7 @@
-
-
+
diff --git a/addons/base_calendar/security/ir.model.access.csv b/addons/base_calendar/security/ir.model.access.csv
index 9977f96141b..3dac47653f2 100644
--- a/addons/base_calendar/security/ir.model.access.csv
+++ b/addons/base_calendar/security/ir.model.access.csv
@@ -1,7 +1,7 @@
-"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
-"access_calendar_attendee","calendar.attendee","model_calendar_attendee","base.group_user",1,1,1,1
-"access_calendar_alarm","calendar.alarm","model_calendar_alarm","base.group_user",1,1,1,1
-"access_res_alarm","res.alarm","model_res_alarm","base.group_user",1,1,1,1
-"access_calendar_todo","calendar.todo","model_calendar_todo","base.group_user",1,1,1,1
-"access_calendar_event","calendar.event","model_calendar_event","base.group_user",1,1,1,1
-"access_calendar_attendee_survey_user","calendar.attendee","model_calendar_attendee","base.group_survey_user",1,0,0,0
+id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
+access_calendar_attendee,calendar.attendee,model_calendar_attendee,base.group_user,1,1,1,1
+access_calendar_alarm,calendar.alarm,model_calendar_alarm,base.group_user,1,1,1,1
+access_res_alarm,res.alarm,model_res_alarm,base.group_user,1,1,1,1
+access_calendar_todo,calendar.todo,model_calendar_todo,base.group_user,1,1,1,1
+access_calendar_event,calendar.event,model_calendar_event,base.group_user,1,1,1,1
+access_calendar_attendee_survey_user,calendar.attendee,model_calendar_attendee,base.group_survey_user,1,0,0,0
diff --git a/addons/crm/test/test_crm_recurrent_meeting_case2.yml b/addons/base_calendar/test/test_crm_recurrent_meeting_case2.yml
similarity index 98%
rename from addons/crm/test/test_crm_recurrent_meeting_case2.yml
rename to addons/base_calendar/test/test_crm_recurrent_meeting_case2.yml
index b6afeb6906e..693f0d81c6b 100644
--- a/addons/crm/test/test_crm_recurrent_meeting_case2.yml
+++ b/addons/base_calendar/test/test_crm_recurrent_meeting_case2.yml
@@ -72,7 +72,7 @@
!python {model: crm.meeting}: |
from base_calendar import base_calendar
base_cal_id = base_calendar.real_id2base_calendar_id(ref('crm_meeting_sprintreview0'), '2011-09-01 13:01:00')
- self.write(cr, uid, [base_cal_id], {'name': 'Sprint Review for google modules', 'edit_all': True})
+ self.write(cr, uid, [base_cal_id], {'name': 'Sprint Review for google modules'})
-
I check whether all the records are edited or not.
-
diff --git a/addons/base_contact/__openerp__.py b/addons/base_contact/__openerp__.py
index 716db29bdcc..77dabe261f3 100644
--- a/addons/base_contact/__openerp__.py
+++ b/addons/base_contact/__openerp__.py
@@ -21,9 +21,9 @@
{
- 'name': 'Base Contact',
+ 'name': 'Contacts Management',
'version': '1.0',
- 'category': 'Hidden',
+ 'category': 'Customer Relationship Management',
'complexity': "expert",
'description': """
This module allows you to manage your contacts entirely.
@@ -45,7 +45,6 @@ Pay attention that this module converts the existing addresses into "addresses +
'depends': ['base','process'],
'init_xml': [],
'update_xml': [
- 'security/base_contact_security.xml',
'security/ir.model.access.csv',
'base_contact_view.xml',
'process/base_contact_process.xml'
diff --git a/addons/base_contact/base_contact_demo.xml b/addons/base_contact/base_contact_demo.xml
index 693988fc1e3..ab9a925f527 100644
--- a/addons/base_contact/base_contact_demo.xml
+++ b/addons/base_contact/base_contact_demo.xml
@@ -146,7 +146,11 @@
-
+
+
@@ -154,7 +158,11 @@
-
+
+
@@ -162,7 +170,11 @@
-
+
+
diff --git a/addons/base_contact/i18n/ar.po b/addons/base_contact/i18n/ar.po
index 6264b1aa32d..e5610421181 100644
--- a/addons/base_contact/i18n/ar.po
+++ b/addons/base_contact/i18n/ar.po
@@ -7,104 +7,104 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2011-01-11 11:14+0000\n"
-"PO-Revision-Date: 2009-02-03 06:25+0000\n"
-"Last-Translator: <>\n"
+"PO-Revision-Date: 2011-12-03 15:19+0000\n"
+"Last-Translator: kifcaliph \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-11-05 05:04+0000\n"
-"X-Generator: Launchpad (build 14231)\n"
+"X-Launchpad-Export-Date: 2011-12-04 04:43+0000\n"
+"X-Generator: Launchpad (build 14418)\n"
#. module: base_contact
#: field:res.partner.contact,title:0
msgid "Title"
-msgstr ""
+msgstr "اللقب"
#. module: base_contact
#: view:res.partner.address:0
msgid "# of Contacts"
-msgstr ""
+msgstr "عدد جهات الاتصال"
#. module: base_contact
#: field:res.partner.job,fax:0
msgid "Fax"
-msgstr ""
+msgstr "فاكس"
#. module: base_contact
#: view:base.contact.installer:0
msgid "title"
-msgstr ""
+msgstr "الاسم"
#. module: base_contact
#: help:res.partner.job,date_start:0
msgid "Start date of job(Joining Date)"
-msgstr ""
+msgstr "تاريخ الالتحاق بالوظيفة"
#. module: base_contact
#: view:base.contact.installer:0
msgid "Select the Option for Addresses Migration"
-msgstr ""
+msgstr "حدد الخيار لنقل العناوين"
#. module: base_contact
#: help:res.partner.job,function:0
msgid "Function of this contact with this partner"
-msgstr ""
+msgstr "مهمة جهة الاتصال هذه عند هذا الشريك"
#. module: base_contact
#: help:res.partner.job,state:0
msgid "Status of Address"
-msgstr ""
+msgstr "حالة العنوان"
#. module: base_contact
#: help:res.partner.job,name:0
msgid ""
"You may enter Address first,Partner will be linked "
"automatically if any."
-msgstr ""
+msgstr "يمكنك إدخال العنوان أولاً، وسيتمّ ربط الشريك تلقائياً إن وُجِد."
#. module: base_contact
#: help:res.partner.job,fax:0
msgid "Job FAX no."
-msgstr ""
+msgstr "فاكس العمل"
#. module: base_contact
#: field:res.partner.contact,mobile:0
msgid "Mobile"
-msgstr ""
+msgstr "الجوال"
#. module: base_contact
#: view:res.partner.contact:0
#: field:res.partner.contact,comment:0
msgid "Notes"
-msgstr ""
+msgstr "ملاحظات"
#. module: base_contact
#: model:process.node,note:base_contact.process_node_contacts0
msgid "People you work with."
-msgstr ""
+msgstr "أشخاص تعمل معهم."
#. module: base_contact
#: model:process.transition,note:base_contact.process_transition_functiontoaddress0
msgid "Define functions and address."
-msgstr ""
+msgstr "تعريف المهام والعنوان"
#. module: base_contact
#: help:res.partner.job,date_stop:0
msgid "Last date of job"
-msgstr ""
+msgstr "تاريخ ترك الوظيفة"
#. module: base_contact
#: view:base.contact.installer:0
#: field:base.contact.installer,migrate:0
msgid "Migrate"
-msgstr ""
+msgstr "نقل"
#. module: base_contact
#: view:res.partner.contact:0
#: field:res.partner.job,name:0
msgid "Partner"
-msgstr ""
+msgstr "الشريك"
#. module: base_contact
#: model:process.node,note:base_contact.process_node_function0
@@ -114,12 +114,12 @@ msgstr ""
#. module: base_contact
#: model:process.node,name:base_contact.process_node_partners0
msgid "Partners"
-msgstr ""
+msgstr "الشركاء"
#. module: base_contact
#: field:res.partner.job,state:0
msgid "State"
-msgstr ""
+msgstr "المحافظة"
#. module: base_contact
#: help:res.partner.contact,active:0
@@ -151,27 +151,42 @@ msgid ""
"an other object.\n"
" "
msgstr ""
+"\n"
+" تمكنك هذه الوحدة البرمجية من إدارة جهات الاتصال بشكل كامل.\n"
+" فهي تسمح لك بـتعرف:\n"
+" * جهات اتصال غير ذات صلة بشريك،\n"
+" * جهات اتصال ذات عناوين عمل متعددة (ربما لارتباطها بشركاء مختلفين)،\n"
+" * جهات اتصال ذات مهام مختلفة لكل عنوان من عناوين وظائفها\n"
+"\n"
+" كذلك تضيف هذه الوحدة البرمجية عناصر جديدة إلى القائمة تحت\n"
+" الشركاء / جهات الاتصال\n"
+" الشركاء / المهام\n"
+"\n"
+" تنبه إلى أن هذه الوحدة البرمجية تقوم بتحويل العناوين الموجودة مسبقاً إلى "
+"\"عناوين\" و \"جهات اتصال\"، مما يعني أن بعض حقول العناوين سيتم حذفها (مثل "
+"اسم جهة الاتصال) لأنه من المفترض أن يتم تعريفها في كائن آخر.\n"
+" "
#. module: base_contact
#: model:ir.module.module,shortdesc:base_contact.module_meta_information
#: model:process.process,name:base_contact.process_process_basecontactprocess0
msgid "Base Contact"
-msgstr ""
+msgstr "جهة الاتصال الأساسية"
#. module: base_contact
#: field:res.partner.job,date_stop:0
msgid "Date Stop"
-msgstr ""
+msgstr "تاريخ التوقف"
#. module: base_contact
#: model:ir.actions.act_window,name:base_contact.action_res_partner_job
msgid "Contact's Jobs"
-msgstr ""
+msgstr "الوظائف"
#. module: base_contact
#: view:res.partner:0
msgid "Categories"
-msgstr ""
+msgstr "الفئات"
#. module: base_contact
#: help:res.partner.job,sequence_partner:0
@@ -179,70 +194,72 @@ msgid ""
"Order of importance of this job title in the list of job "
"title of the linked partner"
msgstr ""
+"ترتيب المسمى الوظيفي هذا حسب الأهمية بين المسميات الوظيغية المستخدمة لدى "
+"الشريك"
#. module: base_contact
#: field:res.partner.job,extension:0
msgid "Extension"
-msgstr ""
+msgstr "الامتداد"
#. module: base_contact
#: help:res.partner.job,extension:0
msgid "Internal/External extension phone number"
-msgstr ""
+msgstr "امتداد رقم الهاتف الداخلي/الخارجي"
#. module: base_contact
#: help:res.partner.job,phone:0
msgid "Job Phone no."
-msgstr ""
+msgstr "هاتف العمل"
#. module: base_contact
#: view:res.partner.contact:0
#: field:res.partner.contact,job_ids:0
msgid "Functions and Addresses"
-msgstr ""
+msgstr "المهام والعناوين"
#. module: base_contact
#: model:ir.model,name:base_contact.model_res_partner_contact
#: field:res.partner.job,contact_id:0
msgid "Contact"
-msgstr ""
+msgstr "جهة الاتصال"
#. module: base_contact
#: help:res.partner.job,email:0
msgid "Job E-Mail"
-msgstr ""
+msgstr "البريد الإلكتروني للعمل"
#. module: base_contact
#: field:res.partner.job,sequence_partner:0
msgid "Partner Seq."
-msgstr ""
+msgstr "رقم الشريك"
#. module: base_contact
#: model:process.transition,name:base_contact.process_transition_functiontoaddress0
msgid "Function to address"
-msgstr ""
+msgstr "مهمة إلى عنوان"
#. module: base_contact
#: field:base.contact.installer,progress:0
msgid "Configuration Progress"
-msgstr ""
+msgstr "سير الإعدادات"
#. module: base_contact
#: field:res.partner.contact,name:0
msgid "Last Name"
-msgstr ""
+msgstr "اسم العائلة"
#. module: base_contact
#: view:res.partner:0
#: view:res.partner.contact:0
msgid "Communication"
-msgstr ""
+msgstr "التواصل"
#. module: base_contact
#: field:base.contact.installer,config_logo:0
#: field:res.partner.contact,photo:0
msgid "Image"
-msgstr ""
+msgstr "صورة"
#. module: base_contact
#: selection:res.partner.job,state:0
@@ -252,7 +269,7 @@ msgstr ""
#. module: base_contact
#: model:ir.model,name:base_contact.model_res_partner_address
msgid "Partner Addresses"
-msgstr ""
+msgstr "عناوين الشريك"
#. module: base_contact
#: view:base.contact.installer:0
@@ -262,12 +279,12 @@ msgstr ""
#. module: base_contact
#: field:res.partner.job,sequence_contact:0
msgid "Contact Seq."
-msgstr ""
+msgstr "رقم جهة الاتصال"
#. module: base_contact
#: view:res.partner.address:0
msgid "Search Contact"
-msgstr ""
+msgstr "بحث جهة الإتصال"
#. module: base_contact
#: model:ir.actions.act_window,name:base_contact.action_partner_contact_form
@@ -277,7 +294,7 @@ msgstr ""
#: view:res.partner:0
#: field:res.partner.address,job_ids:0
msgid "Contacts"
-msgstr ""
+msgstr "جهات الاتصال"
#. module: base_contact
#: view:base.contact.installer:0
@@ -289,58 +306,58 @@ msgstr ""
#. module: base_contact
#: model:process.node,note:base_contact.process_node_addresses0
msgid "Working and private addresses."
-msgstr ""
+msgstr "عناوين العمل والعناوين الخاصة"
#. module: base_contact
#: help:res.partner.job,address_id:0
msgid "Address which is linked to the Partner"
-msgstr ""
+msgstr "العنوان المرتبط بالشريك"
#. module: base_contact
#: field:res.partner.job,function:0
msgid "Partner Function"
-msgstr ""
+msgstr "مهمة الشريك"
#. module: base_contact
#: help:res.partner.job,other:0
msgid "Additional phone field"
-msgstr ""
+msgstr "حقل هاتف إضافي"
#. module: base_contact
#: field:res.partner.contact,website:0
msgid "Website"
-msgstr ""
+msgstr "الموقع الإلكتروني"
#. module: base_contact
#: view:base.contact.installer:0
msgid "Otherwise these details will not be visible from address/contact."
-msgstr ""
+msgstr "وإلا فلن تظهر هذه التفاصيل في العنوان/جهة الاتصال."
#. module: base_contact
#: view:base.contact.installer:0
msgid "Configure"
-msgstr ""
+msgstr "ضبط الإعدادات"
#. module: base_contact
#: field:res.partner.contact,email:0
#: field:res.partner.job,email:0
msgid "E-Mail"
-msgstr ""
+msgstr "البريد الإلكتروني"
#. module: base_contact
#: model:ir.model,name:base_contact.model_base_contact_installer
msgid "base.contact.installer"
-msgstr ""
+msgstr "base.contact.installer"
#. module: base_contact
#: view:res.partner.job:0
msgid "Contact Functions"
-msgstr ""
+msgstr "مهام جهة الاتصال"
#. module: base_contact
#: field:res.partner.job,phone:0
msgid "Phone"
-msgstr ""
+msgstr "هاتف"
#. module: base_contact
#: view:base.contact.installer:0
@@ -350,164 +367,164 @@ msgstr ""
#. module: base_contact
#: field:res.partner.contact,active:0
msgid "Active"
-msgstr ""
+msgstr "نشِط"
#. module: base_contact
#: field:res.partner.contact,function:0
msgid "Main Function"
-msgstr ""
+msgstr "المهمة الرئيسية"
#. module: base_contact
#: model:process.transition,note:base_contact.process_transition_partnertoaddress0
msgid "Define partners and their addresses."
-msgstr ""
+msgstr "تعريف الشركاء وعناوينهم"
#. module: base_contact
#: view:res.partner.contact:0
msgid "Seq."
-msgstr ""
+msgstr "رقم"
#. module: base_contact
#: field:res.partner.contact,lang_id:0
msgid "Language"
-msgstr ""
+msgstr "اللغة"
#. module: base_contact
#: view:res.partner.contact:0
msgid "Extra Information"
-msgstr ""
+msgstr "معلومات إضافية"
#. module: base_contact
#: model:process.node,note:base_contact.process_node_partners0
msgid "Companies you work with."
-msgstr ""
+msgstr "الشركات التي تتعامل معها."
#. module: base_contact
#: view:res.partner.contact:0
msgid "Partner Contact"
-msgstr ""
+msgstr "جهة الاتصال بالشريك"
#. module: base_contact
#: view:res.partner.contact:0
msgid "General"
-msgstr ""
+msgstr "عام"
#. module: base_contact
#: view:res.partner.contact:0
msgid "Photo"
-msgstr ""
+msgstr "صورة"
#. module: base_contact
#: field:res.partner.contact,birthdate:0
msgid "Birth Date"
-msgstr ""
+msgstr "تاريخ الميلاد"
#. module: base_contact
#: help:base.contact.installer,migrate:0
msgid "If you select this, all addresses will be migrated."
-msgstr ""
+msgstr "إذا اخترت هذا الخيار، سيتم نقل جميع العناوين."
#. module: base_contact
#: selection:res.partner.job,state:0
msgid "Current"
-msgstr ""
+msgstr "الحالي"
#. module: base_contact
#: field:res.partner.contact,first_name:0
msgid "First Name"
-msgstr ""
+msgstr "الاسم الأول"
#. module: base_contact
#: model:ir.model,name:base_contact.model_res_partner_job
msgid "Contact Partner Function"
-msgstr ""
+msgstr "مهمة الشريك"
#. module: base_contact
#: field:res.partner.job,other:0
msgid "Other"
-msgstr ""
+msgstr "غير ذلك"
#. module: base_contact
#: model:process.node,name:base_contact.process_node_function0
msgid "Function"
-msgstr ""
+msgstr "المهمة"
#. module: base_contact
#: field:res.partner.address,job_id:0
#: field:res.partner.contact,job_id:0
msgid "Main Job"
-msgstr ""
+msgstr "الوظيفة الرئيسية"
#. module: base_contact
#: model:process.transition,note:base_contact.process_transition_contacttofunction0
msgid "Defines contacts and functions."
-msgstr ""
+msgstr "تعريف جهات الاتصال والمهام."
#. module: base_contact
#: model:process.transition,name:base_contact.process_transition_contacttofunction0
msgid "Contact to function"
-msgstr ""
+msgstr "جهة اتصال إلى مهمة"
#. module: base_contact
#: view:res.partner:0
#: field:res.partner.job,address_id:0
msgid "Address"
-msgstr ""
+msgstr "العنوان"
#. module: base_contact
#: field:res.partner.contact,country_id:0
msgid "Nationality"
-msgstr ""
+msgstr "الجنسية"
#. module: base_contact
#: model:ir.actions.act_window,name:base_contact.act_res_partner_jobs
msgid "Open Jobs"
-msgstr ""
+msgstr "الوظائف المفتوحة"
#. module: base_contact
#: field:base.contact.installer,name:0
msgid "Name"
-msgstr ""
+msgstr "الاسم"
#. module: base_contact
#: view:base.contact.installer:0
msgid "You can migrate Partner's current addresses to the contact."
-msgstr ""
+msgstr "يمكنك نقل العناوين الحالية للشريك إلى جهة الاتصال"
#. module: base_contact
#: field:res.partner.contact,partner_id:0
msgid "Main Employer"
-msgstr ""
+msgstr "صاحب العمل الرئيسي"
#. module: base_contact
#: model:ir.actions.act_window,name:base_contact.action_base_contact_installer
msgid "Address Migration"
-msgstr ""
+msgstr "نقل العنوان"
#. module: base_contact
#: view:res.partner:0
msgid "Postal Address"
-msgstr ""
+msgstr "العنوان البريدي"
#. module: base_contact
#: model:process.node,name:base_contact.process_node_addresses0
#: view:res.partner:0
msgid "Addresses"
-msgstr ""
+msgstr "العناوين"
#. module: base_contact
#: model:process.transition,name:base_contact.process_transition_partnertoaddress0
msgid "Partner to address"
-msgstr ""
+msgstr "شريك إلى عنوان"
#. module: base_contact
#: field:res.partner.job,date_start:0
msgid "Date Start"
-msgstr ""
+msgstr "تاريخ البدء"
#. module: base_contact
#: help:res.partner.job,sequence_contact:0
msgid ""
"Order of importance of this address in the list of "
"addresses of the linked contact"
-msgstr ""
+msgstr "ترتيب هذا العنوان حسب الأهمية بين عناوين جهة الاتصال"
diff --git a/addons/base_contact/i18n/cs.po b/addons/base_contact/i18n/cs.po
index c93c7f7f7ba..2e4b8e18e42 100644
--- a/addons/base_contact/i18n/cs.po
+++ b/addons/base_contact/i18n/cs.po
@@ -4,17 +4,18 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: OpenERP Server 6.0dev\n"
+"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2011-01-11 11:14+0000\n"
-"PO-Revision-Date: 2010-08-03 00:58+0000\n"
-"Last-Translator: Mantavya Gajjar (Open ERP) \n"
-"Language-Team: \n"
+"PO-Revision-Date: 2011-11-25 12:34+0000\n"
+"Last-Translator: Jiří Hajda \n"
+"Language-Team: Czech \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-11-05 05:04+0000\n"
-"X-Generator: Launchpad (build 14231)\n"
+"X-Launchpad-Export-Date: 2011-11-26 05:49+0000\n"
+"X-Generator: Launchpad (build 14381)\n"
+"X-Poedit-Language: Czech\n"
#. module: base_contact
#: field:res.partner.contact,title:0
@@ -24,7 +25,7 @@ msgstr "Název"
#. module: base_contact
#: view:res.partner.address:0
msgid "# of Contacts"
-msgstr ""
+msgstr "# z kontaktů"
#. module: base_contact
#: field:res.partner.job,fax:0
@@ -34,27 +35,27 @@ msgstr "Fax"
#. module: base_contact
#: view:base.contact.installer:0
msgid "title"
-msgstr ""
+msgstr "nadpis"
#. module: base_contact
#: help:res.partner.job,date_start:0
msgid "Start date of job(Joining Date)"
-msgstr ""
+msgstr "Datum zahájení práce (datum připojení)"
#. module: base_contact
#: view:base.contact.installer:0
msgid "Select the Option for Addresses Migration"
-msgstr ""
+msgstr "Vyberte volbu pro přesun adres"
#. module: base_contact
#: help:res.partner.job,function:0
msgid "Function of this contact with this partner"
-msgstr ""
+msgstr "Funkce tohoto kontaktu s tímto partnerem"
#. module: base_contact
#: help:res.partner.job,state:0
msgid "Status of Address"
-msgstr ""
+msgstr "Stav adresy"
#. module: base_contact
#: help:res.partner.job,name:0
@@ -62,64 +63,66 @@ msgid ""
"You may enter Address first,Partner will be linked "
"automatically if any."
msgstr ""
+"Můžete zadat nejdříve adresu. Pokud je nějaký partner, "
+"bude napojen automaticky."
#. module: base_contact
#: help:res.partner.job,fax:0
msgid "Job FAX no."
-msgstr ""
+msgstr "Číslo FAXu do práce"
#. module: base_contact
#: field:res.partner.contact,mobile:0
msgid "Mobile"
-msgstr ""
+msgstr "Mobil"
#. module: base_contact
#: view:res.partner.contact:0
#: field:res.partner.contact,comment:0
msgid "Notes"
-msgstr ""
+msgstr "Poznámky"
#. module: base_contact
#: model:process.node,note:base_contact.process_node_contacts0
msgid "People you work with."
-msgstr ""
+msgstr "Lidé, s kterými pracujete."
#. module: base_contact
#: model:process.transition,note:base_contact.process_transition_functiontoaddress0
msgid "Define functions and address."
-msgstr ""
+msgstr "Určit funkce a adresu."
#. module: base_contact
#: help:res.partner.job,date_stop:0
msgid "Last date of job"
-msgstr ""
+msgstr "Poslední datum práce"
#. module: base_contact
#: view:base.contact.installer:0
#: field:base.contact.installer,migrate:0
msgid "Migrate"
-msgstr ""
+msgstr "Přesunout"
#. module: base_contact
#: view:res.partner.contact:0
#: field:res.partner.job,name:0
msgid "Partner"
-msgstr ""
+msgstr "Partner"
#. module: base_contact
#: model:process.node,note:base_contact.process_node_function0
msgid "Jobs at a same partner address."
-msgstr ""
+msgstr "Pracovní pozice u stejné adresy partnera."
#. module: base_contact
#: model:process.node,name:base_contact.process_node_partners0
msgid "Partners"
-msgstr ""
+msgstr "Partneři"
#. module: base_contact
#: field:res.partner.job,state:0
msgid "State"
-msgstr ""
+msgstr "Stav"
#. module: base_contact
#: help:res.partner.contact,active:0
@@ -127,6 +130,8 @@ msgid ""
"If the active field is set to False, it will allow you to "
"hide the partner contact without removing it."
msgstr ""
+"Pokud je aktivní pole nastaveno na Nepravda, umožní vám to "
+"skrýt kontakt partnera bez jeho odstranění."
#. module: base_contact
#: model:ir.module.module,description:base_contact.module_meta_information
@@ -151,22 +156,40 @@ msgid ""
"an other object.\n"
" "
msgstr ""
+"\n"
+" Tento modul umožňuje úplně spravovat vaše kontakty.\n"
+"\n"
+" Nechá vás určit\n"
+" *kontakty nevztažené k partnerovi,\n"
+" *kontakty pracující na několika adresách (případně i pro různé "
+"partnery),\n"
+" *kontakty s možnými různými funkcemi pro každou jeho pracovní "
+"adresu\n"
+"\n"
+" Také přidává nové položky nabídky umístěné v\n"
+" Partneři \\ Kontakty\n"
+" Partneři \\ Funkce\n"
+"\n"
+" Berte na vědomí, že tento modul převádí existující adresy na \"adresy + "
+"kontakty\". To znamená, že některé pole adres budou chybět (jako jméno "
+"kontaktu), protože ty jsou definovány v jiném objektu.\n"
+" "
#. module: base_contact
#: model:ir.module.module,shortdesc:base_contact.module_meta_information
#: model:process.process,name:base_contact.process_process_basecontactprocess0
msgid "Base Contact"
-msgstr ""
+msgstr "Základní kontakt"
#. module: base_contact
#: field:res.partner.job,date_stop:0
msgid "Date Stop"
-msgstr ""
+msgstr "Datum zastavení"
#. module: base_contact
#: model:ir.actions.act_window,name:base_contact.action_res_partner_job
msgid "Contact's Jobs"
-msgstr ""
+msgstr "Pozice kontaktu"
#. module: base_contact
#: view:res.partner:0
@@ -179,95 +202,97 @@ msgid ""
"Order of importance of this job title in the list of job "
"title of the linked partner"
msgstr ""
+"Pořadí důležitosti této pracovní pozice v seznamu titulů "
+"pozic napojeného partnera"
#. module: base_contact
#: field:res.partner.job,extension:0
msgid "Extension"
-msgstr ""
+msgstr "Rozšíření"
#. module: base_contact
#: help:res.partner.job,extension:0
msgid "Internal/External extension phone number"
-msgstr ""
+msgstr "Vnitřní/vnější telefoní číslo klapky"
#. module: base_contact
#: help:res.partner.job,phone:0
msgid "Job Phone no."
-msgstr ""
+msgstr "Telefoní číslo do práce."
#. module: base_contact
#: view:res.partner.contact:0
#: field:res.partner.contact,job_ids:0
msgid "Functions and Addresses"
-msgstr ""
+msgstr "Funkce a adresy"
#. module: base_contact
#: model:ir.model,name:base_contact.model_res_partner_contact
#: field:res.partner.job,contact_id:0
msgid "Contact"
-msgstr ""
+msgstr "Kontakt"
#. module: base_contact
#: help:res.partner.job,email:0
msgid "Job E-Mail"
-msgstr ""
+msgstr "Pracovní E-Mail"
#. module: base_contact
#: field:res.partner.job,sequence_partner:0
msgid "Partner Seq."
-msgstr ""
+msgstr "Poř. parnera"
#. module: base_contact
#: model:process.transition,name:base_contact.process_transition_functiontoaddress0
msgid "Function to address"
-msgstr ""
+msgstr "Funkce na adresu"
#. module: base_contact
#: field:base.contact.installer,progress:0
msgid "Configuration Progress"
-msgstr ""
+msgstr "Průběh nastavení"
#. module: base_contact
#: field:res.partner.contact,name:0
msgid "Last Name"
-msgstr ""
+msgstr "Příjmení"
#. module: base_contact
#: view:res.partner:0
#: view:res.partner.contact:0
msgid "Communication"
-msgstr ""
+msgstr "Komunikace"
#. module: base_contact
#: field:base.contact.installer,config_logo:0
#: field:res.partner.contact,photo:0
msgid "Image"
-msgstr ""
+msgstr "Obrázek"
#. module: base_contact
#: selection:res.partner.job,state:0
msgid "Past"
-msgstr ""
+msgstr "Minulý"
#. module: base_contact
#: model:ir.model,name:base_contact.model_res_partner_address
msgid "Partner Addresses"
-msgstr ""
+msgstr "Adresy partnerů"
#. module: base_contact
#: view:base.contact.installer:0
msgid "Address's Migration to Contacts"
-msgstr ""
+msgstr "Stěhování adresy na kontakty"
#. module: base_contact
#: field:res.partner.job,sequence_contact:0
msgid "Contact Seq."
-msgstr ""
+msgstr "Poř. kontaktu"
#. module: base_contact
#: view:res.partner.address:0
msgid "Search Contact"
-msgstr ""
+msgstr "Hledat kontakt"
#. module: base_contact
#: model:ir.actions.act_window,name:base_contact.action_partner_contact_form
@@ -277,7 +302,7 @@ msgstr ""
#: view:res.partner:0
#: field:res.partner.address,job_ids:0
msgid "Contacts"
-msgstr "Kotakty"
+msgstr "Kontakty"
#. module: base_contact
#: view:base.contact.installer:0
@@ -285,52 +310,54 @@ msgid ""
"Due to changes in Address and Partner's relation, some of the details from "
"address are needed to be migrated into contact information."
msgstr ""
+"Kvůli změnám v adrese a vztahu partnera, některé podrobnosti adresy jsou "
+"potřebné, aby byly přesunuty do informací účtu."
#. module: base_contact
#: model:process.node,note:base_contact.process_node_addresses0
msgid "Working and private addresses."
-msgstr ""
+msgstr "Pracovní a soukromé adresy."
#. module: base_contact
#: help:res.partner.job,address_id:0
msgid "Address which is linked to the Partner"
-msgstr ""
+msgstr "Adresa, která je napojena na partnera"
#. module: base_contact
#: field:res.partner.job,function:0
msgid "Partner Function"
-msgstr ""
+msgstr "Funkce partnera"
#. module: base_contact
#: help:res.partner.job,other:0
msgid "Additional phone field"
-msgstr ""
+msgstr "Doplňující pole telefonu"
#. module: base_contact
#: field:res.partner.contact,website:0
msgid "Website"
-msgstr ""
+msgstr "Webová stránka"
#. module: base_contact
#: view:base.contact.installer:0
msgid "Otherwise these details will not be visible from address/contact."
-msgstr ""
+msgstr "Jinak tyto podrobnosti nebudou viditelné z adresy/kontaktu."
#. module: base_contact
#: view:base.contact.installer:0
msgid "Configure"
-msgstr ""
+msgstr "Nastavit"
#. module: base_contact
#: field:res.partner.contact,email:0
#: field:res.partner.job,email:0
msgid "E-Mail"
-msgstr ""
+msgstr "E-mail"
#. module: base_contact
#: model:ir.model,name:base_contact.model_base_contact_installer
msgid "base.contact.installer"
-msgstr ""
+msgstr "base.contact.installer"
#. module: base_contact
#: view:res.partner.job:0
@@ -345,27 +372,27 @@ msgstr "Telefon"
#. module: base_contact
#: view:base.contact.installer:0
msgid "Do you want to migrate your Address data in Contact Data?"
-msgstr ""
+msgstr "Chcete stěhovat vaše data adresy v datech kontaktu?"
#. module: base_contact
#: field:res.partner.contact,active:0
msgid "Active"
-msgstr ""
+msgstr "Aktivní"
#. module: base_contact
#: field:res.partner.contact,function:0
msgid "Main Function"
-msgstr ""
+msgstr "Hlavní funkce"
#. module: base_contact
#: model:process.transition,note:base_contact.process_transition_partnertoaddress0
msgid "Define partners and their addresses."
-msgstr ""
+msgstr "Určuje partnery a jejich adresy."
#. module: base_contact
#: view:res.partner.contact:0
msgid "Seq."
-msgstr ""
+msgstr "Poř."
#. module: base_contact
#: field:res.partner.contact,lang_id:0
@@ -375,37 +402,37 @@ msgstr "Jazyk"
#. module: base_contact
#: view:res.partner.contact:0
msgid "Extra Information"
-msgstr ""
+msgstr "Speciální informace"
#. module: base_contact
#: model:process.node,note:base_contact.process_node_partners0
msgid "Companies you work with."
-msgstr ""
+msgstr "Společnosti, se kterými pracujete."
#. module: base_contact
#: view:res.partner.contact:0
msgid "Partner Contact"
-msgstr ""
+msgstr "Kontakt partnera"
#. module: base_contact
#: view:res.partner.contact:0
msgid "General"
-msgstr ""
+msgstr "Obecný"
#. module: base_contact
#: view:res.partner.contact:0
msgid "Photo"
-msgstr ""
+msgstr "Fotka"
#. module: base_contact
#: field:res.partner.contact,birthdate:0
msgid "Birth Date"
-msgstr ""
+msgstr "Datum narození"
#. module: base_contact
#: help:base.contact.installer,migrate:0
msgid "If you select this, all addresses will be migrated."
-msgstr ""
+msgstr "Pokud toto vyberete, všechny adresy budou přesunuty."
#. module: base_contact
#: selection:res.partner.job,state:0
@@ -420,12 +447,12 @@ msgstr "Křestní jméno"
#. module: base_contact
#: model:ir.model,name:base_contact.model_res_partner_job
msgid "Contact Partner Function"
-msgstr ""
+msgstr "Kontakt funkce partnera"
#. module: base_contact
#: field:res.partner.job,other:0
msgid "Other"
-msgstr ""
+msgstr "Jiné"
#. module: base_contact
#: model:process.node,name:base_contact.process_node_function0
@@ -436,17 +463,17 @@ msgstr "Funkce"
#: field:res.partner.address,job_id:0
#: field:res.partner.contact,job_id:0
msgid "Main Job"
-msgstr ""
+msgstr "Hlavní práce"
#. module: base_contact
#: model:process.transition,note:base_contact.process_transition_contacttofunction0
msgid "Defines contacts and functions."
-msgstr ""
+msgstr "Určuje kontakty a funkce."
#. module: base_contact
#: model:process.transition,name:base_contact.process_transition_contacttofunction0
msgid "Contact to function"
-msgstr ""
+msgstr "Kontakt na funkci"
#. module: base_contact
#: view:res.partner:0
@@ -457,53 +484,53 @@ msgstr "Adresa"
#. module: base_contact
#: field:res.partner.contact,country_id:0
msgid "Nationality"
-msgstr ""
+msgstr "Národnost"
#. module: base_contact
#: model:ir.actions.act_window,name:base_contact.act_res_partner_jobs
msgid "Open Jobs"
-msgstr ""
+msgstr "Otevřené pozice"
#. module: base_contact
#: field:base.contact.installer,name:0
msgid "Name"
-msgstr ""
+msgstr "Jméno"
#. module: base_contact
#: view:base.contact.installer:0
msgid "You can migrate Partner's current addresses to the contact."
-msgstr ""
+msgstr "Můžete stěhovat partnerovu aktuální adresu do kontaktu."
#. module: base_contact
#: field:res.partner.contact,partner_id:0
msgid "Main Employer"
-msgstr ""
+msgstr "Hlavní zaměstnavatel"
#. module: base_contact
#: model:ir.actions.act_window,name:base_contact.action_base_contact_installer
msgid "Address Migration"
-msgstr ""
+msgstr "Stěhování adresy"
#. module: base_contact
#: view:res.partner:0
msgid "Postal Address"
-msgstr ""
+msgstr "Poštovní adresa"
#. module: base_contact
#: model:process.node,name:base_contact.process_node_addresses0
#: view:res.partner:0
msgid "Addresses"
-msgstr ""
+msgstr "Adresy"
#. module: base_contact
#: model:process.transition,name:base_contact.process_transition_partnertoaddress0
msgid "Partner to address"
-msgstr ""
+msgstr "Partner na adresu"
#. module: base_contact
#: field:res.partner.job,date_start:0
msgid "Date Start"
-msgstr ""
+msgstr "Počáteční datum"
#. module: base_contact
#: help:res.partner.job,sequence_contact:0
@@ -511,6 +538,8 @@ msgid ""
"Order of importance of this address in the list of "
"addresses of the linked contact"
msgstr ""
+"Pořadí podle důležitosti této adresy v seznamu adres napojeného "
+"kontaktu"
#~ msgid "Invalid XML for View Architecture!"
#~ msgstr "Invalidní XML pro zobrazení architektury!"
diff --git a/addons/base_contact/security/base_contact_security.xml b/addons/base_contact/security/base_contact_security.xml
deleted file mode 100644
index 56a995c76a8..00000000000
--- a/addons/base_contact/security/base_contact_security.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
-
- Sales / User
-
-
-
- Sales / Manager
-
-
-
-
diff --git a/addons/base_contact/test/base_contact00.yml b/addons/base_contact/test/base_contact00.yml
index 1215a0ec32d..984144d052b 100644
--- a/addons/base_contact/test/base_contact00.yml
+++ b/addons/base_contact/test/base_contact00.yml
@@ -62,7 +62,7 @@
country_id: base.be
first_name: Nicolas
job_ids:
- - address_id: base.main_address
+ - address_id: base.res_partner_address_1
function: CTO
state: current
- address_id: base.res_partner_address_3000
diff --git a/addons/base_crypt/__openerp__.py b/addons/base_crypt/__openerp__.py
index 23e29420036..fc85100b41c 100644
--- a/addons/base_crypt/__openerp__.py
+++ b/addons/base_crypt/__openerp__.py
@@ -19,12 +19,12 @@
#
##############################################################################
{
- "name" : "Base - Password Encryption",
+ "name" : "DB Password Encryption",
"version" : "1.1",
"author" : ['OpenERP SA', "FS3"],
"maintainer" : "OpenERP SA",
"website" : "http://www.openerp.com",
- "category" : "Hidden",
+ "category" : "Tools",
'complexity': "easy",
"description": """
Replaces cleartext passwords in the database with a secure hash
diff --git a/addons/base_iban/__openerp__.py b/addons/base_iban/__openerp__.py
index c9bc3866b4f..bf9162601b1 100644
--- a/addons/base_iban/__openerp__.py
+++ b/addons/base_iban/__openerp__.py
@@ -19,9 +19,9 @@
#
##############################################################################
{
- 'name': 'Create IBAN bank accounts',
+ 'name': 'IBAN Bank Accounts',
'version': '1.0',
- 'category': 'Hidden',
+ "category": 'Hidden/Dependency',
'complexity': "easy",
'description': """
This module installs the base for IBAN (International Bank Account Number) bank accounts and checks for its validity.
diff --git a/addons/base_module_doc_rst/__openerp__.py b/addons/base_module_doc_rst/__openerp__.py
index 22a3b39028b..5e3674269d7 100644
--- a/addons/base_module_doc_rst/__openerp__.py
+++ b/addons/base_module_doc_rst/__openerp__.py
@@ -20,9 +20,9 @@
##############################################################################
{
- 'name': 'Module Technical Guide in Restructured Text ',
+ 'name': 'Generate Docs of Modules',
'version': '1.0',
- 'category': 'Hidden',
+ 'category': 'Tools',
'description': """
This module generates the Technical Guides of selected modules in Restructured Text format (RST).
=================================================================================================
diff --git a/addons/base_module_quality/__openerp__.py b/addons/base_module_quality/__openerp__.py
index 02d09e0919d..df57b88fcc2 100644
--- a/addons/base_module_quality/__openerp__.py
+++ b/addons/base_module_quality/__openerp__.py
@@ -21,9 +21,9 @@
{
- 'name': 'Base module quality - To check the quality of other modules' ,
+ 'name': 'Analyse Module Quality' ,
'version': '1.0',
- 'category': 'Hidden',
+ 'category': 'Tools',
'description': """
The aim of this module is to check the quality of other modules.
================================================================
diff --git a/addons/base_module_quality/i18n/pt.po b/addons/base_module_quality/i18n/pt.po
index 67eebfb18bb..cd1f263dc5d 100644
--- a/addons/base_module_quality/i18n/pt.po
+++ b/addons/base_module_quality/i18n/pt.po
@@ -8,14 +8,14 @@ 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: 2010-12-15 10:44+0000\n"
-"Last-Translator: OpenERP Administrators \n"
+"PO-Revision-Date: 2011-12-10 12:08+0000\n"
+"Last-Translator: Paulino Ascenção \n"
"Language-Team: Portuguese \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-11-05 05:39+0000\n"
-"X-Generator: Launchpad (build 14231)\n"
+"X-Launchpad-Export-Date: 2011-12-11 05:36+0000\n"
+"X-Generator: Launchpad (build 14450)\n"
#. module: base_module_quality
#: code:addons/base_module_quality/object_test/object_test.py:187
@@ -152,7 +152,7 @@ msgstr "Objecto de Teste"
#. module: base_module_quality
#: view:module.quality.detail:0
msgid "Save Report"
-msgstr "Gravar Relatório"
+msgstr "Guardar relatório"
#. module: base_module_quality
#: code:addons/base_module_quality/wizard/module_quality_check.py:46
diff --git a/addons/base_module_quality/security/ir.model.access.csv b/addons/base_module_quality/security/ir.model.access.csv
index 74b88054c40..b5e5d53addb 100644
--- a/addons/base_module_quality/security/ir.model.access.csv
+++ b/addons/base_module_quality/security/ir.model.access.csv
@@ -1,3 +1,3 @@
-"id","name","model_id:id","perm_read","perm_write","perm_create","perm_unlink"
-"access_module_quality_check","module.quality.check","model_module_quality_check",1,1,1,1
-"access_module_quality_detail","module.quality.detail","model_module_quality_detail",1,1,1,1
+id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
+access_module_quality_check,module.quality.check,model_module_quality_check,,1,1,1,1
+access_module_quality_detail,module.quality.detail,model_module_quality_detail,,1,1,1,1
diff --git a/addons/base_module_record/__openerp__.py b/addons/base_module_record/__openerp__.py
index 3e1cf79792a..b2a93258d5d 100644
--- a/addons/base_module_record/__openerp__.py
+++ b/addons/base_module_record/__openerp__.py
@@ -21,9 +21,9 @@
{
- 'name': 'Module Record',
+ 'name': 'Record and Create Modules',
'version': '1.0',
- 'category': 'Hidden',
+ 'category': 'Tools',
'description': """
This module allows you to create a new module without any development.
======================================================================
diff --git a/addons/base_module_record/security/ir.model.access.csv b/addons/base_module_record/security/ir.model.access.csv
index fa68571a916..894312eae88 100644
--- a/addons/base_module_record/security/ir.model.access.csv
+++ b/addons/base_module_record/security/ir.model.access.csv
@@ -1,2 +1,2 @@
-id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
-access_ir_module_record,ir.module.record,model_ir_module_record,base.group_system,1,1,1,1
+id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
+access_ir_module_record,ir.module.record,model_ir_module_record,base.group_system,1,1,1,1
diff --git a/addons/base_report_creator/__openerp__.py b/addons/base_report_creator/__openerp__.py
index 5e8bed72d03..632d1d306f6 100644
--- a/addons/base_report_creator/__openerp__.py
+++ b/addons/base_report_creator/__openerp__.py
@@ -23,7 +23,7 @@
{
'name': 'Query Builder',
'version': '1.0',
- 'category': 'Advanced Reporting',
+ 'category': 'Reporting',
'complexity': "expert",
'description': """
This module allows you to create any statistic report on several objects.
diff --git a/addons/base_report_creator/security/ir.model.access.csv b/addons/base_report_creator/security/ir.model.access.csv
index 24e5a1c4cee..a096efd3b18 100644
--- a/addons/base_report_creator/security/ir.model.access.csv
+++ b/addons/base_report_creator/security/ir.model.access.csv
@@ -1,4 +1,5 @@
-"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
-"access_base_report_creator_report","base_report_creator.report","model_base_report_creator_report","base.group_system",1,1,1,1
-"access_base_report_creator_report_fields","base_report_creator.report.fields","model_base_report_creator_report_fields","base.group_system",1,1,1,1
-"access_base_report_creator_report_filter","base_report_creator.report.filter","model_base_report_creator_report_filter","base.group_system",1,1,1,1
+id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
+access_base_report_creator_report,base_report_creator.report,model_base_report_creator_report,base.group_system,1,1,1,1
+access_base_report_creator_report_fields,base_report_creator.report.fields,model_base_report_creator_report_fields,base.group_system,1,1,1,1
+access_base_report_creator_report_filter,base_report_creator.report.filter,model_base_report_creator_report_filter,base.group_system,1,1,1,1
+access_base_report_creator_report_result,base_report_creator.report.result,model_base_report_creator_report_result,base.group_system,1,1,1,1
diff --git a/addons/base_report_designer/__openerp__.py b/addons/base_report_designer/__openerp__.py
index a95235d8017..0f3d5f72263 100644
--- a/addons/base_report_designer/__openerp__.py
+++ b/addons/base_report_designer/__openerp__.py
@@ -23,7 +23,7 @@
{
'name': 'OpenOffice Report Designer',
'version': '0.1',
- 'category': 'Advanced Reporting',
+ 'category': 'Reporting',
'complexity': "normal",
'description': """
This module is used along with OpenERP OpenOffice Plugin.
diff --git a/addons/base_report_designer/base_report_designer.py b/addons/base_report_designer/base_report_designer.py
index 90c48f7f17c..46a6e1fe870 100644
--- a/addons/base_report_designer/base_report_designer.py
+++ b/addons/base_report_designer/base_report_designer.py
@@ -59,13 +59,21 @@ class report_xml(osv.osv):
return True
def report_get(self, cr, uid, report_id, context=None):
+ if context is None:
+ context = {}
+ # skip osv.fields.sanitize_binary_value() because we want the raw bytes in all cases
+ context.update(bin_raw=True)
report = self.browse(cr, uid, report_id, context=context)
- sxw_data=(report.report_sxw_content).encode("iso-8859-1", "replace")
- rml_data= (report.report_rml_content).encode("iso-8859-1", "replace")
+ sxw_data = report.report_sxw_content
+ rml_data = report.report_rml_content
+ if isinstance(sxw_data, unicode):
+ sxw_data = sxw_data.encode("iso-8859-1", "replace")
+ if isinstance(rml_data, unicode):
+ rml_data = rml_data.encode("iso-8859-1", "replace")
return {
- 'file_type' : report.report_type,
- 'report_sxw_content': report.report_sxw_content and base64.encodestring(sxw_data) or False,
- 'report_rml_content': report.report_rml_content and base64.encodestring(rml_data) or False
+ 'file_type' : report.report_type,
+ 'report_sxw_content': sxw_data and base64.encodestring(sxw_data) or False,
+ 'report_rml_content': rml_data and base64.encodestring(rml_data) or False
}
report_xml()
diff --git a/addons/base_setup/__openerp__.py b/addons/base_setup/__openerp__.py
index 4417ebf2439..24d665a2cf6 100644
--- a/addons/base_setup/__openerp__.py
+++ b/addons/base_setup/__openerp__.py
@@ -21,9 +21,9 @@
{
- 'name': 'Base Setup',
+ 'name': 'Initial Setup Tools',
'version': '1.0',
- 'category': 'Hidden',
+ 'category': 'Hidden/Dependency',
'complexity': "easy",
'description': """
This module helps to configure the system at the installation of a new database.
diff --git a/addons/base_setup/base_setup.py b/addons/base_setup/base_setup.py
index ecb9b5bf3c4..c10dee7b14b 100644
--- a/addons/base_setup/base_setup.py
+++ b/addons/base_setup/base_setup.py
@@ -28,290 +28,6 @@ from osv import fields, osv
from tools.translate import _
from lxml import etree
-#Application and feature chooser, this could be done by introspecting ir.modules
-DEFAULT_MODULES = {
- 'Customer Relationship Management' : ['crm',],
- 'Sales Management' : ['sale',],
- 'Project Management' : ['project',],
- 'Knowledge Management' : ['document',],
- 'Warehouse Management' : ['stock',],
- 'Manufacturing' : ['mrp'],
- 'Accounting & Finance' : ['account'],
- 'Purchase Management' : ['purchase'],
- 'Human Resources' : ['hr',],
- 'Point of Sale' : ['point_of_sale',],
- 'Marketing' : ['marketing',],
-}
-
-class base_setup_installer(osv.osv_memory):
- _name = 'base.setup.installer'
- _inherit = 'res.config.installer'
-
- _columns = {
- 'selection' : fields.text('Selection'),
- }
-
- def fields_get(self, cr, uid, fields=None, context=None):
- if context is None:
- context = {}
- if fields is None:
- fields = {}
-
- fields = {}
- category_proxy = self.pool.get('ir.module.category')
- domain = [('parent_id', '=', False),
- ('name', '!=', 'Uncategorized'),
- ('visible', '=', True)]
- category_ids = category_proxy.search(cr, uid, domain, context=context)
- for category in category_proxy.browse(cr, uid, category_ids, context=context):
- category_name = 'category_%d' % (category.id,)
- fields[category_name] = {
- 'type' : 'boolean',
- 'string' : category.name,
- 'name' : category_name,
- 'help' : category.description,
- }
-
- module_proxy = self.pool.get('ir.module.module')
- module_ids = module_proxy.search(cr, uid, [], context=context)
- for module in module_proxy.browse(cr, uid, module_ids, context=context):
- module_name = 'module_%d' % (module.id,)
- module_is_installed = module.state == 'installed'
-
- fields[module_name] = {
- 'type' : 'boolean',
- 'string' : module.shortdesc,
- 'name' : module_name,
- 'help' : module.description,
- }
-
- return fields
-
- def default_get(self, cr, uid, fields=None, context=None):
- if context is None:
- context = {}
- if fields is None:
- fields = {}
-
- result = {}
-
- if 'dont_compute_virtual_attributes' not in context:
- module_proxy = self.pool.get('ir.module.module')
- module_ids = module_proxy.search(cr, uid, [], context=context)
- for module in module_proxy.browse(cr, uid, module_ids, context=context):
- result['module_%d' % (module.id,)] = module.state == 'installed'
-
- cat_proxy = self.pool.get('ir.module.category')
- cat_ids = cat_proxy.search(cr, uid, [], context=context)
- for cat in cat_proxy.browse(cr, uid, cat_ids, context=context):
- m = DEFAULT_MODULES.get(cat.name,[])
- r = module_proxy.search(cr, uid, [('state','=','installed'),('name','in',m)])
-
- result['category_%d' % (cat.id,)] = bool(r) and (len(r) == len(m))
-
- return result
-
- def fields_view_get(self, cr, uid, view_id=None, view_type='from', context=None, toolbar=False, submenu=False):
- def in_extended_view_group(cr, uid, context=None):
- try:
- model, group_id = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'base', 'group_extended')
- except ValueError:
- return False
- return group_id in self.pool.get('res.users').read(cr, uid, uid, ['groups_id'], context=context)['groups_id']
-
- result = super(base_setup_installer, self).fields_view_get(cr, uid, view_id, view_type, context, toolbar, submenu)
-
- module_category_proxy = self.pool.get('ir.module.category')
- domain = [('parent_id', '=', False),
- ('name', '!=', 'Uncategorized'),
- ('visible', '=', True)]
- module_category_ids = module_category_proxy.search(cr, uid, domain, context=context, order='sequence asc')
-
- arch = ['' % _('Automatic Base Setup')]
- arch.append(' ' % _('Install Applications'))
- module_proxy = self.pool.get('ir.module.module')
-
- extended_view = in_extended_view_group(cr, uid, context=context)
-
- for module_category in module_category_proxy.browse(cr, uid, module_category_ids, context=context):
- domain = [('category_id', '=', module_category.id)]
- if not extended_view:
- domain.append(('complexity', '!=', 'expert'))
-
- modules = module_proxy.browse(cr, uid, module_proxy.search(cr, uid, domain, context=context), context=context)
- if not modules:
- continue
-
- m = DEFAULT_MODULES.get(module_category.name, [])
- r = module_proxy.search(cr, uid, [('state', '=', 'installed'),('name', 'in', m)], context=context)
- readonly = bool(r)
-
- attributes = {
- 'name' : 'category_%d' % (module_category.id,),
- 'on_change' : 'on_change_%s_%d(category_%d)' % ('category', module_category.id, module_category.id,),
- }
- if readonly:
- attributes['modifiers'] = simplejson.dumps({'readonly' : True})
-
- arch.append(""" """ % (" ".join(["%s='%s'" % (key, value,)
- for key, value in attributes.iteritems()]),))
-
- # Compute the modules to show
- for module_category in module_category_proxy.browse(cr, uid, module_category_ids, context=context):
- domain = [('category_id', '=', module_category.id)]
-
- if not extended_view:
- domain.append(('complexity', '!=', 'expert'))
-
- default_modules = DEFAULT_MODULES.get(module_category.name, False)
- if default_modules:
- domain.append(('name', 'not in', default_modules))
-
- modules = module_proxy.browse(cr, uid, module_proxy.search(cr, uid, domain, context=context), context=context)
-
- if not modules:
- continue
-
- modifiers = {
- 'invisible' : [('category_%d' % (module_category.id), '=', False)],
- }
- module_modifiers = dict(modifiers)
-
- arch.append(""" """ % (
- cgi.escape(module_category.name),
- simplejson.dumps(modifiers))
- )
-
- for module in modules:
- #module_modifiers['readonly'] = module.state == 'installed'
-
- arch.append(""" """ % (
- module.id,
- simplejson.dumps(module_modifiers))
- )
-
- arch.append(
- ' '
- ''
- ' '
- ' '
- ' '
- )
-
- arch.append(' ')
-
- result['arch'] = ''.join(arch)
- return result
-
- def __getattr__(self, name):
- if name.startswith('on_change_category_'):
- def proxy(cr, uid, ids, value, context=None):
- item = 'category_%s' % name[len('on_change_category_'):]
- return self._on_change_selection(cr, uid, ids, item, value, context=context)
- return proxy
- return getattr(super(base_setup_installer, self), name)
-
- def _on_change_selection(self, cr, uid, ids, item, value, context=None):
- if not isinstance(item, basestring) or not value:
- return {}
-
- if item.startswith('category_') or item.startswith('module_'):
- object_name, identifier = item.split('_')
- else:
- return {}
-
- values = {
- }
-
- #if object_name == 'category':
- # module_ids = self.pool.get('ir.module.module').search(cr, uid, [('category_id', '=', int(identifier))], context=context)
- # for module_id in module_ids:
- # values['module_%d' % module_id] = 1
-
- return {'value': values}
-
- def create(self, cr, uid, values, context=None):
- to_install = {'categories' : [], 'modules' : []}
-
- for key, value in values.iteritems():
- if value == 1 and (key.startswith('module_') or key.startswith('category_')):
- kind, identifier = key.split('_')
- if kind == 'category':
- to_install['categories'].append(long(identifier))
- if kind == 'module':
- to_install['modules'].append(long(identifier))
-
- values = {
- 'selection' : simplejson.dumps(to_install),
- }
- context.update(dont_compute_virtual_attributes=True)
- return super(base_setup_installer, self).create(cr, uid, values, context=context)
-
- def apply_cb(self, cr, uid, ids, context=None):
- category_proxy = self.pool.get('ir.module.category')
- for installer in self.browse(cr, uid, ids, context=context):
- to_install = simplejson.loads(installer.selection)
-
- proxy = self.pool.get('ir.module.module')
-
- module_ids = proxy.search(cr, uid, [('id', 'in', to_install['modules'])], context=context)
- modules = set(record['name']
- for record in proxy.read(cr, uid, module_ids, ['name'], context=context))
-
- category_ids = category_proxy.search(cr, uid, [('id', 'in', to_install['categories'])], context=context)
- selected_categories = set(record['name']
- for record in category_proxy.read(cr, uid, category_ids, ['name'], context=context))
-
- # FIXME: Use a workaround, but can do better
- for category_name, default_modules in DEFAULT_MODULES.iteritems():
- if category_name in selected_categories:
- modules.update(default_modules)
-
- # Special Cases:
- # * project_mrp: the dependencies are sale, project, procurement, mrp_jit
- if 'sale' in modules and 'project' in modules:
- modules.add('project_mrp')
-
- need_update = False
- module_ids = proxy.search(cr, uid, [('name', 'in', list(modules))], context=context)
- if module_ids:
- proxy.state_update(cr, uid, module_ids, 'to install', ['uninstalled'], context=context)
- need_update = True
-
- category_id = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'base', 'module_category_hidden_link')
- while True and category_id:
- cr.execute("select id, name from ir_module_module m where category_id = %s \
- and (select count(d.id) from ir_module_module_dependency d \
- where d.module_id = m.id) = (select count(d.id) from \
- ir_module_module_dependency d inner join ir_module_module m2 on d.name = m2.name \
- where d.module_id=m.id and m2.state in %s ) and state = %s",
- (category_id[1], ('installed', 'to install', 'to upgrade', ), 'uninstalled',))
- inner_modules = [name for _, name in cr.fetchall()]
-
- module_ids = proxy.search(cr, uid, [('name', 'in', inner_modules)], context=context)
- if not module_ids:
- break
-
- modules.update(inner_modules)
-
- proxy.state_update(cr, uid, module_ids, 'to install', ['uninstalled'], context=context)
- need_update = True
-
-
- domain = [('name', 'in', list(modules)),
- ('state', '=', 'installed')]
- for module in proxy.browse(cr, uid, proxy.search(cr, uid, domain, context=context), context):
- cr.execute("update ir_actions_todo set state='open' \
- from ir_model_data as data where data.res_id = ir_actions_todo.id \
- and ir_actions_todo.type='special'\
- and data.model = 'ir.actions.todo' and data.module=%s", (module.name, ))
-
- if need_update:
- cr.commit()
- self.pool = pooler.restart_pool(cr.dbname, update_module=True)[1]
-
- return self.pool.get('res.config').next(cr, uid, [], context=context)
-
#Migrate data from another application Conf wiz
class migrade_application_installer_modules(osv.osv_memory):
diff --git a/addons/base_setup/base_setup_views.xml b/addons/base_setup/base_setup_views.xml
index 35d0c647892..9450057f53f 100644
--- a/addons/base_setup/base_setup_views.xml
+++ b/addons/base_setup/base_setup_views.xml
@@ -1,36 +1,6 @@
-
- Install Applications
- base.setup.installer
- form
- form
- new
-
-
-
-
-
-
- 2
-
-
-
- Start Configuration
-
- code
-
-
-
-
-
- Add More Features
- ir.ui.menu
-
-
-
-
Create or Import Customers
@@ -162,6 +132,7 @@
form
form
{'res_id': user.company_id.id}
+ Fill in your company data (address, logo, bank accounts) so that it's printed on your reports. You can click on the button 'Preview Header' in order to check the header/footer of PDF documents.
diff --git a/addons/base_setup/security/ir.model.access.csv b/addons/base_setup/security/ir.model.access.csv
index 97dd8b917b8..4a08a4aa60d 100644
--- a/addons/base_setup/security/ir.model.access.csv
+++ b/addons/base_setup/security/ir.model.access.csv
@@ -1 +1 @@
-id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
+id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
diff --git a/addons/base_synchro/__openerp__.py b/addons/base_synchro/__openerp__.py
index fba793e0473..a9fd08bccf6 100644
--- a/addons/base_synchro/__openerp__.py
+++ b/addons/base_synchro/__openerp__.py
@@ -20,10 +20,10 @@
##############################################################################
{
- "name":"Server Object Synchronization",
+ "name":"Multi-DB Synchronization",
"version":"0.1",
"author":"OpenERP SA",
- "category":"Hidden",
+ "category":"Tools",
"description": """
Synchronization with all objects.
=================================
diff --git a/addons/base_synchro/security/ir.model.access.csv b/addons/base_synchro/security/ir.model.access.csv
index fa0f00e8ccd..bf69c931523 100644
--- a/addons/base_synchro/security/ir.model.access.csv
+++ b/addons/base_synchro/security/ir.model.access.csv
@@ -1,5 +1,5 @@
-"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
-"base_synchro_server","base.synchro.server","model_base_synchro_server","base.group_system",1,1,1,1
-" base_synchro_obj"," base.synchro.obj","model_base_synchro_obj","base.group_system",1,1,1,1
-"base_synchro_obj_avoid","base.synchro.obj.avoid","model_base_synchro_obj_avoid","base.group_system",1,1,1,1
-"base_synchro_obj_line","base.synchro.obj.line","model_base_synchro_obj_line","base.group_system",1,1,1,1
+id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
+base_synchro_server,base.synchro.server,model_base_synchro_server,base.group_system,1,1,1,1
+ base_synchro_obj, base.synchro.obj,model_base_synchro_obj,base.group_system,1,1,1,1
+base_synchro_obj_avoid,base.synchro.obj.avoid,model_base_synchro_obj_avoid,base.group_system,1,1,1,1
+base_synchro_obj_line,base.synchro.obj.line,model_base_synchro_obj_line,base.group_system,1,1,1,1
diff --git a/addons/base_tools/__openerp__.py b/addons/base_tools/__openerp__.py
index 6fff6c3c207..d2cd2aad742 100644
--- a/addons/base_tools/__openerp__.py
+++ b/addons/base_tools/__openerp__.py
@@ -4,7 +4,7 @@
"author": "OpenERP SA",
"version": "1.0",
"depends": ["base"],
- "category" : "Hidden",
+ "category" : "Hidden/Dependency",
'complexity': "easy",
'description': """
Common base for tools modules.
diff --git a/addons/base_tools/i18n/pt.po b/addons/base_tools/i18n/pt.po
index 69b6b9c4459..badfa6acc16 100644
--- a/addons/base_tools/i18n/pt.po
+++ b/addons/base_tools/i18n/pt.po
@@ -8,14 +8,14 @@ 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-05-17 12:07+0000\n"
-"Last-Translator: FULL NAME \n"
+"PO-Revision-Date: 2011-12-10 12:08+0000\n"
+"Last-Translator: Paulino Ascenção \n"
"Language-Team: Portuguese \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-11-05 05:56+0000\n"
-"X-Generator: Launchpad (build 14231)\n"
+"X-Launchpad-Export-Date: 2011-12-11 05:36+0000\n"
+"X-Generator: Launchpad (build 14450)\n"
#. module: base_tools
#: model:ir.module.module,shortdesc:base_tools.module_meta_information
diff --git a/addons/base_vat/__init__.py b/addons/base_vat/__init__.py
index 43dbd0c1418..1d7c143b7dc 100644
--- a/addons/base_vat/__init__.py
+++ b/addons/base_vat/__init__.py
@@ -19,6 +19,7 @@
#
##############################################################################
+import res_company
import base_vat
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
diff --git a/addons/base_vat/__openerp__.py b/addons/base_vat/__openerp__.py
index 5f7c1d2d86d..f7d9c572447 100644
--- a/addons/base_vat/__openerp__.py
+++ b/addons/base_vat/__openerp__.py
@@ -22,7 +22,7 @@
{
'name': 'VAT Number Validation',
'version': '1.0',
- 'category': 'Hidden',
+ "category": 'Hidden/Dependency',
'complexity': "easy",
'description': """
VAT validation for Partners' VAT numbers
@@ -33,6 +33,21 @@ be validated for all supported countries. The country is inferred from the
2-letter country code that prefixes the VAT number, e.g. ``BE0477472701``
will be validated using the Belgian rules.
+There are two different levels of VAT number validation:
+
+ * By default, a simple off-line check is performed using the known validation
+ rules for the country, usually a simple check digit. This is quick and
+ always available, but allows numbers that are perhaps not truly allocated,
+ or not valid anymore.
+ * When the "VAT VIES Check" option is enabled (in the configuration of the user's
+ Company), VAT numbers will be instead submitted to the online EU VIES
+ database, which will truly verify that the number is valid and currently
+ allocated to a EU company. This is a little bit slower than the simple
+ off-line check, requires an Internet connection, and may not be available
+ all the time. If the service is not available or does not support the
+ requested country (e.g. for non-EU countries), a simple check will be performed
+ instead.
+
Supported countries currently include EU countries, and a few non-EU countries
such as Chile, Colombia, Mexico, Norway or Russia. For unsupported countries,
only the country code will be validated.
diff --git a/addons/base_vat/base_vat.py b/addons/base_vat/base_vat.py
index ba858d10e64..02471f67442 100644
--- a/addons/base_vat/base_vat.py
+++ b/addons/base_vat/base_vat.py
@@ -61,27 +61,48 @@ class res_partner(osv.osv):
vat_country, vat_number = vat[:2].lower(), vat[2:].replace(' ', '')
return vat_country, vat_number
- def check_vat(self, cr, uid, ids, context=None):
+ def simple_vat_check(self, cr, uid, country_code, vat_number, context=None):
'''
Check the VAT number depending of the country.
http://sima-pc.com/nif.php
'''
- country_obj = self.pool.get('res.country')
+ check_func_name = 'check_vat_' + country_code
+ check_func = getattr(self, check_func_name, None) or \
+ getattr(vatnumber, check_func_name, None)
+ if not check_func:
+ # No VAT validation available, default to check that the country code exists
+ res_country = self.pool.get('res.country')
+ return bool(res_country.search(cr, uid, [('code', '=ilike', country_code)], context=context))
+ return check_func(vat_number)
+
+ def vies_vat_check(self, cr, uid, country_code, vat_number, context=None):
+ try:
+ # Validate against VAT Information Exchange System (VIES)
+ # see also http://ec.europa.eu/taxation_customs/vies/
+ return vatnumber.check_vies(country_code.upper()+vat_number)
+ except Exception:
+ # see http://ec.europa.eu/taxation_customs/vies/checkVatService.wsdl
+ # Fault code may contain INVALID_INPUT, SERVICE_UNAVAILABLE, MS_UNAVAILABLE,
+ # TIMEOUT or SERVER_BUSY. There is no way we can validate the input
+ # with VIES if any of these arise, including the first one (it means invalid
+ # country code or empty VAT number), so we fall back to the simple check.
+ return self.simple_vat_check(cr, uid, country_code, vat_number, context=context)
+
+ def check_vat(self, cr, uid, ids, context=None):
+ user_company = self.pool.get('res.users').browse(cr, uid, uid).company_id
+ if user_company.vat_check_vies:
+ # force full VIES online check
+ check_func = self.vies_vat_check
+ else:
+ # quick and partial off-line checksum validation
+ check_func = self.simple_vat_check
+
for partner in self.browse(cr, uid, ids, context=context):
if not partner.vat:
continue
vat_country, vat_number = self._split_vat(partner.vat)
- check_func_name = 'check_vat_' + vat_country
- check_func = getattr(self, check_func_name, None) or \
- getattr(vatnumber, check_func_name, None)
- if not check_func:
- # No VAT validation available, default to check that the country code
- # exists.
- if country_obj.search(cr, uid, [('code', 'ilike', vat_country)], context=context):
- continue
- # Country code not found, considered invalid
+ if not check_func(cr, uid, vat_country, vat_number, context=context):
return False
- return check_func(vat_number)
return True
def vat_change(self, cr, uid, ids, value, context=None):
diff --git a/addons/base_vat/base_vat_view.xml b/addons/base_vat/base_vat_view.xml
index 69a1870ea72..fa53906d667 100644
--- a/addons/base_vat/base_vat_view.xml
+++ b/addons/base_vat/base_vat_view.xml
@@ -7,12 +7,23 @@
res.partner
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+ res.company.form.vat.inherit
+ res.company
+
+
+
+
+
diff --git a/addons/base_vat/res_company.py b/addons/base_vat/res_company.py
new file mode 100644
index 00000000000..e7641db9c68
--- /dev/null
+++ b/addons/base_vat/res_company.py
@@ -0,0 +1,32 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Business Applications
+# Copyright (c) 2011 OpenERP S.A.
+#
+# 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 osv import osv, fields
+
+class res_company_vat (osv.osv):
+ _inherit = 'res.company'
+ _columns = {
+ 'vat_check_vies': fields.boolean('VIES VAT Check',
+ help="If checked, Partners VAT numbers will be fully validated against EU's VIES service "
+ "rather than via a simple format validation (checksum)."),
+ }
+
+
\ No newline at end of file
diff --git a/addons/board/__openerp__.py b/addons/board/__openerp__.py
index 6cb0e3ecce7..e0f554bb1ec 100644
--- a/addons/board/__openerp__.py
+++ b/addons/board/__openerp__.py
@@ -20,9 +20,9 @@
##############################################################################
{
- 'name': 'Dashboard Creator',
+ 'name': 'Dashboards',
'version': '1.0',
- 'category': 'Hidden',
+ 'category': 'Hidden/Dependency',
'complexity': "normal",
'description': """
Lets the user create a custom dashboard.
diff --git a/addons/board/board_data_admin.xml b/addons/board/board_data_admin.xml
index c43b2cd9602..c5a51795425 100644
--- a/addons/board/board_data_admin.xml
+++ b/addons/board/board_data_admin.xml
@@ -139,7 +139,6 @@
-
diff --git a/addons/board/security/ir.model.access.csv b/addons/board/security/ir.model.access.csv
index 34bc2169016..2275cc7d47d 100644
--- a/addons/board/security/ir.model.access.csv
+++ b/addons/board/security/ir.model.access.csv
@@ -1,6 +1,6 @@
-"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
-"access_board_board all","board.board","model_board_board",,1,0,0,0
-"access_board_board_line all","board.board.line","model_board_board_line",,1,0,0,0
-"access_board_board system","board.board system","model_board_board",base.group_system,1,1,1,1
-"access_board_board_line system","board.board.line system","model_board_board_line",base.group_system,1,1,1,1
-"access_res_log_report all","res.log.report","model_res_log_report",,1,0,0,0
+id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
+access_board_board all,board.board,model_board_board,,1,0,0,0
+access_board_board_line all,board.board.line,model_board_board_line,,1,0,0,0
+access_board_board system,board.board system,model_board_board,base.group_system,1,1,1,1
+access_board_board_line system,board.board.line system,model_board_board_line,base.group_system,1,1,1,1
+access_res_log_report all,res.log.report,model_res_log_report,,1,0,0,0
diff --git a/addons/caldav/__openerp__.py b/addons/caldav/__openerp__.py
index 53bee3d0e94..ef691e39564 100644
--- a/addons/caldav/__openerp__.py
+++ b/addons/caldav/__openerp__.py
@@ -49,7 +49,7 @@ To access OpenERP Calendar using WebCal to remote site use the URL like:
DATABASE_NAME: Name of database on which OpenERP Calendar is created
CALENDAR_NAME: Name of calendar to access
""",
- 'category': 'Hidden',
+ 'category': 'Hidden/Dependency',
"author" : "OpenERP SA",
'website': 'http://www.openerp.com',
"init_xml" : ["caldav_data.xml"],
diff --git a/addons/caldav/caldav_view.xml b/addons/caldav/caldav_view.xml
index d8025ef578e..72e88a6c7b4 100644
--- a/addons/caldav/caldav_view.xml
+++ b/addons/caldav/caldav_view.xml
@@ -45,6 +45,7 @@
form
tree,form
[('calendar_collection','=',True)]
+ {'default_calendar_collection': True}
diff --git a/addons/caldav/security/ir.model.access.csv b/addons/caldav/security/ir.model.access.csv
index ce3f3c90e32..34fbdcc0b02 100644
--- a/addons/caldav/security/ir.model.access.csv
+++ b/addons/caldav/security/ir.model.access.csv
@@ -1,6 +1,6 @@
-"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
-"access_basic_calendar_lines","basic.calendar.lines","model_basic_calendar_lines","base.group_user",1,1,1,1
-"access_basic_calendar_attributes","basic.calendar.attributes","model_basic_calendar_attributes","base.group_user",1,1,1,1
-"access_basic_calendar_fields","basic.calendar.fields","model_basic_calendar_fields","base.group_user",1,1,1,1
-"access_basic_calendar","basic.calendar","model_basic_calendar","base.group_user",1,1,1,1
-"access_basic_calendar_alias","basic.calendar.alias","model_basic_calendar_alias","base.group_user",1,1,1,1
+id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
+access_basic_calendar_lines,basic.calendar.lines,model_basic_calendar_lines,base.group_user,1,1,1,1
+access_basic_calendar_attributes,basic.calendar.attributes,model_basic_calendar_attributes,base.group_user,1,1,1,1
+access_basic_calendar_fields,basic.calendar.fields,model_basic_calendar_fields,base.group_user,1,1,1,1
+access_basic_calendar,basic.calendar,model_basic_calendar,base.group_user,1,1,1,1
+access_basic_calendar_alias,basic.calendar.alias,model_basic_calendar_alias,base.group_user,1,1,1,1
diff --git a/addons/claim_from_delivery/__openerp__.py b/addons/claim_from_delivery/__openerp__.py
index c3eec37a229..023b5fd5700 100644
--- a/addons/claim_from_delivery/__openerp__.py
+++ b/addons/claim_from_delivery/__openerp__.py
@@ -18,10 +18,10 @@
#
##############################################################################
{
- "name" : "Claim from Delivery",
+ "name" : "Claim on Deliveries",
"version" : "1.0",
"author" : "OpenERP SA",
- "category" : "Hidden",
+ "category" : "Warehouse Management",
"depends" : ["base", "crm_claim", "stock"],
"init_xml" : [],
"demo_xml" : [],
diff --git a/addons/crm/__openerp__.py b/addons/crm/__openerp__.py
index 54dfc335a2b..83b0354912a 100644
--- a/addons/crm/__openerp__.py
+++ b/addons/crm/__openerp__.py
@@ -21,7 +21,7 @@
{
- 'name': 'Customer & Supplier Relationship Management',
+ 'name': 'CRM',
'version': '1.0',
'category': 'Customer Relationship Management',
'complexity': "easy",
@@ -61,7 +61,8 @@ Creates a dashboard for CRM that includes:
'mail',
'base_calendar',
'resource',
- 'board'
+ 'board',
+ 'fetchmail'
],
'init_xml': [
'crm_data.xml',
@@ -118,20 +119,17 @@ Creates a dashboard for CRM that includes:
'crm_phonecall_demo.xml',
],
'test': [
- 'test/test_crm_lead.yml',
- 'test/test_crm_meeting.yml',
- 'test/test_crm_opportunity.yml',
- 'test/test_crm_phonecall.yml',
- 'test/test_crm_recurrent_meeting.yml',
- 'test/test_crm_stage_changes.yml',
- 'test/test_crm_recurrent_meeting_case2.yml',
- 'test/test_crm_lead_case2.yml',
- 'test/test_crm_opportunity_case2.yml',
- 'test/test_crm_phonecall_case2.yml',
- 'test/test_crm_partner2opportunity.yml',
- 'test/test_crm_segmentation.yml',
+ 'test/process/communication_with_customer.yml',
+ 'test/process/lead2opportunity2win.yml',
+ 'test/process/merge_opportunity.yml',
+ 'test/process/cancel_lead.yml',
+ 'test/process/segmentation.yml',
+ 'test/ui/crm_demo.yml',
+ 'test/ui/duplicate_lead.yml',
+ 'test/ui/delete_lead.yml'
],
'installable': True,
+ 'application': True,
'active': False,
'certificate': '0079056041421',
'images': ['images/sale_crm_crm_dashboard.png', 'images/crm_dashboard.jpeg','images/leads.jpeg','images/meetings.jpeg','images/opportunities.jpeg','images/outbound_calls.jpeg','images/stages.jpeg'],
diff --git a/addons/crm/board_crm_view.xml b/addons/crm/board_crm_view.xml
index 12d24d452cc..5d64bf20093 100644
--- a/addons/crm/board_crm_view.xml
+++ b/addons/crm/board_crm_view.xml
@@ -62,10 +62,11 @@
My Open Opportunities
- crm.lead
- form
- tree,form
- [('user_id','=',uid),('state','=','open'), ('type', '=', 'opportunity')]
+ crm.lead
+ form
+ tree,form
+ [('user_id','=',uid),('state','=','open'), ('type', '=', 'opportunity')]
+ {'default_user_id': uid, 'default_type': 'opportunity'}
@@ -82,53 +83,30 @@
-
- My Meetings
- crm.meeting
- form
- tree,form
-
- [('user_id','=',uid),('state','not in',('cancel','done'))]
-
-
Planned Revenue By Stage
crm.lead.report
form
graph,tree,form
- ['&', '&', ('user_id','=',uid), ('type', '=', 'opportunity'), '!' , '&', ('state', '=', 'done'), ('date_closed','>',(datetime.date.today()-datetime.timedelta(days=30)).strftime('%Y-%m-%d'))]
+ [('user_id','=',uid), ('type', '=', 'opportunity'), ('state','in',('draft','open','done','pending')), '!', '&', ('state', '=', 'done'), ('date_closed','>=',datetime.date.today().strftime('%Y-%m-01'))]
{'search_default_Stage':1}
-
- My Win/Lost Ratio for The Last Year
- crm.lead.report
- form
- graph,tree,form
-
- ['&', ('user_id', '=', uid),'&', ('state', '=', 'done') , '&', ('create_date','>',(datetime.date.today()-datetime.timedelta(days=365)).strftime('%Y-%m-%d')), ('type', '=', 'opportunity')]
-
-
Sales Dashboard Form
board.board
form
-
+
-
-
+
-
diff --git a/addons/crm/crm.py b/addons/crm/crm.py
index 03cdb31832d..bee1e48ada2 100644
--- a/addons/crm/crm.py
+++ b/addons/crm/crm.py
@@ -468,10 +468,12 @@ class crm_case(crm_base):
self._action(cr, uid, cases, state)
return True
+ #DEAD Code
def remind_partner(self, cr, uid, ids, context=None, attach=False):
return self.remind_user(cr, uid, ids, context, attach,
destination=False)
+ #DEAD Code
def remind_user(self, cr, uid, ids, context=None, attach=False, destination=True):
mail_message = self.pool.get('mail.message')
for case in self.browse(cr, uid, ids, context=context):
diff --git a/addons/crm/crm_demo.xml b/addons/crm/crm_demo.xml
index 16ae0e73129..f345d86d030 100644
--- a/addons/crm/crm_demo.xml
+++ b/addons/crm/crm_demo.xml
@@ -1,6 +1,6 @@
-
+
@@ -12,5 +12,17 @@
+
+ Sales Marketing Department
+ Sales Marketing
+
+
+
+
+ OpenERP partners
+ True
+
+
+
diff --git a/addons/crm/crm_lead.py b/addons/crm/crm_lead.py
index e74ce00d728..216a898bc88 100644
--- a/addons/crm/crm_lead.py
+++ b/addons/crm/crm_lead.py
@@ -27,7 +27,7 @@ from tools.translate import _
from crm import crm_case
import binascii
import tools
-
+from mail.mail_message import to_email
CRM_LEAD_PENDING_STATES = (
crm.AVAILABLE_STATES[2][0], # Cancelled
@@ -206,6 +206,7 @@ class crm_lead(crm_case, osv.osv):
'stage_id': fields.many2one('crm.case.stage', 'Stage', domain="[('section_ids', '=', section_id)]"),
'color': fields.integer('Color Index'),
'partner_address_name': fields.related('partner_address_id', 'name', type='char', string='Partner Contact Name', readonly=True),
+ 'partner_address_email': fields.related('partner_address_id', 'email', type='char', string='Partner Contact Email', readonly=True),
'company_currency': fields.related('company_id', 'currency_id', 'symbol', type='char', string='Company Currency', readonly=True),
'user_email': fields.related('user_id', 'user_email', type='char', string='User Email', readonly=True),
'user_login': fields.related('user_id', 'login', type='char', string='User Login', readonly=True),
@@ -351,36 +352,380 @@ class crm_lead(crm_case, osv.osv):
"""
return self.set_priority(cr, uid, ids, '3')
- def convert_opportunity(self, cr, uid, ids, context=None):
- """ Precomputation for converting lead to opportunity
+
+ def _merge_data(self, cr, uid, ids, oldest, fields, context=None):
+ # prepare opportunity data into dictionary for merging
+ opportunities = self.browse(cr, uid, ids, context=context)
+ def _get_first_not_null(attr):
+ if hasattr(oldest, attr):
+ return getattr(oldest, attr)
+ for opportunity in opportunities:
+ if hasattr(opportunity, attr):
+ return getattr(opportunity, attr)
+ return False
+
+ def _get_first_not_null_id(attr):
+ res = _get_first_not_null(attr)
+ return res and res.id or False
+
+ def _concat_all(attr):
+ return ', '.join(filter(lambda x: x, [getattr(opportunity, attr) or '' for opportunity in opportunities if hasattr(opportunity, attr)]))
+
+ data = {}
+ for field_name in fields:
+ field_info = self._all_columns.get(field_name)
+ if field_info is None:
+ continue
+ field = field_info.column
+ if field._type in ('many2many', 'one2many'):
+ continue
+ elif field._type == 'many2one':
+ data[field_name] = _get_first_not_null_id(field_name) # !!
+ elif field._type == 'text':
+ data[field_name] = _concat_all(field_name) #not lost
+ else:
+ data[field_name] = _get_first_not_null(field_name) #not lost
+ return data
+
+ def _merge_find_oldest(self, cr, uid, ids, context=None):
+ if context is None:
+ context = {}
+ #TOCHECK: where pass 'convert' in context ?
+ if context.get('convert'):
+ ids = list(set(ids) - set(context.get('lead_ids', False)) )
+
+ #search opportunities order by create date
+ opportunity_ids = self.search(cr, uid, [('id', 'in', ids)], order='create_date' , context=context)
+ oldest_id = opportunity_ids[0]
+ return self.browse(cr, uid, oldest_id, context=context)
+
+ def _mail_body_text(self, cr, uid, lead, fields, title=False, context=None):
+ body = []
+ if title:
+ body.append("%s\n" % (title))
+ for field_name in fields:
+ field_info = self._all_columns.get(field_name)
+ if field_info is None:
+ continue
+ field = field_info.column
+ value = None
+
+ if field._type == 'selection':
+ if hasattr(field.selection, '__call__'):
+ key = field.selection(self, cr, uid, context=context)
+ else:
+ key = field.selection
+ value = dict(key).get(lead[field_name], lead[field_name])
+ elif field._type == 'many2one':
+ if lead[field_name]:
+ value = lead[field_name].name_get()[0][1]
+ else:
+ value = lead[field_name]
+
+ body.append("%s: %s" % (field.string, value or ''))
+ return "\n".join(body + ['---'])
+
+ def _merge_notification(self, cr, uid, opportunity_id, opportunities, context=None):
+ #TOFIX: mail template should be used instead of fix body, subject text
+ details = []
+ merge_message = _('Merged opportunities')
+ subject = [merge_message]
+ fields = ['name', 'partner_id', 'stage_id', 'section_id', 'user_id', 'categ_id', 'channel_id', 'company_id', 'contact_name',
+ 'email_from', 'phone', 'fax', 'mobile', 'state_id', 'description', 'probability', 'planned_revenue',
+ 'country_id', 'city', 'street', 'street2', 'zip']
+ for opportunity in opportunities:
+ subject.append(opportunity.name)
+ title = "%s : %s" % (merge_message, opportunity.name)
+ details.append(self._mail_body_text(cr, uid, opportunity, fields, title=title, context=context))
+
+ subject = subject[0] + ", ".join(subject[1:])
+ details = "\n\n".join(details)
+ return self.message_append(cr, uid, [opportunity_id], subject, body_text=details, context=context)
+
+ def _merge_opportunity_history(self, cr, uid, opportunity_id, opportunities, context=None):
+ message = self.pool.get('mail.message')
+ for opportunity in opportunities:
+ for history in opportunity.message_ids:
+ message.write(cr, uid, history.id, {
+ 'res_id': opportunity_id,
+ 'subject' : _("From %s : %s") % (opportunity.name, history.subject)
+ }, context=context)
+
+ return True
+
+ def _merge_opportunity_attachments(self, cr, uid, opportunity_id, opportunities, context=None):
+ attachment = self.pool.get('ir.attachment')
+
+ # return attachments of opportunity
+ def _get_attachments(opportunity_id):
+ attachment_ids = attachment.search(cr, uid, [('res_model', '=', self._name), ('res_id', '=', opportunity_id)], context=context)
+ return attachment.browse(cr, uid, attachment_ids, context=context)
+
+ count = 1
+ first_attachments = _get_attachments(opportunity_id)
+ for opportunity in opportunities:
+ attachments = _get_attachments(opportunity.id)
+ for first in first_attachments:
+ for attachment in attachments:
+ if attachment.name == first.name:
+ values = dict(
+ name = "%s (%s)" % (attachment.name, count,),
+ res_id = opportunity_id,
+ )
+ attachment.write(values)
+ count+=1
+
+ return True
+
+ def merge_opportunity(self, cr, uid, ids, context=None):
+ """
+ To merge opportunities
+ :param ids: list of opportunities ids to merge
+ """
+ if context is None: context = {}
+
+ #TOCHECK: where pass lead_ids in context?
+ lead_ids = context and context.get('lead_ids', []) or []
+
+ if len(ids) <= 1:
+ raise osv.except_osv(_('Warning !'),_('Please select more than one opportunities.'))
+
+ ctx_opportunities = self.browse(cr, uid, lead_ids, context=context)
+ opportunities = self.browse(cr, uid, ids, context=context)
+ opportunities_list = list(set(opportunities) - set(ctx_opportunities))
+ oldest = self._merge_find_oldest(cr, uid, ids, context=context)
+ if ctx_opportunities :
+ first_opportunity = ctx_opportunities[0]
+ tail_opportunities = opportunities_list
+ else:
+ first_opportunity = opportunities_list[0]
+ tail_opportunities = opportunities_list[1:]
+
+ fields = ['partner_id', 'title', 'name', 'categ_id', 'channel_id', 'city', 'company_id', 'contact_name', 'country_id',
+ 'partner_address_id', 'type_id', 'user_id', 'section_id', 'state_id', 'description', 'email', 'fax', 'mobile',
+ 'partner_name', 'phone', 'probability', 'planned_revenue', 'street', 'street2', 'zip', 'create_date', 'date_action_last',
+ 'date_action_next', 'email_from', 'email_cc', 'partner_name']
+
+ data = self._merge_data(cr, uid, ids, oldest, fields, context=context)
+
+ # merge data into first opportunity
+ self.write(cr, uid, [first_opportunity.id], data, context=context)
+
+ #copy message and attachements into the first opportunity
+ self._merge_opportunity_history(cr, uid, first_opportunity.id, tail_opportunities, context=context)
+ self._merge_opportunity_attachments(cr, uid, first_opportunity.id, tail_opportunities, context=context)
+
+ #Notification about loss of information
+ self._merge_notification(cr, uid, first_opportunity, opportunities, context=context)
+ #delete tail opportunities
+ self.unlink(cr, uid, [x.id for x in tail_opportunities], context=context)
+
+ #open first opportunity
+ self.case_open(cr, uid, [first_opportunity.id])
+ return first_opportunity.id
+
+ def _convert_opportunity_data(self, cr, uid, lead, customer, section_id=False, context=None):
+ crm_stage = self.pool.get('crm.case.stage')
+ contact_id = False
+ if customer:
+ contact_id = self.pool.get('res.partner').address_get(cr, uid, [customer.id])['default']
+ if not section_id:
+ section_id = lead.section_id and lead.section_id.id or False
+ if section_id:
+ stage_ids = crm_stage.search(cr, uid, [('sequence','>=',1), ('section_ids','=', section_id)])
+ else:
+ stage_ids = crm_stage.search(cr, uid, [('sequence','>=',1)])
+ stage_id = stage_ids and stage_ids[0] or False
+ return {
+ 'planned_revenue': lead.planned_revenue,
+ 'probability': lead.probability,
+ 'name': lead.name,
+ 'partner_id': customer and customer.id or False,
+ 'user_id': (lead.user_id and lead.user_id.id),
+ 'type': 'opportunity',
+ 'stage_id': stage_id or False,
+ 'date_action': time.strftime('%Y-%m-%d %H:%M:%S'),
+ 'partner_address_id': contact_id
+ }
+ def _convert_opportunity_notification(self, cr, uid, lead, context=None):
+ success_message = _("Lead '%s' has been converted to an opportunity.") % lead.name
+ self.message_append(cr, uid, [lead.id], success_message, body_text=success_message, context=context)
+ self.log(cr, uid, lead.id, success_message)
+ self._send_mail_to_salesman(cr, uid, lead, context=context)
+ return True
+
+ def convert_opportunity(self, cr, uid, ids, partner_id, user_ids=False, section_id=False, context=None):
+ partner = self.pool.get('res.partner')
+ mail_message = self.pool.get('mail.message')
+ customer = False
+ if partner_id:
+ customer = partner.browse(cr, uid, partner_id, context=context)
+ for lead in self.browse(cr, uid, ids, context=context):
+ if lead.state in ('done', 'cancel'):
+ continue
+ if user_ids or section_id:
+ self.allocate_salesman(cr, uid, [lead.id], user_ids, section_id, context=context)
+
+ vals = self._convert_opportunity_data(cr, uid, lead, customer, section_id, context=context)
+ self.write(cr, uid, [lead.id], vals, context=context)
+
+ self._convert_opportunity_notification(cr, uid, lead, context=context)
+ #TOCHECK: why need to change partner details in all messages of lead ?
+ if lead.partner_id:
+ msg_ids = [ x.id for x in lead.message_ids]
+ mail_message.write(cr, uid, msg_ids, {
+ 'partner_id': lead.partner_id.id
+ }, context=context)
+ return True
+
+ def _lead_create_partner(self, cr, uid, lead, context=None):
+ partner = self.pool.get('res.partner')
+ partner_id = partner.create(cr, uid, {
+ 'name': lead.partner_name or lead.contact_name or lead.name,
+ 'user_id': lead.user_id.id,
+ 'comment': lead.description,
+ 'section_id': lead.section_id.id or False,
+ 'address': []
+ })
+ return partner_id
+
+ def _lead_set_partner(self, cr, uid, lead, partner_id, context=None):
+ res = False
+ res_partner = self.pool.get('res.partner')
+ if partner_id:
+ res_partner.write(cr, uid, partner_id, {'section_id': lead.section_id.id or False})
+ contact_id = res_partner.address_get(cr, uid, [partner_id])['default']
+ res = lead.write({'partner_id' : partner_id, 'partner_address_id': contact_id}, context=context)
+
+ return res
+
+ def _lead_create_partner_address(self, cr, uid, lead, partner_id, context=None):
+ address = self.pool.get('res.partner.address')
+ return address.create(cr, uid, {
+ 'partner_id': partner_id,
+ 'name': lead.contact_name,
+ 'phone': lead.phone,
+ 'mobile': lead.mobile,
+ 'email': lead.email_from and to_email(lead.email_from)[0],
+ 'fax': lead.fax,
+ 'title': lead.title and lead.title.id or False,
+ 'function': lead.function,
+ 'street': lead.street,
+ 'street2': lead.street2,
+ 'zip': lead.zip,
+ 'city': lead.city,
+ 'country_id': lead.country_id and lead.country_id.id or False,
+ 'state_id': lead.state_id and lead.state_id.id or False,
+ })
+
+ def convert_partner(self, cr, uid, ids, action='create', partner_id=False, context=None):
+ """
+ This function convert partner based on action.
+ if action is 'create', create new partner with contact and assign lead to new partner_id.
+ otherwise assign lead to specified partner_id
"""
if context is None:
context = {}
- context.update({'active_ids': ids})
+ partner_ids = {}
+ for lead in self.browse(cr, uid, ids, context=context):
+ if action == 'create':
+ if not partner_id:
+ partner_id = self._lead_create_partner(cr, uid, lead, context=context)
+ self._lead_create_partner_address(cr, uid, lead, partner_id, context=context)
+ self._lead_set_partner(cr, uid, lead, partner_id, context=context)
+ partner_ids[lead.id] = partner_id
+ return partner_ids
- data_obj = self.pool.get('ir.model.data')
- value = {}
+ def _send_mail_to_salesman(self, cr, uid, lead, context=None):
+ """
+ Send mail to salesman with updated Lead details.
+ @ lead: browse record of 'crm.lead' object.
+ """
+ #TOFIX: mail template should be used here instead of fix subject, body text.
+ message = self.pool.get('mail.message')
+ email_to = lead.user_id and lead.user_id.user_email
+ if not email_to:
+ return False
+
+ email_from = lead.section_id and lead.section_id.user_id and lead.section_id.user_id.user_email or email_to
+ partner = lead.partner_id and lead.partner_id.name or lead.partner_name
+ subject = "lead %s converted into opportunity" % lead.name
+ body = "Info \n Id : %s \n Subject: %s \n Partner: %s \n Description : %s " % (lead.id, lead.name, lead.partner_id.name, lead.description)
+ return message.schedule_with_attach(cr, uid, email_from, [email_to], subject, body)
- for case in self.browse(cr, uid, ids, context=context):
- context.update({'active_id': case.id})
- data_id = data_obj._get_id(cr, uid, 'crm', 'view_crm_lead2opportunity_partner')
- view_id1 = False
- if data_id:
- view_id1 = data_obj.browse(cr, uid, data_id, context=context).res_id
- value = {
- 'name': _('Create Partner'),
- 'view_type': 'form',
- 'view_mode': 'form,tree',
- 'res_model': 'crm.lead2opportunity.partner',
- 'view_id': False,
- 'context': context,
- 'views': [(view_id1, 'form')],
- 'type': 'ir.actions.act_window',
- 'target': 'new',
- 'nodestroy': True
+ def allocate_salesman(self, cr, uid, ids, user_ids, team_id=False, context=None):
+ index = 0
+ for lead_id in ids:
+ value = {}
+ if team_id:
+ value['section_id'] = team_id
+ if index < len(user_ids):
+ value['user_id'] = user_ids[index]
+ index += 1
+ if value:
+ self.write(cr, uid, [lead_id], value, context=context)
+ return True
+
+ def schedule_phonecall(self, cr, uid, ids, schedule_time, call_summary, desc, phone, contact_name, user_id=False, section_id=False, categ_id=False, action='schedule', context=None):
+ """
+ action :('schedule','Schedule a call'), ('log','Log a call')
+ """
+ phonecall = self.pool.get('crm.phonecall')
+ model_data = self.pool.get('ir.model.data')
+ phonecall_dict = {}
+ if not categ_id:
+ res_id = model_data._get_id(cr, uid, 'crm', 'categ_phone2')
+ if res_id:
+ categ_id = model_data.browse(cr, uid, res_id, context=context).res_id
+ for lead in self.browse(cr, uid, ids, context=context):
+ if not section_id:
+ section_id = lead.section_id and lead.section_id.id or False
+ if not user_id:
+ user_id = lead.user_id and lead.user_id.id or False
+ vals = {
+ 'name' : call_summary,
+ 'opportunity_id' : lead.id,
+ 'user_id' : user_id or False,
+ 'categ_id' : categ_id or False,
+ 'description' : desc or '',
+ 'date' : schedule_time,
+ 'section_id' : section_id or False,
+ 'partner_id': lead.partner_id and lead.partner_id.id or False,
+ 'partner_address_id': lead.partner_address_id and lead.partner_address_id.id or False,
+ 'partner_phone' : phone or lead.phone or (lead.partner_address_id and lead.partner_address_id.phone or False),
+ 'partner_mobile' : lead.partner_address_id and lead.partner_address_id.mobile or False,
+ 'priority': lead.priority,
}
- return value
+
+ new_id = phonecall.create(cr, uid, vals, context=context)
+ phonecall.case_open(cr, uid, [new_id])
+ if action == 'log':
+ phonecall.case_close(cr, uid, [new_id])
+ phonecall_dict[lead.id] = new_id
+ return phonecall_dict
+
+
+ def redirect_opportunity_view(self, cr, uid, opportunity_id, context=None):
+ models_data = self.pool.get('ir.model.data')
+
+ # Get Opportunity views
+ form_view = models_data.get_object_reference(cr, uid, 'crm', 'crm_case_form_view_oppor')
+ tree_view = models_data.get_object_reference(cr, uid, 'crm', 'crm_case_tree_view_oppor')
+ return {
+ 'name': _('Opportunity'),
+ 'view_type': 'form',
+ 'view_mode': 'tree, form',
+ 'res_model': 'crm.lead',
+ 'domain': [('type', '=', 'opportunity')],
+ 'res_id': int(opportunity_id),
+ 'view_id': False,
+ 'views': [(form_view and form_view[1] or False, 'form'),
+ (tree_view and tree_view[1] or False, 'tree'),
+ (False, 'calendar'), (False, 'graph')],
+ 'type': 'ir.actions.act_window',
+ }
+
def message_new(self, cr, uid, msg, custom_values=None, context=None):
"""Automatically calls when new email message arrives"""
@@ -403,10 +748,11 @@ class crm_lead(crm_case, osv.osv):
self.write(cr, uid, [res_id], vals, context)
return res_id
- def message_update(self, cr, uid, ids, msg, vals={}, default_act='pending', context=None):
+ def message_update(self, cr, uid, ids, msg, vals=None, default_act='pending', context=None):
if isinstance(ids, (str, int, long)):
ids = [ids]
-
+ if vals == None:
+ vals = {}
super(crm_lead, self).message_update(cr, uid, ids, msg, context=context)
if msg.get('priority') in dict(crm.AVAILABLE_PRIORITIES):
@@ -440,24 +786,17 @@ class crm_lead(crm_case, osv.osv):
This opens Meeting's calendar view to schedule meeting on current Opportunity
@return : Dictionary value for created Meeting view
"""
+ if context is None:
+ context = {}
value = {}
+ data_obj = self.pool.get('ir.model.data')
for opp in self.browse(cr, uid, ids, context=context):
- data_obj = self.pool.get('ir.model.data')
-
# Get meeting views
- result = data_obj._get_id(cr, uid, 'crm', 'view_crm_case_meetings_filter')
- res = data_obj.read(cr, uid, result, ['res_id'])
- id1 = data_obj._get_id(cr, uid, 'crm', 'crm_case_calendar_view_meet')
- id2 = data_obj._get_id(cr, uid, 'crm', 'crm_case_form_view_meet')
- id3 = data_obj._get_id(cr, uid, 'crm', 'crm_case_tree_view_meet')
- if id1:
- id1 = data_obj.browse(cr, uid, id1, context=context).res_id
- if id2:
- id2 = data_obj.browse(cr, uid, id2, context=context).res_id
- if id3:
- id3 = data_obj.browse(cr, uid, id3, context=context).res_id
-
- context = {
+ tree_view = data_obj.get_object_reference(cr, uid, 'crm', 'crm_case_tree_view_meet')
+ form_view = data_obj.get_object_reference(cr, uid, 'crm', 'crm_case_form_view_meet')
+ calander_view = data_obj.get_object_reference(cr, uid, 'crm', 'crm_case_calendar_view_meet')
+ search_view = data_obj.get_object_reference(cr, uid, 'crm', 'view_crm_case_meetings_filter')
+ context.update({
'default_opportunity_id': opp.id,
'default_partner_id': opp.partner_id and opp.partner_id.id or False,
'default_user_id': uid,
@@ -465,7 +804,7 @@ class crm_lead(crm_case, osv.osv):
'default_email_from': opp.email_from,
'default_state': 'open',
'default_name': opp.name
- }
+ })
value = {
'name': _('Meetings'),
'context': context,
@@ -473,9 +812,9 @@ class crm_lead(crm_case, osv.osv):
'view_mode': 'calendar,form,tree',
'res_model': 'crm.meeting',
'view_id': False,
- 'views': [(id1, 'calendar'), (id2, 'form'), (id3, 'tree')],
+ 'views': [(calander_view and calander_view[1] or False, 'calendar'), (form_view and form_view[1] or False, 'form'), (tree_view and tree_view[1] or False, 'tree')],
'type': 'ir.actions.act_window',
- 'search_view_id': res['res_id'],
+ 'search_view_id': search_view and search_view[1] or False,
'nodestroy': True
}
return value
diff --git a/addons/crm/crm_lead_demo.xml b/addons/crm/crm_lead_demo.xml
index 576f258facc..830b572676d 100644
--- a/addons/crm/crm_lead_demo.xml
+++ b/addons/crm/crm_lead_demo.xml
@@ -1,6 +1,6 @@
-
+
@@ -9,8 +9,8 @@
-
-
+
+
@@ -92,7 +92,7 @@
-
+
diff --git a/addons/crm/crm_lead_menu.xml b/addons/crm/crm_lead_menu.xml
index 9b0581844a5..2ec2db18509 100644
--- a/addons/crm/crm_lead_menu.xml
+++ b/addons/crm/crm_lead_menu.xml
@@ -31,7 +31,6 @@
parent="base.menu_base_partner" sequence="1" />
@@ -60,16 +59,23 @@
Opportunities
crm.lead
- tree,form,graph,calendar,kanban
+ kanban,tree,form,graph,calendar
[('type','=','opportunity')]
{'search_default_user_id':uid,'search_default_new':1, 'search_default_open':1, 'search_default_section_id':section_id, 'stage_type': 'opportunity', 'default_type': 'opportunity'}
-
+
With opportunities you can manage and keep track of your sales pipeline by creating specific customer- or prospect-related sales documents to follow up potential sales. Information such as expected revenue, opportunity stage, expected closing date, communication history and much more can be stored. Opportunities can be connected to the email gateway: new emails may create opportunities, each of them automatically gets the history of the conversation with the customer.
You and your team(s) will be able to plan meetings and phone calls from opportunities, convert them into quotations, manage related documents, track all customer related activities, and much more.
+
+
+ kanban
+
+
+
+
tree
diff --git a/addons/crm/crm_lead_view.xml b/addons/crm/crm_lead_view.xml
index 114b7f4410e..e9c77b3bdc6 100644
--- a/addons/crm/crm_lead_view.xml
+++ b/addons/crm/crm_lead_view.xml
@@ -35,7 +35,7 @@
crm.case.categ
form
- {'object_id': 'crm.lead'}
+
[('object_id.model', '=', 'crm.lead')]
Create specific categories that fit your company's activities to better classify and analyse your leads and opportunities. Such categories could for instance reflect your product structure or the different types of sales you do.
@@ -59,10 +59,11 @@
widget="selection"
domain="[('object_id.model','=','crm.lead')]"/>
+ type="action"
+ />
@@ -142,6 +143,29 @@
type="object" icon="gtk-convert" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -170,58 +194,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -304,31 +276,46 @@
+
+
+
+
+
-
-
+
oe_kanban_color_red
+
-
+
+
+
+
+ -
+
+
-
-
-
-
+
-
-
-
@@ -344,13 +331,14 @@
-
+
@@ -443,7 +431,7 @@
Opportunities
crm.lead
form
-
10
+
20
@@ -561,7 +549,7 @@
-
+
@@ -571,34 +559,6 @@
context="{'mail.compose.message.mode':'reply', 'message_id':active_id}"
icon="terp-mail-replied" type="action" />
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
Schedule a Meeting
-
+ {'default_partner_id': active_id}
@@ -51,7 +51,7 @@
crm.meeting
calendar,tree,form,gantt
- {"search_default_user_id":uid, 'search_default_section_id': section_id, 'virtual_id' : True}
+ {"search_default_user_id":uid, 'search_default_section_id': section_id}
The meeting calendar is shared between the sales teams and fully integrated with other applications such as the employee holidays or the business opportunities. You can also synchronize meetings with your mobile phone using the caldav interface.
diff --git a/addons/crm/crm_meeting_view.xml b/addons/crm/crm_meeting_view.xml
index 636cb8289fb..c04e00e5fcc 100644
--- a/addons/crm/crm_meeting_view.xml
+++ b/addons/crm/crm_meeting_view.xml
@@ -10,7 +10,7 @@
form
[('object_id.model', '=', 'crm.meeting')]
- {'object_id':'crm.meeting'}
+
Create different meeting categories to better organize and classify your meetings.
@@ -45,7 +45,6 @@
widget="selection" />
-
@@ -67,7 +66,7 @@
-
+
@@ -231,24 +230,11 @@
-
+
+
-
-
-
-
-
-
-
-
@@ -294,14 +280,18 @@
-
-
-
+
+
+
+
+
-
diff --git a/addons/crm/crm_phonecall.py b/addons/crm/crm_phonecall.py
index 9cfdddf159c..b9bb6d359b1 100644
--- a/addons/crm/crm_phonecall.py
+++ b/addons/crm/crm_phonecall.py
@@ -102,11 +102,6 @@ class crm_phonecall(crm_base, osv.osv):
def case_close(self, cr, uid, ids, *args):
"""Overrides close for crm_case for setting close date
- @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 case Ids
- @param *args: Tuple Value for additional Params
"""
res = True
for phone in self.browse(cr, uid, ids):
@@ -121,11 +116,6 @@ class crm_phonecall(crm_base, osv.osv):
def case_reset(self, cr, uid, ids, *args):
"""Resets case as Todo
- @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 case Ids
- @param *args: Tuple Value for additional Params
"""
res = super(crm_phonecall, self).case_reset(cr, uid, ids, args, 'crm.phonecall')
self.write(cr, uid, ids, {'duration': 0.0})
@@ -134,25 +124,147 @@ class crm_phonecall(crm_base, osv.osv):
def case_open(self, cr, uid, ids, *args):
"""Overrides cancel for crm_case for setting Open Date
- @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 case's Ids
- @param *args: Give Tuple Value
"""
res = super(crm_phonecall, self).case_open(cr, uid, ids, *args)
self.write(cr, uid, ids, {'date_open': time.strftime('%Y-%m-%d %H:%M:%S')})
return res
+ def schedule_another_phonecall(self, cr, uid, ids, schedule_time, call_summary, \
+ user_id=False, section_id=False, categ_id=False, action='schedule', context=None):
+ """
+ action :('schedule','Schedule a call'), ('log','Log a call')
+ """
+ model_data = self.pool.get('ir.model.data')
+ phonecall_dict = {}
+ if not categ_id:
+ res_id = model_data._get_id(cr, uid, 'crm', 'categ_phone2')
+ if res_id:
+ categ_id = model_data.browse(cr, uid, res_id, context=context).res_id
+ for call in self.browse(cr, uid, ids, context=context):
+ if not section_id:
+ section_id = call.section_id and call.section_id.id or False
+ if not user_id:
+ user_id = call.user_id and call.user_id.id or False
+ vals = {
+ 'name' : call_summary,
+ 'user_id' : user_id or False,
+ 'categ_id' : categ_id or False,
+ 'description' : call.description or False,
+ 'date' : schedule_time,
+ 'section_id' : section_id or False,
+ 'partner_id': call.partner_id and call.partner_id.id or False,
+ 'partner_address_id': call.partner_address_id and call.partner_address_id.id or False,
+ 'partner_phone' : call.partner_phone,
+ 'partner_mobile' : call.partner_mobile,
+ 'priority': call.priority,
+ }
+
+ new_id = self.create(cr, uid, vals, context=context)
+ self.case_open(cr, uid, [new_id])
+ if action == 'log':
+ self.case_close(cr, uid, [new_id])
+ phonecall_dict[call.id] = new_id
+ return phonecall_dict
+
+ def _call_create_partner(self, cr, uid, phonecall, context=None):
+ partner = self.pool.get('res.partner')
+ partner_id = partner.create(cr, uid, {
+ 'name': phonecall.name,
+ 'user_id': phonecall.user_id.id,
+ 'comment': phonecall.description,
+ 'address': []
+ })
+ return partner_id
+
+ def _call_set_partner(self, cr, uid, ids, partner_id, context=None):
+ return self.write(cr, uid, ids, {'partner_id' : partner_id}, context=context)
+
+ def _call_create_partner_address(self, cr, uid, phonecall, partner_id, context=None):
+ address = self.pool.get('res.partner.address')
+ return address.create(cr, uid, {
+ 'partner_id': partner_id,
+ 'name': phonecall.name,
+ 'phone': phonecall.partner_phone,
+ })
+
+ def convert_partner(self, cr, uid, ids, action='create', partner_id=False, context=None):
+ """
+ This function convert partner based on action.
+ if action is 'create', create new partner with contact and assign lead to new partner_id.
+ otherwise assign lead to specified partner_id
+ """
+ if context is None:
+ context = {}
+ partner_ids = {}
+ for call in self.browse(cr, uid, ids, context=context):
+ if action == 'create':
+ if not partner_id:
+ partner_id = self._call_create_partner(cr, uid, call, context=context)
+ self._call_create_partner_address(cr, uid, call, partner_id, context=context)
+ self._call_set_partner(cr, uid, [call.id], partner_id, context=context)
+ partner_ids[call.id] = partner_id
+ return partner_ids
+
+
+ def redirect_phonecall_view(self, cr, uid, phonecall_id, context=None):
+ model_data = self.pool.get('ir.model.data')
+ # Select the view
+ tree_view = model_data.get_object_reference(cr, uid, 'crm', 'crm_case_phone_tree_view')
+ form_view = model_data.get_object_reference(cr, uid, 'crm', 'crm_case_phone_form_view')
+ search_view = model_data.get_object_reference(cr, uid, 'crm', 'view_crm_case_phonecalls_filter')
+ value = {
+ 'name': _('Phone Call'),
+ 'view_type': 'form',
+ 'view_mode': 'tree,form',
+ 'res_model': 'crm.phonecall',
+ 'res_id' : int(phonecall_id),
+ 'views': [(form_view and form_view[1] or False, 'form'), (tree_view and tree_view[1] or False, 'tree'), (False, 'calendar')],
+ 'type': 'ir.actions.act_window',
+ 'search_view_id': search_view and search_view[1] or False,
+ }
+ return value
+
+
+ def convert_opportunity(self, cr, uid, ids, opportunity_summary=False, partner_id=False, planned_revenue=0.0, probability=0.0, context=None):
+ partner = self.pool.get('res.partner')
+ address = self.pool.get('res.partner.address')
+ opportunity = self.pool.get('crm.lead')
+ opportunity_dict = {}
+ default_contact = False
+ for call in self.browse(cr, uid, ids, context=context):
+ if not partner_id:
+ partner_id = call.partner_id and call.partner_id.id or False
+ if partner_id:
+ address_id = partner.address_get(cr, uid, [partner_id])['default']
+ if address_id:
+ default_contact = address.browse(cr, uid, address_id, context=context)
+ opportunity_id = opportunity.create(cr, uid, {
+ 'name': opportunity_summary or call.name,
+ 'planned_revenue': planned_revenue,
+ 'probability': probability,
+ 'partner_id': partner_id or False,
+ 'partner_address_id': default_contact and default_contact.id,
+ 'phone': default_contact and default_contact.phone,
+ 'mobile': default_contact and default_contact.mobile,
+ 'section_id': call.section_id and call.section_id.id or False,
+ 'description': call.description or False,
+ 'priority': call.priority,
+ 'type': 'opportunity',
+ 'phone': call.partner_phone or False,
+ })
+ vals = {
+ 'partner_id': partner_id,
+ 'opportunity_id' : opportunity_id,
+ }
+ self.write(cr, uid, [call.id], vals)
+ self.case_close(cr, uid, [call.id])
+ opportunity.case_open(cr, uid, [opportunity_id])
+ opportunity_dict[call.id] = opportunity_id
+ return opportunity_dict
+
def action_make_meeting(self, cr, uid, ids, context=None):
"""
This opens Meeting's calendar view to schedule meeting on current Phonecall
- @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 Phonecall to Meeting IDs
- @param context: A standard dictionary for contextual values
-
@return : Dictionary value for created Meeting view
"""
value = {}
diff --git a/addons/crm/crm_phonecall_demo.xml b/addons/crm/crm_phonecall_demo.xml
index 8f0661ab8be..e80930284f4 100644
--- a/addons/crm/crm_phonecall_demo.xml
+++ b/addons/crm/crm_phonecall_demo.xml
@@ -83,9 +83,6 @@
-
-
-
diff --git a/addons/crm/crm_phonecall_view.xml b/addons/crm/crm_phonecall_view.xml
index 54ea8bd7dfc..23f871d1581 100644
--- a/addons/crm/crm_phonecall_view.xml
+++ b/addons/crm/crm_phonecall_view.xml
@@ -10,7 +10,7 @@
form
[('object_id.model', '=', 'crm.phonecall')]
- {'object_id':'crm.phonecall'}
+
Create specific phone call categories to better define the type of calls tracked in the system.
diff --git a/addons/crm/report/crm_lead_report.py b/addons/crm/report/crm_lead_report.py
index 24f48e7de86..a2215d28740 100644
--- a/addons/crm/report/crm_lead_report.py
+++ b/addons/crm/report/crm_lead_report.py
@@ -147,6 +147,7 @@ class crm_lead_report(osv.osv):
extract('epoch' from (c.date_open-c.create_date))/(3600*24) as delay_open
FROM
crm_lead c
+ WHERE c.active = 'true'
)""")
crm_lead_report()
diff --git a/addons/crm/res_partner.py b/addons/crm/res_partner.py
index cbb05ee3e74..e2016f6d8aa 100644
--- a/addons/crm/res_partner.py
+++ b/addons/crm/res_partner.py
@@ -33,6 +33,44 @@ class res_partner(osv.osv):
'phonecall_ids': fields.one2many('crm.phonecall', 'partner_id',\
'Phonecalls'),
}
+
+ def redirect_partner_form(self, cr, uid, partner_id, context=None):
+ search_view = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'base', 'view_res_partner_filter')
+ value = {
+ 'domain': "[]",
+ 'view_type': 'form',
+ 'view_mode': 'form,tree',
+ 'res_model': 'res.partner',
+ 'res_id': int(partner_id),
+ 'view_id': False,
+ 'context': context,
+ 'type': 'ir.actions.act_window',
+ 'search_view_id': search_view and search_view[1] or False
+ }
+ return value
+
+ def make_opportunity(self, cr, uid, ids, opportunity_summary, planned_revenue=0.0, probability=0.0, partner_id=None, context=None):
+ categ = self.pool.get('crm.case.categ')
+ address = self.address_get(cr, uid, ids)
+ categ_ids = categ.search(cr, uid, [('object_id.model','=','crm.lead')])
+ lead = self.pool.get('crm.lead')
+ opportunity_ids = {}
+ for partner in self.browse(cr, uid, ids, context=context):
+ address = self.address_get(cr, uid, [partner.id])['default']
+ if not partner_id:
+ partner_id = partner.id
+ opportunity_id = lead.create(cr, uid, {
+ 'name' : opportunity_summary,
+ 'planned_revenue' : planned_revenue,
+ 'probability' : probability,
+ 'partner_id' : partner_id,
+ 'partner_address_id' : address,
+ 'categ_id' : categ_ids and categ_ids[0] or '',
+ 'state' :'draft',
+ 'type': 'opportunity'
+ })
+ opportunity_ids[partner_id] = opportunity_id
+ return opportunity_ids
res_partner()
diff --git a/addons/crm/security/crm_security.xml b/addons/crm/security/crm_security.xml
index 8ac32086cfd..ed3d86bf9b8 100644
--- a/addons/crm/security/crm_security.xml
+++ b/addons/crm/security/crm_security.xml
@@ -3,16 +3,19 @@
- Sales / User - Own Leads Only
+ User - Own Leads Only
+
- Sales / User - All Leads
+ User - All Leads
+
- Sales / Manager
+ Manager
+
@@ -40,6 +43,13 @@
-
+
+
+ Hide Private Meetings
+
+
+ ['|',('user_id','=',user.id),('show_as','=','busy')]
+
+
diff --git a/addons/crm/security/ir.model.access.csv b/addons/crm/security/ir.model.access.csv
index 4ea07252276..c893ed6aad7 100644
--- a/addons/crm/security/ir.model.access.csv
+++ b/addons/crm/security/ir.model.access.csv
@@ -1,48 +1,45 @@
-"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
-"access_crm_segmentation_user","crm.segmentation user","model_crm_segmentation","base.group_sale_salesman",1,0,0,0
-"access_crm_segmentation_line_user","crm.segmentation.line user","model_crm_segmentation_line","base.group_sale_salesman",1,0,0,0
-"access_crm_segmentation","crm.segmentation","model_crm_segmentation","base.group_sale_manager",1,1,1,1
-"access_crm_segmentation_line","crm.segmentation.line","model_crm_segmentation_line","base.group_sale_manager",1,1,1,1
-"access_crm_case_channel_user","crm.case.channel user","model_crm_case_channel","base.group_sale_salesman",1,0,0,0
-"access_crm_case_channel_manager","crm.case.channel manager","model_crm_case_channel","base.group_sale_manager",1,1,1,1
-"access_crm_case_section","crm.case.section","model_crm_case_section","base.group_sale_salesman",1,1,1,0
-"access_crm_case_categ","crm.case.categ","model_crm_case_categ","base.group_sale_salesman",1,1,1,0
-"access_crm_meeting_manager","crm.meeting.manager","model_crm_meeting","base.group_sale_manager",1,1,1,1
-"access_crm_lead_manager","crm.lead.manager","model_crm_lead","base.group_sale_manager",1,1,1,1
-"access_crm_phonecall_manager","crm.phonecall.manager","model_crm_phonecall","base.group_sale_manager",1,1,1,1
-"access_crm_case_categ","crm.case.categ","model_crm_case_categ","base.group_user",1,0,0,0
-"access_crm_meeting","crm.meeting","model_crm_meeting","base.group_sale_salesman",1,1,1,0
-"access_crm_meeting_all","crm.meeting_allll","model_crm_meeting","base.group_user",1,0,0,0
-"access_crm_lead","crm.lead","model_crm_lead","base.group_sale_salesman",1,1,1,0
-"access_crm_lead.all","crm.lead.all","model_crm_lead","base.group_user",1,0,0,0
-"access_crm_phonecall","crm.phonecall","model_crm_phonecall","base.group_sale_salesman",1,1,1,0
-"access_crm_phonecall.all","crm.phonecall.all","model_crm_phonecall","base.group_user",1,0,0,0
-"access_crm_case_section_user","crm.case.section.user","model_crm_case_section","base.group_sale_salesman",1,1,1,0
-"access_crm_case_section_manager","crm.case.section.manager","model_crm_case_section","base.group_sale_manager",1,1,1,1
-"access_crm_case_stage","crm.case.stage","model_crm_case_stage","base.group_user",1,0,0,0
-"access_crm_case_stage_manager","crm.case.stage","model_crm_case_stage","base.group_sale_manager",1,1,1,1
-"access_crm_case_resource_type_user","crm_case_resource_type user","model_crm_case_resource_type","base.group_sale_salesman",1,1,1,0
-"access_crm_case_resource_type_manager","crm_case_resource_type manager","model_crm_case_resource_type","base.group_sale_manager",1,1,1,1
-"access_crm_phonecall_report_user","crm.phonecall.report.user","model_crm_phonecall_report","base.group_sale_salesman",1,0,0,0
-"access_crm_lead_report_manager","crm.lead.report","model_crm_lead_report","base.group_sale_manager",1,1,1,1
-"access_crm_phonecall_report_manager","crm.phonecall.report","model_crm_phonecall_report","base.group_sale_manager",1,1,1,1
-"access_res_partner_manager","res.partner.crm.manager","base.model_res_partner","base.group_sale_manager",1,0,0,0
-"access_res_partner_address_manager","res.partner.address.crm.user.manager","base.model_res_partner_address","base.group_sale_manager",1,0,0,0
-"access_res_partner_category_manager","res.partner.category.crm.manager","base.model_res_partner_category","base.group_sale_manager",1,0,0,0
-"mail_mail_message_manager","mail.message.manager","mail.model_mail_message","base.group_sale_manager",1,0,0,0
-"mail_thread_manager","mail.thread.manager","mail.model_mail_thread","base.group_sale_manager",1,1,1,1
-"access_calendar_attendee_crm_user","calendar.attendee.crm.user","model_calendar_attendee","base.group_sale_salesman",1,1,1,0
-"access_calendar_attendee_crm_manager","calendar.attendee.crm.manager","model_calendar_attendee","base.group_sale_manager",1,1,1,1
-"access_res_partner","res.partner.crm.user","base.model_res_partner","base.group_sale_salesman",1,1,1,0
-"access_res_partner_address","res.partner.address.crm.user","base.model_res_partner_address","base.group_sale_salesman",1,1,1,0
-"access_res_partner_category","res.partner.category.crm.user","base.model_res_partner_category","base.group_sale_salesman",1,1,1,0
-"mail_mailgate_thread","mail.thread","mail.model_mail_thread","base.group_sale_salesman",1,1,1,1
-"mail_gateway_mail_message_user","mail.message.user","mail.model_mail_message","base.group_sale_salesman",1,1,1,1
-"access_crm_case_categ_manager","crm.case.categ manager","model_crm_case_categ","base.group_sale_manager",1,1,1,1
-"access_base_action_rule_manager","base.action.rule manager","model_base_action_rule","base.group_sale_manager",1,1,1,1
-"access_crm_lead_report_user","crm.lead.report user","model_crm_lead_report","base.group_sale_salesman",1,1,1,1
-"access_res_partner_bank_type_crm_user","res.partner.bank.type.crm.user","base.model_res_partner_bank_type","base.group_sale_salesman",1,0,0,0
-"access_res_partner_bank_type_crm_manager","res.partner.bank.type.crm.manager","base.model_res_partner_bank_type","base.group_sale_manager",1,0,0,0
-"access_crm_lead_partner_manager","crm.lead.partner.manager","model_crm_lead","base.group_partner_manager",1,0,0,0
-"access_crm_phonecall_partner_manager","crm.phonecall.partner.manager","model_crm_phonecall","base.group_partner_manager",1,1,1,1
-"access_crm_meeting_partner_manager","crm.meeting.partner.manager","model_crm_meeting","base.group_partner_manager",1,1,1,1
+id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
+access_crm_segmentation_user,crm.segmentation user,model_crm_segmentation,base.group_sale_salesman,1,0,0,0
+access_crm_segmentation_line_user,crm.segmentation.line user,model_crm_segmentation_line,base.group_sale_salesman,1,0,0,0
+access_crm_segmentation,crm.segmentation,model_crm_segmentation,base.group_sale_manager,1,1,1,1
+access_crm_segmentation_line,crm.segmentation.line,model_crm_segmentation_line,base.group_sale_manager,1,1,1,1
+access_crm_case_channel_user,crm.case.channel user,model_crm_case_channel,base.group_sale_salesman,1,0,0,0
+access_crm_case_channel_manager,crm.case.channel manager,model_crm_case_channel,base.group_sale_manager,1,1,1,1
+access_crm_case_section,crm.case.section,model_crm_case_section,base.group_sale_salesman,1,1,1,0
+access_crm_case_categ,crm.case.categ,model_crm_case_categ,base.group_sale_salesman,1,1,1,0
+access_crm_meeting_manager,crm.meeting.manager,model_crm_meeting,base.group_sale_manager,1,1,1,1
+access_crm_lead_manager,crm.lead.manager,model_crm_lead,base.group_sale_manager,1,1,1,1
+access_crm_phonecall_manager,crm.phonecall.manager,model_crm_phonecall,base.group_sale_manager,1,1,1,1
+access_crm_case_categ,crm.case.categ,model_crm_case_categ,base.group_user,1,0,0,0
+access_crm_meeting,crm.meeting,model_crm_meeting,base.group_sale_salesman,1,1,1,0
+access_crm_meeting_all,crm.meeting_allll,model_crm_meeting,base.group_user,1,0,0,0
+access_crm_lead,crm.lead,model_crm_lead,base.group_sale_salesman,1,1,1,0
+access_crm_lead.all,crm.lead.all,model_crm_lead,base.group_user,1,0,0,0
+access_crm_phonecall,crm.phonecall,model_crm_phonecall,base.group_sale_salesman,1,1,1,0
+access_crm_phonecall.all,crm.phonecall.all,model_crm_phonecall,base.group_user,1,0,0,0
+access_crm_case_section_user,crm.case.section.user,model_crm_case_section,base.group_sale_salesman,1,1,1,0
+access_crm_case_section_manager,crm.case.section.manager,model_crm_case_section,base.group_sale_manager,1,1,1,1
+access_crm_case_stage,crm.case.stage,model_crm_case_stage,base.group_user,1,0,0,0
+access_crm_case_stage_manager,crm.case.stage,model_crm_case_stage,base.group_sale_manager,1,1,1,1
+access_crm_case_resource_type_user,crm_case_resource_type user,model_crm_case_resource_type,base.group_sale_salesman,1,1,1,0
+access_crm_case_resource_type_manager,crm_case_resource_type manager,model_crm_case_resource_type,base.group_sale_manager,1,1,1,1
+access_crm_phonecall_report_user,crm.phonecall.report.user,model_crm_phonecall_report,base.group_sale_salesman,1,0,0,0
+access_crm_phonecall_report_manager,crm.phonecall.report,model_crm_phonecall_report,base.group_sale_manager,1,1,1,1
+access_res_partner_manager,res.partner.crm.manager,base.model_res_partner,base.group_sale_manager,1,0,0,0
+access_res_partner_address_manager,res.partner.address.crm.user.manager,base.model_res_partner_address,base.group_sale_manager,1,0,0,0
+access_res_partner_category_manager,res.partner.category.crm.manager,base.model_res_partner_category,base.group_sale_manager,1,0,0,0
+mail_mail_message_manager,mail.message.manager,mail.model_mail_message,base.group_sale_manager,1,0,0,0
+access_calendar_attendee_crm_user,calendar.attendee.crm.user,model_calendar_attendee,base.group_sale_salesman,1,1,1,0
+access_calendar_attendee_crm_manager,calendar.attendee.crm.manager,model_calendar_attendee,base.group_sale_manager,1,1,1,1
+access_res_partner,res.partner.crm.user,base.model_res_partner,base.group_sale_salesman,1,1,1,0
+access_res_partner_address,res.partner.address.crm.user,base.model_res_partner_address,base.group_sale_salesman,1,1,1,0
+access_res_partner_category,res.partner.category.crm.user,base.model_res_partner_category,base.group_sale_salesman,1,1,1,0
+mail_mailgate_thread,mail.thread,mail.model_mail_thread,base.group_sale_salesman,1,1,1,1
+mail_gateway_mail_message_user,mail.message.user,mail.model_mail_message,base.group_sale_salesman,1,1,1,1
+access_crm_case_categ_manager,crm.case.categ manager,model_crm_case_categ,base.group_sale_manager,1,1,1,1
+access_base_action_rule_manager,base.action.rule manager,model_base_action_rule,base.group_sale_manager,1,1,1,1
+access_crm_lead_report_user,crm.lead.report user,model_crm_lead_report,base.group_sale_salesman,1,1,1,1
+access_res_partner_bank_type_crm_user,res.partner.bank.type.crm.user,base.model_res_partner_bank_type,base.group_sale_salesman,1,0,0,0
+access_crm_lead_partner_manager,crm.lead.partner.manager,model_crm_lead,base.group_partner_manager,1,0,0,0
+access_crm_phonecall_partner_manager,crm.phonecall.partner.manager,model_crm_phonecall,base.group_partner_manager,1,1,1,1
+access_crm_meeting_partner_manager,crm.meeting.partner.manager,model_crm_meeting,base.group_partner_manager,1,1,1,1
diff --git a/addons/crm/test/customer_request.eml b/addons/crm/test/customer_request.eml
new file mode 100644
index 00000000000..2c6c5e8110d
--- /dev/null
+++ b/addons/crm/test/customer_request.eml
@@ -0,0 +1,30 @@
+Return-Path:
+X-Original-To: info@customer.com
+Delivered-To: sales@my.com
+Received: by mail.my.com (Postfix, from userid xxx)
+ id 822ECBFB67; Mon, 24 Oct 2011 07:36:51 +0200 (CEST)
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.my.com
+X-Spam-Level:
+X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED autolearn=ham
+ version=3.3.1
+Received: from [192.168.1.146]
+ (Authenticated sender: info@mail.customer.com)
+ by mail.customer.com (Postfix) with ESMTPSA id 07A30BFAB4
+ for ; Mon, 24 Oct 2011 07:36:50 +0200 (CEST)
+Message-ID: <4EA4F95D.904@customer.com>
+Date: Mon, 24 Oct 2011 11:06:29 +0530
+From: Mr. John Right
+User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.14) Gecko/20110223 Lightning/1.0b2 Thunderbird/3.1.8
+MIME-Version: 1.0
+To: sales@my.com
+Subject: Fournir votre devis avec le meilleur prix.
+Content-Type: text/plain; charset=ISO-8859-1; format=flowed
+Content-Transfer-Encoding: 8bit
+
+Bonjour l'équipe de vente,
+
+Je veux acheter vos produits et services.
+
+S'il vous plaît fournir votre cotation avec le meilleur prix.
+
+Merci
diff --git a/addons/crm/test/process/cancel_lead.yml b/addons/crm/test/process/cancel_lead.yml
new file mode 100644
index 00000000000..a5f85a14058
--- /dev/null
+++ b/addons/crm/test/process/cancel_lead.yml
@@ -0,0 +1,53 @@
+-
+ I cancel unqualified lead.
+-
+ !python {model: crm.lead}: |
+ self.case_cancel(cr, uid, [ref("crm_case_itisatelesalescampaign0")])
+-
+ I check cancelled lead.
+-
+ !assert {model: crm.lead, id: crm.crm_case_itisatelesalescampaign0, string: Lead is in cancel state}:
+ - state == "cancel"
+-
+ I reset cancelled lead into unqualified lead.
+-
+ !python {model: crm.lead}: |
+ self.case_reset(cr, uid, [ref("crm_case_itisatelesalescampaign0")])
+-
+ I check unqualified lead after reset.
+-
+ !assert {model: crm.lead, id: crm.crm_case_itisatelesalescampaign0, string: Lead is in draft state}:
+ - state == "draft"
+-
+ I put unqualified lead into pending.
+-
+ !python {model: crm.lead}: |
+ self.case_pending(cr, uid, [ref("crm_case_itisatelesalescampaign0")])
+-
+ I check status of pending lead.
+-
+ !assert {model: crm.lead, id: crm.crm_case_itisatelesalescampaign0, string: Lead is in pending state}:
+ - state == "pending"
+-
+ I Escalate the Lead to Parent Team.
+-
+ !python {model: crm.lead}: |
+ self.case_escalate(cr, uid, [ref("crm_case_itisatelesalescampaign0")])
+-
+ I check lead escalate to Parent Team.
+-
+ !assert {model: crm.lead, id: crm.crm_case_itisatelesalescampaign0, string: Escalate lead to parent team}:
+ - section_id.name == "Sales Department"
+-
+ I mark as lost the opportunity.
+-
+ !python {model: crm.lead}: |
+ self.case_mark_lost(cr, uid, [ref("crm_case_itisatelesalescampaign0")])
+-
+ I check opportunity after lost.
+-
+ !python {model: crm.lead}: |
+ lead = self.browse(cr, uid, ref('crm_case_itisatelesalescampaign0'))
+ assert lead.state == 'done', "lead is not done state"
+ assert lead.stage_id.id == ref('crm.stage_lead6'), 'Stage is not changed!'
+ assert lead.probability == 0.0, 'Probability is wrong!'
diff --git a/addons/crm/test/process/communication_with_customer.yml b/addons/crm/test/process/communication_with_customer.yml
new file mode 100644
index 00000000000..92e711ce016
--- /dev/null
+++ b/addons/crm/test/process/communication_with_customer.yml
@@ -0,0 +1,56 @@
+-
+ Customer interested in our product. so He send request by email to get more details.
+-
+ Mail script will be fetched him request from mail server. so I process that mail after read EML file
+-
+ !python {model: mail.thread}: |
+ import addons
+ request_file = open(addons.get_module_resource('crm','test', 'customer_request.eml'),'rb')
+ request_message = request_file.read()
+ self.message_process(cr, uid, 'crm.lead', request_message)
+-
+ After getting the mail, I check details of new lead of that customer.
+-
+ !python {model: crm.lead}: |
+ lead_ids = self.search(cr, uid, [('email_from','=', 'Mr. John Right ')])
+ assert lead_ids and len(lead_ids), "Lead is not created after getting request"
+ lead = self.browse(cr, uid, lead_ids[0], context=context)
+ assert not lead.partner_id, "Customer should be a new"
+ assert lead.name == "Fournir votre devis avec le meilleur prix.", "Subject does not match"
+-
+ I reply him request with welcome message.
+-
+ !python {model: mail.compose.message}: |
+ lead_ids = self.pool.get('crm.lead').search(cr, uid, [('email_from','=', 'Mr. John Right ')])
+ context.update({'active_model': 'crm.lead','active_id': lead_ids[0]})
+ id = self.create(cr, uid, {'body_text': "Merci à l'intérêt pour notre produit.nous vous contacterons bientôt. Merci", 'email_from': 'sales@mycompany.com'}, context=context)
+ try:
+ self.send_mail(cr, uid, [id], context=context)
+ except:
+ pass
+-
+ Now, I convert him into customer and put into regular customer list.
+-
+ !python {model: crm.lead}: |
+ lead_ids = self.search(cr, uid, [('email_from','=', 'Mr. John Right ')])
+ self.convert_partner(cr, uid, lead_ids, context=context)
+-
+ Now, I search customer in regular customer list.
+-
+ !python {model: crm.lead}: |
+ partner_ids = self.message_partner_by_email(cr, uid, 'Mr. John Right ')
+ assert partner_ids.get('partner_id'), "Customer is not found in regular customer list."
+-
+ I convert one phonecall request as a customer and put into regular customer list.
+-
+ !python {model: crm.phonecall}: |
+ self.convert_partner(cr, uid, [ref('crm.crm_case_phone06')], context=context)
+-
+ I check converted phonecall to partner.
+-
+ !python {model: res.partner}: |
+ partner_id = self.search(cr, uid, [('phonecall_ids', '=', ref('crm.crm_case_phone06'))])
+ assert partner_id, "Customer is not found in regular customer list."
+ data = self.browse(cr, uid, partner_id, context=context)[0]
+ assert data.user_id.id == ref("base.user_root"), "User not assign properly"
+ assert data.name == "Bad time", "User not assign properly"
diff --git a/addons/crm/test/process/lead2opportunity2win.yml b/addons/crm/test/process/lead2opportunity2win.yml
new file mode 100644
index 00000000000..dbc04abae19
--- /dev/null
+++ b/addons/crm/test/process/lead2opportunity2win.yml
@@ -0,0 +1,90 @@
+-
+ In order to test convert customer lead into opportunity,
+-
+ I open customer lead.
+-
+ !python {model: crm.lead}: |
+ self.case_open(cr, uid, [ref("crm_case_qrecorp0")])
+-
+ I check lead state is "Open".
+-
+ !assert {model: crm.lead, id: crm.crm_case_qrecorp0, string: Lead in open state}:
+ - state == "open"
+-
+ I convert lead into opportunity for exiting customer.
+-
+ !python {model: crm.lead}: |
+ self.convert_opportunity(cr, uid ,[ref("crm_case_qrecorp0")], ref("base.res_partner_agrolait"))
+-
+ I check details of converted opportunity.
+-
+ !python {model: crm.lead}: |
+ lead = self.browse(cr, uid, ref('crm_case_qrecorp0'))
+ assert lead.type == 'opportunity', 'Lead is not converted to opportunity!'
+ assert lead.partner_id.id == ref("base.res_partner_agrolait"), 'Partner missmatch!'
+ assert lead.stage_id.id == ref("stage_lead1"), 'Stage of opportunity is incorrect!'
+-
+ Now I begin communication and schedule a phone call with the customer.
+-
+ !python {model: crm.opportunity2phonecall}: |
+ import time
+ context.update({'active_model': 'crm.lead', 'active_ids': [ref('crm_case_qrecorp0')]})
+ call_id = self.create(cr, uid, {'date': time.strftime('%Y-%m-%d %H:%M:%S'),
+ 'name': "Bonjour M. Jean, Comment êtes-vous? J'ai obtenu votre demande. peut-on parler au sujet de ce pour quelques minutes?"}, context=context)
+ self.action_schedule(cr, uid, [call_id], context=context)
+-
+ I check that phonecall is scheduled for that opportunity.
+-
+ !python {model: crm.phonecall}: |
+ ids = self.search(cr, uid, [('opportunity_id', '=', ref('crm_case_qrecorp0'))])
+ assert len(ids), 'phonecall is not scheduled'
+-
+ Now I schedule Meeting with Customer.
+-
+ !python {model: crm.lead}: |
+ self.action_makeMeeting(cr, uid, [ref('crm_case_qrecorp0')])
+
+-
+ After communicated with customer, I put some notes with Contract details.
+-
+ !python {model: crm.add.note}: |
+ context.update({'active_model': 'crm.lead', 'active_id': ref('crm_case_qrecorp0')})
+ note_id = self.create(cr, uid, {'body': "ces détails envoyés par le client sur le FAX pour la qualité"})
+ self.action_add(cr, uid, [note_id], context=context)
+-
+ Finally, I won this opportunity, so I close this opportunity.
+-
+ !python {model: crm.lead}: |
+ self.case_mark_won(cr, uid, [ref("crm_case_qrecorp0")])
+-
+ I check details of the opportunity After won the opportunity.
+-
+ !python {model: crm.lead}: |
+ lead = self.browse(cr, uid, ref('crm_case_qrecorp0'))
+ assert lead.state == 'done', 'Opportunity is not in done state!'
+ assert lead.stage_id.name == 'Won', ' Stage of Opportunity is not win!'
+ assert lead.probability == 100.0, 'probability revenue should not be 100.0!'
+-
+ I convert mass lead into opportunity customer.
+-
+ !python {model: crm.lead2opportunity.partner.mass}: |
+ context.update({'active_model': 'crm.lead', 'active_ids': [ref("crm_case_employee0"), ref("crm_case_electonicgoodsdealer0")], 'active_id': ref("crm_case_qrecorp0")})
+ id = self.create(cr, uid, {'user_ids': [ref('base.user_root')], 'section_id': ref('crm.section_sales_department')}, context=context)
+ self.mass_convert(cr, uid, [id], context=context)
+-
+ Now I check First lead converted on opportunity.
+-
+ !python {model: crm.lead}: |
+ opp = self.browse(cr, uid, ref('crm_case_employee0'))
+ assert opp.name == "Need Info about Onsite Intervention", "Opportunity name not correct"
+ assert opp.type == 'opportunity', 'Lead is not converted to opportunity!'
+ assert opp.partner_id.name == "Agrolait", 'Partner missmatch!'
+ assert opp.stage_id.id == ref("stage_lead1"), 'Stage of probability is incorrect!'
+-
+ Then check for Second lead converted on opportunity.
+-
+ !python {model: crm.lead}: |
+ opp = self.browse(cr, uid, ref('crm_case_electonicgoodsdealer0'))
+ assert opp.name == "Interest in Your New Product", "Opportunity name not correct"
+ assert opp.type == 'opportunity', 'Lead is not converted to opportunity!'
+ assert opp.stage_id.id == ref("stage_lead1"), 'Stage of probability is incorrect!'
\ No newline at end of file
diff --git a/addons/crm/test/process/merge_opportunity.yml b/addons/crm/test/process/merge_opportunity.yml
new file mode 100644
index 00000000000..463e330fc10
--- /dev/null
+++ b/addons/crm/test/process/merge_opportunity.yml
@@ -0,0 +1,51 @@
+-
+ I make direct opportunity for Customer.
+-
+ !python {model: crm.partner2opportunity}: |
+ context.update({'active_model': 'res.partner', 'active_ids': [ref("base.res_partner_9")]})
+ res_id = self.create(cr, uid, {'name': "enquête pour l'achat de services"}, context=context)
+ self.make_opportunity(cr, uid, [res_id], context=context)
+-
+ I make another opportunity from phonecall for same customer.
+-
+ !python {model: crm.phonecall2opportunity}: |
+ context.update({'active_model': 'crm.phonecall', 'active_ids': [ref("crm.crm_case_phone06")]})
+ res_id = self.create(cr, uid, {'name': "Quoi de prix de votre autre service?", 'partner_id': ref("base.res_partner_9")}, context=context)
+ self.make_opportunity(cr, uid, [res_id], context=context)
+-
+ Now I merge all opportunities of customer.
+-
+ !python {model: crm.lead}: |
+ opportunity_ids = self.search(cr, uid, [('partner_id','=', ref("base.res_partner_9"))])
+ self.merge_opportunity(cr, uid, opportunity_ids, context=context)
+-
+ I check for merged opportunities for customer.
+-
+ !python {model: crm.lead}: |
+ merge_id = self.search(cr, uid, [('partner_id','=', ref("base.res_partner_9"))])
+ assert merge_id, 'Fail to create Merge opportunity'
+ merge_data = self.browse(cr, uid, merge_id)[0]
+ assert merge_data.type == 'opportunity', 'Merged opportunity type not change!'
+ assert merge_data.partner_id.id == ref("base.res_partner_9"), 'Partner missmatch!'
+-
+ Now I schedule another phonecall to customer after merged.
+-
+ !python {model: crm.phonecall2phonecall}: |
+ context.update({'active_model': 'crm.phonecall', 'active_ids': [ref("crm.crm_case_phone06")]})
+ res_id = self.create(cr, uid, {'name': "vos chances sont fusionnés en un seul"}, context=context)
+ self.action_schedule(cr, uid, [res_id], context=context)
+-
+ I schedule Meeting on this phonecall.
+-
+ !python {model: crm.phonecall}: |
+ self.action_make_meeting(cr, uid, [ref("crm.crm_case_phone06")])
+-
+ I setting Phone call to Held (Done).
+-
+ !python {model: crm.phonecall}: |
+ self.case_close(cr, uid, [ref("crm.crm_case_phone06")])
+-
+ I check that the phone call is in 'Held' state.
+-
+ !assert {model: crm.phonecall, id: crm.crm_case_phone06, string: Phone call Helded}:
+ - state == "done"
diff --git a/addons/crm/test/process/segmentation.yml b/addons/crm/test/process/segmentation.yml
new file mode 100644
index 00000000000..74500049290
--- /dev/null
+++ b/addons/crm/test/process/segmentation.yml
@@ -0,0 +1,16 @@
+-
+ In order to test segmentation process which create specific partner categories criteria,
+-
+ I start the process.
+-
+ !python {model: crm.segmentation}: |
+ self.process_start(cr, uid, [ref("crm_segmentation0")],context)
+ #Todo: Need to check after segmentation started
+
+-
+ I create rule Segmentation line record for partner .
+-
+ !python {model: crm.segmentation.line}: |
+ id = self.create(cr, uid, {'name': "OpenERP partners",'expr_value': 25})
+ self.test(cr, uid, [id],partner_id=0)
+ #Todo: Need to test segmantation line record
\ No newline at end of file
diff --git a/addons/crm/test/test_crm_lead.yml b/addons/crm/test/test_crm_lead.yml
deleted file mode 100644
index d5d3c6b933b..00000000000
--- a/addons/crm/test/test_crm_lead.yml
+++ /dev/null
@@ -1,154 +0,0 @@
--
- In order to test the CRM in OpenERP, I will do a customer qualification
- process that starts with a fist contact with a customer (a lead), which will
- be converted to a business opportunity and a partner.
--
- I create a two new users "user_crm" and I assign the group "salesman".
--
- !record {model: res.users, id: res_users_usercrm0}:
- company_id: base.main_company
- context_lang: en_US
- context_section_id: crm.section_sales_department
- groups_id:
- - base.group_sale_salesman
- login: user_crm
- name: user_crm
- password: user_crm
-
-- |
- I start by creating a new lead "New Customer" and I provide an address to this
- new customer, as well as an email "info@mycustomer.com".
--
- !record {model: crm.lead, id: crm_lead_newcustomer0}:
- email_from: info@mycustomer.com
- name: New Customer
- partner_name: Capegemini
- partner_id: base.res_partner_9
- phone: (855) 924-4364
- mobile: (333) 715-1450
- section_id: crm.section_sales_department
- referred: False
-- |
- I check that the lead is in 'draft' state.
--
- !assert {model: crm.lead, id: crm_lead_newcustomer0, string: Lead in Draft}:
- - state == "draft"
--
- I open lead by click on "Open" button.
--
- !python {model: crm.lead}: |
- self.case_open(cr, uid, [ref("crm_lead_newcustomer0")])
- fields={
- 'day_open': 0.0,
- 'day_close': 0.0
- }
- self._compute_day(cr, uid, [ref("crm_lead_newcustomer0")], fields, context)
-- |
- I check that lead is now in 'open' state.
--
- !assert {model: crm.lead, id: crm_lead_newcustomer0, string: Lead in open state}:
- - state == "open"
--
- I search id for case object.
--
- !python {model: crm.case.categ}: |
- self._find_object_id(cr, uid, context)
-- |
- As the lead seems to be a real business opportunity, I will convert it to a
- partner
- and a business opportunity by clicking on the "Convert" button.
--
- !python {model: crm.lead}: |
- lead = self.browse(cr, uid, ref('crm_lead_newcustomer0'))
- action = self.convert_opportunity(cr, uid, [ref("crm_lead_newcustomer0")], {'active_ids': [ref("crm_lead_newcustomer0")]})
- assert action['res_model'] == 'crm.lead2opportunity.partner'
--
- |
- I select "create a new partner" option.
--
- !record {model: crm.lead2opportunity.partner, id: crm_lead2opportunity_partner_create_0}:
- action: 'create'
- name: 'convert'
--
- Then, Click on "Create Opportunity" button.
--
- !python {model: crm.lead2opportunity.partner}: |
- self.action_apply(cr, uid, [ref("crm_lead2opportunity_partner_create_0")], {'active_ids': [ref("crm_lead_newcustomer0")], 'active_id': ref("crm_lead_newcustomer0")})
--
- |
- I select "Link to an existing partner" option.
--
- !record {model: crm.lead2opportunity.partner, id: crm_lead2opportunity_partner_create_1}:
- action: 'exist'
--
- Then, Click on "Create Opportunity" button.
--
- !python {model: crm.lead2opportunity.partner}: |
- self.action_apply(cr, uid, [ref("crm_lead2opportunity_partner_create_1")], {'active_ids': [ref("crm_lead_newcustomer0")], 'active_id': ref("crm_lead_newcustomer0")})
--
- |
- I select "Do not link to a partner" option.
--
- !record {model: crm.lead2opportunity.partner, id: crm_lead2opportunity_partner_create_2}:
- action: 'nothing'
--
- Then, Click on "Create Opportunity" button.
--
- !python {model: crm.lead2opportunity.partner}: |
- self.action_apply(cr, uid, [ref("crm_lead2opportunity_partner_create_2")], {'active_ids': [ref("crm_lead_newcustomer0")], 'active_id': ref("crm_lead_newcustomer0")})
-- |
- In order to check the opportunity is created or not, I check type.
--
- !python {model: crm.lead}: |
- lead = self.browse(cr, uid, ref("crm_lead_newcustomer0"))
- assert lead.type == 'opportunity'
-
--
- I create mass report of lead to opprtunity partner.
--
- !record {model: crm.lead2opportunity.partner.mass, id: crm_lead2opportunity_partner_mass0}:
- user_ids:
- - base.user_root
- section_id: crm.section_sales_department
--
- Then, execute that mass wizard.
--
- !python {model: crm.lead2opportunity.partner.mass}: |
- self.mass_convert(cr, uid, [ref("crm_lead2opportunity_partner_mass0")],{'active_ids': [ref("crm_lead_newcustomer0")], 'active_id': ref("crm_lead_newcustomer0")})
--
- I close lead by click on "close" button.
--
- !python {model: crm.lead}: |
- self.case_close(cr, uid, [ref("crm_lead_newcustomer0")])
-- |
- I check that lead is now in 'done' state.
--
- !assert {model: crm.lead, id: crm_lead_newcustomer0, string: Lead in done state}:
- - state == "done"
--
- I cancel lead by click on "cancel" button.
--
- !python {model: crm.lead}: |
- self.case_cancel(cr, uid, [ref("crm_lead_newcustomer0")])
-- |
- I check that lead is now in 'cancel' state.
--
- !assert {model: crm.lead, id: crm_lead_newcustomer0, string: Lead in cancel state}:
- - state == "cancel"
-
-#-
-# |
-# yaml is also not working with smtp server and send new email.
-
-- |
- I configure with smtp server.
-- |
- And I communicate with lead through send New mail to Lead using its email address from the user who is logged in.
-- |
- I check that communication history generated when send email to lead.
-- |
- Then, I add a cc which receive copy of future communication between partner and users by mail.
-
-- |
- I Reply to last Email to lead with some document attached.and check that communication history generated or not.
-
diff --git a/addons/crm/test/test_crm_lead_case2.yml b/addons/crm/test/test_crm_lead_case2.yml
deleted file mode 100644
index 23a654d31a8..00000000000
--- a/addons/crm/test/test_crm_lead_case2.yml
+++ /dev/null
@@ -1,151 +0,0 @@
--
- In order to do complete test the CRM in OpenERP,
- I will create new full configured record and carry test on it.
-- |
- I Start by creating "Test Sales Team" with No Unlink.
- I create a crm.case.section record.
--
- !record {model: crm.case.section, id: crm_case_section_demosalesteam}:
- code: DEMO
- complete_name: Test Sales Team
- name: Test Sales Team
- allow_unlink: False
- member_ids:
- - base.user_admin
- stage_ids:
- - crm.stage_lead1
- - crm.stage_lead2
- - crm.stage_lead3
- - crm.stage_lead4
- - crm.stage_lead5
- - crm.stage_lead6
- working_hours: 0.0
- resource_calendar_id: resource.timesheet_group1
- parent_id: crm.section_sales_department
--
- I assign segmentation.
--
- !record {model: res.users, id: res_users_usercrm0}:
- context_section_id: crm_case_section_demosalesteam
-- |
- I create a new lead "Test Customer" and I provide an address to this
- demo customer and email "info@democustomer.com" and Also "Test Sales Team".
--
- !record {model: crm.lead, id: crm_lead_democustomer}:
- email_from: info@democustomer.com
- name: Test Customer
- partner_name: NotSoTinySARL
- phone: (+32).81.81.37.00
- mobile: (+32).81.81.37.00
- section_id: crm_case_section_demosalesteam
- referred: False
- type: lead
--
- I check that the lead is in 'draft' state.
--
- !assert {model: crm.lead, id: crm_lead_democustomer, string: Lead in Draft}:
- - state == "draft"
--
- I create categories.
--
- !record {model: crm.case.categ, id: crm_case_categ0}:
- name: crm_case_section_demosalesteam
- section_id: crm_case_section_demosalesteam
--
- I assigning contact detail to the Lead "Test Customer" without address.
--
- !python {model: crm.lead}: |
- self.onchange_partner_address_id(cr, uid, ref("crm_lead_democustomer"), None, email=False)
-
--
- I assigning contact detail to the Lead "Test Customer" with address.
--
- !python {model: crm.lead}: |
- self.onchange_partner_address_id(cr, uid, ref("crm_lead_democustomer"), ref("base.res_partner_address_notsotinysarl0"), email=False)
-
--
- I selecting email "Opt-out" option for the "Test Customer" Lead.
--
- !python {model: crm.lead}: |
- self.on_change_optout(cr, uid, ref("crm_lead_democustomer"), True)
-
--
- I change the Opt-out to Opt-in to show email receive preference.
--
- !python {model: crm.lead}: |
- self.on_change_optin(cr, uid, ref("crm_lead_democustomer"), True)
--
- I open lead by click on "Open" button.
--
- !python {model: crm.lead}: |
- self.case_open(cr, uid, [ref("crm_lead_democustomer")])
--
- I check that lead "Test Customer" is now in 'open' state.
--
- !assert {model: crm.lead, id: crm_lead_democustomer, string: Lead in open state}:
- - state == "open"
--
- I reset the lead "Test Customer".
--
- !python {model: crm.lead}: |
- self.case_reset(cr, uid, [ref("crm_lead_democustomer")])
--
- I again opening lead by click on "Open" button.
--
- !python {model: crm.lead}: |
- self.case_open(cr, uid, [ref("crm_lead_democustomer")])
--
- I setting stage "New" for the lead "Test Customer".
--
- !python {model: crm.lead}: |
- self.stage_next(cr, uid, [ref("crm_lead_democustomer")], context={'stage_type': 'lead'})
--
- I try to Unlink the Lead "Test Customer" demo Lead.
--
- !python {model: crm.lead}: |
- try:
- self.unlink(cr, uid, [ref("crm_lead_democustomer")])
- except:
- pass
--
- I setting Lead "Test Customer" to Pending State.
--
- !python {model: crm.lead}: |
- self.case_pending(cr, uid, [ref("crm_lead_democustomer")])
--
- I check that lead "Test Customer" is now in 'Pending' state.
--
- !assert {model: crm.lead, id: crm_lead_democustomer, string: Lead in Pending state}:
- - state == "pending"
--
- I Escalate the Lead "Test Customer" Parent "Sales Team".
--
- !python {model: crm.lead}: |
- self.case_escalate(cr, uid, [ref("crm_lead_democustomer")])
--
- I add Internal Note Saying Escalated Reason.
--
- !record {model: crm.add.note, id: crm_add_note_0}:
- body: Sales Lead Has Been Escalated Due to Some Technical reason to the parent 'Sales
- Team'
- state: unchanged
--
- I click a note button to attach the record.
--
- !python {model: crm.add.note}: |
- context['active_model'] = "crm.lead"
- context['active_ids'] = [ref("crm_lead_democustomer")]
- self.action_add(cr, uid, [ref("crm_add_note_0")], context=context)
-
--
- I Copying this lead "Test Customer" to New Lead.
--
- !python {model: crm.lead}: |
- self.copy(cr, uid, ref("crm_lead_democustomer"))
--
- I checking the Lead Copied or Not.
--
- !python {model: crm.lead}: |
- sid = self.search(cr, uid, [('name', '=', 'Test Customer'),('state', '=', 'draft')])
- if not sid:
- raise AssertionError("Lead is not copied Successfully")
diff --git a/addons/crm/test/test_crm_meeting.yml b/addons/crm/test/test_crm_meeting.yml
deleted file mode 100644
index 1aee11463dd..00000000000
--- a/addons/crm/test/test_crm_meeting.yml
+++ /dev/null
@@ -1,97 +0,0 @@
-- |
- I will test Meetings which may be customer meeting or phonecall meeting or
- internal Meeting.
-- |
- I start by creating a new Meeting.
--
- !record {model: crm.meeting, id: crm_meeting_regardingpresentation0}:
- categ_id: crm.categ_meet2
- date: !eval time.strftime('%Y-%m-%d 16:04:00')
- date_deadline: !eval "(datetime.now() + timedelta(1)).strftime('%Y-%m-%d 00:04:00')"
- duration: 8.0
- email_from: info@balmerinc.be
- location: Ahmedabad
- name: Regarding Presentation
- partner_address_id: base.res_partner_address_1
- partner_id: base.res_partner_9
- rrule_type: weekly
- section_id: crm.section_sales_department
-- |
- I check that the Meetings is in 'UnConfirmed' state.
--
- !assert {model: crm.meeting, id: crm_meeting_regardingpresentation0}:
- - state == "draft"
-- |
- I can set reminder on meeting if I put reminder "40 minutes before" .
-- |
- For that, I first create alarm.
--
- !record {model: res.alarm, id: res_alarm_minituesbefore0}:
- name: 40 minutes before
- trigger_duration: 40
- trigger_interval: minutes
- trigger_occurs: before
- trigger_related: start
-- |
- I will assign this reminder.
-
-- !python {model: crm.meeting}: |
- self.write(cr, uid, [ref('crm_meeting_regardingpresentation0')], {'alarm_id': ref("res_alarm_minituesbefore0")})
-- |
- In order to check recurrence on meetings I will set Recurrency to Custom
- and I set the fields so that the meeting will occur weekly on Monday and Friday 10 times.
--
- !python {model: crm.meeting}: |
- self.write(cr, uid, [ref("crm_meeting_regardingpresentation0")], {'fr': 1, 'mo': 1, 'th': 1, 'tu': 1, 'we':1, 'count':10, 'interval': 1, 'rrule_type': 'weekly', 'recurrency' : True})
-
-- |
- I can see from the calendar view that the meeting is scheduled on Monday and Friday
- for 10 times.
-
--
- !python {model: crm.meeting}: |
- self.fields_view_get(cr, uid, False, 'calendar', context)
-- |
- I will search for one of the recurrent event and count the number of meeting.
--
- !python {model: crm.meeting}: |
- import time
- from datetime import datetime, date, timedelta
- ids = self.search(cr, uid, [('date', '>=', time.strftime('%Y-%m-%d 00:00:00')), ('date', '<=', (datetime.now()+timedelta(31)).strftime('%Y-%m-%d 00:00:00')), ('name', '=', 'Regarding Presentation')], context={'virtual_id': True})
- assert len(ids) == 10
-
-- |
- If I want to edit meetings information for all occurrence I click on "Edit All" button.
--
- !python {model: crm.meeting}: |
- self.write(cr, uid, [ref('crm_meeting_regardingpresentation0')], {'edit_all':'True'},context)
-- |
- I can see that new meeting form is opened with same value.
- I change some data for meeting and save it.
- I can see from meeting's calendar view that all meeting occurrences are changed accordingly.
--
- !record {model: crm.meeting, id: crm.crm_meeting_regardingpresentation0}:
- alarm_id: base_calendar.alarm9
- rrule_type: weekly
-
-- |
- In order to invite people for this meetings, I click on "Invite People" button
- I can invite internal user.
--
- !record {model: base_calendar.invite.attendee, id: base_calendar_invite_attendee_0}:
- type: internal
- send_mail: False
- partner_id: base.res_partner_9
- user_ids:
- - base.user_demo
--
- I click on "Invite" button of "Invite attendee" wizard.
--
- !python {model: base_calendar.invite.attendee}: |
- self.do_invite(cr, uid, [ref('base_calendar_invite_attendee_0')], {'active_id': ref('crm_meeting_regardingpresentation0'), 'model' : 'crm.meeting', 'attendee_field':'attendee_ids'})
-
-- |
- After direct/indirect confirmation for meetings I can confirm meeting.
--
- !python {model: crm.meeting}: |
- self.case_open(cr, uid, [ref('crm_meeting_regardingpresentation0')])
diff --git a/addons/crm/test/test_crm_opportunity.yml b/addons/crm/test/test_crm_opportunity.yml
deleted file mode 100644
index 734a1cae46c..00000000000
--- a/addons/crm/test/test_crm_opportunity.yml
+++ /dev/null
@@ -1,113 +0,0 @@
-- |
- I start by creating a new Opportunity. And I select partner for opportunity.
- I can see that after selecting partner his contact and email is automatically filled.
--
- !record {model: crm.lead, id: crm_opportunity_abcfuelcounits0}:
- email_from: info@balmerinc.be
- name: 'ABC FUEL CO 829264 - 10002 units'
- partner_address_id: base.res_partner_address_1
- partner_id: base.res_partner_9
- probability: 1.0
- stage_id: crm.stage_lead1
- categ_id: crm.categ_oppor2
- section_id: crm.section_sales_department
-- |
- I check that the opportunity is in 'New' state.
--
- !assert {model: crm.lead, id: crm_opportunity_abcfuelcounits0}:
- - state == "draft"
-
-- |
- I check that phonecall record is created for that opportunity.
--
- !python {model: crm.phonecall}: |
- phone_obj = self.pool.get('crm.phonecall')
-- |
- I schedule Meeting on this current opportunity by clicking on "schedule
- Meeting".
--
- !python {model: crm.lead}: |
- self.action_makeMeeting(cr, uid, [ref("crm_opportunity_abcfuelcounits0")])
-
-- |
- I can see that Meeting's calendar view is shown.
- then I click on the date on which I want to schedule meeting.
- I fill proper data for that meeting and save it.
--
- !record {model: crm.meeting, id: crm_meeting_abcfuelcounits0}:
- date: !eval time.strftime('%Y-%m-%d 00:00:00')
- date_deadline: !eval time.strftime('%Y-%m-%d 08:00:00')
- duration: 8.0
- email_from: info@balmerinc.be
- name: 'ABC FUEL CO 829264 - 10002 units'
- opportunity_id: 'crm_opportunity_abcfuelcounits0'
- partner_address_id: base.res_partner_address_1
- partner_id: base.res_partner_9
- section_id: crm.section_sales_department
- state: open
-- |
- In order to schedule a phonecall to the partner
- I click on "schedule call" button and select planned date for the call.
--
- !record {model: crm.opportunity2phonecall, id: crm_opportunity2phonecall_abcfuelcounits0}:
- date: !eval "(datetime.now() + timedelta(1)).strftime('%Y-%m-%d 11:15:00')"
- name: 'ABC FUEL CO 829264 - 10002 units'
- section_id: crm.section_sales_department
- user_id: base.user_demo
- categ_id: crm.categ_phone1
-- |
- schedule phonecall by opportunity2phoncall wizard.
--
- !python {model: crm.opportunity2phonecall}: |
- self.action_apply(cr, uid, [ref('crm_opportunity2phonecall_abcfuelcounits0')], {'active_ids': [ref("crm_opportunity_abcfuelcounits0")]})
-- |
- I check that phonecall record is created for that opportunity.
--
- !python {model: crm.phonecall}: |
- phone_obj = self.pool.get('crm.phonecall')
- ids = phone_obj.search(cr, uid, [('name', '=', 'ABC FUEL CO 829264 - 10002 units')])
- assert len(ids)
-- |
- I can see phonecall record after click on "Schedule call" wizard.
--
- !record {model: crm.phonecall, id: crm_phonecall_abcfuelcounits0}:
- date: !eval "(datetime.now() + timedelta(1)).strftime('%Y-%m-%d 11:15:00')"
- duration: 3.0
- name: 'ABC FUEL CO 829264 - 10002 units'
- partner_address_id: base.res_partner_address_1
- partner_id: base.res_partner_9
- section_id: crm.section_sales_department
-- |
- I Merge the opportunities.
--
- for that create two opportunities first opportunity 'Test FUEL CO'.
--
- !record {model: crm.lead, id: crm_opportunity_1}:
- email_from: info@balmerinc.be
- name: 'Test FUEL CO 829264 - 10002 units'
- partner_address_id: base.res_partner_address_1
- partner_id: base.res_partner_9
- probability: 1.0
- stage_id: crm.stage_lead1
- categ_id: crm.categ_oppor2
- section_id: crm.section_sales_department
--
- I create the opportunity 'FUEL CO'.
--
- !record {model: crm.lead, id: crm_opportunity_2}:
- email_from: info@balmerinc.be
- name: 'FUEL CO 829264 - 10002 units'
- partner_address_id: base.res_partner_address_1
- partner_id: base.res_partner_9
- probability: 1.0
- stage_id: crm.stage_lead1
- categ_id: crm.categ_oppor2
- section_id: crm.section_sales_department
-- |
- I Merge two Opportunities.
--
- !python {model: crm.merge.opportunity}: |
- op_list = [ref('crm_opportunity_1'),ref('crm_opportunity_2')]
- op_ids=self.pool.get('crm.lead').browse(cr,uid,op_list)
- lead_ids = [ref('crm_lead_newcustomer0')]
- self.merge(cr, uid, op_ids, {'lead_ids': lead_ids})
diff --git a/addons/crm/test/test_crm_opportunity_case2.yml b/addons/crm/test/test_crm_opportunity_case2.yml
deleted file mode 100644
index dc0dbe517f1..00000000000
--- a/addons/crm/test/test_crm_opportunity_case2.yml
+++ /dev/null
@@ -1,45 +0,0 @@
-- |
- I start by creating a new Opportunity. And I select partner for opportunity.
- I can see that after selecting partner his contact and email is automatically filled.
--
- !record {model: crm.lead, id: crm_opportunity_demotestopportunity}:
- email_from: info@balmerinc.be
- name: 'Demo Test Opportunity'
- partner_address_id: base.res_partner_address_1
- partner_id: base.res_partner_9
- probability: 1.0
- categ_id: crm.categ_oppor2
- section_id: crm.section_sales_department
- type: opportunity
--
- I check that the opportunity is in 'New' state.
--
- !assert {model: crm.lead, id: crm_opportunity_demotestopportunity, string: Opportunity in Draft}:
- - state == "draft"
--
- I open opportunity by click on "Open" button.
--
- !python {model: crm.lead}: |
- self.case_open(cr, uid, [ref("crm_opportunity_demotestopportunity")])
--
- I change partner of the opportunity.
--
- !python {model: crm.lead}: |
- self.onchange_partner_id(cr, uid, [ref("crm_opportunity_demotestopportunity")], ref("base.res_partner_agrolait"))
-
--
- I change Contact Detail of the opportunity.
--
- !python {model: crm.lead}: |
- self.onchange_partner_address_id(cr, uid,[ref("crm_opportunity_demotestopportunity")], ref("base.res_partner_address_8invoice"))
-
--
- I change Opportunity to Won State.
--
- !python {model: crm.lead}: |
- self.case_mark_won(cr, uid, [ref("crm_opportunity_demotestopportunity")])
--
- I check that the opportunity is in 'Done' state.
--
- !assert {model: crm.lead, id: crm_opportunity_demotestopportunity, string: Opportunity is Won}:
- - state == "done"
diff --git a/addons/crm/test/test_crm_partner2opportunity.yml b/addons/crm/test/test_crm_partner2opportunity.yml
deleted file mode 100644
index fe026074f4f..00000000000
--- a/addons/crm/test/test_crm_partner2opportunity.yml
+++ /dev/null
@@ -1,25 +0,0 @@
-- |
- I start by creating a new opportunity from partner.
--
- !record {model: crm.partner2opportunity, id: crm_partner2opportunity_id_0}:
- name: test
- planned_revenue: 0.0
- partner_id: base.res_partner_9
- probability: 0.0
--
- I click on "Create Opportunity" button of this wizard.
--
- !python {model: crm.partner2opportunity}: |
- fields = {
- 'name': 'test',
- 'planned_revenue': '0.0',
- 'partner_id': ref('base.res_partner_9'),
- 'probability': '0.0'
- }
- self.default_get(cr, uid, fields, {"active_ids": [ref("crm_partner2opportunity_id_0")]})
-- |
- In order to check the opportunity is created or not, I check type.
--
- !python {model: crm.partner2opportunity}: |
- opportunity = self.make_opportunity(cr, uid, [ref("crm_partner2opportunity_id_0")], {"active_ids": [ref("crm_partner2opportunity_id_0")]})
- assert True
diff --git a/addons/crm/test/test_crm_phonecall.yml b/addons/crm/test/test_crm_phonecall.yml
deleted file mode 100644
index 0754a5b9544..00000000000
--- a/addons/crm/test/test_crm_phonecall.yml
+++ /dev/null
@@ -1,116 +0,0 @@
-- |
- I start by creating a new phonecall.
--
- !record {model: crm.phonecall, id: crm_phonecall_interviewcall0}:
- date: !eval time.strftime('%Y-%m-%d 08:00:00')
- name: Interview call
- duration: 2.0
- section_id: crm.section_sales_department
--
- I select partner by click on "Create a Partner" button.
--
- !record {model: crm.phonecall2partner, id: crm_phonecall2partner_1}:
- action: exist
- partner_id: base.res_partner_9
-
--
- I click on "Continue" button of this wizard and make partner.
--
- !python {model: crm.phonecall2partner}: |
-
- self._select_partner(cr, uid,{"active_ids": [ref("crm_phonecall_interviewcall0")]})
- self.open_create_partner(cr, uid, [ref("crm_phonecall2partner_1")], {"active_ids": [ref("crm_phonecall_interviewcall0")]})
- self.make_partner(cr, uid, [ref("crm_phonecall2partner_1")], {"active_ids": [ref("crm_phonecall_interviewcall0")]})
-
-- |
- As the success of phonecall seems to be a real business opportunity, I will convert
- it to opportunity by clicking on the "Convert to Opportunity" button.
--
- !record {model: crm.phonecall2opportunity, id: crm_phonecall2opportunity_interviewcall0}:
- name: Interview call
- partner_id: base.res_partner_9
- planned_revenue: 0.0
- probability: 0.0
-- |
- I can see that a business opportunity is now assigned to this phonecall
--
- !assert {model: crm.phonecall, id: crm_phonecall_interviewcall0}:
- - opportunity_id != False
--
- I click on "Convert" button of this wizard.
--
- !python {model: crm.phonecall2opportunity}: |
- self.action_apply(cr, uid, [ref("crm_phonecall2opportunity_interviewcall0")], {"active_id": ref("crm_phonecall_interviewcall0")})
-- |
- And I check that the phonecall and the newly created business opportunity is linked
- to same partner.
--
- !python {model: crm.phonecall}: |
- obj_phonecall = self.browse(cr, uid, ref('crm_phonecall_interviewcall0'))
- ids = self.pool.get('crm.lead').search(cr, uid, [('name', '=', obj_phonecall.opportunity_id.name)])
- obj_opp = self.pool.get('crm.lead').browse(cr, uid, ids)[0]
- assert obj_phonecall.partner_id == obj_opp.partner_id
-- |
- I schedule Meeting on this current phonecall by clicking on "schedule
- Meeting".
--
- !python {model: crm.phonecall}: |
- self.action_make_meeting(cr, uid, [ref('crm_phonecall_interviewcall0')])
-
-- |
- I can see that Meeting's calendar view is shown.
- then I click on the date on which I want schedule meeting.
- I fill proper data for that meeting and save it.
--
- !record {model: crm.meeting, id: crm_meeting_interviewcall0}:
- alarm_id: base_calendar.alarm3
- date: !eval "'%s-%s-%s 09:00:00' %(datetime.now().year,datetime.now().month,datetime.now().day)"
- date_deadline: !eval "'%s-%s-%s 17:00:00' %(datetime.now().year,datetime.now().month,datetime.now().day)"
- duration: 8.0
- email_from: info@balmerinc.be
- name: Interview call
- partner_address_id: base.res_partner_address_1
- partner_id: base.res_partner_9
- phonecall_id: 'crm_phonecall_interviewcall0'
- state: open
-
-- |
- In order to schedule other phonecall to the partner
- I click on "schedule other call" button. and plan for other call
- I can see that it will open other phonecall view with some data same as current
- phonecall.
--
- !record {model: crm.phonecall2phonecall, id: crm_phonecall2phonecall_interviewcall0}:
- date: !eval "'%s-%s-%s 19:49:00' %(datetime.now().year,datetime.now().month,datetime.now().day)"
- name: Interview call
- section_id: crm.section_sales_department
- user_id: base.user_root
- action: schedule
- categ_id: crm.categ_phone1
--
- I click on "schedule other call" button. and plan for other call.
--
- !record {model: crm.phonecall2phonecall, id: crm_phonecall2phonecall_interviewcall1}:
- date: !eval "'%s-%s-%s 19:49:00' %(datetime.now().year,datetime.now().month,datetime.now().day)"
- name: Interview call
- section_id: crm.section_sales_department
- user_id: base.user_root
- action: log
- categ_id: crm.categ_phone1
-- |
- I click on "Schedule" button of this wizard.
--
- !python {model: crm.phonecall2phonecall}: |
- fields = {
- 'name': 'Interview call',
- 'section_id': ref('crm.section_sales_department'),
- 'user_id': ref('base.user_root'),
- 'categ_id': ref('crm.categ_phone1')
- }
- self.default_get(cr, uid, fields,{'active_id': ref('crm_phonecall_interviewcall0')})
- self.action_apply(cr, uid, [ref('crm_phonecall2phonecall_interviewcall0')], {'active_id': ref('crm_phonecall_interviewcall0')})
-- |
- I click on "Schedule" button of this wizard with log option.
--
- !python {model: crm.phonecall2phonecall}: |
- self.action_apply(cr, uid, [ref('crm_phonecall2phonecall_interviewcall1')], {'active_id': ref('crm_phonecall_interviewcall0')})
diff --git a/addons/crm/test/test_crm_phonecall_case2.yml b/addons/crm/test/test_crm_phonecall_case2.yml
deleted file mode 100644
index 1b07121183c..00000000000
--- a/addons/crm/test/test_crm_phonecall_case2.yml
+++ /dev/null
@@ -1,26 +0,0 @@
-- |
- I start by creating a new phonecall.
--
- !record {model: crm.phonecall, id: crm_phonecall_dummycall}:
- date: !eval time.strftime('%Y-%m-%d 08:00:00')
- name: Dummy call
- duration: 0.0
- section_id: crm.section_sales_department
- partner_id: base.res_partner_agrolait
- state: open
--
- I change Contact Detail of the Partner.
--
- !python {model: crm.phonecall}: |
- self.onchange_partner_address_id(cr, uid,[ref("crm_phonecall_dummycall")], ref("base.res_partner_address_8invoice"))
-
--
- I setting Phone call to Held (Done).
--
- !python {model: crm.phonecall}: |
- self.case_close(cr, uid, [ref("crm_phonecall_dummycall")])
--
- I check that the hone call is in 'Held' state.
--
- !assert {model: crm.phonecall, id: crm_phonecall_dummycall, string: Phone call Helded}:
- - state == "done"
diff --git a/addons/crm/test/test_crm_recurrent_meeting.yml b/addons/crm/test/test_crm_recurrent_meeting.yml
deleted file mode 100644
index 297ca8d5e4e..00000000000
--- a/addons/crm/test/test_crm_recurrent_meeting.yml
+++ /dev/null
@@ -1,106 +0,0 @@
--
- In order to test recurrent meetings in OpenERP, I create meetings with different recurrency.
--
- I create a customer meeting record with daily recurrency.
--
- !record {model: crm.meeting, id: crm_meeting_pricelistdiscussion0}:
- categ_id: crm.categ_meet1
- count: 0.0
- date: '2011-01-05 00:00:00'
- date_deadline: '2011-01-05 01:00:00'
- day: 0.0
- duration: 1.0
- end_date: '2011-01-12'
- end_type: end_date
- name: Pricelist Discussion
- recurrency: true
- recurrent_uid: 0.0
- rrule: FREQ=DAILY;INTERVAL=1;UNTIL=20110112T235959Z
- rrule_type: daily
- sequence: 0.0
--
- I create another meeting record with weekly recurrency.
--
- !record {model: crm.meeting, id: crm_meeting_changesindesigning0}:
- categ_id: crm.categ_meet2
- count: 15
- date: '2011-01-22 11:05:05'
- date_deadline: '2011-01-22 16:05:05'
- day: 0.0
- duration: 5.0
- email_from: info@opensides.be
- end_type: count
- fr: true
- mo: true
- name: Changes in Designing
- partner_address_id: base.res_partner_address_1
- partner_id: base.res_partner_9
- recurrency: true
- recurrent_uid: 0.0
- rrule: FREQ=WEEKLY;BYDAY=FR,TU,TH,WE,MO;INTERVAL=1;COUNT=15
- rrule_type: weekly
- section_id: crm.section_sales_department
- sequence: 0.0
- th: true
- tu: true
- user_id: base.user_demo
- we: true
--
- I create a meeting record with monthly recurrency.
--
- !record {model: crm.meeting, id: crm_meeting_reviewneeds0}:
- categ_id: crm.categ_meet3
- count: 0.0
- date: '2011-01-20 10:02:02'
- date_deadline: '2011-01-20 16:02:02'
- day: 15
- duration: 6.0
- end_date: '2011-05-31'
- end_type: end_date
- name: Review needs
- partner_address_id: base.res_partner_address_15
- partner_id: base.res_partner_11
- recurrency: true
- recurrent_uid: 0.0
- rrule: FREQ=MONTHLY;INTERVAL=1;UNTIL=20110531T235959Z;BYMONTHDAY=15
- rrule_type: monthly
- section_id: crm.section_sales_department
- sequence: 0.0
- user_id: base.user_demo
--
- I create a record for daily scrum meeting.
--
- !record {model: crm.meeting, id: crm_meeting_scrummeeting0}:
- categ_id: crm.categ_meet2
- count: 0.0
- date: '2011-01-06 00:00:00'
- date_deadline: '2011-01-06 01:00:00'
- day: 0.0
- duration: 1.0
- name: Scrum meeting
- recurrency: true
- recurrent_uid: 0.0
- rrule: FREQ=DAILY;INTERVAL=1
- rrule_type: daily
- sequence: 0.0
--
- I create a meeting record for yearly recurrency.
--
- !record {model: crm.meeting, id: crm_meeting_updatethedata0}:
- categ_id: crm.categ_meet2
- count: 0.0
- date: '2011-01-18 13:12:49'
- date_deadline: '2011-01-19 02:30:49'
- day: 0.0
- duration: 13.300000000000001
- end_date: '2015-01-06'
- end_type: end_date
- name: Update the data
- partner_address_id: base.res_partner_address_7
- partner_id: base.res_partner_4
- recurrency: true
- recurrent_uid: 0.0
- rrule: FREQ=YEARLY;INTERVAL=1;UNTIL=20150106T235959Z
- rrule_type: yearly
- section_id: crm.section_sales_department
- sequence: 0.0
diff --git a/addons/crm/test/test_crm_segmentation.yml b/addons/crm/test/test_crm_segmentation.yml
deleted file mode 100644
index 5563f1ce52f..00000000000
--- a/addons/crm/test/test_crm_segmentation.yml
+++ /dev/null
@@ -1,38 +0,0 @@
-- |
- I will test segmentation which create specific partner categories criteria.
--
- I create a new segmentation record.
--
- !record {model: crm.segmentation, id: crm_segmentation_id_0}:
- categ_id: base.res_partner_category_5
- exclusif: true
- name: segment
- som_interval: 0.0
- sales_purchase_active : True
--
- I start the process.
--
- !python {model: crm.segmentation}: |
- self.process_start(cr, uid, [ref("crm_segmentation_id_0")],context)
--
- I continue the segmentation process.
--
- !python {model: crm.segmentation}: |
- context.update({'start': True})
- self.process_continue(cr, uid, [ref("crm_segmentation_id_0")], context)
--
- I create the segmentation line.
--
- !record {model: crm.segmentation.line, id: crm_segmentation_line_id_0}:
- expr_name: sale
- expr_operator: '>'
- expr_value: 1000.0
- name: Rule1
- operator: or
- segmentation_id: crm_segmentation_id_0
-
--
- I check the Segmentation line record.
--
- !python {model: crm.segmentation.line}: |
- self.test(cr, uid, [ref("crm_segmentation_line_id_0")],partner_id=0)
diff --git a/addons/crm/test/test_crm_stage_changes.yml b/addons/crm/test/test_crm_stage_changes.yml
deleted file mode 100644
index 391a328bffe..00000000000
--- a/addons/crm/test/test_crm_stage_changes.yml
+++ /dev/null
@@ -1,96 +0,0 @@
--
- In order to test the changes on stage of a lead or an opportunity with OpenERP,
- I create some leads and test the stage changes.
--
- I want to change the probability to 0.0 when the opportunity is marked as lost.
- So I set its Change probability automatically true.
--
- !record {model: crm.case.stage, id: crm.stage_lead6}:
- name: Lost
- on_change: true
- probability: 0.0
- section_ids:
- - crm.section_sales_department
- sequence: 0
--
- I create a lead 'Test Lead1'.
--
- !record {model: crm.lead, id: crm_lead_openerppresentation0}:
- categ_id: crm.categ_oppor4
- day_close: 0.0
- day_open: 0.0
- name: Test Lead1
- planned_revenue: 0.0
- probability: 10.0
- section_id: crm.section_sales_department
--
- I open the lead.
--
- !python {model: crm.lead}: |
- self.case_open(cr, uid, [ref('crm_lead_openerppresentation0')])
--
- I assigning stage.
--
- !python {model: crm.lead}: |
- self.onchange_stage_id(cr, uid, [ref('crm_lead_openerppresentation0')], [], context)
--
- I assigning percent.
--
- !python {model: crm.lead}: |
- self.stage_find_percent(cr, uid, 10.0, [])
--
- I find that this lead can be converted to opportunity.
--
- !record {model: crm.lead2opportunity.partner, id: crm_lead2opportunity_partner0}:
- action: 'create'
- name: 'convert'
--
- So I convert the lead to opportunity.
--
- !python {model: crm.lead2opportunity.partner}: |
- self.action_apply(cr, uid, [ref('crm_lead2opportunity_partner0')], context={'active_ids': [ref('crm_lead_openerppresentation0')]})
--
- I check that lead is now converted to opportunity.
--
- !python {model: crm.lead}: |
- lead = self.browse(cr, uid, ref('crm_lead_openerppresentation0'))
- assert lead.type == 'opportunity', 'Lead is not converted to opportunity!'
--
- I mark this opportunity as lost.
--
- !python {model: crm.lead}: |
- self.case_mark_lost(cr, uid, [ref('crm_lead_openerppresentation0')])
--
- I check whether the probability is set according to stage change or not.
--
- !python {model: crm.lead}: |
- opportunity = self.browse(cr, uid, ref('crm_lead_openerppresentation0'))
- assert opportunity.stage_id.id == ref('crm.stage_lead6'), 'Stage is not changed!'
- assert opportunity.probability == 0.0, 'Probability is wrong!'
--
- I create one more opportunity.
--
- !record {model: crm.lead, id: crm_lead_test2}:
- name: Partner Demo
- type: opportunity
- categ_id: crm.categ_oppor3
- planned_revenue: 50000.0
- probability: 100.0
- section_id: crm.section_sales_department
--
- I open this opportunity.
--
- !python {model: crm.lead}: |
- self.case_open(cr, uid, [ref('crm_lead_test2')])
--
- I mark this opportunity as won.
--
- !python {model: crm.lead}: |
- self.case_mark_won(cr, uid, [ref('crm_lead_test2')])
--
- I check whether the stage is changed to 'Won' and probability is 100.0 or not.
--
- !python {model: crm.lead}: |
- opportunity = self.browse(cr, uid, ref('crm_lead_test2'))
- assert opportunity.stage_id.id == ref('crm.stage_lead5'), 'Stage is not changed!'
- assert opportunity.probability == 100.0, 'Probability is wrong!'
diff --git a/addons/crm/test/ui/crm_demo.yml b/addons/crm/test/ui/crm_demo.yml
new file mode 100644
index 00000000000..5ef40838466
--- /dev/null
+++ b/addons/crm/test/ui/crm_demo.yml
@@ -0,0 +1,29 @@
+-
+ I create lead record to call of partner onchange, stage onchange and Mailing opt-in onchange method.
+-
+ !record {model: crm.lead, id: crm_case_shelvehouse}:
+ name: 'Need more info about your pc2'
+ partner_id: base.res_partner_theshelvehouse0
+ type: opportunity
+ stage_id: crm.stage_lead1
+ state: draft
+ optin: True
+-
+ I create lead record to call Mailing opt-out onchange method.
+-
+ !record {model: crm.lead, id: crm_case_mediapoleunits0}:
+ name: 'Need 20 Days of Consultancy'
+ type: opportunity
+ state: draft
+ optout: True
+-
+ I create phonecall record to call partner onchange method.
+-
+ !record {model: crm.phonecall, id: crm_case_phone05}:
+ name: 'Bad time'
+ partner_id: base.res_partner_5
+-
+ I setting next stage "New" for the lead.
+-
+ !python {model: crm.lead}: |
+ self.stage_next(cr, uid, [ref("crm_case_qrecorp0")], context={'stage_type': 'lead'})
diff --git a/addons/crm/test/ui/delete_lead.yml b/addons/crm/test/ui/delete_lead.yml
new file mode 100644
index 00000000000..472b22d0d2d
--- /dev/null
+++ b/addons/crm/test/ui/delete_lead.yml
@@ -0,0 +1,5 @@
+-
+ I Unlink the Lead.
+-
+ !python {model: crm.lead}: |
+ self.unlink(cr, uid, [ref("crm_case_qrecorp0")])
diff --git a/addons/crm/test/ui/duplicate_lead.yml b/addons/crm/test/ui/duplicate_lead.yml
new file mode 100644
index 00000000000..6b349ca350c
--- /dev/null
+++ b/addons/crm/test/ui/duplicate_lead.yml
@@ -0,0 +1,5 @@
+-
+ I make duplicate the Lead.
+-
+ !python {model: crm.lead}: |
+ self.copy(cr, uid, ref("crm_case_qrecorp0"))
diff --git a/addons/crm/wizard/__init__.py b/addons/crm/wizard/__init__.py
index 3ebdceda437..2fc39c51505 100644
--- a/addons/crm/wizard/__init__.py
+++ b/addons/crm/wizard/__init__.py
@@ -24,11 +24,11 @@ import crm_add_note
import crm_lead_to_partner
import crm_lead_to_opportunity
-import crm_opportunity_to_phonecall
import crm_phonecall_to_phonecall
+import crm_opportunity_to_phonecall
import crm_phonecall_to_partner
-import crm_phonecall_to_opportunity
import crm_partner_to_opportunity
+import crm_phonecall_to_opportunity
import crm_merge_opportunities
diff --git a/addons/crm/wizard/crm_lead_to_opportunity.py b/addons/crm/wizard/crm_lead_to_opportunity.py
index 87ab9229d26..52a79e4514c 100644
--- a/addons/crm/wizard/crm_lead_to_opportunity.py
+++ b/addons/crm/wizard/crm_lead_to_opportunity.py
@@ -54,6 +54,8 @@ class crm_lead2opportunity_partner(osv.osv_memory):
email = False
for lead in lead_obj.browse(cr, uid, opportunities, context=context):
partner_id = lead.partner_id and lead.partner_id.id or False
+
+ #TOFIX: use mail.mail_message.to_mail
email = re.findall(r'([^ ,<@]+@[^> ,]+)', lead.email_from or '')
email = map(lambda x: "'" + x + "'", email)
@@ -93,139 +95,51 @@ class crm_lead2opportunity_partner(osv.osv_memory):
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 = {}
lead_obj = self.pool.get('crm.lead')
-
for lead in lead_obj.browse(cr, uid, context.get('active_ids', []), context=context):
if lead.state in ['done', 'cancel']:
raise osv.except_osv(_("Warning !"), _("Closed/Cancelled Leads can not be converted into Opportunity"))
return False
- def _convert(self, cr, uid, ids, lead, partner_id, stage_ids, context=None):
- leads = self.pool.get('crm.lead')
- address_id = False
- if partner_id:
- address_id = self.pool.get('res.partner.address').search(cr, uid,
- [('partner_id', '=', partner_id)],
- order='create_date desc',
- limit=1)
- vals = {
- 'planned_revenue': lead.planned_revenue,
- 'probability': lead.probability,
- 'name': lead.name,
- 'partner_id': partner_id,
- 'user_id': (lead.user_id and lead.user_id.id),
- 'type': 'opportunity',
- 'stage_id': stage_ids and stage_ids[0] or False,
- 'date_action': time.strftime('%Y-%m-%d %H:%M:%S'),
- }
- if partner_id and address_id:
- vals['partner_address_id'] = address_id[0]
- else:
- vals['partner_address_id'] = False
+ def _convert_opportunity(self, cr, uid, ids, vals, context=None):
+ if context is None:
+ context = {}
+ lead = self.pool.get('crm.lead')
+ partner_id = self._create_partner(cr, uid, ids, context=context)
+ lead_ids = vals.get('lead_ids', [])
+ user_ids = vals.get('user_ids', False)
+ team_id = vals.get('section_id', False)
+ return lead.convert_opportunity(cr, uid, lead_ids, partner_id, user_ids, team_id, context=context)
- lead.write(vals, context=context)
- text = _('Converted to opportunity')
- leads.message_append(cr, uid, [lead], text, body_text=text, context=context)
- if lead.partner_id:
- msg_ids = [ x.id for x in lead.message_ids]
- self.pool.get('mail.message').write(cr, uid, msg_ids, {
- 'partner_id': lead.partner_id.id
- }, context=context)
- leads.log(cr, uid, lead.id, _("Lead '%s' has been converted to an opportunity.") % lead.name)
-
- def send_mail_to_salesman(self, cr, uid, lead):
- email_to = lead.user_id and lead.user_id.user_email
- if not email_to:
- return False
- message_pool = self.pool.get('mail.message')
- email_from = lead.section_id and lead.section_id.user_id and lead.section_id.user_id.user_email or email_to
- partner = lead.partner_id and lead.partner_id.name or lead.partner_name
- subject = "lead %s converted into opportunity" % lead.name
- body = "Info \n Id : %s \n Subject: %s \n Partner: %s \n Description : %s " % (lead.id, lead.name, lead.partner_id.name, lead.description)
- return message_pool.schedule_with_attach(cr, uid, email_from, [email_to], subject, body)
+ def _merge_opportunity(self, cr, uid, ids, opportunity_ids, action='merge', context=None):
+ #TOFIX: is it usefully ?
+ if context is None:
+ context = {}
+ merge_opportunity = self.pool.get('crm.merge.opportunity')
+ res = False
+ #If we convert in mass, don't merge if there is no other opportunity but no warning
+ if action == 'merge' and (len(opportunity_ids) > 1 or not context.get('mass_convert') ):
+ self.write(cr, uid, ids, {'opportunity_ids' : [(6,0, [opportunity_ids[0].id])]}, context=context)
+ context.update({'lead_ids' : record_id, "convert" : True})
+ res = merge_opportunity.merge(cr, uid, data.opportunity_ids, context=context)
+ return res
def action_apply(self, cr, uid, ids, context=None):
"""
This converts lead to opportunity and opens Opportunity view
- @param ids: ids of the leads to convert to opportunities
-
- @return : View dictionary opening the Opportunity form view
"""
if not context:
context = {}
-
- record_id = context and context.get('active_ids') or False
- if not record_id:
- return {'type': 'ir.actions.act_window_close'}
-
- leads = self.pool.get('crm.lead')
- models_data = self.pool.get('ir.model.data')
-
- # Get Opportunity views
- result = models_data._get_id(
- cr, uid, 'crm', 'view_crm_case_opportunities_filter')
- opportunity_view_search = models_data.browse(
- cr, uid, result, context=context).res_id
- opportunity_view_form = models_data._get_id(
- cr, uid, 'crm', 'crm_case_form_view_oppor')
- opportunity_view_tree = models_data._get_id(
- cr, uid, 'crm', 'crm_case_tree_view_oppor')
- if opportunity_view_form:
- opportunity_view_form = models_data.browse(
- cr, uid, opportunity_view_form, context=context).res_id
- if opportunity_view_tree:
- opportunity_view_tree = models_data.browse(
- cr, uid, opportunity_view_tree, context=context).res_id
-
- for lead in leads.browse(cr, uid, record_id, context=context):
- if lead.section_id:
- stage_ids = self.pool.get('crm.case.stage').search(cr, uid, [('sequence','>=',1), ('section_ids','=', lead.section_id.id)])
- else:
- stage_ids = self.pool.get('crm.case.stage').search(cr, uid, [('sequence','>=',1)])
-
- data = self.browse(cr, uid, ids[0], context=context)
-
-
- if data.action == 'create':
- partner_ids = []
- partner_ids = self._create_partner(cr, uid, ids, context=context)
- partner_id = partner_ids and partner_ids[0]
- elif data.action == 'exist':
- partner_id = data.partner_id and data.partner_id.id
- else:
- partner_id = False
-
- self._convert(cr, uid, ids, lead, partner_id, stage_ids, context=context)
- self.send_mail_to_salesman(cr, uid, lead)
- #If we convert in mass, don't merge if there is no other opportunity but no warning
- if data.name == 'merge' and (len(data.opportunity_ids) > 1 or not context.get('mass_convert') ):
- merge_obj = self.pool.get('crm.merge.opportunity')
- self.write(cr, uid, ids, {'opportunity_ids' : [(6,0, [data.opportunity_ids[0].id])]}, context=context)
- context.update({'lead_ids' : record_id, "convert" : True})
- return merge_obj.merge(cr, uid, data.opportunity_ids, context=context)
-
- return {
- 'name': _('Opportunity'),
- 'view_type': 'form',
- 'view_mode': 'form,tree',
- 'res_model': 'crm.lead',
- 'domain': [('type', '=', 'opportunity')],
- 'res_id': int(lead.id),
- 'view_id': False,
- 'views': [(opportunity_view_form, 'form'),
- (opportunity_view_tree, 'tree'),
- (False, 'calendar'), (False, 'graph')],
- 'type': 'ir.actions.act_window',
- 'search_view_id': opportunity_view_search
- }
+
+ lead = self.pool.get('crm.lead')
+ lead_ids = context.get('active_ids', [])
+ data = self.browse(cr, uid, ids, context=context)[0]
+ self._convert_opportunity(cr, uid, ids, {'lead_ids': lead_ids}, context=context)
+ self._merge_opportunity(cr, uid, ids, data.opportunity_ids, data.action, context=context)
+ return lead.redirect_opportunity_view(cr, uid, lead_ids[0], context=context)
crm_lead2opportunity_partner()
@@ -240,55 +154,19 @@ class crm_lead2opportunity_mass_convert(osv.osv_memory):
'section_id': fields.many2one('crm.case.section', 'Sales Team'),
}
+ def _convert_opportunity(self, cr, uid, ids, vals, context=None):
+ data = self.browse(cr, uid, ids, context=context)[0]
+ salesteam_id = data.section_id and data.section_id.id or False
+ salesman = []
+ if data.user_ids:
+ salesman = [x.id for x in data.user_ids]
+ vals.update({'user_ids': salesman, 'section_id': salesteam_id})
+ return super(crm_lead2opportunity_mass_convert, self)._convert_opportunity(cr, uid, ids, vals, context=context)
def mass_convert(self, cr, uid, ids, context=None):
- lead_obj = self.pool.get('crm.lead')
- if not context:
- context = {}
-
- active_ids = context.get('active_ids')
- data = self.browse(cr, uid, ids, context=context)[0]
-
- salesteam = data.section_id and data.section_id.id
- if data.user_ids:
- salesmans = map(lambda x : x.id, data.user_ids)
- index = 0
- else:
- salesmans = False
-
- for lead_id in active_ids:
- value = {}
- if salesteam:
- value['section_id'] = salesteam
- if salesmans:
- value['user_id'] = salesmans[index]
- index += 1
- index = index < len(salesmans) and index or 0
- if value:
- lead_obj.write(cr, uid, [lead_id], value, context=context)
-
- context['active_ids'] = [lead_id]
- value = self.default_get(cr, uid, ['partner_id', 'opportunity_ids'], context=context)
- value['opportunity_ids'] = [(6, 0, value['opportunity_ids'])]
- self.write(cr, uid, ids, value, context=context)
-
- self.action_apply(cr, uid, ids, context=context)
-
-
-
- models_data = self.pool.get('ir.model.data')
- result = models_data._get_id(cr, uid, 'crm', 'view_crm_case_opportunities_filter')
- opportunity_view_search = models_data.browse(cr, uid, result, context=context).res_id
-
- return {
- 'name': _('Opportunity'),
- 'view_type': 'form',
- 'view_mode': 'tree,form',
- 'res_model': 'crm.lead',
- 'domain': [('type', '=', 'opportunity'), ('id', 'in', active_ids)],
- 'type': 'ir.actions.act_window',
- 'search_view_id': opportunity_view_search,
- }
-
+ value = self.default_get(cr, uid, ['partner_id', 'opportunity_ids'], context=context)
+ value['opportunity_ids'] = [(6, 0, value['opportunity_ids'])]
+ self.write(cr, uid, ids, value, context=context)
+ return self.action_apply(cr, uid, ids, context=context)
crm_lead2opportunity_mass_convert()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/crm/wizard/crm_lead_to_opportunity_view.xml b/addons/crm/wizard/crm_lead_to_opportunity_view.xml
index 833c04c3575..5f8453768c0 100644
--- a/addons/crm/wizard/crm_lead_to_opportunity_view.xml
+++ b/addons/crm/wizard/crm_lead_to_opportunity_view.xml
@@ -65,6 +65,15 @@
+
+
+ Create a Partner
+ ir.actions.act_window
+ crm.lead2opportunity.partner
+ form
+
+ new
+
,]+)', lead.email_from or '')
- email = map(lambda x: "'" + x + "'", email)
- if email:
- cr.execute("""select partner_id from res_partner_address
- where
- substring(email from '([^ ,<@]+@[^> ,]+)') in (%s)""" % (','.join(email)))
- partner_ids = map(lambda x: x[0], cr.fetchall())
-
- # Find partner name that matches the name of the lead
- if not partner_ids and lead.partner_name:
- partner_ids = partner_obj.search(cr, uid, [('name', '=ilike', lead.partner_name)], context=context)
-
- partner_id = partner_ids and partner_ids[0] or False
- if 'partner_id' in fields:
- res.update({'partner_id': partner_id})
- if 'action' in fields:
- res.update({'action': partner_id and 'exist' or 'create'})
- if 'opportunity_ids' in fields:
- res.update({'opportunity_ids': data})
-
+ if 'partner_id' in fields:
+ res.update({'partner_id': partner_id})
+ if 'action' in fields:
+ res.update({'action': partner_id and 'exist' or 'create'})
+
return res
def open_create_partner(self, cr, uid, ids, context=None):
"""
This function Opens form of create partner.
- @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 Lead to Partner's IDs
- @param context: A standard dictionary for contextual values
-
- @return : Dictionary value for next form.
"""
- if context is None:
- context = {}
-
view_obj = self.pool.get('ir.ui.view')
- view_id = view_obj.search(cr, uid, [('model', '=', 'crm.lead2partner'), \
- ('name', '=', 'crm.lead2partner.view')])
+ view_id = view_obj.search(cr, uid, [('model', '=', self._name), \
+ ('name', '=', self._name+'.view')])
return {
'view_mode': 'form',
'view_type': 'form',
'view_id': view_id or False,
- 'res_model': 'crm.lead2partner',
+ 'res_model': self._name,
'context': context,
'type': 'ir.actions.act_window',
'target': 'new',
- }
-
+ }
def _create_partner(self, cr, uid, ids, context=None):
"""
This function Creates partner based on action.
- @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 Lead to Partner's IDs
- @param context: A standard dictionary for contextual values
-
- @return : Dictionary {}.
"""
if context is None:
context = {}
-
- lead_obj = self.pool.get('crm.lead')
- partner_obj = self.pool.get('res.partner')
- contact_obj = self.pool.get('res.partner.address')
- partner_ids = []
- partner_id = False
- rec_ids = context and context.get('active_ids', [])
-
- for data in self.browse(cr, uid, ids, context=context):
- for lead in lead_obj.browse(cr, uid, rec_ids, context=context):
- if data.action == 'create':
- partner_id = partner_obj.create(cr, uid, {
- 'name': lead.partner_name or lead.contact_name or lead.name,
- 'user_id': lead.user_id.id,
- 'comment': lead.description,
- 'address': []
- })
- contact_obj.create(cr, uid, {
- 'partner_id': partner_id,
- 'name': lead.contact_name,
- 'phone': lead.phone,
- 'mobile': lead.mobile,
- 'email': lead.email_from,
- 'fax': lead.fax,
- 'title': lead.title and lead.title.id or False,
- 'function': lead.function,
- 'street': lead.street,
- 'street2': lead.street2,
- 'zip': lead.zip,
- 'city': lead.city,
- 'country_id': lead.country_id and lead.country_id.id or False,
- 'state_id': lead.state_id and lead.state_id.id or False,
- })
-
- else:
- if data.partner_id:
- partner_id = data.partner_id.id
- self.assign_partner(cr, uid, lead.id, partner_id)
- partner_ids.append(partner_id)
- return partner_ids
-
-
- def assign_partner(self, cr, uid, lead_id, partner_id):
- self.pool.get("crm.lead").write(cr, uid, [lead_id], {'partner_id' : partner_id})
-
+ lead = self.pool.get('crm.lead')
+ lead_ids = context and context.get('active_ids') or []
+ data = self.browse(cr, uid, ids, context=context)[0]
+ partner_id = data.partner_id and data.partner_id.id or False
+ partner_ids = lead.convert_partner(cr, uid, lead_ids, data.action, partner_id, context=context)
+ return partner_ids[lead_ids[0]]
def make_partner(self, cr, uid, ids, context=None):
"""
This function Makes partner based on action.
- @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 Lead to Partner's IDs
- @param context: A standard dictionary for contextual values
-
- @return : Dictionary value for created Partner form.
"""
- if context is None:
- context = {}
-
- partner_ids = self._create_partner(cr, uid, ids, context=context)
- return {'type': 'ir.actions.act_window_close'}
+ partner_id = self._create_partner(cr, uid, ids, context=context)
+ return self.pool.get('res.partner').redirect_partner_form(cr, uid, partner_id, context=context)
crm_lead2partner()
diff --git a/addons/crm/wizard/crm_merge_opportunities.py b/addons/crm/wizard/crm_merge_opportunities.py
index f092d6ad0b6..381bb9871ea 100644
--- a/addons/crm/wizard/crm_merge_opportunities.py
+++ b/addons/crm/wizard/crm_merge_opportunities.py
@@ -26,195 +26,16 @@ class crm_merge_opportunity(osv.osv_memory):
_name = 'crm.merge.opportunity'
_description = 'Merge two Opportunities'
- def _get_first_not_null_id(self, attr, ops, oldest):
- if hasattr(oldest, attr) and getattr(oldest, attr):
- return getattr(oldest, attr).id
-
- for op in ops:
- if hasattr(op, attr) and getattr(op, attr):
- return getattr(op, attr).id
- return False
-
- def _get_first_not_null(self, attr, ops, oldest):
- if hasattr(oldest, attr) and getattr(oldest, attr):
- return getattr(oldest, attr)
-
- for op in ops:
- if hasattr(op, attr) and getattr(op, attr):
- return getattr(op, attr)
- return False
-
- def _concat_all(self, attr, ops):
- return ', '.join([getattr(op, attr) for op in ops if hasattr(op, attr) and getattr(op, attr)])
-
-
- def get_attachments(self, cr, uid, id, context=None):
- proxy = self.pool.get('ir.attachment')
- ids = proxy.search(cr, uid, [('res_model', '=', 'crm.lead'), ('res_id', '=', id)], context=context)
- return proxy.browse(cr, uid, ids, context=context)
-
- def find_oldest(self, cr, uid, op_ids, context=None):
- if not context:
- context = {}
- ids = [op_id.id for op_id in op_ids]
- if context.get('convert'):
- ids = list(set(ids) - set(context.get('lead_ids', False)) )
- lead_obj = self.pool.get('crm.lead')
- op_id = lead_obj.search(cr, uid, [('id', 'in', ids)], order='create_date' , context=context)
- if not op_id:
- return False
- opps = lead_obj.browse(cr, uid, [op_id[0]], context=context)
- return opps[0]
-
- def _update_data(self, op_ids, oldest_opp):
- data = {
- 'partner_id': self._get_first_not_null_id('partner_id', op_ids, oldest_opp), # !!
- 'title': self._get_first_not_null_id('title', op_ids, oldest_opp),
- 'name' : self._get_first_not_null('name', op_ids, oldest_opp), #not lost
- 'categ_id' : self._get_first_not_null_id('categ_id', op_ids, oldest_opp), # !!
- 'channel_id' : self._get_first_not_null_id('channel_id', op_ids, oldest_opp), # !!
- 'city' : self._get_first_not_null('city', op_ids, oldest_opp), # !!
- 'company_id' : self._get_first_not_null_id('company_id', op_ids, oldest_opp), #!!
- 'contact_name' : self._get_first_not_null('contact_name', op_ids, oldest_opp), #not lost
- 'country_id' : self._get_first_not_null_id('country_id', op_ids, oldest_opp), #!!
- 'partner_address_id' : self._get_first_not_null_id('partner_address_id', op_ids, oldest_opp), #!!
- 'type_id' : self._get_first_not_null_id('type_id', op_ids, oldest_opp), #!!
- 'user_id' : self._get_first_not_null_id('user_id', op_ids, oldest_opp), #!!
- 'section_id' : self._get_first_not_null_id('section_id', op_ids, oldest_opp), #!!
- 'state_id' : self._get_first_not_null_id('state_id', op_ids, oldest_opp),
- 'description' : self._concat_all('description', op_ids), #not lost
- 'email' : self._get_first_not_null('email', op_ids, oldest_opp), # !!
- 'fax' : self._get_first_not_null('fax', op_ids, oldest_opp),
- 'mobile' : self._get_first_not_null('mobile', op_ids, oldest_opp),
- 'partner_name' : self._get_first_not_null('partner_name', op_ids, oldest_opp),
- 'phone' : self._get_first_not_null('phone', op_ids, oldest_opp),
- 'probability' : self._get_first_not_null('probability', op_ids, oldest_opp),
- 'planned_revenue' : self._get_first_not_null('planned_revenue', op_ids, oldest_opp),
- 'street' : self._get_first_not_null('street', op_ids, oldest_opp),
- 'street2' : self._get_first_not_null('street2', op_ids, oldest_opp),
- 'zip' : self._get_first_not_null('zip', op_ids, oldest_opp),
- 'state' : 'open',
- 'create_date' : self._get_first_not_null('create_date', op_ids, oldest_opp),
- 'date_action_last': self._get_first_not_null('date_action_last', op_ids, oldest_opp),
- 'date_action_next': self._get_first_not_null('date_action_next', op_ids, oldest_opp),
- 'email_from' : self._get_first_not_null('email_from', op_ids, oldest_opp),
- 'email_cc' : self._get_first_not_null('email_cc', op_ids, oldest_opp),
- 'partner_name' : self._get_first_not_null('partner_name', op_ids, oldest_opp),
- }
- return data
-
- def merge(self, cr, uid, op_ids, context=None):
- """
- :param opp_ids: list of opportunities ids to merge
- """
- opp_obj = self.pool.get('crm.lead')
- message_obj = self.pool.get('mail.message')
-
- lead_ids = context and context.get('lead_ids', []) or []
-
- if len(op_ids) <= 1:
- raise osv.except_osv(_('Warning !'),_('Please select more than one opportunities.'))
-
- opportunities = opp_obj.browse(cr, uid, lead_ids, context=context)
- opportunities_list = list(set(op_ids) - set(opportunities))
- oldest_opp = self.find_oldest(cr, uid, op_ids, context=context)
- if opportunities :
- first_opportunity = opportunities[0]
- tail_opportunities = opportunities_list
- else:
- first_opportunity = opportunities_list[0]
- tail_opportunities = opportunities_list[1:]
- data = self._update_data(op_ids, oldest_opp)
-
- #copy message into the first opportunity + merge attachement
- count = 1
- first_attachments = self.get_attachments(cr, uid, first_opportunity, context=context)
- for opp in tail_opportunities:
- attachments = self.get_attachments(cr, uid, opp, context=context)
- for first in first_attachments:
- for attachment in attachments:
- if attachment.name == first.name:
- values = dict(
- name = "%s (%s)" % (attachment.name, count,),
- res_id = first_opportunity.id,
- )
- attachment.write(values)
- count+=1
-
- for history in opp.message_ids:
- message_obj.write(cr, uid, history.id, {'res_id': first_opportunity.id, 'subject' : _("From %s : %s") % (opp.name, history.subject) }, context=context)
-
- #Notification about loss of information
- details = []
- subject = ['Merged opportunities :']
- for opp in op_ids:
- subject.append(opp.name)
- details.append(_('Merged Opportunity: %s\n Partner: %s\n Stage: %s\n Section: %s\n Salesman: %s\n Category: %s\n Channel: %s\n Company: %s\n Contact name: %s\n Email: %s\n Phone number: %s\n Fax: %s\n Mobile: %s\n State: %s\n Description: %s\n Probability: %s\n Planned revennue: %s\n Country: %s\n City: %s\n Street: %s\n Street 2: %s\n Zip 2: %s') % ( opp.name, opp.partner_id.name or '',
- opp.stage_id.name or '',
- opp.section_id.name or '',
- opp.user_id.name or '',
- opp.categ_id.name or '',
- opp.channel_id.name or '',
- opp.company_id.name or '',
- opp.contact_name or '',
- opp.email_from or '',
- opp.phone or '',
- opp.fax or '',
- opp.mobile or '',
- opp.state_id.name or '',
- opp.description or '',
- opp.probability or '',
- opp.planned_revenue or '',
- opp.country_id.name or '',
- opp.city or '',
- opp.street or '',
- opp.street2 or '',
- opp.zip or '',
- ))
- subject = subject[0] + ", ".join(subject[1:])
- details = "\n\n".join(details)
-
- opp_obj.message_append(cr, uid, [first_opportunity], subject, body_text=details)
- #data.update({'message_ids' : [(6, 0 ,self._concat_o2m('message_ids', op_ids))]})
- opp_obj.write(cr, uid, [first_opportunity.id], data, context=context)
- unlink_ids = map(lambda x: x.id, tail_opportunities)
- opp_obj.unlink(cr, uid, unlink_ids, context=context)
-
- models_data = self.pool.get('ir.model.data')
-
- # Get Opportunity views
- opportunity_view_form = models_data._get_id(
- cr, uid, 'crm', 'crm_case_form_view_oppor')
- opportunity_view_tree = models_data._get_id(
- cr, uid, 'crm', 'crm_case_tree_view_oppor')
- if opportunity_view_form:
- opportunity_view_form = models_data.browse(
- cr, uid, opportunity_view_form, context=context).res_id
- if opportunity_view_tree:
- opportunity_view_tree = models_data.browse(
- cr, uid, opportunity_view_tree, context=context).res_id
-
- return {
- 'name': _('Opportunity'),
- 'view_type': 'form',
- 'view_mode': 'tree, form',
- 'res_model': 'crm.lead',
- 'domain': [('type', '=', 'opportunity')],
- 'res_id': int(first_opportunity.id),
- 'view_id': False,
- 'views': [(opportunity_view_form, 'form'),
- (opportunity_view_tree, 'tree'),
- (False, 'calendar'), (False, 'graph')],
- 'type': 'ir.actions.act_window',
- }
-
-
def action_merge(self, cr, uid, ids, context=None):
- obj_opportunity = self.browse(cr, uid, ids[0], context=context)
- op_ids = obj_opportunity.opportunity_ids
- self.write(cr, uid, ids, {'opportunity_ids' : [(6,0, [op_ids[0].id])]}, context=context)
- context['lead_ids'] = [op_ids[0].id]
- return self.merge(cr, uid, op_ids, context)
+ lead = self.pool.get('crm.lead')
+ record = self.browse(cr, uid, ids[0], context=context)
+ opportunities = record.opportunity_ids
+ #TOFIX: why need to check lead_ids here
+ lead_ids = [opportunities[0].id]
+ self.write(cr, uid, ids, {'opportunity_ids' : [(6,0, lead_ids)]}, context=context)
+ context['lead_ids'] = lead_ids
+ merge_id = lead.merge_opportunity(cr, uid, [x.id for x in opportunities], context=context)
+ return lead.redirect_opportunity_view(cr, uid, merge_id, context=context)
_columns = {
'opportunity_ids' : fields.many2many('crm.lead', 'merge_opportunity_rel', 'merge_id', 'opportunity_id', 'Opportunities', domain=[('type', '=', 'opportunity')]),
@@ -223,13 +44,6 @@ class crm_merge_opportunity(osv.osv_memory):
def default_get(self, cr, uid, fields, context=None):
"""
This function gets default values
- @param self: The object pointer
- @param cr: the current row, from the database cursor,
- @param uid: the current users ID for security checks,
- @param fields: List of fields for default value
- @param context: A standard dictionary for contextual values
-
- @return : default values of fields.
"""
record_ids = context and context.get('active_ids', False) or False
res = super(crm_merge_opportunity, self).default_get(cr, uid, fields, context=context)
diff --git a/addons/crm/wizard/crm_opportunity_to_phonecall.py b/addons/crm/wizard/crm_opportunity_to_phonecall.py
index b0bfbf3b817..630f9a7e889 100644
--- a/addons/crm/wizard/crm_opportunity_to_phonecall.py
+++ b/addons/crm/wizard/crm_opportunity_to_phonecall.py
@@ -21,43 +21,16 @@
from osv import osv, fields
from tools.translate import _
-import pprint
-pp = pprint.PrettyPrinter(indent=4)
import time
class crm_opportunity2phonecall(osv.osv_memory):
"""Converts Opportunity to Phonecall"""
-
+ _inherit = 'crm.phonecall2phonecall'
_name = 'crm.opportunity2phonecall'
_description = 'Opportunity to Phonecall'
- _columns = {
- 'name' : fields.char('Call summary', size=64, required=True, select=1),
- 'user_id' : fields.many2one('res.users', "Assign To"),
- 'contact_name':fields.char('Contact', size=64),
- 'phone':fields.char('Phone', size=64),
- 'partner_id' : fields.many2one('res.partner', "Partner"),
- 'date': fields.datetime('Date'),
- 'section_id': fields.many2one('crm.case.section', 'Sales Team'),
- 'categ_id': fields.many2one('crm.case.categ', 'Category', \
- domain="['|',('section_id','=',False),('section_id','=',section_id),\
- ('object_id.model', '=', 'crm.phonecall')]"),
- 'action': fields.selection([('schedule','Schedule a call'), ('log','Log a call')], 'Action', required=True),
- 'note':fields.text('Note'),
- }
-
def default_get(self, cr, uid, fields, context=None):
- """
- This function gets default values
- @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
-
- @return : default values of fields.
- """
opp_obj = self.pool.get('crm.lead')
categ_id = False
data_obj = self.pool.get('ir.model.data')
@@ -66,8 +39,8 @@ class crm_opportunity2phonecall(osv.osv_memory):
categ_id = data_obj.browse(cr, uid, res_id, context=context).res_id
record_ids = context and context.get('active_ids', []) or []
- res = super(crm_opportunity2phonecall, self).default_get(cr, uid, fields, context=context)
- res.update({'action': 'log', 'date': time.strftime('%Y-%m-%d %H:%M:%S')})
+ res = {}
+ res.update({'action': 'schedule', 'date': time.strftime('%Y-%m-%d %H:%M:%S')})
for opp in opp_obj.browse(cr, uid, record_ids, context=context):
if 'name' in fields:
res.update({'name': opp.name})
@@ -87,84 +60,20 @@ class crm_opportunity2phonecall(osv.osv_memory):
res.update({'phone': opp.phone or (opp.partner_address_id and opp.partner_address_id.phone or False)})
return res
- def action_cancel(self, cr, uid, ids, context=None):
- """
- Closes Opportunity to Phonecall form
- @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 Opportunity to Phonecall's IDs
- @param context: A standard dictionary for contextual values
- """
- return {'type': 'ir.actions.act_window_close'}
-
- def action_apply(self, cr, uid, ids, context=None):
- """
- This converts Opportunity to Phonecall and opens Phonecall view
- @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 Opportunity to Phonecall IDs
- @param context: A standard dictionary for contextual values
-
- @return : Dictionary value for created Opportunity form
- """
+ def action_schedule(self, cr, uid, ids, context=None):
value = {}
- record_ids = context and context.get('active_ids', []) or []
-
- phonecall_obj = self.pool.get('crm.phonecall')
- opp_obj = self.pool.get('crm.lead')
- mod_obj = self.pool.get('ir.model.data')
- result = mod_obj._get_id(cr, uid, 'crm', 'view_crm_case_phonecalls_filter')
- res = mod_obj.read(cr, uid, result, ['res_id'])
-
- data_obj = self.pool.get('ir.model.data')
-
- # Select the view
- id2 = data_obj._get_id(cr, uid, 'crm', 'crm_case_phone_tree_view')
- id3 = data_obj._get_id(cr, uid, 'crm', 'crm_case_phone_form_view')
- if id2:
- id2 = data_obj.browse(cr, uid, id2, context=context).res_id
- if id3:
- id3 = data_obj.browse(cr, uid, id3, context=context).res_id
-
- for this in self.browse(cr, uid, ids, context=context):
- for opp in opp_obj.browse(cr, uid, record_ids, context=context):
- vals = {
- 'name' : opp.name,
- 'case_id' : opp.id,
- 'user_id' : this.user_id and this.user_id.id or False,
- 'categ_id' : this.categ_id.id,
- 'description' : opp.description or False,
- 'date' : this.date,
- 'section_id' : this.section_id.id or False,
- 'partner_id': opp.partner_id and opp.partner_id.id or False,
- 'partner_address_id': opp.partner_address_id and opp.partner_address_id.id or False,
- 'partner_phone' : opp.phone or (opp.partner_address_id and opp.partner_address_id.phone or False),
- 'partner_mobile' : opp.partner_address_id and opp.partner_address_id.mobile or False,
- 'priority': opp.priority,
- 'opportunity_id': opp.id,
- 'date_open': time.strftime('%Y-%m-%d %H:%M:%S')
- }
-
- new_case = phonecall_obj.create(cr, uid, vals, context=context)
-
- if this.action == 'log':
- phonecall_obj.case_close(cr, uid, [new_case])
- return {'type': 'ir.actions.act_window_close'}
-
- value = {
- 'name': _('Phone Call'),
- 'domain': "[('user_id','=',%s),('opportunity_id','=',%s)]" % (uid,opp.id),
- 'view_type': 'form',
- 'view_mode': 'tree,form',
- 'res_model': 'crm.phonecall',
- 'res_id' : new_case,
- 'views': [(id3, 'form'), (id2, 'tree'), (False, 'calendar')],
- 'type': 'ir.actions.act_window',
- 'search_view_id': res['res_id'],
- }
- return value
+ if context is None:
+ context = {}
+ phonecall = self.pool.get('crm.phonecall')
+ opportunity_ids = context and context.get('active_ids') or []
+ opportunity = self.pool.get('crm.lead')
+ data = self.browse(cr, uid, ids, context=context)[0]
+ call_ids = opportunity.schedule_phonecall(cr, uid, opportunity_ids, data.date, data.name, \
+ data.note, data.phone, data.contact_name, data.user_id and data.user_id.id or False, \
+ data.section_id and data.section_id.id or False, \
+ data.categ_id and data.categ_id.id or False, \
+ action=data.action, context=context)
+ return phonecall.redirect_phonecall_view(cr, uid, call_ids[opportunity_ids[0]], context=context)
crm_opportunity2phonecall()
diff --git a/addons/crm/wizard/crm_opportunity_to_phonecall_view.xml b/addons/crm/wizard/crm_opportunity_to_phonecall_view.xml
index 980b93500d2..a12bd92115c 100644
--- a/addons/crm/wizard/crm_opportunity_to_phonecall_view.xml
+++ b/addons/crm/wizard/crm_opportunity_to_phonecall_view.xml
@@ -16,24 +16,19 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
+
+
diff --git a/addons/crm/wizard/crm_partner_to_opportunity.py b/addons/crm/wizard/crm_partner_to_opportunity.py
index 4d24bd5b78f..6322d0341c1 100644
--- a/addons/crm/wizard/crm_partner_to_opportunity.py
+++ b/addons/crm/wizard/crm_partner_to_opportunity.py
@@ -35,16 +35,15 @@ class crm_partner2opportunity(osv.osv_memory):
'partner_id': fields.many2one('res.partner', 'Partner'),
}
+ def action_cancel(self, cr, uid, ids, context=None):
+ """
+ Closes Partner 2 Opportunity
+ """
+ return {'type':'ir.actions.act_window_close'}
+
def default_get(self, cr, uid, fields, context=None):
"""
This function gets default values
- @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
-
- @return : default values of fields.
"""
partner_obj = self.pool.get('res.partner')
data = context and context.get('active_ids', []) or []
@@ -58,56 +57,17 @@ class crm_partner2opportunity(osv.osv_memory):
return res
def make_opportunity(self, cr, uid, ids, context=None):
- """
- @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 context: A standard dictionary for contextual values
- """
-
- data = context and context.get('active_ids', []) or []
- make_opportunity = self.pool.get('crm.partner2opportunity')
- data_obj = self.pool.get('ir.model.data')
- part_obj = self.pool.get('res.partner')
- categ_obj = self.pool.get('crm.case.categ')
- case_obj = self.pool.get('crm.lead')
-
- for make_opportunity_obj in make_opportunity.browse(cr, uid, ids, context=context):
- result = data_obj._get_id(cr, uid, 'crm', 'view_crm_case_opportunities_filter')
- res = data_obj.read(cr, uid, result, ['res_id'])
-
- id2 = data_obj._get_id(cr, uid, 'crm', 'crm_case_form_view_oppor')
- id3 = data_obj._get_id(cr, uid, 'crm', 'crm_case_tree_view_oppor')
- if id2:
- id2 = data_obj.browse(cr, uid, id2, context=context).res_id
- if id3:
- id3 = data_obj.browse(cr, uid, id3, context=context).res_id
-
- address = part_obj.address_get(cr, uid, data)
- categ_ids = categ_obj.search(cr, uid, [('object_id.model','=','crm.lead')])
-
- opp_id = case_obj.create(cr, uid, {
- 'name' : make_opportunity_obj.name,
- 'planned_revenue' : make_opportunity_obj.planned_revenue,
- 'probability' : make_opportunity_obj.probability,
- 'partner_id' : make_opportunity_obj.partner_id.id,
- 'partner_address_id' : address['default'],
- 'categ_id' : categ_ids and categ_ids[0] or '',
- 'state' :'draft',
- 'type': 'opportunity'
- })
- value = {
- 'name' : _('Opportunity'),
- 'view_type' : 'form',
- 'view_mode' : 'form,tree',
- 'res_model' : 'crm.lead',
- 'res_id' : opp_id,
- 'view_id' : False,
- 'views' : [(id2, 'form'), (id3, 'tree'), (False, 'calendar'), (False, 'graph')],
- 'type' : 'ir.actions.act_window',
- 'search_view_id' : res['res_id']
- }
- return value
+ partner_ids = context and context.get('active_ids', []) or []
+ partner = self.pool.get('res.partner')
+ lead = self.pool.get('crm.lead')
+ data = self.browse(cr, uid, ids, context=context)[0]
+ opportunity_ids = partner.make_opportunity(cr, uid, partner_ids,
+ data.name,
+ data.planned_revenue,
+ data.probability,
+ )
+ opportunity_id = opportunity_ids[partner_ids[0]]
+ return lead.redirect_opportunity_view(cr, uid, opportunity_id, context=context)
crm_partner2opportunity()
diff --git a/addons/crm/wizard/crm_partner_to_opportunity_view.xml b/addons/crm/wizard/crm_partner_to_opportunity_view.xml
index 1111bbbbc50..f75f3d5b90e 100644
--- a/addons/crm/wizard/crm_partner_to_opportunity_view.xml
+++ b/addons/crm/wizard/crm_partner_to_opportunity_view.xml
@@ -16,7 +16,7 @@
-
+
diff --git a/addons/crm/wizard/crm_phonecall_to_opportunity.py b/addons/crm/wizard/crm_phonecall_to_opportunity.py
index ffab1867ebb..7305cbd8b5f 100644
--- a/addons/crm/wizard/crm_phonecall_to_opportunity.py
+++ b/addons/crm/wizard/crm_phonecall_to_opportunity.py
@@ -26,97 +26,31 @@ class crm_phonecall2opportunity(osv.osv_memory):
""" Converts Phonecall to Opportunity"""
_name = 'crm.phonecall2opportunity'
+ _inherit = 'crm.partner2opportunity'
_description = 'Phonecall To Opportunity'
- def action_cancel(self, cr, uid, ids, context=None):
- """
- Closes Phonecall to Opportunity form
- """
-
- return {'type':'ir.actions.act_window_close'}
-
-
- def action_apply(self, cr, uid, ids, context=None):
+ def make_opportunity(self, cr, uid, ids, context=None):
"""
This converts Phonecall to Opportunity and opens Phonecall view
"""
- record_id = context and context.get('active_id', False) or False
- if record_id:
- opp_obj = self.pool.get('crm.lead')
- phonecall_obj = self.pool.get('crm.phonecall')
- case = phonecall_obj.browse(cr, uid, record_id, context=context)
- data_obj = self.pool.get('ir.model.data')
- result = data_obj._get_id(cr, uid, 'crm', 'view_crm_case_opportunities_filter')
- res = data_obj.read(cr, uid, result, ['res_id'])
- id2 = data_obj._get_id(cr, uid, 'crm', 'crm_case_form_view_oppor')
- id3 = data_obj._get_id(cr, uid, 'crm', 'crm_case_tree_view_oppor')
- if id2:
- id2 = data_obj.browse(cr, uid, id2, context=context).res_id
- if id3:
- id3 = data_obj.browse(cr, uid, id3, context=context).res_id
-
- for this in self.browse(cr, uid, ids, context=context):
- address = None
- if this.partner_id:
- address_id = self.pool.get('res.partner').address_get(cr, uid, [this.partner_id.id])
- if address_id['default']:
- address = self.pool.get('res.partner.address').browse(cr, uid, address_id['default'], context=context)
- new_opportunity_id = opp_obj.create(cr, uid, {
- 'name': this.name,
- 'planned_revenue': this.planned_revenue,
- 'probability': this.probability,
- 'partner_id': this.partner_id and this.partner_id.id or False,
- 'partner_address_id': address and address.id,
- 'phone': address and address.phone,
- 'mobile': address and address.mobile,
- 'section_id': case.section_id and case.section_id.id or False,
- 'description': case.description or False,
- 'phonecall_id': case.id,
- 'priority': case.priority,
- 'type': 'opportunity',
- 'phone': case.partner_phone or False,
- })
- vals = {
- 'partner_id': this.partner_id.id,
- 'opportunity_id' : new_opportunity_id,
- }
- phonecall_obj.write(cr, uid, [case.id], vals)
- phonecall_obj.case_close(cr, uid, [case.id])
- opp_obj.case_open(cr, uid, [new_opportunity_id])
-
- value = {
- 'name': _('Opportunity'),
- 'view_type': 'form',
- 'view_mode': 'form,tree',
- 'res_model': 'crm.lead',
- 'res_id': int(new_opportunity_id),
- 'view_id': False,
- 'views': [(id2, 'form'), (id3, 'tree'), (False, 'calendar'), (False, 'graph')],
- 'type': 'ir.actions.act_window',
- 'search_view_id': res['res_id']
- }
- return value
-
- _columns = {
- 'name' : fields.char('Opportunity Summary', size=64, required=True, select=1),
- 'probability': fields.float('Success Probability'),
- 'planned_revenue': fields.float('Expected Revenue'),
- 'partner_id': fields.many2one('res.partner', 'Partner'),
- }
+ if not len(ids):
+ return False
+ call_ids = context and context.get('active_ids', False) or False
+ this = self.browse(cr, uid, ids[0], context=context)
+ if not call_ids:
+ return {}
+ opportunity = self.pool.get('crm.lead')
+ phonecall = self.pool.get('crm.phonecall')
+ opportunity_ids = phonecall.convert_opportunity(cr, uid, call_ids, this.name, this.partner_id and this.partner_id.id or False, \
+ this.planned_revenue, this.probability, context=context)
+ return opportunity.redirect_opportunity_view(cr, uid, opportunity_ids[call_ids[0]], context=context)
def default_get(self, cr, uid, fields, context=None):
"""
This function gets default values
- @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
-
- @return : default values of fields.
"""
record_id = context and context.get('active_id', False) or False
- res = super(crm_phonecall2opportunity, self).default_get(cr, uid, fields, context=context)
+ res = {}
if record_id:
phonecall = self.pool.get('crm.phonecall').browse(cr, uid, record_id, context=context)
diff --git a/addons/crm/wizard/crm_phonecall_to_opportunity_view.xml b/addons/crm/wizard/crm_phonecall_to_opportunity_view.xml
index ea024831b54..d3c59f89433 100644
--- a/addons/crm/wizard/crm_phonecall_to_opportunity_view.xml
+++ b/addons/crm/wizard/crm_phonecall_to_opportunity_view.xml
@@ -19,7 +19,7 @@
-
+
diff --git a/addons/crm/wizard/crm_phonecall_to_partner.py b/addons/crm/wizard/crm_phonecall_to_partner.py
index 38e673108e4..0fa077bbf42 100644
--- a/addons/crm/wizard/crm_phonecall_to_partner.py
+++ b/addons/crm/wizard/crm_phonecall_to_partner.py
@@ -26,42 +26,12 @@ class crm_phonecall2partner(osv.osv_memory):
""" Converts phonecall to partner """
_name = 'crm.phonecall2partner'
+ _inherit = 'crm.lead2partner'
_description = 'Phonecall to Partner'
-
- _columns = {
- 'action': fields.selection([('exist', 'Link to an existing partner'), \
- ('create', 'Create a new partner')], \
- 'Action', required=True),
- 'partner_id': fields.many2one('res.partner', 'Partner')
- }
-
- 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
-
- """
- phonecall_obj = self.pool.get('crm.phonecall')
- rec_ids = context and context.get('active_ids', [])
- for phonecall in phonecall_obj.browse(cr, uid, rec_ids, context=context):
- if phonecall.partner_id:
- raise osv.except_osv(_('Warning !'),
- _('A partner is already defined on this phonecall.'))
-
+
def _select_partner(self, cr, uid, context=None):
"""
This function Searches for Partner from selected phonecall.
- @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
-
- @return : Partner id if any for selected phonecall.
"""
if context is None:
context = {}
@@ -75,7 +45,7 @@ class crm_phonecall2partner(osv.osv_memory):
for phonecall in phonecall_obj.browse(cr, uid, rec_ids, context=context):
partner_ids = partner_obj.search(cr, uid, [('name', '=', phonecall.name or phonecall.name)])
if not partner_ids and phonecall.email_from:
- address_ids = contact_obj.search(cr, uid, [('email', '=', phonecall.email_from)])
+ address_ids = contact_obj.search(cr, uid, ['|', ('phone', '=', phonecall.partner_phone), ('mobile','=',phonecall.partner_mobile)])
if address_ids:
addresses = contact_obj.browse(cr, uid, address_ids)
partner_ids = addresses and [addresses[0].partner_id.id] or False
@@ -83,117 +53,20 @@ class crm_phonecall2partner(osv.osv_memory):
partner_id = partner_ids and partner_ids[0] or False
return partner_id
- _defaults = {
- 'action': lambda *a:'exist',
- 'partner_id': _select_partner
- }
-
- def open_create_partner(self, cr, uid, ids, context=None):
- """
- This function Opens form of create partner.
- @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 Phonecall to Partner's IDs
- @param context: A standard dictionary for contextual values
-
- @return : Dictionary value for next form.
- """
-
- view_obj = self.pool.get('ir.ui.view')
- view_id = view_obj.search(cr, uid, [('model', '=', 'crm.phonecall2partner'), \
- ('name', '=', 'crm.phonecall2partner.view')])
- return {
- 'view_mode': 'form',
- 'view_type': 'form',
- 'view_id': view_id or False,
- 'res_model': 'crm.phonecall2partner',
- 'context': context,
- 'type': 'ir.actions.act_window',
- 'target': 'new',
- }
-
def _create_partner(self, cr, uid, ids, context=None):
"""
This function Creates partner based on action.
- @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 Phonecall to Partner's IDs
- @param context: A standard dictionary for contextual values
-
- @return : Dictionary {}.
"""
if context is None:
context = {}
+ phonecall = self.pool.get('crm.phonecall')
- phonecall_obj = self.pool.get('crm.phonecall')
- partner_obj = self.pool.get('res.partner')
- contact_obj = self.pool.get('res.partner.address')
- partner_ids = []
- contact_id = False
-
- rec_ids = context and context.get('active_ids', [])
-
- for data in self.browse(cr, uid, ids, context=context):
- for phonecall in phonecall_obj.browse(cr, uid, rec_ids, context=context):
- if data.action == 'create':
- partner_id = partner_obj.create(cr, uid, {
- 'name': phonecall.name or phonecall.name,
- 'user_id': phonecall.user_id.id,
- 'comment': phonecall.description,
- })
- contact_id = contact_obj.create(cr, uid, {
- 'partner_id': partner_id,
- 'name': phonecall.name,
- 'phone': phonecall.partner_phone,
- })
-
- else:
- if data.partner_id:
- partner_id = data.partner_id.id
- contact_id = partner_obj.address_get(cr, uid, [partner_id])['default']
-
- partner_ids.append(partner_id)
-
- vals = {}
- if partner_id:
- vals.update({'partner_id': partner_id})
- if contact_id:
- vals.update({'partner_address_id': contact_id})
- phonecall_obj.write(cr, uid, [phonecall.id], vals)
- return partner_ids
-
- def make_partner(self, cr, uid, ids, context=None):
- """
- This function Makes partner based on action.
- @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 Phonecall to Partner's IDs
- @param context: A standard dictionary for contextual values
-
- @return : Dictionary value for created Partner form.
- """
-
- partner_ids = self._create_partner(cr, uid, ids, context=context)
- mod_obj = self.pool.get('ir.model.data')
- result = mod_obj._get_id(cr, uid, 'base', 'view_res_partner_filter')
- res = mod_obj.read(cr, uid, result, ['res_id'])
-
- value = {
- 'domain': "[]",
- 'view_type': 'form',
- 'view_mode': 'form,tree',
- 'res_model': 'res.partner',
- 'res_id': partner_ids and int(partner_ids[0]) or False,
- 'view_id': False,
- 'context': context,
- 'type': 'ir.actions.act_window',
- 'search_view_id': res['res_id']
- }
- return value
+ data = self.browse(cr, uid, ids, context=context)[0]
+ call_ids = context and context.get('active_ids') or []
+ partner_id = data.partner_id and data.partner_id.id or False
+ partner_ids = phonecall.convert_partner(cr, uid, call_ids, data.action, partner_id, context=context)
+ return partner_ids[call_ids[0]]
crm_phonecall2partner()
diff --git a/addons/crm/wizard/crm_phonecall_to_phonecall.py b/addons/crm/wizard/crm_phonecall_to_phonecall.py
index 2872acad4eb..d68591ab0b7 100644
--- a/addons/crm/wizard/crm_phonecall_to_phonecall.py
+++ b/addons/crm/wizard/crm_phonecall_to_phonecall.py
@@ -25,108 +25,50 @@ from tools.translate import _
import time
class crm_phonecall2phonecall(osv.osv_memory):
- """ Converts Phonecall to Phonecall"""
-
_name = 'crm.phonecall2phonecall'
_description = 'Phonecall To Phonecall'
+ _columns = {
+ 'name' : fields.char('Call summary', size=64, required=True, select=1),
+ 'user_id' : fields.many2one('res.users',"Assign To"),
+ 'contact_name':fields.char('Contact', size=64),
+ 'phone':fields.char('Phone', size=64),
+ 'categ_id': fields.many2one('crm.case.categ', 'Category', \
+ domain="['|',('section_id','=',False),('section_id','=',section_id),\
+ ('object_id.model', '=', 'crm.phonecall')]"),
+ 'date': fields.datetime('Date'),
+ 'section_id':fields.many2one('crm.case.section','Sales Team'),
+ 'action': fields.selection([('schedule','Schedule a call'), ('log','Log a call')], 'Action', required=True),
+ 'partner_id' : fields.many2one('res.partner', "Partner"),
+ 'note':fields.text('Note')
+ }
+
+
def action_cancel(self, cr, uid, ids, context=None):
"""
Closes Phonecall to Phonecall form
- @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 Phonecall to Phonecall's IDs
- @param context: A standard dictionary for contextual values
"""
return {'type':'ir.actions.act_window_close'}
- def action_apply(self, cr, uid, ids, context=None):
- """
- This converts Phonecall to Phonecall and opens Phonecall view
- @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 Phonecall to Phonecall IDs
- @param context: A standard dictionary for contextual values
-
- @return : Dictionary value for created Opportunity form
- """
- res = {}
- record_id = context and context.get('active_id', False) or False
- phonecall_obj = self.pool.get('crm.phonecall')
-
- if record_id:
- data_obj = self.pool.get('ir.model.data')
-
- # Get Phonecall views
- result = data_obj._get_id(cr, uid, 'crm', 'view_crm_case_phonecalls_filter')
- res = data_obj.read(cr, uid, result, ['res_id'])
- id2 = data_obj._get_id(cr, uid, 'crm', 'crm_case_phone_form_view')
- id3 = data_obj._get_id(cr, uid, 'crm', 'crm_case_phone_tree_view')
- if id2:
- id2 = data_obj.browse(cr, uid, id2, context=context).res_id
- if id3:
- id3 = data_obj.browse(cr, uid, id3, context=context).res_id
-
- phonecall = phonecall_obj.browse(cr, uid, record_id, context=context)
-
- for this in self.browse(cr, uid, ids, context=context):
- values = {
- 'name': this.name,
- 'user_id': this.user_id and this.user_id.id,
- 'categ_id': this.categ_id.id,
- 'section_id': this.section_id.id or (phonecall.section_id and phonecall.section_id.id),
- 'description': phonecall.description or '',
- 'partner_id': phonecall.partner_id.id,
- 'partner_address_id': phonecall.partner_address_id.id,
- 'partner_mobile': phonecall.partner_mobile or False,
- 'priority': phonecall.priority,
- 'partner_phone': phonecall.partner_phone or False,
- 'date': this.date
- }
- phonecall_id = phonecall_obj.create(cr, uid, values, context=context)
- if this.action == 'schedule':
- phonecall_obj.case_open(cr, uid, [phonecall_id])
- elif this.action == 'log':
- phonecall_obj.case_close(cr, uid, [phonecall_id])
-
- res = {
- 'name': _('Phone Call'),
- 'view_type': 'form',
- 'view_mode': 'form',
- 'res_model': 'crm.phonecall',
- 'view_id': False,
- 'views': [(id2, 'form'), (id3, 'tree'), (False, 'calendar'), (False, 'graph')],
- 'type': 'ir.actions.act_window',
- 'res_id': phonecall_id,
- 'domain': [('id', '=', phonecall_id)],
- 'search_view_id': res['res_id']
- }
- return res
-
- _columns = {
- 'name' : fields.char('Call summary', size=64, required=True, select=1),
- 'user_id' : fields.many2one('res.users',"Assign To"),
- 'categ_id': fields.many2one('crm.case.categ', 'Category', \
- domain="['|',('section_id','=',False),('section_id','=',section_id),\
- ('object_id.model', '=', 'crm.phonecall')]"),
- 'date': fields.datetime('Date'),
- 'section_id':fields.many2one('crm.case.section','Sales Team'),
- 'action': fields.selection([('schedule','Schedule a call'), ('log','Log a call')], 'Action', required=True),
- 'partner_id' : fields.many2one('res.partner', "Partner"),
- }
+ def action_schedule(self, cr, uid, ids, context=None):
+ value = {}
+ if context is None:
+ context = {}
+ phonecall = self.pool.get('crm.phonecall')
+ phonecall_ids = context and context.get('active_ids') or []
+ for this in self.browse(cr, uid, ids, context=context):
+ phocall_ids = phonecall.schedule_another_phonecall(cr, uid, phonecall_ids, this.date, this.name, \
+ this.user_id and this.user_id.id or False, \
+ this.section_id and this.section_id.id or False, \
+ this.categ_id and this.categ_id.id or False, \
+ action=this.action, context=context)
+ return phonecall.redirect_phonecall_view(cr, uid, phocall_ids[phonecall_ids[0]], context=context)
+
def default_get(self, cr, uid, fields, context=None):
"""
This function gets default values
- @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
-
- @return : default values of fields.
+
"""
res = super(crm_phonecall2phonecall, self).default_get(cr, uid, fields, context=context)
record_id = context and context.get('active_id', False) or False
diff --git a/addons/crm/wizard/crm_phonecall_to_phonecall_view.xml b/addons/crm/wizard/crm_phonecall_to_phonecall_view.xml
index 794634da4f1..572fbb8b9a1 100644
--- a/addons/crm/wizard/crm_phonecall_to_phonecall_view.xml
+++ b/addons/crm/wizard/crm_phonecall_to_phonecall_view.xml
@@ -22,8 +22,8 @@
-
-
+
+
diff --git a/addons/crm_caldav/__openerp__.py b/addons/crm_caldav/__openerp__.py
index 8f1812862c5..0cbf6e172cd 100644
--- a/addons/crm_caldav/__openerp__.py
+++ b/addons/crm_caldav/__openerp__.py
@@ -22,7 +22,7 @@
{
- 'name': 'Calendar Synchronizing',
+ 'name': 'Meetings Synchronization',
'version': '1.1',
'category': 'Customer Relationship Management',
'complexity': "normal",
diff --git a/addons/crm_caldav/i18n/ar.po b/addons/crm_caldav/i18n/ar.po
new file mode 100644
index 00000000000..7865b4a8797
--- /dev/null
+++ b/addons/crm_caldav/i18n/ar.po
@@ -0,0 +1,46 @@
+# Arabic 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:15+0000\n"
+"PO-Revision-Date: 2011-12-05 08:17+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Arabic \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2011-12-06 05:28+0000\n"
+"X-Generator: Launchpad (build 14435)\n"
+
+#. module: crm_caldav
+#: model:ir.actions.act_window,name:crm_caldav.action_caldav_browse
+msgid "Caldav Browse"
+msgstr ""
+
+#. module: crm_caldav
+#: model:ir.model,name:crm_caldav.model_crm_meeting
+msgid "Meeting"
+msgstr "إجتماعات"
+
+#. module: crm_caldav
+#: model:ir.module.module,shortdesc:crm_caldav.module_meta_information
+msgid "Extended Module to Add CalDav feature on Meeting"
+msgstr ""
+
+#. module: crm_caldav
+#: model:ir.module.module,description:crm_caldav.module_meta_information
+msgid ""
+"\n"
+" New Features in Meeting:\n"
+" * Share meeting with other calendar clients like sunbird\n"
+msgstr ""
+
+#. module: crm_caldav
+#: model:ir.ui.menu,name:crm_caldav.menu_caldav_browse
+msgid "Synchronyze this calendar"
+msgstr ""
diff --git a/addons/crm_claim/__openerp__.py b/addons/crm_claim/__openerp__.py
index ae493c5dac2..7949ea48376 100644
--- a/addons/crm_claim/__openerp__.py
+++ b/addons/crm_claim/__openerp__.py
@@ -21,7 +21,7 @@
{
- 'name': 'Claims',
+ 'name': 'Claims Management',
'version': '1.0',
'category': 'Customer Relationship Management',
'complexity': "easy",
@@ -48,7 +48,9 @@ automatically new claims based on incoming emails.
'demo_xml': [
'crm_claim_demo.xml',
],
- 'test': ['test/test_crm_claim.yml'],
+ 'test': ['test/process/claim.yml',
+ 'test/ui/claim_demo.yml'
+ ],
'installable': True,
'active': False,
'certificate' : '00612027414703404749',
diff --git a/addons/crm_claim/crm_claim.py b/addons/crm_claim/crm_claim.py
index b5cd2009698..7875d6a2f1a 100644
--- a/addons/crm_claim/crm_claim.py
+++ b/addons/crm_claim/crm_claim.py
@@ -46,6 +46,7 @@ class crm_claim(crm.crm_case, osv.osv):
_columns = {
'id': fields.integer('ID', readonly=True),
'name': fields.char('Claim Subject', size=128, required=True),
+ 'active': fields.boolean('Active'),
'action_next': fields.char('Next Action', size=200),
'date_action_next': fields.datetime('Next Action Date'),
'description': fields.text('Description'),
@@ -95,6 +96,7 @@ class crm_claim(crm.crm_case, osv.osv):
'date': lambda *a: time.strftime('%Y-%m-%d %H:%M:%S'),
'company_id': lambda s, cr, uid, c: s.pool.get('res.company')._company_default_get(cr, uid, 'crm.case', context=c),
'priority': lambda *a: crm.AVAILABLE_PRIORITIES[2][0],
+ 'active': lambda *a: 1
}
def onchange_partner_id(self, cr, uid, ids, part, email=False):
@@ -129,8 +131,6 @@ class crm_claim(crm.crm_case, osv.osv):
if l.state == 'draft':
message = _("The claim '%s' has been opened.") % l.name
self.log(cr, uid, l.id, message)
- value = {'date_open': time.strftime('%Y-%m-%d %H:%M:%S')}
- self.write(cr, uid, [l.id], value)
stage_id = self.stage_find(cr, uid, l.section_id.id or False, [('sequence','>',0)])
if stage_id:
self.stage_set(cr, uid, [l.id], stage_id)
diff --git a/addons/crm_claim/crm_claim_demo.xml b/addons/crm_claim/crm_claim_demo.xml
index 0f8488628b5..8279e04eb6f 100644
--- a/addons/crm_claim/crm_claim_demo.xml
+++ b/addons/crm_claim/crm_claim_demo.xml
@@ -15,8 +15,6 @@
-
-
@@ -31,8 +29,6 @@
-
-
@@ -47,8 +43,6 @@
-
-
@@ -63,8 +57,6 @@
-
-
@@ -79,8 +71,6 @@
-
-
@@ -88,14 +78,12 @@
-
-
@@ -104,14 +92,12 @@
-
-
diff --git a/addons/crm_claim/crm_claim_view.xml b/addons/crm_claim/crm_claim_view.xml
index a2ad01e0651..08237d06094 100644
--- a/addons/crm_claim/crm_claim_view.xml
+++ b/addons/crm_claim/crm_claim_view.xml
@@ -14,7 +14,7 @@
form
[('object_id.model', '=', 'crm.claim')]
- {'object_id':'crm.claim'}
+
Create claim categories to better manage and classify your claims. Some example of claims can be: preventive action, corrective action.
@@ -151,7 +151,7 @@
-
+
@@ -161,32 +161,6 @@
context="{'mail.compose.message.mode':'reply'}"
icon="terp-mail-replied" type="action" />
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+Date: Tue, 25 Oct 2011 13:41:17 +0530
+From: Mr. John Right
+User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.14) Gecko/20110223 Lightning/1.0b2 Thunderbird/3.1.8
+MIME-Version: 1.0
+To: claims@my.com
+Subject: demande de =?ISO-8859-1?Q?r=E8glement_de_votre_produit=2E?=
+Content-Type: text/plain; charset=ISO-8859-1; format=flowed
+Content-Transfer-Encoding: 8bit
+
+J'ai acheté votre produit il ya quelques jours. maintenant certains
+problèmes sont survenus sur votre produit.
+je demande donc à convertir cette demande que la réclamation et de
+résoudre les problèmes le plus tôt possible.
+
+Merci
+
diff --git a/addons/crm_claim/test/process/claim.yml b/addons/crm_claim/test/process/claim.yml
new file mode 100644
index 00000000000..e20436cd3c6
--- /dev/null
+++ b/addons/crm_claim/test/process/claim.yml
@@ -0,0 +1,46 @@
+-
+ Customer requests a claim after the sale of our product. He sends claim request by email.
+-
+ Mail script will be fetched him request from mail server. so I process that mail after read EML file
+-
+ !python {model: mail.thread}: |
+ import addons
+ request_file = open(addons.get_module_resource('crm_claim','test', 'customer_claim.eml'),'rb')
+ request_message = request_file.read()
+ self.message_process(cr, uid, 'crm.claim', request_message)
+-
+ After getting the mail, I check details of new claim of that customer.
+-
+ !python {model: crm.claim}: |
+ from openerp import tools
+ claim_ids = self.search(cr, uid, [('email_from','=', 'Mr. John Right ')])
+ assert claim_ids and len(claim_ids), "Claim is not created after getting request"
+ claim = self.browse(cr, uid, claim_ids[0], context=context)
+ assert claim.name == tools.ustr("demande derèglement de votre produit."), "Subject does not match"
+-
+ I open customer claim.
+-
+ !python {model: crm.claim}: |
+ claim_ids = self.search(cr, uid, [('email_from','=', 'Mr. John Right ')])
+ self.case_open(cr, uid, claim_ids)
+-
+ I check Claim Details after open.
+-
+ !python {model: crm.claim}: |
+ claim_ids = self.search(cr, uid, [('email_from','=', 'Mr. John Right ')])
+ claim = self.browse(cr, uid, claim_ids[0])
+ assert claim.state == "open", "Claim is not in Open state"
+ assert claim.stage_id.id == ref("crm.stage_lead1"), "Claim is not in New stage"
+-
+ After complete all service from our side, I close this claim.
+-
+ !python {model: crm.claim}: |
+ claim_ids = self.search(cr, uid, [('email_from','=', 'Mr. John Right ')])
+ self.case_close(cr, uid, claim_ids)
+-
+ I check Claim details after closed.
+-
+ !python {model: crm.claim}: |
+ claim_ids = self.search(cr, uid, [('email_from','=', 'Mr. John Right ')])
+ claim = self.browse(cr, uid, claim_ids[0])
+ assert claim.state == "done", "Claim is not in close state"
diff --git a/addons/crm_claim/test/test_crm_claim.yml b/addons/crm_claim/test/test_crm_claim.yml
deleted file mode 100644
index 9ee130329a7..00000000000
--- a/addons/crm_claim/test/test_crm_claim.yml
+++ /dev/null
@@ -1,44 +0,0 @@
-- |
- I check claims which contain customer claim information about document
- related problem, product related problem.
-- |
- I start by creating new claims for Damaged product as Value Claims with priority High and specify
- date of claim at which claim is created.
--
- !record {model: crm.claim, id: crm_claim_damagedproduct0}:
- categ_id: crm_claim.categ_claim2
- date: !eval time.strftime('%Y-%m-%d %H:%M:%S')
- email_from: info@balmerinc.be
- name: 'Damaged product '
- partner_address_id: base.res_partner_address_1
- partner_id: base.res_partner_9
- priority: '2'
- section_id: crm.section_sales_department
-
-- |
- I check that the claims is in 'draft' state.
--
- !assert {model: crm.claim, id: crm_claim_damagedproduct0}:
- - state == 'draft'
-- |
- I can change that stage by next button right on it.
--
- !python {model: crm.claim}: |
- self.stage_next(cr, uid, [ref('crm_claim_damagedproduct0')])
-- |
- I make this claim as Open.
--
- !python {model: crm.claim}: |
- self.case_open(cr, uid, [ref('crm_claim_damagedproduct0')])
-- |
- I am changing partner Assigned to the Claim.
--
- !python {model: crm.claim}: |
- self.onchange_partner_id(cr, uid, [ref('crm_claim_damagedproduct0')], [])
- self.onchange_partner_id(cr, uid, [ref('crm_claim_damagedproduct0')], ref('base.res_partner_10'))
-- |
- I am changing partner Address to the Claim.
--
- !python {model: crm.claim}: |
- self.onchange_partner_address_id(cr, uid, [ref('crm_claim_damagedproduct0')], [], email = False)
-
diff --git a/addons/crm_claim/test/ui/claim_demo.yml b/addons/crm_claim/test/ui/claim_demo.yml
new file mode 100644
index 00000000000..520434fcd90
--- /dev/null
+++ b/addons/crm_claim/test/ui/claim_demo.yml
@@ -0,0 +1,15 @@
+-
+ I create claim record to call of partner onchange method.
+-
+ !record {model: crm.claim, id: crm_case_claim04}:
+ name: 'Damaged Product'
+ partner_id: base.res_partner_6
+-
+ I Update the message for claim.
+-
+ !python {model: crm.claim}: |
+ try:
+ self.message_update(cr, uid,[ref('crm_case_claim04')], {'subject': 'Claim Update record','body_text': 'first training session completed',})
+ except:
+ pass
+
\ No newline at end of file
diff --git a/addons/crm_fundraising/__openerp__.py b/addons/crm_fundraising/__openerp__.py
index 2d75f9e69b7..993b3dc6434 100644
--- a/addons/crm_fundraising/__openerp__.py
+++ b/addons/crm_fundraising/__openerp__.py
@@ -51,7 +51,7 @@ fund status.
'demo_xml': [
'crm_fundraising_demo.xml',
],
- 'test': ['test/test_crm_fund.yml'],
+ 'test': ['test/process/fund-rising.yml'],
'installable': True,
'active': False,
'certificate' : '00871545204231528989',
diff --git a/addons/crm_fundraising/crm_fundraising_view.xml b/addons/crm_fundraising/crm_fundraising_view.xml
index 7c89b68590a..cc58b793c17 100644
--- a/addons/crm_fundraising/crm_fundraising_view.xml
+++ b/addons/crm_fundraising/crm_fundraising_view.xml
@@ -14,7 +14,7 @@
form
[('object_id.model', '=', 'crm.fundraising')]
- {'object_id':'crm.fundraising'}
+
Manage and define the fund raising categories you want to be maintained in the system.
@@ -136,7 +136,7 @@
-
+
@@ -146,32 +146,6 @@
context="{'mail.compose.message.mode':'reply', 'message_id':active_id}"
icon="terp-mail-replied" type="action" />
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+Date: Tue, 25 Oct 2011 13:41:17 +0530
+From: Mr. John Right
+User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.14) Gecko/20110223 Lightning/1.0b2 Thunderbird/3.1.8
+MIME-Version: 1.0
+To: contribute@my.com
+Subject: Demande de controbute dans votre fonds.
+Content-Type: text/plain; charset=ISO-8859-1; format=flowed
+Content-Transfer-Encoding: 8bit
+
+Client est très heureux d'utiliser notre produit et il l'intérêt de donner une partie des fonds dans notre produit. Il a donc envoyé la demande par courriel pour les collectes de fonds.
+
+Merci
+
diff --git a/addons/crm_fundraising/test/process/fund-rising.yml b/addons/crm_fundraising/test/process/fund-rising.yml
new file mode 100644
index 00000000000..b49f1f5c1bd
--- /dev/null
+++ b/addons/crm_fundraising/test/process/fund-rising.yml
@@ -0,0 +1,19 @@
+-
+ Customer is very happy with our service and he interest to contribute into our fund. so He sent request by email for Fundraising.
+-
+ Mail script will be fetched him request from mail server. so I process that mail after read EML file
+-
+ !python {model: mail.thread}: |
+ import addons
+ request_file = open(addons.get_module_resource('crm_fundraising','test', 'customer_fundraising.eml'),'rb')
+ request_message = request_file.read()
+ self.message_process(cr, uid, 'crm.fundraising', request_message)
+-
+ After getting the mail, I check details of new fundraising of that customer.
+-
+ !python {model: crm.fundraising}: |
+ from openerp import tools
+ fund_ids = self.search(cr, uid, [('email_from','=', 'Mr. John Right ')])
+ assert fund_ids and len(fund_ids), "Fund is not created after getting request"
+ fund = self.browse(cr, uid, fund_ids[0], context=context)
+ assert fund.name == tools.ustr("Demande de controbute dans votre fonds."), "Subject does not match"
diff --git a/addons/crm_fundraising/test/test_crm_fund.yml b/addons/crm_fundraising/test/test_crm_fund.yml
deleted file mode 100644
index ef81afeb563..00000000000
--- a/addons/crm_fundraising/test/test_crm_fund.yml
+++ /dev/null
@@ -1,45 +0,0 @@
-- |
- I start test Fund Raising which contain information about Donation or charity
- given by user.
-- |
- I start by creating new Funds entry for donation for books to poor school children
- with cost 500000.00 and category as "Learning And Education"
- I make payment by Cheque so I make sure that the mode on fund is selected as cheque.
--
- !record {model: crm.fundraising, id: crm_fundraising_donationforbookstopoorschoolchildren0}:
- categ_id: crm_fundraising.categ_fund2
- email_from: info@balmerinc.be
- name: Donation for books to poor school children
- partner_address_id: base.res_partner_address_1
- partner_id: base.res_partner_9
- planned_cost: 500000.0
- section_id: crm.section_sales_department
- type_id: crm_fundraising.type_fund2
-- |
- I check that the Funds is in 'draft' state.
--
- !assert {model: crm.fundraising, id: crm_fundraising_donationforbookstopoorschoolchildren0}:
- - state == 'draft'
-- |
- I open Funds by click on "Open" button.
--
- !python {model: crm.fundraising}: |
- self.case_open(cr, uid, [ref('crm_fundraising_donationforbookstopoorschoolchildren0')])
--
- I create the message regarding the all details of fundraising.
--
- !python {model: crm.fundraising}: |
- msg = {
- 'subject': 'fundraising_email',
- 'body_text': 'fundraising details',
- 'from': 'Administrator ',
- 'priority':'3',
- }
- context = None
- self.message_new(cr, uid,msg,context)
-
-- |
- After a request via email now I close this fundraising Request by clicking on "Done" button.
--
- !python {model: crm.fundraising}: |
- self.case_close(cr, uid, [ref('crm_fundraising_donationforbookstopoorschoolchildren0')])
diff --git a/addons/crm_helpdesk/__openerp__.py b/addons/crm_helpdesk/__openerp__.py
index 5124c3c5817..2adf7d26dcc 100644
--- a/addons/crm_helpdesk/__openerp__.py
+++ b/addons/crm_helpdesk/__openerp__.py
@@ -49,7 +49,7 @@ and categorize your interventions with a channel and a priority level.
'demo_xml': [
'crm_helpdesk_demo.xml',
],
- 'test': ['test/test_crm_helpdesk.yml'],
+ 'test': ['test/process/help-desk.yml'],
'installable': True,
'active': False,
'certificate' : '00830691522781519309',
diff --git a/addons/crm_helpdesk/crm_helpdesk_view.xml b/addons/crm_helpdesk/crm_helpdesk_view.xml
index 5b3203f19d0..3d48a3b88ac 100644
--- a/addons/crm_helpdesk/crm_helpdesk_view.xml
+++ b/addons/crm_helpdesk/crm_helpdesk_view.xml
@@ -14,7 +14,7 @@
form
[('object_id.model', '=', 'crm.helpdesk')]
- {'object_id':'crm.helpdesk'}
+
Create and manage helpdesk categories to better manage and classify your support requests.
@@ -96,7 +96,7 @@
-
+
@@ -106,32 +106,6 @@
context="{'mail.compose.message.mode':'reply', 'message_id':active_id}"
icon="terp-mail-replied" type="action" />
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+Date: Tue, 25 Oct 2011 13:41:17 +0530
+From: Mr. John Right
+User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.14) Gecko/20110223 Lightning/1.0b2 Thunderbird/3.1.8
+MIME-Version: 1.0
+To: info@my.com
+Subject: Where is download link of user manual of your product ?
+Content-Type: text/plain; charset=ISO-8859-1; format=flowed
+Content-Transfer-Encoding: 8bit
+
+I want to download user manual of your product.
+can you provide download link?
+
+Thanks
+
diff --git a/addons/crm_helpdesk/test/process/help-desk.yml b/addons/crm_helpdesk/test/process/help-desk.yml
new file mode 100644
index 00000000000..320bd61c2af
--- /dev/null
+++ b/addons/crm_helpdesk/test/process/help-desk.yml
@@ -0,0 +1,30 @@
+-
+ Customer has Questions regarding our service. so He sent questions list by email.
+-
+ Mail script will be fetched him request from mail server. so I process that mail after read EML file
+-
+ !python {model: mail.thread}: |
+ import addons
+ request_file = open(addons.get_module_resource('crm_helpdesk','test', 'customer_question.eml'),'rb')
+ request_message = request_file.read()
+ self.message_process(cr, uid, 'crm.helpdesk', request_message)
+-
+ After getting the mail, I check details of new question of that customer.
+-
+ !python {model: crm.helpdesk}: |
+ from openerp import tools
+ question_ids = self.search(cr, uid, [('email_from','=', 'Mr. John Right ')])
+ assert question_ids and len(question_ids), "Question is not created after getting request"
+ question = self.browse(cr, uid, question_ids[0], context=context)
+ assert question.name == tools.ustr("Where is download link of user manual of your product ? "), "Subject does not match"
+-
+ Now I Update message according to provide services.
+-
+ !python {model: crm.helpdesk}: |
+ question_ids = self.search(cr, uid, [('email_from','=', 'Mr. John Right ')])
+ try:
+ self.message_update(cr, uid, question_ids, {'subject': 'Link of product', 'body_text': 'www.openerp.com'})
+ except:
+ pass
+
+
diff --git a/addons/crm_helpdesk/test/test_crm_helpdesk.yml b/addons/crm_helpdesk/test/test_crm_helpdesk.yml
deleted file mode 100644
index eb0a25d2110..00000000000
--- a/addons/crm_helpdesk/test/test_crm_helpdesk.yml
+++ /dev/null
@@ -1,57 +0,0 @@
--
- |
- I start by creating New helpdesk request regarding some functional questions.
- I select Date at which helpdesk request is created.
--
- !record {model: crm.helpdesk, id: crm_helpdesk_somefunctionalquestion0}:
- date: !eval time.strftime('%Y-%m-%d %H:%M:%S')
- email_from: info@balmerinc.be
- name: Some functional question.
- partner_address_id: base.res_partner_address_1
- partner_id: base.res_partner_9
- section_id: crm.section_sales_department
--
- I create the message.
--
- !python {model: crm.helpdesk}: |
- msg = {
- 'subject': 'test_email',
- 'body_text': 'Testing',
- 'from': 'Administrator ',
- }
- context = None
- self.message_new(cr, uid,msg,context)
-
-- |
- I check that the Helpdesk request is in 'Draft' state.
--
- !assert {model: crm.helpdesk, id: crm_helpdesk_somefunctionalquestion0}:
- - state == 'draft'
-- |
- I make it "Open".
--
- !python {model: crm.helpdesk}: |
- self.case_open(cr, uid, [ref('crm_helpdesk_somefunctionalquestion0')])
--
- Update the created message.
--
- !python {model: crm.helpdesk}: |
- vals = {}
- msg = {
- 'subject': 'test_email',
- 'body_text': 'Testing',
- 'from': 'Administrator ',
- 'priority': 'done'
- }
- context = None
- default_act = 'pending'
- try:
- self.message_update(cr, uid,[ref('crm_helpdesk_somefunctionalquestion0')], msg,context)
- except:
- pass
-- |
- After a proper communication for the request via email I make sure that the request is fulfilled and
- I close this HelpDesk Request by clicking on "Close" button.
--
- !python {model: crm.helpdesk}: |
- self.case_close(cr, uid, [ref('crm_helpdesk_somefunctionalquestion0')])
diff --git a/addons/crm_partner_assign/__openerp__.py b/addons/crm_partner_assign/__openerp__.py
index a38da8a665a..94f2f622a64 100644
--- a/addons/crm_partner_assign/__openerp__.py
+++ b/addons/crm_partner_assign/__openerp__.py
@@ -21,9 +21,9 @@
{
- 'name': 'Partner Geo-Localization',
+ 'name': 'Partners Geo-Localization',
'version': '1.0',
- 'category': 'Hidden',
+ 'category': 'Customer Relationship Management',
'complexity': "normal",
'description': """
This is the module used by OpenERP SA to redirect customers to its partners, based on geolocalization.
@@ -38,6 +38,9 @@ You can also use the geolocalization without using the GPS coordinates.
""",
'author': 'OpenERP SA',
'depends': ['crm'],
+ 'demo_xml': [
+ 'res_partner_demo.xml',
+ ],
'update_xml': [
'security/ir.model.access.csv',
'res_partner_view.xml',
@@ -46,7 +49,9 @@ You can also use the geolocalization without using the GPS coordinates.
'report/crm_lead_report_view.xml',
'report/crm_partner_report_view.xml',
],
- 'test': ['test/test_crm_partner_assign.yml'],
+ 'test': [
+ 'test/process/partner_assign.yml',
+ ],
'installable': True,
'active': False,
'certificate': '00503409558942442061',
diff --git a/addons/crm_partner_assign/crm_lead_view.xml b/addons/crm_partner_assign/crm_lead_view.xml
index 2ec3c85353b..14e160fb397 100644
--- a/addons/crm_partner_assign/crm_lead_view.xml
+++ b/addons/crm_partner_assign/crm_lead_view.xml
@@ -8,7 +8,7 @@
-
+
@@ -27,7 +27,7 @@
-
diff --git a/addons/crm_partner_assign/partner_geo_assign.py b/addons/crm_partner_assign/partner_geo_assign.py
index 401d09146ae..08c4f7d23b6 100644
--- a/addons/crm_partner_assign/partner_geo_assign.py
+++ b/addons/crm_partner_assign/partner_geo_assign.py
@@ -24,22 +24,25 @@ from osv import fields
import urllib,re
import random, time
from tools.translate import _
+import tools
def geo_find(addr):
+ addr = addr.encode('utf8')
+ regex = '([+-]?[0-9\.]+),([+-]?[0-9\.]+),([+-]?[0-9\.]+) '
+ url = 'http://maps.google.com/maps/geo?q=' + urllib.quote(addr) + '&output=xml&oe=utf8&sensor=false'
try:
- regex = '([+-]?[0-9\.]+),([+-]?[0-9\.]+),([+-]?[0-9\.]+) '
- url = 'http://maps.google.com/maps/geo?q=' + urllib.quote(addr) + '&output=xml&oe=utf8&sensor=false'
xml = urllib.urlopen(url).read()
- if '' in xml:
- return None
- result = re.search(regex, xml, re.M|re.I)
- if not result:
- return None
- return float(result.group(2)),float(result.group(1))
except Exception, e:
raise osv.except_osv(_('Network error'),
_('Could not contact geolocation servers, please make sure you have a working internet connection (%s)') % e)
+ if '' in xml:
+ return None
+ result = re.search(regex, xml, re.M|re.I)
+ if not result:
+ return None
+ return float(result.group(2)),float(result.group(1))
+
class res_partner_grade(osv.osv):
_order = 'sequence'
@@ -74,9 +77,13 @@ class res_partner(osv.osv):
for partner in self.browse(cr, uid, ids, context=context):
if not partner.address:
continue
- part = partner.address[0]
- addr = ', '.join(filter(None, [part.street, (part.zip or '')+' '+(part.city or ''), part.state_id and part.state_id.name, part.country_id and part.country_id.name]))
- result = geo_find(addr.encode('utf8'))
+ contact = partner.address[0] #TOFIX: should be get latitude and longitude for default contact?
+ addr = ', '.join(filter(None, [
+ contact.street,
+ "%s %s" % (contact.zip , contact.city),
+ contact.state_id and contact.state_id.name,
+ contact.country_id and contact.country_id.name]))
+ result = geo_find(tools.ustr(addr))
if result:
self.write(cr, uid, [partner.id], {
'partner_latitude': result[0],
@@ -94,14 +101,13 @@ class crm_lead(osv.osv):
'partner_assigned_id': fields.many2one('res.partner', 'Assigned Partner', help="Partner this case has been forwarded/assigned to.", select=True),
'date_assign': fields.date('Assignation Date', help="Last date this case was forwarded/assigned to a partner"),
}
+ def _merge_data(self, cr, uid, ids, oldest, fields, context=None):
+ fields += ['partner_latitude', 'partner_longitude', 'partner_assigned_id', 'date_assign']
+ return super(crm_lead, self)._merge_data(cr, uid, ids, oldest, fields, context=context)
+
def onchange_assign_id(self, cr, uid, ids, partner_assigned_id, context=None):
"""This function updates the "assignation date" automatically, when manually assign a partner in the geo assign tab
- @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 stage’s IDs
- @stage_id: change state id on run time """
-
+ """
if not partner_assigned_id:
return {'value':{'date_assign': False}}
else:
@@ -112,73 +118,113 @@ class crm_lead(osv.osv):
'user_id' : user_id}
}
- def assign_partner(self, cr, uid, ids, context=None):
- ok = False
- for part in self.browse(cr, uid, ids, context=context):
- if not part.country_id:
- continue
- addr = ', '.join(filter(None, [part.street, (part.zip or '')+' '+(part.city or ''), part.state_id and part.state_id.name, part.country_id and part.country_id.name]))
- result = geo_find(addr.encode('utf8'))
- if result:
- self.write(cr, uid, [part.id], {
- 'partner_latitude': result[0],
- 'partner_longitude': result[1]
- }, context=context)
+ def action_assign_partner(self, cr, uid, ids, context=None):
+ return self.assign_partner(cr, uid, ids, partner_id=False, context=context)
+ def assign_partner(self, cr, uid, ids, partner_id=False, context=None):
+ partner_ids = {}
+ res = False
+ res_partner = self.pool.get('res.partner')
+ if not partner_id:
+ partner_ids = self.search_geo_partner(cr, uid, ids, context=context)
+ for lead in self.browse(cr, uid, ids, context=context):
+ if not partner_id:
+ partner_id = partner_ids.get(lead.id, False)
+ if not partner_id:
+ continue
+ self.assign_geo_localize(cr, uid, [lead.id], lead.partner_latitude, lead.partner_longitude, context=context)
+ partner = res_partner.browse(cr, uid, partner_id, context=context)
+ if partner.user_id:
+ for lead_id in ids:
+ self.allocate_salesman(cr, uid, [lead_id], [partner.user_id.id], context=context)
+ self.write(cr, uid, [lead.id], {'date_assign': time.strftime('%Y-%m-%d'), 'partner_assigned_id': partner_id}, context=context)
+ return res
+
+
+ def assign_geo_localize(self, cr, uid, ids, latitude=False, longitude=False, context=None):
+ for lead in self.browse(cr, uid, ids, context=context):
+ if not lead.country_id:
+ continue
+ addr = ', '.join(filter(None, [
+ lead.street,
+ "%s %s" % (lead.zip, lead.city),
+ lead.state_id and lead.state_id.name or '',
+ lead.country_id and lead.country_id.name or ''
+ ]))
+ result = geo_find(tools.ustr(addr))
+ if not latitude and result:
+ latitude = result[0]
+ if not longitude and result:
+ longitude = result[1]
+ self.write(cr, uid, [lead.id], {
+ 'partner_latitude': latitude,
+ 'partner_longitude': longitude
+ }, context=context)
+ return True
+
+ def search_geo_partner(self, cr, uid, ids, context=None):
+ res_partner = self.pool.get('res.partner')
+ res_partner_ids = {}
+ self.assign_geo_localize(cr, uid, ids, context=context)
+ for lead in self.browse(cr, uid, ids, context=context):
+ partner_ids = []
+ if not lead.country_id:
+ continue
+ latitude = lead.partner_latitude
+ longitude = lead.partner_longitude
+ if latitude and longitude:
# 1. first way: in the same country, small area
- part_ids = self.pool.get('res.partner').search(cr, uid, [
- ('partner_weight','>',0),
- ('partner_latitude','>',result[0]-2), ('partner_latitude','<',result[0]+2),
- ('partner_longitude','>',result[1]-1.5), ('partner_longitude','<',result[1]+1.5),
- ('country', '=', part.country_id.id),
+ partner_ids = res_partner.search(cr, uid, [
+ ('partner_weight', '>', 0),
+ ('partner_latitude', '>', latitude - 2), ('partner_latitude', '<', latitude + 2),
+ ('partner_longitude', '>', longitude - 1.5), ('partner_longitude', '<', longitude + 1.5),
+ ('country', '=', lead.country_id.id),
], context=context)
# 2. second way: in the same country, big area
- if not part_ids:
- part_ids = self.pool.get('res.partner').search(cr, uid, [
- ('partner_weight','>',0),
- ('partner_latitude','>',result[0]-4), ('partner_latitude','<',result[0]+4),
- ('partner_longitude','>',result[1]-3), ('partner_longitude','<',result[1]+3),
- ('country', '=', part.country_id.id),
+ if not partner_ids:
+ partner_ids = res_partner.search(cr, uid, [
+ ('partner_weight', '>', 0),
+ ('partner_latitude', '>', latitude - 4), ('partner_latitude', '<', latitude + 4),
+ ('partner_longitude', '>', longitude - 3), ('partner_longitude', '<' , longitude + 3),
+ ('country', '=', lead.country_id.id),
], context=context)
# 5. fifth way: anywhere in same country
- if not part_ids:
+ if not partner_ids:
# still haven't found any, let's take all partners in the country!
- part_ids = self.pool.get('res.partner').search(cr, uid, [
- ('partner_weight','>',0),
- ('country', '=', part.country_id.id),
+ partner_ids = res_partner.search(cr, uid, [
+ ('partner_weight', '>', 0),
+ ('country', '=', lead.country_id.id),
], context=context)
# 6. sixth way: closest partner whatsoever, just to have at least one result
- if not part_ids:
+ if not partner_ids:
# warning: point() type takes (longitude, latitude) as parameters in this order!
cr.execute("""SELECT id, distance
FROM (select id, (point(partner_longitude, partner_latitude) <-> point(%s,%s)) AS distance FROM res_partner
WHERE partner_longitude is not null
AND partner_latitude is not null
AND partner_weight > 0) AS d
- ORDER BY distance LIMIT 1""", (result[1],result[0]))
+ ORDER BY distance LIMIT 1""", (longitude, latitude))
res = cr.dictfetchone()
if res:
- part_ids.append(res['id'])
+ partner_ids.append(res['id'])
- total = 0
+ total_weight = 0
toassign = []
- for part2 in self.pool.get('res.partner').browse(cr, uid, part_ids, context=context):
- total += part2.partner_weight
- toassign.append( (part2.id, total) )
+ for partner in res_partner.browse(cr, uid, partner_ids, context=context):
+ total_weight += partner.partner_weight
+ toassign.append( (partner.id, total_weight) )
+
random.shuffle(toassign) # avoid always giving the leads to the first ones in db natural order!
- mypartner = random.randint(0,total)
- for t in toassign:
- if mypartner<=t[1]:
- vals = self.onchange_assign_id(cr,uid, ids, t[0], context=context)['value']
- vals.update({'partner_assigned_id': t[0], 'date_assign': time.strftime('%Y-%m-%d')})
- self.write(cr, uid, [part.id], vals, context=context)
+ nearest_weight = random.randint(0, total_weight)
+ for partner_id, weight in toassign:
+ if nearest_weight <= weight:
+ res_partner_ids[lead.id] = partner_id
break
- ok = True
- return ok
+ return res_partner_ids
crm_lead()
diff --git a/addons/crm_partner_assign/report/crm_lead_report_view.xml b/addons/crm_partner_assign/report/crm_lead_report_view.xml
index 01bbefb84d4..a0bbd62c131 100644
--- a/addons/crm_partner_assign/report/crm_lead_report_view.xml
+++ b/addons/crm_partner_assign/report/crm_lead_report_view.xml
@@ -141,7 +141,7 @@
Opp. Assignment Analysis
crm.lead.report.assign
form
- {"search_default_group_partner_date": 1, "search_default_group_grade":1,'group_by_no_leaf':1,'group_by':[]}
+ {'default_type': 'opportunity', "search_default_group_partner_date": 1, "search_default_group_grade":1,'group_by_no_leaf':1,'group_by':[]}
tree
[('type', '=', 'opportunity')]
diff --git a/addons/crm_partner_assign/res_partner_demo.xml b/addons/crm_partner_assign/res_partner_demo.xml
new file mode 100644
index 00000000000..66ee1fbd5e7
--- /dev/null
+++ b/addons/crm_partner_assign/res_partner_demo.xml
@@ -0,0 +1,13 @@
+
+
+
+
+ First
+ 1
+
+
+
+ 10
+
+
+
diff --git a/addons/crm_partner_assign/security/ir.model.access.csv b/addons/crm_partner_assign/security/ir.model.access.csv
index b5bb64ad3dd..e4067a69aed 100644
--- a/addons/crm_partner_assign/security/ir.model.access.csv
+++ b/addons/crm_partner_assign/security/ir.model.access.csv
@@ -1,6 +1,6 @@
-"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
-"access_ crm_lead_report_assign","crm.lead.report.assign","model_crm_lead_report_assign","base.group_sale_salesman",1,1,1,0
-"access_ crm_lead_report_assign_all","crm.lead.report.assign.all","model_crm_lead_report_assign","base.group_user",1,0,0,0
-"access_crm_partner_report","crm.partner.report.assign.all","model_crm_partner_report_assign","base.group_sale_salesman",1,0,0,0
-"access_res_partner_grade","res.partner.grade","model_res_partner_grade","base.group_sale_salesman",1,1,1,0
-"access_res_partner_grade_manager","res.partner.grade.manager","model_res_partner_grade","base.group_sale_manager",1,1,1,1
+id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
+access_ crm_lead_report_assign,crm.lead.report.assign,model_crm_lead_report_assign,base.group_sale_salesman,1,1,1,0
+access_ crm_lead_report_assign_all,crm.lead.report.assign.all,model_crm_lead_report_assign,base.group_user,1,0,0,0
+access_crm_partner_report,crm.partner.report.assign.all,model_crm_partner_report_assign,base.group_sale_salesman,1,0,0,0
+access_res_partner_grade,res.partner.grade,model_res_partner_grade,base.group_sale_salesman,1,1,1,0
+access_res_partner_grade_manager,res.partner.grade.manager,model_res_partner_grade,base.group_sale_manager,1,1,1,1
diff --git a/addons/crm_partner_assign/test/process/partner_assign.yml b/addons/crm_partner_assign/test/process/partner_assign.yml
new file mode 100644
index 00000000000..18f03c9d41c
--- /dev/null
+++ b/addons/crm_partner_assign/test/process/partner_assign.yml
@@ -0,0 +1,37 @@
+-
+ In order to test find nearest Partner functionality and assign to opportunity ,
+-
+ I Set Geo Lattitude and Longitude according to partner address.
+-
+ !python {model: res.partner}: |
+ self.geo_localize(cr, uid, [ref('base.res_partner_ericdubois0')], context)
+-
+ I check Geo Latitude and Longitude of partner after set
+-
+ !python {model: res.partner}: |
+ partner = self.browse(cr, uid, ref('base.res_partner_ericdubois0'))
+ assert partner.partner_latitude == 50.4530495 , "Latitude is wrong"
+ assert partner.partner_longitude == 3.9693885 , "Longitude is wrong"
+-
+ I assign nearest partner to opportunity.
+-
+ !python {model: crm.lead}: |
+ self.assign_partner(cr, uid, [ref('crm.crm_case_abcfuelcounits0')], context=context)
+-
+ I check assigned partner of opportunity who is nearest Geo Latitude and Longitude of opportunity.
+-
+ !python {model: crm.lead}: |
+ lead = self.browse(cr, uid, ref('crm.crm_case_abcfuelcounits0'))
+ assert lead.partner_assigned_id.id == ref('base.res_partner_ericdubois0') , "Opportuniy is not assigned nearest partner"
+ assert lead.partner_latitude == 50.8495239 , "Latitude is wrong"
+ assert lead.partner_longitude == 4.3667002 , "Longitude is wrong"
+-
+ I forward this opportunity to its nearest partner.
+-
+ !python {model: crm.lead.forward.to.partner}: |
+ context.update({'active_model': 'crm.lead', 'active_id': ref('crm.crm_case_abcfuelcounits0'), 'active_ids': [ref('crm.crm_case_abcfuelcounits0')]})
+ forward_id = self.create(cr, uid, {'email_from': 'test@openerp.com', 'send_to': 'partner'}, context=context)
+ try:
+ self.action_forward(cr, uid, [forward_id], context=context)
+ except:
+ pass
diff --git a/addons/crm_partner_assign/test/test_crm_partner_assign.yml b/addons/crm_partner_assign/test/test_crm_partner_assign.yml
deleted file mode 100644
index 359fa8454f6..00000000000
--- a/addons/crm_partner_assign/test/test_crm_partner_assign.yml
+++ /dev/null
@@ -1,137 +0,0 @@
--
- In order to test Forward Partner functionality, I create an opportunity and forward it to partner.
--
- I assign an email address to Administrator.
--
- !record {model: res.users, id: base.user_root}:
- user_email: admin@openerp.com
--
- I create some partner grades.
--
- I create a grade 'First'.
--
- !record {model: res.partner.grade, id: res_partner_grade_first0}:
- name: First
- sequence: 1
--
- I create another grade 'Second'.
--
- !record {model: res.partner.grade, id: res_partner_grade_second0}:
- name: Second
- sequence: 2
--
- I create one more grade 'Third'.
--
- !record {model: res.partner.grade, id: res_partner_grade_third0}:
- name: Third
- sequence: 3
--
- I assign grade 'First' to the partner 'Axelor'.
--
- !record {model: res.partner, id: base.res_partner_desertic_hispafuentes}:
- grade_id: res_partner_grade_first0
--
- I change the User email id or partner if needed.
--
- !python {model: res.partner}: |
- self.geo_localize(cr, uid, [ref('base.res_partner_desertic_hispafuentes')], context)
--
- I assgin a reply-to email address to Sales Team.
--
- !record {model: crm.case.section, id: crm.section_sales_department}:
- reply_to: sales_openerp@openerp.com
--
- I create an opportunity 'Questionnaire on OpenERP'.
--
- !record {model: crm.lead, id: crm_lead_questionnaireonopenerp0}:
- categ_id: crm.categ_oppor7
- section_id: crm.section_sales_department
- country_id: base.fr
- date_assign: '2011-02-07'
- day_close: 0.0
- day_open: 0.0
- email_from: info@axelor.com
- name: Questionnaire on OpenERP
- partner_address_id: base.res_partner_address_3000
- partner_assigned_id: base.res_partner_desertic_hispafuentes
- partner_id: base.res_partner_desertic_hispafuentes
- partner_latitude: 0.0
- partner_longitude: 0.0
- phone: +33 1 64 61 04 01
- planned_revenue: 0.0
- probability: 0.0
- type: opportunity
--
- I change the assigned partner.
--
- !python {model: crm.lead}: |
- self.onchange_assign_id(cr, uid, [ref('crm_lead_questionnaireonopenerp0')], ref('base.res_partner_desertic_hispafuentes'), context)
- self.assign_partner(cr, uid, [ref('crm_lead_questionnaireonopenerp0')], context)
--
- I change the User email id or partner if needed.
--
- !python {model: crm.lead.forward.to.partner}: |
- context.update({'history': 'latest', })
- user = ref('base.user_root')
- self.on_change_email(cr, uid, [ref('crm_lead_questionnaireonopenerp0')], user)
- self.on_change_partner(cr, uid, [ref('crm_lead_questionnaireonopenerp0')], ref('base.res_partner_desertic_hispafuentes'))
--
- I change in history define.
--
- !python {model: crm.lead.forward.to.partner}: |
- context.update({'history': 'info', })
- self.on_change_history(cr, uid, [ref('crm_lead_questionnaireonopenerp0')], context.get('history'), context)
--
- I check the case history.
--
- !python {model: crm.lead.forward.to.partner}: |
- context.update({'history': 'latest', })
- self._get_case_history(cr, uid, context.get('history'), ref('crm_lead_questionnaireonopenerp0'), context=context)
-
- context.update({'history': 'info', })
- self._get_case_history(cr, uid, context.get('history'), ref('crm_lead_questionnaireonopenerp0'), context=context)
-
- context.update({'history': 'whole', })
- self._get_case_history(cr, uid, context.get('history'), ref('crm_lead_questionnaireonopenerp0'), context=context)
--
- I get lead details.
--
- !python {model: crm.lead.forward.to.partner}: |
- self.get_lead_details(cr, uid, ref('crm_lead_questionnaireonopenerp0'), context)
--
- I click on Forward button.
--
- !python {model: crm.lead.forward.to.partner}: |
- from tools import config
- vals = {
- 'subject': 'email',
- 'email_to': 'info@axelor.com',
- 'email_from': 'Administrator ',
- 'reply_to': 'sales_openerp@openerp.com',
- 'state': 'draft',
- 'history': 'latest',
- }
- ids = self.create(cr, uid, vals, context={'active_id': ref('crm_lead_questionnaireonopenerp0'), 'active_model': 'crm.lead'})
- host = config.get('smtp_user', '127.0.0.1')
- assert config.get(host, True), 'SMTP not configured !'
- try:
- self.action_forward(cr, uid, [ids], context={'active_id': ref('crm_lead_questionnaireonopenerp0'), 'active_model': 'crm.lead'})
- except:
- pass
--
- I create the opportunity.
--
- !record {model: crm.lead, id: crm_opportunity2}:
- email_from: info@balmerinc.be
- name: 'FUEL CO 829264 - 10002 units'
- partner_address_id: base.res_partner_address_1
- partner_id: base.res_partner_9
- probability: 1.0
- stage_id: crm.stage_lead1
- categ_id: crm.categ_oppor2
- section_id: crm.section_sales_department
-- |
- I Update the data.
--
- !python {model: crm.merge.opportunity}: |
- self._update_data([ref('crm_opportunity2')], ref('crm_lead_questionnaireonopenerp0'))
diff --git a/addons/crm_partner_assign/wizard/__init__.py b/addons/crm_partner_assign/wizard/__init__.py
index b6bda71deaf..9224173145b 100644
--- a/addons/crm_partner_assign/wizard/__init__.py
+++ b/addons/crm_partner_assign/wizard/__init__.py
@@ -20,6 +20,3 @@
##############################################################################
import crm_forward_to_partner
-import crm_merge_opportunity
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/crm_partner_assign/wizard/crm_forward_to_partner.py b/addons/crm_partner_assign/wizard/crm_forward_to_partner.py
index cdaf8f19b12..565f99b9db1 100644
--- a/addons/crm_partner_assign/wizard/crm_forward_to_partner.py
+++ b/addons/crm_partner_assign/wizard/crm_forward_to_partner.py
@@ -24,6 +24,7 @@ import time
import re
from osv import osv, fields
from tools.translate import _
+from mail.mail_message import to_email
class crm_lead_forward_to_partner(osv.osv_memory):
"""Forwards lead history"""
@@ -34,6 +35,7 @@ class crm_lead_forward_to_partner(osv.osv_memory):
'send_to': fields.selection([('user', 'User'), ('partner', 'Partner'), \
('email', 'Email Address')], 'Send to', required=True),
'user_id': fields.many2one('res.users', "User"),
+ 'attachment_ids': fields.many2many('ir.attachment','lead_forward_to_partner_attachment_rel', 'wizard_id', 'attachment_id', 'Attachments'),
'partner_id' : fields.many2one('res.partner', 'Partner'),
'address_id' : fields.many2one('res.partner.address', 'Address'),
'history': fields.selection([('info', 'Case Information'), ('latest', 'Latest email'), ('whole', 'Whole Story')], 'Send history', required=True),
@@ -46,48 +48,8 @@ class crm_lead_forward_to_partner(osv.osv_memory):
}
- def get_whole_history(self, cr, uid, ids, context=None):
- """This function gets whole communication history and returns as top posting style
- @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 history IDs
- @param context: A standard dictionary for contextual values
- """
- whole = []
- for hist_id in ids:
- whole.append(self.get_latest_history(cr, uid, hist_id, context=context))
- whole = '\n\n'.join(whole)
- return whole or ''
-
- def get_latest_history(self, cr, uid, hist_id, context=None):
- """This function gets latest communication and returns as top posting style
- @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 hist_id: Id of latest history
- @param context: A standard dictionary for contextual values
- """
- log_pool = self.pool.get('mail.message')
- hist = log_pool.browse(cr, uid, hist_id, context=context)
- header = '-------- Original Message --------'
- sender = 'From: %s' %(hist.email_from or '')
- to = 'To: %s' % (hist.email_to or '')
- sentdate = 'Date: %s' % (hist.date or '')
- desc = '\n%s'%(hist.body_text)
- original = [header, sender, to, sentdate, desc]
- original = '\n'.join(original)
- return original
-
+
def on_change_email(self, cr, uid, ids, user):
- """This function fills email information based on user selected
- @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 Mail’s IDs
- @param user: Changed User id
- @param partner: Changed Partner id
- """
if not user:
return {'value': {'email_to': False}}
email = self.pool.get('res.users')._get_email_from(cr, uid, [user])[user]
@@ -98,54 +60,19 @@ class crm_lead_forward_to_partner(osv.osv_memory):
* info: Forward the case information
* whole: Send the whole history
* latest: Send the latest histoy
- @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 history IDs
- @param context: A standard dictionary for contextual values
"""
#TODO: ids and context are not comming
- res = False
+ res = {}
res_id = context.get('active_id')
- msg_val = self._get_case_history(cr, uid, history_type, res_id, context=context)
- if msg_val:
- res = {'value': {'body_text' : '\n\n' + msg_val}}
+ model = context.get('active_model')
+ lead = self.pool.get(model).browse(cr, uid, res_id, context)
+ body_text = self._get_message_body_text(cr, uid, lead, history_type, context=context)
+ if body_text:
+ res = {'value': {'body_text' : body_text}}
return res
-
- def _get_case_history(self, cr, uid, history_type, res_id, context=None):
- if not res_id:
- return
-
- msg_val = ''
- case_info = self.get_lead_details(cr, uid, res_id, context=context)
- model_pool = self.pool.get('crm.lead')
-
- if history_type == 'info':
- msg_val = case_info
-
- elif history_type == 'whole':
- log_ids = model_pool.browse(cr, uid, res_id, context=context).message_ids
- log_ids = map(lambda x: x.id, filter(lambda x: x.email_from, log_ids))
- msg_val = case_info + '\n\n' + self.get_whole_history(cr, uid, log_ids, context=context)
-
- elif history_type == 'latest':
- log_ids = model_pool.browse(cr, uid, res_id, context=context).message_ids
- log_ids = filter(lambda x: x.email_from and x.id, log_ids)
- if not log_ids:
- msg_val = case_info
- else:
- msg_val = case_info + '\n\n' + self.get_latest_history(cr, uid, log_ids[0].id, context=context)
-
- return msg_val
-
+
def on_change_partner(self, cr, uid, ids, partner_id):
"""This function fills address information based on partner/user selected
- @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 Mail’s IDs
- @param user: Changed User id
- @param partner: Changed Partner id
"""
if not partner_id:
return {'value' : {'email_to' : False, 'address_id': False}}
@@ -158,11 +85,11 @@ class crm_lead_forward_to_partner(osv.osv_memory):
partner = partner_obj.browse(cr, uid, [partner_id])
user_id = partner and partner[0].user_id or False
email = user_id and user_id.user_email or ''
- data.update({'email_cc' : email})
+ data.update({'email_cc' : email, 'user_id': user_id and user_id.id or False})
return {
'value' : data,
'domain' : {'address_id' : partner_id and "[('partner_id', '=', partner_id)]" or "[]"}
- }
+ }
def on_change_address(self, cr, uid, ids, address_id):
email = ''
@@ -170,155 +97,125 @@ class crm_lead_forward_to_partner(osv.osv_memory):
email = self.pool.get('res.partner.address').browse(cr, uid, address_id).email
return {'value': {'email_to' : email}}
- def send_mail(self, cr, uid, ids, context=None):
- if context is None:
- context = {}
- super(crm_lead_forward_to_partner, self).send_mail(cr, uid, ids, context=context)
- self.action_forward(cr, uid, ids, context)
- return {'type': 'ir.actions.act_window_close'}
-
def action_forward(self, cr, uid, ids, context=None):
"""
Forward the lead to a partner
"""
if context is None:
context = {}
+ res = {'type': 'ir.actions.act_window_close'}
+ model = context.get('active_model')
+ if model not in ('crm.lead'):
+ return res
+
this = self.browse(cr, uid, ids[0], context=context)
- case_pool = self.pool.get(context.get('active_model'))
- res_id = context and context.get('active_id', False) or False
- case = case_pool.browse(cr, uid, res_id, context=context)
- context.update({'mail': 'forward'})
-
- to_write = {'date_assign': time.strftime('%Y-%m-%d')}
- if (this.send_to == 'partner' and this.partner_id):
- to_write['partner_assigned_id'] = this.partner_id.id
-
- if this.send_to == 'user':
- to_write.update({'user_id' : this.user_id.id})
- email_re = r'([^ ,<@]+@[^> ,]+)'
- email_cc = re.findall(email_re, case.email_cc or '')
- new_cc = []
- if case.email_cc:
- new_cc.append(case.email_cc)
- for to in this.email_to.split(','):
- email_to = re.findall(email_re, to)
- email_to = email_to and email_to[0] or ''
- if email_to not in email_cc:
- new_cc.append(to)
- to_write.update({'email_cc' : ', '.join(new_cc) })
- case_pool.write(cr, uid, case.id, to_write, context=context)
- return {'type': 'ir.actions.act_window_close'}
-
- def get_lead_details(self, cr, uid, lead_id, context=None):
- body = []
- lead_proxy = self.pool.get('crm.lead')
- lead = lead_proxy.browse(cr, uid, lead_id, context=context)
- if not lead.type or lead.type == 'lead' or not lead.partner_address_id:
- field_names = [
- 'partner_name', 'title', 'function', 'street', 'street2',
- 'zip', 'city', 'country_id', 'state_id', 'email_from',
- 'phone', 'fax', 'mobile', 'categ_id', 'description',
- ]
-
- for field_name in field_names:
- field_definition = lead_proxy._columns[field_name]
- value = None
-
- if field_definition._type == 'selection':
- if hasattr(field_definition.selection, '__call__'):
- key = field_definition.selection(lead_proxy, cr, uid, context=context)
- else:
- key = field_definition.selection
- value = dict(key).get(lead[field_name], lead[field_name])
- elif field_definition._type == 'many2one':
- if lead[field_name]:
- value = lead[field_name].name_get()[0][1]
- else:
- value = lead[field_name]
-
- body.append("%s: %s" % (field_definition.string, value or ''))
- elif lead.type == 'opportunity':
- pa = lead.partner_address_id
- body += [
- "Partner: %s" % (lead.partner_id and lead.partner_id.name_get()[0][1]),
- "Contact: %s" % (pa.name or ''),
- "Title: %s" % (pa.title or ''),
- "Function: %s" % (pa.function or ''),
- "Street: %s" % (pa.street or ''),
- "Street2: %s" % (pa.street2 or ''),
- "Zip: %s" % (pa.zip or ''),
- "City: %s" % (pa.city or ''),
- "Country: %s" % (pa.country_id and pa.country_id.name_get()[0][1] or ''),
- "State: %s" % (pa.state_id and pa.state_id.name_get()[0][1] or ''),
- "Email: %s" % (pa.email or ''),
- "Phone: %s" % (pa.phone or ''),
- "Fax: %s" % (pa.fax or ''),
- "Mobile: %s" % (pa.mobile or ''),
- "Lead Category: %s" % (lead.categ_id and lead.categ_id.name or ''),
- "Details: %s" % (lead.description or ''),
- ]
- return "\n".join(body + ['---'])
-
- def default_get(self, cr, uid, fields, context=None):
- """
- This function gets default values
- """
-
- if context is None:
- context = {}
-
- defaults = super(crm_lead_forward_to_partner, self).default_get(cr, uid, fields, context=context)
- active_id = context.get('active_id')
- if not active_id:
- return defaults
-
- lead_proxy = self.pool.get('crm.lead')
- partner_obj = self.pool.get('res.partner')
- lead = lead_proxy.browse(cr, uid, active_id, context=context)
-
- email_cc = ''
- email = ''
- if lead.partner_assigned_id:
- partner = partner_obj.browse(cr, uid, [lead.partner_assigned_id.id])
- user_id = partner and partner[0].user_id or False
- email_cc = user_id and user_id.user_email or ''
-
- addr = partner_obj.address_get(cr, uid, [partner[0].id], ['contact'])
- email = self.pool.get('res.partner.address').browse(cr, uid, addr['contact']).email
-
- body = self._get_case_history(cr, uid, defaults.get('history', 'latest'), lead.id, context=context)
- defaults.update({
- 'subject' : '%s: %s - %s' % (_('Fwd'), 'Openerp lead forward', lead.name),
- 'body_text' : body,
- 'email_cc' : email_cc,
- 'email_to' : email or 'dummy@dummy.ly'
- })
- return defaults
-
-class crm_lead_mass_forward_to_partner(osv.osv_memory):
- _name = 'crm.lead.mass.forward.to.partner'
- _inherit = 'crm.lead.forward.to.partner'
-
- def action_mass_forward(self, cr, uid, ids, context=None):
- if not context:
- context = {}
-
- active_ids = context.get('active_ids')
- case_obj = self.pool.get('crm.lead')
- for case in case_obj.browse(cr, uid, active_ids, context=context):
- if not case.partner_assigned_id:
- case_obj.assign_partner(cr,uid, [case.id], context=context)
- case = case_obj.browse(cr, uid, case.id, context=context)
-
- if not case.partner_assigned_id:
- continue
-
- context.update({'active_id' : case.id})
+ lead = self.pool.get(model)
+ lead_id = context and context.get('active_id', False) or False
+ lead_ids = lead_id and [lead_id] or []
+ mode = context.get('mail.compose.message.mode')
+ if mode == 'mass_mail':
+ lead_ids = context and context.get('active_ids', []) or []
value = self.default_get(cr, uid, ['body_text', 'email_to', 'email_cc', 'subject', 'history'], context=context)
self.write(cr, uid, ids, value, context=context)
- self.action_forward(cr,uid, ids, context=context)
+ context['mail.compose.message.mode'] = mode
- return {'type': 'ir.actions.act_window_close'}
+ self.send_mail(cr, uid, ids, context=context)
+ for case in lead.browse(cr, uid, lead_ids, context=context):
+ if (this.send_to == 'partner' and this.partner_id):
+ lead.assign_partner(cr, uid, [case.id], this.partner_id.id, context=context)
+ if this.send_to == 'user':
+ lead.allocate_salesman(cr, uid, [case.id], [this.user_id.id], context=context)
+ email_cc = to_email(case.email_cc)
+ email_cc = email_cc and email_cc[0] or ''
+ new_cc = []
+ if email_cc:
+ new_cc.append(email_cc)
+ for to in this.email_to.split(','):
+ email_to = to_email(to)
+ email_to = email_to and email_to[0] or ''
+ if email_to not in new_cc:
+ new_cc.append(to)
+ update_vals = {'email_cc' : ', '.join(new_cc) }
+ lead.write(cr, uid, case.id, update_vals, context=context)
+ return res
+
+ def _get_info_body_text(self, cr, uid, lead, context=None):
+ field_names = []
+ proxy = self.pool.get(lead._name)
+ if lead.type == 'opportunity':
+ field_names += ['partner_id']
+ field_names += [
+ 'partner_name' , 'title', 'function', 'street', 'street2',
+ 'zip', 'city', 'country_id', 'state_id', 'email_from',
+ 'phone', 'fax', 'mobile', 'categ_id', 'description',
+ ]
+ return proxy._mail_body_text(cr, uid, lead, field_names, context=context)
+
+ def _get_message_body_text(self, cr, uid, lead, mode='whole', context=None):
+ """This function gets whole communication history and returns as top posting style
+ """
+ mail_message = self.pool.get('mail.message')
+ message_ids = []
+ body = self._get_info_body_text(cr, uid, lead, context=context)
+ if mode in ('whole', 'latest'):
+ message_ids = lead.message_ids
+ message_ids = map(lambda x: x.id, filter(lambda x: x.email_from, message_ids))
+ if mode == 'latest' and len(message_ids):
+ message_ids = [message_ids[0]]
+ for message in mail_message.browse(cr, uid, message_ids, context=context):
+ header = '-------- Original Message --------'
+ sender = 'From: %s' %(message.email_from or '')
+ to = 'To: %s' % (message.email_to or '')
+ sentdate = 'Date: %s' % (message.date or '')
+ desc = '\n%s'%(message.body_text)
+ original = [header, sender, to, sentdate, desc, '\n']
+ original = '\n'.join(original)
+ body += original
+ return body or ''
+
+ def get_value(self, cr, uid, model, res_id, context=None):
+ if context is None:
+ context = {}
+ res = super(crm_lead_forward_to_partner, self).get_value(cr, uid, model, res_id, context=context)
+ if model not in ("crm.lead"):
+ return res
+ proxy = self.pool.get(model)
+ partner = self.pool.get('res.partner')
+ lead = proxy.browse(cr, uid, res_id, context=context)
+ mode = context.get('mail.compose.message.mode')
+ if mode == "forward":
+ body_type = context.get('mail.compose.message.body')
+ email_cc = res.get('email_cc', "")
+ email = res.get('email_to', "")
+ subject = '%s: %s - %s' % (_('Fwd'), 'Lead forward', lead.name)
+ body = self._get_message_body_text(cr, uid, lead, body_type, context=context)
+ partner_assigned_id = lead.partner_assigned_id and lead.partner_assigned_id.id or False
+ user_id = False
+ if not partner_assigned_id:
+ partner_assigned_id = proxy.search_geo_partner(cr, uid, [lead.id], context=None).get(lead.id, False)
+ if partner_assigned_id:
+ assigned_partner = partner.browse(cr, uid, partner_assigned_id, context=context)
+ user_id = assigned_partner.user_id and assigned_partner.user_id.id or False
+ email_cc = assigned_partner.user_id and assigned_partner.user_id.user_email or ''
+ email = assigned_partner.email
+
+ res.update({
+ 'subject' : subject,
+ 'body_text' : body,
+ 'email_cc' : email_cc,
+ 'email_to' : email,
+ 'partner_assigned_id': partner_assigned_id,
+ 'user_id': user_id,
+ })
+ return res
+
+
+ def default_get(self, cr, uid, fields, context=None):
+ if context is None:
+ context = {}
+ context['mail.compose.message.mode'] = 'forward'
+ context['mail.compose.message.body'] = 'info'
+ return super(crm_lead_forward_to_partner, self).default_get(cr, uid, fields, context=context)
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/crm_partner_assign/wizard/crm_forward_to_partner_view.xml b/addons/crm_partner_assign/wizard/crm_forward_to_partner_view.xml
index 8bdb03cf962..645c729b164 100644
--- a/addons/crm_partner_assign/wizard/crm_forward_to_partner_view.xml
+++ b/addons/crm_partner_assign/wizard/crm_forward_to_partner_view.xml
@@ -35,7 +35,7 @@
-
+
@@ -45,7 +45,7 @@
-
+
@@ -61,56 +61,14 @@
-
- crm.new.mass.forward.mail.form
- crm.lead.mass.forward.to.partner
- form
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
diff --git a/addons/crm_profiling/__openerp__.py b/addons/crm_profiling/__openerp__.py
index 656f8360f0b..fdc85ba3d4d 100644
--- a/addons/crm_profiling/__openerp__.py
+++ b/addons/crm_profiling/__openerp__.py
@@ -21,7 +21,7 @@
{
- 'name': 'Profiling Tools',
+ 'name': 'Customer Profiling',
'version': '1.3',
'category': 'Marketing',
'complexity': "easy",
@@ -39,9 +39,11 @@ It also has been merged with the earlier CRM & SRM segmentation tool because the
'website': 'http://www.openerp.com',
'depends': ['base', 'crm'],
'init_xml': [],
- 'update_xml': ['security/ir.model.access.csv', 'crm_profiling_view.xml'],
+ 'update_xml': ['security/ir.model.access.csv', 'wizard/open_questionnaire_view.xml', 'crm_profiling_view.xml'],
'demo_xml': ['crm_profiling_demo.xml'],
- 'test': ['test/test_crm_profiling.yml'],
+ 'test': [
+ #'test/process/profiling.yml', #TODO:It's not debuging because problem to write data for open.questionnaire from partner section.
+ ],
'installable': True,
'active': False,
'certificate': '0033984979005',
diff --git a/addons/crm_profiling/crm_profiling.py b/addons/crm_profiling/crm_profiling.py
index 59137966da0..587ddbe0b52 100644
--- a/addons/crm_profiling/crm_profiling.py
+++ b/addons/crm_profiling/crm_profiling.py
@@ -159,30 +159,6 @@ class questionnaire(osv.osv):
_name="crm_profiling.questionnaire"
_description= "Questionnaire"
- def build_form(self, cr, uid, data, context=None):
- """
- @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 data: Get Data
- @param context: A standard dictionary for contextual values """
-
- query = """
- select name, id
- from crm_profiling_question
- where id in ( select question from profile_questionnaire_quest_rel where questionnaire = %s)"""
- res = cr.execute(query, (data['form']['questionnaire_name'],))
- result = cr.fetchall()
- quest_fields={}
- quest_form='''
- ''' % _('Questionnaire')
- for name, oid in result:
- quest_form = quest_form + ' ' % (oid,)
- quest_fields['quest_form%d' % (oid,)] = {'string': name, 'type': 'many2one', \
- 'relation': 'crm_profiling.answer', 'domain': [('question_id','=',oid)] }
- quest_form = quest_form + ''' '''
- return quest_form, quest_fields
-
_columns = {
'name': fields.char("Questionnaire",size=128, required=True),
'description':fields.text("Description", required=True),
@@ -210,25 +186,19 @@ class partner(osv.osv):
"partner","answer","Answers"),
}
- def _questionnaire_compute(self, cr, uid, data, context=None):
+ def _questionnaire_compute(self, cr, uid, answers, context=None):
"""
@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 data: Get Data
@param context: A standard dictionary for contextual values """
-
- temp = []
- for x in data['form']:
- if x.startswith("quest_form") and data['form'][x] != 0 :
- temp.append(data['form'][x])
-
+ partner_id = context.get('active_id')
query = "select answer from partner_question_rel where partner=%s"
- cr.execute(query, (data['id'],))
+ cr.execute(query, (partner_id,))
for x in cr.fetchall():
- temp.append(x[0])
-
- self.write(cr, uid, [data['id']], {'answers_ids':[[6, 0, temp]]}, context=context)
+ answers.append(x[0])
+ self.write(cr, uid, [partner_id], {'answers_ids': [[6, 0, answers]]}, context=context)
return {}
diff --git a/addons/crm_profiling/crm_profiling_demo.xml b/addons/crm_profiling/crm_profiling_demo.xml
index 1789e8bace8..6a0ca130ec3 100644
--- a/addons/crm_profiling/crm_profiling_demo.xml
+++ b/addons/crm_profiling/crm_profiling_demo.xml
@@ -102,7 +102,7 @@
Profiles / crm.segmentation
-->
-
+
OpenERP partners
@@ -111,22 +111,23 @@
Bronze partners
-
+
True
Silver partners
-
+
True
Gold partners
-
+
+ True
True
diff --git a/addons/crm_profiling/crm_profiling_view.xml b/addons/crm_profiling/crm_profiling_view.xml
index 258de2e4e2d..a54d3d4b0a9 100644
--- a/addons/crm_profiling/crm_profiling_view.xml
+++ b/addons/crm_profiling/crm_profiling_view.xml
@@ -2,13 +2,6 @@
-
-
Questionnaires
crm_profiling.questionnaire
@@ -140,7 +133,7 @@
diff --git a/addons/crm_profiling/crm_profiling_wizard.xml b/addons/crm_profiling/crm_profiling_wizard.xml
deleted file mode 100644
index 39d436a6bd9..00000000000
--- a/addons/crm_profiling/crm_profiling_wizard.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
diff --git a/addons/crm_profiling/security/ir.model.access.csv b/addons/crm_profiling/security/ir.model.access.csv
index 43e1528fddb..24fd7009c6a 100644
--- a/addons/crm_profiling/security/ir.model.access.csv
+++ b/addons/crm_profiling/security/ir.model.access.csv
@@ -1,7 +1,7 @@
-"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
-"access_crm_profiling_answer_salesman","crm_profiling.answer.salesman","model_crm_profiling_answer","base.group_sale_salesman",1,1,1,0
-"access_crm_profiling_answer_manager","crm_profiling.answer.manager","model_crm_profiling_answer","base.group_sale_manager",1,1,1,1
-"access_crm_profiling_question_salesman","crm_profiling.question.salesman","model_crm_profiling_question","base.group_sale_salesman",1,1,1,0
-"access_crm_profiling_question_manager","crm_profiling.question.manager","model_crm_profiling_question","base.group_sale_manager",1,1,1,1
-"access_crm_profiling_questionnarie_salesman","crm_profiling.questionnarie.salesman","model_crm_profiling_questionnaire","base.group_sale_salesman",1,1,1,0
-"access_crm_profiling_questionnarie_manager","crm_profiling.questionnarie.manager","model_crm_profiling_questionnaire","base.group_sale_manager",1,1,1,1
+id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
+access_crm_profiling_answer_salesman,crm_profiling.answer.salesman,model_crm_profiling_answer,base.group_sale_salesman,1,1,1,0
+access_crm_profiling_answer_manager,crm_profiling.answer.manager,model_crm_profiling_answer,base.group_sale_manager,1,1,1,1
+access_crm_profiling_question_salesman,crm_profiling.question.salesman,model_crm_profiling_question,base.group_sale_salesman,1,1,1,0
+access_crm_profiling_question_manager,crm_profiling.question.manager,model_crm_profiling_question,base.group_sale_manager,1,1,1,1
+access_crm_profiling_questionnarie_salesman,crm_profiling.questionnarie.salesman,model_crm_profiling_questionnaire,base.group_sale_salesman,1,1,1,0
+access_crm_profiling_questionnarie_manager,crm_profiling.questionnarie.manager,model_crm_profiling_questionnaire,base.group_sale_manager,1,1,1,1
diff --git a/addons/crm_profiling/test/test_crm_profiling.yml b/addons/crm_profiling/test/process/profiling.yml
similarity index 80%
rename from addons/crm_profiling/test/test_crm_profiling.yml
rename to addons/crm_profiling/test/process/profiling.yml
index 2b70cac592b..99fe2da1733 100644
--- a/addons/crm_profiling/test/test_crm_profiling.yml
+++ b/addons/crm_profiling/test/process/profiling.yml
@@ -32,15 +32,14 @@
name: John
category_id:
- res_partner_category_customers0
- answers_ids:
- - crm_profiling_answer_openerppartner0
-
Define the answers and category to partner.
-
!python {model: res.partner}: |
data ={'form': {'questionnaire_name': ref('res_partner_john0')}, 'ids': [ref('res_partner_john0')], 'report_type': 'pdf', 'model': 'res.partner', 'id': ref('res_partner_john0')}
- self._questionnaire_compute(cr, uid, data, context)
+ context['active_id'] = ref('res_partner_john0')
+ self._questionnaire_compute(cr, uid, [ref('crm_profiling_answer_openerppartner0')], context)
- |
I start by creating new Questionnaire.
-
@@ -51,13 +50,6 @@
- crm_profiling.activity_sector
- crm_profiling.nb_employees
- crm_profiling.partner_level
-- |
- I create the form for the "Base questionnaire".
--
- !python {model: crm_profiling.questionnaire}: |
- context.update({'active_id':ref('res_partner_john0')})
- data ={'form': {'questionnaire_name': ref('res_partner_john0')}, 'ids': [ref('res_partner_john0')], 'report_type': 'pdf', 'model': 'res.partner', 'id': ref('res_partner_john0')}
- self.build_form(cr, uid, data, context)
-
I create a segmentation record.
-
diff --git a/addons/crm_profiling/wizard/open_questionnaire.py b/addons/crm_profiling/wizard/open_questionnaire.py
index 91b82a02d1a..b13c67640fc 100644
--- a/addons/crm_profiling/wizard/open_questionnaire.py
+++ b/addons/crm_profiling/wizard/open_questionnaire.py
@@ -18,50 +18,72 @@
# along with this program. If not, see .
#
##############################################################################
-import pooler
-import wizard
-from tools import UpdateableStr, UpdateableDict
-_QUEST_FORM = UpdateableStr()
-_QUEST_FIELDS=UpdateableDict()
+from osv import osv, fields
+from tools.translate import _
-class open_questionnaire(wizard.interface):
-
- def _questionnaire_compute(self, cr, uid, data, context):
- pooler.get_pool(cr.dbname).get(data['model'])._questionnaire_compute(cr, uid, data, context)
- return {}
-
-
- def build_form(self, cr, uid, data, context):
- quest_form, quest_fields = pooler.get_pool(cr.dbname).get('crm_profiling.questionnaire').build_form(cr, uid, data, context)
- _QUEST_FORM. __init__(quest_form)
- _QUEST_FIELDS.__init__(quest_fields)
- return{}
-
- _questionnaire_choice_arch = '''
-
-
- '''
-
- _questionnaire_choice_fields = {
- 'questionnaire_name': {'string': 'Questionnaire name', 'type': 'many2one', 'relation': 'crm_profiling.questionnaire', 'required': True },
+class open_questionnaire_line(osv.osv_memory):
+ _name = 'open.questionnaire.line'
+ _rec_name = 'question_id'
+ _columns = {
+ 'question_id': fields.many2one('crm_profiling.question','Question', required=True),
+ 'answer_id': fields.many2one('crm_profiling.answer', 'Answer'),
+ 'wizard_id': fields.many2one('open.questionnaire', 'Questionnaire'),
}
- states = {
- 'init': {
- 'actions': [],
- 'result': {'type': 'form', 'arch': _questionnaire_choice_arch, 'fields': _questionnaire_choice_fields, 'state':[('end', 'Cancel','gtk-cancel'), ('open', 'Open Questionnaire','terp-camera_test')]}
- },
- 'open': {
- 'actions': [build_form],
- 'result': {'type': 'form', 'arch':_QUEST_FORM, 'fields': _QUEST_FIELDS, 'state':[('end', 'Cancel','gtk-cancel'), ('compute', 'Save Data','terp-stock_format-scientific')]}
- },
- 'compute': {
- 'actions': [],
- 'result': {'type': 'action', 'action': _questionnaire_compute, 'state':'end'}
+open_questionnaire_line()
+
+class open_questionnaire(osv.osv_memory):
+ _name = 'open.questionnaire'
+ _columns = {
+ 'questionnaire_id': fields.many2one('crm_profiling.questionnaire', 'Questionnaire name'),
+ 'question_ans_ids': fields.one2many('open.questionnaire.line', 'wizard_id', 'Question / Answers'),
+ }
+
+ def default_get(self, cr, uid, fields, context=None):
+ if context is None: context = {}
+ res = super(open_questionnaire, self).default_get(cr, uid, fields, context=context)
+ questionnaire_id = context.get('questionnaire_id', False)
+ if questionnaire_id and 'question_ans_ids' in fields:
+ query = """
+ select question as question_id from profile_questionnaire_quest_rel where questionnaire = %s"""
+ cr.execute(query, (questionnaire_id,))
+ result = cr.dictfetchall()
+ res.update(question_ans_ids=result)
+ return res
+
+ def questionnaire_compute(self, cr, uid, ids, context=None):
+ """ Adds selected answers in partner form """
+ model = context.get('active_model')
+ answers = []
+ if model == 'res.partner':
+ data = self.browse(cr, uid, ids[0], context=context)
+ for d in data.question_ans_ids:
+ if d.answer_id:
+ answers.append(d.answer_id.id)
+ self.pool.get(model)._questionnaire_compute(cr, uid, answers, context=context)
+ return {'type': 'ir.actions.act_window_close'}
+
+
+ def build_form(self, cr, uid, ids, context=None):
+ """ Dynamically generates form according to selected questionnaire """
+ models_data = self.pool.get('ir.model.data')
+ result = models_data._get_id(cr, uid, 'crm_profiling', 'open_questionnaire_form')
+ res_id = models_data.browse(cr, uid, result, context=context).res_id
+ datas = self.browse(cr, uid, ids[0], context=context)
+ context.update({'questionnaire_id': datas.questionnaire_id.id})
+
+ return {
+ 'name': _('Questionnaire'),
+ 'view_type': 'form',
+ 'view_mode': 'form',
+ 'res_model': 'open.questionnaire',
+ 'type': 'ir.actions.act_window',
+ 'views': [(res_id,'form')],
+ 'target': 'new',
+ 'context': context
}
- }
-open_questionnaire('open_questionnaire')
+open_questionnaire()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/crm_profiling/wizard/open_questionnaire_view.xml b/addons/crm_profiling/wizard/open_questionnaire_view.xml
new file mode 100644
index 00000000000..88955f43af4
--- /dev/null
+++ b/addons/crm_profiling/wizard/open_questionnaire_view.xml
@@ -0,0 +1,86 @@
+
+
+
+
+
+ Open Questionnaires
+ open.questionnaire
+ form
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Open Questionnaire
+ open.questionnaire
+ form
+ form
+
+ new
+
+
+
+ open.questionnaire.form
+ open.questionnaire
+ form
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ open.questionnaire.line.list
+ open.questionnaire.line
+ tree
+
+
+
+
+
+
+
+
+
+ open.questionnaire.line.form
+ open.questionnaire.line
+ form
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/addons/crm_todo/__openerp__.py b/addons/crm_todo/__openerp__.py
index 3b870153347..d3d205ec9c0 100644
--- a/addons/crm_todo/__openerp__.py
+++ b/addons/crm_todo/__openerp__.py
@@ -21,9 +21,9 @@
{
- 'name': 'To Do List',
+ 'name': 'Tasks on CRM',
'version': '1.0',
- 'category': 'Customer Relationship Management',
+ "category": 'Customer Relationship Management',
'complexity': "easy",
'description': """
Todo list for CRM leads and opportunities.
diff --git a/addons/decimal_precision/__openerp__.py b/addons/decimal_precision/__openerp__.py
index 91e7ce57029..0aafef9fe1f 100644
--- a/addons/decimal_precision/__openerp__.py
+++ b/addons/decimal_precision/__openerp__.py
@@ -30,7 +30,7 @@ The decimal precision is configured per company.
"author": "OpenERP SA",
"version": "0.1",
"depends": ["base"],
- "category" : "Hidden",
+ "category" : "Hidden/Dependency",
'complexity': "easy",
"init_xml": [],
"update_xml": [
diff --git a/addons/decimal_precision/security/ir.model.access.csv b/addons/decimal_precision/security/ir.model.access.csv
index d53a5fef141..aa203eae141 100644
--- a/addons/decimal_precision/security/ir.model.access.csv
+++ b/addons/decimal_precision/security/ir.model.access.csv
@@ -1,3 +1,3 @@
-"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
-"access_decimal_precision_config","decimal.precision configuration","model_decimal_precision",base.group_system,1,1,1,1
-"access_decimal_precision_all","decimal.precision","model_decimal_precision",,1,0,0,0
+id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
+access_decimal_precision_config,decimal.precision configuration,model_decimal_precision,base.group_system,1,1,1,1
+access_decimal_precision_all,decimal.precision,model_decimal_precision,,1,0,0,0
diff --git a/addons/delivery/delivery_view.xml b/addons/delivery/delivery_view.xml
index deb13679355..c46253777d2 100644
--- a/addons/delivery/delivery_view.xml
+++ b/addons/delivery/delivery_view.xml
@@ -233,7 +233,7 @@
tree,form
[('invoice_state','=','2binvoiced'),('state','=','done'),('type','=','out')]
- {'contact_display': 'partner'}
+ {'default_invoice_state': '2binvoiced', 'default_type': 'out', 'contact_display': 'partner'}
diff --git a/addons/delivery/i18n/cs.po b/addons/delivery/i18n/cs.po
index b703e4b42c8..7cb6f787ed1 100644
--- a/addons/delivery/i18n/cs.po
+++ b/addons/delivery/i18n/cs.po
@@ -4,111 +4,112 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: OpenERP Server 5.0.4\n"
+"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2011-01-11 11:15+0000\n"
-"PO-Revision-Date: 2009-02-03 19:47+0000\n"
-"Last-Translator: Fabien (Open ERP) \n"
-"Language-Team: \n"
+"PO-Revision-Date: 2011-11-25 14:16+0000\n"
+"Last-Translator: Jiří Hajda \n"
+"Language-Team: Czech \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-11-05 04:55+0000\n"
-"X-Generator: Launchpad (build 14231)\n"
+"X-Launchpad-Export-Date: 2011-11-26 05:49+0000\n"
+"X-Generator: Launchpad (build 14381)\n"
+"X-Poedit-Language: Czech\n"
#. module: delivery
#: report:sale.shipping:0
msgid "Order Ref."
-msgstr ""
+msgstr "Odkaz objednávky"
#. module: delivery
#: model:product.template,name:delivery.delivery_product_product_template
msgid "Delivery by Poste"
-msgstr ""
+msgstr "Dodání podle zaslání"
#. module: delivery
#: view:delivery.grid:0
msgid "Destination"
-msgstr ""
+msgstr "Cíl"
#. module: delivery
#: field:stock.move,weight_net:0
msgid "Net weight"
-msgstr ""
+msgstr "Čistá hmotnost"
#. module: delivery
#: view:stock.picking:0
msgid "Delivery Order"
-msgstr ""
+msgstr "Objednávka doručení"
#. module: delivery
#: code:addons/delivery/delivery.py:141
#, python-format
msgid "No price available !"
-msgstr ""
+msgstr "Žádná dostupná cena !"
#. module: delivery
#: model:ir.model,name:delivery.model_delivery_grid_line
msgid "Delivery Grid Line"
-msgstr ""
+msgstr "Řádek dodací sítě"
#. module: delivery
#: view:delivery.grid:0
msgid "Delivery grids"
-msgstr ""
+msgstr "Dodací sítě"
#. module: delivery
#: selection:delivery.grid.line,type:0
#: selection:delivery.grid.line,variable_factor:0
#: field:stock.picking,volume:0
msgid "Volume"
-msgstr ""
+msgstr "Objem"
#. module: delivery
#: sql_constraint:sale.order:0
msgid "Order Reference must be unique !"
-msgstr ""
+msgstr "Odkaz objednávky musí být jedinečný !"
#. module: delivery
#: field:delivery.grid,line_ids:0
msgid "Grid Line"
-msgstr ""
+msgstr "Řádek sítě"
#. module: delivery
#: model:ir.actions.report.xml,name:delivery.report_shipping
msgid "Delivery order"
-msgstr ""
+msgstr "Objednávka doručení"
#. module: delivery
#: view:res.partner:0
msgid "Deliveries Properties"
-msgstr ""
+msgstr "Vlastnosti doručení"
#. module: delivery
#: model:ir.actions.act_window,name:delivery.action_picking_tree4
msgid "Picking to be invoiced"
-msgstr ""
+msgstr "Navádění k fakturaci"
#. module: delivery
#: help:delivery.grid,sequence:0
msgid "Gives the sequence order when displaying a list of delivery grid."
-msgstr ""
+msgstr "Dává pořadí posloupnosti, když zobrazuje seznam dodací sítě."
#. module: delivery
#: view:delivery.grid:0
#: field:delivery.grid,country_ids:0
msgid "Countries"
-msgstr ""
+msgstr "Země"
#. module: delivery
#: report:sale.shipping:0
msgid "Delivery Order :"
-msgstr ""
+msgstr "Objednávka doručení :"
#. module: delivery
#: field:delivery.grid.line,variable_factor:0
msgid "Variable Factor"
-msgstr ""
+msgstr "Proměnný koeficient"
#. module: delivery
#: model:ir.actions.act_window,help:delivery.action_delivery_grid_form
@@ -118,11 +119,15 @@ msgid ""
"can define several price lists for one delivery method, per country or a "
"zone in a specific country defined by a postal code range."
msgstr ""
+"Ceník dodání vám umožní spočítat cenu a prodejní cenu přepravy podle "
+"hmotnosti výrobků a dalších kritérií. Můžete určit několik ceníků pro jednu "
+"dodací metodu podle země nebo zóny ve specifické zemi určené podle rozsahu "
+"počtovního kódu."
#. module: delivery
#: selection:delivery.grid.line,price_type:0
msgid "Fixed"
-msgstr ""
+msgstr "Pevné"
#. module: delivery
#: view:delivery.sale.order:0
@@ -137,23 +142,24 @@ msgstr "Způsob doručení"
#. module: delivery
#: model:ir.model,name:delivery.model_stock_move
msgid "Stock Move"
-msgstr ""
+msgstr "Přesun zásob"
#. module: delivery
#: code:addons/delivery/delivery.py:141
#, python-format
msgid "No line matched this order in the choosed delivery grids !"
msgstr ""
+"Neodpovídají žádné řádky této objednávce, pokud je vybrána dodací síť !"
#. module: delivery
#: field:stock.picking,carrier_tracking_ref:0
msgid "Carrier Tracking Ref"
-msgstr ""
+msgstr "Odkaz sledování přepravce"
#. module: delivery
#: field:stock.picking,weight_net:0
msgid "Net Weight"
-msgstr ""
+msgstr "Čistá hmotnost"
#. module: delivery
#: model:ir.actions.act_window,help:delivery.action_delivery_carrier_form
@@ -162,57 +168,60 @@ msgid ""
"Each delivery method can be assigned to a price list which computes the "
"price of the delivery according to the products sold or delivered."
msgstr ""
+"Vytvořit a spravovat dodací metody, které chcete pro vaše prodejní aktivity. "
+"Každá dodací metoda může být přiřazena k ceníku, který spočítá cenu přepravy "
+"podle výrobků prodaných nebo dodaných."
#. module: delivery
#: code:addons/delivery/stock.py:98
#, python-format
msgid "Warning"
-msgstr ""
+msgstr "Varování"
#. module: delivery
#: view:delivery.grid:0
msgid "Grid definition"
-msgstr ""
+msgstr "Určení sítě"
#. module: delivery
#: view:delivery.sale.order:0
msgid "_Cancel"
-msgstr ""
+msgstr "_Zrušit"
#. module: delivery
#: field:delivery.grid.line,operator:0
msgid "Operator"
-msgstr ""
+msgstr "Operátor"
#. module: delivery
#: model:ir.model,name:delivery.model_res_partner
msgid "Partner"
-msgstr ""
+msgstr "Partner"
#. module: delivery
#: model:ir.model,name:delivery.model_sale_order
msgid "Sales Order"
-msgstr ""
+msgstr "Prodejní objednávka"
#. module: delivery
#: model:ir.model,name:delivery.model_delivery_grid
msgid "Delivery Grid"
-msgstr ""
+msgstr "Dodací síť"
#. module: delivery
#: report:sale.shipping:0
msgid "Invoiced to"
-msgstr ""
+msgstr "Fakturováno"
#. module: delivery
#: model:ir.model,name:delivery.model_stock_picking
msgid "Picking List"
-msgstr ""
+msgstr "Naváděcí seznam"
#. module: delivery
#: model:ir.model,name:delivery.model_delivery_sale_order
msgid "Make Delievery"
-msgstr ""
+msgstr "Provést dodání"
#. module: delivery
#: model:ir.module.module,description:delivery.module_meta_information
@@ -224,16 +233,22 @@ msgid ""
"\n"
" "
msgstr ""
+"Umožní vám přidat dodací metody v prodejním příkazu a navádění.\n"
+" Můžete určit vaše ceny přepravce and dodací sítě.\n"
+" Když vytváříte faktury z navádění, OpenERP je schopný přidat a spočítat "
+"dodací řádky.\n"
+"\n"
+" "
#. module: delivery
#: view:delivery.grid.line:0
msgid "Grid Lines"
-msgstr ""
+msgstr "Řádky sítě"
#. module: delivery
#: field:delivery.grid.line,grid_id:0
msgid "Grid"
-msgstr ""
+msgstr "Síť"
#. module: delivery
#: help:delivery.grid,active:0
@@ -241,31 +256,33 @@ msgid ""
"If the active field is set to False, it will allow you to hide the delivery "
"grid without removing it."
msgstr ""
+"Pokud je aktivní pole nastaveno na Nepravda, umožní vám to skrýt dodací síť "
+"bez jejího odebrání."
#. module: delivery
#: field:delivery.grid,zip_to:0
msgid "To Zip"
-msgstr ""
+msgstr "Na PSČ"
#. module: delivery
#: report:sale.shipping:0
msgid "Order Date"
-msgstr ""
+msgstr "Datum objednání"
#. module: delivery
#: field:delivery.grid,name:0
msgid "Grid Name"
-msgstr ""
+msgstr "Jméno sítě"
#. module: delivery
#: view:stock.move:0
msgid "Weights"
-msgstr ""
+msgstr "Váhy"
#. module: delivery
#: field:stock.picking,number_of_packages:0
msgid "Number of Packages"
-msgstr ""
+msgstr "Počet balíků"
#. module: delivery
#: selection:delivery.grid.line,type:0
@@ -274,7 +291,7 @@ msgstr ""
#: field:stock.move,weight:0
#: field:stock.picking,weight:0
msgid "Weight"
-msgstr ""
+msgstr "Váha"
#. module: delivery
#: help:delivery.carrier,active:0
@@ -282,179 +299,181 @@ msgid ""
"If the active field is set to False, it will allow you to hide the delivery "
"carrier without removing it."
msgstr ""
+"Pokud je aktivní pole nastaveno na Nepravda, umožní vám to skrýt dodacího "
+"přepravce bez jeho odebrání."
#. module: delivery
#: code:addons/delivery/wizard/delivery_sale_order.py:95
#, python-format
msgid "No grid available !"
-msgstr ""
+msgstr "Žádná dostupná síť !"
#. module: delivery
#: selection:delivery.grid.line,operator:0
msgid ">="
-msgstr ""
+msgstr ">="
#. module: delivery
#: code:addons/delivery/wizard/delivery_sale_order.py:66
#: code:addons/delivery/wizard/delivery_sale_order.py:98
#, python-format
msgid "Order not in draft state !"
-msgstr ""
+msgstr "Objednávka není ve stavu koncept !"
#. module: delivery
#: constraint:res.partner:0
msgid "Error ! You can not create recursive associated members."
-msgstr ""
+msgstr "Chyba ! Nemůžete vytvořit rekurzivní asociované členy."
#. module: delivery
#: report:sale.shipping:0
msgid "Lot"
-msgstr ""
+msgstr "Dávka"
#. module: delivery
#: constraint:stock.move:0
msgid "You try to assign a lot which is not from the same product"
-msgstr ""
+msgstr "Snažíte se přiřadit dávku, která není ze stejného výrobku"
#. module: delivery
#: field:delivery.carrier,active:0
#: field:delivery.grid,active:0
msgid "Active"
-msgstr ""
+msgstr "Aktivní"
#. module: delivery
#: report:sale.shipping:0
msgid "Shipping Date"
-msgstr ""
+msgstr "Datum expedice"
#. module: delivery
#: field:delivery.carrier,product_id:0
msgid "Delivery Product"
-msgstr ""
+msgstr "Dodání výrobku"
#. module: delivery
#: view:delivery.grid.line:0
msgid "Condition"
-msgstr ""
+msgstr "Podmínka"
#. module: delivery
#: field:delivery.grid.line,standard_price:0
msgid "Cost Price"
-msgstr ""
+msgstr "Výrobní cena"
#. module: delivery
#: selection:delivery.grid.line,price_type:0
#: field:delivery.grid.line,type:0
msgid "Variable"
-msgstr ""
+msgstr "Proměnné"
#. module: delivery
#: help:res.partner,property_delivery_carrier:0
msgid "This delivery method will be used when invoicing from picking."
-msgstr ""
+msgstr "Dodací metoda bude použita při fakturaci z nasvádění."
#. module: delivery
#: field:delivery.grid.line,max_value:0
msgid "Maximum Value"
-msgstr ""
+msgstr "Maximální hodnota"
#. module: delivery
#: report:sale.shipping:0
msgid "Quantity"
-msgstr ""
+msgstr "Množství"
#. module: delivery
#: field:delivery.grid,zip_from:0
msgid "Start Zip"
-msgstr ""
+msgstr "Počáteční PSČ"
#. module: delivery
#: help:sale.order,carrier_id:0
msgid ""
"Complete this field if you plan to invoice the shipping based on picking."
-msgstr ""
+msgstr "Vyplňte toto pole, pokud plánujete fakturovat přepravu při navádění."
#. module: delivery
#: field:delivery.carrier,partner_id:0
msgid "Carrier Partner"
-msgstr ""
+msgstr "Přepravní partner"
#. module: delivery
#: view:res.partner:0
msgid "Sales & Purchases"
-msgstr ""
+msgstr "Prodeje & Nákupy"
#. module: delivery
#: selection:delivery.grid.line,operator:0
msgid "<="
-msgstr ""
+msgstr "<="
#. module: delivery
#: constraint:stock.move:0
msgid "You must assign a production lot for this product"
-msgstr ""
+msgstr "Pro tento výrobek musíte přiřadit výrobní dávku."
#. module: delivery
#: view:delivery.sale.order:0
msgid "Create Deliveries"
-msgstr ""
+msgstr "Vytvořit dodání"
#. module: delivery
#: model:ir.actions.act_window,name:delivery.action_delivery_cost
#: view:sale.order:0
msgid "Delivery Costs"
-msgstr ""
+msgstr "Ceny dodání"
#. module: delivery
#: report:sale.shipping:0
msgid "Description"
-msgstr ""
+msgstr "Popis"
#. module: delivery
#: model:ir.actions.act_window,name:delivery.action_delivery_grid_form
#: model:ir.ui.menu,name:delivery.menu_action_delivery_grid_form
msgid "Delivery Pricelist"
-msgstr ""
+msgstr "Ceník dodání"
#. module: delivery
#: field:delivery.carrier,price:0
#: selection:delivery.grid.line,type:0
#: selection:delivery.grid.line,variable_factor:0
msgid "Price"
-msgstr ""
+msgstr "Cena"
#. module: delivery
#: code:addons/delivery/wizard/delivery_sale_order.py:95
#, python-format
msgid "No grid matching for this carrier !"
-msgstr ""
+msgstr "Žádná síť odpovídající tomuto přepravci !"
#. module: delivery
#: model:ir.ui.menu,name:delivery.menu_delivery
msgid "Delivery"
-msgstr ""
+msgstr "Dodací"
#. module: delivery
#: selection:delivery.grid.line,type:0
#: selection:delivery.grid.line,variable_factor:0
msgid "Weight * Volume"
-msgstr ""
+msgstr "Hmotnost * Objem"
#. module: delivery
#: selection:delivery.grid.line,operator:0
msgid "="
-msgstr ""
+msgstr "="
#. module: delivery
#: code:addons/delivery/stock.py:99
#, python-format
msgid "The carrier %s (id: %d) has no delivery grid!"
-msgstr ""
+msgstr "Přepravce %s (id: %d) nemá dodací síť!"
#. module: delivery
#: field:delivery.grid.line,name:0
msgid "Name"
-msgstr ""
+msgstr "Jméno"
#. module: delivery
#: view:delivery.carrier:0
@@ -464,55 +483,55 @@ msgstr ""
#: report:sale.shipping:0
#: field:stock.picking,carrier_id:0
msgid "Carrier"
-msgstr ""
+msgstr "Přepravce"
#. module: delivery
#: view:delivery.sale.order:0
msgid "_Apply"
-msgstr ""
+msgstr "_Použít"
#. module: delivery
#: field:sale.order,id:0
msgid "ID"
-msgstr ""
+msgstr "ID"
#. module: delivery
#: code:addons/delivery/wizard/delivery_sale_order.py:66
#: code:addons/delivery/wizard/delivery_sale_order.py:98
#, python-format
msgid "The order state have to be draft to add delivery lines."
-msgstr ""
+msgstr "Stav objednávky musí být koncept pro přidání dodacích řádků."
#. module: delivery
#: model:ir.module.module,shortdesc:delivery.module_meta_information
msgid "Carriers and deliveries"
-msgstr ""
+msgstr "Přepravci a doručení"
#. module: delivery
#: field:delivery.carrier,grids_id:0
msgid "Delivery Grids"
-msgstr ""
+msgstr "Dodací síť"
#. module: delivery
#: field:delivery.grid,sequence:0
msgid "Sequence"
-msgstr ""
+msgstr "Posloupnost"
#. module: delivery
#: field:delivery.grid.line,list_price:0
msgid "Sale Price"
-msgstr ""
+msgstr "Prodejní cena"
#. module: delivery
#: view:delivery.grid:0
#: field:delivery.grid,state_ids:0
msgid "States"
-msgstr ""
+msgstr "Stavy"
#. module: delivery
#: field:delivery.grid.line,price_type:0
msgid "Price Type"
-msgstr ""
+msgstr "Typ ceny"
#~ msgid "Cancel"
#~ msgstr "Storno"
diff --git a/addons/delivery/report/shipping.rml b/addons/delivery/report/shipping.rml
index 563c3bda826..1ed7e7098bc 100644
--- a/addons/delivery/report/shipping.rml
+++ b/addons/delivery/report/shipping.rml
@@ -131,19 +131,11 @@
Invoiced to
[[ o.sale_id and o.sale_id.partner_invoice_id and o.sale_id.partner_invoice_id.name or '']]
- [[ o.sale_id and o.sale_id.partner_invoice_id and o.sale_id.partner_invoice_id.street or '']]
- [[ (o.sale_id and o.sale_id.partner_invoice_id and o.sale_id.partner_invoice_id.street2) or removeParentNode('para')]]
- [[ o.sale_id and o.sale_id.partner_invoice_id and o.sale_id.partner_invoice_id.zip or '']] [[ o.sale_id and o.sale_id.partner_invoice_id and o.sale_id.partner_invoice_id.city or '' ]]
- [[ (o.sale_id and o.sale_id.partner_invoice_id and o.sale_id.partner_invoice_id.state_id and o.sale_id.partner_invoice_id.state_id.name) or removeParentNode('para') ]]
- [[ o.sale_id and o.sale_id.partner_invoice_id and o.sale_id.partner_invoice_id.country_id and o.sale_id.partner_invoice_id.country_id.name or '']]
+ [[ o.sale_id and o.sale_id.partner_invoice_id and display_address(o.sale_id.partner_invoice_id) ]]
[[ o.address_id and o.address_id.partner_id and o.address_id.partner_id.name or '' ]]
- [[ o.address_id and o.address_id.street or '']]
- [[ o.address_id and o.address_id.street2 or removeParentNode('para')]]
- [[ o.address_id and o.address_id.zip or '']] [[ o.address_id and o.address_id.city or '']]
- [[ (o.address_id and o.address_id.state_id and o.address_id.state_id.name) or removeParentNode('para') ]]
- [[ o.address_id and o.address_id.country_id and o.address_id.country_id.name or '']]
+ [[ o.address_id and o.address_id and display_address(o.address_id) ]]
diff --git a/addons/delivery/security/ir.model.access.csv b/addons/delivery/security/ir.model.access.csv
index 52e60995519..7403b55f618 100644
--- a/addons/delivery/security/ir.model.access.csv
+++ b/addons/delivery/security/ir.model.access.csv
@@ -1,8 +1,8 @@
-"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
-"access_delivery_carrier","delivery.carrier","model_delivery_carrier","base.group_sale_salesman",1,0,0,0
-"access_delivery_grid","delivery.grid","model_delivery_grid","base.group_sale_salesman",1,0,0,0
-"access_delivery_grid_line","delivery.grid.line","model_delivery_grid_line","base.group_sale_salesman",1,0,0,0
-"access_delivery_carrier_manager","delivery.carrier","model_delivery_carrier","base.group_sale_manager",1,1,1,1
-"access_delivery_grid_manager","delivery.grid","model_delivery_grid","base.group_sale_manager",1,1,1,1
-"access_delivery_grid_line_manager","delivery.grid.line","model_delivery_grid_line","base.group_sale_manager",1,1,1,1
-"access_delivery_carrier_partner_manager","delivery.carrier partner_manager","model_delivery_carrier","base.group_partner_manager",1,0,0,0
+id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
+access_delivery_carrier,delivery.carrier,model_delivery_carrier,base.group_sale_salesman,1,0,0,0
+access_delivery_grid,delivery.grid,model_delivery_grid,base.group_sale_salesman,1,0,0,0
+access_delivery_grid_line,delivery.grid.line,model_delivery_grid_line,base.group_sale_salesman,1,0,0,0
+access_delivery_carrier_manager,delivery.carrier,model_delivery_carrier,base.group_sale_manager,1,1,1,1
+access_delivery_grid_manager,delivery.grid,model_delivery_grid,base.group_sale_manager,1,1,1,1
+access_delivery_grid_line_manager,delivery.grid.line,model_delivery_grid_line,base.group_sale_manager,1,1,1,1
+access_delivery_carrier_partner_manager,delivery.carrier partner_manager,model_delivery_carrier,base.group_partner_manager,1,0,0,0
diff --git a/addons/document/__openerp__.py b/addons/document/__openerp__.py
index 6b9cbd21f48..0a403dcaa35 100644
--- a/addons/document/__openerp__.py
+++ b/addons/document/__openerp__.py
@@ -21,7 +21,7 @@
{
- 'name': 'Integrated Document Management System',
+ 'name': 'Document Management System',
'version': '2.1',
'category': 'Knowledge Management',
'complexity': "normal",
diff --git a/addons/document/board_document_view.xml b/addons/document/board_document_view.xml
index 471b2966be5..e3b1b4c9c64 100644
--- a/addons/document/board_document_view.xml
+++ b/addons/document/board_document_view.xml
@@ -7,22 +7,15 @@
form
-
+
-
-
-
-
@@ -65,7 +58,7 @@
form
-
+
diff --git a/addons/document/report/document_report_view.xml b/addons/document/report/document_report_view.xml
index e7fa4efb5be..e6e1847cd56 100644
--- a/addons/document/report/document_report_view.xml
+++ b/addons/document/report/document_report_view.xml
@@ -120,14 +120,6 @@
-
- Files by Resource Type
- report.document.user
-
- form
- graph,tree
-
-
diff --git a/addons/document/security/document_security.xml b/addons/document/security/document_security.xml
index bc0281e388c..74f3426fc50 100644
--- a/addons/document/security/document_security.xml
+++ b/addons/document/security/document_security.xml
@@ -3,7 +3,8 @@
- Knowledge / User
+ User
+
diff --git a/addons/document/security/ir.model.access.csv b/addons/document/security/ir.model.access.csv
index d840055e89a..36f0aa86dff 100644
--- a/addons/document/security/ir.model.access.csv
+++ b/addons/document/security/ir.model.access.csv
@@ -1,25 +1,25 @@
-"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
-"access_document_directory_all","document.directory all","model_document_directory",,1,0,0,0
-"access_document_directory_group_document_manager","document.directory document manager","model_document_directory","base.group_system",1,1,1,1
-"access_document_directory_group_knowledge","document.directory modify","model_document_directory","base.group_document_user",1,1,1,1
-"access_document_directory_content_all","document.directory.content all","model_document_directory_content",,1,0,0,0
-"access_document_directory_content_group_document_manager","document.directory.content document manager","model_document_directory_content","base.group_system",1,1,1,1
-"access_document_directory_content_type_group_document_manager","document.directory.content.type document manager","model_document_directory_content_type","base.group_system",1,1,1,1
-"access_document_directory_content_type_group_system","document.directory.content.type group system","model_document_directory_content_type","base.group_user",1,0,0,0
-"access_document_storage_group_document_manager","document.storage document manager","model_document_storage","base.group_system",1,1,1,1
-"access_document_storage_group_system","document.storage group system","model_document_storage","base.group_user",1,0,0,0
-"access_document_storage_group_user","document.storage group user","model_document_storage","base.group_document_user",1,1,1,1
-"access_ir_attachment_group_user","ir.attachment user","base.model_ir_attachment","base.group_document_user",1,1,1,1
-"access_ir_attachment_group_system","ir.attachment system","base.model_ir_attachment","base.group_system",1,0,0,0
-"access_res_partner_group_user","res.partner user","base.model_res_partner","base.group_document_user",1,1,1,0
-"access_document_directory_dctx_all","document.directory.dctx all","model_document_directory_dctx",,1,0,0,0
-"access_document_directory_dctx_group_document_manager","document.directory.dctx document manager","model_document_directory_dctx","base.group_system",1,1,1,1
-"access_report_document_user_group_document_manager","report.document.user document manager","model_report_document_user","base.group_system",1,0,0,0
-"access_report_files_partner_group_document_manager","report.files.partner document manager","model_report_files_partner","base.group_system",1,0,0,0
-"access_report_document_file_group_document_manager","report.document.file document manager","model_report_document_file","base.group_system",1,0,0,0
-"access_report_document_wall_group_document_manager","report.document.wall document manager","model_report_document_wall","base.group_system",1,0,0,0
-"access_report_document_wall_group_system","report.document.wall group system","model_report_document_wall","base.group_system",1,0,0,0
-"access_report_files_partner_group_document","report.files.partner document manager","model_report_files_partner","base.group_document_user",1,0,0,0
-"access_report_document_file_group_document","report.document.file document manager","model_report_document_file","base.group_document_user",1,0,0,0
-"access_report_document_wall_group_document","report.document.wall document manager","model_report_document_wall","base.group_document_user",1,0,0,0
-"access_report_document_user_knowledgeuser","report.document.user knowledgeuser","document.model_report_document_user","base.group_document_user",1,0,0,0
+id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
+access_document_directory_all,document.directory all,model_document_directory,,1,0,0,0
+access_document_directory_group_document_manager,document.directory document manager,model_document_directory,base.group_system,1,1,1,1
+access_document_directory_group_knowledge,document.directory modify,model_document_directory,base.group_document_user,1,1,1,1
+access_document_directory_content_all,document.directory.content all,model_document_directory_content,,1,0,0,0
+access_document_directory_content_group_document_manager,document.directory.content document manager,model_document_directory_content,base.group_system,1,1,1,1
+access_document_directory_content_type_group_document_manager,document.directory.content.type document manager,model_document_directory_content_type,base.group_system,1,1,1,1
+access_document_directory_content_type_group_system,document.directory.content.type group system,model_document_directory_content_type,base.group_user,1,0,0,0
+access_document_storage_group_document_manager,document.storage document manager,model_document_storage,base.group_system,1,1,1,1
+access_document_storage_group_system,document.storage group system,model_document_storage,base.group_user,1,0,0,0
+access_document_storage_group_user,document.storage group user,model_document_storage,base.group_document_user,1,1,1,1
+access_ir_attachment_group_user,ir.attachment user,base.model_ir_attachment,base.group_document_user,1,1,1,1
+access_ir_attachment_group_system,ir.attachment system,base.model_ir_attachment,base.group_system,1,0,0,0
+access_res_partner_group_user,res.partner user,base.model_res_partner,base.group_document_user,1,1,1,0
+access_document_directory_dctx_all,document.directory.dctx all,model_document_directory_dctx,,1,0,0,0
+access_document_directory_dctx_group_document_manager,document.directory.dctx document manager,model_document_directory_dctx,base.group_system,1,1,1,1
+access_report_document_user_group_document_manager,report.document.user document manager,model_report_document_user,base.group_system,1,0,0,0
+access_report_files_partner_group_document_manager,report.files.partner document manager,model_report_files_partner,base.group_system,1,0,0,0
+access_report_document_file_group_document_manager,report.document.file document manager,model_report_document_file,base.group_system,1,0,0,0
+access_report_document_wall_group_document_manager,report.document.wall document manager,model_report_document_wall,base.group_system,1,0,0,0
+access_report_document_wall_group_system,report.document.wall group system,model_report_document_wall,base.group_system,1,0,0,0
+access_report_files_partner_group_document,report.files.partner document manager,model_report_files_partner,base.group_document_user,1,0,0,0
+access_report_document_file_group_document,report.document.file document manager,model_report_document_file,base.group_document_user,1,0,0,0
+access_report_document_wall_group_document,report.document.wall document manager,model_report_document_wall,base.group_document_user,1,0,0,0
+access_report_document_user_knowledgeuser,report.document.user knowledgeuser,document.model_report_document_user,base.group_document_user,1,0,0,0
diff --git a/addons/document/test/document_test2.yml b/addons/document/test/document_test2.yml
index 65312eaf10d..be91bfb3644 100644
--- a/addons/document/test/document_test2.yml
+++ b/addons/document/test/document_test2.yml
@@ -80,4 +80,3 @@
-
!python {model: document.directory}: |
self.unlink(cr, uid, [ref('dir_tests')])
- cr.commit()
diff --git a/addons/document_ftp/security/ir.model.access.csv b/addons/document_ftp/security/ir.model.access.csv
index 0a6c192eb56..4a08a4aa60d 100644
--- a/addons/document_ftp/security/ir.model.access.csv
+++ b/addons/document_ftp/security/ir.model.access.csv
@@ -1,2 +1 @@
-"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
-
+id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
diff --git a/addons/document_ftp/test/document_ftp_test2.yml b/addons/document_ftp/test/document_ftp_test2.yml
index 33ce1416ec8..eb86a99407d 100644
--- a/addons/document_ftp/test/document_ftp_test2.yml
+++ b/addons/document_ftp/test/document_ftp_test2.yml
@@ -100,11 +100,11 @@
fdata = StringIO('abcd')
ftp.storbinary('STOR test2.txt', fdata)
ftp.close()
- cr.commit()
-
I look for the "test2.txt" file at the server
-
!python {model: ir.attachment }: |
+ cr.rollback() # restart transaction to see changes (FTP-FS uses its own cursor)
ids = self.search(cr, uid, [('name', '=', 'test2.txt')])
assert ids, "No test2.txt file found."
-
@@ -116,11 +116,11 @@
ftp = te.get_ftp_folder(cr, uid, self, 'Documents')
ftp.delete('test2.txt')
ftp.close()
- cr.commit()
-
I check at the server that test2.txt is deleted
-
!python {model: ir.attachment }: |
+ cr.rollback() # restart transaction to see changes (FTP-FS uses its own cursor)
ids = self.search(cr, uid, [('name', '=', 'test2.txt')])
assert not ids, "test2.txt file can still be found."
-
@@ -133,7 +133,7 @@
fdata = StringIO('abcd')
ftp.storbinary('STOR test2.txt', fdata)
ftp.close()
- cr.commit()
+ cr.rollback() # restart transaction to see changes (FTP-FS uses its own cursor)
-
I delete the test2.txt from the server (RPC).
-
diff --git a/addons/document_ftp/test/document_ftp_test4.yml b/addons/document_ftp/test/document_ftp_test4.yml
index 0a3ff33333e..9b311f64605 100644
--- a/addons/document_ftp/test/document_ftp_test4.yml
+++ b/addons/document_ftp/test/document_ftp_test4.yml
@@ -4,7 +4,6 @@
!python {model: ir.attachment}: |
from document_ftp import test_easyftp as te
ftp = te.get_plain_ftp(timeout=1.0)
- cr.commit()
- |
I create two partners 'Partner1' and 'Partner2'.
I create three partner categories: 'none', 'pat1' and 'all'
@@ -54,7 +53,6 @@
dirs = ftp.nlst()
for dir in [ 'All Partner1+2', 'No partners', 'Pat 1' ]:
assert dir in dirs, "Dir %s not in folder" % dir
- cr.commit()
-
I create a 'partners' folder by the first resource one.
-
@@ -65,6 +63,8 @@
ressource_type_id: base.model_res_partner
domain: "[('category_id','in',[active_id])]"
ressource_parent_type_id : base.model_res_partner_category
+-
+ I commit (because FTP operations are on different transaction)
-
!python {model: document.directory, id: }: |
cr.commit()
@@ -81,7 +81,6 @@
for dir in correct:
res = ftp.nlst(dir+'/Partners of Test')
assert res == correct[dir], "Dir %s falsely contains %s" %(dir, res)
- cr.commit()
-
I create an ir.attachment, attached (not related) to Partner1
-
@@ -89,6 +88,11 @@
name: File of pat1
res_model: res.partner
res_id: !eval ref("tpartner1")
+-
+ I commit (because FTP operations are on different transaction)
+-
+ !python {model: document.directory, id: }: |
+ cr.commit()
-
I check that pat1/Partner1 folder has the file.
I check that all/Partner1 folder has the file
@@ -109,6 +113,7 @@
ftp = te.get_ftp_folder(cr, uid, self, 'Documents/Partners Testing/Pat 1/Partners of Test/Partner 1')
fdata = StringIO('abcd')
ftp.storbinary('STOR pat1-dynamic.txt', fdata)
+ cr.rollback() # restart transaction to see changes (FTP-FS uses its own cursor)
-
I check at the server that the file is attached to Partner1
-
@@ -159,7 +164,8 @@
from cStringIO import StringIO
ftp = te.get_ftp_folder(cr, uid, self, 'Documents/Partners Testing/Pat 1/Partners of Test/Partner 1')
ftp.delete('pat1-dynamic.txt')
- ftp.close()
+ ftp.close()
+ cr.rollback() # restart transaction to see changes (FTP-FS uses its own cursor)
-
I delete the Partners Testing folder, "File of pat1" file, Partner and Partner category.
@@ -177,5 +183,5 @@
partner_categ_pool.unlink(cr, uid, [ref('tpat_categ_all')])
partner_pool.unlink(cr, uid, [ref('tpartner1')])
partner_pool.unlink(cr, uid, [ref('tpartner_2')])
- cr.commit()
+ cr.commit() #required because all the operations via FTP were committed
diff --git a/addons/document_ics/__openerp__.py b/addons/document_ics/__openerp__.py
index 7d718266d6a..115f5250cde 100644
--- a/addons/document_ics/__openerp__.py
+++ b/addons/document_ics/__openerp__.py
@@ -21,9 +21,9 @@
{
- 'name': 'Support for iCal based on Document Management System',
+ 'name': 'iCal Support',
'version': '1.0',
- 'category': 'Hidden',
+ 'category': 'Knowledge Management',
'complexity': "normal",
'description': """
Allows to synchronise calendars with others applications.
diff --git a/addons/document_ics/security/ir.model.access.csv b/addons/document_ics/security/ir.model.access.csv
index a89c5b296a7..73da3a1aaac 100644
--- a/addons/document_ics/security/ir.model.access.csv
+++ b/addons/document_ics/security/ir.model.access.csv
@@ -1,3 +1,3 @@
-"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
-"access_document_directory_ics_fields_all","document.directory.ics.fields all","model_document_directory_ics_fields",,1,0,0,0
-"access_document_directory_ics_fields_manager","document.directory.ics.fields group system","model_document_directory_ics_fields","base.group_system",1,1,1,1
+id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
+access_document_directory_ics_fields_all,document.directory.ics.fields all,model_document_directory_ics_fields,,1,0,0,0
+access_document_directory_ics_fields_manager,document.directory.ics.fields group system,model_document_directory_ics_fields,base.group_system,1,1,1,1
diff --git a/addons/document_webdav/security/ir.model.access.csv b/addons/document_webdav/security/ir.model.access.csv
index 987f7a4f90a..fa81bcee2e2 100644
--- a/addons/document_webdav/security/ir.model.access.csv
+++ b/addons/document_webdav/security/ir.model.access.csv
@@ -1,5 +1,5 @@
-"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
-"access_webdav_dir_property_all","webdav.dir.property all","model_document_webdav_dir_property",,1,0,0,0
-"access_webdav_dir_property_group_doc_manager","webdav.dir.property document manager","model_document_webdav_dir_property","base.group_system",1,1,1,1
-"access_webdav_dir_property_group_system","webdav.dir.property group system","model_document_webdav_dir_property","base.group_system",1,1,1,1
-"access_webdav_file_property_all","webdav.file.property all","model_document_webdav_file_property",,1,1,1,1
+id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
+access_webdav_dir_property_all,webdav.dir.property all,model_document_webdav_dir_property,,1,0,0,0
+access_webdav_dir_property_group_doc_manager,webdav.dir.property document manager,model_document_webdav_dir_property,base.group_system,1,1,1,1
+access_webdav_dir_property_group_system,webdav.dir.property group system,model_document_webdav_dir_property,base.group_system,1,1,1,1
+access_webdav_file_property_all,webdav.file.property all,model_document_webdav_file_property,,1,1,1,1
diff --git a/addons/edi/__openerp__.py b/addons/edi/__openerp__.py
index 4d96780b10c..07b189e501d 100644
--- a/addons/edi/__openerp__.py
+++ b/addons/edi/__openerp__.py
@@ -37,6 +37,7 @@ technical OpenERP documentation at http://doc.openerp.com
'author': 'OpenERP SA',
'website': 'http://www.openerp.com',
'depends': ['base', 'email_template'],
+ 'icon': '/edi/static/src/img/knowledge.png',
'data': [
'security/ir.model.access.csv',
],
diff --git a/addons/edi/security/ir.model.access.csv b/addons/edi/security/ir.model.access.csv
index f1942397ac5..b1f470d80ae 100644
--- a/addons/edi/security/ir.model.access.csv
+++ b/addons/edi/security/ir.model.access.csv
@@ -1,3 +1,3 @@
-"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
-"access_ir_edi_all_read","access_ir_edi_all_read","model_edi_document",,1,0,0,0
-"access_ir_edi_employee_create","access_ir_edi_employee_create","model_edi_document","base.group_user",1,0,1,0
\ No newline at end of file
+id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
+access_ir_edi_all_read,access_ir_edi_all_read,model_edi_document,,1,0,0,0
+access_ir_edi_employee_create,access_ir_edi_employee_create,model_edi_document,base.group_user,1,0,1,0
diff --git a/addons/edi/static/src/img/knowledge.png b/addons/edi/static/src/img/knowledge.png
new file mode 100644
index 00000000000..35c8d5706fd
Binary files /dev/null and b/addons/edi/static/src/img/knowledge.png differ
diff --git a/addons/email_template/__openerp__.py b/addons/email_template/__openerp__.py
index 2ab7f194d18..9aca39f56e8 100644
--- a/addons/email_template/__openerp__.py
+++ b/addons/email_template/__openerp__.py
@@ -21,9 +21,9 @@
##############################################################################
{
- "name" : "Automated E-Mails",
+ "name" : "E-Mail Templates",
"version" : "1.1",
- "author" : "Openlabs",
+ "author" : "OpenERP,OpenLabs",
"website" : "http://openerp.com",
"category" : "Marketing",
'complexity': "expert",
diff --git a/addons/email_template/security/ir.model.access.csv b/addons/email_template/security/ir.model.access.csv
index f5f61240a96..d2d6adf3bf3 100644
--- a/addons/email_template/security/ir.model.access.csv
+++ b/addons/email_template/security/ir.model.access.csv
@@ -1,4 +1,5 @@
-"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
-"access_email_template","email.template","model_email_template",,1,0,0,0
-"access_email_template_system","email.template system","model_email_template","base.group_system",1,1,1,1
-"access_email_template_manager","email.template","model_email_template",,1,1,1,1
+id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
+access_email_template,email.template,model_email_template,,1,0,0,0
+access_email_template_system,email.template system,model_email_template,base.group_system,1,1,1,1
+access_email_template_manager,email.template,model_email_template,,1,1,1,1
+access_email_template_preview_system,email.template.preview system,model_email_template_preview,base.group_system,1,1,1,1
diff --git a/addons/event/__openerp__.py b/addons/event/__openerp__.py
index 67d45c39fdb..131f6d40b0a 100644
--- a/addons/event/__openerp__.py
+++ b/addons/event/__openerp__.py
@@ -21,9 +21,9 @@
{
- 'name': 'Event',
+ 'name': 'Events Organisation',
'version': '0.1',
- 'category': 'Hidden',
+ 'category': 'Tools',
'complexity': "easy",
'description': """
Organization and management of Events.
@@ -42,7 +42,6 @@ Note that:
'depends': ['crm', 'account', 'marketing', 'mail'],
'init_xml': [],
'update_xml': [
- 'security/event_security.xml',
'security/ir.model.access.csv',
'wizard/event_confirm_registration_view.xml',
'wizard/event_confirm_view.xml',
@@ -54,7 +53,11 @@ Note that:
'res_partner_view.xml',
],
'demo_xml': ['event_demo.xml'],
- 'test': ['test/test_event.yml'],
+ 'test': ['test/process/event_confirm2done.yml',
+ 'test/process/event_draft2cancel.yml',
+ 'test/process/partner_register2invoice.yml',
+ 'test/ui/duplicate_event.yml',
+ 'test/ui/demo_data.yml'],
'installable': True,
'active': False,
'certificate': '0083059161581',
diff --git a/addons/event/board_association_view.xml b/addons/event/board_association_view.xml
index 47c5e65f196..02d45f03dc1 100644
--- a/addons/event/board_association_view.xml
+++ b/addons/event/board_association_view.xml
@@ -40,7 +40,7 @@
form
-
+
68.00
+ True
+ True
500
@@ -74,9 +76,9 @@
24.00
+ 50
350
-
Conference on ERP Buisness
@@ -92,7 +94,7 @@
Thanks for registration. The conference will begin at 2 PM and will be given by Mr. Pinckaers.
-
+
@@ -126,5 +128,16 @@
+
+
+
+
+ 5
+ Ticket for Conference
+ 20
+
+
+
+
diff --git a/addons/event/event_view.xml b/addons/event/event_view.xml
index 6a057fe204d..31fb353c113 100644
--- a/addons/event/event_view.xml
+++ b/addons/event/event_view.xml
@@ -388,7 +388,7 @@
-
+
@@ -398,32 +398,6 @@
context="{'mail.compose.message.mode':'reply', 'message_id':active_id}"
icon="terp-mail-replied" type="action" />
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\n"
"Language-Team: Czech \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-11-05 04:58+0000\n"
-"X-Generator: Launchpad (build 14231)\n"
+"X-Launchpad-Export-Date: 2011-11-26 05:49+0000\n"
+"X-Generator: Launchpad (build 14381)\n"
"X-Poedit-Language: Czech\n"
#. module: event
@@ -220,7 +220,7 @@ msgstr "Odpovědět"
#. module: event
#: model:ir.actions.act_window,name:event.open_board_associations_manager
msgid "Event Dashboard"
-msgstr "Nástěnka uválosti"
+msgstr "Nástěnka události"
#. module: event
#: model:event.event,name:event.event_1
diff --git a/addons/event/report/report_event_registration.py b/addons/event/report/report_event_registration.py
index e78179b9b5e..3ef6ecb6e3d 100644
--- a/addons/event/report/report_event_registration.py
+++ b/addons/event/report/report_event_registration.py
@@ -100,6 +100,7 @@ class report_event_registration(osv.osv):
event_registration c ON (e.id=c.event_id)
LEFT JOIN
event_type t ON (e.type=t.id)
+ WHERE c.active = 'true'
GROUP BY
to_char(e.date_begin, 'YYYY'),
to_char(e.date_begin, 'MM'),
diff --git a/addons/event/security/event_security.xml b/addons/event/security/event_security.xml
deleted file mode 100644
index c3c70c94d93..00000000000
--- a/addons/event/security/event_security.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
-
- Marketing / User
-
-
-
- Marketing / Manager
-
-
-
-
- Sales / Manager
-
-
-
- Sales / User
-
-
-
-
diff --git a/addons/event/security/ir.model.access.csv b/addons/event/security/ir.model.access.csv
index 59651dfa007..f79d141f148 100644
--- a/addons/event/security/ir.model.access.csv
+++ b/addons/event/security/ir.model.access.csv
@@ -1,16 +1,15 @@
-"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
-"access_event_type","event.type","model_event_type","marketing.group_marketing_user",1,0,0,0
-"access_event_type_manager","event.type manager","model_event_type","marketing.group_marketing_manager",1,1,1,1
-"access_event_event","event.event","model_event_event","marketing.group_marketing_user",1,1,1,0
-"access_event_registration","event.registration","model_event_registration","marketing.group_marketing_user",1,1,1,0
-"access_report_event_registration","report.event.registration","model_report_event_registration","marketing.group_marketing_user",1,1,1,1
-"access_event_event_manager","event.event manager","model_event_event","marketing.group_marketing_manager",1,0,0,0
-"access_event_registration_manager","event.registration manager","model_event_registration","marketing.group_marketing_manager",1,0,0,0
-"access_crm_case_section_manager","crm.case.section manager","crm.model_crm_case_section","marketing.group_marketing_manager",1,1,1,1
-"access_product_product","product.product.product manager","product.model_product_product","marketing.group_marketing_manager",1,1,1,1
-"access_report_event_registration","report.event.registration","model_report_event_registration","marketing.group_marketing_manager",1,1,1,1
-"access_event_registration_badge_manager","event.registration.badge manager","model_event_registration_badge","marketing.group_marketing_manager",1,1,1,1
-"access_event_event_sale_salesman","event.event.sale","model_event_event","base.group_sale_salesman",1,0,0,0
-"access_account_account_invoice_manager","account.account.invoice","account.model_account_invoice","marketing.group_marketing_manager",1,0,0,0
-"access_event_registration_badge","event.registration.badge","model_event_registration_badge","marketing.group_marketing_user",1,0,0,0
-"access_event_registration_sale_user","event.registration.sale.user","model_event_registration","base.group_sale_salesman",1,0,0,0
+id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
+access_event_type,event.type,model_event_type,marketing.group_marketing_user,1,0,0,0
+access_event_type_manager,event.type manager,model_event_type,marketing.group_marketing_manager,1,1,1,1
+access_event_event,event.event,model_event_event,marketing.group_marketing_user,1,1,1,0
+access_event_registration,event.registration,model_event_registration,marketing.group_marketing_user,1,1,1,0
+access_report_event_registration,report.event.registration,model_report_event_registration,marketing.group_marketing_user,1,1,1,1
+access_event_event_manager,event.event manager,model_event_event,marketing.group_marketing_manager,1,0,0,0
+access_event_registration_manager,event.registration manager,model_event_registration,marketing.group_marketing_manager,1,0,0,0
+access_crm_case_section_manager,crm.case.section manager,crm.model_crm_case_section,marketing.group_marketing_manager,1,1,1,1
+access_product_product,product.product.product manager,product.model_product_product,marketing.group_marketing_manager,1,1,1,1
+access_event_registration_badge_manager,event.registration.badge manager,model_event_registration_badge,marketing.group_marketing_manager,1,1,1,1
+access_event_event_sale_salesman,event.event.sale,model_event_event,base.group_sale_salesman,1,0,0,0
+access_account_account_invoice_manager,account.account.invoice,account.model_account_invoice,marketing.group_marketing_manager,1,0,0,0
+access_event_registration_badge,event.registration.badge,model_event_registration_badge,marketing.group_marketing_user,1,0,0,0
+access_event_registration_sale_user,event.registration.sale.user,model_event_registration,base.group_sale_salesman,1,0,0,0
diff --git a/addons/event/test/process/event_confirm2done.yml b/addons/event/test/process/event_confirm2done.yml
new file mode 100644
index 00000000000..4d5542896f7
--- /dev/null
+++ b/addons/event/test/process/event_confirm2done.yml
@@ -0,0 +1,22 @@
+-
+ I want to organize one conference event on "OpenERP Business", Customer subscribe/join
+ into "Conference on OpenERP Business" with 6 tickets, first I confim this event.
+-
+ !python {model: event.event}: |
+ self.button_confirm(cr, uid, [ref("event_0")])
+-
+ I Check that Event is "confirmed", and Its automatically sending mail to registered
+ partner which joined to this event.
+-
+ !assert {model: event.event, id: event_0}:
+ - state == 'confirm', "Event should be confirmed."
+-
+ After completed event, I close this event.
+-
+ !python {model: event.event}: |
+ self.button_done(cr, uid, [ref("event_0")])
+-
+ Check that conference is in "close" state.
+-
+ !assert {model: event.event, id: event_0}:
+ - state == 'done', "Event should be Closed."
diff --git a/addons/event/test/process/event_draft2cancel.yml b/addons/event/test/process/event_draft2cancel.yml
new file mode 100644
index 00000000000..48cb102f3e8
--- /dev/null
+++ b/addons/event/test/process/event_draft2cancel.yml
@@ -0,0 +1,22 @@
+-
+ I want to organize event and its need Minimum 50 Registrations to confirm/start
+ this Event, but Only 10 registration confirm for this event, I confirm this event.
+-
+ !python {model: event.event}: |
+ self.button_confirm(cr, uid, [ref("event_1")])
+-
+ Now I cheked for event and It should not be confirm because registrations for
+ this event is below limit.
+-
+ !assert {model: event.event, id: event_1}:
+ - state == 'confirm', "Event should be confirm."
+-
+ So I cancel this Event
+-
+ !python {model: event.event}: |
+ self.button_cancel(cr, uid, [ref("event_1")])
+-
+ I check event should be cancel.
+-
+ !assert {model: event.event, id: event_1}:
+ - state == 'cancel', "Event should be cancel"
diff --git a/addons/event/test/process/partner_register2invoice.yml b/addons/event/test/process/partner_register2invoice.yml
new file mode 100644
index 00000000000..f8748afee2f
--- /dev/null
+++ b/addons/event/test/process/partner_register2invoice.yml
@@ -0,0 +1,62 @@
+-
+ I want to organize one conference event, First I registered partner for event
+ with 5 tickets.
+-
+ !python {model: partner.event.registration}: |
+ context.update({'active_model': 'res.partner', 'active_ids': [ref("base.res_partner_ericdubois0")], 'active_id': ref("base.res_partner_ericdubois0")})
+ register = self.create(cr, uid, {'event_id': ref('event_1'),'nb_register': 5}, context=context)
+ self.open_registration(cr, uid, [register], context=context)
+-
+ Now I check for registration created base on partner.
+-
+ !python {model: event.registration}: |
+ ids = self.search(cr, uid, [('partner_id','=',ref("base.res_partner_ericdubois0")), ('event_id', '=', ref('event_1'))])
+ assert ids, "Registration should be create here."
+-
+ I confirm registration process.
+-
+ !python {model: event.registration}: |
+ self.check_confirm(cr, uid, [ref("reg_1_1")])
+-
+ I Check that Registration is confirm.
+-
+ !assert {model: event.registration, id: reg_1_1}:
+ - state == 'open', "Registration should be open here."
+-
+ After confirmation of partner, I create invoice base on costing of event.
+-
+ !python {model: event.registration}: |
+ self.action_invoice_create(cr, uid, [ref("reg_1_1")])
+-
+ Now I Check for Invoice is created and Registration should be closed after invoice generated.
+-
+ !python {model: event.registration}: |
+ record = self.browse(cr, uid, [ref("reg_1_1")])[0]
+ assert record.invoice_id, "Invoice should be generated"
+ assert record.invoice_id.state == "draft", "Invoice state should be draft"
+ assert record.invoice_id.partner_id == record.partner_id, "Customer is not correspond with registration"
+ assert record.invoice_id.type == 'out_invoice', "Invoice type is not correct"
+ assert record.invoice_id.origin == record.event_product, "Invoice origin is not correct"
+ assert record.invoice_id.amount_total == record.price_subtotal, "Invoice amount is not correct"
+ assert record.state == "done", "Registration should be closed after invoice generated"
+-
+ Now I check for same partner registration for two diffrent event and I create group invoices for same partner.
+-
+ !python {model: event.make.invoice}: |
+ context.update({'active_model': 'event.make.invoice', 'active_ids': [ref("reg_0_1"), ref("reg_0_2")], 'active_id': ref("reg_0_1")})
+ invoice = self.create(cr, uid, {'grouped': True}, context=context)
+ self.make_invoice(cr, uid, [invoice], context=context)
+-
+ Now I Check for group Invoice is created with total amount of both registration
+ and Registration should be closed after invoice generated.
+-
+ !python {model: event.registration}: |
+ reg_data_1 = self.browse(cr, uid, [ref("reg_0_1")])[0]
+ reg_data_2 = self.browse(cr, uid, [ref("reg_0_2")])[0]
+ assert reg_data_1.invoice_id, "Invoice should be generated"
+ assert reg_data_1.invoice_id.state == "draft", "Invoice state should be draft"
+ assert reg_data_1.invoice_id.partner_id == reg_data_1.partner_id, "Customer is not correspond with registration"
+ assert reg_data_1.invoice_id.type == 'out_invoice', "Invoice type is not correct"
+ assert reg_data_1.invoice_id.origin == reg_data_1.event_product, "Invoice origin is not correct"
+ assert reg_data_1.invoice_id.amount_total == (reg_data_1.price_subtotal + reg_data_2.price_subtotal), "Invoice total amount is not correct"
+ assert reg_data_1.state == "done", "Registration should be closed after invoice generated"
diff --git a/addons/event/test/test_event.yml b/addons/event/test/test_event.yml
deleted file mode 100644
index 5e35d79cab2..00000000000
--- a/addons/event/test/test_event.yml
+++ /dev/null
@@ -1,172 +0,0 @@
-- |
- In order to test the "Event Organisation" in Association system.
-- |
- I want to organize one conference event on "OpenERP Business".
-- |
- I'm creating new product "Conference Ticket" to specify registration Cost of conference.
--
- !record {model: product.product, id: product_product_ticketforconcert0}:
- categ_id: product.cat1
- list_price: 68.0
- name: Conference Ticket
-- |
- I'm creating Event type "Conference".
--
- !record {model: event.type, id: event_type_conference0}:
- name: Conferences
-- |
- I'm creating one Event "Conference on OpenERP Business" which will last from 1st of this month to 10th of this month.
--
- !record {model: event.event, id: event_event_conference0}:
- date_begin: !eval time.strftime('%Y-%m-01')
- date_end: !eval time.strftime('%Y-%m-10')
- name: Conference on OpenERP Business.
- product_id: 'product_product_ticketforconcert0'
- type: 'event_type_conference0'
- reply_to: 'info@customer.com'
-- |
- Check that the new conference event is "Draft" or not.
--
- !assert {model: event.event, id: event_event_conference0}:
- - state == 'draft', "Event should be in draft by default when first time created"
-- |
- Need Minimum 10 Registrations to confirm/start this Conference Event and does not allowed more than 100 Registrations.
-- |
- So I set Minimum and Maximum Registrations limit.
--
- !python {model: event.event}: |
- self.write(cr, uid, [ref('event_event_conference0')], {'register_max': 100, 'register_min': 10})
-- |
- I'm doing to confirm that conference event.
--
- !python {model: event.event}: |
- self.button_confirm(cr, uid, [ref("event_event_conference0")])
-- |
- But this conference event need minimum 10 Confirmed Registrations. so Check that Event is not "confirmed".
--
- !assert {model: event.event, id: event_event_conference0}:
- - state != 'confirm', "Event should not confirmed if minimum registrations does not reached"
-- |
- "Mark Johnson" want to subscribe/join into "Conference on OpenERP Business" with 10 tickets.
-- |
- I'm creating new partner "Mark Johnson" with his email "info@mycustomer.com".
--
- !record {model: res.partner, id: res_partner_markjohnson0}:
- address:
- - city: Bruxelles
- country_id: base.be
- job_ids:
- - contact_id: base_contact.res_partner_contact_jacot0
- function: CTO
- name: base.res_partner_maxtor
- sequence_partner: 0.0
- state: current
- street: Rue des Palais 51, bte 33
- type: default
- zip: '1000'
- email: 'info@mycustomer.com'
- name: Mark Johnson
-
-- |
- I'm creating Registration for "Mark Johnson" on "Conference on OpenERP Business" with 10 tickets.
--
- !record {model: event.registration, id: event_registration_registrationjacot0}:
- contact_id: base_contact.res_partner_contact_jacot0
- event_id: event.event_event_conference0
- partner_id: event.res_partner_markjohnson0
- partner_invoice_id: event.res_partner_markjohnson0
- event_product: Conference Ticket
- unit_price: 68.0
- nb_register: 10
-- |
- I'm going to Open that Registration.
--
- !python {model: event.registration}: |
- self.check_confirm(cr, uid, [ref("event_registration_registrationjacot0")])
-- |
- Check that Registration is in "Open" state or not.
--
- !assert {model: event.registration, id: event_registration_registrationjacot0}:
- - state == 'open', "Registration should be open here."
-
-- |
- I'm again trying to confirm that conference event.
--
- !python {model: event.event}: |
- self.button_confirm(cr, uid, [ref("event_event_conference0")])
-
-- |
- Now Minimum requirement of Registration is fulfil. so Check that Event is "confirmed" or not.
--
- !assert {model: event.event, id: event_event_conference0}:
- - state == 'confirm', "Event should be confirmed here."
-
-- |
- I'm creating invoice of Registration of "Mark Johnson" on "Conference on OpenERP Business".
--
- !python {model: event.registration}: |
- self.action_invoice_create(cr, uid, [ref("event_registration_registrationjacot0")])
-
-- |
- Check Invoice of Registration of "Mark Johnson" is created or not.
--
- !assert {model: event.registration, id: event_registration_registrationjacot0}:
- - invoice_id != False, "Invoice should be generated"
-
-- |
- Check Registration of "Mark Johnson" is closed or not after invoice generated.
--
- !assert {model: event.registration, id: event_registration_registrationjacot0}:
- - state != 'done', "Registration should be closed after invoice generated"
-
-- |
- Now "Mark Johnson" want to another registration on "Conference on OpenERP Business" with 120 tickets.
-- |
- I'm creating new registration for "Mark Johnson" with 100 tickets.
--
- !record {model: event.registration, id: event_registration_registrationzen0}:
- event_id: event.event_event_conference0
- partner_id: event.res_partner_markjohnson0
- partner_invoice_id: event.res_partner_markjohnson0
- event_product: Conference Ticket
- unit_price: 68.0
- nb_register: 100
-
-- |
- I'm going to open "Mark Johnson" registration.
--
- !python {model: event.registration}: |
- self.check_confirm(cr, uid, [ref("event_registration_registrationzen0")])
-
-- |
- But conference event does not allow more than 100 Registrations. so Check that registration is not in "open" state.
--
- !assert {model: event.registration, id: event_registration_registrationzen0}:
- - state == 'draft', "Registration should be in draft by default."
-- |
- Now I'm modifying number of tickets of "Mark Johnson"'s registration with 90 tickets.
--
- !python {model: event.registration}: |
- self.write(cr, uid, [ref("event_registration_registrationzen0")], {'nb_register': 90})
-- |
- I'm again try to open "Mark Johnson" registration.
--
- !python {model: event.registration}: |
- self.check_confirm(cr, uid, [ref("event_registration_registrationzen0")])
-
-- |
- Check that registration "open" or not.
--
- !assert {model: event.registration, id: event_registration_registrationzen0}:
- - state == 'open', "Registration should be open here."
-- |
- I'm closing "Conference on OpenERP Business" Conference event
--
- !python {model: event.event}: |
- self.button_done(cr, uid, [ref("event_event_conference0")])
-- |
- Check that conference is in "close" state or not.
--
- !assert {model: event.event, id: event_event_conference0}:
- - state == 'done', "Registration should be Closed here."
-
diff --git a/addons/event/test/ui/demo_data.yml b/addons/event/test/ui/demo_data.yml
new file mode 100644
index 00000000000..2f48cf1a90b
--- /dev/null
+++ b/addons/event/test/ui/demo_data.yml
@@ -0,0 +1,32 @@
+-
+ I create event registation record to call event onchange and partner onchange.
+-
+ !record {model: event.registration, id: reg_0_1}:
+ event_id: event_0
+ partner_id: base.res_partner_asus
+ name: 'Ticket for Concert'
+-
+ I create event record to call product onchange and team onchange.
+-
+ !record {model: event.event, id: event_2}:
+ product_id: event_product_2
+ section_id: crm.section_sales_department
+ name: 'Conference on ERP Buisness'
+-
+ I call onchange event from event registration wizard.
+-
+ !python {model: partner.event.registration}: |
+ context.update({'active_id': ref("base.res_partner_ericdubois0")})
+ self.onchange_event_id(cr, uid, 1, ref("event_1"), context=context)
+-
+ I confirm event from wizard.
+-
+ !python {model: event.confirm}: |
+ context.update({'event_ids': [ref("event_2")]})
+ id = self.create(cr, uid , {})
+ self.confirm(cr, uid, [id], context=context)
+-
+ I call close registration process.
+-
+ !python {model: event.registration}: |
+ self.button_reg_close(cr, uid, [ref("reg_0_2")])
diff --git a/addons/event/test/ui/duplicate_event.yml b/addons/event/test/ui/duplicate_event.yml
new file mode 100644
index 00000000000..c1287353c67
--- /dev/null
+++ b/addons/event/test/ui/duplicate_event.yml
@@ -0,0 +1,16 @@
+-
+ Copy of event.
+-
+ !python {model: event.event}: |
+ try:
+ self.copy(cr, uid, ref("event_2"))
+ except:
+ pass
+-
+ Copy of event registarion.
+-
+ !python {model: event.registration}: |
+ try:
+ self.copy(cr, uid, ref("reg_1_1"))
+ except:
+ pass
\ No newline at end of file
diff --git a/addons/event/wizard/partner_event_registration.py b/addons/event/wizard/partner_event_registration.py
index b8521e404e2..45d56ddc41c 100644
--- a/addons/event/wizard/partner_event_registration.py
+++ b/addons/event/wizard/partner_event_registration.py
@@ -34,8 +34,8 @@ class partner_event_registration(osv.osv_memory):
'event_id': fields.many2one('event.event', 'Event'),
'event_type': fields.many2one('event.type', 'Type', readonly=True),
'unit_price': fields.float('Registration Cost', digits_compute=dp.get_precision('Sale Price')),
- 'start_date': fields.datetime('Start date', required=True, help="Beginning Date of Event", readonly=True),
- 'end_date': fields.datetime('Closing date', required=True, help="Closing Date of Event", readonly=True),
+ 'start_date': fields.datetime('Start date', help="Beginning Date of Event", readonly=True),
+ 'end_date': fields.datetime('Closing date', help="Closing Date of Event", readonly=True),
'nb_register': fields.integer('Number of Registration'),
}
_defaults = {
diff --git a/addons/event_project/__openerp__.py b/addons/event_project/__openerp__.py
index e8d110bc4f8..359a5a70ae3 100644
--- a/addons/event_project/__openerp__.py
+++ b/addons/event_project/__openerp__.py
@@ -20,9 +20,9 @@
##############################################################################
{
- 'name': 'Event Project - Create Retro-Planning to manage your Events',
+ 'name': 'Retro-Planning on Events',
'version': '0.1',
- 'category': 'Hidden/Link',
+ 'category': 'Tools',
'complexity': "easy",
'description': """
Organization and management of events.
diff --git a/addons/fetchmail/__openerp__.py b/addons/fetchmail/__openerp__.py
index b50c33b2394..99e3e02a909 100644
--- a/addons/fetchmail/__openerp__.py
+++ b/addons/fetchmail/__openerp__.py
@@ -21,11 +21,11 @@
##############################################################################
{
- "name" : "Fetch Emails",
+ "name" : "Email Gateway",
"version" : "1.0",
"depends" : ["base", 'mail'],
"author" : "OpenERP SA",
- "category": 'Customer Relationship Management',
+ "category": 'Tools',
"description": """
Retrieve incoming email on POP / IMAP servers
=============================================
diff --git a/addons/fetchmail/fetchmail_installer_view.xml b/addons/fetchmail/fetchmail_installer_view.xml
index b5bd7df80ca..918b7ecd430 100644
--- a/addons/fetchmail/fetchmail_installer_view.xml
+++ b/addons/fetchmail/fetchmail_installer_view.xml
@@ -1,19 +1,5 @@
-
- Setup Incoming Mail Servers
- ir.actions.act_window
- fetchmail.server
- form
- tree,form
-
- You can connect OpenERP to your incoming mail server so that documents (leads, tasks, issues, etc) are synchronized automatically with your incoming emails.
-
-
-
-
- 4
-
diff --git a/addons/fetchmail/fetchmail_view.xml b/addons/fetchmail/fetchmail_view.xml
index 4cd182c0818..0b9720a7503 100644
--- a/addons/fetchmail/fetchmail_view.xml
+++ b/addons/fetchmail/fetchmail_view.xml
@@ -32,7 +32,7 @@
-
+
@@ -132,7 +132,7 @@
diff --git a/addons/fetchmail/security/ir.model.access.csv b/addons/fetchmail/security/ir.model.access.csv
index bc5572de82d..7deea6eb9f4 100644
--- a/addons/fetchmail/security/ir.model.access.csv
+++ b/addons/fetchmail/security/ir.model.access.csv
@@ -1,3 +1,3 @@
-"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
-"access_fetchmail_server","fetchmail.server","model_fetchmail_server",,1,0,0,0
-"access_fetchmail_server","fetchmail.server","model_fetchmail_server","base.group_system",1,1,1,1
+id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
+access_fetchmail_server,fetchmail.server,model_fetchmail_server,,1,0,0,0
+access_fetchmail_server,fetchmail.server,model_fetchmail_server,base.group_system,1,1,1,1
diff --git a/addons/fetchmail_crm/__openerp__.py b/addons/fetchmail_crm/__openerp__.py
index 671aad4a871..5b02f4194ab 100644
--- a/addons/fetchmail_crm/__openerp__.py
+++ b/addons/fetchmail_crm/__openerp__.py
@@ -20,11 +20,11 @@
##############################################################################
{
- "name" : "Fetchmail for CRM",
+ "name" : "eMail Gateway for Leads",
"version" : "1.0",
"depends" : ["fetchmail", "crm"],
"author" : "OpenERP SA",
- "category": 'Hidden/Link',
+ "category": 'Hidden/Links',
"description": """
""",
'website': 'http://www.openerp.com',
diff --git a/addons/fetchmail_crm_claim/__openerp__.py b/addons/fetchmail_crm_claim/__openerp__.py
index 6b4a346ed51..d6d56ecf331 100644
--- a/addons/fetchmail_crm_claim/__openerp__.py
+++ b/addons/fetchmail_crm_claim/__openerp__.py
@@ -20,11 +20,11 @@
##############################################################################
{
- "name" : "Fetchmail for CRM Claim",
+ "name" : "eMail Gateway for CRM Claim",
"version" : "1.0",
"depends" : ["fetchmail", "crm_claim"],
"author" : "OpenERP SA",
- "category": 'Hidden/Link',
+ 'category': 'Hidden/Links',
"description": """
""",
'website': 'http://www.openerp.com',
diff --git a/addons/fetchmail_hr_recruitment/__openerp__.py b/addons/fetchmail_hr_recruitment/__openerp__.py
index 0925f2cbcc9..3ce76226888 100644
--- a/addons/fetchmail_hr_recruitment/__openerp__.py
+++ b/addons/fetchmail_hr_recruitment/__openerp__.py
@@ -20,11 +20,11 @@
##############################################################################
{
- "name" : "Fetchmail for Applicants",
+ "name" : "eMail Gateway for Applicants",
"version" : "1.0",
"depends" : ["fetchmail", "hr_recruitment"],
"author" : "OpenERP SA",
- "category": 'Hidden/Link',
+ "category": "Hidden/Links",
"description": """
""",
'website': 'http://www.openerp.com',
diff --git a/addons/fetchmail_project_issue/__openerp__.py b/addons/fetchmail_project_issue/__openerp__.py
index ca42ed6faaf..d4c4b4bbe70 100644
--- a/addons/fetchmail_project_issue/__openerp__.py
+++ b/addons/fetchmail_project_issue/__openerp__.py
@@ -20,11 +20,11 @@
##############################################################################
{
- "name" : "Fetchmail for Project Issue",
+ "name" : "eMail Gateway for Project Issues",
"version" : "1.0",
"depends" : ["fetchmail", "project_issue"],
"author" : "OpenERP SA",
- "category": 'Hidden/Link',
+ "category": "Hidden/Links",
"description": """
""",
'website': 'http://www.openerp.com',
diff --git a/addons/google_base_account/__openerp__.py b/addons/google_base_account/__openerp__.py
index 19afc18bf09..ec204f0f77c 100644
--- a/addons/google_base_account/__openerp__.py
+++ b/addons/google_base_account/__openerp__.py
@@ -21,9 +21,9 @@
{
- 'name': 'Google user',
+ 'name': 'Google Users',
'version': '1.0',
- 'category': 'Hidden',
+ 'category': 'Tools',
'description': """The module adds google user in res user""",
'author': 'OpenERP SA',
'website': 'http://www.openerp.com',
@@ -36,6 +36,5 @@
'demo_xml': [],
'installable': True,
'active': False,
- 'certificate': '',
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/google_map/__openerp__.py b/addons/google_map/__openerp__.py
index 48c393409e4..f2f9ff4e668 100644
--- a/addons/google_map/__openerp__.py
+++ b/addons/google_map/__openerp__.py
@@ -21,9 +21,9 @@
{
- 'name': 'Google Map',
+ 'name': 'Google Maps on Customers',
'version': '1.0',
- 'category': 'Hidden',
+ 'category': 'Customer Relationship Management',
'description': """
The module adds Google Map field in partner address.
====================================================
diff --git a/addons/hr/__openerp__.py b/addons/hr/__openerp__.py
index 900c689dfbf..254bb2c28bf 100644
--- a/addons/hr/__openerp__.py
+++ b/addons/hr/__openerp__.py
@@ -20,7 +20,7 @@
##############################################################################
{
- "name": "Human Resources",
+ "name": "Employee Address Book",
"version": "1.1",
"author": "OpenERP SA",
"category": "Human Resources",
@@ -54,7 +54,10 @@ You can manage:
'hr_demo.xml',
'hr_department_demo.xml',
],
- 'test': ['test/test_hr.yml'],
+ 'test': [
+ 'test/open2recruit2close_job.yml',
+ 'test/hr_demo.yml',
+ ],
'installable': True,
'active': False,
'certificate': '0086710558965',
diff --git a/addons/hr/hr.py b/addons/hr/hr.py
index f641a425e18..e903f03d974 100644
--- a/addons/hr/hr.py
+++ b/addons/hr/hr.py
@@ -79,12 +79,28 @@ class hr_job(osv.osv):
}
return res
+ def _get_job_position(self, cr, uid, ids, context=None):
+ res = []
+ for employee in self.pool.get('hr.employee').browse(cr, uid, ids, context=context):
+ if employee.job_id:
+ res.append(employee.job_id.id)
+ return res
+
_name = "hr.job"
_description = "Job Description"
_columns = {
'name': fields.char('Job Name', size=128, required=True, select=True),
- 'expected_employees': fields.function(_no_of_employee, string='Expected Employees', help='Required number of Employees in total for that job.', multi="no_of_employee", store=True),
- 'no_of_employee': fields.function(_no_of_employee, string="No of Employee", help='Number of employee with that job.', multi="no_of_employee", store=True),
+ 'expected_employees': fields.function(_no_of_employee, string='Expected Employees', help='Required number of employees in total for that job.',
+ store = {
+ 'hr.job': (lambda self,cr,uid,ids,c=None: ids, ['no_of_recruitment'], 10),
+ 'hr.employee': (_get_job_position, ['job_id'], 10),
+ },
+ multi='no_of_employee'),
+ 'no_of_employee': fields.function(_no_of_employee, string="Number of Employees", help='Number of employees with that job.',
+ store = {
+ 'hr.employee': (_get_job_position, ['job_id'], 10),
+ },
+ multi='no_of_employee'),
'no_of_recruitment': fields.float('Expected in Recruitment'),
'employee_ids': fields.one2many('hr.employee', 'job_id', 'Employees'),
'description': fields.text('Job Description'),
@@ -98,7 +114,7 @@ class hr_job(osv.osv):
'company_id': lambda self,cr,uid,c: self.pool.get('res.company')._company_default_get(cr, uid, 'hr.job', context=c),
'state': 'open',
}
-
+
_sql_constraints = [
('name_company_uniq', 'unique(name, company_id)', 'The name of the job position must be unique per company!'),
]
@@ -242,7 +258,7 @@ class res_users(osv.osv):
def create(self, cr, uid, data, context=None):
user_id = super(res_users, self).create(cr, uid, data, context=context)
-
+
# add shortcut unless 'noshortcut' is True in context
if not(context and context.get('noshortcut', False)):
data_obj = self.pool.get('ir.model.data')
@@ -254,7 +270,7 @@ class res_users(osv.osv):
except:
# Tolerate a missing shortcut. See product/product.py for similar code.
logging.getLogger('orm').debug('Skipped meetings shortcut for user "%s"', data.get('name','
-
-
-
-
+
+
@@ -39,10 +37,8 @@
-
-
-
-
+
+
diff --git a/addons/hr/hr_department_view.xml b/addons/hr/hr_department_view.xml
index 9fdb64651f5..a48103ad2e0 100644
--- a/addons/hr/hr_department_view.xml
+++ b/addons/hr/hr_department_view.xml
@@ -19,14 +19,6 @@
-
-
-
-
-
-
-
-
diff --git a/addons/hr/hr_view.xml b/addons/hr/hr_view.xml
index bbe2d00ff6f..f51280f4465 100644
--- a/addons/hr/hr_view.xml
+++ b/addons/hr/hr_view.xml
@@ -131,45 +131,46 @@
hr.employee
kanban
-
+
+
+
+
-
-
+
-
-
+
+
-
-
-
-
-
-
-
-
-
- ,
-
-
-
-
- ,
-
-
-
-
-
+
+
+ ❖
+
+
+ ✜
+
+
+ ✉
+
+
+ ☎
+
+
+ ☏
+
+
@@ -184,7 +185,7 @@
tree
tree,form
-
[('parent_id','=',False),('user_id','=',uid)]
+
[('parent_id','=',False)]
@@ -201,21 +202,26 @@
Employees
hr.employee
form
-
tree,form,kanban
+
kanban,tree,form
[]
{"search_default_department_id": department_id,"search_default_active":eval('True')}
-
+
Here you can manage your work force by creating employees and assigning them specific properties in the system. Maintain all employee related information and keep track of anything that needs to be recorded for them. The personal information tab will help you maintain their identity data. The Categories tab gives you the opportunity to assign them related employee categories depending on their position and activities within the company. A category can be a seniority level within the company or a department. The Timesheets tab allows to assign them a specific timesheet and analytic journal where they will be able to enter time through the system. In the note tab, you can enter text data that should be recorded for a specific employee.
-
+
+
+
+ kanban
+
+
tree
-
+
form
diff --git a/addons/hr/security/hr_security.xml b/addons/hr/security/hr_security.xml
index 8e77830184b..e8d1edd3712 100644
--- a/addons/hr/security/hr_security.xml
+++ b/addons/hr/security/hr_security.xml
@@ -3,11 +3,13 @@
- Human Resources / HR Officer
+ HR Officer
+
- Human Resources / HR Manager
+ HR Manager
+
diff --git a/addons/hr/security/ir.model.access.csv b/addons/hr/security/ir.model.access.csv
index 975ed7d4071..2911a49bf53 100644
--- a/addons/hr/security/ir.model.access.csv
+++ b/addons/hr/security/ir.model.access.csv
@@ -1,11 +1,11 @@
-"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
-"access_hr_employee_category_user","hr.employee.category.user","model_hr_employee_category","base.group_hr_user",1,1,1,1
-"access_hr_employee_category_emp","hr.employee.category.emp","model_hr_employee_category","base.group_user",1,0,0,0
-"access_hr_employee_user","hr.employee user","model_hr_employee","base.group_hr_user",1,1,1,1
-"access_hr_employee_system_user","hr.employee system user","model_hr_employee","base.group_user",1,0,0,0
-"access_hr_employee_resource_user","resource.resource.user","resource.model_resource_resource","base.group_hr_user",1,1,1,1
-"access_hr_department_user","hr.department.user","model_hr_department","base.group_hr_user",1,1,1,1
-"access_hr_department_employee","hr.department.employee","model_hr_department","base.group_user",1,0,0,0
-"access_hr_job_user","hr.job user","model_hr_job","base.group_hr_user",1,1,1,1
-"access_hr_res_partner_address","res.partner.address","base.model_res_partner_address","base.group_hr_manager",1,1,1,1
-"access_ir_property_hr_user","ir_property hr_user","base.model_ir_property","base.group_hr_user",1,1,1,0
+id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
+access_hr_employee_category_user,hr.employee.category.user,model_hr_employee_category,base.group_hr_user,1,1,1,1
+access_hr_employee_category_emp,hr.employee.category.emp,model_hr_employee_category,base.group_user,1,0,0,0
+access_hr_employee_user,hr.employee user,model_hr_employee,base.group_hr_user,1,1,1,1
+access_hr_employee_system_user,hr.employee system user,model_hr_employee,base.group_user,1,0,0,0
+access_hr_employee_resource_user,resource.resource.user,resource.model_resource_resource,base.group_hr_user,1,1,1,1
+access_hr_department_user,hr.department.user,model_hr_department,base.group_hr_user,1,1,1,1
+access_hr_department_employee,hr.department.employee,model_hr_department,base.group_user,1,0,0,0
+access_hr_job_user,hr.job user,model_hr_job,base.group_hr_user,1,1,1,1
+access_hr_res_partner_address,res.partner.address,base.model_res_partner_address,base.group_hr_manager,1,1,1,1
+access_ir_property_hr_user,ir_property hr_user,base.model_ir_property,base.group_hr_user,1,1,1,0
diff --git a/addons/hr/test/hr_demo.yml b/addons/hr/test/hr_demo.yml
new file mode 100644
index 00000000000..6dee06d5eb3
--- /dev/null
+++ b/addons/hr/test/hr_demo.yml
@@ -0,0 +1,10 @@
+-
+ !record {model: hr.job, id: job_jr_appli, view: False}:
+ no_of_employee: 0.0
+ no_of_recruitment: 5.0
+-
+ !record {model: hr.employee, id: employee1, view: False}:
+ address_id: base.main_address
+ company_id: base.main_company
+ department_id: dep_technical
+ user_id: base.user_demo
diff --git a/addons/hr/test/open2recruit2close_job.yml b/addons/hr/test/open2recruit2close_job.yml
new file mode 100644
index 00000000000..0e618f87a3d
--- /dev/null
+++ b/addons/hr/test/open2recruit2close_job.yml
@@ -0,0 +1,38 @@
+-
+ In order to test the process of Human Resource Management, I open Job Postion for "Jr. Application Engineer".
+-
+ !python {model: hr.job}: |
+ self.job_open(cr, uid, [ref('job_jr_appli')])
+-
+ I check state of Job Position after opening it.
+-
+ !assert {model: hr.job, id: job_jr_appli, string: Job position is in 'open' state and no_of_recruitment = 0}:
+ - state == 'open'
+ - no_of_recruitment == 0
+-
+ Now, Recruitement is started so I start recruitement of Job Postion of "Jr. Application Engineer" Profile.
+-
+ !python {model: hr.job}: |
+ self.job_recruitement(cr, uid, [ref('job_jr_appli')])
+-
+ I check 'state' and number of 'Expected in Recruitment' after initiating the recruitment
+-
+ !assert {model: hr.job, id: job_jr_appli, string: Job position is in 'recruit' state and no_of_recruitment = 1.0}:
+ - state == 'recruit'
+ - no_of_recruitment == 1.0
+-
+ I assign the job position to a newly hired employee
+-
+ !python {model: hr.employee}: |
+ self.write(cr, uid, [ref('employee1')], {'job_id':ref('job_jr_appli')})
+-
+ Now I don't want to recruit new employee for this position. so I mark it as Old.
+-
+ !python {model: hr.job}: |
+ self.job_old(cr, uid, [ref('job_jr_appli')])
+-
+ I check 'state' and number of 'Expected in Recruitment' after closing the Job position.
+-
+ !assert {model: hr.job, id: job_jr_appli, string: Job position is in 'old' state and no_of_recruitment = 0}:
+ - state == 'old'
+ - no_of_recruitment == 0
diff --git a/addons/hr/test/test_hr.yml b/addons/hr/test/test_hr.yml
deleted file mode 100644
index 0e5ae559416..00000000000
--- a/addons/hr/test/test_hr.yml
+++ /dev/null
@@ -1,140 +0,0 @@
--
- In order to test hr module in OpenERP, I will create new Employee, Department and Job Position.
--
- I create "RD Department" in Department form.
--
- !record {model: hr.department, id: hr_department_rd0}:
- manager_id: base.user_root
- name: 'R & D'
--
- Now, I create a new employee Mark Johnson, and select department as RD Department.
--
- !record {model: hr.employee, id: hr_employee_mark}:
- address_home_id: base.res_partner_address_1
- company_id: base.main_company
- gender: male
- marital: 'single'
- name: Mark Johnson
--
- I change the company of the employee.
--
- !python {model: hr.employee}: |
- res = self.onchange_company(cr, uid, [ref('hr_employee_mark')], ref('base.main_company'), None)
- values = dict([('company_id', ref('base.main_company'))] + res['value'].items())
- self.write(cr, uid, [ref('hr_employee_mark')], values, None)
--
- I assign department for employee Mark Johnson.
--
- !python {model: hr.employee}: |
- res = self.onchange_department_id(cr, uid, [ref('hr_employee_mark')], ref('hr_department_rd0'), None)
- assert res['value']['parent_id']
- values = dict([('department_id', ref('hr_department_rd0'))] + res['value'].items())
- self.write(cr, uid, [ref('hr_employee_mark')], values, None)
--
- Now I create a user for employee Mark Johnson.
--
- !record {model: res.users, id: hr_users_markjohnson0}:
- context_lang: en_US
- groups_id:
- - base.group_user
- login: markjohnson
- name: Mark Johnson
- password: markjohnson
--
- I assign user to employee Mark Johnson.
--
- !python {model: hr.employee}: |
- res = self.onchange_user(cr, uid, [ref('hr_employee_mark')], ref('hr_users_markjohnson0'), None)
- values = dict([('user_id', ref('hr_users_markjohnson0'))] + res['value'].items())
- self.write(cr, uid, [ref('hr_employee_mark')], values, None)
--
- In order to check the wizard Employee Hierarchy , I will create new employee Phil Graves and select Mark Johnson as
- Manager.
--
- !record {model: hr.employee, id: hr_employee_phil}:
- address_home_id: base.res_partner_address_3000
- company_id: base.main_company
- gender: male
- name: Phil Graves
- user_id: base.user_demo
- parent_id: 'hr_employee_mark'
--
- I fill the Working address for Employee.
--
- !python {model: hr.employee}: |
- res = self.onchange_address_id(cr, uid, ref('hr_employee_phil'), ref('base.res_partner_address_3000'), None)
- assert res['value']
- values = dict([('address_id', ref('base.res_partner_address_3000'))] + res['value'].items())
- self.write(cr, uid, [ref('hr_employee_phil')], values, None)
--
- I will open up form view of Mark Johnson and test the wizard Employee Hierarchy so it display the employee
- hierarchy starting from Mark Johnson.
-
--
- I will create new Job Position. I will check successful creation of new Job Position by adding the information.
--
- !record {model: hr.job, id: hr_job_jea0}:
- department_id: 'hr_department_rd0'
- description: 'Position of Junior Application Engineer'
- expected_employees: 5
- name: 'JAE'
--
- I check that Employee form is in "Open" state.
--
- !assert {model: hr.job, id: hr_job_jea0}:
- - state == 'open'
--
- I create Employee for job position.
--
- !record {model: hr.job, id: hr_job_jea0}:
- employee_ids:
- - address_home_id: base.res_partner_address_1
- name: Manuel Lehba
- department_id: 'hr_department_rd0'
- gender: male
- parent_id: 'hr_employee_mark'
--
- I check that "Number of Employees" field have some value.
--
- !assert {model: hr.job, id: hr_job_jea0}:
- - no_of_employee != False
--
- As more requirements on the said job position are come, I increase the number of expected employees.
--
- !python {model: hr.job}: |
- res = self.on_change_expected_employee(cr, uid, [ref('hr_job_jea0')], 6, 3, None)
- assert res['value']['expected_employees']
- values = dict([('expected_employees', ref('hr_job_jea0'))] + res['value'].items())
- self.write(cr, uid, [ref('hr_job_jea0')], values, None)
--
- I open the job position for recruitment.
--
- !python {model: hr.job}: |
- self.job_recruitement(cr, uid, [ref('hr_job_jea0')])
--
- I assign the job position to employee and mark the position.
--
- !python {model: hr.job}: |
- self.job_open(cr, uid, [ref('hr_job_jea0')])
--
- Now the process is over so I don't want to use this position. I mark it as Old.
--
- !python {model: hr.job}: |
- self.job_old(cr, uid, [ref('hr_job_jea0')])
--
- I create a parent category for the new recruited employees who are Freshers.
--
- !record {model: hr.employee.category, id: hr_employee_category_fresher0}:
- name: Fresher
--
- I create another category for Junior Level freshers.
--
- !record {model: hr.employee.category, id: hr_employee_category_juniorlevel0}:
- name: Junior Level
- parent_id: hr_employee_category_fresher0
--
- I open the tree view of Categories and see the categories in a hierarchical manner.
--
- !python {model: hr.employee.category}: |
- res = self.name_get(cr, uid, [ref('hr_employee_category_juniorlevel0')], None)
- assert res
diff --git a/addons/hr_attendance/__openerp__.py b/addons/hr_attendance/__openerp__.py
index 5f0054c3634..3d945910144 100644
--- a/addons/hr_attendance/__openerp__.py
+++ b/addons/hr_attendance/__openerp__.py
@@ -21,7 +21,7 @@
{
- 'name': 'Attendance',
+ 'name': 'Attendances',
'version': '1.1',
'category': 'Human Resources',
'complexity': "easy",
diff --git a/addons/hr_attendance/hr_attendance_demo.xml b/addons/hr_attendance/hr_attendance_demo.xml
index a1f42eb1004..f478e099b87 100644
--- a/addons/hr_attendance/hr_attendance_demo.xml
+++ b/addons/hr_attendance/hr_attendance_demo.xml
@@ -122,21 +122,5 @@
-
diff --git a/addons/hr_attendance/security/ir.model.access.csv b/addons/hr_attendance/security/ir.model.access.csv
index 51d5e87145c..ceb8acfe49e 100644
--- a/addons/hr_attendance/security/ir.model.access.csv
+++ b/addons/hr_attendance/security/ir.model.access.csv
@@ -1,5 +1,5 @@
-"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
-"access_hr_action_reason_user","hr.action.reason.user","model_hr_action_reason","base.group_hr_user",1,1,1,1
-"access_hr_action_reason_employee","hr.action.reason.employee","model_hr_action_reason","base.group_user",1,1,1,1
-"access_hr_attendance_user","hr.attendance.user","model_hr_attendance","base.group_hr_user",1,1,1,1
-"access_hr_attendance_system_user","hr.attendance.system.user","model_hr_attendance","base.group_user",1,1,1,1
+id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
+access_hr_action_reason_user,hr.action.reason.user,model_hr_action_reason,base.group_hr_user,1,1,1,1
+access_hr_action_reason_employee,hr.action.reason.employee,model_hr_action_reason,base.group_user,1,1,1,1
+access_hr_attendance_user,hr.attendance.user,model_hr_attendance,base.group_hr_user,1,1,1,1
+access_hr_attendance_system_user,hr.attendance.system.user,model_hr_attendance,base.group_user,1,1,1,1
diff --git a/addons/hr_contract/security/ir.model.access.csv b/addons/hr_contract/security/ir.model.access.csv
index 41ffa72f937..5e35e147230 100644
--- a/addons/hr_contract/security/ir.model.access.csv
+++ b/addons/hr_contract/security/ir.model.access.csv
@@ -1,5 +1,5 @@
-"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
-"access_hr_resource_manager","hr.employee.resource.manager","resource.model_resource_resource","base.group_hr_manager",1,1,1,1
-"access_hr_resource_calendar_user","hr.employee.resource.calendar.user","resource.model_resource_calendar","base.group_hr_user",1,1,1,1
-"access_hr_contract_type_manager","hr.contract.type.manager","model_hr_contract_type","base.group_hr_manager",1,1,1,1
-"access_hr_contract_manager","hr.contract.manager","model_hr_contract","base.group_hr_manager",1,1,1,1
+id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
+access_hr_resource_manager,hr.employee.resource.manager,resource.model_resource_resource,base.group_hr_manager,1,1,1,1
+access_hr_resource_calendar_user,hr.employee.resource.calendar.user,resource.model_resource_calendar,base.group_hr_user,1,1,1,1
+access_hr_contract_type_manager,hr.contract.type.manager,model_hr_contract_type,base.group_hr_manager,1,1,1,1
+access_hr_contract_manager,hr.contract.manager,model_hr_contract,base.group_hr_manager,1,1,1,1
diff --git a/addons/hr_evaluation/__openerp__.py b/addons/hr_evaluation/__openerp__.py
index 720c49302d4..d2264568378 100644
--- a/addons/hr_evaluation/__openerp__.py
+++ b/addons/hr_evaluation/__openerp__.py
@@ -20,14 +20,14 @@
##############################################################################
{
- "name" : "HR Periodic Appraisals",
+ "name" : "Employee Appraisals",
"version": "0.1",
"author": "OpenERP SA",
"category": "Human Resources",
'complexity': "easy",
"website": "http://www.openerp.com",
"images": ["images/hr_evaluation_analysis.jpeg","images/hr_evaluation.jpeg"],
- "depends": ["hr",'hr_recruitment','survey'],
+ "depends": ["hr","base_calendar","survey"],
"description": """
Ability to create employees evaluation.
=======================================
@@ -54,6 +54,7 @@ in the form of pdf file. Implements a dashboard for My Current Evaluations
"active": False,
"installable": True,
"certificate" : "00883207679172998429",
+ 'application': True,
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/hr_evaluation/board_hr_evaluation_view.xml b/addons/hr_evaluation/board_hr_evaluation_view.xml
index 7f6d3142db5..f25c669a973 100644
--- a/addons/hr_evaluation/board_hr_evaluation_view.xml
+++ b/addons/hr_evaluation/board_hr_evaluation_view.xml
@@ -1,14 +1,13 @@
-
- My Evaluation Remaining
- ir.actions.act_window
- hr_evaluation.evaluation
+
+ Interview Requests
+ hr.evaluation.interview
form
- [('state','in',('wait', 'progress')),('create_uid','=',uid)]
-
+ [('is_evaluation' ,'=', True), ('user_id', '=', uid),('state','=','waiting_answer')]
+
@@ -17,8 +16,8 @@
form
-
-
+
+
diff --git a/addons/hr_evaluation/hr_evaluation_data.xml b/addons/hr_evaluation/hr_evaluation_data.xml
index 40ff397534e..ec4b46f8a62 100644
--- a/addons/hr_evaluation/hr_evaluation_data.xml
+++ b/addons/hr_evaluation/hr_evaluation_data.xml
@@ -2,7 +2,7 @@
- Employee Evaluation
+ Employee Appraisal
20
@@ -11,7 +11,7 @@
open
- Employee Evaluation Form
+ Employee Appraisal Form
@@ -128,7 +128,7 @@
descriptive_text
The comment you entered is in an invalid format.
- * The employee will be responsible for completing a draft of the Appraisal Form as a tool for self-evaluation and a starting point for the supervisor’s evaluation. The employee can add examples of achievements for each criterion.
+ * The employee will be responsible for completing a draft of the Appraisal Form as a tool for self-appraisal and a starting point for the supervisor’s evaluation. The employee can add examples of achievements for each criterion.
Once the form had been filled, the employee send it to his supervisor.
* It is the primary responsibility of the supervisor to gather the necessary input from the appropriate sources of feedback (internal and/or external customers, peers). In case of collaboration with OpenERP SA Belgium, the supervisor must receive completed evaluation form from the employee's Belgian project manager.
@@ -204,7 +204,7 @@ Once the form had been filled, the employee send it to his supervisor.
Subject
matrix_of_choices_only_one_ans
- Recommendations / Evaluations
+ Recommendations / Appraisals
The comment you entered is in an invalid format.
@@ -227,7 +227,7 @@ Once the form had been filled, the employee send it to his supervisor.
Supervisors only :
matrix_of_choices_only_one_ans
- Recommendations / Evaluations
+ Recommendations / Appraisals
The comment you entered is in an invalid format.
@@ -1150,7 +1150,7 @@ Once the form had been filled, the employee send it to his supervisor.
- Manager's Evaluation Plan
+ Manager's Appraisal Plan
@@ -1205,7 +1205,7 @@ Once the form had been filled, the employee send it to his supervisor.
final
-
+
@@ -1219,7 +1219,7 @@ Once the form had been filled, the employee send it to his supervisor.
- Run Employee Evaluation
+ Run Employee Appraisal
1
diff --git a/addons/hr_evaluation/hr_evaluation_installer.xml b/addons/hr_evaluation/hr_evaluation_installer.xml
index 842363559a9..10e7773bc62 100644
--- a/addons/hr_evaluation/hr_evaluation_installer.xml
+++ b/addons/hr_evaluation/hr_evaluation_installer.xml
@@ -2,11 +2,12 @@
- Review Evaluation Plans
+ Review Appraisal Plans
ir.actions.act_window
hr_evaluation.plan
form
tree,form
+ You can define appraisal plans (ex: first interview after 6 months, then every year). Then, each employee can be linked to an appraisal plan so that OpenERP can automatically generate interview requests to managers and/or subordinates.
diff --git a/addons/hr_evaluation/hr_evaluation_view.xml b/addons/hr_evaluation/hr_evaluation_view.xml
index e15b461d2e2..18f5bc1a023 100644
--- a/addons/hr_evaluation/hr_evaluation_view.xml
+++ b/addons/hr_evaluation/hr_evaluation_view.xml
@@ -365,7 +365,7 @@
- Interview Request
+ Interview Requests
hr.evaluation.interview
calendar
@@ -379,9 +379,9 @@
Interview Requests
hr.evaluation.interview
form
-
+
[('is_evaluation' ,'=', True)]
- {"search_default_todo":1,"search_default_user_id":uid}
+ {'default_is_evaluation': True, "search_default_todo":1,"search_default_user_id":uid}
Interview Requests are generated automatically by OpenERP according to an employee's Appraisal Plan. Each user receives automatic emails and requests to evaluate their colleagues periodically.
diff --git a/addons/hr_evaluation/security/ir.model.access.csv b/addons/hr_evaluation/security/ir.model.access.csv
index 377098a6fe6..4304f78708a 100644
--- a/addons/hr_evaluation/security/ir.model.access.csv
+++ b/addons/hr_evaluation/security/ir.model.access.csv
@@ -1,34 +1,33 @@
-"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
-"access_hr_evaluation_evaluation_user","hr_evaluation.evaluation.user","model_hr_evaluation_evaluation","base.group_hr_user",1,1,1,1
-"access_hr_evaluation_evaluation_employee","hr_evaluation.evaluation.employee","model_hr_evaluation_evaluation","base.group_user",1,0,0,0
-"access_hr_evaluation_plan_user","hr_evaluation.plan.user","model_hr_evaluation_plan","base.group_hr_user",1,1,1,1
-"access_hr_evaluation_plan_phase_user","hr_evaluation.plan.phase.user","model_hr_evaluation_plan_phase","base.group_hr_user",1,1,1,1
-"access_hr_evaluation_interview_user","hr.evaluation.interview.user","model_hr_evaluation_interview","base.group_hr_user",1,1,1,1
-"access_hr_evaluation_interview_employee","hr.evaluation.interview.employee","model_hr_evaluation_interview","base.group_user",1,1,1,0
-"access_hr_evaluation_report","hr.evaluation.report","model_hr_evaluation_report","base.group_hr_manager",1,1,1,1
-"access_survey_type_hr_manager","survey.type","survey.model_survey_type","base.group_hr_manager",1,1,1,1
-"access_survey_hr_manager","survey.hr.manager","survey.model_survey","base.group_hr_manager",1,1,1,1
-"access_survey_history_manager","survey.history","survey.model_survey_history","base.group_hr_manager",1,1,1,1
-"access_survey_page_hr_manager","survey.page","survey.model_survey_page","base.group_hr_manager",1,1,1,1
-"access_survey_question_hr_manager","survey.question","survey.model_survey_question","base.group_hr_manager",1,1,1,1
-"access_survey_question_column_heading_hr_manager","survey.question.column.heading","survey.model_survey_question_column_heading","base.group_hr_manager",1,1,1,1
-"access_survey_answer_hr_manager","survey.answer","survey.model_survey_answer","base.group_hr_manager",1,1,1,1
-"access_survey_response_hr_manager","survey.response","survey.model_survey_response","base.group_hr_manager",1,1,1,1
-"access_survey_response_line_hr_manager","survey.response.line","survey.model_survey_response_line","base.group_hr_manager",1,1,1,1
-"access_survey_tbl_column_heading_hr_manager","survey.tbl.column.heading","survey.model_survey_tbl_column_heading","base.group_hr_manager",1,1,1,1
-"access_survey_response_answer_hr_manager","survey.response.answer","survey.model_survey_response_answer","base.group_hr_manager",1,1,1,1
-"access_survey_request_hr_manager","survey.request","survey.model_survey_request","base.group_hr_manager",1,1,1,1
-"access_survey_answer_hr_user","survey.answer.hr.user","survey.model_survey_answer","base.group_hr_user",1,1,1,0
-"access_survey_response_answer_hr_user","survey.response.answer.hr.user","survey.model_survey_response_answer","base.group_hr_user",1,1,1,0
-"access_survey_type_hr_user","survey.type.hr.user","survey.model_survey_type","base.group_hr_user",1,1,1,0
-"access_survey_question_hr_user","survey.question.hr.user","survey.model_survey_question","base.group_hr_user",1,1,1,0
-"access_survey_page_hr_user","survey.page.hr.user","survey.model_survey_page","base.group_hr_user",1,1,1,1
-"access_survey_response_hr_user","survey.response.hr.user","survey.model_survey_response","base.group_hr_user",1,1,1,0
-"access_survey_history_hr_user","survey.history.hr.user","survey.model_survey_history","base.group_hr_user",1,1,1,0
-"access_survey_request_hr_user","survey.request.hr.user","survey.model_survey_request","base.group_hr_user",1,1,1,0
-"access_survey_request_hr_employee","survey.request.hr.employee","survey.model_survey_request","base.group_user",1,1,1,0
-"access_survey_question_column_heading_hr_user","survey.question.column.heading.hr.user","survey.model_survey_question_column_heading","base.group_hr_user",1,0,0,0
-"access_survey_response_line_hr_user","survey.response.line.hr.user","survey.model_survey_response_line","base.group_hr_user",1,1,1,0
-"access_survey_tbl_column_heading_hr_user","survey.tbl.column.heading.hr.user","survey.model_survey_tbl_column_heading","base.group_hr_user",1,1,1,0
-"access_base_calendar_attendee_survey_user","base.calendar.calendar.attendee.survey.user","base_calendar.model_calendar_attendee","base.group_survey_user",1,1,1,0
-"access_base_calendar_attendee_tool_user","base.calendar.calendar.attendee.tool.user","base_calendar.model_calendar_attendee","base.group_tool_user",1,1,1,0
+id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
+access_hr_evaluation_evaluation_user,hr_evaluation.evaluation.user,model_hr_evaluation_evaluation,base.group_hr_user,1,1,1,1
+access_hr_evaluation_evaluation_employee,hr_evaluation.evaluation.employee,model_hr_evaluation_evaluation,base.group_user,1,0,0,0
+access_hr_evaluation_plan_user,hr_evaluation.plan.user,model_hr_evaluation_plan,base.group_hr_user,1,1,1,1
+access_hr_evaluation_plan_phase_user,hr_evaluation.plan.phase.user,model_hr_evaluation_plan_phase,base.group_hr_user,1,1,1,1
+access_hr_evaluation_interview_user,hr.evaluation.interview.user,model_hr_evaluation_interview,base.group_hr_user,1,1,1,1
+access_hr_evaluation_interview_employee,hr.evaluation.interview.employee,model_hr_evaluation_interview,base.group_user,1,1,1,0
+access_hr_evaluation_report,hr.evaluation.report,model_hr_evaluation_report,base.group_hr_manager,1,1,1,1
+access_survey_type_hr_manager,survey.type,survey.model_survey_type,base.group_hr_manager,1,1,1,1
+access_survey_hr_manager,survey.hr.manager,survey.model_survey,base.group_hr_manager,1,1,1,1
+access_survey_history_manager,survey.history,survey.model_survey_history,base.group_hr_manager,1,1,1,1
+access_survey_question_hr_manager,survey.question,survey.model_survey_question,base.group_hr_manager,1,1,1,1
+access_survey_question_column_heading_hr_manager,survey.question.column.heading,survey.model_survey_question_column_heading,base.group_hr_manager,1,1,1,1
+access_survey_answer_hr_manager,survey.answer,survey.model_survey_answer,base.group_hr_manager,1,1,1,1
+access_survey_response_hr_manager,survey.response,survey.model_survey_response,base.group_hr_manager,1,1,1,1
+access_survey_response_line_hr_manager,survey.response.line,survey.model_survey_response_line,base.group_hr_manager,1,1,1,1
+access_survey_tbl_column_heading_hr_manager,survey.tbl.column.heading,survey.model_survey_tbl_column_heading,base.group_hr_manager,1,1,1,1
+access_survey_response_answer_hr_manager,survey.response.answer,survey.model_survey_response_answer,base.group_hr_manager,1,1,1,1
+access_survey_request_hr_manager,survey.request,survey.model_survey_request,base.group_hr_manager,1,1,1,1
+access_survey_answer_hr_user,survey.answer.hr.user,survey.model_survey_answer,base.group_hr_user,1,1,1,0
+access_survey_response_answer_hr_user,survey.response.answer.hr.user,survey.model_survey_response_answer,base.group_hr_user,1,1,1,0
+access_survey_type_hr_user,survey.type.hr.user,survey.model_survey_type,base.group_hr_user,1,1,1,0
+access_survey_question_hr_user,survey.question.hr.user,survey.model_survey_question,base.group_hr_user,1,1,1,0
+access_survey_page_hr_user,survey.page.hr.user,survey.model_survey_page,base.group_hr_user,1,1,1,1
+access_survey_response_hr_user,survey.response.hr.user,survey.model_survey_response,base.group_hr_user,1,1,1,0
+access_survey_history_hr_user,survey.history.hr.user,survey.model_survey_history,base.group_hr_user,1,1,1,0
+access_survey_request_hr_user,survey.request.hr.user,survey.model_survey_request,base.group_hr_user,1,1,1,0
+access_survey_request_hr_employee,survey.request.hr.employee,survey.model_survey_request,base.group_user,1,1,1,0
+access_survey_question_column_heading_hr_user,survey.question.column.heading.hr.user,survey.model_survey_question_column_heading,base.group_hr_user,1,0,0,0
+access_survey_response_line_hr_user,survey.response.line.hr.user,survey.model_survey_response_line,base.group_hr_user,1,1,1,0
+access_survey_tbl_column_heading_hr_user,survey.tbl.column.heading.hr.user,survey.model_survey_tbl_column_heading,base.group_hr_user,1,1,1,0
+access_base_calendar_attendee_survey_user,base.calendar.calendar.attendee.survey.user,base_calendar.model_calendar_attendee,base.group_survey_user,1,1,1,0
+access_base_calendar_attendee_tool_user,base.calendar.calendar.attendee.tool.user,base_calendar.model_calendar_attendee,base.group_tool_user,1,1,1,0
diff --git a/addons/hr_expense/__openerp__.py b/addons/hr_expense/__openerp__.py
index 4a22f00e076..4e91155442b 100644
--- a/addons/hr_expense/__openerp__.py
+++ b/addons/hr_expense/__openerp__.py
@@ -21,7 +21,7 @@
{
- 'name': 'Expenses',
+ 'name': 'Expenses Management',
'version': '1.0',
'category': 'Human Resources',
'complexity': "easy",
@@ -62,11 +62,13 @@ re-invoice your customer's expenses if your work by project.
'demo_xml': [
'hr_expense_demo.xml',
],
- 'test': ['test/test_hr_expense.yml',
- 'test/hr_expense_report.yml',
+ 'test': [
+ 'test/expense_demo.yml',
+ 'test/expense_process.yml',
],
'installable': True,
'active': False,
'certificate': '0062479841789',
+ 'application': True,
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/hr_expense/board_hr_expense_view.xml b/addons/hr_expense/board_hr_expense_view.xml
index 5d6ad4dbd6b..3383f734f7d 100644
--- a/addons/hr_expense/board_hr_expense_view.xml
+++ b/addons/hr_expense/board_hr_expense_view.xml
@@ -7,6 +7,7 @@
hr.expense.expense
form
[('state','in',('confirm', 'accepted')),('user_id','=',uid)]
+ {'default_user_id': uid}
@@ -16,7 +17,7 @@
form
-
+
diff --git a/addons/hr_expense/hr_expense.py b/addons/hr_expense/hr_expense.py
index 478b8120935..572da086e8d 100644
--- a/addons/hr_expense/hr_expense.py
+++ b/addons/hr_expense/hr_expense.py
@@ -87,6 +87,7 @@ class hr_expense_expense(osv.osv):
\nIf the admin accepts it, the state is \'Accepted\'.\n If an invoice is made for the expense request, the state is \'Invoiced\'.\n If the expense is paid to user, the state is \'Reimbursed\'.'),
}
_defaults = {
+ 'company_id': lambda s, cr, uid, c: s.pool.get('res.company')._company_default_get(cr, uid, 'hr.employee', context=c),
'date': lambda *a: time.strftime('%Y-%m-%d'),
'state': 'draft',
'employee_id': _employee_get,
diff --git a/addons/hr_expense/hr_expense_data.xml b/addons/hr_expense/hr_expense_data.xml
index 9660dbb2543..0e940c74cc0 100644
--- a/addons/hr_expense/hr_expense_data.xml
+++ b/addons/hr_expense/hr_expense_data.xml
@@ -8,18 +8,6 @@
Expenses
-
-
- 0.32
- 0.32
-
-
- consu
- Travel Expenses
- TRA
-
-
-
-
\ No newline at end of file
+
diff --git a/addons/hr_expense/hr_expense_demo.xml b/addons/hr_expense/hr_expense_demo.xml
index 80c9cd66694..8912dfb09de 100644
--- a/addons/hr_expense/hr_expense_demo.xml
+++ b/addons/hr_expense/hr_expense_demo.xml
@@ -2,95 +2,88 @@
-
- 1.0
- 1.0
-
-
+
+
+
+
+
+ 0.32
+ service
+ Car Travel Expenses
+ CarTRA
+
+
+
+
+
+ 700.0
service
Air Ticket
AT
-
+
-
- 1.0
- 1.0
-
-
+
+ 400.0
service
Hotel Accommodation
HA0
-
+
-
-
-
-
-
- May Expenses
-
-
- draft
+
+ Expenses
+
+
+
+ Travel Expenses
+
+
+
+
+
+
-
+
+
+ September Expenses
+
+
+
+
Travel by Air
-
+
-
-
+
+
-
- Basic PC - Server for Seagate
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Travel Expenses
-
-
- draft
-
-
-
+
Hotel Expenses - Thymbra
-
+
-
-
+
+
-
+
Bruxelles - Paris
-
+
-
-
+
+
+
diff --git a/addons/hr_expense/hr_expense_view.xml b/addons/hr_expense/hr_expense_view.xml
index 786dc6beee2..cf884af4250 100644
--- a/addons/hr_expense/hr_expense_view.xml
+++ b/addons/hr_expense/hr_expense_view.xml
@@ -30,8 +30,6 @@
-
-
diff --git a/addons/hr_expense/security/ir.model.access.csv b/addons/hr_expense/security/ir.model.access.csv
index 674b06304d2..0455302319e 100644
--- a/addons/hr_expense/security/ir.model.access.csv
+++ b/addons/hr_expense/security/ir.model.access.csv
@@ -1,23 +1,23 @@
-"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
-"access_hr_expense_expense_user","hr.expense.expense.user","model_hr_expense_expense","base.group_hr_user",1,1,1,1
-"access_hr_expense_expense_employee","hr.expense.expense.employee","model_hr_expense_expense","base.group_user",1,1,1,1
-"access_hr_expense_line_user","hr.expense.line.user","model_hr_expense_line","base.group_hr_user",1,1,1,1
-"access_hr_expense_line_employee","hr.expense.line.employee","model_hr_expense_line","base.group_user",1,1,1,1
-"access_hr_expense_report_manager","hr.expense.report.manager","model_hr_expense_report","base.group_hr_manager",1,1,1,1
-"access_product_product_hr_expense_user","product.product.hr.expense.user","product.model_product_product","base.group_hr_user",1,1,1,1
-"access_product_template_hr_expense_user","product.template.hr.expense.user","product.model_product_template","base.group_hr_user",1,1,1,1
-"access_product_uom_hr_expense_user","product.uom.hr.expense.user","product.model_product_uom","base.group_hr_user",1,1,1,1
-"access_product_price_type_user","product.price.type.user","product.model_product_price_type","base.group_hr_user",1,1,1,1
-"access_account_journal_user","account.journal.user","account.model_account_journal","base.group_hr_user",1,1,1,1
-"access_account_invoice_user","account.invoice.user","account.model_account_invoice","base.group_hr_user",1,1,1,1
-"access_account_invoice_line_user","account.invoice.line.user","account.model_account_invoice_line","base.group_hr_user",1,1,1,1
-"access_account_analytic_journal_user","account.ianalytic.journal.user","account.model_account_analytic_journal","base.group_hr_user",1,1,1,1
-"access_account_invoice_tax_user","account.invoice.tax.user","account.model_account_invoice_tax","base.group_hr_user",1,1,1,1
-"access_account_period_user","account.period.user","account.model_account_period","base.group_hr_user",1,1,1,1
-"access_account_fiscalyear_user","account.fiscalyear.user","account.model_account_fiscalyear","base.group_hr_user",1,1,1,1
-"access_account_move_user","account.move.user","account.model_account_move","base.group_hr_user",1,1,1,1
-"access_account_move_line_user","account.move.line.user","account.model_account_move_line","base.group_hr_user",1,1,1,1
-"access_account_analytic_line_user","account.ianalytic.line.user","account.model_account_analytic_line","base.group_hr_user",1,1,1,1
-"access_account_journal_period_manager","account.journal.period.manager","account.model_account_journal_period","base.group_hr_manager",1,1,1,1
-"hr.access_account_journal_view_hruser","account.journal.view hruser","account.model_account_journal_view","base.group_hr_user",1,0,0,0
-"hr.access_account_journal_column_hruser","account.journal.column hruser","account.model_account_journal_column","base.group_hr_user",1,0,0,0
+id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
+access_hr_expense_expense_user,hr.expense.expense.user,model_hr_expense_expense,base.group_hr_user,1,1,1,1
+access_hr_expense_expense_employee,hr.expense.expense.employee,model_hr_expense_expense,base.group_user,1,1,1,1
+access_hr_expense_line_user,hr.expense.line.user,model_hr_expense_line,base.group_hr_user,1,1,1,1
+access_hr_expense_line_employee,hr.expense.line.employee,model_hr_expense_line,base.group_user,1,1,1,1
+access_hr_expense_report_manager,hr.expense.report.manager,model_hr_expense_report,base.group_hr_manager,1,1,1,1
+access_product_product_hr_expense_user,product.product.hr.expense.user,product.model_product_product,base.group_hr_user,1,1,1,1
+access_product_template_hr_expense_user,product.template.hr.expense.user,product.model_product_template,base.group_hr_user,1,1,1,1
+access_product_uom_hr_expense_user,product.uom.hr.expense.user,product.model_product_uom,base.group_hr_user,1,1,1,1
+access_product_price_type_user,product.price.type.user,product.model_product_price_type,base.group_hr_user,1,1,1,1
+access_account_journal_user,account.journal.user,account.model_account_journal,base.group_hr_user,1,1,1,1
+access_account_invoice_user,account.invoice.user,account.model_account_invoice,base.group_hr_user,1,1,1,1
+access_account_invoice_line_user,account.invoice.line.user,account.model_account_invoice_line,base.group_hr_user,1,1,1,1
+access_account_analytic_journal_user,account.ianalytic.journal.user,account.model_account_analytic_journal,base.group_hr_user,1,1,1,1
+access_account_invoice_tax_user,account.invoice.tax.user,account.model_account_invoice_tax,base.group_hr_user,1,1,1,1
+access_account_period_user,account.period.user,account.model_account_period,base.group_hr_user,1,1,1,1
+access_account_fiscalyear_user,account.fiscalyear.user,account.model_account_fiscalyear,base.group_hr_user,1,1,1,1
+access_account_move_user,account.move.user,account.model_account_move,base.group_hr_user,1,1,1,1
+access_account_move_line_user,account.move.line.user,account.model_account_move_line,base.group_hr_user,1,1,1,1
+access_account_analytic_line_user,account.ianalytic.line.user,account.model_account_analytic_line,base.group_hr_user,1,1,1,1
+access_account_journal_period_manager,account.journal.period.manager,account.model_account_journal_period,base.group_hr_manager,1,1,1,1
+hr.access_account_journal_view_hruser,account.journal.view hruser,account.model_account_journal_view,base.group_hr_user,1,0,0,0
+hr.access_account_journal_column_hruser,account.journal.column hruser,account.model_account_journal_column,base.group_hr_user,1,0,0,0
diff --git a/addons/hr_expense/test/expense_demo.yml b/addons/hr_expense/test/expense_demo.yml
new file mode 100644
index 00000000000..5b3cb0893d0
--- /dev/null
+++ b/addons/hr_expense/test/expense_demo.yml
@@ -0,0 +1,11 @@
+-
+ !record {model: hr.expense.expense, id: sep_expenses}:
+ employee_id: hr.employee4
+ name : 'John Smith'
+-
+ !record {model: product.product, id: car_travel}:
+ hr_expense_ok: 'True'
+-
+ !record {model: hr.expense.line, id: expense_line}:
+ product_id: car_travel
+ name: 'Car Travel Expenses'
diff --git a/addons/hr_expense/test/expense_process.yml b/addons/hr_expense/test/expense_process.yml
new file mode 100644
index 00000000000..5c8a9d53f7c
--- /dev/null
+++ b/addons/hr_expense/test/expense_process.yml
@@ -0,0 +1,60 @@
+-
+ In order to test the process of "Employee Expenses" by processing the expenses, I confirm Expense Bill of an employee for September month.
+-
+ !workflow {model: hr.expense.expense, action: confirm, ref: sep_expenses}
+-
+ I check that state is 'Confirm'.
+-
+ !assert {model: hr.expense.expense, id: sep_expenses, severity: error, string: Expense should be in Confirm state}:
+ - state == 'confirm'
+-
+ I approve the September expenses.
+-
+ !workflow {model: hr.expense.expense, action: validate, ref: sep_expenses}
+-
+ I check that state is 'Approved'
+-
+ !assert {model: hr.expense.expense, id: sep_expenses, severity: error, string: Expense should be in Approved state}:
+ - state == 'accepted'
+-
+ I make Invoice for the expense.
+-
+ !python {model: hr.expense.expense}: |
+ self.invoice(cr, uid, [ref('sep_expenses')])
+-
+ I check invoice details.
+-
+ !python {model: hr.expense.expense}: |
+ sep_expenses = self.browse(cr, uid, ref("sep_expenses"), context=context)
+ assert sep_expenses.state == 'invoiced', "Expense should be in 'Invoiced' state."
+ assert sep_expenses.invoice_id, "Expense should have link of Invoice."
+ assert sep_expenses.invoice_id.currency_id == sep_expenses.currency_id,"Invoice currency is not correspond with supplier invoice currency"
+ assert sep_expenses.invoice_id.origin == sep_expenses.name,"Invoice origin is not correspond with supplier invoice"
+ assert sep_expenses.invoice_id.type == 'in_invoice', "Invoice type is not supplier invoice"
+ assert sep_expenses.invoice_id.amount_total == sep_expenses.amount,"Invoice total amount is not correspond with supplier invoice total"
+ assert len(sep_expenses.invoice_id.invoice_line) == len(sep_expenses.line_ids),"Lines of Invoice and supplier invoice Line are not correspond"
+ #TODO: check invoice line details with Expenses lines
+-
+ I pay the expenses.
+-
+ !python {model: hr.expense.expense}: |
+ self.expense_paid(cr, uid, [ref('sep_expenses')])
+-
+ I check that state of expenses is 'Paid'.
+-
+ !assert {model: hr.expense.expense, id: sep_expenses, severity: error, string: Expense should be in Paid state}:
+ - state == 'paid'
+-
+ I duplicate the expenses and cancel duplicated.
+-
+ !python {model: hr.expense.expense}: |
+ duplicate_id = self.copy(cr, uid, ref('sep_expenses'), context=context)
+ self.expense_canceled(cr, uid, [duplicate_id])
+-
+ I print a report of the expenses.
+-
+ !python {model: hr.expense.expense}: |
+ import netsvc, tools, os
+ (data, format) = netsvc.LocalService('report.hr.expense').create(cr, uid, [ref('hr_expense.sep_expenses')], {}, {})
+ if tools.config['test_report_directory']:
+ file(os.path.join(tools.config['test_report_directory'], 'hr_expense-report.'+format), 'wb+').write(data)
diff --git a/addons/hr_expense/test/hr_expense_report.yml b/addons/hr_expense/test/hr_expense_report.yml
deleted file mode 100644
index 4c81ceb5976..00000000000
--- a/addons/hr_expense/test/hr_expense_report.yml
+++ /dev/null
@@ -1,8 +0,0 @@
--
- In order to test the PDF reports defined on a HR Expense, we will print a HR Expense
--
- !python {model: hr.expense.expense}: |
- import netsvc, tools, os
- (data, format) = netsvc.LocalService('report.hr.expense').create(cr, uid, [ref('hr_expense.hr_expense_expense_septemberexpenses0'),ref('hr_expense.hr_expense_expense_septemberexpenses1')], {}, {})
- if tools.config['test_report_directory']:
- file(os.path.join(tools.config['test_report_directory'], 'hr_expense-report.'+format), 'wb+').write(data)
\ No newline at end of file
diff --git a/addons/hr_expense/test/test_hr_expense.yml b/addons/hr_expense/test/test_hr_expense.yml
deleted file mode 100644
index bd13529d645..00000000000
--- a/addons/hr_expense/test/test_hr_expense.yml
+++ /dev/null
@@ -1,121 +0,0 @@
--
- In order to test hr_expenses for OpenERP, I create expenses for employee and manage employee's expenses.
--
- I create an unit of measure category "Working Time".
--
- !record {model: product.uom.categ, id: product_uom_categ_workingtime0}:
- name: Working Time.
-
--
- I create a new employee.
--
- !record {model: hr.employee, id: hr.employee}:
- address_home_id: base.res_partner_address_1
- address_id: base.main_address
--
- I assign home address to employee.
--
- !record {model: hr.employee, id: hr.employee1}:
- address_home_id: base.res_partner_address_1
- address_id: base.main_address
--
- I create product unit of measure "Hour".
--
- !record {model: product.uom, id: product_uom_hour0}:
- category_id: 'product_uom_categ_workingtime0'
- factor: 8.0
- name: Hour
- rounding: 0.01
--
- I Create a product "travel".
--
- !record {model: product.product, id: product_product_travel0}:
- categ_id: product.product_category_services
- cost_method: standard
- list_price: 800.0
- mes_type: fixed
- name: Travel
- procure_method: make_to_stock
- standard_price: 700.0
- supply_method: buy
- type: product
- uom_id: 'product_uom_hour0'
- uom_po_id: 'product_uom_hour0'
- volume: 0.0
- warranty: 0.0
- weight: 0.0
- weight_net: 0.0
--
- I mark this product for expenses.
--
- !python {model: product.product}: |
- self.on_change_hr_expense_ok(cr, uid, [ref('product_product_travel0')], True)
--
- I create an expense.
--
- !record {model: hr.expense.expense, id: hr_expense_expense_september0}:
- company_id: base.main_company
- date: !eval "'%s-05-05' %(datetime.now().year)"
- name: September Expenses
- line_ids:
- - date_value: !eval "'%s-05-27' %(datetime.now().year)"
- name: Travel
- product_id: 'product_product_travel0'
- sequence: 0.0
- uom_id: product.product_uom_unit
- unit_amount: 700.0
- user_id: base.user_root
--
- I check that expense is in "Draft" state.
--
- !assert {model: hr.expense.expense, id: hr_expense_expense_september0}:
- - state == 'draft'
--
- I change the employee on expense form.
--
- !python {model: hr.expense.expense}: |
- res = self.onchange_employee_id(cr, uid, [ref('hr_expense_expense_september0')], ref('hr.employee1'), None)
- values = dict([('employee_id', ref('hr.employee1'))] + res['value'].items())
- self.write(cr, uid, [ref('hr_expense_expense_september0')], values, None)
--
- Now I change the related product on expense line.
--
- !python {model: hr.expense.expense}: |
- exp_line_obj = self.pool.get('hr.expense.line')
- exp_obj = self.browse(cr, uid, ref('hr_expense_expense_september0'), None)
- line_ids = [line.id for line in exp_obj.line_ids]
- res = exp_line_obj.onchange_product_id(cr, uid, line_ids, ref('product_product_expense_air'), False, ref('hr.employee1'), None)
- values = dict([('product_id', ref('product_product_expense_air'))] + res['value'].items())
- exp_line_obj.write(cr, uid, line_ids, values, None)
--
- I confirm this expenses by click on "Confirm" button.
--
- !workflow {model: hr.expense.expense, action: confirm, ref: hr_expense_expense_september0}
-
--
- I check that state is "Waiting Confirmation".
--
- !assert {model: hr.expense.expense, id: hr_expense_expense_september0}:
- - state == 'confirm'
--
- I accept this expense by click on "Accept" button.
--
- !workflow {model: hr.expense.expense, action: validate, ref: hr_expense_expense_september0}
-
--
- I invoiced this expense by click on "Invoice" button.
--
- !python {model: hr.expense.expense}: |
- self.invoice(cr, uid, [ref('hr_expense_expense_september0')], None)
--
- I check that state is "Invoiced".
--
- !assert {model: hr.expense.expense, id: hr_expense_expense_september0}:
- - state == 'invoiced'
--
- I check that Invoice is created for the expense.
--
- !python {model: hr.expense.expense}: |
- exp = self.browse(cr, uid, [ref('hr_expense_expense_september0')])[0]
- assert exp.invoice_id, "Invoice should be created"
-
diff --git a/addons/hr_holidays/__openerp__.py b/addons/hr_holidays/__openerp__.py
index ec12b884201..61d613ad0c5 100644
--- a/addons/hr_holidays/__openerp__.py
+++ b/addons/hr_holidays/__openerp__.py
@@ -21,9 +21,9 @@
{
- "name": "Leave Management",
+ "name": "Leaves Management",
"version": "1.5",
- "author": ['OpenERP SA', 'Axelor'],
+ "author": "OpenERP SA",
"category": "Human Resources",
'complexity': "easy",
"website": "http://www.openerp.com",
@@ -72,6 +72,7 @@ Note that:
'test/hr_holidays_report.yml',
],
'installable': True,
+ 'application': True,
'active': False,
'certificate': '0086579209325',
}
diff --git a/addons/hr_holidays/board_hr_holidays_view.xml b/addons/hr_holidays/board_hr_holidays_view.xml
index f0a0ab0741a..178602725ae 100644
--- a/addons/hr_holidays/board_hr_holidays_view.xml
+++ b/addons/hr_holidays/board_hr_holidays_view.xml
@@ -16,7 +16,7 @@
form
-
+
diff --git a/addons/hr_holidays/hr_holidays.py b/addons/hr_holidays/hr_holidays.py
index d22c5b9f1bb..746c2764315 100644
--- a/addons/hr_holidays/hr_holidays.py
+++ b/addons/hr_holidays/hr_holidays.py
@@ -262,7 +262,7 @@ class hr_holidays(osv.osv):
'name': record.name,
'categ_id': record.holiday_status_id.categ_id.id,
'duration': record.number_of_days_temp * 8,
- 'note': record.notes,
+ 'description': record.notes,
'user_id': record.user_id.id,
'date': record.date_from,
'end_date': record.date_to,
diff --git a/addons/hr_holidays/hr_holidays_view.xml b/addons/hr_holidays/hr_holidays_view.xml
index a43378b1c95..a989ea50222 100644
--- a/addons/hr_holidays/hr_holidays_view.xml
+++ b/addons/hr_holidays/hr_holidays_view.xml
@@ -59,7 +59,7 @@
-
+
@@ -104,7 +104,7 @@
-
+
@@ -285,8 +285,8 @@
Requests Approve
hr.holidays
form
- {'search_default_approve':1,"search_default_department_id": department_id}
- [('type','=','add')]
+ {'default_type': 'add', 'search_default_approve':1,"search_default_department_id": department_id}
+ [('type','=','remove')]
@@ -397,7 +397,6 @@
-
diff --git a/addons/hr_holidays/security/ir.model.access.csv b/addons/hr_holidays/security/ir.model.access.csv
index 940b0f06447..d2e6c27cded 100644
--- a/addons/hr_holidays/security/ir.model.access.csv
+++ b/addons/hr_holidays/security/ir.model.access.csv
@@ -1,7 +1,7 @@
-"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
-"access_hr_holydays_status_user","hr.holidays.status user","model_hr_holidays_status","base.group_hr_user",1,1,1,1
-"access_hr_holidays_user","hr.holidays.user","model_hr_holidays","base.group_hr_user",1,1,1,1
-"access_hr_holidays_employee","hr.holidays.employee","model_hr_holidays","base.group_user",1,1,1,1
-"access_hr_holydays_status_employee","hr.holidays.status employee","model_hr_holidays_status","base.group_user",1,0,0,0
-"access_hr_holidays_remain_user","hr.holidays.ramain.user","model_hr_holidays_remaining_leaves_user","base.group_hr_user",1,1,1,1
-"access_resource_calendar_leaves_manager","resource_calendar_leaves_manager","resource.model_resource_calendar_leaves","base.group_hr_manager",1,1,1,1
+id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
+access_hr_holydays_status_user,hr.holidays.status user,model_hr_holidays_status,base.group_hr_user,1,1,1,1
+access_hr_holidays_user,hr.holidays.user,model_hr_holidays,base.group_hr_user,1,1,1,1
+access_hr_holidays_employee,hr.holidays.employee,model_hr_holidays,base.group_user,1,1,1,1
+access_hr_holydays_status_employee,hr.holidays.status employee,model_hr_holidays_status,base.group_user,1,0,0,0
+access_hr_holidays_remain_user,hr.holidays.ramain.user,model_hr_holidays_remaining_leaves_user,base.group_hr_user,1,1,1,1
+access_resource_calendar_leaves_manager,resource_calendar_leaves_manager,resource.model_resource_calendar_leaves,base.group_hr_manager,1,1,1,1
diff --git a/addons/hr_payroll/__openerp__.py b/addons/hr_payroll/__openerp__.py
index 5c78b80f095..c659444551e 100644
--- a/addons/hr_payroll/__openerp__.py
+++ b/addons/hr_payroll/__openerp__.py
@@ -71,6 +71,7 @@ Generic Payroll system.
'installable': True,
'active': False,
'certificate' : '001046261404562128861',
+ 'application': True,
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/hr_payroll/hr_payroll.py b/addons/hr_payroll/hr_payroll.py
index affd81cce6d..aaf215c87f5 100644
--- a/addons/hr_payroll/hr_payroll.py
+++ b/addons/hr_payroll/hr_payroll.py
@@ -298,6 +298,14 @@ class hr_payslip(osv.osv):
context=context).company_id.id,
}
+ def _check_dates(self, cr, uid, ids, context=None):
+ for payslip in self.browse(cr, uid, ids, context=context):
+ if payslip.date_from > payslip.date_to:
+ return False
+ return True
+
+ _constraints = [(_check_dates, "Payslip 'Date From' must be before 'Date To'.", ['date_from', 'date_to'])]
+
def copy(self, cr, uid, id, default=None, context=None):
if not default:
default = {}
diff --git a/addons/hr_payroll/hr_payroll_demo.xml b/addons/hr_payroll/hr_payroll_demo.xml
index e888ad6f133..7d670d6cafa 100644
--- a/addons/hr_payroll/hr_payroll_demo.xml
+++ b/addons/hr_payroll/hr_payroll_demo.xml
@@ -146,7 +146,7 @@
Default contract for marketing executives
-
+
@@ -158,7 +158,6 @@
This is Quentin Paolino's contract
-
diff --git a/addons/hr_payroll/hr_payroll_report.xml b/addons/hr_payroll/hr_payroll_report.xml
index a0027d70e0d..a1b3587313a 100644
--- a/addons/hr_payroll/hr_payroll_report.xml
+++ b/addons/hr_payroll/hr_payroll_report.xml
@@ -6,7 +6,7 @@
auto="False"
id="payslip_report"
model="hr.payslip"
- name="test.pdf"
+ name="payslip"
rml="hr_payroll/report/report_payslip.rml"
string="Employee PaySlip" />
diff --git a/addons/hr_payroll/hr_payroll_view.xml b/addons/hr_payroll/hr_payroll_view.xml
index 01fe270710d..5f2e977f116 100644
--- a/addons/hr_payroll/hr_payroll_view.xml
+++ b/addons/hr_payroll/hr_payroll_view.xml
@@ -262,7 +262,7 @@
-
+
@@ -759,13 +759,14 @@
diff --git a/addons/hr_payroll/i18n/cs.po b/addons/hr_payroll/i18n/cs.po
new file mode 100644
index 00000000000..bf9a6b2bddd
--- /dev/null
+++ b/addons/hr_payroll/i18n/cs.po
@@ -0,0 +1,1636 @@
+# Czech 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:15+0000\n"
+"PO-Revision-Date: 2011-11-29 13:31+0000\n"
+"Last-Translator: Jiří Hajda \n"
+"Language-Team: Czech \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2011-11-30 05:27+0000\n"
+"X-Generator: Launchpad (build 14404)\n"
+"X-Poedit-Language: Czech\n"
+
+#. module: hr_payroll
+#: report:employees.salary:0
+msgid "E-mail Address"
+msgstr "E-mailová adresa"
+
+#. module: hr_payroll
+#: view:hr.allounce.deduction.categoty:0
+msgid "Based"
+msgstr "Založeno"
+
+#. module: hr_payroll
+#: field:hr.contract,net:0
+#: field:hr.employee,net:0
+#: field:hr.payroll.register,net:0
+#: field:hr.payslip,net:0
+#: report:salary.structure:0
+msgid "Net Salary"
+msgstr "Čistý plat"
+
+#. module: hr_payroll
+#: view:hr.payslip:0
+msgid "Recompute Sheet"
+msgstr "Přepočítat list"
+
+#. module: hr_payroll
+#: report:employees.salary:0
+msgid "Employees Salary Details"
+msgstr "Podrobnosti platu zaměstnance"
+
+#. module: hr_payroll
+#: report:employees.salary:0
+msgid "Allowances with Basic:"
+msgstr "Odměny se základem:"
+
+#. module: hr_payroll
+#: report:employees.salary:0
+#: report:salary.structure:0
+msgid "Department"
+msgstr "Oddělení"
+
+#. module: hr_payroll
+#: report:employees.salary:0
+msgid "Deductions:"
+msgstr "Odpočty"
+
+#. module: hr_payroll
+#: field:company.contribution,gratuity:0
+msgid "Use for Gratuity ?"
+msgstr "Použití pro prémie ?"
+
+#. module: hr_payroll
+#: field:hr.contract,working_days_per_week:0
+#: field:hr.payslip,working_days:0
+#: report:payslip.pdf:0
+msgid "Working Days"
+msgstr "Pracovní dny"
+
+#. module: hr_payroll
+#: selection:hr.allounce.deduction.categoty,type:0
+#: selection:hr.payslip.line,type:0
+msgid "Loan"
+msgstr "Půjčka"
+
+#. module: hr_payroll
+#: report:hr.payroll.register.sheet:0
+msgid "Salary Payment Register"
+msgstr "Registr placení mzdy"
+
+#. module: hr_payroll
+#: field:hr.employee,slip_ids:0
+#: view:hr.payroll.register:0
+#: field:hr.payroll.register,line_ids:0
+#: model:ir.actions.act_window,name:hr_payroll.act_hr_employee_payslip_list
+msgid "Payslips"
+msgstr "Výplatní pásky"
+
+#. module: hr_payroll
+#: model:ir.actions.report.xml,name:hr_payroll.year_salary_report
+msgid "Year Salary Report"
+msgstr "Roční výkaz platu"
+
+#. module: hr_payroll
+#: selection:hr.payroll.register,state:0
+#: selection:hr.payslip,state:0
+msgid "Paid Salary"
+msgstr "Zaplacený plat"
+
+#. module: hr_payroll
+#: report:payslip.pdf:0
+msgid "("
+msgstr "("
+
+#. module: hr_payroll
+#: field:company.contribution,company_id:0
+#: field:hr.allounce.deduction.categoty,company_id:0
+#: field:hr.contibution.register,company_id:0
+#: field:hr.holidays.status,company_id:0
+#: field:hr.payroll.advice,company_id:0
+#: field:hr.payroll.register,company_id:0
+#: field:hr.payroll.structure,company_id:0
+#: field:hr.payslip,company_id:0
+msgid "Company"
+msgstr "Společnost"
+
+#. module: hr_payroll
+#: report:payroll.advice:0
+msgid "The Manager"
+msgstr "Správce"
+
+#. module: hr_payroll
+#: view:hr.payroll.advice:0
+msgid "Letter Details"
+msgstr "Podrobnosti dopisu"
+
+#. module: hr_payroll
+#: report:hr.payroll.register.sheet:0
+#: report:payslip.pdf:0
+msgid ","
+msgstr ","
+
+#. module: hr_payroll
+#: view:hr.payroll.advice:0
+#: view:hr.payroll.register:0
+#: view:hr.payslip:0
+msgid "Set to Draft"
+msgstr "Nastavit na koncept"
+
+#. module: hr_payroll
+#: code:addons/hr_payroll/hr_payroll.py:180
+#: code:addons/hr_payroll/hr_payroll.py:195
+#: code:addons/hr_payroll/hr_payroll.py:285
+#: code:addons/hr_payroll/hr_payroll.py:835
+#: code:addons/hr_payroll/hr_payroll.py:1111
+#: code:addons/hr_payroll/hr_payroll.py:1126
+#: code:addons/hr_payroll/hr_payroll.py:1410
+#, python-format
+msgid "Variable Error: %s "
+msgstr "Chyba proměnné: %s "
+
+#. module: hr_payroll
+#: view:hr.passport:0
+msgid "Expire"
+msgstr "Vyprší"
+
+#. module: hr_payroll
+#: selection:hr.holidays.status,type:0
+msgid "Half-Pay Holiday"
+msgstr "Na půl placená dovolená"
+
+#. module: hr_payroll
+#: report:hr.payroll.register.sheet:0
+#: field:hr.payslip,other_pay:0
+msgid "Others"
+msgstr "Jiné"
+
+#. module: hr_payroll
+#: field:hr.payslip.line,slip_id:0
+#: model:ir.model,name:hr_payroll.model_hr_payslip
+#: report:payslip.pdf:0
+msgid "Pay Slip"
+msgstr "Mzdový list"
+
+#. module: hr_payroll
+#: report:salary.structure:0
+msgid "Contract Detail:"
+msgstr "Podrobnosti smlouvy:"
+
+#. module: hr_payroll
+#: field:hr.payslip,igross:0
+#: field:hr.payslip,inet:0
+msgid "Calculaton Field"
+msgstr "Výpočtové pole"
+
+#. module: hr_payroll
+#: help:hr.payroll.advice,bank_id:0
+#: help:hr.payroll.register,bank_id:0
+msgid "Select the Bank Address from whcih the salary is going to be paid"
+msgstr "Vyberte adresu banky, z které bude vyplacen plat"
+
+#. module: hr_payroll
+#: view:hr.payroll.advice:0
+#: field:hr.payroll.advice.line,advice_id:0
+msgid "Bank Advice"
+msgstr "Bankovní návěští"
+
+#. module: hr_payroll
+#: selection:hr.payroll.advice,state:0
+#: selection:hr.payroll.register,state:0
+#: selection:hr.payslip,state:0
+msgid "Reject"
+msgstr "Zamítnout"
+
+#. module: hr_payroll
+#: selection:hr.allounce.deduction.categoty,type:0
+#: selection:hr.payslip.line,type:0
+msgid "Leaves"
+msgstr "Uvolnění"
+
+#. module: hr_payroll
+#: field:hr.contibution.register.line,register_id:0
+#: view:hr.payslip:0
+#: field:hr.payslip,register_id:0
+#: report:payslip.pdf:0
+msgid "Register"
+msgstr "Registrace"
+
+#. module: hr_payroll
+#: constraint:hr.employee:0
+msgid ""
+"Error ! You cannot select a department for which the employee is the manager."
+msgstr "Chyba ! Nemůžete vybrat oddělení, kterého je zaměstnanec vedoucí."
+
+#. module: hr_payroll
+#: report:payslip.pdf:0
+msgid "Total Deductions"
+msgstr "Celkem odpočty"
+
+#. module: hr_payroll
+#: field:company.contribution.line,value:0
+#: field:hr.payslip.line.line,value:0
+msgid "Value"
+msgstr "Hodnota"
+
+#. module: hr_payroll
+#: report:payroll.advice:0
+msgid "Name of the Employee"
+msgstr "Jméno zaměstnance"
+
+#. module: hr_payroll
+#: view:hr.contibution.register:0
+msgid "Register Lines"
+msgstr "Řádky registru"
+
+#. module: hr_payroll
+#: view:hr.payslip:0
+msgid "Salary Computation"
+msgstr "Výpočet mzdy"
+
+#. module: hr_payroll
+#: field:hr.payroll.advice.line,amount:0
+#: report:payroll.advice:0
+#: report:salary.structure:0
+msgid "Amount"
+msgstr "Částka"
+
+#. module: hr_payroll
+#: code:addons/hr_payroll/hr_payroll.py:1225
+#, python-format
+msgid "Please check configuration of %s, payroll head is missing"
+msgstr "Prosíme zkontrolujte nastavení %s, chybí hlavička výplatního listu"
+
+#. module: hr_payroll
+#: selection:company.contribution,amount_type:0
+msgid "Percentage"
+msgstr "Procenta"
+
+#. module: hr_payroll
+#: view:company.contribution:0
+#: view:hr.allounce.deduction.categoty:0
+msgid "Other Information"
+msgstr "Jiné informace"
+
+#. module: hr_payroll
+#: field:hr.passport,country_id:0
+msgid "Country of Issue"
+msgstr "Vydávající země"
+
+#. module: hr_payroll
+#: field:hr.contibution.register.line,emp_deduction:0
+msgid "Employee Deduction"
+msgstr "Odpočty zaměstnance"
+
+#. module: hr_payroll
+#: selection:hr.allounce.deduction.categoty,type:0
+#: selection:hr.payslip.line,type:0
+msgid "Other Deduction"
+msgstr "Jiné odpočty"
+
+#. module: hr_payroll
+#: selection:hr.holidays.status,type:0
+msgid "Paid Holiday"
+msgstr "Placená dovolená"
+
+#. module: hr_payroll
+#: view:company.contribution:0
+#: view:hr.allounce.deduction.categoty:0
+#: view:hr.passport:0
+#: view:hr.payslip:0
+msgid "Group By..."
+msgstr "Seskupit podle..."
+
+#. module: hr_payroll
+#: field:hr.passport,date_expire:0
+msgid "Passport Expire Date"
+msgstr "Datum vypršení pasu"
+
+#. module: hr_payroll
+#: selection:hr.holidays.status,type:0
+msgid "Un-Paid Holiday"
+msgstr "Neplacená dovolená"
+
+#. module: hr_payroll
+#: view:hr.passport:0
+msgid "Valid From"
+msgstr "Platné od"
+
+#. module: hr_payroll
+#: help:hr.payslip,igross:0
+#: help:hr.payslip,inet:0
+msgid ""
+"Calculation field used for internal calculation, do not place this on form"
+msgstr ""
+"Výpočtové pole použité pro vnitřní výpočty, neumísťujte jej do formuláře"
+
+#. module: hr_payroll
+#: report:payslip.pdf:0
+msgid "Amount (in words) :"
+msgstr "Částka (slovně) :"
+
+#. module: hr_payroll
+#: field:hr.holidays.status,type:0
+msgid "Payment"
+msgstr "Patba"
+
+#. module: hr_payroll
+#: view:hr.payroll.structure:0
+#: view:hr.payslip:0
+#: field:hr.payslip,line_ids:0
+#: view:hr.payslip.line:0
+#: model:ir.model,name:hr_payroll.model_hr_payslip_line
+msgid "Payslip Line"
+msgstr "Řádek výplatní pásky"
+
+#. module: hr_payroll
+#: report:payslip.pdf:0
+msgid "Identification No"
+msgstr "Identifikační č."
+
+#. module: hr_payroll
+#: view:hr.allounce.deduction.categoty:0
+#: field:hr.allounce.deduction.categoty,base:0
+msgid "Based on"
+msgstr "Založeno na"
+
+#. module: hr_payroll
+#: selection:hr.payroll.register,state:0
+#: selection:hr.payslip,state:0
+msgid "Wating for Verification"
+msgstr "Čekající na ověření"
+
+#. module: hr_payroll
+#: model:ir.module.module,shortdesc:hr_payroll.module_meta_information
+msgid "Human Resource Payroll"
+msgstr "Mzdy lidských zdrojů"
+
+#. module: hr_payroll
+#: report:payroll.advice:0
+msgid "Total:"
+msgstr "Celkem:"
+
+#. module: hr_payroll
+#: view:hr.payslip:0
+msgid "Posted"
+msgstr "Zasláno"
+
+#. module: hr_payroll
+#: model:ir.module.module,description:hr_payroll.module_meta_information
+msgid ""
+"Generic Payroll system\n"
+" * Employee Details\n"
+" * Employee Contracts\n"
+" * Passport based Contract\n"
+" * Allowances / Deductions\n"
+" * Allow to configure Basic / Grows / Net Salary\n"
+" * Employee Payslip\n"
+" * Monthly Payroll Register\n"
+" * Integrated with Holiday Management\n"
+" "
+msgstr ""
+"Obecný mzdový systém\n"
+" * Podrobnosti zaměstnance\n"
+" * Smlouvy zaměstnance\n"
+" * Smlouvy založené na pasu\n"
+" * Přídavky / Odpočty\n"
+" * Umožňuje nastavit základní / hrubé /čisté mzdy\n"
+" * Výplatní pásky zaměstnanců\n"
+" * Měsíční registr mezd\n"
+" * Integrováno se správou dovolených\n"
+" "
+
+#. module: hr_payroll
+#: model:ir.model,name:hr_payroll.model_hr_holidays_status
+msgid "Leave Type"
+msgstr "Typ uvolnění"
+
+#. module: hr_payroll
+#: report:hr.payroll.register.sheet:0
+msgid "Date :"
+msgstr "Datum:"
+
+#. module: hr_payroll
+#: field:hr.payslip.line,total:0
+msgid "Sub Total"
+msgstr "Mezivýsledek"
+
+#. module: hr_payroll
+#: report:payslip.pdf:0
+msgid "Payments -"
+msgstr "Platby -"
+
+#. module: hr_payroll
+#: field:hr.contract,visa_no:0
+msgid "Visa No"
+msgstr "Č. víza"
+
+#. module: hr_payroll
+#: field:company.contribution.line,from_val:0
+#: report:employees.salary:0
+#: field:hr.payslip.line.line,from_val:0
+#: report:year.salary:0
+msgid "From"
+msgstr "Od"
+
+#. module: hr_payroll
+#: field:hr.payroll.advice.line,bysal:0
+#: report:payroll.advice:0
+msgid "By Salary"
+msgstr "Podle platu"
+
+#. module: hr_payroll
+#: field:hr.payroll.employees.detail,date_to:0
+#: field:hr.payroll.year.salary,date_to:0
+#: report:salary.structure:0
+msgid "End Date"
+msgstr "Koncové datum"
+
+#. module: hr_payroll
+#: model:ir.actions.report.xml,name:hr_payroll.salary_payslip
+msgid "Employee PaySlip"
+msgstr "Výplatní páska zaměstnance"
+
+#. module: hr_payroll
+#: field:hr.payslip,leaves:0
+msgid "Leave Deductions"
+msgstr "Odvody uvolnění"
+
+#. module: hr_payroll
+#: report:hr.payroll.register.sheet:0
+#: report:payroll.advice:0
+msgid "Authorised Signature"
+msgstr "Oprávněný podpis"
+
+#. module: hr_payroll
+#: selection:hr.payslip.line,amount_type:0
+msgid "Function Value"
+msgstr "Hodnota funkce"
+
+#. module: hr_payroll
+#: model:ir.model,name:hr_payroll.model_hr_contibution_register_line
+msgid "Contribution Register Line"
+msgstr "Řádek registru příspěvků"
+
+#. module: hr_payroll
+#: report:salary.structure:0
+msgid "Notes:"
+msgstr "Poznámky:"
+
+#. module: hr_payroll
+#: field:hr.payroll.advice,state:0
+#: field:hr.payroll.register,state:0
+#: field:hr.payslip,state:0
+msgid "State"
+msgstr "Stav"
+
+#. module: hr_payroll
+#: view:hr.payroll.advice:0
+msgid "Paymeny Lines"
+msgstr "Řádky platby"
+
+#. module: hr_payroll
+#: report:payslip.pdf:0
+msgid "Other Lines"
+msgstr "Jiné řádky"
+
+#. module: hr_payroll
+#: view:company.contribution:0
+#: view:hr.allounce.deduction.categoty:0
+#: view:hr.payroll.structure:0
+#: view:hr.payslip:0
+#: view:hr.payslip.line:0
+msgid "Function Arguments"
+msgstr "Parametry funkce"
+
+#. module: hr_payroll
+#: model:ir.actions.act_window,name:hr_payroll.action_hr_company_contribution_tree
+#: model:ir.ui.menu,name:hr_payroll.menu_hr_company_contribution_tree
+msgid "Company Contributions"
+msgstr "Příspěvky společnosti"
+
+#. module: hr_payroll
+#: field:hr.contibution.register.line,employee_id:0
+#: field:hr.passport,employee_id:0
+#: field:hr.payroll.advice.line,employee_id:0
+#: field:hr.payslip,employee_id:0
+#: field:hr.payslip.line,employee_id:0
+#: model:ir.model,name:hr_payroll.model_hr_employee
+msgid "Employee"
+msgstr "Zaměstnanec"
+
+#. module: hr_payroll
+#: field:hr.payslip.line,base:0
+msgid "Formula"
+msgstr "Vzorec"
+
+#. module: hr_payroll
+#: model:ir.model,name:hr_payroll.model_hr_payroll_advice_line
+msgid "Bank Advice Lines"
+msgstr "Řádky bankovního avíza"
+
+#. module: hr_payroll
+#: view:company.contribution:0
+#: view:hr.allounce.deduction.categoty:0
+#: field:hr.allounce.deduction.categoty,type:0
+#: field:hr.payslip.line,type:0
+#: report:salary.structure:0
+msgid "Type"
+msgstr "Typ"
+
+#. module: hr_payroll
+#: report:payslip.pdf:0
+msgid "Email"
+msgstr "Email"
+
+#. module: hr_payroll
+#: report:hr.payroll.register.sheet:0
+msgid "#"
+msgstr "#"
+
+#. module: hr_payroll
+#: code:addons/hr_payroll/hr_payroll.py:469
+#: code:addons/hr_payroll/hr_payroll.py:1225
+#, python-format
+msgid "Error !"
+msgstr "Chyba !"
+
+#. module: hr_payroll
+#: view:hr.payroll.register:0
+#: view:hr.payslip:0
+msgid "Verify Sheet"
+msgstr "Ověřovací list"
+
+#. module: hr_payroll
+#: help:hr.contract,working_days_per_week:0
+msgid "No of Working days / week for an employee"
+msgstr "Poč. pracovních dnů / týdnů pro zaměstnance"
+
+#. module: hr_payroll
+#: selection:hr.payroll.register,state:0
+#: selection:hr.payslip,state:0
+msgid "New Slip"
+msgstr "Nový list"
+
+#. module: hr_payroll
+#: field:hr.payslip,basic:0
+msgid "Net Basic"
+msgstr "Základ čistého"
+
+#. module: hr_payroll
+#: field:hr.contract,gross:0
+#: field:hr.employee,gross:0
+#: field:hr.payroll.register,grows:0
+#: field:hr.payslip,grows:0
+#: report:salary.structure:0
+msgid "Gross Salary"
+msgstr "Hrubá mzda"
+
+#. module: hr_payroll
+#: report:payslip.pdf:0
+msgid "Total Earnings"
+msgstr "Výdělek celkem"
+
+#. module: hr_payroll
+#: model:ir.actions.act_window,name:hr_payroll.action_hr_payroll_employees_detail
+#: model:ir.ui.menu,name:hr_payroll.menu_hr_payroll_employees_detail
+msgid "Employee Salary Statement"
+msgstr "Příkaz mzdy zaměstnance"
+
+#. module: hr_payroll
+#: selection:hr.allounce.deduction.categoty,type:0
+#: selection:hr.payslip.line,type:0
+msgid "Other Payment"
+msgstr "Jiné platby"
+
+#. module: hr_payroll
+#: field:hr.employee,advantages_net:0
+#: report:payslip.pdf:0
+#: report:salary.structure:0
+msgid "Deductions"
+msgstr "Odpočty"
+
+#. module: hr_payroll
+#: report:payroll.advice:0
+msgid "C/D"
+msgstr "C/D"
+
+#. module: hr_payroll
+#: field:hr.contract,permit_no:0
+msgid "Work Permit No"
+msgstr "Č. pracovního povolení"
+
+#. module: hr_payroll
+#: field:hr.payroll.advice,line_ids:0
+msgid "Employee Salary"
+msgstr "Mzda zaměstnance"
+
+#. module: hr_payroll
+#: field:hr.payroll.advice,chaque_nos:0
+msgid "Chaque Nos"
+msgstr "Č. poukázek"
+
+#. module: hr_payroll
+#: field:hr.contibution.register,monthly_total_by_emp:0
+msgid "Total By Employee"
+msgstr "Celkem podle zaměstnance"
+
+#. module: hr_payroll
+#: view:company.contribution:0
+#: selection:company.contribution,amount_type:0
+#: selection:company.contribution.line,amount_type:0
+#: selection:hr.payslip.line,amount_type:0
+#: selection:hr.payslip.line.line,amount_type:0
+msgid "Fixed Amount"
+msgstr "Pevná částka"
+
+#. module: hr_payroll
+#: field:company.contribution.line,to_val:0
+#: report:employees.salary:0
+#: field:hr.payslip.line.line,to_val:0
+#: report:year.salary:0
+msgid "To"
+msgstr "Komu"
+
+#. module: hr_payroll
+#: code:addons/hr_payroll/hr_payroll.py:180
+#: code:addons/hr_payroll/hr_payroll.py:195
+#: code:addons/hr_payroll/hr_payroll.py:285
+#: code:addons/hr_payroll/hr_payroll.py:835
+#: code:addons/hr_payroll/hr_payroll.py:1111
+#: code:addons/hr_payroll/hr_payroll.py:1126
+#: code:addons/hr_payroll/hr_payroll.py:1410
+#, python-format
+msgid "Variable Error !"
+msgstr "Chyba proměnné !"
+
+#. module: hr_payroll
+#: model:ir.model,name:hr_payroll.model_hr_payroll_employees_detail
+msgid "hr.payroll.employees.detail"
+msgstr "hr.payroll.employees.detail"
+
+#. module: hr_payroll
+#: view:hr.payroll.register:0
+#: view:hr.payslip:0
+msgid "Pay Salary"
+msgstr "Vyplatit mzdu"
+
+#. module: hr_payroll
+#: field:hr.payroll.advice.line,name:0
+msgid "Bank Account A/C"
+msgstr "Bankovní účet A/C"
+
+#. module: hr_payroll
+#: view:hr.contibution.register:0
+msgid "Contribution Lines"
+msgstr "Řádky příspěvků"
+
+#. module: hr_payroll
+#: report:hr.payroll.register.sheet:0
+msgid "For the month of"
+msgstr "Pro měsíc z"
+
+#. module: hr_payroll
+#: view:hr.allounce.deduction.categoty:0
+#: selection:hr.allounce.deduction.categoty,type:0
+#: field:hr.payroll.register,deduction:0
+#: report:hr.payroll.register.sheet:0
+#: field:hr.payslip,deduction:0
+#: selection:hr.payslip.line,type:0
+msgid "Deduction"
+msgstr "Odpočty"
+
+#. module: hr_payroll
+#: model:ir.model,name:hr_payroll.model_hr_payroll_advice
+msgid "Bank Advice Note"
+msgstr "Poznámka bankovního avíza"
+
+#. module: hr_payroll
+#: view:hr.payroll.register:0
+#: view:hr.payslip:0
+msgid "Payslip"
+msgstr "Výplatní list"
+
+#. module: hr_payroll
+#: constraint:hr.contract:0
+msgid "Error! contract start-date must be lower then contract end-date."
+msgstr "Chyba! Počáteční datum smlouvy musí být nižší než konečné datum."
+
+#. module: hr_payroll
+#: selection:hr.allounce.deduction.categoty,type:0
+#: selection:hr.payslip.line,type:0
+msgid "Loan Installment"
+msgstr "Půjčovací zřízení"
+
+#. module: hr_payroll
+#: view:hr.payroll.register:0
+msgid "Complete HR Checking"
+msgstr "Celková kontrola HR"
+
+#. module: hr_payroll
+#: report:payroll.advice:0
+msgid "Yours Sincerely"
+msgstr "S přátelským pozdravem"
+
+#. module: hr_payroll
+#: report:payroll.advice:0
+msgid "SI. No."
+msgstr "Č. SI."
+
+#. module: hr_payroll
+#: report:payslip.pdf:0
+msgid "Net Amount"
+msgstr "Částka čistkého"
+
+#. module: hr_payroll
+#: report:salary.structure:0
+msgid "Salary Structure:"
+msgstr "Struktura platu:"
+
+#. module: hr_payroll
+#: model:ir.actions.report.xml,name:hr_payroll.year_employees_detail
+msgid "Employees Salary Detail"
+msgstr "Podrobnosti mezd zaměstnanců"
+
+#. module: hr_payroll
+#: model:ir.model,name:hr_payroll.model_hr_payslip_line_line
+msgid "Function Line"
+msgstr "Řádek funkce"
+
+#. module: hr_payroll
+#: view:hr.payroll.advice:0
+#: selection:hr.payroll.advice,state:0
+#: selection:hr.payroll.register,state:0
+#: selection:hr.payslip,state:0
+msgid "Confirm Sheet"
+msgstr "Potvrzovací list"
+
+#. module: hr_payroll
+#: report:employees.salary:0
+msgid "Others:"
+msgstr "Jiné:"
+
+#. module: hr_payroll
+#: view:company.contribution:0
+#: selection:company.contribution,amount_type:0
+msgid "Function Calculation"
+msgstr "Výpoče funkce"
+
+#. module: hr_payroll
+#: field:hr.payslip,worked_days:0
+#: report:payslip.pdf:0
+msgid "Worked Day"
+msgstr "Pracovních dnů"
+
+#. module: hr_payroll
+#: field:hr.contibution.register,monthly_total_by_comp:0
+msgid "Total By Company"
+msgstr "Celkem podle společnosti"
+
+#. module: hr_payroll
+#: field:hr.payroll.advice.line,flag:0
+msgid "D/C"
+msgstr "D/C"
+
+#. module: hr_payroll
+#: view:hr.passport:0
+msgid "Country & Address"
+msgstr "Zěmě & Adresa"
+
+#. module: hr_payroll
+#: report:employees.salary:0
+msgid "Employee Code"
+msgstr "Kód zaměstnance"
+
+#. module: hr_payroll
+#: report:payslip.pdf:0
+msgid "Basic Salary – Leaves"
+msgstr "Základní mzda - uvolnění"
+
+#. module: hr_payroll
+#: field:company.contribution,amount_type:0
+#: field:company.contribution.line,amount_type:0
+#: field:hr.payslip.line,amount_type:0
+#: field:hr.payslip.line.line,amount_type:0
+#: report:salary.structure:0
+msgid "Amount Type"
+msgstr "Typ částky"
+
+#. module: hr_payroll
+#: view:company.contribution:0
+#: field:hr.payslip.line,category_id:0
+msgid "Category"
+msgstr "Kategorie"
+
+#. module: hr_payroll
+#: view:company.contribution:0
+#: view:hr.allounce.deduction.categoty:0
+#: field:hr.payslip.line,company_contrib:0
+#: model:ir.model,name:hr_payroll.model_company_contribution
+msgid "Company Contribution"
+msgstr "Příspěvek společnosti"
+
+#. module: hr_payroll
+#: field:company.contribution,category_id:0
+msgid "Heads"
+msgstr "Hlavičky"
+
+#. module: hr_payroll
+#: model:ir.actions.report.xml,name:hr_payroll.year_payroll_register
+msgid "Print Statement"
+msgstr "Tiskový příkaz"
+
+#. module: hr_payroll
+#: view:hr.payslip:0
+msgid "Draft"
+msgstr "Koncept"
+
+#. module: hr_payroll
+#: report:payslip.pdf:0
+msgid "Earnings"
+msgstr "Výdělek"
+
+#. module: hr_payroll
+#: report:hr.payroll.register.sheet:0
+#: report:salary.structure:0
+msgid "Basic"
+msgstr "Základní"
+
+#. module: hr_payroll
+#: model:ir.actions.act_window,name:hr_payroll.action_hr_passport_tree
+msgid "All Passports"
+msgstr "Všechny průkazy"
+
+#. module: hr_payroll
+#: model:ir.actions.act_window,name:hr_payroll.action_hr_payroll_year_salary
+#: model:ir.ui.menu,name:hr_payroll.menu_wizard_print_year_salary
+msgid "Salary Register"
+msgstr "Registr mezd"
+
+#. module: hr_payroll
+#: report:employees.salary:0
+#: report:hr.payroll.register.sheet:0
+msgid "Employee Name"
+msgstr "Jméno zaměstnance"
+
+#. module: hr_payroll
+#: model:ir.model,name:hr_payroll.model_hr_passport
+msgid "Passport Detail"
+msgstr "Podrobnosti pasu"
+
+#. module: hr_payroll
+#: selection:hr.payslip.line,amount_type:0
+msgid "Percentage (%)"
+msgstr "Procenta (%)"
+
+#. module: hr_payroll
+#: field:hr.payroll.advice,register_id:0
+#: view:hr.payroll.register:0
+#: model:ir.actions.act_window,name:hr_payroll.action_view_hr_payroll_register_form
+#: model:ir.model,name:hr_payroll.model_hr_payroll_register
+#: model:ir.ui.menu,name:hr_payroll.hr_menu_payroll_register
+msgid "Payroll Register"
+msgstr "Registr výplat"
+
+#. module: hr_payroll
+#: report:hr.payroll.register.sheet:0
+#: report:payroll.advice:0
+msgid "For"
+msgstr "Pro"
+
+#. module: hr_payroll
+#: field:hr.passport,contracts_ids:0
+msgid "Contracts"
+msgstr "Smlouvy"
+
+#. module: hr_payroll
+#: view:hr.payroll.structure:0
+msgid "Employee Function"
+msgstr "Funkce zaměstnance"
+
+#. module: hr_payroll
+#: view:hr.payslip:0
+msgid "Paid"
+msgstr "Placeno"
+
+#. module: hr_payroll
+#: view:hr.payslip:0
+msgid "Approve Sheet"
+msgstr "Schvalovací list"
+
+#. module: hr_payroll
+#: field:hr.payslip,paid:0
+msgid "Paid ? "
+msgstr "Placeno ? "
+
+#. module: hr_payroll
+#: view:hr.holidays.status:0
+msgid "Validation"
+msgstr "Ověření"
+
+#. module: hr_payroll
+#: report:employees.salary:0
+msgid "Title"
+msgstr "Oslovení"
+
+#. module: hr_payroll
+#: view:company.contribution:0
+msgid "Search Company Contribution"
+msgstr "Hledat příspěvky společnosti"
+
+#. module: hr_payroll
+#: field:hr.allounce.deduction.categoty,user_id:0
+msgid "User"
+msgstr "Uživatel"
+
+#. module: hr_payroll
+#: view:hr.payroll.advice:0
+msgid "Payment Lines"
+msgstr "Platební řádky"
+
+#. module: hr_payroll
+#: view:hr.payslip:0
+msgid "Compute Sheet"
+msgstr "Výpočtový list"
+
+#. module: hr_payroll
+#: field:company.contribution,active:0
+#: field:hr.payroll.register,active:0
+msgid "Active"
+msgstr "Aktivní"
+
+#. module: hr_payroll
+#: help:hr.allounce.deduction.categoty,condition:0
+msgid "Applied this head for calculation if condition is true"
+msgstr "Tato hlavička použita pro výpočty, pokud je pravda"
+
+#. module: hr_payroll
+#: report:year.salary:0
+msgid "Yearly Salary Details"
+msgstr "Roční podrobnosti platu"
+
+#. module: hr_payroll
+#: constraint:hr.employee:0
+msgid "Error ! You cannot create recursive Hierarchy of Employees."
+msgstr "Chyba ! Nemůžete vytvořit rekurzivní Hierarchii zaměstnanců"
+
+#. module: hr_payroll
+#: field:hr.allounce.deduction.categoty,condition:0
+msgid "Condition"
+msgstr "Podmínka"
+
+#. module: hr_payroll
+#: selection:hr.payroll.register,state:0
+#: selection:hr.payslip,state:0
+msgid "Wating for HR Verification"
+msgstr "Čekající na ověření HR"
+
+#. module: hr_payroll
+#: report:payroll.advice:0
+msgid "Payment Advice:"
+msgstr "Platební avízo:"
+
+#. module: hr_payroll
+#: view:hr.payroll.register:0
+msgid "Compute"
+msgstr "Spočítat"
+
+#. module: hr_payroll
+#: report:employees.salary:0
+#: field:hr.payslip,deg_id:0
+#: report:payslip.pdf:0
+#: report:salary.structure:0
+msgid "Designation"
+msgstr "Zařazení"
+
+#. module: hr_payroll
+#: report:hr.payroll.register.sheet:0
+msgid "HR Manager"
+msgstr "Správce HR"
+
+#. module: hr_payroll
+#: field:hr.contract,basic:0
+#: field:hr.employee,basic:0
+#: field:hr.payslip,basic_before_leaves:0
+#: report:payslip.pdf:0
+msgid "Basic Salary"
+msgstr "Základní plat"
+
+#. module: hr_payroll
+#: field:hr.allounce.deduction.categoty,code:0
+msgid "Category Code"
+msgstr "Kód kategorie"
+
+#. module: hr_payroll
+#: view:hr.payroll.register:0
+msgid "Salary Information"
+msgstr "Mzdové informace"
+
+#. module: hr_payroll
+#: model:ir.model,name:hr_payroll.model_hr_allounce_deduction_categoty
+#: model:ir.model,name:hr_payroll.model_hr_allounce_deduction_categoty_line
+msgid "Allowance Deduction Categoty"
+msgstr "Kategorie přídavků a odpočtů"
+
+#. module: hr_payroll
+#: view:hr.payslip:0
+msgid "Companies"
+msgstr "Společnosti"
+
+#. module: hr_payroll
+#: report:payslip.pdf:0
+msgid "Authorized Signature"
+msgstr "Oprávněný podpis"
+
+#. module: hr_payroll
+#: field:hr.payslip,contract_id:0
+#: model:ir.model,name:hr_payroll.model_hr_contract
+msgid "Contract"
+msgstr "Smlouva"
+
+#. module: hr_payroll
+#: selection:hr.payroll.advice,state:0
+msgid "Draft Sheet"
+msgstr "Návrhový list"
+
+#. module: hr_payroll
+#: selection:hr.payroll.year.salary,salary_on:0
+msgid "Next Month Date"
+msgstr "Datum dalšího měsíce"
+
+#. module: hr_payroll
+#: field:hr.contibution.register.line,date:0
+#: field:hr.payroll.advice,date:0
+#: field:hr.payroll.register,date:0
+#: field:hr.payslip,date:0
+msgid "Date"
+msgstr "Datum"
+
+#. module: hr_payroll
+#: field:hr.contract,visa_expire:0
+msgid "Visa Expire Date"
+msgstr "Datum vypršení víza"
+
+#. module: hr_payroll
+#: view:hr.passport:0
+msgid "Search Passport"
+msgstr "Hledat pas"
+
+#. module: hr_payroll
+#: report:employees.salary:0
+#: report:salary.structure:0
+msgid "Phone No."
+msgstr "Č. telefonu"
+
+#. module: hr_payroll
+#: field:company.contribution,contribute_per:0
+#: field:company.contribution.line,contribution_id:0
+#: view:hr.allounce.deduction.categoty:0
+#: view:hr.contibution.register:0
+#: view:hr.contibution.register.line:0
+msgid "Contribution"
+msgstr "Příspěvky"
+
+#. module: hr_payroll
+#: field:hr.allounce.deduction.categoty,state:0
+msgid "Label"
+msgstr "Označení"
+
+#. module: hr_payroll
+#: view:hr.payroll.structure:0
+#: view:hr.payslip:0
+#: view:hr.payslip.line:0
+msgid "Company contribution"
+msgstr "Příspěvky společnosti"
+
+#. module: hr_payroll
+#: report:employees.salary:0
+#: report:salary.structure:0
+msgid "Other No."
+msgstr "Jiné č."
+
+#. module: hr_payroll
+#: field:company.contribution,code:0
+#: field:hr.contibution.register.line,code:0
+#: field:hr.holidays.status,code:0
+#: field:hr.payroll.structure,code:0
+#: field:hr.payslip.line,code:0
+#: report:payslip.pdf:0
+#: report:salary.structure:0
+msgid "Code"
+msgstr "Kód"
+
+#. module: hr_payroll
+#: model:ir.actions.act_window,name:hr_payroll.action_view_hr_bank_advice_tree
+#: model:ir.ui.menu,name:hr_payroll.hr_menu_payment_advice
+msgid "Payment Advice"
+msgstr "Platební avízo"
+
+#. module: hr_payroll
+#: report:hr.payroll.register.sheet:0
+msgid "Number :"
+msgstr "Číslo :"
+
+#. module: hr_payroll
+#: help:hr.allounce.deduction.categoty,base:0
+msgid ""
+"This will use to computer the % fields values, in general its on basic, but "
+"You can use all heads code field in small letter as a variable name i.e. "
+"hra, ma, lta, etc...., also you can use, static varible basic"
+msgstr ""
+"Toto bude použito pro výpočet hodnot polí %s , obecně je na základě, ale "
+"můžete použít všechny pole kódů v malých písmenných jako jména proměnných "
+"např. hra, ma, lta, atd..., také můžete použít základní statické proměnné."
+
+#. module: hr_payroll
+#: view:hr.payslip:0
+msgid "Computation Overview"
+msgstr "Přehled výpočtů"
+
+#. module: hr_payroll
+#: field:hr.payroll.year.salary,salary_on:0
+msgid "Salary On"
+msgstr "Mzda na"
+
+#. module: hr_payroll
+#: field:hr.payroll.advice,number:0
+#: field:hr.payroll.register,number:0
+#: field:hr.payslip,number:0
+msgid "Number"
+msgstr "Číslo"
+
+#. module: hr_payroll
+#: field:hr.contract,struct_id:0
+#: field:hr.employee,line_ids:0
+#: view:hr.payroll.structure:0
+#: field:hr.payroll.structure,line_ids:0
+#: view:hr.payslip:0
+#: view:hr.payslip.line:0
+#: model:ir.actions.act_window,name:hr_payroll.action_view_hr_employee_grade_form
+#: model:ir.actions.report.xml,name:hr_payroll.salary_structure_register
+#: model:ir.model,name:hr_payroll.model_hr_payroll_structure
+#: model:ir.ui.menu,name:hr_payroll.menu_hr_employee_function
+msgid "Salary Structure"
+msgstr "Struktura platu"
+
+#. module: hr_payroll
+#: field:hr.contibution.register,register_line_ids:0
+msgid "Register Line"
+msgstr "Řádek registru"
+
+#. module: hr_payroll
+#: view:hr.payroll.register:0
+#: view:hr.payslip:0
+msgid "Cancel"
+msgstr "Zrušit"
+
+#. module: hr_payroll
+#: view:hr.payroll.employees.detail:0
+#: view:hr.payroll.year.salary:0
+msgid "Close"
+msgstr "Uzavřít"
+
+#. module: hr_payroll
+#: field:hr.payslip.line,amount:0
+msgid "Amount / Percentage"
+msgstr "Částka / Procenta"
+
+#. module: hr_payroll
+#: field:hr.employee,advantages_gross:0
+#: report:hr.payroll.register.sheet:0
+#: report:salary.structure:0
+msgid "Allowances"
+msgstr "Dávky"
+
+#. module: hr_payroll
+#: selection:hr.payroll.year.salary,salary_on:0
+msgid "Current Month Date"
+msgstr "Datum aktuálního měsíce"
+
+#. module: hr_payroll
+#: report:salary.structure:0
+msgid "Salary"
+msgstr "Plat"
+
+#. module: hr_payroll
+#: field:hr.contract,passport_id:0
+#: field:hr.passport,name:0
+msgid "Passport No"
+msgstr "Číslo pasu"
+
+#. module: hr_payroll
+#: view:hr.passport:0
+msgid "Passport"
+msgstr "Pas"
+
+#. module: hr_payroll
+#: report:hr.payroll.register.sheet:0
+msgid "Total Salary"
+msgstr "Celkový plat"
+
+#. module: hr_payroll
+#: report:payroll.advice:0
+msgid "for period"
+msgstr "pro období"
+
+#. module: hr_payroll
+#: field:hr.holidays.status,head_id:0
+msgid "Payroll Head"
+msgstr "Hlavička výplatního listu"
+
+#. module: hr_payroll
+#: field:company.contribution,register_id:0
+#: model:ir.actions.act_window,name:hr_payroll.action_contibution_register_form
+#: model:ir.model,name:hr_payroll.model_hr_contibution_register
+#: model:ir.ui.menu,name:hr_payroll.menu_action_hr_contibution_register_form
+msgid "Contribution Register"
+msgstr "Registr příspěvků"
+
+#. module: hr_payroll
+#: report:salary.structure:0
+msgid "E-mail"
+msgstr "E-mail"
+
+#. module: hr_payroll
+#: view:hr.allounce.deduction.categoty:0
+#: model:ir.actions.act_window,name:hr_payroll.hr_allounce_deduction_tree
+#: model:ir.ui.menu,name:hr_payroll.menu_hr_allounce_deduction_tree
+msgid "Salary Heads"
+msgstr "Hlavičky platu"
+
+#. module: hr_payroll
+#: view:hr.payroll.employees.detail:0
+#: view:hr.payroll.year.salary:0
+msgid "Print Report"
+msgstr "Tisknout výkaz"
+
+#. module: hr_payroll
+#: field:company.contribution,line_ids:0
+#: view:hr.payroll.structure:0
+#: view:hr.payslip:0
+#: view:hr.payslip.line:0
+#: field:hr.payslip.line,line_ids:0
+msgid "Calculations"
+msgstr "Výpočty"
+
+#. module: hr_payroll
+#: help:company.contribution,contribute_per:0
+msgid ""
+"Define Company contribution ratio 1.00=100% contribution, If Employee "
+"Contribute 5% then company will and here 0.50 defined then company will "
+"contribute 50% on employee 5% contribution"
+msgstr ""
+"Určuje poměř příspěvků společnosti 1,00=100% příspěvků. Pokud je zaměstnance "
+"přispěje 5%, pak spoleřnost bude a zde 0,5 určeno, pak společnost přispěje "
+"50% na 5% příspěvek zaměstnance."
+
+#. module: hr_payroll
+#: view:hr.payslip:0
+msgid "Other Informations"
+msgstr "Jiné informace"
+
+#. module: hr_payroll
+#: view:hr.contibution.register:0
+msgid "Month"
+msgstr "Měsíc"
+
+#. module: hr_payroll
+#: view:hr.passport:0
+msgid "Issue"
+msgstr "Vydano"
+
+#. module: hr_payroll
+#: view:hr.allounce.deduction.categoty:0
+msgid "Dynamic Computation"
+msgstr "Dynamický výpočet"
+
+#. module: hr_payroll
+#: report:payslip.pdf:0
+msgid "Basic Salary without Leave:"
+msgstr "Základní mzda bez uvolnění:"
+
+#. module: hr_payroll
+#: view:company.contribution:0
+#: view:hr.allounce.deduction.categoty:0
+#: view:hr.payroll.structure:0
+#: view:hr.payslip:0
+#: view:hr.payslip.line:0
+#: field:hr.payslip.line,function_id:0
+msgid "Function"
+msgstr "Funkce"
+
+#. module: hr_payroll
+#: view:hr.payslip:0
+msgid "States"
+msgstr "Stavy"
+
+#. module: hr_payroll
+#: report:payroll.advice:0
+msgid "Dear Sir/Madam,"
+msgstr "Vážený pane/paní,"
+
+#. module: hr_payroll
+#: model:ir.model,name:hr_payroll.model_hr_allounce_deduction_categoty
+msgid "Allowance Deduction Heads"
+msgstr "Hlavičky přídavků a odpočtů"
+
+#. module: hr_payroll
+#: report:hr.payroll.register.sheet:0
+msgid "Gross Sal."
+msgstr "Hrubá mzda"
+
+#. module: hr_payroll
+#: view:company.contribution:0
+#: field:company.contribution,note:0
+#: view:hr.allounce.deduction.categoty:0
+#: field:hr.allounce.deduction.categoty,note:0
+#: view:hr.contibution.register:0
+#: field:hr.contibution.register,note:0
+#: view:hr.passport:0
+#: field:hr.passport,note:0
+#: field:hr.payroll.advice,note:0
+#: field:hr.payroll.register,note:0
+#: view:hr.payroll.structure:0
+#: field:hr.payroll.structure,note:0
+#: view:hr.payslip:0
+#: field:hr.payslip,note:0
+#: view:hr.payslip.line:0
+#: field:hr.payslip.line,note:0
+msgid "Description"
+msgstr "Popis"
+
+#. module: hr_payroll
+#: field:hr.payroll.employees.detail,date_from:0
+#: field:hr.payroll.year.salary,date_from:0
+#: report:salary.structure:0
+msgid "Start Date"
+msgstr "Počáteční datum"
+
+#. module: hr_payroll
+#: report:payslip.pdf:0
+msgid "Deduction -"
+msgstr "Odpočty -"
+
+#. module: hr_payroll
+#: report:payslip.pdf:0
+msgid ")"
+msgstr ")"
+
+#. module: hr_payroll
+#: view:hr.contibution.register:0
+msgid "Contribution Registers"
+msgstr "Registr příspěvků"
+
+#. module: hr_payroll
+#: model:ir.ui.menu,name:hr_payroll.menu_hr_payroll_reporting
+#: model:ir.ui.menu,name:hr_payroll.menu_hr_root_payroll
+#: model:ir.ui.menu,name:hr_payroll.payroll_configure
+msgid "Payroll"
+msgstr "Mzdy"
+
+#. module: hr_payroll
+#: model:ir.model,name:hr_payroll.model_hr_contract_wage_type
+msgid "Wage Type"
+msgstr "Typ mzdy"
+
+#. module: hr_payroll
+#: report:hr.payroll.register.sheet:0
+msgid "Net Sal."
+msgstr "Čistá mzda"
+
+#. module: hr_payroll
+#: sql_constraint:hr.passport:0
+msgid "The Passport No must be unique !"
+msgstr "Číslo pasu musí být jedinečné !"
+
+#. module: hr_payroll
+#: field:hr.allounce.deduction.categoty,name:0
+msgid "Category Name"
+msgstr "Název kategorie"
+
+#. module: hr_payroll
+#: model:ir.model,name:hr_payroll.model_hr_payroll_year_salary
+msgid "hr.payroll.year.salary"
+msgstr "hr.payroll.year.salary"
+
+#. module: hr_payroll
+#: report:employees.salary:0
+#: field:hr.passport,address_id:0
+#: report:payslip.pdf:0
+#: report:salary.structure:0
+msgid "Address"
+msgstr "Adresa"
+
+#. module: hr_payroll
+#: field:hr.payslip.line.line,slipline_id:0
+msgid "Slip Line"
+msgstr "Řádek listu"
+
+#. module: hr_payroll
+#: report:payslip.pdf:0
+msgid "Number of Leaves"
+msgstr "Počet uvolnění"
+
+#. module: hr_payroll
+#: report:employees.salary:0
+#: field:hr.payroll.advice,bank_id:0
+#: field:hr.payroll.register,bank_id:0
+#: report:salary.structure:0
+msgid "Bank"
+msgstr "Banka"
+
+#. module: hr_payroll
+#: view:hr.payroll.advice:0
+msgid "Cancel Sheet"
+msgstr "Zrušit list"
+
+#. module: hr_payroll
+#: selection:hr.allounce.deduction.categoty,type:0
+#: selection:hr.payslip.line,type:0
+msgid "Advance"
+msgstr "Záloha"
+
+#. module: hr_payroll
+#: report:salary.structure:0
+msgid "Special Allowances and Deductions For Employee:"
+msgstr "Speciální přídavky a odpočty pro zaměstnance:"
+
+#. module: hr_payroll
+#: field:company.contribution,name:0
+#: field:company.contribution.line,name:0
+#: field:hr.contibution.register,name:0
+#: field:hr.contibution.register.line,name:0
+#: field:hr.payroll.advice,name:0
+#: field:hr.payroll.register,name:0
+#: field:hr.payroll.structure,name:0
+#: field:hr.payslip,name:0
+#: field:hr.payslip.line,name:0
+#: field:hr.payslip.line.line,name:0
+#: report:payslip.pdf:0
+#: report:salary.structure:0
+#: report:year.salary:0
+msgid "Name"
+msgstr "Jméno"
+
+#. module: hr_payroll
+#: report:payslip.pdf:0
+msgid "Leaved Deduction"
+msgstr "Odpočty uvolnění"
+
+#. module: hr_payroll
+#: view:hr.passport:0
+msgid "Country"
+msgstr "Země"
+
+#. module: hr_payroll
+#: view:hr.passport:0
+#: view:hr.payroll.employees.detail:0
+#: field:hr.payroll.employees.detail,employee_ids:0
+#: view:hr.payroll.year.salary:0
+#: field:hr.payroll.year.salary,employee_ids:0
+#: view:hr.payslip:0
+msgid "Employees"
+msgstr "Zaměstnanci"
+
+#. module: hr_payroll
+#: report:payroll.advice:0
+msgid "Bank Account"
+msgstr "Bankovní účet"
+
+#. module: hr_payroll
+#: help:company.contribution,register_id:0
+msgid "Contribution register based on company"
+msgstr "Registr příspěvků založený na spoleřnosti"
+
+#. module: hr_payroll
+#: help:hr.allounce.deduction.categoty,sequence:0
+msgid "Use to arrange calculation sequence"
+msgstr "Použijte pro uspořádání pořadí výpočtů"
+
+#. module: hr_payroll
+#: field:hr.payslip,total_pay:0
+msgid "Total Payment"
+msgstr "Celková platba"
+
+#. module: hr_payroll
+#: report:payslip.pdf:0
+msgid "Leave Deductions Line:"
+msgstr "Řádek odpočtu uvolnění:"
+
+#. module: hr_payroll
+#: selection:hr.payroll.register,state:0
+#: selection:hr.payslip,state:0
+msgid "Wating for Account Verification"
+msgstr "Čekající na ověření účtu"
+
+#. module: hr_payroll
+#: field:hr.contibution.register.line,comp_deduction:0
+msgid "Company Deduction"
+msgstr "Odpočty společnosti"
+
+#. module: hr_payroll
+#: view:hr.holidays.status:0
+msgid "Payroll Configurtion"
+msgstr "Nastavení mezd"
+
+#. module: hr_payroll
+#: code:addons/hr_payroll/hr_payroll.py:469
+#, python-format
+msgid "Please define bank account for the %s employee"
+msgstr "Prosíme zkontrolujte bankovní účet zaměstnance %s"
+
+#. module: hr_payroll
+#: field:hr.passport,date_issue:0
+msgid "Passport Issue Date"
+msgstr "Datum vydání pasu"
+
+#. module: hr_payroll
+#: view:hr.allounce.deduction.categoty:0
+#: selection:hr.allounce.deduction.categoty,type:0
+#: field:hr.payroll.register,allounce:0
+#: field:hr.payslip,allounce:0
+#: selection:hr.payslip.line,type:0
+msgid "Allowance"
+msgstr "Přídavky"
+
+#. module: hr_payroll
+#: field:hr.payslip,holiday_days:0
+msgid "No of Leaves"
+msgstr "Poč. uvolnění"
+
+#. module: hr_payroll
+#: field:hr.employee,otherid:0
+msgid "Other Id"
+msgstr "Jiné Id"
+
+#. module: hr_payroll
+#: report:payslip.pdf:0
+msgid "Bank Details"
+msgstr "Bankovní podrobnosti"
+
+#. module: hr_payroll
+#: report:payslip.pdf:0
+msgid "Slip ID"
+msgstr "ID výplatní pásky"
+
+#. module: hr_payroll
+#: field:company.contribution.line,sequence:0
+#: field:hr.allounce.deduction.categoty,sequence:0
+#: field:hr.payslip.line,sequence:0
+#: field:hr.payslip.line.line,sequence:0
+msgid "Sequence"
+msgstr "Posloupnost"
+
+#. module: hr_payroll
+#: model:ir.actions.act_window,name:hr_payroll.action_view_hr_payslip_form
+#: model:ir.ui.menu,name:hr_payroll.menu_department_tree
+msgid "Employee Payslip"
+msgstr "Výplatní list zaměstnance"
+
+#. module: hr_payroll
+#: view:hr.payroll.advice:0
+msgid "Letter Content"
+msgstr "Obsah dopisu"
+
+#. module: hr_payroll
+#: view:hr.payroll.employees.detail:0
+#: view:hr.payroll.year.salary:0
+msgid "Year Salary"
+msgstr "Roční plat"
+
+#. module: hr_payroll
+#: view:hr.payroll.register:0
+msgid "Allowance / Deduction"
+msgstr "Přídavky / odpočty"
+
+#. module: hr_payroll
+#: model:ir.actions.report.xml,name:hr_payroll.payroll_advice
+msgid "Bank Payment Advice"
+msgstr "Avízo bankovní platby"
+
+#. module: hr_payroll
+#: view:hr.payslip:0
+msgid "Search Payslips"
+msgstr "Hledat výplatní pásky"
+
+#. module: hr_payroll
+#: report:employees.salary:0
+#: field:hr.contibution.register.line,total:0
+#: report:year.salary:0
+msgid "Total"
+msgstr "Celkem"
+
+#. module: hr_payroll
+#: view:company.contribution:0
+#: view:hr.allounce.deduction.categoty:0
+#: field:hr.allounce.deduction.categoty,contribute_ids:0
+msgid "Contributions"
+msgstr "Příspěvky"
diff --git a/addons/hr_payroll/report/report_payslip.py b/addons/hr_payroll/report/report_payslip.py
index 0fc37b44ac7..e2ef7dab974 100644
--- a/addons/hr_payroll/report/report_payslip.py
+++ b/addons/hr_payroll/report/report_payslip.py
@@ -44,6 +44,6 @@ class payslip_report(report_sxw.rml_parse):
res = payslip_line.browse(self.cr, self.uid, ids)
return res
-report_sxw.report_sxw('report.test.pdf', 'hr.payslip', 'hr_payroll/report/report_payslip.rml', parser=payslip_report)
+report_sxw.report_sxw('report.payslip', 'hr.payslip', 'hr_payroll/report/report_payslip.rml', parser=payslip_report)
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
diff --git a/addons/hr_payroll/security/ir.model.access.csv b/addons/hr_payroll/security/ir.model.access.csv
index 4d2afff54c3..24ca631c4d8 100644
--- a/addons/hr_payroll/security/ir.model.access.csv
+++ b/addons/hr_payroll/security/ir.model.access.csv
@@ -1,16 +1,11 @@
-"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
-"access_hr_payroll_structure","hr.payroll.structure","model_hr_payroll_structure","base.group_hr_user",1,1,1,1
-"access_hr_contribution_register","hr.contribution.register","model_hr_contribution_register","base.group_hr_user",1,1,1,1
-"access_hr_salary_rule_category","hr.salary.rule.category","model_hr_salary_rule_category","base.group_hr_user",1,1,1,1
-"access_hr_payslip","hr.payslip","model_hr_payslip","base.group_hr_user",1,1,1,1
-"access_hr_payslip_line","hr.payslip.line","model_hr_payslip_line","base.group_hr_user",1,1,1,1
-"access_hr_payslip_input_user","hr.payslip.input.user","model_hr_payslip_input","base.group_hr_user",1,1,1,1
-"access_hr_payslip_manager","hr.payslip.manager","model_hr_payslip","base.group_hr_manager",1,1,1,1
-"access_hr_payslip_line_manager","hr.payslip.line.manager","model_hr_payslip_line","base.group_hr_manager",1,1,1,1
-"access_hr_payroll_structure_manager","hr.payroll.structure.manager","model_hr_payroll_structure","base.group_hr_manager",1,1,1,1
-"access_hr_payslip_worked_days ","hr.payslip.worked_days","model_hr_payslip_worked_days","base.group_hr_manager",1,1,1,1
-"access_hr_salary_rule","hr.salary.rule","model_hr_salary_rule","base.group_hr_manager",1,1,1,1
-"access_hr_payslip_run","hr.payslip.run","model_hr_payslip_run","base.group_hr_manager",1,1,1,1
-"access_hr_payslip_input","hr.payslip.input","model_hr_payslip_input","base.group_hr_manager",1,1,1,1
-"access_hr_rule_input","hr.rule.input","model_hr_rule_input","base.group_hr_manager",1,1,1,1
-"access_hr_salary_rule_user","hr.salary.rule.user","model_hr_salary_rule","base.group_hr_user",1,1,1,1
\ No newline at end of file
+id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
+access_hr_payroll_structure,hr.payroll.structure,model_hr_payroll_structure,base.group_hr_user,1,1,1,1
+access_hr_contribution_register,hr.contribution.register,model_hr_contribution_register,base.group_hr_user,1,1,1,1
+access_hr_salary_rule_category,hr.salary.rule.category,model_hr_salary_rule_category,base.group_hr_user,1,1,1,1
+access_hr_payslip,hr.payslip,model_hr_payslip,base.group_hr_user,1,1,1,1
+access_hr_payslip_line,hr.payslip.line,model_hr_payslip_line,base.group_hr_user,1,1,1,1
+access_hr_payslip_input_user,hr.payslip.input.user,model_hr_payslip_input,base.group_hr_user,1,1,1,1
+access_hr_payslip_worked_days ,hr.payslip.worked_days,model_hr_payslip_worked_days,base.group_hr_manager,1,1,1,1
+access_hr_payslip_run,hr.payslip.run,model_hr_payslip_run,base.group_hr_manager,1,1,1,1
+access_hr_rule_input,hr.rule.input,model_hr_rule_input,base.group_hr_manager,1,1,1,1
+access_hr_salary_rule_user,hr.salary.rule.user,model_hr_salary_rule,base.group_hr_user,1,1,1,1
diff --git a/addons/hr_payroll_account/hr_payroll_account.py b/addons/hr_payroll_account/hr_payroll_account.py
index 3463713d37d..a022cac05b1 100644
--- a/addons/hr_payroll_account/hr_payroll_account.py
+++ b/addons/hr_payroll_account/hr_payroll_account.py
@@ -40,6 +40,17 @@ class hr_payslip(osv.osv):
'move_id': fields.many2one('account.move', 'Accounting Entry', readonly=True),
}
+ def _get_default_journal(self, cr, uid, context=None):
+ model_data = self.pool.get('ir.model.data')
+ res = model_data.search(cr, uid, [('name', '=', 'expenses_journal')])
+ if res:
+ return model_data.browse(cr, uid, res[0]).res_id
+ return False
+
+ _defaults = {
+ 'journal_id': _get_default_journal,
+ }
+
def copy(self, cr, uid, id, default=None, context=None):
if default is None:
default = {}
@@ -171,7 +182,7 @@ class hr_payslip(osv.osv):
line_ids.append(adjust_debit)
move.update({'line_id': line_ids})
move_id = move_pool.create(cr, uid, move, context=context)
- self.write(cr, uid, [slip.id], {'move_id': move_id}, context=context)
+ self.write(cr, uid, [slip.id], {'move_id': move_id, 'period_id' : period_id}, context=context)
if slip.journal_id.entry_posted:
move_pool.post(cr, uid, [move_id], context=context)
return super(hr_payslip, self).process_sheet(cr, uid, [slip.id], context=context)
diff --git a/addons/hr_recruitment/__openerp__.py b/addons/hr_recruitment/__openerp__.py
index 4797ef14044..0ce5ff66c0f 100644
--- a/addons/hr_recruitment/__openerp__.py
+++ b/addons/hr_recruitment/__openerp__.py
@@ -37,7 +37,7 @@ system to store and search in your CV base.
'author': 'OpenERP SA',
'website': 'http://www.openerp.com',
'images': ['images/hr_recruitment_analysis.jpeg','images/hr_recruitment_applicants.jpeg'],
- 'depends': ['decimal_precision', 'hr', 'survey', 'crm'],
+ 'depends': ['decimal_precision', 'hr', 'survey', 'crm', 'fetchmail'],
'update_xml': [
'wizard/hr_recruitment_phonecall_view.xml',
'wizard/hr_recruitment_employee_hired.xml',
@@ -56,10 +56,13 @@ system to store and search in your CV base.
'demo_xml': [
'hr_recruitment_demo.yml',
],
- 'test':['test/test_hr_recruitment.yml'],
+ 'test':[
+ 'test/recruitment_process.yml',
+ ],
'installable': True,
'active': False,
'certificate' : '001073437025460275621',
+ 'application': True,
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/hr_recruitment/hr_recruitment.py b/addons/hr_recruitment/hr_recruitment.py
index 8acb95e7088..2854ddf95a5 100644
--- a/addons/hr_recruitment/hr_recruitment.py
+++ b/addons/hr_recruitment/hr_recruitment.py
@@ -181,6 +181,7 @@ class hr_applicant(crm.crm_case, osv.osv):
'day_close': fields.function(_compute_day, string='Days to Close', \
multi='day_close', type="float", store=True),
'color': fields.integer('Color Index'),
+ 'user_email': fields.related('user_id', 'user_email', type='char', string='User Email', readonly=True),
}
def _get_stage(self, cr, uid, context=None):
@@ -364,10 +365,11 @@ class hr_applicant(crm.crm_case, osv.osv):
self.write(cr, uid, [res_id], vals, context)
return res_id
- def message_update(self, cr, uid, ids, msg, vals={}, default_act='pending', context=None):
+ def message_update(self, cr, uid, ids, msg, vals=None, default_act='pending', context=None):
if isinstance(ids, (str, int, long)):
ids = [ids]
-
+ if vals is None:
+ vals = {}
msg_from = msg['from']
vals.update({
'description': msg['body_text']
@@ -411,14 +413,6 @@ class hr_applicant(crm.crm_case, osv.osv):
return res
def case_close(self, cr, uid, ids, *args):
- """
- @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 case's Ids
- @param *args: Give Tuple Value
- """
- employee_obj = self.pool.get('hr.employee')
res = super(hr_applicant, self).case_close(cr, uid, ids, *args)
for (id, name) in self.name_get(cr, uid, ids):
message = _("Applicant '%s' is being hired.") % name
@@ -426,40 +420,32 @@ class hr_applicant(crm.crm_case, osv.osv):
return res
def case_close_with_emp(self, cr, uid, ids, *args):
- """
- @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 case's Ids
- @param *args: Give Tuple Value
- """
- employee_obj = self.pool.get('hr.employee')
- partner_obj = self.pool.get('res.partner')
- address_id = False
- applicant = self.browse(cr, uid, ids)[0]
- if applicant.partner_id:
- address_id = partner_obj.address_get(cr, uid, [applicant.partner_id.id], ['contact'])['contact']
- if applicant.job_id:
- self.pool.get('hr.job').write(cr, uid, [applicant.job_id.id], {'no_of_recruitment': applicant.job_id.no_of_recruitment - 1})
- emp_id = employee_obj.create(cr,uid,{'name': applicant.partner_name or applicant.name,
- 'job_id': applicant.job_id.id,
- 'address_home_id': address_id,
- 'department_id': applicant.department_id.id
- })
- else:
- raise osv.except_osv(_('Warning!'),_('You must define Applied Job for Applicant !'))
- self.case_close(cr, uid, ids, *args)
+ hr_employee = self.pool.get('hr.employee')
+ model_data = self.pool.get('ir.model.data')
+ act_window = self.pool.get('ir.actions.act_window')
+ emp_id = False
+ for applicant in self.browse(cr, uid, ids):
+ address_id = False
+ if applicant.partner_id:
+ address_id = applicant.partner_id.address_get(['contact'])['contact']
+ if applicant.job_id:
+ applicant.job_id.write({'no_of_recruitment': applicant.job_id.no_of_recruitment - 1})
+ emp_id = hr_employee.create(cr,uid,{'name': applicant.partner_name or applicant.name,
+ 'job_id': applicant.job_id.id,
+ 'address_home_id': address_id,
+ 'department_id': applicant.department_id.id
+ })
+ self.case_close(cr, uid, [applicant.id], *args)
+ else:
+ raise osv.except_osv(_('Warning!'),_('You must define Applied Job for Applicant !'))
- mod_obj = self.pool.get('ir.model.data')
- act = mod_obj.get_object_reference(cr, uid, 'hr', 'open_view_employee_list')
-
- act_obj = self.pool.get('ir.actions.act_window')
- act_win = act_obj.read(cr, uid, act[1], [])
-
- act_win['domain'] = [('id','=',emp_id)]
- act_win['view_mode'] = 'form,tree'
- act_win['res_id'] = emp_id
- return act_win
+
+ action_model, action_id = model_data.get_object_reference(cr, uid, 'hr', 'open_view_employee_list')
+ dict_act_window = act_window.read(cr, uid, action_id, [])
+ if emp_id:
+ dict_act_window['res_id'] = emp_id
+ dict_act_window['view_mode'] = 'form,tree'
+ return dict_act_window
def case_reset(self, cr, uid, ids, *args):
"""Resets case as draft
@@ -473,19 +459,19 @@ class hr_applicant(crm.crm_case, osv.osv):
res = super(hr_applicant, self).case_reset(cr, uid, ids, *args)
self.write(cr, uid, ids, {'date_open': False, 'date_closed': False})
return res
-
- def set_priority(self, cr, uid, ids, priority):
- """Set lead priority
+
+ def set_priority(self, cr, uid, ids, priority, *args):
+ """Set applicant priority
"""
return self.write(cr, uid, ids, {'priority' : priority})
def set_high_priority(self, cr, uid, ids, *args):
- """Set lead priority to high
+ """Set applicant priority to high
"""
return self.set_priority(cr, uid, ids, '1')
def set_normal_priority(self, cr, uid, ids, *args):
- """Set lead priority to normal
+ """Set applicant priority to normal
"""
return self.set_priority(cr, uid, ids, '3')
diff --git a/addons/hr_recruitment/hr_recruitment_menu.xml b/addons/hr_recruitment/hr_recruitment_menu.xml
index 7fe746f580b..04d73dcd2a8 100644
--- a/addons/hr_recruitment/hr_recruitment_menu.xml
+++ b/addons/hr_recruitment/hr_recruitment_menu.xml
@@ -6,13 +6,20 @@
Applicants
hr.applicant
- tree,form,graph,calendar,kanban
-
+ kanban,tree,form,graph,calendar
+
{'search_default_filter_inprogress':1,'search_default_filter_new':1,"search_default_department_id": department_id}
From this menu you can track applicants in the recruitment process and manage all operations: meetings, interviews, phone calls, etc. If you setup the email gateway, applicants and their attached CV are created automatically when an email is sent to jobs@yourcompany.com. If you install the document management modules, all documents (CV and motivation letters) are indexed automatically, so that you can easily search through their content.
+
+
+ kanban
+
+
+
+
tree
diff --git a/addons/hr_recruitment/hr_recruitment_view.xml b/addons/hr_recruitment/hr_recruitment_view.xml
index 004339aa7cc..4bd68949bd5 100644
--- a/addons/hr_recruitment/hr_recruitment_view.xml
+++ b/addons/hr_recruitment/hr_recruitment_view.xml
@@ -17,7 +17,7 @@
form
[('object_id.model', '=', 'hr.applicant')]
- {'object_id':'hr.applicant'}
+
# ------------------------------------------------------
# Stage
@@ -145,7 +145,7 @@
-
+
@@ -155,32 +155,6 @@
context="{'mail.compose.message.mode':'reply', 'message_id':active_id}"
icon="terp-mail-replied" type="action" />
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
+
Hr Applicants kanban
hr.applicant
kanban
@@ -290,47 +264,70 @@
+
+
+
+
+ Phone:
+
+
+ Mobile:
+
+
-
-
+
oe_kanban_color_red
+
-
-
-
-
+
+
+
-
-
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
- (Not Good)
- (On Average)
- (Good)
- (Very Good)
- (Excellent)
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+ :
+
diff --git a/addons/hr_recruitment/security/ir.model.access.csv b/addons/hr_recruitment/security/ir.model.access.csv
index 96baaf9e278..6449cc60fda 100644
--- a/addons/hr_recruitment/security/ir.model.access.csv
+++ b/addons/hr_recruitment/security/ir.model.access.csv
@@ -1,13 +1,13 @@
-"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
-"access_hr_applicant_user","hr.applicant.user","model_hr_applicant","base.group_hr_user",1,1,1,1
-"access_hr_recruitment_report","hr.recruitment.report","model_hr_recruitment_report","base.group_hr_manager",1,1,1,1
-"access_hr_recruitment_stage_user","hr.recruitment.stage.user","model_hr_recruitment_stage","base.group_hr_user",1,1,1,1
-"access_hr_recruitment_degree","hr.recruitment.degree","model_hr_recruitment_degree","base.group_hr_user",1,1,1,1
-"access_mail_message_user","mail.message.user","mail.model_mail_message","base.group_hr_user",1,1,1,1
-"access_res_partner_hr_user","res.partner.user","base.model_res_partner","base.group_hr_user",1,1,1,1
-"access_res_partner_address_hr_user","res.partner.address.user","base.model_res_partner_address","base.group_hr_user",1,1,1,1
-"access_survey_hr_user","survey.hr.user","survey.model_survey","base.group_hr_user",1,1,1,0
-"access_crm_phonecall_hruser","crm.phonecall hruser","crm.model_crm_phonecall","base.group_hr_user",1,1,1,1
-"access_crm_meeting_hruser","crm.meeting.hruser","crm.model_crm_meeting","base.group_hr_user",1,1,1,1
-"access_hr_recruitment_source_hr_officer","hr.recruitment.source","model_hr_recruitment_source","base.group_hr_user",1,1,1,1
-"access_hr_recruitment_source_all","hr.recruitment.source","model_hr_recruitment_source",,1,0,0,0
+id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
+access_hr_applicant_user,hr.applicant.user,model_hr_applicant,base.group_hr_user,1,1,1,1
+access_hr_recruitment_report,hr.recruitment.report,model_hr_recruitment_report,base.group_hr_manager,1,1,1,1
+access_hr_recruitment_stage_user,hr.recruitment.stage.user,model_hr_recruitment_stage,base.group_hr_user,1,1,1,1
+access_hr_recruitment_degree,hr.recruitment.degree,model_hr_recruitment_degree,base.group_hr_user,1,1,1,1
+access_mail_message_user,mail.message.user,mail.model_mail_message,base.group_hr_user,1,1,1,1
+access_res_partner_hr_user,res.partner.user,base.model_res_partner,base.group_hr_user,1,1,1,1
+access_res_partner_address_hr_user,res.partner.address.user,base.model_res_partner_address,base.group_hr_user,1,1,1,1
+access_survey_hr_user,survey.hr.user,survey.model_survey,base.group_hr_user,1,1,1,0
+access_crm_phonecall_hruser,crm.phonecall hruser,crm.model_crm_phonecall,base.group_hr_user,1,1,1,1
+access_crm_meeting_hruser,crm.meeting.hruser,crm.model_crm_meeting,base.group_hr_user,1,1,1,1
+access_hr_recruitment_source_hr_officer,hr.recruitment.source,model_hr_recruitment_source,base.group_hr_user,1,1,1,1
+access_hr_recruitment_source_all,hr.recruitment.source,model_hr_recruitment_source,,1,0,0,0
diff --git a/addons/hr_recruitment/test/recruitment_process.yml b/addons/hr_recruitment/test/recruitment_process.yml
new file mode 100644
index 00000000000..43575137a6e
--- /dev/null
+++ b/addons/hr_recruitment/test/recruitment_process.yml
@@ -0,0 +1,67 @@
+-
+ In Order to test process of Recruitment,
+-
+ Applicant interested in job position. so He send resume by email.
+-
+ !python {model: mail.thread}: |
+ import addons
+ request_file = open(addons.get_module_resource('hr_recruitment','test', 'resume.eml'),'rb')
+ request_message = request_file.read()
+ self.message_process(cr, uid, 'hr.applicant', request_message)
+-
+ After getting the mail, I check details of new applicant.
+-
+ !python {model: hr.applicant}: |
+ applicant_ids = self.search(cr, uid, [('email_from','=', 'Mr. Richard Anderson
')])
+ assert applicant_ids, "Applicant is not created after getting the mail"
+ applicant = self.browse(cr, uid, applicant_ids[0], context=context)
+ resume_ids = self.pool.get('ir.attachment').search(cr, uid, [('datas_fname','=','resume.doc'),('res_model','=',self._name),('res_id','=',applicant.id)])
+ assert applicant.name == "Application for the post of Jr.application Programmer.", "Subject does not match"
+ assert applicant.state == "draft"
+ assert len(resume_ids), "Resume does not attached."
+-
+ I assign the Job position to the applicant
+-
+ !python {model: hr.applicant}: |
+ self.write(cr, uid, [ref('hr_case_programmer')], {'job_id':ref('hr.job_jr_appli')})
+-
+ I open applicant for the Recruitment
+-
+
+ !python {model: hr.applicant}: |
+ self.case_open(cr, uid, [ref("hr_case_programmer")])
+-
+ I start communication with applicant, first schedule phonecall.
+-
+ !python {model: hr.recruitment.job2phonecall}: |
+ self.make_phonecall(cr, uid, [ref('hr_case_programmer')])
+-
+ I schedule meeting with applicant for interview.
+-
+ !python {model: hr.applicant}: |
+ self.action_makeMeeting(cr, uid, [ref('hr_case_programmer')])
+-
+ Applicant fillup the answer of the interview quetion.
+-
+ !python {model: survey.question.wiz}: |
+ ctx = context.copy()
+ ctx.update({'active_model': 'hr.applicant', 'active_id': ref("hr_case_programmer"), 'active_ids': [ref("hr_case_programmer")], 'survey_id': ref("survey_job_0")})
+ self.fields_view_get(cr, uid, ref("survey.view_survey_question_message"),"form", context=ctx)
+ vals = self.default_get(cr, uid , [], context=ctx)
+ self.create(cr, uid, vals, context=ctx)
+ self.action_new_page(cr, uid, [ref("survey_job_0")], context=ctx)
+-
+ I print Applicant fill up the interview quetion
+-
+ !python {model: hr.applicant}: |
+ self.action_print_survey(cr, uid, [ref('hr_case_programmer')])
+-
+ On a successful interview with the applicant, I hired employee.
+-
+ !python {model: hr.applicant}: |
+ self.case_close_with_emp(cr, uid, [ref('hr_case_programmer')])
+-
+ I check that applicant is "Hired".
+-
+ !assert {model: hr.applicant, id: hr_case_programmer}:
+ - state == 'done'
diff --git a/addons/hr_recruitment/test/resume.eml b/addons/hr_recruitment/test/resume.eml
new file mode 100644
index 00000000000..00cc5620563
--- /dev/null
+++ b/addons/hr_recruitment/test/resume.eml
@@ -0,0 +1,839 @@
+Return-Path:
+X-Original-To: hr@mycompany.com
+Delivered-To: hr@mycompany.com
+Received: by mail1.mycompany.com (Postfix, from userid 10002)
+ id 7047CBFC94; Fri, 18 Nov 2011 10:28:16 +0100 (CET)
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail1.mycompany.com
+X-Spam-Level:
+X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM,
+ HTML_MESSAGE autolearn=ham version=3.3.1
+Received: from nm12-vm2.bullet.mail.ne1.yahoo.com (nm12-vm2.bullet.mail.ne1.yahoo.com [98.138.91.88])
+ by mail1.mycompany.com (Postfix) with SMTP id 0D04ABF53A
+ for ; Fri, 18 Nov 2011 10:27:50 +0100 (CET)
+Received: from [98.138.90.50] by nm12.bullet.mail.ne1.yahoo.com with NNFMP; 18 Nov 2011 09:26:49 -0000
+Received: from [98.138.226.126] by tm3.bullet.mail.ne1.yahoo.com with NNFMP; 18 Nov 2011 09:26:49 -0000
+Received: from [127.0.0.1] by smtp205.mail.ne1.yahoo.com with NNFMP; 18 Nov 2011 09:26:49 -0000
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.in; s=s1024; t=1321608409; bh=GGVn24b6ZH8Ojn91evBkrwuNFmAsLAPy4OeUvOqjgig=; h=X-Yahoo-Newman-Id:X-Yahoo-Newman-Property:X-YMail-OSG:X-Yahoo-SMTP:Received:Message-ID:Date:From:User-Agent:MIME-Version:To:Subject:Content-Type; b=DFCOdjskDmdbkzvuxTqFWJOUHsT0nITWiQe5782VeyTrhymhIzNhwzdRq4wfTrzLu03rJhHadZTX0uweNCf0Jpr4OpEQevZa3aVPw44NNmhFeT2tjs9m3kNWyPnz5Nk1Yv8tiTRFSdssPfZAhwz8UXLCBFowa8DRnY2ZFIsATRE=
+X-Yahoo-Newman-Id: 644435.12111.bm@smtp205.mail.ne1.yahoo.com
+X-Yahoo-Newman-Property: ymail-3
+X-YMail-OSG: 09Al2uQVM1n5JcQepgua6wQsww7jiatAHXaSsMjP5Qvk9Ba
+ c65j0.ETzyjVh0vpjphFK3XqPtX0n17z9cUCfUhUDDXLUmUSFoZ.NjoiJ_mQ
+ vwd4S7.I4ObFZm5jgA0ML0cfTRAy_0msUfO3NKsh9LgBdUXztbVOwrTGQhzD
+ nu2v3TskGG9ZtRTiqM_Iad2qmMqveFdqUz5xBnwYYgBuLWRR7EUmU1qyOgss
+ LL33J2t9EOCUn2Kc9XQbSkPBBR7BYlIatTF.AAxLdsuOW6ovTGO.HM5ap0qo
+ LLM1_BE.EOvXdW38ZC_hHcrM4xYaYSR7c0WaOQsR8EZeXk_Vhio7HHUrdxZl
+ 1oZz7YWK9Q04M023JJoM4v6IrThy3BNepluEFFcavkyOnCw--
+X-Yahoo-SMTP: oNtzSBqswBAqJIGYOgyGesyleENrhUEtEgBkQ053
+Received: from [192.168.1.30] (test@180.211.100.2 with plain)
+ by smtp205.mail.ne1.yahoo.com with SMTP; 18 Nov 2011 01:26:47 -0800 PST
+Message-ID: <4EC624C7.6020000@yahoo.in>
+Date: Fri, 18 Nov 2011 14:56:31 +0530
+From: Mr. Richard Anderson
+User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.17) Gecko/20110424 Thunderbird/3.1.10
+MIME-Version: 1.0
+To: hr@mycompany.com
+Subject: Application for the post of Jr.application Programmer.
+Content-Type: multipart/mixed;
+ boundary="------------010903010402010104090709"
+
+This is a multi-part message in MIME format.
+--------------010903010402010104090709
+Content-Type: multipart/alternative;
+ boundary="------------010004020303010906010104"
+
+
+--------------010004020303010906010104
+Content-Type: text/plain; charset=ISO-8859-1; format=flowed
+Content-Transfer-Encoding: 7bit
+
+Hello Sir,
+
+ I am**Richard Anderson completed MCA from Mac Technological
+university, i send my resume for the your company job position, i
+attached my resume here
+
+Thank you
+Richard Anderson
+
+--------------010004020303010906010104
+Content-Type: text/html; charset=ISO-8859-1
+Content-Transfer-Encoding: 7bit
+
+
+
+
+
+
+
+
+ Hello Sir,
+
+ I am Richard Anderson completed MCA from Mac Technological
+ university, i send my resume for the your company job position, i
+ attached my resume here
+
+ Thank you
+ Richard Anderson
+
+
+
+--------------010004020303010906010104--
+
+--------------010903010402010104090709
+Content-Type: application/msword;
+ name="resume.doc"
+Content-Transfer-Encoding: base64
+Content-Disposition: attachment;
+ filename="resume.doc"
+
+0M8R4KGxGuEAAAAAAAAAAAAAAAAAAAAAOwADAP7/CQAGAAAAAAAAAAAAAAABAAAASwAAAAAA
+AAAAEAAAAgAAAAEAAAD+////AAAAAAAAAAD/////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+///////////////////////////////////9//////////7///9KAAAABQAAAAYAAAAHAAAA
+CAAAAAkAAAAKAAAACwAAAAwAAAANAAAADgAAAA8AAAAQAAAAEQAAABIAAAATAAAAFAAAABUA
+AAD+////FwAAABgAAAAZAAAAGgAAABsAAAAcAAAAHQAAAB4AAAAfAAAAIAAAACEAAAAiAAAA
+IwAAACQAAAAlAAAAJgAAACcAAAAoAAAA/v///yoAAAArAAAALAAAAC0AAAAuAAAALwAAADAA
+AAAxAAAAMgAAADMAAAA0AAAANQAAADYAAAA3AAAAOAAAADkAAAA6AAAAOwAAADwAAAA9AAAA
+PgAAAD8AAABAAAAAQQAAAEIAAABDAAAARAAAAEUAAABGAAAARwAAAEgAAABJAAAA/v////7/
+//9MAAAATQAAAP7/////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+/////////////////////////////////////////////////////////////////////1IA
+bwBvAHQAIABFAG4AdAByAHkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAWAAUA////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAA/v///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////////////8AAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//
+/////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7///8AAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAA////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAA/v///wAAAAAAAAAAAQAAAP7////+////BAAAAAUAAAAGAAAABwAAAP7/
+//8JAAAA/v//////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+//////////////////////////////////////////////////////////////////8BAP7/
+AwoAAP////8GCQIAAAAAAMAAAAAAAABGGAAAAE1pY3Jvc29mdCBXb3JkLURva3VtZW50AAoA
+AABNU1dvcmREb2MAEAAAAFdvcmQuRG9jdW1lbnQuOAD0ObJxAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAEAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/wAAAQACAAAAAAAAAAAAAAAAAAAAAAABAAAA
+4IWf8vlPaBCrkQgAKyez2TAAAADsAAAACgAAAAEAAABYAAAAAgAAAGAAAAAEAAAAeAAAAAcA
+AACUAAAACAAAAKQAAAAJAAAAsAAAAAoAAAC8AAAACwAAAMgAAAAMAAAA1AAAAA0AAADgAAAA
+AgAAAOn9AAAeAAAAEAAAAENhbmRpZGF0ZXMgTmFtZQAeAAAAFAAAAHNhZ2FyIHAgc3VyeWF3
+YW5zaGkAHgAAAAcAAABOb3JtYWwAAB4AAAAEAAAAc2FpAB4AAAAEAAAAMTY5AEAAAAAAyPid
+CgAAAEAAAAAAAAAAAAAAAEAAAAAAnpj/jovLAUAAAAAA1LJ/lhzMAQAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAABIAZwAKAAEAWwAPAAIAAAAAAAAAYAAAEPH/AgBgAAAA
+BgBOAG8AcgBtAGEAbAAAABEAAAADJABhJAAxJAEqJAFBJAAALwBCKgBPSgAAUUoAAENKFABt
+SAkEc0gJBFBKAABuSAQIXkoAAGFKFABfSAEEdEgBBABcAAEQAQACAFwAAAAJAEgAZQBhAGQA
+aQBuAGcAIAAxAAAAJwABAAMkA2EkAw3GBQABOAQAXoQAAF2EoAVghAAAE6RkABSkZAAGJAEA
+DwBPSgIAUUoCAENKEgA1CAEAPgACEAEAAgA+AAAACQBIAGUAYQBkAGkAbgBnACAAMgAAAA0A
+AgATpGQAFKRkAAYkAQAMAE9KAgBRSgIAQ0oSADoAAxABAAIAOgAAAAkASABlAGEAZABpAG4A
+ZwAgADMAAAAFAAMABiQBAA8AT0oCAFFKAgBDShIANQgBAFYABBABAAIAVgAAAAkASABlAGEA
+ZABpAG4AZwAgADQAAAAfAAQAEmRoAQEADcYFAAFoAQBehGgBXYQAAGCEmP4GJAEAEgBPSgIA
+UUoCAENKEgA1CAFcCAEyAAUQAQBiBTIAAAAJAEgAZQBhAGQAaQBuAGcAIAA1AAAACgAFABOk
+ZAAUpGQAAwA1CAEAUAAGEAEAAgBQAAAACQBIAGUAYQBkAGkAbgBnACAANgAAABkABgANxgUA
+ATgEAF6EAABdhKAFYIQAAAYkAQASAE9KAgBRSgIAQ0oSAD4qAVwIAWAABxABAAIAYAAAAAkA
+SABlAGEAZABpAG4AZwAgADcAAAAwAAcAQCYGCiYGC0YBAAomBgtGAQAxJAANxgUAARwBADck
+AF6EHAFdhAAAYITk/gYkAQwAT0oCAFFKAgBDShIASAAIEAEAAgBIAAAACQBIAGUAYQBkAGkA
+bgBnACAAOAAAABcACAAxJAA3JABehBwBXYQAAGCE5P4GJAEADABPSgIAUUoCAENKEgAAAEIA
+QUDy/6EAQgAAABkAQQBiAHMAYQB0AHoALQBTAHQAYQBuAGQAYQByAGQAcwBjAGgAcgBpAGYA
+dABhAHIAdAAAAAAAAAAAAAAAAABCAP4f8v/xAEIAAAAZAEEAYgBzAGEAdAB6AC0AUwB0AGEA
+bgBkAGEAcgBkAHMAYwBoAHIAaQBmAHQAYQByAHQAAAAAAEgA/h/y/wEBSAAAABwAVwBXAC0A
+QQBiAHMAYQB0AHoALQBTAHQAYQBuAGQAYQByAGQAcwBjAGgAcgBpAGYAdABhAHIAdAAAAAAA
+SgD+H/L/EQFKAAAAHQBXAFcALQBBAGIAcwBhAHQAegAtAFMAdABhAG4AZABhAHIAZABzAGMA
+aAByAGkAZgB0AGEAcgB0ADEAAAAAAEwA/h/y/yEBTAAAAB4AVwBXAC0AQQBiAHMAYQB0AHoA
+LQBTAHQAYQBuAGQAYQByAGQAcwBjAGgAcgBpAGYAdABhAHIAdAAxADEAAAAAAE4A/h/y/zEB
+TgAAAB8AVwBXAC0AQQBiAHMAYQB0AHoALQBTAHQAYQBuAGQAYQByAGQAcwBjAGgAcgBpAGYA
+dABhAHIAdAAxADEAMQAAAAAAUAD+H/L/QQFQAAAAIABXAFcALQBBAGIAcwBhAHQAegAtAFMA
+dABhAG4AZABhAHIAZABzAGMAaAByAGkAZgB0AGEAcgB0ADEAMQAxADEAAAAAAFIA/h/y/1EB
+UgAAACEAVwBXAC0AQQBiAHMAYQB0AHoALQBTAHQAYQBuAGQAYQByAGQAcwBjAGgAcgBpAGYA
+dABhAHIAdAAxADEAMQAxADEAAAAAAFQA/h/y/2EBVAAAACIAVwBXAC0AQQBiAHMAYQB0AHoA
+LQBTAHQAYQBuAGQAYQByAGQAcwBjAGgAcgBpAGYAdABhAHIAdAAxADEAMQAxADEAMQAAAAAA
+KgD+H/L/cQEqAAAACQBXAFcAOABOAHUAbQAyAHoAMAAAAAgAT0oBAFFKAQAuAP4f8v+BAS4A
+AAAJAFcAVwA4AE4AdQBtADIAegAxAAAADABPSgcAUUoHAF5KBwAqAP4f8v+RASoAAAAJAFcA
+VwA4AE4AdQBtADIAegAzAAAACABPSgEAUUoBADYA/h/y/6EBNgAAAAkAVwBXADgATgB1AG0A
+MwB6ADAAAAATAE9KAABRSgAANQgBUEoAAF5KAAAAKgD+H/L/sQEqAAAACQBXAFcAOABOAHUA
+bQAzAHoAMQAAAAgAT0oHAFFKBwAqAP4f8v/BASoAAAAJAFcAVwA4AE4AdQBtADMAegAyAAAA
+CABPSggAUUoIACoA/h/y/9EBKgAAAAkAVwBXADgATgB1AG0ANAB6ADAAAAAIAE9KCABRSggA
+LgD+H/L/4QEuAAAACQBXAFcAOABOAHUAbQA0AHoAMQAAAAwAT0oHAFFKBwBeSgcAKgD+H/L/
+8QEqAAAACQBXAFcAOABOAHUAbQA0AHoAMwAAAAgAT0oBAFFKAQA8AP4f8v8BAjwAAAAWAEQA
+ZQBmAGEAdQBsAHQAIABQAGEAcgBhAGcAcgBhAHAAaAAgAEYAbwBuAHQAAAAAACoA/h/y/xEC
+KgAAAAkAVwBXADgATgB1AG0AMQB6ADAAAAAIAE9KAABRSgAAKgD+H/L/IQIqAAAACQBXAFcA
+OABOAHUAbQAzAHoAMwAAAAgAT0oBAFFKAQAqAP4f8v8xAioAAAAJAFcAVwA4AE4AdQBtADUA
+egAwAAAACABPSgEAUUoBACoA/h/y/0ECKgAAAAkAVwBXADgATgB1AG0ANQB6ADEAAAAIAE9K
+BwBRSgcAKgD+H/L/UQIqAAAACQBXAFcAOABOAHUAbQA1AHoAMgAAAAgAT0oIAFFKCAAqAP4f
+8v9hAioAAAAJAFcAVwA4AE4AdQBtADcAegAwAAAACABPSgEAUUoBADwA/h/y/3ECPAAAAAkA
+VwBXADgATgB1AG0AOAB6ADAAAAAZAEIqBnBo/wAAAE9KCABRSggAUEoAAF5KAAAALgD+H/L/
+gQIuAAAACQBXAFcAOABOAHUAbQA4AHoAMQAAAAwAT0oHAFFKBwBeSgcAKgD+H/L/kQIqAAAA
+CQBXAFcAOABOAHUAbQA4AHoAMgAAAAgAT0oIAFFKCAAqAP4f8v+hAioAAAAJAFcAVwA4AE4A
+dQBtADgAegAzAAAACABPSgEAUUoBACoA/h/y/7ECKgAAAAkAVwBXADgATgB1AG0AOQB6ADAA
+AAAIAE9KAQBRSgEALAD+H/L/wQIsAAAACgBXAFcAOABOAHUAbQAxADAAegAwAAAACABPSgEA
+UUoBACwA/h/y/9ECLAAAAAoAVwBXADgATgB1AG0AMQAxAHoAMAAAAAgAT0oBAFFKAQAsAP4f
+8v/hAiwAAAAKAFcAVwA4AE4AdQBtADEAMgB6ADAAAAAIAE9KAQBRSgEALAD+H/L/8QIsAAAA
+CgBXAFcAOABOAHUAbQAxADIAegAxAAAACABPSgcAUUoHACwA/h/y/wEDLAAAAAoAVwBXADgA
+TgB1AG0AMQAyAHoAMgAAAAgAT0oIAFFKCAA2AP4f8v8RAzYAAAAKAFcAVwA4AE4AdQBtADEA
+MwB6ADAAAAARAEIqBnBo/wAAAE9KAQBRSgEAADAA/h/y/yEDMAAAAAoAVwBXADgATgB1AG0A
+MQAzAHoAMQAAAAwAT0oHAFFKBwBeSgcALAD+H/L/MQMsAAAACgBXAFcAOABOAHUAbQAxADMA
+egAyAAAACABPSggAUUoIACwA/h/y/0EDLAAAAAoAVwBXADgATgB1AG0AMQAzAHoAMwAAAAgA
+T0oBAFFKAQA+AP4f8v9RAz4AAAAKAFcAVwA4AE4AdQBtADEANAB6ADAAAAAZAEIqBnBo/wAA
+AE9KCABRSggAUEoAAF5KAAAAMAD+H/L/YQMwAAAACgBXAFcAOABOAHUAbQAxADQAegAxAAAA
+DABPSgcAUUoHAF5KBwAsAP4f8v9xAywAAAAKAFcAVwA4AE4AdQBtADEANAB6ADIAAAAIAE9K
+CABRSggALAD+H/L/gQMsAAAACgBXAFcAOABOAHUAbQAxADQAegAzAAAACABPSgEAUUoBACwA
+/h/y/5EDLAAAAAoAVwBXADgATgB1AG0AMQA2AHoAMAAAAAgAT0oBAFFKAQAwAP4f8v+hAzAA
+AAAKAFcAVwA4AE4AdQBtADEANgB6ADEAAAAMAE9KBwBRSgcAXkoHACwA/h/y/7EDLAAAAAoA
+VwBXADgATgB1AG0AMQA2AHoAMgAAAAgAT0oIAFFKCAAsAP4f8v/BAywAAAAKAFcAVwA4AE4A
+dQBtADEAOAB6ADAAAAAIAE9KAQBRSgEALAD+H/L/0QMsAAAACgBXAFcAOABOAHUAbQAxADkA
+egAwAAAACABPSgEAUUoBACwA/h/y/+EDLAAAAAoAVwBXADgATgB1AG0AMgAwAHoAMAAAAAgA
+T0oAAFFKAAAsAP4f8v/xAywAAAAKAFcAVwA4AE4AdQBtADIAMgB6ADAAAAAIAE9KAQBRSgEA
+LAD+H/L/AQQsAAAACgBXAFcAOABOAHUAbQAyADIAegAxAAAACABPSgcAUUoHACwA/h/y/xEE
+LAAAAAoAVwBXADgATgB1AG0AMgAyAHoAMgAAAAgAT0oIAFFKCAAsAP4f8v8hBCwAAAAKAFcA
+VwA4AE4AdQBtADIAMwB6ADAAAAAIAE9KAQBRSgEALAD+H/L/MQQsAAAACgBXAFcAOABOAHUA
+bQAyADQAegAwAAAACABPSgEAUUoBACwA/h/y/0EELAAAAAoAVwBXADgATgB1AG0AMgA0AHoA
+MQAAAAgAT0oHAFFKBwAsAP4f8v9RBCwAAAAKAFcAVwA4AE4AdQBtADIANAB6ADIAAAAIAE9K
+CABRSggALAD+H/L/YQQsAAAACgBXAFcAOABOAHUAbQAyADYAegAwAAAACABPSgEAUUoBADAA
+/h/y/3EEMAAAAAoAVwBXADgATgB1AG0AMgA2AHoAMQAAAAwAT0oIAFFKCABDShAALAD+H/L/
+gQQsAAAACgBXAFcAOABOAHUAbQAyADYAegAyAAAACABPSggAUUoIACwA/h/y/5EELAAAAAoA
+VwBXADgATgB1AG0AMgA2AHoANAAAAAgAT0oHAFFKBwA0AP4f8v+hBDQAAAAKAFcAVwA4AE4A
+dQBtADIANwB6ADAAAAAQAE9KAQBRSgEAUEoAAF5KAgAsAP4f8v+xBCwAAAAKAFcAVwA4AE4A
+dQBtADIANwB6ADEAAAAIAE9KBwBRSgcALAD+H/L/wQQsAAAACgBXAFcAOABOAHUAbQAyADcA
+egAyAAAACABPSggAUUoIACwA/h/y/9EELAAAAAoAVwBXADgATgB1AG0AMgA3AHoAMwAAAAgA
+T0oBAFFKAQAsAP4f8v/hBCwAAAAKAFcAVwA4AE4AdQBtADIAOAB6ADAAAAAIAE9KAQBRSgEA
+QgD+H/L/8QRCAAAAGQBXAFcALQBEAGUAZgBhAHUAbAB0ACAAUABhAHIAYQBnAHIAYQBwAGgA
+IABGAG8AbgB0AAAAAAA0AFcQ8v8BBTQAAAAPAFMAdAByAG8AbgBnACAARQBtAHAAaABhAHMA
+aQBzAAAABgA1CAFcCAEmAFgQ8v8RBSYAAAAIAEUAbQBwAGgAYQBzAGkAcwAAAAYANggBXQgB
+NgBVEPL/IQU2AAAADQBJAG4AdABlAHIAbgBlAHQAIABMAGkAbgBrAAAADABCKgJwaAAA/wA+
+KgFGAFYQ8v8xBUYAAAAVAFYAaQBzAGkAdABlAGQAIABJAG4AdABlAHIAbgBlAHQAIABMAGkA
+bgBrAAAADABCKgxwaIAAgAA+KgFCAP4fAgJBBUIAAAAKACAAQwBoAGEAcgAgAEMAaABhAHIA
+AAAeAENKGABtSAkEc0gJBDUIAWFKGABfSAEEdEgBBFwIAUYA/h8BAGIFRgAAAAcASABlAGEA
+ZABpAG4AZwAAAA0AVQATpPAAFKR4AAYkAQAYAE9KCQBRSgkAQ0ocAFBKCgBeSgoAYUocADIA
+QhABAGIFMgAAAAkAVABlAHgAdAAgAGIAbwBkAHkAAAAKAFYAE6RkABSkZAAEAENKGAAcAC8Q
+YQVyBRwAAAAEAEwAaQBzAHQAAAACAFcAAAA8AP4fAQCCBTwAAAAHAEMAYQBwAHQAaQBvAG4A
+AAANAFgAE6R4ABSkeAAMJAEADgBDShgANggBYUoYAF0IASIA/h8BAJIFIgAAAAUASQBuAGQA
+ZQB4AAAABQBZAAwkAQAAADgA/h8BAKIFOAAAAAwATgBvAHIAbQBhAGwAIAAoAFcAZQBiACkA
+AAAKAFoAE6RkABSkZAAEAENKGAA2AP4fAQCyBTYAAAALAEIAbwBkAHkAIABUAGUAeAB0ACAA
+MwAAAAoAWwATpGQAFKRkAAQAQ0oYAHwA/h8BAMIFfAAAABEASABUAE0ATAAgAFAAcgBlAGYA
+bwByAG0AYQB0AHQAZQBkAAAANwBcAA3GMgAQlAMoB7wKUA7kEXgVDBmgHDQgyCNcJ/AqhC4Y
+Mqw1QDkAAAAAAAAAAAAAAAAAAAAAABAAT0oHAFFKBwBQSgcAXkoHAEAAQxABANIFQAAAABAA
+VABlAHgAdAAgAGIAbwBkAHkAIABpAG4AZABlAG4AdAAAAA4AXQBehNACXYQAAGCEAAAAADgA
+ShABAGIFOAAAAAgAUwB1AGIAdABpAHQAbABlAAAACABeAAMkAmEkAg4AQ0oYADUIAWFKGABc
+CAE4AP4fAQDyBTgAAAAIAGMAbwBtAHAAbwBzAGUAZgAAAAoAXwATpGQAFKRkAAwAT0oHAFFK
+BwBQSgsASgD+HwEAAgZKAAAADABIAFQATQBMACAAQQBkAGQAcgBlAHMAcwAAAAIAYAAeAE9K
+CwBRSgsAQ0oYADYIAVBKCwBeSgsAYUoYAF0IAS4AIBABABIGLgAAAAYARgBvAG8AdABlAHIA
+AAAQAGEAMSQADcYIAALgEMAhAQIAADoA/h8BACIGOgAAAAsAQgBvAGQAeQAgAFQAZQB4AHQA
+IAAyAAAAAgBiABAAT0oCAFFKAgBDShIAXkoCACwAHxABADIGLAAAAAYASABlAGEAZABlAHIA
+AAANAGMADcYIAALgEMAhAQIAAAAwAP4fYQVCBjAAAAAOAEYAcgBhAG0AZQAgAGMAbwBuAHQA
+ZQBuAHQAcwAAAAIAZAAAADQA/h8BAFIGNAAAAA4AVABhAGIAbABlACAAQwBvAG4AdABlAG4A
+dABzAAAABQBlAAwkAQAAAD4A/h9RBmIGPgAAAA0AVABhAGIAbABlACAASABlAGEAZABpAG4A
+ZwAAAAsAZgADJAFhJAEMJAEABgA1CAFcCAEAAAAADAEAAA0BAAABAAAAAAAAAAAA/////wIE
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAQAADQEAAAAAAAAACAAAAAAAAAAA
+AACABgAABAAAQAAAAAD/////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAIAADCCwAARg8AAOASAAD+FAAACwAAAAwAAAANAAAADgAAAAAI
+AABQDAAAkgwAAP4MAABoDQAA1A0AAEIOAACuDgAAGA8AACIPAAAsDwAANg8AAEAPAAD2EAAA
+ahMAAO4TAACAFAAAABUAAA8AAAAQAAAAEQAAABIAAAATAAAAFAAAABUAAAAWAAAAFwAAABgA
+AAAZAAAAGgAAABsAAAAcAAAAHQAAAB4AAAAfAAAADwAA8GwAAAAAAAbwGAAAAAYEAAACAAAA
+BQAAAAEAAAABAAAABgAAAB8AAfAsAAAAYgAH8CQAAAAGBiP0F3wAAAAANiQDkRECABAAAGoB
+AAABAAAAMkAAAAAAAABAAB7xEAAAAAQAAAgBAAAIAgAACPcAABAADwAC8BwDAAAQAAjwCAAA
+AAUAAAAFBAAADwAD8K4CAAAPAATwKAAAAAEACfAQAAAAAAAAAAAAAAABgP//AYD//wIACvAI
+AAAAAAQAAAUAAAAPAATwqgAAAKIMCvAIAAAAAgQAAAAKAADTAAvwTgAAAIAAAAABAIEAAAAA
+AIIAAAAAAIMAAAAAAIQAAAAAAIgAAAAAAIEB////AIIBAAAAAIMBAAAAAL8BEAAQAP8BAAAI
+AIQDAAAAAIYDfL4BAEMAIvEYAAAAjwMAAAAAkAMAAAAAkQMAAAAAkgMCAAAAAAAQ8AQAAAAA
+AAAAAAAR8AQAAAABAAAAAAAN8AQAAAAAAAEADwAE8G4AAABCAQrwCAAAAAMEAAAACgAAkwAL
+8DYAAABEAQQAAAB/AQEQAAC/AQAAEADAAQAAAADCAf///wDLATBXAADWAQEAAAD/AQgACAA/
+AgAAAgBDACLxGAAAAI8DAAAAAJADAgAAAJEDAAAAAJIDAgAAAA8ABPBuAAAAQgEK8AgAAAAE
+BAAAAAoAAJMAC/A2AAAARAEEAAAAfwEBEAAAvwEAABAAwAEAAAAAwgH///8AywEwVwAA1gEB
+AAAA/wEIAAgAPwIAAAIAQwAi8RgAAACPAwAAAACQAwIAAACRAwAAAACSAwIAAAAPAATw2AAA
+ALIECvAIAAAABQQAAAAKAADzAAvwiAAAAIEAAAAAAIIAAAAAAIMAAAAAAIQAAAAAAARBAQAA
+AAYBAAAAAD8BAAAAAIEB////AIMBAAAAAL8BEAAQAP8BAAAIAIODLgAAAIQD98ABAIYD98AB
+AL8DIAAgAAUABQAIAIkGAACvDgAAiQYAAOM6AADCPgAA4zoAANVCAACvDgAAiQYAAK8OAABD
+ACLxGAAAAI8DAAAAAJADAgAAAJEDAAAAAJIDAgAAAAAAEPAEAAAAAAAAAAAAEfAEAAAAAQAA
+AA8ABPBOAAAAEgAK8AgAAAABBAAAAA4AAHMAC/AqAAAAgQH///8AgwEAAAAAvwEQABAAwAEB
+AAAIywEAAAAA/wEIAAgAAQICAAAIAAAR8AQAAAABAAAAHAAAAGwAAADcAQAAQQIAAIAGAAAE
+BAAAAAAAAAYAAACsJgAABgAAAHQAAAAAAAMEAAAAAAAAmgAAAKwmAACaAAAAdAAAAAAAAgQA
+AI////9iAAAAOCYAABkHAABUBgAAAAAFBAAAbAAAAPf///+dAQAAKAEAAJRAAAAAAP//AQAA
+AA8AXwBQAGkAYwB0AHUAcgBlAEIAdQBsAGwAZQB0AHMAcAUAAH8GAAAAAAAAcQUAAH8GAAAB
+AAEAAAABAAAA/w//D/8P/w//D/8P/w//D/8PAAACAAAAAQABAAAAAAAAAAAAAAAAAAAAAAAA
+EAAAXoTQAmCEMP0VxgUAAdACBgIAAAApAAEAAAD/AAAAAAAAAAAAAAIAAAAAAAAAAAAQAABe
+hEACYITA/RXGBQABAAAGAAABAAAA/wAAAAAAAAAAAAACAAAAAAAAAAAAEAAAXoTQAmCEMP0V
+xgUAAQAABgAAAQAAAP8AAAAAAAAAAAAAAgAAAAAAAAAAABAAAF6EYANghKD8FcYFAAEAAAYA
+AAEAAAD/AAAAAAAAAAAAAAIAAAAAAAAAAAAQAABehPADYIQQ/BXGBQABAAAGAAABAAAA/wAA
+AAAAAAAAAAACAAAAAAAAAAAAEAAAXoSABGCEgPsVxgUAAQAABgAAAQAAAAAAAQAAAAAAAAAA
+AAAAAAAAAAAAABAAAF6EQAtghJj+FcYFAAFACwYCAAYALgABAAAA/wAAAAAAAAAAAAACAAAA
+AAAAAAAAEAAAXoSgBWCEYPoVxgUAAQAABgAAAQAAAP8AAAAAAAAAAAAAAgAAAAAAAAAAABAA
+AF6EMAZghND5FcYFAAEAAAYAAAEAAAABAAAAAAAAAAAAAAAAAAAA////////AQAAAAAA/0AA
+AAAAgAYAAAAAAAACEAAAAAAAAACABgAAUAAACAAAAAAMAAAARxaQAQAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAFQAaQBtAGUAcwAgAE4AZQB3ACAAUgBvAG0AYQBuAAAA
+NRaQAQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFMAeQBtAGIAbwBsAAAA
+MyaQAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEEAcgBpAGEAbAAAAEcW
+kAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABUAGkAbQBlAHMAIABOAGUA
+dwAgAFIAbwBtAGEAbgAAADUmkAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AABUAGEAaABvAG0AYQAAAD8WkAECAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AABXAGkAbgBnAGQAaQBuAGcAcwAgADIAAAA3JpABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAVgBlAHIAZABhAG4AYQAAAD80kAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAABDAG8AdQByAGkAZQByACAATgBlAHcAAAA7BpABAgAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVwBpAG4AZwBkAGkAbgBnAHMAAABTJpABgBAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATABpAGIAZQByAGEAdABpAG8AbgAgAFMA
+YQBuAHMAAABBAHIAaQBhAGwAAAA/BpABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAARABlAGoAYQBWAHUAIABTAGEAbgBzAAAASSaQAYAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAEEAcgBpAGEAbAAgAFUAbgBpAGMAbwBkAGUAIABNAFMAAABCAAQA
+AQiNGAAA0AIAAGgBAAAAAHPC62bU3fWmAAAAAAEAAAAAAMkAAAASBgAAAgA/AAAABACDkD8A
+AADJAAAAEgYAAAIAPwAAAD8AAAAAAAAAJwMA8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAIAAAAAAAAAAAAAAAAAAPAQAN/f//0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+gAAAAAAAAAAAAAAA//8SAAAAAAAAAA8AQwBhAG4AZABpAGQAYQB0AGUAcwAgAE4AYQBtAGUA
+AAAAAAAAEwBzAGEAZwBhAHIAIABwACAAcwB1AHIAeQBhAHcAYQBuAHMAaABpAAMAcwBhAGkA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAJ4EAABEAGQA7gAjAQAAAAAAAAAAAAAAAAAAAACHAKUA6APoAwAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAADwAE8GYAAACyBArwCAAAAAEEAAAACgAAswAL8EIAAACBAAAA
+AACCAAAAAACDAAAAAACEAAAAAAAEQQEAAAAGAQAAAAA/AQAAAACBAf///wCDAQAAAAC/ARAA
+EAD/AQAACAAAABDwBAAAAAAAAIBiAAfw5AMAAAYGnRZ3tgAAAAB7OGUgEgIAEAAAwAMAAAEA
+AAAAAAAAAAAAAABuHvC4AwAAnRZ3tgAAAAB7OGUgEgIAEP+JUE5HDQoaCgAAAA1JSERSAAAA
+CQAAAAsIAwAAAJqHVykAAAMAUExURQAAAPf39///////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+/////////////////////////////////////////////88f9h0AAAADdFJOU///ANfKDUEA
+AAABYktHRACIBR1IAAAADGNtUFBKQ21wMDcxMgAAAANIAHO8AAAALklEQVQYV22MQQoAAAjC
+rP8/Ol10K8IJiuo7tbChbMtiRIMkMeT7m9B4e5RP2B4eJACOUomEagAAAABJRU5ErkJgggAA
+ngQAAEQAZADuACMBAAAAAAAAAAAAAAAAAAAAAIcApQDoA+gDAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAPAATwZgAAALIECvAIAAAAAQQAAAAKAACzAAvwQgAAAIEAAAAAAIIA
+AAAAAIMAAAAAAIQAAAAAAARBAQAAAAYBAAAAAD8BAAAAAIEB////AIMBAAAAAL8BEAAQAP8B
+AAAIAAAAEPAEAAAAAAAAgGIAB/DkAwAABgadFne2AAAAAHs4ZSASAgAQAADAAwAAAQAAAAAA
+AAAAAAAAAG4e8LgDAACdFne2AAAAAHs4ZSASAgAQ/4lQTkcNChoKAAAADUlIRFIAAAAJAAAA
+CwgDAAAAmodXKQAAAwBQTFRFAAAA9/f3////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////zx/2HQAAAAN0Uk5T//8A18oNQQAAAAFi
+S0dEAIgFHUgAAAAMY21QUEpDbXAwNzEyAAAAA0gAc7wAAAAuSURBVBhXbYxBCgAACMKs/z86
+XXQrwgmK6ju1sKFsy2JEgyQx5Pub0Hh7lE/YHh4kAI5SiYRqAAAAAElFTkSuQmCCAACeBAAA
+RABkAO4AIwEAAAAAAAAAAAAAAAAAAAAAhwClAOgD6AMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAA8ABPBmAAAAsgQK8AgAAAABBAAAAAoAALMAC/BCAAAAgQAAAAAAggAAAAAA
+gwAAAAAAhAAAAAAABEEBAAAABgEAAAAAPwEAAAAAgQH///8AgwEAAAAAvwEQABAA/wEAAAgA
+AAAQ8AQAAAAAAACAYgAH8OQDAAAGBp0Wd7YAAAAAezhlIBICABAAAMADAAABAAAAAAAAAAAA
+AAAAbh7wuAMAAJ0Wd7YAAAAAezhlIBICABD/iVBORw0KGgoAAAANSUhEUgAAAAkAAAALCAMA
+AACah1cpAAADAFBMVEUAAAD39/f/////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+///////////////////////////////////PH/YdAAAAA3RSTlP//wDXyg1BAAAAAWJLR0QA
+iAUdSAAAAAxjbVBQSkNtcDA3MTIAAAADSABzvAAAAC5JREFUGFdtjEEKAAAIwqz/PzpddCvC
+CYrqO7WwoWzLYkSDJDHk+5vQeHuUT9geHiQAjlKJhGoAAAAASUVORK5CYIIAAJ4EAABEAGQA
+7gAjAQAAAAAAAAAAAAAAAAAAAACHAKUA6APoAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAADwAE8GYAAACyBArwCAAAAAEEAAAACgAAswAL8EIAAACBAAAAAACCAAAAAACDAAAA
+AACEAAAAAAAEQQEAAAAGAQAAAAA/AQAAAACBAf///wCDAQAAAAC/ARAAEAD/AQAACAAAABDw
+BAAAAAAAAIBiAAfw5AMAAAYGnRZ3tgAAAAB7OGUgEgIAEAAAwAMAAAEAAAAAAAAAAAAAAABu
+HvC4AwAAnRZ3tgAAAAB7OGUgEgIAEP+JUE5HDQoaCgAAAA1JSERSAAAACQAAAAsIAwAAAJqH
+VykAAAMAUExURQAAAPf39///////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+/////////////////////////////88f9h0AAAADdFJOU///ANfKDUEAAAABYktHRACIBR1I
+AAAADGNtUFBKQ21wMDcxMgAAAANIAHO8AAAALklEQVQYV22MQQoAAAjCrP8/Ol10K8IJiuo7
+tbChbMtiRIMkMeT7m9B4e5RP2B4eJACOUomEagAAAABJRU5ErkJgggAAngQAAEQAZADuACMB
+AAAAAAAAAAAAAAAAAAAAAIcApQDoA+gDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAPAATwZgAAALIECvAIAAAAAQQAAAAKAACzAAvwQgAAAIEAAAAAAIIAAAAAAIMAAAAAAIQA
+AAAAAARBAQAAAAYBAAAAAD8BAAAAAIEB////AIMBAAAAAL8BEAAQAP8BAAAIAAAAEPAEAAAA
+AAAAgGIAB/DkAwAABgadFne2AAAAAHs4ZSASAgAQAADAAwAAAQAAAAAAAAAAAAAAAG4e8LgD
+AACdFne2AAAAAHs4ZSASAgAQ/4lQTkcNChoKAAAADUlIRFIAAAAJAAAACwgDAAAAmodXKQAA
+AwBQTFRFAAAA9/f3////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////zx/2HQAAAAN0Uk5T//8A18oNQQAAAAFiS0dEAIgFHUgAAAAM
+Y21QUEpDbXAwNzEyAAAAA0gAc7wAAAAuSURBVBhXbYxBCgAACMKs/z86XXQrwgmK6ju1sKFs
+y2JEgyQx5Pub0Hh7lE/YHh4kAI5SiYRqAAAAAElFTkSuQmCCAACeBAAARABkAO4AIwEAAAAA
+AAAAAAAAAAAAAAAAhwClAOgD6AMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8A
+BPBmAAAAsgQK8AgAAAABBAAAAAoAALMAC/BCAAAAgQAAAAAAggAAAAAAgwAAAAAAhAAAAAAA
+BEEBAAAABgEAAAAAPwEAAAAAgQH///8AgwEAAAAAvwEQABAA/wEAAAgAAAAQ8AQAAAAAAACA
+YgAH8OQDAAAGBp0Wd7YAAAAAezhlIBICABAAAMADAAABAAAAAAAAAAAAAAAAbh7wuAMAAJ0W
+d7YAAAAAezhlIBICABD/iVBORw0KGgoAAAANSUhEUgAAAAkAAAALCAMAAACah1cpAAADAFBM
+VEUAAAD39/f/////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+///////////////////PH/YdAAAAA3RSTlP//wDXyg1BAAAAAWJLR0QAiAUdSAAAAAxjbVBQ
+SkNtcDA3MTIAAAADSABzvAAAAC5JREFUGFdtjEEKAAAIwqz/PzpddCvCCYrqO7WwoWzLYkSD
+JDHk+5vQeHuUT9geHiQAjlKJhGoAAAAASUVORK5CYIIAAJ4EAABEAGQA7gAjAQAAAAAAAAAA
+AAAAAAAAAACHAKUA6APoAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwAE8GYA
+AACyBArwCAAAAAEEAAAACgAAswAL8EIAAACBAAAAAACCAAAAAACDAAAAAACEAAAAAAAEQQEA
+AAAGAQAAAAA/AQAAAACBAf///wCDAQAAAAC/ARAAEAD/AQAACAAAABDwBAAAAAAAAIBiAAfw
+5AMAAAYGnRZ3tgAAAAB7OGUgEgIAEAAAwAMAAAEAAAAAAAAAAAAAAABuHvC4AwAAnRZ3tgAA
+AAB7OGUgEgIAEP+JUE5HDQoaCgAAAA1JSERSAAAACQAAAAsIAwAAAJqHVykAAAMAUExURQAA
+APf39///////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+/////////////88f9h0AAAADdFJOU///ANfKDUEAAAABYktHRACIBR1IAAAADGNtUFBKQ21w
+MDcxMgAAAANIAHO8AAAALklEQVQYV22MQQoAAAjCrP8/Ol10K8IJiuo7tbChbMtiRIMkMeT7
+m9B4e5RP2B4eJACOUomEagAAAABJRU5ErkJgggAAngQAAEQAZADuACMBAAAAAAAAAAAAAAAA
+AAAAAIcApQDoA+gDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPAATwZgAAALIE
+CvAIAAAAAQQAAAAKAACzAAvwQgAAAIEAAAAAAIIAAAAAAIMAAAAAAIQAAAAAAARBAQAAAAYB
+AAAAAD8BAAAAAIEB////AIMBAAAAAL8BEAAQAP8BAAAIAAAAEPAEAAAAAAAAgGIAB/DkAwAA
+BgadFne2AAAAAHs4ZSASAgAQAADAAwAAAQAAAAAAAAAAAAAAAG4e8LgDAACdFne2AAAAAHs4
+ZSASAgAQ/4lQTkcNChoKAAAADUlIRFIAAAAJAAAACwgDAAAAmodXKQAAAwBQTFRFAAAA9/f3
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////
+////////zx/2HQAAAAN0Uk5T//8A18oNQQAAAAFiS0dEAIgFHUgAAAAMY21QUEpDbXAwNzEy
+AAAAA0gAc7wAAAAuSURBVBhXbYxBCgAACMKs/z86XXQrwgmK6ju1sKFsy2JEgyQx5Pub0Hh7
+lE/YHh4kAI5SiYRqAAAAAElFTkSuQmCCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAA7KUBAU0gCQQAAAgSvwAAAAAAADAAAAAAAAgAAAAVAAAOAENhb2xhbjgw
+AAAAAAAAAAAAAAAAAAAAAAAACQQWAJxBAAAAAAAAAAAAAHIFAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAA0BAAAAAAAA//8PAAsAAAAEAAAA//8PAA8AAAARAAAA//8PAAAAAAAAAAAAAAAAAAAA
+AACIAAAAAACIFQAAAAAAAIgVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANgV
+AAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADsFQAANAAAACAWAAAkAAAA
+RBYAAIwAAAAAAAAAAAAAACYdAAAGAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAOUaAAAmAAAACxsAAAwAAAAXGwAACAAAAAMdAAACAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALCAAAGICAACOIgAAdAAAABEd
+AAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+aRoAAHwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQFgAAmQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAACIFQAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHxsAAB4A
+AADjHAAAGAAAAMAVAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+xwAAAgAAAAAAAAAAAAAAAUdAAAMAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAIA2QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAgACAAIAAgACAAIAAgACAAIAAgACAAQwBVAFIAUgBJAEMAVQBMAFUATQAgAFYA
+SQBUAEEARQANAAgADQBSAGkAYwBoAGEAcgBkACAAQQBuAGQAZQByAHMAbwBuACAACwAxADIA
+MwA0ACwAIABXAGUAcwB0ACAANgA3ACAAUwB0AHIAZQBlAHQALAAgAAsAQwBhAHIAbABpAHMA
+bABlACwAIABNAEEAIAAwADEANwA0ADEALAAgAAsAKAAxADIAMwApAC0ANAA1ADYAIAA3ADgA
+OQAwAC4ADQAIAAsAAQAgAEMAYQByAGUAZQByACAATwBiAGoAZQBjAHQAaQB2AGUADQANAEQA
+ZQBzAGkAcgBlACAAYQAgAGMAaABhAGwAbABlAG4AZwBpAG4AZwAgAHAAbwBzAGkAdABpAG8A
+bgAgAGkAbgAgAHQAaABlACAAYQByAGUAYQAgAG8AZgAgAFMAbwBmAHQAdwBhAHIAZQAgAGQA
+ZQB2AGUAbABvAHAAbQBlAG4AdAAsACAAdwBoAGkAYwBoACAAdwBpAGwAbAAgAHUAdABpAGwA
+aQB6AGUAIABtAHkAIABpAG4AdABlAHIAZABpAHMAYwBpAHAAbABpAG4AYQByAHkALAAgAHQA
+ZQBjAGgAbgBpAGMAYQBsACwAIABhAG4AZAAgAHMAbwBmAHQAdwBhAHIAZQAgAGQAZQB2AGUA
+bABvAHAAbQBlAG4AdAAgAGwAaQBmAGUAIABjAHkAYwBsAGUAIABzAGsAaQBsAGwAcwAgAGkA
+bgAgAGEAIABwAHIAbwBkAHUAYwB0AGkAdgBlACwAIABlAG4AdABoAHUAcwBpAGEAcwB0AGkA
+YwAgAGEAbgBkACAAaQBuACAAYQAgAHQAZQBhAG0ALQBvAHIAaQBlAG4AdABlAGQAIABlAG4A
+dgBpAHIAbwBuAG0AZQBuAHQALgANAA0AAQAgAEUAZAB1AGMAYQB0AGkAbwBuAGEAbAAgAFMA
+dQBtAG0AYQByAHkADQBQ8CAAQwBvAG0AcABsAGUAdABlAGQAIABNAGEAcwB0AGUAcgBzACAA
+aQBuACAAQwBvAG0AcAB1AHQAZQByACAAYQBwAHAAbABpAGMAYQB0AGkAbwBuACAAKABNAC4A
+QwAuAEEAKQAgAHcAaQB0AGgAIAA2ADMALgA3ADEAJQAgAA0AAQAgAFQAZQBjAGgAbgBpAGMA
+YQBsACAASwBuAG8AdwBsAGUAZABnAGUAIABTAHUAbQBtAGEAcgB5AA0ACAANAAEAIAAgAEQA
+ZQB0AGEAaQBsAGUAZAAgAEUAZAB1AGMAYQB0AGkAbwBuAGEAbAAgAEEAYwBhAGQAZQBtAGkA
+YwAgAEMAcgBlAGQAZQBuAHQAaQBhAGwAcwANAEUAeABhAG0AaQBuAGEAdABpAG8AbgAHAEIA
+bwBhAHIAZAAvAFUAbgBpAHYAZQByAHMAaQB0AHkABwBQAGEAcwBzAGkAbgBnACAAWQBlAGEA
+cgAHAFAAZQByAGMAZQBuAHQAYQBnAGUABwAHAAgATQAuAEMALgBBACAABwAHACAAIAAgACAA
+IAAgACAAIAAgACAAUwBlAG0AZQBzAHQAZQByACAAVgBJAAcAQwBhAHIAbABpAHMAbABlACAA
+VQBuAGkAdgBlAHIAcwBpAHQAeQAHADIAMAAxADEABwA2ADMALgA3ADEABwAHACAAIAAgACAA
+IAAgACAAIAAgACAAUwBlAG0AZQBzAHQAZQByACAAVgAHAEMAYQByAGwAaQBzAGwAZQAgAFUA
+bgBpAHYAZQByAHMAaQB0AHkABwAyADAAMQAwAAcANgA3AC4AMQA3AAcABwAgACAAIAAgACAA
+IAAgACAAIAAgAFMAZQBtAGUAcwB0AGUAcgAgAEkAVgAHAEMAYQByAGwAaQBzAGwAZQAgAFUA
+bgBpAHYAZQByAHMAaQB0AHkABwAyADAAMQAwAAcANgAyAC4AOAAwAAcABwAgACAAIAAgACAA
+IAAgACAAIAAgAFMAZQBtAGUAcwB0AGUAcgAgAEkASQBJAAcAQwBhAHIAbABpAHMAbABlACAA
+VQBuAGkAdgBlAHIAcwBpAHQAeQAHADIAMAAxADAABwA2ADIALgAyADUABwAHACAAIAAgACAA
+IAAgACAAIAAgACAAUwBlAG0AZQBzAHQAZQByACAASQBJAAcAQwBhAHIAbABpAHMAbABlACAA
+VQBuAGkAdgBlAHIAcwBpAHQAeQAHADIAMAAwADkABwA2ADUALgA3ADUABwAHACAAIAAgACAA
+IAAgACAAIAAgACAAUwBlAG0AZQBzAHQAZQByACAASQAHAEMAYQByAGwAaQBzAGwAZQAgAFUA
+bgBpAHYAZQByAHMAaQB0AHkABwAyADAAMAA5AAcANgAzAC4AMwAzAAcABwAHAAcABwAHAAcA
+BwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcAAQAgAFMAdQBiAGoAZQBjAHQAIAAgAEYA
+YQBtAGkAbABpAGEAcgBpAHQAeQA6AA0AUPAgAEQAYQB0AGEAYgBhAHMAZQAgAE0AYQBuAGEA
+ZwBlAG0AZQBuAHQAIABDAG8AbgBjAGUAcAB0AHMADQBQ8CAATwBiAGoAZQBjAHQAIABPAHIA
+aQBlAG4AdABlAGQAIABQAHIAbwBnAHIAYQBtAG0AaQBuAGcAIABDAG8AbgBjAGUAcAB0AA0A
+UPAgAFMAeQBzAHQAZQBtACAAQQBuAGEAbAB5AHMAaQBzACAAYQBuAGQAIABEAGUAcwBpAGcA
+bgANAFDwIABzAG8AZgB0AHcAYQByAGUAIABFAG4AZwBpAG4AZQBlAHIAaQBuAGcAIAANAFDw
+IABPAHAAZQByAGEAdABpAG4AZwAgAFMAeQBzAHQAZQBtACAAQwBvAG4AYwBlAHAAdAANAFDw
+IABVAG4AaQB4ACAAUwBoAGUAbABsACAAUAByAG8AZwByAGEAbQBtAGkAbgBnAA0AAQAgAEEA
+cgBlAGEAIABvAGYAIABJAG4AdABlAHIAZQBzAHQAOgANAFDwIABTAG8AZgB0AHcAYQByAGUA
+IABkAGUAdgBlAGwAbwBwAG0AZQBuAHQAIAAgAHUAcwBpAG4AZwAgAEoAYQB2AGEALwAuAE4A
+ZQB0ACAAdABlAGMAaABuAG8AbABvAGcAaQBlAHMADQBQ8CAATABlAGEAcgBuAGkAbgBnACAA
+bgBlAHcAIAB0AGUAYwBoAG4AbwBsAG8AZwBpAGUAcwAuAA0AAQAgAFAAZQByAHMAbwBuAGEA
+bAAgAEQAZQB0AGEAaQBsAHMADQBOAGEAbQBlADoAIAAgAAkACQBSAGkAYwBoAGEAcgBkACAA
+QQBuAGQAZQByAHMAbwBuAA0AQwB1AHIAcgBlAG4AdAAgAEEAZABkAHIAZQBzAHMACQAxADIA
+MwA0ACwAIABXAGUAcwB0ACAANgA3ACAAUwB0AHIAZQBlAHQALAAgAAsAQwBhAHIAbABpAHMA
+bABlACwAIABNAEEAIAAwADEANwA0ADEALAAgAAsAKAAxADIAMwApAC0ANAA1ADYAIAA3ADgA
+OQAwAC4ADQBEAGEAdABlACAAbwBmACAAQgBpAHIAdABoADoAIAAJADEAcwB0ACAAagB1AG4A
+ZQANAEcAZQBuAGQAZQByADoAIAAJAAkATQBhAGwAZQAJAA0ADQABAA0ATABhAG4AZwB1AGEA
+ZwBlAHMAIABLAG4AbwB3AG4AIAAHAEMALAAgAEMAKwArACwASgBBAFYAQQAsACAALgBOAEUA
+VAAgADMALgA1ACwAIABBAFMAUAAuAE4ARQBUACAAMwAuADUALABWAEIAIAAyADAAMAA4ACwA
+cAB5AHQAaABvAG4ABwAHAEQAQgBNAFMALwBSAEQAQgBNAFMAIAAHAE8AUgBBAEMATABFACwA
+TQBTACAAQQBjAGMAZQBzAHMALAAgAFMAUQBMACwAIABQAG8AcwB0AGcAcgBlAHMAcwAgAFMA
+UQBMAAcABwBXAGUAYgAgAFQAZQBjAGgAbgBvAGwAbwBnAHkABwBIAFQATQBMACwASgBBAFYA
+QQAgAFMAYwByAGkAcAB0AAcABwBPAHAAZQByAGEAdABpAG4AZwAgAFMAeQBzAHQAZQBtAAcA
+VwBpAG4AZABvAHcAcwAgACgAOQA4AC8AMgAwADAANwAvAFgAUAAgAC8AVgBJAFMAVABBACwA
+NwApACwAdQBiAHUAbgB0AHUABwAHAE8AdABoAGUAcgAHAE4AZQB0AHcAbwByAGsAIABQAHIA
+bwBnAHIAYQBtAG0AaQBuAGcAIABpAG4AIABKAGEAdgBhACwAIABVAG4AaQB4ACAAUwBoAGUA
+bABsACAAUAByAG8AZwByAGEAbQBtAGkAbgBnAAcABwAgAA0ADQANAA0AAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAWCAAAOAgAADoIAAA8CAAAXAgAANgI
+AADaCAAA3AgAAN4IAADgCAAAAgkAAAQJAADMCgAAzgoAANAKAADSCgAA+goAAPwKAAD+CgAA
+EgsAAGALAABiCwAAbAsAAHwLAAB+CwAAgAsAALgLAAC6CwAAvAsAAL4LAADACwAAwgsAAPn5
+9Ovh2PTMv7bMANisn7aVjoeHf3h4eGu2YfQAVLZhAAAAABlVCAEDauANAAAwSlAAXkoEAE9K
+BABRSgQAEj4qATUIAV5KBABPSgQAUUoEAAAZVQgBA2pACQAAMEpQAF5KBABPSgQAUUoEAAxe
+SgQAT0oEAFFKBAAADzUIAV5KBABPSgQAUUoEAAxDShIAT0oCAFFKAgAADENKEgBPSgUAUUoF
+AAATMEpQAD4qAV5KBABPSgQAUUoEABlVCAEDaqAEAAAwSlAAXkoEAE9KBABRSgQAEkNKEgA+
+KgE1CAFPSgIAUUoCAAAQMEpQAF5KBABPSgQAUUoEAAAZVQgBA2oAAAAAMEpQAF5KBABPSgQA
+UUoEABcwSlAAQ0oUAD4qAV5KBABPSgQAUUoEABBDShQAXkoEAE9KBABRSgQAABNDShQANQgB
+XkoEAE9KBABRSgQAEENKFABtSAAEc0gABG5IAAQACQNqAAAAAFUIAQxDShYAT0oCAFFKAgAg
+wgsAABYMAAAuDAAAUAwAAGoMAACADAAAggwAAIQMAACGDAAAkgwAAKgMAADADAAA0AwAAOgM
+AADyDAAA/gwAABQNAAAqDQAAOg0AAFINAABcDQAAaA0AAH4NAACWDQAApg0AAL4NAADIDQAA
+1A0AAOoNAAAEDgAAFA4AACwOAAA2DgAAQg4AAFgOAABwDgAAgA4AAJgOAACiDgAArg4AAMQO
+AADaDgAA6g4AAAIPAAAMDwAAGA8AABwPAAAeDwAAIA8AACIPAAAmDwAAKA8AACoPAAAsDwAA
+MA8AADIPAAA0DwAANg8AADoPAAA8DwAAPg8AAEAPAABCDwAARA8AAEYPAAD27Ozs7ADn39/Y
+2M/Y2NjY2M/Y2NjY2M/Y2MnY2M/Y2MnY2M/Y2MnY2M/Y2Mnf2NjYvdjY2N/Y2Njf2NjYALCn
+AAAAAAAAAAAAABAwSlAAXkoEAE9KBABRSgQAABlVCAEDaoASAAAwSlAAXkoEAE9KBABRSgQA
+FkNKEgA1CAFhShIAXAgBT0oGAFFKBgAAC1wIAU9KBgBRSgYAEENKFABeSgQAT0oEAFFKBAAA
+DF5KBABPSgQAUUoEAAAPNQgBXkoEAE9KBABRSgQACQNqAAAAAFUIARNDShIANQgBXkoEAE9K
+BABRSgQAEj4qATUIAV5KBABPSgQAUUoEAEBGDwAAbg8AAHIPAAB0DwAAdg8AALAPAACyDwAA
+tA8AAPwPAAD+DwAAABAAADYQAAA4EAAAOhAAAGYQAABoEAAAahAAAJwQAACeEAAAoBAAAM4Q
+AADQEAAA0hAAAPYQAAD4EAAA+hAAAGARAABiEQAAZBEAAJoRAACcEQAAnhEAAMARAADMEQAA
+0hEAAPQRAAASEgAAFBIAAIwSAACqEgAArhIAALISAAC+EgAA0hIAANoSAADeEgAA4BIAAPLm
+4dra4dra4dra4dra4dra4drazcS64dra4drarcS6pdqbpZaNpdqF2qXapQAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9IKgFeSgQAT0oEAFFKBAAQQ0oUAF5KBABPSgQAUUoE
+AAAIT0oGAFFKBgAAE0NKFAA1CAFeSgQAT0oEAFFKBAAPNQgBXkoEAE9KBABRSgQAGVUIAQNq
+wBsAADBKUABeSgQAT0oEAFFKBAASQ0oSAD4qATUIAU9KAgBRSgIAABAwSlAAXkoEAE9KBABR
+SgQAABlVCAEDaiAXAAAwSlAAXkoEAE9KBABRSgQADF5KBABPSgQAUUoEAAAIT0oFAFFKBQAA
+F0NKEgA1CAFeSgIAYUoSAE9KAgBRSgIAGkNKEgA+KgE1CAFeSgIAYUoSAE9KAgBRSgIALuAS
+AADiEgAAAhMAAAYTAABqEwAAhBMAAM4TAADuEwAAEBQAADQUAAB+FAAAjBQAAPQUAAD+FAAA
+8eri3erd193q3eLdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALXAgB
+T0oGAFFKBgAIT0oGAFFKBgAAD15KBABcCAFPSgQAUUoEAAxeSgQAT0oEAFFKBAAAHFUIAQNq
+YCAAADBKUABeSgQAPAgBT0oEAFFKBAANAAgAADgIAAA8CAAA2AgAAAIJAAAECQAAzAoAAM4K
+AAD6CgAAfAsAALgLAAC8CwAAFgwAAC4MAABQDAAA9wAAAAAAAAAAAAAAAPIAAAAAAAAAAAAA
+AADkAAAAAAAAAAAAAAAA1QAAAAAAAAAAAAAAAMYAAAAAAAAAAAAAAAC3AAAAAAAAAAAAAAAA
+sgAAAAAAAAAAAAAAAK0AAAAAAAAAAAAAAACoAAAAAAAAAAAAAAAAowAAAAAAAAAAAAAAAJ4A
+AAAAAAAAAAAAAACZAAAAAAAAAAAAAAAAiwAAAAAAAAAAAAAAAH0AAAAAAAAAAAAAAAAAAAAA
+AAAAAAANAAAWJAFJZgEAAAASZGgBAQADJAFhJAFHJAAADQAAFiQBSWYBAAAAEmRoAQEAAyQB
+YSQBRyQAAAQAABJkaAEBAAAEAAASZGgBAQAABAAAEmRoAQEAAAQAABJkaAEBAAAEAAASZGgB
+AQAABAAAEmRoAQEAAA5aAAMkA2EkA16EAABdhNACYIQAABOkAAAUpAAAAA5aAAMkA2EkA16E
+AABdhNACYIQAABOkAAAUpAAAAA5aAAMkA2EkA16EAABdhKAFYIQAABOkAAAUpAAADlYAAyQB
+YSQBDcYIAAJwCEALAAATpAAAFKQAAAAEXgADJANhJAMAB14AXoSAFl2EAABghNACAA5QDAAA
+agwAAIAMAACCDAAAkgwAAPEAAAAAAAAAAAAAAADjAAAAAAAAAAAAAAAAZgAAAAAAAAAAAAAA
+AFsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAKAAAWJAFJZgEAAAASZGgBAQBHJAAAfAAAFiQBFyQBSWYBAAAA
+CNZcAARi/8ILeBlyH8IkgAAAAAQBAQAEAQEABAEBAAAAAACAAAAABAEBAAQBAQAEAQEAAAAA
+AIAAAAAEAQEABAEBAAQBAQAAAAAAgAAAAAQBAQAEAQEABAEBAAQBAQAJ1ggAAQABAAEAARLW
+KAAAAP/l5eUAAAAAAAD/5eXlAAAAAAAA/+Xl5QAAAAAAAP/l5eUAAABw1igAAAD/5eXlAAAA
+AAAA/+Xl5QAAAAAAAP/l5eUAAAAAAAD/5eXlAAAANNYGAAEBAwAANNYGAAECA2wANNYGAAEE
+AwAANNYGAAEIA2wAAzQAZjQAAA0AABYkAUlmAQAAABJkaAEBAAMkAWEkAUckAAANAAAWJAFJ
+ZgEAAAASZGgBAQADJAFhJAFHJAAABJIMAACUDAAAwAwAAOgMAADyDAAA/gwAAMQAAAAAAAAA
+AAAAAAC5AAAAAAAAAAAAAAAArgAAAAAAAAAAAAAAAKAAAAAAAAAAAAAAAACSAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQAAFiQBSWYB
+AAAAEmRoAQEAAyQBYSQBRyQAAA0AABYkAUlmAQAAABJkaAEBAAMkAWEkAUckAAAKAAAWJAFJ
+ZgEAAAASZGgBAQBHJAAACgAAFiQBSWYBAAAAEmRoAQEARyQAADoAABYkARckAUlmAQAAAAjW
+GgABYv/CJIAAAAAEAQEABAEBAAQBAQAEAQEACdYCAAAS1goAAAD/AAAA/wAAcNYKAAAA/wAA
+AP8AADTWBgABAQMAADTWBgABAgNsADTWBgABBAMAADTWBgABCANsAAM0AGY0AAAF/gwAAAAN
+AAAqDQAAUg0AAFwNAABoDQAAggAAAAAAAAAAAAAAAHcAAAAAAAAAAAAAAABsAAAAAAAAAAAA
+AAAAXgAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANAAAWJAFJ
+ZgEAAAASZGgBAQADJAFhJAFHJAAADQAAFiQBSWYBAAAAEmRoAQEAAyQBYSQBRyQAAAoAABYk
+AUlmAQAAABJkaAEBAEckAAAKAAAWJAFJZgEAAAASZGgBAQBHJAAAfAAAFiQBFyQBSWYBAAAA
+CNZcAARi/8IL0hlyH8IkgAAAAAQBAQAEAQEABAEBAAAAAACAAAAABAEBAAQBAQAEAQEAAAAA
+AIAAAAAEAQEABAEBAAQBAQAAAAAAgAAAAAQBAQAEAQEABAEBAAQBAQAJ1ggAAAAAAAAAABLW
+KAAAAP8AAAD/AAAAAAD/AAAA/wAAAAAA/wAAAP8AAAAAAP8AAAD/AABw1igAAAD/AAAA/wAA
+AAAA/wAAAP8AAAAAAP8AAAD/AAAAAAD/AAAA/wAANNYGAAEBAwAANNYGAAECA2wANNYGAAEE
+AwAANNYGAAEIA2wAAzQAZjQAAAVoDQAAag0AAJYNAAC+DQAAyA0AANQNAACCAAAAAAAAAAAA
+AAAAdwAAAAAAAAAAAAAAAGwAAAAAAAAAAAAAAABeAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAA0AABYkAUlmAQAAABJkaAEBAAMkAWEkAUckAAANAAAWJAFJ
+ZgEAAAASZGgBAQADJAFhJAFHJAAACgAAFiQBSWYBAAAAEmRoAQEARyQAAAoAABYkAUlmAQAA
+ABJkaAEBAEckAAB8AAAWJAEXJAFJZgEAAAAI1lwABGL/wgvSGXIfwiSAAAAABAEBAAQBAQAE
+AQEAAAAAAIAAAAAEAQEABAEBAAQBAQAAAAAAgAAAAAQBAQAEAQEABAEBAAAAAACAAAAABAEB
+AAQBAQAEAQEABAEBAAnWCAAAAAAAAAAAEtYoAAAA/wAAAP8AAAAAAP8AAAD/AAAAAAD/AAAA
+/wAAAAAA/wAAAP8AAHDWKAAAAP8AAAD/AAAAAAD/AAAA/wAAAAAA/wAAAP8AAAAAAP8AAAD/
+AAA01gYAAQEDAAA01gYAAQIDbAA01gYAAQQDAAA01gYAAQgDbAADNABmNAAABdQNAADWDQAA
+BA4AACwOAAA2DgAAQg4AAIIAAAAAAAAAAAAAAAB3AAAAAAAAAAAAAAAAbAAAAAAAAAAAAAAA
+AF4AAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQAAFiQBSWYB
+AAAAEmRoAQEAAyQBYSQBRyQAAA0AABYkAUlmAQAAABJkaAEBAAMkAWEkAUckAAAKAAAWJAFJ
+ZgEAAAASZGgBAQBHJAAACgAAFiQBSWYBAAAAEmRoAQEARyQAAHwAABYkARckAUlmAQAAAAjW
+XAAEYv/CC9IZch/CJIAAAAAEAQEABAEBAAQBAQAAAAAAgAAAAAQBAQAEAQEABAEBAAAAAACA
+AAAABAEBAAQBAQAEAQEAAAAAAIAAAAAEAQEABAEBAAQBAQAEAQEACdYIAAAAAAAAAAAS1igA
+AAD/AAAA/wAAAAAA/wAAAP8AAAAAAP8AAAD/AAAAAAD/AAAA/wAAcNYoAAAA/wAAAP8AAAAA
+AP8AAAD/AAAAAAD/AAAA/wAAAAAA/wAAAP8AADTWBgABAQMAADTWBgABAgNsADTWBgABBAMA
+ADTWBgABCANsAAM0AGY0AAAFQg4AAEQOAABwDgAAmA4AAKIOAACuDgAAggAAAAAAAAAAAAAA
+AHcAAAAAAAAAAAAAAABsAAAAAAAAAAAAAAAAXgAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAANAAAWJAFJZgEAAAASZGgBAQADJAFhJAFHJAAADQAAFiQBSWYB
+AAAAEmRoAQEAAyQBYSQBRyQAAAoAABYkAUlmAQAAABJkaAEBAEckAAAKAAAWJAFJZgEAAAAS
+ZGgBAQBHJAAAfAAAFiQBFyQBSWYBAAAACNZcAARi/8IL0hlyH8IkgAAAAAQBAQAEAQEABAEB
+AAAAAACAAAAABAEBAAQBAQAEAQEAAAAAAIAAAAAEAQEABAEBAAQBAQAAAAAAgAAAAAQBAQAE
+AQEABAEBAAQBAQAJ1ggAAAAAAAAAABLWKAAAAP8AAAD/AAAAAAD/AAAA/wAAAAAA/wAAAP8A
+AAAAAP8AAAD/AABw1igAAAD/AAAA/wAAAAAA/wAAAP8AAAAAAP8AAAD/AAAAAAD/AAAA/wAA
+NNYGAAEBAwAANNYGAAECA2wANNYGAAEEAwAANNYGAAEIA2wAAzQAZjQAAAWuDgAAsA4AANoO
+AAACDwAADA8AABgPAACCAAAAAAAAAAAAAAAAdwAAAAAAAAAAAAAAAGwAAAAAAAAAAAAAAABe
+AAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0AABYkAUlmAQAA
+ABJkaAEBAAMkAWEkAUckAAANAAAWJAFJZgEAAAASZGgBAQADJAFhJAFHJAAACgAAFiQBSWYB
+AAAAEmRoAQEARyQAAAoAABYkAUlmAQAAABJkaAEBAEckAAB8AAAWJAEXJAFJZgEAAAAI1lwA
+BGL/wgvSGXIfwiSAAAAABAEBAAQBAQAEAQEAAAAAAIAAAAAEAQEABAEBAAQBAQAAAAAAgAAA
+AAQBAQAEAQEABAEBAAAAAACAAAAABAEBAAQBAQAEAQEABAEBAAnWCAAAAAAAAAAAEtYoAAAA
+/wAAAP8AAAAAAP8AAAD/AAAAAAD/AAAA/wAAAAAA/wAAAP8AAHDWKAAAAP8AAAD/AAAAAAD/
+AAAA/wAAAAAA/wAAAP8AAAAAAP8AAAD/AAA01gYAAQEDAAA01gYAAQIDbAA01gYAAQQDAAA0
+1gYAAQgDbAADNABmNAAABRgPAAAaDwAAHA8AAB4PAAAgDwAAIg8AAIIAAAAAAAAAAAAAAAB3
+AAAAAAAAAAAAAAAAbAAAAAAAAAAAAAAAAF4AAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAADQAAFiQBSWYBAAAAEmRoAQEAAyQBYSQBRyQAAA0AABYkAUlmAQAA
+ABJkaAEBAAMkAWEkAUckAAAKAAAWJAFJZgEAAAASZGgBAQBHJAAACgAAFiQBSWYBAAAAEmRo
+AQEARyQAAHwAABYkARckAUlmAQAAAAjWXAAEYv/CC9IZch/CJIAAAAAEAQEABAEBAAQBAQAA
+AAAAgAAAAAQBAQAEAQEABAEBAAAAAACAAAAABAEBAAQBAQAEAQEAAAAAAIAAAAAEAQEABAEB
+AAQBAQAEAQEACdYIAAAAAAAAAAAS1igAAAD/AAAA/wAAAAAA/wAAAP8AAAAAAP8AAAD/AAAA
+AAD/AAAA/wAAcNYoAAAA/wAAAP8AAAAAAP8AAAD/AAAAAAD/AAAA/wAAAAAA/wAAAP8AADTW
+BgABAQMAADTWBgABAgNsADTWBgABBAMAADTWBgABCANsAAM0AGY0AAAFIg8AACQPAAAmDwAA
+KA8AACoPAAAsDwAAggAAAAAAAAAAAAAAAHcAAAAAAAAAAAAAAABsAAAAAAAAAAAAAAAAXgAA
+AAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANAAAWJAFJZgEAAAAS
+ZGgBAQADJAFhJAFHJAAADQAAFiQBSWYBAAAAEmRoAQEAAyQBYSQBRyQAAAoAABYkAUlmAQAA
+ABJkaAEBAEckAAAKAAAWJAFJZgEAAAASZGgBAQBHJAAAfAAAFiQBFyQBSWYBAAAACNZcAARi
+/8IL0hlyH7gkgAAAAAQBAQAEAQEABAEBAAAAAACAAAAABAEBAAQBAQAEAQEAAAAAAIAAAAAE
+AQEABAEBAAQBAQAAAAAAgAAAAAQBAQAEAQEABAEBAAQBAQAJ1ggAAAAAAAAAABLWKAAAAP8A
+AAD/AAAAAAD/AAAA/wAAAAAA/wAAAP8AAAAAAP8AAAD/AABw1igAAAD/AAAA/wAAAAAA/wAA
+AP8AAAAAAP8AAAD/AAAAAAD/AAAA/wAANNYGAAEBAwAANNYGAAECA2wANNYGAAEEAwAANNYG
+AAEIA2wAAzQAZjQAAAUsDwAALg8AADAPAAAyDwAANA8AADYPAACCAAAAAAAAAAAAAAAAdwAA
+AAAAAAAAAAAAAGwAAAAAAAAAAAAAAABeAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAA0AABYkAUlmAQAAABJkaAEBAAMkAWEkAUckAAANAAAWJAFJZgEAAAAS
+ZGgBAQADJAFhJAFHJAAACgAAFiQBSWYBAAAAEmRoAQEARyQAAAoAABYkAUlmAQAAABJkaAEB
+AEckAAB8AAAWJAEXJAFJZgEAAAAI1lwABGL/wgvSGXIfuCSAAAAABAEBAAQBAQAEAQEAAAAA
+AIAAAAAEAQEABAEBAAQBAQAAAAAAgAAAAAQBAQAEAQEABAEBAAAAAACAAAAABAEBAAQBAQAE
+AQEABAEBAAnWCAAAAAAAAAAAEtYoAAAA/wAAAP8AAAAAAP8AAAD/AAAAAAD/AAAA/wAAAAAA
+/wAAAP8AAHDWKAAAAP8AAAD/AAAAAAD/AAAA/wAAAAAA/wAAAP8AAAAAAP8AAAD/AAA01gYA
+AQEDAAA01gYAAQIDbAA01gYAAQQDAAA01gYAAQgDbAADNABmNAAABTYPAAA4DwAAOg8AADwP
+AAA+DwAAQA8AAIIAAAAAAAAAAAAAAAB3AAAAAAAAAAAAAAAAbAAAAAAAAAAAAAAAAF4AAAAA
+AAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQAAFiQBSWYBAAAAEmRo
+AQEAAyQBYSQBRyQAAA0AABYkAUlmAQAAABJkaAEBAAMkAWEkAUckAAAKAAAWJAFJZgEAAAAS
+ZGgBAQBHJAAACgAAFiQBSWYBAAAAEmRoAQEARyQAAHwAABYkARckAUlmAQAAAAjWXAAEYv/C
+C9IZch+4JIAAAAAEAQEABAEBAAQBAQAAAAAAgAAAAAQBAQAEAQEABAEBAAAAAACAAAAABAEB
+AAQBAQAEAQEAAAAAAIAAAAAEAQEABAEBAAQBAQAEAQEACdYIAAAAAAAAAAAS1igAAAD/AAAA
+/wAAAAAA/wAAAP8AAAAAAP8AAAD/AAAAAAD/AAAA/wAAcNYoAAAA/wAAAP8AAAAAAP8AAAD/
+AAAAAAD/AAAA/wAAAAAA/wAAAP8AADTWBgABAQMAADTWBgABAgNsADTWBgABBAMAADTWBgAB
+CANsAAM0AGY0AAAFQA8AAEIPAAByDwAAsA8AAPwPAAA2EAAAZhAAAJwQAADOEAAA9hAAAIIA
+AAAAAAAAAAAAAAB9AAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAHMAAAAAAAAAAAAAAABuAAAA
+AAAAAAAAAAAAaQAAAAAAAAAAAAAAAGQAAAAAAAAAAAAAAABfAAAAAAAAAAAAAAAAWgAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAABJkaAEBAAAEAAASZGgBAQAABAAA
+EmRoAQEAAAQAABJkaAEBAAAEAAASZGgBAQAABAAAEmRoAQEAAAQAABJkaAEBAAAEAAASZGgB
+AQAAfAAAFiQBFyQBSWYBAAAACNZcAARi/8IL0hlyH7gkgAAAAAQBAQAEAQEABAEBAAAAAACA
+AAAABAEBAAQBAQAEAQEAAAAAAIAAAAAEAQEABAEBAAQBAQAAAAAAgAAAAAQBAQAEAQEABAEB
+AAQBAQAJ1ggAAAAAAAAAABLWKAAAAP8AAAD/AAAAAAD/AAAA/wAAAAAA/wAAAP8AAAAAAP8A
+AAD/AABw1igAAAD/AAAA/wAAAAAA/wAAAP8AAAAAAP8AAAD/AAAAAAD/AAAA/wAANNYGAAEB
+AwAANNYGAAECA2wANNYGAAEEAwAANNYGAAEIA2wAAzQAZjQAAAn2EAAAYBEAAJoRAADAEQAA
+9BEAAIwSAAC+EgAA3hIAAOASAADkEgAABhMAAGoTAAD6AAAAAAAAAAAAAAAA9QAAAAAAAAAA
+AAAAAPAAAAAAAAAAAAAAAADoAAAAAAAAAAAAAAAA3QAAAAAAAAAAAAAAANUAAAAAAAAAAAAA
+AADNAAAAAAAAAAAAAAAAxQAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAC1AAAAAAAAAAAAAAAA
+qgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAoAABYkAUlmAQAAABJkaAEBAEckAAAKAAAWJAFJZgEAAAASZGgBAQBHJAAABF4AAyQAYSQA
+AAcAABJkaAEBAAMkA2EkAwAHAAASZGgBAQADJANhJAMABwAAEmRoAQEAAyQDYSQDAAoAABJk
+aAEBAF6EcAhdhAAAYISQ9wAHAAASZGgBAQADJANhJAMABAAAEmRoAQEAAAQAABJkaAEBAAAE
+AAASZGgBAQAAC2oTAABsEwAAhBMAAM4TAADQEwAA7hMAAKwAAAAAAAAAAAAAAAChAAAAAAAA
+AAAAAAAAmQAAAAAAAAAAAAAAAEYAAAAAAAAAAAAAAAA7AAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAFiQBSWYBAAAAEmRoAQEARyQAAFIAABYkARckAUlm
+AQAAAAjWMAACAADeCgIngAAAAAQBAQAEAQEABAEBAAAAAACAAAAABAEBAAQBAQAEAQEABAEB
+AAeUSAEJ1gQAAAAAEtYUAAAA/wAAAP8AAAAAAP8AAAD/AABw1hQAAAD/AAAA/wAAAAAA/wAA
+AP8AADTWBgABAQMAADTWBgABAgNsADTWBgABBAMAADTWBgABCANsAAM0AGY0AAAHAAAWJAFJ
+ZgEAAABHJAAACgAAFiQBSWYBAAAAEmRoAQEARyQAAFIAABYkARckAUlmAQAAAAjWMAACAADe
+CgIngAAAAAQBAQAEAQEABAEBAAAAAACAAAAABAEBAAQBAQAEAQEABAEBAAeUOwEJ1gQAAAAA
+EtYUAAAA/wAAAP8AAAAAAP8AAAD/AABw1hQAAAD/AAAA/wAAAAAA/wAAAP8AADTWBgABAQMA
+ADTWBgABAgNsADTWBgABBAMAADTWBgABCANsAAM0AGY0AAAF7hMAABAUAAASFAAANBQAAH4U
+AACAFAAA9AAAAAAAAAAAAAAAAKEAAAAAAAAAAAAAAACWAAAAAAAAAAAAAAAAiwAAAAAAAAAA
+AAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSAAAWJAEXJAFJZgEA
+AAAI1jAAAgAA3goCJ4AAAAAEAQEABAEBAAQBAQAAAAAAgAAAAAQBAQAEAQEABAEBAAQBAQAH
+lFkBCdYEAAAAABLWFAAAAP8AAAD/AAAAAAD/AAAA/wAAcNYUAAAA/wAAAP8AAAAAAP8AAAD/
+AAA01gYAAQEDAAA01gYAAQIDbAA01gYAAQQDAAA01gYAAQgDbAADNABmNAAACgAAFiQBSWYB
+AAAAEmRoAQEARyQAAAoAABYkAUlmAQAAABJkaAEBAEckAABSAAAWJAEXJAFJZgEAAAAI1jAA
+AgAA3goCJ4AAAAAEAQEABAEBAAQBAQAAAAAAgAAAAAQBAQAEAQEABAEBAAQBAQAHlIEBCdYE
+AAAAABLWFAAAAP8AAAD/AAAAAAD/AAAA/wAAcNYUAAAA/wAAAP8AAAAAAP8AAAD/AAA01gYA
+AQEDAAA01gYAAQIDbAA01gYAAQQDAAA01gYAAQgDbAADNABmNAAACgAAFiQBSWYBAAAAEmRo
+AQEARyQAAAWAFAAAjBQAAPQUAAD2FAAA+hQAAPwUAAD+FAAAABUAAPcAAAAAAAAAAAAAAADv
+AAAAAAAAAAAAAAAAnAAAAAAAAAAAAAAAAJoAAAAAAAAAAAAAAACYAAAAAAAAAAAAAAAAlgAA
+AAAAAAAAAAAAAJEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEXgADJABhJAAAAQAAAAEAAAABAAAAUgAA
+FiQBFyQBSWYBAAAACNYwAAIAAN4KAieAAAAABAEBAAQBAQAEAQEAAAAAAIAAAAAEAQEABAEB
+AAQBAQAEAQEAB5RZAQnWBAAAAAAS1hQAAAD/AAAA/wAAAAAA/wAAAP8AAHDWFAAAAP8AAAD/
+AAAAAAD/AAAA/wAANNYGAAEBAwAANNYGAAECA2wANNYGAAEEAwAANNYGAAEIA2wAAzQAZjQA
+AAcAABYkAUlmAQAAAEckAAAHAAAWJAFJZgEAAABHJAAABzAAH7DQLyCw4D0hsKAFIrCgBSOQ
+0AIkkKAFMlAAADGQaAEwcAAAAAAzUAAAKDIADjAAAG4e8GIBAAAj9Bd8AAAAADYkA5ERAgAQ
+/4lQTkcNChoKAAAADUlIRFIAAAAQAAAAEAgGAAABaPTP9wAAAAlwSFlzAAALEgAACxIB0t1+
+/AAAAQNJREFUeJxjYYACFhDx/vXz/yxwke+f3//n5BVkBIv8BwIQzQgELDAGimZkgF3Lhw8v
+GN6/eI5QISgoidsMrGaCwPfv3//D2B/ePGeQlFViRFFw/8Yxhg+vPwBZP4CYA9MELUNnuL1Y
+rSDoBrwKqmdt/d+S6gUXrJm9jaE1zRvVkT9+/IAw/vzAYQVQAqTox4/v2BWcP70PovsPiCeA
+qgBkXytFvqAEoBiw9fC1/8eu38ep2EpTkcHbVgslRlAMAGlGDk9kAAqhlsX78LsAppCTkxND
+4b3b17AajGEAKKndu30OnKh+MMAiD5SqnxM2AOTHKduvY1UIk8drAHoAEQMojkYAJEdjeTsx
+JnYAAAAASUVORK5CYIIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAA/v8AAAEAAgAAAAAAAAAAAAAAAAAAAAAAAgAAAALVzdWcLhsQk5cIACss+a5EAAAA
+BdXN1ZwuGxCTlwgAKyz5rlwAAAAYAAAAAQAAAAEAAAAQAAAAAgAAAOn9AAAYAAAAAQAAAAEA
+AAAQAAAAAgAAAOn9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSAG8AbwB0ACAARQBuAHQAcgB5AAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFgAFAP//////////
+AQAAAAYJAgAAAAAAwAAAAAAAAEYAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAACAAgAAAAAAAAEA
+QwBvAG0AcABPAGIAagAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAASAAIAAgAAAAUAAAD/////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAGoAAAAAAAAAAQBPAGwAZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAgD/////AwAAAP////8AAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAFAAAAAAAAAAxAFQAYQBiAGwAZQAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgACAAQA
+AAD//////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAACIwAA
+AAAAAEQAYQB0AGEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAKAAIA////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAFgAAAP4kAAAAAAAABQBTAHUAbQBtAGEAcgB5AEkAbgBmAG8AcgBtAGEA
+dABpAG8AbgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAgAGAAAACAAAAP////8AAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAHAEAAAAAAABXAG8AcgBkAEQA
+bwBjAHUAbQBlAG4AdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+GgACAAcAAAD//////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACkA
+AACcQQAAAAAAAE8AYgBqAGUAYwB0AFAAbwBvAGwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAWAAEA////////////////AAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAA/v///wAAAAAAAAAABQBEAG8AYwB1AG0AZQBuAHQAUwB1AG0A
+bQBhAHIAeQBJAG4AZgBvAHIAbQBhAHQAaQBvAG4AAAAAAAAAAAAAADgAAgD/////////////
+//8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAdAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAP///////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAP7///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////////////////AAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/v///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////
+//////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+////AAAAAAAA
+AAA=
+--------------010903010402010104090709--
diff --git a/addons/hr_recruitment/test/test_hr_recruitment.yml b/addons/hr_recruitment/test/test_hr_recruitment.yml
deleted file mode 100644
index b797353bde2..00000000000
--- a/addons/hr_recruitment/test/test_hr_recruitment.yml
+++ /dev/null
@@ -1,139 +0,0 @@
--
- In order to test hr_recruitment module for OpenERP, I will create applicants form, Manages job positions and the recruitment process.
--
-
- I create a department.
--
- !record {model: hr.department, id: hr_department_rd0}:
- manager_id: base.user_root
- name: 'R & D '
-
--
- I create new Job Position.
--
- !record {model: hr.job, id: hr_job_jea0}:
- department_id: 'hr_department_rd0'
- description: 'Position of Jr. Application Engineer'
- expected_employees: 5
- name: 'JAE '
--
- I create a recruitment stage "Initial Jobs Demand".
--
- !record {model: hr.recruitment.stage, id: hr_recrutiment_stage_first0}:
- name: 'Initial Jobs Demand'
- sequence: 1
--
- I create an applicant.
--
- !record {model: hr.applicant, id: hr_applicant_fresher0}:
- availability: 0.0
- department_id: hr.dep_it
- name: Fresher
- partner_address_id: base.res_partner_address_tang
- partner_id: base.res_partner_asus
- partner_name: Marion Jones
- partner_phone: '1111112223'
- response: 0.0
- job_id: hr.job_jr_developers
- salary_expected: 0.0
- salary_proposed: 0.0
- stage_id: hr_recrutiment_stage_first0
- type_id: hr_recruitment.degree_licenced
-
--
- I check that applicant is on "draft" state.
--
- !assert {model: hr.applicant, id: hr_applicant_fresher0}:
- - state == 'draft'
-
--
- I change the state by click on "In Progress" button.
--
- !python {model: hr.applicant}: |
- self.case_open(cr, uid, [ref("hr_applicant_fresher0")], {"active_ids": [ref("hr_recruitment.menu_crm_case_categ0_act_job")],
- })
--
- I change the stages by clicking on stage next and stage previous buttons.
--
- !python {model: hr.applicant}: |
- self.stage_next(cr, uid, [ref('hr_applicant_fresher0')], None)
- self.stage_previous(cr, uid, [ref('hr_applicant_fresher0')], None)
--
- I create a new case category.
--
- !record {model: crm.case.categ, id: crm_case_categ_employee0}:
- name: 'Employee'
-
--
- I schedule a phonecall for this applicant by click on "Schedule a Phone Call" button.
--
- !record {model: hr.recruitment.job2phonecall, id: hr_recruitment_forinterview0}:
- user_id: base.user_root
- deadline: !eval time.strftime('%Y-%m-%d 11:51:00')
- note: 'For interview.'
- category_id: 'crm_case_categ_employee0'
-
--
- I click on "Schedule phonecall" button of this wizard.
--
- !python {model: hr.recruitment.job2phonecall}: |
- self.make_phonecall(cr, uid, [ref('hr_recruitment_forinterview0')], {'active_ids': [ref('hr_applicant_fresher0')]})
-
--
- I schedule meeting for interview of this applicant by click on "Schedule Meeting" button.
--
- !python {model: hr.applicant}: |
- self.action_makeMeeting(cr, uid, [ref('hr_recruitment_forinterview0')])
--
- I create an entry for the meeting with the applicant.
--
- !record {model: crm.meeting, id: crm_meeting_fresher0}:
- alarm_id: base_calendar.alarm1
- count: 0.0
- date: !eval "(datetime.now() + timedelta(1)).strftime('%Y-%m-%d 00:00:00')"
- date_deadline: !eval "(datetime.now() + timedelta(1)).strftime('%Y-%m-%d 08:00:00')"
- day: 0.0
- duration: 8.0
- name: Fresher
- opportunity_id: crm.crm_case_construstazunits0
- partner_address_id: base.res_partner_address_tang
- partner_id: base.res_partner_asus
- recurrent_uid: 0.0
- rrule_type: none
- state: open
- user_id: base.user_root
--
- I print the survery filled up by the applicant.
--
- !python {model: hr.applicant}: |
- self.action_print_survey(cr, uid, [ref('hr_applicant_fresher0')], None)
--
- I assign the position to the applicant and its relevant department.
--
- !python {model: hr.applicant}: |
- res = self.onchange_job(cr, uid, [ref('hr_applicant_fresher0')], ref('hr.job_jr_developers'), None)
- values = dict([('job_id', ref('hr.job_jr_developers'))] + res['value'].items())
- res1 = self.onchange_department_id(cr, uid, [ref('hr_applicant_fresher0')], ref('hr.dep_it'), None)
- values.update(dict([('department_id', ref('hr.dep_it'))] + res1['value'].items()))
- self.write(cr, uid, [ref('hr_applicant_fresher0')], values, None)
--
- On a successful meeting with the applicant, I hired employee by click on "Hired" button.
--
- !python {model: hired.employee}: |
- self.case_close(cr, uid, [], context={'active_ids': [ref('hr_applicant_fresher0')]})
--
- I check that applicant state is "Hired".
--
- !assert {model: hr.applicant, id: hr_applicant_fresher0}:
- - state == 'done'
--
- I create partner for the hired applicant for accounting purpose.
--
- !record {model: hr.recruitment.partner.create, id: hr_recruitment_partner_create0}:
- close: False
--
- I click on Create Partner button to create a partner for applicant.
--
- !python {model: hr.recruitment.partner.create}: |
- self.make_order(cr, uid, [ref('hr_recruitment_partner_create0')], context={'active_ids': [ref('hr_applicant_fresher0')]})
-
diff --git a/addons/hr_recruitment/wizard/hr_recruitment_phonecall.py b/addons/hr_recruitment/wizard/hr_recruitment_phonecall.py
index cd9cbea52f7..0f7d30b215a 100644
--- a/addons/hr_recruitment/wizard/hr_recruitment_phonecall.py
+++ b/addons/hr_recruitment/wizard/hr_recruitment_phonecall.py
@@ -88,7 +88,7 @@ class job2phonecall(osv.osv_memory):
id2 = data_obj.browse(cr, uid, id2, context=context).res_id
if id3:
id3 = data_obj.browse(cr, uid, id3, context=context).res_id
-
+ new_phonecall_id = []
for job in job_case_obj.browse(cr, uid, context.get('active_ids', []), context=context):
#TODO: Take other info from job
new_phonecall_id = phonecall_case_obj.create(cr, uid, {
diff --git a/addons/hr_timesheet/__openerp__.py b/addons/hr_timesheet/__openerp__.py
index 76886a45aaf..16331a7a2cf 100644
--- a/addons/hr_timesheet/__openerp__.py
+++ b/addons/hr_timesheet/__openerp__.py
@@ -21,9 +21,9 @@
{
- 'name': 'Human Resources (Timesheet encoding)',
+ 'name': 'Timesheets',
'version': '1.0',
- 'category': 'Hidden',
+ "category": "Human Resources",
'complexity': "easy",
'description': """
This module implements a timesheet system.
diff --git a/addons/hr_timesheet/security/ir.model.access.csv b/addons/hr_timesheet/security/ir.model.access.csv
index 2b2064a89b4..d5f89098a69 100644
--- a/addons/hr_timesheet/security/ir.model.access.csv
+++ b/addons/hr_timesheet/security/ir.model.access.csv
@@ -1,14 +1,14 @@
-"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
-"access_hr_analytic_timesheet","hr.analytic.timesheet","model_hr_analytic_timesheet","base.group_hr_user",1,1,1,1
-"access_hr_analytic_timesheet_employee","hr.analytic.timesheet","model_hr_analytic_timesheet","base.group_user",1,1,1,0
-"access_hr_account_analytic_line","account.account.analytic.line","account.model_account_analytic_line","base.group_hr_user",1,1,1,1
-"access_hr_account_analytic_line_employee","account.account.analytic.line employee","account.model_account_analytic_line","base.group_user",1,1,1,0
-"access_account_analytic_journal","account.account.analytic.journal","account.model_account_analytic_journal","base.group_hr_user",1,1,1,1
-"access_product_product_user","product.product user","product.model_product_product","base.group_hr_user",1,1,1,1
-"access_product_template_hr_timesheet","product.template.hr.timesheet","product.model_product_template","base.group_hr_user",1,1,1,1
-"access_product_uom_hr_timesheet","product.uom.hr.timesheet","product.model_product_uom","base.group_hr_user",1,1,1,1
-"access_account_fiscalyear_hr_user","account.account.fiscalyear.user","account.model_account_fiscalyear","base.group_hr_user",1,1,1,1
-"hr.access_account_journal_view_hruser","account.journal.view hruser","account.model_account_journal_view","base.group_hr_user",1,0,0,0
-"hr.access_account_journal_column_hruser","account.journal.column hruser","account.model_account_journal_column","base.group_hr_user",1,0,0,0
-"access_hr_analytic_timesheet_user","hr.analytic.timesheet.user","model_hr_analytic_timesheet","base.group_user",1,1,1,0
-"access_account_analytic_journal_user","account.account.analytic.journal.user","account.model_account_analytic_journal","base.group_user",1,0,0,0
+id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
+access_hr_analytic_timesheet,hr.analytic.timesheet,model_hr_analytic_timesheet,base.group_hr_user,1,1,1,1
+access_hr_analytic_timesheet_employee,hr.analytic.timesheet,model_hr_analytic_timesheet,base.group_user,1,1,1,0
+access_hr_account_analytic_line,account.account.analytic.line,account.model_account_analytic_line,base.group_hr_user,1,1,1,1
+access_hr_account_analytic_line_employee,account.account.analytic.line employee,account.model_account_analytic_line,base.group_user,1,1,1,0
+access_account_analytic_journal,account.account.analytic.journal,account.model_account_analytic_journal,base.group_hr_user,1,1,1,1
+access_product_product_user,product.product user,product.model_product_product,base.group_hr_user,1,1,1,1
+access_product_template_hr_timesheet,product.template.hr.timesheet,product.model_product_template,base.group_hr_user,1,1,1,1
+access_product_uom_hr_timesheet,product.uom.hr.timesheet,product.model_product_uom,base.group_hr_user,1,1,1,1
+access_account_fiscalyear_hr_user,account.account.fiscalyear.user,account.model_account_fiscalyear,base.group_hr_user,1,1,1,1
+hr.access_account_journal_view_hruser,account.journal.view hruser,account.model_account_journal_view,base.group_hr_user,1,0,0,0
+hr.access_account_journal_column_hruser,account.journal.column hruser,account.model_account_journal_column,base.group_hr_user,1,0,0,0
+access_hr_analytic_timesheet_user,hr.analytic.timesheet.user,model_hr_analytic_timesheet,base.group_user,1,1,1,0
+access_account_analytic_journal_user,account.account.analytic.journal.user,account.model_account_analytic_journal,base.group_user,1,0,0,0
diff --git a/addons/hr_timesheet_invoice/__openerp__.py b/addons/hr_timesheet_invoice/__openerp__.py
index d4237baf36c..e731f9215ff 100644
--- a/addons/hr_timesheet_invoice/__openerp__.py
+++ b/addons/hr_timesheet_invoice/__openerp__.py
@@ -21,9 +21,9 @@
{
- 'name': 'Invoice on analytic lines',
+ 'name': 'Invoice on Timesheets',
'version': '1.0',
- 'category': 'Hidden/Link',
+ 'category': 'Sales Management',
'description': """Generate your Invoices from Expenses, Timesheet Entries, ...
Module to generate invoices based on costs (human resources, expenses, ...).
============================================================================
diff --git a/addons/hr_timesheet_invoice/security/ir.model.access.csv b/addons/hr_timesheet_invoice/security/ir.model.access.csv
index 71c5be3cdfc..02d6175cd17 100644
--- a/addons/hr_timesheet_invoice/security/ir.model.access.csv
+++ b/addons/hr_timesheet_invoice/security/ir.model.access.csv
@@ -1,16 +1,16 @@
-"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
-"access_hr_timesheet_invoice_factor_hr_user","hr_timesheet_invoice.factor.hr.user","model_hr_timesheet_invoice_factor","base.group_hr_user",1,1,1,1
-"access_hr_timesheet_invoice_factor_employee","hr_timesheet_invoice.factor.hr.user","model_hr_timesheet_invoice_factor","base.group_user",1,1,1,1
-"access_hr_timesheet_invoice_factor_acc_inv","hr_timesheet_invoice.factor.account.invoice","model_hr_timesheet_invoice_factor","account.group_account_invoice",1,1,1,1
-"access_report_analytic_account_close","report.analytic.account.close","model_report_analytic_account_close","account.group_account_manager",1,0,0,0
-"access_report_account_analytic_line_to_invoice","report.account.analytic.line.to.invoice","model_report_account_analytic_line_to_invoice","account.group_account_manager",1,0,0,0
-"access_report_timesheet_user","report_timesheet.user","model_report_timesheet_user","base.group_hr_manager",1,1,1,1
-"access_report_timesheet_account","report_timesheet.account","model_report_timesheet_account","base.group_hr_manager",1,1,1,1
-"access_report_timesheet_account_date","report_timesheet.account.date","model_report_timesheet_account_date","base.group_hr_manager",1,1,1,1
-"access_report_timesheet_invoice","report_timesheet.invoice","model_report_timesheet_invoice","base.group_hr_manager",1,1,1,1
-"access_report_analytic_account_close_manager","report.analytic.account.close.manager","model_report_analytic_account_close","base.group_hr_manager",1,1,1,1
-"access_report_account_analytic_line_to_invoice_manager","report.account.analytic.line.to.invoice.manager","model_report_account_analytic_line_to_invoice","base.group_hr_manager",1,1,1,1
-"access_account_invoice_hr_user","account.invoice.hr.user","account.model_account_invoice","base.group_hr_user",1,1,1,1
-"access_account_invoice_tax_hr_manager","account.invoice.tax.hr.manager","account.model_account_invoice_tax","base.group_hr_manager",1,1,1,1
-"access_report_timesheet_line_employee","report.timesheet.line.employee","model_report_timesheet_line","base.group_hr_user",1,1,1,1
-"access_report_timesheet_line_employee_user","report.timesheet.line","model_report_timesheet_line","base.group_user",1,1,1,0
+id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
+access_hr_timesheet_invoice_factor_hr_user,hr_timesheet_invoice.factor.hr.user,model_hr_timesheet_invoice_factor,base.group_hr_user,1,1,1,1
+access_hr_timesheet_invoice_factor_employee,hr_timesheet_invoice.factor.hr.user,model_hr_timesheet_invoice_factor,base.group_user,1,1,1,1
+access_hr_timesheet_invoice_factor_acc_inv,hr_timesheet_invoice.factor.account.invoice,model_hr_timesheet_invoice_factor,account.group_account_invoice,1,1,1,1
+access_report_analytic_account_close,report.analytic.account.close,model_report_analytic_account_close,account.group_account_manager,1,0,0,0
+access_report_account_analytic_line_to_invoice,report.account.analytic.line.to.invoice,model_report_account_analytic_line_to_invoice,account.group_account_manager,1,0,0,0
+access_report_timesheet_user,report_timesheet.user,model_report_timesheet_user,base.group_hr_manager,1,1,1,1
+access_report_timesheet_account,report_timesheet.account,model_report_timesheet_account,base.group_hr_manager,1,1,1,1
+access_report_timesheet_account_date,report_timesheet.account.date,model_report_timesheet_account_date,base.group_hr_manager,1,1,1,1
+access_report_timesheet_invoice,report_timesheet.invoice,model_report_timesheet_invoice,base.group_hr_manager,1,1,1,1
+access_report_analytic_account_close_manager,report.analytic.account.close.manager,model_report_analytic_account_close,base.group_hr_manager,1,1,1,1
+access_report_account_analytic_line_to_invoice_manager,report.account.analytic.line.to.invoice.manager,model_report_account_analytic_line_to_invoice,base.group_hr_manager,1,1,1,1
+access_account_invoice_hr_user,account.invoice.hr.user,account.model_account_invoice,base.group_hr_user,1,1,1,1
+access_account_invoice_tax_hr_manager,account.invoice.tax.hr.manager,account.model_account_invoice_tax,base.group_hr_manager,1,1,1,1
+access_report_timesheet_line_employee,report.timesheet.line.employee,model_report_timesheet_line,base.group_hr_user,1,1,1,1
+access_report_timesheet_line_employee_user,report.timesheet.line,model_report_timesheet_line,base.group_user,1,1,1,0
diff --git a/addons/hr_timesheet_invoice/wizard/hr_timesheet_analytic_profit.py b/addons/hr_timesheet_invoice/wizard/hr_timesheet_analytic_profit.py
index 7d5d7a36867..518bb981df9 100644
--- a/addons/hr_timesheet_invoice/wizard/hr_timesheet_analytic_profit.py
+++ b/addons/hr_timesheet_invoice/wizard/hr_timesheet_analytic_profit.py
@@ -31,18 +31,18 @@ class account_analytic_profit(osv.osv_memory):
'date_to': fields.date('To', required=True),
'journal_ids': fields.many2many('account.analytic.journal', 'analytic_profit_journal_rel', 'analytic_id', 'journal_id', 'Journal', required=True),
'employee_ids': fields.many2many('res.users', 'analytic_profit_emp_rel', 'analytic_id', 'emp_id', 'User', required=True),
- }
+ }
def _date_from(*a):
- return datetime.datetime.today().strftime('%Y-%m-1')
+ return datetime.date.today().replace(day=1).strftime('%Y-%m-%d')
def _date_to(*a):
- return datetime.datetime.today().strftime('%Y-%m-%d')
+ return datetime.date.today().strftime('%Y-%m-%d')
_defaults = {
- 'date_from': _date_from,
- 'date_to': _date_to
- }
+ 'date_from': _date_from,
+ 'date_to': _date_to
+ }
def print_report(self, cr, uid, ids, context=None):
line_obj = self.pool.get('account.analytic.line')
@@ -72,4 +72,4 @@ class account_analytic_profit(osv.osv_memory):
account_analytic_profit()
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/hr_timesheet_invoice/wizard/hr_timesheet_invoice_create_final_view.xml b/addons/hr_timesheet_invoice/wizard/hr_timesheet_invoice_create_final_view.xml
index d366e795c15..514996816cc 100644
--- a/addons/hr_timesheet_invoice/wizard/hr_timesheet_invoice_create_final_view.xml
+++ b/addons/hr_timesheet_invoice/wizard/hr_timesheet_invoice_create_final_view.xml
@@ -13,7 +13,6 @@
-
Invoice
client_action_multi
diff --git a/addons/hr_timesheet_sheet/__openerp__.py b/addons/hr_timesheet_sheet/__openerp__.py
index 403d435df71..7299e283d6d 100644
--- a/addons/hr_timesheet_sheet/__openerp__.py
+++ b/addons/hr_timesheet_sheet/__openerp__.py
@@ -21,7 +21,7 @@
{
- 'name': 'Timesheets',
+ 'name': 'Timesheets Validation',
'version': '1.0',
'category': 'Human Resources',
'description': """
@@ -69,5 +69,6 @@ The validation can be configured in the company:
'installable': True,
'active': False,
'certificate': '0073297700829',
+ 'application': True,
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/hr_timesheet_sheet/board_hr_timesheet_view.xml b/addons/hr_timesheet_sheet/board_hr_timesheet_view.xml
index 39ab5fe3482..74530b81859 100644
--- a/addons/hr_timesheet_sheet/board_hr_timesheet_view.xml
+++ b/addons/hr_timesheet_sheet/board_hr_timesheet_view.xml
@@ -40,7 +40,7 @@
form
-
+
diff --git a/addons/hr_timesheet_sheet/security/ir.model.access.csv b/addons/hr_timesheet_sheet/security/ir.model.access.csv
index 3e4b36380cc..8b9414d9b9d 100644
--- a/addons/hr_timesheet_sheet/security/ir.model.access.csv
+++ b/addons/hr_timesheet_sheet/security/ir.model.access.csv
@@ -1,9 +1,9 @@
-"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
-"access_hr_timesheet_sheet_sheet_user","hr_timesheet_sheet.sheet.user","model_hr_timesheet_sheet_sheet","base.group_user",1,1,1,1
-"access_hr_timesheet_sheet_sheet_system_employee","hr_timesheet_sheet.sheet.system.employee","model_hr_timesheet_sheet_sheet","base.group_user",1,1,1,0
-"access_hr_timesheet_sheet_sheet_day","hr_timesheet_sheet.sheet.day","model_hr_timesheet_sheet_sheet_day","base.group_hr_user",1,1,1,1
-"access_hr_timesheet_sheet_sheet_account","hr_timesheet_sheet.sheet.account","model_hr_timesheet_sheet_sheet_account","base.group_hr_user",1,1,1,1
-"access_hr_timesheet_report","hr.timesheet.report","model_hr_timesheet_report","base.group_hr_manager",1,1,1,1
-"access_hr_analytic_timesheet_system_user","hr.analytic.timesheet.system.user","model_hr_analytic_timesheet","base.group_user",1,0,0,0
-"access_hr_timesheet_sheet_sheet_day","hr.timesheet.sheet.sheet.day.user","model_hr_timesheet_sheet_sheet_day","base.group_user",1,1,1,0
-"access_timesheet_report","timesheet.report","model_timesheet_report","base.group_hr_manager",1,1,1,1
+id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
+access_hr_timesheet_sheet_sheet_user,hr_timesheet_sheet.sheet.user,model_hr_timesheet_sheet_sheet,base.group_user,1,1,1,1
+access_hr_timesheet_sheet_sheet_system_employee,hr_timesheet_sheet.sheet.system.employee,model_hr_timesheet_sheet_sheet,base.group_user,1,1,1,0
+access_hr_timesheet_sheet_sheet_day,hr_timesheet_sheet.sheet.day,model_hr_timesheet_sheet_sheet_day,base.group_hr_user,1,1,1,1
+access_hr_timesheet_sheet_sheet_account,hr_timesheet_sheet.sheet.account,model_hr_timesheet_sheet_sheet_account,base.group_hr_user,1,1,1,1
+access_hr_timesheet_report,hr.timesheet.report,model_hr_timesheet_report,base.group_hr_manager,1,1,1,1
+access_hr_analytic_timesheet_system_user,hr.analytic.timesheet.system.user,model_hr_analytic_timesheet,base.group_user,1,0,0,0
+access_hr_timesheet_sheet_sheet_day,hr.timesheet.sheet.sheet.day.user,model_hr_timesheet_sheet_sheet_day,base.group_user,1,1,1,0
+access_timesheet_report,timesheet.report,model_timesheet_report,base.group_hr_manager,1,1,1,1
diff --git a/addons/html_view/__openerp__.py b/addons/html_view/__openerp__.py
index 3deceff9d6f..eadff96babf 100644
--- a/addons/html_view/__openerp__.py
+++ b/addons/html_view/__openerp__.py
@@ -2,7 +2,7 @@
"name" : "Html View",
"version" : "1.1",
"author" : "OpenERP SA",
- "category" : "Hidden",
+ "category" : "Hidden/Test",
"depends" : ['base'],
"init_xml" : ['html_view.xml'],
"demo_xml" : [],
diff --git a/addons/html_view/security/ir.model.access.csv b/addons/html_view/security/ir.model.access.csv
index e79e65bb4b5..4370c07b57a 100644
--- a/addons/html_view/security/ir.model.access.csv
+++ b/addons/html_view/security/ir.model.access.csv
@@ -1,4 +1,4 @@
-"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
-"access_html_view","html.view","model_html_view","base.group_system",1,0,0,0
-"access_html_view_sale_user","html.view user","model_html_view","base.group_sale_salesman",1,1,1,0
-"access_html_view_sale_manager","html.view manager","model_html_view","base.group_sale_manager",1,0,0,0
+id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
+access_html_view,html.view,model_html_view,base.group_system,1,0,0,0
+access_html_view_sale_user,html.view user,model_html_view,base.group_sale_salesman,1,1,1,0
+access_html_view_sale_manager,html.view manager,model_html_view,base.group_sale_manager,1,0,0,0
diff --git a/addons/idea/__openerp__.py b/addons/idea/__openerp__.py
index 66709824c4a..9fdb3e8fffe 100644
--- a/addons/idea/__openerp__.py
+++ b/addons/idea/__openerp__.py
@@ -21,9 +21,9 @@
{
- 'name': 'Ideas Box',
+ 'name': 'Ideas',
'version': '0.1',
- 'category': 'Human Resources',
+ 'category': 'Tools',
'complexity': "easy",
'description': """
This module allows your user to easily and efficiently participate in enterprise innovation.
diff --git a/addons/idea/security/idea_security.xml b/addons/idea/security/idea_security.xml
index 344cbc64292..02a3cbdbdd8 100644
--- a/addons/idea/security/idea_security.xml
+++ b/addons/idea/security/idea_security.xml
@@ -3,10 +3,12 @@
- Tools / User
+ User
+
- Tools / Manager
+ Manager
+
diff --git a/addons/idea/security/ir.model.access.csv b/addons/idea/security/ir.model.access.csv
index b76cc9bd58a..989530277f6 100644
--- a/addons/idea/security/ir.model.access.csv
+++ b/addons/idea/security/ir.model.access.csv
@@ -1,8 +1,7 @@
-"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
-"access_idea_category_user","idea.category user","model_idea_category","base.group_tool_user",1,1,1,1
-"access_idea_idea_user","idea.idea user","model_idea_idea","base.group_tool_user",1,1,1,1
-"access_idea_vote_user","idea.vote user","model_idea_vote","base.group_tool_user",1,1,1,1
-"access_idea_vote_manager","idea.vote manager","model_idea_vote","base.group_tool_manager",1,1,1,1
-"access_idea_vote_stat_user","idea.vote.stat user","model_idea_vote_stat","base.group_tool_user",1,1,1,1
-"access_idea_comment_user","idea.comment user","model_idea_comment","base.group_tool_user",1,1,1,1
-"access_report_vote_manager","report.vote manager","model_report_vote","base.group_tool_manager",1,1,1,1
+id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
+access_idea_category_user,idea.category user,model_idea_category,base.group_tool_user,1,1,1,1
+access_idea_idea_user,idea.idea user,model_idea_idea,base.group_tool_user,1,1,1,1
+access_idea_vote_user,idea.vote user,model_idea_vote,base.group_tool_user,1,1,1,1
+access_idea_vote_stat_user,idea.vote.stat user,model_idea_vote_stat,base.group_tool_user,1,1,1,1
+access_idea_comment_user,idea.comment user,model_idea_comment,base.group_tool_user,1,1,1,1
+access_report_vote_manager,report.vote manager,model_report_vote,base.group_tool_manager,1,1,1,1
diff --git a/addons/import_base/__openerp__.py b/addons/import_base/__openerp__.py
index 0f65cf166b6..742e16dfe80 100644
--- a/addons/import_base/__openerp__.py
+++ b/addons/import_base/__openerp__.py
@@ -20,9 +20,9 @@
##############################################################################
{
- 'name': 'Base framework for module that need to import complex data',
+ 'name': 'Framework for complex import',
'version': '0.9',
- 'category': 'Hidden',
+ 'category': 'Hidden/Dependency',
'description': """
This module provide a class import_framework to help importing
complex data from other software
diff --git a/addons/import_google/__openerp__.py b/addons/import_google/__openerp__.py
index a0a15756ec3..fe469c94504 100644
--- a/addons/import_google/__openerp__.py
+++ b/addons/import_google/__openerp__.py
@@ -42,6 +42,5 @@
],
'installable': True,
'active': False,
- 'certificate': '',
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/import_google/security/ir.model.access.csv b/addons/import_google/security/ir.model.access.csv
index 50b689efa69..cb0a8946d46 100644
--- a/addons/import_google/security/ir.model.access.csv
+++ b/addons/import_google/security/ir.model.access.csv
@@ -1,5 +1,4 @@
-"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
-"access_res_users_partner_manager","google.res.partner.manager","base.model_ir_model_data","base.group_partner_manager",1,1,1,0
-"access_ir_model_data_partner_manager","ir.model.data.partner.manager","base.model_res_users","base.group_partner_manager",1,1,0,0
-"access_google_import_message_partner_manager","google.import.message.partner.manager","model_google_import_message","base.group_partner_manager",1,1,0,0
-
+id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
+access_res_users_partner_manager,google.res.partner.manager,base.model_ir_model_data,base.group_partner_manager,1,1,1,0
+access_ir_model_data_partner_manager,ir.model.data.partner.manager,base.model_res_users,base.group_partner_manager,1,1,0,0
+access_google_import_message_partner_manager,google.import.message.partner.manager,model_google_import_message,base.group_partner_manager,1,1,0,0
diff --git a/addons/import_sugarcrm/__openerp__.py b/addons/import_sugarcrm/__openerp__.py
index 927a4b542ed..093331a1bbe 100644
--- a/addons/import_sugarcrm/__openerp__.py
+++ b/addons/import_sugarcrm/__openerp__.py
@@ -20,7 +20,7 @@
##############################################################################
{
- 'name': 'Import Data from SugarCRM',
+ 'name': 'SugarCRM Import',
'version': '1.0',
'category': 'Customer Relationship Management',
'description': """This Module Import SugarCRM "Leads", "Opportunities", "Users", "Accounts",
@@ -28,10 +28,12 @@
'author': 'OpenERP SA',
'website': 'http://www.openerp.com',
'depends': ['import_base','crm', 'document'],
- 'init_xml': [],
- 'update_xml': ["wizard/import_message_view.xml",
- "import_sugarcrm_view.xml"],
- 'demo_xml': [],
+ 'data': [
+ "wizard/import_message_view.xml",
+ "import_sugarcrm_view.xml",
+ "security/ir.model.access.csv",
+ ],
+ 'demo': [],
'test': [],
'installable': True,
'active': False,
diff --git a/addons/import_sugarcrm/import_sugarcrm_view.xml b/addons/import_sugarcrm/import_sugarcrm_view.xml
index 1f12a8fde57..3c1f9df60fb 100644
--- a/addons/import_sugarcrm/import_sugarcrm_view.xml
+++ b/addons/import_sugarcrm/import_sugarcrm_view.xml
@@ -1,105 +1,104 @@
-
+
-
- import.sugarcrm.form
- import.sugarcrm
- form
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+ import.sugarcrm.form
+ import.sugarcrm
+ form
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
- Import SugarCRM
- import.sugarcrm
- form
- tree,form
-
- new
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+ Import SugarCRM
+ import.sugarcrm
+ form
+ tree,form
+
+ new
+
+
+
-
+
-
diff --git a/addons/import_sugarcrm/security/ir.model.access.csv b/addons/import_sugarcrm/security/ir.model.access.csv
new file mode 100644
index 00000000000..5aadbf32950
--- /dev/null
+++ b/addons/import_sugarcrm/security/ir.model.access.csv
@@ -0,0 +1,3 @@
+id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
+access_import_sugarcrm_system,import.sugarcrm system,model_import_sugarcrm,base.group_system,1,1,1,1
+access_import_message_system,import.message system,model_import_message,base.group_system,1,1,1,1
diff --git a/addons/knowledge/__openerp__.py b/addons/knowledge/__openerp__.py
index 2ca58e9861f..e37419ffcaf 100644
--- a/addons/knowledge/__openerp__.py
+++ b/addons/knowledge/__openerp__.py
@@ -21,11 +21,11 @@
{
- "name" : "Knowledge Management System",
+ "name" : "Document Management System",
"version" : "1.0",
"depends" : ["base","base_setup"],
"author" : "OpenERP SA",
- "category": 'Hidden',
+ 'category': 'Hidden/Dependency',
'complexity': "easy",
"description": """
Installer for knowledge-based Hidden.
diff --git a/addons/knowledge/security/ir.model.access.csv b/addons/knowledge/security/ir.model.access.csv
index 7a057fcfcbe..34255019afe 100644
--- a/addons/knowledge/security/ir.model.access.csv
+++ b/addons/knowledge/security/ir.model.access.csv
@@ -1,4 +1,3 @@
-"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
-"access_ir_attachment_sale_manager","ir_attachment manager","base.model_ir_attachment","base.group_sale_manager",1,1,1,1
-"access_ir_attachment_partner_manager","ir_attachment_partner manager","base.model_ir_attachment","base.group_partner_manager",1,1,1,1
-
+id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
+access_ir_attachment_sale_manager,ir_attachment manager,base.model_ir_attachment,base.group_sale_manager,1,1,1,1
+access_ir_attachment_partner_manager,ir_attachment_partner manager,base.model_ir_attachment,base.group_partner_manager,1,1,1,1
diff --git a/addons/knowledge/security/knowledge_security.xml b/addons/knowledge/security/knowledge_security.xml
index b4c7bb99c1b..560fdce0506 100644
--- a/addons/knowledge/security/knowledge_security.xml
+++ b/addons/knowledge/security/knowledge_security.xml
@@ -1,13 +1,11 @@
-
- Sales / Manager
-
-
- Knowledge / User
-
+
+ User
+
+
diff --git a/addons/l10n_at/__openerp__.py b/addons/l10n_at/__openerp__.py
index 570841374d8..cd96d4ee9dc 100644
--- a/addons/l10n_at/__openerp__.py
+++ b/addons/l10n_at/__openerp__.py
@@ -20,10 +20,10 @@
##############################################################################
{
- "name" : "Austria - Chart of Accounts",
+ "name" : "Austria - Accounting",
"version" : "1.0",
"author" : "conexus.at",
- "website" : "http://www.conexus.at",
+ "website" : "http://www.conexus.at",
"category" : "Localization/Account Charts",
"depends" : ["account_chart", 'base_vat'],
"description": "This module provides the standard Accounting Chart for Austria which is based on the Template from BMF.gv.at. Please keep in mind that you should review and adapt it with your Accountant, before using it in a live Environment.",
diff --git a/addons/l10n_be/__openerp__.py b/addons/l10n_be/__openerp__.py
index d4300186660..c8f44493597 100644
--- a/addons/l10n_be/__openerp__.py
+++ b/addons/l10n_be/__openerp__.py
@@ -18,7 +18,7 @@
# along with this program. If not, see .
#
##############################################################################
-{ 'name': 'Belgium - Plan Comptable Minimum Normalise',
+{ 'name': 'Belgium - Accounting',
'version': '1.1',
'category': 'Localization/Account Charts',
'description': """
diff --git a/addons/l10n_be/l10n_be_wizard.yml b/addons/l10n_be/l10n_be_wizard.yml
index a51d1d55244..5acc10c629f 100644
--- a/addons/l10n_be/l10n_be_wizard.yml
+++ b/addons/l10n_be/l10n_be_wizard.yml
@@ -5,12 +5,15 @@
type: automatic
-
!python {model: ir.actions.todo}: |
- if self.browse(cr, uid, ref('l10n_be.config_call_account_template')).state=='open':
+ install_todo = self.browse(cr, uid, ref('l10n_be.config_call_account_template'))
+ if install_todo.state == 'open':
wiz = self.pool.get('wizard.multi.charts.accounts')
- wiz_id = wiz.create(cr, uid, {
+ values = {
'chart_template_id': ref('l10n_be.l10nbe_chart_template')
- })
+ }
+ values.update(
+ wiz.onchange_chart_template_id(cr, uid, False, ref('l10n_be.l10nbe_chart_template')).get('value', {})
+ )
+ wiz_id = wiz.create(cr, uid, values)
wiz.execute(cr, uid, [wiz_id])
- self.write(cr, uid, [ref('l10n_be.config_call_account_template')], {
- 'state': 'done'
- })
+ install_todo.write({'state':'done'})
diff --git a/addons/l10n_be/security/ir.model.access.csv b/addons/l10n_be/security/ir.model.access.csv
index 0343f29f43a..4a08a4aa60d 100644
--- a/addons/l10n_be/security/ir.model.access.csv
+++ b/addons/l10n_be/security/ir.model.access.csv
@@ -1 +1 @@
-"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
+id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
diff --git a/addons/l10n_be/wizard/l10n_be_account_vat_declaration.py b/addons/l10n_be/wizard/l10n_be_account_vat_declaration.py
index 77d8515d78b..138f6f668f8 100644
--- a/addons/l10n_be/wizard/l10n_be_account_vat_declaration.py
+++ b/addons/l10n_be/wizard/l10n_be_account_vat_declaration.py
@@ -70,9 +70,10 @@ class l10n_be_vat_declaration(osv.osv_memory):
obj_company = data_tax.tax_code_id.company_id
else:
obj_company = obj_user.browse(cr, uid, uid, context=context).company_id
- vat_no = obj_company.partner_id.vat.replace(' ','').upper()
+ vat_no = obj_company.partner_id.vat
if not vat_no:
raise osv.except_osv(_('Data Insufficient'), _('No VAT Number Associated with Main Company!'))
+ vat_no = vat_no.replace(' ','').upper()
tax_code_ids = obj_tax_code.search(cr, uid, [], context=context)
ctx = context.copy()
diff --git a/addons/l10n_be_hr_payroll/__openerp__.py b/addons/l10n_be_hr_payroll/__openerp__.py
index d667cdfa126..488345869b2 100644
--- a/addons/l10n_be_hr_payroll/__openerp__.py
+++ b/addons/l10n_be_hr_payroll/__openerp__.py
@@ -19,8 +19,8 @@
#
##############################################################################
{
- 'name': 'Belgian Payroll Rules',
- 'category': 'Localization/Payroll',
+ 'name': 'Belgium - Payroll',
+ 'category': 'Localization',
'author': 'OpenERP SA',
'depends': ['hr_payroll'],
'version': '1.0',
diff --git a/addons/l10n_be_hr_payroll/l10n_be_hr_payroll_data.xml b/addons/l10n_be_hr_payroll/l10n_be_hr_payroll_data.xml
index 799c544a0c8..5acb2729abb 100644
--- a/addons/l10n_be_hr_payroll/l10n_be_hr_payroll_data.xml
+++ b/addons/l10n_be_hr_payroll/l10n_be_hr_payroll_data.xml
@@ -165,7 +165,7 @@
car
fix
15
- none
+ none
@@ -266,7 +266,7 @@
165
python
result = bool(contract.insurance_employee_deduction)
- result = -contract.insurance_employee_deduction
+ result = -contract.insurance_employee_deduction
diff --git a/addons/l10n_be_invoice_bba/__openerp__.py b/addons/l10n_be_invoice_bba/__openerp__.py
index c18f49817b5..2fde058b4be 100644
--- a/addons/l10n_be_invoice_bba/__openerp__.py
+++ b/addons/l10n_be_invoice_bba/__openerp__.py
@@ -21,11 +21,11 @@
##############################################################################
{
- 'name': 'Add support for Belgian structured communication to Invoices',
+ 'name': 'Belgium - Structured Communication',
'version': '1.2',
'license': 'AGPL-3',
'author': 'Noviat',
- 'category' : 'Localization/Accounting',
+ 'category' : 'Localization',
'description': """
Belgian localisation for in- and outgoing invoices (prereq to account_coda):
diff --git a/addons/l10n_br/__openerp__.py b/addons/l10n_br/__openerp__.py
index 86ff4cd4e83..909d4f53600 100644
--- a/addons/l10n_br/__openerp__.py
+++ b/addons/l10n_br/__openerp__.py
@@ -19,7 +19,7 @@
#################################################################################
{
- 'name': 'Brazilian Localization',
+ 'name': 'Brazilian - Accounting',
'category': 'Localization/Account Charts',
'description': """
Base module for the Brazilian localization
diff --git a/addons/l10n_br/account.py b/addons/l10n_br/account.py
index 92f724a7762..6e38aaa690f 100644
--- a/addons/l10n_br/account.py
+++ b/addons/l10n_br/account.py
@@ -124,15 +124,6 @@ class account_tax(osv.osv):
account_tax()
-class account_journal(osv.osv):
- _inherit = "account.journal"
-
- _columns = {
- 'internal_sequence': fields.many2one('ir.sequence', 'Internal Sequence'),
- }
-
-account_journal()
-
class wizard_multi_charts_accounts(osv.osv_memory):
_inherit = 'wizard.multi.charts.accounts'
diff --git a/addons/l10n_br/account_view.xml b/addons/l10n_br/account_view.xml
index da2ab84d4ab..0b038fddd82 100644
--- a/addons/l10n_br/account_view.xml
+++ b/addons/l10n_br/account_view.xml
@@ -96,18 +96,6 @@
-
- l10n_br.journal.form.inherit
- account.journal
- form
-
-
-
-
-
-
-
-
diff --git a/addons/l10n_br/data/account_tax_template.xml b/addons/l10n_br/data/account_tax_template.xml
index 58f860e0d90..fcdcb4d30e6 100644
--- a/addons/l10n_br/data/account_tax_template.xml
+++ b/addons/l10n_br/data/account_tax_template.xml
@@ -5,7 +5,6 @@
IPI
IPI
- vat
0.00
@@ -21,7 +20,6 @@
IPI 2%
IPI 2%
- vat
0.02
@@ -37,7 +35,6 @@
IPI 3%
IPI 3%
- vat
0.03
@@ -53,7 +50,6 @@
IPI 4%
IPI 4%
- vat
0.04
@@ -69,7 +65,6 @@
IPI 5%
IPI 5%
- vat
0.05
@@ -85,7 +80,6 @@
IPI 7%
IPI 7%
- vat
0.07
@@ -101,7 +95,6 @@
IPI 8%
IPI 8%
- vat
0.08
@@ -117,7 +110,6 @@
IPI 10%
IPI 10%
- vat
0.10
@@ -133,7 +125,6 @@
IPI 12%
IPI 12%
- vat
0.12
@@ -149,7 +140,6 @@
IPI 13%
IPI 13%
- vat
0.13
@@ -165,7 +155,6 @@
IPI 15%
IPI 15%
- vat
0.15
@@ -181,7 +170,6 @@
IPI 16%
IPI 16%
- vat
0.16
@@ -197,7 +185,6 @@
IPI 18%
IPI 18%
- vat
0.18
@@ -213,7 +200,6 @@
IPI 20%
IPI 20%
- vat
0.20
@@ -229,7 +215,6 @@
IPI 22%
IPI 22%
- vat
0.22
@@ -245,7 +230,6 @@
IPI 25%
IPI 25%
- vat
0.25
@@ -261,7 +245,6 @@
IPI 27%
IPI 27%
- vat
0.27
@@ -277,7 +260,6 @@
IPI 30%
IPI 30%
- vat
0.30
@@ -293,7 +275,6 @@
IPI 35%
IPI 35%
- vat
0.35
@@ -309,7 +290,6 @@
IPI 40%
IPI 40%
- vat
0.40
@@ -325,7 +305,6 @@
IPI 42%
IPI 42%
- vat
0.42
@@ -341,7 +320,6 @@
IPI 45%
IPI 45%
- vat
0.45
@@ -357,7 +335,6 @@
IPI 50%
IPI 50%
- vat
0.50
@@ -373,7 +350,6 @@
IPI 60%
IPI 60%
- vat
0.60
@@ -389,7 +365,6 @@
IPI 330%
IPI 330%
- vat
3.30
@@ -405,7 +380,6 @@
ICMS Interno
ICMS Interno
- vat
0.00
@@ -421,7 +395,6 @@
ICMS Externo
ICMS Externo
- vat
0.00
@@ -437,7 +410,6 @@
ICMS Subist
ICMS Subist
- vat
0.00
@@ -451,7 +423,6 @@
ICMS Externo 7%
ICMS Externo 7%
- vat
0.07
@@ -467,7 +438,6 @@
ICMS Externo 12%
ICMS Externo 12%
- vat
0.12
@@ -483,7 +453,6 @@
ICMS Interno 19%
ICMS Interno 19%
- vat
0.19
@@ -499,7 +468,6 @@
ICMS Interno 26%
ICMS Interno 26%
- vat
0.26
@@ -515,7 +483,6 @@
PIS
PIS
- vat
0.00
@@ -531,7 +498,6 @@
PIS 0,65%
PIS 0,65%
- vat
0.0065
@@ -547,7 +513,6 @@
COFINS
COFINS
- vat
0.00
@@ -563,7 +528,6 @@
COFINS 3%
COFINS 3%
- vat
0.03
@@ -579,7 +543,6 @@
IRPJ
IRPJ
- vat
0.00
@@ -593,7 +556,6 @@
IR
IR
- vat
0.00
@@ -607,7 +569,6 @@
ISS
ISS
- vat
0.00
@@ -621,7 +582,6 @@
ISS 1%
ISS 1%
- vat
0.01
@@ -635,7 +595,6 @@
ISS 2%
ISS 2%
- vat
0.02
@@ -649,7 +608,6 @@
ISS 3%
ISS 3%
- vat
0.03
@@ -663,7 +621,6 @@
ISS 4%
ISS 4%
- vat
0.04
@@ -677,7 +634,6 @@
ISS 5%
ISS 5%
- vat
0.05
@@ -691,7 +647,6 @@
CSLL
CSLL
- vat
0.00
@@ -703,4 +658,4 @@
-
\ No newline at end of file
+
diff --git a/addons/l10n_br/data/l10n_br_account_chart_template.xml b/addons/l10n_br/data/l10n_br_account_chart_template.xml
index 9dbcb4d558f..89ccee11edc 100644
--- a/addons/l10n_br/data/l10n_br_account_chart_template.xml
+++ b/addons/l10n_br/data/l10n_br_account_chart_template.xml
@@ -19,7 +19,7 @@
This is the same wizard that runs from Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template.
open
- onskip
+ once
diff --git a/addons/l10n_br/security/ir.model.access.csv b/addons/l10n_br/security/ir.model.access.csv
index 2a1ecd6910f..9381bd449b3 100644
--- a/addons/l10n_br/security/ir.model.access.csv
+++ b/addons/l10n_br/security/ir.model.access.csv
@@ -1,3 +1,3 @@
-"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
-"l10n_br_account_cst","l10n_br_account.cst","model_l10n_br_account_cst","account.group_account_invoice",1,1,1,1
-"l10n_br_account_cst_template","l10n_br_account.cst.template","model_l10n_br_account_cst_template","account.group_account_invoice",1,1,1,1
+id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
+l10n_br_account_cst,l10n_br_account.cst,model_l10n_br_account_cst,account.group_account_invoice,1,1,1,1
+l10n_br_account_cst_template,l10n_br_account.cst.template,model_l10n_br_account_cst_template,account.group_account_invoice,1,1,1,1
diff --git a/addons/l10n_ca/__openerp__.py b/addons/l10n_ca/__openerp__.py
index fbfadbf9755..800ca7937eb 100644
--- a/addons/l10n_ca/__openerp__.py
+++ b/addons/l10n_ca/__openerp__.py
@@ -19,7 +19,7 @@
#
##############################################################################
{
- "name" : "Canada - English and French - Canadian Chart of Accounts",
+ "name" : "Canada - Accounting",
"version" : "1.0",
"author" : "Savoir-faire Linux",
"website" : "http://www.savoirfairelinux.com",
diff --git a/addons/l10n_ch/__openerp__.py b/addons/l10n_ch/__openerp__.py
index cabd15e42de..b2363ca051b 100644
--- a/addons/l10n_ch/__openerp__.py
+++ b/addons/l10n_ch/__openerp__.py
@@ -20,7 +20,7 @@
##############################################################################
{
- "name" : "Switzerland - localization with 2011 taxes",
+ "name" : "Switzerland - Accounting",
"description" : """
Swiss localisation :
- DTA generation for a lot of payment types
@@ -99,8 +99,9 @@ TODO :
'test' : [
'test/l10n_ch_report.yml',
'test/l10n_ch_dta.yml',
- 'test/l10n_ch_v11.yml',
- 'test/l10n_ch_v11_part.yml',
+ #TODO: uncomment the 2 following tests once they are fixed
+ #'test/l10n_ch_v11.yml',
+ #'test/l10n_ch_v11_part.yml',
],
"active": False,
"installable": True,
diff --git a/addons/l10n_ch/bank_view.xml b/addons/l10n_ch/bank_view.xml
index f8c66c16000..e23be1bb6ac 100644
--- a/addons/l10n_ch/bank_view.xml
+++ b/addons/l10n_ch/bank_view.xml
@@ -6,7 +6,6 @@
res.bank.form
res.bank
form
-
@@ -23,7 +22,6 @@
res.bank.tree
res.bank
tree
-
@@ -40,7 +38,6 @@
res.partner_bank.form.hide.f1
res.partner
form
-
@@ -51,7 +48,6 @@
res.partner_bank.form.hide.f2
res.partner
form
-
@@ -63,7 +59,6 @@
res.partner_bank.form.hide.f2
res.partner
form
-
@@ -94,7 +89,6 @@
res.partner_bank.form.hide.acc_number.frominvoice
res.partner.bank
form
-
@@ -106,7 +100,6 @@
res.partner_bank.form.hide.bank.frominvoice
res.partner.bank
form
-
@@ -118,7 +111,6 @@
res.partner_bank.form.hide.frominvoice
res.partner.bank
form
-
@@ -138,7 +130,7 @@
-
+
diff --git a/addons/l10n_ch/security/ir.model.access.csv b/addons/l10n_ch/security/ir.model.access.csv
index 0343f29f43a..4a08a4aa60d 100644
--- a/addons/l10n_ch/security/ir.model.access.csv
+++ b/addons/l10n_ch/security/ir.model.access.csv
@@ -1 +1 @@
-"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
+id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
diff --git a/addons/l10n_ch/sterchi_chart/account.xml b/addons/l10n_ch/sterchi_chart/account.xml
index f642b800493..8fdd29fe8a8 100644
--- a/addons/l10n_ch/sterchi_chart/account.xml
+++ b/addons/l10n_ch/sterchi_chart/account.xml
@@ -177,14 +177,12 @@
Bilan : Debiteurs
receivable
- True
unreconciled
none
Bilan : Fournisseurs
payable
- True
unreconciled
none
@@ -359,11 +357,12 @@
other
- Compte en devise A
+ Compte en devise EUR
1024
+
other
diff --git a/addons/l10n_ch/wizard/bvr_import.py b/addons/l10n_ch/wizard/bvr_import.py
index 31c1e9ab96f..e98053513cd 100644
--- a/addons/l10n_ch/wizard/bvr_import.py
+++ b/addons/l10n_ch/wizard/bvr_import.py
@@ -168,7 +168,7 @@ def _import(self, cursor, user, data, context=None):
# line2reconcile = line.id
account_id = line.account_id.id
break
- result = voucher_obj.onchange_partner_id(cursor, user, [], partner_id, journal_id=statement.journal_id.id, price=abs(record['amount']), currency_id= statement.currency.id, ttype='receipt', date=statement.date ,context=context)
+ result = voucher_obj.onchange_partner_id(cursor, user, [], partner_id, journal_id=statement.journal_id.id, amount=abs(record['amount']), currency_id= statement.currency.id, ttype='receipt', date=statement.date ,context=context)
voucher_res = { 'type': 'receipt' ,
'name': values['name'],
diff --git a/addons/l10n_cn/__openerp__.py b/addons/l10n_cn/__openerp__.py
index 6a063505275..24823f96eb7 100644
--- a/addons/l10n_cn/__openerp__.py
+++ b/addons/l10n_cn/__openerp__.py
@@ -18,7 +18,7 @@
#
##############################################################################
{
- "name" : "中国会计科目表",
+ "name" : "中国会计科目表 - Accounting",
"version" : "1.0",
"category": "Localization/Account Charts",
"author" : "openerp-china.org",
diff --git a/addons/l10n_cr/__openerp__.py b/addons/l10n_cr/__openerp__.py
index 5fc4d80d7f7..6052115df3b 100644
--- a/addons/l10n_cr/__openerp__.py
+++ b/addons/l10n_cr/__openerp__.py
@@ -33,7 +33,7 @@
##############################################################################
{
- 'name': 'Costa Rica - Chart of Accounts',
+ 'name': 'Costa Rica - Accounting',
'version': '0.1',
'url': 'http://launchpad.net/openerp-costa-rica',
'author': 'ClearCorp S.A.',
diff --git a/addons/l10n_cr/data/account_tax_template.xml b/addons/l10n_cr/data/account_tax_template.xml
index 7626b25b5ad..42b5ca03a13 100644
--- a/addons/l10n_cr/data/account_tax_template.xml
+++ b/addons/l10n_cr/data/account_tax_template.xml
@@ -11,7 +11,6 @@
10
13
percent
-
all
true
@@ -34,7 +33,6 @@
10
13
percent
-
all
true
diff --git a/addons/l10n_de/__openerp__.py b/addons/l10n_de/__openerp__.py
index 646836eba2a..232a1abb3ad 100644
--- a/addons/l10n_de/__openerp__.py
+++ b/addons/l10n_de/__openerp__.py
@@ -121,7 +121,7 @@
{
- "name" : "Deutschland - SKR03 and SKR04",
+ "name" : "Deutschland - Accounting",
"version" : "1.0",
"author" : "openbig.org",
"website" : "http://www.openbig.org",
diff --git a/addons/l10n_ec/__openerp__.py b/addons/l10n_ec/__openerp__.py
index f3dbf88289b..9dd81606036 100644
--- a/addons/l10n_ec/__openerp__.py
+++ b/addons/l10n_ec/__openerp__.py
@@ -18,7 +18,7 @@
#
##############################################################################
{
- 'name': 'Ecuador - Accounting Chart',
+ 'name': 'Ecuador - Accounting',
'version': '1.1',
'category': 'Localization/Account Charts',
'description': """
diff --git a/addons/l10n_es/__openerp__.py b/addons/l10n_es/__openerp__.py
index e2f5ad3402d..4da526f4b76 100644
--- a/addons/l10n_es/__openerp__.py
+++ b/addons/l10n_es/__openerp__.py
@@ -22,7 +22,7 @@
##############################################################################
{
- "name" : "Spanish Charts of Accounts (PGCE 2008)",
+ "name" : "Spanish - Accounting (PGCE 2008)",
"version" : "3.0",
"author" : "Spanish Localization Team",
'website' : 'https://launchpad.net/openerp-spain',
diff --git a/addons/l10n_fr/__openerp__.py b/addons/l10n_fr/__openerp__.py
index 1bcb659c322..d4b4f91d911 100644
--- a/addons/l10n_fr/__openerp__.py
+++ b/addons/l10n_fr/__openerp__.py
@@ -26,7 +26,7 @@
#
##############################################################################
{
- "name" : "France - Plan Comptable Général",
+ "name" : "France - Accounting",
"version" : "1.0",
"author" : "OpenERP SA",
"website": "http://www.openerp.com",
@@ -37,7 +37,7 @@ This is the module to manage the accounting chart for France in OpenERP.
Credits: Sistheo Zeekom CrysaLEAD
""",
- "depends" : ['base', 'account', 'account_chart', 'base_vat'],
+ "depends" : ['base', 'account', 'account_chart', 'base_vat', 'l10n_fr_rib'],
"init_xml" : [],
"update_xml" : [
"fr_report_demo.xml",
diff --git a/addons/l10n_fr/security/ir.model.access.csv b/addons/l10n_fr/security/ir.model.access.csv
index 13405e7ce76..3642d709040 100644
--- a/addons/l10n_fr/security/ir.model.access.csv
+++ b/addons/l10n_fr/security/ir.model.access.csv
@@ -1,5 +1,3 @@
-"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
-"access_l10n_fr_report_manager","l10n_fr.report account manager","model_l10n_fr_report","account.group_account_manager",1,1,1,1
-"access_l10n_fr_report_user","l10n_fr_report account user","model_l10n_fr_report","account.group_account_user",1,1,1,1
-"access_l10n_fr_line_manager","l10n_fr_line account manager","model_l10n_fr_line","account.group_account_manager",1,1,1,1
-"access_l10n_fr_line_user","l10n_fr.l10n_fr_line_account user","model_l10n_fr_line","account.group_account_user",1,1,1,1
+id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
+access_l10n_fr_report_user,l10n_fr_report account user,model_l10n_fr_report,account.group_account_user,1,1,1,1
+access_l10n_fr_line_user,l10n_fr.l10n_fr_line_account user,model_l10n_fr_line,account.group_account_user,1,1,1,1
diff --git a/addons/l10n_fr_rib/__init__.py b/addons/l10n_fr_rib/__init__.py
new file mode 100644
index 00000000000..a061d3f40a2
--- /dev/null
+++ b/addons/l10n_fr_rib/__init__.py
@@ -0,0 +1,25 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2011 Numérigraphe SARL.
+#
+# 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 .
+#
+##############################################################################
+
+import bank
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+
diff --git a/addons/l10n_fr_rib/__openerp__.py b/addons/l10n_fr_rib/__openerp__.py
new file mode 100644
index 00000000000..072f8f5c1ac
--- /dev/null
+++ b/addons/l10n_fr_rib/__openerp__.py
@@ -0,0 +1,49 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2011 Numérigraphe SARL.
+#
+# 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': 'French RIB Bank Details',
+ 'version': '1.0',
+ "category": 'Hidden/Dependency',
+ 'description': '''
+This module lets users enter the banking details of Partners in the RIB format (French standard for bank accounts details).
+RIB Bank Accounts can be entered in the "Accounting" tab of the Partner form by specifying the account type "RIB". The four standard RIB fields will then become mandatory:
+- Bank Code
+- Office Code
+- Account number
+- RIB key
+As a safety measure, OpenERP will check the RIB key whenever a RIB is saved, and will refuse to record the data if the key is incorrect. Please bear in mind that this can only happen when the user presses the "save" button, for example on the Partner Form.
+Since each bank account may relate to a Bank, users may enter the RIB Bank Code in the Bank form - it will the pre-fill the Bank Code on the RIB when they select the Bank.
+To make this easier, this module will also let users find Banks using their RIB code.
+
+The module base_iban can be a useful addition to this module, because French banks are now progressively adopting the international IBAN format instead of the RIB format.
+The RIB and IBAN codes for a single account can be entered by recording two Bank Accounts in OpenERP: the first with the type "RIB", the second with the type "IBAN".
+''',
+ 'author' : u'Numérigraphe SARL',
+ 'depends': ['base', 'account'],
+ 'init_xml': ['bank_data.xml', ],
+ 'update_xml': ['bank_view.xml', ],
+ 'installable': True,
+ 'certificate': '003407950790',
+ 'active': False,
+}
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/l10n_fr_rib/bank.py b/addons/l10n_fr_rib/bank.py
new file mode 100644
index 00000000000..03f71f60dee
--- /dev/null
+++ b/addons/l10n_fr_rib/bank.py
@@ -0,0 +1,118 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2011 Numérigraphe SARL.
+#
+# 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 .
+#
+##############################################################################
+
+import netsvc
+from osv import fields, osv
+from tools.translate import _
+
+class res_partner_bank(osv.osv):
+ """Add fields and behavior for French RIB"""
+ _inherit = "res.partner.bank"
+
+ def _check_key(self, cr, uid, ids):
+ """Check the RIB key"""
+ for bank_acc in self.browse(cr, uid, ids):
+ # Ignore the accounts of type other than rib
+ if bank_acc.state !='rib':
+ continue
+ # Fail if the needed values are empty of too short
+ if (not bank_acc.bank_code
+ or len(bank_acc.bank_code) != 5
+ or not bank_acc.office or len(bank_acc.office) != 5
+ or not bank_acc.acc_number or len(bank_acc.acc_number) != 11
+ or not bank_acc.key or len(bank_acc.key) != 2):
+ return False
+ # Get the rib data (without the key)
+ rib = "%s%s%s" % (bank_acc.bank_code, bank_acc.office,
+ bank_acc.acc_number)
+ # Translate letters into numbers according to a specific table
+ # (notice how s -> 2)
+ table = dict((ord(a), b) for a, b in zip(
+ u'abcdefghijklmnopqrstuvwxyz', u'12345678912345678923456789'))
+ rib = rib.lower().translate(table)
+ # compute the key
+ key = 97 - (100 * int(rib)) % 97
+ if int(bank_acc.key) != key:
+ return False
+ return True
+
+ def onchange_bank_id(self, cr, uid, ids, bank_id, context=None):
+ """Change the bank code"""
+ result = super(res_partner_bank, self).onchange_bank_id(cr, uid, ids, bank_id,
+ context=context)
+ if bank_id:
+ value = result.setdefault('value', {})
+ bank = self.pool.get('res.bank').browse(cr, uid, bank_id,
+ context=context)
+ value['bank_code'] = bank.rib_code
+ return result
+
+ _columns = {
+ 'bank_code': fields.char('Bank Code', size=64, readonly=True,),
+ 'office': fields.char('Office Code', size=5, readonly=True,),
+ 'key': fields.char('Key', size=2, readonly=True,
+ help="The key is a number allowing to check the "
+ "correctness of the other codes."),
+ }
+
+ def _construct_constraint_msg(self, cr, uid, ids, context=None):
+ """Quote the data in the warning message"""
+ # Only process the first id
+ if type(ids) not in (int, long):
+ id = ids[0]
+ rib = self.browse(cr, uid, id, context=context)
+ if rib:
+ return (_("\nThe RIB key %s does not correspond to the other "
+ "codes: %s %s %s.") %
+ (rib.key,
+ rib.bank_code,
+ rib.office,
+ rib.acc_number) )
+
+ _constraints = [(_check_key,
+ _construct_constraint_msg,
+ ["key"])]
+
+res_partner_bank()
+
+class res_bank(osv.osv):
+ """Add the bank code to make it easier to enter RIB data"""
+ _inherit = 'res.bank'
+
+ def name_search(self, cr, user, name, args=None, operator='ilike',
+ context=None, limit=80):
+ """Search by bank code in addition to the standard search"""
+ # Get the standard results
+ results = super(res_bank, self).name_search(cr, user,
+ name, args=args ,operator=operator, context=context, limit=limit)
+ # Get additional results using the RIB code
+ ids = self.search(cr, user, [('rib_code', operator, name)],
+ limit=limit, context=context)
+ # Merge the results
+ results = list(set(results + self.name_get(cr, user, ids, context)))
+ return results
+
+ _columns = {
+ 'rib_code': fields.char('RIB Bank Code', size=64),
+ }
+res_bank()
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+
diff --git a/addons/l10n_fr_rib/bank_data.xml b/addons/l10n_fr_rib/bank_data.xml
new file mode 100644
index 00000000000..1dc9f4c88fd
--- /dev/null
+++ b/addons/l10n_fr_rib/bank_data.xml
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+ RIB Bank Details
+ rib
+
+
+
+ bank_code
+
+
+
+
+
+ office
+
+
+
+
+
+ acc_number
+
+
+
+ 11
+
+
+ key
+
+
+
+
+
+ bank_bic
+
+
+
+
+
diff --git a/addons/l10n_fr_rib/bank_view.xml b/addons/l10n_fr_rib/bank_view.xml
new file mode 100644
index 00000000000..56eb8393aef
--- /dev/null
+++ b/addons/l10n_fr_rib/bank_view.xml
@@ -0,0 +1,44 @@
+
+
+
+
+
+ res.partner.form.rib1.inherit
+ res.partner
+
+ form
+
+
+
+
+
+
+
+
+
+
+ res.partner.form.rib2.inherit
+ res.partner
+
+ form
+
+
+
+
+
+
+
+
+
+ res.bank.form.rib.inherit
+ res.bank
+
+ form
+
+
+
+
+
+
+
+
diff --git a/addons/l10n_fr_rib/i18n/fr.po b/addons/l10n_fr_rib/i18n/fr.po
new file mode 100644
index 00000000000..4057dafb803
--- /dev/null
+++ b/addons/l10n_fr_rib/i18n/fr.po
@@ -0,0 +1,116 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * l10n_fr_rib
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 6.1beta\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-11-21 12:37+0000\n"
+"PO-Revision-Date: 2011-11-21 12:37+0000\n"
+"Last-Translator: <>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: \n"
+
+#. module: l10n_fr_rib
+#: constraint:res.partner.bank:0
+msgid "\n"
+"Please define BIC/Swift code on bank for bank type IBAN Account to make valid payments"
+msgstr "\n"
+"Please define BIC/Swift code on bank for bank type IBAN Account to make valid payments"
+
+#. module: l10n_fr_rib
+#: model:ir.model,name:l10n_fr_rib.model_res_partner_bank
+msgid "Bank Accounts"
+msgstr "Comptes bancaires"
+
+#. module: l10n_fr_rib
+#: field:res.partner.bank,bank_code:0
+msgid "Bank Code"
+msgstr "Code banque"
+
+#. module: l10n_fr_rib
+#: model:res.partner.bank.type.field,name:l10n_fr_rib.rib_bic_field
+msgid "bank_bic"
+msgstr "bank_bic"
+
+#. module: l10n_fr_rib
+#: model:res.partner.bank.type.field,name:l10n_fr_rib.rib_office_field
+msgid "office"
+msgstr "Agence"
+
+#. module: l10n_fr_rib
+#: field:res.bank,rib_code:0
+msgid "RIB Bank Code"
+msgstr "Code banque RIB"
+
+#. module: l10n_fr_rib
+#: model:ir.module.module,description:l10n_fr_rib.module_meta_information
+msgid "\n"
+"This module installs the base for RIB bank accounts (French standard for bank accounts). \n"
+"To make it easier to enter RIB data, it will also allow to search for banks by code."
+msgstr "\n"
+"Ce module installe la base pour les comptes bancaires RIB (norme française pour les n° de compte). \n"
+"Pour faciliter la saisie des RIBs, il permet aussi de chercher les banques par code."
+
+#. module: l10n_fr_rib
+#: field:res.partner.bank,office:0
+msgid "Office Code"
+msgstr "Code agence"
+
+#. module: l10n_fr_rib
+#: model:res.partner.bank.type,name:l10n_fr_rib.bank_rib
+msgid "RIB Bank Details"
+msgstr "Relevé d'identité bancaire (RIB)"
+
+#. module: l10n_fr_rib
+#: model:res.partner.bank.type.field,name:l10n_fr_rib.rib_bank_code_field
+msgid "bank_code"
+msgstr "bank_code"
+
+#. module: l10n_fr_rib
+#: code:addons/l10n_fr_rib/bank.py:109
+#, python-format
+msgid "\n"
+"The RIB key %s does not correspond to the other codes: %s %s %s."
+msgstr "\n"
+"La clé RIB %s ne correspond pas aux autres codes : %s %s %s."
+
+#. module: l10n_fr_rib
+#: model:res.partner.bank.type.field,name:l10n_fr_rib.rib_key_field
+msgid "key"
+msgstr "key"
+
+#. module: l10n_fr_rib
+#: model:ir.module.module,shortdesc:l10n_fr_rib.module_meta_information
+msgid "French RIB Bank Details"
+msgstr "Relevés d'identité bancaire français (RIB)"
+
+#. module: l10n_fr_rib
+#: help:res.partner.bank,key:0
+msgid "The key is a number allowing to check the correctness of the other codes."
+msgstr "La clé est un nombre permettant de vérifier que les autres codes sont corrects."
+
+#. module: l10n_fr_rib
+#: field:res.partner.bank,key:0
+msgid "Key"
+msgstr "Clé"
+
+#. module: l10n_fr_rib
+#: model:res.partner.bank.type,format_layout:l10n_fr_rib.bank_rib
+msgid "%(bank_name)s: %(acc_number)s"
+msgstr "%(bank_name)s: %(acc_number)s"
+
+#. module: l10n_fr_rib
+#: model:ir.model,name:l10n_fr_rib.model_res_bank
+msgid "Bank"
+msgstr "Banque"
+
+#. module: l10n_fr_rib
+#: model:res.partner.bank.type.field,name:l10n_fr_rib.bank_acc_number_field
+msgid "acc_number"
+msgstr "acc_number"
+
diff --git a/addons/l10n_fr_rib/i18n/l10n_fr_rib.pot b/addons/l10n_fr_rib/i18n/l10n_fr_rib.pot
new file mode 100644
index 00000000000..5db922fe20f
--- /dev/null
+++ b/addons/l10n_fr_rib/i18n/l10n_fr_rib.pot
@@ -0,0 +1,112 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * l10n_fr_rib
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 6.1beta\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-11-21 12:36+0000\n"
+"PO-Revision-Date: 2011-11-21 12:36+0000\n"
+"Last-Translator: <>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: \n"
+
+#. module: l10n_fr_rib
+#: constraint:res.partner.bank:0
+msgid "\n"
+"Please define BIC/Swift code on bank for bank type IBAN Account to make valid payments"
+msgstr ""
+
+#. module: l10n_fr_rib
+#: model:ir.model,name:l10n_fr_rib.model_res_partner_bank
+msgid "Bank Accounts"
+msgstr ""
+
+#. module: l10n_fr_rib
+#: field:res.partner.bank,bank_code:0
+msgid "Bank Code"
+msgstr ""
+
+#. module: l10n_fr_rib
+#: model:res.partner.bank.type.field,name:l10n_fr_rib.rib_bic_field
+msgid "bank_bic"
+msgstr ""
+
+#. module: l10n_fr_rib
+#: model:res.partner.bank.type.field,name:l10n_fr_rib.rib_office_field
+msgid "office"
+msgstr ""
+
+#. module: l10n_fr_rib
+#: field:res.bank,rib_code:0
+msgid "RIB Bank Code"
+msgstr ""
+
+#. module: l10n_fr_rib
+#: model:ir.module.module,description:l10n_fr_rib.module_meta_information
+msgid "\n"
+"This module installs the base for RIB bank accounts (French standard for bank accounts). \n"
+"To make it easier to enter RIB data, it will also allow to search for banks by code."
+msgstr ""
+
+#. module: l10n_fr_rib
+#: field:res.partner.bank,office:0
+msgid "Office Code"
+msgstr ""
+
+#. module: l10n_fr_rib
+#: model:res.partner.bank.type,name:l10n_fr_rib.bank_rib
+msgid "RIB Bank Details"
+msgstr ""
+
+#. module: l10n_fr_rib
+#: model:res.partner.bank.type.field,name:l10n_fr_rib.rib_bank_code_field
+msgid "bank_code"
+msgstr ""
+
+#. module: l10n_fr_rib
+#: code:addons/l10n_fr_rib/bank.py:109
+#, python-format
+msgid "\n"
+"The RIB key %s does not correspond to the other codes: %s %s %s."
+msgstr ""
+
+#. module: l10n_fr_rib
+#: model:res.partner.bank.type.field,name:l10n_fr_rib.rib_key_field
+msgid "key"
+msgstr ""
+
+#. module: l10n_fr_rib
+#: model:ir.module.module,shortdesc:l10n_fr_rib.module_meta_information
+msgid "French RIB Bank Details"
+msgstr ""
+
+#. module: l10n_fr_rib
+#: help:res.partner.bank,key:0
+msgid "The key is a number allowing to check the correctness of the other codes."
+msgstr ""
+
+#. module: l10n_fr_rib
+#: field:res.partner.bank,key:0
+msgid "Key"
+msgstr ""
+
+#. module: l10n_fr_rib
+#: model:res.partner.bank.type,format_layout:l10n_fr_rib.bank_rib
+msgid "%(bank_name)s: %(acc_number)s"
+msgstr ""
+
+#. module: l10n_fr_rib
+#: model:ir.model,name:l10n_fr_rib.model_res_bank
+msgid "Bank"
+msgstr ""
+
+#. module: l10n_fr_rib
+#: model:res.partner.bank.type.field,name:l10n_fr_rib.bank_acc_number_field
+msgid "acc_number"
+msgstr ""
+
diff --git a/addons/l10n_gr/__openerp__.py b/addons/l10n_gr/__openerp__.py
index 72b1d2c7cc4..0ad042b3b28 100644
--- a/addons/l10n_gr/__openerp__.py
+++ b/addons/l10n_gr/__openerp__.py
@@ -20,7 +20,7 @@
#
##############################################################################
{
- "name" : "Greece - Normal Plan",
+ "name" : "Greece - Accounting",
"version" : "0.2",
"author" : "P. Christeas, OpenERP SA.",
"website": "http://openerp.hellug.gr/",
diff --git a/addons/l10n_gt/__openerp__.py b/addons/l10n_gt/__openerp__.py
index d80c1fa80a7..f05bbdaaff1 100644
--- a/addons/l10n_gt/__openerp__.py
+++ b/addons/l10n_gt/__openerp__.py
@@ -33,7 +33,7 @@
#
{
- 'name': 'Guatemala - Plan contable general',
+ 'name': 'Guatemala - Accounting',
'version': '3.0',
'category': 'Localization/Account Charts',
'description': """
diff --git a/addons/l10n_gt/l10n_gt_base.xml b/addons/l10n_gt/l10n_gt_base.xml
index c52e7e94532..5238d7b4f23 100644
--- a/addons/l10n_gt/l10n_gt_base.xml
+++ b/addons/l10n_gt/l10n_gt_base.xml
@@ -16,7 +16,6 @@
GTQ
- GTQ
Q
0.01
4
diff --git a/addons/l10n_hn/__openerp__.py b/addons/l10n_hn/__openerp__.py
index 31d9344cb65..af8bb4cfa1d 100644
--- a/addons/l10n_hn/__openerp__.py
+++ b/addons/l10n_hn/__openerp__.py
@@ -33,7 +33,7 @@
#
{
- 'name': 'Honduras - Plan contable general',
+ 'name': 'Honduras - Accounting',
'version': '0.1',
'category': 'Localization/Account Charts',
'description': """Agrega una nomenclatura contable para Honduras. También incluye impuestos y la moneda Lempira. -- Adds accounting chart for Honduras. It also includes taxes and the Lempira currency""",
@@ -49,6 +49,5 @@
],
'demo_xml': [],
'installable': True,
- 'certificate': '',
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/l10n_in/__openerp__.py b/addons/l10n_in/__openerp__.py
index 9aaec061319..2c54ca256fc 100644
--- a/addons/l10n_in/__openerp__.py
+++ b/addons/l10n_in/__openerp__.py
@@ -20,7 +20,7 @@
##############################################################################
{
- "name": "Indian Chart of Account",
+ "name": "India - Accounting",
"version": "1.0",
"description": """
Indian Accounting : Chart of Account.
diff --git a/addons/l10n_it/__openerp__.py b/addons/l10n_it/__openerp__.py
index 2c5811a6915..b531db26c99 100644
--- a/addons/l10n_it/__openerp__.py
+++ b/addons/l10n_it/__openerp__.py
@@ -28,7 +28,7 @@
##############################################################################
{
- "name" : "Italy - Generic Chart of Accounts",
+ "name" : "Italy - Accounting",
"version" : "0.1",
"depends" : ['base_vat','account_chart','base_iban'],
"author" : "OpenERP Italian Community",
diff --git a/addons/l10n_lu/__openerp__.py b/addons/l10n_lu/__openerp__.py
index 7a4436e31c1..68c2e7ac76b 100644
--- a/addons/l10n_lu/__openerp__.py
+++ b/addons/l10n_lu/__openerp__.py
@@ -21,7 +21,7 @@
{
- 'name': 'Luxembourg - Plan Comptable Minimum Normalise',
+ 'name': 'Luxembourg - Accounting',
'version': '1.0',
'category': 'Localization/Account Charts',
'description': """
diff --git a/addons/l10n_ma/__openerp__.py b/addons/l10n_ma/__openerp__.py
index a9bd7ce557e..69fd801e1dc 100644
--- a/addons/l10n_ma/__openerp__.py
+++ b/addons/l10n_ma/__openerp__.py
@@ -20,7 +20,7 @@
##############################################################################
{
- "name" : "Maroc - Plan Comptable Général",
+ "name" : "Maroc - Accounting",
"version" : "1.0",
"author" : "kazacube",
"category" : "Localization/Account Charts",
diff --git a/addons/l10n_ma/security/ir.model.access.csv b/addons/l10n_ma/security/ir.model.access.csv
index da5da5f48a2..2c89d1d3692 100644
--- a/addons/l10n_ma/security/ir.model.access.csv
+++ b/addons/l10n_ma/security/ir.model.access.csv
@@ -1,5 +1,3 @@
-"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
-"access_l10n_ma_report_manager","l10n_ma.report account manager","model_l10n_ma_report","account.group_account_manager",1,1,1,1
-"access_l10n_ma_report_user","l10n_ma_report account user","model_l10n_ma_report","account.group_account_user",1,1,1,1
-"access_l10n_ma_line_manager","l10n_ma_line account manager","model_l10n_ma_line","account.group_account_manager",1,1,1,1
-"access_l10n_ma_line_user","l10n_ma.l10n_ma_line_account user","model_l10n_ma_line","account.group_account_user",1,1,1,1
+id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
+access_l10n_ma_report_user,l10n_ma_report account user,model_l10n_ma_report,account.group_account_user,1,1,1,1
+access_l10n_ma_line_user,l10n_ma.l10n_ma_line_account user,model_l10n_ma_line,account.group_account_user,1,1,1,1
diff --git a/addons/crm_partner_assign/wizard/crm_merge_opportunity.py b/addons/l10n_multilang/__init__.py
similarity index 56%
rename from addons/crm_partner_assign/wizard/crm_merge_opportunity.py
rename to addons/l10n_multilang/__init__.py
index 3c56fada5a1..446f3beb668 100644
--- a/addons/crm_partner_assign/wizard/crm_merge_opportunity.py
+++ b/addons/l10n_multilang/__init__.py
@@ -18,27 +18,7 @@
# along with this program. If not, see .
#
##############################################################################
-from osv import osv, fields
-from tools.translate import _
-
-
-class crm_merge_opportunity_assign_partner(osv.osv_memory):
- """Merge two Opportunities"""
-
- _inherit = 'crm.merge.opportunity'
-
- def _update_data(self, op_ids, oldest_opp):
- data = super(crm_merge_opportunity_assign_partner, self)._update_data(op_ids, oldest_opp)
-
- new_data = {
- 'partner_latitude': self._get_first_not_null('partner_latitude', op_ids, oldest_opp),
- 'partner_longitude': self._get_first_not_null('partner_longitude', op_ids, oldest_opp),
- 'partner_assigned_id': self._get_first_not_null_id('partner_assigned_id', op_ids, oldest_opp),
- 'date_assign' : self._get_first_not_null('date_assign', op_ids, oldest_opp),
- }
- data.update(new_data)
- return data
-
-crm_merge_opportunity_assign_partner()
+import account
+import l10n_multilang
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/l10n_multilang/__openerp__.py b/addons/l10n_multilang/__openerp__.py
new file mode 100644
index 00000000000..f7c3b4db1d7
--- /dev/null
+++ b/addons/l10n_multilang/__openerp__.py
@@ -0,0 +1,43 @@
+# -*- 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" : "Multi Language Chart of Accounts",
+ "version" : "1.1",
+ "author" : "OpenERP SA",
+ "category": 'Hidden/Dependency',
+ "description": """
+ * Multi language support for Chart of Accounts, Taxes, Tax Codes , Journals, Accounting Templates,
+ Analytic Chart of Accounts and Analytic Journals.
+ * Setup wizard changes
+ - Copy translations for COA, Tax, Tax Code and Fiscal Position from templates to target objects.
+ """,
+ 'website': 'http://www.openerp.com',
+ 'init_xml': [],
+ "depends" : ['account_accountant'],
+ 'update_xml': [
+ ],
+ 'demo_xml': [
+ ],
+ 'installable': True,
+ 'active': False,
+}
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/l10n_multilang/account.py b/addons/l10n_multilang/account.py
new file mode 100644
index 00000000000..162abb0447f
--- /dev/null
+++ b/addons/l10n_multilang/account.py
@@ -0,0 +1,107 @@
+# -*- 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 .
+#
+##############################################################################
+
+
+from osv import fields, osv
+from tools.translate import _
+
+
+#in this file, we mostly add the tag translate=True on existing fields that we now want to be translated
+
+class account_account_template(osv.osv):
+ _inherit = 'account.account.template'
+ _columns = {
+ 'name': fields.char('Name', size=128, required=True, select=True, translate=True),
+ }
+account_account_template()
+
+class account_tax(osv.osv):
+ _inherit = 'account.tax'
+ _columns = {
+ 'name': fields.char('Tax Name', size=128, required=True, select=True, translate=True),
+ }
+account_tax()
+
+
+class account_tax_template(osv.osv):
+ _inherit = 'account.tax.template'
+ _columns = {
+ 'name': fields.char('Tax Name', size=128, required=True, select=True, translate=True),
+ }
+account_tax_template()
+
+
+class account_tax_code_template(osv.osv):
+ _inherit = 'account.tax.code.template'
+ _columns = {
+ 'name': fields.char('Tax Case Name', size=64, required=True, translate=True),
+ }
+account_tax_code_template()
+
+
+class account_chart_template(osv.osv):
+ _inherit = 'account.chart.template'
+ _columns={
+ 'name': fields.char('Name', size=64, required=True, translate=True),
+ 'spoken_languages': fields.char('Spoken Languages', size=64, help="State here the languages for which the translations of templates could be loaded at the time of installation of this localization module and copied in the final object when generating them from templates. You must provide the language codes separated by ';'"),
+ }
+ _order = 'name'
+account_chart_template()
+
+
+class account_fiscal_position(osv.osv):
+ _inherit = 'account.fiscal.position'
+ _columns = {
+ 'name': fields.char('Fiscal Position', size=64, required=True, translate=True),
+ }
+account_fiscal_position()
+
+
+class account_fiscal_position_template(osv.osv):
+ _inherit = 'account.fiscal.position.template'
+ _columns = {
+ 'name': fields.char('Fiscal Position Template', size=64, required=True, translate=True),
+ }
+account_fiscal_position_template()
+
+
+class account_journal(osv.osv):
+ _inherit = 'account.journal'
+ _columns = {
+ 'name': fields.char('Journal Name', size=64, required=True, translate=True),
+ }
+account_journal()
+
+
+class account_analytic_account(osv.osv):
+ _inherit = 'account.analytic.account'
+ _columns = {
+ 'name': fields.char('Account Name', size=128, required=True, translate=True),
+ }
+account_analytic_account()
+
+
+class account_analytic_journal(osv.osv):
+ _inherit = 'account.analytic.journal'
+ _columns = {
+ 'name': fields.char('Journal Name', size=64, required=True, translate=True),
+ }
+account_analytic_journal()
diff --git a/addons/l10n_multilang/l10n_multilang.py b/addons/l10n_multilang/l10n_multilang.py
new file mode 100644
index 00000000000..c4130f2761d
--- /dev/null
+++ b/addons/l10n_multilang/l10n_multilang.py
@@ -0,0 +1,156 @@
+# -*- 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 .
+#
+##############################################################################
+
+from osv import fields, osv
+import os
+from tools.translate import _
+import netsvc
+logger=netsvc.Logger()
+
+class wizard_multi_charts_accounts(osv.osv_memory):
+ """
+ Change wizard that a new account chart for a company.
+ * Add option to install languages during the setup
+ * Copy translations for COA, Tax, Tax Code and Fiscal Position from templates to target objects.
+ """
+ _inherit = 'wizard.multi.charts.accounts'
+
+ def process_translations(self, cr, uid, langs, in_obj, in_field, in_ids, out_obj, out_ids, force_write=False, context=None):
+ """
+ This method copies translations values of templates into new Accounts/Taxes/Journals for languages selected
+
+ :param cr: A database cursor
+ :param uid: ID of the user currently logged in
+ :param langs: List of languages to load for new records
+ :param in_field: Name of the translatable field of source templates
+ :param in_obj: Name of source object of templates.
+ :param in_ids: List of ids of source object
+ :param out_obj: Destination object for which translation is to be copied
+ :param out_ids: List of ids of destination object
+ :param force_write: boolean that depicts if we need to create a translation OR simply replace the actual value
+ with the translation in the uid's language by doing a write (in case it's TRUE)
+ :param context: usual context information. May contain the key 'lang', which is the language of the user running
+ the wizard, that will be used if force_write is True
+
+ :return: True
+ """
+ if context is None:
+ context = {}
+ src = {}
+ xlat_obj = self.pool.get('ir.translation')
+ #find the source from Account Template
+ for x in in_obj.browse(cr, uid, in_ids):
+ src.update({x.id: x.name})
+ for lang in langs:
+ #find the value from Translation
+ value = xlat_obj._get_ids(cr, uid, in_obj._name + ',' + in_field, 'model', lang, in_ids)
+ for j in range(len(in_ids)):
+ in_id = in_ids[j]
+ if value[in_id]:
+ if not force_write:
+ #copy Translation from Source to Destination object
+ xlat_obj.create(cr, uid, {
+ 'name': out_obj._name + ',' + in_field,
+ 'type': 'model',
+ 'res_id': out_ids[j],
+ 'lang': lang,
+ 'src': src[in_id],
+ 'value': value[in_id],
+ })
+ else:
+ #replace the value in the destination object only if it's the user lang
+ if context.get('lang') == lang:
+ self.pool.get(out_obj._name).write(cr, uid, out_ids[j], {in_field: value[in_id]})
+ else:
+ logger.notifyChannel('addons.'+self._name, netsvc.LOG_WARNING,
+ 'Language: %s. Translation from template: there is no translation available for %s!' %(lang, src[in_id]))#out_obj._name))
+ return True
+
+ def execute(self, cr, uid, ids, context=None):
+ res = super(wizard_multi_charts_accounts, self).execute(cr, uid, ids, context=context)
+
+ obj_multi = self.browse(cr, uid, ids[0], context=context)
+ company_id = obj_multi.company_id.id
+
+ # load languages
+ langs = []
+ res_lang_obj = self.pool.get('res.lang')
+ installed_lang_ids = res_lang_obj.search(cr, uid, [])
+ installed_langs = [x.code for x in res_lang_obj.browse(cr, uid, installed_lang_ids, context=context)]
+ if obj_multi.chart_template_id.spoken_languages:
+ for lang in obj_multi.chart_template_id.spoken_languages.split(';'):
+ if lang not in installed_langs:
+ # the language is not installed, so we don't need to load its translations
+ continue
+ else:
+ # the language was already installed, so the po files have been loaded at the installation time
+ # and now we need to copy the translations of templates to the right objects
+ langs.append(lang)
+ if langs:
+ # write account.account translations in the real COA
+ self._process_accounts_translations(cr, uid, obj_multi, company_id, langs, 'name', context=context)
+
+ # copy account.tax.code translations
+ self._process_tax_codes_translations(cr, uid, obj_multi, company_id, langs, 'name', context=context)
+
+ # copy account.tax translations
+ self._process_taxes_translations(cr, uid, obj_multi, company_id, langs, 'name', context=context)
+
+ # copy account.fiscal.position translations
+ self._process_fiscal_pos_translations(cr, uid, obj_multi, company_id, langs, 'name', context=context)
+
+ return res
+
+ def _process_accounts_translations(self, cr, uid, obj_multi, company_id, langs, field, context=None):
+ obj_acc_template = self.pool.get('account.account.template')
+ obj_acc = self.pool.get('account.account')
+ acc_template_root_id = obj_multi.chart_template_id.account_root_id.id
+ acc_root_id = obj_acc.search(cr, uid, [('company_id', '=', company_id), ('parent_id', '=', None)])[0]
+ in_ids = obj_acc_template.search(cr, uid, [('id', 'child_of', [acc_template_root_id])], order='id')[1:]
+ out_ids = obj_acc.search(cr, uid, [('id', 'child_of', [acc_root_id])], order='id')[1:]
+ return self.process_translations(cr, uid, langs, obj_acc_template, field, in_ids, obj_acc, out_ids, force_write=True, context=context)
+
+ def _process_tax_codes_translations(self, cr, uid, obj_multi, company_id, langs, field, context=None):
+ obj_tax_code_template = self.pool.get('account.tax.code.template')
+ obj_tax_code = self.pool.get('account.tax.code')
+ tax_code_template_root_id = obj_multi.chart_template_id.tax_code_root_id.id
+ tax_code_root_id = obj_tax_code.search(cr, uid, [('company_id', '=', company_id), ('parent_id', '=', None)])[0]
+ in_ids = obj_tax_code_template.search(cr, uid, [('id', 'child_of', [tax_code_template_root_id])], order='id')[1:]
+ out_ids = obj_tax_code.search(cr, uid, [('id', 'child_of', [tax_code_root_id])], order='id')[1:]
+ return self.process_translations(cr, uid, langs, obj_tax_code_template, field, in_ids, obj_tax_code, out_ids, force_write=False, context=context)
+
+ def _process_taxes_translations(self, cr, uid, obj_multi, company_id, langs, field, context=None):
+ obj_tax_template = self.pool.get('account.tax.template')
+ obj_tax = self.pool.get('account.tax')
+ in_ids = sorted([x.id for x in obj_multi.chart_template_id.tax_template_ids])
+ out_ids = obj_tax.search(cr, uid, [('company_id', '=', company_id)], order='id')
+ return self.process_translations(cr, uid, langs, obj_tax_template, field, in_ids, obj_tax, out_ids, force_write=False, context=context)
+
+ def _process_fiscal_pos_translations(self, cr, uid, obj_multi, company_id, langs, field, context=None):
+ obj_fiscal_position_template = self.pool.get('account.fiscal.position.template')
+ obj_fiscal_position = self.pool.get('account.fiscal.position')
+ in_ids = obj_fiscal_position_template.search(cr, uid, [('chart_template_id', '=', obj_multi.chart_template_id.id)], order='id')
+ out_ids = obj_fiscal_position.search(cr, uid, [('company_id', '=', company_id)], order='id')
+ return self.process_translations(cr, uid, langs, obj_fiscal_position_template, field, in_ids, obj_fiscal_position, out_ids, force_write=False, context=context)
+
+wizard_multi_charts_accounts()
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/l10n_mx/__openerp__.py b/addons/l10n_mx/__openerp__.py
index d56d5f570b1..aa21d1a6356 100644
--- a/addons/l10n_mx/__openerp__.py
+++ b/addons/l10n_mx/__openerp__.py
@@ -20,7 +20,7 @@
#
##############################################################################
{
- "name" : "Mexico - Chart of Account",
+ "name" : "Mexico - Accounting",
"version" : "1.0",
"author" : "RelTek Mexico",
"category" : "Localization/Account Charts",
diff --git a/addons/l10n_nl/__openerp__.py b/addons/l10n_nl/__openerp__.py
index 5635e16d6c3..562fd0ab876 100644
--- a/addons/l10n_nl/__openerp__.py
+++ b/addons/l10n_nl/__openerp__.py
@@ -86,7 +86,7 @@
# Changed naming of 7020 and 7030 to Kostprijs omzet xxxx
{
- "name" : "Netherlands - Grootboek en BTW rekeningen",
+ "name" : "Netherlands - Accounting",
"version" : "1.5",
"category": "Localization/Account Charts",
"description": """
diff --git a/addons/l10n_pl/__openerp__.py b/addons/l10n_pl/__openerp__.py
index 0ec97ab7cb6..de1784009b5 100644
--- a/addons/l10n_pl/__openerp__.py
+++ b/addons/l10n_pl/__openerp__.py
@@ -21,7 +21,7 @@
#
##############################################################################
{
- "name" : "Poland - Chart of Accounts",
+ "name" : "Poland - Accounting",
"version" : "1.0",
"author" : "Grzegorz Grzelak (Cirrus)",
"website": "http://www.cirrus.pl",
diff --git a/addons/l10n_ro/__openerp__.py b/addons/l10n_ro/__openerp__.py
index 647b4b35449..df441869d72 100644
--- a/addons/l10n_ro/__openerp__.py
+++ b/addons/l10n_ro/__openerp__.py
@@ -20,7 +20,7 @@
#
##############################################################################
{
- "name" : "Romania - Chart of Accounts",
+ "name" : "Romania - Accounting",
"version" : "1.1",
"author" : "filsys",
"website": "http://www.filsystem.ro",
diff --git a/addons/l10n_syscohada/__openerp__.py b/addons/l10n_syscohada/__openerp__.py
index 0fa4631b1f1..7b258a04507 100644
--- a/addons/l10n_syscohada/__openerp__.py
+++ b/addons/l10n_syscohada/__openerp__.py
@@ -20,7 +20,7 @@
##############################################################################
{
- "name" : "OHADA - The accounting chart ",
+ "name" : "OHADA - Accounting",
"version" : "1.0",
"author" : "Baamtu Senegal",
"category" : "Localization/Account Charts",
diff --git a/addons/l10n_th/__openerp__.py b/addons/l10n_th/__openerp__.py
index 4ab8f7d355c..c1534787721 100644
--- a/addons/l10n_th/__openerp__.py
+++ b/addons/l10n_th/__openerp__.py
@@ -20,7 +20,7 @@
##############################################################################
{
- 'name': 'Thailand - Thai Chart of Accounts',
+ 'name': 'Thailand - Accounting',
'version': '1.0',
'category': 'Localization/Account Charts',
'description': """
diff --git a/addons/l10n_uk/__openerp__.py b/addons/l10n_uk/__openerp__.py
index f6e253fffc2..f6e8212aed0 100644
--- a/addons/l10n_uk/__openerp__.py
+++ b/addons/l10n_uk/__openerp__.py
@@ -20,7 +20,7 @@
{
- 'name': 'UK Chart of Accounts - latest (Smartode/CT600)',
+ 'name': 'UK - Accounting',
'version': '1.0',
'category': 'Localization/Account Charts',
'description': """This is the latest UK OpenERP localisation necesary to run OpenERP accounting for UK SME's with:
diff --git a/addons/l10n_uk/l10n_uk_wizard.xml b/addons/l10n_uk/l10n_uk_wizard.xml
index b7da2ee5c6b..b4f96afc700 100644
--- a/addons/l10n_uk/l10n_uk_wizard.xml
+++ b/addons/l10n_uk/l10n_uk_wizard.xml
@@ -34,7 +34,7 @@
10
- onskip
+ once
open
diff --git a/addons/l10n_ve/__openerp__.py b/addons/l10n_ve/__openerp__.py
index 45ac68fc105..ce44be32771 100644
--- a/addons/l10n_ve/__openerp__.py
+++ b/addons/l10n_ve/__openerp__.py
@@ -23,7 +23,7 @@
#
##############################################################################
{
- "name" : "Venezuela -Chart of Account",
+ "name" : "Venezuela - Accounting",
"version" : "1.0",
"author" : ['OpenERP SA', "Netquatro"],
"category" : "Localization/Account Charts",
diff --git a/addons/lunch/__openerp__.py b/addons/lunch/__openerp__.py
index 6d5cd576912..363b0b3a2c2 100644
--- a/addons/lunch/__openerp__.py
+++ b/addons/lunch/__openerp__.py
@@ -20,7 +20,7 @@
##############################################################################
{
- "name": "Lunch",
+ "name": "Lunch Orders",
"author": "OpenERP SA",
'complexity': "easy",
"Description": """
@@ -33,7 +33,7 @@
""",
"version": "0.1",
"depends": ["base_tools"],
- "category" : "Human Resources",
+ "category" : "Tools",
'description': """
The base module to manage lunch
diff --git a/addons/lunch/security/ir.model.access.csv b/addons/lunch/security/ir.model.access.csv
index 59670a8d1b1..72c06cceb2b 100644
--- a/addons/lunch/security/ir.model.access.csv
+++ b/addons/lunch/security/ir.model.access.csv
@@ -1,8 +1,8 @@
-"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
-"access_lunch_order_user","lunch.order user","model_lunch_order","base.group_tool_user",1,1,1,1
-"access_lunch_cashmove_user","lunch.cashmove user","model_lunch_cashmove","base.group_tool_user",1,1,1,1
-"access_report_lunch_amount_manager","report.lunch.amount manager","model_report_lunch_amount","base.group_tool_manager",1,1,1,1
-"access_lunch_category_manager","lunch.category.user","model_lunch_category","base.group_tool_user",1,1,1,1
-"access_report_lunch_order_manager","report.lunch.order manager","model_report_lunch_order","base.group_tool_manager",1,1,1,1
-"access_lunch_product_user","lunch.product user","model_lunch_product","base.group_tool_user",1,1,1,1
-"access_lunch_cashbox_user","lunch.cashbox user","model_lunch_cashbox","base.group_tool_user",1,1,1,1
+id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
+access_lunch_order_user,lunch.order user,model_lunch_order,base.group_tool_user,1,1,1,1
+access_lunch_cashmove_user,lunch.cashmove user,model_lunch_cashmove,base.group_tool_user,1,1,1,1
+access_report_lunch_amount_manager,report.lunch.amount manager,model_report_lunch_amount,base.group_tool_manager,1,1,1,1
+access_lunch_category_manager,lunch.category.user,model_lunch_category,base.group_tool_user,1,1,1,1
+access_report_lunch_order_manager,report.lunch.order manager,model_report_lunch_order,base.group_tool_manager,1,1,1,1
+access_lunch_product_user,lunch.product user,model_lunch_product,base.group_tool_user,1,1,1,1
+access_lunch_cashbox_user,lunch.cashbox user,model_lunch_cashbox,base.group_tool_user,1,1,1,1
diff --git a/addons/lunch/security/lunch_security.xml b/addons/lunch/security/lunch_security.xml
index e84cdb41c0d..7d665c96435 100644
--- a/addons/lunch/security/lunch_security.xml
+++ b/addons/lunch/security/lunch_security.xml
@@ -3,10 +3,12 @@
- Tools / User
+ User
+
- Tools / Manager
+ Manager
+
diff --git a/addons/mail/__openerp__.py b/addons/mail/__openerp__.py
index 1cb97ce182e..8f4833c294f 100644
--- a/addons/mail/__openerp__.py
+++ b/addons/mail/__openerp__.py
@@ -20,9 +20,9 @@
##############################################################################
{
- 'name': 'Email Subsystem',
+ 'name': 'Emails Management',
'version': '1.0',
- 'category': 'Hidden',
+ 'category': 'Hidden/Dependency',
'complexity': "easy",
'description': """
A generic email subsystem with message storage and queuing
diff --git a/addons/mail/mail_message.py b/addons/mail/mail_message.py
index 159259f151d..fd00135816e 100644
--- a/addons/mail/mail_message.py
+++ b/addons/mail/mail_message.py
@@ -380,12 +380,16 @@ class mail_message(osv.osv):
if 'To' in fields:
msg['to'] = decode(msg_txt.get('To'))
+
if 'Delivered-To' in fields:
msg['to'] = decode(msg_txt.get('Delivered-To'))
if 'CC' in fields:
msg['cc'] = decode(msg_txt.get('CC'))
+ if 'Cc' in fields:
+ msg['cc'] = decode(msg_txt.get('Cc'))
+
if 'Reply-To' in fields:
msg['reply'] = decode(msg_txt.get('Reply-To'))
@@ -455,6 +459,7 @@ class mail_message(osv.osv):
msg['sub_type'] = msg['subtype'] or 'plain'
return msg
+
def send(self, cr, uid, ids, auto_commit=False, context=None):
"""Sends the selected emails immediately, ignoring their current
state (mails that have already been sent should not be passed
diff --git a/addons/mail/mail_message_view.xml b/addons/mail/mail_message_view.xml
index 3169bca76c2..2bf2756869e 100644
--- a/addons/mail/mail_message_view.xml
+++ b/addons/mail/mail_message_view.xml
@@ -136,6 +136,7 @@
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/addons/mail/security/ir.model.access.csv b/addons/mail/security/ir.model.access.csv
index b508cd68d83..42c70da9f19 100644
--- a/addons/mail/security/ir.model.access.csv
+++ b/addons/mail/security/ir.model.access.csv
@@ -1,3 +1,3 @@
-"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
-"access_mail_message","mail.message","model_mail_message",,1,0,0,0
-"access_mail_thread","mail.thread","model_mail_thread",,1,0,0,0
+id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
+access_mail_message,mail.message,model_mail_message,,1,0,0,0
+access_mail_thread,mail.thread,model_mail_thread,,1,0,0,0
diff --git a/addons/mail/wizard/mail_compose_message.py b/addons/mail/wizard/mail_compose_message.py
index 93bf0b004d8..f5906d2b186 100644
--- a/addons/mail/wizard/mail_compose_message.py
+++ b/addons/mail/wizard/mail_compose_message.py
@@ -236,7 +236,7 @@ class mail_compose_message(osv.osv_memory):
attachments=attachment, references=references, res_id=int(mail.res_id),
subtype=mail.subtype, headers=headers, context=context)
# in normal mode, we send the email immediately, as the user expects us to (delay should be sufficiently small)
- mail_message.send(cr, uid, [msg_id], context)
+ mail_message.send(cr, uid, [msg_id], context=context)
return {'type': 'ir.actions.act_window_close'}
diff --git a/addons/marketing/__openerp__.py b/addons/marketing/__openerp__.py
index 1f1995c52da..31d50dc61ac 100644
--- a/addons/marketing/__openerp__.py
+++ b/addons/marketing/__openerp__.py
@@ -25,7 +25,7 @@
"version" : "1.1",
"depends" : ["base", "base_setup"],
"author" : "OpenERP SA",
- "category": 'Marketing',
+ "category": 'Hidden/Dependency',
'complexity': "expert",
"description": """
Menu for Marketing.
diff --git a/addons/marketing/security/ir.model.access.csv b/addons/marketing/security/ir.model.access.csv
index 0343f29f43a..4a08a4aa60d 100644
--- a/addons/marketing/security/ir.model.access.csv
+++ b/addons/marketing/security/ir.model.access.csv
@@ -1 +1 @@
-"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
+id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
diff --git a/addons/marketing/security/marketing_security.xml b/addons/marketing/security/marketing_security.xml
index 344e562eb67..d04473da8bf 100644
--- a/addons/marketing/security/marketing_security.xml
+++ b/addons/marketing/security/marketing_security.xml
@@ -2,11 +2,13 @@
- Marketing / User
+ User
+
- Marketing / Manager
+ Manager
+
diff --git a/addons/marketing_campaign/security/ir.model.access.csv b/addons/marketing_campaign/security/ir.model.access.csv
index b0157b76c51..9e54e06c5b1 100644
--- a/addons/marketing_campaign/security/ir.model.access.csv
+++ b/addons/marketing_campaign/security/ir.model.access.csv
@@ -1,21 +1,21 @@
-"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
-"access_marketing_campaign_admin","marketing.campaign","model_marketing_campaign","marketing.group_marketing_user",1,1,0,0
-"access_marketing_campaign_segment_campaignadmin","marketing.campaign.segment","model_marketing_campaign_segment","marketing.group_marketing_user",1,1,0,0
-"access_marketing_campaign_activity_campaignadmin","marketing.campaign.activity","model_marketing_campaign_activity","marketing.group_marketing_user",1,1,0,0
-"access_marketing_campaign_workitem_campaignadmin","marketing.campaign.workitem","model_marketing_campaign_workitem","marketing.group_marketing_user",1,1,0,0
-"access_marketing_campaign_transition_campaignadmin","marketing.campaign.transition","model_marketing_campaign_transition","marketing.group_marketing_user",1,1,0,0
-"access_marketing_campaign_analysis_campaignadmin","campaign.analysis","model_campaign_analysis","marketing.group_marketing_user",1,1,0,0
-"access_marketing_campaign_workitem_all","marketing.campaign.workitem","model_marketing_campaign_workitem","base.group_user",1,0,0,0
-"access_email_template_user","email.template","model_email_template","marketing.group_marketing_user",1,1,0,0
-"access_email_template_account_user","ir.mail_server","base.model_ir_mail_server","marketing.group_marketing_user",1,1,0,0
-"access_marketing_campaign_system","marketing.campaign system","model_marketing_campaign","base.group_system",1,0,0,0
-"access_marketing_campaign_segment_system","marketing.campaign.segment system","model_marketing_campaign_segment","base.group_system",1,0,0,0
-"access_marketing_campaign_workitem_system","marketing.campaign.workitem system","model_marketing_campaign_workitem","base.group_system",1,0,0,0
-"access_marketing_campaign_manager","marketing.campaign","model_marketing_campaign","marketing.group_marketing_manager",1,1,1,1
-"access_marketing_campaign_segment_campaign_manager","marketing.campaign.segment","model_marketing_campaign_segment","marketing.group_marketing_manager",1,1,1,1
-"access_marketing_campaign_activity_campaign_manager","marketing.campaign.activity","model_marketing_campaign_activity","marketing.group_marketing_manager",1,1,1,1
-"access_marketing_campaign_workitem_campaign_manager","marketing.campaign.workitem","model_marketing_campaign_workitem","marketing.group_marketing_manager",1,1,1,1
-"access_marketing_campaign_transition_campaign_manager","marketing.campaign.transition","model_marketing_campaign_transition","marketing.group_marketing_manager",1,1,1,1
-"access_marketing_campaign_analysis_campaign_manager","campaign.analysis","model_campaign_analysis","marketing.group_marketing_manager",1,1,1,1
-"access_email_template_manager","email.template","model_email_template","marketing.group_marketing_manager",1,1,1,1
-"access_email_template_account_manager","ir.mail_server","base.model_ir_mail_server","marketing.group_marketing_manager",1,1,1,1
+id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
+access_marketing_campaign_admin,marketing.campaign,model_marketing_campaign,marketing.group_marketing_user,1,1,0,0
+access_marketing_campaign_segment_campaignadmin,marketing.campaign.segment,model_marketing_campaign_segment,marketing.group_marketing_user,1,1,0,0
+access_marketing_campaign_activity_campaignadmin,marketing.campaign.activity,model_marketing_campaign_activity,marketing.group_marketing_user,1,1,0,0
+access_marketing_campaign_workitem_campaignadmin,marketing.campaign.workitem,model_marketing_campaign_workitem,marketing.group_marketing_user,1,1,0,0
+access_marketing_campaign_transition_campaignadmin,marketing.campaign.transition,model_marketing_campaign_transition,marketing.group_marketing_user,1,1,0,0
+access_marketing_campaign_analysis_campaignadmin,campaign.analysis,model_campaign_analysis,marketing.group_marketing_user,1,1,0,0
+access_marketing_campaign_workitem_all,marketing.campaign.workitem,model_marketing_campaign_workitem,base.group_user,1,0,0,0
+access_email_template_user,email.template,model_email_template,marketing.group_marketing_user,1,1,0,0
+access_email_template_account_user,ir.mail_server,base.model_ir_mail_server,marketing.group_marketing_user,1,1,0,0
+access_marketing_campaign_system,marketing.campaign system,model_marketing_campaign,base.group_system,1,0,0,0
+access_marketing_campaign_segment_system,marketing.campaign.segment system,model_marketing_campaign_segment,base.group_system,1,0,0,0
+access_marketing_campaign_workitem_system,marketing.campaign.workitem system,model_marketing_campaign_workitem,base.group_system,1,0,0,0
+access_marketing_campaign_manager,marketing.campaign,model_marketing_campaign,marketing.group_marketing_manager,1,1,1,1
+access_marketing_campaign_segment_campaign_manager,marketing.campaign.segment,model_marketing_campaign_segment,marketing.group_marketing_manager,1,1,1,1
+access_marketing_campaign_activity_campaign_manager,marketing.campaign.activity,model_marketing_campaign_activity,marketing.group_marketing_manager,1,1,1,1
+access_marketing_campaign_workitem_campaign_manager,marketing.campaign.workitem,model_marketing_campaign_workitem,marketing.group_marketing_manager,1,1,1,1
+access_marketing_campaign_transition_campaign_manager,marketing.campaign.transition,model_marketing_campaign_transition,marketing.group_marketing_manager,1,1,1,1
+access_marketing_campaign_analysis_campaign_manager,campaign.analysis,model_campaign_analysis,marketing.group_marketing_manager,1,1,1,1
+access_email_template_manager,email.template,model_email_template,marketing.group_marketing_manager,1,1,1,1
+access_email_template_account_manager,ir.mail_server,base.model_ir_mail_server,marketing.group_marketing_manager,1,1,1,1
diff --git a/addons/marketing_campaign_crm_demo/__openerp__.py b/addons/marketing_campaign_crm_demo/__openerp__.py
index 4841cc1a2e8..a47ac040656 100644
--- a/addons/marketing_campaign_crm_demo/__openerp__.py
+++ b/addons/marketing_campaign_crm_demo/__openerp__.py
@@ -21,13 +21,13 @@
{
- "name" : "Demo data for Marketing Campaign",
+ "name" : "Marketing Campaign - Demo",
"version" : "1.0",
"depends" : ["marketing_campaign",
"crm",
],
"author" : "OpenERP SA",
- "category": 'Hidden',
+ "category": 'Marketing',
"description": """
Demo data for the module marketing_campaign.
============================================
diff --git a/addons/marketing_campaign_crm_demo/marketing_campaign_demo.xml b/addons/marketing_campaign_crm_demo/marketing_campaign_demo.xml
index ee11fbcdb75..abf29f2c011 100644
--- a/addons/marketing_campaign_crm_demo/marketing_campaign_demo.xml
+++ b/addons/marketing_campaign_crm_demo/marketing_campaign_demo.xml
@@ -34,137 +34,113 @@
- Thanks for showing interest in OpenERP
- info@tinyerp.com
-
+ Thanks for showing interest in OpenERP
+ info@tinyerp.com
-
-
- Hello,Thanks for generous interest you have shown in the openERP.Regards,OpenERP Team,
- mako
+
+
+ Hello,Thanks for generous interest you have shown in the openERP.Regards,OpenERP Team,
For OpenERP OnDemand Free Trial 2010
- crm.lead
- Propose to subscribe to the OpenERP Discovery Day on May 2010
- info@tinyerp.com
-
+ Propose to subscribe to the OpenERP Discovery Day on May 2010
+ info@tinyerp.com
-
-
- Hello,We have very good offer that might suit you.
+
+
+ Hello,We have very good offer that might suit you.
We propose you to subscribe to the OpenERP Discovery Day on May 2010.
If any further information required kindly revert back.
We really appreciate your co-operation on this.
Regards,OpenERP Team,
- mako
For OpenERP Discovery Day on May 2010
- crm.lead
- Thanks for subscribing to the OpenERP Discovery Day
- info@tinyerp.com
-
+ Thanks for subscribing to the OpenERP Discovery Day
+ info@tinyerp.com
-
-
- Hello,Thanks for showing intrest and for subscribing to the OpenERP Discovery Day.
+
+
+ Hello,Thanks for showing intrest and for subscribing to the OpenERP Discovery Day.
If any further information required kindly revert back.
I really appreciate your co-operation on this.
Regards,OpenERP Team,
- mako
For OpenERP Discovery Day
- crm.lead
- Thanks for buying the OpenERP book
- info@tinyerp.com
-
+ Thanks for buying the OpenERP book
+ info@tinyerp.com
-
-
- Hello,Thanks for showing intrest and buying the OpenERP book.
+
+
+ Hello,Thanks for showing intrest and buying the OpenERP book.
If any further information required kindly revert back.
I really appreciate your co-operation on this.
Regards,OpenERP Team,
- mako
For OpenERP book
- crm.lead
- Propose a free technical training to Gold partners
- info@tinyerp.com
-
+ Propose a free technical training to Gold partners
+ info@tinyerp.com
-
-
- Hello, We have very good offer that might suit you.
+
+
+ Hello, We have very good offer that might suit you.
For our gold partners,We are arranging free technical training on june,2010.
If any further information required kindly revert back.
I really appreciate your co-operation on this.
Regards,OpenERP Team,
- mako
For technical training to Gold partners
- crm.lead
- Propose paid training to Silver partners
- info@tinyerp.com
-
+ Propose paid training to Silver partners
+ info@tinyerp.com
-
-
- Hello, We have very good offer that might suit you.
+
+
+ Hello, We have very good offer that might suit you.
For our silver partners,We are paid technical training on june,2010.
If any further information required kindly revert back.
I really appreciate your co-operation on this.
Regards,OpenERP Team,
- mako
For training to Silver partners
- crm.lead
- Propose gold partnership to silver partners
- info@tinyerp.com
-
+ Propose gold partnership to silver partners
+ info@tinyerp.com
-
-
- Hello, We have very good offer that might suit you.
+
+
+ Hello, We have very good offer that might suit you.
For our silver partners,We are offering Gold partnership.
If any further information required kindly revert back.
I really appreciate your co-operation on this.
Regards,OpenERP Team,
- mako
For gold partnership to silver partners
- crm.lead
- Thanks for subscribing to technical training
- info@tinyerp.com
-
+ Thanks for subscribing to technical training
+ info@tinyerp.com
-
-
- Hello, Thanks for showing intrest and for subscribing to technical training.If any further information required kindly revert back.I really appreciate your co-operation on this.
+
+
+ Hello, Thanks for showing intrest and for subscribing to technical training.If any further information required kindly revert back.I really appreciate your co-operation on this.
Regards,OpenERP Team,
- mako
For subscribing to technical training
- crm.lead
diff --git a/addons/membership/__openerp__.py b/addons/membership/__openerp__.py
index 20d01b6a60e..0012ec2d0b4 100644
--- a/addons/membership/__openerp__.py
+++ b/addons/membership/__openerp__.py
@@ -21,9 +21,9 @@
{
- 'name': 'Membership',
+ 'name': 'Membership Management',
'version': '0.1',
- 'category': 'Hidden',
+ 'category': 'Association',
'description': """
This module allows you to manage all operations for managing memberships.
=========================================================================
diff --git a/addons/membership/i18n/cs.po b/addons/membership/i18n/cs.po
index c8e38a4a997..14aad66209a 100644
--- a/addons/membership/i18n/cs.po
+++ b/addons/membership/i18n/cs.po
@@ -4,77 +4,78 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: OpenERP Server 6.0dev\n"
+"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2011-01-11 11:15+0000\n"
-"PO-Revision-Date: 2009-09-30 08:29+0000\n"
-"Last-Translator: Kuvaly [LCT] \n"
-"Language-Team: \n"
+"PO-Revision-Date: 2011-11-25 12:33+0000\n"
+"Last-Translator: Jiří Hajda \n"
+"Language-Team: Czech \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-11-05 04:59+0000\n"
-"X-Generator: Launchpad (build 14231)\n"
+"X-Launchpad-Export-Date: 2011-11-26 05:49+0000\n"
+"X-Generator: Launchpad (build 14381)\n"
+"X-Poedit-Language: Czech\n"
#. module: membership
#: model:process.transition,name:membership.process_transition_invoicetoassociate0
msgid "invoice to associate"
-msgstr ""
+msgstr "faktura k přidružení"
#. module: membership
#: model:process.process,name:membership.process_process_membershipprocess0
msgid "Membership Process"
-msgstr ""
+msgstr "Proces členství"
#. module: membership
#: selection:membership.membership_line,state:0
#: selection:report.membership,membership_state:0
#: selection:res.partner,membership_state:0
msgid "Paid Member"
-msgstr ""
+msgstr "Zaplacený člen"
#. module: membership
#: view:report.membership:0
#: view:res.partner:0
msgid "Group By..."
-msgstr ""
+msgstr "Seskupit podle..."
#. module: membership
#: field:report.membership,num_paid:0
msgid "# Paid"
-msgstr ""
+msgstr "# Zaplaceno"
#. module: membership
#: field:report.membership,tot_earned:0
msgid "Earned Amount"
-msgstr ""
+msgstr "Vydělaná částka"
#. module: membership
#: model:ir.model,name:membership.model_report_membership
msgid "Membership Analysis"
-msgstr ""
+msgstr "Analýza členství"
#. module: membership
#: selection:report.membership,month:0
msgid "March"
-msgstr ""
+msgstr "Březen"
#. module: membership
#: model:process.node,note:membership.process_node_setassociation0
msgid "Set an associate member of partner."
-msgstr ""
+msgstr "Nastavit přidruženého člena k partnerovi"
#. module: membership
#: model:process.transition,note:membership.process_transition_invoicetopaid0
msgid "Invoice is be paid."
-msgstr ""
+msgstr "Faktura je zaplacena"
#. module: membership
#: field:membership.membership_line,company_id:0
#: view:report.membership:0
#: field:report.membership,company_id:0
msgid "Company"
-msgstr ""
+msgstr "Společnost"
#. module: membership
#: field:product.product,membership_date_to:0
@@ -84,84 +85,84 @@ msgstr "Datum do"
#. module: membership
#: model:process.transition,name:membership.process_transition_waitingtoinvoice0
msgid "Waiting to invoice"
-msgstr ""
+msgstr "Čekající na fakturu"
#. module: membership
#: help:report.membership,date_to:0
msgid "End membership date"
-msgstr ""
+msgstr "Datum ukončení členství"
#. module: membership
#: view:res.partner:0
msgid "Suppliers"
-msgstr ""
+msgstr "Dodavatelé"
#. module: membership
#: view:res.partner:0
msgid "All Members"
-msgstr ""
+msgstr "Všichni členové"
#. module: membership
#: field:res.partner,membership_stop:0
msgid "Stop membership date"
-msgstr ""
+msgstr "Datum pozastavení členství"
#. module: membership
#: model:process.transition,name:membership.process_transition_producttomember0
msgid "Product to member"
-msgstr ""
+msgstr "Výrobek pro člena"
#. module: membership
#: model:ir.actions.act_window,name:membership.action_membership_invoice_view
#: view:res.partner:0
msgid "Join Membership"
-msgstr ""
+msgstr "Připojit členství"
#. module: membership
#: field:res.partner,associate_member:0
msgid "Associate member"
-msgstr ""
+msgstr "Přidružený člen"
#. module: membership
#: model:process.node,note:membership.process_node_associatedmember0
msgid "Member is associated."
-msgstr ""
+msgstr "Člen je přidružený."
#. module: membership
#: field:report.membership,tot_pending:0
msgid "Pending Amount"
-msgstr ""
+msgstr "Čekající částka"
#. module: membership
#: model:process.transition,note:membership.process_transition_associationpartner0
msgid "Associated partner."
-msgstr ""
+msgstr "Přidruženého partnera"
#. module: membership
#: field:report.membership,num_invoiced:0
msgid "# Invoiced"
-msgstr ""
+msgstr "# Fakturováno"
#. module: membership
#: model:ir.ui.menu,name:membership.menu_report_membership
msgid "Members Analysis"
-msgstr ""
+msgstr "Analýza členů"
#. module: membership
#: view:res.partner:0
msgid "End Membership Date"
-msgstr ""
+msgstr "Datum ukončení členství"
#. module: membership
#: field:product.product,membership_date_from:0
msgid "Date from"
-msgstr ""
+msgstr "Počáteční datum"
#. module: membership
#: code:addons/membership/membership.py:414
#, python-format
msgid "Partner doesn't have an address to make the invoice."
-msgstr ""
+msgstr "Partner nemá adresu pro vytvoření faktury."
#. module: membership
#: model:ir.model,name:membership.model_res_partner
@@ -172,7 +173,7 @@ msgstr "Partner"
#. module: membership
#: model:process.transition,name:membership.process_transition_invoicetopaid0
msgid "Invoice to paid"
-msgstr ""
+msgstr "Faktura k zaplacení"
#. module: membership
#: view:res.partner:0
@@ -182,12 +183,12 @@ msgstr "Partneři"
#. module: membership
#: field:membership.membership_line,date_from:0
msgid "From"
-msgstr ""
+msgstr "Od"
#. module: membership
#: constraint:membership.membership_line:0
msgid "Error, this membership product is out of date"
-msgstr ""
+msgstr "Chyba, tento výrobek členství je zastaralý"
#. module: membership
#: help:res.partner,membership_state:0
@@ -206,6 +207,15 @@ msgid ""
" -Paid Member: A member who has paid the membership "
"amount."
msgstr ""
+"Označuje stav členství.\n"
+" -Nečlen: Člen, který nepožádál o žádné členství.\n"
+" -Zrušené členství: Člen, který má zrušené své členství.\n"
+" -Starý člen: Člen, kterému vypršelo členství.\n"
+" -Čekající člen: Člen, který požádal o členství, a "
+"kterému bude vytvořena faktura.\n"
+" -Fakturovaný člen: Člen, kterému byla vytvořena "
+"faktura.\n"
+" -Placený člen: Člen, který zaplatil částku za členství."
#. module: membership
#: model:process.transition.action,name:membership.process_transition_action_create0
@@ -215,30 +225,30 @@ msgstr "Vytvořit"
#. module: membership
#: model:ir.model,name:membership.model_membership_membership_line
msgid "Member line"
-msgstr ""
+msgstr "Řádek člena"
#. module: membership
#: help:report.membership,date_from:0
#: field:res.partner,membership_start:0
msgid "Start membership date"
-msgstr ""
+msgstr "Počáteční datum členství"
#. module: membership
#: code:addons/membership/membership.py:410
#: code:addons/membership/membership.py:413
#, python-format
msgid "Error !"
-msgstr ""
+msgstr "Chyba !"
#. module: membership
#: model:process.node,name:membership.process_node_paidmember0
msgid "Paid member"
-msgstr ""
+msgstr "Zaplacený člen"
#. module: membership
#: field:report.membership,num_waiting:0
msgid "# Waiting"
-msgstr ""
+msgstr "# Čekající"
#. module: membership
#: model:ir.actions.act_window,name:membership.action_membership_members
@@ -252,22 +262,22 @@ msgstr "Členové"
#: selection:report.membership,membership_state:0
#: selection:res.partner,membership_state:0
msgid "Non Member"
-msgstr ""
+msgstr "Nečlen"
#. module: membership
#: model:process.node,note:membership.process_node_invoicedmember0
msgid "Open invoice."
-msgstr ""
+msgstr "Otevřít fakturu"
#. module: membership
#: selection:report.membership,month:0
msgid "July"
-msgstr ""
+msgstr "Červenec"
#. module: membership
#: model:product.template,name:membership.membership_0_product_template
msgid "Golden Membership"
-msgstr ""
+msgstr "Zlaté členství"
#. module: membership
#: help:res.partner,associate_member:0
@@ -275,79 +285,81 @@ msgid ""
"A member with whom you want to associate your membership.It will consider "
"the membership state of the associated member."
msgstr ""
+"Člen, s kterým chcete asociovat vaše členství. Vezme v úvahu stav členství "
+"asociovaného člena."
#. module: membership
#: field:membership.membership_line,membership_id:0
#: view:report.membership:0
#: field:report.membership,membership_id:0
msgid "Membership Product"
-msgstr ""
+msgstr "Výrobek členství"
#. module: membership
#: model:process.transition,note:membership.process_transition_producttomember0
msgid "Define product for membership."
-msgstr ""
+msgstr "Určit výrobek pro členství."
#. module: membership
#: model:process.transition,note:membership.process_transition_invoicetoassociate0
msgid "Invoiced member may be Associated member."
-msgstr ""
+msgstr "Fakturovaný člen může být přidružený člen."
#. module: membership
#: view:membership.invoice:0
msgid "Join"
-msgstr ""
+msgstr "Připojit"
#. module: membership
#: help:product.product,membership_date_to:0
#: help:res.partner,membership_stop:0
msgid "Date until which membership remains active."
-msgstr ""
+msgstr "Datum, do kterého členství zůstává aktivní."
#. module: membership
#: view:product.product:0
msgid "Membership products"
-msgstr ""
+msgstr "Výrobky členství"
#. module: membership
#: field:membership.membership_line,date:0
msgid "Join Date"
-msgstr ""
+msgstr "Datum připojení"
#. module: membership
#: help:res.partner,free_member:0
msgid "Select if you want to give membership free of cost."
-msgstr ""
+msgstr "Vyberte, pokud chcete dát členovi cenu zdarma."
#. module: membership
#: model:process.node,name:membership.process_node_setassociation0
msgid "Set association"
-msgstr ""
+msgstr "Nastavit přiřazení"
#. module: membership
#: view:res.partner:0
msgid " Membership State"
-msgstr ""
+msgstr " Stav členství"
#. module: membership
#: view:res.partner:0
msgid "Memberships"
-msgstr ""
+msgstr "Členství"
#. module: membership
#: model:process.node,note:membership.process_node_paidmember0
msgid "Membership invoice paid."
-msgstr ""
+msgstr "Faktura členství zaplacena."
#. module: membership
#: model:ir.model,name:membership.model_product_template
msgid "Product Template"
-msgstr ""
+msgstr "Šablona výrobku"
#. module: membership
#: selection:report.membership,month:0
msgid "September"
-msgstr ""
+msgstr "Září"
#. module: membership
#: model:ir.module.module,description:membership.module_meta_information
@@ -365,11 +377,23 @@ msgid ""
"invoice and send propositions for membership renewal.\n"
" "
msgstr ""
+"\n"
+"Tento modul vám umožňuje spravovat všechny operace pro správu členství.\n"
+"Podporuje různé druhy členství:\n"
+"* volné členství\n"
+"* Přidružený člen (ex: skupinové zapsání pro členství pro všechnyl\n"
+" pobočjy)\n"
+"* Zaplacený člen,\n"
+"* Speciální ceny členů, ...\n"
+"\n"
+"Je integrován s prodejem a účetnictvím, aby vám umožnil automaticky\n"
+"fakturovat a odesílat návrhy pro obnovení členství.\n"
+" "
#. module: membership
#: model:ir.model,name:membership.model_account_invoice_line
msgid "Invoice Line"
-msgstr ""
+msgstr "Řádek faktury"
#. module: membership
#: help:membership.membership_line,state:0
@@ -388,74 +412,85 @@ msgid ""
" -Paid Member: A member who has paid the membership "
"amount."
msgstr ""
+"Označuje stav členství.\n"
+" -Nečlen: Člen, který nepožádál o žádné členství.\n"
+" -Zrušené členství: Člen, který má zrušené své "
+"členství.\n"
+" -Starý člen: Člen, kterému vypršelo členství.\n"
+" -Čekající člen: Člen, který požádal o členství, a "
+"kterému bude vytvořena faktura.\n"
+" -Fakturovaný člen: Člen, kterému byla vytvořena "
+"faktura.\n"
+" -Placený člen: Člen, který zaplatil částku za "
+"členství."
#. module: membership
#: view:report.membership:0
#: field:report.membership,month:0
msgid "Month"
-msgstr ""
+msgstr "Měsíc"
#. module: membership
#: view:product.product:0
msgid "Group by..."
-msgstr ""
+msgstr "Seskupit podle..."
#. module: membership
#: code:addons/membership/membership.py:411
#, python-format
msgid "Partner is a free Member."
-msgstr ""
+msgstr "Partner je volný člen."
#. module: membership
#: model:product.pricelist,name:membership.list1m
msgid "Member Sale Pricelist"
-msgstr ""
+msgstr "Prodejní ceník člena"
#. module: membership
#: field:report.membership,associate_member_id:0
#: view:res.partner:0
msgid "Associate Member"
-msgstr ""
+msgstr "Přiřadit člena"
#. module: membership
#: help:product.product,membership_date_from:0
#: help:res.partner,membership_start:0
msgid "Date from which membership becomes active."
-msgstr ""
+msgstr "Datum, od kterého se stává členství aktivním."
#. module: membership
#: view:report.membership:0
msgid "Associated Partner"
-msgstr ""
+msgstr "Přidruženého partnera"
#. module: membership
#: model:ir.model,name:membership.model_membership_invoice
#: view:membership.invoice:0
msgid "Membership Invoice"
-msgstr ""
+msgstr "Členská faktura"
#. module: membership
#: view:report.membership:0
#: field:report.membership,user_id:0
#: view:res.partner:0
msgid "Salesman"
-msgstr ""
+msgstr "Obchodník"
#. module: membership
#: model:process.node,note:membership.process_node_membershipproduct0
msgid "Define membership product."
-msgstr ""
+msgstr "Určit výrobek členství."
#. module: membership
#: view:product.product:0
msgid "Category"
-msgstr ""
+msgstr "Kategorie"
#. module: membership
#: model:ir.model,name:membership.model_account_invoice
#: field:membership.membership_line,account_invoice_id:0
msgid "Invoice"
-msgstr ""
+msgstr "Faktura"
#. module: membership
#: selection:membership.membership_line,state:0
@@ -467,70 +502,70 @@ msgstr "Volný člen"
#. module: membership
#: model:product.pricelist.version,name:membership.ver1m
msgid "Member Sale Pricelist Version"
-msgstr ""
+msgstr "Verze prodejního ceníku člena"
#. module: membership
#: constraint:product.template:0
msgid ""
"Error: The default UOM and the purchase UOM must be in the same category."
-msgstr ""
+msgstr "Chyba: Výchozí MJ a nákupní MJ musí být ve stejné kategorii."
#. module: membership
#: view:report.membership:0
msgid "Forecast"
-msgstr ""
+msgstr "Předpověď"
#. module: membership
#: field:report.membership,partner_id:0
msgid "Member"
-msgstr ""
+msgstr "Člen"
#. module: membership
#: constraint:res.partner:0
msgid "Error ! You can not create recursive associated members."
-msgstr ""
+msgstr "Chyba ! Nemůžete vytvořit rekurzivní asociované členy."
#. module: membership
#: view:product.product:0
msgid "Date From"
-msgstr ""
+msgstr "Datum od"
#. module: membership
#: model:process.node,name:membership.process_node_associatedmember0
msgid "Associated member"
-msgstr ""
+msgstr "Přiřazený člen"
#. module: membership
#: view:product.product:0
msgid "Accounting Info"
-msgstr ""
+msgstr "Účetní informace"
#. module: membership
#: field:res.partner,membership_cancel:0
msgid "Cancel membership date"
-msgstr ""
+msgstr "Datum zrušení členství"
#. module: membership
#: view:res.partner:0
msgid "Customers"
-msgstr ""
+msgstr "Zákazníci"
#. module: membership
#: selection:report.membership,month:0
msgid "August"
-msgstr ""
+msgstr "Srpen"
#. module: membership
#: model:ir.actions.act_window,name:membership.action_membership_products
#: model:ir.ui.menu,name:membership.menu_membership_products
#: view:product.product:0
msgid "Membership Products"
-msgstr ""
+msgstr "Výrobky členství"
#. module: membership
#: selection:report.membership,month:0
msgid "June"
-msgstr ""
+msgstr "Červen"
#. module: membership
#: model:ir.module.module,shortdesc:membership.module_meta_information
@@ -542,145 +577,145 @@ msgstr ""
#: view:res.partner:0
#: field:res.partner,member_lines:0
msgid "Membership"
-msgstr ""
+msgstr "Členství"
#. module: membership
#: selection:membership.membership_line,state:0
#: selection:report.membership,membership_state:0
#: selection:res.partner,membership_state:0
msgid "Invoiced Member"
-msgstr ""
+msgstr "Fakturovaný člen"
#. module: membership
#: help:membership.membership_line,date:0
msgid "Date on which member has joined the membership"
-msgstr ""
+msgstr "Datum, kdy se člen připojil k členství"
#. module: membership
#: selection:membership.membership_line,state:0
#: selection:report.membership,membership_state:0
#: selection:res.partner,membership_state:0
msgid "Waiting Member"
-msgstr ""
+msgstr "Čekající člen"
#. module: membership
#: model:process.transition,name:membership.process_transition_associationpartner0
msgid "Association Partner"
-msgstr ""
+msgstr "Přiřazený partner"
#. module: membership
#: selection:report.membership,month:0
msgid "November"
-msgstr ""
+msgstr "Listopad"
#. module: membership
#: view:product.product:0
msgid "Extended Filters..."
-msgstr ""
+msgstr "Rozšířené filtry..."
#. module: membership
#: field:membership.membership_line,state:0
msgid "Membership State"
-msgstr ""
+msgstr "Stav členství"
#. module: membership
#: selection:report.membership,month:0
msgid "October"
-msgstr ""
+msgstr "Říjen"
#. module: membership
#: view:product.product:0
msgid "Sale Description"
-msgstr ""
+msgstr "Popis prodeje"
#. module: membership
#: selection:report.membership,month:0
msgid "January"
-msgstr ""
+msgstr "Leden"
#. module: membership
#: view:product.product:0
msgid "Membership Fee"
-msgstr ""
+msgstr "Členský poplatek"
#. module: membership
#: field:res.partner,membership_amount:0
msgid "Membership amount"
-msgstr ""
+msgstr "Částka členství"
#. module: membership
#: help:res.partner,membership_amount:0
msgid "The price negotiated by the partner"
-msgstr ""
+msgstr "Cena vyjednaná partnerem"
#. module: membership
#: model:product.template,name:membership.membership_2_product_template
msgid "Basic Membership"
-msgstr ""
+msgstr "Základní členství"
#. module: membership
#: help:product.product,membership:0
msgid "Select if a product is a membership product."
-msgstr ""
+msgstr "Vyberte, pokud výrobek je výrobek členství."
#. module: membership
#: selection:membership.membership_line,state:0
#: selection:report.membership,membership_state:0
#: selection:res.partner,membership_state:0
msgid "Old Member"
-msgstr ""
+msgstr "Starý člen"
#. module: membership
#: field:membership.membership_line,date_to:0
msgid "To"
-msgstr ""
+msgstr "Do"
#. module: membership
#: view:report.membership:0
#: field:report.membership,membership_state:0
#: field:res.partner,membership_state:0
msgid "Current Membership State"
-msgstr ""
+msgstr "Aktuální stav členství"
#. module: membership
#: view:report.membership:0
msgid "Last 365 Days"
-msgstr ""
+msgstr "Posledních 365 dní"
#. module: membership
#: view:product.product:0
msgid "General"
-msgstr ""
+msgstr "Obecný"
#. module: membership
#: model:process.transition,note:membership.process_transition_waitingtoinvoice0
msgid "Draft invoice is now open."
-msgstr ""
+msgstr "Koncept faktury je nyní otevřen."
#. module: membership
#: view:product.product:0
msgid "Inactive"
-msgstr ""
+msgstr "Neaktivní"
#. module: membership
#: view:report.membership:0
msgid "Last 30 Days"
-msgstr ""
+msgstr "Posledních 30 dní"
#. module: membership
#: selection:report.membership,month:0
msgid "December"
-msgstr ""
+msgstr "Prosinec"
#. module: membership
#: view:membership.invoice:0
msgid "Close"
-msgstr ""
+msgstr "Uzavřít"
#. module: membership
#: view:res.partner:0
msgid "All non Members"
-msgstr ""
+msgstr "Všichni nečlenové"
#. module: membership
#: view:product.product:0
@@ -690,17 +725,17 @@ msgstr "Informace"
#. module: membership
#: field:membership.membership_line,account_invoice_line:0
msgid "Account Invoice line"
-msgstr ""
+msgstr "Účetní řádek faktury"
#. module: membership
#: view:product.product:0
msgid "Categorization"
-msgstr ""
+msgstr "Členění"
#. module: membership
#: model:process.node,note:membership.process_node_waitingmember0
msgid "Draft invoice for membership."
-msgstr ""
+msgstr "Koncept faktury pro členství."
#. module: membership
#: field:membership.invoice,member_price:0
@@ -708,117 +743,117 @@ msgstr ""
#: model:product.price.type,name:membership.product_price_type_memberprice
#: field:product.template,member_price:0
msgid "Member Price"
-msgstr ""
+msgstr "Cena člena"
#. module: membership
#: view:product.product:0
msgid "Purchase Description"
-msgstr ""
+msgstr "Popis nákupu"
#. module: membership
#: model:ir.model,name:membership.model_product_product
msgid "Product"
-msgstr ""
+msgstr "Výrobek"
#. module: membership
#: view:product.product:0
msgid "Description"
-msgstr ""
+msgstr "Popis"
#. module: membership
#: field:res.partner,free_member:0
msgid "Free member"
-msgstr ""
+msgstr "Volný člen"
#. module: membership
#: selection:report.membership,month:0
msgid "May"
-msgstr ""
+msgstr "Květen"
#. module: membership
#: model:product.template,name:membership.membership_1_product_template
msgid "Silver Membership"
-msgstr ""
+msgstr "Stříbrné členství"
#. module: membership
#: view:product.product:0
msgid "Sale Taxes"
-msgstr ""
+msgstr "Prodejní daně"
#. module: membership
#: field:report.membership,date_to:0
#: view:res.partner:0
msgid "End Date"
-msgstr ""
+msgstr "Datum ukončení"
#. module: membership
#: selection:report.membership,month:0
msgid "February"
-msgstr ""
+msgstr "Únor"
#. module: membership
#: model:process.node,name:membership.process_node_invoicedmember0
msgid "Invoiced member"
-msgstr ""
+msgstr "Fakturovaný člen"
#. module: membership
#: selection:report.membership,month:0
msgid "April"
-msgstr ""
+msgstr "Duben"
#. module: membership
#: help:res.partner,membership_cancel:0
msgid "Date on which membership has been cancelled"
-msgstr ""
+msgstr "Datum, kdy bylo zrušeno členství"
#. module: membership
#: field:membership.membership_line,date_cancel:0
msgid "Cancel date"
-msgstr ""
+msgstr "Datum zrušení"
#. module: membership
#: model:process.node,name:membership.process_node_waitingmember0
msgid "Waiting member"
-msgstr ""
+msgstr "Čekající člen"
#. module: membership
#: field:report.membership,date_from:0
#: view:res.partner:0
msgid "Start Date"
-msgstr ""
+msgstr "Počáteční datum"
#. module: membership
#: model:process.node,name:membership.process_node_membershipproduct0
msgid "Membership product"
-msgstr ""
+msgstr "Výrobek členství"
#. module: membership
#: help:membership.membership_line,member_price:0
msgid "Amount for the membership"
-msgstr ""
+msgstr "Částka pro členství"
#. module: membership
#: selection:membership.membership_line,state:0
#: selection:report.membership,membership_state:0
#: selection:res.partner,membership_state:0
msgid "Cancelled Member"
-msgstr ""
+msgstr "Zrušený člen"
#. module: membership
#: constraint:product.product:0
msgid "Error: Invalid ean code"
-msgstr ""
+msgstr "Chyba: Neplatný kód ean"
#. module: membership
#: view:report.membership:0
#: field:report.membership,year:0
msgid "Year"
-msgstr ""
+msgstr "Rok"
#. module: membership
#: view:report.membership:0
msgid "Revenue Done"
-msgstr ""
+msgstr "Příjem proveden"
#~ msgid "Configuration"
#~ msgstr "Konfigurace"
diff --git a/addons/membership/report/report_membership.py b/addons/membership/report/report_membership.py
index c5d82332fc1..631acab46b1 100644
--- a/addons/membership/report/report_membership.py
+++ b/addons/membership/report/report_membership.py
@@ -109,7 +109,7 @@ class report_membership(osv.osv):
LEFT JOIN membership_membership_line ml ON (ml.partner = p.id)
LEFT JOIN account_invoice_line il ON (ml.account_invoice_line = il.id)
LEFT JOIN account_invoice ai ON (il.invoice_id = ai.id)
- WHERE p.membership_state != 'none'
+ WHERE p.membership_state != 'none' and p.active = 'true'
GROUP BY
p.id,
p.user_id,
diff --git a/addons/membership/security/ir.model.access.csv b/addons/membership/security/ir.model.access.csv
index f3d91646c44..d53e57a5151 100644
--- a/addons/membership/security/ir.model.access.csv
+++ b/addons/membership/security/ir.model.access.csv
@@ -1,4 +1,4 @@
-"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
-"access_membership_membership_line_partner_manager","membership.membership_line partner_manager","model_membership_membership_line","base.group_partner_manager",1,1,1,1
-"access_membership_membership_line","membership.membership_line","model_membership_membership_line",,1,0,0,0
-"access_report_membership","report.membership","model_report_membership","base.group_partner_manager",1,0,0,0
+id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
+access_membership_membership_line_partner_manager,membership.membership_line partner_manager,model_membership_membership_line,base.group_partner_manager,1,1,1,1
+access_membership_membership_line,membership.membership_line,model_membership_membership_line,,1,0,0,0
+access_report_membership,report.membership,model_report_membership,base.group_partner_manager,1,0,0,0
diff --git a/addons/mrp/__openerp__.py b/addons/mrp/__openerp__.py
index 38c5fa9a9d1..588ba103f04 100644
--- a/addons/mrp/__openerp__.py
+++ b/addons/mrp/__openerp__.py
@@ -21,7 +21,7 @@
{
- "name" : "Manufacturing Resource Planning",
+ "name" : "MRP",
"version" : "1.1",
"author" : "OpenERP SA",
"website" : "http://www.openerp.com",
@@ -101,6 +101,7 @@ Dashboard provided by this module:
],
'installable': True,
+ 'application': True,
'active': False,
'certificate': '0032052481373',
}
diff --git a/addons/mrp/board_manufacturing_view.xml b/addons/mrp/board_manufacturing_view.xml
index 427780f344c..9956aae4ffe 100644
--- a/addons/mrp/board_manufacturing_view.xml
+++ b/addons/mrp/board_manufacturing_view.xml
@@ -7,13 +7,12 @@
form
-
+
-
+
-
diff --git a/addons/mrp/i18n/ar.po b/addons/mrp/i18n/ar.po
index c8a56267090..0a13682d76e 100644
--- a/addons/mrp/i18n/ar.po
+++ b/addons/mrp/i18n/ar.po
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-11-05 04:53+0000\n"
-"X-Generator: Launchpad (build 14231)\n"
+"X-Launchpad-Export-Date: 2011-12-07 04:50+0000\n"
+"X-Generator: Launchpad (build 14435)\n"
#. module: mrp
#: field:mrp.production,move_created_ids:0
@@ -715,7 +715,7 @@ msgid "Per month"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:595
+#: code:addons/mrp/mrp.py:591
#: code:addons/mrp/wizard/change_production_qty.py:77
#: code:addons/mrp/wizard/change_production_qty.py:82
#, python-format
@@ -728,7 +728,7 @@ msgid "Product Name"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:495
+#: code:addons/mrp/mrp.py:491
#, python-format
msgid "Invalid action !"
msgstr ""
@@ -1240,7 +1240,7 @@ msgstr ""
#. module: mrp
#: help:mrp.production,picking_id:0
msgid ""
-"This is the internal picking list that brings the finished product to the "
+"This is the Internal Picking List that brings the finished product to the "
"production plan"
msgstr ""
@@ -1294,7 +1294,7 @@ msgid "Month -1"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:924
+#: code:addons/mrp/mrp.py:914
#, python-format
msgid "Manufacturing order '%s' is scheduled for the %s."
msgstr ""
@@ -1305,7 +1305,7 @@ msgid "Production Order N° :"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:640
+#: code:addons/mrp/mrp.py:630
#, python-format
msgid "Manufacturing order '%s' is ready to produce."
msgstr ""
@@ -1534,7 +1534,7 @@ msgid "Manufacturing Orders To Start"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:495
+#: code:addons/mrp/mrp.py:491
#, python-format
msgid "Cannot delete Production Order(s) which are in %s State!"
msgstr ""
@@ -1624,7 +1624,7 @@ msgid "Production Analysis"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:349
+#: code:addons/mrp/mrp.py:345
#, python-format
msgid "Copy"
msgstr ""
@@ -2113,7 +2113,7 @@ msgid "Product type is Stockable or Consumable."
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:595
+#: code:addons/mrp/mrp.py:591
#: code:addons/mrp/wizard/change_production_qty.py:77
#: code:addons/mrp/wizard/change_production_qty.py:82
#, python-format
diff --git a/addons/mrp/i18n/bg.po b/addons/mrp/i18n/bg.po
index cc97c80360f..2dbb5ea5340 100644
--- a/addons/mrp/i18n/bg.po
+++ b/addons/mrp/i18n/bg.po
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-11-05 04:53+0000\n"
-"X-Generator: Launchpad (build 14231)\n"
+"X-Launchpad-Export-Date: 2011-12-07 04:50+0000\n"
+"X-Generator: Launchpad (build 14435)\n"
#. module: mrp
#: field:mrp.production,move_created_ids:0
@@ -748,7 +748,7 @@ msgid "Per month"
msgstr "За месец"
#. module: mrp
-#: code:addons/mrp/mrp.py:595
+#: code:addons/mrp/mrp.py:591
#: code:addons/mrp/wizard/change_production_qty.py:77
#: code:addons/mrp/wizard/change_production_qty.py:82
#, python-format
@@ -761,7 +761,7 @@ msgid "Product Name"
msgstr "Име на продукт"
#. module: mrp
-#: code:addons/mrp/mrp.py:495
+#: code:addons/mrp/mrp.py:491
#, python-format
msgid "Invalid action !"
msgstr "Невалидно действие !"
@@ -1273,7 +1273,7 @@ msgstr ""
#. module: mrp
#: help:mrp.production,picking_id:0
msgid ""
-"This is the internal picking list that brings the finished product to the "
+"This is the Internal Picking List that brings the finished product to the "
"production plan"
msgstr ""
@@ -1327,7 +1327,7 @@ msgid "Month -1"
msgstr "Месец -1"
#. module: mrp
-#: code:addons/mrp/mrp.py:924
+#: code:addons/mrp/mrp.py:914
#, python-format
msgid "Manufacturing order '%s' is scheduled for the %s."
msgstr ""
@@ -1338,7 +1338,7 @@ msgid "Production Order N° :"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:640
+#: code:addons/mrp/mrp.py:630
#, python-format
msgid "Manufacturing order '%s' is ready to produce."
msgstr ""
@@ -1567,7 +1567,7 @@ msgid "Manufacturing Orders To Start"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:495
+#: code:addons/mrp/mrp.py:491
#, python-format
msgid "Cannot delete Production Order(s) which are in %s State!"
msgstr ""
@@ -1657,7 +1657,7 @@ msgid "Production Analysis"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:349
+#: code:addons/mrp/mrp.py:345
#, python-format
msgid "Copy"
msgstr "Копиране"
@@ -2146,7 +2146,7 @@ msgid "Product type is Stockable or Consumable."
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:595
+#: code:addons/mrp/mrp.py:591
#: code:addons/mrp/wizard/change_production_qty.py:77
#: code:addons/mrp/wizard/change_production_qty.py:82
#, python-format
diff --git a/addons/mrp/i18n/bs.po b/addons/mrp/i18n/bs.po
index f5106281e27..9a78c360f43 100644
--- a/addons/mrp/i18n/bs.po
+++ b/addons/mrp/i18n/bs.po
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-11-05 04:53+0000\n"
-"X-Generator: Launchpad (build 14231)\n"
+"X-Launchpad-Export-Date: 2011-12-07 04:50+0000\n"
+"X-Generator: Launchpad (build 14435)\n"
#. module: mrp
#: field:mrp.production,move_created_ids:0
@@ -715,7 +715,7 @@ msgid "Per month"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:595
+#: code:addons/mrp/mrp.py:591
#: code:addons/mrp/wizard/change_production_qty.py:77
#: code:addons/mrp/wizard/change_production_qty.py:82
#, python-format
@@ -728,7 +728,7 @@ msgid "Product Name"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:495
+#: code:addons/mrp/mrp.py:491
#, python-format
msgid "Invalid action !"
msgstr ""
@@ -1240,7 +1240,7 @@ msgstr ""
#. module: mrp
#: help:mrp.production,picking_id:0
msgid ""
-"This is the internal picking list that brings the finished product to the "
+"This is the Internal Picking List that brings the finished product to the "
"production plan"
msgstr ""
@@ -1294,7 +1294,7 @@ msgid "Month -1"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:924
+#: code:addons/mrp/mrp.py:914
#, python-format
msgid "Manufacturing order '%s' is scheduled for the %s."
msgstr ""
@@ -1305,7 +1305,7 @@ msgid "Production Order N° :"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:640
+#: code:addons/mrp/mrp.py:630
#, python-format
msgid "Manufacturing order '%s' is ready to produce."
msgstr ""
@@ -1534,7 +1534,7 @@ msgid "Manufacturing Orders To Start"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:495
+#: code:addons/mrp/mrp.py:491
#, python-format
msgid "Cannot delete Production Order(s) which are in %s State!"
msgstr ""
@@ -1624,7 +1624,7 @@ msgid "Production Analysis"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:349
+#: code:addons/mrp/mrp.py:345
#, python-format
msgid "Copy"
msgstr ""
@@ -2113,7 +2113,7 @@ msgid "Product type is Stockable or Consumable."
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:595
+#: code:addons/mrp/mrp.py:591
#: code:addons/mrp/wizard/change_production_qty.py:77
#: code:addons/mrp/wizard/change_production_qty.py:82
#, python-format
diff --git a/addons/mrp/i18n/ca.po b/addons/mrp/i18n/ca.po
index c6d359150ec..a81bfdc6da6 100644
--- a/addons/mrp/i18n/ca.po
+++ b/addons/mrp/i18n/ca.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:15+0000\n"
-"PO-Revision-Date: 2011-08-17 22:02+0000\n"
-"Last-Translator: mgaja (GrupoIsep.com) \n"
+"PO-Revision-Date: 2011-12-06 11:07+0000\n"
+"Last-Translator: Fabien (Open ERP) \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-11-05 04:53+0000\n"
-"X-Generator: Launchpad (build 14231)\n"
+"X-Launchpad-Export-Date: 2011-12-07 04:50+0000\n"
+"X-Generator: Launchpad (build 14435)\n"
#. module: mrp
#: field:mrp.production,move_created_ids:0
@@ -758,7 +758,7 @@ msgid "Per month"
msgstr "Per mes"
#. module: mrp
-#: code:addons/mrp/mrp.py:595
+#: code:addons/mrp/mrp.py:591
#: code:addons/mrp/wizard/change_production_qty.py:77
#: code:addons/mrp/wizard/change_production_qty.py:82
#, python-format
@@ -771,7 +771,7 @@ msgid "Product Name"
msgstr "Nom producte"
#. module: mrp
-#: code:addons/mrp/mrp.py:495
+#: code:addons/mrp/mrp.py:491
#, python-format
msgid "Invalid action !"
msgstr "Acció no vàlida!"
@@ -1320,7 +1320,7 @@ msgstr "Ubicació on el sistema emmagatzemarà els productes finalitzats."
#. module: mrp
#: help:mrp.production,picking_id:0
msgid ""
-"This is the internal picking list that brings the finished product to the "
+"This is the Internal Picking List that brings the finished product to the "
"production plan"
msgstr ""
"Aquest és l'albarà intern que porta el producte acabat cap al pla de "
@@ -1380,7 +1380,7 @@ msgid "Month -1"
msgstr "Mes -1"
#. module: mrp
-#: code:addons/mrp/mrp.py:924
+#: code:addons/mrp/mrp.py:914
#, python-format
msgid "Manufacturing order '%s' is scheduled for the %s."
msgstr "Ordre de producció '%s' planificada pel '%s'"
@@ -1391,7 +1391,7 @@ msgid "Production Order N° :"
msgstr "Núm. ordre producció :"
#. module: mrp
-#: code:addons/mrp/mrp.py:640
+#: code:addons/mrp/mrp.py:630
#, python-format
msgid "Manufacturing order '%s' is ready to produce."
msgstr "Ordre de fabricació '%s' està preparada per produir"
@@ -1635,7 +1635,7 @@ msgid "Manufacturing Orders To Start"
msgstr "Ordres de producció a iniciar"
#. module: mrp
-#: code:addons/mrp/mrp.py:495
+#: code:addons/mrp/mrp.py:491
#, python-format
msgid "Cannot delete Production Order(s) which are in %s State!"
msgstr "No es pot eliminar ordre/s de producció que estan en estat %s!"
@@ -1728,7 +1728,7 @@ msgid "Production Analysis"
msgstr "Anàlisi de producció"
#. module: mrp
-#: code:addons/mrp/mrp.py:349
+#: code:addons/mrp/mrp.py:345
#, python-format
msgid "Copy"
msgstr "Copieu"
@@ -2254,7 +2254,7 @@ msgid "Product type is Stockable or Consumable."
msgstr "Tipus de producte és emmagatzemable o consumible."
#. module: mrp
-#: code:addons/mrp/mrp.py:595
+#: code:addons/mrp/mrp.py:591
#: code:addons/mrp/wizard/change_production_qty.py:77
#: code:addons/mrp/wizard/change_production_qty.py:82
#, python-format
@@ -3321,6 +3321,13 @@ msgstr "Any"
#~ msgid "Workcenter Usage"
#~ msgstr "Us del centre de producció"
+#~ msgid ""
+#~ "This is the internal picking list that brings the finished product to the "
+#~ "production plan"
+#~ msgstr ""
+#~ "Aquest és l'albarà intern que porta el producte acabat cap al pla de "
+#~ "producció."
+
#~ msgid ""
#~ "Routing indicates all the workcenters used, for how long and/or cycles.If "
#~ "Routing is indicated then,the third tab of a production order (workcenters) "
diff --git a/addons/mrp/i18n/cs.po b/addons/mrp/i18n/cs.po
index 5244b3928c6..57c6e3b019b 100644
--- a/addons/mrp/i18n/cs.po
+++ b/addons/mrp/i18n/cs.po
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-11-05 04:53+0000\n"
-"X-Generator: Launchpad (build 14231)\n"
+"X-Launchpad-Export-Date: 2011-12-07 04:50+0000\n"
+"X-Generator: Launchpad (build 14435)\n"
"X-Poedit-Language: Czech\n"
#. module: mrp
@@ -727,7 +727,7 @@ msgid "Per month"
msgstr "Za měsíc"
#. module: mrp
-#: code:addons/mrp/mrp.py:595
+#: code:addons/mrp/mrp.py:591
#: code:addons/mrp/wizard/change_production_qty.py:77
#: code:addons/mrp/wizard/change_production_qty.py:82
#, python-format
@@ -740,7 +740,7 @@ msgid "Product Name"
msgstr "Jméno výrobku"
#. module: mrp
-#: code:addons/mrp/mrp.py:495
+#: code:addons/mrp/mrp.py:491
#, python-format
msgid "Invalid action !"
msgstr "Neplatná akce !"
@@ -1257,7 +1257,7 @@ msgstr "Umístění kde systém naskladní hotové výrobky."
#. module: mrp
#: help:mrp.production,picking_id:0
msgid ""
-"This is the internal picking list that brings the finished product to the "
+"This is the Internal Picking List that brings the finished product to the "
"production plan"
msgstr ""
@@ -1311,7 +1311,7 @@ msgid "Month -1"
msgstr "Měsíc -1"
#. module: mrp
-#: code:addons/mrp/mrp.py:924
+#: code:addons/mrp/mrp.py:914
#, python-format
msgid "Manufacturing order '%s' is scheduled for the %s."
msgstr "Výrobní příkaz '%s' je naplánován pro %s."
@@ -1322,7 +1322,7 @@ msgid "Production Order N° :"
msgstr "Výrobní příkaz N° :"
#. module: mrp
-#: code:addons/mrp/mrp.py:640
+#: code:addons/mrp/mrp.py:630
#, python-format
msgid "Manufacturing order '%s' is ready to produce."
msgstr "Výrobní příkaz '%s' je připraven k výrobě."
@@ -1551,7 +1551,7 @@ msgid "Manufacturing Orders To Start"
msgstr "Výrobní příkazy pro spuštění"
#. module: mrp
-#: code:addons/mrp/mrp.py:495
+#: code:addons/mrp/mrp.py:491
#, python-format
msgid "Cannot delete Production Order(s) which are in %s State!"
msgstr ""
@@ -1641,7 +1641,7 @@ msgid "Production Analysis"
msgstr "Analýza výroby"
#. module: mrp
-#: code:addons/mrp/mrp.py:349
+#: code:addons/mrp/mrp.py:345
#, python-format
msgid "Copy"
msgstr "Kopírovat"
@@ -2136,7 +2136,7 @@ msgid "Product type is Stockable or Consumable."
msgstr "Typ výrobku je Skladový nebo Spotřební."
#. module: mrp
-#: code:addons/mrp/mrp.py:595
+#: code:addons/mrp/mrp.py:591
#: code:addons/mrp/wizard/change_production_qty.py:77
#: code:addons/mrp/wizard/change_production_qty.py:82
#, python-format
diff --git a/addons/mrp/i18n/da.po b/addons/mrp/i18n/da.po
index 17a13380616..59fe0907efe 100644
--- a/addons/mrp/i18n/da.po
+++ b/addons/mrp/i18n/da.po
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-11-10 04:57+0000\n"
-"X-Generator: Launchpad (build 14263)\n"
+"X-Launchpad-Export-Date: 2011-12-07 04:50+0000\n"
+"X-Generator: Launchpad (build 14435)\n"
#. module: mrp
#: field:mrp.production,move_created_ids:0
@@ -716,7 +716,7 @@ msgid "Per month"
msgstr "Pr. måned"
#. module: mrp
-#: code:addons/mrp/mrp.py:595
+#: code:addons/mrp/mrp.py:591
#: code:addons/mrp/wizard/change_production_qty.py:77
#: code:addons/mrp/wizard/change_production_qty.py:82
#, python-format
@@ -729,7 +729,7 @@ msgid "Product Name"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:495
+#: code:addons/mrp/mrp.py:491
#, python-format
msgid "Invalid action !"
msgstr ""
@@ -1241,7 +1241,7 @@ msgstr ""
#. module: mrp
#: help:mrp.production,picking_id:0
msgid ""
-"This is the internal picking list that brings the finished product to the "
+"This is the Internal Picking List that brings the finished product to the "
"production plan"
msgstr ""
@@ -1295,7 +1295,7 @@ msgid "Month -1"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:924
+#: code:addons/mrp/mrp.py:914
#, python-format
msgid "Manufacturing order '%s' is scheduled for the %s."
msgstr ""
@@ -1306,7 +1306,7 @@ msgid "Production Order N° :"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:640
+#: code:addons/mrp/mrp.py:630
#, python-format
msgid "Manufacturing order '%s' is ready to produce."
msgstr ""
@@ -1535,7 +1535,7 @@ msgid "Manufacturing Orders To Start"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:495
+#: code:addons/mrp/mrp.py:491
#, python-format
msgid "Cannot delete Production Order(s) which are in %s State!"
msgstr ""
@@ -1625,7 +1625,7 @@ msgid "Production Analysis"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:349
+#: code:addons/mrp/mrp.py:345
#, python-format
msgid "Copy"
msgstr ""
@@ -2114,7 +2114,7 @@ msgid "Product type is Stockable or Consumable."
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:595
+#: code:addons/mrp/mrp.py:591
#: code:addons/mrp/wizard/change_production_qty.py:77
#: code:addons/mrp/wizard/change_production_qty.py:82
#, python-format
diff --git a/addons/mrp/i18n/de.po b/addons/mrp/i18n/de.po
index 73f62cd257d..99e1b5f1f59 100644
--- a/addons/mrp/i18n/de.po
+++ b/addons/mrp/i18n/de.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:15+0000\n"
-"PO-Revision-Date: 2011-04-03 09:21+0000\n"
-"Last-Translator: Ferdinand @ Camptocamp \n"
+"PO-Revision-Date: 2011-12-06 11:05+0000\n"
+"Last-Translator: Ferdinand-camptocamp \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-11-05 04:53+0000\n"
-"X-Generator: Launchpad (build 14231)\n"
+"X-Launchpad-Export-Date: 2011-12-07 04:50+0000\n"
+"X-Generator: Launchpad (build 14435)\n"
#. module: mrp
#: field:mrp.production,move_created_ids:0
@@ -758,7 +758,7 @@ msgid "Per month"
msgstr "Pro Monat"
#. module: mrp
-#: code:addons/mrp/mrp.py:595
+#: code:addons/mrp/mrp.py:591
#: code:addons/mrp/wizard/change_production_qty.py:77
#: code:addons/mrp/wizard/change_production_qty.py:82
#, python-format
@@ -771,7 +771,7 @@ msgid "Product Name"
msgstr "Produkt Bezeichnung"
#. module: mrp
-#: code:addons/mrp/mrp.py:495
+#: code:addons/mrp/mrp.py:491
#, python-format
msgid "Invalid action !"
msgstr "Fehlerhafte Aktion !"
@@ -1323,7 +1323,7 @@ msgstr "Ort, an dem das System die Fertigprodukte einlagern wird."
#. module: mrp
#: help:mrp.production,picking_id:0
msgid ""
-"This is the internal picking list that brings the finished product to the "
+"This is the Internal Picking List that brings the finished product to the "
"production plan"
msgstr ""
"Dies ist ein interner Lieferauftrag, der die gefertigten Produkte in den "
@@ -1382,7 +1382,7 @@ msgid "Month -1"
msgstr "Monat -1"
#. module: mrp
-#: code:addons/mrp/mrp.py:924
+#: code:addons/mrp/mrp.py:914
#, python-format
msgid "Manufacturing order '%s' is scheduled for the %s."
msgstr "Fertigungsauftrag '%s' ist geplant für %s."
@@ -1393,7 +1393,7 @@ msgid "Production Order N° :"
msgstr "Fertigungsauftragsnr."
#. module: mrp
-#: code:addons/mrp/mrp.py:640
+#: code:addons/mrp/mrp.py:630
#, python-format
msgid "Manufacturing order '%s' is ready to produce."
msgstr "Fertigungsauftrag '%s' ist Startbereit."
@@ -1635,7 +1635,7 @@ msgid "Manufacturing Orders To Start"
msgstr "Fertigungsaufträge (Startbereit)"
#. module: mrp
-#: code:addons/mrp/mrp.py:495
+#: code:addons/mrp/mrp.py:491
#, python-format
msgid "Cannot delete Production Order(s) which are in %s State!"
msgstr "Fertigungsaufträge im Status %s können nicht gelöscht werden"
@@ -1728,7 +1728,7 @@ msgid "Production Analysis"
msgstr "Statistik Fertigungsaufträge"
#. module: mrp
-#: code:addons/mrp/mrp.py:349
+#: code:addons/mrp/mrp.py:345
#, python-format
msgid "Copy"
msgstr "Duplizieren"
@@ -2257,7 +2257,7 @@ msgid "Product type is Stockable or Consumable."
msgstr "Produkttyp ist 'Lagerprodukt' oder 'Verbrauchsmaterial'."
#. module: mrp
-#: code:addons/mrp/mrp.py:595
+#: code:addons/mrp/mrp.py:591
#: code:addons/mrp/wizard/change_production_qty.py:77
#: code:addons/mrp/wizard/change_production_qty.py:82
#, python-format
@@ -3350,6 +3350,13 @@ msgstr "Jahr"
#~ "können. Wenn an diesem Arbeitsplatz 5 Mitarbeiter tätig sind, liegt die "
#~ "Kapazität pro Zyklus bei 5."
+#~ msgid ""
+#~ "This is the internal picking list that brings the finished product to the "
+#~ "production plan"
+#~ msgstr ""
+#~ "Dies ist ein interner Lieferauftrag, der die gefertigten Produkte in den "
+#~ "Fertigungsplan eintragen wird"
+
#~ msgid ""
#~ "Description of the work center. Explain here what's a cycle according to "
#~ "this work center."
diff --git a/addons/mrp/i18n/el.po b/addons/mrp/i18n/el.po
index 8120ac8bb2f..7d85bf2de57 100644
--- a/addons/mrp/i18n/el.po
+++ b/addons/mrp/i18n/el.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:15+0000\n"
-"PO-Revision-Date: 2010-11-27 12:17+0000\n"
+"PO-Revision-Date: 2011-12-06 11:08+0000\n"
"Last-Translator: qdp (OpenERP) \n"
"Language-Team: l10n_chart_gr \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-11-05 04:54+0000\n"
-"X-Generator: Launchpad (build 14231)\n"
+"X-Launchpad-Export-Date: 2011-12-07 04:50+0000\n"
+"X-Generator: Launchpad (build 14435)\n"
"X-Poedit-Country: GREECE\n"
"X-Poedit-Language: Greek\n"
"X-Poedit-SourceCharset: utf-8\n"
@@ -724,7 +724,7 @@ msgid "Per month"
msgstr "Ανά μήνα"
#. module: mrp
-#: code:addons/mrp/mrp.py:595
+#: code:addons/mrp/mrp.py:591
#: code:addons/mrp/wizard/change_production_qty.py:77
#: code:addons/mrp/wizard/change_production_qty.py:82
#, python-format
@@ -737,7 +737,7 @@ msgid "Product Name"
msgstr "Όνομα Προϊόντος"
#. module: mrp
-#: code:addons/mrp/mrp.py:495
+#: code:addons/mrp/mrp.py:491
#, python-format
msgid "Invalid action !"
msgstr "Άκυρη ενέργεια!"
@@ -1249,7 +1249,7 @@ msgstr "Τοποθεσία όπου το σύστημα θα αποθηκεύσ
#. module: mrp
#: help:mrp.production,picking_id:0
msgid ""
-"This is the internal picking list that brings the finished product to the "
+"This is the Internal Picking List that brings the finished product to the "
"production plan"
msgstr ""
@@ -1303,7 +1303,7 @@ msgid "Month -1"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:924
+#: code:addons/mrp/mrp.py:914
#, python-format
msgid "Manufacturing order '%s' is scheduled for the %s."
msgstr ""
@@ -1314,7 +1314,7 @@ msgid "Production Order N° :"
msgstr "Νο Εντολής Παραγωγής:"
#. module: mrp
-#: code:addons/mrp/mrp.py:640
+#: code:addons/mrp/mrp.py:630
#, python-format
msgid "Manufacturing order '%s' is ready to produce."
msgstr ""
@@ -1543,7 +1543,7 @@ msgid "Manufacturing Orders To Start"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:495
+#: code:addons/mrp/mrp.py:491
#, python-format
msgid "Cannot delete Production Order(s) which are in %s State!"
msgstr ""
@@ -1633,7 +1633,7 @@ msgid "Production Analysis"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:349
+#: code:addons/mrp/mrp.py:345
#, python-format
msgid "Copy"
msgstr ""
@@ -2123,7 +2123,7 @@ msgid "Product type is Stockable or Consumable."
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:595
+#: code:addons/mrp/mrp.py:591
#: code:addons/mrp/wizard/change_production_qty.py:77
#: code:addons/mrp/wizard/change_production_qty.py:82
#, python-format
diff --git a/addons/mrp/i18n/es.po b/addons/mrp/i18n/es.po
index bb45000dc25..76bfff76f74 100644
--- a/addons/mrp/i18n/es.po
+++ b/addons/mrp/i18n/es.po
@@ -7,15 +7,15 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2011-01-11 11:15+0000\n"
-"PO-Revision-Date: 2011-03-12 16:35+0000\n"
+"PO-Revision-Date: 2011-12-06 11:03+0000\n"
"Last-Translator: Jordi Esteve (www.zikzakmedia.com) "
"\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-11-05 04:54+0000\n"
-"X-Generator: Launchpad (build 14231)\n"
+"X-Launchpad-Export-Date: 2011-12-07 04:51+0000\n"
+"X-Generator: Launchpad (build 14435)\n"
#. module: mrp
#: field:mrp.production,move_created_ids:0
@@ -760,7 +760,7 @@ msgid "Per month"
msgstr "Por mes"
#. module: mrp
-#: code:addons/mrp/mrp.py:595
+#: code:addons/mrp/mrp.py:591
#: code:addons/mrp/wizard/change_production_qty.py:77
#: code:addons/mrp/wizard/change_production_qty.py:82
#, python-format
@@ -773,7 +773,7 @@ msgid "Product Name"
msgstr "Nombre producto"
#. module: mrp
-#: code:addons/mrp/mrp.py:495
+#: code:addons/mrp/mrp.py:491
#, python-format
msgid "Invalid action !"
msgstr "¡Acción no válida!"
@@ -1321,7 +1321,7 @@ msgstr "Ubicación donde el sistema almacenará los productos finalizados."
#. module: mrp
#: help:mrp.production,picking_id:0
msgid ""
-"This is the internal picking list that brings the finished product to the "
+"This is the Internal Picking List that brings the finished product to the "
"production plan"
msgstr ""
"Este es el albarán interno que trae el producto terminado hacia el plan de "
@@ -1381,7 +1381,7 @@ msgid "Month -1"
msgstr "Mes -1"
#. module: mrp
-#: code:addons/mrp/mrp.py:924
+#: code:addons/mrp/mrp.py:914
#, python-format
msgid "Manufacturing order '%s' is scheduled for the %s."
msgstr "Órden de producción '%s' planificada para el '%s'"
@@ -1392,7 +1392,7 @@ msgid "Production Order N° :"
msgstr "Núm. orden producción :"
#. module: mrp
-#: code:addons/mrp/mrp.py:640
+#: code:addons/mrp/mrp.py:630
#, python-format
msgid "Manufacturing order '%s' is ready to produce."
msgstr "Orden fabricación '%s' está preparada para producir."
@@ -1635,7 +1635,7 @@ msgid "Manufacturing Orders To Start"
msgstr "Órdenes de producción a iniciar"
#. module: mrp
-#: code:addons/mrp/mrp.py:495
+#: code:addons/mrp/mrp.py:491
#, python-format
msgid "Cannot delete Production Order(s) which are in %s State!"
msgstr ""
@@ -1729,7 +1729,7 @@ msgid "Production Analysis"
msgstr "Análisis de producción"
#. module: mrp
-#: code:addons/mrp/mrp.py:349
+#: code:addons/mrp/mrp.py:345
#, python-format
msgid "Copy"
msgstr "Copiar"
@@ -2258,7 +2258,7 @@ msgid "Product type is Stockable or Consumable."
msgstr "Tipo de producto es almacenable o consumible."
#. module: mrp
-#: code:addons/mrp/mrp.py:595
+#: code:addons/mrp/mrp.py:591
#: code:addons/mrp/wizard/change_production_qty.py:77
#: code:addons/mrp/wizard/change_production_qty.py:82
#, python-format
@@ -3324,6 +3324,13 @@ msgstr "Año"
#~ "futuras cargas de los centros de producción a partir de la planificación de "
#~ "la producción."
+#~ msgid ""
+#~ "This is the internal picking list that brings the finished product to the "
+#~ "production plan"
+#~ msgstr ""
+#~ "Este es el albarán interno que trae el producto terminado hacia el plan de "
+#~ "producción."
+
#~ msgid "Workcenter Usage"
#~ msgstr "Uso centro de producción"
diff --git a/addons/mrp/i18n/es_AR.po b/addons/mrp/i18n/es_AR.po
index f3c9ec67c23..eadea6dfc48 100644
--- a/addons/mrp/i18n/es_AR.po
+++ b/addons/mrp/i18n/es_AR.po
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-11-05 04:55+0000\n"
-"X-Generator: Launchpad (build 14231)\n"
+"X-Launchpad-Export-Date: 2011-12-07 04:51+0000\n"
+"X-Generator: Launchpad (build 14435)\n"
#. module: mrp
#: field:mrp.production,move_created_ids:0
@@ -749,7 +749,7 @@ msgid "Per month"
msgstr "Por mes"
#. module: mrp
-#: code:addons/mrp/mrp.py:595
+#: code:addons/mrp/mrp.py:591
#: code:addons/mrp/wizard/change_production_qty.py:77
#: code:addons/mrp/wizard/change_production_qty.py:82
#, python-format
@@ -762,7 +762,7 @@ msgid "Product Name"
msgstr "Nombre del Producto"
#. module: mrp
-#: code:addons/mrp/mrp.py:495
+#: code:addons/mrp/mrp.py:491
#, python-format
msgid "Invalid action !"
msgstr "¡Acción no válida!"
@@ -1295,7 +1295,7 @@ msgstr "Ubicación donde el sistema almacenará los productos finalizados."
#. module: mrp
#: help:mrp.production,picking_id:0
msgid ""
-"This is the internal picking list that brings the finished product to the "
+"This is the Internal Picking List that brings the finished product to the "
"production plan"
msgstr ""
@@ -1353,7 +1353,7 @@ msgid "Month -1"
msgstr "Mes -1"
#. module: mrp
-#: code:addons/mrp/mrp.py:924
+#: code:addons/mrp/mrp.py:914
#, python-format
msgid "Manufacturing order '%s' is scheduled for the %s."
msgstr ""
@@ -1364,7 +1364,7 @@ msgid "Production Order N° :"
msgstr "Orden de producción Nº :"
#. module: mrp
-#: code:addons/mrp/mrp.py:640
+#: code:addons/mrp/mrp.py:630
#, python-format
msgid "Manufacturing order '%s' is ready to produce."
msgstr ""
@@ -1601,7 +1601,7 @@ msgid "Manufacturing Orders To Start"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:495
+#: code:addons/mrp/mrp.py:491
#, python-format
msgid "Cannot delete Production Order(s) which are in %s State!"
msgstr ""
@@ -1692,7 +1692,7 @@ msgid "Production Analysis"
msgstr "Análisis de la producción"
#. module: mrp
-#: code:addons/mrp/mrp.py:349
+#: code:addons/mrp/mrp.py:345
#, python-format
msgid "Copy"
msgstr "Copiar"
@@ -2202,7 +2202,7 @@ msgid "Product type is Stockable or Consumable."
msgstr "Tipo de producto es almacenable o consumible."
#. module: mrp
-#: code:addons/mrp/mrp.py:595
+#: code:addons/mrp/mrp.py:591
#: code:addons/mrp/wizard/change_production_qty.py:77
#: code:addons/mrp/wizard/change_production_qty.py:82
#, python-format
diff --git a/addons/mrp/i18n/es_CL.po b/addons/mrp/i18n/es_CL.po
index 5b574d2578d..55a2771ced5 100644
--- a/addons/mrp/i18n/es_CL.po
+++ b/addons/mrp/i18n/es_CL.po
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-11-05 04:55+0000\n"
-"X-Generator: Launchpad (build 14231)\n"
+"X-Launchpad-Export-Date: 2011-12-07 04:51+0000\n"
+"X-Generator: Launchpad (build 14435)\n"
#. module: mrp
#: field:mrp.production,move_created_ids:0
@@ -759,7 +759,7 @@ msgid "Per month"
msgstr "Por mes"
#. module: mrp
-#: code:addons/mrp/mrp.py:595
+#: code:addons/mrp/mrp.py:591
#: code:addons/mrp/wizard/change_production_qty.py:77
#: code:addons/mrp/wizard/change_production_qty.py:82
#, python-format
@@ -772,7 +772,7 @@ msgid "Product Name"
msgstr "Nombre producto"
#. module: mrp
-#: code:addons/mrp/mrp.py:495
+#: code:addons/mrp/mrp.py:491
#, python-format
msgid "Invalid action !"
msgstr "¡Acción no válida!"
@@ -1320,11 +1320,9 @@ msgstr "Ubicación donde el sistema almacenará los productos finalizados."
#. module: mrp
#: help:mrp.production,picking_id:0
msgid ""
-"This is the internal picking list that brings the finished product to the "
+"This is the Internal Picking List that brings the finished product to the "
"production plan"
msgstr ""
-"Este es el albarán interno que trae el producto terminado hacia el plan de "
-"producción."
#. module: mrp
#: field:stock.change.standard.price,change_parent_price:0
@@ -1380,7 +1378,7 @@ msgid "Month -1"
msgstr "Mes -1"
#. module: mrp
-#: code:addons/mrp/mrp.py:924
+#: code:addons/mrp/mrp.py:914
#, python-format
msgid "Manufacturing order '%s' is scheduled for the %s."
msgstr "Órden de producción '%s' planificada para el '%s'"
@@ -1391,7 +1389,7 @@ msgid "Production Order N° :"
msgstr "Núm. orden producción :"
#. module: mrp
-#: code:addons/mrp/mrp.py:640
+#: code:addons/mrp/mrp.py:630
#, python-format
msgid "Manufacturing order '%s' is ready to produce."
msgstr "Orden fabricación '%s' está preparada para producir."
@@ -1628,7 +1626,7 @@ msgid "Manufacturing Orders To Start"
msgstr "Órdenes de producción a iniciar"
#. module: mrp
-#: code:addons/mrp/mrp.py:495
+#: code:addons/mrp/mrp.py:491
#, python-format
msgid "Cannot delete Production Order(s) which are in %s State!"
msgstr ""
@@ -1722,7 +1720,7 @@ msgid "Production Analysis"
msgstr "Análisis de producción"
#. module: mrp
-#: code:addons/mrp/mrp.py:349
+#: code:addons/mrp/mrp.py:345
#, python-format
msgid "Copy"
msgstr "Copiar"
@@ -2251,7 +2249,7 @@ msgid "Product type is Stockable or Consumable."
msgstr "Tipo de producto es almacenable o consumible."
#. module: mrp
-#: code:addons/mrp/mrp.py:595
+#: code:addons/mrp/mrp.py:591
#: code:addons/mrp/wizard/change_production_qty.py:77
#: code:addons/mrp/wizard/change_production_qty.py:82
#, python-format
@@ -2567,6 +2565,13 @@ msgstr "Año"
#~ "paralelo. Si este centro de trabajo representa un equipo del 5 trabajadores, "
#~ "la capacidad por ciclo es de 5."
+#~ msgid ""
+#~ "This is the internal picking list that brings the finished product to the "
+#~ "production plan"
+#~ msgstr ""
+#~ "Este es el albarán interno que trae el producto terminado hacia el plan de "
+#~ "producción."
+
#~ msgid ""
#~ "Routing indicates all the workcenters used, for how long and/or cycles.If "
#~ "Routing is indicated then,the third tab of a production order (workcenters) "
diff --git a/addons/mrp/i18n/es_EC.po b/addons/mrp/i18n/es_EC.po
index a11178e0c8e..0cd26845cbf 100644
--- a/addons/mrp/i18n/es_EC.po
+++ b/addons/mrp/i18n/es_EC.po
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-11-05 04:55+0000\n"
-"X-Generator: Launchpad (build 14231)\n"
+"X-Launchpad-Export-Date: 2011-12-07 04:52+0000\n"
+"X-Generator: Launchpad (build 14435)\n"
#. module: mrp
#: field:mrp.production,move_created_ids:0
@@ -759,7 +759,7 @@ msgid "Per month"
msgstr "Por mes"
#. module: mrp
-#: code:addons/mrp/mrp.py:595
+#: code:addons/mrp/mrp.py:591
#: code:addons/mrp/wizard/change_production_qty.py:77
#: code:addons/mrp/wizard/change_production_qty.py:82
#, python-format
@@ -772,7 +772,7 @@ msgid "Product Name"
msgstr "Nombre producto"
#. module: mrp
-#: code:addons/mrp/mrp.py:495
+#: code:addons/mrp/mrp.py:491
#, python-format
msgid "Invalid action !"
msgstr "¡Acción inválida!"
@@ -1320,11 +1320,9 @@ msgstr "Ubicación donde el sistema almacenará los productos finalizados."
#. module: mrp
#: help:mrp.production,picking_id:0
msgid ""
-"This is the internal picking list that brings the finished product to the "
+"This is the Internal Picking List that brings the finished product to the "
"production plan"
msgstr ""
-"Este es el albarán interno que trae el producto terminado hacia el plan de "
-"producción."
#. module: mrp
#: field:stock.change.standard.price,change_parent_price:0
@@ -1380,7 +1378,7 @@ msgid "Month -1"
msgstr "Mes -1"
#. module: mrp
-#: code:addons/mrp/mrp.py:924
+#: code:addons/mrp/mrp.py:914
#, python-format
msgid "Manufacturing order '%s' is scheduled for the %s."
msgstr "Órden de producción '%s' planificada para el '%s'"
@@ -1391,7 +1389,7 @@ msgid "Production Order N° :"
msgstr "Núm. orden producción :"
#. module: mrp
-#: code:addons/mrp/mrp.py:640
+#: code:addons/mrp/mrp.py:630
#, python-format
msgid "Manufacturing order '%s' is ready to produce."
msgstr "Orden fabricación '%s' está preparada para producir."
@@ -1634,7 +1632,7 @@ msgid "Manufacturing Orders To Start"
msgstr "Órdenes de producción a iniciar"
#. module: mrp
-#: code:addons/mrp/mrp.py:495
+#: code:addons/mrp/mrp.py:491
#, python-format
msgid "Cannot delete Production Order(s) which are in %s State!"
msgstr ""
@@ -1728,7 +1726,7 @@ msgid "Production Analysis"
msgstr "Análisis de producción"
#. module: mrp
-#: code:addons/mrp/mrp.py:349
+#: code:addons/mrp/mrp.py:345
#, python-format
msgid "Copy"
msgstr "Copiar"
@@ -2257,7 +2255,7 @@ msgid "Product type is Stockable or Consumable."
msgstr "Tipo de producto es almacenable o consumible."
#. module: mrp
-#: code:addons/mrp/mrp.py:595
+#: code:addons/mrp/mrp.py:591
#: code:addons/mrp/wizard/change_production_qty.py:77
#: code:addons/mrp/wizard/change_production_qty.py:82
#, python-format
@@ -3328,6 +3326,13 @@ msgstr "Año"
#~ " *Lista de órdenes de fabricación con excepciones\n"
#~ " "
+#~ msgid ""
+#~ "This is the internal picking list that brings the finished product to the "
+#~ "production plan"
+#~ msgstr ""
+#~ "Este es el albarán interno que trae el producto terminado hacia el plan de "
+#~ "producción."
+
#~ msgid ""
#~ "Routing indicates all the workcenters used, for how long and/or cycles.If "
#~ "Routing is indicated then,the third tab of a production order (workcenters) "
diff --git a/addons/mrp/i18n/es_MX.po b/addons/mrp/i18n/es_MX.po
index 4504a8e2f95..82d584be219 100644
--- a/addons/mrp/i18n/es_MX.po
+++ b/addons/mrp/i18n/es_MX.po
@@ -1321,7 +1321,7 @@ msgstr "Ubicación donde el sistema almacenará los productos finalizados."
#. module: mrp
#: help:mrp.production,picking_id:0
msgid ""
-"This is the internal picking list that brings the finished product to the "
+"This is the Internal Picking List that brings the finished product to the "
"production plan"
msgstr ""
"Este es el albarán interno que trae el producto terminado hacia el plan de "
@@ -2803,7 +2803,7 @@ msgstr "Año"
#~ "producción."
#~ msgid ""
-#~ "This is the internal picking list take bring the raw materials to the "
+#~ "This is the Internal Picking List take bring the raw materials to the "
#~ "production plan."
#~ msgstr ""
#~ "Ésta es la lista de empaquetado interna que lleva las materias primas a la "
diff --git a/addons/mrp/i18n/es_VE.po b/addons/mrp/i18n/es_VE.po
index 4504a8e2f95..82d584be219 100644
--- a/addons/mrp/i18n/es_VE.po
+++ b/addons/mrp/i18n/es_VE.po
@@ -1321,7 +1321,7 @@ msgstr "Ubicación donde el sistema almacenará los productos finalizados."
#. module: mrp
#: help:mrp.production,picking_id:0
msgid ""
-"This is the internal picking list that brings the finished product to the "
+"This is the Internal Picking List that brings the finished product to the "
"production plan"
msgstr ""
"Este es el albarán interno que trae el producto terminado hacia el plan de "
@@ -2803,7 +2803,7 @@ msgstr "Año"
#~ "producción."
#~ msgid ""
-#~ "This is the internal picking list take bring the raw materials to the "
+#~ "This is the Internal Picking List take bring the raw materials to the "
#~ "production plan."
#~ msgstr ""
#~ "Ésta es la lista de empaquetado interna que lleva las materias primas a la "
diff --git a/addons/mrp/i18n/et.po b/addons/mrp/i18n/et.po
index 8e2648993cb..39bae390026 100644
--- a/addons/mrp/i18n/et.po
+++ b/addons/mrp/i18n/et.po
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-11-05 04:53+0000\n"
-"X-Generator: Launchpad (build 14231)\n"
+"X-Launchpad-Export-Date: 2011-12-07 04:50+0000\n"
+"X-Generator: Launchpad (build 14435)\n"
#. module: mrp
#: field:mrp.production,move_created_ids:0
@@ -715,7 +715,7 @@ msgid "Per month"
msgstr "Kuus"
#. module: mrp
-#: code:addons/mrp/mrp.py:595
+#: code:addons/mrp/mrp.py:591
#: code:addons/mrp/wizard/change_production_qty.py:77
#: code:addons/mrp/wizard/change_production_qty.py:82
#, python-format
@@ -728,7 +728,7 @@ msgid "Product Name"
msgstr "Toote nimi"
#. module: mrp
-#: code:addons/mrp/mrp.py:495
+#: code:addons/mrp/mrp.py:491
#, python-format
msgid "Invalid action !"
msgstr "Vigane tegevus !"
@@ -1240,7 +1240,7 @@ msgstr ""
#. module: mrp
#: help:mrp.production,picking_id:0
msgid ""
-"This is the internal picking list that brings the finished product to the "
+"This is the Internal Picking List that brings the finished product to the "
"production plan"
msgstr ""
@@ -1294,7 +1294,7 @@ msgid "Month -1"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:924
+#: code:addons/mrp/mrp.py:914
#, python-format
msgid "Manufacturing order '%s' is scheduled for the %s."
msgstr ""
@@ -1305,7 +1305,7 @@ msgid "Production Order N° :"
msgstr "tootmiskorralduse N° :"
#. module: mrp
-#: code:addons/mrp/mrp.py:640
+#: code:addons/mrp/mrp.py:630
#, python-format
msgid "Manufacturing order '%s' is ready to produce."
msgstr ""
@@ -1534,7 +1534,7 @@ msgid "Manufacturing Orders To Start"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:495
+#: code:addons/mrp/mrp.py:491
#, python-format
msgid "Cannot delete Production Order(s) which are in %s State!"
msgstr ""
@@ -1624,7 +1624,7 @@ msgid "Production Analysis"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:349
+#: code:addons/mrp/mrp.py:345
#, python-format
msgid "Copy"
msgstr ""
@@ -2113,7 +2113,7 @@ msgid "Product type is Stockable or Consumable."
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:595
+#: code:addons/mrp/mrp.py:591
#: code:addons/mrp/wizard/change_production_qty.py:77
#: code:addons/mrp/wizard/change_production_qty.py:82
#, python-format
diff --git a/addons/mrp/i18n/fi.po b/addons/mrp/i18n/fi.po
index 78a0b3583b9..bfcdf990112 100644
--- a/addons/mrp/i18n/fi.po
+++ b/addons/mrp/i18n/fi.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2011-01-11 11:15+0000\n"
-"PO-Revision-Date: 2011-01-19 12:22+0000\n"
-"Last-Translator: Pekka Pylvänäinen \n"
+"PO-Revision-Date: 2011-12-06 09:50+0000\n"
+"Last-Translator: Fabien (Open ERP) \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-11-05 04:53+0000\n"
-"X-Generator: Launchpad (build 14231)\n"
+"X-Launchpad-Export-Date: 2011-12-07 04:50+0000\n"
+"X-Generator: Launchpad (build 14435)\n"
#. module: mrp
#: field:mrp.production,move_created_ids:0
@@ -749,7 +749,7 @@ msgid "Per month"
msgstr "Kuukaudessa"
#. module: mrp
-#: code:addons/mrp/mrp.py:595
+#: code:addons/mrp/mrp.py:591
#: code:addons/mrp/wizard/change_production_qty.py:77
#: code:addons/mrp/wizard/change_production_qty.py:82
#, python-format
@@ -762,7 +762,7 @@ msgid "Product Name"
msgstr "Tuotteen nimi"
#. module: mrp
-#: code:addons/mrp/mrp.py:495
+#: code:addons/mrp/mrp.py:491
#, python-format
msgid "Invalid action !"
msgstr "Virheellinen toiminto!"
@@ -1285,7 +1285,7 @@ msgstr "Paikka jonne järjestelmä varastoi valmiit tuotteet."
#. module: mrp
#: help:mrp.production,picking_id:0
msgid ""
-"This is the internal picking list that brings the finished product to the "
+"This is the Internal Picking List that brings the finished product to the "
"production plan"
msgstr ""
"Tämä on sisäinen keräilyslista joka tuo lopputuotteen tuontatosuunnitelmaan"
@@ -1343,7 +1343,7 @@ msgid "Month -1"
msgstr "edellinen kk"
#. module: mrp
-#: code:addons/mrp/mrp.py:924
+#: code:addons/mrp/mrp.py:914
#, python-format
msgid "Manufacturing order '%s' is scheduled for the %s."
msgstr "Valmistustilaus '%s' on aikataulutettu '%s':lle."
@@ -1354,7 +1354,7 @@ msgid "Production Order N° :"
msgstr "Tuotantotilaus nro:"
#. module: mrp
-#: code:addons/mrp/mrp.py:640
+#: code:addons/mrp/mrp.py:630
#, python-format
msgid "Manufacturing order '%s' is ready to produce."
msgstr "Valmistustilaus '%s'on valmis tuotantoon."
@@ -1589,7 +1589,7 @@ msgid "Manufacturing Orders To Start"
msgstr "Aloitettavat valmistustilaukset"
#. module: mrp
-#: code:addons/mrp/mrp.py:495
+#: code:addons/mrp/mrp.py:491
#, python-format
msgid "Cannot delete Production Order(s) which are in %s State!"
msgstr "Valmistustilauksia, jotka ovat %s tilassa, ei voi poistaa!"
@@ -1682,7 +1682,7 @@ msgid "Production Analysis"
msgstr "Tuotannon analyysi"
#. module: mrp
-#: code:addons/mrp/mrp.py:349
+#: code:addons/mrp/mrp.py:345
#, python-format
msgid "Copy"
msgstr "Kopioi"
@@ -2185,7 +2185,7 @@ msgid "Product type is Stockable or Consumable."
msgstr "Tuotetyyppi on varastoitava tai käytettävä"
#. module: mrp
-#: code:addons/mrp/mrp.py:595
+#: code:addons/mrp/mrp.py:591
#: code:addons/mrp/wizard/change_production_qty.py:77
#: code:addons/mrp/wizard/change_production_qty.py:82
#, python-format
@@ -3219,6 +3219,12 @@ msgstr "Vuosi"
#~ "Työpisteen suorittavien rinnakkaisten tehtävien lukumäärä. Jos työpisteen "
#~ "henkilöstö on 5 työntekijää, kapasiteetti sykliä kohti on 5."
+#~ msgid ""
+#~ "This is the internal picking list that brings the finished product to the "
+#~ "production plan"
+#~ msgstr ""
+#~ "Tämä on sisäinen keräilyslista joka tuo lopputuotteen tuontatosuunnitelmaan"
+
#~ msgid ""
#~ "Description of the work center. Explain here what's a cycle according to "
#~ "this work center."
diff --git a/addons/mrp/i18n/fr.po b/addons/mrp/i18n/fr.po
index 884c885b019..628aeae9449 100644
--- a/addons/mrp/i18n/fr.po
+++ b/addons/mrp/i18n/fr.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:15+0000\n"
-"PO-Revision-Date: 2011-09-26 12:16+0000\n"
+"PO-Revision-Date: 2011-12-06 10:24+0000\n"
"Last-Translator: lholivier \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-11-05 04:53+0000\n"
-"X-Generator: Launchpad (build 14231)\n"
+"X-Launchpad-Export-Date: 2011-12-07 04:50+0000\n"
+"X-Generator: Launchpad (build 14435)\n"
#. module: mrp
#: field:mrp.bom,product_uos:0
@@ -776,7 +776,7 @@ msgid "Per month"
msgstr "Par mois"
#. module: mrp
-#: code:addons/mrp/mrp.py:595
+#: code:addons/mrp/mrp.py:591
#: code:addons/mrp/wizard/change_production_qty.py:77
#: code:addons/mrp/wizard/change_production_qty.py:82
#, python-format
@@ -789,7 +789,7 @@ msgid "Product Name"
msgstr "Nom du Produit"
#. module: mrp
-#: code:addons/mrp/mrp.py:495
+#: code:addons/mrp/mrp.py:491
#, python-format
msgid "Invalid action !"
msgstr "Action non valide !"
@@ -1374,7 +1374,7 @@ msgstr "Emplacement où le système stockera les produits finis."
#. module: mrp
#: help:mrp.production,picking_id:0
msgid ""
-"This is the internal picking list that brings the finished product to the "
+"This is the Internal Picking List that brings the finished product to the "
"production plan"
msgstr ""
"C'est le bon de transfert interne qui fournit les produits finis au plan de "
@@ -1434,7 +1434,7 @@ msgid "Month -1"
msgstr "Mois -1"
#. module: mrp
-#: code:addons/mrp/mrp.py:924
+#: code:addons/mrp/mrp.py:914
#, python-format
msgid "Manufacturing order '%s' is scheduled for the %s."
msgstr "Ordre de production '%s' est planifié pour le %s."
@@ -1445,7 +1445,7 @@ msgid "Production Order N° :"
msgstr "Ordre de Production N° :"
#. module: mrp
-#: code:addons/mrp/mrp.py:640
+#: code:addons/mrp/mrp.py:630
#, python-format
msgid "Manufacturing order '%s' is ready to produce."
msgstr "L'ordre de production '%s' est pret a être produit."
@@ -1688,7 +1688,7 @@ msgid "Manufacturing Orders To Start"
msgstr "Ordres de fabrication à lancer"
#. module: mrp
-#: code:addons/mrp/mrp.py:495
+#: code:addons/mrp/mrp.py:491
#, python-format
msgid "Cannot delete Production Order(s) which are in %s State!"
msgstr "Impossible de supprimer l'ordre de production à l'état %s !"
@@ -1767,7 +1767,7 @@ msgid "Production Analysis"
msgstr "Analyse de la production"
#. module: mrp
-#: code:addons/mrp/mrp.py:349
+#: code:addons/mrp/mrp.py:345
#, python-format
msgid "Copy"
msgstr "Copier"
@@ -2295,7 +2295,7 @@ msgid "Product type is Stockable or Consumable."
msgstr "Le type produit est stockable ou consommable."
#. module: mrp
-#: code:addons/mrp/mrp.py:595
+#: code:addons/mrp/mrp.py:591
#: code:addons/mrp/wizard/change_production_qty.py:77
#: code:addons/mrp/wizard/change_production_qty.py:82
#, python-format
@@ -3340,6 +3340,13 @@ msgstr "Année"
#~ "Le nom de l'objet doit commencer par x_ et ne doit contenir aucun caractère "
#~ "spécial!"
+#~ msgid ""
+#~ "This is the internal picking list that brings the finished product to the "
+#~ "production plan"
+#~ msgstr ""
+#~ "C'est le bon de transfert interne qui fournit les produits finis au plan de "
+#~ "production"
+
#~ msgid "A cycle is defined in the workcenter definition."
#~ msgstr "Un cycle est défini dans la définition du Centre de Production."
diff --git a/addons/mrp/i18n/gl.po b/addons/mrp/i18n/gl.po
index 3ba7c6c8c85..7410d5e6ece 100644
--- a/addons/mrp/i18n/gl.po
+++ b/addons/mrp/i18n/gl.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2011-01-11 11:15+0000\n"
-"PO-Revision-Date: 2011-06-09 15:28+0000\n"
-"Last-Translator: FULL NAME \n"
+"PO-Revision-Date: 2011-12-06 10:31+0000\n"
+"Last-Translator: Fabien (Open ERP) \n"
"Language-Team: Galician \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-11-05 04:53+0000\n"
-"X-Generator: Launchpad (build 14231)\n"
+"X-Launchpad-Export-Date: 2011-12-07 04:50+0000\n"
+"X-Generator: Launchpad (build 14435)\n"
#. module: mrp
#: field:mrp.production,move_created_ids:0
@@ -757,7 +757,7 @@ msgid "Per month"
msgstr "Por mes"
#. module: mrp
-#: code:addons/mrp/mrp.py:595
+#: code:addons/mrp/mrp.py:591
#: code:addons/mrp/wizard/change_production_qty.py:77
#: code:addons/mrp/wizard/change_production_qty.py:82
#, python-format
@@ -770,7 +770,7 @@ msgid "Product Name"
msgstr "Nome produto"
#. module: mrp
-#: code:addons/mrp/mrp.py:495
+#: code:addons/mrp/mrp.py:491
#, python-format
msgid "Invalid action !"
msgstr "Acción non válida!"
@@ -1314,7 +1314,7 @@ msgstr "Lugar onde almacenará o sistema os produtos rematados"
#. module: mrp
#: help:mrp.production,picking_id:0
msgid ""
-"This is the internal picking list that brings the finished product to the "
+"This is the Internal Picking List that brings the finished product to the "
"production plan"
msgstr ""
"Este é o albará interno que trae o produto rematado ó plan de produción."
@@ -1373,7 +1373,7 @@ msgid "Month -1"
msgstr "Mes -1"
#. module: mrp
-#: code:addons/mrp/mrp.py:924
+#: code:addons/mrp/mrp.py:914
#, python-format
msgid "Manufacturing order '%s' is scheduled for the %s."
msgstr "Orde de produción '%s' planificada para o '%s'"
@@ -1384,7 +1384,7 @@ msgid "Production Order N° :"
msgstr "Nº orde produción:"
#. module: mrp
-#: code:addons/mrp/mrp.py:640
+#: code:addons/mrp/mrp.py:630
#, python-format
msgid "Manufacturing order '%s' is ready to produce."
msgstr "A orde de fabricación '%s' está preparada para producir."
@@ -1626,7 +1626,7 @@ msgid "Manufacturing Orders To Start"
msgstr "Ordes de produción a iniciar"
#. module: mrp
-#: code:addons/mrp/mrp.py:495
+#: code:addons/mrp/mrp.py:491
#, python-format
msgid "Cannot delete Production Order(s) which are in %s State!"
msgstr ""
@@ -1720,7 +1720,7 @@ msgid "Production Analysis"
msgstr "Análise de produción"
#. module: mrp
-#: code:addons/mrp/mrp.py:349
+#: code:addons/mrp/mrp.py:345
#, python-format
msgid "Copy"
msgstr "Copiar"
@@ -2243,7 +2243,7 @@ msgid "Product type is Stockable or Consumable."
msgstr "O Tipo de produto é almacenable ou consumible."
#. module: mrp
-#: code:addons/mrp/mrp.py:595
+#: code:addons/mrp/mrp.py:591
#: code:addons/mrp/wizard/change_production_qty.py:77
#: code:addons/mrp/wizard/change_production_qty.py:82
#, python-format
@@ -2614,6 +2614,12 @@ msgstr "Ano"
#~ "ordes de fabricación con excepcións\n"
#~ " "
+#~ msgid ""
+#~ "This is the internal picking list that brings the finished product to the "
+#~ "production plan"
+#~ msgstr ""
+#~ "Este é o albará interno que trae o produto rematado ó plan de produción."
+
#~ msgid ""
#~ "Routing indicates all the workcenters used, for how long and/or cycles.If "
#~ "Routing is indicated then,the third tab of a production order (workcenters) "
diff --git a/addons/mrp/i18n/hi.po b/addons/mrp/i18n/hi.po
index 40199555bbc..9ece8255329 100644
--- a/addons/mrp/i18n/hi.po
+++ b/addons/mrp/i18n/hi.po
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-11-05 04:54+0000\n"
-"X-Generator: Launchpad (build 14231)\n"
+"X-Launchpad-Export-Date: 2011-12-07 04:50+0000\n"
+"X-Generator: Launchpad (build 14435)\n"
#. module: mrp
#: field:mrp.production,move_created_ids:0
@@ -716,7 +716,7 @@ msgid "Per month"
msgstr "प्रति माह"
#. module: mrp
-#: code:addons/mrp/mrp.py:595
+#: code:addons/mrp/mrp.py:591
#: code:addons/mrp/wizard/change_production_qty.py:77
#: code:addons/mrp/wizard/change_production_qty.py:82
#, python-format
@@ -729,7 +729,7 @@ msgid "Product Name"
msgstr "वस्तु का नाम"
#. module: mrp
-#: code:addons/mrp/mrp.py:495
+#: code:addons/mrp/mrp.py:491
#, python-format
msgid "Invalid action !"
msgstr ""
@@ -1241,7 +1241,7 @@ msgstr ""
#. module: mrp
#: help:mrp.production,picking_id:0
msgid ""
-"This is the internal picking list that brings the finished product to the "
+"This is the Internal Picking List that brings the finished product to the "
"production plan"
msgstr ""
@@ -1295,7 +1295,7 @@ msgid "Month -1"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:924
+#: code:addons/mrp/mrp.py:914
#, python-format
msgid "Manufacturing order '%s' is scheduled for the %s."
msgstr ""
@@ -1306,7 +1306,7 @@ msgid "Production Order N° :"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:640
+#: code:addons/mrp/mrp.py:630
#, python-format
msgid "Manufacturing order '%s' is ready to produce."
msgstr ""
@@ -1535,7 +1535,7 @@ msgid "Manufacturing Orders To Start"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:495
+#: code:addons/mrp/mrp.py:491
#, python-format
msgid "Cannot delete Production Order(s) which are in %s State!"
msgstr ""
@@ -1625,7 +1625,7 @@ msgid "Production Analysis"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:349
+#: code:addons/mrp/mrp.py:345
#, python-format
msgid "Copy"
msgstr ""
@@ -2114,7 +2114,7 @@ msgid "Product type is Stockable or Consumable."
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:595
+#: code:addons/mrp/mrp.py:591
#: code:addons/mrp/wizard/change_production_qty.py:77
#: code:addons/mrp/wizard/change_production_qty.py:82
#, python-format
diff --git a/addons/mrp/i18n/hr.po b/addons/mrp/i18n/hr.po
index 0f488328de2..4600dbaa8c6 100644
--- a/addons/mrp/i18n/hr.po
+++ b/addons/mrp/i18n/hr.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:15+0000\n"
-"PO-Revision-Date: 2010-08-03 08:21+0000\n"
-"Last-Translator: Mantavya Gajjar (Open ERP) \n"
+"PO-Revision-Date: 2011-12-12 09:28+0000\n"
+"Last-Translator: Tomislav Bosnjakovic \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-11-05 04:54+0000\n"
-"X-Generator: Launchpad (build 14231)\n"
+"X-Launchpad-Export-Date: 2011-12-13 05:01+0000\n"
+"X-Generator: Launchpad (build 14458)\n"
#. module: mrp
#: field:mrp.production,move_created_ids:0
@@ -31,6 +31,11 @@ msgid ""
"raw materials (stock decrease) and the production of the finished products "
"(stock increase) when the order is processed."
msgstr ""
+"Manufacturing Orders are usually proposed automatically by OpenERP based on "
+"the bill of materials and the procurement rules, but you can also create "
+"manufacturing orders manually. OpenERP will handle the consumption of the "
+"raw materials (stock decrease) and the production of the finished products "
+"(stock increase) when the order is processed."
#. module: mrp
#: help:mrp.production,location_src_id:0
@@ -40,22 +45,22 @@ msgstr "Mjesto gdje sistem traži komponente"
#. module: mrp
#: field:mrp.production,workcenter_lines:0
msgid "Work Centers Utilisation"
-msgstr "Iskorištenje Radnih Centara"
+msgstr "Iskorištenost radnih centara"
#. module: mrp
#: view:mrp.routing.workcenter:0
msgid "Routing Work Centers"
-msgstr "Slijed Radnih Centara"
+msgstr "Radni centri usmjeravanja"
#. module: mrp
#: model:ir.module.module,shortdesc:mrp.module_meta_information
msgid "Manufacturing Resource Planning"
-msgstr ""
+msgstr "Planiranje resursa proizvodnje"
#. module: mrp
#: report:mrp.production.order:0
msgid "No. Of Cycles"
-msgstr "Br. Ciklusa"
+msgstr "Br. ciklusa"
#. module: mrp
#: field:mrp.routing.workcenter,cycle_nbr:0
@@ -68,12 +73,14 @@ msgid ""
"The 'Minimum stock rule' allows the system to create procurement orders "
"automatically as soon as the minimum stock is reached."
msgstr ""
+"'Pravilo minimalne zalihe' omogućuje automatsko kreiranje naloga nabave kada "
+"nivo zalihe dostigne definirani minimum."
#. module: mrp
#: field:mrp.production,picking_id:0
#: field:mrp.production.order,picking_id:0
msgid "Picking list"
-msgstr ""
+msgstr "Skladišnica"
#. module: mrp
#: code:addons/mrp/report/price.py:121
@@ -90,7 +97,7 @@ msgstr ""
#. module: mrp
#: view:mrp.production:0
msgid "Scrap Products"
-msgstr "Otpad"
+msgstr "Otpis proizvoda"
#. module: mrp
#: view:mrp.production.order:0
@@ -102,22 +109,22 @@ msgstr "Dan"
#: model:ir.actions.act_window,name:mrp.mrp_routing_action
#: model:ir.ui.menu,name:mrp.menu_mrp_routing_action
msgid "Routings"
-msgstr ""
+msgstr "Usmjeravanja"
#. module: mrp
#: field:mrp.workcenter,product_id:0
msgid "Work Center Product"
-msgstr ""
+msgstr "Proizvod radnog centra"
#. module: mrp
#: view:mrp.bom:0
msgid "Search Bill Of Material"
-msgstr "Pretraži Listu Materijala"
+msgstr "Traži sastavnice"
#. module: mrp
#: model:process.node,note:mrp.process_node_stockproduct1
msgid "For stockable products and consumables"
-msgstr ""
+msgstr "For stockable products and consumables"
#. module: mrp
#: model:process.transition,name:mrp.process_transition_stockproduction0
@@ -130,6 +137,8 @@ msgid ""
"Number of iterations this work center has to do in the specified operation "
"of the routing."
msgstr ""
+"Number of iterations this work center has to do in the specified operation "
+"of the routing."
#. module: mrp
#: view:mrp.bom:0
@@ -137,18 +146,18 @@ msgstr ""
#: view:mrp.production:0
#: field:mrp.production,name:0
msgid "Reference"
-msgstr "Referenca"
+msgstr "Vezna oznaka"
#. module: mrp
#: view:mrp.production:0
msgid "Finished Products"
-msgstr "Gotovi Proizvodi"
+msgstr "Gototvi proizvodi"
#. module: mrp
#: model:process.transition,name:mrp.process_transition_servicerfq0
#: model:process.transition,name:mrp.process_transition_stockrfq0
msgid "To Buy"
-msgstr "Za Kupiti"
+msgstr "Za nabaviti"
#. module: mrp
#: view:mrp.production.order:0
@@ -165,17 +174,17 @@ msgstr ""
#. module: mrp
#: model:process.transition,note:mrp.process_transition_purchaseprocure0
msgid "The system launches automatically a RFQ to the preferred supplier."
-msgstr ""
+msgstr "Sustav automatski pokreče RFQ na preferiranog dobavljača."
#. module: mrp
#: view:mrp.production:0
msgid "Products to Finish"
-msgstr "Proizvodi za Završiti"
+msgstr "Proizvodi za završiti"
#. module: mrp
#: selection:mrp.bom,method:0
msgid "Set / Pack"
-msgstr "Set / Pakovanje"
+msgstr "Set / Paket"
#. module: mrp
#: field:mrp.installer,mrp_subproduct:0
@@ -188,12 +197,12 @@ msgstr "MRP Podproizvodi"
#: view:mrp.production.order:0
#: field:mrp.production.order,state:0
msgid "State"
-msgstr "Status"
+msgstr "Stanje"
#. module: mrp
#: field:mrp.workcenter,costs_hour:0
msgid "Cost per hour"
-msgstr "Trošak po Stu"
+msgstr "Trošak po satu"
#. module: mrp
#: model:process.transition,note:mrp.process_transition_stockproduction0
@@ -201,7 +210,7 @@ msgid ""
"In case the Supply method of the product is Produce, the system creates a "
"production order."
msgstr ""
-"U slučaju da je metoda nabave proizvoda Proizvodnja, sistem kreira nalog za "
+"Kada je metoda nabave proizvoda Proizvodnja, sistem kreira nalog za "
"proizvodnju."
#. module: mrp
@@ -217,7 +226,7 @@ msgstr "JM"
#: field:mrp.production.order,product_qty:0
#: field:mrp.production.product.line,product_qty:0
msgid "Product Qty"
-msgstr "Količina proizvoda"
+msgstr "Količina"
#. module: mrp
#: help:mrp.workcenter,product_id:0
@@ -225,6 +234,8 @@ msgid ""
"Fill this product to track easily your production costs in the analytic "
"accounting."
msgstr ""
+"Ispunite ovaj proizvod kako b jednostavno pratili troškove proizvodnje "
+"unutar analitike računovodstva."
#. module: mrp
#: model:process.node,note:mrp.process_node_purchaseprocure0
@@ -244,7 +255,7 @@ msgstr "Izvještavanje"
#. module: mrp
#: field:mrp.workcenter,costs_cycle_account_id:0
msgid "Cycle Account"
-msgstr "Račun Ciklusa"
+msgstr "Konto ciklusa"
#. module: mrp
#: code:addons/mrp/report/price.py:121
@@ -260,7 +271,7 @@ msgstr "["
#. module: mrp
#: model:process.transition,name:mrp.process_transition_procureserviceproduct0
msgid "Procurement of services"
-msgstr "Nabava servisa"
+msgstr "Nabava usluga"
#. module: mrp
#: view:mrp.workcenter:0
@@ -270,7 +281,7 @@ msgstr "Informacija o kapacitetu"
#. module: mrp
#: report:mrp.production.order:0
msgid "Destination Location"
-msgstr "Odredišna Lokacija"
+msgstr "Odredišna lokacija"
#. module: mrp
#: view:mrp.installer:0
@@ -280,7 +291,7 @@ msgstr "naslov"
#. module: mrp
#: model:ir.ui.menu,name:mrp.menu_mrp_bom
msgid "Master Data"
-msgstr "Matični Podaci"
+msgstr "Glavni podaci"
#. module: mrp
#: model:process.transition,note:mrp.process_transition_stockmts0
@@ -288,11 +299,13 @@ msgid ""
"The system waits for the products to be available in the stock. These "
"products are typically procured manually or through a minimum stock rule."
msgstr ""
+"The system waits for the products to be available in the stock. These "
+"products are typically procured manually or through a minimum stock rule."
#. module: mrp
#: report:mrp.production.order:0
msgid "Partner Ref"
-msgstr "Referenca Parnera"
+msgstr "Oznaka partnera"
#. module: mrp
#: selection:mrp.workcenter.load,measure_unit:0
@@ -337,7 +350,7 @@ msgstr "Lipanj"
#. module: mrp
#: model:ir.model,name:mrp.model_mrp_product_produce
msgid "Product Produce"
-msgstr "Proizvedi Proizvod"
+msgstr "Proizvedi proizvod"
#. module: mrp
#: selection:mrp.production.order,month:0
@@ -353,12 +366,12 @@ msgstr ""
#. module: mrp
#: model:process.transition,name:mrp.process_transition_procurestockableproduct0
msgid "Procurement of stockable Product"
-msgstr "Nabava skladištivog Proizvoda"
+msgstr "Nabava uskladištivog proizvoda"
#. module: mrp
#: view:mrp.bom:0
msgid "Default UOM"
-msgstr "Predefinirana JM"
+msgstr "Uobičajena JM"
#. module: mrp
#: code:addons/mrp/report/price.py:130
@@ -377,7 +390,7 @@ msgstr "Broj sati"
#. module: mrp
#: view:mrp.production:0
msgid "Confirm Production"
-msgstr "Potvrdi Proizvodnju"
+msgstr "Potvrdi proizvodnju"
#. module: mrp
#: model:process.transition,note:mrp.process_transition_stockproduct0
@@ -385,6 +398,8 @@ msgid ""
"The system creates an order (production or purchased) depending on the sold "
"quantity and the products parameters."
msgstr ""
+"Sistem kreira nalog (za proizvodnju ili nabavu) prema prodanim količinama i "
+"parametrima proizvoda."
#. module: mrp
#: model:process.transition,note:mrp.process_transition_servicemts0
@@ -392,6 +407,8 @@ msgid ""
"This is used in case of a service without any impact in the system, a "
"training session for instance."
msgstr ""
+"This is used in case of a service without any impact in the system, a "
+"training session for instance."
#. module: mrp
#: field:mrp.installer,mrp_repair:0
@@ -411,7 +428,7 @@ msgstr "Radno vrijeme"
#. module: mrp
#: model:ir.actions.act_window,name:mrp.action_report_in_out_picking_tree
msgid "Weekly Stock Value Variation"
-msgstr "Tjedna Varijacija Vrijednosti Zalihe"
+msgstr "Tjedna varijacija vrijednosti zalihe"
#. module: mrp
#: help:mrp.installer,mrp_repair:0
@@ -425,12 +442,12 @@ msgstr ""
#: report:mrp.production.order:0
#: field:mrp.production.order,date_planned:0
msgid "Scheduled Date"
-msgstr "Planirani Datum"
+msgstr "Planirani datum"
#. module: mrp
#: report:mrp.production.order:0
msgid "Bill Of Material"
-msgstr "Lista Materijala"
+msgstr "Sastavnica"
#. module: mrp
#: help:mrp.routing,location_id:0
@@ -439,21 +456,24 @@ msgid ""
"needed.Set a location if you produce at a fixed location. This can be a "
"partner location if you subcontract the manufacturing operations."
msgstr ""
+"Keep empty if you produce at the location where the finished products are "
+"needed.Set a location if you produce at a fixed location. This can be a "
+"partner location if you subcontract the manufacturing operations."
#. module: mrp
#: view:board.board:0
msgid "Stock Value Variation"
-msgstr ""
+msgstr "Stock Value Variation"
#. module: mrp
#: model:ir.actions.act_window,name:mrp.action2
msgid "Bill of Materials Structure"
-msgstr "Struktura Liste Materijala"
+msgstr "Struktura sastavnice"
#. module: mrp
#: model:process.node,note:mrp.process_node_serviceproduct0
msgid "Product type is service"
-msgstr "Tip proizvoda je servis"
+msgstr "Tip proizvoda je usluga"
#. module: mrp
#: model:ir.actions.act_window,help:mrp.mrp_property_group_action
@@ -461,16 +481,18 @@ msgid ""
"Define specific property groups that can be assigned to the properties of "
"your bill of materials."
msgstr ""
+"Define specific property groups that can be assigned to the properties of "
+"your bill of materials."
#. module: mrp
#: model:process.transition,name:mrp.process_transition_bom0
msgid "Manufacturing decomposition"
-msgstr ""
+msgstr "Dekompozicija proizvodnje"
#. module: mrp
#: model:process.node,note:mrp.process_node_serviceproduct1
msgid "For Services."
-msgstr "Za Servise"
+msgstr "Za usluge."
#. module: mrp
#: field:mrp.bom.revision,date:0
@@ -484,6 +506,8 @@ msgid ""
"Complete this only if you want automatic analytic accounting entries on "
"production orders."
msgstr ""
+"Complete this only if you want automatic analytic accounting entries on "
+"production orders."
#. module: mrp
#: field:mrp.production.workcenter.line,cycle:0
@@ -494,7 +518,7 @@ msgstr "Broj ciklusa"
#: model:process.node,note:mrp.process_node_orderrfq0
#: model:process.node,note:mrp.process_node_rfq0
msgid "Request for Quotation."
-msgstr "Zahtjev za Ponudu"
+msgstr "Zahtjev za ponudom"
#. module: mrp
#: model:process.transition,note:mrp.process_transition_billofmaterialrouting0
@@ -502,32 +526,34 @@ msgid ""
"The Bill of Material is linked to a routing, i.e. the succession of work "
"centers."
msgstr ""
+"The Bill of Material is linked to a routing, i.e. the succession of work "
+"centers."
#. module: mrp
#: constraint:product.product:0
msgid "Error: Invalid ean code"
-msgstr "Pogreška: Nevažeći EAN kod"
+msgstr "Greška: Neispravan barkod!"
#. module: mrp
#: view:mrp.routing:0
#: field:mrp.routing,location_id:0
msgid "Production Location"
-msgstr ""
+msgstr "Lokacija proizvodnje"
#. module: mrp
#: view:mrp.production:0
msgid "Change Qty"
-msgstr ""
+msgstr "Promjeni kol."
#. module: mrp
#: view:mrp.production:0
msgid "Force Reservation"
-msgstr ""
+msgstr "Force Reservation"
#. module: mrp
#: field:mrp.bom.revision,author_id:0
msgid "Author"
-msgstr ""
+msgstr "Autor"
#. module: mrp
#: field:report.mrp.inout,value:0
@@ -537,12 +563,12 @@ msgstr "Vrijednost Zalihe"
#. module: mrp
#: model:ir.actions.act_window,name:mrp.action_product_bom_structure
msgid "Product BoM Structure"
-msgstr ""
+msgstr "Proizvod BoM Struktura"
#. module: mrp
#: view:mrp.production:0
msgid "Search Production"
-msgstr "Pretraži Proizvodnju"
+msgstr "Traži proizvodnju"
#. module: mrp
#: code:addons/mrp/report/price.py:130
@@ -558,36 +584,36 @@ msgstr "Ožujak"
#. module: mrp
#: field:mrp.bom,child_complete_ids:0
msgid "BoM Hierarchy"
-msgstr ""
+msgstr "BoM Hierarchy"
#. module: mrp
#: model:ir.actions.act_window,name:mrp.act_mrp_product_produce
#: view:mrp.product.produce:0
#: view:mrp.production:0
msgid "Produce"
-msgstr ""
+msgstr "Produce"
#. module: mrp
#: help:mrp.workcenter,costs_cycle:0
msgid "Specify Cost of Work Center per cycle."
-msgstr ""
+msgstr "Trošak radnog centra po ciklusu."
#. module: mrp
#: selection:mrp.production,state:0
#: view:mrp.production.order:0
#: selection:mrp.production.order,state:0
msgid "Picking Exception"
-msgstr ""
+msgstr "Skladišna iznimka"
#. module: mrp
#: field:mrp.bom,bom_lines:0
msgid "BoM Lines"
-msgstr ""
+msgstr "BoM Lines"
#. module: mrp
#: field:mrp.workcenter,time_start:0
msgid "Time before prod."
-msgstr ""
+msgstr "Time before prod."
#. module: mrp
#: help:mrp.routing,active:0
@@ -595,11 +621,13 @@ msgid ""
"If the active field is set to False, it will allow you to hide the routing "
"without removing it."
msgstr ""
+"If the active field is set to False, it will allow you to hide the routing "
+"without removing it."
#. module: mrp
#: model:process.transition,name:mrp.process_transition_billofmaterialrouting0
msgid "Material Routing"
-msgstr ""
+msgstr "Usmjeravanje materijala"
#. module: mrp
#: view:mrp.production:0
@@ -607,7 +635,7 @@ msgstr ""
#: report:mrp.production.order:0
#: field:mrp.production.order,consumed_products:0
msgid "Consumed Products"
-msgstr "Utrošeni Proizvodi"
+msgstr "Utrošeni proizvodi"
#. module: mrp
#: constraint:mrp.bom:0
@@ -619,7 +647,7 @@ msgstr ""
#: model:ir.model,name:mrp.model_mrp_workcenter_load
#: model:ir.model,name:mrp.model_report_workcenter_load
msgid "Work Center Load"
-msgstr "Opterećenje Radnog Centra"
+msgstr "Opterećenje radnog centra"
#. module: mrp
#: code:addons/mrp/procurement.py:45
@@ -631,7 +659,7 @@ msgstr ""
#: model:ir.actions.act_window,name:mrp.mrp_bom_form_action2
#: model:ir.ui.menu,name:mrp.menu_mrp_bom_form_action2
msgid "Bill of Material Components"
-msgstr "Komponente Liste Materijala"
+msgstr "Komponente sastavnice"
#. module: mrp
#: field:mrp.production.order,nbr:0
@@ -656,16 +684,20 @@ msgid ""
"operations and to plan future loads on work centers based on production "
"plannification."
msgstr ""
+"The list of operations (list of work centers) to produce the finished "
+"product. The routing is mainly used to compute work center costs during "
+"operations and to plan future loads on work centers based on production "
+"plannification."
#. module: mrp
#: help:mrp.workcenter,time_cycle:0
msgid "Time in hours for doing one cycle."
-msgstr ""
+msgstr "Vrijeme u satima za jedan ciklus."
#. module: mrp
#: report:bom.structure:0
msgid "BOM Ref"
-msgstr ""
+msgstr "Ozn. sastavnice"
#. module: mrp
#: view:mrp.production:0
@@ -678,7 +710,7 @@ msgstr "U proizvodnji"
#. module: mrp
#: model:ir.ui.menu,name:mrp.menu_mrp_property
msgid "Master Bill of Materials"
-msgstr ""
+msgstr "Glavna sastavnica"
#. module: mrp
#: help:mrp.bom,product_uos:0
@@ -686,6 +718,7 @@ msgid ""
"Product UOS (Unit of Sale) is the unit of measurement for the invoicing and "
"promotion of stock."
msgstr ""
+"JP proizvoda (Jedinica Prodaje) je mjerna jedinica za fakturiranje prodaje."
#. module: mrp
#: view:mrp.product_price:0
@@ -697,7 +730,7 @@ msgstr "Ispis"
#: view:mrp.bom:0
#: view:mrp.workcenter:0
msgid "Type"
-msgstr "Tip"
+msgstr "Vrsta"
#. module: mrp
#: code:addons/mrp/report/price.py:150
@@ -709,7 +742,7 @@ msgstr "Ukupni Trošak "
#. module: mrp
#: model:process.node,note:mrp.process_node_minimumstockrule0
msgid "Linked to the 'Minimum stock rule' supplying method."
-msgstr ""
+msgstr "Vezano na 'Pravilo minimalne zalihe' metodu nabave."
#. module: mrp
#: selection:mrp.workcenter.load,time_unit:0
@@ -717,7 +750,7 @@ msgid "Per month"
msgstr "Mjesečno"
#. module: mrp
-#: code:addons/mrp/mrp.py:595
+#: code:addons/mrp/mrp.py:591
#: code:addons/mrp/wizard/change_production_qty.py:77
#: code:addons/mrp/wizard/change_production_qty.py:82
#, python-format
@@ -727,10 +760,10 @@ msgstr ""
#. module: mrp
#: report:bom.structure:0
msgid "Product Name"
-msgstr "Ime Proizvoda"
+msgstr "Naziv proizvoda"
#. module: mrp
-#: code:addons/mrp/mrp.py:495
+#: code:addons/mrp/mrp.py:491
#, python-format
msgid "Invalid action !"
msgstr "Pogrešna akcija !"
@@ -738,7 +771,7 @@ msgstr "Pogrešna akcija !"
#. module: mrp
#: help:mrp.bom,product_efficiency:0
msgid "A factor of 0.9 means a loss of 10% within the production process."
-msgstr ""
+msgstr "A factor of 0.9 means a loss of 10% within the production process."
#. module: mrp
#: view:mrp.installer:0
@@ -756,12 +789,12 @@ msgstr "Datum ispisa"
#: model:process.node,name:mrp.process_node_orderrfq0
#: model:process.node,name:mrp.process_node_rfq0
msgid "RFQ"
-msgstr ""
+msgstr "ZZP (RFQ)"
#. module: mrp
#: model:process.transition,name:mrp.process_transition_producttostockrules0
msgid "Procurement rule"
-msgstr ""
+msgstr "Pravilo nabave"
#. module: mrp
#: help:mrp.workcenter,costs_hour:0
@@ -790,6 +823,9 @@ msgid ""
"order creates a RFQ for a subcontracting purchase order or waits until the "
"service is done (= the delivery of the products)."
msgstr ""
+"Depending on the chosen method to 'supply' the service, the procurement "
+"order creates a RFQ for a subcontracting purchase order or waits until the "
+"service is done (= the delivery of the products)."
#. module: mrp
#: selection:mrp.production,priority:0
@@ -800,12 +836,12 @@ msgstr "Hitno"
#. module: mrp
#: model:ir.model,name:mrp.model_mrp_routing_workcenter
msgid "Work Center Usage"
-msgstr ""
+msgstr "Work Center Usage"
#. module: mrp
#: model:ir.model,name:mrp.model_mrp_production
msgid "Manufacturing Order"
-msgstr "Nalog za Proizvodnju"
+msgstr "Nalog proizvodnje"
#. module: mrp
#: model:process.transition,name:mrp.process_transition_productionprocureproducts0
@@ -823,19 +859,19 @@ msgstr ""
#: view:mrp.production:0
#: field:mrp.production,cycle_total:0
msgid "Total Cycles"
-msgstr "Ukupno Ciklusa"
+msgstr "Ukupno ciklusa"
#. module: mrp
#: selection:mrp.production,state:0
#: view:mrp.production.order:0
#: selection:mrp.production.order,state:0
msgid "Ready to Produce"
-msgstr "Spremno za Proizvodnju"
+msgstr "Spremno za proizvodnju"
#. module: mrp
#: field:mrp.bom.revision,name:0
msgid "Modification name"
-msgstr "Ime promjene"
+msgstr "Naziv promjene"
#. module: mrp
#: view:mrp.bom:0
@@ -847,7 +883,7 @@ msgstr "Datum"
#. module: mrp
#: field:mrp.bom,type:0
msgid "BoM Type"
-msgstr ""
+msgstr "BoM Type"
#. module: mrp
#: view:mrp.production.order:0
@@ -865,7 +901,7 @@ msgstr ""
#: view:mrp.production.order:0
#: view:mrp.property:0
msgid "Search"
-msgstr "Traži"
+msgstr "Search"
#. module: mrp
#: field:report.workcenter.load,cycle:0
@@ -875,30 +911,30 @@ msgstr "Broj Ciklusa"
#. module: mrp
#: model:ir.model,name:mrp.model_res_company
msgid "Companies"
-msgstr "Tvrtke"
+msgstr "Organizacije"
#. module: mrp
#: model:process.node,name:mrp.process_node_minimumstockrule0
#: model:process.node,name:mrp.process_node_productminimumstockrule0
msgid "Minimum Stock"
-msgstr ""
+msgstr "Minimalna zaliha"
#. module: mrp
#: model:ir.ui.menu,name:mrp.menus_dash_mrp
msgid "Dashboard"
-msgstr "Kontrolna ploča"
+msgstr "Kokpit"
#. module: mrp
#: view:board.board:0
msgid "Work Center Future Load"
-msgstr "Buduće Opterećenje Radnog Centra"
+msgstr "Buduće opterećenje radnog centra"
#. module: mrp
#: model:process.node,name:mrp.process_node_stockproduct0
#: model:process.node,name:mrp.process_node_stockproduct1
#: model:process.process,name:mrp.process_process_stockableproductprocess0
msgid "Stockable Product"
-msgstr "Uskladištivi proizvod"
+msgstr "Stockable Product"
#. module: mrp
#: code:addons/mrp/report/price.py:121
@@ -914,7 +950,7 @@ msgstr "Šifra"
#. module: mrp
#: report:mrp.production.order:0
msgid "No. Of Hours"
-msgstr "Br. Sati"
+msgstr "Br. sati"
#. module: mrp
#: field:mrp.installer,mrp_jit:0
@@ -925,7 +961,7 @@ msgstr ""
#: view:mrp.property:0
#: view:mrp.property.group:0
msgid "Property Group"
-msgstr "Grupa Svojstava"
+msgstr "Grupa svojstava"
#. module: mrp
#: view:mrp.production:0
@@ -935,7 +971,7 @@ msgstr "Kol."
#. module: mrp
#: model:process.node,note:mrp.process_node_production0
msgid "Manufacturing Plan."
-msgstr "Plan Proizvodnje"
+msgstr "Plan proizvodnje."
#. module: mrp
#: view:mrp.routing:0
@@ -957,7 +993,7 @@ msgstr ""
#: view:mrp.production:0
#: view:mrp.workcenter.load:0
msgid "Cancel"
-msgstr "Otkaži"
+msgstr "Odustani"
#. module: mrp
#: view:mrp.production:0
@@ -970,6 +1006,8 @@ msgid ""
"Number of operations this Work Center can do in parallel. If this Work "
"Center represents a team of 5 workers, the capacity per cycle is 5."
msgstr ""
+"Number of operations this Work Center can do in parallel. If this Work "
+"Center represents a team of 5 workers, the capacity per cycle is 5."
#. module: mrp
#: model:process.transition,note:mrp.process_transition_servicerfq0
@@ -977,11 +1015,13 @@ msgid ""
"If the service has a 'Buy' supply method, this creates a RFQ, a "
"subcontracting demand for instance."
msgstr ""
+"Ako je usluga koristi način opskrbe \"Kupovina\", stvara se RFQ, "
+"podugovaranje potražnje za primjer"
#. module: mrp
#: field:mrp.production,move_prod_id:0
msgid "Move product"
-msgstr "Premjesti Proizvod"
+msgstr "Premjesti proizvod"
#. module: mrp
#: view:mrp.production:0
@@ -991,7 +1031,7 @@ msgstr "Kasni"
#. module: mrp
#: model:process.node,name:mrp.process_node_servicemts0
msgid "Make to stock"
-msgstr ""
+msgstr "Sa skladišta (MTS)"
#. module: mrp
#: help:mrp.routing.workcenter,sequence:0
@@ -1002,28 +1042,28 @@ msgstr ""
#. module: mrp
#: report:bom.structure:0
msgid "BOM Name"
-msgstr ""
+msgstr "BOM Name"
#. module: mrp
#: view:mrp.production:0
msgid "Start Production"
-msgstr "Pokreni Proizvodnju"
+msgstr "Pokreni proizvodnju"
#. module: mrp
#: model:ir.actions.act_window,name:mrp.open_board_manufacturing
#: model:ir.ui.menu,name:mrp.menu_board_manufacturing
msgid "Production Dashboard"
-msgstr "Upravljačka ploča proizvodnje"
+msgstr "Kokpit proizvodnje"
#. module: mrp
#: view:mrp.production:0
msgid "Source Loc."
-msgstr ""
+msgstr "Lok. izvora"
#. module: mrp
#: field:mrp.bom,position:0
msgid "Internal Reference"
-msgstr "Interna Referenca"
+msgstr "Interna oznaka"
#. module: mrp
#: help:mrp.installer,stock_location:0
@@ -1035,7 +1075,7 @@ msgstr ""
#. module: mrp
#: model:process.node,note:mrp.process_node_billofmaterial0
msgid "Product's structure"
-msgstr "Struktura Proizvoda"
+msgstr "Struktura proizvoda"
#. module: mrp
#: field:mrp.bom,name:0
@@ -1064,7 +1104,7 @@ msgstr ""
#. module: mrp
#: field:mrp.product.produce,mode:0
msgid "Mode"
-msgstr "Način"
+msgstr "Mode"
#. module: mrp
#: report:bom.structure:0
@@ -1074,7 +1114,7 @@ msgstr "]"
#. module: mrp
#: field:mrp.workcenter.load,measure_unit:0
msgid "Amount measuring unit"
-msgstr ""
+msgstr "Mjerna jedinica iznosa"
#. module: mrp
#: model:ir.actions.act_window,help:mrp.mrp_production_action_planning
@@ -1086,6 +1126,12 @@ msgid ""
"materials have been defined, OpenERP is capable of automatically deciding on "
"the manufacturing route depending on the needs of the company."
msgstr ""
+"Manufacturing Orders describe the operations that need to be carried out and "
+"the raw materials usage for each production stage. You use specifications "
+"(bills of materials or BoM) to work out the raw material requirements and "
+"the manufacturing orders needed for the finished products. Once the bills of "
+"materials have been defined, OpenERP is capable of automatically deciding on "
+"the manufacturing route depending on the needs of the company."
#. module: mrp
#: constraint:mrp.production:0
@@ -1095,7 +1141,7 @@ msgstr ""
#. module: mrp
#: model:ir.actions.act_window,name:mrp.mrp_production_action3
msgid "Manufacturing Orders in Progress"
-msgstr "Nalozi za Proizvodnju u Radu"
+msgstr "Nalozi proizvodnje u tijeku"
#. module: mrp
#: model:ir.module.module,description:mrp.module_meta_information
@@ -1139,7 +1185,7 @@ msgstr ""
#. module: mrp
#: model:ir.actions.act_window,name:mrp.mrp_production_action4
msgid "Manufacturing Orders Waiting Products"
-msgstr "Nalozi za Proizvodnju koji čekaju Proizvode"
+msgstr "Nalozi proizvodnje koji čekaju proizvode"
#. module: mrp
#: view:mrp.bom:0
@@ -1160,19 +1206,19 @@ msgstr "Trašak Ciklusa"
#. module: mrp
#: selection:mrp.workcenter.load,measure_unit:0
msgid "Amount in cycles"
-msgstr "Količina u ciklusima"
+msgstr "Iznos u ciklusima"
#. module: mrp
#: field:mrp.production,location_dest_id:0
#: view:mrp.production.order:0
#: field:mrp.production.order,location_dest_id:0
msgid "Finished Products Location"
-msgstr "Lokacija Završenih Proizvoda"
+msgstr "Lokacija gotovih proizvoda"
#. module: mrp
#: model:ir.ui.menu,name:mrp.menu_pm_resources_config
msgid "Resources"
-msgstr "Resursi"
+msgstr "Sredstva"
#. module: mrp
#: field:mrp.workcenter,costs_journal_id:0
@@ -1184,7 +1230,7 @@ msgstr "Dnevnik analitike"
#: model:ir.ui.menu,name:mrp.menu_view_resource_search_mrp
#: field:mrp.routing,workcenter_lines:0
msgid "Work Centers"
-msgstr "Radni Centri"
+msgstr "Radni centri"
#. module: mrp
#: selection:mrp.workcenter.load,time_unit:0
@@ -1199,6 +1245,10 @@ msgid ""
"They are attached to bills of materials that will define the required raw "
"materials."
msgstr ""
+"Routings allow you to create and manage the manufacturing operations that "
+"should be followed within your work centers in order to produce a product. "
+"They are attached to bills of materials that will define the required raw "
+"materials."
#. module: mrp
#: field:report.workcenter.load,hour:0
@@ -1208,7 +1258,7 @@ msgstr "Broj Sati"
#. module: mrp
#: view:mrp.routing:0
msgid "Work Center Operations"
-msgstr "Operacije Radnih Centara"
+msgstr "Operacije radnog centra"
#. module: mrp
#: view:mrp.routing:0
@@ -1222,7 +1272,7 @@ msgstr "Bilješke"
#: field:mrp.production.order,bom_id:0
#: model:process.node,name:mrp.process_node_billofmaterial0
msgid "Bill of Material"
-msgstr "Lista Materijala"
+msgstr "Sastavnica"
#. module: mrp
#: view:mrp.workcenter.load:0
@@ -1237,14 +1287,16 @@ msgstr "Opterećenje radnog centra"
#. module: mrp
#: help:mrp.production,location_dest_id:0
msgid "Location where the system will stock the finished products."
-msgstr ""
+msgstr "Lokacija gotovih proizvoda"
#. module: mrp
#: help:mrp.production,picking_id:0
msgid ""
-"This is the internal picking list that brings the finished product to the "
+"This is the Internal Picking List that brings the finished product to the "
"production plan"
msgstr ""
+"This is the Internal Picking List that brings the finished product to the "
+"production plan"
#. module: mrp
#: field:stock.change.standard.price,change_parent_price:0
@@ -1254,7 +1306,7 @@ msgstr ""
#. module: mrp
#: model:ir.model,name:mrp.model_stock_move
msgid "Stock Move"
-msgstr "Prijenos Zaliha"
+msgstr "Skladišni prijenosi"
#. module: mrp
#: model:process.transition,note:mrp.process_transition_producttostockrules0
@@ -1263,11 +1315,14 @@ msgid ""
"maxi quantity. It's available in the Inventory management menu and "
"configured by product."
msgstr ""
+"The Minimum Stock Rule is an automatic procurement rule based on a mini and "
+"maxi quantity. It's available in the Inventory management menu and "
+"configured by product."
#. module: mrp
#: selection:mrp.workcenter.load,time_unit:0
msgid "Day by day"
-msgstr ""
+msgstr "Dan po dan"
#. module: mrp
#: view:mrp.bom:0
@@ -1288,7 +1343,7 @@ msgstr "Prioritet"
#. module: mrp
#: model:ir.model,name:mrp.model_stock_picking
msgid "Picking List"
-msgstr "Lista odabira"
+msgstr "Skladišni dokument"
#. module: mrp
#: view:mrp.production.order:0
@@ -1296,7 +1351,7 @@ msgid "Month -1"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:924
+#: code:addons/mrp/mrp.py:914
#, python-format
msgid "Manufacturing order '%s' is scheduled for the %s."
msgstr "Nalog za Proizvodnju '%s' je planiran za %s."
@@ -1304,10 +1359,10 @@ msgstr "Nalog za Proizvodnju '%s' je planiran za %s."
#. module: mrp
#: report:mrp.production.order:0
msgid "Production Order N° :"
-msgstr ""
+msgstr "Production Order N° :"
#. module: mrp
-#: code:addons/mrp/mrp.py:640
+#: code:addons/mrp/mrp.py:630
#, python-format
msgid "Manufacturing order '%s' is ready to produce."
msgstr "Nalog za Proizvodnju '%s' je spreman za proizvodnju."
@@ -1315,19 +1370,19 @@ msgstr "Nalog za Proizvodnju '%s' je spreman za proizvodnju."
#. module: mrp
#: model:ir.model,name:mrp.model_mrp_production_product_line
msgid "Production Scheduled Product"
-msgstr ""
+msgstr "Production Scheduled Product"
#. module: mrp
#: help:res.company,manufacturing_lead:0
msgid "Security days for each manufacturing operation."
-msgstr ""
+msgstr "Rezervni dani za svaku operaciju proizvodnje"
#. module: mrp
#: model:process.node,name:mrp.process_node_mts0
#: model:process.transition,name:mrp.process_transition_servicemts0
#: model:process.transition,name:mrp.process_transition_stockmts0
msgid "Make to Stock"
-msgstr ""
+msgstr "Sa skladišta (MTS)"
#. module: mrp
#: selection:mrp.production.order,month:0
@@ -1343,24 +1398,29 @@ msgid ""
"product needs. You can either create a bill of materials to define specific "
"production steps or define a single multi-level bill of materials."
msgstr ""
+"Master Bills of Materials allow you to create and manage the list of "
+"necessary raw materials used to make a finished product. OpenERP will use "
+"these BoMs to automatically propose manufacturing orders according to "
+"product needs. You can either create a bill of materials to define specific "
+"production steps or define a single multi-level bill of materials."
#. module: mrp
#: model:process.transition,note:mrp.process_transition_stockrfq0
msgid ""
"In case the Supply method of the product is Buy, the system creates a "
"purchase order."
-msgstr ""
+msgstr "Kada je Metoda nabave \"Kupi\", sistem kreira nalog za nabavu."
#. module: mrp
#: model:ir.model,name:mrp.model_procurement_order
msgid "Procurement"
-msgstr ""
+msgstr "Procurement"
#. module: mrp
#: model:ir.actions.act_window,name:mrp.action_view_mrp_product_price_wizard
#: view:mrp.product_price:0
msgid "Product Cost Structure"
-msgstr ""
+msgstr "Struktura troška proizvoda"
#. module: mrp
#: code:addons/mrp/report/price.py:130
@@ -1376,7 +1436,7 @@ msgstr ""
#. module: mrp
#: view:mrp.production:0
msgid "Production Work Centers"
-msgstr ""
+msgstr "Radni centri proizvodnje"
#. module: mrp
#: view:mrp.production.order:0
@@ -1393,28 +1453,28 @@ msgstr ""
#. module: mrp
#: view:mrp.workcenter:0
msgid "Search for mrp workcenter"
-msgstr ""
+msgstr "Search for mrp workcenter"
#. module: mrp
#: view:mrp.bom:0
msgid "BoM Structure"
-msgstr ""
+msgstr "BoM Structure"
#. module: mrp
#: field:mrp.production,date_start:0
#: field:mrp.production.order,date_start:0
msgid "Start Date"
-msgstr ""
+msgstr "Početni datum"
#. module: mrp
#: field:mrp.workcenter,costs_hour_account_id:0
msgid "Hour Account"
-msgstr ""
+msgstr "Hour Account"
#. module: mrp
#: view:mrp.production:0
msgid "Destination Loc."
-msgstr ""
+msgstr "Odredišna lokacija"
#. module: mrp
#: field:mrp.production.order,product_id2:0
@@ -1424,24 +1484,24 @@ msgstr ""
#. module: mrp
#: view:mrp.production:0
msgid "Pending"
-msgstr ""
+msgstr "Na čekanju"
#. module: mrp
#: field:mrp.bom,active:0
#: field:mrp.routing,active:0
msgid "Active"
-msgstr ""
+msgstr "Aktivan"
#. module: mrp
#: model:process.node,name:mrp.process_node_procureproducts0
msgid "Procure Products"
-msgstr ""
+msgstr "Procure Products"
#. module: mrp
#: model:ir.actions.act_window,name:mrp.action_report_workcenter_load_tree
#: view:report.workcenter.load:0
msgid "Work Center Loads"
-msgstr ""
+msgstr "Opterećenje radnog centra"
#. module: mrp
#: model:ir.actions.act_window,name:mrp.mrp_property_action
@@ -1452,13 +1512,13 @@ msgstr ""
#: view:procurement.order:0
#: field:procurement.order,property_ids:0
msgid "Properties"
-msgstr ""
+msgstr "Svojstva"
#. module: mrp
#: help:mrp.production,origin:0
msgid ""
"Reference of the document that generated this production order request."
-msgstr ""
+msgstr "Dokument koji je generirao ovaj nalog za proizvodnju."
#. module: mrp
#: sql_constraint:mrp.bom:0
@@ -1467,21 +1527,24 @@ msgid ""
"You should install the mrp_subproduct module if you want to manage extra "
"products on BoMs !"
msgstr ""
+"All product quantities must be greater than 0.\n"
+"You should install the mrp_subproduct module if you want to manage extra "
+"products on BoMs !"
#. module: mrp
#: view:mrp.production:0
msgid "Extra Information"
-msgstr "Dodatne Informacije"
+msgstr "Dodatni Podaci"
#. module: mrp
#: model:ir.model,name:mrp.model_change_production_qty
msgid "Change Quantity of Products"
-msgstr ""
+msgstr "Promijeni količine proizvoda"
#. module: mrp
#: model:process.node,note:mrp.process_node_productionorder0
msgid "Drives the procurement orders for raw material."
-msgstr ""
+msgstr "Upravlja nalozima nabave za sirovine."
#. module: mrp
#: view:mrp.production.order:0
@@ -1491,19 +1554,19 @@ msgstr ""
#. module: mrp
#: field:mrp.workcenter,costs_general_account_id:0
msgid "General Account"
-msgstr ""
+msgstr "Konto glavne knjige"
#. module: mrp
#: report:mrp.production.order:0
msgid "SO Number"
-msgstr ""
+msgstr "SO Number"
#. module: mrp
#: selection:mrp.production,state:0
#: view:mrp.production.order:0
#: selection:mrp.production.order,state:0
msgid "Done"
-msgstr ""
+msgstr "Izvršeno"
#. module: mrp
#: model:ir.model,name:mrp.model_stock_change_standard_price
@@ -1515,13 +1578,13 @@ msgstr ""
#: report:mrp.production.order:0
#: field:mrp.production.order,origin:0
msgid "Source Document"
-msgstr ""
+msgstr "Izvorni dokument"
#. module: mrp
#: selection:mrp.production,priority:0
#: selection:mrp.production.order,priority:0
msgid "Not urgent"
-msgstr ""
+msgstr "Not urgent"
#. module: mrp
#: help:stock.change.standard.price,change_parent_price:0
@@ -1533,10 +1596,10 @@ msgstr ""
#. module: mrp
#: model:ir.actions.act_window,name:mrp.mrp_production_action2
msgid "Manufacturing Orders To Start"
-msgstr "Naloz za Proizvodnju Za Pokrenuti"
+msgstr "Ne pokrenuti nalozi proizvodnje"
#. module: mrp
-#: code:addons/mrp/mrp.py:495
+#: code:addons/mrp/mrp.py:491
#, python-format
msgid "Cannot delete Production Order(s) which are in %s State!"
msgstr ""
@@ -1548,12 +1611,12 @@ msgstr ""
#: view:mrp.workcenter:0
#: field:report.workcenter.load,workcenter_id:0
msgid "Work Center"
-msgstr ""
+msgstr "Radni centar"
#. module: mrp
#: field:mrp.workcenter,capacity_per_cycle:0
msgid "Capacity per Cycle"
-msgstr ""
+msgstr "Kapacitet po ciklusu"
#. module: mrp
#: model:ir.model,name:mrp.model_product_product
@@ -1566,30 +1629,30 @@ msgstr ""
#: field:mrp.production.order,product_id:0
#: field:mrp.production.product.line,product_id:0
msgid "Product"
-msgstr ""
+msgstr "Proizvod"
#. module: mrp
#: view:mrp.production:0
#: field:mrp.production,hour_total:0
msgid "Total Hours"
-msgstr ""
+msgstr "Uk. sati"
#. module: mrp
#: field:mrp.production,location_src_id:0
#: field:mrp.production.order,location_src_id:0
msgid "Raw Materials Location"
-msgstr ""
+msgstr "Lokacija sirovina"
#. module: mrp
#: view:mrp.product_price:0
msgid "Print Cost Structure of Product."
-msgstr ""
+msgstr "Print Cost Structure of Product."
#. module: mrp
#: field:mrp.bom,product_uos:0
#: field:mrp.production.product.line,product_uos:0
msgid "Product UOS"
-msgstr ""
+msgstr "JP Proizvoda"
#. module: mrp
#: model:ir.actions.act_window,help:mrp.mrp_workcenter_action
@@ -1602,7 +1665,7 @@ msgstr ""
#. module: mrp
#: view:mrp.production:0
msgid "Consume Products"
-msgstr ""
+msgstr "Utroši proizvode"
#. module: mrp
#: field:mrp.bom,product_uom:0
@@ -1610,14 +1673,14 @@ msgstr ""
#: field:mrp.production.order,product_uom:0
#: field:mrp.production.product.line,product_uom:0
msgid "Product UOM"
-msgstr ""
+msgstr "JM proizvoda"
#. module: mrp
#: model:process.node,name:mrp.process_node_stock0
#: model:process.transition,name:mrp.process_transition_servicemto0
#: model:process.transition,name:mrp.process_transition_stockproduct0
msgid "Make to Order"
-msgstr ""
+msgstr "Po narudžbi (MTO)"
#. module: mrp
#: model:ir.actions.act_window,name:mrp.action_report_mrp_production_order
@@ -1626,7 +1689,7 @@ msgid "Production Analysis"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:349
+#: code:addons/mrp/mrp.py:345
#, python-format
msgid "Copy"
msgstr ""
@@ -1634,29 +1697,29 @@ msgstr ""
#. module: mrp
#: view:mrp.production.lot.line:0
msgid "Production Products"
-msgstr ""
+msgstr "Proizvodnja proizvoda"
#. module: mrp
#: field:mrp.production,date_finished:0
#: field:mrp.production.order,date_finished:0
msgid "End Date"
-msgstr ""
+msgstr "Završni Datum"
#. module: mrp
#: field:mrp.workcenter,resource_id:0
msgid "Resource"
-msgstr ""
+msgstr "Resurs"
#. module: mrp
#: help:mrp.bom,date_start:0
#: help:mrp.bom,date_stop:0
msgid "Validity of this BoM or component. Keep empty if it's always valid."
-msgstr ""
+msgstr "Valjanost Bom ili komponente. Držite prazno ako je uvijek valjan."
#. module: mrp
#: field:mrp.production,product_uos:0
msgid "Product UoS"
-msgstr ""
+msgstr "JP Proizvoda"
#. module: mrp
#: view:mrp.production.order:0
@@ -1667,7 +1730,7 @@ msgstr ""
#: selection:mrp.production,priority:0
#: selection:mrp.production.order,priority:0
msgid "Very Urgent"
-msgstr ""
+msgstr "Very Urgent"
#. module: mrp
#: help:mrp.bom,routing_id:0
@@ -1677,37 +1740,41 @@ msgid ""
"operations and to plan future loads on work centers based on production "
"planning."
msgstr ""
+"The list of operations (list of work centers) to produce the finished "
+"product. The routing is mainly used to compute work center costs during "
+"operations and to plan future loads on work centers based on production "
+"planning."
#. module: mrp
#: view:change.production.qty:0
msgid "Approve"
-msgstr ""
+msgstr "Odobri"
#. module: mrp
#: view:mrp.property.group:0
msgid "Properties categories"
-msgstr ""
+msgstr "Properties categories"
#. module: mrp
#: help:mrp.production.workcenter.line,sequence:0
msgid "Gives the sequence order when displaying a list of work orders."
-msgstr ""
+msgstr "Definira poredak radnih naloga u popisu."
#. module: mrp
#: report:mrp.production.order:0
msgid "Source Location"
-msgstr ""
+msgstr "Izvorna lokacija"
#. module: mrp
#: view:mrp.production:0
#: view:mrp.production.product.line:0
msgid "Scheduled Products"
-msgstr "Planirani Proizvodi"
+msgstr "Planirani proizvodi"
#. module: mrp
#: view:mrp.production.lot.line:0
msgid "Production Products Consommation"
-msgstr ""
+msgstr "Production Products Consommation"
#. module: mrp
#: model:ir.actions.act_window,name:mrp.mrp_production_action
@@ -1716,7 +1783,7 @@ msgstr ""
#: model:ir.ui.menu,name:mrp.menu_mrp_production_order_action
#: view:mrp.production:0
msgid "Manufacturing Orders"
-msgstr "Nalozi za Proizvodnju"
+msgstr "Nalozi za proizvodnju"
#. module: mrp
#: help:mrp.product.produce,mode:0
@@ -1727,29 +1794,34 @@ msgid ""
"the quantity selected and it will finish the production order when total "
"ordered quantities are produced."
msgstr ""
+"'Consume only' mode will only consume the products with the quantity "
+"selected.\n"
+"'Consume & Produce' mode will consume as well as produce the products with "
+"the quantity selected and it will finish the production order when total "
+"ordered quantities are produced."
#. module: mrp
#: view:mrp.production:0
#: report:mrp.production.order:0
msgid "Work Orders"
-msgstr "Radni Nalozi"
+msgstr "Radni nalozi"
#. module: mrp
#: field:mrp.workcenter,costs_cycle:0
msgid "Cost per cycle"
-msgstr ""
+msgstr "Cost per cycle"
#. module: mrp
#: model:process.node,name:mrp.process_node_serviceproduct0
#: model:process.node,name:mrp.process_node_serviceproduct1
msgid "Service"
-msgstr ""
+msgstr "Service"
#. module: mrp
#: selection:mrp.production,state:0
#: selection:mrp.production.order,state:0
msgid "Cancelled"
-msgstr ""
+msgstr "Otkazani"
#. module: mrp
#: view:mrp.production.order:0
@@ -1761,6 +1833,7 @@ msgstr ""
msgid ""
"UoM (Unit of Measure) is the unit of measurement for the inventory control"
msgstr ""
+"UoM (Unit of Measure) is the unit of measurement for the inventory control"
#. module: mrp
#: model:process.transition,note:mrp.process_transition_bom0
@@ -1769,6 +1842,9 @@ msgid ""
"are products themselves) can also have their own Bill of Material (multi-"
"level)."
msgstr ""
+"The Bill of Material is the product's decomposition. The components (that "
+"are products themselves) can also have their own Bill of Material (multi-"
+"level)."
#. module: mrp
#: field:mrp.bom,company_id:0
@@ -1779,12 +1855,12 @@ msgstr ""
#: field:mrp.routing.workcenter,company_id:0
#: view:mrp.workcenter:0
msgid "Company"
-msgstr ""
+msgstr "Organizacija"
#. module: mrp
#: field:mrp.workcenter,time_cycle:0
msgid "Time for 1 cycle (hour)"
-msgstr ""
+msgstr "Time for 1 cycle (hour)"
#. module: mrp
#: model:ir.actions.report.xml,name:mrp.report_mrp_production_report
@@ -1793,50 +1869,50 @@ msgstr ""
#: model:process.node,name:mrp.process_node_production0
#: model:process.node,name:mrp.process_node_productionorder0
msgid "Production Order"
-msgstr ""
+msgstr "Production Order"
#. module: mrp
#: model:process.node,note:mrp.process_node_productminimumstockrule0
msgid "Automatic procurement rule"
-msgstr ""
+msgstr "Pravilo automatske nabave"
#. module: mrp
#: view:mrp.production:0
msgid "Compute Data"
-msgstr ""
+msgstr "Compute Data"
#. module: mrp
#: field:mrp.production,product_uos_qty:0
msgid "Product UoS Qty"
-msgstr ""
+msgstr "Količina JP"
#. module: mrp
#: code:addons/mrp/report/price.py:130
#: view:mrp.bom:0
#, python-format
msgid "Components"
-msgstr ""
+msgstr "Components"
#. module: mrp
#: report:bom.structure:0
#: model:ir.actions.report.xml,name:mrp.report_bom_structure
msgid "BOM Structure"
-msgstr ""
+msgstr "BOM Struktura"
#. module: mrp
#: field:mrp.bom,date_stop:0
msgid "Valid Until"
-msgstr ""
+msgstr "Valid Until"
#. module: mrp
#: field:mrp.bom,date_start:0
msgid "Valid From"
-msgstr ""
+msgstr "Valid From"
#. module: mrp
#: selection:mrp.bom,type:0
msgid "Normal BoM"
-msgstr ""
+msgstr "Normal BoM"
#. module: mrp
#: field:res.company,manufacturing_lead:0
@@ -1847,7 +1923,7 @@ msgstr "Pripremno vrijeme proizvodnje"
#: field:mrp.bom,product_uos_qty:0
#: field:mrp.production.product.line,product_uos_qty:0
msgid "Product UOS Qty"
-msgstr ""
+msgstr "Količina JP"
#. module: mrp
#: model:ir.actions.act_window,help:mrp.action_report_in_out_picking_tree
@@ -1856,21 +1932,24 @@ msgid ""
"linked to manufacturing activities, receptions of products and delivery "
"orders."
msgstr ""
+"Weekly Stock Value Variation enables you to track the stock value evolution "
+"linked to manufacturing activities, receptions of products and delivery "
+"orders."
#. module: mrp
#: view:mrp.product.produce:0
msgid "Confirm"
-msgstr ""
+msgstr "Potvrdi"
#. module: mrp
#: field:mrp.bom,product_efficiency:0
msgid "Manufacturing Efficiency"
-msgstr "Efikasnost Proizvodnje"
+msgstr "Efikasnost proizvodnje"
#. module: mrp
#: constraint:res.company:0
msgid "Error! You can not create recursive companies."
-msgstr ""
+msgstr "Pogreška! Ne možete kreirati rekurzivne organizacije."
#. module: mrp
#: help:mrp.bom,active:0
@@ -1878,17 +1957,19 @@ msgid ""
"If the active field is set to False, it will allow you to hide the bills of "
"material without removing it."
msgstr ""
+"If the active field is set to False, it will allow you to hide the bills of "
+"material without removing it."
#. module: mrp
#: field:mrp.bom,product_rounding:0
msgid "Product Rounding"
-msgstr ""
+msgstr "Zaokruživanje decimala"
#. module: mrp
#: model:ir.model,name:mrp.model_mrp_production_workcenter_line
#: field:mrp.production.workcenter.line,name:0
msgid "Work Order"
-msgstr ""
+msgstr "Radni nalog"
#. module: mrp
#: model:ir.actions.act_window,help:mrp.action_report_mrp_production_order
@@ -1900,12 +1981,12 @@ msgstr ""
#. module: mrp
#: selection:mrp.product.produce,mode:0
msgid "Consume Only"
-msgstr ""
+msgstr "Samo za utrošiti"
#. module: mrp
#: view:mrp.production:0
msgid "Recreate Picking"
-msgstr ""
+msgstr "Ponovo kreiraj prijenos"
#. module: mrp
#: help:mrp.bom,type:0
@@ -1916,11 +1997,16 @@ msgid ""
"product, it will be sold and shipped as a set of components, instead of "
"being produced."
msgstr ""
+"If a sub-product is used in several products, it can be useful to create its "
+"own BoM. Though if you don't want separated production orders for this sub-"
+"product, select Set/Phantom as BoM type. If a Phantom BoM is used for a root "
+"product, it will be sold and shipped as a set of components, instead of "
+"being produced."
#. module: mrp
#: field:mrp.bom,method:0
msgid "Method"
-msgstr ""
+msgstr "Metoda"
#. module: mrp
#: help:mrp.production,state:0
@@ -1933,62 +2019,68 @@ msgid ""
" When the production gets started then the state is set to 'In Production'.\n"
" When the production is over, the state is set to 'Done'."
msgstr ""
+"Nakon kreiranja nalog za proizvodnju je u stanju 'Nacrt'.\n"
+" Potvrđeni nalozi su u stanju 'Na čekanju' (materijala).\n"
+" U slučaju iznimki stanje je 'Skladišna iznimka'. \n"
+" Ako je zaliha dostatna za proizvodnju stanje je 'Spremno za proizvodnju'.\n"
+" Kad je proizvodnja pokrenuta stanje je 'U proizvodnji'.\n"
+" Izvršeni nalozi su u stanju 'Izvršen'."
#. module: mrp
#: selection:mrp.bom,method:0
msgid "On Order"
-msgstr ""
+msgstr "Na nalogu"
#. module: mrp
#: model:ir.ui.menu,name:mrp.menu_mrp_configuration
#: view:res.company:0
msgid "Configuration"
-msgstr ""
+msgstr "Postava"
#. module: mrp
#: field:mrp.workcenter,time_stop:0
msgid "Time after prod."
-msgstr ""
+msgstr "Vrijeme nakon prod."
#. module: mrp
#: field:mrp.workcenter.load,time_unit:0
msgid "Type of period"
-msgstr ""
+msgstr "Type of period"
#. module: mrp
#: view:mrp.production:0
msgid "Total Qty"
-msgstr ""
+msgstr "Ukupna kol."
#. module: mrp
#: field:mrp.routing.workcenter,hour_nbr:0
msgid "Number of Hours"
-msgstr ""
+msgstr "Broj sati"
#. module: mrp
#: view:mrp.workcenter:0
msgid "Costing Information"
-msgstr ""
+msgstr "Costing Information"
#. module: mrp
#: model:process.node,name:mrp.process_node_purchaseprocure0
msgid "Procurement Orders"
-msgstr ""
+msgstr "Nalozi za nabavu"
#. module: mrp
#: help:mrp.bom,product_rounding:0
msgid "Rounding applied on the product quantity."
-msgstr ""
+msgstr "Zaokruživanje se primjenjuje na količinu proizvoda."
#. module: mrp
#: model:process.node,note:mrp.process_node_stock0
msgid "Assignment from Production or Purchase Order."
-msgstr ""
+msgstr "Prijenos iz proizvodnje ili naloga za nabavu."
#. module: mrp
#: field:mrp.routing.workcenter,routing_id:0
msgid "Parent Routing"
-msgstr ""
+msgstr "Nadređeno usmjeravanje"
#. module: mrp
#: view:mrp.installer:0
@@ -1998,7 +2090,7 @@ msgstr ""
#. module: mrp
#: help:mrp.workcenter,time_start:0
msgid "Time in hours for the setup."
-msgstr ""
+msgstr "Vrijeme u satima za pripremu."
#. module: mrp
#: selection:mrp.production.order,month:0
@@ -2014,7 +2106,7 @@ msgstr ""
#: field:mrp.bom.revision,bom_id:0
#: field:procurement.order,bom_id:0
msgid "BoM"
-msgstr ""
+msgstr "BoM"
#. module: mrp
#: model:ir.model,name:mrp.model_report_mrp_inout
@@ -2026,25 +2118,25 @@ msgstr "Varijacija vrijednosti Zalihe"
#: model:process.node,note:mrp.process_node_mts0
#: model:process.node,note:mrp.process_node_servicemts0
msgid "Assignment from stock."
-msgstr ""
+msgstr "Dodjela sa skladišta"
#. module: mrp
#: selection:mrp.production,state:0
#: view:mrp.production.order:0
#: selection:mrp.production.order,state:0
msgid "Waiting Goods"
-msgstr ""
+msgstr "Waiting Goods"
#. module: mrp
#: field:mrp.bom.revision,last_indice:0
msgid "last indice"
-msgstr ""
+msgstr "last indice"
#. module: mrp
#: field:mrp.bom,revision_ids:0
#: view:mrp.bom.revision:0
msgid "BoM Revisions"
-msgstr ""
+msgstr "BoM Revisions"
#. module: mrp
#: selection:mrp.production,state:0
@@ -2056,7 +2148,7 @@ msgstr ""
#: field:report.mrp.inout,date:0
#: field:report.workcenter.load,name:0
msgid "Week"
-msgstr "Tjedni"
+msgstr "Week"
#. module: mrp
#: field:mrp.installer,progress:0
@@ -2067,24 +2159,24 @@ msgstr ""
#: selection:mrp.production,priority:0
#: selection:mrp.production.order,priority:0
msgid "Normal"
-msgstr ""
+msgstr "Normalan"
#. module: mrp
#: model:process.node,note:mrp.process_node_routing0
msgid "Manufacturing Steps."
-msgstr "Koraci Proizvodnje"
+msgstr "Koraci proizvodnje"
#. module: mrp
#: code:addons/mrp/report/price.py:136
#: model:ir.actions.report.xml,name:mrp.report_cost_structure
#, python-format
msgid "Cost Structure"
-msgstr ""
+msgstr "Cost Structure"
#. module: mrp
#: selection:mrp.product.produce,mode:0
msgid "Consume & Produce"
-msgstr ""
+msgstr "Utroši i proizvedi"
#. module: mrp
#: selection:mrp.production.order,month:0
@@ -2094,7 +2186,7 @@ msgstr ""
#. module: mrp
#: field:mrp.bom,bom_id:0
msgid "Parent BoM"
-msgstr ""
+msgstr "Nadređena sastavnica"
#. module: mrp
#: model:ir.actions.act_window,help:mrp.mrp_bom_form_action2
@@ -2103,6 +2195,9 @@ msgid ""
"master bills of materials. Use this menu to search in which BoM a specific "
"component is used."
msgstr ""
+"Bills of materials components are components and sub-products used to create "
+"master bills of materials. Use this menu to search in which BoM a specific "
+"component is used."
#. module: mrp
#: selection:mrp.production.order,month:0
@@ -2112,10 +2207,10 @@ msgstr ""
#. module: mrp
#: model:process.node,note:mrp.process_node_stockproduct0
msgid "Product type is Stockable or Consumable."
-msgstr ""
+msgstr "Product type is Stockable or Consumable."
#. module: mrp
-#: code:addons/mrp/mrp.py:595
+#: code:addons/mrp/mrp.py:591
#: code:addons/mrp/wizard/change_production_qty.py:77
#: code:addons/mrp/wizard/change_production_qty.py:82
#, python-format
@@ -2125,7 +2220,7 @@ msgstr ""
#. module: mrp
#: field:mrp.product.produce,product_qty:0
msgid "Select Quantity"
-msgstr ""
+msgstr "Odaberi količinu"
#. module: mrp
#: model:ir.actions.act_window,name:mrp.act_product_product_2_mrp_bom
@@ -2133,7 +2228,7 @@ msgstr ""
#: model:ir.ui.menu,name:mrp.menu_mrp_bom_form_action
#: field:product.product,bom_ids:0
msgid "Bill of Materials"
-msgstr ""
+msgstr "Sastavnica"
#. module: mrp
#: help:mrp.routing.workcenter,routing_id:0
@@ -2142,22 +2237,25 @@ msgid ""
"Routing is indicated then,the third tab of a production order (Work Centers) "
"will be automatically pre-completed."
msgstr ""
+"Routing indicates all the Work Centers used, for how long and/or cycles.If "
+"Routing is indicated then,the third tab of a production order (Work Centers) "
+"will be automatically pre-completed."
#. module: mrp
#: model:ir.model,name:mrp.model_mrp_bom_revision
msgid "Bill of Material Revision"
-msgstr ""
+msgstr "Revizija sastavnice"
#. module: mrp
#: view:mrp.routing.workcenter:0
#: view:mrp.workcenter:0
msgid "General Information"
-msgstr ""
+msgstr "Opći podaci"
#. module: mrp
#: view:mrp.production:0
msgid "Productions"
-msgstr ""
+msgstr "Proizvodnja"
#. module: mrp
#: code:addons/mrp/report/price.py:194
@@ -2171,6 +2269,8 @@ msgid ""
"Description of the Work Center. Explain here what's a cycle according to "
"this Work Center."
msgstr ""
+"Description of the Work Center. Explain here what's a cycle according to "
+"this Work Center."
#. module: mrp
#: model:ir.model,name:mrp.model_mrp_routing
@@ -2182,7 +2282,7 @@ msgstr ""
#: view:mrp.routing:0
#: model:process.node,name:mrp.process_node_routing0
msgid "Routing"
-msgstr ""
+msgstr "Usmjeravanje"
#. module: mrp
#: field:mrp.installer,mrp_operations:0
@@ -2192,12 +2292,12 @@ msgstr "Proizvodne Operacije"
#. module: mrp
#: field:mrp.production,date_planned:0
msgid "Scheduled date"
-msgstr ""
+msgstr "Zakazani datum"
#. module: mrp
#: constraint:stock.move:0
msgid "You must assign a production lot for this product"
-msgstr ""
+msgstr "Morate pridijeliti lot proizvodnje ovom proizvodu"
#. module: mrp
#: model:ir.actions.act_window,help:mrp.mrp_property_action
@@ -2208,27 +2308,32 @@ msgid ""
"sales person creates a sales order, he can relate it to several properties "
"and OpenERP will automatically select the BoM to use according the the needs."
msgstr ""
+"The Properties in OpenERP are used to select the right bill of materials for "
+"manufacturing a product when you have different ways of building the same "
+"product. You can assign several properties to each Bill of Materials. When a "
+"sales person creates a sales order, he can relate it to several properties "
+"and OpenERP will automatically select the BoM to use according the the needs."
#. module: mrp
#: view:mrp.production.order:0
#: field:stock.move,production_id:0
msgid "Production"
-msgstr ""
+msgstr "Proizvodnja"
#. module: mrp
#: view:board.board:0
msgid "Procurements in Exception"
-msgstr ""
+msgstr "Nabave s iznimkama"
#. module: mrp
#: model:process.transition,name:mrp.process_transition_minimumstockprocure0
msgid "'Minimum stock rule' material"
-msgstr ""
+msgstr "'Minimum stock rule' material"
#. module: mrp
#: model:ir.model,name:mrp.model_mrp_product_price
msgid "Product Price"
-msgstr ""
+msgstr "Cijena proizvoda"
#. module: mrp
#: model:ir.actions.act_window,name:mrp.action_mrp_installer
@@ -2238,18 +2343,18 @@ msgstr ""
#. module: mrp
#: model:ir.model,name:mrp.model_stock_move_split
msgid "Split in Production lots"
-msgstr ""
+msgstr "Split in Production lots"
#. module: mrp
#: view:change.production.qty:0
msgid "Change Quantity"
-msgstr ""
+msgstr "Promjeni količinu"
#. module: mrp
#: view:change.production.qty:0
#: model:ir.actions.act_window,name:mrp.action_change_production_qty
msgid "Change Product Qty"
-msgstr ""
+msgstr "Promjeni kol. proizvoda"
#. module: mrp
#: view:mrp.bom.revision:0
@@ -2262,7 +2367,7 @@ msgstr ""
#: view:mrp.workcenter:0
#: field:mrp.workcenter,note:0
msgid "Description"
-msgstr ""
+msgstr "Opis"
#. module: mrp
#: selection:mrp.production.order,month:0
@@ -2272,12 +2377,12 @@ msgstr ""
#. module: mrp
#: view:board.board:0
msgid "Manufacturing board"
-msgstr "Ploča proizvodnje"
+msgstr "Kokpit proizvodnje"
#. module: mrp
#: field:mrp.production,date_planned_end:0
msgid "Scheduled End Date"
-msgstr ""
+msgstr "Planirani datum završetka"
#. module: mrp
#: model:ir.actions.act_window,help:mrp.action_report_workcenter_load_tree
@@ -2286,11 +2391,14 @@ msgid ""
"specified period. It is expressed in number of hours and machine related "
"cycles."
msgstr ""
+"Work Center Loads gives you a projection of work center loads over a "
+"specified period. It is expressed in number of hours and machine related "
+"cycles."
#. module: mrp
#: model:process.node,note:mrp.process_node_procureproducts0
msgid "The way to procurement depends on the product type."
-msgstr ""
+msgstr "Način nabave ovisi o vrsti proizvoda"
#. module: mrp
#: model:ir.ui.menu,name:mrp.menu_mrp_manufacturing
@@ -2300,7 +2408,7 @@ msgstr "Proizvodnja"
#. module: mrp
#: view:board.board:0
msgid "Next Production Orders"
-msgstr ""
+msgstr "Next Production Orders"
#. module: mrp
#: selection:mrp.production.order,month:0
@@ -2311,7 +2419,7 @@ msgstr ""
#: model:ir.actions.act_window,name:mrp.mrp_property_group_action
#: model:ir.ui.menu,name:mrp.menu_mrp_property_group_action
msgid "Property Groups"
-msgstr ""
+msgstr "Grupe svojstava"
#. module: mrp
#: selection:mrp.production.order,month:0
@@ -2324,16 +2432,18 @@ msgid ""
"Depending on the chosen method to supply the stockable products, the "
"procurement order creates a RFQ, a production order, ... "
msgstr ""
+"Depending on the chosen method to supply the stockable products, the "
+"procurement order creates a RFQ, a production order, ... "
#. module: mrp
#: help:mrp.workcenter,time_stop:0
msgid "Time in hours for the cleaning."
-msgstr ""
+msgstr "Završno vrijeme u satima za čišćenje."
#. module: mrp
#: model:process.transition,name:mrp.process_transition_purchaseprocure0
msgid "Automatic RFQ"
-msgstr ""
+msgstr "Automatski ZZP (zahtjev za ponudom)"
#. module: mrp
#: model:process.transition,note:mrp.process_transition_servicemto0
@@ -2341,6 +2451,8 @@ msgid ""
"If the service has a 'Produce' supply method, this creates a task in the "
"project management module of OpenERP."
msgstr ""
+"Ako je metoda nabave usluge 'Proizvedi' kreirati će zadatak u modulu "
+"upravljanja projektima."
#. module: mrp
#: model:process.transition,note:mrp.process_transition_productionprocureproducts0
@@ -2349,6 +2461,9 @@ msgid ""
"production order creates as much procurement orders as components listed in "
"the BOM, through a run of the schedulers (MRP)."
msgstr ""
+"In order to supply raw material (to be purchased or produced), the "
+"production order creates as much procurement orders as components listed in "
+"the BOM, through a run of the schedulers (MRP)."
#. module: mrp
#: help:mrp.product_price,number:0
@@ -2356,11 +2471,13 @@ msgid ""
"Specify quantity of products to produce or buy. Report of Cost structure "
"will be displayed base on this quantity."
msgstr ""
+"Specify quantity of products to produce or buy. Report of Cost structure "
+"will be displayed base on this quantity."
#. module: mrp
#: selection:mrp.bom,method:0
msgid "On Stock"
-msgstr ""
+msgstr "Na skladištu"
#. module: mrp
#: field:mrp.bom,sequence:0
@@ -2368,17 +2485,17 @@ msgstr ""
#: field:mrp.production.workcenter.line,sequence:0
#: field:mrp.routing.workcenter,sequence:0
msgid "Sequence"
-msgstr ""
+msgstr "Sekvenca"
#. module: mrp
#: model:ir.ui.menu,name:mrp.menu_view_resource_calendar_leaves_search_mrp
msgid "Resource Leaves"
-msgstr ""
+msgstr "Odsustva resursa"
#. module: mrp
#: help:mrp.bom,sequence:0
msgid "Gives the sequence order when displaying a list of bills of material."
-msgstr ""
+msgstr "Daje poredak u prikazu sastavnica."
#. module: mrp
#: view:mrp.production:0
@@ -2386,7 +2503,7 @@ msgstr ""
#: report:mrp.production.order:0
#: field:mrp.production.order,products_to_consume:0
msgid "Products to Consume"
-msgstr ""
+msgstr "Proizvodi za utrošiti"
#. module: mrp
#: view:mrp.production.order:0
diff --git a/addons/mrp/i18n/hu.po b/addons/mrp/i18n/hu.po
index 85e7187ff40..0a3432b2fc5 100644
--- a/addons/mrp/i18n/hu.po
+++ b/addons/mrp/i18n/hu.po
@@ -7,15 +7,15 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2011-01-11 11:15+0000\n"
-"PO-Revision-Date: 2011-02-09 14:35+0000\n"
+"PO-Revision-Date: 2011-12-06 11:04+0000\n"
"Last-Translator: NOVOTRADE RENDSZERHÁZ ( novotrade.hu ) "
"\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-11-05 04:54+0000\n"
-"X-Generator: Launchpad (build 14231)\n"
+"X-Launchpad-Export-Date: 2011-12-07 04:50+0000\n"
+"X-Generator: Launchpad (build 14435)\n"
#. module: mrp
#: field:mrp.production,move_created_ids:0
@@ -32,26 +32,31 @@ msgid ""
"raw materials (stock decrease) and the production of the finished products "
"(stock increase) when the order is processed."
msgstr ""
+"A gyártási rendeléseket általában az OpenERP automatikusan javasolja "
+"anyagjegyzékek és beszerzési szabályok alapján, azonban lehetősége van "
+"manuálisan is felvinni gyártási rendeléseket. Az OpenERP kezeli a "
+"nyersanyagok fogyását (készlet csökkenése) és a kész termékek gyártását "
+"(készlet csökkenése), amikor a rendelést végrehajtja."
#. module: mrp
#: help:mrp.production,location_src_id:0
msgid "Location where the system will look for components."
-msgstr ""
+msgstr "A hozzávalókat ezen a helyen keresi majd a rendszer."
#. module: mrp
#: field:mrp.production,workcenter_lines:0
msgid "Work Centers Utilisation"
-msgstr ""
+msgstr "Munkaállomások használata"
#. module: mrp
#: view:mrp.routing.workcenter:0
msgid "Routing Work Centers"
-msgstr ""
+msgstr "Eljárás munkaállomásai"
#. module: mrp
#: model:ir.module.module,shortdesc:mrp.module_meta_information
msgid "Manufacturing Resource Planning"
-msgstr "Gyártási források tervezése"
+msgstr "Erőforrások tervezése"
#. module: mrp
#: report:mrp.production.order:0
@@ -88,12 +93,12 @@ msgstr "Óránkénti költség"
#: code:addons/mrp/report/price.py:130
#, python-format
msgid "Cost Price per Uom"
-msgstr "Önköltség"
+msgstr "Mértékenységenkénti költség"
#. module: mrp
#: view:mrp.production:0
msgid "Scrap Products"
-msgstr ""
+msgstr "Selejt termék"
#. module: mrp
#: view:mrp.production.order:0
@@ -105,22 +110,22 @@ msgstr "Nap"
#: model:ir.actions.act_window,name:mrp.mrp_routing_action
#: model:ir.ui.menu,name:mrp.menu_mrp_routing_action
msgid "Routings"
-msgstr ""
+msgstr "Eljárás"
#. module: mrp
#: field:mrp.workcenter,product_id:0
msgid "Work Center Product"
-msgstr ""
+msgstr "Munkaállomás-termék"
#. module: mrp
#: view:mrp.bom:0
msgid "Search Bill Of Material"
-msgstr ""
+msgstr "Anyagjegyzék keresése"
#. module: mrp
#: model:process.node,note:mrp.process_node_stockproduct1
msgid "For stockable products and consumables"
-msgstr ""
+msgstr "Raktározható és felhasználható termékekhez"
#. module: mrp
#: model:process.transition,name:mrp.process_transition_stockproduction0
@@ -133,6 +138,8 @@ msgid ""
"Number of iterations this work center has to do in the specified operation "
"of the routing."
msgstr ""
+"Megadja, hogy az eljárás adott műveletnél ezt a munkaállomást hányszor kell "
+"igénybe venni."
#. module: mrp
#: view:mrp.bom:0
@@ -156,7 +163,7 @@ msgstr "Vásárolni"
#. module: mrp
#: view:mrp.production.order:0
msgid "Raw Material Location"
-msgstr ""
+msgstr "Alapanyagok helye"
#. module: mrp
#: help:mrp.installer,mrp_operations:0
@@ -164,26 +171,30 @@ msgid ""
"Enhances production orders with readiness states as well as the start date "
"and end date of execution of the order."
msgstr ""
+"Ellátja a gyártási rendeléseket a készültség állapotával és a rendelés "
+"végrehajtásának kezdési, illetve a befejezési idejével."
#. module: mrp
#: model:process.transition,note:mrp.process_transition_purchaseprocure0
msgid "The system launches automatically a RFQ to the preferred supplier."
msgstr ""
+"A rendszer automatikusan kiküld egy ajánlatkérési felhívást a kiválasztott "
+"beszállítónak."
#. module: mrp
#: view:mrp.production:0
msgid "Products to Finish"
-msgstr ""
+msgstr "Befejezendő termékek"
#. module: mrp
#: selection:mrp.bom,method:0
msgid "Set / Pack"
-msgstr ""
+msgstr "Csomag"
#. module: mrp
#: field:mrp.installer,mrp_subproduct:0
msgid "MRP Subproducts"
-msgstr ""
+msgstr "MRP altermékek modul"
#. module: mrp
#: view:mrp.production:0
@@ -204,6 +215,8 @@ msgid ""
"In case the Supply method of the product is Produce, the system creates a "
"production order."
msgstr ""
+"Ha a termék ellátási módja \"Gyártás\", a rendszer gyártási rendelést hoz "
+"létre."
#. module: mrp
#: view:mrp.production:0
@@ -218,7 +231,7 @@ msgstr "ME"
#: field:mrp.production.order,product_qty:0
#: field:mrp.production.product.line,product_qty:0
msgid "Product Qty"
-msgstr "Termékmenny."
+msgstr "Termékmennyiség"
#. module: mrp
#: help:mrp.workcenter,product_id:0
@@ -227,22 +240,22 @@ msgid ""
"accounting."
msgstr ""
"Töltse ki ezt a terméket, hogy könnyen nyomon kövesse a gyártási költségeket "
-"a vezetői számvitelben."
+"az analitikus könyvelésben."
#. module: mrp
#: model:process.node,note:mrp.process_node_purchaseprocure0
msgid "For purchased material"
-msgstr ""
+msgstr "Vásárolt termékhez"
#. module: mrp
#: field:mrp.bom.revision,indice:0
msgid "Revision"
-msgstr "Revízió"
+msgstr "Felülvizsgálat"
#. module: mrp
#: model:ir.ui.menu,name:mrp.next_id_77
msgid "Reporting"
-msgstr "Jelentés"
+msgstr "Jelentéskészítés"
#. module: mrp
#: field:mrp.workcenter,costs_cycle_account_id:0
@@ -263,7 +276,7 @@ msgstr "["
#. module: mrp
#: model:process.transition,name:mrp.process_transition_procureserviceproduct0
msgid "Procurement of services"
-msgstr ""
+msgstr "Szolgáltatások beszerzése"
#. module: mrp
#: view:mrp.workcenter:0
@@ -278,7 +291,7 @@ msgstr "Célállomás helye"
#. module: mrp
#: view:mrp.installer:0
msgid "title"
-msgstr "Pozíció"
+msgstr "pozíció"
#. module: mrp
#: model:ir.ui.menu,name:mrp.menu_mrp_bom
@@ -291,6 +304,9 @@ msgid ""
"The system waits for the products to be available in the stock. These "
"products are typically procured manually or through a minimum stock rule."
msgstr ""
+"A rendszer termékekre vár, hogy elérhetővé válljanak a raktárban. Ezeket a "
+"termékeket általában manuálisan kell beszerezni vagy minimális "
+"készletszabályok beállításával."
#. module: mrp
#: report:mrp.production.order:0
@@ -300,7 +316,7 @@ msgstr "Partner hiv."
#. module: mrp
#: selection:mrp.workcenter.load,measure_unit:0
msgid "Amount in hours"
-msgstr ""
+msgstr "Mennyiség órában"
#. module: mrp
#: field:mrp.production,product_lines:0
@@ -310,12 +326,12 @@ msgstr "Tervezett áruk"
#. module: mrp
#: selection:mrp.bom,type:0
msgid "Sets / Phantom"
-msgstr ""
+msgstr "Csomagok"
#. module: mrp
#: help:mrp.bom,position:0
msgid "Reference to a position in an external plan."
-msgstr ""
+msgstr "Hivatkozás egy külső területre."
#. module: mrp
#: selection:mrp.production.order,month:0
@@ -326,6 +342,8 @@ msgstr "Augusztus"
#: constraint:stock.move:0
msgid "You try to assign a lot which is not from the same product"
msgstr ""
+"Egy olyan tételt próbál hozzárendelni, amely nem ugyanabból a termékfajtából "
+"való."
#. module: mrp
#: model:ir.model,name:mrp.model_mrp_production_order
@@ -340,7 +358,7 @@ msgstr "Június"
#. module: mrp
#: model:ir.model,name:mrp.model_mrp_product_produce
msgid "Product Produce"
-msgstr "Termék előállítása"
+msgstr "Termék gyártása"
#. module: mrp
#: selection:mrp.production.order,month:0
@@ -351,12 +369,12 @@ msgstr "Október"
#: code:addons/mrp/report/price.py:177
#, python-format
msgid "Components Cost of "
-msgstr ""
+msgstr "Hozzávalók költsége "
#. module: mrp
#: model:process.transition,name:mrp.process_transition_procurestockableproduct0
msgid "Procurement of stockable Product"
-msgstr ""
+msgstr "Raktározható termékek beszerzése"
#. module: mrp
#: view:mrp.bom:0
@@ -388,6 +406,8 @@ msgid ""
"The system creates an order (production or purchased) depending on the sold "
"quantity and the products parameters."
msgstr ""
+"A rendszer a termék tulajdonságai és az értékesített mennyiség alapján "
+"létrehoz egy - gyártási vagy beszerzési - rendelést."
#. module: mrp
#: model:process.transition,note:mrp.process_transition_servicemts0
@@ -395,6 +415,8 @@ msgid ""
"This is used in case of a service without any impact in the system, a "
"training session for instance."
msgstr ""
+"Ezt használhatjuk olyan szolgálatásokra, amelyek semmilyen hatással "
+"sincsenek a rendszerre (például egy belső képzés)."
#. module: mrp
#: field:mrp.installer,mrp_repair:0
@@ -404,7 +426,7 @@ msgstr "Javítások"
#. module: mrp
#: field:mrp.installer,stock_location:0
msgid "Advanced Routes"
-msgstr ""
+msgstr "Előrehaladott eljárások"
#. module: mrp
#: model:ir.ui.menu,name:mrp.menu_view_resource_calendar_search_mrp
@@ -422,6 +444,8 @@ msgid ""
"Enables warranty and repair management (and their impact on stocks and "
"invoicing)."
msgstr ""
+"Lehetővé teszi a garancia- és szervízkezelést, és ezek hatását a "
+"raktározásra és a számlázásra."
#. module: mrp
#: field:mrp.production,date_planned_date:0
@@ -442,6 +466,9 @@ msgid ""
"needed.Set a location if you produce at a fixed location. This can be a "
"partner location if you subcontract the manufacturing operations."
msgstr ""
+"Hagyja üresen, ha a gyártást ugyanazon a helyen végzi, ahol a késztermékre "
+"szüksége van. Válasszon egy helyszínt, ha fix helyen gyárt. Ez lehet egy "
+"partner székhelye is, amennyiben a gyártási eljárást kiszervezi."
#. module: mrp
#: view:board.board:0
@@ -451,12 +478,12 @@ msgstr "Készletérték változása"
#. module: mrp
#: model:ir.actions.act_window,name:mrp.action2
msgid "Bill of Materials Structure"
-msgstr ""
+msgstr "Anyagjegyzék-struktúra"
#. module: mrp
#: model:process.node,note:mrp.process_node_serviceproduct0
msgid "Product type is service"
-msgstr "A termék típusa szolgáltatás."
+msgstr "A termék típusa szolgáltatás"
#. module: mrp
#: model:ir.actions.act_window,help:mrp.mrp_property_group_action
@@ -464,16 +491,18 @@ msgid ""
"Define specific property groups that can be assigned to the properties of "
"your bill of materials."
msgstr ""
+"Adjon meg egyedi tulajdonság-csoportokat, amelyeket az anyagjegyzékek "
+"tulajdonságaihoz rendelhet."
#. module: mrp
#: model:process.transition,name:mrp.process_transition_bom0
msgid "Manufacturing decomposition"
-msgstr ""
+msgstr "Gyártás lebontása"
#. module: mrp
#: model:process.node,note:mrp.process_node_serviceproduct1
msgid "For Services."
-msgstr ""
+msgstr "Szolgáltatásokhoz."
#. module: mrp
#: field:mrp.bom.revision,date:0
@@ -487,8 +516,8 @@ msgid ""
"Complete this only if you want automatic analytic accounting entries on "
"production orders."
msgstr ""
-"Csak akkor töltse ki, ha automatikus gyűjtőkód tételeket akar a termelési "
-"utasítások alapján."
+"Csak akkor töltse ki, ha analitikus könyvelési tételek automatikus bevitelét "
+"szeretné a gyártási rendelések alapján."
#. module: mrp
#: field:mrp.production.workcenter.line,cycle:0
@@ -507,6 +536,8 @@ msgid ""
"The Bill of Material is linked to a routing, i.e. the succession of work "
"centers."
msgstr ""
+"Az anyagjegyzék egy gyártási eljáráshoz kapcsolódik, vagyis a munkaállomások "
+"sorozatához."
#. module: mrp
#: constraint:product.product:0
@@ -522,12 +553,12 @@ msgstr "Gyártási hely"
#. module: mrp
#: view:mrp.production:0
msgid "Change Qty"
-msgstr ""
+msgstr "Mennyiség változtatása"
#. module: mrp
#: view:mrp.production:0
msgid "Force Reservation"
-msgstr ""
+msgstr "Foglalás erőltetése"
#. module: mrp
#: field:mrp.bom.revision,author_id:0
@@ -542,12 +573,12 @@ msgstr "Készletérték"
#. module: mrp
#: model:ir.actions.act_window,name:mrp.action_product_bom_structure
msgid "Product BoM Structure"
-msgstr ""
+msgstr "Termék anyagjegyzék-struktúrája"
#. module: mrp
#: view:mrp.production:0
msgid "Search Production"
-msgstr ""
+msgstr "Gyártás keresése"
#. module: mrp
#: code:addons/mrp/report/price.py:130
@@ -563,14 +594,14 @@ msgstr "Március"
#. module: mrp
#: field:mrp.bom,child_complete_ids:0
msgid "BoM Hierarchy"
-msgstr ""
+msgstr "Anyagjegyzék hierarchia"
#. module: mrp
#: model:ir.actions.act_window,name:mrp.act_mrp_product_produce
#: view:mrp.product.produce:0
#: view:mrp.production:0
msgid "Produce"
-msgstr "Gyártás"
+msgstr "Gyártani"
#. module: mrp
#: help:mrp.workcenter,costs_cycle:0
@@ -582,17 +613,17 @@ msgstr ""
#: view:mrp.production.order:0
#: selection:mrp.production.order,state:0
msgid "Picking Exception"
-msgstr "Kiszedési kivétel"
+msgstr "Kiszedési hiba"
#. module: mrp
#: field:mrp.bom,bom_lines:0
msgid "BoM Lines"
-msgstr ""
+msgstr "Anyagjegyzék sorok"
#. module: mrp
#: field:mrp.workcenter,time_start:0
msgid "Time before prod."
-msgstr ""
+msgstr "Gyártás előkészületi idő"
#. module: mrp
#: help:mrp.routing,active:0
@@ -600,11 +631,13 @@ msgid ""
"If the active field is set to False, it will allow you to hide the routing "
"without removing it."
msgstr ""
+"Ha az aktív mezőt \"Hamis\"-ra állítja, akkor törlés nélkül el tudja rejteni "
+"a gyártási eljárást."
#. module: mrp
#: model:process.transition,name:mrp.process_transition_billofmaterialrouting0
msgid "Material Routing"
-msgstr ""
+msgstr "Termék útja"
#. module: mrp
#: view:mrp.production:0
@@ -612,31 +645,31 @@ msgstr ""
#: report:mrp.production.order:0
#: field:mrp.production.order,consumed_products:0
msgid "Consumed Products"
-msgstr ""
+msgstr "Felhasznált termékek"
#. module: mrp
#: constraint:mrp.bom:0
msgid "Error ! You can not create recursive BoM."
-msgstr ""
+msgstr "Hiba! Rekurzív anyagjegyzék nem hozható létre."
#. module: mrp
#: model:ir.actions.act_window,name:mrp.action_mrp_workcenter_load_wizard
#: model:ir.model,name:mrp.model_mrp_workcenter_load
#: model:ir.model,name:mrp.model_report_workcenter_load
msgid "Work Center Load"
-msgstr ""
+msgstr "Munkaállomás terheltsége"
#. module: mrp
#: code:addons/mrp/procurement.py:45
#, python-format
msgid "No BoM defined for this product !"
-msgstr ""
+msgstr "Az adott termékhez nincsen anyagjegyzék megadva!"
#. module: mrp
#: model:ir.actions.act_window,name:mrp.mrp_bom_form_action2
#: model:ir.ui.menu,name:mrp.menu_mrp_bom_form_action2
msgid "Bill of Material Components"
-msgstr ""
+msgstr "Anyagjegyzék hozzávalói"
#. module: mrp
#: field:mrp.production.order,nbr:0
@@ -661,6 +694,10 @@ msgid ""
"operations and to plan future loads on work centers based on production "
"plannification."
msgstr ""
+"A késztermék létrehozásához szükséges műveletek (munkaállomások) listája. A "
+"gyártási eljárások fő funkciója a munkaállomások működési költségeinek "
+"számítása és a munkaállomások terheltségének tervezése a gyártási tervezésén "
+"keresztül."
#. module: mrp
#: help:mrp.workcenter,time_cycle:0
@@ -670,7 +707,7 @@ msgstr "Idő (órában), ami egy ciklus elvégzéséhez szükséges"
#. module: mrp
#: report:bom.structure:0
msgid "BOM Ref"
-msgstr ""
+msgstr "Anyagjegyzék hivatkozás"
#. module: mrp
#: view:mrp.production:0
@@ -683,7 +720,7 @@ msgstr "Gyártás alatt"
#. module: mrp
#: model:ir.ui.menu,name:mrp.menu_mrp_property
msgid "Master Bill of Materials"
-msgstr ""
+msgstr "Fő anyagjegyzékek"
#. module: mrp
#: help:mrp.bom,product_uos:0
@@ -691,6 +728,8 @@ msgid ""
"Product UOS (Unit of Sale) is the unit of measurement for the invoicing and "
"promotion of stock."
msgstr ""
+"A termék eladási mértékegysége a számlázásban és a kiszállításban használt "
+"mértékegység."
#. module: mrp
#: view:mrp.product_price:0
@@ -715,6 +754,7 @@ msgstr "Összes költsége "
#: model:process.node,note:mrp.process_node_minimumstockrule0
msgid "Linked to the 'Minimum stock rule' supplying method."
msgstr ""
+"A \"minimális raktárkezelési szabály\" ellátási módszeréhez kapcsolódik."
#. module: mrp
#: selection:mrp.workcenter.load,time_unit:0
@@ -722,12 +762,12 @@ msgid "Per month"
msgstr "Havonta"
#. module: mrp
-#: code:addons/mrp/mrp.py:595
+#: code:addons/mrp/mrp.py:591
#: code:addons/mrp/wizard/change_production_qty.py:77
#: code:addons/mrp/wizard/change_production_qty.py:82
#, python-format
msgid "Couldn't find bill of material for product"
-msgstr ""
+msgstr "A termékhez nem található anyagjegyzék"
#. module: mrp
#: report:bom.structure:0
@@ -735,15 +775,15 @@ msgid "Product Name"
msgstr "Termék neve"
#. module: mrp
-#: code:addons/mrp/mrp.py:495
+#: code:addons/mrp/mrp.py:491
#, python-format
msgid "Invalid action !"
-msgstr "Érvénytelen művelet !"
+msgstr "Érvénytelen művelet!"
#. module: mrp
#: help:mrp.bom,product_efficiency:0
msgid "A factor of 0.9 means a loss of 10% within the production process."
-msgstr ""
+msgstr "A 0,9-es érték 10%-os veszteséget jelent a gyártási folyamatban."
#. module: mrp
#: view:mrp.installer:0
@@ -751,6 +791,8 @@ msgid ""
"Add more functionalities to the core Manufacturing Application with the "
"following addons."
msgstr ""
+"Bővitse további funkciókkal az alap gyártási alkalmazást az alábbi addonok "
+"használatával."
#. module: mrp
#: report:mrp.production.order:0
@@ -771,7 +813,7 @@ msgstr "Beszerzési szabály"
#. module: mrp
#: help:mrp.workcenter,costs_hour:0
msgid "Specify Cost of Work center per hour."
-msgstr ""
+msgstr "Adja meg a munkaállomás egy órára eső költségét."
#. module: mrp
#: view:mrp.production:0
@@ -786,7 +828,7 @@ msgstr "Szeptember"
#. module: mrp
#: report:mrp.production.order:0
msgid "WorkCenter"
-msgstr ""
+msgstr "Munkaállomás"
#. module: mrp
#: model:process.transition,note:mrp.process_transition_procureserviceproduct0
@@ -795,6 +837,9 @@ msgid ""
"order creates a RFQ for a subcontracting purchase order or waits until the "
"service is done (= the delivery of the products)."
msgstr ""
+"A szolgáltatásnál megadott ellátási módtól függően, a beszerzési rendelés "
+"vagy egy alvállalkozónak szóló ajánlatkérést hoz létre, vagy várakozik, míg "
+"a szolgáltatás (azaz a termék kiszállítása) be nem fejeződik."
#. module: mrp
#: selection:mrp.production,priority:0
@@ -815,7 +860,7 @@ msgstr "Gyártási rendelés"
#. module: mrp
#: model:process.transition,name:mrp.process_transition_productionprocureproducts0
msgid "Procurement of raw material"
-msgstr ""
+msgstr "Alapanyag-beszerzés"
#. module: mrp
#: help:mrp.routing.workcenter,hour_nbr:0
@@ -823,6 +868,8 @@ msgid ""
"Time in hours for this work center to achieve the operation of the specified "
"routing."
msgstr ""
+"A megadott munkaállomásnak szükséges idő (órákban), amivel az eljárásban "
+"megadott műveletet el tudja végezni."
#. module: mrp
#: view:mrp.production:0
@@ -835,7 +882,7 @@ msgstr "Összes ciklus"
#: view:mrp.production.order:0
#: selection:mrp.production.order,state:0
msgid "Ready to Produce"
-msgstr ""
+msgstr "Gyártásra kész"
#. module: mrp
#: field:mrp.bom.revision,name:0
@@ -852,7 +899,7 @@ msgstr "Dátum"
#. module: mrp
#: field:mrp.bom,type:0
msgid "BoM Type"
-msgstr ""
+msgstr "Anyagjegyzék tipusa"
#. module: mrp
#: view:mrp.production.order:0
@@ -865,6 +912,7 @@ msgstr "Kiterjesztett szűrők…"
msgid ""
"Procurement '%s' has an exception: 'No BoM defined for this product !'"
msgstr ""
+"A %s beszerzés hibát jelzett: \"A termékhez nem található anyagjegyzék!\""
#. module: mrp
#: view:mrp.production.order:0
@@ -896,7 +944,7 @@ msgstr "Vezérlőpult"
#. module: mrp
#: view:board.board:0
msgid "Work Center Future Load"
-msgstr ""
+msgstr "Munkaállomások jövőbeli terheltsége"
#. module: mrp
#: model:process.node,name:mrp.process_node_stockproduct0
@@ -909,7 +957,7 @@ msgstr "Készletezhető termék"
#: code:addons/mrp/report/price.py:121
#, python-format
msgid "Work Center name"
-msgstr ""
+msgstr "Munkaállomás neve"
#. module: mrp
#: field:mrp.routing,code:0
@@ -924,18 +972,18 @@ msgstr "Órák száma"
#. module: mrp
#: field:mrp.installer,mrp_jit:0
msgid "Just In Time Scheduling"
-msgstr ""
+msgstr "Just In Time ütemezés"
#. module: mrp
#: view:mrp.property:0
#: view:mrp.property.group:0
msgid "Property Group"
-msgstr ""
+msgstr "Tulajdonságcsoport"
#. module: mrp
#: view:mrp.production:0
msgid "Qty"
-msgstr "Menny."
+msgstr "Mennyiség"
#. module: mrp
#: model:process.node,note:mrp.process_node_production0
@@ -954,6 +1002,8 @@ msgid ""
"Enables multiple product output from a single production order: without "
"this, a production order can have only one output product."
msgstr ""
+"Lehetővét teszi több termék kibocsátását egyetlen gyártási rendelésből. "
+"Enélkül a gyártási rendelés csak egy terméket bocsátana ki."
#. module: mrp
#: view:change.production.qty:0
@@ -982,6 +1032,8 @@ msgid ""
"If the service has a 'Buy' supply method, this creates a RFQ, a "
"subcontracting demand for instance."
msgstr ""
+"Ha a szolgáltatás ellátási módja \"Vásárlás\", akkor a rendszer egy "
+"ajánlatkérést hoz létre."
#. module: mrp
#: field:mrp.production,move_prod_id:0
@@ -996,18 +1048,20 @@ msgstr "Később"
#. module: mrp
#: model:process.node,name:mrp.process_node_servicemts0
msgid "Make to stock"
-msgstr "Készletre gyártás"
+msgstr "Beszerzés készletből"
#. module: mrp
#: help:mrp.routing.workcenter,sequence:0
msgid ""
"Gives the sequence order when displaying a list of routing work centers."
msgstr ""
+"Megadja a sorrendet, amikor az eljárásban lévő munkaállomások listáját "
+"kiállítjuk."
#. module: mrp
#: report:bom.structure:0
msgid "BOM Name"
-msgstr ""
+msgstr "Anyagjegyzék név"
#. module: mrp
#: view:mrp.production:0
@@ -1036,6 +1090,8 @@ msgid ""
"Manages product routes and paths within and between locations (e.g. "
"warehouses)."
msgstr ""
+"Kezeli a termékeljárásokat és a termékútvonalakat a helyeken és a helyek "
+"között (pl.: raktárak között)."
#. module: mrp
#: model:process.node,note:mrp.process_node_billofmaterial0
@@ -1054,7 +1110,7 @@ msgstr "Név"
#. module: mrp
#: view:mrp.installer:0
msgid "MRP Application Configuration"
-msgstr ""
+msgstr "Gyártási modul alkalmazás konfigurálás"
#. module: mrp
#: help:mrp.installer,mrp_jit:0
@@ -1065,6 +1121,11 @@ msgid ""
"avoids having to wait for the procurement scheduler to run or having to run "
"the procurement scheduler manually."
msgstr ""
+"Lehetővé teszi a Just in Time számításokat a beszerzési rendelésekben. \n"
+"\n"
+"Míg ez erőforrás igényesebb, mint az alapértelmezett beállítás, a Just in "
+"Time modul kikerüli azt, hogy a beszerzési ütemező futtatására várjunk, vagy "
+"hogy a beszerzési ütemezőt manuálisan futtassuk."
#. module: mrp
#: field:mrp.product.produce,mode:0
@@ -1079,7 +1140,7 @@ msgstr "]"
#. module: mrp
#: field:mrp.workcenter.load,measure_unit:0
msgid "Amount measuring unit"
-msgstr ""
+msgstr "Érték mértékegysége"
#. module: mrp
#: model:ir.actions.act_window,help:mrp.mrp_production_action_planning
@@ -1091,11 +1152,18 @@ msgid ""
"materials have been defined, OpenERP is capable of automatically deciding on "
"the manufacturing route depending on the needs of the company."
msgstr ""
+"Gyártási rendelések meghatározzák azokat a műveleteket, amelyeket el kell "
+"végezni, illetve az alapanyag-felhasználást minden egyes gyártási fázisban. "
+"Használjon specifikációkat (anyagjegyzékek), hogy meghatározza az alapanyag-"
+"szükségletek és a késztermékek elkészítéséhez szükséges gyártási "
+"rendeléseket. Ha az anyagjegyzékeket egyszer már megadta, az OpenERP képes "
+"automatiklusan eldönteni, hogy melyik gyártási eljárást alkalmazza, függően "
+"a vállalat szükségleteitől."
#. module: mrp
#: constraint:mrp.production:0
msgid "Order quantity cannot be negative or zero !"
-msgstr "Rendelési mennyiség nem lehet negatív vagy nulla !"
+msgstr "Rendelési mennyiség nem lehet negatív vagy nulla!"
#. module: mrp
#: model:ir.actions.act_window,name:mrp.mrp_production_action3
@@ -1144,7 +1212,7 @@ msgstr ""
#. module: mrp
#: model:ir.actions.act_window,name:mrp.mrp_production_action4
msgid "Manufacturing Orders Waiting Products"
-msgstr ""
+msgstr "Árura várakozó gyártási rendelések"
#. module: mrp
#: view:mrp.bom:0
@@ -1160,36 +1228,36 @@ msgstr "Csoportosítás..."
#: code:addons/mrp/report/price.py:121
#, python-format
msgid "Cycles Cost"
-msgstr "Ciklus költsége"
+msgstr "Ciklus költség"
#. module: mrp
#: selection:mrp.workcenter.load,measure_unit:0
msgid "Amount in cycles"
-msgstr ""
+msgstr "Érték ciklusokban"
#. module: mrp
#: field:mrp.production,location_dest_id:0
#: view:mrp.production.order:0
#: field:mrp.production.order,location_dest_id:0
msgid "Finished Products Location"
-msgstr ""
+msgstr "Késztermékek helye"
#. module: mrp
#: model:ir.ui.menu,name:mrp.menu_pm_resources_config
msgid "Resources"
-msgstr "Források"
+msgstr "Erőforrások"
#. module: mrp
#: field:mrp.workcenter,costs_journal_id:0
msgid "Analytic Journal"
-msgstr "Gyűjtőnapló"
+msgstr "Analitikus napló"
#. module: mrp
#: model:ir.actions.act_window,name:mrp.mrp_workcenter_action
#: model:ir.ui.menu,name:mrp.menu_view_resource_search_mrp
#: field:mrp.routing,workcenter_lines:0
msgid "Work Centers"
-msgstr ""
+msgstr "Munkaállomások"
#. module: mrp
#: selection:mrp.workcenter.load,time_unit:0
@@ -1204,6 +1272,10 @@ msgid ""
"They are attached to bills of materials that will define the required raw "
"materials."
msgstr ""
+"A gyártási eljárások lehetővé teszik Önnek, hogy létrehozza és kezelje "
+"azokat a gyártási műveleteket, amelyeket a termék legyártásához követni kell "
+"a munkaállomásokon. Az eljárások az anyagjegyzékekhez kapcsolódnak, amelyek "
+"meghatározzák a szükséges alapanyagokat."
#. module: mrp
#: field:report.workcenter.load,hour:0
@@ -1213,7 +1285,7 @@ msgstr "Óra száma"
#. module: mrp
#: view:mrp.routing:0
msgid "Work Center Operations"
-msgstr ""
+msgstr "Munkaállomás műveletei"
#. module: mrp
#: view:mrp.routing:0
@@ -1237,24 +1309,24 @@ msgstr "Időegység kiválasztása"
#. module: mrp
#: view:report.workcenter.load:0
msgid "Work Center load"
-msgstr ""
+msgstr "Munkaállomás terheltsége"
#. module: mrp
#: help:mrp.production,location_dest_id:0
msgid "Location where the system will stock the finished products."
-msgstr ""
+msgstr "A késztermékek tárolásának helye."
#. module: mrp
#: help:mrp.production,picking_id:0
msgid ""
-"This is the internal picking list that brings the finished product to the "
+"This is the Internal Picking List that brings the finished product to the "
"production plan"
msgstr ""
#. module: mrp
#: field:stock.change.standard.price,change_parent_price:0
msgid "Change Parent Price"
-msgstr ""
+msgstr "Fölérendelt ár megváltoztatása"
#. module: mrp
#: model:ir.model,name:mrp.model_stock_move
@@ -1268,6 +1340,9 @@ msgid ""
"maxi quantity. It's available in the Inventory management menu and "
"configured by product."
msgstr ""
+"A minimális készlet szabály egy automatikus beszerzési szabály, amely a "
+"minimum és maximum árumennyiségre épül. Elérhető a leltárkezelés menüben, "
+"illetve az egyes termékeknél állítható be."
#. module: mrp
#: selection:mrp.workcenter.load,time_unit:0
@@ -1282,7 +1357,7 @@ msgstr "Felülvizsgálatok"
#. module: mrp
#: view:mrp.installer:0
msgid "Configure Your Manufacturing Resource Planning Application"
-msgstr ""
+msgstr "Állítsa be a gyártási modul alkalmazását."
#. module: mrp
#: field:mrp.production,priority:0
@@ -1301,38 +1376,38 @@ msgid "Month -1"
msgstr "Előző hónap"
#. module: mrp
-#: code:addons/mrp/mrp.py:924
+#: code:addons/mrp/mrp.py:914
#, python-format
msgid "Manufacturing order '%s' is scheduled for the %s."
-msgstr ""
+msgstr "A %s gyártási rendelést a rendszer a következőre ütemezte: %s"
#. module: mrp
#: report:mrp.production.order:0
msgid "Production Order N° :"
-msgstr "Gyártási rendelés száma"
+msgstr "Gyártási rendelés száma:"
#. module: mrp
-#: code:addons/mrp/mrp.py:640
+#: code:addons/mrp/mrp.py:630
#, python-format
msgid "Manufacturing order '%s' is ready to produce."
-msgstr ""
+msgstr "A %s gyártási rendelés gyártásra kész."
#. module: mrp
#: model:ir.model,name:mrp.model_mrp_production_product_line
msgid "Production Scheduled Product"
-msgstr ""
+msgstr "Gyártásra ütemezett termék"
#. module: mrp
#: help:res.company,manufacturing_lead:0
msgid "Security days for each manufacturing operation."
-msgstr ""
+msgstr "Minden gyártási művelet biztonsági ideje."
#. module: mrp
#: model:process.node,name:mrp.process_node_mts0
#: model:process.transition,name:mrp.process_transition_servicemts0
#: model:process.transition,name:mrp.process_transition_stockmts0
msgid "Make to Stock"
-msgstr "Készletre gyártás"
+msgstr "Beszerzés készletből"
#. module: mrp
#: selection:mrp.production.order,month:0
@@ -1348,6 +1423,12 @@ msgid ""
"product needs. You can either create a bill of materials to define specific "
"production steps or define a single multi-level bill of materials."
msgstr ""
+"A fő anyagjegyzékek lehetővé teszik Önnek, hogy létrehozza és kezelje a "
+"késztermék előállításához szükséges alapanyagok listáját. Az OpenERP "
+"használja ezeket az anyagjegyzékeket, hogy automatikusan javasoljon gyártási "
+"rendeléseket a termékszükségleteknek megfelelően. Létrehozhat "
+"anyagjegyzékeket, hogy meghatározzon speciális gyártási lépéseket vagy "
+"megadhat egy több szintű anyagjegyzék-struktúrát is."
#. module: mrp
#: model:process.transition,note:mrp.process_transition_stockrfq0
@@ -1355,8 +1436,8 @@ msgid ""
"In case the Supply method of the product is Buy, the system creates a "
"purchase order."
msgstr ""
-"Ha a termék ellátási módszere vásárlás, a rendszer szállítói megrendelést "
-"hoz létre."
+"Ha a termék ellátási módszere \"Vásárlás\", a rendszer szállítói "
+"megrendelést hoz létre."
#. module: mrp
#: model:ir.model,name:mrp.model_procurement_order
@@ -1373,7 +1454,7 @@ msgstr "Termék költségszerkezete"
#: code:addons/mrp/report/price.py:130
#, python-format
msgid "Components suppliers"
-msgstr "Alkatrészek beszállítói"
+msgstr "Hozzávalók beszállítói"
#. module: mrp
#: model:ir.model,name:mrp.model_mrp_installer
@@ -1383,7 +1464,7 @@ msgstr "mrp.installer"
#. module: mrp
#: view:mrp.production:0
msgid "Production Work Centers"
-msgstr ""
+msgstr "Gyártási munkaállomások"
#. module: mrp
#: view:mrp.production.order:0
@@ -1400,12 +1481,12 @@ msgstr "Aktív ID nem található"
#. module: mrp
#: view:mrp.workcenter:0
msgid "Search for mrp workcenter"
-msgstr ""
+msgstr "Munkaállomás keresése"
#. module: mrp
#: view:mrp.bom:0
msgid "BoM Structure"
-msgstr ""
+msgstr "Anyagjegyzék struktúra"
#. module: mrp
#: field:mrp.production,date_start:0
@@ -1416,12 +1497,12 @@ msgstr "Kezdő dátum"
#. module: mrp
#: field:mrp.workcenter,costs_hour_account_id:0
msgid "Hour Account"
-msgstr "Óra gyűjtőkód"
+msgstr "Óra számla"
#. module: mrp
#: view:mrp.production:0
msgid "Destination Loc."
-msgstr ""
+msgstr "Célállomás helye"
#. module: mrp
#: field:mrp.production.order,product_id2:0
@@ -1442,13 +1523,13 @@ msgstr "aktív"
#. module: mrp
#: model:process.node,name:mrp.process_node_procureproducts0
msgid "Procure Products"
-msgstr ""
+msgstr "Termékek beszerzése"
#. module: mrp
#: model:ir.actions.act_window,name:mrp.action_report_workcenter_load_tree
#: view:report.workcenter.load:0
msgid "Work Center Loads"
-msgstr ""
+msgstr "Munkaállomások terheltsége"
#. module: mrp
#: model:ir.actions.act_window,name:mrp.mrp_property_action
@@ -1466,6 +1547,7 @@ msgstr "Tulajdonságok"
msgid ""
"Reference of the document that generated this production order request."
msgstr ""
+"A dokumentum hivatkozása hozta létre ezt a gyártási rendelési megbízást."
#. module: mrp
#: sql_constraint:mrp.bom:0
@@ -1474,6 +1556,9 @@ msgid ""
"You should install the mrp_subproduct module if you want to manage extra "
"products on BoMs !"
msgstr ""
+"Minden termékmennyiségnek pozitívnak kell lennie.\n"
+"Telepítse az altermékek modult, amennyiben több terméket is szeretnénk egy "
+"anyagjegyzékkel legyártani."
#. module: mrp
#: view:mrp.production:0
@@ -1483,12 +1568,12 @@ msgstr "Extra információ"
#. module: mrp
#: model:ir.model,name:mrp.model_change_production_qty
msgid "Change Quantity of Products"
-msgstr ""
+msgstr "Termékek mennyiségének megváltoztatása"
#. module: mrp
#: model:process.node,note:mrp.process_node_productionorder0
msgid "Drives the procurement orders for raw material."
-msgstr ""
+msgstr "Kezeli az alapanyagok beszerzési rendeléseit."
#. module: mrp
#: view:mrp.production.order:0
@@ -1503,7 +1588,7 @@ msgstr "Főkönyvi számla"
#. module: mrp
#: report:mrp.production.order:0
msgid "SO Number"
-msgstr ""
+msgstr "Értékesítési megbízás száma"
#. module: mrp
#: selection:mrp.production,state:0
@@ -1536,17 +1621,19 @@ msgid ""
"This will change the price of parent products also according to the BoM "
"structure specified for the product."
msgstr ""
+"Ez megváltoztatja a fölérendelt termékek árát is a termék anyagjegyzék-"
+"struktúrájának megfelelően."
#. module: mrp
#: model:ir.actions.act_window,name:mrp.mrp_production_action2
msgid "Manufacturing Orders To Start"
-msgstr ""
+msgstr "Elkezdésre váró gyártási rendelések"
#. module: mrp
-#: code:addons/mrp/mrp.py:495
+#: code:addons/mrp/mrp.py:491
#, python-format
msgid "Cannot delete Production Order(s) which are in %s State!"
-msgstr ""
+msgstr "A %s állapotban lévő gyártási rendelések nem törölhetőek!"
#. module: mrp
#: model:ir.model,name:mrp.model_mrp_workcenter
@@ -1555,12 +1642,12 @@ msgstr ""
#: view:mrp.workcenter:0
#: field:report.workcenter.load,workcenter_id:0
msgid "Work Center"
-msgstr ""
+msgstr "Munkaállomás"
#. module: mrp
#: field:mrp.workcenter,capacity_per_cycle:0
msgid "Capacity per Cycle"
-msgstr ""
+msgstr "Ciklusonkénti kapacitás"
#. module: mrp
#: model:ir.model,name:mrp.model_product_product
@@ -1585,7 +1672,7 @@ msgstr "Összes óra"
#: field:mrp.production,location_src_id:0
#: field:mrp.production.order,location_src_id:0
msgid "Raw Materials Location"
-msgstr ""
+msgstr "Alapanyagok helye"
#. module: mrp
#: view:mrp.product_price:0
@@ -1605,11 +1692,14 @@ msgid ""
"of one or more persons and/or machines that can be considered as a unit for "
"capacity and planning forecasting."
msgstr ""
+"A munkaállomások lehetővé teszik Önnek, hogy létrehozza és kezelje az egy "
+"vagy több személyből vagy gépből álló gyártási egységeket, amelyek a "
+"kapacitástervezés és -előrejelzés alapegységeit képezik."
#. module: mrp
#: view:mrp.production:0
msgid "Consume Products"
-msgstr ""
+msgstr "Termékek felhasználása"
#. module: mrp
#: field:mrp.bom,product_uom:0
@@ -1624,16 +1714,16 @@ msgstr "Termék ME"
#: model:process.transition,name:mrp.process_transition_servicemto0
#: model:process.transition,name:mrp.process_transition_stockproduct0
msgid "Make to Order"
-msgstr "Rendelésre gyártás"
+msgstr "Beszerzés megrendelésből"
#. module: mrp
#: model:ir.actions.act_window,name:mrp.action_report_mrp_production_order
#: model:ir.ui.menu,name:mrp.menu_report_mrp_production_orders_tree
msgid "Production Analysis"
-msgstr "Gyártás elemzése"
+msgstr "Gyártáselemzés"
#. module: mrp
-#: code:addons/mrp/mrp.py:349
+#: code:addons/mrp/mrp.py:345
#, python-format
msgid "Copy"
msgstr "Másolás"
@@ -1647,18 +1737,20 @@ msgstr "Gyártási termékek"
#: field:mrp.production,date_finished:0
#: field:mrp.production.order,date_finished:0
msgid "End Date"
-msgstr "Befejezés dátuma"
+msgstr "Befejezési dátum"
#. module: mrp
#: field:mrp.workcenter,resource_id:0
msgid "Resource"
-msgstr "Forrás"
+msgstr "Erőforrás"
#. module: mrp
#: help:mrp.bom,date_start:0
#: help:mrp.bom,date_stop:0
msgid "Validity of this BoM or component. Keep empty if it's always valid."
msgstr ""
+"Az anyagjegyzék vagy hozzávaló érvényessége. Hagyja üresen, ha mindig "
+"érvényes."
#. module: mrp
#: field:mrp.production,product_uos:0
@@ -1684,21 +1776,25 @@ msgid ""
"operations and to plan future loads on work centers based on production "
"planning."
msgstr ""
+"A késztermék gyártásához szükséges műveletek listája (munkaállomások "
+"listája). Az eljárás főleg arra szolgál, hogy a műveletek alatt a "
+"munkaállomások költségei ki legyenek számítva, és hogy a munkaállomások "
+"jövőbeni terheltsége meg legyen tervezve a gyártási terv alapján."
#. module: mrp
#: view:change.production.qty:0
msgid "Approve"
-msgstr "Jóváhagy"
+msgstr "Jóváhagyás"
#. module: mrp
#: view:mrp.property.group:0
msgid "Properties categories"
-msgstr ""
+msgstr "Tulajdonság-kategóriák"
#. module: mrp
#: help:mrp.production.workcenter.line,sequence:0
msgid "Gives the sequence order when displaying a list of work orders."
-msgstr ""
+msgstr "Megadja a sorrendet, amikor a munka megbízások listáját kiállítjuk."
#. module: mrp
#: report:mrp.production.order:0
@@ -1714,7 +1810,7 @@ msgstr "Tervezett termékek"
#. module: mrp
#: view:mrp.production.lot.line:0
msgid "Production Products Consommation"
-msgstr ""
+msgstr "Gyártási termékek felhasználása"
#. module: mrp
#: model:ir.actions.act_window,name:mrp.mrp_production_action
@@ -1734,12 +1830,17 @@ msgid ""
"the quantity selected and it will finish the production order when total "
"ordered quantities are produced."
msgstr ""
+"A \"Csak felhasználás\" mód csak a kijelölt mennyiségű termékeket használja "
+"fel.\n"
+"A \"Felhasználás és gyártás\" mód a kijelölt mennyiségű termékeket "
+"használja fel és gyártja is, és csak akkor fejezi be a gyártási rendelést, "
+"amikor a teljes megrendelt mennyiség legyártásra került."
#. module: mrp
#: view:mrp.production:0
#: report:mrp.production.order:0
msgid "Work Orders"
-msgstr ""
+msgstr "Munka megbízások"
#. module: mrp
#: field:mrp.workcenter,costs_cycle:0
@@ -1761,13 +1862,13 @@ msgstr "Törölt"
#. module: mrp
#: view:mrp.production.order:0
msgid "BOM"
-msgstr ""
+msgstr "Anyagjegyzék"
#. module: mrp
#: help:mrp.bom,product_uom:0
msgid ""
"UoM (Unit of Measure) is the unit of measurement for the inventory control"
-msgstr ""
+msgstr "A mértékegység leltárellenőrzés mértékegysége."
#. module: mrp
#: model:process.transition,note:mrp.process_transition_bom0
@@ -1776,6 +1877,9 @@ msgid ""
"are products themselves) can also have their own Bill of Material (multi-"
"level)."
msgstr ""
+"Az anyagjegyzék a termék szétbontása összetevőkre. Az összetevőknek, amelyek "
+"maguk is termékek, rendelkezhetnek saját anyagjegyzékkel (több szintű "
+"anyagjegyzék)."
#. module: mrp
#: field:mrp.bom,company_id:0
@@ -1828,7 +1932,7 @@ msgstr "Összetevők"
#: report:bom.structure:0
#: model:ir.actions.report.xml,name:mrp.report_bom_structure
msgid "BOM Structure"
-msgstr ""
+msgstr "Anyagjegyzék struktúra"
#. module: mrp
#: field:mrp.bom,date_stop:0
@@ -1843,7 +1947,7 @@ msgstr "Érvényesség kezdete"
#. module: mrp
#: selection:mrp.bom,type:0
msgid "Normal BoM"
-msgstr ""
+msgstr "Normál anyagjegyzék"
#. module: mrp
#: field:res.company,manufacturing_lead:0
@@ -1863,6 +1967,9 @@ msgid ""
"linked to manufacturing activities, receptions of products and delivery "
"orders."
msgstr ""
+"A heti készlet érték változtatása lehetővé teszi Önnek, hogy kövesse a "
+"gyártási tevékenységekhez, a termékek beérkezéséhez és a kiszállítási "
+"megbízásokhoz kapcsolódó készletérték fejlődését."
#. module: mrp
#: view:mrp.product.produce:0
@@ -1872,7 +1979,7 @@ msgstr "Megerősítés"
#. module: mrp
#: field:mrp.bom,product_efficiency:0
msgid "Manufacturing Efficiency"
-msgstr ""
+msgstr "Gyártási hatékonyság"
#. module: mrp
#: constraint:res.company:0
@@ -1885,17 +1992,19 @@ msgid ""
"If the active field is set to False, it will allow you to hide the bills of "
"material without removing it."
msgstr ""
+"Ha az aktív mező \"Hamis\"-ra van állítva, ez lehetővé teszi, hogy elrejtse "
+"az anyagjegyzékeket, anélkül, hogy törölné azokat."
#. module: mrp
#: field:mrp.bom,product_rounding:0
msgid "Product Rounding"
-msgstr ""
+msgstr "Termék kerekítése"
#. module: mrp
#: model:ir.model,name:mrp.model_mrp_production_workcenter_line
#: field:mrp.production.workcenter.line,name:0
msgid "Work Order"
-msgstr ""
+msgstr "Munka megbízás"
#. module: mrp
#: model:ir.actions.act_window,help:mrp.action_report_mrp_production_order
@@ -1903,16 +2012,18 @@ msgid ""
"This reporting allows you to analyse your manufacturing activities and "
"performance."
msgstr ""
+"A riport készítés lehetővé teszi Önnek, hogy elemezze a gyártási "
+"tevékenységét és teljesítményét."
#. module: mrp
#: selection:mrp.product.produce,mode:0
msgid "Consume Only"
-msgstr ""
+msgstr "Csak felhasználás"
#. module: mrp
#: view:mrp.production:0
msgid "Recreate Picking"
-msgstr ""
+msgstr "Kiszedés újrakészítése"
#. module: mrp
#: help:mrp.bom,type:0
@@ -1923,6 +2034,12 @@ msgid ""
"product, it will be sold and shipped as a set of components, instead of "
"being produced."
msgstr ""
+"Ha egy altermék több termékben is használatban van, hasznos lehet "
+"megcsinálni a saját anyagjegyzékét. Ha nem szeretne különböző gyártási "
+"rendeléseket erre az altermékre, akkor válassza a fantom anyagjegyzék "
+"beállítását, mint anyagjegyzék típust. Ha a fantom anyagjegyzék kiinduló "
+"termékként van használatban, akkor azt a rendszer összetevők egységeként "
+"értékesíti és szállítja, ahelyett, hogy gyártaná."
#. module: mrp
#: field:mrp.bom,method:0
@@ -1940,6 +2057,14 @@ msgid ""
" When the production gets started then the state is set to 'In Production'.\n"
" When the production is over, the state is set to 'Done'."
msgstr ""
+"Amikor a gyártási rendelés létrejön, a gyártás állapota \"Tervezet\" lesz.\n"
+"Amikor a rendelés megerősítésre kerül, a gyártás állapota \"Várakozás az "
+"árura\" lesz.\n"
+"Ha bármilyen hiba felmerül, a gyártás állapota \"Kiszedési hiba\" lesz. \n"
+"Ha a készlet elérhető, akkor a gyártás állapota \"Gyártásra kész\" lesz. \n"
+"Amikor a gyártás elkezdődik, akkor a gyártás állapota \"Gyártás alatt\" "
+"lesz.\n"
+"Amikor a gyártás befejeződik, a a gyártás állapota \"Kész\" lesz."
#. module: mrp
#: selection:mrp.bom,method:0
@@ -1950,12 +2075,12 @@ msgstr "Rendelésre"
#: model:ir.ui.menu,name:mrp.menu_mrp_configuration
#: view:res.company:0
msgid "Configuration"
-msgstr "Beállítások"
+msgstr "Beállítás"
#. module: mrp
#: field:mrp.workcenter,time_stop:0
msgid "Time after prod."
-msgstr ""
+msgstr "Gyártás utáni idő"
#. module: mrp
#: field:mrp.workcenter.load,time_unit:0
@@ -1965,7 +2090,7 @@ msgstr "Időszak típusa"
#. module: mrp
#: view:mrp.production:0
msgid "Total Qty"
-msgstr "Összmenny."
+msgstr "Összmennyiség"
#. module: mrp
#: field:mrp.routing.workcenter,hour_nbr:0
@@ -1975,7 +2100,7 @@ msgstr "Órák száma"
#. module: mrp
#: view:mrp.workcenter:0
msgid "Costing Information"
-msgstr ""
+msgstr "Költségszámítási információk"
#. module: mrp
#: model:process.node,name:mrp.process_node_purchaseprocure0
@@ -1985,27 +2110,27 @@ msgstr "Beszerzési megrendelések"
#. module: mrp
#: help:mrp.bom,product_rounding:0
msgid "Rounding applied on the product quantity."
-msgstr ""
+msgstr "A termékmennyiségen alkalmazott kerekítés."
#. module: mrp
#: model:process.node,note:mrp.process_node_stock0
msgid "Assignment from Production or Purchase Order."
-msgstr ""
+msgstr "Ellátás gyártási vagy beszerzési megrendelésből."
#. module: mrp
#: field:mrp.routing.workcenter,routing_id:0
msgid "Parent Routing"
-msgstr ""
+msgstr "Fölérendelt eljárás"
#. module: mrp
#: view:mrp.installer:0
msgid "Configure"
-msgstr "Beállítás"
+msgstr "Beállít"
#. module: mrp
#: help:mrp.workcenter,time_start:0
msgid "Time in hours for the setup."
-msgstr ""
+msgstr "A beállításhoz szükséges idő órákban megadva."
#. module: mrp
#: selection:mrp.production.order,month:0
@@ -2021,19 +2146,19 @@ msgstr "Kép"
#: field:mrp.bom.revision,bom_id:0
#: field:procurement.order,bom_id:0
msgid "BoM"
-msgstr ""
+msgstr "Anyagjegyzék"
#. module: mrp
#: model:ir.model,name:mrp.model_report_mrp_inout
#: view:report.mrp.inout:0
msgid "Stock value variation"
-msgstr ""
+msgstr "Készletérték változás"
#. module: mrp
#: model:process.node,note:mrp.process_node_mts0
#: model:process.node,note:mrp.process_node_servicemts0
msgid "Assignment from stock."
-msgstr ""
+msgstr "Ellátás raktárból"
#. module: mrp
#: selection:mrp.production,state:0
@@ -2045,13 +2170,13 @@ msgstr "Várakozás az árura"
#. module: mrp
#: field:mrp.bom.revision,last_indice:0
msgid "last indice"
-msgstr ""
+msgstr "utolsó jelzőszám"
#. module: mrp
#: field:mrp.bom,revision_ids:0
#: view:mrp.bom.revision:0
msgid "BoM Revisions"
-msgstr ""
+msgstr "Anyagjegyzék felülvizsgálatok"
#. module: mrp
#: selection:mrp.production,state:0
@@ -2091,7 +2216,7 @@ msgstr "Költségszerkezet"
#. module: mrp
#: selection:mrp.product.produce,mode:0
msgid "Consume & Produce"
-msgstr ""
+msgstr "Felhasználás és gyártás"
#. module: mrp
#: selection:mrp.production.order,month:0
@@ -2101,7 +2226,7 @@ msgstr "November"
#. module: mrp
#: field:mrp.bom,bom_id:0
msgid "Parent BoM"
-msgstr ""
+msgstr "Fölérendelt anyagjegyzék"
#. module: mrp
#: model:ir.actions.act_window,help:mrp.mrp_bom_form_action2
@@ -2110,6 +2235,9 @@ msgid ""
"master bills of materials. Use this menu to search in which BoM a specific "
"component is used."
msgstr ""
+"Az anyagjegyzék összetevők azok összetevők és altermékek, amelyek fő "
+"anyagjegyzékek létrehozására szolgálnak. Használja ezt a menüt annak "
+"megkeresésére, hogy egy speciális összetevőt mely anyagjegyzék használ."
#. module: mrp
#: selection:mrp.production.order,month:0
@@ -2119,10 +2247,10 @@ msgstr "Január"
#. module: mrp
#: model:process.node,note:mrp.process_node_stockproduct0
msgid "Product type is Stockable or Consumable."
-msgstr "A termék típusa készletezhető vagy felhasználható."
+msgstr "A termék típusa raktározható vagy felhasználható."
#. module: mrp
-#: code:addons/mrp/mrp.py:595
+#: code:addons/mrp/mrp.py:591
#: code:addons/mrp/wizard/change_production_qty.py:77
#: code:addons/mrp/wizard/change_production_qty.py:82
#, python-format
@@ -2140,7 +2268,7 @@ msgstr "Mennyiség kiválasztása"
#: model:ir.ui.menu,name:mrp.menu_mrp_bom_form_action
#: field:product.product,bom_ids:0
msgid "Bill of Materials"
-msgstr ""
+msgstr "Anyagjegyzékek"
#. module: mrp
#: help:mrp.routing.workcenter,routing_id:0
@@ -2153,7 +2281,7 @@ msgstr ""
#. module: mrp
#: model:ir.model,name:mrp.model_mrp_bom_revision
msgid "Bill of Material Revision"
-msgstr ""
+msgstr "Anyagjegyzék felülvizsgálat"
#. module: mrp
#: view:mrp.routing.workcenter:0
@@ -2164,13 +2292,13 @@ msgstr "Általános információ"
#. module: mrp
#: view:mrp.production:0
msgid "Productions"
-msgstr "Gyártás"
+msgstr "Gyártások"
#. module: mrp
#: code:addons/mrp/report/price.py:194
#, python-format
msgid "Work Cost of "
-msgstr ""
+msgstr "Munkaköltsége "
#. module: mrp
#: help:mrp.workcenter,note:0
@@ -2189,7 +2317,7 @@ msgstr ""
#: view:mrp.routing:0
#: model:process.node,name:mrp.process_node_routing0
msgid "Routing"
-msgstr ""
+msgstr "Gyártási eljárás"
#. module: mrp
#: field:mrp.installer,mrp_operations:0
@@ -2204,7 +2332,7 @@ msgstr "Tervezett dátum"
#. module: mrp
#: constraint:stock.move:0
msgid "You must assign a production lot for this product"
-msgstr ""
+msgstr "Rendeljen hozzá egy gyártási tételt ehhez a termékhez!"
#. module: mrp
#: model:ir.actions.act_window,help:mrp.mrp_property_action
@@ -2215,6 +2343,12 @@ msgid ""
"sales person creates a sales order, he can relate it to several properties "
"and OpenERP will automatically select the BoM to use according the the needs."
msgstr ""
+"A Tulajdonságok az OpenERP-ben arra szolgál, hogy kiválassza a megfelelő "
+"anyagjegyzéket egy termék gyártásához, amikor különböző módokon is "
+"gyárthatja ugyanazt a terméket. Számos tulajdonságot hozzárendelhet minden "
+"egyes anyagjegyzékhez. Amikor egy értékesítő létrehoz egy értékesítési "
+"megbízást, összekapcsolhatja azt számos tulajdonsággal, és az OpenERP "
+"automatikusan kiválasztja a megfelelő anyagjegyzéket az igények alapján."
#. module: mrp
#: view:mrp.production.order:0
@@ -2225,12 +2359,12 @@ msgstr "Gyártás"
#. module: mrp
#: view:board.board:0
msgid "Procurements in Exception"
-msgstr ""
+msgstr "Hibás beszerzések"
#. module: mrp
#: model:process.transition,name:mrp.process_transition_minimumstockprocure0
msgid "'Minimum stock rule' material"
-msgstr ""
+msgstr "\"Minimális készlet szabály\" tárgya"
#. module: mrp
#: model:ir.model,name:mrp.model_mrp_product_price
@@ -2240,7 +2374,7 @@ msgstr "Termék ára"
#. module: mrp
#: model:ir.actions.act_window,name:mrp.action_mrp_installer
msgid "MRP Applications Configuration"
-msgstr ""
+msgstr "Gyártási modul alkalmazások beállítása"
#. module: mrp
#: model:ir.model,name:mrp.model_stock_move_split
@@ -2250,13 +2384,13 @@ msgstr "Gyártási tételek részekre osztása"
#. module: mrp
#: view:change.production.qty:0
msgid "Change Quantity"
-msgstr ""
+msgstr "Mennyiség változtatása"
#. module: mrp
#: view:change.production.qty:0
#: model:ir.actions.act_window,name:mrp.action_change_production_qty
msgid "Change Product Qty"
-msgstr ""
+msgstr "Mennyiség változtatása"
#. module: mrp
#: view:mrp.bom.revision:0
@@ -2279,7 +2413,7 @@ msgstr "Május"
#. module: mrp
#: view:board.board:0
msgid "Manufacturing board"
-msgstr ""
+msgstr "Gyártás áttekintő"
#. module: mrp
#: field:mrp.production,date_planned_end:0
@@ -2293,6 +2427,9 @@ msgid ""
"specified period. It is expressed in number of hours and machine related "
"cycles."
msgstr ""
+"A munkaállomások terheltsége menü ad egy előrejelzést a munkaállomások "
+"terheltségéről egy megadott időszakban. Ez óraszámokban és géphez kapcsolt "
+"ciklusokban kerül kifejezésre."
#. module: mrp
#: model:process.node,note:mrp.process_node_procureproducts0
@@ -2318,7 +2455,7 @@ msgstr "Február"
#: model:ir.actions.act_window,name:mrp.mrp_property_group_action
#: model:ir.ui.menu,name:mrp.menu_mrp_property_group_action
msgid "Property Groups"
-msgstr ""
+msgstr "Tulajdonság-csoportok"
#. module: mrp
#: selection:mrp.production.order,month:0
@@ -2331,16 +2468,19 @@ msgid ""
"Depending on the chosen method to supply the stockable products, the "
"procurement order creates a RFQ, a production order, ... "
msgstr ""
+"Függően a raktározható termékek ellátásra kiválasztott módszertől a "
+"beszerzési megrendelés létrehoz egy ajánlatkérést, egy gyártási "
+"rendelést,... "
#. module: mrp
#: help:mrp.workcenter,time_stop:0
msgid "Time in hours for the cleaning."
-msgstr ""
+msgstr "A tisztítás ideje (órákban)."
#. module: mrp
#: model:process.transition,name:mrp.process_transition_purchaseprocure0
msgid "Automatic RFQ"
-msgstr ""
+msgstr "Automatikus ajánlatkérés"
#. module: mrp
#: model:process.transition,note:mrp.process_transition_servicemto0
@@ -2348,6 +2488,8 @@ msgid ""
"If the service has a 'Produce' supply method, this creates a task in the "
"project management module of OpenERP."
msgstr ""
+"Ha a szolgáltatás ellátási módszere \"Gyártás\", a rendszer feladatokat hoz "
+"létre az OpenERP projektmenedzsment moduljában."
#. module: mrp
#: model:process.transition,note:mrp.process_transition_productionprocureproducts0
@@ -2356,6 +2498,9 @@ msgid ""
"production order creates as much procurement orders as components listed in "
"the BOM, through a run of the schedulers (MRP)."
msgstr ""
+"Az alapanyagok ellátása érdekében (lehet beszerzés vagy gyártás útján), a "
+"gyártási rendelés létrehoz annyi további gyártási rendelést, amennyi "
+"összetevő az anyagjegyzékben van, az ütemező futtatásán keresztül."
#. module: mrp
#: help:mrp.product_price,number:0
@@ -2363,11 +2508,13 @@ msgid ""
"Specify quantity of products to produce or buy. Report of Cost structure "
"will be displayed base on this quantity."
msgstr ""
+"Speciális termékmennyiség gyártásra vagy vásárlásra. A költségstruktúra "
+"riport e mennyiség alapján lesz kiállítva."
#. module: mrp
#: selection:mrp.bom,method:0
msgid "On Stock"
-msgstr "Készletre"
+msgstr "Raktáron"
#. module: mrp
#: field:mrp.bom,sequence:0
@@ -2380,12 +2527,12 @@ msgstr "Sorszám"
#. module: mrp
#: model:ir.ui.menu,name:mrp.menu_view_resource_calendar_leaves_search_mrp
msgid "Resource Leaves"
-msgstr ""
+msgstr "Erőforrás leadás"
#. module: mrp
#: help:mrp.bom,sequence:0
msgid "Gives the sequence order when displaying a list of bills of material."
-msgstr ""
+msgstr "Megadja a sorrendet, amikor az anyagjegyzékek listáját kiállítjuk."
#. module: mrp
#: view:mrp.production:0
@@ -2400,3 +2547,116 @@ msgstr "Felhasználandó termékek"
#: field:mrp.production.order,year:0
msgid "Year"
msgstr "Év"
+
+#~ msgid "Specify Cost of Work center per cycle."
+#~ msgstr "Adja meg a munkaállomás egy ciklusra számított költségét."
+
+#~ msgid "Workcenter Usage"
+#~ msgstr "Munkaállomás kihasználtsága"
+
+#~ msgid ""
+#~ "Number of operations this work center can do in parallel. If this work "
+#~ "center represents a team of 5 workers, the capacity per cycle is 5."
+#~ msgstr ""
+#~ "Műveletek száma, amelyeket a megadott munkaállomás párhuzamosan tud végezni. "
+#~ "Ha ez a munkaállomás 5 munka munkavállalóból álló csoportot jelent, akkor a "
+#~ "ciklusonkénti kapacitás 5."
+
+#~ msgid ""
+#~ "\n"
+#~ " This is the base module to manage the manufacturing process in OpenERP.\n"
+#~ "\n"
+#~ " Features:\n"
+#~ " * Make to Stock / Make to Order (by line)\n"
+#~ " * Multi-level BoMs, no limit\n"
+#~ " * Multi-level routing, no limit\n"
+#~ " * Routing and work center integrated with analytic accounting\n"
+#~ " * Scheduler computation periodically / Just In Time module\n"
+#~ " * Multi-pos, multi-warehouse\n"
+#~ " * Different reordering policies\n"
+#~ " * Cost method by product: standard price, average price\n"
+#~ " * Easy analysis of troubles or needs\n"
+#~ " * Very flexible\n"
+#~ " * Allows to browse Bill of Materials in complete structure\n"
+#~ " that include child and phantom BoMs\n"
+#~ " It supports complete integration and planification of stockable goods,\n"
+#~ " consumable of services. Services are completely integrated with the "
+#~ "rest\n"
+#~ " of the software. For instance, you can set up a sub-contracting service\n"
+#~ " in a BoM to automatically purchase on order the assembly of your "
+#~ "production.\n"
+#~ "\n"
+#~ " Reports provided by this module:\n"
+#~ " * Bill of Material structure and components\n"
+#~ " * Load forecast on workcenters\n"
+#~ " * Print a production order\n"
+#~ " * Stock forecasts\n"
+#~ " Dashboard provided by this module::\n"
+#~ " * List of next production orders\n"
+#~ " * List of deliveries (out picking)\n"
+#~ " * Graph of work center load\n"
+#~ " * List of procurement in exception\n"
+#~ " "
+#~ msgstr ""
+#~ "\n"
+#~ " Ez az alapmodul az OpenERP-ben a gyártási folyamatok kezelésére. \n"
+#~ "\n"
+#~ " Funkciók:\n"
+#~ " * Beszerzés raktárból és beszerzés megrendelésből (soronként "
+#~ "különbözően)\n"
+#~ " * Többszintű anyagjegyzékek (nincs korlátozás)\n"
+#~ " * Többszintű eljárások (nincs korlátozás)\n"
+#~ " * Gyártási eljárás és munkaállomás integráció az analitikus "
+#~ "könyveléssel\n"
+#~ " * Ütemező számítások periódikusan / Just In Time modul\n"
+#~ " * Több értékesítési hely, több raktár kezelése\n"
+#~ " * Különböző újrarendező eljárások\n"
+#~ " * Különböző költségkalkulációk termékenként: elszámoló ár, átlagár\n"
+#~ " * Könnyen kezelhető szükséglet felmérés és hiba felmérés\n"
+#~ " * Nagyon rugalmas\n"
+#~ " * Lehetővé teszi, hogy az anyagjegyzékeket a teljes struktúrájukban "
+#~ "böngésszük,\n"
+#~ " amely magába foglalja az alárendelt és fölérendelt anyagjegyzékeket "
+#~ "is.\n"
+#~ " Támogatja a raktározható áruk és a fogyasztható szolgáltatások teljes "
+#~ "integrációját\n"
+#~ " és a velük való tervezést. A szolgáltatások nem teljesen integráltak\n"
+#~ " a szoftver többi részével. Létrehozhat például egy alárendelt "
+#~ "szolgáltatást \n"
+#~ " egy anyagjegyzékben, hogy automatikusan beszerezze rendelésre a "
+#~ "gyártásának tételeit.\n"
+#~ "\n"
+#~ " A modul által nyújtott riportok:\n"
+#~ " * Anyagjegyzék struktúra és összetevők\n"
+#~ " * Munkaállomások terheltségének előrejelzése\n"
+#~ " * Gyártási rendelés nyomtatása\n"
+#~ " * Raktár előrejelzések\n"
+#~ "\n"
+#~ " A modul által nyújtott vezérlőpultok:\n"
+#~ " * Következő gyártási rendelések listája\n"
+#~ " * Szállítások listája\n"
+#~ " * Grafikon a munkaállomás terheltségéről\n"
+#~ " * Beszerzési hibák listája\n"
+#~ " "
+
+#~ msgid ""
+#~ "This is the internal picking list that brings the finished product to the "
+#~ "production plan"
+#~ msgstr ""
+#~ "Ez a belső kiszedési lista, ami a késztermékeket a termelés tervbe viszi"
+
+#~ msgid ""
+#~ "Routing indicates all the workcenters used, for how long and/or cycles.If "
+#~ "Routing is indicated then,the third tab of a production order (workcenters) "
+#~ "will be automatically pre-completed."
+#~ msgstr ""
+#~ "A gyártási eljárás jelzi, hogy az összes munkaállomás milyen hosszan és/vagy "
+#~ "hány ciklusra van használatban. Ha a gyártási eljárás be van kapcsolva, a "
+#~ "gyártási rendelés 3. füle (munkaállomások) automatikusan kitöltésre kerül."
+
+#~ msgid ""
+#~ "Description of the work center. Explain here what's a cycle according to "
+#~ "this work center."
+#~ msgstr ""
+#~ "Munkaállomás leírása. Elmagyarázásra kerül itt, hogy mit jelent egy ciklus a "
+#~ "munkaállomás összefüggésében."
diff --git a/addons/mrp/i18n/id.po b/addons/mrp/i18n/id.po
index f59cf77019d..7741a302045 100644
--- a/addons/mrp/i18n/id.po
+++ b/addons/mrp/i18n/id.po
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-11-05 04:54+0000\n"
-"X-Generator: Launchpad (build 14231)\n"
+"X-Launchpad-Export-Date: 2011-12-07 04:50+0000\n"
+"X-Generator: Launchpad (build 14435)\n"
#. module: mrp
#: field:mrp.production,move_created_ids:0
@@ -715,7 +715,7 @@ msgid "Per month"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:595
+#: code:addons/mrp/mrp.py:591
#: code:addons/mrp/wizard/change_production_qty.py:77
#: code:addons/mrp/wizard/change_production_qty.py:82
#, python-format
@@ -728,7 +728,7 @@ msgid "Product Name"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:495
+#: code:addons/mrp/mrp.py:491
#, python-format
msgid "Invalid action !"
msgstr ""
@@ -1240,7 +1240,7 @@ msgstr ""
#. module: mrp
#: help:mrp.production,picking_id:0
msgid ""
-"This is the internal picking list that brings the finished product to the "
+"This is the Internal Picking List that brings the finished product to the "
"production plan"
msgstr ""
@@ -1294,7 +1294,7 @@ msgid "Month -1"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:924
+#: code:addons/mrp/mrp.py:914
#, python-format
msgid "Manufacturing order '%s' is scheduled for the %s."
msgstr ""
@@ -1305,7 +1305,7 @@ msgid "Production Order N° :"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:640
+#: code:addons/mrp/mrp.py:630
#, python-format
msgid "Manufacturing order '%s' is ready to produce."
msgstr ""
@@ -1534,7 +1534,7 @@ msgid "Manufacturing Orders To Start"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:495
+#: code:addons/mrp/mrp.py:491
#, python-format
msgid "Cannot delete Production Order(s) which are in %s State!"
msgstr ""
@@ -1624,7 +1624,7 @@ msgid "Production Analysis"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:349
+#: code:addons/mrp/mrp.py:345
#, python-format
msgid "Copy"
msgstr ""
@@ -2113,7 +2113,7 @@ msgid "Product type is Stockable or Consumable."
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:595
+#: code:addons/mrp/mrp.py:591
#: code:addons/mrp/wizard/change_production_qty.py:77
#: code:addons/mrp/wizard/change_production_qty.py:82
#, python-format
diff --git a/addons/mrp/i18n/it.po b/addons/mrp/i18n/it.po
index 3b238fffc78..8cddef0977b 100644
--- a/addons/mrp/i18n/it.po
+++ b/addons/mrp/i18n/it.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:15+0000\n"
-"PO-Revision-Date: 2011-01-17 09:33+0000\n"
+"PO-Revision-Date: 2011-12-06 10:31+0000\n"
"Last-Translator: Davide Corio - agilebg.com \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-11-05 04:54+0000\n"
-"X-Generator: Launchpad (build 14231)\n"
+"X-Launchpad-Export-Date: 2011-12-07 04:50+0000\n"
+"X-Generator: Launchpad (build 14435)\n"
#. module: mrp
#: field:mrp.production,move_created_ids:0
@@ -763,7 +763,7 @@ msgid "Per month"
msgstr "Mensile"
#. module: mrp
-#: code:addons/mrp/mrp.py:595
+#: code:addons/mrp/mrp.py:591
#: code:addons/mrp/wizard/change_production_qty.py:77
#: code:addons/mrp/wizard/change_production_qty.py:82
#, python-format
@@ -776,7 +776,7 @@ msgid "Product Name"
msgstr "Descrizione Prodotto"
#. module: mrp
-#: code:addons/mrp/mrp.py:495
+#: code:addons/mrp/mrp.py:491
#, python-format
msgid "Invalid action !"
msgstr "Azione non valida !"
@@ -1316,7 +1316,7 @@ msgstr "Ubicazione dove il sistema stoccherà i prodotti finiti"
#. module: mrp
#: help:mrp.production,picking_id:0
msgid ""
-"This is the internal picking list that brings the finished product to the "
+"This is the Internal Picking List that brings the finished product to the "
"production plan"
msgstr ""
"Questa è la lista dei prelievi interni necessari per la pianificazione della "
@@ -1375,7 +1375,7 @@ msgid "Month -1"
msgstr "Mese -1"
#. module: mrp
-#: code:addons/mrp/mrp.py:924
+#: code:addons/mrp/mrp.py:914
#, python-format
msgid "Manufacturing order '%s' is scheduled for the %s."
msgstr "L'ordine di produzione '%s' è pianificato per il %s."
@@ -1386,7 +1386,7 @@ msgid "Production Order N° :"
msgstr "Ordine di produzione N° :"
#. module: mrp
-#: code:addons/mrp/mrp.py:640
+#: code:addons/mrp/mrp.py:630
#, python-format
msgid "Manufacturing order '%s' is ready to produce."
msgstr "L'ordine di produzione '%s' è pronto per essere eseguito."
@@ -1627,7 +1627,7 @@ msgid "Manufacturing Orders To Start"
msgstr "Ordini di Produzione da Eseguire"
#. module: mrp
-#: code:addons/mrp/mrp.py:495
+#: code:addons/mrp/mrp.py:491
#, python-format
msgid "Cannot delete Production Order(s) which are in %s State!"
msgstr ""
@@ -1721,7 +1721,7 @@ msgid "Production Analysis"
msgstr "Analisi della produzione"
#. module: mrp
-#: code:addons/mrp/mrp.py:349
+#: code:addons/mrp/mrp.py:345
#, python-format
msgid "Copy"
msgstr "Copia"
@@ -2252,7 +2252,7 @@ msgid "Product type is Stockable or Consumable."
msgstr "Il tipo prodotto è Stoccabile o Consumabile"
#. module: mrp
-#: code:addons/mrp/mrp.py:595
+#: code:addons/mrp/mrp.py:591
#: code:addons/mrp/wizard/change_production_qty.py:77
#: code:addons/mrp/wizard/change_production_qty.py:82
#, python-format
@@ -3255,6 +3255,13 @@ msgstr "Anno"
#~ "Se questo centro di lavoro rappresenta un team di 5 operai, la capacità per "
#~ "ciclo sarà 5."
+#~ msgid ""
+#~ "This is the internal picking list that brings the finished product to the "
+#~ "production plan"
+#~ msgstr ""
+#~ "Questa è la lista dei prelievi interni necessari per la pianificazione della "
+#~ "produzione del prodotto finito"
+
#~ msgid ""
#~ "Description of the work center. Explain here what's a cycle according to "
#~ "this work center."
diff --git a/addons/mrp/i18n/ko.po b/addons/mrp/i18n/ko.po
index 3fbc4c82d4c..92e42f8f80d 100644
--- a/addons/mrp/i18n/ko.po
+++ b/addons/mrp/i18n/ko.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2011-01-11 11:15+0000\n"
-"PO-Revision-Date: 2010-11-27 12:18+0000\n"
+"PO-Revision-Date: 2011-12-06 11:08+0000\n"
"Last-Translator: qdp (OpenERP) \n"
"Language-Team: Korean \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-11-05 04:54+0000\n"
-"X-Generator: Launchpad (build 14231)\n"
+"X-Launchpad-Export-Date: 2011-12-07 04:50+0000\n"
+"X-Generator: Launchpad (build 14435)\n"
#. module: mrp
#: field:mrp.production,move_created_ids:0
@@ -718,7 +718,7 @@ msgid "Per month"
msgstr "월별"
#. module: mrp
-#: code:addons/mrp/mrp.py:595
+#: code:addons/mrp/mrp.py:591
#: code:addons/mrp/wizard/change_production_qty.py:77
#: code:addons/mrp/wizard/change_production_qty.py:82
#, python-format
@@ -731,7 +731,7 @@ msgid "Product Name"
msgstr "상품 이름"
#. module: mrp
-#: code:addons/mrp/mrp.py:495
+#: code:addons/mrp/mrp.py:491
#, python-format
msgid "Invalid action !"
msgstr "유효하지 않은 액션 !"
@@ -1243,7 +1243,7 @@ msgstr "완제품을 보관할 시스템의 위치"
#. module: mrp
#: help:mrp.production,picking_id:0
msgid ""
-"This is the internal picking list that brings the finished product to the "
+"This is the Internal Picking List that brings the finished product to the "
"production plan"
msgstr ""
@@ -1297,7 +1297,7 @@ msgid "Month -1"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:924
+#: code:addons/mrp/mrp.py:914
#, python-format
msgid "Manufacturing order '%s' is scheduled for the %s."
msgstr ""
@@ -1308,7 +1308,7 @@ msgid "Production Order N° :"
msgstr "생산 주문 번호:"
#. module: mrp
-#: code:addons/mrp/mrp.py:640
+#: code:addons/mrp/mrp.py:630
#, python-format
msgid "Manufacturing order '%s' is ready to produce."
msgstr ""
@@ -1537,7 +1537,7 @@ msgid "Manufacturing Orders To Start"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:495
+#: code:addons/mrp/mrp.py:491
#, python-format
msgid "Cannot delete Production Order(s) which are in %s State!"
msgstr ""
@@ -1627,7 +1627,7 @@ msgid "Production Analysis"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:349
+#: code:addons/mrp/mrp.py:345
#, python-format
msgid "Copy"
msgstr ""
@@ -2116,7 +2116,7 @@ msgid "Product type is Stockable or Consumable."
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:595
+#: code:addons/mrp/mrp.py:591
#: code:addons/mrp/wizard/change_production_qty.py:77
#: code:addons/mrp/wizard/change_production_qty.py:82
#, python-format
diff --git a/addons/mrp/i18n/lt.po b/addons/mrp/i18n/lt.po
index 44665d98443..4c776d8c9fc 100644
--- a/addons/mrp/i18n/lt.po
+++ b/addons/mrp/i18n/lt.po
@@ -7,15 +7,15 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2011-01-11 11:15+0000\n"
-"PO-Revision-Date: 2010-07-20 22:46+0000\n"
+"PO-Revision-Date: 2011-12-06 10:26+0000\n"
"Last-Translator: Giedrius Slavinskas - inovera.lt "
"\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-11-05 04:54+0000\n"
-"X-Generator: Launchpad (build 14231)\n"
+"X-Launchpad-Export-Date: 2011-12-07 04:51+0000\n"
+"X-Generator: Launchpad (build 14435)\n"
"Language: lt\n"
#. module: mrp
@@ -722,7 +722,7 @@ msgid "Per month"
msgstr "Per mėnesį"
#. module: mrp
-#: code:addons/mrp/mrp.py:595
+#: code:addons/mrp/mrp.py:591
#: code:addons/mrp/wizard/change_production_qty.py:77
#: code:addons/mrp/wizard/change_production_qty.py:82
#, python-format
@@ -735,7 +735,7 @@ msgid "Product Name"
msgstr "Produkto pavadinimas"
#. module: mrp
-#: code:addons/mrp/mrp.py:495
+#: code:addons/mrp/mrp.py:491
#, python-format
msgid "Invalid action !"
msgstr "Neleistinas veiksmas!"
@@ -1247,7 +1247,7 @@ msgstr "Vieta, kurioje talpinami pabaigti produktai ."
#. module: mrp
#: help:mrp.production,picking_id:0
msgid ""
-"This is the internal picking list that brings the finished product to the "
+"This is the Internal Picking List that brings the finished product to the "
"production plan"
msgstr ""
@@ -1301,7 +1301,7 @@ msgid "Month -1"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:924
+#: code:addons/mrp/mrp.py:914
#, python-format
msgid "Manufacturing order '%s' is scheduled for the %s."
msgstr ""
@@ -1312,7 +1312,7 @@ msgid "Production Order N° :"
msgstr "Gamybos užsakymo Nr. :"
#. module: mrp
-#: code:addons/mrp/mrp.py:640
+#: code:addons/mrp/mrp.py:630
#, python-format
msgid "Manufacturing order '%s' is ready to produce."
msgstr ""
@@ -1541,7 +1541,7 @@ msgid "Manufacturing Orders To Start"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:495
+#: code:addons/mrp/mrp.py:491
#, python-format
msgid "Cannot delete Production Order(s) which are in %s State!"
msgstr ""
@@ -1631,7 +1631,7 @@ msgid "Production Analysis"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:349
+#: code:addons/mrp/mrp.py:345
#, python-format
msgid "Copy"
msgstr ""
@@ -2121,7 +2121,7 @@ msgid "Product type is Stockable or Consumable."
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:595
+#: code:addons/mrp/mrp.py:591
#: code:addons/mrp/wizard/change_production_qty.py:77
#: code:addons/mrp/wizard/change_production_qty.py:82
#, python-format
diff --git a/addons/mrp/i18n/mrp.pot b/addons/mrp/i18n/mrp.pot
index 25a8bea531d..937fd9f45c4 100644
--- a/addons/mrp/i18n/mrp.pot
+++ b/addons/mrp/i18n/mrp.pot
@@ -1165,7 +1165,7 @@ msgstr ""
#. module: mrp
#: help:mrp.production,picking_id:0
-msgid "This is the internal picking list that brings the finished product to the production plan"
+msgid "This is the Internal Picking List that brings the finished product to the production plan"
msgstr ""
#. module: mrp
diff --git a/addons/mrp/i18n/nb.po b/addons/mrp/i18n/nb.po
index 2bd9cc375b1..efa8612a315 100644
--- a/addons/mrp/i18n/nb.po
+++ b/addons/mrp/i18n/nb.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2011-01-11 11:15+0000\n"
-"PO-Revision-Date: 2011-01-30 22:16+0000\n"
-"Last-Translator: FULL NAME \n"
+"PO-Revision-Date: 2011-12-06 11:04+0000\n"
+"Last-Translator: Fabien (Open ERP) \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-11-05 04:54+0000\n"
-"X-Generator: Launchpad (build 14231)\n"
+"X-Launchpad-Export-Date: 2011-12-07 04:51+0000\n"
+"X-Generator: Launchpad (build 14435)\n"
#. module: mrp
#: field:mrp.production,move_created_ids:0
@@ -756,7 +756,7 @@ msgid "Per month"
msgstr "Per måned"
#. module: mrp
-#: code:addons/mrp/mrp.py:595
+#: code:addons/mrp/mrp.py:591
#: code:addons/mrp/wizard/change_production_qty.py:77
#: code:addons/mrp/wizard/change_production_qty.py:82
#, python-format
@@ -769,7 +769,7 @@ msgid "Product Name"
msgstr "Produktnavn"
#. module: mrp
-#: code:addons/mrp/mrp.py:495
+#: code:addons/mrp/mrp.py:491
#, python-format
msgid "Invalid action !"
msgstr "Ugyldig hendelse !"
@@ -1306,7 +1306,7 @@ msgstr "Lokasjon hvor systemet vil plassere de ferdige produktene."
#. module: mrp
#: help:mrp.production,picking_id:0
msgid ""
-"This is the internal picking list that brings the finished product to the "
+"This is the Internal Picking List that brings the finished product to the "
"production plan"
msgstr ""
"Dette er den interne plukklisten som flytter det ferdige produktet til "
@@ -1364,7 +1364,7 @@ msgid "Month -1"
msgstr "Måned -1"
#. module: mrp
-#: code:addons/mrp/mrp.py:924
+#: code:addons/mrp/mrp.py:914
#, python-format
msgid "Manufacturing order '%s' is scheduled for the %s."
msgstr "Produksjonsordren '%s' er planlagt for %s."
@@ -1375,7 +1375,7 @@ msgid "Production Order N° :"
msgstr "Produksjonsordre nr :"
#. module: mrp
-#: code:addons/mrp/mrp.py:640
+#: code:addons/mrp/mrp.py:630
#, python-format
msgid "Manufacturing order '%s' is ready to produce."
msgstr "Produksjonsordre '%s' er klar for produksjon ."
@@ -1617,7 +1617,7 @@ msgid "Manufacturing Orders To Start"
msgstr "Produksjonsordre å starte"
#. module: mrp
-#: code:addons/mrp/mrp.py:495
+#: code:addons/mrp/mrp.py:491
#, python-format
msgid "Cannot delete Production Order(s) which are in %s State!"
msgstr "Kan ikke slette Produksjonsordre(r) som er i %s Status!"
@@ -1710,7 +1710,7 @@ msgid "Production Analysis"
msgstr "Produktanalyser"
#. module: mrp
-#: code:addons/mrp/mrp.py:349
+#: code:addons/mrp/mrp.py:345
#, python-format
msgid "Copy"
msgstr "Kopier"
@@ -2211,7 +2211,7 @@ msgid "Product type is Stockable or Consumable."
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:595
+#: code:addons/mrp/mrp.py:591
#: code:addons/mrp/wizard/change_production_qty.py:77
#: code:addons/mrp/wizard/change_production_qty.py:82
#, python-format
@@ -2574,3 +2574,10 @@ msgstr "År"
#~ " * Graf over arbeidssenter belastning\n"
#~ " * Liste over anskaffelser med unntak\n"
#~ " "
+
+#~ msgid ""
+#~ "This is the internal picking list that brings the finished product to the "
+#~ "production plan"
+#~ msgstr ""
+#~ "Dette er den interne plukklisten som flytter det ferdige produktet til "
+#~ "produksjonsplanen"
diff --git a/addons/mrp/i18n/nl.po b/addons/mrp/i18n/nl.po
index a54013b441c..16f363355a5 100644
--- a/addons/mrp/i18n/nl.po
+++ b/addons/mrp/i18n/nl.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:15+0000\n"
-"PO-Revision-Date: 2010-11-27 12:23+0000\n"
+"PO-Revision-Date: 2011-12-06 11:07+0000\n"
"Last-Translator: qdp (OpenERP) \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-11-05 04:53+0000\n"
-"X-Generator: Launchpad (build 14231)\n"
+"X-Launchpad-Export-Date: 2011-12-07 04:50+0000\n"
+"X-Generator: Launchpad (build 14435)\n"
#. module: mrp
#: field:mrp.production,move_created_ids:0
@@ -720,7 +720,7 @@ msgid "Per month"
msgstr "Per maand"
#. module: mrp
-#: code:addons/mrp/mrp.py:595
+#: code:addons/mrp/mrp.py:591
#: code:addons/mrp/wizard/change_production_qty.py:77
#: code:addons/mrp/wizard/change_production_qty.py:82
#, python-format
@@ -733,7 +733,7 @@ msgid "Product Name"
msgstr "Naam product"
#. module: mrp
-#: code:addons/mrp/mrp.py:495
+#: code:addons/mrp/mrp.py:491
#, python-format
msgid "Invalid action !"
msgstr "Ongeldige actie!"
@@ -1245,7 +1245,7 @@ msgstr "Locatie waar de eindproducten opgeslagen worden"
#. module: mrp
#: help:mrp.production,picking_id:0
msgid ""
-"This is the internal picking list that brings the finished product to the "
+"This is the Internal Picking List that brings the finished product to the "
"production plan"
msgstr ""
@@ -1299,7 +1299,7 @@ msgid "Month -1"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:924
+#: code:addons/mrp/mrp.py:914
#, python-format
msgid "Manufacturing order '%s' is scheduled for the %s."
msgstr ""
@@ -1310,7 +1310,7 @@ msgid "Production Order N° :"
msgstr "Productie opdracht nr :"
#. module: mrp
-#: code:addons/mrp/mrp.py:640
+#: code:addons/mrp/mrp.py:630
#, python-format
msgid "Manufacturing order '%s' is ready to produce."
msgstr ""
@@ -1539,7 +1539,7 @@ msgid "Manufacturing Orders To Start"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:495
+#: code:addons/mrp/mrp.py:491
#, python-format
msgid "Cannot delete Production Order(s) which are in %s State!"
msgstr ""
@@ -1629,7 +1629,7 @@ msgid "Production Analysis"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:349
+#: code:addons/mrp/mrp.py:345
#, python-format
msgid "Copy"
msgstr ""
@@ -2120,7 +2120,7 @@ msgid "Product type is Stockable or Consumable."
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:595
+#: code:addons/mrp/mrp.py:591
#: code:addons/mrp/wizard/change_production_qty.py:77
#: code:addons/mrp/wizard/change_production_qty.py:82
#, python-format
diff --git a/addons/mrp/i18n/nl_BE.po b/addons/mrp/i18n/nl_BE.po
index bf55c83626f..da909aadf80 100644
--- a/addons/mrp/i18n/nl_BE.po
+++ b/addons/mrp/i18n/nl_BE.po
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-11-05 04:55+0000\n"
-"X-Generator: Launchpad (build 14231)\n"
+"X-Launchpad-Export-Date: 2011-12-07 04:51+0000\n"
+"X-Generator: Launchpad (build 14435)\n"
#. module: mrp
#: field:mrp.production,move_created_ids:0
@@ -715,7 +715,7 @@ msgid "Per month"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:595
+#: code:addons/mrp/mrp.py:591
#: code:addons/mrp/wizard/change_production_qty.py:77
#: code:addons/mrp/wizard/change_production_qty.py:82
#, python-format
@@ -728,7 +728,7 @@ msgid "Product Name"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:495
+#: code:addons/mrp/mrp.py:491
#, python-format
msgid "Invalid action !"
msgstr ""
@@ -1240,7 +1240,7 @@ msgstr ""
#. module: mrp
#: help:mrp.production,picking_id:0
msgid ""
-"This is the internal picking list that brings the finished product to the "
+"This is the Internal Picking List that brings the finished product to the "
"production plan"
msgstr ""
@@ -1294,7 +1294,7 @@ msgid "Month -1"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:924
+#: code:addons/mrp/mrp.py:914
#, python-format
msgid "Manufacturing order '%s' is scheduled for the %s."
msgstr ""
@@ -1305,7 +1305,7 @@ msgid "Production Order N° :"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:640
+#: code:addons/mrp/mrp.py:630
#, python-format
msgid "Manufacturing order '%s' is ready to produce."
msgstr ""
@@ -1534,7 +1534,7 @@ msgid "Manufacturing Orders To Start"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:495
+#: code:addons/mrp/mrp.py:491
#, python-format
msgid "Cannot delete Production Order(s) which are in %s State!"
msgstr ""
@@ -1624,7 +1624,7 @@ msgid "Production Analysis"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:349
+#: code:addons/mrp/mrp.py:345
#, python-format
msgid "Copy"
msgstr ""
@@ -2113,7 +2113,7 @@ msgid "Product type is Stockable or Consumable."
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:595
+#: code:addons/mrp/mrp.py:591
#: code:addons/mrp/wizard/change_production_qty.py:77
#: code:addons/mrp/wizard/change_production_qty.py:82
#, python-format
diff --git a/addons/mrp/i18n/pl.po b/addons/mrp/i18n/pl.po
index fd8dd6e2272..c9017dfec60 100644
--- a/addons/mrp/i18n/pl.po
+++ b/addons/mrp/i18n/pl.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:15+0000\n"
-"PO-Revision-Date: 2011-01-22 13:12+0000\n"
+"PO-Revision-Date: 2011-12-06 11:05+0000\n"
"Last-Translator: Grzegorz Grzelak (OpenGLOBE.pl) \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-11-05 04:54+0000\n"
-"X-Generator: Launchpad (build 14231)\n"
+"X-Launchpad-Export-Date: 2011-12-07 04:51+0000\n"
+"X-Generator: Launchpad (build 14435)\n"
#. module: mrp
#: field:mrp.production,move_created_ids:0
@@ -746,7 +746,7 @@ msgid "Per month"
msgstr "Na miesiąc"
#. module: mrp
-#: code:addons/mrp/mrp.py:595
+#: code:addons/mrp/mrp.py:591
#: code:addons/mrp/wizard/change_production_qty.py:77
#: code:addons/mrp/wizard/change_production_qty.py:82
#, python-format
@@ -759,7 +759,7 @@ msgid "Product Name"
msgstr "Nazwa produktu"
#. module: mrp
-#: code:addons/mrp/mrp.py:495
+#: code:addons/mrp/mrp.py:491
#, python-format
msgid "Invalid action !"
msgstr "Niedozwolona akcja !"
@@ -1280,7 +1280,7 @@ msgstr "Strefa, w której system umieści gotowe produkty."
#. module: mrp
#: help:mrp.production,picking_id:0
msgid ""
-"This is the internal picking list that brings the finished product to the "
+"This is the Internal Picking List that brings the finished product to the "
"production plan"
msgstr ""
"To jest wewnętrzne pobranie, które przenosi gotowe produkty do planu "
@@ -1339,7 +1339,7 @@ msgid "Month -1"
msgstr "Miesiąc -1"
#. module: mrp
-#: code:addons/mrp/mrp.py:924
+#: code:addons/mrp/mrp.py:914
#, python-format
msgid "Manufacturing order '%s' is scheduled for the %s."
msgstr "Zamówienie produkcji '%s' zostało zaplanowane dla %s."
@@ -1350,7 +1350,7 @@ msgid "Production Order N° :"
msgstr "Nr zamówienia produkcji"
#. module: mrp
-#: code:addons/mrp/mrp.py:640
+#: code:addons/mrp/mrp.py:630
#, python-format
msgid "Manufacturing order '%s' is ready to produce."
msgstr "Zamówienie produkcji '%s' jest gotowe do produkcji."
@@ -1583,7 +1583,7 @@ msgid "Manufacturing Orders To Start"
msgstr "Zamówienia produkcji do rozpoczęcia"
#. module: mrp
-#: code:addons/mrp/mrp.py:495
+#: code:addons/mrp/mrp.py:491
#, python-format
msgid "Cannot delete Production Order(s) which are in %s State!"
msgstr "Nie można usuwać zamówień produkcji, które są w stanie %s !"
@@ -1673,7 +1673,7 @@ msgid "Production Analysis"
msgstr "Analiza produkcji"
#. module: mrp
-#: code:addons/mrp/mrp.py:349
+#: code:addons/mrp/mrp.py:345
#, python-format
msgid "Copy"
msgstr "Kopiuj"
@@ -2164,7 +2164,7 @@ msgid "Product type is Stockable or Consumable."
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:595
+#: code:addons/mrp/mrp.py:591
#: code:addons/mrp/wizard/change_production_qty.py:77
#: code:addons/mrp/wizard/change_production_qty.py:82
#, python-format
@@ -3149,6 +3149,13 @@ msgstr "Rok"
#~ msgid "Procure Stockable Product"
#~ msgstr "Zapotrzebowanie na produkty rejestrowane"
+#~ msgid ""
+#~ "This is the internal picking list that brings the finished product to the "
+#~ "production plan"
+#~ msgstr ""
+#~ "To jest wewnętrzne pobranie, które przenosi gotowe produkty do planu "
+#~ "produkcji"
+
#~ msgid "Workcenter Usage"
#~ msgstr "Użycie centrum roboczego"
diff --git a/addons/mrp/i18n/pt.po b/addons/mrp/i18n/pt.po
index 9574e9dc573..478295f6d66 100644
--- a/addons/mrp/i18n/pt.po
+++ b/addons/mrp/i18n/pt.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:15+0000\n"
-"PO-Revision-Date: 2011-11-23 11:53+0000\n"
-"Last-Translator: Daniel Reis \n"
+"PO-Revision-Date: 2011-12-06 10:51+0000\n"
+"Last-Translator: Fabien (Open ERP) \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-11-24 05:00+0000\n"
-"X-Generator: Launchpad (build 14336)\n"
+"X-Launchpad-Export-Date: 2011-12-07 04:51+0000\n"
+"X-Generator: Launchpad (build 14435)\n"
#. module: mrp
#: field:mrp.production,move_created_ids:0
@@ -734,7 +734,7 @@ msgid "Per month"
msgstr "Por mês"
#. module: mrp
-#: code:addons/mrp/mrp.py:595
+#: code:addons/mrp/mrp.py:591
#: code:addons/mrp/wizard/change_production_qty.py:77
#: code:addons/mrp/wizard/change_production_qty.py:82
#, python-format
@@ -747,7 +747,7 @@ msgid "Product Name"
msgstr "Nome de produção"
#. module: mrp
-#: code:addons/mrp/mrp.py:495
+#: code:addons/mrp/mrp.py:491
#, python-format
msgid "Invalid action !"
msgstr "Acção inválida !"
@@ -1259,7 +1259,7 @@ msgstr "Locais onde o sistema vai armazenar os produtos acabados."
#. module: mrp
#: help:mrp.production,picking_id:0
msgid ""
-"This is the internal picking list that brings the finished product to the "
+"This is the Internal Picking List that brings the finished product to the "
"production plan"
msgstr ""
@@ -1313,7 +1313,7 @@ msgid "Month -1"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:924
+#: code:addons/mrp/mrp.py:914
#, python-format
msgid "Manufacturing order '%s' is scheduled for the %s."
msgstr ""
@@ -1324,7 +1324,7 @@ msgid "Production Order N° :"
msgstr "Nº de Ordem de Produção :"
#. module: mrp
-#: code:addons/mrp/mrp.py:640
+#: code:addons/mrp/mrp.py:630
#, python-format
msgid "Manufacturing order '%s' is ready to produce."
msgstr ""
@@ -1553,7 +1553,7 @@ msgid "Manufacturing Orders To Start"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:495
+#: code:addons/mrp/mrp.py:491
#, python-format
msgid "Cannot delete Production Order(s) which are in %s State!"
msgstr ""
@@ -1643,7 +1643,7 @@ msgid "Production Analysis"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:349
+#: code:addons/mrp/mrp.py:345
#, python-format
msgid "Copy"
msgstr ""
@@ -2132,7 +2132,7 @@ msgid "Product type is Stockable or Consumable."
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:595
+#: code:addons/mrp/mrp.py:591
#: code:addons/mrp/wizard/change_production_qty.py:77
#: code:addons/mrp/wizard/change_production_qty.py:82
#, python-format
diff --git a/addons/mrp/i18n/pt_BR.po b/addons/mrp/i18n/pt_BR.po
index e55389cc1ec..9748020a3c2 100644
--- a/addons/mrp/i18n/pt_BR.po
+++ b/addons/mrp/i18n/pt_BR.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:15+0000\n"
-"PO-Revision-Date: 2011-03-07 18:35+0000\n"
+"PO-Revision-Date: 2011-12-06 10:51+0000\n"
"Last-Translator: Alexsandro Haag \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-11-05 04:55+0000\n"
-"X-Generator: Launchpad (build 14231)\n"
+"X-Launchpad-Export-Date: 2011-12-07 04:51+0000\n"
+"X-Generator: Launchpad (build 14435)\n"
#. module: mrp
#: field:mrp.production,move_created_ids:0
@@ -758,7 +758,7 @@ msgid "Per month"
msgstr "Por mês"
#. module: mrp
-#: code:addons/mrp/mrp.py:595
+#: code:addons/mrp/mrp.py:591
#: code:addons/mrp/wizard/change_production_qty.py:77
#: code:addons/mrp/wizard/change_production_qty.py:82
#, python-format
@@ -771,7 +771,7 @@ msgid "Product Name"
msgstr "Nome do Produto"
#. module: mrp
-#: code:addons/mrp/mrp.py:495
+#: code:addons/mrp/mrp.py:491
#, python-format
msgid "Invalid action !"
msgstr "Ação inválida!"
@@ -1315,7 +1315,7 @@ msgstr "Local onde o sistema estocará os produtos acabados"
#. module: mrp
#: help:mrp.production,picking_id:0
msgid ""
-"This is the internal picking list that brings the finished product to the "
+"This is the Internal Picking List that brings the finished product to the "
"production plan"
msgstr ""
"Esta é a Lista de Separação Interna que traz o produto acabado para o plano "
@@ -1375,7 +1375,7 @@ msgid "Month -1"
msgstr "Mês -1"
#. module: mrp
-#: code:addons/mrp/mrp.py:924
+#: code:addons/mrp/mrp.py:914
#, python-format
msgid "Manufacturing order '%s' is scheduled for the %s."
msgstr "A Ordem de Produção '%s' esta agendada para %s"
@@ -1386,7 +1386,7 @@ msgid "Production Order N° :"
msgstr "Ordem Produção N °:"
#. module: mrp
-#: code:addons/mrp/mrp.py:640
+#: code:addons/mrp/mrp.py:630
#, python-format
msgid "Manufacturing order '%s' is ready to produce."
msgstr "A Ordem de Produção '%s' está pronta para produzir."
@@ -1628,7 +1628,7 @@ msgid "Manufacturing Orders To Start"
msgstr "Ordens de Produção para Iniciar"
#. module: mrp
-#: code:addons/mrp/mrp.py:495
+#: code:addons/mrp/mrp.py:491
#, python-format
msgid "Cannot delete Production Order(s) which are in %s State!"
msgstr ""
@@ -1722,7 +1722,7 @@ msgid "Production Analysis"
msgstr "Análise de Produção"
#. module: mrp
-#: code:addons/mrp/mrp.py:349
+#: code:addons/mrp/mrp.py:345
#, python-format
msgid "Copy"
msgstr "Copiar"
@@ -2249,7 +2249,7 @@ msgid "Product type is Stockable or Consumable."
msgstr "Produto é Estocável ou Consumível."
#. module: mrp
-#: code:addons/mrp/mrp.py:595
+#: code:addons/mrp/mrp.py:591
#: code:addons/mrp/wizard/change_production_qty.py:77
#: code:addons/mrp/wizard/change_production_qty.py:82
#, python-format
@@ -3184,6 +3184,13 @@ msgstr "Ano"
#~ "Descrição do Centro de Trabalho. Explique aqui qual ciclo corresponde ao "
#~ "Centro de Trabalho."
+#~ msgid ""
+#~ "This is the internal picking list that brings the finished product to the "
+#~ "production plan"
+#~ msgstr ""
+#~ "Esta é a Lista de Separação Interna que traz o produto acabado para o plano "
+#~ "de produção"
+
#~ msgid ""
#~ "Routing indicates all the workcenters used, for how long and/or cycles.If "
#~ "Routing is indicated then,the third tab of a production order (workcenters) "
diff --git a/addons/mrp/i18n/ro.po b/addons/mrp/i18n/ro.po
index e8e13f497d1..e39c78fd393 100644
--- a/addons/mrp/i18n/ro.po
+++ b/addons/mrp/i18n/ro.po
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-11-05 04:54+0000\n"
-"X-Generator: Launchpad (build 14231)\n"
+"X-Launchpad-Export-Date: 2011-12-07 04:51+0000\n"
+"X-Generator: Launchpad (build 14435)\n"
#. module: mrp
#: field:mrp.production,move_created_ids:0
@@ -756,7 +756,7 @@ msgid "Per month"
msgstr "Pe lună"
#. module: mrp
-#: code:addons/mrp/mrp.py:595
+#: code:addons/mrp/mrp.py:591
#: code:addons/mrp/wizard/change_production_qty.py:77
#: code:addons/mrp/wizard/change_production_qty.py:82
#, python-format
@@ -769,7 +769,7 @@ msgid "Product Name"
msgstr "Nume produs"
#. module: mrp
-#: code:addons/mrp/mrp.py:495
+#: code:addons/mrp/mrp.py:491
#, python-format
msgid "Invalid action !"
msgstr "Acţiune invalidă !"
@@ -1308,7 +1308,7 @@ msgstr "Locația în care sistemul va stoca produsele finite."
#. module: mrp
#: help:mrp.production,picking_id:0
msgid ""
-"This is the internal picking list that brings the finished product to the "
+"This is the Internal Picking List that brings the finished product to the "
"production plan"
msgstr ""
@@ -1365,7 +1365,7 @@ msgid "Month -1"
msgstr "Luna - 1"
#. module: mrp
-#: code:addons/mrp/mrp.py:924
+#: code:addons/mrp/mrp.py:914
#, python-format
msgid "Manufacturing order '%s' is scheduled for the %s."
msgstr "Comanda de producție '%s' este programată pentru %s."
@@ -1376,7 +1376,7 @@ msgid "Production Order N° :"
msgstr "Nr comandă producţie"
#. module: mrp
-#: code:addons/mrp/mrp.py:640
+#: code:addons/mrp/mrp.py:630
#, python-format
msgid "Manufacturing order '%s' is ready to produce."
msgstr "Comanda de producție '%s' este gata să producă."
@@ -1618,7 +1618,7 @@ msgid "Manufacturing Orders To Start"
msgstr "Comenzi de producție gata de start"
#. module: mrp
-#: code:addons/mrp/mrp.py:495
+#: code:addons/mrp/mrp.py:491
#, python-format
msgid "Cannot delete Production Order(s) which are in %s State!"
msgstr ""
@@ -1712,7 +1712,7 @@ msgid "Production Analysis"
msgstr "Analize producție"
#. module: mrp
-#: code:addons/mrp/mrp.py:349
+#: code:addons/mrp/mrp.py:345
#, python-format
msgid "Copy"
msgstr "Copiaţi"
@@ -2227,7 +2227,7 @@ msgid "Product type is Stockable or Consumable."
msgstr "Tipul produsului este stocabil sau consumabile."
#. module: mrp
-#: code:addons/mrp/mrp.py:595
+#: code:addons/mrp/mrp.py:591
#: code:addons/mrp/wizard/change_production_qty.py:77
#: code:addons/mrp/wizard/change_production_qty.py:82
#, python-format
diff --git a/addons/mrp/i18n/ru.po b/addons/mrp/i18n/ru.po
index 0c804f401be..8af7ec344ce 100644
--- a/addons/mrp/i18n/ru.po
+++ b/addons/mrp/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:15+0000\n"
-"PO-Revision-Date: 2011-03-24 16:01+0000\n"
-"Last-Translator: Viktor Prokopiev \n"
+"PO-Revision-Date: 2011-12-06 10:16+0000\n"
+"Last-Translator: Fabien (Open ERP) \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-11-05 04:54+0000\n"
-"X-Generator: Launchpad (build 14231)\n"
+"X-Launchpad-Export-Date: 2011-12-07 04:51+0000\n"
+"X-Generator: Launchpad (build 14435)\n"
#. module: mrp
#: field:mrp.production,move_created_ids:0
@@ -745,7 +745,7 @@ msgid "Per month"
msgstr "В месяц"
#. module: mrp
-#: code:addons/mrp/mrp.py:595
+#: code:addons/mrp/mrp.py:591
#: code:addons/mrp/wizard/change_production_qty.py:77
#: code:addons/mrp/wizard/change_production_qty.py:82
#, python-format
@@ -758,7 +758,7 @@ msgid "Product Name"
msgstr "Название продукции"
#. module: mrp
-#: code:addons/mrp/mrp.py:495
+#: code:addons/mrp/mrp.py:491
#, python-format
msgid "Invalid action !"
msgstr "Неверное действие !"
@@ -1293,7 +1293,7 @@ msgstr "Местоположение, в которое помещаются г
#. module: mrp
#: help:mrp.production,picking_id:0
msgid ""
-"This is the internal picking list that brings the finished product to the "
+"This is the Internal Picking List that brings the finished product to the "
"production plan"
msgstr ""
"Это внутренняя комплектовочная ведомость, которая соотносит готовую "
@@ -1349,7 +1349,7 @@ msgid "Month -1"
msgstr "Месяц -1"
#. module: mrp
-#: code:addons/mrp/mrp.py:924
+#: code:addons/mrp/mrp.py:914
#, python-format
msgid "Manufacturing order '%s' is scheduled for the %s."
msgstr "Производственный заказ '%s' запланирован на %s."
@@ -1360,7 +1360,7 @@ msgid "Production Order N° :"
msgstr "Заказ на производство №"
#. module: mrp
-#: code:addons/mrp/mrp.py:640
+#: code:addons/mrp/mrp.py:630
#, python-format
msgid "Manufacturing order '%s' is ready to produce."
msgstr "Производственный заказ '%s' готов для производства."
@@ -1592,7 +1592,7 @@ msgid "Manufacturing Orders To Start"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:495
+#: code:addons/mrp/mrp.py:491
#, python-format
msgid "Cannot delete Production Order(s) which are in %s State!"
msgstr ""
@@ -1684,7 +1684,7 @@ msgid "Production Analysis"
msgstr "Анализ производства"
#. module: mrp
-#: code:addons/mrp/mrp.py:349
+#: code:addons/mrp/mrp.py:345
#, python-format
msgid "Copy"
msgstr "Копировать"
@@ -2177,7 +2177,7 @@ msgid "Product type is Stockable or Consumable."
msgstr "Тип продукта — Складируемый или Потребляемый."
#. module: mrp
-#: code:addons/mrp/mrp.py:595
+#: code:addons/mrp/mrp.py:591
#: code:addons/mrp/wizard/change_production_qty.py:77
#: code:addons/mrp/wizard/change_production_qty.py:82
#, python-format
@@ -2941,6 +2941,13 @@ msgstr "Год"
#~ "Количество параллельных операций для этого рабочегоцентра. Если этот центр "
#~ "представлен 5-ю работниками - производительность за цикл равна 5."
+#~ msgid ""
+#~ "This is the internal picking list that brings the finished product to the "
+#~ "production plan"
+#~ msgstr ""
+#~ "Это внутренняя комплектовочная ведомость, которая соотносит готовую "
+#~ "продукцию к производственному плану"
+
#~ msgid "Human Resource"
#~ msgstr "Людские ресурсы"
diff --git a/addons/mrp/i18n/sk.po b/addons/mrp/i18n/sk.po
index c74a1d09c53..e62a78dff86 100644
--- a/addons/mrp/i18n/sk.po
+++ b/addons/mrp/i18n/sk.po
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-11-05 04:54+0000\n"
-"X-Generator: Launchpad (build 14231)\n"
+"X-Launchpad-Export-Date: 2011-12-07 04:51+0000\n"
+"X-Generator: Launchpad (build 14435)\n"
#. module: mrp
#: field:mrp.production,move_created_ids:0
@@ -716,7 +716,7 @@ msgid "Per month"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:595
+#: code:addons/mrp/mrp.py:591
#: code:addons/mrp/wizard/change_production_qty.py:77
#: code:addons/mrp/wizard/change_production_qty.py:82
#, python-format
@@ -729,7 +729,7 @@ msgid "Product Name"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:495
+#: code:addons/mrp/mrp.py:491
#, python-format
msgid "Invalid action !"
msgstr ""
@@ -1241,7 +1241,7 @@ msgstr ""
#. module: mrp
#: help:mrp.production,picking_id:0
msgid ""
-"This is the internal picking list that brings the finished product to the "
+"This is the Internal Picking List that brings the finished product to the "
"production plan"
msgstr ""
@@ -1295,7 +1295,7 @@ msgid "Month -1"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:924
+#: code:addons/mrp/mrp.py:914
#, python-format
msgid "Manufacturing order '%s' is scheduled for the %s."
msgstr ""
@@ -1306,7 +1306,7 @@ msgid "Production Order N° :"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:640
+#: code:addons/mrp/mrp.py:630
#, python-format
msgid "Manufacturing order '%s' is ready to produce."
msgstr ""
@@ -1535,7 +1535,7 @@ msgid "Manufacturing Orders To Start"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:495
+#: code:addons/mrp/mrp.py:491
#, python-format
msgid "Cannot delete Production Order(s) which are in %s State!"
msgstr ""
@@ -1625,7 +1625,7 @@ msgid "Production Analysis"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:349
+#: code:addons/mrp/mrp.py:345
#, python-format
msgid "Copy"
msgstr ""
@@ -2114,7 +2114,7 @@ msgid "Product type is Stockable or Consumable."
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:595
+#: code:addons/mrp/mrp.py:591
#: code:addons/mrp/wizard/change_production_qty.py:77
#: code:addons/mrp/wizard/change_production_qty.py:82
#, python-format
diff --git a/addons/mrp/i18n/sl.po b/addons/mrp/i18n/sl.po
index 29d4f7054ae..25818e929aa 100644
--- a/addons/mrp/i18n/sl.po
+++ b/addons/mrp/i18n/sl.po
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-11-05 04:54+0000\n"
-"X-Generator: Launchpad (build 14231)\n"
+"X-Launchpad-Export-Date: 2011-12-07 04:51+0000\n"
+"X-Generator: Launchpad (build 14435)\n"
#. module: mrp
#: field:mrp.production,move_created_ids:0
@@ -716,7 +716,7 @@ msgid "Per month"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:595
+#: code:addons/mrp/mrp.py:591
#: code:addons/mrp/wizard/change_production_qty.py:77
#: code:addons/mrp/wizard/change_production_qty.py:82
#, python-format
@@ -729,7 +729,7 @@ msgid "Product Name"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:495
+#: code:addons/mrp/mrp.py:491
#, python-format
msgid "Invalid action !"
msgstr ""
@@ -1241,7 +1241,7 @@ msgstr ""
#. module: mrp
#: help:mrp.production,picking_id:0
msgid ""
-"This is the internal picking list that brings the finished product to the "
+"This is the Internal Picking List that brings the finished product to the "
"production plan"
msgstr ""
@@ -1295,7 +1295,7 @@ msgid "Month -1"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:924
+#: code:addons/mrp/mrp.py:914
#, python-format
msgid "Manufacturing order '%s' is scheduled for the %s."
msgstr ""
@@ -1306,7 +1306,7 @@ msgid "Production Order N° :"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:640
+#: code:addons/mrp/mrp.py:630
#, python-format
msgid "Manufacturing order '%s' is ready to produce."
msgstr ""
@@ -1535,7 +1535,7 @@ msgid "Manufacturing Orders To Start"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:495
+#: code:addons/mrp/mrp.py:491
#, python-format
msgid "Cannot delete Production Order(s) which are in %s State!"
msgstr ""
@@ -1625,7 +1625,7 @@ msgid "Production Analysis"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:349
+#: code:addons/mrp/mrp.py:345
#, python-format
msgid "Copy"
msgstr ""
@@ -2114,7 +2114,7 @@ msgid "Product type is Stockable or Consumable."
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:595
+#: code:addons/mrp/mrp.py:591
#: code:addons/mrp/wizard/change_production_qty.py:77
#: code:addons/mrp/wizard/change_production_qty.py:82
#, python-format
diff --git a/addons/mrp/i18n/sq.po b/addons/mrp/i18n/sq.po
index b6dea6d1b6c..cc4573e644e 100644
--- a/addons/mrp/i18n/sq.po
+++ b/addons/mrp/i18n/sq.po
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-11-05 04:53+0000\n"
-"X-Generator: Launchpad (build 14231)\n"
+"X-Launchpad-Export-Date: 2011-12-07 04:49+0000\n"
+"X-Generator: Launchpad (build 14435)\n"
#. module: mrp
#: field:mrp.production,move_created_ids:0
@@ -716,7 +716,7 @@ msgid "Per month"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:595
+#: code:addons/mrp/mrp.py:591
#: code:addons/mrp/wizard/change_production_qty.py:77
#: code:addons/mrp/wizard/change_production_qty.py:82
#, python-format
@@ -729,7 +729,7 @@ msgid "Product Name"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:495
+#: code:addons/mrp/mrp.py:491
#, python-format
msgid "Invalid action !"
msgstr ""
@@ -1241,7 +1241,7 @@ msgstr ""
#. module: mrp
#: help:mrp.production,picking_id:0
msgid ""
-"This is the internal picking list that brings the finished product to the "
+"This is the Internal Picking List that brings the finished product to the "
"production plan"
msgstr ""
@@ -1295,7 +1295,7 @@ msgid "Month -1"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:924
+#: code:addons/mrp/mrp.py:914
#, python-format
msgid "Manufacturing order '%s' is scheduled for the %s."
msgstr ""
@@ -1306,7 +1306,7 @@ msgid "Production Order N° :"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:640
+#: code:addons/mrp/mrp.py:630
#, python-format
msgid "Manufacturing order '%s' is ready to produce."
msgstr ""
@@ -1535,7 +1535,7 @@ msgid "Manufacturing Orders To Start"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:495
+#: code:addons/mrp/mrp.py:491
#, python-format
msgid "Cannot delete Production Order(s) which are in %s State!"
msgstr ""
@@ -1625,7 +1625,7 @@ msgid "Production Analysis"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:349
+#: code:addons/mrp/mrp.py:345
#, python-format
msgid "Copy"
msgstr ""
@@ -2114,7 +2114,7 @@ msgid "Product type is Stockable or Consumable."
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:595
+#: code:addons/mrp/mrp.py:591
#: code:addons/mrp/wizard/change_production_qty.py:77
#: code:addons/mrp/wizard/change_production_qty.py:82
#, python-format
diff --git a/addons/mrp/i18n/sr@latin.po b/addons/mrp/i18n/sr@latin.po
index 3fac861858b..1e5aba0e23f 100644
--- a/addons/mrp/i18n/sr@latin.po
+++ b/addons/mrp/i18n/sr@latin.po
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-11-05 04:55+0000\n"
-"X-Generator: Launchpad (build 14231)\n"
+"X-Launchpad-Export-Date: 2011-12-07 04:52+0000\n"
+"X-Generator: Launchpad (build 14435)\n"
#. module: mrp
#: field:mrp.production,move_created_ids:0
@@ -716,7 +716,7 @@ msgid "Per month"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:595
+#: code:addons/mrp/mrp.py:591
#: code:addons/mrp/wizard/change_production_qty.py:77
#: code:addons/mrp/wizard/change_production_qty.py:82
#, python-format
@@ -729,7 +729,7 @@ msgid "Product Name"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:495
+#: code:addons/mrp/mrp.py:491
#, python-format
msgid "Invalid action !"
msgstr ""
@@ -1241,7 +1241,7 @@ msgstr ""
#. module: mrp
#: help:mrp.production,picking_id:0
msgid ""
-"This is the internal picking list that brings the finished product to the "
+"This is the Internal Picking List that brings the finished product to the "
"production plan"
msgstr ""
@@ -1295,7 +1295,7 @@ msgid "Month -1"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:924
+#: code:addons/mrp/mrp.py:914
#, python-format
msgid "Manufacturing order '%s' is scheduled for the %s."
msgstr ""
@@ -1306,7 +1306,7 @@ msgid "Production Order N° :"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:640
+#: code:addons/mrp/mrp.py:630
#, python-format
msgid "Manufacturing order '%s' is ready to produce."
msgstr ""
@@ -1535,7 +1535,7 @@ msgid "Manufacturing Orders To Start"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:495
+#: code:addons/mrp/mrp.py:491
#, python-format
msgid "Cannot delete Production Order(s) which are in %s State!"
msgstr ""
@@ -1625,7 +1625,7 @@ msgid "Production Analysis"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:349
+#: code:addons/mrp/mrp.py:345
#, python-format
msgid "Copy"
msgstr ""
@@ -2114,7 +2114,7 @@ msgid "Product type is Stockable or Consumable."
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:595
+#: code:addons/mrp/mrp.py:591
#: code:addons/mrp/wizard/change_production_qty.py:77
#: code:addons/mrp/wizard/change_production_qty.py:82
#, python-format
diff --git a/addons/mrp/i18n/sv.po b/addons/mrp/i18n/sv.po
index f9a8fa1318b..fd85b918c51 100644
--- a/addons/mrp/i18n/sv.po
+++ b/addons/mrp/i18n/sv.po
@@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.14\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2011-01-11 11:15+0000\n"
-"PO-Revision-Date: 2011-08-03 23:21+0000\n"
-"Last-Translator: Stefan Lind \n"
+"PO-Revision-Date: 2011-12-06 11:07+0000\n"
+"Last-Translator: Fabien (Open ERP) \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-11-05 04:54+0000\n"
-"X-Generator: Launchpad (build 14231)\n"
+"X-Launchpad-Export-Date: 2011-12-07 04:51+0000\n"
+"X-Generator: Launchpad (build 14435)\n"
#. module: mrp
#: field:mrp.production,move_created_ids:0
@@ -720,7 +720,7 @@ msgid "Per month"
msgstr "Per månad"
#. module: mrp
-#: code:addons/mrp/mrp.py:595
+#: code:addons/mrp/mrp.py:591
#: code:addons/mrp/wizard/change_production_qty.py:77
#: code:addons/mrp/wizard/change_production_qty.py:82
#, python-format
@@ -733,7 +733,7 @@ msgid "Product Name"
msgstr "Produktnamn"
#. module: mrp
-#: code:addons/mrp/mrp.py:495
+#: code:addons/mrp/mrp.py:491
#, python-format
msgid "Invalid action !"
msgstr "Invalid action !"
@@ -1245,7 +1245,7 @@ msgstr "Location where the system will stock the finished products."
#. module: mrp
#: help:mrp.production,picking_id:0
msgid ""
-"This is the internal picking list that brings the finished product to the "
+"This is the Internal Picking List that brings the finished product to the "
"production plan"
msgstr ""
@@ -1299,7 +1299,7 @@ msgid "Month -1"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:924
+#: code:addons/mrp/mrp.py:914
#, python-format
msgid "Manufacturing order '%s' is scheduled for the %s."
msgstr ""
@@ -1310,7 +1310,7 @@ msgid "Production Order N° :"
msgstr "Production Order N° :"
#. module: mrp
-#: code:addons/mrp/mrp.py:640
+#: code:addons/mrp/mrp.py:630
#, python-format
msgid "Manufacturing order '%s' is ready to produce."
msgstr ""
@@ -1539,7 +1539,7 @@ msgid "Manufacturing Orders To Start"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:495
+#: code:addons/mrp/mrp.py:491
#, python-format
msgid "Cannot delete Production Order(s) which are in %s State!"
msgstr ""
@@ -1629,7 +1629,7 @@ msgid "Production Analysis"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:349
+#: code:addons/mrp/mrp.py:345
#, python-format
msgid "Copy"
msgstr ""
@@ -2118,7 +2118,7 @@ msgid "Product type is Stockable or Consumable."
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:595
+#: code:addons/mrp/mrp.py:591
#: code:addons/mrp/wizard/change_production_qty.py:77
#: code:addons/mrp/wizard/change_production_qty.py:82
#, python-format
diff --git a/addons/mrp/i18n/tlh.po b/addons/mrp/i18n/tlh.po
index fd83fcb2f40..bf42bdfa3fa 100644
--- a/addons/mrp/i18n/tlh.po
+++ b/addons/mrp/i18n/tlh.po
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-11-05 04:54+0000\n"
-"X-Generator: Launchpad (build 14231)\n"
+"X-Launchpad-Export-Date: 2011-12-07 04:51+0000\n"
+"X-Generator: Launchpad (build 14435)\n"
#. module: mrp
#: field:mrp.production,move_created_ids:0
@@ -715,7 +715,7 @@ msgid "Per month"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:595
+#: code:addons/mrp/mrp.py:591
#: code:addons/mrp/wizard/change_production_qty.py:77
#: code:addons/mrp/wizard/change_production_qty.py:82
#, python-format
@@ -728,7 +728,7 @@ msgid "Product Name"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:495
+#: code:addons/mrp/mrp.py:491
#, python-format
msgid "Invalid action !"
msgstr ""
@@ -1240,7 +1240,7 @@ msgstr ""
#. module: mrp
#: help:mrp.production,picking_id:0
msgid ""
-"This is the internal picking list that brings the finished product to the "
+"This is the Internal Picking List that brings the finished product to the "
"production plan"
msgstr ""
@@ -1294,7 +1294,7 @@ msgid "Month -1"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:924
+#: code:addons/mrp/mrp.py:914
#, python-format
msgid "Manufacturing order '%s' is scheduled for the %s."
msgstr ""
@@ -1305,7 +1305,7 @@ msgid "Production Order N° :"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:640
+#: code:addons/mrp/mrp.py:630
#, python-format
msgid "Manufacturing order '%s' is ready to produce."
msgstr ""
@@ -1534,7 +1534,7 @@ msgid "Manufacturing Orders To Start"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:495
+#: code:addons/mrp/mrp.py:491
#, python-format
msgid "Cannot delete Production Order(s) which are in %s State!"
msgstr ""
@@ -1624,7 +1624,7 @@ msgid "Production Analysis"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:349
+#: code:addons/mrp/mrp.py:345
#, python-format
msgid "Copy"
msgstr ""
@@ -2113,7 +2113,7 @@ msgid "Product type is Stockable or Consumable."
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:595
+#: code:addons/mrp/mrp.py:591
#: code:addons/mrp/wizard/change_production_qty.py:77
#: code:addons/mrp/wizard/change_production_qty.py:82
#, python-format
diff --git a/addons/mrp/i18n/tr.po b/addons/mrp/i18n/tr.po
index 21e0a1a9dfc..8d567981684 100644
--- a/addons/mrp/i18n/tr.po
+++ b/addons/mrp/i18n/tr.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:15+0000\n"
-"PO-Revision-Date: 2011-06-27 18:38+0000\n"
-"Last-Translator: Ayhan KIZILTAN \n"
+"PO-Revision-Date: 2011-12-06 10:17+0000\n"
+"Last-Translator: Fabien (Open ERP) \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-11-05 04:54+0000\n"
-"X-Generator: Launchpad (build 14231)\n"
+"X-Launchpad-Export-Date: 2011-12-07 04:51+0000\n"
+"X-Generator: Launchpad (build 14435)\n"
#. module: mrp
#: field:mrp.production,move_created_ids:0
@@ -754,7 +754,7 @@ msgid "Per month"
msgstr "Ay başına"
#. module: mrp
-#: code:addons/mrp/mrp.py:595
+#: code:addons/mrp/mrp.py:591
#: code:addons/mrp/wizard/change_production_qty.py:77
#: code:addons/mrp/wizard/change_production_qty.py:82
#, python-format
@@ -767,7 +767,7 @@ msgid "Product Name"
msgstr "Stok Adı"
#. module: mrp
-#: code:addons/mrp/mrp.py:495
+#: code:addons/mrp/mrp.py:491
#, python-format
msgid "Invalid action !"
msgstr "Geçersiz eylem !"
@@ -1311,7 +1311,7 @@ msgstr "Sistemin bitmiş ürünleri stokladığı lokasyon."
#. module: mrp
#: help:mrp.production,picking_id:0
msgid ""
-"This is the internal picking list that brings the finished product to the "
+"This is the Internal Picking List that brings the finished product to the "
"production plan"
msgstr "Bu, bitmiş ürünü üretim planına getiren dahili toplama listesidir"
@@ -1367,7 +1367,7 @@ msgid "Month -1"
msgstr "Ay -1"
#. module: mrp
-#: code:addons/mrp/mrp.py:924
+#: code:addons/mrp/mrp.py:914
#, python-format
msgid "Manufacturing order '%s' is scheduled for the %s."
msgstr "'%s' üretim emri %s için planlandı."
@@ -1378,7 +1378,7 @@ msgid "Production Order N° :"
msgstr "Üretim Emri N° :"
#. module: mrp
-#: code:addons/mrp/mrp.py:640
+#: code:addons/mrp/mrp.py:630
#, python-format
msgid "Manufacturing order '%s' is ready to produce."
msgstr "'%s' üretim emri üretime hazırdır."
@@ -1618,7 +1618,7 @@ msgid "Manufacturing Orders To Start"
msgstr "Başlatılacak Üretim Emirleri"
#. module: mrp
-#: code:addons/mrp/mrp.py:495
+#: code:addons/mrp/mrp.py:491
#, python-format
msgid "Cannot delete Production Order(s) which are in %s State!"
msgstr "%s Durumundaki Üretim Emri/Emirleri silinemez!"
@@ -1711,7 +1711,7 @@ msgid "Production Analysis"
msgstr "Üretim Analizi"
#. module: mrp
-#: code:addons/mrp/mrp.py:349
+#: code:addons/mrp/mrp.py:345
#, python-format
msgid "Copy"
msgstr "Kopyala"
@@ -2229,7 +2229,7 @@ msgid "Product type is Stockable or Consumable."
msgstr "Ürün tipi Stoklanabilir veya Sarf Edilebilir'dir."
#. module: mrp
-#: code:addons/mrp/mrp.py:595
+#: code:addons/mrp/mrp.py:591
#: code:addons/mrp/wizard/change_production_qty.py:77
#: code:addons/mrp/wizard/change_production_qty.py:82
#, python-format
@@ -2994,6 +2994,11 @@ msgstr "Yıl"
#~ " * İstisnai satınalma listesi\n"
#~ " "
+#~ msgid ""
+#~ "This is the internal picking list that brings the finished product to the "
+#~ "production plan"
+#~ msgstr "Bu, bitmiş ürünü üretim planına getiren dahili toplama listesidir"
+
#~ msgid ""
#~ "Routing indicates all the workcenters used, for how long and/or cycles.If "
#~ "Routing is indicated then,the third tab of a production order (workcenters) "
diff --git a/addons/mrp/i18n/uk.po b/addons/mrp/i18n/uk.po
index 1d2995b8ad3..96133154ea3 100644
--- a/addons/mrp/i18n/uk.po
+++ b/addons/mrp/i18n/uk.po
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-11-05 04:54+0000\n"
-"X-Generator: Launchpad (build 14231)\n"
+"X-Launchpad-Export-Date: 2011-12-07 04:51+0000\n"
+"X-Generator: Launchpad (build 14435)\n"
#. module: mrp
#: field:mrp.production,move_created_ids:0
@@ -715,7 +715,7 @@ msgid "Per month"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:595
+#: code:addons/mrp/mrp.py:591
#: code:addons/mrp/wizard/change_production_qty.py:77
#: code:addons/mrp/wizard/change_production_qty.py:82
#, python-format
@@ -728,7 +728,7 @@ msgid "Product Name"
msgstr "Назва Продукту"
#. module: mrp
-#: code:addons/mrp/mrp.py:495
+#: code:addons/mrp/mrp.py:491
#, python-format
msgid "Invalid action !"
msgstr ""
@@ -1240,7 +1240,7 @@ msgstr ""
#. module: mrp
#: help:mrp.production,picking_id:0
msgid ""
-"This is the internal picking list that brings the finished product to the "
+"This is the Internal Picking List that brings the finished product to the "
"production plan"
msgstr ""
@@ -1294,7 +1294,7 @@ msgid "Month -1"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:924
+#: code:addons/mrp/mrp.py:914
#, python-format
msgid "Manufacturing order '%s' is scheduled for the %s."
msgstr ""
@@ -1305,7 +1305,7 @@ msgid "Production Order N° :"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:640
+#: code:addons/mrp/mrp.py:630
#, python-format
msgid "Manufacturing order '%s' is ready to produce."
msgstr ""
@@ -1534,7 +1534,7 @@ msgid "Manufacturing Orders To Start"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:495
+#: code:addons/mrp/mrp.py:491
#, python-format
msgid "Cannot delete Production Order(s) which are in %s State!"
msgstr ""
@@ -1624,7 +1624,7 @@ msgid "Production Analysis"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:349
+#: code:addons/mrp/mrp.py:345
#, python-format
msgid "Copy"
msgstr ""
@@ -2113,7 +2113,7 @@ msgid "Product type is Stockable or Consumable."
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:595
+#: code:addons/mrp/mrp.py:591
#: code:addons/mrp/wizard/change_production_qty.py:77
#: code:addons/mrp/wizard/change_production_qty.py:82
#, python-format
diff --git a/addons/mrp/i18n/vi.po b/addons/mrp/i18n/vi.po
index 59662a9b576..bf8f8978a06 100644
--- a/addons/mrp/i18n/vi.po
+++ b/addons/mrp/i18n/vi.po
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-11-05 04:54+0000\n"
-"X-Generator: Launchpad (build 14231)\n"
+"X-Launchpad-Export-Date: 2011-12-07 04:51+0000\n"
+"X-Generator: Launchpad (build 14435)\n"
#. module: mrp
#: field:mrp.production,move_created_ids:0
@@ -721,7 +721,7 @@ msgid "Per month"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:595
+#: code:addons/mrp/mrp.py:591
#: code:addons/mrp/wizard/change_production_qty.py:77
#: code:addons/mrp/wizard/change_production_qty.py:82
#, python-format
@@ -734,7 +734,7 @@ msgid "Product Name"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:495
+#: code:addons/mrp/mrp.py:491
#, python-format
msgid "Invalid action !"
msgstr ""
@@ -1246,7 +1246,7 @@ msgstr ""
#. module: mrp
#: help:mrp.production,picking_id:0
msgid ""
-"This is the internal picking list that brings the finished product to the "
+"This is the Internal Picking List that brings the finished product to the "
"production plan"
msgstr ""
@@ -1300,7 +1300,7 @@ msgid "Month -1"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:924
+#: code:addons/mrp/mrp.py:914
#, python-format
msgid "Manufacturing order '%s' is scheduled for the %s."
msgstr ""
@@ -1311,7 +1311,7 @@ msgid "Production Order N° :"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:640
+#: code:addons/mrp/mrp.py:630
#, python-format
msgid "Manufacturing order '%s' is ready to produce."
msgstr ""
@@ -1540,7 +1540,7 @@ msgid "Manufacturing Orders To Start"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:495
+#: code:addons/mrp/mrp.py:491
#, python-format
msgid "Cannot delete Production Order(s) which are in %s State!"
msgstr ""
@@ -1630,7 +1630,7 @@ msgid "Production Analysis"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:349
+#: code:addons/mrp/mrp.py:345
#, python-format
msgid "Copy"
msgstr ""
@@ -2119,7 +2119,7 @@ msgid "Product type is Stockable or Consumable."
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:595
+#: code:addons/mrp/mrp.py:591
#: code:addons/mrp/wizard/change_production_qty.py:77
#: code:addons/mrp/wizard/change_production_qty.py:82
#, python-format
diff --git a/addons/mrp/i18n/zh_CN.po b/addons/mrp/i18n/zh_CN.po
index ebad1e0e44c..88629751eb7 100644
--- a/addons/mrp/i18n/zh_CN.po
+++ b/addons/mrp/i18n/zh_CN.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:15+0000\n"
-"PO-Revision-Date: 2011-07-02 15:27+0000\n"
+"PO-Revision-Date: 2011-12-06 10:16+0000\n"
"Last-Translator: Wei \"oldrev\" Li \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-11-05 04:55+0000\n"
-"X-Generator: Launchpad (build 14231)\n"
+"X-Launchpad-Export-Date: 2011-12-07 04:52+0000\n"
+"X-Generator: Launchpad (build 14435)\n"
#. module: mrp
#: field:mrp.production,move_created_ids:0
@@ -716,7 +716,7 @@ msgid "Per month"
msgstr "每月"
#. module: mrp
-#: code:addons/mrp/mrp.py:595
+#: code:addons/mrp/mrp.py:591
#: code:addons/mrp/wizard/change_production_qty.py:77
#: code:addons/mrp/wizard/change_production_qty.py:82
#, python-format
@@ -729,7 +729,7 @@ msgid "Product Name"
msgstr "产品名称"
#. module: mrp
-#: code:addons/mrp/mrp.py:495
+#: code:addons/mrp/mrp.py:491
#, python-format
msgid "Invalid action !"
msgstr "无效动作"
@@ -1245,7 +1245,7 @@ msgstr "系统存储成品的库位"
#. module: mrp
#: help:mrp.production,picking_id:0
msgid ""
-"This is the internal picking list that brings the finished product to the "
+"This is the Internal Picking List that brings the finished product to the "
"production plan"
msgstr "这是一张移库单的编号,是把产成品从生产线上移动到库房里"
@@ -1299,7 +1299,7 @@ msgid "Month -1"
msgstr "上个月"
#. module: mrp
-#: code:addons/mrp/mrp.py:924
+#: code:addons/mrp/mrp.py:914
#, python-format
msgid "Manufacturing order '%s' is scheduled for the %s."
msgstr "生产订单 '%s' 已创建,要生产的是 %s"
@@ -1310,7 +1310,7 @@ msgid "Production Order N° :"
msgstr "生产单号:"
#. module: mrp
-#: code:addons/mrp/mrp.py:640
+#: code:addons/mrp/mrp.py:630
#, python-format
msgid "Manufacturing order '%s' is ready to produce."
msgstr "生产订单 '%s' 已可以开始生产"
@@ -1543,7 +1543,7 @@ msgid "Manufacturing Orders To Start"
msgstr "未开始的生产订单"
#. module: mrp
-#: code:addons/mrp/mrp.py:495
+#: code:addons/mrp/mrp.py:491
#, python-format
msgid "Cannot delete Production Order(s) which are in %s State!"
msgstr "不能删除状态是 %s 的生产订单"
@@ -1633,7 +1633,7 @@ msgid "Production Analysis"
msgstr "生产分析"
#. module: mrp
-#: code:addons/mrp/mrp.py:349
+#: code:addons/mrp/mrp.py:345
#, python-format
msgid "Copy"
msgstr "副本"
@@ -2132,7 +2132,7 @@ msgid "Product type is Stockable or Consumable."
msgstr "产品类型是可库存或消耗品"
#. module: mrp
-#: code:addons/mrp/mrp.py:595
+#: code:addons/mrp/mrp.py:591
#: code:addons/mrp/wizard/change_production_qty.py:77
#: code:addons/mrp/wizard/change_production_qty.py:82
#, python-format
@@ -3111,6 +3111,11 @@ msgstr "年"
#~ msgid "Workcenter Usage"
#~ msgstr "使用的工作中心"
+#~ msgid ""
+#~ "This is the internal picking list that brings the finished product to the "
+#~ "production plan"
+#~ msgstr "这是一张移库单的编号,是把产成品从生产线上移动到库房里"
+
#~ msgid ""
#~ "\n"
#~ " This is the base module to manage the manufacturing process in OpenERP.\n"
diff --git a/addons/mrp/i18n/zh_HK.po b/addons/mrp/i18n/zh_HK.po
index 5c395b63b99..484e6c7318c 100644
--- a/addons/mrp/i18n/zh_HK.po
+++ b/addons/mrp/i18n/zh_HK.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2011-01-11 11:15+0000\n"
-"PO-Revision-Date: 2010-11-27 13:27+0000\n"
+"PO-Revision-Date: 2011-12-06 10:26+0000\n"
"Last-Translator: qdp (OpenERP) \n"
"Language-Team: Chinese (Hong Kong) \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-11-05 04:54+0000\n"
-"X-Generator: Launchpad (build 14231)\n"
+"X-Launchpad-Export-Date: 2011-12-07 04:51+0000\n"
+"X-Generator: Launchpad (build 14435)\n"
#. module: mrp
#: field:mrp.production,move_created_ids:0
@@ -716,7 +716,7 @@ msgid "Per month"
msgstr "每月"
#. module: mrp
-#: code:addons/mrp/mrp.py:595
+#: code:addons/mrp/mrp.py:591
#: code:addons/mrp/wizard/change_production_qty.py:77
#: code:addons/mrp/wizard/change_production_qty.py:82
#, python-format
@@ -729,7 +729,7 @@ msgid "Product Name"
msgstr "貨品名稱"
#. module: mrp
-#: code:addons/mrp/mrp.py:495
+#: code:addons/mrp/mrp.py:491
#, python-format
msgid "Invalid action !"
msgstr ""
@@ -1241,7 +1241,7 @@ msgstr ""
#. module: mrp
#: help:mrp.production,picking_id:0
msgid ""
-"This is the internal picking list that brings the finished product to the "
+"This is the Internal Picking List that brings the finished product to the "
"production plan"
msgstr ""
@@ -1295,7 +1295,7 @@ msgid "Month -1"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:924
+#: code:addons/mrp/mrp.py:914
#, python-format
msgid "Manufacturing order '%s' is scheduled for the %s."
msgstr ""
@@ -1306,7 +1306,7 @@ msgid "Production Order N° :"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:640
+#: code:addons/mrp/mrp.py:630
#, python-format
msgid "Manufacturing order '%s' is ready to produce."
msgstr ""
@@ -1535,7 +1535,7 @@ msgid "Manufacturing Orders To Start"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:495
+#: code:addons/mrp/mrp.py:491
#, python-format
msgid "Cannot delete Production Order(s) which are in %s State!"
msgstr ""
@@ -1625,7 +1625,7 @@ msgid "Production Analysis"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:349
+#: code:addons/mrp/mrp.py:345
#, python-format
msgid "Copy"
msgstr ""
@@ -2114,7 +2114,7 @@ msgid "Product type is Stockable or Consumable."
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:595
+#: code:addons/mrp/mrp.py:591
#: code:addons/mrp/wizard/change_production_qty.py:77
#: code:addons/mrp/wizard/change_production_qty.py:82
#, python-format
diff --git a/addons/mrp/i18n/zh_TW.po b/addons/mrp/i18n/zh_TW.po
index 7afc22bac08..866cc587475 100644
--- a/addons/mrp/i18n/zh_TW.po
+++ b/addons/mrp/i18n/zh_TW.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:15+0000\n"
-"PO-Revision-Date: 2010-11-27 13:27+0000\n"
+"PO-Revision-Date: 2011-12-06 10:25+0000\n"
"Last-Translator: qdp (OpenERP) \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-11-05 04:55+0000\n"
-"X-Generator: Launchpad (build 14231)\n"
+"X-Launchpad-Export-Date: 2011-12-07 04:52+0000\n"
+"X-Generator: Launchpad (build 14435)\n"
#. module: mrp
#: field:mrp.production,move_created_ids:0
@@ -715,7 +715,7 @@ msgid "Per month"
msgstr "每月"
#. module: mrp
-#: code:addons/mrp/mrp.py:595
+#: code:addons/mrp/mrp.py:591
#: code:addons/mrp/wizard/change_production_qty.py:77
#: code:addons/mrp/wizard/change_production_qty.py:82
#, python-format
@@ -728,7 +728,7 @@ msgid "Product Name"
msgstr "貨品名稱"
#. module: mrp
-#: code:addons/mrp/mrp.py:495
+#: code:addons/mrp/mrp.py:491
#, python-format
msgid "Invalid action !"
msgstr ""
@@ -1240,7 +1240,7 @@ msgstr ""
#. module: mrp
#: help:mrp.production,picking_id:0
msgid ""
-"This is the internal picking list that brings the finished product to the "
+"This is the Internal Picking List that brings the finished product to the "
"production plan"
msgstr ""
@@ -1294,7 +1294,7 @@ msgid "Month -1"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:924
+#: code:addons/mrp/mrp.py:914
#, python-format
msgid "Manufacturing order '%s' is scheduled for the %s."
msgstr ""
@@ -1305,7 +1305,7 @@ msgid "Production Order N° :"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:640
+#: code:addons/mrp/mrp.py:630
#, python-format
msgid "Manufacturing order '%s' is ready to produce."
msgstr ""
@@ -1534,7 +1534,7 @@ msgid "Manufacturing Orders To Start"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:495
+#: code:addons/mrp/mrp.py:491
#, python-format
msgid "Cannot delete Production Order(s) which are in %s State!"
msgstr ""
@@ -1624,7 +1624,7 @@ msgid "Production Analysis"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:349
+#: code:addons/mrp/mrp.py:345
#, python-format
msgid "Copy"
msgstr ""
@@ -2113,7 +2113,7 @@ msgid "Product type is Stockable or Consumable."
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:595
+#: code:addons/mrp/mrp.py:591
#: code:addons/mrp/wizard/change_production_qty.py:77
#: code:addons/mrp/wizard/change_production_qty.py:82
#, python-format
diff --git a/addons/mrp/mrp.py b/addons/mrp/mrp.py
index 356a762c0c5..dea664f6fd6 100644
--- a/addons/mrp/mrp.py
+++ b/addons/mrp/mrp.py
@@ -176,7 +176,7 @@ class mrp_bom(osv.osv):
@param arg: User defined argument
@return: Dictionary of values
"""
- res = dict(map(lambda x: (x,''), ids))
+ res = dict.fromkeys(ids, False)
for line in self.browse(cr, uid, ids, context=context):
if line.type == 'phantom' and not line.bom_id:
res[line.id] = 'set'
@@ -467,7 +467,7 @@ class mrp_production(osv.osv):
'bom_id': fields.many2one('mrp.bom', 'Bill of Material', domain=[('bom_id','=',False)], readonly=True, states={'draft':[('readonly',False)]}),
'routing_id': fields.many2one('mrp.routing', string='Routing', on_delete='set null', readonly=True, states={'draft':[('readonly',False)]}, help="The list of operations (list of work centers) to produce the finished product. The routing is mainly used to compute work center costs during operations and to plan future loads on work centers based on production plannification."),
'picking_id': fields.many2one('stock.picking', 'Picking list', readonly=True, ondelete="restrict",
- help="This is the internal picking list that brings the finished product to the production plan"),
+ help="This is the Internal Picking List that brings the finished product to the production plan"),
'move_prod_id': fields.many2one('stock.move', 'Move product', readonly=True),
'move_lines': fields.many2many('stock.move', 'mrp_production_move_ids', 'production_id', 'move_id', 'Products to Consume', domain=[('state','not in', ('done', 'cancel'))], states={'done':[('readonly',True)]}),
'move_lines2': fields.many2many('stock.move', 'mrp_production_move_ids', 'production_id', 'move_id', 'Consumed Products', domain=[('state','in', ('done', 'cancel'))]),
diff --git a/addons/mrp/mrp_view.xml b/addons/mrp/mrp_view.xml
index 67890b42134..eb1070ac941 100644
--- a/addons/mrp/mrp_view.xml
+++ b/addons/mrp/mrp_view.xml
@@ -522,6 +522,7 @@
mrp.bom
[('id','=',active_id)]
tree
+ tree
@@ -776,7 +777,7 @@
-
+
@@ -972,7 +973,7 @@
-
+
-
+
-
- Work Center Loads
- report.workcenter.load
- form
- graph,tree
-
- Work Center Loads gives you a projection of work center loads over a specified period. It is expressed in number of hours and machine related cycles.
-
diff --git a/addons/mrp/security/ir.model.access.csv b/addons/mrp/security/ir.model.access.csv
index 1d93fb460b5..4289010d165 100644
--- a/addons/mrp/security/ir.model.access.csv
+++ b/addons/mrp/security/ir.model.access.csv
@@ -1,94 +1,83 @@
-"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
-"access_mrp_workcenter","mrp.workcenter","model_mrp_workcenter","mrp.group_mrp_user",1,0,0,0
-"access_mrp_routing","mrp.routing","model_mrp_routing","mrp.group_mrp_user",1,0,0,0
-"access_mrp_routing_workcenter","mrp.routing.workcenter","model_mrp_routing_workcenter","mrp.group_mrp_user",1,0,0,0
-"access_mrp_bom","mrp.bom","model_mrp_bom","group_mrp_user",1,0,0,0
-"access_mrp_bom_revision","mrp.bom.revision","model_mrp_bom_revision","group_mrp_user",1,0,0,0
-"access_mrp_production","mrp.production user","model_mrp_production","mrp.group_mrp_user",1,1,1,1
-"access_mrp_production_salesman","mrp.production salesman","model_mrp_production","base.group_sale_salesman",1,1,1,0
-"access_mrp_production_product_line_salesman","mrp.production.product.line salesman","model_mrp_production_product_line","base.group_sale_salesman",1,0,1,0
-"access_mrp_production_workcenter_line_salesman","mrp.production.workcenter.line salesman","model_mrp_production_workcenter_line","base.group_sale_salesman",1,0,1,0
-"access_mrp_property_group","mrp.property.group","procurement.model_mrp_property_group","mrp.group_mrp_manager",1,1,1,1
-"access_mrp_property","mrp.property","procurement.model_mrp_property","mrp.group_mrp_manager",1,1,1,1
-"access_mrp_production_product_line","mrp.production.product.line","model_mrp_production_product_line","mrp.group_mrp_user",1,1,1,1
-"access_procurement","procurement.order","model_procurement_order","mrp.group_mrp_user",1,1,1,1
-"access_mrp_workcenter_manager","mrp.workcenter.manager","model_mrp_workcenter","mrp.group_mrp_manager",1,1,1,1
-"access_mrp_routing_manager","mrp.routing.manager","model_mrp_routing","mrp.group_mrp_manager",1,1,1,1
-"access_mrp_routing_workcenter_manager","mrp.routing.workcenter.manager","model_mrp_routing_workcenter","mrp.group_mrp_manager",1,1,1,1
-"access_mrp_bom_manager","mrp.bom.manager","model_mrp_bom","mrp.group_mrp_manager",1,1,1,1
-"access_mrp_bom_revision_manager","mrp.bom.revision.manager","model_mrp_bom_revision","mrp.group_mrp_manager",1,1,1,1
-"access_stock_location_mrp_worker","stock.location mrp_worker","stock.model_stock_location","mrp.group_mrp_user",1,0,0,0
-"access_stock_move_mrp_worker","stock.move mrp_worker","stock.model_stock_move","mrp.group_mrp_user",1,1,1,0
-"access_stock_picking_mrp_worker","stock.picking mrp_worker","stock.model_stock_picking","mrp.group_mrp_user",1,1,1,1
-"access_stock_warehouse","stock.warehouse mrp_worker","stock.model_stock_warehouse","mrp.group_mrp_user",1,0,0,0
-"access_account_analytic_journal_mrp_worker","account.analytic.journal mrp_worker","account.model_account_analytic_journal","mrp.group_mrp_user",1,0,0,0
-"access_account_account","account.account mrp_worker","account.model_account_account","mrp.group_mrp_user",1,0,0,0
-"access_purchase_order_mrp_worker","purchase.order mrp_worker","purchase.model_purchase_order","mrp.group_mrp_user",1,0,0,0
-"access_purchase_order_line_mrp_worker","purchase.order.line mrp_worker","purchase.model_purchase_order_line","mrp.group_mrp_user",1,0,0,0
-"access_hr_timesheet_group_mrp_worker","resource.calendar mrp_manager","resource.model_resource_calendar","mrp.group_mrp_manager",1,1,1,1
-"access_procurement_stock_worker","procurement.order stock_worker","model_procurement_order","stock.group_stock_user",1,1,1,1
-"access_procurement_user","procurement.order.user","model_procurement_order","base.group_user",1,1,1,1
-"access_mrp_production_stock_worker","mrp.production stock_worker","model_mrp_production","stock.group_stock_user",1,0,0,0
-"access_report_workcenter_load","report.workcenter.load","model_report_workcenter_load","mrp.group_mrp_manager",1,1,1,1
-"access_report_mrp_inout","report.mrp.inout","model_report_mrp_inout","mrp.group_mrp_manager",1,1,1,1
-"access_product_product_manager","product.product manager","product.model_product_product","mrp.group_mrp_manager",1,0,0,0
-"access_ir_property_manager","ir.property manager","base.model_ir_property","mrp.group_mrp_manager",1,1,1,1
-"access_account_sequence_fiscalyear","account.sequence.fiscalyear","account.model_account_sequence_fiscalyear","mrp.group_mrp_user",1,1,1,1
-"access_product_product_user","product.product user","product.model_product_product","mrp.group_mrp_user",1,0,0,0
-"access_product_template_user","product.template user","product.model_product_template","mrp.group_mrp_user",1,0,0,0
-"access_product_uom_user","product.uom user","product.model_product_uom","mrp.group_mrp_user",1,0,0,0
-"access_product_supplierinfo_user","product.supplierinfo user","product.model_product_supplierinfo","mrp.group_mrp_user",1,1,1,1
-"access_res_partner_address","res.partner.address","base.model_res_partner_address","mrp.group_mrp_user",1,0,0,0
-"access_stock_tracking","stock.tracking","stock.model_stock_tracking","mrp.group_mrp_user",1,1,1,0
-"access_res_partner","res.partner","base.model_res_partner","mrp.group_mrp_user",1,0,0,0
-"access_workcenter_user","mrp.production.workcenter.line.user","model_mrp_production_workcenter_line","mrp.group_mrp_user",1,1,1,1
-"access_resource_calendar_leaves_user","mrp.resource.calendar.leaves.user","resource.model_resource_calendar_leaves","mrp.group_mrp_user",1,1,1,1
-"access_resource_calendar_leaves_manager","mrp.resource.calendar.leaves.manager","resource.model_resource_calendar_leaves","mrp.group_mrp_manager",1,0,0,0
-"access_resource_calendar_attendance_manager","mrp.resource.calendar.attendance.manager","resource.model_resource_calendar_attendance","mrp.group_mrp_manager",1,1,1,1
-"access_product_puom_categ","product.uom.categ","product.model_product_uom_categ","mrp.group_mrp_user",1,0,0,0
-"access_resource_resource","resource.resource","resource.model_resource_resource","mrp.group_mrp_user",1,0,0,0
-"access_board_board_user","mrp.board.board","board.model_board_board","mrp.group_mrp_user",1,0,0,0
-"access_account_sequence_fiscalyear_manager","account.sequence.fiscalyear","account.model_account_sequence_fiscalyear","mrp.group_mrp_manager",1,0,0,0
-"access_product_template_manager","product.template mgr","product.model_product_template","mrp.group_mrp_manager",1,0,0,0
-"access_product_uom_manager","product.uom user","product.model_product_uom","mrp.group_mrp_manager",1,0,0,0
-"access_product_supplierinfo_manager","product.supplierinfo user","product.model_product_supplierinfo","mrp.group_mrp_manager",1,0,0,0
-"access_res_partner_address_manager","res.partner.address","base.model_res_partner_address","mrp.group_mrp_manager",1,0,0,0
-"access_stock_tracking_manager","stock.tracking","stock.model_stock_tracking","mrp.group_mrp_manager",1,0,0,0
-"access_res_partner_manager","res.partner","base.model_res_partner","mrp.group_mrp_manager",1,0,0,0
-"access_product_puom_categ_manager","product.uom.categ","product.model_product_uom_categ","mrp.group_mrp_manager",1,0,0,0
-"access_resource_resource_manager","resource.resource","resource.model_resource_resource","mrp.group_mrp_manager",1,0,0,0
-"access_board_board_manager","mrp.board.board","board.model_board_board","mrp.group_mrp_manager",1,0,0,0
-"access_mrp_production_manager","mrp.production manager","model_mrp_production","mrp.group_mrp_manager",1,0,0,0
-"access_procurement_manager","procurement.order","model_procurement_order","mrp.group_mrp_manager",1,0,0,0
-"access_workcenter_manager","mrp.production.workcenter.line","model_mrp_production_workcenter_line","mrp.group_mrp_manager",1,0,0,0
-"access_stock_move_mrp_manager","stock.move mrp_manager","stock.model_stock_move","mrp.group_mrp_manager",1,0,0,0
-"access_mrp_production_product_line_manager","mrp.production.product.line manager","model_mrp_production_product_line","mrp.group_mrp_manager",1,0,0,0
-"access_account_sequence_fiscalyear_system","account.sequence.fiscalyear.system","account.model_account_sequence_fiscalyear","mrp.group_mrp_manager",1,0,0,0
-"access_stock_production_lot_user","stock.production.lot","stock.model_stock_production_lot","mrp.group_mrp_user",1,1,1,1
-"access_stock_warehouse_orderpoint_manager","stock.warehouse.orderpoint","procurement.model_stock_warehouse_orderpoint","mrp.group_mrp_manager",1,0,0,0
-"access_stock_picking_mrp_manager","stock.picking mrp_manager","stock.model_stock_picking","mrp.group_mrp_manager",1,0,0,0
-"access_report_mrp_inout_user","report.mrp.inout user","model_report_mrp_inout","mrp.group_mrp_user",1,0,0,0
-"access_report_workcenter_load_user","report.workcenter.load.user","model_report_workcenter_load","mrp.group_mrp_user",1,0,0,0
-"access_mrp_bom_salesman","mrp.bom","model_mrp_bom","base.group_sale_salesman",1,0,0,0
-"access_mrp_bom_stockuser","mrp.bom","model_mrp_bom","stock.group_stock_user",1,0,0,0
-"access_product_uom_categ_mrp_manager","product.uom.categ mrp_manager","product.model_product_uom_categ","mrp.group_mrp_manager",1,1,1,1
-"access_product_uom_mrp_manager","product.uom mrp_manager","product.model_product_uom","mrp.group_mrp_manager",1,1,1,1
-"access_product_ul_mrp_manager","product.ul mrp_manager","product.model_product_ul","mrp.group_mrp_manager",1,1,1,1
-"access_product_category_mrp_manager","product.category mrp_manager","product.model_product_category","mrp.group_mrp_manager",1,1,1,1
-"access_product_template_mrp_manager","product.template mrp_manager","product.model_product_template","mrp.group_mrp_manager",1,1,1,1
-"access_product_product_mrp_manager","product.product mrp_manager","product.model_product_product","mrp.group_mrp_manager",1,1,1,1
-"access_product_packaging_mrp_manager","product.packaging mrp_manager","product.model_product_packaging","mrp.group_mrp_manager",1,1,1,1
-"access_product_supplierinfo_mrp_manager","product.supplierinfo mrp_manager","product.model_product_supplierinfo","mrp.group_mrp_manager",1,1,1,1
-"access_pricelist_partnerinfo_mrp_manager","pricelist.partnerinfo mrp_manager","product.model_pricelist_partnerinfo","mrp.group_mrp_manager",1,1,1,1
-"access_product_price_type_mrp_manager","product.price.type mrp_manager","product.model_product_price_type","mrp.group_mrp_manager",1,1,1,1
-"access_product_pricelist_type_mrp_manager","product.pricelist.type mrp_manager","product.model_product_pricelist_type","mrp.group_mrp_manager",1,1,1,1
-"access_product_pricelist_mrp_manager","product.pricelist mrp_manager","product.model_product_pricelist","mrp.group_mrp_manager",1,1,1,1
-"access_ir_property_group_product_mrp_manager","ir_property group_product_mrp_manager","base.model_ir_property","mrp.group_mrp_manager",1,1,1,1
-"access_product_group_res_partner_mrp_manager","res_partner group_mrp_manager","base.model_res_partner","mrp.group_mrp_manager",1,1,1,0
-"access_product_pricelist_version_mrp_manager","product.pricelist.version mrp_manager","product.model_product_pricelist_version","mrp.group_mrp_manager",1,1,1,1
-"access_product_pricelist_item_mrp_manager","product.pricelist.item mrp_manager","product.model_product_pricelist_item","mrp.group_mrp_manager",1,1,1,1
-"access_resource_calendar_manufacturinguser","resource.calendar manufacturing.user","resource.model_resource_calendar","mrp.group_mrp_user",1,0,0,0
-"access_account_account_mrp_manager","account.account mrp manager","account.model_account_account","mrp.group_mrp_manager",1,0,0,0
-"access_account_journal_mrp_manager","account.journal mrp manager","account.model_account_journal","mrp.group_mrp_manager",1,0,0,0
-"access_stock_location_mrp_manager","stock.location product mrp manager","stock.model_stock_location","mrp.group_mrp_manager",1,0,0,0
-"access_purchase_order_stock_user","purchase.order stock user","purchase.model_purchase_order","stock.group_stock_user",1,1,1,0
+id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
+access_mrp_workcenter,mrp.workcenter,model_mrp_workcenter,mrp.group_mrp_user,1,0,0,0
+access_mrp_routing,mrp.routing,model_mrp_routing,mrp.group_mrp_user,1,0,0,0
+access_mrp_routing_workcenter,mrp.routing.workcenter,model_mrp_routing_workcenter,mrp.group_mrp_user,1,0,0,0
+access_mrp_bom,mrp.bom,model_mrp_bom,group_mrp_user,1,0,0,0
+access_mrp_bom_revision,mrp.bom.revision,model_mrp_bom_revision,group_mrp_user,1,0,0,0
+access_mrp_production,mrp.production user,model_mrp_production,mrp.group_mrp_user,1,1,1,1
+access_mrp_production_salesman,mrp.production salesman,model_mrp_production,base.group_sale_salesman,1,1,1,0
+access_mrp_production_product_line_salesman,mrp.production.product.line salesman,model_mrp_production_product_line,base.group_sale_salesman,1,0,1,0
+access_mrp_production_workcenter_line_salesman,mrp.production.workcenter.line salesman,model_mrp_production_workcenter_line,base.group_sale_salesman,1,0,1,0
+access_mrp_property_group,mrp.property.group,procurement.model_mrp_property_group,mrp.group_mrp_manager,1,1,1,1
+access_mrp_property,mrp.property,procurement.model_mrp_property,mrp.group_mrp_manager,1,1,1,1
+access_mrp_production_product_line,mrp.production.product.line,model_mrp_production_product_line,mrp.group_mrp_user,1,1,1,1
+access_procurement,procurement.order,model_procurement_order,mrp.group_mrp_user,1,1,1,1
+access_mrp_workcenter_manager,mrp.workcenter.manager,model_mrp_workcenter,mrp.group_mrp_manager,1,1,1,1
+access_mrp_routing_manager,mrp.routing.manager,model_mrp_routing,mrp.group_mrp_manager,1,1,1,1
+access_mrp_routing_workcenter_manager,mrp.routing.workcenter.manager,model_mrp_routing_workcenter,mrp.group_mrp_manager,1,1,1,1
+access_mrp_bom_manager,mrp.bom.manager,model_mrp_bom,mrp.group_mrp_manager,1,1,1,1
+access_mrp_bom_revision_manager,mrp.bom.revision.manager,model_mrp_bom_revision,mrp.group_mrp_manager,1,1,1,1
+access_stock_location_mrp_worker,stock.location mrp_worker,stock.model_stock_location,mrp.group_mrp_user,1,0,0,0
+access_stock_move_mrp_worker,stock.move mrp_worker,stock.model_stock_move,mrp.group_mrp_user,1,1,1,0
+access_stock_picking_mrp_worker,stock.picking mrp_worker,stock.model_stock_picking,mrp.group_mrp_user,1,1,1,1
+access_stock_warehouse,stock.warehouse mrp_worker,stock.model_stock_warehouse,mrp.group_mrp_user,1,0,0,0
+access_account_analytic_journal_mrp_worker,account.analytic.journal mrp_worker,account.model_account_analytic_journal,mrp.group_mrp_user,1,0,0,0
+access_account_account,account.account mrp_worker,account.model_account_account,mrp.group_mrp_user,1,0,0,0
+access_purchase_order_mrp_worker,purchase.order mrp_worker,purchase.model_purchase_order,mrp.group_mrp_user,1,0,0,0
+access_purchase_order_line_mrp_worker,purchase.order.line mrp_worker,purchase.model_purchase_order_line,mrp.group_mrp_user,1,0,0,0
+access_hr_timesheet_group_mrp_worker,resource.calendar mrp_manager,resource.model_resource_calendar,mrp.group_mrp_manager,1,1,1,1
+access_procurement_stock_worker,procurement.order stock_worker,model_procurement_order,stock.group_stock_user,1,1,1,1
+access_procurement_user,procurement.order.user,model_procurement_order,base.group_user,1,1,1,1
+access_mrp_production_stock_worker,mrp.production stock_worker,model_mrp_production,stock.group_stock_user,1,0,0,0
+access_report_workcenter_load,report.workcenter.load,model_report_workcenter_load,mrp.group_mrp_manager,1,1,1,1
+access_report_mrp_inout,report.mrp.inout,model_report_mrp_inout,mrp.group_mrp_manager,1,1,1,1
+access_ir_property_manager,ir.property manager,base.model_ir_property,mrp.group_mrp_manager,1,1,1,1
+access_account_sequence_fiscalyear,account.sequence.fiscalyear,account.model_account_sequence_fiscalyear,mrp.group_mrp_user,1,1,1,1
+access_product_product_user,product.product user,product.model_product_product,mrp.group_mrp_user,1,0,0,0
+access_product_template_user,product.template user,product.model_product_template,mrp.group_mrp_user,1,0,0,0
+access_product_uom_user,product.uom user,product.model_product_uom,mrp.group_mrp_user,1,0,0,0
+access_product_supplierinfo_user,product.supplierinfo user,product.model_product_supplierinfo,mrp.group_mrp_user,1,1,1,1
+access_res_partner_address,res.partner.address,base.model_res_partner_address,mrp.group_mrp_user,1,0,0,0
+access_stock_tracking,stock.tracking,stock.model_stock_tracking,mrp.group_mrp_user,1,1,1,0
+access_res_partner,res.partner,base.model_res_partner,mrp.group_mrp_user,1,0,0,0
+access_workcenter_user,mrp.production.workcenter.line.user,model_mrp_production_workcenter_line,mrp.group_mrp_user,1,1,1,1
+access_resource_calendar_leaves_user,mrp.resource.calendar.leaves.user,resource.model_resource_calendar_leaves,mrp.group_mrp_user,1,1,1,1
+access_resource_calendar_leaves_manager,mrp.resource.calendar.leaves.manager,resource.model_resource_calendar_leaves,mrp.group_mrp_manager,1,0,0,0
+access_resource_calendar_attendance_manager,mrp.resource.calendar.attendance.manager,resource.model_resource_calendar_attendance,mrp.group_mrp_manager,1,1,1,1
+access_product_puom_categ,product.uom.categ,product.model_product_uom_categ,mrp.group_mrp_user,1,0,0,0
+access_resource_resource,resource.resource,resource.model_resource_resource,mrp.group_mrp_user,1,0,0,0
+access_board_board_user,mrp.board.board,board.model_board_board,mrp.group_mrp_user,1,0,0,0
+access_account_sequence_fiscalyear_manager,account.sequence.fiscalyear,account.model_account_sequence_fiscalyear,mrp.group_mrp_manager,1,0,0,0
+access_product_supplierinfo_manager,product.supplierinfo user,product.model_product_supplierinfo,mrp.group_mrp_manager,1,0,0,0
+access_stock_tracking_manager,stock.tracking,stock.model_stock_tracking,mrp.group_mrp_manager,1,0,0,0
+access_mrp_production_manager,mrp.production manager,model_mrp_production,mrp.group_mrp_manager,1,0,0,0
+access_procurement_manager,procurement.order,model_procurement_order,mrp.group_mrp_manager,1,0,0,0
+access_workcenter_manager,mrp.production.workcenter.line,model_mrp_production_workcenter_line,mrp.group_mrp_manager,1,0,0,0
+access_stock_move_mrp_manager,stock.move mrp_manager,stock.model_stock_move,mrp.group_mrp_manager,1,0,0,0
+access_mrp_production_product_line_manager,mrp.production.product.line manager,model_mrp_production_product_line,mrp.group_mrp_manager,1,0,0,0
+access_account_sequence_fiscalyear_system,account.sequence.fiscalyear.system,account.model_account_sequence_fiscalyear,mrp.group_mrp_manager,1,0,0,0
+access_stock_production_lot_user,stock.production.lot,stock.model_stock_production_lot,mrp.group_mrp_user,1,1,1,1
+access_stock_warehouse_orderpoint_manager,stock.warehouse.orderpoint,procurement.model_stock_warehouse_orderpoint,mrp.group_mrp_manager,1,0,0,0
+access_stock_picking_mrp_manager,stock.picking mrp_manager,stock.model_stock_picking,mrp.group_mrp_manager,1,0,0,0
+access_report_mrp_inout_user,report.mrp.inout user,model_report_mrp_inout,mrp.group_mrp_user,1,0,0,0
+access_report_workcenter_load_user,report.workcenter.load.user,model_report_workcenter_load,mrp.group_mrp_user,1,0,0,0
+access_mrp_bom_salesman,mrp.bom,model_mrp_bom,base.group_sale_salesman,1,0,0,0
+access_mrp_bom_stockuser,mrp.bom,model_mrp_bom,stock.group_stock_user,1,0,0,0
+access_product_uom_categ_mrp_manager,product.uom.categ mrp_manager,product.model_product_uom_categ,mrp.group_mrp_manager,1,1,1,1
+access_product_uom_mrp_manager,product.uom mrp_manager,product.model_product_uom,mrp.group_mrp_manager,1,1,1,1
+access_product_ul_mrp_manager,product.ul mrp_manager,product.model_product_ul,mrp.group_mrp_manager,1,1,1,1
+access_product_category_mrp_manager,product.category mrp_manager,product.model_product_category,mrp.group_mrp_manager,1,1,1,1
+access_product_template_mrp_manager,product.template mrp_manager,product.model_product_template,mrp.group_mrp_manager,1,1,1,1
+access_product_product_mrp_manager,product.product mrp_manager,product.model_product_product,mrp.group_mrp_manager,1,1,1,1
+access_product_packaging_mrp_manager,product.packaging mrp_manager,product.model_product_packaging,mrp.group_mrp_manager,1,1,1,1
+access_pricelist_partnerinfo_mrp_manager,pricelist.partnerinfo mrp_manager,product.model_pricelist_partnerinfo,mrp.group_mrp_manager,1,1,1,1
+access_product_price_type_mrp_manager,product.price.type mrp_manager,product.model_product_price_type,mrp.group_mrp_manager,1,1,1,1
+access_product_pricelist_type_mrp_manager,product.pricelist.type mrp_manager,product.model_product_pricelist_type,mrp.group_mrp_manager,1,1,1,1
+access_product_pricelist_mrp_manager,product.pricelist mrp_manager,product.model_product_pricelist,mrp.group_mrp_manager,1,1,1,1
+access_ir_property_group_product_mrp_manager,ir_property group_product_mrp_manager,base.model_ir_property,mrp.group_mrp_manager,1,1,1,1
+access_product_group_res_partner_mrp_manager,res_partner group_mrp_manager,base.model_res_partner,mrp.group_mrp_manager,1,1,1,0
+access_product_pricelist_version_mrp_manager,product.pricelist.version mrp_manager,product.model_product_pricelist_version,mrp.group_mrp_manager,1,1,1,1
+access_product_pricelist_item_mrp_manager,product.pricelist.item mrp_manager,product.model_product_pricelist_item,mrp.group_mrp_manager,1,1,1,1
+access_resource_calendar_manufacturinguser,resource.calendar manufacturing.user,resource.model_resource_calendar,mrp.group_mrp_user,1,0,0,0
+access_account_journal_mrp_manager,account.journal mrp manager,account.model_account_journal,mrp.group_mrp_manager,1,0,0,0
+access_purchase_order_stock_user,purchase.order stock user,purchase.model_purchase_order,stock.group_stock_user,1,1,1,0
diff --git a/addons/mrp/security/mrp_security.xml b/addons/mrp/security/mrp_security.xml
index fb83f8c4a62..b4b79d6f606 100644
--- a/addons/mrp/security/mrp_security.xml
+++ b/addons/mrp/security/mrp_security.xml
@@ -3,10 +3,12 @@
- Manufacturing / User
+ User
+
- Manufacturing / Manager
+ Manager
+
diff --git a/addons/mrp/static/src/img/icon.png b/addons/mrp/static/src/img/icon.png
new file mode 100644
index 00000000000..600104af507
Binary files /dev/null and b/addons/mrp/static/src/img/icon.png differ
diff --git a/addons/mrp_jit/i18n/hr.po b/addons/mrp_jit/i18n/hr.po
index 6c845797ba4..9f965c216ea 100644
--- a/addons/mrp_jit/i18n/hr.po
+++ b/addons/mrp_jit/i18n/hr.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:15+0000\n"
-"PO-Revision-Date: 2009-12-22 12:16+0000\n"
-"Last-Translator: Jožek Prikratki \n"
+"PO-Revision-Date: 2011-12-12 08:29+0000\n"
+"Last-Translator: Tomislav Bosnjakovic \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-11-05 05:40+0000\n"
-"X-Generator: Launchpad (build 14231)\n"
+"X-Launchpad-Export-Date: 2011-12-13 05:01+0000\n"
+"X-Generator: Launchpad (build 14458)\n"
#. module: mrp_jit
#: model:ir.module.module,shortdesc:mrp_jit.module_meta_information
@@ -46,3 +46,22 @@ msgid ""
" \n"
" "
msgstr ""
+"\n"
+" Ovaj modul omogućuje Just in Time izračun naloga za nabavu.\n"
+"\n"
+" Ako instalirate ovaj modul nećete više morati pokretati normalni planer "
+"\n"
+" zahtjeva u nabavi (ali i dalje ćete morati pokrenuti planer pravila "
+"minimalne točke \n"
+" naručivanja, ili ga postaviti da se npr. pokreće dnevno)\n"
+" Svi zahtjevi za nabavom će se procesirati odmah, što može u nekim "
+"slučajevima\n"
+" utjecati na brzinu rada.\n"
+"\n"
+" Također može povećati veličinu vaših zaliha jer se artikli naručuju čim "
+"je to \n"
+" moguće i raspon vremena planiranja se više ne uzima u obzir.\n"
+" u tom slučaju ne možete koristiti prioritete kod različitih prijenosa.\n"
+" \n"
+" \n"
+" "
diff --git a/addons/mrp_operations/__openerp__.py b/addons/mrp_operations/__openerp__.py
index d965ca5160c..caa33cc6556 100644
--- a/addons/mrp_operations/__openerp__.py
+++ b/addons/mrp_operations/__openerp__.py
@@ -62,7 +62,8 @@ So that we can compare the theoretic delay and real delay.
'mrp_operations_view.xml',
'mrp_operations_report.xml',
'report/mrp_workorder_analysis_view.xml',
- 'process/mrp_operation_process.xml'
+ 'process/mrp_operation_process.xml',
+ 'mrp_operations_workflow_instance.xml'
],
'demo_xml': ['mrp_operation_data.xml'],
'test': ['test/mrp_operations.yml', 'test/mrp_operations_report.yml','test/mrp_operation_test.yml'],
diff --git a/addons/mrp_operations/i18n/hr.po b/addons/mrp_operations/i18n/hr.po
index e9745098516..7a6d5bd3c42 100644
--- a/addons/mrp_operations/i18n/hr.po
+++ b/addons/mrp_operations/i18n/hr.po
@@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2011-01-03 16:58+0000\n"
-"PO-Revision-Date: 2010-10-15 09:07+0000\n"
-"Last-Translator: OpenERP Administrators \n"
+"PO-Revision-Date: 2011-12-12 10:24+0000\n"
+"Last-Translator: Tomislav Bosnjakovic \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-11-05 05:31+0000\n"
-"X-Generator: Launchpad (build 14231)\n"
+"X-Launchpad-Export-Date: 2011-12-13 05:01+0000\n"
+"X-Generator: Launchpad (build 14458)\n"
#. module: mrp_operations
#: model:ir.actions.act_window,name:mrp_operations.mrp_production_wc_action_form
@@ -23,17 +23,17 @@ msgstr ""
#: view:mrp.production.workcenter.line:0
#: view:mrp.workorder:0
msgid "Work Orders"
-msgstr ""
+msgstr "Radni nalozi"
#. module: mrp_operations
#: model:process.node,note:mrp_operations.process_node_canceloperation0
msgid "Cancel the operation."
-msgstr ""
+msgstr "Cancel the operation."
#. module: mrp_operations
#: model:ir.model,name:mrp_operations.model_mrp_operations_operation_code
msgid "mrp_operations.operation.code"
-msgstr ""
+msgstr "mrp_operations.operation.code"
#. module: mrp_operations
#: code:addons/mrp_operations/mrp_operations.py:133
@@ -45,76 +45,76 @@ msgstr ""
#: view:mrp.production.workcenter.line:0
#: view:mrp.workorder:0
msgid "Group By..."
-msgstr ""
+msgstr "Grupiraj po..."
#. module: mrp_operations
#: model:process.node,note:mrp_operations.process_node_workorder0
msgid "Information from the routing definition."
-msgstr ""
+msgstr "Information from the routing definition."
#. module: mrp_operations
#: selection:mrp.workorder,month:0
msgid "March"
-msgstr ""
+msgstr "Ožujak"
#. module: mrp_operations
#: model:ir.actions.act_window,name:mrp_operations.mrp_production_wc_resource_planning
#: model:ir.ui.menu,name:mrp_operations.menu_mrp_production_wc_resource_planning
msgid "Work Centers"
-msgstr ""
+msgstr "Radni centri"
#. module: mrp_operations
#: view:mrp.production:0
#: view:mrp.production.workcenter.line:0
#: selection:mrp_operations.operation.code,start_stop:0
msgid "Resume"
-msgstr ""
+msgstr "Resume"
#. module: mrp_operations
#: report:mrp.code.barcode:0
msgid "("
-msgstr ""
+msgstr "("
#. module: mrp_operations
#: view:mrp.production.workcenter.line:0
msgid "Product to Produce"
-msgstr ""
+msgstr "Product to Produce"
#. module: mrp_operations
#: view:mrp_operations.operation:0
msgid "Production Operation"
-msgstr ""
+msgstr "Production Operation"
#. module: mrp_operations
#: field:mrp.production,allow_reorder:0
msgid "Free Serialisation"
-msgstr ""
+msgstr "Free Serialisation"
#. module: mrp_operations
#: model:process.process,name:mrp_operations.process_process_mrpoperationprocess0
msgid "Mrp Operations"
-msgstr ""
+msgstr "Mrp operacije"
#. module: mrp_operations
#: view:mrp.workorder:0
#: field:mrp.workorder,day:0
msgid "Day"
-msgstr ""
+msgstr "Dan"
#. module: mrp_operations
#: model:process.node,name:mrp_operations.process_node_productionorder0
msgid "Production Order"
-msgstr ""
+msgstr "Production Order"
#. module: mrp_operations
#: selection:mrp.production.workcenter.line,production_state:0
msgid "Picking Exception"
-msgstr ""
+msgstr "Skladišna iznimka"
#. module: mrp_operations
#: model:process.transition,name:mrp_operations.process_transition_productionstart0
msgid "Creation of the work order"
-msgstr ""
+msgstr "Creation of the work order"
#. module: mrp_operations
#: code:addons/mrp_operations/mrp_operations.py:463
@@ -132,7 +132,7 @@ msgstr ""
#. module: mrp_operations
#: model:process.transition,note:mrp_operations.process_transition_productionstart0
msgid "The work orders are created on the basis of the production order."
-msgstr ""
+msgstr "The work orders are created on the basis of the production order."
#. module: mrp_operations
#: code:addons/mrp_operations/mrp_operations.py:133
@@ -149,28 +149,28 @@ msgstr ""
#: selection:mrp.workorder,state:0
#: selection:mrp_operations.operation.code,start_stop:0
msgid "Cancelled"
-msgstr ""
+msgstr "Otkazani"
#. module: mrp_operations
#: model:ir.actions.act_window,name:mrp_operations.mrp_production_wc_confirm_action
msgid "Confirmed Work Orders"
-msgstr ""
+msgstr "Potvrđeni radni nalozi"
#. module: mrp_operations
#: model:ir.actions.act_window,name:mrp_operations.mrp_production_operation_action
#: view:mrp.production.workcenter.line:0
msgid "Operations"
-msgstr ""
+msgstr "Operations"
#. module: mrp_operations
#: model:ir.model,name:mrp_operations.model_stock_move
msgid "Stock Move"
-msgstr ""
+msgstr "Skladišni prijenosi"
#. module: mrp_operations
#: field:mrp.workorder,nbr:0
msgid "# of Lines"
-msgstr ""
+msgstr "# linija"
#. module: mrp_operations
#: view:mrp.production.workcenter.line:0
@@ -178,7 +178,7 @@ msgstr ""
#: selection:mrp.production.workcenter.line,state:0
#: selection:mrp.workorder,state:0
msgid "Draft"
-msgstr ""
+msgstr "Nacrt"
#. module: mrp_operations
#: selection:mrp.production.workcenter.line,production_state:0
@@ -191,13 +191,13 @@ msgstr "U proizvodnji"
#: view:mrp.workorder:0
#: field:mrp.workorder,state:0
msgid "State"
-msgstr ""
+msgstr "Stanje"
#. module: mrp_operations
#: model:ir.actions.act_window,name:mrp_operations.action_report_mrp_workorder
#: model:ir.model,name:mrp_operations.model_mrp_production_workcenter_line
msgid "Work Order"
-msgstr ""
+msgstr "Radni nalog"
#. module: mrp_operations
#: model:process.transition,note:mrp_operations.process_transition_workstartoperation0
@@ -205,11 +205,13 @@ msgid ""
"There is 1 work order per work center. The information about the number of "
"cycles or the cycle time."
msgstr ""
+"Tu je 1 radni nalog po radnom centru. Podaci o broju ciklusa ili vrijeme "
+"ciklusa."
#. module: mrp_operations
#: view:mrp.workorder:0
msgid "Month -1"
-msgstr ""
+msgstr "Month -1"
#. module: mrp_operations
#: help:mrp.production.workcenter.line,state:0
@@ -232,7 +234,7 @@ msgstr ""
#. module: mrp_operations
#: view:mrp.production.workcenter.line:0
msgid "Planned Date"
-msgstr ""
+msgstr "Planiran datum"
#. module: mrp_operations
#: code:addons/mrp_operations/mrp_operations.py:479
@@ -244,22 +246,22 @@ msgstr ""
#: view:mrp.workorder:0
#: field:mrp.workorder,product_qty:0
msgid "Product Qty"
-msgstr ""
+msgstr "Količina"
#. module: mrp_operations
#: selection:mrp.workorder,month:0
msgid "July"
-msgstr ""
+msgstr "Srpanj"
#. module: mrp_operations
#: field:mrp_operations.operation.code,name:0
msgid "Operation Name"
-msgstr ""
+msgstr "Operation Name"
#. module: mrp_operations
#: field:mrp_operations.operation.code,start_stop:0
msgid "Status"
-msgstr ""
+msgstr "Status"
#. module: mrp_operations
#: model:ir.actions.act_window,help:mrp_operations.mrp_production_wc_action_planning
@@ -270,16 +272,20 @@ msgid ""
"different impacts on the costs of manufacturing and planning depending on "
"the available workload."
msgstr ""
+"Za proizvodnju ili sastavljanje proizvoda, i korištenje sirovina i gotovih "
+"proizvoda morate upravljatii proizvodnim operacijama. Proizvodne operacije "
+"često se nazivaju radnim nalozima. Različite operacije će imati različite "
+"utjecaje na troškove proizvodnje i planiranje, ovisno o raspoloživosti posla."
#. module: mrp_operations
#: field:mrp_operations.operation,order_date:0
msgid "Order Date"
-msgstr ""
+msgstr "Datum naloga"
#. module: mrp_operations
#: model:ir.actions.act_window,name:mrp_operations.mrp_production_wc_draft_action
msgid "Future Work Orders"
-msgstr ""
+msgstr "Future Work Orders"
#. module: mrp_operations
#: code:addons/mrp_operations/mrp_operations.py:459
@@ -292,50 +298,50 @@ msgstr ""
#. module: mrp_operations
#: model:process.node,name:mrp_operations.process_node_canceloperation0
msgid "Operation Cancelled"
-msgstr ""
+msgstr "Operation Cancelled"
#. module: mrp_operations
#: selection:mrp.workorder,month:0
msgid "September"
-msgstr ""
+msgstr "Rujan"
#. module: mrp_operations
#: selection:mrp.workorder,month:0
msgid "December"
-msgstr ""
+msgstr "Prosinac"
#. module: mrp_operations
#: view:mrp.workorder:0
#: field:mrp.workorder,month:0
msgid "Month"
-msgstr ""
+msgstr "Mjesec"
#. module: mrp_operations
#: selection:mrp.production.workcenter.line,production_state:0
msgid "Canceled"
-msgstr ""
+msgstr "Otkazano"
#. module: mrp_operations
#: model:ir.model,name:mrp_operations.model_mrp_operations_operation
msgid "mrp_operations.operation"
-msgstr ""
+msgstr "mrp_operations.operation"
#. module: mrp_operations
#: model:ir.model,name:mrp_operations.model_mrp_workorder
msgid "Work Order Report"
-msgstr ""
+msgstr "Work Order Report"
#. module: mrp_operations
#: field:mrp.production.workcenter.line,date_start:0
#: field:mrp.production.workcenter.line,date_start_date:0
#: field:mrp_operations.operation,date_start:0
msgid "Start Date"
-msgstr ""
+msgstr "Početni datum"
#. module: mrp_operations
#: selection:mrp.production.workcenter.line,production_state:0
msgid "Waiting Goods"
-msgstr ""
+msgstr "Waiting Goods"
#. module: mrp_operations
#: view:mrp.production:0
@@ -351,53 +357,53 @@ msgstr "Pauza"
#: selection:mrp.production.workcenter.line,state:0
#: selection:mrp.workorder,state:0
msgid "In Progress"
-msgstr "U Tijeku"
+msgstr "In Progress"
#. module: mrp_operations
#: model:ir.model,name:mrp_operations.model_mrp_production
msgid "Manufacturing Order"
-msgstr ""
+msgstr "Nalog proizvodnje"
#. module: mrp_operations
#: view:mrp.production:0
#: view:mrp.production.workcenter.line:0
#: selection:mrp_operations.operation.code,start_stop:0
msgid "Start"
-msgstr ""
+msgstr "Start"
#. module: mrp_operations
#: view:mrp_operations.operation:0
msgid "Calendar View"
-msgstr ""
+msgstr "Calendar View"
#. module: mrp_operations
#: model:process.transition,note:mrp_operations.process_transition_startcanceloperation0
msgid ""
"When the operation needs to be cancelled, you can do it in the work order "
"form."
-msgstr ""
+msgstr "Operaciju je moguće otkazati na kartici radnog naloga."
#. module: mrp_operations
#: view:mrp.production:0
#: view:mrp.production.workcenter.line:0
msgid "Set Draft"
-msgstr ""
+msgstr "Set Draft"
#. module: mrp_operations
#: view:mrp.workorder:0
#: field:mrp.workorder,total_cycles:0
msgid "Total Cycles"
-msgstr ""
+msgstr "Ukupno ciklusa"
#. module: mrp_operations
#: view:mrp.production.workcenter.line:0
msgid "Pending"
-msgstr ""
+msgstr "Na čekanju"
#. module: mrp_operations
#: view:mrp_operations.operation.code:0
msgid "Production Operation Code"
-msgstr ""
+msgstr "Šifra operacije proizvodnje"
#. module: mrp_operations
#: code:addons/mrp_operations/mrp_operations.py:467
@@ -408,12 +414,12 @@ msgstr ""
#. module: mrp_operations
#: selection:mrp.workorder,month:0
msgid "August"
-msgstr ""
+msgstr "Kolovoz"
#. module: mrp_operations
#: view:mrp.workorder:0
msgid "Started"
-msgstr ""
+msgstr "Započeto"
#. module: mrp_operations
#: model:ir.module.module,description:mrp_operations.module_meta_information
@@ -451,7 +457,7 @@ msgstr ""
#. module: mrp_operations
#: selection:mrp.workorder,month:0
msgid "June"
-msgstr ""
+msgstr "Lipanj"
#. module: mrp_operations
#: code:addons/mrp_operations/mrp_operations.py:482
@@ -462,28 +468,28 @@ msgstr ""
#. module: mrp_operations
#: selection:mrp.production.workcenter.line,production_state:0
msgid "Ready to Produce"
-msgstr ""
+msgstr "Spremno za proizvodnju"
#. module: mrp_operations
#: field:stock.move,move_dest_id_lines:0
msgid "Children Moves"
-msgstr ""
+msgstr "Children Moves"
#. module: mrp_operations
#: model:ir.actions.act_window,name:mrp_operations.mrp_production_wc_action_planning
msgid "Work Orders Planning"
-msgstr ""
+msgstr "Work Orders Planning"
#. module: mrp_operations
#: view:mrp.production.workcenter.line:0
#: field:mrp.workorder,date:0
msgid "Date"
-msgstr ""
+msgstr "Datum"
#. module: mrp_operations
#: selection:mrp.workorder,month:0
msgid "November"
-msgstr ""
+msgstr "Studeni"
#. module: mrp_operations
#: help:mrp.production.workcenter.line,delay:0
@@ -493,22 +499,22 @@ msgstr ""
#. module: mrp_operations
#: view:mrp.workorder:0
msgid "Search"
-msgstr ""
+msgstr "Search"
#. module: mrp_operations
#: selection:mrp.workorder,month:0
msgid "October"
-msgstr ""
+msgstr "Listopad"
#. module: mrp_operations
#: selection:mrp.workorder,month:0
msgid "January"
-msgstr ""
+msgstr "Siječanj"
#. module: mrp_operations
#: model:process.node,note:mrp_operations.process_node_doneoperation0
msgid "Finish the operation."
-msgstr ""
+msgstr "Završi operacije."
#. module: mrp_operations
#: code:addons/mrp_operations/mrp_operations.py:452
@@ -519,7 +525,7 @@ msgstr ""
#. module: mrp_operations
#: model:process.node,note:mrp_operations.process_node_productionorder0
msgid "Information from the production order."
-msgstr ""
+msgstr "Information from the production order."
#. module: mrp_operations
#: code:addons/mrp_operations/mrp_operations.py:452
@@ -533,13 +539,13 @@ msgstr ""
#. module: mrp_operations
#: view:mrp.workorder:0
msgid "Current"
-msgstr ""
+msgstr "Trenutno"
#. module: mrp_operations
#: field:mrp_operations.operation,code_id:0
#: field:mrp_operations.operation.code,code:0
msgid "Code"
-msgstr ""
+msgstr "Šifra"
#. module: mrp_operations
#: code:addons/mrp_operations/mrp_operations.py:475
@@ -555,35 +561,35 @@ msgstr ""
#. module: mrp_operations
#: model:ir.actions.act_window,name:mrp_operations.mrp_production_code_action
msgid "Operation Codes"
-msgstr ""
+msgstr "Operation Codes"
#. module: mrp_operations
#: field:mrp.production.workcenter.line,qty:0
msgid "Qty"
-msgstr ""
+msgstr "Kol."
#. module: mrp_operations
#: model:process.node,name:mrp_operations.process_node_doneoperation0
msgid "Operation Done"
-msgstr ""
+msgstr "Operacija izvršena"
#. module: mrp_operations
#: selection:mrp.production.workcenter.line,production_state:0
#: view:mrp.workorder:0
#: selection:mrp_operations.operation.code,start_stop:0
msgid "Done"
-msgstr ""
+msgstr "Izvršeno"
#. module: mrp_operations
#: model:ir.actions.report.xml,name:mrp_operations.report_code_barcode
msgid "Start/Stop Barcode"
-msgstr ""
+msgstr "Start/Stop Barcode"
#. module: mrp_operations
#: view:mrp.production:0
#: view:mrp.production.workcenter.line:0
msgid "Cancel"
-msgstr ""
+msgstr "Odustani"
#. module: mrp_operations
#: model:ir.actions.act_window,help:mrp_operations.mrp_production_wc_action_form
@@ -594,36 +600,41 @@ msgid ""
"latest operation of a manufacturing order, the MO is automatically done and "
"the related products are produced."
msgstr ""
+"Work Orders is the list of operations to be performed for each manufacturing "
+"order. Once you start the first work order of a manufacturing order, the "
+"manufacturing order is automatically marked as started. Once you finish the "
+"latest operation of a manufacturing order, the MO is automatically done and "
+"the related products are produced."
#. module: mrp_operations
#: model:process.node,name:mrp_operations.process_node_startoperation0
msgid "Start Operation"
-msgstr "pokreni operaciju"
+msgstr "Pokreni operaciju"
#. module: mrp_operations
#: view:mrp.production.workcenter.line:0
msgid "Information"
-msgstr "Obavijest"
+msgstr "Informacija"
#. module: mrp_operations
#: model:ir.actions.report.xml,name:mrp_operations.report_wc_barcode
msgid "Work Centers Barcode"
-msgstr ""
+msgstr "Work Centers Barcode"
#. module: mrp_operations
#: constraint:stock.move:0
msgid "You must assign a production lot for this product"
-msgstr ""
+msgstr "Morate pridijeliti lot proizvodnje ovom proizvodu"
#. module: mrp_operations
#: view:mrp.production.workcenter.line:0
msgid "Late"
-msgstr ""
+msgstr "Kasni"
#. module: mrp_operations
#: field:mrp.workorder,delay:0
msgid "Delay"
-msgstr ""
+msgstr "Kašnjenje"
#. module: mrp_operations
#: view:mrp.production.workcenter.line:0
@@ -631,41 +642,41 @@ msgstr ""
#: field:mrp.workorder,production_id:0
#: field:mrp_operations.operation,production_id:0
msgid "Production"
-msgstr ""
+msgstr "Proizvodnja"
#. module: mrp_operations
#: view:mrp.production.workcenter.line:0
msgid "Search Work Orders"
-msgstr ""
+msgstr "Search Work Orders"
#. module: mrp_operations
#: field:mrp_operations.operation,workcenter_id:0
#: model:process.node,name:mrp_operations.process_node_workorder0
msgid "Work Center"
-msgstr ""
+msgstr "Radni centar"
#. module: mrp_operations
#: view:mrp.production.workcenter.line:0
msgid "Real"
-msgstr ""
+msgstr "Realan"
#. module: mrp_operations
#: field:mrp.production.workcenter.line,date_planned:0
msgid "Scheduled Date"
-msgstr ""
+msgstr "Planirani datum"
#. module: mrp_operations
#: field:mrp.production.workcenter.line,product:0
#: view:mrp.workorder:0
#: field:mrp.workorder,product_id:0
msgid "Product"
-msgstr ""
+msgstr "Proizvod"
#. module: mrp_operations
#: view:mrp.workorder:0
#: field:mrp.workorder,total_hours:0
msgid "Total Hours"
-msgstr ""
+msgstr "Uk. sati"
#. module: mrp_operations
#: help:mrp.production,allow_reorder:0
@@ -673,16 +684,18 @@ msgid ""
"Check this to be able to move independently all production orders, without "
"moving dependent ones."
msgstr ""
+"Provjerite mogućnost nezavisnog izvršavanja radnih naloga, bez izvršavanja "
+"ovisnih."
#. module: mrp_operations
#: report:mrp.code.barcode:0
msgid ")"
-msgstr ""
+msgstr ")"
#. module: mrp_operations
#: model:ir.ui.menu,name:mrp_operations.menu_report_mrp_workorders_tree
msgid "Work Order Analysis"
-msgstr ""
+msgstr "Work Order Analysis"
#. module: mrp_operations
#: view:mrp.production:0
@@ -690,59 +703,59 @@ msgstr ""
#: selection:mrp.production.workcenter.line,state:0
#: selection:mrp.workorder,state:0
msgid "Finished"
-msgstr ""
+msgstr "Dovršeno"
#. module: mrp_operations
#: field:mrp.production.workcenter.line,uom:0
msgid "UOM"
-msgstr ""
+msgstr "JM"
#. module: mrp_operations
#: view:mrp.production.workcenter.line:0
msgid "Hours by Work Center"
-msgstr ""
+msgstr "Hours by Work Center"
#. module: mrp_operations
#: field:mrp.production.workcenter.line,delay:0
msgid "Working Hours"
-msgstr ""
+msgstr "Radno vrijeme(od-do)"
#. module: mrp_operations
#: field:mrp.production.workcenter.line,date_finished:0
#: field:mrp.production.workcenter.line,date_planned_end:0
#: field:mrp_operations.operation,date_finished:0
msgid "End Date"
-msgstr ""
+msgstr "Završni Datum"
#. module: mrp_operations
#: selection:mrp.workorder,month:0
msgid "February"
-msgstr ""
+msgstr "Veljača"
#. module: mrp_operations
#: model:process.transition,name:mrp_operations.process_transition_startcanceloperation0
msgid "Operation cancelled"
-msgstr ""
+msgstr "Operacija otkazana"
#. module: mrp_operations
#: model:process.node,note:mrp_operations.process_node_startoperation0
msgid "Start the operation."
-msgstr ""
+msgstr "Start the operation."
#. module: mrp_operations
#: selection:mrp.workorder,month:0
msgid "April"
-msgstr ""
+msgstr "Travanj"
#. module: mrp_operations
#: model:process.transition,name:mrp_operations.process_transition_startdoneoperation0
msgid "Operation done"
-msgstr ""
+msgstr "Operation done"
#. module: mrp_operations
#: view:mrp.workorder:0
msgid "#Line Orders"
-msgstr ""
+msgstr "#Line Orders"
#. module: mrp_operations
#: model:process.transition,note:mrp_operations.process_transition_startdoneoperation0
@@ -750,32 +763,34 @@ msgid ""
"When the operation is finished, the operator updates the system by finishing "
"the work order."
msgstr ""
+"When the operation is finished, the operator updates the system by finishing "
+"the work order."
#. module: mrp_operations
#: selection:mrp.workorder,month:0
msgid "May"
-msgstr ""
+msgstr "Svibanj"
#. module: mrp_operations
#: model:process.transition,name:mrp_operations.process_transition_workstartoperation0
msgid "Details of the work order"
-msgstr ""
+msgstr "Detalji radnog naloga"
#. module: mrp_operations
#: field:mrp.production.workcenter.line,production_state:0
msgid "Production State"
-msgstr ""
+msgstr "Stanje proizvodnje"
#. module: mrp_operations
#: view:mrp.workorder:0
#: field:mrp.workorder,year:0
msgid "Year"
-msgstr ""
+msgstr "Godina"
#. module: mrp_operations
#: view:mrp.production.workcenter.line:0
msgid "Duration"
-msgstr ""
+msgstr "Trajanje"
#. module: mrp_operations
#: constraint:mrp.production:0
@@ -785,7 +800,7 @@ msgstr ""
#. module: mrp_operations
#: constraint:stock.move:0
msgid "You try to assign a lot which is not from the same product"
-msgstr ""
+msgstr "Pokušavate pridružiti lot koji nije iz istog proizvoda"
#~ msgid ""
#~ "The Object name must start with x_ and not contain any special character !"
diff --git a/addons/mrp_operations/mrp_operations.py b/addons/mrp_operations/mrp_operations.py
index 7dc93731b03..e6f5aa00f28 100644
--- a/addons/mrp_operations/mrp_operations.py
+++ b/addons/mrp_operations/mrp_operations.py
@@ -86,10 +86,10 @@ class mrp_production_workcenter_line(osv.osv):
_order = "sequence, date_planned"
_columns = {
- 'state': fields.selection([('draft','Draft'),('startworking', 'In Progress'),('pause','Pause'),('cancel','Cancelled'),('done','Finished')],'State', readonly=True,
+ 'state': fields.selection([('draft','Draft'),('startworking', 'In Progress'),('pause','Pending'),('cancel','Cancelled'),('done','Finished')],'State', readonly=True,
help="* When a work order is created it is set in 'Draft' state.\n" \
"* When user sets work order in start mode that time it will be set in 'In Progress' state.\n" \
- "* When work order is in running mode, during that time if user wants to stop or to make changes in order then can set in 'Pause' state.\n" \
+ "* When work order is in running mode, during that time if user wants to stop or to make changes in order then can set in 'Pending' state.\n" \
"* When the user cancels the work order it will be set in 'Canceled' state.\n" \
"* When order is completely processed that time it is set in 'Finished' state."),
'date_start_date': fields.function(_get_date_date, string='Start Date', type='date'),
@@ -552,6 +552,13 @@ class mrp_operations_operation(osv.osv):
return super(mrp_operations_operation, self).create(cr, uid, vals, context=context)
+ def initialize_workflow_instance(self, cr, uid, context=None):
+ wf_service = netsvc.LocalService("workflow")
+ line_ids = self.pool.get('mrp.production.workcenter.line').search(cr, uid, [], context=context)
+ for line_id in line_ids:
+ wf_service.trg_create(uid, 'mrp.production.workcenter.line', line_id, cr)
+ return True
+
_columns={
'production_id':fields.many2one('mrp.production','Production',required=True),
'workcenter_id':fields.many2one('mrp.workcenter','Work Center',required=True),
diff --git a/addons/mrp_operations/mrp_operations_view.xml b/addons/mrp_operations/mrp_operations_view.xml
index 377a57d6121..e7decebbf4b 100644
--- a/addons/mrp_operations/mrp_operations_view.xml
+++ b/addons/mrp_operations/mrp_operations_view.xml
@@ -16,7 +16,7 @@
-
+
@@ -30,13 +30,12 @@
-
+
-
+
-
@@ -58,11 +57,9 @@
-
-
-
+
@@ -116,7 +113,7 @@
-
+
diff --git a/addons/mrp_operations/mrp_operations_workflow_instance.xml b/addons/mrp_operations/mrp_operations_workflow_instance.xml
new file mode 100644
index 00000000000..b8239c18ccf
--- /dev/null
+++ b/addons/mrp_operations/mrp_operations_workflow_instance.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/addons/mrp_operations/security/ir.model.access.csv b/addons/mrp_operations/security/ir.model.access.csv
index c27d8fd66e5..54bfe482edb 100644
--- a/addons/mrp_operations/security/ir.model.access.csv
+++ b/addons/mrp_operations/security/ir.model.access.csv
@@ -1,10 +1,10 @@
-"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
-"access_mrp_operations_operation_code","operations.operation.code","model_mrp_operations_operation_code","mrp.group_mrp_user",1,1,1,1
-"access_mrp_operations_operation_code_manager","operations.operation.code.manager","model_mrp_operations_operation_code","mrp.group_mrp_manager",1,0,0,0
-"access_mrp_operations_operation","operations.operation","model_mrp_operations_operation","mrp.group_mrp_user",1,1,1,1
-"access_mrp_operations_operation_manager","operations.operation.manager","model_mrp_operations_operation","mrp.group_mrp_manager",1,0,0,0
-"access_mrp_production_user","mrp_production_user","model_mrp_production","mrp.group_mrp_user",1,1,1,1
-"access_mrp_production_manager","mrp_production_manager","model_mrp_production","mrp.group_mrp_manager",1,0,0,0
-"access_mrp_production_workcenter_line","mrp.production.workcenter.line","mrp.model_mrp_production_workcenter_line","mrp.group_mrp_user",1,1,1,1
-"access_mrp_production_workcenter_line_manager","mrp.production.workcenter.line.manager","mrp.model_mrp_production_workcenter_line","mrp.group_mrp_manager",1,0,0,0
-"access_mrp_workorder_manager","mrp.workorder.manager","model_mrp_workorder","mrp.group_mrp_manager",1,1,1,1
+id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
+access_mrp_operations_operation_code,operations.operation.code,model_mrp_operations_operation_code,mrp.group_mrp_user,1,1,1,1
+access_mrp_operations_operation_code_manager,operations.operation.code.manager,model_mrp_operations_operation_code,mrp.group_mrp_manager,1,0,0,0
+access_mrp_operations_operation,operations.operation,model_mrp_operations_operation,mrp.group_mrp_user,1,1,1,1
+access_mrp_operations_operation_manager,operations.operation.manager,model_mrp_operations_operation,mrp.group_mrp_manager,1,0,0,0
+access_mrp_production_user,mrp_production_user,model_mrp_production,mrp.group_mrp_user,1,1,1,1
+access_mrp_production_manager,mrp_production_manager,model_mrp_production,mrp.group_mrp_manager,1,0,0,0
+access_mrp_production_workcenter_line,mrp.production.workcenter.line,mrp.model_mrp_production_workcenter_line,mrp.group_mrp_user,1,1,1,1
+access_mrp_production_workcenter_line_manager,mrp.production.workcenter.line.manager,mrp.model_mrp_production_workcenter_line,mrp.group_mrp_manager,1,0,0,0
+access_mrp_workorder_manager,mrp.workorder.manager,model_mrp_workorder,mrp.group_mrp_manager,1,1,1,1
diff --git a/addons/mrp_repair/__openerp__.py b/addons/mrp_repair/__openerp__.py
index a1f060cf7c3..39f5a51e92c 100644
--- a/addons/mrp_repair/__openerp__.py
+++ b/addons/mrp_repair/__openerp__.py
@@ -21,7 +21,7 @@
{
- 'name': 'Repairs',
+ 'name': 'Repairs Management',
'version': '1.0',
'category': 'Manufacturing',
'description': """
diff --git a/addons/mrp_repair/i18n/hr.po b/addons/mrp_repair/i18n/hr.po
index f70205f2e7f..3a3a089e0bf 100644
--- a/addons/mrp_repair/i18n/hr.po
+++ b/addons/mrp_repair/i18n/hr.po
@@ -7,19 +7,19 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2011-01-11 11:15+0000\n"
-"PO-Revision-Date: 2009-02-03 06:24+0000\n"
-"Last-Translator: <>\n"
+"PO-Revision-Date: 2011-12-12 12:24+0000\n"
+"Last-Translator: Tomislav Bosnjakovic \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-11-05 05:39+0000\n"
-"X-Generator: Launchpad (build 14231)\n"
+"X-Launchpad-Export-Date: 2011-12-13 05:01+0000\n"
+"X-Generator: Launchpad (build 14458)\n"
#. module: mrp_repair
#: view:mrp.repair:0
msgid "Fees Line"
-msgstr ""
+msgstr "Fees Line"
#. module: mrp_repair
#: help:mrp.repair,state:0
@@ -35,11 +35,18 @@ msgid ""
"* The 'Done' state is set when repairing is completed. \n"
"* The 'Cancelled' state is used when user cancel repair order."
msgstr ""
+" * 'Nacrt' je početno stanje naloga. \n"
+"* 'Potvrđen' je slijedeće stanje \n"
+"* 'U tijeku' označava početak aktivnosti na popravku. \n"
+"* 'Za fakturiranje' stanje koje se koristi za generiranje računa prije ili "
+"poslije izvršenja naloga za popravak. \n"
+"* 'Izvršen' nalog za popravak je izvršen \n"
+"* 'Otkazan' nalog za popravak je otkazan."
#. module: mrp_repair
#: field:mrp.repair.line,move_id:0
msgid "Inventory Move"
-msgstr ""
+msgstr "Skladišni prijenos"
#. module: mrp_repair
#: model:ir.actions.act_window,help:mrp_repair.action_repair_order_tree
@@ -50,16 +57,21 @@ msgid ""
"date on the production lot in order to know if whether the repair should be "
"invoiced to the customer or not."
msgstr ""
+"Nalozi za popravak olakšavaju upravljanje post-prodajnim aktivnostima "
+"popravaka i servisa unutar i nakon jamstvenog roka. U nalogu za popravak "
+"navodite komponente koje treba odbaciti, dodati ili zamijeniti, bilježite "
+"vrijeme potrebno za popravak. Nalog koristi datume jamstva kako bi znao "
+"treba li fakturirati nalog kupcu ili ne."
#. module: mrp_repair
#: view:mrp.repair:0
msgid "Group By..."
-msgstr ""
+msgstr "Grupiraj po..."
#. module: mrp_repair
#: view:mrp.repair:0
msgid "Recreate Invoice"
-msgstr ""
+msgstr "Ponovo izradi račun"
#. module: mrp_repair
#: help:mrp.repair,deliver_bool:0
@@ -69,28 +81,32 @@ msgid ""
"that you can select the locations in the Info tab, if you have the extended "
"view."
msgstr ""
+"Check this box if you want to manage the delivery once the product is "
+"repaired. If cheked, it will create a picking with selected product. Note "
+"that you can select the locations in the Info tab, if you have the extended "
+"view."
#. module: mrp_repair
#: model:ir.actions.act_window,name:mrp_repair.action_cancel_repair
#: view:mrp.repair.cancel:0
msgid "Cancel Repair Order"
-msgstr ""
+msgstr "Otkaži nalog za popravak"
#. module: mrp_repair
#: field:mrp.repair.fee,to_invoice:0
#: field:mrp.repair.line,to_invoice:0
msgid "To Invoice"
-msgstr ""
+msgstr "Za fakturiranje"
#. module: mrp_repair
#: report:repair.order:0
msgid "Printing Date"
-msgstr ""
+msgstr "Printing Date"
#. module: mrp_repair
#: field:mrp.repair.make_invoice,group:0
msgid "Group by partner invoice address"
-msgstr ""
+msgstr "Grupiraj po adresi računa"
#. module: mrp_repair
#: code:addons/mrp_repair/mrp_repair.py:430
@@ -101,45 +117,45 @@ msgstr ""
#. module: mrp_repair
#: view:mrp.repair:0
msgid "Set to Draft"
-msgstr ""
+msgstr "Postavi na nacrt"
#. module: mrp_repair
#: selection:mrp.repair,state:0
msgid "Invoice Exception"
-msgstr ""
+msgstr "Iznimka računa"
#. module: mrp_repair
#: field:mrp.repair,address_id:0
msgid "Delivery Address"
-msgstr ""
+msgstr "Adresa dostave"
#. module: mrp_repair
#: model:ir.actions.act_window,name:mrp_repair.act_mrp_repair_invoice
#: model:ir.model,name:mrp_repair.model_mrp_repair_make_invoice
#: view:mrp.repair:0
msgid "Make Invoice"
-msgstr ""
+msgstr "Kreiraj račun"
#. module: mrp_repair
#: field:mrp.repair.fee,price_subtotal:0
#: field:mrp.repair.line,price_subtotal:0
msgid "Subtotal"
-msgstr ""
+msgstr "Podzbroj"
#. module: mrp_repair
#: report:repair.order:0
msgid "Invoice address :"
-msgstr ""
+msgstr "Adresa računa :"
#. module: mrp_repair
#: field:mrp.repair,guarantee_limit:0
msgid "Guarantee limit"
-msgstr ""
+msgstr "Limit jamstva"
#. module: mrp_repair
#: view:mrp.repair:0
msgid "Notes"
-msgstr ""
+msgstr "Bilješke"
#. module: mrp_repair
#: model:ir.module.module,description:mrp_repair.module_meta_information
@@ -160,12 +176,12 @@ msgstr ""
#: field:mrp.repair.fee,tax_id:0
#: field:mrp.repair.line,tax_id:0
msgid "Taxes"
-msgstr ""
+msgstr "Porezi"
#. module: mrp_repair
#: report:repair.order:0
msgid "Net Total :"
-msgstr ""
+msgstr "Net Total :"
#. module: mrp_repair
#: code:addons/mrp_repair/mrp_repair.py:430
@@ -176,17 +192,17 @@ msgstr ""
#. module: mrp_repair
#: report:repair.order:0
msgid "VAT"
-msgstr ""
+msgstr "PDV"
#. module: mrp_repair
#: view:mrp.repair:0
msgid "Operations"
-msgstr ""
+msgstr "Operations"
#. module: mrp_repair
#: field:mrp.repair,move_id:0
msgid "Move"
-msgstr ""
+msgstr "Temeljnica"
#. module: mrp_repair
#: code:addons/mrp_repair/mrp_repair.py:365
@@ -198,28 +214,28 @@ msgstr ""
#: model:ir.actions.act_window,name:mrp_repair.action_repair_order_tree
#: model:ir.ui.menu,name:mrp_repair.menu_repair_order
msgid "Repair Orders"
-msgstr ""
+msgstr "Nalozi za popravak"
#. module: mrp_repair
#: model:ir.actions.report.xml,name:mrp_repair.report_mrp_repair
msgid "Quotation / Order"
-msgstr ""
+msgstr "Ponuda / Nalog"
#. module: mrp_repair
#: view:mrp.repair:0
msgid "Extra Info"
-msgstr ""
+msgstr "Dodatni podaci"
#. module: mrp_repair
#: field:mrp.repair.fee,repair_id:0
#: field:mrp.repair.line,repair_id:0
msgid "Repair Order Reference"
-msgstr ""
+msgstr "Nalog za popravak br."
#. module: mrp_repair
#: selection:mrp.repair.line,state:0
msgid "Draft"
-msgstr ""
+msgstr "Nacrt"
#. module: mrp_repair
#: code:addons/mrp_repair/mrp_repair.py:379
@@ -232,49 +248,49 @@ msgstr ""
#: selection:mrp.repair,state:0
#: selection:mrp.repair.line,state:0
msgid "Confirmed"
-msgstr ""
+msgstr "Potvrđeno"
#. module: mrp_repair
#: view:mrp.repair:0
msgid "Repairs order"
-msgstr ""
+msgstr "Nalozi za popravak"
#. module: mrp_repair
#: report:repair.order:0
msgid "Repair Order N° :"
-msgstr ""
+msgstr "Nalog za popravak N° :"
#. module: mrp_repair
#: field:mrp.repair,prodlot_id:0
#: field:mrp.repair.line,prodlot_id:0
#: report:repair.order:0
msgid "Lot Number"
-msgstr ""
+msgstr "Lot Number"
#. module: mrp_repair
#: field:mrp.repair,fees_lines:0
msgid "Fees Lines"
-msgstr ""
+msgstr "Fees Lines"
#. module: mrp_repair
#: field:mrp.repair.line,type:0
msgid "Type"
-msgstr ""
+msgstr "Vrsta"
#. module: mrp_repair
#: report:repair.order:0
msgid "Fees Line(s)"
-msgstr ""
+msgstr "Fees Line(s)"
#. module: mrp_repair
#: selection:mrp.repair,state:0
msgid "To be Invoiced"
-msgstr ""
+msgstr "Za fakturiranje"
#. module: mrp_repair
#: report:repair.order:0
msgid "Shipping address :"
-msgstr ""
+msgstr "Shipping address :"
#. module: mrp_repair
#: code:addons/mrp_repair/mrp_repair.py:379
@@ -287,7 +303,7 @@ msgstr ""
#. module: mrp_repair
#: field:mrp.repair.line,product_uom_qty:0
msgid "Quantity (UoM)"
-msgstr ""
+msgstr "Količina (JM)"
#. module: mrp_repair
#: help:mrp.repair.line,state:0
@@ -300,11 +316,17 @@ msgid ""
" \n"
"* The 'Cancelled' state is set automatically when user cancel repair order."
msgstr ""
+" * Stanje 'Nacrt' se postavlja automatski prilikom upisa/inicijalnog "
+"kreiranja naloga za popravak. \n"
+"* Stanje 'Potvrđen' označava nalog koji treba izvršiti. \n"
+"* Izvršeni nalozi su u stanju 'Izvršen' . \n"
+"* Nalozi u stanju 'Otkazan' se neće izvršavati i ostaju u sistemu radi "
+"evidencije."
#. module: mrp_repair
#: report:repair.order:0
msgid "Total :"
-msgstr ""
+msgstr "Ukupno :"
#. module: mrp_repair
#: view:mrp.repair.cancel:0
@@ -312,17 +334,19 @@ msgid ""
"This operation will cancel the Repair process, but will not cancel it's "
"Invoice. Do you want to continue?"
msgstr ""
+"Ova operacija će otkazati proces popravka, ali neće otkazati pripadajući "
+"račun. Nastaviti?"
#. module: mrp_repair
#: field:mrp.repair,pricelist_id:0
msgid "Pricelist"
-msgstr ""
+msgstr "Pricelist"
#. module: mrp_repair
#: view:mrp.repair:0
#: field:mrp.repair,quotation_notes:0
msgid "Quotation Notes"
-msgstr ""
+msgstr "Quotation Notes"
#. module: mrp_repair
#: code:addons/mrp_repair/wizard/cancel_repair.py:49
@@ -333,34 +357,34 @@ msgstr ""
#. module: mrp_repair
#: view:mrp.repair:0
msgid "Search Reair Orders"
-msgstr ""
+msgstr "Search Reair Orders"
#. module: mrp_repair
#: report:repair.order:0
msgid "(Add)"
-msgstr ""
+msgstr "(Add)"
#. module: mrp_repair
#: model:ir.model,name:mrp_repair.model_mrp_repair_line
#: view:mrp.repair:0
msgid "Repair Line"
-msgstr ""
+msgstr "Stavka popravka"
#. module: mrp_repair
#: view:mrp.repair:0
#: field:mrp.repair,partner_id:0
msgid "Partner"
-msgstr ""
+msgstr "Partner"
#. module: mrp_repair
#: field:mrp.repair,invoice_method:0
msgid "Invoice Method"
-msgstr ""
+msgstr "Metoda računa"
#. module: mrp_repair
#: field:mrp.repair,repaired:0
msgid "Repaired"
-msgstr ""
+msgstr "Popravljeno"
#. module: mrp_repair
#: model:ir.module.module,shortdesc:mrp_repair.module_meta_information
@@ -371,145 +395,145 @@ msgstr ""
#: field:mrp.repair.fee,invoice_line_id:0
#: field:mrp.repair.line,invoice_line_id:0
msgid "Invoice Line"
-msgstr ""
+msgstr "Stavka računa"
#. module: mrp_repair
#: selection:mrp.repair.line,state:0
msgid "Canceled"
-msgstr ""
+msgstr "Otkazano"
#. module: mrp_repair
#: selection:mrp.repair,invoice_method:0
msgid "Before Repair"
-msgstr ""
+msgstr "Prije popravka"
#. module: mrp_repair
#: field:mrp.repair,location_id:0
msgid "Current Location"
-msgstr ""
+msgstr "Trenutna lokacija"
#. module: mrp_repair
#: view:mrp.repair.cancel:0
msgid "Yes"
-msgstr ""
+msgstr "Da"
#. module: mrp_repair
#: field:mrp.repair,invoiced:0
#: field:mrp.repair.fee,invoiced:0
#: field:mrp.repair.line,invoiced:0
msgid "Invoiced"
-msgstr ""
+msgstr "Fakturirano"
#. module: mrp_repair
#: view:mrp.repair.cancel:0
msgid "No"
-msgstr ""
+msgstr "Ne"
#. module: mrp_repair
#: view:mrp.repair.make_invoice:0
msgid "Create invoices"
-msgstr ""
+msgstr "Kreiraj račune"
#. module: mrp_repair
#: report:repair.order:0
msgid "(Remove)"
-msgstr ""
+msgstr "(Remove)"
#. module: mrp_repair
#: selection:mrp.repair.line,type:0
msgid "Add"
-msgstr ""
+msgstr "Dodaj"
#. module: mrp_repair
#: view:mrp.repair.make_invoice:0
msgid "Do you really want to create the invoice(s) ?"
-msgstr ""
+msgstr "Kreirati račun(e) ?"
#. module: mrp_repair
#: field:mrp.repair,name:0
msgid "Repair Reference"
-msgstr ""
+msgstr "Popravak br."
#. module: mrp_repair
#: model:ir.model,name:mrp_repair.model_mrp_repair
msgid "Repair Order"
-msgstr ""
+msgstr "Nalog za popravak"
#. module: mrp_repair
#: selection:mrp.repair,state:0
msgid "Under Repair"
-msgstr ""
+msgstr "U popravku"
#. module: mrp_repair
#: view:mrp.repair:0
msgid "Ready To Repair"
-msgstr ""
+msgstr "Spremno za popravak"
#. module: mrp_repair
#: field:mrp.repair,amount_untaxed:0
msgid "Untaxed Amount"
-msgstr ""
+msgstr "Osnovica"
#. module: mrp_repair
#: report:repair.order:0
msgid "Guarantee Limit"
-msgstr ""
+msgstr "Guarantee Limit"
#. module: mrp_repair
#: field:mrp.repair,default_address_id:0
msgid "unknown"
-msgstr ""
+msgstr "nepoznato"
#. module: mrp_repair
#: field:mrp.repair,product_id:0
#: report:repair.order:0
msgid "Product to Repair"
-msgstr ""
+msgstr "Proizvodi za popravak"
#. module: mrp_repair
#: report:repair.order:0
msgid "N° :"
-msgstr ""
+msgstr "N° :"
#. module: mrp_repair
#: help:mrp.repair,pricelist_id:0
msgid "The pricelist comes from the selected partner, by default."
-msgstr ""
+msgstr "Cjenik odabranog partnera."
#. module: mrp_repair
#: view:mrp.repair:0
msgid "Date"
-msgstr ""
+msgstr "Datum"
#. module: mrp_repair
#: model:ir.model,name:mrp_repair.model_mrp_repair_fee
msgid "Repair Fees Line"
-msgstr ""
+msgstr "Stavka naknade popravka"
#. module: mrp_repair
#: selection:mrp.repair,state:0
msgid "Quotation"
-msgstr ""
+msgstr "Quotation"
#. module: mrp_repair
#: view:mrp.repair:0
msgid "Compute"
-msgstr ""
+msgstr "Izračunaj"
#. module: mrp_repair
#: view:mrp.repair:0
msgid "Confirm Repair"
-msgstr ""
+msgstr "Potvrdi popravak"
#. module: mrp_repair
#: report:repair.order:0
msgid "Repair Quotation"
-msgstr ""
+msgstr "Ponuda za popravak"
#. module: mrp_repair
#: view:mrp.repair:0
msgid "End Repair"
-msgstr ""
+msgstr "Završi popravak"
#. module: mrp_repair
#: code:addons/mrp_repair/mrp_repair.py:408
@@ -521,43 +545,43 @@ msgstr ""
#. module: mrp_repair
#: view:mrp.repair:0
msgid "Quotations"
-msgstr ""
+msgstr "Ponude"
#. module: mrp_repair
#: field:mrp.repair.fee,product_uom_qty:0
#: report:repair.order:0
msgid "Quantity"
-msgstr ""
+msgstr "Količina"
#. module: mrp_repair
#: view:mrp.repair:0
msgid "Start Repair"
-msgstr ""
+msgstr "Pokreni popravak"
#. module: mrp_repair
#: view:mrp.repair:0
#: field:mrp.repair,state:0
#: field:mrp.repair.line,state:0
msgid "State"
-msgstr ""
+msgstr "Stanje"
#. module: mrp_repair
#: view:mrp.repair:0
msgid "Qty"
-msgstr ""
+msgstr "Kol."
#. module: mrp_repair
#: field:mrp.repair.fee,price_unit:0
#: field:mrp.repair.line,price_unit:0
#: report:repair.order:0
msgid "Unit Price"
-msgstr ""
+msgstr "Jedinična cijena"
#. module: mrp_repair
#: selection:mrp.repair,state:0
#: selection:mrp.repair.line,state:0
msgid "Done"
-msgstr ""
+msgstr "Izvršeno"
#. module: mrp_repair
#: help:mrp.repair,guarantee_limit:0
@@ -567,42 +591,46 @@ msgid ""
"operation and fee you will add will be set as 'not to invoiced' by default. "
"Note that you can change manually afterwards."
msgstr ""
+"Jamstveni limit se računa kao: datum zadnjeg prijenosa + jamstvo definirano "
+"na proizvodu. Ako je trenutni datum unutar jamstva svaka operacija i naknada "
+"koju dodate biti će označena sa 'nije za fakturiranje'. Naravno, to možete "
+"ručno promijeniti prema potrebi."
#. module: mrp_repair
#: field:mrp.repair,invoice_id:0
msgid "Invoice"
-msgstr ""
+msgstr "Račun"
#. module: mrp_repair
#: view:mrp.repair:0
msgid "Fees"
-msgstr ""
+msgstr "Fees"
#. module: mrp_repair
#: selection:mrp.repair,state:0
#: view:mrp.repair.make_invoice:0
msgid "Cancel"
-msgstr ""
+msgstr "Odustani"
#. module: mrp_repair
#: field:mrp.repair.line,location_dest_id:0
msgid "Dest. Location"
-msgstr ""
+msgstr "Lokacija isporuke"
#. module: mrp_repair
#: report:repair.order:0
msgid "Operation Line(s)"
-msgstr ""
+msgstr "Stavka(e) operacije"
#. module: mrp_repair
#: view:mrp.repair:0
msgid "History"
-msgstr ""
+msgstr "Povijest"
#. module: mrp_repair
#: field:mrp.repair,location_dest_id:0
msgid "Delivery Location"
-msgstr ""
+msgstr "Lokacija isporuke"
#. module: mrp_repair
#: help:mrp.repair,invoice_method:0
@@ -611,71 +639,73 @@ msgid ""
"selected is different from 'No Invoice', it also allow you to select the "
"pricelist and invoicing address."
msgstr ""
+"Ako odaberete različito od 'Ne fakturirati', možete odabrati cjenik i adresu "
+"računa."
#. module: mrp_repair
#: view:mrp.repair.make_invoice:0
msgid "Create Invoice"
-msgstr ""
+msgstr "Kreiraj račun"
#. module: mrp_repair
#: field:mrp.repair.fee,name:0
#: field:mrp.repair.line,name:0
#: report:repair.order:0
msgid "Description"
-msgstr ""
+msgstr "Opis"
#. module: mrp_repair
#: field:mrp.repair,operations:0
msgid "Operation Lines"
-msgstr ""
+msgstr "Stavke operacije"
#. module: mrp_repair
#: view:mrp.repair:0
msgid "invoiced"
-msgstr ""
+msgstr "fakturirano"
#. module: mrp_repair
#: view:mrp.repair:0
#: field:mrp.repair.fee,product_id:0
#: field:mrp.repair.line,product_id:0
msgid "Product"
-msgstr ""
+msgstr "Proizvod"
#. module: mrp_repair
#: view:mrp.repair:0
msgid "Invoice Corrected"
-msgstr ""
+msgstr "Račun korigiran"
#. module: mrp_repair
#: report:repair.order:0
msgid "Price"
-msgstr ""
+msgstr "Cijena"
#. module: mrp_repair
#: field:mrp.repair,deliver_bool:0
msgid "Deliver"
-msgstr ""
+msgstr "Isporuči"
#. module: mrp_repair
#: view:mrp.repair:0
#: field:mrp.repair,internal_notes:0
msgid "Internal Notes"
-msgstr ""
+msgstr "Interne bilješke"
#. module: mrp_repair
#: report:repair.order:0
msgid "Taxes:"
-msgstr ""
+msgstr "Porezi:"
#. module: mrp_repair
#: field:mrp.repair,picking_id:0
msgid "Picking"
-msgstr ""
+msgstr "Skladišnice"
#. module: mrp_repair
#: view:mrp.repair:0
msgid "Untaxed amount"
-msgstr ""
+msgstr "Iznos bez poreza"
#. module: mrp_repair
#: code:addons/mrp_repair/wizard/cancel_repair.py:41
@@ -692,75 +722,75 @@ msgstr ""
#. module: mrp_repair
#: view:mrp.repair:0
msgid "Total amount"
-msgstr ""
+msgstr "Ukupni iznos"
#. module: mrp_repair
#: view:mrp.repair:0
msgid "UoM"
-msgstr ""
+msgstr "JM"
#. module: mrp_repair
#: selection:mrp.repair.line,type:0
msgid "Remove"
-msgstr ""
+msgstr "Remove"
#. module: mrp_repair
#: field:mrp.repair.fee,product_uom:0
#: field:mrp.repair.line,product_uom:0
msgid "Product UoM"
-msgstr ""
+msgstr "JM Proizvoda"
#. module: mrp_repair
#: field:mrp.repair,partner_invoice_id:0
msgid "Invoicing Address"
-msgstr ""
+msgstr "Adresa za račun"
#. module: mrp_repair
#: selection:mrp.repair,invoice_method:0
msgid "After Repair"
-msgstr ""
+msgstr "Poslije popravka"
#. module: mrp_repair
#: view:mrp.repair:0
msgid "Invoicing"
-msgstr ""
+msgstr "Fakturiranje"
#. module: mrp_repair
#: field:mrp.repair.line,location_id:0
msgid "Source Location"
-msgstr ""
+msgstr "Izvorna lokacija"
#. module: mrp_repair
#: model:ir.model,name:mrp_repair.model_mrp_repair_cancel
#: view:mrp.repair:0
msgid "Cancel Repair"
-msgstr ""
+msgstr "Otkaži popravak"
#. module: mrp_repair
#: selection:mrp.repair,invoice_method:0
msgid "No Invoice"
-msgstr ""
+msgstr "Nema računa"
#. module: mrp_repair
#: view:mrp.repair:0
msgid "States"
-msgstr ""
+msgstr "Stanja"
#. module: mrp_repair
#: help:mrp.repair,partner_id:0
msgid ""
"This field allow you to choose the parner that will be invoiced and delivered"
-msgstr ""
+msgstr "Odaberite partnera isporuke i računa"
#. module: mrp_repair
#: field:mrp.repair,amount_total:0
msgid "Total"
-msgstr ""
+msgstr "Ukupno"
#. module: mrp_repair
#: selection:mrp.repair,state:0
msgid "Ready to Repair"
-msgstr ""
+msgstr "Spremno za popravak"
#. module: mrp_repair
#: code:addons/mrp_repair/mrp_repair.py:365
diff --git a/addons/mrp_repair/report/order.rml b/addons/mrp_repair/report/order.rml
index b72f3d7a130..ecec220edbb 100644
--- a/addons/mrp_repair/report/order.rml
+++ b/addons/mrp_repair/report/order.rml
@@ -189,21 +189,13 @@
Shipping address :
[[ o.partner_id.name ]]
- [[ o.address_id.street ]]
- [[ o.address_id.street2 or removeParentNode('para') ]]
- [[ o.address_id.city or '' ]] [[ o.address_id.zip or '' ]]
- [[ (o.address_id.state_id and o.address_id.state_id.name) or removeParentNode('para') ]]
- [[ o.address_id.country_id and o.address_id.country_id.name or '' ]]
+ [[ o.address_id and display_address(o.address_id) ]]
Invoice address :
[[ o.partner_id and o.partner_id.property_payment_term.name ]]
- [[ o.partner_invoice_id.street ]]
- [[ o.partner_invoice_id.street2 or removeParentNode('para') ]]
- [[ o.partner_invoice_id.zip or '' ]] [[ o.partner_invoice_id.city or '' ]]
- [[ (o.partner_invoice_id.state_id and o.partner_invoice_id.state_id.name) or removeParentNode('para') ]]
- [[ o.partner_invoice_id.country_id and o.partner_invoice_id.country_id.name or '' ]]
+ [[ o.partner_invoice_id and display_address(o.partner_invoice_id) ]]
@@ -212,11 +204,7 @@
[[ o.partner_id.name or removeParentNode('para') ]]
- [[ o.default_address_id and o.default_address_id.street or removeParentNode('para') ]]
- [[ o.default_address_id and o.default_address_id.street2 or removeParentNode('para') ]]
- [[ o.default_address_id and o.default_address_id.zip or removeParentNode('para') ]][[ o.default_address_id and o.default_address_id.city or removeParentNode('para') ]]
- [[ o.default_address_id and o.default_address_id.state_id and o.default_address_id.state_id.name or removeParentNode('para') ]]
- [[ o.default_address_id and o.default_address_id.country_id and o.default_address_id.country_id.name or removeParentNode('para') ]]
+ [[ o.default_address_id and display_address(o.default_address_id) ]]
diff --git a/addons/mrp_repair/security/ir.model.access.csv b/addons/mrp_repair/security/ir.model.access.csv
index b7f0c156fb9..ae6e3e06292 100644
--- a/addons/mrp_repair/security/ir.model.access.csv
+++ b/addons/mrp_repair/security/ir.model.access.csv
@@ -1,29 +1,29 @@
-"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
-"access_mrp_repair_user","MRP Repair user","model_mrp_repair","stock.group_stock_user",1,0,0,0
-"access_mrp_repair_manager","MRP Repair manager","model_mrp_repair","stock.group_stock_manager",1,1,1,1
-"access_mrp_repair_line_user","MRP Repair Line user","model_mrp_repair_line","stock.group_stock_user",1,0,0,0
-"access_mrp_repair_line_manager","MRP Repair Line manager","model_mrp_repair_line","stock.group_stock_manager",1,1,1,1
-"access_mrp_repair_fee_user","MRP Repair Fee user","model_mrp_repair_fee","stock.group_stock_user",1,1,1,1
-"access_mrp_repair_fee_manager","MRP Repair Fee manager","model_mrp_repair_fee","stock.group_stock_manager",1,0,0,0
-"access_mrp_repair_user","MRP Repair user","model_mrp_repair","mrp.group_mrp_user",1,1,1,1
-"access_mrp_repair_manager","MRP Repair manager","model_mrp_repair","mrp.group_mrp_manager",1,0,0,0
-"access_product_pricelist_manager","product.pricelist manager","product.model_product_pricelist","mrp.group_mrp_manager",1,0,0,0
-"access_product_pricelist_user","product.pricelist user","product.model_product_pricelist","mrp.group_mrp_user",1,1,1,1
-"access_stock_production_lot_user","stock.production.lot user","stock.model_stock_production_lot","mrp.group_mrp_user",1,1,1,1
-"access_stock_production_lot_manager","stock.production.lot manager","stock.model_stock_production_lot","mrp.group_mrp_manager",1,0,0,0
-"access_mrp_repair_line_user","mrp.repair.line user","model_mrp_repair_line","mrp.group_mrp_user",1,1,1,1
-"access_mrp_repair_line_manager","mrp.repair.line manager","model_mrp_repair_line","mrp.group_mrp_manager",1,0,0,0
-"access_stock_production_lot_revision_manager","stock.production.lot.revision manager","stock.model_stock_production_lot_revision","mrp.group_mrp_manager",1,0,0,0
-"access_stock_production_lot_revision_user","stock.production.lot.revision user","stock.model_stock_production_lot_revision","mrp.group_mrp_user",1,1,1,1
-"access_product_price_type_manager","product.price.type manager","product.model_product_price_type","mrp.group_mrp_manager",1,0,0,0
-"access_product_price_type_user","product.price.type","product.model_product_price_type","mrp.group_mrp_user",1,1,1,1
-"access_account_tax_user","account.tax","account.model_account_tax","mrp.group_mrp_user",1,1,1,1
-"access_account_tax_manager","account.tax manager","account.model_account_tax","mrp.group_mrp_manager",1,0,0,0
-"access_mrp_repair_fee_user_mrp","MRP Repair Fee user mrp","model_mrp_repair_fee","mrp.group_mrp_user",1,1,1,1
-"access_mrp_repair_fee_mgr","MRP Repair Fee mgr","model_mrp_repair_fee","mrp.group_mrp_manager",1,0,0,0
-"access_account_invoice_user","account.invoice","account.model_account_invoice","mrp.group_mrp_user",1,1,1,1
-"access_account_invoice_manager","account.invoice manager","account.model_account_invoice","mrp.group_mrp_manager",1,0,0,0
-"access_account_invoice_line_user","account.invoice.line","account.model_account_invoice_line","mrp.group_mrp_user",1,1,1,1
-"access_account_invoice_line_manager","account.invoice.line manager","account.model_account_invoice_line","mrp.group_mrp_manager",1,0,0,0
-"access_account_journal_user","account.journal","account.model_account_journal","mrp.group_mrp_user",1,1,1,1
-"access_account_journal_manager","account.journal manager","account.model_account_journal","mrp.group_mrp_manager",1,0,0,0
+id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
+access_mrp_repair_user,MRP Repair user,model_mrp_repair,stock.group_stock_user,1,0,0,0
+access_mrp_repair_manager,MRP Repair manager,model_mrp_repair,stock.group_stock_manager,1,1,1,1
+access_mrp_repair_line_user,MRP Repair Line user,model_mrp_repair_line,stock.group_stock_user,1,0,0,0
+access_mrp_repair_line_manager,MRP Repair Line manager,model_mrp_repair_line,stock.group_stock_manager,1,1,1,1
+access_mrp_repair_fee_user,MRP Repair Fee user,model_mrp_repair_fee,stock.group_stock_user,1,1,1,1
+access_mrp_repair_fee_manager,MRP Repair Fee manager,model_mrp_repair_fee,stock.group_stock_manager,1,0,0,0
+access_mrp_repair_user,MRP Repair user,model_mrp_repair,mrp.group_mrp_user,1,1,1,1
+access_mrp_repair_manager,MRP Repair manager,model_mrp_repair,mrp.group_mrp_manager,1,0,0,0
+access_product_pricelist_manager,product.pricelist manager,product.model_product_pricelist,mrp.group_mrp_manager,1,0,0,0
+access_product_pricelist_user,product.pricelist user,product.model_product_pricelist,mrp.group_mrp_user,1,1,1,1
+access_stock_production_lot_user,stock.production.lot user,stock.model_stock_production_lot,mrp.group_mrp_user,1,1,1,1
+access_stock_production_lot_manager,stock.production.lot manager,stock.model_stock_production_lot,mrp.group_mrp_manager,1,0,0,0
+access_mrp_repair_line_user,mrp.repair.line user,model_mrp_repair_line,mrp.group_mrp_user,1,1,1,1
+access_mrp_repair_line_manager,mrp.repair.line manager,model_mrp_repair_line,mrp.group_mrp_manager,1,0,0,0
+access_stock_production_lot_revision_manager,stock.production.lot.revision manager,stock.model_stock_production_lot_revision,mrp.group_mrp_manager,1,0,0,0
+access_stock_production_lot_revision_user,stock.production.lot.revision user,stock.model_stock_production_lot_revision,mrp.group_mrp_user,1,1,1,1
+access_product_price_type_manager,product.price.type manager,product.model_product_price_type,mrp.group_mrp_manager,1,0,0,0
+access_product_price_type_user,product.price.type,product.model_product_price_type,mrp.group_mrp_user,1,1,1,1
+access_account_tax_user,account.tax,account.model_account_tax,mrp.group_mrp_user,1,1,1,1
+access_account_tax_manager,account.tax manager,account.model_account_tax,mrp.group_mrp_manager,1,0,0,0
+access_mrp_repair_fee_user_mrp,MRP Repair Fee user mrp,model_mrp_repair_fee,mrp.group_mrp_user,1,1,1,1
+access_mrp_repair_fee_mgr,MRP Repair Fee mgr,model_mrp_repair_fee,mrp.group_mrp_manager,1,0,0,0
+access_account_invoice_user,account.invoice,account.model_account_invoice,mrp.group_mrp_user,1,1,1,1
+access_account_invoice_manager,account.invoice manager,account.model_account_invoice,mrp.group_mrp_manager,1,0,0,0
+access_account_invoice_line_user,account.invoice.line,account.model_account_invoice_line,mrp.group_mrp_user,1,1,1,1
+access_account_invoice_line_manager,account.invoice.line manager,account.model_account_invoice_line,mrp.group_mrp_manager,1,0,0,0
+access_account_journal_user,account.journal,account.model_account_journal,mrp.group_mrp_user,1,1,1,1
+access_account_journal_manager,account.journal manager,account.model_account_journal,mrp.group_mrp_manager,1,0,0,0
diff --git a/addons/mrp_subproduct/i18n/hr.po b/addons/mrp_subproduct/i18n/hr.po
index fc2966f7950..8e50561f0a4 100644
--- a/addons/mrp_subproduct/i18n/hr.po
+++ b/addons/mrp_subproduct/i18n/hr.po
@@ -7,19 +7,19 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2011-01-03 16:58+0000\n"
-"PO-Revision-Date: 2010-08-03 08:08+0000\n"
-"Last-Translator: Mantavya Gajjar (Open ERP) \n"
+"PO-Revision-Date: 2011-12-12 10:52+0000\n"
+"Last-Translator: Tomislav Bosnjakovic \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-11-05 05:38+0000\n"
-"X-Generator: Launchpad (build 14231)\n"
+"X-Launchpad-Export-Date: 2011-12-13 05:01+0000\n"
+"X-Generator: Launchpad (build 14458)\n"
#. module: mrp_subproduct
#: field:mrp.subproduct,product_id:0
msgid "Product"
-msgstr "Proizvod"
+msgstr "Artikl"
#. module: mrp_subproduct
#: sql_constraint:mrp.bom:0
@@ -28,6 +28,9 @@ msgid ""
"You should install the mrp_subproduct module if you want to manage extra "
"products on BoMs !"
msgstr ""
+"Sve količine artikala moraju biti veće od 0.\n"
+"Morate instalirati modul mrp_subproduct ako želite dodatne artikle na "
+"sastavnici !"
#. module: mrp_subproduct
#: view:mrp.bom:0
@@ -37,13 +40,15 @@ msgstr "podproizvodi"
#. module: mrp_subproduct
#: model:ir.model,name:mrp_subproduct.model_mrp_production
msgid "Manufacturing Order"
-msgstr ""
+msgstr "Nalog za proizvodnju"
#. module: mrp_subproduct
#: model:ir.module.module,shortdesc:mrp_subproduct.module_meta_information
msgid ""
"MRP Sub Product - To produce several products from one production order"
msgstr ""
+"MRP podproizvod - ZA proizvodnju više proizvoda iz jednog naloga za "
+"proizvodnju"
#. module: mrp_subproduct
#: field:mrp.subproduct,product_qty:0
@@ -63,7 +68,7 @@ msgstr "Tip količine"
#. module: mrp_subproduct
#: model:ir.model,name:mrp_subproduct.model_mrp_bom
msgid "Bill of Material"
-msgstr ""
+msgstr "Sastavnica"
#. module: mrp_subproduct
#: model:ir.module.module,description:mrp_subproduct.module_meta_information
@@ -78,11 +83,20 @@ msgid ""
" A + B + C -> D + E\n"
" "
msgstr ""
+"\n"
+"Ovaj modul omogućuje proizvodnju više proizvoda iz jednog naloga za "
+"proizvodnju.\n"
+"Možete konfigurirati podproizvode u sastavnici.\n"
+"Bez ovog modula:\n"
+" A + B + C -> D\n"
+"Sa ovim modulom:\n"
+" A + B + C -> D + E\n"
+" "
#. module: mrp_subproduct
#: field:mrp.subproduct,product_uom:0
msgid "Product UOM"
-msgstr "Jedinica mjere proizvoda"
+msgstr "JM proizvoda"
#. module: mrp_subproduct
#: field:mrp.subproduct,bom_id:0
@@ -92,7 +106,7 @@ msgstr "Sastavnica"
#. module: mrp_subproduct
#: constraint:mrp.bom:0
msgid "Error ! You can not create recursive BoM."
-msgstr ""
+msgstr "Greška ! Ne možete kreirati rekurzivne sastavnice."
#. module: mrp_subproduct
#: view:mrp.bom:0
@@ -102,22 +116,22 @@ msgstr "Podproizvodi"
#. module: mrp_subproduct
#: selection:mrp.subproduct,subproduct_type:0
msgid "Variable"
-msgstr "Varijabla"
+msgstr "Promjenljiva"
#. module: mrp_subproduct
#: constraint:mrp.production:0
msgid "Order quantity cannot be negative or zero !"
-msgstr ""
+msgstr "Količina na nalogu ne smije biti negativna ili nula!"
#. module: mrp_subproduct
#: model:ir.model,name:mrp_subproduct.model_mrp_subproduct
msgid "Sub Product"
-msgstr ""
+msgstr "Podproizvod"
#. module: mrp_subproduct
#: selection:mrp.subproduct,subproduct_type:0
msgid "Fixed"
-msgstr "Određeno"
+msgstr "Fiksno"
#~ msgid ""
#~ "The Object name must start with x_ and not contain any special character !"
diff --git a/addons/mrp_subproduct/security/ir.model.access.csv b/addons/mrp_subproduct/security/ir.model.access.csv
index 307827265f2..7c012237dd6 100644
--- a/addons/mrp_subproduct/security/ir.model.access.csv
+++ b/addons/mrp_subproduct/security/ir.model.access.csv
@@ -1,3 +1,3 @@
-"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
-"access_mrp_subproduct_user","mrp.subproduct","model_mrp_subproduct","mrp.group_mrp_user",1,1,1,1
-"access_mrp_subproduct_manager","mrp.subproduct manager","model_mrp_subproduct","mrp.group_mrp_manager",1,0,0,0
+id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
+access_mrp_subproduct_user,mrp.subproduct,model_mrp_subproduct,mrp.group_mrp_user,1,1,1,1
+access_mrp_subproduct_manager,mrp.subproduct manager,model_mrp_subproduct,mrp.group_mrp_manager,1,0,0,0
diff --git a/addons/multi_company/__openerp__.py b/addons/multi_company/__openerp__.py
index 636ff1cac29..d82f0e1eb7c 100644
--- a/addons/multi_company/__openerp__.py
+++ b/addons/multi_company/__openerp__.py
@@ -23,7 +23,7 @@
{
'name': 'Multi-Company',
'version': '1.0',
- 'category': 'Hidden',
+ 'category': 'Tools',
'complexity': "expert",
'description': """
This module is for managing a multicompany environment.
diff --git a/addons/multi_company/i18n/hr.po b/addons/multi_company/i18n/hr.po
index 024de2fcf48..04bc8914653 100644
--- a/addons/multi_company/i18n/hr.po
+++ b/addons/multi_company/i18n/hr.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2011-01-11 11:15+0000\n"
-"PO-Revision-Date: 2010-01-26 11:01+0000\n"
-"Last-Translator: FULL NAME \n"
+"PO-Revision-Date: 2011-12-12 12:48+0000\n"
+"Last-Translator: Tomislav Bosnjakovic \n"
"Language-Team: Croatian \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-11-05 05:41+0000\n"
-"X-Generator: Launchpad (build 14231)\n"
+"X-Launchpad-Export-Date: 2011-12-13 05:01+0000\n"
+"X-Generator: Launchpad (build 14458)\n"
#. module: multi_company
#: model:res.company,overdue_msg:multi_company.res_company_odoo
@@ -40,6 +40,21 @@ msgid ""
"%(company_name)s\n"
" "
msgstr ""
+"\n"
+"Datum: %(date)s\n"
+"\n"
+"Dragi %(partner_name)s,\n"
+"\n"
+"U privitku se nalazi podsjetnik na sve vaše neplaćene račune sa dospijelim "
+"iznosom od:\n"
+"\n"
+"%(followup_amount).2f %(company_currency)s\n"
+"\n"
+"Hvala,\n"
+"--\n"
+"%(user_signature)s\n"
+"%(company_name)s\n"
+" "
#. module: multi_company
#: model:product.category,name:multi_company.Odoo1
@@ -66,7 +81,7 @@ msgstr ""
#: model:ir.actions.act_window,name:multi_company.action_inventory_form
#: model:ir.ui.menu,name:multi_company.menu_action_inventory_form
msgid "Default Company per Object"
-msgstr ""
+msgstr "Predefinirana organizacija po objektu"
#. module: multi_company
#: model:product.template,name:multi_company.product_product_odoo1_product_template
@@ -81,7 +96,7 @@ msgstr ""
#. module: multi_company
#: view:multi_company.default:0
msgid "Condition"
-msgstr ""
+msgstr "Uvjet"
#. module: multi_company
#: model:ir.module.module,description:multi_company.module_meta_information
diff --git a/addons/multi_company/security/ir.model.access.csv b/addons/multi_company/security/ir.model.access.csv
index 0343f29f43a..4a08a4aa60d 100644
--- a/addons/multi_company/security/ir.model.access.csv
+++ b/addons/multi_company/security/ir.model.access.csv
@@ -1 +1 @@
-"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
+id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
diff --git a/addons/outlook/README b/addons/outlook/README
deleted file mode 100644
index 93f735ac1f8..00000000000
--- a/addons/outlook/README
+++ /dev/null
@@ -1,29 +0,0 @@
-OpenERP Outlook PLUG-IN Installation Guide
-
-Pre requirements :
-======================================================================================
- 1.Python 2.6+ . python can be downloaded from http://www.python.org/download/releases/ .
- 2.Python for Windows extensions - PyWin32 this module for python must be installed for appropriate version of the Python. It can be downloaded from
- http://sourceforge.net/projects/pywin32/ or
- http://starship.python.net/crew/mhammond/win32/
- 3.If you are using MS Outlook 2007 than you are required to install "Microsoft Exchange Server MAPI Client and Collaboration Data Objects 1.2.1 (CDO 1.21)". It can be downloaded from
- http://www.microsoft.com/downloads/en/details.aspx?FamilyID=2714320D-C997-4DE1-986F-24F081725D36&displaylang=en
- and With MS Outlook2003 Install inbuilt Collaboration Data Objects(CDO) while installing Outlook.
- To read more regarding Collaboration Data Objects(CDO) click following link:
- + http://support.microsoft.com/kb/171440
-
-How to install openerp-outlook plug-in?
-======================================================================================
- 1. Save the executable plug-in file.
- 2. Close Outlook Application if Running.
- 3. Run executable plug-in file and the folllow the instruction.
-
-How to uninstall openerp-outlook plug-in?
-=====================================================================================
- 1. Go to Control Panel Click "Add/Remove Programmes"
- 2. You will entry, you will find entry named 'OpenERP Outlook Addin 1.0' select it and click Uninstall.
-
-Note : Plug In has been successfully tested with MS Office 2003 and MS Offcie 2007.
-
-Enjoy Archiving your Outlook E-mails to OpenERP.
-
diff --git a/addons/outlook/__openerp__.py b/addons/outlook/__openerp__.py
index beab5aca648..9d1c5a554f4 100644
--- a/addons/outlook/__openerp__.py
+++ b/addons/outlook/__openerp__.py
@@ -25,7 +25,7 @@
'version' : '1.0',
'author' : 'OpenERP SA',
'website' : 'http://www.openerp.com/',
- 'depends' : ['base', 'mail'],
+ 'depends' : ['base', 'mail','plugin'],
'category' : 'Customer Relationship Management',
'description': '''
This module provides the Outlook Plug-in.
@@ -33,7 +33,7 @@ This module provides the Outlook Plug-in.
Outlook plug-in allows you to select an object that you’d like to add
to your email and its attachments from MS Outlook. You can select a partner, a task,
a project, an analytical account, or any other object and archive selected
-mail into email.messages with attachments.
+mail into mail.message with attachments.
''',
'init_xml' : [],
'demo_xml' : [],
diff --git a/addons/outlook/i18n/hr.po b/addons/outlook/i18n/hr.po
new file mode 100644
index 00000000000..868034d8431
--- /dev/null
+++ b/addons/outlook/i18n/hr.po
@@ -0,0 +1,161 @@
+# Croatian 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:15+0000\n"
+"PO-Revision-Date: 2011-12-12 12:57+0000\n"
+"Last-Translator: Tomislav Bosnjakovic \n"
+"Language-Team: Croatian \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2011-12-13 05:02+0000\n"
+"X-Generator: Launchpad (build 14458)\n"
+
+#. module: outlook
+#: field:outlook.installer,doc_file:0
+msgid "Installation Manual"
+msgstr "Priručnik za instalaciju"
+
+#. module: outlook
+#: field:outlook.installer,plugin_file:0
+msgid "Outlook Plug-in"
+msgstr "Outlook Plug-in"
+
+#. module: outlook
+#: field:outlook.installer,description:0
+msgid "Description"
+msgstr "Opis"
+
+#. module: outlook
+#: model:ir.ui.menu,name:outlook.menu_base_config_plugins_outlook
+#: view:outlook.installer:0
+msgid "Outlook Plug-In"
+msgstr "Outlook Plug-In"
+
+#. module: outlook
+#: view:outlook.installer:0
+msgid "Skip"
+msgstr "Preskoči"
+
+#. module: outlook
+#: model:ir.module.module,shortdesc:outlook.module_meta_information
+msgid "Outlook Interface"
+msgstr "Sučelje za Outlook"
+
+#. module: outlook
+#: field:outlook.installer,doc_name:0
+#: field:outlook.installer,name:0
+msgid "File name"
+msgstr "Naziv datoteke"
+
+#. module: outlook
+#: field:outlook.installer,outlook:0
+msgid "Outlook Plug-in "
+msgstr "Outlook Plug-in "
+
+#. module: outlook
+#: model:ir.module.module,description:outlook.module_meta_information
+msgid ""
+"\n"
+" This module provide the Outlook plug-in. \n"
+"\n"
+" Outlook plug-in allows you to select an object that you’d like to add\n"
+" to your email and its attachments from MS Outlook. You can select a "
+"partner, a task,\n"
+" a project, an analytical account, or any other object and Archived "
+"selected\n"
+" mail in mailgate.messages with attachments.\n"
+"\n"
+" "
+msgstr ""
+"\n"
+" Ovaj modul omogućava Outlook plug-in. \n"
+"\n"
+" Outlook plug-in omogućava vam da odaberete objekt koji bi željeli "
+"dodati\n"
+" u vaš e-mail i njegove privitke iz MS Outlooka. Možete izabrati "
+"partnera, zadatak,\n"
+" projekt, analitički konto, ili bilo koi drugi objekt i arhivirati "
+"odabranu poruku sa privicima\n"
+" u mailgate.messages.\n"
+"\n"
+" "
+
+#. module: outlook
+#: help:outlook.installer,doc_file:0
+msgid "The documentation file :- how to install Outlook Plug-in."
+msgstr "Datoteka sa dokumentacijom :- kako instalirati Outlook Plug-in."
+
+#. module: outlook
+#: model:ir.model,name:outlook.model_outlook_installer
+msgid "outlook.installer"
+msgstr "outlook.installer"
+
+#. module: outlook
+#: model:ir.actions.act_window,name:outlook.action_outlook_installer
+#: model:ir.actions.act_window,name:outlook.action_outlook_wizard
+#: view:outlook.installer:0
+msgid "Outlook Plug-In Configuration"
+msgstr "Outlook Plug-In konfiguracija"
+
+#. module: outlook
+#: field:outlook.installer,progress:0
+msgid "Configuration Progress"
+msgstr "Napredak konfiguracije"
+
+#. module: outlook
+#: view:outlook.installer:0
+msgid ""
+"This plug-in allows you to link your e-mail to OpenERP's documents. You can "
+"attach it to any existing one in OpenERP or create a new one."
+msgstr ""
+"Ovaj plugin omogućuje vam povezivanje e-maila s OpenERP dokumentima. Možete "
+"ga dodati bilo kojem postojećem ili kreirati novi."
+
+#. module: outlook
+#: help:outlook.installer,outlook:0
+msgid ""
+"Allows you to select an object that you would like to add to your email and "
+"its attachments."
+msgstr ""
+"Dozvoljava vam da odaberete objekt koji želite dodati vašoj elektroničkoj "
+"poruci i njegove privitke."
+
+#. module: outlook
+#: view:outlook.installer:0
+msgid "title"
+msgstr "naziv"
+
+#. module: outlook
+#: view:outlook.installer:0
+msgid "_Close"
+msgstr "_Zatvori"
+
+#. module: outlook
+#: view:outlook.installer:0
+msgid "Installation and Configuration Steps"
+msgstr "Koraci instalacije i konfiguracije"
+
+#. module: outlook
+#: field:outlook.installer,config_logo:0
+msgid "Image"
+msgstr "Slika"
+
+#. module: outlook
+#: help:outlook.installer,plugin_file:0
+msgid ""
+"outlook plug-in file. Save as this file and install this plug-in in outlook."
+msgstr ""
+"outlook plug-in datoteka. Snimi kako ovu datoteku i instaliraj ovaj plugin u "
+"Outlook."
+
+#. module: outlook
+#: view:outlook.installer:0
+msgid "Configure"
+msgstr "Podešavanje"
diff --git a/addons/outlook/installer.py b/addons/outlook/installer.py
index 061c27da5e5..547d0b18650 100644
--- a/addons/outlook/installer.py
+++ b/addons/outlook/installer.py
@@ -32,7 +32,7 @@ class outlook_installer(osv.osv_memory):
def default_get(self, cr, uid, fields, context=None):
data = super(outlook_installer, self).default_get(cr, uid, fields, context=context)
data['doc_file'] = 'http://doc.openerp.com/book/2/2_6_Comms/2_6_Comms_outlook.html'
- file = open(addons.get_module_resource('outlook','plugin','openerp-outlook-addin.exe'), 'r')
+ file = open(addons.get_module_resource('outlook','static','openerp-outlook-plugin','OpenERPOutlookPluginSetup','Release','OpenERPOutlookPluginSetup.msi'), 'r')
data['plugin_file'] = base64.encodestring(file.read())
return data
@@ -47,21 +47,18 @@ class outlook_installer(osv.osv_memory):
_defaults = {
'outlook' : True,
- 'name' : 'Openerp-Outlook-Addin.exe',
+ 'name' : 'OpenERPOutlookPlugin.msi',
'doc_name' : 'Installation Guide to OpenERP Outlook Plug-in.doc',
'description' : """
System requirements:
- 1. Python 2.6+.
- 2. Python for Windows extensions (PyWin32); this module must be installed for the appropriate version of Python.
- 3.1 With MS Outlook 2007, install the package Collaboration Data Objects, version 1.2.1, http://www.microsoft.com/downloads/en/details.aspx?FamilyID=2714320D-C997-4DE1-986F-24F081725D36
- 3.2 With MS Outlook 2003, install the builtin Collaboration Data Objects(CDO) while installing Outlook.
+ 1. MS Outlook 2005 or above.
+ 2. MS .Net Framework 3.5 .
+
Plugin installation:
- 1. Save the executable plug-in file.
+ 1. Save the msi plug-in file.
2. Close the Outlook application if it is open.
- 3. Run the executable plug-in file, and follow the given instructions.
-
-Please refer to the README file for dependencies (external link: openobject-addons/outlook/README).
+ 3. Run the executable plug-in file (OpenERPOutlookPlugin.msi).
"""
}
outlook_installer()
diff --git a/addons/outlook/outlook_installer.xml b/addons/outlook/outlook_installer.xml
index 7e2b7cd6d58..4cdb0127631 100644
--- a/addons/outlook/outlook_installer.xml
+++ b/addons/outlook/outlook_installer.xml
@@ -14,7 +14,9 @@
Install Outlook Plug-In
- This plug-in allows you to link your e-mail to OpenERP's documents. You can attach it to any existing one in OpenERP or create a new one.
+ This plug-in allows you to create new contact or link contact to an existing partner.
+Also allows to link your e-mail to OpenERP's documents.
+You can attach it to any existing one in OpenERP or create a new one.
diff --git a/addons/outlook/plugin/openerp-outlook-plugin/Register-plugin.bat b/addons/outlook/plugin/openerp-outlook-plugin/Register-plugin.bat
deleted file mode 100644
index aa3c0dac378..00000000000
--- a/addons/outlook/plugin/openerp-outlook-plugin/Register-plugin.bat
+++ /dev/null
@@ -1,2 +0,0 @@
-python addin.py
-pause
\ No newline at end of file
diff --git a/addons/outlook/plugin/openerp-outlook-plugin/Unregister-plugin.bat b/addons/outlook/plugin/openerp-outlook-plugin/Unregister-plugin.bat
deleted file mode 100644
index 0f821974661..00000000000
--- a/addons/outlook/plugin/openerp-outlook-plugin/Unregister-plugin.bat
+++ /dev/null
@@ -1,2 +0,0 @@
-python addin.py --unregister
-pause
\ No newline at end of file
diff --git a/addons/outlook/plugin/openerp-outlook-plugin/addin.py b/addons/outlook/plugin/openerp-outlook-plugin/addin.py
deleted file mode 100644
index c720c5e417d..00000000000
--- a/addons/outlook/plugin/openerp-outlook-plugin/addin.py
+++ /dev/null
@@ -1,301 +0,0 @@
-# This module is part of the spambayes project, which is Copyright 2003
-# The Python Software Foundation and is covered by the Python Software
-# Foundation license.
-
-# -*- 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 .
-#
-##############################################################################
-
-from win32com import universal
-from win32com.client import gencache, DispatchWithEvents
-import pythoncom
-from win32com.client import constants
-import sys
-import os
-from win32com.client import Dispatch
-import win32con
-sys.path.append(os.path.abspath(os.path.dirname(__file__))) #outlook
-sys.path.append(os.path.abspath(__file__)) #outlook/addin
-import manager
-from win32com.client import CastTo
-import win32ui
-from tiny_xmlrpc import XMLRpcConn
-import locale
-locale.setlocale(locale.LC_NUMERIC, "C")
-# Support for COM objects we use.
-gencache.EnsureModule('{00062FFF-0000-0000-C000-000000000046}', 0, 9, 0, bForDemand=True) # Outlook 9
-gencache.EnsureModule('{2DF8D04C-5BFA-101B-BDE5-00AA0044DE52}', 0, 2, 1, bForDemand=True) # Office 9
-# The TLB defiining the interfaces we implement
-universal.RegisterInterfaces('{AC0714F2-3D04-11D1-AE7D-00A0C90F26F4}', 0, 1, 0, ["_IDTExtensibility2"])
-global NewConn
-# Retrieves registered XMLRPC connection
-def GetConn():
- d=Dispatch("Python.OpenERP.XMLRpcConn")
- return d
-class Configuration:
-
- def OnClick(self, button, cancel):
- import win32ui
- try:
- mngr = manager.GetManager()
- mngr.ShowManager()
- except Exception,e:
- win32ui.MessageBox("Fail to Initialize dialog.\n"+str(e),"OpenERP Configuration", win32con.MB_ICONERROR)
- return cancel
-#
-class ViewPartners:
- def OnClick(self, button, cancel):
- from win32com.client import Dispatch
- import win32con
- mngr = manager.GetManager()
- data = mngr.LoadConfig()
- outlook = Dispatch("Outlook.Application")
- ex = outlook.ActiveExplorer()
- if ex:
- is_login = str(data['login'])
- if is_login == 'False':
- win32ui.MessageBox("Please login to the database first", "OpenERP Connection", win32con.MB_ICONEXCLAMATION)
- elif ex.Selection.Count == 1 or ex.Selection.Count == 0:
- mngr = manager.GetManager()
- mngr.ShowManager("IDD_VIEW_PARTNER_DIALOG")
- elif ex.Selection.Count > 1:
- win32ui.MessageBox("Multiple selection not allowed. Please select only one mail at a time.","Open Contact",win32con.MB_ICONINFORMATION)
- return cancel
-#
-class OpenPartner:
- def OnClick(self, button, cancel):
- import win32ui
- mngr = manager.GetManager()
- data = mngr.LoadConfig()
- outlook = Dispatch("Outlook.Application")
- ex = outlook.ActiveExplorer()
- if ex:
- is_login = str(data['login'])
- if is_login == 'False':
- win32ui.MessageBox("Please login to the database first", "OpenERP Connection", win32con.MB_ICONEXCLAMATION)
- elif ex.Selection.Count == 1:
- mngr = manager.GetManager()
- mngr.ShowManager("IDD_OPEN_PARTNER_DIALOG")
- elif ex.Selection.Count == 0:
- win32ui.MessageBox("No mail selected to push to OpenERP","Push to OpenERP",win32con.MB_ICONINFORMATION)
- elif ex.Selection.Count > 1:
- win32ui.MessageBox("Multiple selection not allowed. Please select only one mail at a time.","Push to OpenERP",win32con.MB_ICONINFORMATION)
- return cancel
-#
-class OpenDocument:
- def OnClick(self, button, cancel):
- from win32com.client import Dispatch
- import win32con
- mngr = manager.GetManager()
- data = mngr.LoadConfig()
- outlook = Dispatch("Outlook.Application")
- ex = outlook.ActiveExplorer()
- if ex:
- is_login = str(data['login'])
- if is_login == 'False':
- win32ui.MessageBox("Please login to the database first", "OpenERP Connection", win32con.MB_ICONEXCLAMATION)
- elif ex.Selection.Count == 1 or ex.Selection.Count == 0:
- mngr = manager.GetManager()
- mngr.ShowManager("IDD_OPEN_DOCUEMNT_DIALOG")
- elif ex.Selection.Count > 1:
- win32ui.MessageBox("Multiple selection not allowed. Please select only one mail at a time.","Open Document",win32con.MB_ICONINFORMATION)
- return cancel
-#
-class ArchiveEvent:
- def OnClick(self, button, cancel):
- from win32com.client import Dispatch
- import win32con
- mngr = manager.GetManager()
- data=mngr.LoadConfig()
- outlook = Dispatch("Outlook.Application")
- ex = outlook.ActiveExplorer()
- if ex:
- is_login = str(data['login'])
- if is_login == 'False':
- win32ui.MessageBox("Please login to the database first", "OpenERP Connection", win32con.MB_ICONEXCLAMATION)
- elif ex.Selection.Count == 1:
- mngr = manager.GetManager()
- mngr.ShowManager("IDD_SYNC")
- elif ex.Selection.Count == 0:
- win32ui.MessageBox("No mail selected to push to OpenERP","Push to OpenERP",win32con.MB_ICONINFORMATION)
- elif ex.Selection.Count > 1:
- win32ui.MessageBox("Multiple selection not allowed. Please select only one mail at a time.","Push to OpenERP",win32con.MB_ICONINFORMATION)
- return cancel
-#
-class OutlookAddin:
- _com_interfaces_ = ['_IDTExtensibility2']
- _public_methods_ = ['OnConnection','GetAppDataPath']
- _reg_clsctx_ = pythoncom.CLSCTX_INPROC_SERVER
- _reg_clsid_ = "{0F47D9F3-598B-4d24-B7E3-92AC15ED27E8}"
- _reg_progid_ = "Python.OpenERP.OutlookAddin"
- _reg_policy_spec_ = "win32com.server.policy.EventHandlerPolicy"
- def OnConnection(self, application, connectMode, addin, custom):
- # ActiveExplorer may be none when started without a UI (eg, WinCE synchronisation)
- activeExplorer = application.ActiveExplorer()
- if activeExplorer is not None:
- bars = activeExplorer.CommandBars
- new_bar = bars.Add('Open ERP',0,0,0)
-
- menu_bar = bars.Item("Menu Bar")
-
- tools_menu = menu_bar.Controls(5)
- tools_menu = CastTo(tools_menu, "CommandBarPopup")
-
- item = tools_menu.Controls.Add(Type=constants.msoControlButton, Temporary=True)
- # Hook events for the item
- item = self.menu_bar_Button = DispatchWithEvents(item, Configuration)
- item.Caption="Configuration"
- item.TooltipText = "Click to configure OpenERP"
- item.Enabled = True
-
- item = tools_menu.Controls.Add(Type=constants.msoControlButton, Temporary=True)
- # Hook events for the item
- item = self.menu_bar_arch_Button = DispatchWithEvents(item, ArchiveEvent)
- item.Caption="Push"
- item.TooltipText = "Click to push to OpenERP"
- item.Enabled = True
-
- toolbar = bars.Item("Standard")
- openerp_bar = bars.Item('Open ERP')
-
- item = openerp_bar.Controls.Add(Type = constants.msoControlButton, Temporary = True)
- item = self.toolbarButtonConfig = DispatchWithEvents(item, Configuration)
- item.Caption = "Configuration"
- item.TooltipText = "Click to configure OpenERP."
- item.Enabled = True
-
- item = openerp_bar.Controls.Add(Type=constants.msoControlButton, Temporary=True)
- # Hook events for the item
- item = self.toolbarButton = DispatchWithEvents(item, ArchiveEvent)
- item.Caption="Push"
- item.TooltipText = "Click to push to OpenERP"
- item.Enabled = True
-
- # Adding Menu in Menu Bar to the Web Menu of the Outlook
- toolbarweb = bars.Item("Web")
-
- item = openerp_bar.Controls.Add(Type = constants.msoControlButton, Temporary = True)
- item = self.toolbarButtonOpenPartner = DispatchWithEvents(item, OpenPartner)
- item.Caption = "Partner"
- item.TooltipText = "Click to Open OpenERP Partner Contact Information."
- item.Enabled = True
-
-
- item = openerp_bar.Controls.Add(Type = constants.msoControlButton, Temporary = True)
- item = self.toolbarButtonOpenDocument = DispatchWithEvents(item, OpenDocument)
- item.Caption = "Document"
- item.TooltipText = "Click to Open Document that has been pushed to server."
- item.Enabled = True
-
- # Hook events for the item
-# item = toolbarweb.Controls.Add(Type = constants.msoControlButton, Temporary = True)
-# item = self.toolbarButtonPartner = DispatchWithEvents(item, ViewPartners)
-# item.Caption = "Open Contact"
-# item.TooltipText = "Click to Open OpenERP Partner Contact Information."
-# item.Enabled = True
-
-
-# item = tools_menu.Controls.Add(Type=constants.msoControlButton, Temporary=True)
-# # Hook events for the item
-# item = self.menu_bar_viewpartner_Button = DispatchWithEvents(item, ViewPartners)
-# item.Caption = "Open Contact"
-# item.TooltipText = "Click to Open Partner detail"
-# item.Enabled = True
-
- item = tools_menu.Controls.Add(Type=constants.msoControlButton, Temporary=True)
- # Hook events for the item
- item = self.menu_bar_openpartner_Button = DispatchWithEvents(item, OpenPartner)
- item.Caption = "Partner"
- item.TooltipText = "Click to Open Partner detail"
- item.Enabled = True
-
- item = tools_menu.Controls.Add(Type=constants.msoControlButton, Temporary=True)
- # Hook events for the item
- item = self.menu_bar_opendocument_Button = DispatchWithEvents(item, OpenDocument)
- item.Caption = "Document"
- item.TooltipText = "Click to Open Document that has been pushed to server."
- item.Enabled = True
-
- def OnDisconnection(self, mode, custom):
- mngr = manager.GetManager()
- mngr.config['login'] = False
- mngr.SaveConfig()
- self.item.close()
- pass
- def OnAddInsUpdate(self, custom):
- pass
- def OnStartupComplete(self, custom):
- pass
- def OnBeginShutdown(self, custom):
- pass
- def GetAppDataPath(self):
- mngr = manager.GetManager()
- return mngr.data_directory
-
-def RegisterAddin(klass):
- import _winreg
- key = _winreg.CreateKey(_winreg.HKEY_CURRENT_USER, "Software\\Microsoft\\Office\\Outlook\\Addins")
- subkey = _winreg.CreateKey(key, klass._reg_progid_)
- _winreg.SetValueEx(subkey, "CommandLineSafe", 0, _winreg.REG_DWORD, 0)
- _winreg.SetValueEx(subkey, "LoadBehavior", 0, _winreg.REG_DWORD, 3)
- _winreg.SetValueEx(subkey, "Description", 0, _winreg.REG_SZ, klass._reg_progid_)
- _winreg.SetValueEx(subkey, "FriendlyName", 0, _winreg.REG_SZ, klass._reg_progid_)
-
-def UnregisterAddin(klass):
- import _winreg
- try:
- _winreg.DeleteKey(_winreg.HKEY_CURRENT_USER, "Software\\Microsoft\\Office\\Outlook\\Addins\\" + klass._reg_progid_)
- except:
- pass
-
-def UnregisterXMLConn(klass):
- import _winreg
- try:
- _winreg.DeleteKey(_winreg.HKEY_CURRENT_USER, "Software\\Microsoft\\Office\\Outlook\\Addins\\XMLConnection" + klass._reg_progid_)
- except:
- pass
-
-def RegisterXMLConn(klass):
- import _winreg
- key = _winreg.CreateKey(_winreg.HKEY_CURRENT_USER, "Software\\Microsoft\\Office\\Outlook\\Addins\\XMLConnection")
- subkey = _winreg.CreateKey(key, klass._reg_progid_)
- _winreg.SetValueEx(subkey, "CommandLineSafe", 0, _winreg.REG_DWORD, 0)
- _winreg.SetValueEx(subkey, "LoadBehavior", 0, _winreg.REG_DWORD, 3)
- _winreg.SetValueEx(subkey, "Description", 0, _winreg.REG_SZ, klass._reg_progid_)
- _winreg.SetValueEx(subkey, "FriendlyName", 0, _winreg.REG_SZ, klass._reg_progid_)
-
-if __name__ == '__main__':
- import win32com.server.register
- NewConn=XMLRpcConn()
- win32com.server.register.UseCommandLine(OutlookAddin)
- win32com.server.register.UseCommandLine(NewConn)
- if "--unregister" in sys.argv:
- UnregisterAddin(OutlookAddin)
- UnregisterXMLConn(NewConn)
- print "\n \tPlug In Un-registered Successfully.\n\tThank You for Using PlugIn."
- else:
- RegisterAddin(OutlookAddin)
- RegisterXMLConn(NewConn)
- print "\n \tPlug In Registered Successfully.\n\tEnjoy Archiving with OpenERP.\n\tSee UserGuide for More. "
-
-#mngr = manager.GetManager()
-#mngr.ShowManager("IDD_MANAGER")
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/outlook/plugin/openerp-outlook-plugin/chilkat.py b/addons/outlook/plugin/openerp-outlook-plugin/chilkat.py
deleted file mode 100644
index 3aa329807ef..00000000000
--- a/addons/outlook/plugin/openerp-outlook-plugin/chilkat.py
+++ /dev/null
@@ -1,5609 +0,0 @@
-# This file was automatically generated by SWIG (http://www.swig.org).
-# Version 1.3.38
-#
-# Do not make changes to this file unless you know what you are doing--modify
-# the SWIG interface file instead.
-# This file is compatible with both classic and new-style classes.
-
-from sys import version_info
-if version_info >= (2,6,0):
- def swig_import_helper():
- from os.path import dirname
- import imp
- try:
- fp, pathname, description = imp.find_module('_chilkat', [dirname(__file__)])
- _mod = imp.load_module('_chilkat', fp, pathname, description)
- finally:
- if fp is not None: fp.close()
- return _mod
- _chilkat = swig_import_helper()
- del swig_import_helper
-else:
- import _chilkat
-del version_info
-try:
- _swig_property = property
-except NameError:
- pass # Python < 2.2 doesn't have 'property'.
-def _swig_setattr_nondynamic(self,class_type,name,value,static=1):
- if (name == "thisown"): return self.this.own(value)
- if (name == "this"):
- if type(value).__name__ == 'SwigPyObject':
- self.__dict__[name] = value
- return
- method = class_type.__swig_setmethods__.get(name,None)
- if method: return method(self,value)
- if (not static) or hasattr(self,name):
- self.__dict__[name] = value
- else:
- raise AttributeError("You cannot add attributes to %s" % self)
-
-def _swig_setattr(self,class_type,name,value):
- return _swig_setattr_nondynamic(self,class_type,name,value,0)
-
-def _swig_getattr(self,class_type,name):
- if (name == "thisown"): return self.this.own()
- method = class_type.__swig_getmethods__.get(name,None)
- if method: return method(self)
- raise AttributeError(name)
-
-def _swig_repr(self):
- try: strthis = "proxy of " + self.this.__repr__()
- except: strthis = ""
- return "<%s.%s; %s >" % (self.__class__.__module__, self.__class__.__name__, strthis,)
-
-try:
- _object = object
- _newclass = 1
-except AttributeError:
- class _object : pass
- _newclass = 0
-
-
-
-def GetSwigProgLang():
- return _chilkat.GetSwigProgLang()
-GetSwigProgLang = _chilkat.GetSwigProgLang
-class SYSTEMTIME(_object):
- __swig_setmethods__ = {}
- __setattr__ = lambda self, name, value: _swig_setattr(self, SYSTEMTIME, name, value)
- __swig_getmethods__ = {}
- __getattr__ = lambda self, name: _swig_getattr(self, SYSTEMTIME, name)
- __repr__ = _swig_repr
- __swig_setmethods__["wYear"] = _chilkat.SYSTEMTIME_wYear_set
- __swig_getmethods__["wYear"] = _chilkat.SYSTEMTIME_wYear_get
- if _newclass:wYear = _swig_property(_chilkat.SYSTEMTIME_wYear_get, _chilkat.SYSTEMTIME_wYear_set)
- __swig_setmethods__["wMonth"] = _chilkat.SYSTEMTIME_wMonth_set
- __swig_getmethods__["wMonth"] = _chilkat.SYSTEMTIME_wMonth_get
- if _newclass:wMonth = _swig_property(_chilkat.SYSTEMTIME_wMonth_get, _chilkat.SYSTEMTIME_wMonth_set)
- __swig_setmethods__["wDayOfWeek"] = _chilkat.SYSTEMTIME_wDayOfWeek_set
- __swig_getmethods__["wDayOfWeek"] = _chilkat.SYSTEMTIME_wDayOfWeek_get
- if _newclass:wDayOfWeek = _swig_property(_chilkat.SYSTEMTIME_wDayOfWeek_get, _chilkat.SYSTEMTIME_wDayOfWeek_set)
- __swig_setmethods__["wDay"] = _chilkat.SYSTEMTIME_wDay_set
- __swig_getmethods__["wDay"] = _chilkat.SYSTEMTIME_wDay_get
- if _newclass:wDay = _swig_property(_chilkat.SYSTEMTIME_wDay_get, _chilkat.SYSTEMTIME_wDay_set)
- __swig_setmethods__["wHour"] = _chilkat.SYSTEMTIME_wHour_set
- __swig_getmethods__["wHour"] = _chilkat.SYSTEMTIME_wHour_get
- if _newclass:wHour = _swig_property(_chilkat.SYSTEMTIME_wHour_get, _chilkat.SYSTEMTIME_wHour_set)
- __swig_setmethods__["wMinute"] = _chilkat.SYSTEMTIME_wMinute_set
- __swig_getmethods__["wMinute"] = _chilkat.SYSTEMTIME_wMinute_get
- if _newclass:wMinute = _swig_property(_chilkat.SYSTEMTIME_wMinute_get, _chilkat.SYSTEMTIME_wMinute_set)
- __swig_setmethods__["wSecond"] = _chilkat.SYSTEMTIME_wSecond_set
- __swig_getmethods__["wSecond"] = _chilkat.SYSTEMTIME_wSecond_get
- if _newclass:wSecond = _swig_property(_chilkat.SYSTEMTIME_wSecond_get, _chilkat.SYSTEMTIME_wSecond_set)
- __swig_setmethods__["wMilliseconds"] = _chilkat.SYSTEMTIME_wMilliseconds_set
- __swig_getmethods__["wMilliseconds"] = _chilkat.SYSTEMTIME_wMilliseconds_get
- if _newclass:wMilliseconds = _swig_property(_chilkat.SYSTEMTIME_wMilliseconds_get, _chilkat.SYSTEMTIME_wMilliseconds_set)
- def __init__(self):
- this = _chilkat.new_SYSTEMTIME()
- try: self.this.append(this)
- except: self.this = this
- __swig_destroy__ = _chilkat.delete_SYSTEMTIME
- __del__ = lambda self : None;
-SYSTEMTIME_swigregister = _chilkat.SYSTEMTIME_swigregister
-SYSTEMTIME_swigregister(SYSTEMTIME)
-
-class CkString(_object):
- __swig_setmethods__ = {}
- __setattr__ = lambda self, name, value: _swig_setattr(self, CkString, name, value)
- __swig_getmethods__ = {}
- __getattr__ = lambda self, name: _swig_getattr(self, CkString, name)
- __repr__ = _swig_repr
- def __init__(self):
- this = _chilkat.new_CkString()
- try: self.this.append(this)
- except: self.this = this
- __swig_destroy__ = _chilkat.delete_CkString
- __del__ = lambda self : None;
- def get_Utf8(self): return _chilkat.CkString_get_Utf8(self)
- def put_Utf8(self, *args): return _chilkat.CkString_put_Utf8(self, *args)
- def loadFile(self, *args): return _chilkat.CkString_loadFile(self, *args)
- def charAt(self, *args): return _chilkat.CkString_charAt(self, *args)
- def intValue(self): return _chilkat.CkString_intValue(self)
- def doubleValue(self): return _chilkat.CkString_doubleValue(self)
- def clone(self): return _chilkat.CkString_clone(self)
- def countCharOccurances(self, *args): return _chilkat.CkString_countCharOccurances(self, *args)
- def appendCurrentDateRfc822(self): return _chilkat.CkString_appendCurrentDateRfc822(self)
- def setStr(self, *args): return _chilkat.CkString_setStr(self, *args)
- def endsWith(self, *args): return _chilkat.CkString_endsWith(self, *args)
- def endsWithStr(self, *args): return _chilkat.CkString_endsWithStr(self, *args)
- def beginsWithStr(self, *args): return _chilkat.CkString_beginsWithStr(self, *args)
- def indexOf(self, *args): return _chilkat.CkString_indexOf(self, *args)
- def indexOfStr(self, *args): return _chilkat.CkString_indexOfStr(self, *args)
- def replaceAll(self, *args): return _chilkat.CkString_replaceAll(self, *args)
- def replaceFirst(self, *args): return _chilkat.CkString_replaceFirst(self, *args)
- def substring(self, *args): return _chilkat.CkString_substring(self, *args)
- def matchesStr(self, *args): return _chilkat.CkString_matchesStr(self, *args)
- def matches(self, *args): return _chilkat.CkString_matches(self, *args)
- def getChar(self, *args): return _chilkat.CkString_getChar(self, *args)
- def removeAll(self, *args): return _chilkat.CkString_removeAll(self, *args)
- def removeFirst(self, *args): return _chilkat.CkString_removeFirst(self, *args)
- def chopAtStr(self, *args): return _chilkat.CkString_chopAtStr(self, *args)
- def urlDecode(self, *args): return _chilkat.CkString_urlDecode(self, *args)
- def urlEncode(self, *args): return _chilkat.CkString_urlEncode(self, *args)
- def base64Decode(self, *args): return _chilkat.CkString_base64Decode(self, *args)
- def base64Encode(self, *args): return _chilkat.CkString_base64Encode(self, *args)
- def qpDecode(self, *args): return _chilkat.CkString_qpDecode(self, *args)
- def qpEncode(self, *args): return _chilkat.CkString_qpEncode(self, *args)
- def hexDecode(self, *args): return _chilkat.CkString_hexDecode(self, *args)
- def hexEncode(self, *args): return _chilkat.CkString_hexEncode(self, *args)
- def entityDecode(self): return _chilkat.CkString_entityDecode(self)
- def entityEncode(self): return _chilkat.CkString_entityEncode(self)
- def appendUtf8(self, *args): return _chilkat.CkString_appendUtf8(self, *args)
- def appendAnsi(self, *args): return _chilkat.CkString_appendAnsi(self, *args)
- def clear(self): return _chilkat.CkString_clear(self)
- def prepend(self, *args): return _chilkat.CkString_prepend(self, *args)
- def appendInt(self, *args): return _chilkat.CkString_appendInt(self, *args)
- def append(self, *args): return _chilkat.CkString_append(self, *args)
- def appendChar(self, *args): return _chilkat.CkString_appendChar(self, *args)
- def appendN(self, *args): return _chilkat.CkString_appendN(self, *args)
- def appendStr(self, *args): return _chilkat.CkString_appendStr(self, *args)
- def appendEnc(self, *args): return _chilkat.CkString_appendEnc(self, *args)
- def getEnc(self, *args): return _chilkat.CkString_getEnc(self, *args)
- def setString(self, *args): return _chilkat.CkString_setString(self, *args)
- def setStringAnsi(self, *args): return _chilkat.CkString_setStringAnsi(self, *args)
- def setStringUtf8(self, *args): return _chilkat.CkString_setStringUtf8(self, *args)
- def getAnsi(self): return _chilkat.CkString_getAnsi(self)
- def getUtf8(self): return _chilkat.CkString_getUtf8(self)
- def compareStr(self, *args): return _chilkat.CkString_compareStr(self, *args)
- def getString(self): return _chilkat.CkString_getString(self)
- def getSizeUtf8(self): return _chilkat.CkString_getSizeUtf8(self)
- def getSizeAnsi(self): return _chilkat.CkString_getSizeAnsi(self)
- def getNumChars(self): return _chilkat.CkString_getNumChars(self)
- def trim(self): return _chilkat.CkString_trim(self)
- def trim2(self): return _chilkat.CkString_trim2(self)
- def trimInsideSpaces(self): return _chilkat.CkString_trimInsideSpaces(self)
- def replaceAllOccurances(self, *args): return _chilkat.CkString_replaceAllOccurances(self, *args)
- def replaceFirstOccurance(self, *args): return _chilkat.CkString_replaceFirstOccurance(self, *args)
- def toCRLF(self): return _chilkat.CkString_toCRLF(self)
- def toLF(self): return _chilkat.CkString_toLF(self)
- def eliminateChar(self, *args): return _chilkat.CkString_eliminateChar(self, *args)
- def lastChar(self): return _chilkat.CkString_lastChar(self)
- def shorten(self, *args): return _chilkat.CkString_shorten(self, *args)
- def toLowerCase(self): return _chilkat.CkString_toLowerCase(self)
- def toUpperCase(self): return _chilkat.CkString_toUpperCase(self)
- def encodeXMLSpecial(self): return _chilkat.CkString_encodeXMLSpecial(self)
- def decodeXMLSpecial(self): return _chilkat.CkString_decodeXMLSpecial(self)
- def containsSubstring(self, *args): return _chilkat.CkString_containsSubstring(self, *args)
- def containsSubstringNoCase(self, *args): return _chilkat.CkString_containsSubstringNoCase(self, *args)
- def equals(self, *args): return _chilkat.CkString_equals(self, *args)
- def equalsStr(self, *args): return _chilkat.CkString_equalsStr(self, *args)
- def equalsIgnoreCase(self, *args): return _chilkat.CkString_equalsIgnoreCase(self, *args)
- def equalsIgnoreCaseStr(self, *args): return _chilkat.CkString_equalsIgnoreCaseStr(self, *args)
- def removeChunk(self, *args): return _chilkat.CkString_removeChunk(self, *args)
- def removeCharOccurances(self, *args): return _chilkat.CkString_removeCharOccurances(self, *args)
- def replaceChar(self, *args): return _chilkat.CkString_replaceChar(self, *args)
- def chopAtFirstChar(self, *args): return _chilkat.CkString_chopAtFirstChar(self, *args)
- def saveToFile(self, *args): return _chilkat.CkString_saveToFile(self, *args)
- def split(self, *args): return _chilkat.CkString_split(self, *args)
- def split2(self, *args): return _chilkat.CkString_split2(self, *args)
- def tokenize(self, *args): return _chilkat.CkString_tokenize(self, *args)
- def splitAtWS(self): return _chilkat.CkString_splitAtWS(self)
- def beginsWith(self, *args): return _chilkat.CkString_beginsWith(self, *args)
- def appendHexData(self, *args): return _chilkat.CkString_appendHexData(self, *args)
-CkString_swigregister = _chilkat.CkString_swigregister
-CkString_swigregister(CkString)
-
-class CkHtmlToXml(_object):
- __swig_setmethods__ = {}
- __setattr__ = lambda self, name, value: _swig_setattr(self, CkHtmlToXml, name, value)
- __swig_getmethods__ = {}
- __getattr__ = lambda self, name: _swig_getattr(self, CkHtmlToXml, name)
- __repr__ = _swig_repr
- def __init__(self):
- this = _chilkat.new_CkHtmlToXml()
- try: self.this.append(this)
- except: self.this = this
- __swig_destroy__ = _chilkat.delete_CkHtmlToXml
- __del__ = lambda self : None;
- def get_Utf8(self): return _chilkat.CkHtmlToXml_get_Utf8(self)
- def put_Utf8(self, *args): return _chilkat.CkHtmlToXml_put_Utf8(self, *args)
- def SetHtmlBytes(self, *args): return _chilkat.CkHtmlToXml_SetHtmlBytes(self, *args)
- def UnlockComponent(self, *args): return _chilkat.CkHtmlToXml_UnlockComponent(self, *args)
- def IsUnlocked(self): return _chilkat.CkHtmlToXml_IsUnlocked(self)
- def SaveLastError(self, *args): return _chilkat.CkHtmlToXml_SaveLastError(self, *args)
- def LastErrorXml(self, *args): return _chilkat.CkHtmlToXml_LastErrorXml(self, *args)
- def LastErrorHtml(self, *args): return _chilkat.CkHtmlToXml_LastErrorHtml(self, *args)
- def LastErrorText(self, *args): return _chilkat.CkHtmlToXml_LastErrorText(self, *args)
- def get_Version(self, *args): return _chilkat.CkHtmlToXml_get_Version(self, *args)
- def put_Nbsp(self, *args): return _chilkat.CkHtmlToXml_put_Nbsp(self, *args)
- def get_Nbsp(self): return _chilkat.CkHtmlToXml_get_Nbsp(self)
- def put_Html(self, *args): return _chilkat.CkHtmlToXml_put_Html(self, *args)
- def get_Html(self, *args): return _chilkat.CkHtmlToXml_get_Html(self, *args)
- def put_XmlCharset(self, *args): return _chilkat.CkHtmlToXml_put_XmlCharset(self, *args)
- def get_XmlCharset(self, *args): return _chilkat.CkHtmlToXml_get_XmlCharset(self, *args)
- def SetHtmlFromFile(self, *args): return _chilkat.CkHtmlToXml_SetHtmlFromFile(self, *args)
- def ToXml(self, *args): return _chilkat.CkHtmlToXml_ToXml(self, *args)
- def ReadFileToString(self, *args): return _chilkat.CkHtmlToXml_ReadFileToString(self, *args)
- def WriteStringToFile(self, *args): return _chilkat.CkHtmlToXml_WriteStringToFile(self, *args)
- def ConvertFile(self, *args): return _chilkat.CkHtmlToXml_ConvertFile(self, *args)
- def DropTagType(self, *args): return _chilkat.CkHtmlToXml_DropTagType(self, *args)
- def UndropTagType(self, *args): return _chilkat.CkHtmlToXml_UndropTagType(self, *args)
- def DropTextFormattingTags(self): return _chilkat.CkHtmlToXml_DropTextFormattingTags(self)
- def UndropTextFormattingTags(self): return _chilkat.CkHtmlToXml_UndropTextFormattingTags(self)
- def put_DropCustomTags(self, *args): return _chilkat.CkHtmlToXml_put_DropCustomTags(self, *args)
- def get_DropCustomTags(self): return _chilkat.CkHtmlToXml_get_DropCustomTags(self)
- def lastErrorText(self): return _chilkat.CkHtmlToXml_lastErrorText(self)
- def lastErrorXml(self): return _chilkat.CkHtmlToXml_lastErrorXml(self)
- def lastErrorHtml(self): return _chilkat.CkHtmlToXml_lastErrorHtml(self)
- def html(self): return _chilkat.CkHtmlToXml_html(self)
- def xmlCharset(self): return _chilkat.CkHtmlToXml_xmlCharset(self)
- def xml(self): return _chilkat.CkHtmlToXml_xml(self)
- def version(self): return _chilkat.CkHtmlToXml_version(self)
- def toXml(self): return _chilkat.CkHtmlToXml_toXml(self)
- def readFileToString(self, *args): return _chilkat.CkHtmlToXml_readFileToString(self, *args)
-CkHtmlToXml_swigregister = _chilkat.CkHtmlToXml_swigregister
-CkHtmlToXml_swigregister(CkHtmlToXml)
-
-class CkUpload(_object):
- __swig_setmethods__ = {}
- __setattr__ = lambda self, name, value: _swig_setattr(self, CkUpload, name, value)
- __swig_getmethods__ = {}
- __getattr__ = lambda self, name: _swig_getattr(self, CkUpload, name)
- __repr__ = _swig_repr
- def __init__(self):
- this = _chilkat.new_CkUpload()
- try: self.this.append(this)
- except: self.this = this
- __swig_destroy__ = _chilkat.delete_CkUpload
- __del__ = lambda self : None;
- def get_Utf8(self): return _chilkat.CkUpload_get_Utf8(self)
- def put_Utf8(self, *args): return _chilkat.CkUpload_put_Utf8(self, *args)
- def get_Ssl(self): return _chilkat.CkUpload_get_Ssl(self)
- def put_Ssl(self, *args): return _chilkat.CkUpload_put_Ssl(self, *args)
- def SaveLastError(self, *args): return _chilkat.CkUpload_SaveLastError(self, *args)
- def LastErrorXml(self, *args): return _chilkat.CkUpload_LastErrorXml(self, *args)
- def LastErrorHtml(self, *args): return _chilkat.CkUpload_LastErrorHtml(self, *args)
- def LastErrorText(self, *args): return _chilkat.CkUpload_LastErrorText(self, *args)
- def get_Version(self, *args): return _chilkat.CkUpload_get_Version(self, *args)
- def SleepMs(self, *args): return _chilkat.CkUpload_SleepMs(self, *args)
- def get_ChunkSize(self): return _chilkat.CkUpload_get_ChunkSize(self)
- def put_ChunkSize(self, *args): return _chilkat.CkUpload_put_ChunkSize(self, *args)
- def get_IdleTimeoutMs(self): return _chilkat.CkUpload_get_IdleTimeoutMs(self)
- def put_IdleTimeoutMs(self, *args): return _chilkat.CkUpload_put_IdleTimeoutMs(self, *args)
- def get_UploadInProgress(self): return _chilkat.CkUpload_get_UploadInProgress(self)
- def get_UploadSuccess(self): return _chilkat.CkUpload_get_UploadSuccess(self)
- def get_Login(self, *args): return _chilkat.CkUpload_get_Login(self, *args)
- def put_Login(self, *args): return _chilkat.CkUpload_put_Login(self, *args)
- def get_Password(self, *args): return _chilkat.CkUpload_get_Password(self, *args)
- def put_Password(self, *args): return _chilkat.CkUpload_put_Password(self, *args)
- def login(self): return _chilkat.CkUpload_login(self)
- def password(self): return _chilkat.CkUpload_password(self)
- def get_ProxyPort(self): return _chilkat.CkUpload_get_ProxyPort(self)
- def put_ProxyPort(self, *args): return _chilkat.CkUpload_put_ProxyPort(self, *args)
- def put_ProxyDomain(self, *args): return _chilkat.CkUpload_put_ProxyDomain(self, *args)
- def get_ProxyDomain(self, *args): return _chilkat.CkUpload_get_ProxyDomain(self, *args)
- def get_ProxyLogin(self, *args): return _chilkat.CkUpload_get_ProxyLogin(self, *args)
- def put_ProxyLogin(self, *args): return _chilkat.CkUpload_put_ProxyLogin(self, *args)
- def get_ProxyPassword(self, *args): return _chilkat.CkUpload_get_ProxyPassword(self, *args)
- def put_ProxyPassword(self, *args): return _chilkat.CkUpload_put_ProxyPassword(self, *args)
- def proxyLogin(self): return _chilkat.CkUpload_proxyLogin(self)
- def proxyPassword(self): return _chilkat.CkUpload_proxyPassword(self)
- def proxyDomain(self): return _chilkat.CkUpload_proxyDomain(self)
- def AddCustomHeader(self, *args): return _chilkat.CkUpload_AddCustomHeader(self, *args)
- def AddParam(self, *args): return _chilkat.CkUpload_AddParam(self, *args)
- def AddFileReference(self, *args): return _chilkat.CkUpload_AddFileReference(self, *args)
- def get_Port(self): return _chilkat.CkUpload_get_Port(self)
- def put_Port(self, *args): return _chilkat.CkUpload_put_Port(self, *args)
- def get_Hostname(self, *args): return _chilkat.CkUpload_get_Hostname(self, *args)
- def put_Hostname(self, *args): return _chilkat.CkUpload_put_Hostname(self, *args)
- def get_Path(self, *args): return _chilkat.CkUpload_get_Path(self, *args)
- def put_Path(self, *args): return _chilkat.CkUpload_put_Path(self, *args)
- def get_TotalUploadSize(self): return _chilkat.CkUpload_get_TotalUploadSize(self)
- def get_NumBytesSent(self): return _chilkat.CkUpload_get_NumBytesSent(self)
- def get_PercentUploaded(self): return _chilkat.CkUpload_get_PercentUploaded(self)
- def get_ResponseStatus(self): return _chilkat.CkUpload_get_ResponseStatus(self)
- def get_ResponseHeader(self, *args): return _chilkat.CkUpload_get_ResponseHeader(self, *args)
- def get_ResponseBody(self, *args): return _chilkat.CkUpload_get_ResponseBody(self, *args)
- def BlockingUpload(self): return _chilkat.CkUpload_BlockingUpload(self)
- def BeginUpload(self): return _chilkat.CkUpload_BeginUpload(self)
- def AbortUpload(self): return _chilkat.CkUpload_AbortUpload(self)
- def UploadToMemory(self, *args): return _chilkat.CkUpload_UploadToMemory(self, *args)
- def lastErrorText(self): return _chilkat.CkUpload_lastErrorText(self)
- def lastErrorXml(self): return _chilkat.CkUpload_lastErrorXml(self)
- def lastErrorHtml(self): return _chilkat.CkUpload_lastErrorHtml(self)
- def hostname(self): return _chilkat.CkUpload_hostname(self)
- def path(self): return _chilkat.CkUpload_path(self)
- def responseHeader(self): return _chilkat.CkUpload_responseHeader(self)
- def version(self): return _chilkat.CkUpload_version(self)
-CkUpload_swigregister = _chilkat.CkUpload_swigregister
-CkUpload_swigregister(CkUpload)
-
-class CkKeyContainer(_object):
- __swig_setmethods__ = {}
- __setattr__ = lambda self, name, value: _swig_setattr(self, CkKeyContainer, name, value)
- __swig_getmethods__ = {}
- __getattr__ = lambda self, name: _swig_getattr(self, CkKeyContainer, name)
- __repr__ = _swig_repr
- def __init__(self):
- this = _chilkat.new_CkKeyContainer()
- try: self.this.append(this)
- except: self.this = this
- __swig_destroy__ = _chilkat.delete_CkKeyContainer
- __del__ = lambda self : None;
- def get_Utf8(self): return _chilkat.CkKeyContainer_get_Utf8(self)
- def put_Utf8(self, *args): return _chilkat.CkKeyContainer_put_Utf8(self, *args)
- def get_IsOpen(self): return _chilkat.CkKeyContainer_get_IsOpen(self)
- def get_IsMachineKeyset(self): return _chilkat.CkKeyContainer_get_IsMachineKeyset(self)
- def get_ContainerName(self, *args): return _chilkat.CkKeyContainer_get_ContainerName(self, *args)
- def GenerateUuid(self, *args): return _chilkat.CkKeyContainer_GenerateUuid(self, *args)
- def CreateContainer(self, *args): return _chilkat.CkKeyContainer_CreateContainer(self, *args)
- def OpenContainer(self, *args): return _chilkat.CkKeyContainer_OpenContainer(self, *args)
- def DeleteContainer(self): return _chilkat.CkKeyContainer_DeleteContainer(self)
- def CloseContainer(self): return _chilkat.CkKeyContainer_CloseContainer(self)
- def GenerateKeyPair(self, *args): return _chilkat.CkKeyContainer_GenerateKeyPair(self, *args)
- def GetPrivateKey(self, *args): return _chilkat.CkKeyContainer_GetPrivateKey(self, *args)
- def GetPublicKey(self, *args): return _chilkat.CkKeyContainer_GetPublicKey(self, *args)
- def ImportPublicKey(self, *args): return _chilkat.CkKeyContainer_ImportPublicKey(self, *args)
- def ImportPrivateKey(self, *args): return _chilkat.CkKeyContainer_ImportPrivateKey(self, *args)
- def FetchContainerNames(self, *args): return _chilkat.CkKeyContainer_FetchContainerNames(self, *args)
- def GetNumContainers(self, *args): return _chilkat.CkKeyContainer_GetNumContainers(self, *args)
- def GetContainerName(self, *args): return _chilkat.CkKeyContainer_GetContainerName(self, *args)
- def getContainerName(self, *args): return _chilkat.CkKeyContainer_getContainerName(self, *args)
- def containerName(self): return _chilkat.CkKeyContainer_containerName(self)
- def generateUuid(self): return _chilkat.CkKeyContainer_generateUuid(self)
- def SaveLastError(self, *args): return _chilkat.CkKeyContainer_SaveLastError(self, *args)
- def LastErrorXml(self, *args): return _chilkat.CkKeyContainer_LastErrorXml(self, *args)
- def LastErrorHtml(self, *args): return _chilkat.CkKeyContainer_LastErrorHtml(self, *args)
- def LastErrorText(self, *args): return _chilkat.CkKeyContainer_LastErrorText(self, *args)
- def lastErrorText(self): return _chilkat.CkKeyContainer_lastErrorText(self)
- def lastErrorXml(self): return _chilkat.CkKeyContainer_lastErrorXml(self)
- def lastErrorHtml(self): return _chilkat.CkKeyContainer_lastErrorHtml(self)
-CkKeyContainer_swigregister = _chilkat.CkKeyContainer_swigregister
-CkKeyContainer_swigregister(CkKeyContainer)
-
-class CkPublicKey(_object):
- __swig_setmethods__ = {}
- __setattr__ = lambda self, name, value: _swig_setattr(self, CkPublicKey, name, value)
- __swig_getmethods__ = {}
- __getattr__ = lambda self, name: _swig_getattr(self, CkPublicKey, name)
- __repr__ = _swig_repr
- def __init__(self):
- this = _chilkat.new_CkPublicKey()
- try: self.this.append(this)
- except: self.this = this
- __swig_destroy__ = _chilkat.delete_CkPublicKey
- __del__ = lambda self : None;
- def get_Utf8(self): return _chilkat.CkPublicKey_get_Utf8(self)
- def put_Utf8(self, *args): return _chilkat.CkPublicKey_put_Utf8(self, *args)
- def LoadPkcs1Pem(self, *args): return _chilkat.CkPublicKey_LoadPkcs1Pem(self, *args)
- def LoadRsaDerFile(self, *args): return _chilkat.CkPublicKey_LoadRsaDerFile(self, *args)
- def LoadOpenSslDerFile(self, *args): return _chilkat.CkPublicKey_LoadOpenSslDerFile(self, *args)
- def LoadOpenSslPemFile(self, *args): return _chilkat.CkPublicKey_LoadOpenSslPemFile(self, *args)
- def LoadXmlFile(self, *args): return _chilkat.CkPublicKey_LoadXmlFile(self, *args)
- def LoadOpenSslPem(self, *args): return _chilkat.CkPublicKey_LoadOpenSslPem(self, *args)
- def LoadOpenSslDer(self, *args): return _chilkat.CkPublicKey_LoadOpenSslDer(self, *args)
- def LoadRsaDer(self, *args): return _chilkat.CkPublicKey_LoadRsaDer(self, *args)
- def LoadXml(self, *args): return _chilkat.CkPublicKey_LoadXml(self, *args)
- def SaveRsaDerFile(self, *args): return _chilkat.CkPublicKey_SaveRsaDerFile(self, *args)
- def SaveOpenSslDerFile(self, *args): return _chilkat.CkPublicKey_SaveOpenSslDerFile(self, *args)
- def SaveOpenSslPemFile(self, *args): return _chilkat.CkPublicKey_SaveOpenSslPemFile(self, *args)
- def SaveXmlFile(self, *args): return _chilkat.CkPublicKey_SaveXmlFile(self, *args)
- def GetRsaDer(self, *args): return _chilkat.CkPublicKey_GetRsaDer(self, *args)
- def GetOpenSslDer(self, *args): return _chilkat.CkPublicKey_GetOpenSslDer(self, *args)
- def GetOpenSslPem(self, *args): return _chilkat.CkPublicKey_GetOpenSslPem(self, *args)
- def GetXml(self, *args): return _chilkat.CkPublicKey_GetXml(self, *args)
- def SaveLastError(self, *args): return _chilkat.CkPublicKey_SaveLastError(self, *args)
- def LastErrorXml(self, *args): return _chilkat.CkPublicKey_LastErrorXml(self, *args)
- def LastErrorHtml(self, *args): return _chilkat.CkPublicKey_LastErrorHtml(self, *args)
- def LastErrorText(self, *args): return _chilkat.CkPublicKey_LastErrorText(self, *args)
- def lastErrorText(self): return _chilkat.CkPublicKey_lastErrorText(self)
- def lastErrorXml(self): return _chilkat.CkPublicKey_lastErrorXml(self)
- def lastErrorHtml(self): return _chilkat.CkPublicKey_lastErrorHtml(self)
- def getOpenSslPem(self): return _chilkat.CkPublicKey_getOpenSslPem(self)
- def getXml(self): return _chilkat.CkPublicKey_getXml(self)
-CkPublicKey_swigregister = _chilkat.CkPublicKey_swigregister
-CkPublicKey_swigregister(CkPublicKey)
-
-class CkPrivateKey(_object):
- __swig_setmethods__ = {}
- __setattr__ = lambda self, name, value: _swig_setattr(self, CkPrivateKey, name, value)
- __swig_getmethods__ = {}
- __getattr__ = lambda self, name: _swig_getattr(self, CkPrivateKey, name)
- __repr__ = _swig_repr
- def __init__(self):
- this = _chilkat.new_CkPrivateKey()
- try: self.this.append(this)
- except: self.this = this
- __swig_destroy__ = _chilkat.delete_CkPrivateKey
- __del__ = lambda self : None;
- def get_Utf8(self): return _chilkat.CkPrivateKey_get_Utf8(self)
- def put_Utf8(self, *args): return _chilkat.CkPrivateKey_put_Utf8(self, *args)
- def LoadEncryptedPem(self, *args): return _chilkat.CkPrivateKey_LoadEncryptedPem(self, *args)
- def LoadEncryptedPemFile(self, *args): return _chilkat.CkPrivateKey_LoadEncryptedPemFile(self, *args)
- def LoadPkcs8Encrypted(self, *args): return _chilkat.CkPrivateKey_LoadPkcs8Encrypted(self, *args)
- def LoadPkcs8EncryptedFile(self, *args): return _chilkat.CkPrivateKey_LoadPkcs8EncryptedFile(self, *args)
- def GetPkcs8Encrypted(self, *args): return _chilkat.CkPrivateKey_GetPkcs8Encrypted(self, *args)
- def GetPkcs8EncryptedPem(self, *args): return _chilkat.CkPrivateKey_GetPkcs8EncryptedPem(self, *args)
- def getPkcs8EncryptedPem(self, *args): return _chilkat.CkPrivateKey_getPkcs8EncryptedPem(self, *args)
- def SavePkcs8EncryptedFile(self, *args): return _chilkat.CkPrivateKey_SavePkcs8EncryptedFile(self, *args)
- def SavePkcs8EncryptedPemFile(self, *args): return _chilkat.CkPrivateKey_SavePkcs8EncryptedPemFile(self, *args)
- def LoadPvkFile(self, *args): return _chilkat.CkPrivateKey_LoadPvkFile(self, *args)
- def LoadPvk(self, *args): return _chilkat.CkPrivateKey_LoadPvk(self, *args)
- def LoadRsaDerFile(self, *args): return _chilkat.CkPrivateKey_LoadRsaDerFile(self, *args)
- def LoadPkcs8File(self, *args): return _chilkat.CkPrivateKey_LoadPkcs8File(self, *args)
- def LoadPemFile(self, *args): return _chilkat.CkPrivateKey_LoadPemFile(self, *args)
- def LoadXmlFile(self, *args): return _chilkat.CkPrivateKey_LoadXmlFile(self, *args)
- def LoadPem(self, *args): return _chilkat.CkPrivateKey_LoadPem(self, *args)
- def LoadRsaDer(self, *args): return _chilkat.CkPrivateKey_LoadRsaDer(self, *args)
- def LoadPkcs8(self, *args): return _chilkat.CkPrivateKey_LoadPkcs8(self, *args)
- def LoadXml(self, *args): return _chilkat.CkPrivateKey_LoadXml(self, *args)
- def SaveRsaDerFile(self, *args): return _chilkat.CkPrivateKey_SaveRsaDerFile(self, *args)
- def SavePkcs8File(self, *args): return _chilkat.CkPrivateKey_SavePkcs8File(self, *args)
- def SaveRsaPemFile(self, *args): return _chilkat.CkPrivateKey_SaveRsaPemFile(self, *args)
- def SavePkcs8PemFile(self, *args): return _chilkat.CkPrivateKey_SavePkcs8PemFile(self, *args)
- def SaveXmlFile(self, *args): return _chilkat.CkPrivateKey_SaveXmlFile(self, *args)
- def GetRsaDer(self, *args): return _chilkat.CkPrivateKey_GetRsaDer(self, *args)
- def GetPkcs8(self, *args): return _chilkat.CkPrivateKey_GetPkcs8(self, *args)
- def GetRsaPem(self, *args): return _chilkat.CkPrivateKey_GetRsaPem(self, *args)
- def GetPkcs8Pem(self, *args): return _chilkat.CkPrivateKey_GetPkcs8Pem(self, *args)
- def GetXml(self, *args): return _chilkat.CkPrivateKey_GetXml(self, *args)
- def SaveLastError(self, *args): return _chilkat.CkPrivateKey_SaveLastError(self, *args)
- def LastErrorXml(self, *args): return _chilkat.CkPrivateKey_LastErrorXml(self, *args)
- def LastErrorHtml(self, *args): return _chilkat.CkPrivateKey_LastErrorHtml(self, *args)
- def LastErrorText(self, *args): return _chilkat.CkPrivateKey_LastErrorText(self, *args)
- def lastErrorText(self): return _chilkat.CkPrivateKey_lastErrorText(self)
- def lastErrorXml(self): return _chilkat.CkPrivateKey_lastErrorXml(self)
- def lastErrorHtml(self): return _chilkat.CkPrivateKey_lastErrorHtml(self)
- def getRsaPem(self): return _chilkat.CkPrivateKey_getRsaPem(self)
- def getPkcs8Pem(self): return _chilkat.CkPrivateKey_getPkcs8Pem(self)
- def getXml(self): return _chilkat.CkPrivateKey_getXml(self)
-CkPrivateKey_swigregister = _chilkat.CkPrivateKey_swigregister
-CkPrivateKey_swigregister(CkPrivateKey)
-
-class CkByteData(_object):
- __swig_setmethods__ = {}
- __setattr__ = lambda self, name, value: _swig_setattr(self, CkByteData, name, value)
- __swig_getmethods__ = {}
- __getattr__ = lambda self, name: _swig_getattr(self, CkByteData, name)
- __repr__ = _swig_repr
- def __init__(self):
- this = _chilkat.new_CkByteData()
- try: self.this.append(this)
- except: self.this = this
- __swig_destroy__ = _chilkat.delete_CkByteData
- __del__ = lambda self : None;
- def get_Utf8(self): return _chilkat.CkByteData_get_Utf8(self)
- def put_Utf8(self, *args): return _chilkat.CkByteData_put_Utf8(self, *args)
- def getRange(self, *args): return _chilkat.CkByteData_getRange(self, *args)
- def getRangeStr(self, *args): return _chilkat.CkByteData_getRangeStr(self, *args)
- def to_s(self): return _chilkat.CkByteData_to_s(self)
- def appendInt(self, *args): return _chilkat.CkByteData_appendInt(self, *args)
- def appendShort(self, *args): return _chilkat.CkByteData_appendShort(self, *args)
- def getEncodedRange(self, *args): return _chilkat.CkByteData_getEncodedRange(self, *args)
- def appendRange(self, *args): return _chilkat.CkByteData_appendRange(self, *args)
- def ensureBuffer(self, *args): return _chilkat.CkByteData_ensureBuffer(self, *args)
- def findBytes2(self, *args): return _chilkat.CkByteData_findBytes2(self, *args)
- def findBytes(self, *args): return _chilkat.CkByteData_findBytes(self, *args)
- def beginsWith2(self, *args): return _chilkat.CkByteData_beginsWith2(self, *args)
- def beginsWith(self, *args): return _chilkat.CkByteData_beginsWith(self, *args)
- def removeChunk(self, *args): return _chilkat.CkByteData_removeChunk(self, *args)
- def byteSwap4321(self): return _chilkat.CkByteData_byteSwap4321(self)
- def pad(self, *args): return _chilkat.CkByteData_pad(self, *args)
- def unpad(self, *args): return _chilkat.CkByteData_unpad(self, *args)
- def is7bit(self): return _chilkat.CkByteData_is7bit(self)
- def clear(self): return _chilkat.CkByteData_clear(self)
- def getSize(self): return _chilkat.CkByteData_getSize(self)
- def appendEncoded(self, *args): return _chilkat.CkByteData_appendEncoded(self, *args)
- def encode(self, *args): return _chilkat.CkByteData_encode(self, *args)
- def getData(self): return _chilkat.CkByteData_getData(self)
- def getBytes(self): return _chilkat.CkByteData_getBytes(self)
- def getEncoded(self, *args): return _chilkat.CkByteData_getEncoded(self, *args)
- def append(self, *args): return _chilkat.CkByteData_append(self, *args)
- def appendStr(self, *args): return _chilkat.CkByteData_appendStr(self, *args)
- def appendChar(self, *args): return _chilkat.CkByteData_appendChar(self, *args)
- def getByte(self, *args): return _chilkat.CkByteData_getByte(self, *args)
- def getChar(self, *args): return _chilkat.CkByteData_getChar(self, *args)
- def getUInt(self, *args): return _chilkat.CkByteData_getUInt(self, *args)
- def getInt(self, *args): return _chilkat.CkByteData_getInt(self, *args)
- def getUShort(self, *args): return _chilkat.CkByteData_getUShort(self, *args)
- def getShort(self, *args): return _chilkat.CkByteData_getShort(self, *args)
- def loadFile(self, *args): return _chilkat.CkByteData_loadFile(self, *args)
- def saveFile(self, *args): return _chilkat.CkByteData_saveFile(self, *args)
- def appendFile(self, *args): return _chilkat.CkByteData_appendFile(self, *args)
- def shorten(self, *args): return _chilkat.CkByteData_shorten(self, *args)
-CkByteData_swigregister = _chilkat.CkByteData_swigregister
-CkByteData_swigregister(CkByteData)
-
-class CkSocket(_object):
- __swig_setmethods__ = {}
- __setattr__ = lambda self, name, value: _swig_setattr(self, CkSocket, name, value)
- __swig_getmethods__ = {}
- __getattr__ = lambda self, name: _swig_getattr(self, CkSocket, name)
- __repr__ = _swig_repr
- def __init__(self):
- this = _chilkat.new_CkSocket()
- try: self.this.append(this)
- except: self.this = this
- __swig_destroy__ = _chilkat.delete_CkSocket
- __del__ = lambda self : None;
- def get_Utf8(self): return _chilkat.CkSocket_get_Utf8(self)
- def put_Utf8(self, *args): return _chilkat.CkSocket_put_Utf8(self, *args)
- def DnsLookup(self, *args): return _chilkat.CkSocket_DnsLookup(self, *args)
- def dnsLookup(self, *args): return _chilkat.CkSocket_dnsLookup(self, *args)
- def GetMyCert(self): return _chilkat.CkSocket_GetMyCert(self)
- def GetSslServerCert(self): return _chilkat.CkSocket_GetSslServerCert(self)
- def ReceiveToCRLF(self, *args): return _chilkat.CkSocket_ReceiveToCRLF(self, *args)
- def receiveToCRLF(self): return _chilkat.CkSocket_receiveToCRLF(self)
- def get_SessionLog(self, *args): return _chilkat.CkSocket_get_SessionLog(self, *args)
- def sessionLog(self): return _chilkat.CkSocket_sessionLog(self)
- def get_KeepSessionLog(self): return _chilkat.CkSocket_get_KeepSessionLog(self)
- def put_KeepSessionLog(self, *args): return _chilkat.CkSocket_put_KeepSessionLog(self, *args)
- def get_SessionLogEncoding(self, *args): return _chilkat.CkSocket_get_SessionLogEncoding(self, *args)
- def sessionLogEncoding(self): return _chilkat.CkSocket_sessionLogEncoding(self)
- def put_SessionLogEncoding(self, *args): return _chilkat.CkSocket_put_SessionLogEncoding(self, *args)
- def ReceiveUntilByte(self, *args): return _chilkat.CkSocket_ReceiveUntilByte(self, *args)
- def ClearSessionLog(self): return _chilkat.CkSocket_ClearSessionLog(self)
- def ReceiveStringUntilByte(self, *args): return _chilkat.CkSocket_ReceiveStringUntilByte(self, *args)
- def receiveStringUntilByte(self, *args): return _chilkat.CkSocket_receiveStringUntilByte(self, *args)
- def ReceiveStringMaxN(self, *args): return _chilkat.CkSocket_ReceiveStringMaxN(self, *args)
- def receiveStringMaxN(self, *args): return _chilkat.CkSocket_receiveStringMaxN(self, *args)
- def get_SslProtocol(self, *args): return _chilkat.CkSocket_get_SslProtocol(self, *args)
- def sslProtocol(self): return _chilkat.CkSocket_sslProtocol(self)
- def put_SslProtocol(self, *args): return _chilkat.CkSocket_put_SslProtocol(self, *args)
- def SetSslClientCert(self, *args): return _chilkat.CkSocket_SetSslClientCert(self, *args)
- def get_ClientIpAddress(self, *args): return _chilkat.CkSocket_get_ClientIpAddress(self, *args)
- def clientIpAddress(self): return _chilkat.CkSocket_clientIpAddress(self)
- def put_ClientIpAddress(self, *args): return _chilkat.CkSocket_put_ClientIpAddress(self, *args)
- def SendCount(self, *args): return _chilkat.CkSocket_SendCount(self, *args)
- def ReceiveCount(self): return _chilkat.CkSocket_ReceiveCount(self)
- def get_LastMethodFailed(self): return _chilkat.CkSocket_get_LastMethodFailed(self)
- def ConvertToSsl(self): return _chilkat.CkSocket_ConvertToSsl(self)
- def ConvertFromSsl(self): return _chilkat.CkSocket_ConvertFromSsl(self)
- def get_SoSndBuf(self): return _chilkat.CkSocket_get_SoSndBuf(self)
- def put_SoSndBuf(self, *args): return _chilkat.CkSocket_put_SoSndBuf(self, *args)
- def get_SoRcvBuf(self): return _chilkat.CkSocket_get_SoRcvBuf(self)
- def put_SoRcvBuf(self, *args): return _chilkat.CkSocket_put_SoRcvBuf(self, *args)
- def get_ClientPort(self): return _chilkat.CkSocket_get_ClientPort(self)
- def put_ClientPort(self, *args): return _chilkat.CkSocket_put_ClientPort(self, *args)
- def get_LocalIpAddress(self, *args): return _chilkat.CkSocket_get_LocalIpAddress(self, *args)
- def localIpAddress(self): return _chilkat.CkSocket_localIpAddress(self)
- def get_LocalPort(self): return _chilkat.CkSocket_get_LocalPort(self)
- def get_SocksPort(self): return _chilkat.CkSocket_get_SocksPort(self)
- def put_SocksPort(self, *args): return _chilkat.CkSocket_put_SocksPort(self, *args)
- def get_SocksVersion(self): return _chilkat.CkSocket_get_SocksVersion(self)
- def put_SocksVersion(self, *args): return _chilkat.CkSocket_put_SocksVersion(self, *args)
- def get_SocksUsername(self, *args): return _chilkat.CkSocket_get_SocksUsername(self, *args)
- def socksUsername(self): return _chilkat.CkSocket_socksUsername(self)
- def put_SocksUsername(self, *args): return _chilkat.CkSocket_put_SocksUsername(self, *args)
- def get_SocksPassword(self, *args): return _chilkat.CkSocket_get_SocksPassword(self, *args)
- def socksPassword(self): return _chilkat.CkSocket_socksPassword(self)
- def put_SocksPassword(self, *args): return _chilkat.CkSocket_put_SocksPassword(self, *args)
- def get_SocksHostname(self, *args): return _chilkat.CkSocket_get_SocksHostname(self, *args)
- def socksHostname(self): return _chilkat.CkSocket_socksHostname(self)
- def put_SocksHostname(self, *args): return _chilkat.CkSocket_put_SocksHostname(self, *args)
- def CheckWriteable(self, *args): return _chilkat.CkSocket_CheckWriteable(self, *args)
- def SetSslClientCertPfx(self, *args): return _chilkat.CkSocket_SetSslClientCertPfx(self, *args)
- def get_TcpNoDelay(self): return _chilkat.CkSocket_get_TcpNoDelay(self)
- def put_TcpNoDelay(self, *args): return _chilkat.CkSocket_put_TcpNoDelay(self, *args)
- def get_BigEndian(self): return _chilkat.CkSocket_get_BigEndian(self)
- def put_BigEndian(self, *args): return _chilkat.CkSocket_put_BigEndian(self, *args)
- def PollDataAvailable(self): return _chilkat.CkSocket_PollDataAvailable(self)
- def get_VerboseLogging(self): return _chilkat.CkSocket_get_VerboseLogging(self)
- def put_VerboseLogging(self, *args): return _chilkat.CkSocket_put_VerboseLogging(self, *args)
- def TakeSocket(self, *args): return _chilkat.CkSocket_TakeSocket(self, *args)
- def SelectForReading(self, *args): return _chilkat.CkSocket_SelectForReading(self, *args)
- def SelectForWriting(self, *args): return _chilkat.CkSocket_SelectForWriting(self, *args)
- def get_SelectorIndex(self): return _chilkat.CkSocket_get_SelectorIndex(self)
- def put_SelectorIndex(self, *args): return _chilkat.CkSocket_put_SelectorIndex(self, *args)
- def get_SelectorReadIndex(self): return _chilkat.CkSocket_get_SelectorReadIndex(self)
- def put_SelectorReadIndex(self, *args): return _chilkat.CkSocket_put_SelectorReadIndex(self, *args)
- def get_SelectorWriteIndex(self): return _chilkat.CkSocket_get_SelectorWriteIndex(self)
- def put_SelectorWriteIndex(self, *args): return _chilkat.CkSocket_put_SelectorWriteIndex(self, *args)
- def get_NumSocketsInSet(self): return _chilkat.CkSocket_get_NumSocketsInSet(self)
- def get_UserData(self, *args): return _chilkat.CkSocket_get_UserData(self, *args)
- def userData(self): return _chilkat.CkSocket_userData(self)
- def put_UserData(self, *args): return _chilkat.CkSocket_put_UserData(self, *args)
- def StartTiming(self): return _chilkat.CkSocket_StartTiming(self)
- def get_ElapsedSeconds(self): return _chilkat.CkSocket_get_ElapsedSeconds(self)
- def ReceiveBytesToFile(self, *args): return _chilkat.CkSocket_ReceiveBytesToFile(self, *args)
- def get_HttpProxyUsername(self, *args): return _chilkat.CkSocket_get_HttpProxyUsername(self, *args)
- def httpProxyUsername(self): return _chilkat.CkSocket_httpProxyUsername(self)
- def put_HttpProxyUsername(self, *args): return _chilkat.CkSocket_put_HttpProxyUsername(self, *args)
- def get_HttpProxyPassword(self, *args): return _chilkat.CkSocket_get_HttpProxyPassword(self, *args)
- def httpProxyPassword(self): return _chilkat.CkSocket_httpProxyPassword(self)
- def put_HttpProxyPassword(self, *args): return _chilkat.CkSocket_put_HttpProxyPassword(self, *args)
- def get_HttpProxyAuthMethod(self, *args): return _chilkat.CkSocket_get_HttpProxyAuthMethod(self, *args)
- def httpProxyAuthMethod(self): return _chilkat.CkSocket_httpProxyAuthMethod(self)
- def put_HttpProxyAuthMethod(self, *args): return _chilkat.CkSocket_put_HttpProxyAuthMethod(self, *args)
- def get_HttpProxyHostname(self, *args): return _chilkat.CkSocket_get_HttpProxyHostname(self, *args)
- def httpProxyHostname(self): return _chilkat.CkSocket_httpProxyHostname(self)
- def put_HttpProxyHostname(self, *args): return _chilkat.CkSocket_put_HttpProxyHostname(self, *args)
- def get_HttpProxyPort(self): return _chilkat.CkSocket_get_HttpProxyPort(self)
- def put_HttpProxyPort(self, *args): return _chilkat.CkSocket_put_HttpProxyPort(self, *args)
- def get_NumSslAcceptableClientCAs(self): return _chilkat.CkSocket_get_NumSslAcceptableClientCAs(self)
- def GetSslAcceptableClientCaDn(self, *args): return _chilkat.CkSocket_GetSslAcceptableClientCaDn(self, *args)
- def getSslAcceptableClientCaDn(self, *args): return _chilkat.CkSocket_getSslAcceptableClientCaDn(self, *args)
- def AddSslAcceptableClientCaDn(self, *args): return _chilkat.CkSocket_AddSslAcceptableClientCaDn(self, *args)
- def get_ReceivedCount(self): return _chilkat.CkSocket_get_ReceivedCount(self)
- def put_ReceivedCount(self, *args): return _chilkat.CkSocket_put_ReceivedCount(self, *args)
- def UnlockComponent(self, *args): return _chilkat.CkSocket_UnlockComponent(self, *args)
- def IsUnlocked(self): return _chilkat.CkSocket_IsUnlocked(self)
- def AsyncSendBytes(self, *args): return _chilkat.CkSocket_AsyncSendBytes(self, *args)
- def AsyncSendString(self, *args): return _chilkat.CkSocket_AsyncSendString(self, *args)
- def get_AsyncSendFinished(self): return _chilkat.CkSocket_get_AsyncSendFinished(self)
- def AsyncSendAbort(self): return _chilkat.CkSocket_AsyncSendAbort(self)
- def get_AsyncSendLog(self, *args): return _chilkat.CkSocket_get_AsyncSendLog(self, *args)
- def get_AsyncSendSuccess(self): return _chilkat.CkSocket_get_AsyncSendSuccess(self)
- def AsyncReceiveBytes(self): return _chilkat.CkSocket_AsyncReceiveBytes(self)
- def AsyncReceiveBytesN(self, *args): return _chilkat.CkSocket_AsyncReceiveBytesN(self, *args)
- def AsyncReceiveString(self): return _chilkat.CkSocket_AsyncReceiveString(self)
- def AsyncReceiveToCRLF(self): return _chilkat.CkSocket_AsyncReceiveToCRLF(self)
- def AsyncReceiveUntilMatch(self, *args): return _chilkat.CkSocket_AsyncReceiveUntilMatch(self, *args)
- def get_AsyncReceiveFinished(self): return _chilkat.CkSocket_get_AsyncReceiveFinished(self)
- def AsyncReceiveAbort(self): return _chilkat.CkSocket_AsyncReceiveAbort(self)
- def get_AsyncReceiveLog(self, *args): return _chilkat.CkSocket_get_AsyncReceiveLog(self, *args)
- def get_AsyncReceiveSuccess(self): return _chilkat.CkSocket_get_AsyncReceiveSuccess(self)
- def get_AsyncReceivedString(self, *args): return _chilkat.CkSocket_get_AsyncReceivedString(self, *args)
- def get_AsyncReceivedBytes(self, *args): return _chilkat.CkSocket_get_AsyncReceivedBytes(self, *args)
- def asyncReceivedString(self): return _chilkat.CkSocket_asyncReceivedString(self)
- def asyncReceiveLog(self): return _chilkat.CkSocket_asyncReceiveLog(self)
- def asyncSendLog(self): return _chilkat.CkSocket_asyncSendLog(self)
- def SleepMs(self, *args): return _chilkat.CkSocket_SleepMs(self, *args)
- def Close(self, *args): return _chilkat.CkSocket_Close(self, *args)
- def get_ObjectId(self): return _chilkat.CkSocket_get_ObjectId(self)
- def SaveLastError(self, *args): return _chilkat.CkSocket_SaveLastError(self, *args)
- def LastErrorXml(self, *args): return _chilkat.CkSocket_LastErrorXml(self, *args)
- def LastErrorHtml(self, *args): return _chilkat.CkSocket_LastErrorHtml(self, *args)
- def LastErrorText(self, *args): return _chilkat.CkSocket_LastErrorText(self, *args)
- def get_Version(self, *args): return _chilkat.CkSocket_get_Version(self, *args)
- def AsyncDnsStart(self, *args): return _chilkat.CkSocket_AsyncDnsStart(self, *args)
- def get_AsyncDnsFinished(self): return _chilkat.CkSocket_get_AsyncDnsFinished(self)
- def get_AsyncDnsResult(self, *args): return _chilkat.CkSocket_get_AsyncDnsResult(self, *args)
- def AsyncDnsAbort(self): return _chilkat.CkSocket_AsyncDnsAbort(self)
- def get_AsyncDnsLog(self, *args): return _chilkat.CkSocket_get_AsyncDnsLog(self, *args)
- def get_AsyncDnsSuccess(self): return _chilkat.CkSocket_get_AsyncDnsSuccess(self)
- def AsyncConnectStart(self, *args): return _chilkat.CkSocket_AsyncConnectStart(self, *args)
- def get_AsyncConnectFinished(self): return _chilkat.CkSocket_get_AsyncConnectFinished(self)
- def AsyncConnectAbort(self): return _chilkat.CkSocket_AsyncConnectAbort(self)
- def get_AsyncConnectLog(self, *args): return _chilkat.CkSocket_get_AsyncConnectLog(self, *args)
- def get_AsyncConnectSuccess(self): return _chilkat.CkSocket_get_AsyncConnectSuccess(self)
- def get_MyIpAddress(self, *args): return _chilkat.CkSocket_get_MyIpAddress(self, *args)
- def BindAndListen(self, *args): return _chilkat.CkSocket_BindAndListen(self, *args)
- def Connect(self, *args): return _chilkat.CkSocket_Connect(self, *args)
- def AcceptNextConnection(self, *args): return _chilkat.CkSocket_AcceptNextConnection(self, *args)
- def get_Ssl(self): return _chilkat.CkSocket_get_Ssl(self)
- def put_Ssl(self, *args): return _chilkat.CkSocket_put_Ssl(self, *args)
- def InitSslServer(self, *args): return _chilkat.CkSocket_InitSslServer(self, *args)
- def get_ConnectFailReason(self): return _chilkat.CkSocket_get_ConnectFailReason(self)
- def get_HeartbeatMs(self): return _chilkat.CkSocket_get_HeartbeatMs(self)
- def put_HeartbeatMs(self, *args): return _chilkat.CkSocket_put_HeartbeatMs(self, *args)
- def get_MaxSendIdleMs(self): return _chilkat.CkSocket_get_MaxSendIdleMs(self)
- def put_MaxSendIdleMs(self, *args): return _chilkat.CkSocket_put_MaxSendIdleMs(self, *args)
- def get_MaxReadIdleMs(self): return _chilkat.CkSocket_get_MaxReadIdleMs(self)
- def put_MaxReadIdleMs(self, *args): return _chilkat.CkSocket_put_MaxReadIdleMs(self, *args)
- def get_StringCharset(self, *args): return _chilkat.CkSocket_get_StringCharset(self, *args)
- def put_StringCharset(self, *args): return _chilkat.CkSocket_put_StringCharset(self, *args)
- def get_DebugDnsDelayMs(self): return _chilkat.CkSocket_get_DebugDnsDelayMs(self)
- def put_DebugDnsDelayMs(self, *args): return _chilkat.CkSocket_put_DebugDnsDelayMs(self, *args)
- def get_DebugConnectDelayMs(self): return _chilkat.CkSocket_get_DebugConnectDelayMs(self)
- def put_DebugConnectDelayMs(self, *args): return _chilkat.CkSocket_put_DebugConnectDelayMs(self, *args)
- def get_IsConnected(self): return _chilkat.CkSocket_get_IsConnected(self)
- def get_RemotePort(self): return _chilkat.CkSocket_get_RemotePort(self)
- def get_RemoteIpAddress(self, *args): return _chilkat.CkSocket_get_RemoteIpAddress(self, *args)
- def AsyncAcceptStart(self, *args): return _chilkat.CkSocket_AsyncAcceptStart(self, *args)
- def get_AsyncAcceptFinished(self): return _chilkat.CkSocket_get_AsyncAcceptFinished(self)
- def AsyncAcceptAbort(self): return _chilkat.CkSocket_AsyncAcceptAbort(self)
- def get_AsyncAcceptLog(self, *args): return _chilkat.CkSocket_get_AsyncAcceptLog(self, *args)
- def get_AsyncAcceptSuccess(self): return _chilkat.CkSocket_get_AsyncAcceptSuccess(self)
- def AsyncAcceptSocket(self): return _chilkat.CkSocket_AsyncAcceptSocket(self)
- def BuildHttpGetRequest(self, *args): return _chilkat.CkSocket_BuildHttpGetRequest(self, *args)
- def get_SendPacketSize(self): return _chilkat.CkSocket_get_SendPacketSize(self)
- def put_SendPacketSize(self, *args): return _chilkat.CkSocket_put_SendPacketSize(self, *args)
- def get_ReceivePacketSize(self): return _chilkat.CkSocket_get_ReceivePacketSize(self)
- def put_ReceivePacketSize(self, *args): return _chilkat.CkSocket_put_ReceivePacketSize(self, *args)
- def SendString(self, *args): return _chilkat.CkSocket_SendString(self, *args)
- def SendBytes(self, *args): return _chilkat.CkSocket_SendBytes(self, *args)
- def ReceiveString(self, *args): return _chilkat.CkSocket_ReceiveString(self, *args)
- def ReceiveUntilMatch(self, *args): return _chilkat.CkSocket_ReceiveUntilMatch(self, *args)
- def ReceiveBytes(self, *args): return _chilkat.CkSocket_ReceiveBytes(self, *args)
- def ReceiveBytesN(self, *args): return _chilkat.CkSocket_ReceiveBytesN(self, *args)
- def stringCharset(self): return _chilkat.CkSocket_stringCharset(self)
- def remoteIpAddress(self): return _chilkat.CkSocket_remoteIpAddress(self)
- def asyncAcceptLog(self): return _chilkat.CkSocket_asyncAcceptLog(self)
- def buildHttpGetRequest(self, *args): return _chilkat.CkSocket_buildHttpGetRequest(self, *args)
- def receiveString(self): return _chilkat.CkSocket_receiveString(self)
- def receiveUntilMatch(self, *args): return _chilkat.CkSocket_receiveUntilMatch(self, *args)
- def lastErrorText(self): return _chilkat.CkSocket_lastErrorText(self)
- def lastErrorXml(self): return _chilkat.CkSocket_lastErrorXml(self)
- def lastErrorHtml(self): return _chilkat.CkSocket_lastErrorHtml(self)
- def asyncDnsResult(self): return _chilkat.CkSocket_asyncDnsResult(self)
- def asyncDnsLog(self): return _chilkat.CkSocket_asyncDnsLog(self)
- def asyncConnectLog(self): return _chilkat.CkSocket_asyncConnectLog(self)
- def myIpAddress(self): return _chilkat.CkSocket_myIpAddress(self)
- def version(self): return _chilkat.CkSocket_version(self)
-CkSocket_swigregister = _chilkat.CkSocket_swigregister
-CkSocket_swigregister(CkSocket)
-
-class CkOmaDrm(_object):
- __swig_setmethods__ = {}
- __setattr__ = lambda self, name, value: _swig_setattr(self, CkOmaDrm, name, value)
- __swig_getmethods__ = {}
- __getattr__ = lambda self, name: _swig_getattr(self, CkOmaDrm, name)
- __repr__ = _swig_repr
- def __init__(self):
- this = _chilkat.new_CkOmaDrm()
- try: self.this.append(this)
- except: self.this = this
- __swig_destroy__ = _chilkat.delete_CkOmaDrm
- __del__ = lambda self : None;
- def get_Utf8(self): return _chilkat.CkOmaDrm_get_Utf8(self)
- def put_Utf8(self, *args): return _chilkat.CkOmaDrm_put_Utf8(self, *args)
- def UnlockComponent(self, *args): return _chilkat.CkOmaDrm_UnlockComponent(self, *args)
- def SaveLastError(self, *args): return _chilkat.CkOmaDrm_SaveLastError(self, *args)
- def LastErrorXml(self, *args): return _chilkat.CkOmaDrm_LastErrorXml(self, *args)
- def LastErrorHtml(self, *args): return _chilkat.CkOmaDrm_LastErrorHtml(self, *args)
- def LastErrorText(self, *args): return _chilkat.CkOmaDrm_LastErrorText(self, *args)
- def LoadDcfFile(self, *args): return _chilkat.CkOmaDrm_LoadDcfFile(self, *args)
- def LoadDcfData(self, *args): return _chilkat.CkOmaDrm_LoadDcfData(self, *args)
- def get_Base64Key(self, *args): return _chilkat.CkOmaDrm_get_Base64Key(self, *args)
- def put_Base64Key(self, *args): return _chilkat.CkOmaDrm_put_Base64Key(self, *args)
- def get_DrmContentVersion(self): return _chilkat.CkOmaDrm_get_DrmContentVersion(self)
- def get_ContentType(self, *args): return _chilkat.CkOmaDrm_get_ContentType(self, *args)
- def put_ContentType(self, *args): return _chilkat.CkOmaDrm_put_ContentType(self, *args)
- def get_ContentUri(self, *args): return _chilkat.CkOmaDrm_get_ContentUri(self, *args)
- def put_ContentUri(self, *args): return _chilkat.CkOmaDrm_put_ContentUri(self, *args)
- def get_Headers(self, *args): return _chilkat.CkOmaDrm_get_Headers(self, *args)
- def put_Headers(self, *args): return _chilkat.CkOmaDrm_put_Headers(self, *args)
- def get_IV(self, *args): return _chilkat.CkOmaDrm_get_IV(self, *args)
- def put_IV(self, *args): return _chilkat.CkOmaDrm_put_IV(self, *args)
- def get_EncryptedData(self, *args): return _chilkat.CkOmaDrm_get_EncryptedData(self, *args)
- def get_DecryptedData(self, *args): return _chilkat.CkOmaDrm_get_DecryptedData(self, *args)
- def SaveDecrypted(self, *args): return _chilkat.CkOmaDrm_SaveDecrypted(self, *args)
- def GetHeaderField(self, *args): return _chilkat.CkOmaDrm_GetHeaderField(self, *args)
- def LoadUnencryptedData(self, *args): return _chilkat.CkOmaDrm_LoadUnencryptedData(self, *args)
- def LoadUnencryptedFile(self, *args): return _chilkat.CkOmaDrm_LoadUnencryptedFile(self, *args)
- def SetEncodedIV(self, *args): return _chilkat.CkOmaDrm_SetEncodedIV(self, *args)
- def CreateDcfFile(self, *args): return _chilkat.CkOmaDrm_CreateDcfFile(self, *args)
- def lastErrorText(self): return _chilkat.CkOmaDrm_lastErrorText(self)
- def lastErrorXml(self): return _chilkat.CkOmaDrm_lastErrorXml(self)
- def lastErrorHtml(self): return _chilkat.CkOmaDrm_lastErrorHtml(self)
- def base64Key(self): return _chilkat.CkOmaDrm_base64Key(self)
- def contentType(self): return _chilkat.CkOmaDrm_contentType(self)
- def contentUri(self): return _chilkat.CkOmaDrm_contentUri(self)
- def headers(self): return _chilkat.CkOmaDrm_headers(self)
- def getHeaderField(self, *args): return _chilkat.CkOmaDrm_getHeaderField(self, *args)
-CkOmaDrm_swigregister = _chilkat.CkOmaDrm_swigregister
-CkOmaDrm_swigregister(CkOmaDrm)
-
-class CkXmp(_object):
- __swig_setmethods__ = {}
- __setattr__ = lambda self, name, value: _swig_setattr(self, CkXmp, name, value)
- __swig_getmethods__ = {}
- __getattr__ = lambda self, name: _swig_getattr(self, CkXmp, name)
- __repr__ = _swig_repr
- def __init__(self):
- this = _chilkat.new_CkXmp()
- try: self.this.append(this)
- except: self.this = this
- __swig_destroy__ = _chilkat.delete_CkXmp
- __del__ = lambda self : None;
- def get_Utf8(self): return _chilkat.CkXmp_get_Utf8(self)
- def put_Utf8(self, *args): return _chilkat.CkXmp_put_Utf8(self, *args)
- def lastErrorText(self): return _chilkat.CkXmp_lastErrorText(self)
- def lastErrorXml(self): return _chilkat.CkXmp_lastErrorXml(self)
- def lastErrorHtml(self): return _chilkat.CkXmp_lastErrorHtml(self)
- def getSimpleStr(self, *args): return _chilkat.CkXmp_getSimpleStr(self, *args)
- def getStructValue(self, *args): return _chilkat.CkXmp_getStructValue(self, *args)
- def simpleStr(self, *args): return _chilkat.CkXmp_simpleStr(self, *args)
- def structValue(self, *args): return _chilkat.CkXmp_structValue(self, *args)
- def version(self): return _chilkat.CkXmp_version(self)
- def dateToString(self, *args): return _chilkat.CkXmp_dateToString(self, *args)
- def LoadFromBuffer(self, *args): return _chilkat.CkXmp_LoadFromBuffer(self, *args)
- def SaveToBuffer(self, *args): return _chilkat.CkXmp_SaveToBuffer(self, *args)
- def SaveLastError(self, *args): return _chilkat.CkXmp_SaveLastError(self, *args)
- def LastErrorXml(self, *args): return _chilkat.CkXmp_LastErrorXml(self, *args)
- def LastErrorHtml(self, *args): return _chilkat.CkXmp_LastErrorHtml(self, *args)
- def LastErrorText(self, *args): return _chilkat.CkXmp_LastErrorText(self, *args)
- def UnlockComponent(self, *args): return _chilkat.CkXmp_UnlockComponent(self, *args)
- def get_Version(self, *args): return _chilkat.CkXmp_get_Version(self, *args)
- def get_NumEmbedded(self): return _chilkat.CkXmp_get_NumEmbedded(self)
- def LoadAppFile(self, *args): return _chilkat.CkXmp_LoadAppFile(self, *args)
- def SaveAppFile(self, *args): return _chilkat.CkXmp_SaveAppFile(self, *args)
- def GetEmbedded(self, *args): return _chilkat.CkXmp_GetEmbedded(self, *args)
- def GetSimpleStr(self, *args): return _chilkat.CkXmp_GetSimpleStr(self, *args)
- def GetSimpleInt(self, *args): return _chilkat.CkXmp_GetSimpleInt(self, *args)
- def GetSimpleDate(self, *args): return _chilkat.CkXmp_GetSimpleDate(self, *args)
- def AddSimpleStr(self, *args): return _chilkat.CkXmp_AddSimpleStr(self, *args)
- def AddSimpleInt(self, *args): return _chilkat.CkXmp_AddSimpleInt(self, *args)
- def AddSimpleDate(self, *args): return _chilkat.CkXmp_AddSimpleDate(self, *args)
- def AddNsMapping(self, *args): return _chilkat.CkXmp_AddNsMapping(self, *args)
- def RemoveNsMapping(self, *args): return _chilkat.CkXmp_RemoveNsMapping(self, *args)
- def NewXmp(self, *args): return _chilkat.CkXmp_NewXmp(self, *args)
- def StringToDate(self, *args): return _chilkat.CkXmp_StringToDate(self, *args)
- def DateToString(self, *args): return _chilkat.CkXmp_DateToString(self, *args)
- def RemoveSimple(self, *args): return _chilkat.CkXmp_RemoveSimple(self, *args)
- def Append(self, *args): return _chilkat.CkXmp_Append(self, *args)
- def RemoveAllEmbedded(self): return _chilkat.CkXmp_RemoveAllEmbedded(self)
- def RemoveEmbedded(self, *args): return _chilkat.CkXmp_RemoveEmbedded(self, *args)
- def get_StructInnerDescrip(self): return _chilkat.CkXmp_get_StructInnerDescrip(self)
- def put_StructInnerDescrip(self, *args): return _chilkat.CkXmp_put_StructInnerDescrip(self, *args)
- def GetArray(self, *args): return _chilkat.CkXmp_GetArray(self, *args)
- def RemoveArray(self, *args): return _chilkat.CkXmp_RemoveArray(self, *args)
- def AddArray(self, *args): return _chilkat.CkXmp_AddArray(self, *args)
- def GetStructValue(self, *args): return _chilkat.CkXmp_GetStructValue(self, *args)
- def GetStructPropNames(self, *args): return _chilkat.CkXmp_GetStructPropNames(self, *args)
- def RemoveStruct(self, *args): return _chilkat.CkXmp_RemoveStruct(self, *args)
- def RemoveStructProp(self, *args): return _chilkat.CkXmp_RemoveStructProp(self, *args)
- def AddStructProp(self, *args): return _chilkat.CkXmp_AddStructProp(self, *args)
-CkXmp_swigregister = _chilkat.CkXmp_swigregister
-CkXmp_swigregister(CkXmp)
-
-class CkStringArray(_object):
- __swig_setmethods__ = {}
- __setattr__ = lambda self, name, value: _swig_setattr(self, CkStringArray, name, value)
- __swig_getmethods__ = {}
- __getattr__ = lambda self, name: _swig_getattr(self, CkStringArray, name)
- __repr__ = _swig_repr
- def __init__(self):
- this = _chilkat.new_CkStringArray()
- try: self.this.append(this)
- except: self.this = this
- __swig_destroy__ = _chilkat.delete_CkStringArray
- __del__ = lambda self : None;
- def strAt(self, *args): return _chilkat.CkStringArray_strAt(self, *args)
- def getString(self, *args): return _chilkat.CkStringArray_getString(self, *args)
- def serialize(self): return _chilkat.CkStringArray_serialize(self)
- def pop(self): return _chilkat.CkStringArray_pop(self)
- def lastStr(self): return _chilkat.CkStringArray_lastStr(self)
- def LoadFromText(self, *args): return _chilkat.CkStringArray_LoadFromText(self, *args)
- def SaveNthToFile(self, *args): return _chilkat.CkStringArray_SaveNthToFile(self, *args)
- def SaveToText(self, *args): return _chilkat.CkStringArray_SaveToText(self, *args)
- def saveToText(self): return _chilkat.CkStringArray_saveToText(self)
- def FindFirstMatch(self, *args): return _chilkat.CkStringArray_FindFirstMatch(self, *args)
- def Union(self, *args): return _chilkat.CkStringArray_Union(self, *args)
- def GetStringLen(self, *args): return _chilkat.CkStringArray_GetStringLen(self, *args)
- def get_Utf8(self): return _chilkat.CkStringArray_get_Utf8(self)
- def put_Utf8(self, *args): return _chilkat.CkStringArray_put_Utf8(self, *args)
- def SplitAndAppend(self, *args): return _chilkat.CkStringArray_SplitAndAppend(self, *args)
- def Append(self, *args): return _chilkat.CkStringArray_Append(self, *args)
- def get_Count(self): return _chilkat.CkStringArray_get_Count(self)
- def LoadFromFile(self, *args): return _chilkat.CkStringArray_LoadFromFile(self, *args)
- def SaveToFile(self, *args): return _chilkat.CkStringArray_SaveToFile(self, *args)
- def Pop(self, *args): return _chilkat.CkStringArray_Pop(self, *args)
- def LastString(self, *args): return _chilkat.CkStringArray_LastString(self, *args)
- def RemoveAt(self, *args): return _chilkat.CkStringArray_RemoveAt(self, *args)
- def InsertAt(self, *args): return _chilkat.CkStringArray_InsertAt(self, *args)
- def Find(self, *args): return _chilkat.CkStringArray_Find(self, *args)
- def Prepend(self, *args): return _chilkat.CkStringArray_Prepend(self, *args)
- def get_Crlf(self): return _chilkat.CkStringArray_get_Crlf(self)
- def put_Crlf(self, *args): return _chilkat.CkStringArray_put_Crlf(self, *args)
- def get_Trim(self): return _chilkat.CkStringArray_get_Trim(self)
- def put_Trim(self, *args): return _chilkat.CkStringArray_put_Trim(self, *args)
- def get_Unique(self): return _chilkat.CkStringArray_get_Unique(self)
- def put_Unique(self, *args): return _chilkat.CkStringArray_put_Unique(self, *args)
- def Serialize(self, *args): return _chilkat.CkStringArray_Serialize(self, *args)
- def AppendSerialized(self, *args): return _chilkat.CkStringArray_AppendSerialized(self, *args)
- def GetString(self, *args): return _chilkat.CkStringArray_GetString(self, *args)
- def Remove(self, *args): return _chilkat.CkStringArray_Remove(self, *args)
- def Contains(self, *args): return _chilkat.CkStringArray_Contains(self, *args)
- def Clear(self): return _chilkat.CkStringArray_Clear(self)
- def Sort(self, *args): return _chilkat.CkStringArray_Sort(self, *args)
-CkStringArray_swigregister = _chilkat.CkStringArray_swigregister
-CkStringArray_swigregister(CkStringArray)
-
-class CkZipCrc(_object):
- __swig_setmethods__ = {}
- __setattr__ = lambda self, name, value: _swig_setattr(self, CkZipCrc, name, value)
- __swig_getmethods__ = {}
- __getattr__ = lambda self, name: _swig_getattr(self, CkZipCrc, name)
- __repr__ = _swig_repr
- def __init__(self):
- this = _chilkat.new_CkZipCrc()
- try: self.this.append(this)
- except: self.this = this
- __swig_destroy__ = _chilkat.delete_CkZipCrc
- __del__ = lambda self : None;
- def get_Utf8(self): return _chilkat.CkZipCrc_get_Utf8(self)
- def put_Utf8(self, *args): return _chilkat.CkZipCrc_put_Utf8(self, *args)
- def ToHex(self, *args): return _chilkat.CkZipCrc_ToHex(self, *args)
- def FileCrc(self, *args): return _chilkat.CkZipCrc_FileCrc(self, *args)
- def CalculateCrc(self, *args): return _chilkat.CkZipCrc_CalculateCrc(self, *args)
- def MoreData(self, *args): return _chilkat.CkZipCrc_MoreData(self, *args)
- def EndStream(self): return _chilkat.CkZipCrc_EndStream(self)
- def BeginStream(self): return _chilkat.CkZipCrc_BeginStream(self)
- def toHex(self, *args): return _chilkat.CkZipCrc_toHex(self, *args)
-CkZipCrc_swigregister = _chilkat.CkZipCrc_swigregister
-CkZipCrc_swigregister(CkZipCrc)
-
-class CkZip(_object):
- __swig_setmethods__ = {}
- __setattr__ = lambda self, name, value: _swig_setattr(self, CkZip, name, value)
- __swig_getmethods__ = {}
- __getattr__ = lambda self, name: _swig_getattr(self, CkZip, name)
- __repr__ = _swig_repr
- def __init__(self):
- this = _chilkat.new_CkZip()
- try: self.this.append(this)
- except: self.this = this
- __swig_destroy__ = _chilkat.delete_CkZip
- __del__ = lambda self : None;
- def get_Utf8(self): return _chilkat.CkZip_get_Utf8(self)
- def put_Utf8(self, *args): return _chilkat.CkZip_put_Utf8(self, *args)
- def get_ExeWaitForSetup(self): return _chilkat.CkZip_get_ExeWaitForSetup(self)
- def put_ExeWaitForSetup(self, *args): return _chilkat.CkZip_put_ExeWaitForSetup(self, *args)
- def get_FileCount(self): return _chilkat.CkZip_get_FileCount(self)
- def get_HasZipFormatErrors(self): return _chilkat.CkZip_get_HasZipFormatErrors(self)
- def get_TextFlag(self): return _chilkat.CkZip_get_TextFlag(self)
- def put_TextFlag(self, *args): return _chilkat.CkZip_put_TextFlag(self, *args)
- def ExtractInto(self, *args): return _chilkat.CkZip_ExtractInto(self, *args)
- def get_CaseSensitive(self): return _chilkat.CkZip_get_CaseSensitive(self)
- def put_CaseSensitive(self, *args): return _chilkat.CkZip_put_CaseSensitive(self, *args)
- def VerifyPassword(self): return _chilkat.CkZip_VerifyPassword(self)
- def WriteExeToMemory(self, *args): return _chilkat.CkZip_WriteExeToMemory(self, *args)
- def get_OverwriteExisting(self): return _chilkat.CkZip_get_OverwriteExisting(self)
- def put_OverwriteExisting(self, *args): return _chilkat.CkZip_put_OverwriteExisting(self, *args)
- def AddNoCompressExtension(self, *args): return _chilkat.CkZip_AddNoCompressExtension(self, *args)
- def RemoveNoCompressExtension(self, *args): return _chilkat.CkZip_RemoveNoCompressExtension(self, *args)
- def IsNoCompressExtension(self, *args): return _chilkat.CkZip_IsNoCompressExtension(self, *args)
- def get_VerboseLogging(self): return _chilkat.CkZip_get_VerboseLogging(self)
- def put_VerboseLogging(self, *args): return _chilkat.CkZip_put_VerboseLogging(self, *args)
- def get_IgnoreAccessDenied(self): return _chilkat.CkZip_get_IgnoreAccessDenied(self)
- def put_IgnoreAccessDenied(self, *args): return _chilkat.CkZip_put_IgnoreAccessDenied(self, *args)
- def get_ClearReadOnlyAttr(self): return _chilkat.CkZip_get_ClearReadOnlyAttr(self)
- def put_ClearReadOnlyAttr(self, *args): return _chilkat.CkZip_put_ClearReadOnlyAttr(self, *args)
- def lastErrorText(self): return _chilkat.CkZip_lastErrorText(self)
- def lastErrorXml(self): return _chilkat.CkZip_lastErrorXml(self)
- def lastErrorHtml(self): return _chilkat.CkZip_lastErrorHtml(self)
- def QuickAppend(self, *args): return _chilkat.CkZip_QuickAppend(self, *args)
- def SetExeConfigParam(self, *args): return _chilkat.CkZip_SetExeConfigParam(self, *args)
- def GetExeConfigParam(self, *args): return _chilkat.CkZip_GetExeConfigParam(self, *args)
- def getExeConfigParam(self, *args): return _chilkat.CkZip_getExeConfigParam(self, *args)
- def get_ExeXmlConfig(self, *args): return _chilkat.CkZip_get_ExeXmlConfig(self, *args)
- def put_ExeXmlConfig(self, *args): return _chilkat.CkZip_put_ExeXmlConfig(self, *args)
- def exeXmlConfig(self): return _chilkat.CkZip_exeXmlConfig(self)
- def get_ExeSourceUrl(self, *args): return _chilkat.CkZip_get_ExeSourceUrl(self, *args)
- def put_ExeSourceUrl(self, *args): return _chilkat.CkZip_put_ExeSourceUrl(self, *args)
- def exeSourceUrl(self): return _chilkat.CkZip_exeSourceUrl(self)
- def get_ExeDefaultDir(self, *args): return _chilkat.CkZip_get_ExeDefaultDir(self, *args)
- def put_ExeDefaultDir(self, *args): return _chilkat.CkZip_put_ExeDefaultDir(self, *args)
- def put_ExeFinishNotifier(self, *args): return _chilkat.CkZip_put_ExeFinishNotifier(self, *args)
- def get_ExeFinishNotifier(self): return _chilkat.CkZip_get_ExeFinishNotifier(self)
- def put_ExeSilentProgress(self, *args): return _chilkat.CkZip_put_ExeSilentProgress(self, *args)
- def get_ExeSilentProgress(self): return _chilkat.CkZip_get_ExeSilentProgress(self)
- def version(self): return _chilkat.CkZip_version(self)
- def tempDir(self): return _chilkat.CkZip_tempDir(self)
- def appendFromDir(self): return _chilkat.CkZip_appendFromDir(self)
- def proxy(self): return _chilkat.CkZip_proxy(self)
- def autoRun(self): return _chilkat.CkZip_autoRun(self)
- def autoRunParams(self): return _chilkat.CkZip_autoRunParams(self)
- def exeTitle(self): return _chilkat.CkZip_exeTitle(self)
- def exeUnzipCaption(self): return _chilkat.CkZip_exeUnzipCaption(self)
- def exeUnzipDir(self): return _chilkat.CkZip_exeUnzipDir(self)
- def exeDefaultDir(self): return _chilkat.CkZip_exeDefaultDir(self)
- def exeIconFile(self): return _chilkat.CkZip_exeIconFile(self)
- def fileName(self): return _chilkat.CkZip_fileName(self)
- def pathPrefix(self): return _chilkat.CkZip_pathPrefix(self)
- def getDirectoryAsXML(self): return _chilkat.CkZip_getDirectoryAsXML(self)
- def get_PasswordProtect(self): return _chilkat.CkZip_get_PasswordProtect(self)
- def put_PasswordProtect(self, *args): return _chilkat.CkZip_put_PasswordProtect(self, *args)
- def get_Encryption(self): return _chilkat.CkZip_get_Encryption(self)
- def put_Encryption(self, *args): return _chilkat.CkZip_put_Encryption(self, *args)
- def get_OemCodePage(self): return _chilkat.CkZip_get_OemCodePage(self)
- def put_OemCodePage(self, *args): return _chilkat.CkZip_put_OemCodePage(self, *args)
- def get_EncryptKeyLength(self): return _chilkat.CkZip_get_EncryptKeyLength(self)
- def put_EncryptKeyLength(self, *args): return _chilkat.CkZip_put_EncryptKeyLength(self, *args)
- def get_Version(self, *args): return _chilkat.CkZip_get_Version(self, *args)
- def get_TempDir(self, *args): return _chilkat.CkZip_get_TempDir(self, *args)
- def put_TempDir(self, *args): return _chilkat.CkZip_put_TempDir(self, *args)
- def get_AppendFromDir(self, *args): return _chilkat.CkZip_get_AppendFromDir(self, *args)
- def put_AppendFromDir(self, *args): return _chilkat.CkZip_put_AppendFromDir(self, *args)
- def get_Proxy(self, *args): return _chilkat.CkZip_get_Proxy(self, *args)
- def put_Proxy(self, *args): return _chilkat.CkZip_put_Proxy(self, *args)
- def get_DecryptPassword(self, *args): return _chilkat.CkZip_get_DecryptPassword(self, *args)
- def put_DecryptPassword(self, *args): return _chilkat.CkZip_put_DecryptPassword(self, *args)
- def get_EncryptPassword(self, *args): return _chilkat.CkZip_get_EncryptPassword(self, *args)
- def put_EncryptPassword(self, *args): return _chilkat.CkZip_put_EncryptPassword(self, *args)
- def encryptPassword(self): return _chilkat.CkZip_encryptPassword(self)
- def decryptPassword(self): return _chilkat.CkZip_decryptPassword(self)
- def get_AutoRun(self, *args): return _chilkat.CkZip_get_AutoRun(self, *args)
- def put_AutoRun(self, *args): return _chilkat.CkZip_put_AutoRun(self, *args)
- def get_AutoTemp(self): return _chilkat.CkZip_get_AutoTemp(self)
- def put_AutoTemp(self, *args): return _chilkat.CkZip_put_AutoTemp(self, *args)
- def get_ExeNoInterface(self): return _chilkat.CkZip_get_ExeNoInterface(self)
- def put_ExeNoInterface(self, *args): return _chilkat.CkZip_put_ExeNoInterface(self, *args)
- def get_AutoRunParams(self, *args): return _chilkat.CkZip_get_AutoRunParams(self, *args)
- def put_AutoRunParams(self, *args): return _chilkat.CkZip_put_AutoRunParams(self, *args)
- def get_ExeTitle(self, *args): return _chilkat.CkZip_get_ExeTitle(self, *args)
- def put_ExeTitle(self, *args): return _chilkat.CkZip_put_ExeTitle(self, *args)
- def get_ExeUnzipCaption(self, *args): return _chilkat.CkZip_get_ExeUnzipCaption(self, *args)
- def put_ExeUnzipCaption(self, *args): return _chilkat.CkZip_put_ExeUnzipCaption(self, *args)
- def get_ExeUnzipDir(self, *args): return _chilkat.CkZip_get_ExeUnzipDir(self, *args)
- def put_ExeUnzipDir(self, *args): return _chilkat.CkZip_put_ExeUnzipDir(self, *args)
- def get_ExeIconFile(self, *args): return _chilkat.CkZip_get_ExeIconFile(self, *args)
- def put_ExeIconFile(self, *args): return _chilkat.CkZip_put_ExeIconFile(self, *args)
- def get_ClearArchiveAttribute(self): return _chilkat.CkZip_get_ClearArchiveAttribute(self)
- def put_ClearArchiveAttribute(self, *args): return _chilkat.CkZip_put_ClearArchiveAttribute(self, *args)
- def get_NumEntries(self): return _chilkat.CkZip_get_NumEntries(self)
- def get_FileName(self, *args): return _chilkat.CkZip_get_FileName(self, *args)
- def put_FileName(self, *args): return _chilkat.CkZip_put_FileName(self, *args)
- def get_Comment(self, *args): return _chilkat.CkZip_get_Comment(self, *args)
- def put_Comment(self, *args): return _chilkat.CkZip_put_Comment(self, *args)
- def get_PathPrefix(self, *args): return _chilkat.CkZip_get_PathPrefix(self, *args)
- def put_PathPrefix(self, *args): return _chilkat.CkZip_put_PathPrefix(self, *args)
- def get_DiscardPaths(self): return _chilkat.CkZip_get_DiscardPaths(self)
- def put_DiscardPaths(self, *args): return _chilkat.CkZip_put_DiscardPaths(self, *args)
- def FirstEntry(self): return _chilkat.CkZip_FirstEntry(self)
- def ExcludeDir(self, *args): return _chilkat.CkZip_ExcludeDir(self, *args)
- def IsPasswordProtected(self, *args): return _chilkat.CkZip_IsPasswordProtected(self, *args)
- def OpenFromMemory(self, *args): return _chilkat.CkZip_OpenFromMemory(self, *args)
- def OpenEmbedded(self, *args): return _chilkat.CkZip_OpenEmbedded(self, *args)
- def AddEmbedded(self, *args): return _chilkat.CkZip_AddEmbedded(self, *args)
- def AddEmbeddedFromMemory(self, *args): return _chilkat.CkZip_AddEmbeddedFromMemory(self, *args)
- def ReplaceEmbedded(self, *args): return _chilkat.CkZip_ReplaceEmbedded(self, *args)
- def RemoveEmbedded(self, *args): return _chilkat.CkZip_RemoveEmbedded(self, *args)
- def SetPassword(self, *args): return _chilkat.CkZip_SetPassword(self, *args)
- def SetExclusions(self, *args): return _chilkat.CkZip_SetExclusions(self, *args)
- def GetExclusions(self): return _chilkat.CkZip_GetExclusions(self)
- def FirstMatchingEntry(self, *args): return _chilkat.CkZip_FirstMatchingEntry(self, *args)
- def GetDirectoryAsXML(self, *args): return _chilkat.CkZip_GetDirectoryAsXML(self, *args)
- def ExtractMatching(self, *args): return _chilkat.CkZip_ExtractMatching(self, *args)
- def GetEntryByID(self, *args): return _chilkat.CkZip_GetEntryByID(self, *args)
- def WriteZip(self): return _chilkat.CkZip_WriteZip(self)
- def WriteZipAndClose(self): return _chilkat.CkZip_WriteZipAndClose(self)
- def OpenZip(self, *args): return _chilkat.CkZip_OpenZip(self, *args)
- def OpenFromWeb(self, *args): return _chilkat.CkZip_OpenFromWeb(self, *args)
- def NewZip(self, *args): return _chilkat.CkZip_NewZip(self, *args)
- def GetEntryByName(self, *args): return _chilkat.CkZip_GetEntryByName(self, *args)
- def GetEntryByIndex(self, *args): return _chilkat.CkZip_GetEntryByIndex(self, *args)
- def Extract(self, *args): return _chilkat.CkZip_Extract(self, *args)
- def ExtractNewer(self, *args): return _chilkat.CkZip_ExtractNewer(self, *args)
- def AppendZip(self, *args): return _chilkat.CkZip_AppendZip(self, *args)
- def AppendOneFileOrDir(self, *args): return _chilkat.CkZip_AppendOneFileOrDir(self, *args)
- def AppendFiles(self, *args): return _chilkat.CkZip_AppendFiles(self, *args)
- def AppendFilesEx(self, *args): return _chilkat.CkZip_AppendFilesEx(self, *args)
- def AppendMultiple(self, *args): return _chilkat.CkZip_AppendMultiple(self, *args)
- def AppendData(self, *args): return _chilkat.CkZip_AppendData(self, *args)
- def AppendString(self, *args): return _chilkat.CkZip_AppendString(self, *args)
- def AppendString2(self, *args): return _chilkat.CkZip_AppendString2(self, *args)
- def AppendNew(self, *args): return _chilkat.CkZip_AppendNew(self, *args)
- def AppendNewDir(self, *args): return _chilkat.CkZip_AppendNewDir(self, *args)
- def InsertNew(self, *args): return _chilkat.CkZip_InsertNew(self, *args)
- def AppendCompressed(self, *args): return _chilkat.CkZip_AppendCompressed(self, *args)
- def DeleteEntry(self, *args): return _chilkat.CkZip_DeleteEntry(self, *args)
- def AppendBase64(self, *args): return _chilkat.CkZip_AppendBase64(self, *args)
- def AppendHex(self, *args): return _chilkat.CkZip_AppendHex(self, *args)
- def WriteExe(self, *args): return _chilkat.CkZip_WriteExe(self, *args)
- def WriteToMemory(self, *args): return _chilkat.CkZip_WriteToMemory(self, *args)
- def CloseZip(self): return _chilkat.CkZip_CloseZip(self)
- def UnlockComponent(self, *args): return _chilkat.CkZip_UnlockComponent(self, *args)
- def IsUnlocked(self): return _chilkat.CkZip_IsUnlocked(self)
- def SaveLastError(self, *args): return _chilkat.CkZip_SaveLastError(self, *args)
- def LastErrorXml(self, *args): return _chilkat.CkZip_LastErrorXml(self, *args)
- def LastErrorHtml(self, *args): return _chilkat.CkZip_LastErrorHtml(self, *args)
- def LastErrorText(self, *args): return _chilkat.CkZip_LastErrorText(self, *args)
- def Unzip(self, *args): return _chilkat.CkZip_Unzip(self, *args)
- def UnzipNewer(self, *args): return _chilkat.CkZip_UnzipNewer(self, *args)
- def UnzipInto(self, *args): return _chilkat.CkZip_UnzipInto(self, *args)
- def UnzipMatching(self, *args): return _chilkat.CkZip_UnzipMatching(self, *args)
- def UnzipMatchingInto(self, *args): return _chilkat.CkZip_UnzipMatchingInto(self, *args)
- def SetCompressionLevel(self, *args): return _chilkat.CkZip_SetCompressionLevel(self, *args)
- def WriteExe2(self, *args): return _chilkat.CkZip_WriteExe2(self, *args)
-CkZip_swigregister = _chilkat.CkZip_swigregister
-CkZip_swigregister(CkZip)
-
-class CkZipEntry(_object):
- __swig_setmethods__ = {}
- __setattr__ = lambda self, name, value: _swig_setattr(self, CkZipEntry, name, value)
- __swig_getmethods__ = {}
- __getattr__ = lambda self, name: _swig_getattr(self, CkZipEntry, name)
- __repr__ = _swig_repr
- def __init__(self):
- this = _chilkat.new_CkZipEntry()
- try: self.this.append(this)
- except: self.this = this
- __swig_destroy__ = _chilkat.delete_CkZipEntry
- __del__ = lambda self : None;
- def get_Utf8(self): return _chilkat.CkZipEntry_get_Utf8(self)
- def put_Utf8(self, *args): return _chilkat.CkZipEntry_put_Utf8(self, *args)
- def lastErrorText(self): return _chilkat.CkZipEntry_lastErrorText(self)
- def lastErrorXml(self): return _chilkat.CkZipEntry_lastErrorXml(self)
- def lastErrorHtml(self): return _chilkat.CkZipEntry_lastErrorHtml(self)
- def fileName(self): return _chilkat.CkZipEntry_fileName(self)
- def comment(self): return _chilkat.CkZipEntry_comment(self)
- def inflateToString(self, *args): return _chilkat.CkZipEntry_inflateToString(self, *args)
- def inflateToString2(self): return _chilkat.CkZipEntry_inflateToString2(self)
- def copyToBase64(self): return _chilkat.CkZipEntry_copyToBase64(self)
- def copyToHex(self): return _chilkat.CkZipEntry_copyToHex(self)
- def get_FileName(self, *args): return _chilkat.CkZipEntry_get_FileName(self, *args)
- def put_FileName(self, *args): return _chilkat.CkZipEntry_put_FileName(self, *args)
- def get_UncompressedLength(self): return _chilkat.CkZipEntry_get_UncompressedLength(self)
- def get_CompressionLevel(self): return _chilkat.CkZipEntry_get_CompressionLevel(self)
- def put_CompressionLevel(self, *args): return _chilkat.CkZipEntry_put_CompressionLevel(self, *args)
- def get_CompressionMethod(self): return _chilkat.CkZipEntry_get_CompressionMethod(self)
- def put_CompressionMethod(self, *args): return _chilkat.CkZipEntry_put_CompressionMethod(self, *args)
- def get_CompressedLength(self): return _chilkat.CkZipEntry_get_CompressedLength(self)
- def get_Comment(self, *args): return _chilkat.CkZipEntry_get_Comment(self, *args)
- def put_Comment(self, *args): return _chilkat.CkZipEntry_put_Comment(self, *args)
- def get_EntryType(self): return _chilkat.CkZipEntry_get_EntryType(self)
- def get_FileDateTime(self, *args): return _chilkat.CkZipEntry_get_FileDateTime(self, *args)
- def put_FileDateTime(self, *args): return _chilkat.CkZipEntry_put_FileDateTime(self, *args)
- def get_IsDirectory(self): return _chilkat.CkZipEntry_get_IsDirectory(self)
- def get_EntryID(self): return _chilkat.CkZipEntry_get_EntryID(self)
- def Extract(self, *args): return _chilkat.CkZipEntry_Extract(self, *args)
- def ExtractInto(self, *args): return _chilkat.CkZipEntry_ExtractInto(self, *args)
- def InflateToString(self, *args): return _chilkat.CkZipEntry_InflateToString(self, *args)
- def InflateToString2(self, *args): return _chilkat.CkZipEntry_InflateToString2(self, *args)
- def Inflate(self, *args): return _chilkat.CkZipEntry_Inflate(self, *args)
- def ReplaceData(self, *args): return _chilkat.CkZipEntry_ReplaceData(self, *args)
- def AppendData(self, *args): return _chilkat.CkZipEntry_AppendData(self, *args)
- def CopyToBase64(self, *args): return _chilkat.CkZipEntry_CopyToBase64(self, *args)
- def CopyToHex(self, *args): return _chilkat.CkZipEntry_CopyToHex(self, *args)
- def Copy(self, *args): return _chilkat.CkZipEntry_Copy(self, *args)
- def NextEntry(self): return _chilkat.CkZipEntry_NextEntry(self)
- def SaveLastError(self, *args): return _chilkat.CkZipEntry_SaveLastError(self, *args)
- def LastErrorXml(self, *args): return _chilkat.CkZipEntry_LastErrorXml(self, *args)
- def LastErrorHtml(self, *args): return _chilkat.CkZipEntry_LastErrorHtml(self, *args)
- def LastErrorText(self, *args): return _chilkat.CkZipEntry_LastErrorText(self, *args)
-CkZipEntry_swigregister = _chilkat.CkZipEntry_swigregister
-CkZipEntry_swigregister(CkZipEntry)
-
-class CkFileAccess(_object):
- __swig_setmethods__ = {}
- __setattr__ = lambda self, name, value: _swig_setattr(self, CkFileAccess, name, value)
- __swig_getmethods__ = {}
- __getattr__ = lambda self, name: _swig_getattr(self, CkFileAccess, name)
- __repr__ = _swig_repr
- def get_Utf8(self): return _chilkat.CkFileAccess_get_Utf8(self)
- def put_Utf8(self, *args): return _chilkat.CkFileAccess_put_Utf8(self, *args)
- def SaveLastError(self, *args): return _chilkat.CkFileAccess_SaveLastError(self, *args)
- def LastErrorXml(self, *args): return _chilkat.CkFileAccess_LastErrorXml(self, *args)
- def LastErrorHtml(self, *args): return _chilkat.CkFileAccess_LastErrorHtml(self, *args)
- def LastErrorText(self, *args): return _chilkat.CkFileAccess_LastErrorText(self, *args)
- def lastErrorText(self): return _chilkat.CkFileAccess_lastErrorText(self)
- def lastErrorXml(self): return _chilkat.CkFileAccess_lastErrorXml(self)
- def lastErrorHtml(self): return _chilkat.CkFileAccess_lastErrorHtml(self)
- def ReadEntireTextFile(self, *args): return _chilkat.CkFileAccess_ReadEntireTextFile(self, *args)
- def readEntireTextFile(self, *args): return _chilkat.CkFileAccess_readEntireTextFile(self, *args)
- def get_CurrentDir(self, *args): return _chilkat.CkFileAccess_get_CurrentDir(self, *args)
- def currentDir(self): return _chilkat.CkFileAccess_currentDir(self)
- def get_EndOfFile(self): return _chilkat.CkFileAccess_get_EndOfFile(self)
- def SetCurrentDir(self, *args): return _chilkat.CkFileAccess_SetCurrentDir(self, *args)
- def AppendAnsi(self, *args): return _chilkat.CkFileAccess_AppendAnsi(self, *args)
- def AppendText(self, *args): return _chilkat.CkFileAccess_AppendText(self, *args)
- def AppendUnicodeBOM(self): return _chilkat.CkFileAccess_AppendUnicodeBOM(self)
- def AppendUtf8BOM(self): return _chilkat.CkFileAccess_AppendUtf8BOM(self)
- def DirAutoCreate(self, *args): return _chilkat.CkFileAccess_DirAutoCreate(self, *args)
- def DirCreate(self, *args): return _chilkat.CkFileAccess_DirCreate(self, *args)
- def DirDelete(self, *args): return _chilkat.CkFileAccess_DirDelete(self, *args)
- def DirEnsureExists(self, *args): return _chilkat.CkFileAccess_DirEnsureExists(self, *args)
- def FileClose(self): return _chilkat.CkFileAccess_FileClose(self)
- def FileCopy(self, *args): return _chilkat.CkFileAccess_FileCopy(self, *args)
- def FileDelete(self, *args): return _chilkat.CkFileAccess_FileDelete(self, *args)
- def FileExists(self, *args): return _chilkat.CkFileAccess_FileExists(self, *args)
- def FileOpen(self, *args): return _chilkat.CkFileAccess_FileOpen(self, *args)
- def FileRead(self, *args): return _chilkat.CkFileAccess_FileRead(self, *args)
- def FileRename(self, *args): return _chilkat.CkFileAccess_FileRename(self, *args)
- def FileSeek(self, *args): return _chilkat.CkFileAccess_FileSeek(self, *args)
- def FileSize(self, *args): return _chilkat.CkFileAccess_FileSize(self, *args)
- def FileWrite(self, *args): return _chilkat.CkFileAccess_FileWrite(self, *args)
- def GetTempFilename(self, *args): return _chilkat.CkFileAccess_GetTempFilename(self, *args)
- def getTempFilename(self, *args): return _chilkat.CkFileAccess_getTempFilename(self, *args)
- def ReadEntireFile(self, *args): return _chilkat.CkFileAccess_ReadEntireFile(self, *args)
- def TreeDelete(self, *args): return _chilkat.CkFileAccess_TreeDelete(self, *args)
- def WriteEntireFile(self, *args): return _chilkat.CkFileAccess_WriteEntireFile(self, *args)
- def WriteEntireTextFile(self, *args): return _chilkat.CkFileAccess_WriteEntireTextFile(self, *args)
- def SplitFile(self, *args): return _chilkat.CkFileAccess_SplitFile(self, *args)
- def ReassembleFile(self, *args): return _chilkat.CkFileAccess_ReassembleFile(self, *args)
- def ReadBinaryToEncoded(self, *args): return _chilkat.CkFileAccess_ReadBinaryToEncoded(self, *args)
- def readBinaryToEncoded(self, *args): return _chilkat.CkFileAccess_readBinaryToEncoded(self, *args)
- def __init__(self):
- this = _chilkat.new_CkFileAccess()
- try: self.this.append(this)
- except: self.this = this
- __swig_destroy__ = _chilkat.delete_CkFileAccess
- __del__ = lambda self : None;
-CkFileAccess_swigregister = _chilkat.CkFileAccess_swigregister
-CkFileAccess_swigregister(CkFileAccess)
-
-class CkRsa(_object):
- __swig_setmethods__ = {}
- __setattr__ = lambda self, name, value: _swig_setattr(self, CkRsa, name, value)
- __swig_getmethods__ = {}
- __getattr__ = lambda self, name: _swig_getattr(self, CkRsa, name)
- __repr__ = _swig_repr
- def get_Utf8(self): return _chilkat.CkRsa_get_Utf8(self)
- def put_Utf8(self, *args): return _chilkat.CkRsa_put_Utf8(self, *args)
- def get_LittleEndian(self): return _chilkat.CkRsa_get_LittleEndian(self)
- def put_LittleEndian(self, *args): return _chilkat.CkRsa_put_LittleEndian(self, *args)
- def get_Version(self, *args): return _chilkat.CkRsa_get_Version(self, *args)
- def version(self): return _chilkat.CkRsa_version(self)
- def OpenSslVerifyBytes(self, *args): return _chilkat.CkRsa_OpenSslVerifyBytes(self, *args)
- def OpenSslSignBytes(self, *args): return _chilkat.CkRsa_OpenSslSignBytes(self, *args)
- def OpenSslSignBytesENC(self, *args): return _chilkat.CkRsa_OpenSslSignBytesENC(self, *args)
- def openSslSignBytesENC(self, *args): return _chilkat.CkRsa_openSslSignBytesENC(self, *args)
- def OpenSslSignString(self, *args): return _chilkat.CkRsa_OpenSslSignString(self, *args)
- def OpenSslSignStringENC(self, *args): return _chilkat.CkRsa_OpenSslSignStringENC(self, *args)
- def openSslSignStringENC(self, *args): return _chilkat.CkRsa_openSslSignStringENC(self, *args)
- def OpenSslVerifyBytesENC(self, *args): return _chilkat.CkRsa_OpenSslVerifyBytesENC(self, *args)
- def OpenSslVerifyString(self, *args): return _chilkat.CkRsa_OpenSslVerifyString(self, *args)
- def openSslVerifyString(self, *args): return _chilkat.CkRsa_openSslVerifyString(self, *args)
- def OpenSslVerifyStringENC(self, *args): return _chilkat.CkRsa_OpenSslVerifyStringENC(self, *args)
- def openSslVerifyStringENC(self, *args): return _chilkat.CkRsa_openSslVerifyStringENC(self, *args)
- def VerifyPrivateKey(self, *args): return _chilkat.CkRsa_VerifyPrivateKey(self, *args)
- def VerifyHash(self, *args): return _chilkat.CkRsa_VerifyHash(self, *args)
- def VerifyHashENC(self, *args): return _chilkat.CkRsa_VerifyHashENC(self, *args)
- def SignHash(self, *args): return _chilkat.CkRsa_SignHash(self, *args)
- def SignHashENC(self, *args): return _chilkat.CkRsa_SignHashENC(self, *args)
- def signHashENC(self, *args): return _chilkat.CkRsa_signHashENC(self, *args)
- def get_VerboseLogging(self): return _chilkat.CkRsa_get_VerboseLogging(self)
- def put_VerboseLogging(self, *args): return _chilkat.CkRsa_put_VerboseLogging(self, *args)
- def get_NoUnpad(self): return _chilkat.CkRsa_get_NoUnpad(self)
- def put_NoUnpad(self, *args): return _chilkat.CkRsa_put_NoUnpad(self, *args)
- def UnlockComponent(self, *args): return _chilkat.CkRsa_UnlockComponent(self, *args)
- def SaveLastError(self, *args): return _chilkat.CkRsa_SaveLastError(self, *args)
- def LastErrorXml(self, *args): return _chilkat.CkRsa_LastErrorXml(self, *args)
- def LastErrorHtml(self, *args): return _chilkat.CkRsa_LastErrorHtml(self, *args)
- def LastErrorText(self, *args): return _chilkat.CkRsa_LastErrorText(self, *args)
- def VerifyStringENC(self, *args): return _chilkat.CkRsa_VerifyStringENC(self, *args)
- def VerifyString(self, *args): return _chilkat.CkRsa_VerifyString(self, *args)
- def VerifyBytesENC(self, *args): return _chilkat.CkRsa_VerifyBytesENC(self, *args)
- def VerifyBytes(self, *args): return _chilkat.CkRsa_VerifyBytes(self, *args)
- def signStringENC(self, *args): return _chilkat.CkRsa_signStringENC(self, *args)
- def signBytesENC(self, *args): return _chilkat.CkRsa_signBytesENC(self, *args)
- def SignStringENC(self, *args): return _chilkat.CkRsa_SignStringENC(self, *args)
- def SignBytesENC(self, *args): return _chilkat.CkRsa_SignBytesENC(self, *args)
- def SignString(self, *args): return _chilkat.CkRsa_SignString(self, *args)
- def SignBytes(self, *args): return _chilkat.CkRsa_SignBytes(self, *args)
- def DecryptStringENC(self, *args): return _chilkat.CkRsa_DecryptStringENC(self, *args)
- def DecryptString(self, *args): return _chilkat.CkRsa_DecryptString(self, *args)
- def DecryptBytesENC(self, *args): return _chilkat.CkRsa_DecryptBytesENC(self, *args)
- def DecryptBytes(self, *args): return _chilkat.CkRsa_DecryptBytes(self, *args)
- def EncryptStringENC(self, *args): return _chilkat.CkRsa_EncryptStringENC(self, *args)
- def EncryptBytesENC(self, *args): return _chilkat.CkRsa_EncryptBytesENC(self, *args)
- def EncryptString(self, *args): return _chilkat.CkRsa_EncryptString(self, *args)
- def EncryptBytes(self, *args): return _chilkat.CkRsa_EncryptBytes(self, *args)
- def get_EncodingMode(self, *args): return _chilkat.CkRsa_get_EncodingMode(self, *args)
- def put_EncodingMode(self, *args): return _chilkat.CkRsa_put_EncodingMode(self, *args)
- def get_Charset(self, *args): return _chilkat.CkRsa_get_Charset(self, *args)
- def put_Charset(self, *args): return _chilkat.CkRsa_put_Charset(self, *args)
- def GenerateKey(self, *args): return _chilkat.CkRsa_GenerateKey(self, *args)
- def ExportPublicKey(self, *args): return _chilkat.CkRsa_ExportPublicKey(self, *args)
- def ExportPrivateKey(self, *args): return _chilkat.CkRsa_ExportPrivateKey(self, *args)
- def ImportPublicKey(self, *args): return _chilkat.CkRsa_ImportPublicKey(self, *args)
- def ImportPrivateKey(self, *args): return _chilkat.CkRsa_ImportPrivateKey(self, *args)
- def SnkToXml(self, *args): return _chilkat.CkRsa_SnkToXml(self, *args)
- def get_NumBits(self): return _chilkat.CkRsa_get_NumBits(self)
- def get_OaepPadding(self): return _chilkat.CkRsa_get_OaepPadding(self)
- def put_OaepPadding(self, *args): return _chilkat.CkRsa_put_OaepPadding(self, *args)
- def lastErrorText(self): return _chilkat.CkRsa_lastErrorText(self)
- def lastErrorXml(self): return _chilkat.CkRsa_lastErrorXml(self)
- def lastErrorHtml(self): return _chilkat.CkRsa_lastErrorHtml(self)
- def decryptStringENC(self, *args): return _chilkat.CkRsa_decryptStringENC(self, *args)
- def decryptString(self, *args): return _chilkat.CkRsa_decryptString(self, *args)
- def encryptStringENC(self, *args): return _chilkat.CkRsa_encryptStringENC(self, *args)
- def encryptBytesENC(self, *args): return _chilkat.CkRsa_encryptBytesENC(self, *args)
- def encodingMode(self): return _chilkat.CkRsa_encodingMode(self)
- def charset(self): return _chilkat.CkRsa_charset(self)
- def exportPublicKey(self): return _chilkat.CkRsa_exportPublicKey(self)
- def exportPrivateKey(self): return _chilkat.CkRsa_exportPrivateKey(self)
- def snkToXml(self, *args): return _chilkat.CkRsa_snkToXml(self, *args)
- def __init__(self):
- this = _chilkat.new_CkRsa()
- try: self.this.append(this)
- except: self.this = this
- __swig_destroy__ = _chilkat.delete_CkRsa
- __del__ = lambda self : None;
-CkRsa_swigregister = _chilkat.CkRsa_swigregister
-CkRsa_swigregister(CkRsa)
-
-class CkEmail(_object):
- __swig_setmethods__ = {}
- __setattr__ = lambda self, name, value: _swig_setattr(self, CkEmail, name, value)
- __swig_getmethods__ = {}
- __getattr__ = lambda self, name: _swig_getattr(self, CkEmail, name)
- __repr__ = _swig_repr
- def __init__(self):
- this = _chilkat.new_CkEmail()
- try: self.this.append(this)
- except: self.this = this
- __swig_destroy__ = _chilkat.delete_CkEmail
- __del__ = lambda self : None;
- def lastErrorText(self): return _chilkat.CkEmail_lastErrorText(self)
- def lastErrorXml(self): return _chilkat.CkEmail_lastErrorXml(self)
- def lastErrorHtml(self): return _chilkat.CkEmail_lastErrorHtml(self)
- def AddDataAttachment2(self, *args): return _chilkat.CkEmail_AddDataAttachment2(self, *args)
- def AppendToBody(self, *args): return _chilkat.CkEmail_AppendToBody(self, *args)
- def GetAltHeaderField(self, *args): return _chilkat.CkEmail_GetAltHeaderField(self, *args)
- def getAltHeaderField(self, *args): return _chilkat.CkEmail_getAltHeaderField(self, *args)
- def GetDeliveryStatusInfo(self, *args): return _chilkat.CkEmail_GetDeliveryStatusInfo(self, *args)
- def getDeliveryStatusInfo(self, *args): return _chilkat.CkEmail_getDeliveryStatusInfo(self, *args)
- def GetAttachedMessageFilename(self, *args): return _chilkat.CkEmail_GetAttachedMessageFilename(self, *args)
- def getAttachedMessageFilename(self, *args): return _chilkat.CkEmail_getAttachedMessageFilename(self, *args)
- def LoadXmlString(self, *args): return _chilkat.CkEmail_LoadXmlString(self, *args)
- def SetAttachmentCharset(self, *args): return _chilkat.CkEmail_SetAttachmentCharset(self, *args)
- def SetFromMimeObject(self, *args): return _chilkat.CkEmail_SetFromMimeObject(self, *args)
- def AspUnpack(self, *args): return _chilkat.CkEmail_AspUnpack(self, *args)
- def AspUnpack2(self, *args): return _chilkat.CkEmail_AspUnpack2(self, *args)
- def GetImapUid(self): return _chilkat.CkEmail_GetImapUid(self)
- def HasHeaderMatching(self, *args): return _chilkat.CkEmail_HasHeaderMatching(self, *args)
- def get_Language(self, *args): return _chilkat.CkEmail_get_Language(self, *args)
- def language(self): return _chilkat.CkEmail_language(self)
- def GetDsnFinalRecipients(self): return _chilkat.CkEmail_GetDsnFinalRecipients(self)
- def GetRelatedContentLocation(self, *args): return _chilkat.CkEmail_GetRelatedContentLocation(self, *args)
- def getRelatedContentLocation(self, *args): return _chilkat.CkEmail_getRelatedContentLocation(self, *args)
- def GetMimeBinary(self, *args): return _chilkat.CkEmail_GetMimeBinary(self, *args)
- def AttachMessage(self, *args): return _chilkat.CkEmail_AttachMessage(self, *args)
- def ComputeGlobalKey(self, *args): return _chilkat.CkEmail_ComputeGlobalKey(self, *args)
- def computeGlobalKey(self, *args): return _chilkat.CkEmail_computeGlobalKey(self, *args)
- def get_NumDaysOld(self): return _chilkat.CkEmail_get_NumDaysOld(self)
- def get_PreferredCharset(self, *args): return _chilkat.CkEmail_get_PreferredCharset(self, *args)
- def preferredCharset(self): return _chilkat.CkEmail_preferredCharset(self)
- def put_PreferredCharset(self, *args): return _chilkat.CkEmail_put_PreferredCharset(self, *args)
- def get_VerboseLogging(self): return _chilkat.CkEmail_get_VerboseLogging(self)
- def put_VerboseLogging(self, *args): return _chilkat.CkEmail_put_VerboseLogging(self, *args)
- def AddRelatedHeader(self, *args): return _chilkat.CkEmail_AddRelatedHeader(self, *args)
- def ClearEncryptCerts(self): return _chilkat.CkEmail_ClearEncryptCerts(self)
- def AddEncryptCert(self, *args): return _chilkat.CkEmail_AddEncryptCert(self, *args)
- def UnpackHtml(self, *args): return _chilkat.CkEmail_UnpackHtml(self, *args)
- def SetFromMimeBytes(self, *args): return _chilkat.CkEmail_SetFromMimeBytes(self, *args)
- def SetAttachmentDisposition(self, *args): return _chilkat.CkEmail_SetAttachmentDisposition(self, *args)
- def RemoveHtmlAlternative(self): return _chilkat.CkEmail_RemoveHtmlAlternative(self)
- def RemovePlainTextAlternative(self): return _chilkat.CkEmail_RemovePlainTextAlternative(self)
- def AddHeaderField2(self, *args): return _chilkat.CkEmail_AddHeaderField2(self, *args)
- def get_PrependHeaders(self): return _chilkat.CkEmail_get_PrependHeaders(self)
- def put_PrependHeaders(self, *args): return _chilkat.CkEmail_put_PrependHeaders(self, *args)
- def CreateDsn(self, *args): return _chilkat.CkEmail_CreateDsn(self, *args)
- def CreateMdn(self, *args): return _chilkat.CkEmail_CreateMdn(self, *args)
- def get_SigningHashAlg(self, *args): return _chilkat.CkEmail_get_SigningHashAlg(self, *args)
- def signingHashAlg(self): return _chilkat.CkEmail_signingHashAlg(self)
- def put_SigningHashAlg(self, *args): return _chilkat.CkEmail_put_SigningHashAlg(self, *args)
- def get_Pkcs7CryptAlg(self, *args): return _chilkat.CkEmail_get_Pkcs7CryptAlg(self, *args)
- def pkcs7CryptAlg(self): return _chilkat.CkEmail_pkcs7CryptAlg(self)
- def put_Pkcs7CryptAlg(self, *args): return _chilkat.CkEmail_put_Pkcs7CryptAlg(self, *args)
- def get_Pkcs7KeyLength(self): return _chilkat.CkEmail_get_Pkcs7KeyLength(self)
- def put_Pkcs7KeyLength(self, *args): return _chilkat.CkEmail_put_Pkcs7KeyLength(self, *args)
- def SetTextBody(self, *args): return _chilkat.CkEmail_SetTextBody(self, *args)
- def getRelatedStringCrLf(self, *args): return _chilkat.CkEmail_getRelatedStringCrLf(self, *args)
- def getRelatedContentID(self, *args): return _chilkat.CkEmail_getRelatedContentID(self, *args)
- def getRelatedFilename(self, *args): return _chilkat.CkEmail_getRelatedFilename(self, *args)
- def getRelatedString(self, *args): return _chilkat.CkEmail_getRelatedString(self, *args)
- def getAlternativeBody(self, *args): return _chilkat.CkEmail_getAlternativeBody(self, *args)
- def getAlternativeContentType(self, *args): return _chilkat.CkEmail_getAlternativeContentType(self, *args)
- def getHtmlBody(self): return _chilkat.CkEmail_getHtmlBody(self)
- def getPlainTextBody(self): return _chilkat.CkEmail_getPlainTextBody(self)
- def getHeaderFieldName(self, *args): return _chilkat.CkEmail_getHeaderFieldName(self, *args)
- def getHeaderFieldValue(self, *args): return _chilkat.CkEmail_getHeaderFieldValue(self, *args)
- def getAttachmentStringCrLf(self, *args): return _chilkat.CkEmail_getAttachmentStringCrLf(self, *args)
- def getAttachmentContentID(self, *args): return _chilkat.CkEmail_getAttachmentContentID(self, *args)
- def getAttachmentContentType(self, *args): return _chilkat.CkEmail_getAttachmentContentType(self, *args)
- def getAttachmentHeader(self, *args): return _chilkat.CkEmail_getAttachmentHeader(self, *args)
- def getAttachmentString(self, *args): return _chilkat.CkEmail_getAttachmentString(self, *args)
- def getAttachmentFilename(self, *args): return _chilkat.CkEmail_getAttachmentFilename(self, *args)
- def getHeaderField(self, *args): return _chilkat.CkEmail_getHeaderField(self, *args)
- def getBcc(self, *args): return _chilkat.CkEmail_getBcc(self, *args)
- def getCC(self, *args): return _chilkat.CkEmail_getCC(self, *args)
- def getTo(self, *args): return _chilkat.CkEmail_getTo(self, *args)
- def getBccAddr(self, *args): return _chilkat.CkEmail_getBccAddr(self, *args)
- def getCcAddr(self, *args): return _chilkat.CkEmail_getCcAddr(self, *args)
- def getToAddr(self, *args): return _chilkat.CkEmail_getToAddr(self, *args)
- def getBccName(self, *args): return _chilkat.CkEmail_getBccName(self, *args)
- def getCcName(self, *args): return _chilkat.CkEmail_getCcName(self, *args)
- def getToName(self, *args): return _chilkat.CkEmail_getToName(self, *args)
- def getMime(self): return _chilkat.CkEmail_getMime(self)
- def getXml(self): return _chilkat.CkEmail_getXml(self)
- def uidl(self): return _chilkat.CkEmail_uidl(self)
- def charset(self): return _chilkat.CkEmail_charset(self)
- def encryptedBy(self): return _chilkat.CkEmail_encryptedBy(self)
- def signedBy(self): return _chilkat.CkEmail_signedBy(self)
- def fromAddress(self): return _chilkat.CkEmail_fromAddress(self)
- def fromName(self): return _chilkat.CkEmail_fromName(self)
- def mailer(self): return _chilkat.CkEmail_mailer(self)
- def header(self): return _chilkat.CkEmail_header(self)
- def ck_from(self): return _chilkat.CkEmail_ck_from(self)
- def subject(self): return _chilkat.CkEmail_subject(self)
- def replyTo(self): return _chilkat.CkEmail_replyTo(self)
- def bounceAddress(self): return _chilkat.CkEmail_bounceAddress(self)
- def body(self): return _chilkat.CkEmail_body(self)
- def qEncodeString(self, *args): return _chilkat.CkEmail_qEncodeString(self, *args)
- def bEncodeString(self, *args): return _chilkat.CkEmail_bEncodeString(self, *args)
- def addFileAttachment(self, *args): return _chilkat.CkEmail_addFileAttachment(self, *args)
- def addRelatedFile(self, *args): return _chilkat.CkEmail_addRelatedFile(self, *args)
- def addRelatedString(self, *args): return _chilkat.CkEmail_addRelatedString(self, *args)
- def getReplaceString2(self, *args): return _chilkat.CkEmail_getReplaceString2(self, *args)
- def getReplaceString(self, *args): return _chilkat.CkEmail_getReplaceString(self, *args)
- def getReplacePattern(self, *args): return _chilkat.CkEmail_getReplacePattern(self, *args)
- def generateFilename(self): return _chilkat.CkEmail_generateFilename(self)
- def fileDistList(self): return _chilkat.CkEmail_fileDistList(self)
- def createTempMht(self, *args): return _chilkat.CkEmail_createTempMht(self, *args)
- def qEncodeBytes(self, *args): return _chilkat.CkEmail_qEncodeBytes(self, *args)
- def bEncodeBytes(self, *args): return _chilkat.CkEmail_bEncodeBytes(self, *args)
- def GetRelatedContentType(self, *args): return _chilkat.CkEmail_GetRelatedContentType(self, *args)
- def getRelatedContentType(self, *args): return _chilkat.CkEmail_getRelatedContentType(self, *args)
- def AddRelatedString2(self, *args): return _chilkat.CkEmail_AddRelatedString2(self, *args)
- def AddRelatedFile2(self, *args): return _chilkat.CkEmail_AddRelatedFile2(self, *args)
- def AddRelatedData2(self, *args): return _chilkat.CkEmail_AddRelatedData2(self, *args)
- def AddStringAttachment(self, *args): return _chilkat.CkEmail_AddStringAttachment(self, *args)
- def AddStringAttachment2(self, *args): return _chilkat.CkEmail_AddStringAttachment2(self, *args)
- def AddRelatedString(self, *args): return _chilkat.CkEmail_AddRelatedString(self, *args)
- def SetFromMimeText(self, *args): return _chilkat.CkEmail_SetFromMimeText(self, *args)
- def SetFromMimeText2(self, *args): return _chilkat.CkEmail_SetFromMimeText2(self, *args)
- def LoadEml(self, *args): return _chilkat.CkEmail_LoadEml(self, *args)
- def LoadXml(self, *args): return _chilkat.CkEmail_LoadXml(self, *args)
- def SetFromXmlText(self, *args): return _chilkat.CkEmail_SetFromXmlText(self, *args)
- def ZipAttachments(self, *args): return _chilkat.CkEmail_ZipAttachments(self, *args)
- def UnzipAttachments(self): return _chilkat.CkEmail_UnzipAttachments(self)
- def AesEncrypt(self, *args): return _chilkat.CkEmail_AesEncrypt(self, *args)
- def AesDecrypt(self, *args): return _chilkat.CkEmail_AesDecrypt(self, *args)
- def Clone(self): return _chilkat.CkEmail_Clone(self)
- def CreateForward(self): return _chilkat.CkEmail_CreateForward(self)
- def CreateReply(self): return _chilkat.CkEmail_CreateReply(self)
- def SetCSP(self, *args): return _chilkat.CkEmail_SetCSP(self, *args)
- def GetSignedByCert(self): return _chilkat.CkEmail_GetSignedByCert(self)
- def GetEncryptedByCert(self): return _chilkat.CkEmail_GetEncryptedByCert(self)
- def GetEncryptCert(self): return _chilkat.CkEmail_GetEncryptCert(self)
- def GetSigningCert(self): return _chilkat.CkEmail_GetSigningCert(self)
- def SetEncryptCert(self, *args): return _chilkat.CkEmail_SetEncryptCert(self, *args)
- def SetSigningCert(self, *args): return _chilkat.CkEmail_SetSigningCert(self, *args)
- def SetSigningCert2(self, *args): return _chilkat.CkEmail_SetSigningCert2(self, *args)
- def GetFileContent(self, *args): return _chilkat.CkEmail_GetFileContent(self, *args)
- def GetRelatedStringCrLf(self, *args): return _chilkat.CkEmail_GetRelatedStringCrLf(self, *args)
- def GetRelatedContentID(self, *args): return _chilkat.CkEmail_GetRelatedContentID(self, *args)
- def GetRelatedFilename(self, *args): return _chilkat.CkEmail_GetRelatedFilename(self, *args)
- def GetRelatedString(self, *args): return _chilkat.CkEmail_GetRelatedString(self, *args)
- def GetRelatedData(self, *args): return _chilkat.CkEmail_GetRelatedData(self, *args)
- def AddHeaderField(self, *args): return _chilkat.CkEmail_AddHeaderField(self, *args)
- def RemoveHeaderField(self, *args): return _chilkat.CkEmail_RemoveHeaderField(self, *args)
- def SetHtmlBody(self, *args): return _chilkat.CkEmail_SetHtmlBody(self, *args)
- def SaveRelatedItem(self, *args): return _chilkat.CkEmail_SaveRelatedItem(self, *args)
- def DropRelatedItem(self, *args): return _chilkat.CkEmail_DropRelatedItem(self, *args)
- def DropRelatedItems(self): return _chilkat.CkEmail_DropRelatedItems(self)
- def AddRelatedFile(self, *args): return _chilkat.CkEmail_AddRelatedFile(self, *args)
- def AddRelatedData(self, *args): return _chilkat.CkEmail_AddRelatedData(self, *args)
- def AddHtmlAlternativeBody(self, *args): return _chilkat.CkEmail_AddHtmlAlternativeBody(self, *args)
- def AddPlainTextAlternativeBody(self, *args): return _chilkat.CkEmail_AddPlainTextAlternativeBody(self, *args)
- def GetAlternativeBody(self, *args): return _chilkat.CkEmail_GetAlternativeBody(self, *args)
- def GetAlternativeContentType(self, *args): return _chilkat.CkEmail_GetAlternativeContentType(self, *args)
- def GetHtmlBody(self, *args): return _chilkat.CkEmail_GetHtmlBody(self, *args)
- def GetPlainTextBody(self, *args): return _chilkat.CkEmail_GetPlainTextBody(self, *args)
- def get_NumHeaderFields(self): return _chilkat.CkEmail_get_NumHeaderFields(self)
- def GetHeaderFieldName(self, *args): return _chilkat.CkEmail_GetHeaderFieldName(self, *args)
- def GetHeaderFieldValue(self, *args): return _chilkat.CkEmail_GetHeaderFieldValue(self, *args)
- def GetAttachmentStringCrLf(self, *args): return _chilkat.CkEmail_GetAttachmentStringCrLf(self, *args)
- def GetAttachmentContentID(self, *args): return _chilkat.CkEmail_GetAttachmentContentID(self, *args)
- def GetAttachmentContentType(self, *args): return _chilkat.CkEmail_GetAttachmentContentType(self, *args)
- def GetAttachmentHeader(self, *args): return _chilkat.CkEmail_GetAttachmentHeader(self, *args)
- def GetAttachmentSize(self, *args): return _chilkat.CkEmail_GetAttachmentSize(self, *args)
- def GetAttachmentString(self, *args): return _chilkat.CkEmail_GetAttachmentString(self, *args)
- def SaveAllAttachments(self, *args): return _chilkat.CkEmail_SaveAllAttachments(self, *args)
- def SaveAttachedFile(self, *args): return _chilkat.CkEmail_SaveAttachedFile(self, *args)
- def GetAttachmentData(self, *args): return _chilkat.CkEmail_GetAttachmentData(self, *args)
- def DropSingleAttachment(self, *args): return _chilkat.CkEmail_DropSingleAttachment(self, *args)
- def SetAttachmentFilename(self, *args): return _chilkat.CkEmail_SetAttachmentFilename(self, *args)
- def GetAttachmentFilename(self, *args): return _chilkat.CkEmail_GetAttachmentFilename(self, *args)
- def AddAttachmentHeader(self, *args): return _chilkat.CkEmail_AddAttachmentHeader(self, *args)
- def DropAttachments(self): return _chilkat.CkEmail_DropAttachments(self)
- def AddFileAttachment(self, *args): return _chilkat.CkEmail_AddFileAttachment(self, *args)
- def AddFileAttachment2(self, *args): return _chilkat.CkEmail_AddFileAttachment2(self, *args)
- def AddDataAttachment(self, *args): return _chilkat.CkEmail_AddDataAttachment(self, *args)
- def get_NumReplacePatterns(self): return _chilkat.CkEmail_get_NumReplacePatterns(self)
- def GetReplaceString2(self, *args): return _chilkat.CkEmail_GetReplaceString2(self, *args)
- def GetReplaceString(self, *args): return _chilkat.CkEmail_GetReplaceString(self, *args)
- def GetReplacePattern(self, *args): return _chilkat.CkEmail_GetReplacePattern(self, *args)
- def SetReplacePattern(self, *args): return _chilkat.CkEmail_SetReplacePattern(self, *args)
- def GenerateFilename(self, *args): return _chilkat.CkEmail_GenerateFilename(self, *args)
- def AddMultipleBcc(self, *args): return _chilkat.CkEmail_AddMultipleBcc(self, *args)
- def AddMultipleCC(self, *args): return _chilkat.CkEmail_AddMultipleCC(self, *args)
- def AddMultipleTo(self, *args): return _chilkat.CkEmail_AddMultipleTo(self, *args)
- def GetHeaderField(self, *args): return _chilkat.CkEmail_GetHeaderField(self, *args)
- def GetBcc(self, *args): return _chilkat.CkEmail_GetBcc(self, *args)
- def GetCC(self, *args): return _chilkat.CkEmail_GetCC(self, *args)
- def GetTo(self, *args): return _chilkat.CkEmail_GetTo(self, *args)
- def GetBccAddr(self, *args): return _chilkat.CkEmail_GetBccAddr(self, *args)
- def GetCcAddr(self, *args): return _chilkat.CkEmail_GetCcAddr(self, *args)
- def GetToAddr(self, *args): return _chilkat.CkEmail_GetToAddr(self, *args)
- def GetBccName(self, *args): return _chilkat.CkEmail_GetBccName(self, *args)
- def GetCcName(self, *args): return _chilkat.CkEmail_GetCcName(self, *args)
- def GetToName(self, *args): return _chilkat.CkEmail_GetToName(self, *args)
- def ClearBcc(self): return _chilkat.CkEmail_ClearBcc(self)
- def ClearCC(self): return _chilkat.CkEmail_ClearCC(self)
- def ClearTo(self): return _chilkat.CkEmail_ClearTo(self)
- def AddBcc(self, *args): return _chilkat.CkEmail_AddBcc(self, *args)
- def AddCC(self, *args): return _chilkat.CkEmail_AddCC(self, *args)
- def AddTo(self, *args): return _chilkat.CkEmail_AddTo(self, *args)
- def GetMime(self, *args): return _chilkat.CkEmail_GetMime(self, *args)
- def GetXml(self, *args): return _chilkat.CkEmail_GetXml(self, *args)
- def SaveXml(self, *args): return _chilkat.CkEmail_SaveXml(self, *args)
- def SaveEml(self, *args): return _chilkat.CkEmail_SaveEml(self, *args)
- def get_Uidl(self, *args): return _chilkat.CkEmail_get_Uidl(self, *args)
- def get_ReturnReceipt(self): return _chilkat.CkEmail_get_ReturnReceipt(self)
- def put_ReturnReceipt(self, *args): return _chilkat.CkEmail_put_ReturnReceipt(self, *args)
- def get_Size(self): return _chilkat.CkEmail_get_Size(self)
- def get_NumAlternatives(self): return _chilkat.CkEmail_get_NumAlternatives(self)
- def get_NumRelatedItems(self): return _chilkat.CkEmail_get_NumRelatedItems(self)
- def get_SendEncrypted(self): return _chilkat.CkEmail_get_SendEncrypted(self)
- def put_SendEncrypted(self, *args): return _chilkat.CkEmail_put_SendEncrypted(self, *args)
- def get_FileDistList(self, *args): return _chilkat.CkEmail_get_FileDistList(self, *args)
- def put_FileDistList(self, *args): return _chilkat.CkEmail_put_FileDistList(self, *args)
- def get_Charset(self, *args): return _chilkat.CkEmail_get_Charset(self, *args)
- def put_Charset(self, *args): return _chilkat.CkEmail_put_Charset(self, *args)
- def get_OverwriteExisting(self): return _chilkat.CkEmail_get_OverwriteExisting(self)
- def put_OverwriteExisting(self, *args): return _chilkat.CkEmail_put_OverwriteExisting(self, *args)
- def get_SendSigned(self): return _chilkat.CkEmail_get_SendSigned(self)
- def put_SendSigned(self, *args): return _chilkat.CkEmail_put_SendSigned(self, *args)
- def get_EncryptedBy(self, *args): return _chilkat.CkEmail_get_EncryptedBy(self, *args)
- def get_Decrypted(self): return _chilkat.CkEmail_get_Decrypted(self)
- def get_SignaturesValid(self): return _chilkat.CkEmail_get_SignaturesValid(self)
- def get_SignedBy(self, *args): return _chilkat.CkEmail_get_SignedBy(self, *args)
- def get_ReceivedSigned(self): return _chilkat.CkEmail_get_ReceivedSigned(self)
- def get_ReceivedEncrypted(self): return _chilkat.CkEmail_get_ReceivedEncrypted(self)
- def get_NumAttachments(self): return _chilkat.CkEmail_get_NumAttachments(self)
- def get_FromAddress(self, *args): return _chilkat.CkEmail_get_FromAddress(self, *args)
- def put_FromAddress(self, *args): return _chilkat.CkEmail_put_FromAddress(self, *args)
- def get_FromName(self, *args): return _chilkat.CkEmail_get_FromName(self, *args)
- def put_FromName(self, *args): return _chilkat.CkEmail_put_FromName(self, *args)
- def get_LocalDate(self, *args): return _chilkat.CkEmail_get_LocalDate(self, *args)
- def get_EmailDate(self, *args): return _chilkat.CkEmail_get_EmailDate(self, *args)
- def put_LocalDate(self, *args): return _chilkat.CkEmail_put_LocalDate(self, *args)
- def put_EmailDate(self, *args): return _chilkat.CkEmail_put_EmailDate(self, *args)
- def get_Mailer(self, *args): return _chilkat.CkEmail_get_Mailer(self, *args)
- def put_Mailer(self, *args): return _chilkat.CkEmail_put_Mailer(self, *args)
- def get_Header(self, *args): return _chilkat.CkEmail_get_Header(self, *args)
- def get_NumBcc(self): return _chilkat.CkEmail_get_NumBcc(self)
- def get_NumCC(self): return _chilkat.CkEmail_get_NumCC(self)
- def get_NumTo(self): return _chilkat.CkEmail_get_NumTo(self)
- def get_From(self, *args): return _chilkat.CkEmail_get_From(self, *args)
- def put_From(self, *args): return _chilkat.CkEmail_put_From(self, *args)
- def get_Subject(self, *args): return _chilkat.CkEmail_get_Subject(self, *args)
- def put_Subject(self, *args): return _chilkat.CkEmail_put_Subject(self, *args)
- def get_ReplyTo(self, *args): return _chilkat.CkEmail_get_ReplyTo(self, *args)
- def put_ReplyTo(self, *args): return _chilkat.CkEmail_put_ReplyTo(self, *args)
- def get_BounceAddress(self, *args): return _chilkat.CkEmail_get_BounceAddress(self, *args)
- def put_BounceAddress(self, *args): return _chilkat.CkEmail_put_BounceAddress(self, *args)
- def get_Body(self, *args): return _chilkat.CkEmail_get_Body(self, *args)
- def put_Body(self, *args): return _chilkat.CkEmail_put_Body(self, *args)
- def UidlEquals(self, *args): return _chilkat.CkEmail_UidlEquals(self, *args)
- def CreateTempMht(self, *args): return _chilkat.CkEmail_CreateTempMht(self, *args)
- def GetMimeObject(self): return _chilkat.CkEmail_GetMimeObject(self)
- def SaveLastError(self, *args): return _chilkat.CkEmail_SaveLastError(self, *args)
- def LastErrorXml(self, *args): return _chilkat.CkEmail_LastErrorXml(self, *args)
- def LastErrorHtml(self, *args): return _chilkat.CkEmail_LastErrorHtml(self, *args)
- def LastErrorText(self, *args): return _chilkat.CkEmail_LastErrorText(self, *args)
- def SetMbPlainTextBody(self, *args): return _chilkat.CkEmail_SetMbPlainTextBody(self, *args)
- def SetMbHtmlBody(self, *args): return _chilkat.CkEmail_SetMbHtmlBody(self, *args)
- def GetMbPlainTextBody(self, *args): return _chilkat.CkEmail_GetMbPlainTextBody(self, *args)
- def GetMbHtmlBody(self, *args): return _chilkat.CkEmail_GetMbHtmlBody(self, *args)
- def GetMbHeaderField(self, *args): return _chilkat.CkEmail_GetMbHeaderField(self, *args)
- def GetMbHeaderField2(self, *args): return _chilkat.CkEmail_GetMbHeaderField2(self, *args)
- def QEncodeBytes(self, *args): return _chilkat.CkEmail_QEncodeBytes(self, *args)
- def BEncodeBytes(self, *args): return _chilkat.CkEmail_BEncodeBytes(self, *args)
- def QEncodeString(self, *args): return _chilkat.CkEmail_QEncodeString(self, *args)
- def BEncodeString(self, *args): return _chilkat.CkEmail_BEncodeString(self, *args)
- def UnlockComponent(self, *args): return _chilkat.CkEmail_UnlockComponent(self, *args)
- def get_NumAttachedMessages(self): return _chilkat.CkEmail_get_NumAttachedMessages(self)
- def GetAttachedMessage(self, *args): return _chilkat.CkEmail_GetAttachedMessage(self, *args)
- def RemoveAttachedMessages(self): return _chilkat.CkEmail_RemoveAttachedMessages(self)
- def RemoveAttachedMessage(self, *args): return _chilkat.CkEmail_RemoveAttachedMessage(self, *args)
- def GetLinkedDomains(self, *args): return _chilkat.CkEmail_GetLinkedDomains(self, *args)
- def UnSpamify(self): return _chilkat.CkEmail_UnSpamify(self)
- def IsMultipartReport(self): return _chilkat.CkEmail_IsMultipartReport(self)
- def HasHtmlBody(self): return _chilkat.CkEmail_HasHtmlBody(self)
- def HasPlainTextBody(self): return _chilkat.CkEmail_HasPlainTextBody(self)
- def RemoveAttachmentPaths(self): return _chilkat.CkEmail_RemoveAttachmentPaths(self)
- def get_Utf8(self): return _chilkat.CkEmail_get_Utf8(self)
- def put_Utf8(self, *args): return _chilkat.CkEmail_put_Utf8(self, *args)
-CkEmail_swigregister = _chilkat.CkEmail_swigregister
-CkEmail_swigregister(CkEmail)
-
-class CkCSP(_object):
- __swig_setmethods__ = {}
- __setattr__ = lambda self, name, value: _swig_setattr(self, CkCSP, name, value)
- __swig_getmethods__ = {}
- __getattr__ = lambda self, name: _swig_getattr(self, CkCSP, name)
- __repr__ = _swig_repr
- def __init__(self):
- this = _chilkat.new_CkCSP()
- try: self.this.append(this)
- except: self.this = this
- __swig_destroy__ = _chilkat.delete_CkCSP
- __del__ = lambda self : None;
- def get_Utf8(self): return _chilkat.CkCSP_get_Utf8(self)
- def put_Utf8(self, *args): return _chilkat.CkCSP_put_Utf8(self, *args)
- def lastErrorText(self): return _chilkat.CkCSP_lastErrorText(self)
- def lastErrorXml(self): return _chilkat.CkCSP_lastErrorXml(self)
- def lastErrorHtml(self): return _chilkat.CkCSP_lastErrorHtml(self)
- def get_MachineKeyset(self): return _chilkat.CkCSP_get_MachineKeyset(self)
- def put_MachineKeyset(self, *args): return _chilkat.CkCSP_put_MachineKeyset(self, *args)
- def hashAlgorithm(self): return _chilkat.CkCSP_hashAlgorithm(self)
- def encryptAlgorithm(self): return _chilkat.CkCSP_encryptAlgorithm(self)
- def getKeyContainerName(self, *args): return _chilkat.CkCSP_getKeyContainerName(self, *args)
- def getSignatureAlgorithm(self, *args): return _chilkat.CkCSP_getSignatureAlgorithm(self, *args)
- def getKeyExchangeAlgorithm(self, *args): return _chilkat.CkCSP_getKeyExchangeAlgorithm(self, *args)
- def getHashAlgorithm(self, *args): return _chilkat.CkCSP_getHashAlgorithm(self, *args)
- def getEncryptionAlgorithm(self, *args): return _chilkat.CkCSP_getEncryptionAlgorithm(self, *args)
- def keyContainerName(self): return _chilkat.CkCSP_keyContainerName(self)
- def providerName(self): return _chilkat.CkCSP_providerName(self)
- def SetProviderMicrosoftBase(self): return _chilkat.CkCSP_SetProviderMicrosoftBase(self)
- def SetProviderMicrosoftStrong(self): return _chilkat.CkCSP_SetProviderMicrosoftStrong(self)
- def SetProviderMicrosoftEnhanced(self): return _chilkat.CkCSP_SetProviderMicrosoftEnhanced(self)
- def SetProviderMicrosoftRsaAes(self): return _chilkat.CkCSP_SetProviderMicrosoftRsaAes(self)
- def get_ProviderType(self): return _chilkat.CkCSP_get_ProviderType(self)
- def GetKeyContainerNames(self): return _chilkat.CkCSP_GetKeyContainerNames(self)
- def SetHashAlgorithm(self, *args): return _chilkat.CkCSP_SetHashAlgorithm(self, *args)
- def HasHashAlgorithm(self, *args): return _chilkat.CkCSP_HasHashAlgorithm(self, *args)
- def SetEncryptAlgorithm(self, *args): return _chilkat.CkCSP_SetEncryptAlgorithm(self, *args)
- def HasEncryptAlgorithm(self, *args): return _chilkat.CkCSP_HasEncryptAlgorithm(self, *args)
- def get_HashAlgorithmID(self): return _chilkat.CkCSP_get_HashAlgorithmID(self)
- def get_EncryptAlgorithmID(self): return _chilkat.CkCSP_get_EncryptAlgorithmID(self)
- def get_HashNumBits(self): return _chilkat.CkCSP_get_HashNumBits(self)
- def get_EncryptNumBits(self): return _chilkat.CkCSP_get_EncryptNumBits(self)
- def get_HashAlgorithm(self, *args): return _chilkat.CkCSP_get_HashAlgorithm(self, *args)
- def get_EncryptAlgorithm(self, *args): return _chilkat.CkCSP_get_EncryptAlgorithm(self, *args)
- def GetKeyContainerName(self, *args): return _chilkat.CkCSP_GetKeyContainerName(self, *args)
- def get_NumKeyContainers(self): return _chilkat.CkCSP_get_NumKeyContainers(self)
- def GetSignatureNumBits(self, *args): return _chilkat.CkCSP_GetSignatureNumBits(self, *args)
- def GetSignatureAlgorithm(self, *args): return _chilkat.CkCSP_GetSignatureAlgorithm(self, *args)
- def GetKeyExchangeNumBits(self, *args): return _chilkat.CkCSP_GetKeyExchangeNumBits(self, *args)
- def GetKeyExchangeAlgorithm(self, *args): return _chilkat.CkCSP_GetKeyExchangeAlgorithm(self, *args)
- def GetHashNumBits(self, *args): return _chilkat.CkCSP_GetHashNumBits(self, *args)
- def GetHashAlgorithm(self, *args): return _chilkat.CkCSP_GetHashAlgorithm(self, *args)
- def GetEncryptionNumBits(self, *args): return _chilkat.CkCSP_GetEncryptionNumBits(self, *args)
- def GetEncryptionAlgorithm(self, *args): return _chilkat.CkCSP_GetEncryptionAlgorithm(self, *args)
- def get_KeyContainerName(self, *args): return _chilkat.CkCSP_get_KeyContainerName(self, *args)
- def put_KeyContainerName(self, *args): return _chilkat.CkCSP_put_KeyContainerName(self, *args)
- def get_ProviderName(self, *args): return _chilkat.CkCSP_get_ProviderName(self, *args)
- def put_ProviderName(self, *args): return _chilkat.CkCSP_put_ProviderName(self, *args)
- def get_NumKeyExchangeAlgorithms(self): return _chilkat.CkCSP_get_NumKeyExchangeAlgorithms(self)
- def get_NumSignatureAlgorithms(self): return _chilkat.CkCSP_get_NumSignatureAlgorithms(self)
- def get_NumEncryptAlgorithms(self): return _chilkat.CkCSP_get_NumEncryptAlgorithms(self)
- def get_NumHashAlgorithms(self): return _chilkat.CkCSP_get_NumHashAlgorithms(self)
- def SaveLastError(self, *args): return _chilkat.CkCSP_SaveLastError(self, *args)
- def LastErrorXml(self, *args): return _chilkat.CkCSP_LastErrorXml(self, *args)
- def LastErrorHtml(self, *args): return _chilkat.CkCSP_LastErrorHtml(self, *args)
- def LastErrorText(self, *args): return _chilkat.CkCSP_LastErrorText(self, *args)
-CkCSP_swigregister = _chilkat.CkCSP_swigregister
-CkCSP_swigregister(CkCSP)
-
-class CkCert(_object):
- __swig_setmethods__ = {}
- __setattr__ = lambda self, name, value: _swig_setattr(self, CkCert, name, value)
- __swig_getmethods__ = {}
- __getattr__ = lambda self, name: _swig_getattr(self, CkCert, name)
- __repr__ = _swig_repr
- def __init__(self):
- this = _chilkat.new_CkCert()
- try: self.this.append(this)
- except: self.this = this
- __swig_destroy__ = _chilkat.delete_CkCert
- __del__ = lambda self : None;
- def CheckRevoked(self): return _chilkat.CkCert_CheckRevoked(self)
- def get_Sha1Thumbprint(self, *args): return _chilkat.CkCert_get_Sha1Thumbprint(self, *args)
- def ExportCertXml(self, *args): return _chilkat.CkCert_ExportCertXml(self, *args)
- def exportCertXml(self): return _chilkat.CkCert_exportCertXml(self)
- def get_VerboseLogging(self): return _chilkat.CkCert_get_VerboseLogging(self)
- def put_VerboseLogging(self, *args): return _chilkat.CkCert_put_VerboseLogging(self, *args)
- def get_CertVersion(self): return _chilkat.CkCert_get_CertVersion(self)
- def SetPrivateKey(self, *args): return _chilkat.CkCert_SetPrivateKey(self, *args)
- def get_OcspUrl(self, *args): return _chilkat.CkCert_get_OcspUrl(self, *args)
- def ocspUrl(self): return _chilkat.CkCert_ocspUrl(self)
- def FindIssuer(self): return _chilkat.CkCert_FindIssuer(self)
- def LoadByIssuerAndSerialNumber(self, *args): return _chilkat.CkCert_LoadByIssuerAndSerialNumber(self, *args)
- def get_SelfSigned(self): return _chilkat.CkCert_get_SelfSigned(self)
- def SetPrivateKeyPem(self, *args): return _chilkat.CkCert_SetPrivateKeyPem(self, *args)
- def GetPrivateKeyPem(self, *args): return _chilkat.CkCert_GetPrivateKeyPem(self, *args)
- def getPrivateKeyPem(self): return _chilkat.CkCert_getPrivateKeyPem(self)
- def getEncoded(self): return _chilkat.CkCert_getEncoded(self)
- def issuerE(self): return _chilkat.CkCert_issuerE(self)
- def issuerC(self): return _chilkat.CkCert_issuerC(self)
- def issuerS(self): return _chilkat.CkCert_issuerS(self)
- def issuerL(self): return _chilkat.CkCert_issuerL(self)
- def issuerO(self): return _chilkat.CkCert_issuerO(self)
- def issuerOU(self): return _chilkat.CkCert_issuerOU(self)
- def issuerCN(self): return _chilkat.CkCert_issuerCN(self)
- def issuerDN(self): return _chilkat.CkCert_issuerDN(self)
- def subjectE(self): return _chilkat.CkCert_subjectE(self)
- def subjectC(self): return _chilkat.CkCert_subjectC(self)
- def subjectS(self): return _chilkat.CkCert_subjectS(self)
- def subjectL(self): return _chilkat.CkCert_subjectL(self)
- def subjectO(self): return _chilkat.CkCert_subjectO(self)
- def subjectOU(self): return _chilkat.CkCert_subjectOU(self)
- def subjectCN(self): return _chilkat.CkCert_subjectCN(self)
- def subjectDN(self): return _chilkat.CkCert_subjectDN(self)
- def sha1Thumbprint(self): return _chilkat.CkCert_sha1Thumbprint(self)
- def rfc822Name(self): return _chilkat.CkCert_rfc822Name(self)
- def serialNumber(self): return _chilkat.CkCert_serialNumber(self)
- def version(self): return _chilkat.CkCert_version(self)
- def lastErrorText(self): return _chilkat.CkCert_lastErrorText(self)
- def lastErrorXml(self): return _chilkat.CkCert_lastErrorXml(self)
- def lastErrorHtml(self): return _chilkat.CkCert_lastErrorHtml(self)
- def get_IntendedKeyUsage(self): return _chilkat.CkCert_get_IntendedKeyUsage(self)
- def LoadPfxFile(self, *args): return _chilkat.CkCert_LoadPfxFile(self, *args)
- def LoadPfxData(self, *args): return _chilkat.CkCert_LoadPfxData(self, *args)
- def LoadPfxData2(self, *args): return _chilkat.CkCert_LoadPfxData2(self, *args)
- def ExportToPfxFile(self, *args): return _chilkat.CkCert_ExportToPfxFile(self, *args)
- def get_Utf8(self): return _chilkat.CkCert_get_Utf8(self)
- def put_Utf8(self, *args): return _chilkat.CkCert_put_Utf8(self, *args)
- def LoadFromFile(self, *args): return _chilkat.CkCert_LoadFromFile(self, *args)
- def LoadFromBase64(self, *args): return _chilkat.CkCert_LoadFromBase64(self, *args)
- def LoadFromBinary(self, *args): return _chilkat.CkCert_LoadFromBinary(self, *args)
- def SetFromEncoded(self, *args): return _chilkat.CkCert_SetFromEncoded(self, *args)
- def GetEncoded(self, *args): return _chilkat.CkCert_GetEncoded(self, *args)
- def get_IsRoot(self): return _chilkat.CkCert_get_IsRoot(self)
- def get_IssuerE(self, *args): return _chilkat.CkCert_get_IssuerE(self, *args)
- def get_IssuerC(self, *args): return _chilkat.CkCert_get_IssuerC(self, *args)
- def get_IssuerS(self, *args): return _chilkat.CkCert_get_IssuerS(self, *args)
- def get_IssuerL(self, *args): return _chilkat.CkCert_get_IssuerL(self, *args)
- def get_IssuerO(self, *args): return _chilkat.CkCert_get_IssuerO(self, *args)
- def get_IssuerOU(self, *args): return _chilkat.CkCert_get_IssuerOU(self, *args)
- def get_IssuerCN(self, *args): return _chilkat.CkCert_get_IssuerCN(self, *args)
- def get_IssuerDN(self, *args): return _chilkat.CkCert_get_IssuerDN(self, *args)
- def get_SubjectE(self, *args): return _chilkat.CkCert_get_SubjectE(self, *args)
- def get_SubjectC(self, *args): return _chilkat.CkCert_get_SubjectC(self, *args)
- def get_SubjectS(self, *args): return _chilkat.CkCert_get_SubjectS(self, *args)
- def get_SubjectL(self, *args): return _chilkat.CkCert_get_SubjectL(self, *args)
- def get_SubjectO(self, *args): return _chilkat.CkCert_get_SubjectO(self, *args)
- def get_SubjectOU(self, *args): return _chilkat.CkCert_get_SubjectOU(self, *args)
- def get_SubjectCN(self, *args): return _chilkat.CkCert_get_SubjectCN(self, *args)
- def get_SubjectDN(self, *args): return _chilkat.CkCert_get_SubjectDN(self, *args)
- def get_SignatureVerified(self): return _chilkat.CkCert_get_SignatureVerified(self)
- def get_TrustedRoot(self): return _chilkat.CkCert_get_TrustedRoot(self)
- def get_Revoked(self): return _chilkat.CkCert_get_Revoked(self)
- def get_Expired(self): return _chilkat.CkCert_get_Expired(self)
- def HasPrivateKey(self): return _chilkat.CkCert_HasPrivateKey(self)
- def SaveToFile(self, *args): return _chilkat.CkCert_SaveToFile(self, *args)
- def get_Rfc822Name(self, *args): return _chilkat.CkCert_get_Rfc822Name(self, *args)
- def get_ValidTo(self, *args): return _chilkat.CkCert_get_ValidTo(self, *args)
- def get_ValidFrom(self, *args): return _chilkat.CkCert_get_ValidFrom(self, *args)
- def get_SerialNumber(self, *args): return _chilkat.CkCert_get_SerialNumber(self, *args)
- def get_ForTimeStamping(self): return _chilkat.CkCert_get_ForTimeStamping(self)
- def get_ForCodeSigning(self): return _chilkat.CkCert_get_ForCodeSigning(self)
- def get_ForClientAuthentication(self): return _chilkat.CkCert_get_ForClientAuthentication(self)
- def get_ForServerAuthentication(self): return _chilkat.CkCert_get_ForServerAuthentication(self)
- def get_ForSecureEmail(self): return _chilkat.CkCert_get_ForSecureEmail(self)
- def get_Version(self, *args): return _chilkat.CkCert_get_Version(self, *args)
- def SaveLastError(self, *args): return _chilkat.CkCert_SaveLastError(self, *args)
- def LastErrorXml(self, *args): return _chilkat.CkCert_LastErrorXml(self, *args)
- def LastErrorHtml(self, *args): return _chilkat.CkCert_LastErrorHtml(self, *args)
- def LastErrorText(self, *args): return _chilkat.CkCert_LastErrorText(self, *args)
- def get_HasKeyContainer(self): return _chilkat.CkCert_get_HasKeyContainer(self)
- def get_KeyContainerName(self, *args): return _chilkat.CkCert_get_KeyContainerName(self, *args)
- def keyContainerName(self): return _chilkat.CkCert_keyContainerName(self)
- def get_CspName(self, *args): return _chilkat.CkCert_get_CspName(self, *args)
- def cspName(self): return _chilkat.CkCert_cspName(self)
- def get_MachineKeyset(self): return _chilkat.CkCert_get_MachineKeyset(self)
- def get_Silent(self): return _chilkat.CkCert_get_Silent(self)
- def LoadByEmailAddress(self, *args): return _chilkat.CkCert_LoadByEmailAddress(self, *args)
- def LoadByCommonName(self, *args): return _chilkat.CkCert_LoadByCommonName(self, *args)
- def ExportCertPem(self, *args): return _chilkat.CkCert_ExportCertPem(self, *args)
- def ExportCertPemFile(self, *args): return _chilkat.CkCert_ExportCertPemFile(self, *args)
- def ExportCertDer(self, *args): return _chilkat.CkCert_ExportCertDer(self, *args)
- def ExportCertDerFile(self, *args): return _chilkat.CkCert_ExportCertDerFile(self, *args)
- def PemFileToDerFile(self, *args): return _chilkat.CkCert_PemFileToDerFile(self, *args)
- def ExportPublicKey(self): return _chilkat.CkCert_ExportPublicKey(self)
- def ExportPrivateKey(self): return _chilkat.CkCert_ExportPrivateKey(self)
- def LinkPrivateKey(self, *args): return _chilkat.CkCert_LinkPrivateKey(self, *args)
- def exportCertPem(self): return _chilkat.CkCert_exportCertPem(self)
-CkCert_swigregister = _chilkat.CkCert_swigregister
-CkCert_swigregister(CkCert)
-
-class CkCertStore(_object):
- __swig_setmethods__ = {}
- __setattr__ = lambda self, name, value: _swig_setattr(self, CkCertStore, name, value)
- __swig_getmethods__ = {}
- __getattr__ = lambda self, name: _swig_getattr(self, CkCertStore, name)
- __repr__ = _swig_repr
- def __init__(self):
- this = _chilkat.new_CkCertStore()
- try: self.this.append(this)
- except: self.this = this
- __swig_destroy__ = _chilkat.delete_CkCertStore
- __del__ = lambda self : None;
- def CreateFileStore(self, *args): return _chilkat.CkCertStore_CreateFileStore(self, *args)
- def CreateMemoryStore(self): return _chilkat.CkCertStore_CreateMemoryStore(self)
- def CreateRegistryStore(self, *args): return _chilkat.CkCertStore_CreateRegistryStore(self, *args)
- def FindCertByRfc822Name(self, *args): return _chilkat.CkCertStore_FindCertByRfc822Name(self, *args)
- def OpenChilkatStore(self, *args): return _chilkat.CkCertStore_OpenChilkatStore(self, *args)
- def OpenCurrentUserStore(self, *args): return _chilkat.CkCertStore_OpenCurrentUserStore(self, *args)
- def OpenFileStore(self, *args): return _chilkat.CkCertStore_OpenFileStore(self, *args)
- def OpenOutlookStore(self, *args): return _chilkat.CkCertStore_OpenOutlookStore(self, *args)
- def OpenRegistryStore(self, *args): return _chilkat.CkCertStore_OpenRegistryStore(self, *args)
- def FindCertBySha1Thumbprint(self, *args): return _chilkat.CkCertStore_FindCertBySha1Thumbprint(self, *args)
- def get_VerboseLogging(self): return _chilkat.CkCertStore_get_VerboseLogging(self)
- def put_VerboseLogging(self, *args): return _chilkat.CkCertStore_put_VerboseLogging(self, *args)
- def lastErrorText(self): return _chilkat.CkCertStore_lastErrorText(self)
- def lastErrorXml(self): return _chilkat.CkCertStore_lastErrorXml(self)
- def lastErrorHtml(self): return _chilkat.CkCertStore_lastErrorHtml(self)
- def version(self): return _chilkat.CkCertStore_version(self)
- def get_Utf8(self): return _chilkat.CkCertStore_get_Utf8(self)
- def put_Utf8(self, *args): return _chilkat.CkCertStore_put_Utf8(self, *args)
- def LoadPfxFile(self, *args): return _chilkat.CkCertStore_LoadPfxFile(self, *args)
- def LoadPfxData(self, *args): return _chilkat.CkCertStore_LoadPfxData(self, *args)
- def LoadPfxData2(self, *args): return _chilkat.CkCertStore_LoadPfxData2(self, *args)
- def FindCertBySerial(self, *args): return _chilkat.CkCertStore_FindCertBySerial(self, *args)
- def FindCertBySubjectE(self, *args): return _chilkat.CkCertStore_FindCertBySubjectE(self, *args)
- def FindCertBySubjectO(self, *args): return _chilkat.CkCertStore_FindCertBySubjectO(self, *args)
- def FindCertBySubjectCN(self, *args): return _chilkat.CkCertStore_FindCertBySubjectCN(self, *args)
- def FindCertBySubject(self, *args): return _chilkat.CkCertStore_FindCertBySubject(self, *args)
- def GetEmailCert(self, *args): return _chilkat.CkCertStore_GetEmailCert(self, *args)
- def FindCertForEmail(self, *args): return _chilkat.CkCertStore_FindCertForEmail(self, *args)
- def GetCertificate(self, *args): return _chilkat.CkCertStore_GetCertificate(self, *args)
- def get_NumEmailCerts(self): return _chilkat.CkCertStore_get_NumEmailCerts(self)
- def RemoveCertificate(self, *args): return _chilkat.CkCertStore_RemoveCertificate(self, *args)
- def AddCertificate(self, *args): return _chilkat.CkCertStore_AddCertificate(self, *args)
- def get_NumCertificates(self): return _chilkat.CkCertStore_get_NumCertificates(self)
- def get_Version(self, *args): return _chilkat.CkCertStore_get_Version(self, *args)
- def SaveLastError(self, *args): return _chilkat.CkCertStore_SaveLastError(self, *args)
- def LastErrorXml(self, *args): return _chilkat.CkCertStore_LastErrorXml(self, *args)
- def LastErrorHtml(self, *args): return _chilkat.CkCertStore_LastErrorHtml(self, *args)
- def LastErrorText(self, *args): return _chilkat.CkCertStore_LastErrorText(self, *args)
-CkCertStore_swigregister = _chilkat.CkCertStore_swigregister
-CkCertStore_swigregister(CkCertStore)
-
-class CkCreateCS(_object):
- __swig_setmethods__ = {}
- __setattr__ = lambda self, name, value: _swig_setattr(self, CkCreateCS, name, value)
- __swig_getmethods__ = {}
- __getattr__ = lambda self, name: _swig_getattr(self, CkCreateCS, name)
- __repr__ = _swig_repr
- def __init__(self):
- this = _chilkat.new_CkCreateCS()
- try: self.this.append(this)
- except: self.this = this
- __swig_destroy__ = _chilkat.delete_CkCreateCS
- __del__ = lambda self : None;
- def lastErrorText(self): return _chilkat.CkCreateCS_lastErrorText(self)
- def lastErrorXml(self): return _chilkat.CkCreateCS_lastErrorXml(self)
- def lastErrorHtml(self): return _chilkat.CkCreateCS_lastErrorHtml(self)
- def get_Utf8(self): return _chilkat.CkCreateCS_get_Utf8(self)
- def put_Utf8(self, *args): return _chilkat.CkCreateCS_put_Utf8(self, *args)
- def get_ReadOnly(self): return _chilkat.CkCreateCS_get_ReadOnly(self)
- def put_ReadOnly(self, *args): return _chilkat.CkCreateCS_put_ReadOnly(self, *args)
- def get_Version(self, *args): return _chilkat.CkCreateCS_get_Version(self, *args)
- def CreateRegistryStore(self, *args): return _chilkat.CkCreateCS_CreateRegistryStore(self, *args)
- def OpenRegistryStore(self, *args): return _chilkat.CkCreateCS_OpenRegistryStore(self, *args)
- def CreateFileStore(self, *args): return _chilkat.CkCreateCS_CreateFileStore(self, *args)
- def OpenFileStore(self, *args): return _chilkat.CkCreateCS_OpenFileStore(self, *args)
- def CreateMemoryStore(self): return _chilkat.CkCreateCS_CreateMemoryStore(self)
- def OpenChilkatStore(self): return _chilkat.CkCreateCS_OpenChilkatStore(self)
- def OpenOutlookStore(self): return _chilkat.CkCreateCS_OpenOutlookStore(self)
- def OpenLocalSystemStore(self): return _chilkat.CkCreateCS_OpenLocalSystemStore(self)
- def OpenCurrentUserStore(self): return _chilkat.CkCreateCS_OpenCurrentUserStore(self)
- def SaveLastError(self, *args): return _chilkat.CkCreateCS_SaveLastError(self, *args)
- def LastErrorXml(self, *args): return _chilkat.CkCreateCS_LastErrorXml(self, *args)
- def LastErrorHtml(self, *args): return _chilkat.CkCreateCS_LastErrorHtml(self, *args)
- def LastErrorText(self, *args): return _chilkat.CkCreateCS_LastErrorText(self, *args)
-CkCreateCS_swigregister = _chilkat.CkCreateCS_swigregister
-CkCreateCS_swigregister(CkCreateCS)
-
-class CkMime(_object):
- __swig_setmethods__ = {}
- __setattr__ = lambda self, name, value: _swig_setattr(self, CkMime, name, value)
- __swig_getmethods__ = {}
- __getattr__ = lambda self, name: _swig_getattr(self, CkMime, name)
- __repr__ = _swig_repr
- def __init__(self):
- this = _chilkat.new_CkMime()
- try: self.this.append(this)
- except: self.this = this
- __swig_destroy__ = _chilkat.delete_CkMime
- __del__ = lambda self : None;
- def Convert8Bit(self): return _chilkat.CkMime_Convert8Bit(self)
- def get_UseMmDescription(self): return _chilkat.CkMime_get_UseMmDescription(self)
- def put_UseMmDescription(self, *args): return _chilkat.CkMime_put_UseMmDescription(self, *args)
- def GetMimeBytes(self, *args): return _chilkat.CkMime_GetMimeBytes(self, *args)
- def ExtractPartsToFiles(self, *args): return _chilkat.CkMime_ExtractPartsToFiles(self, *args)
- def AsnBodyToXml(self, *args): return _chilkat.CkMime_AsnBodyToXml(self, *args)
- def asnBodyToXml(self): return _chilkat.CkMime_asnBodyToXml(self)
- def get_CurrentDateTime(self, *args): return _chilkat.CkMime_get_CurrentDateTime(self, *args)
- def currentDateTime(self): return _chilkat.CkMime_currentDateTime(self)
- def EncryptN(self): return _chilkat.CkMime_EncryptN(self)
- def AddEncryptCert(self, *args): return _chilkat.CkMime_AddEncryptCert(self, *args)
- def ClearEncryptCerts(self): return _chilkat.CkMime_ClearEncryptCerts(self)
- def SetBody(self, *args): return _chilkat.CkMime_SetBody(self, *args)
- def UrlEncodeBody(self, *args): return _chilkat.CkMime_UrlEncodeBody(self, *args)
- def AddContentLength(self): return _chilkat.CkMime_AddContentLength(self)
- def get_VerboseLogging(self): return _chilkat.CkMime_get_VerboseLogging(self)
- def put_VerboseLogging(self, *args): return _chilkat.CkMime_put_VerboseLogging(self, *args)
- def DecryptUsingPfxData(self, *args): return _chilkat.CkMime_DecryptUsingPfxData(self, *args)
- def DecryptUsingPfxFile(self, *args): return _chilkat.CkMime_DecryptUsingPfxFile(self, *args)
- def AddPfxSourceData(self, *args): return _chilkat.CkMime_AddPfxSourceData(self, *args)
- def AddPfxSourceFile(self, *args): return _chilkat.CkMime_AddPfxSourceFile(self, *args)
- def get_Pkcs7CryptAlg(self, *args): return _chilkat.CkMime_get_Pkcs7CryptAlg(self, *args)
- def pkcs7CryptAlg(self): return _chilkat.CkMime_pkcs7CryptAlg(self)
- def put_Pkcs7CryptAlg(self, *args): return _chilkat.CkMime_put_Pkcs7CryptAlg(self, *args)
- def get_Pkcs7KeyLength(self): return _chilkat.CkMime_get_Pkcs7KeyLength(self)
- def put_Pkcs7KeyLength(self, *args): return _chilkat.CkMime_put_Pkcs7KeyLength(self, *args)
- def get_SigningHashAlg(self, *args): return _chilkat.CkMime_get_SigningHashAlg(self, *args)
- def signingHashAlg(self): return _chilkat.CkMime_signingHashAlg(self)
- def put_SigningHashAlg(self, *args): return _chilkat.CkMime_put_SigningHashAlg(self, *args)
- def GetHeaderFieldAttribute(self, *args): return _chilkat.CkMime_GetHeaderFieldAttribute(self, *args)
- def getHeaderFieldAttribute(self, *args): return _chilkat.CkMime_getHeaderFieldAttribute(self, *args)
- def HasSignatureSigningTime(self, *args): return _chilkat.CkMime_HasSignatureSigningTime(self, *args)
- def GetSignatureSigningTime(self, *args): return _chilkat.CkMime_GetSignatureSigningTime(self, *args)
- def RemoveHeaderField(self, *args): return _chilkat.CkMime_RemoveHeaderField(self, *args)
- def entireHead(self): return _chilkat.CkMime_entireHead(self)
- def entireBody(self): return _chilkat.CkMime_entireBody(self)
- def xml(self): return _chilkat.CkMime_xml(self)
- def mime(self): return _chilkat.CkMime_mime(self)
- def bodyEncoded(self): return _chilkat.CkMime_bodyEncoded(self)
- def bodyDecoded(self): return _chilkat.CkMime_bodyDecoded(self)
- def charset(self): return _chilkat.CkMime_charset(self)
- def disposition(self): return _chilkat.CkMime_disposition(self)
- def encoding(self): return _chilkat.CkMime_encoding(self)
- def contentType(self): return _chilkat.CkMime_contentType(self)
- def filename(self): return _chilkat.CkMime_filename(self)
- def name(self): return _chilkat.CkMime_name(self)
- def boundary(self): return _chilkat.CkMime_boundary(self)
- def micalg(self): return _chilkat.CkMime_micalg(self)
- def protocol(self): return _chilkat.CkMime_protocol(self)
- def header(self, *args): return _chilkat.CkMime_header(self, *args)
- def headerName(self, *args): return _chilkat.CkMime_headerName(self, *args)
- def headerValue(self, *args): return _chilkat.CkMime_headerValue(self, *args)
- def getHeaderField(self, *args): return _chilkat.CkMime_getHeaderField(self, *args)
- def getHeaderFieldName(self, *args): return _chilkat.CkMime_getHeaderFieldName(self, *args)
- def getHeaderFieldValue(self, *args): return _chilkat.CkMime_getHeaderFieldValue(self, *args)
- def getEntireHead(self): return _chilkat.CkMime_getEntireHead(self)
- def getEntireBody(self): return _chilkat.CkMime_getEntireBody(self)
- def getXml(self): return _chilkat.CkMime_getXml(self)
- def getMime(self): return _chilkat.CkMime_getMime(self)
- def getBodyEncoded(self): return _chilkat.CkMime_getBodyEncoded(self)
- def getBodyDecoded(self): return _chilkat.CkMime_getBodyDecoded(self)
- def lastErrorText(self): return _chilkat.CkMime_lastErrorText(self)
- def lastErrorXml(self): return _chilkat.CkMime_lastErrorXml(self)
- def lastErrorHtml(self): return _chilkat.CkMime_lastErrorHtml(self)
- def get_Utf8(self): return _chilkat.CkMime_get_Utf8(self)
- def put_Utf8(self, *args): return _chilkat.CkMime_put_Utf8(self, *args)
- def get_Version(self, *args): return _chilkat.CkMime_get_Version(self, *args)
- def SaveLastError(self, *args): return _chilkat.CkMime_SaveLastError(self, *args)
- def LastErrorXml(self, *args): return _chilkat.CkMime_LastErrorXml(self, *args)
- def LastErrorHtml(self, *args): return _chilkat.CkMime_LastErrorHtml(self, *args)
- def LastErrorText(self, *args): return _chilkat.CkMime_LastErrorText(self, *args)
- def AddDetachedSignaturePk(self, *args): return _chilkat.CkMime_AddDetachedSignaturePk(self, *args)
- def AddDetachedSignaturePk2(self, *args): return _chilkat.CkMime_AddDetachedSignaturePk2(self, *args)
- def ConvertToSignedPk(self, *args): return _chilkat.CkMime_ConvertToSignedPk(self, *args)
- def Decrypt(self): return _chilkat.CkMime_Decrypt(self)
- def Decrypt2(self, *args): return _chilkat.CkMime_Decrypt2(self, *args)
- def Verify(self): return _chilkat.CkMime_Verify(self)
- def ConvertToMultipartMixed(self): return _chilkat.CkMime_ConvertToMultipartMixed(self)
- def ConvertToMultipartAlt(self): return _chilkat.CkMime_ConvertToMultipartAlt(self)
- def SetBodyFromPlainText(self, *args): return _chilkat.CkMime_SetBodyFromPlainText(self, *args)
- def SetHeaderField(self, *args): return _chilkat.CkMime_SetHeaderField(self, *args)
- def GetHeaderField(self, *args): return _chilkat.CkMime_GetHeaderField(self, *args)
- def GetHeaderFieldName(self, *args): return _chilkat.CkMime_GetHeaderFieldName(self, *args)
- def GetHeaderFieldValue(self, *args): return _chilkat.CkMime_GetHeaderFieldValue(self, *args)
- def AddDetachedSignature2(self, *args): return _chilkat.CkMime_AddDetachedSignature2(self, *args)
- def AddHeaderField(self, *args): return _chilkat.CkMime_AddHeaderField(self, *args)
- def SetVerifyCert(self, *args): return _chilkat.CkMime_SetVerifyCert(self, *args)
- def LoadMimeFile(self, *args): return _chilkat.CkMime_LoadMimeFile(self, *args)
- def LoadMime(self, *args): return _chilkat.CkMime_LoadMime(self, *args)
- def SaveMime(self, *args): return _chilkat.CkMime_SaveMime(self, *args)
- def ToEmailObject(self): return _chilkat.CkMime_ToEmailObject(self)
- def get_NumParts(self): return _chilkat.CkMime_get_NumParts(self)
- def GetPart(self, *args): return _chilkat.CkMime_GetPart(self, *args)
- def get_Protocol(self, *args): return _chilkat.CkMime_get_Protocol(self, *args)
- def put_Protocol(self, *args): return _chilkat.CkMime_put_Protocol(self, *args)
- def get_Micalg(self, *args): return _chilkat.CkMime_get_Micalg(self, *args)
- def put_Micalg(self, *args): return _chilkat.CkMime_put_Micalg(self, *args)
- def get_Boundary(self, *args): return _chilkat.CkMime_get_Boundary(self, *args)
- def put_Boundary(self, *args): return _chilkat.CkMime_put_Boundary(self, *args)
- def get_Name(self, *args): return _chilkat.CkMime_get_Name(self, *args)
- def put_Name(self, *args): return _chilkat.CkMime_put_Name(self, *args)
- def get_Filename(self, *args): return _chilkat.CkMime_get_Filename(self, *args)
- def put_Filename(self, *args): return _chilkat.CkMime_put_Filename(self, *args)
- def get_Charset(self, *args): return _chilkat.CkMime_get_Charset(self, *args)
- def put_Charset(self, *args): return _chilkat.CkMime_put_Charset(self, *args)
- def get_Disposition(self, *args): return _chilkat.CkMime_get_Disposition(self, *args)
- def put_Disposition(self, *args): return _chilkat.CkMime_put_Disposition(self, *args)
- def get_Encoding(self, *args): return _chilkat.CkMime_get_Encoding(self, *args)
- def put_Encoding(self, *args): return _chilkat.CkMime_put_Encoding(self, *args)
- def get_ContentType(self, *args): return _chilkat.CkMime_get_ContentType(self, *args)
- def put_ContentType(self, *args): return _chilkat.CkMime_put_ContentType(self, *args)
- def UnlockComponent(self, *args): return _chilkat.CkMime_UnlockComponent(self, *args)
- def IsUnlocked(self): return _chilkat.CkMime_IsUnlocked(self)
- def get_NumHeaderFields(self): return _chilkat.CkMime_get_NumHeaderFields(self)
- def get_NumSignerCerts(self): return _chilkat.CkMime_get_NumSignerCerts(self)
- def get_NumEncryptCerts(self): return _chilkat.CkMime_get_NumEncryptCerts(self)
- def get_UnwrapExtras(self): return _chilkat.CkMime_get_UnwrapExtras(self)
- def put_UnwrapExtras(self, *args): return _chilkat.CkMime_put_UnwrapExtras(self, *args)
- def SetCSP(self, *args): return _chilkat.CkMime_SetCSP(self, *args)
- def AppendPart(self, *args): return _chilkat.CkMime_AppendPart(self, *args)
- def AppendPartFromFile(self, *args): return _chilkat.CkMime_AppendPartFromFile(self, *args)
- def NewMultipartMixed(self): return _chilkat.CkMime_NewMultipartMixed(self)
- def NewMultipartRelated(self): return _chilkat.CkMime_NewMultipartRelated(self)
- def NewMultipartAlternative(self): return _chilkat.CkMime_NewMultipartAlternative(self)
- def NewMessageRfc822(self, *args): return _chilkat.CkMime_NewMessageRfc822(self, *args)
- def SaveBody(self, *args): return _chilkat.CkMime_SaveBody(self, *args)
- def IsMultipart(self): return _chilkat.CkMime_IsMultipart(self)
- def IsPlainText(self): return _chilkat.CkMime_IsPlainText(self)
- def IsHtml(self): return _chilkat.CkMime_IsHtml(self)
- def IsXml(self): return _chilkat.CkMime_IsXml(self)
- def IsSigned(self): return _chilkat.CkMime_IsSigned(self)
- def IsEncrypted(self): return _chilkat.CkMime_IsEncrypted(self)
- def IsMultipartMixed(self): return _chilkat.CkMime_IsMultipartMixed(self)
- def IsMultipartAlternative(self): return _chilkat.CkMime_IsMultipartAlternative(self)
- def IsMultipartRelated(self): return _chilkat.CkMime_IsMultipartRelated(self)
- def IsAttachment(self): return _chilkat.CkMime_IsAttachment(self)
- def IsText(self): return _chilkat.CkMime_IsText(self)
- def IsApplicationData(self): return _chilkat.CkMime_IsApplicationData(self)
- def IsImage(self): return _chilkat.CkMime_IsImage(self)
- def IsAudio(self): return _chilkat.CkMime_IsAudio(self)
- def IsVideo(self): return _chilkat.CkMime_IsVideo(self)
- def GetBodyBinary(self, *args): return _chilkat.CkMime_GetBodyBinary(self, *args)
- def GetBodyEncoded(self, *args): return _chilkat.CkMime_GetBodyEncoded(self, *args)
- def GetBodyDecoded(self, *args): return _chilkat.CkMime_GetBodyDecoded(self, *args)
- def SetBodyFromEncoded(self, *args): return _chilkat.CkMime_SetBodyFromEncoded(self, *args)
- def SetBodyFromHtml(self, *args): return _chilkat.CkMime_SetBodyFromHtml(self, *args)
- def SetBodyFromXml(self, *args): return _chilkat.CkMime_SetBodyFromXml(self, *args)
- def SetBodyFromBinary(self, *args): return _chilkat.CkMime_SetBodyFromBinary(self, *args)
- def SetBodyFromFile(self, *args): return _chilkat.CkMime_SetBodyFromFile(self, *args)
- def Encrypt(self, *args): return _chilkat.CkMime_Encrypt(self, *args)
- def ConvertToSigned(self, *args): return _chilkat.CkMime_ConvertToSigned(self, *args)
- def AddDetachedSignature(self, *args): return _chilkat.CkMime_AddDetachedSignature(self, *args)
- def SaveXml(self, *args): return _chilkat.CkMime_SaveXml(self, *args)
- def GetMime(self, *args): return _chilkat.CkMime_GetMime(self, *args)
- def LoadXml(self, *args): return _chilkat.CkMime_LoadXml(self, *args)
- def GetXml(self, *args): return _chilkat.CkMime_GetXml(self, *args)
- def GetEncryptCert(self, *args): return _chilkat.CkMime_GetEncryptCert(self, *args)
- def GetSignerCert(self, *args): return _chilkat.CkMime_GetSignerCert(self, *args)
- def UnwrapSecurity(self): return _chilkat.CkMime_UnwrapSecurity(self)
- def LoadXmlFile(self, *args): return _chilkat.CkMime_LoadXmlFile(self, *args)
- def GetEntireHead(self, *args): return _chilkat.CkMime_GetEntireHead(self, *args)
- def GetEntireBody(self, *args): return _chilkat.CkMime_GetEntireBody(self, *args)
- def RemovePart(self, *args): return _chilkat.CkMime_RemovePart(self, *args)
- def ContainsEncryptedParts(self): return _chilkat.CkMime_ContainsEncryptedParts(self)
- def ContainsSignedParts(self): return _chilkat.CkMime_ContainsSignedParts(self)
-CkMime_swigregister = _chilkat.CkMime_swigregister
-CkMime_swigregister(CkMime)
-
-class CkEmailBundle(_object):
- __swig_setmethods__ = {}
- __setattr__ = lambda self, name, value: _swig_setattr(self, CkEmailBundle, name, value)
- __swig_getmethods__ = {}
- __getattr__ = lambda self, name: _swig_getattr(self, CkEmailBundle, name)
- __repr__ = _swig_repr
- def __init__(self):
- this = _chilkat.new_CkEmailBundle()
- try: self.this.append(this)
- except: self.this = this
- __swig_destroy__ = _chilkat.delete_CkEmailBundle
- __del__ = lambda self : None;
- def FindByHeader(self, *args): return _chilkat.CkEmailBundle_FindByHeader(self, *args)
- def RemoveEmailByIndex(self, *args): return _chilkat.CkEmailBundle_RemoveEmailByIndex(self, *args)
- def lastErrorText(self): return _chilkat.CkEmailBundle_lastErrorText(self)
- def lastErrorXml(self): return _chilkat.CkEmailBundle_lastErrorXml(self)
- def lastErrorHtml(self): return _chilkat.CkEmailBundle_lastErrorHtml(self)
- def getXml(self): return _chilkat.CkEmailBundle_getXml(self)
- def get_Utf8(self): return _chilkat.CkEmailBundle_get_Utf8(self)
- def put_Utf8(self, *args): return _chilkat.CkEmailBundle_put_Utf8(self, *args)
- def GetUidls(self): return _chilkat.CkEmailBundle_GetUidls(self)
- def RemoveEmail(self, *args): return _chilkat.CkEmailBundle_RemoveEmail(self, *args)
- def GetEmail(self, *args): return _chilkat.CkEmailBundle_GetEmail(self, *args)
- def AddEmail(self, *args): return _chilkat.CkEmailBundle_AddEmail(self, *args)
- def get_MessageCount(self): return _chilkat.CkEmailBundle_get_MessageCount(self)
- def GetXml(self, *args): return _chilkat.CkEmailBundle_GetXml(self, *args)
- def SaveXml(self, *args): return _chilkat.CkEmailBundle_SaveXml(self, *args)
- def LoadXml(self, *args): return _chilkat.CkEmailBundle_LoadXml(self, *args)
- def LoadXmlString(self, *args): return _chilkat.CkEmailBundle_LoadXmlString(self, *args)
- def SaveLastError(self, *args): return _chilkat.CkEmailBundle_SaveLastError(self, *args)
- def LastErrorXml(self, *args): return _chilkat.CkEmailBundle_LastErrorXml(self, *args)
- def LastErrorHtml(self, *args): return _chilkat.CkEmailBundle_LastErrorHtml(self, *args)
- def LastErrorText(self, *args): return _chilkat.CkEmailBundle_LastErrorText(self, *args)
- def SortBySubject(self, *args): return _chilkat.CkEmailBundle_SortBySubject(self, *args)
- def SortBySender(self, *args): return _chilkat.CkEmailBundle_SortBySender(self, *args)
- def SortByRecipient(self, *args): return _chilkat.CkEmailBundle_SortByRecipient(self, *args)
- def SortByDate(self, *args): return _chilkat.CkEmailBundle_SortByDate(self, *args)
-CkEmailBundle_swigregister = _chilkat.CkEmailBundle_swigregister
-CkEmailBundle_swigregister(CkEmailBundle)
-
-class CkMailMan(_object):
- __swig_setmethods__ = {}
- __setattr__ = lambda self, name, value: _swig_setattr(self, CkMailMan, name, value)
- __swig_getmethods__ = {}
- __getattr__ = lambda self, name: _swig_getattr(self, CkMailMan, name)
- __repr__ = _swig_repr
- def __init__(self):
- this = _chilkat.new_CkMailMan()
- try: self.this.append(this)
- except: self.this = this
- __swig_destroy__ = _chilkat.delete_CkMailMan
- __del__ = lambda self : None;
- def GetSizeByUidl(self, *args): return _chilkat.CkMailMan_GetSizeByUidl(self, *args)
- def SendMimeToList(self, *args): return _chilkat.CkMailMan_SendMimeToList(self, *args)
- def SendToDistributionList(self, *args): return _chilkat.CkMailMan_SendToDistributionList(self, *args)
- def get_ClientIpAddress(self, *args): return _chilkat.CkMailMan_get_ClientIpAddress(self, *args)
- def clientIpAddress(self): return _chilkat.CkMailMan_clientIpAddress(self)
- def put_ClientIpAddress(self, *args): return _chilkat.CkMailMan_put_ClientIpAddress(self, *args)
- def get_Pop3SessionId(self): return _chilkat.CkMailMan_get_Pop3SessionId(self)
- def MxLookupAll(self, *args): return _chilkat.CkMailMan_MxLookupAll(self, *args)
- def DeleteByMsgnum(self, *args): return _chilkat.CkMailMan_DeleteByMsgnum(self, *args)
- def FetchByMsgnum(self, *args): return _chilkat.CkMailMan_FetchByMsgnum(self, *args)
- def FetchMimeByMsgnum(self, *args): return _chilkat.CkMailMan_FetchMimeByMsgnum(self, *args)
- def get_SendBufferSize(self): return _chilkat.CkMailMan_get_SendBufferSize(self)
- def put_SendBufferSize(self, *args): return _chilkat.CkMailMan_put_SendBufferSize(self, *args)
- def SshTunnel(self, *args): return _chilkat.CkMailMan_SshTunnel(self, *args)
- def SshAuthenticatePw(self, *args): return _chilkat.CkMailMan_SshAuthenticatePw(self, *args)
- def SshAuthenticatePk(self, *args): return _chilkat.CkMailMan_SshAuthenticatePk(self, *args)
- def SshCloseTunnel(self, *args): return _chilkat.CkMailMan_SshCloseTunnel(self, *args)
- def get_IncludeRootCert(self): return _chilkat.CkMailMan_get_IncludeRootCert(self)
- def put_IncludeRootCert(self, *args): return _chilkat.CkMailMan_put_IncludeRootCert(self, *args)
- def get_SocksHostname(self, *args): return _chilkat.CkMailMan_get_SocksHostname(self, *args)
- def socksHostname(self): return _chilkat.CkMailMan_socksHostname(self)
- def put_SocksHostname(self, *args): return _chilkat.CkMailMan_put_SocksHostname(self, *args)
- def get_SocksUsername(self, *args): return _chilkat.CkMailMan_get_SocksUsername(self, *args)
- def socksUsername(self): return _chilkat.CkMailMan_socksUsername(self)
- def put_SocksUsername(self, *args): return _chilkat.CkMailMan_put_SocksUsername(self, *args)
- def get_SocksPassword(self, *args): return _chilkat.CkMailMan_get_SocksPassword(self, *args)
- def socksPassword(self): return _chilkat.CkMailMan_socksPassword(self)
- def put_SocksPassword(self, *args): return _chilkat.CkMailMan_put_SocksPassword(self, *args)
- def get_SocksPort(self): return _chilkat.CkMailMan_get_SocksPort(self)
- def put_SocksPort(self, *args): return _chilkat.CkMailMan_put_SocksPort(self, *args)
- def get_SocksVersion(self): return _chilkat.CkMailMan_get_SocksVersion(self)
- def put_SocksVersion(self, *args): return _chilkat.CkMailMan_put_SocksVersion(self, *args)
- def SetSslClientCertPfx(self, *args): return _chilkat.CkMailMan_SetSslClientCertPfx(self, *args)
- def SendMimeBytes(self, *args): return _chilkat.CkMailMan_SendMimeBytes(self, *args)
- def RenderToMimeBytes(self, *args): return _chilkat.CkMailMan_RenderToMimeBytes(self, *args)
- def SendMimeBytesQ(self, *args): return _chilkat.CkMailMan_SendMimeBytesQ(self, *args)
- def get_HttpProxyHostname(self, *args): return _chilkat.CkMailMan_get_HttpProxyHostname(self, *args)
- def httpProxyHostname(self): return _chilkat.CkMailMan_httpProxyHostname(self)
- def put_HttpProxyHostname(self, *args): return _chilkat.CkMailMan_put_HttpProxyHostname(self, *args)
- def get_HttpProxyAuthMethod(self, *args): return _chilkat.CkMailMan_get_HttpProxyAuthMethod(self, *args)
- def httpProxyAuthMethod(self): return _chilkat.CkMailMan_httpProxyAuthMethod(self)
- def put_HttpProxyAuthMethod(self, *args): return _chilkat.CkMailMan_put_HttpProxyAuthMethod(self, *args)
- def get_HttpProxyUsername(self, *args): return _chilkat.CkMailMan_get_HttpProxyUsername(self, *args)
- def httpProxyUsername(self): return _chilkat.CkMailMan_httpProxyUsername(self)
- def put_HttpProxyUsername(self, *args): return _chilkat.CkMailMan_put_HttpProxyUsername(self, *args)
- def get_HttpProxyPassword(self, *args): return _chilkat.CkMailMan_get_HttpProxyPassword(self, *args)
- def httpProxyPassword(self): return _chilkat.CkMailMan_httpProxyPassword(self)
- def put_HttpProxyPassword(self, *args): return _chilkat.CkMailMan_put_HttpProxyPassword(self, *args)
- def get_HttpProxyPort(self): return _chilkat.CkMailMan_get_HttpProxyPort(self)
- def put_HttpProxyPort(self, *args): return _chilkat.CkMailMan_put_HttpProxyPort(self, *args)
- def get_AutoFix(self): return _chilkat.CkMailMan_get_AutoFix(self)
- def put_AutoFix(self, *args): return _chilkat.CkMailMan_put_AutoFix(self, *args)
- def get_VerboseLogging(self): return _chilkat.CkMailMan_get_VerboseLogging(self)
- def put_VerboseLogging(self, *args): return _chilkat.CkMailMan_put_VerboseLogging(self, *args)
- def get_Pop3Stls(self): return _chilkat.CkMailMan_get_Pop3Stls(self)
- def put_Pop3Stls(self, *args): return _chilkat.CkMailMan_put_Pop3Stls(self, *args)
- def AddPfxSourceData(self, *args): return _chilkat.CkMailMan_AddPfxSourceData(self, *args)
- def AddPfxSourceFile(self, *args): return _chilkat.CkMailMan_AddPfxSourceFile(self, *args)
- def SmtpSendRawCommand(self, *args): return _chilkat.CkMailMan_SmtpSendRawCommand(self, *args)
- def smtpSendRawCommand(self, *args): return _chilkat.CkMailMan_smtpSendRawCommand(self, *args)
- def Pop3SendRawCommand(self, *args): return _chilkat.CkMailMan_Pop3SendRawCommand(self, *args)
- def pop3SendRawCommand(self, *args): return _chilkat.CkMailMan_pop3SendRawCommand(self, *args)
- def Pop3EndSessionNoQuit(self): return _chilkat.CkMailMan_Pop3EndSessionNoQuit(self)
- def lastErrorText(self): return _chilkat.CkMailMan_lastErrorText(self)
- def lastErrorXml(self): return _chilkat.CkMailMan_lastErrorXml(self)
- def lastErrorHtml(self): return _chilkat.CkMailMan_lastErrorHtml(self)
- def smtpPassword(self): return _chilkat.CkMailMan_smtpPassword(self)
- def smtpUsername(self): return _chilkat.CkMailMan_smtpUsername(self)
- def dsnNotify(self): return _chilkat.CkMailMan_dsnNotify(self)
- def dsnEnvid(self): return _chilkat.CkMailMan_dsnEnvid(self)
- def dsnRet(self): return _chilkat.CkMailMan_dsnRet(self)
- def smtpAuthMethod(self): return _chilkat.CkMailMan_smtpAuthMethod(self)
- def smtpLoginDomain(self): return _chilkat.CkMailMan_smtpLoginDomain(self)
- def filter(self): return _chilkat.CkMailMan_filter(self)
- def popPassword(self): return _chilkat.CkMailMan_popPassword(self)
- def popUsername(self): return _chilkat.CkMailMan_popUsername(self)
- def mailHost(self): return _chilkat.CkMailMan_mailHost(self)
- def heloHostname(self): return _chilkat.CkMailMan_heloHostname(self)
- def lastSendQFilename(self): return _chilkat.CkMailMan_lastSendQFilename(self)
- def version(self): return _chilkat.CkMailMan_version(self)
- def smtpHost(self): return _chilkat.CkMailMan_smtpHost(self)
- def logMailReceivedFilename(self): return _chilkat.CkMailMan_logMailReceivedFilename(self)
- def logMailSentFilename(self): return _chilkat.CkMailMan_logMailSentFilename(self)
- def mxLookup(self, *args): return _chilkat.CkMailMan_mxLookup(self, *args)
- def renderToMime(self, *args): return _chilkat.CkMailMan_renderToMime(self, *args)
- def getMailboxInfoXml(self): return _chilkat.CkMailMan_getMailboxInfoXml(self)
- def VerifyRecipients(self, *args): return _chilkat.CkMailMan_VerifyRecipients(self, *args)
- def SetSslClientCert(self, *args): return _chilkat.CkMailMan_SetSslClientCert(self, *args)
- def GetPop3SslServerCert(self): return _chilkat.CkMailMan_GetPop3SslServerCert(self)
- def GetSmtpSslServerCert(self): return _chilkat.CkMailMan_GetSmtpSslServerCert(self)
- def get_Pop3SslServerCertVerified(self): return _chilkat.CkMailMan_get_Pop3SslServerCertVerified(self)
- def get_SmtpSslServerCertVerified(self): return _chilkat.CkMailMan_get_SmtpSslServerCertVerified(self)
- def GetMailboxSize(self): return _chilkat.CkMailMan_GetMailboxSize(self)
- def GetMailboxCount(self): return _chilkat.CkMailMan_GetMailboxCount(self)
- def Pop3BeginSession(self): return _chilkat.CkMailMan_Pop3BeginSession(self)
- def Pop3EndSession(self): return _chilkat.CkMailMan_Pop3EndSession(self)
- def Pop3Noop(self): return _chilkat.CkMailMan_Pop3Noop(self)
- def Pop3Reset(self): return _chilkat.CkMailMan_Pop3Reset(self)
- def get_Pop3SessionLog(self, *args): return _chilkat.CkMailMan_get_Pop3SessionLog(self, *args)
- def ClearPop3SessionLog(self): return _chilkat.CkMailMan_ClearPop3SessionLog(self)
- def pop3SessionLog(self): return _chilkat.CkMailMan_pop3SessionLog(self)
- def GetMailboxInfoXml(self, *args): return _chilkat.CkMailMan_GetMailboxInfoXml(self, *args)
- def SetDecryptCert2(self, *args): return _chilkat.CkMailMan_SetDecryptCert2(self, *args)
- def get_SmtpSessionLog(self, *args): return _chilkat.CkMailMan_get_SmtpSessionLog(self, *args)
- def ClearSmtpSessionLog(self): return _chilkat.CkMailMan_ClearSmtpSessionLog(self)
- def smtpSessionLog(self): return _chilkat.CkMailMan_smtpSessionLog(self)
- def get_Utf8(self): return _chilkat.CkMailMan_get_Utf8(self)
- def put_Utf8(self, *args): return _chilkat.CkMailMan_put_Utf8(self, *args)
- def OpenSmtpConnection(self): return _chilkat.CkMailMan_OpenSmtpConnection(self)
- def CloseSmtpConnection(self): return _chilkat.CkMailMan_CloseSmtpConnection(self)
- def SmtpReset(self): return _chilkat.CkMailMan_SmtpReset(self)
- def SmtpNoop(self): return _chilkat.CkMailMan_SmtpNoop(self)
- def get_HeartbeatMs(self): return _chilkat.CkMailMan_get_HeartbeatMs(self)
- def put_HeartbeatMs(self, *args): return _chilkat.CkMailMan_put_HeartbeatMs(self, *args)
- def get_HeloHostname(self, *args): return _chilkat.CkMailMan_get_HeloHostname(self, *args)
- def put_HeloHostname(self, *args): return _chilkat.CkMailMan_put_HeloHostname(self, *args)
- def SaveLastError(self, *args): return _chilkat.CkMailMan_SaveLastError(self, *args)
- def LastErrorXml(self, *args): return _chilkat.CkMailMan_LastErrorXml(self, *args)
- def LastErrorHtml(self, *args): return _chilkat.CkMailMan_LastErrorHtml(self, *args)
- def LastErrorText(self, *args): return _chilkat.CkMailMan_LastErrorText(self, *args)
- def get_SmtpPassword(self, *args): return _chilkat.CkMailMan_get_SmtpPassword(self, *args)
- def put_SmtpPassword(self, *args): return _chilkat.CkMailMan_put_SmtpPassword(self, *args)
- def get_SmtpUsername(self, *args): return _chilkat.CkMailMan_get_SmtpUsername(self, *args)
- def put_SmtpUsername(self, *args): return _chilkat.CkMailMan_put_SmtpUsername(self, *args)
- def get_DsnNotify(self, *args): return _chilkat.CkMailMan_get_DsnNotify(self, *args)
- def put_DsnNotify(self, *args): return _chilkat.CkMailMan_put_DsnNotify(self, *args)
- def get_DsnEnvid(self, *args): return _chilkat.CkMailMan_get_DsnEnvid(self, *args)
- def put_DsnEnvid(self, *args): return _chilkat.CkMailMan_put_DsnEnvid(self, *args)
- def get_DsnRet(self, *args): return _chilkat.CkMailMan_get_DsnRet(self, *args)
- def put_DsnRet(self, *args): return _chilkat.CkMailMan_put_DsnRet(self, *args)
- def get_LastSmtpStatus(self): return _chilkat.CkMailMan_get_LastSmtpStatus(self)
- def get_ReadTimeout(self): return _chilkat.CkMailMan_get_ReadTimeout(self)
- def put_ReadTimeout(self, *args): return _chilkat.CkMailMan_put_ReadTimeout(self, *args)
- def get_ConnectTimeout(self): return _chilkat.CkMailMan_get_ConnectTimeout(self)
- def put_ConnectTimeout(self, *args): return _chilkat.CkMailMan_put_ConnectTimeout(self, *args)
- def get_ResetDateOnLoad(self): return _chilkat.CkMailMan_get_ResetDateOnLoad(self)
- def put_ResetDateOnLoad(self, *args): return _chilkat.CkMailMan_put_ResetDateOnLoad(self, *args)
- def get_OpaqueSigning(self): return _chilkat.CkMailMan_get_OpaqueSigning(self)
- def put_OpaqueSigning(self, *args): return _chilkat.CkMailMan_put_OpaqueSigning(self, *args)
- def get_AllOrNone(self): return _chilkat.CkMailMan_get_AllOrNone(self)
- def put_AllOrNone(self, *args): return _chilkat.CkMailMan_put_AllOrNone(self, *args)
- def get_Pop3SPA(self): return _chilkat.CkMailMan_get_Pop3SPA(self)
- def put_Pop3SPA(self, *args): return _chilkat.CkMailMan_put_Pop3SPA(self, *args)
- def get_StartTLS(self): return _chilkat.CkMailMan_get_StartTLS(self)
- def put_StartTLS(self, *args): return _chilkat.CkMailMan_put_StartTLS(self, *args)
- def get_EmbedCertChain(self): return _chilkat.CkMailMan_get_EmbedCertChain(self)
- def put_EmbedCertChain(self, *args): return _chilkat.CkMailMan_put_EmbedCertChain(self, *args)
- def get_PopSsl(self): return _chilkat.CkMailMan_get_PopSsl(self)
- def put_PopSsl(self, *args): return _chilkat.CkMailMan_put_PopSsl(self, *args)
- def get_SmtpSsl(self): return _chilkat.CkMailMan_get_SmtpSsl(self)
- def put_SmtpSsl(self, *args): return _chilkat.CkMailMan_put_SmtpSsl(self, *args)
- def get_ImmediateDelete(self): return _chilkat.CkMailMan_get_ImmediateDelete(self)
- def put_ImmediateDelete(self, *args): return _chilkat.CkMailMan_put_ImmediateDelete(self, *args)
- def get_SendIndividual(self): return _chilkat.CkMailMan_get_SendIndividual(self)
- def put_SendIndividual(self, *args): return _chilkat.CkMailMan_put_SendIndividual(self, *args)
- def get_SmtpAuthMethod(self, *args): return _chilkat.CkMailMan_get_SmtpAuthMethod(self, *args)
- def put_SmtpAuthMethod(self, *args): return _chilkat.CkMailMan_put_SmtpAuthMethod(self, *args)
- def get_SmtpLoginDomain(self, *args): return _chilkat.CkMailMan_get_SmtpLoginDomain(self, *args)
- def put_SmtpLoginDomain(self, *args): return _chilkat.CkMailMan_put_SmtpLoginDomain(self, *args)
- def get_Filter(self, *args): return _chilkat.CkMailMan_get_Filter(self, *args)
- def put_Filter(self, *args): return _chilkat.CkMailMan_put_Filter(self, *args)
- def get_SizeLimit(self): return _chilkat.CkMailMan_get_SizeLimit(self)
- def put_SizeLimit(self, *args): return _chilkat.CkMailMan_put_SizeLimit(self, *args)
- def get_MaxCount(self): return _chilkat.CkMailMan_get_MaxCount(self)
- def put_MaxCount(self, *args): return _chilkat.CkMailMan_put_MaxCount(self, *args)
- def get_MailPort(self): return _chilkat.CkMailMan_get_MailPort(self)
- def put_MailPort(self, *args): return _chilkat.CkMailMan_put_MailPort(self, *args)
- def get_SmtpPort(self): return _chilkat.CkMailMan_get_SmtpPort(self)
- def put_SmtpPort(self, *args): return _chilkat.CkMailMan_put_SmtpPort(self, *args)
- def get_PopPassword(self, *args): return _chilkat.CkMailMan_get_PopPassword(self, *args)
- def put_PopPassword(self, *args): return _chilkat.CkMailMan_put_PopPassword(self, *args)
- def put_PopPasswordBase64(self, *args): return _chilkat.CkMailMan_put_PopPasswordBase64(self, *args)
- def get_PopUsername(self, *args): return _chilkat.CkMailMan_get_PopUsername(self, *args)
- def put_PopUsername(self, *args): return _chilkat.CkMailMan_put_PopUsername(self, *args)
- def get_MailHost(self, *args): return _chilkat.CkMailMan_get_MailHost(self, *args)
- def put_MailHost(self, *args): return _chilkat.CkMailMan_put_MailHost(self, *args)
- def get_LastSendQFilename(self, *args): return _chilkat.CkMailMan_get_LastSendQFilename(self, *args)
- def get_Version(self, *args): return _chilkat.CkMailMan_get_Version(self, *args)
- def get_SmtpHost(self, *args): return _chilkat.CkMailMan_get_SmtpHost(self, *args)
- def put_SmtpHost(self, *args): return _chilkat.CkMailMan_put_SmtpHost(self, *args)
- def get_AutoGenMessageId(self): return _chilkat.CkMailMan_get_AutoGenMessageId(self)
- def put_AutoGenMessageId(self, *args): return _chilkat.CkMailMan_put_AutoGenMessageId(self, *args)
- def get_LogMailReceivedFilename(self, *args): return _chilkat.CkMailMan_get_LogMailReceivedFilename(self, *args)
- def put_LogMailReceivedFilename(self, *args): return _chilkat.CkMailMan_put_LogMailReceivedFilename(self, *args)
- def get_LogMailSentFilename(self, *args): return _chilkat.CkMailMan_get_LogMailSentFilename(self, *args)
- def put_LogMailSentFilename(self, *args): return _chilkat.CkMailMan_put_LogMailSentFilename(self, *args)
- def ClearBadEmailAddresses(self): return _chilkat.CkMailMan_ClearBadEmailAddresses(self)
- def GetBadEmailAddresses(self): return _chilkat.CkMailMan_GetBadEmailAddresses(self)
- def GetUidls(self): return _chilkat.CkMailMan_GetUidls(self)
- def IsSmtpDsnCapable(self): return _chilkat.CkMailMan_IsSmtpDsnCapable(self)
- def VerifySmtpLogin(self): return _chilkat.CkMailMan_VerifySmtpLogin(self)
- def VerifySmtpConnection(self): return _chilkat.CkMailMan_VerifySmtpConnection(self)
- def VerifyPopLogin(self): return _chilkat.CkMailMan_VerifyPopLogin(self)
- def VerifyPopConnection(self): return _chilkat.CkMailMan_VerifyPopConnection(self)
- def FetchMultiple(self, *args): return _chilkat.CkMailMan_FetchMultiple(self, *args)
- def FetchMultipleMime(self, *args): return _chilkat.CkMailMan_FetchMultipleMime(self, *args)
- def TransferMultipleMime(self, *args): return _chilkat.CkMailMan_TransferMultipleMime(self, *args)
- def FetchMultipleHeaders(self, *args): return _chilkat.CkMailMan_FetchMultipleHeaders(self, *args)
- def DeleteByUidl(self, *args): return _chilkat.CkMailMan_DeleteByUidl(self, *args)
- def FetchEmail(self, *args): return _chilkat.CkMailMan_FetchEmail(self, *args)
- def FetchMime(self, *args): return _chilkat.CkMailMan_FetchMime(self, *args)
- def DeleteMultiple(self, *args): return _chilkat.CkMailMan_DeleteMultiple(self, *args)
- def DeleteBundle(self, *args): return _chilkat.CkMailMan_DeleteBundle(self, *args)
- def FetchSingleHeader(self, *args): return _chilkat.CkMailMan_FetchSingleHeader(self, *args)
- def FetchSingleHeaderByUidl(self, *args): return _chilkat.CkMailMan_FetchSingleHeaderByUidl(self, *args)
- def GetFullEmail(self, *args): return _chilkat.CkMailMan_GetFullEmail(self, *args)
- def GetHeaders(self, *args): return _chilkat.CkMailMan_GetHeaders(self, *args)
- def DeleteEmail(self, *args): return _chilkat.CkMailMan_DeleteEmail(self, *args)
- def GetAllHeaders(self, *args): return _chilkat.CkMailMan_GetAllHeaders(self, *args)
- def LoadXmlString(self, *args): return _chilkat.CkMailMan_LoadXmlString(self, *args)
- def LoadXmlFile(self, *args): return _chilkat.CkMailMan_LoadXmlFile(self, *args)
- def LoadXmlEmail(self, *args): return _chilkat.CkMailMan_LoadXmlEmail(self, *args)
- def MxLookup(self, *args): return _chilkat.CkMailMan_MxLookup(self, *args)
- def LoadXmlEmailString(self, *args): return _chilkat.CkMailMan_LoadXmlEmailString(self, *args)
- def QuickSend(self, *args): return _chilkat.CkMailMan_QuickSend(self, *args)
- def UnlockComponent(self, *args): return _chilkat.CkMailMan_UnlockComponent(self, *args)
- def CheckMail(self): return _chilkat.CkMailMan_CheckMail(self)
- def TransferMail(self): return _chilkat.CkMailMan_TransferMail(self)
- def CopyMail(self): return _chilkat.CkMailMan_CopyMail(self)
- def SendBundle(self, *args): return _chilkat.CkMailMan_SendBundle(self, *args)
- def SendEmail(self, *args): return _chilkat.CkMailMan_SendEmail(self, *args)
- def SendQ(self, *args): return _chilkat.CkMailMan_SendQ(self, *args)
- def SendQ2(self, *args): return _chilkat.CkMailMan_SendQ2(self, *args)
- def LoadMbx(self, *args): return _chilkat.CkMailMan_LoadMbx(self, *args)
- def LoadEml(self, *args): return _chilkat.CkMailMan_LoadEml(self, *args)
- def LoadMime(self, *args): return _chilkat.CkMailMan_LoadMime(self, *args)
- def IsUnlocked(self): return _chilkat.CkMailMan_IsUnlocked(self)
- def RenderToMime(self, *args): return _chilkat.CkMailMan_RenderToMime(self, *args)
- def SendMime(self, *args): return _chilkat.CkMailMan_SendMime(self, *args)
- def SendMimeQ(self, *args): return _chilkat.CkMailMan_SendMimeQ(self, *args)
-CkMailMan_swigregister = _chilkat.CkMailMan_swigregister
-CkMailMan_swigregister(CkMailMan)
-
-class CkGzip(_object):
- __swig_setmethods__ = {}
- __setattr__ = lambda self, name, value: _swig_setattr(self, CkGzip, name, value)
- __swig_getmethods__ = {}
- __getattr__ = lambda self, name: _swig_getattr(self, CkGzip, name)
- __repr__ = _swig_repr
- def __init__(self):
- this = _chilkat.new_CkGzip()
- try: self.this.append(this)
- except: self.this = this
- __swig_destroy__ = _chilkat.delete_CkGzip
- __del__ = lambda self : None;
- def get_Utf8(self): return _chilkat.CkGzip_get_Utf8(self)
- def put_Utf8(self, *args): return _chilkat.CkGzip_put_Utf8(self, *args)
- def get_Version(self, *args): return _chilkat.CkGzip_get_Version(self, *args)
- def version(self): return _chilkat.CkGzip_version(self)
- def CompressFile2(self, *args): return _chilkat.CkGzip_CompressFile2(self, *args)
- def CompressString(self, *args): return _chilkat.CkGzip_CompressString(self, *args)
- def CompressStringToFile(self, *args): return _chilkat.CkGzip_CompressStringToFile(self, *args)
- def ReadFile(self, *args): return _chilkat.CkGzip_ReadFile(self, *args)
- def UnTarGz(self, *args): return _chilkat.CkGzip_UnTarGz(self, *args)
- def UncompressFileToString(self, *args): return _chilkat.CkGzip_UncompressFileToString(self, *args)
- def uncompressFileToString(self, *args): return _chilkat.CkGzip_uncompressFileToString(self, *args)
- def UncompressString(self, *args): return _chilkat.CkGzip_UncompressString(self, *args)
- def uncompressString(self, *args): return _chilkat.CkGzip_uncompressString(self, *args)
- def WriteFile(self, *args): return _chilkat.CkGzip_WriteFile(self, *args)
- def ExamineFile(self, *args): return _chilkat.CkGzip_ExamineFile(self, *args)
- def ExamineMemory(self, *args): return _chilkat.CkGzip_ExamineMemory(self, *args)
- def Decode(self, *args): return _chilkat.CkGzip_Decode(self, *args)
- def get_UseCurrentDate(self): return _chilkat.CkGzip_get_UseCurrentDate(self)
- def put_UseCurrentDate(self, *args): return _chilkat.CkGzip_put_UseCurrentDate(self, *args)
- def XfdlToXml(self, *args): return _chilkat.CkGzip_XfdlToXml(self, *args)
- def xfdlToXml(self, *args): return _chilkat.CkGzip_xfdlToXml(self, *args)
- def Encode(self, *args): return _chilkat.CkGzip_Encode(self, *args)
- def encode(self, *args): return _chilkat.CkGzip_encode(self, *args)
- def get_VerboseLogging(self): return _chilkat.CkGzip_get_VerboseLogging(self)
- def put_VerboseLogging(self, *args): return _chilkat.CkGzip_put_VerboseLogging(self, *args)
- def lastErrorText(self): return _chilkat.CkGzip_lastErrorText(self)
- def lastErrorXml(self): return _chilkat.CkGzip_lastErrorXml(self)
- def lastErrorHtml(self): return _chilkat.CkGzip_lastErrorHtml(self)
- def comment(self): return _chilkat.CkGzip_comment(self)
- def filename(self): return _chilkat.CkGzip_filename(self)
- def DeflateStringENC(self, *args): return _chilkat.CkGzip_DeflateStringENC(self, *args)
- def InflateStringENC(self, *args): return _chilkat.CkGzip_InflateStringENC(self, *args)
- def deflateStringENC(self, *args): return _chilkat.CkGzip_deflateStringENC(self, *args)
- def inflateStringENC(self, *args): return _chilkat.CkGzip_inflateStringENC(self, *args)
- def SaveLastError(self, *args): return _chilkat.CkGzip_SaveLastError(self, *args)
- def LastErrorXml(self, *args): return _chilkat.CkGzip_LastErrorXml(self, *args)
- def LastErrorHtml(self, *args): return _chilkat.CkGzip_LastErrorHtml(self, *args)
- def LastErrorText(self, *args): return _chilkat.CkGzip_LastErrorText(self, *args)
- def UnlockComponent(self, *args): return _chilkat.CkGzip_UnlockComponent(self, *args)
- def IsUnlocked(self): return _chilkat.CkGzip_IsUnlocked(self)
- def CompressFile(self, *args): return _chilkat.CkGzip_CompressFile(self, *args)
- def UncompressFile(self, *args): return _chilkat.CkGzip_UncompressFile(self, *args)
- def CompressFileToMem(self, *args): return _chilkat.CkGzip_CompressFileToMem(self, *args)
- def UncompressFileToMem(self, *args): return _chilkat.CkGzip_UncompressFileToMem(self, *args)
- def CompressMemToFile(self, *args): return _chilkat.CkGzip_CompressMemToFile(self, *args)
- def UncompressMemToFile(self, *args): return _chilkat.CkGzip_UncompressMemToFile(self, *args)
- def CompressMemory(self, *args): return _chilkat.CkGzip_CompressMemory(self, *args)
- def UncompressMemory(self, *args): return _chilkat.CkGzip_UncompressMemory(self, *args)
- def get_Filename(self, *args): return _chilkat.CkGzip_get_Filename(self, *args)
- def put_Filename(self, *args): return _chilkat.CkGzip_put_Filename(self, *args)
- def get_Comment(self, *args): return _chilkat.CkGzip_get_Comment(self, *args)
- def put_Comment(self, *args): return _chilkat.CkGzip_put_Comment(self, *args)
- def get_ExtraData(self, *args): return _chilkat.CkGzip_get_ExtraData(self, *args)
- def put_ExtraData(self, *args): return _chilkat.CkGzip_put_ExtraData(self, *args)
- def get_LastMod(self, *args): return _chilkat.CkGzip_get_LastMod(self, *args)
- def put_LastMod(self, *args): return _chilkat.CkGzip_put_LastMod(self, *args)
-CkGzip_swigregister = _chilkat.CkGzip_swigregister
-CkGzip_swigregister(CkGzip)
-
-class CkUnixCompress(_object):
- __swig_setmethods__ = {}
- __setattr__ = lambda self, name, value: _swig_setattr(self, CkUnixCompress, name, value)
- __swig_getmethods__ = {}
- __getattr__ = lambda self, name: _swig_getattr(self, CkUnixCompress, name)
- __repr__ = _swig_repr
- def __init__(self):
- this = _chilkat.new_CkUnixCompress()
- try: self.this.append(this)
- except: self.this = this
- __swig_destroy__ = _chilkat.delete_CkUnixCompress
- __del__ = lambda self : None;
- def get_Utf8(self): return _chilkat.CkUnixCompress_get_Utf8(self)
- def put_Utf8(self, *args): return _chilkat.CkUnixCompress_put_Utf8(self, *args)
- def UncompressString(self, *args): return _chilkat.CkUnixCompress_UncompressString(self, *args)
- def uncompressString(self, *args): return _chilkat.CkUnixCompress_uncompressString(self, *args)
- def UncompressFileToString(self, *args): return _chilkat.CkUnixCompress_UncompressFileToString(self, *args)
- def uncompressFileToString(self, *args): return _chilkat.CkUnixCompress_uncompressFileToString(self, *args)
- def UnTarZ(self, *args): return _chilkat.CkUnixCompress_UnTarZ(self, *args)
- def CompressStringToFile(self, *args): return _chilkat.CkUnixCompress_CompressStringToFile(self, *args)
- def CompressString(self, *args): return _chilkat.CkUnixCompress_CompressString(self, *args)
- def lastErrorText(self): return _chilkat.CkUnixCompress_lastErrorText(self)
- def lastErrorXml(self): return _chilkat.CkUnixCompress_lastErrorXml(self)
- def lastErrorHtml(self): return _chilkat.CkUnixCompress_lastErrorHtml(self)
- def SaveLastError(self, *args): return _chilkat.CkUnixCompress_SaveLastError(self, *args)
- def LastErrorXml(self, *args): return _chilkat.CkUnixCompress_LastErrorXml(self, *args)
- def LastErrorHtml(self, *args): return _chilkat.CkUnixCompress_LastErrorHtml(self, *args)
- def LastErrorText(self, *args): return _chilkat.CkUnixCompress_LastErrorText(self, *args)
- def UnlockComponent(self, *args): return _chilkat.CkUnixCompress_UnlockComponent(self, *args)
- def IsUnlocked(self): return _chilkat.CkUnixCompress_IsUnlocked(self)
- def CompressFile(self, *args): return _chilkat.CkUnixCompress_CompressFile(self, *args)
- def UncompressFile(self, *args): return _chilkat.CkUnixCompress_UncompressFile(self, *args)
- def CompressFileToMem(self, *args): return _chilkat.CkUnixCompress_CompressFileToMem(self, *args)
- def UncompressFileToMem(self, *args): return _chilkat.CkUnixCompress_UncompressFileToMem(self, *args)
- def CompressMemToFile(self, *args): return _chilkat.CkUnixCompress_CompressMemToFile(self, *args)
- def UncompressMemToFile(self, *args): return _chilkat.CkUnixCompress_UncompressMemToFile(self, *args)
- def CompressMemory(self, *args): return _chilkat.CkUnixCompress_CompressMemory(self, *args)
- def UncompressMemory(self, *args): return _chilkat.CkUnixCompress_UncompressMemory(self, *args)
-CkUnixCompress_swigregister = _chilkat.CkUnixCompress_swigregister
-CkUnixCompress_swigregister(CkUnixCompress)
-
-class CkCrypt2(_object):
- __swig_setmethods__ = {}
- __setattr__ = lambda self, name, value: _swig_setattr(self, CkCrypt2, name, value)
- __swig_getmethods__ = {}
- __getattr__ = lambda self, name: _swig_getattr(self, CkCrypt2, name)
- __repr__ = _swig_repr
- def __init__(self):
- this = _chilkat.new_CkCrypt2()
- try: self.this.append(this)
- except: self.this = this
- __swig_destroy__ = _chilkat.delete_CkCrypt2
- __del__ = lambda self : None;
- def get_Utf8(self): return _chilkat.CkCrypt2_get_Utf8(self)
- def put_Utf8(self, *args): return _chilkat.CkCrypt2_put_Utf8(self, *args)
- def get_IncludeCertChain(self): return _chilkat.CkCrypt2_get_IncludeCertChain(self)
- def put_IncludeCertChain(self, *args): return _chilkat.CkCrypt2_put_IncludeCertChain(self, *args)
- def GenEncodedSecretKey(self, *args): return _chilkat.CkCrypt2_GenEncodedSecretKey(self, *args)
- def ReadFile(self, *args): return _chilkat.CkCrypt2_ReadFile(self, *args)
- def StringToBytes(self, *args): return _chilkat.CkCrypt2_StringToBytes(self, *args)
- def BytesToString(self, *args): return _chilkat.CkCrypt2_BytesToString(self, *args)
- def bytesToString(self, *args): return _chilkat.CkCrypt2_bytesToString(self, *args)
- def TrimEndingWith(self, *args): return _chilkat.CkCrypt2_TrimEndingWith(self, *args)
- def trimEndingWith(self, *args): return _chilkat.CkCrypt2_trimEndingWith(self, *args)
- def WriteFile(self, *args): return _chilkat.CkCrypt2_WriteFile(self, *args)
- def SetDecryptCert(self, *args): return _chilkat.CkCrypt2_SetDecryptCert(self, *args)
- def EncryptEncoded(self, *args): return _chilkat.CkCrypt2_EncryptEncoded(self, *args)
- def encryptEncoded(self, *args): return _chilkat.CkCrypt2_encryptEncoded(self, *args)
- def DecryptEncoded(self, *args): return _chilkat.CkCrypt2_DecryptEncoded(self, *args)
- def decryptEncoded(self, *args): return _chilkat.CkCrypt2_decryptEncoded(self, *args)
- def ReEncode(self, *args): return _chilkat.CkCrypt2_ReEncode(self, *args)
- def reEncode(self, *args): return _chilkat.CkCrypt2_reEncode(self, *args)
- def RandomizeKey(self): return _chilkat.CkCrypt2_RandomizeKey(self)
- def AddEncryptCert(self, *args): return _chilkat.CkCrypt2_AddEncryptCert(self, *args)
- def ClearEncryptCerts(self): return _chilkat.CkCrypt2_ClearEncryptCerts(self)
- def GenRandomBytesENC(self, *args): return _chilkat.CkCrypt2_GenRandomBytesENC(self, *args)
- def genRandomBytesENC(self, *args): return _chilkat.CkCrypt2_genRandomBytesENC(self, *args)
- def Pbkdf1(self, *args): return _chilkat.CkCrypt2_Pbkdf1(self, *args)
- def pbkdf1(self, *args): return _chilkat.CkCrypt2_pbkdf1(self, *args)
- def Pbkdf2(self, *args): return _chilkat.CkCrypt2_Pbkdf2(self, *args)
- def pbkdf2(self, *args): return _chilkat.CkCrypt2_pbkdf2(self, *args)
- def get_PbesPassword(self, *args): return _chilkat.CkCrypt2_get_PbesPassword(self, *args)
- def pbesPassword(self): return _chilkat.CkCrypt2_pbesPassword(self)
- def put_PbesPassword(self, *args): return _chilkat.CkCrypt2_put_PbesPassword(self, *args)
- def get_Salt(self, *args): return _chilkat.CkCrypt2_get_Salt(self, *args)
- def put_Salt(self, *args): return _chilkat.CkCrypt2_put_Salt(self, *args)
- def get_IterationCount(self): return _chilkat.CkCrypt2_get_IterationCount(self)
- def put_IterationCount(self, *args): return _chilkat.CkCrypt2_put_IterationCount(self, *args)
- def SetEncodedSalt(self, *args): return _chilkat.CkCrypt2_SetEncodedSalt(self, *args)
- def GetEncodedSalt(self, *args): return _chilkat.CkCrypt2_GetEncodedSalt(self, *args)
- def getEncodedSalt(self, *args): return _chilkat.CkCrypt2_getEncodedSalt(self, *args)
- def get_PbesAlgorithm(self, *args): return _chilkat.CkCrypt2_get_PbesAlgorithm(self, *args)
- def pbesAlgorithm(self): return _chilkat.CkCrypt2_pbesAlgorithm(self)
- def put_PbesAlgorithm(self, *args): return _chilkat.CkCrypt2_put_PbesAlgorithm(self, *args)
- def HashBeginBytes(self, *args): return _chilkat.CkCrypt2_HashBeginBytes(self, *args)
- def HashBeginString(self, *args): return _chilkat.CkCrypt2_HashBeginString(self, *args)
- def HashMoreString(self, *args): return _chilkat.CkCrypt2_HashMoreString(self, *args)
- def HashMoreBytes(self, *args): return _chilkat.CkCrypt2_HashMoreBytes(self, *args)
- def HashFinal(self, *args): return _chilkat.CkCrypt2_HashFinal(self, *args)
- def HashFinalENC(self, *args): return _chilkat.CkCrypt2_HashFinalENC(self, *args)
- def hashFinalENC(self): return _chilkat.CkCrypt2_hashFinalENC(self)
- def MySqlAesEncrypt(self, *args): return _chilkat.CkCrypt2_MySqlAesEncrypt(self, *args)
- def mySqlAesEncrypt(self, *args): return _chilkat.CkCrypt2_mySqlAesEncrypt(self, *args)
- def MySqlAesDecrypt(self, *args): return _chilkat.CkCrypt2_MySqlAesDecrypt(self, *args)
- def mySqlAesDecrypt(self, *args): return _chilkat.CkCrypt2_mySqlAesDecrypt(self, *args)
- def EncodeString(self, *args): return _chilkat.CkCrypt2_EncodeString(self, *args)
- def encodeString(self, *args): return _chilkat.CkCrypt2_encodeString(self, *args)
- def DecodeString(self, *args): return _chilkat.CkCrypt2_DecodeString(self, *args)
- def decodeString(self, *args): return _chilkat.CkCrypt2_decodeString(self, *args)
- def get_UuMode(self, *args): return _chilkat.CkCrypt2_get_UuMode(self, *args)
- def uuMode(self): return _chilkat.CkCrypt2_uuMode(self)
- def put_UuMode(self, *args): return _chilkat.CkCrypt2_put_UuMode(self, *args)
- def get_UuFilename(self, *args): return _chilkat.CkCrypt2_get_UuFilename(self, *args)
- def uuFilename(self): return _chilkat.CkCrypt2_uuFilename(self)
- def put_UuFilename(self, *args): return _chilkat.CkCrypt2_put_UuFilename(self, *args)
- def get_VerboseLogging(self): return _chilkat.CkCrypt2_get_VerboseLogging(self)
- def put_VerboseLogging(self, *args): return _chilkat.CkCrypt2_put_VerboseLogging(self, *args)
- def AddPfxSourceData(self, *args): return _chilkat.CkCrypt2_AddPfxSourceData(self, *args)
- def AddPfxSourceFile(self, *args): return _chilkat.CkCrypt2_AddPfxSourceFile(self, *args)
- def get_Pkcs7CryptAlg(self, *args): return _chilkat.CkCrypt2_get_Pkcs7CryptAlg(self, *args)
- def pkcs7CryptAlg(self): return _chilkat.CkCrypt2_pkcs7CryptAlg(self)
- def put_Pkcs7CryptAlg(self, *args): return _chilkat.CkCrypt2_put_Pkcs7CryptAlg(self, *args)
- def get_FirstChunk(self): return _chilkat.CkCrypt2_get_FirstChunk(self)
- def put_FirstChunk(self, *args): return _chilkat.CkCrypt2_put_FirstChunk(self, *args)
- def get_LastChunk(self): return _chilkat.CkCrypt2_get_LastChunk(self)
- def put_LastChunk(self, *args): return _chilkat.CkCrypt2_put_LastChunk(self, *args)
- def get_BlockSize(self): return _chilkat.CkCrypt2_get_BlockSize(self)
- def genEncodedSecretKey(self, *args): return _chilkat.CkCrypt2_genEncodedSecretKey(self, *args)
- def SetSecretKeyViaPassword(self, *args): return _chilkat.CkCrypt2_SetSecretKeyViaPassword(self, *args)
- def get_HavalRounds(self): return _chilkat.CkCrypt2_get_HavalRounds(self)
- def put_HavalRounds(self, *args): return _chilkat.CkCrypt2_put_HavalRounds(self, *args)
- def get_Rc2EffectiveKeyLength(self): return _chilkat.CkCrypt2_get_Rc2EffectiveKeyLength(self)
- def put_Rc2EffectiveKeyLength(self, *args): return _chilkat.CkCrypt2_put_Rc2EffectiveKeyLength(self, *args)
- def CreateDetachedSignature(self, *args): return _chilkat.CkCrypt2_CreateDetachedSignature(self, *args)
- def VerifyDetachedSignature(self, *args): return _chilkat.CkCrypt2_VerifyDetachedSignature(self, *args)
- def SetSigningCert2(self, *args): return _chilkat.CkCrypt2_SetSigningCert2(self, *args)
- def SetDecryptCert2(self, *args): return _chilkat.CkCrypt2_SetDecryptCert2(self, *args)
- def HashFileENC(self, *args): return _chilkat.CkCrypt2_HashFileENC(self, *args)
- def HashFile(self, *args): return _chilkat.CkCrypt2_HashFile(self, *args)
- def hashFileENC(self, *args): return _chilkat.CkCrypt2_hashFileENC(self, *args)
- def SetHmacKeyBytes(self, *args): return _chilkat.CkCrypt2_SetHmacKeyBytes(self, *args)
- def SetHmacKeyString(self, *args): return _chilkat.CkCrypt2_SetHmacKeyString(self, *args)
- def SetHmacKeyEncoded(self, *args): return _chilkat.CkCrypt2_SetHmacKeyEncoded(self, *args)
- def HmacBytes(self, *args): return _chilkat.CkCrypt2_HmacBytes(self, *args)
- def HmacString(self, *args): return _chilkat.CkCrypt2_HmacString(self, *args)
- def HmacBytesENC(self, *args): return _chilkat.CkCrypt2_HmacBytesENC(self, *args)
- def HmacStringENC(self, *args): return _chilkat.CkCrypt2_HmacStringENC(self, *args)
- def hmacStringENC(self, *args): return _chilkat.CkCrypt2_hmacStringENC(self, *args)
- def hmacBytesENC(self, *args): return _chilkat.CkCrypt2_hmacBytesENC(self, *args)
- def CreateP7S(self, *args): return _chilkat.CkCrypt2_CreateP7S(self, *args)
- def VerifyP7S(self, *args): return _chilkat.CkCrypt2_VerifyP7S(self, *args)
- def CreateP7M(self, *args): return _chilkat.CkCrypt2_CreateP7M(self, *args)
- def VerifyP7M(self, *args): return _chilkat.CkCrypt2_VerifyP7M(self, *args)
- def OpaqueVerifyStringENC(self, *args): return _chilkat.CkCrypt2_OpaqueVerifyStringENC(self, *args)
- def OpaqueVerifyString(self, *args): return _chilkat.CkCrypt2_OpaqueVerifyString(self, *args)
- def OpaqueVerifyBytesENC(self, *args): return _chilkat.CkCrypt2_OpaqueVerifyBytesENC(self, *args)
- def OpaqueVerifyBytes(self, *args): return _chilkat.CkCrypt2_OpaqueVerifyBytes(self, *args)
- def OpaqueSignStringENC(self, *args): return _chilkat.CkCrypt2_OpaqueSignStringENC(self, *args)
- def OpaqueSignBytesENC(self, *args): return _chilkat.CkCrypt2_OpaqueSignBytesENC(self, *args)
- def OpaqueSignString(self, *args): return _chilkat.CkCrypt2_OpaqueSignString(self, *args)
- def OpaqueSignBytes(self, *args): return _chilkat.CkCrypt2_OpaqueSignBytes(self, *args)
- def opaqueSignStringENC(self, *args): return _chilkat.CkCrypt2_opaqueSignStringENC(self, *args)
- def opaqueSignBytesENC(self, *args): return _chilkat.CkCrypt2_opaqueSignBytesENC(self, *args)
- def opaqueVerifyStringENC(self, *args): return _chilkat.CkCrypt2_opaqueVerifyStringENC(self, *args)
- def opaqueVerifyString(self, *args): return _chilkat.CkCrypt2_opaqueVerifyString(self, *args)
- def signStringENC(self, *args): return _chilkat.CkCrypt2_signStringENC(self, *args)
- def signBytesENC(self, *args): return _chilkat.CkCrypt2_signBytesENC(self, *args)
- def inflateStringENC(self, *args): return _chilkat.CkCrypt2_inflateStringENC(self, *args)
- def inflateString(self, *args): return _chilkat.CkCrypt2_inflateString(self, *args)
- def compressStringENC(self, *args): return _chilkat.CkCrypt2_compressStringENC(self, *args)
- def compressBytesENC(self, *args): return _chilkat.CkCrypt2_compressBytesENC(self, *args)
- def encryptStringENC(self, *args): return _chilkat.CkCrypt2_encryptStringENC(self, *args)
- def encryptBytesENC(self, *args): return _chilkat.CkCrypt2_encryptBytesENC(self, *args)
- def decryptString(self, *args): return _chilkat.CkCrypt2_decryptString(self, *args)
- def decryptStringENC(self, *args): return _chilkat.CkCrypt2_decryptStringENC(self, *args)
- def hashStringENC(self, *args): return _chilkat.CkCrypt2_hashStringENC(self, *args)
- def hashBytesENC(self, *args): return _chilkat.CkCrypt2_hashBytesENC(self, *args)
- def getEncodedKey(self, *args): return _chilkat.CkCrypt2_getEncodedKey(self, *args)
- def getEncodedIV(self, *args): return _chilkat.CkCrypt2_getEncodedIV(self, *args)
- def encode(self, *args): return _chilkat.CkCrypt2_encode(self, *args)
- def encodingMode(self): return _chilkat.CkCrypt2_encodingMode(self)
- def compressionAlgorithm(self): return _chilkat.CkCrypt2_compressionAlgorithm(self)
- def cryptAlgorithm(self): return _chilkat.CkCrypt2_cryptAlgorithm(self)
- def hashAlgorithm(self): return _chilkat.CkCrypt2_hashAlgorithm(self)
- def charset(self): return _chilkat.CkCrypt2_charset(self)
- def cipherMode(self): return _chilkat.CkCrypt2_cipherMode(self)
- def version(self): return _chilkat.CkCrypt2_version(self)
- def lastErrorText(self): return _chilkat.CkCrypt2_lastErrorText(self)
- def lastErrorXml(self): return _chilkat.CkCrypt2_lastErrorXml(self)
- def lastErrorHtml(self): return _chilkat.CkCrypt2_lastErrorHtml(self)
- def SetEncodedKey(self, *args): return _chilkat.CkCrypt2_SetEncodedKey(self, *args)
- def SetEncodedIV(self, *args): return _chilkat.CkCrypt2_SetEncodedIV(self, *args)
- def GetEncodedKey(self, *args): return _chilkat.CkCrypt2_GetEncodedKey(self, *args)
- def GetEncodedIV(self, *args): return _chilkat.CkCrypt2_GetEncodedIV(self, *args)
- def Encode(self, *args): return _chilkat.CkCrypt2_Encode(self, *args)
- def Decode(self, *args): return _chilkat.CkCrypt2_Decode(self, *args)
- def RandomizeIV(self): return _chilkat.CkCrypt2_RandomizeIV(self)
- def SetCSP(self, *args): return _chilkat.CkCrypt2_SetCSP(self, *args)
- def GetLastCert(self): return _chilkat.CkCrypt2_GetLastCert(self)
- def SetEncryptCert(self, *args): return _chilkat.CkCrypt2_SetEncryptCert(self, *args)
- def SetSigningCert(self, *args): return _chilkat.CkCrypt2_SetSigningCert(self, *args)
- def SetVerifyCert(self, *args): return _chilkat.CkCrypt2_SetVerifyCert(self, *args)
- def CkEncryptFile(self, *args): return _chilkat.CkCrypt2_CkEncryptFile(self, *args)
- def CkDecryptFile(self, *args): return _chilkat.CkCrypt2_CkDecryptFile(self, *args)
- def VerifyStringENC(self, *args): return _chilkat.CkCrypt2_VerifyStringENC(self, *args)
- def VerifyString(self, *args): return _chilkat.CkCrypt2_VerifyString(self, *args)
- def VerifyBytesENC(self, *args): return _chilkat.CkCrypt2_VerifyBytesENC(self, *args)
- def VerifyBytes(self, *args): return _chilkat.CkCrypt2_VerifyBytes(self, *args)
- def SignStringENC(self, *args): return _chilkat.CkCrypt2_SignStringENC(self, *args)
- def SignBytesENC(self, *args): return _chilkat.CkCrypt2_SignBytesENC(self, *args)
- def SignString(self, *args): return _chilkat.CkCrypt2_SignString(self, *args)
- def SignBytes(self, *args): return _chilkat.CkCrypt2_SignBytes(self, *args)
- def InflateStringENC(self, *args): return _chilkat.CkCrypt2_InflateStringENC(self, *args)
- def InflateString(self, *args): return _chilkat.CkCrypt2_InflateString(self, *args)
- def InflateBytesENC(self, *args): return _chilkat.CkCrypt2_InflateBytesENC(self, *args)
- def InflateBytes(self, *args): return _chilkat.CkCrypt2_InflateBytes(self, *args)
- def CompressStringENC(self, *args): return _chilkat.CkCrypt2_CompressStringENC(self, *args)
- def CompressBytesENC(self, *args): return _chilkat.CkCrypt2_CompressBytesENC(self, *args)
- def CompressString(self, *args): return _chilkat.CkCrypt2_CompressString(self, *args)
- def CompressBytes(self, *args): return _chilkat.CkCrypt2_CompressBytes(self, *args)
- def get_CompressionAlgorithm(self, *args): return _chilkat.CkCrypt2_get_CompressionAlgorithm(self, *args)
- def put_CompressionAlgorithm(self, *args): return _chilkat.CkCrypt2_put_CompressionAlgorithm(self, *args)
- def DecryptStringENC(self, *args): return _chilkat.CkCrypt2_DecryptStringENC(self, *args)
- def DecryptString(self, *args): return _chilkat.CkCrypt2_DecryptString(self, *args)
- def DecryptBytesENC(self, *args): return _chilkat.CkCrypt2_DecryptBytesENC(self, *args)
- def DecryptBytes(self, *args): return _chilkat.CkCrypt2_DecryptBytes(self, *args)
- def EncryptStringENC(self, *args): return _chilkat.CkCrypt2_EncryptStringENC(self, *args)
- def EncryptBytesENC(self, *args): return _chilkat.CkCrypt2_EncryptBytesENC(self, *args)
- def EncryptString(self, *args): return _chilkat.CkCrypt2_EncryptString(self, *args)
- def EncryptBytes(self, *args): return _chilkat.CkCrypt2_EncryptBytes(self, *args)
- def HashBytesENC(self, *args): return _chilkat.CkCrypt2_HashBytesENC(self, *args)
- def HashStringENC(self, *args): return _chilkat.CkCrypt2_HashStringENC(self, *args)
- def HashBytes(self, *args): return _chilkat.CkCrypt2_HashBytes(self, *args)
- def HashString(self, *args): return _chilkat.CkCrypt2_HashString(self, *args)
- def get_EncodingMode(self, *args): return _chilkat.CkCrypt2_get_EncodingMode(self, *args)
- def put_EncodingMode(self, *args): return _chilkat.CkCrypt2_put_EncodingMode(self, *args)
- def get_CryptAlgorithm(self, *args): return _chilkat.CkCrypt2_get_CryptAlgorithm(self, *args)
- def put_CryptAlgorithm(self, *args): return _chilkat.CkCrypt2_put_CryptAlgorithm(self, *args)
- def get_HashAlgorithm(self, *args): return _chilkat.CkCrypt2_get_HashAlgorithm(self, *args)
- def put_HashAlgorithm(self, *args): return _chilkat.CkCrypt2_put_HashAlgorithm(self, *args)
- def get_Charset(self, *args): return _chilkat.CkCrypt2_get_Charset(self, *args)
- def put_Charset(self, *args): return _chilkat.CkCrypt2_put_Charset(self, *args)
- def GenerateSecretKey(self, *args): return _chilkat.CkCrypt2_GenerateSecretKey(self, *args)
- def get_CipherMode(self, *args): return _chilkat.CkCrypt2_get_CipherMode(self, *args)
- def put_CipherMode(self, *args): return _chilkat.CkCrypt2_put_CipherMode(self, *args)
- def get_PaddingScheme(self): return _chilkat.CkCrypt2_get_PaddingScheme(self)
- def put_PaddingScheme(self, *args): return _chilkat.CkCrypt2_put_PaddingScheme(self, *args)
- def get_KeyLength(self): return _chilkat.CkCrypt2_get_KeyLength(self)
- def put_KeyLength(self, *args): return _chilkat.CkCrypt2_put_KeyLength(self, *args)
- def get_IV(self, *args): return _chilkat.CkCrypt2_get_IV(self, *args)
- def put_IV(self, *args): return _chilkat.CkCrypt2_put_IV(self, *args)
- def get_SecretKey(self, *args): return _chilkat.CkCrypt2_get_SecretKey(self, *args)
- def put_SecretKey(self, *args): return _chilkat.CkCrypt2_put_SecretKey(self, *args)
- def get_Version(self, *args): return _chilkat.CkCrypt2_get_Version(self, *args)
- def IsUnlocked(self): return _chilkat.CkCrypt2_IsUnlocked(self)
- def UnlockComponent(self, *args): return _chilkat.CkCrypt2_UnlockComponent(self, *args)
- def SaveLastError(self, *args): return _chilkat.CkCrypt2_SaveLastError(self, *args)
- def LastErrorXml(self, *args): return _chilkat.CkCrypt2_LastErrorXml(self, *args)
- def LastErrorHtml(self, *args): return _chilkat.CkCrypt2_LastErrorHtml(self, *args)
- def LastErrorText(self, *args): return _chilkat.CkCrypt2_LastErrorText(self, *args)
- def SetSecretKey(self, *args): return _chilkat.CkCrypt2_SetSecretKey(self, *args)
- def SetIV(self, *args): return _chilkat.CkCrypt2_SetIV(self, *args)
- def encodeBytes(self, *args): return _chilkat.CkCrypt2_encodeBytes(self, *args)
-CkCrypt2_swigregister = _chilkat.CkCrypt2_swigregister
-CkCrypt2_swigregister(CkCrypt2)
-
-class CkFtp2(_object):
- __swig_setmethods__ = {}
- __setattr__ = lambda self, name, value: _swig_setattr(self, CkFtp2, name, value)
- __swig_getmethods__ = {}
- __getattr__ = lambda self, name: _swig_getattr(self, CkFtp2, name)
- __repr__ = _swig_repr
- def __init__(self):
- this = _chilkat.new_CkFtp2()
- try: self.this.append(this)
- except: self.this = this
- __swig_destroy__ = _chilkat.delete_CkFtp2
- __del__ = lambda self : None;
- def lastErrorText(self): return _chilkat.CkFtp2_lastErrorText(self)
- def lastErrorXml(self): return _chilkat.CkFtp2_lastErrorXml(self)
- def lastErrorHtml(self): return _chilkat.CkFtp2_lastErrorHtml(self)
- def get_AllocateSize(self): return _chilkat.CkFtp2_get_AllocateSize(self)
- def get_ConnectVerified(self): return _chilkat.CkFtp2_get_ConnectVerified(self)
- def get_LoginVerified(self): return _chilkat.CkFtp2_get_LoginVerified(self)
- def get_PartialTransfer(self): return _chilkat.CkFtp2_get_PartialTransfer(self)
- def SendCommand(self, *args): return _chilkat.CkFtp2_SendCommand(self, *args)
- def sendCommand(self, *args): return _chilkat.CkFtp2_sendCommand(self, *args)
- def DirTreeXml(self, *args): return _chilkat.CkFtp2_DirTreeXml(self, *args)
- def dirTreeXml(self): return _chilkat.CkFtp2_dirTreeXml(self)
- def get_BandwidthThrottleUp(self): return _chilkat.CkFtp2_get_BandwidthThrottleUp(self)
- def put_BandwidthThrottleUp(self, *args): return _chilkat.CkFtp2_put_BandwidthThrottleUp(self, *args)
- def get_BandwidthThrottleDown(self): return _chilkat.CkFtp2_get_BandwidthThrottleDown(self)
- def put_BandwidthThrottleDown(self, *args): return _chilkat.CkFtp2_put_BandwidthThrottleDown(self, *args)
- def get_ActivePortRangeStart(self): return _chilkat.CkFtp2_get_ActivePortRangeStart(self)
- def put_ActivePortRangeStart(self, *args): return _chilkat.CkFtp2_put_ActivePortRangeStart(self, *args)
- def get_ActivePortRangeEnd(self): return _chilkat.CkFtp2_get_ActivePortRangeEnd(self)
- def put_ActivePortRangeEnd(self, *args): return _chilkat.CkFtp2_put_ActivePortRangeEnd(self, *args)
- def ClearDirCache(self): return _chilkat.CkFtp2_ClearDirCache(self)
- def get_Account(self, *args): return _chilkat.CkFtp2_get_Account(self, *args)
- def put_Account(self, *args): return _chilkat.CkFtp2_put_Account(self, *args)
- def account(self): return _chilkat.CkFtp2_account(self)
- def get_ProxyPort(self): return _chilkat.CkFtp2_get_ProxyPort(self)
- def put_ProxyPort(self, *args): return _chilkat.CkFtp2_put_ProxyPort(self, *args)
- def get_RestartNext(self): return _chilkat.CkFtp2_get_RestartNext(self)
- def put_RestartNext(self, *args): return _chilkat.CkFtp2_put_RestartNext(self, *args)
- def SetModeZ(self): return _chilkat.CkFtp2_SetModeZ(self)
- def get_HasModeZ(self): return _chilkat.CkFtp2_get_HasModeZ(self)
- def get_AutoXcrc(self): return _chilkat.CkFtp2_get_AutoXcrc(self)
- def put_AutoXcrc(self, *args): return _chilkat.CkFtp2_put_AutoXcrc(self, *args)
- def get_AutoFeat(self): return _chilkat.CkFtp2_get_AutoFeat(self)
- def put_AutoFeat(self, *args): return _chilkat.CkFtp2_put_AutoFeat(self, *args)
- def get_AutoSyst(self): return _chilkat.CkFtp2_get_AutoSyst(self)
- def put_AutoSyst(self, *args): return _chilkat.CkFtp2_put_AutoSyst(self, *args)
- def Feat(self, *args): return _chilkat.CkFtp2_Feat(self, *args)
- def feat(self): return _chilkat.CkFtp2_feat(self)
- def SetSslClientCert(self, *args): return _chilkat.CkFtp2_SetSslClientCert(self, *args)
- def dirListingCharset(self): return _chilkat.CkFtp2_dirListingCharset(self)
- def getFilename(self, *args): return _chilkat.CkFtp2_getFilename(self, *args)
- def listPattern(self): return _chilkat.CkFtp2_listPattern(self)
- def password(self): return _chilkat.CkFtp2_password(self)
- def username(self): return _chilkat.CkFtp2_username(self)
- def hostname(self): return _chilkat.CkFtp2_hostname(self)
- def sessionLog(self): return _chilkat.CkFtp2_sessionLog(self)
- def getXmlDirListing(self, *args): return _chilkat.CkFtp2_getXmlDirListing(self, *args)
- def getTextDirListing(self, *args): return _chilkat.CkFtp2_getTextDirListing(self, *args)
- def getRemoteFileTextData(self, *args): return _chilkat.CkFtp2_getRemoteFileTextData(self, *args)
- def getRemoteFileTextC(self, *args): return _chilkat.CkFtp2_getRemoteFileTextC(self, *args)
- def version(self): return _chilkat.CkFtp2_version(self)
- def getCurrentRemoteDir(self): return _chilkat.CkFtp2_getCurrentRemoteDir(self)
- def proxyHostname(self): return _chilkat.CkFtp2_proxyHostname(self)
- def syst(self): return _chilkat.CkFtp2_syst(self)
- def ck_stat(self): return _chilkat.CkFtp2_ck_stat(self)
- def asyncLog(self): return _chilkat.CkFtp2_asyncLog(self)
- def get_Utf8(self): return _chilkat.CkFtp2_get_Utf8(self)
- def put_Utf8(self, *args): return _chilkat.CkFtp2_put_Utf8(self, *args)
- def get_SslServerCertVerified(self): return _chilkat.CkFtp2_get_SslServerCertVerified(self)
- def GetSslServerCert(self): return _chilkat.CkFtp2_GetSslServerCert(self)
- def get_RequireSslCertVerify(self): return _chilkat.CkFtp2_get_RequireSslCertVerify(self)
- def put_RequireSslCertVerify(self, *args): return _chilkat.CkFtp2_put_RequireSslCertVerify(self, *args)
- def SetSslCertRequirement(self, *args): return _chilkat.CkFtp2_SetSslCertRequirement(self, *args)
- def get_AuthSsl(self): return _chilkat.CkFtp2_get_AuthSsl(self)
- def put_AuthSsl(self, *args): return _chilkat.CkFtp2_put_AuthSsl(self, *args)
- def DetermineSettings(self, *args): return _chilkat.CkFtp2_DetermineSettings(self, *args)
- def determineSettings(self): return _chilkat.CkFtp2_determineSettings(self)
- def DetermineProxyMethod(self): return _chilkat.CkFtp2_DetermineProxyMethod(self)
- def get_PassiveUseHostAddr(self): return _chilkat.CkFtp2_get_PassiveUseHostAddr(self)
- def put_PassiveUseHostAddr(self, *args): return _chilkat.CkFtp2_put_PassiveUseHostAddr(self, *args)
- def get_CrlfMode(self): return _chilkat.CkFtp2_get_CrlfMode(self)
- def put_CrlfMode(self, *args): return _chilkat.CkFtp2_put_CrlfMode(self, *args)
- def get_ConnectFailReason(self): return _chilkat.CkFtp2_get_ConnectFailReason(self)
- def ClearControlChannel(self): return _chilkat.CkFtp2_ClearControlChannel(self)
- def SleepMs(self, *args): return _chilkat.CkFtp2_SleepMs(self, *args)
- def AppendFile(self, *args): return _chilkat.CkFtp2_AppendFile(self, *args)
- def AppendFileFromBinaryData(self, *args): return _chilkat.CkFtp2_AppendFileFromBinaryData(self, *args)
- def AppendFileFromTextData(self, *args): return _chilkat.CkFtp2_AppendFileFromTextData(self, *args)
- def UnlockComponent(self, *args): return _chilkat.CkFtp2_UnlockComponent(self, *args)
- def IsUnlocked(self): return _chilkat.CkFtp2_IsUnlocked(self)
- def SaveLastError(self, *args): return _chilkat.CkFtp2_SaveLastError(self, *args)
- def LastErrorXml(self, *args): return _chilkat.CkFtp2_LastErrorXml(self, *args)
- def LastErrorHtml(self, *args): return _chilkat.CkFtp2_LastErrorHtml(self, *args)
- def LastErrorText(self, *args): return _chilkat.CkFtp2_LastErrorText(self, *args)
- def get_IsConnected(self): return _chilkat.CkFtp2_get_IsConnected(self)
- def DeleteMatching(self, *args): return _chilkat.CkFtp2_DeleteMatching(self, *args)
- def MGetFiles(self, *args): return _chilkat.CkFtp2_MGetFiles(self, *args)
- def MPutFiles(self, *args): return _chilkat.CkFtp2_MPutFiles(self, *args)
- def PutTree(self, *args): return _chilkat.CkFtp2_PutTree(self, *args)
- def GetFile(self, *args): return _chilkat.CkFtp2_GetFile(self, *args)
- def PutFile(self, *args): return _chilkat.CkFtp2_PutFile(self, *args)
- def PutFileFromBinaryData(self, *args): return _chilkat.CkFtp2_PutFileFromBinaryData(self, *args)
- def PutFileFromTextData(self, *args): return _chilkat.CkFtp2_PutFileFromTextData(self, *args)
- def GetRemoteFileBinaryData(self, *args): return _chilkat.CkFtp2_GetRemoteFileBinaryData(self, *args)
- def GetRemoteFileTextData(self, *args): return _chilkat.CkFtp2_GetRemoteFileTextData(self, *args)
- def GetRemoteFileTextC(self, *args): return _chilkat.CkFtp2_GetRemoteFileTextC(self, *args)
- def get_Version(self, *args): return _chilkat.CkFtp2_get_Version(self, *args)
- def RenameRemoteFile(self, *args): return _chilkat.CkFtp2_RenameRemoteFile(self, *args)
- def DeleteRemoteFile(self, *args): return _chilkat.CkFtp2_DeleteRemoteFile(self, *args)
- def RemoveRemoteDir(self, *args): return _chilkat.CkFtp2_RemoveRemoteDir(self, *args)
- def CreateRemoteDir(self, *args): return _chilkat.CkFtp2_CreateRemoteDir(self, *args)
- def Disconnect(self): return _chilkat.CkFtp2_Disconnect(self)
- def Connect(self): return _chilkat.CkFtp2_Connect(self)
- def GetCurrentRemoteDir(self, *args): return _chilkat.CkFtp2_GetCurrentRemoteDir(self, *args)
- def ChangeRemoteDir(self, *args): return _chilkat.CkFtp2_ChangeRemoteDir(self, *args)
- def get_DirListingCharset(self, *args): return _chilkat.CkFtp2_get_DirListingCharset(self, *args)
- def put_DirListingCharset(self, *args): return _chilkat.CkFtp2_put_DirListingCharset(self, *args)
- def get_ListPattern(self, *args): return _chilkat.CkFtp2_get_ListPattern(self, *args)
- def put_ListPattern(self, *args): return _chilkat.CkFtp2_put_ListPattern(self, *args)
- def get_Password(self, *args): return _chilkat.CkFtp2_get_Password(self, *args)
- def put_Password(self, *args): return _chilkat.CkFtp2_put_Password(self, *args)
- def get_Username(self, *args): return _chilkat.CkFtp2_get_Username(self, *args)
- def put_Username(self, *args): return _chilkat.CkFtp2_put_Username(self, *args)
- def get_Port(self): return _chilkat.CkFtp2_get_Port(self)
- def put_Port(self, *args): return _chilkat.CkFtp2_put_Port(self, *args)
- def get_Hostname(self, *args): return _chilkat.CkFtp2_get_Hostname(self, *args)
- def put_Hostname(self, *args): return _chilkat.CkFtp2_put_Hostname(self, *args)
- def get_SessionLog(self, *args): return _chilkat.CkFtp2_get_SessionLog(self, *args)
- def get_Passive(self): return _chilkat.CkFtp2_get_Passive(self)
- def put_Passive(self, *args): return _chilkat.CkFtp2_put_Passive(self, *args)
- def get_KeepSessionLog(self): return _chilkat.CkFtp2_get_KeepSessionLog(self)
- def put_KeepSessionLog(self, *args): return _chilkat.CkFtp2_put_KeepSessionLog(self, *args)
- def GetSize(self, *args): return _chilkat.CkFtp2_GetSize(self, *args)
- def GetFilename(self, *args): return _chilkat.CkFtp2_GetFilename(self, *args)
- def GetIsDirectory(self, *args): return _chilkat.CkFtp2_GetIsDirectory(self, *args)
- def GetCreateTime(self, *args): return _chilkat.CkFtp2_GetCreateTime(self, *args)
- def GetLastAccessTime(self, *args): return _chilkat.CkFtp2_GetLastAccessTime(self, *args)
- def GetLastModifiedTime(self, *args): return _chilkat.CkFtp2_GetLastModifiedTime(self, *args)
- def get_NumFilesAndDirs(self): return _chilkat.CkFtp2_get_NumFilesAndDirs(self)
- def get_ProxyHostname(self, *args): return _chilkat.CkFtp2_get_ProxyHostname(self, *args)
- def put_ProxyHostname(self, *args): return _chilkat.CkFtp2_put_ProxyHostname(self, *args)
- def get_ProxyMethod(self): return _chilkat.CkFtp2_get_ProxyMethod(self)
- def put_ProxyMethod(self, *args): return _chilkat.CkFtp2_put_ProxyMethod(self, *args)
- def get_Ssl(self): return _chilkat.CkFtp2_get_Ssl(self)
- def put_Ssl(self, *args): return _chilkat.CkFtp2_put_Ssl(self, *args)
- def get_AuthTls(self): return _chilkat.CkFtp2_get_AuthTls(self)
- def put_AuthTls(self, *args): return _chilkat.CkFtp2_put_AuthTls(self, *args)
- def get_HeartbeatMs(self): return _chilkat.CkFtp2_get_HeartbeatMs(self)
- def put_HeartbeatMs(self, *args): return _chilkat.CkFtp2_put_HeartbeatMs(self, *args)
- def get_IdleTimeoutMs(self): return _chilkat.CkFtp2_get_IdleTimeoutMs(self)
- def put_IdleTimeoutMs(self, *args): return _chilkat.CkFtp2_put_IdleTimeoutMs(self, *args)
- def get_UploadRate(self): return _chilkat.CkFtp2_get_UploadRate(self)
- def get_DownloadRate(self): return _chilkat.CkFtp2_get_DownloadRate(self)
- def AsyncGetFileStart(self, *args): return _chilkat.CkFtp2_AsyncGetFileStart(self, *args)
- def AsyncPutFileStart(self, *args): return _chilkat.CkFtp2_AsyncPutFileStart(self, *args)
- def AsyncAppendFileStart(self, *args): return _chilkat.CkFtp2_AsyncAppendFileStart(self, *args)
- def AsyncAbort(self): return _chilkat.CkFtp2_AsyncAbort(self)
- def get_AsyncFinished(self): return _chilkat.CkFtp2_get_AsyncFinished(self)
- def get_AsyncLog(self, *args): return _chilkat.CkFtp2_get_AsyncLog(self, *args)
- def get_AsyncSuccess(self): return _chilkat.CkFtp2_get_AsyncSuccess(self)
- def get_AsyncBytesReceived(self): return _chilkat.CkFtp2_get_AsyncBytesReceived(self)
- def get_AsyncBytesSent(self): return _chilkat.CkFtp2_get_AsyncBytesSent(self)
- def DownloadTree(self, *args): return _chilkat.CkFtp2_DownloadTree(self, *args)
- def DeleteTree(self): return _chilkat.CkFtp2_DeleteTree(self)
- def GetIsSymbolicLink(self, *args): return _chilkat.CkFtp2_GetIsSymbolicLink(self, *args)
- def createPlan(self, *args): return _chilkat.CkFtp2_createPlan(self, *args)
- def CreatePlan(self, *args): return _chilkat.CkFtp2_CreatePlan(self, *args)
- def PutPlan(self, *args): return _chilkat.CkFtp2_PutPlan(self, *args)
- def GetSizeByName(self, *args): return _chilkat.CkFtp2_GetSizeByName(self, *args)
- def ClearSessionLog(self): return _chilkat.CkFtp2_ClearSessionLog(self)
- def SetTypeBinary(self): return _chilkat.CkFtp2_SetTypeBinary(self)
- def SetTypeAscii(self): return _chilkat.CkFtp2_SetTypeAscii(self)
- def Site(self, *args): return _chilkat.CkFtp2_Site(self, *args)
- def Quote(self, *args): return _chilkat.CkFtp2_Quote(self, *args)
- def Syst(self, *args): return _chilkat.CkFtp2_Syst(self, *args)
- def Stat(self, *args): return _chilkat.CkFtp2_Stat(self, *args)
- def get_ReadTimeout(self): return _chilkat.CkFtp2_get_ReadTimeout(self)
- def put_ReadTimeout(self, *args): return _chilkat.CkFtp2_put_ReadTimeout(self, *args)
- def get_ConnectTimeout(self): return _chilkat.CkFtp2_get_ConnectTimeout(self)
- def put_ConnectTimeout(self, *args): return _chilkat.CkFtp2_put_ConnectTimeout(self, *args)
- def GetXmlDirListing(self, *args): return _chilkat.CkFtp2_GetXmlDirListing(self, *args)
- def GetTextDirListing(self, *args): return _chilkat.CkFtp2_GetTextDirListing(self, *args)
- def get_ProxyPassword(self, *args): return _chilkat.CkFtp2_get_ProxyPassword(self, *args)
- def proxyPassword(self): return _chilkat.CkFtp2_proxyPassword(self)
- def put_ProxyPassword(self, *args): return _chilkat.CkFtp2_put_ProxyPassword(self, *args)
- def get_ProxyUsername(self, *args): return _chilkat.CkFtp2_get_ProxyUsername(self, *args)
- def proxyUsername(self): return _chilkat.CkFtp2_proxyUsername(self)
- def put_ProxyUsername(self, *args): return _chilkat.CkFtp2_put_ProxyUsername(self, *args)
- def GetCreateTimeByName(self, *args): return _chilkat.CkFtp2_GetCreateTimeByName(self, *args)
- def GetLastAccessTimeByName(self, *args): return _chilkat.CkFtp2_GetLastAccessTimeByName(self, *args)
- def GetLastModifiedTimeByName(self, *args): return _chilkat.CkFtp2_GetLastModifiedTimeByName(self, *args)
- def GetSizeStr(self, *args): return _chilkat.CkFtp2_GetSizeStr(self, *args)
- def getSizeStr(self, *args): return _chilkat.CkFtp2_getSizeStr(self, *args)
- def Noop(self): return _chilkat.CkFtp2_Noop(self)
- def SetOldestDate(self, *args): return _chilkat.CkFtp2_SetOldestDate(self, *args)
- def SyncLocalTree(self, *args): return _chilkat.CkFtp2_SyncLocalTree(self, *args)
- def SyncRemoteTree(self, *args): return _chilkat.CkFtp2_SyncRemoteTree(self, *args)
- def ConvertToTls(self): return _chilkat.CkFtp2_ConvertToTls(self)
- def GetSizeStrByName(self, *args): return _chilkat.CkFtp2_GetSizeStrByName(self, *args)
- def getSizeStrByName(self, *args): return _chilkat.CkFtp2_getSizeStrByName(self, *args)
- def SetRemoteFileDateTime(self, *args): return _chilkat.CkFtp2_SetRemoteFileDateTime(self, *args)
- def get_SendBufferSize(self): return _chilkat.CkFtp2_get_SendBufferSize(self)
- def put_SendBufferSize(self, *args): return _chilkat.CkFtp2_put_SendBufferSize(self, *args)
- def get_UseEpsv(self): return _chilkat.CkFtp2_get_UseEpsv(self)
- def put_UseEpsv(self, *args): return _chilkat.CkFtp2_put_UseEpsv(self, *args)
- def get_ForcePortIpAddress(self, *args): return _chilkat.CkFtp2_get_ForcePortIpAddress(self, *args)
- def forcePortIpAddress(self): return _chilkat.CkFtp2_forcePortIpAddress(self)
- def put_ForcePortIpAddress(self, *args): return _chilkat.CkFtp2_put_ForcePortIpAddress(self, *args)
- def NlstXml(self, *args): return _chilkat.CkFtp2_NlstXml(self, *args)
- def nlstXml(self, *args): return _chilkat.CkFtp2_nlstXml(self, *args)
- def get_SocksVersion(self): return _chilkat.CkFtp2_get_SocksVersion(self)
- def put_SocksVersion(self, *args): return _chilkat.CkFtp2_put_SocksVersion(self, *args)
- def get_SocksPort(self): return _chilkat.CkFtp2_get_SocksPort(self)
- def put_SocksPort(self, *args): return _chilkat.CkFtp2_put_SocksPort(self, *args)
- def get_SocksUsername(self, *args): return _chilkat.CkFtp2_get_SocksUsername(self, *args)
- def socksUsername(self): return _chilkat.CkFtp2_socksUsername(self)
- def put_SocksUsername(self, *args): return _chilkat.CkFtp2_put_SocksUsername(self, *args)
- def get_SocksPassword(self, *args): return _chilkat.CkFtp2_get_SocksPassword(self, *args)
- def socksPassword(self): return _chilkat.CkFtp2_socksPassword(self)
- def put_SocksPassword(self, *args): return _chilkat.CkFtp2_put_SocksPassword(self, *args)
- def get_SocksHostname(self, *args): return _chilkat.CkFtp2_get_SocksHostname(self, *args)
- def socksHostname(self): return _chilkat.CkFtp2_socksHostname(self)
- def put_SocksHostname(self, *args): return _chilkat.CkFtp2_put_SocksHostname(self, *args)
- def get_Greeting(self, *args): return _chilkat.CkFtp2_get_Greeting(self, *args)
- def greeting(self): return _chilkat.CkFtp2_greeting(self)
- def SetSslClientCertPfx(self, *args): return _chilkat.CkFtp2_SetSslClientCertPfx(self, *args)
- def get_VerboseLogging(self): return _chilkat.CkFtp2_get_VerboseLogging(self)
- def put_VerboseLogging(self, *args): return _chilkat.CkFtp2_put_VerboseLogging(self, *args)
- def get_SslProtocol(self, *args): return _chilkat.CkFtp2_get_SslProtocol(self, *args)
- def sslProtocol(self): return _chilkat.CkFtp2_sslProtocol(self)
- def put_SslProtocol(self, *args): return _chilkat.CkFtp2_put_SslProtocol(self, *args)
- def get_AutoGetSizeForProgress(self): return _chilkat.CkFtp2_get_AutoGetSizeForProgress(self)
- def put_AutoGetSizeForProgress(self, *args): return _chilkat.CkFtp2_put_AutoGetSizeForProgress(self, *args)
- def get_SyncPreview(self, *args): return _chilkat.CkFtp2_get_SyncPreview(self, *args)
- def syncPreview(self): return _chilkat.CkFtp2_syncPreview(self)
- def SyncRemoteTree2(self, *args): return _chilkat.CkFtp2_SyncRemoteTree2(self, *args)
- def get_AutoFix(self): return _chilkat.CkFtp2_get_AutoFix(self)
- def put_AutoFix(self, *args): return _chilkat.CkFtp2_put_AutoFix(self, *args)
- def get_ClientIpAddress(self, *args): return _chilkat.CkFtp2_get_ClientIpAddress(self, *args)
- def clientIpAddress(self): return _chilkat.CkFtp2_clientIpAddress(self)
- def put_ClientIpAddress(self, *args): return _chilkat.CkFtp2_put_ClientIpAddress(self, *args)
-CkFtp2_swigregister = _chilkat.CkFtp2_swigregister
-CkFtp2_swigregister(CkFtp2)
-
-class CkMht(_object):
- __swig_setmethods__ = {}
- __setattr__ = lambda self, name, value: _swig_setattr(self, CkMht, name, value)
- __swig_getmethods__ = {}
- __getattr__ = lambda self, name: _swig_getattr(self, CkMht, name)
- __repr__ = _swig_repr
- def __init__(self):
- this = _chilkat.new_CkMht()
- try: self.this.append(this)
- except: self.this = this
- __swig_destroy__ = _chilkat.delete_CkMht
- __del__ = lambda self : None;
- def lastErrorText(self): return _chilkat.CkMht_lastErrorText(self)
- def lastErrorXml(self): return _chilkat.CkMht_lastErrorXml(self)
- def lastErrorHtml(self): return _chilkat.CkMht_lastErrorHtml(self)
- def get_UseIEProxy(self): return _chilkat.CkMht_get_UseIEProxy(self)
- def put_UseIEProxy(self, *args): return _chilkat.CkMht_put_UseIEProxy(self, *args)
- def get_UseFilename(self): return _chilkat.CkMht_get_UseFilename(self)
- def put_UseFilename(self, *args): return _chilkat.CkMht_put_UseFilename(self, *args)
- def get_UseInline(self): return _chilkat.CkMht_get_UseInline(self)
- def put_UseInline(self, *args): return _chilkat.CkMht_put_UseInline(self, *args)
- def GetMime(self, *args): return _chilkat.CkMht_GetMime(self, *args)
- def HtmlToEMLFile(self, *args): return _chilkat.CkMht_HtmlToEMLFile(self, *args)
- def HtmlToMHTFile(self, *args): return _chilkat.CkMht_HtmlToMHTFile(self, *args)
- def get_EmbedLocalOnly(self): return _chilkat.CkMht_get_EmbedLocalOnly(self)
- def put_EmbedLocalOnly(self, *args): return _chilkat.CkMht_put_EmbedLocalOnly(self, *args)
- def get_SocksUsername(self, *args): return _chilkat.CkMht_get_SocksUsername(self, *args)
- def socksUsername(self): return _chilkat.CkMht_socksUsername(self)
- def put_SocksUsername(self, *args): return _chilkat.CkMht_put_SocksUsername(self, *args)
- def get_SocksPassword(self, *args): return _chilkat.CkMht_get_SocksPassword(self, *args)
- def socksPassword(self): return _chilkat.CkMht_socksPassword(self)
- def put_SocksPassword(self, *args): return _chilkat.CkMht_put_SocksPassword(self, *args)
- def get_SocksHostname(self, *args): return _chilkat.CkMht_get_SocksHostname(self, *args)
- def socksHostname(self): return _chilkat.CkMht_socksHostname(self)
- def put_SocksHostname(self, *args): return _chilkat.CkMht_put_SocksHostname(self, *args)
- def get_SocksPort(self): return _chilkat.CkMht_get_SocksPort(self)
- def put_SocksPort(self, *args): return _chilkat.CkMht_put_SocksPort(self, *args)
- def get_SocksVersion(self): return _chilkat.CkMht_get_SocksVersion(self)
- def put_SocksVersion(self, *args): return _chilkat.CkMht_put_SocksVersion(self, *args)
- def get_VerboseLogging(self): return _chilkat.CkMht_get_VerboseLogging(self)
- def put_VerboseLogging(self, *args): return _chilkat.CkMht_put_VerboseLogging(self, *args)
- def get_ProxyLogin(self, *args): return _chilkat.CkMht_get_ProxyLogin(self, *args)
- def put_ProxyLogin(self, *args): return _chilkat.CkMht_put_ProxyLogin(self, *args)
- def get_ProxyPassword(self, *args): return _chilkat.CkMht_get_ProxyPassword(self, *args)
- def put_ProxyPassword(self, *args): return _chilkat.CkMht_put_ProxyPassword(self, *args)
- def proxyLogin(self): return _chilkat.CkMht_proxyLogin(self)
- def proxyPassword(self): return _chilkat.CkMht_proxyPassword(self)
- def put_NumCacheLevels(self, *args): return _chilkat.CkMht_put_NumCacheLevels(self, *args)
- def get_NumCacheLevels(self): return _chilkat.CkMht_get_NumCacheLevels(self)
- def get_NumCacheRoots(self): return _chilkat.CkMht_get_NumCacheRoots(self)
- def GetCacheRoot(self, *args): return _chilkat.CkMht_GetCacheRoot(self, *args)
- def getCacheRoot(self, *args): return _chilkat.CkMht_getCacheRoot(self, *args)
- def AddCacheRoot(self, *args): return _chilkat.CkMht_AddCacheRoot(self, *args)
- def get_UpdateCache(self): return _chilkat.CkMht_get_UpdateCache(self)
- def put_UpdateCache(self, *args): return _chilkat.CkMht_put_UpdateCache(self, *args)
- def get_FetchFromCache(self): return _chilkat.CkMht_get_FetchFromCache(self)
- def put_FetchFromCache(self, *args): return _chilkat.CkMht_put_FetchFromCache(self, *args)
- def get_IgnoreNoCache(self): return _chilkat.CkMht_get_IgnoreNoCache(self)
- def put_IgnoreNoCache(self, *args): return _chilkat.CkMht_put_IgnoreNoCache(self, *args)
- def get_IgnoreMustRevalidate(self): return _chilkat.CkMht_get_IgnoreMustRevalidate(self)
- def put_IgnoreMustRevalidate(self, *args): return _chilkat.CkMht_put_IgnoreMustRevalidate(self, *args)
- def getMHT(self, *args): return _chilkat.CkMht_getMHT(self, *args)
- def getEML(self, *args): return _chilkat.CkMht_getEML(self, *args)
- def htmlToMHT(self, *args): return _chilkat.CkMht_htmlToMHT(self, *args)
- def htmlToEML(self, *args): return _chilkat.CkMht_htmlToEML(self, *args)
- def webSiteLogin(self): return _chilkat.CkMht_webSiteLogin(self)
- def webSitePassword(self): return _chilkat.CkMht_webSitePassword(self)
- def debugHtmlBefore(self): return _chilkat.CkMht_debugHtmlBefore(self)
- def debugHtmlAfter(self): return _chilkat.CkMht_debugHtmlAfter(self)
- def baseUrl(self): return _chilkat.CkMht_baseUrl(self)
- def proxy(self): return _chilkat.CkMht_proxy(self)
- def version(self): return _chilkat.CkMht_version(self)
- def get_Utf8(self): return _chilkat.CkMht_get_Utf8(self)
- def put_Utf8(self, *args): return _chilkat.CkMht_put_Utf8(self, *args)
- def get_NtlmAuth(self): return _chilkat.CkMht_get_NtlmAuth(self)
- def put_NtlmAuth(self, *args): return _chilkat.CkMht_put_NtlmAuth(self, *args)
- def UnpackMHT(self, *args): return _chilkat.CkMht_UnpackMHT(self, *args)
- def UnpackMHTString(self, *args): return _chilkat.CkMht_UnpackMHTString(self, *args)
- def GetAndZipMHT(self, *args): return _chilkat.CkMht_GetAndZipMHT(self, *args)
- def GetAndZipEML(self, *args): return _chilkat.CkMht_GetAndZipEML(self, *args)
- def GetEmail(self, *args): return _chilkat.CkMht_GetEmail(self, *args)
- def GetAndSaveMHT(self, *args): return _chilkat.CkMht_GetAndSaveMHT(self, *args)
- def GetAndSaveEML(self, *args): return _chilkat.CkMht_GetAndSaveEML(self, *args)
- def GetMHT(self, *args): return _chilkat.CkMht_GetMHT(self, *args)
- def GetEML(self, *args): return _chilkat.CkMht_GetEML(self, *args)
- def HtmlToEmail(self, *args): return _chilkat.CkMht_HtmlToEmail(self, *args)
- def HtmlToMHT(self, *args): return _chilkat.CkMht_HtmlToMHT(self, *args)
- def HtmlToEML(self, *args): return _chilkat.CkMht_HtmlToEML(self, *args)
- def UnlockComponent(self, *args): return _chilkat.CkMht_UnlockComponent(self, *args)
- def IsUnlocked(self): return _chilkat.CkMht_IsUnlocked(self)
- def AddExternalStyleSheet(self, *args): return _chilkat.CkMht_AddExternalStyleSheet(self, *args)
- def ExcludeImagesMatching(self, *args): return _chilkat.CkMht_ExcludeImagesMatching(self, *args)
- def RestoreDefaults(self): return _chilkat.CkMht_RestoreDefaults(self)
- def get_PreferMHTScripts(self): return _chilkat.CkMht_get_PreferMHTScripts(self)
- def put_PreferMHTScripts(self, *args): return _chilkat.CkMht_put_PreferMHTScripts(self, *args)
- def get_NoScripts(self): return _chilkat.CkMht_get_NoScripts(self)
- def put_NoScripts(self, *args): return _chilkat.CkMht_put_NoScripts(self, *args)
- def get_UseCids(self): return _chilkat.CkMht_get_UseCids(self)
- def put_UseCids(self, *args): return _chilkat.CkMht_put_UseCids(self, *args)
- def get_EmbedImages(self): return _chilkat.CkMht_get_EmbedImages(self)
- def put_EmbedImages(self, *args): return _chilkat.CkMht_put_EmbedImages(self, *args)
- def get_DebugTagCleaning(self): return _chilkat.CkMht_get_DebugTagCleaning(self)
- def put_DebugTagCleaning(self, *args): return _chilkat.CkMht_put_DebugTagCleaning(self, *args)
- def get_WebSiteLogin(self, *args): return _chilkat.CkMht_get_WebSiteLogin(self, *args)
- def put_WebSiteLogin(self, *args): return _chilkat.CkMht_put_WebSiteLogin(self, *args)
- def get_WebSitePassword(self, *args): return _chilkat.CkMht_get_WebSitePassword(self, *args)
- def put_WebSitePassword(self, *args): return _chilkat.CkMht_put_WebSitePassword(self, *args)
- def get_DebugHtmlBefore(self, *args): return _chilkat.CkMht_get_DebugHtmlBefore(self, *args)
- def put_DebugHtmlBefore(self, *args): return _chilkat.CkMht_put_DebugHtmlBefore(self, *args)
- def get_DebugHtmlAfter(self, *args): return _chilkat.CkMht_get_DebugHtmlAfter(self, *args)
- def put_DebugHtmlAfter(self, *args): return _chilkat.CkMht_put_DebugHtmlAfter(self, *args)
- def get_BaseUrl(self, *args): return _chilkat.CkMht_get_BaseUrl(self, *args)
- def put_BaseUrl(self, *args): return _chilkat.CkMht_put_BaseUrl(self, *args)
- def get_Proxy(self, *args): return _chilkat.CkMht_get_Proxy(self, *args)
- def put_Proxy(self, *args): return _chilkat.CkMht_put_Proxy(self, *args)
- def get_Version(self, *args): return _chilkat.CkMht_get_Version(self, *args)
- def get_ReadTimeout(self): return _chilkat.CkMht_get_ReadTimeout(self)
- def put_ReadTimeout(self, *args): return _chilkat.CkMht_put_ReadTimeout(self, *args)
- def get_ConnectTimeout(self): return _chilkat.CkMht_get_ConnectTimeout(self)
- def put_ConnectTimeout(self, *args): return _chilkat.CkMht_put_ConnectTimeout(self, *args)
- def AddCustomHeader(self, *args): return _chilkat.CkMht_AddCustomHeader(self, *args)
- def RemoveCustomHeader(self, *args): return _chilkat.CkMht_RemoveCustomHeader(self, *args)
- def ClearCustomHeaders(self): return _chilkat.CkMht_ClearCustomHeaders(self)
- def SaveLastError(self, *args): return _chilkat.CkMht_SaveLastError(self, *args)
- def LastErrorXml(self, *args): return _chilkat.CkMht_LastErrorXml(self, *args)
- def LastErrorHtml(self, *args): return _chilkat.CkMht_LastErrorHtml(self, *args)
- def LastErrorText(self, *args): return _chilkat.CkMht_LastErrorText(self, *args)
-CkMht_swigregister = _chilkat.CkMht_swigregister
-CkMht_swigregister(CkMht)
-
-class CkHttp(_object):
- __swig_setmethods__ = {}
- __setattr__ = lambda self, name, value: _swig_setattr(self, CkHttp, name, value)
- __swig_getmethods__ = {}
- __getattr__ = lambda self, name: _swig_getattr(self, CkHttp, name)
- __repr__ = _swig_repr
- def __init__(self):
- this = _chilkat.new_CkHttp()
- try: self.this.append(this)
- except: self.this = this
- __swig_destroy__ = _chilkat.delete_CkHttp
- __del__ = lambda self : None;
- def lastErrorText(self): return _chilkat.CkHttp_lastErrorText(self)
- def lastErrorXml(self): return _chilkat.CkHttp_lastErrorXml(self)
- def lastErrorHtml(self): return _chilkat.CkHttp_lastErrorHtml(self)
- def RenderGet(self, *args): return _chilkat.CkHttp_RenderGet(self, *args)
- def renderGet(self, *args): return _chilkat.CkHttp_renderGet(self, *args)
- def GetCookieXml(self, *args): return _chilkat.CkHttp_GetCookieXml(self, *args)
- def getCookieXml(self, *args): return _chilkat.CkHttp_getCookieXml(self, *args)
- def get_RequiredContentType(self, *args): return _chilkat.CkHttp_get_RequiredContentType(self, *args)
- def requiredContentType(self): return _chilkat.CkHttp_requiredContentType(self)
- def put_RequiredContentType(self, *args): return _chilkat.CkHttp_put_RequiredContentType(self, *args)
- def DownloadAppend(self, *args): return _chilkat.CkHttp_DownloadAppend(self, *args)
- def PostMime(self, *args): return _chilkat.CkHttp_PostMime(self, *args)
- def UrlDecode(self, *args): return _chilkat.CkHttp_UrlDecode(self, *args)
- def urlDecode(self, *args): return _chilkat.CkHttp_urlDecode(self, *args)
- def UrlEncode(self, *args): return _chilkat.CkHttp_UrlEncode(self, *args)
- def urlEncode(self, *args): return _chilkat.CkHttp_urlEncode(self, *args)
- def get_SslProtocol(self, *args): return _chilkat.CkHttp_get_SslProtocol(self, *args)
- def sslProtocol(self): return _chilkat.CkHttp_sslProtocol(self)
- def put_SslProtocol(self, *args): return _chilkat.CkHttp_put_SslProtocol(self, *args)
- def GetHead(self, *args): return _chilkat.CkHttp_GetHead(self, *args)
- def XmlRpc(self, *args): return _chilkat.CkHttp_XmlRpc(self, *args)
- def xmlRpc(self, *args): return _chilkat.CkHttp_xmlRpc(self, *args)
- def GenTimeStamp(self, *args): return _chilkat.CkHttp_GenTimeStamp(self, *args)
- def genTimeStamp(self): return _chilkat.CkHttp_genTimeStamp(self)
- def XmlRpcPut(self, *args): return _chilkat.CkHttp_XmlRpcPut(self, *args)
- def xmlRpcPut(self, *args): return _chilkat.CkHttp_xmlRpcPut(self, *args)
- def QuickPutStr(self, *args): return _chilkat.CkHttp_QuickPutStr(self, *args)
- def quickPutStr(self, *args): return _chilkat.CkHttp_quickPutStr(self, *args)
- def QuickDeleteStr(self, *args): return _chilkat.CkHttp_QuickDeleteStr(self, *args)
- def quickDeleteStr(self, *args): return _chilkat.CkHttp_quickDeleteStr(self, *args)
- def PutText(self, *args): return _chilkat.CkHttp_PutText(self, *args)
- def putText(self, *args): return _chilkat.CkHttp_putText(self, *args)
- def PutBinary(self, *args): return _chilkat.CkHttp_PutBinary(self, *args)
- def putBinary(self, *args): return _chilkat.CkHttp_putBinary(self, *args)
- def get_SendBufferSize(self): return _chilkat.CkHttp_get_SendBufferSize(self)
- def put_SendBufferSize(self, *args): return _chilkat.CkHttp_put_SendBufferSize(self, *args)
- def get_NegotiateAuth(self): return _chilkat.CkHttp_get_NegotiateAuth(self)
- def put_NegotiateAuth(self, *args): return _chilkat.CkHttp_put_NegotiateAuth(self, *args)
- def get_LoginDomain(self, *args): return _chilkat.CkHttp_get_LoginDomain(self, *args)
- def loginDomain(self): return _chilkat.CkHttp_loginDomain(self)
- def put_LoginDomain(self, *args): return _chilkat.CkHttp_put_LoginDomain(self, *args)
- def get_SocksVersion(self): return _chilkat.CkHttp_get_SocksVersion(self)
- def put_SocksVersion(self, *args): return _chilkat.CkHttp_put_SocksVersion(self, *args)
- def get_SocksPort(self): return _chilkat.CkHttp_get_SocksPort(self)
- def put_SocksPort(self, *args): return _chilkat.CkHttp_put_SocksPort(self, *args)
- def get_SocksUsername(self, *args): return _chilkat.CkHttp_get_SocksUsername(self, *args)
- def socksUsername(self): return _chilkat.CkHttp_socksUsername(self)
- def put_SocksUsername(self, *args): return _chilkat.CkHttp_put_SocksUsername(self, *args)
- def get_SocksPassword(self, *args): return _chilkat.CkHttp_get_SocksPassword(self, *args)
- def socksPassword(self): return _chilkat.CkHttp_socksPassword(self)
- def put_SocksPassword(self, *args): return _chilkat.CkHttp_put_SocksPassword(self, *args)
- def get_SocksHostname(self, *args): return _chilkat.CkHttp_get_SocksHostname(self, *args)
- def socksHostname(self): return _chilkat.CkHttp_socksHostname(self)
- def put_SocksHostname(self, *args): return _chilkat.CkHttp_put_SocksHostname(self, *args)
- def PostXml(self, *args): return _chilkat.CkHttp_PostXml(self, *args)
- def get_ProxyPartialUrl(self): return _chilkat.CkHttp_get_ProxyPartialUrl(self)
- def put_ProxyPartialUrl(self, *args): return _chilkat.CkHttp_put_ProxyPartialUrl(self, *args)
- def GetServerSslCert(self, *args): return _chilkat.CkHttp_GetServerSslCert(self, *args)
- def get_DigestAuth(self): return _chilkat.CkHttp_get_DigestAuth(self)
- def put_DigestAuth(self, *args): return _chilkat.CkHttp_put_DigestAuth(self, *args)
- def SetSslClientCertPfx(self, *args): return _chilkat.CkHttp_SetSslClientCertPfx(self, *args)
- def get_VerboseLogging(self): return _chilkat.CkHttp_get_VerboseLogging(self)
- def put_VerboseLogging(self, *args): return _chilkat.CkHttp_put_VerboseLogging(self, *args)
- def ClearInMemoryCookies(self): return _chilkat.CkHttp_ClearInMemoryCookies(self)
- def SetCookieXml(self, *args): return _chilkat.CkHttp_SetCookieXml(self, *args)
- def PostUrlEncoded(self, *args): return _chilkat.CkHttp_PostUrlEncoded(self, *args)
- def PostBinary(self, *args): return _chilkat.CkHttp_PostBinary(self, *args)
- def postBinary(self, *args): return _chilkat.CkHttp_postBinary(self, *args)
- def QuickGetObj(self, *args): return _chilkat.CkHttp_QuickGetObj(self, *args)
- def get_SessionLogFilename(self, *args): return _chilkat.CkHttp_get_SessionLogFilename(self, *args)
- def sessionLogFilename(self): return _chilkat.CkHttp_sessionLogFilename(self)
- def put_SessionLogFilename(self, *args): return _chilkat.CkHttp_put_SessionLogFilename(self, *args)
- def get_BgLastErrorText(self, *args): return _chilkat.CkHttp_get_BgLastErrorText(self, *args)
- def bgLastErrorText(self): return _chilkat.CkHttp_bgLastErrorText(self)
- def get_BgResultData(self, *args): return _chilkat.CkHttp_get_BgResultData(self, *args)
- def get_BgResultInt(self): return _chilkat.CkHttp_get_BgResultInt(self)
- def get_BgResultString(self, *args): return _chilkat.CkHttp_get_BgResultString(self, *args)
- def bgResultString(self): return _chilkat.CkHttp_bgResultString(self)
- def get_BgTaskFinished(self): return _chilkat.CkHttp_get_BgTaskFinished(self)
- def get_BgTaskRunning(self): return _chilkat.CkHttp_get_BgTaskRunning(self)
- def get_BgTaskSuccess(self): return _chilkat.CkHttp_get_BgTaskSuccess(self)
- def get_EventLogCount(self): return _chilkat.CkHttp_get_EventLogCount(self)
- def get_KeepEventLog(self): return _chilkat.CkHttp_get_KeepEventLog(self)
- def put_KeepEventLog(self, *args): return _chilkat.CkHttp_put_KeepEventLog(self, *args)
- def get_UseBgThread(self): return _chilkat.CkHttp_get_UseBgThread(self)
- def put_UseBgThread(self, *args): return _chilkat.CkHttp_put_UseBgThread(self, *args)
- def BgResponseObject(self): return _chilkat.CkHttp_BgResponseObject(self)
- def BgTaskAbort(self): return _chilkat.CkHttp_BgTaskAbort(self)
- def ClearBgEventLog(self): return _chilkat.CkHttp_ClearBgEventLog(self)
- def EventLogName(self, *args): return _chilkat.CkHttp_EventLogName(self, *args)
- def eventLogName(self, *args): return _chilkat.CkHttp_eventLogName(self, *args)
- def EventLogValue(self, *args): return _chilkat.CkHttp_EventLogValue(self, *args)
- def eventLogValue(self, *args): return _chilkat.CkHttp_eventLogValue(self, *args)
- def SleepMs(self, *args): return _chilkat.CkHttp_SleepMs(self, *args)
- def get_ClientIpAddress(self, *args): return _chilkat.CkHttp_get_ClientIpAddress(self, *args)
- def clientIpAddress(self): return _chilkat.CkHttp_clientIpAddress(self)
- def put_ClientIpAddress(self, *args): return _chilkat.CkHttp_put_ClientIpAddress(self, *args)
- def get_ProxyAuthMethod(self, *args): return _chilkat.CkHttp_get_ProxyAuthMethod(self, *args)
- def proxyAuthMethod(self): return _chilkat.CkHttp_proxyAuthMethod(self)
- def put_ProxyAuthMethod(self, *args): return _chilkat.CkHttp_put_ProxyAuthMethod(self, *args)
- def AddQuickHeader(self, *args): return _chilkat.CkHttp_AddQuickHeader(self, *args)
- def RemoveQuickHeader(self, *args): return _chilkat.CkHttp_RemoveQuickHeader(self, *args)
- def SetSslClientCert(self, *args): return _chilkat.CkHttp_SetSslClientCert(self, *args)
- def get_LastHeader(self, *args): return _chilkat.CkHttp_get_LastHeader(self, *args)
- def lastHeader(self): return _chilkat.CkHttp_lastHeader(self)
- def put_UseIEProxy(self, *args): return _chilkat.CkHttp_put_UseIEProxy(self, *args)
- def get_UseIEProxy(self): return _chilkat.CkHttp_get_UseIEProxy(self)
- def get_ProxyLogin(self, *args): return _chilkat.CkHttp_get_ProxyLogin(self, *args)
- def put_ProxyLogin(self, *args): return _chilkat.CkHttp_put_ProxyLogin(self, *args)
- def get_ProxyPassword(self, *args): return _chilkat.CkHttp_get_ProxyPassword(self, *args)
- def put_ProxyPassword(self, *args): return _chilkat.CkHttp_put_ProxyPassword(self, *args)
- def proxyLogin(self): return _chilkat.CkHttp_proxyLogin(self)
- def proxyPassword(self): return _chilkat.CkHttp_proxyPassword(self)
- def version(self): return _chilkat.CkHttp_version(self)
- def cookieDir(self): return _chilkat.CkHttp_cookieDir(self)
- def quickGetStr(self, *args): return _chilkat.CkHttp_quickGetStr(self, *args)
- def proxyDomain(self): return _chilkat.CkHttp_proxyDomain(self)
- def password(self): return _chilkat.CkHttp_password(self)
- def login(self): return _chilkat.CkHttp_login(self)
- def getRequestHeader(self, *args): return _chilkat.CkHttp_getRequestHeader(self, *args)
- def userAgent(self): return _chilkat.CkHttp_userAgent(self)
- def referer(self): return _chilkat.CkHttp_referer(self)
- def ck_accept(self): return _chilkat.CkHttp_ck_accept(self)
- def acceptCharset(self): return _chilkat.CkHttp_acceptCharset(self)
- def acceptLanguage(self): return _chilkat.CkHttp_acceptLanguage(self)
- def connection(self): return _chilkat.CkHttp_connection(self)
- def getDomain(self, *args): return _chilkat.CkHttp_getDomain(self, *args)
- def finalRedirectUrl(self): return _chilkat.CkHttp_finalRedirectUrl(self)
- def getCacheRoot(self, *args): return _chilkat.CkHttp_getCacheRoot(self, *args)
- def getUrlPath(self, *args): return _chilkat.CkHttp_getUrlPath(self, *args)
- def lastContentType(self): return _chilkat.CkHttp_lastContentType(self)
- def lastResponseHeader(self): return _chilkat.CkHttp_lastResponseHeader(self)
- def lastModDate(self): return _chilkat.CkHttp_lastModDate(self)
- def get_Utf8(self): return _chilkat.CkHttp_get_Utf8(self)
- def put_Utf8(self, *args): return _chilkat.CkHttp_put_Utf8(self, *args)
- def put_NtlmAuth(self, *args): return _chilkat.CkHttp_put_NtlmAuth(self, *args)
- def get_NtlmAuth(self): return _chilkat.CkHttp_get_NtlmAuth(self)
- def UnlockComponent(self, *args): return _chilkat.CkHttp_UnlockComponent(self, *args)
- def IsUnlocked(self): return _chilkat.CkHttp_IsUnlocked(self)
- def Download(self, *args): return _chilkat.CkHttp_Download(self, *args)
- def ResumeDownload(self, *args): return _chilkat.CkHttp_ResumeDownload(self, *args)
- def get_Version(self, *args): return _chilkat.CkHttp_get_Version(self, *args)
- def get_MaxConnections(self): return _chilkat.CkHttp_get_MaxConnections(self)
- def put_MaxConnections(self, *args): return _chilkat.CkHttp_put_MaxConnections(self, *args)
- def put_CookieDir(self, *args): return _chilkat.CkHttp_put_CookieDir(self, *args)
- def get_CookieDir(self, *args): return _chilkat.CkHttp_get_CookieDir(self, *args)
- def put_SaveCookies(self, *args): return _chilkat.CkHttp_put_SaveCookies(self, *args)
- def get_SaveCookies(self): return _chilkat.CkHttp_get_SaveCookies(self)
- def put_SendCookies(self, *args): return _chilkat.CkHttp_put_SendCookies(self, *args)
- def get_SendCookies(self): return _chilkat.CkHttp_get_SendCookies(self)
- def QuickGet(self, *args): return _chilkat.CkHttp_QuickGet(self, *args)
- def QuickGetStr(self, *args): return _chilkat.CkHttp_QuickGetStr(self, *args)
- def SynchronousRequest(self, *args): return _chilkat.CkHttp_SynchronousRequest(self, *args)
- def get_ProxyPort(self): return _chilkat.CkHttp_get_ProxyPort(self)
- def put_ProxyPort(self, *args): return _chilkat.CkHttp_put_ProxyPort(self, *args)
- def put_ProxyDomain(self, *args): return _chilkat.CkHttp_put_ProxyDomain(self, *args)
- def get_ProxyDomain(self, *args): return _chilkat.CkHttp_get_ProxyDomain(self, *args)
- def put_Login(self, *args): return _chilkat.CkHttp_put_Login(self, *args)
- def get_Login(self, *args): return _chilkat.CkHttp_get_Login(self, *args)
- def put_Password(self, *args): return _chilkat.CkHttp_put_Password(self, *args)
- def get_Password(self, *args): return _chilkat.CkHttp_get_Password(self, *args)
- def SetRequestHeader(self, *args): return _chilkat.CkHttp_SetRequestHeader(self, *args)
- def GetRequestHeader(self, *args): return _chilkat.CkHttp_GetRequestHeader(self, *args)
- def HasRequestHeader(self, *args): return _chilkat.CkHttp_HasRequestHeader(self, *args)
- def RemoveRequestHeader(self, *args): return _chilkat.CkHttp_RemoveRequestHeader(self, *args)
- def put_UserAgent(self, *args): return _chilkat.CkHttp_put_UserAgent(self, *args)
- def get_UserAgent(self, *args): return _chilkat.CkHttp_get_UserAgent(self, *args)
- def put_Referer(self, *args): return _chilkat.CkHttp_put_Referer(self, *args)
- def get_Referer(self, *args): return _chilkat.CkHttp_get_Referer(self, *args)
- def put_Accept(self, *args): return _chilkat.CkHttp_put_Accept(self, *args)
- def get_Accept(self, *args): return _chilkat.CkHttp_get_Accept(self, *args)
- def put_AcceptCharset(self, *args): return _chilkat.CkHttp_put_AcceptCharset(self, *args)
- def get_AcceptCharset(self, *args): return _chilkat.CkHttp_get_AcceptCharset(self, *args)
- def put_AcceptLanguage(self, *args): return _chilkat.CkHttp_put_AcceptLanguage(self, *args)
- def get_AcceptLanguage(self, *args): return _chilkat.CkHttp_get_AcceptLanguage(self, *args)
- def put_Connection(self, *args): return _chilkat.CkHttp_put_Connection(self, *args)
- def get_Connection(self, *args): return _chilkat.CkHttp_get_Connection(self, *args)
- def get_MaxUrlLen(self): return _chilkat.CkHttp_get_MaxUrlLen(self)
- def put_MaxUrlLen(self, *args): return _chilkat.CkHttp_put_MaxUrlLen(self, *args)
- def get_MaxResponseSize(self): return _chilkat.CkHttp_get_MaxResponseSize(self)
- def put_MaxResponseSize(self, *args): return _chilkat.CkHttp_put_MaxResponseSize(self, *args)
- def put_MimicIE(self, *args): return _chilkat.CkHttp_put_MimicIE(self, *args)
- def get_MimicIE(self): return _chilkat.CkHttp_get_MimicIE(self)
- def put_MimicFireFox(self, *args): return _chilkat.CkHttp_put_MimicFireFox(self, *args)
- def get_MimicFireFox(self): return _chilkat.CkHttp_get_MimicFireFox(self)
- def put_AutoAddHostHeader(self, *args): return _chilkat.CkHttp_put_AutoAddHostHeader(self, *args)
- def get_AutoAddHostHeader(self): return _chilkat.CkHttp_get_AutoAddHostHeader(self)
- def get_ConnectTimeout(self): return _chilkat.CkHttp_get_ConnectTimeout(self)
- def put_ConnectTimeout(self, *args): return _chilkat.CkHttp_put_ConnectTimeout(self, *args)
- def get_ReadTimeout(self): return _chilkat.CkHttp_get_ReadTimeout(self)
- def put_ReadTimeout(self, *args): return _chilkat.CkHttp_put_ReadTimeout(self, *args)
- def GetDomain(self, *args): return _chilkat.CkHttp_GetDomain(self, *args)
- def get_WasRedirected(self): return _chilkat.CkHttp_get_WasRedirected(self)
- def get_FinalRedirectUrl(self, *args): return _chilkat.CkHttp_get_FinalRedirectUrl(self, *args)
- def put_FollowRedirects(self, *args): return _chilkat.CkHttp_put_FollowRedirects(self, *args)
- def get_FollowRedirects(self): return _chilkat.CkHttp_get_FollowRedirects(self)
- def put_NumCacheLevels(self, *args): return _chilkat.CkHttp_put_NumCacheLevels(self, *args)
- def get_NumCacheLevels(self): return _chilkat.CkHttp_get_NumCacheLevels(self)
- def get_NumCacheRoots(self): return _chilkat.CkHttp_get_NumCacheRoots(self)
- def GetCacheRoot(self, *args): return _chilkat.CkHttp_GetCacheRoot(self, *args)
- def AddCacheRoot(self, *args): return _chilkat.CkHttp_AddCacheRoot(self, *args)
- def get_LastStatus(self): return _chilkat.CkHttp_get_LastStatus(self)
- def get_LastContentType(self, *args): return _chilkat.CkHttp_get_LastContentType(self, *args)
- def get_LastResponseHeader(self, *args): return _chilkat.CkHttp_get_LastResponseHeader(self, *args)
- def get_LastModDate(self, *args): return _chilkat.CkHttp_get_LastModDate(self, *args)
- def get_UpdateCache(self): return _chilkat.CkHttp_get_UpdateCache(self)
- def put_UpdateCache(self, *args): return _chilkat.CkHttp_put_UpdateCache(self, *args)
- def get_FetchFromCache(self): return _chilkat.CkHttp_get_FetchFromCache(self)
- def put_FetchFromCache(self, *args): return _chilkat.CkHttp_put_FetchFromCache(self, *args)
- def get_IgnoreNoCache(self): return _chilkat.CkHttp_get_IgnoreNoCache(self)
- def put_IgnoreNoCache(self, *args): return _chilkat.CkHttp_put_IgnoreNoCache(self, *args)
- def get_IgnoreMustRevalidate(self): return _chilkat.CkHttp_get_IgnoreMustRevalidate(self)
- def put_IgnoreMustRevalidate(self, *args): return _chilkat.CkHttp_put_IgnoreMustRevalidate(self, *args)
- def get_DefaultFreshPeriod(self): return _chilkat.CkHttp_get_DefaultFreshPeriod(self)
- def put_DefaultFreshPeriod(self, *args): return _chilkat.CkHttp_put_DefaultFreshPeriod(self, *args)
- def get_FreshnessAlgorithm(self): return _chilkat.CkHttp_get_FreshnessAlgorithm(self)
- def put_FreshnessAlgorithm(self, *args): return _chilkat.CkHttp_put_FreshnessAlgorithm(self, *args)
- def get_LMFactor(self): return _chilkat.CkHttp_get_LMFactor(self)
- def put_LMFactor(self, *args): return _chilkat.CkHttp_put_LMFactor(self, *args)
- def get_MaxFreshPeriod(self): return _chilkat.CkHttp_get_MaxFreshPeriod(self)
- def put_MaxFreshPeriod(self, *args): return _chilkat.CkHttp_put_MaxFreshPeriod(self, *args)
- def get_MinFreshPeriod(self): return _chilkat.CkHttp_get_MinFreshPeriod(self)
- def put_MinFreshPeriod(self, *args): return _chilkat.CkHttp_put_MinFreshPeriod(self, *args)
- def GetUrlPath(self, *args): return _chilkat.CkHttp_GetUrlPath(self, *args)
- def SaveLastError(self, *args): return _chilkat.CkHttp_SaveLastError(self, *args)
- def LastErrorXml(self, *args): return _chilkat.CkHttp_LastErrorXml(self, *args)
- def LastErrorHtml(self, *args): return _chilkat.CkHttp_LastErrorHtml(self, *args)
- def LastErrorText(self, *args): return _chilkat.CkHttp_LastErrorText(self, *args)
-CkHttp_swigregister = _chilkat.CkHttp_swigregister
-CkHttp_swigregister(CkHttp)
-
-class CkHttpRequest(_object):
- __swig_setmethods__ = {}
- __setattr__ = lambda self, name, value: _swig_setattr(self, CkHttpRequest, name, value)
- __swig_getmethods__ = {}
- __getattr__ = lambda self, name: _swig_getattr(self, CkHttpRequest, name)
- __repr__ = _swig_repr
- def __init__(self):
- this = _chilkat.new_CkHttpRequest()
- try: self.this.append(this)
- except: self.this = this
- __swig_destroy__ = _chilkat.delete_CkHttpRequest
- __del__ = lambda self : None;
- def RemoveAllParams(self): return _chilkat.CkHttpRequest_RemoveAllParams(self)
- def LoadBodyFromFile(self, *args): return _chilkat.CkHttpRequest_LoadBodyFromFile(self, *args)
- def LoadBodyFromBytes(self, *args): return _chilkat.CkHttpRequest_LoadBodyFromBytes(self, *args)
- def LoadBodyFromString(self, *args): return _chilkat.CkHttpRequest_LoadBodyFromString(self, *args)
- def UsePut(self): return _chilkat.CkHttpRequest_UsePut(self)
- def AddBytesForUpload(self, *args): return _chilkat.CkHttpRequest_AddBytesForUpload(self, *args)
- def UsePostMultipartForm(self): return _chilkat.CkHttpRequest_UsePostMultipartForm(self)
- def GetUrlEncodedParams(self, *args): return _chilkat.CkHttpRequest_GetUrlEncodedParams(self, *args)
- def getUrlEncodedParams(self): return _chilkat.CkHttpRequest_getUrlEncodedParams(self)
- def AddStringForUpload(self, *args): return _chilkat.CkHttpRequest_AddStringForUpload(self, *args)
- def AddFileForUpload2(self, *args): return _chilkat.CkHttpRequest_AddFileForUpload2(self, *args)
- def AddStringForUpload2(self, *args): return _chilkat.CkHttpRequest_AddStringForUpload2(self, *args)
- def AddBytesForUpload2(self, *args): return _chilkat.CkHttpRequest_AddBytesForUpload2(self, *args)
- def path(self): return _chilkat.CkHttpRequest_path(self)
- def charset(self): return _chilkat.CkHttpRequest_charset(self)
- def httpVersion(self): return _chilkat.CkHttpRequest_httpVersion(self)
- def getHeaderField(self, *args): return _chilkat.CkHttpRequest_getHeaderField(self, *args)
- def getHeaderName(self, *args): return _chilkat.CkHttpRequest_getHeaderName(self, *args)
- def getHeaderValue(self, *args): return _chilkat.CkHttpRequest_getHeaderValue(self, *args)
- def getParam(self, *args): return _chilkat.CkHttpRequest_getParam(self, *args)
- def getParamName(self, *args): return _chilkat.CkHttpRequest_getParamName(self, *args)
- def getParamValue(self, *args): return _chilkat.CkHttpRequest_getParamValue(self, *args)
- def lastErrorText(self): return _chilkat.CkHttpRequest_lastErrorText(self)
- def lastErrorXml(self): return _chilkat.CkHttpRequest_lastErrorXml(self)
- def lastErrorHtml(self): return _chilkat.CkHttpRequest_lastErrorHtml(self)
- def RemoveParam(self, *args): return _chilkat.CkHttpRequest_RemoveParam(self, *args)
- def SaveLastError(self, *args): return _chilkat.CkHttpRequest_SaveLastError(self, *args)
- def LastErrorXml(self, *args): return _chilkat.CkHttpRequest_LastErrorXml(self, *args)
- def LastErrorHtml(self, *args): return _chilkat.CkHttpRequest_LastErrorHtml(self, *args)
- def LastErrorText(self, *args): return _chilkat.CkHttpRequest_LastErrorText(self, *args)
- def get_Utf8(self): return _chilkat.CkHttpRequest_get_Utf8(self)
- def put_Utf8(self, *args): return _chilkat.CkHttpRequest_put_Utf8(self, *args)
- def UsePost(self): return _chilkat.CkHttpRequest_UsePost(self)
- def UseGet(self): return _chilkat.CkHttpRequest_UseGet(self)
- def UseHead(self): return _chilkat.CkHttpRequest_UseHead(self)
- def UseXmlHttp(self, *args): return _chilkat.CkHttpRequest_UseXmlHttp(self, *args)
- def UseUpload(self): return _chilkat.CkHttpRequest_UseUpload(self)
- def SetFromUrl(self, *args): return _chilkat.CkHttpRequest_SetFromUrl(self, *args)
- def put_Path(self, *args): return _chilkat.CkHttpRequest_put_Path(self, *args)
- def get_Path(self, *args): return _chilkat.CkHttpRequest_get_Path(self, *args)
- def put_Charset(self, *args): return _chilkat.CkHttpRequest_put_Charset(self, *args)
- def get_Charset(self, *args): return _chilkat.CkHttpRequest_get_Charset(self, *args)
- def put_SendCharset(self, *args): return _chilkat.CkHttpRequest_put_SendCharset(self, *args)
- def get_SendCharset(self): return _chilkat.CkHttpRequest_get_SendCharset(self)
- def put_HttpVersion(self, *args): return _chilkat.CkHttpRequest_put_HttpVersion(self, *args)
- def get_HttpVersion(self, *args): return _chilkat.CkHttpRequest_get_HttpVersion(self, *args)
- def AddHeader(self, *args): return _chilkat.CkHttpRequest_AddHeader(self, *args)
- def AddParam(self, *args): return _chilkat.CkHttpRequest_AddParam(self, *args)
- def AddFileForUpload(self, *args): return _chilkat.CkHttpRequest_AddFileForUpload(self, *args)
- def GenerateRequestText(self, *args): return _chilkat.CkHttpRequest_GenerateRequestText(self, *args)
- def generateRequestText(self): return _chilkat.CkHttpRequest_generateRequestText(self)
- def GetHeaderField(self, *args): return _chilkat.CkHttpRequest_GetHeaderField(self, *args)
- def get_NumHeaderFields(self): return _chilkat.CkHttpRequest_get_NumHeaderFields(self)
- def GetHeaderName(self, *args): return _chilkat.CkHttpRequest_GetHeaderName(self, *args)
- def GetHeaderValue(self, *args): return _chilkat.CkHttpRequest_GetHeaderValue(self, *args)
- def GetParam(self, *args): return _chilkat.CkHttpRequest_GetParam(self, *args)
- def get_NumParams(self): return _chilkat.CkHttpRequest_get_NumParams(self)
- def GetParamName(self, *args): return _chilkat.CkHttpRequest_GetParamName(self, *args)
- def GetParamValue(self, *args): return _chilkat.CkHttpRequest_GetParamValue(self, *args)
-CkHttpRequest_swigregister = _chilkat.CkHttpRequest_swigregister
-CkHttpRequest_swigregister(CkHttpRequest)
-
-class CkHttpResponse(_object):
- __swig_setmethods__ = {}
- __setattr__ = lambda self, name, value: _swig_setattr(self, CkHttpResponse, name, value)
- __swig_getmethods__ = {}
- __getattr__ = lambda self, name: _swig_getattr(self, CkHttpResponse, name)
- __repr__ = _swig_repr
- def __init__(self):
- this = _chilkat.new_CkHttpResponse()
- try: self.this.append(this)
- except: self.this = this
- __swig_destroy__ = _chilkat.delete_CkHttpResponse
- __del__ = lambda self : None;
- def get_Utf8(self): return _chilkat.CkHttpResponse_get_Utf8(self)
- def put_Utf8(self, *args): return _chilkat.CkHttpResponse_put_Utf8(self, *args)
- def header(self): return _chilkat.CkHttpResponse_header(self)
- def bodyStr(self): return _chilkat.CkHttpResponse_bodyStr(self)
- def statusLine(self): return _chilkat.CkHttpResponse_statusLine(self)
- def charset(self): return _chilkat.CkHttpResponse_charset(self)
- def domain(self): return _chilkat.CkHttpResponse_domain(self)
- def getHeaderField(self, *args): return _chilkat.CkHttpResponse_getHeaderField(self, *args)
- def getHeaderFieldAttr(self, *args): return _chilkat.CkHttpResponse_getHeaderFieldAttr(self, *args)
- def getHeaderName(self, *args): return _chilkat.CkHttpResponse_getHeaderName(self, *args)
- def getHeaderValue(self, *args): return _chilkat.CkHttpResponse_getHeaderValue(self, *args)
- def getCookieDomain(self, *args): return _chilkat.CkHttpResponse_getCookieDomain(self, *args)
- def getCookiePath(self, *args): return _chilkat.CkHttpResponse_getCookiePath(self, *args)
- def getCookieExpiresStr(self, *args): return _chilkat.CkHttpResponse_getCookieExpiresStr(self, *args)
- def getCookieName(self, *args): return _chilkat.CkHttpResponse_getCookieName(self, *args)
- def getCookieValue(self, *args): return _chilkat.CkHttpResponse_getCookieValue(self, *args)
- def get_Header(self, *args): return _chilkat.CkHttpResponse_get_Header(self, *args)
- def get_Body(self, *args): return _chilkat.CkHttpResponse_get_Body(self, *args)
- def get_BodyStr(self, *args): return _chilkat.CkHttpResponse_get_BodyStr(self, *args)
- def get_BodyQP(self, *args): return _chilkat.CkHttpResponse_get_BodyQP(self, *args)
- def get_StatusLine(self, *args): return _chilkat.CkHttpResponse_get_StatusLine(self, *args)
- def get_StatusCode(self): return _chilkat.CkHttpResponse_get_StatusCode(self)
- def get_Charset(self, *args): return _chilkat.CkHttpResponse_get_Charset(self, *args)
- def get_Domain(self, *args): return _chilkat.CkHttpResponse_get_Domain(self, *args)
- def get_ContentLength(self): return _chilkat.CkHttpResponse_get_ContentLength(self)
- def get_Date(self, *args): return _chilkat.CkHttpResponse_get_Date(self, *args)
- def GetHeaderField(self, *args): return _chilkat.CkHttpResponse_GetHeaderField(self, *args)
- def GetHeaderFieldAttr(self, *args): return _chilkat.CkHttpResponse_GetHeaderFieldAttr(self, *args)
- def get_NumHeaderFields(self): return _chilkat.CkHttpResponse_get_NumHeaderFields(self)
- def GetHeaderName(self, *args): return _chilkat.CkHttpResponse_GetHeaderName(self, *args)
- def GetHeaderValue(self, *args): return _chilkat.CkHttpResponse_GetHeaderValue(self, *args)
- def get_NumCookies(self): return _chilkat.CkHttpResponse_get_NumCookies(self)
- def GetCookieDomain(self, *args): return _chilkat.CkHttpResponse_GetCookieDomain(self, *args)
- def GetCookiePath(self, *args): return _chilkat.CkHttpResponse_GetCookiePath(self, *args)
- def GetCookieExpiresStr(self, *args): return _chilkat.CkHttpResponse_GetCookieExpiresStr(self, *args)
- def GetCookieExpires(self, *args): return _chilkat.CkHttpResponse_GetCookieExpires(self, *args)
- def GetCookieName(self, *args): return _chilkat.CkHttpResponse_GetCookieName(self, *args)
- def GetCookieValue(self, *args): return _chilkat.CkHttpResponse_GetCookieValue(self, *args)
-CkHttpResponse_swigregister = _chilkat.CkHttpResponse_swigregister
-CkHttpResponse_swigregister(CkHttpResponse)
-
-class CkImap(_object):
- __swig_setmethods__ = {}
- __setattr__ = lambda self, name, value: _swig_setattr(self, CkImap, name, value)
- __swig_getmethods__ = {}
- __getattr__ = lambda self, name: _swig_getattr(self, CkImap, name)
- __repr__ = _swig_repr
- def __init__(self):
- this = _chilkat.new_CkImap()
- try: self.this.append(this)
- except: self.this = this
- __swig_destroy__ = _chilkat.delete_CkImap
- __del__ = lambda self : None;
- def get_Utf8(self): return _chilkat.CkImap_get_Utf8(self)
- def put_Utf8(self, *args): return _chilkat.CkImap_put_Utf8(self, *args)
- def get_LastAppendedMime(self, *args): return _chilkat.CkImap_get_LastAppendedMime(self, *args)
- def lastAppendedMime(self): return _chilkat.CkImap_lastAppendedMime(self)
- def get_LastIntermediateResponse(self, *args): return _chilkat.CkImap_get_LastIntermediateResponse(self, *args)
- def lastIntermediateResponse(self): return _chilkat.CkImap_lastIntermediateResponse(self)
- def get_LastResponse(self, *args): return _chilkat.CkImap_get_LastResponse(self, *args)
- def lastResponse(self): return _chilkat.CkImap_lastResponse(self)
- def get_LastCommand(self, *args): return _chilkat.CkImap_get_LastCommand(self, *args)
- def lastCommand(self): return _chilkat.CkImap_lastCommand(self)
- def get_Version(self, *args): return _chilkat.CkImap_get_Version(self, *args)
- def version(self): return _chilkat.CkImap_version(self)
- def AppendMimeWithFlags(self, *args): return _chilkat.CkImap_AppendMimeWithFlags(self, *args)
- def Subscribe(self, *args): return _chilkat.CkImap_Subscribe(self, *args)
- def Unsubscribe(self, *args): return _chilkat.CkImap_Unsubscribe(self, *args)
- def FetchSingleHeaderAsMime(self, *args): return _chilkat.CkImap_FetchSingleHeaderAsMime(self, *args)
- def fetchSingleHeaderAsMime(self, *args): return _chilkat.CkImap_fetchSingleHeaderAsMime(self, *args)
- def AppendMimeWithDate(self, *args): return _chilkat.CkImap_AppendMimeWithDate(self, *args)
- def get_SelectedMailbox(self, *args): return _chilkat.CkImap_get_SelectedMailbox(self, *args)
- def selectedMailbox(self): return _chilkat.CkImap_selectedMailbox(self)
- def get_AppendUid(self): return _chilkat.CkImap_get_AppendUid(self)
- def get_AuthzId(self, *args): return _chilkat.CkImap_get_AuthzId(self, *args)
- def authzId(self): return _chilkat.CkImap_authzId(self)
- def put_AuthzId(self, *args): return _chilkat.CkImap_put_AuthzId(self, *args)
- def get_SendBufferSize(self): return _chilkat.CkImap_get_SendBufferSize(self)
- def put_SendBufferSize(self, *args): return _chilkat.CkImap_put_SendBufferSize(self, *args)
- def SshTunnel(self, *args): return _chilkat.CkImap_SshTunnel(self, *args)
- def SshAuthenticatePw(self, *args): return _chilkat.CkImap_SshAuthenticatePw(self, *args)
- def SshAuthenticatePk(self, *args): return _chilkat.CkImap_SshAuthenticatePk(self, *args)
- def Noop(self): return _chilkat.CkImap_Noop(self)
- def get_SocksHostname(self, *args): return _chilkat.CkImap_get_SocksHostname(self, *args)
- def socksHostname(self): return _chilkat.CkImap_socksHostname(self)
- def put_SocksHostname(self, *args): return _chilkat.CkImap_put_SocksHostname(self, *args)
- def get_SocksUsername(self, *args): return _chilkat.CkImap_get_SocksUsername(self, *args)
- def socksUsername(self): return _chilkat.CkImap_socksUsername(self)
- def put_SocksUsername(self, *args): return _chilkat.CkImap_put_SocksUsername(self, *args)
- def get_SocksPassword(self, *args): return _chilkat.CkImap_get_SocksPassword(self, *args)
- def socksPassword(self): return _chilkat.CkImap_socksPassword(self)
- def put_SocksPassword(self, *args): return _chilkat.CkImap_put_SocksPassword(self, *args)
- def get_SocksPort(self): return _chilkat.CkImap_get_SocksPort(self)
- def put_SocksPort(self, *args): return _chilkat.CkImap_put_SocksPort(self, *args)
- def get_SocksVersion(self): return _chilkat.CkImap_get_SocksVersion(self)
- def put_SocksVersion(self, *args): return _chilkat.CkImap_put_SocksVersion(self, *args)
- def SetSslClientCertPfx(self, *args): return _chilkat.CkImap_SetSslClientCertPfx(self, *args)
- def get_StartTls(self): return _chilkat.CkImap_get_StartTls(self)
- def put_StartTls(self, *args): return _chilkat.CkImap_put_StartTls(self, *args)
- def get_SslProtocol(self, *args): return _chilkat.CkImap_get_SslProtocol(self, *args)
- def sslProtocol(self): return _chilkat.CkImap_sslProtocol(self)
- def put_SslProtocol(self, *args): return _chilkat.CkImap_put_SslProtocol(self, *args)
- def get_HttpProxyUsername(self, *args): return _chilkat.CkImap_get_HttpProxyUsername(self, *args)
- def httpProxyUsername(self): return _chilkat.CkImap_httpProxyUsername(self)
- def put_HttpProxyUsername(self, *args): return _chilkat.CkImap_put_HttpProxyUsername(self, *args)
- def get_HttpProxyPassword(self, *args): return _chilkat.CkImap_get_HttpProxyPassword(self, *args)
- def httpProxyPassword(self): return _chilkat.CkImap_httpProxyPassword(self)
- def put_HttpProxyPassword(self, *args): return _chilkat.CkImap_put_HttpProxyPassword(self, *args)
- def get_HttpProxyAuthMethod(self, *args): return _chilkat.CkImap_get_HttpProxyAuthMethod(self, *args)
- def httpProxyAuthMethod(self): return _chilkat.CkImap_httpProxyAuthMethod(self)
- def put_HttpProxyAuthMethod(self, *args): return _chilkat.CkImap_put_HttpProxyAuthMethod(self, *args)
- def get_HttpProxyHostname(self, *args): return _chilkat.CkImap_get_HttpProxyHostname(self, *args)
- def httpProxyHostname(self): return _chilkat.CkImap_httpProxyHostname(self)
- def put_HttpProxyHostname(self, *args): return _chilkat.CkImap_put_HttpProxyHostname(self, *args)
- def get_HttpProxyPort(self): return _chilkat.CkImap_get_HttpProxyPort(self)
- def put_HttpProxyPort(self, *args): return _chilkat.CkImap_put_HttpProxyPort(self, *args)
- def get_UidNext(self): return _chilkat.CkImap_get_UidNext(self)
- def get_AutoFix(self): return _chilkat.CkImap_get_AutoFix(self)
- def put_AutoFix(self, *args): return _chilkat.CkImap_put_AutoFix(self, *args)
- def AddPfxSourceData(self, *args): return _chilkat.CkImap_AddPfxSourceData(self, *args)
- def AddPfxSourceFile(self, *args): return _chilkat.CkImap_AddPfxSourceFile(self, *args)
- def Connect(self, *args): return _chilkat.CkImap_Connect(self, *args)
- def Disconnect(self): return _chilkat.CkImap_Disconnect(self)
- def IsConnected(self): return _chilkat.CkImap_IsConnected(self)
- def get_SeparatorChar(self): return _chilkat.CkImap_get_SeparatorChar(self)
- def put_SeparatorChar(self, *args): return _chilkat.CkImap_put_SeparatorChar(self, *args)
- def get_NumMessages(self): return _chilkat.CkImap_get_NumMessages(self)
- def FetchSequenceAsMime(self, *args): return _chilkat.CkImap_FetchSequenceAsMime(self, *args)
- def Login(self, *args): return _chilkat.CkImap_Login(self, *args)
- def Logout(self): return _chilkat.CkImap_Logout(self)
- def IsLoggedIn(self): return _chilkat.CkImap_IsLoggedIn(self)
- def SetSslClientCert(self, *args): return _chilkat.CkImap_SetSslClientCert(self, *args)
- def GetSslServerCert(self): return _chilkat.CkImap_GetSslServerCert(self)
- def get_SslServerCertVerified(self): return _chilkat.CkImap_get_SslServerCertVerified(self)
- def get_LoggedInUser(self, *args): return _chilkat.CkImap_get_LoggedInUser(self, *args)
- def get_ConnectedToHost(self, *args): return _chilkat.CkImap_get_ConnectedToHost(self, *args)
- def CreateMailbox(self, *args): return _chilkat.CkImap_CreateMailbox(self, *args)
- def DeleteMailbox(self, *args): return _chilkat.CkImap_DeleteMailbox(self, *args)
- def RenameMailbox(self, *args): return _chilkat.CkImap_RenameMailbox(self, *args)
- def CopyMultiple(self, *args): return _chilkat.CkImap_CopyMultiple(self, *args)
- def CopySequence(self, *args): return _chilkat.CkImap_CopySequence(self, *args)
- def SetDecryptCert2(self, *args): return _chilkat.CkImap_SetDecryptCert2(self, *args)
- def LastResponse(self, *args): return _chilkat.CkImap_LastResponse(self, *args)
- def ListMailboxes(self, *args): return _chilkat.CkImap_ListMailboxes(self, *args)
- def SelectMailbox(self, *args): return _chilkat.CkImap_SelectMailbox(self, *args)
- def ExamineMailbox(self, *args): return _chilkat.CkImap_ExamineMailbox(self, *args)
- def Search(self, *args): return _chilkat.CkImap_Search(self, *args)
- def ClearSessionLog(self): return _chilkat.CkImap_ClearSessionLog(self)
- def GetAllUids(self): return _chilkat.CkImap_GetAllUids(self)
- def FetchSingle(self, *args): return _chilkat.CkImap_FetchSingle(self, *args)
- def FetchSingleHeader(self, *args): return _chilkat.CkImap_FetchSingleHeader(self, *args)
- def FetchBundle(self, *args): return _chilkat.CkImap_FetchBundle(self, *args)
- def FetchHeaders(self, *args): return _chilkat.CkImap_FetchHeaders(self, *args)
- def FetchChunk(self, *args): return _chilkat.CkImap_FetchChunk(self, *args)
- def FetchSequence(self, *args): return _chilkat.CkImap_FetchSequence(self, *args)
- def FetchSequenceHeaders(self, *args): return _chilkat.CkImap_FetchSequenceHeaders(self, *args)
- def FetchSingleAsMime(self, *args): return _chilkat.CkImap_FetchSingleAsMime(self, *args)
- def FetchBundleAsMime(self, *args): return _chilkat.CkImap_FetchBundleAsMime(self, *args)
- def Expunge(self): return _chilkat.CkImap_Expunge(self)
- def ExpungeAndClose(self): return _chilkat.CkImap_ExpungeAndClose(self)
- def StoreFlags(self, *args): return _chilkat.CkImap_StoreFlags(self, *args)
- def FetchFlags(self, *args): return _chilkat.CkImap_FetchFlags(self, *args)
- def SetFlag(self, *args): return _chilkat.CkImap_SetFlag(self, *args)
- def SetFlags(self, *args): return _chilkat.CkImap_SetFlags(self, *args)
- def get_AuthMethod(self, *args): return _chilkat.CkImap_get_AuthMethod(self, *args)
- def put_AuthMethod(self, *args): return _chilkat.CkImap_put_AuthMethod(self, *args)
- def get_Domain(self, *args): return _chilkat.CkImap_get_Domain(self, *args)
- def put_Domain(self, *args): return _chilkat.CkImap_put_Domain(self, *args)
- def get_Port(self): return _chilkat.CkImap_get_Port(self)
- def put_Port(self, *args): return _chilkat.CkImap_put_Port(self, *args)
- def get_Ssl(self): return _chilkat.CkImap_get_Ssl(self)
- def put_Ssl(self, *args): return _chilkat.CkImap_put_Ssl(self, *args)
- def AppendMime(self, *args): return _chilkat.CkImap_AppendMime(self, *args)
- def AppendMail(self, *args): return _chilkat.CkImap_AppendMail(self, *args)
- def Copy(self, *args): return _chilkat.CkImap_Copy(self, *args)
- def SetMailFlag(self, *args): return _chilkat.CkImap_SetMailFlag(self, *args)
- def GetMailFlag(self, *args): return _chilkat.CkImap_GetMailFlag(self, *args)
- def RefetchMailFlags(self, *args): return _chilkat.CkImap_RefetchMailFlags(self, *args)
- def GetMailSize(self, *args): return _chilkat.CkImap_GetMailSize(self, *args)
- def GetMailNumAttach(self, *args): return _chilkat.CkImap_GetMailNumAttach(self, *args)
- def GetMailAttachSize(self, *args): return _chilkat.CkImap_GetMailAttachSize(self, *args)
- def GetMailAttachFilename(self, *args): return _chilkat.CkImap_GetMailAttachFilename(self, *args)
- def get_PeekMode(self): return _chilkat.CkImap_get_PeekMode(self)
- def put_PeekMode(self, *args): return _chilkat.CkImap_put_PeekMode(self, *args)
- def get_SessionLog(self, *args): return _chilkat.CkImap_get_SessionLog(self, *args)
- def get_KeepSessionLog(self): return _chilkat.CkImap_get_KeepSessionLog(self)
- def put_KeepSessionLog(self, *args): return _chilkat.CkImap_put_KeepSessionLog(self, *args)
- def get_AppendSeen(self): return _chilkat.CkImap_get_AppendSeen(self)
- def put_AppendSeen(self, *args): return _chilkat.CkImap_put_AppendSeen(self, *args)
- def SaveLastError(self, *args): return _chilkat.CkImap_SaveLastError(self, *args)
- def LastErrorXml(self, *args): return _chilkat.CkImap_LastErrorXml(self, *args)
- def LastErrorHtml(self, *args): return _chilkat.CkImap_LastErrorHtml(self, *args)
- def LastErrorText(self, *args): return _chilkat.CkImap_LastErrorText(self, *args)
- def UnlockComponent(self, *args): return _chilkat.CkImap_UnlockComponent(self, *args)
- def IsUnlocked(self): return _chilkat.CkImap_IsUnlocked(self)
- def get_ReadTimeout(self): return _chilkat.CkImap_get_ReadTimeout(self)
- def put_ReadTimeout(self, *args): return _chilkat.CkImap_put_ReadTimeout(self, *args)
- def get_ConnectTimeout(self): return _chilkat.CkImap_get_ConnectTimeout(self)
- def put_ConnectTimeout(self, *args): return _chilkat.CkImap_put_ConnectTimeout(self, *args)
- def SendRawCommand(self, *args): return _chilkat.CkImap_SendRawCommand(self, *args)
- def lastErrorText(self): return _chilkat.CkImap_lastErrorText(self)
- def lastErrorXml(self): return _chilkat.CkImap_lastErrorXml(self)
- def lastErrorHtml(self): return _chilkat.CkImap_lastErrorHtml(self)
- def getMailAttachFilename(self, *args): return _chilkat.CkImap_getMailAttachFilename(self, *args)
- def fetchFlags(self, *args): return _chilkat.CkImap_fetchFlags(self, *args)
- def authMethod(self): return _chilkat.CkImap_authMethod(self)
- def domain(self): return _chilkat.CkImap_domain(self)
- def fetchSingleAsMime(self, *args): return _chilkat.CkImap_fetchSingleAsMime(self, *args)
- def loggedInUser(self): return _chilkat.CkImap_loggedInUser(self)
- def connectedToHost(self): return _chilkat.CkImap_connectedToHost(self)
- def sendRawCommand(self, *args): return _chilkat.CkImap_sendRawCommand(self, *args)
- def sessionLog(self): return _chilkat.CkImap_sessionLog(self)
-CkImap_swigregister = _chilkat.CkImap_swigregister
-CkImap_swigregister(CkImap)
-
-class CkMailboxes(_object):
- __swig_setmethods__ = {}
- __setattr__ = lambda self, name, value: _swig_setattr(self, CkMailboxes, name, value)
- __swig_getmethods__ = {}
- __getattr__ = lambda self, name: _swig_getattr(self, CkMailboxes, name)
- __repr__ = _swig_repr
- def __init__(self):
- this = _chilkat.new_CkMailboxes()
- try: self.this.append(this)
- except: self.this = this
- __swig_destroy__ = _chilkat.delete_CkMailboxes
- __del__ = lambda self : None;
- def get_Utf8(self): return _chilkat.CkMailboxes_get_Utf8(self)
- def put_Utf8(self, *args): return _chilkat.CkMailboxes_put_Utf8(self, *args)
- def IsMarked(self, *args): return _chilkat.CkMailboxes_IsMarked(self, *args)
- def HasInferiors(self, *args): return _chilkat.CkMailboxes_HasInferiors(self, *args)
- def IsSelectable(self, *args): return _chilkat.CkMailboxes_IsSelectable(self, *args)
- def GetName(self, *args): return _chilkat.CkMailboxes_GetName(self, *args)
- def get_Count(self): return _chilkat.CkMailboxes_get_Count(self)
- def getName(self, *args): return _chilkat.CkMailboxes_getName(self, *args)
-CkMailboxes_swigregister = _chilkat.CkMailboxes_swigregister
-CkMailboxes_swigregister(CkMailboxes)
-
-class CkMessageSet(_object):
- __swig_setmethods__ = {}
- __setattr__ = lambda self, name, value: _swig_setattr(self, CkMessageSet, name, value)
- __swig_getmethods__ = {}
- __getattr__ = lambda self, name: _swig_getattr(self, CkMessageSet, name)
- __repr__ = _swig_repr
- def __init__(self):
- this = _chilkat.new_CkMessageSet()
- try: self.this.append(this)
- except: self.this = this
- __swig_destroy__ = _chilkat.delete_CkMessageSet
- __del__ = lambda self : None;
- def toString(self): return _chilkat.CkMessageSet_toString(self)
- def ToString(self, *args): return _chilkat.CkMessageSet_ToString(self, *args)
- def ToCompactString(self, *args): return _chilkat.CkMessageSet_ToCompactString(self, *args)
- def toCompactString(self): return _chilkat.CkMessageSet_toCompactString(self)
- def FromCompactString(self, *args): return _chilkat.CkMessageSet_FromCompactString(self, *args)
- def ContainsId(self, *args): return _chilkat.CkMessageSet_ContainsId(self, *args)
- def RemoveId(self, *args): return _chilkat.CkMessageSet_RemoveId(self, *args)
- def InsertId(self, *args): return _chilkat.CkMessageSet_InsertId(self, *args)
- def GetId(self, *args): return _chilkat.CkMessageSet_GetId(self, *args)
- def get_Count(self): return _chilkat.CkMessageSet_get_Count(self)
- def put_HasUids(self, *args): return _chilkat.CkMessageSet_put_HasUids(self, *args)
- def get_HasUids(self): return _chilkat.CkMessageSet_get_HasUids(self)
-CkMessageSet_swigregister = _chilkat.CkMessageSet_swigregister
-CkMessageSet_swigregister(CkMessageSet)
-
-class CkCharset(_object):
- __swig_setmethods__ = {}
- __setattr__ = lambda self, name, value: _swig_setattr(self, CkCharset, name, value)
- __swig_getmethods__ = {}
- __getattr__ = lambda self, name: _swig_getattr(self, CkCharset, name)
- __repr__ = _swig_repr
- def __init__(self):
- this = _chilkat.new_CkCharset()
- try: self.this.append(this)
- except: self.this = this
- __swig_destroy__ = _chilkat.delete_CkCharset
- __del__ = lambda self : None;
- def lastErrorText(self): return _chilkat.CkCharset_lastErrorText(self)
- def lastErrorXml(self): return _chilkat.CkCharset_lastErrorXml(self)
- def lastErrorHtml(self): return _chilkat.CkCharset_lastErrorHtml(self)
- def UrlDecodeStr(self, *args): return _chilkat.CkCharset_UrlDecodeStr(self, *args)
- def urlDecodeStr(self, *args): return _chilkat.CkCharset_urlDecodeStr(self, *args)
- def getHtmlFileCharset(self, *args): return _chilkat.CkCharset_getHtmlFileCharset(self, *args)
- def getHtmlCharset(self, *args): return _chilkat.CkCharset_getHtmlCharset(self, *args)
- def lastOutputAsQP(self): return _chilkat.CkCharset_lastOutputAsQP(self)
- def lastInputAsQP(self): return _chilkat.CkCharset_lastInputAsQP(self)
- def lastOutputAsHex(self): return _chilkat.CkCharset_lastOutputAsHex(self)
- def lastInputAsHex(self): return _chilkat.CkCharset_lastInputAsHex(self)
- def htmlDecodeToStr(self, *args): return _chilkat.CkCharset_htmlDecodeToStr(self, *args)
- def toCharset(self): return _chilkat.CkCharset_toCharset(self)
- def fromCharset(self): return _chilkat.CkCharset_fromCharset(self)
- def version(self): return _chilkat.CkCharset_version(self)
- def codePageToCharset(self, *args): return _chilkat.CkCharset_codePageToCharset(self, *args)
- def altToCharset(self): return _chilkat.CkCharset_altToCharset(self)
- def upperCase(self, *args): return _chilkat.CkCharset_upperCase(self, *args)
- def lowerCase(self, *args): return _chilkat.CkCharset_lowerCase(self, *args)
- def UpperCase(self, *args): return _chilkat.CkCharset_UpperCase(self, *args)
- def LowerCase(self, *args): return _chilkat.CkCharset_LowerCase(self, *args)
- def get_Utf8(self): return _chilkat.CkCharset_get_Utf8(self)
- def put_Utf8(self, *args): return _chilkat.CkCharset_put_Utf8(self, *args)
- def GetHtmlFileCharset(self, *args): return _chilkat.CkCharset_GetHtmlFileCharset(self, *args)
- def GetHtmlCharset(self, *args): return _chilkat.CkCharset_GetHtmlCharset(self, *args)
- def ConvertHtmlFile(self, *args): return _chilkat.CkCharset_ConvertHtmlFile(self, *args)
- def ConvertHtml(self, *args): return _chilkat.CkCharset_ConvertHtml(self, *args)
- def get_LastOutputAsQP(self, *args): return _chilkat.CkCharset_get_LastOutputAsQP(self, *args)
- def get_LastInputAsQP(self, *args): return _chilkat.CkCharset_get_LastInputAsQP(self, *args)
- def get_LastOutputAsHex(self, *args): return _chilkat.CkCharset_get_LastOutputAsHex(self, *args)
- def get_LastInputAsHex(self, *args): return _chilkat.CkCharset_get_LastInputAsHex(self, *args)
- def put_SaveLast(self, *args): return _chilkat.CkCharset_put_SaveLast(self, *args)
- def get_SaveLast(self): return _chilkat.CkCharset_get_SaveLast(self)
- def EntityEncodeHex(self, *args): return _chilkat.CkCharset_EntityEncodeHex(self, *args)
- def EntityEncodeDec(self, *args): return _chilkat.CkCharset_EntityEncodeDec(self, *args)
- def entityEncodeHex(self, *args): return _chilkat.CkCharset_entityEncodeHex(self, *args)
- def entityEncodeDec(self, *args): return _chilkat.CkCharset_entityEncodeDec(self, *args)
- def WriteFile(self, *args): return _chilkat.CkCharset_WriteFile(self, *args)
- def ReadFile(self, *args): return _chilkat.CkCharset_ReadFile(self, *args)
- def ConvertFromUnicode(self, *args): return _chilkat.CkCharset_ConvertFromUnicode(self, *args)
- def ConvertToUnicode(self, *args): return _chilkat.CkCharset_ConvertToUnicode(self, *args)
- def VerifyFile(self, *args): return _chilkat.CkCharset_VerifyFile(self, *args)
- def VerifyData(self, *args): return _chilkat.CkCharset_VerifyData(self, *args)
- def HtmlEntityDecode(self, *args): return _chilkat.CkCharset_HtmlEntityDecode(self, *args)
- def HtmlDecodeToStr(self, *args): return _chilkat.CkCharset_HtmlDecodeToStr(self, *args)
- def HtmlEntityDecodeFile(self, *args): return _chilkat.CkCharset_HtmlEntityDecodeFile(self, *args)
- def ConvertFile(self, *args): return _chilkat.CkCharset_ConvertFile(self, *args)
- def ConvertData(self, *args): return _chilkat.CkCharset_ConvertData(self, *args)
- def get_ToCharset(self, *args): return _chilkat.CkCharset_get_ToCharset(self, *args)
- def put_ToCharset(self, *args): return _chilkat.CkCharset_put_ToCharset(self, *args)
- def get_FromCharset(self, *args): return _chilkat.CkCharset_get_FromCharset(self, *args)
- def put_FromCharset(self, *args): return _chilkat.CkCharset_put_FromCharset(self, *args)
- def get_Version(self, *args): return _chilkat.CkCharset_get_Version(self, *args)
- def UnlockComponent(self, *args): return _chilkat.CkCharset_UnlockComponent(self, *args)
- def IsUnlocked(self): return _chilkat.CkCharset_IsUnlocked(self)
- def SaveLastError(self, *args): return _chilkat.CkCharset_SaveLastError(self, *args)
- def LastErrorXml(self, *args): return _chilkat.CkCharset_LastErrorXml(self, *args)
- def LastErrorHtml(self, *args): return _chilkat.CkCharset_LastErrorHtml(self, *args)
- def LastErrorText(self, *args): return _chilkat.CkCharset_LastErrorText(self, *args)
- def CharsetToCodePage(self, *args): return _chilkat.CkCharset_CharsetToCodePage(self, *args)
- def CodePageToCharset(self, *args): return _chilkat.CkCharset_CodePageToCharset(self, *args)
- def get_ErrorAction(self): return _chilkat.CkCharset_get_ErrorAction(self)
- def put_ErrorAction(self, *args): return _chilkat.CkCharset_put_ErrorAction(self, *args)
- def get_AltToCharset(self, *args): return _chilkat.CkCharset_get_AltToCharset(self, *args)
- def put_AltToCharset(self, *args): return _chilkat.CkCharset_put_AltToCharset(self, *args)
- def SetErrorBytes(self, *args): return _chilkat.CkCharset_SetErrorBytes(self, *args)
- def SetErrorString(self, *args): return _chilkat.CkCharset_SetErrorString(self, *args)
-CkCharset_swigregister = _chilkat.CkCharset_swigregister
-CkCharset_swigregister(CkCharset)
-
-class CkSpider(_object):
- __swig_setmethods__ = {}
- __setattr__ = lambda self, name, value: _swig_setattr(self, CkSpider, name, value)
- __swig_getmethods__ = {}
- __getattr__ = lambda self, name: _swig_getattr(self, CkSpider, name)
- __repr__ = _swig_repr
- def __init__(self):
- this = _chilkat.new_CkSpider()
- try: self.this.append(this)
- except: self.this = this
- __swig_destroy__ = _chilkat.delete_CkSpider
- __del__ = lambda self : None;
- def getAvoidPattern(self, *args): return _chilkat.CkSpider_getAvoidPattern(self, *args)
- def getOutboundLink(self, *args): return _chilkat.CkSpider_getOutboundLink(self, *args)
- def getFailedUrl(self, *args): return _chilkat.CkSpider_getFailedUrl(self, *args)
- def getSpideredUrl(self, *args): return _chilkat.CkSpider_getSpideredUrl(self, *args)
- def getUnspideredUrl(self, *args): return _chilkat.CkSpider_getUnspideredUrl(self, *args)
- def get_ProxyDomain(self, *args): return _chilkat.CkSpider_get_ProxyDomain(self, *args)
- def proxyDomain(self): return _chilkat.CkSpider_proxyDomain(self)
- def put_ProxyDomain(self, *args): return _chilkat.CkSpider_put_ProxyDomain(self, *args)
- def get_ProxyLogin(self, *args): return _chilkat.CkSpider_get_ProxyLogin(self, *args)
- def proxyLogin(self): return _chilkat.CkSpider_proxyLogin(self)
- def put_ProxyLogin(self, *args): return _chilkat.CkSpider_put_ProxyLogin(self, *args)
- def get_ProxyPassword(self, *args): return _chilkat.CkSpider_get_ProxyPassword(self, *args)
- def proxyPassword(self): return _chilkat.CkSpider_proxyPassword(self)
- def put_ProxyPassword(self, *args): return _chilkat.CkSpider_put_ProxyPassword(self, *args)
- def get_ProxyPort(self): return _chilkat.CkSpider_get_ProxyPort(self)
- def put_ProxyPort(self, *args): return _chilkat.CkSpider_put_ProxyPort(self, *args)
- def get_VerboseLogging(self): return _chilkat.CkSpider_get_VerboseLogging(self)
- def put_VerboseLogging(self, *args): return _chilkat.CkSpider_put_VerboseLogging(self, *args)
- def put_UserAgent(self, *args): return _chilkat.CkSpider_put_UserAgent(self, *args)
- def userAgent(self): return _chilkat.CkSpider_userAgent(self)
- def get_UserAgent(self, *args): return _chilkat.CkSpider_get_UserAgent(self, *args)
- def cacheDir(self): return _chilkat.CkSpider_cacheDir(self)
- def avoidPattern(self, *args): return _chilkat.CkSpider_avoidPattern(self, *args)
- def outboundLink(self, *args): return _chilkat.CkSpider_outboundLink(self, *args)
- def failedUrl(self, *args): return _chilkat.CkSpider_failedUrl(self, *args)
- def spideredUrl(self, *args): return _chilkat.CkSpider_spideredUrl(self, *args)
- def unspideredUrl(self, *args): return _chilkat.CkSpider_unspideredUrl(self, *args)
- def domain(self): return _chilkat.CkSpider_domain(self)
- def lastHtmlDescription(self): return _chilkat.CkSpider_lastHtmlDescription(self)
- def lastHtmlKeywords(self): return _chilkat.CkSpider_lastHtmlKeywords(self)
- def lastHtmlTitle(self): return _chilkat.CkSpider_lastHtmlTitle(self)
- def lastHtml(self): return _chilkat.CkSpider_lastHtml(self)
- def lastUrl(self): return _chilkat.CkSpider_lastUrl(self)
- def lastModDateStr(self): return _chilkat.CkSpider_lastModDateStr(self)
- def fetchRobotsText(self): return _chilkat.CkSpider_fetchRobotsText(self)
- def GetDomain(self, *args): return _chilkat.CkSpider_GetDomain(self, *args)
- def GetBaseDomain(self, *args): return _chilkat.CkSpider_GetBaseDomain(self, *args)
- def CanonicalizeUrl(self, *args): return _chilkat.CkSpider_CanonicalizeUrl(self, *args)
- def getDomain(self, *args): return _chilkat.CkSpider_getDomain(self, *args)
- def getBaseDomain(self, *args): return _chilkat.CkSpider_getBaseDomain(self, *args)
- def canonicalizeUrl(self, *args): return _chilkat.CkSpider_canonicalizeUrl(self, *args)
- def lastErrorText(self): return _chilkat.CkSpider_lastErrorText(self)
- def lastErrorXml(self): return _chilkat.CkSpider_lastErrorXml(self)
- def lastErrorHtml(self): return _chilkat.CkSpider_lastErrorHtml(self)
- def get_LastHtmlDescription(self, *args): return _chilkat.CkSpider_get_LastHtmlDescription(self, *args)
- def get_LastHtmlKeywords(self, *args): return _chilkat.CkSpider_get_LastHtmlKeywords(self, *args)
- def get_LastHtmlTitle(self, *args): return _chilkat.CkSpider_get_LastHtmlTitle(self, *args)
- def get_LastHtml(self, *args): return _chilkat.CkSpider_get_LastHtml(self, *args)
- def get_LastFromCache(self): return _chilkat.CkSpider_get_LastFromCache(self)
- def get_LastModDate(self, *args): return _chilkat.CkSpider_get_LastModDate(self, *args)
- def get_LastUrl(self, *args): return _chilkat.CkSpider_get_LastUrl(self, *args)
- def get_LastModDateStr(self, *args): return _chilkat.CkSpider_get_LastModDateStr(self, *args)
- def SleepMs(self, *args): return _chilkat.CkSpider_SleepMs(self, *args)
- def SkipUnspidered(self, *args): return _chilkat.CkSpider_SkipUnspidered(self, *args)
- def FetchRobotsText(self, *args): return _chilkat.CkSpider_FetchRobotsText(self, *args)
- def get_Domain(self, *args): return _chilkat.CkSpider_get_Domain(self, *args)
- def AddMustMatchPattern(self, *args): return _chilkat.CkSpider_AddMustMatchPattern(self, *args)
- def AddAvoidOutboundLinkPattern(self, *args): return _chilkat.CkSpider_AddAvoidOutboundLinkPattern(self, *args)
- def GetAvoidPattern(self, *args): return _chilkat.CkSpider_GetAvoidPattern(self, *args)
- def AddAvoidPattern(self, *args): return _chilkat.CkSpider_AddAvoidPattern(self, *args)
- def GetOutboundLink(self, *args): return _chilkat.CkSpider_GetOutboundLink(self, *args)
- def GetFailedUrl(self, *args): return _chilkat.CkSpider_GetFailedUrl(self, *args)
- def GetSpideredUrl(self, *args): return _chilkat.CkSpider_GetSpideredUrl(self, *args)
- def GetUnspideredUrl(self, *args): return _chilkat.CkSpider_GetUnspideredUrl(self, *args)
- def RecrawlLast(self): return _chilkat.CkSpider_RecrawlLast(self)
- def ClearOutboundLinks(self): return _chilkat.CkSpider_ClearOutboundLinks(self)
- def ClearFailedUrls(self): return _chilkat.CkSpider_ClearFailedUrls(self)
- def ClearSpideredUrls(self): return _chilkat.CkSpider_ClearSpideredUrls(self)
- def get_WindDownCount(self): return _chilkat.CkSpider_get_WindDownCount(self)
- def put_WindDownCount(self, *args): return _chilkat.CkSpider_put_WindDownCount(self, *args)
- def get_NumAvoidPatterns(self): return _chilkat.CkSpider_get_NumAvoidPatterns(self)
- def get_NumOutboundLinks(self): return _chilkat.CkSpider_get_NumOutboundLinks(self)
- def get_NumFailed(self): return _chilkat.CkSpider_get_NumFailed(self)
- def get_NumSpidered(self): return _chilkat.CkSpider_get_NumSpidered(self)
- def get_NumUnspidered(self): return _chilkat.CkSpider_get_NumUnspidered(self)
- def CrawlNext(self): return _chilkat.CkSpider_CrawlNext(self)
- def get_ChopAtQuery(self): return _chilkat.CkSpider_get_ChopAtQuery(self)
- def put_ChopAtQuery(self, *args): return _chilkat.CkSpider_put_ChopAtQuery(self, *args)
- def get_AvoidHttps(self): return _chilkat.CkSpider_get_AvoidHttps(self)
- def put_AvoidHttps(self, *args): return _chilkat.CkSpider_put_AvoidHttps(self, *args)
- def get_MaxResponseSize(self): return _chilkat.CkSpider_get_MaxResponseSize(self)
- def put_MaxResponseSize(self, *args): return _chilkat.CkSpider_put_MaxResponseSize(self, *args)
- def get_MaxUrlLen(self): return _chilkat.CkSpider_get_MaxUrlLen(self)
- def put_MaxUrlLen(self, *args): return _chilkat.CkSpider_put_MaxUrlLen(self, *args)
- def get_CacheDir(self, *args): return _chilkat.CkSpider_get_CacheDir(self, *args)
- def put_CacheDir(self, *args): return _chilkat.CkSpider_put_CacheDir(self, *args)
- def get_UpdateCache(self): return _chilkat.CkSpider_get_UpdateCache(self)
- def put_UpdateCache(self, *args): return _chilkat.CkSpider_put_UpdateCache(self, *args)
- def get_FetchFromCache(self): return _chilkat.CkSpider_get_FetchFromCache(self)
- def put_FetchFromCache(self, *args): return _chilkat.CkSpider_put_FetchFromCache(self, *args)
- def get_ConnectTimeout(self): return _chilkat.CkSpider_get_ConnectTimeout(self)
- def put_ConnectTimeout(self, *args): return _chilkat.CkSpider_put_ConnectTimeout(self, *args)
- def get_ReadTimeout(self): return _chilkat.CkSpider_get_ReadTimeout(self)
- def put_ReadTimeout(self, *args): return _chilkat.CkSpider_put_ReadTimeout(self, *args)
- def AddUnspidered(self, *args): return _chilkat.CkSpider_AddUnspidered(self, *args)
- def Initialize(self, *args): return _chilkat.CkSpider_Initialize(self, *args)
-CkSpider_swigregister = _chilkat.CkSpider_swigregister
-CkSpider_swigregister(CkSpider)
-
-class CkXml(_object):
- __swig_setmethods__ = {}
- __setattr__ = lambda self, name, value: _swig_setattr(self, CkXml, name, value)
- __swig_getmethods__ = {}
- __getattr__ = lambda self, name: _swig_getattr(self, CkXml, name)
- __repr__ = _swig_repr
- def __init__(self):
- this = _chilkat.new_CkXml()
- try: self.this.append(this)
- except: self.this = this
- __swig_destroy__ = _chilkat.delete_CkXml
- __del__ = lambda self : None;
- def GetChildWithContent(self, *args): return _chilkat.CkXml_GetChildWithContent(self, *args)
- def GetChildExact(self, *args): return _chilkat.CkXml_GetChildExact(self, *args)
- def get_ContentInt(self): return _chilkat.CkXml_get_ContentInt(self)
- def put_ContentInt(self, *args): return _chilkat.CkXml_put_ContentInt(self, *args)
- def GetChildBoolValue(self, *args): return _chilkat.CkXml_GetChildBoolValue(self, *args)
- def AddAttributeInt(self, *args): return _chilkat.CkXml_AddAttributeInt(self, *args)
- def DecodeEntities(self, *args): return _chilkat.CkXml_DecodeEntities(self, *args)
- def decodeEntities(self, *args): return _chilkat.CkXml_decodeEntities(self, *args)
- def FindChild2(self, *args): return _chilkat.CkXml_FindChild2(self, *args)
- def GetAttrValueInt(self, *args): return _chilkat.CkXml_GetAttrValueInt(self, *args)
- def GetAttributeValueInt(self, *args): return _chilkat.CkXml_GetAttributeValueInt(self, *args)
- def GetChildTagByIndex(self, *args): return _chilkat.CkXml_GetChildTagByIndex(self, *args)
- def getChildTagByIndex(self, *args): return _chilkat.CkXml_getChildTagByIndex(self, *args)
- def SaveBinaryContent(self, *args): return _chilkat.CkXml_SaveBinaryContent(self, *args)
- def SetBinaryContentFromFile(self, *args): return _chilkat.CkXml_SetBinaryContentFromFile(self, *args)
- def SortByAttributeInt(self, *args): return _chilkat.CkXml_SortByAttributeInt(self, *args)
- def TagEquals(self, *args): return _chilkat.CkXml_TagEquals(self, *args)
- def UpdateAttributeInt(self, *args): return _chilkat.CkXml_UpdateAttributeInt(self, *args)
- def UpdateChildContentInt(self, *args): return _chilkat.CkXml_UpdateChildContentInt(self, *args)
- def AddStyleSheet(self, *args): return _chilkat.CkXml_AddStyleSheet(self, *args)
- def SortRecordsByContentInt(self, *args): return _chilkat.CkXml_SortRecordsByContentInt(self, *args)
- def TagContent(self, *args): return _chilkat.CkXml_TagContent(self, *args)
- def tagContent(self, *args): return _chilkat.CkXml_tagContent(self, *args)
- def GetSelf(self): return _chilkat.CkXml_GetSelf(self)
- def get_DocType(self, *args): return _chilkat.CkXml_get_DocType(self, *args)
- def docType(self): return _chilkat.CkXml_docType(self)
- def put_DocType(self, *args): return _chilkat.CkXml_put_DocType(self, *args)
- def ChilkatPath(self, *args): return _chilkat.CkXml_ChilkatPath(self, *args)
- def chilkatPath(self, *args): return _chilkat.CkXml_chilkatPath(self, *args)
- def tag(self): return _chilkat.CkXml_tag(self)
- def content(self): return _chilkat.CkXml_content(self)
- def encoding(self): return _chilkat.CkXml_encoding(self)
- def getXml(self): return _chilkat.CkXml_getXml(self)
- def lastErrorText(self): return _chilkat.CkXml_lastErrorText(self)
- def lastErrorXml(self): return _chilkat.CkXml_lastErrorXml(self)
- def lastErrorHtml(self): return _chilkat.CkXml_lastErrorHtml(self)
- def getChildContent(self, *args): return _chilkat.CkXml_getChildContent(self, *args)
- def getAttrValue(self, *args): return _chilkat.CkXml_getAttrValue(self, *args)
- def getAttributeValue(self, *args): return _chilkat.CkXml_getAttributeValue(self, *args)
- def getAttributeName(self, *args): return _chilkat.CkXml_getAttributeName(self, *args)
- def version(self): return _chilkat.CkXml_version(self)
- def accumulateTagContent(self, *args): return _chilkat.CkXml_accumulateTagContent(self, *args)
- def getChildContentByIndex(self, *args): return _chilkat.CkXml_getChildContentByIndex(self, *args)
- def getChildTag(self, *args): return _chilkat.CkXml_getChildTag(self, *args)
- def childContent(self, *args): return _chilkat.CkXml_childContent(self, *args)
- def attr(self, *args): return _chilkat.CkXml_attr(self, *args)
- def attrValue(self, *args): return _chilkat.CkXml_attrValue(self, *args)
- def attrName(self, *args): return _chilkat.CkXml_attrName(self, *args)
- def xml(self): return _chilkat.CkXml_xml(self)
- def get_Utf8(self): return _chilkat.CkXml_get_Utf8(self)
- def put_Utf8(self, *args): return _chilkat.CkXml_put_Utf8(self, *args)
- def get_SortCaseInsensitive(self): return _chilkat.CkXml_get_SortCaseInsensitive(self)
- def put_SortCaseInsensitive(self, *args): return _chilkat.CkXml_put_SortCaseInsensitive(self, *args)
- def GetRoot2(self): return _chilkat.CkXml_GetRoot2(self)
- def GetParent2(self): return _chilkat.CkXml_GetParent2(self)
- def FirstChild2(self): return _chilkat.CkXml_FirstChild2(self)
- def LastChild2(self): return _chilkat.CkXml_LastChild2(self)
- def HttpGet(self, *args): return _chilkat.CkXml_HttpGet(self, *args)
- def HttpPost(self, *args): return _chilkat.CkXml_HttpPost(self, *args)
- def SetBinaryContent(self, *args): return _chilkat.CkXml_SetBinaryContent(self, *args)
- def GetBinaryContent(self, *args): return _chilkat.CkXml_GetBinaryContent(self, *args)
- def ZipTree(self): return _chilkat.CkXml_ZipTree(self)
- def ZipContent(self): return _chilkat.CkXml_ZipContent(self)
- def UnzipTree(self): return _chilkat.CkXml_UnzipTree(self)
- def UnzipContent(self): return _chilkat.CkXml_UnzipContent(self)
- def EncryptContent(self, *args): return _chilkat.CkXml_EncryptContent(self, *args)
- def DecryptContent(self, *args): return _chilkat.CkXml_DecryptContent(self, *args)
- def GetRoot(self): return _chilkat.CkXml_GetRoot(self)
- def GetChildWithTag(self, *args): return _chilkat.CkXml_GetChildWithTag(self, *args)
- def get_TreeId(self): return _chilkat.CkXml_get_TreeId(self)
- def PreviousSibling(self): return _chilkat.CkXml_PreviousSibling(self)
- def NextSibling(self): return _chilkat.CkXml_NextSibling(self)
- def PreviousSibling2(self): return _chilkat.CkXml_PreviousSibling2(self)
- def NextSibling2(self): return _chilkat.CkXml_NextSibling2(self)
- def LastChild(self): return _chilkat.CkXml_LastChild(self)
- def FirstChild(self): return _chilkat.CkXml_FirstChild(self)
- def Clear(self): return _chilkat.CkXml_Clear(self)
- def Copy(self, *args): return _chilkat.CkXml_Copy(self, *args)
- def GetParent(self): return _chilkat.CkXml_GetParent(self)
- def SearchForAttribute(self, *args): return _chilkat.CkXml_SearchForAttribute(self, *args)
- def SearchAllForContent(self, *args): return _chilkat.CkXml_SearchAllForContent(self, *args)
- def SearchForContent(self, *args): return _chilkat.CkXml_SearchForContent(self, *args)
- def SearchForTag(self, *args): return _chilkat.CkXml_SearchForTag(self, *args)
- def SearchForAttribute2(self, *args): return _chilkat.CkXml_SearchForAttribute2(self, *args)
- def SearchAllForContent2(self, *args): return _chilkat.CkXml_SearchAllForContent2(self, *args)
- def SearchForContent2(self, *args): return _chilkat.CkXml_SearchForContent2(self, *args)
- def SearchForTag2(self, *args): return _chilkat.CkXml_SearchForTag2(self, *args)
- def GetNthChildWithTag2(self, *args): return _chilkat.CkXml_GetNthChildWithTag2(self, *args)
- def FindChild(self, *args): return _chilkat.CkXml_FindChild(self, *args)
- def FindOrAddNewChild(self, *args): return _chilkat.CkXml_FindOrAddNewChild(self, *args)
- def NewChild(self, *args): return _chilkat.CkXml_NewChild(self, *args)
- def NewChild2(self, *args): return _chilkat.CkXml_NewChild2(self, *args)
- def NewChildInt2(self, *args): return _chilkat.CkXml_NewChildInt2(self, *args)
- def GetNthChildWithTag(self, *args): return _chilkat.CkXml_GetNthChildWithTag(self, *args)
- def NumChildrenHavingTag(self, *args): return _chilkat.CkXml_NumChildrenHavingTag(self, *args)
- def ExtractChildByName(self, *args): return _chilkat.CkXml_ExtractChildByName(self, *args)
- def ExtractChildByIndex(self, *args): return _chilkat.CkXml_ExtractChildByIndex(self, *args)
- def RemoveFromTree(self): return _chilkat.CkXml_RemoveFromTree(self)
- def GetChild(self, *args): return _chilkat.CkXml_GetChild(self, *args)
- def GetChild2(self, *args): return _chilkat.CkXml_GetChild2(self, *args)
- def AddChildTree(self, *args): return _chilkat.CkXml_AddChildTree(self, *args)
- def SwapTree(self, *args): return _chilkat.CkXml_SwapTree(self, *args)
- def SwapNode(self, *args): return _chilkat.CkXml_SwapNode(self, *args)
- def HasAttrWithValue(self, *args): return _chilkat.CkXml_HasAttrWithValue(self, *args)
- def GetAttrValue(self, *args): return _chilkat.CkXml_GetAttrValue(self, *args)
- def GetAttributeValue(self, *args): return _chilkat.CkXml_GetAttributeValue(self, *args)
- def GetAttributeName(self, *args): return _chilkat.CkXml_GetAttributeName(self, *args)
- def RemoveAllAttributes(self): return _chilkat.CkXml_RemoveAllAttributes(self)
- def RemoveChild(self, *args): return _chilkat.CkXml_RemoveChild(self, *args)
- def RemoveAttribute(self, *args): return _chilkat.CkXml_RemoveAttribute(self, *args)
- def AddAttribute(self, *args): return _chilkat.CkXml_AddAttribute(self, *args)
- def AppendToContent(self, *args): return _chilkat.CkXml_AppendToContent(self, *args)
- def GetXml(self, *args): return _chilkat.CkXml_GetXml(self, *args)
- def SaveXml(self, *args): return _chilkat.CkXml_SaveXml(self, *args)
- def LoadXmlFile(self, *args): return _chilkat.CkXml_LoadXmlFile(self, *args)
- def LoadXml(self, *args): return _chilkat.CkXml_LoadXml(self, *args)
- def LoadXmlFile2(self, *args): return _chilkat.CkXml_LoadXmlFile2(self, *args)
- def LoadXml2(self, *args): return _chilkat.CkXml_LoadXml2(self, *args)
- def get_Version(self, *args): return _chilkat.CkXml_get_Version(self, *args)
- def get_Cdata(self): return _chilkat.CkXml_get_Cdata(self)
- def put_Cdata(self, *args): return _chilkat.CkXml_put_Cdata(self, *args)
- def get_NumChildren(self): return _chilkat.CkXml_get_NumChildren(self)
- def get_Content(self, *args): return _chilkat.CkXml_get_Content(self, *args)
- def put_Content(self, *args): return _chilkat.CkXml_put_Content(self, *args)
- def GetChildContent(self, *args): return _chilkat.CkXml_GetChildContent(self, *args)
- def UpdateChildContent(self, *args): return _chilkat.CkXml_UpdateChildContent(self, *args)
- def ContentMatches(self, *args): return _chilkat.CkXml_ContentMatches(self, *args)
- def ChildContentMatches(self, *args): return _chilkat.CkXml_ChildContentMatches(self, *args)
- def get_Tag(self, *args): return _chilkat.CkXml_get_Tag(self, *args)
- def put_Tag(self, *args): return _chilkat.CkXml_put_Tag(self, *args)
- def get_NumAttributes(self): return _chilkat.CkXml_get_NumAttributes(self)
- def get_Standalone(self): return _chilkat.CkXml_get_Standalone(self)
- def put_Standalone(self, *args): return _chilkat.CkXml_put_Standalone(self, *args)
- def get_Encoding(self, *args): return _chilkat.CkXml_get_Encoding(self, *args)
- def put_Encoding(self, *args): return _chilkat.CkXml_put_Encoding(self, *args)
- def SaveLastError(self, *args): return _chilkat.CkXml_SaveLastError(self, *args)
- def LastErrorXml(self, *args): return _chilkat.CkXml_LastErrorXml(self, *args)
- def LastErrorHtml(self, *args): return _chilkat.CkXml_LastErrorHtml(self, *args)
- def LastErrorText(self, *args): return _chilkat.CkXml_LastErrorText(self, *args)
- def QEncodeContent(self, *args): return _chilkat.CkXml_QEncodeContent(self, *args)
- def BEncodeContent(self, *args): return _chilkat.CkXml_BEncodeContent(self, *args)
- def DecodeContent(self, *args): return _chilkat.CkXml_DecodeContent(self, *args)
- def UpdateAttribute(self, *args): return _chilkat.CkXml_UpdateAttribute(self, *args)
- def GetChildIntValue(self, *args): return _chilkat.CkXml_GetChildIntValue(self, *args)
- def SortByTag(self, *args): return _chilkat.CkXml_SortByTag(self, *args)
- def SortByContent(self, *args): return _chilkat.CkXml_SortByContent(self, *args)
- def SortByAttribute(self, *args): return _chilkat.CkXml_SortByAttribute(self, *args)
- def SortRecordsByContent(self, *args): return _chilkat.CkXml_SortRecordsByContent(self, *args)
- def SortRecordsByAttribute(self, *args): return _chilkat.CkXml_SortRecordsByAttribute(self, *args)
- def FindNextRecord(self, *args): return _chilkat.CkXml_FindNextRecord(self, *args)
- def HasChildWithTag(self, *args): return _chilkat.CkXml_HasChildWithTag(self, *args)
- def RemoveChildWithContent(self, *args): return _chilkat.CkXml_RemoveChildWithContent(self, *args)
- def HasChildWithTagAndContent(self, *args): return _chilkat.CkXml_HasChildWithTagAndContent(self, *args)
- def HasChildWithContent(self, *args): return _chilkat.CkXml_HasChildWithContent(self, *args)
- def RemoveAllChildren(self): return _chilkat.CkXml_RemoveAllChildren(self)
- def RemoveChildByIndex(self, *args): return _chilkat.CkXml_RemoveChildByIndex(self, *args)
- def AccumulateTagContent(self, *args): return _chilkat.CkXml_AccumulateTagContent(self, *args)
- def GetChildContentByIndex(self, *args): return _chilkat.CkXml_GetChildContentByIndex(self, *args)
- def GetChildTag(self, *args): return _chilkat.CkXml_GetChildTag(self, *args)
- def AddToAttribute(self, *args): return _chilkat.CkXml_AddToAttribute(self, *args)
- def AddToContent(self, *args): return _chilkat.CkXml_AddToContent(self, *args)
- def AddToChildContent(self, *args): return _chilkat.CkXml_AddToChildContent(self, *args)
- def AddOrUpdateAttributeI(self, *args): return _chilkat.CkXml_AddOrUpdateAttributeI(self, *args)
- def AddOrUpdateAttribute(self, *args): return _chilkat.CkXml_AddOrUpdateAttribute(self, *args)
- def HasAttribute(self, *args): return _chilkat.CkXml_HasAttribute(self, *args)
-CkXml_swigregister = _chilkat.CkXml_swigregister
-CkXml_swigregister(CkXml)
-
-class CkPfx(_object):
- __swig_setmethods__ = {}
- __setattr__ = lambda self, name, value: _swig_setattr(self, CkPfx, name, value)
- __swig_getmethods__ = {}
- __getattr__ = lambda self, name: _swig_getattr(self, CkPfx, name)
- __repr__ = _swig_repr
- def __init__(self):
- this = _chilkat.new_CkPfx()
- try: self.this.append(this)
- except: self.this = this
- __swig_destroy__ = _chilkat.delete_CkPfx
- __del__ = lambda self : None;
- def lastErrorText(self): return _chilkat.CkPfx_lastErrorText(self)
- def lastErrorXml(self): return _chilkat.CkPfx_lastErrorXml(self)
- def lastErrorHtml(self): return _chilkat.CkPfx_lastErrorHtml(self)
- def get_Utf8(self): return _chilkat.CkPfx_get_Utf8(self)
- def put_Utf8(self, *args): return _chilkat.CkPfx_put_Utf8(self, *args)
- def UnlockComponent(self, *args): return _chilkat.CkPfx_UnlockComponent(self, *args)
- def ImportPfxFile(self, *args): return _chilkat.CkPfx_ImportPfxFile(self, *args)
- def SaveLastError(self, *args): return _chilkat.CkPfx_SaveLastError(self, *args)
- def LastErrorXml(self, *args): return _chilkat.CkPfx_LastErrorXml(self, *args)
- def LastErrorHtml(self, *args): return _chilkat.CkPfx_LastErrorHtml(self, *args)
- def LastErrorText(self, *args): return _chilkat.CkPfx_LastErrorText(self, *args)
-CkPfx_swigregister = _chilkat.CkPfx_swigregister
-CkPfx_swigregister(CkPfx)
-
-class CkBounce(_object):
- __swig_setmethods__ = {}
- __setattr__ = lambda self, name, value: _swig_setattr(self, CkBounce, name, value)
- __swig_getmethods__ = {}
- __getattr__ = lambda self, name: _swig_getattr(self, CkBounce, name)
- __repr__ = _swig_repr
- def __init__(self):
- this = _chilkat.new_CkBounce()
- try: self.this.append(this)
- except: self.this = this
- __swig_destroy__ = _chilkat.delete_CkBounce
- __del__ = lambda self : None;
- def lastErrorText(self): return _chilkat.CkBounce_lastErrorText(self)
- def lastErrorXml(self): return _chilkat.CkBounce_lastErrorXml(self)
- def lastErrorHtml(self): return _chilkat.CkBounce_lastErrorHtml(self)
- def bounceAddress(self): return _chilkat.CkBounce_bounceAddress(self)
- def bounceData(self): return _chilkat.CkBounce_bounceData(self)
- def get_Version(self, *args): return _chilkat.CkBounce_get_Version(self, *args)
- def get_Utf8(self): return _chilkat.CkBounce_get_Utf8(self)
- def put_Utf8(self, *args): return _chilkat.CkBounce_put_Utf8(self, *args)
- def UnlockComponent(self, *args): return _chilkat.CkBounce_UnlockComponent(self, *args)
- def ExamineEmail(self, *args): return _chilkat.CkBounce_ExamineEmail(self, *args)
- def ExamineMime(self, *args): return _chilkat.CkBounce_ExamineMime(self, *args)
- def ExamineEml(self, *args): return _chilkat.CkBounce_ExamineEml(self, *args)
- def get_BounceType(self): return _chilkat.CkBounce_get_BounceType(self)
- def get_BounceAddress(self, *args): return _chilkat.CkBounce_get_BounceAddress(self, *args)
- def get_BounceData(self, *args): return _chilkat.CkBounce_get_BounceData(self, *args)
- def SaveLastError(self, *args): return _chilkat.CkBounce_SaveLastError(self, *args)
- def LastErrorXml(self, *args): return _chilkat.CkBounce_LastErrorXml(self, *args)
- def LastErrorHtml(self, *args): return _chilkat.CkBounce_LastErrorHtml(self, *args)
- def LastErrorText(self, *args): return _chilkat.CkBounce_LastErrorText(self, *args)
-CkBounce_swigregister = _chilkat.CkBounce_swigregister
-CkBounce_swigregister(CkBounce)
-
-class CkRarEntry(_object):
- __swig_setmethods__ = {}
- __setattr__ = lambda self, name, value: _swig_setattr(self, CkRarEntry, name, value)
- __swig_getmethods__ = {}
- __getattr__ = lambda self, name: _swig_getattr(self, CkRarEntry, name)
- __repr__ = _swig_repr
- def get_Utf8(self): return _chilkat.CkRarEntry_get_Utf8(self)
- def put_Utf8(self, *args): return _chilkat.CkRarEntry_put_Utf8(self, *args)
- def get_Filename(self, *args): return _chilkat.CkRarEntry_get_Filename(self, *args)
- def get_UncompressedSize(self): return _chilkat.CkRarEntry_get_UncompressedSize(self)
- def get_CompressedSize(self): return _chilkat.CkRarEntry_get_CompressedSize(self)
- def get_LastModified(self, *args): return _chilkat.CkRarEntry_get_LastModified(self, *args)
- def get_IsDirectory(self): return _chilkat.CkRarEntry_get_IsDirectory(self)
- def get_IsReadOnly(self): return _chilkat.CkRarEntry_get_IsReadOnly(self)
- def Unrar(self, *args): return _chilkat.CkRarEntry_Unrar(self, *args)
- def get_Crc(self): return _chilkat.CkRarEntry_get_Crc(self)
- def SaveLastError(self, *args): return _chilkat.CkRarEntry_SaveLastError(self, *args)
- def LastErrorXml(self, *args): return _chilkat.CkRarEntry_LastErrorXml(self, *args)
- def LastErrorHtml(self, *args): return _chilkat.CkRarEntry_LastErrorHtml(self, *args)
- def LastErrorText(self, *args): return _chilkat.CkRarEntry_LastErrorText(self, *args)
- def lastErrorText(self): return _chilkat.CkRarEntry_lastErrorText(self)
- def lastErrorXml(self): return _chilkat.CkRarEntry_lastErrorXml(self)
- def lastErrorHtml(self): return _chilkat.CkRarEntry_lastErrorHtml(self)
- def filename(self): return _chilkat.CkRarEntry_filename(self)
- def __init__(self):
- this = _chilkat.new_CkRarEntry()
- try: self.this.append(this)
- except: self.this = this
- __swig_destroy__ = _chilkat.delete_CkRarEntry
- __del__ = lambda self : None;
-CkRarEntry_swigregister = _chilkat.CkRarEntry_swigregister
-CkRarEntry_swigregister(CkRarEntry)
-
-class CkRar(_object):
- __swig_setmethods__ = {}
- __setattr__ = lambda self, name, value: _swig_setattr(self, CkRar, name, value)
- __swig_getmethods__ = {}
- __getattr__ = lambda self, name: _swig_getattr(self, CkRar, name)
- __repr__ = _swig_repr
- def __init__(self):
- this = _chilkat.new_CkRar()
- try: self.this.append(this)
- except: self.this = this
- __swig_destroy__ = _chilkat.delete_CkRar
- __del__ = lambda self : None;
- def get_Utf8(self): return _chilkat.CkRar_get_Utf8(self)
- def put_Utf8(self, *args): return _chilkat.CkRar_put_Utf8(self, *args)
- def Unrar(self, *args): return _chilkat.CkRar_Unrar(self, *args)
- def FastOpen(self, *args): return _chilkat.CkRar_FastOpen(self, *args)
- def Open(self, *args): return _chilkat.CkRar_Open(self, *args)
- def Close(self): return _chilkat.CkRar_Close(self)
- def get_NumEntries(self): return _chilkat.CkRar_get_NumEntries(self)
- def GetEntryByName(self, *args): return _chilkat.CkRar_GetEntryByName(self, *args)
- def GetEntryByIndex(self, *args): return _chilkat.CkRar_GetEntryByIndex(self, *args)
- def SaveLastError(self, *args): return _chilkat.CkRar_SaveLastError(self, *args)
- def LastErrorXml(self, *args): return _chilkat.CkRar_LastErrorXml(self, *args)
- def LastErrorHtml(self, *args): return _chilkat.CkRar_LastErrorHtml(self, *args)
- def LastErrorText(self, *args): return _chilkat.CkRar_LastErrorText(self, *args)
- def lastErrorText(self): return _chilkat.CkRar_lastErrorText(self)
- def lastErrorXml(self): return _chilkat.CkRar_lastErrorXml(self)
- def lastErrorHtml(self): return _chilkat.CkRar_lastErrorHtml(self)
-CkRar_swigregister = _chilkat.CkRar_swigregister
-CkRar_swigregister(CkRar)
-
-class CkRss(_object):
- __swig_setmethods__ = {}
- __setattr__ = lambda self, name, value: _swig_setattr(self, CkRss, name, value)
- __swig_getmethods__ = {}
- __getattr__ = lambda self, name: _swig_getattr(self, CkRss, name)
- __repr__ = _swig_repr
- def __init__(self):
- this = _chilkat.new_CkRss()
- try: self.this.append(this)
- except: self.this = this
- __swig_destroy__ = _chilkat.delete_CkRss
- __del__ = lambda self : None;
- def get_Utf8(self): return _chilkat.CkRss_get_Utf8(self)
- def put_Utf8(self, *args): return _chilkat.CkRss_put_Utf8(self, *args)
- def get_NumChannels(self): return _chilkat.CkRss_get_NumChannels(self)
- def get_NumItems(self): return _chilkat.CkRss_get_NumItems(self)
- def AddNewChannel(self): return _chilkat.CkRss_AddNewChannel(self)
- def AddNewImage(self): return _chilkat.CkRss_AddNewImage(self)
- def AddNewItem(self): return _chilkat.CkRss_AddNewItem(self)
- def DownloadRss(self, *args): return _chilkat.CkRss_DownloadRss(self, *args)
- def GetAttr(self, *args): return _chilkat.CkRss_GetAttr(self, *args)
- def getAttr(self, *args): return _chilkat.CkRss_getAttr(self, *args)
- def GetChannel(self, *args): return _chilkat.CkRss_GetChannel(self, *args)
- def GetCount(self, *args): return _chilkat.CkRss_GetCount(self, *args)
- def GetDate(self, *args): return _chilkat.CkRss_GetDate(self, *args)
- def GetImage(self): return _chilkat.CkRss_GetImage(self)
- def GetInt(self, *args): return _chilkat.CkRss_GetInt(self, *args)
- def GetItem(self, *args): return _chilkat.CkRss_GetItem(self, *args)
- def GetString(self, *args): return _chilkat.CkRss_GetString(self, *args)
- def getString(self, *args): return _chilkat.CkRss_getString(self, *args)
- def LoadRssFile(self, *args): return _chilkat.CkRss_LoadRssFile(self, *args)
- def LoadRssString(self, *args): return _chilkat.CkRss_LoadRssString(self, *args)
- def MGetAttr(self, *args): return _chilkat.CkRss_MGetAttr(self, *args)
- def mGetAttr(self, *args): return _chilkat.CkRss_mGetAttr(self, *args)
- def MGetString(self, *args): return _chilkat.CkRss_MGetString(self, *args)
- def mGetString(self, *args): return _chilkat.CkRss_mGetString(self, *args)
- def MSetAttr(self, *args): return _chilkat.CkRss_MSetAttr(self, *args)
- def MSetString(self, *args): return _chilkat.CkRss_MSetString(self, *args)
- def NewRss(self): return _chilkat.CkRss_NewRss(self)
- def Remove(self, *args): return _chilkat.CkRss_Remove(self, *args)
- def SetAttr(self, *args): return _chilkat.CkRss_SetAttr(self, *args)
- def SetDate(self, *args): return _chilkat.CkRss_SetDate(self, *args)
- def SetDateNow(self, *args): return _chilkat.CkRss_SetDateNow(self, *args)
- def SetInt(self, *args): return _chilkat.CkRss_SetInt(self, *args)
- def SetString(self, *args): return _chilkat.CkRss_SetString(self, *args)
- def ToXmlString(self, *args): return _chilkat.CkRss_ToXmlString(self, *args)
- def toXmlString(self): return _chilkat.CkRss_toXmlString(self)
- def SaveLastError(self, *args): return _chilkat.CkRss_SaveLastError(self, *args)
- def LastErrorXml(self, *args): return _chilkat.CkRss_LastErrorXml(self, *args)
- def LastErrorHtml(self, *args): return _chilkat.CkRss_LastErrorHtml(self, *args)
- def LastErrorText(self, *args): return _chilkat.CkRss_LastErrorText(self, *args)
- def lastErrorText(self): return _chilkat.CkRss_lastErrorText(self)
- def lastErrorXml(self): return _chilkat.CkRss_lastErrorXml(self)
- def lastErrorHtml(self): return _chilkat.CkRss_lastErrorHtml(self)
-CkRss_swigregister = _chilkat.CkRss_swigregister
-CkRss_swigregister(CkRss)
-
-class CkAtom(_object):
- __swig_setmethods__ = {}
- __setattr__ = lambda self, name, value: _swig_setattr(self, CkAtom, name, value)
- __swig_getmethods__ = {}
- __getattr__ = lambda self, name: _swig_getattr(self, CkAtom, name)
- __repr__ = _swig_repr
- def __init__(self):
- this = _chilkat.new_CkAtom()
- try: self.this.append(this)
- except: self.this = this
- __swig_destroy__ = _chilkat.delete_CkAtom
- __del__ = lambda self : None;
- def get_Utf8(self): return _chilkat.CkAtom_get_Utf8(self)
- def put_Utf8(self, *args): return _chilkat.CkAtom_put_Utf8(self, *args)
- def get_NumEntries(self): return _chilkat.CkAtom_get_NumEntries(self)
- def AddElement(self, *args): return _chilkat.CkAtom_AddElement(self, *args)
- def AddElementDate(self, *args): return _chilkat.CkAtom_AddElementDate(self, *args)
- def AddElementHtml(self, *args): return _chilkat.CkAtom_AddElementHtml(self, *args)
- def AddElementXHtml(self, *args): return _chilkat.CkAtom_AddElementXHtml(self, *args)
- def AddElementXml(self, *args): return _chilkat.CkAtom_AddElementXml(self, *args)
- def AddEntry(self, *args): return _chilkat.CkAtom_AddEntry(self, *args)
- def AddLink(self, *args): return _chilkat.CkAtom_AddLink(self, *args)
- def AddPerson(self, *args): return _chilkat.CkAtom_AddPerson(self, *args)
- def DeleteElement(self, *args): return _chilkat.CkAtom_DeleteElement(self, *args)
- def DeleteElementAttr(self, *args): return _chilkat.CkAtom_DeleteElementAttr(self, *args)
- def DeletePerson(self, *args): return _chilkat.CkAtom_DeletePerson(self, *args)
- def DownloadAtom(self, *args): return _chilkat.CkAtom_DownloadAtom(self, *args)
- def GetElement(self, *args): return _chilkat.CkAtom_GetElement(self, *args)
- def getElement(self, *args): return _chilkat.CkAtom_getElement(self, *args)
- def GetElementAttr(self, *args): return _chilkat.CkAtom_GetElementAttr(self, *args)
- def getElementAttr(self, *args): return _chilkat.CkAtom_getElementAttr(self, *args)
- def GetElementCount(self, *args): return _chilkat.CkAtom_GetElementCount(self, *args)
- def GetElementDate(self, *args): return _chilkat.CkAtom_GetElementDate(self, *args)
- def GetEntry(self, *args): return _chilkat.CkAtom_GetEntry(self, *args)
- def GetLinkHref(self, *args): return _chilkat.CkAtom_GetLinkHref(self, *args)
- def getLinkHref(self, *args): return _chilkat.CkAtom_getLinkHref(self, *args)
- def GetPersonInfo(self, *args): return _chilkat.CkAtom_GetPersonInfo(self, *args)
- def getPersonInfo(self, *args): return _chilkat.CkAtom_getPersonInfo(self, *args)
- def GetTopAttr(self, *args): return _chilkat.CkAtom_GetTopAttr(self, *args)
- def getTopAttr(self, *args): return _chilkat.CkAtom_getTopAttr(self, *args)
- def HasElement(self, *args): return _chilkat.CkAtom_HasElement(self, *args)
- def LoadXml(self, *args): return _chilkat.CkAtom_LoadXml(self, *args)
- def NewEntry(self): return _chilkat.CkAtom_NewEntry(self)
- def NewFeed(self): return _chilkat.CkAtom_NewFeed(self)
- def SetElementAttr(self, *args): return _chilkat.CkAtom_SetElementAttr(self, *args)
- def SetTopAttr(self, *args): return _chilkat.CkAtom_SetTopAttr(self, *args)
- def ToXmlString(self, *args): return _chilkat.CkAtom_ToXmlString(self, *args)
- def toXmlString(self): return _chilkat.CkAtom_toXmlString(self)
- def UpdateElement(self, *args): return _chilkat.CkAtom_UpdateElement(self, *args)
- def UpdateElementDate(self, *args): return _chilkat.CkAtom_UpdateElementDate(self, *args)
- def UpdateElementHtml(self, *args): return _chilkat.CkAtom_UpdateElementHtml(self, *args)
- def UpdateElementXHtml(self, *args): return _chilkat.CkAtom_UpdateElementXHtml(self, *args)
- def UpdateElementXml(self, *args): return _chilkat.CkAtom_UpdateElementXml(self, *args)
- def UpdatePerson(self, *args): return _chilkat.CkAtom_UpdatePerson(self, *args)
- def SaveLastError(self, *args): return _chilkat.CkAtom_SaveLastError(self, *args)
- def LastErrorXml(self, *args): return _chilkat.CkAtom_LastErrorXml(self, *args)
- def LastErrorHtml(self, *args): return _chilkat.CkAtom_LastErrorHtml(self, *args)
- def LastErrorText(self, *args): return _chilkat.CkAtom_LastErrorText(self, *args)
- def lastErrorText(self): return _chilkat.CkAtom_lastErrorText(self)
- def lastErrorXml(self): return _chilkat.CkAtom_lastErrorXml(self)
- def lastErrorHtml(self): return _chilkat.CkAtom_lastErrorHtml(self)
-CkAtom_swigregister = _chilkat.CkAtom_swigregister
-CkAtom_swigregister(CkAtom)
-
-class CkCache(_object):
- __swig_setmethods__ = {}
- __setattr__ = lambda self, name, value: _swig_setattr(self, CkCache, name, value)
- __swig_getmethods__ = {}
- __getattr__ = lambda self, name: _swig_getattr(self, CkCache, name)
- __repr__ = _swig_repr
- def __init__(self):
- this = _chilkat.new_CkCache()
- try: self.this.append(this)
- except: self.this = this
- __swig_destroy__ = _chilkat.delete_CkCache
- __del__ = lambda self : None;
- def get_Utf8(self): return _chilkat.CkCache_get_Utf8(self)
- def put_Utf8(self, *args): return _chilkat.CkCache_put_Utf8(self, *args)
- def get_LastEtagFetched(self, *args): return _chilkat.CkCache_get_LastEtagFetched(self, *args)
- def lastEtagFetched(self): return _chilkat.CkCache_lastEtagFetched(self)
- def get_LastExpirationFetched(self, *args): return _chilkat.CkCache_get_LastExpirationFetched(self, *args)
- def get_LastHitExpired(self): return _chilkat.CkCache_get_LastHitExpired(self)
- def get_LastKeyFetched(self, *args): return _chilkat.CkCache_get_LastKeyFetched(self, *args)
- def lastKeyFetched(self): return _chilkat.CkCache_lastKeyFetched(self)
- def get_Level(self): return _chilkat.CkCache_get_Level(self)
- def put_Level(self, *args): return _chilkat.CkCache_put_Level(self, *args)
- def get_NumRoots(self): return _chilkat.CkCache_get_NumRoots(self)
- def AddRoot(self, *args): return _chilkat.CkCache_AddRoot(self, *args)
- def DeleteAll(self): return _chilkat.CkCache_DeleteAll(self)
- def DeleteAllExpired(self): return _chilkat.CkCache_DeleteAllExpired(self)
- def DeleteFromCache(self, *args): return _chilkat.CkCache_DeleteFromCache(self, *args)
- def DeleteOlder(self, *args): return _chilkat.CkCache_DeleteOlder(self, *args)
- def FetchFromCache(self, *args): return _chilkat.CkCache_FetchFromCache(self, *args)
- def GetEtag(self, *args): return _chilkat.CkCache_GetEtag(self, *args)
- def getEtag(self, *args): return _chilkat.CkCache_getEtag(self, *args)
- def GetExpiration(self, *args): return _chilkat.CkCache_GetExpiration(self, *args)
- def GetFilename(self, *args): return _chilkat.CkCache_GetFilename(self, *args)
- def getFilename(self, *args): return _chilkat.CkCache_getFilename(self, *args)
- def GetRoot(self, *args): return _chilkat.CkCache_GetRoot(self, *args)
- def getRoot(self, *args): return _chilkat.CkCache_getRoot(self, *args)
- def IsCached(self, *args): return _chilkat.CkCache_IsCached(self, *args)
- def SaveToCache(self, *args): return _chilkat.CkCache_SaveToCache(self, *args)
- def SaveToCacheNoExpire(self, *args): return _chilkat.CkCache_SaveToCacheNoExpire(self, *args)
- def UpdateExpiration(self, *args): return _chilkat.CkCache_UpdateExpiration(self, *args)
- def FetchText(self, *args): return _chilkat.CkCache_FetchText(self, *args)
- def fetchText(self, *args): return _chilkat.CkCache_fetchText(self, *args)
- def SaveText(self, *args): return _chilkat.CkCache_SaveText(self, *args)
- def SaveTextNoExpire(self, *args): return _chilkat.CkCache_SaveTextNoExpire(self, *args)
- def SaveLastError(self, *args): return _chilkat.CkCache_SaveLastError(self, *args)
- def LastErrorXml(self, *args): return _chilkat.CkCache_LastErrorXml(self, *args)
- def LastErrorHtml(self, *args): return _chilkat.CkCache_LastErrorHtml(self, *args)
- def LastErrorText(self, *args): return _chilkat.CkCache_LastErrorText(self, *args)
- def lastErrorText(self): return _chilkat.CkCache_lastErrorText(self)
- def lastErrorXml(self): return _chilkat.CkCache_lastErrorXml(self)
- def lastErrorHtml(self): return _chilkat.CkCache_lastErrorHtml(self)
-CkCache_swigregister = _chilkat.CkCache_swigregister
-CkCache_swigregister(CkCache)
-
-class CkDh(_object):
- __swig_setmethods__ = {}
- __setattr__ = lambda self, name, value: _swig_setattr(self, CkDh, name, value)
- __swig_getmethods__ = {}
- __getattr__ = lambda self, name: _swig_getattr(self, CkDh, name)
- __repr__ = _swig_repr
- def __init__(self):
- this = _chilkat.new_CkDh()
- try: self.this.append(this)
- except: self.this = this
- __swig_destroy__ = _chilkat.delete_CkDh
- __del__ = lambda self : None;
- def get_Utf8(self): return _chilkat.CkDh_get_Utf8(self)
- def put_Utf8(self, *args): return _chilkat.CkDh_put_Utf8(self, *args)
- def UseKnownPrime(self, *args): return _chilkat.CkDh_UseKnownPrime(self, *args)
- def get_G(self): return _chilkat.CkDh_get_G(self)
- def get_P(self, *args): return _chilkat.CkDh_get_P(self, *args)
- def p(self): return _chilkat.CkDh_p(self)
- def SetPG(self, *args): return _chilkat.CkDh_SetPG(self, *args)
- def CreateE(self, *args): return _chilkat.CkDh_CreateE(self, *args)
- def createE(self, *args): return _chilkat.CkDh_createE(self, *args)
- def FindK(self, *args): return _chilkat.CkDh_FindK(self, *args)
- def findK(self, *args): return _chilkat.CkDh_findK(self, *args)
- def GenPG(self, *args): return _chilkat.CkDh_GenPG(self, *args)
- def get_Version(self, *args): return _chilkat.CkDh_get_Version(self, *args)
- def version(self): return _chilkat.CkDh_version(self)
- def UnlockComponent(self, *args): return _chilkat.CkDh_UnlockComponent(self, *args)
- def SaveLastError(self, *args): return _chilkat.CkDh_SaveLastError(self, *args)
- def LastErrorXml(self, *args): return _chilkat.CkDh_LastErrorXml(self, *args)
- def LastErrorHtml(self, *args): return _chilkat.CkDh_LastErrorHtml(self, *args)
- def LastErrorText(self, *args): return _chilkat.CkDh_LastErrorText(self, *args)
- def lastErrorText(self): return _chilkat.CkDh_lastErrorText(self)
- def lastErrorXml(self): return _chilkat.CkDh_lastErrorXml(self)
- def lastErrorHtml(self): return _chilkat.CkDh_lastErrorHtml(self)
-CkDh_swigregister = _chilkat.CkDh_swigregister
-CkDh_swigregister(CkDh)
-
-class CkDsa(_object):
- __swig_setmethods__ = {}
- __setattr__ = lambda self, name, value: _swig_setattr(self, CkDsa, name, value)
- __swig_getmethods__ = {}
- __getattr__ = lambda self, name: _swig_getattr(self, CkDsa, name)
- __repr__ = _swig_repr
- def __init__(self):
- this = _chilkat.new_CkDsa()
- try: self.this.append(this)
- except: self.this = this
- __swig_destroy__ = _chilkat.delete_CkDsa
- __del__ = lambda self : None;
- def get_Utf8(self): return _chilkat.CkDsa_get_Utf8(self)
- def put_Utf8(self, *args): return _chilkat.CkDsa_put_Utf8(self, *args)
- def get_GroupSize(self): return _chilkat.CkDsa_get_GroupSize(self)
- def put_GroupSize(self, *args): return _chilkat.CkDsa_put_GroupSize(self, *args)
- def GenKey(self, *args): return _chilkat.CkDsa_GenKey(self, *args)
- def GenKeyFromParamsDerFile(self, *args): return _chilkat.CkDsa_GenKeyFromParamsDerFile(self, *args)
- def GenKeyFromParamsPemFile(self, *args): return _chilkat.CkDsa_GenKeyFromParamsPemFile(self, *args)
- def GenKeyFromParamsDer(self, *args): return _chilkat.CkDsa_GenKeyFromParamsDer(self, *args)
- def GenKeyFromParamsPem(self, *args): return _chilkat.CkDsa_GenKeyFromParamsPem(self, *args)
- def UnlockComponent(self, *args): return _chilkat.CkDsa_UnlockComponent(self, *args)
- def VerifyKey(self): return _chilkat.CkDsa_VerifyKey(self)
- def ToXml(self, *args): return _chilkat.CkDsa_ToXml(self, *args)
- def toXml(self, *args): return _chilkat.CkDsa_toXml(self, *args)
- def FromXml(self, *args): return _chilkat.CkDsa_FromXml(self, *args)
- def FromEncryptedPem(self, *args): return _chilkat.CkDsa_FromEncryptedPem(self, *args)
- def FromPem(self, *args): return _chilkat.CkDsa_FromPem(self, *args)
- def SaveText(self, *args): return _chilkat.CkDsa_SaveText(self, *args)
- def ToEncryptedPem(self, *args): return _chilkat.CkDsa_ToEncryptedPem(self, *args)
- def toEncryptedPem(self, *args): return _chilkat.CkDsa_toEncryptedPem(self, *args)
- def ToPem(self, *args): return _chilkat.CkDsa_ToPem(self, *args)
- def toPem(self): return _chilkat.CkDsa_toPem(self)
- def ToDer(self, *args): return _chilkat.CkDsa_ToDer(self, *args)
- def ToDerFile(self, *args): return _chilkat.CkDsa_ToDerFile(self, *args)
- def FromDer(self, *args): return _chilkat.CkDsa_FromDer(self, *args)
- def FromDerFile(self, *args): return _chilkat.CkDsa_FromDerFile(self, *args)
- def FromPublicPem(self, *args): return _chilkat.CkDsa_FromPublicPem(self, *args)
- def ToPublicPem(self, *args): return _chilkat.CkDsa_ToPublicPem(self, *args)
- def toPublicPem(self): return _chilkat.CkDsa_toPublicPem(self)
- def get_Hash(self, *args): return _chilkat.CkDsa_get_Hash(self, *args)
- def put_Hash(self, *args): return _chilkat.CkDsa_put_Hash(self, *args)
- def get_Signature(self, *args): return _chilkat.CkDsa_get_Signature(self, *args)
- def put_Signature(self, *args): return _chilkat.CkDsa_put_Signature(self, *args)
- def SetEncodedHash(self, *args): return _chilkat.CkDsa_SetEncodedHash(self, *args)
- def SetEncodedSignature(self, *args): return _chilkat.CkDsa_SetEncodedSignature(self, *args)
- def GetEncodedSignature(self, *args): return _chilkat.CkDsa_GetEncodedSignature(self, *args)
- def getEncodedSignature(self, *args): return _chilkat.CkDsa_getEncodedSignature(self, *args)
- def GetEncodedHash(self, *args): return _chilkat.CkDsa_GetEncodedHash(self, *args)
- def getEncodedHash(self, *args): return _chilkat.CkDsa_getEncodedHash(self, *args)
- def SignHash(self): return _chilkat.CkDsa_SignHash(self)
- def Verify(self): return _chilkat.CkDsa_Verify(self)
- def SetKeyExplicit(self, *args): return _chilkat.CkDsa_SetKeyExplicit(self, *args)
- def ToPublicDerFile(self, *args): return _chilkat.CkDsa_ToPublicDerFile(self, *args)
- def ToPublicDer(self, *args): return _chilkat.CkDsa_ToPublicDer(self, *args)
- def FromPublicDer(self, *args): return _chilkat.CkDsa_FromPublicDer(self, *args)
- def FromPublicDerFile(self, *args): return _chilkat.CkDsa_FromPublicDerFile(self, *args)
- def get_HexP(self, *args): return _chilkat.CkDsa_get_HexP(self, *args)
- def hexP(self): return _chilkat.CkDsa_hexP(self)
- def get_HexQ(self, *args): return _chilkat.CkDsa_get_HexQ(self, *args)
- def hexQ(self): return _chilkat.CkDsa_hexQ(self)
- def get_HexG(self, *args): return _chilkat.CkDsa_get_HexG(self, *args)
- def hexG(self): return _chilkat.CkDsa_hexG(self)
- def get_HexX(self, *args): return _chilkat.CkDsa_get_HexX(self, *args)
- def hexX(self): return _chilkat.CkDsa_hexX(self)
- def get_HexY(self, *args): return _chilkat.CkDsa_get_HexY(self, *args)
- def hexY(self): return _chilkat.CkDsa_hexY(self)
- def SetPubKeyExplicit(self, *args): return _chilkat.CkDsa_SetPubKeyExplicit(self, *args)
- def get_Version(self, *args): return _chilkat.CkDsa_get_Version(self, *args)
- def version(self): return _chilkat.CkDsa_version(self)
- def LoadText(self, *args): return _chilkat.CkDsa_LoadText(self, *args)
- def loadText(self, *args): return _chilkat.CkDsa_loadText(self, *args)
- def SaveLastError(self, *args): return _chilkat.CkDsa_SaveLastError(self, *args)
- def LastErrorXml(self, *args): return _chilkat.CkDsa_LastErrorXml(self, *args)
- def LastErrorHtml(self, *args): return _chilkat.CkDsa_LastErrorHtml(self, *args)
- def LastErrorText(self, *args): return _chilkat.CkDsa_LastErrorText(self, *args)
- def lastErrorText(self): return _chilkat.CkDsa_lastErrorText(self)
- def lastErrorXml(self): return _chilkat.CkDsa_lastErrorXml(self)
- def lastErrorHtml(self): return _chilkat.CkDsa_lastErrorHtml(self)
-CkDsa_swigregister = _chilkat.CkDsa_swigregister
-CkDsa_swigregister(CkDsa)
-
-class CkSFtpFile(_object):
- __swig_setmethods__ = {}
- __setattr__ = lambda self, name, value: _swig_setattr(self, CkSFtpFile, name, value)
- __swig_getmethods__ = {}
- __getattr__ = lambda self, name: _swig_getattr(self, CkSFtpFile, name)
- __repr__ = _swig_repr
- def __init__(self):
- this = _chilkat.new_CkSFtpFile()
- try: self.this.append(this)
- except: self.this = this
- __swig_destroy__ = _chilkat.delete_CkSFtpFile
- __del__ = lambda self : None;
- def get_Utf8(self): return _chilkat.CkSFtpFile_get_Utf8(self)
- def put_Utf8(self, *args): return _chilkat.CkSFtpFile_put_Utf8(self, *args)
- def SaveLastError(self, *args): return _chilkat.CkSFtpFile_SaveLastError(self, *args)
- def LastErrorXml(self, *args): return _chilkat.CkSFtpFile_LastErrorXml(self, *args)
- def LastErrorHtml(self, *args): return _chilkat.CkSFtpFile_LastErrorHtml(self, *args)
- def LastErrorText(self, *args): return _chilkat.CkSFtpFile_LastErrorText(self, *args)
- def lastErrorText(self): return _chilkat.CkSFtpFile_lastErrorText(self)
- def lastErrorXml(self): return _chilkat.CkSFtpFile_lastErrorXml(self)
- def lastErrorHtml(self): return _chilkat.CkSFtpFile_lastErrorHtml(self)
- def get_Filename(self, *args): return _chilkat.CkSFtpFile_get_Filename(self, *args)
- def filename(self): return _chilkat.CkSFtpFile_filename(self)
- def get_Owner(self, *args): return _chilkat.CkSFtpFile_get_Owner(self, *args)
- def owner(self): return _chilkat.CkSFtpFile_owner(self)
- def get_Group(self, *args): return _chilkat.CkSFtpFile_get_Group(self, *args)
- def group(self): return _chilkat.CkSFtpFile_group(self)
- def get_FileType(self, *args): return _chilkat.CkSFtpFile_get_FileType(self, *args)
- def fileType(self): return _chilkat.CkSFtpFile_fileType(self)
- def get_IsRegular(self): return _chilkat.CkSFtpFile_get_IsRegular(self)
- def get_IsDirectory(self): return _chilkat.CkSFtpFile_get_IsDirectory(self)
- def get_IsSymLink(self): return _chilkat.CkSFtpFile_get_IsSymLink(self)
- def get_IsReadOnly(self): return _chilkat.CkSFtpFile_get_IsReadOnly(self)
- def get_IsSystem(self): return _chilkat.CkSFtpFile_get_IsSystem(self)
- def get_IsHidden(self): return _chilkat.CkSFtpFile_get_IsHidden(self)
- def get_IsCaseInsensitive(self): return _chilkat.CkSFtpFile_get_IsCaseInsensitive(self)
- def get_IsArchive(self): return _chilkat.CkSFtpFile_get_IsArchive(self)
- def get_IsEncrypted(self): return _chilkat.CkSFtpFile_get_IsEncrypted(self)
- def get_IsCompressed(self): return _chilkat.CkSFtpFile_get_IsCompressed(self)
- def get_IsSparse(self): return _chilkat.CkSFtpFile_get_IsSparse(self)
- def get_IsAppendOnly(self): return _chilkat.CkSFtpFile_get_IsAppendOnly(self)
- def get_IsImmutable(self): return _chilkat.CkSFtpFile_get_IsImmutable(self)
- def get_IsSync(self): return _chilkat.CkSFtpFile_get_IsSync(self)
- def get_Permissions(self): return _chilkat.CkSFtpFile_get_Permissions(self)
- def get_Size32(self): return _chilkat.CkSFtpFile_get_Size32(self)
- def get_LastModifiedTime(self, *args): return _chilkat.CkSFtpFile_get_LastModifiedTime(self, *args)
- def get_LastAccessTime(self, *args): return _chilkat.CkSFtpFile_get_LastAccessTime(self, *args)
- def get_CreateTime(self, *args): return _chilkat.CkSFtpFile_get_CreateTime(self, *args)
- def get_SizeStr(self, *args): return _chilkat.CkSFtpFile_get_SizeStr(self, *args)
- def sizeStr(self): return _chilkat.CkSFtpFile_sizeStr(self)
- def get_Uid(self): return _chilkat.CkSFtpFile_get_Uid(self)
- def get_Gid(self): return _chilkat.CkSFtpFile_get_Gid(self)
-CkSFtpFile_swigregister = _chilkat.CkSFtpFile_swigregister
-CkSFtpFile_swigregister(CkSFtpFile)
-
-class CkSFtpDir(_object):
- __swig_setmethods__ = {}
- __setattr__ = lambda self, name, value: _swig_setattr(self, CkSFtpDir, name, value)
- __swig_getmethods__ = {}
- __getattr__ = lambda self, name: _swig_getattr(self, CkSFtpDir, name)
- __repr__ = _swig_repr
- def __init__(self):
- this = _chilkat.new_CkSFtpDir()
- try: self.this.append(this)
- except: self.this = this
- __swig_destroy__ = _chilkat.delete_CkSFtpDir
- __del__ = lambda self : None;
- def get_Utf8(self): return _chilkat.CkSFtpDir_get_Utf8(self)
- def put_Utf8(self, *args): return _chilkat.CkSFtpDir_put_Utf8(self, *args)
- def SaveLastError(self, *args): return _chilkat.CkSFtpDir_SaveLastError(self, *args)
- def LastErrorXml(self, *args): return _chilkat.CkSFtpDir_LastErrorXml(self, *args)
- def LastErrorHtml(self, *args): return _chilkat.CkSFtpDir_LastErrorHtml(self, *args)
- def LastErrorText(self, *args): return _chilkat.CkSFtpDir_LastErrorText(self, *args)
- def lastErrorText(self): return _chilkat.CkSFtpDir_lastErrorText(self)
- def lastErrorXml(self): return _chilkat.CkSFtpDir_lastErrorXml(self)
- def lastErrorHtml(self): return _chilkat.CkSFtpDir_lastErrorHtml(self)
- def get_NumFilesAndDirs(self): return _chilkat.CkSFtpDir_get_NumFilesAndDirs(self)
- def get_OriginalPath(self, *args): return _chilkat.CkSFtpDir_get_OriginalPath(self, *args)
- def originalPath(self): return _chilkat.CkSFtpDir_originalPath(self)
- def GetFileObject(self, *args): return _chilkat.CkSFtpDir_GetFileObject(self, *args)
- def GetFilename(self, *args): return _chilkat.CkSFtpDir_GetFilename(self, *args)
- def getFilename(self, *args): return _chilkat.CkSFtpDir_getFilename(self, *args)
-CkSFtpDir_swigregister = _chilkat.CkSFtpDir_swigregister
-CkSFtpDir_swigregister(CkSFtpDir)
-
-class CkSFtp(_object):
- __swig_setmethods__ = {}
- __setattr__ = lambda self, name, value: _swig_setattr(self, CkSFtp, name, value)
- __swig_getmethods__ = {}
- __getattr__ = lambda self, name: _swig_getattr(self, CkSFtp, name)
- __repr__ = _swig_repr
- def __init__(self):
- this = _chilkat.new_CkSFtp()
- try: self.this.append(this)
- except: self.this = this
- __swig_destroy__ = _chilkat.delete_CkSFtp
- __del__ = lambda self : None;
- def get_Utf8(self): return _chilkat.CkSFtp_get_Utf8(self)
- def put_Utf8(self, *args): return _chilkat.CkSFtp_put_Utf8(self, *args)
- def SaveLastError(self, *args): return _chilkat.CkSFtp_SaveLastError(self, *args)
- def LastErrorXml(self, *args): return _chilkat.CkSFtp_LastErrorXml(self, *args)
- def LastErrorHtml(self, *args): return _chilkat.CkSFtp_LastErrorHtml(self, *args)
- def LastErrorText(self, *args): return _chilkat.CkSFtp_LastErrorText(self, *args)
- def lastErrorText(self): return _chilkat.CkSFtp_lastErrorText(self)
- def lastErrorXml(self): return _chilkat.CkSFtp_lastErrorXml(self)
- def lastErrorHtml(self): return _chilkat.CkSFtp_lastErrorHtml(self)
- def UnlockComponent(self, *args): return _chilkat.CkSFtp_UnlockComponent(self, *args)
- def get_ConnectTimeoutMs(self): return _chilkat.CkSFtp_get_ConnectTimeoutMs(self)
- def put_ConnectTimeoutMs(self, *args): return _chilkat.CkSFtp_put_ConnectTimeoutMs(self, *args)
- def get_DisconnectCode(self): return _chilkat.CkSFtp_get_DisconnectCode(self)
- def get_InitializeFailCode(self): return _chilkat.CkSFtp_get_InitializeFailCode(self)
- def get_MaxPacketSize(self): return _chilkat.CkSFtp_get_MaxPacketSize(self)
- def put_MaxPacketSize(self, *args): return _chilkat.CkSFtp_put_MaxPacketSize(self, *args)
- def get_IdleTimeoutMs(self): return _chilkat.CkSFtp_get_IdleTimeoutMs(self)
- def put_IdleTimeoutMs(self, *args): return _chilkat.CkSFtp_put_IdleTimeoutMs(self, *args)
- def get_InitializeFailReason(self, *args): return _chilkat.CkSFtp_get_InitializeFailReason(self, *args)
- def initializeFailReason(self): return _chilkat.CkSFtp_initializeFailReason(self)
- def get_DisconnectReason(self, *args): return _chilkat.CkSFtp_get_DisconnectReason(self, *args)
- def disconnectReason(self): return _chilkat.CkSFtp_disconnectReason(self)
- def get_Version(self, *args): return _chilkat.CkSFtp_get_Version(self, *args)
- def version(self): return _chilkat.CkSFtp_version(self)
- def get_IsConnected(self): return _chilkat.CkSFtp_get_IsConnected(self)
- def get_KeepSessionLog(self): return _chilkat.CkSFtp_get_KeepSessionLog(self)
- def put_KeepSessionLog(self, *args): return _chilkat.CkSFtp_put_KeepSessionLog(self, *args)
- def get_SessionLog(self, *args): return _chilkat.CkSFtp_get_SessionLog(self, *args)
- def sessionLog(self): return _chilkat.CkSFtp_sessionLog(self)
- def Disconnect(self): return _chilkat.CkSFtp_Disconnect(self)
- def Connect(self, *args): return _chilkat.CkSFtp_Connect(self, *args)
- def AuthenticatePk(self, *args): return _chilkat.CkSFtp_AuthenticatePk(self, *args)
- def AuthenticatePw(self, *args): return _chilkat.CkSFtp_AuthenticatePw(self, *args)
- def InitializeSftp(self): return _chilkat.CkSFtp_InitializeSftp(self)
- def OpenFile(self, *args): return _chilkat.CkSFtp_OpenFile(self, *args)
- def openFile(self, *args): return _chilkat.CkSFtp_openFile(self, *args)
- def OpenDir(self, *args): return _chilkat.CkSFtp_OpenDir(self, *args)
- def openDir(self, *args): return _chilkat.CkSFtp_openDir(self, *args)
- def CloseHandle(self, *args): return _chilkat.CkSFtp_CloseHandle(self, *args)
- def GetFileSize32(self, *args): return _chilkat.CkSFtp_GetFileSize32(self, *args)
- def GetFileSizeStr(self, *args): return _chilkat.CkSFtp_GetFileSizeStr(self, *args)
- def getFileSizeStr(self, *args): return _chilkat.CkSFtp_getFileSizeStr(self, *args)
- def GetFileLastAccess(self, *args): return _chilkat.CkSFtp_GetFileLastAccess(self, *args)
- def GetFileLastModified(self, *args): return _chilkat.CkSFtp_GetFileLastModified(self, *args)
- def GetFileCreateTime(self, *args): return _chilkat.CkSFtp_GetFileCreateTime(self, *args)
- def GetFileOwner(self, *args): return _chilkat.CkSFtp_GetFileOwner(self, *args)
- def getFileOwner(self, *args): return _chilkat.CkSFtp_getFileOwner(self, *args)
- def GetFileGroup(self, *args): return _chilkat.CkSFtp_GetFileGroup(self, *args)
- def getFileGroup(self, *args): return _chilkat.CkSFtp_getFileGroup(self, *args)
- def GetFilePermissions(self, *args): return _chilkat.CkSFtp_GetFilePermissions(self, *args)
- def Add64(self, *args): return _chilkat.CkSFtp_Add64(self, *args)
- def add64(self, *args): return _chilkat.CkSFtp_add64(self, *args)
- def ReadFileBytes32(self, *args): return _chilkat.CkSFtp_ReadFileBytes32(self, *args)
- def ReadFileBytes64s(self, *args): return _chilkat.CkSFtp_ReadFileBytes64s(self, *args)
- def ReadFileText64s(self, *args): return _chilkat.CkSFtp_ReadFileText64s(self, *args)
- def readFileText64s(self, *args): return _chilkat.CkSFtp_readFileText64s(self, *args)
- def ReadFileText32(self, *args): return _chilkat.CkSFtp_ReadFileText32(self, *args)
- def readFileText32(self, *args): return _chilkat.CkSFtp_readFileText32(self, *args)
- def DownloadFile(self, *args): return _chilkat.CkSFtp_DownloadFile(self, *args)
- def Eof(self, *args): return _chilkat.CkSFtp_Eof(self, *args)
- def ReadFileBytes(self, *args): return _chilkat.CkSFtp_ReadFileBytes(self, *args)
- def ReadFileText(self, *args): return _chilkat.CkSFtp_ReadFileText(self, *args)
- def readFileText(self, *args): return _chilkat.CkSFtp_readFileText(self, *args)
- def LastReadFailed(self, *args): return _chilkat.CkSFtp_LastReadFailed(self, *args)
- def LastReadNumBytes(self, *args): return _chilkat.CkSFtp_LastReadNumBytes(self, *args)
- def WriteFileBytes(self, *args): return _chilkat.CkSFtp_WriteFileBytes(self, *args)
- def WriteFileBytes32(self, *args): return _chilkat.CkSFtp_WriteFileBytes32(self, *args)
- def WriteFileBytes64s(self, *args): return _chilkat.CkSFtp_WriteFileBytes64s(self, *args)
- def WriteFileText(self, *args): return _chilkat.CkSFtp_WriteFileText(self, *args)
- def WriteFileText32(self, *args): return _chilkat.CkSFtp_WriteFileText32(self, *args)
- def WriteFileText64s(self, *args): return _chilkat.CkSFtp_WriteFileText64s(self, *args)
- def UploadFile(self, *args): return _chilkat.CkSFtp_UploadFile(self, *args)
- def RealPath(self, *args): return _chilkat.CkSFtp_RealPath(self, *args)
- def realPath(self, *args): return _chilkat.CkSFtp_realPath(self, *args)
- def ReadDir(self, *args): return _chilkat.CkSFtp_ReadDir(self, *args)
- def RemoveFile(self, *args): return _chilkat.CkSFtp_RemoveFile(self, *args)
- def RemoveDir(self, *args): return _chilkat.CkSFtp_RemoveDir(self, *args)
- def RenameFileOrDir(self, *args): return _chilkat.CkSFtp_RenameFileOrDir(self, *args)
- def CreateDir(self, *args): return _chilkat.CkSFtp_CreateDir(self, *args)
- def SetCreateTime(self, *args): return _chilkat.CkSFtp_SetCreateTime(self, *args)
- def SetLastModifiedTime(self, *args): return _chilkat.CkSFtp_SetLastModifiedTime(self, *args)
- def SetLastAccessTime(self, *args): return _chilkat.CkSFtp_SetLastAccessTime(self, *args)
- def SetOwnerAndGroup(self, *args): return _chilkat.CkSFtp_SetOwnerAndGroup(self, *args)
- def SetPermissions(self, *args): return _chilkat.CkSFtp_SetPermissions(self, *args)
- def CopyFileAttr(self, *args): return _chilkat.CkSFtp_CopyFileAttr(self, *args)
- def get_ProtocolVersion(self): return _chilkat.CkSFtp_get_ProtocolVersion(self)
- def get_EnableCache(self): return _chilkat.CkSFtp_get_EnableCache(self)
- def put_EnableCache(self, *args): return _chilkat.CkSFtp_put_EnableCache(self, *args)
- def ClearCache(self): return _chilkat.CkSFtp_ClearCache(self)
- def DownloadFileByName(self, *args): return _chilkat.CkSFtp_DownloadFileByName(self, *args)
- def get_HeartbeatMs(self): return _chilkat.CkSFtp_get_HeartbeatMs(self)
- def put_HeartbeatMs(self, *args): return _chilkat.CkSFtp_put_HeartbeatMs(self, *args)
- def UploadFileByName(self, *args): return _chilkat.CkSFtp_UploadFileByName(self, *args)
- def ResumeUploadFileByName(self, *args): return _chilkat.CkSFtp_ResumeUploadFileByName(self, *args)
- def ResumeDownloadFileByName(self, *args): return _chilkat.CkSFtp_ResumeDownloadFileByName(self, *args)
- def get_VerboseLogging(self): return _chilkat.CkSFtp_get_VerboseLogging(self)
- def put_VerboseLogging(self, *args): return _chilkat.CkSFtp_put_VerboseLogging(self, *args)
- def get_FilenameCharset(self, *args): return _chilkat.CkSFtp_get_FilenameCharset(self, *args)
- def filenameCharset(self): return _chilkat.CkSFtp_filenameCharset(self)
- def put_FilenameCharset(self, *args): return _chilkat.CkSFtp_put_FilenameCharset(self, *args)
- def ClearSessionLog(self): return _chilkat.CkSFtp_ClearSessionLog(self)
- def get_ForceV3(self): return _chilkat.CkSFtp_get_ForceV3(self)
- def put_ForceV3(self, *args): return _chilkat.CkSFtp_put_ForceV3(self, *args)
- def get_UtcMode(self): return _chilkat.CkSFtp_get_UtcMode(self)
- def put_UtcMode(self, *args): return _chilkat.CkSFtp_put_UtcMode(self, *args)
- def get_PreserveDate(self): return _chilkat.CkSFtp_get_PreserveDate(self)
- def put_PreserveDate(self, *args): return _chilkat.CkSFtp_put_PreserveDate(self, *args)
- def get_ClientIdentifier(self, *args): return _chilkat.CkSFtp_get_ClientIdentifier(self, *args)
- def clientIdentifier(self): return _chilkat.CkSFtp_clientIdentifier(self)
- def put_ClientIdentifier(self, *args): return _chilkat.CkSFtp_put_ClientIdentifier(self, *args)
- def get_HostKeyFingerprint(self, *args): return _chilkat.CkSFtp_get_HostKeyFingerprint(self, *args)
- def hostKeyFingerprint(self): return _chilkat.CkSFtp_hostKeyFingerprint(self)
- def get_SocksHostname(self, *args): return _chilkat.CkSFtp_get_SocksHostname(self, *args)
- def socksHostname(self): return _chilkat.CkSFtp_socksHostname(self)
- def put_SocksHostname(self, *args): return _chilkat.CkSFtp_put_SocksHostname(self, *args)
- def get_SocksUsername(self, *args): return _chilkat.CkSFtp_get_SocksUsername(self, *args)
- def socksUsername(self): return _chilkat.CkSFtp_socksUsername(self)
- def put_SocksUsername(self, *args): return _chilkat.CkSFtp_put_SocksUsername(self, *args)
- def get_SocksPassword(self, *args): return _chilkat.CkSFtp_get_SocksPassword(self, *args)
- def socksPassword(self): return _chilkat.CkSFtp_socksPassword(self)
- def put_SocksPassword(self, *args): return _chilkat.CkSFtp_put_SocksPassword(self, *args)
- def get_SocksPort(self): return _chilkat.CkSFtp_get_SocksPort(self)
- def put_SocksPort(self, *args): return _chilkat.CkSFtp_put_SocksPort(self, *args)
- def get_SocksVersion(self): return _chilkat.CkSFtp_get_SocksVersion(self)
- def put_SocksVersion(self, *args): return _chilkat.CkSFtp_put_SocksVersion(self, *args)
- def get_HttpProxyAuthMethod(self, *args): return _chilkat.CkSFtp_get_HttpProxyAuthMethod(self, *args)
- def httpProxyAuthMethod(self): return _chilkat.CkSFtp_httpProxyAuthMethod(self)
- def put_HttpProxyAuthMethod(self, *args): return _chilkat.CkSFtp_put_HttpProxyAuthMethod(self, *args)
- def get_HttpProxyHostname(self, *args): return _chilkat.CkSFtp_get_HttpProxyHostname(self, *args)
- def httpProxyHostname(self): return _chilkat.CkSFtp_httpProxyHostname(self)
- def put_HttpProxyHostname(self, *args): return _chilkat.CkSFtp_put_HttpProxyHostname(self, *args)
- def get_HttpProxyPassword(self, *args): return _chilkat.CkSFtp_get_HttpProxyPassword(self, *args)
- def httpProxyPassword(self): return _chilkat.CkSFtp_httpProxyPassword(self)
- def put_HttpProxyPassword(self, *args): return _chilkat.CkSFtp_put_HttpProxyPassword(self, *args)
- def get_HttpProxyPort(self): return _chilkat.CkSFtp_get_HttpProxyPort(self)
- def put_HttpProxyPort(self, *args): return _chilkat.CkSFtp_put_HttpProxyPort(self, *args)
- def get_HttpProxyUsername(self, *args): return _chilkat.CkSFtp_get_HttpProxyUsername(self, *args)
- def httpProxyUsername(self): return _chilkat.CkSFtp_httpProxyUsername(self)
- def put_HttpProxyUsername(self, *args): return _chilkat.CkSFtp_put_HttpProxyUsername(self, *args)
- def get_TcpNoDelay(self): return _chilkat.CkSFtp_get_TcpNoDelay(self)
- def put_TcpNoDelay(self, *args): return _chilkat.CkSFtp_put_TcpNoDelay(self, *args)
- def get_AccumulateBuffer(self, *args): return _chilkat.CkSFtp_get_AccumulateBuffer(self, *args)
- def ClearAccumulateBuffer(self): return _chilkat.CkSFtp_ClearAccumulateBuffer(self)
- def AccumulateBytes(self, *args): return _chilkat.CkSFtp_AccumulateBytes(self, *args)
- def AuthenticatePwPk(self, *args): return _chilkat.CkSFtp_AuthenticatePwPk(self, *args)
-CkSFtp_swigregister = _chilkat.CkSFtp_swigregister
-CkSFtp_swigregister(CkSFtp)
-
-class CkSsh(_object):
- __swig_setmethods__ = {}
- __setattr__ = lambda self, name, value: _swig_setattr(self, CkSsh, name, value)
- __swig_getmethods__ = {}
- __getattr__ = lambda self, name: _swig_getattr(self, CkSsh, name)
- __repr__ = _swig_repr
- def __init__(self):
- this = _chilkat.new_CkSsh()
- try: self.this.append(this)
- except: self.this = this
- __swig_destroy__ = _chilkat.delete_CkSsh
- __del__ = lambda self : None;
- def get_Utf8(self): return _chilkat.CkSsh_get_Utf8(self)
- def put_Utf8(self, *args): return _chilkat.CkSsh_put_Utf8(self, *args)
- def Connect(self, *args): return _chilkat.CkSsh_Connect(self, *args)
- def UnlockComponent(self, *args): return _chilkat.CkSsh_UnlockComponent(self, *args)
- def AuthenticatePw(self, *args): return _chilkat.CkSsh_AuthenticatePw(self, *args)
- def get_Version(self, *args): return _chilkat.CkSsh_get_Version(self, *args)
- def version(self): return _chilkat.CkSsh_version(self)
- def get_KeepSessionLog(self): return _chilkat.CkSsh_get_KeepSessionLog(self)
- def put_KeepSessionLog(self, *args): return _chilkat.CkSsh_put_KeepSessionLog(self, *args)
- def get_SessionLog(self, *args): return _chilkat.CkSsh_get_SessionLog(self, *args)
- def sessionLog(self): return _chilkat.CkSsh_sessionLog(self)
- def get_IdleTimeoutMs(self): return _chilkat.CkSsh_get_IdleTimeoutMs(self)
- def put_IdleTimeoutMs(self, *args): return _chilkat.CkSsh_put_IdleTimeoutMs(self, *args)
- def get_ConnectTimeoutMs(self): return _chilkat.CkSsh_get_ConnectTimeoutMs(self)
- def put_ConnectTimeoutMs(self, *args): return _chilkat.CkSsh_put_ConnectTimeoutMs(self, *args)
- def get_ChannelOpenFailCode(self): return _chilkat.CkSsh_get_ChannelOpenFailCode(self)
- def get_DisconnectCode(self): return _chilkat.CkSsh_get_DisconnectCode(self)
- def get_DisconnectReason(self, *args): return _chilkat.CkSsh_get_DisconnectReason(self, *args)
- def disconnectReason(self): return _chilkat.CkSsh_disconnectReason(self)
- def get_ChannelOpenFailReason(self, *args): return _chilkat.CkSsh_get_ChannelOpenFailReason(self, *args)
- def channelOpenFailReason(self): return _chilkat.CkSsh_channelOpenFailReason(self)
- def get_MaxPacketSize(self): return _chilkat.CkSsh_get_MaxPacketSize(self)
- def put_MaxPacketSize(self, *args): return _chilkat.CkSsh_put_MaxPacketSize(self, *args)
- def Disconnect(self): return _chilkat.CkSsh_Disconnect(self)
- def OpenSessionChannel(self): return _chilkat.CkSsh_OpenSessionChannel(self)
- def OpenCustomChannel(self, *args): return _chilkat.CkSsh_OpenCustomChannel(self, *args)
- def get_NumOpenChannels(self): return _chilkat.CkSsh_get_NumOpenChannels(self)
- def GetChannelNumber(self, *args): return _chilkat.CkSsh_GetChannelNumber(self, *args)
- def GetChannelType(self, *args): return _chilkat.CkSsh_GetChannelType(self, *args)
- def getChannelType(self, *args): return _chilkat.CkSsh_getChannelType(self, *args)
- def SendReqPty(self, *args): return _chilkat.CkSsh_SendReqPty(self, *args)
- def SendReqX11Forwarding(self, *args): return _chilkat.CkSsh_SendReqX11Forwarding(self, *args)
- def SendReqSetEnv(self, *args): return _chilkat.CkSsh_SendReqSetEnv(self, *args)
- def SendReqShell(self, *args): return _chilkat.CkSsh_SendReqShell(self, *args)
- def SendReqExec(self, *args): return _chilkat.CkSsh_SendReqExec(self, *args)
- def SendReqSubsystem(self, *args): return _chilkat.CkSsh_SendReqSubsystem(self, *args)
- def SendReqWindowChange(self, *args): return _chilkat.CkSsh_SendReqWindowChange(self, *args)
- def SendReqXonXoff(self, *args): return _chilkat.CkSsh_SendReqXonXoff(self, *args)
- def SendReqSignal(self, *args): return _chilkat.CkSsh_SendReqSignal(self, *args)
- def ChannelSendData(self, *args): return _chilkat.CkSsh_ChannelSendData(self, *args)
- def ChannelSendString(self, *args): return _chilkat.CkSsh_ChannelSendString(self, *args)
- def ChannelPoll(self, *args): return _chilkat.CkSsh_ChannelPoll(self, *args)
- def ChannelReadAndPoll(self, *args): return _chilkat.CkSsh_ChannelReadAndPoll(self, *args)
- def ChannelRead(self, *args): return _chilkat.CkSsh_ChannelRead(self, *args)
- def GetReceivedData(self, *args): return _chilkat.CkSsh_GetReceivedData(self, *args)
- def GetReceivedStderr(self, *args): return _chilkat.CkSsh_GetReceivedStderr(self, *args)
- def ChannelReceivedEof(self, *args): return _chilkat.CkSsh_ChannelReceivedEof(self, *args)
- def ChannelReceivedClose(self, *args): return _chilkat.CkSsh_ChannelReceivedClose(self, *args)
- def ChannelSendClose(self, *args): return _chilkat.CkSsh_ChannelSendClose(self, *args)
- def ChannelSendEof(self, *args): return _chilkat.CkSsh_ChannelSendEof(self, *args)
- def ChannelIsOpen(self, *args): return _chilkat.CkSsh_ChannelIsOpen(self, *args)
- def ChannelReceiveToClose(self, *args): return _chilkat.CkSsh_ChannelReceiveToClose(self, *args)
- def ClearTtyModes(self): return _chilkat.CkSsh_ClearTtyModes(self)
- def SetTtyMode(self, *args): return _chilkat.CkSsh_SetTtyMode(self, *args)
- def get_IsConnected(self): return _chilkat.CkSsh_get_IsConnected(self)
- def ReKey(self): return _chilkat.CkSsh_ReKey(self)
- def AuthenticatePk(self, *args): return _chilkat.CkSsh_AuthenticatePk(self, *args)
- def GetReceivedText(self, *args): return _chilkat.CkSsh_GetReceivedText(self, *args)
- def getReceivedText(self, *args): return _chilkat.CkSsh_getReceivedText(self, *args)
- def GetReceivedNumBytes(self, *args): return _chilkat.CkSsh_GetReceivedNumBytes(self, *args)
- def ChannelReceiveUntilMatch(self, *args): return _chilkat.CkSsh_ChannelReceiveUntilMatch(self, *args)
- def SendIgnore(self): return _chilkat.CkSsh_SendIgnore(self)
- def OpenDirectTcpIpChannel(self, *args): return _chilkat.CkSsh_OpenDirectTcpIpChannel(self, *args)
- def GetReceivedTextS(self, *args): return _chilkat.CkSsh_GetReceivedTextS(self, *args)
- def getReceivedTextS(self, *args): return _chilkat.CkSsh_getReceivedTextS(self, *args)
- def GetReceivedDataN(self, *args): return _chilkat.CkSsh_GetReceivedDataN(self, *args)
- def PeekReceivedText(self, *args): return _chilkat.CkSsh_PeekReceivedText(self, *args)
- def peekReceivedText(self, *args): return _chilkat.CkSsh_peekReceivedText(self, *args)
- def get_HeartbeatMs(self): return _chilkat.CkSsh_get_HeartbeatMs(self)
- def put_HeartbeatMs(self, *args): return _chilkat.CkSsh_put_HeartbeatMs(self, *args)
- def ChannelReceivedExitStatus(self, *args): return _chilkat.CkSsh_ChannelReceivedExitStatus(self, *args)
- def GetChannelExitStatus(self, *args): return _chilkat.CkSsh_GetChannelExitStatus(self, *args)
- def get_ClientIdentifier(self, *args): return _chilkat.CkSsh_get_ClientIdentifier(self, *args)
- def clientIdentifier(self): return _chilkat.CkSsh_clientIdentifier(self)
- def put_ClientIdentifier(self, *args): return _chilkat.CkSsh_put_ClientIdentifier(self, *args)
- def get_ReadTimeoutMs(self): return _chilkat.CkSsh_get_ReadTimeoutMs(self)
- def put_ReadTimeoutMs(self, *args): return _chilkat.CkSsh_put_ReadTimeoutMs(self, *args)
- def get_TcpNoDelay(self): return _chilkat.CkSsh_get_TcpNoDelay(self)
- def put_TcpNoDelay(self, *args): return _chilkat.CkSsh_put_TcpNoDelay(self, *args)
- def get_VerboseLogging(self): return _chilkat.CkSsh_get_VerboseLogging(self)
- def put_VerboseLogging(self, *args): return _chilkat.CkSsh_put_VerboseLogging(self, *args)
- def get_HostKeyFingerprint(self, *args): return _chilkat.CkSsh_get_HostKeyFingerprint(self, *args)
- def hostKeyFingerprint(self): return _chilkat.CkSsh_hostKeyFingerprint(self)
- def get_SocksVersion(self): return _chilkat.CkSsh_get_SocksVersion(self)
- def put_SocksVersion(self, *args): return _chilkat.CkSsh_put_SocksVersion(self, *args)
- def get_SocksPort(self): return _chilkat.CkSsh_get_SocksPort(self)
- def put_SocksPort(self, *args): return _chilkat.CkSsh_put_SocksPort(self, *args)
- def get_SocksHostname(self, *args): return _chilkat.CkSsh_get_SocksHostname(self, *args)
- def socksHostname(self): return _chilkat.CkSsh_socksHostname(self)
- def put_SocksHostname(self, *args): return _chilkat.CkSsh_put_SocksHostname(self, *args)
- def get_SocksUsername(self, *args): return _chilkat.CkSsh_get_SocksUsername(self, *args)
- def socksUsername(self): return _chilkat.CkSsh_socksUsername(self)
- def put_SocksUsername(self, *args): return _chilkat.CkSsh_put_SocksUsername(self, *args)
- def get_SocksPassword(self, *args): return _chilkat.CkSsh_get_SocksPassword(self, *args)
- def socksPassword(self): return _chilkat.CkSsh_socksPassword(self)
- def put_SocksPassword(self, *args): return _chilkat.CkSsh_put_SocksPassword(self, *args)
- def get_HttpProxyAuthMethod(self, *args): return _chilkat.CkSsh_get_HttpProxyAuthMethod(self, *args)
- def httpProxyAuthMethod(self): return _chilkat.CkSsh_httpProxyAuthMethod(self)
- def put_HttpProxyAuthMethod(self, *args): return _chilkat.CkSsh_put_HttpProxyAuthMethod(self, *args)
- def get_HttpProxyHostname(self, *args): return _chilkat.CkSsh_get_HttpProxyHostname(self, *args)
- def httpProxyHostname(self): return _chilkat.CkSsh_httpProxyHostname(self)
- def put_HttpProxyHostname(self, *args): return _chilkat.CkSsh_put_HttpProxyHostname(self, *args)
- def get_HttpProxyPassword(self, *args): return _chilkat.CkSsh_get_HttpProxyPassword(self, *args)
- def httpProxyPassword(self): return _chilkat.CkSsh_httpProxyPassword(self)
- def put_HttpProxyPassword(self, *args): return _chilkat.CkSsh_put_HttpProxyPassword(self, *args)
- def get_HttpProxyPort(self): return _chilkat.CkSsh_get_HttpProxyPort(self)
- def put_HttpProxyPort(self, *args): return _chilkat.CkSsh_put_HttpProxyPort(self, *args)
- def get_HttpProxyUsername(self, *args): return _chilkat.CkSsh_get_HttpProxyUsername(self, *args)
- def httpProxyUsername(self): return _chilkat.CkSsh_httpProxyUsername(self)
- def put_HttpProxyUsername(self, *args): return _chilkat.CkSsh_put_HttpProxyUsername(self, *args)
- def ChannelReceiveUntilMatchN(self, *args): return _chilkat.CkSsh_ChannelReceiveUntilMatchN(self, *args)
- def ChannelReadAndPoll2(self, *args): return _chilkat.CkSsh_ChannelReadAndPoll2(self, *args)
- def AuthenticatePwPk(self, *args): return _chilkat.CkSsh_AuthenticatePwPk(self, *args)
- def SaveLastError(self, *args): return _chilkat.CkSsh_SaveLastError(self, *args)
- def LastErrorXml(self, *args): return _chilkat.CkSsh_LastErrorXml(self, *args)
- def LastErrorHtml(self, *args): return _chilkat.CkSsh_LastErrorHtml(self, *args)
- def LastErrorText(self, *args): return _chilkat.CkSsh_LastErrorText(self, *args)
- def lastErrorText(self): return _chilkat.CkSsh_lastErrorText(self)
- def lastErrorXml(self): return _chilkat.CkSsh_lastErrorXml(self)
- def lastErrorHtml(self): return _chilkat.CkSsh_lastErrorHtml(self)
-CkSsh_swigregister = _chilkat.CkSsh_swigregister
-CkSsh_swigregister(CkSsh)
-
-class CkSshKey(_object):
- __swig_setmethods__ = {}
- __setattr__ = lambda self, name, value: _swig_setattr(self, CkSshKey, name, value)
- __swig_getmethods__ = {}
- __getattr__ = lambda self, name: _swig_getattr(self, CkSshKey, name)
- __repr__ = _swig_repr
- def __init__(self):
- this = _chilkat.new_CkSshKey()
- try: self.this.append(this)
- except: self.this = this
- __swig_destroy__ = _chilkat.delete_CkSshKey
- __del__ = lambda self : None;
- def get_Utf8(self): return _chilkat.CkSshKey_get_Utf8(self)
- def put_Utf8(self, *args): return _chilkat.CkSshKey_put_Utf8(self, *args)
- def get_IsRsaKey(self): return _chilkat.CkSshKey_get_IsRsaKey(self)
- def get_IsDsaKey(self): return _chilkat.CkSshKey_get_IsDsaKey(self)
- def get_IsPrivateKey(self): return _chilkat.CkSshKey_get_IsPrivateKey(self)
- def get_Password(self, *args): return _chilkat.CkSshKey_get_Password(self, *args)
- def password(self): return _chilkat.CkSshKey_password(self)
- def put_Password(self, *args): return _chilkat.CkSshKey_put_Password(self, *args)
- def get_Comment(self, *args): return _chilkat.CkSshKey_get_Comment(self, *args)
- def comment(self): return _chilkat.CkSshKey_comment(self)
- def put_Comment(self, *args): return _chilkat.CkSshKey_put_Comment(self, *args)
- def GenFingerprint(self, *args): return _chilkat.CkSshKey_GenFingerprint(self, *args)
- def genFingerprint(self): return _chilkat.CkSshKey_genFingerprint(self)
- def ToXml(self, *args): return _chilkat.CkSshKey_ToXml(self, *args)
- def toXml(self): return _chilkat.CkSshKey_toXml(self)
- def ToRfc4716PublicKey(self, *args): return _chilkat.CkSshKey_ToRfc4716PublicKey(self, *args)
- def toRfc4716PublicKey(self): return _chilkat.CkSshKey_toRfc4716PublicKey(self)
- def ToOpenSshPublicKey(self, *args): return _chilkat.CkSshKey_ToOpenSshPublicKey(self, *args)
- def toOpenSshPublicKey(self): return _chilkat.CkSshKey_toOpenSshPublicKey(self)
- def FromXml(self, *args): return _chilkat.CkSshKey_FromXml(self, *args)
- def FromRfc4716PublicKey(self, *args): return _chilkat.CkSshKey_FromRfc4716PublicKey(self, *args)
- def FromOpenSshPublicKey(self, *args): return _chilkat.CkSshKey_FromOpenSshPublicKey(self, *args)
- def FromPuttyPrivateKey(self, *args): return _chilkat.CkSshKey_FromPuttyPrivateKey(self, *args)
- def FromOpenSshPrivateKey(self, *args): return _chilkat.CkSshKey_FromOpenSshPrivateKey(self, *args)
- def GenerateRsaKey(self, *args): return _chilkat.CkSshKey_GenerateRsaKey(self, *args)
- def GenerateDsaKey(self, *args): return _chilkat.CkSshKey_GenerateDsaKey(self, *args)
- def SaveText(self, *args): return _chilkat.CkSshKey_SaveText(self, *args)
- def LoadText(self, *args): return _chilkat.CkSshKey_LoadText(self, *args)
- def loadText(self, *args): return _chilkat.CkSshKey_loadText(self, *args)
- def ToOpenSshPrivateKey(self, *args): return _chilkat.CkSshKey_ToOpenSshPrivateKey(self, *args)
- def toOpenSshPrivateKey(self, *args): return _chilkat.CkSshKey_toOpenSshPrivateKey(self, *args)
- def ToPuttyPrivateKey(self, *args): return _chilkat.CkSshKey_ToPuttyPrivateKey(self, *args)
- def toPuttyPrivateKey(self, *args): return _chilkat.CkSshKey_toPuttyPrivateKey(self, *args)
- def SaveLastError(self, *args): return _chilkat.CkSshKey_SaveLastError(self, *args)
- def LastErrorXml(self, *args): return _chilkat.CkSshKey_LastErrorXml(self, *args)
- def LastErrorHtml(self, *args): return _chilkat.CkSshKey_LastErrorHtml(self, *args)
- def LastErrorText(self, *args): return _chilkat.CkSshKey_LastErrorText(self, *args)
- def lastErrorText(self): return _chilkat.CkSshKey_lastErrorText(self)
- def lastErrorXml(self): return _chilkat.CkSshKey_lastErrorXml(self)
- def lastErrorHtml(self): return _chilkat.CkSshKey_lastErrorHtml(self)
-CkSshKey_swigregister = _chilkat.CkSshKey_swigregister
-CkSshKey_swigregister(CkSshKey)
-
-class CkIcon(_object):
- __swig_setmethods__ = {}
- __setattr__ = lambda self, name, value: _swig_setattr(self, CkIcon, name, value)
- __swig_getmethods__ = {}
- __getattr__ = lambda self, name: _swig_getattr(self, CkIcon, name)
- __repr__ = _swig_repr
- def __init__(self):
- this = _chilkat.new_CkIcon()
- try: self.this.append(this)
- except: self.this = this
- __swig_destroy__ = _chilkat.delete_CkIcon
- __del__ = lambda self : None;
- def get_Utf8(self): return _chilkat.CkIcon_get_Utf8(self)
- def put_Utf8(self, *args): return _chilkat.CkIcon_put_Utf8(self, *args)
- def SaveLastError(self, *args): return _chilkat.CkIcon_SaveLastError(self, *args)
- def LastErrorXml(self, *args): return _chilkat.CkIcon_LastErrorXml(self, *args)
- def LastErrorHtml(self, *args): return _chilkat.CkIcon_LastErrorHtml(self, *args)
- def LastErrorText(self, *args): return _chilkat.CkIcon_LastErrorText(self, *args)
- def lastErrorText(self): return _chilkat.CkIcon_lastErrorText(self)
- def lastErrorXml(self): return _chilkat.CkIcon_lastErrorXml(self)
- def lastErrorHtml(self): return _chilkat.CkIcon_lastErrorHtml(self)
-CkIcon_swigregister = _chilkat.CkIcon_swigregister
-CkIcon_swigregister(CkIcon)
-
-class CkService(_object):
- __swig_setmethods__ = {}
- __setattr__ = lambda self, name, value: _swig_setattr(self, CkService, name, value)
- __swig_getmethods__ = {}
- __getattr__ = lambda self, name: _swig_getattr(self, CkService, name)
- __repr__ = _swig_repr
- def __init__(self):
- this = _chilkat.new_CkService()
- try: self.this.append(this)
- except: self.this = this
- __swig_destroy__ = _chilkat.delete_CkService
- __del__ = lambda self : None;
- def get_Utf8(self): return _chilkat.CkService_get_Utf8(self)
- def put_Utf8(self, *args): return _chilkat.CkService_put_Utf8(self, *args)
- def SaveLastError(self, *args): return _chilkat.CkService_SaveLastError(self, *args)
- def LastErrorXml(self, *args): return _chilkat.CkService_LastErrorXml(self, *args)
- def LastErrorHtml(self, *args): return _chilkat.CkService_LastErrorHtml(self, *args)
- def LastErrorText(self, *args): return _chilkat.CkService_LastErrorText(self, *args)
- def lastErrorText(self): return _chilkat.CkService_lastErrorText(self)
- def lastErrorXml(self): return _chilkat.CkService_lastErrorXml(self)
- def lastErrorHtml(self): return _chilkat.CkService_lastErrorHtml(self)
- def Install(self): return _chilkat.CkService_Install(self)
- def Uninstall(self): return _chilkat.CkService_Uninstall(self)
- def Start(self): return _chilkat.CkService_Start(self)
- def Stop(self): return _chilkat.CkService_Stop(self)
- def get_ServiceName(self, *args): return _chilkat.CkService_get_ServiceName(self, *args)
- def serviceName(self): return _chilkat.CkService_serviceName(self)
- def put_ServiceName(self, *args): return _chilkat.CkService_put_ServiceName(self, *args)
- def get_DisplayName(self, *args): return _chilkat.CkService_get_DisplayName(self, *args)
- def displayName(self): return _chilkat.CkService_displayName(self)
- def put_DisplayName(self, *args): return _chilkat.CkService_put_DisplayName(self, *args)
- def get_ExeFilename(self, *args): return _chilkat.CkService_get_ExeFilename(self, *args)
- def exeFilename(self): return _chilkat.CkService_exeFilename(self)
- def put_ExeFilename(self, *args): return _chilkat.CkService_put_ExeFilename(self, *args)
- def get_AutoStart(self): return _chilkat.CkService_get_AutoStart(self)
- def put_AutoStart(self, *args): return _chilkat.CkService_put_AutoStart(self, *args)
- def SetAutoStart(self): return _chilkat.CkService_SetAutoStart(self)
- def SetDemandStart(self): return _chilkat.CkService_SetDemandStart(self)
- def Disable(self): return _chilkat.CkService_Disable(self)
- def IsAutoStart(self): return _chilkat.CkService_IsAutoStart(self)
- def IsDemandStart(self): return _chilkat.CkService_IsDemandStart(self)
- def IsDisabled(self): return _chilkat.CkService_IsDisabled(self)
- def IsInstalled(self): return _chilkat.CkService_IsInstalled(self)
- def IsRunning(self): return _chilkat.CkService_IsRunning(self)
-CkService_swigregister = _chilkat.CkService_swigregister
-CkService_swigregister(CkService)
-
-class CkCompression(_object):
- __swig_setmethods__ = {}
- __setattr__ = lambda self, name, value: _swig_setattr(self, CkCompression, name, value)
- __swig_getmethods__ = {}
- __getattr__ = lambda self, name: _swig_getattr(self, CkCompression, name)
- __repr__ = _swig_repr
- def __init__(self):
- this = _chilkat.new_CkCompression()
- try: self.this.append(this)
- except: self.this = this
- __swig_destroy__ = _chilkat.delete_CkCompression
- __del__ = lambda self : None;
- def get_Utf8(self): return _chilkat.CkCompression_get_Utf8(self)
- def put_Utf8(self, *args): return _chilkat.CkCompression_put_Utf8(self, *args)
- def get_Charset(self, *args): return _chilkat.CkCompression_get_Charset(self, *args)
- def charset(self): return _chilkat.CkCompression_charset(self)
- def put_Charset(self, *args): return _chilkat.CkCompression_put_Charset(self, *args)
- def get_EncodingMode(self, *args): return _chilkat.CkCompression_get_EncodingMode(self, *args)
- def encodingMode(self): return _chilkat.CkCompression_encodingMode(self)
- def put_EncodingMode(self, *args): return _chilkat.CkCompression_put_EncodingMode(self, *args)
- def UnlockComponent(self, *args): return _chilkat.CkCompression_UnlockComponent(self, *args)
- def get_Algorithm(self, *args): return _chilkat.CkCompression_get_Algorithm(self, *args)
- def algorithm(self): return _chilkat.CkCompression_algorithm(self)
- def put_Algorithm(self, *args): return _chilkat.CkCompression_put_Algorithm(self, *args)
- def BeginCompressBytes(self, *args): return _chilkat.CkCompression_BeginCompressBytes(self, *args)
- def BeginCompressBytesENC(self, *args): return _chilkat.CkCompression_BeginCompressBytesENC(self, *args)
- def beginCompressBytesENC(self, *args): return _chilkat.CkCompression_beginCompressBytesENC(self, *args)
- def BeginCompressString(self, *args): return _chilkat.CkCompression_BeginCompressString(self, *args)
- def BeginCompressStringENC(self, *args): return _chilkat.CkCompression_BeginCompressStringENC(self, *args)
- def beginCompressStringENC(self, *args): return _chilkat.CkCompression_beginCompressStringENC(self, *args)
- def BeginDecompressBytes(self, *args): return _chilkat.CkCompression_BeginDecompressBytes(self, *args)
- def BeginDecompressBytesENC(self, *args): return _chilkat.CkCompression_BeginDecompressBytesENC(self, *args)
- def BeginDecompressString(self, *args): return _chilkat.CkCompression_BeginDecompressString(self, *args)
- def beginDecompressString(self, *args): return _chilkat.CkCompression_beginDecompressString(self, *args)
- def BeginDecompressStringENC(self, *args): return _chilkat.CkCompression_BeginDecompressStringENC(self, *args)
- def beginDecompressStringENC(self, *args): return _chilkat.CkCompression_beginDecompressStringENC(self, *args)
- def CompressBytes(self, *args): return _chilkat.CkCompression_CompressBytes(self, *args)
- def CompressBytesENC(self, *args): return _chilkat.CkCompression_CompressBytesENC(self, *args)
- def compressBytesENC(self, *args): return _chilkat.CkCompression_compressBytesENC(self, *args)
- def CompressFile(self, *args): return _chilkat.CkCompression_CompressFile(self, *args)
- def CompressString(self, *args): return _chilkat.CkCompression_CompressString(self, *args)
- def CompressStringENC(self, *args): return _chilkat.CkCompression_CompressStringENC(self, *args)
- def compressStringENC(self, *args): return _chilkat.CkCompression_compressStringENC(self, *args)
- def DecompressBytes(self, *args): return _chilkat.CkCompression_DecompressBytes(self, *args)
- def DecompressBytesENC(self, *args): return _chilkat.CkCompression_DecompressBytesENC(self, *args)
- def DecompressFile(self, *args): return _chilkat.CkCompression_DecompressFile(self, *args)
- def DecompressString(self, *args): return _chilkat.CkCompression_DecompressString(self, *args)
- def decompressString(self, *args): return _chilkat.CkCompression_decompressString(self, *args)
- def DecompressStringENC(self, *args): return _chilkat.CkCompression_DecompressStringENC(self, *args)
- def decompressStringENC(self, *args): return _chilkat.CkCompression_decompressStringENC(self, *args)
- def EndCompressBytes(self, *args): return _chilkat.CkCompression_EndCompressBytes(self, *args)
- def EndCompressBytesENC(self, *args): return _chilkat.CkCompression_EndCompressBytesENC(self, *args)
- def endCompressBytesENC(self): return _chilkat.CkCompression_endCompressBytesENC(self)
- def EndCompressString(self, *args): return _chilkat.CkCompression_EndCompressString(self, *args)
- def EndCompressStringENC(self, *args): return _chilkat.CkCompression_EndCompressStringENC(self, *args)
- def endCompressStringENC(self): return _chilkat.CkCompression_endCompressStringENC(self)
- def EndDecompressBytes(self, *args): return _chilkat.CkCompression_EndDecompressBytes(self, *args)
- def EndDecompressBytesENC(self, *args): return _chilkat.CkCompression_EndDecompressBytesENC(self, *args)
- def EndDecompressString(self, *args): return _chilkat.CkCompression_EndDecompressString(self, *args)
- def endDecompressString(self): return _chilkat.CkCompression_endDecompressString(self)
- def EndDecompressStringENC(self, *args): return _chilkat.CkCompression_EndDecompressStringENC(self, *args)
- def endDecompressStringENC(self): return _chilkat.CkCompression_endDecompressStringENC(self)
- def MoreCompressBytes(self, *args): return _chilkat.CkCompression_MoreCompressBytes(self, *args)
- def MoreCompressBytesENC(self, *args): return _chilkat.CkCompression_MoreCompressBytesENC(self, *args)
- def moreCompressBytesENC(self, *args): return _chilkat.CkCompression_moreCompressBytesENC(self, *args)
- def MoreCompressString(self, *args): return _chilkat.CkCompression_MoreCompressString(self, *args)
- def MoreCompressStringENC(self, *args): return _chilkat.CkCompression_MoreCompressStringENC(self, *args)
- def moreCompressStringENC(self, *args): return _chilkat.CkCompression_moreCompressStringENC(self, *args)
- def MoreDecompressBytes(self, *args): return _chilkat.CkCompression_MoreDecompressBytes(self, *args)
- def MoreDecompressBytesENC(self, *args): return _chilkat.CkCompression_MoreDecompressBytesENC(self, *args)
- def MoreDecompressString(self, *args): return _chilkat.CkCompression_MoreDecompressString(self, *args)
- def moreDecompressString(self, *args): return _chilkat.CkCompression_moreDecompressString(self, *args)
- def MoreDecompressStringENC(self, *args): return _chilkat.CkCompression_MoreDecompressStringENC(self, *args)
- def moreDecompressStringENC(self, *args): return _chilkat.CkCompression_moreDecompressStringENC(self, *args)
- def get_Version(self, *args): return _chilkat.CkCompression_get_Version(self, *args)
- def version(self): return _chilkat.CkCompression_version(self)
- def SaveLastError(self, *args): return _chilkat.CkCompression_SaveLastError(self, *args)
- def LastErrorXml(self, *args): return _chilkat.CkCompression_LastErrorXml(self, *args)
- def LastErrorHtml(self, *args): return _chilkat.CkCompression_LastErrorHtml(self, *args)
- def LastErrorText(self, *args): return _chilkat.CkCompression_LastErrorText(self, *args)
- def lastErrorText(self): return _chilkat.CkCompression_lastErrorText(self)
- def lastErrorXml(self): return _chilkat.CkCompression_lastErrorXml(self)
- def lastErrorHtml(self): return _chilkat.CkCompression_lastErrorHtml(self)
-CkCompression_swigregister = _chilkat.CkCompression_swigregister
-CkCompression_swigregister(CkCompression)
-
-class CkBz2(_object):
- __swig_setmethods__ = {}
- __setattr__ = lambda self, name, value: _swig_setattr(self, CkBz2, name, value)
- __swig_getmethods__ = {}
- __getattr__ = lambda self, name: _swig_getattr(self, CkBz2, name)
- __repr__ = _swig_repr
- def __init__(self):
- this = _chilkat.new_CkBz2()
- try: self.this.append(this)
- except: self.this = this
- __swig_destroy__ = _chilkat.delete_CkBz2
- __del__ = lambda self : None;
- def get_Utf8(self): return _chilkat.CkBz2_get_Utf8(self)
- def put_Utf8(self, *args): return _chilkat.CkBz2_put_Utf8(self, *args)
- def UncompressFile(self, *args): return _chilkat.CkBz2_UncompressFile(self, *args)
- def CompressFile(self, *args): return _chilkat.CkBz2_CompressFile(self, *args)
- def UncompressFileToMem(self, *args): return _chilkat.CkBz2_UncompressFileToMem(self, *args)
- def CompressFileToMem(self, *args): return _chilkat.CkBz2_CompressFileToMem(self, *args)
- def CompressMemToFile(self, *args): return _chilkat.CkBz2_CompressMemToFile(self, *args)
- def UncompressMemToFile(self, *args): return _chilkat.CkBz2_UncompressMemToFile(self, *args)
- def CompressMemory(self, *args): return _chilkat.CkBz2_CompressMemory(self, *args)
- def UncompressMemory(self, *args): return _chilkat.CkBz2_UncompressMemory(self, *args)
- def UnlockComponent(self, *args): return _chilkat.CkBz2_UnlockComponent(self, *args)
- def SaveLastError(self, *args): return _chilkat.CkBz2_SaveLastError(self, *args)
- def LastErrorXml(self, *args): return _chilkat.CkBz2_LastErrorXml(self, *args)
- def LastErrorHtml(self, *args): return _chilkat.CkBz2_LastErrorHtml(self, *args)
- def LastErrorText(self, *args): return _chilkat.CkBz2_LastErrorText(self, *args)
- def lastErrorText(self): return _chilkat.CkBz2_lastErrorText(self)
- def lastErrorXml(self): return _chilkat.CkBz2_lastErrorXml(self)
- def lastErrorHtml(self): return _chilkat.CkBz2_lastErrorHtml(self)
-CkBz2_swigregister = _chilkat.CkBz2_swigregister
-CkBz2_swigregister(CkBz2)
-
-class CkCgi(_object):
- __swig_setmethods__ = {}
- __setattr__ = lambda self, name, value: _swig_setattr(self, CkCgi, name, value)
- __swig_getmethods__ = {}
- __getattr__ = lambda self, name: _swig_getattr(self, CkCgi, name)
- __repr__ = _swig_repr
- def __init__(self):
- this = _chilkat.new_CkCgi()
- try: self.this.append(this)
- except: self.this = this
- __swig_destroy__ = _chilkat.delete_CkCgi
- __del__ = lambda self : None;
- def get_Utf8(self): return _chilkat.CkCgi_get_Utf8(self)
- def put_Utf8(self, *args): return _chilkat.CkCgi_put_Utf8(self, *args)
- def SaveLastError(self, *args): return _chilkat.CkCgi_SaveLastError(self, *args)
- def LastErrorXml(self, *args): return _chilkat.CkCgi_LastErrorXml(self, *args)
- def LastErrorHtml(self, *args): return _chilkat.CkCgi_LastErrorHtml(self, *args)
- def LastErrorText(self, *args): return _chilkat.CkCgi_LastErrorText(self, *args)
- def lastErrorText(self): return _chilkat.CkCgi_lastErrorText(self)
- def lastErrorXml(self): return _chilkat.CkCgi_lastErrorXml(self)
- def lastErrorHtml(self): return _chilkat.CkCgi_lastErrorHtml(self)
-CkCgi_swigregister = _chilkat.CkCgi_swigregister
-CkCgi_swigregister(CkCgi)
-
-class CkHtmlToText(_object):
- __swig_setmethods__ = {}
- __setattr__ = lambda self, name, value: _swig_setattr(self, CkHtmlToText, name, value)
- __swig_getmethods__ = {}
- __getattr__ = lambda self, name: _swig_getattr(self, CkHtmlToText, name)
- __repr__ = _swig_repr
- def __init__(self):
- this = _chilkat.new_CkHtmlToText()
- try: self.this.append(this)
- except: self.this = this
- __swig_destroy__ = _chilkat.delete_CkHtmlToText
- __del__ = lambda self : None;
- def get_Utf8(self): return _chilkat.CkHtmlToText_get_Utf8(self)
- def put_Utf8(self, *args): return _chilkat.CkHtmlToText_put_Utf8(self, *args)
- def IsUnlocked(self): return _chilkat.CkHtmlToText_IsUnlocked(self)
- def ToText(self, *args): return _chilkat.CkHtmlToText_ToText(self, *args)
- def toText(self, *args): return _chilkat.CkHtmlToText_toText(self, *args)
- def UnlockComponent(self, *args): return _chilkat.CkHtmlToText_UnlockComponent(self, *args)
- def WriteStringToFile(self, *args): return _chilkat.CkHtmlToText_WriteStringToFile(self, *args)
- def ReadFileToString(self, *args): return _chilkat.CkHtmlToText_ReadFileToString(self, *args)
- def readFileToString(self, *args): return _chilkat.CkHtmlToText_readFileToString(self, *args)
- def get_RightMargin(self): return _chilkat.CkHtmlToText_get_RightMargin(self)
- def put_RightMargin(self, *args): return _chilkat.CkHtmlToText_put_RightMargin(self, *args)
- def SaveLastError(self, *args): return _chilkat.CkHtmlToText_SaveLastError(self, *args)
- def LastErrorXml(self, *args): return _chilkat.CkHtmlToText_LastErrorXml(self, *args)
- def LastErrorHtml(self, *args): return _chilkat.CkHtmlToText_LastErrorHtml(self, *args)
- def LastErrorText(self, *args): return _chilkat.CkHtmlToText_LastErrorText(self, *args)
- def lastErrorText(self): return _chilkat.CkHtmlToText_lastErrorText(self)
- def lastErrorXml(self): return _chilkat.CkHtmlToText_lastErrorXml(self)
- def lastErrorHtml(self): return _chilkat.CkHtmlToText_lastErrorHtml(self)
-CkHtmlToText_swigregister = _chilkat.CkHtmlToText_swigregister
-CkHtmlToText_swigregister(CkHtmlToText)
-
-class CkCsv(_object):
- __swig_setmethods__ = {}
- __setattr__ = lambda self, name, value: _swig_setattr(self, CkCsv, name, value)
- __swig_getmethods__ = {}
- __getattr__ = lambda self, name: _swig_getattr(self, CkCsv, name)
- __repr__ = _swig_repr
- def __init__(self):
- this = _chilkat.new_CkCsv()
- try: self.this.append(this)
- except: self.this = this
- __swig_destroy__ = _chilkat.delete_CkCsv
- __del__ = lambda self : None;
- def get_Utf8(self): return _chilkat.CkCsv_get_Utf8(self)
- def put_Utf8(self, *args): return _chilkat.CkCsv_put_Utf8(self, *args)
- def SaveLastError(self, *args): return _chilkat.CkCsv_SaveLastError(self, *args)
- def LastErrorXml(self, *args): return _chilkat.CkCsv_LastErrorXml(self, *args)
- def LastErrorHtml(self, *args): return _chilkat.CkCsv_LastErrorHtml(self, *args)
- def LastErrorText(self, *args): return _chilkat.CkCsv_LastErrorText(self, *args)
- def lastErrorText(self): return _chilkat.CkCsv_lastErrorText(self)
- def lastErrorXml(self): return _chilkat.CkCsv_lastErrorXml(self)
- def lastErrorHtml(self): return _chilkat.CkCsv_lastErrorHtml(self)
- def LoadFile(self, *args): return _chilkat.CkCsv_LoadFile(self, *args)
- def SaveFile(self, *args): return _chilkat.CkCsv_SaveFile(self, *args)
- def SaveFile2(self, *args): return _chilkat.CkCsv_SaveFile2(self, *args)
- def LoadFile2(self, *args): return _chilkat.CkCsv_LoadFile2(self, *args)
- def GetCell(self, *args): return _chilkat.CkCsv_GetCell(self, *args)
- def getCell(self, *args): return _chilkat.CkCsv_getCell(self, *args)
- def get_NumRows(self): return _chilkat.CkCsv_get_NumRows(self)
- def SetCell(self, *args): return _chilkat.CkCsv_SetCell(self, *args)
- def GetNumCols(self, *args): return _chilkat.CkCsv_GetNumCols(self, *args)
- def get_Delimiter(self, *args): return _chilkat.CkCsv_get_Delimiter(self, *args)
- def delimiter(self): return _chilkat.CkCsv_delimiter(self)
- def put_Delimiter(self, *args): return _chilkat.CkCsv_put_Delimiter(self, *args)
- def get_Crlf(self): return _chilkat.CkCsv_get_Crlf(self)
- def put_Crlf(self, *args): return _chilkat.CkCsv_put_Crlf(self, *args)
- def get_HasColumnNames(self): return _chilkat.CkCsv_get_HasColumnNames(self)
- def put_HasColumnNames(self, *args): return _chilkat.CkCsv_put_HasColumnNames(self, *args)
- def get_NumColumns(self): return _chilkat.CkCsv_get_NumColumns(self)
- def GetIndex(self, *args): return _chilkat.CkCsv_GetIndex(self, *args)
- def GetColumnName(self, *args): return _chilkat.CkCsv_GetColumnName(self, *args)
- def getColumnName(self, *args): return _chilkat.CkCsv_getColumnName(self, *args)
- def LoadFromString(self, *args): return _chilkat.CkCsv_LoadFromString(self, *args)
- def SaveToString(self, *args): return _chilkat.CkCsv_SaveToString(self, *args)
- def saveToString(self): return _chilkat.CkCsv_saveToString(self)
- def SetColumnName(self, *args): return _chilkat.CkCsv_SetColumnName(self, *args)
-CkCsv_swigregister = _chilkat.CkCsv_swigregister
-CkCsv_swigregister(CkCsv)
-
-class CkTar(_object):
- __swig_setmethods__ = {}
- __setattr__ = lambda self, name, value: _swig_setattr(self, CkTar, name, value)
- __swig_getmethods__ = {}
- __getattr__ = lambda self, name: _swig_getattr(self, CkTar, name)
- __repr__ = _swig_repr
- def __init__(self):
- this = _chilkat.new_CkTar()
- try: self.this.append(this)
- except: self.this = this
- __swig_destroy__ = _chilkat.delete_CkTar
- __del__ = lambda self : None;
- def get_Utf8(self): return _chilkat.CkTar_get_Utf8(self)
- def put_Utf8(self, *args): return _chilkat.CkTar_put_Utf8(self, *args)
- def SaveLastError(self, *args): return _chilkat.CkTar_SaveLastError(self, *args)
- def LastErrorXml(self, *args): return _chilkat.CkTar_LastErrorXml(self, *args)
- def LastErrorHtml(self, *args): return _chilkat.CkTar_LastErrorHtml(self, *args)
- def LastErrorText(self, *args): return _chilkat.CkTar_LastErrorText(self, *args)
- def get_Version(self, *args): return _chilkat.CkTar_get_Version(self, *args)
- def lastErrorText(self): return _chilkat.CkTar_lastErrorText(self)
- def lastErrorXml(self): return _chilkat.CkTar_lastErrorXml(self)
- def lastErrorHtml(self): return _chilkat.CkTar_lastErrorHtml(self)
- def version(self): return _chilkat.CkTar_version(self)
- def get_NoAbsolutePaths(self): return _chilkat.CkTar_get_NoAbsolutePaths(self)
- def put_NoAbsolutePaths(self, *args): return _chilkat.CkTar_put_NoAbsolutePaths(self, *args)
- def get_UntarCaseSensitive(self): return _chilkat.CkTar_get_UntarCaseSensitive(self)
- def put_UntarCaseSensitive(self, *args): return _chilkat.CkTar_put_UntarCaseSensitive(self, *args)
- def get_UntarDebugLog(self): return _chilkat.CkTar_get_UntarDebugLog(self)
- def put_UntarDebugLog(self, *args): return _chilkat.CkTar_put_UntarDebugLog(self, *args)
- def get_UntarDiscardPaths(self): return _chilkat.CkTar_get_UntarDiscardPaths(self)
- def put_UntarDiscardPaths(self, *args): return _chilkat.CkTar_put_UntarDiscardPaths(self, *args)
- def get_UntarFromDir(self, *args): return _chilkat.CkTar_get_UntarFromDir(self, *args)
- def untarFromDir(self): return _chilkat.CkTar_untarFromDir(self)
- def put_UntarFromDir(self, *args): return _chilkat.CkTar_put_UntarFromDir(self, *args)
- def get_UntarMatchPattern(self, *args): return _chilkat.CkTar_get_UntarMatchPattern(self, *args)
- def untarMatchPattern(self): return _chilkat.CkTar_untarMatchPattern(self)
- def put_UntarMatchPattern(self, *args): return _chilkat.CkTar_put_UntarMatchPattern(self, *args)
- def get_UntarMaxCount(self): return _chilkat.CkTar_get_UntarMaxCount(self)
- def put_UntarMaxCount(self, *args): return _chilkat.CkTar_put_UntarMaxCount(self, *args)
- def UnlockComponent(self, *args): return _chilkat.CkTar_UnlockComponent(self, *args)
- def Untar(self, *args): return _chilkat.CkTar_Untar(self, *args)
- def UntarFromMemory(self, *args): return _chilkat.CkTar_UntarFromMemory(self, *args)
- def UntarFirstMatchingToMemory(self, *args): return _chilkat.CkTar_UntarFirstMatchingToMemory(self, *args)
- def AddDirRoot(self, *args): return _chilkat.CkTar_AddDirRoot(self, *args)
- def get_NumDirRoots(self): return _chilkat.CkTar_get_NumDirRoots(self)
- def GetDirRoot(self, *args): return _chilkat.CkTar_GetDirRoot(self, *args)
- def getDirRoot(self, *args): return _chilkat.CkTar_getDirRoot(self, *args)
- def WriteTar(self, *args): return _chilkat.CkTar_WriteTar(self, *args)
- def WriteTarGz(self, *args): return _chilkat.CkTar_WriteTarGz(self, *args)
- def WriteTarBz2(self, *args): return _chilkat.CkTar_WriteTarBz2(self, *args)
- def WriteTarZ(self, *args): return _chilkat.CkTar_WriteTarZ(self, *args)
- def ListXml(self, *args): return _chilkat.CkTar_ListXml(self, *args)
- def listXml(self, *args): return _chilkat.CkTar_listXml(self, *args)
- def get_Charset(self, *args): return _chilkat.CkTar_get_Charset(self, *args)
- def charset(self): return _chilkat.CkTar_charset(self)
- def put_Charset(self, *args): return _chilkat.CkTar_put_Charset(self, *args)
- def UntarZ(self, *args): return _chilkat.CkTar_UntarZ(self, *args)
- def UntarGz(self, *args): return _chilkat.CkTar_UntarGz(self, *args)
- def UntarBz2(self, *args): return _chilkat.CkTar_UntarBz2(self, *args)
- def get_UserName(self, *args): return _chilkat.CkTar_get_UserName(self, *args)
- def userName(self): return _chilkat.CkTar_userName(self)
- def put_UserName(self, *args): return _chilkat.CkTar_put_UserName(self, *args)
- def get_GroupName(self, *args): return _chilkat.CkTar_get_GroupName(self, *args)
- def groupName(self): return _chilkat.CkTar_groupName(self)
- def put_GroupName(self, *args): return _chilkat.CkTar_put_GroupName(self, *args)
- def get_UserId(self): return _chilkat.CkTar_get_UserId(self)
- def put_UserId(self, *args): return _chilkat.CkTar_put_UserId(self, *args)
- def get_GroupId(self): return _chilkat.CkTar_get_GroupId(self)
- def put_GroupId(self, *args): return _chilkat.CkTar_put_GroupId(self, *args)
- def get_DirMode(self): return _chilkat.CkTar_get_DirMode(self)
- def put_DirMode(self, *args): return _chilkat.CkTar_put_DirMode(self, *args)
- def get_FileMode(self): return _chilkat.CkTar_get_FileMode(self)
- def put_FileMode(self, *args): return _chilkat.CkTar_put_FileMode(self, *args)
- def get_VerboseLogging(self): return _chilkat.CkTar_get_VerboseLogging(self)
- def put_VerboseLogging(self, *args): return _chilkat.CkTar_put_VerboseLogging(self, *args)
- def get_WriteFormat(self, *args): return _chilkat.CkTar_get_WriteFormat(self, *args)
- def writeFormat(self): return _chilkat.CkTar_writeFormat(self)
- def put_WriteFormat(self, *args): return _chilkat.CkTar_put_WriteFormat(self, *args)
- def get_HeartbeatMs(self): return _chilkat.CkTar_get_HeartbeatMs(self)
- def put_HeartbeatMs(self, *args): return _chilkat.CkTar_put_HeartbeatMs(self, *args)
-CkTar_swigregister = _chilkat.CkTar_swigregister
-CkTar_swigregister(CkTar)
-
-class CkSocksProxy(_object):
- __swig_setmethods__ = {}
- __setattr__ = lambda self, name, value: _swig_setattr(self, CkSocksProxy, name, value)
- __swig_getmethods__ = {}
- __getattr__ = lambda self, name: _swig_getattr(self, CkSocksProxy, name)
- __repr__ = _swig_repr
- def __init__(self):
- this = _chilkat.new_CkSocksProxy()
- try: self.this.append(this)
- except: self.this = this
- __swig_destroy__ = _chilkat.delete_CkSocksProxy
- __del__ = lambda self : None;
- def get_Utf8(self): return _chilkat.CkSocksProxy_get_Utf8(self)
- def put_Utf8(self, *args): return _chilkat.CkSocksProxy_put_Utf8(self, *args)
- def SaveLastError(self, *args): return _chilkat.CkSocksProxy_SaveLastError(self, *args)
- def LastErrorXml(self, *args): return _chilkat.CkSocksProxy_LastErrorXml(self, *args)
- def LastErrorHtml(self, *args): return _chilkat.CkSocksProxy_LastErrorHtml(self, *args)
- def LastErrorText(self, *args): return _chilkat.CkSocksProxy_LastErrorText(self, *args)
- def lastErrorText(self): return _chilkat.CkSocksProxy_lastErrorText(self)
- def lastErrorXml(self): return _chilkat.CkSocksProxy_lastErrorXml(self)
- def lastErrorHtml(self): return _chilkat.CkSocksProxy_lastErrorHtml(self)
- def UnlockComponent(self, *args): return _chilkat.CkSocksProxy_UnlockComponent(self, *args)
- def get_SocksVersion(self): return _chilkat.CkSocksProxy_get_SocksVersion(self)
- def get_AuthenticatedSocks5(self): return _chilkat.CkSocksProxy_get_AuthenticatedSocks5(self)
- def get_ConnectionPending(self): return _chilkat.CkSocksProxy_get_ConnectionPending(self)
- def get_ClientPort(self): return _chilkat.CkSocksProxy_get_ClientPort(self)
- def get_ServerPort(self): return _chilkat.CkSocksProxy_get_ServerPort(self)
- def get_ClientIp(self, *args): return _chilkat.CkSocksProxy_get_ClientIp(self, *args)
- def clientIp(self): return _chilkat.CkSocksProxy_clientIp(self)
- def get_ServerIp(self, *args): return _chilkat.CkSocksProxy_get_ServerIp(self, *args)
- def serverIp(self): return _chilkat.CkSocksProxy_serverIp(self)
- def get_Login(self, *args): return _chilkat.CkSocksProxy_get_Login(self, *args)
- def login(self): return _chilkat.CkSocksProxy_login(self)
- def get_Password(self, *args): return _chilkat.CkSocksProxy_get_Password(self, *args)
- def password(self): return _chilkat.CkSocksProxy_password(self)
- def Initialize(self, *args): return _chilkat.CkSocksProxy_Initialize(self, *args)
- def WaitForConnection(self, *args): return _chilkat.CkSocksProxy_WaitForConnection(self, *args)
- def AllowConnection(self): return _chilkat.CkSocksProxy_AllowConnection(self)
- def ProceedSocks5(self): return _chilkat.CkSocksProxy_ProceedSocks5(self)
- def RejectConnection(self): return _chilkat.CkSocksProxy_RejectConnection(self)
- def get_AllowUnauthenticatedSocks5(self): return _chilkat.CkSocksProxy_get_AllowUnauthenticatedSocks5(self)
- def put_AllowUnauthenticatedSocks5(self, *args): return _chilkat.CkSocksProxy_put_AllowUnauthenticatedSocks5(self, *args)
- def get_ListenBindIpAddress(self, *args): return _chilkat.CkSocksProxy_get_ListenBindIpAddress(self, *args)
- def listenBindIpAddress(self): return _chilkat.CkSocksProxy_listenBindIpAddress(self)
- def put_ListenBindIpAddress(self, *args): return _chilkat.CkSocksProxy_put_ListenBindIpAddress(self, *args)
- def get_OutboundBindIpAddress(self, *args): return _chilkat.CkSocksProxy_get_OutboundBindIpAddress(self, *args)
- def outboundBindIpAddress(self): return _chilkat.CkSocksProxy_outboundBindIpAddress(self)
- def put_OutboundBindIpAddress(self, *args): return _chilkat.CkSocksProxy_put_OutboundBindIpAddress(self, *args)
- def get_OutboundBindPort(self): return _chilkat.CkSocksProxy_get_OutboundBindPort(self)
- def put_OutboundBindPort(self, *args): return _chilkat.CkSocksProxy_put_OutboundBindPort(self, *args)
- def GetTunnelsXml(self, *args): return _chilkat.CkSocksProxy_GetTunnelsXml(self, *args)
- def getTunnelsXml(self): return _chilkat.CkSocksProxy_getTunnelsXml(self)
- def StopAllTunnels(self, *args): return _chilkat.CkSocksProxy_StopAllTunnels(self, *args)
-CkSocksProxy_swigregister = _chilkat.CkSocksProxy_swigregister
-CkSocksProxy_swigregister(CkSocksProxy)
-
-class CkSshTunnel(_object):
- __swig_setmethods__ = {}
- __setattr__ = lambda self, name, value: _swig_setattr(self, CkSshTunnel, name, value)
- __swig_getmethods__ = {}
- __getattr__ = lambda self, name: _swig_getattr(self, CkSshTunnel, name)
- __repr__ = _swig_repr
- def __init__(self):
- this = _chilkat.new_CkSshTunnel()
- try: self.this.append(this)
- except: self.this = this
- __swig_destroy__ = _chilkat.delete_CkSshTunnel
- __del__ = lambda self : None;
- def get_Utf8(self): return _chilkat.CkSshTunnel_get_Utf8(self)
- def put_Utf8(self, *args): return _chilkat.CkSshTunnel_put_Utf8(self, *args)
- def SaveLastError(self, *args): return _chilkat.CkSshTunnel_SaveLastError(self, *args)
- def LastErrorXml(self, *args): return _chilkat.CkSshTunnel_LastErrorXml(self, *args)
- def LastErrorHtml(self, *args): return _chilkat.CkSshTunnel_LastErrorHtml(self, *args)
- def LastErrorText(self, *args): return _chilkat.CkSshTunnel_LastErrorText(self, *args)
- def lastErrorText(self): return _chilkat.CkSshTunnel_lastErrorText(self)
- def lastErrorXml(self): return _chilkat.CkSshTunnel_lastErrorXml(self)
- def lastErrorHtml(self): return _chilkat.CkSshTunnel_lastErrorHtml(self)
- def UnlockComponent(self, *args): return _chilkat.CkSshTunnel_UnlockComponent(self, *args)
- def get_SshLogin(self, *args): return _chilkat.CkSshTunnel_get_SshLogin(self, *args)
- def sshLogin(self): return _chilkat.CkSshTunnel_sshLogin(self)
- def put_SshLogin(self, *args): return _chilkat.CkSshTunnel_put_SshLogin(self, *args)
- def get_SshPassword(self, *args): return _chilkat.CkSshTunnel_get_SshPassword(self, *args)
- def sshPassword(self): return _chilkat.CkSshTunnel_sshPassword(self)
- def put_SshPassword(self, *args): return _chilkat.CkSshTunnel_put_SshPassword(self, *args)
- def get_ConnectLog(self, *args): return _chilkat.CkSshTunnel_get_ConnectLog(self, *args)
- def connectLog(self): return _chilkat.CkSshTunnel_connectLog(self)
- def put_ConnectLog(self, *args): return _chilkat.CkSshTunnel_put_ConnectLog(self, *args)
- def get_DestHostname(self, *args): return _chilkat.CkSshTunnel_get_DestHostname(self, *args)
- def destHostname(self): return _chilkat.CkSshTunnel_destHostname(self)
- def put_DestHostname(self, *args): return _chilkat.CkSshTunnel_put_DestHostname(self, *args)
- def get_SshHostname(self, *args): return _chilkat.CkSshTunnel_get_SshHostname(self, *args)
- def sshHostname(self): return _chilkat.CkSshTunnel_sshHostname(self)
- def put_SshHostname(self, *args): return _chilkat.CkSshTunnel_put_SshHostname(self, *args)
- def get_SshPort(self): return _chilkat.CkSshTunnel_get_SshPort(self)
- def put_SshPort(self, *args): return _chilkat.CkSshTunnel_put_SshPort(self, *args)
- def get_DestPort(self): return _chilkat.CkSshTunnel_get_DestPort(self)
- def put_DestPort(self, *args): return _chilkat.CkSshTunnel_put_DestPort(self, *args)
- def get_IsAccepting(self): return _chilkat.CkSshTunnel_get_IsAccepting(self)
- def StopAllTunnels(self, *args): return _chilkat.CkSshTunnel_StopAllTunnels(self, *args)
- def GetTunnelsXml(self, *args): return _chilkat.CkSshTunnel_GetTunnelsXml(self, *args)
- def getTunnelsXml(self): return _chilkat.CkSshTunnel_getTunnelsXml(self)
- def StopAccepting(self): return _chilkat.CkSshTunnel_StopAccepting(self)
- def BeginAccepting(self, *args): return _chilkat.CkSshTunnel_BeginAccepting(self, *args)
- def SetSshAuthenticationKey(self, *args): return _chilkat.CkSshTunnel_SetSshAuthenticationKey(self, *args)
- def get_ListenBindIpAddress(self, *args): return _chilkat.CkSshTunnel_get_ListenBindIpAddress(self, *args)
- def listenBindIpAddress(self): return _chilkat.CkSshTunnel_listenBindIpAddress(self)
- def put_ListenBindIpAddress(self, *args): return _chilkat.CkSshTunnel_put_ListenBindIpAddress(self, *args)
- def get_OutboundBindIpAddress(self, *args): return _chilkat.CkSshTunnel_get_OutboundBindIpAddress(self, *args)
- def outboundBindIpAddress(self): return _chilkat.CkSshTunnel_outboundBindIpAddress(self)
- def put_OutboundBindIpAddress(self, *args): return _chilkat.CkSshTunnel_put_OutboundBindIpAddress(self, *args)
- def get_OutboundBindPort(self): return _chilkat.CkSshTunnel_get_OutboundBindPort(self)
- def put_OutboundBindPort(self, *args): return _chilkat.CkSshTunnel_put_OutboundBindPort(self, *args)
- def get_MaxPacketSize(self): return _chilkat.CkSshTunnel_get_MaxPacketSize(self)
- def put_MaxPacketSize(self, *args): return _chilkat.CkSshTunnel_put_MaxPacketSize(self, *args)
- def get_TcpNoDelay(self): return _chilkat.CkSshTunnel_get_TcpNoDelay(self)
- def put_TcpNoDelay(self, *args): return _chilkat.CkSshTunnel_put_TcpNoDelay(self, *args)
- def get_HttpProxyHostname(self, *args): return _chilkat.CkSshTunnel_get_HttpProxyHostname(self, *args)
- def httpProxyHostname(self): return _chilkat.CkSshTunnel_httpProxyHostname(self)
- def put_HttpProxyHostname(self, *args): return _chilkat.CkSshTunnel_put_HttpProxyHostname(self, *args)
- def get_HttpProxyUsername(self, *args): return _chilkat.CkSshTunnel_get_HttpProxyUsername(self, *args)
- def httpProxyUsername(self): return _chilkat.CkSshTunnel_httpProxyUsername(self)
- def put_HttpProxyUsername(self, *args): return _chilkat.CkSshTunnel_put_HttpProxyUsername(self, *args)
- def get_HttpProxyPassword(self, *args): return _chilkat.CkSshTunnel_get_HttpProxyPassword(self, *args)
- def httpProxyPassword(self): return _chilkat.CkSshTunnel_httpProxyPassword(self)
- def put_HttpProxyPassword(self, *args): return _chilkat.CkSshTunnel_put_HttpProxyPassword(self, *args)
- def get_HttpProxyAuthMethod(self, *args): return _chilkat.CkSshTunnel_get_HttpProxyAuthMethod(self, *args)
- def httpProxyAuthMethod(self): return _chilkat.CkSshTunnel_httpProxyAuthMethod(self)
- def put_HttpProxyAuthMethod(self, *args): return _chilkat.CkSshTunnel_put_HttpProxyAuthMethod(self, *args)
- def get_HttpProxyPort(self): return _chilkat.CkSshTunnel_get_HttpProxyPort(self)
- def put_HttpProxyPort(self, *args): return _chilkat.CkSshTunnel_put_HttpProxyPort(self, *args)
- def get_SocksPort(self): return _chilkat.CkSshTunnel_get_SocksPort(self)
- def put_SocksPort(self, *args): return _chilkat.CkSshTunnel_put_SocksPort(self, *args)
- def get_SocksHostname(self, *args): return _chilkat.CkSshTunnel_get_SocksHostname(self, *args)
- def socksHostname(self): return _chilkat.CkSshTunnel_socksHostname(self)
- def put_SocksHostname(self, *args): return _chilkat.CkSshTunnel_put_SocksHostname(self, *args)
- def get_SocksUsername(self, *args): return _chilkat.CkSshTunnel_get_SocksUsername(self, *args)
- def socksUsername(self): return _chilkat.CkSshTunnel_socksUsername(self)
- def put_SocksUsername(self, *args): return _chilkat.CkSshTunnel_put_SocksUsername(self, *args)
- def get_SocksPassword(self, *args): return _chilkat.CkSshTunnel_get_SocksPassword(self, *args)
- def socksPassword(self): return _chilkat.CkSshTunnel_socksPassword(self)
- def put_SocksPassword(self, *args): return _chilkat.CkSshTunnel_put_SocksPassword(self, *args)
- def get_SocksVersion(self): return _chilkat.CkSshTunnel_get_SocksVersion(self)
- def put_SocksVersion(self, *args): return _chilkat.CkSshTunnel_put_SocksVersion(self, *args)
- def get_ConnectTimeoutMs(self): return _chilkat.CkSshTunnel_get_ConnectTimeoutMs(self)
- def put_ConnectTimeoutMs(self, *args): return _chilkat.CkSshTunnel_put_ConnectTimeoutMs(self, *args)
- def get_ListenPort(self): return _chilkat.CkSshTunnel_get_ListenPort(self)
-CkSshTunnel_swigregister = _chilkat.CkSshTunnel_swigregister
-CkSshTunnel_swigregister(CkSshTunnel)
-
-class CkNtlm(_object):
- __swig_setmethods__ = {}
- __setattr__ = lambda self, name, value: _swig_setattr(self, CkNtlm, name, value)
- __swig_getmethods__ = {}
- __getattr__ = lambda self, name: _swig_getattr(self, CkNtlm, name)
- __repr__ = _swig_repr
- def __init__(self):
- this = _chilkat.new_CkNtlm()
- try: self.this.append(this)
- except: self.this = this
- __swig_destroy__ = _chilkat.delete_CkNtlm
- __del__ = lambda self : None;
- def get_Utf8(self): return _chilkat.CkNtlm_get_Utf8(self)
- def put_Utf8(self, *args): return _chilkat.CkNtlm_put_Utf8(self, *args)
- def SaveLastError(self, *args): return _chilkat.CkNtlm_SaveLastError(self, *args)
- def LastErrorXml(self, *args): return _chilkat.CkNtlm_LastErrorXml(self, *args)
- def LastErrorHtml(self, *args): return _chilkat.CkNtlm_LastErrorHtml(self, *args)
- def LastErrorText(self, *args): return _chilkat.CkNtlm_LastErrorText(self, *args)
- def lastErrorText(self): return _chilkat.CkNtlm_lastErrorText(self)
- def lastErrorXml(self): return _chilkat.CkNtlm_lastErrorXml(self)
- def lastErrorHtml(self): return _chilkat.CkNtlm_lastErrorHtml(self)
- def UnlockComponent(self, *args): return _chilkat.CkNtlm_UnlockComponent(self, *args)
- def get_TargetName(self, *args): return _chilkat.CkNtlm_get_TargetName(self, *args)
- def targetName(self): return _chilkat.CkNtlm_targetName(self)
- def put_TargetName(self, *args): return _chilkat.CkNtlm_put_TargetName(self, *args)
- def get_NetBiosComputerName(self, *args): return _chilkat.CkNtlm_get_NetBiosComputerName(self, *args)
- def netBiosComputerName(self): return _chilkat.CkNtlm_netBiosComputerName(self)
- def put_NetBiosComputerName(self, *args): return _chilkat.CkNtlm_put_NetBiosComputerName(self, *args)
- def get_NetBiosDomainName(self, *args): return _chilkat.CkNtlm_get_NetBiosDomainName(self, *args)
- def netBiosDomainName(self): return _chilkat.CkNtlm_netBiosDomainName(self)
- def put_NetBiosDomainName(self, *args): return _chilkat.CkNtlm_put_NetBiosDomainName(self, *args)
- def get_DnsDomainName(self, *args): return _chilkat.CkNtlm_get_DnsDomainName(self, *args)
- def dnsDomainName(self): return _chilkat.CkNtlm_dnsDomainName(self)
- def put_DnsDomainName(self, *args): return _chilkat.CkNtlm_put_DnsDomainName(self, *args)
- def get_DnsComputerName(self, *args): return _chilkat.CkNtlm_get_DnsComputerName(self, *args)
- def dnsComputerName(self): return _chilkat.CkNtlm_dnsComputerName(self)
- def put_DnsComputerName(self, *args): return _chilkat.CkNtlm_put_DnsComputerName(self, *args)
- def get_UserName(self, *args): return _chilkat.CkNtlm_get_UserName(self, *args)
- def userName(self): return _chilkat.CkNtlm_userName(self)
- def put_UserName(self, *args): return _chilkat.CkNtlm_put_UserName(self, *args)
- def get_Password(self, *args): return _chilkat.CkNtlm_get_Password(self, *args)
- def password(self): return _chilkat.CkNtlm_password(self)
- def put_Password(self, *args): return _chilkat.CkNtlm_put_Password(self, *args)
- def get_NtlmVersion(self): return _chilkat.CkNtlm_get_NtlmVersion(self)
- def put_NtlmVersion(self, *args): return _chilkat.CkNtlm_put_NtlmVersion(self, *args)
- def get_OemCodePage(self): return _chilkat.CkNtlm_get_OemCodePage(self)
- def put_OemCodePage(self, *args): return _chilkat.CkNtlm_put_OemCodePage(self, *args)
- def get_Flags(self, *args): return _chilkat.CkNtlm_get_Flags(self, *args)
- def flags(self): return _chilkat.CkNtlm_flags(self)
- def put_Flags(self, *args): return _chilkat.CkNtlm_put_Flags(self, *args)
- def get_Domain(self, *args): return _chilkat.CkNtlm_get_Domain(self, *args)
- def domain(self): return _chilkat.CkNtlm_domain(self)
- def put_Domain(self, *args): return _chilkat.CkNtlm_put_Domain(self, *args)
- def get_Workstation(self, *args): return _chilkat.CkNtlm_get_Workstation(self, *args)
- def workstation(self): return _chilkat.CkNtlm_workstation(self)
- def put_Workstation(self, *args): return _chilkat.CkNtlm_put_Workstation(self, *args)
- def GenType1(self, *args): return _chilkat.CkNtlm_GenType1(self, *args)
- def genType1(self): return _chilkat.CkNtlm_genType1(self)
- def GenType2(self, *args): return _chilkat.CkNtlm_GenType2(self, *args)
- def genType2(self, *args): return _chilkat.CkNtlm_genType2(self, *args)
- def GenType3(self, *args): return _chilkat.CkNtlm_GenType3(self, *args)
- def genType3(self, *args): return _chilkat.CkNtlm_genType3(self, *args)
- def ParseType1(self, *args): return _chilkat.CkNtlm_ParseType1(self, *args)
- def parseType1(self, *args): return _chilkat.CkNtlm_parseType1(self, *args)
- def ParseType2(self, *args): return _chilkat.CkNtlm_ParseType2(self, *args)
- def parseType2(self, *args): return _chilkat.CkNtlm_parseType2(self, *args)
- def ParseType3(self, *args): return _chilkat.CkNtlm_ParseType3(self, *args)
- def parseType3(self, *args): return _chilkat.CkNtlm_parseType3(self, *args)
- def get_EncodingMode(self, *args): return _chilkat.CkNtlm_get_EncodingMode(self, *args)
- def encodingMode(self): return _chilkat.CkNtlm_encodingMode(self)
- def put_EncodingMode(self, *args): return _chilkat.CkNtlm_put_EncodingMode(self, *args)
- def SetFlag(self, *args): return _chilkat.CkNtlm_SetFlag(self, *args)
- def get_ClientChallenge(self, *args): return _chilkat.CkNtlm_get_ClientChallenge(self, *args)
- def clientChallenge(self): return _chilkat.CkNtlm_clientChallenge(self)
- def put_ClientChallenge(self, *args): return _chilkat.CkNtlm_put_ClientChallenge(self, *args)
- def get_ServerChallenge(self, *args): return _chilkat.CkNtlm_get_ServerChallenge(self, *args)
- def serverChallenge(self): return _chilkat.CkNtlm_serverChallenge(self)
- def put_ServerChallenge(self, *args): return _chilkat.CkNtlm_put_ServerChallenge(self, *args)
- def LoadType3(self, *args): return _chilkat.CkNtlm_LoadType3(self, *args)
-CkNtlm_swigregister = _chilkat.CkNtlm_swigregister
-CkNtlm_swigregister(CkNtlm)
-
-class CkDkim(_object):
- __swig_setmethods__ = {}
- __setattr__ = lambda self, name, value: _swig_setattr(self, CkDkim, name, value)
- __swig_getmethods__ = {}
- __getattr__ = lambda self, name: _swig_getattr(self, CkDkim, name)
- __repr__ = _swig_repr
- def __init__(self):
- this = _chilkat.new_CkDkim()
- try: self.this.append(this)
- except: self.this = this
- __swig_destroy__ = _chilkat.delete_CkDkim
- __del__ = lambda self : None;
- def get_Utf8(self): return _chilkat.CkDkim_get_Utf8(self)
- def put_Utf8(self, *args): return _chilkat.CkDkim_put_Utf8(self, *args)
- def UnlockComponent(self, *args): return _chilkat.CkDkim_UnlockComponent(self, *args)
- def get_DkimCanon(self, *args): return _chilkat.CkDkim_get_DkimCanon(self, *args)
- def dkimCanon(self): return _chilkat.CkDkim_dkimCanon(self)
- def put_DkimCanon(self, *args): return _chilkat.CkDkim_put_DkimCanon(self, *args)
- def get_DomainKeyCanon(self, *args): return _chilkat.CkDkim_get_DomainKeyCanon(self, *args)
- def domainKeyCanon(self): return _chilkat.CkDkim_domainKeyCanon(self)
- def put_DomainKeyCanon(self, *args): return _chilkat.CkDkim_put_DomainKeyCanon(self, *args)
- def get_DkimAlg(self, *args): return _chilkat.CkDkim_get_DkimAlg(self, *args)
- def dkimAlg(self): return _chilkat.CkDkim_dkimAlg(self)
- def put_DkimAlg(self, *args): return _chilkat.CkDkim_put_DkimAlg(self, *args)
- def get_DomainKeyAlg(self, *args): return _chilkat.CkDkim_get_DomainKeyAlg(self, *args)
- def domainKeyAlg(self): return _chilkat.CkDkim_domainKeyAlg(self)
- def put_DomainKeyAlg(self, *args): return _chilkat.CkDkim_put_DomainKeyAlg(self, *args)
- def get_DkimHeaders(self, *args): return _chilkat.CkDkim_get_DkimHeaders(self, *args)
- def dkimHeaders(self): return _chilkat.CkDkim_dkimHeaders(self)
- def put_DkimHeaders(self, *args): return _chilkat.CkDkim_put_DkimHeaders(self, *args)
- def get_DomainKeyHeaders(self, *args): return _chilkat.CkDkim_get_DomainKeyHeaders(self, *args)
- def domainKeyHeaders(self): return _chilkat.CkDkim_domainKeyHeaders(self)
- def put_DomainKeyHeaders(self, *args): return _chilkat.CkDkim_put_DomainKeyHeaders(self, *args)
- def get_DkimDomain(self, *args): return _chilkat.CkDkim_get_DkimDomain(self, *args)
- def dkimDomain(self): return _chilkat.CkDkim_dkimDomain(self)
- def put_DkimDomain(self, *args): return _chilkat.CkDkim_put_DkimDomain(self, *args)
- def get_DomainKeyDomain(self, *args): return _chilkat.CkDkim_get_DomainKeyDomain(self, *args)
- def domainKeyDomain(self): return _chilkat.CkDkim_domainKeyDomain(self)
- def put_DomainKeyDomain(self, *args): return _chilkat.CkDkim_put_DomainKeyDomain(self, *args)
- def get_DkimSelector(self, *args): return _chilkat.CkDkim_get_DkimSelector(self, *args)
- def dkimSelector(self): return _chilkat.CkDkim_dkimSelector(self)
- def put_DkimSelector(self, *args): return _chilkat.CkDkim_put_DkimSelector(self, *args)
- def get_DomainKeySelector(self, *args): return _chilkat.CkDkim_get_DomainKeySelector(self, *args)
- def domainKeySelector(self): return _chilkat.CkDkim_domainKeySelector(self)
- def put_DomainKeySelector(self, *args): return _chilkat.CkDkim_put_DomainKeySelector(self, *args)
- def get_DkimBodyLengthCount(self): return _chilkat.CkDkim_get_DkimBodyLengthCount(self)
- def put_DkimBodyLengthCount(self, *args): return _chilkat.CkDkim_put_DkimBodyLengthCount(self, *args)
- def LoadDkimPk(self, *args): return _chilkat.CkDkim_LoadDkimPk(self, *args)
- def LoadDomainKeyPk(self, *args): return _chilkat.CkDkim_LoadDomainKeyPk(self, *args)
- def LoadDkimPkFile(self, *args): return _chilkat.CkDkim_LoadDkimPkFile(self, *args)
- def LoadDomainKeyPkFile(self, *args): return _chilkat.CkDkim_LoadDomainKeyPkFile(self, *args)
- def LoadPublicKey(self, *args): return _chilkat.CkDkim_LoadPublicKey(self, *args)
- def LoadPublicKeyFile(self, *args): return _chilkat.CkDkim_LoadPublicKeyFile(self, *args)
- def PrefetchPublicKey(self, *args): return _chilkat.CkDkim_PrefetchPublicKey(self, *args)
- def VerifyDkimSignature(self, *args): return _chilkat.CkDkim_VerifyDkimSignature(self, *args)
- def VerifyDomainKeySignature(self, *args): return _chilkat.CkDkim_VerifyDomainKeySignature(self, *args)
- def NumDkimSignatures(self, *args): return _chilkat.CkDkim_NumDkimSignatures(self, *args)
- def NumDomainKeySignatures(self, *args): return _chilkat.CkDkim_NumDomainKeySignatures(self, *args)
- def AddDkimSignature(self, *args): return _chilkat.CkDkim_AddDkimSignature(self, *args)
- def AddDomainKeySignature(self, *args): return _chilkat.CkDkim_AddDomainKeySignature(self, *args)
- def LoadDkimPkBytes(self, *args): return _chilkat.CkDkim_LoadDkimPkBytes(self, *args)
- def LoadDomainKeyPkBytes(self, *args): return _chilkat.CkDkim_LoadDomainKeyPkBytes(self, *args)
- def SaveLastError(self, *args): return _chilkat.CkDkim_SaveLastError(self, *args)
- def LastErrorXml(self, *args): return _chilkat.CkDkim_LastErrorXml(self, *args)
- def LastErrorHtml(self, *args): return _chilkat.CkDkim_LastErrorHtml(self, *args)
- def LastErrorText(self, *args): return _chilkat.CkDkim_LastErrorText(self, *args)
- def lastErrorText(self): return _chilkat.CkDkim_lastErrorText(self)
- def lastErrorXml(self): return _chilkat.CkDkim_lastErrorXml(self)
- def lastErrorHtml(self): return _chilkat.CkDkim_lastErrorHtml(self)
-CkDkim_swigregister = _chilkat.CkDkim_swigregister
-CkDkim_swigregister(CkDkim)
-
-class CkDirTree(_object):
- __swig_setmethods__ = {}
- __setattr__ = lambda self, name, value: _swig_setattr(self, CkDirTree, name, value)
- __swig_getmethods__ = {}
- __getattr__ = lambda self, name: _swig_getattr(self, CkDirTree, name)
- __repr__ = _swig_repr
- def __init__(self):
- this = _chilkat.new_CkDirTree()
- try: self.this.append(this)
- except: self.this = this
- __swig_destroy__ = _chilkat.delete_CkDirTree
- __del__ = lambda self : None;
- def get_Utf8(self): return _chilkat.CkDirTree_get_Utf8(self)
- def put_Utf8(self, *args): return _chilkat.CkDirTree_put_Utf8(self, *args)
- def get_BaseDir(self, *args): return _chilkat.CkDirTree_get_BaseDir(self, *args)
- def baseDir(self): return _chilkat.CkDirTree_baseDir(self)
- def put_BaseDir(self, *args): return _chilkat.CkDirTree_put_BaseDir(self, *args)
- def get_Recurse(self): return _chilkat.CkDirTree_get_Recurse(self)
- def put_Recurse(self, *args): return _chilkat.CkDirTree_put_Recurse(self, *args)
- def get_DoneIterating(self): return _chilkat.CkDirTree_get_DoneIterating(self)
- def BeginIterate(self): return _chilkat.CkDirTree_BeginIterate(self)
- def AdvancePosition(self): return _chilkat.CkDirTree_AdvancePosition(self)
- def get_IsDirectory(self): return _chilkat.CkDirTree_get_IsDirectory(self)
- def get_RelativePath(self, *args): return _chilkat.CkDirTree_get_RelativePath(self, *args)
- def relativePath(self): return _chilkat.CkDirTree_relativePath(self)
- def get_FullPath(self, *args): return _chilkat.CkDirTree_get_FullPath(self, *args)
- def fullPath(self): return _chilkat.CkDirTree_fullPath(self)
- def get_FullUncPath(self, *args): return _chilkat.CkDirTree_get_FullUncPath(self, *args)
- def fullUncPath(self): return _chilkat.CkDirTree_fullUncPath(self)
- def get_FileSize32(self): return _chilkat.CkDirTree_get_FileSize32(self)
- def SaveLastError(self, *args): return _chilkat.CkDirTree_SaveLastError(self, *args)
- def LastErrorXml(self, *args): return _chilkat.CkDirTree_LastErrorXml(self, *args)
- def LastErrorHtml(self, *args): return _chilkat.CkDirTree_LastErrorHtml(self, *args)
- def LastErrorText(self, *args): return _chilkat.CkDirTree_LastErrorText(self, *args)
- def lastErrorText(self): return _chilkat.CkDirTree_lastErrorText(self)
- def lastErrorXml(self): return _chilkat.CkDirTree_lastErrorXml(self)
- def lastErrorHtml(self): return _chilkat.CkDirTree_lastErrorHtml(self)
-CkDirTree_swigregister = _chilkat.CkDirTree_swigregister
-CkDirTree_swigregister(CkDirTree)
-
-
-
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/outlook/plugin/openerp-outlook-plugin/dialogs/__init__.py b/addons/outlook/plugin/openerp-outlook-plugin/dialogs/__init__.py
deleted file mode 100644
index a19f2d59cff..00000000000
--- a/addons/outlook/plugin/openerp-outlook-plugin/dialogs/__init__.py
+++ /dev/null
@@ -1,83 +0,0 @@
-# This package defines dialog boxes used by the main
-
-# This module is part of the spambayes project, which is Copyright 2003
-# The Python Software Foundation and is covered by the Python Software
-# Foundation license.
-import os, sys, stat
-#import dialog_map
-
-def LoadDialogs(rc_name = "dialogs.rc"):
- base_name = os.path.splitext(rc_name)[0]
- mod_name = "dialogs.resources." + base_name
- mod = None
- # If we are running from source code, check the .py file is up to date
- # wrt the .rc file passed in.
- # If we are running from binaries, the rc name is not used at all - we
- # assume someone running from source previously generated the .py!
- if not hasattr(sys, "frozen"):
- from resources import rc2py
- rc_path = os.path.dirname( rc2py.__file__ )
- if not os.path.isabs(rc_name):
- rc_name = os.path.join( rc_path, rc_name)
- py_name = os.path.join(rc_path, base_name + ".py")
- mtime = size = None
- if os.path.exists(py_name):
- try:
- mod = __import__(mod_name)
- mod = sys.modules[mod_name]
- mtime = mod._rc_mtime_
- size = mod._rc_size_
- except (ImportError, AttributeError):
- mtime = None
- try:
- stat_data = os.stat(rc_name)
- rc_mtime = stat_data[stat.ST_MTIME]
- rc_size = stat_data[stat.ST_SIZE]
- except OSError:
- rc_mtime = rc_size = None
- if rc_mtime!=mtime or rc_size!=size:
- # Need to generate the dialog.
- print "Generating %s from %s" % (py_name, rc_name)
- rc2py.convert(rc_name, py_name)
- if mod is not None:
- reload(mod)
- if mod is None:
- mod = __import__(mod_name)
- mod = sys.modules[mod_name]
- return mod.FakeParser()
-
-def ShowDialog(parent, manager, config, idd):
- """Displays another dialog"""
- if manager.dialog_parser is None:
- manager.dialog_parser = LoadDialogs()
- import dialog_map
- print dir(dialog_map)
- commands = dialog_map.dialog_map[idd]
- if not parent:
- import win32gui
- try:
- parent = win32gui.GetActiveWindow()
- except win32gui.error:
- pass
-
- import dlgcore
- dlg = dlgcore.ProcessorDialog(parent, manager, config, idd, commands)
- return dlg.DoModal()
-
-def MakePropertyPage(parent, manager, config, idd, yoffset=24):
- """Creates a child dialog box to use as property page in a tab control"""
- if manager.dialog_parser is None:
- manager.dialog_parser = LoadDialogs()
- import dialog_map
- commands = dialog_map.dialog_map[idd]
- if not parent:
- raise "Parent must be the tab control"
-
- import dlgcore
- dlg = dlgcore.ProcessorPage(parent, manager, config, idd, commands, yoffset)
- return dlg
-
-import dlgutils
-SetWaitCursor = dlgutils.SetWaitCursor
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/outlook/plugin/openerp-outlook-plugin/dialogs/dialog_map.py b/addons/outlook/plugin/openerp-outlook-plugin/dialogs/dialog_map.py
deleted file mode 100644
index 8576a3526ff..00000000000
--- a/addons/outlook/plugin/openerp-outlook-plugin/dialogs/dialog_map.py
+++ /dev/null
@@ -1,1810 +0,0 @@
-# This module is part of the spambayes project, which is Copyright 2003
-# The Python Software Foundation and is covered by the Python Software
-# Foundation license.
-
-# -*- 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 .
-#
-##############################################################################
-
-from processors import *
-from opt_processors import *
-import os
-import addin
-from dialogs import ShowDialog, MakePropertyPage
-
-import win32ui
-import webbrowser
-import commctrl
-import win32con
-import win32gui
-
-import win32gui_struct
-import xmlrpclib
-
-from manager import ustr
-
-try:
- enumerate
-except NameError: # enumerate new in 2.3
- def enumerate(seq):
- return [(i, seq[i]) for i in xrange(len(seq))]
-
-BIF_NEWDIALOGSTYLE = 0x00000040
-BIF_NONEWFOLDERBUTTON = 0x0000200
-CSIDL_COMMONMYPICTURES = 0x00000036
-
-class _WIN32MASKEDSTRUCT:
- def __init__(self, **kw):
- full_fmt = ""
- for name, fmt, default, mask in self._struct_items_:
- self.__dict__[name] = None
- if fmt == "z":
- full_fmt += "pi"
- else:
- full_fmt += fmt
- for name, val in kw.iteritems():
- if name not in self.__dict__:
- raise ValueError("LVITEM structures do not have an item '%s'" % (name,))
- self.__dict__[name] = val
-
- def __setattr__(self, attr, val):
- if not attr.startswith("_") and attr not in self.__dict__:
- raise AttributeError(attr)
- self.__dict__[attr] = val
-
- def toparam(self):
- self._buffs = []
- full_fmt = ""
- vals = []
- mask = 0
- # calc the mask
- for name, fmt, default, this_mask in self._struct_items_:
- if this_mask is not None and self.__dict__.get(name) is not None:
- mask |= this_mask
- self.mask = mask
- for name, fmt, default, this_mask in self._struct_items_:
- val = self.__dict__[name]
- if fmt == "z":
- fmt = "Pi"
- if val is None:
- vals.append(0)
- vals.append(0)
- else:
- # Note this demo still works with byte strings. An
- # alternate strategy would be to use unicode natively
- # and use the 'W' version of the messages - eg,
- # LVM_SETITEMW etc.
- val = val + "\0"
- if isinstance(val, unicode):
- val = val.encode("mbcs")
- str_buf = array.array("b", val)
- vals.append(str_buf.buffer_info()[0])
- vals.append(len(val))
- self._buffs.append(str_buf) # keep alive during the call.
- else:
- if val is None:
- val = default
- vals.append(val)
- full_fmt += fmt
- return struct.pack(*(full_fmt,) + tuple(vals))
-
-
-# NOTE: See the win32gui_struct module for an alternative way of dealing
-# with these structures
-class LVITEM(_WIN32MASKEDSTRUCT):
- _struct_items_ = [
- ("mask", "I", 0, None),
- ("iItem", "i", 0, None),
- ("iSubItem", "i", 0, None),
- ("state", "I", 0, commctrl.LVIF_STATE),
- ("stateMask", "I", 0, None),
- ("text", "z", None, commctrl.LVIF_TEXT),
- ("iImage", "i", 0, commctrl.LVIF_IMAGE),
- ("lParam", "i", 0, commctrl.LVIF_PARAM),
- ("iIdent", "i", 0, None),
- ("cchTextMax", "i", 0, 255),
- ("pszText", "i", 0, None),
- ("flags", "i", 0, None),
- ]
-
-class LVCOLUMN(_WIN32MASKEDSTRUCT):
- _struct_items_ = [
- ("mask", "I", 0, None),
- ("fmt", "i", 0, commctrl.LVCF_FMT),
- ("cx", "i", 0, commctrl.LVCF_WIDTH),
- ("text", "z", None, commctrl.LVCF_TEXT),
- ("iSubItem", "i", 0, commctrl.LVCF_SUBITEM),
- ("iImage", "i", 0, commctrl.LVCF_IMAGE),
- ("iOrder", "i", 0, commctrl.LVCF_ORDER),
- ]
-
-global flag_stop
-flag_stop=win32con.MB_ICONSTOP
-
-global flag_error
-flag_error=win32con.MB_ICONERROR
-
-global flag_info
-flag_info=win32con.MB_ICONINFORMATION
-
-global flag_excl
-flag_excl=win32con.MB_ICONEXCLAMATION
-
-#global NewConn
-NewConn=addin.GetConn()
-## Retrieves current registered XMLRPC connection
-def GetConn():
- return NewConn
-
-global objects_with_match
-objects_with_match=[]
-
-global hwndChk_list
-hwndChk_list=[]
-
-global search_text
-search_text='search_text'
-global partner_ref
-partner_ref = ''
-global name
-name=''
-global email
-email=''
-global country_ref
-country_ref = ""
-global state_ref
-state_ref = ""
-global new_con_country
-new_con_country= ""
-global new_con_state
-new_con_state= ""
-global search_country
-search_country = None
-
-def check():
- server = NewConn.getitem('_server')
- port = NewConn.getitem('_port')
- NewConn.GetDBList()
- if str(NewConn.getitem('_running')) == 'False':
- win32ui.MessageBox("No server running on host "+ server+" at port "+str(port), "OpenERP Connection", flag_excl)
- return False
- if str(NewConn.getitem('_login')) == 'False':
- return False
- return True
-
-def resetConnAttribs(window):
- config = window.manager.LoadConfig()
- NewConn.setitem('_server', config['server'])
- NewConn.setitem('_port', config['port'])
- NewConn.setitem('protocol', config['protocol'])
- NewConn.setitem('_uri', "http://" + config['server'] + ":" + str(config['port']))
- NewConn.setitem('_obj_list', config['objects'])
- NewConn.setitem('_dbname', config['database'])
- NewConn.setitem('_uname', config['uname'])
- NewConn.setitem('_pwd', config['pwd'])
- NewConn.setitem('_login', str(config['login']))
- NewConn.setitem('_webserver',manager.config['webserver'])
- NewConn.setitem('_webport',manager.config['webport'])
- NewConn.setitem('_webportocol',manager.config['webportocol'])
- return
-
-def setConnAttribs(server, port, manager):
- protocol = NewConn.getitem('protocol')
- if protocol=='XML-RPCS':
- protocol='https://'
- else:
- protocol='http://'
- uri = protocol + server + ":" + str(port)
- NewConn.setitem('_server',server)
- NewConn.setitem('_port',port)
- NewConn.setitem('_uri',uri)
- NewConn.GetDBList()
- manager.config = manager.LoadConfig()
- NewConn.setitem('_dbname',manager.config['database'])
- NewConn.setitem('_uname', manager.config['uname'])
- NewConn.setitem('_pwd', manager.config['pwd'])
- NewConn.setitem('_login', str(manager.config['login']))
- NewConn.setitem('_obj_list', manager.config['objects'])
- NewConn.setitem('_webserver',manager.config['webserver'])
- NewConn.setitem('_webport',manager.config['webport'])
- NewConn.setitem('_webprotocol',manager.config['webprotocol'])
- return
-
-def getConnAttributes(manager):
- manager.config['server'] = NewConn.getitem('_server')
- manager.config['port'] = NewConn.getitem('_port')
- manager.config['protocol'] = NewConn.getitem('protocol')
- manager.config['objects'] = eval(NewConn.getitem('_obj_list'))
- manager.config['database'] = NewConn.getitem('_dbname')
- manager.config['uname'] = NewConn.getitem('_uname')
- manager.config['pwd'] = NewConn.getitem('_pwd')
- manager.config['login'] = NewConn.getitem('_login')
- manager.config['webserver'] = NewConn.getitem('_webserver')
- manager.config['webport'] = NewConn.getitem('_webport')
- manager.config['webprotocol'] = NewConn.getitem('_webprotocol')
- return
-
-def setWebConnAttribs(server, port, manager):
- manager.config = manager.LoadConfig()
- NewConn.setitem('_webserver',server)
- NewConn.setitem('_webport',port)
- return
-
-def getMessage(e):
- import pywintypes
- print "Exception %s: %s"%(type(e),str(e))
- msg = str(e)
- if type(e) == pywintypes.com_error:
- msg=str(e)
- elif type(e) == xmlrpclib.Fault:
- msg = str(e.faultCode) or e.faultString or e.message or str(e)
- else:
- if hasattr(e, 'faultCode') and e.faultCode:
- msg = str(e.faultCode)
- elif hasattr(e, 'faultString') and e.faultString:
- msg = e.faultString
- elif hasattr(e, 'message') and e.message:
- msg = e.message
- return msg
-
-class OKButtonProcessor(ButtonProcessor):
- def __init__(self, window, control_ids):
- self.mngr = window.manager
- ControlProcessor.__init__(self, window, control_ids)
-
- def OnClicked(self, id):
- server = win32gui.GetDlgItemText(self.window.hwnd, self.other_ids[0])
- protocol = win32gui.GetDlgItemText(self.window.hwnd, self.other_ids[3])
- if not protocol:
- win32ui.MessageBox("Invalid Protocol !\nPlease select Protocol from Connection Protocol List.", "OpenERP Connection", flag_excl)
- return
- NewConn.setitem('protocol', protocol)
- try:
- port = int(win32gui.GetDlgItemText(self.window.hwnd, self.other_ids[1]))
- except ValueError, e:
- win32ui.MessageBox("Port should be an integer", "OpenERP Connection", flag_excl)
- return
- except Exception,e:
- msg = getMessage(e)
- win32ui.MessageBox(msg, "OpenERP Connection", flag_excl)
- return
- setConnAttribs(server, port, self.mngr)
- if str(NewConn.getitem('_running')) == 'False':
- msg = "No server running on host '%s' at port '%d'. Press ignore to still continue with this configuration?"%(server,port)
- r=win32ui.MessageBox(msg, "OpenERP Connection", win32con.MB_ABORTRETRYIGNORE | win32con.MB_ICONQUESTION)
- if r==3:
- resetConnAttribs(self.window)
- return
- elif r==4:
- self.OnClicked(id)
- elif r==5:
- setConnAttribs(server, port, self.mngr)
- win32gui.EndDialog(self.window.hwnd, id)
-
-class DoneButtonProcessor(ButtonProcessor):
- def OnClicked(self, id):
- getConnAttributes(self.window.manager)
- self.window.manager.SaveConfig()
- win32gui.EndDialog(self.window.hwnd, id)
-
-class WEBOKButtonProcessor(ButtonProcessor):
- def __init__(self, window, control_ids):
- self.mngr = window.manager
- ControlProcessor.__init__(self, window, control_ids)
-
- def OnClicked(self, id):
-# global web_server
-# global web_server_port
- server = win32gui.GetDlgItemText(self.window.hwnd, self.other_ids[0])
- web_protocol = 'http:\\\\'
-
- hwnd = win32gui.GetDlgItem(self.window.hwnd, self.other_ids[2])
- chk = win32gui.SendMessage(hwnd, win32con.BM_GETCHECK)
- if chk:
- web_protocol = 'https:\\\\'
- NewConn.setitem('_webprotocol', web_protocol)
- try:
- port = int(win32gui.GetDlgItemText(self.window.hwnd, self.other_ids[1]))
- except ValueError:
- win32ui.MessageBox("Port should be an integer", "OpenERP Connection", flag_excl)
- return
- if server.strip() == "" or server.strip() == "http:\\\\":
- win32ui.MessageBox("Invalid web Server address.", "OpenERP Connection", flag_excl)
- return
- setWebConnAttribs(server, port, self.mngr)
- win32gui.EndDialog(self.window.hwnd, id)
-
-class WEBCHKProcessor(ButtonProcessor):
- def __init__(self, window, control_ids):
- self.mngr = window.manager
- ControlProcessor.__init__(self, window, control_ids)
-
- def OnClicked(self, id):
- web_protocol = 'http:\\\\'
- hwnd = self.GetControl()
- chk = win32gui.SendMessage(hwnd, win32con.BM_GETCHECK)
- if chk:
- web_protocol = 'https:\\\\'
- NewConn.setitem('_webprotocol', web_protocol)
-
-class MessageProcessor(ControlProcessor):
- def Init(self):
- text = " This Outlook Plugin for OpenERP has been developed by OpenERP s.a.\n\n \
- For more information, please visit our website \n\n \
- http://www.openerp.com \n\n\n \
- Copyright @ 2005-Today. All rights reserved.\n\n\
-OpenERP is a trademark of OpenERP s.a. The software is released under AGPL."
- win32gui.SendMessage(self.GetControl(), win32con.WM_SETTEXT, 0, text)
-
- def GetPopupHelpText(self, cid):
- return "Displays details on this plugin"
-
-class TabProcessor(ControlProcessor):
- def __init__(self, window, control_ids, page_ids):
- ControlProcessor.__init__(self, window, control_ids)
- self.page_ids = page_ids.split()
-
- def Init(self):
- self.pages = {}
- self.currentPage = None
- self.currentPageIndex = -1
- self.currentPageHwnd = None
- for index, page_id in enumerate(self.page_ids):
- template = self.window.manager.dialog_parser.dialogs[page_id]
- self.addPage(index, page_id, template[0][0])
- server = self.window.manager.config['server']
- port = self.window.manager.config['port']
- setConnAttribs(server, port, self.window.manager)
- self.switchToPage(0)
-
- def Done(self):
- if self.currentPageHwnd is not None:
- if not self.currentPage.SaveAllControls():
- win32gui.SendMessage(self.GetControl(), commctrl.TCM_SETCURSEL, self.currentPageIndex,0)
- return False
- return True
-
- def OnNotify(self, nmhdr, wparam, lparam):
- selChangedCode = 5177342
- code = nmhdr[2]
- if code==selChangedCode:
- index = win32gui.SendMessage(self.GetControl(), commctrl.TCM_GETCURSEL, 0,0)
- if index!=self.currentPageIndex:
- self.switchToPage(index)
-
- def switchToPage(self, index):
- if self.currentPageHwnd is not None:
- if not self.currentPage.SaveAllControls():
- win32gui.SendMessage(self.GetControl(), commctrl.TCM_SETCURSEL, self.currentPageIndex,0)
- return 1
- win32gui.DestroyWindow(self.currentPageHwnd)
- self.currentPage = MakePropertyPage(self.GetControl(), self.window.manager, self.window.config, self.pages[index])
- self.currentPageHwnd = self.currentPage.CreateWindow()
- self.currentPageIndex = index
- return 0
-#
- def addPage(self, item, idName, label):
- format = "iiiiiii"
- lbuf = win32gui.PyMakeBuffer(len(label)+1)
- address,l = win32gui.PyGetBufferAddressAndLen(lbuf)
- win32gui.PySetString(address, label)
-
- buf = struct.pack(format,
- commctrl.TCIF_TEXT, # mask
- 0, # state
- 0, # state mask
- address,
- 0, #unused
- 0, #image
- item
- )
- item = win32gui.SendMessage(self.GetControl(),
- commctrl.TCM_INSERTITEM,
- item,
- buf)
- self.pages[item] = idName
-
-class DialogCommand(ButtonProcessor):
- def __init__(self, window, control_ids, idd, func=None, args=()):
- self.idd = idd
- self.func = func
- self.args = args
- ButtonProcessor.__init__(self, window, control_ids)
-
- def OnClicked(self, id):
- self.id = id
- if self.func:
- args = (self, ) + self.args
- self.func(*args)
- parent = self.window.hwnd
- self.window.SaveAllControls()
- ShowDialog(parent, self.window.manager, self.window.config, self.idd)
- self.window.LoadAllControls()
-
- def GetPopupHelpText(self, id):
- dd = self.window.manager.dialog_parser.dialogs[self.idd]
- return "Displays the %s dialog" % dd.caption
-
-def TestConnection(btnProcessor,*args):
- dbname = None
- server = NewConn.getitem('_server')
- port = NewConn.getitem('_port')
- NewConn.GetDBList()
- if str(NewConn.getitem('_running')) == 'False':
- btnProcessor.window.LoadAllControls()
- win32ui.MessageBox("No server running on host "+ server+" at port "+str(port), "OpenERP Connection", flag_excl)
- return
-
- dbname = win32gui.GetDlgItemText(btnProcessor.window.hwnd, btnProcessor.other_ids[0])
- if not dbname:
- try:
- dbname = win32gui.GetDlgItemText(btnProcessor.window.hwnd, 7000)
- if not dbname:
- win32ui.MessageBox("Authentication Error !\nBad Database Name !", "OpenERP Connection", flag_excl)
- return
- except Exception,e:
- pass
- if not dbname:
- win32ui.MessageBox("No database found on host "+ server+" at port "+str(port), "OpenERP Connection", flag_excl)
- return
- uname = win32gui.GetDlgItemText(btnProcessor.window.hwnd, btnProcessor.other_ids[1])
- pwd = win32gui.GetDlgItemText(btnProcessor.window.hwnd, btnProcessor.other_ids[2])
-
- if not uname:
- win32ui.MessageBox("Authentication Error !\nBad User Name !", "OpenERP Connection", flag_excl)
- return
- if not pwd:
- win32ui.MessageBox("Authentication Error !\nBad Password !", "OpenERP Connection", flag_excl)
- return
-
- #Establish Connection
- try:
- uid = NewConn.login(dbname, uname, pwd)
- if uid:
- msg = "Connection Successful"
- NewConn.setitem('_login', 'True')
- NewConn.setitem('_uname', uname)
- NewConn.setitem('_pwd', pwd)
- NewConn.setitem('_uid', uid)
- flag = flag_info
- if not NewConn.IsCRMInstalled():
- msg+= '\n\n'+" 'CRM' module is not installed. So CRM cases cannot be created."
- NewConn.setitem('_iscrm', False)
- else:
- NewConn.setitem('_iscrm', True)
- else:
- msg = "Authentication Error !\nBad UserName or Password"
- flag = flag_stop
- NewConn.setitem('_login', 'False')
- except Exception,e:
- msg = "Authentication Error !\n Invalid Configuration Please check server parameters and database name."
- flag = flag_error
- win32ui.MessageBox(msg, "OpenERP Connection", flag)
- return
-
-def BrowseCallbackProc(hwnd, msg, lp, data):
- from win32com.shell import shell, shellcon
- if msg== shellcon.BFFM_INITIALIZED:
- win32gui.SendMessage(hwnd, shellcon.BFFM_SETSELECTION, 1, data)
- win32gui.SendMessage(hwnd, shellcon.BFFM_ENABLEOK, 0, 0)
- elif msg == shellcon.BFFM_SELCHANGED:
- # Set the status text of the
- # For this message, 'lp' is the address of the PIDL.
- pidl = shell.AddressAsPIDL(lp)
- try:
- path = shell.SHGetPathFromIDList(pidl)
- if os.path.isdir(path):
- win32gui.SendMessage(hwnd, shellcon.BFFM_ENABLEOK, 0, 0)
- else:
- ext = path.split('.')[-1]
- if ext not in ['gif', 'bmp', 'jpg', 'tif', 'ico', 'png']:
- win32gui.SendMessage(hwnd, shellcon.BFFM_ENABLEOK, 0, 0)
- else:
- win32gui.SendMessage(hwnd, shellcon.BFFM_ENABLEOK, 0, 1)
- except shell.error:
- # No path for this PIDL
- pass
-
-def GetImagePath(btnProcessor,*args):
- from win32com.shell import shell, shellcon
- ulFlags = shellcon.BIF_BROWSEINCLUDEFILES | BIF_NEWDIALOGSTYLE | BIF_NONEWFOLDERBUTTON
- pidl, display_name, image_list=shell.SHBrowseForFolder(btnProcessor.window.hwnd, # parent HWND
- None, # root PIDL.
- "Get the image path", # title
- ulFlags, # flags
- BrowseCallbackProc, # callback function
- os.getcwd() # 'data' param for the callback
- )
- if (pidl, display_name, image_list) == (None, None, None):
- return
- else:
- path = shell.SHGetPathFromIDList (pidl)
- win32gui.SetDlgItemText(btnProcessor.window.hwnd, btnProcessor.other_ids[0], path)
-
-def AddNewObject(btnProcessor,*args):
- #Check if server running or user logged in
- b = check()
- if not b:
- return
-
- #Check if title or object not specified
- obj_title = win32gui.GetDlgItemText(btnProcessor.window.hwnd, btnProcessor.other_ids[0])
- obj_name = win32gui.GetDlgItemText(btnProcessor.window.hwnd, btnProcessor.other_ids[1])
- if not obj_title:
- win32ui.MessageBox("No Title specified", "Documents Setting", flag_excl)
- return
- if not obj_name:
- win32ui.MessageBox("No Document specified", "Documents Setting", flag_excl)
- return
-
- #Check if object does not exist in the database or it already exist in the list
- try:
- all_obj_list = NewConn.GetAllObjects()
- curr_obj_list = [obj[1] for obj in NewConn.GetObjList()]
- curr_title_list = [obj[0] for obj in NewConn.GetObjList()]
- if obj_name not in all_obj_list:
- win32ui.MessageBox("No such Document exists", "Documents Setting", flag_excl)
- return
- elif obj_name in curr_obj_list:
- win32ui.MessageBox("Document already in the list", "Documents Setting", flag_info)
- return
- elif obj_title in curr_title_list:
- win32ui.MessageBox("Title already in the list. Please give different title", "Documents Setting", flag_excl)
- return
-
- #extract image path and load the image
- image_path=''
- image_path = os.path.join(btnProcessor.window.manager.application_directory, "dialogs\\resources\\openerp_logo1.bmp")
- path=win32gui.GetDlgItemText(btnProcessor.window.hwnd, btnProcessor.other_ids[2])
- if path:
- image_path = path
- load_bmp_flags=win32con.LR_LOADFROMFILE | win32con.LR_LOADTRANSPARENT
- try:
- hicon = win32gui.LoadImage(0, image_path,win32con.IMAGE_BITMAP, 40, 40, load_bmp_flags)
- except Exception,e:
- msg=getMessage(e)
- hicon=None
- win32ui.MessageBox(msg, "Load Image", flag_error)
-
- #Add the object in the list
- win32gui.ImageList_Add(il,hicon,0)
- cnt = win32gui.ImageList_GetImageCount(il)
-
- hwndList = win32gui.GetDlgItem(btnProcessor.window.hwnd, btnProcessor.other_ids[3])
- num_items = win32gui.SendMessage(hwndList, commctrl.LVM_GETITEMCOUNT)
-
- item = LVITEM(text=obj_title, iImage=cnt-2, iItem = num_items)
- new_index = win32gui.SendMessage(hwndList, commctrl.LVM_INSERTITEM, 0, item.toparam())
- win32gui.SendMessage(hwndList, commctrl.LVM_SETIMAGELIST, commctrl.LVSIL_SMALL, il)
- item = LVITEM(text=obj_name, iItem = new_index, iSubItem = 1)
- win32gui.SendMessage(hwndList, commctrl.LVM_SETITEM, 0, item.toparam())
-
- NewConn.InsertObj(obj_title,obj_name,image_path)
- except Exception, e:
- msg = "Object not added\n\n" + getMessage(e)
- win32ui.MessageBox(msg,"",flag_excl)
- return
-
- #Empty all the text controls
- win32gui.SetDlgItemText(btnProcessor.window.hwnd, btnProcessor.other_ids[0], '')
- win32gui.SetDlgItemText(btnProcessor.window.hwnd, btnProcessor.other_ids[1], '')
- win32gui.SetDlgItemText(btnProcessor.window.hwnd, btnProcessor.other_ids[2], '')
-
-def DeleteSelectedObjects(btnProcessor,*args):
- #Check if server running or user logged in
- b = check()
- if not b:
- return
-
- #Delete selected items
- hwndList = win32gui.GetDlgItem(btnProcessor.window.hwnd, btnProcessor.other_ids[0])
- sel_count = win32gui.SendMessage(hwndList, commctrl.LVM_GETSELECTEDCOUNT)
- for i in range(0,sel_count):
- sel = win32gui.SendMessage(hwndList, commctrl.LVM_GETNEXTITEM, -1, commctrl.LVNI_SELECTED)
- buf,extra = win32gui_struct.EmptyLVITEM(1, 0)
- r = win32gui.SendMessage(hwndList, commctrl.LVM_GETITEMTEXT, sel, buf)
- sel_text = ''
- for n in extra:
- nombre = n.tostring()
- sel_text = nombre[0:r]
- try:
- NewConn.DeleteObject(sel_text)
- except Exception,e:
- msg = "Documents '%s' not deleted\n\n"%sel_text + getMessage(e)
- win32ui.MessageBox(msg,"Documents Setting",flag_excl)
-
-def GetMail(processor):
- ex = processor.window.manager.outlook.ActiveExplorer()
- assert ex.Selection.Count == 1
- mail = ex.Selection.Item(1)
- return mail
-#get selected records from list
-def GetSelectedItems(hwndList):
- r=[]
- sel_count = win32gui.SendMessage(hwndList, commctrl.LVM_GETSELECTEDCOUNT)
- sel=-1
- for i in range(0,sel_count):
- sel = win32gui.SendMessage(hwndList, commctrl.LVM_GETNEXTITEM, sel, commctrl.LVNI_SELECTED)
- buf,extra = win32gui_struct.EmptyLVITEM(1, 0)
- size = win32gui.SendMessage(hwndList, commctrl.LVM_GETITEMTEXT, sel, buf)
- sel_text = ''
- for n in extra:
- nombre = n.tostring()
- sel_text = nombre[0:size]
- for item in objects_with_match:
- if item[2] == sel_text:
- r.append(item)
- return r
-
-def MakeAttachment(btnProcessor,*args):
- #Check if server running or user logged in
- b = check()
- if not b:
- return
- ex = btnProcessor.window.manager.outlook.ActiveExplorer()
- assert ex.Selection.Count == 1
- mail = ex.Selection.Item(1)
- mail = GetMail(btnProcessor)
- #get selected records
- hwndList = win32gui.GetDlgItem(btnProcessor.window.hwnd, btnProcessor.other_ids[0])
- r = GetSelectedItems(hwndList)
- if not r:
- win32ui.MessageBox("No records selected", "Push to OpenERP", flag_info)
- return
- try:
- flg = NewConn.ArchiveToOpenERP(r,mail)
- if flg:
- win32gui.EndDialog(btnProcessor.window.hwnd, btnProcessor.other_ids[1])
- return
- except Exception,e:
- msg = "Attachment not created \n\n" + getMessage(e)
- flag = flag_error
- win32ui.MessageBox(msg, "Push to OpenERP", flag)
- return
-
-def CreateCase(btnProcessor,*args):
- try:
- #Check if server running or user logged in
- b = check()
- if not b:
- return
-
- if str(NewConn.getitem('_iscrm')) == 'True':
- # Get the selected mail
- ex = btnProcessor.window.manager.outlook.ActiveExplorer()
- assert ex.Selection.Count == 1
- mail = ex.Selection.Item(1)
- section = win32gui.GetDlgItemText(btnProcessor.window.hwnd, btnProcessor.other_ids[0])
- section = str(section)
- section=section.lower().replace(' ','.')
- if not section:
- win32ui.MessageBox("Documents can not be created.", "Documents Setting", flag_excl)
- return
- hwndList = win32gui.GetDlgItem(btnProcessor.window.hwnd, btnProcessor.other_ids[1])
- partner_ids=[]
- r = GetSelectedItems(hwndList)
- for rec in r:
- if rec[0] == 'res.partner':
- partner_ids.append(rec[1])
- f = False
- #Create new case
- try:
- f = NewConn.CreateCase(str(section), mail, partner_ids)
- msg="New Document created."
- flag=flag_info
- except Exception,e:
- msg="New Document not created \n\n"+str(e)
- flag=flag_error
- if f:
- win32ui.MessageBox(msg, "Create Document", flag)
- win32gui.EndDialog(btnProcessor.window.hwnd, btnProcessor.other_ids[2])
- return
- else:
- win32ui.MessageBox("Error While creating document.\n Document can not be created.", "Create Document", flag_error)
- return
- else:
- win32ui.MessageBox("Document can not be created. CRM not installed", "Create Object", flag_info)
- except Exception, e:
- win32ui.MessageBox(str(e), 'New Document')
-
-def GetSearchText(txtProcessor,*args):
- #Check if server running or user logged in
- b = check()
- if not b:
- return
- try:
- global objects_with_match
- list_hwnd = win32gui.GetDlgItem(txtProcessor.window.hwnd, txtProcessor.other_ids[1])
- objects_with_match = NewConn.SearchPartners()
- setList(list_hwnd)
- except Exception,e:
- win32ui.MessageBox('Document can not be loaded.\n'+str(e), "Push", flag_error)
- txtProcessor.init_done=True
-
-def SetNameColumn(listProcessor,*args):
- hwndList = listProcessor.GetControl()
- child_ex_style = win32gui.SendMessage(hwndList, commctrl.LVM_GETEXTENDEDLISTVIEWSTYLE, 0, 0)
- child_ex_style |= commctrl.LVS_EX_FULLROWSELECT
- win32gui.SendMessage(hwndList, commctrl.LVM_SETEXTENDEDLISTVIEWSTYLE, 0, child_ex_style)
-
- # set header row
- lvc = LVCOLUMN(
- mask = commctrl.LVCF_FMT | commctrl.LVCF_WIDTH | \
- commctrl.LVCF_TEXT | commctrl.LVCF_SUBITEM
- )
- lvc.fmt = commctrl.LVCFMT_LEFT
- lvc.iSubItem = 1
- lvc.text = "Document Type"
- lvc.cx = 100
- win32gui.SendMessage(hwndList, commctrl.LVM_INSERTCOLUMN, 0, lvc.toparam())
- lvc.iSubItem = 0
- lvc.text = "Name"
- lvc.cx = 240
- win32gui.SendMessage(hwndList, commctrl.LVM_INSERTCOLUMN, 0, lvc.toparam())
- listProcessor.init_done = True
-
-def setList(list_hwnd):
- # Set default list of objects
- win32gui.SendMessage(list_hwnd, commctrl.LVM_DELETEALLITEMS)
- for obj in objects_with_match:
- num_items = win32gui.SendMessage(list_hwnd, commctrl.LVM_GETITEMCOUNT)
- item = LVITEM(text=obj[2],iItem = num_items)
- new = win32gui.SendMessage(list_hwnd, commctrl.LVM_INSERTITEM, 0, item.toparam())
- item = LVITEM(text=obj[3],iItem = new, iSubItem = 1)
- win32gui.SendMessage(list_hwnd, commctrl.LVM_SETITEM, 0, item.toparam())
-
-def SearchObjectsForText(btnProcessor,*args):
- #Check if server running or user logged in
- b = check()
- if not b:
- return
-
- search_txt = win32gui.GetDlgItemText(btnProcessor.window.hwnd, btnProcessor.other_ids[0])
- # Get titles from list
- obj_titles=[]
- for ch in hwndChk_list:
- id = ch[0]
- hwnd = ch[1]
- chk = win32gui.SendMessage(hwnd, win32con.BM_GETCHECK)
- if chk:
- txt = win32gui.GetDlgItemText(btnProcessor.window.hwnd,id)
- obj_titles.append(txt)
-
- # Prepare list of objects to search for the seach_keyword
- obj_list = btnProcessor.window.manager.config['objects']
- search_list = []
- try:
- all_obj_list = NewConn.GetAllObjects()
- for title in obj_titles:
- objname = [obj[1] for obj in obj_list if obj[0] == title]
- if objname:
- assert len(objname) == 1
- if objname[0] in all_obj_list:
- search_list.append(objname[0])
- else:
- win32ui.MessageBox("Module %s (%s) not installed. Please install it." \
- %(title,objname[0]), "Push to OpenERP", flag_excl)
- return
-
- # Get the records by searching the objects in search_list for the search_keyword as objects_with_match
- global objects_with_match
- list_hwnd = win32gui.GetDlgItem(btnProcessor.window.hwnd, btnProcessor.other_ids[1])
- if search_list:
- objects_with_match = NewConn.GetObjectItems(search_list, search_txt)
- if not objects_with_match:
- win32ui.MessageBox("No matching records found in checked objects", "Push to OpenERP", flag_info)
- else:
- win32ui.MessageBox("No object selected", "Push to OpenERP", flag_info)
- objects_with_match=[]
- # Display the objects_with_match records in list
- setList(list_hwnd)
- except Exception,e:
- msg=getMessage(e)
- win32ui.MessageBox(msg, "Search Text", flag_error)
-
-def CreateContact(btnProcessor,*args):
- b = check()
- if not b:
- return
-
- partner = win32gui.GetDlgItemText(btnProcessor.window.hwnd, btnProcessor.other_ids[9])
- name = win32gui.GetDlgItemText(btnProcessor.window.hwnd, btnProcessor.other_ids[0])
- email = win32gui.GetDlgItemText(btnProcessor.window.hwnd, btnProcessor.other_ids[1])
- office_no = win32gui.GetDlgItemText(btnProcessor.window.hwnd, btnProcessor.other_ids[2])
- mobile_no = win32gui.GetDlgItemText(btnProcessor.window.hwnd, btnProcessor.other_ids[3])
- fax = win32gui.GetDlgItemText(btnProcessor.window.hwnd, btnProcessor.other_ids[4])
- street = win32gui.GetDlgItemText(btnProcessor.window.hwnd, btnProcessor.other_ids[5])
- street2 = win32gui.GetDlgItemText(btnProcessor.window.hwnd, btnProcessor.other_ids[6])
- city = win32gui.GetDlgItemText(btnProcessor.window.hwnd, btnProcessor.other_ids[7])
- zip = win32gui.GetDlgItemText(btnProcessor.window.hwnd, btnProcessor.other_ids[8])
- state = win32gui.GetDlgItemText(btnProcessor.window.hwnd, btnProcessor.other_ids[10])
- country = win32gui.GetDlgItemText(btnProcessor.window.hwnd, btnProcessor.other_ids[11])
- if not name:
- win32ui.MessageBox("Please enter name.", "Create Contact", flag_stop)
- return
-
- res = {
- 'partner_id':ustr(partner),
- 'name':ustr(name),
- 'email':ustr(email),
- 'phone':ustr(office_no),
- 'mobile':ustr(mobile_no),
- 'fax':ustr(fax),
- 'street':ustr(street),
- 'street2':ustr(street2),
- 'city':ustr(city),
- 'zip':ustr(zip),
- 'state_id':ustr(state),
- 'country_id':ustr(country)
- }
- if res.get('name').strip == '' or res.get('email').strip == '':
- win32ui.MessageBox("Contact name or Email id is Missing\nPlease fill those information", "Create Contact", flag_error)
- return
- try:
- NewConn.CreateContact(str(res))
- if not partner:
- msg="New contact created."
- else:
- msg="New contact created for partner '%s'."%partner
- except Exception,e:
- msg="Contact not created \n\n" + getMessage(e)
- win32ui.MessageBox(msg, "Create Contact", flag_error)
- return
- win32ui.MessageBox(msg, "Create Contact", flag_info)
- for i in range(0,9):
- win32gui.SetDlgItemText(btnProcessor.window.hwnd, btnProcessor.other_ids[i], '')
- win32gui.EndDialog(btnProcessor.window.hwnd, btnProcessor.id)
-
-def SetAllText(txtProcessor,*args):
- url = NewConn.getitem('_uri')
- tbox = txtProcessor.GetControl()
- win32gui.SendMessage(tbox, win32con.WM_SETTEXT, 0, str(url))
-
- uname = NewConn.getitem('_uname')
- tbox = txtProcessor.GetControl(txtProcessor.other_ids[0])
- win32gui.SendMessage(tbox, win32con.WM_SETTEXT, 0, str(uname))
-
- passbox = txtProcessor.GetControl(txtProcessor.other_ids[1])
- pwd = NewConn.getitem('_pwd')
- win32gui.SendMessage(passbox, win32con.WM_SETTEXT, 0, str(pwd))
- serverBox = txtProcessor.GetControl(txtProcessor.other_ids[2])
- webstr = NewConn.getitem('_webprotocol')+NewConn.getitem('_webserver')+":"+str(NewConn.getitem('_webport'))
- win32gui.SendMessage(serverBox, win32con.WM_SETTEXT, 0, str(webstr))
-
-def SetDefaultList(listProcessor,*args):
- import win32api
- hwndList = listProcessor.GetControl()
-
- # set full row select style
- child_ex_style = win32gui.SendMessage(hwndList, commctrl.LVM_GETEXTENDEDLISTVIEWSTYLE, 0, 0)
- child_ex_style |= commctrl.LVS_EX_FULLROWSELECT
- win32gui.SendMessage(hwndList, commctrl.LVM_SETEXTENDEDLISTVIEWSTYLE, 0, child_ex_style)
-
- # set header row
- lvc = LVCOLUMN(
- mask = commctrl.LVCF_FMT | commctrl.LVCF_WIDTH | \
- commctrl.LVCF_TEXT | commctrl.LVCF_SUBITEM
- )
- lvc.fmt = commctrl.LVCFMT_LEFT
- lvc.iSubItem = 1
- lvc.text = "Object Name"
- lvc.cx = 315
- win32gui.SendMessage(hwndList, commctrl.LVM_INSERTCOLUMN, 0, lvc.toparam())
- lvc.iSubItem = 0
- lvc.text = "Document Title"
- lvc.cx = 315
- win32gui.SendMessage(hwndList, commctrl.LVM_INSERTCOLUMN, 0, lvc.toparam())
-
- #create imagelist
- global il
- il = win32gui.ImageList_Create(
- win32api.GetSystemMetrics(win32con.SM_CXSMICON),
- win32api.GetSystemMetrics(win32con.SM_CYSMICON),
- commctrl.ILC_COLOR32 | commctrl.ILC_MASK,
- 1, # initial size
- 0) # cGrow
-
- win32gui.SendMessage(hwndList, commctrl.LVM_SETIMAGELIST,\
- commctrl.LVSIL_SMALL, il)
- # Set objects from config
- objs = eval(NewConn.getitem('_obj_list'))
- load_bmp_flags=win32con.LR_LOADFROMFILE | win32con.LR_LOADTRANSPARENT
- for obj in objs:
- image_path = os.path.join(listProcessor.window.manager.application_directory, "dialogs\\resources\\openerp_logo1.bmp")
- path=obj[2]
- if path:
- image_path = path
- try:
- hicon = win32gui.LoadImage(0, image_path,win32con.IMAGE_BITMAP, 40, 40, load_bmp_flags)
- except Exception, e:
- msg = "Problem loading the image \n\n" + getMessage(e)
- hicon = None
- win32ui.MessageBox(msg, "Load Image", flag_error)
-
- #Add the object in the list
- win32gui.ImageList_Add(il,hicon,0)
- cnt = win32gui.ImageList_GetImageCount(il)
- num_items = win32gui.SendMessage(hwndList, commctrl.LVM_GETITEMCOUNT)
- item = LVITEM(text=obj[0],iImage=cnt-2, iItem = num_items)
- new_index = win32gui.SendMessage(hwndList, commctrl.LVM_INSERTITEM, 0, item.toparam())
- item = LVITEM(text=obj[1], iItem = new_index, iSubItem = 1)
- win32gui.SendMessage(hwndList, commctrl.LVM_SETITEM, 0, item.toparam())
-
-def SetDefaultContact(txtProcessor,*args):
- # Acquiring the control of the text box
- global name
- global email
- global partner_ref
- global new_con_country
- global new_con_state
- global state_ref
- global country_ref
- state = win32gui.GetDlgItemText(txtProcessor.window.hwnd, txtProcessor.other_ids[2])
- country = win32gui.GetDlgItemText(txtProcessor.window.hwnd, txtProcessor.other_ids[3])
- if txtProcessor.init_done:
- if new_con_country == "":
- new_con_country = country
- if new_con_state == "":
- new_con_state = state
- win32gui.SetDlgItemText(txtProcessor.window.hwnd, txtProcessor.other_ids[1],partner_ref)
- win32gui.SetDlgItemText(txtProcessor.window.hwnd, txtProcessor.control_id,name)
- win32gui.SetDlgItemText(txtProcessor.window.hwnd, txtProcessor.other_ids[0],email)
- win32gui.SetDlgItemText(txtProcessor.window.hwnd, txtProcessor.other_ids[2],new_con_state)
- win32gui.SetDlgItemText(txtProcessor.window.hwnd, txtProcessor.other_ids[3],new_con_country)
- new_con_country = ""
- new_con_state = ""
- state_ref = ""
- country_ref =""
- return
- #
- try:
- mail = GetMail(txtProcessor)
- name = ustr(mail.SenderName).encode('iso-8859-1')
- email = ustr(mail.SenderEmailAddress).encode('iso-8859-1')
- except Exception:
- pass
-
- win32gui.SetDlgItemText(txtProcessor.window.hwnd, txtProcessor.control_id,name)
- win32gui.SetDlgItemText(txtProcessor.window.hwnd, txtProcessor.other_ids[0],email)
-
- txtProcessor.init_done = True
-
-def setCheckList(groupProcessor,*args):
- b = check()
- if not b:
- return
- try:
- hinst = win32gui.dllhandle
- objs = groupProcessor.window.manager.config['objects']
- ins_objs = NewConn.GetAllObjects()
- left = 20
- top = 60
- cnt=0
- id=4001
- id1=6001
- if groupProcessor.init_done:
- return
- else:
- for obj in objs:
- if obj[1] in ins_objs:
- groupProcessor.init_done = True
- #Add Checkbox
- left+= 17
- hwndChk = win32gui.CreateWindowEx(
- 0,"BUTTON",obj[0],win32con.WS_VISIBLE | win32con.WS_CHILD | \
- win32con.BS_AUTOCHECKBOX | win32con.WS_TABSTOP | win32con.BST_CHECKED, \
- left, top, 130,20,groupProcessor.window.hwnd,id1,hinst,None
- )
- if obj[1] in ['res.partner','res.partner.address']:
- win32gui.SendMessage(hwndChk , win32con.BM_SETCHECK, 1, 0);
- hwndChk_list.append((id1,hwndChk))
-
- cnt=cnt+1
- id+=1
- id1+=1
- left+=17
- left+=140
- if cnt > 1:
- left = 20
- top+=18
- cnt=0
- except Exception, e:
- win32ui.MessageBox(str(e), 'Push to OpenERP')
-
-def CreatePartner(btnProcessor,*args):
- #Check if server running or user logged in
- b = check()
- if not b:
- return
- global partner_ref
- partner_name = win32gui.GetDlgItemText(btnProcessor.window.hwnd, btnProcessor.other_ids[0])
- if not partner_name:
- win32ui.MessageBox("Please enter Partner name.", "Create Partner", flag_excl)
- return
- res = {'name':ustr(partner_name)}
- try:
- id = NewConn.CreatePartner(str(res))
- except Exception,e:
- msg="Partner not created \n\n" + getMessage(e)
- win32ui.MessageBox(msg, "Create Partner", flag_error)
- return
- if id:
- win32ui.MessageBox("New Partner '%s' created."%partner_name, "Create Partner", flag_info)
- partner_ref = str(partner_name)
- win32gui.EndDialog(btnProcessor.window.hwnd, btnProcessor.id)
- else:
- win32ui.MessageBox("Partner '%s' already Exists."%partner_name, "Create Partner", flag_info)
- win32gui.SetDlgItemText(btnProcessor.window.hwnd, btnProcessor.other_ids[0],'')
-
-def set_search_text(dialogProcessor,*args):
- global search_text
- search_text = win32gui.GetDlgItemText(dialogProcessor.window.hwnd, dialogProcessor.other_ids[0])
- return
-
-def set_name_email(dialogProcessor,*args):
- global name
- global email
- global partner_ref
- win32gui.SetDlgItemText(txtProcessor.window.hwnd, txtProcessor.other_ids[2], ustr(partner_ref))
- name = win32gui.GetDlgItemText(dialogProcessor.window.hwnd, dialogProcessor.other_ids[0])
- email = win32gui.GetDlgItemText(dialogProcessor.window.hwnd, dialogProcessor.other_ids[1])
-
-#Function for Getting default mail when dialog is loaded and finding contact related to this
-#setting values to the appropriate text areas
-def GetDefaultEmail(txtProcessor,*args):
-
- import win32con
- b = check()
- global partner_ref
- global country_ref
- global state_ref
- global new_con_country
- global new_con_state
- partner_n = win32gui.GetDlgItemText(txtProcessor.window.hwnd, txtProcessor.other_ids[0])
- state_n = win32gui.GetDlgItemText(txtProcessor.window.hwnd, txtProcessor.other_ids[10])
- country_n = win32gui.GetDlgItemText(txtProcessor.window.hwnd, txtProcessor.other_ids[11])
- if partner_ref == "":
- partner_ref = partner_n
- if country_ref == "":
- country_ref = country_n
- if state_ref == "":
- state_ref = state_n
- win32gui.SetDlgItemText(txtProcessor.window.hwnd, txtProcessor.other_ids[0], ustr(partner_ref))
- win32gui.SetDlgItemText(txtProcessor.window.hwnd, txtProcessor.other_ids[10], ustr(state_ref))
- win32gui.SetDlgItemText(txtProcessor.window.hwnd, txtProcessor.other_ids[11], ustr(country_ref))
- partner_ref = ""
- country_ref = ""
- state_ref = ""
- new_con_country = ""
- new_con_state = ""
- if country_ref == None:
- country_ref = ""
-
-
- if not b:
- return
- #Acquiring control of the text box
- search_partner_box = txtProcessor.GetControl()
- global search_partner_text
- if txtProcessor.init_done:
- win32gui.SendMessage(search_partner_box, win32con.WM_SETTEXT, 0,search_partner_text)
- return
- #Reading Current Selected Email.
- ex = txtProcessor.window.manager.outlook.ActiveExplorer()
- assert ex.Selection.Count == 1
- mail = ex.Selection.Item(1)
- #Fetching Sender MailID from Selected Mail
- try:
- search_partner_text = ustr(mail.SenderEmailAddress).encode('iso-8859-1')
- except Exception:
- win32ui.MessageBox("Error In reading email ID from Email ","Open Contact", flag_error)
- pass
- win32gui.SendMessage(search_partner_box, win32con.WM_SETTEXT, 0, search_partner_text)
- if search_partner_text.strip() == "":
- search_partner_text = None
- return
- vals = []
- #Searching the res.partner.address for contact based on Sender Mail ID.
- vals = NewConn.SearchPartnerDetail(search_partner_text)
- #If no user Found.
- if vals == None:
- for i in range(1,12):
- win32gui.SetDlgItemText(txtProcessor.window.hwnd, txtProcessor.other_ids[i], "")
- win32ui.MessageBox("No matching records found for : "+str(search_partner)+".","Open Contact", flag_excl)
- return
- else:
- #If user Found than Setting the Value for the contact in fields.
- for i in range(1,12):
- win32gui.SetDlgItemText(txtProcessor.window.hwnd, txtProcessor.other_ids[i], "")
-
- for val in vals:
- if val[0] == 'partner_id':
- win32gui.SetDlgItemText(txtProcessor.window.hwnd, txtProcessor.other_ids[0], ustr(val[1][1]))
-
- if val[0] == 'name' and val[1] != False :
- win32gui.SetDlgItemText(txtProcessor.window.hwnd, txtProcessor.other_ids[1], ustr(val[1]))
-
- if val[0] == 'street' and val[1] != False :
- win32gui.SetDlgItemText(txtProcessor.window.hwnd, txtProcessor.other_ids[2], ustr(val[1]))
-
- if val[0] == 'street2' and val[1] != False :
- win32gui.SetDlgItemText(txtProcessor.window.hwnd, txtProcessor.other_ids[3], ustr(val[1]))
-
- if val[0] == 'zip' and val[1] != False :
- win32gui.SetDlgItemText(txtProcessor.window.hwnd, txtProcessor.other_ids[9], ustr(val[1]))
-
- if val[0] == 'city' and val[1] != False :
- win32gui.SetDlgItemText(txtProcessor.window.hwnd, txtProcessor.other_ids[4], ustr(val[1]))
-
- if val[0] == 'state_id' and val[1] != False :
- win32gui.SetDlgItemText(txtProcessor.window.hwnd, txtProcessor.other_ids[10], ustr(val[1][1]))
-
- if val[0] == 'country_id' and val[1] != False :
- win32gui.SetDlgItemText(txtProcessor.window.hwnd, txtProcessor.other_ids[11], ustr(val[1][1]))
- global search_country
- search_country = ustr(val[1][1])
-
- if val[0] == 'phone' and val[1] != False :
- win32gui.SetDlgItemText(txtProcessor.window.hwnd, txtProcessor.other_ids[5], ustr(val[1]))
-
- if val[0] == 'mobile' and val[1] != False :
- win32gui.SetDlgItemText(txtProcessor.window.hwnd, txtProcessor.other_ids[6], ustr(val[1]))
-
- if val[0] == 'fax' and val[1] != False :
- win32gui.SetDlgItemText(txtProcessor.window.hwnd, txtProcessor.other_ids[7], ustr(val[1]))
-
- if val[0] == 'email' and val[1] != False :
- win32gui.SetDlgItemText(txtProcessor.window.hwnd, txtProcessor.other_ids[8], ustr(val[1]))
-
- txtProcessor.init_done=True
-
-def SearchPartner(btnProcessor,*args):
- b = check()
- global partner_ref
- if not b:
- return
- try :
- search_partner = win32gui.GetDlgItemText(btnProcessor.window.hwnd, btnProcessor.other_ids[0])
- if not search_partner:
- win32ui.MessageBox("Please enter email id to search for.", "Open Contact", flag_excl)
- return
- vals = []
- #Searching the contact.
- vals = NewConn.SearchPartnerDetail(search_partner)
- #if contact not found resetting all field to blank
- if vals == None:
- for i in range(1,13):
- win32gui.SetDlgItemText(btnProcessor.window.hwnd, btnProcessor.other_ids[i], "")
- win32ui.MessageBox("No matching records found for : "+str(search_partner)+".","Open Contact", flag_excl)
- win32gui.SetDlgItemText(btnProcessor.window.hwnd, btnProcessor.other_ids[0], "")
- return
- #if contact found than setting the values for the contact.
- else:
- for i in range(1,13):
- win32gui.SetDlgItemText(btnProcessor.window.hwnd, btnProcessor.other_ids[i], "")
- for val in vals:
- if val[0] == 'partner_id':
- win32gui.SetDlgItemText(btnProcessor.window.hwnd, btnProcessor.other_ids[1], ustr(val[1][1]))
-
- if val[0] == 'name' and val[1] != False :
- win32gui.SetDlgItemText(btnProcessor.window.hwnd, btnProcessor.other_ids[2], ustr(val[1]))
-
- if val[0] == 'street' and val[1] != False :
- win32gui.SetDlgItemText(btnProcessor.window.hwnd, btnProcessor.other_ids[3], ustr(val[1]))
-
- if val[0] == 'street2' and val[1] != False :
- win32gui.SetDlgItemText(btnProcessor.window.hwnd, btnProcessor.other_ids[4], ustr(val[1]))
-
- if val[0] == 'zip' and val[1] != False :
- win32gui.SetDlgItemText(btnProcessor.window.hwnd, btnProcessor.other_ids[10], ustr(val[1]))
-
- if val[0] == 'city' and val[1] != False :
- win32gui.SetDlgItemText(btnProcessor.window.hwnd, btnProcessor.other_ids[5], ustr(val[1]))
-
- if val[0] == 'state_id' and val[1] != False :
- win32gui.SetDlgItemText(btnProcessor.window.hwnd, btnProcessor.other_ids[11], ustr(val[1][1]))
-
- if val[0] == 'country_id' and val[1] != False :
- win32gui.SetDlgItemText(btnProcessor.window.hwnd, btnProcessor.other_ids[12], ustr(val[1][1]))
- global search_country
- search_country = ustr(val[1][1])
-
- if val[0] == 'phone' and val[1] != False :
- win32gui.SetDlgItemText(btnProcessor.window.hwnd, btnProcessor.other_ids[6], ustr(val[1]))
-
- if val[0] == 'mobile' and val[1] != False :
- win32gui.SetDlgItemText(btnProcessor.window.hwnd, btnProcessor.other_ids[7], ustr(val[1]))
-
- if val[0] == 'fax' and val[1] != False :
- win32gui.SetDlgItemText(btnProcessor.window.hwnd, btnProcessor.other_ids[8], ustr(val[1]))
-
- if val[0] == 'email' and val[1] != False :
- win32gui.SetDlgItemText(btnProcessor.window.hwnd, btnProcessor.other_ids[9], ustr(val[1]))
-
- win32gui.SetDlgItemText(btnProcessor.window.hwnd, btnProcessor.other_ids[0], "")
- except Exception,e:
- msg = getMessage(e)
- win32ui.MessageBox(msg, "Open Contact", flag_error)
- pass
-
-def WritePartner(btnProcessor,*args):
- new_vals=[]
- #Reading new value of the fields.
- partner = win32gui.GetDlgItemText(btnProcessor.window.hwnd, btnProcessor.other_ids[0])
- contect_name = win32gui.GetDlgItemText(btnProcessor.window.hwnd, btnProcessor.other_ids[1])
- street = win32gui.GetDlgItemText(btnProcessor.window.hwnd, btnProcessor.other_ids[2])
- street2 = win32gui.GetDlgItemText(btnProcessor.window.hwnd, btnProcessor.other_ids[3])
- city = win32gui.GetDlgItemText(btnProcessor.window.hwnd, btnProcessor.other_ids[4])
- state = win32gui.GetDlgItemText(btnProcessor.window.hwnd, btnProcessor.other_ids[5])
- country = win32gui.GetDlgItemText(btnProcessor.window.hwnd, btnProcessor.other_ids[6])
- phone = win32gui.GetDlgItemText(btnProcessor.window.hwnd, btnProcessor.other_ids[7])
- mobile = win32gui.GetDlgItemText(btnProcessor.window.hwnd, btnProcessor.other_ids[8])
- fax = win32gui.GetDlgItemText(btnProcessor.window.hwnd, btnProcessor.other_ids[9])
- email = win32gui.GetDlgItemText(btnProcessor.window.hwnd, btnProcessor.other_ids[10])
- zip = win32gui.GetDlgItemText(btnProcessor.window.hwnd, btnProcessor.other_ids[11])
- if contect_name.strip() == "":
- win32ui.MessageBox("Please enter partner Contact Name name.", "Open Contact", flag_excl)
- return
- new_vals.append(['partner',partner])
- new_vals.append(['name',contect_name])
- new_vals.append(['street',street])
- new_vals.append(['street2',street2])
- new_vals.append(['city',city])
- new_vals.append(['phone',phone])
- new_vals.append(['mobile',mobile])
- new_vals.append(['email',email])
- new_vals.append(['fax',fax])
- new_vals.append(['zip',zip])
- new_vals.append(['state',state])
- new_vals.append(['country',country])
- new_vals.append(['state',state])
- flag = 0
- try:
- #writing the updated values to the Server.
- flag = NewConn.WritePartnerValues(new_vals)
- except Exception,e:
- msg = getMessage(e)
- win32ui.MessageBox(msg, "Open Contact", flag_error)
- pass
- if flag == 1:
- win32ui.MessageBox("Changes have been Updated Successfully.", "Open Contact", flag_info)
- elif flag == 0:
- win32ui.MessageBox("Error in Updating the Changes.\n Please check the Database Connection.", "Open Contact", flag_error)
- elif flag == -1:
- win32ui.MessageBox("Contact can not be Save.\nFirst select partner using Search.","Open Contact", flag_info)
-
-def SetPartnerNameColumn(listProcessor,*args):
- hwndList = listProcessor.GetControl()
- child_ex_style = win32gui.SendMessage(hwndList, commctrl.LVM_GETEXTENDEDLISTVIEWSTYLE, 0, 0)
- child_ex_style |= commctrl.LVS_EX_FULLROWSELECT
- win32gui.SendMessage(hwndList, commctrl.LVM_SETEXTENDEDLISTVIEWSTYLE, 0, child_ex_style)
-
- # set header row
- lvc = LVCOLUMN(
- mask = commctrl.LVCF_FMT | commctrl.LVCF_WIDTH | \
- commctrl.LVCF_TEXT | commctrl.LVCF_SUBITEM
- )
- lvc.fmt = commctrl.LVCFMT_LEFT
- lvc.iSubItem = 1
- lvc.text = "Partner Name"
- lvc.cx = 275
- win32gui.SendMessage(hwndList, commctrl.LVM_INSERTCOLUMN, 0, lvc.toparam())
-
- partners = list(NewConn.GetPartners(''))
- win32gui.SendMessage(hwndList, commctrl.LVM_DELETEALLITEMS)
- if not partners:
- win32gui.SetDlgItemText(btnProcessor.window.hwnd, btnProcessor.other_ids[0],"")
- win32ui.MessageBox("No Partner found with name {0}.".format(search_partner),"Search Partner",flag_error)
- for partner in partners[::-1]:
- num_items = win32gui.SendMessage(hwndList, commctrl.LVM_GETITEMCOUNT)
- item = LVITEM(text=partner[1],iItem = num_items)
- win32gui.SendMessage(hwndList, commctrl.LVM_INSERTITEM, 0, item.toparam())
-
- listProcessor.init_done = True
-
-def SelectPartnerFromList(btnProcessor,*args):
-
- hwndList = win32gui.GetDlgItem(btnProcessor.window.hwnd, btnProcessor.other_ids[0])
- sel_count = win32gui.SendMessage(hwndList, commctrl.LVM_GETSELECTEDCOUNT)
- sel_text = ''
- if sel_count == 1:
- sel=-1
- for i in range(0,sel_count):
- sel = win32gui.SendMessage(hwndList, commctrl.LVM_GETNEXTITEM, sel, commctrl.LVNI_SELECTED)
- buf,extra = win32gui_struct.EmptyLVITEM(1, 0)
- size = win32gui.SendMessage(hwndList, commctrl.LVM_GETITEMTEXT, sel, buf)
- sel_text = ''
- for n in extra:
- nombre = n.tostring()
- sel_text = nombre[0:size]
- global partner_ref
- if str(sel_text).strip() == "":
- win32ui.MessageBox("Invalid partner selected.","Search Partner")
- return
- try:
- partner_ref = str(sel_text)
- except Exception:
- pass
- win32gui.EndDialog(btnProcessor.window.hwnd, btnProcessor.other_ids[1])
- return
- elif sel_count < 1:
- win32ui.MessageBox("You should select one partner.","Search Partner")
- return
- else:
- win32ui.MessageBox("Multiple Selection is not allowed.","Search Partner")
- return
-
-def SearchPartnerList(btnProcessor,*args):
- b = check()
- if not b:
- return
- try :
- search_partner = win32gui.GetDlgItemText(btnProcessor.window.hwnd, btnProcessor.other_ids[0])
- #Searching the contact.
- hwndList = win32gui.GetDlgItem(btnProcessor.window.hwnd, btnProcessor.other_ids[1])
- partners = list(NewConn.GetPartners(search_partner))
- win32gui.SendMessage(hwndList, commctrl.LVM_DELETEALLITEMS)
- if not partners:
- win32gui.SetDlgItemText(btnProcessor.window.hwnd, btnProcessor.other_ids[0],"")
- win32ui.MessageBox("No Partner found with name {0}.".format(search_partner),"Search Partner",flag_error)
- for partner in partners[::-1]:
- num_items = win32gui.SendMessage(hwndList, commctrl.LVM_GETITEMCOUNT)
- item = LVITEM(text=partner[1],iItem = num_items)
- win32gui.SendMessage(hwndList, commctrl.LVM_INSERTITEM, 0, item.toparam())
- except Exception,e:
- msg = getMessage(e)
- win32ui.MessageBox(msg, "Search Partner", flag_error)
- pass
-
-def ConnectWebServer(btnProcessor, *args):
- b = check()
- if not b:
- return
- server = win32gui.GetDlgItemText(btnProcessor.window.hwnd, btnProcessor.other_ids[0])
- webbrowser.open_new(str(server)+"\\openerp\\")
-
-
-def OpenPartnerForm(txtProcessor,*args):
- import win32con
- b = check()
- if not b:
- return
- #Acquiring control of the text box
- partner_link = txtProcessor.GetControl()
- #Reading Current Selected Email.
- ex = txtProcessor.window.manager.outlook.ActiveExplorer()
- assert ex.Selection.Count == 1
- mail = ex.Selection.Item(1)
- partner_text = ""
- try:
- partner_text = ustr(mail.SenderName).encode('iso-8859-1')
- sender_mail = ustr(mail.SenderEmailAddress).strip()
- except Exception:
- win32gui.SendMessage(partner_link, win32con.WM_SETTEXT, 0, "< Error in reading email.>")
- pass
- vals = NewConn.SearchPartner(sender_mail)
- if not vals:
- win32gui.SendMessage(partner_link, win32con.WM_SETTEXT, 0, "< Their is contact related to "+str(partner_text)+" email address, but no partner is linked to contact>")
- txtProcessor.init_done=True
- return
-
- if NewConn.getitem('_webserver') == "" or NewConn.getitem('_webserver') in ["http:\\\\","https:\\\\"]:
- win32gui.SendMessage(partner_link, win32con.WM_SETTEXT, 0, " ")
- txtProcessor.init_done=True
- return
- try:
- import urllib
- next = urllib.urlencode({'next' : '/openerp/form/view?model=res.partner&id=' +str(vals) })
- weburl = NewConn.getitem('_webprotocol')+NewConn.getitem('_webserver')+":"+str(NewConn.getitem('_webport'))
- linktopartner = weburl + '?' + next
- win32gui.SendMessage(partner_link, win32con.WM_SETTEXT, 0, str(linktopartner))
- except Exception,e:
- win32ui.MessageBox("Error While Opening Partner.\n"+str(e),"Open Partner", flag_error)
- webbrowser.open_new(linktopartner)
- txtProcessor.init_done=True
-
-def SerachOpenDocuemnt(txtProcessor,*args):
- import win32con
- import win32ui
- import win32com
- from win32com.mapi import mapitags
- b = check()
- if not b:
- return
-# global web_server
-# global web_server_port
- #Reading Current Selected Email.
- ex = txtProcessor.window.manager.outlook.ActiveExplorer()
- assert ex.Selection.Count == 1
- mail = ex.Selection.Item(1)
- #Acquiring control of the text box
- link_box = txtProcessor.GetControl()
- #Checking for the web server Parameters
- if NewConn.getitem('_webserver') == "" or NewConn.getitem('_webserver') in ["http:\\\\","https:\\\\"]:
- win32gui.SendMessage(partner_link, win32con.WM_SETTEXT, 0, " ")
- txtProcessor.init_done=True
- return
- linktodoc = ""
- message_id = None
- try:
- session = win32com.client.Dispatch("MAPI.session")
- session.Logon('Outlook')
- objMessage = session.GetMessage(mail.EntryID, mail.Parent.StoreID)
- objFields = objMessage.Fields
- strheader = objFields.Item(mapitags.PR_TRANSPORT_MESSAGE_HEADERS)
- strheader = ustr(strheader).encode('iso-8859-1')
- headers = {}
- strheader = strheader.replace("\n ", " ").splitlines()
- for line in strheader:
- split_here = line.find(":")
- headers[line[:split_here]] = line[split_here:]
- temp1 = headers.get('Message-ID')
- temp2 = headers.get('Message-Id')
- if temp1 == None: message_id = temp2
- if temp2 == None: message_id = temp1
- startCut = message_id.find("<")
- endCut = message_id.find(">")
- message_id = message_id[startCut:endCut+1]
- except Exception,e:
- win32ui.MessageBox(str(e),"Open Document")
- vals = NewConn.SearchEmailResources(message_id)
- if vals == None:
- win32gui.SendMessage(link_box, win32con.WM_SETTEXT, 0, "< Mail is still not archived.>")
- txtProcessor.init_done=True
- return
- try:
- import urllib
- next = urllib.urlencode({'next' : '/openerp/form/view?model='+vals[0][1]+'&id='+str(vals[1][1])})
- weburl = NewConn.getitem('_webprotocol')+NewConn.getitem('_webserver')+":"+str(NewConn.getitem('_webport'))
- linktodoc = weburl + '?' + next
- win32gui.SendMessage(link_box, win32con.WM_SETTEXT, 0, str(linktodoc))
- except Exception,e:
- win32ui.MessageBox("Error While Opening Document.\n"+str(e),"Open Document", flag_error)
- webbrowser.open_new(linktodoc)
- txtProcessor.init_done=True
-
-def SearchCountry(btnProcessor, *args):
- b = check()
- if not b:
- return
- try :
- search_country = win32gui.GetDlgItemText(btnProcessor.window.hwnd, btnProcessor.other_ids[0])
- #Searching the contact.
- hwndList = win32gui.GetDlgItem(btnProcessor.window.hwnd, btnProcessor.other_ids[1])
- countries = list(NewConn.GetCountry(search_country))
- win32gui.SendMessage(hwndList, commctrl.LVM_DELETEALLITEMS)
- if not countries:
- win32gui.SetDlgItemText(btnProcessor.window.hwnd, btnProcessor.other_ids[0],"")
- win32ui.MessageBox("No country found with name {0}.".format(search_country),"Search Country",flag_error)
- for country in countries:
- num_items = win32gui.SendMessage(hwndList, commctrl.LVM_GETITEMCOUNT)
- item = LVITEM(text=country[1],iItem = num_items)
- win32gui.SendMessage(hwndList, commctrl.LVM_INSERTITEM, 0, item.toparam())
- except Exception,e:
- msg = getMessage(e)
- win32ui.MessageBox(msg, "Search Country", flag_error)
- pass
-
-def SetCountryList(listProcessor,*args):
-
- hwndList = listProcessor.GetControl()
- child_ex_style = win32gui.SendMessage(hwndList, commctrl.LVM_GETEXTENDEDLISTVIEWSTYLE, 0, 0)
- child_ex_style |= commctrl.LVS_EX_FULLROWSELECT
- win32gui.SendMessage(hwndList, commctrl.LVM_SETEXTENDEDLISTVIEWSTYLE, 0, child_ex_style)
-
- # set header row
- lvc = LVCOLUMN(
- mask = commctrl.LVCF_FMT | commctrl.LVCF_WIDTH | \
- commctrl.LVCF_TEXT | commctrl.LVCF_SUBITEM
- )
- lvc.fmt = commctrl.LVCFMT_LEFT
- lvc.iSubItem = 1
- lvc.text = "Country Name"
- lvc.cx = 275
- win32gui.SendMessage(hwndList, commctrl.LVM_INSERTCOLUMN, 0, lvc.toparam())
-
- countries = list(NewConn.GetCountry(''))
- win32gui.SendMessage(hwndList, commctrl.LVM_DELETEALLITEMS)
- if not countries:
- win32gui.SetDlgItemText(btnProcessor.window.hwnd, btnProcessor.other_ids[0],"")
- win32ui.MessageBox("No country found with name {0}.".format(search_country),"Search Country",flag_error)
- for country in countries:
- num_items = win32gui.SendMessage(hwndList, commctrl.LVM_GETITEMCOUNT)
- item = LVITEM(text=country[1],iItem = num_items)
- win32gui.SendMessage(hwndList, commctrl.LVM_INSERTITEM, 0, item.toparam())
-
- listProcessor.init_done = True
-
-def SelectCountryFromList(btnProcessor,*args):
-
- hwndList = win32gui.GetDlgItem(btnProcessor.window.hwnd, btnProcessor.other_ids[0])
- sel_count = win32gui.SendMessage(hwndList, commctrl.LVM_GETSELECTEDCOUNT)
- sel_text = ''
- if sel_count == 1:
- sel=-1
- for i in range(0,sel_count):
- sel = win32gui.SendMessage(hwndList, commctrl.LVM_GETNEXTITEM, sel, commctrl.LVNI_SELECTED)
- buf,extra = win32gui_struct.EmptyLVITEM(1, 0)
- size = win32gui.SendMessage(hwndList, commctrl.LVM_GETITEMTEXT, sel, buf)
- sel_text = ''
- for n in extra:
- nombre = n.tostring()
- sel_text = nombre[0:size]
- global country_ref
- global new_con_country
- global search_country
- if str(sel_text).strip() == "":
- win32ui.MessageBox("Invalid country selected.","Search Country")
- return
- try:
- country_ref = str(sel_text)
- new_con_country = str(sel_text)
- search_country = str(sel_text)
- except Exception:
- pass
- win32gui.EndDialog(btnProcessor.window.hwnd, btnProcessor.other_ids[1])
- return
- elif sel_count < 1:
- win32ui.MessageBox("You must one country.","Search Country")
- return
- else:
- win32ui.MessageBox("Multiple selection is not allowed.","Search Country")
- return
-
-def SearchState(btnProcessor, *args):
- b = check()
- if not b:
- return
- try :
- global new_con_country
- global search_country
- search_state = win32gui.GetDlgItemText(btnProcessor.window.hwnd, btnProcessor.other_ids[0])
- #Searching the contact.
- hwndList = win32gui.GetDlgItem(btnProcessor.window.hwnd, btnProcessor.other_ids[1])
- states = list(NewConn.GetStates(search_state, search_country))
- win32gui.SendMessage(hwndList, commctrl.LVM_DELETEALLITEMS)
- if not states:
- win32gui.SetDlgItemText(btnProcessor.window.hwnd, btnProcessor.other_ids[0],"")
- win32ui.MessageBox("No state found with name {0}.".format(search_state),"Search Fed.State",flag_error)
- for state in states:
- num_items = win32gui.SendMessage(hwndList, commctrl.LVM_GETITEMCOUNT)
- item = LVITEM(text=state[1],iItem = num_items)
- win32gui.SendMessage(hwndList, commctrl.LVM_INSERTITEM, 0, item.toparam())
- except Exception,e:
- msg = getMessage(e)
- win32ui.MessageBox(msg, "Search Fed.State", flag_error)
- pass
-
-def SetStateList(listProcessor,*args):
- hwndList = listProcessor.GetControl()
- child_ex_style = win32gui.SendMessage(hwndList, commctrl.LVM_GETEXTENDEDLISTVIEWSTYLE, 0, 0)
- child_ex_style |= commctrl.LVS_EX_FULLROWSELECT
- win32gui.SendMessage(hwndList, commctrl.LVM_SETEXTENDEDLISTVIEWSTYLE, 0, child_ex_style)
-
- # set header row
- lvc = LVCOLUMN(
- mask = commctrl.LVCF_FMT | commctrl.LVCF_WIDTH | \
- commctrl.LVCF_TEXT | commctrl.LVCF_SUBITEM
- )
- lvc.fmt = commctrl.LVCFMT_LEFT
- lvc.iSubItem = 1
- lvc.text = "Fed.State Name"
- lvc.cx = 275
- win32gui.SendMessage(hwndList, commctrl.LVM_INSERTCOLUMN, 0, lvc.toparam())
-
- global new_con_country
- global search_country
- states = list(NewConn.GetStates('', search_country))
- win32gui.SendMessage(hwndList, commctrl.LVM_DELETEALLITEMS)
- if not states:
- win32gui.SetDlgItemText(btnProcessor.window.hwnd, btnProcessor.other_ids[0],"")
- win32ui.MessageBox("No state found with name {0}.".format(search_state),"Search Fed.State",flag_error)
- for state in states:
- num_items = win32gui.SendMessage(hwndList, commctrl.LVM_GETITEMCOUNT)
- item = LVITEM(text=state[1],iItem = num_items)
- win32gui.SendMessage(hwndList, commctrl.LVM_INSERTITEM, 0, item.toparam())
- listProcessor.init_done = True
-
-def SelectStateFromList(btnProcessor,*args):
- hwndList = win32gui.GetDlgItem(btnProcessor.window.hwnd, btnProcessor.other_ids[0])
- sel_count = win32gui.SendMessage(hwndList, commctrl.LVM_GETSELECTEDCOUNT)
- sel_text = ''
- if sel_count == 1:
- sel=-1
- for i in range(0,sel_count):
- sel = win32gui.SendMessage(hwndList, commctrl.LVM_GETNEXTITEM, sel, commctrl.LVNI_SELECTED)
- buf,extra = win32gui_struct.EmptyLVITEM(1, 0)
- size = win32gui.SendMessage(hwndList, commctrl.LVM_GETITEMTEXT, sel, buf)
- sel_text = ''
- for n in extra:
- nombre = n.tostring()
- sel_text = nombre[0:size]
- global state_ref
- global new_con_state
- if str(sel_text).strip() == "":
- win32ui.MessageBox("Invalid fed. state selected.","Search Fed.State")
- return
- try:
- state_ref = str(sel_text)
- new_con_state = str(sel_text)
- win32gui.EndDialog(btnProcessor.window.hwnd, btnProcessor.other_ids[1])
- except Exception:
- pass
-
- return
- elif sel_count < 1:
- win32ui.MessageBox("You must select state.","Search Fed.State")
- return
- else:
- win32ui.MessageBox("Multiple selection is not allowed.","Search Fed.State")
- return
-
-def SetWebDefaultVals(txtProcessor,*args):
- import win32con
- #Acquiring control of the text box
- chk_hwnd = win32gui.GetDlgItem(txtProcessor.window.hwnd, txtProcessor.other_ids[1])
- try:
- web_server = NewConn.getitem('_webserver')
- web_port = NewConn.getitem('_webport')
- web_protocol = NewConn.getitem('_webprotocol')
- win32gui.SetDlgItemText(txtProcessor.window.hwnd, txtProcessor.control_id, web_server)
- win32gui.SetDlgItemText(txtProcessor.window.hwnd, txtProcessor.other_ids[0], web_port)
- if web_protocol == "https:\\\\":
- win32gui.SendMessage(chk_hwnd , win32con.BM_SETCHECK, 1, 0);
- except Exception, e:
- txtProcessor.init_done=True
- #Reading Current Selected Email.
- txtProcessor.init_done=True
-
-def SetServerDefaultVals(txtProcessor,*args):
- import win32con
- select = 1
- #Acquiring control of the text box
- cbprotocol_hwnd = win32gui.GetDlgItem(txtProcessor.window.hwnd, txtProcessor.other_ids[1])
- try:
- web_server = NewConn.getitem('_server')
- web_port = NewConn.getitem('_port')
- web_protocol = NewConn.getitem('protocol')
- win32gui.SetDlgItemText(txtProcessor.window.hwnd, txtProcessor.control_id, web_server)
- win32gui.SetDlgItemText(txtProcessor.window.hwnd, txtProcessor.other_ids[0], web_port)
- if web_protocol == "XML-RPCS":
- select = 2
- win32gui.SendMessage(cbprotocol_hwnd, win32con.CB_SETCURSEL, select, 0)
- except Exception, e:
- txtProcessor.init_done=True
- #Reading Current Selected Email.
- txtProcessor.init_done=True
-
-dialog_map = {
- "IDD_MANAGER" : (
- (CancelButtonProcessor, "IDCANCEL", resetConnAttribs, ()),
- (TabProcessor, "IDC_TAB IDC_LIST",
- """IDD_GENERAL IDD_OBJECT_SETTINGS IDD_ABOUT"""),
- (DoneButtonProcessor, "ID_DONE"),
- ),
-
- "IDD_GENERAL": (
- (DBComboProcessor, "ID_DB_DROPDOWNLIST", GetConn, ()),
- (TextProcessor, "ID_SERVER_PORT ID_USERNAME ID_PASSWORD IDET_WED_SERVER", SetAllText, ()),
- (CommandButtonProcessor, "ID_BUT_TESTCONNECTION ID_DB_DROPDOWNLIST ID_USERNAME \
- ID_PASSWORD", TestConnection, ()),
- (DialogCommand, "IDC_BUT_SET_SERVER_PORT", "IDD_SERVER_PORT_DIALOG"),
- (DialogCommand, "ID_SET_WEB_CONNECTION", "IDD_WEB_SERVER_PORT_DIALOG" ),
- (CommandButtonProcessor, "IDPB_WEB_CONNECTION IDET_WED_SERVER", ConnectWebServer, ()),
- ),
-
- "IDD_OBJECT_SETTINGS" : (
- (CommandButtonProcessor, "IDC_BUT_LOAD_IMAGE IDC_IMAGE_PATH", GetImagePath, ()),
- (CommandButtonProcessor, "IDC_BUT_SAVE_OBJECT IDC_OBJECT_TITLE IDC_OBJECT_NAME \
- IDC_IMAGE_PATH IDC_LIST", AddNewObject, ()),
- (CommandButtonProcessor, "IDC_BUT_DEL_OBJECT IDC_LIST", DeleteSelectedObjects, ()),
- (ListBoxProcessor, "IDC_LIST", SetDefaultList, ())
- ),
-
- "IDD_ABOUT" : (
- (ImageProcessor, "IDB_OPENERPLOGO"),
- (MessageProcessor, "IDC_ABOUT"),
- ),
-
- "IDD_SERVER_PORT_DIALOG" : (
- (TextProcessor, "ID_SERVER ID_PORT ID_DROPDOWNLIST_PROTOCOL", SetServerDefaultVals, ()),
- (ProtocolComboProcessor, "ID_DROPDOWNLIST_PROTOCOL", GetConn, ()),
- (CloseButtonProcessor, "IDCANCEL"),
- (OKButtonProcessor, "IDOK ID_SERVER ID_PORT IDR_XML_PROTOCOL ID_DROPDOWNLIST_PROTOCOL"),
-#
-# (RadioButtonProcessor, "IDR_XML_PROTOCOL", GetConn, ()),
-# (RadioButtonProcessor, "IDR_XMLS_PROTOCOL", GetConn, ()),
-# (RadioButtonProcessor, "IDR_NETRPC_PROTOCOL", GetConn, ()),
- ),
-
- "IDD_SYNC" : (
- (CommandButtonProcessor, "ID_SEARCH ID_SEARCH_TEXT IDC_NAME_LIST", SearchObjectsForText,()),
- (GroupProcessor, "IDC_STATIC_GROUP", setCheckList, ()),
- (CSComboProcessor, "ID_ATT_METHOD_DROPDOWNLIST", GetConn,()),
- (DialogCommand, "ID_CREATE_CONTACT ID_SEARCH_TEXT", "IDD_NEW_CONTACT_DIALOG", set_search_text, ()),
- (CloseButtonProcessor, "IDCANCEL"),
- (CommandButtonProcessor, "ID_MAKE_ATTACHMENT IDC_NAME_LIST IDD_SYNC", MakeAttachment, ()),
- (CommandButtonProcessor, "ID_CREATE_CASE ID_ATT_METHOD_DROPDOWNLIST IDC_NAME_LIST IDD_SYNC", CreateCase, ()),
- (ListBoxProcessor, "IDC_NAME_LIST", SetNameColumn, ()),
- (TextProcessor, "ID_SEARCH_TEXT ID_SEARCH_TEXT IDC_NAME_LIST", GetSearchText, ()),
-
- ),
-
- "IDD_NEW_CONTACT_DIALOG" : (
- (CloseButtonProcessor, "IDCANCEL"),
- (CommandButtonProcessor, "ID_CONTACT_SAVE_BUTTON ID_CONTACT_NAME_TEXT ID_CONTACT_EMAIL_TEXT ID_CONTACT_OFFICE_TEXT ID_CONTACT_MOBILE_TEXT ID_FAX_TEXT ID_STREET_TEXT ID_STREET2_TEXT ID_PARTNER_CITY_TEXT ID_ZIP_TEXT ID_PARTNER_TEXT IDET_NC_PARTNER_STATE IDET_NC_PARTNER_COUNTRY", CreateContact, ()),
- (TextProcessor, "ID_CONTACT_NAME_TEXT ID_CONTACT_EMAIL_TEXT ID_PARTNER_TEXT IDET_NC_PARTNER_STATE IDET_NC_PARTNER_COUNTRY" , SetDefaultContact, ()),
- (DialogCommand, "ID_NEW_PARTNER_BUTTON", "IDD_SELECT_PARTNER"),
- (DialogCommand, "IDPB_NEW_PARTNER_BUTTON", "IDD_NEW_PARTNER_DIALOG"),
- (DialogCommand, "IDPB_NC_SEARCH_STATE1", "IDD_SELECT_STATE"),
- (DialogCommand, "IDPB_NC_SEARCH_COUNTRY1", "IDD_SELECT_COUNTRY"),
- ),
-
- "IDD_NEW_PARTNER_DIALOG" : (
- (CloseButtonProcessor, "IDCANCEL"),
- (CommandButtonProcessor, "ID_SAVE_PARTNER_BUTTON ID_PARTNER_NAME_TEXT", CreatePartner, ()),
- ),
-
- "IDD_VIEW_PARTNER_DIALOG" : (
- (TextProcessor, "IDET_SEARCH_PARTNER IDET_PARTNER IDET_PARTNER_CONTACT_NAME IDET_PARTNER_STREET IDET_PARTNER_STREET2 IDET_PARTNER_CITY IDET_PARTNER_OFFICENO IDET_PARTNER_MOBILENO IDET_PARTNER_EMAIL IDET_PARTNER_FAX IDET_ZIP IDET_PARTNER_STATE IDET_PARTNER_COUNTRY", GetDefaultEmail, ()),
- (CommandButtonProcessor, "IDPB_SEARCH_PARTNER IDET_SEARCH_PARTNER IDET_PARTNER IDET_PARTNER_CONTACT_NAME IDET_PARTNER_STREET IDET_PARTNER_STREET2 IDET_PARTNER_CITY IDET_PARTNER_OFFICENO IDET_PARTNER_MOBILENO IDET_PARTNER_EMAIL IDET_PARTNER_FAX IDET_ZIP IDET_PARTNER_STATE IDET_PARTNER_COUNTRY", SearchPartner, ()),
- (CommandButtonProcessor, "IDPB_WRITE_CHANGES IDET_PARTNER IDET_PARTNER_CONTACT_NAME IDET_PARTNER_STREET IDET_PARTNER_STREET2 IDET_PARTNER_CITY IDET_PARTNER_STATE IDET_PARTNER_COUNTRY IDET_PARTNER_OFFICENO IDET_PARTNER_MOBILENO IDET_PARTNER_EMAIL IDET_PARTNER_FAX IDET_ZIP", WritePartner, ()),
- (CloseButtonProcessor, "IDCANCEL"),
- (DialogCommand, "ID_NEW_PART_BUTTON", "IDD_SELECT_PARTNER" ),
- (DialogCommand, "IDPB_NEWPARTNER_BUTTON" , "IDD_NEW_CONTACT_DIALOG"),
- (DialogCommand, "IDPB_NEW_PART_BUTTON", "IDD_NEW_PARTNER_DIALOG"),
- (DialogCommand, "IDPB_SEARCH_COUNTRY1", "IDD_SELECT_COUNTRY"),
- (DialogCommand, "IDPB_SEARCH_STATE1", "IDD_SELECT_STATE"),
-
- ),
- "IDD_SELECT_PARTNER" : (
- (ListBoxProcessor, "IDC_LIST_PARTNER" ,SetPartnerNameColumn, ()),
- (CommandButtonProcessor, "IDPB_PARTNER_SEARCH IDET_PARTNER_SEARCH_NAME IDC_LIST_PARTNER", SearchPartnerList,()),
- (CommandButtonProcessor, "IDPB_SELECT_PARTNER IDC_LIST_PARTNER IDD_SELECT_PARTNER" , SelectPartnerFromList,()),
- (DialogCommand, "IDPB_CREATE_NEW_PARTNER" , "IDD_NEW_PARTNER_DIALOG")
- ),
- "IDD_OPEN_PARTNER_DIALOG" : (
- (CloseButtonProcessor, "IDCANCEL"),
- (TextProcessor, "IDET_PARTNER_LINK_TEXT", OpenPartnerForm, ()),
- ),
- "IDD_OPEN_DOCUEMNT_DIALOG" : (
- (CloseButtonProcessor, "IDCANCEL"),
- (TextProcessor, "IDEB_OPENDOC_LINK_TEXT", SerachOpenDocuemnt,()),
- ),
- "IDD_WEB_SERVER_PORT_DIALOG" :(
- (TextProcessor, "IDET_WEB_SERVER IDET_WEB_PORT IDCB_WEB_SECURE", SetWebDefaultVals, ()),
- (CloseButtonProcessor, "IDCANCEL"),
- (WEBOKButtonProcessor, "ID_WEB_OK IDET_WEB_SERVER IDET_WEB_PORT IDCB_WEB_SECURE"),
- (WEBCHKProcessor, "IDCB_WEB_SECURE"),
-
- ),
- "IDD_SELECT_COUNTRY" : (
- (CommandButtonProcessor, "IDPB_SEARCH_COUNTRY IDET_COUNTRY_SEARCH_NAME IDC_LIST_COUNTRY" , SearchCountry, ()),
- (ListBoxProcessor, "IDC_LIST_COUNTRY" ,SetCountryList, ()),
- (CommandButtonProcessor, "IDPB_SELECT_COUNTRY IDC_LIST_COUNTRY IDD_SELECT_COUNTRY" , SelectCountryFromList,()),
- ),
- "IDD_SELECT_STATE" : (
- (CommandButtonProcessor, "IDPB_STATE_SEARCH IDET_STATE_SEARCH_NAME IDC_LIST_STATE" , SearchState, ()),
- (ListBoxProcessor, "IDC_LIST_STATE" ,SetStateList, ()),
- (CommandButtonProcessor, "IDPB_SELECT_STATE IDC_LIST_STATE IDD_SELECT_STATE" , SelectStateFromList,()),
- ),
-}
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/outlook/plugin/openerp-outlook-plugin/dialogs/dlgcore.py b/addons/outlook/plugin/openerp-outlook-plugin/dialogs/dlgcore.py
deleted file mode 100644
index bce802b5ed1..00000000000
--- a/addons/outlook/plugin/openerp-outlook-plugin/dialogs/dlgcore.py
+++ /dev/null
@@ -1,325 +0,0 @@
-# A core, data-driven dialog.
-# Driven completely by "Control Processor" objects.
-
-# This module is part of the spambayes project, which is Copyright 2003
-# The Python Software Foundation and is covered by the Python Software
-# Foundation license.
-
-import win32gui, win32api, win32con
-import commctrl
-import struct, array
-
-from dlgutils import *
-# Isolate the nasty stuff for tooltips somewhere.
-class TooltipManager:
- def __init__(self, dialog):
- self.dialog = dialog
- self.hwnd_tooltip = None
- self.tooltip_tools = {}
-
- def HideTooltip(self):
- if self.hwnd_tooltip is not None:
- win32gui.SendMessage(self.hwnd_tooltip, commctrl.TTM_TRACKACTIVATE, 0, 0)
-
- def ShowTooltipForControl(self, control_id, text):
- # Note sure this tooltip stuff is quite right!
- # Hide an existing one, so the new one gets created.
- # (new one empty is no big deal, but hiding the old one is, so
- # we get re-queried for the text.
- hwnd_dialog = self.dialog.hwnd
- self.HideTooltip()
- if self.hwnd_tooltip is None:
- TTS_BALLOON = 0x40
- self.hwnd_tooltip = win32gui.CreateWindowEx(0, "tooltips_class32", None,
- win32con.WS_POPUP | TTS_BALLOON,
- win32con.CW_USEDEFAULT, win32con.CW_USEDEFAULT,
- win32con.CW_USEDEFAULT, win32con.CW_USEDEFAULT,
- hwnd_dialog, 0, 0, None)
- # 80 chars max for our tooltip
- # hrm - how to measure this in pixels!
- win32gui.SendMessage(self.hwnd_tooltip,
- commctrl.TTM_SETMAXTIPWIDTH,
- 0, 300)
-
- format = "iiiiiiiiiii"
- tt_size = struct.calcsize(format)
- buffer = array.array("c", text + "\0")
- text_address, size = buffer.buffer_info()
- uID = control_id
- flags = commctrl.TTF_TRACK | commctrl.TTF_ABSOLUTE
- data = struct.pack(format, tt_size, flags, hwnd_dialog, uID, 0,0,0,0, 0, text_address, 0)
-
- # Add a tool for this control only if we haven't already
- if control_id not in self.tooltip_tools:
- win32gui.SendMessage(self.hwnd_tooltip,
- commctrl.TTM_ADDTOOL,
- 0, data)
- self.tooltip_tools[control_id] = 1
-
- control = win32gui.GetDlgItem(hwnd_dialog, control_id)
- child_rect = win32gui.GetWindowRect(control)
- xOff = yOff = 15 # just below and right of the control
-
- win32gui.SendMessage(self.hwnd_tooltip,
- commctrl.TTM_TRACKPOSITION,
- 0,
- MAKELONG(child_rect[0]+xOff, child_rect[1]+yOff))
- win32gui.SendMessage(self.hwnd_tooltip,
- commctrl.TTM_TRACKACTIVATE,
- 1,data)
-
-# A base dialog class, that loads from resources. Has no real smarts.
-class Dialog:
- def __init__(self, parent, parser, idd):
- win32gui.InitCommonControls()
- self.hinst = win32api.GetModuleHandle(None)
- self.parent = parent
- self.dialog_parser = parser
- self.template = parser.dialogs[idd]
-
- def _GetIDName(self, cid):
- return self.dialog_parser.names.get(cid, str(cid))
-
- def CreateWindow(self):
- return self._DoCreate(win32gui.CreateDialogIndirect)
-
- def DoModal(self):
- return self._DoCreate(win32gui.DialogBoxIndirect)
-
- def GetMessageMap(self):
- ret = {
- win32con.WM_COMMAND: self.OnCommand,
- win32con.WM_NOTIFY: self.OnNotify,
- win32con.WM_INITDIALOG: self.OnInitDialog,
- win32con.WM_CLOSE: self.OnClose,
- win32con.WM_DESTROY: self.OnDestroy,
- win32con.WM_RBUTTONUP: self.OnRButtonUp,
- }
- return ret
-
- def DoInitialPosition(self):
- # centre the dialog
- desktop = win32gui.GetDesktopWindow()
- l,t,r,b = win32gui.GetWindowRect(self.hwnd)
- w = r-l
- h = b-t
- dt_l, dt_t, dt_r, dt_b = win32gui.GetWindowRect(desktop)
- centre_x, centre_y = win32gui.ClientToScreen( desktop, ( (dt_r-dt_l)/2, (dt_b-dt_t)/2) )
- win32gui.MoveWindow(self.hwnd, centre_x-(w/2), centre_y-(h/2), w, h, 0)
-
- def OnInitDialog(self, hwnd, msg, wparam, lparam):
- self.hwnd = hwnd
- self.DoInitialPosition()
-
- def OnCommand(self, hwnd, msg, wparam, lparam):
- pass
- def OnNotify(self, hwnd, msg, wparam, lparam):
- pass
- def OnClose(self, hwnd, msg, wparam, lparam):
- pass
- def OnDestroy(self, hwnd, msg, wparam, lparam):
- pass
- def OnRButtonUp(self, hwnd, msg, wparam, lparam):
- pass
-
- def _DoCreate(self, fn):
- message_map = self.GetMessageMap()
- return win32gui.DialogBoxIndirect(self.hinst, self.template, self.parent, message_map)
- # A couple of helpers
- def GetDlgItem(self, id):
- if type(id)==type(''):
- id = self.dialog_parser.ids[id]
- return win32gui.GetDlgItem(self.hwnd, id)
- def SetDlgItemText(self, id, text):
- hchild = self.GetDlgItem(id)
- win32gui.SendMessage(hchild, win32con.WM_SETTEXT, 0, text)
-
-# A dialog with a tooltip manager
-class TooltipDialog(Dialog):
- def __init__(self, parent, parser, idd):
- Dialog.__init__(self, parent, parser, idd)
- self.tt = TooltipManager(self)
-
- def GetMessageMap(self):
- ret = Dialog.GetMessageMap(self)
- ret.update( {
- win32con.WM_HELP: self.OnHelp,
- win32con.WM_LBUTTONDOWN: self.OnLButtonDown,
- win32con.WM_ACTIVATE: self.OnActivate,
- })
- return ret
-
- def OnLButtonDown(self, hwnd, msg, wparam, lparam):
- self.tt.HideTooltip()
-
- def OnActivate(self, hwnd, msg, wparam, lparam):
- self.tt.HideTooltip()
-
- def OnDestroy(self, hwnd, msg, wparam, lparam):
- self.tt.HideTooltip()
-
- def OnHelp(self, hwnd, msg, wparam, lparam):
- format = "iiiiiii"
- buf = win32gui.PyMakeBuffer(struct.calcsize(format), lparam)
- cbSize, iContextType, iCtrlId, hItemHandle, dwContextID, x, y = \
- struct.unpack(format, buf)
- tt_text = self.GetPopupHelpText(iCtrlId)
- if tt_text:
- self.tt.ShowTooltipForControl(iCtrlId, tt_text)
- else:
- self.tt.HideTooltip()
- return 1
-
- def GetPopupHelpText(self, control_id):
- return None
-
-# A "Processor Dialog" works with Command Processors, to link Outlook-Plugin
-# options with control IDS, giving a "data driven" dialog.
-class ProcessorDialog(TooltipDialog):
- def __init__(self, parent, manager, config, idd, option_handlers):
- TooltipDialog.__init__(self, parent, manager.dialog_parser, idd)
- parser = manager.dialog_parser
- self.manager = manager
- self.config = config
- self.command_processors = {}
- self.processor_message_map = {}
- self.all_processors = []
- for data in option_handlers:
- klass = data[0]
- id_names = data[1]
- rest = data[2:]
- ids = id_names.split()
- int_ids = [ parser.ids[id] for id in ids]
- instance = klass(self,int_ids, *rest)
- self.all_processors.append(instance)
- for int_id in int_ids:
- self.command_processors[int_id] = instance
- for message in instance.GetMessages():
- existing = self.processor_message_map.setdefault(message, [])
- existing.append(instance)
-
- def GetMessageMap(self):
- ret = TooltipDialog.GetMessageMap(self)
- for key in self.processor_message_map.keys():
- if key in ret:
- print "*** WARNING: Overwriting message!!!"
- ret[key] = self.OnCommandProcessorMessage
- return ret
-
- def OnInitDialog(self, hwnd, msg, wparam, lparam):
- TooltipDialog.OnInitDialog(self, hwnd, msg, wparam, lparam)
- if __debug__: # this is just a debugging aid
- for int_id in self.command_processors:
- try:
- self.GetDlgItem(int_id)
- except win32gui.error:
- print "ERROR: Dialog item %s refers to an invalid control" % \
- self._GetIDName(int_id)
- self.LoadAllControls()
-
- def GetPopupHelpText(self, iCtrlId):
- cp = self.command_processors.get(iCtrlId)
- tt_text = None
- if cp is not None:
- return cp.GetPopupHelpText(iCtrlId)
-
- print "Can not get command processor for", self._GetIDName(iCtrlId)
- return None
- def OnRButtonUp(self, hwnd, msg, wparam, lparam):
- for cp in self.command_processors.values():
- cp.OnRButtonUp(wparam,lparam)
-
- def OnCommandProcessorMessage(self, hwnd, msg, wparam, lparam):
- for p in self.processor_message_map[msg]:
- p.OnMessage(msg, wparam, lparam)
-
- # Called back by a processor when it changes an option. We tell all other
- # options on our page that the value changed.
- def OnOptionChanged(self, changed_by, option):
- for p in self.all_processors:
- if p is not changed_by:
- p.OnOptionChanged(option)
-
-
- def OnDestroy(self, hwnd, msg, wparam, lparam):
- for p in self.all_processors:
- p.Term()
- TooltipDialog.OnDestroy(self, hwnd, msg, wparam, lparam)
- self.command_processors = None
- self.all_processors = None
- self.processor_message_map = None
-
- def LoadAllControls(self):
- for p in self.all_processors:
- p.Init()
-
- def ApplyHandlingOptionValueError(self, func, *args):
- try:
- return func(*args)
- except ValueError, why:
- mb_flags = win32con.MB_ICONEXCLAMATION | win32con.MB_OK
- win32gui.MessageBox(self.hwnd, str(why), "OpenERP Configuration", mb_flags)
- return False
-
- def SaveAllControls(self):
- for p in self.all_processors:
- if not self.ApplyHandlingOptionValueError(p.Done):
- win32gui.SetFocus(p.GetControl())
- return False
- return True
-
- def OnClose(self, hwnd, msg, wparam, lparam):
- if TooltipDialog.OnClose(self, hwnd, msg, wparam, lparam):
- return 1
- if not self.SaveAllControls():
- return 1
- win32gui.EndDialog(hwnd, 0)
-
- def OnNotify(self, hwnd, msg, wparam, lparam):
- # Parse the NMHDR
- TooltipDialog.OnNotify(self, hwnd, msg, wparam, lparam)
- format = "iii"
- buf = win32gui.PyMakeBuffer(struct.calcsize(format), lparam)
- hwndFrom, idFrom, code = struct.unpack(format, buf)
- code += 0x4f0000 # hrm - wtf - commctrl uses this, and it works with mfc. *sigh*
- # delegate rest to our commands.
- self._GetIDName(idFrom)
- if self.command_processors is not None:
- handler = self.command_processors.get(idFrom)
- if handler is None:
- print "Ignoring OnNotify for", self._GetIDName(idFrom)
- return
- return handler.OnNotify( (hwndFrom, idFrom, code), wparam, lparam)
- return
-
- def OnCommand(self, hwnd, msg, wparam, lparam):
- TooltipDialog.OnCommand(self, hwnd, msg, wparam, lparam)
- id = win32api.LOWORD(wparam)
- # Sometimes called after OnDestroy???
- if self.command_processors is None:
- print "Ignoring OnCommand for", self._GetIDName(id)
- return
- else:
- handler = self.command_processors.get(id)
- if handler is None:
- print "Ignoring OnCommand for", self._GetIDName(id)
- return
-
- self.ApplyHandlingOptionValueError(handler.OnCommand, wparam, lparam)
-
-class ProcessorPage(ProcessorDialog):
- def __init__(self, parent, manager, config, idd, option_handlers, yoffset):
- ProcessorDialog.__init__(self, parent, manager, config, idd,option_handlers)
- self.yoffset = yoffset
- def DoInitialPosition(self):
- # The hardcoded values are a bit of a hack.
- win32gui.SetWindowPos(self.hwnd, win32con.HWND_TOP, 1, self.yoffset, 0, 0, win32con.SWP_NOSIZE)
- def CreateWindow(self):
- # modeless. Pages should have the WS_CHILD window style
- message_map = self.GetMessageMap()
- # remove frame from dialog and make sure it is a child
- self.template[0][2] = self.template[0][2] & ~(win32con.DS_MODALFRAME|win32con.WS_POPUP|win32con.WS_OVERLAPPED|win32con.WS_CAPTION)
- self.template[0][2] = self.template[0][2] | win32con.WS_CHILD
- return win32gui.CreateDialogIndirect(self.hinst, self.template, self.parent, message_map)
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/outlook/plugin/openerp-outlook-plugin/dialogs/dlgutils.py b/addons/outlook/plugin/openerp-outlook-plugin/dialogs/dlgutils.py
deleted file mode 100644
index bede3cd63c2..00000000000
--- a/addons/outlook/plugin/openerp-outlook-plugin/dialogs/dlgutils.py
+++ /dev/null
@@ -1,20 +0,0 @@
-# Generic utilities for dialog functions.
-
-# This module is part of the spambayes project, which is Copyright 2003
-# The Python Software Foundation and is covered by the Python Software
-# Foundation license.
-
-def MAKELONG(l,h):
- return ((h & 0xFFFF) << 16) | (l & 0xFFFF)
-
-MAKELPARAM=MAKELONG
-
-def SetWaitCursor(wait):
- import win32gui, win32con
- if wait:
- hCursor = win32gui.LoadCursor(0, win32con.IDC_WAIT)
- else:
- hCursor = win32gui.LoadCursor(0, 0)
- win32gui.SetCursor(hCursor)
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/outlook/plugin/openerp-outlook-plugin/dialogs/opt_processors.py b/addons/outlook/plugin/openerp-outlook-plugin/dialogs/opt_processors.py
deleted file mode 100644
index 0a129423e29..00000000000
--- a/addons/outlook/plugin/openerp-outlook-plugin/dialogs/opt_processors.py
+++ /dev/null
@@ -1,320 +0,0 @@
-# Option Control Processors for our dialog.
-# These are extensions to basic Control Processors that are linked with
-# Outlook-Plugin options.
-
-# This module is part of the spambayes project, which is Copyright 2003
-# The Python Software Foundation and is covered by the Python Software
-# Foundation license.
-
-# -*- 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 .
-#
-##############################################################################
-
-import win32gui, win32api, win32con, win32ui
-import commctrl
-import struct, array
-from dlgutils import *
-import xmlrpclib
-import processors
-verbose = 0 # set to 1 to see option values fetched and set.
-# A ControlProcessor that is linked up with options. These get a bit smarter.
-class OptionControlProcessor(processors.ControlProcessor):
- def __init__(self, window, control_ids):
- processors.ControlProcessor.__init__(self, window, control_ids)
-
- def GetPopupHelpText(self, idFrom):
- doc = " ".join(self.option.doc().split())
- if self.option.default_value:
- doc += " (the default value is %s)" % self.option.default_value
- return doc
-
- # We override Init, and break it into 2 steps.
- def Init(self):
- self.UpdateControl_FromValue()
-
- def Done(self):
- self.UpdateValue_FromControl()
- return True
-
-# # Only sub-classes know how to update their controls from the value.
- def UpdateControl_FromValue(self):
- raise NotImplementedError
- def UpdateValue_FromControl(self):
- raise NotImplementedError
-
-class ComboProcessor(OptionControlProcessor):
- def __init__(self, window, control_ids, func, args):
- self.func = func
- self.args = args
- OptionControlProcessor.__init__(self, window, control_ids)
- def OnCommand(self, wparam, lparam):
- code = win32api.HIWORD(wparam)
- if code == win32con.CBN_SELCHANGE:
- self.UpdateValue_FromControl()
- def Init(self):
- self.UpdateControl_FromValue()
- def UpdateControl_FromValue(self):
- pass
- def UpdateValue_FromControl(self):
- pass
-
-class DBComboProcessor(ComboProcessor):
- def Init(self):
- self.UpdateControl_FromValue()
-
- def UpdateControl_FromValue(self):
- combo = self.GetControl()
- conn = self.func()
- list = conn.GetDBList()
- db = conn.getitem('_dbname')
- if list == -1:
- hinst = win32gui.dllhandle
- parent = self.window.hwnd
- dwStyle = win32con.WS_CHILD | win32con.WS_VISIBLE | win32con.WS_TABSTOP | win32con.WS_BORDER | \
- win32con.ES_AUTOHSCROLL | win32con.FF_ROMAN | win32con.FW_EXTRALIGHT
-
- hwndImg = win32gui.CreateWindow (
- "EDIT",
- db,
- dwStyle,
- 127,80,235,20,
- parent,
- 7000,
- 0,
- None);
- self.active_control_id = 7000
- win32gui.ShowWindow(combo, False)
- else:
- try:
- txtbx = win32gui.GetDlgItem(self.window.hwnd, 7000)
- win32gui.DestroyWindow(txtbx)
- except Exception,e:
- print "Exception : %s"%str(e)
- pass
- win32gui.ShowWindow(combo, True)
- win32gui.SendMessage(combo, win32con.CB_RESETCONTENT,0, 0);
- for item in list:
- win32gui.SendMessage(combo, win32con.CB_ADDSTRING, 0, str(item))
- sel = win32gui.SendMessage(combo, win32con.CB_SELECTSTRING, 0, db)
- dbb=win32gui.GetDlgItemText(self.window.hwnd, 2004)
- if sel == -1:
- win32gui.SendMessage(combo, win32con.CB_SETCURSEL, 0, 0)
- self.active_control_id = self.control_id
-
- def UpdateValue_FromControl(self):
- db = win32gui.GetDlgItemText(self.window.hwnd, self.active_control_id)
- conn = self.func()
- if conn.getitem('_dbname') != db:
- conn.setitem('_dbname', db)
- conn.setitem('_login', 'False')
-
-class PartnersComboProcessor(ComboProcessor):
-
- def UpdateControl_FromValue(self):
- from manager import ustr
- import win32ui
- combo = self.GetControl()
- conn = self.func()
- win32gui.SendMessage(combo, win32con.CB_RESETCONTENT,0, 0);
- id_list = {}
- p_list=[]
- try:
- p_list = list(conn.GetPartners())
- cnt=0
- for item in p_list:
- win32gui.SendMessage(combo, win32con.CB_ADDSTRING, 0, ustr(item[1]).encode('iso-8859-1'))
- id_list[cnt] = item[0]
- cnt+=1
- conn.setitem('partner_id_list', str(id_list))
- cnt = win32gui.SendMessage(combo, win32con.CB_GETCOUNT, 0, 0)
- win32gui.SendMessage(combo, win32con.CB_SETCURSEL, -1, 0)
- return
- except xmlrpclib.Fault,e:
- msg = str(e.faultCode) or e.faultString or e.message or str(e)
- except Exception,e:
- msg = str(e)
- win32ui.MessageBox(str(e),"Partners",win32con.MB_ICONEXCLAMATION)
- win32gui.DestroyWindow(self.window.hwnd)
-
- def UpdateValue_FromControl(self):
- combo = self.GetControl()
- conn = self.func()
- sel = win32gui.SendMessage(combo, win32con.CB_GETCURSEL)
- conn.setitem('sel_id', sel)
-
-class StateComboProcessor(ComboProcessor):
-
- def Init(self):
- self.UpdateControl_FromValue()
-
- def UpdateControl_FromValue(self):
- from manager import ustr
- import win32ui
- combo = self.GetControl()
- conn = self.func()
- win32gui.SendMessage(combo, win32con.CB_RESETCONTENT, 0, 0);
- id_list = {}
- state_list=[]
- try:
- state_list = list(conn.GetAllState())
- for item in state_list:
- win32gui.SendMessage(combo, win32con.CB_ADDSTRING, 0, ustr(item[1]).encode('iso-8859-1'))
- win32gui.SendMessage(combo, win32con.CB_SETCURSEL, -1, 0)
- cnt = win32gui.SendMessage(combo, win32con.CB_GETCOUNT, 0, 0)
- return
- except xmlrpclib.Fault,e:
- msg = str(e.faultCode) or e.faultString or e.message or str(e)
- win32ui.MessageBox(msg, "Open Partner")
- except Exception,e:
- win32ui.MessageBox(str(e), "Open Partner")
- def UpdateValue_FromControl(self):
- pass
-
-class CountryComboProcessor(ComboProcessor):
-
- def Init(self):
- self.UpdateControl_FromValue()
-
- def UpdateControl_FromValue(self):
- from manager import ustr
- import win32ui
- combo = self.GetControl()
- conn = self.func()
- win32gui.SendMessage(combo, win32con.CB_RESETCONTENT, 0, 0);
- id_list = {}
- state_list=[]
- try:
- country_list = list(conn.GetAllCountry())
- for item in country_list:
- win32gui.SendMessage(combo, win32con.CB_ADDSTRING, 0, ustr(item[1]).encode('iso-8859-1'))
- win32gui.SendMessage(combo, win32con.CB_SETCURSEL, -1, 0)
- cnt = win32gui.SendMessage(combo, win32con.CB_GETCOUNT, 0, 0)
- return
- except xmlrpclib.Fault,e:
- msg = str(e.faultCode) or e.faultString or e.message or str(e)
- win32ui.MessageBox(msg, "Open Partner")
- except Exception,e:
- win32ui.MessageBox(str(e), "Open Partner")
- def UpdateValue_FromControl(self):
- pass
-
-class CSComboProcessor(ComboProcessor):
- def UpdateControl_FromValue(self):
- combo = self.GetControl()
- conn = self.func()
- if str(conn.getitem('_iscrm')) == 'False':
- win32gui.EnableWindow(combo, False)
- return
- try:
- list=['CRM Lead']#, 'CRM Helpdesk', 'CRM Lead', 'CRM Meeting', 'CRM Opportunity', 'CRM Phonecall']
- objlist = conn.GetAllObjects()
- if'hr.applicant' in objlist:
- list.append('HR Applicant')
- if'project.issue' in objlist:
- list.append('Project Issue')
-
- win32gui.SendMessage(combo, win32con.CB_RESETCONTENT,0, 0);
- for item in list:
- win32gui.SendMessage(combo, win32con.CB_ADDSTRING, 0, str(item))
- win32gui.SendMessage(combo, win32con.CB_SETCURSEL, 0, 0)
- return
- except xmlrpclib.Fault,e:
- win32ui.MessageBox(str(e.faultCode),"CRM Case",win32con.MB_ICONEXCLAMATION)
- except Exception,e:
- win32ui.MessageBox(str(e),"CRM Case",win32con.MB_ICONEXCLAMATION)
-
- def UpdateValue_FromControl(self):
- pass
-
-class TextProcessor(OptionControlProcessor):
- def __init__(self, window, control_ids, func, args):
- self.func = func
- self.args = args
- OptionControlProcessor.__init__(self, window, control_ids)
-
- def UpdateControl_FromValue(self):
- args = (self,)+(self.window,) + self.args
- self.func(*args)
-
- def UpdateValue_FromControl(self):
- pass
-
-class ListBoxProcessor(OptionControlProcessor):
- def __init__(self, window, control_ids, func, args):
- self.func = func
- self.args = args
- OptionControlProcessor.__init__(self, window, control_ids)
-
- def Init(self):
- args = (self,)+(self.window,) + self.args
- if not self.init_done:
- self.func(*args)
-
- def UpdateControl_FromValue(self):
- pass
- def UpdateValue_FromControl(self):
- pass
-
-class ListBoxProcessor(OptionControlProcessor):
- def __init__(self, window, control_ids, func, args):
- self.func = func
- self.args = args
- OptionControlProcessor.__init__(self, window, control_ids)
-
- def Init(self):
- args = (self,)+(self.window,) + self.args
- if not self.init_done:
- self.func(*args)
-
- def UpdateControl_FromValue(self):
- pass
- def UpdateValue_FromControl(self):
- pass
-
-class GroupProcessor(OptionControlProcessor):
- def __init__(self, window, control_ids, func, args):
- self.func = func
- self.args = args
- OptionControlProcessor.__init__(self, window, control_ids)
- def Init(self):
- args = (self,)+(self.window,) + self.args
- self.func(*args)
- def UpdateControl_FromValue(self):
- pass
- def UpdateValue_FromControl(self):
- pass
-
-
-class ProtocolComboProcessor(ComboProcessor):
- def Init(self):
- self.UpdateControl_FromValue()
-
- def UpdateControl_FromValue(self):
- combo = self.GetControl()
- list = ['XML-RPC', 'XML-RPCS']
- win32gui.ShowWindow(combo, True)
- win32gui.SendMessage(combo, win32con.CB_RESETCONTENT, 0, 0);
- for item in list:
- win32gui.SendMessage(combo, win32con.CB_ADDSTRING, 0, str(item))
- if sel == -1:
- win32gui.SendMessage(combo, win32con.CB_SETCURSEL, 1, 0)
- self.active_control_id = self.control_id
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/outlook/plugin/openerp-outlook-plugin/dialogs/processors.py b/addons/outlook/plugin/openerp-outlook-plugin/dialogs/processors.py
deleted file mode 100644
index 34af9e073a4..00000000000
--- a/addons/outlook/plugin/openerp-outlook-plugin/dialogs/processors.py
+++ /dev/null
@@ -1,147 +0,0 @@
-# Control Processors for our dialog.
-
-# This module is part of the spambayes project, which is Copyright 2003
-# The Python Software Foundation and is covered by the Python Software
-# Foundation license.
-
-# -*- 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 .
-#
-##############################################################################
-
-import win32gui, win32api, win32con
-import commctrl
-import struct, array
-from dlgutils import *
-import win32ui
-
-# Cache our leaky bitmap handles
-bitmap_handles = {}
-
-# A generic set of "ControlProcessors". A control processor by itself only
-# does a few basic things.
-class ControlProcessor:
- def __init__(self, window, control_ids):
- self.control_id = control_ids[0]
- self.other_ids = control_ids[1:]
- self.window = window
- self.init_done=False
-
- def Init(self):
- pass
- def Done(self): # done with 'ok' - ie, save options. May return false.
- return True
- def Term(self): # closing - can't fail.
- pass
- def GetControl(self, control_id = None):
- control_id = control_id or self.control_id
- try:
- h = win32gui.GetDlgItem(self.window.hwnd, control_id)
- except:
- hparent = win32gui.GetParent(self.window.hwnd)
- hparent = win32gui.GetParent(hparent)
- h = win32gui.GetDlgItem(hparent, control_id)
- return h
- def GetPopupHelpText(self, idFrom):
- return None
- def OnCommand(self, wparam, lparam):
- pass
- def OnNotify(self, nmhdr, wparam, lparam):
- pass
- def GetMessages(self):
- return []
- def OnMessage(self, msg, wparam, lparam):
- raise RuntimeError, "I don't hook any messages, so I shouldn't be called"
- def OnOptionChanged(self, option):
- pass
- def OnRButtonUp(self, wparam, lparam):
- pass
-
-class ImageProcessor(ControlProcessor):
- def Init(self):
- rcp = self.window.manager.dialog_parser;
- bmp_id = int(win32gui.GetWindowText(self.GetControl()))
- if bitmap_handles.has_key(bmp_id):
- handle = bitmap_handles[bmp_id]
- else:
- import resources
- mod_handle, mod_bmp, extra_flags = resources.GetImageParamsFromBitmapID(rcp, bmp_id)
- load_flags = extra_flags|win32con.LR_COLOR|win32con.LR_SHARED
- handle = win32gui.LoadImage(mod_handle, mod_bmp,win32con.IMAGE_BITMAP,0,0,load_flags)
- bitmap_handles[bmp_id] = handle
- win32gui.SendMessage(self.GetControl(), win32con.STM_SETIMAGE, win32con.IMAGE_BITMAP, handle)
-
- def GetPopupHelpText(self, cid):
- return None
-
-class ButtonProcessor(ControlProcessor):
- def OnCommand(self, wparam, lparam):
- code = win32api.HIWORD(wparam)
- id = win32api.LOWORD(wparam)
- if code == win32con.BN_CLICKED:
- self.OnClicked(id)
-
-class RadioButtonProcessor(ControlProcessor):
- def __init__(self, window, control_ids, func='', args=''):
- self.func = func
- self.args = args
- ControlProcessor.__init__(self, window, control_ids)
-
- def OnCommand(self, wparam, lparam):
- code = win32api.HIWORD(wparam)
- id = win32api.LOWORD(wparam)
- if code == win32con.BN_CLICKED:
- text=win32gui.GetDlgItemText(self.window.hwnd, self.control_id)
- conn = self.func()
- conn.setitem('protocol', text)
- p=conn.getitem('protocol')
-
-class CloseButtonProcessor(ButtonProcessor):
- def OnClicked(self, id):
- win32gui.EndDialog(self.window.hwnd, id)
-
-class CancelButtonProcessor(ButtonProcessor):
- def __init__(self, window, control_ids, func, args):
- self.func = func
- self.args = args
- ControlProcessor.__init__(self, window, control_ids)
- def OnClicked(self, id):
- a=self.func(self.window)
- win32gui.EndDialog(self.window.hwnd, id)
-
-class CommandButtonProcessor(ButtonProcessor):
- def __init__(self, window, control_ids, func, args):
- self.func = func
- self.args = args
- ControlProcessor.__init__(self, window, control_ids)
-
- def OnClicked(self, id):
- # Bit of a hack - always pass the manager as the first arg.
- self.id = id
- args = (self, ) + self.args
- self.func(*args)
-
- def GetPopupHelpText(self, ctrlid):
- assert ctrlid == self.control_id
- doc = self.func.__doc__
- if doc is None:
- return ""
- return " ".join(doc.split())
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/outlook/plugin/openerp-outlook-plugin/dialogs/resources/OpenERP_Logo.bmp b/addons/outlook/plugin/openerp-outlook-plugin/dialogs/resources/OpenERP_Logo.bmp
deleted file mode 100644
index c8bb6091839..00000000000
Binary files a/addons/outlook/plugin/openerp-outlook-plugin/dialogs/resources/OpenERP_Logo.bmp and /dev/null differ
diff --git a/addons/outlook/plugin/openerp-outlook-plugin/dialogs/resources/__init__.py b/addons/outlook/plugin/openerp-outlook-plugin/dialogs/resources/__init__.py
deleted file mode 100644
index cf3e416c209..00000000000
--- a/addons/outlook/plugin/openerp-outlook-plugin/dialogs/resources/__init__.py
+++ /dev/null
@@ -1,32 +0,0 @@
-# This module is part of the spambayes project, which is Copyright 2003
-# The Python Software Foundation and is covered by the Python Software
-# Foundation license.
-
-# Package that manages and defines dialog resources
-
-def GetImageParamsFromBitmapID(rc_parser, bmpid):
- import os, sys
- import win32gui, win32con, win32api
- if type(bmpid)==type(0):
- bmpid = rc_parser.names[bmpid]
- int_bmpid = rc_parser.ids[bmpid]
- # For both binary and source versions, we currently load from files.
- # In future py2exe built binary versions we will be able to load the
- # bitmaps directly from our DLL.
- filename = rc_parser.bitmaps[bmpid]
- if hasattr(sys, "frozen"):
- # in our .exe/.dll - load from that.
- if sys.frozen=="dll":
- hmod = sys.frozendllhandle
- else:
- hmod = win32api.GetModuleHandle(None)
- return hmod, int_bmpid, 0
- else:
- # source code - load the .bmp directly.
- if not os.path.isabs(filename):
- # In this directory
- filename = os.path.join( os.path.dirname( __file__ ), filename)
- return 0, filename, win32con.LR_LOADFROMFILE
- assert 0, "not reached"
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/outlook/plugin/openerp-outlook-plugin/dialogs/resources/dialogs.h b/addons/outlook/plugin/openerp-outlook-plugin/dialogs/resources/dialogs.h
deleted file mode 100644
index 2bf0d1aec48..00000000000
--- a/addons/outlook/plugin/openerp-outlook-plugin/dialogs/resources/dialogs.h
+++ /dev/null
@@ -1,224 +0,0 @@
-//{{NO_DEPENDENCIES}}
-// Microsoft Visual C++ generated include file.
-// Used by dialogs.rc
-//
-#define IDD_MANAGER 101
-#define IDD_TRAINING 102
-#define IDD_FILTER 103
-#define IDD_FILTER_NOW 104
-#define IDD_FOLDER_SELECTOR 105
-#define IDD_ABOUT 106
-#define IDD_GENERAL 108
-
-//#define IDD_FILTER_SPAM 110
-#define IDD_FILTER_UNSURE 111
-#define IDD_DIAGNOSTIC 113
-#define IDD_WIZARD 114
-#define IDD_WIZARD_WELCOME 115
-#define IDD_WIZARD_FINISHED_UNTRAINED 116
-#define IDD_WIZARD_FOLDERS_REST 117
-#define IDD_WIZARD_FOLDERS_WATCH 118
-#define IDD_WIZARD_FINISHED_UNCONFIGURED 119
-#define IDD_WIZARD_FOLDERS_TRAIN 120
-#define IDD_WIZARD_TRAIN 121
-#define IDD_WIZARD_FINISHED_TRAINED 122
-#define IDD_WIZARD_TRAINING_IS_IMPORTANT 123
-#define IDD_WIZARD_FINISHED_TRAIN_LATER 124
-#define IDB_SBWIZLOGO 125
-#define IDB_FOLDERS 127
-#define IDC_PROGRESS 1000
-#define IDC_PROGRESS_TEXT 1001
-#define IDC_STATIC_HAM 1002
-#define IDC_STATIC_SPAM 1003
-#define IDC_BROWSE_HAM 1004
-#define IDC_BROWSE_SPAM 1005
-#define IDC_START 1006
-#define IDC_BUT_REBUILD 1007
-#define IDC_BUT_RESCORE 1008
-#define IDC_VERSION 1009
-#define IDC_BUT_TRAIN_FROM_SPAM_FOLDER 1010
-#define IDC_BUT_TRAIN_TO_SPAM_FOLDER 1011
-#define IDC_BUT_TRAIN_NOW 1012
-#define IDC_BUT_FILTER_ENABLE 1013
-#define IDC_FILTER_STATUS 1014
-#define IDC_BUT_FILTER_DEFINE 1016
-#define IDC_BUT_ABOUT 1017
-#define IDC_BUT_ACT_SCORE 1018
-#define IDC_BUT_ACT_ALL 1019
-#define IDC_BUT_UNREAD 1020
-#define IDC_BUT_UNSEEN 1021
-#define IDC_SLIDER_CERTAIN 1023
-#define IDC_EDIT_CERTAIN 1024
-#define IDC_ACTION_CERTAIN 1025
-#define IDC_FOLDER_CERTAIN 1027
-#define IDC_BROWSE_CERTAIN 1028
-#define IDC_SLIDER_UNSURE 1029
-#define IDC_EDIT_UNSURE 1030
-#define IDC_ACTION_UNSURE 1031
-#define IDC_FOLDER_UNSURE 1033
-#define IDC_BROWSE_UNSURE 1034
-#define IDC_TRAINING_STATUS 1035
-#define IDC_FOLDER_NAMES 1036
-#define IDC_BROWSE 1037
-#define IDC_FOLDER_WATCH 1038
-#define IDC_BROWSE_WATCH 1039
-#define IDC_LIST_FOLDERS 1040
-#define IDC_BUT_SEARCHSUB 1041
-#define IDC_BUT_CLEARALL 1042
-#define IDC_STATUS1 1043
-#define IDC_STATUS2 1044
-#define IDC_BUT_NEW 1046
-#define IDC_MARK_SPAM_AS_READ 1047
-#define IDC_SAVE_SPAM_SCORE 1048
-#define IDC_MARK_UNSURE_AS_READ 1051
-#define IDC_DELAY1_SLIDER 1056
-#define IDC_DELAY1_TEXT 1057
-#define IDC_DELAY2_SLIDER 1058
-#define IDC_DELAY2_TEXT 1059
-#define IDC_INBOX_TIMER_ONLY 1060
-#define IDC_VERBOSE_LOG 1061
-#define IDB_OPENERPLOGO 1062
-#define IDC_TAB 1068
-#define IDC_BACK_BTN 1069
-#define IDC_BUT_WIZARD 1070
-#define IDC_SHOW_DATA_FOLDER 1071
-#define IDC_ABOUT_BTN 1072
-#define IDC_BUT_RESET 1073
-#define IDC_DEL_SPAM_RS 1074
-#define IDC_RECOVER_RS 1075
-#define IDC_FORWARD_BTN 1077
-#define IDC_PAGE_PLACEHOLDER 1078
-#define IDC_BUT_SHOW_DIAGNOSTICS 1080
-#define IDC_BUT_PREPARATION 1081
-#define IDC_FOLDER_HAM 1083
-#define IDC_BUT_UNTRAINED 1088
-#define IDC_BUT_TRAIN 1089
-#define IDC_BUT_TIMER_ENABLED 1091
-#define IDC_WIZ_GRAPHIC 1092
-#define IDC_BUT_VIEW_LOG 1093
-#define IDC_EDIT1 1094
-#define IDC_STATISTICS 1095
-
-#define ID_SERVER 2001
-#define ID_PORT 2002
-#define ID_SERVER_PORT 2003
-#define ID_DB_DROPDOWNLIST 2004
-#define ID_USERNAME 2005
-#define ID_PASSWORD 2006
-#define ID_BUT_TESTCONNECTION 2007
-#define ID_DONE 2008
-#define IDD_OBJECT_SETTINGS 2009
-#define IDC_BUT_LOAD_IMAGE 2010
-#define IDC_BUT_SAVE_OBJECT 2011
-#define IDC_BUT_DEL_OBJECT 2012
-#define IDC_OBJECT_TITLE 2013
-#define IDC_OBJECT_NAME 2014
-#define IDC_IMAGE_PATH 2015
-#define IDC_LIST 2016
-#define IDC_HEADER 2017
-#define ID_CREATE_CONTACT 2018
-#define ID_MAKE_ATTACHMENT 2019
-#define ID_CREATE_CASE 2020
-#define IDC_BUT_SET_SERVER_PORT 2021
-#define IDD_SERVER_PORT_DIALOG 2022
-#define IDC_CHKBX 2023
-#define IDC_STATIC_GROUP 2024
-#define ID_ATT_METHOD_DROPDOWNLIST 2025
-#define IDC_NAME_LIST 2026
-#define IDD_ABOUT 2027
-#define IDC_ABOUT 2028
-#define IDC_CONTACT_LIST 2029
-#define ID_NAME_TEXT 2030
-#define IDD_NEW_CONTACT_DIALOG 2031
-#define ID_PARTNER_DROPDOWNLIST 2032
-#define ID_NEW_PARTNER_BUTTON 2033
-#define IDD_NEW_PARTNER_DIALOG 2034
-#define ID_SAVE_PARTNER_BUTTON 2035
-#define ID_PARTNER_NAME_TEXT 2036
-#define IDC_NAME_LIST1 2037
-#define IDC_RELOAD 2038
-#define ID_PROTOCOL_GRP 2040
-#define IDR_XML_PROTOCOL 2041
-#define IDR_XMLS_PROTOCOL 2042
-#define IDR_NETRPC_PROTOCOL 2043
-#define IDD_VIEW_PARTNER_DIALOG 2044
-#define IDET_PARTNER_NAME 2045
-#define IDET_PARTNER_CONTACT_NAME 2046
-#define IDET_PARTNER_EMAIL 2047
-#define IDET_PARTNER_OFFICENO 2048
-#define IDET_PARTNER_MOBILENO 2050
-#define IDET_SEARCH_PARTNER 2051
-#define IDPB_SEARCH_PARTNER 2052
-#define IDET_PARTNER_STREET 2053
-#define IDET_PARTNER_STREET2 2054
-#define IDET_PARTNER_COUNTRY 2057
-#define IDET_PARTNER_FAX 2058
-#define IDPB_WRITE_CHANGES 2059
-#define ID_ALL_STATE_DROPDOWNLIST 2060
-#define ID_ALL_COUNTRY_DROPDOWNLIST 2061
-#define IDET_PARTNER_STATE 2062
-#define IDET_PARTNER_COUNTRY 2063
-#define IDET_PARTNER 2064
-//
-#define ID_STREET_TEXT 2062
-#define ID_STREET2_TEXT 2063
-#define ID_FED_STATE_DROPLIST 2064
-#define ID_COUNTRY_DROPLIST 2065
-#define ID_FAX_TEXT 2066
-#define ID_PARTNER_CITY_TEXT 2067
-#define ID_ZIP_TEXT 2068
-#define ID_PARTNER_DROPLIST 2069
-#define ID_NEW_PART_BUTTON 2070
-#define IDPB_NEWPARTNER_BUTTON 2071
-#define IDD_SELECT_PARTNER 2073
-#define IDC_LIST_PARTNER 2072
-#define IDPB_SELECT_PARTNER 2075
-#define IDET_PARTNER_SEARCH_NAME 2076
-#define IDPB_PARTNER_SEARCH 2077
-#define IDPB_CREATE_NEW_PARTNER 2078
-#define ID_PARTNER_TEXT 2079
-#define IDET_WED_SERVER 2080
-#define IDET_WEB_PORT 2081
-#define ID_SET_WEB_CONNECTION 2082
-#define IDPB_WEB_CONNECTION 2083
-#define IDD_OPEN_PARTNER_DIALOG 2084
-#define IDET_PARTNER_LINK_TEXT 2085
-#define IDEB_OPENDOC_LINK_TEXT 2086
-#define IDD_OPEN_DOCUEMNT_DIALOG 2087
-#define IDD_WEB_SERVER_PORT_DIALOG 2088
-#define IDET_WEB_SERVER 2089
-#define IDET_WEB_PORT 2090
-#define ID_WEB_OK 2091
-#define IDPB_NEW_PARTNER_BUTTON 2092
-#define IDPB_NEW_PART_BUTTON 2093
-#define IDD_SELECT_COUNTRY 2094
-#define IDET_COUNTRY_SEARCH_NAME 2095
-#define IDC_LIST_COUNTRY 2096
-#define IDPB_SELECT_COUNTRY 2097
-#define IDPB_SEARCH_COUNTRY 2098
-#define IDD_SELECT_STATE 2099
-#define IDET_STATE_SEARCH_NAME 2100
-#define IDC_LIST_STATE 2101
-#define IDPB_SELECT_STATE 2102
-#define IDPB_SEARCH_STATE 2103
-#define IDPB_SEARCH_STATE1 2104
-#define IDPB_SEARCH_COUNTRY1 2105
-
-#define IDET_NC_PARTNER_STATE 2106
-#define IDPB_NC_SEARCH_STATE1 2107
-#define IDET_NC_PARTNER_COUNTRY 2108
-#define IDPB_NC_SEARCH_COUNTRY1 2109
-#define ID_DROPDOWNLIST_PROTOCOL 2110
-#define IDCB_WEB_SECURE 2111
-// Next default values for new objects
-//
-#ifdef APSTUDIO_INVOKED
-#ifndef APSTUDIO_READONLY_SYMBOLS
-#define _APS_NEXT_RESOURCE_VALUE 128
-#define _APS_NEXT_COMMAND_VALUE 40001
-#define _APS_NEXT_CONTROL_VALUE 1096
-#define _APS_NEXT_SYMED_VALUE 101
-#endif
-#endif
-
-
diff --git a/addons/outlook/plugin/openerp-outlook-plugin/dialogs/resources/dialogs.py b/addons/outlook/plugin/openerp-outlook-plugin/dialogs/resources/dialogs.py
deleted file mode 100644
index e1e8bac21d7..00000000000
--- a/addons/outlook/plugin/openerp-outlook-plugin/dialogs/resources/dialogs.py
+++ /dev/null
@@ -1,13 +0,0 @@
-#C:\Program Files\Openerp Outlook Addin\dialogs\resources\dialogs.py
-#This is a generated file. Please edit C:\Program Files\Openerp Outlook Addin\dialogs\resources\dialogs.rc instead.
-_rc_size_=16350
-_rc_mtime_=1296608638
-class FakeParser:
- dialogs = {'IDD_OPEN_DOCUEMNT_DIALOG': [['Open Document', (0, 0, 200, 65), -1865940928, 1024, (8, 'Tahoma')], [130, 'Link to Document : (If this link does not opens directly in web browser then copy an the link and paste in web browser.) ', -1, (5, 3, 190, 25), 1342177280], [129, '', 2086, (5, 31, 190, 12), 1350631552], [128, 'Ok', 2, (150, 45, 45, 14), 1342242816]], 'IDD_VIEW_PARTNER_DIALOG': [['Open Contact', (0, 0, 350, 215), -1865940928, 1024, (8, 'Tahoma')], [130, 'Email ID : ', -1, (32, 17, 40, 12), 1342177280], [129, '', 2051, (70, 15, 200, 12), 1350631552], [128, 'Search Contact ', 2052, (280, 15, 60, 14), 1342242816], [130, 'Partner Name : ', -1, (13, 42, 50, 17), 1342177280], [129, '', 2064, (70, 42, 150, 12), 1350568064], [128, 'Search Partner', 2070, (225, 41, 60, 14), 1342242816], [128, 'New Partner', 2093, (290, 41, 50, 14), 1342242816], [128, 'Postal Address ', 2024, (10, 65, 175, 125), 1342177287], [130, 'Contact Name : ', -1, (18, 83, 50, 17), 1342177280], [129, '', 2046, (76, 82, 100, 12), 1350631552], [130, 'Street : ', -1, (18, 97, 50, 17), 1342177280], [129, '', 2053, (76, 96, 100, 12), 1350631552], [130, 'Street2 : ', -1, (18, 112, 50, 17), 1342177280], [129, '', 2054, (76, 111, 100, 12), 1350631552], [130, 'Zip : ', -1, (18, 126, 50, 14), 1342177280], [129, '', 40010, (76, 125, 100, 12), 1350631552], [130, 'City : ', -1, (18, 140, 50, 17), 1342177280], [129, '', 40011, (76, 139, 100, 12), 1350631552], [130, 'Fed. State : ', -1, (18, 154, 50, 17), 1342177280], [129, '', 2062, (76, 153, 54, 12), 1350568064], [128, 'Search', 2104, (135, 153, 40, 12), 1342242816], [130, 'Country :', -1, (18, 169, 35, 17), 1342177280], [129, '', 2063, (76, 168, 54, 12), 1350568064], [128, 'Search', 2105, (135, 168, 40, 12), 1342242816], [128, 'Communication ', 2024, (188, 65, 152, 125), 1342177287], [130, 'Phone : ', -1, (194, 83, 30, 17), 1342177280], [129, '', 2048, (224, 82, 100, 12), 1350631552], [130, 'Mobile : ', -1, (194, 97, 30, 17), 1342177280], [129, '', 2050, (224, 96, 100, 12), 1350631552], [130, 'Email : ', -1, (194, 111, 30, 17), 1342177280], [129, '', 2058, (224, 110, 100, 12), 1350568064], [130, 'Fax : ', -1, (194, 125, 30, 17), 1342177280], [129, '', 2047, (224, 124, 100, 12), 1350631552], [128, 'Create a New Contact', 2071, (124, 195, 82, 14), 1342242816], [128, 'Save', 2059, (213, 195, 60, 14), 1342242816], [128, 'Cancel', 2, (281, 195, 60, 14), 1342242816]], 'IDD_OPEN_PARTNER_DIALOG': [['Open Partner', (0, 0, 200, 65), -1865940928, 1024, (8, 'Tahoma')], [130, 'Link to Partner : (If this link does not opens directly in web browser then copy an the link and paste in web browser.) ', -1, (5, 3, 190, 25), 1342177280], [129, '', 2085, (5, 31, 190, 12), 1350631552], [128, 'Ok', 2, (150, 45, 45, 13), 1342242816]], 'IDD_SELECT_STATE': [['Search Fed. State', (0, 0, 220, 250), -1865940928, 1024, (8, 'Tahoma')], [130, 'Enter Name : ', -1, (8, 12, 80, 17), 1342177280], [129, '', 2100, (55, 10, 100, 12), 1350631552], [128, 'Search', 40012, (160, 10, 50, 14), 1342242816], ['SysListView32', 'List1', 2101, (8, 40, 200, 185), 1353711657], [128, 'Select', 2102, (170, 230, 40, 14), 1342242816]], 'IDD_GENERAL': [['Connection Parameters', (0, 0, 430, 210), 1355284544, None, (8, 'Tahoma')], [128, 'Connection Parameters', 2024, (10, 10, 250, 130), 1342177287], [130, 'Server : ', -1, (30, 30, 100, 17), 1342177280], [129, '', 2003, (85, 30, 120, 12), 1350633472], [128, 'Change', 2021, (210, 30, 30, 13), 1342242816], [130, 'Database : ', -1, (30, 50, 100, 17), 1342177280], [133, '', 2004, (85, 50, 154, 40), 1344339971], [130, 'Username : ', -1, (30, 70, 100, 17), 1342177280], [129, '', 2005, (85, 70, 154, 12), 1350631552], [130, 'Password : ', -1, (30, 90, 100, 17), 1342177280], [129, '', 2006, (85, 90, 154, 12), 1350631584], [128, 'Connect', 2007, (179, 110, 60, 13), 1342242816], [128, 'WebServer Parameters', 2024, (270, 10, 150, 130), 1342177287], [130, 'Server : ', -1, (280, 30, 50, 15), 1342177280], [129, '', 2080, (310, 29, 90, 12), 1350568064], [128, 'Change', 2082, (295, 50, 50, 12), 1342242816], [128, 'Connect', 2083, (350, 50, 50, 12), 1342242816]], 'IDD_OBJECT_SETTINGS': [['Documents Setting', (0, 0, 430, 210), 1355284672, 1024, (8, 'Tahoma')], [128, 'Document Attributes', 2024, (2, 2, 343, 32), 1342177287], [130, 'Title:', -1, (5, 16, 30, 17), 1342177280], [129, '', 2013, (22, 14, 57, 12), 1350631552], [130, 'Document Name:', -1, (83, 16, 60, 17), 1342177280], [129, '', 2014, (138, 14, 57, 12), 1350631552], [130, 'Image:', -1, (200, 16, 22, 17), 1342177280], [129, '', 2015, (223, 14, 57, 12), 1350631552], [128, 'Load Image', 2010, (289, 13, 50, 15), 1342242816], [128, 'Add', 2011, (350, 13, 38, 15), 1342242816], [128, 'Delete', 2012, (392, 13, 38, 15), 1342242816], ['SysListView32', 'List1', 2016, (8, 40, 535, 160), 1353711657]], 'IDD_NEW_PARTNER_DIALOG': [['Create a New Partner', (0, 0, 140, 40), -1865940928, 1024, (8, 'Tahoma')], [130, 'Name : ', -1, (5, 3, 100, 17), 1342177280], [129, '', 2036, (40, 3, 94, 12), 1350631552], [128, 'Cancel', 2, (90, 22, 45, 14), 1342242816], [128, 'Save', 2035, (40, 22, 45, 14), 1342242817]], 'IDD_MANAGER': [['OpenERP Configuration', (0, 0, 460, 260), -1865940800, None, (8, 'Tahoma')], [128, 'Close', 2008, (400, 239, 50, 14), 1342177281], ['SysTabControl32', '', 1068, (8, 7, 440, 228), 1342177280], ['SysListView32', '', 2016, (0, 0, 0, 0), 1353711657]], 'IDD_WEB_SERVER_PORT_DIALOG': [['OpenERP Connection', (0, 0, 160, 80), -1865940928, 1024, (8, 'Tahoma')], [130, 'Server : ', -1, (5, 3, 150, 17), 1342177280], [129, '', 2089, (40, 3, 100, 12), 1350631552], [130, 'Port : ', -1, (5, 18, 100, 17), 1342177280], [129, '', 2090, (40, 18, 100, 12), 1350631552], [128, 'Close', 2, (110, 50, 45, 14), 1342242816], [128, 'OK', 2091, (50, 50, 50, 14), 1342242817], [128, 'SSL (https)', 2111, (20, 35, 100, 14), 1342242819]], 'IDD_ABOUT': [['About', (0, 0, 430, 210), 1355284672, 1024, (8, 'Tahoma')], [128, 'About Plugin', -1, (7, 3, 422, 200), 1342177287], [130, '1062', 1062, (60, 30, 20, 20), 1342179342], [130, '', 2028, (80, 90, 300, 100), 1342177280]], 'IDD_NEW_CONTACT_DIALOG': [['Create a New Contact', (0, 0, 350, 180), -1865940928, 1024, (8, 'Tahoma')], [130, 'Select Partner : ', -1, (13, 20, 50, 17), 1342177280], [129, '', 2079, (70, 18, 150, 12), 1350568064], [128, 'Search Partner', 2033, (225, 17, 60, 14), 1342242816], [128, 'New Partner', 2092, (290, 17, 50, 14), 1342242816], [128, 'Postal Address ', 2024, (10, 35, 175, 123), 1342177287], [130, 'Contact Name : ', -1, (18, 53, 100, 17), 1342177280], [129, '', 40005, (76, 52, 100, 12), 1350631552], [130, 'Street : ', -1, (18, 67, 40, 17), 1342177280], [129, '', 2062, (76, 66, 100, 12), 1350631552], [130, 'Street2 : ', -1, (18, 81, 40, 17), 1342177280], [129, '', 2063, (76, 80, 100, 12), 1350631552], [130, 'Zip : ', -1, (18, 94, 50, 17), 1342177280], [129, '', 2068, (76, 93, 100, 12), 1350631552], [130, 'City : ', -1, (18, 106, 50, 17), 1342177280], [129, '', 2067, (76, 107, 100, 12), 1350631552], [130, 'Fed. State : ', -1, (18, 134, 50, 15), 1342177280], [129, '', 2106, (76, 135, 54, 12), 1350568064], [128, 'Search', 2107, (135, 136, 40, 12), 1342242816], [130, 'Country :', -1, (18, 121, 35, 15), 1342177280], [129, '', 2108, (76, 122, 54, 12), 1350568064], [128, 'Search', 2109, (135, 121, 40, 12), 1342242816], [128, 'Communication ', 2024, (188, 35, 150, 123), 1342177287], [130, 'Office : ', -1, (194, 53, 30, 17), 1342177280], [129, '', 40006, (224, 52, 100, 12), 1350631552], [130, 'Mobile : ', -1, (194, 67, 30, 17), 1342177280], [129, '', 40007, (224, 66, 100, 12), 1350631552], [130, 'Fax : ', -1, (194, 81, 30, 17), 1342177280], [129, '', 2066, (224, 80, 100, 12), 1350631552], [130, 'Email : ', -1, (194, 95, 30, 17), 1342177280], [129, '', 40008, (224, 94, 100, 12), 1350631552], [128, 'Cancel', 2, (290, 162, 45, 13), 1342242816], [128, 'Save', 40009, (240, 162, 45, 13), 1342242816]], 'IDD_SERVER_PORT_DIALOG': [['OpenERP Connection', (0, 0, 160, 90), -1865940928, 1024, (8, 'Tahoma')], [130, 'Server : ', -1, (5, 3, 150, 17), 1342177280], [129, '', 2001, (45, 3, 100, 12), 1350631552], [130, ' Port : ', -1, (5, 18, 100, 17), 1342177280], [129, '', 2002, (45, 18, 100, 12), 1350631552], [128, '', 2024, (5, 35, 150, 5), 1342177287], [130, 'Protocol Connection :', -1, (5, 45, 80, 17), 1342177280], [133, '', 2110, (75, 43, 75, 50), 1344339971], [128, 'Close', 2, (60, 70, 45, 14), 1342242816], [128, 'OK', 1, (110, 70, 45, 14), 1342242817]], 'IDD_SELECT_PARTNER': [['Search Partner', (0, 0, 220, 250), -1865940928, 1024, (8, 'Tahoma')], [130, 'Enter Name : ', -1, (8, 12, 80, 17), 1342177280], [129, '', 2076, (55, 10, 100, 12), 1350631552], [128, 'Search', 2077, (160, 10, 50, 14), 1342242816], ['SysListView32', 'List1', 2072, (8, 40, 200, 185), 1353711657], [128, 'Create New Partner', 2078, (10, 230, 100, 14), 1342242816], [128, 'Select', 2075, (170, 230, 40, 14), 1342242816]], 'IDD_SYNC': [['Push to OpenERP', (0, 0, 470, 320), -1865940928, 1024, (8, 'Tahoma')], [128, 'Link to an Existing Documents ', 2024, (8, 5, 250, 290), 1342242823], [130, 'Search : ', -1, (15, 17, 40, 12), 1342177280], [129, '', 40003, (60, 15, 120, 12), 1350631552], [128, 'Search', 40004, (187, 15, 40, 14), 1342242816], [130, 'Documents : ', -1, (15, 140, 100, 14), 1342177280], ['SysListView32', 'List1', 2026, (15, 150, 234, 110), 1350631433], [128, 'Push', 2019, (160, 270, 85, 14), 1342242816], [128, ' Create a New Document ', 2024, (263, 5, 202, 100), 1342242823], [130, 'Type of Document : ', -1, (266, 25, 100, 12), 1342177280], [133, '', 2025, (332, 24, 75, 45), 1344339971], [128, 'Create', 2020, (412, 23, 50, 14), 1342242816], [128, ' Create a New Contact ', 2024, (263, 110, 202, 185), 1342242823], [130, 'Create a New Contact : ', -1, (280, 140, 100, 12), 1342177280], [128, 'Create Contact', 2018, (360, 138, 60, 14), 1342242816], [128, 'Close', 2, (385, 300, 60, 14), 1342242816]], 'IDD_SELECT_COUNTRY': [['Search Country', (0, 0, 220, 250), -1865940928, 1024, (8, 'Tahoma')], [130, 'Enter Name : ', -1, (8, 12, 80, 17), 1342177280], [129, '', 2095, (55, 10, 100, 12), 1350631552], [128, 'Search', 2098, (160, 10, 50, 14), 1342242816], ['SysListView32', 'List1', 2096, (8, 40, 200, 185), 1353711657], [128, 'Select', 2097, (170, 230, 40, 14), 1342242816]]}
- ids = {'IDC_BUT_DEL_OBJECT': 2012, 'IDD_OPEN_PARTNER_DIALOG': 2084, 'IDD_SELECT_STATE': 2099, 'IDC_DELAY1_SLIDER': 1056, 'IDC_PROGRESS': 1000, 'IDD_MANAGER': 101, 'IDC_ABOUT': 2028, 'IDD_DIAGNOSTIC': 113, 'IDET_PARTNER_COUNTRY': 2063, 'IDD_TRAINING': 102, 'ID_CONTACT_EMAIL_TEXT': 40008, 'IDC_DELAY2_TEXT': 1059, 'IDC_DELAY1_TEXT': 1057, 'IDD_WIZARD': 114, 'IDC_CHKBX': 2023, 'IDC_STATIC_HAM': 1002, 'IDC_PROGRESS_TEXT': 1001, 'IDR_XMLS_PROTOCOL': 2042, 'IDD_GENERAL': 108, 'IDD_ABOUT': 2027, 'IDD_SYNC': 40002, 'IDC_TAB': 1068, 'IDC_FOLDER_UNSURE': 1033, '_APS_NEXT_SYMED_VALUE': 101, 'IDC_VERBOSE_LOG': 1061, 'IDC_EDIT1': 1094, 'IDC_BROWSE': 1037, 'ID_DB_DROPDOWNLIST': 2004, 'IDC_BACK_BTN': 1069, 'ID_CONTACT_NAME_TEXT': 40005, 'IDPB_PARTNER_SEARCH': 2077, 'IDD_WIZARD_FINISHED_UNCONFIGURED': 119, 'IDC_ACTION_CERTAIN': 1025, 'IDC_BUT_ACT_ALL': 1019, 'IDD_FILTER_NOW': 104, 'IDET_WED_SERVER': 2080, 'ID_WEB_OK': 2091, 'ID_PROTOCOL_GRP': 2040, 'IDC_HEADER': 2017, 'IDC_MARK_SPAM_AS_READ': 1047, 'IDPB_NEW_PARTNER_BUTTON': 2092, 'ID_PARTNER_NAME_TEXT': 2036, 'IDC_RECOVER_RS': 1075, 'IDC_NAME_LIST1': 2037, 'ID_CONTACT_OFFICE_TEXT': 40006, 'IDC_STATIC': -1, 'IDC_PAGE_PLACEHOLDER': 1078, 'IDC_BROWSE_WATCH': 1039, 'IDET_ZIP': 40010, 'IDET_PARTNER_CITY': 40011, 'IDET_PARTNER_LINK_TEXT': 2085, 'IDC_FOLDER_HAM': 1083, 'IDC_LIST_COUNTRY': 2096, 'IDD_WIZARD_FOLDERS_REST': 117, 'IDC_SHOW_DATA_FOLDER': 1071, 'IDC_BUT_ACT_SCORE': 1018, 'IDET_STATE_SEARCH_NAME': 2100, 'IDET_WEB_SERVER': 2089, '_APS_NEXT_RESOURCE_VALUE': 128, 'ID_SET_WEB_CONNECTION': 2082, 'ID_DROPDOWNLIST_PROTOCOL': 2110, 'IDC_LIST_STATE': 2101, 'IDC_CONTACT_LIST': 2029, 'IDC_SLIDER_CERTAIN': 1023, 'IDET_PARTNER_STREET': 2053, 'IDC_BUT_UNREAD': 1020, 'ID_PARTNER_DROPDOWNLIST': 2032, 'ID_COUNTRY_DROPLIST': 2065, 'IDC_BUT_ABOUT': 1017, 'IDC_BUT_RESCORE': 1008, 'IDC_BUT_SEARCHSUB': 1041, 'IDC_BUT_TRAIN_FROM_SPAM_FOLDER': 1010, 'IDET_PARTNER_MOBILENO': 2050, 'ID_CONTACT_MOBILE_TEXT': 40007, 'IDD_VIEW_PARTNER_DIALOG': 2044, 'IDD_WIZARD_FOLDERS_TRAIN': 120, 'IDC_BUT_FILTER_ENABLE': 1013, 'IDPB_WEB_CONNECTION': 2083, 'IDC_ABOUT_BTN': 1072, 'IDD_WIZARD_FINISHED_TRAINED': 122, 'ID_SERVER': 2001, 'IDD_SELECT_PARTNER': 2073, 'IDET_NC_PARTNER_STATE': 2106, 'IDD_FOLDER_SELECTOR': 105, 'IDC_BUT_SET_SERVER_PORT': 2021, 'ID_DONE': 2008, 'IDC_LIST_FOLDERS': 1040, 'IDC_IMAGE_PATH': 2015, 'IDB_SBWIZLOGO': 125, 'IDB_OPENERPLOGO': 1062, 'ID_ZIP_TEXT': 2068, 'IDEB_OPENDOC_LINK_TEXT': 2086, 'IDD_NEW_PARTNER_DIALOG': 2034, 'ID_PARTNER_DROPLIST': 2069, 'IDC_BUT_VIEW_LOG': 1093, 'IDC_STATUS2': 1044, 'IDC_STATUS1': 1043, 'IDCANCEL': 2, 'IDC_BROWSE_HAM': 1004, 'ID_BUT_TESTCONNECTION': 2007, 'IDR_NETRPC_PROTOCOL': 2043, 'IDC_BROWSE_SPAM': 1005, 'IDCB_WEB_SECURE': 2111, 'IDD_OPEN_DOCUEMNT_DIALOG': 2087, 'IDD_WIZARD_FINISHED_UNTRAINED': 116, 'IDC_MARK_UNSURE_AS_READ': 1051, 'IDPB_SEARCH_COUNTRY1': 2105, 'ID_PARTNER_CITY_TEXT': 2067, 'IDC_BUT_WIZARD': 1070, 'IDC_VERSION': 1009, 'ID_NEW_PARTNER_BUTTON': 2033, 'IDC_FOLDER_NAMES': 1036, 'ID_ATT_METHOD_DROPDOWNLIST': 2025, 'IDC_BUT_TIMER_ENABLED': 1091, 'IDPB_WRITE_CHANGES': 2059, 'IDC_SLIDER_UNSURE': 1029, 'IDC_BUT_NEW': 1046, 'IDC_FOLDER_WATCH': 1038, 'IDPB_CREATE_NEW_PARTNER': 2078, 'IDC_BUT_UNTRAINED': 1088, 'IDC_STATIC_SPAM': 1003, 'IDD_NEW_CONTACT_DIALOG': 2031, 'IDC_EDIT_UNSURE': 1030, 'IDC_BUT_CLEARALL': 1042, 'IDC_BUT_UNSEEN': 1021, 'IDC_OBJECT_NAME': 2014, 'IDD_WIZARD_FOLDERS_WATCH': 118, 'IDPB_SEARCH_STATE': 2103, 'IDET_COUNTRY_SEARCH_NAME': 2095, 'IDC_BUT_SAVE_OBJECT': 2011, 'ID_FED_STATE_DROPLIST': 2064, 'ID_ALL_COUNTRY_DROPDOWNLIST': 2061, 'IDC_EDIT_CERTAIN': 1024, 'IDC_BUT_FILTER_DEFINE': 1016, 'ID_NEW_PART_BUTTON': 2070, 'ID_FAX_TEXT': 2066, 'IDD_WIZARD_TRAINING_IS_IMPORTANT': 123, 'ID_ALL_STATE_DROPDOWNLIST': 2060, 'IDPB_SEARCH_STATE1': 2104, 'IDC_INBOX_TIMER_ONLY': 1060, 'IDPB_SEARCH_PARTNER': 2052, 'ID_USERNAME': 2005, '_APS_NEXT_CONTROL_VALUE': 1096, 'IDC_WIZ_GRAPHIC': 1092, 'IDD_OBJECT_SETTINGS': 2009, 'IDD_FILTER_UNSURE': 111, 'IDC_DEL_SPAM_RS': 1074, 'IDD_SELECT_COUNTRY': 2094, 'ID_SERVER_PORT': 2003, 'IDR_XML_PROTOCOL': 2041, 'IDET_PARTNER_OFFICENO': 2048, 'IDB_FOLDERS': 127, 'IDC_BUT_PREPARATION': 1081, 'ID_STREET2_TEXT': 2063, 'IDC_DELAY2_SLIDER': 1058, 'IDET_PARTNER': 2064, 'IDC_SAVE_SPAM_SCORE': 1048, 'IDC_OBJECT_TITLE': 2013, 'IDC_FOLDER_CERTAIN': 1027, 'IDET_WEB_PORT': 2090, 'IDC_BROWSE_UNSURE': 1034, 'IDC_STATISTICS': 1095, 'IDPB_STATE_SEARCH': 40012, 'ID_MAKE_ATTACHMENT': 2019, 'IDC_BUT_LOAD_IMAGE': 2010, 'IDC_NAME_LIST': 2026, 'IDC_BUT_TRAIN_TO_SPAM_FOLDER': 1011, 'IDET_PARTNER_SEARCH_NAME': 2076, 'IDC_BUT_RESET': 1073, 'ID_SEARCH': 40004, 'IDET_PARTNER_CONTACT_NAME': 2046, 'IDPB_SELECT_STATE': 2102, 'IDC_ACTION_UNSURE': 1031, 'IDD_WIZARD_TRAIN': 121, 'IDC_STATIC_GROUP': 2024, 'IDPB_NEWPARTNER_BUTTON': 2071, 'ID_PARTNER_TEXT': 2079, 'IDD_WIZARD_FINISHED_TRAIN_LATER': 124, 'IDET_PARTNER_NAME': 2045, 'IDPB_NEW_PART_BUTTON': 2093, 'IDC_BUT_REBUILD': 1007, 'IDET_PARTNER_STREET2': 2054, 'IDPB_SEARCH_COUNTRY': 2098, 'ID_SAVE_PARTNER_BUTTON': 2035, 'IDPB_SELECT_PARTNER': 2075, 'ID_STREET_TEXT': 2062, '_APS_NEXT_COMMAND_VALUE': 40001, 'IDET_SEARCH_PARTNER': 2051, 'IDC_LIST_PARTNER': 2072, 'IDD_WEB_SERVER_PORT_DIALOG': 2088, 'ID_PORT': 2002, 'IDD_SERVER_PORT_DIALOG': 2022, 'IDET_PARTNER_STATE': 2062, 'IDPB_SELECT_COUNTRY': 2097, 'ID_SEARCH_TEXT': 40003, 'IDET_NC_PARTNER_COUNTRY': 2108, 'ID_CREATE_CONTACT': 2018, 'IDC_FORWARD_BTN': 1077, 'IDC_TRAINING_STATUS': 1035, 'IDD_WIZARD_WELCOME': 115, 'IDET_PARTNER_FAX': 2058, 'IDC_BUT_TRAIN': 1089, 'IDC_LIST': 2016, 'ID_CREATE_CASE': 2020, 'IDET_PARTNER_EMAIL': 2047, 'IDC_START': 1006, 'IDD_FILTER': 103, 'IDC_RELOAD': 2038, 'ID_PASSWORD': 2006, 'ID_NAME_TEXT': 2030, 'IDC_FILTER_STATUS': 1014, 'IDPB_NC_SEARCH_STATE1': 2107, 'ID_CONTACT_SAVE_BUTTON': 40009, 'IDOK': 1, 'IDC_BROWSE_CERTAIN': 1028, 'IDC_BUT_SHOW_DIAGNOSTICS': 1080, 'IDC_BUT_TRAIN_NOW': 1012, 'IDPB_NC_SEARCH_COUNTRY1': 2109}
- names = {1024: 'IDC_EDIT_CERTAIN', 1: 'IDOK', 2: 'IDCANCEL', 1027: 'IDC_FOLDER_CERTAIN', 1028: 'IDC_BROWSE_CERTAIN', 1029: 'IDC_SLIDER_UNSURE', 1030: 'IDC_EDIT_UNSURE', 1031: 'IDC_ACTION_UNSURE', 1033: 'IDC_FOLDER_UNSURE', 1034: 'IDC_BROWSE_UNSURE', 1035: 'IDC_TRAINING_STATUS', 1036: 'IDC_FOLDER_NAMES', 1037: 'IDC_BROWSE', 1038: 'IDC_FOLDER_WATCH', 1039: 'IDC_BROWSE_WATCH', 1040: 'IDC_LIST_FOLDERS', 1041: 'IDC_BUT_SEARCHSUB', 1042: 'IDC_BUT_CLEARALL', 1043: 'IDC_STATUS1', 1044: 'IDC_STATUS2', 2069: 'ID_PARTNER_DROPLIST', 1046: 'IDC_BUT_NEW', 1047: 'IDC_MARK_SPAM_AS_READ', 1048: 'IDC_SAVE_SPAM_SCORE', 2052: 'IDPB_SEARCH_PARTNER', 1051: 'IDC_MARK_UNSURE_AS_READ', 2076: 'IDET_PARTNER_SEARCH_NAME', 2077: 'IDPB_PARTNER_SEARCH', 2078: 'IDPB_CREATE_NEW_PARTNER', 2053: 'IDET_PARTNER_STREET', 1056: 'IDC_DELAY1_SLIDER', 1057: 'IDC_DELAY1_TEXT', 1058: 'IDC_DELAY2_SLIDER', 1059: 'IDC_DELAY2_TEXT', 1060: 'IDC_INBOX_TIMER_ONLY', 1061: 'IDC_VERBOSE_LOG', 1062: 'IDB_OPENERPLOGO', 2047: 'IDET_PARTNER_EMAIL', 2088: 'IDD_WEB_SERVER_PORT_DIALOG', 2089: 'IDET_WEB_SERVER', 2090: 'IDET_WEB_PORT', 2091: 'ID_WEB_OK', 1068: 'IDC_TAB', 1069: 'IDC_BACK_BTN', 1070: 'IDC_BUT_WIZARD', 1071: 'IDC_SHOW_DATA_FOLDER', 1072: 'IDC_ABOUT_BTN', 1073: 'IDC_BUT_RESET', 1074: 'IDC_DEL_SPAM_RS', 1075: 'IDC_RECOVER_RS', 2100: 'IDET_STATE_SEARCH_NAME', 1077: 'IDC_FORWARD_BTN', 1078: 'IDC_PAGE_PLACEHOLDER', 2057: 'IDET_PARTNER_COUNTRY', 1080: 'IDC_BUT_SHOW_DIAGNOSTICS', 1081: 'IDC_BUT_PREPARATION', 2106: 'IDET_NC_PARTNER_STATE', 1083: 'IDC_FOLDER_HAM', 2108: 'IDET_NC_PARTNER_COUNTRY', 2058: 'IDET_PARTNER_FAX', 2110: 'ID_DROPDOWNLIST_PROTOCOL', 2111: 'IDCB_WEB_SECURE', 1088: 'IDC_BUT_UNTRAINED', 1089: 'IDC_BUT_TRAIN', 40002: 'IDD_SYNC', 1091: 'IDC_BUT_TIMER_ENABLED', 1025: 'IDC_ACTION_CERTAIN', 1093: 'IDC_BUT_VIEW_LOG', 1094: 'IDC_EDIT1', 1095: 'IDC_STATISTICS', 1096: '_APS_NEXT_CONTROL_VALUE', 2060: 'ID_ALL_STATE_DROPDOWNLIST', 40010: 'IDET_ZIP', 40011: 'IDET_PARTNER_CITY', 40012: 'IDPB_STATE_SEARCH', 2061: 'ID_ALL_COUNTRY_DROPDOWNLIST', 2062: 'IDET_PARTNER_STATE', 2063: 'IDET_PARTNER_COUNTRY', 2064: 'IDET_PARTNER', 101: 'IDD_MANAGER', 102: 'IDD_TRAINING', 103: 'IDD_FILTER', 104: 'IDD_FILTER_NOW', 105: 'IDD_FOLDER_SELECTOR', 106: 'IDD_ABOUT', 108: 'IDD_GENERAL', 2066: 'ID_FAX_TEXT', 111: 'IDD_FILTER_UNSURE', 113: 'IDD_DIAGNOSTIC', 114: 'IDD_WIZARD', 115: 'IDD_WIZARD_WELCOME', 116: 'IDD_WIZARD_FINISHED_UNTRAINED', 117: 'IDD_WIZARD_FOLDERS_REST', 118: 'IDD_WIZARD_FOLDERS_WATCH', 119: 'IDD_WIZARD_FINISHED_UNCONFIGURED', 120: 'IDD_WIZARD_FOLDERS_TRAIN', 121: 'IDD_WIZARD_TRAIN', 122: 'IDD_WIZARD_FINISHED_TRAINED', 123: 'IDD_WIZARD_TRAINING_IS_IMPORTANT', 124: 'IDD_WIZARD_FINISHED_TRAIN_LATER', 125: 'IDB_SBWIZLOGO', 127: 'IDB_FOLDERS', 2067: 'ID_PARTNER_CITY_TEXT', 2050: 'IDET_PARTNER_MOBILENO', 2070: 'ID_NEW_PART_BUTTON', 2071: 'IDPB_NEWPARTNER_BUTTON', 2072: 'IDC_LIST_PARTNER', 2073: 'IDD_SELECT_PARTNER', 2068: 'ID_ZIP_TEXT', 2051: 'IDET_SEARCH_PARTNER', 2075: 'IDPB_SELECT_PARTNER', 2079: 'ID_PARTNER_TEXT', 2080: 'IDET_WED_SERVER', 2081: 'IDET_WEB_PORT', 2082: 'ID_SET_WEB_CONNECTION', 2083: 'IDPB_WEB_CONNECTION', 2084: 'IDD_OPEN_PARTNER_DIALOG', 2085: 'IDET_PARTNER_LINK_TEXT', 40004: 'ID_SEARCH', 2086: 'IDEB_OPENDOC_LINK_TEXT', 2087: 'IDD_OPEN_DOCUEMNT_DIALOG', 2046: 'IDET_PARTNER_CONTACT_NAME', 2105: 'IDPB_SEARCH_COUNTRY1', 2054: 'IDET_PARTNER_STREET2', 128: '_APS_NEXT_RESOURCE_VALUE', 2092: 'IDPB_NEW_PARTNER_BUTTON', 2093: 'IDPB_NEW_PART_BUTTON', 2094: 'IDD_SELECT_COUNTRY', 2095: 'IDET_COUNTRY_SEARCH_NAME', 2096: 'IDC_LIST_COUNTRY', 2097: 'IDPB_SELECT_COUNTRY', 2098: 'IDPB_SEARCH_COUNTRY', 2099: 'IDD_SELECT_STATE', 2101: 'IDC_LIST_STATE', 2102: 'IDPB_SELECT_STATE', 2103: 'IDPB_SEARCH_STATE', 2104: 'IDPB_SEARCH_STATE1', 2040: 'ID_PROTOCOL_GRP', 2065: 'ID_COUNTRY_DROPLIST', 2048: 'IDET_PARTNER_OFFICENO', 2107: 'IDPB_NC_SEARCH_STATE1', 2109: 'IDPB_NC_SEARCH_COUNTRY1', 2024: 'IDC_STATIC_GROUP', 2041: 'IDR_XML_PROTOCOL', 2025: 'ID_ATT_METHOD_DROPDOWNLIST', 2026: 'IDC_NAME_LIST', 2027: 'IDD_ABOUT', 40001: '_APS_NEXT_COMMAND_VALUE', 2028: 'IDC_ABOUT', 2029: 'IDC_CONTACT_LIST', 2059: 'IDPB_WRITE_CHANGES', 2042: 'IDR_XMLS_PROTOCOL', 40003: 'ID_SEARCH_TEXT', 2030: 'ID_NAME_TEXT', 1092: 'IDC_WIZ_GRAPHIC', 2031: 'IDD_NEW_CONTACT_DIALOG', 40005: 'ID_CONTACT_NAME_TEXT', 2032: 'ID_PARTNER_DROPDOWNLIST', 40006: 'ID_CONTACT_OFFICE_TEXT', 2033: 'ID_NEW_PARTNER_BUTTON', 40007: 'ID_CONTACT_MOBILE_TEXT', 2034: 'IDD_NEW_PARTNER_DIALOG', 2043: 'IDR_NETRPC_PROTOCOL', 40008: 'ID_CONTACT_EMAIL_TEXT', 2035: 'ID_SAVE_PARTNER_BUTTON', 40009: 'ID_CONTACT_SAVE_BUTTON', 2036: 'ID_PARTNER_NAME_TEXT', 2037: 'IDC_NAME_LIST1', 2038: 'IDC_RELOAD', 2044: 'IDD_VIEW_PARTNER_DIALOG', 2001: 'ID_SERVER', 2002: 'ID_PORT', 2003: 'ID_SERVER_PORT', 2004: 'ID_DB_DROPDOWNLIST', 2005: 'ID_USERNAME', 2006: 'ID_PASSWORD', 2007: 'ID_BUT_TESTCONNECTION', 2008: 'ID_DONE', 2009: 'IDD_OBJECT_SETTINGS', 2010: 'IDC_BUT_LOAD_IMAGE', 2011: 'IDC_BUT_SAVE_OBJECT', 2012: 'IDC_BUT_DEL_OBJECT', 2013: 'IDC_OBJECT_TITLE', 2014: 'IDC_OBJECT_NAME', 2015: 'IDC_IMAGE_PATH', 2016: 'IDC_LIST', 2017: 'IDC_HEADER', 2018: 'ID_CREATE_CONTACT', 2019: 'ID_MAKE_ATTACHMENT', 2020: 'ID_CREATE_CASE', 2021: 'IDC_BUT_SET_SERVER_PORT', 2022: 'IDD_SERVER_PORT_DIALOG', 2023: 'IDC_CHKBX', 1000: 'IDC_PROGRESS', 1001: 'IDC_PROGRESS_TEXT', 1002: 'IDC_STATIC_HAM', 1003: 'IDC_STATIC_SPAM', 1004: 'IDC_BROWSE_HAM', 1005: 'IDC_BROWSE_SPAM', 1006: 'IDC_START', 1007: 'IDC_BUT_REBUILD', 1008: 'IDC_BUT_RESCORE', 1009: 'IDC_VERSION', 1010: 'IDC_BUT_TRAIN_FROM_SPAM_FOLDER', 1011: 'IDC_BUT_TRAIN_TO_SPAM_FOLDER', 1012: 'IDC_BUT_TRAIN_NOW', 1013: 'IDC_BUT_FILTER_ENABLE', 1014: 'IDC_FILTER_STATUS', 2045: 'IDET_PARTNER_NAME', 1016: 'IDC_BUT_FILTER_DEFINE', 1017: 'IDC_BUT_ABOUT', 1018: 'IDC_BUT_ACT_SCORE', 1019: 'IDC_BUT_ACT_ALL', 1020: 'IDC_BUT_UNREAD', 1021: 'IDC_BUT_UNSEEN', -1: 'IDC_STATIC', 1023: 'IDC_SLIDER_CERTAIN'}
- bitmaps = {'IDB_OPENERPLOGO': 'OpenERP_Logo.bmp'}
-def ParseDialogs(s):
- return FakeParser()
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/outlook/plugin/openerp-outlook-plugin/dialogs/resources/dialogs.rc b/addons/outlook/plugin/openerp-outlook-plugin/dialogs/resources/dialogs.rc
deleted file mode 100644
index b402e4b7958..00000000000
--- a/addons/outlook/plugin/openerp-outlook-plugin/dialogs/resources/dialogs.rc
+++ /dev/null
@@ -1,339 +0,0 @@
-// Microsoft Visual C++ generated resource script.
-//
-#include "dialogs.h"
-
-IDB_OPENERPLOGO BITMAP "OpenERP_Logo.bmp"
-
-#define APSTUDIO_READONLY_SYMBOLS
-/////////////////////////////////////////////////////////////////////////////
-//
-// Generated from the TEXTINCLUDE 2 resource.
-//
-#include "winres.h"
-
-/////////////////////////////////////////////////////////////////////////////
-#undef APSTUDIO_READONLY_SYMBOLS
-
-/////////////////////////////////////////////////////////////////////////////
-// English (U.S.) resources
-
-#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
-#ifdef _WIN32
-LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
-#pragma code_page(1252)
-#endif //_WIN32
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Dialog
-//
-
-IDD_MANAGER DIALOGEX 0, 0, 460, 260
-STYLE DS_SETFONT | WS_POPUP | WS_CAPTION | WS_SYSMENU | DS_MODALFRAME
-CAPTION "OpenERP Configuration"
-FONT 8, "Tahoma", 1000, 0, 0x0
-BEGIN
- DEFPUSHBUTTON "Close",ID_DONE,400,239,50,14//,WS_VISIBLE //| WS_TABSTOP
- CONTROL "",IDC_TAB,"SysTabControl32",0x0,8,7,440,228
- CONTROL "",IDC_LIST,"SysListView32",WS_CHILD | WS_VISIBLE | WS_BORDER | WS_HSCROLL | WS_VSCROLL |
- LVS_SHOWSELALWAYS | LVS_REPORT | LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES,0,0,0,0
-END
-
-IDD_GENERAL DIALOGEX 0, 0, 430, 210
-STYLE DS_SETFONT | WS_CHILD | WS_CAPTION | WS_SYSMENU
-CAPTION "Connection Parameters"
-FONT 8, "Tahoma", 0, 0, 0x1
-BEGIN
- GROUPBOX "Connection Parameters",IDC_STATIC_GROUP, 10, 10,250,130
- LTEXT "Server : ",IDC_STATIC,30,30,100,17
- EDITTEXT ID_SERVER_PORT,85,30,120,12,ES_READONLY | WS_VISIBLE | WS_TABSTOP// left top width height
- PUSHBUTTON "Change",IDC_BUT_SET_SERVER_PORT,210,30,30,13, WS_VISIBLE | WS_TABSTOP
- LTEXT "Database : ",IDC_STATIC,30,50,100,17
- COMBOBOX ID_DB_DROPDOWNLIST,85,50,154,40,CBS_DROPDOWNLIST |
- WS_VSCROLL | WS_VISIBLE | WS_TABSTOP
-
- LTEXT "Username : ",IDC_STATIC,30,70,100,17
- EDITTEXT ID_USERNAME,85,70,154,12,ES_AUTOHSCROLL | WS_VISIBLE | WS_TABSTOP
- LTEXT "Password : ",IDC_STATIC,30,90,100,17
- EDITTEXT ID_PASSWORD,85,90,154,12,ES_AUTOHSCROLL | WS_VISIBLE | WS_TABSTOP | ES_PASSWORD
- PUSHBUTTON "Connect",ID_BUT_TESTCONNECTION,179,110,60,13, WS_VISIBLE | WS_TABSTOP
-
- GROUPBOX "WebServer Parameters",IDC_STATIC_GROUP, 270, 10,150,130
- LTEXT "Server : ",IDC_STATIC, 280, 30, 50, 15
- EDITTEXT IDET_WED_SERVER,310, 29, 90, 12,ES_AUTOHSCROLL | ES_READONLY
- PUSHBUTTON "Change",ID_SET_WEB_CONNECTION, 295, 50, 50, 12 , WS_VISIBLE | WS_TABSTOP
- PUSHBUTTON "Connect",IDPB_WEB_CONNECTION, 350, 50, 50, 12 , WS_VISIBLE | WS_TABSTOP
-END
-
-IDD_OBJECT_SETTINGS DIALOGEX 0, 0, 430, 210
-STYLE DS_SETFONT | DS_MODALFRAME | WS_CHILD | WS_CAPTION | WS_SYSMENU
-EXSTYLE WS_EX_CONTEXTHELP
-CAPTION "Documents Setting"
-FONT 8, "Tahoma", 0, 0, 0x1
-BEGIN
- GROUPBOX "Document Attributes",IDC_STATIC_GROUP, 2, 2, 343, 32
-
- LTEXT "Title:",IDC_STATIC,5,16,30,17
- EDITTEXT IDC_OBJECT_TITLE,22,14,57,12,ES_AUTOHSCROLL | WS_TABSTOP// left top width height
- LTEXT "Document Name:",IDC_STATIC,83,16,60,17
- EDITTEXT IDC_OBJECT_NAME,138,14,57,12,ES_AUTOHSCROLL | WS_TABSTOP
- LTEXT "Image:",IDC_STATIC,200,16,22,17
- EDITTEXT IDC_IMAGE_PATH,223,14,57,12,ES_AUTOHSCROLL | WS_TABSTOP
- PUSHBUTTON "Load Image",IDC_BUT_LOAD_IMAGE,289,13,50,15,WS_TABSTOP
- PUSHBUTTON "Add",IDC_BUT_SAVE_OBJECT,350,13,38,15,WS_TABSTOP
- PUSHBUTTON "Delete",IDC_BUT_DEL_OBJECT,392,13,38,15,WS_TABSTOP
- CONTROL "List1",IDC_LIST,"SysListView32",WS_CHILD | WS_VISIBLE | WS_BORDER | WS_HSCROLL | WS_VSCROLL |
- LVS_SHOWSELALWAYS | LVS_EX_GRIDLINES | LVS_REPORT | LVS_EX_FULLROWSELECT, 8,40,535,160
-END
-
-IDD_ABOUT DIALOGEX 0, 0, 430, 210
-STYLE DS_SETFONT | DS_MODALFRAME | WS_CHILD | WS_CAPTION | WS_SYSMENU
-EXSTYLE WS_EX_CONTEXTHELP
-CAPTION "About"
-FONT 8, "Tahoma", 400, 0, 0x0
-BEGIN
- GROUPBOX "About Plugin",IDC_STATIC,7,3,422,200
- CONTROL 1062,IDB_OPENERPLOGO,"Static",SS_BITMAP | SS_REALSIZEIMAGE,60,30,20,20
- LTEXT "",IDC_ABOUT,80,90,300,100
-END
-
-IDD_SERVER_PORT_DIALOG DIALOGEX 0, 0, 160, 90
-STYLE DS_SETFONT | WS_POPUP | WS_CAPTION | WS_SYSMENU
-EXSTYLE WS_EX_CONTEXTHELP
-CAPTION "OpenERP Connection"
-FONT 8, "Tahoma", 400, 0, 0x0
-BEGIN
- LTEXT "Server : ",IDC_STATIC,5,3,150,17
- EDITTEXT ID_SERVER, 45, 3, 100, 12, ES_AUTOHSCROLL | WS_TABSTOP
- LTEXT " Port : ",IDC_STATIC,5,18,100,17
- EDITTEXT ID_PORT, 45, 18, 100, 12, ES_AUTOHSCROLL | WS_TABSTOP
-
- GROUPBOX "", IDC_STATIC_GROUP, 5, 35, 150, 5
- LTEXT "Protocol Connection :", IDC_STATIC, 5, 45, 80, 17
- COMBOBOX ID_DROPDOWNLIST_PROTOCOL, 75, 43, 75, 50, CBS_DROPDOWNLIST |WS_VSCROLL | WS_VISIBLE | WS_TABSTOP
-
- PUSHBUTTON "Close",IDCANCEL,60,70,45,14,WS_TABSTOP
- DEFPUSHBUTTON "OK",IDOK,110,70,45,14,WS_TABSTOP
-END
-
-IDD_SYNC DIALOGEX 0, 0, 470, 320
-STYLE DS_SETFONT | WS_POPUP | WS_CAPTION | WS_SYSMENU
-EXSTYLE WS_EX_CONTEXTHELP
-CAPTION "Push to OpenERP"
-FONT 8, "Tahoma", 1000, 0, 0x0
-BEGIN
- GROUPBOX "Link to an Existing Documents ", IDC_STATIC_GROUP, 8,5,250,290,WS_TABSTOP
- LTEXT "Search : ",IDC_STATIC,15,17,40,12
- EDITTEXT ID_SEARCH_TEXT,60,15,120,12,ES_AUTOHSCROLL | WS_TABSTOP// left top width height
- PUSHBUTTON "Search",ID_SEARCH,187,15,40,14,WS_TABSTOP
- LTEXT "Documents : ",IDC_STATIC,15,140,100,14
- CONTROL "List1",IDC_NAME_LIST,"SysListView32",WS_CHILD | WS_VISIBLE | WS_BORDER | LVS_SHOWSELALWAYS | LVS_REPORT | WS_TABSTOP, 15,150,234,110
- PUSHBUTTON "Push",ID_MAKE_ATTACHMENT,160,270,85,14,WS_TABSTOP
-
- GROUPBOX " Create a New Document ", IDC_STATIC_GROUP, 263,5,202,100,WS_TABSTOP
- LTEXT "Type of Document : ",IDC_STATIC,266,25,100,12
- COMBOBOX ID_ATT_METHOD_DROPDOWNLIST,332,24,75,45,CBS_DROPDOWNLIST |
- WS_VSCROLL | WS_TABSTOP
- PUSHBUTTON "Create",ID_CREATE_CASE,412,23,50,14,WS_TABSTOP
-
- GROUPBOX " Create a New Contact ", IDC_STATIC_GROUP, 263, 110,202,185,WS_TABSTOP
- LTEXT "Create a New Contact : ",IDC_STATIC,280,140,100,12
- PUSHBUTTON "Create Contact",ID_CREATE_CONTACT,360,138,60,14,WS_TABSTOP
- PUSHBUTTON "Close",IDCANCEL,385,300,60,14,WS_TABSTOP
-END
-
-IDD_NEW_CONTACT_DIALOG DIALOGEX 0, 0, 350, 180
-STYLE DS_SETFONT | WS_POPUP | WS_CAPTION | WS_SYSMENU
-EXSTYLE WS_EX_CONTEXTHELP
-CAPTION "Create a New Contact"
-FONT 8, "Tahoma", 1000, 0, 0x0
-BEGIN
-
- LTEXT "Select Partner : ",IDC_STATIC,13,20,50,17
- EDITTEXT ID_PARTNER_TEXT, 70, 18, 150, 12 , ES_AUTOHSCROLL |ES_READONLY
- PUSHBUTTON "Search Partner",ID_NEW_PARTNER_BUTTON,225,17,60,14, WS_TABSTOP
- PUSHBUTTON "New Partner",IDPB_NEW_PARTNER_BUTTON,290, 17, 50, 14, WS_TABSTOP
-
- GROUPBOX "Postal Address ", IDC_STATIC_GROUP,10,35,175,123
- LTEXT "Contact Name : ",IDC_STATIC, 18, 53, 100, 17
- EDITTEXT ID_CONTACT_NAME_TEXT, 76, 52, 100, 12, ES_AUTOHSCROLL | WS_TABSTOP
- LTEXT "Street : ",IDC_STATIC, 18, 67, 40, 17
- EDITTEXT ID_STREET_TEXT, 76, 66, 100, 12, ES_AUTOHSCROLL | WS_TABSTOP
- LTEXT "Street2 : ",IDC_STATIC, 18, 81, 40, 17
- EDITTEXT ID_STREET2_TEXT, 76, 80, 100, 12, ES_AUTOHSCROLL | WS_TABSTOP
- LTEXT "Zip : ",IDC_STATIC, 18, 94, 50, 17
- EDITTEXT ID_ZIP_TEXT,76, 93, 100, 12,ES_AUTOHSCROLL | WS_TABSTOP
- LTEXT "City : ",IDC_STATIC, 18,106, 50, 17
- EDITTEXT ID_PARTNER_CITY_TEXT,76,107,100,12,ES_AUTOHSCROLL | WS_TABSTOP
-
-
- LTEXT "Fed. State : ",IDC_STATIC,18, 134, 50, 15
- EDITTEXT IDET_NC_PARTNER_STATE, 76, 135, 54, 12,ES_AUTOHSCROLL |ES_READONLY
- PUSHBUTTON "Search", IDPB_NC_SEARCH_STATE1 ,135, 136, 40, 12, WS_TABSTOP
-
- LTEXT "Country :",IDC_STATIC, 18,121,35,15
- EDITTEXT IDET_NC_PARTNER_COUNTRY, 76, 122, 54, 12,ES_AUTOHSCROLL |ES_READONLY
- PUSHBUTTON "Search", IDPB_NC_SEARCH_COUNTRY1, 135, 121, 40, 12, WS_TABSTOP
-
-
- GROUPBOX "Communication ", IDC_STATIC_GROUP, 188, 35, 150, 123
- LTEXT "Office : ",IDC_STATIC,194, 53, 30, 17
- EDITTEXT ID_CONTACT_OFFICE_TEXT, 224, 52, 100, 12,ES_AUTOHSCROLL | WS_TABSTOP
- LTEXT "Mobile : ",IDC_STATIC,194, 67, 30, 17
- EDITTEXT ID_CONTACT_MOBILE_TEXT, 224, 66, 100, 12,ES_AUTOHSCROLL | WS_TABSTOP
- LTEXT "Fax : ",IDC_STATIC,194, 81, 30, 17
- EDITTEXT ID_FAX_TEXT, 224, 80, 100, 12,ES_AUTOHSCROLL | WS_TABSTOP
- LTEXT "Email : ",IDC_STATIC, 194, 95, 30, 17
- EDITTEXT ID_CONTACT_EMAIL_TEXT, 224, 94, 100, 12,ES_AUTOHSCROLL | WS_TABSTOP
-
- PUSHBUTTON "Cancel",IDCANCEL,290,162,45,13, WS_TABSTOP
- PUSHBUTTON "Save",ID_CONTACT_SAVE_BUTTON,240,162,45,13, WS_TABSTOP
-END
-
-IDD_NEW_PARTNER_DIALOG DIALOGEX 0, 0, 140,40
-STYLE DS_SETFONT | WS_POPUP | WS_CAPTION | WS_SYSMENU
-EXSTYLE WS_EX_CONTEXTHELP
-CAPTION "Create a New Partner"
-FONT 8, "Tahoma", 400, 0, 0x0
-BEGIN
- LTEXT "Name : ",IDC_STATIC,5,3,100,17
- EDITTEXT ID_PARTNER_NAME_TEXT,40,3,94,12,ES_AUTOHSCROLL | WS_TABSTOP
- PUSHBUTTON "Cancel",IDCANCEL,90,22,45,14,WS_TABSTOP
- DEFPUSHBUTTON "Save",ID_SAVE_PARTNER_BUTTON,40,22,45,14,WS_TABSTOP
-END
-
-IDD_VIEW_PARTNER_DIALOG DIALOGEX 0, 0, 350, 215
-STYLE DS_SETFONT | WS_POPUP | WS_CAPTION | WS_SYSMENU
-EXSTYLE WS_EX_CONTEXTHELP
-CAPTION "Open Contact"
-FONT 8, "Tahoma", 400, 0, 0x0
-BEGIN
- LTEXT "Email ID : ",IDC_STATIC,32,17,40,12
- EDITTEXT IDET_SEARCH_PARTNER, 70, 15, 200, 12, ES_AUTOHSCROLL | WS_TABSTOP
- PUSHBUTTON "Search Contact ",IDPB_SEARCH_PARTNER,280,15,60,14,WS_TABSTOP
-
- LTEXT "Partner Name : ",IDC_STATIC,13,42,50,17
- EDITTEXT IDET_PARTNER,70, 42, 150, 12,ES_AUTOHSCROLL |ES_READONLY
- PUSHBUTTON "Search Partner",ID_NEW_PART_BUTTON,225,41,60,14, WS_TABSTOP
- PUSHBUTTON "New Partner",IDPB_NEW_PART_BUTTON,290,41,50,14, WS_TABSTOP
-
- GROUPBOX "Postal Address ", IDC_STATIC_GROUP,10,65,175,125
- LTEXT "Contact Name : ",IDC_STATIC,18,83,50,17
- EDITTEXT IDET_PARTNER_CONTACT_NAME,76,82,100,12,ES_AUTOHSCROLL | WS_TABSTOP
- LTEXT "Street : ",IDC_STATIC,18,97,50,17
- EDITTEXT IDET_PARTNER_STREET,76,96,100,12,ES_AUTOHSCROLL | WS_TABSTOP
- LTEXT "Street2 : ",IDC_STATIC,18,112,50,17
- EDITTEXT IDET_PARTNER_STREET2, 76, 111, 100, 12, ES_AUTOHSCROLL | WS_TABSTOP
- LTEXT "Zip : ",IDC_STATIC, 18, 126, 50,14
- EDITTEXT IDET_ZIP, 76, 125, 100, 12 , ES_AUTOHSCROLL | WS_TABSTOP
- LTEXT "City : ",IDC_STATIC,18,140,50,17
- EDITTEXT IDET_PARTNER_CITY,76,139,100,12,ES_AUTOHSCROLL | WS_TABSTOP
-
- LTEXT "Fed. State : ",IDC_STATIC,18,154,50,17
- EDITTEXT IDET_PARTNER_STATE, 76, 153, 54, 12,ES_AUTOHSCROLL |ES_READONLY
- PUSHBUTTON "Search", IDPB_SEARCH_STATE1 ,135, 153, 40, 12, WS_TABSTOP
-
- LTEXT "Country :",IDC_STATIC, 18, 169, 35, 17
- EDITTEXT IDET_PARTNER_COUNTRY, 76, 168, 54, 12,ES_AUTOHSCROLL |ES_READONLY
- PUSHBUTTON "Search", IDPB_SEARCH_COUNTRY1, 135, 168, 40, 12, WS_TABSTOP
-
- GROUPBOX "Communication ", IDC_STATIC_GROUP, 188, 65, 152, 125
- LTEXT "Phone : ",IDC_STATIC, 194, 83, 30, 17
- EDITTEXT IDET_PARTNER_OFFICENO, 224, 82, 100, 12, ES_AUTOHSCROLL | WS_TABSTOP
- LTEXT "Mobile : ",IDC_STATIC, 194, 97, 30, 17
- EDITTEXT IDET_PARTNER_MOBILENO, 224, 96, 100, 12, ES_AUTOHSCROLL | WS_TABSTOP
- LTEXT "Email : ",IDC_STATIC, 194, 111, 30, 17
- EDITTEXT IDET_PARTNER_FAX, 224, 110, 100, 12, ES_AUTOHSCROLL |ES_READONLY
- LTEXT "Fax : ",IDC_STATIC,194,125,30,17
- EDITTEXT IDET_PARTNER_EMAIL, 224, 124, 100, 12, ES_AUTOHSCROLL | WS_TABSTOP
-
- PUSHBUTTON "Create a New Contact", IDPB_NEWPARTNER_BUTTON, 124, 195, 82, 14, WS_TABSTOP
- PUSHBUTTON "Save", IDPB_WRITE_CHANGES, 213, 195, 60, 14, WS_TABSTOP
- PUSHBUTTON "Cancel", IDCANCEL, 281, 195, 60, 14, WS_TABSTOP
-END
-
-IDD_SELECT_PARTNER DIALOGEX 0, 0, 220, 250
-STYLE DS_SETFONT | WS_POPUP | WS_CAPTION | WS_SYSMENU
-EXSTYLE WS_EX_CONTEXTHELP
-CAPTION "Search Partner"
-FONT 8, "Tahoma", 400, 0, 0x0
-BEGIN
-
- LTEXT "Enter Name : ",IDC_STATIC,8,12,80,17
- EDITTEXT IDET_PARTNER_SEARCH_NAME, 55, 10, 100, 12, ES_AUTOHSCROLL | WS_TABSTOP
- PUSHBUTTON "Search", IDPB_PARTNER_SEARCH, 160, 10, 50, 14, WS_TABSTOP
-
- CONTROL "List1",IDC_LIST_PARTNER,"SysListView32",WS_CHILD | WS_VISIBLE | WS_BORDER | WS_HSCROLL | WS_VSCROLL |
- LVS_SHOWSELALWAYS | LVS_EX_GRIDLINES | LVS_REPORT | LVS_EX_FULLROWSELECT, 8,40,200,185
- PUSHBUTTON "Create New Partner", IDPB_CREATE_NEW_PARTNER, 10, 230, 100, 14, WS_TABSTOP
- PUSHBUTTON "Select", IDPB_SELECT_PARTNER, 170, 230, 40, 14, WS_TABSTOP
-END
-
-IDD_OPEN_PARTNER_DIALOG DIALOGEX 0, 0, 200,65
-STYLE DS_SETFONT | WS_POPUP | WS_CAPTION | WS_SYSMENU
-EXSTYLE WS_EX_CONTEXTHELP
-CAPTION "Open Partner"
-FONT 8, "Tahoma", 400, 0, 0x0
-BEGIN
- LTEXT "Link to Partner : (If this link does not opens directly in web browser then copy an the link and paste in web browser.) ",IDC_STATIC,5,3,190,25
- EDITTEXT IDET_PARTNER_LINK_TEXT,5,31,190,12,ES_AUTOHSCROLL | WS_TABSTOP
- PUSHBUTTON "Ok",IDCANCEL,150,45,45,13,WS_TABSTOP
-
-END
-
-IDD_OPEN_DOCUEMNT_DIALOG DIALOGEX 0, 0, 200,65
-STYLE DS_SETFONT | WS_POPUP | WS_CAPTION | WS_SYSMENU
-EXSTYLE WS_EX_CONTEXTHELP
-CAPTION "Open Document"
-FONT 8, "Tahoma", 400, 0, 0x0
-BEGIN
- LTEXT "Link to Document : (If this link does not opens directly in web browser then copy an the link and paste in web browser.) ",IDC_STATIC,5,3,190,25
- EDITTEXT IDEB_OPENDOC_LINK_TEXT,5,31,190,12,ES_AUTOHSCROLL | WS_TABSTOP
- PUSHBUTTON "Ok",IDCANCEL,150,45,45,14,WS_TABSTOP
-END
-
-IDD_WEB_SERVER_PORT_DIALOG DIALOGEX 0, 0, 160, 80
-STYLE DS_SETFONT | WS_POPUP | WS_CAPTION | WS_SYSMENU
-EXSTYLE WS_EX_CONTEXTHELP
-CAPTION "OpenERP Connection"
-FONT 8, "Tahoma", 400, 0, 0x0
-BEGIN
- LTEXT "Server : ",IDC_STATIC,5,3,150,17
- EDITTEXT IDET_WEB_SERVER,40,3,100,12,ES_AUTOHSCROLL | WS_TABSTOP
- LTEXT "Port : ",IDC_STATIC,5,18,100,17
- EDITTEXT IDET_WEB_PORT,40,18,100,12,ES_AUTOHSCROLL | WS_TABSTOP
- PUSHBUTTON "Close",IDCANCEL,110,50,45,14,WS_TABSTOP
- DEFPUSHBUTTON "OK",ID_WEB_OK,50,50,50,14,WS_TABSTOP
- PUSHBUTTON "SSL (https)",IDCB_WEB_SECURE,20,35,100,14,BS_AUTOCHECKBOX | BST_CHECKED |WS_TABSTOP
-END
-
-IDD_SELECT_COUNTRY DIALOGEX 0, 0, 220, 250
-STYLE DS_SETFONT | WS_POPUP | WS_CAPTION | WS_SYSMENU
-EXSTYLE WS_EX_CONTEXTHELP
-CAPTION "Search Country"
-FONT 8, "Tahoma", 400, 0, 0x0
-BEGIN
-
- LTEXT "Enter Name : ",IDC_STATIC,8,12,80,17
- EDITTEXT IDET_COUNTRY_SEARCH_NAME, 55, 10, 100, 12, ES_AUTOHSCROLL | WS_TABSTOP
- PUSHBUTTON "Search", IDPB_SEARCH_COUNTRY, 160, 10, 50, 14, WS_TABSTOP
- CONTROL "List1",IDC_LIST_COUNTRY,"SysListView32",WS_CHILD | WS_VISIBLE | WS_BORDER | WS_HSCROLL | WS_VSCROLL |
- LVS_SHOWSELALWAYS | LVS_EX_GRIDLINES | LVS_REPORT | LVS_EX_FULLROWSELECT, 8,40,200,185
- PUSHBUTTON "Select", IDPB_SELECT_COUNTRY, 170, 230, 40, 14, WS_TABSTOP
-END
-
-IDD_SELECT_STATE DIALOGEX 0, 0, 220, 250
-STYLE DS_SETFONT | WS_POPUP | WS_CAPTION | WS_SYSMENU
-EXSTYLE WS_EX_CONTEXTHELP
-CAPTION "Search Fed. State"
-FONT 8, "Tahoma", 400, 0, 0x0
-BEGIN
-
- LTEXT "Enter Name : ",IDC_STATIC,8,12,80,17
- EDITTEXT IDET_STATE_SEARCH_NAME, 55, 10, 100, 12, ES_AUTOHSCROLL | WS_TABSTOP
- PUSHBUTTON "Search", IDPB_STATE_SEARCH, 160, 10, 50, 14, WS_TABSTOP
-
- CONTROL "List1",IDC_LIST_STATE,"SysListView32",WS_CHILD | WS_VISIBLE | WS_BORDER | WS_HSCROLL | WS_VSCROLL |
- LVS_SHOWSELALWAYS | LVS_EX_GRIDLINES | LVS_REPORT | LVS_EX_FULLROWSELECT, 8,40,200,185
- PUSHBUTTON "Select", IDPB_SELECT_STATE, 170, 230, 40, 14, WS_TABSTOP
-END
diff --git a/addons/outlook/plugin/openerp-outlook-plugin/dialogs/resources/openerp_logo.png b/addons/outlook/plugin/openerp-outlook-plugin/dialogs/resources/openerp_logo.png
deleted file mode 100644
index 1b7461953a1..00000000000
Binary files a/addons/outlook/plugin/openerp-outlook-plugin/dialogs/resources/openerp_logo.png and /dev/null differ
diff --git a/addons/outlook/plugin/openerp-outlook-plugin/dialogs/resources/openerp_logo1.bmp b/addons/outlook/plugin/openerp-outlook-plugin/dialogs/resources/openerp_logo1.bmp
deleted file mode 100644
index 4e40d9e989a..00000000000
Binary files a/addons/outlook/plugin/openerp-outlook-plugin/dialogs/resources/openerp_logo1.bmp and /dev/null differ
diff --git a/addons/outlook/plugin/openerp-outlook-plugin/dialogs/resources/rc2py.py b/addons/outlook/plugin/openerp-outlook-plugin/dialogs/resources/rc2py.py
deleted file mode 100644
index 68d62fc7060..00000000000
--- a/addons/outlook/plugin/openerp-outlook-plugin/dialogs/resources/rc2py.py
+++ /dev/null
@@ -1,41 +0,0 @@
-# rc2py.py
-# This module is part of the spambayes project, which is Copyright 2003
-# The Python Software Foundation and is covered by the Python Software
-# Foundation license.
-__author__="Adam Walker"
-__doc__=""""
-Converts an .rc windows resource source file into a python source file
-with the same basic public interface as the rcparser module.
-"""
-import sys, os, stat
-import rcparser
-
-def convert(inputFilename = None, outputFilename = None):
- """See the module doc string"""
- if inputFilename is None:
- inputFilename = "dialogs.rc"
- if outputFilename is None:
- outputFilename = "test.py"
- rcp = rcparser.ParseDialogs(inputFilename)
- in_stat = os.stat(inputFilename)
-
- out = open(outputFilename, "wt")
- out.write("#%s\n" % outputFilename)
- out.write("#This is a generated file. Please edit %s instead.\n" % inputFilename)
- out.write("_rc_size_=%d\n_rc_mtime_=%d\n" % (in_stat[stat.ST_SIZE], in_stat[stat.ST_MTIME]))
- out.write("class FakeParser:\n")
- out.write("\tdialogs = "+repr(rcp.dialogs)+"\n")
- out.write("\tids = "+repr(rcp.ids)+"\n")
- out.write("\tnames = "+repr(rcp.names)+"\n")
- out.write("\tbitmaps = "+repr(rcp.bitmaps)+"\n")
- out.write("def ParseDialogs(s):\n")
- out.write("\treturn FakeParser()\n")
- out.close()
-
-if __name__=="__main__":
- if len(sys.argv)>1:
- convert(sys.argv[1], sys.argv[2])
- else:
- convert()
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/outlook/plugin/openerp-outlook-plugin/dialogs/resources/rcparser.py b/addons/outlook/plugin/openerp-outlook-plugin/dialogs/resources/rcparser.py
deleted file mode 100644
index ed20f80e3d4..00000000000
--- a/addons/outlook/plugin/openerp-outlook-plugin/dialogs/resources/rcparser.py
+++ /dev/null
@@ -1,379 +0,0 @@
-# Windows dialog .RC file parser, by Adam Walker.
-
-# This module is part of the spambayes project, which is Copyright 2003
-# The Python Software Foundation and is covered by the Python Software
-# Foundation license.
-__author__="Adam Walker"
-
-import sys, os, shlex
-import win32con
-#import win32gui
-import commctrl
-
-_controlMap = {"DEFPUSHBUTTON":0x80,
- "PUSHBUTTON":0x80,
- "Button":0x80,
- "GROUPBOX":0x80,
- "Static":0x82,
- "CTEXT":0x82,
- "RTEXT":0x82,
- "LTEXT":0x82,
- "LISTBOX":0x83,
- "SCROLLBAR":0x84,
- "COMBOBOX":0x85,
- "EDITTEXT":0x81,
- }
-
-_addDefaults = {"EDITTEXT":win32con.WS_BORDER,
- "GROUPBOX":win32con.BS_GROUPBOX,
- "LTEXT":win32con.SS_LEFT,
- "DEFPUSHBUTTON":win32con.BS_DEFPUSHBUTTON,
- "CTEXT":win32con.SS_CENTER,
- "RTEXT":win32con.SS_RIGHT}
-
-defaultControlStyle = win32con.WS_CHILD | win32con.WS_VISIBLE
-class DialogDef:
- name = ""
- id = 0
- style = 0
- styleEx = None
- caption = ""
- font = "MS Sans Serif"
- fontSize = 8
- x = 0
- y = 0
- w = 0
- h = 0
- template = None
- def __init__(self, n, i):
- self.name = n
- self.id = i
- self.styles = []
- self.stylesEx = []
- self.controls = []
- #print "dialog def for ",self.name, self.id
- def createDialogTemplate(self):
- t = None
- self.template = [[self.caption, (self.x,self.y,self.w,self.h), self.style, self.styleEx, (self.fontSize, self.font)]]
- # Add the controls
- for control in self.controls:
- self.template.append(control.createDialogTemplate())
- return self.template
-
-class ControlDef:
- id = ""
- controlType = ""
- subType = ""
- idNum = 0
- style = defaultControlStyle
- label = ""
- x = 0
- y = 0
- w = 0
- h = 0
- def __init__(self):
- self.styles = []
- def toString(self):
- s = ""
- return s
- def createDialogTemplate(self):
- ct = self.controlType
- if "CONTROL"==ct:
- ct = self.subType
- if ct in _addDefaults:
- self.style |= _addDefaults[ct]
- if ct in _controlMap:
- ct = _controlMap[ct]
- t = [ct, self.label, self.idNum, (self.x, self.y, self.w, self.h), self.style]
- #print t
- return t
-
-
-class RCParser:
- next_id = 1001
- dialogs = {}
- _dialogs = {}
- debugEnabled = False;
- token = ""
-
- def __init__(self):
- self.ids = {"IDOK":1, "IDCANCEL":2, "IDC_STATIC": -1}
- self.names = {1:"IDOK", 2:"IDCANCEL", -1:"IDC_STATIC"}
- self.bitmaps = {}
-
- def debug(self, *args):
- if self.debugEnabled:
- print args
-
- def getToken(self):
- self.token = self.lex.get_token()
- self.debug("getToken returns:", self.token)
- if self.token=="":
- self.token = None
- return self.token
-
- def getCommaToken(self):
- tok = self.getToken()
- assert tok == ",", "Token '%s' should be a comma!" % tok
-
- def loadDialogs(self, rcFileName):
- """
- RCParser.loadDialogs(rcFileName) -> None
- Load the dialog information into the parser. Dialog Definations can then be accessed
- using the "dialogs" dictionary member (name->DialogDef). The "ids" member contains the dictionary of id->name.
- The "names" member contains the dictionary of name->id
- """
- hFileName = rcFileName[:-2]+"h"
- try:
- h = open(hFileName, "rU")
- self.parseH(h)
- h.close()
- except OSError:
- print "No .h file. ignoring."
- f = open(rcFileName)
- self.open(f)
- self.getToken()
- while self.token!=None:
- self.parse()
- self.getToken()
- f.close()
- def open(self, file):
- self.lex = shlex.shlex(file)
- self.lex.commenters = "//#"
-
- def parseH(self, file):
- lex = shlex.shlex(file)
- lex.commenters = "//"
- token = " "
- while token is not None:
- token = lex.get_token()
- if token == "" or token is None:
- token = None
- else:
- if token=='define':
- n = lex.get_token()
- i = int(lex.get_token())
- self.ids[n] = i
- if self.names.has_key(i):
- # ignore AppStudio special ones.
- if not n.startswith("_APS_"):
- print "Duplicate id",i,"for",n,"is", self.names[i]
- else:
- self.names[i] = n
- if self.next_id<=i:
- self.next_id = i+1
-
- def parse(self):
- deep = 0
- if self.token == None:
- more == None
- elif "BEGIN" == self.token:
- deep = 1
- while deep!=0:
- self.getToken()
- if "BEGIN" == self.token:
- deep += 1
- elif "END" == self.token:
- deep -= 1
- elif "IDD_" == self.token[:4]:
- possibleDlgName = self.token
- #print "possible dialog:", possibleDlgName
- self.getToken()
- if "DIALOG" == self.token or "DIALOGEX" == self.token:
- self.dialog(possibleDlgName)
- elif "IDB_" == self.token[:4]:
- possibleBitmap = self.token
- self.getToken()
- if "BITMAP" == self.token:
- self.getToken()
- if self.token=="MOVEABLE":
- self.getToken() # PURE
- self.getToken() # bmpname
- bmf = self.token[1:-1] # quotes
- self.bitmaps[possibleBitmap] = bmf
- print "BITMAP", possibleBitmap, bmf
- #print win32gui.LoadImage(0, bmf, win32con.IMAGE_BITMAP,0,0,win32con.LR_DEFAULTCOLOR|win32con.LR_LOADFROMFILE)
-
- def addId(self, id_name):
- if id_name in self.ids:
- id = self.ids[id_name]
- else:
- id = self.next_id
- self.next_id += 1
- self.ids[id_name] = id
- self.names[id] = id_name
- return id
-
- def lang(self):
- while self.token[0:4]=="LANG" or self.token[0:7]=="SUBLANG" or self.token==',':
- self.getToken();
-
- def dialog(self, name):
- dlg = DialogDef(name,self.addId(name))
- assert len(dlg.controls)==0
- self._dialogs[name] = dlg
- extras = []
- self.getToken()
- while not self.token.isdigit():
- self.debug("extra", self.token)
- extras.append(self.token)
- self.getToken()
- dlg.x = int(self.token)
- self.getCommaToken()
- self.getToken() # number
- dlg.y = int(self.token)
- self.getCommaToken()
- self.getToken() # number
- dlg.w = int(self.token)
- self.getCommaToken()
- self.getToken() # number
- dlg.h = int(self.token)
- self.getToken()
- while not (self.token==None or self.token=="" or self.token=="END"):
- if self.token=="STYLE":
- self.dialogStyle(dlg)
- elif self.token=="EXSTYLE":
- self.dialogExStyle(dlg)
- elif self.token=="CAPTION":
- self.dialogCaption(dlg)
- elif self.token=="FONT":
- self.dialogFont(dlg)
- elif self.token=="BEGIN":
- self.controls(dlg)
- else:
- break
- self.dialogs[name] = dlg.createDialogTemplate()
-
- def dialogStyle(self, dlg):
- dlg.style, dlg.styles = self.styles( [], win32con.WS_VISIBLE | win32con.DS_SETFONT)
- def dialogExStyle(self, dlg):
- self.getToken()
- dlg.styleEx, dlg.stylesEx = self.styles( [], 0)
-
- def styles(self, defaults, defaultStyle):
- list = defaults
- style = defaultStyle
-
- if "STYLE"==self.token:
- self.getToken()
- i = 0
- Not = False
- while ((i%2==1 and ("|"==self.token or "NOT"==self.token)) or (i%2==0)) and not self.token==None:
- Not = False;
- if "NOT"==self.token:
- Not = True
- self.getToken()
- i += 1
- if self.token!="|":
- if self.token in win32con.__dict__:
- value = getattr(win32con,self.token)
- else:
- if self.token in commctrl.__dict__:
- value = getattr(commctrl,self.token)
- else:
- value = 0
- if Not:
- list.append("NOT "+self.token)
- self.debug("styles add Not",self.token, value)
- style &= ~value
- else:
- list.append(self.token)
- self.debug("styles add", self.token, value)
- style |= value
- self.getToken()
- self.debug("style is ",style)
-
- return style, list
-
- def dialogCaption(self, dlg):
- if "CAPTION"==self.token:
- self.getToken()
- self.token = self.token[1:-1]
- self.debug("Caption is:",self.token)
- dlg.caption = self.token
- self.getToken()
- def dialogFont(self, dlg):
- if "FONT"==self.token:
- self.getToken()
- dlg.fontSize = int(self.token)
- self.getCommaToken()
- self.getToken() # Font name
- dlg.font = self.token[1:-1] # it's quoted
- self.getToken()
- while "BEGIN"!=self.token:
- self.getToken()
- def controls(self, dlg):
- if self.token=="BEGIN": self.getToken()
- while self.token!="END":
- control = ControlDef()
- control.controlType = self.token;
- #print self.token
- self.getToken()
- if self.token[0:1]=='"':
- control.label = self.token[1:-1]
- self.getCommaToken()
- self.getToken()
- elif self.token.isdigit():
- control.label = self.token
- self.getCommaToken()
- self.getToken()
- # msvc seems to occasionally replace "IDC_STATIC" with -1
- if self.token=='-':
- if self.getToken() != '1':
- raise RuntimeError, \
- "Negative literal in rc script (other than -1) - don't know what to do"
- self.token = "IDC_STATIC"
- control.id = self.token
- control.idNum = self.addId(control.id)
- self.getCommaToken()
- if control.controlType == "CONTROL":
- self.getToken()
- control.subType = self.token[1:-1]
- # Styles
- self.getCommaToken()
- self.getToken()
- control.style, control.styles = self.styles([], defaultControlStyle)
- #self.getToken() #,
- # Rect
- control.x = int(self.getToken())
- self.getCommaToken()
- control.y = int(self.getToken())
- self.getCommaToken()
- control.w = int(self.getToken())
- self.getCommaToken()
- self.getToken()
- control.h = int(self.token)
- self.getToken()
- if self.token==",":
- self.getToken()
- control.style, control.styles = self.styles([], defaultControlStyle)
- #print control.toString()
- dlg.controls.append(control)
-def ParseDialogs(rc_file):
- rcp = RCParser()
- try:
- rcp.loadDialogs(rc_file)
- except:
- lex = getattr(rcp, "lex", None)
- if lex:
- print "ERROR parsing dialogs at line", lex.lineno
- print "Next 10 tokens are:"
- for i in range(10):
- print lex.get_token(),
- print
- raise
-
- return rcp
-
-if __name__=='__main__':
- rc_file = os.path.join(os.path.dirname(__file__), "dialogs.rc")
- d = ParseDialogs(rc_file)
- import pprint
- for id, ddef in d.dialogs.items():
- print "Dialog %s (%d controls)" % (id, len(ddef))
- pprint.pprint(ddef)
- print
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/outlook/plugin/openerp-outlook-plugin/eml.py b/addons/outlook/plugin/openerp-outlook-plugin/eml.py
deleted file mode 100644
index 47e66689c71..00000000000
--- a/addons/outlook/plugin/openerp-outlook-plugin/eml.py
+++ /dev/null
@@ -1,95 +0,0 @@
-##############################################################################
-#
-# 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 .
-#
-##############################################################################
-
- #!/usr/bin/python
- #-*- encoding: utf-8 -*-
-
-import sys
-import chilkat
-import os
-from manager import ustr
-import email
-cemail = chilkat.CkEmail()
-dt = chilkat.SYSTEMTIME()
-def generateEML(mail):
- sub = (mail.Subject).replace(' ','')
- body = mail.Body.encode("utf-8")
- recipients = mail.Recipients
- sender_email = mail.SenderEmailAddress
- attachments=mail.Attachments
-
- cemail = chilkat.CkEmail()
- cemail.put_Subject (ustr(sub).encode('iso-8859-1'))
- cemail.put_Body (ustr(body).encode('utf-8'))
- cemail.put_FromAddress (ustr(sender_email).encode('iso-8859-1'))
- cemail.put_From (ustr(sender_email).encode('iso-8859-1'))
-
- for i in xrange(1, recipients.Count+1):
- name = ustr(recipients.Item(i).Name).encode('iso-8859-1')
- address = ustr(recipients.Item(i).Address).encode('iso-8859-1')
- cemail.AddTo(name,address)
-
- eml_name= ustr(sub).encode('iso-8859-1')+'-'+str(mail.EntryID)[-9:]
- ls = ['*', '/', '\\', '<', '>', ':', '?', '"', '|', '\t', '\n']
- mails_folder_path = os.path.abspath("%temp%\\dialogs\\resources\\mails\\")
- attachments_folder_path = mails_folder_path + "\\attachments\\"
- if not os.path.exists(attachments_folder_path):
- os.makedirs(attachments_folder_path)
- for i in xrange(1, attachments.Count+1):
- fn = eml_name + '-' + ustr(attachments[i].FileName).encode('iso-8859-1')
- for c in ls:
- fn = fn.replace(c,'')
- if len(fn) > 64:
- l = 64 - len(fn)
- f = fn.split('-')
- fn = '-'.join(f[1:])
- if len(fn) > 64:
- l = 64 - len(fn)
- f = fn.split('.')
- fn = f[0][0:l] + '.' + f[-1]
- att_file = os.path.join(attachments_folder_path, fn)
- if os.path.exists(att_file):
- os.remove(att_file)
- attachments[i].SaveAsFile(att_file)
- contentType = cemail.addFileAttachment(att_file)
- if (contentType == None ):
- print mail.lastErrorText()
- sys.exit()
-
-
- if not os.path.exists(mails_folder_path):
- os.makedirs(mails_folder_path)
- for c in ls:
- eml_name = eml_name.replace(c,'')
- if len(eml_name) > 64:
- l = 64 - len(eml_name)
- f = eml_name.split('-')
- eml_name = f[0][0:l] + '.' + f[-1]
- eml_path = ustr(os.path.join(mails_folder_path,eml_name+".eml")).encode('iso-8859-1')
- success = cemail.SaveEml(eml_path)
- fp = open(eml_path, 'rb')
- new_mail = email.message_from_file(fp)
- fp.close()
- if (success == False):
- print cemail.lastErrorText()
- sys.exit()
- return new_mail, eml_path
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/outlook/plugin/openerp-outlook-plugin/manager.py b/addons/outlook/plugin/openerp-outlook-plugin/manager.py
deleted file mode 100644
index 643a5c40e58..00000000000
--- a/addons/outlook/plugin/openerp-outlook-plugin/manager.py
+++ /dev/null
@@ -1,195 +0,0 @@
-# This module is part of the spambayes project, which is Copyright 2003
-# The Python Software Foundation and is covered by the Python Software
-# Foundation license.
-
-# -*- 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 .
-#
-##############################################################################
-
-import os
-import sys
-import win32api, win32con
-import win32com.client
-import pythoncom
-
-try:
- True, False
-except NameError:
- # Maintain compatibility with Python 2.2
- True, False = 1, 0
-
-try:
- filesystem_encoding = sys.getfilesystemencoding()
-except AttributeError:
- filesystem_encoding = "mbcs"
-
-# Work out our "application directory", which is
-# the directory of our main .py/.dll/.exe file we
-# are running from.
-if hasattr(sys, "frozen"):
- assert sys.frozen == "dll", "outlook only supports inproc servers"
- this_filename = win32api.GetModuleFileName(sys.frozendllhandle)
-else:
- try:
- this_filename = os.path.abspath(__file__)
- except NameError: # no __file__ - means Py2.2 and __name__=='__main__'
- this_filename = os.path.abspath(sys.argv[0])
-# See if we can use the new bsddb module. (The old one is unreliable
-# on Windows, so we don't use that)
-try:
- import bsddb3 as bsddb
- # bsddb3 is definitely not broken
- use_db = True
-except ImportError:
- # Not using the 3rd party bsddb3, so try the one in the std library
- try:
- import bsddb
- use_db = hasattr(bsddb, "db") # This name is not in the old one.
- except ImportError:
- # No DB library at all!
- assert not hasattr(sys, "frozen"), \
- "Don't build binary versions without bsddb!"
- use_db = False
-
-def ustr(value):
- """This method is similar to the builtin `str` method, except
- it will return Unicode string.
-
- @param value: the value to convert
-
- @rtype: unicode
- @return: unicode string
- """
- if isinstance(value, unicode):
- return value
-
- if hasattr(value, '__unicode__'):
- return unicode(value)
- if not isinstance(value, str):
- value = str(value)
- try: # first try utf-8
- return unicode(value, 'utf-8')
- except:
- pass
-
- try: # then extened iso-8858
- return unicode(value, 'iso-8859-15')
- except:
- pass
- filesystem_encoding = sys.getfilesystemencoding()
- d = unicode(value, filesystem_encoding)
- return d
-
-class OpenERPManager:
- def __init__(self, config_base="default", outlook=None, verbose=0):
- self.outlook = outlook
- self.dialog_parser = None
- self.application_directory = os.path.dirname(this_filename)
- self.windows_data_directory = self.LocateDataDirectory()
- self.data_directory = self.windows_data_directory
- self.default_objects = [('Partners','res.partner',''),('Account Invoices','account.invoice',''), \
- ('Products', 'product.product',''),('Sale Orders','sale.order',''), \
- ('Leads','crm.lead','')]
-
- self.config=self.LoadConfig()
-
- def WorkerThreadStarting(self):
- pythoncom.CoInitialize()
-
- def WorkerThreadEnding(self):
- pythoncom.CoUninitialize()
-
- def LocateDataDirectory(self):
- # Locate the best directory for our data files.
- from win32com.shell import shell, shellcon
- try:
- appdata = shell.SHGetFolderPath(0,shellcon.CSIDL_APPDATA,0,0)
- path = os.path.join(appdata, "OpenERP-Plugin")
- if not os.path.isdir(path):
- os.makedirs(path)
- return path
- except pythoncom.com_error:
- # Function doesn't exist on early win95,
- # and it may just fail anyway!
- return self.application_directory
- except EnvironmentError:
- # Can't make the directory.
- return self.application_directory
-
- def ShowManager(self, id="IDD_MANAGER"):
- import dialogs
- dialogs.ShowDialog(0, self, self.config, id)
-
- def LoadConfig(self):
- import win32ui
- path = os.path.join(self.data_directory, 'tiny.ini')
- data = {'server' : 'localhost', 'port' : '8069', 'protocol' : 'http://', 'database' : '', 'objects' : self.default_objects, 'uname':'admin', 'pwd':'a', 'login':False,'webserver':'localhost','webport':'8080', 'webprotocol' : 'http:\\'}
- if os.path.exists(path):
- fp = open(path, 'r')
- data = fp.readlines()
- try:
- data = eval(data[0])
- return data
- except e:
- return data
- else:
- return data
-
- def SaveConfig(self):
- path = os.path.join(self.data_directory, 'tiny.ini')
- fp = open(path, 'w')
- fp.write(str(self.config))
- fp.close()
-_mgr = None
-
-def GetManager(outlook = None):
- global _mgr
- if _mgr is None:
- if outlook is None:
- outlook = win32com.client.Dispatch("Outlook.Application")
- _mgr = OpenERPManager(outlook=outlook)
- return _mgr
-
-def ShowManager(mgr):
- mgr.c()
-
-def main(verbose_level = 1):
- mgr = GetManager()
- ShowManager(mgr)
- return 0
-
-def usage():
- print "Usage: manager [-v ...]"
- sys.exit(1)
-
-if __name__=='__main__':
- verbose = 1
- import getopt
- opts, args = getopt.getopt(sys.argv[1:], "v")
- if args:
- usage()
- for opt, val in opts:
- if opt=="-v":
- verbose += 1
- else:
- usage()
- sys.exit(main(verbose))
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/outlook/plugin/openerp-outlook-plugin/setup.iss b/addons/outlook/plugin/openerp-outlook-plugin/setup.iss
deleted file mode 100644
index d19cc66f556..00000000000
--- a/addons/outlook/plugin/openerp-outlook-plugin/setup.iss
+++ /dev/null
@@ -1,105 +0,0 @@
-; Script generated by the Inno Setup Script Wizard.
-; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
-
-[Setup]
-; NOTE: The value of AppId uniquely identifies this application.
-; Do not use the same AppId value in installers for other applications.
-; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
-AppId={{AF02E62E-3A5A-4E86-B4CF-03F2B2AC25BF}
-AppName=Openerp Outlook Addin
-AppVersion=1.0
-AppVerName=Openerp Outlook Addin 1.0
-AppPublisher=Openerp SA
-AppPublisherURL=http://www.openerp.com/
-AppSupportURL=http://www.openerp.com/
-AppUpdatesURL=http://www.openerp.com/
-DefaultDirName={pf}\Openerp Outlook Addin
-DefaultGroupName=Openerp Outlook Addin
-DisableProgramGroupPage=true
-OutputBaseFilename=openerp-outlook-addin
-Compression=lzma
-SolidCompression=true
-UserInfoPage=true
-UninstallDisplayIcon={app}\*
-VersionInfoVersion=1.0
-VersionInfoCompany=OpenERP
-VersionInfoDescription=OpenERP Outlook Addin
-ChangesAssociations=true
-
-[Languages]
-Name: "english"; MessagesFile: "compiler:Default.isl"
-Name: "basque"; MessagesFile: "compiler:Languages\Basque.isl"
-Name: "brazilianportuguese"; MessagesFile: "compiler:Languages\BrazilianPortuguese.isl"
-Name: "catalan"; MessagesFile: "compiler:Languages\Catalan.isl"
-Name: "czech"; MessagesFile: "compiler:Languages\Czech.isl"
-Name: "danish"; MessagesFile: "compiler:Languages\Danish.isl"
-Name: "dutch"; MessagesFile: "compiler:Languages\Dutch.isl"
-Name: "finnish"; MessagesFile: "compiler:Languages\Finnish.isl"
-Name: "french"; MessagesFile: "compiler:Languages\French.isl"
-Name: "german"; MessagesFile: "compiler:Languages\German.isl"
-Name: "hebrew"; MessagesFile: "compiler:Languages\Hebrew.isl"
-Name: "hungarian"; MessagesFile: "compiler:Languages\Hungarian.isl"
-Name: "italian"; MessagesFile: "compiler:Languages\Italian.isl"
-Name: "japanese"; MessagesFile: "compiler:Languages\Japanese.isl"
-Name: "norwegian"; MessagesFile: "compiler:Languages\Norwegian.isl"
-Name: "polish"; MessagesFile: "compiler:Languages\Polish.isl"
-Name: "portuguese"; MessagesFile: "compiler:Languages\Portuguese.isl"
-Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl"
-Name: "slovak"; MessagesFile: "compiler:Languages\Slovak.isl"
-Name: "slovenian"; MessagesFile: "compiler:Languages\Slovenian.isl"
-Name: "spanish"; MessagesFile: "compiler:Languages\Spanish.isl"
-
-[Files]
-Source: "C:\openerp-outlook-plugin\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
-; NOTE: Don't use "Flags: ignoreversion" on any shared system files
-
-[Messages]
-AboutSetupNote=Inno Setup Preprocessor home page:%nhttp://ispp.sourceforge.net/
-
-
-[Run]
-Filename: "{app}\Register-plugin.bat"; StatusMsg: "Registering Outlook Addin";
-[UninstallDelete]
-Type: files; Name: "{app}\Openerp Outlook Addin\*"
-Type: dirifempty; Name: "{app}\Openerp Outlook Addin"
-
-[UninstallRun]
-Filename: "{app}\Unregister-plugin.bat"; StatusMsg: "Unregistering Outlook Addin";
-
-
-[Code]
-function InitializeSetup(): Boolean;
-begin
- Result := true;
-
- if not RegKeyExists( HKLM, 'Software\Python\PythonCore') then begin
- Result := MsgBox(
- 'Python appears to not be installed.' + #13 + #13 +
- 'This addin requires Python 2.5 or above installed with compatible pywin32 for python for working.'+ #13 + #13 +
- 'If you know that Python is installed, you may with to continue.' + #13 + #13 +
- 'Continue with installation?',
- mbConfirmation, MB_YESNO) = idYes;
- end;
- if not RegKeyExists( HKCU, 'Software\Microsoft\Office\Outlook') then begin
- Result := MsgBox(
- 'Outlook appears to not be installed.' + #13 + #13 +
- 'This addin only works with Microsoft Outlook 2000 and later - it' + #13 +
- 'does not work with Outlook express.' + #13 + #13 +
- 'If you know that Outlook is installed, you may with to continue.' + #13 + #13 +
- 'Continue with installation?',
- mbConfirmation, MB_YESNO) = idYes;
- end;
- while Result do begin
- if not CheckForMutexes('_outlook_mutex_') then
- break;
-
- Result := MsgBox(
- 'You must close Outlook before OpenERP Outlook Addin can be installed.' + #13 + #13 +
- 'Please close all Outlook Windows (using "File->Exit and Log off"' + #13 +
- 'if available) and click Retry, or click Cancel to exit the installation.'+ #13 + #13 +
- 'If this message persists after closing all Outlook windows, you may' + #13 +
- 'need to log off from Windows, and try again.',
- mbConfirmation, MB_RETRYCANCEL) = idRetry;
- end;
-end;
-
diff --git a/addons/outlook/plugin/openerp-outlook-plugin/tiny_xmlrpc.py b/addons/outlook/plugin/openerp-outlook-plugin/tiny_xmlrpc.py
deleted file mode 100644
index 9cbcb14d40e..00000000000
--- a/addons/outlook/plugin/openerp-outlook-plugin/tiny_xmlrpc.py
+++ /dev/null
@@ -1,573 +0,0 @@
-# -*- 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 .
-#
-##############################################################################
-
-import xmlrpclib
-import binascii
-import base64
-import sys
-import socket
-import os
-import time
-from manager import ustr
-from win32com.mapi import mapitags
-import pythoncom
-import win32com
-import win32ui
-waittime = 10
-wait_count = 0
-wait_limit = 12
-def execute(connector, method, *args):
- global wait_count
- res = False
- try:
- res = getattr(connector,method)(*args)
- except socket.error,e:
- if e.args[0] == 111:
- if wait_count > wait_limit:
- print "Server is taking too long to start, it has exceeded the maximum limit of %d seconds."%(wait_limit)
- clean()
- sys.exit(1)
- print 'Please wait %d sec to start server....'%(waittime)
- wait_count += 1
- time.sleep(waittime)
- res = execute(connector, method, *args)
- else:
- return res
- wait_count = 0
- return res
-
-class XMLRpcConn(object):
- __name__ = 'XMLRpcConn'
- _com_interfaces_ = ['_IDTExtensibility2']
- _public_methods_ = ['GetDBList', 'login', 'GetAllObjects', 'GetObjList', 'InsertObj', 'DeleteObject', 'GetCSList', \
- 'ArchiveToOpenERP', 'IsCRMInstalled', 'GetPartners', 'GetObjectItems', \
- 'CreateCase', 'MakeAttachment', 'CreateContact', 'CreatePartner', 'getitem', 'setitem', \
- 'SearchPartnerDetail', 'WritePartnerValues', 'GetAllState', 'GetAllCountry', 'SearchPartner', 'SearchEmailResources', \
- 'GetCountry', 'GetStates', 'FindCountryForState','CreateEmailAttachment','SearchPartners']
- _reg_clsctx_ = pythoncom.CLSCTX_INPROC_SERVER
- _reg_clsid_ = "{C6399AFD-763A-400F-8191-7F9D0503CAE2}"
- _reg_progid_ = "Python.OpenERP.XMLRpcConn"
- _reg_policy_spec_ = "win32com.server.policy.EventHandlerPolicy"
- def __init__(self,server='localhost',port=8069,uri='http://localhost:8069',webserver='localhost', webport=8080):
- self._server=server
- self._port=port
- self._uri=uri
- self._webserver=webserver
- self._webport=webport
- self._obj_list=[]
- self._dbname=''
- self._uname='admin'
- self._pwd='a'
- self._login=False
- self._running=False
- self._uid=False
- self._iscrm=True
- self.partner_id_list=None
- self.protocol=None
- self._webprotocol=None
- self._weburi=None
-
- def getitem(self, attrib):
- v=self.__getattribute__(attrib)
- return str(v)
-
- def setitem(self, attrib, value):
- return self.__setattr__(attrib, value)
-
- def GetDBList(self):
- conn = xmlrpclib.ServerProxy(self._uri + '/xmlrpc/db')
- try:
- db_list = execute(conn, 'list')
- if db_list == False:
- self._running=False
- return []
- else:
- self._running=True
- except:
- db_list=-1
- self._running=True
- return db_list
-
- def login(self,dbname, user, pwd):
- self._dbname = dbname
- self._uname = user
- self._pwd = pwd
- conn = xmlrpclib.ServerProxy(str(self._uri) + '/xmlrpc/common')
- try:
- uid = execute(conn,'login',dbname, ustr(user), ustr(pwd))
- except:
- return False
- return uid
-
- def GetAllObjects(self):
- conn = xmlrpclib.ServerProxy(self._uri+ '/xmlrpc/object')
- ids = execute(conn,'execute',self._dbname,int(self._uid),self._pwd,'ir.model','search',[])
- objects = execute(conn,'execute',self._dbname,int(self._uid),self._pwd,'ir.model','read',ids,['model'])
- obj_list = [item['model'] for item in objects]
- return obj_list
-
- def GetObjList(self):
- self._obj_list=list(self._obj_list)
- self._obj_list.sort(reverse=True)
- return self._obj_list
-
- def InsertObj(self, obj_title,obj_name,image_path):
- self._obj_list=list(self._obj_list)
- self._obj_list.append((obj_title,obj_name,ustr(image_path)))
- self._obj_list.sort(reverse=True)
-
- def DeleteObject(self,sel_text):
- self._obj_list=list(self._obj_list)
- for obj in self._obj_list:
- if obj[0] == sel_text:
- self._obj_list.remove(obj)
- break
-
- def ArchiveToOpenERP(self, recs, mail):
- import win32con
- import win32ui
- conn = xmlrpclib.ServerProxy(self._uri + '/xmlrpc/object')
- flag = False
- new_msg = ext_msg =""
- message_id = referances = None
- context = {}
- try:
- session = win32com.client.Dispatch("MAPI.session")
- session.Logon('Outlook')
- objMessage = session.GetMessage(mail.EntryID, mail.Parent.StoreID)
- objFields = objMessage.Fields
- strheader = objFields.Item(mapitags.PR_TRANSPORT_MESSAGE_HEADERS)
- strheader = ustr(strheader).encode('iso-8859-1')
- headers = {}
- strheader = strheader.replace("\n ", " ").splitlines()
- for line in strheader:
- split_here = line.find(":")
- headers[line[:split_here]] = line[split_here:]
- temp1 = headers.get('Message-ID')
- temp2 = headers.get('Message-Id')
- referances = headers.get('References')
- if temp1 == None: message_id = temp2
- if temp2 == None: message_id = temp1
- startCut = message_id.find("<")
- endCut = message_id.find(">")
- message_id = message_id[startCut:endCut+1]
- if not referances == None:
- startCut = referances.find("<")
- endCut = referances.find(">")
- referances = referances[startCut:endCut+1]
- except Exception,e:
- win32ui.MessageBox(str(e),"Archive To OpenERP")
- return
- attachments=mail.Attachments
- for rec in recs: #[('res.partner', 3, 'Agrolait')]
- model = rec[0]
- res_id = rec[1]
- #Check if mail installed
- object_id = execute ( conn,'execute',self._dbname,int(self._uid),self._pwd,'ir.model','search',[('model','=','mail.message')])
- if not object_id:
- win32ui.MessageBox("Mail is not installed on your configured database '%s' !!\n\nPlease install it to archive the mail."%(self._dbname),"Mail not installed",win32con.MB_ICONERROR)
- return
- object_ids = execute ( conn,'execute',self._dbname,int(self._uid),self._pwd,'ir.model','search',[('model','=',model)])
- object_name = execute( conn,'execute',self._dbname,int(self._uid),self._pwd,'ir.model','read',object_ids,['name'])[0]['name']
- #Reading the Object ir.model Name
- ext_ids = execute(conn,'execute',self._dbname,int(self._uid),self._pwd,'mail.message','search',[('message_id','=',message_id),('model','=',model),('res_id','=',res_id)])
- if ext_ids:
- name = execute(conn,'execute',self._dbname,int(self._uid),self._pwd,model,'read',res_id,['name'])['name']
- ext_msg += """This mail is already archived to {0} '{1}'.\n""".format(object_name,name)
- flag = True
- continue
- msg = {
- 'subject':mail.Subject,
- 'date':str(mail.ReceivedTime),
- 'body':mail.Body,
- 'cc':mail.CC,
- 'from':mail.SenderEmailAddress,
- 'to':mail.To,
- 'message-id':message_id,
- 'references':ustr(referances),
- }
- result = {}
- context['thread_model'] = model
- if attachments:
- result = self.MakeAttachment([rec], mail)
- execute(conn, 'execute', self. _dbname, int(self._uid), self._pwd,
- 'mail.thread','message_append',[res_id],
- msg.get('subject', False),
- msg.get('body', False),
- msg.get('to', False),
- msg.get('from', False),
- msg.get('cc', False),
- False, # BCC
- False, #reply-to
- msg.get('date', False),
- msg.get('message-id'),\
- msg.get('references', False),
- result, #attachments
- #FIXME: properly handle plaintext/html body variants?
- False, #body_html
- False, #subtype
- False, #headers
- False, #original
- context)
-
- new_msg += """- {0} : {1}\n""".format(object_name,str(rec[2]))
- flag = True
-
- if flag:
- t = """Mail archived Successfully with attachments.\n"""+ext_msg
- t += "\n"+new_msg
- win32ui.MessageBox(t,"Archived to OpenERP",win32con.MB_ICONINFORMATION)
- return flag
-
- def IsCRMInstalled(self):
- conn = xmlrpclib.ServerProxy(self._uri+ '/xmlrpc/object')
- id = execute(conn,'execute',self._dbname,int(self._uid),self._pwd,'ir.model','search',[('model','=','crm.lead')])
- return id
-
- def GetCSList(self):
- conn = xmlrpclib.ServerProxy(self._uri+ '/xmlrpc/object')
- ids = execute(conn,'execute',self._dbname,int(int(self._uid)),self._pwd,'crm.case.section','search',[])
- objects = execute(conn,'execute',self._dbname,int(self._uid),self._pwd,'crm.case.section','read',ids,['name'])
- obj_list = [ustr(item['name']).encode('iso-8859-1') for item in objects]
- return obj_list
-
- def GetPartners(self, search_partner=''):
- conn = xmlrpclib.ServerProxy(self._uri+ '/xmlrpc/object')
- ids=[]
- obj_list=[]
- domain = []
- if not search_partner.strip() == '':
- domain.append(('name','ilike',ustr(search_partner)))
- ids = execute(conn,'execute',self._dbname,int(self._uid),self._pwd,'res.partner','search',domain)
- if ids:
- ids.sort()
- obj_list.append((-999, ustr('')))
- for id in ids:
- object = execute(conn,'execute',self._dbname,int(self._uid),self._pwd,'res.partner','read',[id],['id','name'])[0]
- obj_list.append((object['id'], ustr(object['name'])))
- obj_list.sort(lambda x, y: cmp(x[1],y[1]))
- return obj_list
-
- def GetObjectItems(self, search_list=[], search_text=''):
- res = []
- conn = xmlrpclib.ServerProxy(self._uri+ '/xmlrpc/object')
- for obj in search_list:
- object_ids = execute ( conn,'execute',self._dbname,int(self._uid),self._pwd,'ir.model','search',[('model','=',obj)])
- object_name = execute( conn,'execute',self._dbname,int(self._uid),self._pwd,'ir.model','read',object_ids,['name'])[0]['name']
- if obj == "res.partner.address":
- ids = execute(conn,'execute',self._dbname,int(self._uid),self._pwd,obj,'search',['|',('name','ilike',ustr(search_text)),('email','ilike',ustr(search_text))])
- recs = execute(conn,'execute',self._dbname,int(self._uid),self._pwd,obj,'read',ids,['id','name','street','city'])
- for rec in recs:
- name = ustr(rec['name'])
- if rec['street']:
- name += ', ' + ustr(rec['street'])
- if rec['city']:
- name += ', ' + ustr(rec['city'])
- res.append((obj,rec['id'],name,object_name))
- else:
- ids = execute(conn,'execute',self._dbname,int(self._uid),self._pwd,obj,'search',[('name','ilike',ustr(search_text))])
- recs = execute(conn,'execute',self._dbname,int(self._uid),self._pwd,obj,'read',ids,['id','name'])
- for rec in recs:
- name = ustr(rec['name'])
- res.append((obj,rec['id'],name,object_name))
- return res
-
- def CreateCase(self, section, mail, partner_ids, with_attachments=True):
- import eml
- flag = False
- id = -1
- try:
- conn = xmlrpclib.ServerProxy(self._uri+ '/xmlrpc/object')
- email, path = eml.generateEML(mail)
- message_id = None
- session = win32com.client.Dispatch("MAPI.session")
- session.Logon('Outlook')
- objMessage = session.GetMessage(mail.EntryID, mail.Parent.StoreID)
- objFields = objMessage.Fields
- strheader = objFields.Item(mapitags.PR_TRANSPORT_MESSAGE_HEADERS)
- strheader = ustr(strheader).encode('iso-8859-1')
- headers = {}
- strheader = strheader.replace("\n ", " ").splitlines()
- for line in strheader:
- split_here = line.find(":")
- headers[line[:split_here]] = line[split_here:]
- temp1 = headers.get('Message-ID')
- temp2 = headers.get('Message-Id')
- if temp1 == None: message_id = temp2
- if temp2 == None: message_id = temp1
- startCut = message_id.find("<")
- endCut = message_id.find(">")
- message_id = message_id[startCut:endCut+1]
- email.replace_header('Message-Id',message_id)
- id = execute(conn,'execute',self._dbname,int(self._uid),self._pwd,'mail.thread','message_process',section, str(email))
- if id > 0:
- flag = True
- return flag
- else:
- flag = False
- return flag
- except Exception,e:
- win32ui.MessageBox("Create Case\n"+str(e),"Mail Reading Error")
- return flag
-
- def MakeAttachment(self, recs, mail):
- attachments = mail.Attachments
- attachment = {}
- conn = xmlrpclib.ServerProxy(self._uri+ '/xmlrpc/object')
- att_folder_path = os.path.abspath(os.path.dirname("%temp%\\"))
- if not os.path.exists(att_folder_path):
- os.makedirs(att_folder_path)
- for rec in recs: #[('res.partner', 3, 'Agrolait')]
- obj = rec[0]
- obj_id = rec[1]
- for i in xrange(1, attachments.Count+1):
- fn = ustr(attachments[i].FileName)
- if len(fn) > 64:
- l = 64 - len(fn)
- f = fn.split('.')
- fn = f[0][0:l] + '.' + f[-1]
- att_path = os.path.join(att_folder_path,fn)
- attachments[i].SaveAsFile(att_path)
- f=open(att_path,"rb")
- content = "".join(f.readlines())
- f.close()
- attachment[fn] = content
- return attachment
-
- def CreateContact(self, res=None):
- res=eval(str(res))
- partner = res['partner_id']
- state = res['state_id']
- country = res['country_id']
- conn = xmlrpclib.ServerProxy(self._uri+ '/xmlrpc/object')
- if not partner.strip() == '':
- partner_id = execute( conn, 'execute', self._dbname, int(self._uid), self._pwd, 'res.partner', 'search', [('name','=',ustr(partner))])
- res.update({'partner_id' : partner_id[0]})
- else:
- res.pop('partner_id')
- if not state == "":
- country_id = execute( conn, 'execute', self._dbname, int(self._uid), self._pwd, 'res.country', 'search', [('name','=',ustr(country))])
- res.update({'country_id' : country_id[0]})
- else:
- res.pop('country_id')
- if not country == "":
- state_id = execute( conn, 'execute', self._dbname, int(self._uid), self._pwd, 'res.country.state', 'search', [('name','=',ustr(state))])
- res.update({'state_id' : state_id[0]})
- else:
- res.pop('state_id')
- id = execute(conn,'execute',self._dbname,int(self._uid),self._pwd,'res.partner.address','create',res)
- return id
-
- def CreatePartner(self, res):
- res=eval(str(res))
- conn = xmlrpclib.ServerProxy(self._uri+ '/xmlrpc/object')
- ids = execute(conn,'execute',self._dbname,int(self._uid),self._pwd,'res.partner','search',[('name','=',res['name'])])
- if ids:
- return False
- id = execute(conn,'execute',self._dbname,int(self._uid),self._pwd,'res.partner','create',res)
- return id
-
- def SearchPartnerDetail(self, search_email_id):
- res_vals = []
- conn = xmlrpclib.ServerProxy(self._uri+ '/xmlrpc/object')
- address_id = execute(conn, 'execute', self._dbname, int(self._uid), self._pwd, 'res.partner.address', 'search', [('email','ilike',ustr(search_email_id))])
- if not address_id :
- return
- address = execute(conn, 'execute', self._dbname, int(self._uid), self._pwd, 'res.partner.address','read',address_id[0],['id','partner_id','name','street','street2','city','state_id','country_id','phone','mobile','email','fax','zip'])
- for key, vals in address.items():
- res_vals.append([key,vals])
- return res_vals
-
- def WritePartnerValues(self, new_vals):
- flag = -1
- new_dict = dict(new_vals)
- email=new_dict['email']
- partner = new_dict['partner']
- country_val = new_dict['country']
- state_val = new_dict['state']
- conn = xmlrpclib.ServerProxy(self._uri+ '/xmlrpc/object')
- partner_id = execute( conn, 'execute', self._dbname, int(self._uid), self._pwd, 'res.partner', 'search', [('name','=',ustr(partner))])
- country_id = execute( conn, 'execute', self._dbname, int(self._uid), self._pwd, 'res.country', 'search', [('name','=',ustr(country_val))])
- state_id = execute( conn, 'execute', self._dbname, int(self._uid), self._pwd, 'res.country.state', 'search', [('name','=',ustr(state_val))])
- address_id = execute( conn, 'execute', self._dbname, int(self._uid), self._pwd, 'res.partner.address', 'search', [('email','=',ustr(email))])
- if not partner_id or not address_id or not country_id or not state_id:
- return flag
- vals_res_address={
- 'partner_id' : partner_id[0],
- 'name' : new_dict['name'],
- 'street':new_dict['street'],
- 'street2' : new_dict['street2'],
- 'city' : new_dict['city'],
- 'phone' : new_dict['phone'],
- 'mobile' : new_dict['mobile'],
- 'fax' : new_dict['fax'],
- 'zip' : new_dict['zip'],
- 'country_id' : country_id[0],
- 'state_id' : state_id[0]
- }
- temp = execute( conn, 'execute', self._dbname, int(self._uid), self._pwd, 'res.partner.address', 'write', address_id, vals_res_address)
- if temp:
- flag=1
- else:
- flag=0
- return flag
-
- def GetAllState(self):
- state_list = []
- state_ids = []
- conn = xmlrpclib.ServerProxy(self._uri+ '/xmlrpc/object')
- state_ids = execute( conn, 'execute', self._dbname, int(self._uid), self._pwd, 'res.country.state', 'search', [])
- for state_id in state_ids:
- obj = execute( conn, 'execute', self._dbname, int(self._uid), self._pwd, 'res.country.state', 'read', [state_id],['id','name'])[0]
- state_list.append((obj['id'], ustr(obj['name'])))
- return state_list
-
- def GetAllCountry(self):
- country_list = []
- country_ids = []
- conn = xmlrpclib.ServerProxy(self._uri+ '/xmlrpc/object')
- country_ids = execute( conn, 'execute', self._dbname, int(self._uid), self._pwd, 'res.country', 'search', [])
- for country_id in country_ids:
- obj = execute( conn, 'execute', self._dbname, int(self._uid), self._pwd, 'res.country','read', [country_id], ['id','name'])[0]
- country_list.append((obj['id'], ustr(obj['name'])))
- return country_list
-
- def SearchPartner(self, mail_id = ""):
- conn = xmlrpclib.ServerProxy(self._uri+ '/xmlrpc/object')
- address = execute( conn, 'execute', self._dbname, int(self._uid), self._pwd, 'res.partner.address', 'search', [('email','=',ustr(mail_id))])
- if not address:
- return False
- add_rec = execute( conn, 'execute', self._dbname, int(self._uid), self._pwd, 'res.partner.address', 'read', address[0])
- partner = add_rec.get('partner_id',False)
- if partner: return partner[0]
- else: return partner
-
- def SearchEmailResources(self, message_id):
- import win32ui
- conn = xmlrpclib.ServerProxy(self._uri+ '/xmlrpc/object')
- res_vals = []
- mail_id = execute( conn, 'execute', self._dbname, int(self._uid), self._pwd, 'mail.message', 'search', [('message_id','=',message_id)])
- ref_mail_id = None
- if not mail_id:
- ref_mail_id = execute( conn, 'execute', self._dbname, int(self._uid), self._pwd, 'mail.message', 'search', [('references','like','%'+message_id+'%')])
- if ref_mail_id:
- address = execute( conn, 'execute', self._dbname, int(self._uid), self._pwd, 'mail.message','read',ref_mail_id[0],['model','res_id'])
- for key, vals in address.items():
- res_vals.append([key,vals])
- return res_vals
- return None
- address = execute( conn, 'execute', self._dbname, int(self._uid), self._pwd, 'mail.message','read',mail_id[0],['model','res_id'])
- for key, vals in address.items():
- res_vals.append([key,vals])
- return res_vals
-
-
- def GetCountry(self, country_search=''):
- conn = xmlrpclib.ServerProxy(self._uri+ '/xmlrpc/object')
- ids=[]
- obj_list=[]
- domain = []
- if not country_search.strip() == '':
- domain.append(('name','ilike',ustr(country_search)))
- ids = execute(conn,'execute',self._dbname,int(self._uid),self._pwd,'res.country','search',domain)
- if ids:
- ids.sort()
- for id in ids:
- object = execute(conn,'execute',self._dbname,int(self._uid),self._pwd,'res.country','read',[id],['id','name'])[0]
- obj_list.append((object['id'], ustr(object['name'])))
- obj_list.sort(lambda x, y: cmp(x[1],y[1]))
- return obj_list
-
- def GetStates(self, state_search='', country=None):
- conn = xmlrpclib.ServerProxy(self._uri+ '/xmlrpc/object')
- ids = []
- c_id = []
- obj_list = []
- domain = []
- if not state_search.strip() == '':
- domain.append(('name','ilike',ustr(state_search)))
-
- if country == None:
- ids = execute(conn,'execute',self._dbname,int(self._uid),self._pwd,'res.country.state','search',domain)
- if not country == None:
- c_id = execute(conn,'execute',self._dbname,int(self._uid),self._pwd,'res.country','search',[('name','=',ustr(country))])
- domain.append(('country_id','=',c_id[0]))
- ids = execute(conn,'execute',self._dbname,int(self._uid),self._pwd,'res.country.state','search',domain)
- if ids:
- ids.sort()
- for id in ids:
- object = execute(conn,'execute',self._dbname,int(self._uid),self._pwd,'res.country.state','read',[id],['id','name'])[0]
- obj_list.append((object['id'], ustr(object['name'])))
- obj_list.sort(lambda x, y: cmp(x[1],y[1]))
- return obj_list
-
- def FindCountryForState(self, state_search=''):
- conn = xmlrpclib.ServerProxy(self._uri+ '/xmlrpc/object')
- ids = execute(conn,'execute',self._dbname,int(self._uid),self._pwd,'res.country.state','search',[('name','=',ustr(state_search))])
- if not ids:
- return None
- object = execute(conn,'execute',self._dbname,int(self._uid),self._pwd,'res.country.state','read',ids)[0]
- country = object['country_id'][1]
- return country
-
- def CreateEmailAttachment(self, rec, mail):
- import eml
- email, path = eml.generateEML(mail)
- conn = xmlrpclib.ServerProxy(self._uri+ '/xmlrpc/object')
- obj = rec[0]
- obj_id = rec[1]
- res = {}
- res['res_model'] = obj
- ls = ['*', '/', '\\', '<', '>', ':', '?', '"', '|', '\t', '\n',':','~']
- fn = (mail.Subject).replace(' ','')
- for c in ls:
- fn = fn.replace(c,'')
- if len(fn) > 64:
- l = 64 - len(fn)
- f = fn.split('-')
- fn = '-'.join(f[1:])
- if len(fn) > 64:
- l = 64 - len(fn)
- f = fn.split('.')
- fn = f[0][0:l] + '.' + f[-1]
- fn = fn[:-4]+".eml"
- f = open(path)
- content = "".join(f.readlines()).encode('base64')
- f.close()
- res['name'] = fn
- res['datas_fname'] = fn
- res['datas'] = content
- res['res_id'] = obj_id
- id = execute(conn,'execute',self._dbname,int(self._uid),self._pwd,'ir.attachment','create',res)
- return id
-
- def SearchPartners(self):
- res = []
- conn = xmlrpclib.ServerProxy(self._uri+ '/xmlrpc/object')
- obj = 'res.partner'
- ids = execute(conn,'execute',self._dbname,int(self._uid),self._pwd,obj,'search',[])
- recs = execute(conn,'execute',self._dbname,int(self._uid),self._pwd,obj,'read',ids,['id','name'])
- for rec in recs:
- name = ustr(rec['name'])
- res.append((obj,rec['id'],name,obj))
- return res
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/outlook/static/openerp-outlook-plugin/CookComputing.XmlRpcV2.dll b/addons/outlook/static/openerp-outlook-plugin/CookComputing.XmlRpcV2.dll
new file mode 100644
index 00000000000..be76352b13d
Binary files /dev/null and b/addons/outlook/static/openerp-outlook-plugin/CookComputing.XmlRpcV2.dll differ
diff --git a/addons/outlook/static/openerp-outlook-plugin/OpenERPClient/Model.cs b/addons/outlook/static/openerp-outlook-plugin/OpenERPClient/Model.cs
new file mode 100644
index 00000000000..e163b5442a4
--- /dev/null
+++ b/addons/outlook/static/openerp-outlook-plugin/OpenERPClient/Model.cs
@@ -0,0 +1,78 @@
+/*
+ OpenERP, Open Source Business Applications
+ Copyright (c) 2011 OpenERP S.A.
+
+ 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 .
+*/
+
+
+using System;
+using System.Collections;
+using System.Linq;
+
+namespace OpenERPClient
+{
+ public class Model
+ {
+ public string model;
+ public string name;
+ protected OpenERPConnect openerp_connect;
+ public OpenERPConnect Connection
+ {
+ set
+ {
+ this.openerp_connect = value;
+ }
+ get
+ {
+ return this.openerp_connect;
+ }
+ }
+ public Model()
+ {
+ }
+ public Model(string model)
+ {
+ /*
+ It gives the model name only.
+ :param model : madel name
+ */
+
+ this.model = model;
+ }
+ public Model(string model, string name)
+ {
+ /*
+ It gives the model names with their descriptions.
+ :param model : model name
+ :param name : description of model
+ */
+
+ this.name = name;
+ this.model = model;
+ }
+ public override string ToString()
+ {
+ /*
+ It overrides the name of model into ToString.
+
+ :return : String
+ */
+
+ if (this.name != null) return this.name;
+ return this.model;
+ }
+
+ }
+}
diff --git a/addons/outlook/static/openerp-outlook-plugin/OpenERPClient/OpenERPClient.csproj b/addons/outlook/static/openerp-outlook-plugin/OpenERPClient/OpenERPClient.csproj
new file mode 100644
index 00000000000..75fe271e5d6
--- /dev/null
+++ b/addons/outlook/static/openerp-outlook-plugin/OpenERPClient/OpenERPClient.csproj
@@ -0,0 +1,106 @@
+
+
+
+ Debug
+ AnyCPU
+ 9.0.21022
+ 2.0
+ {8E62B8DF-E3A2-4429-A820-FB8A31C2EB00}
+ Library
+ Properties
+ OpenERPClient
+ OpenERPClient
+ v3.5
+ 512
+
+
+
+
+ 3.5
+ publish\
+ true
+ Disk
+ false
+ Foreground
+ 7
+ Days
+ false
+ false
+ true
+ 0
+ 1.0.0.%2a
+ false
+ false
+ true
+
+
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+ AllRules.ruleset
+
+
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+ AllRules.ruleset
+
+
+
+ False
+ ..\OpenERPOutlookPlugin\bin\Release\CookComputing.XmlRpcV2.dll
+
+
+
+ 3.5
+
+
+
+ 3.5
+
+
+ 3.5
+
+
+
+
+
+
+
+
+
+
+
+
+
+ False
+ .NET Framework 3.5 SP1 Client Profile
+ false
+
+
+ False
+ .NET Framework 3.5 SP1
+ true
+
+
+ False
+ Windows Installer 3.1
+ true
+
+
+
+
+
\ No newline at end of file
diff --git a/addons/outlook/static/openerp-outlook-plugin/OpenERPClient/OpenERPConnect.cs b/addons/outlook/static/openerp-outlook-plugin/OpenERPClient/OpenERPConnect.cs
new file mode 100644
index 00000000000..d6672828ed0
--- /dev/null
+++ b/addons/outlook/static/openerp-outlook-plugin/OpenERPClient/OpenERPConnect.cs
@@ -0,0 +1,397 @@
+/*
+ OpenERP, Open Source Business Applications
+ Copyright (c) 2011 OpenERP S.A.
+
+ 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 .
+*/
+
+
+using System;
+using System.Windows.Forms;
+using System.Collections;
+using CookComputing.XmlRpc;
+
+namespace OpenERPClient
+{
+ public class ServiceUrl : System.Attribute
+ {
+ string _url;
+ public ServiceUrl(string url)
+ {
+ /*
+ It will contain the ServiceUrl.
+ :param url : url with server and port.
+ */
+
+ this._url = url;
+ }
+ public string Url
+ {
+ /*
+ It will get and return the Url for the connection.
+
+ :return : String
+ */
+
+ get
+ {
+ return _url;
+ }
+ }
+ public override string ToString()
+ {
+ /*
+ It will override the Tostring and return the _url.
+ */
+
+ return this._url;
+ }
+ }
+ public enum OpenERPService
+ {
+ [ServiceUrl("/xmlrpc/object")]
+ Object = 1,
+ [ServiceUrl("/xmlrpc/db")]
+ DB = 2,
+ [ServiceUrl("/xmlrpc/common")]
+ Common = 3
+ }
+ public class OpenERPConnect
+ {
+ int uid;
+ string url;
+ string dbname;
+ string login;
+ string pwd;
+ bool chkpwd;
+ string password;
+ public string URL
+ {
+ /*
+ It will get and set the value of the url.
+
+ :return : String
+ */
+
+ get
+ {
+ return url;
+ }
+ set
+ {
+ url = value;
+ }
+ }
+ public string DBName
+ {
+ /*
+ It will get and set the value of the Database Name.
+
+ :return : String
+ */
+
+ get
+ {
+ return dbname;
+ }
+ set
+ {
+ dbname = value;
+ }
+ }
+ public string UserId
+ {
+ /*
+ It will get and set the value of the UserId.
+
+ :return : String
+ */
+
+ get
+ {
+ return login;
+ }
+ set
+ {
+ login = value;
+ }
+ }
+ public string pswrd
+ {
+ /*
+ It will get and set the value of the Password.
+
+ :return : String
+ */
+
+ get
+ {
+ return password;
+ }
+ set
+ {
+ password = value;
+ }
+ }
+
+ public bool rempwd
+ {
+ /*
+ It will get and set the value of the Remember Password.
+
+ :return : True or False
+ */
+
+ get
+ {
+ return chkpwd;
+ }
+ set
+ {
+ chkpwd = value;
+ }
+ }
+
+ public string version;
+ XMLRPCClient rpcclient;
+
+ public void Open(Enum service)
+ {
+ /*
+ It opens the connetion by the url and service url.
+ :param service : enum service.
+ */
+
+ string url = null;
+ Type type = service.GetType();
+
+ ServiceUrl[] _urls =
+ type.GetField(service.ToString()).GetCustomAttributes(typeof(ServiceUrl),
+ false) as ServiceUrl[];
+ if (_urls.Length > 0)
+ {
+ url = _urls[0].Url;
+ }
+
+ this.Open(url);
+
+
+ }
+
+ void Open(string service_url)
+ {
+ /*
+ It opens rpcclient by service url.
+ :param service_url : service url
+ */
+
+ this.rpcclient = new XMLRPCClient(this.url + service_url);
+
+ }
+ void Close()
+ {
+ /*
+ It closes rpcclient.
+ */
+
+ this.rpcclient = null;
+
+ }
+ public OpenERPConnect()
+ {
+ }
+ public OpenERPConnect(string url)
+ {
+ /*
+ It will contain the url wit the server and port.
+ :param url : url with the server and port.
+ */
+
+ this.url = url;
+ }
+ public OpenERPConnect(string url, string dbname, string login, string pwd)
+ {
+ /*
+ It will do the connection with OpenERP server.
+ :param url : url with the server and port.
+ :param dbname : the list of database.
+ :param login : user name.
+ :param pwd : password.
+ */
+
+ this.url = url;
+ this.dbname = dbname;
+ this.login = login;
+ this.pwd = pwd;
+ this.version = ServerVersion();
+ }
+ public Boolean isLoggedIn
+ {
+ /*
+ It will check whether successfully login to OpenERP is done or not.
+
+ :return : True or False.
+ */
+
+ get
+ {
+ if (this.uid > 0) { return true; }
+ return false;
+ }
+ }
+
+ public int Login(string dbname, string userid, string pwd)
+ {
+ /*
+ It will check whether the entered dbname, userid and password are correct or not
+ and on that basis it will allow the user for connecting to OpenERP.
+ :param dbname : list of database
+ :param userid : userid
+ :param pwd : password of the user
+
+ :return : Integer
+ */
+
+ this.Open(OpenERPClient.OpenERPService.Common);
+ object isLogin = this.rpcclient.Login(dbname, userid, pwd);
+ this.uid = 0;
+ if (Convert.ToBoolean(isLogin))
+ {
+ this.uid = Convert.ToInt32(isLogin);
+ }
+ this.pwd = pwd;
+ if (this.uid <= 0)
+ {
+ MessageBox.Show("Authentication Error!\nBad username and password.", Form.ActiveForm.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
+ }
+ this.Close();
+ return this.uid;
+
+ }
+ XmlRpcStruct ConvertAs(Hashtable value)
+ {
+ /*
+ It will convert the Hashtable into XmlRpcStruct and vise-versa.
+
+ :param value : Hasheable value.
+
+ :retutn : Hashtable values and vise versa the XmlRpcStruct value.
+ */
+
+ XmlRpcStruct new_value;
+ new_value = new XmlRpcStruct();
+ foreach (string key in value.Keys)
+ {
+ object res;
+ if (value[key] == null)
+ {
+ res = "";
+ }
+ if (value[key].GetType() == typeof(Hashtable))
+ {
+ res = this.ConvertAs((Hashtable)value[key]);
+ }
+ else
+ {
+ res = value[key];
+ }
+ new_value.Add(key, res);
+ }
+ return new_value;
+ }
+ object[] ConvertArgs(object[] args)
+ {
+ /*
+ It will convert the arguments which are of type Hashtable into new arguments.
+
+ :param args : Objet value of arguments
+
+ :return : Object value of arguments.
+ */
+
+ for (int i = 0; i < args.Length; i++)
+ {
+ object arg = args[i];
+ XmlRpcStruct new_arg;
+ if (arg.GetType() == typeof(Hashtable))
+ {
+ new_arg = this.ConvertAs((Hashtable)arg);
+ args[i] = new_arg;
+ }
+ }
+ return args;
+ }
+ public object Execute(string model, string method, params object[] args)
+ {
+ /*
+ It executes the model name, the method name and also the list of arrays arguments.
+ :param model : model name.
+ :param method : method name.
+ :params args : list of arrays of arguments.
+
+ :return : Object
+ */
+
+ args = this.ConvertArgs(args);
+ this.Open(OpenERPClient.OpenERPService.Object);
+
+ object res = this.rpcclient.Execute(this.dbname, this.uid, this.pwd, model, method, args);
+ this.Close();
+ return res;
+ }
+ public object[] DBList()
+ {
+ /*
+ It will return the list of the database which will be created.
+
+ :return : Database List
+ */
+
+ this.Open(OpenERPClient.OpenERPService.DB);
+ object[] res = this.rpcclient.DBList();
+ this.Close();
+ return res;
+ }
+ public string ServerVersion()
+ {
+ /*
+ It will give the version of the server which the user is using.
+
+ :return : String
+ */
+
+ this.Open(OpenERPClient.OpenERPService.DB);
+ string version = this.rpcclient.ServerVersion();
+ this.Close();
+ return version;
+ }
+
+ public bool check_connectivity()
+ {
+ /*
+ It will check connection on given server url.
+
+ :return : True or False.
+ */
+
+ this.Open(OpenERPClient.OpenERPService.Common);
+ bool flag = this.rpcclient.check_connectivity();
+ this.Close();
+ return flag;
+ }
+
+
+ }
+
+}
diff --git a/addons/outlook/static/openerp-outlook-plugin/OpenERPClient/Properties/AssemblyInfo.cs b/addons/outlook/static/openerp-outlook-plugin/OpenERPClient/Properties/AssemblyInfo.cs
new file mode 100644
index 00000000000..def21a9bf91
--- /dev/null
+++ b/addons/outlook/static/openerp-outlook-plugin/OpenERPClient/Properties/AssemblyInfo.cs
@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("OpenERPClient")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("OpenERPClient")]
+[assembly: AssemblyCopyright("Copyright © 2011")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("0b69b9a4-1bfc-45d5-9788-983fbf57a505")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/addons/outlook/static/openerp-outlook-plugin/OpenERPClient/Record.cs b/addons/outlook/static/openerp-outlook-plugin/OpenERPClient/Record.cs
new file mode 100644
index 00000000000..4069b43f74c
--- /dev/null
+++ b/addons/outlook/static/openerp-outlook-plugin/OpenERPClient/Record.cs
@@ -0,0 +1,69 @@
+/*
+ OpenERP, Open Source Business Applications
+ Copyright (c) 2011 OpenERP S.A.
+
+ 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 .
+*/
+
+
+using System.Collections;
+
+namespace OpenERPClient
+{
+ public class Record
+ {
+ public long id;
+ public string name;
+ public Model model;
+ public Hashtable columns;
+ public Record(long id, string name, Model model)
+ {
+ /*
+ It gives the record of id, name and model.
+ :param id : record id.
+ :param name : record name.
+ :param model : model name.
+ */
+
+ this.id = id;
+ this.name = name;
+ this.model = model;
+ }
+ public Record(Hashtable columns, Model model)
+ {
+ /*
+ It gives the records in hashtable columns and also model name.
+ :param columns : hashtable column values.
+ :param model : model name.
+ */
+
+ this.id = long.Parse(columns["id"].ToString());
+ if (columns.ContainsKey("name"))
+ {
+ this.name = columns["name"].ToString();
+ }
+ this.model = model;
+ this.columns = columns;
+ }
+ public override string ToString()
+ {
+ /*
+ It will override the Tostring.
+ */
+
+ if (this.name != null) return this.name;
+ return this.id.ToString();
+ }
+ }
+}
diff --git a/addons/outlook/static/openerp-outlook-plugin/OpenERPClient/XMLRPCClient.cs b/addons/outlook/static/openerp-outlook-plugin/OpenERPClient/XMLRPCClient.cs
new file mode 100644
index 00000000000..ebe9ec142e2
--- /dev/null
+++ b/addons/outlook/static/openerp-outlook-plugin/OpenERPClient/XMLRPCClient.cs
@@ -0,0 +1,388 @@
+/*
+ OpenERP, Open Source Business Applications
+ Copyright (c) 2011 OpenERP S.A.
+
+ 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 .
+*/
+
+
+using System;
+using System.Text;
+using CookComputing.XmlRpc;
+
+namespace OpenERPClient
+{
+ public interface IOpenERPCommon : IXmlRpcProxy
+ {
+ [XmlRpcMethod("login")]
+ object Login(string dbname, string username, string pwd);
+
+ }
+ public interface IOpenERPObject : IXmlRpcProxy
+ {
+
+ [XmlRpcMethod("execute")]
+ Object Execute(string dbName, long userId, string pwd, string model, string method, params Object[] args);
+
+
+
+ }
+ public interface IOpenERPDB : IXmlRpcProxy
+ {
+
+ [XmlRpcMethod("list")]
+ Object[] DBList();
+
+ [XmlRpcMethod("server_version")]
+ string ServerVersion();
+
+ [XmlRpcMethod("check_connectivity")]
+ bool check_connectivity();
+
+
+ }
+ public interface Ixmlrpcconnect : IOpenERPCommon, IOpenERPDB, IOpenERPObject
+ {
+ }
+ public class XMLRPCClient : Ixmlrpcconnect
+ {
+ Ixmlrpcconnect rpcclient = (Ixmlrpcconnect)XmlRpcProxyGen.Create(typeof(Ixmlrpcconnect));
+ public XMLRPCClient(string ServiceUrl)
+ {
+ rpcclient.Url = ServiceUrl;
+ }
+
+ #region Ixmlrpcconnect Members
+
+ public object Login(string dbname, string username, string pwd)
+ {
+ return rpcclient.Login(dbname, username, pwd);
+ }
+
+ public object Execute(string dbName, long userId, string pwd, string model, string method, params object[] args)
+ {
+ return rpcclient.Execute(dbName, userId, pwd, model, method, args);
+ }
+
+ public object[] DBList()
+ {
+ return rpcclient.DBList();
+ }
+
+ public string ServerVersion()
+ {
+ return rpcclient.ServerVersion();
+ }
+
+ public bool check_connectivity()
+ {
+ return rpcclient.check_connectivity();
+ }
+ #endregion
+
+
+ #region IXmlRpcProxy Members
+
+ public bool AllowAutoRedirect
+ {
+ get
+ {
+ throw new NotImplementedException();
+ }
+ set
+ {
+ throw new NotImplementedException();
+ }
+ }
+
+ public System.Security.Cryptography.X509Certificates.X509CertificateCollection ClientCertificates
+ {
+ get { throw new NotImplementedException(); }
+ }
+
+ public string ConnectionGroupName
+ {
+ get
+ {
+ throw new NotImplementedException();
+ }
+ set
+ {
+ throw new NotImplementedException();
+ }
+ }
+
+ public System.Net.CookieContainer CookieContainer
+ {
+ get { throw new NotImplementedException(); }
+ }
+
+ public System.Net.ICredentials Credentials
+ {
+ get
+ {
+ throw new NotImplementedException();
+ }
+ set
+ {
+ throw new NotImplementedException();
+ }
+ }
+
+ public bool EnableCompression
+ {
+ get
+ {
+ throw new NotImplementedException();
+ }
+ set
+ {
+ throw new NotImplementedException();
+ }
+ }
+
+ public bool Expect100Continue
+ {
+ get
+ {
+ throw new NotImplementedException();
+ }
+ set
+ {
+ throw new NotImplementedException();
+ }
+ }
+
+ public System.Net.WebHeaderCollection Headers
+ {
+ get { throw new NotImplementedException(); }
+ }
+
+ public Guid Id
+ {
+ get { throw new NotImplementedException(); }
+ }
+
+ public int Indentation
+ {
+ get
+ {
+ throw new NotImplementedException();
+ }
+ set
+ {
+ throw new NotImplementedException();
+ }
+ }
+
+ public bool KeepAlive
+ {
+ get
+ {
+ throw new NotImplementedException();
+ }
+ set
+ {
+ throw new NotImplementedException();
+ }
+ }
+
+ public XmlRpcNonStandard NonStandard
+ {
+ get
+ {
+ throw new NotImplementedException();
+ }
+ set
+ {
+ throw new NotImplementedException();
+ }
+ }
+
+ public bool PreAuthenticate
+ {
+ get
+ {
+ throw new NotImplementedException();
+ }
+ set
+ {
+ throw new NotImplementedException();
+ }
+ }
+
+ public Version ProtocolVersion
+ {
+ get
+ {
+ throw new NotImplementedException();
+ }
+ set
+ {
+ throw new NotImplementedException();
+ }
+ }
+
+ public System.Net.IWebProxy Proxy
+ {
+ get
+ {
+ throw new NotImplementedException();
+ }
+ set
+ {
+ throw new NotImplementedException();
+ }
+ }
+
+ public System.Net.CookieCollection ResponseCookies
+ {
+ get { throw new NotImplementedException(); }
+ }
+
+ public System.Net.WebHeaderCollection ResponseHeaders
+ {
+ get { throw new NotImplementedException(); }
+ }
+
+ public int Timeout
+ {
+ get
+ {
+ throw new NotImplementedException();
+ }
+ set
+ {
+ throw new NotImplementedException();
+ }
+ }
+
+ public string Url
+ {
+ get
+ {
+ throw new NotImplementedException();
+ }
+ set
+ {
+ throw new NotImplementedException();
+ }
+ }
+
+ public bool UseEmptyParamsTag
+ {
+ get
+ {
+ throw new NotImplementedException();
+ }
+ set
+ {
+ throw new NotImplementedException();
+ }
+ }
+
+ public bool UseIndentation
+ {
+ get
+ {
+ throw new NotImplementedException();
+ }
+ set
+ {
+ throw new NotImplementedException();
+ }
+ }
+
+ public bool UseIntTag
+ {
+ get
+ {
+ throw new NotImplementedException();
+ }
+ set
+ {
+ throw new NotImplementedException();
+ }
+ }
+
+ public bool UseStringTag
+ {
+ get
+ {
+ throw new NotImplementedException();
+ }
+ set
+ {
+ throw new NotImplementedException();
+ }
+ }
+
+ public string UserAgent
+ {
+ get
+ {
+ throw new NotImplementedException();
+ }
+ set
+ {
+ throw new NotImplementedException();
+ }
+ }
+
+ public Encoding XmlEncoding
+ {
+ get
+ {
+ throw new NotImplementedException();
+ }
+ set
+ {
+ throw new NotImplementedException();
+ }
+ }
+
+ public string XmlRpcMethod
+ {
+ get
+ {
+ throw new NotImplementedException();
+ }
+ set
+ {
+ throw new NotImplementedException();
+ }
+ }
+
+ public string[] SystemListMethods()
+ {
+ throw new NotImplementedException();
+ }
+
+ public object[] SystemMethodSignature(string MethodName)
+ {
+ throw new NotImplementedException();
+ }
+
+ public string SystemMethodHelp(string MethodName)
+ {
+ throw new NotImplementedException();
+ }
+
+ public event XmlRpcRequestEventHandler RequestEvent;
+
+ public event XmlRpcResponseEventHandler ResponseEvent;
+
+ #endregion
+ }
+}
diff --git a/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin.sln b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin.sln
new file mode 100644
index 00000000000..f4705664cf4
--- /dev/null
+++ b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin.sln
@@ -0,0 +1,30 @@
+
+Microsoft Visual Studio Solution File, Format Version 10.00
+# Visual Studio 2008
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenERPOutlookPlugin", "OpenERPOutlookPlugin\OpenERPOutlookPlugin.csproj", "{F4B2219B-F235-400F-81B4-92F15250BBA4}"
+EndProject
+Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "OpenERPOutlookPluginSetup", "OpenERPOutlookPluginSetup\OpenERPOutlookPluginSetup.vdproj", "{96333293-0156-4998-9065-42721CEB0368}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenERPClient", "OpenERPClient\OpenERPClient.csproj", "{8E62B8DF-E3A2-4429-A820-FB8A31C2EB00}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {F4B2219B-F235-400F-81B4-92F15250BBA4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {F4B2219B-F235-400F-81B4-92F15250BBA4}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {F4B2219B-F235-400F-81B4-92F15250BBA4}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {F4B2219B-F235-400F-81B4-92F15250BBA4}.Release|Any CPU.Build.0 = Release|Any CPU
+ {96333293-0156-4998-9065-42721CEB0368}.Debug|Any CPU.ActiveCfg = Debug
+ {96333293-0156-4998-9065-42721CEB0368}.Release|Any CPU.ActiveCfg = Release
+ {8E62B8DF-E3A2-4429-A820-FB8A31C2EB00}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {8E62B8DF-E3A2-4429-A820-FB8A31C2EB00}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {8E62B8DF-E3A2-4429-A820-FB8A31C2EB00}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {8E62B8DF-E3A2-4429-A820-FB8A31C2EB00}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/AssemblyInfo.cs b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/AssemblyInfo.cs
new file mode 100644
index 00000000000..6f5be64b3ae
--- /dev/null
+++ b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/AssemblyInfo.cs
@@ -0,0 +1,52 @@
+
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+//
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+//
+[assembly: AssemblyTitle("")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("")]
+[assembly: AssemblyCopyright("")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+//
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Revision
+// Build Number
+//
+// You can specify all the value or you can default the Revision and Build Numbers
+// by using the '*' as shown below:
+
+[assembly: AssemblyVersion("1.0.*")]
+
+//
+// In order to sign your assembly you must specify a key to use. Refer to the
+// Microsoft .NET Framework documentation for more information on assembly signing.
+//
+// Use the attributes below to control which key is used for signing.
+//
+// Notes:
+// (*) If no key is specified - the assembly cannot be signed.
+// (*) KeyName refers to a key that has been installed in the Crypto Service
+// Provider (CSP) on your machine.
+// (*) If the key file and a key name attributes are both specified, the
+// following processing occurs:
+// (1) If the KeyName can be found in the CSP - that key is used.
+// (2) If the KeyName does not exist and the KeyFile does exist, the key
+// in the file is installed into the CSP and used.
+// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework
+// documentation for more information on this.
+//
+[assembly: AssemblyDelaySign(false)]
+[assembly: AssemblyKeyFile("")]
+[assembly: AssemblyKeyName("")]
diff --git a/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Cache.cs b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Cache.cs
new file mode 100644
index 00000000000..b4e4d25d3f4
--- /dev/null
+++ b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Cache.cs
@@ -0,0 +1,55 @@
+/*
+ OpenERP, Open Source Business Applications
+ Copyright (c) 2011 OpenERP S.A.
+
+ 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 .
+*/
+
+
+using System.Collections;
+using OpenERPClient;
+
+namespace OpenERPOutlookPlugin
+{
+ static public class Cache
+ {
+ static private OpenERPOutlookPlugin _openerp;
+ static public OpenERPOutlookPlugin OpenERPOutlookPlugin
+ {
+ get
+ {
+ return _openerp;
+ }
+ set
+ {
+
+ _openerp = value;
+ }
+ }
+ static private Model[] document_models;
+ static public Model[] DocumentModelList
+ {
+ get
+ {
+ return document_models;
+ }
+ set
+ {
+
+ document_models = value;
+ }
+ }
+
+ }
+}
diff --git a/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/ConfigManager.cs b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/ConfigManager.cs
new file mode 100644
index 00000000000..6ce61be577b
--- /dev/null
+++ b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/ConfigManager.cs
@@ -0,0 +1,109 @@
+/*
+ OpenERP, Open Source Business Applications
+ Copyright (c) 2011 OpenERP S.A.
+
+ 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 .
+*/
+
+
+using System;
+using System.Collections;
+using System.Drawing;
+using System.Drawing.Imaging;
+using System.IO;
+using System.Windows.Forms;
+using System.Text.RegularExpressions;
+using OpenERPClient;
+
+namespace OpenERPOutlookPlugin
+{
+ public class ConfigManager
+ {
+ string openerp_config_file = "openerp_config.ini";
+
+ public void SaveConfigurationSetting()
+ {
+ string filepath = Tools.GetAppFolderPath();
+ OpenERPOutlookPlugin openerp_outlook = Cache.OpenERPOutlookPlugin;
+ OpenERPConnect openerp_connect = openerp_outlook.Connection;
+ filepath = Path.Combine(filepath, openerp_config_file);
+ string[] datas = { "url=" + openerp_connect.URL, "userid=" + openerp_connect.UserId, "dbname=" + openerp_connect.DBName,"rempwd="+openerp_connect.rempwd,"pswrd=" + openerp_connect.pswrd };
+ StreamWriter userfile = new StreamWriter(filepath, false);
+
+ foreach (string data in datas)
+ {
+ userfile.WriteLine(data);
+ }
+ userfile.Close();
+
+ }
+ public void LoadConfigurationSetting()
+ {
+
+ string filePath = Tools.GetAppFolderPath();
+ filePath = Path.Combine(filePath, this.openerp_config_file);
+ OpenERPConnect openerp_connect=null;
+ OpenERPOutlookPlugin openerp_outlook=null;
+ openerp_outlook = Cache.OpenERPOutlookPlugin;
+ if (openerp_outlook == null)
+ {
+
+ openerp_outlook = new OpenERPOutlookPlugin(openerp_connect);
+ }
+ openerp_connect = openerp_outlook.Connection;
+ if (openerp_connect == null)
+ {
+ openerp_connect = new OpenERPConnect();
+ }
+
+ if (File.Exists(filePath))
+ {
+
+ string line;
+
+ using (StreamReader file = new StreamReader(filePath))
+ {
+ while ((line = file.ReadLine()) != null)
+ {
+ char[] delimiters = new char[] { '=' };
+ string[] parts = line.Split(delimiters, 2);
+
+ for (int i = 0; i < parts.Length; i += 2)
+ {
+ if (parts[i] == "url")
+ openerp_connect.URL = parts[i + 1].Trim();
+ else if (parts[i] == "userid")
+ openerp_connect.UserId = parts[i + 1].Trim();
+ else if (parts[i] == "dbname")
+ openerp_connect.DBName = parts[i + 1].Trim();
+ else if (parts[i] == "pswrd")
+ openerp_connect.pswrd = parts[i + 1].Trim();
+ else if (parts[i] == "rempwd")
+ {
+ openerp_connect.rempwd = false;
+ if (parts[i + 1].Trim().ToLower() == "true")
+ openerp_connect.rempwd = true;
+ }
+
+ }
+ }
+ file.Close();
+ }
+ }
+ openerp_outlook.Connection = openerp_connect;
+ Cache.OpenERPOutlookPlugin = openerp_outlook;
+ }
+
+ }
+}
diff --git a/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Connect.cs b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Connect.cs
new file mode 100644
index 00000000000..1336c7f7695
--- /dev/null
+++ b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Connect.cs
@@ -0,0 +1,354 @@
+/*
+ OpenERP, Open Source Business Applications
+ Copyright (c) 2011 OpenERP S.A.
+
+ 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 .
+*/
+
+
+
+namespace OpenERPOutlookPlugin
+{
+ using System;
+ using System.Reflection;
+ using System.Runtime.InteropServices;
+ using System.Windows.Forms;
+ using office = Microsoft.Office.Core;
+ using outlook = Microsoft.Office.Interop.Outlook;
+ using OpenERPClient;
+
+
+
+
+ #region Read me for Add-in installation and setup information.
+ // When run, the Add-in wizard prepared the registry for the Add-in.
+ // At a later time, if the Add-in becomes unavailable for reasons such as:
+ // 1) You moved this project to a computer other than which is was originally created on.
+ // 2) You chose 'Yes' when presented with a message asking if you wish to remove the Add-in.
+ // 3) Registry corruption.
+ // you will need to re-register the Add-in by building the OpenERPOutlookPluginSetup project,
+ // right click the project in the Solution Explorer, then choose install.
+ #endregion
+
+ ///
+ /// The object for implementing an Add-in.
+ ///
+ ///
+
+ [GuidAttribute("C86B5760-1254-4F40-BD25-2094A2A678C4"), ProgId("OpenERPOutlookPlugin.Connect")]
+ public class Connect : Object, Extensibility.IDTExtensibility2
+ {
+ ///
+ /// Implements the constructor for the Add-in object.
+ /// Place your initialization code within this method.
+ ///
+
+ public Connect()
+ {
+
+ }
+
+ public int cnt_mail = 0;
+
+ ///
+ /// Implements the OnConnection method of the IDTExtensibility2 interface.
+ /// Receives notification that the Add-in is being loaded.
+ ///
+ ///
+ /// Root object of the host application.
+ ///
+ ///
+ /// Describes how the Add-in is being loaded.
+ ///
+ ///
+ /// Object representing this Add-in.
+ ///
+ ///
+ public void OnConnection(object application, Extensibility.ext_ConnectMode connectMode, object addInInst, ref System.Array custom)
+ {
+ applicationObject = application;
+ addInInstance = addInInst;
+
+ if (connectMode != Extensibility.ext_ConnectMode.ext_cm_Startup)
+ {
+ OnStartupComplete(ref custom);
+
+ }
+ }
+
+ ///
+ /// Implements the OnDisconnection method of the IDTExtensibility2 interface.
+ /// Receives notification that the Add-in is being unloaded.
+ ///
+ ///
+ /// Describes how the Add-in is being unloaded.
+ ///
+ ///
+ /// Array of parameters that are host application specific.
+ ///
+ ///
+ public void OnDisconnection(Extensibility.ext_DisconnectMode disconnectMode, ref System.Array custom)
+ {
+ if (disconnectMode != Extensibility.ext_DisconnectMode.ext_dm_HostShutdown)
+ {
+ OnBeginShutdown(ref custom);
+ }
+ applicationObject = null;
+ }
+
+ ///
+ /// Implements the OnAddInsUpdate method of the IDTExtensibility2 interface.
+ /// Receives notification that the collection of Add-ins has changed.
+ ///
+ ///
+ /// Array of parameters that are host application specific.
+ ///
+ ///
+ public void OnAddInsUpdate(ref System.Array custom)
+ {
+ }
+
+ ///
+ /// Implements the OnStartupComplete method of the IDTExtensibility2 interface.
+ /// Receives notification that the host application has completed loading.
+ ///
+ ///
+ /// Array of parameters that are host application specific.
+ ///
+ ///
+ ///
+ private office.CommandBarButton btn_open_partner;
+ private office.CommandBarButton btn_open_document;
+ private office.CommandBarButton btn_open_configuration_form;
+ private office.CommandBars oCommandBars;
+ private office.CommandBar menuBar;
+ private office.CommandBarPopup newMenuBar;
+
+ public int countMail()
+ {
+ /*
+
+ * Gives the number of selected mail.
+ * returns: Number of selected mail.
+
+ */
+ cnt_mail = 0;
+ Microsoft.Office.Interop.Outlook.Application app = null;
+
+ app = new Microsoft.Office.Interop.Outlook.Application();
+ foreach (var selection in app.ActiveExplorer().Selection)
+ {
+ cnt_mail = app.ActiveExplorer().Selection.Count;
+ }
+
+ return cnt_mail;
+ }
+
+ public void OnStartupComplete(ref System.Array custom)
+ {
+ /*
+
+ * When outlook is opened it loads a Menu if Outlook plugin is installed.
+ * OpenERP - > Push, Partner ,Documents, Configuration
+
+ */
+ Microsoft.Office.Interop.Outlook.Application app = null;
+ try
+ {
+ app = new Microsoft.Office.Interop.Outlook.Application();
+ object omissing = System.Reflection.Missing.Value;
+ menuBar = app.ActiveExplorer().CommandBars.ActiveMenuBar;
+ ConfigManager config = new ConfigManager();
+ config.LoadConfigurationSetting();
+ OpenERPOutlookPlugin openerp_outlook = Cache.OpenERPOutlookPlugin;
+ OpenERPConnect openerp_connect = openerp_outlook.Connection;
+ try
+ {
+ if (openerp_connect.URL != null && openerp_connect.DBName != null && openerp_connect.UserId != null && openerp_connect.pswrd != "")
+ {
+ string decodpwd = Tools.DecryptB64Pwd(openerp_connect.pswrd);
+ openerp_connect.Login(openerp_connect.DBName, openerp_connect.UserId, decodpwd);
+ }
+ }
+ catch(Exception )
+ {
+ MessageBox.Show("Unable to connect remote Server ' " + openerp_connect.URL + " '.", "OpenERP Connection",MessageBoxButtons.OK,MessageBoxIcon.Exclamation);
+ }
+ newMenuBar = (office.CommandBarPopup)menuBar.Controls.Add(office.MsoControlType.msoControlPopup, omissing, omissing, omissing, true);
+ if (newMenuBar != null)
+ {
+ newMenuBar.Caption = "OpenERP";
+ newMenuBar.Tag = "My";
+
+ btn_open_partner = (office.CommandBarButton)newMenuBar.Controls.Add(office.MsoControlType.msoControlButton, omissing, omissing, 1, true);
+ btn_open_partner.Style = office.MsoButtonStyle.msoButtonIconAndCaption;
+ btn_open_partner.Caption = "Contact";
+ //Face ID will use to show the ICON in the left side of the menu.
+ btn_open_partner.FaceId = 3710;
+ newMenuBar.Visible = true;
+ btn_open_partner.Click += new Microsoft.Office.Core._CommandBarButtonEvents_ClickEventHandler(this.btn_open_partner_Click);
+
+ btn_open_document = (office.CommandBarButton)newMenuBar.Controls.Add(office.MsoControlType.msoControlButton, omissing, omissing, 2, true);
+ btn_open_document.Style = office.MsoButtonStyle.msoButtonIconAndCaption;
+ btn_open_document.Caption = "Documents";
+ //Face ID will use to show the ICON in the left side of the menu.
+ btn_open_document.FaceId = 258;
+ newMenuBar.Visible = true;
+ btn_open_document.Click += new Microsoft.Office.Core._CommandBarButtonEvents_ClickEventHandler(this.btn_open_document_Click);
+
+ btn_open_configuration_form = (office.CommandBarButton)newMenuBar.Controls.Add(office.MsoControlType.msoControlButton, omissing, omissing, 3, true);
+ btn_open_configuration_form.Style = office.MsoButtonStyle.msoButtonIconAndCaption;
+ btn_open_configuration_form.Caption = "Configuration";
+ //Face ID will use to show the ICON in the left side of the menu.
+ btn_open_configuration_form.FaceId = 5644;
+ newMenuBar.Visible = true;
+ btn_open_configuration_form.Click += new Microsoft.Office.Core._CommandBarButtonEvents_ClickEventHandler(this.btn_open_configuration_form_Click);
+
+ }
+
+ }
+ catch (Exception)
+ {
+ object oActiveExplorer;
+ oActiveExplorer = applicationObject.GetType().InvokeMember("ActiveExplorer", BindingFlags.GetProperty, null, applicationObject, null);
+ oCommandBars = (office.CommandBars)oActiveExplorer.GetType().InvokeMember("CommandBars", BindingFlags.GetProperty, null, oActiveExplorer, null);
+ }
+
+
+ }
+
+ void btn_open_configuration_form_Click(Microsoft.Office.Core.CommandBarButton Ctrl, ref bool CancelDefault)
+ {
+ frm_openerp_configuration frm_config = new frm_openerp_configuration();
+ frm_config.Show();
+
+ }
+
+
+ public static bool isLoggedIn()
+ {
+ /*
+
+ * This will check that it is connecting with server or not.
+ * If wrong server name or port is given then it will throw the message.
+ * returns true If conneted with server, otherwise False.
+
+ */
+ if (Cache.OpenERPOutlookPlugin == null || Cache.OpenERPOutlookPlugin.isLoggedIn == false)
+ {
+ throw new Exception("OpenERP Server is not connected!\nPlease connect OpenERP Server from Configuration Menu.");
+
+ }
+ return true;
+ }
+
+ public static void handleException(Exception e)
+ {
+ string Title;
+ if (Form.ActiveForm != null)
+ {
+ Title = Form.ActiveForm.Text;
+ }
+ else
+ {
+ Title = "OpenERP Addin";
+ }
+ MessageBox.Show(e.Message, Title, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
+ }
+ public static void displayMessage(string message)
+ {
+ string Title;
+ if (Form.ActiveForm != null)
+ {
+ Title = Form.ActiveForm.Text;
+ }
+ else
+ {
+ Title = "OpenERP Addin";
+ }
+ MessageBox.Show(message, Title, MessageBoxButtons.OK, MessageBoxIcon.Information);
+ }
+ public void CheckMailCount()
+ {
+ if (countMail() == 0)
+ {
+ throw new Exception("No email selected.\nPlease select one email.");
+ }
+ if (countMail() > 1)
+ {
+ throw new Exception("Multiple selction is not allowed.\nPlease select only one email.");
+ }
+
+ }
+
+ void btn_open_partner_Click(Microsoft.Office.Core.CommandBarButton Ctrl, ref bool CancelDefault)
+ {
+ try
+ {
+ Connect.isLoggedIn();
+ this.CheckMailCount();
+ if (countMail() == 1)
+ {
+
+ foreach (outlook.MailItem mailitem in Tools.MailItems())
+ {
+
+ Object[] contact = Cache.OpenERPOutlookPlugin.RedirectPartnerPage(mailitem);
+ if ((int)contact[1] > 0)
+ {
+ Cache.OpenERPOutlookPlugin.RedirectWeb(contact[2]);
+ }
+ else
+ {
+ frm_contact contact_form = new frm_contact(mailitem.SenderName, mailitem.SenderEmailAddress);
+ contact_form.Show();
+ }
+
+ }
+ }
+
+ }
+ catch (Exception e)
+ {
+ Connect.handleException(e);
+ }
+
+ }
+
+ void btn_open_document_Click(Microsoft.Office.Core.CommandBarButton Ctrl, ref bool CancelDefault)
+ {
+ try
+ {
+ Connect.isLoggedIn();
+ this.CheckMailCount();
+ if (countMail() == 1)
+ {
+ frm_choose_document_opt frm_doc = new frm_choose_document_opt();
+ }
+ }
+ catch (Exception e)
+ {
+ Connect.handleException(e);
+ }
+
+ }
+
+
+ public void OnBeginShutdown(ref System.Array custom)
+ {
+ }
+ private object applicationObject;
+ private object addInInstance;
+ }
+}
diff --git a/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/OpenERPOutlookPlugin.cs b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/OpenERPOutlookPlugin.cs
new file mode 100644
index 00000000000..cf1578d903b
--- /dev/null
+++ b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/OpenERPOutlookPlugin.cs
@@ -0,0 +1,223 @@
+/*
+
+ OpenERP, Open Source Business Applications
+ Copyright (c) 2011 OpenERP S.A.
+
+ 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 .
+*/
+
+
+using System;
+using System.Collections;
+using System.Linq;
+using OpenERPClient;
+using outlook = Microsoft.Office.Interop.Outlook;
+using System.Windows.Forms;
+namespace OpenERPOutlookPlugin
+{
+
+ public class OpenERPOutlookPlugin : Model
+ {
+ public Boolean isLoggedIn
+ {
+ /*
+
+ * This will check that user is logged in or not and gets the value
+ * returns : True if loggedIn, False otherwise.
+
+ */
+ get
+ {
+ if (this.Connection != null) { return this.Connection.isLoggedIn; }
+ return false;
+ }
+ }
+
+ public OpenERPOutlookPlugin(OpenERPConnect connection)
+ {
+ this.Connection = connection;
+ //this.set_server_method();
+ }
+
+ public Record[] SearchRecord(string name,string model)
+ {
+ /*
+ * Gives name and model for search record.
+ */
+ ArrayList object_list = new ArrayList();
+ Model parent_model;
+ parent_model = new Model(model);
+ ArrayList args = new ArrayList();
+ args.Add(parent_model.model);
+ if (name != null)
+ {
+ args.Add(name);
+ }
+ else
+ {
+ args.Add("");
+ }
+ object[] objects = (object[])this.openerp_connect.Execute("plugin.handler", "list_document_get", args.ToArray());
+ foreach (object obj in objects)
+ {
+ Hashtable document = new Hashtable();
+ object[] names = (object[])obj;
+ document.Add("id", names[0].ToString());
+ document.Add("name", names[1].ToString());
+ object_list.Add(new Record(document,parent_model));
+ }
+ return (Record[])object_list.ToArray(typeof(Record));
+ }
+
+ public string Name_get(outlook.MailItem mail)
+ {
+
+ string email = Tools.GetHeader(mail);
+ object doc = this.openerp_connect.Execute("plugin.handler", "document_get", email);
+ object[] name = (object[])doc;
+ return name[3].ToString();
+
+ }
+
+ public void RedirectWeb(object web_url)
+ {
+ /*
+ * Will open the url into the web browser.
+ */
+
+ System.Diagnostics.Process.Start(web_url.ToString());
+ }
+
+
+ public object[] RedirectPartnerPage(outlook.MailItem mail)
+ {
+ /*
+
+ * Will Redirect to the web-browser and open partner.
+ * If it will not found partner in res.partner.address (in contact) then
+ it will open the contact form to create a partner.
+ :Param outlook.MailItem mailItem : Outlook Mail item
+ */
+ string email_id = mail.SenderEmailAddress.ToString();
+ Object[] contact = (Object[])this.openerp_connect.Execute("plugin.handler", "partner_get", email_id);
+ return contact;
+
+ }
+
+ public void Open_Document(outlook.MailItem mail)
+ {
+ /*
+ * To open document attached in a url.returns the model_id and res_id of the document
+ :Param outlook.MailItem mail: Outlook mails.
+ */
+
+ string email = Tools.GetHeader(mail);
+ object doc = this.openerp_connect.Execute("plugin.handler", "document_get", email);
+ object[] url = (object[])doc;
+ this.RedirectWeb(url[2].ToString());
+ }
+
+ public Boolean PushMail(outlook.MailItem mail, string model, int thread_id)
+ {
+ /*
+
+ * This will push the mail as per the selected items from the list.
+ :Param outlook.MailItem mail: selected mail from the outlook.
+ :Param string model : Model name to push.
+ :Param int thread_id : Thread id of the mail.
+ * If mail pushed successfully then it returns true.
+ * return False if mail Already Exist.
+
+ */
+ OpenERPOutlookPlugin openerp_outlook = Cache.OpenERPOutlookPlugin;
+ OpenERPConnect openerp_connect = openerp_outlook.Connection;
+ ArrayList args = new ArrayList();
+ Hashtable vals = new Hashtable();
+ string email = Tools.GetHeader(mail); //TODO: Outlook.MailItem Should be Converted into MIME Message
+ args.Add(model);
+ args.Add(email.ToString());
+ args.Add(thread_id);
+ Hashtable attachments = Tools.GetAttachments(mail);
+ args.Add(mail.Body);
+ args.Add(mail.HTMLBody);
+ args.Add(attachments);
+ object push_mail = this.Connection.Execute("plugin.handler", "push_message_outlook", args.ToArray());
+ object[] push = (object[])push_mail;
+ this.RedirectWeb(push[2].ToString());
+ return true;
+
+ }
+ public long CreatePartnerRecord(string name)
+ {
+ /*
+
+ * Creates a partner record in res.partner as per the name given in the plugin form.
+ :Param String name: Name given to create a partner in the database.
+ * Returns a Long value : Partner id.
+
+ */
+ Record[] partenr_list = this.SearchRecord(name,"res.partner");
+ int partner_id = 0;
+ foreach (Record partner in partenr_list)
+ {
+ partner_id = Convert.ToInt16(partner.id);
+ }
+
+ return partner_id;
+ }
+ public void CreateContactRecord(int partner_id, string name, string email_id)
+ {
+ /*
+
+ * Creates a Contact record in the res.partner.address as per the details given in the
+ plugin form of openERP outlook Plugin.
+ :Param string partner_id : Partner id for which it creates a contact
+ :Param string name : Contact name
+ :Param string email_id : Email address
+
+ */
+ Hashtable values = new Hashtable();
+ values.Add("name", name);
+ values.Add("email", email_id);
+ ArrayList args = new ArrayList();
+ args.Add(values);
+ args.Add(partner_id);
+ object[] contact = (object[])this.openerp_connect.Execute("plugin.handler", "contact_create", args.ToArray());
+ this.RedirectWeb(contact[2].ToString());
+
+ }
+
+ public Model[] GetMailModels()
+ {
+ /*
+
+ * function to get objects to display in combo box
+ * returns the Array list of models.
+
+ */
+ ArrayList obj_list = new ArrayList();
+ object mail_models = this.Connection.Execute("plugin.handler", "document_type");
+ foreach (object model in (object[])mail_models)
+ {
+ Model open_model;
+ string[] models = (string[])model;
+ open_model = new Model(models[0], models[1]);
+ open_model.Connection = this.Connection;
+ obj_list.Add(open_model);
+ }
+ return (Model[])obj_list.ToArray(typeof(Model));
+ }
+ }
+
+}
\ No newline at end of file
diff --git a/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/OpenERPOutlookPlugin.csproj b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/OpenERPOutlookPlugin.csproj
new file mode 100644
index 00000000000..8fbcb0a2ec4
--- /dev/null
+++ b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/OpenERPOutlookPlugin.csproj
@@ -0,0 +1,278 @@
+
+
+
+ Debug
+ AnyCPU
+ 9.0.21022
+ 2.0
+ {F4B2219B-F235-400F-81B4-92F15250BBA4}
+ Library
+
+
+ false
+ OpenERPOutlookPlugin
+ OpenERPOutlookPlugin
+ v3.5
+
+
+
+
+ 3.5
+ publish\
+ true
+ Disk
+ false
+ Foreground
+ 7
+ Days
+ false
+ false
+ true
+ 0
+ 1.0.0.%2a
+ false
+ false
+ true
+
+
+ true
+ false
+ .\bin\Debug\
+ false
+ DEBUG;TRACE
+ 4
+ false
+ true
+ AllRules.ruleset
+
+
+ false
+ true
+ .\bin\Release\
+ false
+ TRACE
+ 4
+ false
+ true
+ AllRules.ruleset
+
+
+
+ ..\CookComputing.XmlRpcV2.dll
+
+
+
+ System.dll
+ System
+
+
+ 3.5
+
+
+ System.Data.dll
+ System.Data
+
+
+
+ 3.5
+
+
+
+
+ System.XML.dll
+ System.XML
+
+
+
+
+ Code
+
+
+
+
+ Form
+
+
+ frm_contact.cs
+
+
+ Form
+
+
+ frm_create_doc.cs
+
+
+ Form
+
+
+ frm_openerp_connection.cs
+
+
+ Form
+
+
+ frm_push_mail.cs
+
+
+ Form
+
+
+ frm_select_partner.cs
+
+
+ Form
+
+
+ frm_choose_document_opt.cs
+
+
+
+ True
+ True
+ Resources.resx
+
+
+
+ Code
+
+
+ Form
+
+
+ frm_openerp_configuration.cs
+
+
+ True
+ True
+ Settings.settings
+
+
+
+
+ frm_contact.cs
+ Designer
+
+
+ frm_create_doc.cs
+ Designer
+
+
+ frm_openerp_configuration.cs
+ Designer
+
+
+ frm_openerp_connection.cs
+ Designer
+
+
+ frm_push_mail.cs
+ Designer
+
+
+ frm_select_partner.cs
+ Designer
+
+
+ frm_choose_document_opt.cs
+ Designer
+
+
+ ResXFileCodeGenerator
+ Resources.Designer.cs
+ Designer
+
+
+
+
+ SettingsSingleFileGenerator
+ Settings.Designer.cs
+
+
+
+
+ {2DF8D04C-5BFA-101B-BDE5-00AA0044DE52}
+ 2
+ 4
+ 0
+ primary
+ False
+
+
+ {00062FFF-0000-0000-C000-000000000046}
+ 9
+ 3
+ 0
+ primary
+ False
+
+
+ {00020430-0000-0000-C000-000000000046}
+ 2
+ 0
+ 0
+ primary
+ False
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {8E62B8DF-E3A2-4429-A820-FB8A31C2EB00}
+ OpenERPClient
+
+
+
+
+ False
+ .NET Framework 3.5 SP1 Client Profile
+ false
+
+
+ False
+ .NET Framework 3.5 SP1
+ true
+
+
+ False
+ Windows Installer 3.1
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/OpenERPOutlookPlugin.csproj.user b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/OpenERPOutlookPlugin.csproj.user
new file mode 100644
index 00000000000..be11fa35423
--- /dev/null
+++ b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/OpenERPOutlookPlugin.csproj.user
@@ -0,0 +1,12 @@
+
+
+ C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\
+ C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\devenv.exe
+ Program
+
+
+ C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\
+ C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\devenv.exe
+ Program
+
+
\ No newline at end of file
diff --git a/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Properties/Resources.Designer.cs b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Properties/Resources.Designer.cs
new file mode 100644
index 00000000000..5135996facd
--- /dev/null
+++ b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Properties/Resources.Designer.cs
@@ -0,0 +1,119 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Runtime Version:2.0.50727.1433
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+namespace OpenERPOutlookPlugin.Properties {
+ using System;
+
+
+ ///
+ /// A strongly-typed resource class, for looking up localized strings, etc.
+ ///
+ // This class was auto-generated by the StronglyTypedResourceBuilder
+ // class via a tool like ResGen or Visual Studio.
+ // To add or remove a member, edit your .ResX file then rerun ResGen
+ // with the /str option, or rebuild your VS project.
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ internal class Resources {
+
+ private static global::System.Resources.ResourceManager resourceMan;
+
+ private static global::System.Globalization.CultureInfo resourceCulture;
+
+ [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+ internal Resources() {
+ }
+
+ ///
+ /// Returns the cached ResourceManager instance used by this class.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Resources.ResourceManager ResourceManager {
+ get {
+ if (object.ReferenceEquals(resourceMan, null)) {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("OpenERPOutlookPlugin.Properties.Resources", typeof(Resources).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ ///
+ /// Overrides the current thread's CurrentUICulture property for all
+ /// resource lookups using this strongly typed resource class.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Globalization.CultureInfo Culture {
+ get {
+ return resourceCulture;
+ }
+ set {
+ resourceCulture = value;
+ }
+ }
+
+ internal static System.Drawing.Bitmap _195737_152643643962_3595480_n {
+ get {
+ object obj = ResourceManager.GetObject("195737_152643643962_3595480_n", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ internal static System.Drawing.Bitmap Archive {
+ get {
+ object obj = ResourceManager.GetObject("Archive", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ internal static System.Drawing.Bitmap Create {
+ get {
+ object obj = ResourceManager.GetObject("Create", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ internal static System.Drawing.Bitmap Error {
+ get {
+ object obj = ResourceManager.GetObject("Error", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ internal static System.Drawing.Bitmap MoveDown {
+ get {
+ object obj = ResourceManager.GetObject("MoveDown", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ internal static System.Drawing.Bitmap MoveLeft {
+ get {
+ object obj = ResourceManager.GetObject("MoveLeft", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ internal static System.Drawing.Bitmap Search {
+ get {
+ object obj = ResourceManager.GetObject("Search", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ internal static System.Drawing.Bitmap Success {
+ get {
+ object obj = ResourceManager.GetObject("Success", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+ }
+}
diff --git a/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Properties/Resources.resx b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Properties/Resources.resx
new file mode 100644
index 00000000000..c43e150f921
--- /dev/null
+++ b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Properties/Resources.resx
@@ -0,0 +1,145 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+
+ ..\Resources\MoveLeft.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\Archive.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\Create.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\Success.gif;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\195737_152643643962_3595480_n.jpg;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\Error.gif;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\Search.gif;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\MoveDown.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
\ No newline at end of file
diff --git a/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Properties/Settings.Designer.cs b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Properties/Settings.Designer.cs
new file mode 100644
index 00000000000..125ba326671
--- /dev/null
+++ b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Properties/Settings.Designer.cs
@@ -0,0 +1,26 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Runtime Version:2.0.50727.3053
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+namespace OpenERPOutlookPlugin.Properties {
+
+
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "9.0.0.0")]
+ internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
+
+ private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
+
+ public static Settings Default {
+ get {
+ return defaultInstance;
+ }
+ }
+ }
+}
diff --git a/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Properties/Settings.settings b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Properties/Settings.settings
new file mode 100644
index 00000000000..15034e76c4c
--- /dev/null
+++ b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Properties/Settings.settings
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Resources/195737_152643643962_3595480_n.jpg b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Resources/195737_152643643962_3595480_n.jpg
new file mode 100644
index 00000000000..610defc9232
Binary files /dev/null and b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Resources/195737_152643643962_3595480_n.jpg differ
diff --git a/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Resources/Account.ico b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Resources/Account.ico
new file mode 100644
index 00000000000..acea3ab0169
Binary files /dev/null and b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Resources/Account.ico differ
diff --git a/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Resources/Account.png b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Resources/Account.png
new file mode 100644
index 00000000000..b13f2b0f523
Binary files /dev/null and b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Resources/Account.png differ
diff --git a/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Resources/Archive.png b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Resources/Archive.png
new file mode 100644
index 00000000000..5aa6a958d37
Binary files /dev/null and b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Resources/Archive.png differ
diff --git a/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Resources/Case.png b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Resources/Case.png
new file mode 100644
index 00000000000..9b950b8ea9d
Binary files /dev/null and b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Resources/Case.png differ
diff --git a/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Resources/Contact.png b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Resources/Contact.png
new file mode 100644
index 00000000000..9bd6f9f6059
Binary files /dev/null and b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Resources/Contact.png differ
diff --git a/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Resources/Create.png b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Resources/Create.png
new file mode 100644
index 00000000000..1ab240c32cb
Binary files /dev/null and b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Resources/Create.png differ
diff --git a/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Resources/Error.gif b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Resources/Error.gif
new file mode 100644
index 00000000000..38c3523781b
Binary files /dev/null and b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Resources/Error.gif differ
diff --git a/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Resources/Invoice.png b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Resources/Invoice.png
new file mode 100644
index 00000000000..4551107ec3b
Binary files /dev/null and b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Resources/Invoice.png differ
diff --git a/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Resources/Move.gif b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Resources/Move.gif
new file mode 100644
index 00000000000..401bf861213
Binary files /dev/null and b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Resources/Move.gif differ
diff --git a/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Resources/MoveDown.png b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Resources/MoveDown.png
new file mode 100644
index 00000000000..3761ff1e747
Binary files /dev/null and b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Resources/MoveDown.png differ
diff --git a/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Resources/MoveLeft.png b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Resources/MoveLeft.png
new file mode 100644
index 00000000000..031d7532673
Binary files /dev/null and b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Resources/MoveLeft.png differ
diff --git a/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Resources/OpenERP_icon.ico b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Resources/OpenERP_icon.ico
new file mode 100644
index 00000000000..8f6dc9edabc
Binary files /dev/null and b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Resources/OpenERP_icon.ico differ
diff --git a/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Resources/Partner.png b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Resources/Partner.png
new file mode 100644
index 00000000000..c661339598e
Binary files /dev/null and b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Resources/Partner.png differ
diff --git a/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Resources/Product.png b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Resources/Product.png
new file mode 100644
index 00000000000..51451e422ae
Binary files /dev/null and b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Resources/Product.png differ
diff --git a/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Resources/Project.png b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Resources/Project.png
new file mode 100644
index 00000000000..0f8ea2af8f5
Binary files /dev/null and b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Resources/Project.png differ
diff --git a/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Resources/Sale.png b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Resources/Sale.png
new file mode 100644
index 00000000000..1b0b44f890e
Binary files /dev/null and b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Resources/Sale.png differ
diff --git a/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Resources/Search.gif b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Resources/Search.gif
new file mode 100644
index 00000000000..b29c3cf1054
Binary files /dev/null and b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Resources/Search.gif differ
diff --git a/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Resources/Success.gif b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Resources/Success.gif
new file mode 100644
index 00000000000..fb3bff729c5
Binary files /dev/null and b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Resources/Success.gif differ
diff --git a/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Resources/Task.png b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Resources/Task.png
new file mode 100644
index 00000000000..52056b1e713
Binary files /dev/null and b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Resources/Task.png differ
diff --git a/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Resources/developped_by.png b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Resources/developped_by.png
new file mode 100644
index 00000000000..e4004e3d178
Binary files /dev/null and b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Resources/developped_by.png differ
diff --git a/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Resources/logo.png b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Resources/logo.png
new file mode 100644
index 00000000000..d6dbd9d83d1
Binary files /dev/null and b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Resources/logo.png differ
diff --git a/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Resources/openerp.png b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Resources/openerp.png
new file mode 100644
index 00000000000..326798df2ec
Binary files /dev/null and b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Resources/openerp.png differ
diff --git a/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Resources/perform.gif b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Resources/perform.gif
new file mode 100644
index 00000000000..16cc3873858
Binary files /dev/null and b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Resources/perform.gif differ
diff --git a/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Resources/settings.png b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Resources/settings.png
new file mode 100644
index 00000000000..ad0298af667
Binary files /dev/null and b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Resources/settings.png differ
diff --git a/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Tools.cs b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Tools.cs
new file mode 100644
index 00000000000..5d102c73dd2
--- /dev/null
+++ b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Tools.cs
@@ -0,0 +1,173 @@
+/*
+ OpenERP, Open Source Business Applications
+ Copyright (c) 2011 OpenERP S.A.
+
+ 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 .
+*/
+
+
+using System;
+using System.Collections;
+using System.Drawing;
+using System.IO;
+using outlook = Microsoft.Office.Interop.Outlook;
+
+
+namespace OpenERPOutlookPlugin
+{
+ static public class Tools
+ {
+ static public outlook.MailItem[] MailItems()
+ {
+ Microsoft.Office.Interop.Outlook.Application app = null;
+ app = new Microsoft.Office.Interop.Outlook.Application();
+ ArrayList mailItems = new ArrayList();
+ foreach (var selection in app.ActiveExplorer().Selection)
+ {
+ if (selection is outlook.MailItem)
+ {
+ mailItems.Add((outlook.MailItem)selection);
+ }
+ }
+ return (outlook.MailItem[])mailItems.ToArray(typeof(outlook.MailItem));
+ }
+
+ static public string[] SplitURL(string url)
+ {
+ /*
+
+ * Split the url in three parts protocal host and port number.
+ :Param string url : url to split.
+ * returnts the string array which contains the protocol, host name and port number.
+
+ */
+ string protocall = "";
+ string host = "localhost";
+ string port = "8069";
+ if (url != "")
+ {
+ string[] server = url.Split("://".ToCharArray());
+ protocall = server[0];
+
+ host = server[3];
+ port = "";
+ if (server.Length > 4) port = server[4];
+ }
+ return new string[] { protocall, host, port };
+
+ }
+ static public string JoinURL(string host, string port, bool ssl)
+ {
+ /*
+
+ * Join the url as per the host, port and protocols are given.
+ :Param string host : host name
+ :Param string port : port number
+ :Param boolean ssl : protocol
+ * reruns a string url combination of host, port and protocol.
+
+ */
+ string protocall = "http";
+ if (ssl) protocall = "https";
+ string url = protocall + "://" + host;
+ if (port != "") url += ":" + port;
+ return url;
+ }
+ static public Hashtable GetAttachments(outlook.MailItem mail)
+ {
+ /*
+
+ * Gets the attachments of selected mail of outlook mail items.
+ :Param outlook.MailItem mail : gives the selected mail item from the outlook.
+ * returns the hashtable (dictionary) value of the attachemts.
+ */
+ System.IO.FileStream inFile;
+ Hashtable attach = new Hashtable();
+ string[] strattch = new string[4];
+ foreach (outlook.Attachment attach1 in mail.Attachments)
+ {
+ string filename = Tools.GetAppFolderPath() + attach1.FileName;
+ attach1.SaveAsFile(filename);
+ inFile = new System.IO.FileStream(filename, System.IO.FileMode.Open, System.IO.FileAccess.Read);
+ byte[] datas = new Byte[inFile.Length];
+ long bytesRead = inFile.Read(datas, 0, (int)inFile.Length);
+ inFile.Close();
+ string fdata = System.Convert.ToBase64String(datas);
+ attach.Add(attach1.FileName, fdata);
+ strattch[0] = attach1.FileName;
+ System.IO.File.Delete(filename);
+ }
+ return attach;
+ }
+ static public string GetAppFolderPath()
+ {
+ /*
+
+ * Gets the path of Applicaion folder.
+ * returns String value of file path.
+
+ */
+ string filePath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
+ filePath = System.IO.Path.Combine(filePath, "OpenERPOutlook");
+ if (!Directory.Exists(filePath))
+ {
+ Directory.CreateDirectory(filePath);
+ }
+ return filePath;
+ }
+
+ static public string GetMessageId(outlook.MailItem mail)
+ {
+ var propertyAccessor = mail.PropertyAccessor;
+ string message_id = propertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x1035001E").ToString();
+ return message_id;
+ }
+ static public string GetHeader(outlook.MailItem mail)
+ {
+ var propertyAccessor = mail.PropertyAccessor;
+ //string HEADERS = propertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/string/{3f0a69e0-7f56-11d2-b536-00aa00bbb6e6}/urn:schemas:httpmail:content-disposition-type").ToString();
+ string HEADERS = propertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x007D001E").ToString();
+ return HEADERS;
+
+ }
+
+ static public string EncryptB64Pwd(string pwd)
+ {
+ /*
+
+ * Accepts the string password and encrypt it into the base64 format.
+ :Param string pwd : A normal string Password.
+ * returns the encrypted base64 passwod from the normal string value.
+
+ */
+ byte[] encbuff = System.Text.Encoding.UTF8.GetBytes(pwd);
+ string encodepwd = Convert.ToBase64String(encbuff);
+ return "[" + encodepwd + "]";
+
+ }
+ static public string DecryptB64Pwd(string pwd)
+ {
+ /*
+
+ * Accept the base64 fromat string value and decrypt it to normal string.
+ :Param : string pwd : A base64 value password.
+ * returns the decrypted string value from the base64 value.
+ */
+ string pswd = pwd.Substring(1, (pwd.Length - 2));
+ byte[] decbuff = Convert.FromBase64String(pswd);
+ string decodpwd = System.Text.Encoding.UTF8.GetString(decbuff);
+ return decodpwd;
+ }
+ }
+}
diff --git a/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/frm_choose_document_opt.Designer.cs b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/frm_choose_document_opt.Designer.cs
new file mode 100644
index 00000000000..396ed9ef0f9
--- /dev/null
+++ b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/frm_choose_document_opt.Designer.cs
@@ -0,0 +1,137 @@
+namespace OpenERPOutlookPlugin
+{
+ partial class frm_choose_document_opt
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(frm_choose_document_opt));
+ this.btn_doc = new System.Windows.Forms.Button();
+ this.btn_cncl = new System.Windows.Forms.Button();
+ this.btn_push = new System.Windows.Forms.Button();
+ this.btn_newdoc = new System.Windows.Forms.Button();
+ this.lbl_docname = new System.Windows.Forms.Label();
+ this.SuspendLayout();
+ //
+ // btn_doc
+ //
+ this.btn_doc.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.btn_doc.Image = global::OpenERPOutlookPlugin.Properties.Resources.Archive;
+ this.btn_doc.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
+ this.btn_doc.Location = new System.Drawing.Point(31, 146);
+ this.btn_doc.Name = "btn_doc";
+ this.btn_doc.Size = new System.Drawing.Size(169, 32);
+ this.btn_doc.TabIndex = 0;
+ this.btn_doc.Text = "&Open an existing Document";
+ this.btn_doc.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
+ this.btn_doc.UseVisualStyleBackColor = true;
+ this.btn_doc.Click += new System.EventHandler(this.btn_doc_Click);
+ //
+ // btn_cncl
+ //
+ this.btn_cncl.Anchor = System.Windows.Forms.AnchorStyles.None;
+ this.btn_cncl.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.btn_cncl.Image = global::OpenERPOutlookPlugin.Properties.Resources.Error;
+ this.btn_cncl.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
+ this.btn_cncl.Location = new System.Drawing.Point(463, 146);
+ this.btn_cncl.Name = "btn_cncl";
+ this.btn_cncl.Size = new System.Drawing.Size(105, 32);
+ this.btn_cncl.TabIndex = 1;
+ this.btn_cncl.Text = "&Cancel";
+ this.btn_cncl.UseVisualStyleBackColor = true;
+ this.btn_cncl.Click += new System.EventHandler(this.btn_cncl_Click);
+ //
+ // btn_push
+ //
+ this.btn_push.Anchor = System.Windows.Forms.AnchorStyles.None;
+ this.btn_push.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.btn_push.Image = ((System.Drawing.Image)(resources.GetObject("btn_push.Image")));
+ this.btn_push.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
+ this.btn_push.Location = new System.Drawing.Point(231, 146);
+ this.btn_push.Name = "btn_push";
+ this.btn_push.Size = new System.Drawing.Size(199, 32);
+ this.btn_push.TabIndex = 2;
+ this.btn_push.Text = "P&ush to an existing Document";
+ this.btn_push.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
+ this.btn_push.UseVisualStyleBackColor = true;
+ this.btn_push.Click += new System.EventHandler(this.btn_push_Click);
+ //
+ // btn_newdoc
+ //
+ this.btn_newdoc.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.btn_newdoc.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.btn_newdoc.Image = global::OpenERPOutlookPlugin.Properties.Resources.Create;
+ this.btn_newdoc.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
+ this.btn_newdoc.Location = new System.Drawing.Point(31, 146);
+ this.btn_newdoc.Name = "btn_newdoc";
+ this.btn_newdoc.Size = new System.Drawing.Size(169, 32);
+ this.btn_newdoc.TabIndex = 3;
+ this.btn_newdoc.Text = "Create a &new Document";
+ this.btn_newdoc.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
+ this.btn_newdoc.UseVisualStyleBackColor = true;
+ this.btn_newdoc.Click += new System.EventHandler(this.btn_newdoc_Click);
+ //
+ // lbl_docname
+ //
+ this.lbl_docname.Anchor = System.Windows.Forms.AnchorStyles.Top;
+ this.lbl_docname.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
+ this.lbl_docname.Font = new System.Drawing.Font("Microsoft Sans Serif", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lbl_docname.Location = new System.Drawing.Point(12, 20);
+ this.lbl_docname.Name = "lbl_docname";
+ this.lbl_docname.Size = new System.Drawing.Size(570, 94);
+ this.lbl_docname.TabIndex = 7;
+ this.lbl_docname.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ //
+ // frm_choose_document_opt
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(594, 204);
+ this.Controls.Add(this.lbl_docname);
+ this.Controls.Add(this.btn_newdoc);
+ this.Controls.Add(this.btn_push);
+ this.Controls.Add(this.btn_cncl);
+ this.Controls.Add(this.btn_doc);
+ this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Fixed3D;
+ this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
+ this.MaximizeBox = false;
+ this.Name = "frm_choose_document_opt";
+ this.Text = "Document";
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.Button btn_doc;
+ private System.Windows.Forms.Button btn_cncl;
+ private System.Windows.Forms.Button btn_push;
+ private System.Windows.Forms.Button btn_newdoc;
+ private System.Windows.Forms.Label lbl_docname;
+ }
+}
\ No newline at end of file
diff --git a/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/frm_choose_document_opt.cs b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/frm_choose_document_opt.cs
new file mode 100644
index 00000000000..e364922844b
--- /dev/null
+++ b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/frm_choose_document_opt.cs
@@ -0,0 +1,98 @@
+/*
+ OpenERP, Open Source Business Applications
+ Copyright (c) 2011 OpenERP S.A.
+
+ 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 .
+*/
+
+
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using OpenERPClient;
+using outlook = Microsoft.Office.Interop.Outlook;
+using System.Collections;
+
+namespace OpenERPOutlookPlugin
+{
+ public partial class frm_choose_document_opt : Form
+ {
+ public frm_choose_document_opt()
+ {
+ InitializeComponent();
+ try
+ {
+ foreach (outlook.MailItem mail in Tools.MailItems())
+ {
+
+ string name_get = Cache.OpenERPOutlookPlugin.Name_get(mail);
+ this.Show();
+ if (name_get != "")
+ {
+ lbl_docname.Text = name_get;
+ btn_newdoc.Visible = false;
+
+ }
+ else
+ {
+ lbl_docname.Text = mail.Subject;
+ btn_doc.Visible = false;
+ }
+ }
+
+ }
+ catch (Exception ex)
+ {
+ Connect.handleException(ex);
+ }
+
+ }
+
+ private void btn_doc_Click(object sender, EventArgs e)
+ {
+ foreach (outlook.MailItem mailitem in Tools.MailItems())
+ {
+ Cache.OpenERPOutlookPlugin.Open_Document(mailitem);
+
+ }
+ this.Close();
+ }
+
+
+ private void btn_push_Click(object sender, EventArgs e)
+ {
+ frm_push_mail frm_push_mail = new frm_push_mail();
+ frm_push_mail.Show();
+ this.Close();
+ }
+
+ private void btn_cncl_Click(object sender, EventArgs e)
+ {
+ this.Close();
+ }
+
+ private void btn_newdoc_Click(object sender, EventArgs e)
+ {
+ frm_create_doc create_doc = new frm_create_doc();
+ create_doc.Show();
+ this.Close();
+ }
+
+ }
+}
diff --git a/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/frm_choose_document_opt.resx b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/frm_choose_document_opt.resx
new file mode 100644
index 00000000000..bbe4f00b972
--- /dev/null
+++ b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/frm_choose_document_opt.resx
@@ -0,0 +1,153 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+
+
+ R0lGODlhEAAQAIMAAG3E8G2t10a17BaL0ymp6kq78SB7uHa75UCr4zSi4R12sxZmpTy08B6Z3n7J8AAA
+ ACH/C05FVFNDQVBFMi4wAwEBAAAh+QQBAAAPACwAAAAAEAAQAAAIZwAfCBxIsKDBgwgHBjCQsKCBAwwb
+ CjQAAEBEggsNaNQIgIBFhwEOiHTgQAABBg4uPjAQYMCABgROFiggIOVAli9lzhQgAMGCmwcSIBAwc6dP
+ jAqSKqV5tKGCnj8lPo0qMQBViVizBgQAOw==
+
+
+
+
+ AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAACAgICAAAAKwAAAGw8PDykT09Pu1BQULpAQEChAAAAYgAAAB0AAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAFBQUNAAAAanFxcdygoaH/l5eX/5OTk/+ZmJj/o6Kj/6alpv93d3jbCAgIVwkJ
+ CQMAAAAAAAAAAAAAAAAHBwcKIyQkhLCwr/2IiIv+Q0NH/zc4PP9KSlD/b29w/3l5eP+VlJX/srKy/rCw
+ sf87OztxEBAQAgAAAAD///8ADQ0NYMfGxf5lZXv+BwdS/hISdv8MDGb/EBBw/wgIUf8rK0D/X19g/4yM
+ jP7CwsL+xsbG/ywsLEYAAAAAAAAAFqioqdykpLn+ERGH/hsbo/8vMEj/srK5/4OEpP8cHJr/GRmh/w8P
+ Qv9RUVP/nJuc/trZ2f69vb7aAAAAAiQkI1D49/X/YWGp/yUlzv8WFo3/bW1w/9vb2//x8O//oqPH/yUl
+ xv8jI87/Dw9C/2loaP/Ly8v/8vLy/3FxcD2jo6OR/////1tbyf8uLuf/HByh/2VlaP/e3t7//f39////
+ //9dXc//LS3n/yIi0f8rKzj/pqal//7+/v/W1taEycnJqv////9wcOX/ODj3/ygoz/9ERE3/xMTE//v7
+ +//+/v//09Pz/zMz8v80NPn/EBBx/4KCgf/09PT/7e3to9bW1qn/////oqL6/0JC//9BQf//Hx9G/5aW
+ lP/u7u7///////////9MTPf/Ojr8/yIivv9hYWv/7u7u//X19aTY2NmI//////Hx/P84OPD/QED7/xkZ
+ kf9iYmb/xcXF//r6+v//////fX3n/zc3+/8pKdz/WVlm//Pz8//6+vmIvb29O//////////+jIzV/zMz
+ 6P8rK+H/KChP/4yMiv/X19f/+Pj4/42Nyf8pKev/ICDN/3JygP7/////9/f3PgAAAAD5+fnd/////v//
+ //9SUqn/JCTH/xUVmv9SUmn/pqaj/8nJxv9LS4H/Hh7P/w4Oj/7KytH+/v7+5QAAAAAAAAAA5OTkNP//
+ ///+/v7//////2Fhkv8PD4T/DQ1//yYmXP8xMVz/DAyA/xAQmf9iYob///////z8/DsAAAAAAAAAAAAA
+ AAD8/Pxc/v7+//7+/v7////+xcXL/0xMbP8ICEf/AAA+/xISS/6AgJD+//////7+/mgAAAAAAAAAAAAA
+ AAAAAAAAAAAAAPv7+zX+/v7m//////7+/v/////+/////v//////////////7P7+/j4AAAAA+fn5AAAA
+ AAAAAAAAAAAAAAAAAAD///8AAAAAAP7+/kj+/v6S/v7+s/7+/rT+/v6U/v7+TQAAAAAAAAAAAAAAAAAA
+ AAAAAAAA/D8AAPAPAADABwAAwAMAAIABAACAAQAAAAAAAAAAAAAAAAAAAAAAAIABAACAAQAAwAMAAOAH
+ AADwDwAA/D8AAA==
+
+
+
\ No newline at end of file
diff --git a/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/frm_contact.cs b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/frm_contact.cs
new file mode 100644
index 00000000000..e984c8d711b
--- /dev/null
+++ b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/frm_contact.cs
@@ -0,0 +1,77 @@
+/*
+ OpenERP, Open Source Business Applications
+ Copyright (c) 2011 OpenERP S.A.
+
+ 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 .
+*/
+
+
+using System;
+using System.Collections;
+using System.Windows.Forms;
+using OpenERPClient;
+
+namespace OpenERPOutlookPlugin
+{
+ public partial class frm_contact : Form
+ {
+
+ public frm_contact()
+ {
+ InitializeComponent();
+ }
+
+ public frm_contact(string contact_name, string email_id)
+ {
+ InitializeComponent();
+ txt_contactname_create_contact.Text = contact_name;
+ txtemail.Text = email_id;
+
+ }
+
+ private void btncancel_Click(object sender, EventArgs e)
+ {
+ this.Close();
+ }
+
+ private void btnCreate_partner_Click(object sender, EventArgs e)
+ {
+
+ try
+ {
+ Cache.OpenERPOutlookPlugin.CreateContactRecord(0, txt_contactname_create_contact.Text, txtemail.Text);
+ this.Close();
+ }
+ catch (Exception ex)
+ {
+ Connect.handleException(ex);
+ }
+ }
+
+ private void btnCancel_Click(object sender, EventArgs e)
+ {
+ this.Close();
+ }
+
+ private void btnLink_partner_Click(object sender, EventArgs e)
+ {
+ frm_select_partner select_partner = new frm_select_partner();
+ select_partner.parent_form = this;
+ select_partner.Show();
+ this.Close();
+ }
+
+
+ }
+}
diff --git a/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/frm_contact.designer.cs b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/frm_contact.designer.cs
new file mode 100644
index 00000000000..af6c4756875
--- /dev/null
+++ b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/frm_contact.designer.cs
@@ -0,0 +1,166 @@
+namespace OpenERPOutlookPlugin
+{
+ partial class frm_contact
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(frm_contact));
+ this.btnCancel = new System.Windows.Forms.Button();
+ this.btnCreate_partner = new System.Windows.Forms.Button();
+ this.groupBox1 = new System.Windows.Forms.GroupBox();
+ this.txtemail = new System.Windows.Forms.TextBox();
+ this.lblemail = new System.Windows.Forms.Label();
+ this.txt_contactname_create_contact = new System.Windows.Forms.TextBox();
+ this.lblname = new System.Windows.Forms.Label();
+ this.btnLink_partner = new System.Windows.Forms.Button();
+ this.groupBox1.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // btnCancel
+ //
+ this.btnCancel.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.btnCancel.Image = global::OpenERPOutlookPlugin.Properties.Resources.Error;
+ this.btnCancel.ImageAlign = System.Drawing.ContentAlignment.BottomLeft;
+ this.btnCancel.Location = new System.Drawing.Point(306, 127);
+ this.btnCancel.Name = "btnCancel";
+ this.btnCancel.Size = new System.Drawing.Size(70, 23);
+ this.btnCancel.TabIndex = 14;
+ this.btnCancel.Text = "&Cancel ";
+ this.btnCancel.TextAlign = System.Drawing.ContentAlignment.TopRight;
+ this.btnCancel.UseVisualStyleBackColor = true;
+ this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click);
+ //
+ // btnCreate_partner
+ //
+ this.btnCreate_partner.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.btnCreate_partner.Image = global::OpenERPOutlookPlugin.Properties.Resources.Success;
+ this.btnCreate_partner.ImageAlign = System.Drawing.ContentAlignment.TopLeft;
+ this.btnCreate_partner.Location = new System.Drawing.Point(189, 127);
+ this.btnCreate_partner.Name = "btnCreate_partner";
+ this.btnCreate_partner.Size = new System.Drawing.Size(109, 23);
+ this.btnCreate_partner.TabIndex = 15;
+ this.btnCreate_partner.Text = "Create &Partner";
+ this.btnCreate_partner.TextAlign = System.Drawing.ContentAlignment.TopRight;
+ this.btnCreate_partner.UseVisualStyleBackColor = true;
+ this.btnCreate_partner.Click += new System.EventHandler(this.btnCreate_partner_Click);
+ //
+ // groupBox1
+ //
+ this.groupBox1.Controls.Add(this.txtemail);
+ this.groupBox1.Controls.Add(this.lblemail);
+ this.groupBox1.Controls.Add(this.txt_contactname_create_contact);
+ this.groupBox1.Controls.Add(this.lblname);
+ this.groupBox1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.groupBox1.Location = new System.Drawing.Point(12, 9);
+ this.groupBox1.Name = "groupBox1";
+ this.groupBox1.Size = new System.Drawing.Size(369, 110);
+ this.groupBox1.TabIndex = 16;
+ this.groupBox1.TabStop = false;
+ this.groupBox1.Text = "Address Detail";
+ //
+ // txtemail
+ //
+ this.txtemail.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.txtemail.Location = new System.Drawing.Point(97, 66);
+ this.txtemail.Name = "txtemail";
+ this.txtemail.Size = new System.Drawing.Size(255, 20);
+ this.txtemail.TabIndex = 35;
+ //
+ // lblemail
+ //
+ this.lblemail.AutoSize = true;
+ this.lblemail.Location = new System.Drawing.Point(59, 69);
+ this.lblemail.Name = "lblemail";
+ this.lblemail.Size = new System.Drawing.Size(41, 13);
+ this.lblemail.TabIndex = 34;
+ this.lblemail.Text = "Email:";
+ //
+ // txt_contactname_create_contact
+ //
+ this.txt_contactname_create_contact.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.txt_contactname_create_contact.Location = new System.Drawing.Point(97, 26);
+ this.txt_contactname_create_contact.Name = "txt_contactname_create_contact";
+ this.txt_contactname_create_contact.Size = new System.Drawing.Size(255, 20);
+ this.txt_contactname_create_contact.TabIndex = 33;
+ //
+ // lblname
+ //
+ this.lblname.AutoSize = true;
+ this.lblname.Location = new System.Drawing.Point(9, 29);
+ this.lblname.Name = "lblname";
+ this.lblname.Size = new System.Drawing.Size(91, 13);
+ this.lblname.TabIndex = 27;
+ this.lblname.Text = "Contact Name:";
+ //
+ // btnLink_partner
+ //
+ this.btnLink_partner.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.btnLink_partner.Image = global::OpenERPOutlookPlugin.Properties.Resources.Search;
+ this.btnLink_partner.ImageAlign = System.Drawing.ContentAlignment.BottomLeft;
+ this.btnLink_partner.Location = new System.Drawing.Point(63, 127);
+ this.btnLink_partner.Name = "btnLink_partner";
+ this.btnLink_partner.Size = new System.Drawing.Size(118, 23);
+ this.btnLink_partner.TabIndex = 19;
+ this.btnLink_partner.Text = "&Link To Partner";
+ this.btnLink_partner.TextAlign = System.Drawing.ContentAlignment.TopRight;
+ this.btnLink_partner.UseVisualStyleBackColor = true;
+ this.btnLink_partner.Click += new System.EventHandler(this.btnLink_partner_Click);
+ //
+ // frm_contact
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(394, 159);
+ this.Controls.Add(this.btnLink_partner);
+ this.Controls.Add(this.groupBox1);
+ this.Controls.Add(this.btnCreate_partner);
+ this.Controls.Add(this.btnCancel);
+ this.Cursor = System.Windows.Forms.Cursors.Default;
+ this.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Fixed3D;
+ this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
+ this.MaximizeBox = false;
+ this.Name = "frm_contact";
+ this.Text = "Create Contact";
+ this.groupBox1.ResumeLayout(false);
+ this.groupBox1.PerformLayout();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.Button btnCancel;
+ private System.Windows.Forms.Button btnCreate_partner;
+ private System.Windows.Forms.GroupBox groupBox1;
+ private System.Windows.Forms.TextBox txt_contactname_create_contact;
+ private System.Windows.Forms.Label lblname;
+ private System.Windows.Forms.TextBox txtemail;
+ private System.Windows.Forms.Label lblemail;
+ private System.Windows.Forms.Button btnLink_partner;
+ }
+}
\ No newline at end of file
diff --git a/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/frm_contact.resx b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/frm_contact.resx
new file mode 100644
index 00000000000..9477f7baa89
--- /dev/null
+++ b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/frm_contact.resx
@@ -0,0 +1,180 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+
+
+ AAABAAEAICAAAAEAGACoDAAAFgAAACgAAAAgAAAAQAAAAAEAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAxO+0UHsorMtUkJMo6LOY5JN81HsdDLM4/JMdINcBISKJCSpA+RpM9SJo6RJsxPJg2PJ84PKU4OadA
+ Pbs7L8lANd8qJNUiJtIZKModMNcUJOIUHu0iJvsaIOUaJsQuQMkXHNcvNOciJsstLNAvItJSQekqG6xQ
+ QchYSNKOg/3Cw//Q2f/P1f/S2P/T3P/R2P+iqP+7vv9vct8zM6k0Lbg6NcwcGroyN9oiLs4eLdccKOQg
+ KvMkKfYaIuEbJsgnOMkdGuUeHd4+PeseHLxAONI9N7p4edSzt//W1v/k4//h6P/f5v/Dw/+2tf+1t/+0
+ tv/Kzv/Y3f/S1f/U2P/Fyf8iKJlOVNMtM8IuM9UjKtgdJd0aI98bJN8nMOUqNN8dKc0pIPMnIOUvK9g5
+ N8w4NLWGiObR4P/k9//k7//K0/+JkeRWW8I5N78uKcAvLL4wMrxCR8hTWNKOlP/a4v/Z4//W4v+Ai+cx
+ OaooKr4mJ88sLuAjKNsWIMwoMt4yOusZI9QnHO42Le8lIME+Pb2Dg+fk7//o///b9/ff8v+OnN5ET6sx
+ NrE3MdIyKdcvKsszNscxOL0uN7YkKqdvduPc6f/Y6v/f8P/F0v9PUMg1MMc0MNY4OOQlK9AdJs4iLN4c
+ J90sIucvKdovL7lcX8fm6v/q9v/m/vbl//yQocxRXa8jLp4sML83MeIsJNwnJsoxNckjLrRATNBARNIo
+ K6srN4/c7f/a7f/k8//Kzf9pZN0nHrQrJskyNNgkLNMbJdYgK+AxK9wxL8k+RK/N1f/s8v/r9v/Y6uvq
+ +/9UW6o2ObMlKbgpK88vKuMqJt0sL801PcwwP8QaJ7MjIsY1MdBDRL54gtDm9//Y6fzq8//AwP9jWdU0
+ KMAxLdIwMt4hLtgcLdc3NdsfIauFkODo9P/x+v/p8vzx/f+uteY7OKw2L8wtLtYpK90nKeIpKt4qLs0l
+ Lr4iML4yPdUrJ94xKN0yLMc3OKavuuzt+//c5vfv9P/Z0/9rYN8tJsMoKNIjL9UYK9A9Od4hJKS9y//n
+ 9//0///x9/z09v+dl+g8LsoyI+InJ98iKd4iKN8kKtspLdIpMM0qNdMcI8wpJucqH+c8L+kzKL5MTaXs
+ 8//0///w+v/x8f++uf8vKLM0M9YlL9MkNNoxK9Y2OLrc7P/t///4//f7///28v+EeNw8JtkuHu4kJuMe
+ Kd4gKd4iKdwpKdkpKdknK90gJNssKu4iGeUuH+wvIdM9MrCmpOr0/f/r9uz2/P/q7f+XlP8zMcYhKMsf
+ LNYmHtc4OsTk8v/x//73/+39//v28P99b9U7JdssHu4gKOAcK9seKd4iJ+ApJOUrIucmIegjIuYwMu8b
+ GtwiGOczJOowHsVYS7709P/5//r6//Xy/P/d4P87PbkiJMghJdspI+AvML7b6f/x//79//L+/vj68v+N
+ f+Q7J9crIeoeKtwZLtccKtwiJ+IrIeksH+0oHu0iH+YuNOsdItsdGuU3LPgzHt42I7XY0P/6/f/2/+np
+ +ejq8/92fN8rLcgqKeMsKuEyNcDc6f/z//////j///779P+Ngds7LM4rJeIcLdcXMNQbLNsiJ+IsIucu
+ IOouJOwhHt8lL+AfLNwaIuEtLPI0Juo1I8SajOr49f/1/+z4//Dt+//J0v8vLsAvKt8gJc44QMPj7//w
+ +f/8/Pz//P/88v9zabw7L8cpKdscL9QXMNIbLNsiKN8sJeIwJOIzK+QjJdcfK9cdLtsWJt0eJ+MuJ+Y5
+ K9B8bNzv5v/z+fT6//Ln9/3k7/8wMrYsJtEcK70yQbXj8P/w9//79P//+P/78P98csU5McQnK9gbL9QX
+ MNQbLNkkK9kuKtcyK9IxL88qL9EcKNQYKtsXK94YKNknK9g1L8pjVM3m2f/6+P/6//7j8fff7P9fYdcs
+ KsMsN88tOLHb5//z+//////89/n79f+kn+o5NL8nLNUbLtUVL9cbLNsiKtssKtgyK9QsJ8oyM9ceJtcV
+ JdwYLuQWLd0hLtYrL8MxK6LWzv/49//w9fbz///q9v+lqP83NrYjHNk7Oszk7f/d7ez9/+T8/9/2+v/e
+ 4P8wMKwyN9kLHMcgNukZKeAdJuIrJu0uIek1I+IyJOAlJeMbJuYQKOYQKuIXLtgkNcYmL5fm7v/z/P/1
+ /vv2///x9//Y1v9FQKMoHuM3M8+epO/x/f/7/+n9/+T4///f4f8xMqQxOM8WJNAZKt8aKuEaJeEhIOYw
+ Je01IeYzI+InJ98bKd8QKuIOKuIVKt8iMc4wOK/Axv/v9v/4/v/4/v/w8//o5/9APY0pKtg4Os5dX77t
+ 8P/19f/7+v/69v/t6P9OTrgxNsEoMtYWJdUfLt4bKNgdJNEwMNwzJ9kyKtUlMc0bM8sSMdQSLdwZJecl
+ JeM3Lc2Shvzq4//49v/4+v/q7v/s7f8/P40iKtEzOc5BQbXi3v/27v/48P/58v/z7v+OjesuMLQuMtcf
+ KN0iKuEcKNQkMckrMcowKtcsK9UkNcYbOMIVNskXMNQgJeUsJOM6Kc6Zhv/u5P/69//2+//t8//h4v9B
+ P5gbJdYiKcw3N8GLhOz06//79P/z8f/09f/Pzf80MK0qItMsJu8hIOYgJtcwQssjMLwrJ94pJuAiMssc
+ OcAbOMIeNccnLNUzLNBAMrXLvv/4+f/6//vy/frv+P+mpvpAOqkhL+YXIc0xMspEPrXZ0v/49P/6/f/2
+ /P/t7v9cWMIsIcswJO4kGugkJt82RNMiMb0nKtklKN4gMsseNsQgNcYlMsouLNI7L8dBM6Ps5f/5//76
+ //Hu/Pjs9f90btlIPckhMe8YI9gsLtAyLq+PjNzh4f/4///2//zv9/+lp/VFO80yI98tIe0tJustMNgo
+ M8skMssiM8ogNMkiMsskLdUrKNs1JtxALcpNPajy7f/y+/j4//Tt+f/o7f9OQspGM+AUKd8bKdslKNE4
+ NcY/OqOsqefz+f/0///v/P/n8f9hYsozLcI6L+MzK+ohHNUtMd4iMc4gMs0iLtQkKdwpIucwIec7JN5F
+ LsZrXbv08v/0//3z//7n8v/P0P8tH7swG9sYMdUaLNMpLNs0LdQ6LMBbTsGxrfTv9f/s/P/o/P/T5f89
+ S54jKKkwLNI4L/EpIukbINsmLOksJ/gmGvYrFPg6IPZEK99FMrevqPPw9f/k8Prt+//m7v97eOUxI8g0
+ IeIaL9EcLNMnKuAwKOEwINI8K8htYdeene3T3//k/P/J5PnK4/82Rp8uM7ciHcwnH+IsLe0aGuIdFO0x
+ H/4zHPQqFNE9L71jXL3s8f/e7P/q+//m9P+DiN0xLqw3LNY8LewiLdslLN8pKuYvJ+owH+UwHNk5Kc5F
+ Pb+Ume7N3v/d+f/R8P/G3/9FV7A5QcQwM9IqLdwjJd4xKuk8MuosJMUwLqp9hdLa6v/m/f/b9f/j9v+z
+ v/9ARLQrKLk5MdwfFc0oKuMoKeUoJeYoIuUsIusyJe0zJeEvJspBQMBMVLG1y//a9P/Y8f/C2f+Ek/o9
+ SsRATdEyPsYoL7oyN7hXW8uNmOrF2P/h+P/X8v/d9f+KmuYgKpU4OcVEQeQXEsE8N+wqIOksI+gnIuEg
+ H9kiI98tLOgvKuksJ94kIMU8PcsvN6hUYL6Jm+7W6P/E1f/T6P/F5f/R9P/U8P/U6//U5v/d7v/d7//Y
+ 6f+zw/9DULg1PMEtL8oSEL0uKuE6NO0nItsxIugyJ+kvKuMlKdshKNsgKd4hJeIhI+AzMegkIcosK8Ex
+ Nbk9Q7ouNqdmceFHV7e00P+du+yNpd+brO+uuv+epv9kac8rMKM9QsYeJbgoLc8yNuMsLeMoJ+EiHtsl
+ H9w4Ktw1K9wxL90rMd4hL9wZKdoXJdscJt4fI9k8POwnJM41MNM5NNMiGro1Lc5GQNswLbkuKrE2MLdE
+ O8hLPNM/L9A0JM8sIdEjIc8wNd4pNNYcKcsVHsUgJdQ0M+0uKeg1KNAuJs0oJ9EnLtkdLtkWKdgWKt0i
+ MOYeJ9wZGs4zLuMwJdktIdVFNuwvH9gxIdo8KdxBLd1AK9s9Jdc6H9o7IOI5H+40IO4lH+I3O/EQH8IZ
+ Lcg2ROQeJ88eHtYoI+QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
+
+
+
\ No newline at end of file
diff --git a/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/frm_create_doc.Designer.cs b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/frm_create_doc.Designer.cs
new file mode 100644
index 00000000000..88ed53cbe94
--- /dev/null
+++ b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/frm_create_doc.Designer.cs
@@ -0,0 +1,127 @@
+namespace OpenERPOutlookPlugin
+{
+ partial class frm_create_doc
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(frm_create_doc));
+ this.grp_create_bx = new System.Windows.Forms.GroupBox();
+ this.btn_main_close = new System.Windows.Forms.Button();
+ this.cmboboxcreate = new System.Windows.Forms.ComboBox();
+ this.btn_create_doc = new System.Windows.Forms.Button();
+ this.lbtypedoc = new System.Windows.Forms.Label();
+ this.grp_create_bx.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // grp_create_bx
+ //
+ this.grp_create_bx.Controls.Add(this.btn_main_close);
+ this.grp_create_bx.Controls.Add(this.cmboboxcreate);
+ this.grp_create_bx.Controls.Add(this.btn_create_doc);
+ this.grp_create_bx.Controls.Add(this.lbtypedoc);
+ this.grp_create_bx.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.grp_create_bx.Location = new System.Drawing.Point(12, 12);
+ this.grp_create_bx.Name = "grp_create_bx";
+ this.grp_create_bx.Size = new System.Drawing.Size(438, 104);
+ this.grp_create_bx.TabIndex = 0;
+ this.grp_create_bx.TabStop = false;
+ this.grp_create_bx.Text = "Create Document";
+ //
+ // btn_main_close
+ //
+ this.btn_main_close.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.btn_main_close.Image = global::OpenERPOutlookPlugin.Properties.Resources.Error;
+ this.btn_main_close.ImageAlign = System.Drawing.ContentAlignment.BottomLeft;
+ this.btn_main_close.Location = new System.Drawing.Point(353, 63);
+ this.btn_main_close.Name = "btn_main_close";
+ this.btn_main_close.Size = new System.Drawing.Size(63, 23);
+ this.btn_main_close.TabIndex = 9;
+ this.btn_main_close.Text = "&Close ";
+ this.btn_main_close.TextAlign = System.Drawing.ContentAlignment.TopRight;
+ this.btn_main_close.UseVisualStyleBackColor = true;
+ this.btn_main_close.Click += new System.EventHandler(this.btn_main_close_Click);
+ //
+ // cmboboxcreate
+ //
+ this.cmboboxcreate.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.cmboboxcreate.FormattingEnabled = true;
+ this.cmboboxcreate.Items.AddRange(new object[] {
+ ""});
+ this.cmboboxcreate.Location = new System.Drawing.Point(127, 30);
+ this.cmboboxcreate.Name = "cmboboxcreate";
+ this.cmboboxcreate.Size = new System.Drawing.Size(289, 21);
+ this.cmboboxcreate.TabIndex = 6;
+ //
+ // btn_create_doc
+ //
+ this.btn_create_doc.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.btn_create_doc.Image = global::OpenERPOutlookPlugin.Properties.Resources.Archive;
+ this.btn_create_doc.ImageAlign = System.Drawing.ContentAlignment.BottomLeft;
+ this.btn_create_doc.Location = new System.Drawing.Point(279, 63);
+ this.btn_create_doc.Name = "btn_create_doc";
+ this.btn_create_doc.Size = new System.Drawing.Size(68, 23);
+ this.btn_create_doc.TabIndex = 5;
+ this.btn_create_doc.Text = "&Create ";
+ this.btn_create_doc.TextAlign = System.Drawing.ContentAlignment.TopRight;
+ this.btn_create_doc.UseVisualStyleBackColor = true;
+ this.btn_create_doc.Click += new System.EventHandler(this.btn_create_doc_Click);
+ //
+ // lbtypedoc
+ //
+ this.lbtypedoc.AutoSize = true;
+ this.lbtypedoc.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lbtypedoc.Location = new System.Drawing.Point(6, 33);
+ this.lbtypedoc.Name = "lbtypedoc";
+ this.lbtypedoc.Size = new System.Drawing.Size(119, 13);
+ this.lbtypedoc.TabIndex = 4;
+ this.lbtypedoc.Text = "Type of Document :";
+ //
+ // frm_create_doc
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(462, 135);
+ this.Controls.Add(this.grp_create_bx);
+ this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Fixed3D;
+ this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
+ this.Name = "frm_create_doc";
+ this.Text = "Create new Document";
+ this.grp_create_bx.ResumeLayout(false);
+ this.grp_create_bx.PerformLayout();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.GroupBox grp_create_bx;
+ private System.Windows.Forms.ComboBox cmboboxcreate;
+ private System.Windows.Forms.Button btn_create_doc;
+ private System.Windows.Forms.Label lbtypedoc;
+ private System.Windows.Forms.Button btn_main_close;
+ }
+}
\ No newline at end of file
diff --git a/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/frm_create_doc.cs b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/frm_create_doc.cs
new file mode 100644
index 00000000000..d35e6524a68
--- /dev/null
+++ b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/frm_create_doc.cs
@@ -0,0 +1,79 @@
+/*
+ OpenERP, Open Source Business Applications
+ Copyright (c) 2011 OpenERP S.A.
+
+ 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 .
+*/
+
+
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using OpenERPClient;
+
+namespace OpenERPOutlookPlugin
+{
+ public partial class frm_create_doc : Form
+ {
+ public frm_create_doc()
+ {
+ InitializeComponent();
+
+ foreach (Model model in Cache.OpenERPOutlookPlugin.GetMailModels())
+ {
+ if (model.ToString() != "")
+ {
+ cmboboxcreate.Items.Add(model);
+ cmboboxcreate.Items.Remove("");
+ }
+ }
+ }
+
+ private void btn_create_doc_Click(object sender, EventArgs e)
+ {
+ try
+ {
+ if (cmboboxcreate.SelectedItem == null)
+ {
+ throw new Exception("Please select a document from the document list.");
+ }
+ else
+ {
+ frm_push_mail pushmail = new frm_push_mail();
+ Model model = (Model)cmboboxcreate.SelectedItem;
+ pushmail.push_mail(model.model, 0);
+ this.Close();
+ }
+
+ }
+
+ catch (Exception ex)
+ {
+
+ Connect.handleException(ex);
+ }
+
+ }
+
+ private void btn_main_close_Click(object sender, EventArgs e)
+ {
+ this.Close();
+ }
+ }
+}
diff --git a/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/frm_create_doc.resx b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/frm_create_doc.resx
new file mode 100644
index 00000000000..3c294eb0444
--- /dev/null
+++ b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/frm_create_doc.resx
@@ -0,0 +1,145 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+
+
+ AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAACAgICAAAAKwAAAGw8PDykT09Pu1BQULpAQEChAAAAYgAAAB0AAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAFBQUNAAAAanFxcdygoaH/l5eX/5OTk/+ZmJj/o6Kj/6alpv93d3jbCAgIVwkJ
+ CQMAAAAAAAAAAAAAAAAHBwcKIyQkhLCwr/2IiIv+Q0NH/zc4PP9KSlD/b29w/3l5eP+VlJX/srKy/rCw
+ sf87OztxEBAQAgAAAAD///8ADQ0NYMfGxf5lZXv+BwdS/hISdv8MDGb/EBBw/wgIUf8rK0D/X19g/4yM
+ jP7CwsL+xsbG/ywsLEYAAAAAAAAAFqioqdykpLn+ERGH/hsbo/8vMEj/srK5/4OEpP8cHJr/GRmh/w8P
+ Qv9RUVP/nJuc/trZ2f69vb7aAAAAAiQkI1D49/X/YWGp/yUlzv8WFo3/bW1w/9vb2//x8O//oqPH/yUl
+ xv8jI87/Dw9C/2loaP/Ly8v/8vLy/3FxcD2jo6OR/////1tbyf8uLuf/HByh/2VlaP/e3t7//f39////
+ //9dXc//LS3n/yIi0f8rKzj/pqal//7+/v/W1taEycnJqv////9wcOX/ODj3/ygoz/9ERE3/xMTE//v7
+ +//+/v//09Pz/zMz8v80NPn/EBBx/4KCgf/09PT/7e3to9bW1qn/////oqL6/0JC//9BQf//Hx9G/5aW
+ lP/u7u7///////////9MTPf/Ojr8/yIivv9hYWv/7u7u//X19aTY2NmI//////Hx/P84OPD/QED7/xkZ
+ kf9iYmb/xcXF//r6+v//////fX3n/zc3+/8pKdz/WVlm//Pz8//6+vmIvb29O//////////+jIzV/zMz
+ 6P8rK+H/KChP/4yMiv/X19f/+Pj4/42Nyf8pKev/ICDN/3JygP7/////9/f3PgAAAAD5+fnd/////v//
+ //9SUqn/JCTH/xUVmv9SUmn/pqaj/8nJxv9LS4H/Hh7P/w4Oj/7KytH+/v7+5QAAAAAAAAAA5OTkNP//
+ ///+/v7//////2Fhkv8PD4T/DQ1//yYmXP8xMVz/DAyA/xAQmf9iYob///////z8/DsAAAAAAAAAAAAA
+ AAD8/Pxc/v7+//7+/v7////+xcXL/0xMbP8ICEf/AAA+/xISS/6AgJD+//////7+/mgAAAAAAAAAAAAA
+ AAAAAAAAAAAAAPv7+zX+/v7m//////7+/v/////+/////v//////////////7P7+/j4AAAAA+fn5AAAA
+ AAAAAAAAAAAAAAAAAAD///8AAAAAAP7+/kj+/v6S/v7+s/7+/rT+/v6U/v7+TQAAAAAAAAAAAAAAAAAA
+ AAAAAAAA/D8AAPAPAADABwAAwAMAAIABAACAAQAAAAAAAAAAAAAAAAAAAAAAAIABAACAAQAAwAMAAOAH
+ AADwDwAA/D8AAA==
+
+
+
\ No newline at end of file
diff --git a/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/frm_openerp_configuration.Designer.cs b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/frm_openerp_configuration.Designer.cs
new file mode 100644
index 00000000000..547cdab9354
--- /dev/null
+++ b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/frm_openerp_configuration.Designer.cs
@@ -0,0 +1,334 @@
+namespace OpenERPOutlookPlugin
+{
+ partial class frm_openerp_configuration
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(frm_openerp_configuration));
+ this.btn_main_close = new System.Windows.Forms.Button();
+ this.tbabout = new System.Windows.Forms.TabPage();
+ this.groupBox3 = new System.Windows.Forms.GroupBox();
+ this.pictureBox1 = new System.Windows.Forms.PictureBox();
+ this.richTextBox1 = new System.Windows.Forms.RichTextBox();
+ this.tbconfigsetting = new System.Windows.Forms.TabPage();
+ this.pnconfig = new System.Windows.Forms.Panel();
+ this.chkpwd = new System.Windows.Forms.CheckBox();
+ this.txt_dbname = new System.Windows.Forms.TextBox();
+ this.combo_config_database = new System.Windows.Forms.ComboBox();
+ this.btn_openerp_connect = new System.Windows.Forms.Button();
+ this.txt_password = new System.Windows.Forms.TextBox();
+ this.txt_username = new System.Windows.Forms.TextBox();
+ this.btn_open_server_url_form = new System.Windows.Forms.Button();
+ this.txt_server_config = new System.Windows.Forms.TextBox();
+ this.lbn_password = new System.Windows.Forms.Label();
+ this.lbn_username = new System.Windows.Forms.Label();
+ this.lbn_dbname = new System.Windows.Forms.Label();
+ this.lbn_server = new System.Windows.Forms.Label();
+ this.tb1 = new System.Windows.Forms.TabControl();
+ this.tbabout.SuspendLayout();
+ this.groupBox3.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
+ this.tbconfigsetting.SuspendLayout();
+ this.pnconfig.SuspendLayout();
+ this.tb1.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // btn_main_close
+ //
+ this.btn_main_close.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.btn_main_close.Image = global::OpenERPOutlookPlugin.Properties.Resources.Error;
+ this.btn_main_close.ImageAlign = System.Drawing.ContentAlignment.BottomLeft;
+ this.btn_main_close.Location = new System.Drawing.Point(801, 420);
+ this.btn_main_close.Name = "btn_main_close";
+ this.btn_main_close.Size = new System.Drawing.Size(63, 23);
+ this.btn_main_close.TabIndex = 8;
+ this.btn_main_close.Text = "Close ";
+ this.btn_main_close.TextAlign = System.Drawing.ContentAlignment.TopRight;
+ this.btn_main_close.UseVisualStyleBackColor = true;
+ this.btn_main_close.Click += new System.EventHandler(this.btn_main_close_Click);
+ //
+ // tbabout
+ //
+ this.tbabout.Controls.Add(this.groupBox3);
+ this.tbabout.Location = new System.Drawing.Point(4, 22);
+ this.tbabout.Name = "tbabout";
+ this.tbabout.Padding = new System.Windows.Forms.Padding(3);
+ this.tbabout.Size = new System.Drawing.Size(434, 315);
+ this.tbabout.TabIndex = 2;
+ this.tbabout.Text = "About";
+ this.tbabout.UseVisualStyleBackColor = true;
+ //
+ // groupBox3
+ //
+ this.groupBox3.Controls.Add(this.pictureBox1);
+ this.groupBox3.Controls.Add(this.richTextBox1);
+ this.groupBox3.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.groupBox3.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.groupBox3.Location = new System.Drawing.Point(3, 3);
+ this.groupBox3.Name = "groupBox3";
+ this.groupBox3.Size = new System.Drawing.Size(428, 309);
+ this.groupBox3.TabIndex = 0;
+ this.groupBox3.TabStop = false;
+ this.groupBox3.Text = "OpenERP Outlook Plugin";
+ //
+ // pictureBox1
+ //
+ this.pictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox1.Image")));
+ this.pictureBox1.Location = new System.Drawing.Point(109, 92);
+ this.pictureBox1.Name = "pictureBox1";
+ this.pictureBox1.Size = new System.Drawing.Size(194, 50);
+ this.pictureBox1.TabIndex = 1;
+ this.pictureBox1.TabStop = false;
+ //
+ // richTextBox1
+ //
+ this.richTextBox1.BorderStyle = System.Windows.Forms.BorderStyle.None;
+ this.richTextBox1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.richTextBox1.Location = new System.Drawing.Point(3, 16);
+ this.richTextBox1.Name = "richTextBox1";
+ this.richTextBox1.ReadOnly = true;
+ this.richTextBox1.Size = new System.Drawing.Size(422, 290);
+ this.richTextBox1.TabIndex = 0;
+ this.richTextBox1.Text = resources.GetString("richTextBox1.Text");
+ this.richTextBox1.LinkClicked += new System.Windows.Forms.LinkClickedEventHandler(this.richTextBox1_LinkClicked);
+ //
+ // tbconfigsetting
+ //
+ this.tbconfigsetting.Controls.Add(this.pnconfig);
+ this.tbconfigsetting.Location = new System.Drawing.Point(4, 22);
+ this.tbconfigsetting.Name = "tbconfigsetting";
+ this.tbconfigsetting.Padding = new System.Windows.Forms.Padding(3);
+ this.tbconfigsetting.Size = new System.Drawing.Size(434, 315);
+ this.tbconfigsetting.TabIndex = 0;
+ this.tbconfigsetting.Text = "Configuration Settings";
+ this.tbconfigsetting.UseVisualStyleBackColor = true;
+ //
+ // pnconfig
+ //
+ this.pnconfig.Controls.Add(this.chkpwd);
+ this.pnconfig.Controls.Add(this.txt_dbname);
+ this.pnconfig.Controls.Add(this.combo_config_database);
+ this.pnconfig.Controls.Add(this.btn_openerp_connect);
+ this.pnconfig.Controls.Add(this.txt_password);
+ this.pnconfig.Controls.Add(this.txt_username);
+ this.pnconfig.Controls.Add(this.btn_open_server_url_form);
+ this.pnconfig.Controls.Add(this.txt_server_config);
+ this.pnconfig.Controls.Add(this.lbn_password);
+ this.pnconfig.Controls.Add(this.lbn_username);
+ this.pnconfig.Controls.Add(this.lbn_dbname);
+ this.pnconfig.Controls.Add(this.lbn_server);
+ this.pnconfig.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.pnconfig.Location = new System.Drawing.Point(3, 3);
+ this.pnconfig.Name = "pnconfig";
+ this.pnconfig.Size = new System.Drawing.Size(428, 309);
+ this.pnconfig.TabIndex = 53;
+ //
+ // chkpwd
+ //
+ this.chkpwd.AutoSize = true;
+ this.chkpwd.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.chkpwd.Location = new System.Drawing.Point(105, 142);
+ this.chkpwd.Name = "chkpwd";
+ this.chkpwd.Size = new System.Drawing.Size(143, 17);
+ this.chkpwd.TabIndex = 67;
+ this.chkpwd.Text = "Remember Password";
+ this.chkpwd.UseVisualStyleBackColor = true;
+ //
+ // txt_dbname
+ //
+ this.txt_dbname.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.txt_dbname.Location = new System.Drawing.Point(105, 57);
+ this.txt_dbname.Name = "txt_dbname";
+ this.txt_dbname.Size = new System.Drawing.Size(269, 20);
+ this.txt_dbname.TabIndex = 58;
+ this.txt_dbname.Visible = false;
+ //
+ // combo_config_database
+ //
+ this.combo_config_database.AllowDrop = true;
+ this.combo_config_database.Location = new System.Drawing.Point(105, 57);
+ this.combo_config_database.Name = "combo_config_database";
+ this.combo_config_database.Size = new System.Drawing.Size(269, 21);
+ this.combo_config_database.TabIndex = 59;
+ //
+ // btn_openerp_connect
+ //
+ this.btn_openerp_connect.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.btn_openerp_connect.Image = global::OpenERPOutlookPlugin.Properties.Resources.Success;
+ this.btn_openerp_connect.ImageAlign = System.Drawing.ContentAlignment.BottomLeft;
+ this.btn_openerp_connect.Location = new System.Drawing.Point(295, 137);
+ this.btn_openerp_connect.Name = "btn_openerp_connect";
+ this.btn_openerp_connect.Size = new System.Drawing.Size(79, 23);
+ this.btn_openerp_connect.TabIndex = 62;
+ this.btn_openerp_connect.Text = "C&onnect ";
+ this.btn_openerp_connect.TextAlign = System.Drawing.ContentAlignment.TopRight;
+ this.btn_openerp_connect.UseVisualStyleBackColor = true;
+ this.btn_openerp_connect.Click += new System.EventHandler(this.btn_openerp_connect_Click);
+ //
+ // txt_password
+ //
+ this.txt_password.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.txt_password.Location = new System.Drawing.Point(105, 111);
+ this.txt_password.Name = "txt_password";
+ this.txt_password.PasswordChar = '*';
+ this.txt_password.Size = new System.Drawing.Size(269, 20);
+ this.txt_password.TabIndex = 61;
+ //
+ // txt_username
+ //
+ this.txt_username.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.txt_username.Location = new System.Drawing.Point(105, 84);
+ this.txt_username.Name = "txt_username";
+ this.txt_username.Size = new System.Drawing.Size(269, 20);
+ this.txt_username.TabIndex = 60;
+ //
+ // btn_open_server_url_form
+ //
+ this.btn_open_server_url_form.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.btn_open_server_url_form.Image = global::OpenERPOutlookPlugin.Properties.Resources.Search;
+ this.btn_open_server_url_form.ImageAlign = System.Drawing.ContentAlignment.BottomLeft;
+ this.btn_open_server_url_form.Location = new System.Drawing.Point(299, 28);
+ this.btn_open_server_url_form.Name = "btn_open_server_url_form";
+ this.btn_open_server_url_form.Size = new System.Drawing.Size(75, 23);
+ this.btn_open_server_url_form.TabIndex = 57;
+ this.btn_open_server_url_form.Text = "C&hange ";
+ this.btn_open_server_url_form.TextAlign = System.Drawing.ContentAlignment.TopRight;
+ this.btn_open_server_url_form.UseVisualStyleBackColor = true;
+ this.btn_open_server_url_form.Click += new System.EventHandler(this.btn_open_server_url_form_Click);
+ //
+ // txt_server_config
+ //
+ this.txt_server_config.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.txt_server_config.Location = new System.Drawing.Point(105, 30);
+ this.txt_server_config.Name = "txt_server_config";
+ this.txt_server_config.ReadOnly = true;
+ this.txt_server_config.Size = new System.Drawing.Size(186, 20);
+ this.txt_server_config.TabIndex = 56;
+ this.txt_server_config.TabStop = false;
+ this.txt_server_config.TextChanged += new System.EventHandler(this.txt_server_config_TextChanged);
+ //
+ // lbn_password
+ //
+ this.lbn_password.AutoSize = true;
+ this.lbn_password.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lbn_password.Location = new System.Drawing.Point(33, 114);
+ this.lbn_password.Name = "lbn_password";
+ this.lbn_password.Size = new System.Drawing.Size(69, 13);
+ this.lbn_password.TabIndex = 66;
+ this.lbn_password.Text = "Password :";
+ //
+ // lbn_username
+ //
+ this.lbn_username.AutoSize = true;
+ this.lbn_username.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lbn_username.Location = new System.Drawing.Point(34, 86);
+ this.lbn_username.Name = "lbn_username";
+ this.lbn_username.Size = new System.Drawing.Size(71, 13);
+ this.lbn_username.TabIndex = 65;
+ this.lbn_username.Text = "Username :";
+ //
+ // lbn_dbname
+ //
+ this.lbn_dbname.AutoSize = true;
+ this.lbn_dbname.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lbn_dbname.Location = new System.Drawing.Point(34, 57);
+ this.lbn_dbname.Name = "lbn_dbname";
+ this.lbn_dbname.Size = new System.Drawing.Size(69, 13);
+ this.lbn_dbname.TabIndex = 64;
+ this.lbn_dbname.Text = "Database :";
+ //
+ // lbn_server
+ //
+ this.lbn_server.AutoSize = true;
+ this.lbn_server.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lbn_server.Location = new System.Drawing.Point(34, 30);
+ this.lbn_server.Name = "lbn_server";
+ this.lbn_server.Size = new System.Drawing.Size(72, 13);
+ this.lbn_server.TabIndex = 63;
+ this.lbn_server.Text = "Server :";
+ //
+ // tb1
+ //
+ this.tb1.Controls.Add(this.tbconfigsetting);
+ this.tb1.Controls.Add(this.tbabout);
+ this.tb1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.tb1.Location = new System.Drawing.Point(0, 0);
+ this.tb1.Name = "tb1";
+ this.tb1.SelectedIndex = 0;
+ this.tb1.Size = new System.Drawing.Size(442, 341);
+ this.tb1.TabIndex = 40;
+ this.tb1.Tag = "";
+ //
+ // frm_openerp_configuration
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(442, 341);
+ this.Controls.Add(this.btn_main_close);
+ this.Controls.Add(this.tb1);
+ this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Fixed3D;
+ this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
+ this.MaximizeBox = false;
+ this.Name = "frm_openerp_configuration";
+ this.Text = "OpenERP Configuration";
+ this.Load += new System.EventHandler(this.frm_openerp_configuration_Load);
+ this.tbabout.ResumeLayout(false);
+ this.groupBox3.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
+ this.tbconfigsetting.ResumeLayout(false);
+ this.pnconfig.ResumeLayout(false);
+ this.pnconfig.PerformLayout();
+ this.tb1.ResumeLayout(false);
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.Button btn_main_close;
+ private System.Windows.Forms.TabPage tbabout;
+ private System.Windows.Forms.GroupBox groupBox3;
+ private System.Windows.Forms.PictureBox pictureBox1;
+ private System.Windows.Forms.RichTextBox richTextBox1;
+ private System.Windows.Forms.TabPage tbconfigsetting;
+ private System.Windows.Forms.Panel pnconfig;
+ private System.Windows.Forms.CheckBox chkpwd;
+ private System.Windows.Forms.TextBox txt_dbname;
+ private System.Windows.Forms.ComboBox combo_config_database;
+ private System.Windows.Forms.Button btn_openerp_connect;
+ private System.Windows.Forms.TextBox txt_password;
+ private System.Windows.Forms.TextBox txt_username;
+ private System.Windows.Forms.Button btn_open_server_url_form;
+ private System.Windows.Forms.TextBox txt_server_config;
+ private System.Windows.Forms.Label lbn_password;
+ private System.Windows.Forms.Label lbn_username;
+ private System.Windows.Forms.Label lbn_dbname;
+ private System.Windows.Forms.Label lbn_server;
+ private System.Windows.Forms.TabControl tb1;
+
+ }
+}
\ No newline at end of file
diff --git a/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/frm_openerp_configuration.cs b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/frm_openerp_configuration.cs
new file mode 100644
index 00000000000..f5f4909511d
--- /dev/null
+++ b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/frm_openerp_configuration.cs
@@ -0,0 +1,216 @@
+/*
+ OpenERP, Open Source Business Applications
+ Copyright (c) 2011 OpenERP S.A.
+
+ 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 .
+*/
+
+
+using System;
+using System.Drawing;
+using System.Windows.Forms;
+using System.Diagnostics;
+using OpenERPClient;
+
+namespace OpenERPOutlookPlugin
+{
+
+
+ public partial class frm_openerp_configuration : Form
+ {
+ public string combodb_val;
+ public string url;
+ private ConfigManager config_manager;
+
+ public frm_openerp_configuration()
+ {
+ InitializeComponent();
+
+ }
+
+ void load_dbname_list()
+ {
+ combo_config_database.Items.Clear();
+ OpenERPOutlookPlugin openerp_outlook = Cache.OpenERPOutlookPlugin;
+ OpenERPConnect openerp_connect = openerp_outlook.Connection;
+ try
+ {
+ if (openerp_connect.URL != null && openerp_connect.URL != "")
+ {
+ object[] res_dblist = openerp_connect.DBList();
+ foreach (var selection in res_dblist)
+ {
+ combo_config_database.Items.Add(selection);
+ }
+ }
+ }
+ catch
+ {
+ this.setdblist(openerp_connect.DBName);
+ }
+ }
+ public void setdblist(string dbname)
+ {
+ txt_dbname.Visible = true;
+ txt_dbname.Text = dbname;
+ combo_config_database.Visible = false;
+ }
+ private void frm_openerp_configuration_Load(object sender, EventArgs e)
+ {
+ try
+ {
+ this.config_manager = new ConfigManager();
+ this.config_manager.LoadConfigurationSetting();
+
+
+ OpenERPOutlookPlugin openerp_outlook = Cache.OpenERPOutlookPlugin;
+ OpenERPConnect openerp_connect = openerp_outlook.Connection;
+ if (this.txt_server_config.Text != "")
+ {
+ openerp_connect.URL = this.txt_server_config.Text;
+ }
+ if (openerp_connect.rempwd == true)
+ {
+ this.txt_password.Text = Tools.DecryptB64Pwd(openerp_connect.pswrd);
+ this.chkpwd.Checked = true;
+ }
+ if (openerp_connect.URL != null)
+ {
+ this.txt_server_config.Text = openerp_connect.URL;
+ this.txt_username.Text = openerp_connect.UserId;
+ try
+ {
+ object[] res_dblist = openerp_connect.DBList();
+ foreach (string selection in res_dblist)
+ {
+ if (openerp_connect.DBName != "" && selection == openerp_connect.DBName)
+ this.combo_config_database.SelectedText = openerp_connect.DBName;
+
+ }
+ this.load_dbname_list();
+ }
+ catch
+ {
+ this.setdblist(openerp_connect.DBName);
+ }
+
+ }
+
+
+ }
+ catch(Exception ex)
+ {
+ Connect.handleException(ex);
+ }
+
+ }
+
+ private void btn_main_close_Click(object sender, EventArgs e)
+ {
+ this.Close();
+ }
+
+ private void btn_openerp_connect_Click(object sender, EventArgs e)
+ {
+
+ try
+ {
+ url = txt_server_config.Text;
+ string dbname;
+ if (txt_dbname.Visible == true)
+ {
+ dbname = txt_dbname.Text;
+ }
+ else
+ {
+ dbname = combo_config_database.Text;
+ }
+ OpenERPOutlookPlugin openerp_outlook = Cache.OpenERPOutlookPlugin;
+ OpenERPConnect openerp_connect = openerp_outlook.Connection;
+ openerp_connect.URL = url;
+ openerp_connect.DBName = dbname;
+ openerp_connect.UserId = txt_username.Text;
+ openerp_connect.rempwd = chkpwd.Checked;
+ if (chkpwd.Checked)
+ {
+ openerp_connect.pswrd = Tools.EncryptB64Pwd(txt_password.Text);
+ }
+ else
+ openerp_connect.pswrd = "";
+ if (openerp_connect.Login(openerp_connect.DBName, openerp_connect.UserId, txt_password.Text) != 0)
+ {
+ openerp_outlook.Connection = openerp_connect;
+ Cache.OpenERPOutlookPlugin = openerp_outlook;
+ this.config_manager.SaveConfigurationSetting();
+
+ Connect.displayMessage("Successfully login to OpenERP.");
+ this.Close();
+ }
+
+ }
+ catch (Exception)
+ {
+ MessageBox.Show("Authentication Error!\nInvalid Database.", Form.ActiveForm.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
+ }
+
+ }
+
+ private void btn_open_server_url_form_Click(object sender, EventArgs e)
+ {
+ frm_openerp_connection openerp_connection = new frm_openerp_connection(this.txt_server_config);
+
+ openerp_connection.Show();
+
+ }
+
+ private void txt_server_config_TextChanged(object sender, EventArgs e)
+ {
+ try
+ {
+ OpenERPOutlookPlugin openerp_outlook = Cache.OpenERPOutlookPlugin;
+ OpenERPConnect openerp_connect = openerp_outlook.Connection;
+ openerp_connect.URL = txt_server_config.Text;
+ this.combo_config_database.Text = "";
+ this.txt_dbname.Text = "";
+ try
+ {
+ openerp_connect.DBList();
+ this.load_dbname_list();
+ if (txt_dbname.Visible)
+ txt_dbname.Visible = false;
+ combo_config_database.Visible = true;
+ }
+ catch
+ {
+ if (combo_config_database.Visible)
+ combo_config_database.Visible = false;
+ this.txt_dbname.Visible = true;
+ }
+ this.txt_username.Text = "";
+ this.txt_password.Text = "";
+ }
+ catch (Exception ex)
+ {
+ Connect.handleException(ex);
+ }
+ }
+
+ private void richTextBox1_LinkClicked(object sender, LinkClickedEventArgs e)
+ {
+ System.Diagnostics.Process.Start("http://www.openerp.com",e.LinkText);
+ }
+ }
+
+}
+
diff --git a/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/frm_openerp_configuration.resx b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/frm_openerp_configuration.resx
new file mode 100644
index 00000000000..ff190785fec
--- /dev/null
+++ b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/frm_openerp_configuration.resx
@@ -0,0 +1,455 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAAL4AAAAuCAYAAACWEqPeAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAFERJREFUeF7tnWus
+ VcUVx9vEL37zm59M4web1tKIzxqx1JKQlNaQ2MSm1NpGTUhpKWithlLbWqKmvtAYn41W4rsG0JJiLbX4
+ AIpWqYAvRLgCl/cFvPeC78d0fsP5b9eZO3P23oeDveUekp19z95rr1mz5j9r1mP25vPOuc91/3U1MOI0
+ APC7R1cHIw0DXdB3J/6IxMCI7PRIs27d/g5d0bvA71r8EYmBEdnprgXsxjRd4Hct/ojEQEc63f/aa65v
+ /jy3/eab3NYrZrltf7jK7bz9Vrd78T/d3p07vYE9tCzMypUr3WWXXebGjRvnrrvuutL+PfLII+7KK690
+ W7dubaJ9+eWX3VlnneWOOuooN2bMGHfqqad27Dj22GPdueee617zY5PT/6JFi0K7o0aNqt3+ySef7MaO
+ HesmTpzopk2b5u67774h/asy7jfecIMbPXq0g187/T/zzDNDP+GzfPny0rGQTG0Df3DjRrfjzj+6jZO+
+ 59Yd/1X3xpePceuO+4pbd+LocOb3G6O+5DZO/HaYCP2rV1UWqorCOknT39/vdmzf7vbs2ZOVcf369e7y
+ yy8Pg33kkUe6ww47jAKIO/roo91TTz0VngPcDB5gBgiS8aKLLgq0M2bMGML/jjvuCPy43+njxBNOcC++
+ +GJLvSPT4YcffkBtowt4HHPMMW7SpElu8eLFDp1WGSP0Cnilz3Z1QPvocfz48e6WW25xu3fvbtl+beDv
+ 3bUrAHndSaP3g90Dfdv117g9y5a6gTfecIObNrqBta+73Yv+7nqnTN4/AaDzk4PVoIoyPiua3t5eN3Pm
+ zGBxjzjiiHDWwFkZnnvuOYcFTQ0KA3b++ecHqxPfP/vss93s2bPDwE6dOjUAg0lhee/0KyLX2h3wVs8B
+ /BUrVrTU+erVq4PF73T76HHDhg2VxvuBBx4I+u+kDOj6iSeeyLZfC/iA+80J4wtr3jt9qhvcti3LfK+3
+ oLg8Aj8rwKbJF1RSxsEG/9q1a92ECROyYAa0WCPkuPrqqw9oUAA9fJhAskqySLg/TIxODrp4VQE+EyM3
+ qQ9UJqyvdNhqPO+5556OAx/ZWQW0GsftVwb+rgV/Ca5LAPGxX3SAvgo4WSGw9IXl927QlhmXVnq2Cv92
+ aACd3I9Wg4sbw7KJRW9Fd8kllwQF4+ak6LB+khPXg5UFl4lryJICPhME4HLgA9c58JflepT5vTng4/sj
+ tw4Mgf2Nb3/GGWcE+VpZa4xGmdsxZ86cITxYSVlFiR8wHPbg2uTJk4M86A4Zcu4ausCNbQv4u/+x6FOr
+ 7UGP1d83MFAZvLg/co2YAOtPO8Xteebpys+3A+5Wzzz++OMdsbC4CAwAvr2W9QULFjhAwqTRYAAMrFoM
+ flYcBiXlJl188cUHpJ/nn38+gCVn8SRLDviPPvpo5fb7+voc7goTOp74rCatAmzkSAEf3fX09FSWYY0P
+ 4hmLOFbgN4mI2sAfWL+uCbQErvjvdcC4d8cOt9mvENbl6f35T2vxqNNeK1qsD6BqZcGxtvjdZAqWLFni
+ Nm3aFICLlWb55h7KfOihhwJwcZvuuusut3pVcwDPc7fddlvw7ZkcVi4CQLk9TJRYHlakTvW5FZ8c8G1w
+ XlUOnkkF6rh4rXjkgF82YVI8Wali8KP/2sDv/dlPmqz9hrO/W3tA8PW333D9p3y81e/55ljH9apK7RQd
+ 1omAFuUooGU5BHykJnEN4uzORp/BIiVJGtPKsWzZMnfNNdc47r/00kthoqyKwA89bRLExn2YO3ducLlI
+ i8bAnz59+meimxdeeCHp4997772129/m471UvMAkbwf4r776am0Z0GcMfFaPWsB/6z8rmsCKj7/z/voK
+ AeCkPguLj7sz5lT31vP/TnYMemIKAuEdt948hGbf4GB4duusy93Gc38QznsTflxK2ft8zLHl4T+7Z8+Z
+ 5J75+hi36pzvu76SFezp2de7u79wVAjUY55Y+1c8eAbmz3VPnn6ae+aC82pNaFYM/OX/lcXvJPA3vPlm
+ WN3ivpTFGTmL3w7wMSIx8HE7awEfQDWB9ZQTHPn7utY3CXzv5xM7xLz6V77oNnowql3qAJaGeKFpFWrU
+ C5C1lVy4W9tvvMH1nHx8qDP0nnic2+TjFQ6u7bxnzpDnSc8y+US36bwfDQH1vmeXh1oF8kIH350PPVhZ
+ R7msDgHcEN343Dj5cR26T3B9++23V27T8s0Bvx1XB3cuDnQBHYW6dix+HR+fVRr3M+Xjo5/KwAcob37n
+ W01uDsWquqCHPqQ15/ypeRJ97SS362+PFfyCO+Qrv3ai8Te1ALVJOpUgmdoBK4albZUmfcu7Lz3jx4Vs
+ FG3Ajwm0+cJpn04wv3KwknCPwD2kYT29bQN623/qF7G8yGX7VaavHPABEKDBgnJOHdxTQEn2qayt1P0c
+ 8HHDqvLDMuM+prI7gDGVVbG8c1kdXM+77747HMRQOvhN4Y+MEQU4sjupwJqVB9crVU/IpjP75j5cVGSV
+ wmy3ABVA7a1t0+phMjuDvpC0+RcXup6xpzmsqi16bbv26jAABNRkg2SZ9zz1ZBM/XJ7UQO3664KCjsKb
+ pdn12MJPge8nNXIO+qILvJCFswU/fQgT2fvrWy79ZYhTSM32fOP0gg8xEFs4qoKmU3n8O++8s3KbVrYc
+ 8AEMbgMpS4J6e+gaaUQAl6u6wqOKu5IC/oHWEPR8bgJngR+sobV4+PcP3t+WcgNQPEAs8AEWrgSDgHsj
+ S9z/6isFHdYTd4jMEilUwK5BYwsEll88mTAx2IgDtJ0CQMbFNvYX6XncJ55/y7suAvieJc8U2y+CJfcT
+ BRpArxVmcMuW8Lf4xKtC2QQYrsA/UOCR6o2TATldHAzgMxlJNuTazAI/uAaN7Qbad9Nu7h3AWUsOP4Cc
+ EgqwqV1oCLBZDfp8QGrpY+CTLrX3adNOtjgGCLGCT6nSFn1N9c3WL7D+PMME7Z06pWiLyVVUsz0vTeAy
+ wOt+DvhkInAdyg7VCkibVm2zisVvF/ikM3F74g15rWTrJPABPPUR0tCt2swCv9hopr02PiDs9ym7dpSL
+ K2PdAbJDgDnmhY+969H5RXWYGEO7PYdYc++327pA7Ibh1+s+LomtPeDS4PYE0PuVJ+eTs8KJx5Zf/ypM
+ Pqy7zSBZVyqsCgv/WktHOeBPmTIlVDzxjzdv3pw8uAcNleWbbtofu9Q9cq4OFpuaBe6ODn7j5qSqpMQb
+ 1DrKqrQp+XI+PpVw237qb2QiFY2+8PtJK1fRQR74jR2X1t/G5ajCdAhIvVVs8u8JbBMACRvgZl9XAJ/J
+ l/XdNUEalWC7IhCc2kAZN0eBKytI8N39c6wSbKjL9Yn4QpVmVixWiDgTZWMX2hlYs6aWjnLAr1PAokaQ
+ qhNUGasc8OfNm5ftB1mSGPxY2qVLl9bqu+TrROW2Sl8tTWVXBxC2A/xgXQXmxuoRpyglECuDdYmCj5/I
+ scc8cTUs4IgdBG6Au+GsiSHFCHBpGxeobPUa8Dnpwnf3sQ7ZpNiNwb+XuxQyUBX3L9kByAF/uBewCHZj
+ d4jMU1WLa3XQycpt1QmQBX7wj01wC/DLwJJqFDDb1CMASuXMeRbAWtpUwBro/MpDarUITE3Kk/tYdbs3
+ iIkBaHF/ZPnLFESQixtU1BP8KhEXyYb49zfdWNviDVfg271FKV2xDQGgx+Bn3xFbNcr0WwX4VTJCddqp
+ ZPFZ0i148MtTBadWDYf8vS8MFW4OBaMf/zCrFPL0ol3vi2Xk/lP8bUU5+NXe7bF0+OxNfBLFqTKFFbFG
+ YzdqqoIcdqw2VjFSrX0+dVrGN77//wp8+pEqWDER6tYUOlm5rar/rMXHMtoKKtY/zoOXNYIFVzqR53E5
+ cq8ixkUuAtJUPjyuCaQmkp1sqYlRJjd9V/ALsHGPSLnGz9n9RyF/71OxZbyrAj/1tlZd3gBz4cL9Kdjc
+ kfPxyyy++KW2VOPvl+0KHbYWH8FsgQfgAsaqrsI+H3BZf50MDcWh3ACQftx8ycVNhaAUbb8vf8sdIg0Z
+ g43AFutcZeWAPylKXBbbL1wpK7ty/FaeQZ9pIa1p3S1b+a26AS9n8SkMkbGIMytlWQ7u8wwb7wAgO0gP
+ JvDZq5Tan0Nx6/XX84mDYQ18hKNY05Q2/N1vSq0aG8GKoM9PmJAD94FgqwEgmNQWCeIJ0ocxfcj6NLYJ
+ BCuc2QMSb4+Ic/zwDSuMT1fCRwUrtYfLtd5nntTv+D50uFt2SwfpWXhu9fqhiFX1JftOFbByr0XyfkA7
+ wK+zO5M0Ymq7Au8DsGOzbKVKvYFF1og99mXPtnu/NO+LFWNQLfi3zJzhCFrjRrG2xAG4NNDj5mjLQZmA
+ BM42FsDNssC2e3kCsPwkyPHk6w42fYocTKQ9/1oW0qgUs6grICcFs5gPGaBixSCGSPjutNEUAzUSAewt
+ YhKX9Vf32bJ8sN65BTxlwM+9c1tnrw59IahNbV2YNWtWaaqVVSmeOMjObs+qeqxLVwp8GAJ+rCiuThM4
+ vSVnoEn74eMWL6A3Xi+s+mWFULgygaJtA8uLS8OZI67gpjrMBrutv/9tc+XZVKFxlXJ8wvYKP0kkA5Mj
+ FWuEANpkvZhIcZBdZTDYcHWwvrLAKjB/fnPgH8vEJrJUQYqi0JoaNQk2iuX27OB25Xx+VgS2ZaeeJUYp
+ 2+BWRccpmkrA14NYWSz61quuCOlEAMlkIF1IkIklxaLi/9YRCLDZYBJXB8DpgDfpyDp8cbeCK+PlRD7O
+ uCHI3ypOwSXj3QEqwQA5N3kHetaHekCoEXijUNW1sXph1yCfLFHlkVfnOnVggXE1Wn1eZIV/jwAaaON2
+ AWPZaqG+8DUDKqdUkFPyEwCzs5LVLcYFE5PnOOBhn2cylW1proMzS1sL+O02UvYcAabNy7e7/bmsne79
+ +lsaDlWdDQvgU3XV3iDOWOZDVeHdfg2PyTcsgN9UcMKP9+8CdAEyPAByqI5DKfApP7OvWv4ZZ35z2Dwt
+ f+u69mHHz0ITl7NtijLslqRwldhhp3bj3LCuW77QiE73OUse5EuV1SU/g237kmsz1oHlq7YEHP1Wu4Vc
+ jZfQA69GMMmGM+mQADPWKzxFEwegos9tWoOXfcaOp72OLGpXvHipPt5jLzni9lJy2LbFy/ZNvLhnJ5xo
+ +xq64sxzouNsZS/TAbxbAp+trrz7SQDGpika4ysCBCC6xutfMOJrA9Bw5uAaO/yg1U4/rse7/kiL2g1l
+ 5MZjKwNY4E2bVDQ1CalKwh++nFWltDJIXs6SR/R6r5SvAKiftAHQ4Udb0Mbvn1odQMMzyGT7qrboCy9b
+ S07pq5Cr8eUG7tNHDT6/eRb6WK8MtNWHQEfuXbSpd2YlB7z1TNl4apx51vZJYwQm4GcnKjqR7jQmcdvo
+ XOMgWundYiSFQbUpXUKvv8t0ILmzwEcwOgToPv7447D/AqWy+47rfPOEjAF/I/C1114bPs/x0UcfhYMG
+ +CQHz3AADGi4ZoEdtjXoTSpe1o42nNkJxN+ffPJJeB65aJuMAu1xtrLQFnSSlzNtQwM9uWPRiw/95Hjn
+ nXfCPbIa0H7wwQdNMlsdYF2gpYLJWf1TWzIK5LOtbsSDPDo0Aj6DyDUBP6VXC0DpQzzoV0pm7vN6IulT
+ eOvLB2orN57oA9kBoO2TxlDPqx+MNVhBLuR47733Qv/itrnOfatn9UE6zGFQbcoYQ6/xhl8rHZQCn9kI
+ kAEBxOyUgynpJ858jYzO0DgvH9AwM5dB0YxFIHhwcC0FfFtsCgWv6L1Y2ibXSzvw1zdaNPjvv/9+kI+z
+ 5KOdVsDnWfgBbPVHfKQYeMED2vi7MAKtrCF8NFlSwOejTfDDKskypoAPH+Ri56MFPv2moKSiUkofyK3J
+ zLjE7gL34cObSYyH3tEViFLjCeCZIMjEl9XKgC9LnNpVmWo7Bnr8WxjUmMQYRF/QWOCX6aAU+FgGOi5C
+ DQYKYlAYdGjkWwn4CGEHn+tYE5QHP2vxrX9PNgc3R++12lWBv1kxZK0AIgOIHDb20IQsAz6fu4OWz+yp
+ P3GOWcBH3rj4ItCyyiATfdMKlAL+u+++G+7Tf62iKeCTswaUTJAY+FavKX1wjZWJVVhGwupQKxOARz/Q
+ cF/AT42n3Cb6ySdNyoCvVS/+clqu7TLgk/tvhUFkkowydK10YPWRdXVkpZjxgIKZhRAMjlydDz/80DGo
+ MBTYaFiugWYiNAyodQV4JrwX67c/UPWlkqqXz2PQAxo+6S1FAVb2uNBp+bKc+c11WU7kxqJzHRk0cMjH
+ csxgiw+AgF4TQEswtFquJZdAiy40cRh0+qgB4KztubiCrIpyDaG1Lpj6BQhl1Szw4cWKpFUJax7rAx5Y
+ XPqJ1ROwJbP0g+UGUHJ3rKsTj6dcV7WbAv5LDbdMrg4YQa9acYglcm2XAZ+do5ITPhgEi0GeZ6xlpMp0
+ UAn4KJCZri/TMog0Hg+YmDE4CKCDQbBLEFY/Bn4M8Nxv+Xo8jxz6TwewJCyhXEchWn24r4nGfVUv7cDx
+ v4HwHIDkOVljrinIsv2xskkH3Ie/XB0qsZIHfeh7LkwqaNEloMQtygGfe5JdBiXWa04fapsznze0MtM/
+ VidADMBlNGIf3Y6nJrGuSX+SZ553v2LggxHGSDQEt7m2y4Cfw6CNgWT1JWsrHVQCPkQoqRE8FQFrw8IX
+ ll7MGgEtyg7/oMNaKtDVc3GgWAX8DYsb+Iofz8FT8hGEafXhnuThvq432g6AaFgx987bb7v3PB+e179G
+ XFP8bvxRrI7qC9fhrz7xnNWX4iOAFtMm9FjEU0aXRT+sbFYfDd5BNrXNOV6l6F9Mi9zqq2S142l1zfUP
+ 9sdTxT9+v7s/Bixkh0795Tpy5NputFWsZKnfPK9+SX4zPkW/JWsrHahvnEvz+Ja4+3e3qHSoYKALfD/7
+ D5XB7Paj+lh2B70L/BGJgf8CyTGQGzlDYYgAAAAASUVORK5CYII=
+
+
+
+
+
+
+ This Outlook Plugin For OpenERP Presently (2011-Today) developed By OpenERP SA.
+
+
+
+
+
+
+
+
+ For More Information, Please Visit Our Website
+
+ http://www.openerp.com/
+
+ Copyright 2006-TODAY OpenERP SA ALL Rights Reserved.
+
+
+ 39
+
+
+
+ AAABAAEAQEAAAAEAGAAoMgAAFgAAACgAAABAAAAAgAAAAAEAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAD////////////////////////////+/v7+/v79/f37+/v7+/v7+/v7+/v9/f39/f3+/v7+/v7+/v7+
+ /v7+/v7+/v7+/v7+/v79/f39/f39/f79/f79/f79/f7+/v79/f3+/v7////9/f38/Pz+/v7+/v7+/v7/
+ ///+/v7+/v7+/v7+/v7+/v7////+/v7+/v7+/v79/f3+/v7+/v7+/v7/////////////////////////
+ ///////////////////////////////////////////////+/v7////+/v719fXw8PDx8fH09PT7+/v/
+ ///////9/f39/f39/f3+/v39/f3+/v7t7u3d3dv8/Pr///7///3///39/f78/f3u7u7q6ur8/P35+fro
+ 6en7+/v////+/v7+/v7+/v79/f39/f3+/v7+/v7+/v7+/v7+/v79/f3////////+/v7+/v7/////////
+ ///////////////////////////////////////////////////////////////9/f3+/v7U1NRvb29e
+ Xl5hYWFycnKTk5O1tbXS0tLo6Oj9/f3////////7/P/u7/7AwdRmZnS2tczV1f/S0//U1f/X2P3a2/OS
+ kpC3t7T////AwLqHiIP09PX+/v77+/z9/f39/f3////////+/v7+/v7+/v79/f3////7+/utra3q6ur/
+ ///9/f3////////////////////////////////////////////////////////////////////////8
+ /Pz+/v6goKAAAAAAAAAAAAAAAAAAAAAHBwcoKChNTU14eHioqKayssePkeJtb+xYWvNCRMpBQok7Pa0u
+ MKM+QbJKTNVaW7ZPUJ55e/SrrN1wcYLMzdz////////////////////GxsaOjo78/Pz////9/f38/Pz/
+ //+goKAAAAC2trb////7+/v/////////////////////////////////////////////////////////
+ ///////////////9/f3+/v7Ly8shISEAAAABAQEAAAAAAAAAAAAAAAAAAAAAAAAQEA4XFyQQEToUFVMV
+ FmccHFsRESAEBBcAABIHBhsQETk6O300NsQqLKJAQXw3OcdPUfWIi++5uc2urquSkpJhYWEjIyMVFRX4
+ +Pj////7+/v///+6uroMDAxSUlLr6+v////9/f3/////////////////////////////////////////
+ ///////////////////////////////9/f39/f34+Phubm4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB
+ AQEAAAEAAAAJCQAKChEBAQAAAAAAAAAAAAEAAAABAQALCxUUFCE3OHkuMd0zNegxM50dHkATExgSEhEK
+ CgoCAgIAAABjY2X////6+vn////CwsITExNkZGTr6+v////9/f3+/v7/////////////////////////
+ ///////////////////////////////////////////////+/v79/f3////S0tIqKioAAAABAQIAAAAA
+ AAAAAAAAAAAAAAEAAAAAAAAoKDg5O8EuL4ADAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWFjU+P5YmJjwE
+ BAYAAAEAAAACAgIEBAQAAAANDRDl5eX////////GxsYSEhJra2vx8fH7+/v+/v7+/v7+/v7/////////
+ ///////////////////////////////////////////////////////////////+/v7+/v39/f3///+4
+ uLQXFxgAAAEAAAAAAAEAAAAAAAAAAAASEgw1NnwyNOMjJuUpKo8GBgAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAABAQAAAAAAAAAAAAEBAQEAAAAAAAEAAAEAAAEPDxWBg9vu7v/IyMQPDxBnZ2f29vb7+/v9/f3+/v7+
+ /v7////+/v7////////////////////////////////////////////////////////////+/v7////9
+ /f7+/v79/f79/f25uv9BRLYiIkALCxYEBBAHBxIUFCMqK2M6PcUrLuodINclKNhoadVCQkUAAAAAAAAB
+ AQEBAQEAAAAAAAAAAABHR0hmZmgODg4AAAAAAAAAAAAAAAERESFDRZ0WFh8dHmtNT68TEwhiYmT7+/r+
+ /v79/f3+/v7+/v7////+/v7/////////////////////////////////////////////////////////
+ ///+/v/////+/v7+/v/9/f38/P6ys/EqLdggI+QwNOI1N8ElJ6csLrQyNNQsL+khJOEaHdVDRt6ys/H/
+ ///b29plZWUuLi4VFRUFBQUAAAAAAAAAAACWlpb///+Li4sxMTEjIyQ1NTNNTWQ1N7slKfYyNJcREQMN
+ DQshImOho/H5+f7//v3+/v7+/v7+/v7////+/v7/////////////////////////////////////////
+ ///////////////////////+/v/+/v79/f79/f7ExfQzNtscINgkJ9chJNojJuIlKOQkJ+MiJd4jJtgY
+ G9VgYuPc3Pj////9/f3////////b29uvr6+NjY1nZ2dJSUlra2vf39/////////f39/Gxsbj4+L09P+W
+ mPUnKtksLuMzNFwpK3gvM+YjJt2Iiun39/3+/v7+/v7+/v7+/v7////+/v//////////////////////
+ ///////////////////////////////+/v////7+/v/9/f79/f7p6ftKTd8ZHNclKNkkJ9olKNkkJ9gk
+ J9gjJtclKNgVGdZlaOTo6Pr////8/P3+/v79/f3+/v7////////////5+fno6Ojz8/P////9/f39/f3/
+ //////////////7+/v21t/EqLt0tMNQrL90iJdwhJNcdINiAguj7/P39/f3+/v7+/v7+/v/////+/v//
+ ///////////////////////////////////////////////////+/v/+/v77+/3///+Bg+kUF9YmKdkk
+ J9kkJ9klKNolKNokJ9omKdoZHNdQU+Hf4Pn8/f79/f3+/v7+/v/////+/v7+/v79/f3+/v7+/v79/f3+
+ /v7+/v7+/v7+/v7+/v7+/v79/f7+/v79/f7///+/wPMgItkhJNklKNkkJ9kkJ9kYG9eIiur////7+/3+
+ /v7+/v/+/v////7///////////////////////////////////////////////////7+/v/9/f7////Q
+ 0fcfItgiJdklKNokJ9klKNokJ9kkJ9kkJ9kgI9gxM9vGxvX///79/f3+/v7+/v////7////+/v7////+
+ /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7////////+/v/+/v7+/v78/P7///+ur/AUGNcmKdokJ9kkJ9km
+ KdkWGdaen+7////8/P7+/v7+/v7////+/v7/////////////////////////////////////////////
+ ///+/v78/P3///9hY+MUF9YoK9kkJ9klKNokJ9olKNolKNokJ9kgI9mIier+/v79/f7+/v7+/v/////+
+ /v/////////////////////////////////////////////////////+/v7////+/v7///77+/7///9/
+ gekSFdYnKtkjJtgkJ9klKNoYG9fAwfT////8/P7+/v7+/v7///////7/////////////////////////
+ //////////////7+/v/8/P7////X1/gdINglKNkkJ9klKNokJ9klKNokJ9olKNkjJtk9P93Y2fj////+
+ /v7+/v7////+/v////////////////////////////////////////////////////////////////7+
+ /v/+/v/+/v7+/v7y8/xGSd8ZHNcmKdkjJtkmKdkhJNkxNNvi4/n////9/f7+/v7+/v7/////////////
+ ///////////////////////+/v/////+/v78/f7///99f+gUGNYoK9okJ9klKNolKNolKNokJ9kmKdkg
+ I9iEhen////+/v79/f7+/v/+/v7/////////////////////////////////////////////////////
+ ///////////+/v/////+/v/+/v78/P39/f65uvIgI9kiJdklKNkjJtknKtkcH9heYeP4+P3///79/f7+
+ /v7+/v7////////////////////////////////////+/v/9/f7///76+v09QN0gI9glKNolKNokJ9kk
+ J9olKNokJ9omKdksL9rQ0fb////8/P3+/v7+/v//////////////////////////////////////////
+ ///////////////////////////////+/v/////+/v7+/v79/f7z8/xqbOUZHdclKNklKNojJtgmKdkg
+ I9iYmu3////+/v7+/v7////+/v7///////////////////////////////7+/v/9/f7////KzPUhJdgm
+ KdokJ9klKNolKNolKNokJ9omKdofIthYWuL///////79/f7+/v7/////////////////////////////
+ ///////////////////////////////////////////////////+/v7////9/f/9/f3///6+vvMsL9oh
+ JNkkJ9okJ9kkJ9khJNg9QN3W1/f////+/v7+/v7////////////////////////////////////+/v78
+ /P3///+Ymu0bHtcnKtokJ9olKNolKNolKNokJ9ooK9oXGteVl+z////8/P3+/v7+/v////7/////////
+ ///////////////////////////////////////////////////////////////////////////+/v/9
+ /f3+/v7v8PxiZOQeIdgkJ9klKNokJ9klKNkdINh7fej29v39/f7+/v7////+/v7/////////////////
+ ///////////+/v7+/v7///91duccH9gnKtokJ9okJ9olKNokJ9okJ9klKNogI9nKy/X////9/f7/////
+ ///+/v//////////////////////////////////////////////////////////////////////////
+ ///////+/v/////9/f79/f3///+nqO8lKNkkJ9kkJ9okJ9kkJ9khJNgsL9rJyvX////+/v7+/v7/////
+ ///////////////////////////+/v7//v7///5bXeIgI9kmKdokJ9olKNolKNokJ9olKNohJNgwM9v3
+ 9/3///79/f7+/v//////////////////////////////////////////////////////////////////
+ ///////////////////////////+/v/+/v79/f3///7i4vlER94iJdklKNolKNokJ9kmKNkXGdZrbuXy
+ 8vz8/P7+/v////7////////////////////////////+/v7///729v1GSN8jJtkkJ9olKNolKNokJ9ok
+ J9omKdobHtdRVOD//////v7+/v7////+/v//////////////////////////////////////////////
+ ///////////////////////////////////////////////+/v/+/v7+/v7///96fOgfItkmKdkkJ9kk
+ J9okJ9ohJNggI9jLy/X+/v79/f3+/v7////+/v/////////////////////+/v7///7w8Pw8P90lKNkk
+ J9klKNolKNolKNokJ9onKtoVGNdwc+b////9/f3+/v7/////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////+/v78/P7///+3
+ ufIjJtknKtkkJ9klKNokJ9knKtkTFtZuceb8/P78/P7+/v7+/v/////////////////////////9/f7/
+ ///j5Po5O9wlKNkkJ9olKNolKNolKNokJ9ooK9oQFNaHiOr////7+/7+/v7/////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //7+/v/9/f7////q6vo6PN0kJtkkJ9olKNklKNolKNogI9kkJ9nf3/n////9/f7+/v////7/////////
+ ///////////9/f7////e3/k2OdwkJ9kkJ9olKNolKNokJ9okJ9ooK9oSFtadnu3////7+/7+/v////7/
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////+/v/+/v7+/v7///9laOQcINgmKdokJ9olKNokJ9knKtoRFNaGiOn////7+/3+
+ /v7////+/v/////////////////9/f7////o6Po6PdwlKNkkJ9olKNolKNolKNokJ9onKtoTFtaipO7/
+ ///7+/7/////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////+/v/////+/v78/P3///+am+0WGtcoK9okJ9olKNokJ9klKNoe
+ Idg2Odz09P3///79/f7+/v/////////////////////+/v7///7y8vw9P90lKNkkJ9klKNolKNolKNok
+ J9omKdoWGdewsfH////8/P7////+/v//////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////9/f7////Cw/QeIdgmKdok
+ J9kkJ9klKNokJ9knKtkWGda5ufL////8/P7///////7////////////////+/v7///739/1HSt8jJtgl
+ KNokJ9olKNolKNokJ9omKdoZHNe/wPP////8/P7/////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////////+/v/9/f7/
+ ///t7fsrLtoiJdklKNokJ9okJ9kkJ9onKtoXGtZvceX////8/P3+/v7////+/v/////////////+/v7/
+ //7///5bXuMgI9kmKdokJ9olKNolKNokJ9omKdoWGdexsvH////8/P7/////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///+/v/////+/v7///7///9DRd4eIdgmKdokJ9olKNokJ9olKNohJNk5PNz09P3////9/f7/////////
+ ///////////+/v7+/v7///9xdOYdINgmKdokJ9olKNolKNokJ9onKtoTFtaio+7////7+/7/////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////+/v7+/v7///9kZuQXGtcnKtokJ9okJ9olKNokJ9kmKdogI9jMzfX/
+ ///8/P7+/v////7////////////+/v78/P7///+LjesaHdcnKtokJ9olKNokJ9okJ9ooK9oTFtahou7/
+ ///7+/7////+/v7/////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////+/v77/P3///9+f+gSFdYoK9okJ9olKNolKNok
+ J9onKtobHteZmu3////8/P7///7///////////////7+/v/8/P7///+ztPEeIdgnKtokJ9olKNolKNok
+ J9ooK9oQE9aOkOv////7+/7+/v7/////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////////////77+/7///+TlOwRFNYo
+ K9okJ9olKNolKNokJ9omKdocH9d0dub////+/v7+/v7////////////////////9/f7////h4fkmKdkm
+ KdokJ9klKNolKNokJ9ooK9oSFdZ6fOf////8/P3+/v7/////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////////+/v7////7
+ +/7///+io+8TFtYnKtokJ9okJ9olKNokJ9olKNogI9hVV+H9/f7///7+/v7////////////+/v/////+
+ /v7///7///5ISt8eIdgmKdokJ9okJ9okJ9onKtoXG9djZeT////+/v7+/v7/////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////8/P7///+3uPIXGtcmKdokJ9olKNolKNolKNokJ9okJ9k+Qd3x8fz///79/f7/////
+ ///////////////+/v/7+/7///97fegWGdYnKtokJ9okJ9kkJ9omKdoeIdhFSN7///////7+/v7/////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////8/P7///+9vvIYG9cmKdokJ9olKNolKNolKNokJ9kkJ9k3Odzg
+ 4Pn////9/f7////////////////////////8/P7////Cw/MXGtcmKdkkJ9klKNolKNolKNojJtksLtrx
+ 8fz////9/f7////+/v//////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////8/P7///+8vfIYG9cmKdokJ9olKNolKNol
+ KNokJ9olKdkwNNvQ0Pb////9/f7////////////////////+/v/9/f7///739/07Pt0dINgmKdokJ9kl
+ KNokJ9kmKdogI9jKy/X////8/P7///////7/////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////8/P7///+8vfIYG9cm
+ KdokJ9olKNolKNolKNokJ9olKNkvMtvMzfb////9/f7////////////////+/v/////+/v77+/3///+E
+ hekRFNYnKtokJ9klKNokJ9ooK9oXGtebne3////8/P7+/v7////+/v//////////////////////////
+ ///////////////////////////////////////////////////////////////////////+/v/////8
+ /P7///+9vvMYG9cmKdokJ9olKNolKNolKNokJ9olKNkwMtvNzvb////9/f7/////////////////////
+ //7+/v/9/f7////X2PcfItgiJdklKNolKNokJ9kmKdodINhpa+T////+/v7+/v7+/v//////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////+/v/7+/7///+2t/IXGtcmKdokJ9olKNolKNolKNokJ9olKNkwMtvNzvb////9/f7/////
+ ///////////////////+/v/+/v78/P75+v5hY+MUGNYnKtkkJ9klKNolKNojJtk/Qd3w8Pz///79/f7+
+ /v////7/////////////////////////////////////////////////////////////////////////
+ //////////////////////////7////7+/7///+jpO4TFtYnKtokJ9olKNolKNolKNokJ9olKNkvMtvN
+ zfX////9/f7////////////////////+/v/////+/v78/P3+/v6+vvMaHtcjJdklKNokKNokJ9knKtkl
+ J9m9vfP////8/P3+/v7/////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////+/v77+/3///+MjesQE9YoK9okJ9olKNolKNol
+ KNokJ9olKNk1N9za2vj////9/f7///////////////////////////////7+/v/8/P7t7vxWWeIXGtcm
+ KdkkJ9kjJtolKNkgItiAgen////+/v79/f7+/v//////////////////////////////////////////
+ ///////////////////////////////////////////////////////////+/v79/f3///9vceUVGNYn
+ KtokJ9olKNolKNolKNokJ9kkKNk7Pt3t7fv///79/f7////////////////////////////////+/v79
+ /f7+/v60tfIiJdkjJtklKNklKNkkJ9oiJdlFR9/j4/r///79/f3+/v7///7/////////////////////
+ //////////////////////////////////////////////////////////////////////7////+/v7/
+ //7///9IS+AdINcmKdokJ9olKNolKNokJ9olKNoiJdhQUuH7+/7///7+/v7/////////////////////
+ //////////7+/v/+/v7+/v7s7PtgYuMcH9ckJ9kkJ9klKNolKNkmKdmoqfD////9/f39/f7////+/v//
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////+/v79/f7////o6PopLNojJtklKNolKNolKNokJ9kkJ9omKdodINdxc+b////+/v7+/v7/////
+ ///////////////////////+/v/////+/v7+/v7///+8vfMuMdoiJdkkJ9klKNokJ9keIdhfYePt7fv/
+ /v79/f3+/v//////////////////////////////////////////////////////////////////////
+ ///////////////+/v/////+/v78/P3///+vsPEaHdcnKtokJ9klKNolKNolKNokJ9knKtobHteZm+3/
+ ///8/P7+/v7////////////////////////////////+/v7////+/v7+/v77+/53eeceIdgmKdkkJ9kk
+ J9oiJdknKtm1tvL///79/f79/f/////+/v7/////////////////////////////////////////////
+ ///////////////////////////////////+/v/+/v79/f7///9xc+YbHtgnKtokJ9olKNolKNolKNok
+ J9kmKdoiJdjQ0Pf////8/P7+/v////7////////////////////////////////+/v7+/v7+/v7////i
+ 4vk8P90iJdklKNkkJ9klKNkaHddfYePv8Pz9/f7+/v/+/v7////+/v7/////////////////////////
+ /////////////////////////////////////////////////////v/9/f7////l5Pk3OdwkJ9klKNok
+ J9olKNokJ9kkJ9omKdoeIdhHSt////7///79/f7+/v//////////////////////////////////////
+ ///+/v7+/v79/f7///+ztfEdINgoK9okJ9klKNkjJtkbHtiur/D9/f78/P7///7+/v7////+/v//////
+ ///////////////////////////////////////////////////////////+/v/+/v7+/v79/f3///+X
+ mO0gI9gmKdkkJ9klKNolKNolKNokJ9koK9oUF9aNj+v////8/P7+/v/////+/v//////////////////
+ ///////////////////////+/v7+/v79/f7///+Ag+kTFtYoK9ojJtgmKdkcH9g2Otzo6Pr///79/f7+
+ /v/+/v/////+/v/////////////////////////////////////////////////////////+/v/////+
+ /v/+/v7///7m5/pHSt8iJdklKNokJ9klKNokJ9klKNolKNojJtkkJ9nm5vr////9/f3+/v7/////////
+ //////////////////////////////////////7+/v/+/v/+/v7+/v7///9bXuIXGtcnKtkjJtgoK9kS
+ FdZjZeP7+/78/P7+/v7+/v/+/v7///7////////////////////////////////////////////////+
+ /v/////+/v79/f/+/v7+/v7///+PkewgJNglKNkkJ9klKNokJ9klKNokJ9knKtkTFtZ5e+f////8/P3+
+ /v7////+/v7////////////////////////////////////////+/v/////+/v/+/v79/f7///7u7/xJ
+ S+AaHdcmKdkkJ9koK9oRFNaDhOn7+/79/f79/f7+/v7+/v7+/v7////+/v//////////////////////
+ ///////////+/v7////+/v/+/v/+/v79/f3+/v7Cw/QyNNsgI9gkJ9klKNokJ9klKNokJ9klKNoeItgr
+ Ltrj5Pr///79/f7///////7////////////////////////////////////////////////+/v/////+
+ /v7+/v78/P7///7e3vlER98aHdclKNkkJ9kmKdoWGdaOj+v29v3///79/f79/f7///7+/v7////////+
+ /v/////////////////+/v/////////+/v7+/v7+/v78/P3+/v7X2PhMT+AaHdclKNkkJ9olKNolKNok
+ J9kkJ9kkJ9kWGdecne3////8/P3+/v/+/v7/////////////////////////////////////////////
+ ///////////+/v7////+/v7+/v79/f7+//7R0vdKTd8ZHNcmKNklJ9kkJ9kfIth6e+fs7Pv////9/f79
+ /f7+/v/////+/v////////////////7///7////+/v/+/v/+/v79/f77+/3////c3PlQUuEZHNclKNkk
+ J9kkJ9kkJ9klKNokJ9klKNkWGddjZeTx8fz+/v7+/v7+/v/////+/v//////////////////////////
+ ///////////////////////////////+/v7////9/f7+/v79/v7+/v7Z2fhXWeIWGdYmKdklKNojJtkg
+ I9hWWOHIyfX///////78/P78/P79/f7+/v7+/v7+/v7+/v/+/v/+/v7+/v79/f78/P7+/v7////HyPVF
+ SN8bHtclKNkkJ9kkJ9klKNolKNokJ9kmKdkZHdhCRd7V1vj9/f7+/v7+/v7+/v//////////////////
+ //////////////////////////////////////////////////////7+/v/9/f7+/v7+/v7///7r7Ptx
+ c+YUF9YjJtkoK9okJ9kgI9gqLdp6fOjk5Pr///////7///78/f38/P78/P78/P78/P78/P39/f7///7/
+ ///4+f2PkessL9sgI9glKNkkJ9kkJ9klKNolKNojJtknKtkeIdg1ONzHyPX+/v79/v7+/v7+/v7////+
+ /v/////////////////////////////////////////////////////////////////+/v////7+/v/+
+ /v7+/v7+/v78/P3///+kpe8iJtgXG9coK9omKdolKNkaHdcoK9pwcubExfT09Pz///7///7/////////
+ //////7////l5vqam+0+Qd0bHtgmKdkkJ9kkJ9klKNolKNokJ9kkJ9koK9oeIdgxM9vIyfX////9/f3+
+ /v79/f7////+/v7/////////////////////////////////////////////////////////////////
+ ///////////+/v7////+/v7+/v79/f77+/3////h4fldX+MaHdggI9gmKdkoK9okJ9kWGtYVGNYyNdxZ
+ W+F9fuiUleyZmu2Vlu13eOdPUeAmKdoTFtYfItgnKtkkJ9okJ9klKNolKNokJ9olKNkmKdkaHddKTd/d
+ 3vn////8/P3+/v7+/v////7+/v//////////////////////////////////////////////////////
+ ///////////////////////////////+/v7////+/v7+/v7+/v78/P7///////61tvJPUeAmKdofItgi
+ JdkmKdknKtkfItgXG9cTF9YRFNUQE9UQE9UTFtYYG9chJdgoK9olKNokJ9klKNolKNolKNkjJtkiJdke
+ ItgtMNuIiur8/P3////8/P3+/v7+/v/+/v7/////////////////////////////////////////////
+ ///////////////////////////////////////////////////+/v7////+/v/+/v/+/v79/f79/f7/
+ ///4+P21tvJsbuU8Pt0kJ9kcH9ceIdghJNgkJ9kmKdknKtkoK9ooK9onKtomKdolKNokJ9kjJtkgI9kd
+ IdgcH9ghJdg7Pt11d+fT0/f////+/v78/P7+/v7+/v/+/v7////+/v//////////////////////////
+ ///////////////////////////////////////////////////////////////////////+/v//////
+ ///+/v7////9/f39/f7///7////9/f7T1Pepq/B8fuhVV+E5O90oK9obHtcYG9cXG9cXGtcXGtcXG9cX
+ GtcXGtcbHdcpLNlAQt5oauScne3V1vf///7////8/P3+/v7+/v7+/v7////////+/v//////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////+/v7////+/v7+/v7+/v79/f79/f7+/v7///7////5+v3l5fnU1ffCwvSurvCanO2K
+ jOp9fuh+f+h9f+iBg+mTleyrrPDDxfTZ2fjv7/v////////+/v79/f79/f3////+/v7////+/v7/////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////+/v7+/v7+/v7+/v79/f79/f39/f79/f7+
+ /v7////+/v77+/74+P319f319f319f329v35+f79/f7////+/v78/P79/f7+/v7+/v7+/v7+/v7/////
+ ///+/v7/////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////+/v7////////+/v/+/v/+
+ /v/+/v7+/v7+/v79/f39/f79/f79/f78/P78/P78/P78/P78/P78/P79/f7+/v79/f7+/v/+/v7///7+
+ /v7+/v7////+/v7///////////////////////////////////////////////////8AAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
+
+
+
\ No newline at end of file
diff --git a/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/frm_openerp_connection.Designer.cs b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/frm_openerp_connection.Designer.cs
new file mode 100644
index 00000000000..aeca33da72f
--- /dev/null
+++ b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/frm_openerp_connection.Designer.cs
@@ -0,0 +1,162 @@
+namespace OpenERPOutlookPlugin
+{
+ partial class frm_openerp_connection
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(frm_openerp_connection));
+ this.groupBox1 = new System.Windows.Forms.GroupBox();
+ this.chkSSL = new System.Windows.Forms.CheckBox();
+ this.txt_server_port = new System.Windows.Forms.TextBox();
+ this.txt_server_host = new System.Windows.Forms.TextBox();
+ this.label3 = new System.Windows.Forms.Label();
+ this.label2 = new System.Windows.Forms.Label();
+ this.btn_server_ok = new System.Windows.Forms.Button();
+ this.btn_server_close = new System.Windows.Forms.Button();
+ this.groupBox1.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // groupBox1
+ //
+ this.groupBox1.Controls.Add(this.chkSSL);
+ this.groupBox1.Controls.Add(this.txt_server_port);
+ this.groupBox1.Controls.Add(this.txt_server_host);
+ this.groupBox1.Controls.Add(this.label3);
+ this.groupBox1.Controls.Add(this.label2);
+ this.groupBox1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.groupBox1.Location = new System.Drawing.Point(22, 13);
+ this.groupBox1.Name = "groupBox1";
+ this.groupBox1.Size = new System.Drawing.Size(202, 123);
+ this.groupBox1.TabIndex = 14;
+ this.groupBox1.TabStop = false;
+ this.groupBox1.Text = "Connection Parameter";
+ //
+ // chkSSL
+ //
+ this.chkSSL.AutoSize = true;
+ this.chkSSL.Location = new System.Drawing.Point(15, 86);
+ this.chkSSL.Name = "chkSSL";
+ this.chkSSL.Size = new System.Drawing.Size(89, 17);
+ this.chkSSL.TabIndex = 19;
+ this.chkSSL.Text = "SSL (https)";
+ this.chkSSL.UseVisualStyleBackColor = true;
+ //
+ // txt_server_port
+ //
+ this.txt_server_port.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.txt_server_port.Location = new System.Drawing.Point(58, 60);
+ this.txt_server_port.Name = "txt_server_port";
+ this.txt_server_port.Size = new System.Drawing.Size(138, 20);
+ this.txt_server_port.TabIndex = 18;
+ this.txt_server_port.Text = "8069";
+ //
+ // txt_server_host
+ //
+ this.txt_server_host.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.txt_server_host.Location = new System.Drawing.Point(58, 34);
+ this.txt_server_host.Name = "txt_server_host";
+ this.txt_server_host.Size = new System.Drawing.Size(138, 20);
+ this.txt_server_host.TabIndex = 17;
+ this.txt_server_host.Text = "localhost";
+ //
+ // label3
+ //
+ this.label3.AutoSize = true;
+ this.label3.Location = new System.Drawing.Point(24, 59);
+ this.label3.Name = "label3";
+ this.label3.Size = new System.Drawing.Size(34, 13);
+ this.label3.TabIndex = 16;
+ this.label3.Text = "Port:";
+ //
+ // label2
+ //
+ this.label2.AutoSize = true;
+ this.label2.Location = new System.Drawing.Point(12, 34);
+ this.label2.Name = "label2";
+ this.label2.Size = new System.Drawing.Size(48, 13);
+ this.label2.TabIndex = 15;
+ this.label2.Text = "Server:";
+ //
+ // btn_server_ok
+ //
+ this.btn_server_ok.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.btn_server_ok.Image = global::OpenERPOutlookPlugin.Properties.Resources.Success;
+ this.btn_server_ok.ImageAlign = System.Drawing.ContentAlignment.TopLeft;
+ this.btn_server_ok.Location = new System.Drawing.Point(96, 149);
+ this.btn_server_ok.Name = "btn_server_ok";
+ this.btn_server_ok.Size = new System.Drawing.Size(49, 23);
+ this.btn_server_ok.TabIndex = 13;
+ this.btn_server_ok.Text = "&OK ";
+ this.btn_server_ok.TextAlign = System.Drawing.ContentAlignment.TopRight;
+ this.btn_server_ok.UseVisualStyleBackColor = true;
+ this.btn_server_ok.Click += new System.EventHandler(this.btn_server_ok_Click);
+ //
+ // btn_server_close
+ //
+ this.btn_server_close.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.btn_server_close.Image = global::OpenERPOutlookPlugin.Properties.Resources.Error;
+ this.btn_server_close.ImageAlign = System.Drawing.ContentAlignment.BottomLeft;
+ this.btn_server_close.Location = new System.Drawing.Point(160, 149);
+ this.btn_server_close.Name = "btn_server_close";
+ this.btn_server_close.Size = new System.Drawing.Size(64, 23);
+ this.btn_server_close.TabIndex = 12;
+ this.btn_server_close.Text = "&Close ";
+ this.btn_server_close.TextAlign = System.Drawing.ContentAlignment.TopRight;
+ this.btn_server_close.UseVisualStyleBackColor = true;
+ this.btn_server_close.Click += new System.EventHandler(this.btn_server_close_Click);
+ //
+ // frm_openerp_connection
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(246, 184);
+ this.Controls.Add(this.groupBox1);
+ this.Controls.Add(this.btn_server_ok);
+ this.Controls.Add(this.btn_server_close);
+ this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Fixed3D;
+ this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
+ this.Name = "frm_openerp_connection";
+ this.Text = "OpenERP Connection";
+ this.Load += new System.EventHandler(this.frm_openerp_connection_Load);
+ this.groupBox1.ResumeLayout(false);
+ this.groupBox1.PerformLayout();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.Button btn_server_ok;
+ private System.Windows.Forms.Button btn_server_close;
+ private System.Windows.Forms.GroupBox groupBox1;
+ private System.Windows.Forms.CheckBox chkSSL;
+ private System.Windows.Forms.TextBox txt_server_port;
+ private System.Windows.Forms.TextBox txt_server_host;
+ private System.Windows.Forms.Label label3;
+ private System.Windows.Forms.Label label2;
+ }
+}
\ No newline at end of file
diff --git a/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/frm_openerp_connection.cs b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/frm_openerp_connection.cs
new file mode 100644
index 00000000000..1c663f58fe2
--- /dev/null
+++ b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/frm_openerp_connection.cs
@@ -0,0 +1,79 @@
+/*
+ OpenERP, Open Source Business Applications
+ Copyright (c) 2011 OpenERP S.A.
+
+ 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 .
+*/
+
+
+using System;
+using System.Windows.Forms;
+using OpenERPClient;
+
+namespace OpenERPOutlookPlugin
+{
+ public partial class frm_openerp_connection : Form
+ {
+ TextBox txtServerURL;
+ public frm_openerp_connection()
+ {
+ InitializeComponent();
+ }
+ public frm_openerp_connection(TextBox txt)
+ {
+ InitializeComponent();
+ this.txtServerURL = txt;
+ }
+
+ private void frm_openerp_connection_Load(object sender, EventArgs e)
+ {
+ if (this.txtServerURL.Text != "")
+ {
+ string[] url = Tools.SplitURL(this.txtServerURL.Text);
+ this.txt_server_port.Text = url[2];
+ this.txt_server_host.Text = url[1];
+ if (url[0] == "https")
+ this.chkSSL.Checked = true;
+ else
+ this.chkSSL.Checked = false;
+ }
+ }
+
+
+ private void btn_server_ok_Click(object sender, EventArgs e)
+ {
+ try
+ {
+ OpenERPOutlookPlugin openerp_outlook = Cache.OpenERPOutlookPlugin;
+ OpenERPConnect openerp_connect = openerp_outlook.Connection;
+ string url = Tools.JoinURL(this.txt_server_host.Text, this.txt_server_port.Text, this.chkSSL.Checked);
+ this.txtServerURL.Text = url;
+ openerp_connect.check_connectivity();
+ this.Close();
+ }
+ catch (Exception ex)
+ {
+ Connect.handleException(ex);
+ }
+ }
+
+ private void btn_server_close_Click(object sender, EventArgs e)
+ {
+
+ this.Close();
+ }
+
+
+ }
+}
diff --git a/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/frm_openerp_connection.resx b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/frm_openerp_connection.resx
new file mode 100644
index 00000000000..9477f7baa89
--- /dev/null
+++ b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/frm_openerp_connection.resx
@@ -0,0 +1,180 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+
+
+ AAABAAEAICAAAAEAGACoDAAAFgAAACgAAAAgAAAAQAAAAAEAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAxO+0UHsorMtUkJMo6LOY5JN81HsdDLM4/JMdINcBISKJCSpA+RpM9SJo6RJsxPJg2PJ84PKU4OadA
+ Pbs7L8lANd8qJNUiJtIZKModMNcUJOIUHu0iJvsaIOUaJsQuQMkXHNcvNOciJsstLNAvItJSQekqG6xQ
+ QchYSNKOg/3Cw//Q2f/P1f/S2P/T3P/R2P+iqP+7vv9vct8zM6k0Lbg6NcwcGroyN9oiLs4eLdccKOQg
+ KvMkKfYaIuEbJsgnOMkdGuUeHd4+PeseHLxAONI9N7p4edSzt//W1v/k4//h6P/f5v/Dw/+2tf+1t/+0
+ tv/Kzv/Y3f/S1f/U2P/Fyf8iKJlOVNMtM8IuM9UjKtgdJd0aI98bJN8nMOUqNN8dKc0pIPMnIOUvK9g5
+ N8w4NLWGiObR4P/k9//k7//K0/+JkeRWW8I5N78uKcAvLL4wMrxCR8hTWNKOlP/a4v/Z4//W4v+Ai+cx
+ OaooKr4mJ88sLuAjKNsWIMwoMt4yOusZI9QnHO42Le8lIME+Pb2Dg+fk7//o///b9/ff8v+OnN5ET6sx
+ NrE3MdIyKdcvKsszNscxOL0uN7YkKqdvduPc6f/Y6v/f8P/F0v9PUMg1MMc0MNY4OOQlK9AdJs4iLN4c
+ J90sIucvKdovL7lcX8fm6v/q9v/m/vbl//yQocxRXa8jLp4sML83MeIsJNwnJsoxNckjLrRATNBARNIo
+ K6srN4/c7f/a7f/k8//Kzf9pZN0nHrQrJskyNNgkLNMbJdYgK+AxK9wxL8k+RK/N1f/s8v/r9v/Y6uvq
+ +/9UW6o2ObMlKbgpK88vKuMqJt0sL801PcwwP8QaJ7MjIsY1MdBDRL54gtDm9//Y6fzq8//AwP9jWdU0
+ KMAxLdIwMt4hLtgcLdc3NdsfIauFkODo9P/x+v/p8vzx/f+uteY7OKw2L8wtLtYpK90nKeIpKt4qLs0l
+ Lr4iML4yPdUrJ94xKN0yLMc3OKavuuzt+//c5vfv9P/Z0/9rYN8tJsMoKNIjL9UYK9A9Od4hJKS9y//n
+ 9//0///x9/z09v+dl+g8LsoyI+InJ98iKd4iKN8kKtspLdIpMM0qNdMcI8wpJucqH+c8L+kzKL5MTaXs
+ 8//0///w+v/x8f++uf8vKLM0M9YlL9MkNNoxK9Y2OLrc7P/t///4//f7///28v+EeNw8JtkuHu4kJuMe
+ Kd4gKd4iKdwpKdkpKdknK90gJNssKu4iGeUuH+wvIdM9MrCmpOr0/f/r9uz2/P/q7f+XlP8zMcYhKMsf
+ LNYmHtc4OsTk8v/x//73/+39//v28P99b9U7JdssHu4gKOAcK9seKd4iJ+ApJOUrIucmIegjIuYwMu8b
+ GtwiGOczJOowHsVYS7709P/5//r6//Xy/P/d4P87PbkiJMghJdspI+AvML7b6f/x//79//L+/vj68v+N
+ f+Q7J9crIeoeKtwZLtccKtwiJ+IrIeksH+0oHu0iH+YuNOsdItsdGuU3LPgzHt42I7XY0P/6/f/2/+np
+ +ejq8/92fN8rLcgqKeMsKuEyNcDc6f/z//////j///779P+Ngds7LM4rJeIcLdcXMNQbLNsiJ+IsIucu
+ IOouJOwhHt8lL+AfLNwaIuEtLPI0Juo1I8SajOr49f/1/+z4//Dt+//J0v8vLsAvKt8gJc44QMPj7//w
+ +f/8/Pz//P/88v9zabw7L8cpKdscL9QXMNIbLNsiKN8sJeIwJOIzK+QjJdcfK9cdLtsWJt0eJ+MuJ+Y5
+ K9B8bNzv5v/z+fT6//Ln9/3k7/8wMrYsJtEcK70yQbXj8P/w9//79P//+P/78P98csU5McQnK9gbL9QX
+ MNQbLNkkK9kuKtcyK9IxL88qL9EcKNQYKtsXK94YKNknK9g1L8pjVM3m2f/6+P/6//7j8fff7P9fYdcs
+ KsMsN88tOLHb5//z+//////89/n79f+kn+o5NL8nLNUbLtUVL9cbLNsiKtssKtgyK9QsJ8oyM9ceJtcV
+ JdwYLuQWLd0hLtYrL8MxK6LWzv/49//w9fbz///q9v+lqP83NrYjHNk7Oszk7f/d7ez9/+T8/9/2+v/e
+ 4P8wMKwyN9kLHMcgNukZKeAdJuIrJu0uIek1I+IyJOAlJeMbJuYQKOYQKuIXLtgkNcYmL5fm7v/z/P/1
+ /vv2///x9//Y1v9FQKMoHuM3M8+epO/x/f/7/+n9/+T4///f4f8xMqQxOM8WJNAZKt8aKuEaJeEhIOYw
+ Je01IeYzI+InJ98bKd8QKuIOKuIVKt8iMc4wOK/Axv/v9v/4/v/4/v/w8//o5/9APY0pKtg4Os5dX77t
+ 8P/19f/7+v/69v/t6P9OTrgxNsEoMtYWJdUfLt4bKNgdJNEwMNwzJ9kyKtUlMc0bM8sSMdQSLdwZJecl
+ JeM3Lc2Shvzq4//49v/4+v/q7v/s7f8/P40iKtEzOc5BQbXi3v/27v/48P/58v/z7v+OjesuMLQuMtcf
+ KN0iKuEcKNQkMckrMcowKtcsK9UkNcYbOMIVNskXMNQgJeUsJOM6Kc6Zhv/u5P/69//2+//t8//h4v9B
+ P5gbJdYiKcw3N8GLhOz06//79P/z8f/09f/Pzf80MK0qItMsJu8hIOYgJtcwQssjMLwrJ94pJuAiMssc
+ OcAbOMIeNccnLNUzLNBAMrXLvv/4+f/6//vy/frv+P+mpvpAOqkhL+YXIc0xMspEPrXZ0v/49P/6/f/2
+ /P/t7v9cWMIsIcswJO4kGugkJt82RNMiMb0nKtklKN4gMsseNsQgNcYlMsouLNI7L8dBM6Ps5f/5//76
+ //Hu/Pjs9f90btlIPckhMe8YI9gsLtAyLq+PjNzh4f/4///2//zv9/+lp/VFO80yI98tIe0tJustMNgo
+ M8skMssiM8ogNMkiMsskLdUrKNs1JtxALcpNPajy7f/y+/j4//Tt+f/o7f9OQspGM+AUKd8bKdslKNE4
+ NcY/OqOsqefz+f/0///v/P/n8f9hYsozLcI6L+MzK+ohHNUtMd4iMc4gMs0iLtQkKdwpIucwIec7JN5F
+ LsZrXbv08v/0//3z//7n8v/P0P8tH7swG9sYMdUaLNMpLNs0LdQ6LMBbTsGxrfTv9f/s/P/o/P/T5f89
+ S54jKKkwLNI4L/EpIukbINsmLOksJ/gmGvYrFPg6IPZEK99FMrevqPPw9f/k8Prt+//m7v97eOUxI8g0
+ IeIaL9EcLNMnKuAwKOEwINI8K8htYdeene3T3//k/P/J5PnK4/82Rp8uM7ciHcwnH+IsLe0aGuIdFO0x
+ H/4zHPQqFNE9L71jXL3s8f/e7P/q+//m9P+DiN0xLqw3LNY8LewiLdslLN8pKuYvJ+owH+UwHNk5Kc5F
+ Pb+Ume7N3v/d+f/R8P/G3/9FV7A5QcQwM9IqLdwjJd4xKuk8MuosJMUwLqp9hdLa6v/m/f/b9f/j9v+z
+ v/9ARLQrKLk5MdwfFc0oKuMoKeUoJeYoIuUsIusyJe0zJeEvJspBQMBMVLG1y//a9P/Y8f/C2f+Ek/o9
+ SsRATdEyPsYoL7oyN7hXW8uNmOrF2P/h+P/X8v/d9f+KmuYgKpU4OcVEQeQXEsE8N+wqIOksI+gnIuEg
+ H9kiI98tLOgvKuksJ94kIMU8PcsvN6hUYL6Jm+7W6P/E1f/T6P/F5f/R9P/U8P/U6//U5v/d7v/d7//Y
+ 6f+zw/9DULg1PMEtL8oSEL0uKuE6NO0nItsxIugyJ+kvKuMlKdshKNsgKd4hJeIhI+AzMegkIcosK8Ex
+ Nbk9Q7ouNqdmceFHV7e00P+du+yNpd+brO+uuv+epv9kac8rMKM9QsYeJbgoLc8yNuMsLeMoJ+EiHtsl
+ H9w4Ktw1K9wxL90rMd4hL9wZKdoXJdscJt4fI9k8POwnJM41MNM5NNMiGro1Lc5GQNswLbkuKrE2MLdE
+ O8hLPNM/L9A0JM8sIdEjIc8wNd4pNNYcKcsVHsUgJdQ0M+0uKeg1KNAuJs0oJ9EnLtkdLtkWKdgWKt0i
+ MOYeJ9wZGs4zLuMwJdktIdVFNuwvH9gxIdo8KdxBLd1AK9s9Jdc6H9o7IOI5H+40IO4lH+I3O/EQH8IZ
+ Lcg2ROQeJ88eHtYoI+QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
+
+
+
\ No newline at end of file
diff --git a/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/frm_partner.cs b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/frm_partner.cs
new file mode 100644
index 00000000000..37caf4067a3
--- /dev/null
+++ b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/frm_partner.cs
@@ -0,0 +1,77 @@
+/*
+ OpenERP, Open Source Business Applications
+ Copyright (c) 2011 OpenERP S.A.
+
+ 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 .
+*/
+
+
+using System;
+using System.Windows.Forms;
+using OpenERPClient;
+
+namespace OpenERPOutlookPlugin
+{
+ public partial class frm_partner : Form
+ {
+
+ public frm_partner()
+ {
+ InitializeComponent();
+ }
+
+ public Form parent_form = null;
+
+ private void btnsave_Click(object sender, EventArgs e)
+ {
+ try
+ {
+
+ if (txt_create_partner.Text == "")
+ {
+ throw new Exception ("You must enter a Partner Name.");
+ }
+
+ else
+ {
+
+
+ Record[] partners = Cache.OpenERPOutlookPlugin.SearchPartnerByName(txt_create_partner.Text);
+ if (partners != null && partners.Length > 0)
+ {
+ throw new Exception("Partner already exist.");
+ }
+ else
+ {
+ frm_select_partner sel_partner = (frm_select_partner)this.parent_form;
+ sel_partner.SelectPartnerText = txt_create_partner.Text;
+ sel_partner.search_lst_partner();
+ this.Close();
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+
+ Connect.handleException(ex);
+ }
+
+ }
+
+ private void btncncl_Click(object sender, EventArgs e)
+ {
+ this.Close();
+ }
+ }
+}
diff --git a/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/frm_partner.designer.cs b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/frm_partner.designer.cs
new file mode 100644
index 00000000000..41861ea5b62
--- /dev/null
+++ b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/frm_partner.designer.cs
@@ -0,0 +1,106 @@
+namespace OpenERPOutlookPlugin
+{
+ partial class frm_partner
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(frm_partner));
+ this.txt_create_partner = new System.Windows.Forms.TextBox();
+ this.lablname = new System.Windows.Forms.Label();
+ this.btncncl = new System.Windows.Forms.Button();
+ this.btnsave = new System.Windows.Forms.Button();
+ this.SuspendLayout();
+ //
+ // txt_create_partner
+ //
+ this.txt_create_partner.Location = new System.Drawing.Point(87, 26);
+ this.txt_create_partner.Name = "txt_create_partner";
+ this.txt_create_partner.Size = new System.Drawing.Size(185, 20);
+ this.txt_create_partner.TabIndex = 0;
+ //
+ // lablname
+ //
+ this.lablname.AutoSize = true;
+ this.lablname.Location = new System.Drawing.Point(43, 29);
+ this.lablname.Name = "lablname";
+ this.lablname.Size = new System.Drawing.Size(38, 13);
+ this.lablname.TabIndex = 1;
+ this.lablname.Text = "Name:";
+ //
+ // btncncl
+ //
+ this.btncncl.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.btncncl.Image = global::OpenERPOutlookPlugin.Properties.Resources.Error;
+ this.btncncl.ImageAlign = System.Drawing.ContentAlignment.BottomLeft;
+ this.btncncl.Location = new System.Drawing.Point(205, 75);
+ this.btncncl.Name = "btncncl";
+ this.btncncl.Size = new System.Drawing.Size(67, 23);
+ this.btncncl.TabIndex = 3;
+ this.btncncl.Text = "&Cancel";
+ this.btncncl.TextAlign = System.Drawing.ContentAlignment.TopRight;
+ this.btncncl.UseVisualStyleBackColor = true;
+ this.btncncl.Click += new System.EventHandler(this.btncncl_Click);
+ //
+ // btnsave
+ //
+ this.btnsave.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.btnsave.Image = global::OpenERPOutlookPlugin.Properties.Resources.Success;
+ this.btnsave.ImageAlign = System.Drawing.ContentAlignment.TopLeft;
+ this.btnsave.Location = new System.Drawing.Point(139, 75);
+ this.btnsave.Name = "btnsave";
+ this.btnsave.Size = new System.Drawing.Size(60, 23);
+ this.btnsave.TabIndex = 2;
+ this.btnsave.Text = "&Save ";
+ this.btnsave.TextAlign = System.Drawing.ContentAlignment.TopRight;
+ this.btnsave.UseVisualStyleBackColor = true;
+ this.btnsave.Click += new System.EventHandler(this.btnsave_Click);
+ //
+ // frm_partner
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(284, 110);
+ this.Controls.Add(this.btncncl);
+ this.Controls.Add(this.btnsave);
+ this.Controls.Add(this.lablname);
+ this.Controls.Add(this.txt_create_partner);
+ this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
+ this.Name = "frm_partner";
+ this.Text = "Create a new Partner";
+ this.ResumeLayout(false);
+ this.PerformLayout();
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.TextBox txt_create_partner;
+ private System.Windows.Forms.Label lablname;
+ private System.Windows.Forms.Button btnsave;
+ private System.Windows.Forms.Button btncncl;
+ }
+}
\ No newline at end of file
diff --git a/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/frm_partner.resx b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/frm_partner.resx
new file mode 100644
index 00000000000..9477f7baa89
--- /dev/null
+++ b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/frm_partner.resx
@@ -0,0 +1,180 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+
+
+ AAABAAEAICAAAAEAGACoDAAAFgAAACgAAAAgAAAAQAAAAAEAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAxO+0UHsorMtUkJMo6LOY5JN81HsdDLM4/JMdINcBISKJCSpA+RpM9SJo6RJsxPJg2PJ84PKU4OadA
+ Pbs7L8lANd8qJNUiJtIZKModMNcUJOIUHu0iJvsaIOUaJsQuQMkXHNcvNOciJsstLNAvItJSQekqG6xQ
+ QchYSNKOg/3Cw//Q2f/P1f/S2P/T3P/R2P+iqP+7vv9vct8zM6k0Lbg6NcwcGroyN9oiLs4eLdccKOQg
+ KvMkKfYaIuEbJsgnOMkdGuUeHd4+PeseHLxAONI9N7p4edSzt//W1v/k4//h6P/f5v/Dw/+2tf+1t/+0
+ tv/Kzv/Y3f/S1f/U2P/Fyf8iKJlOVNMtM8IuM9UjKtgdJd0aI98bJN8nMOUqNN8dKc0pIPMnIOUvK9g5
+ N8w4NLWGiObR4P/k9//k7//K0/+JkeRWW8I5N78uKcAvLL4wMrxCR8hTWNKOlP/a4v/Z4//W4v+Ai+cx
+ OaooKr4mJ88sLuAjKNsWIMwoMt4yOusZI9QnHO42Le8lIME+Pb2Dg+fk7//o///b9/ff8v+OnN5ET6sx
+ NrE3MdIyKdcvKsszNscxOL0uN7YkKqdvduPc6f/Y6v/f8P/F0v9PUMg1MMc0MNY4OOQlK9AdJs4iLN4c
+ J90sIucvKdovL7lcX8fm6v/q9v/m/vbl//yQocxRXa8jLp4sML83MeIsJNwnJsoxNckjLrRATNBARNIo
+ K6srN4/c7f/a7f/k8//Kzf9pZN0nHrQrJskyNNgkLNMbJdYgK+AxK9wxL8k+RK/N1f/s8v/r9v/Y6uvq
+ +/9UW6o2ObMlKbgpK88vKuMqJt0sL801PcwwP8QaJ7MjIsY1MdBDRL54gtDm9//Y6fzq8//AwP9jWdU0
+ KMAxLdIwMt4hLtgcLdc3NdsfIauFkODo9P/x+v/p8vzx/f+uteY7OKw2L8wtLtYpK90nKeIpKt4qLs0l
+ Lr4iML4yPdUrJ94xKN0yLMc3OKavuuzt+//c5vfv9P/Z0/9rYN8tJsMoKNIjL9UYK9A9Od4hJKS9y//n
+ 9//0///x9/z09v+dl+g8LsoyI+InJ98iKd4iKN8kKtspLdIpMM0qNdMcI8wpJucqH+c8L+kzKL5MTaXs
+ 8//0///w+v/x8f++uf8vKLM0M9YlL9MkNNoxK9Y2OLrc7P/t///4//f7///28v+EeNw8JtkuHu4kJuMe
+ Kd4gKd4iKdwpKdkpKdknK90gJNssKu4iGeUuH+wvIdM9MrCmpOr0/f/r9uz2/P/q7f+XlP8zMcYhKMsf
+ LNYmHtc4OsTk8v/x//73/+39//v28P99b9U7JdssHu4gKOAcK9seKd4iJ+ApJOUrIucmIegjIuYwMu8b
+ GtwiGOczJOowHsVYS7709P/5//r6//Xy/P/d4P87PbkiJMghJdspI+AvML7b6f/x//79//L+/vj68v+N
+ f+Q7J9crIeoeKtwZLtccKtwiJ+IrIeksH+0oHu0iH+YuNOsdItsdGuU3LPgzHt42I7XY0P/6/f/2/+np
+ +ejq8/92fN8rLcgqKeMsKuEyNcDc6f/z//////j///779P+Ngds7LM4rJeIcLdcXMNQbLNsiJ+IsIucu
+ IOouJOwhHt8lL+AfLNwaIuEtLPI0Juo1I8SajOr49f/1/+z4//Dt+//J0v8vLsAvKt8gJc44QMPj7//w
+ +f/8/Pz//P/88v9zabw7L8cpKdscL9QXMNIbLNsiKN8sJeIwJOIzK+QjJdcfK9cdLtsWJt0eJ+MuJ+Y5
+ K9B8bNzv5v/z+fT6//Ln9/3k7/8wMrYsJtEcK70yQbXj8P/w9//79P//+P/78P98csU5McQnK9gbL9QX
+ MNQbLNkkK9kuKtcyK9IxL88qL9EcKNQYKtsXK94YKNknK9g1L8pjVM3m2f/6+P/6//7j8fff7P9fYdcs
+ KsMsN88tOLHb5//z+//////89/n79f+kn+o5NL8nLNUbLtUVL9cbLNsiKtssKtgyK9QsJ8oyM9ceJtcV
+ JdwYLuQWLd0hLtYrL8MxK6LWzv/49//w9fbz///q9v+lqP83NrYjHNk7Oszk7f/d7ez9/+T8/9/2+v/e
+ 4P8wMKwyN9kLHMcgNukZKeAdJuIrJu0uIek1I+IyJOAlJeMbJuYQKOYQKuIXLtgkNcYmL5fm7v/z/P/1
+ /vv2///x9//Y1v9FQKMoHuM3M8+epO/x/f/7/+n9/+T4///f4f8xMqQxOM8WJNAZKt8aKuEaJeEhIOYw
+ Je01IeYzI+InJ98bKd8QKuIOKuIVKt8iMc4wOK/Axv/v9v/4/v/4/v/w8//o5/9APY0pKtg4Os5dX77t
+ 8P/19f/7+v/69v/t6P9OTrgxNsEoMtYWJdUfLt4bKNgdJNEwMNwzJ9kyKtUlMc0bM8sSMdQSLdwZJecl
+ JeM3Lc2Shvzq4//49v/4+v/q7v/s7f8/P40iKtEzOc5BQbXi3v/27v/48P/58v/z7v+OjesuMLQuMtcf
+ KN0iKuEcKNQkMckrMcowKtcsK9UkNcYbOMIVNskXMNQgJeUsJOM6Kc6Zhv/u5P/69//2+//t8//h4v9B
+ P5gbJdYiKcw3N8GLhOz06//79P/z8f/09f/Pzf80MK0qItMsJu8hIOYgJtcwQssjMLwrJ94pJuAiMssc
+ OcAbOMIeNccnLNUzLNBAMrXLvv/4+f/6//vy/frv+P+mpvpAOqkhL+YXIc0xMspEPrXZ0v/49P/6/f/2
+ /P/t7v9cWMIsIcswJO4kGugkJt82RNMiMb0nKtklKN4gMsseNsQgNcYlMsouLNI7L8dBM6Ps5f/5//76
+ //Hu/Pjs9f90btlIPckhMe8YI9gsLtAyLq+PjNzh4f/4///2//zv9/+lp/VFO80yI98tIe0tJustMNgo
+ M8skMssiM8ogNMkiMsskLdUrKNs1JtxALcpNPajy7f/y+/j4//Tt+f/o7f9OQspGM+AUKd8bKdslKNE4
+ NcY/OqOsqefz+f/0///v/P/n8f9hYsozLcI6L+MzK+ohHNUtMd4iMc4gMs0iLtQkKdwpIucwIec7JN5F
+ LsZrXbv08v/0//3z//7n8v/P0P8tH7swG9sYMdUaLNMpLNs0LdQ6LMBbTsGxrfTv9f/s/P/o/P/T5f89
+ S54jKKkwLNI4L/EpIukbINsmLOksJ/gmGvYrFPg6IPZEK99FMrevqPPw9f/k8Prt+//m7v97eOUxI8g0
+ IeIaL9EcLNMnKuAwKOEwINI8K8htYdeene3T3//k/P/J5PnK4/82Rp8uM7ciHcwnH+IsLe0aGuIdFO0x
+ H/4zHPQqFNE9L71jXL3s8f/e7P/q+//m9P+DiN0xLqw3LNY8LewiLdslLN8pKuYvJ+owH+UwHNk5Kc5F
+ Pb+Ume7N3v/d+f/R8P/G3/9FV7A5QcQwM9IqLdwjJd4xKuk8MuosJMUwLqp9hdLa6v/m/f/b9f/j9v+z
+ v/9ARLQrKLk5MdwfFc0oKuMoKeUoJeYoIuUsIusyJe0zJeEvJspBQMBMVLG1y//a9P/Y8f/C2f+Ek/o9
+ SsRATdEyPsYoL7oyN7hXW8uNmOrF2P/h+P/X8v/d9f+KmuYgKpU4OcVEQeQXEsE8N+wqIOksI+gnIuEg
+ H9kiI98tLOgvKuksJ94kIMU8PcsvN6hUYL6Jm+7W6P/E1f/T6P/F5f/R9P/U8P/U6//U5v/d7v/d7//Y
+ 6f+zw/9DULg1PMEtL8oSEL0uKuE6NO0nItsxIugyJ+kvKuMlKdshKNsgKd4hJeIhI+AzMegkIcosK8Ex
+ Nbk9Q7ouNqdmceFHV7e00P+du+yNpd+brO+uuv+epv9kac8rMKM9QsYeJbgoLc8yNuMsLeMoJ+EiHtsl
+ H9w4Ktw1K9wxL90rMd4hL9wZKdoXJdscJt4fI9k8POwnJM41MNM5NNMiGro1Lc5GQNswLbkuKrE2MLdE
+ O8hLPNM/L9A0JM8sIdEjIc8wNd4pNNYcKcsVHsUgJdQ0M+0uKeg1KNAuJs0oJ9EnLtkdLtkWKdgWKt0i
+ MOYeJ9wZGs4zLuMwJdktIdVFNuwvH9gxIdo8KdxBLd1AK9s9Jdc6H9o7IOI5H+40IO4lH+I3O/EQH8IZ
+ Lcg2ROQeJ88eHtYoI+QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
+
+
+
\ No newline at end of file
diff --git a/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/frm_push_mail.cs b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/frm_push_mail.cs
new file mode 100644
index 00000000000..b3aa195b68c
--- /dev/null
+++ b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/frm_push_mail.cs
@@ -0,0 +1,149 @@
+/*
+ OpenERP, Open Source Business Applications
+ Copyright (c) 2011 OpenERP S.A.
+
+ 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 .
+*/
+
+
+using System;
+using System.Collections;
+using System.Drawing;
+using System.Windows.Forms;
+using OpenERPClient;
+using outlook = Microsoft.Office.Interop.Outlook;
+
+namespace OpenERPOutlookPlugin
+{
+
+ public partial class frm_push_mail : Form
+ {
+
+ public frm_push_mail()
+ {
+
+ InitializeComponent();
+ cmboboxcreate.Items.Remove("");
+ }
+
+ public bool push_mail(string model, int thread_id)
+ {
+ foreach (outlook.MailItem mailItem in Tools.MailItems())
+ {
+ Cache.OpenERPOutlookPlugin.PushMail(mailItem, model, thread_id);
+
+ }
+ return true;
+ }
+
+ private void btn_attach_mail_to_partner_Click(object sender, EventArgs e)
+ {
+ try
+ {
+ if (lstview_object.SelectedItems.Count <= 0)
+ {
+ throw new Exception("Plese select item from the list to push");
+ }
+ foreach (ListViewItem lv in lstview_object.SelectedItems)
+ {
+ this.push_mail(lv.SubItems[1].Name, Convert.ToInt32(lv.Name));
+ }
+ this.Close();
+ }
+ catch (Exception ex)
+ {
+ Connect.handleException(ex);
+ }
+ }
+
+
+ private void frm_push_mail_Load(object sender, EventArgs e)
+ {
+ try
+ {
+
+ Model[] document_models = Cache.OpenERPOutlookPlugin.GetMailModels();
+ OpenERPOutlookPlugin openerp_outlook = Cache.OpenERPOutlookPlugin;
+ OpenERPConnect openerp_connect = openerp_outlook.Connection;
+
+ foreach (Model model in document_models)
+ {
+ ListViewItem item = new ListViewItem();
+ item.Name = model.model;
+ item.Text = model.name;
+ cmboboxcreate.Items.Add(model);
+ }
+ }
+ catch (Exception ex)
+ {
+ Connect.handleException(ex);
+ }
+ }
+ private void add_item_recordlist(Record record)
+ {
+ ListViewItem item = new ListViewItem(record.name);
+ item.Name = record.id.ToString();
+ item.Text = record.name;
+ ListViewItem.ListViewSubItem subitem = new ListViewItem.ListViewSubItem();
+ subitem.Name = record.model.model;
+ subitem.Text = cmboboxcreate.SelectedItem.ToString();
+ item.SubItems.Add(subitem);
+ lstview_object.Items.Add(item);
+ }
+
+ void load_data_list()
+ {
+ lstview_object.Items.Clear();
+
+ Model model = (Model)cmboboxcreate.SelectedItem;
+ ArrayList condition_list = new ArrayList();
+ string name = null;
+ if (txt_doc_search.Text != "")
+ {
+ name = txt_doc_search.Text;
+ }
+
+ foreach (Record record in Cache.OpenERPOutlookPlugin.SearchRecord(name,model.model))
+ {
+ this.add_item_recordlist(record);
+ }
+ if (lstview_object.Items.Count <= 0)
+ {
+ Connect.displayMessage("No matching Document(s) found.");
+ }
+ lstview_object.Sort();
+ }
+
+ private void cmboboxcreate_SelectedIndexChanged(object sender, EventArgs e)
+ {
+ try
+ {
+ this.load_data_list();
+ }
+ catch (Exception ex)
+ { Connect.handleException(ex); }
+ }
+
+ private void btn_search_Click(object sender, EventArgs e)
+ {
+ try
+ {
+ this.load_data_list();
+ }
+ catch
+ { Connect.displayMessage("Please Enter Search Text"); }
+ }
+ }
+}
+
diff --git a/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/frm_push_mail.designer.cs b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/frm_push_mail.designer.cs
new file mode 100644
index 00000000000..f6282eed6b7
--- /dev/null
+++ b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/frm_push_mail.designer.cs
@@ -0,0 +1,202 @@
+namespace OpenERPOutlookPlugin
+{
+ partial class frm_push_mail
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(frm_push_mail));
+ this.groupBox1 = new System.Windows.Forms.GroupBox();
+ this.btn_search = new System.Windows.Forms.Button();
+ this.txt_doc_search = new System.Windows.Forms.TextBox();
+ this.lbtsrch = new System.Windows.Forms.Label();
+ this.cmboboxcreate = new System.Windows.Forms.ComboBox();
+ this.lbtypedoc = new System.Windows.Forms.Label();
+ this.lstview_object = new System.Windows.Forms.ListView();
+ this.colheadname = new System.Windows.Forms.ColumnHeader();
+ this.colheadmodelname = new System.Windows.Forms.ColumnHeader();
+ this.btn_attach_mail_to_partner = new System.Windows.Forms.Button();
+ this.lbldocs = new System.Windows.Forms.Label();
+ this.groupBox1.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // groupBox1
+ //
+ this.groupBox1.Controls.Add(this.btn_search);
+ this.groupBox1.Controls.Add(this.txt_doc_search);
+ this.groupBox1.Controls.Add(this.lbtsrch);
+ this.groupBox1.Controls.Add(this.cmboboxcreate);
+ this.groupBox1.Controls.Add(this.lbtypedoc);
+ this.groupBox1.Controls.Add(this.lstview_object);
+ this.groupBox1.Controls.Add(this.btn_attach_mail_to_partner);
+ this.groupBox1.Controls.Add(this.lbldocs);
+ this.groupBox1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.groupBox1.Location = new System.Drawing.Point(13, 12);
+ this.groupBox1.Name = "groupBox1";
+ this.groupBox1.Size = new System.Drawing.Size(440, 460);
+ this.groupBox1.TabIndex = 3;
+ this.groupBox1.TabStop = false;
+ this.groupBox1.Text = "Link to an Existing Document";
+ //
+ // btn_search
+ //
+ this.btn_search.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.btn_search.Image = global::OpenERPOutlookPlugin.Properties.Resources.Search;
+ this.btn_search.ImageAlign = System.Drawing.ContentAlignment.BottomLeft;
+ this.btn_search.Location = new System.Drawing.Point(364, 59);
+ this.btn_search.Name = "btn_search";
+ this.btn_search.Size = new System.Drawing.Size(70, 23);
+ this.btn_search.TabIndex = 15;
+ this.btn_search.Text = "&Search ";
+ this.btn_search.TextAlign = System.Drawing.ContentAlignment.TopRight;
+ this.btn_search.UseVisualStyleBackColor = true;
+ this.btn_search.Click += new System.EventHandler(this.btn_search_Click);
+ //
+ // txt_doc_search
+ //
+ this.txt_doc_search.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.txt_doc_search.Location = new System.Drawing.Point(104, 59);
+ this.txt_doc_search.Name = "txt_doc_search";
+ this.txt_doc_search.Size = new System.Drawing.Size(254, 20);
+ this.txt_doc_search.TabIndex = 14;
+ //
+ // lbtsrch
+ //
+ this.lbtsrch.AutoSize = true;
+ this.lbtsrch.Location = new System.Drawing.Point(32, 59);
+ this.lbtsrch.Name = "lbtsrch";
+ this.lbtsrch.Size = new System.Drawing.Size(51, 13);
+ this.lbtsrch.TabIndex = 13;
+ this.lbtsrch.Text = "Search:";
+ //
+ // cmboboxcreate
+ //
+ this.cmboboxcreate.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.cmboboxcreate.FormattingEnabled = true;
+ this.cmboboxcreate.Items.AddRange(new object[] {
+ ""});
+ this.cmboboxcreate.Location = new System.Drawing.Point(104, 24);
+ this.cmboboxcreate.Name = "cmboboxcreate";
+ this.cmboboxcreate.Size = new System.Drawing.Size(330, 21);
+ this.cmboboxcreate.TabIndex = 12;
+ this.cmboboxcreate.SelectedIndexChanged += new System.EventHandler(this.cmboboxcreate_SelectedIndexChanged);
+ //
+ // lbtypedoc
+ //
+ this.lbtypedoc.AutoSize = true;
+ this.lbtypedoc.Location = new System.Drawing.Point(15, 24);
+ this.lbtypedoc.Name = "lbtypedoc";
+ this.lbtypedoc.Size = new System.Drawing.Size(68, 13);
+ this.lbtypedoc.TabIndex = 11;
+ this.lbtypedoc.Text = "Document:";
+ //
+ // lstview_object
+ //
+ this.lstview_object.Alignment = System.Windows.Forms.ListViewAlignment.Default;
+ this.lstview_object.AllowColumnReorder = true;
+ this.lstview_object.BackgroundImageTiled = true;
+ this.lstview_object.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
+ this.colheadname,
+ this.colheadmodelname});
+ this.lstview_object.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lstview_object.FullRowSelect = true;
+ this.lstview_object.GridLines = true;
+ this.lstview_object.HideSelection = false;
+ this.lstview_object.Location = new System.Drawing.Point(9, 110);
+ this.lstview_object.Name = "lstview_object";
+ this.lstview_object.Size = new System.Drawing.Size(425, 299);
+ this.lstview_object.TabIndex = 10;
+ this.lstview_object.UseCompatibleStateImageBehavior = false;
+ this.lstview_object.View = System.Windows.Forms.View.Details;
+ //
+ // colheadname
+ //
+ this.colheadname.Text = "Name";
+ this.colheadname.Width = 247;
+ //
+ // colheadmodelname
+ //
+ this.colheadmodelname.Text = "Model Name";
+ this.colheadmodelname.Width = 400;
+ //
+ // btn_attach_mail_to_partner
+ //
+ this.btn_attach_mail_to_partner.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.btn_attach_mail_to_partner.Image = global::OpenERPOutlookPlugin.Properties.Resources.Archive;
+ this.btn_attach_mail_to_partner.ImageAlign = System.Drawing.ContentAlignment.BottomLeft;
+ this.btn_attach_mail_to_partner.Location = new System.Drawing.Point(377, 424);
+ this.btn_attach_mail_to_partner.Name = "btn_attach_mail_to_partner";
+ this.btn_attach_mail_to_partner.Size = new System.Drawing.Size(57, 23);
+ this.btn_attach_mail_to_partner.TabIndex = 4;
+ this.btn_attach_mail_to_partner.Text = "P&ush ";
+ this.btn_attach_mail_to_partner.TextAlign = System.Drawing.ContentAlignment.TopRight;
+ this.btn_attach_mail_to_partner.UseVisualStyleBackColor = true;
+ this.btn_attach_mail_to_partner.Click += new System.EventHandler(this.btn_attach_mail_to_partner_Click);
+ //
+ // lbldocs
+ //
+ this.lbldocs.AutoSize = true;
+ this.lbldocs.Location = new System.Drawing.Point(9, 91);
+ this.lbldocs.Name = "lbldocs";
+ this.lbldocs.Size = new System.Drawing.Size(74, 13);
+ this.lbldocs.TabIndex = 0;
+ this.lbldocs.Text = "Documents:";
+ //
+ // frm_push_mail
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(467, 484);
+ this.Controls.Add(this.groupBox1);
+ this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Fixed3D;
+ this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
+ this.KeyPreview = true;
+ this.MaximizeBox = false;
+ this.Name = "frm_push_mail";
+ this.Text = "Push Mail";
+ this.Load += new System.EventHandler(this.frm_push_mail_Load);
+ this.groupBox1.ResumeLayout(false);
+ this.groupBox1.PerformLayout();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.GroupBox groupBox1;
+ private System.Windows.Forms.ListView lstview_object;
+ private System.Windows.Forms.ColumnHeader colheadname;
+ private System.Windows.Forms.ColumnHeader colheadmodelname;
+ private System.Windows.Forms.Button btn_attach_mail_to_partner;
+ private System.Windows.Forms.Label lbldocs;
+ private System.Windows.Forms.ComboBox cmboboxcreate;
+ private System.Windows.Forms.Label lbtypedoc;
+ private System.Windows.Forms.Button btn_search;
+ private System.Windows.Forms.TextBox txt_doc_search;
+ private System.Windows.Forms.Label lbtsrch;
+
+ }
+}
\ No newline at end of file
diff --git a/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/frm_push_mail.resx b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/frm_push_mail.resx
new file mode 100644
index 00000000000..3c294eb0444
--- /dev/null
+++ b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/frm_push_mail.resx
@@ -0,0 +1,145 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+
+
+ AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAACAgICAAAAKwAAAGw8PDykT09Pu1BQULpAQEChAAAAYgAAAB0AAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAFBQUNAAAAanFxcdygoaH/l5eX/5OTk/+ZmJj/o6Kj/6alpv93d3jbCAgIVwkJ
+ CQMAAAAAAAAAAAAAAAAHBwcKIyQkhLCwr/2IiIv+Q0NH/zc4PP9KSlD/b29w/3l5eP+VlJX/srKy/rCw
+ sf87OztxEBAQAgAAAAD///8ADQ0NYMfGxf5lZXv+BwdS/hISdv8MDGb/EBBw/wgIUf8rK0D/X19g/4yM
+ jP7CwsL+xsbG/ywsLEYAAAAAAAAAFqioqdykpLn+ERGH/hsbo/8vMEj/srK5/4OEpP8cHJr/GRmh/w8P
+ Qv9RUVP/nJuc/trZ2f69vb7aAAAAAiQkI1D49/X/YWGp/yUlzv8WFo3/bW1w/9vb2//x8O//oqPH/yUl
+ xv8jI87/Dw9C/2loaP/Ly8v/8vLy/3FxcD2jo6OR/////1tbyf8uLuf/HByh/2VlaP/e3t7//f39////
+ //9dXc//LS3n/yIi0f8rKzj/pqal//7+/v/W1taEycnJqv////9wcOX/ODj3/ygoz/9ERE3/xMTE//v7
+ +//+/v//09Pz/zMz8v80NPn/EBBx/4KCgf/09PT/7e3to9bW1qn/////oqL6/0JC//9BQf//Hx9G/5aW
+ lP/u7u7///////////9MTPf/Ojr8/yIivv9hYWv/7u7u//X19aTY2NmI//////Hx/P84OPD/QED7/xkZ
+ kf9iYmb/xcXF//r6+v//////fX3n/zc3+/8pKdz/WVlm//Pz8//6+vmIvb29O//////////+jIzV/zMz
+ 6P8rK+H/KChP/4yMiv/X19f/+Pj4/42Nyf8pKev/ICDN/3JygP7/////9/f3PgAAAAD5+fnd/////v//
+ //9SUqn/JCTH/xUVmv9SUmn/pqaj/8nJxv9LS4H/Hh7P/w4Oj/7KytH+/v7+5QAAAAAAAAAA5OTkNP//
+ ///+/v7//////2Fhkv8PD4T/DQ1//yYmXP8xMVz/DAyA/xAQmf9iYob///////z8/DsAAAAAAAAAAAAA
+ AAD8/Pxc/v7+//7+/v7////+xcXL/0xMbP8ICEf/AAA+/xISS/6AgJD+//////7+/mgAAAAAAAAAAAAA
+ AAAAAAAAAAAAAPv7+zX+/v7m//////7+/v/////+/////v//////////////7P7+/j4AAAAA+fn5AAAA
+ AAAAAAAAAAAAAAAAAAD///8AAAAAAP7+/kj+/v6S/v7+s/7+/rT+/v6U/v7+TQAAAAAAAAAAAAAAAAAA
+ AAAAAAAA/D8AAPAPAADABwAAwAMAAIABAACAAQAAAAAAAAAAAAAAAAAAAAAAAIABAACAAQAAwAMAAOAH
+ AADwDwAA/D8AAA==
+
+
+
\ No newline at end of file
diff --git a/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/frm_select_partner.Designer.cs b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/frm_select_partner.Designer.cs
new file mode 100644
index 00000000000..95c478fbb1e
--- /dev/null
+++ b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/frm_select_partner.Designer.cs
@@ -0,0 +1,141 @@
+namespace OpenERPOutlookPlugin
+{
+ partial class frm_select_partner
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(frm_select_partner));
+ this.txt_select_partner = new System.Windows.Forms.TextBox();
+ this.groupBox1 = new System.Windows.Forms.GroupBox();
+ this.lstbox_select_partner = new System.Windows.Forms.ListBox();
+ this.btn_select_partner_select = new System.Windows.Forms.Button();
+ this.btn_select_partner_close = new System.Windows.Forms.Button();
+ this.btn_select_partner_search = new System.Windows.Forms.Button();
+ this.groupBox1.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // txt_select_partner
+ //
+ this.txt_select_partner.Location = new System.Drawing.Point(19, 20);
+ this.txt_select_partner.Name = "txt_select_partner";
+ this.txt_select_partner.Size = new System.Drawing.Size(209, 20);
+ this.txt_select_partner.TabIndex = 0;
+ //
+ // groupBox1
+ //
+ this.groupBox1.Controls.Add(this.lstbox_select_partner);
+ this.groupBox1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.groupBox1.Location = new System.Drawing.Point(13, 51);
+ this.groupBox1.Name = "groupBox1";
+ this.groupBox1.Size = new System.Drawing.Size(307, 368);
+ this.groupBox1.TabIndex = 7;
+ this.groupBox1.TabStop = false;
+ this.groupBox1.Text = "Partner Name";
+ //
+ // lstbox_select_partner
+ //
+ this.lstbox_select_partner.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lstbox_select_partner.FormattingEnabled = true;
+ this.lstbox_select_partner.Location = new System.Drawing.Point(6, 27);
+ this.lstbox_select_partner.Name = "lstbox_select_partner";
+ this.lstbox_select_partner.Size = new System.Drawing.Size(295, 329);
+ this.lstbox_select_partner.TabIndex = 4;
+ //
+ // btn_select_partner_select
+ //
+ this.btn_select_partner_select.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.btn_select_partner_select.Image = global::OpenERPOutlookPlugin.Properties.Resources.Success;
+ this.btn_select_partner_select.ImageAlign = System.Drawing.ContentAlignment.BottomLeft;
+ this.btn_select_partner_select.Location = new System.Drawing.Point(192, 432);
+ this.btn_select_partner_select.Name = "btn_select_partner_select";
+ this.btn_select_partner_select.Size = new System.Drawing.Size(53, 23);
+ this.btn_select_partner_select.TabIndex = 6;
+ this.btn_select_partner_select.Text = "&Link";
+ this.btn_select_partner_select.TextAlign = System.Drawing.ContentAlignment.TopRight;
+ this.btn_select_partner_select.UseVisualStyleBackColor = true;
+ this.btn_select_partner_select.Click += new System.EventHandler(this.btn_select_partner_select_Click);
+ //
+ // btn_select_partner_close
+ //
+ this.btn_select_partner_close.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.btn_select_partner_close.Image = global::OpenERPOutlookPlugin.Properties.Resources.Error;
+ this.btn_select_partner_close.ImageAlign = System.Drawing.ContentAlignment.BottomLeft;
+ this.btn_select_partner_close.Location = new System.Drawing.Point(251, 432);
+ this.btn_select_partner_close.Name = "btn_select_partner_close";
+ this.btn_select_partner_close.Size = new System.Drawing.Size(64, 23);
+ this.btn_select_partner_close.TabIndex = 5;
+ this.btn_select_partner_close.Text = "&Close ";
+ this.btn_select_partner_close.TextAlign = System.Drawing.ContentAlignment.TopRight;
+ this.btn_select_partner_close.UseVisualStyleBackColor = true;
+ this.btn_select_partner_close.Click += new System.EventHandler(this.btn_select_partner_close_Click);
+ //
+ // btn_select_partner_search
+ //
+ this.btn_select_partner_search.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.btn_select_partner_search.Image = ((System.Drawing.Image)(resources.GetObject("btn_select_partner_search.Image")));
+ this.btn_select_partner_search.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
+ this.btn_select_partner_search.Location = new System.Drawing.Point(245, 19);
+ this.btn_select_partner_search.Name = "btn_select_partner_search";
+ this.btn_select_partner_search.Size = new System.Drawing.Size(75, 23);
+ this.btn_select_partner_search.TabIndex = 1;
+ this.btn_select_partner_search.Text = "&Search ";
+ this.btn_select_partner_search.TextAlign = System.Drawing.ContentAlignment.TopRight;
+ this.btn_select_partner_search.UseVisualStyleBackColor = true;
+ this.btn_select_partner_search.Click += new System.EventHandler(this.btn_select_partner_search_Click);
+ //
+ // frm_select_partner
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(350, 467);
+ this.Controls.Add(this.groupBox1);
+ this.Controls.Add(this.btn_select_partner_select);
+ this.Controls.Add(this.btn_select_partner_close);
+ this.Controls.Add(this.btn_select_partner_search);
+ this.Controls.Add(this.txt_select_partner);
+ this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Fixed3D;
+ this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
+ this.MaximizeBox = false;
+ this.Name = "frm_select_partner";
+ this.Text = "Select Partner";
+ this.Load += new System.EventHandler(this.frm_select_partner_Load);
+ this.groupBox1.ResumeLayout(false);
+ this.ResumeLayout(false);
+ this.PerformLayout();
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.TextBox txt_select_partner;
+ private System.Windows.Forms.Button btn_select_partner_search;
+ private System.Windows.Forms.Button btn_select_partner_close;
+ private System.Windows.Forms.Button btn_select_partner_select;
+ private System.Windows.Forms.GroupBox groupBox1;
+ private System.Windows.Forms.ListBox lstbox_select_partner;
+ }
+}
\ No newline at end of file
diff --git a/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/frm_select_partner.cs b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/frm_select_partner.cs
new file mode 100644
index 00000000000..4e3af054c3e
--- /dev/null
+++ b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/frm_select_partner.cs
@@ -0,0 +1,121 @@
+/*
+ OpenERP, Open Source Business Applications
+ Copyright (c) 2011 OpenERP S.A.
+
+ 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 .
+*/
+
+
+using System;
+using System.Collections;
+using System.Windows.Forms;
+using OpenERPClient;
+using outlook = Microsoft.Office.Interop.Outlook;
+
+namespace OpenERPOutlookPlugin
+{
+
+ public partial class frm_select_partner : Form
+ {
+ public frm_select_partner()
+ {
+ InitializeComponent();
+
+ }
+ public Form parent_form = null;
+
+ private void btn_select_partner_select_Click(object sender, EventArgs e)
+ {
+ try
+ {
+ if (lstbox_select_partner.SelectedItem == null)
+ {
+ throw new Exception("Please select a partner from the list.");
+ }
+ else
+ {
+ txt_select_partner.Text = lstbox_select_partner.SelectedItem.ToString();
+ int partner_id = (int)Cache.OpenERPOutlookPlugin.CreatePartnerRecord(lstbox_select_partner.SelectedItem.ToString());
+ foreach (outlook.MailItem mailItem in Tools.MailItems())
+ {
+ Cache.OpenERPOutlookPlugin.CreateContactRecord(partner_id, mailItem.SenderName, mailItem.SenderEmailAddress);
+ }
+ this.Close();
+ }
+ }
+ catch (Exception ex)
+ {
+ Connect.handleException(ex);
+ }
+ }
+
+ private void btn_select_partner_close_Click(object sender, EventArgs e)
+ {
+ this.Close();
+ }
+
+ public void search_lst_partner()
+ {
+ /*
+ * Will search the list of partners as per the given search criteria.
+ */
+ try
+ {
+ lstbox_select_partner.Items.Clear();
+ foreach (Record oo in Cache.OpenERPOutlookPlugin.SearchRecord(txt_select_partner.Text, "res.partner"))
+ {
+ lstbox_select_partner.Items.Add(oo.name);
+ }
+ if (lstbox_select_partner.Items.Count == 0)
+ {
+ Connect.displayMessage("No matching Partner(s) found.");
+ }
+ }
+ catch (Exception ex)
+ {
+ Connect.handleException(ex);
+ }
+ }
+
+ private void btn_select_partner_search_Click(object sender, EventArgs e)
+ {
+ search_lst_partner();
+ }
+
+ public string SelectPartnerText
+ {
+ /*
+ * Will gets and sets the selected partner from the list of partners.
+ */
+ get
+ {
+ return this.txt_select_partner.Text;
+ }
+ set
+ {
+ this.txt_select_partner.Text = value;
+ }
+ }
+
+ private void frm_select_partner_Load(object sender, EventArgs e)
+ {
+ Record[] partenr_list = Cache.OpenERPOutlookPlugin.SearchRecord(null,"res.partner");
+
+ foreach (Record partner in partenr_list)
+ {
+ lstbox_select_partner.Items.Add(partner.name);
+ }
+ }
+ }
+}
diff --git a/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/frm_select_partner.resx b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/frm_select_partner.resx
new file mode 100644
index 00000000000..17f1d222db0
--- /dev/null
+++ b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/frm_select_partner.resx
@@ -0,0 +1,194 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+
+
+ R0lGODlhEAAQAPYAAPb29v7+/v39/fr6+t///+P//+T//9zc3IKDkfP//8X3//Pz99P//5Zxf5qqwZiZ
+ nc98R5K03KS83aG60bbr/8f5/7C61fX09OXm5rzx/////qzI6sr2/7TO6vr//7vt/9n//7rt/+Xl5LLm
+ //2rRKihla683sx6SXp/iuzs9P/+/aC4xd/w+LHl/4+ewuTk5Ih1jpKhucjh7cHAwaGepcfH2bHe+2ps
+ ft7f4Pz8/Ih1jZmYot7d3PPy+Nb//9T//4WJm97f38v5/8LE3cD0/8v9///pybnb8fjgv9z///////v7
+ +/urRnt7hLnk/9Tk86zg/5mZpn+Ajbvm//j+/7nt///aof/58f/589v//5m75dH//8P3/8L3/2trg8z8
+ /4uiwadtSIGMrMaAXZ6hvqKhouz///ysRbvr//39/v/XnZaotvPOmbSwtpl0hv2mOcjO5bu7vry8yd7e
+ 7K+tsLC83ZiuzqyEacrW6P///wAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAHkALAAAAAAQABAAAAejgHmC
+ g4SFhoILFnYSJjUAh3lpQyw+RB9aZBeGAXBPVE5QI1wRcoY9HRxTIRVCXwoOA4VzRxQtRVkFBCArj4Qp
+ GxlVPwYJZgRrvYMBdTZdDAUeSjJAsYNXSHEuaFtJBnheM4QaaiR3TWJgEzE3ZTmDKkZnEA07PG00dAdL
+ g1hWTGMwpGDIE0CAgEJs3pzQgeIFJEElwrhBIOKhIBwPogSxyNFQIAA7
+
+
+
+
+ AAABAAEAICAAAAEAGACoDAAAFgAAACgAAAAgAAAAQAAAAAEAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAxO+0UHsorMtUkJMo6LOY5JN81HsdDLM4/JMdINcBISKJCSpA+RpM9SJo6RJsxPJg2PJ84PKU4OadA
+ Pbs7L8lANd8qJNUiJtIZKModMNcUJOIUHu0iJvsaIOUaJsQuQMkXHNcvNOciJsstLNAvItJSQekqG6xQ
+ QchYSNKOg/3Cw//Q2f/P1f/S2P/T3P/R2P+iqP+7vv9vct8zM6k0Lbg6NcwcGroyN9oiLs4eLdccKOQg
+ KvMkKfYaIuEbJsgnOMkdGuUeHd4+PeseHLxAONI9N7p4edSzt//W1v/k4//h6P/f5v/Dw/+2tf+1t/+0
+ tv/Kzv/Y3f/S1f/U2P/Fyf8iKJlOVNMtM8IuM9UjKtgdJd0aI98bJN8nMOUqNN8dKc0pIPMnIOUvK9g5
+ N8w4NLWGiObR4P/k9//k7//K0/+JkeRWW8I5N78uKcAvLL4wMrxCR8hTWNKOlP/a4v/Z4//W4v+Ai+cx
+ OaooKr4mJ88sLuAjKNsWIMwoMt4yOusZI9QnHO42Le8lIME+Pb2Dg+fk7//o///b9/ff8v+OnN5ET6sx
+ NrE3MdIyKdcvKsszNscxOL0uN7YkKqdvduPc6f/Y6v/f8P/F0v9PUMg1MMc0MNY4OOQlK9AdJs4iLN4c
+ J90sIucvKdovL7lcX8fm6v/q9v/m/vbl//yQocxRXa8jLp4sML83MeIsJNwnJsoxNckjLrRATNBARNIo
+ K6srN4/c7f/a7f/k8//Kzf9pZN0nHrQrJskyNNgkLNMbJdYgK+AxK9wxL8k+RK/N1f/s8v/r9v/Y6uvq
+ +/9UW6o2ObMlKbgpK88vKuMqJt0sL801PcwwP8QaJ7MjIsY1MdBDRL54gtDm9//Y6fzq8//AwP9jWdU0
+ KMAxLdIwMt4hLtgcLdc3NdsfIauFkODo9P/x+v/p8vzx/f+uteY7OKw2L8wtLtYpK90nKeIpKt4qLs0l
+ Lr4iML4yPdUrJ94xKN0yLMc3OKavuuzt+//c5vfv9P/Z0/9rYN8tJsMoKNIjL9UYK9A9Od4hJKS9y//n
+ 9//0///x9/z09v+dl+g8LsoyI+InJ98iKd4iKN8kKtspLdIpMM0qNdMcI8wpJucqH+c8L+kzKL5MTaXs
+ 8//0///w+v/x8f++uf8vKLM0M9YlL9MkNNoxK9Y2OLrc7P/t///4//f7///28v+EeNw8JtkuHu4kJuMe
+ Kd4gKd4iKdwpKdkpKdknK90gJNssKu4iGeUuH+wvIdM9MrCmpOr0/f/r9uz2/P/q7f+XlP8zMcYhKMsf
+ LNYmHtc4OsTk8v/x//73/+39//v28P99b9U7JdssHu4gKOAcK9seKd4iJ+ApJOUrIucmIegjIuYwMu8b
+ GtwiGOczJOowHsVYS7709P/5//r6//Xy/P/d4P87PbkiJMghJdspI+AvML7b6f/x//79//L+/vj68v+N
+ f+Q7J9crIeoeKtwZLtccKtwiJ+IrIeksH+0oHu0iH+YuNOsdItsdGuU3LPgzHt42I7XY0P/6/f/2/+np
+ +ejq8/92fN8rLcgqKeMsKuEyNcDc6f/z//////j///779P+Ngds7LM4rJeIcLdcXMNQbLNsiJ+IsIucu
+ IOouJOwhHt8lL+AfLNwaIuEtLPI0Juo1I8SajOr49f/1/+z4//Dt+//J0v8vLsAvKt8gJc44QMPj7//w
+ +f/8/Pz//P/88v9zabw7L8cpKdscL9QXMNIbLNsiKN8sJeIwJOIzK+QjJdcfK9cdLtsWJt0eJ+MuJ+Y5
+ K9B8bNzv5v/z+fT6//Ln9/3k7/8wMrYsJtEcK70yQbXj8P/w9//79P//+P/78P98csU5McQnK9gbL9QX
+ MNQbLNkkK9kuKtcyK9IxL88qL9EcKNQYKtsXK94YKNknK9g1L8pjVM3m2f/6+P/6//7j8fff7P9fYdcs
+ KsMsN88tOLHb5//z+//////89/n79f+kn+o5NL8nLNUbLtUVL9cbLNsiKtssKtgyK9QsJ8oyM9ceJtcV
+ JdwYLuQWLd0hLtYrL8MxK6LWzv/49//w9fbz///q9v+lqP83NrYjHNk7Oszk7f/d7ez9/+T8/9/2+v/e
+ 4P8wMKwyN9kLHMcgNukZKeAdJuIrJu0uIek1I+IyJOAlJeMbJuYQKOYQKuIXLtgkNcYmL5fm7v/z/P/1
+ /vv2///x9//Y1v9FQKMoHuM3M8+epO/x/f/7/+n9/+T4///f4f8xMqQxOM8WJNAZKt8aKuEaJeEhIOYw
+ Je01IeYzI+InJ98bKd8QKuIOKuIVKt8iMc4wOK/Axv/v9v/4/v/4/v/w8//o5/9APY0pKtg4Os5dX77t
+ 8P/19f/7+v/69v/t6P9OTrgxNsEoMtYWJdUfLt4bKNgdJNEwMNwzJ9kyKtUlMc0bM8sSMdQSLdwZJecl
+ JeM3Lc2Shvzq4//49v/4+v/q7v/s7f8/P40iKtEzOc5BQbXi3v/27v/48P/58v/z7v+OjesuMLQuMtcf
+ KN0iKuEcKNQkMckrMcowKtcsK9UkNcYbOMIVNskXMNQgJeUsJOM6Kc6Zhv/u5P/69//2+//t8//h4v9B
+ P5gbJdYiKcw3N8GLhOz06//79P/z8f/09f/Pzf80MK0qItMsJu8hIOYgJtcwQssjMLwrJ94pJuAiMssc
+ OcAbOMIeNccnLNUzLNBAMrXLvv/4+f/6//vy/frv+P+mpvpAOqkhL+YXIc0xMspEPrXZ0v/49P/6/f/2
+ /P/t7v9cWMIsIcswJO4kGugkJt82RNMiMb0nKtklKN4gMsseNsQgNcYlMsouLNI7L8dBM6Ps5f/5//76
+ //Hu/Pjs9f90btlIPckhMe8YI9gsLtAyLq+PjNzh4f/4///2//zv9/+lp/VFO80yI98tIe0tJustMNgo
+ M8skMssiM8ogNMkiMsskLdUrKNs1JtxALcpNPajy7f/y+/j4//Tt+f/o7f9OQspGM+AUKd8bKdslKNE4
+ NcY/OqOsqefz+f/0///v/P/n8f9hYsozLcI6L+MzK+ohHNUtMd4iMc4gMs0iLtQkKdwpIucwIec7JN5F
+ LsZrXbv08v/0//3z//7n8v/P0P8tH7swG9sYMdUaLNMpLNs0LdQ6LMBbTsGxrfTv9f/s/P/o/P/T5f89
+ S54jKKkwLNI4L/EpIukbINsmLOksJ/gmGvYrFPg6IPZEK99FMrevqPPw9f/k8Prt+//m7v97eOUxI8g0
+ IeIaL9EcLNMnKuAwKOEwINI8K8htYdeene3T3//k/P/J5PnK4/82Rp8uM7ciHcwnH+IsLe0aGuIdFO0x
+ H/4zHPQqFNE9L71jXL3s8f/e7P/q+//m9P+DiN0xLqw3LNY8LewiLdslLN8pKuYvJ+owH+UwHNk5Kc5F
+ Pb+Ume7N3v/d+f/R8P/G3/9FV7A5QcQwM9IqLdwjJd4xKuk8MuosJMUwLqp9hdLa6v/m/f/b9f/j9v+z
+ v/9ARLQrKLk5MdwfFc0oKuMoKeUoJeYoIuUsIusyJe0zJeEvJspBQMBMVLG1y//a9P/Y8f/C2f+Ek/o9
+ SsRATdEyPsYoL7oyN7hXW8uNmOrF2P/h+P/X8v/d9f+KmuYgKpU4OcVEQeQXEsE8N+wqIOksI+gnIuEg
+ H9kiI98tLOgvKuksJ94kIMU8PcsvN6hUYL6Jm+7W6P/E1f/T6P/F5f/R9P/U8P/U6//U5v/d7v/d7//Y
+ 6f+zw/9DULg1PMEtL8oSEL0uKuE6NO0nItsxIugyJ+kvKuMlKdshKNsgKd4hJeIhI+AzMegkIcosK8Ex
+ Nbk9Q7ouNqdmceFHV7e00P+du+yNpd+brO+uuv+epv9kac8rMKM9QsYeJbgoLc8yNuMsLeMoJ+EiHtsl
+ H9w4Ktw1K9wxL90rMd4hL9wZKdoXJdscJt4fI9k8POwnJM41MNM5NNMiGro1Lc5GQNswLbkuKrE2MLdE
+ O8hLPNM/L9A0JM8sIdEjIc8wNd4pNNYcKcsVHsUgJdQ0M+0uKeg1KNAuJs0oJ9EnLtkdLtkWKdgWKt0i
+ MOYeJ9wZGs4zLuMwJdktIdVFNuwvH9gxIdo8KdxBLd1AK9s9Jdc6H9o7IOI5H+40IO4lH+I3O/EQH8IZ
+ Lcg2ROQeJ88eHtYoI+QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
+
+
+
\ No newline at end of file
diff --git a/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPluginSetup/OpenERPOutlookPluginSetup.vdproj b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPluginSetup/OpenERPOutlookPluginSetup.vdproj
new file mode 100644
index 00000000000..2ecd6c494cf
--- /dev/null
+++ b/addons/outlook/static/openerp-outlook-plugin/OpenERPOutlookPluginSetup/OpenERPOutlookPluginSetup.vdproj
@@ -0,0 +1,988 @@
+"DeployProject"
+{
+"VSVersion" = "3:800"
+"ProjectType" = "8:{978C614F-708E-4E1A-B201-565925725DBA}"
+"IsWebType" = "8:FALSE"
+"ProjectName" = "8:OpenERPOutlookPluginSetup"
+"LanguageId" = "3:1033"
+"CodePage" = "3:1252"
+"UILanguageId" = "3:1033"
+"SccProjectName" = "8:"
+"SccLocalPath" = "8:"
+"SccAuxPath" = "8:"
+"SccProvider" = "8:"
+ "Hierarchy"
+ {
+ "Entry"
+ {
+ "MsmKey" = "8:_6AC61E6DAA74BD8A62A56739851214E7"
+ "OwnerKey" = "8:_D219AD7AB7924D44B7E2945648C76CF7"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
+ "MsmKey" = "8:_7588D46F3D97B108090A11D1415DE5EC"
+ "OwnerKey" = "8:_D219AD7AB7924D44B7E2945648C76CF7"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
+ "MsmKey" = "8:_9BA1227571F16B6ABCB102A098A4B13F"
+ "OwnerKey" = "8:_6AC61E6DAA74BD8A62A56739851214E7"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
+ "MsmKey" = "8:_9BA1227571F16B6ABCB102A098A4B13F"
+ "OwnerKey" = "8:_D219AD7AB7924D44B7E2945648C76CF7"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
+ "MsmKey" = "8:_B66CD6B8E834B37C2AFA64398688811D"
+ "OwnerKey" = "8:_D219AD7AB7924D44B7E2945648C76CF7"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
+ "MsmKey" = "8:_B66CD6B8E834B37C2AFA64398688811D"
+ "OwnerKey" = "8:_7588D46F3D97B108090A11D1415DE5EC"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
+ "MsmKey" = "8:_D219AD7AB7924D44B7E2945648C76CF7"
+ "OwnerKey" = "8:_UNDEFINED"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
+ "MsmKey" = "8:_UNDEFINED"
+ "OwnerKey" = "8:_7588D46F3D97B108090A11D1415DE5EC"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
+ "MsmKey" = "8:_UNDEFINED"
+ "OwnerKey" = "8:_9BA1227571F16B6ABCB102A098A4B13F"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
+ "MsmKey" = "8:_UNDEFINED"
+ "OwnerKey" = "8:_6AC61E6DAA74BD8A62A56739851214E7"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
+ "MsmKey" = "8:_UNDEFINED"
+ "OwnerKey" = "8:_B66CD6B8E834B37C2AFA64398688811D"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
+ "MsmKey" = "8:_UNDEFINED"
+ "OwnerKey" = "8:_D219AD7AB7924D44B7E2945648C76CF7"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ }
+ "Configurations"
+ {
+ "Debug"
+ {
+ "DisplayName" = "8:Debug"
+ "IsDebugOnly" = "11:TRUE"
+ "IsReleaseOnly" = "11:FALSE"
+ "OutputFilename" = "8:Debug\\OpenERPOutlookPluginSetup.msi"
+ "PackageFilesAs" = "3:2"
+ "PackageFileSize" = "3:-2147483648"
+ "CabType" = "3:1"
+ "Compression" = "3:2"
+ "SignOutput" = "11:FALSE"
+ "CertificateFile" = "8:"
+ "PrivateKeyFile" = "8:"
+ "TimeStampServer" = "8:"
+ "InstallerBootstrapper" = "3:2"
+ "BootstrapperCfg:{63ACBE69-63AA-4F98-B2B6-99F9E24495F2}"
+ {
+ "Enabled" = "11:TRUE"
+ "PromptEnabled" = "11:TRUE"
+ "PrerequisitesLocation" = "2:1"
+ "Url" = "8:"
+ "ComponentsUrl" = "8:"
+ "Items"
+ {
+ "{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:Microsoft.Net.Framework.3.5"
+ {
+ "Name" = "8:.NET Framework 3.5"
+ "ProductCode" = "8:Microsoft.Net.Framework.3.5"
+ }
+ "{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:Microsoft.Windows.Installer.3.1"
+ {
+ "Name" = "8:Windows Installer 3.1"
+ "ProductCode" = "8:Microsoft.Windows.Installer.3.1"
+ }
+ }
+ }
+ }
+ "Release"
+ {
+ "DisplayName" = "8:Release"
+ "IsDebugOnly" = "11:FALSE"
+ "IsReleaseOnly" = "11:TRUE"
+ "OutputFilename" = "8:Release\\OpenERPOutlookPluginSetup.msi"
+ "PackageFilesAs" = "3:2"
+ "PackageFileSize" = "3:-2147483648"
+ "CabType" = "3:1"
+ "Compression" = "3:2"
+ "SignOutput" = "11:FALSE"
+ "CertificateFile" = "8:"
+ "PrivateKeyFile" = "8:"
+ "TimeStampServer" = "8:"
+ "InstallerBootstrapper" = "3:2"
+ "BootstrapperCfg:{63ACBE69-63AA-4F98-B2B6-99F9E24495F2}"
+ {
+ "Enabled" = "11:TRUE"
+ "PromptEnabled" = "11:TRUE"
+ "PrerequisitesLocation" = "2:1"
+ "Url" = "8:"
+ "ComponentsUrl" = "8:"
+ "Items"
+ {
+ "{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:Microsoft.Net.Framework.3.5"
+ {
+ "Name" = "8:.NET Framework 3.5"
+ "ProductCode" = "8:Microsoft.Net.Framework.3.5"
+ }
+ "{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:Microsoft.Windows.Installer.3.1"
+ {
+ "Name" = "8:Windows Installer 3.1"
+ "ProductCode" = "8:Microsoft.Windows.Installer.3.1"
+ }
+ }
+ }
+ }
+ }
+ "Deployable"
+ {
+ "CustomAction"
+ {
+ }
+ "DefaultFeature"
+ {
+ "Name" = "8:DefaultFeature"
+ "Title" = "8:"
+ "Description" = "8:"
+ }
+ "ExternalPersistence"
+ {
+ "LaunchCondition"
+ {
+ "{A06ECF26-33A3-4562-8140-9B0E340D4F24}:_BFDD92B2291E48D1A8B52DFCA8631CD4"
+ {
+ "Name" = "8:.NET Framework"
+ "Message" = "8:[VSDNETMSG]"
+ "Version" = "8:3.5.21022"
+ "AllowLaterVersions" = "11:FALSE"
+ "InstallUrl" = "8:http://go.microsoft.com/fwlink/?LinkId=76617"
+ }
+ }
+ }
+ "File"
+ {
+ "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_6AC61E6DAA74BD8A62A56739851214E7"
+ {
+ "AssemblyRegister" = "3:1"
+ "AssemblyIsInGAC" = "11:TRUE"
+ "AssemblyAsmDisplayName" = "8:Microsoft.Office.Interop.Outlook, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"
+ "ScatterAssemblies"
+ {
+ "_6AC61E6DAA74BD8A62A56739851214E7"
+ {
+ "Name" = "8:Microsoft.Office.Interop.Outlook.dll"
+ "Attributes" = "3:512"
+ }
+ }
+ "SourcePath" = "8:Microsoft.Office.Interop.Outlook.dll"
+ "TargetName" = "8:"
+ "Tag" = "8:"
+ "Folder" = "8:_F8355F1930014BA7AC04125197F9FCF8"
+ "Condition" = "8:"
+ "Transitive" = "11:FALSE"
+ "Vital" = "11:TRUE"
+ "ReadOnly" = "11:FALSE"
+ "Hidden" = "11:FALSE"
+ "System" = "11:FALSE"
+ "Permanent" = "11:FALSE"
+ "SharedLegacy" = "11:FALSE"
+ "PackageAs" = "3:1"
+ "Register" = "3:1"
+ "Exclude" = "11:FALSE"
+ "IsDependency" = "11:TRUE"
+ "IsolateTo" = "8:"
+ }
+ "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_7588D46F3D97B108090A11D1415DE5EC"
+ {
+ "AssemblyRegister" = "3:1"
+ "AssemblyIsInGAC" = "11:FALSE"
+ "AssemblyAsmDisplayName" = "8:OpenERPClient, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL"
+ "ScatterAssemblies"
+ {
+ "_7588D46F3D97B108090A11D1415DE5EC"
+ {
+ "Name" = "8:OpenERPClient.dll"
+ "Attributes" = "3:512"
+ }
+ }
+ "SourcePath" = "8:OpenERPClient.dll"
+ "TargetName" = "8:"
+ "Tag" = "8:"
+ "Folder" = "8:_F8355F1930014BA7AC04125197F9FCF8"
+ "Condition" = "8:"
+ "Transitive" = "11:FALSE"
+ "Vital" = "11:TRUE"
+ "ReadOnly" = "11:FALSE"
+ "Hidden" = "11:FALSE"
+ "System" = "11:FALSE"
+ "Permanent" = "11:FALSE"
+ "SharedLegacy" = "11:FALSE"
+ "PackageAs" = "3:1"
+ "Register" = "3:1"
+ "Exclude" = "11:FALSE"
+ "IsDependency" = "11:TRUE"
+ "IsolateTo" = "8:"
+ }
+ "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_9BA1227571F16B6ABCB102A098A4B13F"
+ {
+ "AssemblyRegister" = "3:1"
+ "AssemblyIsInGAC" = "11:TRUE"
+ "AssemblyAsmDisplayName" = "8:office, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"
+ "ScatterAssemblies"
+ {
+ "_9BA1227571F16B6ABCB102A098A4B13F"
+ {
+ "Name" = "8:office.dll"
+ "Attributes" = "3:512"
+ }
+ }
+ "SourcePath" = "8:office.dll"
+ "TargetName" = "8:"
+ "Tag" = "8:"
+ "Folder" = "8:_F8355F1930014BA7AC04125197F9FCF8"
+ "Condition" = "8:"
+ "Transitive" = "11:FALSE"
+ "Vital" = "11:TRUE"
+ "ReadOnly" = "11:FALSE"
+ "Hidden" = "11:FALSE"
+ "System" = "11:FALSE"
+ "Permanent" = "11:FALSE"
+ "SharedLegacy" = "11:FALSE"
+ "PackageAs" = "3:1"
+ "Register" = "3:1"
+ "Exclude" = "11:FALSE"
+ "IsDependency" = "11:TRUE"
+ "IsolateTo" = "8:"
+ }
+ "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_B66CD6B8E834B37C2AFA64398688811D"
+ {
+ "AssemblyRegister" = "3:1"
+ "AssemblyIsInGAC" = "11:FALSE"
+ "AssemblyAsmDisplayName" = "8:CookComputing.XmlRpcV2, Version=0.0.0.0, Culture=neutral, processorArchitecture=MSIL"
+ "ScatterAssemblies"
+ {
+ "_B66CD6B8E834B37C2AFA64398688811D"
+ {
+ "Name" = "8:CookComputing.XmlRpcV2.dll"
+ "Attributes" = "3:512"
+ }
+ }
+ "SourcePath" = "8:CookComputing.XmlRpcV2.dll"
+ "TargetName" = "8:"
+ "Tag" = "8:"
+ "Folder" = "8:_F8355F1930014BA7AC04125197F9FCF8"
+ "Condition" = "8:"
+ "Transitive" = "11:FALSE"
+ "Vital" = "11:TRUE"
+ "ReadOnly" = "11:FALSE"
+ "Hidden" = "11:FALSE"
+ "System" = "11:FALSE"
+ "Permanent" = "11:FALSE"
+ "SharedLegacy" = "11:FALSE"
+ "PackageAs" = "3:1"
+ "Register" = "3:1"
+ "Exclude" = "11:FALSE"
+ "IsDependency" = "11:TRUE"
+ "IsolateTo" = "8:"
+ }
+ }
+ "FileType"
+ {
+ }
+ "Folder"
+ {
+ "{1525181F-901A-416C-8A58-119130FE478E}:_0AB219A94AD9480C8B328A36290F8500"
+ {
+ "Name" = "8:#1916"
+ "AlwaysCreate" = "11:FALSE"
+ "Condition" = "8:"
+ "Transitive" = "11:FALSE"
+ "Property" = "8:DesktopFolder"
+ "Folders"
+ {
+ }
+ }
+ "{1525181F-901A-416C-8A58-119130FE478E}:_BE76AEAED62647E882A7E7E462208B6C"
+ {
+ "Name" = "8:#1919"
+ "AlwaysCreate" = "11:FALSE"
+ "Condition" = "8:"
+ "Transitive" = "11:FALSE"
+ "Property" = "8:ProgramMenuFolder"
+ "Folders"
+ {
+ }
+ }
+ "{3C67513D-01DD-4637-8A68-80971EB9504F}:_F8355F1930014BA7AC04125197F9FCF8"
+ {
+ "DefaultLocation" = "8:[ProgramFilesFolder][Manufacturer]\\[ProductName]"
+ "Name" = "8:#1925"
+ "AlwaysCreate" = "11:FALSE"
+ "Condition" = "8:"
+ "Transitive" = "11:FALSE"
+ "Property" = "8:TARGETDIR"
+ "Folders"
+ {
+ }
+ }
+ }
+ "LaunchCondition"
+ {
+ }
+ "Locator"
+ {
+ }
+ "MsiBootstrapper"
+ {
+ "LangId" = "3:1033"
+ "RequiresElevation" = "11:FALSE"
+ }
+ "Product"
+ {
+ "Name" = "8:Microsoft Visual Studio"
+ "ProductName" = "8:OpenERPOutlookPluginSetup"
+ "ProductCode" = "8:{DB110066-1D22-421E-AE6E-008EFC7D9BA3}"
+ "PackageCode" = "8:{01C16D46-10C4-4867-9DA7-158EA0851BA2}"
+ "UpgradeCode" = "8:{D423841B-05E6-4B05-93A7-3AF0D3F87416}"
+ "RestartWWWService" = "11:FALSE"
+ "RemovePreviousVersions" = "11:FALSE"
+ "DetectNewerInstalledVersion" = "11:TRUE"
+ "InstallAllUsers" = "11:FALSE"
+ "ProductVersion" = "8:1.0.0"
+ "Manufacturer" = "8:OpenERP"
+ "ARPHELPTELEPHONE" = "8:"
+ "ARPHELPLINK" = "8:"
+ "Title" = "8:OpenERPOutlookPluginSetup"
+ "Subject" = "8:"
+ "ARPCONTACT" = "8:OpenERP"
+ "Keywords" = "8:"
+ "ARPCOMMENTS" = "8:"
+ "ARPURLINFOABOUT" = "8:"
+ "ARPPRODUCTICON" = "8:"
+ "ARPIconIndex" = "3:0"
+ "SearchPath" = "8:"
+ "UseSystemSearchPath" = "11:TRUE"
+ "TargetPlatform" = "3:0"
+ "PreBuildEvent" = "8:"
+ "PostBuildEvent" = "8:"
+ "RunPostBuildEvent" = "3:0"
+ }
+ "Registry"
+ {
+ "HKLM"
+ {
+ "Keys"
+ {
+ "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_85BD67F9F053414A885B4BD155C3503A"
+ {
+ "Name" = "8:Software"
+ "Condition" = "8:"
+ "AlwaysCreate" = "11:FALSE"
+ "DeleteAtUninstall" = "11:FALSE"
+ "Transitive" = "11:FALSE"
+ "Keys"
+ {
+ "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_EBCD33B942DF4A239ACC7022DD3FEAA6"
+ {
+ "Name" = "8:Microsoft"
+ "Condition" = "8:"
+ "AlwaysCreate" = "11:TRUE"
+ "DeleteAtUninstall" = "11:FALSE"
+ "Transitive" = "11:FALSE"
+ "Keys"
+ {
+ "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_5B7FCC91FAAA4F64BB7C83492A6F2AF0"
+ {
+ "Name" = "8:Office"
+ "Condition" = "8:"
+ "AlwaysCreate" = "11:TRUE"
+ "DeleteAtUninstall" = "11:FALSE"
+ "Transitive" = "11:FALSE"
+ "Keys"
+ {
+ "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_1064D50BF01A4D51B868E982FC220247"
+ {
+ "Name" = "8:Outlook"
+ "Condition" = "8:"
+ "AlwaysCreate" = "11:TRUE"
+ "DeleteAtUninstall" = "11:FALSE"
+ "Transitive" = "11:FALSE"
+ "Keys"
+ {
+ "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_137204EE56DC497088E348674D3D8B7F"
+ {
+ "Name" = "8:AddIns"
+ "Condition" = "8:"
+ "AlwaysCreate" = "11:TRUE"
+ "DeleteAtUninstall" = "11:FALSE"
+ "Transitive" = "11:FALSE"
+ "Keys"
+ {
+ "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_D274EDB843AA45D79536215DBFA689AE"
+ {
+ "Name" = "8:OpenERPOutlookPlugin.Connect"
+ "Condition" = "8:"
+ "AlwaysCreate" = "11:TRUE"
+ "DeleteAtUninstall" = "11:FALSE"
+ "Transitive" = "11:FALSE"
+ "Keys"
+ {
+ }
+ "Values"
+ {
+ "{ADCFDA98-8FDD-45E4-90BC-E3D20B029870}:_7DAB0B878C2B4AD6961544515CF9F67F"
+ {
+ "Name" = "8:LoadBehavior"
+ "Condition" = "8:"
+ "Transitive" = "11:FALSE"
+ "ValueTypes" = "3:3"
+ "Value" = "3:3"
+ }
+ "{ADCFDA98-8FDD-45E4-90BC-E3D20B029870}:_E727FA9F9AE4473B86EC5F2749DA6E00"
+ {
+ "Name" = "8:Description"
+ "Condition" = "8:"
+ "Transitive" = "11:FALSE"
+ "ValueTypes" = "3:1"
+ "Value" = "8:OpenERP Outlook Plugin"
+ }
+ "{ADCFDA98-8FDD-45E4-90BC-E3D20B029870}:_F8A784A42EA24C908396CFE4B36C9F21"
+ {
+ "Name" = "8:FriendlyName"
+ "Condition" = "8:"
+ "Transitive" = "11:FALSE"
+ "ValueTypes" = "3:1"
+ "Value" = "8:OpenERP Outlook Plugin"
+ }
+ }
+ }
+ }
+ "Values"
+ {
+ }
+ }
+ }
+ "Values"
+ {
+ }
+ }
+ }
+ "Values"
+ {
+ }
+ }
+ }
+ "Values"
+ {
+ }
+ }
+ }
+ "Values"
+ {
+ }
+ }
+ }
+ }
+ "HKCU"
+ {
+ "Keys"
+ {
+ "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_65C75F62BA5342D88380AD586D8CB4A2"
+ {
+ "Name" = "8:Software"
+ "Condition" = "8:"
+ "AlwaysCreate" = "11:FALSE"
+ "DeleteAtUninstall" = "11:FALSE"
+ "Transitive" = "11:FALSE"
+ "Keys"
+ {
+ }
+ "Values"
+ {
+ }
+ }
+ }
+ }
+ "HKCR"
+ {
+ "Keys"
+ {
+ }
+ }
+ "HKU"
+ {
+ "Keys"
+ {
+ }
+ }
+ "HKPU"
+ {
+ "Keys"
+ {
+ }
+ }
+ }
+ "Sequences"
+ {
+ }
+ "Shortcut"
+ {
+ }
+ "UserInterface"
+ {
+ "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_05A1A869F1C748A0AA4687CF7DF17408"
+ {
+ "Name" = "8:#1902"
+ "Sequence" = "3:1"
+ "Attributes" = "3:3"
+ "Dialogs"
+ {
+ "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_5F37EBB554844174BFF8F45DB2607A7D"
+ {
+ "Sequence" = "3:100"
+ "DisplayName" = "8:Finished"
+ "UseDynamicProperties" = "11:TRUE"
+ "IsDependency" = "11:FALSE"
+ "SourcePath" = "8:\\VsdFinishedDlg.wid"
+ "Properties"
+ {
+ "BannerBitmap"
+ {
+ "Name" = "8:BannerBitmap"
+ "DisplayName" = "8:#1001"
+ "Description" = "8:#1101"
+ "Type" = "3:8"
+ "ContextData" = "8:Bitmap"
+ "Attributes" = "3:4"
+ "Setting" = "3:1"
+ "UsePlugInResources" = "11:TRUE"
+ }
+ "UpdateText"
+ {
+ "Name" = "8:UpdateText"
+ "DisplayName" = "8:#1058"
+ "Description" = "8:#1158"
+ "Type" = "3:15"
+ "ContextData" = "8:"
+ "Attributes" = "3:0"
+ "Setting" = "3:1"
+ "Value" = "8:#1258"
+ "DefaultValue" = "8:#1258"
+ "UsePlugInResources" = "11:TRUE"
+ }
+ }
+ }
+ }
+ }
+ "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_2237F99549C04193ADB5655D7E6FD5B4"
+ {
+ "Name" = "8:#1901"
+ "Sequence" = "3:1"
+ "Attributes" = "3:2"
+ "Dialogs"
+ {
+ "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_8A6734448CF54465BD37D45C0CFF5000"
+ {
+ "Sequence" = "3:100"
+ "DisplayName" = "8:Progress"
+ "UseDynamicProperties" = "11:TRUE"
+ "IsDependency" = "11:FALSE"
+ "SourcePath" = "8:\\VsdProgressDlg.wid"
+ "Properties"
+ {
+ "BannerBitmap"
+ {
+ "Name" = "8:BannerBitmap"
+ "DisplayName" = "8:#1001"
+ "Description" = "8:#1101"
+ "Type" = "3:8"
+ "ContextData" = "8:Bitmap"
+ "Attributes" = "3:4"
+ "Setting" = "3:1"
+ "UsePlugInResources" = "11:TRUE"
+ }
+ "ShowProgress"
+ {
+ "Name" = "8:ShowProgress"
+ "DisplayName" = "8:#1009"
+ "Description" = "8:#1109"
+ "Type" = "3:5"
+ "ContextData" = "8:1;True=1;False=0"
+ "Attributes" = "3:0"
+ "Setting" = "3:0"
+ "Value" = "3:1"
+ "DefaultValue" = "3:1"
+ "UsePlugInResources" = "11:TRUE"
+ }
+ }
+ }
+ }
+ }
+ "{2479F3F5-0309-486D-8047-8187E2CE5BA0}:_4B62B60C5A10485EBB000ABEF6F8B0E1"
+ {
+ "UseDynamicProperties" = "11:FALSE"
+ "IsDependency" = "11:FALSE"
+ "SourcePath" = "8:\\VsdUserInterface.wim"
+ }
+ "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_7355B2D19A0B4B13A75AFF1D63E8FA4E"
+ {
+ "Name" = "8:#1900"
+ "Sequence" = "3:1"
+ "Attributes" = "3:1"
+ "Dialogs"
+ {
+ "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_77890D6A5244491A93629AEBF7575094"
+ {
+ "Sequence" = "3:300"
+ "DisplayName" = "8:Confirm Installation"
+ "UseDynamicProperties" = "11:TRUE"
+ "IsDependency" = "11:FALSE"
+ "SourcePath" = "8:\\VsdConfirmDlg.wid"
+ "Properties"
+ {
+ "BannerBitmap"
+ {
+ "Name" = "8:BannerBitmap"
+ "DisplayName" = "8:#1001"
+ "Description" = "8:#1101"
+ "Type" = "3:8"
+ "ContextData" = "8:Bitmap"
+ "Attributes" = "3:4"
+ "Setting" = "3:1"
+ "UsePlugInResources" = "11:TRUE"
+ }
+ }
+ }
+ "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_8B76EAAF28A844BBA54D063D07BA2FF8"
+ {
+ "Sequence" = "3:200"
+ "DisplayName" = "8:Installation Folder"
+ "UseDynamicProperties" = "11:TRUE"
+ "IsDependency" = "11:FALSE"
+ "SourcePath" = "8:\\VsdFolderDlg.wid"
+ "Properties"
+ {
+ "BannerBitmap"
+ {
+ "Name" = "8:BannerBitmap"
+ "DisplayName" = "8:#1001"
+ "Description" = "8:#1101"
+ "Type" = "3:8"
+ "ContextData" = "8:Bitmap"
+ "Attributes" = "3:4"
+ "Setting" = "3:1"
+ "UsePlugInResources" = "11:TRUE"
+ }
+ "InstallAllUsersVisible"
+ {
+ "Name" = "8:InstallAllUsersVisible"
+ "DisplayName" = "8:#1059"
+ "Description" = "8:#1159"
+ "Type" = "3:5"
+ "ContextData" = "8:1;True=1;False=0"
+ "Attributes" = "3:0"
+ "Setting" = "3:0"
+ "Value" = "3:1"
+ "DefaultValue" = "3:1"
+ "UsePlugInResources" = "11:TRUE"
+ }
+ }
+ }
+ "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_A16110FB2319496FA65112471161C0FB"
+ {
+ "Sequence" = "3:100"
+ "DisplayName" = "8:Welcome"
+ "UseDynamicProperties" = "11:TRUE"
+ "IsDependency" = "11:FALSE"
+ "SourcePath" = "8:\\VsdWelcomeDlg.wid"
+ "Properties"
+ {
+ "BannerBitmap"
+ {
+ "Name" = "8:BannerBitmap"
+ "DisplayName" = "8:#1001"
+ "Description" = "8:#1101"
+ "Type" = "3:8"
+ "ContextData" = "8:Bitmap"
+ "Attributes" = "3:4"
+ "Setting" = "3:1"
+ "UsePlugInResources" = "11:TRUE"
+ }
+ "CopyrightWarning"
+ {
+ "Name" = "8:CopyrightWarning"
+ "DisplayName" = "8:#1002"
+ "Description" = "8:#1102"
+ "Type" = "3:3"
+ "ContextData" = "8:"
+ "Attributes" = "3:0"
+ "Setting" = "3:1"
+ "Value" = "8:#1202"
+ "DefaultValue" = "8:#1202"
+ "UsePlugInResources" = "11:TRUE"
+ }
+ "Welcome"
+ {
+ "Name" = "8:Welcome"
+ "DisplayName" = "8:#1003"
+ "Description" = "8:#1103"
+ "Type" = "3:3"
+ "ContextData" = "8:"
+ "Attributes" = "3:0"
+ "Setting" = "3:1"
+ "Value" = "8:#1203"
+ "DefaultValue" = "8:#1203"
+ "UsePlugInResources" = "11:TRUE"
+ }
+ }
+ }
+ }
+ }
+ "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_8BDB1DC6B45345D6A00F54A75DEF1A6B"
+ {
+ "Name" = "8:#1900"
+ "Sequence" = "3:2"
+ "Attributes" = "3:1"
+ "Dialogs"
+ {
+ "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_51562FA73CD74420B54B17BDC66F6983"
+ {
+ "Sequence" = "3:200"
+ "DisplayName" = "8:Installation Folder"
+ "UseDynamicProperties" = "11:TRUE"
+ "IsDependency" = "11:FALSE"
+ "SourcePath" = "8:\\VsdAdminFolderDlg.wid"
+ "Properties"
+ {
+ "BannerBitmap"
+ {
+ "Name" = "8:BannerBitmap"
+ "DisplayName" = "8:#1001"
+ "Description" = "8:#1101"
+ "Type" = "3:8"
+ "ContextData" = "8:Bitmap"
+ "Attributes" = "3:4"
+ "Setting" = "3:1"
+ "UsePlugInResources" = "11:TRUE"
+ }
+ }
+ }
+ "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_6E30DC2B3F284C148AE722C0E78228F8"
+ {
+ "Sequence" = "3:300"
+ "DisplayName" = "8:Confirm Installation"
+ "UseDynamicProperties" = "11:TRUE"
+ "IsDependency" = "11:FALSE"
+ "SourcePath" = "8:\\VsdAdminConfirmDlg.wid"
+ "Properties"
+ {
+ "BannerBitmap"
+ {
+ "Name" = "8:BannerBitmap"
+ "DisplayName" = "8:#1001"
+ "Description" = "8:#1101"
+ "Type" = "3:8"
+ "ContextData" = "8:Bitmap"
+ "Attributes" = "3:4"
+ "Setting" = "3:1"
+ "UsePlugInResources" = "11:TRUE"
+ }
+ }
+ }
+ "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_A66D47C411F0411780817D51CF722A22"
+ {
+ "Sequence" = "3:100"
+ "DisplayName" = "8:Welcome"
+ "UseDynamicProperties" = "11:TRUE"
+ "IsDependency" = "11:FALSE"
+ "SourcePath" = "8:\\VsdAdminWelcomeDlg.wid"
+ "Properties"
+ {
+ "BannerBitmap"
+ {
+ "Name" = "8:BannerBitmap"
+ "DisplayName" = "8:#1001"
+ "Description" = "8:#1101"
+ "Type" = "3:8"
+ "ContextData" = "8:Bitmap"
+ "Attributes" = "3:4"
+ "Setting" = "3:1"
+ "UsePlugInResources" = "11:TRUE"
+ }
+ "CopyrightWarning"
+ {
+ "Name" = "8:CopyrightWarning"
+ "DisplayName" = "8:#1002"
+ "Description" = "8:#1102"
+ "Type" = "3:3"
+ "ContextData" = "8:"
+ "Attributes" = "3:0"
+ "Setting" = "3:1"
+ "Value" = "8:#1202"
+ "DefaultValue" = "8:#1202"
+ "UsePlugInResources" = "11:TRUE"
+ }
+ "Welcome"
+ {
+ "Name" = "8:Welcome"
+ "DisplayName" = "8:#1003"
+ "Description" = "8:#1103"
+ "Type" = "3:3"
+ "ContextData" = "8:"
+ "Attributes" = "3:0"
+ "Setting" = "3:1"
+ "Value" = "8:#1203"
+ "DefaultValue" = "8:#1203"
+ "UsePlugInResources" = "11:TRUE"
+ }
+ }
+ }
+ }
+ }
+ "{2479F3F5-0309-486D-8047-8187E2CE5BA0}:_A6A71D2398304B649269B7E50D8A0EC4"
+ {
+ "UseDynamicProperties" = "11:FALSE"
+ "IsDependency" = "11:FALSE"
+ "SourcePath" = "8:\\VsdBasicDialogs.wim"
+ }
+ "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_B854718158D047B6B2E6FE698112EC93"
+ {
+ "Name" = "8:#1901"
+ "Sequence" = "3:2"
+ "Attributes" = "3:2"
+ "Dialogs"
+ {
+ "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_BD7FC1FCE04048D986EC3E4F21D525C6"
+ {
+ "Sequence" = "3:100"
+ "DisplayName" = "8:Progress"
+ "UseDynamicProperties" = "11:TRUE"
+ "IsDependency" = "11:FALSE"
+ "SourcePath" = "8:\\VsdAdminProgressDlg.wid"
+ "Properties"
+ {
+ "BannerBitmap"
+ {
+ "Name" = "8:BannerBitmap"
+ "DisplayName" = "8:#1001"
+ "Description" = "8:#1101"
+ "Type" = "3:8"
+ "ContextData" = "8:Bitmap"
+ "Attributes" = "3:4"
+ "Setting" = "3:1"
+ "UsePlugInResources" = "11:TRUE"
+ }
+ "ShowProgress"
+ {
+ "Name" = "8:ShowProgress"
+ "DisplayName" = "8:#1009"
+ "Description" = "8:#1109"
+ "Type" = "3:5"
+ "ContextData" = "8:1;True=1;False=0"
+ "Attributes" = "3:0"
+ "Setting" = "3:0"
+ "Value" = "3:1"
+ "DefaultValue" = "3:1"
+ "UsePlugInResources" = "11:TRUE"
+ }
+ }
+ }
+ }
+ }
+ "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_C3C153DE1CA647C6B2075A0C59ABBBA6"
+ {
+ "Name" = "8:#1902"
+ "Sequence" = "3:2"
+ "Attributes" = "3:3"
+ "Dialogs"
+ {
+ "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_5E814962060F4BDBAEF5C6BD43D6DE3E"
+ {
+ "Sequence" = "3:100"
+ "DisplayName" = "8:Finished"
+ "UseDynamicProperties" = "11:TRUE"
+ "IsDependency" = "11:FALSE"
+ "SourcePath" = "8:\\VsdAdminFinishedDlg.wid"
+ "Properties"
+ {
+ "BannerBitmap"
+ {
+ "Name" = "8:BannerBitmap"
+ "DisplayName" = "8:#1001"
+ "Description" = "8:#1101"
+ "Type" = "3:8"
+ "ContextData" = "8:Bitmap"
+ "Attributes" = "3:4"
+ "Setting" = "3:1"
+ "UsePlugInResources" = "11:TRUE"
+ }
+ }
+ }
+ }
+ }
+ }
+ "MergeModule"
+ {
+ }
+ "ProjectOutput"
+ {
+ "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_D219AD7AB7924D44B7E2945648C76CF7"
+ {
+ "SourcePath" = "8:..\\OpenERPOutlookPlugin\\obj\\Debug\\OpenERPOutlookPlugin.dll"
+ "TargetName" = "8:"
+ "Tag" = "8:"
+ "Folder" = "8:_F8355F1930014BA7AC04125197F9FCF8"
+ "Condition" = "8:"
+ "Transitive" = "11:FALSE"
+ "Vital" = "11:TRUE"
+ "ReadOnly" = "11:FALSE"
+ "Hidden" = "11:FALSE"
+ "System" = "11:FALSE"
+ "Permanent" = "11:FALSE"
+ "SharedLegacy" = "11:FALSE"
+ "PackageAs" = "3:1"
+ "Register" = "3:1"
+ "Exclude" = "11:FALSE"
+ "IsDependency" = "11:FALSE"
+ "IsolateTo" = "8:"
+ "ProjectOutputGroupRegister" = "3:2"
+ "OutputConfiguration" = "8:"
+ "OutputGroupCanonicalName" = "8:Built"
+ "OutputProjectGuid" = "8:{F4B2219B-F235-400F-81B4-92F15250BBA4}"
+ "ShowKeyOutput" = "11:TRUE"
+ "ExcludeFilters"
+ {
+ }
+ }
+ }
+ }
+}
diff --git a/addons/pad/__openerp__.py b/addons/pad/__openerp__.py
index 9630e74c27a..14ee68334a8 100644
--- a/addons/pad/__openerp__.py
+++ b/addons/pad/__openerp__.py
@@ -1,8 +1,8 @@
# -*- coding: utf-8 -*-
{
- 'name': 'Collaborative Note Pad',
+ 'name': 'Collaborative Pads',
'version': '2.0',
- 'category': 'Hidden',
+ "category": "Project Management",
'complexity': "easy",
'description': """
Adds enhanced support for (Ether)Pad attachments in the web client.
diff --git a/addons/pad/i18n/hr.po b/addons/pad/i18n/hr.po
new file mode 100644
index 00000000000..052831af21a
--- /dev/null
+++ b/addons/pad/i18n/hr.po
@@ -0,0 +1,77 @@
+# Croatian 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:15+0000\n"
+"PO-Revision-Date: 2011-12-12 12:58+0000\n"
+"Last-Translator: Tomislav Bosnjakovic \n"
+"Language-Team: Croatian \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2011-12-13 05:02+0000\n"
+"X-Generator: Launchpad (build 14458)\n"
+
+#. module: pad
+#: code:addons/pad/web/editors.py:32
+#, python-format
+msgid "Ok"
+msgstr "U redu"
+
+#. module: pad
+#: code:addons/pad/web/editors.py:29
+#, python-format
+msgid "Name"
+msgstr "Naziv"
+
+#. module: pad
+#: help:res.company,pad_index:0
+msgid "The root URL of the company's pad instance"
+msgstr ""
+
+#. module: pad
+#: model:ir.model,name:pad.model_res_company
+msgid "Companies"
+msgstr "Organizacije"
+
+#. module: pad
+#: constraint:res.company:0
+msgid "Error! You can not create recursive companies."
+msgstr "Pogreška! Ne možete kreirati rekurzivne organizacije."
+
+#. module: pad
+#: code:addons/pad/web/editors.py:17
+#, python-format
+msgid "Write"
+msgstr "Zapiši"
+
+#. module: pad
+#: model:ir.module.module,description:pad.module_meta_information
+msgid ""
+"\n"
+"Adds enhanced support for (Ether)Pad attachments in the web client, lets "
+"the\n"
+"company customize which Pad installation should be used to link to new pads\n"
+"(by default, pad.openerp.com)\n"
+" "
+msgstr ""
+
+#. module: pad
+#: field:res.company,pad_index:0
+msgid "Pad root URL"
+msgstr ""
+
+#. module: pad
+#: view:res.company:0
+msgid "Pad"
+msgstr ""
+
+#. module: pad
+#: model:ir.module.module,shortdesc:pad.module_meta_information
+msgid "Enhanced support for (Ether)Pad attachments"
+msgstr ""
diff --git a/addons/pad_project/__openerp__.py b/addons/pad_project/__openerp__.py
index a9ec6282ab7..2a0785d1863 100644
--- a/addons/pad_project/__openerp__.py
+++ b/addons/pad_project/__openerp__.py
@@ -20,9 +20,9 @@
##############################################################################
{
- 'name': 'Project PAD',
+ 'name': 'Specifications on PADs',
'version': '1.0',
- 'category': 'Hidden/Link',
+ "category": "Project Management",
'complexity': "easy",
'description': """
This module adds a PAD in all project kanban views
diff --git a/addons/pad_project/models/project_task.xml b/addons/pad_project/models/project_task.xml
index 5fa113e9b54..3c734cf3b97 100644
--- a/addons/pad_project/models/project_task.xml
+++ b/addons/pad_project/models/project_task.xml
@@ -6,8 +6,8 @@
kanban
-
- PAD
+
+ PAD
diff --git a/addons/plugin/__openerp__.py b/addons/plugin/__openerp__.py
index b598690cbf2..e12bceb51bf 100644
--- a/addons/plugin/__openerp__.py
+++ b/addons/plugin/__openerp__.py
@@ -21,9 +21,9 @@
{
- 'name': 'Common interface for CRM plugin (Thunderbird and Outlook)',
+ 'name': 'CRM Plugins',
'version': '1.0',
- 'category': 'Hidden',
+ 'category': 'Hidden/Dependency',
'complexity': "easy",
'description': """
The common interface for pugin.
diff --git a/addons/plugin/plugin_handler.py b/addons/plugin/plugin_handler.py
index c4859771e35..fd5ca7da6c6 100644
--- a/addons/plugin/plugin_handler.py
+++ b/addons/plugin/plugin_handler.py
@@ -35,28 +35,27 @@ class plugin_handler(osv.osv_memory):
@param email: email is a standard RFC2822 email message
@return Dictionary which contain id and the model name of the document linked with the mail
if no document is found the id = 0
- (model_name, res_id, name_get, url)
+ (model_name, res_id, url, name_get)
"""
mail_message_obj = self.pool.get('mail.message')
model = False
res_id = 0
url = False
name = ""
-
msg = mail_message_obj.parse_message(email)
references = [msg.get('message-id')]
refs = msg.get('references',False)
if refs:
references.extend(refs.split())
-
msg_ids = mail_message_obj.search(cr, uid, [('message_id','in',references)])
if msg_ids:
msg = mail_message_obj.browse(cr, uid, msg_ids[0])
res_id = msg.res_id
model = msg.model
url = self._make_url(cr, uid, res_id, model)
- name = self.pool.get(model).name_get(cr, uid, res_id)[1]
- return (model, res_id, url, name)
+ name = self.pool.get(model).name_get(cr, uid, res_id)[0][1]
+ return (model,res_id, url,name)
+
def document_type(self, cr, uid, context=None):
"""
@@ -90,11 +89,8 @@ class plugin_handler(osv.osv_memory):
"""
mail_message = self.pool.get('mail.message')
model_obj = self.pool.get(model)
-
msg = mail_message.parse_message(email)
message_id = msg.get('message-id')
-
-
mail_ids = mail_message.search(cr, uid, [('message_id','=',message_id),('res_id','=',res_id),('model','=',model)])
if message_id and mail_ids :
mail_record = mail_message.browse(cr, uid, mail_ids)[0]
@@ -130,8 +126,7 @@ class plugin_handler(osv.osv_memory):
return ('res.partner', partner_id, url)
# Specific to outlook rfc822 is not available so we split in arguments headerd,body,attachemnts
- def push_message_outlook(self, cr, uid, model, headers, body_text, body_html, attachments):
- pass
+ def push_message_outlook(self, cr, uid, model, headers,res_id=0 ,body_text=False, body_html=False, attachments=False):
# ----------------------------------------
# solution 1
# construct a fake rfc822 from the separated arguement
@@ -142,12 +137,23 @@ class plugin_handler(osv.osv_memory):
# solution 2
# use self.pushmessage only with header and body
# add attachemnt yourself after
-
- #ir_attachment_obj = self.pool.get('ir.attachment')
- #attachment_ids = ir_attachment_obj.search(cr, uid, [('res_model', '=', data.get('res_model')), ('res_id', '=', data.get('res_id')), ('datas_fname', '=', data.get('datas_fname'))])
- #if attachment_ids:
- # return attachment_ids[0]
- #else:
- # vals = {"res_model": data.get('res_model'), "res_id": data.get('res_id'), "name": data.get('name'), "datas" : data.get('datas'), "datas_fname" : data.get('datas_fname')}
- # return ir_attachment_obj.create(cr, uid, vals)
- #return (model, res_id, url, notify)
+ mail_message = self.pool.get('mail.message')
+ ir_attachment_obj = self.pool.get('ir.attachment')
+ attach_ids = []
+ msg = mail_message.parse_message(headers)
+ message_id = msg.get('message-id')
+ push_mail = self.push_message(cr, uid, model, headers, res_id)
+ res_id = push_mail[1]
+ model = push_mail[0]
+ for name in attachments.keys():
+ attachment_ids = ir_attachment_obj.search(cr, uid, [('res_model', '=', model), ('res_id', '=', res_id), ('datas_fname', '=', name)])
+ if attachment_ids:
+ attach_ids.append( attachment_ids[0])
+ else:
+ vals = {"res_model": model, "res_id": res_id, "name": name, "datas" :attachments[name], "datas_fname" : name}
+ attach_ids.append(ir_attachment_obj.create(cr, uid, vals))
+ mail_ids = mail_message.search(cr, uid, [('message_id','=',message_id),('res_id','=',res_id),('model','=',model)])
+ if mail_ids:
+ ids = mail_message.write(cr, uid,mail_ids[0],{ 'attachment_ids': [(6, 0, attach_ids)],'body_text':body_text,'body_html':body_html})
+ url = self._make_url(cr, uid, res_id, model)
+ return (model, res_id, url)
diff --git a/addons/point_of_sale/__openerp__.py b/addons/point_of_sale/__openerp__.py
index 4daeabb9129..e63acfb7881 100644
--- a/addons/point_of_sale/__openerp__.py
+++ b/addons/point_of_sale/__openerp__.py
@@ -52,7 +52,6 @@ Main features :
'wizard/pos_close_statement.xml',
'wizard/pos_box_entries.xml',
'wizard/pos_payment_report_user_view.xml',
- 'wizard/pos_payment_report_date_view.xml',
'wizard/pos_box_out.xml',
'wizard/pos_sales_user.xml',
'wizard/pos_receipt_view.xml',
@@ -79,6 +78,7 @@ Main features :
'test/point_of_sale_report.yml'
],
'installable': True,
+ 'application': True,
'certificate' : '001156338024966477869',
# Web client
'js': ['static/lib/backbone/backbone-0.5.3.js', 'static/src/js/pos.js'],
diff --git a/addons/point_of_sale/i18n/hr.po b/addons/point_of_sale/i18n/hr.po
index b440f1101d9..216607dd4d0 100644
--- a/addons/point_of_sale/i18n/hr.po
+++ b/addons/point_of_sale/i18n/hr.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-03 16:58+0000\n"
-"PO-Revision-Date: 2010-08-03 08:43+0000\n"
+"PO-Revision-Date: 2011-12-12 10:25+0000\n"
"Last-Translator: Goran Kliska \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-11-05 05:00+0000\n"
-"X-Generator: Launchpad (build 14231)\n"
+"X-Launchpad-Export-Date: 2011-12-13 05:01+0000\n"
+"X-Generator: Launchpad (build 14458)\n"
#. module: point_of_sale
#: field:pos.discount,discount_notes:0
@@ -24,7 +24,7 @@ msgstr ""
#. module: point_of_sale
#: model:ir.actions.act_window,name:point_of_sale.action_trans_pos_tree_today
msgid "Sales by day"
-msgstr ""
+msgstr "Prodaje po danu"
#. module: point_of_sale
#: model:ir.model,name:point_of_sale.model_pos_confirm
@@ -35,7 +35,7 @@ msgstr ""
#: model:ir.actions.act_window,name:point_of_sale.action_pos_discount
#: view:pos.discount:0
msgid "Apply Discount"
-msgstr "Primjeni popust"
+msgstr "Apply Discount"
#. module: point_of_sale
#: view:pos.order:0
@@ -45,7 +45,7 @@ msgstr "Stavi u pripremu"
#. module: point_of_sale
#: field:report.transaction.pos,product_nb:0
msgid "Product Nb."
-msgstr ""
+msgstr "Product Nb."
#. module: point_of_sale
#: model:ir.module.module,shortdesc:point_of_sale.module_meta_information
@@ -55,7 +55,7 @@ msgstr "Blagajna"
#. module: point_of_sale
#: view:report.pos.order:0
msgid "Today"
-msgstr ""
+msgstr "Danas"
#. module: point_of_sale
#: view:pos.add.product:0
@@ -70,20 +70,20 @@ msgstr ""
#. module: point_of_sale
#: view:pos.box.entries:0
msgid "Put Money"
-msgstr ""
+msgstr "Stavi novac"
#. module: point_of_sale
#: model:ir.actions.act_window,name:point_of_sale.action_report_cash_register_all
#: model:ir.ui.menu,name:point_of_sale.menu_report_cash_register_all
msgid "Register Analysis"
-msgstr ""
+msgstr "Register Analysis"
#. module: point_of_sale
#: model:ir.actions.report.xml,name:point_of_sale.pos_lines_detail
#: report:pos.details:0
#: report:pos.details_summary:0
msgid "Details of Sales"
-msgstr ""
+msgstr "Detalji prodaje"
#. module: point_of_sale
#: view:pos.close.statement:0
@@ -103,18 +103,18 @@ msgstr ""
#: view:report.pos.order:0
#: field:report.pos.order,day:0
msgid "Day"
-msgstr ""
+msgstr "Dan"
#. module: point_of_sale
#: view:pos.make.payment:0
msgid "Add payment :"
-msgstr ""
+msgstr "Dodaj plaćanje :"
#. module: point_of_sale
#: view:report.cash.register:0
#: view:report.pos.order:0
msgid "My Sales"
-msgstr ""
+msgstr "My Sales"
#. module: point_of_sale
#: model:ir.actions.act_window,name:point_of_sale.action_box_out
@@ -135,7 +135,7 @@ msgstr ""
#: report:pos.user.product:0
#: field:report.transaction.pos,amount:0
msgid "Amount"
-msgstr ""
+msgstr "Iznos"
#. module: point_of_sale
#: report:pos.lines:0
@@ -145,7 +145,7 @@ msgstr "PDV"
#. module: point_of_sale
#: report:pos.invoice:0
msgid "Origin"
-msgstr ""
+msgstr "Izvor"
#. module: point_of_sale
#: report:pos.invoice:0
@@ -166,7 +166,7 @@ msgstr ""
#: report:account.statement:0
#: field:report.pos.order,partner_id:0
msgid "Partner"
-msgstr "Stranka"
+msgstr "Partner"
#. module: point_of_sale
#: report:pos.details:0
@@ -178,18 +178,18 @@ msgstr "Ukupno za dan"
#: view:report.pos.order:0
#: field:report.pos.order,average_price:0
msgid "Average Price"
-msgstr ""
+msgstr "Prosječna cijena"
#. module: point_of_sale
#: report:pos.lines:0
msgid "Disc. (%)"
-msgstr "Popust (%)"
+msgstr "Pop.(%)"
#. module: point_of_sale
#: report:pos.details:0
#: report:pos.details_summary:0
msgid "Total discount"
-msgstr ""
+msgstr "Total discount"
#. module: point_of_sale
#: view:account.bank.statement:0
@@ -211,14 +211,14 @@ msgstr ""
#. module: point_of_sale
#: model:ir.actions.act_window,name:point_of_sale.action_trans_pos_tree_month
msgid "Sales by month"
-msgstr ""
+msgstr "Prodaje po mjesecima"
#. module: point_of_sale
#: model:ir.actions.act_window,name:point_of_sale.action_report_sales_by_user_pos_today
#: view:report.sales.by.user.pos:0
#: view:report.sales.by.user.pos.month:0
msgid "Sales by User"
-msgstr ""
+msgstr "Prodaje po korisniku"
#. module: point_of_sale
#: report:pos.invoice:0
@@ -230,13 +230,13 @@ msgstr "Pop.(%)"
#: field:pos.box.entries,ref:0
#: field:pos.box.out,ref:0
msgid "Ref"
-msgstr ""
+msgstr "Vezna oznaka"
#. module: point_of_sale
#: view:report.pos.order:0
#: field:report.pos.order,price_total:0
msgid "Total Price"
-msgstr ""
+msgstr "Total Price"
#. module: point_of_sale
#: view:product.product:0
@@ -247,7 +247,7 @@ msgstr ""
#: model:ir.actions.report.xml,name:point_of_sale.pos_sales_user
#: report:pos.sales.user:0
msgid "Sales Report"
-msgstr ""
+msgstr "Izveštaj prodaje"
#. module: point_of_sale
#: code:addons/point_of_sale/wizard/pos_discount.py:52
@@ -269,7 +269,7 @@ msgstr ""
#: view:pos.order:0
#: view:pos.payment.report.date:0
msgid "Dates"
-msgstr ""
+msgstr "Datumi"
#. module: point_of_sale
#: field:res.company,company_discount:0
@@ -296,13 +296,13 @@ msgstr ""
#: report:pos.payment.report.user:0
#: report:pos.user.product:0
msgid "["
-msgstr ""
+msgstr "["
#. module: point_of_sale
#: field:report.sales.by.margin.pos,total:0
#: field:report.sales.by.margin.pos.month,total:0
msgid "Margin"
-msgstr ""
+msgstr "Marža"
#. module: point_of_sale
#: field:pos.order.line,discount:0
@@ -317,7 +317,7 @@ msgstr "Uk. količina"
#. module: point_of_sale
#: model:ir.model,name:point_of_sale.model_report_sales_by_user_pos_month
msgid "Sales by user monthly"
-msgstr ""
+msgstr "Prodaje po korisniku mjesečno"
#. module: point_of_sale
#: code:addons/point_of_sale/wizard/pos_open_statement.py:54
@@ -341,17 +341,17 @@ msgstr ""
#: report:pos.details:0
#: report:pos.details_summary:0
msgid "Mode of Payment"
-msgstr ""
+msgstr "Način plaćanja"
#. module: point_of_sale
#: model:ir.ui.menu,name:point_of_sale.menu_point_of_sale
msgid "Daily Operations"
-msgstr ""
+msgstr "Daily Operations"
#. module: point_of_sale
#: view:account.bank.statement:0
msgid "Search Cash Statements"
-msgstr ""
+msgstr "Search Cash Statements"
#. module: point_of_sale
#: view:pos.confirm:0
@@ -362,18 +362,18 @@ msgstr ""
#: selection:report.cash.register,month:0
#: selection:report.pos.order,month:0
msgid "August"
-msgstr ""
+msgstr "Kolovoz"
#. module: point_of_sale
#: selection:report.cash.register,month:0
#: selection:report.pos.order,month:0
msgid "June"
-msgstr ""
+msgstr "Lipanj"
#. module: point_of_sale
#: model:ir.actions.act_window,name:point_of_sale.action_report_sales_by_user_pos_month
msgid "Sales by User Monthly"
-msgstr ""
+msgstr "Sales by User Monthly"
#. module: point_of_sale
#: field:pos.order,date_payment:0
@@ -385,13 +385,13 @@ msgstr "Datum plaćanja"
#: report:account.statement:0
#: report:all.closed.cashbox.of.the.day:0
msgid "Closing Date"
-msgstr ""
+msgstr "Datum zaključenja"
#. module: point_of_sale
#: selection:report.cash.register,month:0
#: selection:report.pos.order,month:0
msgid "October"
-msgstr ""
+msgstr "Listopad"
#. module: point_of_sale
#: field:account.bank.statement.line,am_out:0
@@ -432,7 +432,7 @@ msgstr ""
#. module: point_of_sale
#: view:account.bank.statement:0
msgid "Period"
-msgstr ""
+msgstr "Period"
#. module: point_of_sale
#: report:pos.invoice:0
@@ -453,7 +453,7 @@ msgstr ""
#. module: point_of_sale
#: view:pos.box.out:0
msgid "Output Operation"
-msgstr ""
+msgstr "Output Operation"
#. module: point_of_sale
#: view:all.closed.cashbox.of.the.day:0
@@ -465,7 +465,7 @@ msgstr ""
#: view:pos.sales.user.today:0
#: view:pos.sales.user.today.current_user:0
msgid "Print Report"
-msgstr ""
+msgstr "Ispiši"
#. module: point_of_sale
#: report:pos.invoice:0
@@ -496,7 +496,7 @@ msgstr ""
#. module: point_of_sale
#: field:report.transaction.pos,invoice_am:0
msgid "Invoice Amount"
-msgstr ""
+msgstr "Iznos računa"
#. module: point_of_sale
#: view:account.bank.statement:0
@@ -510,25 +510,25 @@ msgstr ""
#: field:report.cash.register,journal_id:0
#: field:report.pos.order,journal_id:0
msgid "Journal"
-msgstr ""
+msgstr "Dnevnik"
#. module: point_of_sale
#: report:pos.invoice:0
msgid "Tel. :"
-msgstr ""
+msgstr "Tel.:"
#. module: point_of_sale
#: view:pos.order:0
#: selection:pos.order,state:0
#: selection:report.pos.order,state:0
msgid "Payment"
-msgstr ""
+msgstr "Plaćanje"
#. module: point_of_sale
#: report:account.statement:0
#: report:all.closed.cashbox.of.the.day:0
msgid "Ending Balance"
-msgstr ""
+msgstr "Ending Balance"
#. module: point_of_sale
#: model:ir.ui.menu,name:point_of_sale.products_for_output_operations
@@ -538,7 +538,7 @@ msgstr ""
#. module: point_of_sale
#: view:pos.payment.report.date:0
msgid "Sale by Date and User"
-msgstr ""
+msgstr "Sale by Date and User"
#. module: point_of_sale
#: code:addons/point_of_sale/point_of_sale.py:69
@@ -552,7 +552,7 @@ msgstr ""
#: report:pos.details:0
#: report:pos.details_summary:0
msgid "Mode of Taxes"
-msgstr ""
+msgstr "Mode of Taxes"
#. module: point_of_sale
#: code:addons/point_of_sale/wizard/pos_close_statement.py:48
@@ -563,14 +563,14 @@ msgstr ""
#. module: point_of_sale
#: constraint:product.product:0
msgid "Error: Invalid ean code"
-msgstr ""
+msgstr "Greška: Neispravan barkod!"
#. module: point_of_sale
#: model:ir.model,name:point_of_sale.model_pos_open_statement
#: view:pos.confirm:0
#: view:pos.open.statement:0
msgid "Open Statements"
-msgstr ""
+msgstr "Open Statements"
#. module: point_of_sale
#: view:pos.add.product:0
@@ -580,13 +580,13 @@ msgstr ""
#. module: point_of_sale
#: report:pos.details:0
msgid "Sales total(Revenue)"
-msgstr ""
+msgstr "Sales total(Revenue)"
#. module: point_of_sale
#: report:pos.details:0
#: report:pos.details_summary:0
msgid "Total paid"
-msgstr "Uk. plaćeno"
+msgstr "Ukupno plaćeno"
#. module: point_of_sale
#: field:account.journal,check_dtls:0
@@ -597,7 +597,7 @@ msgstr ""
#: report:pos.details:0
#: report:pos.details_summary:0
msgid "Qty of product"
-msgstr "Kol."
+msgstr "Kol proizvoda"
#. module: point_of_sale
#: field:pos.order,contract_number:0
@@ -608,13 +608,13 @@ msgstr ""
#: selection:report.cash.register,month:0
#: selection:report.pos.order,month:0
msgid "March"
-msgstr ""
+msgstr "Ožujak"
#. module: point_of_sale
#: model:ir.actions.report.xml,name:point_of_sale.pos_users_product_re
#: report:pos.user.product:0
msgid "User's Product"
-msgstr ""
+msgstr "User's Product"
#. module: point_of_sale
#: code:addons/point_of_sale/point_of_sale.py:1043
@@ -629,14 +629,14 @@ msgstr ""
#: view:pos.order:0
#: field:pos.order.line,price_subtotal_incl:0
msgid "Subtotal"
-msgstr ""
+msgstr "Podzbroj"
#. module: point_of_sale
#: model:ir.actions.act_window,name:point_of_sale.act_pos_open_statement
#: model:ir.model,name:point_of_sale.model_pos_close_statement
#: view:pos.close.statement:0
msgid "Close Statements"
-msgstr ""
+msgstr "Close Statements"
#. module: point_of_sale
#: view:account.journal:0
@@ -647,12 +647,12 @@ msgstr ""
#: report:account.statement:0
#: report:all.closed.cashbox.of.the.day:0
msgid "Starting Balance"
-msgstr ""
+msgstr "Početni saldo"
#. module: point_of_sale
#: report:pos.payment.report.user:0
msgid "Payment By User"
-msgstr ""
+msgstr "Plaćanja po korisniku"
#. module: point_of_sale
#: field:pos.order,type_rec:0
@@ -663,7 +663,7 @@ msgstr ""
#: view:report.pos.order:0
#: field:report.pos.order,nbr:0
msgid "# of Lines"
-msgstr ""
+msgstr "# linija"
#. module: point_of_sale
#: model:ir.actions.act_window,name:point_of_sale.action_pos_order_accepted
@@ -679,12 +679,12 @@ msgstr ""
#. module: point_of_sale
#: report:all.closed.cashbox.of.the.day:0
msgid "St.Name"
-msgstr ""
+msgstr "St.Name"
#. module: point_of_sale
#: report:pos.details_summary:0
msgid "Sales total"
-msgstr "Ukupno prodaja"
+msgstr "Ukupno prodaje"
#. module: point_of_sale
#: view:pos.order.line:0
@@ -699,17 +699,17 @@ msgstr "Datum plaćanja"
#. module: point_of_sale
#: field:pos.order,lines:0
msgid "Order Lines"
-msgstr ""
+msgstr "Order Lines"
#. module: point_of_sale
#: field:pos.order.line,create_date:0
msgid "Creation Date"
-msgstr "Datum Kreiranja"
+msgstr "Datum kreiranja"
#. module: point_of_sale
#: model:ir.actions.report.xml,name:point_of_sale.pos_sales_user_today
msgid "Today's Sales"
-msgstr ""
+msgstr "Današnje prodaje"
#. module: point_of_sale
#: view:report.sales.by.margin.pos:0
@@ -737,7 +737,7 @@ msgstr ""
#: field:report.sales.by.margin.pos,product_name:0
#: field:report.sales.by.margin.pos.month,product_name:0
msgid "Product Name"
-msgstr ""
+msgstr "Naziv proizvoda"
#. module: point_of_sale
#: code:addons/point_of_sale/point_of_sale.py:69
@@ -749,7 +749,7 @@ msgstr ""
#: field:pos.make.payment,pricelist_id:0
#: field:pos.order,pricelist_id:0
msgid "Pricelist"
-msgstr "Cjenik"
+msgstr "Pricelist"
#. module: point_of_sale
#: report:pos.details:0
@@ -761,7 +761,7 @@ msgstr "Ukupno računi"
#: view:report.pos.order:0
#: field:report.pos.order,product_qty:0
msgid "# of Qty"
-msgstr ""
+msgstr "# kol"
#. module: point_of_sale
#: model:ir.model,name:point_of_sale.model_pos_return
@@ -771,7 +771,7 @@ msgstr ""
#. module: point_of_sale
#: model:ir.model,name:point_of_sale.model_report_sales_by_margin_pos_month
msgid "Sales by margin monthly"
-msgstr ""
+msgstr "Prodaje po marži mjesečno"
#. module: point_of_sale
#: view:pos.order:0
@@ -780,24 +780,24 @@ msgstr ""
#: field:report.sales.by.user.pos,date_order:0
#: field:report.sales.by.user.pos.month,date_order:0
msgid "Order Date"
-msgstr ""
+msgstr "Datum naloga"
#. module: point_of_sale
#: report:all.closed.cashbox.of.the.day:0
msgid "Today's Closed Cashbox"
-msgstr ""
+msgstr "Today's Closed Cashbox"
#. module: point_of_sale
#: report:pos.invoice:0
msgid "Draft Invoice"
-msgstr ""
+msgstr "Nacrt računa"
#. module: point_of_sale
#: constraint:account.bank.statement.line:0
msgid ""
"The amount of the voucher must be the same amount as the one on the "
"statement line"
-msgstr ""
+msgstr "Iznos vaučera mora biti jednak iznosu stavke izvoda banke/blagajne."
#. module: point_of_sale
#: field:product.product,expense_pdt:0
@@ -813,29 +813,29 @@ msgstr ""
#. module: point_of_sale
#: report:pos.invoice:0
msgid "Fiscal Position Remark :"
-msgstr ""
+msgstr "Komentar fiskalne pozicije:"
#. module: point_of_sale
#: selection:report.cash.register,month:0
#: selection:report.pos.order,month:0
msgid "September"
-msgstr ""
+msgstr "Rujan"
#. module: point_of_sale
#: report:account.statement:0
#: report:all.closed.cashbox.of.the.day:0
msgid "Opening Date"
-msgstr ""
+msgstr "Datum otvaranja"
#. module: point_of_sale
#: report:pos.lines:0
msgid "Taxes :"
-msgstr ""
+msgstr "Taxes :"
#. module: point_of_sale
#: field:report.transaction.pos,disc:0
msgid "Disc."
-msgstr ""
+msgstr "Popust"
#. module: point_of_sale
#: report:pos.invoice:0
@@ -845,12 +845,12 @@ msgstr "PDV :"
#. module: point_of_sale
#: view:pos.order.line:0
msgid "POS Order lines"
-msgstr ""
+msgstr "POS Order lines"
#. module: point_of_sale
#: view:pos.receipt:0
msgid "Receipt :"
-msgstr ""
+msgstr "Receipt :"
#. module: point_of_sale
#: field:pos.order,amount_return:0
@@ -881,7 +881,7 @@ msgstr ""
#. module: point_of_sale
#: model:ir.model,name:point_of_sale.model_report_transaction_pos
msgid "transaction for the pos"
-msgstr ""
+msgstr "transaction for the pos"
#. module: point_of_sale
#: code:addons/point_of_sale/wizard/pos_get_sale.py:54
@@ -892,7 +892,7 @@ msgstr ""
#. module: point_of_sale
#: model:ir.model,name:point_of_sale.model_pos_box_entries
msgid "Pos Box Entries"
-msgstr ""
+msgstr "Pos Box Unosi"
#. module: point_of_sale
#: code:addons/point_of_sale/wizard/pos_get_sale.py:54
@@ -904,7 +904,7 @@ msgstr ""
#: field:pos.details,date_end:0
#: field:pos.sale.user,date_end:0
msgid "Date End"
-msgstr ""
+msgstr "Datum završetka"
#. module: point_of_sale
#: report:pos.invoice:0
@@ -914,7 +914,7 @@ msgstr ""
#. module: point_of_sale
#: field:report.transaction.pos,no_trans:0
msgid "Number of Transaction"
-msgstr ""
+msgstr "broj transakcija"
#. module: point_of_sale
#: view:pos.add.product:0
@@ -926,7 +926,7 @@ msgstr ""
#: view:pos.receipt:0
#: selection:report.pos.order,state:0
msgid "Cancel"
-msgstr ""
+msgstr "Odustani"
#. module: point_of_sale
#: view:pos.order:0
@@ -936,7 +936,7 @@ msgstr ""
#. module: point_of_sale
#: model:ir.actions.report.xml,name:point_of_sale.pos_details_summary
msgid "Sales (summary)"
-msgstr "Prodaje"
+msgstr "Prodaje (ukupno)"
#. module: point_of_sale
#: view:product.product:0
@@ -952,7 +952,7 @@ msgstr ""
#: model:ir.model,name:point_of_sale.model_report_cash_register
#: view:report.cash.register:0
msgid "Point of Sale Cash Register Analysis"
-msgstr ""
+msgstr "Point of Sale Cash Register Analysis"
#. module: point_of_sale
#: model:ir.actions.act_window,name:point_of_sale.action_pos_sales_user_today
@@ -962,7 +962,7 @@ msgstr ""
#. module: point_of_sale
#: report:pos.payment.report:0
msgid "Payment For Sale"
-msgstr ""
+msgstr "Plaćanje za prodaju"
#. module: point_of_sale
#: field:pos.order,first_name:0
@@ -977,19 +977,19 @@ msgstr "Ostalo"
#. module: point_of_sale
#: model:ir.model,name:point_of_sale.model_pos_order_line
msgid "Lines of Point of Sale"
-msgstr ""
+msgstr "Stavke POS-a"
#. module: point_of_sale
#: view:pos.order:0
#: view:report.transaction.pos:0
msgid "Amount total"
-msgstr ""
+msgstr "Uk. iznos"
#. module: point_of_sale
#: model:ir.actions.act_window,name:point_of_sale.action_new_bank_statement_all_tree
#: model:ir.ui.menu,name:point_of_sale.menu_all_menu_all_register
msgid "Cash Registers"
-msgstr ""
+msgstr "Blagajne"
#. module: point_of_sale
#: view:account.journal:0
@@ -1002,7 +1002,7 @@ msgstr ""
#: report:pos.invoice:0
#: report:pos.lines:0
msgid "Price"
-msgstr ""
+msgstr "Cijena"
#. module: point_of_sale
#: field:pos.scan.product,gencod:0
@@ -1016,12 +1016,12 @@ msgstr ""
#: view:report.sales.by.user.pos.month:0
#: view:report.transaction.pos:0
msgid "POS"
-msgstr ""
+msgstr "POS"
#. module: point_of_sale
#: field:report.cash.register,date:0
msgid "Create Date"
-msgstr ""
+msgstr "Kreiraj datum"
#. module: point_of_sale
#: model:ir.ui.menu,name:point_of_sale.menu_wizard_enter_jrnl2
@@ -1032,7 +1032,7 @@ msgstr ""
#: report:pos.details:0
#: report:pos.details_summary:0
msgid "Start Period"
-msgstr ""
+msgstr "Od perioda"
#. module: point_of_sale
#: report:account.statement:0
@@ -1040,12 +1040,12 @@ msgstr ""
#: report:pos.sales.user.today:0
#: report:pos.sales.user.today.current.user:0
msgid "Name"
-msgstr ""
+msgstr "Naziv"
#. module: point_of_sale
#: model:ir.ui.menu,name:point_of_sale.menu_open_statement
msgid "Open Cash Registers"
-msgstr ""
+msgstr "Open Cash Registers"
#. module: point_of_sale
#: report:pos.details:0
@@ -1055,17 +1055,17 @@ msgstr ""
#: report:pos.payment.report.user:0
#: report:pos.user.product:0
msgid "]"
-msgstr ""
+msgstr "]"
#. module: point_of_sale
#: sql_constraint:account.journal:0
msgid "The name of the journal must be unique per company !"
-msgstr ""
+msgstr "Naziv dnevnika mora biti jedinstven za jednu organizaciju!"
#. module: point_of_sale
#: report:pos.invoice:0
msgid "Supplier Refund"
-msgstr ""
+msgstr "Povrat URA"
#. module: point_of_sale
#: view:account.bank.statement:0
@@ -1073,17 +1073,17 @@ msgstr ""
#: view:report.cash.register:0
#: view:report.pos.order:0
msgid "Group By..."
-msgstr ""
+msgstr "Grupiraj po..."
#. module: point_of_sale
#: view:pos.order:0
msgid "POS Orders"
-msgstr ""
+msgstr "POS Orders"
#. module: point_of_sale
#: model:ir.actions.report.xml,name:point_of_sale.all_closed_cashbox_of_the_day
msgid "All Closed CashBox"
-msgstr ""
+msgstr "All Closed CashBox"
#. module: point_of_sale
#: code:addons/point_of_sale/point_of_sale.py:1042
@@ -1106,7 +1106,7 @@ msgstr ""
#. module: point_of_sale
#: report:pos.invoice:0
msgid "Base"
-msgstr ""
+msgstr "Osnovica"
#. module: point_of_sale
#: view:product.product:0
@@ -1127,7 +1127,7 @@ msgstr "Bilješke"
#: field:pos.get.sale,picking_id:0
#: view:pos.order:0
msgid "Sale Order"
-msgstr ""
+msgstr "Sale Order"
#. module: point_of_sale
#: report:pos.invoice:0
@@ -1140,7 +1140,7 @@ msgstr "Porezi"
#: model:ir.actions.act_window,name:point_of_sale.action_pos_order_line_day
#: model:ir.actions.act_window,name:point_of_sale.action_pos_order_line_form
msgid "Sale line"
-msgstr ""
+msgstr "Stavka prodaje"
#. module: point_of_sale
#: field:pos.config.journal,code:0
@@ -1154,12 +1154,12 @@ msgstr "Šifra"
#: model:ir.ui.menu,name:point_of_sale.menu_point_of_sale_product
#: model:ir.ui.menu,name:point_of_sale.menu_pos_products
msgid "Products"
-msgstr ""
+msgstr "Proizvodi"
#. module: point_of_sale
#: model:ir.actions.report.xml,name:point_of_sale.pos_payment_report
msgid "Payment Report For Sale"
-msgstr ""
+msgstr "Payment Report For Sale"
#. module: point_of_sale
#: field:account.journal,special_journal:0
@@ -1174,17 +1174,17 @@ msgstr ""
#. module: point_of_sale
#: view:pos.order:0
msgid "Extra Info"
-msgstr ""
+msgstr "Dodatni podaci"
#. module: point_of_sale
#: report:pos.invoice:0
msgid "Fax :"
-msgstr "Fax :"
+msgstr "Fax:"
#. module: point_of_sale
#: field:pos.order,user_id:0
msgid "Connected Salesman"
-msgstr ""
+msgstr "Connected Salesman"
#. module: point_of_sale
#: model:ir.module.module,description:point_of_sale.module_meta_information
@@ -1210,7 +1210,7 @@ msgstr ""
#. module: point_of_sale
#: view:pos.receipt:0
msgid "Print the receipt of the sale"
-msgstr ""
+msgstr "Ispis računa POS-a"
#. module: point_of_sale
#: model:ir.model,name:point_of_sale.model_stock_picking
@@ -1233,14 +1233,14 @@ msgstr "Kol."
#: view:report.cash.register:0
#: view:report.pos.order:0
msgid "Month -1"
-msgstr ""
+msgstr "Month -1"
#. module: point_of_sale
#: model:ir.actions.act_window,name:point_of_sale.action_report_pos_sale_user
#: model:ir.model,name:point_of_sale.model_pos_sale_user
#: view:pos.payment.report.user:0
msgid "Sale by User"
-msgstr ""
+msgstr "Prodaja po korisniku"
#. module: point_of_sale
#: code:addons/point_of_sale/point_of_sale.py:558
@@ -1264,7 +1264,7 @@ msgstr ""
#. module: point_of_sale
#: view:report.cash.register:0
msgid "state"
-msgstr ""
+msgstr "stanje"
#. module: point_of_sale
#: view:product.product:0
@@ -1275,7 +1275,7 @@ msgstr ""
#: selection:report.cash.register,month:0
#: selection:report.pos.order,month:0
msgid "July"
-msgstr ""
+msgstr "Srpanj"
#. module: point_of_sale
#: code:addons/point_of_sale/point_of_sale.py:547
@@ -1286,7 +1286,7 @@ msgstr ""
#. module: point_of_sale
#: field:report.pos.order,delay_validation:0
msgid "Delay Validation"
-msgstr ""
+msgstr "Delay Validation"
#. module: point_of_sale
#: field:pos.order,nb_print:0
@@ -1296,18 +1296,18 @@ msgstr "Broj kopija"
#. module: point_of_sale
#: model:ir.model,name:point_of_sale.model_pos_make_payment
msgid "Point of Sale Payment"
-msgstr ""
+msgstr "POS plaćanje"
#. module: point_of_sale
#: report:pos.details:0
#: report:pos.details_summary:0
msgid "End Period"
-msgstr ""
+msgstr "Do perioda"
#. module: point_of_sale
#: field:account.journal,auto_cash:0
msgid "Automatic Opening"
-msgstr ""
+msgstr "Automatic Opening"
#. module: point_of_sale
#: field:pos.order.line,price_ded:0
@@ -1331,7 +1331,7 @@ msgstr ""
#: view:report.pos.order:0
#: field:report.pos.order,month:0
msgid "Month"
-msgstr ""
+msgstr "Mjesec"
#. module: point_of_sale
#: view:pos.order:0
@@ -1341,7 +1341,7 @@ msgstr ""
#. module: point_of_sale
#: report:account.statement:0
msgid "Statement Name"
-msgstr ""
+msgstr "Naziv izvoda"
#. module: point_of_sale
#: model:ir.actions.act_window,name:point_of_sale.action_new_bank_statement_tree
@@ -1350,17 +1350,17 @@ msgstr ""
#: field:pos.box.out,journal_id:0
#: field:pos.make.payment,journal:0
msgid "Cash Register"
-msgstr ""
+msgstr "Blagajna MP"
#. module: point_of_sale
#: field:pos.payment.report.date,date_start:0
msgid "Start Date"
-msgstr ""
+msgstr "Početni datum"
#. module: point_of_sale
#: model:ir.model,name:point_of_sale.model_pos_receipt
msgid "Point of sale receipt"
-msgstr ""
+msgstr "Račun POS-a"
#. module: point_of_sale
#: code:addons/point_of_sale/wizard/pos_payment.py:91
@@ -1371,7 +1371,7 @@ msgstr ""
#. module: point_of_sale
#: model:ir.actions.act_window,name:point_of_sale.action_report_sales_by_margin_pos_today
msgid "Sales by User Daily margin"
-msgstr ""
+msgstr "Sales by User Daily margin"
#. module: point_of_sale
#: field:pos.order,note_2:0
@@ -1387,7 +1387,7 @@ msgstr ""
#. module: point_of_sale
#: field:report.cash.register,balance_start:0
msgid "Opening Balance"
-msgstr ""
+msgstr "Početni saldo"
#. module: point_of_sale
#: field:pos.order,amount_paid:0
@@ -1400,13 +1400,13 @@ msgstr "Plaćeno"
#. module: point_of_sale
#: model:ir.actions.act_window,name:point_of_sale.action_pos_all_sales_lines
msgid "All sales lines"
-msgstr ""
+msgstr "Sve stavke prodaje"
#. module: point_of_sale
#: selection:pos.order,state:0
#: selection:report.cash.register,state:0
msgid "Quotation"
-msgstr ""
+msgstr "Quotation"
#. module: point_of_sale
#: report:all.closed.cashbox.of.the.day:0
@@ -1420,17 +1420,17 @@ msgstr "Ukupno:"
#. module: point_of_sale
#: model:ir.model,name:point_of_sale.model_report_sales_by_margin_pos
msgid "Sales by margin"
-msgstr ""
+msgstr "Prodaje po marži"
#. module: point_of_sale
#: model:ir.model,name:point_of_sale.model_pos_config_journal
msgid "Journal Configuration"
-msgstr ""
+msgstr "Postava dnevnika"
#. module: point_of_sale
#: view:pos.order:0
msgid "Statement lines"
-msgstr ""
+msgstr "Retci izvoda"
#. module: point_of_sale
#: help:pos.order,user_id:0
@@ -1438,16 +1438,18 @@ msgid ""
"Person who uses the the cash register. It could be a reliever, a student or "
"an interim employee."
msgstr ""
+"Person who uses the the cash register. It could be a reliever, a student or "
+"an interim employee."
#. module: point_of_sale
#: field:report.transaction.pos,invoice_id:0
msgid "Nbr Invoice"
-msgstr ""
+msgstr "Račun br."
#. module: point_of_sale
#: model:ir.actions.act_window,name:point_of_sale.action_report_pos_receipt
msgid "Receipt"
-msgstr "Račun"
+msgstr "Receipt"
#. module: point_of_sale
#: field:pos.order,invoice_wanted:0
@@ -1458,7 +1460,7 @@ msgstr ""
#: selection:pos.order,state:0
#: selection:report.pos.order,state:0
msgid "Done"
-msgstr ""
+msgstr "Izvršeno"
#. module: point_of_sale
#: model:ir.actions.report.xml,name:point_of_sale.pos_invoice_report
@@ -1466,7 +1468,7 @@ msgstr ""
#: field:pos.make.payment,invoice_wanted:0
#: field:pos.order,invoice_id:0
msgid "Invoice"
-msgstr ""
+msgstr "Račun"
#. module: point_of_sale
#: model:ir.model,name:point_of_sale.model_pos_get_sale
@@ -1477,12 +1479,12 @@ msgstr ""
#: view:account.bank.statement:0
#: selection:report.cash.register,state:0
msgid "Open"
-msgstr ""
+msgstr "Otvoreno"
#. module: point_of_sale
#: field:pos.order.line,order_id:0
msgid "Order Ref"
-msgstr ""
+msgstr "Order Ref"
#. module: point_of_sale
#: model:ir.actions.act_window,name:point_of_sale.action_report_pos_payment_repport_date
@@ -1505,23 +1507,23 @@ msgstr ""
#: field:report.sales.by.margin.pos,net_margin_per_qty:0
#: field:report.sales.by.margin.pos.month,net_margin_per_qty:0
msgid "Net margin per Qty"
-msgstr ""
+msgstr "Neto marža po kol."
#. module: point_of_sale
#: view:report.sales.by.margin.pos:0
#: view:report.sales.by.margin.pos.month:0
msgid "Sales by User Margin"
-msgstr ""
+msgstr "Sales by User Margin"
#. module: point_of_sale
#: report:pos.invoice:0
msgid "Taxes:"
-msgstr ""
+msgstr "Porezi:"
#. module: point_of_sale
#: model:ir.model,name:point_of_sale.model_report_pos_order
msgid "Point of Sale Orders Statistics"
-msgstr ""
+msgstr "Point of Sale Orders Statistics"
#. module: point_of_sale
#: model:ir.model,name:point_of_sale.model_product_product
@@ -1536,12 +1538,12 @@ msgstr ""
#: view:report.pos.order:0
#: field:report.pos.order,product_id:0
msgid "Product"
-msgstr ""
+msgstr "Proizvod"
#. module: point_of_sale
#: model:ir.actions.report.xml,name:point_of_sale.pos_lines_report
msgid "Pos Lines"
-msgstr ""
+msgstr "Pos Lines"
#. module: point_of_sale
#: field:product.product,disc_controle:0
@@ -1551,29 +1553,29 @@ msgstr ""
#. module: point_of_sale
#: field:report.cash.register,balance_end_real:0
msgid "Closing Balance"
-msgstr ""
+msgstr "Završni saldo"
#. module: point_of_sale
#: model:ir.actions.act_window,name:point_of_sale.action_report_pos_details
#: model:ir.ui.menu,name:point_of_sale.menu_pos_details
msgid "Sale Details"
-msgstr ""
+msgstr "Prodaja detaljno"
#. module: point_of_sale
#: field:pos.payment.report.date,date_end:0
msgid "End Date"
-msgstr ""
+msgstr "Završni Datum"
#. module: point_of_sale
#: field:pos.order,date_order:0
msgid "Date Ordered"
-msgstr ""
+msgstr "Date Ordered"
#. module: point_of_sale
#: model:ir.actions.act_window,name:point_of_sale.action_report_pos_payment_report_user
#: model:ir.model,name:point_of_sale.model_pos_payment_report_user
msgid "Sales lines by Users"
-msgstr ""
+msgstr "Sales lines by Users"
#. module: point_of_sale
#: field:res.company,max_diff:0
@@ -1585,7 +1587,7 @@ msgstr ""
#: view:pos.confirm:0
#: view:pos.open.statement:0
msgid "Yes"
-msgstr ""
+msgstr "Da"
#. module: point_of_sale
#: code:addons/point_of_sale/point_of_sale.py:744
@@ -1601,7 +1603,7 @@ msgstr ""
#. module: point_of_sale
#: report:pos.lines:0
msgid "Net Total :"
-msgstr ""
+msgstr "Net Total :"
#. module: point_of_sale
#: view:product.product:0
@@ -1612,7 +1614,7 @@ msgstr ""
#: field:pos.details,date_start:0
#: field:pos.sale.user,date_start:0
msgid "Date Start"
-msgstr ""
+msgstr "Datum početka"
#. module: point_of_sale
#: field:pos.order,amount_total:0
@@ -1623,23 +1625,23 @@ msgstr ""
#: field:report.sales.by.user.pos,amount:0
#: field:report.sales.by.user.pos.month,amount:0
msgid "Total"
-msgstr ""
+msgstr "Ukupno"
#. module: point_of_sale
#: view:pos.sale.user:0
msgid "Sale By User"
-msgstr ""
+msgstr "Sale By User"
#. module: point_of_sale
#: model:ir.actions.act_window,name:point_of_sale.action_pos_open_statement
msgid "Open Cash Register"
-msgstr ""
+msgstr "Otvori blagajnu"
#. module: point_of_sale
#: report:account.statement:0
#: model:ir.actions.report.xml,name:point_of_sale.account_statement
msgid "Statement"
-msgstr ""
+msgstr "Izvod"
#. module: point_of_sale
#: field:pos.order,name:0
@@ -1657,7 +1659,7 @@ msgstr ""
#: model:ir.model,name:point_of_sale.model_pos_payment_report
#: view:pos.payment.report:0
msgid "Payment Report"
-msgstr ""
+msgstr "Izvještaj plaćanja"
#. module: point_of_sale
#: model:ir.actions.act_window,name:point_of_sale.action_view_pos_return
@@ -1681,7 +1683,7 @@ msgstr ""
#: report:pos.user.product:0
#: field:report.pos.order,company_id:0
msgid "Company"
-msgstr "Tvrtka"
+msgstr "Organizacija"
#. module: point_of_sale
#: report:pos.invoice:0
@@ -1705,7 +1707,7 @@ msgstr ""
#. module: point_of_sale
#: view:pos.order:0
msgid "Reprint"
-msgstr ""
+msgstr "Reprint"
#. module: point_of_sale
#: code:addons/point_of_sale/point_of_sale.py:558
@@ -1718,7 +1720,7 @@ msgstr ""
#. module: point_of_sale
#: model:ir.actions.report.xml,name:point_of_sale.pos_payment_report_user
msgid "Today's Payment By User"
-msgstr ""
+msgstr "Današnje plaćanje korisnika"
#. module: point_of_sale
#: field:stock.picking,pos_order:0
@@ -1735,7 +1737,7 @@ msgstr ""
#. module: point_of_sale
#: report:pos.lines:0
msgid "No. Of Articles"
-msgstr "Komada"
+msgstr "Br.Artikala"
#. module: point_of_sale
#: field:pos.order,date_validity:0
@@ -1745,7 +1747,7 @@ msgstr ""
#. module: point_of_sale
#: field:pos.order,pickings:0
msgid "Picking"
-msgstr ""
+msgstr "Skladišnice"
#. module: point_of_sale
#: field:pos.order,shop_id:0
@@ -1761,24 +1763,24 @@ msgstr ""
#. module: point_of_sale
#: model:ir.model,name:point_of_sale.model_account_bank_statement_line
msgid "Bank Statement Line"
-msgstr ""
+msgstr "Redak bankovnog izvoda"
#. module: point_of_sale
#: model:ir.model,name:point_of_sale.model_account_bank_statement
msgid "Bank Statement"
-msgstr ""
+msgstr "Izvod banke"
#. module: point_of_sale
#: report:pos.user.product:0
msgid "Ending Date"
-msgstr ""
+msgstr "Do datuma"
#. module: point_of_sale
#: view:report.sales.by.user.pos:0
#: view:report.sales.by.user.pos.month:0
#: view:report.transaction.pos:0
msgid "POS Report"
-msgstr ""
+msgstr "POS Izvještaj"
#. module: point_of_sale
#: model:ir.model,name:point_of_sale.model_pos_discount
@@ -1788,7 +1790,7 @@ msgstr ""
#. module: point_of_sale
#: model:ir.actions.act_window,name:point_of_sale.action_pos_close_statement
msgid "Close Cash Register"
-msgstr ""
+msgstr "Close Cash Register"
#. module: point_of_sale
#: field:pos.order.line,qty_rfd:0
@@ -1804,7 +1806,7 @@ msgstr "Očitaj barkod"
#: field:pos.box.entries,product_id:0
#: field:pos.box.out,product_id:0
msgid "Operation"
-msgstr ""
+msgstr "Operacija"
#. module: point_of_sale
#: model:ir.ui.menu,name:point_of_sale.menu_point_ofsale
@@ -1814,17 +1816,17 @@ msgstr ""
#. module: point_of_sale
#: field:pos.order,journal_entry:0
msgid "Journal Entry"
-msgstr ""
+msgstr "Temeljnica"
#. module: point_of_sale
#: selection:report.cash.register,state:0
msgid "Confirmed"
-msgstr ""
+msgstr "Potvrđeno"
#. module: point_of_sale
#: report:pos.invoice:0
msgid "Cancelled Invoice"
-msgstr ""
+msgstr "Otkazani račun"
#. module: point_of_sale
#: view:account.bank.statement:0
@@ -1836,7 +1838,7 @@ msgstr "Potvrdi"
#. module: point_of_sale
#: report:pos.payment.report.date:0
msgid "Sales Lines"
-msgstr ""
+msgstr "Stavke prodaje"
#. module: point_of_sale
#: constraint:res.company:0
@@ -1867,7 +1869,7 @@ msgstr "Naziv plaćanja"
#. module: point_of_sale
#: model:ir.ui.menu,name:point_of_sale.menu_point_rep
msgid "Reporting"
-msgstr "Izvještaji"
+msgstr "Izvještavanje"
#. module: point_of_sale
#: model:ir.ui.menu,name:point_of_sale.products_for_input_operations
@@ -1882,12 +1884,12 @@ msgstr ""
#. module: point_of_sale
#: model:ir.model,name:point_of_sale.model_pos_box_out
msgid "Pos Box Out"
-msgstr ""
+msgstr "Pos Box Out"
#. module: point_of_sale
#: sql_constraint:account.journal:0
msgid "The code of the journal must be unique per company !"
-msgstr ""
+msgstr "Šifra dnevnika mora biti jedinstvena (za organizaciju) !"
#. module: point_of_sale
#: model:ir.ui.menu,name:point_of_sale.menu_point_config_product
@@ -1897,7 +1899,7 @@ msgstr "Postava"
#. module: point_of_sale
#: report:pos.user.product:0
msgid "Starting Date"
-msgstr ""
+msgstr "Početni datum"
#. module: point_of_sale
#: field:pos.order,date_validation:0
@@ -1915,30 +1917,30 @@ msgstr ""
#. module: point_of_sale
#: model:ir.actions.act_window,name:point_of_sale.action_pos_invoice
msgid "Invoices"
-msgstr ""
+msgstr "Računi"
#. module: point_of_sale
#: selection:report.cash.register,month:0
#: selection:report.pos.order,month:0
msgid "December"
-msgstr ""
+msgstr "Prosinac"
#. module: point_of_sale
#: view:report.pos.order:0
#: field:report.pos.order,total_discount:0
msgid "Total Discount"
-msgstr ""
+msgstr "Total Discount"
#. module: point_of_sale
#: view:pos.box.out:0
msgid "Take Money"
-msgstr ""
+msgstr "Take Money"
#. module: point_of_sale
#: model:ir.model,name:point_of_sale.model_pos_details
#: model:ir.model,name:point_of_sale.model_pos_sales_user_today_current_user
msgid "Sales Details"
-msgstr ""
+msgstr "Detalji prodaje"
#. module: point_of_sale
#: field:product.product,am_out:0
@@ -1961,7 +1963,7 @@ msgstr ""
#: model:ir.model,name:point_of_sale.model_pos_order
#: model:ir.ui.menu,name:point_of_sale.menu_point_root
msgid "Point of Sale"
-msgstr ""
+msgstr "Point of Sale"
#. module: point_of_sale
#: view:pos.order:0
@@ -1987,12 +1989,12 @@ msgstr "Fakturirano"
#: view:pos.confirm:0
#: view:pos.open.statement:0
msgid "No"
-msgstr ""
+msgstr "Ne"
#. module: point_of_sale
#: field:pos.order.line,notice:0
msgid "Discount Notice"
-msgstr ""
+msgstr "Napomena popusta"
#. module: point_of_sale
#: view:pos.scan.product:0
@@ -2003,12 +2005,12 @@ msgstr "Dodaj"
#: view:report.cash.register:0
#: selection:report.pos.order,state:0
msgid "Draft"
-msgstr "U pripremi"
+msgstr "Nacrt"
#. module: point_of_sale
#: view:pos.order.line:0
msgid "POS Order line"
-msgstr ""
+msgstr "POS Order line"
#. module: point_of_sale
#: view:pos.open.statement:0
@@ -2018,12 +2020,12 @@ msgstr ""
#. module: point_of_sale
#: model:ir.model,name:point_of_sale.model_pos_payment_report_date
msgid "POS Payment Report according to date"
-msgstr ""
+msgstr "POS Payment Report according to date"
#. module: point_of_sale
#: report:pos.invoice:0
msgid "PRO-FORMA"
-msgstr "Predračun"
+msgstr "Pro-forma"
#. module: point_of_sale
#: code:addons/point_of_sale/point_of_sale.py:638
@@ -2071,23 +2073,23 @@ msgstr "Prodaje po korisniku"
#: selection:report.cash.register,month:0
#: selection:report.pos.order,month:0
msgid "November"
-msgstr ""
+msgstr "Studeni"
#. module: point_of_sale
#: view:pos.receipt:0
msgid "Print Receipt"
-msgstr ""
+msgstr "Print Receipt"
#. module: point_of_sale
#: selection:report.cash.register,month:0
#: selection:report.pos.order,month:0
msgid "January"
-msgstr ""
+msgstr "Siječanj"
#. module: point_of_sale
#: view:pos.order.line:0
msgid "POS Orders lines"
-msgstr ""
+msgstr "POS Orders lines"
#. module: point_of_sale
#: code:addons/point_of_sale/point_of_sale.py:340
@@ -2104,12 +2106,12 @@ msgstr ""
#. module: point_of_sale
#: field:report.transaction.pos,journal_id:0
msgid "Sales Journal"
-msgstr ""
+msgstr "Dnevnik prodaje"
#. module: point_of_sale
#: report:pos.invoice:0
msgid "Refund"
-msgstr "Povrat"
+msgstr "Povrat novca"
#. module: point_of_sale
#: code:addons/point_of_sale/report/pos_invoice.py:46
@@ -2122,19 +2124,19 @@ msgstr ""
#: report:pos.sales.user.today:0
#: field:report.pos.order,date:0
msgid "Date Order"
-msgstr ""
+msgstr "Date Order"
#. module: point_of_sale
#: model:ir.ui.menu,name:point_of_sale.menu_close_statement
msgid "Close Cash Registers"
-msgstr ""
+msgstr "Close Cash Registers"
#. module: point_of_sale
#: report:pos.details:0
#: report:pos.payment.report.date:0
#: report:pos.payment.report.user:0
msgid "Disc(%)"
-msgstr ""
+msgstr "Pop(%)"
#. module: point_of_sale
#: view:all.closed.cashbox.of.the.day:0
@@ -2148,17 +2150,17 @@ msgstr ""
#: view:pos.sales.user.today.current_user:0
#: view:pos.scan.product:0
msgid "Close"
-msgstr ""
+msgstr "Zatvori"
#. module: point_of_sale
#: view:pos.order:0
msgid "Order lines"
-msgstr ""
+msgstr "Stavke narudžbe"
#. module: point_of_sale
#: field:pos.order.line,price_subtotal:0
msgid "Subtotal w/o Tax"
-msgstr ""
+msgstr "Subtotal w/o Tax"
#. module: point_of_sale
#: view:pos.order:0
@@ -2168,22 +2170,22 @@ msgstr ""
#. module: point_of_sale
#: model:ir.actions.act_window,name:point_of_sale.action_report_pos_payment
msgid "Pyament Report"
-msgstr ""
+msgstr "Izvještaj blagajne"
#. module: point_of_sale
#: field:report.transaction.pos,jl_id:0
msgid "Cash Journals"
-msgstr ""
+msgstr "Gotovinske temeljnice"
#. module: point_of_sale
#: view:pos.details:0
msgid "POS Details :"
-msgstr ""
+msgstr "POS Detalji :"
#. module: point_of_sale
#: report:pos.sales.user.today:0
msgid "Today's Sales By User"
-msgstr ""
+msgstr "Današnje prodaje po korisniku"
#. module: point_of_sale
#: view:pos.box.entries:0
@@ -2204,23 +2206,23 @@ msgstr ""
#: report:pos.invoice:0
#: report:pos.lines:0
msgid "Description"
-msgstr ""
+msgstr "Opis"
#. module: point_of_sale
#: selection:report.cash.register,month:0
#: selection:report.pos.order,month:0
msgid "May"
-msgstr ""
+msgstr "Svibanj"
#. module: point_of_sale
#: report:pos.lines:0
msgid "Sales lines"
-msgstr ""
+msgstr "Stavke prodaje"
#. module: point_of_sale
#: field:pos.order,note:0
msgid "Internal Notes"
-msgstr ""
+msgstr "Interne bilješke"
#. module: point_of_sale
#: view:pos.add.product:0
@@ -2242,7 +2244,7 @@ msgstr ""
#: model:ir.ui.menu,name:point_of_sale.menu_report_pos_order_all
#: view:report.pos.order:0
msgid "Point of Sale Analysis"
-msgstr ""
+msgstr "Analiza maloprodaje (POS-a)"
#. module: point_of_sale
#: field:pos.make.payment,partner_id:0
@@ -2250,7 +2252,7 @@ msgstr ""
#: field:pos.order,partner_id:0
#: view:report.pos.order:0
msgid "Customer"
-msgstr ""
+msgstr "Kupac"
#. module: point_of_sale
#: field:pos.make.payment,is_acc:0
@@ -2264,12 +2266,12 @@ msgstr ""
#: selection:report.cash.register,month:0
#: selection:report.pos.order,month:0
msgid "February"
-msgstr ""
+msgstr "Veljača"
#. module: point_of_sale
#: view:report.cash.register:0
msgid " Today "
-msgstr ""
+msgstr " Danas "
#. module: point_of_sale
#: code:addons/point_of_sale/wizard/pos_box_out.py:95
@@ -2293,12 +2295,12 @@ msgstr ""
#: selection:report.cash.register,month:0
#: selection:report.pos.order,month:0
msgid "April"
-msgstr ""
+msgstr "Travanj"
#. module: point_of_sale
#: field:pos.order,statement_ids:0
msgid "Payments"
-msgstr ""
+msgstr "Plaćanja"
#. module: point_of_sale
#: report:pos.details:0
@@ -2312,17 +2314,17 @@ msgstr ""
#: report:pos.sales.user.today.current.user:0
#: report:pos.user.product:0
msgid "Print Date"
-msgstr ""
+msgstr "Datum ispisa"
#. module: point_of_sale
#: model:ir.actions.act_window,name:point_of_sale.action_report_sales_by_margin_pos_month
msgid "Sales by User Monthly margin"
-msgstr ""
+msgstr "Prodaja prema mjesečnoj marži korisnika"
#. module: point_of_sale
#: view:pos.order:0
msgid "Search Sales Order"
-msgstr ""
+msgstr "Traži prodajne naloge"
#. module: point_of_sale
#: field:pos.order,account_move:0
@@ -2336,13 +2338,13 @@ msgstr ""
#: view:pos.order:0
#, python-format
msgid "Make Payment"
-msgstr ""
+msgstr "Plaćanje"
#. module: point_of_sale
#: model:ir.model,name:point_of_sale.model_pos_sales_user_today
#: view:pos.sales.user.today:0
msgid "Sales User Today"
-msgstr ""
+msgstr "Prodaja po korisniku"
#. module: point_of_sale
#: view:report.cash.register:0
@@ -2350,7 +2352,7 @@ msgstr ""
#: view:report.pos.order:0
#: field:report.pos.order,year:0
msgid "Year"
-msgstr ""
+msgstr "Godina"
#~ msgid "Discount :"
#~ msgstr "Popust"
@@ -2391,9 +2393,6 @@ msgstr ""
#~ msgid "E-mail :"
#~ msgstr "E-mail :"
-#~ msgid "Discount"
-#~ msgstr "Popust"
-
#~ msgid "Payment Name"
#~ msgstr "Naziv plaćanja"
@@ -2420,3 +2419,6 @@ msgstr ""
#~ msgid "Discount percentage"
#~ msgstr "Postotak popusta"
+
+#~ msgid "Discount"
+#~ msgstr "Discount"
diff --git a/addons/point_of_sale/point_of_sale.py b/addons/point_of_sale/point_of_sale.py
index b19405bd43f..74f6fb54368 100644
--- a/addons/point_of_sale/point_of_sale.py
+++ b/addons/point_of_sale/point_of_sale.py
@@ -122,10 +122,10 @@ class pos_order(osv.osv):
'partner_id': fields.many2one('res.partner', 'Customer', change_default=True, select=1, states={'draft': [('readonly', False)], 'paid': [('readonly', False)]}),
'state': fields.selection([('draft', 'New'),
- ('paid', 'Done'),
+ ('cancel', 'Cancelled'),
+ ('paid', 'Paid'),
('done', 'Posted'),
- ('invoiced', 'Invoiced'),
- ('cancel', 'Cancelled')],
+ ('invoiced', 'Invoiced')],
'State', readonly=True),
'invoice_id': fields.many2one('account.invoice', 'Invoice'),
@@ -381,11 +381,12 @@ class pos_order(osv.osv):
inv_ref.button_reset_taxes(cr, uid, [inv_id], context=context)
if not inv_ids: return {}
+
mod_obj = self.pool.get('ir.model.data')
res = mod_obj.get_object_reference(cr, uid, 'account', 'invoice_form')
res_id = res and res[1] or False
return {
- 'name': _('PoS Invoices'),
+ 'name': _('Customer Invoice'),
'view_type': 'form',
'view_mode': 'form',
'view_id': res_id,
@@ -691,10 +692,12 @@ pos_category()
class product_product(osv.osv):
_inherit = 'product.product'
_columns = {
- 'income_pdt': fields.boolean('Product for Input'),
- 'expense_pdt': fields.boolean('Product for Output'),
- 'img': fields.binary('Pos Image, must be 50x50'),
- 'pos_categ_id': fields.many2one('pos.category','POS Category', change_default=True, domain="[('type','=','normal')]" ,help="Select a pos category for the current product")
+ 'income_pdt': fields.boolean('PoS Cash Input', help="This is a product you can use to put cash into a statement for the point of sale backend."),
+ 'expense_pdt': fields.boolean('PoS Cash Output', help="This is a product you can use to take cash from a statement for the point of sale backend, exemple: money lost, transfer to bank, etc."),
+ 'img': fields.binary('Product Image, must be 50x50', help="Use an image size of 50x50."),
+ 'pos_categ_id': fields.many2one('pos.category','PoS Category',
+ domain="[('type','=','normal')]",
+ help="If you want to sell this product through the point of sale, select the category it belongs to.")
}
product_product()
diff --git a/addons/point_of_sale/point_of_sale_demo.xml b/addons/point_of_sale/point_of_sale_demo.xml
index 5e9c00ace54..95270721b8e 100644
--- a/addons/point_of_sale/point_of_sale_demo.xml
+++ b/addons/point_of_sale/point_of_sale_demo.xml
@@ -66,7 +66,6 @@
-
@@ -76,7 +75,6 @@
paid
POS/019
- tax_excluded
@@ -106,7 +104,6 @@
POS/019
-
direct
@@ -137,7 +134,6 @@
Stock move (POS 12)
-
@@ -157,7 +153,6 @@
- tax_excluded
@@ -165,7 +160,6 @@
- tax_excluded
@@ -173,11 +167,9 @@
-
[PC3] Medium PC
-
450
2
No Discount
@@ -185,11 +177,9 @@
-
[PC2] Basic+ PC (assembly on order)
-
450
2
No Discount
@@ -197,11 +187,9 @@
-
[PC1] Basic PC
-
450
5
0.10
diff --git a/addons/point_of_sale/point_of_sale_report.xml b/addons/point_of_sale/point_of_sale_report.xml
index b8d5456f1cd..41ce5232ac3 100644
--- a/addons/point_of_sale/point_of_sale_report.xml
+++ b/addons/point_of_sale/point_of_sale_report.xml
@@ -43,17 +43,6 @@
rml="point_of_sale/report/pos_lines.rml"
/>
-
-
-
-
@@ -12,11 +12,11 @@
pos.order
form
-
+
-
+
@@ -49,7 +49,7 @@
-
+
@@ -59,9 +59,9 @@
-
+
@@ -99,11 +99,12 @@
- Point of Sale
+ PoS Orders
ir.actions.act_window
pos.order
form
-
+ tree,form
+
[]
@@ -154,10 +155,10 @@
-
+
-
+
Sale lines
@@ -580,6 +581,19 @@
[('date_order','like',time.strftime('%Y-%m'))]
+
+ product.normal.pos.form.inherit
+ product.product
+ form
+
+
+
+
+
+
+
+
+
product.normal.form.inherit
product.product
@@ -599,68 +613,24 @@
pos.category.tree
pos.category
tree
- child_id
+
-
+
- Products by POS-Category
+ PoS Categories
ir.actions.act_window
pos.category
- [('parent_id','=',False)]
- tree
-
- Here is a list of all your products classified by POS category. You can click a category to get the list of all products linked to this category or to a child of this category.
+ form
+ tree,form
+
-
- product.normal.form.inherit
- product.product
- form
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -671,18 +641,7 @@
form
tree,form
[('expense_pdt','=',True)]
-
-
-
- tree
-
-
-
-
-
- form
-
-
+ {'default_expense_pdt': True}
form
tree,form
[('income_pdt','=',True)]
-
-
-
- tree
-
-
-
-
-
- form
-
-
+ {'default_income_pdt': True}
account.journal
form
tree,form
- {'default_journal_user': 1}
+
[('journal_user','=', 1)]
Payment methods are defined by accounting journals having the field Payment Method checked.
@@ -786,8 +734,6 @@
[('origin','like','POS')]
-
@@ -796,11 +742,15 @@
pos.ui
-