Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

pomoć oko vađenja podataka iz mysql i računanja pdv-a

[es] :: .NET :: pomoć oko vađenja podataka iz mysql i računanja pdv-a

[ Pregleda: 1592 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Black One
Čepin

Član broj: 46302
Poruke: 102
*.adsl.net.t-com.hr.

Sajt: www.medija.org


+1 Profil

icon pomoć oko vađenja podataka iz mysql i računanja pdv-a15.01.2011. u 09:03 - pre 161 meseci
Pozdrav svima!
Radim program za POSKASU za pekare i imam problem kod računanja ukupnog pdva za različite stope..
imam dvije tablice koje izgledaju ovako u mysql bazi:

racuni
id-------------int(11)
datum--------datetime
izdao---------text
racun_broj----int(11)

i
racun_artikli
id-------------int(11)
kod-----------int(11) (Šifra artikla)
naziv--------- text
cijena---------decimal(12,4) (Čista cijena artikla)
povratna_naknada---double (cijena povratne naknade ako je ima
pdv-----------double (pdv u obliku 0,23 ili 0,20)
kolicina--------decimal(12,3)
racun_broj-----int(11)

I sada mi treba da mi program izračuna koliki je promet bio danas ali po pdv-ovima
npr
Iznos PDVa osnovica 0:
Iznos PDVA osnovica 23:
Iznos PDVA osnovica 6:
tj ovisi koji je pdv spremnjen u redku(pdv)
ja sam pokušao preko SQL komande grupirati PDV i napravit sumu: sum(racun_artikli.cijena * racun_artikli.kolicina) i to nakraju ispada ovako:
ali imam problem što jako dugo vremena treba da ispiše te različite PDV-ove i nekad zna napisati da nije mogao dobiti odgovor od baze podataka kao previše treba vremena da baza odgovori.
Jeli se može nekako drugačije to napisati il popravit se moj kod? molim vas pomagajte mi =))))

Code:
Private Function pdv_ispis()
        Dim dtpod As Date
        Dim dtpdo As Date
        Dim tekst As String = ""



        '// Format datuma
        dtpod = dtpOd2.Value.Date
        Dim dtpod1 As String = Format(dtpod, "yyyy-MM-dd 0:0:0")

        dtpdo = dtpDo1.Value.Date
        Dim dtpdo2 As String = Format(dtpdo, "yyyy-MM-dd 23:59:59")

        Dim DBCon As MySqlConnection
        Dim DBCommand As MySqlCommand
        Dim DBReader As MySqlDataReader
        Dim naziv As Integer
        Dim bezpdva As Object

        Try
            DBCon = New MySqlConnection(myConnString1)
            DBCon.Open()

            Dim strVerifyLogin As String

            strVerifyLogin = "SELECT sum(racun_artikli.cijena * racun_artikli.kolicina) AS bezPDVa, racun_artikli.pdv as naziv " & _
            " FROM racuni LEFT JOIN racun_artikli ON racun_artikli.racun_broj=racuni.racun_broj" & _
            " WHERE (racuni.datum between '" & dtpod1 & "' and '" & dtpdo2 & "')" & _
            " GROUP BY  racun_artikli.pdv ORDER BY racun_artikli.pdv ASC"
            DBCommand = New MySqlCommand

            With DBCommand
                .Connection = DBCon
                .CommandText = strVerifyLogin
                .CommandType = CommandType.Text
                DBReader = .ExecuteReader
            End With

            If DBReader.HasRows = True Then
                While DBReader.Read
                    If Not DBReader.IsDBNull(1) Then
                        naziv = DBReader("naziv")
                    Else
                        naziv = CInt("0")
                    End If
                    If Not DBReader.IsDBNull(0) Then
                        bezpdva = DBReader("bezPDVa")
                    Else
                        bezpdva = CInt("0")
                    End If
                    tekst = ("Promet bez pdv-a osnovica: " & naziv * 100 & " : " & FormatNumber(bezpdva, 2, , , TriState.False) & " kn")

                End While

            End If

        Catch ex As InvalidOperationException
            MessageBox.Show(ex.Message, "Error16", MessageBoxButtons.OK, MessageBoxIcon.Error)
        Catch ex As MySqlException
            MessageBox.Show(ex.Message, "Error17", MessageBoxButtons.OK, MessageBoxIcon.Error)
        Catch ex As Exception ' //  General exception
            MessageBox.Show(ex.Message, "Error18", MessageBoxButtons.OK, MessageBoxIcon.Error)
        Finally

        End Try
        'završetak pdva
        Return tekst
    End Function

 
Odgovor na temu

Black One
Čepin

Član broj: 46302
Poruke: 102
*.adsl.net.t-com.hr.

Sajt: www.medija.org


+1 Profil

icon Re: pomoć oko vađenja podataka iz mysql i računanja pdv-a15.01.2011. u 09:29 - pre 161 meseci
Maknio sam iz strVerifyLogin stringa LEFT JOIN i stavio samo JOIN i sada super radi računa odmah i sve to ali mi je sada problem ispiše mi ovako
"Promet bez pdv-a osnovica 0: 260 kn"
"Promet bez pdv-a osnovica 0: 1254 kn"

u oba reda mi ispiše da je osnovica 0 kako da popravim to? jer u jednom bi trebala biti 23 a druga 0? =)
 
Odgovor na temu

Mikelly

Član broj: 16730
Poruke: 389
*.crnagora.net.



Profil

icon Re: pomoć oko vađenja podataka iz mysql i računanja pdv-a16.01.2011. u 19:45 - pre 161 meseci
Postavi breakpoint na:
Code:
naziv = DBReader("naziv")
i vidi sta se desava.

Malo si nezgodno postavio na else grananju da ti je naziv=0 kada ti jedan od mogucih vrijednosti, kada naziv nije DBNull, isto moze biti 0.

I je li mogu ce da je kod vas stopa PDV-a 23%?

Pozdrav.
 
Odgovor na temu

Black One
Čepin

Član broj: 46302
Poruke: 102
*.adsl.net.t-com.hr.

Sajt: www.medija.org


+1 Profil

icon Re: pomoć oko vađenja podataka iz mysql i računanja pdv-a16.01.2011. u 23:54 - pre 161 meseci
javljo mi je non stop da je naziv 0.
popravio sam to s sljedećim kodom:
Da nažalost 23 % je pdv jedino je na kruh 0% posto

evo i koda:

Code:
  '*///////////////novo pdv

                Dim conn2 As New MySqlConnection
                Dim myCommand2 As New MySqlCommand
                Dim myAdapter2 As New MySqlDataAdapter
                Dim myData2 As New DataTable
                Dim SQL2 As String


                SQL2 = "SELECT sum(racun_artikli.cijena * racun_artikli.kolicina) AS bezPDVa, racun_artikli.pdv as naziv " & _
                " FROM racuni JOIN racun_artikli ON racun_artikli.racun_broj=racuni.racun_broj" & _
                " WHERE (racuni.datum between '" & dtpod1 & "' and '" & dtpdo2 & "')" & _
                " GROUP BY  racun_artikli.pdv "
                conn2.ConnectionString = myConnString1 & ";Allow Zero Datetime=true"


                Try
                    conn2.Open()
                    Try
                        myCommand2.Connection = conn2
                        myCommand2.CommandText = SQL2

                        myAdapter2.SelectCommand = myCommand2
                        myAdapter2.Fill(myData2)

                        For Each red2 As DataRow In myData2.Rows

                            txtKnjiga.Items.Add("Promet bez pdv-a osnovica: " & red2("naziv") * 100 & " : " & FormatNumber(red2("bezpdva"), 2, , , TriState.False) & " kn")
                  
                        Next
                        conn2.Close()

                    Catch myerror As MySqlException
                        MsgBox("There was an error reading from the database: " & myerror.Message)
                    End Try

                Catch myerror As MySqlException
                    MessageBox.Show("Error connecting to the database: " & myerror.Message)
                Finally
                    If conn.State <> ConnectionState.Closed Then conn.Close()
                End Try
 
Odgovor na temu

[es] :: .NET :: pomoć oko vađenja podataka iz mysql i računanja pdv-a

[ Pregleda: 1592 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.