Browse Source

donation payment

dev-rcn
root 3 years ago
parent
commit
25682d74d2
4 changed files with 134 additions and 39 deletions
  1. +1
    -1
      __manifest__.py
  2. +58
    -25
      controllers/kalachakra.py
  3. +52
    -0
      static/js/kalachakra.js
  4. +23
    -13
      views/website_participation.xml

+ 1
- 1
__manifest__.py View File

@ -33,7 +33,7 @@
# 'views/partnerimport.xml', # 'views/partnerimport.xml',
'report/report_donationtax.xml', 'report/report_donationtax.xml',
'report/report.xml', 'report/report.xml',
'views/website_makedonation.xml'
'views/website_participation.xml'
#'report/report_donationtax.xml', #'report/report_donationtax.xml',
#'report/report.xml' #'report/report.xml'


+ 58
- 25
controllers/kalachakra.py View File

@ -85,34 +85,42 @@ class kalachakra_event(WebsiteEventController,PaymentProcessing):
return http.request.render('kalachakra.makedonation_form',data) return http.request.render('kalachakra.makedonation_form',data)
@http.route(['/kalachakra/makedonation'], type='http', auth='public', website=True, sitemap=False,csrf=False)
def makedonation(self,**post):
@http.route(['/kalachakra/participation'], type='http', auth='public', website=True, sitemap=False,csrf=False)
def participation(self,type=None,**post):
data={} data={}
if type=='donation':
request.session['donation_transaction']=True
data['title']='make donation'
data['amount']=10
#donation product
data['products']=request.env['product.product'].search([('donation','=',True)])
userid=request.env.context.get('uid') userid=request.env.context.get('uid')
#title options #title options
title=request.env['res.partner.title'].sudo().search([]) title=request.env['res.partner.title'].sudo().search([])
data['titles']=title data['titles']=title
title_male=request.env['res.partner.title'].sudo().search([('name','=','Monsieur')])
#country options
country=request.env['res.country'].sudo().search([])
data['countries']=country
country_france=request.env['res.country'].sudo().search([('name','=','France')])
#donation product
donation_products=request.env['product.product'].search([('donation','=',True)])
data['donation_products']=donation_products
if userid: if userid:
user=request.env['res.users'].search([('id','=',int(userid))]) user=request.env['res.users'].search([('id','=',int(userid))])
partner=request.env['res.partner'].sudo().search([('id','=',int(user.partner_id))]) partner=request.env['res.partner'].sudo().search([('id','=',int(user.partner_id))])
request.session['partner_id']=int(partner.id) request.session['partner_id']=int(partner.id)
data['partner']=partner data['partner']=partner
data['registred']=True
else: else:
data['registred']=False
title_male=request.env['res.partner.title'].sudo().search([('name','=','Monsieur')])
#country options
country=request.env['res.country'].sudo().search([])
data['countries']=country
country_france=request.env['res.country'].sudo().search([('name','=','France')])
partner=request.env['res.partner'] partner=request.env['res.partner']
partner.email='' partner.email=''
partner.title=title_male.id partner.title=title_male.id
@ -126,12 +134,12 @@ class kalachakra_event(WebsiteEventController,PaymentProcessing):
data['partner']=partner data['partner']=partner
data['amount']=10
return http.request.render('kalachakra.makedonation_form',data)
return http.request.render('kalachakra.participation_form',data)
@http.route(['/kalachakra/payment_choice'], type='http', auth='public', website=True, sitemap=False,csrf=False) @http.route(['/kalachakra/payment_choice'], type='http', auth='public', website=True, sitemap=False,csrf=False)
def payment_choice(self,**post): def payment_choice(self,**post):
@ -141,17 +149,42 @@ class kalachakra_event(WebsiteEventController,PaymentProcessing):
partner=request.env['res.partner'].sudo().search([('id','=',int(user.partner_id))]) partner=request.env['res.partner'].sudo().search([('id','=',int(user.partner_id))])
request.session['partner_id']=int(partner.id) request.session['partner_id']=int(partner.id)
else: else:
a=1
#si pas connecté on chercher le contact indiqué par l'email #si pas connecté on chercher le contact indiqué par l'email
partner=request.env['res.partner'].sudo().search([('email','=',post.get('email'))],limit=1)
#si pas de contact on le créé dans la base #si pas de contact on le créé dans la base
if not partner:
vals={}
vals['email']=post.get('email')
vals['name']=post.get('name')
vals['firstname']=post.get('firstname')
vals['title']=int(post.get('title_id'))
vals['street']=post.get('street')
vals['street2']=post.get('street2')
vals['zip']=post.get('zip')
vals['country_id']=int(post.get('country_id'))
vals['phone']=post.get('phone')
partner=request.env['res.partner'].sudo().create(vals)
data={} data={}
data['submit_txt']='Donate now'
data['success_url']='/kalachakra/payment/success' data['success_url']='/kalachakra/payment/success'
data['error_url']='/kalachakra/payment/error' data['error_url']='/kalachakra/payment/error'
data['acquirers'] = list(request.env['payment.acquirer'].search([
('state', 'in', ['enabled', 'test']),('company_id', '=', request.env.company.id)
]))
if request.session.get('donation_transaction')==True:
data['acquirers'] = list(request.env['payment.acquirer'].search([
('state', 'in', ['enabled', 'test']),
('company_id', '=', request.env.company.id),
('provider', '!=', 'transfer')
]))
else:
data['acquirers'] = list(request.env['payment.acquirer'].search([
('state', 'in', ['enabled', 'test']),
('company_id', '=', request.env.company.id)
]))
payment_tokens = partner.payment_token_ids payment_tokens = partner.payment_token_ids
@ -163,20 +196,20 @@ class kalachakra_event(WebsiteEventController,PaymentProcessing):
vals={} vals={}
vals['partner_id']=partner.id vals['partner_id']=partner.id
order_draft=request.env['sale.order'].create(vals)
order_draft=request.env['sale.order'].sudo().create(vals)
data['order_id']=order_draft.id data['order_id']=order_draft.id
#création des lignes de devis #création des lignes de devis
vals={} vals={}
vals['order_id']=order_draft.id vals['order_id']=order_draft.id
#ajout du produit #ajout du produit
vals['product_id']=int(post.get('donation_product_id'))
vals['product_id']=int(post.get('product_id'))
vals['product_uom_qty']=1 vals['product_uom_qty']=1
vals['price_unit']=post.get('amount') vals['price_unit']=post.get('amount')
product=request.env['product.product'].search([('id','=',int(post.get('donation_product_id')))])
product=request.env['product.product'].search([('id','=',int(post.get('product_id')))])
vals['name']=product.name vals['name']=product.name
order_line=request.env['sale.order.line'].create(vals)
order_line=request.env['sale.order.line'].sudo().create(vals)


+ 52
- 0
static/js/kalachakra.js View File

@ -0,0 +1,52 @@
odoo.define('kalachakra.main', function (require) {
$(document).ready(function() {
});
$( "#btn_payment_choice" ).click(function() {
//validation de l'adresse mail
if (ValidateEmail($("#email").val()))
{
//vérification montant
if ($("#amount_id").val()==0)
{
alert('please enter an amount')
}
else
{
$( "#form" ).submit();
}
}
else
{
alert("You have entered an invalid email address!")
}
});
function ValidateEmail(mail)
{
if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(mail))
{
return (true)
}
return (false)
}
});

views/website_makedonation.xml → views/website_participation.xml View File


Loading…
Cancel
Save