अजगर का उपयोग करके बोर्ड संरचनाओं पर अन्योन्याश्रित व्यक्तियों को निर्धारित करें

कला के अनुसार अन्योन्याश्रित व्यक्तियों की परिभाषा। रूसी संघ के टैक्स कोड का 105.1 एक कॉर्पोरेट वकील के लिए बल्कि एक तुच्छ कार्य है।

आमतौर पर यह सीधा है और ऐसा लगता है, स्वचालित करने के लिए कुछ क्यों है?
यह सही है, अगर कोई समाज दो या तीन मधुमेह की अपनी संरचना की तुलना करता है तो कोई समस्या नहीं है। लेकिन, अगर दो दर्जन से अधिक कंपनियां हैं और एक ही समय में विभिन्न कंपनियों में निदेशकों की अलग-अलग रचना है, तो सदस्यों की संख्या भी शामिल है? यहां आपको पहले से ही समय बिताना होगा। हम इसे एक कार्यक्रम पर खर्च करेंगे जो हमारे लिए संबंधित पक्षों की गणना करेगा, निदेशक मंडल की संरचना का विश्लेषण करेगा।

कुछ परिभाषाएँ


याद रखें कि अन्योन्याश्रित व्यक्तियों को रूसी संघ के टैक्स कोड में दिए गए कई मानदंडों द्वारा निर्धारित किया जाता है।

कला के पैरा 2 में। रूसी संघ के टैक्स कोड का 105.1 उन आधारों को सूचीबद्ध करता है जिनके अनुसार व्यक्तियों को अन्योन्याश्रित के रूप में मान्यता दी जाती है। इसलिए, कर उद्देश्यों के लिए, संबंधित पक्ष हैं:

  • संगठन, यदि एक संगठन प्रत्यक्ष और (या) अप्रत्यक्ष रूप से किसी अन्य संगठन में भाग लेता है और ऐसी भागीदारी का अनुपात 25% से अधिक है;
  • एक व्यक्ति और घटना में एक संगठन है कि इस तरह के एक व्यक्ति सीधे और (या) अप्रत्यक्ष रूप से ऐसे संगठन में भाग लेता है और ऐसी भागीदारी का अनुपात 25% से अधिक है;
  • संगठन, यदि एक ही व्यक्ति प्रत्यक्ष और (या) अप्रत्यक्ष रूप से इन संगठनों में भाग लेता है और प्रत्येक संगठन में ऐसी भागीदारी का अनुपात 25% से अधिक है;
  • संगठन और व्यक्ति (अपने पति या पत्नी के साथ एक व्यक्ति सहित), माता-पिता (दत्तक माता-पिता सहित), बच्चे (दत्तक सहित), सौतेले भाई और भाई, अभिभावक (ट्रस्टी) और वार्ड), अधिकार के साथ इस संगठन के एकमात्र कार्यकारी निकाय की नियुक्ति (चुनाव) या इस संगठन के कॉलेजियम कार्यकारी निकाय या निदेशक मंडल (पर्यवेक्षी बोर्ड) की संरचना के कम से कम 50% की नियुक्ति (चुनाव) द्वारा;
  • ऐसे संगठन जिनके एकमात्र कार्यकारी निकाय या कम से कम 50% कॉलेजियम कार्यकारी निकाय या निदेशक मंडल (पर्यवेक्षी बोर्ड) एक ही व्यक्ति (उसके पति या पत्नी के साथ व्यक्तिगत), माता-पिता (दत्तक माता-पिता सहित) के निर्णय द्वारा नियुक्त या चुने जाते हैं ), बच्चे (गोद लिए हुए सहित), पूर्ण और सौतेले भाई-बहन, अभिभावक (ट्रस्टी) और वार्ड);
  • ऐसे संगठन जिनमें कॉलेजियम के कार्यकारी निकाय या निदेशक मंडल (सुपरवाइजरी बोर्ड) के 50% से अधिक एक ही व्यक्ति होते हैं, उनके जीवनसाथी, माता-पिता (दत्तक माता-पिता सहित), बच्चे (गोद लिए हुए सहित), पूर्ण और सौतेले भाई-बहन, अभिभावक (ट्रस्टी) और वार्ड;
  • संगठन और अपने एकमात्र कार्यकारी निकाय की शक्तियों का प्रयोग करने वाला व्यक्ति;
  • ऐसे संगठन जिनमें एक ही व्यक्ति द्वारा एकमात्र कार्यकारी निकाय की शक्तियों का प्रयोग किया जाता है;
  • संगठन और (या) व्यक्तियों के मामले में प्रत्येक बाद के संगठन में प्रत्येक पिछले व्यक्ति की प्रत्यक्ष भागीदारी का हिस्सा 50% से अधिक है;
  • घटना में व्यक्तियों कि एक व्यक्ति आधिकारिक स्थिति से दूसरे व्यक्ति के अधीनस्थ है;
  • एक व्यक्ति, उसका जीवनसाथी, माता-पिता (दत्तक माता-पिता सहित), बच्चे (दत्तक सहित), सौतेले भाई-बहन और एक अभिभावक (ट्रस्टी) और वार्ड।

