DigitalSignage/controllers/dss_webhook_controller.py

165 lines
11 KiB
Python

# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
import os
import os.path
import base64
import logging
import werkzeug
import json
from odoo.http import request,Controller, route
from werkzeug.wrappers import Response
_logger = logging.getLogger(__name__)
class WebContractsInput(Controller):
@route(['/eingabe'],type='http', auth='user', website=True, csrf=False)
def web_form(self, **kwargs):
_logger.info("inside: start web_form")
return request.render("website.eingabe-phase1")
@route(['/eingabe/start'],type='http', auth='user', website=True, csrf=False)
def changeScreenView(self, **kwargs):
_logger.info("inside: start changeScreenTemplateView" + str(request.params)+' --'+str(kwargs)+' --'+str(request.httprequest.data))
name = kwargs.get('websideusername')
user_id = kwargs.get('websideuserid')
projekt_id = kwargs.get('project')
project = request.env['dss.projects'].search([('id','=',int(projekt_id))],limit=1)
project.reservedkdnr=str(project.reservedkdnr)+';'+str(project.lastkdnr+1)
project.lastkdnr=project.lastkdnr+1
tempid = str(project.projectid) + str(user_id).zfill(2) + str(project.lastkdnr).zfill(2)
tempname = tempid + '_Vertrag'
contract_name = str(tempid)+' - Vertrag ' + str(project.lastkdnr).zfill(2)
contract_id = str(project.projectid) + str(project.lastrealkdnr).zfill(2)
new_contract = request.env['dss.contracts'].create({'project_id':project.projectid,'project':project.id,'client_id':str(project.lastkdnr).zfill(2),'contract_auto_id':str(tempid),'contract_auto_name':str(tempname),'contract_state':39,'contract_name':contract_name})
contract_data_id=new_contract.id
_logger.info("inside: "+str(name)+'--'+str(projekt_id))
return request.render("website."+project.grundsystem_webinput_template,{'websideusername':name,'user_id':str(user_id),'projectid':str(project.projectid),'project':str(projekt_id),'contract_id':str(contract_id),'kd_id':str(str(project.lastrealkdnr).zfill(2)),'contract_data_id':str(contract_data_id)})
@route(['/eingabe/submit_lcdtouch'],type='http', auth='user', website=True, csrf=False)
def submit_lcdtouch(self, **kwargs):
_logger.info("inside: start changeScreenTemplateView" + str(request.params)+' --'+str(kwargs)+' --'+str(request.httprequest.data))
name = kwargs.get('websideusername')
projekt_id = kwargs.get('project')
projectid = kwargs.get('projectid')
user_id = kwargs.get('user_id')
contract_id = kwargs.get('contract_id')
kd_id = kwargs.get('kd_id')
contract_data_id = kwargs.get('contract_data_id')
_logger.info("inside: "+str(name)+'--'+str(projekt_id)+'--'+str(kd_id)+'--'+str(contract_id)+'--'+str(contract_data_id))
return request.render("website.eingabe-phase3-upload",{'websideusername':name,'user_id':str(user_id),'projectid':str(projectid),'project':str(projekt_id),'contract_id':str(contract_id),'kd_id':str(kd_id),'contract_data_id':str(contract_data_id)})
@route(['/eingabe/submit_kfz'],type='http', auth='user', website=True, csrf=False)
def submit_kfz(self, **kwargs):
_logger.info("inside: start changeScreenTemplateView" + str(request.params)+' --'+str(kwargs)+' --'+str(request.httprequest.data))
name = kwargs.get('websideusername')
projekt_id = kwargs.get('project')
projectid = kwargs.get('projectid')
user_id = kwargs.get('user_id')
contract_id = kwargs.get('contract_id')
kd_id = kwargs.get('kd_id')
contract_data_id = kwargs.get('contract_data_id')
_logger.info("inside: "+str(name)+'--'+str(projekt_id)+'--'+str(kd_id)+'--'+str(contract_id)+'--'+str(contract_data_id))
return request.render("website.eingabe-phase3-upload",{'websideusername':name,'user_id':str(user_id),'projectid':str(projectid),'project':str(projekt_id),'contract_id':str(contract_id),'kd_id':str(kd_id),'contract_data_id':str(contract_data_id)})
@route(['/eingabe/submit_stream'],type='http', auth='user', website=True, csrf=False)
def submit_stream(self, **kwargs):
_logger.info("inside: start changeScreenTemplateView" + str(request.params)+' --'+str(kwargs)+' --'+str(request.httprequest.data))
name = kwargs.get('websideusername')
projekt_id = kwargs.get('project')
projectid = kwargs.get('projectid')
user_id = kwargs.get('user_id')
contract_id = kwargs.get('contract_id')
kd_id = kwargs.get('kd_id')
contract_data_id = kwargs.get('contract_data_id')
_logger.info("inside: "+str(name)+'--'+str(projekt_id)+'--'+str(kd_id)+'--'+str(contract_id)+'--'+str(contract_data_id))
return request.render("website.eingabe-phase3-upload",{'websideusername':name,'user_id':str(user_id),'projectid':str(projectid),'project':str(projekt_id),'contract_id':str(contract_id),'kd_id':str(kd_id),'contract_data_id':str(contract_data_id)})
@route(['/eingabe/submit_upload'],type='http', auth='user', website=True, csrf=False)
def submit_upload(self, **kwargs):
_logger.info("inside: start changeScreenTemplateView" + str(request.params)+' --'+str(kwargs)+' --'+str(request.httprequest.data))
name = kwargs.get('websideusername')
projekt_id = kwargs.get('project')
projectid = kwargs.get('projectid')
user_id = kwargs.get('user_id')
contract_id = kwargs.get('contract_id')
kd_id = kwargs.get('kd_id')
contract_data_id = kwargs.get('contract_data_id')
_logger.info("inside: "+str(name)+'--'+str(projekt_id)+'--'+str(kd_id)+'--'+str(contract_id)+'--'+str(contract_data_id))
return request.render("website.eingabe-phase4-finish",{'websideusername':name,'user_id':str(user_id),'projectid':str(projectid),'project':str(projekt_id),'contract_id':str(contract_id),'kd_id':str(kd_id),'contract_data_id':str(contract_data_id)})
@route(['/eingabe/submit_finish'],type='http', auth='user', website=True, csrf=False)
def submit_finish(self, **kwargs):
_logger.info("inside: start changeScreenTemplateView" + str(request.params)+' --'+str(kwargs)+' --'+str(request.httprequest.data))
name = kwargs.get('websideusername')
projekt_id = kwargs.get('project')
projectid = kwargs.get('projectid')
user_id = kwargs.get('user_id')
contract_id = kwargs.get('contract_id')
kd_id = kwargs.get('kd_id')
contract_data_id = kwargs.get('contract_data_id')
submit_finish = kwargs.get('submit')
_logger.info("inside finish : "+str(name)+'--'+str(projekt_id)+'--'+str(kd_id)+'--'+str(contract_id)+'--'+str(contract_data_id)+'--'+str(submit_finish))
if submit_finish == 'Eingabe beenden':
return request.render("website.eingabe-phase1")
if submit_finish == 'Neuen Vertrag im selben Projekt':
return request.render("website.eingabe-phase4-finish",{'websideusername':name,'user_id':str(user_id),'projectid':str(projectid),'project':str(projekt_id),'contract_id':str(contract_id),'kd_id':str(kd_id),'contract_data_id':str(contract_data_id)})
if submit_finish == 'Neuen Vertrag in anderen Projekt':
return request.render("website.eingabe-phase1")
@route(['/xrechnungin'],type='http', auth='public', website=True, csrf=False)
def Xrechnungask(self, **kwargs):
project = request.env['x_dss.tempkd'].search([('x_guid','=',request.params.get('token'))],limit=1)
if not project:
return request.render("website.xrechnung",{'requestid':request.params.get('token'),'errorstyle':'display:block','contentstyle':'display:none'})
else :
mobile = '' if (not project.x_mobil) or (project.x_mobil == 'False') else project.x_mobil
telefon = '' if (not project.x_telefon) or (project.x_telefon == 'False') else project.x_telefon
email = '' if (not project.x_Email) or (project.x_Email == 'False') else project.x_Email
return request.render("website.xrechnung",{'requestid':request.params.get('token'),'errorstyle':'display:none','contentstyle':'display:block','kdid':project.id,'kdnr':project.x_kdnr,'name':project.x_name,'email':email,'telefon':telefon,'mobil':mobile,'rgemail':project.x_rgemail,'leitweg':project.x_leitwegid})
@route(['/xrechnung/submit'],type='http', auth='public', website=True, csrf=False)
def Xrechnungssubmit(self, **kwargs):
_logger.info("inside: start changeScreenTemplateView" + str(request.params)+' --'+str(kwargs)+' -- #'+str(request.httprequest.data)+'#')
kunden_id = kwargs.get('kdid')
client = request.env['x_dss.tempkd'].search([('id','=',kunden_id)],limit=1)
if client:
if client.x_guid == kwargs.get('requestid'):
if client.x_kdnr == kwargs.get('kdnr'):
orgclientt=request.env['x_dss.tempkd'].search([('x_kdnr','=',client.x_kdnr)])
if kwargs.get('rgemail')=='':
orgclientt.write({'x_rgemail': kwargs.get('email')})
else:
orgclientt.write({'x_rgemail': kwargs.get('rgemail')})
orgclientt.write({'x_leitwegid': kwargs.get('leitweg')})
orgclientt.write({'x_finished': True})
# orgclient=request.env['dss.contracts'].search([('contract_auto_id','=',client.x_kdnr)])
# if orgclient:
# if kwargs.get('rgemail')=='':
# orgclient.write({'client_short_rgemail': kwargs.get('email')})
# else:
# orgclient.write({'client_short_rgemail': kwargs.get('rgemail')})
# orgclient.write({'client_short_mobil': kwargs.get('mphone')})
# orgclient.write({'client_short_leitwegid': kwargs.get('leitweg')})
# if orgclient.client_short_email != kwargs.get('email'):
# orgclient.write({'client_short_email': kwargs.get('email')})
# if orgclient.client_short_telefon != kwargs.get('phone'):
# orgclient.write({'client_short_telefon': kwargs.get('phone')})
# if orgclient.client:
# org_contact_client=orgclient.client
# org_contact_client.rgemail = orgclient.client_short_rgemail
# org_contact_client.email = orgclient.client_short_email
# org_contact_client.leitwegid = orgclient.client_short_leitwegid
# org_contact_client.mobil = orgclient.client_short_mobil
# return request.redirect('/danke-xrechnung')
# else :
# errorcode='EF004'
return request.redirect('/danke-xrechnung')
else : errorcode='EF003-'+str(kwargs.get('kdnr'))
else : errorcode='EF002'
else : errorcode='EF001-'+str(kwargs.get('kdid'))
return request.render('website.error-xrechnung',{'error':errorcode})