Definisi orang yang saling tergantung menurut Seni. 105.1 dari Kode Pajak Federasi Rusia adalah tugas yang agak sepele untuk pengacara perusahaan.
Biasanya ini mudah dan sepertinya, mengapa ada sesuatu yang diotomatisasi?
Itu benar, jika masyarakat dua atau tiga membandingkan komposisi diabetes mereka tidak ada masalah. Tetapi, apakah ada lebih dari dua lusin perusahaan dan pada saat yang sama perusahaan yang berbeda memiliki komposisi direktur yang berbeda, termasuk jumlah anggota? Di sini Anda sudah harus menghabiskan waktu. Kami akan membelanjakannya untuk program yang akan menghitung pihak terkait untuk kami, menganalisis komposisi dewan direksi.
Beberapa definisi
Ingatlah bahwa orang-orang yang saling tergantung ditentukan oleh sejumlah kriteria yang diberikan dalam Kode Pajak Federasi Rusia.
Dalam paragraf 2 Seni. 105.1 dari Kode Pajak Federasi Rusia mencantumkan alasan-alasan yang menurutnya masing-masing individu diakui saling tergantung. Jadi, untuk keperluan pajak, pihak-pihak terkait adalah:
- organisasi, jika satu organisasi secara langsung dan (atau) berpartisipasi secara tidak langsung dalam organisasi lain dan proporsi partisipasi tersebut lebih dari 25%;
- seorang individu dan organisasi dalam hal orang tersebut secara langsung dan (atau) berpartisipasi secara tidak langsung dalam organisasi tersebut dan proporsi partisipasi tersebut lebih dari 25%;
- organisasi, jika orang yang sama secara langsung dan (atau) berpartisipasi secara tidak langsung dalam organisasi ini dan proporsi partisipasi tersebut di setiap organisasi lebih dari 25%;
- organisasi dan orang (termasuk seorang individu bersama pasangannya), orang tua (termasuk orang tua angkat), anak-anak (termasuk adopsi), saudara tiri dan saudara kandung, wali (wali) dan lingkungan), dengan wewenang dengan penunjukan (pemilihan) dari badan eksekutif tunggal organisasi ini atau dengan penunjukan (pemilihan) sekurang-kurangnya 50% dari komposisi badan eksekutif kolegial atau dewan direksi (dewan pengawas) dari organisasi ini;
- organisasi yang badan eksekutif tunggalnya atau setidaknya 50% dari badan eksekutif kolegial atau dewan direksi (dewan pengawas) diangkat atau dipilih berdasarkan keputusan orang yang sama (individu bersama dengan pasangannya), orang tua (termasuk orang tua angkat ), anak-anak (termasuk yang diadopsi), saudara lelaki dan perempuan yang penuh dan setengah, wali (pengawas) dan lingkungan);
- organisasi di mana lebih dari 50% badan eksekutif kolegial atau dewan direksi (dewan pengawas) adalah individu yang sama bersama pasangan mereka, orang tua (termasuk orang tua angkat), anak-anak (termasuk yang diadopsi), orang dewasa penuh dan saudara tiri dan saudara perempuan, wali (pengawas) dan lingkungan;
- organisasi dan orang yang menjalankan kekuasaan dari badan eksekutif satu-satunya;
- organisasi di mana kekuatan badan eksekutif tunggal dijalankan oleh orang yang sama;
- organisasi dan (atau) individu jika bagian partisipasi langsung dari masing-masing orang sebelumnya dalam setiap organisasi berikutnya lebih dari 50%;
- individu dalam hal satu individu berada di bawah individu lain dengan posisi resmi;
- seorang individu, pasangannya, orang tua (termasuk orang tua angkat), anak-anak (termasuk orang adopsi), saudara tiri dan saudara kandung, seorang wali (wali) dan lingkungan.
Langsung ke intinya
Ada banyak alasan, tetapi kami tertarik pada salah satunya, yaitu:
- organisasi di mana lebih dari 50% dari dewan direksi adalah individu yang sama.
Dasar ini berbeda dari yang lain karena pengacara perlu membandingkan semua komposisi dewan direksi di perusahaan dengan kebetulan lebih dari 50% anggota mereka.
Misalkan semua komposisi Dewan Direksi telah kami rangkum dalam tabel Excel dengan dewan direksi dan jumlah total perusahaan lebih dari dua puluh:

