اذهب الي المحتوي
أوفيسنا

الردود الموصى بها

قام بنشر

السلام عليكم ورحمة الله وبركاتة

 

اخواني كما تعلمون ان الهيئة العامة للزكاة والدخل في السعوديه

بدأت بتطبيق الفاتوره الاكترونيه على جميع التجار واصحاب المحلات التجاريه ونقاط البيع

وجعلت لهذه المرحله  مرحلتين 

الاولي

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

ولابد من وجود كود الاستجابه السريع QR CODE

ويحمل اسم المورد

رقم الاشتراك

مبلغ الضريبه

اجمالي مبلغ الفاتوره شامل الضريبة

هذي طلباتهم في الوقت الحالي

وبالنسبة لهذا الموضوع تم حله في موضوع اخونا الغالي اباجودي

جزاه الله خير وبارك فيه

https://www.officena.net/ib/topic/111831-شخابيط-وافكار-qr-code-فكرة-جديدة-☺/

وهذا شكل من اشكال الفاتوره الاكترونيه لااحد البرامج عندي

بعد مساعدة الفاضل اباجودي 

FF.png.ea4d36ef8656eb9465042676f10da40b.png

 

 

المرحلة الثانيه

بعد 13 شهر تقريبا    الهيئة العامة للزكاة والدخل في السعوديه  

راح تجبر التجار على ربط الفاتوره الاكترونيه  بموقع الهيئة العامة للزكاة والدخل   ولا بد ان الفاتوره تكون مشفره بصيغة معينه

وراح يعتمدون الفاتروه الاكترونيه بصيغة XML

مرفق لكم رابط  الدليل الارشادي للفاتوره الاكترونيه من موقع الهيئة العامة للزكاة والدخل

يمكن الاطلاع عليه وفهم المتطلبات

الدليل الارشادي للفاتوره الاكترونية

 

مصدر الدليل من موقع الهيئة العامه للزكاة والدخل

 

الموضوع المهم الان 

والحقيقه مشغل بالي من فتره

كيف يتم تطبيق المرحله الثاني مرحلة تشفير الفاتوره الاكترونيه على الاكسس

وماهو الكود المناسب لذلك

 

كثير من المبرمجين لديهم برامج معموله على الاكسس وتعمل عند عملائهم

بعد فتره اذا الاكسس لم يخدم المرحله الثانيه 

ماراح يكون فيه فايده  

وراح يخسر المبرمج عملائه 

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

 

ارجو من الجميع مناقشة حلول هذه المشكله  

حتى تعم الفائده للجميع

بارك الله فيكم وجزاكم الله خير

 

  • Like 1
قام بنشر

هذه محاول لتطبيق المرحلة الثانية

تشفير البيانات

ولكن التشفير لا يدعم العربية .. آمل من الاساتذتي الكرام  ايجاد الحلول

ايضا عنوان المؤسسة مقيد بـــ 12 حرف  آمل ايضا من اساتذتي  فك القيد

ملحوظة : حمل تطبيق الهيئة من المتجر  ( هو عبارة عن كيمرا لقراءة الكيو آر ) اسمه : E-Invoice Qr Reader

استدراك : المثال المرفق امتداد لموضوع ابو جودي هنا

DataQr.rar

  • Like 1
  • Thanks 1
قام بنشر
37 دقائق مضت, at_aziz said:

وهذا شكل من اشكال الفاتوره الاكترونيه لااحد البرامج عندي

 

للأسف هذه غير مطابقة للمواصفات

لو رجعنا الى الدليل الارشادي للمطورين ستجد بأن الأرقام لابد ان تكون هندية

image.png.82bfe64d316291149929e24ce758c4d6.png

الصحيح بأن تبدء من الآن في جدولة الأعمال

لكي تصل للنتيجة قبل الوقت المحدد !

مرفق المواصفات الفنية لقواعد البيانات و مخراجت ملف XML

الموضوع بسيط

442806521_20210528_ZATCA_Electronic_Invoice_XML_Implementation_Standard_vShared(1).pdf

  • Like 3
قام بنشر

و بما ان الموضوع مطروح للنقاش 

آمل من ان نتشارك بتطوير نظام للحصول على مخراجات المرحلة الأولى من الفاتورة الالكترونية

image.png.7ddb76566aa82c1e264c2faa263b9491.png

image.png.ad2e442193ad22692cf286803e229056.png

image.png.e8b95ea24bb124f3eeac2b9ff7896e40.png

الدليل به ادق التفاصيل المساعدة

8.1 Introduction
This chapter describes the different VAT information that can be provided in an electronic invoice.
Please also see VAT category codes for details on the VAT category code list, and Calculation of VAT for detailed explanation and example on how to perform the
calculations for VAT Breakdown.

 

  • Like 2
قام بنشر
37 دقائق مضت, د.كاف يار said:

للأسف هذه غير مطابقة للمواصفات

لو رجعنا الى الدليل الارشادي للمطورين ستجد بأن الأرقام لابد ان تكون هندية

استاذي الكريم 

انا تابعت المحاضرات للمسؤولين في مصلحة الزكاة

اللي فهمته منهم 

ان المرحلة الاولي    المطلوب وضع كود الاستجابه السريع QR

على الفاتوره  ويحمل البيانات المطلوبه

هذا الملطلوب فقط في المرحله الاولي

والفاتوره المرفقه اعلا   تخص هذا للمرحله الاولي

ولو فتحت رابط الدليل الارشادي المرفق اعلاه   لتبين لك ذلك

 

نحن الان مشكلتنا بالتشفير  وXML وربط الفاتوره مباشره في موقع مصلحة الزاكاة  في المرحلة الثانيه

قام بنشر
50 دقائق مضت, at_aziz said:

ان المرحلة الاولي    المطلوب وضع كود الاستجابه السريع QR

 

بهذا تكون المشكلة انتهت ما راح تحتاج تطبق باقي الفاتورة

50 دقائق مضت, at_aziz said:

نحن الان مشكلتنا بالتشفير  وXML وربط الفاتوره

كيف تنفذ هذه بدون المواصفات  

الفاتورة الكترونية اذا فأنت بحاجة post and get كذلك استدعاء API

فلن تستطيع استقبال post رقم فاتورة اذا لم تكن برمجيا مستوفي الشروط الدنيا

يجب ان تقرأ المواصفات جيدا حتى تتمكن من انشاء الفاتورة الالكتروني

الموضوع ليس كما تفضلت به مجرد كود استجابة سريع

منذ ساعه, ابو جودي said:

طيب مبدئيا انا مش فاهم اى شئ ولا اعرف اى شئ عن موضوع التشفير ده

ولكن بالبحث على الانترنت وجدت ذلك

فهل ذلك هو المطلوب


Private Const clOneMask = 16515072          '000000 111111 111111 111111
Private Const clTwoMask = 258048            '111111 000000 111111 111111
Private Const clThreeMask = 4032            '111111 111111 000000 111111
Private Const clFourMask = 63               '111111 111111 111111 000000

Private Const clHighMask = 16711680         '11111111 00000000 00000000
Private Const clMidMask = 65280             '00000000 11111111 00000000
Private Const clLowMask = 255               '00000000 00000000 11111111

Private Const cl2Exp18 = 262144             '2 to the 18th power
Private Const cl2Exp12 = 4096               '2 to the 12th
Private Const cl2Exp6 = 64                  '2 to the 6th
Private Const cl2Exp8 = 256                 '2 to the 8th
Private Const cl2Exp16 = 65536              '2 to the 16th

Public Function Encode64(sString As String) As String

    Dim bTrans(63) As Byte, lPowers8(255) As Long, lPowers16(255) As Long, bOut() As Byte, bIn() As Byte
    Dim lChar As Long, lTrip As Long, iPad As Integer, lLen As Long, lTemp As Long, lPos As Long, lOutSize As Long

    For lTemp = 0 To 63                                 'Fill the translation table.
        Select Case lTemp
            Case 0 To 25
                bTrans(lTemp) = 65 + lTemp              'A - Z
            Case 26 To 51
                bTrans(lTemp) = 71 + lTemp              'a - z
            Case 52 To 61
                bTrans(lTemp) = lTemp - 4               '1 - 0
            Case 62
                bTrans(lTemp) = 43                      'Chr(43) = "+"
            Case 63
                bTrans(lTemp) = 47                      'Chr(47) = "/"
        End Select
    Next lTemp

    For lTemp = 0 To 255                                'Fill the 2^8 and 2^16 lookup tables.
        lPowers8(lTemp) = lTemp * cl2Exp8
        lPowers16(lTemp) = lTemp * cl2Exp16
    Next lTemp

    iPad = Len(sString) Mod 3                           'See if the length is divisible by 3
    If iPad Then                                        'If not, figure out the end pad and resize the input.
        iPad = 3 - iPad
        sString = sString & String(iPad, Chr(0))
    End If

    bIn = StrConv(sString, vbFromUnicode)               'Load the input string.
    lLen = ((UBound(bIn) + 1) \ 3) * 4                  'Length of resulting string.
    lTemp = lLen \ 72                                   'Added space for vbCrLfs.
    lOutSize = ((lTemp * 2) + lLen) - 1                 'Calculate the size of the output buffer.
    ReDim bOut(lOutSize)                                'Make the output buffer.

    lLen = 0                                            'Reusing this one, so reset it.

    For lChar = LBound(bIn) To UBound(bIn) Step 3
        lTrip = lPowers16(bIn(lChar)) + lPowers8(bIn(lChar + 1)) + bIn(lChar + 2)    'Combine the 3 bytes
        lTemp = lTrip And clOneMask                     'Mask for the first 6 bits
        bOut(lPos) = bTrans(lTemp \ cl2Exp18)           'Shift it down to the low 6 bits and get the value
        lTemp = lTrip And clTwoMask                     'Mask for the second set.
        bOut(lPos + 1) = bTrans(lTemp \ cl2Exp12)       'Shift it down and translate.
        lTemp = lTrip And clThreeMask                   'Mask for the third set.
        bOut(lPos + 2) = bTrans(lTemp \ cl2Exp6)        'Shift it down and translate.
        bOut(lPos + 3) = bTrans(lTrip And clFourMask)   'Mask for the low set.
        If lLen = 68 Then                               'Ready for a newline
            bOut(lPos + 4) = 13                         'Chr(13) = vbCr
            bOut(lPos + 5) = 10                         'Chr(10) = vbLf
            lLen = 0                                    'Reset the counter
            lPos = lPos + 6
        Else
            lLen = lLen + 4
            lPos = lPos + 4
        End If
    Next lChar

    If bOut(lOutSize) = 10 Then lOutSize = lOutSize - 2 'Shift the padding chars down if it ends with CrLf.

    If iPad = 1 Then                                    'Add the padding chars if any.
        bOut(lOutSize) = 61                             'Chr(61) = "="
    ElseIf iPad = 2 Then
        bOut(lOutSize) = 61
        bOut(lOutSize - 1) = 61
    End If

    Encode64 = StrConv(bOut, vbUnicode)                 'Convert back to a string and return it.

End Function

Public Function Decode64(sString As String) As String

    Dim bOut() As Byte, bIn() As Byte, bTrans(255) As Byte, lPowers6(63) As Long, lPowers12(63) As Long
    Dim lPowers18(63) As Long, lQuad As Long, iPad As Integer, lChar As Long, lPos As Long, sOut As String
    Dim lTemp As Long

    sString = Replace(sString, vbCr, vbNullString)      'Get rid of the vbCrLfs.  These could be in...
    sString = Replace(sString, vbLf, vbNullString)      'either order.

    lTemp = Len(sString) Mod 4                          'Test for valid input.
    If lTemp Then
        Call Err.Raise(vbObjectError, "MyDecode", "Input string is not valid Base64.")
    End If

    If InStrRev(sString, "==") Then                     'InStrRev is faster when you know it's at the end.
        iPad = 2                                        'Note:  These translate to 0, so you can leave them...
    ElseIf InStrRev(sString, "=") Then                  'in the string and just resize the output.
        iPad = 1
    End If

    For lTemp = 0 To 255                                'Fill the translation table.
        Select Case lTemp
            Case 65 To 90
                bTrans(lTemp) = lTemp - 65              'A - Z
            Case 97 To 122
                bTrans(lTemp) = lTemp - 71              'a - z
            Case 48 To 57
                bTrans(lTemp) = lTemp + 4               '1 - 0
            Case 43
                bTrans(lTemp) = 62                      'Chr(43) = "+"
            Case 47
                bTrans(lTemp) = 63                      'Chr(47) = "/"
        End Select
    Next lTemp

    For lTemp = 0 To 63                                 'Fill the 2^6, 2^12, and 2^18 lookup tables.
        lPowers6(lTemp) = lTemp * cl2Exp6
        lPowers12(lTemp) = lTemp * cl2Exp12
        lPowers18(lTemp) = lTemp * cl2Exp18
    Next lTemp
    bIn = StrConv(sString, vbFromUnicode)               'Load the input byte array.
    ReDim bOut((((UBound(bIn) + 1) \ 4) * 3) - 1)       'Prepare the output buffer.

    For lChar = 0 To UBound(bIn) Step 4
        lQuad = lPowers18(bTrans(bIn(lChar))) + lPowers12(bTrans(bIn(lChar + 1))) + _
                lPowers6(bTrans(bIn(lChar + 2))) + bTrans(bIn(lChar + 3))           'Rebuild the bits.
        lTemp = lQuad And clHighMask                    'Mask for the first byte
        bOut(lPos) = lTemp \ cl2Exp16                   'Shift it down
        lTemp = lQuad And clMidMask                     'Mask for the second byte
        bOut(lPos + 1) = lTemp \ cl2Exp8                'Shift it down
        bOut(lPos + 2) = lQuad And clLowMask            'Mask for the third byte
        lPos = lPos + 3
    Next lChar
    
    sOut = StrConv(bOut, vbUnicode)                     'Convert back to a string.
    If iPad Then sOut = Left$(sOut, Len(sOut) - iPad)   'Chop off any extra bytes.
    Decode64 = sOut
    
