delphi4arab منتديات دلفي للعرب
بخصوص رقم الضمان الاجتماعي - نسخة قابلة للطباعة

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3)
+--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15)
+--- الموضوع : بخصوص رقم الضمان الاجتماعي (/showthread.php?tid=10175)



بخصوص رقم الضمان الاجتماعي - onexite - 29-04-2019

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

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


RE: بخصوص رقم الضمان الاجتماعي - محمد عبد العزيز - 29-04-2019


على ما اعتقد الارقام المتبقية يتم توليدها عند الضمان الاجتماعي
شيئ مثل عداد inc auto
تحتاج لشخص يعمل عندهم للخبر اليقين



RE: بخصوص رقم الضمان الاجتماعي - onexite - 29-04-2019


.png   calucc10.png (الحجم : 16.47 ك ب / التحميلات : 36)
احتمال وارد
هذه طريقة حساب المفتاح


RE: بخصوص رقم الضمان الاجتماعي - لؤي - 29-04-2019

السلام عليكم
لكن من أين جاءت الأرقام 0009 بعد رقم عقد الميلاد لكي تستخرج المفتاح
عموما جربت القاعدة على رقم ضمان ولم أجد نفس النتيجة..


RE: بخصوص رقم الضمان الاجتماعي - S.FATEH - 29-04-2019

السلام عليكم
الدالة حسب فهمي للخوارزمية ان لم اكن مخطأ
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; 



RE: بخصوص رقم الضمان الاجتماعي - onexite - 29-04-2019

(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; 
مشكور اخي العزيز
الدالة لحساب المفتاح اخر رقمين وتستخدم للتاكد من صحة الرقم


RE: بخصوص رقم الضمان الاجتماعي - delphi17 - 01-05-2019

لا معنى لرقم عقد الميلاد والسنة إذا كان غير مقرون برقم الولاية ورقم البلدية هذا ضروري لكي لا يقع تكرار