Fix vari su Synchronized e MainThread
This commit is contained in:
parent
eb5ae8443d
commit
cd89ce917e
@ -10,7 +10,9 @@ import java.util.ArrayList;
|
|||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Objects;
|
||||||
import java.util.concurrent.ExecutorService;
|
import java.util.concurrent.ExecutorService;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import javax.inject.Singleton;
|
import javax.inject.Singleton;
|
||||||
|
|
||||||
@ -207,25 +209,26 @@ public class ArticoloRESTConsumer extends _BaseRESTConsumer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void getUntMisArts(List<String> inputUntMis, RunnableArgs<List<MtbUntMis>> onComplete, RunnableArgs<Exception> onFailed) {
|
public List<MtbUntMis> getUntMisArtsSynchronized(List<String> inputUntMis) throws Exception {
|
||||||
List<HashMap<String, Object>> whereCondList = Stream.of(inputUntMis)
|
List<HashMap<String, Object>> whereCondList = inputUntMis.parallelStream()
|
||||||
.distinct()
|
.distinct()
|
||||||
.withoutNulls()
|
.filter(Objects::nonNull)
|
||||||
.map(x -> {
|
.map(x -> {
|
||||||
HashMap<String, Object> data = new HashMap<>();
|
HashMap<String, Object> data = new HashMap<>();
|
||||||
data.put("unt_mis", x);
|
data.put("unt_mis", x);
|
||||||
return data;
|
return data;
|
||||||
})
|
})
|
||||||
.toList();
|
.collect(Collectors.toUnmodifiableList());
|
||||||
|
|
||||||
var whereCond = whereCondList.isEmpty() ? "" : " WHERE " + UtilityQuery.concatFieldListInWhereCond(whereCondList);
|
var whereCond = whereCondList.isEmpty() ? "" : " WHERE " + UtilityQuery.concatFieldListInWhereCond(whereCondList);
|
||||||
|
|
||||||
Type typeOfObjectsList = new TypeToken<ArrayList<MtbUntMis>>() {
|
Type typeOfObjectsList = new TypeToken<ArrayList<MtbUntMis>>() {
|
||||||
}.getType();
|
}.getType();
|
||||||
this.systemRESTConsumer.processSql("SELECT * FROM mtb_unt_mis " + whereCond, typeOfObjectsList, onComplete, onFailed);
|
|
||||||
|
return this.systemRESTConsumer.processSqlSynchronized("SELECT * FROM mtb_unt_mis " + whereCond, typeOfObjectsList);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void fillMtbAartsWithMtbUntMis(List<MtbAart> inputMtbAart, RunnableArgs<List<MtbAart>> onComplete, RunnableArgs<Exception> onFailed) {
|
public List<MtbAart> fillMtbAartsWithMtbUntMisSynchronized(List<MtbAart> inputMtbAart) throws Exception {
|
||||||
var inputUntMis = new ArrayList<String>();
|
var inputUntMis = new ArrayList<String>();
|
||||||
|
|
||||||
if (inputMtbAart != null && !inputMtbAart.isEmpty()) {
|
if (inputMtbAart != null && !inputMtbAart.isEmpty()) {
|
||||||
@ -237,21 +240,23 @@ public class ArticoloRESTConsumer extends _BaseRESTConsumer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (inputUntMis.isEmpty()) {
|
if (inputUntMis.isEmpty()) {
|
||||||
onComplete.run(inputMtbAart);
|
return inputMtbAart;
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
getUntMisArts(inputUntMis, mtbUntMiss -> {
|
var mtbUntMiss = getUntMisArtsSynchronized(inputUntMis);
|
||||||
|
|
||||||
for (var item : inputMtbAart) {
|
for (var item : inputMtbAart) {
|
||||||
var mtbUntMis = Stream.of(mtbUntMiss).filter(x -> x.getUntMis().equalsIgnoreCase(item.getUntMis()))
|
var mtbUntMis = mtbUntMiss.stream()
|
||||||
.findFirstOrElse(null);
|
.filter(x -> x.getUntMis().equalsIgnoreCase(item.getUntMis()))
|
||||||
|
.findFirst()
|
||||||
|
.orElse(null);
|
||||||
|
|
||||||
if (mtbUntMis != null)
|
if (mtbUntMis != null)
|
||||||
item.setMtbUntMis(Collections.singletonList(mtbUntMis));
|
item.setMtbUntMis(Collections.singletonList(mtbUntMis));
|
||||||
}
|
}
|
||||||
|
|
||||||
onComplete.run(inputMtbAart);
|
return inputMtbAart;
|
||||||
}, onFailed);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -169,27 +169,28 @@ public class GiacenzaRESTConsumer extends _BaseRESTConsumer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void getInstantItemSituation(String codMdep, String codMart, String partitaMag, String codJcom, RunnableArgs<InstantItemSituationResponseDto> onComplete, RunnableArgs<Exception> onFailed) {
|
public InstantItemSituationResponseDto getInstantItemSituationSynchronized(String codMdep, String codMart, String partitaMag, String codJcom) throws Exception {
|
||||||
GiacenzaRESTConsumerService giacenzaRESTConsumerService = restBuilder.getService(GiacenzaRESTConsumerService.class);
|
GiacenzaRESTConsumerService giacenzaRESTConsumerService = restBuilder.getService(GiacenzaRESTConsumerService.class);
|
||||||
|
|
||||||
giacenzaRESTConsumerService.retrieveInstantItemSituation(codMdep, codMart, partitaMag, codJcom)
|
var response = giacenzaRESTConsumerService.retrieveInstantItemSituation(codMdep, codMart, partitaMag, codJcom)
|
||||||
.enqueue(new ManagedErrorCallback<>() {
|
.execute();
|
||||||
@Override
|
|
||||||
public void onResponse(Call<ServiceRESTResponse<InstantItemSituationResponseDto>> call, Response<ServiceRESTResponse<InstantItemSituationResponseDto>> response) {
|
|
||||||
analyzeAnswer(response, "getInstantItemSituation", data -> {
|
|
||||||
|
|
||||||
fillInstantItemSituationWithMtbAarts(data, onComplete, onFailed);
|
var data = analyzeAnswer(response, "getInstantItemSituation");
|
||||||
}, onFailed);
|
return fillInstantItemSituationWithMtbAartsSynchronized(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
public void getInstantItemSituation(String codMdep, String codMart, String partitaMag, String codJcom, RunnableArgs<InstantItemSituationResponseDto> onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
public void onFailure(Call<ServiceRESTResponse<InstantItemSituationResponseDto>> call, @NonNull final Exception e) {
|
executorService.execute(() -> {
|
||||||
onFailed.run(e);
|
try {
|
||||||
|
var response = getInstantItemSituationSynchronized(codMdep, codMart, partitaMag, codJcom);
|
||||||
|
if (onComplete != null) onComplete.run(response);
|
||||||
|
} catch (Exception ex) {
|
||||||
|
if (onFailed != null) onFailed.run(ex);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private void fillInstantItemSituationWithMtbAarts(InstantItemSituationResponseDto data, RunnableArgs<InstantItemSituationResponseDto> onComplete, RunnableArgs<Exception> onFailed) {
|
private InstantItemSituationResponseDto fillInstantItemSituationWithMtbAartsSynchronized(InstantItemSituationResponseDto data) throws Exception {
|
||||||
var inputCodMarts = new ArrayList<String>();
|
var inputCodMarts = new ArrayList<String>();
|
||||||
|
|
||||||
if (data.getIncomingItems() != null && !data.getIncomingItems().isEmpty()) {
|
if (data.getIncomingItems() != null && !data.getIncomingItems().isEmpty()) {
|
||||||
@ -205,13 +206,12 @@ public class GiacenzaRESTConsumer extends _BaseRESTConsumer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (inputCodMarts.isEmpty()) {
|
if (inputCodMarts.isEmpty()) {
|
||||||
onComplete.run(data);
|
return null;
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
mArticoloRESTConsumer.getByCodMarts(inputCodMarts, mtbAarts -> {
|
var mtbAarts = mArticoloRESTConsumer.getByCodMartsSynchronized(inputCodMarts);
|
||||||
|
var newMtbAarts = mArticoloRESTConsumer.fillMtbAartsWithMtbUntMisSynchronized(mtbAarts);
|
||||||
|
|
||||||
mArticoloRESTConsumer.fillMtbAartsWithMtbUntMis(mtbAarts, newMtbAarts -> {
|
|
||||||
if (data.getIncomingItems() != null && !data.getIncomingItems().isEmpty()) {
|
if (data.getIncomingItems() != null && !data.getIncomingItems().isEmpty()) {
|
||||||
for (var item : data.getIncomingItems()) {
|
for (var item : data.getIncomingItems()) {
|
||||||
var mtbAart = Stream.of(newMtbAarts).filter(x -> x.getCodMart().equalsIgnoreCase(item.getCodMart()))
|
var mtbAart = Stream.of(newMtbAarts).filter(x -> x.getCodMart().equalsIgnoreCase(item.getCodMart()))
|
||||||
@ -232,10 +232,7 @@ public class GiacenzaRESTConsumer extends _BaseRESTConsumer {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
onComplete.run(data);
|
return data;
|
||||||
}, onFailed);
|
|
||||||
|
|
||||||
}, onFailed);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -123,27 +123,16 @@ public class PrinterRESTConsumer extends _BaseRESTConsumer {
|
|||||||
printReportType(reportType, codMdep, null, params, onComplete, onFailed);
|
printReportType(reportType, codMdep, null, params, onComplete, onFailed);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void printClosedOrders(PrintOrderCloseDTO dto, String codMdep, Runnable onComplete, RunnableArgs<Exception> onFailed) {
|
public void printClosedOrdersSynchronized(PrintOrderCloseDTO dto, String codMdep) throws Exception {
|
||||||
if (BuildConfig.DEBUG) {
|
if (BuildConfig.DEBUG) {
|
||||||
onComplete.run();
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
PrinterRESTConsumerService printerService = restBuilder.getService(PrinterRESTConsumerService.class, 240);
|
PrinterRESTConsumerService printerService = restBuilder.getService(PrinterRESTConsumerService.class, 240);
|
||||||
Call<ServiceRESTResponse<Object>> callable = printerService.printClosedOrders(codMdep, dto);
|
Call<ServiceRESTResponse<Object>> callable = printerService.printClosedOrders(codMdep, dto);
|
||||||
callable.enqueue(new ManagedErrorCallback<>() {
|
|
||||||
@Override
|
|
||||||
public void onResponse(Call<ServiceRESTResponse<Object>> call, Response<ServiceRESTResponse<Object>> response) {
|
|
||||||
analyzeAnswer(response, "printCollo", data -> {
|
|
||||||
onComplete.run();
|
|
||||||
}, onFailed);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
var response = callable.execute();
|
||||||
public void onFailure(Call<ServiceRESTResponse<Object>> call, @NonNull final Exception e) {
|
analyzeAnswer(response, "printCollo");
|
||||||
onFailed.run(e);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -768,7 +768,7 @@ public class OrdiniUscitaElencoFragment extends BaseFragment implements ITitledF
|
|||||||
.thenComparing(ComparatorCompat.comparing(x -> x.getDestinatario() != null ? x.getDestinatario() : "zzzzzzzzz"))
|
.thenComparing(ComparatorCompat.comparing(x -> x.getDestinatario() != null ? x.getDestinatario() : "zzzzzzzzz"))
|
||||||
.thenComparing(ComparatorCompat.comparing(OrdiniUscitaElencoDTO::getNumOrd));
|
.thenComparing(ComparatorCompat.comparing(OrdiniUscitaElencoDTO::getNumOrd));
|
||||||
|
|
||||||
List<OrdiniUscitaElencoListModel> notHiddenElements = dataList.parallelStream()
|
List<OrdiniUscitaElencoListModel> notHiddenElements = dataList.stream()
|
||||||
.filter(x -> !x.isHidden())
|
.filter(x -> !x.isHidden())
|
||||||
.sorted(comparator)
|
.sorted(comparator)
|
||||||
.map(x -> {
|
.map(x -> {
|
||||||
|
|||||||
@ -53,7 +53,9 @@ public class OrdiniUscitaElencoAdapter extends ExtendedSectionedRecyclerViewNew<
|
|||||||
String[] keyArray = new String[collect.keySet().size()];
|
String[] keyArray = new String[collect.keySet().size()];
|
||||||
collect.keySet().toArray(keyArray);
|
collect.keySet().toArray(keyArray);
|
||||||
|
|
||||||
setSections(Arrays.asList(keyArray), collect);
|
var keyList = Arrays.asList(keyArray);
|
||||||
|
keyList.sort(String::compareTo);
|
||||||
|
setSections(keyList, collect);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@ -26,6 +26,8 @@ import java.time.LocalDate;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
import java.util.concurrent.CountDownLatch;
|
||||||
|
import java.util.concurrent.atomic.AtomicReference;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
|
||||||
@ -257,7 +259,9 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
|
|||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
BarcodeManager.removeCallback(mBarcodeScannerInstanceID);
|
BarcodeManager.removeCallback(mBarcodeScannerInstanceID);
|
||||||
|
handler.post(() -> {
|
||||||
super.onBackPressed();
|
super.onBackPressed();
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -830,10 +834,16 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
|
|||||||
|
|
||||||
|
|
||||||
public void closeOrder() {
|
public void closeOrder() {
|
||||||
handler.post(() -> {
|
|
||||||
this.fabPopupMenu.dismiss();
|
this.fabPopupMenu.dismiss();
|
||||||
|
this.onLoadingStarted();
|
||||||
|
|
||||||
|
executorService.execute(() -> {
|
||||||
|
try {
|
||||||
this.mViewmodel.closeOrder();
|
this.mViewmodel.closeOrder();
|
||||||
|
this.onLoadingEnded();
|
||||||
|
} catch (Exception e) {
|
||||||
|
onError(e);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1051,54 +1061,100 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
|
|||||||
}).show(getSupportFragmentManager(), "tag");
|
}).show(getSupportFragmentManager(), "tag");
|
||||||
}
|
}
|
||||||
|
|
||||||
public void askShouldPrintPackingList(PrintOrderCloseDTO printOrderCloseDTO, RunnableArgs<PrintOrderCloseDTO> onComplete) {
|
public boolean askShouldPrintPackingList() {
|
||||||
|
AtomicReference<Boolean> resultPrintPackingList = new AtomicReference<>();
|
||||||
|
CountDownLatch countDownLatch = new CountDownLatch(1);
|
||||||
|
|
||||||
|
handler.post(() -> {
|
||||||
DialogSimpleMessageView.makeInfoDialog(
|
DialogSimpleMessageView.makeInfoDialog(
|
||||||
getResources().getString(R.string.action_close_order),
|
getResources().getString(R.string.action_close_order),
|
||||||
new SpannableString(getResources().getString(R.string.message_print_packing_list_on_close_order)),
|
new SpannableString(getResources().getString(R.string.message_print_packing_list_on_close_order)),
|
||||||
null,
|
null,
|
||||||
() -> {
|
() -> {
|
||||||
printOrderCloseDTO.setFlagPrintPackingList(true);
|
resultPrintPackingList.set(true);
|
||||||
if (SettingsManager.iDB().isFlagPrintEtichetteOnOrderClose()) {
|
countDownLatch.countDown();
|
||||||
this.askShouldPrintSSCC(printOrderCloseDTO, onComplete);
|
|
||||||
} else {
|
|
||||||
onComplete.run(printOrderCloseDTO);
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
() -> {
|
() -> {
|
||||||
printOrderCloseDTO.setFlagPrintPackingList(false);
|
resultPrintPackingList.set(false);
|
||||||
if (SettingsManager.iDB().isFlagPrintEtichetteOnOrderClose()) {
|
countDownLatch.countDown();
|
||||||
this.askShouldPrintSSCC(printOrderCloseDTO, onComplete);
|
|
||||||
} else {
|
|
||||||
onComplete.run(printOrderCloseDTO);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
.show(getSupportFragmentManager(), "tag");
|
.show(getSupportFragmentManager(), "tag");
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
try {
|
||||||
|
countDownLatch.await();
|
||||||
|
} catch (InterruptedException e) {
|
||||||
|
this.onError(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void askShouldPrintSSCC(PrintOrderCloseDTO printOrderCloseDTO, RunnableArgs<PrintOrderCloseDTO> onComplete) {
|
return resultPrintPackingList.get();
|
||||||
DialogPrintOrderSSCCListView.newInstance(printOrderCloseDTO, onComplete).show(this.getSupportFragmentManager(), "dialogPrintOrderSSCCListView");
|
//
|
||||||
|
// boolean printPackingList = resultPrintPackingList.get();
|
||||||
|
// printOrderCloseDTO.setFlagPrintPackingList(printPackingList);
|
||||||
|
//
|
||||||
|
// if (SettingsManager.iDB().isFlagPrintEtichetteOnOrderClose()) {
|
||||||
|
// var shouldPrintSSCCResult = this.askShouldPrintSSCC(printOrderCloseDTO);
|
||||||
|
//
|
||||||
|
// printOrderCloseDTO.setFlagPrintSSCC(shouldPrintSSCCResult.isFlagPrintSSCC());
|
||||||
|
// printOrderCloseDTO.setFlagSkipPrintedSSCC(shouldPrintSSCCResult.isFlagSkipPrintedSSCC());
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// return printOrderCloseDTO;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DialogPrintOrderSSCCListView.Result askShouldPrintSSCC(PrintOrderCloseDTO printOrderCloseDTO) {
|
||||||
|
AtomicReference<DialogPrintOrderSSCCListView.Result> result = new AtomicReference<>();
|
||||||
|
CountDownLatch countDownLatch = new CountDownLatch(1);
|
||||||
|
|
||||||
|
handler.post(() -> {
|
||||||
|
DialogPrintOrderSSCCListView.newInstance(printOrderCloseDTO, data -> {
|
||||||
|
result.set(data);
|
||||||
|
countDownLatch.countDown();
|
||||||
|
})
|
||||||
|
.show(this.getSupportFragmentManager(), "dialogPrintOrderSSCCListView");
|
||||||
|
});
|
||||||
|
|
||||||
|
try {
|
||||||
|
countDownLatch.await();
|
||||||
|
} catch (InterruptedException e) {
|
||||||
|
this.onError(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
return result.get();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onBatchLotSelectionRequest(List<MtbPartitaMag> availableBatchLots, RunnableArgs<MtbPartitaMag> onComplete) {
|
public void onBatchLotSelectionRequest(List<MtbPartitaMag> availableBatchLots, RunnableArgs<MtbPartitaMag> onComplete) {
|
||||||
|
handler.post(() -> {
|
||||||
DialogChooseBatchLotView.newInstance(availableBatchLots, onComplete)
|
DialogChooseBatchLotView.newInstance(availableBatchLots, onComplete)
|
||||||
.show(getSupportFragmentManager(), "tag");
|
.show(getSupportFragmentManager(), "tag");
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCloseOrderPrintRequest(RunnableArgs<PrintOrderCloseDTO> onComplete) {
|
public PrintOrderCloseDTO onCloseOrderPrintRequest() {
|
||||||
PrintOrderCloseDTO printOrderCloseDTO = new PrintOrderCloseDTO();
|
PrintOrderCloseDTO printOrderCloseDTO = new PrintOrderCloseDTO();
|
||||||
|
|
||||||
if (SettingsManager.iDB().isFlagPrintPackingListOnOrderClose()) {
|
if (SettingsManager.iDB().isFlagPrintPackingListOnOrderClose()) {
|
||||||
this.askShouldPrintPackingList(printOrderCloseDTO, onComplete);
|
var result = this.askShouldPrintPackingList();
|
||||||
} else if (SettingsManager.iDB().isFlagPrintEtichetteOnOrderClose()) {
|
printOrderCloseDTO.setFlagPrintPackingList(result);
|
||||||
this.askShouldPrintSSCC(printOrderCloseDTO, onComplete);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (SettingsManager.iDB().isFlagPrintEtichetteOnOrderClose()) {
|
||||||
|
var shouldPrintSSCC = this.askShouldPrintSSCC(printOrderCloseDTO);
|
||||||
|
|
||||||
|
printOrderCloseDTO.setFlagPrintSSCC(shouldPrintSSCC.isFlagPrintSSCC());
|
||||||
|
printOrderCloseDTO.setFlagSkipPrintedSSCC(shouldPrintSSCC.isFlagSkipPrintedSSCC());
|
||||||
|
}
|
||||||
|
|
||||||
|
return printOrderCloseDTO;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreateDocsRequest() {
|
public void onCreateDocsRequest() {
|
||||||
|
handler.post(() -> {
|
||||||
DialogYesNoView.newInstance("Chiusura ordine", "Vuoi creare i documenti per gli ordini selezionati?", result -> {
|
DialogYesNoView.newInstance("Chiusura ordine", "Vuoi creare i documenti per gli ordini selezionati?", result -> {
|
||||||
|
|
||||||
switch (result) {
|
switch (result) {
|
||||||
@ -1111,6 +1167,7 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
|
|||||||
}
|
}
|
||||||
|
|
||||||
}).show(this.getSupportFragmentManager(), "tag");
|
}).show(this.getSupportFragmentManager(), "tag");
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@ -354,8 +354,12 @@ public class SpedizioneViewModel {
|
|||||||
if (this.mListener != null) mListener.onLoadingStarted();
|
if (this.mListener != null) mListener.onLoadingStarted();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void sendOnCloseOrderPrintRequest(RunnableArgs<PrintOrderCloseDTO> onComplete) {
|
private PrintOrderCloseDTO sendOnCloseOrderPrintRequest() {
|
||||||
if (this.mListener != null) mListener.onCloseOrderPrintRequest(onComplete);
|
if (this.mListener != null) {
|
||||||
|
return mListener.onCloseOrderPrintRequest();
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void sendCreateDocsRequest() {
|
private void sendCreateDocsRequest() {
|
||||||
@ -2098,20 +2102,21 @@ public class SpedizioneViewModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void closeOrder() {
|
public void closeOrder() {
|
||||||
this.sendOnLoadingStarted();
|
|
||||||
if (SettingsManager.iDB().isFlagPrintEtichetteOnOrderClose() || SettingsManager.iDB().isFlagPrintPackingListOnOrderClose()) {
|
if (SettingsManager.iDB().isFlagPrintEtichetteOnOrderClose() || SettingsManager.iDB().isFlagPrintPackingListOnOrderClose()) {
|
||||||
this.sendOnCloseOrderPrintRequest(this::onCloseOrderPrintRequest);
|
var printRequestResult = this.sendOnCloseOrderPrintRequest();
|
||||||
} else {
|
this.onCloseOrderPrintRequest(printRequestResult);
|
||||||
this.onOrderClosedPrintingDone();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.onOrderClosedPrintingDone();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void onCloseOrderPrintRequest(PrintOrderCloseDTO dto) {
|
private void onCloseOrderPrintRequest(PrintOrderCloseDTO dto) {
|
||||||
if (!dto.isFlagPrintPackingList() && !dto.isFlagPrintSSCC()) {
|
if (!dto.isFlagPrintPackingList() && !dto.isFlagPrintSSCC()) {
|
||||||
onOrderClosedPrintingDone();
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
List<DtbOrdt> closedOrders = this.mTestateOrdini.stream()
|
|
||||||
|
List<DtbOrdt> closedOrders = this.mTestateOrdini.parallelStream()
|
||||||
.map(ord -> new DtbOrdt()
|
.map(ord -> new DtbOrdt()
|
||||||
.setDataOrd(ord.getDataOrdS())
|
.setDataOrd(ord.getDataOrdS())
|
||||||
.setNumOrd(ord.getNumOrd())
|
.setNumOrd(ord.getNumOrd())
|
||||||
@ -2121,11 +2126,17 @@ public class SpedizioneViewModel {
|
|||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
dto.setPrintList(closedOrders);
|
dto.setPrintList(closedOrders);
|
||||||
printClosedOrders(dto, this::onOrderClosedPrintingDone, ex -> this.sendLUPrintError(ex, this::sendOnLoadingEnded));
|
|
||||||
|
try {
|
||||||
|
printClosedOrders(dto);
|
||||||
|
} catch (Exception e) {
|
||||||
|
this.sendLUPrintError(e, () -> {});
|
||||||
}
|
}
|
||||||
|
|
||||||
private void printClosedOrders(PrintOrderCloseDTO dto, Runnable onSuccess, RunnableArgs<Exception> onAbort) {
|
}
|
||||||
this.mPrinterRESTConsumer.printClosedOrders(dto, SettingsManager.i().getUserSession().getDepo().getCodMdep(), onSuccess, onAbort);
|
|
||||||
|
private void printClosedOrders(PrintOrderCloseDTO dto) throws Exception {
|
||||||
|
this.mPrinterRESTConsumer.printClosedOrdersSynchronized(dto, SettingsManager.i().getUserSession().getDepo().getCodMdep());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -2236,7 +2247,7 @@ public class SpedizioneViewModel {
|
|||||||
|
|
||||||
void onBatchLotSelectionRequest(List<MtbPartitaMag> availableBatchLots, RunnableArgs<MtbPartitaMag> onComplete);
|
void onBatchLotSelectionRequest(List<MtbPartitaMag> availableBatchLots, RunnableArgs<MtbPartitaMag> onComplete);
|
||||||
|
|
||||||
void onCloseOrderPrintRequest(RunnableArgs<PrintOrderCloseDTO> onComplete);
|
PrintOrderCloseDTO onCloseOrderPrintRequest();
|
||||||
|
|
||||||
void onCreateDocsRequest();
|
void onCreateDocsRequest();
|
||||||
|
|
||||||
|
|||||||
@ -35,17 +35,18 @@ public class DialogPrintOrderSSCCListView extends BaseDialogFragment {
|
|||||||
private Context mContext;
|
private Context mContext;
|
||||||
private DialogPrintOrderSsccListBinding mBindings;
|
private DialogPrintOrderSsccListBinding mBindings;
|
||||||
private final PrintOrderCloseDTO printOrderCloseDTO;
|
private final PrintOrderCloseDTO printOrderCloseDTO;
|
||||||
private final RunnableArgs<PrintOrderCloseDTO> onDialogClose;
|
private final Result result = new Result();
|
||||||
|
private final RunnableArgs<Result> onDialogClose;
|
||||||
|
|
||||||
|
|
||||||
public static DialogPrintOrderSSCCListView newInstance(
|
public static DialogPrintOrderSSCCListView newInstance(
|
||||||
PrintOrderCloseDTO printOrderCloseDTO,
|
PrintOrderCloseDTO printOrderCloseDTO,
|
||||||
RunnableArgs<PrintOrderCloseDTO> onDismiss
|
RunnableArgs<Result> onDismiss
|
||||||
) {
|
) {
|
||||||
return new DialogPrintOrderSSCCListView(printOrderCloseDTO, onDismiss);
|
return new DialogPrintOrderSSCCListView(printOrderCloseDTO, onDismiss);
|
||||||
}
|
}
|
||||||
|
|
||||||
public DialogPrintOrderSSCCListView(@NotNull PrintOrderCloseDTO printOrderCloseDTO, @NotNull RunnableArgs<PrintOrderCloseDTO> onDismiss) {
|
public DialogPrintOrderSSCCListView(@NotNull PrintOrderCloseDTO printOrderCloseDTO, @NotNull RunnableArgs<Result> onDismiss) {
|
||||||
this.printOrderCloseDTO = printOrderCloseDTO;
|
this.printOrderCloseDTO = printOrderCloseDTO;
|
||||||
this.onDialogClose = onDismiss;
|
this.onDialogClose = onDismiss;
|
||||||
}
|
}
|
||||||
@ -71,22 +72,22 @@ public class DialogPrintOrderSSCCListView extends BaseDialogFragment {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void onCheckChange(RadioGroup radioGroup, int id) {
|
public void onCheckChange(RadioGroup radioGroup, int id) {
|
||||||
this.printOrderCloseDTO.setFlagSkipPrintedSSCC(id == mBindings.printOnlyNew.getId());
|
this.result.setFlagSkipPrintedSSCC(id == mBindings.printOnlyNew.getId());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onPositiveClick() {
|
public void onPositiveClick() {
|
||||||
this.printOrderCloseDTO.setFlagPrintSSCC(true);
|
this.result.setFlagPrintSSCC(true);
|
||||||
this.dismiss();
|
this.dismiss();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onNegativeClick() {
|
public void onNegativeClick() {
|
||||||
this.printOrderCloseDTO.setFlagPrintSSCC(false);
|
this.result.setFlagPrintSSCC(false);
|
||||||
this.dismiss();
|
this.dismiss();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onDismiss(@NonNull DialogInterface dialog) {
|
public void onDismiss(@NonNull DialogInterface dialog) {
|
||||||
this.onDialogClose.run(this.printOrderCloseDTO);
|
this.onDialogClose.run(this.result);
|
||||||
super.onDismiss(dialog);
|
super.onDismiss(dialog);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -112,4 +113,26 @@ public class DialogPrintOrderSSCCListView extends BaseDialogFragment {
|
|||||||
UtilityExceptions.defaultException(this.mContext, ex);
|
UtilityExceptions.defaultException(this.mContext, ex);
|
||||||
dismiss();
|
dismiss();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public class Result {
|
||||||
|
private boolean flagPrintSSCC = false;
|
||||||
|
private boolean flagSkipPrintedSSCC = true;
|
||||||
|
|
||||||
|
public boolean isFlagPrintSSCC() {
|
||||||
|
return flagPrintSSCC;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void setFlagPrintSSCC(boolean flagPrintSSCC) {
|
||||||
|
this.flagPrintSSCC = flagPrintSSCC;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isFlagSkipPrintedSSCC() {
|
||||||
|
return flagSkipPrintedSSCC;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void setFlagSkipPrintedSSCC(boolean flagSkipPrintedSSCC) {
|
||||||
|
this.flagSkipPrintedSSCC = flagSkipPrintedSSCC;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -4,6 +4,7 @@ import android.app.Dialog;
|
|||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.DialogInterface;
|
import android.content.DialogInterface;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.os.Handler;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
|
||||||
@ -18,6 +19,7 @@ import org.jetbrains.annotations.NotNull;
|
|||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.concurrent.ExecutorService;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
|
||||||
@ -42,6 +44,12 @@ public class DialogInfoSituazioneArticoloView extends BaseDialogRowInfoView {
|
|||||||
@Inject
|
@Inject
|
||||||
GiacenzaRESTConsumer giacenzaRESTConsumer;
|
GiacenzaRESTConsumer giacenzaRESTConsumer;
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
ExecutorService executorService;
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
Handler handler;
|
||||||
|
|
||||||
private DialogInfoSituazioneArticoloBinding mBindings;
|
private DialogInfoSituazioneArticoloBinding mBindings;
|
||||||
private Context mContext;
|
private Context mContext;
|
||||||
|
|
||||||
@ -86,17 +94,26 @@ public class DialogInfoSituazioneArticoloView extends BaseDialogRowInfoView {
|
|||||||
String partitaMag = getSpedizioneListModel().getOriginalModel().getSitArtOrdDTO().getPartitaMag();
|
String partitaMag = getSpedizioneListModel().getOriginalModel().getSitArtOrdDTO().getPartitaMag();
|
||||||
String codJcom = getSpedizioneListModel().getOriginalModel().getSitArtOrdDTO().getCodJcom();
|
String codJcom = getSpedizioneListModel().getOriginalModel().getSitArtOrdDTO().getCodJcom();
|
||||||
|
|
||||||
giacenzaRESTConsumer.getInstantItemSituation(
|
this.onLoadingStarted();
|
||||||
codMdep,
|
executorService.execute(() -> {
|
||||||
codMart,
|
try {
|
||||||
partitaMag,
|
var result = giacenzaRESTConsumer.getInstantItemSituationSynchronized(codMdep, codMart, partitaMag, codJcom);
|
||||||
codJcom,
|
|
||||||
result -> {
|
|
||||||
this.initIncomingItemsList(result.getIncomingItems());
|
|
||||||
this.initAvailableItemsList(result.getAvailableItems());
|
|
||||||
|
|
||||||
|
|
||||||
|
handler.post(() -> {
|
||||||
|
try {
|
||||||
|
if(result != null && result.getIncomingItems() != null) this.initIncomingItemsList(result.getIncomingItems());
|
||||||
|
if(result != null && result.getAvailableItems() != null) this.initAvailableItemsList(result.getAvailableItems());
|
||||||
this.onLoadingEnded();
|
this.onLoadingEnded();
|
||||||
}, this::onError);
|
} catch (Exception e) {
|
||||||
|
onError(e);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
onError(e);
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -25,6 +25,7 @@
|
|||||||
android:layout_height="0dp"
|
android:layout_height="0dp"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toTopOf="parent"
|
app:layout_constraintTop_toTopOf="parent"
|
||||||
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintWidth="8dp"/>
|
app:layout_constraintWidth="8dp"/>
|
||||||
|
|
||||||
<!-- 3. CheckBox direttamente nel layout principale -->
|
<!-- 3. CheckBox direttamente nel layout principale -->
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user