🛠️

Whiz Tools

Build • Create • Innovate

આર્જેન્ટિનાનો 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) अनन्य पहिचान नम्बरहरू हुन् जुन अर्जेन्टिनामा कर र रोजगारको उद्देश्यका लागि प्रयोग गरिन्छ। यी ११-अंकको कोडहरू व्यक्तिहरू र व्यवसायहरूलाई अर्जेन्टिनाको आर्थिक प्रणालीमा कानूनी रूपमा सञ्चालन गर्न महत्त्वपूर्ण छन्। हाम्रो CUIT/CUIL उत्पन्नकर्ता र मान्यता दिने उपकरणले परीक्षणका लागि मान्य CUIT/CUIL नम्बरहरू उत्पन्न गर्न र विद्यमान नम्बरहरूलाई मान्यता दिनको लागि सरल, प्रभावकारी तरिका प्रदान गर्दछ जसले आधिकारिक ढाँचा र मान्यता गणितसँग मेल खान्छ।

तपाईं विकासकर्ता हुनुहुन्छ भने अर्जेन्टिनाका कर ID हरूलाई सम्हाल्ने अनुप्रयोगहरूको परीक्षण गर्दै, QA विशेषज्ञको रूपमा प्रणालीको कार्यक्षमता प्रमाणित गर्दै, वा केवल यी पहिचान नम्बरहरू कसरी काम गर्छन् भनेर बुझ्न आवश्यक छ भने, यो उपकरणले अनावश्यक जटिलताबिना सीधा समाधान प्रदान गर्दछ। उपकरणमा दुई मुख्य कार्यहरू छन्: एक उत्पन्नकर्ता जसले विशेष मापदण्डहरूमा आधारित वा यादृच्छिक रूपमा मान्य CUIT/CUIL नम्बरहरू सिर्जना गर्दछ, र एक मान्यता दिने उपकरण जसले दिइएको CUIT/CUIL नम्बर सही ढाँचा र गणना नियमहरूलाई पालन गर्छ कि गर्दैन भनेर जाँच गर्छ।

CUIT/CUIL संरचना र गणना

ढाँचाबारे बुझ्न

एक मान्य CUIT/CUIL नम्बर ११ अंकको हुन्छ जुन सामान्यतया XX-XXXXXXXX-X ढाँचामा देखाइन्छ:

  1. प्रकार कोड (पहिला २ अंक): संस्थाको प्रकारलाई जनाउँछ

    • २०, २३, २४: पुरुष व्यक्तिहरू (CUIL)
    • २७: महिला व्यक्तिहरू (CUIL)
    • ३०, ३३, ३४: कम्पनीहरू र संस्थाहरू (CUIT)
  2. DNI नम्बर (मध्यका ८ अंक): व्यक्तिहरूका लागि, यो उनीहरूको राष्ट्रिय पहिचान पत्र नम्बर (DNI) हो, आवश्यक परेमा ८ अंकमा पुग्नका लागि अग्रणी शून्यहरू थपिन्छ। कम्पनीहरूको लागि, यो एक अनन्य असाइन गरिएको नम्बर हो।

  3. मान्यता अंक (अन्तिम अंक): सम्पूर्ण नम्बरलाई मान्यता दिनको लागि गणना गरिएको चेक अंक।

मान्यता अंकको गणना

मान्यता अंक निम्नलिखित एल्गोरिदम प्रयोग गरेर गणना गरिन्छ:

  1. CUIT/CUIL का पहिलो १० अंकहरू (प्रकार कोड + DNI) लिनुहोस्
  2. प्रत्येक अंकलाई यस अनुक्रमबाट सम्बन्धित वजनसँग गुणा गर्नुहोस्: ५, ४, ३, २, ७, ६, ५, ४, ३, २
  3. सबै उत्पादनहरूको योग गर्नुहोस्
  4. ११ बाट योगको बाँकी भागलाई ११ ले भाग गर्दा प्राप्त हुने बाँकी घटाउनुहोस्
  5. यदि परिणाम ११ हो भने, मान्यता अंक ० हो
  6. यदि परिणाम १० हो भने, मान्यता अंक ९ हो
  7. अन्यथा, परिणाम नै मान्यता अंक हो

