Click here to Skip to main content
Click here to Skip to main content
Go to top

Service Bill Plus

, 2 Sep 2013
Rate this:
Please Sign up or sign in to vote.
My Article is for the very commercially useful application in Retail Section for Tablet

Please note

This article is an entry in our AppInnovation Contest. Articles in this sub-section are not required to be full articles so care should be taken when voting.


This article is for the RETAIL category and is submitted for exploring the technology in Lenovo Tablet . This article is basically for the application Service Bill Plus , which is a very useful application commercially and for personal use as well . This application solves the technical as well as non technical day to day problems in a very Easy and efficient way . This application targets the Restaurants and its Customers . How the restaurants keep the marketing and bill list updated and how it is becoming very easy with the customers to revolve around the technology to make their search task easier and pay the bill .

Why did i choose to make this application ?

I chose to make this application because it solves most of the problems we are facing in our day to day life . We search on the internet for the latest Menu in our favorite restaurant and then we go to its site (if it is there luckily) then we book our seats for the coming weekend .

What this application does is , it changes the method of searching the menu and ordering the menu , and even you can pay the bill yourself . Enough talk i think for you as a customer but if you are the restaurant owner then this application is a very new revolution for your work place from preparing the bill to maintain the record for the Taste of the regular customer to send the direct advertisement to their application page . 

Before explaining anything , just thought you would like to know which technology of tablet it explores .

Features of Tablet explored

Features of the tablet which are explore in this application are -

1 ) GPS locator , i will not spoil the fun by telling the uses here .

2 ) Digitizer Pen

3 ) Fully touch enabled, different types of gestures like tap , flick  .

4 ) Camera of the tablet . 

Problems solved

Non-Technical and Technical .  

Some of the non-technical problems it solves include -

First are the benefits to the customers -

1 ) Helps the customers of this application to manage the record of the restaurants , their menus , the menu on the basis of their reviews and on the basis of the user's review on the separate list .

2 ) On the choice of the customer , he can receive the discount offers and new menus when he/she is around the restaurant which are registered and using the application .

3 ) User can allow the application when the user and his friend (user obviously) are around the same restaurant . I know this might hurt some of the user of this application when you are cheating on your friend with his wife by taking her out on a Date and your friend will join you in the restaurant to give you surprise but the truth is other way round, actually you shock him when he arrives to the place and catches you .

4 ) Customer can turn on some of the very good features like - calling the waiter automatically when you finish eating by turning the tablet (gyroscope reading change) (optional) .

Second , the benefit to the owner of the restaurant -

1 )  The owner of the restaurant can update the list of menus as many times as he wants and with as much menu item as he wants with images and texts (including price list) .

2 )  He can send the offers advertisement to the customers obviously those who has enables their option of receiving the advertisement with the help of images and text , he can write with the digitizer pen .

3 )  He can track the record of your likings and dislikings and can monitor it with the help of graph and can offer you some best prices for your favorite meals and can also organize small party on your consent and invite all your friend only if you allow to show the friend list .

4 ) This is the very lazy part of him not even being able to write the bill of your food . when you are done eating and you send the confirmation from your table , the bill is ready to print on the restaurant printer from the application only . 

How to's and features of the application in detail

Though the application is very wide in its usage but i will try to explain here most of the features atleast all of those which are already implemented . Here is the screenshot of the main page of the application – it covers the login and signup for both the divisions of the application i.e customers and owner of the restaurant because they both have different interfaces . 

Next is the description of signup page of the application . For owner , it asks for the uploading of the excel sheet of the menu with price list or he can even add the one by one menu . The pictures can be uploaded for the menu in two ways – URL in the excel sheet for the image or one by one for menus . Now comes the main part of the application , the owners location is used and the coordinates are uploaded on the database and the name of the restaurant and its Database of menus are related on the cloud in Windows Azure . The location of the customer that he is around or in the restaurant is cross checked by the location of customer and the corresponding restaurant’s list shows up on the main page of the application in the customer’s view .

 Now , when the owner is signed in the application , he will be able to see the list of the nearby users who are willingly showing their presence and the owner can write the new advertisement on that basis , on the basis of the liking of the customers . Here there are two options – first is the page which gets opened when owner clicks on the middle circle here and if he has to take the information first so that he can personalize the offer , he has to click on the customer name list . As of now , he can flick only 8 customers , by just the flick gesture in a particular direction on the basis of the taste of customer .

Now is the advertiser page where you can write with digitizer on the left side and sign it while you can paste the image on the right side of the page . The app has white background looks quite awkward on this white page .  

Again we have this customer information page , where his likings record can be updated and offers can be made .  


Now , coming to the customer part and his profile . The customer can keep the track of the latest offers in the restaurant he is or he has been around lately . When the customer will enter any restaurant , his application home screen will show that restaurant’s menu and offers he is awarded by the owner of restaurant . His ratings on different tastes he had here . Now , he can select the menu list and can order a meal online from his table and when received and confirmed , he will receive confirmation .

Now comes one more good thing , i really like this feature . When you enable the gyroscope reading by checking on Enable turn tablet billing , then you can automatically order your bill after finishing your plate if the waiter is too busy in restaurant which saves a lot on waiters . When you pick the tablet again , a notification is sent to the owner that you have finished your meal and a bill is generated on the basis of your orders which you did from the table . Now , the owner of the restaurant can print the bill and can keep the record updated . 

Now , the below is the bill page , which will be printed as a whole control page because it is a grid . This print will be sent to the customer while payment and also can be kept with owner also for record in DB . 

Now , this is the some of the concept point which i tried to explain here . There are still many pages which i have not taken screenshot of like sign in , menu list page etc.  

Using the code  

I am not going to copy here the full code but only important ones and the ones which you will find useful rather . This code here is used in our app for the bill printing which is basically a grid . 

PrintDialog dialog = new PrintDialog(); 
    if (dialog.ShowDialog() != true) return; 
    printGrid.Measure(new Size(dialog.PrintableAreaWidth, dialog.PrintableAreaHeight)); 
    printGrid.Arrange(new Rect(new Point(50, 50), printGrid.DesiredSize)); 
    dialog.PrintVisual(printGrid, "The total bill is generated , you are welcome always"); 
// for landscape printing of the we can use
PrintDialog printDialog = new PrintDialog(); 
    printDialog.PrintTicket.PageOrientation = PageOrientation.Landscape;   

 For the location and actual position of the restaurant and customers , we have used the code given below , first is the code for the restaurant which probably will not move from one place to another with its full infrastructure so , we have to just get the fixed coordintate -   

class program
        double lat , long;
        static void Main(string[] args)
        static void GetLocationProperty()
            GeoCoordinateWatcher watcher = new GeoCoordinateWatcher();
            // Do not suppress prompt, and wait 1000 milliseconds to start.
            watcher.TryStart(false, TimeSpan.FromMilliseconds(1000));
            GeoCoordinate coord = watcher.Position.Location;
            if (coord.IsUnknown != true)
               lat = coord.Latitude;
               long = coord.Longitude;
                MessageBox.Show("Error in location")

Now , the customer part , which will move from here and there , we will take his data continuously and update on our server so that we can throw the right restaurant information to his tablet .  

class Program
        double lat ;
        double long ;
        static void Main(string[] args)
            CLocation myLocation = new CLocation();
        class CLocation
            GeoCoordinateWatcher watcher;
            public void GetLocationEvent()
                this.watcher = new GeoCoordinateWatcher();
                this.watcher.PositionChanged += new EventHandler<GeoPositionChangedEventArgs<GeoCoordinate>>(watcher_PositionChanged);
                bool started = this.watcher.TryStart(false, TimeSpan.FromMilliseconds(2000));
                if (!started)
                    MessageBox.Show ("Timed out locator , make sure you allow the location search");
            void watcher_PositionChanged(object sender, GeoPositionChangedEventArgs<GeoCoordinate> e)
                PrintPosition(e.Position.Location.Latitude, e.Position.Location.Longitude);
            void PrintPosition(double Latitude, double Longitude)
                lat = Latitude;
                long = Longitude ;

Now , this latitude and longitude information is continuously sent to the server so that the customer can be provided with the full information of restaurant . 

Here is the xaml which i used for the customer page of the application - 

        <CheckBox Content="Enable Location detector for offers" HorizontalAlignment="Left" Height="29" Margin="47,246,0,0" VerticalAlignment="Top" Width="346"/>
        <CheckBox Content="Enable Friend Locator" HorizontalAlignment="Left" Height="28" Margin="47,275,0,0" VerticalAlignment="Top" Width="346"/>
        <CheckBox Content="Enable Turn Tablet Bill" HorizontalAlignment="Left" Height="28" Margin="47,303,0,-12" VerticalAlignment="Top" Width="346"/>
        <Rectangle Fill="#FF5454C5" HorizontalAlignment="Left" Height="29" Margin="-3,-1,0,0" Stroke="Black" VerticalAlignment="Top" Width="520"/>
        <Rectangle HorizontalAlignment="Left" Height="291" Margin="251,28,0,0" Stroke="Black" VerticalAlignment="Top" Width="3" Fill="#FFC0C0C5"/>
        <Rectangle Fill="#FFC0C0C5" HorizontalAlignment="Left" Height="33" Margin="0,140,0,0" Stroke="Black" VerticalAlignment="Top" Width="251"/>
        <Rectangle Fill="#FFC0C0C5" HorizontalAlignment="Left" Height="33" Margin="0,178,0,0" Stroke="Black" VerticalAlignment="Top" Width="251"/>
        <Rectangle Fill="#FFC0C0C5" HorizontalAlignment="Left" Height="33" Margin="3,28,0,0" Stroke="Black" VerticalAlignment="Top" Width="251"/>
        <Rectangle Fill="#FFC0C0C5" HorizontalAlignment="Left" Height="33" Margin="256,28,0,0" Stroke="Black" VerticalAlignment="Top" Width="261"/>
        <Rectangle Fill="#FFE23711" HorizontalAlignment="Left" Height="33" Margin="3,66,0,0" Stroke="Black" VerticalAlignment="Top" Width="251"/>
        <Rectangle Fill="#FFC0C0C5" HorizontalAlignment="Left" Height="33" Margin="254,108,0,0" Stroke="Black" VerticalAlignment="Top" Width="263"/>
        <Rectangle Fill="#FFC0C0C5" HorizontalAlignment="Left" Height="33" Margin="256,146,0,0" Stroke="Black" VerticalAlignment="Top" Width="261"/>
        <Rectangle Fill="#FFC0C0C5" HorizontalAlignment="Left" Height="33" Margin="254,286,0,0" Stroke="Black" VerticalAlignment="Top" Width="261"/>
        <TextBlock HorizontalAlignment="Left" Height="33" Margin="24,66,0,0" TextWrapping="Wrap" Text="Latest offers and packages for you" VerticalAlignment="Top" Width="181"/>
        <TextBlock HorizontalAlignment="Left" Height="33" Margin="65,145,0,0" Text="{Binding}" TextWrapping="Wrap" VerticalAlignment="Top" Width="181"/>
        <TextBlock HorizontalAlignment="Left" Height="33" Margin="65,178,0,0" Text="{Binding}" TextWrapping="Wrap" VerticalAlignment="Top" Width="181"/>
        <TextBlock HorizontalAlignment="Left" Height="33" Margin="259,108,0,0" Text="{Binding}" TextWrapping="Wrap" VerticalAlignment="Top" Width="181"/>
        <TextBlock HorizontalAlignment="Left" Height="33" Margin="256,146,0,0" Text="{Binding}" TextWrapping="Wrap" VerticalAlignment="Top" Width="181"/>



About 65% , i would say this application is complete . Some cloud issues are hanging and design of some pages have to be changed . Position , menu list from cloud , other data fetching are complete .


Some of the design issues has to be fixed , some services from server like friend's status is not yet integrated . Efficiency in the database with integrity has to be done .


There are more plans for widening this application which have not been illustrated in the article and have not yet been implemented like - customer can see the menu and order from home also from the selected restaurants . Sending email to customers from within the application in the owner interface . 

Points of Interest 

Here , i have listed all the points of interests in short -

1 ) Customer and owner both are using the  location latitude to login . 

2 ) The owner can update the database of menu with the list of tastes including their prices .

3 ) if allowed by the customer , owner can send the offers to then when they are around the restaurant .

4 ) All the friends of the customer are notified that he is scheduling the dinner tonight or he is around , if they plan to hang for the dinner or lunch or breakfast in the restaurant (only on the confirmation of user , friends are notified ) .

5 ) Bills are printed in the form of the proper calculated tax , waiter can be notified as soon as customer finishes the  meal and turn the tablet (this is optional feature not mandatory ). 


First Post of this article but stay connected . We will publish the full project with some limited features here too as a tutorial . 


This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


About the Author

Software Developer zesoft solutions
India India
Windows 8 and windows phone developer for zedsoft solutions .Currently working on Silverlight and WPF for Windows 8 using Intel perceptual computing SDK .
MONOGAME Evangelist and developer .
Worked on the opensource VOIP solutions for implementing it in Windows platforms .
Have 3+ years development experience on windows platforms . Have served for many companies with their technical issues and solutions personally : Neon System (UK) , Cywest Communications Inc (US)are to name few of them .
Developed applications for Windows , Blackberry (with Team) , Windows phone , Android (with Team).
My linkedin :

Comments and Discussions

NewsMessage Automatically Removed PinmemberHearley Klinton26-Aug-14 22:41 
QuestionHow's app development going? Will you be submitting on time? PinstaffKevin Priddle22-Oct-13 9:56 
QuestionNice Idea !! PinmemberSudhanshu SP Gupta4-Sep-13 4:45 
QuestionNice PinprofessionalTalha Naqvi4-Sep-13 4:08 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

| Advertise | Privacy | Mobile
Web03 | 2.8.140922.1 | Last Updated 3 Sep 2013
Article Copyright 2013 by OjasSinha
Everything else Copyright © CodeProject, 1999-2014
Terms of Service
Layout: fixed | fluid