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
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
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
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