Στρογγυλοποίηση αριθμών... Google Groups link: https://groups.google.com/forum/#!topic/soft1/0rofcc -UDb0 Date: Mon, 19 Nov 2012 10:20:38 +0200 From: in...@bnbsoftware.gr Καλή σας ημέρα και καλή εβδομάδα. Κάνω μια εφαρμογή για φορητά τερματικά (φορητή τιμολόγηση) και έχω ένα θέμα με την στρογγυλοποίηση, γιατί "χάνονται" δεκαδικά... Πχ. έχω τέσσερις γραμμές σε ένα παραστατικό, με τα εξής στοιχεία (ποσότητα, τιμή, έκπτωση - όλα τα είδη έχουν ΦΠΑ 13%) 3 / 10,48 / 20% 7 / 10,48 / 20% 1 / 10,48 / 99% 1 / 10,48 / 99% Τα σύνολα βγαίνουν ως εξής: Καθαρή αξία: 84,0496 ΦΠΑ: 10,926448 Σύνολο: 94,976048 Στο παραστατικό (όταν το καταχωρήσω απευθείας μέσα στο Soft1), η στρογγυλοποίηση στα δύο δεκαδικά γίνεται ως εξής: Καθαρή αξία: 84,0496 -> 84,04 (truncate σε δύο δεκαδικά) ΦΠΑ: 10,926448 -> 10,93 (round σε δύο δεκαδικά) Σύνολο: 94,976048 -> 94,97 (truncate σε δύο δεκαδικά) Η απορία μου είναι η εξής απλή: Τελικά, round κάνει, ή truncation; Και πότε; Date: Mon, 19 Nov 2012 04:23:06-0800 (PST) Στράτο καλημέρα, Η απάντηση σε αυτό που ρωτάς είναι, ούτε round ούτε truncate, αλλά round στο σύνολο του παραστατικού. Τα πιο πολλά προγράμματα τιμολόγησης που κυκλοφορούν στην αγορά έχουν το ακόλουθο πρόβλημα το οποίο το soft1 δεν έχει. Αν για παράδειγμα έχουμε στις γραμμές του τιμολογίου 5 είδη όπως αναφέρεις και κάνουμε στρογγυλοποίηση στον ΦΠΑ στα 2 δεκαδικά υπάρχει η πιθανότητα να έχουμε ένα δεκαδικό διαφορά σε κάθε γραμμή. Για τις γραμμές αυτό είναι σωστό αλλά για το σύνολο μπορεί να έχουμε μια διαφορά έως 5 δεκαδικά (μονάδες) ή και περισσότερα αναλόγως τον αριθμό των γραμμών.
Αν κάποιος προσθέσει ΦΠΑ στην καθαρή αξία του τιμολογίου το πιθανότερο είναι να μην ταιριάζει με το τελικό ποσό. Η λύση είναι να υπολογιστεί ο ΦΠΑ ανάποδα. Δηλαδή από το σύνολο προς τις γραμμές. Υπολογίζουμε το ΦΠΑ για το σύνολο ανά συντελεστή και μετά κάνουμε επιμερισμό στις γραμμές ανάλογα με το βάρος τους στην καθαρή αξία. Βέβαια δεν είναι τόσο εύκολο όσο ακούγεται γιατί υπάρχουν και κάποια φαινόμενα loop που πρέπει να αποφύγεις αλλά το αποτέλεσμα είναι αυτό που ανέφερα. Στις δοκιμές που γίνανε στις εφαρμογές μου όλες δίνανε το ίδιο αποτέλεσμα στρογγυλοποίησης με το soft1 ανα γραμμή και σύνολο. Οπότε θεωρώ ότι και ηsoftone χρησιμοποιεί κάτι σαν το παραπάνω. Το παράδοξο σε αυτή την μέθοδο είναι το φαινόμενο που αναφέρεις αλλά και το ότι κάποιες αξίες συνόλου (σε συνδυασμό με αριθμό γραμμών και ποσοστό ΦΠΑ) είναι αδύνατον να τις έχουμε, μεταπηδώντας στο αμέσως επόμενο ή προηγούμενο δεκαδικό, αλλά αυτό είναι πολύ σπάνιο. Date: Mon, 19 Nov 2012 14:35:56 +0200 From: in...@bnbsoftware.gr Μα το πρόβλημα δεν είναι μόνο στο ΦΠΑ, αλλά και στις τιμές. Όταν έχεις πχ. συνολική αξία (χωρίς ΦΠΑ) 35,5678 ευρώ, ποια είναι η αξία που θα πρέπει να τυπωθεί στο τιμολόγιο; 35,56 (truncate) ή 35,57 (round); Γιατί το Soft1 φαίνεται να κάνει truncate και όχι round... Date: Mon, 19 Nov 2012 05:19:50-0800 (PST) Αυτά που έγραψα αναφέρονται στον τρόπο που πιθανόν να λειτουργεί το FINDOC και τα αποτελέσματα των υπολογισμών ενδέχεται να περιέχουν περισσότερα από δυο δεκαδικά. Η εκτύπωση είναι ένα report και έχει να κάνει με την προβολή των δεδομένων. Το πρόβλημα που αντιμετωπίζεις που είναι; Στην εκτύπωση ή στα δεδομένα της βάσης; Date: Mon, 19 Nov 2012 17:24:41 +0200 From: in...@bnbsoftware.gr Στην φόρμα (σελίδα/εκτύπωση). Θυμίζω ότι στο πρώτο μου μήνυμα είχα και σχετικό παράδειγμα, όπου ο υπολογισμός των συνόλων βγαίνει ως εξής:
Καθαρή αξία: 84,0496 -> 84,04 (truncate σε δύο δεκαδικά) ΦΠΑ: 10,926448 -> 10,93 (round σε δύο δεκαδικά) Σύνολο: 94,976048 -> 94,97 (truncate σε δύο δεκαδικά) Και συνεπώς, η απορία μου είναι: truncate ή round; Truncate οι τιμές και η διαφορά τους είναι το ΦΠΑ; Δεν ξέρω... Date: Mon, 19 Nov 2012 08:43:46-0800 (PST) From: Athanasiadis George cfo...@otenet.gr Οι στρογγυλοποιήσεις δεν εφαρμόζουν Truncate ή Round ο κανόνας του Ευρώ λέει οτι αν το τρίτο δεκαδικό ειναι 5 και πάνω το 2ο στρογγυλοποιείται προς τα πάνω αρα με τις τιμές και εκπτώσεις που έδωσες σωστά στο κάνει το Softone Εκπτωση Στρογγ Μικτή - Εκπτ Ποσοτητα Τιμή Αξία Εκπτ Με δεκαδικα Ευρώ Καθ.Αξία 3 10,48 31,44 20 6,288 6,29 25,15 7 10,48 73,36 20 14,672 14,67 58,69 1 10,48 10,48 99 10,3752 10,38 0,10 1 10,48 10,48 99 10,3752 10,38 0,10 84,04 Date: Tue, 20 Nov 2012 07:51:52 +0200 From: in...@bnbsoftware.gr Οπότε μιλάμε για rounding στο δεύτερο δεκαδικό, σε επίπεδο γραμμής και όχι στο σύνολο (το σύνολο είναι το άθροισμα των στρογγυλοποιημένων τιμών και όχι η στρογγυλοποίηση του αθροίσματος). Οκ, ευχαριστώ! Date: Mon, 19 Nov 2012 23:18:10-0800 (PST) From: Athanasiadis George cfo...@otenet.gr Ξέχασα να σου πώ οτι και το ΦΠΑ το κάνεις στρογγυλοποίηση επι γραμμών. Αθροίζεις το ΦΠΑ των γραμμών αλλά ελέγχεις κατα συντελεστή αν συμφωνεί με το στρογγυλοποιημένο σύνολο του ΦΠΑ. Και αν το σύνολο γραμμών ΦΠΑ δεν συμφωνεί με το υπολογισμένο ( στρογγυλοποιημένο) ΦΠΑ Συνόλου "αγιάρεις"
τις γραμμές. Ισχύουν δηλαδή αυτά που σου είπε ο Δημήτρης Date: Tue, 20 Nov 2012 03:34:54-0800 (PST) From: panoramatistis andy...@gmail.com Σε μιά αντίστοιχη custom εφαρμογή που είχα φτειάξει στο Softone, είχα ασυμφωνίες στα σύνολα του παραστατικού αναλυμένα ανά ΦΠΑ. Η λύση που βρήκα ήταν : 3 δεκαδικά στις γραμμές και στους υπολογισμούς αλλά εμφάνιση μόνο των 2... αυτό και στις οθόνες καταχώρησης αλλά και στις εκτυπώσεις. Ταυτόγχρονα, έβαλα και στις γενικές παραμέτρους της εταιρείας 3 δεκαδικά αξιών ώστε όλα να υπολογίζονται με τον ίδιο τρόπο. Date: Tue, 20 Nov 2012 13:46:13 +0200 From: in...@bnbsoftware.gr Τέλος πάντων, φαίνεται ότι δουλεύει... παίρνουμε τις καθαρές αξίες ανά γραμμή, βρίσκουμε συνολικά τον ΦΠΑ (ανά κατηγορία) και κάνουμε επιμερισμό ανά γραμμή και βρίσκουμε και τα σύνολα ανά γραμμή με τον ίδιο τρόπο. Ουφ... φαίνεται ότι έχω τελειώσει, παραστατικό και φορητό δίνουν ίδιες τιμές. Date: Tue, 20 Nov 2012 04:45:12-0800 (PST) Στράτο καλημέρα. Αυτά που ανέφερα παραπάνω έχουν να κάνουν με τον τρόπο που υπολογίζει η library το φπα και μπορώ να σε διαβεβαιώσω ότι στον υπολογισμό του φπα λαμβάνουν χώρα και τα σύνολα του παραστατικού. Τα άρθρα λογιστική παράγονται από τις γραμμές αλλά πρέπει να συμφωνούν ακριβώς με τα σύνολα. Επαναλαμβάνω ότι η διαδικασία δεν είναι απλή και το διαπίστωσα όταν θέλησα και οι δικές μου εφαρμογές να έχουν την ευλυγισία του soft1 όσον αφορά την αμφίδρομη τοποθέτηση εκπτώσεων, φόρων και αξιών στις γραμμές αλλά και στα σύνολα του παραστατικού. Για να επιβεβαιώσεις αυτό που λέω κάνε το εξής: Άνοιξε ένα νέο παραστατικό πωλήσεων και πρόσθεσε στις γραμμές σαν νέα στήλη την αξία φπα γραμμής ώστε να την βλέπεις. Κατόπιν πρόσθεσε 2 γραμμές με 23% φπα και αξία 10,07 και δες τότε την αξία φπα που έχει κάθε γραμμή. Αν ο υπολογισμός γινόταν μόνο από την γραμμή, τότε όλες οι γραμμές θα είχαν το ίδιο φπα. Στο δικό μου πάντως βλέπω τον ακόλουθο πίνακα: Είδος Δοκιμή 10,07 ΦΠΑ 23% --> 2,32 Είδος Δοκιμή 10,07 ΦΠΑ 23% --> 2,31
Αυτό σημαίνει ότι γίνεται επιμερισμός και όχι μόνο του φπα αλλά και των λοιπών πρόσθετων στοιχείων των συνόλων του παραστατικού όπως είναι οι εκπτώσεις συνόλου, ώστε να είναι οι γραμμές σε θέση να απεικονίσουν τα σύνολα ακριβώς. Το αναλύω τόσο γιατί είδα που ανέφερες ότι έχετε φτιάξει κάποια εφαρμογή και υπέθεσα ότι προσπαθείτε να ταιριάξετε το παραστατικό ακριβώς. Date: Tue, 20 Nov 2012 17:07:09 +0200 From: in...@bnbsoftware.gr Αυτό ακριβώς έκανα κι εγώ τελικά και δουλεύει υπέροχα! :) Ευχαριστώ για όλες τις πληροφορίες!