آزمائش کے لیے درست ارجنٹائن کے CUIT/CUIL نمبر تیار کریں یا موجودہ نمبر کی توثیق کریں۔ ارجنٹائن کے ٹیکس اور مزدوری کی شناختی نمبروں کے ساتھ کام کرنے والے ڈویلپرز کے لیے سادہ ٹول۔
8 ہندسوں کا DNI نمبر درج کریں یا تصادفی جنریٹر استعمال کریں
ارجنٹائن کا 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 نمبر 11 ہندسوں پر مشتمل ہوتا ہے جو عام طور پر اس شکل میں دکھایا جاتا ہے XX-XXXXXXXX-X:
قسم کا کوڈ (پہلے 2 ہندسے): ادارے کی قسم کی نشاندہی کرتا ہے
DNI نمبر (درمیانی 8 ہندسے): افراد کے لیے، یہ ان کا قومی شناختی دستاویز نمبر (DNI) ہوتا ہے، اگر ضرورت ہو تو 8 ہندسوں تک پہنچنے کے لیے آگے صفر کے ساتھ بھرا جاتا ہے۔ کمپنیوں کے لیے، یہ ایک منفرد تفویض کردہ نمبر ہوتا ہے۔
تصدیقی ہندسہ (آخری ہندسہ): ایک چیک ہندسہ جو ایک مخصوص الگورڈم کا استعمال کرتے ہوئے حساب کیا جاتا ہے تاکہ پورے نمبر کی تصدیق کی جا سکے۔
تصدیقی ہندسہ درج ذیل الگورڈم کا استعمال کرتے ہوئے حساب کیا جاتا ہے:
ریاضی کے لحاظ سے، یہ اس طرح بیان کیا جا سکتا ہے:
جہاں:
ٹول انٹرفیس کے اوپر "جنریٹر" ٹیب کا انتخاب کریں۔
ڈراپ ڈاؤن مینو سے ایک قسم کا کوڈ منتخب کریں:
ایک DNI نمبر درج کریں (اختیاری):
بے ترتیب DNI پیدا کریں (اختیاری):
جنریٹ کردہ CUIT/CUIL دیکھیں:
نتیجہ کاپی کریں:
ٹول انٹرفیس کے اوپر "ویلیڈیٹر" ٹیب کا انتخاب کریں۔
تصدیق کرنے کے لیے CUIT/CUIL درج کریں:
"ویلیڈیٹ" بٹن پر کلک کریں:
تصدیق کے نتیجے کو دیکھیں:
اضافی معلومات:
سافٹ ویئر کی ترقی: ارجنٹائن کے ٹیکس کی شناخت کو سنبھالنے والی ایپلیکیشنز کی جانچ کے لیے درست CUIT/CUIL نمبروں کو جنریٹ کریں، جیسے:
ڈیٹا بیس کی آبادی: ان نظاموں کے لیے حقیقت پسندانہ ٹیسٹ ڈیٹا بنائیں جو ارجنٹائن کے صارف کی معلومات کو ذخیرہ کرتے ہیں، یہ یقینی بناتے ہوئے کہ ڈیٹا بیس کی پابندیاں اور تصدیقی قواعد درست طریقے سے کام کرتے ہیں۔
فارم کی تصدیق کی جانچ: ویب فارم کی ان پٹ کی تصدیق کی جانچ کریں جو CUIT/CUIL معلومات جمع کرتی ہیں، یہ تصدیق کرتے ہوئے کہ غلط اندراجات کے لیے مناسب غلطی کے پیغامات ظاہر ہوتے ہیں۔
API کی جانچ: API کے اختتامی نکات کے لیے درست پیلوڈز جنریٹ کریں جو CUIT/CUIL نمبروں کی ضرورت ہوتی ہے، یہ یقینی بناتے ہوئے کہ آپ کے انضمام کی جانچ درست ڈیٹا کا استعمال کرتی ہے۔
QA خودکار: خودکار ٹیسٹ اسکرپٹس میں CUIT/CUIL کی تخلیق کو شامل کریں تاکہ متحرک ٹیسٹ کیسز بنائے جا سکیں بجائے اس کے کہ جامد ٹیسٹ ڈیٹا کا استعمال کیا جائے۔
تصدیق کے الگورڈمز کا سیکھنا: یہ سمجھیں کہ چیک ہندسہ الگورڈمز عملی طور پر کیسے کام کرتے ہیں جب CUIT/CUIL کی تصدیق کے عمل کو دیکھتے ہیں۔
ڈیٹا کی تصدیق کی تعلیم دینا: نئے ڈویلپرز کو فارم کی تصدیق کی تکنیک سکھانے کے لیے ایک تعلیمی مثال کے طور پر استعمال کریں۔
ارجنٹائن کے کاروباری تقاضوں کو سمجھنا: بین الاقوامی کاروباری ترقی کے لیے ارجنٹائن میں استعمال ہونے والے شناختی نظام کے بارے میں سیکھیں۔
جبکہ ہمارا ٹول CUIT/CUIL نمبروں کو جنریٹ اور ویلیڈیٹ کرنے کا ایک سادہ طریقہ فراہم کرتا ہے، آپ کچھ متبادل طریقے بھی غور کر سکتے ہیں:
سرکاری حکومت کی تصدیق: پروڈکشن کے ماحول میں، ہمیشہ ممکنہ طور پر CUIT/CUIL نمبروں کی تصدیق کریں سرکاری AFIP (Administración Federal de Ingresos Públicos) ڈیٹا بیس کے خلاف۔
لائبریریاں اور پیکجز: کئی پروگرامنگ زبانوں میں خاص طور پر ارجنٹائن کے ٹیکس آئی ڈی کی تصدیق کے لیے لائبریریاں موجود ہیں:
validar-cuit
npm پیکیجafip-php
لائبریریpy-cuit
پیکیجہاتھ سے حساب: تعلیمی مقاصد کے لیے، آپ اوپر بیان کردہ الگورڈم کا استعمال کرتے ہوئے تصدیقی ہندسہ کو ہاتھ سے حساب کر سکتے ہیں۔
جامع کاروباری تصدیق کی خدمات: انٹرپرائز ایپلیکیشنز کے لیے، جامع تصدیق کی خدمات کا استعمال کرنے پر غور کریں جو صرف شکل کی جانچ نہیں کرتی بلکہ 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
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 (Clave Única de Identificación Tributaria) ٹیکس کی شناخت کے مقاصد کے لیے استعمال ہوتا ہے اور یہ ان افراد اور قانونی اداروں کو تفویض کیا جاتا ہے جنہیں ارجنٹائن میں ٹیکس ادا کرنے کی ضرورت ہوتی ہے۔ CUIL (Clave Única de Identificación Laboral) خاص طور پر کارکنوں کے لیے ہے اور یہ مزدور اور سماجی تحفظ کے مقاصد کے لیے استعمال ہوتا ہے۔ اگرچہ ان کی شکل اور حساب کا الگورڈم ایک جیسا ہے، لیکن وہ مختلف انتظامی مقاصد کے لیے کام آتے ہیں۔
افراد کے لیے:
کمپنیوں اور تنظیموں کے لیے:
تصدیقی ہندسہ ایک وزنی مجموعہ الگورڈم کا استعمال کرتے ہوئے حساب کیا جاتا ہے۔ پہلے 10 ہندسوں میں سے ہر ایک کو ایک متعلقہ وزن (5، 4، 3، 2، 7، 6، 5، 4، 3، 2) سے ضرب دیا جاتا ہے، اور نتائج کا مجموعہ لیا جاتا ہے۔ تصدیقی ہندسہ 11 میں سے اس مجموعے کے باقی کو 11 سے تقسیم کرنے کے بعد حاصل کردہ باقی کو نکال کر حاصل کیا جاتا ہے۔ خاص کیس: اگر نتیجہ 11 ہے تو تصدیقی ہندسہ 0 ہے؛ اگر نتیجہ 10 ہے تو تصدیقی ہندسہ 9 ہے۔
نہیں، یہ ٹول ٹیسٹنگ اور تعلیمی مقاصد کے لیے بنایا گیا ہے۔ جنریٹ کردہ نمبر ریاضی کے لحاظ سے درست ہیں لیکن یہ ارجنٹائن کے ٹیکس حکام (AFIP) کے ساتھ سرکاری طور پر رجسٹرڈ نہیں ہیں۔ حقیقی CUIT/CUIL رجسٹریشن کے لیے، افراد اور کمپنیوں کو AFIP کے ذریعے مناسب قانونی طریقہ کار پر عمل کرنا ہوگا۔
تصدیق کئی وجوہات کی بنا پر ناکام ہو سکتی ہے:
جبکہ CUIT/CUIL نمبروں کو عام طور پر ہائفنز کے ساتھ لکھا اور دکھایا جاتا ہے (XX-XXXXXXXX-X)، ہائفنز اصل نمبر کا حصہ نہیں ہیں۔ ہمارا ویلیڈیٹر دونوں شکلوں (ہائفنز کے ساتھ یا بغیر) کو قبول کرتا ہے اور صحیح طریقے سے کسی بھی شکل کی تصدیق کرے گا۔
نہیں، DNI کا حصہ ہمیشہ بالکل 8 ہندسوں کا ہونا چاہیے۔ اگر اصل DNI میں کم ہندسے ہیں تو اسے 8 ہندسوں تک پہنچنے کے لیے آگے صفر کے ساتھ بھرنا ہوگا۔ مثال کے طور پر، اگر کسی کا DNI 1234567 ہے، تو CUIT/CUIL میں اسے 01234567 کے طور پر ظاہر کیا جائے گا۔
یہ جانچنے کے لیے کہ آیا کوئی CUIT/CUIL سرکاری طور پر رجسٹرڈ اور فعال ہے، آپ کو سرکاری AFIP (Administración Federal de Ingresos Públicos) کی ویب سائٹ یا خدمات کا استعمال کرنا چاہیے۔ ہمارا ٹول صرف نمبر کی ریاضی کی درستگی کی تصدیق کرتا ہے، نہ کہ اس کی سرکاری رجسٹریشن کی حیثیت۔
جی ہاں، آپ اس ٹول میں دکھائے گئے الگورڈم اور منطق کو اپنے تجارتی ایپلیکیشنز میں ضم کر سکتے ہیں۔ 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: طریقہ کار۔ کلید واحد شناختی ٹیکس (C.U.I.T.)."
ارجنٹائن کے وفاقی قانون کا کوڈ. "شناخت اور ٹیکس دہندگان کا اندراج۔"
کیا آپ ارجنٹائن کے CUIT/CUIL نمبروں کو جنریٹ یا ویلیڈیٹ کرنے کے لیے تیار ہیں؟ ابھی ہمارا ٹول آزمائیں اور اپنے ٹیسٹنگ کے عمل کو آسان بنائیں!
آپ کے ورک فلو کے لیے مفید ہونے والے مزید ٹولز کا انعام کریں