गणितीय रूपमा, यो यसरी व्यक्त गर्न सकिन्छ:

VD=11((i=110di×wi)mod11)VD = 11 - ((\sum_{i=1}^{10} d_i \times w_i) \bmod 11)

जहाँ:

  • VDVD मान्यता अंक हो
  • did_i पहिलो १० अंकको ii-थौं अंक हो
  • wiw_i सम्बन्धित वजन हो जुन अनुक्रम [5, 4, 3, 2, 7, 6, 5, 4, 3, 2] बाट हो
  • विशेष केसहरू: यदि VD=11VD = 11 भने VD=0VD = 0, यदि VD=10VD = 10 भने VD=9VD = 9

चरण-दर-चरण मार्गदर्शिका

उत्पन्नकर्ता प्रयोग गर्दै

  1. उपकरणको इन्टरफेसमा माथिको "उत्पन्नकर्ता" ट्याब चयन गर्नुहोस्।

  2. ड्रपडाउन मेनुबाट एक प्रकार कोड चयन गर्नुहोस्:

    • २०: पुरुष (CUIL)
    • २३: व्यवसाय (CUIT)
    • २४: अस्थायी व्यवसाय (CUIT)
    • २७: महिला (CUIL)
    • ३०: निगम (CUIT)
    • ३३: नागरिक संघ (CUIT)
    • ३४: फाउन्डेशन (CUIT)
  3. DNI नम्बर प्रविष्ट गर्नुहोस् (वैकल्पिक):

    • दिइएको क्षेत्रमा ८ अंकको DNI नम्बर प्रविष्ट गर्नुहोस्
    • यदि खाली छ भने, उपकरणले यादृच्छिक रूपमा उत्पन्न गरिएको DNI प्रयोग गर्नेछ
    • यदि तपाईंले ८ अंकभन्दा कम अंक प्रविष्ट गर्नुहुन्छ भने, प्रणाली अग्रणी शून्यहरू थप्नेछ
  4. यादृच्छिक DNI उत्पन्न गर्नुहोस् (वैकल्पिक):

    • "यादृच्छिक" बटनमा क्लिक गरेर यादृच्छिक ८ अंकको DNI नम्बर उत्पन्न गर्नुहोस्
  5. उत्पन्न CUIT/CUIL हेर्नुहोस्:

    • उपकरणले तपाईंका इनपुटहरूमा आधारित मान्य CUIT/CUIL स्वचालित रूपमा देखाउँछ
    • ढाँचा XX-XXXXXXXX-X हुनेछ र सही मान्यता अंक हुनेछ
  6. परिणामलाई प्रतिलिपि गर्नुहोस्:

    • उत्पन्न CUIT/CUIL लाई तपाईंको क्लिपबोर्डमा प्रतिलिपि गर्नको लागि प्रतिलिपि आइकनमा क्लिक गर्नुहोस्
    • सफलतापूर्वक प्रतिलिपि भएपछि एक पुष्टिकरण सन्देश देखा पर्नेछ

