Created
February 5, 2017 04:29
-
-
Save alkaaf/83f44e551f8f4c80b3aedfa33c8be685 to your computer and use it in GitHub Desktop.
wee
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.sinadme.kasirsinadme.MKeuangan.Activity; | |
import android.os.Bundle; | |
import android.support.annotation.Nullable; | |
import android.view.Menu; | |
import android.view.MenuItem; | |
import android.view.View; | |
import android.widget.AdapterView; | |
import android.widget.ArrayAdapter; | |
import android.widget.Spinner; | |
import android.widget.TextView; | |
import com.google.gson.Gson; | |
import com.google.gson.reflect.TypeToken; | |
import com.sinadme.kasirsinadme.ActivityBase; | |
import com.sinadme.kasirsinadme.C; | |
import com.sinadme.kasirsinadme.Conf; | |
import com.sinadme.kasirsinadme.MKeuangan.Model.AkunAkun; | |
import com.sinadme.kasirsinadme.MKeuangan.Model.AkunKategori; | |
import com.sinadme.kasirsinadme.MKeuangan.Model.DaftarBiaya; | |
import com.sinadme.kasirsinadme.R; | |
import com.sinadme.kasirsinadme.Tools.DateTimePicker; | |
import com.sinadme.kasirsinadme.Tools.ResponseHandler; | |
import java.io.IOException; | |
import java.util.Calendar; | |
import java.util.List; | |
import butterknife.BindView; | |
import butterknife.ButterKnife; | |
import okhttp3.Call; | |
import okhttp3.Callback; | |
import okhttp3.MultipartBody; | |
import okhttp3.OkHttpClient; | |
import okhttp3.Request; | |
import okhttp3.RequestBody; | |
import okhttp3.Response; | |
/** | |
* Created by dalbo on 1/23/2017. | |
*/ | |
public class ActivityBiayaOperasional extends ActivityBase { | |
// TODO: 1/25/2017 persiapan mari, kari ngisi data dan save | |
// TODO: 1/27/2017 percobaan | |
@BindView(R.id.cardAkunDebetTitle) | |
TextView debetTitle; | |
@BindView(R.id.cardAkunKreditTitle) | |
TextView kreditTitle; | |
@BindView(R.id.iNominal) | |
TextView iNominal; | |
@BindView(R.id.iTanggal) | |
TextView iTanggal; | |
@BindView(R.id.iKeterangan) | |
TextView iKeterangan; | |
@BindView(R.id.spinKategoriAkunDebet) | |
Spinner spinKategoriDebet; | |
@BindView(R.id.spinAkunDebet) | |
Spinner spinAkunDebet; | |
@BindView(R.id.spinKategoriAkunKredit) | |
Spinner spinKategoriKredit; | |
@BindView(R.id.spinAkunKredit) | |
Spinner spinAkunKredit; | |
DateTimePicker dateTimePicker; | |
Calendar calendar; | |
ArrayAdapter<AkunKategori> kategoriKreditAdapter; | |
ArrayAdapter<AkunAkun> akunKreditAdapter; | |
ArrayAdapter<AkunKategori> kategoriDebetAdapter; | |
ArrayAdapter<AkunAkun> akunDebetAdapter; | |
List<AkunKategori> dataKategoriKredit; | |
List<AkunAkun> dataAkunKredit; | |
List<AkunKategori> dataKategoriDebet; | |
List<AkunAkun> dataAkunDebet; | |
DaftarBiaya daftarBiaya; | |
String token; | |
String idOwner; | |
final String EMPTY_NOMINAL = "Nominal biaya belum dimasukkan"; | |
final String EMPTY_TANGGAL = "Tanggal belum ditentukan"; | |
final String EMPTY_KREDIT = "Akun kas belum ditentukan"; | |
final String EMPTY_DEBET = "Akun biaya belum ditentukan"; | |
@Override | |
protected void onCreate(@Nullable Bundle savedInstanceState) { | |
super.onCreate(savedInstanceState); | |
setContentView(R.layout.activity_biaya_operasional); | |
ButterKnife.bind(this); | |
daftarBiaya = new DaftarBiaya(); | |
token = Conf.get(this, C.CFG_TOKEN); | |
idOwner = Conf.get(this, C.CFG_ID_OWNER); | |
daftarBiaya.setIdKaryawan(Conf.get(this, C.CFG_ID_KARYAWAN)); | |
daftarBiaya.setIdOutlet(Conf.get(this, C.CFG_ID_OUTLET)); | |
daftarBiaya.setWaktu(System.currentTimeMillis()); | |
dateTimePicker = new DateTimePicker(this); | |
dateTimePicker.setDismissListener(new DateTimePicker.OnDismissListener() { | |
@Override | |
public void onDismiss(String formattedDate, long millisTime) { | |
iTanggal.setText(formattedDate); | |
} | |
}); | |
kategoriKreditAdapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_dropdown_item); | |
kategoriDebetAdapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_dropdown_item); | |
akunKreditAdapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_dropdown_item); | |
akunDebetAdapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_dropdown_item); | |
spinKategoriKredit.setAdapter(kategoriKreditAdapter); | |
spinKategoriDebet.setAdapter(kategoriDebetAdapter); | |
spinAkunKredit.setAdapter(akunKreditAdapter); | |
spinAkunDebet.setAdapter(akunDebetAdapter); | |
debetTitle.setText("Akun Biaya"); | |
kreditTitle.setText("Akun Kas"); | |
iTanggal.setFocusable(false); | |
iTanggal.setCursorVisible(false); | |
iTanggal.setOnClickListener(new View.OnClickListener() { | |
@Override | |
public void onClick(View view) { | |
dateTimePicker.show(); | |
} | |
}); | |
setKategoriAkunKredit(); | |
setKategoriAkunDebet(); | |
spinKategoriKredit.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { | |
@Override | |
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) { | |
setDaftarAkunKredit(dataKategoriKredit.get(i).getIdKategori()); | |
} | |
@Override | |
public void onNothingSelected(AdapterView<?> adapterView) { | |
akunKreditAdapter.clear(); | |
akunDebetAdapter.notifyDataSetChanged(); | |
} | |
}); | |
spinKategoriDebet.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { | |
@Override | |
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) { | |
setDaftarAkunDebet(dataKategoriDebet.get(i).getIdKategori()); | |
} | |
@Override | |
public void onNothingSelected(AdapterView<?> adapterView) { | |
akunDebetAdapter.clear(); | |
akunDebetAdapter.notifyDataSetChanged(); | |
} | |
}); | |
spinAkunKredit.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { | |
@Override | |
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) { | |
daftarBiaya.setIdAkunKredit(dataAkunKredit.get(i).getIdAkun()); | |
} | |
@Override | |
public void onNothingSelected(AdapterView<?> adapterView) { | |
daftarBiaya.setIdAkunKredit(null); | |
} | |
}); | |
spinAkunDebet.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { | |
@Override | |
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) { | |
daftarBiaya.setIdAkunDebit(dataAkunDebet.get(i).getIdAkun()); | |
} | |
@Override | |
public void onNothingSelected(AdapterView<?> adapterView) { | |
daftarBiaya.setIdAkunDebit(null); | |
} | |
}); | |
} | |
OkHttpClient conn; | |
Request requestKategoriKredit; | |
Request requestKategoriDebet; | |
Request requestAkunKredit; | |
Request requestAkunDebet; | |
RequestBody bodyKategoriKredit; | |
RequestBody bodyKategoriDebet; | |
RequestBody bodyAkunKredit; | |
RequestBody bodyAkunDebet; | |
ResponseHandler handlerKategoriKredit; | |
ResponseHandler handlerKategoriDebet; | |
ResponseHandler handlerAkunKredit; | |
ResponseHandler handlerAkunDebet; | |
public void setKategoriAkunKredit() { | |
conn = new OkHttpClient(); | |
bodyKategoriKredit = new MultipartBody.Builder() | |
.setType(MultipartBody.FORM) | |
.addFormDataPart("token", token) | |
.addFormDataPart("idowner", idOwner) | |
.build(); | |
requestKategoriKredit = new Request.Builder() | |
.post(bodyKategoriKredit) | |
.url(C.WS_ADDR + C.KEUANGAN_CONTROLLER + C.KEUANGAN_AKUN_KAS_KATEGORI) | |
.build(); | |
conn.newCall(requestKategoriKredit).enqueue(new Callback() { | |
@Override | |
public void onFailure(Call call, IOException e) { | |
runOnUiThread(new Runnable() { | |
@Override | |
public void run() { | |
makeToast(C.MSG_FAIL_SERVER); | |
} | |
}); | |
} | |
@Override | |
public void onResponse(Call call, Response response) throws IOException { | |
String resp = response.body().string(); | |
handlerKategoriKredit = new ResponseHandler(resp); | |
if (handlerKategoriKredit.isSuccess()) { | |
dataKategoriKredit = new Gson().fromJson(handlerKategoriKredit.getData().toString(), new TypeToken<List<AkunKategori>>() { | |
}.getType()); | |
runOnUiThread(new Runnable() { | |
@Override | |
public void run() { | |
kategoriKreditAdapter.clear(); | |
kategoriKreditAdapter.addAll(dataKategoriKredit); | |
kategoriKreditAdapter.notifyDataSetChanged(); | |
} | |
}); | |
} else { | |
runOnUiThread(new Runnable() { | |
@Override | |
public void run() { | |
makeToast(handlerKategoriKredit.getMessage()); | |
} | |
}); | |
} | |
} | |
}); | |
} | |
public void setKategoriAkunDebet() { | |
conn = new OkHttpClient(); | |
bodyKategoriDebet = new MultipartBody.Builder() | |
.setType(MultipartBody.FORM) | |
.addFormDataPart("token", token) | |
.addFormDataPart("idowner", idOwner) | |
.build(); | |
requestKategoriDebet = new Request.Builder() | |
.post(bodyKategoriDebet) | |
.url(C.WS_ADDR + C.KEUANGAN_CONTROLLER + C.KEUANGAN_AKUN_BIAYA_KATEGORI) | |
.build(); | |
conn.newCall(requestKategoriDebet).enqueue(new Callback() { | |
@Override | |
public void onFailure(Call call, IOException e) { | |
runOnUiThread(new Runnable() { | |
@Override | |
public void run() { | |
makeToast(C.MSG_FAIL_SERVER); | |
} | |
}); | |
} | |
@Override | |
public void onResponse(Call call, Response response) throws IOException { | |
String resp = response.body().string(); | |
handlerKategoriDebet = new ResponseHandler(resp); | |
if (handlerKategoriDebet.isSuccess()) { | |
dataKategoriDebet = new Gson().fromJson(handlerKategoriDebet.getData().toString(), new TypeToken<List<AkunKategori>>() { | |
}.getType()); | |
runOnUiThread(new Runnable() { | |
@Override | |
public void run() { | |
kategoriDebetAdapter.clear(); | |
kategoriDebetAdapter.addAll(dataKategoriDebet); | |
kategoriDebetAdapter.notifyDataSetChanged(); | |
} | |
}); | |
} else { | |
runOnUiThread(new Runnable() { | |
@Override | |
public void run() { | |
makeToast(handlerKategoriDebet.getMessage()); | |
} | |
}); | |
} | |
} | |
}); | |
} | |
public void setDaftarAkunKredit(String idKategori) { | |
conn = new OkHttpClient(); | |
bodyAkunKredit = new MultipartBody.Builder() | |
.setType(MultipartBody.FORM) | |
.addFormDataPart("token", token) | |
.addFormDataPart("idowner", idOwner) | |
.addFormDataPart("idkategori", idKategori) | |
.build(); | |
requestAkunKredit = new Request.Builder() | |
.post(bodyAkunKredit) | |
.url(C.WS_ADDR + C.KEUANGAN_CONTROLLER + C.KEUANGAN_AKUN_KAS_AKUN) | |
.build(); | |
conn.newCall(requestAkunKredit).enqueue(new Callback() { | |
@Override | |
public void onFailure(Call call, IOException e) { | |
runOnUiThread(new Runnable() { | |
@Override | |
public void run() { | |
makeToast(C.MSG_FAIL_SERVER); | |
} | |
}); | |
} | |
@Override | |
public void onResponse(Call call, Response response) throws IOException { | |
String resp = response.body().string(); | |
handlerAkunKredit = new ResponseHandler(resp); | |
if (handlerAkunKredit.isSuccess()) { | |
dataAkunKredit = new Gson().fromJson(handlerAkunKredit.getData().toString(), new TypeToken<List<AkunAkun>>() { | |
}.getType()); | |
runOnUiThread(new Runnable() { | |
@Override | |
public void run() { | |
akunKreditAdapter.clear(); | |
akunKreditAdapter.addAll(dataAkunKredit); | |
akunKreditAdapter.notifyDataSetChanged(); | |
} | |
}); | |
} else { | |
runOnUiThread(new Runnable() { | |
@Override | |
public void run() { | |
makeToast(handlerAkunKredit.getMessage()); | |
} | |
}); | |
} | |
} | |
}); | |
} | |
public void setDaftarAkunDebet(String idKategori) { | |
conn = new OkHttpClient(); | |
bodyAkunDebet = new MultipartBody.Builder() | |
.setType(MultipartBody.FORM) | |
.addFormDataPart("token", token) | |
.addFormDataPart("idowner", idOwner) | |
.addFormDataPart("idkategori", idKategori) | |
.build(); | |
requestAkunDebet = new Request.Builder() | |
.post(bodyAkunDebet) | |
.url(C.WS_ADDR + C.KEUANGAN_CONTROLLER + C.KEUANGAN_AKUN_KAS_AKUN) | |
.build(); | |
conn.newCall(requestAkunDebet).enqueue(new Callback() { | |
@Override | |
public void onFailure(Call call, IOException e) { | |
runOnUiThread(new Runnable() { | |
@Override | |
public void run() { | |
makeToast(C.MSG_FAIL_SERVER); | |
} | |
}); | |
} | |
@Override | |
public void onResponse(Call call, Response response) throws IOException { | |
String resp = response.body().string(); | |
handlerAkunDebet = new ResponseHandler(resp); | |
if (handlerAkunDebet.isSuccess()) { | |
dataAkunDebet = new Gson().fromJson(handlerAkunDebet.getData().toString(), new TypeToken<List<AkunAkun>>() { | |
}.getType()); | |
runOnUiThread(new Runnable() { | |
@Override | |
public void run() { | |
akunDebetAdapter.clear(); | |
akunDebetAdapter.addAll(dataAkunDebet); | |
akunDebetAdapter.notifyDataSetChanged(); | |
} | |
}); | |
} else { | |
runOnUiThread(new Runnable() { | |
@Override | |
public void run() { | |
makeToast(handlerAkunDebet.getMessage()); | |
} | |
}); | |
} | |
} | |
}); | |
} | |
// TODO: 1/27/2017 get saldo akun model mari, tinggal njupuk e | |
public void setSaldoKredit(String id){ | |
} | |
public void setSaldoDebet(String id){ | |
} | |
@Override | |
public boolean onCreateOptionsMenu(Menu menu) { | |
getMenuInflater().inflate(R.menu.menu_done, menu); | |
return super.onCreateOptionsMenu(menu); | |
} | |
@Override | |
public boolean onOptionsItemSelected(MenuItem item) { | |
if (item.getItemId() == R.id.simpan) { | |
saveData(); | |
} | |
return super.onOptionsItemSelected(item); | |
} | |
public void saveData() { | |
daftarBiaya.setNominal(Double.parseDouble(iNominal.getText().toString())); | |
daftarBiaya.setKeterangan(iKeterangan.getText().toString()); | |
if(checkData()){ | |
showLoading(); | |
conn = new OkHttpClient(); | |
Request saveRequest = new Request.Builder() | |
.url(C.WS_ADDR+C.KEUANGAN_CONTROLLER+C.KEUANGAN_TAMBAH_BIAYA_OPERASIONAL) | |
.post(daftarBiaya.getRequestBody(token)) | |
.build(); | |
conn.newCall(saveRequest).enqueue(new Callback() { | |
@Override | |
public void onFailure(Call call, IOException e) { | |
runOnUiThread(new Runnable() { | |
@Override | |
public void run() { | |
makeToast(C.MSG_FAIL_CONNECT); | |
hideLoading(); | |
} | |
}); | |
} | |
@Override | |
public void onResponse(Call call, Response response) throws IOException { | |
String resp = response.body().string(); | |
final ResponseHandler saveHandler = new ResponseHandler(resp); | |
runOnUiThread(new Runnable() { | |
@Override | |
public void run() { | |
makeToast(saveHandler.getMessage()); | |
} | |
}); | |
if(saveHandler.isSuccess()){ | |
runOnUiThread(new Runnable() { | |
@Override | |
public void run() { | |
finish(); | |
} | |
}); | |
} | |
} | |
}); | |
} | |
} | |
public boolean checkData() { | |
if (daftarBiaya.getNominal() <= 0) { | |
makeToast(EMPTY_NOMINAL); | |
return false; | |
} else if (daftarBiaya.getIdAkunKredit() == null) { | |
makeToast(EMPTY_KREDIT); | |
return false; | |
} else if (daftarBiaya.getIdAkunDebit() == null) { | |
makeToast(EMPTY_DEBET); | |
return false; | |
} else if (daftarBiaya.getTanggal() <= 0) { | |
makeToast(EMPTY_TANGGAL); | |
return false; | |
} | |
return true; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment