33
BÁO CÁO THỰC TẬP TUẦN 4 ĐỀ 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 khách hàng, cơ hội, database GVHD : Thầy Võ Đỗ Thắng SVTH : Trương Duy Linh MSSV : 51101863

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

Embed Size (px)

Citation preview

Page 1: 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 THỰC TẬP TUẦN 4ĐỀ 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 khách hàng, cơ hội, database

GVHD : Thầy Võ Đỗ Thắng

SVTH : Trương Duy Linh

MSSV : 51101863

Page 2: 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

- Cấu trúc thư mục

Page 3: 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

Trong cấu trúc trên có 3 pakage: com.example.demoqlkh, donhang, sanphamco. - Class MainActivity

public class MainActivity extends ActionBarActivity {

//Định nghĩa các requestCode, resultCode truyền đi//trong Intentpublic static final int MO_ACTIVITY_THEM_KHACH_HANG=1;public static final int MO_ACTIVITY_SUA_KHACH_HANG=2;public static final int THEM_KHACH_HANG_THANHCONG=3;public static final int SUA_KHACH_HANG_THANHCONG=4;public static final int XEM_DS_KHACH_HANG=5;public static final int CAPNHAT_DS_KHACH_HANG_THANHCONG=6;public static final int MO_ACTIVITY_CHUYEN_LEVEL=9;public static final int CHUYEN_LEVEL_THANHCONG=10;public static final int MO_ACTIVITY_THEM_DON_HANG=11;public static final int THEM_DON_HANG_THANHCONG=12;public static final int MO_ACTIVITY_SUA_DON_HANG=13;public static final int SUA_DON_HANG_THANHCONG=14;

public static final int MO_ACTIVITY_DANHSACH_DON_HANG=15;

public static final int MO_ACTIVITY_DANHSACH_SAN_PHAM=20;public static final int CAPNHAT_DS_SAN_PHAM_THANHCONG=6;

public static final int MO_ACTIVITY_SUA_SAN_PHAM=16;public static final int SUA_SAN_PHAM_THANHCONG=17;

public static final int MO_ACTIVITY_THEM_SAN_PHAM=18;public static final int THEM_SAN_PHAM_THANHCONG=19;

public static final int CAPNHAT_DS_DON_HANG_THANHCONG=16;

public static final int MO_DS_COHOI=20;public static final int CAP_NHAT_DS_CO_HOI_THANHCONG=21;

//lvallkh hiển thị danh sách tất cả các khách hàngListView lvallkh;EditText search;ArrayList<KhachHang>custo;ArrayAdapter<KhachHang> adaptercusto;private static ArrayList<LevelKhachHang>arrlvkh=new ArrayList<LevelKhachHang>();private int pos=-1;private Button btnchonlevel;DatabaseHandler db;private KhachHang khach;int posi=-1;@Overrideprotected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);lvallkh=(ListView)findViewById(R.id.lvallkh);search=(EditText)findViewById(R.id.txtsearch);custo=new ArrayList<KhachHang>();

Page 4: 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

//tạo truy vấn databasedb=new DatabaseHandler(this);

btnchonlevel=(Button)findViewById(R.id.btnxoatt);

KhachHang custom=null;//khởi tạo 3 levelLevelKhachHang l1=new LevelKhachHang("VIP");LevelKhachHang l2=new LevelKhachHang("THUONG");LevelKhachHang l3=new LevelKhachHang("TIMNANG");//-------------------------------------------------------------//kiểm tra xam dữ liệu có khách hàng nào hay chưa //nếu chưa thì thêm vào// nếu có thì đọc ra từ CSDLif(db.getKhachHangCount()==0){

Log.d("12345", "6789");custom=new KhachHang("1","Nam","1","[email protected]","VIP","0",true);l1.Themkh(custom);db.addKhachHang(custom);arrlvkh.add(l1);custo.add(custom);//-----------------

custom=new KhachHang("2","Tien","2","[email protected]","TIMNANG","0",true);l2.Themkh(custom);db.addKhachHang(custom);arrlvkh.add(l2);custo.add(custom);//-----------------

custom=new KhachHang("3","An","3","[email protected]","THUONG","0",true);l3.Themkh(custom);db.addKhachHang(custom);arrlvkh.add(l3);custo.add(custom);}else{

for(KhachHang kh:db.getAllKhachHang()){

if(kh.getlevel().equals("VIP")){l1.Themkh(kh);custo.add(kh);Log.d("LEVEL1", kh.getlevel());

}else if(kh.getlevel().equals("THUONG")){

l2.Themkh(kh);custo.add(kh);Log.d("LEVEL2", kh.getlevel());

}else {

l3.Themkh(kh);custo.add(kh);Log.d("LEVEL3", kh.getlevel());}

}arrlvkh.add(l1);

Page 5: 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

arrlvkh.add(l2);arrlvkh.add(l3);

}them_don_hang_va_tinh_gia();adaptercusto=new

ArrayAdapter<KhachHang>(this,android.R.layout.simple_list_item_1,custo);lvallkh.setAdapter(adaptercusto);adaptercusto.notifyDataSetChanged();

//Đăng kí contextmenu registerForContextMenu(btnchonlevel);

//Xử lí sự kiện khi gõ từ vào thanh searchsearch.addTextChangedListener(new TextWatcher() {

@Overridepublic void onTextChanged(CharSequence s, int start, int before, int count) {

// TODO Auto-generated method stubadaptercusto.notifyDataSetChanged();MainActivity.this.adaptercusto.getFilter().filter(s);

}

@Overridepublic void beforeTextChanged(CharSequence s, int start, int count,

int after) {// TODO Auto-generated method stub

}

@Overridepublic void afterTextChanged(Editable s) {

// TODO Auto-generated method stub

}});//xử lí sự kiên click vào item của ListView//lấy vi trí của khách hàng gọi hiển thị danh sách đơn hànglvallkh.setOnItemClickListener(new AdapterView.OnItemClickListener() {

@Overridepublic void onItemClick(AdapterView<?> parent, View view,

int position, long id) {// TODO Auto-generated method stubkhach=custo.get(position);posi=position;Intent inte=new Intent(MainActivity.this,DanhSachDonHang.class);Bundle bundle=new Bundle();bundle.putSerializable("KHACHHANG", khach);inte.putExtra("DATA", bundle);

startActivityForResult(inte,MainActivity.MO_ACTIVITY_DANHSACH_DON_HANG);}

});

}

Page 6: 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

//truy xuất CSDL thêm đơn hàng tương ứng với mỗi khách hàng// tính coins cho khách hàng dựa trên các đơn hàng public void them_don_hang_va_tinh_gia(){

for(KhachHang kha:custo){int gia=0;for(DonHang don:db.getdsdh_ofkh(Integer.parseInt(kha.getma()))){

kha.Themdh(don);gia+=Integer.parseInt(don.getsmoney());

}kha.setcoins(String.valueOf(gia));db.updateKhachHang(kha);}

}

//dăng kí contextmenu@Overridepublic void onCreateContextMenu(ContextMenu menu, View v,

ContextMenuInfo menuInfo) {// TODO Auto-generated method stubsuper.onCreateContextMenu(menu, v, menuInfo);getMenuInflater().inflate(R.menu.context_menu_level, menu);

}//xử lí sự kiên click vào item menu gồm:// xem danh sách khác hàng của level VIP, THUONG, TIMNANG@Overridepublic boolean onContextItemSelected(MenuItem item){

switch(item.getItemId()){case R.id.mnuvip:

pos=0;doDanhSachKhachHang();

break;case R.id.mnunormal:

pos=1;doDanhSachKhachHang();break;

case R.id.mnukhtimnang:pos=2;doDanhSachKhachHang();break;

}return super.onContextItemSelected(item);

}

//Intent goi Activity DanhSachKhachHangpublic void doDanhSachKhachHang(){

Intent i=new Intent(this, DanhSachKhachHang.class);Bundle bundle=new Bundle();bundle.putSerializable("LEVEL", arrlvkh.get(pos));i.putExtra("DATA", bundle);startActivityForResult(i,MainActivity.XEM_DS_KHACH_HANG);

}

//Nhận result trả về từ cập nhật danh sách khách hàng,//cập nhật danh sách đơn hàng thành công

Page 7: 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

//có 2 cập nhật trên mảng arrlvkh và custo @Overridepublic void onActivityResult(int requestCode,int resultCode,Intent data){

super.onActivityResult(requestCode, resultCode, data);

if(resultCode==MainActivity.CAPNHAT_DS_KHACH_HANG_THANHCONG){Bundle bundle=data.getBundleExtra("DATA");LevelKhachHang lvk=(LevelKhachHang)bundle.getSerializable("LEVEL");arrlvkh.get(pos).getListKH().clear();arrlvkh.get(pos).getListKH().addAll(lvk.getListKH());

custo.clear();for(KhachHang k:db.getAllKhachHang()){

custo.add(k);Log.d("KhachHang",k.getten());

}them_don_hang_va_tinh_gia();adaptercusto.notifyDataSetChanged();

} else if(resultCode==MainActivity.CAPNHAT_DS_DON_HANG_THANHCONG){

Bundle bundle=data.getBundleExtra("DATA");KhachHang k=(KhachHang)bundle.getSerializable("KHACHHANG");custo.get(posi).getListDH().clear();custo.get(posi).getListDH().addAll(k.getListDH());

int p=0;for(DonHang d:custo.get(posi).getListDH()){

p+=Integer.parseInt(d.getsmoney());}custo.get(posi).setcoins(String.valueOf(p));db.updateKhachHang(custo.get(posi));adaptercusto.notifyDataSetChanged();

}

}//hàm trả về danh sách khách hàng của mỗi levelpublic static ArrayList<LevelKhachHang> getListLevel(){

return arrlvkh;}

}

- Class LevelKhachHangpublic class LevelKhachHang implements Serializable {

private static final long serialVersionUID = 1L;

//mãng danh sách khách hàngprivate ArrayList<KhachHang> arrkh =new ArrayList<KhachHang>();//tên levelprivate String ten;

//hàm tạo với tham số tên

Page 8: 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

public LevelKhachHang(String ten) {this.ten=ten;

}

//phương thức get,set tên của levelpublic String getTenlv(){

return this.ten;}

public void setTenlv(String ten){this.ten=ten;

}

//hàm tạo không tham sốpublic LevelKhachHang() {

super();}

//hàm thêm khách hàng của mỗi levelpublic void Themkh(KhachHang kh){

int i=0;for(;i<arrkh.size();i++){

KhachHang old=arrkh.get(i);if(old.getma().trim().equalsIgnoreCase(kh.getma().trim())){

break;}

}if(i<arrkh.size()){

arrkh.set(i, kh);}else{

arrkh.add(kh);}

}//get khách hàng tại vị trí index của levelpublic KhachHang get(int index){

return arrkh.get(index);}

//lấy số lượng khách hàng của level đópublic int size(){

return arrkh.size();}

//lấy danh sách khách hàng của level đópublic ArrayList<KhachHang> getListKH(){

return this.arrkh;}

}

Page 9: 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

- Class KhachHang chứa các thuộc tính liên quan khách hàng(mã khách hàng, tên, giới tính, số điện thoại, email, số coins), và các tác vụ get,set.

public class KhachHang implements Serializable{private static final long serialVersionUID = 1L;private String ma;private String ten;private String sdt;private String email;private String level;private String coins;private boolean sex;private ArrayList<DonHang> arrdh= new ArrayList<DonHang>();//Hàm tạo không tham sốpublic KhachHang(){

}//hàm tạo với các tham số mã, tên, sdt, email, level, coinspublic KhachHang(String ma,String ten,String sdt,String email,String level,String coins,boolean

sex){this.ma=ma;this.ten=ten;this.sdt=sdt;this.email=email;this.sex=sex;this.coins=coins;this.level=level;

}

//phương thức get,set cho tênpublic String getten(){return ten;}public void setten(String ten){this.ten=ten;}

//phương thức get,set cho mãpublic String getma(){return ma;}public void setma(String ma){this.ma=ma;}

//phương thức get,set cho sdtpublic String getsdt(){return sdt;}public void setsdt(String sdt){this.sdt=sdt;}

//phương thức get,set cho emialpublic String getemail(){return email;}public void setemail(String email){this.email=email;}

//phương thức get,set cho levelpublic String getlevel(){return level;}public void setlevel(String level){this.level=level;}

//phương thức get,set cho coinspublic String getcoins(){return coins;}public void setcoins(String coin){this.coins=coin;}

//phương thức get,set cho sexpublic boolean getsex(){return sex;}

Page 10: 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

public void setsex(boolean sex){this.sex=sex;}

//phương thức thêm đơn hàng của mỗi khách hàngpublic void Themdh(DonHang dh){

int i=0;for(;i<arrdh.size();i++){

DonHang old=arrdh.get(i);if(old.getmaDH().trim().equalsIgnoreCase(dh.getmaDH().trim())){

break;}

}if(i<arrdh.size()){

arrdh.set(i, dh);}else{

arrdh.add(dh);}

}

//phương thức lấy đơn hàng tại indexpublic DonHang get(int index){

return arrdh.get(index);}

//lấy số lượng đơn hàng của khách hàngpublic int size(){

return arrdh.size();}

//lấy danh sách đơn hàng của khách hàngpublic ArrayList<DonHang> getListDH(){

return this.arrdh;}//--------------------------------------------

//viết lại hàm chuyển thành chuổi toString @Override public String toString(){

return this.ma+"---"+"Ten: " +this.ten +"\n"+"Level: "+this.level+"---"+"Coins: "+this.coins;

}}- Class DanhSachKhachHang //Class Danh sách khách hàng hiển thị danh sách khách hàng//Thiết lập hàm goi các tác vụ thêm,sửa, xóa khách hàng//chuyển level khách hàng, xem danh sách cơ hộipublic class DanhSachKhachHang extends Activity {

ImageButton imgback;ListView lv;

Page 11: 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

TextView txtshowlv;Button btnthemkh;ArrayList<KhachHang>arrkh =null;AdapterKhachHang adapter=null;LevelKhachHang lvkh=null;private KhachHang cus=null;int position =-1;DatabaseHandler db;@Overrideprotected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);setContentView(R.layout.activity_dskh);db=new DatabaseHandler(this);txtshowlv=(TextView)findViewById(R.id.txtlevel);imgback=(ImageButton)findViewById(R.id.imgback);btnthemkh=(Button)findViewById(R.id.btnthemkhachhang);lv=(ListView)findViewById(R.id.lvkhachhang);getdata();Event();registerForContextMenu(lv);

}//lấy danh sách khách hàng của mỗi level truyền từ class MainActivitypublic void getdata(){

Intent i=getIntent();Bundle b=i.getBundleExtra("DATA");lvkh=(LevelKhachHang)b.getSerializable("LEVEL");arrkh=lvkh.getListKH();them_don_hang_va_tinh_gia();adapter=new AdapterKhachHang(this,R.layout.item_layout_custom,arrkh);lv.setAdapter(adapter);txtshowlv.setText(lvkh.getTenlv());

}//Xử lí các sự kiệnpublic void Event(){

//quay lại layout trước đó, truyền gói LEVEL qua MainActivityimgback.setOnClickListener(new OnClickListener() {

@Overridepublic void onClick(View v) {

Intent i=getIntent();Bundle b=new Bundle();b.putSerializable("LEVEL", lvkh);i.putExtra("DATA", b);

setResult(MainActivity.CAPNHAT_DS_KHACH_HANG_THANHCONG,i);finish();

}});//bắt sự kiện click vào mỗi itemlv.setOnItemLongClickListener(new OnItemLongClickListener() {

@Overridepublic boolean onItemLongClick(AdapterView<?> parent, View view,

int arg, long id) {cus=arrkh.get(arg);position=arg;

Page 12: 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

return false;}

});//Lấy sư kiện click button thêm khách hàngbtnthemkh.setOnClickListener(new OnClickListener() {

@Overridepublic void onClick(View v) {

// TODO Auto-generated method stubdoThemKhachHang();

}});

}

//Đăng kí menu context_menu_kh khi click vào mỗi khách hàng@Overridepublic void onCreateContextMenu(ContextMenu menu, View v,

ContextMenuInfo menuInfo) {// TODO Auto-generated method stubsuper.onCreateContextMenu(menu, v, menuInfo);getMenuInflater().inflate(R.menu.context_menu_kh, menu);

}//Bắt sự kiện click các item khi click các memu.@Overridepublic boolean onContextItemSelected(MenuItem item){

switch(item.getItemId()){case R.id.mnuchuyenkh:doChuyenKhachHang();break;case R.id.mnusuakh:doSuaKhachHang();break;case R.id.mnuxoakh:doXoaKhachHang();break;case R.id.mnucohoi:doDanhSachCoHoi();break;case R.id.mnudsdh:doDanhSachDonHang();break;}return super.onContextItemSelected(item);

}//Intent gọi Activity DanhSachCoHoipublic void doDanhSachCoHoi(){

Intent i=new Intent(this, DanhSachCoHoi.class);Bundle bundle=new Bundle();bundle.putSerializable("KHACHHANG", cus);i.putExtra("DATA", bundle);startActivityForResult(i,MainActivity.MO_DS_COHOI);

}//Intent gọi Activity DanhSachDonHangpublic void doDanhSachDonHang(){

//for(DonHang don:db.getdsdh_ofkh(Integer.parseInt(cus.getma()))){// cus.Themdh(don);//}Intent i=new Intent(this, DanhSachDonHang.class);Bundle bundle=new Bundle();bundle.putSerializable("KHACHHANG", cus);i.putExtra("DATA", bundle);startActivityForResult(i,MainActivity.MO_ACTIVITY_DANHSACH_DON_HANG);

}

Page 13: 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

//Truy xuất vào cơ sở dữ liệu the tính coins của mỗi khách hàng// dựa trên giá của các đơn hàng của khách hàng đó bằng cách truy suất//dữ liêu trong cơ sở dữ liệupublic void them_don_hang_va_tinh_gia(){

for(KhachHang kha:arrkh){int gia=0;for(DonHang don:db.getdsdh_ofkh(Integer.parseInt(kha.getma()))){

kha.Themdh(don);gia+=Integer.parseInt(don.getsmoney());

}kha.setcoins(String.valueOf(gia));db.updateKhachHang(kha);}

}

//Xóa khách hàng dùng AlertDialog hiển thị form hỏi xóapublic void doXoaKhachHang() {

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() {

@Overridepublic void onClick(DialogInterface dialog, int which) {

dialog.cancel();}

});builder.setPositiveButton("Có",new DialogInterface.OnClickListener()

{

@Overridepublic void onClick(DialogInterface dialog, int which) {

arrkh.remove(cus);db.delete_quanhe_KHDH_tu_KH(cus);db.deleteKhachHang(cus);for(DonHang do1:cus.getListDH()){

db.delete_quanhe_DH_SP_tu_DH(do1);db.deleteDonHang(do1);

}adapter.notifyDataSetChanged();

}});builder.show();

}//Intent gọi Activity Activity_SuaKhachHangpublic void doSuaKhachHang() {

Intent i=new Intent(this,Activity_SuaKhachHang.class);Bundle b=new Bundle();cus.setlevel(lvkh.getTenlv());b.putSerializable("KHACHHANG", cus);i.putExtra("DATA", b);startActivityForResult(i,MainActivity.MO_ACTIVITY_SUA_KHACH_HANG);

Page 14: 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

}

//Intent gọi Activity Activity_ChuyenKhachHangpublic void doChuyenKhachHang() {

Intent i=new Intent(this,Activity_ChuyenKhachHang.class);Bundle b=new Bundle();b.putSerializable("KHACHHANG", cus);i.putExtra("DATA", b);startActivityForResult(i,MainActivity.MO_ACTIVITY_CHUYEN_LEVEL);

}//Intent goi Activity Activity_ThemKhachHangpublic void doThemKhachHang(){