बिंदु पर पहुंचें


कई कारण हैं, लेकिन हम उनमें से एक में रुचि रखते हैं, अर्थात्:
- ऐसे संगठन जिनमें 50% से अधिक निदेशक मंडल एक ही व्यक्ति हैं।

यह आधार बाकी से अलग है जिसमें वकील को कंपनियों के निदेशक मंडल की सभी रचनाओं की तुलना उनके 50% से अधिक सदस्यों के संयोग से करने की आवश्यकता है।

निदेशक मंडल की सभी रचनाओं के अनुसार, हमने एक एक्सेल तालिका में निदेशक मंडल और बीस से अधिक कंपनियों की कुल संख्या के साथ सारांशित किया है:



हमें अपने कार्यक्रम की आवश्यकता है, तालिका के बाद, कंपनियों का चयन करने के लिए अगर बोर्ड के सदस्यों की कुल संख्या का 50% से अधिक का संयोग है। इसके बाद, प्रोग्राम को परिणाम को स्क्रीन पर या फ़ाइल में प्रदर्शित करना चाहिए।

तार्किक रूप से, कार्यक्रम निम्नलिखित एल्गोरिथ्म को निष्पादित करेगा। उपयोगकर्ता से निर्देशकों का पूरा नाम प्राप्त करने के बाद, वह उनकी तुलना एक्सेल की प्रत्येक पंक्ति से करेगी, जिसमें प्रत्येक कंपनी के निदेशकों का पूरा नाम शामिल है। अर्थात्, 5 में से प्रत्येक 3 उपयोगकर्ता एसडी सदस्यों की तुलना तालिका में 5 में से प्रत्येक 3 के साथ की जाती है। इस स्तर पर, प्रोग्राम 5 से अधिक सदस्यों के साथ सीडी का विश्लेषण नहीं करेगा, उन्हें छोड़ देगा।

हमारे कार्यक्रम की पहली पंक्तियाँ मानक होंगी:

import openpyxl wb = openpyxl.load_workbook('sd3.xlsx') sheet=wb.get_active_sheet() 

यहां हमने एक्सेल के साथ काम करने के लिए मॉड्यूल को आयात किया और हमारी टेबल के साथ फाइल को खोला।

अब हम उपयोगकर्ता को निदेशक मंडल के पांच सदस्यों में प्रवेश करने की पेशकश करेंगे, जिनके कार्यक्रम तुलना के लिए समाजों में और खोज करेंगे। हम चर, बी, सी, ई, एफ में एसडी के सभी उपयोगकर्ता-दर्ज सदस्यों को लिखते हैं:

 a=str(input("-1: ")) b=str(input("-2: ")) c=str(input("-3: ")) e=str(input("-4: ")) f=str(input("-5: ")) 

यह एक महत्वपूर्ण बिंदु है। निर्देशक के नाम को रिक्त स्थान के बिना दर्ज किया जाना चाहिए, उदाहरण के लिए, इवानोव आई। उसी रूप में, निर्देशकों का पूरा नाम एक्सेल तालिका में मौजूद होना चाहिए।

दो सूचियाँ बनाते हैं। एक खाली है, दूसरा समाजों के साथ है जहां निदेशक मंडल में 5 से अधिक सदस्य हैं:

 found = [] found2=[1,10,11,12,13,14,18,27,31,32] #    sd3,   5 . h = open('55555.txt','a') 

