コード例 #1
0
ファイル: locals.py プロジェクト: JC-Maxwell/Forest-Cron
def get_cfdis_count_in_corebook_for_this_taxpayer_at_period(identifier,begin_date,end_date,logger=None):
	try:
		corebook_db = _Utilities.set_connection_to_corebook_db()
		db_Ticket = corebook_db['Ticket']
		db_User = corebook_db['User']
		# Get user:
		user_filter = { 'identifier' : identifier }
		user_exists = db_User.find(user_filter).count()
		if user_exists:
			user = db_User.find(user_filter)[0]
			owner_id = str(user['_id'])
			ticket_filter = { 'ownerId': owner_id, 'expendedAt': {'$gte': begin_date, '$lte': end_date}, 'smartTicketId' : { '$exists' : False } }
			cfdis_in_corebook_db_count = db_Ticket.find(ticket_filter).count()
			return cfdis_in_corebook_db_count
		else:
			error_message = 'User with identifier ' + str(identifier) + ' does not exists in Corebook DB'
			# logger.critical(error_message)
			already_handled_exception = Already_Handled_Exception(error_message)
			raise already_handled_exception
	except Already_Handled_Exception as already_handled_exception:
		raise already_handled_exception
	except Exception as e:
		logger.critical(e.message)
		already_handled_exception = Already_Handled_Exception(e.message)
		raise already_handled_exception
コード例 #2
0
def get_cfdis_count_in_corebook_for_this_taxpayer_at_period(
        identifier, begin_date, end_date, logger=None):
    try:
        corebook_db = _Utilities.set_connection_to_corebook_db()
        db_Ticket = corebook_db['Ticket']
        db_User = corebook_db['User']
        # Get user:
        user_filter = {'identifier': identifier}
        user_exists = db_User.find(user_filter).count()
        if user_exists:
            user = db_User.find(user_filter)[0]
            owner_id = str(user['_id'])
            ticket_filter = {
                'ownerId': owner_id,
                'expendedAt': {
                    '$gte': begin_date,
                    '$lte': end_date
                },
                'smartTicketId': {
                    '$exists': False
                }
            }
            cfdis_in_corebook_db_count = db_Ticket.find(ticket_filter).count()
            return cfdis_in_corebook_db_count
        else:
            error_message = 'User with identifier ' + str(
                identifier) + ' does not exists in Corebook DB'
            # logger.critical(error_message)
            already_handled_exception = Already_Handled_Exception(
                error_message)
            raise already_handled_exception
    except Already_Handled_Exception as already_handled_exception:
        raise already_handled_exception
    except Exception as e:
        logger.critical(e.message)
        already_handled_exception = Already_Handled_Exception(e.message)
        raise already_handled_exception
コード例 #3
0
def get_cfdis_in_corebook_for_this_taxpayer_at_period(identifier,
                                                      begin_date,
                                                      end_date,
                                                      limit=None,
                                                      logger=None):
    try:
        corebook_db = _Utilities.set_connection_to_corebook_db()
        db_Ticket = corebook_db['Ticket']
        db_User = corebook_db['User']
        db_Transaction = corebook_db['Transaction']
        # Get user:
        user_filter = {'identifier': identifier}
        user_exists = db_User.find(user_filter).count()
        if user_exists:
            user = db_User.find(user_filter)[0]
            owner_id = str(user['_id'])
            ticket_filter = {
                'ownerId': owner_id,
                'expendedAt': {
                    '$gte': begin_date,
                    '$lte': end_date
                },
                'smartTicketId': {
                    '$exists': False
                }
            }
            if limit is None:
                cfdis_in_corebook_db = db_Ticket.find(ticket_filter)
            else:
                cfdis_in_corebook_db = db_Ticket.find(ticket_filter).limit(
                    limit)
            # Parse cursors to list:
            cfdis_in_corebook_db_list = []
            for cfdi_in_corebook_db in cfdis_in_corebook_db:
                cfdis_in_corebook_db_list.append(cfdi_in_corebook_db)
            cfdis_in_corebook_db = cfdis_in_corebook_db_list
            # Add transaction data to cfdi:
            transaction_ids = []
            for cfdi_in_corebook_db in list(cfdis_in_corebook_db):
                if 'transaction' in cfdi_in_corebook_db:
                    transaction_id = cfdi_in_corebook_db['transaction']
                    transaction_ids.append(transaction_id)
            transactions_filter = {
                '_id': {
                    '$in': transaction_ids
                }  #End of _id
            }  # End of transactions_filter
            transactions_selected_attributes = {
                '_id': 1,
                'fiscalStatus': 1,
                'uuid': 1
            }  #End of transactions_selected_attributes
            transactions_in_corebook_db = db_Transaction.find(
                transactions_filter, transactions_selected_attributes)
            transactions_by_uuid = {}
            for transaction_in_corebook_db in transactions_in_corebook_db:
                if 'uuid' in transaction_in_corebook_db:
                    uuid = transaction_in_corebook_db['uuid'].upper()
                    transactions_by_uuid[uuid] = transaction_in_corebook_db
            for cfdi_in_corebook_db in list(cfdis_in_corebook_db):
                if 'uuid' in cfdi_in_corebook_db:
                    uuid = cfdi_in_corebook_db['uuid'].upper()
                    if uuid in transactions_by_uuid:
                        cfdi_transaction = transactions_by_uuid[uuid]
                        cfdi_in_corebook_db[
                            'status'] = _Constants.CANCELED_STATUS if 'fiscalStatus' in cfdi_transaction and cfdi_transaction[
                                'fiscalStatus'] is _Constants.CB_CANCELED_FISCAL_STATUS else _Constants.VALID_STATUS
            # Join results in a dict:
            cfdis_in_corebook_db_dict = {}
            for cfdi_in_corebook_db in cfdis_in_corebook_db:
                if 'uuid' in cfdi_in_corebook_db:
                    uuid = cfdi_in_corebook_db['uuid'].upper()
                    if not uuid in cfdis_in_corebook_db_dict:
                        cfdis_in_corebook_db_dict[uuid] = cfdi_in_corebook_db
            # result = {
            # 	'replicated' : n,
            # 	'without_uuid' : i,
            # 	'ok' : len(cfdis_in_corebook_db_dict),
            # 	'total' : n + i + len(cfdis_in_corebook_db_dict),
            # 	'cfdis' : cfdis_in_corebook_db_dict
            # }#End of result
            return cfdis_in_corebook_db_dict
        else:
            error_message = 'User with identifier ' + str(
                identifier) + ' does not exists in Corebook DB'
            # logger.critical(error_message)
            already_handled_exception = Already_Handled_Exception(
                error_message)
            raise already_handled_exception
    except Already_Handled_Exception as already_handled_exception:
        raise already_handled_exception
    except Exception as e:
        if logger is not None:
            logger.critical(e.message)
        already_handled_exception = Already_Handled_Exception(e.message)
        raise already_handled_exception
