ಕ್ರೋಯೇಷಿಯಾದ 2026ರ ಇ-ಇನ್ವಾಯ್ಸ್ ನಿಯಮವು PHP ಡೆವಲಪರ್ಗಳು ವ್ಯಾಲಿಡೇಶನ್ ಅನ್ನು ಮರುಸೃಷ್ಟಿಸುವಂತೆ ಒತ್ತಾಯಿಸುತ್ತಿದೆ – ತೆರಿಗೆ ಪ್ರಾಧಿಕಾರದ Schematron ಫೈಲ್ XSLT 2.0 ಅನ್ನು ಅವಲಂಬಿಸಿದೆ, ಆದರೆ ಪ್ರಬಲವಾದ PHP XSLT ಇಂಜಿನ್ ಕೇವಲ XSLT 1.0 ಅನ್ನು ಮಾತ್ರ ಬೆಂಬಲಿಸುತ್ತದೆ. ಇದರ ಪರಿಣಾಮ: ಹೆಚ್ಚಿನ ಅಕೌಂಟಿಂಗ್ ಅಪ್ಲಿಕೇಶನ್ಗಳು ಪರ್ಯಾಯ ಮಾರ್ಗದಿಲ್ಲದೆ 62 ಕಡ್ಡಾಯ ವ್ಯವಹಾರ-ನಿಯಮಗಳ (business-rule) ಪರಿசோதனೆಯನ್ನು ನಡೆಸಲು ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ, ಮತ್ತು ತಿರಸ್ಕರಿಸಲ್ಪಟ್ಟ ಇನ್ವಾಯ್ಸ್ B2B ನಗದು ಹರಿವನ್ನು (cash flow) ಸ್ಥಗಿತಗೊಳಿಸಬಹುದು.
ತಾಂತ್ರಿಕ ಅಡೆತಡೆ ಏಕೆ ಮುಖ್ಯವಾಗುತ್ತದೆ
1 ಜನವರಿ 2026 ರಿಂದ ಕ್ರೋಯೇಷಾದಲ್ಲಿನ ಪ್ರತಿಯೊಂದು B2B ವಹಿವಾಟನ್ನು 62 ನಿರ್ದಿಷ್ಟ ವ್ಯಾಲಿಡೇಶನ್ ನಿಯಮಗಳಿಗೆ ಅನುಗುಣವಾಗಿರುವ e-Račun ಆಗಿ ವಿನಿಮಯ ಮಾಡಿಕೊಳ್ಳಬೇಕು. ತೆರಿಗೆ ಆಡಳಿತವು ಆ ನಿಯಮಗಳನ್ನು Schematron ಫೈಲ್ ಆಗಿ ಪ್ರಕಟಿಸುತ್ತದೆ – ಇದು ಮೂಲತಃ ಉಲ್ಲಂಘನೆಗಳನ್ನು ಗುರುತಿಸುವ XSLT 2.0 ಸ್ಟೈಲ್ಶೀಟ್ ಆಗಿದೆ. ಜನಪ್ರಿಯ xsltproc ಮತ್ತು ಹೆಚ್ಚಿನ Composer ಪ್ಯಾಕೇಜ್ಗಳಿಗೆ ಶಕ್ತಿಯನ್ನು ನೀಡುವ PHP ನ ಬಿಲ್ಟ್-ಇನ್ libxslt ಲೈಬ್ರರಿಯು ಕೇವಲ XSLT 1.0 ಅನ್ನು ಮಾತ್ರ ಅನುಷ್ಠಾನಗೊಳಿಸುತ್ತದೆ. XSLT 2.0 ಬೆಂಬಲವಿಲ್ಲದೆ Schematron ಅನ್ನು ಅನ್ವಯಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ, ಅಂದರೆ PHP ಆಧಾರಿತ ಇನ್ವಾಯ್ಸಿಂಗ್ ವ್ಯವಸ್ಥೆಯು ತೆರಿಗೆ ಪೋರ್ಟಲ್ ತಿರಸ್ಕರಿಸುವ ಇನ್ವಾಯ್ಸ್ಗಳನ್ನು ಸೃಷ್ಟಿಸಬಹುದು ಅಥವಾ ಇನ್ನೊಂದು ಭಾಷೆ ಅಥವಾ ಸೇವೆಯನ್ನು ಬಳಸಬೇಕಾಗುತ್ತದೆ.
ಡೆವಲಪರ್ಗಳು ಅನುಸರಿಸಬಹುದಾದ ಮೂರು ಮಾರ್ಗಗಳು
| ಆಯ್ಕೆ | ಇದು ಏನನ್ನು ಒಳಗೊಂಡಿದೆ | ಪ್ರಾಯೋಗಿಕ ಅನಾನುಕೂಲಗಳು |
|---|---|---|
| SaxonC PECL extension | Saxon-C ಪ್ರೊಸೆಸರ್ ಅನ್ನು ನೇಟಿವ್ PHP ಎಕ್ಸ್ಟೆನ್ಶನ್ ಆಗಿ ಇನ್ಸ್ಟಾಲ್ ಮಾಡಿ, ನಂತರ ನೇರವಾಗಿ Schematron ಅನ್ನು ಬಳಸಬಹುದು. | ಈ ಎಕ್ಸ್ಟೆನ್ಶನ್ ಸಾಮಾನ್ಯ Composer ವರ್ಕ್ಫ್ಲೋ ನ ಭಾಗವಾಗಿಲ್ಲ; ವಿವಿಧ ಸರ್ವರ್ಗಳಲ್ಲಿ ನೇಟಿವ್ ಬೈನರಿಗಳನ್ನು ಬಿಲ್ಡ್ ಮಾಡುವುದು ಮತ್ತು ನಿಯೋಜಿಸುವುದು ಸಂಕೀರ್ಣತೆಯನ್ನು ಹೆಚ್ಚಿಸುತ್ತದೆ. |
| ಬಾಹ್ಯ ವ್ಯಾಲಿಡೇಶನ್ ಸೇವೆ | ನಿಮ್ಮ ಪರವಾಗಿ Schematron ಅನ್ನು ಚಲಾಯಿಸುವ ವೆಬ್-ಸೇವೆಯ ಮೂಲಕ XML ಅನ್ನು ಕಳುಹಿಸಿ. | ಪ್ರತಿಯೊಂದು ಇನ್ವಾಯ್ಸ್ ಈಗ ನೆಟ್ವರ್ಕ್ ವಿಳಂಬ (latency) ಮತ್ತು ಸೇವೆಯ ಲಭ್ಯತೆಯ ಮೇಲೆ ಅವಲಂಬಿತವಾಗಿರುತ್ತದೆ; ತಾತ್ಕಾಲಿಕ ಸ್ಥಗಿತವು ಇನ್ವಾಯ್ಸಿಂಗ್ ಅನ್ನು ಸಂಪೂರ್ಣವಾಗಿ ತಡೆಯಬಹುದು. |
| ನಿಯಮಗಳನ್ನು PHP ನಲ್ಲಿ ಮರು-ಅನುಷ್ಠಾನಗೊಳಿಸುವುದು | 62 Schematron ಅಸರ್ಷನ್ಗಳನ್ನು (assertions) ನೇಟಿವ್ PHP ಕೋಡ್ಗೆ ಅನುವಾದಿಸಿ. | ಇದಕ್ಕೆ ಆರಂಭಿಕ ಶ್ರಮ ಬೇಕಾಗುತ್ತದೆ, ಆದರೆ ಒಮ್ಮೆ ಕೋಡ್ ಮಾಡಿದ ನಂತರ ವ್ಯಾಲಿಡೇಟರ್ ಸ್ಥಳೀಯವಾಗಿ ಚಲಿಸುತ್ತದೆ, ಯಾವುದೇ PHP ಸ್ಟ್ಯಾಕ್ನೊಂದಿಗೆ ಸುಲಭವಾಗಿ ಸಂಯೋಜಿತವಾಗುತ್ತದೆ ಮತ್ತು ಬಾಹ್ಯ ಅವಲಂಬನೆಗಳನ್ನು ನಿವಾರಿಸುತ್ತದೆ. |
ಸರಳ ಅನುಷ್ಠಾನಗಳನ್ನು ತಪ್ಪಿಸುವ ಗುಪ್ತ ತರ್ಕ (logic)
Schematron ನ ಸರಳ ಅನುವಾದವು ಸೂಕ್ಷ್ಮ ಅರ್ಥಗಳನ್ನು (semantics) ತಪ್ಪಿಸಬಹುದು. ಉದಾಹರಣೆಗೆ ನಿಯಮ HR-BR-4: "ಪಾವತಿಸಬೇಕಾದ ಮೊತ್ತವು ಶೂನ್ಯಕ್ಕಿಂತ ಹೆಚ್ಚಿದ್ದರೆ, ಪಾವತಿಸಬೇಕಾದ ದಿನಾಂಕ (due date) ಇರಲೇಬೇಕು." ಕ್ರೆಡಿಟ್ ನೋಟ್ಗಳಿಗಾಗಿ ಇನ್ವಾಯ್ಸ್ ಮೊತ್ತವನ್ನು -1 ರಿಂದ ಗುಣಿಸುವ ವೇರಿಯಬಲ್ ಅನ್ನು Schematron ವ್ಯಾಖ್ಯಾನಿಸುತ್ತದೆ. ಕಚ್ಚಾ XML ನಲ್ಲಿ ಕ್ರೆಡಿಟ್ ನೋಟ್ ಧನಾತ್ಮಕ ಮೊತ್ತವನ್ನು ತೋರಿಸುತ್ತದೆ, ಆದರೆ ವೇರಿಯಬಲ್ ಅದನ್ನು ಋಣಾತ್ಮಕವಾಗಿ ಬದಲಾಯಿಸುತ್ತದೆ, ಆದ್ದರಿಂದ "ಶೂನ್ಯಕ್ಕಿಂತ ಹೆಚ್ಚು" ಎಂಬ ಕಂಡೀಷನ್ ತಪ್ಪಾಗುತ್ತದೆ. ವ್ಯಾಲಿಡೇಟರ್ ಕೇವಲ ಅಸರ್ಷನ್ ಪಠ್ಯವನ್ನು ಮಾತ್ರ ಓದಿದರೆ, ಅದು ಪ್ರತಿಯೊಂದು ಕ್ರೆಡಿಟ್ ನೋಟ್ ಅನ್ನು ತಿರಸ್ಕರಿಸುತ್ತದೆ.
ಪಾಠ ಸ್ಪಷ್ಟವಾಗಿದೆ: ಸಂಬಂಧಿತ PHP ಕಂಡೀಷನ್ ಅನ್ನು ಕೋಡ್ ಮಾಡುವ ಮೊದಲು Schematron ನಲ್ಲಿನ ವೇರಿಯಬಲ್ ವ್ಯಾಖ್ಯಾನಗಳನ್ನು ಓದಿ. ಗಣಿತ ಅಥವಾ ಸ್ಟ್ರಿಂಗ್ ಮ್ಯಾನಿಪ್ಯುಲೇಶನ್ $ ವೇರಿಯಬಲ್ ಹಿಂದೆ ಅಡಗಿರುವ ಇತರ ಹಲವಾರು ನಿಯಮಗಳಲ್ಲಿಯೂ ಇದೇ ಮಾದರಿ ಕಂಡುಬರುತ್ತದೆ.
ಸಾಮಾನ್ಯ ತಿರಸ್ಕಾರದ ಕಾರಣಗಳು (rejection triggers)
ಸರಿಯಾಗಿ ಕೋಡ್ ಮಾಡಿದ ನಿಯಮಗಳಿದ್ದರೂ ಸಹ, ತೆರಿಗೆ ವ್ಯವಸ್ಥೆಯು ಗಂಭೀರ ದೋಷಗಳೆಂದು ಪರಿಗಣಿಸುವ ಇನ್ವಾಯ್ಸ್ ಅಂಶಗಳನ್ನು ಡೆವಲಪರ್ಗಳು ಹೆಚ್ಚಾಗಿ ನಿರ್ಲಕ್ಷಿಸುತ್ತಾರೆ:
- ಆಪರೇಟರ್ ವಿವರಗಳ ಕೊರತೆ – ಪ್ರತಿಯೊಂದು ಇನ್ವಾಯ್ಸ್ನಲ್ಲಿ ಆಪರೇಟರ್ನ ಪೂರ್ಣ ಹೆಸರು ಮತ್ತು OIB (ಕ್ರೋಯೇಷಿಯನ್ ವೈಯಕ್ತಿಕ ಗುರುತಿನ ಸಂಖ್ಯೆ) ಇರಲೇಬೇಕು. ಯಾವುದೇ ಫೀಲ್ಡ್ ಅನ್ನು ಖಾಲಿ ಬಿಟ್ಟರೆ ತಕ್ಷಣವೇ ತಿರಸ್ಕರಿಸಲ್ಪಡುತ್ತದೆ.
- ಖಾಲಿ XML ಟ್ಯಾಗ್ಗಳು –
<cbc:Note></cbc:Note>ನಂತಹ ಟ್ಯಾಗ್ಗಳು ವ್ಯಾಲಿಡೇಟರ್ ಕ್ರ್ಯಾಶ್ ಆಗಲು ಕಾರಣವಾಗುತ್ತವೆ. ಖಾಲಿ ಎಲಿಮೆಂಟ್ಗಳನ್ನು ತೆಗೆದುಹಾಕುವುದು ಅಥವಾ ಅವುಗಳನ್ನು ಪ್ಲೇಸ್ಹೋಲ್ಡರ್ ಸ್ಟ್ರಿಂಗ್ನಿಂದ ತುಂಬಿಸುವುದು ಈ ಸಮಸ್ಯೆಯನ್ನು ಪರಿಹರಿಸುತ್ತದೆ. - ತಪ್ಪಾದ KPD ಕೋಡ್ಗಳು – Klasifikacija proizvoda i usluga (KPD) ಕೋಡ್ ಕನಿಷ್ಠ ಆರು ಅಂಕಿಗಳಿರಬೇಕು. ಚಿಕ್ಕ ಕೋಡ್ಗಳನ್ನು ತಪ್ಪಾದವುಗಳೆಂದು ಗುರುತಿಸಲಾಗುತ್ತದೆ.
- ಅಮಾನ್ಯ ದಿನಾಂಕಗಳು – ಇತರ ಸರಿ ಇರಲಿ, 1 ಜನವರಿ 2026 ಕ್ಕಿಂತ ಮೊದಲು ದಿನಾಂಕ ಹೊಂದಿರುವ ಯಾವುದೇ ಇನ್ವಾಯ್ಸ್ ಕಡ್ಡಾಯ-ದಿನಾಂಕ ನಿಯಮದಲ್ಲಿ ವಿಫಲವಾಗುತ್ತದೆ.
ಪರೀಕ್ಷಾ ತಪ್ಪುಗಳು (Testing pitfalls)
ತೆರಿಗೆ ಆಡಳಿತವು ಡೆವಲಪರ್ಗಳಿಗಾಗಿ ಮಾದರಿ e-Račun ಫೈಲ್ಗಳನ್ನು ಪ್ರಕಟಿಸುತ್ತದೆ. ಆ ಉದಾಹರಣೆಗಳಲ್ಲಿ ಇನ್ನೂ 2025 ರ ದಿನಾಂಕಗಳು ಮತ್ತು 2026 ರ ನಿಯಮಗಳ ಸೆಟ್ಗೆ ಹೊಂದಿಕೆಯ නොದಾಣುವ OIB ಗಳು ಇವೆ. ಅವುಗಳನ್ನು ಮಾತ್ರ ಸತ್ಯದ ಏಕೈಕ ಮೂಲವಾಗಿ ಬಳಸುವುದರಿಂದ ಅನುಸರಣೆಯ ಬಗ್ಗೆ ತಪ್ಪು ಭಾವನೆ ಮೂಡಬಹುದು. ಅಧಿಕೃತ ಮಾದರಿಗಳನ್ನು ಪಾರ್ಸರ್ ಸ್ಯಾನಿಟಿ ಚೆಕ್ (parser sanity check) ಆಗಿ ಪರಿಗಣಿಸಿ, ನಂತರ ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್ನಿಂದ ಸೃಷ್ಟಿಸಲಾದ ವಾಸ್ತವಿಕ ಡೇಟಾವನ್ನು ಬಳಸಿ ನಿಮ್ಮದೇ ಆದ ನಿಯಮ-ಅನುಷ್ಠಾನ ಸೂಟ್ ಅನ್ನು ರನ್ ಮಾಡಿ.
ಈಗಾಗಲೇ ಲಭ್ಯವಿರುವ PHP-ಮಾತ್ರದ ಪರಿಹಾರ
ಒಬ್ಬ ಡೆವಲಪರ್ ಮರು-ಅನುಷ್ಠಾನದ ಮಾರ್ಗವನ್ನು ಪೂರ್ಣಗೊಳಿಸಿ, ಎಲ್ಲಾ 62 ವ್ಯಾಲಿಡೇಶನ್ ನಿಯಮಗಳನ್ನು Laravel ಪ್ರಾಜೆಕ್ಟ್ಗಳಿಗಾಗಿ Composer-ಇನ್ಸ್ಟಾಲ್ ಮಾಡಬಹುದಾದ ಲೈಬ್ರರಿಯಾಗಿ ಪ್ಯಾಕೇಜ್ ಮಾಡಿದ್ದಾರೆ. ಈ ಲೈಬ್ರರಿಯು Schematron ಅಡಗಿಸಿಟ್ಟಿರುವ ಗಣಿತ, ವೇರಿಯಬಲ್ ಸ್ಕೋಪಿಂಗ್ ಮತ್ತು ಎಡ್ಜ್-ಕೇಸ್ ಪರಿசோதனೆಗಳನ್ನು ನಿರ್ವಹಿಸುತ್ತದೆ, ಇದರಿಂದ ಇನ್ವಾಯ್ಸ್ಗಳನ್ನು ಸಂಪೂರ್ಣವಾಗಿ PHP ರನ್ಟೈಮ್ನಲ್ಲೇ ವ್ಯಾಲಿಡೇಟ್ ಮಾಡಬಹುದು. XSLT 2.0 ಮತ್ತು ಬಾಹ್ಯ ಕರೆಗಳನ್ನು (external calls) ತೆಗೆದುಹಾಕುವ ಮೂಲಕ, ಈ ಪ್ಯಾಕೇಜ್ ಅನುಸರಣೆಗೆ ಒಂದು ನಿರ್ದಿಷ್ಟವಾದ (deterministic), ಕಡಿಮೆ-ವಿಳಂಬದ
- ಸಮುದಾಯ-ಚಾಲಿತ PHP ವ್ಯಾಲಿಡೇಟರ್ಗಳು – ಹೆಚ್ಚು ಹೆಚ್ಚು ಡೆವಲಪರ್ಗಳು ಮರು-ಅನುಷ್ಠಾನ (re-implementation) ವಿಧಾನವನ್ನು ಅಳವಡಿಸಿಕೊಳ್ಳುತ್ತಿದ್ದಂತೆ, ಯುನಿಟ್-ಟೆಸ್ಟ್ ಫಿಕ್ಸ್ಚರ್ಗಳು, ಇತರ ಫ್ರೇಮ್ವರ್ಕ್ಗಳ ಬೆಂಬಲ ಅಥವಾ ಕಾರ್ಯಕ್ಷಮತೆಯ ಸುಧಾರಣೆಗಳನ್ನು (performance tweaks) ಸೇರಿಸುವ ಫೋರ್ಕ್ಗಳು ಮತ್ತು ಎಕ್ಸ್ಟೆನ್ಶನ್ಗಳನ್ನು ನಿರೀಕ್ಷಿಸಬಹುದು.
ಸಾರಾಂಶ
ಕ್ರೋಯೇಷಿಯಾದ 2026ರ ಇ-ಇನ್ವಾಯ್ಸ್ (e-invoice) ಕಡ್ಡಾಯವು, ಆಧುನಿಕ XSLT 2.0 Schematron ಮತ್ತು ಈ ಭಾಷೆಯ ಹಳೆಯ (legacy) XSLT 1.0 ಇಂಜಿನ್ ನಡುವಿನ ಅಸಮತೋಲನವನ್ನು ಎದುರಿಸಲು PHP ಡೆವಲಪರ್ಗಳನ್ನು ಒತ್ತಾಯಿಸುತ್ತದೆ. 62 ವ್ಯವಹಾರದ ನಿಯಮಗಳನ್ನು ನೇтив PHP ಗೆ ಅನುವಾದಿಸುವುದು, ಗುಪ್ತ ವೇರಿಯಬಲ್ ಲಾಜಿಕ್ ಅನ್ನು ಗಮನಿಸುವುದು ಮತ್ತು ಸಾಮಾನ್ಯ XML ತಪ್ಪುಗಳನ್ನು ತಪ್ಪಿಸುವುದರಿಂದ ಇನ್ವಾಯ್ಸಿಂಗ್ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಒಳಗಿನಲ್ಲೇ (in-house) ಇರಿಸಬಹುದು, ನೆಟ್ವರ್ಕ್ ಸಂಬಂಧಿತ ವೈಫಲ್ಯಗಳನ್ನು ತಪ್ಪಿಸಬಹುದು ಮತ್ತು ಗಡುವಿನ ಸಮಯ ಬಂದಾಗ ಅಕೌಂಟಿಂಗ್ ಸಾಫ್ಟ್ವೇರ್ ಸುಗಮವಾಗಿ ಹಾಗೂ ನಿಯಮಬದ್ಧವಾಗಿ ಕಾರ್ಯಗತಗೊಳ್ಳಲು ಸಿದ್ಧಪಡಿಸಬಹುದು.
