Example #1
0
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
Example #2
0
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
Example #3
0
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 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)
Example #6
0
 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
Example #7
0
 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
Example #8
0
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
Example #10
0
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
Example #11
0
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
Example #12
0
 def find_all_orders_by_user(cls, username):
     orders = cls.orders.find({'username': username})
     return json.loads(dumps(orders)) if orders else None
Example #13
0
 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
Example #14
0
 def all(cls, username):
     accounts = cls.accounts.find({'username' : username}) 
     return json.loads(dumps(accounts)) if accounts else None
Example #15
0
 def json(self):
     return json.loads(dumps({'account_id': self.account_id,
                              'account_name': self.account_name}))