Example #1
0
    def get_user_compensar(self, id, id_type):
        """
            Get Usuarios active or inactive
            :param id:
            :return:
        """
        #records = Usuarios.objects(id_usuario__exact=id)
        #rows = Usuarios.objects(id_usuario='1000000765')
        try:
            elemento_usos = []

            record = records = Usuarios.objects(
                id_usuario__exact=id, tipo_id_usurio__exact=id_type.upper())
            if record.count() == 0:
                return {'msg': 'User Not Activated', 'code': 0}

            records = Usuarios.objects(id_usuario__exact=id, tipo_id_usurio__exact=id_type.upper()).aggregate(*[
                {
                    '$lookup': {
                        'from': Usos._get_collection_name(),
                        'localField': 'id_trabajador',
                        'foreignField': 'id_trabajador',
                        'as': 'Usos'
                    },
                },
                {
                    '$lookup': {
                        'from': Cluster._get_collection_name(),
                        'localField': 'cluster_id',
                        'foreignField': 'cluster_id',
                        'as': 'Cluster'
                    }
                },

            ])

            for element in records:
                elemento_usos = element
                elemento_usos = copy.deepcopy(elemento_usos)
                if len(element['Usos']) == 0:
                    elemento_usos['Usos'] = {'red': 0,  'aliados': 0}
                else:
                    elemento_usos['Usos'] = []
                    elemento_usos['Usos'] = {
                        "red": element['Usos'][0]['usos_red'],
                        "aliados": element['Usos'][0]['usos_aliados'],
                    }

            return elemento_usos
        except Exception as err:
            print(err)
            return err