Printing and storing receipt in VB.net

1.2k Views Asked by At

I am designing a POS similar program to add inventory and print and store the receipt. May I know how do I proceed? Is there a way I can store the receipt in mysql database? Here's my screenshot of the POS and the source code

Screenshot of the sale screen: http://oi64.tinypic.com/35cpy5j.jpg

Upon clicking on the print receipt button I want to generate a pdf and send it to print as well store them so we can access them anytime. What is the best strategy to achieve the same.

Imports MySql.Data.MySqlClient
Imports System.Text.RegularExpressions


Public Class sale
    Dim MysqlConn As MySqlConnection
    Dim COMMAND As MySqlCommand
    Dim iReturn As Boolean

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim connection As New MySqlConnection("server=localhost;userid=root;password=;database=chanamotors")
        Dim adapter As New MySqlDataAdapter("SELECT `itemname`, `itemcode`, `saleprice`, `quantity` FROM inventory WHERE quantity > 0", connection)
        Dim table As New DataTable()
        adapter.Fill(table)
        BunifuDropdown1.DataSource = table
        BunifuDropdown1.ValueMember = "itemname"
        BunifuDropdown1.DisplayMember = "itemname"
    End Sub
    Private Sub TextBox_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles BunifuTextBox4.KeyPress, BunifuTextBox5.KeyPress, BunifuTextBox6.KeyPress, BunifuTextBox7.KeyPress, BunifuTextBox8.KeyPress, BunifuTextBox14.KeyPress, BunifuTextBox15.KeyPress, BunifuTextBox20.KeyPress
        If Not Char.IsNumber(e.KeyChar) AndAlso Not Char.IsControl(e.KeyChar) Then
            e.Handled = True
        End If
    End Sub

    Private Sub TextBox_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles BunifuTextBox4.TextChanged, BunifuTextBox5.TextChanged, BunifuTextBox6.TextChanged, BunifuTextBox7.TextChanged, BunifuTextBox8.TextChanged, BunifuTextBox14.TextChanged, BunifuTextBox15.TextChanged, BunifuTextBox20.TextChanged
        Dim digitsOnly As Regex = New Regex("[^\d]")
        BunifuTextBox4.Text = digitsOnly.Replace(BunifuTextBox4.Text, "")
        BunifuTextBox5.Text = digitsOnly.Replace(BunifuTextBox5.Text, "")
        BunifuTextBox6.Text = digitsOnly.Replace(BunifuTextBox6.Text, "")
        BunifuTextBox7.Text = digitsOnly.Replace(BunifuTextBox7.Text, "")
        BunifuTextBox8.Text = digitsOnly.Replace(BunifuTextBox8.Text, "")
        BunifuTextBox14.Text = digitsOnly.Replace(BunifuTextBox14.Text, "")
        BunifuTextBox15.Text = digitsOnly.Replace(BunifuTextBox15.Text, "")
        BunifuTextBox20.Text = digitsOnly.Replace(BunifuTextBox20.Text, "")
    End Sub

    Private Sub TextBoxT_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles BunifuTextBox9.KeyPress, BunifuTextBox10.KeyPress, BunifuTextBox11.KeyPress, BunifuTextBox12.KeyPress, BunifuTextBox13.KeyPress, BunifuTextBox16.KeyPress, BunifuTextBox17.KeyPress, BunifuTextBox19.KeyPress, BunifuTextBox22.KeyPress
        If Not Char.IsNumber(e.KeyChar) AndAlso Not Char.IsControl(e.KeyChar) AndAlso Not e.KeyChar = "." Then
            e.Handled = True
        End If
    End Sub

    Private Sub TextBoxT_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles BunifuTextBox9.TextChanged, BunifuTextBox10.TextChanged, BunifuTextBox11.TextChanged, BunifuTextBox12.TextChanged, BunifuTextBox13.TextChanged, BunifuTextBox16.TextChanged, BunifuTextBox17.TextChanged, BunifuTextBox19.TextChanged, BunifuTextBox22.TextChanged
        Dim digitsOnly As Regex = New Regex("[^\d]")
        BunifuTextBox9.Text = digitsOnly.Replace(BunifuTextBox9.Text, "")
        BunifuTextBox10.Text = digitsOnly.Replace(BunifuTextBox10.Text, "")
        BunifuTextBox11.Text = digitsOnly.Replace(BunifuTextBox11.Text, "")
        BunifuTextBox12.Text = digitsOnly.Replace(BunifuTextBox12.Text, "")
        BunifuTextBox13.Text = digitsOnly.Replace(BunifuTextBox13.Text, "")
        BunifuTextBox16.Text = digitsOnly.Replace(BunifuTextBox16.Text, "")
        BunifuTextBox17.Text = digitsOnly.Replace(BunifuTextBox17.Text, "")
        BunifuTextBox19.Text = digitsOnly.Replace(BunifuTextBox19.Text, "")
        BunifuTextBox22.Text = digitsOnly.Replace(BunifuTextBox22.Text, "")
    End Sub
    Private Sub BunifuImageButton1_Click(sender As Object, e As EventArgs) Handles BunifuImageButton1.Click
        ownerhome.Show()
        Me.Hide()
    End Sub

    Private Sub BunifuImageButton2_Click(sender As Object, e As EventArgs) Handles BunifuImageButton2.Click
        Me.WindowState = FormWindowState.Minimized
    End Sub

    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        Dim connection As New MySqlConnection("server=localhost;userid=root;password=;database=chanamotors")
        Dim adapter As New MySqlDataAdapter("SELECT `itemname`, `saleprice`, `quantity` FROM inventory WHERE quantity > 0", connection)
        Dim table As New DataTable()
        adapter.Fill(table)
        BunifuDropdown2.DataSource = table
        BunifuDropdown2.ValueMember = "itemname"
        BunifuDropdown2.DisplayMember = "itemname"
    End Sub

    Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
        Dim connection As New MySqlConnection("server=localhost;userid=root;password=;database=chanamotors")
        Dim adapter As New MySqlDataAdapter("SELECT `itemname`, `saleprice`, `quantity` FROM inventory WHERE quantity > 0", connection)
        Dim table As New DataTable()
        adapter.Fill(table)
        BunifuDropdown3.DataSource = table
        BunifuDropdown3.ValueMember = "itemname"
        BunifuDropdown3.DisplayMember = "itemname"
    End Sub

    Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
        Dim connection As New MySqlConnection("server=localhost;userid=root;password=;database=chanamotors")
        Dim adapter As New MySqlDataAdapter("SELECT `itemname`, `saleprice`, `quantity` FROM inventory WHERE quantity > 0", connection)
        Dim table As New DataTable()
        adapter.Fill(table)
        BunifuDropdown4.DataSource = table
        BunifuDropdown4.ValueMember = "itemname"
        BunifuDropdown4.DisplayMember = "itemname"
    End Sub

    Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
        Dim connection As New MySqlConnection("server=localhost;userid=root;password=;database=chanamotors")
        Dim adapter As New MySqlDataAdapter("SELECT `itemname`, `saleprice`, `quantity` FROM inventory WHERE quantity > 0", connection)
        Dim table As New DataTable()
        adapter.Fill(table)
        BunifuDropdown5.DataSource = table
        BunifuDropdown5.ValueMember = "itemname"
        BunifuDropdown5.DisplayMember = "itemname"
    End Sub

    Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click
        Dim connection As New MySqlConnection("server=localhost;userid=root;password=;database=chanamotors")
        Dim adapter As New MySqlDataAdapter("SELECT `itemname`, `saleprice`, `quantity` FROM inventory WHERE quantity > 0", connection)
        Dim table As New DataTable()
        adapter.Fill(table)
        BunifuDropdown6.DataSource = table
        BunifuDropdown6.ValueMember = "itemname"
        BunifuDropdown6.DisplayMember = "itemname"
    End Sub

    Private Sub Button7_Click(sender As Object, e As EventArgs) Handles Button7.Click
        Dim connection As New MySqlConnection("server=localhost;userid=root;password=;database=chanamotors")
        Dim adapter As New MySqlDataAdapter("SELECT `itemname`, `saleprice`, `quantity` FROM inventory WHERE quantity > 0", connection)
        Dim table As New DataTable()
        adapter.Fill(table)
        BunifuDropdown7.DataSource = table
        BunifuDropdown7.ValueMember = "itemname"
        BunifuDropdown7.DisplayMember = "itemname"
    End Sub

    Private Sub BunifuDropdown1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles BunifuDropdown1.SelectedIndexChanged
        Dim _isFound As Boolean = False
        Using SQLConnection As New MySqlConnection("server=localhost;userid=root;password=;database=chanamotors")
            Using sqlCommand As New MySqlCommand()
                With sqlCommand
                    .CommandText = "SELECT `saleprice` FROM `inventory` WHERE `itemname` = @itemname"
                    .Connection = SQLConnection
                    .CommandType = CommandType.Text
                    .Parameters.AddWithValue("@itemname", BunifuDropdown1.Text)
                End With
                Try
                    SQLConnection.Open()
                    Dim myReader As MySqlDataReader = sqlCommand.ExecuteReader()
                    iReturn = True

                    While myReader.Read()
                        _isFound = True
                        BunifuTextBox9.Text = myReader("saleprice").ToString
                    End While
                Catch ex As Exception
                    MsgBox(ex.Message.ToString)
                    iReturn = False
                End Try

            End Using
        End Using
    End Sub

    Private Sub BunifuDropdown2_SelectedIndexChanged(sender As Object, e As EventArgs) Handles BunifuDropdown2.SelectedIndexChanged
        Dim _isFound As Boolean = False
        Using SQLConnection As New MySqlConnection("server=localhost;userid=root;password=;database=chanamotors")
            Using sqlCommand As New MySqlCommand()
                With sqlCommand
                    .CommandText = "SELECT `saleprice` FROM `inventory` WHERE `itemname` = @itemname"
                    .Connection = SQLConnection
                    .CommandType = CommandType.Text
                    .Parameters.AddWithValue("@itemname", BunifuDropdown2.Text)
                End With
                Try
                    SQLConnection.Open()
                    Dim myReader As MySqlDataReader = sqlCommand.ExecuteReader()
                    iReturn = True

                    While myReader.Read()
                        _isFound = True
                        BunifuTextBox10.Text = myReader("saleprice").ToString
                    End While
                Catch ex As Exception
                    MsgBox(ex.Message.ToString)
                    iReturn = False
                End Try

            End Using
        End Using
    End Sub

    Private Sub BunifuDropdown3_SelectedIndexChanged(sender As Object, e As EventArgs) Handles BunifuDropdown3.SelectedIndexChanged
        Dim _isFound As Boolean = False
        Using SQLConnection As New MySqlConnection("server=localhost;userid=root;password=;database=chanamotors")
            Using sqlCommand As New MySqlCommand()
                With sqlCommand
                    .CommandText = "SELECT `saleprice` FROM `inventory` WHERE `itemname` = @itemname"
                    .Connection = SQLConnection
                    .CommandType = CommandType.Text
                    .Parameters.AddWithValue("@itemname", BunifuDropdown3.Text)
                End With
                Try
                    SQLConnection.Open()
                    Dim myReader As MySqlDataReader = sqlCommand.ExecuteReader()
                    iReturn = True

                    While myReader.Read()
                        _isFound = True
                        BunifuTextBox11.Text = myReader("saleprice").ToString
                    End While
                Catch ex As Exception
                    MsgBox(ex.Message.ToString)
                    iReturn = False
                End Try

            End Using
        End Using
    End Sub

    Private Sub BunifuDropdown4_SelectedIndexChanged(sender As Object, e As EventArgs) Handles BunifuDropdown4.SelectedIndexChanged
        Dim _isFound As Boolean = False
        Using SQLConnection As New MySqlConnection("server=localhost;userid=root;password=;database=chanamotors")
            Using sqlCommand As New MySqlCommand()
                With sqlCommand
                    .CommandText = "SELECT `saleprice` FROM `inventory` WHERE `itemname` = @itemname"
                    .Connection = SQLConnection
                    .CommandType = CommandType.Text
                    .Parameters.AddWithValue("@itemname", BunifuDropdown4.Text)
                End With
                Try
                    SQLConnection.Open()
                    Dim myReader As MySqlDataReader = sqlCommand.ExecuteReader()
                    iReturn = True

                    While myReader.Read()
                        _isFound = True
                        BunifuTextBox12.Text = myReader("saleprice").ToString
                    End While
                Catch ex As Exception
                    MsgBox(ex.Message.ToString)
                    iReturn = False
                End Try

            End Using
        End Using
    End Sub



    Private Sub BunifuDropdown6_SelectedIndexChanged(sender As Object, e As EventArgs) Handles BunifuDropdown6.SelectedIndexChanged
        Dim _isFound As Boolean = False
        Using SQLConnection As New MySqlConnection("server=localhost;userid=root;password=;database=chanamotors")
            Using sqlCommand As New MySqlCommand()
                With sqlCommand
                    .CommandText = "SELECT `saleprice` FROM `inventory` WHERE `itemname` = @itemname"
                    .Connection = SQLConnection
                    .CommandType = CommandType.Text
                    .Parameters.AddWithValue("@itemname", BunifuDropdown6.Text)
                End With
                Try
                    SQLConnection.Open()
                    Dim myReader As MySqlDataReader = sqlCommand.ExecuteReader()
                    iReturn = True

                    While myReader.Read()
                        _isFound = True
                        BunifuTextBox16.Text = myReader("saleprice").ToString
                    End While
                Catch ex As Exception
                    MsgBox(ex.Message.ToString)
                    iReturn = False
                End Try

            End Using
        End Using
    End Sub

    Private Sub BunifuDropdown7_SelectedIndexChanged(sender As Object, e As EventArgs) Handles BunifuDropdown7.SelectedIndexChanged
        Dim _isFound As Boolean = False
        Using SQLConnection As New MySqlConnection("server=localhost;userid=root;password=;database=chanamotors")
            Using sqlCommand As New MySqlCommand()
                With sqlCommand
                    .CommandText = "SELECT `saleprice` FROM `inventory` WHERE `itemname` = @itemname"
                    .Connection = SQLConnection
                    .CommandType = CommandType.Text
                    .Parameters.AddWithValue("@itemname", BunifuDropdown7.Text)
                End With
                Try
                    SQLConnection.Open()
                    Dim myReader As MySqlDataReader = sqlCommand.ExecuteReader()
                    iReturn = True

                    While myReader.Read()
                        _isFound = True
                        BunifuTextBox17.Text = myReader("saleprice").ToString
                    End While
                Catch ex As Exception
                    MsgBox(ex.Message.ToString)
                    iReturn = False
                End Try

            End Using
        End Using
    End Sub

    Private Sub BunifuDropdown5_SelectedIndexChanged(sender As Object, e As EventArgs) Handles BunifuDropdown5.SelectedIndexChanged
        Dim _isFound As Boolean = False
        Using SQLConnection As New MySqlConnection("server=localhost;userid=root;password=;database=chanamotors")
            Using sqlCommand As New MySqlCommand()
                With sqlCommand
                    .CommandText = "SELECT `saleprice` FROM `inventory` WHERE `itemname` = @itemname"
                    .Connection = SQLConnection
                    .CommandType = CommandType.Text
                    .Parameters.AddWithValue("@itemname", BunifuDropdown5.Text)
                End With
                Try
                    SQLConnection.Open()
                    Dim myReader As MySqlDataReader = sqlCommand.ExecuteReader()
                    iReturn = True

                    While myReader.Read()
                        _isFound = True
                        BunifuTextBox13.Text = myReader("saleprice").ToString
                    End While
                Catch ex As Exception
                    MsgBox(ex.Message.ToString)
                    iReturn = False
                End Try

            End Using
        End Using
    End Sub

    Private Sub BunifuButton3_Click(sender As Object, e As EventArgs) Handles BunifuButton3.Click
        Dim a, b, c, d, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z As Decimal
        Dim subtotal, tax, total As Decimal

        If BunifuTextBox9.Text = "" Then
            a = 0
        Else
            a = BunifuTextBox9.Text
        End If
        If BunifuTextBox10.Text = "" Then
            b = 0
        Else
            b = BunifuTextBox10.Text
        End If
        If BunifuTextBox11.Text = "" Then
            c = 0
        Else
            c = BunifuTextBox11.Text
        End If
        If BunifuTextBox12.Text = "" Then
            d = 0
        Else
            d = BunifuTextBox12.Text
        End If
        If BunifuTextBox13.Text = "" Then
            f = 0
        Else
            f = BunifuTextBox13.Text
        End If
        If BunifuTextBox16.Text = "" Then
            g = 0
        Else
            g = BunifuTextBox16.Text
        End If
        If BunifuTextBox17.Text = "" Then
            h = 0
        Else
            h = BunifuTextBox17.Text
        End If
        If BunifuTextBox19.Text = "" Then
            i = 0
        Else
            i = BunifuTextBox19.Text
        End If

        If BunifuTextBox4.Text = "" Then
            j = 0
        Else
            j = BunifuTextBox4.Text
        End If
        If BunifuTextBox5.Text = "" Then
            k = 0
        Else
            k = BunifuTextBox5.Text
        End If
        If BunifuTextBox6.Text = "" Then
            l = 0
        Else
            l = BunifuTextBox6.Text
        End If
        If BunifuTextBox7.Text = "" Then
            m = 0
        Else
            m = BunifuTextBox7.Text
        End If
        If BunifuTextBox8.Text = "" Then
            n = 0
        Else
            n = BunifuTextBox8.Text
        End If
        If BunifuTextBox14.Text = "" Then
            o = 0
        Else
            o = BunifuTextBox14.Text
        End If
        If BunifuTextBox15.Text = "" Then
            p = 0
        Else
            p = BunifuTextBox15.Text
        End If
        If BunifuTextBox20.Text = "" Then
            q = 0
        Else
            q = BunifuTextBox20.Text
        End If

        If BunifuTextBox22.Text = "" Then
            z = 0
        Else
            z = BunifuTextBox22.Text
        End If

        r = a * j
        s = b * k
        t = c * l
        u = d * m
        v = f * n
        w = g * o
        x = h * p
        y = i * q

        subtotal = r + s + t + u + v + w + x + y
        tax = (subtotal / 100) * z
        total = subtotal + tax

        Label10.Text = r
        Label17.Text = s
        Label16.Text = t
        Label15.Text = u
        Label14.Text = v
        Label13.Text = w
        Label12.Text = x
        Label11.Text = y
        Label21.Text = tax
        Label23.Text = "Total Tax: "
        Label19.Text = "SUB TOTAL: "
        Label18.Text = total & " INR"

    End Sub

    Private Sub Button8_Click(sender As Object, e As EventArgs)
        MsgBox(DateTimePicker1.Text)
    End Sub

    Private Sub BunifuButton2_Click(sender As Object, e As EventArgs) Handles BunifuButton2.Click

    End Sub
End Class
1

There are 1 best solutions below

0
On

You can use itextsharp.dll to generate the PDF. And for storing the file, either store the generated PDF file on the hard drive, or only store the data, and re-generate it again on demand.