تحليل قاعدة بيانات موظفين ورواتب
#21
السلام عليكم
اين مشكلتك اخ فريد
لأستهلنّ الصعب أو أدرك المنى    فما انقادت الآمال إلاّ لصابر
الرد
#22
أحد المشاكل :

C'est quoi une rubrique de paye ?
من قال حاد عن أصله أو قال مات فقد كذب
الرد
#23
(08-06-2018, 05:35 PM)h-farid كتب : C'est quoi une rubrique de paye ?
سطر في كشف الراتب
مبلغ يتم اضافته أو إنقاصه
رَبَّنَا اغْفِرْ لِي وَلِوَالِدَيَّ وَلِلْمُؤْمِنِينَ يَوْمَ يَقُومُ الْحِسَابُ
الرد
#24
رأيت في PC Paye من DLG
999 rubriques
كيف تبرمج؟ هل لها صفات مشتركة ؟ أم أنها كل واحدة على حدى ؟
من قال حاد عن أصله أو قال مات فقد كذب
الرد
#25
بعد تجربتي مع المنظومة وجدتها أبسط مما كنت اتخيل .
تتمحور كل المنظومة في ثلاث عمليات رئيسية .
[صورة: 97d311c887fce36.jpg]
حفظ بيانات الموظف من راتب وعلاوات وخصميات ومعالجتها في الزيادة والنقصان تم كل شهر يتم تمرير هذه البيانات الى جدول لحفظها بتواريخها وتمر على المتغيرات المثمتلة في مقدار الخصميات والعلاوات حسب القوانين المعمول بها في البلد تم تحويلها الى تقارير من هذا الجدول النهائي .
تبقى الجزئيات في كيفية معالجة هذه البيانات بحسب كل بلد وحسب قوانينها شئ يعود للمستخدم .
قل: اللهم فاطِرَ السماوات والأرض عالم الغيبِ والشهادة، ربَّ كُلِّ شَيءٍ ومَلِيكَه، أَشْهد أن لا إله إلا أنت، أعوذ بك من شرِّ نفسي وشرِّ الشيطان وشِرْكِهِ وأن أقترف على نفسي سوءًا أو أجرُّه إلى مسلم
الرد
#26
هناك جزئية توقفت عندها من يوم امس افكر في افضل طريقة لفعلها واريد رأيكم فيها

هناك موظفين منقطعين عن العمل يتم ايقاف مرتباتهم ، وتستمر المنظومة في ادراج مرتبات المستمرين في العمل ولكن قد يحدث ان يعود الموظف للعمل مع عذر شرعي .
وهذا يلزم ان يتم انزال مرتباته في الشهر القادم .
مثلا نحن الان في شهر 6 شهر 7 القادم المفترض ان يتم انزال مرتباته لشهر 6 وشهر 5 وشهر 4 مع شهر 7 .
في المنظومة القديمة التي تخربط الحسابات كان هناك نافذة باسم مرتبات مستحقة تدخل لها وتضيف منها رقم الشهر والسنة .
ويتم اضافتها عند اجراء مرتبات الشهر القادم .
طبعا يبدوا انها تضيفهم في جدول منفصل يتم حذف محتوياته بمجرد انشاء المرتبات في نهاية الشهر
انا فكرت ان اقوم بانزال مرتبات حتى المنقطعين عن العمل ولكن لا يتم احتسابها في التقارير التي يتم احالتها الى المحاسب او المصرف .
وبحال الرغبة في ادراج هذه المرتبات يدخل المستخدم على الجدول ويحدد الشهر والسنة لهذه المرتب اداة CheckBox لتفهم جملة الاستعلام ان هذه الشهور مطلوبة مثلا .
وبذلك لا داعي الى جدول فرعي ولا الى اعادة تحديث بيانات تنزيل المرتبات
قل: اللهم فاطِرَ السماوات والأرض عالم الغيبِ والشهادة، ربَّ كُلِّ شَيءٍ ومَلِيكَه، أَشْهد أن لا إله إلا أنت، أعوذ بك من شرِّ نفسي وشرِّ الشيطان وشِرْكِهِ وأن أقترف على نفسي سوءًا أو أجرُّه إلى مسلم
[-] كل من 1 user says قال شكرا ل Delphi4Us على المشاركة المفيدة
  • Bachirsoft
