Exemplo n.º 1
0
def cargar(mostrar=False, esperar='Espere un momento, por favor...'):
    global control

    if mostrar:
        if droid:
            droid.dialogCreateHorizontalProgress('Century21 Puente Real',
                                                 esperar, 100)
            droid.dialogShow()
            droid.dialogSetCurrentProgress(15)
        else:
            print(esperar)
    Con.prepararListaDeContactos()
    Cli.prepararListaDeClientes()
    Age.prepararListaDeAgendas()
    Tur.prepararListaDeTurnos()
    ASE.prepararListaDeAsesores()
    PRO.prepararListaDePropiedades()
    PRO.prepararListas()  # totales en propiedades.
    if mostrar:
        if droid: droid.dialogSetCurrentProgress(60)
        else: print('Listas listas!')
    COM.prepararDiccionarios()
    fc = open(DIR + COM.CONTROL, 'r')
    if fc: control = fc.read()
    else: control = ''
    if mostrar:
        if droid: droid.dialogSetCurrentProgress(95)
        else: print('Diccionarios listos!')
    if droid and mostrar: FG.limpiarPantalla()
Exemplo n.º 2
0
 def muestra(self, imp=True):
     dic = Turno.dic
     sMsj = ''
     for campo in dic:
         if dic[campo] and hasattr(self, campo):
             if (campo in ('user_id', 'user_creo')):
                 val = getattr(self, campo)
                 sMsj += COM.prepLnCad(dic[campo][0], '[' + str(val) + '] ' +\
                                       ASE.nombreAsesor(val))
             else:
                 sMsj += COM.prepLnMsj(dic, self, campo)
     if sMsj: opc = ES.imprime(sMsj.rstrip(' \t\n\r'))
Exemplo n.º 3
0
 def muestra(self, imp=True):
   dic  = Cliente.dic
   sMsj = ''
   for campo in dic:
       if dic[campo] and hasattr(self, campo):
           sMsj += COM.prepLnMsj(dic, self, campo)
   if sMsj: opc = ES.imprime(sMsj.rstrip(' \t\n\r'))
Exemplo n.º 4
0
def lstXEstatus():
  global lPro

  est = COM.selEstatus()
  if ('v' == est): return -1

  nvaLst = []
  for l in lPro:
    if (est != l['estatus']): continue
    nvaLst.append(l)
  # for l in lPro

  nV = tLados = 0
  tPrecios = tPrVeReal = tNetos = 0.00
  bImpar = True
  st = CO.CYAN + COM.dEst[est] + CO.FIN + '\n'
  st += titulo("Neto ofic.", 11)
  for l in nvaLst:
    sColor, bImpar = ES.colorLinea(bImpar, CO.VERDE)
    st += detalles(l, sColor, True, 'ingNeOf', 11)
    nV += 1
    tLados += l['lados']
    tPrecios += l['precio']
    tPrVeReal += l['prVeRe']
    tNetos += l['ingNeOf']
  # for l in nvaLst
  st += CO.AMARI + 'TOTALES:'.ljust(45) +\
        FG.formateaNumero(tLados).rjust(3) +\
        FG.formateaNumero(tPrecios).rjust(11) +\
        FG.formateaNumero(tPrVeReal).rjust(14) +\
        FG.formateaNumero(tNetos, 2).rjust(11) + CO.FIN + "\n"
  st += FG.formateaNumero(len(nvaLst)) + ' negociaciones'

  return ES.imprime(st.rstrip(' \t\n\r'))
Exemplo n.º 5
0
 def muestra(self, imp=True):
     dic = Contacto.dic
     sMsj = ''
     for campo in dic:
         if dic[campo] and hasattr(self, campo):
             val = getattr(self, campo)
             if ('user_id' == campo):
                 sMsj += COM.prepLnCad(dic[campo][0], '[' + str(val) + '] ' +\
                                       ASE.nombreAsesor(val))
             elif (campo in ('deseo_id', 'tipo_id', 'zona_id', 'precio_id',\
                             'origen_id', 'resultado_id')):
                 func = 'COM.desc' + campo[0:campo.find('_id')].capitalize(
                 )  # Puedo usar'_', pero '_id' es mas descriptivo.
                 func += '(str(' + str(val) + '))'
                 sMsj += COM.prepLnCad(dic[campo][0], '[' + str(val) + '] ' +\
                                       eval(func))
             else:
                 sMsj += COM.prepLnMsj(dic, self, campo)
     if sMsj: opc = ES.imprime(sMsj.rstrip(' \t\n\r'))