मान्यता दिने उपकरण प्रयोग गर्दै

  1. उपकरणको इन्टरफेसमा माथिको "मान्यता दिने" ट्याब चयन गर्नुहोस्।

  2. मान्यता दिनको लागि CUIT/CUIL प्रविष्ट गर्नुहोस्:

    • CUIT/CUIL लाई XX-XXXXXXXX-X ढाँचामा प्रविष्ट गर्नुहोस्
    • उपकरणले तपाईंले टाइप गर्दा स्वचालित रूपमा हाइफेनहरू सहितको इनपुटलाई ढाँचा बनाउँछ
    • तपाईं हाइफेन बिना पनि नम्बर प्रविष्ट गर्न सक्नुहुन्छ (XXXXXXXXXXX)
  3. "मान्यता दिनुहोस्" बटनमा क्लिक गर्नुहोस्:

    • उपकरणले ढाँचा, प्रकार कोड, र मान्यता अंक जाँच गर्नेछ
  4. मान्यता परिणाम हेर्नुहोस्:

    • मान्य CUIT/CUIL नम्बरहरूको लागि, हरियो सफलताको सन्देश देखा पर्नेछ
    • अमान्य नम्बरहरूको लागि, रातो त्रुटि सन्देशले समस्यालाई स्पष्ट गर्नेछ:
      • अमान्य ढाँचा (XX-XXXXXXXX-X हुनुपर्छ)
      • अमान्य प्रकार कोड (२०, २३, २४, २७, ३०, ३३, ३४ मध्ये एक हुनुपर्छ)
      • अमान्य मान्यता अंक
  5. अतिरिक्त जानकारी:

    • मान्य नम्बरहरूको लागि, उपकरणले घटकहरूको ब्रेकडाउन देखाउँछ:
      • प्रकार कोड र यसको अर्थ
      • DNI नम्बर
      • मान्यता अंक

प्रयोगका केसहरू

विकास र परीक्षण

  1. सफ्टवेयर विकास: अर्जेन्टिनाका कर पहिचानको ह्यान्डल गर्ने अनुप्रयोगहरूको परीक्षणका लागि मान्य CUIT/CUIL नम्बरहरू उत्पन्न गर्नुहोस्, जस्तै:

    • ई-वाणिज्य प्लेटफर्महरू
    • लेखा सफ्टवेयर
    • HR व्यवस्थापन प्रणालीहरू
    • सरकारी सेवा पोर्टलहरू
    • बैंकिङ अनुप्रयोगहरू
  2. डाटाबेस जनसंख्या: अर्जेन्टिनाका प्रयोगकर्ता जानकारीको भण्डारण गर्ने प्रणालीहरूको लागि यथार्थपरक परीक्षण डाटा सिर्जना गर्नुहोस्, सुनिश्चित गर्दै कि डाटाबेस प्रतिबन्ध र मान्यताका नियमहरू सही रूपमा काम गर्छन्।

  3. फर्म मान्यता परीक्षण: CUIT/CUIL जानकारी संकलन गर्ने वेब फर्महरूको इनपुट मान्यताको परीक्षण गर्नुहोस्, अमान्य प्रविष्टिहरूको लागि उचित त्रुटि सन्देशहरू प्रकट हुने सुनिश्चित गर्दै।

  4. API परीक्षण: CUIT/CUIL नम्बरहरू आवश्यक पर्ने API अन्तिम बिन्दुहरूको लागि मान्य पेलोडहरू उत्पन्न गर्नुहोस्, सुनिश्चित गर्दै कि तपाईंको एकीकरण परीक्षणहरूले मान्य डाटा प्रयोग गर्छ।

  5. QA स्वचालन: स्वचालित परीक्षण स्क्रिप्टहरूमा CUIT/CUIL उत्पन्न गर्न समावेश गर्नुहोस् ताकि स्थिर परीक्षण डाटाको सट्टा गतिशील परीक्षण केसहरू सिर्जना गर्न सकियोस्।

शैक्षिक उद्देश्य

  1. मान्यता एल्गोरिदम सिक्न: CUIT/CUIL मान्यता प्रक्रियालाई कार्यान्वयनमा देखेर चेक अंक एल्गोरिदमहरू कसरी काम गर्छन् भन्ने बुझ्न।

  2. डाटा मान्यता शिक्षण: नयाँ विकासकर्ताहरूलाई फर्म मान्यता प्रविधिहरू सिकाउने क्रममा शैक्षिक उदाहरणको रूपमा प्रयोग गर्नुहोस्।

  3. अर्जेन्टिनाका व्यवसाय आवश्यकताहरू बुझ्न: अन्तर्राष्ट्रिय व्यवसाय विकासका लागि अर्जेन्टिनामा प्रयोग हुने पहिचान प्रणालीको बारेमा जान्नुहोस्।

विकल्पहरू

हाम्रो उपकरणले CUIT/CUIL नम्बरहरू उत्पन्न र मान्यता दिनको लागि सीधा तरिका प्रदान गर्दछ, तर तपाईंले विचार गर्न सक्ने वैकल्पिक दृष्टिकोणहरू छन्:

  1. आधिकारिक सरकार मान्यता: उत्पादन वातावरणका लागि, CUIT/CUIL नम्बरहरूलाई सम्भव भएसम्म आधिकारिक AFIP (Administración Federal de Ingresos Públicos) डाटाबेससँग मान्यता दिनुहोस्।

  2. पुस्तकालय र प्याकेजहरू: विभिन्न प्रोग्रामिङ भाषाहरूमा विशेष रूपमा अर्जेन्टिनाका कर ID मान्यताका लागि पुस्तकालयहरू छन्:

    • JavaScript: validar-cuit npm प्याकेज
    • PHP: afip-php पुस्तकालय
    • Python: py-cuit प्याकेज
  3. हातले गणना गर्नुहोस्: शैक्षिक उद्देश्यका लागि, माथि वर्णित एल्गोरिदम प्रयोग गरेर मान्यता अंकलाई हातले गणना गर्न सक्नुहुन्छ।

  4. व्यापक व्यवसाय मान्यता सेवाहरू: उद्यम अनुप्रयोगहरूको लागि, ढाँचा मात्र जाँच गर्ने होइन, CUIT/CUIL सँग सम्बन्धित संस्थाको अस्तित्व र स्थिति पनि मान्यता दिने व्यापक सेवाहरू प्रयोग गर्ने विचार गर्नुहोस्।

CUIT/CUIL प्रणालीको इतिहास

अर्जेन्टिनामा CUIT/CUIL पहिचान प्रणालीले यसको सुरुवातदेखि महत्वपूर्ण विकास गरेको छ:

उत्पत्ति र कार्यान्वयन

CUIT (Clave Única de Identificación Tributaria) पहिलो पटक १९७० को दशकमा अर्जेन्टिनामा परिचय गराइएको थियो जसले कर संकलन प्रणालीलाई आधुनिकीकरण गर्ने प्रयासको हिस्सा हो। संघीय सार्वजनिक राजस्व प्रशासन (AFIP) ले यो अनन्य पहिचानकर्ता कार्यान्वयन गर्यो जसले करदाता ट्र्याक गर्नको लागि अधिक प्रभावकारी तरिका प्रदान गर्यो र कर चोराईलाई घटायो।

CUIL (Clave Única de Identificación Laboral) पछि श्रमिकहरूलाई सामाजिक सुरक्षा प्रणालीमा विशेष रूपमा पहिचान गर्नको लागि परिचय गराइएको थियो, जसले कर पहिचान र श्रम पहिचान बीचको भिन्नता सिर्जना गर्यो भने ढाँचा स्थिर राख्यो।

विकास र डिजिटलाइजेशन

१९९० को दशकमा, जब अर्जेन्टिना महत्वपूर्ण आर्थिक सुधारहरूमा संलग्न थियो, CUIT/CUIL प्रणालीले आर्थिक गतिविधि ट्र्याक गर्न महत्त्वपूर्ण भूमिका खेल्न थाल्यो। प्रणाली थप डिजिटलाइज गरिएको थियो, र अनलाइन मान्यता प्रणालीहरू कार्यान्वयन गरिएका थिए।

२००० को दशकको प्रारम्भमा CUIT/CUIL प्रणालीलाई विभिन्न डिजिटल सरकारी सेवाहरूमा एकीकृत गरियो, जसले अर्जेन्टिनाको ई-सरकारी पहिल्याइमा महत्त्वपूर्ण घटकको रूपमा काम गर्यो। यस अवधिमा मान्यता एल्गोरिदम र ढाँचाको मानकीकरण पनि गरियो जुन आजको दिनसम्म प्रयोगमा छ।

हालका विकासहरू

हालका वर्षहरूमा, AFIP ले CUIT/CUIL नम्बरहरूको लागि सुरक्षा र मान्यता प्रक्रियाहरूलाई सुधार गरिरहेको छ, अधिक जटिल मान्यता प्रणालीहरू कार्यान्वयन गर्दै र अन्य सरकारी डाटाबेसहरूसँग एकीकरण गर्दै। प्रणाली अब अर्जेन्टिनाको कर चोराईसँग लड्न र अर्थतन्त्रलाई औपचारिक बनाउनका लागि महत्त्वपूर्ण भूमिका खेल्दछ।

आज, CUIT/CUIL केवल कर र रोजगारको उद्देश्यका लागि मात्र प्रयोग हुँदैन, तर बैंकिङ, सम्पत्ति लेनदेन, उपयोगिता सेवाहरू, र अनलाइन खरिदहरू सहितका गतिविधिहरूको लागि अनन्य पहिचानकर्ता बनाउँछ, जसले अर्जेन्टिनामा सञ्चालन गर्ने व्यक्तिहरू र व्यवसायहरूको लागि अनिवार्य बनाउँछ।

कोड उदाहरणहरू

Python

1def calculate_verification_digit(type_code, dni):
2    # स्ट्रिङमा रूपान्तरण गर्नुहोस् र सुनिश्चित गर्नुहोस् कि DNI ८ अंकको हो जसमा अग्रणी शून्यहरू छन्
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"Invalid type code. Must be one of: {valid_type_codes}")
34    
35    # DNI प्रदान नगरेको खण्डमा यादृच्छिक 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, "Invalid format"
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, "Invalid type code"
62    
63    # गणना गरिएको मान्यता अंकको तुलना गर्नुहोस्
64    calculated_digit = calculate_verification_digit(type_code, dni)
65    if calculated_digit != verification_digit:
66        return False, "Invalid verification digit"
67    
68    return True, "Valid 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

JavaScript

1function calculateVerificationDigit(typeCode, dni) {
2  // स्ट्रिङमा रूपान्तरण गर्नुहोस् र सुनिश्चित गर्नुहोस् कि DNI ८ अंकको हो जसमा अग्रणी शून्यहरू छन्
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(`Invalid type code. Must be one of: ${validTypeCodes.join(', ')}`);
37  }
38  
39  // DNI प्रदान नगरेको खण्डमा यादृच्छिक 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: 'Invalid format' };
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: 'Invalid type code' };
69  }
70  
71  // गणना गरिएको मान्यता अंकको तुलना गर्नुहोस्
72  const calculatedDigit = calculateVerificationDigit(typeCode, dni);
73  if (calculatedDigit !== verificationDigit) {
74    return { isValid: false, errorMessage: 'Invalid verification digit' };
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

Java

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 ८ अंकको हो जसमा अग्रणी शून्यहरू छन्
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("Invalid type code. Must be one of: " + VALID_TYPE_CODES);
39        }
40        
41        // DNI प्रदान नगरेको खण्डमा यादृच्छिक 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, "Invalid format");
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, "Invalid type code");
71        }
72        
73        // गणना गरिएको मान्यता अंकको तुलना गर्नुहोस्
74        int calculatedDigit = calculateVerificationDigit(typeCode, dni);
75        if (calculatedDigit != verificationDigit) {
76            return new ValidationResult(false, "Invalid verification digit");
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 ८ अंकको हो जसमा अग्रणी शून्यहरू छन्
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("Invalid type code. Must be one of: " . implode(', ', $validTypeCodes));
39    }
40    
41    // DNI प्रदान नगरेको खण्डमा यादृच्छिक 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' => 'Invalid format'];
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' => 'Invalid type code'];
71    }
72    
73    // गणना गरिएको मान्यता अंकको तुलना गर्नुहोस्
74    $calculatedDigit = calculateVerificationDigit($typeCode, $dni);
75    if ($calculatedDigit !== $verificationDigit) {
76        return ['isValid' => false, 'errorMessage' => 'Invalid verification digit'];
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) विशेष रूपमा श्रमिकहरूका लागि हो र श्रम र सामाजिक सुरक्षा उद्देश्यका लागि प्रयोग गरिन्छ। जबकि तिनीहरू एउटै ढाँचा र गणना एल्गोरिदम साझा गर्छन्, तिनीहरू विभिन्न प्रशासनिक उद्देश्यहरूका लागि सेवा गर्छन्।

