diff --git a/app/build.gradle b/app/build.gradle index 53f29218..2f02f3d3 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -17,8 +17,8 @@ apply plugin: 'com.google.gms.google-services' android { - def appVersionCode = 114 - def appVersionName = '1.10.11' + def appVersionCode = 118 + def appVersionName = '1.10.15' signingConfigs { release { diff --git a/app/src/main/java/it/integry/integrywmsnative/core/model/CheckableOrdineLavoro.java b/app/src/main/java/it/integry/integrywmsnative/core/model/CheckableOrdineLavoro.java new file mode 100644 index 00000000..464e2f46 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/core/model/CheckableOrdineLavoro.java @@ -0,0 +1,99 @@ +package it.integry.integrywmsnative.core.model; + +import androidx.databinding.Observable; + +import java.util.List; + +import it.integry.integrywmsnative.core.di.BindableBoolean; +import it.integry.integrywmsnative.core.di.BindableFloat; +import it.integry.integrywmsnative.gest.prod_versamento_materiale.core.ChooseOrdsLavFromListItemModel; + +public class CheckableOrdineLavoro { + + + private ChooseOrdsLavFromListItemModel item; + private BindableBoolean checked = new BindableBoolean(false); + private BindableBoolean hidden = new BindableBoolean(false); + private String testata; + + public CheckableOrdineLavoro(ChooseOrdsLavFromListItemModel item) { + this.item = item; + this.item.getHidden().addOnPropertyChangedCallback(new Observable.OnPropertyChangedCallback() { + @Override + public void onPropertyChanged(Observable sender, int propertyId) { + hidden.set(item.isHidden()); + } + }); + } + + public ChooseOrdsLavFromListItemModel getItem() { + return item; + } + + public CheckableOrdineLavoro setItem(ChooseOrdsLavFromListItemModel item) { + this.item = item; + + this.item.getHidden().addOnPropertyChangedCallback(new Observable.OnPropertyChangedCallback() { + @Override + public void onPropertyChanged(Observable sender, int propertyId) { + hidden.set(item.isHidden()); + } + }); + + return this; + } + + public BindableBoolean getChecked() { + return checked; + } + + public CheckableOrdineLavoro setChecked(BindableBoolean checked) { + this.checked = checked; + return this; + } + + public BindableBoolean getHidden() { + return hidden; + } + + public boolean isHidden() { + return hidden.get(); + } + + public CheckableOrdineLavoro setHidden(BindableBoolean hidden) { + this.hidden = hidden; + return this; + } + + public BindableFloat getQtaCol() { + return item.getOrdineLav().getQtaColVersamento(); + } + + public void setQtaCol(float qtaCnf) { + this.item.getOrdineLav().setQtaColVersamento(qtaCnf); + } + + public void toggleCheck() { + this.checked.set(!this.checked.get()); + } + + public boolean isChecked() { + return checked.get(); + } + + public String getTestata() { + return testata; + } + + public void setTestata(String testata) { + this.testata = testata; + } + + public BindableFloat getNumCnf() { + return item.getOrdineLav().getNumCnfVersamento(); + } + + public void setNumCnf(float numCnf) { + this.item.getOrdineLav().setNumCnfVersamento(numCnf); + } +} diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ColliMagazzinoRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ColliMagazzinoRESTConsumer.java index 31e2299a..37ac48e7 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ColliMagazzinoRESTConsumer.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ColliMagazzinoRESTConsumer.java @@ -13,6 +13,7 @@ import com.google.gson.reflect.TypeToken; import org.jetbrains.annotations.NotNull; import java.lang.reflect.Type; +import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.HashMap; @@ -37,14 +38,14 @@ import it.integry.integrywmsnative.core.utility.UtilityDate; import it.integry.integrywmsnative.core.utility.UtilityExceptions; import it.integry.integrywmsnative.core.utility.UtilityQuery; import it.integry.integrywmsnative.core.utility.UtilityString; -import it.integry.integrywmsnative.view.dialogs.ask_cliente.dto.DialogAskClienteClienteDTO; +import it.integry.integrywmsnative.gest.prod_versamento_materiale.dto.OrdineLavorazioneDTO; import retrofit2.Call; import retrofit2.Callback; import retrofit2.Response; -public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer{ +public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer { - public static void saveCollo(MtbColt mtbColtToSave, final ISimpleOperationCallback callback){ + public static void saveCollo(MtbColt mtbColtToSave, final ISimpleOperationCallback callback) { for (int i = 0; i < mtbColtToSave.getMtbColr().size(); i++) { mtbColtToSave.getMtbColr().get(i) @@ -57,7 +58,7 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer{ } - public static void saveCollo(MtbColt mtbColtToSave, RunnableArgs onComplete, RunnableArgs onFailed){ + public static void saveCollo(MtbColt mtbColtToSave, RunnableArgs onComplete, RunnableArgs onFailed) { MtbColt mtbColtToSaveClone = (MtbColt) mtbColtToSave.clone(); mtbColtToSaveClone.setMtbColr(new ObservableArrayList<>()); @@ -65,28 +66,28 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer{ for (int i = 0; i < mtbColtToSave.getMtbColr().size(); i++) { mtbColtToSaveClone.getMtbColr().add( ((MtbColr) mtbColtToSave.getMtbColr().get(i).clone()) - .setMtbAart(null) - .setRifPartitaMag(null)); + .setMtbAart(null) + .setRifPartitaMag(null)); } EntityRESTConsumer.processEntity(mtbColtToSaveClone, new ISimpleOperationCallback() { @Override public void onSuccess(MtbColt value) { - if(onComplete != null) onComplete.run(value); + if (onComplete != null) onComplete.run(value); } @Override public void onFailed(Exception ex) { - if(onFailed != null) onFailed.run(ex); + if (onFailed != null) onFailed.run(ex); } }, MtbColt.class); } - public static void saveColli(List mtbColtsToSave, RunnableArgs> onComplete, RunnableArgs onFailed){ + public static void saveColli(List mtbColtsToSave, RunnableArgs> onComplete, RunnableArgs onFailed) { - for(MtbColt mtbColt : mtbColtsToSave) { + for (MtbColt mtbColt : mtbColtsToSave) { mtbColt.setMtbCols(null); for (int i = 0; i < mtbColt.getMtbColr().size(); i++) { @@ -99,18 +100,18 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer{ EntityRESTConsumer.processEntityList(mtbColtsToSave, new ISimpleOperationCallback>() { @Override public void onSuccess(List value) { - if(onComplete != null) onComplete.run(value); + if (onComplete != null) onComplete.run(value); } @Override public void onFailed(Exception ex) { - if(onFailed != null) onFailed.run(ex); + if (onFailed != null) onFailed.run(ex); } }, true, MtbColt.class); } - public static void saveRigaCollo(MtbColr mtbColrToSave, RunnableArgs onComplete, RunnableArgs onFailed){ + public static void saveRigaCollo(MtbColr mtbColrToSave, RunnableArgs onComplete, RunnableArgs onFailed) { mtbColrToSave.setMtbAart(null); mtbColrToSave.setRifPartitaMag(null); @@ -118,12 +119,12 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer{ EntityRESTConsumer.processEntity(mtbColrToSave, new ISimpleOperationCallback() { @Override public void onSuccess(MtbColr value) { - if(onComplete != null) onComplete.run(value); + if (onComplete != null) onComplete.run(value); } @Override public void onFailed(Exception ex) { - if(onFailed != null) onFailed.run(ex); + if (onFailed != null) onFailed.run(ex); } }, MtbColr.class); @@ -143,12 +144,12 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer{ saveCollo(mtbColtToCreate, new ISimpleOperationCallback() { @Override public void onSuccess(MtbColt value) { - if(onComplete != null) onComplete.run(value); + if (onComplete != null) onComplete.run(value); } @Override public void onFailed(Exception ex) { - if(onFailed != null) onFailed.run(ex); + if (onFailed != null) onFailed.run(ex); } }); } @@ -188,17 +189,17 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer{ // .setCodVdes(null) // .setOperation(CommonModelConsts.OPERATION.INSERT); - if(posizione != null) { + if (posizione != null) { newMtbColt - .setPosizione(posizione.getPosizione()); + .setPosizione(posizione.getPosizione()); - if(posizione.isFlagLineaProduzione()) { + if (posizione.isFlagLineaProduzione()) { newMtbColt .setCodJfas(posizione.getPosizione()); } } - for(int i = 0; i < sourceMtbColt.getMtbColr().size(); i++) { + for (int i = 0; i < sourceMtbColt.getMtbColr().size(); i++) { MtbColr mtbColrClone = (MtbColr) sourceMtbColt.getMtbColr().get(i).clone(); @@ -222,12 +223,87 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer{ saveCollo(newMtbColt, new ISimpleOperationCallback() { @Override public void onSuccess(MtbColt value) { - if(onComplete != null) onComplete.run(value); + if (onComplete != null) onComplete.run(value); } @Override public void onFailed(Exception ex) { - if(onFailed != null) onFailed.run(ex); + if (onFailed != null) onFailed.run(ex); + } + }); + } + + public static void createColliScaricoDaOrdineLavorazione(MtbColt sourceMtbColt, MtbDepoPosizione posizione, List ordini, RunnableArgs onComplete, RunnableArgs onFailed) { + + MtbColt newMtbColt = new MtbColt() + .initDefaultFields() + .setCodAnag(null) + .setGestione(GestioneEnum.LAVORAZIONE) + .setSegno(-1) + .setCodTcol(sourceMtbColt.getCodTcol()) + .setPesoKg(sourceMtbColt.getPesoKg()) + .setPesoNettoKg(sourceMtbColt.getPesoNettoKg()) + .setLarghezzaCm(sourceMtbColt.getLarghezzaCm()) + .setLunghezzaCm(sourceMtbColt.getLunghezzaCm()) + .setAltezzaCm(sourceMtbColt.getAltezzaCm()) + .setCodMdep(sourceMtbColt.getCodMdep()) + .setDataVers(UtilityDate.getDateInstance()) + .setOraFinePrep(UtilityDate.getDateInstance()); + + newMtbColt.setOperation(CommonModelConsts.OPERATION.INSERT); + + + if (posizione != null) { + newMtbColt.setPosizione(posizione.getPosizione()); + if (posizione.isFlagLineaProduzione()) { + newMtbColt.setCodJfas(posizione.getPosizione()); + } + } + + + if (sourceMtbColt.getMtbColr().size() != 1) { + onFailed.run(new Exception()); + return; + } + MtbColr original = sourceMtbColt.getMtbColr().get(0); + MtbColr mtbColrClone = new MtbColr(); + mtbColrClone + .setNumCollo(null) + .setDataCollo(null) + .setRiga(null) + .setGestione(GestioneEnum.LAVORAZIONE) + .setDataColloRif(sourceMtbColt.getDataColloD()) + .setNumColloRif(sourceMtbColt.getNumCollo()) + .setGestioneRif(sourceMtbColt.getGestione()) + .setSerColloRif(sourceMtbColt.getSerCollo()) + .setCodMart(original.getCodMart()) + .setCodCol(original.getCodCol()) + .setQtaCnf(original.getQtaCnf()) + .setCodTagl(original.getCodTagl()) + .setPartitaMag(original.getPartitaMag()) + .setOperation(CommonModelConsts.OPERATION.INSERT); + for (OrdineLavorazioneDTO ordLav : ordini) { + MtbColr ordColr = (MtbColr) mtbColrClone.clone(); + ordColr.setQtaCol(ordLav.getQtaColVersamento().getBigDecimal()); + ordColr.setNumCnf(ordLav.getNumCnfVersamento().getBigDecimal()); + ordColr.setDataOrd(ordLav.getDataOrdProd()) + .setNumOrd(ordLav.getNumOrdProd()) + .setRigaOrd(ordLav.getRigaOrdProd()); + newMtbColt.getMtbColr().add(ordColr); + + + } + + + saveCollo(newMtbColt, new ISimpleOperationCallback() { + @Override + public void onSuccess(MtbColt value) { + if (onComplete != null) onComplete.run(value); + } + + @Override + public void onFailed(Exception ex) { + if (onFailed != null) onFailed.run(ex); } }); } @@ -248,15 +324,15 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer{ Integer customNumCollo = UtilityBarcode.getNumColloFromULAnonima(barcode); String customSerCollo = CommonConst.Config.DEFAULT_ANONYMOUS_UL_SERIE; - if(customNumCollo != null) { + if (customNumCollo != null) { mtbColtToCreate.setNumCollo(customNumCollo); } - if(!UtilityString.isNullOrEmpty(customSerCollo)) { + if (!UtilityString.isNullOrEmpty(customSerCollo)) { mtbColtToCreate.setSerCollo(customSerCollo); } - if(!UtilityBarcode.isEtichettaAnonimaOfCurrentYear(barcode)) { + if (!UtilityBarcode.isEtichettaAnonimaOfCurrentYear(barcode)) { onFailed.run(new Exception("Per continuare scansiona un'etichetta dell'anno corrente")); return; } @@ -267,29 +343,29 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer{ saveCollo(mtbColtToCreate, new ISimpleOperationCallback() { @Override public void onSuccess(MtbColt value) { - if(onComplete != null) onComplete.run(value); + if (onComplete != null) onComplete.run(value); } @Override public void onFailed(Exception ex) { - if(onFailed != null) onFailed.run(ex); + if (onFailed != null) onFailed.run(ex); } }); } - public static void deleteCollo(MtbColt mtbColtToDelete, Runnable onComplete, RunnableArgs onFailed){ + public static void deleteCollo(MtbColt mtbColtToDelete, Runnable onComplete, RunnableArgs onFailed) { mtbColtToDelete.setOperation(CommonModelConsts.OPERATION.DELETE); saveCollo(mtbColtToDelete, new ISimpleOperationCallback() { @Override public void onSuccess(MtbColt value) { - if(onComplete != null) onComplete.run(); + if (onComplete != null) onComplete.run(); } @Override public void onFailed(Exception ex) { - if(onFailed != null) onFailed.run(ex); + if (onFailed != null) onFailed.run(ex); } }); @@ -306,34 +382,34 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer{ ColliMagazzinoRESTConsumerService colliMagazzinoRESTConsumerService = RESTBuilder.getService(ColliMagazzinoRESTConsumerService.class); colliMagazzinoRESTConsumerService.distribuisciCollo(distribuzioneColloDTO) - .enqueue(new Callback>() { - @Override - public void onResponse(Call> call, Response> response) { - analyzeAnswerList(response, "DistribuzioneCollo", obj -> { + .enqueue(new Callback>() { + @Override + public void onResponse(Call> call, Response> response) { + analyzeAnswerList(response, "DistribuzioneCollo", obj -> { - Gson gson = new Gson(); - List jsons = response.body().getEntityList(); + Gson gson = new Gson(); + List jsons = response.body().getEntityList(); - List newList = new ArrayList<>(); + List newList = new ArrayList<>(); - if(jsons != null) { - for (int i = 0; i < jsons.size(); i ++){ - JsonObject jsonTmp = jsons.get(i); + if (jsons != null) { + for (int i = 0; i < jsons.size(); i++) { + JsonObject jsonTmp = jsons.get(i); - newList.add(gson.fromJson(jsonTmp, MtbColt.class)); - } + newList.add(gson.fromJson(jsonTmp, MtbColt.class)); + } + } + + + onComplete.run(newList); + }, onFailed); } - - onComplete.run(newList); - }, onFailed); - } - - @Override - public void onFailure(Call> call, Throwable t) { - onFailed.run(new Exception(t)); - } - }); + @Override + public void onFailure(Call> call, Throwable t) { + onFailed.run(new Exception(t)); + } + }); } @@ -344,7 +420,7 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer{ public void onResponse(Call> call, Response> response) { analyzeAnswer(response, "GetBySSCC", mtbColt -> { - if(mtbColt != null && mtbColt.getMtbColr() != null && mtbColt.getMtbColr().size() > 0){ + if (mtbColt != null && mtbColt.getMtbColr() != null && mtbColt.getMtbColr().size() > 0) { List codMarts = Stream.of(mtbColt.getMtbColr()) .map(MtbColr::getCodMart) .withoutNulls() @@ -353,7 +429,7 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer{ ArticoloRESTConsumer.getByCodMart(codMarts, arts -> { - if(arts != null && arts.size() > 0) { + if (arts != null && arts.size() > 0) { for (MtbColr mtbColr : mtbColt.getMtbColr()) { MtbAart foundMtbAart = null; @@ -361,7 +437,7 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer{ List mtbAartStream = Stream.of(arts) .filter(x -> x.getCodMart().equalsIgnoreCase(mtbColr.getCodMart())).toList(); - if(mtbAartStream != null && mtbAartStream.size() > 0){ + if (mtbAartStream != null && mtbAartStream.size() > 0) { foundMtbAart = mtbAartStream.get(0); } @@ -385,7 +461,6 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer{ }, onFailed); - } @Override @@ -403,10 +478,8 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer{ } - - private static void cyclicGetMultipleByTestate(@NotNull Iterator sourceMtbColts, boolean onlyResiduo, ArrayList resultMtbColt, Runnable onComplete, RunnableArgs onAbort) { - if(sourceMtbColts.hasNext()){ + if (sourceMtbColts.hasNext()) { getByTestata(sourceMtbColts.next(), onlyResiduo, false, mtbColt -> { resultMtbColt.add(mtbColt); cyclicGetMultipleByTestate(sourceMtbColts, onlyResiduo, resultMtbColt, onComplete, onAbort); @@ -419,7 +492,7 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer{ public static void getByTestata(MtbColt testata, boolean onlyResiduo, boolean throwExcIfNull, RunnableArgs onComplete, RunnableArgs onFailed) { String ssccString = null; - if(testata.getSerCollo().equalsIgnoreCase(CommonConst.Config.DEFAULT_ANONYMOUS_UL_SERIE)){ + if (testata.getSerCollo().equalsIgnoreCase(CommonConst.Config.DEFAULT_ANONYMOUS_UL_SERIE)) { ssccString = "U"; SimpleDateFormat sdf = new SimpleDateFormat("yy"); @@ -454,32 +527,29 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer{ } - - public static void changePosizione(MtbColt testata, MtbDepoPosizione posizione, Runnable onComplete, RunnableArgs onFailed) { testata.setOperation(CommonModelConsts.OPERATION.UPDATE); - if(posizione == null) testata.setPosizione(null); + if (posizione == null) testata.setPosizione(null); else testata.setPosizione(posizione.getPosizione()); ColliMagazzinoRESTConsumer.saveCollo(testata, new ISimpleOperationCallback() { @Override public void onSuccess(MtbColt value) { - if(onComplete != null) onComplete.run(); + if (onComplete != null) onComplete.run(); } @Override public void onFailed(Exception ex) { - if(onFailed != null) onFailed.run(ex); + if (onFailed != null) onFailed.run(ex); } }); } - - public static void deleteRiga(MtbColr mtbColrToDelete, Runnable onComplete, RunnableArgs onFailed){ + public static void deleteRiga(MtbColr mtbColrToDelete, Runnable onComplete, RunnableArgs onFailed) { MtbColr newMtbColr = new MtbColr(); newMtbColr.setNumCollo(mtbColrToDelete.getNumCollo()); @@ -494,40 +564,36 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer{ EntityRESTConsumer.processEntity(newMtbColr, new ISimpleOperationCallback() { @Override public void onSuccess(MtbColr value) { - if(onComplete != null) onComplete.run(); + if (onComplete != null) onComplete.run(); } @Override public void onFailed(Exception ex) { - if(onFailed != null) onFailed.run(ex); + if (onFailed != null) onFailed.run(ex); } }, MtbColr.class); } - public static void updateRiga(MtbColr mtbColrToUpdate, Runnable onComplete, RunnableArgs onFailed){ + public static void updateRiga(MtbColr mtbColrToUpdate, Runnable onComplete, RunnableArgs onFailed) { mtbColrToUpdate.setOperation(CommonModelConsts.OPERATION.UPDATE); EntityRESTConsumer.processEntity(mtbColrToUpdate, new ISimpleOperationCallback() { @Override public void onSuccess(MtbColr value) { - if(onComplete != null) onComplete.run(); + if (onComplete != null) onComplete.run(); } @Override public void onFailed(Exception ex) { - if(onFailed != null) onFailed.run(ex); + if (onFailed != null) onFailed.run(ex); } }, MtbColr.class); } - - - - public static void updateDataFine(Context context, Dialog progress, MtbColt mtbColt, Runnable onComplete) { MtbColt cloneMtbColt = (MtbColt) mtbColt.clone(); @@ -544,7 +610,6 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer{ } - public static void doesColloContainsAnyRow(MtbColt mtbColt, RunnableArgs onComplete, RunnableArgs onFailed) { HashMap params = new HashMap<>(); @@ -558,12 +623,12 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer{ String query = "SELECT COUNT(*) as value FROM mtb_colr " + "WHERE " + whereCond; - Type typeOfObjectsList = new TypeToken>>() {}.getType(); + Type typeOfObjectsList = new TypeToken>>() { + }.getType(); SystemRESTConsumer.>>processSql(query, typeOfObjectsList, data -> { onComplete.run(data.get(0).getValue() > 0); }, onFailed); } - } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/MesRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/MesRESTConsumer.java new file mode 100644 index 00000000..d5187e59 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/MesRESTConsumer.java @@ -0,0 +1,31 @@ +package it.integry.integrywmsnative.core.rest.consumers; + +import java.util.List; + +import it.integry.integrywmsnative.core.expansion.RunnableArgs; +import it.integry.integrywmsnative.core.rest.RESTBuilder; +import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse; +import it.integry.integrywmsnative.gest.prod_versamento_materiale.dto.OrdineLavorazioneDTO; +import retrofit2.Call; +import retrofit2.Callback; +import retrofit2.Response; + +public class MesRESTConsumer extends _BaseRESTConsumer { + + public static void getOrdiniLavorazioneMateriale(String codJfas, String idMateriale, RunnableArgs> onComplete, RunnableArgs onFailed){ + MesRESTConsumerService mesRESTConsumerService = RESTBuilder.getService(MesRESTConsumerService.class); + mesRESTConsumerService.getOrdiniLavorazioneMateriale(codJfas,idMateriale).enqueue(new Callback>>() { + @Override + public void onResponse(Call>> call, Response>> response) { + analyzeAnswer(response, "getAvailablePosizioni", (m) -> onComplete.run(response.body().getDto()), onFailed); + } + + @Override + public void onFailure(Call>> call, Throwable t) { + onFailed.run(new Exception(t)); + } + }); + + } + +} diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/MesRESTConsumerService.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/MesRESTConsumerService.java new file mode 100644 index 00000000..09a058fd --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/MesRESTConsumerService.java @@ -0,0 +1,17 @@ +package it.integry.integrywmsnative.core.rest.consumers; + +import java.util.List; + +import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse; +import it.integry.integrywmsnative.gest.prod_versamento_materiale.dto.OrdineLavorazioneDTO; +import retrofit2.Call; +import retrofit2.http.GET; +import retrofit2.http.Query; + +public interface MesRESTConsumerService { + + + @GET("mes/getOrdiniLavorazioneMateriale") + Call>> getOrdiniLavorazioneMateriale(@Query("codJfas") String codJfas, @Query("idMateriale") String idMateriale); + +} diff --git a/app/src/main/java/it/integry/integrywmsnative/core/settings/DBSettingsModel.java b/app/src/main/java/it/integry/integrywmsnative/core/settings/DBSettingsModel.java index dd7a8266..ef2a1734 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/settings/DBSettingsModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/settings/DBSettingsModel.java @@ -27,6 +27,7 @@ public class DBSettingsModel { private boolean flagCanAddExtraQuantitySpedizione; private boolean flagEnableCheckDepositoSpedizione; private boolean flagUseNewPickingListSpedizione; + private boolean flagVersamentoDirettoProduzione; private boolean flagAskPesoColloSpedizione; private boolean flagForceAllToColli; @@ -180,4 +181,13 @@ public class DBSettingsModel { this.flagUseNewPickingListSpedizione = flagUseNewPickingListSpedizione; return this; } + + public boolean isFlagVersamentoDirettoProduzione() { + return flagVersamentoDirettoProduzione; + } + + public DBSettingsModel setFlagVersamentoDirettoProduzione(boolean flagVersamentoDirettoProduzione) { + this.flagVersamentoDirettoProduzione = flagVersamentoDirettoProduzione; + return this; + } } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/settings/SettingsManager.java b/app/src/main/java/it/integry/integrywmsnative/core/settings/SettingsManager.java index 10146eab..37d5d32a 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/settings/SettingsManager.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/settings/SettingsManager.java @@ -230,6 +230,10 @@ public class SettingsManager { .setGestName("PICKING") .setSection("SPEDIZIONE") .setKeySection("FLAG_USE_NEW_PICKING_LIST")); + stbGestSetupList.add(new StbGestSetup() + .setGestName("PICKING") + .setSection("PRODUZIONE") + .setKeySection("FLAG_VERSAMENTO_DIRETTO")); GestSetupRESTConsumer.getValues(stbGestSetupList, list -> { @@ -246,6 +250,7 @@ public class SettingsManager { dbSettingsModelIstance.setFlagForceAllToColli(getValueFromList(list, "FLAG_FORCE_ALL_TO_COLLI", Boolean.class)); dbSettingsModelIstance.setFlagAskPesoColloSpedizione(getValueFromList(list, "FLAG_ASK_PESO_COLLO", Boolean.class)); dbSettingsModelIstance.setFlagUseNewPickingListSpedizione(getValueFromList(list, "FLAG_USE_NEW_PICKING_LIST", Boolean.class)); + dbSettingsModelIstance.setFlagVersamentoDirettoProduzione(getValueFromList(list, "FLAG_VERSAMENTO_DIRETTO", Boolean.class)); if(onComplete != null) onComplete.run(); }, onFailed); diff --git a/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityQuery.java b/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityQuery.java index cad443f8..3f47ee99 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityQuery.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityQuery.java @@ -1,9 +1,38 @@ package it.integry.integrywmsnative.core.utility; import java.util.HashMap; +import java.util.List; public class UtilityQuery { + + public static String concatFieldListInWhereCond(List> inputData) { + StringBuilder sbWhereCond = new StringBuilder(); + + for(int i = 0; i < inputData.size(); i++) { + + HashMap singleInputData = inputData.get(i); + Object[] keys = singleInputData.keySet().toArray(); + + sbWhereCond.append("("); + + for(int k = 0; k < keys.length; k++) { + Object value = singleInputData.get(keys[k]); + + sbWhereCond.append(keys[k] + (value == null ? " IS NULL" : " = " + UtilityDB.valueToString(value))); + + if(k < keys.length - 1) sbWhereCond.append(" AND "); + } + + sbWhereCond.append(")"); + + if(i < inputData.size() - 1) sbWhereCond.append(" OR "); + } + + + return sbWhereCond.toString(); + } + public static String concatFieldsInWhereCond(HashMap inputData) { StringBuilder sbWhereCond = new StringBuilder(); diff --git a/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityString.java b/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityString.java index 3a1b6f09..094e3664 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityString.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityString.java @@ -1,5 +1,11 @@ package it.integry.integrywmsnative.core.utility; +import android.text.Html; +import android.text.Spanned; + +import androidx.annotation.IdRes; +import androidx.annotation.StringRes; + import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -58,4 +64,12 @@ public class UtilityString { return value; } + public static Spanned formatHtmlString(String format, String... params){ + return Html.fromHtml(String.format(format,params)); + } + + public static Spanned formatHtmlStringFromResId(@StringRes int stringId, String... params){ + return Html.fromHtml(String.format(UtilityResources.getString(stringId),params)); + } + } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/contenuto_bancale/core/ContenutoBancaleListAdapter.java b/app/src/main/java/it/integry/integrywmsnative/gest/contenuto_bancale/core/ContenutoBancaleListAdapter.java index 47a44604..fe963a00 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/contenuto_bancale/core/ContenutoBancaleListAdapter.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/contenuto_bancale/core/ContenutoBancaleListAdapter.java @@ -11,7 +11,9 @@ import android.view.ViewGroup; import it.integry.integrywmsnative.R; import it.integry.integrywmsnative.core.interfaces.IRecyclerItemClicked; import it.integry.integrywmsnative.core.model.MtbColr; +import it.integry.integrywmsnative.core.settings.SettingsManager; import it.integry.integrywmsnative.core.utility.UtilityNumber; +import it.integry.integrywmsnative.core.utility.UtilityResources; import it.integry.integrywmsnative.core.utility.UtilityString; import it.integry.integrywmsnative.databinding.ListaContenutoBancaleListModelBinding; @@ -36,14 +38,17 @@ public class ContenutoBancaleListAdapter extends RecyclerView.Adapter{ @@ -20,8 +24,8 @@ public class PickingLiberoListAdapter extends RecyclerView.Adapter mOnItemClickListener; - public static class ViewHolder extends RecyclerView.ViewHolder { - protected ListaPickingLiberoListModelBinding mViewDataBinding; + public class ViewHolder extends RecyclerView.ViewHolder { + private ListaPickingLiberoListModelBinding mViewDataBinding; public ViewHolder(ListaPickingLiberoListModelBinding v) { @@ -30,6 +34,20 @@ public class PickingLiberoListAdapter extends RecyclerView.Adapter { .setRiga(null) .setDatetimeRow(UtilityDate.getDateInstance()) .setQtaCol(mtbColrToDeleteClone.getQtaCol().multiply(new BigDecimal(-1))) - .setOperation(CommonModelConsts.OPERATION.DELETE); + .setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE ); MtbColt mtbColtClone = (MtbColt) mtbColt.get().clone(); mtbColtClone.setMtbColr(new ObservableArrayList<>()); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/picking_resi/core/PickingResiListAdapter.java b/app/src/main/java/it/integry/integrywmsnative/gest/picking_resi/core/PickingResiListAdapter.java index 585b0079..a177aaef 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/picking_resi/core/PickingResiListAdapter.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/picking_resi/core/PickingResiListAdapter.java @@ -21,8 +21,10 @@ import it.integry.integrywmsnative.R; import it.integry.integrywmsnative.core.expansion.RunnableArgs; import it.integry.integrywmsnative.core.model.DtbDocr; import it.integry.integrywmsnative.core.model.MtbColr; +import it.integry.integrywmsnative.core.settings.SettingsManager; import it.integry.integrywmsnative.core.utility.UtilityDate; import it.integry.integrywmsnative.core.utility.UtilityNumber; +import it.integry.integrywmsnative.core.utility.UtilityResources; import it.integry.integrywmsnative.core.utility.UtilityString; import it.integry.integrywmsnative.databinding.UltimeConsegneMainListItemBinding; import it.integry.integrywmsnative.databinding.UltimeConsegneMainListItemHeaderBinding; @@ -122,24 +124,37 @@ public class PickingResiListAdapter extends SectionedRecyclerViewAdapter 0 && qtaEvasa.floatValue() > 0) { + } else if (qtaDaEvadere > 0 && qtaColEvasa.floatValue() > 0) { holder.mBinding.getRoot().setBackgroundColor(mContext.getResources().getColor(R.color.orange_600_with_alpha)); } else { holder.mBinding.getRoot().setBackgroundColor(mContext.getResources().getColor(R.color.full_white)); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/prod_recupero_materiale/core/HistoryULsListAdapter.java b/app/src/main/java/it/integry/integrywmsnative/gest/prod_recupero_materiale/core/HistoryULsListAdapter.java index d9555e37..3dd6da5f 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/prod_recupero_materiale/core/HistoryULsListAdapter.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/prod_recupero_materiale/core/HistoryULsListAdapter.java @@ -2,6 +2,7 @@ package it.integry.integrywmsnative.gest.prod_recupero_materiale.core; import android.content.Context; import android.view.LayoutInflater; +import android.view.View; import android.view.ViewGroup; import androidx.databinding.DataBindingUtil; @@ -27,6 +28,7 @@ public class HistoryULsListAdapter extends SectionedRecyclerViewAdapter mOriginalDataset; private List mDataset; + private View mEmptyView; private RunnableArgs mOnItemClicked; @@ -54,9 +56,10 @@ public class HistoryULsListAdapter extends SectionedRecyclerViewAdapter myDataset) { + public HistoryULsListAdapter(Context context, List myDataset, View emptyView) { mContext = context; mOriginalDataset = myDataset; + mEmptyView = emptyView; mDataset = orderItems(myDataset); } @@ -68,6 +71,8 @@ public class HistoryULsListAdapter extends SectionedRecyclerViewAdapter 0 ? View.GONE : View.VISIBLE); } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/prod_recupero_materiale/core/ProdRecuperoMaterialeHelper.java b/app/src/main/java/it/integry/integrywmsnative/gest/prod_recupero_materiale/core/ProdRecuperoMaterialeHelper.java index c60b5700..2455b828 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/prod_recupero_materiale/core/ProdRecuperoMaterialeHelper.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/prod_recupero_materiale/core/ProdRecuperoMaterialeHelper.java @@ -61,6 +61,7 @@ public class ProdRecuperoMaterialeHelper { "LEFT OUTER JOIN jtb_fasi ON mtb_colt.cod_jfas = jtb_fasi.cod_jfas " + "WHERE jtb_fasi.cod_jfas IS NOT NULL " + "AND segno = -1 " + + "AND mtb_colr.data_collo > DATEADD(DAY, -1, GETDATE()) " + "GROUP BY jtb_fasi.cod_jfas, " + "jtb_fasi.descrizione, " + "mtb_colr.gestione, " + diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/prod_recupero_materiale/viewmodel/ProdRecuperoMaterialeViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/prod_recupero_materiale/viewmodel/ProdRecuperoMaterialeViewModel.java index a25821ee..c3a4a8b2 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/prod_recupero_materiale/viewmodel/ProdRecuperoMaterialeViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/prod_recupero_materiale/viewmodel/ProdRecuperoMaterialeViewModel.java @@ -87,7 +87,7 @@ public class ProdRecuperoMaterialeViewModel { private void initRecyclerView() { - mAdapter = new HistoryULsListAdapter(mContext, new ArrayList<>()); + mAdapter = new HistoryULsListAdapter(mContext, new ArrayList<>(), mBinding.emptyView); mAdapter.setOnItemClicked(data -> this.dispatchItem(data, null, null)); mBinding.prodRecuperoMaterialeMainList.setLayoutManager(new LinearLayoutManager(mContext)); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/prod_versamento_materiale/core/ChooseOrdsLavFromListAdapter.java b/app/src/main/java/it/integry/integrywmsnative/gest/prod_versamento_materiale/core/ChooseOrdsLavFromListAdapter.java new file mode 100644 index 00000000..cd6dee09 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/gest/prod_versamento_materiale/core/ChooseOrdsLavFromListAdapter.java @@ -0,0 +1,194 @@ +package it.integry.integrywmsnative.gest.prod_versamento_materiale.core; + +import android.content.Context; +import android.view.LayoutInflater; +import android.view.ViewGroup; + +import androidx.databinding.DataBindingUtil; +import androidx.databinding.Observable; +import androidx.recyclerview.widget.RecyclerView; + +import com.annimon.stream.Optional; +import com.annimon.stream.Stream; + +import java.math.BigDecimal; +import java.text.ParseException; +import java.util.HashMap; +import java.util.List; + +import it.integry.integrywmsnative.R; +import it.integry.integrywmsnative.core.exception.DateNotRecognizedException; +import it.integry.integrywmsnative.core.exception.TimeNotRecognizedException; +import it.integry.integrywmsnative.core.model.CheckableOrdineLavoro; +import it.integry.integrywmsnative.core.model.MtbColr; +import it.integry.integrywmsnative.core.model.MtbColt; +import it.integry.integrywmsnative.core.settings.SettingsManager; +import it.integry.integrywmsnative.core.utility.UtilityDate; +import it.integry.integrywmsnative.core.utility.UtilityNumber; +import it.integry.integrywmsnative.core.utility.UtilityResources; +import it.integry.integrywmsnative.core.utility.UtilityString; +import it.integry.integrywmsnative.databinding.FragmentChooseOrdsLavFromListItemModelBinding; +import it.integry.integrywmsnative.gest.prod_versamento_materiale.dto.OrdineLavorazioneDTO; + +public class ChooseOrdsLavFromListAdapter extends RecyclerView.Adapter { + + protected Context mContext; + + private MtbColt mMtbColt; + private MtbColr mMtbColr; + private List mDataset; + private HashMap mDatasetPositions = new HashMap<>(); + + + public ChooseOrdsLavFromListAdapter(Context context, List myDataset, MtbColt mtbColt) throws ParseException, TimeNotRecognizedException, DateNotRecognizedException { + mContext = context; + mMtbColt = mtbColt; + mMtbColr = mtbColt.getMtbColr().get(0); + if (myDataset != null) { + mDataset = Stream.of(myDataset) + .withoutNulls() + .map(CheckableOrdineLavoro::new).toList(); + + for (int i = 0; i < mDataset.size(); i++) { + final CheckableOrdineLavoro itemModel = mDataset.get(i); + OrdineLavorazioneDTO ordine = itemModel.getItem().getOrdineLav(); + itemModel.setTestata(UtilityString.formatHtmlStringFromResId(R.string.ord_testata, String.valueOf(ordine.getNumOrd()), UtilityDate.formatDate(ordine.getDateOrd(), UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN)).toString()); + mDatasetPositions.put(itemModel, i); + + itemModel.getHidden().addOnPropertyChangedCallback(new Observable.OnPropertyChangedCallback() { + @Override + public void onPropertyChanged(Observable sender, int propertyId) { + onItemHidden(itemModel); + } + }); + itemModel.getChecked().addOnPropertyChangedCallback(new Observable.OnPropertyChangedCallback() { + @Override + public void onPropertyChanged(Observable sender, int propertyId) { + onItemChecked(itemModel); + } + }); + } + } + } + + private void onItemHidden(CheckableOrdineLavoro itemModel) { + if (itemModel.isHidden()) { + mDataset.remove(itemModel); + } else { + mDataset.add(mDatasetPositions.get(itemModel), itemModel); + } + calculateMtbColtShare(); + notifyDataSetChanged(); + } + + private void onItemChecked(CheckableOrdineLavoro itemModel) { + if (!itemModel.isChecked()) { + itemModel.setQtaCol(0); + itemModel.setNumCnf(0); + } + calculateMtbColtShare(); + notifyDataSetChanged(); + } + + + private void calculateMtbColtShare() { + MtbColr mtbColr = mMtbColt.getMtbColr().get(0); + BigDecimal residuoCol = mtbColr.getQtaCol(); + BigDecimal residuoCnf = mtbColr.getNumCnf(); + BigDecimal offset = BigDecimal.ZERO.add(residuoCol); + mtbColr.setQtaCnf(mtbColr.getQtaCol().divide(mtbColr.getNumCnf(),5,BigDecimal.ROUND_HALF_UP)); + + List ordiniSelezionati = getSelectedData(); + int totalHr = Stream.of(ordiniSelezionati).mapToInt(x -> x.getItem().getOrdineLav().getHrNum()).sum(); + for (CheckableOrdineLavoro c : ordiniSelezionati) { + BigDecimal usedCol, usedCnf; + float perc = (c.getItem().getOrdineLav().getHrNum() * 100) / totalHr; + if (SettingsManager.iDB().isFlagForceAllToColli() || (mtbColr.getMtbAart() != null && !mtbColr.getMtbAart().isFlagQtaCnfFissa())) { + usedCnf = residuoCnf.multiply(BigDecimal.valueOf(perc)).divide(BigDecimal.valueOf(100)).setScale(0, BigDecimal.ROUND_CEILING); + usedCol = usedCnf.multiply(mtbColr.getQtaCnf()).setScale(0,BigDecimal.ROUND_FLOOR); + } else { + usedCol = residuoCol.multiply(BigDecimal.valueOf(perc)).divide(BigDecimal.valueOf(100)).setScale(0, BigDecimal.ROUND_FLOOR); + usedCnf = usedCol.divide(mtbColr.getQtaCnf()).setScale(0, BigDecimal.ROUND_CEILING); + } + offset = offset.subtract(usedCol); + c.setQtaCol(usedCol.floatValue()); + c.setNumCnf(usedCnf.floatValue()); + } + if (ordiniSelezionati.size() > 0 && offset.floatValue() != 0) { + CheckableOrdineLavoro majorOrder = Stream.of(ordiniSelezionati).max((o1, o2) -> Integer.compare(o1.getItem().getOrdineLav().getHrNum(), o2.getItem().getOrdineLav().getHrNum())).get(); + if (majorOrder == null) { + majorOrder = ordiniSelezionati.get(0); + } + majorOrder.setQtaCol(majorOrder.getQtaCol().get() + offset.floatValue()); + } + } + + public static class ViewHolder extends RecyclerView.ViewHolder { + protected FragmentChooseOrdsLavFromListItemModelBinding mViewDataBinding; + + + public ViewHolder(FragmentChooseOrdsLavFromListItemModelBinding v) { + super(v.getRoot()); + mViewDataBinding = v; + } + + public void bind(CheckableOrdineLavoro checkableOrdineLavoro, MtbColr mtbColr) { + mViewDataBinding.setCheckableOrdineLav(checkableOrdineLavoro); + mViewDataBinding.setMtbColr(mtbColr); + mViewDataBinding.executePendingBindings(); + + if (!SettingsManager.iDB().isFlagForceAllToColli() && (mtbColr.getMtbAart() == null || mtbColr.getMtbAart().isFlagQtaCnfFissa())) { + String text = UtilityNumber.decimalToString(checkableOrdineLavoro.getQtaCol().get()); + + if (mtbColr.getMtbAart() != null) { + text += !UtilityString.isNullOrEmpty(mtbColr.getMtbAart().getUntMis()) ? "\n" + mtbColr.getMtbAart().getUntMis() : ""; + } + + mViewDataBinding.qtaTextview.setText(text); + } else { + mViewDataBinding.qtaTextview.setText(UtilityNumber.decimalToString(checkableOrdineLavoro.getNumCnf().get()) + "\n" + UtilityResources.getString(R.string.unt_mis_col)); + } + + mViewDataBinding.setMtbColr(mtbColr); + mViewDataBinding.executePendingBindings(); + } + } + + @Override + public ChooseOrdsLavFromListAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + // create a new view + FragmentChooseOrdsLavFromListItemModelBinding viewDataBinding = DataBindingUtil.inflate(LayoutInflater.from(parent.getContext()), R.layout.fragment_choose_ords_lav_from_list__item_model, parent, false); + + return new ViewHolder(viewDataBinding); + } + + @Override + public void onBindViewHolder(ChooseOrdsLavFromListAdapter.ViewHolder holder, int position) { + CheckableOrdineLavoro item = mDataset.get(position); + holder.bind(item, mMtbColr); + + } + + @Override + public void onViewRecycled(ChooseOrdsLavFromListAdapter.ViewHolder holder) { + super.onViewRecycled(holder); + } + + @Override + public int getItemCount() { + return mDataset.size(); + } + + public List getSelectedItems() { + return Stream.of(mDataset) + .filter(y -> y.getChecked().get()) + .map(x -> x.getItem().getOrdineLav()).toList(); + } + + public List getSelectedData() { + return Stream.of(mDataset) + .filter(y -> y.getChecked().get()) + .map(x -> x).toList(); + } + +} diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/prod_versamento_materiale/core/ChooseOrdsLavFromListItemModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/prod_versamento_materiale/core/ChooseOrdsLavFromListItemModel.java new file mode 100644 index 00000000..747fd4ce --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/gest/prod_versamento_materiale/core/ChooseOrdsLavFromListItemModel.java @@ -0,0 +1,32 @@ +package it.integry.integrywmsnative.gest.prod_versamento_materiale.core; + +import it.integry.integrywmsnative.core.di.BindableBoolean; +import it.integry.integrywmsnative.gest.prod_versamento_materiale.dto.OrdineLavorazioneDTO; + +public class ChooseOrdsLavFromListItemModel { + + private OrdineLavorazioneDTO ordineLav; + private BindableBoolean hidden = new BindableBoolean(false); + + public OrdineLavorazioneDTO getOrdineLav() { + return ordineLav; + } + + public ChooseOrdsLavFromListItemModel setOrdineLav(OrdineLavorazioneDTO ordineLav) { + this.ordineLav= ordineLav; + return this; + } + + public boolean isHidden() { + return hidden.get(); + } + + public ChooseOrdsLavFromListItemModel setHidden(boolean hidden) { + this.hidden.set(hidden); + return this; + } + + public BindableBoolean getHidden() { + return hidden; + } +} diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/prod_versamento_materiale/dto/OrdineLavorazioneDTO.java b/app/src/main/java/it/integry/integrywmsnative/gest/prod_versamento_materiale/dto/OrdineLavorazioneDTO.java new file mode 100644 index 00000000..3cf14678 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/gest/prod_versamento_materiale/dto/OrdineLavorazioneDTO.java @@ -0,0 +1,466 @@ +package it.integry.integrywmsnative.gest.prod_versamento_materiale.dto; + +import java.math.BigDecimal; +import java.text.ParseException; +import java.util.Date; + +import it.integry.integrywmsnative.core.di.BindableFloat; +import it.integry.integrywmsnative.core.exception.DateNotRecognizedException; +import it.integry.integrywmsnative.core.exception.TimeNotRecognizedException; +import it.integry.integrywmsnative.core.utility.UtilityDate; + +public class OrdineLavorazioneDTO { + + private String dataOrdProd; + + private Integer numOrdProd; + + private Integer rigaOrdProd; + + private String flagAvviabile; + + private String untOrd; + + private BigDecimal rapConv; + + private Integer posRiga; + + private BigDecimal numPezzi; + + private BigDecimal numCnf; + + private BigDecimal qtaCnf; + + private Integer ggScadPartita; + + private BigDecimal colliPedana; + + private BigDecimal numPedane; + + private String dataOrd; + + private String flagEvasoProd; + + private String gestione; + + private Integer numOrd; + + private String descrizioneProd; + + private String codJfas; + + private String partitaMag; + + private String dataScad; + + private String partitaMagSuggested; + + private String dataScadSuggested; + + private String codProd; + + private Integer maxStep; + + private String dataInizProd; + + private String dataIniz; + + private String dataFine; + + private BigDecimal qtaProd; + + private BigDecimal qtaTrasferite; + + private String stato; + + private String codTcolUl; + + private String codAnag; + + private String rifOrd; + + private String codVdes; + + private String codMdep; + + private String codJcom; + + private String noteLav; + + private BigDecimal tempoTrascorso; + + private String descCommessa; + + private BigDecimal prodStd; + + private Object mtbColtToEdit; + + private int hrNum; + + + private BindableFloat qtaColVersamento = new BindableFloat(); + private BindableFloat numCnfVersamento = new BindableFloat(); + + public String getDataOrdProd() { + return dataOrdProd; + } + + public void setDataOrdProd(String dataOrdProd) { + this.dataOrdProd = dataOrdProd; + } + + public Integer getNumOrdProd() { + return numOrdProd; + } + + public void setNumOrdProd(Integer numOrdProd) { + this.numOrdProd = numOrdProd; + } + + public Integer getRigaOrdProd() { + return rigaOrdProd; + } + + public void setRigaOrdProd(Integer rigaOrdProd) { + this.rigaOrdProd = rigaOrdProd; + } + + public Integer getPosRiga() { + return posRiga; + } + + public void setPosRiga(Integer posRiga) { + this.posRiga = posRiga; + } + + public String getDataOrd() { + return dataOrd; + } + public Date getDateOrd() throws ParseException, TimeNotRecognizedException, DateNotRecognizedException { + return UtilityDate.recognizeDate(dataOrd); + } + + public void setDataOrd(String dataOrd) { + this.dataOrd = dataOrd; + } + + public String getFlagEvasoProd() { + return flagEvasoProd; + } + + public void setFlagEvasoProd(String flagEvasoProd) { + this.flagEvasoProd = flagEvasoProd; + } + + public String getGestione() { + return gestione; + } + + public void setGestione(String gestione) { + this.gestione = gestione; + } + + public Integer getNumOrd() { + return numOrd; + } + + public void setNumOrd(Integer numOrd) { + this.numOrd = numOrd; + } + + public String getDescrizioneProd() { + return descrizioneProd; + } + + public void setDescrizioneProd(String descrizioneProd) { + this.descrizioneProd = descrizioneProd; + } + + public String getCodJfas() { + return codJfas; + } + + public void setCodJfas(String codJfas) { + this.codJfas = codJfas; + } + + public Integer getMaxStep() { + return maxStep; + } + + public void setMaxStep(Integer maxStep) { + this.maxStep = maxStep; + } + + public String getDataIniz() { + return dataIniz; + } + + public void setDataIniz(String dataIniz) { + this.dataIniz = dataIniz; + } + + public String getDataFine() { + return dataFine; + } + + public void setDataFine(String dataFine) { + this.dataFine = dataFine; + } + + public BigDecimal getQtaProd() { + return qtaProd; + } + + public void setQtaProd(BigDecimal qtaProd) { + this.qtaProd = qtaProd; + } + + public BigDecimal getQtaTrasferite() { + return qtaTrasferite; + } + + public void setQtaTrasferite(BigDecimal qtaTrasferite) { + this.qtaTrasferite = qtaTrasferite; + } + + public String getStato() { + return stato; + } + + public void setStato(String stato) { + this.stato = stato; + } + + public String getUntOrd() { + return untOrd; + } + + public void setUntOrd(String untOrd) { + this.untOrd = untOrd; + } + + public BigDecimal getRapConv() { + return rapConv; + } + + public void setRapConv(BigDecimal rapConv) { + this.rapConv = rapConv; + } + + public BigDecimal getNumCnf() { + return numCnf; + } + + public void setNumCnf(BigDecimal numCnf) { + this.numCnf = numCnf; + } + + public BigDecimal getQtaCnf() { + return qtaCnf; + } + + public void setQtaCnf(BigDecimal qtaCnf) { + this.qtaCnf = qtaCnf; + } + + public String getPartitaMag() { + return partitaMag; + } + + public void setPartitaMag(String partitaMag) { + this.partitaMag = partitaMag; + } + + public String getDataScad() { + return dataScad; + } + + public void setDataScad(String dataScad) { + this.dataScad = dataScad; + } + + public String getPartitaMagSuggested() { + return partitaMagSuggested; + } + + public void setPartitaMagSuggested(String partitaMagSuggested) { + this.partitaMagSuggested = partitaMagSuggested; + } + + public String getDataScadSuggested() { + return dataScadSuggested; + } + + public void setDataScadSuggested(String dataScadSuggested) { + this.dataScadSuggested = dataScadSuggested; + } + + public String getCodProd() { + return codProd; + } + + public void setCodProd(String codProd) { + this.codProd = codProd; + } + + public String getDataInizProd() { + return dataInizProd; + } + + public void setDataInizProd(String dataInizProd) { + this.dataInizProd = dataInizProd; + } + + public String getCodTcolUl() { + return codTcolUl; + } + + public void setCodTcolUl(String codTcolUl) { + this.codTcolUl = codTcolUl; + } + + public String getCodAnag() { + return codAnag; + } + + public void setCodAnag(String codAnag) { + this.codAnag = codAnag; + } + + public String getRifOrd() { + return rifOrd; + } + + public void setRifOrd(String rifOrd) { + this.rifOrd = rifOrd; + } + + public String getCodVdes() { + return codVdes; + } + + public void setCodVdes(String codVdes) { + this.codVdes = codVdes; + } + + public String getCodMdep() { + return codMdep; + } + + public void setCodMdep(String codMdep) { + this.codMdep = codMdep; + } + + public String getCodJcom() { + return codJcom; + } + + public void setCodJcom(String codJcom) { + this.codJcom = codJcom; + } + + public BigDecimal getColliPedana() { + return colliPedana; + } + + public void setColliPedana(BigDecimal colliPedana) { + this.colliPedana = colliPedana; + } + + public BigDecimal getTempoTrascorso() { + return tempoTrascorso; + } + + public void setTempoTrascorso(BigDecimal tempoTrascorso) { + this.tempoTrascorso = tempoTrascorso; + } + + public String getDescCommessa() { + return descCommessa; + } + + public void setDescCommessa(String descCommessa) { + this.descCommessa = descCommessa; + } + + public BigDecimal getProdStd() { + return prodStd; + } + + public void setProdStd(BigDecimal prodStd) { + this.prodStd = prodStd; + } + + public String getFlagAvviabile() { + return flagAvviabile; + } + + public void setFlagAvviabile(String flagAvviabile) { + this.flagAvviabile = flagAvviabile; + } + + public BigDecimal getNumPezzi() { + return numPezzi; + } + + public void setNumPezzi(BigDecimal numPezzi) { + this.numPezzi = numPezzi; + } + + public BigDecimal getNumPedane() { + return numPedane; + } + + public void setNumPedane(BigDecimal numPedane) { + this.numPedane = numPedane; + } + + public Object getMtbColtToEdit() { + return mtbColtToEdit; + } + + public void setMtbColtToEdit(Object mtbColtToEdit) { + this.mtbColtToEdit = mtbColtToEdit; + } + + public Integer getGgScadPartita() { + return ggScadPartita; + } + + public void setGgScadPartita(Integer ggScadPartita) { + this.ggScadPartita = ggScadPartita; + } + + public String getNoteLav() { + return noteLav; + } + + public void setNoteLav(String noteLav) { + this.noteLav = noteLav; + } + + public int getHrNum() { + return hrNum; + } + + public void setHrNum(int hrNum) { + this.hrNum = hrNum; + } + + public BindableFloat getQtaColVersamento() { + return qtaColVersamento; + } + + public void setQtaColVersamento(float qtaColVersamento) { + this.qtaColVersamento.set(qtaColVersamento); + } + + public BindableFloat getNumCnfVersamento() { + return numCnfVersamento; + } + + public void setNumCnfVersamento(float numCnfVersamento) { + this.numCnfVersamento.set(numCnfVersamento); + } +} diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/prod_versamento_materiale/viewmodel/ProdVersamentoMaterialViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/prod_versamento_materiale/viewmodel/ProdVersamentoMaterialViewModel.java index a8f263de..99a30c7c 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/prod_versamento_materiale/viewmodel/ProdVersamentoMaterialViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/prod_versamento_materiale/viewmodel/ProdVersamentoMaterialViewModel.java @@ -2,24 +2,42 @@ package it.integry.integrywmsnative.gest.prod_versamento_materiale.viewmodel; import android.app.Activity; import android.app.Dialog; -import android.app.ProgressDialog; import android.content.Context; import android.text.Html; import android.text.SpannableString; +import android.view.View; +import android.widget.Toast; import androidx.databinding.ObservableField; +import androidx.recyclerview.widget.LinearLayoutManager; + +import java.text.ParseException; +import java.util.ArrayList; +import java.util.List; import it.integry.integrywmsnative.R; -import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer; import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager; +import it.integry.integrywmsnative.core.exception.DateNotRecognizedException; +import it.integry.integrywmsnative.core.exception.TimeNotRecognizedException; import it.integry.integrywmsnative.core.interfaces.IPoppableActivity; +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.model.secondary.GestioneEnum; +import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer; +import it.integry.integrywmsnative.core.rest.consumers.MesRESTConsumer; +import it.integry.integrywmsnative.core.settings.SettingsManager; import it.integry.integrywmsnative.core.utility.UtilityExceptions; +import it.integry.integrywmsnative.core.utility.UtilityNumber; import it.integry.integrywmsnative.core.utility.UtilityProgress; +import it.integry.integrywmsnative.core.utility.UtilityResources; +import it.integry.integrywmsnative.core.utility.UtilityString; import it.integry.integrywmsnative.databinding.FragmentProdVersamentoMaterialeBinding; +import it.integry.integrywmsnative.gest.prod_versamento_materiale.core.ChooseOrdsLavFromListAdapter; +import it.integry.integrywmsnative.gest.prod_versamento_materiale.core.ChooseOrdsLavFromListItemModel; import it.integry.integrywmsnative.gest.prod_versamento_materiale.core.ProdVersamentoMaterialHelper; +import it.integry.integrywmsnative.gest.prod_versamento_materiale.dto.OrdineLavorazioneDTO; import it.integry.integrywmsnative.view.dialogs.DialogCommon; import it.integry.integrywmsnative.view.dialogs.DialogConsts; import it.integry.integrywmsnative.view.dialogs.ask_position_of_lu.DialogAskPositionOfLU; @@ -35,7 +53,8 @@ public class ProdVersamentoMaterialViewModel { private FragmentProdVersamentoMaterialeBinding mBinding; private ProdVersamentoMaterialHelper mHelper; private Runnable mOnVersamentoCompleted; - + private List mDataset = new ArrayList<>(); + private ChooseOrdsLavFromListAdapter currentAdapter; public ObservableField mtbColt = new ObservableField<>(); @@ -48,14 +67,31 @@ public class ProdVersamentoMaterialViewModel { BarcodeManager.enable(); } + public void setMtbColr(MtbColr mtbColr) { + mBinding.descrArt.setText(mtbColr.getDescrizione()); + mBinding.codArt.setText(mtbColr.getCodMart()); + mBinding.batch.setText(mtbColr.getPartitaMag() + ((mtbColr.getRifPartitaMag() != null) ? " - "+ mtbColr.getRifPartitaMag().getDescrizione() : "")); + if (!SettingsManager.iDB().isFlagForceAllToColli() && (mtbColr.getMtbAart() == null || mtbColr.getMtbAart().isFlagQtaCnfFissa())) { + String text = UtilityNumber.decimalToString(mtbColr.getQtaCol()); + + if (mtbColr.getMtbAart() != null) { + text += !UtilityString.isNullOrEmpty(mtbColr.getMtbAart().getUntMis()) ? " " + mtbColr.getMtbAart().getUntMis() : ""; + } + + mBinding.qtaCol.setText(text); + } else { + mBinding.qtaCol.setText(UtilityNumber.decimalToString(mtbColr.getNumCnf()) + " " + UtilityResources.getString(R.string.unt_mis_col)); + } + } + public void openLU() { DialogScanOrCreateLU.make(mContext, true, true, false, mtbColt -> { - if(mtbColt == null) { - ((IPoppableActivity)mContext).pop(); - } else if((mtbColt.getGestioneEnum() == GestioneEnum.ACQUISTO || mtbColt.getGestioneEnum() == GestioneEnum.LAVORAZIONE) && mtbColt.getSegno().equals(+1)){ + if (mtbColt == null) { + ((IPoppableActivity) mContext).pop(); + } else if ((mtbColt.getGestioneEnum() == GestioneEnum.ACQUISTO || mtbColt.getGestioneEnum() == GestioneEnum.LAVORAZIONE) && mtbColt.getSegno().equals(+1)) { - if(mtbColt.getMtbColr() == null || mtbColt.getMtbColr().size() == 0) { + if (mtbColt.getMtbColr() == null || mtbColt.getMtbColr().size() == 0) { DialogSimpleMessageHelper.makeWarningDialog(mContext, new SpannableString(Html.fromHtml("E' stata scansionata una UL già vuota")), null, this::openLU).show(); @@ -75,12 +111,28 @@ public class ProdVersamentoMaterialViewModel { private void choosePosition() { DialogAskPositionOfLU.makeBase(mContext, null, true, (status, mtbDepoPosizione) -> { - if(status == DialogConsts.Results.ABORT) { - ((IPoppableActivity)mContext).pop(); + if (status == DialogConsts.Results.ABORT) { + ((IPoppableActivity) mContext).pop(); } else { - if (mtbDepoPosizione != null && mtbDepoPosizione.isFlagLineaProduzione() && mtbColt.get() != null) { - createColloScarico(mtbDepoPosizione); + if (!SettingsManager.iDB().isFlagVersamentoDirettoProduzione()) { + createColloScarico(mtbDepoPosizione); + } else { + if (mtbColt == null || mtbColt.get() == null || mtbColt.get().getMtbColr() == null || mtbColt.get().getMtbColr().size() <= 0) { + DialogSimpleMessageHelper.makeWarningDialog(mContext, + new SpannableString(Html.fromHtml("Il collo selezionato non presenta articoli versabili sulla linea.")), + null, this::openLU).show(); + return; + } else if (mtbColt.get().getMtbColr().size() > 1) { + DialogSimpleMessageHelper.makeWarningDialog(mContext, + new SpannableString(Html.fromHtml("Il collo selezionato contiene più articoli, per versarli in produzione vanno separati in colli differenti.")), + null, this::openLU).show(); + return; + } + MesRESTConsumer.getOrdiniLavorazioneMateriale(mtbDepoPosizione.getPosizione(), getIdMaterialeFromCollo(mtbColt.get()), ordini -> richiediOrdiniPerVersamento(ordini, mtbDepoPosizione), e -> DialogSimpleMessageHelper.makeWarningDialog(mContext, + new SpannableString(Html.fromHtml(e.getMessage())), + null, this::openLU).show()); + } } else { DialogSimpleMessageHelper.makeWarningDialog(mContext, new SpannableString(Html.fromHtml("Si è verificato un errore. Riprovare")), @@ -94,25 +146,26 @@ public class ProdVersamentoMaterialViewModel { }).show(); } + private String getIdMaterialeFromCollo(MtbColt mtbColt) { + MtbAart articolo = mtbColt.getMtbColr().get(0).getMtbAart(); + return UtilityString.isNullOrEmpty(articolo.getIdArtEqui()) ? articolo.getCodMart() : articolo.getIdArtEqui(); + } private void createColloScarico(MtbDepoPosizione mtbDepoPosizione) { Dialog progressDialog = UtilityProgress.createDefaultProgressDialog(mContext); - ColliMagazzinoRESTConsumer.createColloScaricoDaCarico(mtbColt.get(), mtbDepoPosizione, generatedMtbColt -> { - DialogCommon.showDataSaved(mContext, () -> { - progressDialog.dismiss(); - mOnVersamentoCompleted.run(); - }); - }, ex -> { - UtilityExceptions.defaultException(mContext, ex); - }); + ColliMagazzinoRESTConsumer.createColloScaricoDaCarico(mtbColt.get(), mtbDepoPosizione, generatedMtbColt -> DialogCommon.showDataSaved(mContext, () -> { + progressDialog.dismiss(); + mOnVersamentoCompleted.run(); + }), ex -> UtilityExceptions.defaultException(mContext, ex)); } public void setMtbColt(MtbColt mtbColt) { this.mtbColt.set(mtbColt); + this.setMtbColr(mtbColt.getMtbColr().get(0)); } public void resetMtbColt() { @@ -120,5 +173,51 @@ public class ProdVersamentoMaterialViewModel { openLU(); } + public void richiediOrdiniPerVersamento(List ordini, MtbDepoPosizione mtbDepoPosizione) { + + if (ordini == null || ordini.size() <= 0) { + mBinding.positiveFab.setVisibility(View.GONE); + mBinding.positiveFab.setOnClickListener(null); + mBinding.emptyView.setVisibility(View.VISIBLE); + return; + } + mBinding.positiveFab.setVisibility(View.VISIBLE); + + mBinding.positiveFab.setOnClickListener(c -> onPositiveClick(mtbDepoPosizione)); + for (OrdineLavorazioneDTO ordineLav : ordini) { + mDataset.add(new ChooseOrdsLavFromListItemModel().setOrdineLav(ordineLav)); + } + mBinding.emptyView.setVisibility(mDataset != null && mDataset.size() > 0 ? View.GONE : View.VISIBLE); + try { + initRecyclerView(); + } catch (Exception e) { + UtilityExceptions.defaultException(mContext, e); + } + + } + + private void onPositiveClick(MtbDepoPosizione mtbDepoPosizione) { + List ordLavs = currentAdapter.getSelectedItems(); + if (ordLavs.size() > 0) { + Dialog progressDialog = UtilityProgress.createDefaultProgressDialog(mContext); + ColliMagazzinoRESTConsumer.createColliScaricoDaOrdineLavorazione(mtbColt.get(), mtbDepoPosizione, ordLavs, generatedMtbColt -> DialogCommon.showDataSaved(mContext, () -> { + progressDialog.dismiss(); + mOnVersamentoCompleted.run(); + }), ex -> UtilityExceptions.defaultException(mContext, ex)); + } else { + Toast.makeText(mContext, "Nessun ordine selezionato!", Toast.LENGTH_SHORT).show(); + } + } + + private void initRecyclerView() throws ParseException, TimeNotRecognizedException, DateNotRecognizedException { + mBinding.dialogChooseArtsFromListaArtMainList.setNestedScrollingEnabled(false); + + mBinding.dialogChooseArtsFromListaArtMainList.setHasFixedSize(true); + + mBinding.dialogChooseArtsFromListaArtMainList.setLayoutManager(new LinearLayoutManager(mContext)); + + currentAdapter = new ChooseOrdsLavFromListAdapter(mContext, mDataset, mtbColt.get()); + mBinding.dialogChooseArtsFromListaArtMainList.setAdapter(currentAdapter); + } } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/core/adapter/RettificaGiacenzeMainListAdapter.java b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/core/adapter/RettificaGiacenzeMainListAdapter.java index 3a680ef1..760af892 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/core/adapter/RettificaGiacenzeMainListAdapter.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/core/adapter/RettificaGiacenzeMainListAdapter.java @@ -12,7 +12,9 @@ import android.view.ViewGroup; import it.integry.integrywmsnative.R; import it.integry.integrywmsnative.core.interfaces.IRecyclerItemClicked; import it.integry.integrywmsnative.core.model.MtbColr; +import it.integry.integrywmsnative.core.settings.SettingsManager; import it.integry.integrywmsnative.core.utility.UtilityNumber; +import it.integry.integrywmsnative.core.utility.UtilityResources; import it.integry.integrywmsnative.core.utility.UtilityString; import it.integry.integrywmsnative.databinding.ListaRettificaGiacenzeModelBinding; @@ -64,14 +66,18 @@ public class RettificaGiacenzeMainListAdapter extends RecyclerView.Adapter { diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/viewmodel/RettificaGiacenzeViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/viewmodel/RettificaGiacenzeViewModel.java index 12282a2a..a2428ef3 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/viewmodel/RettificaGiacenzeViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/viewmodel/RettificaGiacenzeViewModel.java @@ -121,8 +121,6 @@ public class RettificaGiacenzeViewModel implements IRecyclerItemClicked mBinding.rettificaGiacenzeMainList.setAdapter(null); ((IPoppableActivity) mContext).pop(); - - //if(openNew) openLU(); } @@ -419,6 +417,7 @@ public class RettificaGiacenzeViewModel implements IRecyclerItemClicked .setPartitaMag(quantityDTO.batchLot.get()) .setDataScadPartita(quantityDTO.expireDate) .setQtaCol(quantityDTO.qtaTot.getBigDecimal()) + .setNumCnf(quantityDTO.numCnf.getBigDecimal()) .setDescrizione(mtbAart.getDescrizioneEstesa()) .setCausale(MtbColr.Causale.RETTIFICA) .setUtente(SettingsManager.i().user.fullname); @@ -615,38 +614,54 @@ public class RettificaGiacenzeViewModel implements IRecyclerItemClicked .setQtaDisponibile(new BigDecimal(-1)) .setMtbAart(mtbColrToEditClone.getMtbAart()) .setCanPartitaMagBeChanged(false) - .setQtaTot(mtbColrToEditClone.getQtaCol()); + .setQtaTot(mtbColrToEditClone.getQtaCol()) + .setQtaCnf(mtbColrToEditClone.getQtaCnf()) + .setNumCnf(mtbColrToEditClone.getNumCnf().intValue()); DialogInputQuantity.makeBase(mContext, dto, true, value -> { - mtbColrToEditClone - .setRiga(null) - .setDatetimeRow(UtilityDate.getDateInstance()) - .setQtaCol(value.qtaTot.getBigDecimal().subtract(mtbColrToEditClone.getQtaCol())) - .setUtente(SettingsManager.i().user.fullname) - .setCausale(MtbColr.Causale.RETTIFICA) - .setOperation(CommonModelConsts.OPERATION.INSERT); + BigDecimal qtaCol = value.qtaTot.getBigDecimal().subtract(mtbColrToEditClone.getQtaCol()); - MtbColt mtbColtClone = (MtbColt) mtbColt.get().clone(); - mtbColtClone.setMtbColr(new ObservableArrayList<>()); - mtbColtClone.getMtbColr().add(mtbColrToEditClone); - mtbColtClone.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE); + if(qtaCol.compareTo(BigDecimal.ZERO) != 0) { - Dialog progressDialog = UtilityProgress.createDefaultProgressDialog(mContext); + BigDecimal numCnf = value.numCnf.getBigDecimal().subtract(mtbColrToEditClone.getNumCnf()); - ColliMagazzinoRESTConsumer.saveCollo(mtbColtClone, valueNewMtbColt -> { - progressDialog.dismiss(); - mtbColt.get().getMtbColr().remove(index); + if (numCnf.compareTo(BigDecimal.ZERO) == 0 && qtaCol.compareTo(BigDecimal.ZERO) > 0) + numCnf = BigDecimal.ONE; + else if (numCnf.compareTo(BigDecimal.ZERO) == 0 && qtaCol.compareTo(BigDecimal.ZERO) < 0) + numCnf = new BigDecimal(-1); mtbColrToEditClone - .setQtaCol(value.qtaTot.getBigDecimal()) - .setMtbAart(mtbColrToEdit.getMtbAart()) - .setOperation(CommonModelConsts.OPERATION.NO_OP); + .setRiga(null) + .setDatetimeRow(UtilityDate.getDateInstance()) + .setQtaCol(qtaCol) + .setNumCnf(numCnf) + .setUtente(SettingsManager.i().user.fullname) + .setCausale(MtbColr.Causale.RETTIFICA) + .setOperation(CommonModelConsts.OPERATION.INSERT); - mtbColt.get().getMtbColr().add(index, mtbColrToEditClone); - }, ex -> { - UtilityExceptions.defaultException(mContext, ex, progressDialog); - }); + MtbColt mtbColtClone = (MtbColt) mtbColt.get().clone(); + mtbColtClone.setMtbColr(new ObservableArrayList<>()); + mtbColtClone.getMtbColr().add(mtbColrToEditClone); + mtbColtClone.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE); + + Dialog progressDialog = UtilityProgress.createDefaultProgressDialog(mContext); + + ColliMagazzinoRESTConsumer.saveCollo(mtbColtClone, valueNewMtbColt -> { + progressDialog.dismiss(); + mtbColt.get().getMtbColr().remove(index); + + mtbColrToEditClone + .setQtaCol(value.qtaTot.getBigDecimal()) + .setNumCnf(value.numCnf.getBigDecimal()) + .setMtbAart(mtbColrToEdit.getMtbAart()) + .setOperation(CommonModelConsts.OPERATION.NO_OP); + + mtbColt.get().getMtbColr().add(index, mtbColrToEditClone); + }, ex -> { + UtilityExceptions.defaultException(mContext, ex, progressDialog); + }); + } }, null).show(); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/ultime_consegne_cliente/rest/UltimeConsegneClienteRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/gest/ultime_consegne_cliente/rest/UltimeConsegneClienteRESTConsumer.java index fa25ecb9..451de68f 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/ultime_consegne_cliente/rest/UltimeConsegneClienteRESTConsumer.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/ultime_consegne_cliente/rest/UltimeConsegneClienteRESTConsumer.java @@ -5,6 +5,7 @@ import com.google.gson.reflect.TypeToken; import java.lang.reflect.Type; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer; @@ -15,6 +16,7 @@ import it.integry.integrywmsnative.core.model.DtbDocr; import it.integry.integrywmsnative.core.model.MtbAart; 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.gest.picking_resi.dto.WithdrawableDtbDocr; import it.integry.integrywmsnative.core.rest.model.DocumentoResoDTO; @@ -57,17 +59,18 @@ public class UltimeConsegneClienteRESTConsumer { public static void loadDocRowFromConsegna(List consegne, RunnableArgs> onComplete, RunnableArgs onFailed) { - StringBuilder sbWhereCond = new StringBuilder(); + List> filterCond = new ArrayList<>(); for(int i = 0; i < consegne.size(); i++) { - sbWhereCond.append(String.format("(dtb_docr.data_doc = '%s' AND dtb_docr.num_doc = %d AND dtb_docr.ser_doc = '%s' AND dtb_docr.cod_anag = '%s' AND dtb_docr.cod_dtip = '%s')", - UtilityDate.formatDate(consegne.get(i).getDataDocD(), UtilityDate.COMMONS_DATE_FORMATS.YMD_SLASH), - consegne.get(i).getNumDoc(), - consegne.get(i).getSerDoc(), - consegne.get(i).getCodAnag(), - consegne.get(i).getCodDtip())); + HashMap filter = new HashMap<>(); - if(i < consegne.size()-1) sbWhereCond.append(" OR "); + filter.put("dtb_docr.data_doc", consegne.get(i).getDataDocD()); + filter.put("dtb_docr.num_doc", consegne.get(i).getNumDoc()); + filter.put("dtb_docr.ser_doc", consegne.get(i).getSerDoc()); + filter.put("dtb_docr.cod_anag", consegne.get(i).getCodAnag()); + filter.put("dtb_docr.cod_dtip", consegne.get(i).getCodDtip()); + + filterCond.add(filter); } String sql = "SELECT dtb_docr.[cod_anag]" + @@ -142,12 +145,17 @@ public class UltimeConsegneClienteRESTConsumer { "LEFT OUTER JOIN ctb_cont ON mtb_aart.cod_ccon_ricavi = ctb_cont.cod_ccon " + "LEFT OUTER JOIN ctb_grup ON ctb_cont.cod_cgrp = ctb_grup.cod_cgrp " + "LEFT OUTER JOIN mtb_colr ON " + - " dtb_docr.cod_anag + '|' + dtb_docr.cod_dtip + '|' + dtb_docr.ser_doc + '|' + CONVERT(varchar(10), dtb_docr.data_doc , 111) + '|' + CONVERT(varchar(20), dtb_docr.num_doc) + '|' + CONVERT(varchar(20), dtb_docr.id_riga) = mtb_colr.note " + + " dtb_docr.cod_anag = mtb_colr.cod_anag_doc AND " + + " dtb_docr.cod_dtip = mtb_colr.cod_dtip_doc AND " + + " dtb_docr.ser_doc = mtb_colr.ser_doc AND " + + " dtb_docr.data_doc = mtb_colr.data_doc AND " + + " dtb_docr.num_doc = mtb_colr.num_doc AND " + + " dtb_docr.id_riga = mtb_colr.id_riga_doc " + "WHERE " + " (ctb_grup.sezione <> 1 OR ctb_grup.sezione IS NULL) AND " + " dtb_docr.[qta_doc] - ISNULL(mtb_colr.qta_col, 0) > 0 AND" + " ( " + - sbWhereCond.toString() + + UtilityQuery.concatFieldListInWhereCond(filterCond) + " ) " + "ORDER BY cod_mart"; diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/core/MainListOrdineVenditaInevasoAdapter.java b/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/core/MainListOrdineVenditaInevasoAdapter.java index 63e35072..afbf16ae 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/core/MainListOrdineVenditaInevasoAdapter.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/core/MainListOrdineVenditaInevasoAdapter.java @@ -259,10 +259,4 @@ public class MainListOrdineVenditaInevasoAdapter extends RecyclerView.Adapter mtbColrs){ - BigDecimal currentQtaEvasa = BigDecimal.ZERO; - - if(mtbColrs != null) { - for (MtbColr mtbColr : item.getWithdrawRows()) { - currentQtaEvasa = currentQtaEvasa.add(item.getMtbAart().isFlagQtaCnfFissa() ? mtbColr.getQtaCol() : mtbColr.getNumCnf()); - } - } - - return currentQtaEvasa; - } } diff --git a/app/src/main/java/it/integry/integrywmsnative/view/bottomsheet/view/ArticoliInColloBottomSheetMtbColrAdapter.java b/app/src/main/java/it/integry/integrywmsnative/view/bottomsheet/view/ArticoliInColloBottomSheetMtbColrAdapter.java index a46969c1..8fe6d0d7 100644 --- a/app/src/main/java/it/integry/integrywmsnative/view/bottomsheet/view/ArticoliInColloBottomSheetMtbColrAdapter.java +++ b/app/src/main/java/it/integry/integrywmsnative/view/bottomsheet/view/ArticoliInColloBottomSheetMtbColrAdapter.java @@ -15,7 +15,9 @@ import java.lang.ref.WeakReference; import it.integry.integrywmsnative.R; import it.integry.integrywmsnative.core.model.MtbColr; import it.integry.integrywmsnative.core.model.MtbColt; +import it.integry.integrywmsnative.core.settings.SettingsManager; import it.integry.integrywmsnative.core.utility.UtilityNumber; +import it.integry.integrywmsnative.core.utility.UtilityResources; import it.integry.integrywmsnative.core.utility.UtilityString; import it.integry.integrywmsnative.databinding.FragmentArticoliInColloBottomSheetMtbcolrItemBinding; @@ -47,14 +49,17 @@ public class ArticoliInColloBottomSheetMtbColrAdapter extends BaseAdapter { binding.setMtbColr(mtbColr); //Setting qty with unt_mis - if(mtbColr.getMtbAart() != null) { - if (mtbColr.getMtbAart().isFlagQtaCnfFissa()) { - binding.qtaTextview.setText(UtilityNumber.decimalToString(mtbColr.getQtaCol()) + (!UtilityString.isNullOrEmpty(mtbColr.getMtbAart().getUntMis()) ? "\n" + mtbColr.getMtbAart().getUntMis() : "")); - } else { - binding.qtaTextview.setText(UtilityNumber.decimalToString(mtbColr.getNumCnf()) + "\n" + mContext.getString(R.string.unt_mis_col)); + if(!SettingsManager.iDB().isFlagForceAllToColli() && (mtbColr.getMtbAart() == null || mtbColr.getMtbAart().isFlagQtaCnfFissa())){ + String text = UtilityNumber.decimalToString(mtbColr.getQtaCol()); + + + if(mtbColr.getMtbAart() != null) { + text += !UtilityString.isNullOrEmpty(mtbColr.getMtbAart().getUntMis()) ? "\n" + mtbColr.getMtbAart().getUntMis() : ""; } + + binding.qtaTextview.setText(text); } else { - binding.qtaTextview.setText(UtilityNumber.decimalToString(mtbColr.getQtaCol())); + binding.qtaTextview.setText(UtilityNumber.decimalToString(mtbColr.getNumCnf()) + "\n" + UtilityResources.getString(R.string.unt_mis_col)); } diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_art_from_lista_arts/DialogChooseArtFromListaArts.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_art_from_lista_arts/DialogChooseArtFromListaArts.java index 1812f3ac..db915904 100644 --- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_art_from_lista_arts/DialogChooseArtFromListaArts.java +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_art_from_lista_arts/DialogChooseArtFromListaArts.java @@ -18,6 +18,7 @@ import it.integry.integrywmsnative.R; import it.integry.integrywmsnative.core.expansion.RunnableArgs; import it.integry.integrywmsnative.core.interfaces.IRecyclerItemClicked; import it.integry.integrywmsnative.core.model.MtbAart; +import it.integry.integrywmsnative.core.utility.UtilityDialog; import it.integry.integrywmsnative.databinding.DialogChooseArtFromListaArtBinding; public class DialogChooseArtFromListaArts { @@ -49,6 +50,8 @@ public class DialogChooseArtFromListaArts { mDialog.setCanceledOnTouchOutside(false); mDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); + UtilityDialog.setTo90PercentSize(context, mDialog); + initRecyclerView(bindings, listaArts); } diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_arts_from_lista_arts/DialogChooseArtsFromListaArts.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_arts_from_lista_arts/DialogChooseArtsFromListaArts.java index df51cafc..2c06d63e 100644 --- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_arts_from_lista_arts/DialogChooseArtsFromListaArts.java +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_arts_from_lista_arts/DialogChooseArtsFromListaArts.java @@ -29,6 +29,7 @@ import it.integry.integrywmsnative.core.expansion.RunnableArgs; import it.integry.integrywmsnative.core.model.MtbAart; import it.integry.integrywmsnative.core.model.MtbColr; import it.integry.integrywmsnative.core.utility.UtilityBarcode; +import it.integry.integrywmsnative.core.utility.UtilityDialog; import it.integry.integrywmsnative.core.utility.UtilityExceptions; import it.integry.integrywmsnative.core.utility.UtilityProgress; import it.integry.integrywmsnative.core.utility.UtilityString; @@ -97,6 +98,8 @@ public class DialogChooseArtsFromListaArts { mDialog.setCanceledOnTouchOutside(false); mDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); + UtilityDialog.setTo90PercentSize(context, mDialog); + initRecyclerView(binding); diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_arts_from_lista_arts/DialogChooseArtsFromListaArtsAdapter.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_arts_from_lista_arts/DialogChooseArtsFromListaArtsAdapter.java index a92244f0..49e68c72 100644 --- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_arts_from_lista_arts/DialogChooseArtsFromListaArtsAdapter.java +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_arts_from_lista_arts/DialogChooseArtsFromListaArtsAdapter.java @@ -15,6 +15,10 @@ import java.util.List; import it.integry.integrywmsnative.R; import it.integry.integrywmsnative.core.model.CheckableMtbColr; import it.integry.integrywmsnative.core.model.MtbColr; +import it.integry.integrywmsnative.core.settings.SettingsManager; +import it.integry.integrywmsnative.core.utility.UtilityNumber; +import it.integry.integrywmsnative.core.utility.UtilityResources; +import it.integry.integrywmsnative.core.utility.UtilityString; import it.integry.integrywmsnative.databinding.DialogChooseArtsFromListaArtsItemModelBinding; public class DialogChooseArtsFromListaArtsAdapter extends RecyclerView.Adapter { @@ -58,8 +62,8 @@ public class DialogChooseArtsFromListaArtsAdapter extends RecyclerView.Adapter - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_choose_arts_from_lista_arts__item_model.xml b/app/src/main/res/layout/dialog_choose_arts_from_lista_arts__item_model.xml index e2a73e8d..e4a40b0e 100644 --- a/app/src/main/res/layout/dialog_choose_arts_from_lista_arts__item_model.xml +++ b/app/src/main/res/layout/dialog_choose_arts_from_lista_arts__item_model.xml @@ -47,16 +47,40 @@ android:layout_toStartOf="@id/qta_box"> - + android:orientation="horizontal"> + + + + + + + + diff --git a/app/src/main/res/layout/dialog_choose_arts_from_lista_arts_layout.xml b/app/src/main/res/layout/dialog_choose_arts_from_lista_arts_layout.xml index 28795b3f..beb10b38 100644 --- a/app/src/main/res/layout/dialog_choose_arts_from_lista_arts_layout.xml +++ b/app/src/main/res/layout/dialog_choose_arts_from_lista_arts_layout.xml @@ -20,7 +20,7 @@ app:cardCornerRadius="12dp" app:cardElevation="0dp"> - @@ -50,9 +50,7 @@ android:paddingTop="24dp" android:paddingBottom="8dp" android:paddingStart="8dp" - android:paddingEnd="8dp" - android:layout_alignParentTop="true" - android:layout_above="@id/buttons"> + android:paddingEnd="8dp"> - + diff --git a/app/src/main/res/layout/dialog_scan_or_create_lu.xml b/app/src/main/res/layout/dialog_scan_or_create_lu.xml index 58177df7..5e09ce58 100644 --- a/app/src/main/res/layout/dialog_scan_or_create_lu.xml +++ b/app/src/main/res/layout/dialog_scan_or_create_lu.xml @@ -1,9 +1,9 @@ - - + - - - - - - - - - - - + android:background="@color/light_blue_300" + android:gravity="center_horizontal"> + + + + + + + + + + android:paddingStart="16dp" + android:paddingEnd="16dp"> + + + android:layout_marginTop="16dp"> - + + + + + + android:layout_marginTop="8dp"> - + android:orientation="vertical" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintTop_toTopOf="parent"> - - - - - + android:gravity="center_horizontal" + android:layout_marginTop="12dp" + android:layout_marginBottom="12dp" + android:textSize="16sp" + android:textStyle="bold" + android:layout_gravity="center_horizontal" + style="@style/TextViewMaterial" + android:text="OPPURE" /> + + + + - - - + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_articoli_in_collo_bottom_sheet.xml b/app/src/main/res/layout/fragment_articoli_in_collo_bottom_sheet.xml index d586fdd7..e99be958 100644 --- a/app/src/main/res/layout/fragment_articoli_in_collo_bottom_sheet.xml +++ b/app/src/main/res/layout/fragment_articoli_in_collo_bottom_sheet.xml @@ -500,7 +500,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" style="@style/AppTheme.NewMaterial.Text.Small" - android:text="Modifica"/> + android:text="@string/edit"/> @@ -528,7 +528,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" style="@style/AppTheme.NewMaterial.Text.Small" - android:text="Cancella"/> + android:text="@string/delete"/> diff --git a/app/src/main/res/layout/fragment_articoli_in_collo_bottom_sheet__mtbcolr_item.xml b/app/src/main/res/layout/fragment_articoli_in_collo_bottom_sheet__mtbcolr_item.xml index 79095543..3d13125d 100644 --- a/app/src/main/res/layout/fragment_articoli_in_collo_bottom_sheet__mtbcolr_item.xml +++ b/app/src/main/res/layout/fragment_articoli_in_collo_bottom_sheet__mtbcolr_item.xml @@ -7,6 +7,7 @@ + @@ -47,7 +48,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{UtilityNumber.decimalToString(mtbColr.qtaCol) + mtbColr.mtbAart.untMis}" - android:visibility="@{mtbColr.mtbAart != null && !mtbColr.mtbAart.isFlagQtaCnfFissa() ? View.VISIBLE : View.GONE}" + android:visibility="@{SettingsManager.iDB().isFlagForceAllToColli() || (mtbColr.mtbAart != null && !mtbColr.mtbAart.isFlagQtaCnfFissa()) ? View.VISIBLE : View.GONE}" android:textSize="14sp" android:textStyle="bold" android:layout_alignParentEnd="true" @@ -68,6 +69,8 @@ android:text="@{mtbColr.getDescrizione()}" android:textColor="@android:color/black" android:textSize="16sp" + android:paddingStart="0dp" + android:paddingEnd="8dp" style="@style/AppTheme.NewMaterial.Text.Small" tools:text="Descrizione lunga articolo" /> diff --git a/app/src/main/res/layout/fragment_choose_ords_lav_from_list__item_model.xml b/app/src/main/res/layout/fragment_choose_ords_lav_from_list__item_model.xml new file mode 100644 index 00000000..555215de --- /dev/null +++ b/app/src/main/res/layout/fragment_choose_ords_lav_from_list__item_model.xml @@ -0,0 +1,155 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_main_rettifica_giacenze.xml b/app/src/main/res/layout/fragment_main_rettifica_giacenze.xml index 87c1191c..7cc9bdcf 100644 --- a/app/src/main/res/layout/fragment_main_rettifica_giacenze.xml +++ b/app/src/main/res/layout/fragment_main_rettifica_giacenze.xml @@ -24,6 +24,7 @@ + - - @@ -114,6 +115,7 @@ android:layout_width="0dp" android:layout_height="wrap_content" app:hintTextAppearance="@style/hint_text" + app:layout_constraintTop_toTopOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toStartOf="@id/guide_line_fornitore"> @@ -132,6 +134,7 @@ android:layout_width="0dp" 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"> @@ -180,6 +183,7 @@ android:layout_width="0dp" android:layout_height="wrap_content" app:hintTextAppearance="@style/hint_text" + app:layout_constraintTop_toTopOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent"> @@ -256,8 +260,8 @@ android:layout_height="wrap_content" android:gravity="center_horizontal" android:textColor="@android:color/black" - android:textSize="18sp" - android:text="@string/no_item_text"/> + android:text="@string/no_item_text" + style="@style/AppTheme.NewMaterial.Text.Medium"/> @@ -266,7 +270,10 @@ android:id="@+id/rettifica_giacenze_main_list" android:layout_width="match_parent" android:layout_height="match_parent" - android:layout_marginTop="32dp"/> + android:paddingTop="16dp" + android:paddingBottom="80dp" + android:clipToPadding="false" + android:scrollbarStyle="outsideOverlay"/> + + @@ -326,30 +336,31 @@ android:layout_height="wrap_content" tools:text="Descrizione articolo" android:textColor="#444" - android:textSize="18dp" - android:maxLines="1" + android:maxLines="2" android:ellipsize="end" - android:paddingRight="8dp" - android:textStyle="bold" /> + android:paddingStart="0dp" + android:paddingEnd="8dp" + android:textStyle="bold" + style="@style/AppTheme.NewMaterial.Text.Medium"/> + style="@style/AppTheme.NewMaterial.Text.Small" /> @@ -370,6 +381,7 @@ android:layout_width="0dp" android:layout_height="wrap_content" android:orientation="vertical" + app:layout_constraintTop_toTopOf="parent" app:layout_constraintEnd_toStartOf="@id/guideline_action" app:layout_constraintStart_toStartOf="parent" android:gravity="center"> @@ -388,7 +400,8 @@ + style="@style/AppTheme.NewMaterial.Text.Small" + android:text="@string/edit"/> @@ -396,6 +409,7 @@ android:layout_width="0dp" android:layout_height="wrap_content" android:orientation="vertical" + app:layout_constraintTop_toTopOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="@id/guideline_action" android:gravity="center"> @@ -414,7 +428,8 @@ + style="@style/AppTheme.NewMaterial.Text.Small" + android:text="@string/delete"/> @@ -423,6 +438,9 @@ + + + diff --git a/app/src/main/res/layout/fragment_main_ultime_consegne_cliente__list_single_item.xml b/app/src/main/res/layout/fragment_main_ultime_consegne_cliente__list_single_item.xml index 1d98423a..4e6b7b12 100644 --- a/app/src/main/res/layout/fragment_main_ultime_consegne_cliente__list_single_item.xml +++ b/app/src/main/res/layout/fragment_main_ultime_consegne_cliente__list_single_item.xml @@ -63,30 +63,35 @@ android:textSize="14sp" tools:text="13 Apr"/> + + + - - + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_picking_libero.xml b/app/src/main/res/layout/fragment_picking_libero.xml index 2f28004e..1f014ceb 100644 --- a/app/src/main/res/layout/fragment_picking_libero.xml +++ b/app/src/main/res/layout/fragment_picking_libero.xml @@ -230,7 +230,7 @@ + android:text="@string/delete"/> diff --git a/app/src/main/res/layout/fragment_prod_recupero_materiale.xml b/app/src/main/res/layout/fragment_prod_recupero_materiale.xml index b0589ff2..0795ad18 100644 --- a/app/src/main/res/layout/fragment_prod_recupero_materiale.xml +++ b/app/src/main/res/layout/fragment_prod_recupero_materiale.xml @@ -3,9 +3,11 @@ xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:fab="http://schemas.android.com/apk/res-auto"> + + + android:layout_height="match_parent" /> + - + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/fragment_prod_versamento_materiale.xml b/app/src/main/res/layout/fragment_prod_versamento_materiale.xml index 27c88901..52de0715 100644 --- a/app/src/main/res/layout/fragment_prod_versamento_materiale.xml +++ b/app/src/main/res/layout/fragment_prod_versamento_materiale.xml @@ -1,18 +1,183 @@ - + - + + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/lista_picking_libero_list_model.xml b/app/src/main/res/layout/lista_picking_libero_list_model.xml index b057bd18..d20d2c96 100644 --- a/app/src/main/res/layout/lista_picking_libero_list_model.xml +++ b/app/src/main/res/layout/lista_picking_libero_list_model.xml @@ -6,6 +6,7 @@ + @@ -23,30 +24,52 @@ android:layout_width="0dp" android:layout_height="wrap_content" android:orientation="vertical" + app:layout_constraintTop_toTopOf="parent" app:layout_constraintEnd_toStartOf="@+id/qta_box" app:layout_constraintStart_toStartOf="parent"> + - + + + + @@ -56,6 +79,7 @@ android:text="@{`Lotto: ` + mtbColr.getPartitaMag()}" android:textSize="14sp" android:visibility="@{UtilityString.isNullOrEmpty(mtbColr.getPartitaMag()) ? View.INVISIBLE : View.VISIBLE}" + style="@style/AppTheme.NewMaterial.Text.Small" tools:text="Lotto: ABCDE" /> @@ -72,6 +96,7 @@ app:layout_constraintBottom_toBottomOf="parent"> diff --git a/app/src/main/res/layout/lista_rettifica_giacenze_model.xml b/app/src/main/res/layout/lista_rettifica_giacenze_model.xml index 485b444e..523f10de 100644 --- a/app/src/main/res/layout/lista_rettifica_giacenze_model.xml +++ b/app/src/main/res/layout/lista_rettifica_giacenze_model.xml @@ -6,6 +6,7 @@ + @@ -41,6 +42,7 @@ android:textColor="@color/colorPrimary" android:textSize="14sp" android:textStyle="bold" + style="@style/AppTheme.NewMaterial.Text" tools:text="COD MART" /> @@ -62,7 +65,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{UtilityNumber.decimalToString(mtbColr.qtaCol) + mtbColr.mtbAart.untMis}" - android:visibility="@{mtbColr.mtbAart != null && !mtbColr.mtbAart.isFlagQtaCnfFissa() ? View.VISIBLE : View.GONE}" + android:visibility="@{SettingsManager.iDB().isFlagForceAllToColli() || (mtbColr.mtbAart != null && !mtbColr.mtbAart.isFlagQtaCnfFissa()) ? View.VISIBLE : View.GONE}" android:textSize="14sp" android:textStyle="bold" android:layout_alignParentEnd="true" @@ -79,13 +82,12 @@ @@ -95,6 +97,7 @@ android:text="@{`Lotto: ` + mtbColr.getPartitaMag()}" android:textSize="14sp" android:visibility="@{UtilityString.isNullOrEmpty(mtbColr.getPartitaMag()) ? View.GONE : View.VISIBLE}" + style="@style/AppTheme.NewMaterial.Text.Small" tools:text="Lotto: ABCDE" /> @@ -124,6 +127,7 @@ android:textColor="@android:color/white" android:textStyle="bold" android:textAllCaps="true" + style="@style/AppTheme.NewMaterial.Text" tools:text="280.45\nCONF" /> diff --git a/app/src/main/res/layout/ultime_consegne_main_list__item.xml b/app/src/main/res/layout/ultime_consegne_main_list__item.xml index f30e2952..8cbc884b 100644 --- a/app/src/main/res/layout/ultime_consegne_main_list__item.xml +++ b/app/src/main/res/layout/ultime_consegne_main_list__item.xml @@ -66,6 +66,17 @@ style="@style/AppTheme.NewMaterial.Text.Medium" tools:text="QTA"/> + + diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 6d7f1962..d964b564 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -10,8 +10,9 @@ Completato %s del %s]]> %s del %s]]> + %s del %s]]> %s]]> - Cerca... + Cerca… Login Accettazione Ordine di accettazione @@ -131,6 +132,7 @@ Lotto %s]]> + %s]]> Data scad Num cnf @@ -164,7 +166,9 @@ Nessun articolo da prelevare Nessun documento da mostrare Nessun ordine da evadere + Nessun ordine compatibile Nessun articolo + Nessuna UL versata in produzione Il barcode scansionato non ha fornito alcun risultato @@ -295,4 +299,7 @@ Seleziona una azione Elimina Modifica + Distribuisci quantità + Articolo + Personalizzazione SaporiVeri \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index dc2cdbba..074a3a91 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -49,6 +49,7 @@ Permissions are required for app to work properly %s of %s]]> %s of %s]]> + %s of %s]]> %s]]> Check in Check in order @@ -130,6 +131,7 @@ Level Not valid %s]]> + %s]]> Expire date Pcks num Qty x pck @@ -165,7 +167,9 @@ No items to pick No documents to show No orders to dispatch + .no compatible orders found No items + No LU poured into production The scanned label has already been used The scanned barcode did not produce any results @@ -301,4 +305,6 @@ Delete Edit SaporVeri Customization + Distribute quantity + Article