# -*- 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})