Intent i=new Intent(this, Activity_ThemKhachHang.class);Bundle b=new Bundle();b.putSerializable("KHACHHANG", cus);i.putExtra("DATA", b);startActivityForResult(i, MainActivity.MO_ACTIVITY_THEM_KHACH_HANG);

}

//Nhận các result từ viêc thêm,sửa,xóa khách hàng, xem danh sách đơn hàngprotected void onActivityResult(int requestCode, int resultCode, Intent data) {

// TODO Auto-generated method stubsuper.onActivityResult(requestCode, resultCode, data);if(resultCode==MainActivity.SUA_KHACH_HANG_THANHCONG){

Bundle b=data.getBundleExtra("DATA");KhachHang k=(KhachHang)b.getSerializable("KHACHHANG");arrkh.set(position, k);db.updateKhachHang(k);adapter.notifyDataSetChanged();

}else if(resultCode==MainActivity.THEM_KHACH_HANG_THANHCONG){

Bundle b=data.getBundleExtra("DATA");KhachHang k=(KhachHang)b.getSerializable("KHACHHANG");k.setlevel(lvkh.getTenlv());arrkh.add(k);db.addKhachHang(k);adapter.notifyDataSetChanged();

}else if(resultCode==MainActivity.CHUYEN_LEVEL_THANHCONG){

arrkh.remove(cus); adapter.notifyDataSetChanged();

}

else if(resultCode==MainActivity.CAPNHAT_DS_DON_HANG_THANHCONG){Bundle bundle=data.getBundleExtra("DATA");KhachHang k=(KhachHang)bundle.getSerializable("KHACHHANG");arrkh.get(position).getListDH().clear();arrkh.get(position).getListDH().addAll(k.getListDH());

int p=0;for(DonHang d:arrkh.get(position).getListDH()){

p+=Integer.parseInt(d.getsmoney());}arrkh.get(position).setcoins(String.valueOf(p));db.updateKhachHang(arrkh.get(position));adapter.notifyDataSetChanged();

Page 15: 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

}}

}

- Class Activity_ChuyenKhachHangpublic class Activity_ChuyenKhachHang extends Activity {

//mảng levelprivate static ArrayList<LevelKhachHang> arrlv=null;//lvlevel hiển thị các lựa chọn để chuyển levelListView lvlevel;ImageButton imgapply;//adapter chuyển dữ liệu từ ArratList arrlv thành dữ liệu trên ListView lvlevelArrayAdapter<LevelKhachHang>adapter;KhachHang kh=null;DatabaseHandler db;@Overrideprotected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);setContentView(R.layout.activity_chuyen_level);db=new DatabaseHandler(this);lvlevel=(ListView)findViewById(R.id.lvlevel);imgapply=(ImageButton)findViewById(R.id.imgapply);

//Intent lấy gói dữ liệu được truyền đi từ danh sách khách hàng//do đó láy được khách hàng được truyền tớiIntent i=getIntent();Bundle b=i.getBundleExtra("DATA");kh=(KhachHang)b.getSerializable("KHACHHANG");arrlv=MainActivity.getListLevel();//khai báo adapter với layout danh sách single choose, lấy dữ liệu từ mảng arrlvadapter=new

ArrayAdapter<LevelKhachHang>(this,android.R.layout.simple_list_item_single_choice,arrlv);lvlevel.setAdapter(adapter);//Lấy vị trí sự kiện click trên ListView, nếu CheckView được tick// thì lấy vị trí level được tick tại position thêm vào level đó// và thêm khách hàng vào cơ sở dữ liệulvlevel.setOnItemClickListener(new OnItemClickListener() {

Boolean somethingChecked=false;@Overridepublic void onItemClick(AdapterView<?> parent, View view,

int position, long id) {// TODO Auto-generated method stubif(somethingChecked){

CheckedTextView cv=(CheckedTextView)view;cv.setChecked(false);

}CheckedTextView cv=(CheckedTextView)view;if(!cv.isChecked()){

cv.setChecked(true);arrlv.get(position).Themkh(kh);db.chuyenKhachHang(kh,position);

}somethingChecked=true;

}

Page 16: 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ắt sự kiện khi nhấn button apply,//thiết lập result thông báo thành côngimgapply.setOnClickListener(new OnClickListener() {

@Overridepublic void onClick(View v) {

// TODO Auto-generated method stubsetResult(MainActivity.CHUYEN_LEVEL_THANHCONG);finish();

}});

}}

- Class Activity_SuaKhachHangpublic class Activity_SuaKhachHang extends Activity {

EditText txtma,txtten,txtsdt,txtemail;Button btnxoa,btnluu;RadioButton raNam;KhachHang khachhang=null;@Overrideprotected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);//Gọi layout activity_them_khach_hangsetContentView(R.layout.activity_them_khach_hang);//lấy id từ các View,Button của layouttxtma=(EditText)findViewById(R.id.txtma);txtten=(EditText)findViewById(R.id.txtten);txtsdt=(EditText)findViewById(R.id.txtsdt);txtemail=(EditText)findViewById(R.id.txtemail);btnxoa=(Button)findViewById(R.id.btnxoa);btnluu=(Button)findViewById(R.id.btnluu);raNam=(RadioButton)findViewById(R.id.raNam);

setdefault();

btnxoa.setOnClickListener(new OnClickListener() {

@Overridepublic void onClick(View v) {

// TODO Auto-generated method stub

txtten.setText("");txtsdt.setText("");txtemail.setText("");txtten.requestFocus();}

});btnluu.setOnClickListener(new OnClickListener() {

@Overridepublic void onClick(View v) {

Page 17: 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

String ten=txtten.getText()+"";String sdt=txtsdt.getText()+"";String email=txtemail.getText()+"";Boolean sex=!raNam.isChecked();

khachhang.setten(ten);khachhang.setsdt(sdt);khachhang.setemail(email);khachhang.setsex(sex);

//sau khi chỉnh sửa thì đóng gói dữ liệu và thiết lập//result thành côngIntent i=getIntent();Bundle b=new Bundle();b.putSerializable("KHACHHANG",khachhang);i.putExtra("DATA", b);setResult(MainActivity.SUA_KHACH_HANG_THANHCONG,i);finish();

}});

}

//Thiết lâp các giá trị mặc định//lấy gói DATA được truyền từ danh sách khách hàng//thiết lập thông tin khách hàng lên các Viewpublic void setdefault(){

Intent i=getIntent();Bundle b=i.getBundleExtra("DATA");khachhang=(KhachHang)b.getSerializable("KHACHHANG");txtma.setText(khachhang.getma());txtten.setText(khachhang.getten());txtsdt.setText(khachhang.getsdt());txtemail.setText(khachhang.getemail());raNam.setChecked(true);if(khachhang.getsex()){

raNam.setChecked(false);}

}}

- Class Activity_ThemKhachHang

public class Activity_ThemKhachHang extends Activity {EditText txtma,txtten,txtsdt,txtemail;Button btnxoa,btnluu;RadioButton raNam;DatabaseHandler db;@Overrideprotected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);//gọi layout activity_them_khach_hangsetContentView(R.layout.activity_them_khach_hang);//Lấy Id các View từ layout

Page 18: 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

txtma=(EditText)findViewById(R.id.txtma);txtten=(EditText)findViewById(R.id.txtten);txtsdt=(EditText)findViewById(R.id.txtsdt);txtemail=(EditText)findViewById(R.id.txtemail);btnxoa=(Button)findViewById(R.id.btnxoa);btnluu=(Button)findViewById(R.id.btnluu);raNam=(RadioButton)findViewById(R.id.raNam);

//truy vấn vào cơ sở dữ liệudb=new DatabaseHandler(this);//thiết lập clear các View khi nhấn xóabtnxoa.setOnClickListener(new OnClickListener() {

@Overridepublic void onClick(View v) {

// TODO Auto-generated method stubtxtma.setText("");txtten.setText("");txtsdt.setText("");txtemail.setText("");txtma.requestFocus();}

});

//Khi lưu dữ liệu được lưu vào cus//đóng gói DATA truyền đi,thiết lập result thành côngbtnluu.setOnClickListener(new OnClickListener() {

@Overridepublic void onClick(View v) {

String ma=txtma.getText()+"";String ten=txtten.getText()+"";String sdt=txtsdt.getText()+"";String email=txtemail.getText()+"";String tongtien="";Boolean sex=!raNam.isChecked();String level="";if(db.checkTrung(ma,"id","KhachHang")==0){

KhachHang cus= new KhachHang(ma,ten,sdt,email,level,tongtien,sex);Intent i=getIntent();Bundle b=new Bundle();b.putSerializable("KHACHHANG", cus);i.putExtra("DATA", b);

setResult(MainActivity.THEM_KHACH_HANG_THANHCONG,i);finish();

}}

});}

}

- Class AdapterKhachHangpublic class AdapterKhachHang extends ArrayAdapter<KhachHang> {

Activity context;int layoutId;ArrayList<KhachHang> arrkhachhang;public AdapterKhachHang(Activity context,int textViewResourceId, ArrayList<KhachHang>

Page 19: 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

objects) {super(context,textViewResourceId, objects);this.context=context;this.layoutId=textViewResourceId;this.arrkhachhang= objects;

}

@Overridepublic View getView(int position,View convertView,ViewGroup parent){

convertView=context.getLayoutInflater().inflate(layoutId, null);TextView ten=(TextView)convertView.findViewById(R.id.txttenkh);TextView coins=(TextView)convertView.findViewById(R.id.txtcoins);ImageView img=(ImageView)convertView.findViewById(R.id.imageView1);KhachHang kh=arrkhachhang.get(position);ten.setText(kh.getten());coins.setText(kh.getcoins());img.setImageResource(R.drawable.girlicon);if(!kh.getsex()){

img.setImageResource(R.drawable.boyicon);}return convertView;

}

}

- Class CoHoi tạo các thuộc tính và các tác vu get, setpublic class CoHoi {

private String tench;private String mach;private String ngaych;private String makh_of_ch;//hàm tạo CoHoi không tham sốpublic CoHoi(){};//hàm tạo CoHoi có tham số: mã cơ hội, tên, ngày thêm, mã khách hàng của cơ hội public CoHoi(String mach,String tench,String ngaych,String makh_of_ch){

this.mach=mach;this.tench=tench;this.ngaych=ngaych;this.makh_of_ch=makh_of_ch;

}//các tác vụ get, set cho ten,ma ngay,makhpublic String gettench(){return this.tench;}public String getmach(){return this.mach;}public String getngaych(){return this.ngaych;}public String getmakh_of_ch(){return this.makh_of_ch;}

public void setmach(String ma){this.mach=ma;}public void settench(String ten){this.tench=ten;}public void setngaych(String ngay){this.ngaych=ngay;}public void setmakh_of_ch(String makh_of_ch){this.makh_of_ch=makh_of_ch;}

//viết lại hàm toString@Override public String toString(){

Page 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

return this.mach+" "+this.tench+" "+this.ngaych;}

}- Class DanhSachCoHoi //class này thiện danh sách các cơ hội//thêm các cơ hội, xóa các cơ hội

public class DanhSachCoHoi extends Activity{private ArrayList<CoHoi> arrch=new ArrayList<CoHoi>();AdapterChoHoi adapter=null;ListView listcohoi;EditText txttench,txtngaych,txtmach1;Button addch,xoach;DatabaseHandler db;int so=0;

KhachHang kh=null;@Overrideprotected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);setContentView(R.layout.activity_dsch);listcohoi=(ListView)findViewById(R.id.listcohoi);txttench=(EditText)findViewById(R.id.txttench);txtngaych=(EditText)findViewById(R.id.txtngaych);txtmach1=(EditText)findViewById(R.id.txtmach1);addch=(Button)findViewById(R.id.btnaddch);xoach=(Button)findViewById(R.id.btnxoach);db=new DatabaseHandler(this);getData();//thiết lập Adapter theo cấu trúc cơ hộiadapter=new AdapterChoHoi(this,R.layout.item_cohoi,arrch);listcohoi.setAdapter(adapter);

// thực hiện sự kiện thêm cơ hộiaddch.setOnClickListener(new OnClickListener() {

@Overridepublic void onClick(View v) {

// TODO Auto-generated method stubString ma=txtmach1.getText()+"";String ten=txttench.getText()+"";String ngay=txtngaych.getText()+"";

if(db.checkTrung(ma,"ma_ch","Cohoi")==0){CoHoi ch=new CoHoi(ma,ten,ngay,kh.getma());arrch.add(ch);db.addCoHoi(ch);adapter.notifyDataSetChanged();

txttench.setText("");txtngaych.setText("");txttench.requestFocus();

}}

});

Page 21: 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

//thực hiện sự kiện xóa các cơ hội,có thể xóa 1 hoặc nhiềuxoach.setOnClickListener(new OnClickListener() {

@Overridepublic void onClick(View v) {

// TODO Auto-generated method stubfor(int i=listcohoi.getChildCount()-1;i>=0;i--){

View t=listcohoi.getChildAt(i);CheckBox ch=(CheckBox)t.findViewById(R.id.chkitem);if(ch.isChecked()){

db.deleteCoHoi(arrch.get(i));arrch.remove(i);

}}adapter.notifyDataSetChanged();

}});

adapter.notifyDataSetChanged();}

//Lấy khách hàng sẽ thêm cơ hộipublic void getData(){

Intent i=getIntent();Bundle b=i.getBundleExtra("DATA");kh=(KhachHang)b.getSerializable("KHACHHANG");

for(CoHoi c:db.getAllCoHoi(Integer.parseInt(kh.getma()))){arrch.add(c);

}

}}

- Class DatabaseHandle xây dựng cấu trúc các bảng dữ liệu và các hàm insert, update, delete.public class DatabaseHandler extends SQLiteOpenHelper {

private static final int DATABASE_VERSION=1;private static final String DATABASE_NAME="KhachHangManager";//table khach hangprivate static final String TABLE_KHACHHANG="KhachHang";private static final String ID="id";private static final String NAME="name";private static final String PHONE="phone";private static final String EMAIL="email";private static final String LEVEL="level";private static final String COINS="coins";private static final String SEX="sex";

//table donhang

Page 22: 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

private static final String TABLE_DONHANG="donhang";private static final String ID_DH="id_dh";private static final String NAME_DH="name_dh";private static final String DATE_DH="date_dh";private static final String MONEY_DH="sum_money";//table productprivate static final String TABLE_PRODUCT="product";private static final String ID_SP="ma_sp";private static final String NAME_SP="ten_sp";private static final String INFO_SP="info_sp";private static final String PRICE_SP="price_sp";

//table of_cusprivate static final String TABLE_OF_CUS="of_cus";private static final String ID_KH_OF_CUS="id_kh_of_cus";private static final String ID_DH_OF_CUS="id_dh_of_cus";

//table bo_billprivate static final String TABLE_OF_BILL="of_bill";private static final String ID_SP_OF_BILL="id_sp_of_bill";private static final String ID_DH_OF_BILL="id_dh_of_bill";

//table co hoiprivate static final String TABLE_COHOI="Cohoi";private static final String ID_MA_CH="ma_ch";private static final String ID_TEN_CH="ten_ch";private static final String ID_NGAY_CH="ngay_ch";private static final String ID_MA_KH_CH="ma_kh_ch";

public DatabaseHandler(Context context) {super(context, DATABASE_NAME, null, DATABASE_VERSION);

}

//thiết lập lệnh tạo các table và thực thi các lệnh đó@Overridepublic void onCreate(SQLiteDatabase db) {

// TODO Auto-generated method stubString CREATE_KhachHang_TABLE="CREATE TABLE

"+TABLE_KHACHHANG+" ( "+ID+" INTEGER PRIMARY KEY, "+NAME+" TEXT, "+PHONE+" TEXT, "+EMAIL+ " TEXT, "+LEVEL+ " TEXT, "+COINS+ " TEXT, "+SEX+" TEXT )";

Page 23: 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

String CREATE_DonHang_TABLE="CREATE TABLE "+TABLE_DONHANG+" ("

+ID_DH +" INTEGER PRIMARY KEY, "+NAME_DH+ " TEXT, "+DATE_DH+ " TEXT, "+MONEY_DH+ " TEXT )";

String CREATE_Product_TABLE="CREATE TABLE "+TABLE_PRODUCT+" ("

+ID_SP +" INTEGER PRIMARY KEY, "+NAME_SP+ " TEXT, "+INFO_SP+ " TEXT, "+PRICE_SP+ " TEXT )";

String CREATE_of_cus_TABLE="CREATE TABLE "+TABLE_OF_CUS+" ("

+ ID_KH_OF_CUS+ " INTEGER, "+ ID_DH_OF_CUS+ " INTEGER, "+" PRIMARY KEY

("+ID_KH_OF_CUS+","+ID_DH_OF_CUS+" )"+" FOREIGN KEY("+ID_KH_OF_CUS+") REFERENCES "

+TABLE_KHACHHANG+"( "+ID+") ON DELETE CASCADE ON UPDATE CASCADE,"

+" FOREIGN KEY("+ID_DH_OF_CUS+") REFERENCES " +TABLE_DONHANG+"( "+ID_DH+") ON DELETE CASCADE ON UPDATE CASCADE )";

String CREATE_of_bill_TABLE="CREATE TABLE "+TABLE_OF_BILL +

" ( "+ ID_DH_OF_BILL+" INTEGER, " + ID_SP_OF_BILL+" INTEGER, " + " PRIMARY KEY

("+ID_DH_OF_BILL+","+ID_SP_OF_BILL+" )" +" FOREIGN KEY("+ID_DH_OF_BILL+")

REFERENCES " +TABLE_DONHANG+"( "+ID_DH+") ON DELETE CASCADE ON UPDATE CASCADE,"

+" FOREIGN KEY("+ID_SP_OF_BILL+") REFERENCES " +TABLE_PRODUCT+"( "+ID_SP+") ON DELETE CASCADE ON UPDATE CASCADE )";

String CREATE_co_hoi_TABLE="CREATE TABLE "+TABLE_COHOI+" ( "+ID_MA_CH +" TEXT PRIMARY KEY, "+ ID_TEN_CH+" TEXT, "+ ID_NGAY_CH+" TEXT, "+ ID_MA_KH_CH+" INTEGER, "+ "FOREIGN KEY("+ID_MA_KH_CH+")

REFERENCES "+TABLE_KHACHHANG+"("+ID+") ON DELETE CASCADE ON UPDATE CASCADE )";

Page 24: 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

db.execSQL(CREATE_KhachHang_TABLE);db.execSQL(CREATE_DonHang_TABLE);db.execSQL(CREATE_Product_TABLE);db.execSQL(CREATE_of_cus_TABLE);db.execSQL(CREATE_of_bill_TABLE);db.execSQL(CREATE_co_hoi_TABLE);

}

//xóa các table khi version thay đổi@Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

// TODO Auto-generated method stubdb.execSQL("DROP TABLE IF EXISTS "+TABLE_KHACHHANG);db.execSQL("DROP TABLE IF EXISTS "+TABLE_DONHANG);db.execSQL("DROP TABLE IF EXISTS "+TABLE_PRODUCT);db.execSQL("DROP TABLE IF EXISTS "+TABLE_OF_CUS);db.execSQL("DROP TABLE IF EXISTS "+TABLE_OF_BILL);db.execSQL("DROP TABLE IF EXISTS "+TABLE_COHOI);onCreate(db);

}

//add single KhachHangpublic void addKhachHang(KhachHang khachhang){

SQLiteDatabase db=this.getWritableDatabase();ContentValues values=new ContentValues();values.put(NAME, khachhang.getten());values.put(PHONE, khachhang.getsdt());values.put(EMAIL, khachhang.getemail());values.put(LEVEL, khachhang.getlevel());values.put(COINS, khachhang.getcoins());values.put(SEX, khachhang.getsex()?"Nam":"Nu");

//insert rowdb.insert(TABLE_KHACHHANG, null, values);db.close();

}

//read rowpublic KhachHang getKhachHang(int id){

SQLiteDatabase db=this.getReadableDatabase();Cursor cursor=db.query(TABLE_KHACHHANG, new String[]

{ID,NAME}, ID +" = ?", new String[]{String.valueOf(id)}, null, null, null,null);if(cursor!=null)

Page 25: 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

cursor.moveToFirst();KhachHang khachhang=new

KhachHang(String.valueOf(cursor.getInt(0)),cursor.getString(1),cursor.getString(2),cursor.getString(3),cursor.getString(4),cursor.getString(5),cursor.getString(6)=="Nam"?true:false);

return khachhang;}

//Trả về danh sách khách hàng đọng từ cơ sở dữ liệupublic ArrayList<KhachHang> getAllKhachHang(){

ArrayList<KhachHang> KhachHanglist=new ArrayList<KhachHang>();String selectquery="SELECT * FROM "+TABLE_KHACHHANG;

SQLiteDatabase db=this.getReadableDatabase();Cursor cursor=db.rawQuery(selectquery, null);if(cursor.moveToFirst()){

do{KhachHang khachhang=new KhachHang();khachhang.setma(cursor.getString(0));khachhang.setten(cursor.getString(1));khachhang.setsdt(cursor.getString(2));khachhang.setemail(cursor.getString(3));khachhang.setlevel(cursor.getString(4));khachhang.setcoins(cursor.getString(5));khachhang.setsex((cursor.getString(6)=="Nam"?

true:false));KhachHanglist.add(khachhang);

}while(cursor.moveToNext());}return KhachHanglist;

}

//lấy số lượng khách hàng đọc từ cơ sở dữ liệupublic int getKhachHangCount(){

String countQuery = "SELECT * FROM " + TABLE_KHACHHANG; SQLiteDatabase db = this.getReadableDatabase(); Cursor cursor = db.rawQuery(countQuery, null); int count = 0; try { if (cursor.moveToFirst()) { count = cursor.getCount(); }

Page 26: 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

return count; } finally { if (cursor != null) { cursor.close(); db.close(); } }

}

//cập nhật thông tin khách hàng trong cơ sở dữ liệupublic int updateKhachHang(KhachHang khachhang){

SQLiteDatabase db=this.getWritableDatabase();ContentValues values=new ContentValues();values.put(NAME, khachhang.getten());values.put(PHONE, khachhang.getsdt());values.put(SEX,khachhang.getsex()?"Nam":"Nu");values.put(EMAIL, khachhang.getemail());values.put(LEVEL, khachhang.getlevel());values.put(COINS, khachhang.getcoins());return db.update(TABLE_KHACHHANG, values, ID+" = ?", new

String[]{String.valueOf(khachhang.getma())});

}

// thay đổi level khách hàng bằng cách cập nhật lại côt level//trong table KhachHangpublic void chuyenKhachHang(KhachHang k,int i){

SQLiteDatabase db = this.getWritableDatabase();if(i==0){k.setlevel("VIP");}else if(i==1){k.setlevel("THUONG");}else {k.setlevel("TIMNANG");}updateKhachHang(k);db.close();

}

//xóa khách hàngpublic void deleteKhachHang(KhachHang khachhang){

SQLiteDatabase db = this.getWritableDatabase(); db.delete(TABLE_KHACHHANG, ID + " = ?", new String[] { String.valueOf(khachhang.getma()) }); db.close();

Page 27: 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

}

//lay Danh sach don hang cua khach hangpublic ArrayList<DonHang> getdsdh_ofkh(int id){

ArrayList<DonHang> listdh=new ArrayList<DonHang>();String query ="SELECT * FROM "+TABLE_OF_CUS +" WHERE

"+ID_KH_OF_CUS+" = "+id;SQLiteDatabase db=this.getReadableDatabase();Cursor cursor=db.rawQuery(query,null);if(cursor.moveToFirst()){

do{String query2 ="SELECT * FROM

"+TABLE_DONHANG +" WHERE "+ID_DH+" = "+cursor.getString(1);Cursor cursor2=db.rawQuery(query2,null);if(cursor2.moveToFirst()){

do{DonHang dh=new DonHang();dh.setmaDH(cursor2.getString(0));dh.settenDH(cursor2.getString(1));dh.setdate(cursor2.getString(2));dh.setsmoney(cursor2.getString(3));listdh.add(dh);

}while(cursor2.moveToNext());}

}while(cursor.moveToNext());}

return listdh;

}

//lay danh sach san pham cua don hang

public ArrayList<SanPham> getdssp_ofdh(int id){

ArrayList<SanPham> listsp=new ArrayList<SanPham>();String query ="SELECT * FROM "+TABLE_OF_BILL +" WHERE

"+ID_DH_OF_BILL+" = "+id;SQLiteDatabase db=this.getReadableDatabase();Cursor cursor=db.rawQuery(query,null);if(cursor.moveToFirst()){

do{String query2 ="SELECT * FROM "+TABLE_PRODUCT

+" WHERE "+ID_SP+" = "+cursor.getString(1);Cursor cursor2=db.rawQuery(query2,null);if(cursor2.moveToFirst()){

Page 28: 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

do{SanPham sp=new SanPham();sp.setmaSP(cursor2.getString(0));sp.settenSP(cursor2.getString(1));sp.setthongtinSP(cursor2.getString(2));sp.setprice(cursor2.getString(3));listsp.add(sp);

}while(cursor2.moveToNext());}

}while(cursor.moveToNext());}

return listsp;}

//them don hang vao 1 khach hang va vao csdlpublic void addSanPham(SanPham sanpham){

SQLiteDatabase db=this.getWritableDatabase();ContentValues values=new ContentValues();values.put(ID_SP, sanpham.getmaSP());values.put(NAME_SP, sanpham.gettenSP());values.put(INFO_SP, sanpham.getthongtinSP());values.put(PRICE_SP, sanpham.getprice());//insert rowdb.insert(TABLE_PRODUCT, null, values);db.close();

}

//them san pham vao 1 don hangpublic void addDonHang(DonHang donhang){

SQLiteDatabase db=this.getWritableDatabase();ContentValues values=new ContentValues();values.put(ID_DH, donhang.getmaDH());values.put(NAME_DH, donhang.gettenDH());values.put(DATE_DH, donhang.getdate());values.put(MONEY_DH, donhang.getsmoney());//insert rowdb.insert(TABLE_DONHANG, null, values);db.close();

}

//update don hangpublic int updateDonHang(DonHang donhang){

SQLiteDatabase db=this.getWritableDatabase();

Page 29: 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

ContentValues values=new ContentValues();

values.put(ID_DH, donhang.getmaDH());values.put(NAME_DH, donhang.gettenDH());values.put(DATE_DH, donhang.getdate());values.put(MONEY_DH, donhang.getsmoney());return db.update(TABLE_DONHANG, values, ID_DH+" = ?", new

String[]{String.valueOf(donhang.getmaDH())});

}

//update san phampublic int updateSanPham(SanPham sanpham){

SQLiteDatabase db=this.getWritableDatabase();ContentValues values=new ContentValues();

values.put(ID_SP, sanpham.getmaSP());values.put(NAME_SP, sanpham.gettenSP());values.put(INFO_SP, sanpham.getthongtinSP());values.put(PRICE_SP, sanpham.getprice());return db.update(TABLE_PRODUCT, values, ID_SP+" = ?", new String[]

{String.valueOf(sanpham.getmaSP())});

}

//xoa don hangpublic void deleteDonHang(DonHang donhang){

SQLiteDatabase db = this.getWritableDatabase(); db.delete(TABLE_DONHANG, ID_DH + " = ?", new String[] { String.valueOf(donhang.getmaDH()) }); db.close();

}//xoa delete_quanhe_KHDH_tu_KHpublic void delete_quanhe_KHDH_tu_KH(KhachHang khachhang){

SQLiteDatabase db = this.getWritableDatabase(); db.delete(TABLE_OF_CUS, ID_KH_OF_CUS + " = ?", new String[] { String.valueOf(khachhang.getma()) }); db.close();

}//xoa delete_quanhe_KHHD_tu_DHpublic void delete_quanhe_KHDH_tu_DH(DonHang donhang){

SQLiteDatabase db = this.getWritableDatabase(); db.delete(TABLE_OF_CUS, ID_DH_OF_CUS + " = ?",

Page 30: 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

new String[] { String.valueOf(donhang.getmaDH()) }); db.close();

}//xoa delete_quanhe_DH_SP_tu_DHpublic void delete_quanhe_DH_SP_tu_DH(DonHang donhang){

SQLiteDatabase db = this.getWritableDatabase(); db.delete(TABLE_OF_BILL, ID_DH_OF_BILL + " = ?", new String[] { String.valueOf(donhang.getmaDH()) }); db.close();

}//xoa delete_quanhe_DHSP_tu_SPpublic void delete_quanhe_DHSP_tu_SP(SanPham sanpham){

SQLiteDatabase db = this.getWritableDatabase(); db.delete(TABLE_OF_BILL, ID_SP_OF_BILL + " = ?", new String[] { String.valueOf(sanpham.getmaSP()) }); db.close();

}

//xoa san phampublic void deleteSanPham(SanPham sanpham){

SQLiteDatabase db = this.getWritableDatabase(); db.delete(TABLE_PRODUCT, ID_SP + " = ?", new String[] { String.valueOf(sanpham.getmaSP()) }); db.close();

}

//them vao bang of_cuspublic void addof_cus(KhachHang khachhang,DonHang donhang){

SQLiteDatabase db=this.getWritableDatabase();ContentValues values=new ContentValues();values.put(ID_KH_OF_CUS, khachhang.getma());values.put(ID_DH_OF_CUS, donhang.getmaDH());//insert rowdb.insert(TABLE_OF_CUS, null, values);db.close();

}

//them vao bang of_billpublic void addof_bill(DonHang donhang,SanPham sanpham){

SQLiteDatabase db=this.getWritableDatabase();

Page 31: 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

ContentValues values=new ContentValues();values.put(ID_DH_OF_BILL, donhang.getmaDH());values.put(ID_SP_OF_BILL, sanpham.getmaSP());//insert rowdb.insert(TABLE_OF_BILL, null, values);db.close();

}

public boolean chkDB(){ boolean chk = false; SQLiteDatabase db = this.getWritableDatabase(); Cursor mCursor = db.rawQuery("SELECT * FROM " + TABLE_KHACHHANG, null); if (mCursor != null){ mCursor.moveToFirst(); if (mCursor.getInt(0) == 0){ chk = false; } }else{ chk = true; } db.close(); return chk; }//thêm 1 cơ hội vào CSDL

public void addCoHoi(CoHoi cohoi){

SQLiteDatabase db=this.getWritableDatabase();ContentValues values=new ContentValues();values.put(ID_MA_CH, cohoi.getmach());values.put(ID_TEN_CH, cohoi.gettench());values.put(ID_NGAY_CH, cohoi.getngaych());values.put(ID_MA_KH_CH, cohoi.getmakh_of_ch());//insert rowdb.insert(TABLE_COHOI, null, values);db.close();

}// xóa cơ hội khỏi CSDLpublic void deleteCoHoi(CoHoi cohoi){

SQLiteDatabase db = this.getWritableDatabase(); db.delete(TABLE_COHOI, ID_MA_CH + " = ?", new String[] { String.valueOf(cohoi.getmach()) }); db.close();

}

Page 32: 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

//Lấy danh sách cơ hộipublic ArrayList<CoHoi> getAllCoHoi(int ma){

ArrayList<CoHoi> CoHoilist=new ArrayList<CoHoi>();String selectquery="SELECT * FROM "+TABLE_COHOI+" WHERE

"+ID_MA_KH_CH+" = "+ma;

SQLiteDatabase db=this.getReadableDatabase();Cursor cursor=db.rawQuery(selectquery, null);if(cursor.moveToFirst()){

do{CoHoi cohoi=new CoHoi();cohoi.setmach(cursor.getString(0));cohoi.settench(cursor.getString(1));cohoi.setngaych(cursor.getString(2));cohoi.setmakh_of_ch(cursor.getString(3));CoHoilist.add(cohoi);

}while(cursor.moveToNext());}return CoHoilist;

}

//Kiểm tra khi thêm 1 khách hàng, 1 đơn hàng, 1 cơ hội, mã của nó//có cùng với mã hiện tại hay chưapublic int checkTrung(String i,String column,String table){

String countQuery = "SELECT * FROM " + table+" WHERE "+column+" = "+i;

SQLiteDatabase db = this.getReadableDatabase(); Cursor cursor = db.rawQuery(countQuery, null); int count = 0; try { if (cursor.moveToFirst()) { count = cursor.getCount(); } return count; } finally { if (cursor != null) { cursor.close(); db.close(); } }

}}

Page 33: 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