Exemplo n.º 6
0
def xEstatus():
  global lPro

  st = COM.selEstatus()
  if ('v' == st): return -1

  lCod = []
  for l in lPro:
    if (st != l['estatus']): continue
    lst = (l['codigo']+'-'+l['nombre'], l['id']-1)
    lCod.append(lst)
  # for l in lPro

  return mPropiedad(lCod, COM.dEst[st])
Exemplo n.º 7
0
def totEst():
  ''' Agregar 1, correspondiente al 'estatus'.
      0:filas, 1:tPrecio, 2:tLados, 3:tCompartidoConIva,
      4:tFranquiciaSinIva, 5:tFranquiciaConIva, 6:tFranquiciaPagarR,
      7:tRegalia, 8:tSanaf5PorCiento, 9:tOficinaBrutoReal,
      10:tBaseHonorariosSo, 11:tBaseParaHonorari, 12:tCaptadorPrbr,
      13:tGerente, 14:tCerradorPrbr, 15:tBonificaciones,
      16:tComisionBancaria, 17:tIngresoNetoOfici, 18:tPrecioVentaReal,
      19:tPuntos, 20:tCaptadorPrbrSel, 21:tCerradorPrbrSel,
      22:tLadosCap, 23:tLadosCer, 24:tPvrCaptadorPrbrSel,
      25:tPvrCerradorPrbrSel, 26:tPuntosCaptador, 27:tPuntosCerrador
  '''
  global lTEs

  st = titTotales('Estatus', 20)
  bImpar = True
  tLados = tLaCap = tLaCer = 0
  tPrVeReal = tCap = tCer = 0.00
  for l in lTEs:
    try:
      bImpar, cad = detTotales(COM.descEstatus(l[0]), l[3], l[19],
                                l[13], l[15], l[23], l[24], bImpar,
                                20, CO.ROJO if ('S'==l[0]) else False)
      st += cad
    except TypeError:
      print('ERROR detalle:')
      print(l)
    try:
      if (l[0] in ('P', 'C')):
        tPrVeReal, tCap, tCer = tPrVeReal+l[19], tCap+l[13], tCer+l[15]
        tLaCap, tLaCer, tLados = tLaCap+l[23], tLaCer+l[24], tLados+l[3]
    except:
      print('ERROR totales:')
      print(l[1], l[3], l[19], l[13], l[15], l[23], l[24])
  try:
    st += totTotales('Total Oficina', tLados, tPrVeReal, tCap, tCer,\
                      tLaCap, tLaCer, 20)
  except:
    print('ERROR linea totales:')
    print(tPrVeReal, tCap, tCer, tLados, tLaCap, tLaCer)
  opc = ES.imprime(st.rstrip(' \t\n\r'))
  return opc
Exemplo n.º 8
0
def lstXMes():

  agno, mes = COM.selMes(lTMe)
  if ('v' == agno): return -1
  
  nvaLst = []
  for l in lPro:
    if ('00' == mes) and (("" == l['fecRes']) or ("" == l['fecFir'])):
      nvaLst.append(l)
      continue
    if (("" != l['fecFir']) and (10 == len(l['fecFir'])) and\
        (agno == l['fecFir'][-4:]) and (mes == l['fecFir'][3:5])) or\
       (("" != l['fecRes']) and (10 == len(l['fecRes'])) and\
        (agno == l['fecRes'][-4:]) and (mes == l['fecRes'][3:5])):
      nvaLst.append(l)
  # for l in lPro
  nV = tLados = 0
  tPrecios = tPrVeReal = tNetos = 0.00
  bImpar = True
  st = CO.CYAN + agno + ' ' + CO.meses[int(mes)] + CO.FIN + '\n'
  st += titulo("Neto ofic.", 11)
  for l in nvaLst:
    sColor, bImpar = ES.colorLinea(bImpar, CO.VERDE)
    st += detalles(l, sColor, True, 'ingNeOf', 11)
    if (l['estatus'] in ('P', 'C')):
      nV += 1
      tLados += l['lados']
      tPrecios += l['precio']
      tPrVeReal += l['prVeRe']
      tNetos += l['ingNeOf']
  # for l in nvaLst
  st += CO.AMARI + 'TOTALES:'.ljust(45) +\
        FG.formateaNumero(tLados).rjust(3) +\
        FG.formateaNumero(tPrecios).rjust(11) +\
        FG.formateaNumero(tPrVeReal).rjust(14) +\
        FG.formateaNumero(tNetos, 2).rjust(11) + CO.FIN + "\n"
  st += CO.AMARI + FG.formateaNumero(len(nvaLst)) + ' negociaciones ['\
        + FG.formateaNumero(nV) + ' validas].' + CO.FIN
  return ES.imprime(st.rstrip(' \t\n\r'))
Exemplo n.º 9
0
def totMesAsesor():
  ''' 0:'agno-mes', 1:'id' del asesor,
      2:filas, 3:tPrecio, 4:tLados, 5:tCompartidoConIva,
      6:tFranquiciaSinIva, 7:tFranquiciaConIva, 8:tFranquiciaPagarR,
      9:tRegalia, 10:tSanaf5PorCiento, 11:tOficinaBrutoReal,
      12:tBaseHonorariosSo, 13:tBaseParaHonorari, 14:tCaptadorPrbr,
      15:tGerente, 16:tCerradorPrbr, 17:tBonificaciones,
      18:tComisionBancaria, 19:tIngresoNetoOfici, 20:tPrecioVentaReal,
      21:tPuntos, 22:tCaptadorPrbrSel, 23:tCerradorPrbrSel,
      24:tLadosCap, 25:tLadosCer, 26:tPvrCaptadorPrbrSel,
      27:tPvrCerradorPrbrSel, 28:tPuntosCaptador, 29:tPuntosCerrador
  '''
  global lTMA

  agno, mes = COM.selMes(lTMe, True)
  if ('v' == agno): return -1
  todos = ('t' == agno)
  
  st = titTotales('Asesor', 21)
  bImpar = True
  tMeLados = tMeLaCap = tMeLaCer = 0
  tLados = tLaCap = tLaCer = 0
  tMePvr = tMeCap = tMeCer = tPvr = tCap = tCer = 0.00
  idMes = ''
  for l in lTMA:
    if not todos:
      if (agno+'-'+mes.zfill(2)) != l[0]: continue
    try:
      if (idMes != l[0]):
        if ('' != idMes):
          st += totTotales('Total mes ' + idMes, tMeLaCap + tMeLaCer,
                        tMePvr, tMeCap, tMeCer, tMeLaCap, tMeLaCer, 20)
        idMes = l[0]
        st += CO.CYAN + l[0] + CO.FIN + '\n'
        tMeLados = tMeLaCap = tMeLaCer = 0
        tMePvr = tMeCap = tMeCer = 0.00
      bImpar, cad = detTotales(ASE.nombreAsesor(l[1]), l[24] + l[25],
                        l[26]+l[27], l[22], l[23], l[24], l[25], bImpar, 20)
      st += cad
    except TypeError:
      print('ERROR detalle:')
      print(l)
    try:
      if (1 < int(l[1])):
        tMePvr, tMeCap, tMeCer = tMePvr+l[26]+l[27], tMeCap+l[22],\
                                  tMeCer+l[23]
        tMeLaCap, tMeLaCer, tMeLados = tMeLaCap+l[24], tMeLaCer+l[25],\
                                  tMeLados+l[24]+l[25]
        if todos:
          tPvr, tCap, tCer = tPvr+l[26]+l[27], tCap+l[22], tCer+l[23]
          tLaCap, tLaCer, tLados = tLaCap+l[24], tLaCer+l[25],\
                                  tLados+l[24]+l[25]
    except:
      print('ERROR totales:')
      print(l[0], l[1], l[2], l[3], l[22], l[23], l[24], l[25], l[26],\
            l[27])
  try:
    st += totTotales('Total mes ' + idMes, tMeLaCap + tMeLaCer,
                  tMePvr, tMeCap, tMeCer, tMeLaCap, tMeLaCer, 20, todos)
    if todos:
      st += totTotales('Total Oficina', tLaCap + tLaCer, tPvr, tCap,
                        tCer, tLaCap, tLaCer, 20, False, False)
  except:
    print('ERROR linea totales:')
    print(tMeLaCap, tMeLaCer, tMePvr, tMeCap, tMeCer, tLados, tPvr,
          tCap, tCer, tLaCap, tLaCer)
  opc = ES.imprime(st.rstrip(' \t\n\r'))
  return opc
