سؤال

نقوم بإنشاء برنامج نقاط البيع لنظام التشغيل Mac، ويتطلع إلى تجديد محرك الضريبة لدينا. إنه بسيط جدا الآن، مع وجود ضرائب تتكون من اسم ورمز ومعدل يمكن تطبيقه على كل منتج على حدة. في حين أن هذا جيد بما فيه الكفاية بالنسبة لبعض الناس، فقد كان لدينا الكثير من الطلبات لمعالجة المواقف الأكثر تقدما. بعض الأمثلة هي ضريبة مبيعات مدينة / مقاطعة أمريكية، والضرائب المركبة الكندية (المكدس)، والكويتاكس الفرنسية وضريبة NYC الفاخرة.

لقد حددنا معظم الخصائص التي لديها هذه الضرائب وتتميل نحو نوع من التنفيذ القائم على محرك القواعد. ليس لدينا لدعم كل حالة هناك، لكننا نريد أن نكون قادرين على تمديده إذا لزم الأمر (لتجنب إعادة كتابة آخر).

نحن نبحث عن تقديم المشورة من الأشخاص الذين بنوا شيء مثل هذا من قبل، أو أمثلة للمشاريع التي تحاول حل نفسها بطريقة أنيقة.

هل كانت مفيدة؟

المحلول

أود أن أوصي مجموعة من جداول قاعدة البيانات والانضمام.

مثال:

  • الاختصاص القضائي: قائمة الدول والمقاطعات والبلدان والمدن وما إلى ذلك
  • المنتج: بديهي
  • متجر: قائمة المواقع التي تبيعها من
  • storejuristion.(المظلات، القضائية): قائمة الولايات القضائية التي يكون المتجر مسؤول عن جمع الضرائب
  • producttaxcode.(منتج Int، TaxcodeID INT): نوع المنتج لأغراض الضرائب: الأساسي، الفاخر، إلخ.
  • jurisdictionTaxcoderate(الولاية القضائية، TAXCODEID، مهملة، REATETYPE): لكل مجموعة من الولاية الواقية من الولاية، وتوفير معدل الضريبة ليتم تطبيقه، ونوع المعدل (المركب، بسيطة، إلخ).

للعثور على قائمة الضرائب للتطبيق، كل ما تحتاجه هو صلة داخلية من المتجر، فإن الولايات القضائية الخاصة به، وقضيب القضايا القضائية باستخدام القضايا القضائية، والرموز الضريبية للمنتج.

يمكنك تحديد ProductTaxcode كأي طريقة عرض حتى تتلقى جميع المنتجات سيارة دكتاكفيد افتراضية ما لم يتم توفير واحد خاص. من خلال تجريد Taxcode، يمكنك الحصول على نفس البيانات الوصفية حول المنتج ("الطعام" على سبيل المثال) تنطبق على مناطق مختلفة بطرق مختلفة. إذا كان للولاية القضائية الخاصة تعريفها الخاص ل "Food"، فأنت فقط إضافة شفرة خاصة بالاختصاص وتطبيقها على المنتجات حسب الحاجة.

قد يتطلب هذا بعض التغيير والتبديل لشراء الإنترنت، مشتريات الجملة، وغيرها من المواقف التي يكون البيع معفاة بطريقة أو بأخرى من الضرائب أو العميل مسؤول عن إعادة التحويل. كما ستحتاج إلى التغيير بالتبديل للحالات التي يقرر فيها موقع العميل، بدلا من المتجر، معدل الضريبة.

القرصات الأخرى: هنا في تكساس، على سبيل المثال، لدينا عطلة نهاية أسبوع "خالية من الضرائب" حيث لا يتم جمع الضرائب المحلية والضرائب المحلية بعض فصول المنتجات التي يكون فيها سعر بيع العنصر الفردي أقل من 100 دولار. تتمثل الفكرة في توفير إمدادات مدرسية أرخص، والملابس، وما إلى ذلك للأطفال الذين يتجهون إلى المدرسة لمدة عام جديد. يمكن تنفيذ هذا النوع من القرص من خلال وجود جدول نجل التاريخ لكل jurisdictionTaxcoderate في المستقبل بقدر ما يمكن التخطيط لها.

نصائح أخرى

سيكون اقتراحي لاستخدام جداول قاعدة البيانات لما هي جيدة ل (تخزين القيم) والقواعد لما هي جيدة لأنها جيدة (منطق الأعمال). بالتأكيد لا أضع أشياء مثل معدلات الضرائب أو قوائم الولايات القضائية في القواعد - يجب أن تكون تلك في الجداول. ما كنت أستخدمه محركات قواعد لتحديد المنطق الذي يحدد المعدل المناسب للتنفيذ على المعاملات. لذلك، على سبيل المثال، إذا اشتريت مجموعة من المنتجات عبر الإنترنت من شركة مقرها في الحالة X التي تشحن من الدولة ذ إلى ثلاث مواقع مختلفة، فما معدلات الضرائب التي تنطبق عليها أجزاء من المعاملة؟ هذه المجموعة من القواعد وطاولات قاعدة البيانات شائعة جدا - تتأكد القواعد من البحث عن الأشياء الصحيحة في حين أن الجداول تساعد في الإبلاغ وما إلى ذلك على سبيل المثال، فعلت كاليفورنيا DMV هذه مع رسوم تسجيل المركبات - يتم تخزين جميع الرسوم المختلفة في قاعدة البيانات أثناء قيام القواعد التي تحدد الرسوم التي تنطبق على السيارة التي تتم إدارتها في كوكباس. إذا حاولت وضع كل شيء في القواعد، فلن تكون قادرا على الإبلاغ جيدا وإذا حاولت وضع كل شيء في جداول قاعدة البيانات، فسوف ينتهي بك الأمر بعشرات الجداول لإدارة جميع الاستثناءات وحالات الزاوية. جي

فيما يلي مثال على مدينة "المنزل" في منطقة دنفر، شركة متروبوليتان المشتركة:

http://www.c3gov.com/pages/about/division_salestax.html.

قد تحتاج إليك، كتاجر التجزئة، أيضا إلى إرسال المدفوعات الضريبية إلى مواقع مختلفة. للمدن التي ليست "قاعدة محلية" (وهي مصطلح خاص ينطبق على الأرجح فقط على كولورادو، ولكن من المحتمل أن تتمتع كل ولاية على الأجل بشكل خاص بنفس القدر بذلك)، سترسل جميع المدفوعات الضريبية إلى الدولة التي سوف ثم تعاملهم على الأطراف المعنية. يحتوي Colorado على ميزة توجد فيها "المناطق الضريبية الخاصة" المسموح بها لجمع ضرائب المبيعات للحصول على مزايا معينة (على سبيل المثال رابط، RTD هي منطقة النقل العام، و "Invesco Field" هي الملعب حيث تلعب Denver Broncos).

للتوسع في إجابة السيد Tallent على هذا الموضوع، ستحتاج أيضا إلى تضمين أيضا في جدول الولاية القضائية بطريقة تمثيل أن الضرائب قد تذهب إلى أماكن مختلفة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top