corretto bug per in gestione linee e aggiu ta richiesta di recupero prima di chiudere gli ordini

This commit is contained in:
Valerio Castellana 2022-06-29 16:01:51 +02:00
parent 356e2562da
commit c3274a4311
4 changed files with 52 additions and 36 deletions

View File

@ -26,7 +26,6 @@ import it.integry.integrywmsnative.core.di.BindableString;
import it.integry.integrywmsnative.core.expansion.BaseActivity;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.model.MtbColr;
import it.integry.integrywmsnative.core.utility.UtilityResources;
import it.integry.integrywmsnative.core.utility.UtilityString;
import it.integry.integrywmsnative.core.utility.UtilityToast;
import it.integry.integrywmsnative.databinding.ActivityProdDettaglioLineaBinding;
@ -43,6 +42,7 @@ import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQua
public class ProdDettaglioLineaActivity extends BaseActivity implements ProdDettaglioLineaViewModel.Listener {
private static final String DATA_KEY_LINE = "keyLinea";
private static final String DATA_KEY_FRAGMENT_LISTENER = "onFragmentClose";
private ActivityProdDettaglioLineaBinding mBinding;
public final ObservableField<String> listaOrd = new ObservableField<>();
@ -54,6 +54,7 @@ public class ProdDettaglioLineaActivity extends BaseActivity implements ProdDett
public final BindableString codMart = new BindableString();
public final BindableString partitaMag = new BindableString();
public final BindableString productDescription = new BindableString();
private Runnable onResumeRunnable = null;
private int barcodeScannerIstanceID = -1;
@ -120,6 +121,13 @@ public class ProdDettaglioLineaActivity extends BaseActivity implements ProdDett
renderOrdersChips();
}
});
getSupportFragmentManager()
.setFragmentResultListener(DATA_KEY_FRAGMENT_LISTENER, this, (requestKey, result) -> {
if (onResumeRunnable != null) {
onResumeRunnable.run();
onResumeRunnable = null;
}
});
}
private void renderOrdersChips() {
@ -210,17 +218,6 @@ public class ProdDettaglioLineaActivity extends BaseActivity implements ProdDett
onBackPressed();
}
public void askForLUBarcode() {
this.onLoadingEnded();
this.runOnUiThread(() -> {
DialogStartProduction.newInstance((dto) -> {
this.mViewModel.checkBarcodeAndStartOrdine(dto);
},
UtilityResources.getString(R.string.title_open_lu),
UtilityResources.getString(R.string.scan_lu_to_recover)
).show(getSupportFragmentManager(), "DialogStartProduction");
});
}
private void initBarcodeReader() {
barcodeScannerIstanceID = BarcodeManager.addCallback(new BarcodeCallbackDTO()
@ -279,7 +276,7 @@ public class ProdDettaglioLineaActivity extends BaseActivity implements ProdDett
getSupportFragmentManager()
.beginTransaction()
.add(R.id.frame_layout_container,
ProdRecuperoMaterialeFragment.newInstance(mViewModel.lineaProd.getValue().getCodJfas()))
ProdRecuperoMaterialeFragment.newInstance(mViewModel.lineaProd.getValue().getCodJfas(), DATA_KEY_FRAGMENT_LISTENER))
.addToBackStack("ProdRecuperoMaterialeFragment")
.commit();
@ -322,7 +319,18 @@ public class ProdDettaglioLineaActivity extends BaseActivity implements ProdDett
+ "<br /> <br/>" +
"Continuare?"),
null,
onConfirm,
() -> {
DialogSimpleMessageView.makeInfoDialog(
null,
Html.fromHtml("Vuoi recuperare del materiale prima di chiudere gli ordini?"),
null,
() -> {
onResumeRunnable = onConfirm;
this.requestMaterialRecover();
},
onConfirm
).show(getSupportFragmentManager(), "confirmOrderClose");
},
BarcodeManager::enable
).show(getSupportFragmentManager(), "confirmOrderClose");
});

View File

@ -209,9 +209,6 @@ public class ProdDettaglioLineaViewModel {
return lineaProd.getValue();
}
public void beginMaterialRecover() {
this.mListener.askForLUBarcode();
}
public interface Listener extends ILoadingListener {
void onError(Exception ex);
@ -228,8 +225,6 @@ public class ProdDettaglioLineaViewModel {
void onLineStop();
void askForLUBarcode();
void confirmOrderClose(Runnable onConfirm);
}

View File

@ -37,18 +37,6 @@ public class DialogStartProduction extends BaseDialogFragment {
return fragment;
}
public static DialogStartProduction newInstance(RunnableArgs<BarcodeScanDTO> onScanSuccessful, String title, String label) {
Bundle args = new Bundle();
DialogStartProduction fragment = new DialogStartProduction();
fragment.setTitle(title);
fragment.setLabel(label);
fragment.setArguments(args);
fragment.setOnScanSuccessful(onScanSuccessful);
return fragment;
}
public String getTitle() {
return title;
}
@ -108,8 +96,8 @@ public class DialogStartProduction extends BaseDialogFragment {
private void processBarcode(BarcodeScanDTO barcodeScanDTO) {
if (UtilityBarcode.isEan128(barcodeScanDTO)) {
this.onScanSuccessful.run(barcodeScanDTO);
this.dismiss();
this.onScanSuccessful.run(barcodeScanDTO);
} else {
this.onError(new Exception("Il barcode scansionato non è valido!"));
}

View File

@ -60,6 +60,7 @@ public class ProdRecuperoMaterialeFragment extends BaseFragment implements ITitl
private int barcodeScannerIstanceID = -1;
private String codJfas;
private String fragmentResultKeyString;
private final ObservableArrayList<HistoryULsListModel> mHistoryULMutableData = new ObservableArrayList<>();
@ -68,13 +69,20 @@ public class ProdRecuperoMaterialeFragment extends BaseFragment implements ITitl
}
public static ProdRecuperoMaterialeFragment newInstance() {
return newInstance(null);
return newInstance(null, null);
}
public static ProdRecuperoMaterialeFragment newInstance(String codJfas, String keyString) {
ProdRecuperoMaterialeFragment fragment = new ProdRecuperoMaterialeFragment();
if (keyString != null) {
fragment.setFragmentResultKeyString(keyString);
}
fragment.setCodJfas(codJfas);
return fragment;
}
public static ProdRecuperoMaterialeFragment newInstance(String codJfas) {
ProdRecuperoMaterialeFragment fragment = new ProdRecuperoMaterialeFragment();
fragment.setCodJfas(codJfas);
return fragment;
return newInstance(codJfas, null);
}
@Override
@ -95,6 +103,14 @@ public class ProdRecuperoMaterialeFragment extends BaseFragment implements ITitl
this.initBarcodeReader();
this.initRecyclerView();
this.addOnPreDestroy(() -> {
if (!UtilityString.isNullOrEmpty(fragmentResultKeyString)) {
Bundle result = new Bundle();
result.putString(fragmentResultKeyString, "result");
getParentFragmentManager().setFragmentResult(fragmentResultKeyString, result);
}
});
return mBinding.getRoot();
}
@ -134,6 +150,15 @@ public class ProdRecuperoMaterialeFragment extends BaseFragment implements ITitl
return this;
}
public String getFragmentResultKeyString() {
return fragmentResultKeyString;
}
public ProdRecuperoMaterialeFragment setFragmentResultKeyString(String fragmentResultKeyString) {
this.fragmentResultKeyString = fragmentResultKeyString;
return this;
}
private final RunnableArgs<BarcodeScanDTO> onScanSuccessful = data -> {
this.onLoadingStarted();