कुन प्रकार कोडहरू व्यक्तिहरूका लागि र कुन कम्पनीहरूको लागि प्रयोग गरिन्छ?

व्यक्तिहरूका लागि:

  • २०, २३, २४: पुरुष व्यक्तिहरू (CUIL)
  • २७: महिला व्यक्तिहरू (CUIL)

कम्पनीहरू र संस्थाहरूका लागि:

  • ३०: निगम (CUIT)
  • ३३: नागरिक संघ (CUIT)
  • ३४: फाउन्डेशन (CUIT)

मान्यता अंक कसरी गणना गरिन्छ?

मान्यता अंक तौलित योग एल्गोरिदम प्रयोग गरेर गणना गरिन्छ। पहिलो १० अंकलाई सम्बन्धित तौल (५, ४, ३, २, ७, ६, ५, ४, ३, २) संग गुणा गरिन्छ, र नतिजाहरूको योग गरिन्छ। मान्यता अंक ११ बाट यस योगको बाँकी भागलाई ११ ले भाग गर्दा प्राप्त हुने बाँकी घटाएर प्राप्त हुन्छ। विशेष केसहरू: यदि परिणाम ११ हो भने, मान्यता अंक ० हो; यदि परिणाम १० हो भने, मान्यता अंक ९ हो।

के म यो उपकरणलाई वास्तविक, आधिकारिक CUIT/CUIL नम्बरहरू उत्पन्न गर्न प्रयोग गर्न सक्छु?

होइन, यो उपकरण परीक्षण र शैक्षिक उद्देश्यका लागि मात्र डिजाइन गरिएको हो। उत्पन्न गरिएका नम्बरहरू CUIT/CUIL गणितीय रूपमा मान्य छन् तर अर्जेन्टिनाका कर प्राधिकरण (AFIP) सँग आधिकारिक रूपमा दर्ता गरिएको छैन। आधिकारिक CUIT/CUIL दर्ताका लागि, व्यक्तिहरू र कम्पनीहरूले AFIP मार्फत उचित कानूनी प्रक्रियाहरू अनुसरण गर्नुपर्छ।

किन मेरो CUIT/CUIL मान्यता असफल हुन्छ जबकि ढाँचा सही देखिन्छ?

मान्यता विभिन्न कारणहरूले असफल हुन सक्छ:

  1. प्रकार कोड मान्य कोडहरू (२०, २३, २४, २७, ३०, ३३, ३४) मध्ये एक होइन
  2. मान्यता अंक गणना गरिएको मानसँग मेल खाँदैन
  3. ढाँचा गलत छ (XX-XXXXXXXX-X हुनुपर्छ)
  4. इनपुटमा गैर-गणितीय वर्णहरू छन् (हाइफेनहरू बाहेक)

CUIT/CUIL नम्बरमा के हाइफेनहरू आवश्यक छन्?

जबकि CUIT/CUIL नम्बरहरू सामान्यतया हाइफेन सहित लेखिन्छन् र देखाइन्छ (XX-XXXXXXXX-X), हाइफेनहरू गणनाको लागि वास्तविक नम्बरको भाग होइन। हाम्रो मान्यता उपकरणले दुवै ढाँचाहरू (हाइफेनसँग वा बिना) स्वीकार गर्दछ र सही रूपमा मान्यता दिनेछ।

