Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import xmlrpclib
- from datetime import datetime
- # url = "http://localhost:8069"
- # db = "RAJO"
- # username = 'a'
- # password = 'a'
- url = "https://erp.atlantis-kw.com"
- db = "RAJO_TEST"
- username = 'api'
- password = 'api'
- common = xmlrpclib.ServerProxy('{}/xmlrpc/2/common'.format(url))
- uid = common.authenticate(db, username, password, {})
- models = xmlrpclib.ServerProxy('{}/xmlrpc/2/object'.format(url))
- class Partners():
- def read(self):
- # Read customers
- model_name = 'res.partner'
- partner_ids = models.execute_kw(db, uid, password, model_name, 'search', [[['customer', '=', True]]])
- partner_records = models.execute_kw(db, uid, password, model_name, 'read', [partner_ids])
- return partner_records
- def create(self):
- # Create customer
- model_name = 'res.partner'
- vals = {
- 'name': "New Customer",
- }
- new_id = models.execute_kw(db, uid, password, model_name, 'create', [vals])
- return new_id
- def update(self, id):
- # Update customer
- model_name = 'res.partner'
- models.execute_kw(db, uid, password, model_name, 'write', [[id], {
- 'name': "Newer partner"
- }])
- class Product():
- # Read product
- def read(self):
- model_name = 'product.product'
- product = models.execute_kw(db, uid, password, model_name, 'search_read', [[]], {'limit': 1})[0]
- class Candidate():
- def read(self):
- # # Read candidate
- model_name = 'rajo.candidate'
- candidate = models.execute_kw(db, uid, password, model_name, 'search_read', [[]], {'limit': 1})[0]
- class SaleOrder():
- def read(self):
- # Read sale order
- model_name = 'sale.order'
- order_ids = models.execute_kw(db, uid, password, model_name, 'search', [[]])
- order_records = models.execute_kw(db, uid, password, model_name, 'read', [order_ids])
- def create(self, partner_id, candidate_id, line_name, product_id):
- # Create sale order
- model_name = 'sale.order'
- vals = {
- 'origin': "A555",
- 'client_order_ref': "B555",
- 'partner_id': partner_id, # api partner
- 'pricelist_id': 1, # Public Pricelist (KWD)
- 'partner_invoice_id': partner_id,
- 'partner_shipping_id': partner_id,
- 'order_line': [(0, 0, {
- 'name': line_name,
- 'product_id': product_id,
- 'product_uom_qty': 2,
- 'qty_delivered': 2,
- 'price_unit': 1000.00,
- 'candidate_id': candidate_id,
- })]
- }
- new_id = models.execute_kw(db, uid, password, model_name, 'create', [vals])
- return new_id
- class Ticket():
- def read(self):
- # Read ticket
- model_name = 'helpdesk.ticket'
- tickets = models.execute_kw(db, uid, password, model_name, 'search_read', [[['partner_id', '=', partner['id']]]])
- def create(self, partner_id, candidate_id):
- # Create ticket
- model_name = 'helpdesk.ticket'
- vals = {
- 'name': "Test ticket",
- 'partner_id': partner_id,
- 'candidate_id': candidate_id,
- }
- new_id = models.execute_kw(db, uid, password, model_name, 'create', [vals])
- return new_id
- class Payment():
- def create(self, sale_order_id):
- # Create invoice and register payment
- model_name = 'sale.order'
- models.execute_kw(db, uid, password, model_name, 'action_confirm', [[sale_order_id]])
- new_invoice_id = models.execute_kw(db, uid, password, model_name, 'action_invoice_create', [[sale_order_id]])
- model_name = 'account.invoice'
- models.execute_kw(db, uid, password, model_name, 'action_invoice_open', new_invoice_id)
- ctx = {'active_model': 'account.invoice', 'active_ids': new_invoice_id}
- vals = {
- 'payment_date': str(datetime.now()),
- 'journal_id': 7, # Bank journal ID
- 'payment_method_id': 1, # manual
- 'amount': 2000.00,
- }
- model_name = 'account.register.payments'
- registered_payment_id = models.execute_kw(db, uid, password, model_name, 'create', [vals], {'context': ctx})
- models.execute_kw(db, uid, password, model_name, 'create_payment', [[registered_payment_id]], {'context': ctx})
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement