delphi4arab منتديات دلفي للعرب

نسخة كاملة : بخصوص رقم الضمان الاجتماعي
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
تحية طيبة وبعد
هل يمكن انشاء رقم الضمان الاجتماعي برمجيا اعتمادا على شهادة الميلاد ؟ علما انه مكون من 12 رقم
حيث 6 الارقام الاولى متكونة من رقمين لتاريخ الازدياد و الاربع لرقم شهادة الميلاد 
مثلا 660017000000 

واحتمال ان يكون الرقمين الاخيرين مفتاح  لاكن كيف يتم توليد 4 ارقام لا اضن الامر عشوائي

على ما اعتقد الارقام المتبقية يتم توليدها عند الضمان الاجتماعي
شيئ مثل عداد inc auto
تحتاج لشخص يعمل عندهم للخبر اليقين
[attachment=3972]
احتمال وارد
هذه طريقة حساب المفتاح
السلام عليكم
لكن من أين جاءت الأرقام 0009 بعد رقم عقد الميلاد لكي تستخرج المفتاح
عموما جربت القاعدة على رقم ضمان ولم أجد نفس النتيجة..
السلام عليكم
الدالة حسب فهمي للخوارزمية ان لم اكن مخطأ
PHP كود :
function CalculCleNss(const NSS: string): Integer;
const
 
 AConst: Integer = 99;
var
 
 I, X1, X2, N: Integer;
begin
  X1 
:= 0;
 
 X2 := 0;
 
 for I := 1 to 10 do
 
 begin
    N  
:= StrToInt(NSS[I]);
 
   if Odd(I) then
       X2 
:= X2 + N * 2
    else
       X1 
:= X1 + N;
 
 end;
 
 Result := 99 - (X1 + X2);
end; 
(29-04-2019, 05:09 PM)S.FATEH كتب : [ -> ]السلام عليكم
الدالة حسب فهمي للخوارزمية ان لم اكن مخطأ
PHP كود :
function CalculCleNss(const NSS: string): Integer;
const
 
 AConst: Integer = 99;
var
 
 I, X1, X2, N: Integer;
begin
  X1 
:= 0;
 
 X2 := 0;
 
 for I := 1 to 10 do
 
 begin
    N  
:= StrToInt(NSS[I]);
 
   if Odd(I) then
       X2 
:= X2 + N * 2
    else
       X1 
:= X1 + N;
 
 end;
 
 Result := 99 - (X1 + X2);
end; 
مشكور اخي العزيز
الدالة لحساب المفتاح اخر رقمين وتستخدم للتاكد من صحة الرقم
لا معنى لرقم عقد الميلاد والسنة إذا كان غير مقرون برقم الولاية ورقم البلدية هذا ضروري لكي لا يقع تكرار