End Function

 

يا سلام عليك فعلا انت استاذ و رئيس قسم من الطراز الفاخر

فهلا هذا مطابق للمواصفات

قام بنشر
16 دقائق مضت, ابو جودي said:

هل دالة التشفير تلك هى المطلوبة 

برجاء التأكد من ان البيانات التى يتم الحصول عليها فى الستعلام هى البيانات الصحيحة بعد التشفير

افتح مثالي في مشاركتي على التقرير

حمل التطبيق هذا على هاتفك ثم اقرأ الكيو آر ،،، حاول تقرأه ايضا من قارىء للباركود آخر لترى الفرق

رمز الكيو آر في مثالي مشفر حسب طلب الهيئة ، ولكن يوجد فيه بعض الملاحظات التي ذكرتها

image.png.6f70598680f2a6e76cf990b6ad098384.png

قام بنشر
38 دقائق مضت, ابوخليل said:

افتح مثالي في مشاركتي على التقرير

حمل التطبيق هذا على هاتفك ثم اقرأ الكيو آر ،،، حاول تقرأه ايضا من قارىء للباركود آخر لترى الفرق

رمز الكيو آر في مثالي مشفر حسب طلب الهيئة ، ولكن يوجد فيه بعض الملاحظات التي ذكرتها

 

 

 

نسيت شيئا

فك الضغط عن الملف  والصق المجلد بجميع محتوياته على قرص C   ( منكم واليكم ابا جودي) :smile:

 

Reference.rar

قام بنشر
10 دقائق مضت, ابوخليل said:

سيت شيئا

فك الضغط عن الملف  والصق المجلد بجميع محتوياته على قرص C   ( منكم واليكم ابا جودي) 

جزاك الله خير وبارك فيك ابا خليل

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

اما بقيه البرامج يقراء بدون مشاكل 

كيف يتم التعديل على مثال الاخ اباجودي حتى يكون متوافق مع القاري المعتمد

هذا مثال الاخ ابو جودي الاخير

 

GenerateOrReadQRCodeImageV.03.mdb.zip

قام بنشر
19 دقائق مضت, at_aziz said:

جزاك الله خير وبارك فيك ابا خليل

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

اما بقيه البرامج يقراء بدون مشاكل 

 

لا تطبق على برنامجك

فقط شغل المثال المرفق  بعد لصق المجلد وتسجيل المكتبات

المثال يعمل واعطيتك النتيجة بالصور

  • Like 1
قام بنشر (معدل)

الله يعطيك استاذنا الفاضل ابا خليل

نعم على المثال يعمل  

لكن نحن الان في ورطه 

شغلي الاول اصبح مامنه فايده

كيف نطبق هذا الكود على مثال  نقدر ننقله لاي برنامج

تم تعديل بواسطه at_aziz
قام بنشر

السلام عليكم ورحمة الله وبركاته

اليوم تواصلت مع خدمة العملاء في مصلحة الزكاه والدخل

 

قالو انه  

لابد من تشفير qr في المرحله الاولى والثانية

 

ارجو منكم ياخوان مساعدتنا بحل لهذا 

لانها مهمه ومطلوبه وتفيد كل من له عملاء 

جزاكم الله خير وبارك فيكم

قام بنشر
28 دقائق مضت, ابو جودي said:

فعلا انا صدعت بسبب ده واعتقدت ان التطبيق منى انا كان خطأ

حتى اننى ارسلت لاستاذ ابو خليل على الخاص

تمام جربت الكود : الهكس يشفر ويعيد التشفير

مشكلتنا في الخطوة التالية وهي التحويل الى base64

امهلوني سأحاول   اتمنى ان اصل لنتيجة جيدة

ربما احد اساتذتنا يسبقني وهذا الذي اتمناه

  • Like 3
قام بنشر

بارك الله فيك وجزاك الله خير استاذنا القدير ابا خليل

الله يعطيك العافيه وبيض الله وجهك

 

الان المشكله الاهم في تعديل الامثله السابقه

مشكله جبر الهلالات الى عدد صحيح

لوتنحل عدم جبر الهلل    

نقدر نمشي بعض الامور  لين تكتمل كل الملاحظات

قام بنشر

ايشركم تتوالى الانتصارات

من بعد ابو جودي  

الحمد لله تم ضبط المثال على زيادة ونقص الاسم ودعم اللغة العربية

انا مثل ابو جودي تعبت كثيرا فالحمد لله الذي لا يحمد على مكروه سواه سأخلد للنوم

غدا بإذن الله اعطيكم النتيجة  اذكر فيه شرح الطريقة مدعمة بالصور

والادوات والمكتبات المطلوبة

  • Like 2
  • Thanks 2
قام بنشر
2 دقائق مضت, ابوخليل said:

ايشركم تتوالى الانتصارات

من بعد ابو جودي  

الحمد لله تم ضبط المثال على زيادة ونقص الاسم ودعم اللغة العربية

انا مثل ابو جودي تعبت كثيرا فالحمد لله الذي لا يحمد على مكروه سواه سأخلد للنوم

غدا بإذن الله اعطيكم النتيجة  اذكر فيه شرح الطريقة مدعمة بالصور

والادوات والمكتبات المطلوبة

بشركم الله أعلى درجات الجنان استاذى الجليل ومعلمى القدير و والدى الحبيب 

فعلا الموضوع متعب جدا جدا جدا وارهقنى البحث عن الحلول كثيرا

3 دقائق مضت, ابوخليل said:

الحمد لله الذي لا يحمد على مكروه سواه سأخلد للنوم

فعلا الحمد لله تعالى

جزاكم اله خيرا استاذى الجليل ومعلمى القدير و والدى الحبيب 

نوما هانئا ان شاء الله :fff:

  • Thanks 2
قام بنشر
9 ساعات مضت, ابوخليل said:

ايشركم تتوالى الانتصارات

من بعد ابو جودي  

الحمد لله تم ضبط المثال على زيادة ونقص الاسم ودعم اللغة العربية

انا مثل ابو جودي تعبت كثيرا فالحمد لله الذي لا يحمد على مكروه سواه سأخلد للنوم

غدا بإذن الله اعطيكم النتيجة  اذكر فيه شرح الطريقة مدعمة بالصور

والادوات والمكتبات المطلوبة

تفضلوا من هنا

  • Like 1
قام بنشر

السلام عليكم ورحمة الله تعالى وبركاته

بعد جلسات العمل والنقاش 
 
هذه   وأيضا تلك وأيضا تلك وأيضا تلك

واخص فيها أستاذي الجليل ومعلمي القدير و والدى الحبيب أستاذ @ابوخليل :fff: له كل الشكر والتقدير وكذلك أصحاب المواضيع الذين حثوا الهمم لإخراج مثل هذا العمل

اهداء الى منتدانا الحبيب واحبابنا الكرام:fff:

اليكم كود الاستجابة السريع QR CODE (يدعم اللغة العربية)
حسب متطلبات هيئة الزكاة والضريبة والجمارك السعودية

علما انه يتم قراءة الرمز عبر قارىء خاص بالهيئة ( تطبيق جوال ) حمل من هنا تطبيق هيئة الزكاة والضريبة والجمارك

كما يتم قراءة الرمز عبر قارىء خاص من خلال موقع على الانترنت إذهب الى الموقع :   من هنا

الشرح ... مهم جدا

مفيش أي شرح :wink2:

  • متطلبات التشغيل كالتالي :

فقط يرجى التأكد من وجود الأداة qr.exe  داخل مجلد باسم Reference في نفس مسار قاعدة البيانات

اسالكم الدعاء بظهر الغيب لصديقي في العمل و الذى ساعدني في عمل ملف   qr.exe

  • أتمنى لكم تجربة ممتعة ... :yes:

 

==================================================

 

 

 

 

 

KSA E-Invoicing QR-Code.zip

  • Like 6
  • Thanks 3
زائر
هذا الموضوع مغلق.
×
×
  • اضف...

Important Information