Υπολογισμος επιστροφης φορου με βαση τις αποδειξεις

Αν έχετε οποιαδήποτε ερώτηση σχετικά με το λογισμικό "Αποδείξεις 2011" καταχωρήστε την εδώ

Υπολογισμος επιστροφης φορου με βαση τις αποδειξεις

Δημοσίευσηαπό morozos » Πέμ Μάιος 05, 2011 3:31 pm

Καλησπέρα

Κατ αρχήν να σας ευχαριστήσω για το υπέροχο πρόγραμμα που έχετε φτιάξει Παρακαλώ θερμά εξηγήστε μου αν είναι σωστός ο υπολογισμός του φόρου με βάση τις αποδείξεις
Για να γίνω κατανοητός δίνω το έξης παράδειγμα
Με εισόδημα 48000 βάζοντας αποδείξεις μέχρι 12000 μου λέει το πρόγραμμα ότι καλύπτω το αφορολόγητο Σωστά, Αν έχω διαβάσει σωστά τα βιβλίο της εφορίας θα έπρεπε να ισχύσει το έξης
12000*10% =1200
36000*30% =10800
Άρα =12000
Όμως βάζοντας επιπλέον+ 3000=15000 μου δίνει επιστροφή φόρου 300 € άρα συμπληρώνω το ανώτερο ποσό των 15000 ανά άτομο που λέει το βιβλίο της εφορία
Βάζοντας επιπλέον αποδείξεις από τις 12χιλ άλλες 15χιλ άρα 27 στο σύνολο μου δίνει επιστροφή 1500 €!!!! είναι σωστός αυτό ο υπολογισμός δηλαδή αν βάλεις 15 επιπλέον από αυτό που πρέπει για κάθε εισόδημα θα έχει έκπτωση φόρου 1500 €

Ευχαριστώ εκ των προτέρων για το χρόνο σας

Υ.Γ αναβάθμιση του προγράμματος έχω ήδη κάνει
morozos
 
Δημοσιεύσεις: 1
Εγγραφή: Πέμ Μάιος 05, 2011 3:15 pm

Re: Υπολογισμος επιστροφης φορου με βαση τις αποδειξεις

Δημοσίευσηαπό Yiannis » Κυρ Μάιος 08, 2011 1:24 am

Ναι έχεις δίκιο, το μέγιστο ποσό δαπανών δεν πρέπει να υπερβαίνει τις 15000€. Από οτι φαίνεται ο αλγόριθμος υπολογίζει επιστροφή φόρου και για περισσότερες δαπάνες - μέχρι 27000€ (12000€ + 15000€), κάτι το οποίο είναι λάθος.

Αυτό διορθώνεται τροποποιώντας τον αλγόριθμο.

Κάνε κλικ αριστερά κάτω στη "Βοήθεια" > "Ρυθμίσεις". Δεξιά στην κατηγορία "Υπολογισμός αφορολόγητου" κάνε κλικ στο "Τροποποιημένος αλγόριθμος".
Σβήσε όλο τον κώδικα που υπάρχει από κάτω και αντικατέστησέ τον με τον παρακάτω:

Κώδικας: Επιλογή όλων
'Για την ευκολότερη τροποποίηση του κώδικα, κατεβάστε την Visual Basic 2010 Express από εδώ: http://www.microsoft.com/express/Downloads/
Imports Microsoft.VisualBasic
Public Class cAforologito
   Public Shared Function StaticFunction(ByVal ObjArray() as Object) As Object()   
      'Είσοδος: Το εισόδημα του επιλεγμένου φορολογούμενου
        Dim Eisodima As Decimal = CType(ObjArray(0), Decimal)

        'Είσοδος: Το συνολικό ποσό των αποδείξεων του επιλεγμένου φορολογούμενου
        'για την επιλεγμένη ημερομηνία
        Dim SUM_Apodeikseis As Decimal = CType(ObjArray(1), Decimal)
       
        'If SUM_Apodeikseis >15000 then SUM_Apodeikseis  = 15000


        'Είσοδος: Ο αριθμός των τέκνων του επιλεγμένου φορολογούμενου
        Dim Tekna As Integer = CType(ObjArray(2), Integer)

        'Το αφορολόγητο σύμφωνα με το νομοσχέδιο
        Dim Aforologito As Double = 12000

        'Το επιπλέον αφορολόγητο που υπολογίζεται αργότερα
        'εάν υπάρχουν τέκνα
        Dim EpipleonAforologito As Double = 0

        'Το μέγιστο ποσό δαπανών, σύμφωνα με το νομοσχέδιο
        Dim MaxDapanes As Decimal = 15000

        'Υπολογισμός του επιπλέον αφορολόγητου
        'ανάλογα με τον αριθμό των τέκνων
        Select Case Tekna
            Case 1
                '1 τέκνο, άρα αύξηση του αφορολόγητου κατά 1500€
                EpipleonAforologito = 1500
            Case 2
                '2 τέκνα, άρα αύξηση του αφορολόγητου κατά 3000€
                EpipleonAforologito = 3000
            Case Is > 2
                'Αύξηση του αφορολόγητου κατά 11500€ για 3 τέκνα
                'και κατά 2000€ για κάθε επιπλέον τέκνο
                Dim EpipleonTekna As Integer = Tekna - 3
                EpipleonAforologito = 11500 + (EpipleonTekna * 2000)
        End Select
        'Τέλος υπολογισμού επιπλέον αφορολόγητου

        'Αρχικοποίηση της μεταβλητής που επιστρέφει τα αποτελέσματα
        Dim ResultsOUT(20) As Object

        'Υπολογισμός της αξίας των αποδείξεων που απαιτείται για το αφορολόγητο
        'σύμφωνα με το εισόδημα του φορολογούμενου
        Dim SynoloApodeiksewn As Decimal = 0 'Αρχικοποίηση της συνολικής αξία των αποδείξεων που απαιτειται γιά την κάλυψη του αφορολόγητου.
        Select Case Eisodima
            Case Is <= 6000
                'Για εισόδημα μικρότερο/ίσο από 6000€ δεν απαιτούνται αποδείξεις
                SynoloApodeiksewn = 0
            Case CDec(6000.01) To CDec((12000))
                'Για εισόδημα από 6000€ έως 12000€ απαιτείται το 10% του εισοδήματος
                SynoloApodeiksewn = CDec(0.1 * Eisodima)
            Case Is > CDec(12000.01)
                'Για εισόδημα μεγαλύτερο από 12000€ απαιτείται το 10% του εισοδήματος
                'για το ποσό μέχρι τις 12000€ και 30% για το επιπλέον εισόδημα.
                'Το μέγιστο εισόδημα για τον υπολογισμό των αποδείξεων είναι 48000€.
                Dim MaxEisodima As Decimal = CDec(IIf(Eisodima > 48000, 48000, Eisodima))
                SynoloApodeiksewn = CDec((0.1 * (Aforologito)) + ((MaxEisodima - Aforologito) * 0.3))
        End Select

        'Η αξία των αποδείξεων που χρειάζεται για να την κάλυψη του αφορολόγητου
        ResultsOUT(1) = SynoloApodeiksewn

        'Η αξία των αποδείξεων που μένει μέχρι τη συμπλήρωση της απαιτούμενης αξίας
        ResultsOUT(3) = SynoloApodeiksewn - SUM_Apodeikseis ' (αν είναι αρνητικό, επιστρέφεται το ποσό έκπτωσης φόρου)

        'Ο επιπλέον φόρος αν δεν έχει συμπληρωθεί η αξία των αποδείξεων
        ResultsOUT(0) = CDec(ResultsOUT(3)) * 0.1

        'Υπολογισμός ποσού έκπτωσης φόρου
        'Επιτρέπονται μέχρι 15000€ σε αποδείξεις
        If CDec(ResultsOUT(3)) < 0 Then ' Αυτό είναι αρνητικό όταν οι αποδείξεις που συγκεντρώθηκαν είναι περισσότερες από τις αποδείξεις που απαιτούνται
                ResultsOUT(4) = (CDec(IIf(SUM_Apodeikseis > MaxDapanes, MaxDapanes, SUM_Apodeikseis)) - SynoloApodeiksewn) * 0.1
        End If

        'Το αφορολόγητο ποσό του φορολογούμενου
        ResultsOUT(2) = Aforologito + EpipleonAforologito

        'Επιστρέφει τα αποτελέσματα για να εμφανιστούν στη συνέχεια στο UI.
        Return ResultsOUT
   End Function
End Class

Στη συνέχεια κάνε κλικ στο κουμπί "Μεταγλώττιση".

Ο υπολογισμός θα πρέπει να γίνεται σωστά τώρα.

Αυτό που άλλαξε στον αλγόριθμο είναι η γραμμή που βρίσκεται προς το τέλος:
Κώδικας: Επιλογή όλων
ResultsOUT(4) = (CDec(IIf(-CDec(ResultsOUT(3)) > MaxDapanes, MaxDapanes, -CDec(ResultsOUT(3)))) * 0.1)

σε
Κώδικας: Επιλογή όλων
ResultsOUT(4) = (CDec(IIf(SUM_Apodeikseis > MaxDapanes, MaxDapanes, SUM_Apodeikseis)) - SynoloApodeiksewn) * 0.1


Σε ευχαριστώ για την επισήμανση του λάθους.
Yiannis
Site Admin
 
Δημοσιεύσεις: 209
Εγγραφή: Σάβ Φεβ 27, 2010 10:28 pm


Επιστροφή στο Ερωτήσεις για τις "Αποδείξεις 2011"

Μέλη σε σύνδεση

Μέλη σε αυτή την Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 4 επισκέπτες

cron