def comisiones(droid=None, bImp=True): rPr = rCom = rIva = lados = xPReCaNa = asCapSoc = asCerSoc = None xPorcBon = xPorcCap = xPorcCer = comBanca = None while (None == rPr): rPr = ES.entradaNumeroConLista(droid, 'Precio del inmueble', 'Introduzca el monto', CO.lMonto, False) while (None == rCom): rCom = ES.entradaNumeroConLista(droid, 'Comision', 'Introduzca el porc de comision', CO.lComis, False) while (None == rIva): rIva = ES.entradaNumeroConLista(droid, 'Impuesto al valor ' 'agregado', 'Introduzca el IVA', CO.lIva, False, True) while (None == lados): lados = ES.entradaNumero(droid, 'Numero de lados', 'Cuantos lados, 1 o 2?', '2') if (None != lados): if (1 > lados) or (2 < lados): lados = None while (None == xPReCaNa): xPReCaNa = ES.entradaNumeroConLista( droid, 'Porcentaje reportada a Casa Nacional', '% Reportado a ' 'Casa Nacional?', [ '5.0', '4.9', '4.8', '4.7', '4.6', '4.5', '4.4', '4.3', '4.2', '4.1', 'Otro' ], False, True) while (None == asCapSoc): resp = ES.siNo(droid, 'El asesor captador es socio', 'El Captador es socio PrBr?', CO.lNoSi) if ('S' == resp): asCapSoc = True else: asCapSoc = False while (None == asCerSoc): resp = ES.siNo(droid, 'El asesor cerrador es socio', 'El Cerrador es socio PrBr?', CO.lNoSi) if ('S' == resp): asCerSoc = True else: asCerSoc = False while (None == xPorcBon): xPorcBon = ES.entradaNumeroConLista( droid, 'Porcentaje de bonificacion', '% de bonificacion?', ['0.00', '2.5', '5.0', '10.0', 'Otro'], False, True) xPorcCap = ES.entradaNumero(droid, 'Comision captador', '% de la comision del captador?', '20.00', False, True) if (None == xPorcCap): xPorcCap = 20.00 xPorcCer = ES.entradaNumero(droid, 'Comision cerrador', '% de la comision del cerrador?', '20.00', False, True) if (None == xPorcCer): xPorcCer = 20.00 comBanca = ES.entradaNumero(droid, 'Comision bancaria', 'Monto de la comision bancaria?', '0.00', False, True) if (None == comBanca): comBanca = 0.00 xPorcGer = 10.0 xPcFranq = 10.0 xPorcReg = 80.0 xPorcSan = 20.0 (resSIva, resCIva, compSIva, compCIva, frnqSIva, frnqCIva,\ frnqPaRe, regalia, sanfm5XC, ofBruRea, basHoSoc, basPaHon,\ captador, gerente, cerrador, bonifica, netoOfic) =\ calComisiones(rPr, rCom, rIva, lados, xPReCaNa, asCapSoc, asCerSoc, xPorcBon, xPorcCap, xPorcCer, comBanca, xPorcGer, xPcFranq, xPorcReg, xPorcSan) if bImp: if CO.bPantAmplia: sFormCuota = ("%sPrecio:%s %s, %sComision:%s %s%%, %sIVA:%s" " %s%%, %d %slado(s)%s\n") else: sFormCuota = "%sPr:%s%s,%s%%Com:%s%s%%,%sIVA:%s%s%%\n" sMsj = sFormCuota % (CO.AZUL, CO.FIN, FG.formateaNumero( rPr, 2), CO.AZUL, CO.FIN, FG.formateaNumero( rCom, 2), CO.AZUL, CO.FIN, FG.formateaNumero( rIva, 2), lados, CO.AZUL, CO.FIN) sMsj += ("%sReserva sin IVA:%s %s\n") % (CO.AZUL, CO.FIN, FG.formateaNumero(resSIva, 2)) sMsj += ("%sReserva con IVA:%s %s\n") % (CO.AZUL, CO.FIN, FG.formateaNumero(resCIva, 2)) sMsj += ("%sCompartido con otra oficina con IVA:%s %s\n") %\ (CO.AZUL, CO.FIN, FG.formateaNumero(compCIva, 2)) sMsj += ("%sCompartido con otra oficina sin IVA:%s %s\n") %\ (CO.AZUL, CO.FIN, FG.formateaNumero(compSIva, 2)) sMsj += ("%sFranquicia de reserva sin IVA:%s %s (%s%%)\n") %\ (CO.AZUL, CO.FIN, FG.formateaNumero(frnqSIva, 2), FG.formateaNumero(xPcFranq, 2)) sMsj += ("%sFranquicia de reserva con IVA:%s %s (%s%%)\n") %\ (CO.AZUL, CO.FIN, FG.formateaNumero(frnqCIva, 2), FG.formateaNumero(xPcFranq, 2)) sMsj += ("%sFranquicia a pagar reportada:%s %s (%s%%)\n") %\ (CO.AZUL, CO.FIN, FG.formateaNumero(frnqPaRe, 2), FG.formateaNumero(xPReCaNa, 2)) sMsj += ("%sRegalia:%s %s (%s%%)\n") % (CO.AZUL, CO.FIN, FG.formateaNumero(regalia, 2), FG.formateaNumero(xPorcReg, 2)) sMsj += ("%sSanaf menos 5 por ciento:%s %s (%s%%)\n") % ( CO.AZUL, CO.FIN, FG.formateaNumero( sanfm5XC, 2), FG.formateaNumero(xPorcSan, 2)) sMsj += ("%sOficina bruto real:%s %s\n") % ( CO.AZUL, CO.FIN, FG.formateaNumero(ofBruRea, 2)) sMsj += ("%sBase honorarios socios:%s %s\n") % ( CO.AZUL, CO.FIN, FG.formateaNumero(basHoSoc, 2)) sMsj += ("%sBase para honorarios:%s %s\n") % ( CO.AZUL, CO.FIN, FG.formateaNumero(basPaHon, 2)) sMsj += ("%sComision del captador:%s %s (%s%%)\n") % ( CO.AZUL, CO.FIN, FG.formateaNumero( captador, 2), FG.formateaNumero(xPorcCap, 2)) sMsj += ("%sComision del gerente:%s %s (%s%%)\n") % ( CO.AZUL, CO.FIN, FG.formateaNumero( gerente, 2), FG.formateaNumero(xPorcGer, 2)) sMsj += ("%sComision del cerrador:%s %s (%s%%)\n") % ( CO.AZUL, CO.FIN, FG.formateaNumero( cerrador, 2), FG.formateaNumero(xPorcCer, 2)) if (0.00 != xPorcBon): sMsj += ("%sBonificacion:%s %s (%s%%)\n") % ( CO.AZUL, CO.FIN, FG.formateaNumero( bonifica, 2), FG.formateaNumero(xPorcBon, 2)) if (0.00 != comBanca): sMsj += ("%sComision bancaria:%s %s\n") % ( CO.AZUL, CO.FIN, FG.formateaNumero(comBanca, 2)) sMsj += ("%sIngreso neto de la oficina:%s %s\n") % ( CO.AZUL, CO.FIN, FG.formateaNumero(netoOfic, 2)) opc = ES.imprime(sMsj.rstrip(' \t\n\r')) return opc return rPr, rCom, rIva, lados, resSIva, resCIva, compSIva,\ compCIva, frnqSIva, frnqCIva, frnqPaRe, regalia, sanfm5XC,\ ofBruRea, basHoSoc, basPaHon, captador, gerente, cerrador,\ bonifica, comBanca, netoOfic
def asesor(bImp=True): global droid global lNAs id = FG.selOpcionMenu(lNAs + [['Volver', -2]], 'Asesor') if (0 > id): return id if __name__ != '__main__': # No se ha creado la lista de Propiedades lPro. No he podido. resp = ES.siNo(droid, 'propiedades', 'Desea mostrar las propiedades' ' de '+ lAse[id-1]['name'], False) tCap = tCer = 0.00 nF = nV = tLados = 0 bImpar = True if ('S' == resp): st = PRO.titulo('Comision', 11) for l in PRO.lPro: if (40 < len(l)): if not (isinstance(l['asCapId'], int)) or\ not (isinstance(l['asCerId'], int)): continue if (id != l['asCapId']) and (id != l['asCerId']): continue if (l['estatus'] in ('P', 'C')) and (id == l['asCapId']): try: tCap += float(l['capPrbr']) except: pass if (l['estatus'] in ('P', 'C')) and (id == l['asCerId']): try: tCer += float(l['cerPrbr']) except: pass nF += 1 if (l['estatus'] in ('P', 'C')): nV += 1 tLados += l['lados'] # if ('S' == resp): sColor, bImpar = ES.colorLinea(bImpar, CO.VERDE) st += PRO.detalles(l, sColor, True, 'capPrbr', 'asCapId', 'cerPrbr', 'asCerId', id, 11) # Fin for st += CO.AMARI + 'Tiene ' + FG.formateaNumero(nF) +\ ' negociaciones [' + FG.formateaNumero(nV) + ' validas].' +\ CO.FIN + '\n' # Fin if ('S' == resp): else: st = '' # Fin if __name__ != '__main__': if bImp: if __name__ == '__main__': sMsj = ("%sID:%s %2d\n") % (CO.AZUL, CO.FIN, id) else: sMsj = '' ind = id - 1 dic = lAse[ind] for ll in dMsj: if not dMsj[ll]: continue if 'tCap' == ll: break # De aqui en adelante no son 'propiedades' (variables) del asesor. if 'pvrCaptador' == ll and __name__ != '__main__': # No se ha creado la lista de Propiedades lPro. No he podido. if (0 < nF): sMsj += st # Si la respuesta sobre las propiedades fue 'Si', Despliega las propiedades donde ha participado el asesor. if ll in ('tCap', 'tCer', 'tCapCer'): continue # Solo para verificar valores. sMsj += COM.prepLnMsj(dMsj, dic, ll) if not bMovil and __name__ != '__main__': dic = {'tCap':tCap, 'tCer':tCer, 'tCaptCer':tCap+tCer} sMsj += COM.prepLnMsj(dMsj, dic, 'tCap', 'n', '22', 2) sMsj += COM.prepLnMsj(dMsj, dic, 'tCer', 'n', '22', 2) sMsj += COM.prepLnMsj(dMsj, dic, 'tCaptCer', 'n', '12', 2) opc = ES.imprime(sMsj.rstrip(' \t\n\r')) return opc, ind