Compare commits

...

43 Commits

Author SHA1 Message Date
66f7a51462 Finish v1.24.8(276) 2022-03-30 17:46:46 +02:00
0e1e69dc9a -> v1.24.8 (276) 2022-03-30 17:46:41 +02:00
2ef24fe6e9 impostato focus automatico sul campo numCnf 2022-03-30 17:45:57 +02:00
54c2d90334 Finish v1.24.7(275) 2022-03-29 11:05:53 +02:00
577f2041a1 Finish v1.24.7(275) 2022-03-29 11:05:53 +02:00
2f3e74fbfe -> v1.24.7 (275) 2022-03-29 11:05:45 +02:00
b0fa911322 risolto problema scrollview su display ridotti 2022-03-29 11:03:40 +02:00
473b9f22fb Aggiornato filtro ordine in caso di recupera UL. 2022-03-28 17:57:04 +02:00
cc1e1bf221 Finish v1.24.6(274) 2022-03-25 11:23:18 +01:00
a0c85b3fcb Finish v1.24.6(274) 2022-03-25 11:23:18 +01:00
0f41bd99aa -> v1.24.6 (274) 2022-03-25 11:23:03 +01:00
7a3a207462 in posizionamento merce in caso di necessità definizione livello posizione non si chiude la progress dialog 2022-03-25 11:21:25 +01:00
7206b3c37e Finish v1.24.5(273) 2022-03-24 17:26:56 +01:00
4cf8b6167f Finish v1.24.5(273) 2022-03-24 17:26:55 +01:00
b19b438489 -> v1.24.5 (273) 2022-03-24 17:26:48 +01:00
d3ee6d9ea3 Aggiornato filtro ordine in caso di recupera UL. 2022-03-24 17:25:47 +01:00
dd9789c4f3 Fix su dismiss del DialogInputQuantity 2022-03-24 16:58:58 +01:00
67571e3d7a Finish v1.24.4(272) 2022-03-24 12:40:53 +01:00
a0e17f557d Finish v1.24.4(272) 2022-03-24 12:40:52 +01:00
684946bb14 -> v1.24.4 (272) 2022-03-24 12:40:46 +01:00
4aab6b1688 Ottimizzazioni su DialogProgress 2022-03-24 12:40:15 +01:00
310a79f41d Fix su rotazione schermo in avantielenco accettazione 2022-03-23 18:08:22 +01:00
f8164ca1eb Finish v1.24.3(271) 2022-03-23 16:48:10 +01:00
790a9eae6c Finish v1.24.3(271) 2022-03-23 16:48:09 +01:00
b41edd314f -> v1.24.3 (271) 2022-03-23 16:48:04 +01:00
34d8a93c01 Merge remote-tracking branch 'origin/develop' into develop 2022-03-23 16:47:27 +01:00
3b45d8fe35 Fix su ColliDataRecoverService.
Implementata scrollview su DialogInputQuantity.
Corretta gestione cod anag in picking libero.
2022-03-23 16:47:22 +01:00
aba1fcdc7b Finish v1.24.2(270) 2022-03-22 10:12:21 +01:00
012d7caa52 Finish v1.24.2(270) 2022-03-22 10:12:21 +01:00
e7e20da206 -> v1.24.2 (270) 2022-03-22 10:12:10 +01:00
ef6535897b [ordini acquisto pv]
cambio colore in base alla differenza tra qta ordinata e proposta
auto ordinamento di 1 col alla scansione di un articolo
fix vari
2022-03-22 10:09:19 +01:00
8c75ecbd0a Finish v1.24.1(269)_2 2022-03-10 17:20:13 +01:00
fad3c4243d Finish v1.24.1(269)_2 2022-03-10 17:20:13 +01:00
a6e75114cb Rimosse classi di test 2022-03-10 17:18:59 +01:00
48a83bc0d5 Finish v1.24.1(269) 2022-03-10 12:08:07 +01:00
b58475b426 Finish v1.24.1(269) 2022-03-10 12:08:06 +01:00
207daab105 -> v1.24.1 (269) 2022-03-10 12:08:02 +01:00
c32da27b7f Fix su caricamento dati da griglia quando si scansiona un articolo gia inserito nell'ordine 2022-03-10 12:07:22 +01:00
1f94c14634 Ripristinato click per modificare righe in ordine di acquisto 2022-03-09 16:14:12 +01:00
4880ea8301 Implementata gestione dei cod_anags aziendali 2022-03-09 12:09:04 +01:00
a2d165d475 Rimosso caricamento profili allo start.
Aggiunto ulteriore controllo su licenza
2022-03-09 10:33:09 +01:00
d142f0c868 Implementata lettura errore chiamate http in login 2022-03-08 22:05:19 +01:00
746838010a Finish v1.24.0 2022-03-08 15:57:57 +01:00
69 changed files with 2225 additions and 2331 deletions

View File

