Python के माध्यम से वित्तीय रिपोर्टिंग फ़ाइलें बनाएं
वित्तीय रिपोर्ट Python आधारित अनुप्रयोगों के भीतर 1.03 या 2.2 प्रारूप में XBRL और OFX अनुरोध या प्रतिक्रिया फ़ाइल सहित निर्माण प्रारूपित करती है।
Aspose.Finance Python के लिए .NET के माध्यम से एक सुविधा संपन्न, एक्स्टेंसिबल और उपयोग में आसान वित्तीय रिपोर्ट निर्माण और संसाधन API है। डेवलपर्स आसानी से खरोंच से XBRL उदाहरण बना सकते हैं और साथ ही स्कीमा संदर्भ, संदर्भ, इकाई, आइटम, फुटनोट लिंक, भूमिका संदर्भ और जोड़ सकते हैं चाप भूमिका संदर्भ। API प्रत्येक सुविधा के लिए प्रासंगिक वर्ग प्रदान करता है जैसे संदर्भ के लिए, डेवलपर्स ContextPeriod, ContextEntity और Context का उपयोग कर सकते हैं। इसके अलावा, API 1.03 या 2.2 प्रारूप में खुले वित्तीय विनिमय (OFX) प्रारूप अनुरोध / प्रतिक्रिया निर्माण का भी समर्थन करता है।
आइटम जोड़कर XBRL फ़ाइल बनाएं
दस्तावेज़ में XBRL फ़ाइल बनाने और आइटम जोड़ने के लिए, प्रक्रिया है, XbrlDocument क्लास इंस्टेंस बनाएं। उपयुक्त API वर्गों जैसे कि SchemaRef वर्ग, प्रासंगिक संदर्भ वर्ग, जैसा कि ऊपर उल्लेख किया गया है और संकल्पना वर्ग का उपयोग करके आइटम के लिए प्रासंगिक सेटिंग्स तैयार करें। अंत में आइटम वर्ग के गुणों को परिभाषित और प्रारंभ करें और साथ ही डिस्क में XBRL फ़ाइल बनाने के लिए सेव विधि को कॉल करें।
Python कोड बनाने के लिए XBRL आइटम जोड़कर फ़ाइल करें
xbrlDoc = XbrlDocument() | |
xbrlInstances = xbrlDoc.xbrl_instances | |
xbrlInstance = xbrlInstances[xbrlInstances.add()] | |
schemaRefs = xbrlInstance.schema_refs | |
schemaRefs.add(os.path.join(sourceDir, "schema.xsd"), "example", "http://example.com/xbrl/taxonomy") | |
schema = schemaRefs[0] | |
contextPeriod = ContextPeriod(datetime(2020,1,1), datetime(2020,2,10)) | |
contextEntity = ContextEntity("exampleIdentifierScheme", "exampleIdentifier") | |
context = Context(contextPeriod, contextEntity) | |
xbrlInstance.contexts.append(context) | |
unit = Unit(UnitType.MEASURE) | |
unit.measure_qualified_names.append(QualifiedName("USD", "iso4217", "http://www.xbrl.org/2003/iso4217")) | |
xbrlInstance.units.append(unit) | |
fixedAssetsConcept = schema.get_concept_by_name("fixedAssets") | |
if fixedAssetsConcept is not None: | |
item = Item(fixedAssetsConcept) | |
item.context_ref = context | |
item.unit_ref = unit | |
item.precision = 4 | |
item.value = "1444" | |
xbrlInstance.facts.append(item) | |
xbrlDoc.save(os.path.join(outputDir, "dochavingItem.xbrl")) |
OFX अनुरोध और प्रतिक्रिया फ़ाइलें बनाएं
OFX फ़ाइलें बनाने के लिए, API OfxRequestDocument और OfxResponseDocument कक्षाएं प्रदान करता है और डेवलपर आसानी से कर सकते हैं OFX अनुरोध बनाएं और प्रतिक्रिया फ़ाइलें 1.03 और 2.2 दोनों स्वरूपों में। OfxRequestDocument गुणों को आरंभ करने के लिए, API अन्य वर्ग भी प्रदान करता है जैसे कि SignonRequest, FinancialInstitute और StatementTransactionRequest कक्षाएं। इसी तरह, OfxResponseDocument गुणों को आरंभ करने के लिए, API सहायक वर्ग प्रदान करता है जैसे कि SignonResponse, StatementTransactionResponse और StatementTransaction। प्रासंगिक उपयुक्त वर्गों के उपयोग के साथ दोनों मामलों के लिए कोड स्निपेट नीचे दिए गए हैं।
Python कोड जेनरेट करने के लिए OFX दस्तावेज़ों का अनुरोध करें
ofxResponseDoc = OfxResponseDocument() | |
ofxResponseDoc.signon_response_message_set_v1 = SignonResponseMessageSetV1() | |
signonResponse = SignonResponse() | |
ofxResponseDoc.signon_response_message_set_v1.signon_response = signonResponse | |
signonResponse.status = Status() | |
signonResponse.status.code = "0" | |
signonResponse.status.severity = SeverityEnum.INFO | |
signonResponse.status.message = "SUCCESS" | |
signonResponse.server_date = "20200611" | |
signonResponse.profile_update_date = "20200611" | |
fi = FinancialInstitution() | |
fi.organization = "aspose" | |
fi.financial_institution_id = "1" | |
signonResponse.financial_institution = fi | |
signonResponse.session_cookie = "11111111111111111" | |
ofxResponseDoc.bank_response_message_set_v1 = BankResponseMessageSetV1() | |
stmtTransResponse = StatementTransactionResponse() | |
ofxResponseDoc.bank_response_message_set_v1.statement_transaction_responses.append(stmtTransResponse) | |
stmtTransResponse.transaction_unique_id = "829631324" | |
stmtTransResponse.status = Status() | |
stmtTransResponse.status.code = "0" | |
stmtTransResponse.status.severity = SeverityEnum.INFO | |
stmtTransResponse.statement_response = StatementResponse() | |
stmtTransResponse.statement_response.currency = CurrencyEnum.USD | |
stmtTransResponse.statement_response.bank_account_from = BankAccount() | |
stmtTransResponse.statement_response.bank_account_from.bank_id = "1111111" | |
stmtTransResponse.statement_response.bank_account_from.account_id = "1111111111111" | |
stmtTransResponse.statement_response.bank_account_from.account_type = AccountEnum.CHECKING | |
stmtTransResponse.statement_response.bank_transaction_list = BankTransactionList() | |
stmtTransResponse.statement_response.bank_transaction_list.start_date = "20200601000000" | |
stmtTransResponse.statement_response.bank_transaction_list.end_date = "20200611000000" | |
transaction1 = StatementTransaction() | |
transaction1.transaction_type = TransactionEnum.DEBIT | |
transaction1.posted_date = "20200611000000" | |
transaction1.transaction_amount = "-12" | |
transaction1.financial_institution_transaction_id = "1111111111111111111111111" | |
transaction1.name = "bbbbbbbbbbbbbbbbbbbbbbb" | |
transaction2 = StatementTransaction() | |
transaction2.transaction_type = TransactionEnum.CREDIT | |
transaction2.posted_date = "20200611000000" | |
transaction2.transaction_amount = "22222.11" | |
transaction2.financial_institution_transaction_id = "2222222222222222222222222222" | |
transaction2.name = "wwwwwwwwwwwwwwwwwwwwwwww" | |
stmtTransResponse.statement_response.bank_transaction_list.statement_transactions.append(transaction1) | |
stmtTransResponse.statement_response.bank_transaction_list.statement_transactions.append(transaction2) | |
stmtTransResponse.statement_response.ledger_balance = LedgerBalance() | |
stmtTransResponse.statement_response.ledger_balance.balance_amount = "+2222.42" | |
stmtTransResponse.statement_response.ledger_balance.date_as_of = "20200611000000" | |
stmtTransResponse.statement_response.available_balance = AvailableBalance() | |
stmtTransResponse.statement_response.available_balance.balance_amount = "+222222.42" | |
stmtTransResponse.statement_response.available_balance.date_as_of = "20200611000000" | |
ofxResponseDoc.save(os.path.join(outputDir,"newOfxResponseBankStatement.xml"), OfxVersionEnum.V2X) | |
ofxResponseDoc.save(os.path.join(outputDir,"newOfxResponseBankStatement.sgml"), OfxVersionEnum.V1X) |
Python कोड उत्पन्न करने के लिए OFX प्रतिक्रिया दस्तावेज़
ofxResponseDoc = OfxResponseDocument() | |
ofxResponseDoc.signon_response_message_set_v1 = SignonResponseMessageSetV1() | |
signonResponse = SignonResponse() | |
ofxResponseDoc.signon_response_message_set_v1.signon_response = signonResponse | |
signonResponse.status = Status() | |
signonResponse.status.code = "0" | |
signonResponse.status.severity = SeverityEnum.INFO | |
signonResponse.status.message = "SUCCESS" | |
signonResponse.server_date = "20200611" | |
signonResponse.profile_update_date = "20200611" | |
fi = FinancialInstitution() | |
fi.organization = "aspose" | |
fi.financial_institution_id = "1" | |
signonResponse.financial_institution = fi | |
signonResponse.session_cookie = "11111111111111111" | |
ofxResponseDoc.bank_response_message_set_v1 = BankResponseMessageSetV1() | |
stmtTransResponse = StatementTransactionResponse() | |
ofxResponseDoc.bank_response_message_set_v1.statement_transaction_responses.append(stmtTransResponse) | |
stmtTransResponse.transaction_unique_id = "829631324" | |
stmtTransResponse.status = Status() | |
stmtTransResponse.status.code = "0" | |
stmtTransResponse.status.severity = SeverityEnum.INFO | |
stmtTransResponse.statement_response = StatementResponse() | |
stmtTransResponse.statement_response.currency = CurrencyEnum.USD | |
stmtTransResponse.statement_response.bank_account_from = BankAccount() | |
stmtTransResponse.statement_response.bank_account_from.bank_id = "1111111" | |
stmtTransResponse.statement_response.bank_account_from.account_id = "1111111111111" | |
stmtTransResponse.statement_response.bank_account_from.account_type = AccountEnum.CHECKING | |
stmtTransResponse.statement_response.bank_transaction_list = BankTransactionList() | |
stmtTransResponse.statement_response.bank_transaction_list.start_date = "20200601000000" | |
stmtTransResponse.statement_response.bank_transaction_list.end_date = "20200611000000" | |
transaction1 = StatementTransaction() | |
transaction1.transaction_type = TransactionEnum.DEBIT | |
transaction1.posted_date = "20200611000000" | |
transaction1.transaction_amount = "-12" | |
transaction1.financial_institution_transaction_id = "1111111111111111111111111" | |
transaction1.name = "bbbbbbbbbbbbbbbbbbbbbbb" | |
transaction2 = StatementTransaction() | |
transaction2.transaction_type = TransactionEnum.CREDIT | |
transaction2.posted_date = "20200611000000" | |
transaction2.transaction_amount = "22222.11" | |
transaction2.financial_institution_transaction_id = "2222222222222222222222222222" | |
transaction2.name = "wwwwwwwwwwwwwwwwwwwwwwww" | |
stmtTransResponse.statement_response.bank_transaction_list.statement_transactions.append(transaction1) | |
stmtTransResponse.statement_response.bank_transaction_list.statement_transactions.append(transaction2) | |
stmtTransResponse.statement_response.ledger_balance = LedgerBalance() | |
stmtTransResponse.statement_response.ledger_balance.balance_amount = "+2222.42" | |
stmtTransResponse.statement_response.ledger_balance.date_as_of = "20200611000000" | |
stmtTransResponse.statement_response.available_balance = AvailableBalance() | |
stmtTransResponse.statement_response.available_balance.balance_amount = "+222222.42" | |
stmtTransResponse.statement_response.available_balance.date_as_of = "20200611000000" | |
ofxResponseDoc.save(os.path.join(outputDir,"newOfxResponseBankStatement.xml"), OfxVersionEnum.V2X) | |
ofxResponseDoc.save(os.path.join(outputDir,"newOfxResponseBankStatement.sgml"), OfxVersionEnum.V1X) |