Skip to content

Instantly share code, notes, and snippets.

@alkaaf
Created February 5, 2017 04:29
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save alkaaf/83f44e551f8f4c80b3aedfa33c8be685 to your computer and use it in GitHub Desktop.
Save alkaaf/83f44e551f8f4c80b3aedfa33c8be685 to your computer and use it in GitHub Desktop.
wee
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