def getEventList(cls,
                  UserId=None,
                  CompanyId=None,
                  limit=None,
                  order_by=None,
                  desc=None):
     UserProf = aliased(User)
     session = Session()
     records = session.query(cls) \
         .filter(or_(cls.Type==1,cls.Type==2)) \
         .join(ActivitySchedules,cls.id==ActivitySchedules.activity_id)\
         .filter(ActivitySchedules.TransDate>=today()) \
         .join(Company,cls.CompanyId==Company.id)\
         .join(UserProf,cls.ProfId==UserProf.id)\
         .outerjoin(Service,cls.ServiceId==Service.id)\
         .with_entities(cls.Comment,UserProf.Name.label('ProfId') \
         ,ActivitySchedules.TransDate \
         ,ActivitySchedules.StartTime \
         ,ActivitySchedules.EndTime,cls.id,cls.Status,Company.Name.label('CompanyId')\
         ,Service.Name.label('ServiceId'))
     if UserId:
         records = records.filter(cls.ProfId == UserId)
     if CompanyId:
         records = records.filter(cls.CompanyId == CompanyId)
     if order_by and desc:
         records = records.order_by(ActivitySchedules.TransDate.desc())
     elif order_by:
         records = records.order_by(ActivitySchedules.TransDate)
     else:
         records = records.order_by(ActivitySchedules.TransDate)
     if limit: records = records.limit(limit)
     session.close()
     return records
 def getRecordList(cls, TableClass, limit=None, order_by=None, desc=None):
     session = Session()
     records = session.query(cls)
     if current_user.UserType == 1:
         records = records.filter_by(CompanyId=current_user.CompanyId)
     session.close()
     return records
Exemple #3
0
def set_payment():
    from db.Payment import Payment
    activityId = request.args.get('activityId')
    session = Session()
    record = session.query(Activity).filter_by(id=activityId).first()
    companyId = record.CompanyId
    session.close()
    session = Session()
    session.expire_on_commit = False
    record = Payment()
    record.UserId = current_user.id
    record.CompanyId = companyId
    record.ActivityId = activityId
    record.ResponseCode = request.args.get('x_cod_response')
    record.Response = request.args.get('x_response')
    record.Amount = request.args.get('x_amount')
    record.TransDate = now()
    record.Reference = request.args.get('x_id_invoice')
    record.Reason = request.args.get('x_response_reason_text')
    record.TransactionId = request.args.get('x_transaction_id')
    record.BankName = request.args.get('x_bank_name')
    record.AutorizationCode = request.args.get('x_approval_code')
    record.Currency = request.args.get('x_currency_code')
    record.beforeInsert()
    session.add(record)
    res = record.save(session)
    if res:
        return jsonify(result={'res':True,'id':record.id})
    else:
        return jsonify(result={'res':False,'Error':str(res)})
Exemple #4
0
 def getRecordList(cls,TableClass,limit=None,order_by=None,desc=None):
     session = Session()
     records = session.query(TableClass)
     if order_by and desc: records = records.order_by(TableClass.c[order_by].desc())
     elif order_by: records = records.order_by(TableClass.c[order_by])
     if limit: records = records.limit(limit)
     session.close()
     return records
Exemple #5
0
 def getUserIdByEmail(cls,email):
     session = Session()
     record = session.query(cls).filter_by(Email=email).first()
     if not record:
         return
     id = record.id
     session.close()
     return id
Exemple #6
0
 def getFavorite(self):
     from dondefluir.db.UserFavorite import UserFavorite
     session = Session()
     record = session.query(UserFavorite).filter_by(
         UserId=current_user.id, FavoriteId=self.id).first()
     if record and record.Checked:
         return 1
     return 0
Exemple #7
0
 def getLinksTo(self, record_list):
     res = {}
     res['CompanyId'] = {}
     session = Session()
     records = session.query(Company)
     for record in records:
         res['CompanyId'][record.id] = [record.Name, 0]
     session.close()
     return res
Exemple #8
0
def get_favorite():
    from db.UserFavorite import UserFavorite
    favId = request.args.get('favId')
    session = Session()
    session.expire_on_commit = False
    record = session.query(UserFavorite).filter_by(UserId=current_user.id,FavoriteId=favId).first()
    if not record or not record.Checked:
        return jsonify(result=False)
    else:
        return jsonify(result=True)
