report code here
def on_generate(report):
enti = report.task.cla_entidad.copy()
enti.open()
guia1 = report.task.aut_eval.copy()
guia2 = report.task.aut_eval.copy()
tit = report.task.dci.copy()
uni = report.task.cla_unidad.copy()
uu = str(report.id_unidad.value)
tit.set_where({'id__eq': report.diagnostico.value})
tit.open()
if report.niv.value == 1 :
guia1.set_where({'id_dci__eq': report.diagnostico.value ,'tipo__eq':1})
nta = 'Aspecto Evaluado'
if report.niv.value == 2 :
guia1.set_where({'id_dci__eq': report.diagnostico.value ,'tipo__le':2})
nta = 'Tema / Aspecto Evaluado'
if report.niv.value == 3 :
guia1.set_where({'id_dci__eq': report.diagnostico.value,'tipo__le':3})
nta = 'Norma / Tema / Aspecto Evaluado'
if report.niv.value == 4 :
guia1.set_where({'id_dci__eq': report.diagnostico.value})
nta = 'Componente / Norma / Tema / Aspecto Evaluado'
area = tit.area.display_text
nod = tit.numero.display_text
estado = tit.estado.display_text
entidad = 'Razón social: '+ enti.reup.display_text + '-'+enti.razon.display_text
direccion = 'Dirección: '+enti.res.display_text
otros = 'Correo:'+enti.cor.display_text + ' Telefónos:'+enti.tel.display_text
report.print_band('title', locals())
guia2.open(
where={'id_dci__eq': report.diagnostico.value ,'tipo__eq':1},
funcs={'medaso': 'sum','evalua': 'sum'}
)
guia1.open()
for a in guia1:
if a.tipo.value == 3:
nnn = a.codigo.display_text + ':'+ a.preguntas.display_text
report.print_band('detail', locals())
if a.tipo.value == 2:
tem = a.codigo.display_text + ':'+ a.preguntas.display_text
report.print_band('detail_a', locals())
if a.tipo.value == 1:
cuestionario = a.codigo.display_text + ':'+ a.preguntas.display_text
if a.evalua.value == 0:
respuesta = a.evalua.display_text
if a.evalua.value == 1:
respuesta = '✔️ ' + a.evalua.display_text
if a.evalua.value == 2:
respuesta = '✘ ' + a.evalua.display_text
if a.evalua.value == 3:
respuesta = '❌ '+ a.evalua.display_text
fej = a.fej.display_text
respondido = a.respondido.display_text
if a.com.value :
fundamenta = 'R:/ ' + a.com.display_text
else :
fundamenta = ''
# else :
# con = ''
report.print_band('detail_b', locals())
if a.causas.value :
con = '⇨ Causas: ' + a.causas.display_text
report.print_band('detail_c', locals())
total = tit.total.display_text
por = round((tit.positivas.value + tit.negativa.value) / tit.total.value * 100,1)
obs = 'Para el presente diagnóstico se ha previsto evaluar un total de '+\
tit.total.display_text +' preguntas, de las cuales se han evaluado '+\
str((tit.positivas.value + tit.negativa.value)) +' que representa el '+str(por)+'%, de ellas '+ tit.positivas.display_text +' se han respondido positivamente y '+\
tit.negativa.display_text +' negativamente, asociándose '+\
guia2.medaso.display_text +' medidas a las no conformidades u otra situación no favorable detectadas.'
ptos = guia2.evalua.value
pre = tit.total.value
vci = round(ptos / pre,2)
if vci < 1:
vpto = 'Evaluaciones Insuficientes'
if vci >= 1 < 1.67 :
vpto = 'Adecuado'
if vci >= 1.67 < 2.33 :
vpto = 'Parcialmente adecuado'
if vci >= 2.33 :
vpto = 'Inadecuado'
report.print_band('resumen', locals())
uni.set_where({'id__eq': report.id_unidad.value})
uni.open()
# guia2.open(
# where={'master_rec_id__eq': report.diagnostico.value, 'causas__ne':'' },
# group_by=['causas']
# )
# for c in guia2:
# cau = '⇨' + c.causas.display_text
# pp = c.codigo.display_text
# report.print_band('causas', locals())
ela = report.ela.value
apro = uni.mru.display_text
report.print_band('pie', locals())