تعريف الأشخاص المتبادلين وفقًا للفن. 105.1 من قانون الضرائب في الاتحاد الروسي هي مهمة تافهة إلى حد ما لمحامي الشركات.
عادة ما يكون هذا الأمر واضحًا ومباشرًا ، على ما يبدو ، لماذا يوجد شيء ما للتشغيل الآلي؟
هذا صحيح ، إذا قارنت جمعية اثنين أو ثلاثة تكوينهم لمرض السكري فلا توجد مشكلة. ولكن ، إذا كان هناك أكثر من عشرين شركة وفي الوقت نفسه ، فإن الشركات المختلفة لديها تكوين مختلف للمديرين ، بما في ذلك عدد الأعضاء؟ هنا لديك بالفعل لقضاء بعض الوقت. سننفقه على برنامج يقوم بحساب الأطراف ذات الصلة بالنسبة لنا ، وتحليل تكوين مجلس الإدارة.
بعض التعاريف
أذكر أنه يتم تحديد الأشخاص المترابطين من خلال عدد من المعايير الواردة في قانون الضرائب للاتحاد الروسي.
في الفقرة 2 من الفن. 105.1 من قانون الضرائب في الاتحاد الروسي يسرد الأسباب التي بموجبها يتم الاعتراف بالأفراد على أنهم مترابطون. لذلك ، لأغراض الضريبة ، فإن الأطراف ذات العلاقة هي:
- منظمة ، إذا شاركت إحدى المنظمات مباشرة و (أو) بشكل غير مباشر في منظمة أخرى وكانت نسبة هذه المشاركة أكثر من 25 ٪ ؛
- فرد ومؤسسة في حالة مشاركة هذا الفرد بشكل مباشر و (أو) بشكل غير مباشر في مثل هذه المنظمة ونسبة المشاركة أكثر من 25٪ ؛
- المنظمات ، إذا شارك نفس الشخص بشكل مباشر و (أو) بشكل غير مباشر في هذه المنظمات وكانت نسبة هذه المشاركة في كل منظمة أكثر من 25 ٪ ؛
- التنظيم والشخص (بما في ذلك الفرد مع زوجته) ، والآباء (بما في ذلك الآباء بالتبني) ، والأطفال (بما في ذلك بالتبني) ، والأخوة غير الشقيقين والأخوة ، والأوصياء (الأمناء) والأجنحة) ، مع السلطة عن طريق تعيين (انتخاب) الهيئة التنفيذية الوحيدة لهذه المنظمة أو عن طريق تعيين (انتخاب) ما لا يقل عن 50 ٪ من تكوين الهيئة التنفيذية أو مجلس الإدارة (مجلس الإشراف) لهذه المنظمة ؛
- المنظمات التي يتم تعيين أو انتخاب هيئاتها التنفيذية الوحيدة أو ما لا يقل عن 50٪ من الجهاز التنفيذي أو مجلس الإدارة (مجلس الإشراف) بقرار من نفس الشخص (الفرد مع زوجته) ، والآباء (بما في ذلك الآباء بالتبني) ) ، الأطفال (بما في ذلك الأطفال المتبنين) ، الأخوة والأخوات الكاملين ونصف ، الأوصياء (الأمناء) والأجنحة
- المنظمات التي يكون فيها أكثر من 50٪ من تكوين الهيئة التنفيذية الجماعية أو مجلس الإدارة (مجلس الإشراف) هم نفس الأفراد مع زوجهم أو والديهم (بما في ذلك الآباء بالتبني) ، والأطفال (بما في ذلك التبني) ، والكامل ونصف الإخوة والأخوات والأوصياء (الأوصياء) والأجنحة ؛
- تنظيم وشخص يمارس صلاحيات الجهاز التنفيذي الوحيد ؛
- المنظمات التي تمارس فيها صلاحيات الهيئة التنفيذية الوحيدة من قبل نفس الشخص ؛
- المنظمات و (أو) الأفراد في حال كانت حصة المشاركة المباشرة لكل شخص سابق في كل مؤسسة لاحقة أكثر من 50 ٪ ؛
- الأفراد في حالة خضوع أحد الأفراد لشخص آخر حسب الموقف الرسمي ؛
- الفرد ، زوجته ، والديه (بما في ذلك الآباء بالتبني) ، والأطفال (بما في ذلك بالتبني) ، والأخوة والأخوات الكاملين ونصف ، وصي (الوصي) وارد.
وصول الى هذه النقطة
هناك العديد من الأسباب ، لكننا مهتمون بأحد هذه الأسباب ، وهي:
- المنظمات التي يكون فيها أكثر من 50٪ من أعضاء مجلس الإدارة هم نفس الأفراد.
يختلف هذا الأساس عن البقية حيث يحتاج المحامي إلى مقارنة كل تكوين مجلس الإدارة في الشركات بمصادفة أكثر من 50٪ من أعضائها.
لنفترض أن جميع مكونات مجلس الإدارة قد لخصناها في جدول Excel مع مجالس الإدارة وعدد إجمالي من الشركات التي تجاوزت العشرين:

نحتاج إلى برنامجنا ، بعد الجدول ، لاختيار الشركات إذا كان هناك مصادفة لأكثر من 50٪ من إجمالي عدد أعضاء مجلس الإدارة. بعد ذلك ، يجب أن يعرض البرنامج النتيجة إما على الشاشة أو في ملف.
منطقيا ، سيقوم البرنامج بتنفيذ الخوارزمية التالية. بعد تلقي الأسماء الكاملة للمديرين من المستخدم ، ستقوم بمقارنتها بكل سطر من Excel ، والذي يحتوي على الأسماء الكاملة للمديرين لكل شركة. بمعنى ، تتم مقارنة كل ثلاثة أعضاء من أصل 5 أعضاء SD مع كل 3 من 5 في الجدول. في هذه المرحلة ، لن يقوم البرنامج بتحليل الأقراص المدمجة مع أكثر من 5 أعضاء ، وتخطيها.
الأسطر الأولى من برنامجنا ستكون قياسية:
import openpyxl wb = openpyxl.load_workbook('sd3.xlsx') sheet=wb.get_active_sheet()
هنا قمنا باستيراد الوحدة النمطية للعمل مع Excel وفتح الملف باستخدام جدولنا.
الآن سوف نقدم للمستخدم إدخال خمسة أعضاء في مجلس الإدارة ، والذين سيقوم البرنامج بالبحث في المجتمعات للمقارنة. نكتب جميع أعضاء SD التي أدخلها المستخدم في المتغيرات a ، b ، c ، e ، f:
a=str(input("-1: ")) b=str(input("-2: ")) c=str(input("-3: ")) e=str(input("-4: ")) f=str(input("-5: "))
هذه نقطة مهمة. يجب إدخال اسم المخرج بدون مسافات ، على سبيل المثال ، إيفانوف الأول. في نفس النموذج ، يجب أن تكون الأسماء الكاملة للمديرين موجودة في جدول Excel.
دعونا إنشاء قائمتين. واحد فارغ ، والثاني مع المجتمعات التي يكون فيها مجلس الإدارة أكثر من 5 أعضاء:
found = [] found2=[1,10,11,12,13,14,18,27,31,32]
لقد فتحنا أيضًا الملف النصي 55555.txt ، الذي سنحفظ فيه النتائج ، وتزامن SD مع أكثر من 50٪ يعني أنه يجب أن يتطابق 3 أعضاء من 5. لذلك يجب أن يقوم البرنامج بإجراء 10 شيكات لمطابقة الأسماء. هذا هو عدد المجموعات التي يمكن أن تكون لمرض السكري من 5 أعضاء.
لذلك ، من أجل عدم كتابة نفس الرمز 10 مرات ، مما يجعل البرنامج مرهقًا ، سنقوم بإنشاء وظيفة ثم ندعو (تنفيذها) 10 مرات.
وظيفة المسؤول
هنا هي وظيفتنا:
def myfun(x,y,z): for rowOfCellObjects in sheet['B2':'L36']: for cellObj in rowOfCellObjects: if cellObj.value ==None: continue
دعنا نحلل الرمز.
وضعنا حدود الجدول لـ B2: L36. إذا كانت الخلية فارغة ، فسيتم تخطيها.
بعد ذلك ، ستنظر الوظيفة في اسم المخرج الأول ، إذا كان الاسم الموجود في الخلية يتوافق مع الاسم الذي أدخله المستخدم ، فإن الوظيفة تذهب أبعد من ذلك وتقارن الثاني ، ثم المخرج الثالث. في النهاية ، تشكل الوظيفة قائمة بالشركات وتكتب كل واحدة منها إلى الملف 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 أسماء للمديرين من
تلك الموجودة مرة واحدة على الأقل في جدول excel:

بعد تنفيذ البرنامج ، انظر إلى الملف الذي سينشئه البرنامج -
55555.txt:

في الملف - أعداد الشركات التي تم العثور على تطابقات فيها. تجدر الإشارة إلى أن هذه هي أرقام المجتمع من العمود A ، وليس أرقام سطر Excel:

البرنامج جاهز ، لكن يجب أن نتذكر أنه لا يحلل تكوين المجلس مع أعضاء أكثر من 5 أشخاص!
قم بتنزيل رمز البرنامج -
هنا .
قم بتنزيل اختبار الرسم البياني
هنا .
ملاحظة: أي مباريات في الجدول مع شخصيات حقيقية عشوائية.