हमने टेक्स्ट फ़ाइल 55555.txt भी खोली, जिसमें हम परिणाम बचाएंगे। एसडी के संयोग 50% से अधिक होने का मतलब है कि 5 में से 3 सदस्यों का मिलान होना चाहिए। इसलिए कार्यक्रम को नाम मिलान के लिए 10 चेक बनाने चाहिए। 5 सदस्यों से मधुमेह के लिए कितने संयोजन हो सकते हैं।

इसलिए, एक ही कोड को 10 बार लिखने के लिए नहीं, प्रोग्राम को बोझिल बनाने के लिए, हम एक फ़ंक्शन बनाएंगे और फिर 10 बार कॉल (निष्पादित) करेंगे।

चार्ज समारोह


यहाँ हमारे समारोह है:

 def myfun(x,y,z): for rowOfCellObjects in sheet['B2':'L36']: for cellObj in rowOfCellObjects: if cellObj.value ==None: continue #print (cellObj) if cellObj.value == x: for cellObj in rowOfCellObjects: if cellObj.value == y: for cellObj in rowOfCellObjects: if cellObj.value == z: d = list(cellObj.coordinate) d[0]='A' dd=d[0]+d[1] if len(d)>2: dd=d[0]+d[1]+d[2] i=sheet[str(dd)].value #   ,   3-  q = cellObj.row if i not in found and i not in found2: found.append(i) h.write (str(i)+'\n') 

कोड का विश्लेषण करते हैं।

हमने बी 2: एल 36 के लिए तालिका की सीमाएं निर्धारित की हैं। यदि सेल खाली है, तो इसे छोड़ दिया जाएगा।

अगला, फ़ंक्शन 1 निदेशक के नाम पर विचार करेगा, यदि सेल का नाम उपयोगकर्ता द्वारा दर्ज किए गए नाम से मेल खाता है, तो फ़ंक्शन आगे बढ़ता है और 2 डी की तुलना करता है, फिर तीसरा निदेशक। अंत में, फ़ंक्शन कंपनियों की एक सूची बनाता है और उनमें से प्रत्येक को 55555.txt फ़ाइल में लिखता है।
एक फ़ंक्शन लिखे जाने के बाद, यह प्रोग्राम द्वारा स्वचालित रूप से निष्पादित नहीं किया जाएगा।

इसे कहा जाना चाहिए:

 myfun(a,b,c) 

लेकिन यहां हमने केवल पहले तीन निर्देशकों के लिए फ़ंक्शन को बुलाया। शेष संयोजनों के लिए फ़ंक्शन कॉल को दोहराना आवश्यक है:

 myfun(a,b,e) myfun(a,b,f) myfun(a,e,f) myfun(a,c,e) myfun(a,c,f) myfun(b,c,e) myfun(b,c,f) myfun(b,e,f) myfun(c,e,f) h.close() 

हम लॉन्च करते हैं


प्रोग्राम को चलाएं और किसी भी 5 डायरेक्टर्स से अजगर इंटरप्रेटर विंडो में प्रवेश करें
जो कम से कम एक बार एक्सेल टेबल में पाए जाते हैं:



प्रोग्राम निष्पादित होने के बाद, उस फ़ाइल को देखें जिसे प्रोग्राम बनाएगा -
55555.txt:



फ़ाइल में - उन कंपनियों की संख्या जहां मैच पाए गए थे। यह ध्यान दिया जाना चाहिए कि ये कॉलम ए से समाज संख्या हैं, एक्सेल लाइन संख्या नहीं:



कार्यक्रम तैयार है, लेकिन यह याद रखना चाहिए कि यह 5 से अधिक लोगों के साथ बोर्ड की संरचना का विश्लेषण नहीं करता है!

प्रोग्राम कोड डाउनलोड करें - यहां

परीक्षण चार्ट यहाँ डाउनलोड करें

पुनश्च: वास्तविक व्यक्तित्व के साथ तालिका में कोई भी मैच यादृच्छिक हैं।

Source: https://habr.com/ru/post/hi462643/


All Articles