GST Billing Report
GST Billing Report
Submitted in the partial fulfilment of the requirement for the award degree of
BACHELOR OF ENGINEERING
IN
COMPUTER SCIENCE AND ENGINEERING
Submitted By
HRISHIKESH MAHATO TAIYABA FATHIMA
1AR20CS004 1AR20CS014
[Link]. C M JANGIN
Dept. of CS&E
AIEMS
BENGALURU
CERTIFICATE
This is to certify that the mini project report entitled “GST Invoicing and Billing” is a
Bonafide project work carried out by HRISHIKESH MAHATO (1AR20CS004) and
TAIYABA FATHIMA (1AR20CS014) in partial fulfilment of award of Degree of
Bachelor of Engineering in Computer Science and Engineering of Visvesvaraya
Technological University, Belagavi, during the academic year 2022-2023. It is certified that
all corrections/suggestions indicated for Internal Assessment have been incorporated. The
mini project has been approved as it satisfies the academic requirements associated with the
Degree mentioned.
………………………… ………………………
External Viva
1. ………………………… …………………………
2. ………………………… …………………………
ACKNOWLEDGEMENT
The completion of project brings with great sense of satisfaction, but it is never completed
without thanking the persons who all are responsible for its successful completion. First
and foremost, we wish to express our deep sincere feelings of gratitude to our Institution,
AMRUTA INSTITUTE OF ENGINEERING & MANAGEMENT SCIENCES, for
providing us an opportunity to do our education.
We extend our deep sense of sincere gratitude to Dr. SANTHOSH M MURNAL, Principal
AMRUTA INSTITUTE OF ENGINEERING & MANAGEMENT SCIENCES, for having
permitted to carry out the project work successfully.
We express our heartfelt sincere gratitude to Dr. SRINIVASA R, Professor and Head of
Department of Computer Science and Engineering, AMRUTA INSTITUTE OF
ENGINEERING & MANAGEMENT SCIENCES, for his valuable suggestions and
support.
We express our heartfelt and sincere gratitude to project guide [Link]. C M JANGIN,
Professor and Head, Dept. of CS&E, AMRUTA INSTITUTE OF ENGINEERING &
MANAGEMENT SCIENCES, for her constant support and guidance.
Finally, we would like to thank all the Teaching, Technical faculty and supporting staff
members of Department of Computer Science and Engineering, AMRUTA INSTITUTE
OF ENGINEERING & MANAGEMENT SCIENCES, for their support.
(1AR20CS004) (1AR20CS014)
i
DECLARARTION
project entitled “GST Invoicing and Billing ” has been carried out by us under the guidance
Computer Science and Engineering, AIeMS, Bengaluru, submitted in the fulfillment of the
requirements for the course requirements for the award of the degree of Bachelor of
Place:
Date:
ii
ABSTRACT
GST is characterized as the bigger backhanded expense structure intended to help and upgrade
the financial development of a country. It would enthusiasm to comprehend why this proposed
GST administration may hamper the development and advancement of the nation. In this
project I have developed an application software to manage the bill submission process in shop
or organization. Manually it’s very difficult to calculate different types of items with different
GST value. This process is very difficult and time consuming. That’ s why I tried to develop a
system which can calculate GST value of each and every product. This application is developed
to manage the bill submission process in shop or organization. Using this system shop
employee can generate bill with GST calculations for customer for his purchase and also print
its bill copy for customer. The main purpose of this inventory maintenance and billing using
GST system project is developing a system that automate the bill save.
iii
TABLE OF CONTENTS
Acknowledgement i
Declaration ii
Abstract iii
Table of contents iv
List of figures v
Chapter 1 INTRODUCTION
1.1 Introduction 1
1.3 Scope 2
Chapter 3 DESIGN
3.1 Objectives of The Project 4
3.2 Methodology 5
Chapter 4 IMPLEMENTATION
4.1 Introduction to Android 7
4.1.6 Applications 10
4.2 Platform 10
iv
4.3 Language 11
List of Figures
v
GST Invoicing and Billing 2022-23
CHAPTER 1
INTRODUCTION
1.1 Introduction
In this project we have developed an application software to manage the bill submission
process in shop or organization. Manually it’s very difficult to calculate different types of
items with different GST value. This process is very difficult and time consuming. That’ s
why we tried to develop a system which can calculate GST value of each and every product.
This application is developed to manage the bill submission process in shop or
organization. Using this system shop employee can generate bill with GST calculations for
customer for his purchase and also print its bill copy for customer. The main purpose of
this inventory maintenance and billing using GST system project is developing a system
that automate the bill save.
Calculating taxes accurately can be a complex and time-consuming task, especially
considering the various tax rates applicable to different products and services. The GST
Billing Application automates tax calculations based on the relevant GST rates, eliminating
the need for manual calculations. This feature saves businesses valuable time and ensures
accurate tax amounts on invoices.
1.3 Scope
It is used to define and understand the current method of implementation, such as a system,
a product etc. From this analysis, it is not uncommon to discover there is actually nothing
wrong with the current system or product other than some misunderstandings regarding it
overlaps it needs some simple modifications regarding it or perhaps it needs some simple
modifications as opposed to a major service.
Currently in most of our shops or market does not use computers for performing their daily
tasks. There is a limited number or shop that use Microsoft office products, such as MS
word and MS excel for performing their daily inventory tasks. Most of them do not even
have the information that computers can make a great difference in the way they are doing
their t asks when they are programmed to do so. In the existing system all transactions,
dealing of products, purchasing of products were done manually which time consuming.
Reports are prepared manually when needed. Maintaining of reports are very difficult task
and it is very difficult to know the status of the submitted bill calculation with GST.
CHAPTER 2
The various requirements that are essential for this project are specified over here. These
requirements have to be fulfilled for successful of the project. The purpose scope along
with hardware and software requirements helps for proper execution.
• Android studio
• XML
• SDK 7.0
• UML
The project works with any IBM PC compatible with Intel or AMD processor. Processor:
Intel Pentium 41.50 Giga HZ
CHAPTER 3
DESIGN
The proposed system is intended to provide the facility of automating the inventory tasks
such as item management and customer billing with a GST for the shop or market. This
project is designed with a goal to making the existing system more informative, reliable,
fast and easier.
• purchase, product details which are going out into market. Details are maintained in This
project is a software application which is designing for managing sales, centralized
database.
• The main objective of our project is to make efficient transaction management system
which is user friendly and at the same time powerful.
• Making the system reliable, easier, faster and more informative an effective.
• System plays an important role in achieving the desired plans availability at an optimum
cost.
• To produce software which manages the sales activity done in a market, maintaining the
details of the products and to maintain the records of the sale.
❖ Motivation
• It saves time and reduces the chances of manual errors while computing the cost of goods
and services.
Methodology
Data were collected from different markets which same half of them use manual system
while others use computerized system and customers of both type of markets. Interviewing
the people who worked and have experienced how to manage market, to know the quality
and the intensity of the information we need.
CHAPTER 4
IMPLEMENTATION
Project implementation is the segment wherein visions and plans come to be a reality. This
is the logical conclusion, after evaluating, deciding, visioning, planning, applying for
finances, and finding the monetary resources of a challenge. The implementation degree of
the project cycle is in many approaches the most critical, as it’s miles in the course of this
stage that planned advantages are delivered. All different stages within the cycle are
therefore essentially supportive of this implementation stage. A task has to be implemented
successfully while the allocation of undertaking obligations to the assignment team in the
organization.
It’s user-friendly, has huge community support, provides a greater extent of customization,
and a large number of companies build Android-compatible smart phones. As a result, the
market observes a sharp increase in the demand for developing Android mobile
applications, and with that companies need smart developers with the right skill set. At first,
the purpose of Android was thought of as a mobile operating system. However, with the
advancement of code libraries and its popularity among developers of the divergent
domain, Android becomes an absolute set of software for all devices like tablets, wear able,
set-top boxes, smart TVs, notebooks, etc.
CG (Computer graphics) started with the display of data on hardcopy plotters and cathode
ray tube screens soon after the introduction of computer themselves.
4.1.6 Applications
Applications is the top layer of android architecture. The pre-installed applications like
home, contacts, camera, gallery etc. And third-party applications downloaded from the play
store, like chat applications, games etc. will be installed on this layer only. It runs within
the android runtime with the help of the classes and services provided by the application
framework.
4.2 Platform
Windows 10 is a computer operating system by Microsoft as part of its Microsoft Windows
family of operating systems. It was known as Threshold when it was being developed and
announced at a press event on 30 September 2014. It came out for PC son 29 July 2015.
Beginning on that day, Windows 10 was available as a free upgrade for users running
Windows 7and Windows 8.1 for one year.
Windows 10 is designed to provide a common, "universal" user interface for various
systems. These include desktop, laptop, and all-in-one PCs, tablet computers, smart phones,
and embedded systems such as the Xbox game console. This allows Microsoft to integrate
each type of platform with greater ease.
Microsoft releases updates every half a year, an example of the software as a service
principle. Each release has a four-digit build number the first two digits referring to the
year of release, and the other two digits referring to the month of release (eg: "1903" refers
to a build released in March 2019).
4.3 Language
Java is a high-level, class-based, object-oriented programming language that is designed to
have as few implementation dependencies as possible. It is a general- purpose programming
language intended to let application developers write once, run anywhere meaning that
compiled Java code can run on all platforms that support Java without the need for
recompilation. Java applications are typically compiled to byte code that can run on any
Java virtual.
import [Link];
import [Link];
[Link];
public class BillsActivity extends AppCompatActivity implements
[Link]<Cursor>,
[Link] {
Private RecyclerViewunpaid RecyclerView;
private BillAdapter adapter;
private String billListStatus;
private int billDividerColor;
private String billSortOrder;
private static final int BILL_LOADER_ID = 100;
@Override
protected void onCreate(Bundle savedInstanceState) {
[Link](savedInstanceState);
setContentView([Link].activity_bills);
Toolbar toolbar = (Toolbar) findViewById([Link]);
setSupportActionBar(toolbar);
if(savedInstanceState != null){
billListStatus=[Link]([Link]
ARY_ COLUMN_ STATUS);
}else {
billListStatus = GSTBillingContract.BILL_STATUS_UNPAID;
}
[Link] builder = new [Link]();
[Link]([Link]());
isStoragePermissionGranted(); switch (billListStatus){
case GSTBillingContract.BILL_STATUS_PAID:
getSupportActionBar().setTitle([Link].paid_bills_title);
billDividerColor = [Link]; billSortOrde="DESC";
break;
}
case GSTBillingContract.BILL_STATUS_UNPAID:
getSupportActionBar().setTitle([Link].unpaid_bills_title);
billDividerColor = [Link];
billSortOrder = " ASC"; break;
FloatingActionButton fab = (FloatingActionButton) findViewById([Link].fab_unpaid);
[Link](new [Link]() {
@Override
public void onClick(View view) {
startActivity(new Intent([Link], [Link]));
}
}
);
checkPasswordSetup();
unpaidRecyclerView = (RecyclerView) findViewById([Link].unpaid_recycler_view);
[Link](new LinearLayoutManager(this));
[Link](true);
adapter = new BillAdapter(this, this, billDividerColor);
[Link](adapter);
getSupportLoaderManager().initLoader(BILL_LOADER_ID, null, this);
}
private void checkPasswordSetup() {
SharedPreferences prefs = [Link](this);
if([Link](SetupPasswordActivity.SETUP_PASSWORD_KEY, null) == null){
Intentintent=newIntent(this,[Link]);
startActivity(intent); finish();
}
}
public boolean isStoragePermissionGranted(){
if([Link].SDK_INT >= 23){
Dept of CSE,AIeMS Page 13
GST Invoicing and Billing 2022-23
if(checkSelfPermission([Link].WRITE_EXTERNAL_STORAGE)==
PackageManager.PERMISSION_GRANTED){
return true;
}else{
[Link](
this, new String[]{[Link].WRITE_EXTERNAL_STORAGE}, 1);
return false;
}
}else{ return true;
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu;
this adds items to the action bar if it is present.
getMenuInflater().inflate([Link].menu_bills_list, menu);
if([Link](GSTBillingContract.BILL_STATUS_PAID)){
[Link]([Link].action_swap_bills_list).setTitle([Link].action_show_unpaid_bills);
}
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in [Link]. int id = [Link]();
if(id == [Link].action_swap_bills_list){
switch (billListStatus){
case GSTBillingContract.BILL_STATUS_UNPAID: billListStatus =
GSTBillingContract.BILL_STATUS_PAID;
[Link](getString([Link].action_show_unpaid_bills));
getSupportActionBar().setTitle(getString([Link].paid_bills_title));
billDividerColor = [Link];
billSortOrder = " DESC"; break;
case GSTBillingContract.BILL_STATUS_PAID:
billListStatus = GSTBillingContract.BILL_STATUS_UNPAID;
[Link](getString([Link].action_show_paid_bills));
getSupportActionBar().setTitle(getString([Link].unpaid_bills_title));
billDividerColor = [Link];
billSortOrder = " ASC"; break;
}
getSupportLoaderManager().restartLoader(BILL_LOADER_ID, null, this);
}
return [Link](item);
}
@Override
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
switch (id) case BILL_LOADER_ID: return new CursorLoader(
this, [Link].CONTENT_URI, null,
[Link].PRIMARY_COLUMN_STATUS + "='" +
billListStatus + "'",null,
[Link]._ID + billSortOrder
);
default:
throw new RuntimeException("Loader not implemented: " + id);
}
}
@Override
public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
[Link](data,billDividerColor);
}
@Override
public void onLoaderReset(Loader<Cursor> loader) { [Link](null,
[Link]);
}
@Override
public void onBillItemClick(String clickedBillId,String customerName,String
phoneNumber) {
Intent detailIntent = new Intent(this, [Link]);
[Link]([Link]._ID, clickedBillId);
[Link]([Link].PRIMARY_COLUMN_STA
TU S, billListStatus);
[Link]([Link].PRIMARY_COLUMN_NA
ME, customerName);
[Link]([Link].PRIMARY_COLUMN_PHO
NE_NUMBER, phoneNumber);
startActivity(detailIntent);
}
@Override
protected void onSaveInstanceState(Bundle outState) {
[Link]([Link].PRIMARY_COLUMN_STAT
US, billListStatus);
[Link](outState);
}
}
package [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
Dept of CSE,AIeMS Page 16
GST Invoicing and Billing 2022-23
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
public class NewBillActivity extends AppCompatActivity {
public static boolean addingMoreItems = false;
private Spinner taxSlabSpinner;
private EditText itemDescription;
private EditText finalPriceEt;
private EditText quantityEt;
private Button finishBtn;
private int taxSlab; List<ContentValues> cvList;
@Override
protected void onCreate(Bundle savedInstanceState) {
[Link](savedInstanceState);
setContentView([Link].activity_new_bill);
taxSlabSpinner = (Spinner) findViewById([Link].tax_slab_spinner);
setupTaxSpinner();
[Link]([Link],
getString([Link].enter_final_price_error), Toast.LENGTH_SHORT).show();
return;
}
if([Link]().toString().length() == 0){
[Link]("1");
}
ContentValues cv = new ContentValues();
[Link](GSTBillingCustomerEntry.SECONDARY_COLUMN_ITEM_DESCRIPTION,
[Link]().toString());
[Link](GSTBillingCustomerEntry.SECONDARY_COLUMN_FINAL_PRICE,
[Link]([Link]().toString()));
[Link](GSTBillingCustomerEntry.SECONDARY_COLUMN_QUANTITY,
[Link]([Link]().toString()));
[Link](GSTBillingCustomerEntry.SECONDARY_COLUMN_TAX_SLAB,taxSlab);
getContentResolver().update(
GSTBillingEntry.CONTENT_URI.buildUpon().appendPath([Link](Det
ail Activity.EDITING_ITEM)).appendPath([Link](idValue)).build(),
cv, null, null
);
ContentValues contentValues = new ContentValues();
[Link]([Link].PRIMARY_COLUMN_STAT
US, GSTBillingContract.BILL_STATUS_UNPAID);
getContentResolver().update(
[Link].CONTENT_URI.buildUpon().appendPath(editInte
[Link] StringExtra(DetailActivity.EDITING_ITEM)).build(),contentValues,
[Link]._ID+"="+[Link](DetailActivity.
EDIT ING_ITEM),null);
[Link]();
finish();
}
});
}
Else
{
cvList = new ArrayList<>();
}
}
private void setupTaxSpinner() {
ArrayAdapter<CharSequence>adapter=[Link](this,
[Link].tax_slab_list_array,
[Link].simple_spinner_item);
[Link]([Link].simple_spinner_dropdown_item);
[Link](adapter);
[Link](new [Link]()
{
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id)
{
switch (position){ case 0: taxSlab = 28; break;
case 1:
taxSlab = 18; break; case 2:
taxSlab = 12; break; case 3:
taxSlab = 5; break;
}
}
@Override
public void onNothingSelected(AdapterView<?> parent) { taxSlab = 28;
}
});
}
public void addToBill(View view){
if([Link]().toString().length() == 0){
[Link]("NA");
}
if([Link]().toString().length() == 0){ [Link]();
[Link](this, getString([Link].enter_final_price_error),
Toast.LENGTH_SHORT).show();
return;
}
if([Link]().toString().length() == 0){ [Link]("1");
}
ContentValues cv = new ContentValues();
[Link](GSTBillingCustomerEntry.SECONDARY_COLUMN_ITEM_DESCRIPTION,
[Link]().toString());
[Link](GSTBillingCustomerEntry.SECONDARY_COLUMN_FINAL_PRICE,
[Link]([Link]().toString()));
[Link](GSTBillingCustomerEntry.SECONDARY_COLUMN_QUANTITY,
[Link]([Link]().toString()));
[Link](GSTBillingCustomerEntry.SECONDARY_COLUMN_TAX_SLAB, taxSlab);
[Link](cv);
[Link](this,getString([Link].item_added_success),
Toast.LENGTH_SHORT).show();
[Link](""); [Link](""); [Link]("");
[Link](true);
[Link]();
}
public void finishAddingItems(View view){
// Check if any item is added in Selling price EditText before finishing the bill
if([Link]().toString().length() != 0){
[Link](this, getString([Link].add_item_to_bill_error),
Toast.LENGTH_SHORT).show();
return;
}
if(!getIntent().hasExtra(DetailActivity.ADDING_MORE_ITEMS)){
// Inserting customer details in primary table Intent intent = getIntent();
String customerName =
[Link](NewBillCustomerActivity.ADD_CUSTOMER_NAME_KEY);
StringphoneNumber=[Link](NewBillCustomerActivity.ADD_CUSTOMR
_PHONE_KEY);
String billDate = new SimpleDateFormat("dd-MM-yyyy").format(new Date());
String billStatus = GSTBillingContract.BILL_STATUS_UNPAID;
ContentValues contentValues = new ContentValues();
[Link](GSTBillingEntry.PRIMARY_COLUMN_NAME, customerName);
[Link](GSTBillingEntry.PRIMARY_COLUMN_PHONE_NUMBER,
phoneNumber);
[Link](GSTBillingEntry.PRIMARY_COLUMN_DATE, billDate);
[Link](GSTBillingEntry.PRIMARY_COLUMN_STATUS, billStatus);
Uri idUri = getContentResolver().insert(GSTBillingEntry.CONTENT_URI,
contentValues);
// Inserting item details in secondary table String id = [Link]();
getContentResolver().bulkInsert([Link].CONTENT_URI.
buil dUpon().appendPath(id).build(),
[Link](new ContentValues[[Link]()]));
// Opening detail activity
Intent detailIntent = new Intent(this, [Link]);
[Link](GSTBillingEntry._ID, id);
[Link](GSTBillingEntry.PRIMARY_COLUMN_NAME, customerName);
[Link](GSTBillingEntry.PRIMARY_COLUMN_PHONE_NUMBER,
phoneNumber);
[Link](GSTBillingEntry.PRIMARY_COLUMN_STATUS,
Dept of CSE,AIeMS Page 22
GST Invoicing and Billing 2022-23
GSTBillingContract.BILL_STATUS_UNPAID);
startActivity(detailIntent); finish();
}else { addingMoreItems = true;
String id = getIntent().getStringExtra(GSTBillingEntry._ID);
getContentResolver().bulkInsert([Link].CONTENT_URI.
buil
dUpon().appendPath(id).build(),
[Link](new ContentValues[[Link]()]));
ContentValues contentValues = new ContentValues();
[Link]([Link].PRIMARY_COLUMN_STAT
US, GSTBillingContract.BILL_STATUS_UNPAID);
getContentResolver().update(
[Link].CONTENT_URI.buildUpon().appendPath(String.v
alu eOf(id)).build(),
contentValues, [Link]._ID + "=" + id, null
);
[Link]();
finish();
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate([Link].menu_bill, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = [Link]();
if(id == [Link].action_discard){
finish();
}
return [Link](item);
}
}
4.4.2 [Link]
<?xml version="1.0" encoding="utf-8"?>
<[Link]
xmlns:android="[Link]
xmlns:app="[Link]
xmlns:tools="[Link]
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
android:background="@drawable/back3"
tools:context="[Link]">
<[Link]
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="5dp"
android:theme="@style/[Link]">
<[Link]
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:popupTheme="@style/[Link]" />
</[Link]>
<LinearLayout
android:layout_marginTop="?attr/actionBarSize"
android:layout_marginBottom="@dimen/activity_vertical_margin"
android:layout_marginLeft="@dimen/activity_horizontal_margin"
android:layout_marginRight="@dimen/activity_horizontal_margin"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<[Link]
android:id="@+id/unpaid_recycler_view"
android:layout_width="match_parent"
android:padding="@dimen/activity_horizontal_margin"
android:layout_height="wrap_content" />
</LinearLayout>
<Button
android:id="@+id/action_aboutus"
android:layout_width="73dp"
android:layout_height="69dp"
android:layout_gravity="bottom"
android:layout_margin="@dimen/fab_margin"
android:background="@android:drawable/ic_dialog_info"
android:backgroundTint="@color/colorPrimary"
android:onClick="goNext"
tools:ignore="SpeakableTextPresentCheck" />
<!-- <[Link]-->
<!-- android:id="@+id/fab_unpaid"-->
<!-- android:layout_width="82dp"-->
<!-- android:layout_height="90dp"-->
<!-- android:layout_gravity="bottom"-->
<!-- android:layout_margin="@dimen/fab_margin"-->
<!-- android:tint="@color/colorPrimaryDark"-->
<!-- app:backgroundTint="#FFFFFF"-->
<!-- app:srcCompat="@android:drawable/ic_dialog_info"-->
<!-- tools:ignore="SpeakableTextPresentCheck" />-->
<[Link]
android:id="@+id/fab_unpaid"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_margin="@dimen/fab_margin"
android:tint="@color/colorPrimaryDark"
app:srcCompat="@android:drawable/ic_input_add"
tools:ignore="SpeakableTextPresentCheck" />
</[Link]>
4.4.3 [Link]
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="[Link]
xmlns:tools="[Link]
android:id="@+id/activity_detail"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:background="@drawable/back2"
tools:context="[Link]"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:textColor="@color/colorPrimaryText"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textStyle="bold"
android:gravity="center"
android:text="@string/serial_number_label"/>
<TextView
android:textColor="@color/colorPrimaryText"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="3"
android:textStyle="bold"
android:gravity="center"
android:text="@string/price_label"/>
<TextView
android:textColor="@color/colorPrimaryText"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1.5"
android:textStyle="bold"
android:gravity="center"
android:text="@string/qty_label"/>
<TextView
android:textColor="@color/colorPrimaryText"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="3"
android:textStyle="bold"
android:gravity="center"
android:text="@string/rate_label"/>
<TextView
android:textColor="@color/colorPrimaryText"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="3"
android:textStyle="bold"
android:gravity="center"
android:text="@string/taxable_value_label"/>
<TextView
android:textColor="@color/colorPrimaryText"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="2"
android:textStyle="bold"
android:gravity="center"
android:text="@string/tax_slab_tv"/>
<TextView
android:textColor="@color/colorPrimaryText"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="2"
android:textStyle="bold"
android:gravity="center"
android:text="@string/cgst_label"/>
<TextView
android:textColor="@color/colorPrimaryText"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="2"
android:textStyle="bold"
android:gravity="center"
android:text="@string/sgst_label"/>
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@android:color/black" />
<ScrollView
android:id="@+id/detail_sv"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<[Link]
android:id="@+id/detail_recycler_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="20dp"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:textColor="@color/colorPrimaryText"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:text="@string/total_amount_before_tax_label"
android:textSize="18sp"
android:textStyle="bold"/>
<TextView
android:id="@+id/total_amount_before_tax_value"
android:layout_width="0dp"
android:layout_weight="1"
android:gravity="center_vertical|right"
android:layout_height="match_parent"
android:textSize="18sp"
android:layout_margin="10dp"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:textColor="@color/colorPrimaryText"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:text="@string/total_cgst_label"
android:textSize="18sp"
android:textStyle="bold"/>
<TextView
android:id="@+id/total_cgst_value"
android:layout_width="0dp"
android:layout_weight="1"
android:gravity="center_vertical|right"
android:layout_height="match_parent"
android:textSize="18sp"
android:layout_margin="10dp"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:textColor="@color/colorPrimaryText"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:text="@string/total_sgst_label"
android:textSize="18sp"
android:textStyle="bold"/>
<TextView
android:id="@+id/total_sgst_value"
android:layout_width="0dp"
android:layout_weight="1"
android:gravity="center_vertical|right"
android:layout_height="match_parent"
android:textSize="18sp"
android:layout_margin="10dp"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:textColor="@color/colorPrimaryText"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:text="@string/total_gst_label"
android:textSize="18sp"
android:textStyle="bold"/>
<TextView
android:id="@+id/total_gst_value"
android:layout_width="0dp"
android:layout_weight="1"
android:gravity="center_vertical|right"
android:layout_height="match_parent"
android:textSize="18sp"
android:layout_margin="10dp"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:textColor="@color/colorPrimaryText"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:text="@string/total_amount_label"
android:textSize="18sp"
android:textStyle="bold"/>
<TextView
android:id="@+id/total_amount_after_tax_value"
android:layout_width="0dp"
android:layout_weight="1"
android:gravity="center_vertical|right"
android:layout_height="match_parent"
android:textSize="18sp"
android:layout_margin="10dp"/>
</LinearLayout>
<TextView
android:id="@+id/total_amount_in_words_value"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:textSize="16sp"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
</ScrollView>
</LinearLayout>
4.4.4 [Link]
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="[Link]
xmlns:tools="[Link]
android:id="@+id/activity_new_bill"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="15dp"
android:background="@drawable/back2"
tools:context="[Link]"
android:orientation="vertical">
<ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:text="@string/item_tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<EditText
android:id="@+id/new_item_value"
android:hint="@string/item_hint"
android:layout_marginBottom="10dp"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<TextView
android:text="@string/final_price_tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<EditText
android:id="@+id/new_final_price_value"
android:hint="@string/final_price_hint"
android:inputType="number"
android:maxLines="1"
android:layout_marginBottom="10dp"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<TextView
android:text="@string/quantity_tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<EditText
Dept of CSE,AIeMS Page 34
GST Invoicing and Billing 2022-23
android:id="@+id/new_quantity_value"
android:hint="@string/quantity_tv"
android:inputType="number"
android:maxLength="3"
android:maxLines="1"
android:layout_marginBottom="10dp"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<TextView
android:text="@string/tax_slab_tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<Spinner
android:id="@+id/tax_slab_spinner"
android:layout_marginBottom="10dp"
android:padding="10dp"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<Button
android:onClick="addToBill"
android:id="@+id/add_to_bill_btn"
android:layout_marginBottom="5dp"
android:text="@string/add_to_bill_btn_label"
android:background="@color/colorPrimary"
android:textColor="@android:color/white"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<Button
android:onClick="finishAddingItems"
android:id="@+id/finish_btn"
android:layout_marginBottom="10dp"
android:text="@string/finish_btn_label"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<Button
android:id="@+id/done_edit_item_btn"
android:layout_marginBottom="5dp"
android:text="@string/done_edit_item_btn_label"
android:background="@color/colorPrimary"
android:textColor="@android:color/white"
android:visibility="gone"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
</ScrollView>
</LinearLayout>
<TextView
android:text="@string/setup_business_label"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<EditText
android:id="@+id/setup_business_value"
android:hint="@string/setup_business_hint"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp" />
<TextView
android:text="@string/setup_business_address_label"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<EditText
android:id="@+id/setup_business_address_value"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp" />
<TextView
android:text="@string/setup_business_contact_label"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<EditText
android:id="@+id/setup_business_contact_value"
android:inputType="number"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp" />
<TextView
android:text="@string/setup_new_password"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<EditText
android:id="@+id/setup_new_password_value"
android:hint="@string/setup_new_password_hint"
android:inputType="textPassword"
android:maxLines="1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"/>
<TextView
android:text="@string/setup_confirm_password"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<EditText
android:id="@+id/setup_confirm_password_value"
android:hint="@string/setup_confirm_password_hint"
android:inputType="textPassword"
android:maxLines="1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"/>
<Button
android:text="Setup"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/setup_password_btn" />
</LinearLayout>
4.4.6 [Link]
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="[Link]
<uses-permission
android:name="[Link].WRITE_EXTERNAL_STORAGE" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="GST E-Bill"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity
android:name=".aboutus"
android:exported="false" />
<activity
android:name=".BillsActivity"
android:theme="@style/[Link]"
android:exported="true">
<intent-filter>
<action android:name="[Link]" />
<provider
android:name=".[Link]"
android:authorities="[Link]"
android:exported="false" />
<activity
android:name=".NewBillActivity"
android:label="@string/new_bill_activity_title" />
<activity
android:name=".NewBillCustomerActivity"
android:label="@string/new_bill_customer_activity_title" />
<activity android:name=".DetailActivity" />
<activity android:name=".SavePDFActivity" />
</application>
</manifest>
CHAPTER 5
RESULT AND DISCUSSION
5.1 Snapshots
Snapshots is nothing but informal photograph taken quickly, typically with a small
handheld camera. In other words diffened as an informal photograph that is taken quickly
a quick view or a small amount of information that tells you a little about what someone or
something is like The complete working of the Simulation of Train Depot have been
picturized using openGL program. And the outcomes are depicted using snapshots. These
snapshots sequentially describe all the phases included in the code.
The fig shows the application logo which shows when the run is succeeded and the
application is installed into the android virtual device. When the user clicks on application
icon, application is started.
This is the intro layout window or screen which is displayed when the application is started.
Here the user has to enter customer details like name and contact details.
Here, admin or authority of the sales organization can add his business name, address,
contact number and password credentials. When setup is clicked, records are stored into
database.
The price details like MRP, tax amount, CGST, SGST, GST are allotted to the customer as
per his purchases. And total price amount is calculated and are displayed at the bottom of
the layout.
When the customer agrees to purchase the product in respective sales organization, admin
can mark that payment has done by clicking the three menu button and ‘Mark as paid’
button.
CHAPTER 6
In this system we implement the automatic GST report generation software for purchase
and sales. We develop a system which calculates the GST reports and also generate excel
sheets of the reports which needs to submit to the government. To do manual calculation is
a difficult task so we design a system which will reduce the manual work as well as save
the time and generate reports efficiently. It is designed to replace an existing manual record
system for reducing time taken for calculations and for storing data. The system is strong
to handle daily operations where the database is cleared over certain time. This will reduce
manual work, calculations and will also provide periodic reports any time.
The future system can be designed with more filter facilities such as supplier wise GST
Billing. Integrate Bank transaction details with the application. Managing Credit and Debit
details like mini accounts. The application will be enhanced into mobile application. GST
Wise Report will be displayed in the form of chart layout. Auditor can view the company
GST bill details in their mobile application itself.
BIBLIOGRAPHY