CUIT/CUIL नम्बरमा DNI भागमा ८ अंकभन्दा कम अंक हुन सक्छ?

होइन, DNI भाग सधैं ठीक ८ अंकको हुनुपर्छ। यदि वास्तविक DNI ले कम अंकहरू छन् भने, यसलाई ८ अंकमा पुग्नका लागि अग्रणी शून्यहरू थप्नुपर्छ। उदाहरणका लागि, यदि कसैको DNI 1234567 हो भने, CUIT/CUIL मा यसलाई 01234567 को रूपमा प्रतिनिधित्व गरिनेछ।

म कसरी जान्न सक्छु कि CUIT/CUIL अर्जेन्टिनामा आधिकारिक रूपमा दर्ता गरिएको छ?

CUIT/CUIL आधिकारिक रूपमा दर्ता गरिएको र सक्रिय छ कि छैन भन्ने कुरा जाँच गर्नको लागि, तपाईंले आधिकारिक AFIP (Administración Federal de Ingresos Públicos) वेबसाइट वा सेवाहरू प्रयोग गर्नुपर्छ। हाम्रो उपकरणले नम्बरको गणितीय मान्यता मात्र जाँच गर्छ, यसको आधिकारिक दर्ता स्थिति होइन।

के म यो उपकरणलाई मेरो व्यावसायिक अनुप्रयोगमा प्रयोग गर्न सक्छु?

हो, तपाईं यस उपकरणमा प्रदर्शित गरिएको एल्गोरिदम र तर्कलाई तपाईंको व्यावसायिक अनुप्रयोगहरूमा समावेश गर्न सक्नुहुन्छ। CUIT/CUIL मान्यता एल्गोरिदम सार्वजनिक मानक हो। यद्यपि, उत्पादन वातावरणका लागि, हामीले उचित त्रुटि व्यवस्थापन कार्यान्वयन गर्न र आवश्यक परेमा आधिकारिक स्रोतहरूसँग थप मान्यता विचार गर्न सिफारिस गर्छौं।

के उपकरणले उत्पन्न वा मान्यता दिइएका CUIT/CUIL नम्बरहरू मध्ये कुनै पनि भण्डारण गर्छ?

होइन, यो उपकरणले कुनै पनि जानकारी भण्डारण गर्दैन। सबै प्रक्रिया तपाईंको ब्राउजरमा क्लाइन्ट-साइडमा गरिन्छ, र कुनै पनि डाटा हाम्रो सर्भरहरूमा पठाइँदैन वा भण्डारण हुँदैन। यसले तपाईंले प्रविष्ट गरेको कुनै पनि जानकारीको गोपनीयता र सुरक्षा सुनिश्चित गर्दछ।

सन्दर्भहरू

  1. AFIP (Administración Federal de Ingresos Públicos). "CUIT/CUIL/CDI." आधिकारिक वेबसाइट। https://www.afip.gob.ar/

  2. Ministerio de Trabajo, Empleo y Seguridad Social. "CUIL - Clave Única de Identificación Laboral." https://www.argentina.gob.ar/trabajo

  3. ANSES (Administración Nacional de la Seguridad Social). "Obtener mi CUIL." https://www.anses.gob.ar/

  4. Boletín Oficial de la República Argentina. "Resolución General AFIP 2854/2010: Procedimiento. Clave Única de Identificación Tributaria (C.U.I.T.)."

  5. Código Fiscal de la República Argentina. "Identificación y Registro de Contribuyentes."


अर्जेन्टिनाका CUIT/CUIL नम्बरहरू उत्पन्न गर्न वा मान्यता दिनको लागि तयार हुनुहुन्छ? हाम्रो उपकरण अहिले प्रयास गर्नुहोस् र तपाईंको परीक्षण प्रक्रियालाई सरल बनाउनुहोस्!

🔗

સંબંધિત ટૂલ્સ

તમારા કાર્યપ્રવાહ માટે ઉપયોગી હોઈ શકે એવા વધુ ટૂલ્સ શોધો