الرد
#27
بالنسبة الى هذا النوع من المنظومات افضل طريقة وجدتها لها هي تجزئة العمل
فما هو ناحية قواعد البيانات يترك لقواعد البيانات اضافة وتعديل وحسابات وخصوصا الحسابات وعمليات التحقق واستعلامات التقارير وما شابه
ويترك الدلفي للواجهات فقط والتنسيق بين الواجهة وبين قاعدة البيانات
في المنظومات الغير حسابية والتي لا تحتاج الى عمليات كثير ربما الدمج بمكان واحد يكون امر عادي
ولكن هنا سيكون خربطة وكارثة كبيرة
قل: اللهم فاطِرَ السماوات والأرض عالم الغيبِ والشهادة، ربَّ كُلِّ شَيءٍ ومَلِيكَه، أَشْهد أن لا إله إلا أنت، أعوذ بك من شرِّ نفسي وشرِّ الشيطان وشِرْكِهِ وأن أقترف على نفسي سوءًا أو أجرُّه إلى مسلم
الرد
#28
يبدوا انني بصدد الحصول على ابن جديد ، ارجوا ان يكون ولدا صالحا ومباركا .
[صورة: 14307f91052d23d.jpg]
ولكنه اكثر ولد تعقيدا قمت بانجابه سيكون .
من الصعب جدا ان تعمل على كل الاتجاهات تفكر في الكود وكذلك في كيفية جعل البرنامج سهلا والشاشة بسيطة .
ويجب ان يكون حساب المرتب هنا وليس هنا ، ولماذا يجب علي ان اضع الغياب هنا وليس هنا .
وهل يجب ان يكون مجموع الاساسي بخط اكبر من الخطوط الاخرى .
وهل سيعمل Producer  الاضافة دائما بشكل طبيعي .
وهل استخدم View هنا ام الافضل ان يكون Producer  
سيتعبني هذا الولد
قل: اللهم فاطِرَ السماوات والأرض عالم الغيبِ والشهادة، ربَّ كُلِّ شَيءٍ ومَلِيكَه، أَشْهد أن لا إله إلا أنت، أعوذ بك من شرِّ نفسي وشرِّ الشيطان وشِرْكِهِ وأن أقترف على نفسي سوءًا أو أجرُّه إلى مسلم
الرد
#29
السلام عليكم ورحمة الله

كما قلت لكم انني بنهاية المنظومة سوف احتاج الى سؤالين او ثلاث في استعلامات معقدة
الاستعلامات المعقدة لا مشكلة فيها مرت بسلام و ضبطتها بدون اي مشاكل
المشكلة الان انني صممت اجراء مخزن بقاعدة البيانات لاضافة مرتبات الموظفين وعندما اشغله من قاعدة البيانات يعمل ويظيف كل الموظفين بجدول المرتبات ولكن عندما قمت يتنفيذه من البرنامج EXEProc يقوم فقط باظافة موظف واحد فقط بالاحرى الموظف الاول ويتوقف
ما الذي فاتني في هذا
بالنسبة الى الاجراء هاهو هنا .

PHP كود :
begin
 
   
      
  for select
  morateb
.id,  morateb.alawanaw, morateb.degernaw, morateb.tameez,
 
 morateb.fmkafa2, morateb.absent,  morateb.mcase, morateb.kanon,
 
 coalesce(morateb.ohter_alawa,0),  coalesce(morateb.other_kasm,0)
 
 from morateb
   into
    
:ID, :ALAWANAW, :DEGERNAW, :TAMEEZ, :FMKAFA2, :absent, :MCASE,
 
   :kanon, :ohter_alawa,  :other_kasm 
   
     
do
 
   begin
    EXECUTE PROCEDURE PROC_GETASASY
(DEGERNAW,kanon,ALAWANAW) returning_values (:ASASY);
 
   EXECUTE PROCEDURE PROC_MKAFA (ID) returning_values (:Getmkafa);
 
   EXECUTE PROCEDURE PROC_GETDAMAN (ASASY) returning_values (:DAMAN,:TADAMN,:JHAD);
 
   insert into fcheck
      