Exemple #9
0
 def getRecordList(cls,TableClass,limit=None,order_by=None,desc=None):
     session = Session()
     records = session.query(cls)
     if current_user.UserType==1:
         records = records.filter(cls.CompanyId==current_user.CompanyId,cls.UserType>=1)
     elif current_user.UserType==2:
         records = records.filter(cls.CompanyId==current_user.CompanyId, \
             or_(cls.UserType==3,cls.id==current_user.id))
     session.close()
     return records
Exemple #10
0
def getUserService(params):
    session = Session()
    from db.UserService import UserService
    from db.Service import Service
    records = session.query(UserService)\
        .join(User,User.id==UserService.UserId)\
        .join(Service,Service.id==UserService.ServiceId)\
        .filter_by(CompanyId=current_user.CompanyId) \
        .with_entities(UserService.id,UserService.CompanyId,User.Name.label("UserName"),Service.Name.label("ServiceName"))
    session.close()
    return records
Exemple #11
0
def get_service_price():
    ServiceId = request.args.get('ServiceId')
    session = Session()
    record = session.query(Service).filter_by(id=ServiceId).first()
    price = None
    if record and record.Price:
        price = record.Price
    session.close()
    if price:
        return jsonify(result=str(price))
    else:
        return jsonify(result=None)
Exemple #12
0
def set_notification_read():
    nftId = request.args.get('id')
    session = Session()
    session.expire_on_commit = False
    record = session.query(Notification).filter_by(id=nftId).first()
    if record:
        record.Status = 1
        res = record.save(session)
        if res:
            return jsonify(result={'res':True})
        else:
            return jsonify(result={'res':False,'Error':str(res)})
    return jsonify(result={'res':False,'Error':'Registro Inexistente'})
Exemple #13
0
 def getRecordList(cls, TableClass, limit=None, order_by=None, desc=None):
     session = Session()
     records = session.query(TableClass)
     if current_user.UserType == 1:
         records = records.filter_by(CompanyId=current_user.CompanyId)
     elif current_user.UserType == 3:
         records = records.filter_by(UserId=current_user.id)
     if order_by and desc:
         records = records.order_by(TableClass.c[order_by].desc())
     elif order_by:
         records = records.order_by(TableClass.c[order_by])
     if limit: records = records.limit(limit)
     session.close()
     return records
Exemple #14
0
 def getRecordList(cls, TableClass, limit=None, order_by=None, desc=None):
     if current_user.UserType == (1, 2):
         session = Session()
         records = session.query(TableClass).filter_by(
             CompanyId=current_user.CompanyId)
         session.close()
     elif current_user.UserType == 1:
         session = Session()
         records = session.query(TableClass).filter_by(
             CompanyId=current_user.CompanyId)
         session.close()
     else:
         records = Record.getRecordList(TableClass)
     return records
Exemple #15
0
 def run(cls, filters):
     fd = filters['FromDate'].split('-')
     td = filters['ToDate'].split('-')
     FromDate = date(int(fd[0]), int(fd[1]), int(fd[2]))
     ToDate = date(int(td[0]), int(td[1]), int(td[2]))
     session = Session()
     records = session.query(func.concat(func.year(User.CreatedDate),'-',func.month(User.CreatedDate)), func.count(User.CreatedDate).label('CNT'))\
         .filter(User.CreatedDate.between(FromDate,ToDate))\
         .group_by(func.concat(func.year(User.CreatedDate),'-',func.month(User.CreatedDate)))\
         .order_by(func.concat(func.year(User.CreatedDate),'-',func.month(User.CreatedDate)).desc())\
         .all()
     session.close()
     columns = ['Mes', 'Cantidad']
     return {'Columns': columns, 'Rows': records}
Exemple #16
0
 def getOverlapHeader(self, UserId, TransDate, StartTime, EndTime,
                      ActivityUser):
     session = Session()
     records = session.query(Activity) \
         .filter(Activity.Status!=2,ActivityUser==UserId,Activity.id!=self.id) \
         .join(ActivitySchedules,Activity.id==ActivitySchedules.activity_id)\
         .filter(ActivitySchedules.TransDate==TransDate,~ or_(ActivitySchedules.EndTime<=StartTime,ActivitySchedules.StartTime>=EndTime)) \
         .join(User,ActivityUser==User.id)\
         .with_entities(User.Name,ActivitySchedules.TransDate,ActivitySchedules.StartTime \
         ,ActivitySchedules.EndTime,Activity.id,Activity.Status)
     session.close()
     if records.count() > 0:
         return True
     return False