@@ -10,8 +10,8 @@ apply plugin: 'com.google.gms.google-services'
android {
def appVersionCode = 268
def appVersionName = '1.24.0'
def appVersionCode = 276
def appVersionName = '1.24.8'
signingConfigs {
release {
@@ -85,7 +85,6 @@ android {
dynamicFeatures = [":dynamic__base", ":dynamic_vgalimenti"]
}
dependencies {

View File

@@ -1,26 +0,0 @@
package it.integry.integrywmsnative;
import android.content.Context;
import androidx.test.InstrumentationRegistry;
import androidx.test.runner.AndroidJUnit4;
import org.junit.Test;
import org.junit.runner.RunWith;
import static org.junit.Assert.*;
/**
* Instrumentation test, which will execute on an Android device.
*
* @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
*/
@RunWith(AndroidJUnit4.class)
public class ExampleInstrumentedTest {
@Test
public void useAppContext() throws Exception {
// Context of the app under test.
Context appContext = InstrumentationRegistry.getTargetContext();
assertEquals("it.integry.integrywmsnative", appContext.getPackageName());
}
}

View File

@@ -7,6 +7,8 @@ import it.integry.integrywmsnative.core.context.AppContext;
import it.integry.integrywmsnative.core.data_store.db.RoomModule;
import it.integry.integrywmsnative.core.expansion.BaseActivityComponent;
import it.integry.integrywmsnative.core.expansion.BaseActivityModule;
import it.integry.integrywmsnative.core.expansion.BaseDialogFragmentComponent;
import it.integry.integrywmsnative.core.expansion.BaseDialogFragmentModule;
import it.integry.integrywmsnative.core.expansion.BaseFragmentComponent;
import it.integry.integrywmsnative.core.expansion.BaseFragmentModule;
import it.integry.integrywmsnative.gest.accettazione.MainAccettazioneComponent;
@@ -91,6 +93,7 @@ import it.integry.integrywmsnative.view.dialogs.scan_or_create_lu.DialogScanOrCr
MainApplicationModule.class,
BaseActivityModule.class,
BaseFragmentModule.class,
BaseDialogFragmentModule.class,
LoginModule.class,
MainActivityModule.class,
MainFragmentModule.class,
@@ -133,6 +136,8 @@ public interface MainApplicationComponent {
BaseFragmentComponent.Factory baseFragmentComponent();
BaseDialogFragmentComponent.Factory baseDialogFragmentComponent();
SplashActivityComponent.Factory splashActivityComponent();
LoginComponent.Factory loginActivityComponent();

View File

@@ -42,7 +42,7 @@ public class ColliDataRecoverService {
}
public boolean thereIsAnExistantSession() {
return mtbColtsSessions.size() > 0;
return mtbColtsSessions != null && mtbColtsSessions.size() > 0;
}
public List<Integer> getAllSessionIDs() {

View File

@@ -4,6 +4,7 @@ import androidx.room.Database;
import androidx.room.RoomDatabase;
import androidx.room.TypeConverters;
import it.integry.integrywmsnative.core.data_store.db.converter.BigDecimalConverter;
import it.integry.integrywmsnative.core.data_store.db.converter.DateConverter;
import it.integry.integrywmsnative.core.data_store.db.dao.ArticoloGrigliaDao;
import it.integry.integrywmsnative.core.data_store.db.dao.ArticoloOrdineDao;
@@ -20,7 +21,8 @@ import it.integry.integrywmsnative.core.data_store.db.entity.SqlMtbColt;
@Database(entities = {ArticoloGriglia.class, Griglia.class, Ordine.class, ArticoloOrdine.class, SqlMtbColt.class, SqlMtbColr.class}, version = 8, exportSchema = false)
@TypeConverters({
DateConverter.class
DateConverter.class,
BigDecimalConverter.class
})
public abstract class AppDatabase extends RoomDatabase {

View File

@@ -0,0 +1,17 @@
package it.integry.integrywmsnative.core.data_store.db.converter;
import androidx.room.TypeConverter;
import java.math.BigDecimal;
public class BigDecimalConverter {
@TypeConverter
public static BigDecimal fromFloat(Float value) {
return value == null ? null : BigDecimal.valueOf(value.doubleValue());
}
@TypeConverter
public static Float dateToTimestamp(BigDecimal value) {
return value == null ? null : value.floatValue();
}
}

View File

@@ -8,9 +8,8 @@ import androidx.room.Update;
import java.util.List;
import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloGriglia;
import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloOrdine;
import it.integry.integrywmsnative.core.data_store.db.entity.Ordine;
import it.integry.integrywmsnative.core.data_store.db.wrappers.ArticoloOrdineWrapper;
@Dao
public interface ArticoloOrdineDao {
@@ -34,8 +33,17 @@ public interface ArticoloOrdineDao {
@Update
void update(ArticoloOrdine articolo);
@Query("SELECT * FROM articoli_ordine where id_ordine = :ordineId")
List<ArticoloOrdine> findArticoliByOrdine(int ordineId);
@Query("SELECT articoli_ordine.*," +
"articoli_griglia.gg_scadenza," +
"articoli_griglia.giacenza," +
"articoli_griglia.qta_prevista_vendita," +
"articoli_griglia.qta_proposta " +
"FROM articoli_ordine " +
"INNER JOIN ordini on articoli_ordine.id_ordine = ordini.ordine_id " +
"LEFT OUTER JOIN articoli_griglia " +
"on articoli_ordine.cod_mart = articoli_griglia.cod_mart and ordini.id_griglia = articoli_griglia.id_griglia and articoli_ordine.bar_code = articoli_griglia.bar_code " +
"where id_ordine = :ordineId")
List<ArticoloOrdineWrapper> findArticoliByOrdine(int ordineId);
@Query("SELECt * from articoli_ordine where cod_mart = :codMart and id_ordine = :ordineId LIMIT 1")
ArticoloOrdine findArticoloByCodMartAndOrdine(int ordineId, String codMart);

View File

@@ -82,6 +82,9 @@ public class ArticoloOrdine {
@Ignore
private BigDecimal qtaProposta = BigDecimal.ZERO;
@Ignore
private int bgTint;
public Integer getArticoloOrdineId() {
return articoloOrdineId;
@@ -244,6 +247,23 @@ public class ArticoloOrdine {
}
public float getCnfDaRic() {
return qtaCnf > 0.f ? merceDaRic / qtaCnf : 0;
return qtaCnf > 0.f ? merceDaRic * qtaCnf : 0;
}
public int checkQtaProposta() {
int check = 0;
if (!qtaProposta.equals(BigDecimal.ZERO)) {
check = BigDecimal.valueOf(qtaOrd).compareTo(qtaProposta);
}
return check;
}
public int getBgTint() {
return bgTint;
}
public ArticoloOrdine setBgTint(int bgTint) {
this.bgTint = bgTint;
return this;
}
}

View File

@@ -1,5 +1,7 @@
package it.integry.integrywmsnative.core.data_store.db.repository.implementations;
import com.annimon.stream.Stream;
import org.apache.commons.lang3.StringUtils;
import java.util.ArrayList;
@@ -11,6 +13,7 @@ import it.integry.integrywmsnative.core.data_store.db.dao.ArticoloOrdineDao;
import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloOrdine;
import it.integry.integrywmsnative.core.data_store.db.entity.Ordine;
import it.integry.integrywmsnative.core.data_store.db.repository.ArticoliOrdineRepository;
import it.integry.integrywmsnative.core.data_store.db.wrappers.ArticoloOrdineWrapper;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
public class ArticoliOrdineDataSource extends Repository implements ArticoliOrdineRepository {
@@ -95,7 +98,15 @@ public class ArticoliOrdineDataSource extends Repository implements ArticoliOrdi
public void findArticoliByOrdine(Ordine ordine, RunnableArgs<List<ArticoloOrdine>> onLoad, RunnableArgs<Exception> onError) {
execute(() -> {
try {
onLoad.run(mArticoloOrdineDao.findArticoliByOrdine(ordine.getOrdineId()));
List<ArticoloOrdineWrapper> list = mArticoloOrdineDao.findArticoliByOrdine(ordine.getOrdineId());
onLoad.run(Stream.of(list).map(x -> {
ArticoloOrdine art = x.getArticoloOrdine();
art.setGgScadenza(x.getGgScadenza());
art.setGiacenza(x.getGiacenza());
art.setQtaProposta(x.getQtaProposta());
art.setQtaPrevistaVendita(x.getQtaPrevistaVendita());
return art;
}).toList());
} catch (Exception e) {
onError.run(e);
}

View File

@@ -0,0 +1,65 @@
package it.integry.integrywmsnative.core.data_store.db.wrappers;
import androidx.room.ColumnInfo;
import androidx.room.Embedded;
import java.math.BigDecimal;
import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloOrdine;
public class ArticoloOrdineWrapper {
@Embedded
private ArticoloOrdine articoloOrdine;
@ColumnInfo(name = "gg_scadenza")
private int ggScadenza = 0;
@ColumnInfo(name = "giacenza")
private BigDecimal giacenza = BigDecimal.ZERO;
@ColumnInfo(name = "qta_prevista_vendita")
private BigDecimal qtaPrevistaVendita = BigDecimal.ZERO;
@ColumnInfo(name = "qta_proposta")
private BigDecimal qtaProposta = BigDecimal.ZERO;
public ArticoloOrdine getArticoloOrdine() {
return articoloOrdine;
}
public void setArticoloOrdine(ArticoloOrdine articoloOrdine) {
this.articoloOrdine = articoloOrdine;
}
public int getGgScadenza() {
return ggScadenza;
}
public void setGgScadenza(int ggScadenza) {
this.ggScadenza = ggScadenza;
}
public BigDecimal getGiacenza() {
return giacenza;
}
public void setGiacenza(BigDecimal giacenza) {
this.giacenza = giacenza;
}
public BigDecimal getQtaPrevistaVendita() {
return qtaPrevistaVendita;
}
public void setQtaPrevistaVendita(BigDecimal qtaPrevistaVendita) {
this.qtaPrevistaVendita = qtaPrevistaVendita;
}
public BigDecimal getQtaProposta() {
return qtaProposta;
}
public void setQtaProposta(BigDecimal qtaProposta) {
this.qtaProposta = qtaProposta;
}
}

View File

@@ -0,0 +1,8 @@
package it.integry.integrywmsnative.core.exception;
public class NotValidLicenseException extends Exception {
public NotValidLicenseException() {
super("Licenza non valida");
}
}

View File

@@ -36,6 +36,45 @@ public class BaseActivity extends AppCompatActivity {
return v;
}
public void onLoadingStarted() {
BarcodeManager.disable();
this.openProgress();
}
public void onLoadingEnded() {
this.closeProgress();
BarcodeManager.enable();
}
public void onError(Exception ex) {
this.runOnUiThread(() -> {
this.closeProgress();
UtilityExceptions.defaultException(this, ex, mCurrentProgress);
BarcodeManager.enable();
});
}
private void openProgress() {
BarcodeManager.disable();
if (!progressOpened && !this.mCurrentProgress.isAdded()) {
this.progressOpened = true;
runOnUiThread(() -> {
this.mCurrentProgress.show(getSupportFragmentManager(), "tag");
});
}
}
private void closeProgress() {
BarcodeManager.enable();
if (progressOpened) {
this.progressOpened = false;
runOnUiThread(() -> {
mCurrentProgress.dismiss();
});
}
}
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
if (BarcodeManager.isEnabled() && BarcodeManager.isKeyboardEmulator()) {
@@ -56,47 +95,4 @@ public class BaseActivity extends AppCompatActivity {
);
}
protected void openProgress() {
BarcodeManager.disable();
if (!progressOpened) {
this.progressOpened = true;
runOnUiThread(() -> {
this.mCurrentProgress.show(getSupportFragmentManager(), "tag");
});
}
}
protected void closeProgress() {
BarcodeManager.enable();
if (progressOpened) {
this.progressOpened = false;
runOnUiThread(() -> {
mCurrentProgress.dismiss();
});
}
}
public void onLoadingStarted() {
// new Thread(() -> {
BarcodeManager.disable();
this.openProgress();
// }).start();
}
public void onLoadingEnded() {
// new Thread(() -> {
this.closeProgress();
BarcodeManager.enable();
// }).start();
}
public void onError(Exception ex) {
this.runOnUiThread(() -> {
this.closeProgress();
UtilityExceptions.defaultException(this, ex, mCurrentProgress);
BarcodeManager.enable();
});
}
}

View File

@@ -11,19 +11,21 @@ import androidx.fragment.app.DialogFragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction;
import javax.inject.Inject;
import it.integry.integrywmsnative.MainApplication;
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.core.utility.UtilityProgress;
import it.integry.integrywmsnative.view.dialogs.DialogProgressView;
public class BaseDialogFragment extends DialogFragment {
private boolean mBarcodeListener = false;
private DialogProgressView mCurrentProgress;
@Inject
public DialogProgressView mCurrentProgress;
private boolean progressOpened;
private boolean mBarcodeListener = false;
public BaseDialogFragment() {
super();
}
@Override
@@ -41,6 +43,11 @@ public class BaseDialogFragment extends DialogFragment {
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
MainApplication.appComponent
.baseDialogFragmentComponent()
.create()
.inject(this);
if (BarcodeManager.isEnabled() && BarcodeManager.isKeyboardEmulator()) {
getDialog().setOnKeyListener((dialog, keyCode, event) -> {
if (mBarcodeListener && (event.getAction() == KeyEvent.ACTION_DOWN || event.getAction() == KeyEvent.ACTION_MULTIPLE) && !isControlKey(event)) {
@@ -51,6 +58,42 @@ public class BaseDialogFragment extends DialogFragment {
}
}
public void onLoadingStarted() {
BarcodeManager.disable();
this.openProgress();
}
public void onLoadingEnded() {
this.closeProgress();
BarcodeManager.enable();
}
private void openProgress() {
if (!progressOpened && !this.mCurrentProgress.isAdded()) {
this.progressOpened = true;
requireActivity().runOnUiThread(() -> {
this.mCurrentProgress.show(requireActivity().getSupportFragmentManager(), "tag");
});
}
}
private void closeProgress() {
if (progressOpened) {
this.progressOpened = false;
requireActivity().runOnUiThread(() -> {
mCurrentProgress.dismiss();
});
}
}
public void onError(Exception ex) {
requireActivity().runOnUiThread(() -> {
this.onLoadingEnded();
UtilityExceptions.defaultException(requireActivity(), ex);
});
}
private boolean isControlKey(KeyEvent keyEvent) {
int keyCode = keyEvent.getKeyCode();
return (
@@ -65,45 +108,4 @@ public class BaseDialogFragment extends DialogFragment {
}
public void onLoadingStarted() {
BarcodeManager.disable();
this.openProgress();
}
public void onLoadingEnded() {
this.closeProgress();
BarcodeManager.enable();
}
protected void openProgress() {
// new Thread(() -> {
requireActivity().runOnUiThread(() -> {
if (this.mCurrentProgress == null) {
this.mCurrentProgress = UtilityProgress.createDefaultProgressDialog(requireActivity());
}
});
// }).start();
}
protected void closeProgress() {
// new Thread(() -> {
requireActivity().runOnUiThread(() -> {
if (mCurrentProgress != null) {
mCurrentProgress.dismiss();
mCurrentProgress = null;
}
});
// }).start();
}
public void onError(Exception ex) {
requireActivity().runOnUiThread(() -> {
this.closeProgress();
UtilityExceptions.defaultException(requireActivity(), ex);
});
}
}

View File

@@ -0,0 +1,14 @@
package it.integry.integrywmsnative.core.expansion;
import dagger.Subcomponent;
@Subcomponent
public interface BaseDialogFragmentComponent {
@Subcomponent.Factory
interface Factory {
BaseDialogFragmentComponent create();
}
void inject(BaseDialogFragment baseDialogFragment);
}

View File

@@ -0,0 +1,7 @@
package it.integry.integrywmsnative.core.expansion;
import dagger.Module;
@Module(subcomponents = BaseDialogFragmentComponent.class)
public class BaseDialogFragmentModule {
}

View File

@@ -1,6 +1,7 @@
package it.integry.integrywmsnative.core.expansion;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@@ -63,6 +64,30 @@ public abstract class BaseFragment extends Fragment {
BarcodeManager.enable();
}
private void openProgress() {
Log.d("PROGRESS DIALOG", "OPENED");
new Thread(() -> {
if (!progressOpened && !this.mCurrentProgress.isAdded()) {
this.progressOpened = true;
requireActivity().runOnUiThread(() -> {
this.mCurrentProgress.show(requireActivity().getSupportFragmentManager(), "tag");
});
}
}).start();
}
private void closeProgress() {
Log.d("PROGRESS DIALOG", "CLOSED");
new Thread(() -> {
if (progressOpened) {
this.progressOpened = false;
requireActivity().runOnUiThread(() -> {
mCurrentProgress.dismiss();
});
}
}).start();
}
public void onError(Exception ex) {
requireActivity().runOnUiThread(() -> {
this.closeProgress();
@@ -81,24 +106,6 @@ public abstract class BaseFragment extends Fragment {
}
}
protected void openProgress() {
if (!progressOpened) {
this.progressOpened = true;
requireActivity().runOnUiThread(() -> {
this.mCurrentProgress.show(requireActivity().getSupportFragmentManager(), "tag");
});
}
}
protected void closeProgress() {
if (progressOpened) {
this.progressOpened = false;
requireActivity().runOnUiThread(() -> {
mCurrentProgress.dismiss();
});
}
}
protected void popMe() {
requireActivity().runOnUiThread(() -> {
((IPoppableActivity) requireActivity()).pop();

View File

@@ -1,13 +1,20 @@
package it.integry.integrywmsnative.core.model;
import android.text.TextUtils;
import androidx.databinding.ObservableArrayList;
import com.annimon.stream.Optional;
import com.annimon.stream.Stream;
import org.jetbrains.annotations.Nullable;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import it.integry.integrywmsnative.core.model.dto.InternalCodAnagsDTO;
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
import it.integry.integrywmsnative.core.settings.SettingsManager;
import it.integry.integrywmsnative.core.utility.UtilityDB;
@@ -105,11 +112,41 @@ public class MtbColt extends EntityBase {
}
}
public MtbColt initDefaultFields() {
public MtbColt initDefaultFields(GestioneEnum gestioneEnum) {
setGestione(gestioneEnum);
setCodMdep(SettingsManager.i().getUserSession().getDepo().getCodMdep());
setPreparatoDa(SettingsManager.i().getUser().getFullname());
setOraInizPrep(UtilityDate.getDateInstance());
setCodAnag(SettingsManager.iDB().getDefaultCodAnag());
String codAnagToUse = null;
switch (gestioneEnum) {
case ACQUISTO:
case LAVORAZIONE:
case PRODUZIONE:
if (SettingsManager.iDB().getInternalCodAnags() == null) break;
Optional<InternalCodAnagsDTO> optCodAnagForn = Stream.of(SettingsManager.iDB().getInternalCodAnags())
.filter(InternalCodAnagsDTO::isFornitore)
.findFirst();
if (optCodAnagForn.isEmpty()) break;
codAnagToUse = optCodAnagForn.get().getCodAnag();
break;
case VENDITA:
if (SettingsManager.iDB().getInternalCodAnags() == null) break;
Optional<InternalCodAnagsDTO> optCodAnagClie = Stream.of(SettingsManager.iDB().getInternalCodAnags())
.filter(InternalCodAnagsDTO::isCliente)
.findFirst();
if (optCodAnagClie.isEmpty()) break;
codAnagToUse = optCodAnagClie.get().getCodAnag();
break;
}
setCodAnag(codAnagToUse);
return this;
}
@@ -540,9 +577,41 @@ public class MtbColt extends EntityBase {
String xmlPrefix = "{\"whereCond\": \"";
String xmlSuffix = "\"}";
StringBuilder whereCond = new StringBuilder();
// StringBuilder whereCond = new StringBuilder();
String whereCond;
List<String> conditions = new ArrayList<>();
String existingFilter;
if (this.filtroOrdini != null) {
existingFilter = this.filtroOrdini;
existingFilter = existingFilter.replace(xmlPrefix, "").replace(xmlSuffix, "");
conditions.add(existingFilter);
} else {
existingFilter = "";
}
if (filtroOrdineDtos != null && filtroOrdineDtos.size() > 0) {
for (FiltroOrdineDTO filtroOrdineDTO : filtroOrdineDtos) {
try {
String condition = (String.format("(d.g = %s AND d.d = %s and d.n = %s",
UtilityDB.valueToString(filtroOrdineDTO.getGestioneOrd()),
UtilityDB.valueToString(UtilityDate.formatDate(filtroOrdineDTO.getDataOrdD(), UtilityDate.COMMONS_DATE_FORMATS.YMD_SLASH)),
UtilityDB.valueToString(filtroOrdineDTO.getNumOrd())));
if (!UtilityString.isNullOrEmpty(filtroOrdineDTO.getDataConsS())) {
condition += (String.format(" AND dr.dc = %s",
UtilityDB.valueToString(UtilityDate.formatDate(filtroOrdineDTO.getDataConsD(), UtilityDate.COMMONS_DATE_FORMATS.YMD_SLASH))));
}
condition += ")";
if (!existingFilter.contains(condition)) {
conditions.add(condition);
}
} catch (Exception e) {
e.printStackTrace();
}
}
/*if (filtroOrdineDtos != null && filtroOrdineDtos.size() > 0) {
for (int i = 0; i < filtroOrdineDtos.size(); i++) {
FiltroOrdineDTO x = filtroOrdineDtos.get(i);
@@ -568,7 +637,8 @@ public class MtbColt extends EntityBase {
}
}
}
}*/
whereCond = TextUtils.join(" OR ", conditions);
this.filtroOrdini = xmlPrefix + whereCond + xmlSuffix;
}

View File

@@ -0,0 +1,35 @@
package it.integry.integrywmsnative.core.model.dto;
public class InternalCodAnagsDTO {
private String codAnag;
private boolean isCliente;
private boolean isFornitore;
public String getCodAnag() {
return codAnag;
}
public InternalCodAnagsDTO setCodAnag(String codAnag) {
this.codAnag = codAnag;
return this;
}
public boolean isCliente() {
return isCliente;
}
public InternalCodAnagsDTO setCliente(boolean cliente) {
isCliente = cliente;
return this;
}
public boolean isFornitore() {
return isFornitore;
}
public InternalCodAnagsDTO setFornitore(boolean fornitore) {
isFornitore = fornitore;
return this;
}
}

View File

@@ -104,10 +104,9 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer {
public void createColloLavorazione(int segno, RunnableArgs<MtbColt> onComplete, RunnableArgs<Exception> onFailed) {
MtbColt mtbColtToCreate = new MtbColt()
.setSegno(segno)
.setGestione(GestioneEnum.LAVORAZIONE);
.setSegno(segno);
mtbColtToCreate.initDefaultFields();
mtbColtToCreate.initDefaultFields(GestioneEnum.LAVORAZIONE);
mtbColtToCreate
.setOperation(CommonModelConsts.OPERATION.INSERT);
@@ -123,9 +122,8 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer {
public void createColloScaricoDaCarico(MtbColt sourceMtbColt, MtbDepoPosizione posizione, RunnableArgs<MtbColt> onComplete, RunnableArgs<Exception> onFailed) {
MtbColt newMtbColt = new MtbColt()
.initDefaultFields()
.initDefaultFields(GestioneEnum.LAVORAZIONE)
.setCodAnag(null)
.setGestione(GestioneEnum.LAVORAZIONE)
.setSegno(-1)
.setCodTcol(sourceMtbColt.getCodTcol())
.setPesoKg(sourceMtbColt.getPesoKg())
@@ -176,9 +174,8 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer {
public void createColliScaricoDaOrdineLavorazione(MtbColt sourceMtbColt, MtbColr sourceMtbColr, MtbDepoPosizione posizione, List<OrdineLavorazioneDTO> ordini, RunnableArgs<MtbColt> onComplete, RunnableArgs<Exception> onFailed) {
MtbColt newMtbColt = new MtbColt()
.initDefaultFields()
.initDefaultFields(GestioneEnum.LAVORAZIONE)
.setCodAnag(null)
.setGestione(GestioneEnum.LAVORAZIONE)
.setSegno(-1)
.setCodTcol(sourceMtbColt.getCodTcol())
// .setPesoKg(sourceMtbColt.getPesoKg())
@@ -246,9 +243,7 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer {
public void createColloFromEtichettaAnonima(String barcode, GestioneEnum gestione, RunnableArgs<MtbColt> onComplete, RunnableArgs<Exception> onFailed) {
MtbColt mtbColtToCreate = new MtbColt()
.setGestione(gestione);
mtbColtToCreate.initDefaultFields();
.initDefaultFields(gestione);
Integer customNumCollo = UtilityBarcode.getNumColloFromULAnonima(barcode);
String customSerCollo = CommonConst.Config.DEFAULT_ANONYMOUS_UL_SERIE;
@@ -587,35 +582,37 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer {
}
public void spostaArtsTraUL(MtbColt sourceMtbColt, MtbColt destMtbColt, Runnable onComplete, RunnableArgs<Exception> onFailed) {
MtbColt mtbColtToMoveClone = (MtbColt) sourceMtbColt.clone();
MtbColt mtbColtDestClone = (MtbColt) destMtbColt.clone();
new Thread(() -> {
MtbColt mtbColtToMoveClone = (MtbColt) sourceMtbColt.clone();
MtbColt mtbColtDestClone = (MtbColt) destMtbColt.clone();
for (int i = 0; i < mtbColtToMoveClone.getMtbColr().size(); i++) {
mtbColtToMoveClone.getMtbColr().get(i)
.setMtbAart(null)
.setMtbPartitaMag(null);
}
mtbColtDestClone.setMtbColr(null);
SpostaArtsTraULRequestDTO spostaArtsTraULRequestDTO = new SpostaArtsTraULRequestDTO()
.setSourceMtbColt(mtbColtToMoveClone)
.setDestinationMtbColt(mtbColtDestClone);
ColliMagazzinoRESTConsumerService colliMagazzinoRESTConsumerService = RESTBuilder.getService(ColliMagazzinoRESTConsumerService.class);
colliMagazzinoRESTConsumerService.spostaArtsTraUL(spostaArtsTraULRequestDTO).enqueue(new Callback<>() {
@Override
public void onResponse(Call<ServiceRESTResponse<Object>> call, Response<ServiceRESTResponse<Object>> response) {
analyzeAnswer(response, "spostaArtsTraUL", data -> {
onComplete.run();
}, onFailed);
for (int i = 0; i < mtbColtToMoveClone.getMtbColr().size(); i++) {
mtbColtToMoveClone.getMtbColr().get(i)
.setMtbAart(null)
.setMtbPartitaMag(null);
}
@Override
public void onFailure(Call<ServiceRESTResponse<Object>> call, Throwable t) {
if (onFailed != null) onFailed.run(new Exception(t));
}
});
mtbColtDestClone.setMtbColr(null);
SpostaArtsTraULRequestDTO spostaArtsTraULRequestDTO = new SpostaArtsTraULRequestDTO()
.setSourceMtbColt(mtbColtToMoveClone)
.setDestinationMtbColt(mtbColtDestClone);
ColliMagazzinoRESTConsumerService colliMagazzinoRESTConsumerService = RESTBuilder.getService(ColliMagazzinoRESTConsumerService.class);
colliMagazzinoRESTConsumerService.spostaArtsTraUL(spostaArtsTraULRequestDTO).enqueue(new Callback<>() {
@Override
public void onResponse(Call<ServiceRESTResponse<Object>> call, Response<ServiceRESTResponse<Object>> response) {
analyzeAnswer(response, "spostaArtsTraUL", data -> {
onComplete.run();
}, onFailed);
}
@Override
public void onFailure(Call<ServiceRESTResponse<Object>> call, Throwable t) {
if (onFailed != null) onFailed.run(new Exception(t));
}
});
}).start();
}
public void assegnaLottoSuColloScarico(MtbColt sourceMtbColt, Runnable onComplete, RunnableArgs<Exception> onFailed) {

View File

@@ -93,7 +93,8 @@ public class OrdiniRESTConsumer extends _BaseRESTConsumer {
&& (!UtilityString.isNullOrEmpty(x.getPartitaMag()) && x.getPartitaMag().equalsIgnoreCase(mtbColr.getPartitaMag())))
.findFirst();
if (optionalMtbPartitaMag.isPresent()) mtbColr.setMtbPartitaMag(optionalMtbPartitaMag.get());
if (optionalMtbPartitaMag.isPresent())
mtbColr.setMtbPartitaMag(optionalMtbPartitaMag.get());
}
}
}
@@ -182,13 +183,13 @@ public class OrdiniRESTConsumer extends _BaseRESTConsumer {
}
String baseSql = "SELECT DISTINCT mtb_colt.* " +
"FROM mtb_colt, " +
" mtb_colr " +
"WHERE mtb_colt.gestione = mtb_colr.gestione " +
" AND mtb_colt.ser_collo = mtb_colr.ser_collo " +
" AND mtb_colt.data_collo = mtb_colr.data_collo " +
" AND mtb_colt.num_collo = mtb_colr.num_collo " +
" AND " + whereCondGestione +
"FROM mtb_colt " +
" INNER JOIN mtb_colr ON " +
" mtb_colt.gestione = mtb_colr.gestione " +
" AND mtb_colt.ser_collo = mtb_colr.ser_collo " +
" AND mtb_colt.data_collo = mtb_colr.data_collo " +
" AND mtb_colt.num_collo = mtb_colr.num_collo " +
" WHERE " + whereCondGestione +
" AND mtb_colt.segno = " + UtilityDB.valueToString(segno) + " " +
" AND mtb_colt.data_doc IS NULL AND ";

View File

@@ -5,6 +5,7 @@ import android.util.Log;
import java.util.ArrayList;
import java.util.List;
import it.integry.integrywmsnative.core.exception.NotValidLicenseException;
import it.integry.integrywmsnative.core.rest.CommonRESTException;
import it.integry.integrywmsnative.core.rest.model.EsitoType;
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
@@ -41,7 +42,9 @@ public class _BaseRESTConsumer {
if (response.code() == 404) {
Log.e(logTitle, "Errore " + response.code() + ": risorsa non trovata (" + response.raw().request().url().toString() + ")");
onFailed.run(new Exception("Errore " + response.code() + ": risorsa non trovata (" + logTitle + ")"));
} else {
} else if (response.code() == 550)
onFailed.run(new NotValidLicenseException());
else {
Log.e(logTitle, "Status " + response.code() + ": " + response.message());
onFailed.run(new Exception("Status " + response.code() + ": " + response.message()));
}

View File

@@ -30,23 +30,27 @@ public class ServerStatusChecker {
private Runnable runnableCode = new Runnable() {
@Override
public void run() {
if(shouldExecute && !UtilityString.isNullOrEmpty(SettingsManager.i().getServer().getHost())) {
UtilityServer.isEmsApiAvailable(SettingsManager.i().getServer().getHost(), SettingsManager.i().getServer().getPort(), mInternalCallback);
if (shouldExecute && !UtilityString.isNullOrEmpty(SettingsManager.i().getServer().getHost())) {
UtilityServer.isEmsApiAvailable(
SettingsManager.i().getServer().getHost(),
SettingsManager.i().getServer().getPort(),
() -> mInternalCallback.run(true),
ex -> mInternalCallback.run(false));
handler.postDelayed(this, MILLIS_DELAY);
}
}
};
public void addCallback(RunnableArgs<Boolean> callback){
public void addCallback(RunnableArgs<Boolean> callback) {
this.mCallback.add(callback);
}
public void removeCallback(RunnableArgs<Boolean> callback){
public void removeCallback(RunnableArgs<Boolean> callback) {
this.mCallback.remove(callback);
}
public static void init(){
public static void init() {
instance.shouldExecute = true;
instance.handler.post(instance.runnableCode);

View File

@@ -5,6 +5,7 @@ import java.util.List;
import it.integry.integrywmsnative.core.model.Azienda;
import it.integry.integrywmsnative.core.model.MtbDepoPosizione;
import it.integry.integrywmsnative.core.model.dto.InternalCodAnagsDTO;
import it.integry.integrywmsnative.core.rest.model.AvailableCodMdepsDTO;
import it.integry.integrywmsnative.core.rest.model.DistribuzioneColloDTO;
@@ -15,10 +16,11 @@ public class DBSettingsModel {
private List<MtbDepoPosizione> availablePosizioni = null;
private Azienda datiAzienda = null;
private List<InternalCodAnagsDTO> internalCodAnags = null;
private boolean enableCheckPartitaMagCheckPickingV;
private boolean flagMultiClienteOrdV;
private String defaultCodAnag;
private boolean flagUseCodAnagAziendale;
private String defaultCausaleRettificaGiacenze;
private DistribuzioneColloDTO.CriterioDistribuzione defaultCriterioDistribuzione;
private boolean flagAskClienteInPickingLibero;
@@ -37,6 +39,7 @@ public class DBSettingsModel {
private List<String> notePerditaDocInterni = new ArrayList<>();
private boolean flagSpedizioneUseQtaOrd;
private boolean flagOrdinaNuoviArticoliInGriglia;
private boolean flagOrdinaArticoliOnScan;
private String docInterniCheckFornitore;
private String produzioneDefaultCodAnag;
private String reportNameSpedizionChiudiOrdine;
@@ -80,6 +83,15 @@ public class DBSettingsModel {
return this;
}
public List<InternalCodAnagsDTO> getInternalCodAnags() {
return internalCodAnags;
}
public DBSettingsModel setInternalCodAnags(List<InternalCodAnagsDTO> internalCodAnags) {
this.internalCodAnags = internalCodAnags;
return this;
}
public List<AvailableCodMdepsDTO> getAvailableCodMdep() {
return availableCodMdep;
}
@@ -106,12 +118,12 @@ public class DBSettingsModel {
return this;
}
public String getDefaultCodAnag() {
return defaultCodAnag;
public boolean isFlagUseCodAnagAziendale() {
return flagUseCodAnagAziendale;
}
public DBSettingsModel setDefaultCodAnag(String defaultCodAnag) {
this.defaultCodAnag = defaultCodAnag;
public DBSettingsModel setFlagUseCodAnagAziendale(boolean flagUseCodAnagAziendale) {
this.flagUseCodAnagAziendale = flagUseCodAnagAziendale;
return this;
}
@@ -322,4 +334,14 @@ public class DBSettingsModel {
this.flagPickLiberoAllowEmptyDest = flagPickLiberoAllowEmptyDest;
return this;
}
public boolean getFlagOrdinaArticoliOnScan() {
return flagOrdinaArticoliOnScan;
}
public DBSettingsModel setFlagOrdinaArticoliOnScan(boolean flagOrdinaArticoliOnScan) {
this.flagOrdinaArticoliOnScan = flagOrdinaArticoliOnScan;
return this;
}
}

View File

@@ -4,7 +4,9 @@ import android.content.Context;
import com.annimon.stream.Stream;
import com.google.firebase.perf.metrics.Trace;
import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Type;
import java.net.SocketTimeoutException;
import java.util.ArrayList;
import java.util.Arrays;
@@ -13,6 +15,7 @@ import java.util.List;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.model.StbGestSetup;
import it.integry.integrywmsnative.core.model.dto.InternalCodAnagsDTO;
import it.integry.integrywmsnative.core.rest.consumers.GestSetupRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.PosizioniRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer;
@@ -88,21 +91,18 @@ public class SettingsManager {
onFailed.run(new Exception("Errore durante il caricamento dei dati. Riavviare l'applicazione!"));
};
onProgress.run("dati azienda");
loadDatiAzienda(() -> {
onProgress.run("profili");
loadAvailableProfiles(() -> {
onProgress.run("depositi");
loadAvailableCodMdeps(() -> {
onProgress.run("depositi");
loadAvailableCodMdeps(() -> {
onProgress.run("posizioni");
loadAvailablePosizioni(() -> {
onProgress.run("posizioni");
loadAvailablePosizioni(() -> {
onProgress.run("impostazioni");
loadGestSetupValues(() -> {
onProgress.run("impostazioni");
loadGestSetupValues(tmpOnComplete, tmpOnFailed);
}, tmpOnFailed);
onProgress.run("dati azienda");
loadDatiAzienda(tmpOnComplete, tmpOnFailed);
}, tmpOnFailed);
}, tmpOnFailed);
}, tmpOnFailed);
@@ -113,7 +113,27 @@ public class SettingsManager {
SystemRESTConsumer.getAzienda(datiAzienda -> {
SettingsManager.iDB().setDatiAzienda(datiAzienda);
if (onComplete != null) onComplete.run();
if (!SettingsManager.iDB().isFlagUseCodAnagAziendale()) {
onComplete.run();
return;
}
String internalCodAnagsQuery = "SELECT ga.cod_anag,\n" +
" CAST(CASE WHEN vc.cod_anag IS NOT NULL THEN 1 ELSE 0 END AS BIT) AS is_cliente,\n" +
" CAST(CASE WHEN af.cod_anag IS NOT NULL THEN 1 ELSE 0 END AS BIT) AS is_fornitore\n" +
"FROM azienda\n" +
"INNER JOIN gtb_anag ga on azienda.part_iva = ga.part_iva\n" +
"LEFT OUTER JOIN vtb_clie vc on ga.cod_anag = vc.cod_anag AND vc.flag_stato = 'A'\n" +
"LEFT OUTER JOIN atb_forn af on ga.cod_anag = af.cod_anag AND af.flag_stato = 'A'";
Type type = new TypeToken<List<InternalCodAnagsDTO>>() {
}.getType();
SystemRESTConsumer.<List<InternalCodAnagsDTO>>processSqlStatic(internalCodAnagsQuery, type, internalCodAnagsList -> {
SettingsManager.iDB().setInternalCodAnags(internalCodAnagsList);
if (onComplete != null) onComplete.run();
}, onFailed);
}, onFailed);
}
@@ -193,7 +213,7 @@ public class SettingsManager {
stbGestSetupList.add(new StbGestSetup()
.setGestName("PICKING")
.setSection("SETUP")
.setKeySection("COD_ANAG_DEFAULT"));
.setKeySection("FLAG_USE_COD_ANAG_AZIENDALE"));
stbGestSetupList.add(new StbGestSetup()
.setGestName("PICKING")
.setSection("SETUP")
@@ -238,10 +258,6 @@ public class SettingsManager {
.setGestName("PICKING")
.setSection("PRODUZIONE")
.setKeySection("FLAG_VERSAMENTO_DIRETTO"));
stbGestSetupList.add(new StbGestSetup()
.setGestName("PICKING")
.setSection("PRODUZIONE")
.setKeySection("DEFAULT_COD_ANAG"));
stbGestSetupList.add(new StbGestSetup()
.setGestName("PICKING")
.setSection("SPEDIZIONE")
@@ -274,6 +290,10 @@ public class SettingsManager {
.setGestName("PVM")
.setSection("ORDINI_A")
.setKeySection("ORDINA_NUOVI_ARTICOLI"));
stbGestSetupList.add(new StbGestSetup()
.setGestName("PVM")
.setSection("ORDINI_A")
.setKeySection("ORDINA_ARTICOLI_ON_SCAN"));
stbGestSetupList.add(new StbGestSetup()
.setGestName("PVM")
.setSection("DOC_INTERNI")
@@ -292,7 +312,7 @@ public class SettingsManager {
dbSettingsModelIstance.setDefaultCausaleRettificaGiacenze(getValueFromList(list, "SETUP", "DEFAULT_CAUSALE_RETTIFICA_GIACENZE", String.class));
dbSettingsModelIstance.setEnableCheckPartitaMagCheckPickingV(getValueFromList(list, "SETUP", "ENABLE_CHECK_PARTITA_MAG_PICKING_V", Boolean.class));
dbSettingsModelIstance.setFlagMultiClienteOrdV(getValueFromList(list, "SETUP", "FLAG_MULTI_CLIENTE_ORD_VENDITA", Boolean.class));
dbSettingsModelIstance.setDefaultCodAnag(getValueFromList(list, "SETUP", "COD_ANAG_DEFAULT", String.class));
dbSettingsModelIstance.setFlagUseCodAnagAziendale(getValueFromList(list, "SETUP", "FLAG_USE_COD_ANAG_AZIENDALE", Boolean.class));
dbSettingsModelIstance.setDefaultCriterioDistribuzione(getValueFromList(list, "SETUP", "DEFAULT_CRITERIO_DISTRIBUZIONE", String.class));
dbSettingsModelIstance.setFlagAskClienteInPickingLibero(getValueFromList(list, "PICKING_LIBERO", "FLAG_ASK_CLIENTE", Boolean.class));
dbSettingsModelIstance.setFlagPickLiberoAllowEmptyCliente(getValueFromList(list, "PICKING_LIBERO", "FLAG_ALLOW_EMPTY_CLIENTE", Boolean.class));
@@ -304,7 +324,6 @@ public class SettingsManager {
dbSettingsModelIstance.setFlagAskPesoColloSpedizione(getValueFromList(list, "SETUP", "FLAG_ASK_PESO_COLLO", Boolean.class));
dbSettingsModelIstance.setFlagUseNewPickingListSpedizione(getValueFromList(list, "SPEDIZIONE", "FLAG_USE_NEW_PICKING_LIST", Boolean.class));
dbSettingsModelIstance.setFlagVersamentoDirettoProduzione(getValueFromList(list, "PRODUZIONE", "FLAG_VERSAMENTO_DIRETTO", Boolean.class));
dbSettingsModelIstance.setProduzioneDefaultCodAnag(getValueFromList(list, "PRODUZIONE", "DEFAULT_COD_ANAG", String.class));
dbSettingsModelIstance.setFlagSpedizioneEnableManualPick(getValueFromList(list, "SPEDIZIONE", "ENABLE_MANUAL_PICK", Boolean.class));
dbSettingsModelIstance.setFlagSpedizioneEnableFakeGiacenza(getValueFromList(list, "SPEDIZIONE", "ENABLE_FAKE_GIACENZA", Boolean.class));
dbSettingsModelIstance.setFlagSpedizioneCanSelectMultipleOrders(getValueFromList(list, "SPEDIZIONE", "FLAG_CAN_SELECT_MULTIPLE_ORDERS", Boolean.class));
@@ -314,6 +333,7 @@ public class SettingsManager {
dbSettingsModelIstance.setDocInterniCheckFornitore(getValueFromList(list, "DOC_INTERNI", "CHECK_FORNITORE", String.class));
dbSettingsModelIstance.setFlagAccettazioneUseQtaOrd(getValueFromList(list, "ACCETTAZIONE", "FLAG_USE_QTA_ORD", Boolean.class));
dbSettingsModelIstance.setFlagPickLiberoAllowEmptyDest(getValueFromList(list, "PICKING_LIBERO", "FLAG_ALLOW_EMPTY_DEST", Boolean.class));
dbSettingsModelIstance.setFlagOrdinaArticoliOnScan(getValueFromList(list, "ORDINI_A", "ORDINA_ARTICOLI_ON_SCAN", Boolean.class));
String notePerdita = getValueFromList(list, "DOC_INTERNI", "NOTE_PERDITA", String.class);
if (notePerdita != null) {

View File

@@ -1,6 +1,5 @@
package it.integry.integrywmsnative.core.utility;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.FragmentActivity;
import it.integry.integrywmsnative.view.dialogs.DialogProgressView;
@@ -13,10 +12,5 @@ public class UtilityProgress {
return progress;
}
public static DialogProgressView createDefaultProgressDialog(AppCompatActivity mContext, String title, String subtitle) {
DialogProgressView progress = DialogProgressView.newInstance(title, subtitle, true);
progress.show(mContext.getSupportFragmentManager(), "tag");
return progress;
}
}

View File

@@ -5,14 +5,16 @@ import java.net.InetSocketAddress;
import java.net.Socket;
import java.net.SocketAddress;
import it.integry.integrywmsnative.core.exception.NotValidLicenseException;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.gest.login.exception.ServerNotReachableException;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
public class UtilityServer {
public static void isHostReachable(final String serverAddress, final int serverTCPport, final RunnableArgs<Boolean> callback){
public static void isHostReachable(final String serverAddress, final int serverTCPport, final RunnableArgs<Boolean> callback) {
new Thread(() -> {
boolean connected = false;
@@ -36,7 +38,7 @@ public class UtilityServer {
}).start();
}
public static void isEmsApiAvailable(final String serverAddress, final int serverTCPport, final RunnableArgs<Boolean> callback) {
public static void isEmsApiAvailable(final String serverAddress, final int serverTCPport, final Runnable onComplete, final RunnableArgs<Exception> onFailed) {
new Thread(() -> {
OkHttpClient client = new OkHttpClient();
@@ -46,11 +48,16 @@ public class UtilityServer {
try {
Response response = client.newCall(request).execute();
boolean status = response.isSuccessful();
response.close();
callback.run(status);
if (response.code() == 200) onComplete.run();
else if (response.code() == 404)
onFailed.run(new ServerNotReachableException(serverAddress, serverTCPport, null));
else if (response.code() == 550)
onFailed.run(new NotValidLicenseException());
else onFailed.run(new Exception("Errore non identificato (STATUS: " + response.code() + ")"));
} catch (IOException e) {
callback.run(false);
onFailed.run(new ServerNotReachableException(serverAddress, serverTCPport, e));
}
}).start();

View File

@@ -9,6 +9,7 @@ import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.appcompat.widget.AppCompatTextView;
import androidx.databinding.DataBindingUtil;
import androidx.databinding.ObservableArrayList;
@@ -76,10 +77,23 @@ public class MainAccettazioneFragment extends BaseFragment implements ISearchabl
mAppBarTitle.setText(context.getText(R.string.accettazione_title_fragment).toString());
}
@Override
public void onSaveInstanceState(@NonNull Bundle outState) {
onLoadingEnded();
outState.putString("mToolbar", DataCache.addItem(mToolbar));
super.onSaveInstanceState(outState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
if(savedInstanceState != null && savedInstanceState.containsKey("mToolbar"))
mToolbar = DataCache.retrieveItem(savedInstanceState.getString("mToolbar"));
mBinding = DataBindingUtil.inflate(inflater, R.layout.fragment_main_accettazione, container, false);
MainApplication.appComponent

View File

@@ -688,13 +688,10 @@ public class AccettazionePickingActivity extends BaseActivity implements Accetta
}
private final RunnableArgs<BarcodeScanDTO> onScanSuccessful = data -> {
BarcodeManager.disable();
this.openProgress();
this.onLoadingStarted();
this.mViewModel.processBarcodeDTO(data, () -> {
BarcodeManager.enable();
this.closeProgress();
this.onLoadingEnded();
});
};
@@ -705,11 +702,10 @@ public class AccettazionePickingActivity extends BaseActivity implements Accetta
public void createNewLU() {
this.mBindings.accettazioneOrdineInevasoFab.close(true);
this.openProgress();
this.onLoadingStarted();
this.mViewModel.createNewLU(null, null, false, () -> {
this.closeProgress();
this.onLoadingEnded();
});
}
@@ -756,7 +752,7 @@ public class AccettazionePickingActivity extends BaseActivity implements Accetta
@Override
public void onLUPrintError(Exception ex, Runnable onComplete) {
this.closeProgress();
this.onLoadingEnded();
DialogSimpleMessageView.makeErrorDialog(
new SpannableString(ex.getMessage()),
null,
@@ -766,16 +762,6 @@ public class AccettazionePickingActivity extends BaseActivity implements Accetta
.show(getSupportFragmentManager(), "tag");
}
@Override
public void onLoadingStarted() {
this.openProgress();
}
@Override
public void onLoadingEnded() {
this.closeProgress();
}
@Override
public void onMtbColrEdit(MtbColr mtbColr) {
this.mViewModel.dispatchRowEdit(mtbColr);
@@ -808,7 +794,7 @@ public class AccettazionePickingActivity extends BaseActivity implements Accetta
@Override
public void onError(Exception ex) {
this.closeProgress();
this.onLoadingEnded();
if (ex instanceof InvalidPesoKGException) {
UtilityToast.showToast(ex.getMessage());

View File

@@ -373,8 +373,7 @@ public class AccettazionePickingViewModel {
MtbColt mtbColt = new MtbColt();
mtbColt
.initDefaultFields()
.setGestione(defaultGestioneOfUL)
.initDefaultFields(defaultGestioneOfUL)
.setAnnotazioni(additionalNotes)
.setPosizione(defaultPosAccettazione)
.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE);

View File

@@ -15,7 +15,6 @@ import it.integry.integrywmsnative.core.utility.UtilityServer;
import it.integry.integrywmsnative.core.utility.UtilityString;
import it.integry.integrywmsnative.gest.login.exception.InvalidServerCodAziendaException;
import it.integry.integrywmsnative.gest.login.exception.InvalidUserDepositException;
import it.integry.integrywmsnative.gest.login.exception.ServerNotReachableException;
import it.integry.integrywmsnative.gest.login.rest.LoginRESTConsumer;
public class LoginViewModel {
@@ -52,13 +51,10 @@ public class LoginViewModel {
final String host = u.getHost();
final int port = u.getPort();
UtilityServer.isEmsApiAvailable(host, port, value1 -> {
UtilityServer.isEmsApiAvailable(host, port, () -> {
if (value1) { //Is online
mLoginRESTConsumer.authenticate(host, port, username, password, loginDTO -> {
SettingsManager.iDB().setAvailableProfiles(loginDTO.getAvailableProfiles());
SettingsManager.i().createUserSession();
SettingsManager.i().getUser().setFullname(!UtilityString.isNullOrEmpty(loginDTO.getFull_name()) ? loginDTO.getFull_name() : username);
@@ -73,11 +69,7 @@ public class LoginViewModel {
}, this::sendError);
} else { //Is not online
this.sendError(new ServerNotReachableException(host, port, null));
}
});
}, this::sendError);
}, ex -> {
this.sendError(new InvalidServerCodAziendaException(codAzienda, ex));
});

View File

@@ -687,21 +687,14 @@ public class OrdiniUscitaElencoFragment extends BaseFragment implements ITitledF
private final RunnableArgs<BarcodeScanDTO> onScanSuccessful = data -> {
BarcodeManager.disable();
this.openProgress();
this.onLoadingStarted();
this.mViewModel.processBarcodeDTO(data, () -> {
BarcodeManager.enable();
this.closeProgress();
this.onLoadingEnded();
});
};
private void refreshList(List<OrdiniUscitaElencoDTO> filteredList) {
// new Thread(() -> {
// requireActivity().runOnUiThread(() -> {
// this.onLoadingStarted();
List<OrdiniUscitaElencoDTO> tmpList;
if (filteredList != null) {
@@ -720,12 +713,6 @@ public class OrdiniUscitaElencoFragment extends BaseFragment implements ITitledF
fabVisible.set(Stream.of(mOrdiniInevasiMutableData)
.anyMatch(y -> y.getSelectedObservable().get()));
// this.onLoadingEnded();
// });
// }).start();
}
private List<OrdiniUscitaElencoListModel> convertDataModelToListModel(List<OrdiniUscitaElencoDTO> dataList) {

View File

@@ -266,13 +266,13 @@ public class PickingLiberoFragment extends BaseFragment implements ITitledFragme
null,
() -> onComplete.run(true),
() -> onComplete.run(false)
).show(getActivity().getSupportFragmentManager(), "tag");
).show(requireActivity().getSupportFragmentManager(), "tag");
}
@Override
public void onError(Exception ex) {
getActivity().runOnUiThread(() -> {
this.closeProgress();
requireActivity().runOnUiThread(() -> {
this.onLoadingEnded();
if (ex instanceof InvalidPesoKGException) {
UtilityToast.showToast(ex.getMessage());
@@ -287,7 +287,7 @@ public class PickingLiberoFragment extends BaseFragment implements ITitledFragme
@Override
public void onLUClienteRequired(RunnableArgss<VtbDest, String> onComplete, Runnable onAbort) {
DialogAskClienteView.newInstance(onComplete, onAbort)
.show(getActivity().getSupportFragmentManager(), "tag");
.show(requireActivity().getSupportFragmentManager(), "tag");
}
@Override
@@ -346,10 +346,10 @@ public class PickingLiberoFragment extends BaseFragment implements ITitledFragme
.setPartitaMag(resultDTO.getPartitaMag())
.setDataScad(resultDTO.getDataScad());
this.openProgress();
this.onLoadingStarted();
onComplete.run(pickedQuantityDTO, shouldCloseLU);
})
.setOnAbort(this::closeProgress)
.setOnAbort(this::onLoadingEnded)
.show(requireActivity().getSupportFragmentManager(), "tag");
}

View File

@@ -244,10 +244,9 @@ public class PickingLiberoViewModel {
this.sendOnLoadingStarted();
MtbColt mtbColt = new MtbColt();
mtbColt.initDefaultFields();
mtbColt.setGestione(mDefaultGestione)
mtbColt.initDefaultFields(mDefaultGestione)
.setRifOrd(mDefaultGestione == GestioneEnum.LAVORAZIONE ? "PICKING LIBERO" : null)
.setCodAnag(SettingsManager.iDB().getProduzioneDefaultCodAnag())
// .setCodAnag(SettingsManager.iDB().getProduzioneDefaultCodAnag())
.setSegno(-1)
.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE);

View File

@@ -239,24 +239,20 @@ public class PickingResiActivity extends BaseActivity implements BottomSheetFrag
return pickingResiListModels;
}
private RunnableArgs<BarcodeScanDTO> onScanSuccessful = data -> {
BarcodeManager.disable();
this.openProgress();
private final RunnableArgs<BarcodeScanDTO> onScanSuccessful = data -> {
this.onLoadingStarted();
this.mViewmodel.processBarcodeDTO(data, () -> {
BarcodeManager.enable();
this.closeProgress();
this.onLoadingEnded();
});
};
public void createNewLU() {
this.mBindings.mainFab.close(true);
this.openProgress();
this.onLoadingStarted();
this.mViewmodel.createNewLU(null, null, () -> {
this.closeProgress();
this.onLoadingEnded();
});
}
@@ -286,7 +282,7 @@ public class PickingResiActivity extends BaseActivity implements BottomSheetFrag
@Override
public void onError(Exception ex) {
this.closeProgress();
this.onLoadingEnded();
if (ex instanceof InvalidPesoKGException) {
UtilityToast.showToast(ex.getMessage());
@@ -332,7 +328,7 @@ public class PickingResiActivity extends BaseActivity implements BottomSheetFrag
.setPartitaMag(resultDTO.getPartitaMag())
.setDataScad(resultDTO.getDataScad());
this.openProgress();
this.onLoadingStarted();
onComplete.run(pickedQuantityDTO, shouldCloseLU);
})
.setOnAbort(() -> {
@@ -400,7 +396,7 @@ public class PickingResiActivity extends BaseActivity implements BottomSheetFrag
@Override
public void onLUPrintError(Exception ex, Runnable onComplete) {
this.closeProgress();
this.onLoadingEnded();
DialogSimpleMessageView.makeErrorDialog(
new SpannableString(ex.getMessage()),
null,
@@ -409,14 +405,4 @@ public class PickingResiActivity extends BaseActivity implements BottomSheetFrag
onComplete)
.show(getSupportFragmentManager(), "tag");
}
@Override
public void onLoadingStarted() {
this.openProgress();
}
@Override
public void onLoadingEnded() {
this.closeProgress();
}
}

View File

@@ -30,6 +30,7 @@ import it.integry.integrywmsnative.core.model.MtbColr;
import it.integry.integrywmsnative.core.model.MtbColt;
import it.integry.integrywmsnative.core.model.MtbTCol;
import it.integry.integrywmsnative.core.model.dto.PickDataDTO;
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
@@ -125,8 +126,7 @@ public class PickingResiViewModel {
public void createNewLU(Integer customNumCollo, String customSerCollo, Runnable onComplete) {
MtbColt mtbColt = new MtbColt();
mtbColt.initDefaultFields();
mtbColt.setGestione(mDefaultGestioneOfLU)
mtbColt.initDefaultFields(GestioneEnum.fromString(mDefaultGestioneOfLU))
.setSegno(mDefaultSegnoOfLU)
.setCodAnag(mDefaultCodAnagOfLU)
.setCodMdep(mDefaultCodMdepOfLU)

View File

@@ -26,7 +26,6 @@ import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
import it.integry.integrywmsnative.core.rest.model.SitArtOrdDTO;
import it.integry.integrywmsnative.core.settings.SettingsManager;
import it.integry.integrywmsnative.core.utility.UtilityBigDecimal;
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.databinding.FragmentProdFabbisognoLineeProdBinding;
import it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.dialog_ask_mag_prossimita.DialogAskMagazzinoProssimitaView;
import it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.dto.ProdFabbisognoLineeProdDTO;
@@ -112,24 +111,6 @@ public class ProdFabbisognoLineeProdFragment extends BaseFragment implements ITi
titleText.setText(context.getText(R.string.prod_fabbisogno_linee_prod_title).toString());
}
@Override
public void onError(Exception ex) {
this.closeProgress();
UtilityExceptions.defaultException(getActivity(), ex);
}
@Override
public void onLoadingStarted() {
this.openProgress();
}
@Override
public void onLoadingEnded() {
this.closeProgress();
}
private void startPickingActivity(List<ProdFabbisognoLineeProdDTO> fabbisognoList) {
String codMdep = SettingsManager.i().getUserSession().getDepo().getCodMdep();

View File

@@ -22,14 +22,12 @@ import javax.inject.Inject;
import it.integry.integrywmsnative.MainApplication;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
import it.integry.integrywmsnative.core.expansion.BaseDialogFragment;
import it.integry.integrywmsnative.core.expansion.OnSingleClickListener;
import it.integry.integrywmsnative.core.expansion.RunnableArgsss;
import it.integry.integrywmsnative.core.model.JtbFasi;
import it.integry.integrywmsnative.core.settings.SettingsManager;
import it.integry.integrywmsnative.core.utility.UtilityDate;
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.databinding.DialogAskMagazzinoProssimitaBinding;
public class DialogAskMagazzinoProssimitaView extends BaseDialogFragment implements DialogAskMagazzinoProssimitaViewModel.Listener {
@@ -178,20 +176,4 @@ public class DialogAskMagazzinoProssimitaView extends BaseDialogFragment impleme
// });
// }
@Override
public void onError(Exception ex) {
this.closeProgress();
UtilityExceptions.defaultException(mContext, ex);
BarcodeManager.enable();
}
@Override
public void onLoadingStarted() {
this.openProgress();
}
@Override
public void onLoadingEnded() {
this.closeProgress();
}
}

View File

@@ -116,9 +116,7 @@ public class ProdRecuperoMaterialeFragment extends BaseFragment implements ITitl
}
private final RunnableArgs<BarcodeScanDTO> onScanSuccessful = data -> {
BarcodeManager.disable();
this.openProgress();
this.onLoadingStarted();
this.mViewModel.processBarcodeDTO(data);
};
@@ -228,7 +226,7 @@ public class ProdRecuperoMaterialeFragment extends BaseFragment implements ITitl
@Override
public void onLUPrintError(Exception ex, Runnable onComplete) {
this.closeProgress();
this.onLoadingEnded();
DialogSimpleMessageView.makeErrorDialog(
new SpannableString(ex.getMessage()),
null,

View File

@@ -110,10 +110,10 @@ public class ProdRientroMerceOrderDetailFragment extends BaseFragment implements
private void initRecyclerView() {
mBindings.mainList.setNestedScrollingEnabled(false);
mBindings.mainList.setHasFixedSize(true);
mBindings.mainList.setLayoutManager(new LinearLayoutManager(getActivity()));
mBindings.mainList.setLayoutManager(new LinearLayoutManager(requireActivity()));
SimpleDividerItemDecoration itemDecorator = new SimpleDividerItemDecoration(getActivity(), SimpleDividerItemDecoration.VERTICAL);
itemDecorator.setDrawable(ContextCompat.getDrawable(getActivity(), R.drawable.divider));
SimpleDividerItemDecoration itemDecorator = new SimpleDividerItemDecoration(requireActivity(), SimpleDividerItemDecoration.VERTICAL);
itemDecorator.setDrawable(ContextCompat.getDrawable(requireActivity(), R.drawable.divider));
mBindings.mainList.addItemDecoration(itemDecorator);
mAdapter = new ProdRientroMerceOrderDetailMtbColtListAdapter(new ObservableArrayList<>());
@@ -167,7 +167,7 @@ public class ProdRientroMerceOrderDetailFragment extends BaseFragment implements
public void addULButtonClick() {
this.openProgress();
this.onLoadingStarted();
String codProd = this.currentOrder.getValue().getCodProd();
mArticoloRESTConsumer.getByCodMart(codProd, mtbAart -> {
@@ -188,7 +188,7 @@ public class ProdRientroMerceOrderDetailFragment extends BaseFragment implements
mSystemRESTConsumer.<List<DtbOrdSteps>>processSql(sql, new TypeToken<ArrayList<DtbOrdSteps>>() {}.getType(), dtbOrdStep -> {
this.closeProgress();
this.onLoadingEnded();
DialogInputLUProdDTO dialogInputLUProdDTO = new DialogInputLUProdDTO()
.setMtbAart(mtbAart)
@@ -216,9 +216,9 @@ public class ProdRientroMerceOrderDetailFragment extends BaseFragment implements
this.mViewModel.createLU(pickedQuantityDTO);
}, () -> {
this.closeProgress();
this.onLoadingEnded();
})
.show(getActivity().getSupportFragmentManager(), "tag");
.show(requireActivity().getSupportFragmentManager(), "tag");
}, this::onError);
@@ -248,63 +248,63 @@ public class ProdRientroMerceOrderDetailFragment extends BaseFragment implements
if (currentOrder.getValue() != null) {
switch (currentOrder.getValue().getStatoEnum()) {
case IN_CORSO:
return ContextCompat.getDrawable(getActivity(), R.drawable.ic_play_circle_filled_24dp);
return ContextCompat.getDrawable(requireActivity(), R.drawable.ic_play_circle_filled_24dp);
case PAUSA:
return ContextCompat.getDrawable(getActivity(), R.drawable.ic_pause_circle_filled_24dp);
return ContextCompat.getDrawable(requireActivity(), R.drawable.ic_pause_circle_filled_24dp);
case PROGRAMMATO:
default:
return ContextCompat.getDrawable(getActivity(), R.drawable.ic_clock_circle_outline_24dp);
return ContextCompat.getDrawable(requireActivity(), R.drawable.ic_clock_circle_outline_24dp);
}
}
else
return ContextCompat.getDrawable(getActivity(), R.drawable.ic_clock_circle_outline_24dp);
return ContextCompat.getDrawable(requireActivity(), R.drawable.ic_clock_circle_outline_24dp);
}
public Integer getOrderStatusIconTintColor() {
if (currentOrder.getValue() != null) {
switch (currentOrder.getValue().getStatoEnum()) {
case IN_CORSO:
return ContextCompat.getColor(getActivity(), R.color.green_800);
return ContextCompat.getColor(requireActivity(), R.color.green_800);
case PAUSA:
return ContextCompat.getColor(getActivity(), R.color.yellow_800);
return ContextCompat.getColor(requireActivity(), R.color.yellow_800);
case PROGRAMMATO:
default:
return ContextCompat.getColor(getActivity(), R.color.blue_800);
return ContextCompat.getColor(requireActivity(), R.color.blue_800);
}
}
else
return ContextCompat.getColor(getActivity(), R.color.blue_800);
return ContextCompat.getColor(requireActivity(), R.color.blue_800);
}
public Drawable getOrderStatusLabelBackgroud() {
if (currentOrder.getValue() != null) {
switch (currentOrder.getValue().getStatoEnum()) {
case IN_CORSO:
return ContextCompat.getDrawable(getActivity(), R.drawable.label_success_text);
return ContextCompat.getDrawable(requireActivity(), R.drawable.label_success_text);
case PAUSA:
return ContextCompat.getDrawable(getActivity(), R.drawable.label_warning_text);
return ContextCompat.getDrawable(requireActivity(), R.drawable.label_warning_text);
case PROGRAMMATO:
default:
return ContextCompat.getDrawable(getActivity(), R.drawable.label_primary_text);
return ContextCompat.getDrawable(requireActivity(), R.drawable.label_primary_text);
}
}
else
return ContextCompat.getDrawable(getActivity(), R.drawable.label_primary_text);
return ContextCompat.getDrawable(requireActivity(), R.drawable.label_primary_text);
}
public Integer getOrderStatusLabelTextColor() {
if (currentOrder.getValue() != null) {
switch (currentOrder.getValue().getStatoEnum()) {
case IN_CORSO:
return ContextCompat.getColor(getActivity(), R.color.green_800);
return ContextCompat.getColor(requireActivity(), R.color.green_800);
case PAUSA:
return ContextCompat.getColor(getActivity(), R.color.yellow_800);
return ContextCompat.getColor(requireActivity(), R.color.yellow_800);
case PROGRAMMATO:
default:
return ContextCompat.getColor(getActivity(), R.color.blue_800);
return ContextCompat.getColor(requireActivity(), R.color.blue_800);
}
}
else
return ContextCompat.getColor(getActivity(), R.color.blue_800);
return ContextCompat.getColor(requireActivity(), R.color.blue_800);
}
}

View File

@@ -334,7 +334,7 @@ public class ProdVersamentoMaterialeFragment extends BaseFragment implements Pro
@Override
public void onWarning(String warningText, Runnable action) {
this.requireActivity().runOnUiThread(() -> {
this.closeProgress();
this.onLoadingEnded();
DialogSimpleMessageView
.makeWarningDialog(new SpannableString(Html.fromHtml(warningText)), null, action)
.show(requireActivity().getSupportFragmentManager(), "tag");

View File

@@ -13,11 +13,8 @@ import androidx.databinding.DataBindingUtil;
import androidx.databinding.ObservableArrayList;
import androidx.recyclerview.widget.LinearLayoutManager;
import com.annimon.stream.Stream;
import com.ravikoradiya.liveadapter.LiveAdapter;
import java.math.BigDecimal;
import java.util.List;
import com.ravikoradiya.liveadapter.Type;
import javax.inject.Inject;
@@ -35,6 +32,7 @@ import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.settings.SettingsManager;
import it.integry.integrywmsnative.core.utility.UtilityDate;
import it.integry.integrywmsnative.databinding.ActivityPvOrdineAcquistoEditBinding;
import it.integry.integrywmsnative.databinding.FragmentPvArticoliOrdineAcquistoListSingleItemBinding;
import it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.dialog.DialogEditArticoloView;
import it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.ui.OrdineAcquistoArtListModel;
import it.integry.integrywmsnative.ui.FabMenuCustomAnimations;
@@ -134,20 +132,17 @@ public class PVOrdineAcquistoEditActivity extends BaseActivity implements PVOrdi
}
private void initRecyclerView() {
// this.mViewModel.getArticoli().observe(this, updatedData -> {
// this.mArticoliMutableData.clear();
// this.mArticoliMutableData.addAll(convertDataModelToListModel(updatedData));
//// this.noItemsToPick.set(!isThereAnyItemToPick(updatedData));
// });
// var mAdapter = new OrdineAcquistoArtListAdapter(this, mArticoliMutableData)
// .setOnItemClicked(this::selectAction);
var itemType = new Type<ArticoloOrdine, FragmentPvArticoliOrdineAcquistoListSingleItemBinding>(R.layout.fragment_pv_articoli_ordine_acquisto__list_single_item, BR.articolo);
itemType.onClick(x -> {
this.selectAction(x.getBinding().getArticolo());
return null;
});
var liveAdapter = new LiveAdapter(this.mViewModel.getArticoli(), this, BR.articolo)
.map(ArticoloOrdine.class, R.layout.fragment_pv_articoli_ordine_acquisto__list_single_item)
new LiveAdapter(this.mViewModel.getArticoli(), this)
.map(ArticoloOrdine.class, itemType)
.into(mBinding.articoliOrdineList);
// mBinding.articoliOrdineList.setAdapter(mAdapter);
mBinding.articoliOrdineList.setHasFixedSize(true);
mBinding.articoliOrdineList.setLayoutManager(new LinearLayoutManager(this));
@@ -156,20 +151,6 @@ public class PVOrdineAcquistoEditActivity extends BaseActivity implements PVOrdi
mBinding.articoliOrdineList.addItemDecoration(itemDecorator);
}
private List<OrdineAcquistoArtListModel> convertDataModelToListModel
(List<ArticoloOrdine> dataList) {
return Stream.of(dataList)
.distinctBy(ArticoloOrdine::getArticoloOrdineId)
.sortBy(x -> x.getDataIns().getTime())
.map(x -> new OrdineAcquistoArtListModel()
.setBadge1(x.getCodMart())
.setDescription(x.getDescrizione())
.setQuantity(BigDecimal.valueOf(x.getQtaOrd()))
.setUntMis(x.getUntMis())
.setOriginalModel(x))
.toList();
}
private void selectAction(ArticoloOrdine articoloOrdine) {
mBinding.closeActivityFab.close(false);
@@ -179,7 +160,12 @@ public class PVOrdineAcquistoEditActivity extends BaseActivity implements PVOrdi
articoloOrdine.getDescrizione(),
articoloOrdine.getQtaOrd() + " " + articoloOrdine.getUntMis(),
() -> {
this.onItemDispatched(articoloOrdine);
this.mViewModel.checkArticolo(mOrdine, articoloOrdine.getCodMart(),
artOrd -> {
this.onItemDispatched(artOrd);
BarcodeManager.enable();
},
this::onError);
BarcodeManager.enable();
},
() -> {
@@ -204,9 +190,7 @@ public class PVOrdineAcquistoEditActivity extends BaseActivity implements PVOrdi
mBinding.closeActivityFab.close(false);
this.onLoadingStarted();
this.mViewModel.processBarcodeDTO(data, () -> {
this.onLoadingEnded();
});
this.mViewModel.processBarcodeDTO(data, this::onLoadingEnded);
};
@@ -227,6 +211,11 @@ public class PVOrdineAcquistoEditActivity extends BaseActivity implements PVOrdi
}).show(this.getSupportFragmentManager(), "tag");
}
@Override
public int getColorFromResource(int resId) {
return getResources().getColor(resId);
}
public void exportOrdine() {
this.mViewModel.exportOrdine(() -> {
@@ -252,11 +241,13 @@ public class PVOrdineAcquistoEditActivity extends BaseActivity implements PVOrdi
BarcodeManager.disable();
DialogSimpleInputHelper.makeInputDialog(this, "Inserisci il codice a barre/codice articolo da cercare", codice -> {
this.onLoadingStarted();
this.mViewModel.loadArticolo(codice,
() -> {
this.mViewModel.checkArticolo(mOrdine, codice,
articoloOrdine -> {
this.onItemDispatched(articoloOrdine);
this.onLoadingEnded();
BarcodeManager.enable();
}
},
this::onError
);
}, BarcodeManager::enable).show();
}

View File

@@ -4,6 +4,7 @@ import androidx.lifecycle.MutableLiveData;
import com.annimon.stream.Stream;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
@@ -11,6 +12,7 @@ import java.util.Objects;
import javax.inject.Inject;
import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloGriglia;
import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloOrdine;
import it.integry.integrywmsnative.core.data_store.db.entity.Griglia;
@@ -22,6 +24,7 @@ import it.integry.integrywmsnative.core.data_store.db.repository.OrdineRepositor
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingListener;
import it.integry.integrywmsnative.core.rest.consumers.PVOrdiniAcquistoRESTConsumer;
import it.integry.integrywmsnative.core.settings.SettingsManager;
public class PVOrdineAcquistoEditViewModel {
@@ -69,15 +72,29 @@ public class PVOrdineAcquistoEditViewModel {
this.loadGriglia(ordine.getIdGriglia(), griglia -> {
mCurrentGriglia.postValue(griglia);
this.loadArticoli(mCurrentOrdine, articoli -> {
articoli = Stream.of(articoli).map(this::setBgTint).toList();
this.mArticoli.postValue(articoli);
this.sendOnLoadingEnded();
});
});
}
private ArticoloOrdine setBgTint(ArticoloOrdine art) {
int chk = art.checkQtaProposta();
switch (chk) {
case -1:
art.setBgTint(this.mListener.getColorFromResource(R.color.red_600));
break;
case 1:
art.setBgTint(this.mListener.getColorFromResource(R.color.orange_600));
break;
default:
art.setBgTint(this.mListener.getColorFromResource(R.color.colorPrimary));
}
return art;
}
public MutableLiveData<Griglia> getCurrentGriglia() {
return mCurrentGriglia;
}
@@ -87,42 +104,20 @@ public class PVOrdineAcquistoEditViewModel {
}
public void saveArticolo(ArticoloOrdine articolo) {
setBgTint(articolo);
var newList = this.mArticoli.getValue();
var alreadySavedItem = Stream.of(newList)
.filter(x -> Objects.equals(x.getCodMart(), articolo.getCodMart()))
.findFirst();
if(alreadySavedItem.isPresent()) newList.remove(alreadySavedItem.get());
if (alreadySavedItem.isPresent()) newList.remove(alreadySavedItem.get());
newList.add(articolo);
this.mArticoli.postValue(newList);
}
public void loadArticolo(String barcode, Runnable onSuccess) {
try {
mArticoliOrdineRepository.findArticoloByScanAndOrdine(mCurrentOrdine, barcode, (articolo) -> {
if (articolo != null) {
onSuccess.run();
this.sendOnItemDispatched(articolo);
} else {
mArticoloGrigliaRepository.findArticoloByScanAndGriglia(barcode, mCurrentOrdine.getIdGriglia(), artGrid -> {
if (artGrid != null) {
onSuccess.run();
this.sendOnItemDispatched(artGrid.convertToArticoloOrdine(mCurrentOrdine));
} else {
this.sendError(new Exception("L' articolo ( " + barcode + " ) non è presente nella griglia"));
}
}, this::sendError);
}
}, this::sendError);
} catch (Exception e) {
this.sendError(e);
}
}
public void processBarcodeDTO(BarcodeScanDTO barcodeScanDTO, Runnable onComplete) {
this.checkArticolo(
mCurrentOrdine,
@@ -152,27 +147,54 @@ public class PVOrdineAcquistoEditViewModel {
}
}
private void checkArticolo(Ordine ordine, String barcode, RunnableArgs<ArticoloOrdine> onSuccess, RunnableArgs<Exception> onFail) {
public void checkArticolo(Ordine ordine, String barcode, RunnableArgs<ArticoloOrdine> onSuccess, RunnableArgs<Exception> onFail) {
try {
mArticoliOrdineRepository.findArticoloByScanAndOrdine(ordine, barcode, (articolo) -> {
if (articolo != null) {
onSuccess.run(articolo);
} else {
mArticoloGrigliaRepository.findArticoloByScanAndGriglia(barcode, ordine.getIdGriglia(), artGrid -> {
if (artGrid != null) {
onSuccess.run(artGrid.convertToArticoloOrdine(ordine));
mArticoloGrigliaRepository.findArticoloByScanAndGriglia(barcode, ordine.getIdGriglia(), artGrid -> {
if (artGrid != null) {
mArticoliOrdineRepository.findArticoloByScanAndOrdine(ordine, barcode, (articolo) -> {
if (articolo != null) {
articolo
.setQtaPrevistaVendita(BigDecimal.valueOf(artGrid.getQtaPrevistaVendita()))
.setQtaProposta(BigDecimal.valueOf(artGrid.getQtaProposta()))
.setGiacenza(BigDecimal.valueOf(artGrid.getGiacenza()))
.setMediaSett(artGrid.getMediaSett());
articolo.setQtaMinOrdinabile(artGrid.getQtaMinOrdinabile());
articolo.setMerceDaRic(artGrid.getMerceDaRic());
articolo.setNewNoPromo(artGrid.isNewNoPromo());
articolo.setFlagQtaMultipla(artGrid.getFlagQtaMultipla());
onSuccess.run(articolo);
} else {
onFail.run(new Exception("L' articolo ( " + barcode + " ) non è presente nella griglia"));
ArticoloOrdine art = artGrid.convertToArticoloOrdine(ordine);
if (isAutoOrderOnScan()) {
art.setQtaOrd(art.getQtaCnf());
mArticoliOrdineRepository.saveArticoloToOrdine(art, () -> {
saveArticolo(art);
this.sendOnLoadingEnded();
}, this::sendError);
} else {
onSuccess.run(art);
}
}
}, onFail);
} else {
onFail.run(new Exception("L' articolo ( " + barcode + " ) non è presente nella griglia"));
}
}, onFail);
} catch (Exception e) {
onFail.run(e);
}
}
private boolean isAutoOrderOnScan() {
return SettingsManager.iDB().getFlagOrdinaNuoviArticoliInGriglia();
}
private void getNewArticoli(int idGrigla, RunnableArgs<List<ArticoloGriglia>> onSuccess, RunnableArgs<Exception> onError) {
mArticoloGrigliaRepository.findNewArticoliInGrigla(idGrigla, onSuccess, onError);
}
@@ -252,6 +274,8 @@ public class PVOrdineAcquistoEditViewModel {
public interface Listener extends ILoadingListener {
void onItemDispatched(ArticoloOrdine articoloOrdine);
int getColorFromResource(int resId);
void onError(Exception ex);
}

View File

@@ -66,7 +66,7 @@ public class DialogEditArticoloViewModel {
public void setQtaTot(BigDecimal newValue) {
this.internalQtaTot = newValue;
if (newValue == null) return;
this.internalNumCnf = UtilityBigDecimal.divide(newValue, internalQtaCnf)
.setScale(0, RoundingMode.CEILING);
@@ -104,7 +104,7 @@ public class DialogEditArticoloViewModel {
public void save(RunnableArgs<ArticoloOrdine> onComplete) {
if(UtilityBigDecimal.equalsOrLowerThan(this.internalQtaTot, BigDecimal.ZERO)) {
if (UtilityBigDecimal.equalsOrLowerThan(this.internalQtaTot, BigDecimal.ZERO)) {
this.mListener.onError(new Exception("La quantità ordinata deve essere maggiore di 0"));
return;
}

View File

@@ -214,13 +214,10 @@ public class RettificaGiacenzeFragment extends BaseFragment implements ITitledFr
private final RunnableArgs<BarcodeScanDTO> onScanSuccessful = data -> {
BarcodeManager.disable();
this.openProgress();
this.onLoadingStarted();
this.mViewModel.processBarcodeDTO(data, () -> {
BarcodeManager.enable();
this.closeProgress();
this.onLoadingEnded();
});
};
@@ -334,12 +331,12 @@ public class RettificaGiacenzeFragment extends BaseFragment implements ITitledFr
() -> onComplete.run(true),
() -> onComplete.run(false)
)
.show(getActivity().getSupportFragmentManager(), "tag");
.show(requireActivity().getSupportFragmentManager(), "tag");
}
@Override
public void onError(Exception ex) {
this.closeProgress();
this.onLoadingEnded();
if (ex instanceof InvalidPesoKGException) {
UtilityToast.showToast(ex.getMessage());
@@ -391,11 +388,11 @@ public class RettificaGiacenzeFragment extends BaseFragment implements ITitledFr
.setPartitaMag(resultDTO.getPartitaMag())
.setDataScad(resultDTO.getDataScad());
this.openProgress();
this.onLoadingStarted();
onComplete.run(pickedQuantityDTO, shouldCloseLU);
})
.setOnAbort(() -> {
this.closeProgress();
this.onLoadingEnded();
})
.show(requireActivity().getSupportFragmentManager(), "tag");
}

View File

@@ -204,7 +204,7 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
boolean shouldAskPesoLU = SettingsManager.iDB().isFlagAskPesoColloSpedizione();
boolean useQtaOrd = SettingsManager.iDB().isFlagSpedizioneUseQtaOrd();
if (!mEnableFakeGiacenza) this.openProgress();
if (!mEnableFakeGiacenza) this.onLoadingStarted();
mViewmodel.init(
codMdep,
!mEnableFakeGiacenza,
@@ -622,13 +622,10 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
private final RunnableArgs<BarcodeScanDTO> onScanSuccessful = data -> {
BarcodeManager.disable();
this.openProgress();
this.onLoadingStarted();
this.mViewmodel.processBarcodeDTO(data, () -> {
BarcodeManager.enable();
this.closeProgress();
this.onLoadingEnded();
});
};
@@ -660,10 +657,10 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
public void createNewUL() {
this.mBindings.spedizioneFab.close(true);
this.openProgress();
this.onLoadingStarted();
this.mViewmodel.createNewLU(null, null, () -> {
this.closeProgress();
this.onLoadingEnded();
});
}
@@ -683,16 +680,6 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
this.mViewmodel.closeOrder();
}
@Override
public void onLoadingStarted() {
this.openProgress();
}
@Override
public void onLoadingEnded() {
this.closeProgress();
}
@Override
public void onLUOpened(MtbColt mtbColt) {
this.addExtraItemsEnabled.set(SettingsManager.iDB().isFlagCanAddExtraItemSpedizione());
@@ -737,7 +724,7 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
@Override
public void onLUPrintError(Exception ex, Runnable onComplete) {
this.closeProgress();
this.onLoadingEnded();
DialogSimpleMessageView.makeErrorDialog(
new SpannableString(ex.getMessage()),
null,
@@ -773,7 +760,7 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
@Override
public void onError(Exception ex) {
this.closeProgress();
this.onLoadingEnded();
if (ex instanceof InvalidPesoKGException) {
UtilityToast.showToast(ex.getMessage());
@@ -834,7 +821,7 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
.setPartitaMag(resultDTO.getPartitaMag())
.setDataScad(resultDTO.getDataScad());
this.openProgress();
this.onLoadingStarted();
onComplete.run(pickedQuantityDTO, shouldCloseLU);
})
.setOnAbort(() -> {

View File

@@ -78,7 +78,7 @@ public class SpedizioneViewModel {
private GestioneEnum mDefaultGestioneOfUL = null;
private int mDefaultSegnoCol = -1;
private String mDefaultCodMdep = null;
private List<FiltroOrdineDTO> mDefaultFiltroOrdine = new ArrayList<>();
private final List<FiltroOrdineDTO> mDefaultFiltroOrdine = new ArrayList<>();
private String mDefaultCodAnagOfUL = null;
private String mDefaultRagSocOfUL = null;
private String mDefaultRifOrdOfUL = null;
@@ -1319,8 +1319,7 @@ public class SpedizioneViewModel {
public void createNewLU(Integer customNumCollo, String customSerCollo, Runnable onComplete) {
MtbColt mtbColt = new MtbColt();
mtbColt.initDefaultFields();
mtbColt.setGestione(mDefaultGestioneOfUL)
mtbColt.initDefaultFields(mDefaultGestioneOfUL)
.setSegno(mDefaultSegnoCol)
.setRifOrd(mDefaultRifOrdOfUL)
.setNumOrd(mDefaultNumOrdOfUL)
@@ -1750,13 +1749,17 @@ public class SpedizioneViewModel {
public void recoverLU(MtbColt mtbColt) {
this.sendOnLoadingStarted();
this.mCurrentMtbColt = mtbColt;
mMtbColtSessionID = this.mColliDataRecoverService.startNewSession(mtbColt, mTestateOrdini);
this.mCurrentMtbColt.generaFiltroOrdineFromDTO(mDefaultFiltroOrdine);
this.resetMatchedRows();
this.sendLUOpened(this.mCurrentMtbColt);
this.mColliMagazzinoRESTConsumer.saveCollo(this.mCurrentMtbColt, savedMtbColt -> {
this.resetMatchedRows();
this.sendLUOpened(this.mCurrentMtbColt);
this.sendOnLoadingEnded();
}, this::sendError);
}
private void postCloseOperations(List<MtbColt> mtbColtList) {

View File

@@ -158,7 +158,7 @@ public class UltimeConsegneClienteFragment extends BaseFragment implements Ultim
}
private void refreshItems() {
this.openProgress();
this.onLoadingStarted();
String currentAnagFilter = mAppliedFilterViewModel != null ? mAppliedFilterViewModel.ragSoc.get() : null;
String currentCodAnagFilter = null;
@@ -247,22 +247,4 @@ public class UltimeConsegneClienteFragment extends BaseFragment implements Ultim
this.mOnPreDestroyList.add(onPreDestroy);
}
@Override
public void onLoadingStarted() {
BarcodeManager.disable();
this.openProgress();
}
@Override
public void onLoadingEnded() {
this.closeProgress();
BarcodeManager.enable();
}
@Override
public void onError(Exception ex) {
this.closeProgress();
UtilityExceptions.defaultException(getActivity(), ex, mCurrentProgress);
BarcodeManager.enable();
}
}

View File

@@ -163,7 +163,7 @@ public class UltimiArriviFornitoreFragment extends BaseFragment implements ITitl
}
private void filterItems(List<MtbAart> filteredMtbAarts) {
this.openProgress();
this.onLoadingStarted();
String currentAnagFilter = mAppliedFilterViewModel != null ? mAppliedFilterViewModel.ragSoc.get() : null;
String currentCodAnagFilter = null;
@@ -252,25 +252,6 @@ public class UltimiArriviFornitoreFragment extends BaseFragment implements ITitl
this.mOnPreDestroyList.add(onPreDestroy);
}
@Override
public void onLoadingStarted() {
BarcodeManager.disable();
this.openProgress();
}
@Override
public void onLoadingEnded() {
this.closeProgress();
BarcodeManager.enable();
}
@Override
public void onError(Exception ex) {
this.closeProgress();
UtilityExceptions.defaultException(getActivity(), ex, mCurrentProgress);
BarcodeManager.enable();
}
@Override
public void onMtbColtScanned(MtbColt scannedMtbColt) {

View File

@@ -117,7 +117,7 @@ public class VersamentoMerceFragment extends BaseFragment implements ITitledFrag
null, this::openLU)
.show(getActivity().getSupportFragmentManager(), "tag");
}
}).show(getActivity().getSupportFragmentManager(), "tag");
}).show(requireActivity().getSupportFragmentManager(), "tag");
}
@@ -130,12 +130,10 @@ public class VersamentoMerceFragment extends BaseFragment implements ITitledFrag
}
private final RunnableArgs<BarcodeScanDTO> onScanSuccessful = data -> {
BarcodeManager.disable();
this.openProgress();
this.onLoadingStarted();
this.mViewModel.processBarcodeDTO(data, () -> {
BarcodeManager.enable();
this.closeProgress();
this.onLoadingEnded();
});
};

View File

@@ -54,20 +54,15 @@ public class VersamentoMerceViewModel {
public void processBarcodeDTO(BarcodeScanDTO barcodeScanDTO, Runnable onComplete) {
new Thread(() -> {
if (UtilityBarcode.isEtichettaPosizione(barcodeScanDTO, false)) {
this.executeEtichettaPosizione(barcodeScanDTO, onComplete);
} else if (UtilityBarcode.isEtichettaAnonima(barcodeScanDTO)) {
this.executeEtichettaLU(barcodeScanDTO.getStringValue(), true, onComplete);
} else if (UtilityBarcode.isEtichetta128(barcodeScanDTO)) {
this.executeEtichettaEan128(barcodeScanDTO, onComplete);
} else {
onComplete.run();
}
}).start();
if (UtilityBarcode.isEtichettaPosizione(barcodeScanDTO, false)) {
this.executeEtichettaPosizione(barcodeScanDTO, onComplete);
} else if (UtilityBarcode.isEtichettaAnonima(barcodeScanDTO)) {
this.executeEtichettaLU(barcodeScanDTO.getStringValue(), true, onComplete);
} else if (UtilityBarcode.isEtichetta128(barcodeScanDTO)) {
this.executeEtichettaEan128(barcodeScanDTO, onComplete);
} else {
onComplete.run();
}
}
@@ -84,9 +79,8 @@ public class VersamentoMerceViewModel {
} else if (mtbColtList.size() == 1) {
mColliMagazzinoRESTConsumer.getByTestata(mtbColtList.get(0), true, false, mtbColt -> {
onComplete.run();
//TAKE HERE
pickMerceULtoUL(mtbColt);
pickMerceULtoUL(mtbColt, onComplete);
}, this::sendError);
} else {
@@ -97,14 +91,22 @@ public class VersamentoMerceViewModel {
if (!UtilityString.equalsIgnoreCase(mCurrentMtbColt.getValue().getCodMdep(), foundPosizione.getCodMdep())) {
this.sendOnSpostamentoTraDepConfirmRequired(mCurrentMtbColt.getValue().getCodMdep(), foundPosizione.getCodMdep(), canContinue -> {
onComplete.run();
if (canContinue) {
updatePosizione(foundPosizione, UtilityPosizione.isPosizioneWithLivello(foundPosizione));
} else {
onComplete.run();
if (UtilityPosizione.isPosizioneWithLivello(foundPosizione)) {
askLivelloPosizione(foundPosizione);
} else {
updatePosizione(foundPosizione);
}
}
});
} else {
updatePosizione(foundPosizione, UtilityPosizione.isPosizioneWithLivello(foundPosizione));
onComplete.run();
if (UtilityPosizione.isPosizioneWithLivello(foundPosizione)) {
askLivelloPosizione(foundPosizione);
} else {
updatePosizione(foundPosizione);
}
}
}
@@ -150,12 +152,11 @@ public class VersamentoMerceViewModel {
if (mtbColt == null) {
this.mColliMagazzinoRESTConsumer.createColloFromEtichettaAnonima(sscc, GestioneEnum.LAVORAZIONE, mtbColtAnonimo -> {
onComplete.run();
pickMerceULtoUL(mtbColtAnonimo);
pickMerceULtoUL(mtbColtAnonimo, onComplete);
}, this::sendError);
} else {
onComplete.run();
pickMerceULtoUL(mtbColt);
pickMerceULtoUL(mtbColt, onComplete);
}
}
@@ -164,7 +165,8 @@ public class VersamentoMerceViewModel {
}
private void pickMerceULtoUL(MtbColt destMtbColt) {
private void pickMerceULtoUL(MtbColt destMtbColt, Runnable onComplete) {
this.sendOnLoadingStarted();
MtbColt sourceMtbColt = mCurrentMtbColt.getValue();
if (!UtilityString.equalsIgnoreCase(sourceMtbColt.getCodMdep(), destMtbColt.getCodMdep())) {
@@ -181,21 +183,24 @@ public class VersamentoMerceViewModel {
return;
}
this.sendOnLoadingEnded();
this.sendOnArtsChooseRequired(mtbColrsToPick, pickedAarts -> {
List<MtbColr> destNewMtbColr = new ArrayList<>();
askQuantities(pickedAarts.iterator(), destNewMtbColr, () -> {
this.sendOnLoadingStarted();
MtbColt clonedSourceTestata = (MtbColt) sourceMtbColt.clone();
clonedSourceTestata.setMtbColr(new ObservableArrayList<>());
clonedSourceTestata.getMtbColr().addAll(destNewMtbColr);
this.sendOnLoadingStarted();
this.mColliMagazzinoRESTConsumer.spostaArtsTraUL(
clonedSourceTestata,
destMtbColt,
this::sendOnDataSaved,
() -> {
this.sendOnDataSaved();
onComplete.run();
},
this::sendError
);
@@ -242,26 +247,23 @@ public class VersamentoMerceViewModel {
}
public void updatePosizione(MtbDepoPosizione mtbDepoPosizione, boolean shouldAskLivello) {
public void askLivelloPosizione(MtbDepoPosizione mtbDepoPosizione) {
this.sendOnLivelloPosizioneRequired(mtbDepoPosizione, newPosizione -> {
if (newPosizione == null) {
askLivelloPosizione(mtbDepoPosizione);
} else {
updatePosizione(newPosizione);
}
if (shouldAskLivello) {
this.sendOnLivelloPosizioneRequired(mtbDepoPosizione, newPosizione -> {
if (newPosizione == null) {
updatePosizione(mtbDepoPosizione, shouldAskLivello);
} else {
updatePosizione(newPosizione, false);
}
});
} else {
this.sendOnLoadingStarted();
mColliMagazzinoRESTConsumer.changePosizione(mCurrentMtbColt.getValue(), mtbDepoPosizione, () -> {
this.sendOnLoadingEnded();
this.sendOnDataSaved();
}, this::sendError);
}
});
}
public void updatePosizione(MtbDepoPosizione mtbDepoPosizione) {
this.sendOnLoadingStarted();
mColliMagazzinoRESTConsumer.changePosizione(mCurrentMtbColt.getValue(), mtbDepoPosizione, () -> {
this.sendOnLoadingEnded();
this.sendOnDataSaved();
}, this::sendError);
}

View File

@@ -37,11 +37,9 @@ import it.integry.integrywmsnative.core.rest.model.Ean128Model;
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;
import it.integry.integrywmsnative.databinding.DialogChooseArtsFromListaArtsLayoutBinding;
import it.integry.integrywmsnative.view.dialogs.DialogCommon;
import it.integry.integrywmsnative.view.dialogs.DialogProgressView;
public class DialogChooseArtsFromListaArts extends BaseDialogFragment {
@@ -62,7 +60,6 @@ public class DialogChooseArtsFromListaArts extends BaseDialogFragment {
private final List<DialogChooseArtsFromListaArtsItemModel> mDataset;
private int mBarcodeScannerIstanceID;
private DialogProgressView mCurrentProgress;
private MtbAart selectedArt;
public static DialogChooseArtsFromListaArts newInstance(List<MtbColr> listaMtbColr, RunnableArgs<List<MtbColr>> onItemsChoosed, Runnable onAbort) {
@@ -258,9 +255,7 @@ public class DialogChooseArtsFromListaArts extends BaseDialogFragment {
private final RunnableArgs<BarcodeScanDTO> onScanSuccessfull = data -> {
BarcodeManager.disable();
openProgress();
onLoadingStarted();
if (UtilityBarcode.isEan13(data)) {
@@ -268,8 +263,7 @@ public class DialogChooseArtsFromListaArts extends BaseDialogFragment {
} else if (UtilityBarcode.isEtichetta128(data)) {
this.executeEtichettaEan128(data);
} else {
closeProgress();
BarcodeManager.enable();
onLoadingEnded();
}
@@ -293,8 +287,7 @@ public class DialogChooseArtsFromListaArts extends BaseDialogFragment {
this.loadArticolo(barcodeProd, ean128Model);
} else {
DialogCommon.showNoArtFoundDialog(context, () -> {
BarcodeManager.enable();
closeProgress();
onLoadingEnded();
});
}
@@ -303,16 +296,11 @@ public class DialogChooseArtsFromListaArts extends BaseDialogFragment {
} else {
//EAN 128 non completo o comunque mancano i riferimenti al prodotto
DialogCommon.showNoArtFoundDialog(context, () -> {
BarcodeManager.enable();
closeProgress();
onLoadingEnded();
});
}
}, ex -> {
closeProgress();
UtilityExceptions.defaultException(context, ex);
BarcodeManager.enable();
});
}, this::onError);
}
@@ -329,22 +317,16 @@ public class DialogChooseArtsFromListaArts extends BaseDialogFragment {
this.searchArtInList(mtbAartList.get(0), ean128Model);
BarcodeManager.enable();
closeProgress();
onLoadingEnded();
} else {
DialogCommon.showNoArtFoundDialog(context, () -> {
BarcodeManager.enable();
closeProgress();
onLoadingEnded();
});
}
}, ex -> {
closeProgress();
BarcodeManager.enable();
UtilityExceptions.defaultException(context, ex);
});
}, this::onError);
}
@@ -385,20 +367,4 @@ public class DialogChooseArtsFromListaArts extends BaseDialogFragment {
this.dismiss();
}
protected void openProgress() {
requireActivity().runOnUiThread(() -> {
if (this.mCurrentProgress == null) {
this.mCurrentProgress = UtilityProgress.createDefaultProgressDialog(getActivity());
}
});
}
protected void closeProgress() {
requireActivity().runOnUiThread(() -> {
if (mCurrentProgress != null) {
mCurrentProgress.dismiss();
mCurrentProgress = null;
}
});
}
}

View File

@@ -87,6 +87,7 @@ public class DialogInputQuantityV2View extends BaseDialogFragment implements Dia
private int mBarcodeScannerIstanceID;
private boolean mFirstStart = true;
private boolean mAbort = true;
public DialogInputQuantityV2View setDialogInputQuantityV2DTO(DialogInputQuantityV2DTO mDialogInputQuantityV2DTO) {
@@ -165,6 +166,7 @@ public class DialogInputQuantityV2View extends BaseDialogFragment implements Dia
});
}
this.onLoadingEnded();
mBindings.inputNumCnfText.requestFocus();
return mBindings.getRoot();
}
@@ -175,33 +177,34 @@ public class DialogInputQuantityV2View extends BaseDialogFragment implements Dia
}
private final RunnableArgs<BarcodeScanDTO> onScanSuccessful = data -> {
BarcodeManager.disable();
this.openProgress();
this.onLoadingStarted();
this.mViewModel.processBarcodeDTO(data, () -> {
this.closeProgress();
BarcodeManager.enable();
this.onLoadingEnded();
});
};
public void save() {
if (this.mViewModel.validate()) {
this.mOnComplete.run(this.mViewModel.getResult(), false);
this.mAbort = false;
dismiss();
this.mOnComplete.run(this.mViewModel.getResult(), false);
}
}
public void saveAndCloseLU() {
if (this.mViewModel.validate()) {
this.mOnComplete.run(this.mViewModel.getResult(), true);
this.mAbort = false;
dismiss();
this.mOnComplete.run(this.mViewModel.getResult(), true);
}
}
@Override
public void onDismiss(@NonNull DialogInterface dialog) {
BarcodeManager.removeCallback(mBarcodeScannerIstanceID);
this.mOnAbort.run();
if (mAbort) this.mOnAbort.run();
super.onDismiss(dialog);
}
@@ -210,7 +213,7 @@ public class DialogInputQuantityV2View extends BaseDialogFragment implements Dia
super.onStart();
// if(!mFirstStart) {
this.init();
this.init();
// mFirstStart = false;
// }

View File

@@ -104,8 +104,7 @@ public class DialogScanArtView extends BaseDialogFragment implements DialogScanA
private final RunnableArgs<BarcodeScanDTO> onScanSuccessfull = data -> {
BarcodeManager.disable();
this.openProgress();
this.onLoadingStarted();
this.mViewModel.processBarcodeDTO(data, (status, mtbAart, ean128Model, mtbColrList) -> {
@@ -130,8 +129,7 @@ public class DialogScanArtView extends BaseDialogFragment implements DialogScanA
}
BarcodeManager.enable();
this.closeProgress();
this.onLoadingEnded();
dismiss();
});

View File

@@ -11,7 +11,6 @@ import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.databinding.DataBindingUtil;
import org.jetbrains.annotations.NotNull;
@@ -28,7 +27,6 @@ import it.integry.integrywmsnative.core.expansion.BaseDialogFragment;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.expansion.RunnableArgss;
import it.integry.integrywmsnative.core.model.MtbColt;
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.databinding.DialogScanOrCreateLuBinding;
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView;
import it.integry.integrywmsnative.view.dialogs.basket_lu.DialogBasketLU;
@@ -133,12 +131,10 @@ public class DialogScanOrCreateLUView extends BaseDialogFragment implements Dial
}
private final RunnableArgs<BarcodeScanDTO> onScanSuccessfull = data -> {
BarcodeManager.disable();
this.openProgress();
this.onLoadingStarted();
this.mViewModel.processBarcodeDTO(data, () -> {
BarcodeManager.enable();
this.closeProgress();
this.onLoadingEnded();
});
};
@@ -159,7 +155,7 @@ public class DialogScanOrCreateLUView extends BaseDialogFragment implements Dial
}, () -> {
onConfirm.run(false);
})
.show(((AppCompatActivity) getActivity()).getSupportFragmentManager(), "tag");
.show(requireActivity().getSupportFragmentManager(), "tag");
}
@Override
@@ -169,21 +165,4 @@ public class DialogScanOrCreateLUView extends BaseDialogFragment implements Dial
dismiss();
}
@Override
public void onError(Exception ex) {
this.closeProgress();
UtilityExceptions.defaultException(getActivity(), ex);
BarcodeManager.enable();
}
@Override
public void onLoadingStarted() {
this.openProgress();
}
@Override
public void onLoadingEnded() {
this.closeProgress();
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -250,7 +250,7 @@
style="@style/AppTheme.NewMaterial.Text.Medium"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{UtilityNumber.decimalToString(view.articolo.getCnfDaRic())}"
android:text="@{UtilityNumber.decimalToString(view.articolo.merceDaRic)}"
android:textColor="@android:color/black"
android:textStyle="bold"
tools:text="1" />
@@ -281,7 +281,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="0dp"
android:text="@{UtilityNumber.decimalToString(view.articolo.merceDaRic)}"
android:text="@{UtilityNumber.decimalToString(view.articolo.getCnfDaRic())}"
android:textColor="@android:color/black"
android:textStyle="bold" />

View File

@@ -94,7 +94,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/badge_round_corner"
android:backgroundTint="@color/colorPrimary"
android:backgroundTint="@{articolo.bgTint}"
android:gravity="center"
android:paddingLeft="6dp"
android:paddingTop="2dp"
@@ -104,6 +104,7 @@
android:textColor="@android:color/white"
android:textSize="16sp"
android:textStyle="bold"
tools:backgroundTint="@color/colorPrimary"
tools:text="280.45\nCONF" />
</RelativeLayout>

View File

@@ -1,17 +0,0 @@
package it.integry.integrywmsnative;
import org.junit.Test;
import static org.junit.Assert.*;
/**
* Example local unit test, which will execute on the development machine (host).
*
* @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
*/
public class ExampleUnitTest {
@Test
public void addition_isCorrect() throws Exception {
assertEquals(4, 2 + 2);
}
}

View File

@@ -1,27 +0,0 @@
package it.integry.barcode_base_android_library;
import android.content.Context;
import androidx.test.platform.app.InstrumentationRegistry;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import org.junit.Test;
import org.junit.runner.RunWith;
import static org.junit.Assert.*;
/**
* Instrumented test, which will execute on an Android device.
*
* @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
*/
@RunWith(AndroidJUnit4.class)
public class ExampleInstrumentedTest {
@Test
public void useAppContext() {
// Context of the app under test.
Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
assertEquals("it.integry.barcode_base_android_library.test", appContext.getPackageName());
}
}

View File

@@ -1,17 +0,0 @@
package it.integry.barcode_base_android_library;
import org.junit.Test;
import static org.junit.Assert.*;
/**
* Example local unit test, which will execute on the development machine (host).
*
* @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
*/
public class ExampleUnitTest {
@Test
public void addition_isCorrect() {
assertEquals(4, 2 + 2);
}
}

View File

@@ -1,27 +0,0 @@
package it.integry.honeywellscannerlibrary;
import android.content.Context;
import androidx.test.InstrumentationRegistry;
import androidx.test.runner.AndroidJUnit4;
import org.junit.Test;
import org.junit.runner.RunWith;
import static org.junit.Assert.*;
/**
* Instrumented test, which will execute on an Android device.
*
* @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
*/
@RunWith(AndroidJUnit4.class)
public class ExampleInstrumentedTest {
@Test
public void useAppContext() {
// Context of the app under test.
Context appContext = InstrumentationRegistry.getTargetContext();
assertEquals("it.integry.honeywellscannerlibrary.test", appContext.getPackageName());
}
}

View File

@@ -1,17 +0,0 @@
package it.integry.honeywellscannerlibrary;
import org.junit.Test;
import static org.junit.Assert.*;
/**
* Example local unit test, which will execute on the development machine (host).
*
* @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
*/
public class ExampleUnitTest {
@Test
public void addition_isCorrect() {
assertEquals(4, 2 + 2);
}
}

View File

@@ -1,27 +0,0 @@
package it.integry.keyobardemulatorscannerlibrary;
import android.content.Context;
import androidx.test.platform.app.InstrumentationRegistry;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import org.junit.Test;
import org.junit.runner.RunWith;
import static org.junit.Assert.*;
/**
* Instrumented test, which will execute on an Android device.
*
* @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
*/
@RunWith(AndroidJUnit4.class)
public class ExampleInstrumentedTest {
@Test
public void useAppContext() {
// Context of the app under test.
Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
assertEquals("it.integry.keyobardemulatorscannerlibrary.test", appContext.getPackageName());
}
}

View File

@@ -1,17 +0,0 @@
package it.integry.keyobardemulatorscannerlibrary;
import org.junit.Test;
import static org.junit.Assert.*;
/**
* Example local unit test, which will execute on the development machine (host).
*
* @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
*/
public class ExampleUnitTest {
@Test
public void addition_isCorrect() {
assertEquals(4, 2 + 2);
}
}

View File

@@ -1,26 +0,0 @@
package it.integry.pointmobilescannerlibrary;
import android.content.Context;
import androidx.test.InstrumentationRegistry;
import androidx.test.runner.AndroidJUnit4;
import org.junit.Test;
import org.junit.runner.RunWith;
import static org.junit.Assert.*;
/**
* Instrumented test, which will execute on an Android device.
*
* @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
*/
@RunWith(AndroidJUnit4.class)
public class ExampleInstrumentedTest {
@Test
public void useAppContext() {
// Context of the app under test.
Context appContext = InstrumentationRegistry.getTargetContext();
assertEquals("it.integry.pointmobilescannerlibrary.test", appContext.getPackageName());
}
}

View File

@@ -1,17 +0,0 @@
package it.integry.pointmobilescannerlibrary;
import org.junit.Test;
import static org.junit.Assert.*;
/**
* Example local unit test, which will execute on the development machine (host).
*
* @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
*/
public class ExampleUnitTest {
@Test
public void addition_isCorrect() {
assertEquals(4, 2 + 2);
}
}

View File

@@ -1,27 +0,0 @@
package it.integry.zebrascannerlibrary;
import android.content.Context;
import androidx.test.InstrumentationRegistry;
import androidx.test.runner.AndroidJUnit4;
import org.junit.Test;
import org.junit.runner.RunWith;
import static org.junit.Assert.*;
/**
* Instrumented test, which will execute on an Android device.
*
* @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
*/
@RunWith(AndroidJUnit4.class)
public class ExampleInstrumentedTest {
@Test
public void useAppContext() {
// Context of the app under test.
Context appContext = InstrumentationRegistry.getTargetContext();
assertEquals("it.integry.zebrascannerlibrary.test", appContext.getPackageName());
}
}

View File

@@ -1,17 +0,0 @@
package it.integry.zebrascannerlibrary;
import org.junit.Test;
import static org.junit.Assert.*;
/**
* Example local unit test, which will execute on the development machine (host).
*
* @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
*/
public class ExampleUnitTest {
@Test
public void addition_isCorrect() {
assertEquals(4, 2 + 2);
}
}