Exemplo n.º 10
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
Exemplo n.º 11
0
    elif ('M' == tipo):     # 'tipo' contiene el valor devuelto por pop. Totales por mes.
      lTMe.append(l)        # El primer elemento (0) de esta lista es el 'aaaa-mm'.
    elif ('E' == tipo):     # 'tipo' contiene el valor devuelto por pop. Totales por mes.
      lTEs.append(l)        # El primer elemento (0) de esta lista es el 'aaaa-mm'.
    elif ('AM' == tipo):    # 'tipo' contiene el valor devuelto por pop. Totales por asesor y por mes.
      lTAM.append(l)        # El primer elemento (0) de esta lista es el 'id' del asesor y el 2do (1) 'aaaa-mm'.
    elif ('MA' == tipo):    # 'tipo' contiene el valor devuelto por pop. Totales por mes y por asesor.
      lTMA.append(l)        # El primer elemento (0) de esta lista es 'aaaa-mm' y el 2do es el 'id' del asesor.
    elif ('T' == l.pop(0)): # Elimina el 2do item de 'l' y devuelve su valor. Anteriormente se elimino el 1ro.
      lTot = l              # El primer elemento (0) pasa a ser el numero total de negociaciones.
# Funcion prepararListas

#Variables globales
if __name__ == '__main__':
  lng = 80
  COM.prepararDiccionarios('../data/')
  ASE.prepararListaDeAsesores('../data/')
  prepararListaDePropiedades('../data/', True)
  prepararListas('../data/')
  print('**** propiedades() ****')
  propiedades()
  print('**** totAsesor() ****')
  totAsesor()
  print('**** totMes() ****')
  totMes()
  print('**** totEst() ****')
  totEst()
  print('**** totAsesorMes() ****')
  totAsesorMes()
  print('**** totMesAsesor() ****')
  totMesAsesor()
Exemplo n.º 12
0
 def clientes():
   global lMenu
   op = ''
   while ('' == op): op = COM.selOpcion(lMenu, 'Menu de clientes')
Exemplo n.º 13
0
def mPropiedad(lCod, titOpc):
  global lPro, dMsj

  if (0 == len(lCod)): return
  elif (1 == len(lCod)):
    id = lCod[0][1]
  else:
    id = FG.selOpcionMenu(lCod + [['Volver', -2]], titOpc)
    if (0 > id): return id

  prop = getPropiedad(id)
  if None == prop: return None
  sMsj = ''
  moneda = prop['moneda']
  try:
    for k in dMsj:
      val = prop[k]
      if k in ('negoc', 'estatus', 'estaC21', 'tipo_id',\
              'caracteristica_id', 'ciudad_id', 'municipio_id',\
              'estado_id', 'cliente_id'):
        if 'negoc' == k: cad  = COM.descNegociacion(val)
        elif 'estatus' == k: cad  = COM.descEstatus(val)
        elif 'estaC21' == k: cad  = COM.descEstatusC21(val)
        elif 'tipo_id' == k: cad  = COM.descTipo(str(val))
        elif 'caracteristica_id' == k:
          cad  = COM.descCaracteristica(str(val))
        elif 'ciudad_id' == k: cad  = COM.descCiudad(str(val))
        elif 'municipio_id' == k: cad  = COM.descMunicipio(str(val))
        elif 'estado_id' == k: cad  = COM.descEstado(str(val))
        elif 'cliente_id' == k: cad  = Cli.Cliente.nombre(val)
        else: cad = ':Descripcion no fue encontrada ?????'
        desc = dMsj[k][0]
        cad  = '[' + str(val) + '] ' + cad
        sMsj += COM.prepLnCad(desc, cad)
      elif k in ('iva', 'pcFrq', 'pcReCaNa', 'pcRega', 'pcCap',\
                  'pcGer', 'pcCer', 'asCapId', 'asCerId'): continue
      elif ('comision' == k):
        sMsj += COM.prepLnCad(dMsj[k][0], FG.numeroPorc(val, 3) +\
                              CO.AZUL + ' IVA: ' + CO.FIN +\
                              FG.numeroPorc(prop['iva'], 2))
      elif k in ('frqSIva', 'frqCIva'):
        sMsj += COM.prepLnCad(dMsj[k][0],\
                              FG.numeroMon(val, 2, moneda) + ' [' +\
                              FG.numeroPorc(prop['pcFrq'], 3) + ']')
      elif (k == 'frqPaRe'):
        sMsj += COM.prepLnCad(dMsj[k][0], ' ' +\
                              FG.numeroMon(val, 2, moneda) + ' [' +\
                              FG.numeroPorc(prop['pcReCaNa'], 3) + ']')
      elif ('regalia' == k):
            sMsj += COM.prepLnCad(dMsj[k][0],\
                              FG.numeroMon(val, 2, moneda) + ' [' +\
                              FG.numeroPorc(prop['pcRega'], 3) + ']')
      elif ('capPrbr' == k):
            sMsj += COM.prepLnCad(dMsj[k][0],\
                              FG.numeroMon(val, 2, moneda) + ' [' +\
                              FG.numeroPorc(prop['pcCap'], 3) + ']')
      elif ('gerente' == k):
            sMsj += COM.prepLnCad(dMsj[k][0],\
                              FG.numeroMon(val, 2, moneda) + ' [' +\
                              FG.numeroPorc(prop['pcGer'], 3) + ']')
      elif ('cerPrbr' == k):
        sMsj += COM.prepLnCad(dMsj[k][0],\
                              FG.numeroMon(val, 2, moneda) + ' [' +\
                              FG.numeroPorc(prop['pcCer'], 3) + ']')
      else: sMsj += COM.prepLnMsj(dMsj, prop, k)
    # Fin for k in dMsj
  except KeyError:
    print('Propblemas con la llave:' + k + ', su valor es:' + val)
    pass
  tec = ES.imprime(sMsj.rstrip(' \t\n\r'))
  return tec