Exemple #17
0
def get_notifications():
    session = Session()
    session.expire_on_commit = False
    record = session.query(Notification).filter_by(UserId=current_user.id,Status=0).order_by(Notification.TransDate.desc())
    cnt = record.count()
    l = []
    k = 0
    for r in record:
        k += 1
        l.append({'Comment':r.Comment,'TransDate': "%s %s" % (WeekName[int(r.TransDate.strftime("%w"))] \
            ,r.TransDate.strftime("%d/%m/%Y")),'id':r.id})
        if k>=4:
            break
    return jsonify(result={'cnt':cnt,'values':l})
Exemple #18
0
def save_record():
    if request.method == 'POST':
        data = json.loads(request.form.get('data'))
        fields = data.get('fields')
        table = data.get('TableName')
        TableClass = getTableClass(table)
        res = {}
        for key in fields:
            if fields[key]=='null': fields[key] = None
        id = fields.get('id',None)
        session = Session()
        session.expire_on_commit = False
        if not id:
            return saveNewRecord(TableClass,fields)
        else:
            return updateRecord(TableClass,fields)
Exemple #19
0
def get_payment():
    activityId = request.args.get('activityId')
    userId = request.args.get('userId')
    session = Session()
    Paid = session.query(Payment)\
        .filter_by(UserId=userId ,ActivityId=activityId,ResponseCode=1) \
        .count()
    if Paid:
        return jsonify(result={'res':True})
    else:
        KeyPayco = ''
        companyId = request.args.get('companyId')
        company = Company.getRecordById(companyId)
        if company:
            KeyPayco = company.KeyPayco
        return jsonify(result={'res':False,'KeyPayco': KeyPayco})
Exemple #20
0
    def getRecordList(cls,
                      TableClass,
                      custId=None,
                      limit=None,
                      order_by=None,
                      desc=None,
                      ProfId=None,
                      Alias=False):
        if Alias:
            UserProf = aliased(User)
            UserCust = aliased(User)

        session = Session()
        records = session.query(cls)
        if current_user.UserType == 3:
            records = records.filter_by(CustId=current_user.id)
        if custId and current_user.UserType in (1, 2):
            records = records.filter_by(CompanyId=current_user.CompanyId,
                                        CustId=custId)
        if current_user.UserType == 2:
            records = records.filter_by(ProfId=current_user.id)
        records = records.join(ActivitySchedules,cls.id==ActivitySchedules.activity_id)\
            .filter(ActivitySchedules.TransDate>=today())
        if Alias:
            records = records.join(UserProf,cls.ProfId==UserProf.id)\
                .outerjoin(UserCust,cls.CustId==UserCust.id)\
                .outerjoin(Service,cls.ServiceId==Service.id)
        if current_user.UserType == 0:
            records = records.filter(or_(ProfId == None, cls.ProfId == ProfId))
        if not Alias:
            records = records.with_entities(cls.Comment,cls.ProfId,ActivitySchedules.TransDate,ActivitySchedules.StartTime \
                ,ActivitySchedules.EndTime,cls.id,cls.Status,cls.CustId,cls.CompanyId,cls.ServiceId,cls.Type)
        else:
            records = records.with_entities(cls.Comment, UserProf.id.label('ProfId'), ActivitySchedules.TransDate \
                ,ActivitySchedules.StartTime , ActivitySchedules.EndTime, cls.id, cls.Status, UserCust.id.label('CustId')\
                , cls.CompanyId, Service.id.label('ServiceId'), cls.Type, UserCust.Name.label('CustName'))
        if not custId and current_user.UserType in (1, 2):
            records = records.filter(
                Activity.CompanyId == current_user.CompanyId)
        if order_by and desc:
            records = records.order_by(ActivitySchedules.TransDate.desc())
        elif order_by:
            records = records.order_by(ActivitySchedules.TransDate)
        if limit: records = records.limit(limit)
        session.close()
        return records
Exemple #21
0
    def getLinksTo(self,record_list):
        res = {}
        res['UserType'] = {self.CUST: ['Cliente',0]}
        if current_user.UserType==0:
            res['UserType'][self.SUPER] = ['Super',0]
            res['UserType'][self.ADMIN] = ['Administrador',0]
            res['UserType'][self.PROF] = ['Profesional', 0]
        if current_user.UserType==1:
            res['UserType'][self.ADMIN] = ['Administrador',0]
            res['UserType'][self.PROF] = ['Profesional',0]
        res['CompanyId'] = {}
        session = Session()
        records = session.query(Company)
        for record in records:
            res['CompanyId'][record.id] = [record.Name,record.Closed]
        session.close()

        return res
Exemple #22
0
def getRecordByFilters(table,filters,values):
    TableClass = getTableClass(table)
    session = Session()
    if not filters:
        record = TableClass()
        record.defaults()
        for f in values:
            record.__setattr__(f,values[f])
    else:
        record = session.query(TableClass).filter_by(**filters).first()
        if not record:
            return {'res':False}
    fields = TableClass.getFields()
    recordTitle = TableClass.getRecordTitle()
    canEdit = TableClass.canUserEdit(record)
    canDelete = TableClass.canUserDelete()
    events = TableClass.getEvents()
    links = TableClass.getLinksTo([record])
    res = record.toJSON()
    session.close()
    return {'record': res, 'fields': fields, 'links': links,'recordTitle':recordTitle,'canEdit':canEdit
        , 'canDelete':canDelete, 'events': events}
Exemple #23
0
 def setNotification(self, comment, user_id, type):
     ntf = Notification()
     ntf.defaults()
     ntf.UserId = user_id
     if self.Comment:
         ntf.Comment = "%s: %s" % (comment, self.Comment)
     else:
         ntf.Comment = comment
     ntf.Action = ""
     session = Session()
     res = ntf.save(session)
     if not res: return res
     return True
Exemple #24
0
def set_cust_to_event():
    eventId = request.args.get('id')
    session = Session()
    session.expire_on_commit = False
    record = session.query(Activity).filter_by(id=eventId).first()
    if record:
        found = False
        st = 1
        for row in record.Users:
            if row.CustId==current_user.id:
                found = True
                record.Users.remove(row)
                st = 0
                break
        if not found:
            row = ActivityUsers()
            row.CustId = current_user.id
            record.Users.append(row)
        res = record.save(session)
        if res:
            return jsonify(result={'res':True,'label':Activity.StatusList[st],'st': st})
        else:
            return jsonify(result={'res':False,'Error':str(res)})
    return jsonify(result={'res':False,'Error':'Registro Inexistente'})
    def getLinksTo(self, record_list):
        res = {}
        res['ServiceId'] = {}
        session = Session()
        records = session.query(Service)
        if current_user.UserType > 0:
            records = records.filter_by(CompanyId=current_user.CompanyId)
        for record in records:
            res['ServiceId'][record.id] = [record.Name, 0]
        session.close()

        res['UserId'] = {}
        records = session.query(User).filter(User.UserType < 3)
        if current_user.UserType > 0:
            records = records.filter_by(CompanyId=current_user.CompanyId)
        for record in records:
            res['UserId'][record.id] = [record.Name, 0]
        session.close()
        return res
Exemple #26
0
def showProfessionalEvents(*args):
    profId = args[0].get('profId',None)
    eventId = args[0].get('eventId',None)
    companyId = args[0].get('companyId',None)
    session = Session()
    records = session.query(Activity) \
        .join(Company,Activity.CompanyId==Company.id)\
        .join(User,Activity.ProfId==User.id)\
        .join(ActivitySchedules,Activity.id==ActivitySchedules.activity_id)\
        .filter(ActivitySchedules.TransDate>=today(),or_(Activity.Type==1,Activity.Type==2)) \
        .with_entities(Activity.Comment,Activity.ProfId,ActivitySchedules.TransDate,ActivitySchedules.StartTime \
        ,ActivitySchedules.EndTime,Activity.id,Activity.MaxPersons,Activity.Price,Activity.Description,Activity.OnlinePayment \
        ,Company.KeyPayco,Company.OnlinePayment.label('CompanyPayment'),User.Name.label('ProfName'))
    if eventId: records = records.filter(Activity.id==eventId)
    if profId: records = records.filter(Activity.ProfId==profId)
    if companyId: records = records.filter(Activity.CompanyId==companyId)
    res = {}
    k = 0
    for r in records:
        cnt = session.query(Activity).filter_by(id=r.id)\
            .join(ActivityUsers,Activity.id==ActivityUsers.activity_id)\
            .count()
        if r.id not in res:
            res[r.id] = []
        st = Activity.StatusList[0]
        stv = 0
        paid = 0

        if k==0:
            FindCust = session.query(Activity).filter_by(id=r.id)\
                .join(ActivityUsers,Activity.id==ActivityUsers.activity_id)\
                .filter(ActivityUsers.CustId==current_user.id)\
                .count()
            if FindCust:
                st = Activity.StatusList[1]
                stv = 1
                Paid = session.query(Payment)\
                    .filter_by(UserId=current_user.id,ActivityId=r.id,ResponseCode=1) \
                    .count()
                if Paid:
                    paid = 1

        TransDate = WeekName[r.TransDate.weekday()] + " " + r.TransDate.strftime("%d/%m/%Y")
        res[r.id].append({'Comment': r.Comment,'TransDate': TransDate, 'StartTime': r.StartTime.strftime("%H:%M") \
            , 'Description': r.Description, 'Price': r.Price, 'MaxPersons': r.MaxPersons, 'OnlinePayment': r.OnlinePayment \
            , 'EndTime': r.EndTime.strftime("%H:%M"), 'Status': st, 'Persons': cnt, 'StatusValue': stv, 'Paid': paid \
            , 'KeyPayco': r.KeyPayco, 'CompanyPayment':r.CompanyPayment,'ProfName': r.ProfName, 'ProfId': r.ProfId})
        k += 1
    return res
