అర్జెంటీనాకు చెందిన CUIT/CUIL ఉత్పత్తి మరియు ధృవీకరణ సాధనం
పరీక్షించడానికి లేదా ఉన్నవి ధృవీకరించడానికి చట్టబద్ధమైన అర్జెంటీనాకు చెందిన CUIT/CUIL సంఖ్యలను ఉత్పత్తి చేయండి. అర్జెంటీనాకు చెందిన పన్ను మరియు శ్రామిక గుర్తింపు సంఖ్యలతో పనిచేస్తున్న అభివృద్ధి దారుల కోసం సరళమైన సాధనం.
CUIT/CUIL జనరేటర్
8 అంకెల DNI సంఖ్యను నమోదు చేయండి లేదా యాదృచ్ఛిక జనరేటర్ను ఉపయోగించండి
ఉత్పత్తి చేసిన CUIT/CUIL
డాక్యుమెంటేషన్
अर्जेंटीना CUIT/CUIL जनरेटर और मान्यता
परिचय
अर्जेंटीना का CUIT (Clave Única de Identificación Tributaria) और CUIL (Clave Única de Identificación Laboral) अद्वितीय पहचान संख्या हैं जो अर्जेंटीना में कर और रोजगार के उद्देश्यों के लिए उपयोग की जाती हैं। ये 11-अंकों के कोड व्यक्तियों और व्यवसायों के लिए अर्जेंटीना की आर्थिक प्रणाली के भीतर कानूनी रूप से संचालित करने के लिए आवश्यक हैं। हमारा CUIT/CUIL जनरेटर और मान्यता उपकरण परीक्षण उद्देश्यों के लिए मान्य CUIT/CUIL नंबर उत्पन्न करने और मौजूदा नंबरों को मान्य करने का एक सरल, प्रभावी तरीका प्रदान करता है ताकि यह सुनिश्चित किया जा सके कि वे आधिकारिक प्रारूप और सत्यापन एल्गोरिदम के अनुसार हैं।
चाहे आप एक डेवलपर हों जो अर्जेंटीना के कर आईडी को संभालने वाले अनुप्रयोगों का परीक्षण कर रहे हों, एक QA विशेषज्ञ जो प्रणाली की कार्यक्षमता को सत्यापित कर रहे हों, या बस यह समझना चाहते हों कि ये पहचान नंबर कैसे काम करते हैं, यह उपकरण बिना किसी अनावश्यक जटिलताओं के एक सीधा समाधान प्रदान करता है। इस उपकरण में दो मुख्य कार्य हैं: एक जनरेटर जो यादृच्छिक रूप से या विशिष्ट पैरामीटर के आधार पर मान्य CUIT/CUIL नंबर उत्पन्न करता है, और एक मान्यता जो यह सत्यापित करती है कि एक दिए गए CUIT/CUIL नंबर सही प्रारूप और गणना नियमों का पालन करता है।
CUIT/CUIL संरचना और गणना
प्रारूप को समझना
एक मान्य CUIT/CUIL संख्या में आमतौर पर इस प्रारूप XX-XXXXXXXX-X में प्रदर्शित होने वाले 11 अंक होते हैं:
-
प्रकार कोड (पहले 2 अंक): इकाई के प्रकार को इंगित करता है
- 20, 23, 24: पुरुष व्यक्ति (CUIL)
- 27: महिला व्यक्ति (CUIL)
- 30, 33, 34: कंपनियाँ और संगठन (CUIT)
-
DNI संख्या (बीच के 8 अंक): व्यक्तियों के लिए, यह उनका राष्ट्रीय पहचान पत्र संख्या (DNI) है, यदि आवश्यक हो तो 8 अंकों तक पहुँचने के लिए अग्रणी शून्य के साथ पैड किया गया। कंपनियों के लिए, यह एक अद्वितीय असाइन किया गया नंबर है।
-
सत्यापन अंक (अंतिम अंक): एक चेक अंक जो एक विशिष्ट एल्गोरिदम का उपयोग करके गणना की जाती है ताकि संपूर्ण संख्या को मान्य किया जा सके।
सत्यापन अंक की गणना
सत्यापन अंक की गणना निम्नलिखित एल्गोरिदम का उपयोग करके की जाती है:
- CUIT/CUIL के पहले 10 अंकों को लें (प्रकार कोड + DNI)
- प्रत्येक अंक को इस अनुक्रम से संबंधित वजन के साथ गुणा करें: 5, 4, 3, 2, 7, 6, 5, 4, 3, 2
- सभी परिणामस्वरूप उत्पादों का योग करें
- 11 से उस योग का शेष भाग विभाजित करने के बाद की गणना करें
- यदि परिणाम 11 है, तो सत्यापन अंक 0 है
- यदि परिणाम 10 है, तो सत्यापन अंक 9 है
- अन्यथा, परिणाम सत्यापन अंक है
गणितीय रूप से, इसे इस प्रकार व्यक्त किया जा सकता है:
जहाँ:
- सत्यापन अंक है
- पहले 10 अंकों का -वां अंक है
- अनुक्रम [5, 4, 3, 2, 7, 6, 5, 4, 3, 2] से संबंधित वजन है
- विशेष मामले: यदि तो , यदि तो
चरण-दर-चरण मार्गदर्शिका
जनरेटर का उपयोग करना
-
उपकरण इंटरफ़ेस के शीर्ष पर "जनरेटर" टैब का चयन करें।
-
ड्रॉपडाउन मेनू से एक प्रकार कोड चुनें:
- 20: पुरुष (CUIL)
- 23: व्यवसाय (CUIT)
- 24: अस्थायी व्यवसाय (CUIT)
- 27: महिला (CUIL)
- 30: निगम (CUIT)
- 33: नागरिक संघ (CUIT)
- 34: फाउंडेशन (CUIT)
-
DNI संख्या दर्ज करें (वैकल्पिक):
- दिए गए क्षेत्र में 8-अंकों की DNI संख्या दर्ज करें
- यदि खाली छोड़ दिया जाए, तो उपकरण एक यादृच्छिक रूप से उत्पन्न DNI का उपयोग करेगा
- यदि आप 8 अंकों से कम दर्ज करते हैं, तो प्रणाली अग्रणी शून्य के साथ पैड करेगी
-
यादृच्छिक DNI उत्पन्न करें (वैकल्पिक):
- "यादृच्छिक" बटन पर क्लिक करें ताकि एक यादृच्छिक 8-अंकों का DNI नंबर उत्पन्न किया जा सके
-
उत्पन्न CUIT/CUIL देखें:
- उपकरण स्वचालित रूप से आपके इनपुट के आधार पर एक मान्य CUIT/CUIL प्रदर्शित करता है
- प्रारूप XX-XXXXXXXX-X होगा जिसमें सही सत्यापन अंक होगा
-
परिणाम की कॉपी करें:
- उत्पन्न CUIT/CUIL को अपने क्लिपबोर्ड पर कॉपी करने के लिए कॉपी आइकन पर क्लिक करें
- जब सफलतापूर्वक कॉपी किया गया तो एक पुष्टि संदेश दिखाई देगा
मान्यता का उपयोग करना
-
उपकरण इंटरफ़ेस के शीर्ष पर "मान्यता" टैब का चयन करें।
-
मान्यता के लिए CUIT/CUIL दर्ज करें:
- CUIT/CUIL को XX-XXXXXXXX-X प्रारूप में दर्ज करें
- उपकरण आपके इनपुट को टाइप करते समय हाइफ़न के साथ स्वचालित रूप से प्रारूपित करेगा
- आप बिना हाइफ़न (XXXXXXXXXXX) संख्या भी दर्ज कर सकते हैं
-
"मान्यता" बटन पर क्लिक करें:
- उपकरण प्रारूप, प्रकार कोड, और सत्यापन अंक की जांच करेगा
-
मान्यता परिणाम देखें:
- मान्य CUIT/CUIL नंबरों के लिए, एक हरा सफलता संदेश दिखाई देगा
- अमान्य नंबरों के लिए, एक लाल त्रुटि संदेश समस्या को स्पष्ट करेगा:
- अमान्य प्रारूप (XX-XXXXXXXX-X होना चाहिए)
- अमान्य प्रकार कोड (इनमें से एक होना चाहिए: 20, 23, 24, 27, 30, 33, 34)
- अमान्य सत्यापन अंक
-
अतिरिक्त जानकारी:
- मान्य नंबरों के लिए, उपकरण घटकों का एक ब्रेकडाउन प्रदर्शित करता है:
- प्रकार कोड और इसका अर्थ
- DNI संख्या
- सत्यापन अंक
- मान्य नंबरों के लिए, उपकरण घटकों का एक ब्रेकडाउन प्रदर्शित करता है:
उपयोग के मामले
विकास और परीक्षण
-
सॉफ़्टवेयर विकास: अर्जेंटीना के कर पहचान को संभालने वाले अनुप्रयोगों का परीक्षण करने के लिए मान्य CUIT/CUIL नंबर उत्पन्न करें, जैसे:
- ई-कॉमर्स प्लेटफ़ॉर्म
- लेखा सॉफ़्टवेयर
- HR प्रबंधन प्रणाली
- सरकारी सेवा पोर्टल
- बैंकिंग अनुप्रयोग
-
डेटाबेस जनसंख्या: अर्जेंटीना के उपयोगकर्ता जानकारी को संग्रहीत करने वाले सिस्टम के लिए वास्तविक परीक्षण डेटा बनाएँ, यह सुनिश्चित करते हुए कि डेटाबेस प्रतिबंध और मान्यता नियम सही ढंग से काम करते हैं।
-
फॉर्म मान्यता परीक्षण: वेब फॉर्म के लिए इनपुट मान्यता का परीक्षण करें जो CUIT/CUIL जानकारी एकत्र करते हैं, यह सत्यापित करते हुए कि अमान्य प्रविष्टियों के लिए उचित त्रुटि संदेश दिखाई देते हैं।
-
API परीक्षण: API एंडपॉइंट्स के लिए मान्य पेलोड उत्पन्न करने के लिए CUIT/CUIL जनरेशन का उपयोग करें, यह सुनिश्चित करते हुए कि आपकी एकीकरण परीक्षण मान्य डेटा का उपयोग करें।
-
QA स्वचालन: स्वचालित परीक्षण स्क्रिप्ट में CUIT/CUIL जनरेशन को शामिल करें ताकि स्थिर परीक्षण डेटा के बजाय गतिशील परीक्षण मामलों का निर्माण किया जा सके।
शैक्षिक उद्देश्य
-
मान्यता एल्गोरिदम सीखना: यह समझें कि चेक अंक एल्गोरिदम व्यावहारिक रूप से कैसे काम करता है CUIT/CUIL सत्यापन प्रक्रिया को क्रियान्वित करके।
-
डेटा मान्यता सिखाना: नए डेवलपर्स को फॉर्म मान्यता तकनीकों सिखाने के लिए शैक्षिक उदाहरण के रूप में उपयोग करें।
-
अर्जेंटीना के व्यवसाय आवश्यकताओं को समझना: अंतर्राष्ट्रीय व्यापार विकास के लिए अर्जेंटीना में उपयोग की जाने वाली पहचान प्रणाली के बारे में जानें।
विकल्प
हालांकि हमारा उपकरण CUIT/CUIL नंबर उत्पन्न करने और मान्यता करने का एक सीधा तरीका प्रदान करता है, आप कुछ वैकल्पिक दृष्टिकोणों पर विचार कर सकते हैं:
-
आधिकारिक सरकारी मान्यता: उत्पादन वातावरण के लिए, हमेशा संभव हो तो CUIT/CUIL नंबरों को आधिकारिक AFIP (Administración Federal de Ingresos Públicos) डेटाबेस के खिलाफ मान्य करें।
-
लाइब्रेरी और पैकेज: कई प्रोग्रामिंग भाषाओं में अर्जेंटीना के कर आईडी मान्यता के लिए विशेष रूप से डिज़ाइन की गई लाइब्रेरी हैं:
- JavaScript:
validar-cuit
npm पैकेज - PHP:
afip-php
लाइब्रेरी - Python:
py-cuit
पैकेज
- JavaScript:
-
हाथ से गणना: शैक्षिक उद्देश्यों के लिए, आप पहले बताए गए एल्गोरिदम का उपयोग करके सत्यापन अंक को हाथ से गणना कर सकते हैं।
-
व्यापक व्यवसाय मान्यता सेवाएँ: उद्यम अनुप्रयोगों के लिए, ऐसे व्यापक मान्यता सेवाओं का उपयोग करने पर विचार करें जो न केवल प्रारूप की जांच करती हैं बल्कि CUIT/CUIL से संबंधित इकाई की उपस्थिति और स्थिति को भी सत्यापित करती हैं।
CUIT/CUIL प्रणाली का इतिहास
अर्जेंटीना में CUIT/CUIL पहचान प्रणाली ने अपने आरंभ से महत्वपूर्ण विकास किया है:
उत्पत्ति और कार्यान्वयन
CUIT (Clave Única de Identificación Tributaria) को पहली बार 1970 के दशक में अर्जेंटीना में पेश किया गया था, कर संग्रह प्रणाली को आधुनिक बनाने के प्रयासों के तहत। सार्वजनिक राजस्व की संघीय प्रशासन (AFIP) ने इस अद्वितीय पहचानकर्ता को करदाताओं को अधिक कुशलता से ट्रैक करने और कर चोरी को कम करने के लिए लागू किया।
CUIL (Clave Única de Identificación Laboral) को बाद में श्रमिकों को सामाजिक सुरक्षा प्रणाली में विशेष रूप से पहचानने के लिए पेश किया गया, कर पहचान और श्रम पहचान के बीच एक भेद उत्पन्न करते हुए एक सुसंगत प्रारूप बनाए रखा।
विकास और डिजिटलकरण
1990 के दशक में, जब अर्जेंटीना ने महत्वपूर्ण आर्थिक सुधार किए, CUIT/CUIL प्रणाली आर्थिक गतिविधियों को ट्रैक करने के लिए अधिक महत्वपूर्ण हो गई। प्रणाली को और अधिक डिजिटल किया गया, और ऑनलाइन सत्यापन प्रणालियाँ लागू की गईं।
2000 के दशक की शुरुआत में, CUIT/CUIL प्रणाली को विभिन्न डिजिटल सरकारी सेवाओं के साथ एकीकृत किया गया, जिससे यह अर्जेंटीना की ई-सरकारी पहलों का एक आवश्यक घटक बन गया। इस अवधि में सत्यापन एल्गोरिदम और प्रारूप का मानकीकरण किया गया जो आज भी उपयोग में है।
हाल के विकास
हाल के वर्षों में, AFIP ने CUIT/CUIL नंबरों के लिए सुरक्षा और सत्यापन प्रक्रियाओं को बढ़ाया है, अधिक जटिल मान्यता प्रणालियाँ लागू की हैं और उन्हें अन्य सरकारी डेटाबेस के साथ एकीकृत किया है। अब यह प्रणाली अर्जेंटीना के कर चोरी से लड़ने और अर्थव्यवस्था को औपचारिक बनाने के प्रयासों में एक महत्वपूर्ण भूमिका निभाती है।
आज, CUIT/CUIL न केवल कर और रोजगार के उद्देश्यों के लिए उपयोग किया जाता है, बल्कि बैंकिंग, संपत्ति लेनदेन, उपयोगिता सेवाओं और ऑनलाइन खरीदारी सहित कई गतिविधियों के लिए एक आवश्यक पहचानकर्ता बन गया है, जो अर्जेंटीना में संचालित व्यक्तियों और व्यवसायों के लिए आवश्यक है।
कोड उदाहरण
पायथन
1def calculate_verification_digit(type_code, dni):
2 # स्ट्रिंग में परिवर्तित करें और सुनिश्चित करें कि DNI 8 अंकों के साथ अग्रणी शून्य के साथ है
3 type_code_str = str(type_code)
4 dni_str = str(dni).zfill(8)
5
6 # प्रकार कोड और DNI को मिलाएं
7 digits = type_code_str + dni_str
8
9 # प्रत्येक स्थिति के लिए वजन
10 weights = [5, 4, 3, 2, 7, 6, 5, 4, 3, 2]
11
12 # उत्पादों का योग निकालें
13 sum_products = sum(int(digits[i]) * weights[i] for i in range(10))
14
15 # सत्यापन अंक की गणना करें
16 verification_digit = 11 - (sum_products % 11)
17
18 # विशेष मामले
19 if verification_digit == 11:
20 verification_digit = 0
21 elif verification_digit == 10:
22 verification_digit = 9
23
24 return verification_digit
25
26def generate_cuit_cuil(type_code, dni=None):
27 import random
28
29 # मान्य प्रकार कोड
30 valid_type_codes = [20, 23, 24, 27, 30, 33, 34]
31
32 if type_code not in valid_type_codes:
33 raise ValueError(f"अमान्य प्रकार कोड। इनमें से एक होना चाहिए: {valid_type_codes}")
34
35 # यदि प्रदान नहीं किया गया है तो यादृच्छिक DNI उत्पन्न करें
36 if dni is None:
37 dni = random.randint(10000000, 99999999)
38
39 # सत्यापन अंक की गणना करें
40 verification_digit = calculate_verification_digit(type_code, dni)
41
42 # CUIT/CUIL प्रारूपित करें
43 return f"{type_code}-{str(dni).zfill(8)}-{verification_digit}"
44
45def validate_cuit_cuil(cuit_cuil):
46 # यदि मौजूद हो तो हाइफ़न हटा दें
47 cuit_cuil_clean = cuit_cuil.replace("-", "")
48
49 # मूल प्रारूप की जांच करें
50 if not cuit_cuil_clean.isdigit() or len(cuit_cuil_clean) != 11:
51 return False, "अमान्य प्रारूप"
52
53 # भागों को निकालें
54 type_code = int(cuit_cuil_clean[0:2])
55 dni = int(cuit_cuil_clean[2:10])
56 verification_digit = int(cuit_cuil_clean[10])
57
58 # प्रकार कोड की मान्यता करें
59 valid_type_codes = [20, 23, 24, 27, 30, 33, 34]
60 if type_code not in valid_type_codes:
61 return False, "अमान्य प्रकार कोड"
62
63 # सत्यापन अंक की गणना करें और तुलना करें
64 calculated_digit = calculate_verification_digit(type_code, dni)
65 if calculated_digit != verification_digit:
66 return False, "अमान्य सत्यापन अंक"
67
68 return True, "मान्य CUIT/CUIL"
69
70# उदाहरण उपयोग
71print(generate_cuit_cuil(20, 12345678)) # विशिष्ट DNI के लिए उत्पन्न करें
72print(generate_cuit_cuil(27)) # यादृच्छिक DNI के साथ उत्पन्न करें
73print(validate_cuit_cuil("20-12345678-9")) # CUIT/CUIL को मान्य करें
74
जावास्क्रिप्ट
1function calculateVerificationDigit(typeCode, dni) {
2 // स्ट्रिंग में परिवर्तित करें और सुनिश्चित करें कि DNI 8 अंकों के साथ अग्रणी शून्य के साथ है
3 const typeCodeStr = typeCode.toString();
4 const dniStr = dni.toString().padStart(8, '0');
5
6 // प्रकार कोड और DNI को मिलाएं
7 const digits = typeCodeStr + dniStr;
8
9 // प्रत्येक स्थिति के लिए वजन
10 const weights = [5, 4, 3, 2, 7, 6, 5, 4, 3, 2];
11
12 // उत्पादों का योग निकालें
13 let sumProducts = 0;
14 for (let i = 0; i < 10; i++) {
15 sumProducts += parseInt(digits[i]) * weights[i];
16 }
17
18 // सत्यापन अंक की गणना करें
19 let verificationDigit = 11 - (sumProducts % 11);
20
21 // विशेष मामले
22 if (verificationDigit === 11) {
23 verificationDigit = 0;
24 } else if (verificationDigit === 10) {
25 verificationDigit = 9;
26 }
27
28 return verificationDigit;
29}
30
31function generateCuitCuil(typeCode, dni) {
32 // मान्य प्रकार कोड
33 const validTypeCodes = [20, 23, 24, 27, 30, 33, 34];
34
35 if (!validTypeCodes.includes(typeCode)) {
36 throw new Error(`अमान्य प्रकार कोड। इनमें से एक होना चाहिए: ${validTypeCodes.join(', ')}`);
37 }
38
39 // यदि प्रदान नहीं किया गया है तो यादृच्छिक DNI उत्पन्न करें
40 if (dni === undefined) {
41 dni = Math.floor(Math.random() * 90000000) + 10000000;
42 }
43
44 // सत्यापन अंक की गणना करें
45 const verificationDigit = calculateVerificationDigit(typeCode, dni);
46
47 // CUIT/CUIL प्रारूपित करें
48 return `${typeCode}-${dni.toString().padStart(8, '0')}-${verificationDigit}`;
49}
50
51function validateCuitCuil(cuitCuil) {
52 // यदि मौजूद हो तो हाइफ़न हटा दें
53 const cuitCuilClean = cuitCuil.replace(/-/g, '');
54
55 // मूल प्रारूप की जांच करें
56 if (!/^\d{11}$/.test(cuitCuilClean)) {
57 return { isValid: false, errorMessage: 'अमान्य प्रारूप' };
58 }
59
60 // भागों को निकालें
61 const typeCode = parseInt(cuitCuilClean.substring(0, 2));
62 const dni = parseInt(cuitCuilClean.substring(2, 10));
63 const verificationDigit = parseInt(cuitCuilClean.substring(10, 11));
64
65 // प्रकार कोड की मान्यता करें
66 const validTypeCodes = [20, 23, 24, 27, 30, 33, 34];
67 if (!validTypeCodes.includes(typeCode)) {
68 return { isValid: false, errorMessage: 'अमान्य प्रकार कोड' };
69 }
70
71 // सत्यापन अंक की गणना करें और तुलना करें
72 const calculatedDigit = calculateVerificationDigit(typeCode, dni);
73 if (calculatedDigit !== verificationDigit) {
74 return { isValid: false, errorMessage: 'अमान्य सत्यापन अंक' };
75 }
76
77 return { isValid: true };
78}
79
80// उदाहरण उपयोग
81console.log(generateCuitCuil(20, 12345678)); // विशिष्ट DNI के लिए उत्पन्न करें
82console.log(generateCuitCuil(27)); // यादृच्छिक DNI के साथ उत्पन्न करें
83console.log(validateCuitCuil("20-12345678-9")); // CUIT/CUIL को मान्य करें
84
जावा
1import java.util.Arrays;
2import java.util.List;
3import java.util.Random;
4
5public class CuitCuilUtils {
6 private static final List<Integer> VALID_TYPE_CODES = Arrays.asList(20, 23, 24, 27, 30, 33, 34);
7 private static final int[] WEIGHTS = {5, 4, 3, 2, 7, 6, 5, 4, 3, 2};
8
9 public static int calculateVerificationDigit(int typeCode, int dni) {
10 // स्ट्रिंग में परिवर्तित करें और सुनिश्चित करें कि DNI 8 अंकों के साथ अग्रणी शून्य के साथ है
11 String typeCodeStr = String.valueOf(typeCode);
12 String dniStr = String.format("%08d", dni);
13
14 // प्रकार कोड और DNI को मिलाएं
15 String digits = typeCodeStr + dniStr;
16
17 // उत्पादों का योग निकालें
18 int sumProducts = 0;
19 for (int i = 0; i < 10; i++) {
20 sumProducts += Character.getNumericValue(digits.charAt(i)) * WEIGHTS[i];
21 }
22
23 // सत्यापन अंक की गणना करें
24 int verificationDigit = 11 - (sumProducts % 11);
25
26 // विशेष मामले
27 if (verificationDigit == 11) {
28 verificationDigit = 0;
29 } else if (verificationDigit == 10) {
30 verificationDigit = 9;
31 }
32
33 return verificationDigit;
34 }
35
36 public static String generateCuitCuil(int typeCode, Integer dni) {
37 if (!VALID_TYPE_CODES.contains(typeCode)) {
38 throw new IllegalArgumentException("अमान्य प्रकार कोड। इनमें से एक होना चाहिए: " + VALID_TYPE_CODES);
39 }
40
41 // यदि प्रदान नहीं किया गया है तो यादृच्छिक DNI उत्पन्न करें
42 if (dni == null) {
43 Random random = new Random();
44 dni = 10000000 + random.nextInt(90000000);
45 }
46
47 // सत्यापन अंक की गणना करें
48 int verificationDigit = calculateVerificationDigit(typeCode, dni);
49
50 // CUIT/CUIL प्रारूपित करें
51 return String.format("%d-%08d-%d", typeCode, dni, verificationDigit);
52 }
53
54 public static ValidationResult validateCuitCuil(String cuitCuil) {
55 // यदि मौजूद हो तो हाइफ़न हटा दें
56 String cuitCuilClean = cuitCuil.replace("-", "");
57
58 // मूल प्रारूप की जांच करें
59 if (!cuitCuilClean.matches("\\d{11}")) {
60 return new ValidationResult(false, "अमान्य प्रारूप");
61 }
62
63 // भागों को निकालें
64 int typeCode = Integer.parseInt(cuitCuilClean.substring(0, 2));
65 int dni = Integer.parseInt(cuitCuilClean.substring(2, 10));
66 int verificationDigit = Integer.parseInt(cuitCuilClean.substring(10, 11));
67
68 // प्रकार कोड की मान्यता करें
69 if (!VALID_TYPE_CODES.contains(typeCode)) {
70 return new ValidationResult(false, "अमान्य प्रकार कोड");
71 }
72
73 // सत्यापन अंक की गणना करें और तुलना करें
74 int calculatedDigit = calculateVerificationDigit(typeCode, dni);
75 if (calculatedDigit != verificationDigit) {
76 return new ValidationResult(false, "अमान्य सत्यापन अंक");
77 }
78
79 return new ValidationResult(true, null);
80 }
81
82 public static class ValidationResult {
83 private final boolean isValid;
84 private final String errorMessage;
85
86 public ValidationResult(boolean isValid, String errorMessage) {
87 this.isValid = isValid;
88 this.errorMessage = errorMessage;
89 }
90
91 public boolean isValid() {
92 return isValid;
93 }
94
95 public String getErrorMessage() {
96 return errorMessage;
97 }
98 }
99
100 public static void main(String[] args) {
101 // उदाहरण उपयोग
102 System.out.println(generateCuitCuil(20, 12345678)); // विशिष्ट DNI के लिए उत्पन्न करें
103 System.out.println(generateCuitCuil(27, null)); // यादृच्छिक DNI के साथ उत्पन्न करें
104 System.out.println(validateCuitCuil("20-12345678-9").isValid()); // CUIT/CUIL को मान्य करें
105 }
106}
107
PHP
1<?php
2
3function calculateVerificationDigit($typeCode, $dni) {
4 // स्ट्रिंग में परिवर्तित करें और सुनिश्चित करें कि DNI 8 अंकों के साथ अग्रणी शून्य के साथ है
5 $typeCodeStr = (string)$typeCode;
6 $dniStr = str_pad((string)$dni, 8, '0', STR_PAD_LEFT);
7
8 // प्रकार कोड और DNI को मिलाएं
9 $digits = $typeCodeStr . $dniStr;
10
11 // प्रत्येक स्थिति के लिए वजन
12 $weights = [5, 4, 3, 2, 7, 6, 5, 4, 3, 2];
13
14 // उत्पादों का योग निकालें
15 $sumProducts = 0;
16 for ($i = 0; $i < 10; $i++) {
17 $sumProducts += (int)$digits[$i] * $weights[$i];
18 }
19
20 // सत्यापन अंक की गणना करें
21 $verificationDigit = 11 - ($sumProducts % 11);
22
23 // विशेष मामले
24 if ($verificationDigit == 11) {
25 $verificationDigit = 0;
26 } else if ($verificationDigit == 10) {
27 $verificationDigit = 9;
28 }
29
30 return $verificationDigit;
31}
32
33function generateCuitCuil($typeCode, $dni = null) {
34 // मान्य प्रकार कोड
35 $validTypeCodes = [20, 23, 24, 27, 30, 33, 34];
36
37 if (!in_array($typeCode, $validTypeCodes)) {
38 throw new Exception("अमान्य प्रकार कोड। इनमें से एक होना चाहिए: " . implode(', ', $validTypeCodes));
39 }
40
41 // यदि प्रदान नहीं किया गया है तो यादृच्छिक DNI उत्पन्न करें
42 if ($dni === null) {
43 $dni = rand(10000000, 99999999);
44 }
45
46 // सत्यापन अंक की गणना करें
47 $verificationDigit = calculateVerificationDigit($typeCode, $dni);
48
49 // CUIT/CUIL प्रारूपित करें
50 return sprintf("%d-%08d-%d", $typeCode, $dni, $verificationDigit);
51}
52
53function validateCuitCuil($cuitCuil) {
54 // यदि मौजूद हो तो हाइफ़न हटा दें
55 $cuitCuilClean = str_replace('-', '', $cuitCuil);
56
57 // मूल प्रारूप की जांच करें
58 if (!preg_match('/^\d{11}$/', $cuitCuilClean)) {
59 return ['isValid' => false, 'errorMessage' => 'अमान्य प्रारूप'];
60 }
61
62 // भागों को निकालें
63 $typeCode = (int)substr($cuitCuilClean, 0, 2);
64 $dni = (int)substr($cuitCuilClean, 2, 8);
65 $verificationDigit = (int)substr($cuitCuilClean, 10, 1);
66
67 // प्रकार कोड की मान्यता करें
68 $validTypeCodes = [20, 23, 24, 27, 30, 33, 34];
69 if (!in_array($typeCode, $validTypeCodes)) {
70 return ['isValid' => false, 'errorMessage' => 'अमान्य प्रकार कोड'];
71 }
72
73 // सत्यापन अंक की गणना करें और तुलना करें
74 $calculatedDigit = calculateVerificationDigit($typeCode, $dni);
75 if ($calculatedDigit !== $verificationDigit) {
76 return ['isValid' => false, 'errorMessage' => 'अमान्य सत्यापन अंक'];
77 }
78
79 return ['isValid' => true];
80}
81
82// उदाहरण उपयोग
83echo generateCuitCuil(20, 12345678) . "\n"; // विशिष्ट DNI के लिए उत्पन्न करें
84echo generateCuitCuil(27) . "\n"; // यादृच्छिक DNI के साथ उत्पन्न करें
85var_dump(validateCuitCuil("20-12345678-9")); // CUIT/CUIL को मान्य करें
86?>
87
अक्सर पूछे जाने वाले प्रश्न
CUIT और CUIL के बीच क्या अंतर है?
CUIT (Clave Única de Identificación Tributaria) कर पहचान उद्देश्यों के लिए उपयोग किया जाता है और इसे व्यक्तियों और कानूनी संस्थाओं को दिया जाता है जिन्हें अर्जेंटीना में कर चुकाना है। CUIL (Clave Única de Identificación Laboral) विशेष रूप से श्रमिकों के लिए है और श्रम और सामाजिक सुरक्षा उद्देश्यों के लिए उपयोग किया जाता है। जबकि वे एक ही प्रारूप और गणना एल्गोरिदम साझा करते हैं, वे विभिन्न प्रशासनिक उद्देश्यों की सेवा करते हैं।
कौन से प्रकार कोड व्यक्तियों के लिए उपयोग किए जाते हैं और कौन से कंपनियों के लिए?
व्यक्तियों के लिए:
- 20, 23, 24: पुरुष व्यक्ति (CUIL)
- 27: महिला व्यक्ति (CUIL)
कंपनियों और संगठनों के लिए:
- 30: निगम (CUIT)
- 33: नागरिक संघ (CUIT)
- 34: फाउंडेशन (CUIT)
सत्यापन अंक की गणना कैसे की जाती है?
सत्यापन अंक एक भारित योग एल्गोरिदम का उपयोग करके गणना की जाती है। पहले 10 अंकों में से प्रत्येक को एक संबंधित वजन (5, 4, 3, 2, 7, 6, 5, 4, 3, 2) के साथ गुणा किया जाता है, और परिणामों का योग किया जाता है। सत्यापन अंक 11 से उस योग का शेष भाग विभाजित करने के बाद की गणना होती है। विशेष मामले: यदि परिणाम 11 है, तो सत्यापन अंक 0 है; यदि परिणाम 10 है, तो सत्यापन अंक 9 है।
क्या मैं इस उपकरण का उपयोग करके वास्तविक, आधिकारिक CUIT/CUIL नंबर उत्पन्न कर सकता हूँ?
नहीं, यह उपकरण परीक्षण और शैक्षिक उद्देश्यों के लिए डिज़ाइन किया गया है। उत्पन्न संख्या गणितीय रूप से CUIT/CUIL एल्गोरिदम के अनुसार मान्य हैं लेकिन अर्जेंटीना के कर अधिकारियों (AFIP) के साथ आधिकारिक रूप से पंजीकृत नहीं हैं। आधिकारिक CUIT/CUIL पंजीकरण के लिए, व्यक्तियों और कंपनियों को AFIP के माध्यम से उचित कानूनी प्रक्रियाओं का पालन करना चाहिए।
क्यों मेरी CUIT/CUIL मान्यता विफल होती है जबकि प्रारूप सही दिखता है?
मान्यता कई कारणों से विफल हो सकती है:
- प्रकार कोड मान्य कोडों में से एक नहीं है (20, 23, 24, 27, 30, 33, 34)
- सत्यापन अंक गणना की गई मान से मेल नहीं खाता
- प्रारूप गलत है (XX-XXXXXXXX-X होना चाहिए)
- इनपुट में गैर-संख्यात्मक वर्ण हैं (हाइफ़न को छोड़कर)
क्या CUIT/CUIL नंबर में DNI भाग में 8 अंकों से कम हो सकता है?
नहीं, DNI भाग हमेशा ठीक 8 अंक का होना चाहिए। यदि वास्तविक DNI में कम अंक हैं, तो इसे 8 अंक तक पहुँचने के लिए अग्रणी शून्य के साथ पैड किया जाना चाहिए। उदाहरण के लिए, यदि किसी का DNI 1234567 है, तो CUIT/CUIL में इसे 01234567 के रूप में प्रदर्शित किया जाएगा।
मैं कैसे सत्यापित कर सकता हूँ कि कोई CUIT/CUIL अर्जेंटीना में आधिकारिक रूप से पंजीकृत है?
यह सत्यापित करने के लिए कि कोई CUIT/CUIL आधिकारिक रूप से पंजीकृत और सक्रिय है, आपको आधिकारिक AFIP (Administración Federal de Ingresos Públicos) वेबसाइट या सेवाओं का उपयोग करना चाहिए। हमारा उपकरण केवल संख्या की गणितीय वैधता की जांच करता है, न कि इसकी आधिकारिक पंजीकरण स्थिति।
क्या CUIT/CUIL नंबर में हाइफ़न आवश्यक हैं?
हालांकि CUIT/CUIL नंबरों को आमतौर पर हाइफ़न (XX-XXXXXXXX-X) के साथ लिखा और प्रदर्शित किया जाता है, हाइफ़न वास्तव में गणना के लिए संख्या का हिस्सा नहीं होते हैं। हमारा मान्यता उपकरण दोनों प्रारूपों (हाइफ़न के साथ या बिना) को स्वीकार करता है और उचित रूप से किसी भी प्रारूप की मान्यता करेगा।
क्या CUIT/CUIL नंबर में DNI भाग में 8 अंकों से कम हो सकता है?
नहीं, DNI भाग हमेशा ठीक 8 अंक का होना चाहिए। यदि वास्तविक DNI में कम अंक हैं, तो इसे 8 अंक तक पहुँचने के लिए अग्रणी शून्य के साथ पैड किया जाना चाहिए। उदाहरण के लिए, यदि किसी का DNI 1234567 है, तो CUIT/CUIL में इसे 01234567 के रूप में प्रदर्शित किया जाएगा।
मैं कैसे सत्यापित कर सकता हूँ कि कोई CUIT/CUIL अर्जेंटीना में आधिकारिक रूप से पंजीकृत है?
यह सत्यापित करने के लिए कि कोई CUIT/CUIL आधिकारिक रूप से पंजीकृत और सक्रिय है, आपको आधिकारिक AFIP (Administración Federal de Ingresos Públicos) वेबसाइट या सेवाओं का उपयोग करना चाहिए। हमारा उपकरण केवल संख्या की गणितीय वैधता की जांच करता है, न कि इसकी आधिकारिक पंजीकरण स्थिति।
क्या मैं इस उपकरण का उपयोग अपने व्यावसायिक अनुप्रयोग में कर सकता हूँ?
हाँ, आप इस उपकरण में प्रदर्शित एल्गोरिदम और लॉजिक को अपने व्यावसायिक अनुप्रयोगों में एकीकृत कर सकते हैं। CUIT/CUIL मान्यता एल्गोरिदम एक सार्वजनिक मानक है। हालाँकि, उत्पादन वातावरण के लिए, हम उचित त्रुटि हैंडलिंग लागू करने और आवश्यकतानुसार आधिकारिक स्रोतों के खिलाफ अतिरिक्त मान्यता पर विचार करने की सिफारिश करते हैं।
क्या उपकरण उत्पन्न या मान्य CUIT/CUIL नंबरों में से किसी को भी संग्रहीत करता है?
नहीं, यह उपकरण दर्ज या उत्पन्न की गई किसी भी जानकारी को संग्रहीत नहीं करता है। सभी प्रसंस्करण आपके ब्राउज़र में क्लाइंट-साइड किया जाता है, और कोई डेटा हमारे सर्वर पर नहीं भेजा या संग्रहीत किया जाता है। यह आपके द्वारा दर्ज की गई किसी भी जानकारी की गोपनीयता और सुरक्षा सुनिश्चित करता है।
संदर्भ
-
AFIP (Administración Federal de Ingresos Públicos). "CUIT/CUIL/CDI." आधिकारिक वेबसाइट। https://www.afip.gob.ar/
-
श्रम, रोजगार और सामाजिक सुरक्षा मंत्रालय। "CUIL - Clave Única de Identificación Laboral." https://www.argentina.gob.ar/trabajo
-
ANSES (Administración Nacional de la Seguridad Social). "मेरा CUIL प्राप्त करें।" https://www.anses.gob.ar/
-
अर्जेंटीना गणराज्य का आधिकारिक बुलेटिन। "AFIP 2854/2010 सामान्य संकल्प: प्रक्रिया। Clave Única de Identificación Tributaria (C.U.I.T.)।"
-
अर्जेंटीना गणराज्य का कर संहिता। "करदाताओं की पहचान और पंजीकरण।"
क्या आप अर्जेंटीना के CUIT/CUIL नंबर उत्पन्न करने या मान्यता देने के लिए तैयार हैं? अब हमारे उपकरण का प्रयास करें और अपने परीक्षण प्रक्रिया को सरल बनाएं!
ప్రతిస్పందన
ఈ సాధనంపై ప్రతిస్పందన ఇవ్వడం ప్రారంభించడానికి ప్రతిస్పందన టోస్ట్ను క్లిక్ చేయండి
సంబంధిత సాధనాలు
మీ పని ప్రవాహానికి ఉపయోగకరమైన మరిన్ని సాధనాలను కనుగొనండి