Completato refactoring rettifica giacenze
This commit is contained in:
parent
d31cab558a
commit
6b1a506577
18
.idea/codeStyles/Project.xml
generated
18
.idea/codeStyles/Project.xml
generated
@ -1,5 +1,23 @@
|
|||||||
<component name="ProjectCodeStyleConfiguration">
|
<component name="ProjectCodeStyleConfiguration">
|
||||||
<code_scheme name="Project" version="173">
|
<code_scheme name="Project" version="173">
|
||||||
|
<JetCodeStyleSettings>
|
||||||
|
<option name="PACKAGES_TO_USE_STAR_IMPORTS">
|
||||||
|
<value>
|
||||||
|
<package name="java.util" alias="false" withSubpackages="false" />
|
||||||
|
<package name="kotlinx.android.synthetic" alias="false" withSubpackages="true" />
|
||||||
|
<package name="io.ktor" alias="false" withSubpackages="true" />
|
||||||
|
</value>
|
||||||
|
</option>
|
||||||
|
<option name="PACKAGES_IMPORT_LAYOUT">
|
||||||
|
<value>
|
||||||
|
<package name="" alias="false" withSubpackages="true" />
|
||||||
|
<package name="java" alias="false" withSubpackages="true" />
|
||||||
|
<package name="javax" alias="false" withSubpackages="true" />
|
||||||
|
<package name="kotlin" alias="false" withSubpackages="true" />
|
||||||
|
<package name="" alias="true" withSubpackages="true" />
|
||||||
|
</value>
|
||||||
|
</option>
|
||||||
|
</JetCodeStyleSettings>
|
||||||
<codeStyleSettings language="XML">
|
<codeStyleSettings language="XML">
|
||||||
<arrangement>
|
<arrangement>
|
||||||
<rules>
|
<rules>
|
||||||
|
|||||||
@ -12,6 +12,7 @@ import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
|
|||||||
import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.OrdiniRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.OrdiniRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer;
|
||||||
|
|
||||||
@Module
|
@Module
|
||||||
public class MainApplicationModule {
|
public class MainApplicationModule {
|
||||||
@ -58,5 +59,11 @@ public class MainApplicationModule {
|
|||||||
return new PrinterRESTConsumer();
|
return new PrinterRESTConsumer();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Provides
|
||||||
|
@Singleton
|
||||||
|
SystemRESTConsumer provideSystemRESTConsumer() {
|
||||||
|
return new SystemRESTConsumer();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,15 @@
|
|||||||
|
package it.integry.integrywmsnative.core.exception;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
||||||
|
|
||||||
|
public class InvalidLUGestioneException extends Exception {
|
||||||
|
|
||||||
|
public InvalidLUGestioneException() {
|
||||||
|
super("La GESTIONE dell'unità logistica scansionata non è valida");
|
||||||
|
}
|
||||||
|
|
||||||
|
public InvalidLUGestioneException(GestioneEnum gestioneEnum) {
|
||||||
|
super("La GESTIONE " + gestioneEnum.getText() + " dell'unità logistica scansionata non è valida");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,52 @@
|
|||||||
|
package it.integry.integrywmsnative.core.expansion.view;
|
||||||
|
|
||||||
|
import android.view.View;
|
||||||
|
|
||||||
|
import androidx.databinding.ObservableArrayList;
|
||||||
|
import androidx.databinding.ObservableList;
|
||||||
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.core.expansion.OnListGeneralChangedCallback;
|
||||||
|
|
||||||
|
public abstract class ExtendedRecyclerView<T, VH extends RecyclerView.ViewHolder> extends RecyclerView.Adapter<VH> {
|
||||||
|
protected ArrayList<T> mDataset;
|
||||||
|
private View mEmptyView;
|
||||||
|
|
||||||
|
public ExtendedRecyclerView(ObservableArrayList<T> myDataset) {
|
||||||
|
mDataset = myDataset;
|
||||||
|
|
||||||
|
myDataset.addOnListChangedCallback(new OnListGeneralChangedCallback() {
|
||||||
|
@Override
|
||||||
|
public void onChanged(ObservableList sender) {
|
||||||
|
notifyDataSetChanged();
|
||||||
|
checkIfEmpty();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
checkIfEmpty();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onViewRecycled(VH holder) {
|
||||||
|
super.onViewRecycled(holder);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getItemCount() {
|
||||||
|
return mDataset.size();
|
||||||
|
}
|
||||||
|
|
||||||
|
public ExtendedRecyclerView<T, VH> setEmptyView(View emptyView) {
|
||||||
|
this.mEmptyView = emptyView;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void checkIfEmpty() {
|
||||||
|
if (mEmptyView != null) {
|
||||||
|
final boolean emptyViewVisible = getItemCount() == 0;
|
||||||
|
mEmptyView.setVisibility(emptyViewVisible ? View.VISIBLE : View.GONE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,11 @@
|
|||||||
|
package it.integry.integrywmsnative.core.interfaces.viewmodel_listeners;
|
||||||
|
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.core.expansion.RunnableArgss;
|
||||||
|
import it.integry.integrywmsnative.core.model.MtbDepoPosizione;
|
||||||
|
|
||||||
|
public interface ILUPositionListener {
|
||||||
|
|
||||||
|
void onLUPositionChangeRequest(RunnableArgss<Boolean, MtbDepoPosizione> onComplete);
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,13 @@
|
|||||||
|
package it.integry.integrywmsnative.core.interfaces.viewmodel_listeners;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
|
|
||||||
|
public interface ILUPrintListener {
|
||||||
|
|
||||||
|
void onLUSuccessullyPrinted();
|
||||||
|
|
||||||
|
void onLUPrintRequest(RunnableArgs<Boolean> onComplete);
|
||||||
|
|
||||||
|
void onLUPrintError(Exception ex, Runnable onComplete);
|
||||||
|
|
||||||
|
}
|
||||||
@ -2,6 +2,8 @@ package it.integry.integrywmsnative.core.model;
|
|||||||
|
|
||||||
public class CommonModelConsts {
|
public class CommonModelConsts {
|
||||||
|
|
||||||
|
public static String ENTITY_NULL_STRING = "[NULL]";
|
||||||
|
|
||||||
public static class OPERATION {
|
public static class OPERATION {
|
||||||
public static String INSERT_OR_UPDATE = "INSERT_OR_UPDATE";
|
public static String INSERT_OR_UPDATE = "INSERT_OR_UPDATE";
|
||||||
public static String INSERT = "INSERT";
|
public static String INSERT = "INSERT";
|
||||||
|
|||||||
@ -1,13 +1,13 @@
|
|||||||
package it.integry.integrywmsnative.core.report;
|
package it.integry.integrywmsnative.core.report;
|
||||||
|
|
||||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
import it.integry.integrywmsnative.core.model.MtbColt;
|
|
||||||
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
||||||
|
|
||||||
public class ReportManager {
|
public class ReportManager {
|
||||||
|
|
||||||
|
|
||||||
public static void getRightReportNameByGestione(GestioneEnum gestione, RunnableArgs<String> onComplete, RunnableArgs<Exception> onFailed) {
|
|
||||||
|
public static void getReportNameLUFromGestione(GestioneEnum gestione, RunnableArgs<String> onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
|
|
||||||
if(gestione != null){
|
if(gestione != null){
|
||||||
|
|
||||||
@ -34,7 +34,7 @@ public class ReportManager {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String getRightReportNameByGestione(GestioneEnum gestione) {
|
public static String getReportNameLUFromGestione(GestioneEnum gestione) {
|
||||||
|
|
||||||
if(gestione != null){
|
if(gestione != null){
|
||||||
|
|
||||||
|
|||||||
@ -638,7 +638,7 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer {
|
|||||||
|
|
||||||
Type typeOfObjectsList = new TypeToken<ArrayList<MtbColt>>() {
|
Type typeOfObjectsList = new TypeToken<ArrayList<MtbColt>>() {
|
||||||
}.getType();
|
}.getType();
|
||||||
SystemRESTConsumer.<ArrayList<MtbColt>>processSql(query, typeOfObjectsList, data -> {
|
SystemRESTConsumer.<ArrayList<MtbColt>>processSqlStatic(query, typeOfObjectsList, data -> {
|
||||||
onComplete.run(data != null && data.size() > 0);
|
onComplete.run(data != null && data.size() > 0);
|
||||||
}, onFailed);
|
}, onFailed);
|
||||||
}
|
}
|
||||||
@ -666,7 +666,7 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
public static void creaRettificaCollo(MtbColr sourceMtbColrOriginal, BigDecimal newNumCnf, BigDecimal newQtaTot, Runnable onComplete, RunnableArgs<Exception> onFailed) {
|
public static void creaRettificaColloStatic(MtbColr sourceMtbColrOriginal, BigDecimal newNumCnf, BigDecimal newQtaTot, Runnable onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
MtbColr sourceMtbColr = (MtbColr) sourceMtbColrOriginal.clone();
|
MtbColr sourceMtbColr = (MtbColr) sourceMtbColrOriginal.clone();
|
||||||
sourceMtbColr.setMtbPartitaMag(null);
|
sourceMtbColr.setMtbPartitaMag(null);
|
||||||
sourceMtbColr.setMtbAart(null);
|
sourceMtbColr.setMtbAart(null);
|
||||||
@ -695,4 +695,10 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public void creaRettificaCollo(MtbColr sourceMtbColrOriginal, BigDecimal newNumCnf, BigDecimal newQtaTot, Runnable onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
|
creaRettificaColloStatic(sourceMtbColrOriginal, newNumCnf, newQtaTot, onComplete, onFailed);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -7,7 +7,6 @@ import java.util.ArrayList;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
import it.integry.integrywmsnative.core.model.MtbColt;
|
|
||||||
import it.integry.integrywmsnative.core.model.MtbTCol;
|
import it.integry.integrywmsnative.core.model.MtbTCol;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityDB;
|
import it.integry.integrywmsnative.core.utility.UtilityDB;
|
||||||
|
|
||||||
@ -21,7 +20,7 @@ public class MagazzinoRESTConsumer extends _BaseRESTConsumer {
|
|||||||
"WHERE cod_tcol = " + UtilityDB.valueToString(codTcol);
|
"WHERE cod_tcol = " + UtilityDB.valueToString(codTcol);
|
||||||
|
|
||||||
Type typeOfObjectsList = new TypeToken<ArrayList<MtbTCol>>() {}.getType();
|
Type typeOfObjectsList = new TypeToken<ArrayList<MtbTCol>>() {}.getType();
|
||||||
SystemRESTConsumer.processSql(baseSql, typeOfObjectsList, new ISimpleOperationCallback<List<MtbTCol>>() {
|
SystemRESTConsumer.processSqlStatic(baseSql, typeOfObjectsList, new ISimpleOperationCallback<List<MtbTCol>>() {
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(List<MtbTCol> values) {
|
public void onSuccess(List<MtbTCol> values) {
|
||||||
if(onComplete != null) {
|
if(onComplete != null) {
|
||||||
@ -42,7 +41,7 @@ public class MagazzinoRESTConsumer extends _BaseRESTConsumer {
|
|||||||
"FROM mtb_tcol ";
|
"FROM mtb_tcol ";
|
||||||
|
|
||||||
Type typeOfObjectsList = new TypeToken<ArrayList<MtbTCol>>() {}.getType();
|
Type typeOfObjectsList = new TypeToken<ArrayList<MtbTCol>>() {}.getType();
|
||||||
SystemRESTConsumer.processSql(baseSql, typeOfObjectsList, new ISimpleOperationCallback<List<MtbTCol>>() {
|
SystemRESTConsumer.processSqlStatic(baseSql, typeOfObjectsList, new ISimpleOperationCallback<List<MtbTCol>>() {
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(List<MtbTCol> values) {
|
public void onSuccess(List<MtbTCol> values) {
|
||||||
if(onComplete != null) {
|
if(onComplete != null) {
|
||||||
|
|||||||
@ -48,7 +48,7 @@ public class PosizioniRESTConsumer extends _BaseRESTConsumer{
|
|||||||
|
|
||||||
|
|
||||||
Type typeOfObjectsList = new TypeToken<ArrayList<MtbColt>>() {}.getType();
|
Type typeOfObjectsList = new TypeToken<ArrayList<MtbColt>>() {}.getType();
|
||||||
SystemRESTConsumer.processSql(sql, typeOfObjectsList, new ISimpleOperationCallback<List<MtbColt>>() {
|
SystemRESTConsumer.processSqlStatic(sql, typeOfObjectsList, new ISimpleOperationCallback<List<MtbColt>>() {
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(List<MtbColt> value) {
|
public void onSuccess(List<MtbColt> value) {
|
||||||
if(onComplete != null) onComplete.run(value);
|
if(onComplete != null) onComplete.run(value);
|
||||||
|
|||||||
@ -44,8 +44,11 @@ public class PrinterRESTConsumer extends _BaseRESTConsumer {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void getAvailablePrinters(String codMdep, final RunnableArgs<List<String>> onComplete, final RunnableArgs<Exception> onFailed) {
|
||||||
|
getAvailablePrintersStatic(codMdep, onComplete, onFailed);
|
||||||
|
}
|
||||||
|
|
||||||
public static void getAvailablePrintersStatic(String codMdep, final ISimpleOperationCallback<List<String>> callback) {
|
public static void getAvailablePrintersStatic(String codMdep, final RunnableArgs<List<String>> onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
|
|
||||||
PrinterRESTConsumerService printerService = RESTBuilder.getService(PrinterRESTConsumerService.class);
|
PrinterRESTConsumerService printerService = RESTBuilder.getService(PrinterRESTConsumerService.class);
|
||||||
printerService.getAvailablePrinters(codMdep).enqueue(new Callback<ServiceRESTResponse<List<String>>>() {
|
printerService.getAvailablePrinters(codMdep).enqueue(new Callback<ServiceRESTResponse<List<String>>>() {
|
||||||
@ -54,12 +57,12 @@ public class PrinterRESTConsumer extends _BaseRESTConsumer {
|
|||||||
analyzeAnswer(response, "GetAvailablePrinters", new ISimpleOperationCallback<List<String>>() {
|
analyzeAnswer(response, "GetAvailablePrinters", new ISimpleOperationCallback<List<String>>() {
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(List<String> value) {
|
public void onSuccess(List<String> value) {
|
||||||
callback.onSuccess(value != null ? Stream.of(value).withoutNulls().toList() : null);
|
onComplete.run(value != null ? Stream.of(value).withoutNulls().toList() : null);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onFailed(Exception ex) {
|
public void onFailed(Exception ex) {
|
||||||
callback.onFailed(ex);
|
onFailed.run(ex);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -68,7 +71,7 @@ public class PrinterRESTConsumer extends _BaseRESTConsumer {
|
|||||||
public void onFailure(Call<ServiceRESTResponse<List<String>>> call, Throwable t) {
|
public void onFailure(Call<ServiceRESTResponse<List<String>>> call, Throwable t) {
|
||||||
Log.e("GetAvailablePrinters", t.toString());
|
Log.e("GetAvailablePrinters", t.toString());
|
||||||
UtilityLogger.errorMe(new Exception(t));
|
UtilityLogger.errorMe(new Exception(t));
|
||||||
callback.onFailed(new Exception(t));
|
onFailed.run(new Exception(t));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -98,7 +101,11 @@ public class PrinterRESTConsumer extends _BaseRESTConsumer {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void printCollo(String printerName, MtbColt testataColloToPrint, int quantity, String reportName, Runnable onComplete, RunnableArgs<Exception> onFailed) {
|
public void printCollo(String printerName, MtbColt testataColloToPrint, int quantity, String reportName, Runnable onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
|
printColloStatic(printerName, testataColloToPrint, quantity, reportName, onComplete, onFailed);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void printColloStatic(String printerName, MtbColt testataColloToPrint, int quantity, String reportName, Runnable onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
|
|
||||||
if(BuildConfig.DEBUG) {
|
if(BuildConfig.DEBUG) {
|
||||||
onComplete.run();
|
onComplete.run();
|
||||||
|
|||||||
@ -14,6 +14,8 @@ import java.lang.reflect.Type;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import javax.inject.Singleton;
|
||||||
|
|
||||||
import it.integry.integrywmsnative.BuildConfig;
|
import it.integry.integrywmsnative.BuildConfig;
|
||||||
import it.integry.integrywmsnative.core.CommonConst;
|
import it.integry.integrywmsnative.core.CommonConst;
|
||||||
import it.integry.integrywmsnative.core.rest.RESTBuilder;
|
import it.integry.integrywmsnative.core.rest.RESTBuilder;
|
||||||
@ -30,9 +32,10 @@ import retrofit2.Call;
|
|||||||
import retrofit2.Callback;
|
import retrofit2.Callback;
|
||||||
import retrofit2.Response;
|
import retrofit2.Response;
|
||||||
|
|
||||||
|
@Singleton
|
||||||
public class SystemRESTConsumer extends _BaseRESTConsumer {
|
public class SystemRESTConsumer extends _BaseRESTConsumer {
|
||||||
|
|
||||||
public static <T> void processSql(String nativeSql, final Type clazz, RunnableArgs<T> onComplete, RunnableArgs<Exception> onFailed) {
|
public static <T> void processSqlStatic(String nativeSql, final Type clazz, RunnableArgs<T> onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
|
|
||||||
NativeSqlRequestDTO nativeSqlDTO = new NativeSqlRequestDTO();
|
NativeSqlRequestDTO nativeSqlDTO = new NativeSqlRequestDTO();
|
||||||
nativeSqlDTO.nativeSql = nativeSql;
|
nativeSqlDTO.nativeSql = nativeSql;
|
||||||
@ -69,9 +72,17 @@ public class SystemRESTConsumer extends _BaseRESTConsumer {
|
|||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
public static <T> void processSql(String nativeSql, final Type clazz, final ISimpleOperationCallback<T> callback) {
|
public static <T> void processSqlStatic(String nativeSql, final Type clazz, final ISimpleOperationCallback<T> callback) {
|
||||||
|
|
||||||
processSql(nativeSql, clazz, data -> {
|
processSqlStatic(nativeSql, clazz, data -> {
|
||||||
|
callback.onSuccess((T) data);
|
||||||
|
}, callback::onFailed);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public <T> void processSql(String nativeSql, final Type clazz, final ISimpleOperationCallback<T> callback) {
|
||||||
|
|
||||||
|
processSqlStatic(nativeSql, clazz, data -> {
|
||||||
callback.onSuccess((T) data);
|
callback.onSuccess((T) data);
|
||||||
}, callback::onFailed);
|
}, callback::onFailed);
|
||||||
|
|
||||||
@ -180,7 +191,7 @@ public class SystemRESTConsumer extends _BaseRESTConsumer {
|
|||||||
String sql = "SELECT TOP 1 * FROM azienda";
|
String sql = "SELECT TOP 1 * FROM azienda";
|
||||||
|
|
||||||
Type typeOfObjectsList = new TypeToken<ArrayList<Azienda>>() {}.getType();
|
Type typeOfObjectsList = new TypeToken<ArrayList<Azienda>>() {}.getType();
|
||||||
SystemRESTConsumer.processSql(sql, typeOfObjectsList, new ISimpleOperationCallback<List<Azienda>>() {
|
SystemRESTConsumer.processSqlStatic(sql, typeOfObjectsList, new ISimpleOperationCallback<List<Azienda>>() {
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(List<Azienda> value) {
|
public void onSuccess(List<Azienda> value) {
|
||||||
if(onComplete != null) onComplete.run(value.get(0));
|
if(onComplete != null) onComplete.run(value.get(0));
|
||||||
|
|||||||
@ -49,14 +49,28 @@ public class UtilityBarcode {
|
|||||||
return isPosizione;
|
return isPosizione;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static boolean isEtichettaArt(BarcodeScanDTO barcodeScanDTO) {
|
||||||
|
return isEan8(barcodeScanDTO) || isEan13(barcodeScanDTO) || isUPCA(barcodeScanDTO);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public static boolean isEanPeso(BarcodeScanDTO barcodeScanDTO) {
|
public static boolean isEanPeso(BarcodeScanDTO barcodeScanDTO) {
|
||||||
return (isEtichetta128(barcodeScanDTO) || isEan13(barcodeScanDTO)) && barcodeScanDTO.getStringValue().startsWith("2");
|
return (isEtichetta128(barcodeScanDTO) || isEan13(barcodeScanDTO)) && barcodeScanDTO.getStringValue().startsWith("2");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static boolean isEan8(BarcodeScanDTO barcodeScanDTO) {
|
||||||
|
return barcodeScanDTO != null && barcodeScanDTO.getType() == BarcodeType.EAN8;
|
||||||
|
}
|
||||||
|
|
||||||
public static boolean isEan13(BarcodeScanDTO barcodeScanDTO) {
|
public static boolean isEan13(BarcodeScanDTO barcodeScanDTO) {
|
||||||
return barcodeScanDTO != null && barcodeScanDTO.getType() == BarcodeType.EAN13;
|
return barcodeScanDTO != null && barcodeScanDTO.getType() == BarcodeType.EAN13;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static boolean isUPCA(BarcodeScanDTO barcodeScanDTO) {
|
||||||
|
return barcodeScanDTO != null && barcodeScanDTO.getType() == BarcodeType.UPCA;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public static Integer getNumColloFromULAnonima(String barcode) {
|
public static Integer getNumColloFromULAnonima(String barcode) {
|
||||||
|
|||||||
@ -2,7 +2,7 @@ package it.integry.integrywmsnative.gest.accettazione_ordine_inevaso;
|
|||||||
|
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import androidx.databinding.DataBindingUtil;
|
import androidx.databinding.DataBindingUtil;
|
||||||
import androidx.appcompat.app.AppCompatActivity;
|
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.view.Menu;
|
import android.view.Menu;
|
||||||
import android.view.MenuItem;
|
import android.view.MenuItem;
|
||||||
@ -113,7 +113,7 @@ public class AccettazioneOrdineInevasoActivity extends BaseActivity {
|
|||||||
|
|
||||||
|
|
||||||
public void startListaBancaliRegistratiActivity(ArrayList<MtbColt> mtbColts){
|
public void startListaBancaliRegistratiActivity(ArrayList<MtbColt> mtbColts){
|
||||||
Intent myIntent = ListaBancaliActivity.createIntent(this, mtbColts, false, PrinterRESTConsumer.Type.SECONDARIA, ReportManager.getRightReportNameByGestione(GestioneEnum.ACQUISTO));
|
Intent myIntent = ListaBancaliActivity.createIntent(this, mtbColts, false, PrinterRESTConsumer.Type.SECONDARIA, ReportManager.getReportNameLUFromGestione(GestioneEnum.ACQUISTO));
|
||||||
this.startActivityForResult(myIntent, PICK_UL_REQUEST);
|
this.startActivityForResult(myIntent, PICK_UL_REQUEST);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -59,7 +59,7 @@ public class OrdineAccettazioneInevasoRESTConsumerService {
|
|||||||
|
|
||||||
|
|
||||||
Type typeOfObjectsList = new TypeToken<ArrayList<MtbColt>>() {}.getType();
|
Type typeOfObjectsList = new TypeToken<ArrayList<MtbColt>>() {}.getType();
|
||||||
SystemRESTConsumer.processSql(sql, typeOfObjectsList, new ISimpleOperationCallback<List<MtbColt>>() {
|
SystemRESTConsumer.processSqlStatic(sql, typeOfObjectsList, new ISimpleOperationCallback<List<MtbColt>>() {
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(List<MtbColt> value) {
|
public void onSuccess(List<MtbColt> value) {
|
||||||
if(onComplete != null) onComplete.run(value);
|
if(onComplete != null) onComplete.run(value);
|
||||||
|
|||||||
@ -598,9 +598,9 @@ public class AccettazioneOrdineAccettazioneInevasoViewModel implements IOnColloC
|
|||||||
try {
|
try {
|
||||||
|
|
||||||
|
|
||||||
ReportManager.getRightReportNameByGestione(GestioneEnum.ACQUISTO, reportName -> {
|
ReportManager.getReportNameLUFromGestione(GestioneEnum.ACQUISTO, reportName -> {
|
||||||
|
|
||||||
PrinterRESTConsumer.printCollo(
|
PrinterRESTConsumer.printColloStatic(
|
||||||
value.get(0),
|
value.get(0),
|
||||||
currentMtbColt,
|
currentMtbColt,
|
||||||
1, reportName, () -> {
|
1, reportName, () -> {
|
||||||
@ -835,7 +835,7 @@ public class AccettazioneOrdineAccettazioneInevasoViewModel implements IOnColloC
|
|||||||
MtbColt cloneMtbColt = (MtbColt) getColloRef().clone();
|
MtbColt cloneMtbColt = (MtbColt) getColloRef().clone();
|
||||||
cloneMtbColt.setOperation(CommonModelConsts.OPERATION.NO_OP);
|
cloneMtbColt.setOperation(CommonModelConsts.OPERATION.NO_OP);
|
||||||
|
|
||||||
cloneMtbColt.setMtbColr(new ObservableArrayList());
|
cloneMtbColt.setMtbColr(new ObservableArrayList<>());
|
||||||
cloneMtbColt.getMtbColr().add(mtbColr);
|
cloneMtbColt.getMtbColr().add(mtbColr);
|
||||||
|
|
||||||
ColliMagazzinoRESTConsumer.saveColloStatic(cloneMtbColt, new ISimpleOperationCallback<MtbColt>() {
|
ColliMagazzinoRESTConsumer.saveColloStatic(cloneMtbColt, new ISimpleOperationCallback<MtbColt>() {
|
||||||
|
|||||||
@ -105,11 +105,11 @@ public class ContenutoBancaleViewModel implements IRecyclerItemClicked<MtbColr>
|
|||||||
if(value.size() > 0) {
|
if(value.size() > 0) {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
ReportManager.getRightReportNameByGestione(mtbColt.get().getGestioneEnum(), reportName -> {
|
ReportManager.getReportNameLUFromGestione(mtbColt.get().getGestioneEnum(), reportName -> {
|
||||||
|
|
||||||
reportName = mReportName != null ? mReportName : reportName;
|
reportName = mReportName != null ? mReportName : reportName;
|
||||||
|
|
||||||
PrinterRESTConsumer.printCollo(value.get(0),
|
PrinterRESTConsumer.printColloStatic(value.get(0),
|
||||||
mtbColt.get(),
|
mtbColt.get(),
|
||||||
1,
|
1,
|
||||||
reportName,
|
reportName,
|
||||||
|
|||||||
@ -4,7 +4,6 @@ import javax.inject.Singleton;
|
|||||||
|
|
||||||
import dagger.Component;
|
import dagger.Component;
|
||||||
import it.integry.integrywmsnative.MainApplicationComponent;
|
import it.integry.integrywmsnative.MainApplicationComponent;
|
||||||
import it.integry.integrywmsnative.gest.spedizione_new.SpedizioneActivity;
|
|
||||||
|
|
||||||
@Singleton
|
@Singleton
|
||||||
@Component(modules = {PickingLiberoModule.class}, dependencies = {MainApplicationComponent.class})
|
@Component(modules = {PickingLiberoModule.class}, dependencies = {MainApplicationComponent.class})
|
||||||
|
|||||||
@ -4,17 +4,15 @@ package it.integry.integrywmsnative.gest.picking_libero;
|
|||||||
import android.app.Dialog;
|
import android.app.Dialog;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
|
||||||
import androidx.appcompat.widget.AppCompatTextView;
|
|
||||||
import androidx.core.content.ContextCompat;
|
|
||||||
import androidx.databinding.ObservableList;
|
|
||||||
import androidx.fragment.app.Fragment;
|
|
||||||
|
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
|
||||||
|
import androidx.appcompat.widget.AppCompatTextView;
|
||||||
|
import androidx.core.content.ContextCompat;
|
||||||
import androidx.databinding.DataBindingUtil;
|
import androidx.databinding.DataBindingUtil;
|
||||||
|
import androidx.databinding.ObservableList;
|
||||||
|
import androidx.fragment.app.Fragment;
|
||||||
import androidx.recyclerview.widget.DividerItemDecoration;
|
import androidx.recyclerview.widget.DividerItemDecoration;
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||||
|
|
||||||
@ -158,9 +156,7 @@ public class PickingLiberoFragment extends Fragment implements ITitledFragment,
|
|||||||
|
|
||||||
private void initRecyclerView() {
|
private void initRecyclerView() {
|
||||||
mBindings.pickingLiberoMainList.setNestedScrollingEnabled(false);
|
mBindings.pickingLiberoMainList.setNestedScrollingEnabled(false);
|
||||||
|
|
||||||
mBindings.pickingLiberoMainList.setHasFixedSize(true);
|
mBindings.pickingLiberoMainList.setHasFixedSize(true);
|
||||||
|
|
||||||
mBindings.pickingLiberoMainList.setLayoutManager(new LinearLayoutManager(getActivity()));
|
mBindings.pickingLiberoMainList.setLayoutManager(new LinearLayoutManager(getActivity()));
|
||||||
|
|
||||||
DividerItemDecoration itemDecorator = new DividerItemDecoration(getActivity(), DividerItemDecoration.VERTICAL);
|
DividerItemDecoration itemDecorator = new DividerItemDecoration(getActivity(), DividerItemDecoration.VERTICAL);
|
||||||
@ -169,13 +165,13 @@ public class PickingLiberoFragment extends Fragment implements ITitledFragment,
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void initAdapter() {
|
private void initAdapter() {
|
||||||
mAdapter = new PickingLiberoListAdapter(getActivity(), mViewModel.getCurrentMtbColt().getMtbColr());
|
mAdapter = new PickingLiberoListAdapter(mViewModel.getCurrentMtbColt().getMtbColr());
|
||||||
mBindings.pickingLiberoMainList.setAdapter(mAdapter);
|
mBindings.pickingLiberoMainList.setAdapter(mAdapter);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void destroyAdapter() {
|
private void destroyAdapter() {
|
||||||
mAdapter = null;
|
|
||||||
mBindings.pickingLiberoMainList.setAdapter(null);
|
mBindings.pickingLiberoMainList.setAdapter(null);
|
||||||
|
mAdapter = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
private RunnableArgs<BarcodeScanDTO> onScanSuccessful = data -> {
|
private RunnableArgs<BarcodeScanDTO> onScanSuccessful = data -> {
|
||||||
@ -218,7 +214,7 @@ public class PickingLiberoFragment extends Fragment implements ITitledFragment,
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onDestroyView() {
|
public void onDestroyView() {
|
||||||
// mViewModel.closeLU();
|
if(thereIsAnOpenedUL.get()) mViewModel.closeLU();
|
||||||
BarcodeManager.removeCallback(barcodeScannerIstanceID);
|
BarcodeManager.removeCallback(barcodeScannerIstanceID);
|
||||||
if (mOnPreDestroy != null) mOnPreDestroy.run();
|
if (mOnPreDestroy != null) mOnPreDestroy.run();
|
||||||
super.onDestroyView();
|
super.onDestroyView();
|
||||||
|
|||||||
@ -447,7 +447,7 @@ public class PickingLiberoViewModel {
|
|||||||
MtbColt cloneMtbColt = (MtbColt) mCurrentMtbColt.clone();
|
MtbColt cloneMtbColt = (MtbColt) mCurrentMtbColt.clone();
|
||||||
cloneMtbColt.setOperation(CommonModelConsts.OPERATION.UPDATE);
|
cloneMtbColt.setOperation(CommonModelConsts.OPERATION.UPDATE);
|
||||||
|
|
||||||
cloneMtbColt.setMtbColr(new ObservableArrayList());
|
cloneMtbColt.setMtbColr(new ObservableArrayList<>());
|
||||||
cloneMtbColt.getMtbColr().add((MtbColr) mtbColr.clone());
|
cloneMtbColt.getMtbColr().add((MtbColr) mtbColr.clone());
|
||||||
|
|
||||||
if (UtilityBigDecimal.equalsTo(numCnf, BigDecimal.ZERO) && UtilityBigDecimal.equalsTo(qtaTot, BigDecimal.ZERO)) {
|
if (UtilityBigDecimal.equalsTo(numCnf, BigDecimal.ZERO) && UtilityBigDecimal.equalsTo(qtaTot, BigDecimal.ZERO)) {
|
||||||
@ -590,16 +590,6 @@ public class PickingLiberoViewModel {
|
|||||||
|
|
||||||
void onArtSelectionRequest(List<MtbColr> mtbColrsToPick, RunnableArgs<List<MtbColr>> onComplete, Runnable onAbort);
|
void onArtSelectionRequest(List<MtbColr> mtbColrsToPick, RunnableArgs<List<MtbColr>> onComplete, Runnable onAbort);
|
||||||
|
|
||||||
/*void onLUPrintRequest(RunnableArgs<Boolean> onComplete);
|
|
||||||
|
|
||||||
void onLUPrintError(Exception ex, Runnable onComplete);
|
|
||||||
|
|
||||||
void onFilterApplied(String newValue);
|
|
||||||
|
|
||||||
void onFilterRemoved();
|
|
||||||
|
|
||||||
void onMtbColrDeleteRequest(RunnableArgs<Boolean> onComplete);
|
|
||||||
*/
|
|
||||||
void onItemDispatched(PickingObjectDTO pickingObjectDTO,
|
void onItemDispatched(PickingObjectDTO pickingObjectDTO,
|
||||||
MtbAart mtbAart,
|
MtbAart mtbAart,
|
||||||
BigDecimal initialNumCnf,
|
BigDecimal initialNumCnf,
|
||||||
|
|||||||
@ -1,34 +1,30 @@
|
|||||||
package it.integry.integrywmsnative.gest.picking_libero.core;
|
package it.integry.integrywmsnative.gest.picking_libero.core;
|
||||||
|
|
||||||
import android.content.Context;
|
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
|
||||||
import androidx.databinding.DataBindingUtil;
|
import androidx.databinding.DataBindingUtil;
|
||||||
import androidx.databinding.ObservableArrayList;
|
import androidx.databinding.ObservableArrayList;
|
||||||
import androidx.databinding.ObservableList;
|
|
||||||
import androidx.recyclerview.widget.RecyclerView;
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
|
|
||||||
import it.integry.integrywmsnative.R;
|
import it.integry.integrywmsnative.R;
|
||||||
import it.integry.integrywmsnative.core.expansion.OnListGeneralChangedCallback;
|
import it.integry.integrywmsnative.core.expansion.view.ExtendedRecyclerView;
|
||||||
import it.integry.integrywmsnative.core.interfaces.IRecyclerItemClicked;
|
|
||||||
import it.integry.integrywmsnative.core.model.MtbColr;
|
import it.integry.integrywmsnative.core.model.MtbColr;
|
||||||
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityNumber;
|
import it.integry.integrywmsnative.core.utility.UtilityNumber;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityResources;
|
import it.integry.integrywmsnative.core.utility.UtilityResources;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityString;
|
import it.integry.integrywmsnative.core.utility.UtilityString;
|
||||||
import it.integry.integrywmsnative.databinding.ListaPickingLiberoListModelBinding;
|
import it.integry.integrywmsnative.databinding.ListaPickingLiberoListModelBinding;
|
||||||
import it.integry.integrywmsnative.view.bottom_sheet__lu_content.BottomSheetFragmentLUContentListAdapter;
|
|
||||||
|
|
||||||
public class PickingLiberoListAdapter extends RecyclerView.Adapter<PickingLiberoListAdapter.ViewHolder>{
|
public class PickingLiberoListAdapter extends ExtendedRecyclerView<MtbColr, PickingLiberoListAdapter.ViewHolder> {
|
||||||
|
|
||||||
private Context mContext;
|
|
||||||
private ArrayList<MtbColr> mDataset;
|
|
||||||
private OnItemClickListener mOnItemClickListener;
|
private OnItemClickListener mOnItemClickListener;
|
||||||
|
|
||||||
public class ViewHolder extends RecyclerView.ViewHolder {
|
public PickingLiberoListAdapter(ObservableArrayList<MtbColr> myDataset) {
|
||||||
|
super(myDataset);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class ViewHolder extends RecyclerView.ViewHolder {
|
||||||
protected ListaPickingLiberoListModelBinding mViewDataBinding;
|
protected ListaPickingLiberoListModelBinding mViewDataBinding;
|
||||||
|
|
||||||
|
|
||||||
@ -59,24 +55,12 @@ public class PickingLiberoListAdapter extends RecyclerView.Adapter<PickingLibero
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
public PickingLiberoListAdapter(Context context, ObservableArrayList<MtbColr> myDataset) {
|
|
||||||
mContext = context;
|
|
||||||
mDataset = myDataset;
|
|
||||||
|
|
||||||
myDataset.addOnListChangedCallback(new OnListGeneralChangedCallback() {
|
|
||||||
@Override
|
|
||||||
public void onChanged(ObservableList sender) {
|
|
||||||
notifyDataSetChanged();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PickingLiberoListAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
|
public PickingLiberoListAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
|
||||||
// create a new view
|
// create a new view
|
||||||
ListaPickingLiberoListModelBinding viewDataBinding = DataBindingUtil.inflate(LayoutInflater.from(parent.getContext()), R.layout.lista_picking_libero_list_model, parent, false);
|
ListaPickingLiberoListModelBinding viewDataBinding = DataBindingUtil.inflate(LayoutInflater.from(parent.getContext()), R.layout.lista_picking_libero_list_model, parent, false);
|
||||||
|
|
||||||
return new PickingLiberoListAdapter.ViewHolder(viewDataBinding);
|
return new ViewHolder(viewDataBinding);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -93,16 +77,6 @@ public class PickingLiberoListAdapter extends RecyclerView.Adapter<PickingLibero
|
|||||||
holder.mViewDataBinding.executePendingBindings();
|
holder.mViewDataBinding.executePendingBindings();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onViewRecycled(PickingLiberoListAdapter.ViewHolder holder) {
|
|
||||||
super.onViewRecycled(holder);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int getItemCount() {
|
|
||||||
return mDataset.size();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public PickingLiberoListAdapter setOnItemClickListener(OnItemClickListener onItemClickListener) {
|
public PickingLiberoListAdapter setOnItemClickListener(OnItemClickListener onItemClickListener) {
|
||||||
this.mOnItemClickListener = onItemClickListener;
|
this.mOnItemClickListener = onItemClickListener;
|
||||||
|
|||||||
@ -320,7 +320,7 @@ public class PickingResiActivity extends BaseActivity implements IOnColloClosedC
|
|||||||
MtbColt cloneMtbColt = (MtbColt) currentMtbColt.get().clone();
|
MtbColt cloneMtbColt = (MtbColt) currentMtbColt.get().clone();
|
||||||
cloneMtbColt.setOperation(CommonModelConsts.OPERATION.NO_OP);
|
cloneMtbColt.setOperation(CommonModelConsts.OPERATION.NO_OP);
|
||||||
|
|
||||||
cloneMtbColt.setMtbColr(new ObservableArrayList());
|
cloneMtbColt.setMtbColr(new ObservableArrayList<>());
|
||||||
cloneMtbColt.getMtbColr().add(mtbColr);
|
cloneMtbColt.getMtbColr().add(mtbColr);
|
||||||
|
|
||||||
ColliMagazzinoRESTConsumer.saveColloStatic(cloneMtbColt, value -> {
|
ColliMagazzinoRESTConsumer.saveColloStatic(cloneMtbColt, value -> {
|
||||||
@ -468,9 +468,9 @@ public class PickingResiActivity extends BaseActivity implements IOnColloClosedC
|
|||||||
|
|
||||||
|
|
||||||
private void singlePrint(MtbColt mtbColtToPrint, String printerName, Runnable onComplete, RunnableArgs<Exception> onAbort) {
|
private void singlePrint(MtbColt mtbColtToPrint, String printerName, Runnable onComplete, RunnableArgs<Exception> onAbort) {
|
||||||
ReportManager.getRightReportNameByGestione(mtbColtToPrint.getGestioneEnum(), reportName -> {
|
ReportManager.getReportNameLUFromGestione(mtbColtToPrint.getGestioneEnum(), reportName -> {
|
||||||
|
|
||||||
PrinterRESTConsumer.printCollo(
|
PrinterRESTConsumer.printColloStatic(
|
||||||
printerName,
|
printerName,
|
||||||
mtbColtToPrint,
|
mtbColtToPrint,
|
||||||
1,
|
1,
|
||||||
|
|||||||
@ -181,7 +181,7 @@ public class ProdOrdineLavorazioneHelper {
|
|||||||
baseSql += "( " + whereCond + ")";
|
baseSql += "( " + whereCond + ")";
|
||||||
|
|
||||||
Type typeOfObjectsList = new TypeToken<ArrayList<MtbColt>>() {}.getType();
|
Type typeOfObjectsList = new TypeToken<ArrayList<MtbColt>>() {}.getType();
|
||||||
SystemRESTConsumer.processSql(baseSql, typeOfObjectsList, new ISimpleOperationCallback<List<MtbColt>>() {
|
SystemRESTConsumer.processSqlStatic(baseSql, typeOfObjectsList, new ISimpleOperationCallback<List<MtbColt>>() {
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(List<MtbColt> value) {
|
public void onSuccess(List<MtbColt> value) {
|
||||||
if(onComplete != null) onComplete.run(value);
|
if(onComplete != null) onComplete.run(value);
|
||||||
|
|||||||
@ -331,9 +331,9 @@ public class ProdRecuperoMaterialeViewModel {
|
|||||||
|
|
||||||
|
|
||||||
private void singlePrint(MtbColt mtbColtToPrint, String printerName, Runnable onComplete, RunnableArgs<Exception> onAbort) {
|
private void singlePrint(MtbColt mtbColtToPrint, String printerName, Runnable onComplete, RunnableArgs<Exception> onAbort) {
|
||||||
ReportManager.getRightReportNameByGestione(mtbColtToPrint.getGestioneEnum(), reportName -> {
|
ReportManager.getReportNameLUFromGestione(mtbColtToPrint.getGestioneEnum(), reportName -> {
|
||||||
|
|
||||||
PrinterRESTConsumer.printCollo(
|
PrinterRESTConsumer.printColloStatic(
|
||||||
printerName,
|
printerName,
|
||||||
mtbColtToPrint,
|
mtbColtToPrint,
|
||||||
1,
|
1,
|
||||||
|
|||||||
@ -0,0 +1,14 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.rettifica_giacenze;
|
||||||
|
|
||||||
|
import javax.inject.Singleton;
|
||||||
|
|
||||||
|
import dagger.Component;
|
||||||
|
import it.integry.integrywmsnative.MainApplicationComponent;
|
||||||
|
|
||||||
|
@Singleton
|
||||||
|
@Component(modules = {RettificaGiacenzeModule.class}, dependencies = {MainApplicationComponent.class})
|
||||||
|
public interface RettificaGiacenzeComponent {
|
||||||
|
|
||||||
|
void inject(RettificaGiacenzeFragment rettificaGiacenzeFragment);
|
||||||
|
|
||||||
|
}
|
||||||
@ -1,37 +1,87 @@
|
|||||||
package it.integry.integrywmsnative.gest.rettifica_giacenze;
|
package it.integry.integrywmsnative.gest.rettifica_giacenze;
|
||||||
|
|
||||||
|
import android.app.Dialog;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.res.ColorStateList;
|
import android.content.res.ColorStateList;
|
||||||
|
import android.content.res.Resources;
|
||||||
import androidx.appcompat.app.ActionBar;
|
|
||||||
import androidx.appcompat.widget.AppCompatTextView;
|
|
||||||
import androidx.databinding.DataBindingUtil;
|
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import androidx.fragment.app.Fragment;
|
import android.text.SpannableString;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
import android.view.inputmethod.EditorInfo;
|
||||||
|
|
||||||
import com.google.android.material.bottomsheet.BottomSheetBehavior;
|
import androidx.appcompat.widget.AppCompatTextView;
|
||||||
|
import androidx.core.content.ContextCompat;
|
||||||
|
import androidx.databinding.DataBindingUtil;
|
||||||
|
import androidx.databinding.ObservableField;
|
||||||
|
import androidx.fragment.app.Fragment;
|
||||||
|
import androidx.recyclerview.widget.DividerItemDecoration;
|
||||||
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||||
|
|
||||||
|
import com.google.android.material.textfield.TextInputLayout;
|
||||||
|
import com.tfb.fbtoast.FBToast;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
import javax.inject.Inject;
|
||||||
|
|
||||||
|
import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
|
||||||
|
import it.integry.integrywmsnative.MainApplication;
|
||||||
import it.integry.integrywmsnative.R;
|
import it.integry.integrywmsnative.R;
|
||||||
import it.integry.integrywmsnative.core.barcode_reader.BarcodeCallbackDTO;
|
import it.integry.integrywmsnative.core.barcode_reader.BarcodeCallbackDTO;
|
||||||
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
|
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
|
||||||
|
import it.integry.integrywmsnative.core.di.BindableBoolean;
|
||||||
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
|
import it.integry.integrywmsnative.core.expansion.RunnableArgss;
|
||||||
|
import it.integry.integrywmsnative.core.interfaces.IPoppableActivity;
|
||||||
import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
|
import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
|
||||||
|
import it.integry.integrywmsnative.core.model.MtbAart;
|
||||||
|
import it.integry.integrywmsnative.core.model.MtbColr;
|
||||||
|
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||||
|
import it.integry.integrywmsnative.core.model.MtbDepoPosizione;
|
||||||
|
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityProgress;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityString;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityToast;
|
||||||
import it.integry.integrywmsnative.databinding.FragmentMainRettificaGiacenzeBinding;
|
import it.integry.integrywmsnative.databinding.FragmentMainRettificaGiacenzeBinding;
|
||||||
import it.integry.integrywmsnative.gest.rettifica_giacenze.core.RettificaGiacenzeHelper;
|
import it.integry.integrywmsnative.gest.rettifica_giacenze.core.adapter.AutoCompleteFornitoreAdapter;
|
||||||
import it.integry.integrywmsnative.gest.rettifica_giacenze.viewmodel.RettificaGiacenzeViewModel;
|
import it.integry.integrywmsnative.gest.rettifica_giacenze.core.adapter.RettificaGiacenzeMainListAdapter;
|
||||||
|
import it.integry.integrywmsnative.gest.rettifica_giacenze.dto.FornitoreDTO;
|
||||||
|
import it.integry.integrywmsnative.gest.spedizione_new.exceptions.InvalidPesoKGException;
|
||||||
|
import it.integry.integrywmsnative.gest.spedizione_new.model.PickedQuantityDTO;
|
||||||
|
import it.integry.integrywmsnative.gest.spedizione_new.model.PickingObjectDTO;
|
||||||
|
import it.integry.integrywmsnative.view.bottom_sheet__mtb_colr_edit.BottomSheetMtbColrEditView;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.DialogConsts;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.ask_position_of_lu.DialogAskPositionOfLU;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.choose_art_from_lista_arts.DialogChooseArtFromListaArts;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2DTO;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.scan_or_create_lu.DialogScanOrCreateLU;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.yes_no.DialogYesNo;
|
||||||
|
|
||||||
public class RettificaGiacenzeFragment extends Fragment implements ITitledFragment {
|
public class RettificaGiacenzeFragment extends Fragment implements ITitledFragment, RettificaGiacenzeViewModelNEW.Listener, BottomSheetMtbColrEditView.Listener {
|
||||||
|
|
||||||
private RettificaGiacenzeHelper mHelper;
|
|
||||||
private FragmentMainRettificaGiacenzeBinding mBinding = null;
|
private FragmentMainRettificaGiacenzeBinding mBinding = null;
|
||||||
|
|
||||||
private RettificaGiacenzeViewModel mRettificaGiacenzeViewModel = null;
|
@Inject
|
||||||
|
RettificaGiacenzeViewModelNEW mViewModel;
|
||||||
|
|
||||||
|
public BindableBoolean thereIsAnOpenedUL = new BindableBoolean(false);
|
||||||
|
public BindableBoolean thereIsntAnOpenedUL = new BindableBoolean(false);
|
||||||
|
|
||||||
|
public ObservableField<MtbColt> currentMtbColtObs = new ObservableField<>();
|
||||||
|
|
||||||
|
private RettificaGiacenzeMainListAdapter mAdapter;
|
||||||
|
|
||||||
private int barcodeScannerIstanceID = -1;
|
private int barcodeScannerIstanceID = -1;
|
||||||
|
|
||||||
|
private Dialog mCurrentProgress;
|
||||||
|
|
||||||
public RettificaGiacenzeFragment() {
|
public RettificaGiacenzeFragment() {
|
||||||
// Required empty public constructor
|
// Required empty public constructor
|
||||||
}
|
}
|
||||||
@ -52,32 +102,82 @@ public class RettificaGiacenzeFragment extends Fragment implements ITitledFragme
|
|||||||
Bundle savedInstanceState) {
|
Bundle savedInstanceState) {
|
||||||
|
|
||||||
mBinding = DataBindingUtil.inflate(inflater, R.layout.fragment_main_rettifica_giacenze, container, false);
|
mBinding = DataBindingUtil.inflate(inflater, R.layout.fragment_main_rettifica_giacenze, container, false);
|
||||||
mRettificaGiacenzeViewModel = new RettificaGiacenzeViewModel();
|
|
||||||
|
|
||||||
|
RettificaGiacenzeComponent rettificaGiacenzeComponent = DaggerRettificaGiacenzeComponent.builder()
|
||||||
|
.mainApplicationModule(MainApplication.appModule)
|
||||||
|
.mainApplicationComponent(MainApplication.appComponent)
|
||||||
|
.build();
|
||||||
|
|
||||||
|
rettificaGiacenzeComponent.inject(this);
|
||||||
|
|
||||||
|
mViewModel.setListener(this);
|
||||||
|
|
||||||
|
mBinding.setLifecycleOwner(this);
|
||||||
mBinding.setView(this);
|
mBinding.setView(this);
|
||||||
mBinding.setViewmodel(mRettificaGiacenzeViewModel);
|
mBinding.setViewmodel(mViewModel);
|
||||||
|
|
||||||
init();
|
|
||||||
|
this.initVars();
|
||||||
|
this.initBarcodeReader();
|
||||||
|
this.initBottomSheet();
|
||||||
|
this.initRecyclerView();
|
||||||
|
|
||||||
|
this.init();
|
||||||
|
|
||||||
return mBinding.getRoot();
|
return mBinding.getRoot();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void init() {
|
|
||||||
mHelper = new RettificaGiacenzeHelper(getActivity());
|
|
||||||
mRettificaGiacenzeViewModel.init(getActivity(), mBinding, mHelper);
|
|
||||||
|
|
||||||
|
private void initVars() {
|
||||||
|
thereIsAnOpenedUL.addOnPropertyChangedCallback(() -> {
|
||||||
|
thereIsntAnOpenedUL.set(!thereIsAnOpenedUL.get());
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
private void initBarcodeReader() {
|
||||||
barcodeScannerIstanceID = BarcodeManager.addCallback(new BarcodeCallbackDTO()
|
barcodeScannerIstanceID = BarcodeManager.addCallback(new BarcodeCallbackDTO()
|
||||||
.setOnScanSuccessfull(mRettificaGiacenzeViewModel.onScanSuccessfull)
|
.setOnScanSuccessfull(onScanSuccessful)
|
||||||
.setOnScanFailed(ex -> UtilityExceptions.defaultException(getActivity(), ex, false)));
|
.setOnScanFailed(ex -> UtilityExceptions.defaultException(getActivity(), ex, false)));
|
||||||
|
}
|
||||||
|
|
||||||
mHelper.loadListaFornitori(listaFornitori -> {
|
private void initBottomSheet() {
|
||||||
mRettificaGiacenzeViewModel.setupSearchFornitori(listaFornitori);
|
mBinding.bottomSheetMtbColrEdit.setListener(this);
|
||||||
|
mBinding.bottomSheetMtbColrEdit.init(mBinding.bottomSheetMtbColrEdit, mBinding.bottomSheetMtbColrEditBackground);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void initRecyclerView() {
|
||||||
|
mBinding.rettificaGiacenzeMainList.setNestedScrollingEnabled(false);
|
||||||
|
mBinding.rettificaGiacenzeMainList.setHasFixedSize(true);
|
||||||
|
mBinding.rettificaGiacenzeMainList.setLayoutManager(new LinearLayoutManager(getActivity()));
|
||||||
|
|
||||||
|
DividerItemDecoration itemDecorator = new DividerItemDecoration(getActivity(), DividerItemDecoration.VERTICAL);
|
||||||
|
itemDecorator.setDrawable(ContextCompat.getDrawable(getActivity(), R.drawable.divider));
|
||||||
|
mBinding.rettificaGiacenzeMainList.addItemDecoration(itemDecorator);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void initAdapter() {
|
||||||
|
mAdapter = new RettificaGiacenzeMainListAdapter(mViewModel.getCurrentMtbColt().getMtbColr());
|
||||||
|
mAdapter.setEmptyView(mBinding.rettificaGiacenzeEmptyView);
|
||||||
|
|
||||||
|
this.mAdapter.setOnItemClickListener(clickedMtbColr -> {
|
||||||
|
mBinding.bottomSheetMtbColrEdit.setMtbColr(clickedMtbColr);
|
||||||
|
mBinding.bottomSheetMtbColrEdit.expand();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
mBinding.rettificaGiacenzeMainList.setAdapter(mAdapter);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void destroyAdapter() {
|
||||||
|
mBinding.rettificaGiacenzeMainList.setAdapter(null);
|
||||||
|
mAdapter = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void init() {
|
||||||
mBinding.autoCompleteFornitori.setOnFocusChangeListener((v, hasFocus) -> {
|
mBinding.autoCompleteFornitori.setOnFocusChangeListener((v, hasFocus) -> {
|
||||||
setUIToForn();
|
setUIToForn();
|
||||||
});
|
});
|
||||||
|
|
||||||
mBinding.inputCodArtDescrForn.setOnFocusChangeListener((v, hasFocus) -> {
|
mBinding.inputCodArtDescrForn.setOnFocusChangeListener((v, hasFocus) -> {
|
||||||
setUIToForn();
|
setUIToForn();
|
||||||
});
|
});
|
||||||
@ -86,7 +186,10 @@ public class RettificaGiacenzeFragment extends Fragment implements ITitledFragme
|
|||||||
setUIToIntArt();
|
setUIToIntArt();
|
||||||
});
|
});
|
||||||
|
|
||||||
mRettificaGiacenzeViewModel.openLU();
|
mViewModel.init(
|
||||||
|
SettingsManager.i().getUser().getFullname(),
|
||||||
|
SettingsManager.iDB().getDefaultCausaleRettificaGiacenze(),
|
||||||
|
SettingsManager.i().getUserSession().getDepo().getCodMdep());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -97,7 +200,7 @@ public class RettificaGiacenzeFragment extends Fragment implements ITitledFragme
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onDestroyView() {
|
public void onDestroyView() {
|
||||||
mRettificaGiacenzeViewModel.closeLU(false, false);
|
mViewModel.closeLU(false);
|
||||||
BarcodeManager.removeCallback(barcodeScannerIstanceID);
|
BarcodeManager.removeCallback(barcodeScannerIstanceID);
|
||||||
super.onDestroyView();
|
super.onDestroyView();
|
||||||
}
|
}
|
||||||
@ -108,6 +211,32 @@ public class RettificaGiacenzeFragment extends Fragment implements ITitledFragme
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private RunnableArgs<BarcodeScanDTO> onScanSuccessful = data -> {
|
||||||
|
BarcodeManager.disable();
|
||||||
|
|
||||||
|
this.openProgress();
|
||||||
|
|
||||||
|
this.mViewModel.processBarcodeDTO(data, () -> {
|
||||||
|
BarcodeManager.enable();
|
||||||
|
this.closeProgress();
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
private void openProgress() {
|
||||||
|
if (this.mCurrentProgress == null) {
|
||||||
|
this.mCurrentProgress = UtilityProgress.createDefaultProgressDialog(getActivity());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void closeProgress() {
|
||||||
|
if (mCurrentProgress != null) {
|
||||||
|
mCurrentProgress.dismiss();
|
||||||
|
mCurrentProgress = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public void setUIToForn() {
|
public void setUIToForn() {
|
||||||
mBinding.rettificaGiacenzeFornCheckBox.setChecked(true);
|
mBinding.rettificaGiacenzeFornCheckBox.setChecked(true);
|
||||||
@ -117,8 +246,6 @@ public class RettificaGiacenzeFragment extends Fragment implements ITitledFragme
|
|||||||
mBinding.rettificaGiacenzeArtIntCheckBox.setChecked(false);
|
mBinding.rettificaGiacenzeArtIntCheckBox.setChecked(false);
|
||||||
mBinding.rettificaGiacenzeArtIntLayout.setBackground(null);
|
mBinding.rettificaGiacenzeArtIntLayout.setBackground(null);
|
||||||
mBinding.rettificaGiacenzeArtIntLayout.setBackgroundTintList(null);
|
mBinding.rettificaGiacenzeArtIntLayout.setBackgroundTintList(null);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -130,7 +257,261 @@ public class RettificaGiacenzeFragment extends Fragment implements ITitledFragme
|
|||||||
mBinding.rettificaGiacenzeFornCheckBox.setChecked(false);
|
mBinding.rettificaGiacenzeFornCheckBox.setChecked(false);
|
||||||
mBinding.rettificaGiacenzeFornLayout.setBackground(null);
|
mBinding.rettificaGiacenzeFornLayout.setBackground(null);
|
||||||
mBinding.rettificaGiacenzeFornLayout.setBackgroundTintList(null);
|
mBinding.rettificaGiacenzeFornLayout.setBackgroundTintList(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onLoadingStarted() {
|
||||||
|
BarcodeManager.disable();
|
||||||
|
this.openProgress();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onLoadingEnded() {
|
||||||
|
this.closeProgress();
|
||||||
|
BarcodeManager.enable();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onFornitoriLoaded(ArrayList<FornitoreDTO> fornitoriList) {
|
||||||
|
AutoCompleteFornitoreAdapter autoCompleteFornitoreAdapter = new AutoCompleteFornitoreAdapter(getActivity(), fornitoriList);
|
||||||
|
mBinding.autoCompleteFornitori.setAdapter(autoCompleteFornitoreAdapter);
|
||||||
|
mBinding.autoCompleteFornitori.setDropDownWidth(getActivity().getResources().getDisplayMetrics().widthPixels);
|
||||||
|
|
||||||
|
mBinding.inputCodArtDescrForn.setOnEditorActionListener((v, actionId, event) -> {
|
||||||
|
if (actionId == EditorInfo.IME_ACTION_DONE) {
|
||||||
|
resetAllError();
|
||||||
|
|
||||||
|
if (UtilityString.isNullOrEmpty(mBinding.autoCompleteFornitori.getText().toString())) {
|
||||||
|
setError(mBinding.autoCompleteFornitoriLayout, getActivity().getResources().getText(R.string.error).toString());
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (UtilityString.isNullOrEmpty(mBinding.inputCodArtDescrForn.getText().toString())) {
|
||||||
|
setError(mBinding.layoutCodArtDescrForn, getActivity().getResources().getText(R.string.error).toString());
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
mViewModel.searchArtFor(
|
||||||
|
mBinding.autoCompleteFornitori.getText().toString(),
|
||||||
|
mBinding.inputCodArtDescrForn.getText().toString());
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
mBinding.inputCodArtDescrInt.setOnEditorActionListener((v, actionId, event) -> {
|
||||||
|
if (actionId == EditorInfo.IME_ACTION_DONE) {
|
||||||
|
resetAllError();
|
||||||
|
|
||||||
|
if (UtilityString.isNullOrEmpty(mBinding.inputCodArtDescrInt.getText().toString())) {
|
||||||
|
setError(mBinding.layoutCodArtDescrInt, getActivity().getResources().getText(R.string.error).toString());
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
mViewModel.searchArtInt(mBinding.inputCodArtDescrInt.getText().toString(), null);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onArtListLoaded(ArrayList<MtbAart> artList) {
|
||||||
|
DialogChooseArtFromListaArts.make(getActivity(), artList, mtbAart -> mViewModel.dispatchArt(mtbAart, null)).show();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onLUOpenRequest(RunnableArgss<MtbColt, Boolean> onComplete) {
|
||||||
|
DialogScanOrCreateLU.make(getActivity(), true, false, (mtbColt, created) -> {
|
||||||
|
if (mtbColt == null) {
|
||||||
|
((IPoppableActivity) getActivity()).pop();
|
||||||
|
} else {
|
||||||
|
onComplete.run(mtbColt, created);
|
||||||
|
}
|
||||||
|
}).show();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onLUOpened(MtbColt mtbColt) {
|
||||||
|
initAdapter();
|
||||||
|
|
||||||
|
this.currentMtbColtObs.set(mtbColt);
|
||||||
|
thereIsAnOpenedUL.set(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onLUClosed() {
|
||||||
|
destroyAdapter();
|
||||||
|
|
||||||
|
this.currentMtbColtObs.set(null);
|
||||||
|
thereIsAnOpenedUL.set(false);
|
||||||
|
|
||||||
|
|
||||||
|
if(getActivity() != null) ((IPoppableActivity) getActivity()).pop();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onMtbColrDeleteRequest(RunnableArgs<Boolean> onComplete) {
|
||||||
|
String text = getResources().getString(R.string.alert_delete_mtb_colr);
|
||||||
|
DialogSimpleMessageHelper.makeWarningDialog(getActivity(),
|
||||||
|
new SpannableString(text),
|
||||||
|
null,
|
||||||
|
() -> onComplete.run(true),
|
||||||
|
() -> onComplete.run(false)
|
||||||
|
).show();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onError(Exception ex) {
|
||||||
|
this.closeProgress();
|
||||||
|
|
||||||
|
if (ex instanceof InvalidPesoKGException) {
|
||||||
|
UtilityToast.showToast(ex.getMessage());
|
||||||
|
} else {
|
||||||
|
UtilityExceptions.defaultException(getActivity(), ex, mCurrentProgress);
|
||||||
|
}
|
||||||
|
|
||||||
|
BarcodeManager.enable();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onItemDispatched(
|
||||||
|
PickingObjectDTO pickingObjectDTO,
|
||||||
|
MtbAart mtbAart,
|
||||||
|
BigDecimal initialNumCnf,
|
||||||
|
BigDecimal initialQtaCnf,
|
||||||
|
BigDecimal initialQtaTot,
|
||||||
|
BigDecimal totalQtaToBeTaken,
|
||||||
|
BigDecimal totalNumCnfToBeTaken,
|
||||||
|
BigDecimal qtaCnfToBeTaken,
|
||||||
|
String partitaMag,
|
||||||
|
Date dataScad,
|
||||||
|
boolean canOverflowOrderQuantity,
|
||||||
|
boolean canPartitaMagBeChanged,
|
||||||
|
boolean canLUBeClosed,
|
||||||
|
RunnableArgss<PickedQuantityDTO, Boolean> onComplete) {
|
||||||
|
|
||||||
|
DialogInputQuantityV2DTO dialogInputQuantityV2DTO = new DialogInputQuantityV2DTO()
|
||||||
|
.setMtbAart(mtbAart)
|
||||||
|
.setInitialNumCnf(initialNumCnf)
|
||||||
|
.setInitialQtaCnf(initialQtaCnf)
|
||||||
|
.setInitialQtaTot(initialQtaTot)
|
||||||
|
.setTotalQtaToBeTaken(totalQtaToBeTaken)
|
||||||
|
.setTotalNumCnfToBeTaken(totalNumCnfToBeTaken)
|
||||||
|
.setQtaCnfToBeTaken(qtaCnfToBeTaken)
|
||||||
|
.setPartitaMag(partitaMag)
|
||||||
|
.setDataScad(dataScad)
|
||||||
|
.setCanOverflowOrderQuantity(canOverflowOrderQuantity)
|
||||||
|
.setCanPartitaMagBeChanged(canPartitaMagBeChanged)
|
||||||
|
.setCanLUBeClosed(canLUBeClosed);
|
||||||
|
|
||||||
|
DialogInputQuantityV2
|
||||||
|
.newInstance(dialogInputQuantityV2DTO, (resultDTO, shouldCloseLU) -> {
|
||||||
|
PickedQuantityDTO pickedQuantityDTO = new PickedQuantityDTO()
|
||||||
|
.setNumCnf(resultDTO.getNumCnf())
|
||||||
|
.setQtaCnf(resultDTO.getQtaCnf())
|
||||||
|
.setQtaTot(resultDTO.getQtaTot())
|
||||||
|
.setPartitaMag(resultDTO.getPartitaMag())
|
||||||
|
.setDataScad(resultDTO.getDataScad());
|
||||||
|
|
||||||
|
this.openProgress();
|
||||||
|
onComplete.run(pickedQuantityDTO, shouldCloseLU);
|
||||||
|
}, () -> {
|
||||||
|
this.closeProgress();
|
||||||
|
})
|
||||||
|
.show(getActivity().getSupportFragmentManager(), "tag");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onRowSaved() {
|
||||||
|
FBToast.successToast(getActivity(), getResources().getString(R.string.data_saved), FBToast.LENGTH_SHORT);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void setError(TextInputLayout textInputLayout, String message) {
|
||||||
|
textInputLayout.setErrorEnabled(true);
|
||||||
|
textInputLayout.setError(message);
|
||||||
|
textInputLayout.setErrorIconDrawable(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void resetAllError() {
|
||||||
|
resetError(mBinding.autoCompleteFornitoriLayout);
|
||||||
|
resetError(mBinding.layoutCodArtDescrForn);
|
||||||
|
resetError(mBinding.layoutCodArtDescrInt);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void resetTexts() {
|
||||||
|
mBinding.inputCodArtDescrForn.setText("");
|
||||||
|
mBinding.inputCodArtDescrInt.setText("");
|
||||||
|
}
|
||||||
|
|
||||||
|
private void resetError(TextInputLayout textInputLayout) {
|
||||||
|
textInputLayout.setErrorEnabled(false);
|
||||||
|
textInputLayout.setError(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onMtbColrEdit(MtbColr mtbColr) {
|
||||||
|
this.mViewModel.dispatchRowEdit(mtbColr);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onMtbColrDelete(MtbColr mtbColr) {
|
||||||
|
this.mViewModel.deleteRow(mtbColr);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onLUSuccessullyPrinted() {
|
||||||
|
Resources res = getResources();
|
||||||
|
String errorMessage = res.getText(R.string.alert_print_completed_message).toString();
|
||||||
|
DialogSimpleMessageHelper.makeSuccessDialog(getActivity(), res.getText(R.string.completed).toString(), new SpannableString(errorMessage), null, null).show();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onLUPrintRequest(RunnableArgs<Boolean> onComplete) {
|
||||||
|
DialogSimpleMessageHelper.makeInfoDialog(
|
||||||
|
getActivity(),
|
||||||
|
getActivity().getResources().getString(R.string.action_print_ul),
|
||||||
|
new SpannableString(getActivity().getResources().getString(R.string.ask_print_message)),
|
||||||
|
null,
|
||||||
|
() -> onComplete.run(true),
|
||||||
|
() -> onComplete.run(false)).show();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onLUPrintError(Exception ex, Runnable onComplete) {
|
||||||
|
DialogSimpleMessageHelper.makeErrorDialog(
|
||||||
|
getActivity(),
|
||||||
|
new SpannableString(ex.getMessage()),
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
R.string.button_ignore_print,
|
||||||
|
onComplete).show();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onLUPositionChangeRequest(RunnableArgss<Boolean, MtbDepoPosizione> onComplete) {
|
||||||
|
DialogYesNo.make(getActivity(), "Posiziona UL", "Vuoi cambiare la posizione della UL corrente?", result -> {
|
||||||
|
switch (result) {
|
||||||
|
case YES:
|
||||||
|
DialogAskPositionOfLU.makeBase(getActivity(), mViewModel.getCurrentMtbColt(), false, (status, mtbDepoPosizione) -> {
|
||||||
|
if (status == DialogConsts.Results.ABORT) {
|
||||||
|
onComplete.run(false, null);
|
||||||
|
} else {
|
||||||
|
if (mtbDepoPosizione != null) {
|
||||||
|
onComplete.run(true, mtbDepoPosizione);
|
||||||
|
} else {
|
||||||
|
onComplete.run(true, null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}, this::onError).show();
|
||||||
|
break;
|
||||||
|
|
||||||
|
case NO:
|
||||||
|
onComplete.run(false, null);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}).show();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,36 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.rettifica_giacenze;
|
||||||
|
|
||||||
|
import javax.inject.Singleton;
|
||||||
|
|
||||||
|
import dagger.Module;
|
||||||
|
import dagger.Provides;
|
||||||
|
import it.integry.integrywmsnative.MainApplicationModule;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer;
|
||||||
|
import it.integry.integrywmsnative.gest.picking_libero.PickingLiberoViewModel;
|
||||||
|
import it.integry.integrywmsnative.gest.rettifica_giacenze.core.RettificaGiacenzeRESTConsumer;
|
||||||
|
|
||||||
|
@Module(includes = {MainApplicationModule.class})
|
||||||
|
public class RettificaGiacenzeModule {
|
||||||
|
|
||||||
|
|
||||||
|
@Provides
|
||||||
|
@Singleton
|
||||||
|
RettificaGiacenzeRESTConsumer providesRettificaGiacenzeRESTConsumer(SystemRESTConsumer systemRESTConsumer) {
|
||||||
|
return new RettificaGiacenzeRESTConsumer(systemRESTConsumer);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Provides
|
||||||
|
@Singleton
|
||||||
|
RettificaGiacenzeViewModelNEW providesRettificaGiacenzeViewModel(ArticoloRESTConsumer articoloRESTConsumer,
|
||||||
|
ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer,
|
||||||
|
PrinterRESTConsumer printerRESTConsumer,
|
||||||
|
BarcodeRESTConsumer barcodeRESTConsumer,
|
||||||
|
RettificaGiacenzeRESTConsumer rettificaGiacenzeRESTConsumer) {
|
||||||
|
return new RettificaGiacenzeViewModelNEW(articoloRESTConsumer, colliMagazzinoRESTConsumer, printerRESTConsumer, barcodeRESTConsumer, rettificaGiacenzeRESTConsumer);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,741 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.rettifica_giacenze;
|
||||||
|
|
||||||
|
import androidx.databinding.ObservableArrayList;
|
||||||
|
|
||||||
|
import com.annimon.stream.Stream;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import javax.inject.Inject;
|
||||||
|
|
||||||
|
import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
|
||||||
|
import it.integry.integrywmsnative.core.exception.InvalidLUGestioneException;
|
||||||
|
import it.integry.integrywmsnative.core.exception.NoArtsFoundException;
|
||||||
|
import it.integry.integrywmsnative.core.exception.NoPrintersFoundException;
|
||||||
|
import it.integry.integrywmsnative.core.exception.NoResultFromBarcodeException;
|
||||||
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
|
import it.integry.integrywmsnative.core.expansion.RunnableArgss;
|
||||||
|
import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILUPositionListener;
|
||||||
|
import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILUPrintListener;
|
||||||
|
import it.integry.integrywmsnative.core.model.CommonModelConsts;
|
||||||
|
import it.integry.integrywmsnative.core.model.MtbAart;
|
||||||
|
import it.integry.integrywmsnative.core.model.MtbColr;
|
||||||
|
import it.integry.integrywmsnative.core.model.MtbCols;
|
||||||
|
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||||
|
import it.integry.integrywmsnative.core.model.MtbDepoPosizione;
|
||||||
|
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
||||||
|
import it.integry.integrywmsnative.core.report.ReportManager;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer;
|
||||||
|
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityBarcode;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityBigDecimal;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityString;
|
||||||
|
import it.integry.integrywmsnative.gest.rettifica_giacenze.core.RettificaGiacenzeRESTConsumer;
|
||||||
|
import it.integry.integrywmsnative.gest.rettifica_giacenze.dto.FornitoreDTO;
|
||||||
|
import it.integry.integrywmsnative.gest.spedizione_new.model.PickDataDTO;
|
||||||
|
import it.integry.integrywmsnative.gest.spedizione_new.model.PickedQuantityDTO;
|
||||||
|
import it.integry.integrywmsnative.gest.spedizione_new.model.PickingObjectDTO;
|
||||||
|
|
||||||
|
public class RettificaGiacenzeViewModelNEW {
|
||||||
|
|
||||||
|
public MtbColt mCurrentMtbColt = null;
|
||||||
|
|
||||||
|
private final ArticoloRESTConsumer mArticoloRESTConsumer;
|
||||||
|
private final ColliMagazzinoRESTConsumer mColliMagazzinoRESTConsumer;
|
||||||
|
private final PrinterRESTConsumer mPrinterRESTConsumer;
|
||||||
|
private final BarcodeRESTConsumer mBarcodeRESTConsumer;
|
||||||
|
private final RettificaGiacenzeRESTConsumer mRettificaGiacenzeRESTConsumer;
|
||||||
|
|
||||||
|
private RettificaGiacenzeViewModelNEW.Listener mListener;
|
||||||
|
|
||||||
|
private String mCurrentUser;
|
||||||
|
private String mDefaultCausale;
|
||||||
|
private String mCurrentCodMdep;
|
||||||
|
private boolean mIsCreatedLU;
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
public RettificaGiacenzeViewModelNEW(ArticoloRESTConsumer articoloRESTConsumer,
|
||||||
|
ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer,
|
||||||
|
PrinterRESTConsumer printerRESTConsumer,
|
||||||
|
BarcodeRESTConsumer barcodeRESTConsumer,
|
||||||
|
RettificaGiacenzeRESTConsumer rettificaGiacenzeRESTConsumer) {
|
||||||
|
this.mArticoloRESTConsumer = articoloRESTConsumer;
|
||||||
|
this.mColliMagazzinoRESTConsumer = colliMagazzinoRESTConsumer;
|
||||||
|
this.mPrinterRESTConsumer = printerRESTConsumer;
|
||||||
|
this.mBarcodeRESTConsumer = barcodeRESTConsumer;
|
||||||
|
this.mRettificaGiacenzeRESTConsumer = rettificaGiacenzeRESTConsumer;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void init(String currentUser, String defaultCausale, String currentCodMdep) {
|
||||||
|
this.mCurrentUser = currentUser;
|
||||||
|
this.mDefaultCausale = defaultCausale;
|
||||||
|
this.mCurrentCodMdep = currentCodMdep;
|
||||||
|
|
||||||
|
|
||||||
|
this.sendOnLoadingStarted();
|
||||||
|
|
||||||
|
this.mRettificaGiacenzeRESTConsumer.loadListaFornitori(fornitori -> {
|
||||||
|
this.sendOnFornitoriListLoaded(fornitori);
|
||||||
|
|
||||||
|
this.sendOnLoadingEnded();
|
||||||
|
|
||||||
|
this.sendOnLUOpenRequest((mtbColt, created) -> {
|
||||||
|
if(mtbColt.getGestioneEnum() == GestioneEnum.ACQUISTO) {
|
||||||
|
this.sendError(new InvalidLUGestioneException(GestioneEnum.ACQUISTO));
|
||||||
|
} else {
|
||||||
|
this.mCurrentMtbColt = mtbColt;
|
||||||
|
this.mIsCreatedLU = created;
|
||||||
|
|
||||||
|
this.sendLUOpened(mtbColt);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}, this::sendError);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public RettificaGiacenzeViewModelNEW setListener(RettificaGiacenzeViewModelNEW.Listener listener) {
|
||||||
|
this.mListener = listener;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void processBarcodeDTO(BarcodeScanDTO barcodeScanDTO, Runnable onComplete) {
|
||||||
|
// if (UtilityBarcode.isEanPeso(barcodeScanDTO)) {
|
||||||
|
// //Cerco tramite etichetta ean 128 (che può indicarmi un articolo o una UL)
|
||||||
|
// this.executeEtichettaEanPeso(barcodeScanDTO, onComplete);
|
||||||
|
//
|
||||||
|
// } else
|
||||||
|
if (UtilityBarcode.isEtichetta128(barcodeScanDTO)) {
|
||||||
|
//Cerco tramite etichetta ean 128 (che può indicarmi un articolo o una UL)
|
||||||
|
this.executeEtichettaEan128(barcodeScanDTO, onComplete);
|
||||||
|
|
||||||
|
} else if(UtilityBarcode.isEtichettaArt(barcodeScanDTO)){
|
||||||
|
this.searchArtInt(barcodeScanDTO.getStringValue(), onComplete);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
onComplete.run();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void executeEtichettaEan128(BarcodeScanDTO barcodeScanDTO, Runnable onComplete) {
|
||||||
|
mBarcodeRESTConsumer.decodeEan128(barcodeScanDTO, ean128Model -> {
|
||||||
|
|
||||||
|
String barcodeProd = null;
|
||||||
|
|
||||||
|
if (!UtilityString.isNullOrEmpty(ean128Model.Sscc)) barcodeProd = ean128Model.Sscc;
|
||||||
|
if (!UtilityString.isNullOrEmpty(ean128Model.Gtin)) barcodeProd = ean128Model.Gtin;
|
||||||
|
if (!UtilityString.isNullOrEmpty(ean128Model.Content))
|
||||||
|
barcodeProd = ean128Model.Content;
|
||||||
|
|
||||||
|
|
||||||
|
if (!UtilityString.isNullOrEmpty(barcodeProd)) {
|
||||||
|
|
||||||
|
if (barcodeProd.startsWith("0") || barcodeProd.startsWith("9")) {
|
||||||
|
barcodeProd = barcodeProd.substring(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
PickDataDTO pickDataDTO = PickDataDTO.fromEan128(ean128Model);
|
||||||
|
this.loadArticolo(barcodeProd, pickDataDTO, onComplete);
|
||||||
|
} else {
|
||||||
|
//EAN 128 non completo o comunque mancano i riferimenti al prodotto
|
||||||
|
onComplete.run();
|
||||||
|
}
|
||||||
|
}, this::sendError);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void loadArticolo(String barcodeProd, PickDataDTO pickData, Runnable onComplete) {
|
||||||
|
if (barcodeProd.length() == 14) {
|
||||||
|
barcodeProd = UtilityBarcode.convertITF14toEAN13(barcodeProd);
|
||||||
|
}
|
||||||
|
|
||||||
|
this.mArticoloRESTConsumer.getByBarcodeProd(barcodeProd, mtbAartList -> {
|
||||||
|
if(onComplete != null) onComplete.run();
|
||||||
|
|
||||||
|
if (mtbAartList != null && mtbAartList.size() > 0) {
|
||||||
|
this.dispatchArt(mtbAartList.get(0), pickData);
|
||||||
|
} else {
|
||||||
|
this.sendError(new NoResultFromBarcodeException());
|
||||||
|
}
|
||||||
|
|
||||||
|
}, this::sendError);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void searchArtFor(String codAlis, String queryText) {
|
||||||
|
this.sendOnLoadingStarted();
|
||||||
|
|
||||||
|
mRettificaGiacenzeRESTConsumer.searchArtForn(codAlis, queryText, listaArts -> {
|
||||||
|
this.sendOnLoadingEnded();
|
||||||
|
|
||||||
|
List<MtbAart> mtbAarts = Stream.of(listaArts).map(x -> (MtbAart) x).toList();
|
||||||
|
dispatchArts(mtbAarts);
|
||||||
|
}, this::sendError);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void searchArtInt(String queryText, Runnable onComplete) {
|
||||||
|
this.sendOnLoadingStarted();
|
||||||
|
|
||||||
|
mRettificaGiacenzeRESTConsumer.searchArtInt(queryText, listaArts -> {
|
||||||
|
this.sendOnLoadingEnded();
|
||||||
|
|
||||||
|
dispatchArts(listaArts);
|
||||||
|
|
||||||
|
if(onComplete != null) onComplete.run();
|
||||||
|
}, this::sendError);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void dispatchArts(List<MtbAart> artsList) {
|
||||||
|
if (artsList == null || artsList.size() == 0) {
|
||||||
|
this.sendError(new NoArtsFoundException());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (artsList.size() == 1) {
|
||||||
|
dispatchArt(artsList.get(0), null);
|
||||||
|
} else {
|
||||||
|
this.sendOnArtListLoaded(new ArrayList<>(artsList));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void dispatchArt(MtbAart mtbAart, PickDataDTO pickDataDTO) {
|
||||||
|
PickingObjectDTO pickingObjectDTO = new PickingObjectDTO()
|
||||||
|
.setMtbAart(mtbAart)
|
||||||
|
.setTempPickData(pickDataDTO);
|
||||||
|
|
||||||
|
BigDecimal numCnfDaPrelevare = null;
|
||||||
|
BigDecimal qtaColDaPrelevare = null;
|
||||||
|
BigDecimal qtaCnfDaPrelevare = null;
|
||||||
|
|
||||||
|
BigDecimal initialNumCnf = null;
|
||||||
|
BigDecimal initialQtaCnf = null;
|
||||||
|
BigDecimal initialQtaTot = null;
|
||||||
|
|
||||||
|
String partitaMag = null;
|
||||||
|
Date dataScad = null;
|
||||||
|
|
||||||
|
boolean canPartitaMagBeChanged = true;
|
||||||
|
|
||||||
|
if (pickingObjectDTO.getTempPickData() != null && pickingObjectDTO.getTempPickData().getManualPickDTO() != null) {
|
||||||
|
//Oppure le info del barcode scansionato
|
||||||
|
PickDataDTO.ManualPickDTO manualPickDTO = pickingObjectDTO.getTempPickData().getManualPickDTO();
|
||||||
|
|
||||||
|
qtaColDaPrelevare = manualPickDTO.getQtaTot();
|
||||||
|
numCnfDaPrelevare = manualPickDTO.getNumCnf();
|
||||||
|
|
||||||
|
if (mtbAart.isFlagQtaCnfFissaBoolean()) {
|
||||||
|
qtaCnfDaPrelevare = mtbAart.getQtaCnf();
|
||||||
|
} else if (qtaColDaPrelevare != null && numCnfDaPrelevare != null) {
|
||||||
|
qtaCnfDaPrelevare = UtilityBigDecimal.divide(qtaColDaPrelevare, numCnfDaPrelevare);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (qtaColDaPrelevare != null && numCnfDaPrelevare == null) {
|
||||||
|
numCnfDaPrelevare = UtilityBigDecimal.divideToInteger(qtaColDaPrelevare, mtbAart.getQtaCnf());
|
||||||
|
qtaCnfDaPrelevare = UtilityBigDecimal.divide(qtaColDaPrelevare, numCnfDaPrelevare);
|
||||||
|
} else if (numCnfDaPrelevare != null && qtaColDaPrelevare == null) {
|
||||||
|
qtaCnfDaPrelevare = mtbAart.getQtaCnf();
|
||||||
|
qtaColDaPrelevare = UtilityBigDecimal.multiply(numCnfDaPrelevare, qtaCnfDaPrelevare);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (manualPickDTO.getMtbPartitaMag() != null) {
|
||||||
|
partitaMag = manualPickDTO.getMtbPartitaMag().getPartitaMag();
|
||||||
|
dataScad = manualPickDTO.getMtbPartitaMag().getDataScadD();
|
||||||
|
canPartitaMagBeChanged = false;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
initialNumCnf = BigDecimal.ONE;
|
||||||
|
initialQtaCnf = mtbAart.getQtaCnf();
|
||||||
|
initialQtaTot = UtilityBigDecimal.multiply(initialNumCnf, initialQtaCnf);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (numCnfDaPrelevare == null && qtaColDaPrelevare == null && initialNumCnf == null && initialQtaTot == null) {
|
||||||
|
initialNumCnf = BigDecimal.ONE;
|
||||||
|
initialQtaCnf = mtbAart.getQtaCnf();
|
||||||
|
initialQtaTot = UtilityBigDecimal.multiply(initialNumCnf, initialQtaCnf);
|
||||||
|
}
|
||||||
|
|
||||||
|
this.sendOnItemDispatched(
|
||||||
|
pickingObjectDTO,
|
||||||
|
pickingObjectDTO.getMtbAart(),
|
||||||
|
initialNumCnf,
|
||||||
|
initialQtaCnf,
|
||||||
|
initialQtaTot,
|
||||||
|
qtaColDaPrelevare,
|
||||||
|
numCnfDaPrelevare,
|
||||||
|
qtaCnfDaPrelevare,
|
||||||
|
partitaMag,
|
||||||
|
dataScad,
|
||||||
|
false,
|
||||||
|
canPartitaMagBeChanged,
|
||||||
|
true,
|
||||||
|
(pickedQuantityDTO, shouldCloseLU) -> {
|
||||||
|
this.saveNewRow(pickingObjectDTO,
|
||||||
|
pickedQuantityDTO.getNumCnf(),
|
||||||
|
pickedQuantityDTO.getQtaCnf(),
|
||||||
|
pickedQuantityDTO.getQtaTot(),
|
||||||
|
pickedQuantityDTO.getPartitaMag(),
|
||||||
|
pickedQuantityDTO.getDataScad(),
|
||||||
|
shouldCloseLU);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void saveNewRow(PickingObjectDTO pickingObjectDTO, BigDecimal numCnf, BigDecimal qtaCnf, BigDecimal qtaTot, String partitaMag, Date dataScad, boolean shouldCloseLU) {
|
||||||
|
this.sendOnLoadingStarted();
|
||||||
|
|
||||||
|
final MtbColr mtbColr = new MtbColr()
|
||||||
|
.setCodMart(pickingObjectDTO.getMtbAart().getCodMart())
|
||||||
|
.setPartitaMag(partitaMag)
|
||||||
|
.setDataScadPartita(dataScad)
|
||||||
|
.setDescrizione(pickingObjectDTO.getMtbAart().getDescrizioneEstesa())
|
||||||
|
.setDatetimeRow(UtilityDate.getDateInstance())
|
||||||
|
.setCausale(MtbColr.Causale.RETTIFICA)
|
||||||
|
.setUtente(mCurrentUser);
|
||||||
|
|
||||||
|
mtbColr.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE);
|
||||||
|
|
||||||
|
if (!mIsCreatedLU) {
|
||||||
|
mtbColr
|
||||||
|
.setDataCollo(mCurrentMtbColt.getDataColloS())
|
||||||
|
.setNumCollo(mCurrentMtbColt.getNumCollo())
|
||||||
|
.setGestione(mCurrentMtbColt.getGestione())
|
||||||
|
.setSerCollo(mCurrentMtbColt.getSerCollo());
|
||||||
|
|
||||||
|
|
||||||
|
mColliMagazzinoRESTConsumer.creaRettificaCollo(mtbColr,
|
||||||
|
numCnf,
|
||||||
|
qtaTot,
|
||||||
|
() -> {
|
||||||
|
mtbColr
|
||||||
|
.setUntMis(pickingObjectDTO.getMtbAart().getUntMis())
|
||||||
|
.setMtbAart(pickingObjectDTO.getMtbAart());
|
||||||
|
|
||||||
|
mCurrentMtbColt.getMtbColr().add(mtbColr);
|
||||||
|
|
||||||
|
this.sendOnRowSaved();
|
||||||
|
this.sendOnLoadingEnded();
|
||||||
|
|
||||||
|
if (shouldCloseLU) closeLU(false);
|
||||||
|
}, this::sendError);
|
||||||
|
} else {
|
||||||
|
mtbColr
|
||||||
|
.setQtaCol(qtaTot)
|
||||||
|
.setQtaCnf(qtaCnf)
|
||||||
|
.setNumCnf(numCnf);
|
||||||
|
|
||||||
|
MtbColt cloneMtbColt = (MtbColt) mCurrentMtbColt.clone();
|
||||||
|
cloneMtbColt.setOperation(CommonModelConsts.OPERATION.NO_OP);
|
||||||
|
|
||||||
|
cloneMtbColt.setMtbColr(new ObservableArrayList<>());
|
||||||
|
|
||||||
|
cloneMtbColt.getMtbColr().add(mtbColr);
|
||||||
|
|
||||||
|
mColliMagazzinoRESTConsumer.saveCollo(cloneMtbColt, value -> {
|
||||||
|
mtbColr
|
||||||
|
.setDataCollo(value.getDataColloS())
|
||||||
|
.setNumCollo(value.getNumCollo())
|
||||||
|
.setGestione(value.getGestione())
|
||||||
|
.setSerCollo(value.getSerCollo())
|
||||||
|
.setRiga(value.getMtbColr().get(0).getRiga())
|
||||||
|
.setUntMis(pickingObjectDTO.getMtbAart().getUntMis())
|
||||||
|
.setMtbAart(pickingObjectDTO.getMtbAart());
|
||||||
|
|
||||||
|
mCurrentMtbColt.getMtbColr().add(mtbColr);
|
||||||
|
|
||||||
|
this.sendOnRowSaved();
|
||||||
|
this.sendOnLoadingEnded();
|
||||||
|
|
||||||
|
if (shouldCloseLU) closeLU(false);
|
||||||
|
}, this::sendError);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void closeLU(boolean saveCausale) {
|
||||||
|
if (mCurrentMtbColt == null) return;
|
||||||
|
|
||||||
|
this.sendOnLoadingStarted();
|
||||||
|
|
||||||
|
this.mColliMagazzinoRESTConsumer.canLUBeDeleted(mCurrentMtbColt, canBeDeleted -> {
|
||||||
|
|
||||||
|
if (canBeDeleted) {
|
||||||
|
deleteLU(() -> {
|
||||||
|
this.sendLUClosed();
|
||||||
|
this.sendOnLoadingEnded();
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
|
||||||
|
Runnable saveAction = () -> {
|
||||||
|
this.mColliMagazzinoRESTConsumer.updateDataFine(
|
||||||
|
mCurrentMtbColt, () -> {
|
||||||
|
this.sendLUPositionChangeRequest((shouldChangePosition, mtbDepoPosizione) -> {
|
||||||
|
|
||||||
|
if(shouldChangePosition) {
|
||||||
|
this.savePosizione(mtbDepoPosizione, () -> {
|
||||||
|
postSaveBehaviour();
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
postSaveBehaviour();
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
}, this::sendError);
|
||||||
|
};
|
||||||
|
|
||||||
|
if (!UtilityString.isNullOrEmpty(mDefaultCausale) && saveCausale) {
|
||||||
|
this.saveCausaleRettificaGiacenze(saveAction);
|
||||||
|
} else {
|
||||||
|
saveAction.run();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}, this::sendError);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
private void saveCausaleRettificaGiacenze(Runnable onComplete) {
|
||||||
|
final MtbCols mtbCols = new MtbCols()
|
||||||
|
.setCausale(this.mDefaultCausale);
|
||||||
|
mtbCols.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE);
|
||||||
|
|
||||||
|
MtbColt cloneMtbColt = (MtbColt) mCurrentMtbColt.clone();
|
||||||
|
cloneMtbColt.setOperation(CommonModelConsts.OPERATION.NO_OP);
|
||||||
|
cloneMtbColt.setMtbColr(null);
|
||||||
|
|
||||||
|
cloneMtbColt.setMtbCols(new ArrayList<>());
|
||||||
|
cloneMtbColt.getMtbCols().add(mtbCols);
|
||||||
|
|
||||||
|
this.mColliMagazzinoRESTConsumer.saveCollo(cloneMtbColt, mtbColt -> onComplete.run(), this::sendError);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void savePosizione(MtbDepoPosizione mtbDepoPosizione, Runnable onComplete) {
|
||||||
|
MtbColt cloneMtbColt = (MtbColt) mCurrentMtbColt.clone();
|
||||||
|
cloneMtbColt.setOperation(CommonModelConsts.OPERATION.NO_OP);
|
||||||
|
cloneMtbColt.setMtbColr(null);
|
||||||
|
cloneMtbColt.setPosizione(mtbDepoPosizione != null ? mtbDepoPosizione.getPosizione() : CommonModelConsts.ENTITY_NULL_STRING);
|
||||||
|
|
||||||
|
this.mColliMagazzinoRESTConsumer.saveCollo(cloneMtbColt, mtbColt -> onComplete.run(), this::sendError);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void postSaveBehaviour() {
|
||||||
|
if(!mCurrentMtbColt.getDisablePrint()) {
|
||||||
|
printLU(() -> {
|
||||||
|
this.mCurrentMtbColt = null;
|
||||||
|
this.sendLUClosed();
|
||||||
|
this.sendOnLoadingEnded();
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
this.mCurrentMtbColt = null;
|
||||||
|
this.sendLUClosed();
|
||||||
|
this.sendOnLoadingEnded();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void deleteLU(Runnable onComplete) {
|
||||||
|
mColliMagazzinoRESTConsumer.deleteCollo(mCurrentMtbColt, () -> {
|
||||||
|
this.mCurrentMtbColt = null;
|
||||||
|
|
||||||
|
if (onComplete != null) onComplete.run();
|
||||||
|
}, this::sendError);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void printLU(Runnable onComplete) {
|
||||||
|
this.sendLUPrintRequest(shouldPrint -> {
|
||||||
|
|
||||||
|
if(!shouldPrint) {
|
||||||
|
onComplete.run();
|
||||||
|
} else {
|
||||||
|
this.mPrinterRESTConsumer.getAvailablePrinters(this.mCurrentCodMdep, printerList -> {
|
||||||
|
|
||||||
|
if (printerList == null || printerList.size() == 0) {
|
||||||
|
this.sendError(new NoPrintersFoundException());
|
||||||
|
onComplete.run();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
String reportName = ReportManager.getReportNameLUFromGestione(mCurrentMtbColt.getGestioneEnum());
|
||||||
|
|
||||||
|
this.mPrinterRESTConsumer.printCollo(printerList.get(0), mCurrentMtbColt, 1, reportName, () -> {
|
||||||
|
this.sendLUSuccessfullyPrinted();
|
||||||
|
onComplete.run();
|
||||||
|
}, ex -> this.sendLUPrintError(ex, onComplete));
|
||||||
|
|
||||||
|
}, this::sendError);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public void dispatchRowEdit(MtbColr mtbColrToUpdate) {
|
||||||
|
|
||||||
|
final PickingObjectDTO pickingObjectDTO = new PickingObjectDTO()
|
||||||
|
.setMtbAart(mtbColrToUpdate.getMtbAart());
|
||||||
|
|
||||||
|
this.sendOnItemDispatched(
|
||||||
|
pickingObjectDTO,
|
||||||
|
pickingObjectDTO.getMtbAart(),
|
||||||
|
mtbColrToUpdate.getNumCnf(),
|
||||||
|
mtbColrToUpdate.getQtaCnf(),
|
||||||
|
mtbColrToUpdate.getQtaCol(),
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
mtbColrToUpdate.getPartitaMag(),
|
||||||
|
mtbColrToUpdate.getDataScadPartitaD(),
|
||||||
|
false,
|
||||||
|
false,
|
||||||
|
true,
|
||||||
|
(pickedQuantityDTO, shouldCloseLU) -> {
|
||||||
|
|
||||||
|
this.saveEditedRow(mtbColrToUpdate,
|
||||||
|
pickedQuantityDTO.getNumCnf(),
|
||||||
|
pickedQuantityDTO.getQtaCnf(),
|
||||||
|
pickedQuantityDTO.getQtaTot(),
|
||||||
|
pickedQuantityDTO.getPartitaMag(),
|
||||||
|
pickedQuantityDTO.getDataScad(),
|
||||||
|
shouldCloseLU);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
private void saveEditedRow(MtbColr mtbColrToUpdate, BigDecimal numCnf, BigDecimal qtaCnf, BigDecimal qtaTot, String partitaMag, Date dataScad, boolean shouldCloseLU) {
|
||||||
|
|
||||||
|
this.sendOnLoadingStarted();
|
||||||
|
|
||||||
|
if(!mIsCreatedLU) {
|
||||||
|
|
||||||
|
this.mColliMagazzinoRESTConsumer.creaRettificaCollo(
|
||||||
|
mtbColrToUpdate,
|
||||||
|
numCnf,
|
||||||
|
qtaTot,
|
||||||
|
() -> {
|
||||||
|
mtbColrToUpdate
|
||||||
|
.setQtaCol(qtaTot)
|
||||||
|
.setQtaCnf(qtaCnf)
|
||||||
|
.setNumCnf(numCnf)
|
||||||
|
.setOperation(CommonModelConsts.OPERATION.NO_OP);
|
||||||
|
|
||||||
|
this.sendOnRowSaved();
|
||||||
|
},
|
||||||
|
this::sendError
|
||||||
|
);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
MtbColt mtbColt = new MtbColt()
|
||||||
|
.setNumCollo(mtbColrToUpdate.getNumCollo())
|
||||||
|
.setDataCollo(mtbColrToUpdate.getDataColloS())
|
||||||
|
.setSerCollo(mtbColrToUpdate.getSerCollo())
|
||||||
|
.setGestione(mtbColrToUpdate.getGestione())
|
||||||
|
.setMtbColr(new ObservableArrayList<>());
|
||||||
|
mtbColt.setOperation(CommonModelConsts.OPERATION.NO_OP);
|
||||||
|
|
||||||
|
final MtbColr mtbColr = (MtbColr) mtbColrToUpdate.clone();
|
||||||
|
mtbColr.setOperation(CommonModelConsts.OPERATION.UPDATE);
|
||||||
|
mtbColr
|
||||||
|
.setNumCnf(numCnf)
|
||||||
|
.setQtaCnf(qtaCnf)
|
||||||
|
.setQtaCol(qtaTot)
|
||||||
|
.setPartitaMag(partitaMag)
|
||||||
|
.setDataScadPartita(dataScad)
|
||||||
|
.setUtente(SettingsManager.i().user.fullname)
|
||||||
|
.setCausale(MtbColr.Causale.RETTIFICA)
|
||||||
|
.setDatetimeRow(UtilityDate.getDateInstance());
|
||||||
|
|
||||||
|
mtbColt.getMtbColr().add(mtbColr);
|
||||||
|
|
||||||
|
this.mColliMagazzinoRESTConsumer.saveCollo(mtbColt, (value) -> {
|
||||||
|
|
||||||
|
mtbColr.setNumCnf(numCnf)
|
||||||
|
.setQtaCnf(qtaCnf)
|
||||||
|
.setQtaCol(qtaTot);
|
||||||
|
|
||||||
|
this.mCurrentMtbColt.getMtbColr().remove(mtbColrToUpdate);
|
||||||
|
this.mCurrentMtbColt.getMtbColr().add(mtbColr);
|
||||||
|
|
||||||
|
this.sendOnRowSaved();
|
||||||
|
this.sendOnLoadingEnded();
|
||||||
|
|
||||||
|
}, this::sendError);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void deleteRow(MtbColr mtbColrToDelete) {
|
||||||
|
this.sendMtbColrDeleteRequest(shouldDelete -> {
|
||||||
|
if (shouldDelete) {
|
||||||
|
this.sendOnLoadingStarted();
|
||||||
|
|
||||||
|
if(mIsCreatedLU) {
|
||||||
|
MtbColt mtbColt = new MtbColt()
|
||||||
|
.setNumCollo(mtbColrToDelete.getNumCollo())
|
||||||
|
.setDataCollo(mtbColrToDelete.getDataColloS())
|
||||||
|
.setSerCollo(mtbColrToDelete.getSerCollo())
|
||||||
|
.setGestione(mtbColrToDelete.getGestione())
|
||||||
|
.setMtbColr(new ObservableArrayList<>());
|
||||||
|
mtbColt.setOperation(CommonModelConsts.OPERATION.NO_OP);
|
||||||
|
|
||||||
|
MtbColr mtbColr = (MtbColr) mtbColrToDelete.clone();
|
||||||
|
|
||||||
|
mtbColr.setOperation(CommonModelConsts.OPERATION.DELETE);
|
||||||
|
mtbColt.getMtbColr().add(mtbColr);
|
||||||
|
|
||||||
|
this.mColliMagazzinoRESTConsumer.saveCollo(mtbColt, (value) -> {
|
||||||
|
this.mCurrentMtbColt.getMtbColr().remove(mtbColrToDelete);
|
||||||
|
|
||||||
|
this.sendOnRowSaved();
|
||||||
|
this.sendOnLoadingEnded();
|
||||||
|
|
||||||
|
}, this::sendError);
|
||||||
|
} else {
|
||||||
|
this.mColliMagazzinoRESTConsumer.creaRettificaCollo(
|
||||||
|
mtbColrToDelete,
|
||||||
|
BigDecimal.ZERO,
|
||||||
|
BigDecimal.ZERO,
|
||||||
|
() -> {
|
||||||
|
this.mCurrentMtbColt.getMtbColr().remove(mtbColrToDelete);
|
||||||
|
this.sendOnRowSaved();
|
||||||
|
},
|
||||||
|
this::sendError
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
private void sendOnLoadingStarted() {
|
||||||
|
if (this.mListener != null) mListener.onLoadingStarted();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void sendOnLoadingEnded() {
|
||||||
|
if (this.mListener != null) mListener.onLoadingEnded();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void sendOnFornitoriListLoaded(ArrayList<FornitoreDTO> fornitoriList) {
|
||||||
|
if (this.mListener != null) mListener.onFornitoriLoaded(fornitoriList);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void sendOnArtListLoaded(ArrayList<MtbAart> artList) {
|
||||||
|
if (this.mListener != null) mListener.onArtListLoaded(artList);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void sendOnLUOpenRequest(RunnableArgss<MtbColt, Boolean> onComplete) {
|
||||||
|
if (this.mListener != null) mListener.onLUOpenRequest(onComplete);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void sendError(Exception ex) {
|
||||||
|
if (this.mListener != null) mListener.onError(ex);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void sendLUOpened(MtbColt mtbColt) {
|
||||||
|
if (this.mListener != null) mListener.onLUOpened(mtbColt);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void sendLUClosed() {
|
||||||
|
if (this.mListener != null) mListener.onLUClosed();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void sendMtbColrDeleteRequest(RunnableArgs<Boolean> onComplete) {
|
||||||
|
if (this.mListener != null) mListener.onMtbColrDeleteRequest(onComplete);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void sendOnItemDispatched(PickingObjectDTO pickingObjectDTO,
|
||||||
|
MtbAart mtbAart,
|
||||||
|
BigDecimal initialNumCnf,
|
||||||
|
BigDecimal initialQtaCnf,
|
||||||
|
BigDecimal initialQtaTot,
|
||||||
|
BigDecimal totalQtaToBeTaken,
|
||||||
|
BigDecimal totalNumCnfToBeTaken,
|
||||||
|
BigDecimal qtaCnfToBeTaken,
|
||||||
|
String partitaMag,
|
||||||
|
Date dataScad,
|
||||||
|
boolean canOverflowOrderQuantity,
|
||||||
|
boolean canPartitaMagBeChanged,
|
||||||
|
boolean canLUBeClosed,
|
||||||
|
RunnableArgss<PickedQuantityDTO, Boolean> onComplete) {
|
||||||
|
if (this.mListener != null) mListener.onItemDispatched(pickingObjectDTO,
|
||||||
|
mtbAart,
|
||||||
|
initialNumCnf,
|
||||||
|
initialQtaCnf,
|
||||||
|
initialQtaTot,
|
||||||
|
totalQtaToBeTaken,
|
||||||
|
totalNumCnfToBeTaken,
|
||||||
|
qtaCnfToBeTaken,
|
||||||
|
partitaMag,
|
||||||
|
dataScad,
|
||||||
|
canOverflowOrderQuantity,
|
||||||
|
canPartitaMagBeChanged,
|
||||||
|
canLUBeClosed,
|
||||||
|
onComplete);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void sendOnRowSaved() {
|
||||||
|
if (this.mListener != null) mListener.onRowSaved();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void sendLUSuccessfullyPrinted() {
|
||||||
|
if (this.mListener != null) mListener.onLUSuccessullyPrinted();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void sendLUPrintRequest(RunnableArgs<Boolean> onComplete) {
|
||||||
|
if (this.mListener != null) mListener.onLUPrintRequest(onComplete);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void sendLUPrintError(Exception ex, Runnable onComplete) {
|
||||||
|
if (this.mListener != null) mListener.onLUPrintError(ex, onComplete);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void sendLUPositionChangeRequest(RunnableArgss<Boolean, MtbDepoPosizione> onComplete) {
|
||||||
|
if (this.mListener != null) mListener.onLUPositionChangeRequest(onComplete);
|
||||||
|
}
|
||||||
|
|
||||||
|
public interface Listener extends ILUPrintListener, ILUPositionListener {
|
||||||
|
void onLoadingStarted();
|
||||||
|
|
||||||
|
void onLoadingEnded();
|
||||||
|
|
||||||
|
void onFornitoriLoaded(ArrayList<FornitoreDTO> fornitoriList);
|
||||||
|
|
||||||
|
void onArtListLoaded(ArrayList<MtbAart> artList);
|
||||||
|
|
||||||
|
void onLUOpenRequest(RunnableArgss<MtbColt, Boolean> onComplete);
|
||||||
|
|
||||||
|
void onLUOpened(MtbColt mtbColt);
|
||||||
|
|
||||||
|
void onLUClosed();
|
||||||
|
|
||||||
|
void onMtbColrDeleteRequest(RunnableArgs<Boolean> onComplete);
|
||||||
|
|
||||||
|
void onError(Exception ex);
|
||||||
|
|
||||||
|
void onItemDispatched(PickingObjectDTO pickingObjectDTO,
|
||||||
|
MtbAart mtbAart,
|
||||||
|
BigDecimal initialNumCnf,
|
||||||
|
BigDecimal initialQtaCnf,
|
||||||
|
BigDecimal initialQtaTot,
|
||||||
|
BigDecimal totalQtaToBeTaken,
|
||||||
|
BigDecimal totalNumCnfToBeTaken,
|
||||||
|
BigDecimal qtaCnfToBeTaken,
|
||||||
|
String partitaMag,
|
||||||
|
Date dataScad,
|
||||||
|
boolean canOverflowOrderQuantity,
|
||||||
|
boolean canPartitaMagBeChanged,
|
||||||
|
boolean canLUBeClosed,
|
||||||
|
RunnableArgss<PickedQuantityDTO, Boolean> onComplete);
|
||||||
|
|
||||||
|
void onRowSaved();
|
||||||
|
}
|
||||||
|
|
||||||
|
public MtbColt getCurrentMtbColt() {
|
||||||
|
return mCurrentMtbColt;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -1,7 +1,6 @@
|
|||||||
package it.integry.integrywmsnative.gest.rettifica_giacenze.core;
|
package it.integry.integrywmsnative.gest.rettifica_giacenze.core;
|
||||||
|
|
||||||
import android.app.Dialog;
|
import android.app.Dialog;
|
||||||
import android.app.ProgressDialog;
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
|
||||||
import com.google.gson.reflect.TypeToken;
|
import com.google.gson.reflect.TypeToken;
|
||||||
@ -28,28 +27,6 @@ public class RettificaGiacenzeHelper {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void loadListaFornitori(RunnableArgs<ArrayList<FornitoreDTO>> onComplete) {
|
|
||||||
final Dialog progress = UtilityProgress.createDefaultProgressDialog(mContext);
|
|
||||||
//progress.show();
|
|
||||||
|
|
||||||
String sql = "SELECT cod_alis as 'codAlis', descrizione FROM atb_list WHERE flag_attivo = 'S'";
|
|
||||||
|
|
||||||
Type typeOfObjectsList = new TypeToken<ArrayList<FornitoreDTO>>() {}.getType();
|
|
||||||
SystemRESTConsumer.processSql(sql, typeOfObjectsList, new ISimpleOperationCallback<ArrayList<FornitoreDTO>>() {
|
|
||||||
@Override
|
|
||||||
public void onSuccess(ArrayList<FornitoreDTO> value) {
|
|
||||||
progress.dismiss();
|
|
||||||
|
|
||||||
if(onComplete != null) onComplete.run(value);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onFailed(Exception ex) {
|
|
||||||
UtilityExceptions.defaultException(mContext, ex, progress);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
public void searchArtForn(String codAlis, String codArtForOrDescr, RunnableArgs<ArrayList<MtbAartWithFornitore>> onComplete, RunnableArgs<Exception> onFailed) {
|
public void searchArtForn(String codAlis, String codArtForOrDescr, RunnableArgs<ArrayList<MtbAartWithFornitore>> onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
|
|
||||||
String sql = "SELECT mtb_aart.*, mtb_lisa.cod_art_for from mtb_lisa, mtb_aart, mtb_part " +
|
String sql = "SELECT mtb_aart.*, mtb_lisa.cod_art_for from mtb_lisa, mtb_aart, mtb_part " +
|
||||||
@ -62,7 +39,7 @@ public class RettificaGiacenzeHelper {
|
|||||||
|
|
||||||
|
|
||||||
Type typeOfObjectsList = new TypeToken<ArrayList<MtbAartWithFornitore>>() {}.getType();
|
Type typeOfObjectsList = new TypeToken<ArrayList<MtbAartWithFornitore>>() {}.getType();
|
||||||
SystemRESTConsumer.processSql(sql, typeOfObjectsList, new ISimpleOperationCallback<ArrayList<MtbAartWithFornitore>>() {
|
SystemRESTConsumer.processSqlStatic(sql, typeOfObjectsList, new ISimpleOperationCallback<ArrayList<MtbAartWithFornitore>>() {
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(ArrayList<MtbAartWithFornitore> value) {
|
public void onSuccess(ArrayList<MtbAartWithFornitore> value) {
|
||||||
if(onComplete != null) onComplete.run(value);
|
if(onComplete != null) onComplete.run(value);
|
||||||
@ -91,7 +68,7 @@ public class RettificaGiacenzeHelper {
|
|||||||
"OR mtb_aart.descrizione_estesa LIKE '%" + codMartOrBarcodeOrDescr + "%'";
|
"OR mtb_aart.descrizione_estesa LIKE '%" + codMartOrBarcodeOrDescr + "%'";
|
||||||
|
|
||||||
Type typeOfObjectsList = new TypeToken<ArrayList<MtbAart>>() {}.getType();
|
Type typeOfObjectsList = new TypeToken<ArrayList<MtbAart>>() {}.getType();
|
||||||
SystemRESTConsumer.processSql(sql, typeOfObjectsList, new ISimpleOperationCallback<ArrayList<MtbAart>>() {
|
SystemRESTConsumer.processSqlStatic(sql, typeOfObjectsList, new ISimpleOperationCallback<ArrayList<MtbAart>>() {
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(ArrayList<MtbAart> value) {
|
public void onSuccess(ArrayList<MtbAart> value) {
|
||||||
if(onComplete != null) onComplete.run(value);
|
if(onComplete != null) onComplete.run(value);
|
||||||
|
|||||||
@ -0,0 +1,101 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.rettifica_giacenze.core;
|
||||||
|
|
||||||
|
import com.google.gson.reflect.TypeToken;
|
||||||
|
|
||||||
|
import java.lang.reflect.Type;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
import javax.inject.Singleton;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
|
import it.integry.integrywmsnative.core.model.MtbAart;
|
||||||
|
import it.integry.integrywmsnative.core.model.MtbAartWithFornitore;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.ISimpleOperationCallback;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers._BaseRESTConsumer;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityDB;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
||||||
|
import it.integry.integrywmsnative.gest.rettifica_giacenze.dto.FornitoreDTO;
|
||||||
|
|
||||||
|
@Singleton
|
||||||
|
public class RettificaGiacenzeRESTConsumer extends _BaseRESTConsumer {
|
||||||
|
|
||||||
|
private final SystemRESTConsumer mSystemRestConsumer;
|
||||||
|
|
||||||
|
public RettificaGiacenzeRESTConsumer(SystemRESTConsumer systemRestConsumer) {
|
||||||
|
mSystemRestConsumer = systemRestConsumer;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void loadListaFornitori(RunnableArgs<ArrayList<FornitoreDTO>> onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
|
String sql = "SELECT cod_alis as 'codAlis', descrizione FROM atb_list WHERE flag_attivo = 'S'";
|
||||||
|
|
||||||
|
Type typeOfObjectsList = new TypeToken<ArrayList<FornitoreDTO>>() {}.getType();
|
||||||
|
|
||||||
|
mSystemRestConsumer.processSql(sql, typeOfObjectsList, new ISimpleOperationCallback<ArrayList<FornitoreDTO>>() {
|
||||||
|
@Override
|
||||||
|
public void onSuccess(ArrayList<FornitoreDTO> value) {
|
||||||
|
if(onComplete != null) onComplete.run(value);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onFailed(Exception ex) {
|
||||||
|
onFailed.run(ex);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void searchArtForn(String codAlis, String codArtForOrDescr, RunnableArgs<ArrayList<MtbAartWithFornitore>> onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
|
String sql = "SELECT mtb_aart.*, mtb_lisa.cod_art_for from mtb_lisa, mtb_aart, mtb_part " +
|
||||||
|
" WHERE mtb_lisa.cod_alis = " + UtilityDB.valueToString(codAlis) +
|
||||||
|
" AND mtb_lisa.cod_mart = mtb_aart.cod_mart " +
|
||||||
|
" AND mtb_lisa.cod_mart = mtb_part.cod_mart " +
|
||||||
|
" AND mtb_part.cod_mdep = '01' " +
|
||||||
|
" AND (mtb_aart.descrizione_estesa LIKE '%" + codArtForOrDescr + "%' OR cod_art_for LIKE '%" + codArtForOrDescr + "%') " +
|
||||||
|
" ORDER BY ABS(mtb_part.qta_esistente) DESC, mtb_aart.descrizione_estesa";
|
||||||
|
|
||||||
|
|
||||||
|
Type typeOfObjectsList = new TypeToken<ArrayList<MtbAartWithFornitore>>() {}.getType();
|
||||||
|
mSystemRestConsumer.processSql(sql, typeOfObjectsList, new ISimpleOperationCallback<ArrayList<MtbAartWithFornitore>>() {
|
||||||
|
@Override
|
||||||
|
public void onSuccess(ArrayList<MtbAartWithFornitore> value) {
|
||||||
|
if(onComplete != null) onComplete.run(value);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onFailed(Exception ex) {
|
||||||
|
if(onFailed != null) onFailed.run(ex);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void searchArtInt(String codMartOrBarcodeOrDescr, RunnableArgs<ArrayList<MtbAart>> onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
|
String sql = "SELECT DISTINCT mtb_aart.* " +
|
||||||
|
"FROM mtb_aart " +
|
||||||
|
"LEFT OUTER JOIN mvw_barcode on mtb_aart.cod_mart = mvw_barcode.cod_mart " +
|
||||||
|
"WHERE CASE" +
|
||||||
|
" WHEN LEN(mvw_barcode.cod_barre) > 13 THEN mvw_barcode.cod_barre " +
|
||||||
|
" ELSE Replicate('0', 13 - len(mvw_barcode.cod_barre))+ mvw_barcode.cod_barre " +
|
||||||
|
"END LIKE '%' + CASE " +
|
||||||
|
" WHEN LEN('" + codMartOrBarcodeOrDescr + "') > 13 THEN '" + codMartOrBarcodeOrDescr + "' " +
|
||||||
|
" ELSE Replicate('0', 13 - len('" + codMartOrBarcodeOrDescr + "')) + '" + codMartOrBarcodeOrDescr + "'" +
|
||||||
|
" END " +
|
||||||
|
"OR mtb_aart.cod_mart = '" + codMartOrBarcodeOrDescr + "' " +
|
||||||
|
"OR mtb_aart.descrizione_estesa LIKE '%" + codMartOrBarcodeOrDescr + "%'";
|
||||||
|
|
||||||
|
Type typeOfObjectsList = new TypeToken<ArrayList<MtbAart>>() {}.getType();
|
||||||
|
mSystemRestConsumer.processSql(sql, typeOfObjectsList, new ISimpleOperationCallback<ArrayList<MtbAart>>() {
|
||||||
|
@Override
|
||||||
|
public void onSuccess(ArrayList<MtbAart> value) {
|
||||||
|
if(onComplete != null) onComplete.run(value);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onFailed(Exception ex) {
|
||||||
|
if(onFailed != null) onFailed.run(ex);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -1,16 +1,14 @@
|
|||||||
package it.integry.integrywmsnative.gest.rettifica_giacenze.core.adapter;
|
package it.integry.integrywmsnative.gest.rettifica_giacenze.core.adapter;
|
||||||
|
|
||||||
import android.content.Context;
|
|
||||||
import androidx.databinding.DataBindingUtil;
|
|
||||||
import androidx.databinding.ObservableArrayList;
|
|
||||||
import androidx.databinding.ObservableList;
|
|
||||||
import androidx.recyclerview.widget.RecyclerView;
|
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
|
||||||
|
import androidx.databinding.DataBindingUtil;
|
||||||
|
import androidx.databinding.ObservableArrayList;
|
||||||
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
|
||||||
import it.integry.integrywmsnative.R;
|
import it.integry.integrywmsnative.R;
|
||||||
import it.integry.integrywmsnative.core.interfaces.IRecyclerItemClicked;
|
import it.integry.integrywmsnative.core.expansion.view.ExtendedRecyclerView;
|
||||||
import it.integry.integrywmsnative.core.model.MtbColr;
|
import it.integry.integrywmsnative.core.model.MtbColr;
|
||||||
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityNumber;
|
import it.integry.integrywmsnative.core.utility.UtilityNumber;
|
||||||
@ -18,13 +16,13 @@ import it.integry.integrywmsnative.core.utility.UtilityResources;
|
|||||||
import it.integry.integrywmsnative.core.utility.UtilityString;
|
import it.integry.integrywmsnative.core.utility.UtilityString;
|
||||||
import it.integry.integrywmsnative.databinding.ListaRettificaGiacenzeModelBinding;
|
import it.integry.integrywmsnative.databinding.ListaRettificaGiacenzeModelBinding;
|
||||||
|
|
||||||
public class RettificaGiacenzeMainListAdapter extends RecyclerView.Adapter<RettificaGiacenzeMainListAdapter.ViewHolder> {
|
public class RettificaGiacenzeMainListAdapter extends ExtendedRecyclerView<MtbColr, RettificaGiacenzeMainListAdapter.ViewHolder> {
|
||||||
|
|
||||||
protected Context mContext;
|
private OnItemClickListener mOnItemClickListener;
|
||||||
protected ObservableArrayList<MtbColr> mDataset;
|
|
||||||
private View mEmptyView;
|
|
||||||
|
|
||||||
private IRecyclerItemClicked<MtbColr> mOnItemClickListener;
|
public RettificaGiacenzeMainListAdapter(ObservableArrayList<MtbColr> myDataset) {
|
||||||
|
super(myDataset);
|
||||||
|
}
|
||||||
|
|
||||||
public static class ViewHolder extends RecyclerView.ViewHolder {
|
public static class ViewHolder extends RecyclerView.ViewHolder {
|
||||||
protected ListaRettificaGiacenzeModelBinding mViewDataBinding;
|
protected ListaRettificaGiacenzeModelBinding mViewDataBinding;
|
||||||
@ -41,16 +39,6 @@ public class RettificaGiacenzeMainListAdapter extends RecyclerView.Adapter<Retti
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public RettificaGiacenzeMainListAdapter(Context context, ObservableArrayList<MtbColr> myDataset, IRecyclerItemClicked<MtbColr> onItemClickListener, View emptView) {
|
|
||||||
mContext = context;
|
|
||||||
mDataset = myDataset;
|
|
||||||
mEmptyView = emptView;
|
|
||||||
mOnItemClickListener = onItemClickListener;
|
|
||||||
|
|
||||||
myDataset.addOnListChangedCallback(onListChangedCallback);
|
|
||||||
|
|
||||||
checkIfEmpty();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public RettificaGiacenzeMainListAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
|
public RettificaGiacenzeMainListAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
|
||||||
@ -80,60 +68,21 @@ public class RettificaGiacenzeMainListAdapter extends RecyclerView.Adapter<Retti
|
|||||||
|
|
||||||
holder.mViewDataBinding.getRoot().setOnClickListener(x -> {
|
holder.mViewDataBinding.getRoot().setOnClickListener(x -> {
|
||||||
if(mOnItemClickListener != null) {
|
if(mOnItemClickListener != null) {
|
||||||
mOnItemClickListener.onItemClick(mtbColr, position);
|
mOnItemClickListener.onItemClick(holder.mViewDataBinding.getMtbColr());
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
holder.mViewDataBinding.executePendingBindings();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onViewRecycled(RettificaGiacenzeMainListAdapter.ViewHolder holder) {
|
public RettificaGiacenzeMainListAdapter setOnItemClickListener(OnItemClickListener onItemClickListener) {
|
||||||
super.onViewRecycled(holder);
|
this.mOnItemClickListener = onItemClickListener;
|
||||||
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
public interface OnItemClickListener {
|
||||||
public int getItemCount() {
|
void onItemClick(MtbColr item);
|
||||||
return mDataset.size();
|
|
||||||
}
|
|
||||||
|
|
||||||
private ObservableList.OnListChangedCallback onListChangedCallback = new ObservableList.OnListChangedCallback<ObservableList<MtbColr>>(){
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onChanged(ObservableList<MtbColr> sender) {
|
|
||||||
notifyDataSetChanged();
|
|
||||||
checkIfEmpty();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onItemRangeChanged(ObservableList<MtbColr> sender, int positionStart, int itemCount) {
|
|
||||||
notifyDataSetChanged();
|
|
||||||
checkIfEmpty();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onItemRangeInserted(ObservableList<MtbColr> sender, int positionStart, int itemCount) {
|
|
||||||
notifyDataSetChanged();
|
|
||||||
checkIfEmpty();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onItemRangeMoved(ObservableList<MtbColr> sender, int fromPosition, int toPosition, int itemCount) {
|
|
||||||
notifyDataSetChanged();
|
|
||||||
checkIfEmpty();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onItemRangeRemoved(ObservableList<MtbColr> sender, int positionStart, int itemCount) {
|
|
||||||
notifyDataSetChanged();
|
|
||||||
checkIfEmpty();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
private void checkIfEmpty() {
|
|
||||||
if (mEmptyView != null) {
|
|
||||||
final boolean emptyViewVisible = getItemCount() == 0;
|
|
||||||
mEmptyView.setVisibility(emptyViewVisible ? View.VISIBLE : View.GONE);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -3,23 +3,18 @@ package it.integry.integrywmsnative.gest.rettifica_giacenze.viewmodel;
|
|||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.app.Dialog;
|
import android.app.Dialog;
|
||||||
import android.content.res.Resources;
|
import android.content.res.Resources;
|
||||||
|
import android.text.SpannableString;
|
||||||
import androidx.databinding.ObservableArrayList;
|
import android.view.inputmethod.EditorInfo;
|
||||||
import androidx.databinding.ObservableField;
|
|
||||||
import androidx.annotation.NonNull;
|
|
||||||
|
|
||||||
import com.google.android.material.bottomsheet.BottomSheetBehavior;
|
|
||||||
import com.google.android.material.textfield.TextInputLayout;
|
|
||||||
|
|
||||||
import androidx.core.content.ContextCompat;
|
import androidx.core.content.ContextCompat;
|
||||||
|
import androidx.databinding.ObservableArrayList;
|
||||||
|
import androidx.databinding.ObservableField;
|
||||||
import androidx.recyclerview.widget.DividerItemDecoration;
|
import androidx.recyclerview.widget.DividerItemDecoration;
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||||
|
|
||||||
import android.text.SpannableString;
|
|
||||||
import android.view.View;
|
|
||||||
import android.view.inputmethod.EditorInfo;
|
|
||||||
|
|
||||||
import com.annimon.stream.Stream;
|
import com.annimon.stream.Stream;
|
||||||
|
import com.google.android.material.bottomsheet.BottomSheetBehavior;
|
||||||
|
import com.google.android.material.textfield.TextInputLayout;
|
||||||
import com.tfb.fbtoast.FBToast;
|
import com.tfb.fbtoast.FBToast;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
@ -27,14 +22,9 @@ import java.util.ArrayList;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
|
import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
|
||||||
|
import it.integry.barcode_base_android_library.model.BarcodeType;
|
||||||
import it.integry.integrywmsnative.R;
|
import it.integry.integrywmsnative.R;
|
||||||
import it.integry.integrywmsnative.core.rest.CommonRESTException;
|
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer;
|
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
|
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
|
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.ISimpleOperationCallback;
|
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer;
|
|
||||||
import it.integry.integrywmsnative.core.rest.model.Ean128Model;
|
|
||||||
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
|
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
|
||||||
import it.integry.integrywmsnative.core.di.BindableBoolean;
|
import it.integry.integrywmsnative.core.di.BindableBoolean;
|
||||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
@ -46,12 +36,18 @@ import it.integry.integrywmsnative.core.model.MtbColr;
|
|||||||
import it.integry.integrywmsnative.core.model.MtbCols;
|
import it.integry.integrywmsnative.core.model.MtbCols;
|
||||||
import it.integry.integrywmsnative.core.model.MtbColt;
|
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||||
import it.integry.integrywmsnative.core.report.ReportManager;
|
import it.integry.integrywmsnative.core.report.ReportManager;
|
||||||
|
import it.integry.integrywmsnative.core.rest.CommonRESTException;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.ISimpleOperationCallback;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer;
|
||||||
|
import it.integry.integrywmsnative.core.rest.model.Ean128Model;
|
||||||
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityBarcode;
|
import it.integry.integrywmsnative.core.utility.UtilityBarcode;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityLogger;
|
import it.integry.integrywmsnative.core.utility.UtilityLogger;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityNumber;
|
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityProgress;
|
import it.integry.integrywmsnative.core.utility.UtilityProgress;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityString;
|
import it.integry.integrywmsnative.core.utility.UtilityString;
|
||||||
import it.integry.integrywmsnative.databinding.FragmentMainRettificaGiacenzeBinding;
|
import it.integry.integrywmsnative.databinding.FragmentMainRettificaGiacenzeBinding;
|
||||||
@ -61,15 +57,13 @@ import it.integry.integrywmsnative.gest.rettifica_giacenze.core.adapter.Rettific
|
|||||||
import it.integry.integrywmsnative.gest.rettifica_giacenze.dto.FornitoreDTO;
|
import it.integry.integrywmsnative.gest.rettifica_giacenze.dto.FornitoreDTO;
|
||||||
import it.integry.integrywmsnative.view.dialogs.DialogCommon;
|
import it.integry.integrywmsnative.view.dialogs.DialogCommon;
|
||||||
import it.integry.integrywmsnative.view.dialogs.DialogConsts;
|
import it.integry.integrywmsnative.view.dialogs.DialogConsts;
|
||||||
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
|
|
||||||
import it.integry.integrywmsnative.view.dialogs.ask_position_of_lu.DialogAskPositionOfLU;
|
import it.integry.integrywmsnative.view.dialogs.ask_position_of_lu.DialogAskPositionOfLU;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
|
||||||
import it.integry.integrywmsnative.view.dialogs.choose_art_from_lista_arts.DialogChooseArtFromListaArts;
|
import it.integry.integrywmsnative.view.dialogs.choose_art_from_lista_arts.DialogChooseArtFromListaArts;
|
||||||
import it.integry.integrywmsnative.view.dialogs.input_quantity.DialogInputQuantity;
|
import it.integry.integrywmsnative.view.dialogs.input_quantity.DialogInputQuantity;
|
||||||
import it.integry.integrywmsnative.view.dialogs.input_quantity.QuantityDTO;
|
import it.integry.integrywmsnative.view.dialogs.input_quantity.QuantityDTO;
|
||||||
import it.integry.integrywmsnative.view.dialogs.scan_or_create_lu.DialogScanOrCreateLU;
|
import it.integry.integrywmsnative.view.dialogs.scan_or_create_lu.DialogScanOrCreateLU;
|
||||||
import it.integry.integrywmsnative.view.dialogs.yes_no.DialogYesNo;
|
import it.integry.integrywmsnative.view.dialogs.yes_no.DialogYesNo;
|
||||||
import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
|
|
||||||
import it.integry.barcode_base_android_library.model.BarcodeType;
|
|
||||||
|
|
||||||
public class RettificaGiacenzeViewModel implements IRecyclerItemClicked<MtbColr> {
|
public class RettificaGiacenzeViewModel implements IRecyclerItemClicked<MtbColr> {
|
||||||
|
|
||||||
@ -141,28 +135,28 @@ public class RettificaGiacenzeViewModel implements IRecyclerItemClicked<MtbColr>
|
|||||||
itemDecorator.setDrawable(ContextCompat.getDrawable(mContext, R.drawable.divider));
|
itemDecorator.setDrawable(ContextCompat.getDrawable(mContext, R.drawable.divider));
|
||||||
mBinding.rettificaGiacenzeMainList.addItemDecoration(itemDecorator);
|
mBinding.rettificaGiacenzeMainList.addItemDecoration(itemDecorator);
|
||||||
|
|
||||||
mAdapter = new RettificaGiacenzeMainListAdapter(mContext, mtbColt.get().getMtbColr(), this, mBinding.rettificaGiacenzeEmptyView);
|
// mAdapter = new RettificaGiacenzeMainListAdapter(mContext, mtbColt.get().getMtbColr(), this, mBinding.rettificaGiacenzeEmptyView);
|
||||||
mBinding.rettificaGiacenzeMainList.setAdapter(mAdapter);
|
// mBinding.rettificaGiacenzeMainList.setAdapter(mAdapter);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void initBottomSheetActions() {
|
private void initBottomSheetActions() {
|
||||||
mBinding.bg.setOnClickListener(v -> mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED));
|
// mBinding.bg.setOnClickListener(v -> mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED));
|
||||||
|
|
||||||
mBottomSheetBehavior = BottomSheetBehavior.from(mBinding.bottomSheetActions);
|
// mBottomSheetBehavior = BottomSheetBehavior.from(mBinding.bottomSheetActions);
|
||||||
|
|
||||||
mBottomSheetBehavior.setBottomSheetCallback(new BottomSheetBehavior.BottomSheetCallback() {
|
// mBottomSheetBehavior.setBottomSheetCallback(new BottomSheetBehavior.BottomSheetCallback() {
|
||||||
@Override
|
// @Override
|
||||||
public void onStateChanged(@NonNull View bottomSheet, int newState) {
|
// public void onStateChanged(@NonNull View bottomSheet, int newState) {
|
||||||
if (newState == BottomSheetBehavior.STATE_COLLAPSED)
|
// if (newState == BottomSheetBehavior.STATE_COLLAPSED)
|
||||||
mBinding.bg.setVisibility(View.GONE);
|
// mBinding.bg.setVisibility(View.GONE);
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
@Override
|
// @Override
|
||||||
public void onSlide(@NonNull View bottomSheet, float slideOffset) {
|
// public void onSlide(@NonNull View bottomSheet, float slideOffset) {
|
||||||
mBinding.bg.setVisibility(View.VISIBLE);
|
// mBinding.bg.setVisibility(View.VISIBLE);
|
||||||
mBinding.bg.setAlpha(slideOffset);
|
// mBinding.bg.setAlpha(slideOffset);
|
||||||
}
|
// }
|
||||||
});
|
// });
|
||||||
}
|
}
|
||||||
|
|
||||||
public RunnableArgs<BarcodeScanDTO> onScanSuccessfull = data -> {
|
public RunnableArgs<BarcodeScanDTO> onScanSuccessfull = data -> {
|
||||||
@ -438,7 +432,7 @@ public class RettificaGiacenzeViewModel implements IRecyclerItemClicked<MtbColr>
|
|||||||
.setGestione(mtbColt.get().getGestione())
|
.setGestione(mtbColt.get().getGestione())
|
||||||
.setSerCollo(mtbColt.get().getSerCollo());
|
.setSerCollo(mtbColt.get().getSerCollo());
|
||||||
|
|
||||||
ColliMagazzinoRESTConsumer.creaRettificaCollo(mtbColr,
|
ColliMagazzinoRESTConsumer.creaRettificaColloStatic(mtbColr,
|
||||||
quantityDTO.numCnf.getBigDecimal(),
|
quantityDTO.numCnf.getBigDecimal(),
|
||||||
quantityDTO.qtaTot.getBigDecimal(),
|
quantityDTO.qtaTot.getBigDecimal(),
|
||||||
() -> {
|
() -> {
|
||||||
@ -461,7 +455,7 @@ public class RettificaGiacenzeViewModel implements IRecyclerItemClicked<MtbColr>
|
|||||||
MtbColt cloneMtbColt = (MtbColt) mtbColt.get().clone();
|
MtbColt cloneMtbColt = (MtbColt) mtbColt.get().clone();
|
||||||
cloneMtbColt.setOperation(CommonModelConsts.OPERATION.NO_OP);
|
cloneMtbColt.setOperation(CommonModelConsts.OPERATION.NO_OP);
|
||||||
|
|
||||||
cloneMtbColt.setMtbColr(new ObservableArrayList());
|
cloneMtbColt.setMtbColr(new ObservableArrayList<>());
|
||||||
|
|
||||||
ColliMagazzinoRESTConsumer.saveColloStatic(cloneMtbColt, new ISimpleOperationCallback<MtbColt>() {
|
ColliMagazzinoRESTConsumer.saveColloStatic(cloneMtbColt, new ISimpleOperationCallback<MtbColt>() {
|
||||||
@Override
|
@Override
|
||||||
@ -500,13 +494,13 @@ public class RettificaGiacenzeViewModel implements IRecyclerItemClicked<MtbColr>
|
|||||||
|
|
||||||
MtbColr clickedItem = mtbColt.get().getMtbColr().get(position);
|
MtbColr clickedItem = mtbColt.get().getMtbColr().get(position);
|
||||||
|
|
||||||
mBinding.bottomSheetActionsTitle.setText(clickedItem.getDescrizione());
|
// mBinding.bottomSheetActionsTitle.setText(clickedItem.getDescrizione());
|
||||||
mBinding.bottomSheetActionsSubtitle.setText(clickedItem.getCodMart());
|
// mBinding.bottomSheetActionsSubtitle.setText(clickedItem.getCodMart());
|
||||||
|
//
|
||||||
mBinding.bottomSheetActionsEditBtn.setOnClickListener(v -> onItemEdit(item, position));
|
// mBinding.bottomSheetActionsEditBtn.setOnClickListener(v -> onItemEdit(item, position));
|
||||||
mBinding.bottomSheetActionsDeleteBtn.setOnClickListener(v -> onItemDelete(item));
|
// mBinding.bottomSheetActionsDeleteBtn.setOnClickListener(v -> onItemDelete(item));
|
||||||
|
//
|
||||||
mBinding.bottomSheetActionsQuantity.setText(UtilityNumber.decimalToString(clickedItem.getQtaCol()) + " " + clickedItem.getMtbAart().getUntMis());
|
// mBinding.bottomSheetActionsQuantity.setText(UtilityNumber.decimalToString(clickedItem.getQtaCol()) + " " + clickedItem.getMtbAart().getUntMis());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void openLU() {
|
public void openLU() {
|
||||||
@ -663,7 +657,7 @@ public class RettificaGiacenzeViewModel implements IRecyclerItemClicked<MtbColr>
|
|||||||
|
|
||||||
if (!isCreatedLU) {
|
if (!isCreatedLU) {
|
||||||
BigDecimal finalNewNumCnf = newNumCnf;
|
BigDecimal finalNewNumCnf = newNumCnf;
|
||||||
ColliMagazzinoRESTConsumer.creaRettificaCollo(
|
ColliMagazzinoRESTConsumer.creaRettificaColloStatic(
|
||||||
mtbColrToEditClone,
|
mtbColrToEditClone,
|
||||||
newNumCnf,
|
newNumCnf,
|
||||||
newQtaCol,
|
newQtaCol,
|
||||||
@ -731,7 +725,7 @@ public class RettificaGiacenzeViewModel implements IRecyclerItemClicked<MtbColr>
|
|||||||
|
|
||||||
|
|
||||||
if (!isCreatedLU) {
|
if (!isCreatedLU) {
|
||||||
ColliMagazzinoRESTConsumer.creaRettificaCollo(
|
ColliMagazzinoRESTConsumer.creaRettificaColloStatic(
|
||||||
mtbColrToDeleteClone,
|
mtbColrToDeleteClone,
|
||||||
BigDecimal.ZERO,
|
BigDecimal.ZERO,
|
||||||
BigDecimal.ZERO,
|
BigDecimal.ZERO,
|
||||||
@ -765,16 +759,14 @@ public class RettificaGiacenzeViewModel implements IRecyclerItemClicked<MtbColr>
|
|||||||
this.showAskPrint(shouldPrint -> {
|
this.showAskPrint(shouldPrint -> {
|
||||||
|
|
||||||
if (shouldPrint) {
|
if (shouldPrint) {
|
||||||
PrinterRESTConsumer.getAvailablePrintersStatic(SettingsManager.i().userSession.depo.getCodMdep(), new ISimpleOperationCallback<List<String>>() {
|
PrinterRESTConsumer.getAvailablePrintersStatic(SettingsManager.i().userSession.depo.getCodMdep(), value -> {
|
||||||
@Override
|
|
||||||
public void onSuccess(List<String> value) {
|
|
||||||
|
|
||||||
if (value.size() > 0) {
|
if (value.size() > 0) {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
ReportManager.getRightReportNameByGestione(mtbColt.get().getGestioneEnum(), reportName -> {
|
ReportManager.getReportNameLUFromGestione(mtbColt.get().getGestioneEnum(), reportName -> {
|
||||||
|
|
||||||
PrinterRESTConsumer.printCollo(value.get(0),
|
PrinterRESTConsumer.printColloStatic(value.get(0),
|
||||||
mtbColt.get(),
|
mtbColt.get(),
|
||||||
1,
|
1,
|
||||||
reportName,
|
reportName,
|
||||||
@ -809,15 +801,11 @@ public class RettificaGiacenzeViewModel implements IRecyclerItemClicked<MtbColr>
|
|||||||
String errorMessage = "Nessuna stampante configurata";
|
String errorMessage = "Nessuna stampante configurata";
|
||||||
showPrintErrorDialog(errorMessage);
|
showPrintErrorDialog(errorMessage);
|
||||||
}
|
}
|
||||||
}
|
}, ex -> {
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onFailed(Exception ex) {
|
|
||||||
progress.dismiss();
|
progress.dismiss();
|
||||||
UtilityLogger.errorMe(ex);
|
UtilityLogger.errorMe(ex);
|
||||||
String errorMessage = CommonRESTException.tryRecognizeThenGetMessage(ex);
|
String errorMessage = CommonRESTException.tryRecognizeThenGetMessage(ex);
|
||||||
showPrintErrorDialog(errorMessage);
|
showPrintErrorDialog(errorMessage);
|
||||||
}
|
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
progress.dismiss();
|
progress.dismiss();
|
||||||
|
|||||||
@ -1,14 +1,15 @@
|
|||||||
package it.integry.integrywmsnative.gest.spedizione_new;
|
package it.integry.integrywmsnative.gest.spedizione_new;
|
||||||
|
|
||||||
|
import android.app.Dialog;
|
||||||
|
import android.content.Intent;
|
||||||
|
import android.content.res.Resources;
|
||||||
|
import android.os.Bundle;
|
||||||
|
import android.text.SpannableString;
|
||||||
|
|
||||||
import androidx.databinding.DataBindingUtil;
|
import androidx.databinding.DataBindingUtil;
|
||||||
import androidx.databinding.ObservableArrayList;
|
import androidx.databinding.ObservableArrayList;
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||||
|
|
||||||
import android.app.Dialog;
|
|
||||||
import android.content.Intent;
|
|
||||||
import android.os.Bundle;
|
|
||||||
import android.text.SpannableString;
|
|
||||||
|
|
||||||
import com.annimon.stream.Stream;
|
import com.annimon.stream.Stream;
|
||||||
import com.tfb.fbtoast.FBToast;
|
import com.tfb.fbtoast.FBToast;
|
||||||
|
|
||||||
@ -76,7 +77,7 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
|
|||||||
|
|
||||||
private BottomSheetFragmentLUContentViewModel mBottomSheetFragmentLUContentViewModel;
|
private BottomSheetFragmentLUContentViewModel mBottomSheetFragmentLUContentViewModel;
|
||||||
|
|
||||||
private ObservableArrayList<SpedizioneListModel> mSpedizioneMutableData = new ObservableArrayList();
|
private ObservableArrayList<SpedizioneListModel> mSpedizioneMutableData = new ObservableArrayList<>();
|
||||||
|
|
||||||
|
|
||||||
public BindableBoolean addExtraItemsEnabled = new BindableBoolean(false);
|
public BindableBoolean addExtraItemsEnabled = new BindableBoolean(false);
|
||||||
@ -532,6 +533,13 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
|
|||||||
}).show();
|
}).show();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onLUSuccessullyPrinted() {
|
||||||
|
Resources res = getResources();
|
||||||
|
String errorMessage = res.getText(R.string.alert_print_completed_message).toString();
|
||||||
|
DialogSimpleMessageHelper.makeSuccessDialog(this, res.getText(R.string.completed).toString(), new SpannableString(errorMessage), null, null).show();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onLUPrintRequest(RunnableArgs<Boolean> onComplete) {
|
public void onLUPrintRequest(RunnableArgs<Boolean> onComplete) {
|
||||||
DialogAskShouldPrint.make(this, "Packing List", onComplete).show();
|
DialogAskShouldPrint.make(this, "Packing List", onComplete).show();
|
||||||
|
|||||||
@ -6,6 +6,7 @@ import dagger.Module;
|
|||||||
import dagger.Provides;
|
import dagger.Provides;
|
||||||
import it.integry.integrywmsnative.MainApplicationModule;
|
import it.integry.integrywmsnative.MainApplicationModule;
|
||||||
import it.integry.integrywmsnative.core.data_recover.ColliDataRecoverService;
|
import it.integry.integrywmsnative.core.data_recover.ColliDataRecoverService;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.OrdiniRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.OrdiniRESTConsumer;
|
||||||
@ -23,8 +24,8 @@ public class SpedizioneModule {
|
|||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
@Singleton
|
@Singleton
|
||||||
SpedizioneViewModel providesSpedizioneViewModel(ColliDataRecoverService colliDataRecoverService, OrdiniRESTConsumer ordiniRESTConsumer, ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer, PrinterRESTConsumer printerRESTConsumer, BarcodeRESTConsumer barcodeRESTConsumer) {
|
SpedizioneViewModel providesSpedizioneViewModel(ArticoloRESTConsumer articoloRESTConsumer, ColliDataRecoverService colliDataRecoverService, OrdiniRESTConsumer ordiniRESTConsumer, ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer, PrinterRESTConsumer printerRESTConsumer, BarcodeRESTConsumer barcodeRESTConsumer) {
|
||||||
return new SpedizioneViewModel(barcodeRESTConsumer, colliDataRecoverService, ordiniRESTConsumer, colliMagazzinoRESTConsumer, printerRESTConsumer);
|
return new SpedizioneViewModel(articoloRESTConsumer, barcodeRESTConsumer, colliDataRecoverService, ordiniRESTConsumer, colliMagazzinoRESTConsumer, printerRESTConsumer);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -27,6 +27,7 @@ import it.integry.integrywmsnative.core.expansion.AtomicBigDecimal;
|
|||||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
import it.integry.integrywmsnative.core.expansion.RunnableArgss;
|
import it.integry.integrywmsnative.core.expansion.RunnableArgss;
|
||||||
import it.integry.integrywmsnative.core.expansion.RunnableArgsss;
|
import it.integry.integrywmsnative.core.expansion.RunnableArgsss;
|
||||||
|
import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILUPrintListener;
|
||||||
import it.integry.integrywmsnative.core.model.CommonModelConsts;
|
import it.integry.integrywmsnative.core.model.CommonModelConsts;
|
||||||
import it.integry.integrywmsnative.core.model.FiltroOrdineDTO;
|
import it.integry.integrywmsnative.core.model.FiltroOrdineDTO;
|
||||||
import it.integry.integrywmsnative.core.model.MtbAart;
|
import it.integry.integrywmsnative.core.model.MtbAart;
|
||||||
@ -72,7 +73,7 @@ public class SpedizioneViewModel {
|
|||||||
private MutableLiveData<List<PickingObjectDTO>> mPickingList = new MutableLiveData<>();
|
private MutableLiveData<List<PickingObjectDTO>> mPickingList = new MutableLiveData<>();
|
||||||
private List<MtbColt> mColliRegistrati = new ArrayList<>();
|
private List<MtbColt> mColliRegistrati = new ArrayList<>();
|
||||||
|
|
||||||
private Listeners mListeners;
|
private Listeners mListener;
|
||||||
|
|
||||||
private GestioneEnum mDefaultGestioneOfUL = null;
|
private GestioneEnum mDefaultGestioneOfUL = null;
|
||||||
private String mDefaultCodMdep = null;
|
private String mDefaultCodMdep = null;
|
||||||
@ -92,6 +93,7 @@ public class SpedizioneViewModel {
|
|||||||
private MtbColt mCurrentMtbColt = null;
|
private MtbColt mCurrentMtbColt = null;
|
||||||
|
|
||||||
private Integer mMtbColtSessionID;
|
private Integer mMtbColtSessionID;
|
||||||
|
private final ArticoloRESTConsumer mArticoloRESTConsumer;
|
||||||
private final BarcodeRESTConsumer mBarcodeRESTConsumer;
|
private final BarcodeRESTConsumer mBarcodeRESTConsumer;
|
||||||
private final ColliDataRecoverService mColliDataRecoverService;
|
private final ColliDataRecoverService mColliDataRecoverService;
|
||||||
private final OrdiniRESTConsumer mOrdiniRestConsumerService;
|
private final OrdiniRESTConsumer mOrdiniRestConsumerService;
|
||||||
@ -99,11 +101,13 @@ public class SpedizioneViewModel {
|
|||||||
private final PrinterRESTConsumer mPrinterRESTConsumer;
|
private final PrinterRESTConsumer mPrinterRESTConsumer;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public SpedizioneViewModel( BarcodeRESTConsumer barcodeRESTConsumer,
|
public SpedizioneViewModel( ArticoloRESTConsumer articoloRESTConsumer,
|
||||||
|
BarcodeRESTConsumer barcodeRESTConsumer,
|
||||||
ColliDataRecoverService colliDataRecoverService,
|
ColliDataRecoverService colliDataRecoverService,
|
||||||
OrdiniRESTConsumer ordiniRESTConsumer,
|
OrdiniRESTConsumer ordiniRESTConsumer,
|
||||||
ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer,
|
ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer,
|
||||||
PrinterRESTConsumer printerRESTConsumer) {
|
PrinterRESTConsumer printerRESTConsumer) {
|
||||||
|
this.mArticoloRESTConsumer = articoloRESTConsumer;
|
||||||
this.mBarcodeRESTConsumer = barcodeRESTConsumer;
|
this.mBarcodeRESTConsumer = barcodeRESTConsumer;
|
||||||
this.mColliDataRecoverService = colliDataRecoverService;
|
this.mColliDataRecoverService = colliDataRecoverService;
|
||||||
this.mOrdiniRestConsumerService = ordiniRESTConsumer;
|
this.mOrdiniRestConsumerService = ordiniRESTConsumer;
|
||||||
@ -276,47 +280,47 @@ public class SpedizioneViewModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void sendOnLoadingStarted() {
|
private void sendOnLoadingStarted() {
|
||||||
if (this.mListeners != null) mListeners.onLoadingStarted();
|
if (this.mListener != null) mListener.onLoadingStarted();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void sendOnLoadingEnded() {
|
private void sendOnLoadingEnded() {
|
||||||
if (this.mListeners != null) mListeners.onLoadingEnded();
|
if (this.mListener != null) mListener.onLoadingEnded();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void sendError(Exception ex) {
|
private void sendError(Exception ex) {
|
||||||
if (this.mListeners != null) mListeners.onError(ex);
|
if (this.mListener != null) mListener.onError(ex);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void sendLUOpened(MtbColt mtbColt) {
|
private void sendLUOpened(MtbColt mtbColt) {
|
||||||
if (this.mListeners != null) mListeners.onLUOpened(mtbColt);
|
if (this.mListener != null) mListener.onLUOpened(mtbColt);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void sendLUPesoRequired(String codTcol, BigDecimal netWeightKG, BigDecimal grossWeightKG, RunnableArgsss<String, BigDecimal, BigDecimal> onComplete) {
|
private void sendLUPesoRequired(String codTcol, BigDecimal netWeightKG, BigDecimal grossWeightKG, RunnableArgsss<String, BigDecimal, BigDecimal> onComplete) {
|
||||||
if (this.mListeners != null) mListeners.onLUPesoRequired(codTcol, netWeightKG, grossWeightKG, onComplete);
|
if (this.mListener != null) mListener.onLUPesoRequired(codTcol, netWeightKG, grossWeightKG, onComplete);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void sendLUPrintRequest(RunnableArgs<Boolean> onComplete) {
|
private void sendLUPrintRequest(RunnableArgs<Boolean> onComplete) {
|
||||||
if (this.mListeners != null) mListeners.onLUPrintRequest(onComplete);
|
if (this.mListener != null) mListener.onLUPrintRequest(onComplete);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void sendLUPrintError(Exception ex, Runnable onComplete) {
|
private void sendLUPrintError(Exception ex, Runnable onComplete) {
|
||||||
if (this.mListeners != null) mListeners.onLUPrintError(ex, onComplete);
|
if (this.mListener != null) mListener.onLUPrintError(ex, onComplete);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void sendLUClosed() {
|
private void sendLUClosed() {
|
||||||
if (this.mListeners != null) mListeners.onLUClosed();
|
if (this.mListener != null) mListener.onLUClosed();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void sendFilterApplied(String newValue) {
|
private void sendFilterApplied(String newValue) {
|
||||||
if (this.mListeners != null) mListeners.onFilterApplied(newValue);
|
if (this.mListener != null) mListener.onFilterApplied(newValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void sendFilterRemoved() {
|
private void sendFilterRemoved() {
|
||||||
if (this.mListeners != null) mListeners.onFilterRemoved();
|
if (this.mListener != null) mListener.onFilterRemoved();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void sendMtbColrDeleteRequest(RunnableArgs<Boolean> onComplete) {
|
private void sendMtbColrDeleteRequest(RunnableArgs<Boolean> onComplete) {
|
||||||
if (this.mListeners != null) mListeners.onMtbColrDeleteRequest(onComplete);
|
if (this.mListener != null) mListener.onMtbColrDeleteRequest(onComplete);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void sendOnItemDispatched(PickingObjectDTO pickingObjectDTO,
|
private void sendOnItemDispatched(PickingObjectDTO pickingObjectDTO,
|
||||||
@ -337,7 +341,7 @@ public class SpedizioneViewModel {
|
|||||||
Date dataScad,
|
Date dataScad,
|
||||||
boolean canOverflowOrderQuantity,
|
boolean canOverflowOrderQuantity,
|
||||||
RunnableArgss<PickedQuantityDTO, Boolean> onComplete) {
|
RunnableArgss<PickedQuantityDTO, Boolean> onComplete) {
|
||||||
if (this.mListeners != null) mListeners.onItemDispatched(pickingObjectDTO,
|
if (this.mListener != null) mListener.onItemDispatched(pickingObjectDTO,
|
||||||
mtbAart,
|
mtbAart,
|
||||||
initialNumCnf,
|
initialNumCnf,
|
||||||
initialQtaCnf,
|
initialQtaCnf,
|
||||||
@ -358,7 +362,7 @@ public class SpedizioneViewModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void sendOnRowSaved() {
|
private void sendOnRowSaved() {
|
||||||
if (this.mListeners != null) mListeners.onRowSaved();
|
if (this.mListener != null) mListener.onRowSaved();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void processBarcodeDTO(BarcodeScanDTO barcodeScanDTO, Runnable onComplete) {
|
public void processBarcodeDTO(BarcodeScanDTO barcodeScanDTO, Runnable onComplete) {
|
||||||
@ -546,7 +550,7 @@ public class SpedizioneViewModel {
|
|||||||
barcodeProd = UtilityBarcode.convertITF14toEAN13(barcodeProd);
|
barcodeProd = UtilityBarcode.convertITF14toEAN13(barcodeProd);
|
||||||
}
|
}
|
||||||
|
|
||||||
ArticoloRESTConsumer.getByBarcodeProdStatic(barcodeProd, mtbAartList -> {
|
this.mArticoloRESTConsumer.getByBarcodeProd(barcodeProd, mtbAartList -> {
|
||||||
|
|
||||||
if (mtbAartList != null && mtbAartList.size() > 0) {
|
if (mtbAartList != null && mtbAartList.size() > 0) {
|
||||||
this.searchArtFromAnag(mtbAartList.get(0), pickData, onComplete);
|
this.searchArtFromAnag(mtbAartList.get(0), pickData, onComplete);
|
||||||
@ -1142,7 +1146,7 @@ public class SpedizioneViewModel {
|
|||||||
MtbColt cloneMtbColt = (MtbColt) mCurrentMtbColt.clone();
|
MtbColt cloneMtbColt = (MtbColt) mCurrentMtbColt.clone();
|
||||||
cloneMtbColt.setOperation(CommonModelConsts.OPERATION.UPDATE);
|
cloneMtbColt.setOperation(CommonModelConsts.OPERATION.UPDATE);
|
||||||
|
|
||||||
cloneMtbColt.setMtbColr(new ObservableArrayList());
|
cloneMtbColt.setMtbColr(new ObservableArrayList<>());
|
||||||
cloneMtbColt.getMtbColr().add((MtbColr) mtbColr.clone());
|
cloneMtbColt.getMtbColr().add((MtbColr) mtbColr.clone());
|
||||||
|
|
||||||
boolean shouldPrint = true;
|
boolean shouldPrint = true;
|
||||||
@ -1191,7 +1195,7 @@ public class SpedizioneViewModel {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void saveEditedRow(MtbColr mtbColrToUpdate, BigDecimal numCnf, BigDecimal qtaCnf, BigDecimal qtaTot, String partitaMag, Date dataScad, boolean shouldCloseLU) {
|
private void saveEditedRow(MtbColr mtbColrToUpdate, BigDecimal numCnf, BigDecimal qtaCnf, BigDecimal qtaTot, String partitaMag, Date dataScad, boolean shouldCloseLU) {
|
||||||
|
|
||||||
this.sendOnLoadingStarted();
|
this.sendOnLoadingStarted();
|
||||||
|
|
||||||
@ -1347,7 +1351,7 @@ public class SpedizioneViewModel {
|
|||||||
onComplete.run();
|
onComplete.run();
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
mPrinterRESTConsumer.getAvailablePrinters(mDefaultCodMdep, PrinterRESTConsumer.Type.PRIMARIA, printerList -> {
|
this.mPrinterRESTConsumer.getAvailablePrinters(mDefaultCodMdep, PrinterRESTConsumer.Type.PRIMARIA, printerList -> {
|
||||||
|
|
||||||
if (printerList == null || printerList.size() == 0) {
|
if (printerList == null || printerList.size() == 0) {
|
||||||
this.sendError(new NoPrintersFoundException());
|
this.sendError(new NoPrintersFoundException());
|
||||||
@ -1375,9 +1379,9 @@ public class SpedizioneViewModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void singlePrint(MtbColt mtbColtToPrint, String printerName, Runnable onComplete, RunnableArgs<Exception> onFailed) {
|
private void singlePrint(MtbColt mtbColtToPrint, String printerName, Runnable onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
ReportManager.getRightReportNameByGestione(mtbColtToPrint.getGestioneEnum(), reportName -> {
|
ReportManager.getReportNameLUFromGestione(mtbColtToPrint.getGestioneEnum(), reportName -> {
|
||||||
|
|
||||||
PrinterRESTConsumer.printCollo(
|
PrinterRESTConsumer.printColloStatic(
|
||||||
printerName,
|
printerName,
|
||||||
mtbColtToPrint,
|
mtbColtToPrint,
|
||||||
1,
|
1,
|
||||||
@ -1468,11 +1472,11 @@ public class SpedizioneViewModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public SpedizioneViewModel setListeners(Listeners listeners) {
|
public SpedizioneViewModel setListeners(Listeners listeners) {
|
||||||
this.mListeners = listeners;
|
this.mListener = listeners;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public interface Listeners {
|
public interface Listeners extends ILUPrintListener {
|
||||||
void onLoadingStarted();
|
void onLoadingStarted();
|
||||||
|
|
||||||
void onLoadingEnded();
|
void onLoadingEnded();
|
||||||
@ -1483,10 +1487,6 @@ public class SpedizioneViewModel {
|
|||||||
|
|
||||||
void onLUPesoRequired(String codTcol, BigDecimal netWeightKG, BigDecimal grossWeightKG, RunnableArgsss<String, BigDecimal, BigDecimal> onComplete);
|
void onLUPesoRequired(String codTcol, BigDecimal netWeightKG, BigDecimal grossWeightKG, RunnableArgsss<String, BigDecimal, BigDecimal> onComplete);
|
||||||
|
|
||||||
void onLUPrintRequest(RunnableArgs<Boolean> onComplete);
|
|
||||||
|
|
||||||
void onLUPrintError(Exception ex, Runnable onComplete);
|
|
||||||
|
|
||||||
void onFilterApplied(String newValue);
|
void onFilterApplied(String newValue);
|
||||||
|
|
||||||
void onFilterRemoved();
|
void onFilterRemoved();
|
||||||
|
|||||||
@ -16,7 +16,6 @@ import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
|||||||
import it.integry.integrywmsnative.core.model.DtbDocr;
|
import it.integry.integrywmsnative.core.model.DtbDocr;
|
||||||
import it.integry.integrywmsnative.core.model.MtbAart;
|
import it.integry.integrywmsnative.core.model.MtbAart;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityDB;
|
import it.integry.integrywmsnative.core.utility.UtilityDB;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityQuery;
|
import it.integry.integrywmsnative.core.utility.UtilityQuery;
|
||||||
import it.integry.integrywmsnative.gest.picking_resi.dto.WithdrawableDtbDocr;
|
import it.integry.integrywmsnative.gest.picking_resi.dto.WithdrawableDtbDocr;
|
||||||
import it.integry.integrywmsnative.core.rest.model.DocumentoResoDTO;
|
import it.integry.integrywmsnative.core.rest.model.DocumentoResoDTO;
|
||||||
@ -30,7 +29,7 @@ public class UltimeConsegneClienteRESTConsumer {
|
|||||||
"WHERE flag_stato = 'A'";
|
"WHERE flag_stato = 'A'";
|
||||||
|
|
||||||
Type typeOfObjectsList = new TypeToken<ArrayList<GtbAnag>>() {}.getType();
|
Type typeOfObjectsList = new TypeToken<ArrayList<GtbAnag>>() {}.getType();
|
||||||
SystemRESTConsumer.processSql(sql, typeOfObjectsList, new ISimpleOperationCallback<ArrayList<GtbAnag>>() {
|
SystemRESTConsumer.processSqlStatic(sql, typeOfObjectsList, new ISimpleOperationCallback<ArrayList<GtbAnag>>() {
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(ArrayList<GtbAnag> value) {
|
public void onSuccess(ArrayList<GtbAnag> value) {
|
||||||
if(onComplete != null) onComplete.run(value);
|
if(onComplete != null) onComplete.run(value);
|
||||||
@ -61,7 +60,7 @@ public class UltimeConsegneClienteRESTConsumer {
|
|||||||
|
|
||||||
|
|
||||||
Type typeOfObjectsList = new TypeToken<ArrayList<DocumentoResoDTO>>() {}.getType();
|
Type typeOfObjectsList = new TypeToken<ArrayList<DocumentoResoDTO>>() {}.getType();
|
||||||
SystemRESTConsumer.processSql(sql, typeOfObjectsList, new ISimpleOperationCallback<ArrayList<DocumentoResoDTO>>() {
|
SystemRESTConsumer.processSqlStatic(sql, typeOfObjectsList, new ISimpleOperationCallback<ArrayList<DocumentoResoDTO>>() {
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(ArrayList<DocumentoResoDTO> value) {
|
public void onSuccess(ArrayList<DocumentoResoDTO> value) {
|
||||||
if(onComplete != null) onComplete.run(value);
|
if(onComplete != null) onComplete.run(value);
|
||||||
@ -179,7 +178,7 @@ public class UltimeConsegneClienteRESTConsumer {
|
|||||||
|
|
||||||
|
|
||||||
Type typeOfObjectsList = new TypeToken<ArrayList<WithdrawableDtbDocr>>() {}.getType();
|
Type typeOfObjectsList = new TypeToken<ArrayList<WithdrawableDtbDocr>>() {}.getType();
|
||||||
SystemRESTConsumer.processSql(sql, typeOfObjectsList, new ISimpleOperationCallback<ArrayList<WithdrawableDtbDocr>>() {
|
SystemRESTConsumer.processSqlStatic(sql, typeOfObjectsList, new ISimpleOperationCallback<ArrayList<WithdrawableDtbDocr>>() {
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(ArrayList<WithdrawableDtbDocr> values) {
|
public void onSuccess(ArrayList<WithdrawableDtbDocr> values) {
|
||||||
|
|
||||||
|
|||||||
@ -22,7 +22,7 @@ public class UltimiArriviFornitoreRESTConsumer {
|
|||||||
"WHERE flag_stato = 'A'";
|
"WHERE flag_stato = 'A'";
|
||||||
|
|
||||||
Type typeOfObjectsList = new TypeToken<ArrayList<GtbAnag>>() {}.getType();
|
Type typeOfObjectsList = new TypeToken<ArrayList<GtbAnag>>() {}.getType();
|
||||||
SystemRESTConsumer.processSql(sql, typeOfObjectsList, new ISimpleOperationCallback<ArrayList<GtbAnag>>() {
|
SystemRESTConsumer.processSqlStatic(sql, typeOfObjectsList, new ISimpleOperationCallback<ArrayList<GtbAnag>>() {
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(ArrayList<GtbAnag> value) {
|
public void onSuccess(ArrayList<GtbAnag> value) {
|
||||||
if(onComplete != null) onComplete.run(value);
|
if(onComplete != null) onComplete.run(value);
|
||||||
@ -52,7 +52,7 @@ public class UltimiArriviFornitoreRESTConsumer {
|
|||||||
|
|
||||||
|
|
||||||
Type typeOfObjectsList = new TypeToken<ArrayList<DocumentoResoDTO>>() {}.getType();
|
Type typeOfObjectsList = new TypeToken<ArrayList<DocumentoResoDTO>>() {}.getType();
|
||||||
SystemRESTConsumer.processSql(sql, typeOfObjectsList, new ISimpleOperationCallback<ArrayList<DocumentoResoDTO>>() {
|
SystemRESTConsumer.processSqlStatic(sql, typeOfObjectsList, new ISimpleOperationCallback<ArrayList<DocumentoResoDTO>>() {
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(ArrayList<DocumentoResoDTO> value) {
|
public void onSuccess(ArrayList<DocumentoResoDTO> value) {
|
||||||
if(onComplete != null) onComplete.run(value);
|
if(onComplete != null) onComplete.run(value);
|
||||||
|
|||||||
@ -220,7 +220,7 @@ public class VenditaHelper {
|
|||||||
baseSql += "( " + whereCond + ")";
|
baseSql += "( " + whereCond + ")";
|
||||||
|
|
||||||
Type typeOfObjectsList = new TypeToken<ArrayList<MtbColt>>() {}.getType();
|
Type typeOfObjectsList = new TypeToken<ArrayList<MtbColt>>() {}.getType();
|
||||||
SystemRESTConsumer.processSql(baseSql, typeOfObjectsList, new ISimpleOperationCallback<List<MtbColt>>() {
|
SystemRESTConsumer.processSqlStatic(baseSql, typeOfObjectsList, new ISimpleOperationCallback<List<MtbColt>>() {
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(List<MtbColt> value) {
|
public void onSuccess(List<MtbColt> value) {
|
||||||
if(onComplete != null) onComplete.run(value);
|
if(onComplete != null) onComplete.run(value);
|
||||||
|
|||||||
@ -48,7 +48,7 @@ public class DialogAskCliente_Page1ViewModel implements IDialogAskClienteViewMod
|
|||||||
"ORDER BY rag_soc";
|
"ORDER BY rag_soc";
|
||||||
|
|
||||||
Type typeOfObjectsList = new TypeToken<ArrayList<DialogAskClienteClienteDTO>>() {}.getType();
|
Type typeOfObjectsList = new TypeToken<ArrayList<DialogAskClienteClienteDTO>>() {}.getType();
|
||||||
SystemRESTConsumer.processSql(sql, typeOfObjectsList, new ISimpleOperationCallback<ArrayList<DialogAskClienteClienteDTO>>() {
|
SystemRESTConsumer.processSqlStatic(sql, typeOfObjectsList, new ISimpleOperationCallback<ArrayList<DialogAskClienteClienteDTO>>() {
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(ArrayList<DialogAskClienteClienteDTO> value) {
|
public void onSuccess(ArrayList<DialogAskClienteClienteDTO> value) {
|
||||||
availableClienti = value;
|
availableClienti = value;
|
||||||
|
|||||||
@ -50,7 +50,7 @@ public class DialogAskCliente_Page2ViewModel implements IDialogAskClienteViewMod
|
|||||||
"WHERE cod_anag = " + UtilityDB.valueToString(mCodAnag);
|
"WHERE cod_anag = " + UtilityDB.valueToString(mCodAnag);
|
||||||
|
|
||||||
Type typeOfObjectsList = new TypeToken<ArrayList<DialogAskClienteDestinatarioDTO>>() {}.getType();
|
Type typeOfObjectsList = new TypeToken<ArrayList<DialogAskClienteDestinatarioDTO>>() {}.getType();
|
||||||
SystemRESTConsumer.processSql(sql, typeOfObjectsList, new ISimpleOperationCallback<ArrayList<DialogAskClienteDestinatarioDTO>>() {
|
SystemRESTConsumer.processSqlStatic(sql, typeOfObjectsList, new ISimpleOperationCallback<ArrayList<DialogAskClienteDestinatarioDTO>>() {
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(ArrayList<DialogAskClienteDestinatarioDTO> value) {
|
public void onSuccess(ArrayList<DialogAskClienteDestinatarioDTO> value) {
|
||||||
availableDestinatari = value;
|
availableDestinatari = value;
|
||||||
|
|||||||
@ -143,6 +143,18 @@ public class DialogInputQuantityV2 extends DialogFragment implements DialogInput
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void init() {
|
private void init() {
|
||||||
|
UtilityObservable.addPropertyChanged(this.currentPartitaMag, (value) -> {
|
||||||
|
if (this.mEnableDataCallback) {
|
||||||
|
this.mViewModel.setPartitaMag(value);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
UtilityObservable.addPropertyChanged(this.currentDataScad, (value) -> {
|
||||||
|
if (this.mEnableDataCallback) {
|
||||||
|
this.mViewModel.setDataScad(value);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
UtilityObservable.addPropertyChanged(this.currentNumCnf, (value) -> {
|
UtilityObservable.addPropertyChanged(this.currentNumCnf, (value) -> {
|
||||||
if (this.mEnableDataCallback) {
|
if (this.mEnableDataCallback) {
|
||||||
this.mViewModel.setNumCnf(value);
|
this.mViewModel.setNumCnf(value);
|
||||||
|
|||||||
@ -1,55 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<layout xmlns:tools="http://schemas.android.com/tools"
|
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
|
||||||
<data>
|
|
||||||
|
|
||||||
<import type="android.view.View"/>
|
|
||||||
|
|
||||||
<import type="it.integry.integrywmsnative.core.utility.UtilityString" />
|
|
||||||
|
|
||||||
<variable
|
|
||||||
name="viewmodel"
|
|
||||||
type="it.integry.integrywmsnative.gest.picking_libero.viewmodel.PickingLiberoViewModel" />
|
|
||||||
|
|
||||||
</data>
|
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="match_parent"
|
|
||||||
android:orientation="vertical">
|
|
||||||
|
|
||||||
<it.integry.integrywmsnative.ui.ElevatedToolbar
|
|
||||||
android:id="@+id/elevated_toolbar"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content">
|
|
||||||
|
|
||||||
<androidx.appcompat.widget.Toolbar
|
|
||||||
android:id="@+id/toolbar"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="?actionBarSize"
|
|
||||||
android:gravity="center_horizontal"
|
|
||||||
app:popupTheme="@style/AppTheme.PopupOverlay">
|
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatTextView
|
|
||||||
android:id="@+id/toolbar_title"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
tools:text="Picking Libero"
|
|
||||||
style="@style/TextAppearance.AppCompat.Widget.ActionBar.Title"
|
|
||||||
android:layout_gravity="center" />
|
|
||||||
|
|
||||||
</androidx.appcompat.widget.Toolbar>
|
|
||||||
|
|
||||||
</it.integry.integrywmsnative.ui.ElevatedToolbar>
|
|
||||||
|
|
||||||
<fragment
|
|
||||||
android:id="@+id/top_fragment"
|
|
||||||
android:name="it.integry.integrywmsnative.gest.picking_libero.PickingLiberoFragment"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="match_parent" />
|
|
||||||
|
|
||||||
|
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
</layout>
|
|
||||||
@ -1,25 +1,31 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<layout
|
<layout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
xmlns:tools="http://schemas.android.com/tools">
|
xmlns:tools="http://schemas.android.com/tools">
|
||||||
|
|
||||||
<data>
|
<data>
|
||||||
|
|
||||||
<import type="androidx.databinding.ObservableList" />
|
<import type="androidx.databinding.ObservableList" />
|
||||||
|
|
||||||
<import type="it.integry.integrywmsnative.core.utility.UtilityString" />
|
<import type="it.integry.integrywmsnative.core.utility.UtilityString" />
|
||||||
|
|
||||||
<import type="android.view.View" />
|
<import type="android.view.View" />
|
||||||
<variable name="view" type="it.integry.integrywmsnative.gest.rettifica_giacenze.RettificaGiacenzeFragment" />
|
|
||||||
|
<variable
|
||||||
|
name="view"
|
||||||
|
type="it.integry.integrywmsnative.gest.rettifica_giacenze.RettificaGiacenzeFragment" />
|
||||||
|
|
||||||
<variable
|
<variable
|
||||||
name="viewmodel"
|
name="viewmodel"
|
||||||
type="it.integry.integrywmsnative.gest.rettifica_giacenze.viewmodel.RettificaGiacenzeViewModel" />
|
type="it.integry.integrywmsnative.gest.rettifica_giacenze.RettificaGiacenzeViewModelNEW" />
|
||||||
</data>
|
</data>
|
||||||
|
|
||||||
<FrameLayout
|
<FrameLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:background="@color/empty_view_bg_gray"
|
android:background="@color/empty_view_bg_gray"
|
||||||
tools:context=".gest.rettifica_giacenze.RettificaGiacenzeFragment"
|
android:clipToPadding="false"
|
||||||
android:clipToPadding="false">
|
tools:context=".gest.rettifica_giacenze.RettificaGiacenzeFragment">
|
||||||
|
|
||||||
<androidx.coordinatorlayout.widget.CoordinatorLayout
|
<androidx.coordinatorlayout.widget.CoordinatorLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
@ -40,38 +46,59 @@
|
|||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:padding="8dp"
|
android:padding="8dp"
|
||||||
app:el_expanded_bind="@{viewmodel.isMtbColtLoaded}">
|
app:el_expanded_bind="@{view.thereIsAnOpenedUL}">
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:orientation="horizontal">
|
android:orientation="horizontal"
|
||||||
|
android:background="@drawable/badge1_round_corner">
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatTextView
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
style="@style/AppTheme.NewMaterial.Text.Medium"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:paddingStart="12dp"
|
android:paddingStart="12dp"
|
||||||
android:paddingEnd="12dp"
|
|
||||||
android:paddingTop="8dp"
|
android:paddingTop="8dp"
|
||||||
|
android:paddingEnd="2dp"
|
||||||
android:paddingBottom="8dp"
|
android:paddingBottom="8dp"
|
||||||
android:textColor="@android:color/white"
|
android:textColor="@android:color/white"
|
||||||
android:textStyle="bold"
|
android:text="num:" />
|
||||||
android:background="@drawable/badge1_round_corner"
|
|
||||||
android:text="@{viewmodel.mtbColt.numCollo.toString()}"
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
style="@style/AppTheme.NewMaterial.Text.Medium"
|
style="@style/AppTheme.NewMaterial.Text.Medium"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:paddingStart="0dp"
|
||||||
|
android:paddingTop="8dp"
|
||||||
|
android:paddingEnd="12dp"
|
||||||
|
android:paddingBottom="8dp"
|
||||||
|
android:text="@{view.currentMtbColtObs.numCollo.toString()}"
|
||||||
|
android:textColor="@android:color/white"
|
||||||
|
android:textStyle="bold"
|
||||||
tools:text="2156" />
|
tools:text="2156" />
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatTextView
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
style="@style/AppTheme.NewMaterial.Text.Medium"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginStart="12dp"
|
android:paddingStart="12dp"
|
||||||
android:textColor="@android:color/black"
|
android:paddingTop="8dp"
|
||||||
android:textStyle="bold"
|
android:paddingEnd="2dp"
|
||||||
android:visibility="@{!UtilityString.isNullOrEmpty(viewmodel.mtbColt.posizione) ? View.VISIBLE : View.GONE}"
|
android:paddingBottom="8dp"
|
||||||
android:text="@{viewmodel.mtbColt.posizione}"
|
android:textColor="@android:color/white"
|
||||||
style="@style/AppTheme.NewMaterial.Text.Medium"
|
android:text="pos:"
|
||||||
tools:text="ME1FS032"/>
|
android:visibility="@{!UtilityString.isNullOrEmpty(viewmodel.currentMtbColt.posizione) ? View.VISIBLE : View.GONE}" />
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
style="@style/AppTheme.NewMaterial.Text.Medium"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@{view.currentMtbColtObs.posizione}"
|
||||||
|
android:textColor="@android:color/white"
|
||||||
|
android:textStyle="bold"
|
||||||
|
android:visibility="@{!UtilityString.isNullOrEmpty(viewmodel.currentMtbColt.posizione) ? View.VISIBLE : View.GONE}"
|
||||||
|
tools:text="ME1FS032" />
|
||||||
|
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
@ -82,13 +109,13 @@
|
|||||||
android:id="@+id/rettifica_giacenze_forn_layout"
|
android:id="@+id/rettifica_giacenze_forn_layout"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:orientation="horizontal"
|
|
||||||
android:layout_marginTop="4dp"
|
|
||||||
android:layout_marginStart="4dp"
|
android:layout_marginStart="4dp"
|
||||||
|
android:layout_marginTop="4dp"
|
||||||
android:layout_marginBottom="4dp"
|
android:layout_marginBottom="4dp"
|
||||||
|
android:orientation="horizontal"
|
||||||
android:paddingStart="8dp"
|
android:paddingStart="8dp"
|
||||||
android:paddingEnd="6dp"
|
|
||||||
android:paddingTop="6dp"
|
android:paddingTop="6dp"
|
||||||
|
android:paddingEnd="6dp"
|
||||||
android:paddingBottom="6dp">
|
android:paddingBottom="6dp">
|
||||||
|
|
||||||
<RadioButton
|
<RadioButton
|
||||||
@ -112,46 +139,46 @@
|
|||||||
|
|
||||||
<com.google.android.material.textfield.TextInputLayout
|
<com.google.android.material.textfield.TextInputLayout
|
||||||
android:id="@+id/auto_complete_fornitori_layout"
|
android:id="@+id/auto_complete_fornitori_layout"
|
||||||
|
style="@style/TextInputLayout.NoLine"
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="0dp"
|
android:layout_height="0dp"
|
||||||
app:hintTextAppearance="@style/hint_text"
|
app:hintTextAppearance="@style/hint_text"
|
||||||
app:layout_constraintTop_toTopOf="parent"
|
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintEnd_toStartOf="@id/guide_line_fornitore"
|
app:layout_constraintEnd_toStartOf="@id/guide_line_fornitore"
|
||||||
style="@style/TextInputLayout.NoLine">
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent">
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatAutoCompleteTextView
|
<androidx.appcompat.widget.AppCompatAutoCompleteTextView
|
||||||
android:id="@+id/auto_complete_fornitori"
|
android:id="@+id/auto_complete_fornitori"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:ems="10"
|
|
||||||
android:singleLine="true"
|
|
||||||
android:completionThreshold="2"
|
android:completionThreshold="2"
|
||||||
|
android:ems="10"
|
||||||
android:hint="@string/supplier"
|
android:hint="@string/supplier"
|
||||||
android:paddingStart="12dp"/>
|
android:paddingStart="12dp"
|
||||||
|
android:singleLine="true" />
|
||||||
|
|
||||||
</com.google.android.material.textfield.TextInputLayout>
|
</com.google.android.material.textfield.TextInputLayout>
|
||||||
|
|
||||||
<com.google.android.material.textfield.TextInputLayout
|
<com.google.android.material.textfield.TextInputLayout
|
||||||
android:id="@+id/layout_cod_art_descr_forn"
|
android:id="@+id/layout_cod_art_descr_forn"
|
||||||
|
style="@style/TextInputLayout.NoLine"
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
app:hintTextAppearance="@style/hint_text"
|
|
||||||
app:layout_constraintTop_toTopOf="parent"
|
|
||||||
app:layout_constraintStart_toEndOf="@id/guide_line_fornitore"
|
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
|
||||||
android:layout_marginStart="8dp"
|
android:layout_marginStart="8dp"
|
||||||
style="@style/TextInputLayout.NoLine">
|
app:hintTextAppearance="@style/hint_text"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toEndOf="@id/guide_line_fornitore"
|
||||||
|
app:layout_constraintTop_toTopOf="parent">
|
||||||
|
|
||||||
<com.google.android.material.textfield.TextInputEditText
|
<com.google.android.material.textfield.TextInputEditText
|
||||||
android:id="@+id/input_cod_art_descr_forn"
|
android:id="@+id/input_cod_art_descr_forn"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:inputType="textNoSuggestions"
|
android:hint="@string/cod_art_or_description"
|
||||||
android:imeOptions="actionDone"
|
android:imeOptions="actionDone"
|
||||||
android:singleLine="true"
|
android:inputType="textNoSuggestions"
|
||||||
android:hint="@string/cod_art_or_description"/>
|
android:singleLine="true" />
|
||||||
|
|
||||||
|
|
||||||
</com.google.android.material.textfield.TextInputLayout>
|
</com.google.android.material.textfield.TextInputLayout>
|
||||||
@ -164,13 +191,13 @@
|
|||||||
android:id="@+id/rettifica_giacenze_art_int_layout"
|
android:id="@+id/rettifica_giacenze_art_int_layout"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:orientation="horizontal"
|
|
||||||
android:layout_marginTop="4dp"
|
|
||||||
android:layout_marginStart="4dp"
|
android:layout_marginStart="4dp"
|
||||||
|
android:layout_marginTop="4dp"
|
||||||
android:layout_marginBottom="4dp"
|
android:layout_marginBottom="4dp"
|
||||||
|
android:orientation="horizontal"
|
||||||
android:paddingStart="8dp"
|
android:paddingStart="8dp"
|
||||||
android:paddingEnd="6dp"
|
|
||||||
android:paddingTop="6dp"
|
android:paddingTop="6dp"
|
||||||
|
android:paddingEnd="6dp"
|
||||||
android:paddingBottom="6dp">
|
android:paddingBottom="6dp">
|
||||||
|
|
||||||
<RadioButton
|
<RadioButton
|
||||||
@ -187,22 +214,22 @@
|
|||||||
|
|
||||||
<com.google.android.material.textfield.TextInputLayout
|
<com.google.android.material.textfield.TextInputLayout
|
||||||
android:id="@+id/layout_cod_art_descr_int"
|
android:id="@+id/layout_cod_art_descr_int"
|
||||||
|
style="@style/TextInputLayout.NoLine"
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
app:hintTextAppearance="@style/hint_text"
|
app:hintTextAppearance="@style/hint_text"
|
||||||
app:layout_constraintTop_toTopOf="parent"
|
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
style="@style/TextInputLayout.NoLine">
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent">
|
||||||
|
|
||||||
<com.google.android.material.textfield.TextInputEditText
|
<com.google.android.material.textfield.TextInputEditText
|
||||||
android:id="@+id/input_cod_art_descr_int"
|
android:id="@+id/input_cod_art_descr_int"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:inputType="textNoSuggestions"
|
android:hint="@string/cod_art_or_description"
|
||||||
android:imeOptions="actionDone"
|
android:imeOptions="actionDone"
|
||||||
android:singleLine="true"
|
android:inputType="textNoSuggestions"
|
||||||
android:hint="@string/cod_art_or_description"/>
|
android:singleLine="true" />
|
||||||
|
|
||||||
|
|
||||||
</com.google.android.material.textfield.TextInputLayout>
|
</com.google.android.material.textfield.TextInputLayout>
|
||||||
@ -212,9 +239,6 @@
|
|||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<RelativeLayout
|
<RelativeLayout
|
||||||
@ -252,25 +276,25 @@
|
|||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:orientation="vertical"
|
|
||||||
android:gravity="center_horizontal"
|
android:gravity="center_horizontal"
|
||||||
app:layout_constraintStart_toEndOf="@id/guideline_empty_left"
|
android:orientation="vertical"
|
||||||
app:layout_constraintEnd_toStartOf="@id/guideline_empty_right"
|
app:layout_constraintEnd_toStartOf="@id/guideline_empty_right"
|
||||||
|
app:layout_constraintStart_toEndOf="@id/guideline_empty_left"
|
||||||
app:layout_constraintTop_toTopOf="@id/guideline_empty_top">
|
app:layout_constraintTop_toTopOf="@id/guideline_empty_top">
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatImageView
|
<androidx.appcompat.widget.AppCompatImageView
|
||||||
android:layout_width="72dp"
|
android:layout_width="72dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:src="@drawable/ic_playlist_add_check_24dp"
|
android:adjustViewBounds="true"
|
||||||
android:adjustViewBounds="true"/>
|
android:src="@drawable/ic_playlist_add_check_24dp" />
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatTextView
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
style="@style/AppTheme.NewMaterial.Text.Medium"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:gravity="center_horizontal"
|
android:gravity="center_horizontal"
|
||||||
android:textColor="@android:color/black"
|
|
||||||
android:text="@string/no_item_text"
|
android:text="@string/no_item_text"
|
||||||
style="@style/AppTheme.NewMaterial.Text.Medium"/>
|
android:textColor="@android:color/black" />
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
@ -279,175 +303,178 @@
|
|||||||
android:id="@+id/rettifica_giacenze_main_list"
|
android:id="@+id/rettifica_giacenze_main_list"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
|
android:clipToPadding="false"
|
||||||
android:paddingTop="16dp"
|
android:paddingTop="16dp"
|
||||||
android:paddingBottom="80dp"
|
android:paddingBottom="80dp"
|
||||||
android:clipToPadding="false"
|
|
||||||
android:scrollbarStyle="outsideOverlay" />
|
android:scrollbarStyle="outsideOverlay" />
|
||||||
|
|
||||||
<com.google.android.material.floatingactionbutton.FloatingActionButton
|
<com.google.android.material.floatingactionbutton.FloatingActionButton
|
||||||
android:id="@+id/rettifica_giacenze_main_fab"
|
android:id="@+id/rettifica_giacenze_main_fab"
|
||||||
|
style="@style/Widget.MaterialComponents.FloatingActionButton"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_gravity="bottom|end"
|
|
||||||
android:layout_margin="@dimen/fab_margin"
|
|
||||||
android:layout_alignParentEnd="true"
|
android:layout_alignParentEnd="true"
|
||||||
android:layout_alignParentBottom="true"
|
android:layout_alignParentBottom="true"
|
||||||
|
android:layout_gravity="bottom|end"
|
||||||
|
android:layout_margin="@dimen/fab_margin"
|
||||||
|
android:onClick="@{() -> viewmodel.closeLU(false)}"
|
||||||
android:tint="@android:color/white"
|
android:tint="@android:color/white"
|
||||||
style="@style/Widget.MaterialComponents.FloatingActionButton"
|
app:visibility="@{view.thereIsAnOpenedUL}"
|
||||||
app:srcCompat="@drawable/ic_check_black_24dp"
|
app:srcCompat="@drawable/ic_check_black_24dp" />
|
||||||
android:onClick="@{() -> viewmodel.closeLU(true, true)}"
|
|
||||||
android:visibility="@{viewmodel.isFabVisible.get() ? View.VISIBLE : View.GONE}"
|
|
||||||
/>
|
|
||||||
|
|
||||||
</RelativeLayout>
|
</RelativeLayout>
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<View
|
<View
|
||||||
android:visibility="gone"
|
android:id="@+id/bottom_sheet__mtb_colr_edit__background"
|
||||||
android:id="@+id/bg"
|
|
||||||
android:background="#99000000"
|
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"/>
|
android:layout_height="match_parent"
|
||||||
|
android:background="#99000000"
|
||||||
|
android:visibility="gone" />
|
||||||
|
|
||||||
|
<it.integry.integrywmsnative.view.bottom_sheet__mtb_colr_edit.BottomSheetMtbColrEditView
|
||||||
|
android:id="@+id/bottom_sheet__mtb_colr_edit"
|
||||||
<LinearLayout
|
|
||||||
android:id="@+id/bottom_sheet_actions"
|
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:background="#fff"
|
|
||||||
android:orientation="vertical"
|
|
||||||
android:padding="16dp"
|
|
||||||
android:layout_gravity="bottom"
|
|
||||||
app:behavior_hideable="true"
|
app:behavior_hideable="true"
|
||||||
app:behavior_peekHeight="0dp"
|
app:behavior_peekHeight="0dp"
|
||||||
app:layout_behavior="com.google.android.material.bottomsheet.BottomSheetBehavior">
|
app:layout_behavior=".view.bottom_sheet__base.AutoCloseBottomSheetBehavior" />
|
||||||
|
|
||||||
<androidx.constraintlayout.widget.ConstraintLayout
|
<!-- <LinearLayout-->
|
||||||
android:layout_width="match_parent"
|
<!-- android:id="@+id/bottom_sheet_actions"-->
|
||||||
android:layout_height="wrap_content"
|
<!-- android:layout_width="match_parent"-->
|
||||||
android:orientation="horizontal"
|
<!-- android:layout_height="wrap_content"-->
|
||||||
android:layout_gravity="center_vertical">
|
<!-- android:layout_gravity="bottom"-->
|
||||||
|
<!-- android:background="#fff"-->
|
||||||
|
<!-- android:orientation="vertical"-->
|
||||||
|
<!-- android:padding="16dp"-->
|
||||||
|
<!-- app:behavior_hideable="true"-->
|
||||||
|
<!-- app:behavior_peekHeight="0dp"-->
|
||||||
|
<!-- app:layout_behavior="com.google.android.material.bottomsheet.BottomSheetBehavior">-->
|
||||||
|
|
||||||
<LinearLayout
|
<!-- <androidx.constraintlayout.widget.ConstraintLayout-->
|
||||||
android:layout_width="0dp"
|
<!-- android:layout_width="match_parent"-->
|
||||||
android:layout_height="wrap_content"
|
<!-- android:layout_height="wrap_content"-->
|
||||||
android:orientation="vertical"
|
<!-- android:layout_gravity="center_vertical"-->
|
||||||
android:layout_marginBottom="8dp"
|
<!-- android:orientation="horizontal">-->
|
||||||
app:layout_constraintTop_toTopOf="parent"
|
|
||||||
app:layout_constraintEnd_toStartOf="@id/bottom_sheet_actions_quantity"
|
|
||||||
app:layout_constraintStart_toStartOf="parent">
|
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatTextView
|
<!-- <LinearLayout-->
|
||||||
android:id="@+id/bottom_sheet_actions_title"
|
<!-- android:layout_width="0dp"-->
|
||||||
android:layout_width="wrap_content"
|
<!-- android:layout_height="wrap_content"-->
|
||||||
android:layout_height="wrap_content"
|
<!-- android:layout_marginBottom="8dp"-->
|
||||||
tools:text="Descrizione articolo"
|
<!-- android:orientation="vertical"-->
|
||||||
android:textColor="#444"
|
<!-- app:layout_constraintEnd_toStartOf="@id/bottom_sheet_actions_quantity"-->
|
||||||
android:maxLines="2"
|
<!-- app:layout_constraintStart_toStartOf="parent"-->
|
||||||
android:ellipsize="end"
|
<!-- app:layout_constraintTop_toTopOf="parent">-->
|
||||||
android:paddingStart="0dp"
|
|
||||||
android:paddingEnd="8dp"
|
|
||||||
android:textStyle="bold"
|
|
||||||
style="@style/AppTheme.NewMaterial.Text.Medium"/>
|
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatTextView
|
<!-- <androidx.appcompat.widget.AppCompatTextView-->
|
||||||
android:id="@+id/bottom_sheet_actions_subtitle"
|
<!-- android:id="@+id/bottom_sheet_actions_title"-->
|
||||||
android:layout_width="wrap_content"
|
<!-- style="@style/AppTheme.NewMaterial.Text.Medium"-->
|
||||||
android:layout_height="wrap_content"
|
<!-- android:layout_width="wrap_content"-->
|
||||||
tools:text="ABF52IL"
|
<!-- android:layout_height="wrap_content"-->
|
||||||
style="@style/AppTheme.NewMaterial.Text.Small" />
|
<!-- android:ellipsize="end"-->
|
||||||
|
<!-- android:maxLines="2"-->
|
||||||
|
<!-- android:paddingStart="0dp"-->
|
||||||
|
<!-- android:paddingEnd="8dp"-->
|
||||||
|
<!-- android:textColor="#444"-->
|
||||||
|
<!-- android:textStyle="bold"-->
|
||||||
|
<!-- tools:text="Descrizione articolo" />-->
|
||||||
|
|
||||||
</LinearLayout>
|
<!-- <androidx.appcompat.widget.AppCompatTextView-->
|
||||||
|
<!-- android:id="@+id/bottom_sheet_actions_subtitle"-->
|
||||||
|
<!-- style="@style/AppTheme.NewMaterial.Text.Small"-->
|
||||||
|
<!-- android:layout_width="wrap_content"-->
|
||||||
|
<!-- android:layout_height="wrap_content"-->
|
||||||
|
<!-- tools:text="ABF52IL" />-->
|
||||||
|
|
||||||
<TextView
|
<!-- </LinearLayout>-->
|
||||||
android:id="@+id/bottom_sheet_actions_quantity"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:gravity="end"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:textStyle="bold"
|
|
||||||
tools:text="250 PZ"
|
|
||||||
style="@style/AppTheme.NewMaterial.Text.Small"
|
|
||||||
app:layout_constraintTop_toTopOf="parent"
|
|
||||||
app:layout_constraintEnd_toEndOf="parent"/>
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
|
||||||
|
|
||||||
<androidx.constraintlayout.widget.ConstraintLayout
|
<!-- <TextView-->
|
||||||
android:layout_width="match_parent"
|
<!-- android:id="@+id/bottom_sheet_actions_quantity"-->
|
||||||
android:layout_height="wrap_content"
|
<!-- style="@style/AppTheme.NewMaterial.Text.Small"-->
|
||||||
android:orientation="horizontal">
|
<!-- android:layout_width="wrap_content"-->
|
||||||
|
<!-- android:layout_height="wrap_content"-->
|
||||||
|
<!-- android:gravity="end"-->
|
||||||
|
<!-- android:textStyle="bold"-->
|
||||||
|
<!-- app:layout_constraintEnd_toEndOf="parent"-->
|
||||||
|
<!-- app:layout_constraintTop_toTopOf="parent"-->
|
||||||
|
<!-- tools:text="250 PZ" />-->
|
||||||
|
<!-- </androidx.constraintlayout.widget.ConstraintLayout>-->
|
||||||
|
|
||||||
|
<!-- <androidx.constraintlayout.widget.ConstraintLayout-->
|
||||||
|
<!-- android:layout_width="match_parent"-->
|
||||||
|
<!-- android:layout_height="wrap_content"-->
|
||||||
|
<!-- android:orientation="horizontal">-->
|
||||||
|
|
||||||
|
|
||||||
<androidx.constraintlayout.widget.Guideline
|
<!-- <androidx.constraintlayout.widget.Guideline-->
|
||||||
android:id="@+id/guideline_action"
|
<!-- android:id="@+id/guideline_action"-->
|
||||||
android:layout_width="wrap_content"
|
<!-- android:layout_width="wrap_content"-->
|
||||||
android:layout_height="wrap_content"
|
<!-- android:layout_height="wrap_content"-->
|
||||||
android:orientation="vertical"
|
<!-- android:orientation="vertical"-->
|
||||||
app:layout_constraintGuide_percent="0.50" />
|
<!-- app:layout_constraintGuide_percent="0.50" />-->
|
||||||
|
|
||||||
<LinearLayout
|
<!-- <LinearLayout-->
|
||||||
android:layout_width="0dp"
|
<!-- android:layout_width="0dp"-->
|
||||||
android:layout_height="wrap_content"
|
<!-- android:layout_height="wrap_content"-->
|
||||||
android:orientation="vertical"
|
<!-- android:gravity="center"-->
|
||||||
app:layout_constraintTop_toTopOf="parent"
|
<!-- android:orientation="vertical"-->
|
||||||
app:layout_constraintEnd_toStartOf="@id/guideline_action"
|
<!-- app:layout_constraintEnd_toStartOf="@id/guideline_action"-->
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
<!-- app:layout_constraintStart_toStartOf="parent"-->
|
||||||
android:gravity="center">
|
<!-- app:layout_constraintTop_toTopOf="parent">-->
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatImageButton
|
<!-- <androidx.appcompat.widget.AppCompatImageButton-->
|
||||||
android:id="@+id/bottom_sheet_actions_edit_btn"
|
<!-- android:id="@+id/bottom_sheet_actions_edit_btn"-->
|
||||||
android:layout_width="wrap_content"
|
<!-- android:layout_width="wrap_content"-->
|
||||||
android:layout_height="wrap_content"
|
<!-- android:layout_height="wrap_content"-->
|
||||||
android:padding="16dp"
|
<!-- android:background="@android:color/white"-->
|
||||||
android:background="@android:color/white"
|
<!-- android:padding="16dp"-->
|
||||||
android:scaleX="1.5"
|
<!-- android:scaleX="1.5"-->
|
||||||
android:scaleY="1.5"
|
<!-- android:scaleY="1.5"-->
|
||||||
android:src="@drawable/ic_edit_24dp"
|
<!-- android:src="@drawable/ic_edit_24dp"-->
|
||||||
android:tint="@color/green_600" />
|
<!-- android:tint="@color/green_600" />-->
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatTextView
|
<!-- <androidx.appcompat.widget.AppCompatTextView-->
|
||||||
android:layout_width="wrap_content"
|
<!-- style="@style/AppTheme.NewMaterial.Text.Small"-->
|
||||||
android:layout_height="wrap_content"
|
<!-- android:layout_width="wrap_content"-->
|
||||||
style="@style/AppTheme.NewMaterial.Text.Small"
|
<!-- android:layout_height="wrap_content"-->
|
||||||
android:text="@string/edit"/>
|
<!-- android:text="@string/edit" />-->
|
||||||
|
|
||||||
</LinearLayout>
|
<!-- </LinearLayout>-->
|
||||||
|
|
||||||
<LinearLayout
|
<!-- <LinearLayout-->
|
||||||
android:layout_width="0dp"
|
<!-- android:layout_width="0dp"-->
|
||||||
android:layout_height="wrap_content"
|
<!-- android:layout_height="wrap_content"-->
|
||||||
android:orientation="vertical"
|
<!-- android:gravity="center"-->
|
||||||
app:layout_constraintTop_toTopOf="parent"
|
<!-- android:orientation="vertical"-->
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
<!-- app:layout_constraintEnd_toEndOf="parent"-->
|
||||||
app:layout_constraintStart_toStartOf="@id/guideline_action"
|
<!-- app:layout_constraintStart_toStartOf="@id/guideline_action"-->
|
||||||
android:gravity="center">
|
<!-- app:layout_constraintTop_toTopOf="parent">-->
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatImageButton
|
<!-- <androidx.appcompat.widget.AppCompatImageButton-->
|
||||||
android:id="@+id/bottom_sheet_actions_delete_btn"
|
<!-- android:id="@+id/bottom_sheet_actions_delete_btn"-->
|
||||||
android:layout_width="wrap_content"
|
<!-- android:layout_width="wrap_content"-->
|
||||||
android:layout_height="wrap_content"
|
<!-- android:layout_height="wrap_content"-->
|
||||||
android:padding="16dp"
|
<!-- android:background="@android:color/white"-->
|
||||||
android:background="@android:color/white"
|
<!-- android:padding="16dp"-->
|
||||||
android:scaleX="1.5"
|
<!-- android:scaleX="1.5"-->
|
||||||
android:scaleY="1.5"
|
<!-- android:scaleY="1.5"-->
|
||||||
android:src="@drawable/ic_delete_24dp"
|
<!-- android:src="@drawable/ic_delete_24dp"-->
|
||||||
android:tint="@color/red_600" />
|
<!-- android:tint="@color/red_600" />-->
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatTextView
|
<!-- <androidx.appcompat.widget.AppCompatTextView-->
|
||||||
android:layout_width="wrap_content"
|
<!-- style="@style/AppTheme.NewMaterial.Text.Small"-->
|
||||||
android:layout_height="wrap_content"
|
<!-- android:layout_width="wrap_content"-->
|
||||||
style="@style/AppTheme.NewMaterial.Text.Small"
|
<!-- android:layout_height="wrap_content"-->
|
||||||
android:text="@string/delete"/>
|
<!-- android:text="@string/delete" />-->
|
||||||
|
|
||||||
</LinearLayout>
|
<!-- </LinearLayout>-->
|
||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
<!-- </androidx.constraintlayout.widget.ConstraintLayout>-->
|
||||||
|
|
||||||
|
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
|
|
||||||
|
<!-- </LinearLayout>-->
|
||||||
|
|
||||||
|
|
||||||
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user