[IMP] website_sale: sates, company

bzr revid: chm@openerp.com-20130723154211-vhskyfd256z1sbtw
This commit is contained in:
Christophe Matthieu 2013-07-23 17:42:11 +02:00
parent 2f97f8b5b7
commit 3bf704b475
2 changed files with 35 additions and 23 deletions

View File

@ -195,6 +195,7 @@ class Ecommerce(http.Controller):
partner_obj = request.registry.get('res.partner')
user_obj = request.registry.get('res.users')
country_obj = request.registry.get('res.country')
country_state_obj = request.registry.get('res.country.state')
obj_data = request.registry.get('ir.model.data')
values['partner'] = False
@ -205,13 +206,8 @@ class Ecommerce(http.Controller):
if partner_id:
values['partner'] = partner_obj.browse(cr, uid, partner_id)
shipping_category_id = obj_data.get_object_reference(cr, uid, 'website_sale', 'shipping_address')[1]
shipping_ids = partner_obj.search(cr, uid, [("parent_id", "=", partner_id), ("category_id", "=", shipping_category_id)])
shipping_id = shipping_ids and shipping_ids[0] or None
values['shipping'] = partner_obj.browse(cr, uid, shipping_id)
values['countries'] = country_obj.browse(cr, uid, country_obj.search(cr, uid, [(1, "=", 1)]))
values['states'] = country_state_obj.browse(cr, uid, country_state_obj.search(cr, uid, [(1, "=", 1)]))
return request.registry.get("ir.ui.view").render(cr, uid, "website_sale.checkout", values)
@ -233,14 +229,17 @@ class Ecommerce(http.Controller):
return simplejson.dumps(json)
# search or create company
company_id = None
if post['company']:
pass
company_ids = partner_obj.search(cr, uid, [("name", "ilike", post['company']), ('is_company', '=', True)])
company_id = company_ids and company_ids[0] or None
if not company_id:
company_id = partner_obj.create(cr, uid, {'name': post['company'], 'is_company': True})
if 'shipping_name' in post and post['shipping_company']:
pass
if post['state']:
pass
if 'shipping_name' in post and post['shipping_state']:
pass
company_ids = partner_obj.search(cr, uid, [("name", "ilike", post['shipping_company']), ('is_company', '=', True)])
shipping_company_id = company_ids and company_ids[0] or None
if not company_id:
shipping_company_id = partner_obj.create(cr, uid, {'name': post['shipping_company'], 'is_company': True})
partner_value = {
'fax': post['fax'],
@ -250,7 +249,9 @@ class Ecommerce(http.Controller):
'street': post['street'],
'city': post['city'],
'name': post['name'],
'parent_id': company_id,
'country_id': post['country_id'],
'state_id': post['state_id'],
}
if partner_id:
partner_obj.write(cr, uid, [partner_id], partner_value)
@ -266,9 +267,10 @@ class Ecommerce(http.Controller):
'street': post['shipping_street'],
'city': post['shipping_city'],
'name': post['shipping_name'],
'parent_id': partner_id,
'parent_id': shipping_company_id,
'category_id': [(4, shipping_category_id)],
'country_id': post['shipping_country_id'],
'state_id': post['shipping_state_id'],
}
shipping_ids = partner_obj.search(cr, uid, [("parent_id", "=", partner_id), ("category_id", "=", shipping_category_id)])
shipping_id = shipping_ids and shipping_ids[0] or None

View File

@ -213,7 +213,12 @@
<label class="span4 css_required">Email address<input type="email" name="email" placeholder="Email address" t-att-value="partner.email or ''"/></label>
<label class="span8 css_required">Street<input class="span7" type="text" name="street" placeholder="Street address" t-att-value="partner.street or ''"/></label>
<label class="span4 css_required">City<input type="text" name="city" placeholder="City" t-att-value="partner.city or ''"/></label>
<label class="span4">State / Province<input type="text" name="state" placeholder="State/Province" t-att-value="partner.state or ''"/></label>
<label class="span4">State / Province <select name="state_id">
<option value="">State / Province...</option>
<t t-foreach="states or []" t-as="state">
<option t-att-value="state.id" t-att-selected="partner and partner.state_id and state.id == partner.state_id.id or None"><t t-esc="state.name"/></option>
</t>
</select></label>
<label class="span4 css_required">Zip / Postal Code<input type="text" name="zip" placeholder="Zip/Postal Code" t-att-value="partner.zip or ''"/></label>
<label class="span4 css_required">Country <select name="country_id">
<option value="">Country...</option>
@ -225,18 +230,23 @@
</div>
<div class="js_inputs js_shipping row" style="display:none">
<h3 class="span8 oe_shipping" style="display:none">Shipping Information</h3>
<label class="span8 css_required">Name and firstname<input class="span7" type="text" name="shipping_name" placeholder="Name and firstname" t-att-value="shipping.name or ''"/></label>
<label class="span4 css_required">Telephone<input type="tel" name="shipping_phone" placeholder="Telephone" t-att-value="shipping.phone or ''"/></label>
<label class="span4">Fax<input type="tel" name="shipping_fax" placeholder="Fax" t-att-value="shipping.phone or ''"/></label>
<label class="span4">Company<input type="text" name="shipping_company" placeholder="Company" t-att-value="shipping.parent_id and shipping.parent_id.name or ''"/></label>
<label class="span8 css_required">Street<input class="span7" type="text" name="shipping_street" placeholder="Street address" t-att-value="shipping.street or ''"/></label>
<label class="span4 css_required">City<input type="text" name="shipping_city" placeholder="City" t-att-value="shipping.city or ''"/></label>
<label class="span4">State / Province<input type="text" name="shipping_state" placeholder="State/Province" t-att-value="shipping.state or ''"/></label>
<label class="span4 css_required">Zip / Postal Code<input type="text" name="shipping_zip" placeholder="Zip/Postal Code" t-att-value="shipping.zip or ''"/></label>
<label class="span8 css_required">Name and firstname<input class="span7" type="text" name="shipping_name" placeholder="Name and firstname"/></label>
<label class="span4 css_required">Telephone<input type="tel" name="shipping_phone" placeholder="Telephone"/></label>
<label class="span4">Fax<input type="tel" name="shipping_fax" placeholder="Fax"/></label>
<label class="span4">Company<input type="text" name="shipping_company" placeholder="Company"/></label>
<label class="span8 css_required">Street<input class="span7" type="text" name="shipping_street" placeholder="Street address"/></label>
<label class="span4 css_required">City<input type="text" name="shipping_city" placeholder="City"/></label>
<label class="span4">State / Province <select name="shipping_state_id">
<option value="">State / Province...</option>
<t t-foreach="states or []" t-as="state">
<option t-att-value="state.id" t-att-selected="partner and partner.state_id and state.id == partner.state_id.id or None"><t t-esc="state.name"/></option>
</t>
</select></label>
<label class="span4 css_required">Zip / Postal Code<input type="text" name="shipping_zip" placeholder="Zip/Postal Code"/></label>
<label class="span4 css_required">Country <select name="shipping_country_id">
<option value="">Country...</option>
<t t-foreach="countries or []" t-as="country">
<option t-att-value="country.id" t-att-selected="shipping and shipping.country_id and country.id == shipping.country_id.id or None"><t t-esc="country.name"/></option>
<option t-att-value="country.id" t-att-selected="partner and partner.country_id and country.id == partner.country_id.id or None"><t t-esc="country.name"/></option>
</t>
</select></label>
</div>