Exemple #27
0
 def getRecordList(cls,TableClass,custId=None,limit=None,order_by=None,desc=None):
     session = Session()
     if current_user.UserType==3:
         records = session.query(cls).filter_by(UserId=current_user.id)\
             .join(User,User.id==cls.ProfId)\
             .with_entities(User.Name,cls.TransDate,cls.Note)\
             .order_by(UserNote.TransDate.desc())
     elif current_user.UserType in (0,1):
         records = session.query(cls).filter_by(CompanyId=current_user.CompanyId,UserId=custId)\
             .join(User,User.id==cls.ProfId)\
             .with_entities(User.Name,cls.TransDate,cls.Note)\
             .order_by(UserNote.TransDate.desc())
     elif current_user.UserType==2:
         records = session.query(cls).filter_by(CompanyId=current_user.CompanyId,UserId=custId,ProfId=current_user.id)\
             .join(User,User.id==cls.ProfId)\
             .with_entities(User.Name,cls.TransDate,cls.Note)\
             .order_by(UserNote.TransDate.desc())
     session.close()
     return records
Exemple #28
0
    def getLinkToFromRecord(self, TableClass):
        if TableClass == Service:
            session = Session()
            if self.ProfId:
                records = session.query(UserService)\
                    .filter_by(UserId=self.ProfId)\
                    .join(Service,UserService.ServiceId==Service.id)\
                    .with_entities(Service.id,Service.Name)
            else:
                records = session.query(UserService).join(Service,UserService.ServiceId==Service.id)\
                    .filter_by(CompanyId=self.CompanyId)\
                    .with_entities(Service.id,Service.Name)

            session.close()
            return records
        else:
            return TableClass.getRecordList(TableClass)
Exemple #29
0
def getProfessional(favorite,companyId):
    session = Session()
    if not favorite:
        records = session.query(User).filter_by(FindMe=True)\
            .join(Company,User.CompanyId==Company.id)
        if companyId:
            records = records.filter(User.CompanyId==companyId)
        records  = records.with_entities(User.id,User.Name,Company.Name.label("CompanyName"),User.Title,User.City)
    else:
        from db.UserFavorite import UserFavorite
        records = session.query(User)\
            .join(UserFavorite,User.id==UserFavorite.FavoriteId)\
            .filter_by(UserId=current_user.id,Checked=True)\
            .join(Company,User.CompanyId==Company.id)
        if companyId:
            records = records.filter(User.CompanyId==companyId)
        records  = records.with_entities(User.id,User.Name,Company.Name.label("CompanyName"),User.Title,User.City)
    session.close()
    return records
Exemple #30
0
def getCustomer(args):
    favorite = args.get('favorite',None)
    session = Session()
    if not favorite:
        records = session.query(User).filter_by(UserType=3)
    else:
        from db.UserFavorite import UserFavorite

        records1 = session.query(User).filter_by(UserType=3)\
            .join(UserFavorite,User.id==UserFavorite.FavoriteId)\
            .filter_by(UserId=current_user.id,Checked=True)\
            .with_entities(User.id, User.Name,User.Closed,User.UserType)

        records2 = session.query(User).filter_by(UserType=3)\
            .join(UserFavorite, User.id == UserFavorite.UserId)\
            .filter_by(FavoriteId=current_user.id, Checked=True) \
            .with_entities(User.id, User.Name,User.Closed,User.UserType)

        #records = records1.union_all(records2)
        records = records1

    session.close()
    return records