Finish v1_10_9(112)

This commit is contained in:
Giuseppe Scorrano 2019-12-18 13:07:54 +01:00
commit 638bd18856
10 changed files with 238 additions and 137 deletions

View File

@ -17,8 +17,8 @@ apply plugin: 'com.google.gms.google-services'
android {
def appVersionCode = 111
def appVersionName = '1.10.8'
def appVersionCode = 112
def appVersionName = '1.10.9'
signingConfigs {
release {

View File

@ -378,11 +378,17 @@ public class MtbColt extends EntityBase {
return dataVers;
}
public MtbColt setDataVers(String dataVers) {
this.dataVers = dataVers;
return this;
}
public MtbColt setDataVers(Date dataVers) {
this.dataVers = UtilityDate.formatDate(dataVers, UtilityDate.COMMONS_DATE_FORMATS.DMY_TIME_SLASH);
return this;
}
public Integer getSegno() {
return segno;
}

View File

@ -154,28 +154,55 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer{
}
public static void createColloScaricoDaCarico(MtbColt sourceMtbColt, MtbDepoPosizione posizione, RunnableArgs<MtbColt> onComplete, RunnableArgs<Exception> onFailed) {
MtbColt cloneUL = ((MtbColt) sourceMtbColt.clone());
cloneUL.setMtbCols(null)
.setNumCollo(null)
.setDataCollo((String) null)
.setSegno(-1)
.setGestione(GestioneEnum.LAVORAZIONE)
.setDataVers(null)
.setDataDoc(null)
.setNumDoc(null)
.setSerDoc(null)
.setCodDtip(null)
MtbColt newMtbColt = new MtbColt()
.initDefaultFields()
.setCodAnag(null)
.setCodVdes(null)
.setOperation(CommonModelConsts.OPERATION.INSERT);
.setGestione(GestioneEnum.LAVORAZIONE)
.setSegno(-1)
.setCodTcol(sourceMtbColt.getCodTcol())
.setPesoKg(sourceMtbColt.getPesoKg())
.setPesoNettoKg(sourceMtbColt.getPesoNettoKg())
.setLarghezzaCm(sourceMtbColt.getLarghezzaCm())
.setLunghezzaCm(sourceMtbColt.getLunghezzaCm())
.setAltezzaCm(sourceMtbColt.getAltezzaCm())
.setCodMdep(sourceMtbColt.getCodMdep())
.setDataVers(UtilityDate.getDateInstance())
.setOraFinePrep(UtilityDate.getDateInstance());
newMtbColt.setOperation(CommonModelConsts.OPERATION.INSERT);
// MtbColt cloneUL = ((MtbColt) sourceMtbColt.clone());
//
// cloneUL.setMtbCols(null)
// .setNumCollo(null)
// .setDataCollo((String) null)
// .setSegno(-1)
// .setGestione(GestioneEnum.LAVORAZIONE)
// .setDataVers(null)
// .setDataDoc(null)
// .setNumDoc(null)
// .setSerDoc(null)
// .setCodDtip(null)
// .setCodAnag(null)
// .setCodVdes(null)
// .setOperation(CommonModelConsts.OPERATION.INSERT);
if(posizione != null) {
cloneUL.setPosizione(posizione.getPosizione());
newMtbColt
.setPosizione(posizione.getPosizione());
if(posizione.isFlagLineaProduzione()) {
newMtbColt
.setCodJfas(posizione.getPosizione());
}
}
for(int i = 0; i < cloneUL.getMtbColr().size(); i++) {
cloneUL.getMtbColr().get(i)
for(int i = 0; i < sourceMtbColt.getMtbColr().size(); i++) {
MtbColr mtbColrClone = (MtbColr) sourceMtbColt.getMtbColr().get(i).clone();
mtbColrClone
.setNumCollo(null)
.setDataCollo(null)
.setRiga(null)
@ -187,10 +214,12 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer{
.setSerColloRif(sourceMtbColt.getSerCollo())
.setOperation(CommonModelConsts.OPERATION.INSERT);
newMtbColt.getMtbColr().add(mtbColrClone);
}
saveCollo(cloneUL, new ISimpleOperationCallback<MtbColt>() {
saveCollo(newMtbColt, new ISimpleOperationCallback<MtbColt>() {
@Override
public void onSuccess(MtbColt value) {
if(onComplete != null) onComplete.run(value);

View File

@ -26,6 +26,7 @@ public class DBSettingsModel {
private boolean flagCanAutoOpenNewULAccettazione;
private boolean flagCanAddExtraQuantitySpedizione;
private boolean flagEnableCheckDepositoSpedizione;
private boolean flagUseNewPickingListSpedizione;
private boolean flagAskPesoColloSpedizione;
private boolean flagForceAllToColli;
@ -170,4 +171,13 @@ public class DBSettingsModel {
this.flagForceAllToColli = flagForceAllToColli;
return this;
}
public boolean isFlagUseNewPickingListSpedizione() {
return flagUseNewPickingListSpedizione;
}
public DBSettingsModel setFlagUseNewPickingListSpedizione(boolean flagUseNewPickingListSpedizione) {
this.flagUseNewPickingListSpedizione = flagUseNewPickingListSpedizione;
return this;
}
}

View File

@ -226,6 +226,10 @@ public class SettingsManager {
.setGestName("PICKING")
.setSection("SETUP")
.setKeySection("FLAG_ASK_PESO_COLLO"));
stbGestSetupList.add(new StbGestSetup()
.setGestName("PICKING")
.setSection("SPEDIZIONE")
.setKeySection("FLAG_USE_NEW_PICKING_LIST"));
GestSetupRESTConsumer.getValues(stbGestSetupList, list -> {
@ -241,6 +245,7 @@ public class SettingsManager {
dbSettingsModelIstance.setFlagEnableCheckDepositoSpedizione(getValueFromList(list, "ENABLE_CHECK_DEPOSITO", Boolean.class));
dbSettingsModelIstance.setFlagForceAllToColli(getValueFromList(list, "FLAG_FORCE_ALL_TO_COLLI", Boolean.class));
dbSettingsModelIstance.setFlagAskPesoColloSpedizione(getValueFromList(list, "FLAG_ASK_PESO_COLLO", Boolean.class));
dbSettingsModelIstance.setFlagUseNewPickingListSpedizione(getValueFromList(list, "FLAG_USE_NEW_PICKING_LIST", Boolean.class));
if(onComplete != null) onComplete.run();
}, onFailed);

View File

@ -100,10 +100,7 @@ public class ProdVersamentoMaterialViewModel {
Dialog progressDialog = UtilityProgress.createDefaultProgressDialog(mContext);
MtbColt cloneUL = ((MtbColt) mtbColt.get().clone());
cloneUL.setCodJfas(mtbDepoPosizione.getPosizione());
ColliMagazzinoRESTConsumer.createColloScaricoDaCarico(cloneUL, mtbDepoPosizione, generatedMtbColt -> {
ColliMagazzinoRESTConsumer.createColloScaricoDaCarico(mtbColt.get(), mtbDepoPosizione, generatedMtbColt -> {
DialogCommon.showDataSaved(mContext, () -> {
progressDialog.dismiss();
mOnVersamentoCompleted.run();

View File

@ -136,32 +136,26 @@ public class MainVenditaFragment extends Fragment implements ITitledFragment, IS
mHelper = new VenditaHelper(getActivity());
mViewModel = new VenditaViewModel(getActivity(), this, mBinding, mHelper);
mHelper.loadOrdini(new VenditaHelper.ILoadOrdiniCallback() {
@Override
public void onLoadSuccess(List<OrdineVenditaInevasoDTO> ordini) {
if(ordini != null) {
UtilityToast.showToast("Caricati " + ordini.size() + " ordini");
mOriginalOrderList = ordini;
mViewModel.setListOrder(ordini);
}
mBinding.ordiniVenditaEmptyView.setVisibility(ordini != null && ordini.size() > 0 ? View.GONE : View.VISIBLE);
refreshOrdini(ordini);
initRecyclerView();
progress.dismiss();
mHelper.loadOrdini(ordini -> {
if(ordini != null) {
UtilityToast.showToast("Caricati " + ordini.size() + " ordini");
mOriginalOrderList = ordini;
mViewModel.setListOrder(ordini);
}
@Override
public void onLoadFail(Exception ex) {
mOriginalOrderList = new ArrayList<>();
progress.dismiss();
String errorMessage = CommonRESTException.tryRecognizeThenGetMessage(ex);
if(errorMessage == null) errorMessage = ex.getMessage();
DialogSimpleMessageHelper.makeErrorDialog(getActivity(), new SpannableString(errorMessage), null, null).show();
}
mBinding.ordiniVenditaEmptyView.setVisibility(ordini != null && ordini.size() > 0 ? View.GONE : View.VISIBLE);
refreshOrdini(ordini);
initRecyclerView();
progress.dismiss();
}, ex -> {
mOriginalOrderList = new ArrayList<>();
progress.dismiss();
String errorMessage = CommonRESTException.tryRecognizeThenGetMessage(ex);
if(errorMessage == null) errorMessage = ex.getMessage();
DialogSimpleMessageHelper.makeErrorDialog(getActivity(), new SpannableString(errorMessage), null, null).show();
});
barcodeScannerIstanceID = BarcodeManager.addCallback(new BarcodeCallbackDTO()
@ -224,45 +218,40 @@ public class MainVenditaFragment extends Fragment implements ITitledFragment, IS
final String finalDataCons = dataCons;
checkSelectedOrders(selectedOrders, () -> {
mHelper.retrievePickingList(barcodes, finalDataCons, new VenditaHelper.ILoadPickingListCallback() {
@Override
public void onLoadSuccess(final List<PickingObjectDTO> ordini) {
mHelper.getBancaliVenditaGiaRegistrati(selectedOrders, mtbColtList -> {
RunnableArgs<List<PickingObjectDTO>> onPostGetPickingList = ordini -> {
progress.dismiss();
mHelper.getBancaliVenditaGiaRegistrati(selectedOrders, mtbColtList -> {
progress.dismiss();
List<String> codMarts = Stream.of(ordini)
.distinctBy(PickingObjectDTO::getCodMart)
.map(PickingObjectDTO::getCodMart)
.toList();
List<String> codMarts = Stream.of(ordini)
.distinctBy(PickingObjectDTO::getCodMart)
.map(PickingObjectDTO::getCodMart)
.toList();
int alreadyRegisteredUL = mtbColtList.size();
int alreadyRegisteredUL = mtbColtList.size();
DialogSimpleMessageHelper.makeInfoDialog(getActivity(),
getText(R.string.orders).toString(),
Html.fromHtml(String.format(getActivity().getResources().getQuantityString(R.plurals.loaded_orders_message, selectedOrders.size()), selectedOrders.size())
+ "<br />" +
"<b>" + codMarts.size() + "</b> " + getActivity().getResources().getQuantityString(R.plurals.available_articles, codMarts.size())
+ "<br />" +
"<b>" + alreadyRegisteredUL + "</b> " + getActivity().getResources().getQuantityString(R.plurals.already_registered_lu, alreadyRegisteredUL)),
null,
() -> startVenditaActivity(ordini, selectedOrders, mtbColtList)
).show();
}, ex -> UtilityExceptions.defaultException(getActivity(), ex, progress));
DialogSimpleMessageHelper.makeInfoDialog(getActivity(),
getText(R.string.orders).toString(),
Html.fromHtml(String.format(getActivity().getResources().getQuantityString(R.plurals.loaded_orders_message, barcodes.size()), barcodes.size())
+ "<br />" +
"<b>" + codMarts.size() + "</b> " + getActivity().getResources().getQuantityString(R.plurals.available_articles, codMarts.size())
+ "<br />" +
"<b>" + alreadyRegisteredUL + "</b> " + getActivity().getResources().getQuantityString(R.plurals.already_registered_lu, alreadyRegisteredUL)),
null,
() -> startVenditaActivity(ordini, selectedOrders, mtbColtList)
).show();
}, ex -> UtilityExceptions.defaultException(getActivity(), ex, progress));
}
@Override
public void onLoadFail(Exception ex) {
UtilityExceptions.defaultException(getActivity(), ex, progress);
}
});
};
if(SettingsManager.iDB().isFlagUseNewPickingListSpedizione()) {
mHelper.retrievePickingListNew(selectedOrders, onPostGetPickingList, ex -> UtilityExceptions.defaultException(getActivity(), ex, progress));
} else {
mHelper.retrievePickingList(barcodes, finalDataCons, onPostGetPickingList, ex -> UtilityExceptions.defaultException(getActivity(), ex, progress));
}
}, () -> {
progress.dismiss();

View File

@ -26,6 +26,7 @@ import it.integry.integrywmsnative.core.utility.UtilityDB;
import it.integry.integrywmsnative.core.utility.UtilityDate;
import it.integry.integrywmsnative.core.utility.UtilityFirebase;
import it.integry.integrywmsnative.core.utility.UtilityLogger;
import it.integry.integrywmsnative.gest.vendita.dto.GetPickingListDTO;
import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaInevasoDTO;
import it.integry.integrywmsnative.gest.vendita.dto.PickingObjectDTO;
import it.integry.integrywmsnative.gest.vendita.rest.OrdiniVenditaRESTConsumerService;
@ -41,7 +42,7 @@ public class VenditaHelper {
mContext = context;
}
public void loadOrdini(final ILoadOrdiniCallback callback){
public void loadOrdini(RunnableArgs<List<OrdineVenditaInevasoDTO>> onComplete, RunnableArgs<Exception> onFailed){
String codMdep = SettingsManager.i().userSession.depo.getCodMdep();
Trace perfTrace = UtilityFirebase.getNewPerformanceTrace("db_load_ords_v");
@ -57,21 +58,21 @@ public class VenditaHelper {
if(response.body() != null) {
if(response.body().getEsito() == EsitoType.OK) {
UtilityFirebase.stopPerformanceTrace(perfTrace, false);
callback.onLoadSuccess(response.body().getDto());
onComplete.run(response.body().getDto());
} else {
UtilityFirebase.stopPerformanceTrace(perfTrace, true);
Log.e("Vendita", response.body().getErrorMessage());
callback.onLoadFail(new Exception(response.body().getErrorMessage()));
onFailed.run(new Exception(response.body().getErrorMessage()));
}
} else {
UtilityFirebase.stopPerformanceTrace(perfTrace, true);
Log.e("Vendita", response.message());
callback.onLoadFail(new Exception(response.message()));
onFailed.run(new Exception(response.message()));
}
} else {
UtilityFirebase.stopPerformanceTrace(perfTrace, true);
Log.e("Vendita", "Status " + response.code() + ": " + response.message());
callback.onLoadFail(new Exception("Status " + response.code() + ": " + response.message()));
onFailed.run(new Exception("Status " + response.code() + ": " + response.message()));
}
}
@ -80,14 +81,14 @@ public class VenditaHelper {
UtilityFirebase.stopPerformanceTrace(perfTrace, true);
Log.e("Vendita", t.toString());
UtilityLogger.errorMe(new Exception(t));
callback.onLoadFail(new Exception(t));
onFailed.run(new Exception(t));
}
});
}
public void retrievePickingList(List<String> barcodeOrdini, String dateCons, final ILoadPickingListCallback callback){
public void retrievePickingList(List<String> barcodeOrdini, String dateCons, RunnableArgs<List<PickingObjectDTO>> onComplete, RunnableArgs<Exception> onFailed){
String codMdep = SettingsManager.i().userSession.depo.getCodMdep();
String joinedBarcodes = TextUtils.join(",", barcodeOrdini);
@ -107,22 +108,22 @@ public class VenditaHelper {
if(response.body() != null) {
if(response.body().getEsito() == EsitoType.OK) {
UtilityFirebase.stopPerformanceTrace(perfTrace, false);
callback.onLoadSuccess(response.body().getDto());
onComplete.run(response.body().getDto());
} else {
Log.e("Vendita", response.body().getErrorMessage());
UtilityFirebase.stopPerformanceTrace(perfTrace, true);
callback.onLoadFail(new Exception(response.body().getErrorMessage()));
onFailed.run(new Exception(response.body().getErrorMessage()));
}
} else {
Log.e("Vendita", response.message());
UtilityFirebase.stopPerformanceTrace(perfTrace, true);
callback.onLoadFail(new Exception(response.message()));
onFailed.run(new Exception(response.message()));
}
} else {
UtilityFirebase.stopPerformanceTrace(perfTrace, true);
Log.e("Vendita", "Status " + response.code() + ": " + response.message());
callback.onLoadFail(new Exception("Status " + response.code() + ": " + response.message()));
onFailed.run(new Exception("Status " + response.code() + ": " + response.message()));
}
}
@ -131,12 +132,70 @@ public class VenditaHelper {
UtilityFirebase.stopPerformanceTrace(perfTrace, true);
Log.e("Vendita", t.toString());
UtilityLogger.errorMe(new Exception(t));
callback.onLoadFail(new Exception(t));
onFailed.run(new Exception(t));
}
});
}
public void retrievePickingListNew(List<OrdineVenditaInevasoDTO> orders, RunnableArgs<List<PickingObjectDTO>> onComplete, RunnableArgs<Exception> onFailed){
String codMdep = SettingsManager.i().userSession.depo.getCodMdep();
List<GetPickingListDTO> getPickingListDTOs = Stream.of(orders)
.map(x -> new GetPickingListDTO()
.setData(x.getDataOrdS())
.setGestione(x.getGestione())
.setNumero(x.getNumOrd())
.setDataConsegna(x.getDataConsS()))
.toList();
OrdiniVenditaRESTConsumerService service = RESTBuilder.getService(OrdiniVenditaRESTConsumerService.class, 90);
Trace perfTrace = UtilityFirebase.getNewPerformanceTrace("db_load_pick_v_new");
perfTrace.start();
codMdep = SettingsManager.iDB().isFlagEnableCheckDepositoSpedizione() ? codMdep : null;
service.getPickingListNew(codMdep, getPickingListDTOs).enqueue(new Callback<ServiceRESTResponse<List<PickingObjectDTO>>>() {
@Override
public void onResponse(Call<ServiceRESTResponse<List<PickingObjectDTO>>> call, Response<ServiceRESTResponse<List<PickingObjectDTO>>> response) {
if(response.isSuccessful()) {
if(response.body() != null) {
if(response.body().getEsito() == EsitoType.OK) {
UtilityFirebase.stopPerformanceTrace(perfTrace, false);
onComplete.run(response.body().getDto());
} else {
Log.e("Vendita", response.body().getErrorMessage());
UtilityFirebase.stopPerformanceTrace(perfTrace, true);
onFailed.run(new Exception(response.body().getErrorMessage()));
}
} else {
Log.e("Vendita", response.message());
UtilityFirebase.stopPerformanceTrace(perfTrace, true);
onFailed.run(new Exception(response.message()));
}
} else {
UtilityFirebase.stopPerformanceTrace(perfTrace, true);
Log.e("Vendita", "Status " + response.code() + ": " + response.message());
onFailed.run(new Exception("Status " + response.code() + ": " + response.message()));
}
}
@Override
public void onFailure(Call<ServiceRESTResponse<List<PickingObjectDTO>>> call, Throwable t) {
UtilityFirebase.stopPerformanceTrace(perfTrace, true);
Log.e("Vendita", t.toString());
UtilityLogger.errorMe(new Exception(t));
onFailed.run(new Exception(t));
}
});
}
public void getBancaliVenditaGiaRegistrati(List<OrdineVenditaInevasoDTO> orders, RunnableArgs<List<MtbColt>> onComplete, RunnableArgs<Exception> onFailed) {
@ -236,33 +295,9 @@ public class VenditaHelper {
public List<OrdineVenditaInevasoDTO> getSelectedOrders(List<OrdineVenditaInevasoDTO> ordiniList){
// List<OrdineVenditaInevasoDTO> selectedOrdini = new ArrayList<>();
return Stream.of(ordiniList)
.filter(OrdineVenditaInevasoDTO::isSelected)
.toList();
// for(int i = 0; i < groupedOrdiniInevasi.size(); i++){
// List<OrdineVenditaInevasoDTO> selectedOrdiniGroup = new ArrayList<>();
//
// //for(int j = 0; j < groupedOrdiniInevasi.get(i).ordini.size(); j++){
// if(groupedOrdiniInevasi.get(i).checkBox) {
// selectedOrdiniGroup.add(groupedOrdiniInevasi.get(i).ordini.get(j));
// }
// //}
//
// if(selectedOrdiniGroup.size() > 0) {
// try {
// OrdineVenditaGroupedInevasoDTO cloneOrdine = groupedOrdiniInevasi.get(i).clone();
// cloneOrdine.ordini = selectedOrdiniGroup;
// selectedOrdini.add(cloneOrdine);
// } catch (CloneNotSupportedException e) {
// e.printStackTrace();
// }
// }
// }
// return selectedOrdini;
}
@ -281,29 +316,4 @@ public class VenditaHelper {
}
}
public interface ILoadOrdiniCallback {
void onLoadSuccess(List<OrdineVenditaInevasoDTO> ordini);
void onLoadFail(Exception ex);
}
public interface ILoadPickingListCallback {
void onLoadSuccess(List<PickingObjectDTO> ordini);
void onLoadFail(Exception ex);
}
}

View File

@ -0,0 +1,49 @@
package it.integry.integrywmsnative.gest.vendita.dto;
import java.util.Date;
public class GetPickingListDTO {
private String data;
private Integer numero;
private String gestione;
private String dataConsegna;
public String getData() {
return data;
}
public GetPickingListDTO setData(String data) {
this.data = data;
return this;
}
public Integer getNumero() {
return numero;
}
public GetPickingListDTO setNumero(Integer numero) {
this.numero = numero;
return this;
}
public String getGestione() {
return gestione;
}
public GetPickingListDTO setGestione(String gestione) {
this.gestione = gestione;
return this;
}
public String getDataConsegna() {
return dataConsegna;
}
public GetPickingListDTO setDataConsegna(String dataConsegna) {
this.dataConsegna = dataConsegna;
return this;
}
}

View File

@ -4,10 +4,13 @@ import java.util.List;
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
import it.integry.integrywmsnative.core.model.DtbOrdt;
import it.integry.integrywmsnative.gest.vendita.dto.GetPickingListDTO;
import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaInevasoDTO;
import it.integry.integrywmsnative.gest.vendita.dto.PickingObjectDTO;
import retrofit2.Call;
import retrofit2.http.Body;
import retrofit2.http.GET;
import retrofit2.http.POST;
import retrofit2.http.Query;
public interface OrdiniVenditaRESTConsumerService {
@ -21,6 +24,9 @@ public interface OrdiniVenditaRESTConsumerService {
@GET("getPickingListFromOrdini")
Call<ServiceRESTResponse<List<PickingObjectDTO>>> getPickingList(@Query("codMdep") String codMdep, @Query("dataCons") String dataCons, @Query("chiaviOrdini") String codBarreBacale);
@POST("getPickingListFromOrdini2")
Call<ServiceRESTResponse<List<PickingObjectDTO>>> getPickingListNew(@Query("codMdep") String codMdep, @Body List<GetPickingListDTO> pickingListDTO);
@GET("getOrdiniInCommCollo")
Call<ServiceRESTResponse<List<DtbOrdt>>> getOrdiniInCommessaCollo(@Query("dataCollo") String dataCollo, @Query("numCollo") Integer numCollo, @Query("serCollo") String serCollo, @Query("gestioneCollo") String gestioneCollo, @Query("gestioneOrdine") String gestioneOrdine, @Query("codMdep") String codMdep);