(
 
   fcheck.chahr, fcheck.darga, fcheck.alawa,  fcheck.asasy,
 
   fcheck.tameez, fcheck.fmkafa, fcheck.fmkafa2,  fcheck.absent,
 
   fcheck.daman, fcheck.tadamn, fcheck.jhad, fcheck.ohter_alawa,
 
   fcheck.other_kasm,  fcheck.mcase,  fcheck.TARHEL, fcheck.mindex
      
)
 
     values 
      
(
 
      cast(:SENDDATE as date), :DEGERNAW,coalesce(:ALAWANAW,0),
 
      :ASASY , coalesce(:TAMEEZ,0), coalesce(:Getmkafa,0),
 
      coalesce(:FMKAFA2,0), coalesce(:absent,0), :DAMAN, :TADAMN,
 
      :JHAD, coalesce(:OHTER_ALAWA,0), coalesce(:other_kasm,0), :MCASE,
 
      0, :ID
      
) ;

 
   
      suspend
;

 
   end

  
  
end 


كما قلت من قاعدة البيانات يعمل بشكل طبيعي ولكن لزيادة الشرح لعل فيه Bugs او ملاحظة
هنا اقوم بقراءة بعض الحقول المطلوبة ووضعها بمتغيرات Out
PHP كود :
 
  for select
  morateb
.id,  morateb.alawanaw, morateb.degernaw, morateb.tameez,
 
 morateb.fmkafa2, morateb.absent,  morateb.mcase, morateb.kanon,
 
 coalesce(morateb.ohter_alawa,0),  coalesce(morateb.other_kasm,0)
 
 from morateb
   into
    
:ID, :ALAWANAW, :DEGERNAW, :TAMEEZ, :FMKAFA2, :absent, :MCASE,
 
   :kanon, :ohter_alawa,  :other_kasm 


هنا احسب قيمة المرتب والخصميات والعلاوات والمكافأت في اجراءات فرعية واستقبالها بمتغيرات طبعا تعتمد على الاستعلام Select السابق
حتى الان مرحلة اعداد البيانات فقط

PHP كود :
EXECUTE PROCEDURE PROC_GETASASY(DEGERNAW,kanon,ALAWANAW) returning_values (:ASASY);
 
   EXECUTE PROCEDURE PROC_MKAFA (ID) returning_values (:Getmkafa);
 
   EXECUTE PROCEDURE PROC_GETDAMAN (ASASY) returning_values (:DAMAN,:TADAMN,:JHAD); 

بعد الانتهاء من تحظير كل القيم المطلوبة يتم اضافتها بجدول المرتبات

PHP كود :
insert into fcheck
      
(
 
   fcheck.chahr, fcheck.darga, fcheck.alawa,  fcheck.asasy,
 
   fcheck.tameez, fcheck.fmkafa, fcheck.fmkafa2,  fcheck.absent,
 
   fcheck.daman, fcheck.tadamn, fcheck.jhad, fcheck.ohter_alawa,
 
   fcheck.other_kasm,  fcheck.mcase,  fcheck.TARHEL, fcheck.mindex
      
)
 
     values 
      
(
 
      cast(:SENDDATE as date), :DEGERNAW,coalesce(:ALAWANAW,0),
 
      :ASASY , coalesce(:TAMEEZ,0), coalesce(:Getmkafa,0),
 
      coalesce(:FMKAFA2,0), coalesce(:absent,0), :DAMAN, :TADAMN,
 
      :JHAD, coalesce(:OHTER_ALAWA,0), coalesce(:other_kasm,0), :MCASE,
 
      0, :ID
      
) ; 
قل: اللهم فاطِرَ السماوات والأرض عالم الغيبِ والشهادة، ربَّ كُلِّ شَيءٍ ومَلِيكَه، أَشْهد أن لا إله إلا أنت، أعوذ بك من شرِّ نفسي وشرِّ الشيطان وشِرْكِهِ وأن أقترف على نفسي سوءًا أو أجرُّه إلى مسلم
الرد
#30
السلام عليكم
ممكن اجراء دلفي ...
و لرب نازلة يضيق لها الفتى ذرعا و عند الله منها المخرج
ضاقت فلما استحكمت حلقاتها فرجت و كنت اضنها لا تفرج
[-] كل من 1 user says قال شكرا ل S.FATEH على المشاركة المفيدة
  • Delphi4Us
الرد


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم