SlideShare uma empresa Scribd logo
1 de 13
BÁO CÁO THỰC TẬP TUẦN 5
ĐỀ TÀI:
PHÁT TRIỂN PHẦN MỀM QUẢ LÍ KHÁCH HÀNG
TRÊN ANDROID TRÊN ĐIỆN THOẠI SỬ DỤNG
ANDROID
Xây Dựng các class liên quan đơn
hàng, sản phẩm, database
GVHD : Thầy Võ Đỗ Thắng
SVTH : Trương Duy Linh
MSSV : 51101863
- Class DonHang
//Class đơn hàng chứa thông tin đơn hàng gồm mã, tên, date, smoney
public class DonHang implements Serializable{
private static final long serialVersionUID = 1L;
private String maDH;
private String tenDH;
private String date;
private String smoney;
//khởi tạo danh sách sản phẩm
private ArrayList<SanPham>arrsp=new ArrayList<SanPham>();
public DonHang(){
}
public DonHang(String maDH,String tenDH,String date,String smoney){
this.maDH=maDH;
this.tenDH=tenDH;
this.date=date;
this.smoney=smoney;
}
//các tác vụ get,set
public String gettenDH(){return tenDH;}
public void settenDH(String ten){this.tenDH=ten;}
public String getmaDH(){return maDH;}
public void setmaDH(String ma){this.maDH=ma;}
public String getdate(){return date;}
public void setdate(String date){this.date=date;}
public String getsmoney(){return smoney;}
public void setsmoney(String smoney){this.smoney=smoney;}
//thêm sản phẩm cho đơn hàng
public void Themsp(SanPham sp){
int i=0;
for(;i<arrsp.size();i++){
SanPham old=arrsp.get(i);
if(old.getmaSP().trim().equalsIgnoreCase(sp.getmaSP().trim())){
break;
}
}
if(i<arrsp.size()){
arrsp.set(i, sp);
}
else{
arrsp.add(sp);
}
}
//lấy sản phẩm tại vị trí index của mảng
public SanPham get(int index){
return arrsp.get(index);
}
//lấy sô lượng sản phẩm
public int size(){
return arrsp.size();
}
//lấy danh sách sản phẩm của đon hàng đó
public ArrayList<SanPham> getListSP(){
return this.arrsp;
}
//--------------------------------------------
@Override
public String toString()
{
return this.maDH+" "+this.tenDH+" "+this.date+" "+this.smoney;
}
}
- Class DanhSachDonHang
public class DanhSachDonHang extends Activity{
ImageButton btnbackDH;
ListView lvdh;
Button btnthemdh;
KhachHang kh=null;
ArrayAdapter<DonHang> adapter=null;
ArrayList<DonHang> arrdh=null;
DonHang donhang=null;
DatabaseHandler db;
private int position =-1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_dsdh);
btnbackDH=(ImageButton)findViewById(R.id.btnbackDH);
lvdh=(ListView)findViewById(R.id.lvDH);
btnthemdh=(Button)findViewById(R.id.btnthemdh);
db=new DatabaseHandler(this);
arrdh=new ArrayList<DonHang>();
getData();
Event();
registerForContextMenu(lvdh);
}
/*
* Lấy khách hàng là chủ của các đơn hàng này
* Lấy danh sách các sản phẩm từ CSDL
*/
public void getData(){
Intent i=getIntent();
Bundle b=i.getBundleExtra("DATA");
kh=(KhachHang)b.getSerializable("KHACHHANG");
arrdh=kh.getListDH();
Them_sp_va_tinh_giadonhang();//-----------
adapter=new
ArrayAdapter<DonHang>(this,android.R.layout.simple_list_item_1,arrdh);
lvdh.setAdapter(adapter);
}
//Xử lí các sự kiện
public void Event(){
//Xử lí sự kiện trở về danh sách khách hàng
btnbackDH.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent i=getIntent();
Bundle b=new Bundle();
b.putSerializable("KHACHHANG", kh);
i.putExtra("DATA", b);
setResult(MainActivity.CAPNHAT_DS_DON_HANG_THANHCONG,i);
finish();
}
});
//Xử lí sự kiện click vào item ListView
lvdh.setOnItemLongClickListener(new OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view,
int arg, long id) {
donhang=arrdh.get(arg);
position=arg;
return false;
}
});
//Xử lí sự kiện thêm đơn hàng cho vào danh sách đơn hàng
btnthemdh.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
doThemDonHang();
}
});
}
//Đăng kí Contextmenu
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
// TODO Auto-generated method stub
super.onCreateContextMenu(menu, v, menuInfo);
getMenuInflater().inflate(R.menu.context_menu_dh, menu);
}
//Xử lí xự kiện click item trong contextmenu
//Gồm: sửa, xóa, xem danh sách sản phẩm
@Override
public boolean onContextItemSelected(MenuItem item){
switch(item.getItemId()){
case R.id.mnusuadh:doSuaDonHang();break;
case R.id.mnuxoadh:doXoaDonHang();break;
case R.id.mnudssp:doDanhSachSanPham();break;
}
return super.onContextItemSelected(item);
}
//Intent gọi Activity DanhSachSanPham
public void doDanhSachSanPham(){
//for(SanPham
san:db.getdssp_ofdh(Integer.parseInt(donhang.getmaDH()))){
//donhang.Themsp(san);
//}
Intent i=new Intent(this, DanhSachSanPham.class);
Bundle bundle=new Bundle();
bundle.putSerializable("DONHANG", donhang);
i.putExtra("DATA", bundle);
startActivityForResult(i,MainActivity.MO_ACTIVITY_DANHSACH_SAN_PHAM);
}
//Thêm các sản phẩm vào mỗi đơn hàng tương ứng
//tính giá của đơn hàng thông qua các sản phẩm đó
public void Them_sp_va_tinh_giadonhang(){
for(DonHang dhang:arrdh){
int gia=0;
for(SanPham san:db.getdssp_ofdh(Integer.parseInt(dhang.getmaDH()))){
dhang.Themsp(san);
gia+=Integer.parseInt(san.getprice());
}
dhang.setsmoney(String.valueOf(gia));
db.updateDonHang(dhang);
}
}
//Hiển thị form AlertDialog, thực hiện việc xóa đơn hàng
public void doXoaDonHang() {
AlertDialog.Builder builder=new AlertDialog.Builder(this);
builder.setTitle("XOA");
builder.setMessage("Bạn có chắc muốn xóa");
builder.setIcon(R.drawable.ic_launcher);
builder.setNegativeButton("Không", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
builder.setPositiveButton("Có",new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
arrdh.remove(donhang);
db.delete_quanhe_DH_SP_tu_DH(donhang);
db.delete_quanhe_KHDH_tu_DH(donhang);
db.deleteDonHang(donhang);
adapter.notifyDataSetChanged();
}
});
builder.show();
}
//Intent gọi Activity Activity_SuaDonHang
public void doSuaDonHang() {
Intent i=new Intent(this,Activity_SuaDonHang.class);
Bundle b=new Bundle();
b.putSerializable("DONHANG", donhang);
i.putExtra("DATA", b);
startActivityForResult(i,MainActivity.MO_ACTIVITY_SUA_DON_HANG);
}
//Intetn gọi Activity Activity_ThemDonHang
public void doThemDonHang(){
Intent i=new Intent(this, Activity_ThemDonHang.class);
Bundle b=new Bundle();
b.putSerializable("DONHANG", donhang);
i.putExtra("DATA", b);
startActivityForResult(i, MainActivity.MO_ACTIVITY_THEM_DON_HANG);
}
//Nhận result từ thêm, sửa đơn hàng và cập nhật danh sách sản phẩm thành công
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
if(resultCode==MainActivity.SUA_DON_HANG_THANHCONG){
Bundle b=data.getBundleExtra("DATA");
DonHang d=(DonHang)b.getSerializable("DONHANG");
arrdh.set(position, d);
db.updateDonHang(d);
adapter.notifyDataSetChanged();
}
else if(resultCode==MainActivity.THEM_DON_HANG_THANHCONG){
Bundle b=data.getBundleExtra("DATA");
DonHang d=(DonHang)b.getSerializable("DONHANG");
arrdh.add(d);
db.addDonHang(d);
db.addof_cus(kh, d);
adapter.notifyDataSetChanged();
}
else
if(resultCode==MainActivity.CAPNHAT_DS_SAN_PHAM_THANHCONG){
Bundle bundle=data.getBundleExtra("DATA");
DonHang d=(DonHang)bundle.getSerializable("DONHANG");
arrdh.get(position).getListSP().clear();
arrdh.get(position).getListSP().addAll(d.getListSP());
//Them_sp_va_tinh_giadonhang();//-----------
int p=0;
for(SanPham s:arrdh.get(position).getListSP()){
p+=Integer.parseInt(s.getprice());
}
arrdh.get(position).setsmoney(String.valueOf(p));
db.updateDonHang(arrdh.get(position));
adapter.notifyDataSetChanged();
}
}
}
- Class Activity_SuaDonHang
public class Activity_SuaDonHang extends Activity {
EditText txtma,txtten,txtdate,txtmoney;
Button btnxoa,btnluu;
DonHang donhang=null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//goi layout activity_them_don_hang
setContentView(R.layout.activity_them_don_hang);
//get id của các View Button
txtma=(EditText)findViewById(R.id.txtmaDH);
txtten=(EditText)findViewById(R.id.txttenDH);
txtdate=(EditText)findViewById(R.id.txtngay);
txtmoney=(EditText)findViewById(R.id.txtmoney);
btnxoa=(Button)findViewById(R.id.btnxoatt);
btnluu=(Button)findViewById(R.id.btnsavettdh);
setdefault();
btnxoa.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
txtten.setText("");
txtdate.setText("");
txtmoney.setText("");
txtten.requestFocus();
}
});
//lưu thông tin từ layout vao donhang,
//set result sưa đơn hàng thành công
btnluu.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
String ten=txtten.getText()+"";
String ngay=txtdate.getText()+"";
String money=txtmoney.getText()+"";
donhang.settenDH(ten);
donhang.setdate(ngay);
donhang.setsmoney(money);
Intent i=getIntent();
Bundle b=new Bundle();
b.putSerializable("DONHANG",donhang);
i.putExtra("DATA", b);
setResult(MainActivity.SUA_DON_HANG_THANHCONG,i);
finish();
}
});
}
//get thông tin đơn hàng từ gói DATA
public void setdefault(){
Intent i=getIntent();
Bundle b=i.getBundleExtra("DATA");
donhang=(DonHang)b.getSerializable("DONHANG");
txtma.setText(donhang.getmaDH());
txtten.setText(donhang.gettenDH());
txtdate.setText(donhang.getdate());
txtmoney.setText(donhang.getsmoney());
}
}
- Class Activity_ThemDonHang
public class Activity_ThemDonHang extends Activity {
EditText txtma,txtten,txtngay,txtmoney;
Button btnxoa,btnluu;
DatabaseHandler db;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_them_don_hang);
db=new DatabaseHandler(this);
txtma=(EditText)findViewById(R.id.txtmaDH);
txtten=(EditText)findViewById(R.id.txttenDH);
txtngay=(EditText)findViewById(R.id.txtngay);
txtmoney=(EditText)findViewById(R.id.txtmoney);
btnxoa=(Button)findViewById(R.id.btnxoatt);
btnluu=(Button)findViewById(R.id.btnsavettdh);
//clear các dữ liệu hiển thị trên layout
btnxoa.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
txtma.setText("");
txtten.setText("");
txtngay.setText("");
txtmoney.setText("");
txtma.requestFocus();
}
});
//Xử lí lưu các thông tin vào dh đóng gói và truyền lại cho
//Activity DanhSachDonHang
btnluu.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
String ma=txtma.getText()+"";
String ten=txtten.getText()+"";
String ngay=txtngay.getText()+"";
String tien=txtmoney.getText()+"";
if(db.checkTrung(ma,"id_dh","donhang")==0)
{
DonHang dh=new DonHang(ma,ten,ngay,tien);
Intent i=getIntent();
Bundle b=new Bundle();
b.putSerializable("DONHANG", dh);
i.putExtra("DATA", b);
setResult(MainActivity.THEM_DON_HANG_THANHCONG,i);
finish();
}
}
});
}
}
- Các Class trong Pakage có cấu trúc tương tự như trong Package donhang.
- Ngoài ra còn cấu trúc Các menu
+ context_menu_dh: chứa các item Xửa, Xóa, Xem Danh sách sản phẩm
+ context_menu_kh: chứa các item Xửa, Xóa, chuyển khách hàng, xem danh sách cơ
hội
+ context_menu_level:chứa các item level VIP, THUONG, TIMNANG
+context_menu_sp: chứa các item Xửa, Xóa sản phẩm.
- Cấu trúc AndroidManifest
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".Activity_ChuyenKhachHang"
android:label="@string/app_name"
android:theme="@android:style/Theme.Dialog">
</activity>
<activity
android:name=".Activity_SuaKhachHang"
android:label="@string/app_name" >
</activity>
<activity
android:name=".Activity_ThemKhachHang"
android:label="@string/app_name" >
</activity>
<activity
android:name=".DanhSachKhachHang"
android:label="@string/app_name" >
</activity>
<activity
android:name=".DanhSachCoHoi"
android:label="@string/app_name" >
</activity>
<activity
android:name="donhang.DanhSachDonHang"
android:label="@string/app_name" >
</activity>
<activity
android:name="donhang.Activity_SuaDonHang"
android:label="@string/app_name" >
</activity>
<activity
android:name="donhang.Activity_ThemDonHang"
android:label="@string/app_name" >
</activity>
<activity
android:name="sanphamco.Activity_ThemSanPham"
android:label="@string/app_name" >
</activity>
<activity
android:name="sanphamco.DanhSachSanPham"
android:label="@string/app_name" >
</activity>
<activity
android:name="sanphamco.Activity_SuaSanPham"
android:label="@string/app_name" >
</activity>
</application>

Mais conteúdo relacionado

Mais procurados

Android Nâng cao-Bài 8-JSON & XML Parsing
Android Nâng cao-Bài 8-JSON & XML ParsingAndroid Nâng cao-Bài 8-JSON & XML Parsing
Android Nâng cao-Bài 8-JSON & XML ParsingPhuoc Nguyen
 
Android Nâng cao-Bài 6-Multi theme-adb tool-jUnit
Android Nâng cao-Bài 6-Multi theme-adb tool-jUnitAndroid Nâng cao-Bài 6-Multi theme-adb tool-jUnit
Android Nâng cao-Bài 6-Multi theme-adb tool-jUnitPhuoc Nguyen
 
Lớp kết nối csdl dùng jdbc trong java
Lớp kết nối csdl dùng jdbc trong javaLớp kết nối csdl dùng jdbc trong java
Lớp kết nối csdl dùng jdbc trong javaANHMATTROI
 
Ebook học Javascript cơ bản tới nâng cao
Ebook học Javascript cơ bản tới nâng caoEbook học Javascript cơ bản tới nâng cao
Ebook học Javascript cơ bản tới nâng caoTrung Thanh Nguyen
 
Lap trinh giao dien nguoi dung voi Java
Lap trinh giao dien nguoi dung voi JavaLap trinh giao dien nguoi dung voi Java
Lap trinh giao dien nguoi dung voi JavaANHMATTROI
 
Tu dong dat hang tu he thong ban le lon nhat trung quoc
Tu dong dat hang tu he thong ban le lon nhat trung quocTu dong dat hang tu he thong ban le lon nhat trung quoc
Tu dong dat hang tu he thong ban le lon nhat trung quochazzaz
 
Bat dau hoc lap trinh asp
Bat dau hoc lap trinh aspBat dau hoc lap trinh asp
Bat dau hoc lap trinh aspLam To
 
Bài 6: Tạo hiệu ứng và validate Form - Giáo trình FPT
Bài 6: Tạo hiệu ứng và validate Form - Giáo trình FPTBài 6: Tạo hiệu ứng và validate Form - Giáo trình FPT
Bài 6: Tạo hiệu ứng và validate Form - Giáo trình FPTMasterCode.vn
 
04 chuong 4 - cap nhat du lieu
04   chuong 4 - cap nhat du lieu04   chuong 4 - cap nhat du lieu
04 chuong 4 - cap nhat du lieutruong le hung
 
04 chuong 4 - sap xep, tim kiem, loc du lieu
04   chuong 4 - sap xep, tim kiem, loc du lieu04   chuong 4 - sap xep, tim kiem, loc du lieu
04 chuong 4 - sap xep, tim kiem, loc du lieutruong le hung
 
Giao trinh java script
Giao trinh java scriptGiao trinh java script
Giao trinh java scripthieusy
 
Cnthnc minhkhoa baith2
Cnthnc minhkhoa baith2Cnthnc minhkhoa baith2
Cnthnc minhkhoa baith2hieutruong46
 
Speaker dang minh tuan javascript for php developer
Speaker dang minh tuan   javascript for php developerSpeaker dang minh tuan   javascript for php developer
Speaker dang minh tuan javascript for php developerAiTi Education
 

Mais procurados (19)

Android Nâng cao-Bài 8-JSON & XML Parsing
Android Nâng cao-Bài 8-JSON & XML ParsingAndroid Nâng cao-Bài 8-JSON & XML Parsing
Android Nâng cao-Bài 8-JSON & XML Parsing
 
Javascript and dom_html
Javascript and dom_htmlJavascript and dom_html
Javascript and dom_html
 
Kiem tra javascript
Kiem tra javascriptKiem tra javascript
Kiem tra javascript
 
Bài tập javascript
Bài tập javascriptBài tập javascript
Bài tập javascript
 
Android Nâng cao-Bài 6-Multi theme-adb tool-jUnit
Android Nâng cao-Bài 6-Multi theme-adb tool-jUnitAndroid Nâng cao-Bài 6-Multi theme-adb tool-jUnit
Android Nâng cao-Bài 6-Multi theme-adb tool-jUnit
 
Lớp kết nối csdl dùng jdbc trong java
Lớp kết nối csdl dùng jdbc trong javaLớp kết nối csdl dùng jdbc trong java
Lớp kết nối csdl dùng jdbc trong java
 
Ebook học Javascript cơ bản tới nâng cao
Ebook học Javascript cơ bản tới nâng caoEbook học Javascript cơ bản tới nâng cao
Ebook học Javascript cơ bản tới nâng cao
 
Lap trinh giao dien nguoi dung voi Java
Lap trinh giao dien nguoi dung voi JavaLap trinh giao dien nguoi dung voi Java
Lap trinh giao dien nguoi dung voi Java
 
Tu dong dat hang tu he thong ban le lon nhat trung quoc
Tu dong dat hang tu he thong ban le lon nhat trung quocTu dong dat hang tu he thong ban le lon nhat trung quoc
Tu dong dat hang tu he thong ban le lon nhat trung quoc
 
Giao Trinh Jquery
Giao Trinh JqueryGiao Trinh Jquery
Giao Trinh Jquery
 
Bat dau hoc lap trinh asp
Bat dau hoc lap trinh aspBat dau hoc lap trinh asp
Bat dau hoc lap trinh asp
 
Bài 6: Tạo hiệu ứng và validate Form - Giáo trình FPT
Bài 6: Tạo hiệu ứng và validate Form - Giáo trình FPTBài 6: Tạo hiệu ứng và validate Form - Giáo trình FPT
Bài 6: Tạo hiệu ứng và validate Form - Giáo trình FPT
 
Laptrinh jdbc
Laptrinh jdbcLaptrinh jdbc
Laptrinh jdbc
 
04 chuong 4 - cap nhat du lieu
04   chuong 4 - cap nhat du lieu04   chuong 4 - cap nhat du lieu
04 chuong 4 - cap nhat du lieu
 
04 chuong 4 - sap xep, tim kiem, loc du lieu
04   chuong 4 - sap xep, tim kiem, loc du lieu04   chuong 4 - sap xep, tim kiem, loc du lieu
04 chuong 4 - sap xep, tim kiem, loc du lieu
 
Giao trinh java script
Giao trinh java scriptGiao trinh java script
Giao trinh java script
 
Cnthnc minhkhoa baith2
Cnthnc minhkhoa baith2Cnthnc minhkhoa baith2
Cnthnc minhkhoa baith2
 
Speaker dang minh tuan javascript for php developer
Speaker dang minh tuan   javascript for php developerSpeaker dang minh tuan   javascript for php developer
Speaker dang minh tuan javascript for php developer
 
Grid view
Grid viewGrid view
Grid view
 

Semelhante a Báo cáo tuần 5- Xây dựng các class liên quan Đơn hàng, sản phẩm, database

Báo cáo tuần 4- Xây dựng các class liên quan khách hàng, cơ hội, database
Báo cáo tuần 4- Xây dựng các class liên quan khách hàng, cơ hội, databaseBáo cáo tuần 4- Xây dựng các class liên quan khách hàng, cơ hội, database
Báo cáo tuần 4- Xây dựng các class liên quan khách hàng, cơ hội, databaseDlinh Truong
 
Javascript for php developer
Javascript for php developerJavascript for php developer
Javascript for php developerDang Tuan
 
Thuc hanh ado.net_bai_03
Thuc hanh ado.net_bai_03Thuc hanh ado.net_bai_03
Thuc hanh ado.net_bai_03Thanh Điền
 
The Art of Readable Code - DongPV
The Art of Readable Code - DongPVThe Art of Readable Code - DongPV
The Art of Readable Code - DongPVĐông Đô
 
Introduction to Hibernate Framework
Introduction to Hibernate FrameworkIntroduction to Hibernate Framework
Introduction to Hibernate FrameworkPhuoc Nguyen
 
Them,xoa,sua data trong xml
Them,xoa,sua data trong xmlThem,xoa,sua data trong xml
Them,xoa,sua data trong xmlNguyễn Linh
 
IT120-2. Bắt đầu với Hello World
IT120-2. Bắt đầu với Hello WorldIT120-2. Bắt đầu với Hello World
IT120-2. Bắt đầu với Hello WorldMultiUni
 
Jniについて
JniについてJniについて
JniについてChu Chu
 
Android report
Android reportAndroid report
Android reportMinh Đệ
 
Cq lt hdt-th2011-02-tuan04
Cq lt hdt-th2011-02-tuan04Cq lt hdt-th2011-02-tuan04
Cq lt hdt-th2011-02-tuan04. .
 
BÀI 7 Làm việc với thành phần mới và phạm vi ứng dụng của HTML5 - Giáo trình FPT
BÀI 7 Làm việc với thành phần mới và phạm vi ứng dụng của HTML5 - Giáo trình FPTBÀI 7 Làm việc với thành phần mới và phạm vi ứng dụng của HTML5 - Giáo trình FPT
BÀI 7 Làm việc với thành phần mới và phạm vi ứng dụng của HTML5 - Giáo trình FPTMasterCode.vn
 
Session 08 Final
Session 08 FinalSession 08 Final
Session 08 FinalSamQuiDaiBo
 

Semelhante a Báo cáo tuần 5- Xây dựng các class liên quan Đơn hàng, sản phẩm, database (20)

Báo cáo tuần 4- Xây dựng các class liên quan khách hàng, cơ hội, database
Báo cáo tuần 4- Xây dựng các class liên quan khách hàng, cơ hội, databaseBáo cáo tuần 4- Xây dựng các class liên quan khách hàng, cơ hội, database
Báo cáo tuần 4- Xây dựng các class liên quan khách hàng, cơ hội, database
 
Javascript for php developer
Javascript for php developerJavascript for php developer
Javascript for php developer
 
Thuc hanh ado.net_bai_03
Thuc hanh ado.net_bai_03Thuc hanh ado.net_bai_03
Thuc hanh ado.net_bai_03
 
The Art of Readable Code - DongPV
The Art of Readable Code - DongPVThe Art of Readable Code - DongPV
The Art of Readable Code - DongPV
 
Introduction to Hibernate Framework
Introduction to Hibernate FrameworkIntroduction to Hibernate Framework
Introduction to Hibernate Framework
 
LINQ presentation
LINQ presentationLINQ presentation
LINQ presentation
 
Bài 6: Working with DATA
Bài 6: Working with DATABài 6: Working with DATA
Bài 6: Working with DATA
 
Them,xoa,sua data trong xml
Them,xoa,sua data trong xmlThem,xoa,sua data trong xml
Them,xoa,sua data trong xml
 
Cau 2
Cau 2Cau 2
Cau 2
 
Cau 2
Cau 2Cau 2
Cau 2
 
IT120-2. Bắt đầu với Hello World
IT120-2. Bắt đầu với Hello WorldIT120-2. Bắt đầu với Hello World
IT120-2. Bắt đầu với Hello World
 
Aspnet 3.5 _05
Aspnet 3.5 _05Aspnet 3.5 _05
Aspnet 3.5 _05
 
Jniについて
JniについてJniについて
Jniについて
 
Android report
Android reportAndroid report
Android report
 
Linq net
Linq net Linq net
Linq net
 
Cq lt hdt-th2011-02-tuan04
Cq lt hdt-th2011-02-tuan04Cq lt hdt-th2011-02-tuan04
Cq lt hdt-th2011-02-tuan04
 
BÀI 7 Làm việc với thành phần mới và phạm vi ứng dụng của HTML5 - Giáo trình FPT
BÀI 7 Làm việc với thành phần mới và phạm vi ứng dụng của HTML5 - Giáo trình FPTBÀI 7 Làm việc với thành phần mới và phạm vi ứng dụng của HTML5 - Giáo trình FPT
BÀI 7 Làm việc với thành phần mới và phạm vi ứng dụng của HTML5 - Giáo trình FPT
 
Giới thiệu Yii Framework 1
Giới thiệu Yii Framework 1Giới thiệu Yii Framework 1
Giới thiệu Yii Framework 1
 
Lab04 mapview
Lab04 mapviewLab04 mapview
Lab04 mapview
 
Session 08 Final
Session 08 FinalSession 08 Final
Session 08 Final
 

Báo cáo tuần 5- Xây dựng các class liên quan Đơn hàng, sản phẩm, database

  • 1. BÁO CÁO THỰC TẬP TUẦN 5 ĐỀ TÀI: PHÁT TRIỂN PHẦN MỀM QUẢ LÍ KHÁCH HÀNG TRÊN ANDROID TRÊN ĐIỆN THOẠI SỬ DỤNG ANDROID Xây Dựng các class liên quan đơn hàng, sản phẩm, database GVHD : Thầy Võ Đỗ Thắng SVTH : Trương Duy Linh MSSV : 51101863
  • 2. - Class DonHang //Class đơn hàng chứa thông tin đơn hàng gồm mã, tên, date, smoney public class DonHang implements Serializable{ private static final long serialVersionUID = 1L; private String maDH; private String tenDH; private String date; private String smoney; //khởi tạo danh sách sản phẩm private ArrayList<SanPham>arrsp=new ArrayList<SanPham>(); public DonHang(){ } public DonHang(String maDH,String tenDH,String date,String smoney){ this.maDH=maDH; this.tenDH=tenDH; this.date=date; this.smoney=smoney; } //các tác vụ get,set public String gettenDH(){return tenDH;} public void settenDH(String ten){this.tenDH=ten;} public String getmaDH(){return maDH;} public void setmaDH(String ma){this.maDH=ma;} public String getdate(){return date;} public void setdate(String date){this.date=date;} public String getsmoney(){return smoney;} public void setsmoney(String smoney){this.smoney=smoney;} //thêm sản phẩm cho đơn hàng public void Themsp(SanPham sp){ int i=0; for(;i<arrsp.size();i++){ SanPham old=arrsp.get(i); if(old.getmaSP().trim().equalsIgnoreCase(sp.getmaSP().trim())){ break; } } if(i<arrsp.size()){ arrsp.set(i, sp);
  • 3. } else{ arrsp.add(sp); } } //lấy sản phẩm tại vị trí index của mảng public SanPham get(int index){ return arrsp.get(index); } //lấy sô lượng sản phẩm public int size(){ return arrsp.size(); } //lấy danh sách sản phẩm của đon hàng đó public ArrayList<SanPham> getListSP(){ return this.arrsp; } //-------------------------------------------- @Override public String toString() { return this.maDH+" "+this.tenDH+" "+this.date+" "+this.smoney; } } - Class DanhSachDonHang public class DanhSachDonHang extends Activity{ ImageButton btnbackDH; ListView lvdh; Button btnthemdh; KhachHang kh=null; ArrayAdapter<DonHang> adapter=null; ArrayList<DonHang> arrdh=null; DonHang donhang=null; DatabaseHandler db; private int position =-1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_dsdh); btnbackDH=(ImageButton)findViewById(R.id.btnbackDH); lvdh=(ListView)findViewById(R.id.lvDH); btnthemdh=(Button)findViewById(R.id.btnthemdh);
  • 4. db=new DatabaseHandler(this); arrdh=new ArrayList<DonHang>(); getData(); Event(); registerForContextMenu(lvdh); } /* * Lấy khách hàng là chủ của các đơn hàng này * Lấy danh sách các sản phẩm từ CSDL */ public void getData(){ Intent i=getIntent(); Bundle b=i.getBundleExtra("DATA"); kh=(KhachHang)b.getSerializable("KHACHHANG"); arrdh=kh.getListDH(); Them_sp_va_tinh_giadonhang();//----------- adapter=new ArrayAdapter<DonHang>(this,android.R.layout.simple_list_item_1,arrdh); lvdh.setAdapter(adapter); } //Xử lí các sự kiện public void Event(){ //Xử lí sự kiện trở về danh sách khách hàng btnbackDH.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent i=getIntent(); Bundle b=new Bundle(); b.putSerializable("KHACHHANG", kh); i.putExtra("DATA", b); setResult(MainActivity.CAPNHAT_DS_DON_HANG_THANHCONG,i); finish(); } }); //Xử lí sự kiện click vào item ListView lvdh.setOnItemLongClickListener(new OnItemLongClickListener() { @Override public boolean onItemLongClick(AdapterView<?> parent, View view, int arg, long id) { donhang=arrdh.get(arg); position=arg;
  • 5. return false; } }); //Xử lí sự kiện thêm đơn hàng cho vào danh sách đơn hàng btnthemdh.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub doThemDonHang(); } }); } //Đăng kí Contextmenu @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { // TODO Auto-generated method stub super.onCreateContextMenu(menu, v, menuInfo); getMenuInflater().inflate(R.menu.context_menu_dh, menu); } //Xử lí xự kiện click item trong contextmenu //Gồm: sửa, xóa, xem danh sách sản phẩm @Override public boolean onContextItemSelected(MenuItem item){ switch(item.getItemId()){ case R.id.mnusuadh:doSuaDonHang();break; case R.id.mnuxoadh:doXoaDonHang();break; case R.id.mnudssp:doDanhSachSanPham();break; } return super.onContextItemSelected(item); } //Intent gọi Activity DanhSachSanPham public void doDanhSachSanPham(){ //for(SanPham san:db.getdssp_ofdh(Integer.parseInt(donhang.getmaDH()))){ //donhang.Themsp(san); //} Intent i=new Intent(this, DanhSachSanPham.class); Bundle bundle=new Bundle();
  • 6. bundle.putSerializable("DONHANG", donhang); i.putExtra("DATA", bundle); startActivityForResult(i,MainActivity.MO_ACTIVITY_DANHSACH_SAN_PHAM); } //Thêm các sản phẩm vào mỗi đơn hàng tương ứng //tính giá của đơn hàng thông qua các sản phẩm đó public void Them_sp_va_tinh_giadonhang(){ for(DonHang dhang:arrdh){ int gia=0; for(SanPham san:db.getdssp_ofdh(Integer.parseInt(dhang.getmaDH()))){ dhang.Themsp(san); gia+=Integer.parseInt(san.getprice()); } dhang.setsmoney(String.valueOf(gia)); db.updateDonHang(dhang); } } //Hiển thị form AlertDialog, thực hiện việc xóa đơn hàng public void doXoaDonHang() { AlertDialog.Builder builder=new AlertDialog.Builder(this); builder.setTitle("XOA"); builder.setMessage("Bạn có chắc muốn xóa"); builder.setIcon(R.drawable.ic_launcher); builder.setNegativeButton("Không", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.cancel(); } }); builder.setPositiveButton("Có",new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { arrdh.remove(donhang); db.delete_quanhe_DH_SP_tu_DH(donhang); db.delete_quanhe_KHDH_tu_DH(donhang); db.deleteDonHang(donhang); adapter.notifyDataSetChanged(); }
  • 7. }); builder.show(); } //Intent gọi Activity Activity_SuaDonHang public void doSuaDonHang() { Intent i=new Intent(this,Activity_SuaDonHang.class); Bundle b=new Bundle(); b.putSerializable("DONHANG", donhang); i.putExtra("DATA", b); startActivityForResult(i,MainActivity.MO_ACTIVITY_SUA_DON_HANG); } //Intetn gọi Activity Activity_ThemDonHang public void doThemDonHang(){ Intent i=new Intent(this, Activity_ThemDonHang.class); Bundle b=new Bundle(); b.putSerializable("DONHANG", donhang); i.putExtra("DATA", b); startActivityForResult(i, MainActivity.MO_ACTIVITY_THEM_DON_HANG); } //Nhận result từ thêm, sửa đơn hàng và cập nhật danh sách sản phẩm thành công protected void onActivityResult(int requestCode, int resultCode, Intent data) { // TODO Auto-generated method stub super.onActivityResult(requestCode, resultCode, data); if(resultCode==MainActivity.SUA_DON_HANG_THANHCONG){ Bundle b=data.getBundleExtra("DATA"); DonHang d=(DonHang)b.getSerializable("DONHANG"); arrdh.set(position, d); db.updateDonHang(d); adapter.notifyDataSetChanged(); } else if(resultCode==MainActivity.THEM_DON_HANG_THANHCONG){ Bundle b=data.getBundleExtra("DATA"); DonHang d=(DonHang)b.getSerializable("DONHANG"); arrdh.add(d); db.addDonHang(d); db.addof_cus(kh, d); adapter.notifyDataSetChanged(); } else if(resultCode==MainActivity.CAPNHAT_DS_SAN_PHAM_THANHCONG){ Bundle bundle=data.getBundleExtra("DATA");
  • 8. DonHang d=(DonHang)bundle.getSerializable("DONHANG"); arrdh.get(position).getListSP().clear(); arrdh.get(position).getListSP().addAll(d.getListSP()); //Them_sp_va_tinh_giadonhang();//----------- int p=0; for(SanPham s:arrdh.get(position).getListSP()){ p+=Integer.parseInt(s.getprice()); } arrdh.get(position).setsmoney(String.valueOf(p)); db.updateDonHang(arrdh.get(position)); adapter.notifyDataSetChanged(); } } } - Class Activity_SuaDonHang public class Activity_SuaDonHang extends Activity { EditText txtma,txtten,txtdate,txtmoney; Button btnxoa,btnluu; DonHang donhang=null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //goi layout activity_them_don_hang setContentView(R.layout.activity_them_don_hang); //get id của các View Button txtma=(EditText)findViewById(R.id.txtmaDH); txtten=(EditText)findViewById(R.id.txttenDH); txtdate=(EditText)findViewById(R.id.txtngay); txtmoney=(EditText)findViewById(R.id.txtmoney); btnxoa=(Button)findViewById(R.id.btnxoatt); btnluu=(Button)findViewById(R.id.btnsavettdh); setdefault(); btnxoa.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) {
  • 9. // TODO Auto-generated method stub txtten.setText(""); txtdate.setText(""); txtmoney.setText(""); txtten.requestFocus(); } }); //lưu thông tin từ layout vao donhang, //set result sưa đơn hàng thành công btnluu.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { String ten=txtten.getText()+""; String ngay=txtdate.getText()+""; String money=txtmoney.getText()+""; donhang.settenDH(ten); donhang.setdate(ngay); donhang.setsmoney(money); Intent i=getIntent(); Bundle b=new Bundle(); b.putSerializable("DONHANG",donhang); i.putExtra("DATA", b); setResult(MainActivity.SUA_DON_HANG_THANHCONG,i); finish(); } }); } //get thông tin đơn hàng từ gói DATA public void setdefault(){ Intent i=getIntent(); Bundle b=i.getBundleExtra("DATA"); donhang=(DonHang)b.getSerializable("DONHANG"); txtma.setText(donhang.getmaDH()); txtten.setText(donhang.gettenDH()); txtdate.setText(donhang.getdate()); txtmoney.setText(donhang.getsmoney());
  • 10. } } - Class Activity_ThemDonHang public class Activity_ThemDonHang extends Activity { EditText txtma,txtten,txtngay,txtmoney; Button btnxoa,btnluu; DatabaseHandler db; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_them_don_hang); db=new DatabaseHandler(this); txtma=(EditText)findViewById(R.id.txtmaDH); txtten=(EditText)findViewById(R.id.txttenDH); txtngay=(EditText)findViewById(R.id.txtngay); txtmoney=(EditText)findViewById(R.id.txtmoney); btnxoa=(Button)findViewById(R.id.btnxoatt); btnluu=(Button)findViewById(R.id.btnsavettdh); //clear các dữ liệu hiển thị trên layout btnxoa.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub txtma.setText(""); txtten.setText(""); txtngay.setText(""); txtmoney.setText(""); txtma.requestFocus(); } }); //Xử lí lưu các thông tin vào dh đóng gói và truyền lại cho //Activity DanhSachDonHang btnluu.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { String ma=txtma.getText()+""; String ten=txtten.getText()+""; String ngay=txtngay.getText()+""; String tien=txtmoney.getText()+"";
  • 11. if(db.checkTrung(ma,"id_dh","donhang")==0) { DonHang dh=new DonHang(ma,ten,ngay,tien); Intent i=getIntent(); Bundle b=new Bundle(); b.putSerializable("DONHANG", dh); i.putExtra("DATA", b); setResult(MainActivity.THEM_DON_HANG_THANHCONG,i); finish(); } } }); } } - Các Class trong Pakage có cấu trúc tương tự như trong Package donhang. - Ngoài ra còn cấu trúc Các menu + context_menu_dh: chứa các item Xửa, Xóa, Xem Danh sách sản phẩm + context_menu_kh: chứa các item Xửa, Xóa, chuyển khách hàng, xem danh sách cơ hội + context_menu_level:chứa các item level VIP, THUONG, TIMNANG +context_menu_sp: chứa các item Xửa, Xóa sản phẩm. - Cấu trúc AndroidManifest <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".Activity_ChuyenKhachHang" android:label="@string/app_name" android:theme="@android:style/Theme.Dialog"> </activity> <activity android:name=".Activity_SuaKhachHang"
  • 12. android:label="@string/app_name" > </activity> <activity android:name=".Activity_ThemKhachHang" android:label="@string/app_name" > </activity> <activity android:name=".DanhSachKhachHang" android:label="@string/app_name" > </activity> <activity android:name=".DanhSachCoHoi" android:label="@string/app_name" > </activity> <activity android:name="donhang.DanhSachDonHang" android:label="@string/app_name" > </activity> <activity android:name="donhang.Activity_SuaDonHang" android:label="@string/app_name" > </activity> <activity android:name="donhang.Activity_ThemDonHang" android:label="@string/app_name" > </activity> <activity android:name="sanphamco.Activity_ThemSanPham" android:label="@string/app_name" >