コード例 #4
0
ファイル: locals.py プロジェクト: JC-Maxwell/Forest-Cron
def get_cfdis_in_corebook_for_this_taxpayer_at_period(identifier,begin_date,end_date,limit=None,logger=None):
	try:
		corebook_db = _Utilities.set_connection_to_corebook_db()
		db_Ticket = corebook_db['Ticket']
		db_User = corebook_db['User']
		db_Transaction = corebook_db['Transaction']
		# Get user:
		user_filter = { 'identifier' : identifier }
		user_exists = db_User.find(user_filter).count()
		if user_exists:
			user = db_User.find(user_filter)[0]
			owner_id = str(user['_id'])
			ticket_filter = { 'ownerId': owner_id, 'expendedAt':  {'$gte': begin_date, '$lte': end_date}, 'smartTicketId' : { '$exists' : False } }
			if limit is None:
				cfdis_in_corebook_db = db_Ticket.find(ticket_filter)
			else:
				cfdis_in_corebook_db = db_Ticket.find(ticket_filter).limit(limit)
			# Parse cursors to list:
			cfdis_in_corebook_db_list = []
			for cfdi_in_corebook_db in cfdis_in_corebook_db:
				cfdis_in_corebook_db_list.append(cfdi_in_corebook_db)
			cfdis_in_corebook_db = cfdis_in_corebook_db_list
			# Add transaction data to cfdi:
			transaction_ids = []
			for cfdi_in_corebook_db in list(cfdis_in_corebook_db):
				if 'transaction' in cfdi_in_corebook_db:
					transaction_id = cfdi_in_corebook_db['transaction']
					transaction_ids.append(transaction_id)
			transactions_filter = {
				'_id' : {
					'$in' : transaction_ids
				}#End of _id
			}# End of transactions_filter
			transactions_selected_attributes = {
				'_id' : 1,
				'fiscalStatus' : 1,
				'uuid' : 1
			}#End of transactions_selected_attributes
			transactions_in_corebook_db = db_Transaction.find(transactions_filter,transactions_selected_attributes)
			transactions_by_uuid = {}
			for transaction_in_corebook_db in transactions_in_corebook_db:
				if 'uuid' in transaction_in_corebook_db:
					uuid = transaction_in_corebook_db['uuid'].upper()
					transactions_by_uuid[uuid] = transaction_in_corebook_db
			for cfdi_in_corebook_db in list(cfdis_in_corebook_db):
				if 'uuid' in cfdi_in_corebook_db:
					uuid = cfdi_in_corebook_db['uuid'].upper()
					if uuid in transactions_by_uuid:
						cfdi_transaction = transactions_by_uuid[uuid]
						cfdi_in_corebook_db['status'] = _Constants.CANCELED_STATUS if 'fiscalStatus' in cfdi_transaction and cfdi_transaction['fiscalStatus'] is _Constants.CB_CANCELED_FISCAL_STATUS else _Constants.VALID_STATUS
			# Join results in a dict:
			cfdis_in_corebook_db_dict = {}
			for cfdi_in_corebook_db in cfdis_in_corebook_db:
				if 'uuid' in cfdi_in_corebook_db:
					uuid = cfdi_in_corebook_db['uuid'].upper()
					if not uuid in cfdis_in_corebook_db_dict:
						cfdis_in_corebook_db_dict[uuid] = cfdi_in_corebook_db
			# result = {
			# 	'replicated' : n,
			# 	'without_uuid' : i,
			# 	'ok' : len(cfdis_in_corebook_db_dict),
			# 	'total' : n + i + len(cfdis_in_corebook_db_dict),
			# 	'cfdis' : cfdis_in_corebook_db_dict 
			# }#End of result
			return cfdis_in_corebook_db_dict
		else:
			error_message = 'User with identifier ' + str(identifier) + ' does not exists in Corebook DB'
			# logger.critical(error_message)
			already_handled_exception = Already_Handled_Exception(error_message)
			raise already_handled_exception
	except Already_Handled_Exception as already_handled_exception:
		raise already_handled_exception
	except Exception as e:
		if logger is not None:
			logger.critical(e.message)
		already_handled_exception = Already_Handled_Exception(e.message)
		raise already_handled_exception