Kami membutuhkan program kami, mengikuti tabel, untuk memilih perusahaan jika ada kebetulan lebih dari 50% dari total jumlah anggota dewan. Selanjutnya, program harus menampilkan hasilnya baik di layar atau dalam file.
Secara logis, program akan menjalankan algoritma berikut. Setelah menerima nama lengkap direktur dari pengguna, ia akan membandingkannya dengan setiap baris Excel, yang berisi nama lengkap direktur untuk setiap perusahaan. Artinya, setiap tiga dari 5 anggota SD pengguna dibandingkan dengan setiap 3 dari 5 anggota dalam tabel. Pada tahap ini, program tidak akan menganalisis CD dengan lebih dari 5 anggota, melompati mereka.
Baris pertama dari program kami adalah standar:
import openpyxl wb = openpyxl.load_workbook('sd3.xlsx') sheet=wb.get_active_sheet()
Di sini kami mengimpor modul untuk bekerja dengan Excel dan membuka file dengan tabel kami.
Sekarang kami akan menawarkan pengguna untuk memasukkan lima anggota Dewan Direksi, yang programnya akan dicari lebih lanjut di masyarakat untuk perbandingan. Kami menulis semua anggota SD yang dimasukkan pengguna dalam variabel 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: "))
Ini poin penting. Nama direktur harus dimasukkan tanpa spasi, misalnya, Ivanov I.I. Dalam bentuk yang sama, nama lengkap direksi harus ada dalam tabel Excel.
Mari kita buat dua daftar. Yang satu kosong, yang kedua dengan masyarakat di mana Dewan Direksi memiliki lebih dari 5 anggota:
found = [] found2=[1,10,11,12,13,14,18,27,31,32]
Kami juga membuka file teks 55555.txt, di mana kami akan menyimpan hasilnya. Kebetulan SD lebih dari 50% berarti 3 anggota dari 5 harus cocok. Jadi program harus melakukan 10 cek untuk nama yang cocok. Itu adalah berapa banyak kombinasi untuk diabetes dari 5 anggota.
Oleh karena itu, agar tidak menulis kode yang sama 10 kali, membuat program rumit, kita akan membuat fungsi dan kemudian memanggil (mengeksekusi) 10 kali.
Fungsi biaya
Inilah fungsi kami:
def myfun(x,y,z): for rowOfCellObjects in sheet['B2':'L36']: for cellObj in rowOfCellObjects: if cellObj.value ==None: continue
Mari kita menganalisis kodenya.
Kami menetapkan batas-batas tabel untuk B2: L36. Jika sel kosong, itu akan dilewati.
Selanjutnya, fungsi akan mempertimbangkan nama direktur 1, jika nama dalam sel sesuai dengan nama yang dimasukkan oleh pengguna, fungsinya berjalan lebih jauh dan membandingkan direktur ke 2, kemudian direktur ke-3. Pada akhirnya, fungsi membentuk daftar perusahaan dan menulis masing-masing ke file 55555.txt.
Setelah suatu fungsi ditulis, itu tidak akan secara otomatis dieksekusi oleh program.
Itu harus disebut:
myfun(a,b,c)
Tapi di sini kita memanggil fungsi hanya untuk tiga direktur pertama. Penting untuk mengulangi panggilan fungsi untuk kombinasi yang tersisa:
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()
Kami meluncurkan
Jalankan program dan masukkan di jendela interpreter python 5 nama direksi
yang ditemukan setidaknya sekali dalam tabel excel:

Setelah program dijalankan, lihat file yang akan dibuat oleh program -
55555.txt:

Dalam file - nomor perusahaan tempat ditemukannya kecocokan. Perlu dicatat bahwa ini adalah nomor masyarakat dari kolom A, bukan nomor baris Excel:

Program ini sudah siap, tetapi harus diingat bahwa ia tidak menganalisis komposisi dewan dengan anggota lebih dari 5 orang!
Unduh kode program - di
sini .
Unduh grafik tes di
sini .
PS: semua kecocokan dalam tabel dengan kepribadian nyata adalah acak.