Exemplo n.º 14
0
 def turnos():
     global lMenu
     op = ''
     while ('' == op):
         op = COM.selOpcion(lMenu, 'Menu de turnos')
Exemplo n.º 15
0
 def agendas():
     global lMenu
     op = ''
     while ('' == op):
         op = COM.selOpcion(lMenu, 'Menu de citas')
Exemplo n.º 16
0
def propiedades(bCaidas=True):
  global lMenu
  op = ''
  while ('' == op): op = COM.selOpcion(lMenu, 'Menu de propiedades')
Exemplo n.º 17
0
def totales():
  ''' 0:filas, 1:tPrecio, 2:tLados, 3:tCompartidoConIva,
      4:tFranquiciaSinIva, 5:tFranquiciaConIva, 6:tFranquiciaPagarR,
      7:tRegalia, 8:tSanaf5PorCiento, 9:tOficinaBrutoReal,
      10:tBaseHonorariosSo, 11:tBaseParaHonorari, 12:tCaptadorPrbr,
      13:tGerente, 14:tCerradorPrbr, 15:tBonificaciones,
      16:tComisionBancaria, 17:tIngresoNetoOfici, 18:tPrecioVentaReal,
      19:tPuntos, 20:tCaptadorPrbrSel, 21:tCerradorPrbrSel,
      22:tLadosCap, 23:tLadosCer, 24:tPvrCaptadorPrbrSel,
      25:tPvrCerradorPrbrSel, 26:tPuntosCaptador, 27:tPuntosCerrador
  '''
  global lTot

  if not lTot: return

  sMsj = ("%d %snegociaciones validas%s\n") % (lTot[0], CO.AZUL, CO.FIN)
  sMsj += ("%sTOTALES:%s\n") % (CO.CYAN, CO.FIN)
  sMsj += COM.prepLnNum("Precio", lTot[1], 2)
  sMsj += COM.prepLnNum("Compartido con IVA", lTot[3], 2)
  sMsj += COM.prepLnNum("Lados", lTot[2])
  sMsj += COM.prepLnNum("Franquicia a pagar reportada", lTot[6], 2)
  sMsj += COM.prepLnNum("Asesor captador PrBr", lTot[12], 2)
  sMsj += COM.prepLnNum("Gerente", lTot[13], 2)
  sMsj += COM.prepLnNum("Asesor cerrador PrBr", lTot[14], 2)
  sMsj += COM.prepLnNum("Bonificaciones", lTot[15], 2)
  sMsj += COM.prepLnNum("Comisiones bancarias", lTot[16], 2)
  sMsj += COM.prepLnNum("Ingreso neto de la oficina", lTot[17], 2)
  sMsj += COM.prepLnNum("Precio de venta real", lTot[18], 2)
  sMsj += COM.prepLnNum("Puntos", lTot[19], 2)
  opc = ES.imprime(sMsj.rstrip(' \t\n\r'))

  return opc
Exemplo n.º 18
0
def totPor():
  global lMenuTot
  return COM.selOpcion(lMenuTot, 'Totalizar')
Exemplo n.º 19
0
 def contactos():
     global lMenu
     op = ''
     while ('' == op):
         op = COM.selOpcion(lMenu, 'Menu de contactos')
Exemplo n.º 20
0
def buscProp():
  global lMenuProEsp
  return COM.selOpcion(lMenuProEsp, 'Buscar una propiedad especifica')
Exemplo n.º 21
0
def LstPropPor():
  global lMenuLstPro
  return COM.selOpcion(lMenuLstPro, 'Listar propiedades')