Exemple #1
0
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
Exemple #2
0
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