def get_cfdis(data, info_rfc): """ Endpoint for search with filters (dateIni, dateFin, rfc, usoCfdi) records in cfdis and return data and pagination """ from api.services.cfdis import pagination_cfdis body = None if request.method == 'POST': body = request.get_json() page_size = int(request.args.get('pagesize')) page_num = int(request.args.get('pagenum')) type_comprobante = request.args.get('typecomprobante') type_request = request.args.get('typerequest') cfdis, data_total_monto = pagination_cfdis( page_size=page_size, page_num=page_num, info_rfc=info_rfc, type_comprobante=type_comprobante, type_request=type_request, filters=body) return jsonify({ 'status': 'success', 'data': { 'dataPagination': json.loads(data_total_monto), 'cfdis': json.loads(cfdis) } }), 200
def last_cdfi_to_type(data, info_rfc): """ Endpoint for search last cfdi emisor and receptor by RFC """ last_receptor_cfdi = db.cfdis.find_one(filter={'Receptor.Rfc': info_rfc}, projection={ 'Fecha': 1, '_id': 0 }, sort=list({'Fecha': -1}.items())) last_emisor_cfdi = db.cfdis.find_one(filter={'Emisor.Rfc': info_rfc}, projection={ 'Fecha': 1, '_id': 0 }, sort=list({'Fecha': -1}.items())) return jsonify({ 'status': 'success', 'data': { 'lastReceptorCFDI': json.loads(dumps(last_receptor_cfdi)), 'lastEmisorCFDI': json.loads(dumps(last_emisor_cfdi)), }, }), 200
def get_request(data, request_id): """ Endpoint for search only record in requests Cfdis """ request_cfdi = db.requestsCfdis.find_one(filter={'_id': request_id}, projection={'info_id': 0}) return jsonify({'status': 'success', 'data': json.loads(dumps(request_cfdi))}), 200
def test_regex_object_hook(self): # simplejson or the builtin json module. from bson.json_util import json # Extended JSON format regular expression. pat = 'a*b' json_re = '{"$regex": "%s", "$options": "u"}' % pat loaded = json_util.object_hook(json.loads(json_re)) self.assertTrue(isinstance(loaded, RE_TYPE)) self.assertEqual(pat, loaded.pattern) self.assertEqual(re.U, loaded.flags) loaded = json_util.object_hook(json.loads(json_re), compile_re=False) self.assertTrue(isinstance(loaded, Regex)) self.assertEqual(pat, loaded.pattern) self.assertEqual(re.U, loaded.flags)
def find_by_name(cls, username, account_name): account = cls.accounts.find_one({'account_name' : account_name, 'username' : username}) if account: return AccountsModel(json.loads(dumps(account))) else: return None
def find_by_id(cls, username, account_id): account = cls.accounts.find_one({'_id' : ObjectId(account_id), 'username' : username}) if account: return AccountsModel(json.loads(dumps(account))) else: return None
def get_cfdi(data, cfdi_id): """ Endpoint for search only record in cfdis """ cfdi_found = db.cfdis.find_one({'_id': ObjectId(cfdi_id)}, { '_id': 0, 'Emisor.Rfc': 1, 'Emisor.Nombre': 1, 'Receptor.Rfc': 1, 'Receptor.Nombre': 1, 'Receptor.UsoCFDI': 1, 'Fecha': 1, 'SubTotal': 1, 'Total': 1, 'TipoDeComprobante': 1, 'Descuento': 1, 'Conceptos.Cantidad': 1, 'Conceptos.Descripcion': 1, 'Conceptos.ValorUnitario': 1, 'Conceptos.Importe': 1, 'Impuestos.TotalImpuestosTrasladados': 1, 'Impuestos.TotalImpuestosRetenidos': 1 }) return jsonify({ 'status': 'success', 'data': json.loads(dumps(cfdi_found)) })
def get_sat_info(data): """ Endpoint for get info by app movil """ sat_info = db.satInformations.find_one(filter={'_id': ObjectId(data["infoId"])}, projection={"user_id": 0, "id": 0}) return jsonify({'status': 'success', 'data': json.loads(dumps(sat_info))}), 200
def get_user(data): """ Endpoint for get user from query string "email" """ email = request.args.get('email') user = list( db.users.aggregate([{ '$match': { 'email': email } }, { '$project': { 'status': 0, 'password': 0 } }, { '$lookup': { 'from': 'satInformations', 'localField': '_id', 'foreignField': 'user_id', 'as': 'satinfo' } }, { '$unwind': { 'path': '$satinfo' } }, { '$project': { '_id': 0, 'satinfo._id': 0, 'satinfo.user_id': 0 } }, { '$project': { 'name': 1, 'lastname': 1, 'email': 1, 'phonenumber': 1, 'satinfo.rfc': 1, 'satinfo.settingsrfc.timerautomatic': 1, 'satinfo.settingsrfc.timerequest': 1, 'satinfo.settingsrfc.usocfdis': 1, 'datecreation': { '$dateToString': { 'format': '%Y-%m-%dT%H:%M:%SZ', 'date': '$creationdate' } } } }])) if len(user): return jsonify({ 'status': 'success', 'data': json.loads(dumps(user[0])) }), 200 return jsonify({'status': 'error', 'message': "Usuario no existe"}), 404
def get_requests(data): """ Endpoint for search with filters (dateIni, dateFin) records in requests Cfdis and return data and pagination """ from api.services.requests_cfdis import pagination_requests body = None if request.method == 'POST': body = request.get_json() page_size = int(request.args.get('pagesize')) page_num = int(request.args.get('pagenum')) requests_cfdis, data_pagination = pagination_requests(page_size=page_size, page_num=page_num, info_id=data['infoId'], filters=body) return jsonify({'status': 'success', 'data': { 'dataPagination': json.loads(data_pagination), 'requests': json.loads(requests_cfdis) }}), 200
def find_all_orders_by_user(cls, username): orders = cls.orders.find({'username': username}) return json.loads(dumps(orders)) if orders else None
def find_all_orders_by_account(cls, account_id): orders = cls.orders.find({'account_id': ObjectId(account_id)}) return json.loads(dumps(orders)) if orders else None
def all(cls, username): accounts = cls.accounts.find({'username' : username}) return json.loads(dumps(accounts)) if accounts else None
def json(self): return json.loads(dumps({'account_id': self.account_id, 'account_name': self.account_name}))